]> git.ipfire.org Git - thirdparty/grsecurity-scrape.git/blob - test/grsecurity-3.1-4.2.6-201511141543.patch
Auto commit, 1 new patch{es}.
[thirdparty/grsecurity-scrape.git] / test / grsecurity-3.1-4.2.6-201511141543.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 1d6f045..2714987 100644
317 --- a/Documentation/kernel-parameters.txt
318 +++ b/Documentation/kernel-parameters.txt
319 @@ -1244,6 +1244,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 @@ -2364,6 +2371,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 @@ -2662,6 +2673,30 @@ 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_weakuderef [X86-64] enables the weaker but faster form of UDEREF
370 + when the processor supports PCID.
371 +
372 pcbit= [HW,ISDN]
373
374 pcd. [PARIDE]
375 diff --git a/Documentation/sysctl/kernel.txt b/Documentation/sysctl/kernel.txt
376 index 6fccb69..60c7c7a 100644
377 --- a/Documentation/sysctl/kernel.txt
378 +++ b/Documentation/sysctl/kernel.txt
379 @@ -41,6 +41,7 @@ show up in /proc/sys/kernel:
380 - kptr_restrict
381 - kstack_depth_to_print [ X86 only ]
382 - l2cr [ PPC only ]
383 +- modify_ldt [ X86 only ]
384 - modprobe ==> Documentation/debugging-modules.txt
385 - modules_disabled
386 - msg_next_id [ sysv ipc ]
387 @@ -391,6 +392,20 @@ This flag controls the L2 cache of G3 processor boards. If
388
389 ==============================================================
390
391 +modify_ldt: (X86 only)
392 +
393 +Enables (1) or disables (0) the modify_ldt syscall. Modifying the LDT
394 +(Local Descriptor Table) may be needed to run a 16-bit or segmented code
395 +such as Dosemu or Wine. This is done via a system call which is not needed
396 +to run portable applications, and which can sometimes be abused to exploit
397 +some weaknesses of the architecture, opening new vulnerabilities.
398 +
399 +This sysctl allows one to increase the system's security by disabling the
400 +system call, or to restore compatibility with specific applications when it
401 +was already disabled.
402 +
403 +==============================================================
404 +
405 modules_disabled:
406
407 A toggle value indicating if modules are allowed to be loaded
408 diff --git a/Makefile b/Makefile
409 index 9ef3739..20b7716 100644
410 --- a/Makefile
411 +++ b/Makefile
412 @@ -298,7 +298,9 @@ CONFIG_SHELL := $(shell if [ -x "$$BASH" ]; then echo $$BASH; \
413 HOSTCC = gcc
414 HOSTCXX = g++
415 HOSTCFLAGS = -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89
416 -HOSTCXXFLAGS = -O2
417 +HOSTCFLAGS = -W -Wno-unused-parameter -Wno-missing-field-initializers -fno-delete-null-pointer-checks
418 +HOSTCFLAGS += $(call cc-option, -Wno-empty-body)
419 +HOSTCXXFLAGS = -O2 -Wall -W -Wno-array-bounds
420
421 ifeq ($(shell $(HOSTCC) -v 2>&1 | grep -c "clang version"), 1)
422 HOSTCFLAGS += -Wno-unused-value -Wno-unused-parameter \
423 @@ -434,8 +436,8 @@ export RCS_TAR_IGNORE := --exclude SCCS --exclude BitKeeper --exclude .svn \
424 # Rules shared between *config targets and build targets
425
426 # Basic helpers built in scripts/
427 -PHONY += scripts_basic
428 -scripts_basic:
429 +PHONY += scripts_basic gcc-plugins
430 +scripts_basic: gcc-plugins
431 $(Q)$(MAKE) $(build)=scripts/basic
432 $(Q)rm -f .tmp_quiet_recordmcount
433
434 @@ -615,6 +617,74 @@ endif
435 # Tell gcc to never replace conditional load with a non-conditional one
436 KBUILD_CFLAGS += $(call cc-option,--param=allow-store-data-races=0)
437
438 +ifndef DISABLE_PAX_PLUGINS
439 +ifeq ($(call cc-ifversion, -ge, 0408, y), y)
440 +PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(HOSTCXX)" "$(HOSTCXX)" "$(CC)")
441 +else
442 +PLUGINCC := $(shell $(CONFIG_SHELL) $(srctree)/scripts/gcc-plugin.sh "$(HOSTCC)" "$(HOSTCXX)" "$(CC)")
443 +endif
444 +ifneq ($(PLUGINCC),)
445 +ifdef CONFIG_PAX_CONSTIFY_PLUGIN
446 +CONSTIFY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/constify_plugin.so -DCONSTIFY_PLUGIN
447 +endif
448 +ifdef CONFIG_PAX_MEMORY_STACKLEAK
449 +STACKLEAK_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/stackleak_plugin.so -DSTACKLEAK_PLUGIN
450 +STACKLEAK_PLUGIN_CFLAGS += -fplugin-arg-stackleak_plugin-track-lowest-sp=100
451 +endif
452 +ifdef CONFIG_KALLOCSTAT_PLUGIN
453 +KALLOCSTAT_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/kallocstat_plugin.so
454 +endif
455 +ifdef CONFIG_PAX_KERNEXEC_PLUGIN
456 +KERNEXEC_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/kernexec_plugin.so
457 +KERNEXEC_PLUGIN_CFLAGS += -fplugin-arg-kernexec_plugin-method=$(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD) -DKERNEXEC_PLUGIN
458 +KERNEXEC_PLUGIN_AFLAGS := -DKERNEXEC_PLUGIN
459 +endif
460 +ifdef CONFIG_GRKERNSEC_RANDSTRUCT
461 +RANDSTRUCT_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/randomize_layout_plugin.so -DRANDSTRUCT_PLUGIN
462 +ifdef CONFIG_GRKERNSEC_RANDSTRUCT_PERFORMANCE
463 +RANDSTRUCT_PLUGIN_CFLAGS += -fplugin-arg-randomize_layout_plugin-performance-mode
464 +endif
465 +endif
466 +ifdef CONFIG_CHECKER_PLUGIN
467 +ifeq ($(call cc-ifversion, -ge, 0406, y), y)
468 +CHECKER_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/checker_plugin.so -DCHECKER_PLUGIN
469 +endif
470 +endif
471 +COLORIZE_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/colorize_plugin.so
472 +ifdef CONFIG_PAX_SIZE_OVERFLOW
473 +SIZE_OVERFLOW_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/size_overflow_plugin/size_overflow_plugin.so -DSIZE_OVERFLOW_PLUGIN
474 +endif
475 +ifdef CONFIG_PAX_LATENT_ENTROPY
476 +LATENT_ENTROPY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/latent_entropy_plugin.so -DLATENT_ENTROPY_PLUGIN
477 +endif
478 +ifdef CONFIG_PAX_MEMORY_STRUCTLEAK
479 +STRUCTLEAK_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/structleak_plugin.so -DSTRUCTLEAK_PLUGIN
480 +endif
481 +INITIFY_PLUGIN_CFLAGS := -fplugin=$(objtree)/tools/gcc/initify_plugin.so -DINITIFY_PLUGIN
482 +GCC_PLUGINS_CFLAGS := $(CONSTIFY_PLUGIN_CFLAGS) $(STACKLEAK_PLUGIN_CFLAGS) $(KALLOCSTAT_PLUGIN_CFLAGS)
483 +GCC_PLUGINS_CFLAGS += $(KERNEXEC_PLUGIN_CFLAGS) $(CHECKER_PLUGIN_CFLAGS) $(COLORIZE_PLUGIN_CFLAGS)
484 +GCC_PLUGINS_CFLAGS += $(SIZE_OVERFLOW_PLUGIN_CFLAGS) $(LATENT_ENTROPY_PLUGIN_CFLAGS) $(STRUCTLEAK_PLUGIN_CFLAGS)
485 +GCC_PLUGINS_CFLAGS += $(INITIFY_PLUGIN_CFLAGS)
486 +GCC_PLUGINS_CFLAGS += $(RANDSTRUCT_PLUGIN_CFLAGS)
487 +GCC_PLUGINS_AFLAGS := $(KERNEXEC_PLUGIN_AFLAGS)
488 +export PLUGINCC GCC_PLUGINS_CFLAGS GCC_PLUGINS_AFLAGS CONSTIFY_PLUGIN LATENT_ENTROPY_PLUGIN_CFLAGS
489 +ifeq ($(KBUILD_EXTMOD),)
490 +gcc-plugins:
491 + $(Q)$(MAKE) $(build)=tools/gcc
492 +else
493 +gcc-plugins: ;
494 +endif
495 +else
496 +gcc-plugins:
497 +ifeq ($(call cc-ifversion, -ge, 0405, y), y)
498 + $(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.))
499 +else
500 + $(Q)echo "warning, your gcc version does not support plugins, you should upgrade it to gcc 4.5 at least"
501 +endif
502 + $(Q)echo "PAX_MEMORY_STACKLEAK, constification, PAX_LATENT_ENTROPY and other features will be less secure. PAX_SIZE_OVERFLOW will not be active."
503 +endif
504 +endif
505 +
506 ifdef CONFIG_READABLE_ASM
507 # Disable optimizations that make assembler listings hard to read.
508 # reorder blocks reorders the control in the function
509 @@ -714,7 +784,7 @@ KBUILD_CFLAGS += $(call cc-option, -gsplit-dwarf, -g)
510 else
511 KBUILD_CFLAGS += -g
512 endif
513 -KBUILD_AFLAGS += -Wa,-gdwarf-2
514 +KBUILD_AFLAGS += -Wa,--gdwarf-2
515 endif
516 ifdef CONFIG_DEBUG_INFO_DWARF4
517 KBUILD_CFLAGS += $(call cc-option, -gdwarf-4,)
518 @@ -886,7 +956,7 @@ export mod_sign_cmd
519
520
521 ifeq ($(KBUILD_EXTMOD),)
522 -core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/
523 +core-y += kernel/ mm/ fs/ ipc/ security/ crypto/ block/ grsecurity/
524
525 vmlinux-dirs := $(patsubst %/,%,$(filter %/, $(init-y) $(init-m) \
526 $(core-y) $(core-m) $(drivers-y) $(drivers-m) \
527 @@ -936,6 +1006,8 @@ endif
528
529 # The actual objects are generated when descending,
530 # make sure no implicit rule kicks in
531 +$(filter-out $(init-y),$(vmlinux-deps)): KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
532 +$(filter-out $(init-y),$(vmlinux-deps)): KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
533 $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
534
535 # Handle descending into subdirectories listed in $(vmlinux-dirs)
536 @@ -945,7 +1017,7 @@ $(sort $(vmlinux-deps)): $(vmlinux-dirs) ;
537 # Error messages still appears in the original language
538
539 PHONY += $(vmlinux-dirs)
540 -$(vmlinux-dirs): prepare scripts
541 +$(vmlinux-dirs): gcc-plugins prepare scripts
542 $(Q)$(MAKE) $(build)=$@
543
544 define filechk_kernel.release
545 @@ -988,10 +1060,13 @@ prepare1: prepare2 $(version_h) include/generated/utsrelease.h \
546
547 archprepare: archheaders archscripts prepare1 scripts_basic
548
549 +prepare0: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
550 +prepare0: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
551 prepare0: archprepare FORCE
552 $(Q)$(MAKE) $(build)=.
553
554 # All the preparing..
555 +prepare: KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
556 prepare: prepare0
557
558 # Generate some files
559 @@ -1099,6 +1174,8 @@ all: modules
560 # using awk while concatenating to the final file.
561
562 PHONY += modules
563 +modules: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
564 +modules: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
565 modules: $(vmlinux-dirs) $(if $(KBUILD_BUILTIN),vmlinux) modules.builtin
566 $(Q)$(AWK) '!x[$$0]++' $(vmlinux-dirs:%=$(objtree)/%/modules.order) > $(objtree)/modules.order
567 @$(kecho) ' Building modules, stage 2.';
568 @@ -1114,7 +1191,7 @@ modules.builtin: $(vmlinux-dirs:%=%/modules.builtin)
569
570 # Target to prepare building external modules
571 PHONY += modules_prepare
572 -modules_prepare: prepare scripts
573 +modules_prepare: gcc-plugins prepare scripts
574
575 # Target to install modules
576 PHONY += modules_install
577 @@ -1180,7 +1257,10 @@ MRPROPER_FILES += .config .config.old .version .old_version \
578 Module.symvers tags TAGS cscope* GPATH GTAGS GRTAGS GSYMS \
579 signing_key.priv signing_key.x509 x509.genkey \
580 extra_certificates signing_key.x509.keyid \
581 - signing_key.x509.signer vmlinux-gdb.py
582 + signing_key.x509.signer vmlinux-gdb.py \
583 + tools/gcc/size_overflow_plugin/size_overflow_hash_aux.h \
584 + tools/gcc/size_overflow_plugin/size_overflow_hash.h \
585 + tools/gcc/randomize_layout_seed.h
586
587 # clean - Delete most, but leave enough to build external modules
588 #
589 @@ -1219,7 +1299,7 @@ distclean: mrproper
590 @find $(srctree) $(RCS_FIND_IGNORE) \
591 \( -name '*.orig' -o -name '*.rej' -o -name '*~' \
592 -o -name '*.bak' -o -name '#*#' -o -name '.*.orig' \
593 - -o -name '.*.rej' -o -name '*%' -o -name 'core' \) \
594 + -o -name '.*.rej' -o -name '*.so' -o -name '*%' -o -name 'core' \) \
595 -type f -print | xargs rm -f
596
597
598 @@ -1385,6 +1465,8 @@ PHONY += $(module-dirs) modules
599 $(module-dirs): crmodverdir $(objtree)/Module.symvers
600 $(Q)$(MAKE) $(build)=$(patsubst _module_%,%,$@)
601
602 +modules: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
603 +modules: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
604 modules: $(module-dirs)
605 @$(kecho) ' Building modules, stage 2.';
606 $(Q)$(MAKE) -f $(srctree)/scripts/Makefile.modpost
607 @@ -1525,17 +1607,21 @@ else
608 target-dir = $(if $(KBUILD_EXTMOD),$(dir $<),$(dir $@))
609 endif
610
611 -%.s: %.c prepare scripts FORCE
612 +%.s: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
613 +%.s: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
614 +%.s: %.c gcc-plugins prepare scripts FORCE
615 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
616 %.i: %.c prepare scripts FORCE
617 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
618 -%.o: %.c prepare scripts FORCE
619 +%.o: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
620 +%.o: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
621 +%.o: %.c gcc-plugins prepare scripts FORCE
622 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
623 %.lst: %.c prepare scripts FORCE
624 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
625 -%.s: %.S prepare scripts FORCE
626 +%.s: %.S gcc-plugins prepare scripts FORCE
627 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
628 -%.o: %.S prepare scripts FORCE
629 +%.o: %.S gcc-plugins prepare scripts FORCE
630 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
631 %.symtypes: %.c prepare scripts FORCE
632 $(Q)$(MAKE) $(build)=$(build-dir) $(target-dir)$(notdir $@)
633 @@ -1547,11 +1633,15 @@ endif
634 $(build)=$(build-dir)
635 # Make sure the latest headers are built for Documentation
636 Documentation/: headers_install
637 -%/: prepare scripts FORCE
638 +%/: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
639 +%/: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
640 +%/: gcc-plugins prepare scripts FORCE
641 $(cmd_crmodverdir)
642 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
643 $(build)=$(build-dir)
644 -%.ko: prepare scripts FORCE
645 +%.ko: KBUILD_CFLAGS += $(GCC_PLUGINS_CFLAGS)
646 +%.ko: KBUILD_AFLAGS += $(GCC_PLUGINS_AFLAGS)
647 +%.ko: gcc-plugins prepare scripts FORCE
648 $(cmd_crmodverdir)
649 $(Q)$(MAKE) KBUILD_MODULES=$(if $(CONFIG_MODULES),1) \
650 $(build)=$(build-dir) $(@:.ko=.o)
651 diff --git a/arch/alpha/include/asm/atomic.h b/arch/alpha/include/asm/atomic.h
652 index 8f8eafb..3405f46 100644
653 --- a/arch/alpha/include/asm/atomic.h
654 +++ b/arch/alpha/include/asm/atomic.h
655 @@ -239,4 +239,14 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
656 #define atomic_dec(v) atomic_sub(1,(v))
657 #define atomic64_dec(v) atomic64_sub(1,(v))
658
659 +#define atomic64_read_unchecked(v) atomic64_read(v)
660 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
661 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
662 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
663 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
664 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
665 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
666 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
667 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
668 +
669 #endif /* _ALPHA_ATOMIC_H */
670 diff --git a/arch/alpha/include/asm/cache.h b/arch/alpha/include/asm/cache.h
671 index ad368a9..fbe0f25 100644
672 --- a/arch/alpha/include/asm/cache.h
673 +++ b/arch/alpha/include/asm/cache.h
674 @@ -4,19 +4,19 @@
675 #ifndef __ARCH_ALPHA_CACHE_H
676 #define __ARCH_ALPHA_CACHE_H
677
678 +#include <linux/const.h>
679
680 /* Bytes per L1 (data) cache line. */
681 #if defined(CONFIG_ALPHA_GENERIC) || defined(CONFIG_ALPHA_EV6)
682 -# define L1_CACHE_BYTES 64
683 # define L1_CACHE_SHIFT 6
684 #else
685 /* Both EV4 and EV5 are write-through, read-allocate,
686 direct-mapped, physical.
687 */
688 -# define L1_CACHE_BYTES 32
689 # define L1_CACHE_SHIFT 5
690 #endif
691
692 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
693 #define SMP_CACHE_BYTES L1_CACHE_BYTES
694
695 #endif
696 diff --git a/arch/alpha/include/asm/elf.h b/arch/alpha/include/asm/elf.h
697 index 968d999..d36b2df 100644
698 --- a/arch/alpha/include/asm/elf.h
699 +++ b/arch/alpha/include/asm/elf.h
700 @@ -91,6 +91,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
701
702 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x1000000)
703
704 +#ifdef CONFIG_PAX_ASLR
705 +#define PAX_ELF_ET_DYN_BASE (current->personality & ADDR_LIMIT_32BIT ? 0x10000 : 0x120000000UL)
706 +
707 +#define PAX_DELTA_MMAP_LEN (current->personality & ADDR_LIMIT_32BIT ? 14 : 28)
708 +#define PAX_DELTA_STACK_LEN (current->personality & ADDR_LIMIT_32BIT ? 14 : 19)
709 +#endif
710 +
711 /* $0 is set by ld.so to a pointer to a function which might be
712 registered using atexit. This provides a mean for the dynamic
713 linker to call DT_FINI functions for shared libraries that have
714 diff --git a/arch/alpha/include/asm/pgalloc.h b/arch/alpha/include/asm/pgalloc.h
715 index aab14a0..b4fa3e7 100644
716 --- a/arch/alpha/include/asm/pgalloc.h
717 +++ b/arch/alpha/include/asm/pgalloc.h
718 @@ -29,6 +29,12 @@ pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
719 pgd_set(pgd, pmd);
720 }
721
722 +static inline void
723 +pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
724 +{
725 + pgd_populate(mm, pgd, pmd);
726 +}
727 +
728 extern pgd_t *pgd_alloc(struct mm_struct *mm);
729
730 static inline void
731 diff --git a/arch/alpha/include/asm/pgtable.h b/arch/alpha/include/asm/pgtable.h
732 index a9a1195..e9b8417 100644
733 --- a/arch/alpha/include/asm/pgtable.h
734 +++ b/arch/alpha/include/asm/pgtable.h
735 @@ -101,6 +101,17 @@ struct vm_area_struct;
736 #define PAGE_SHARED __pgprot(_PAGE_VALID | __ACCESS_BITS)
737 #define PAGE_COPY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
738 #define PAGE_READONLY __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW)
739 +
740 +#ifdef CONFIG_PAX_PAGEEXEC
741 +# define PAGE_SHARED_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOE)
742 +# define PAGE_COPY_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW | _PAGE_FOE)
743 +# define PAGE_READONLY_NOEXEC __pgprot(_PAGE_VALID | __ACCESS_BITS | _PAGE_FOW | _PAGE_FOE)
744 +#else
745 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
746 +# define PAGE_COPY_NOEXEC PAGE_COPY
747 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
748 +#endif
749 +
750 #define PAGE_KERNEL __pgprot(_PAGE_VALID | _PAGE_ASM | _PAGE_KRE | _PAGE_KWE)
751
752 #define _PAGE_NORMAL(x) __pgprot(_PAGE_VALID | __ACCESS_BITS | (x))
753 diff --git a/arch/alpha/kernel/module.c b/arch/alpha/kernel/module.c
754 index 2fd00b7..cfd5069 100644
755 --- a/arch/alpha/kernel/module.c
756 +++ b/arch/alpha/kernel/module.c
757 @@ -160,7 +160,7 @@ apply_relocate_add(Elf64_Shdr *sechdrs, const char *strtab,
758
759 /* The small sections were sorted to the end of the segment.
760 The following should definitely cover them. */
761 - gp = (u64)me->module_core + me->core_size - 0x8000;
762 + gp = (u64)me->module_core_rw + me->core_size_rw - 0x8000;
763 got = sechdrs[me->arch.gotsecindex].sh_addr;
764
765 for (i = 0; i < n; i++) {
766 diff --git a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
767 index 36dc91a..6769cb0 100644
768 --- a/arch/alpha/kernel/osf_sys.c
769 +++ b/arch/alpha/kernel/osf_sys.c
770 @@ -1295,10 +1295,11 @@ SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)
771 generic version except that we know how to honor ADDR_LIMIT_32BIT. */
772
773 static unsigned long
774 -arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
775 - unsigned long limit)
776 +arch_get_unmapped_area_1(struct file *filp, unsigned long addr, unsigned long len,
777 + unsigned long limit, unsigned long flags)
778 {
779 struct vm_unmapped_area_info info;
780 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
781
782 info.flags = 0;
783 info.length = len;
784 @@ -1306,6 +1307,7 @@ arch_get_unmapped_area_1(unsigned long addr, unsigned long len,
785 info.high_limit = limit;
786 info.align_mask = 0;
787 info.align_offset = 0;
788 + info.threadstack_offset = offset;
789 return vm_unmapped_area(&info);
790 }
791
792 @@ -1338,20 +1340,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
793 merely specific addresses, but regions of memory -- perhaps
794 this feature should be incorporated into all ports? */
795
796 +#ifdef CONFIG_PAX_RANDMMAP
797 + if (!(current->mm->pax_flags & MF_PAX_RANDMMAP))
798 +#endif
799 +
800 if (addr) {
801 - addr = arch_get_unmapped_area_1 (PAGE_ALIGN(addr), len, limit);
802 + addr = arch_get_unmapped_area_1 (filp, PAGE_ALIGN(addr), len, limit, flags);
803 if (addr != (unsigned long) -ENOMEM)
804 return addr;
805 }
806
807 /* Next, try allocating at TASK_UNMAPPED_BASE. */
808 - addr = arch_get_unmapped_area_1 (PAGE_ALIGN(TASK_UNMAPPED_BASE),
809 - len, limit);
810 + addr = arch_get_unmapped_area_1 (filp, PAGE_ALIGN(current->mm->mmap_base), len, limit, flags);
811 +
812 if (addr != (unsigned long) -ENOMEM)
813 return addr;
814
815 /* Finally, try allocating in low memory. */
816 - addr = arch_get_unmapped_area_1 (PAGE_SIZE, len, limit);
817 + addr = arch_get_unmapped_area_1 (filp, PAGE_SIZE, len, limit, flags);
818
819 return addr;
820 }
821 diff --git a/arch/alpha/mm/fault.c b/arch/alpha/mm/fault.c
822 index 4a905bd..0a4da53 100644
823 --- a/arch/alpha/mm/fault.c
824 +++ b/arch/alpha/mm/fault.c
825 @@ -52,6 +52,124 @@ __load_new_mm_context(struct mm_struct *next_mm)
826 __reload_thread(pcb);
827 }
828
829 +#ifdef CONFIG_PAX_PAGEEXEC
830 +/*
831 + * PaX: decide what to do with offenders (regs->pc = fault address)
832 + *
833 + * returns 1 when task should be killed
834 + * 2 when patched PLT trampoline was detected
835 + * 3 when unpatched PLT trampoline was detected
836 + */
837 +static int pax_handle_fetch_fault(struct pt_regs *regs)
838 +{
839 +
840 +#ifdef CONFIG_PAX_EMUPLT
841 + int err;
842 +
843 + do { /* PaX: patched PLT emulation #1 */
844 + unsigned int ldah, ldq, jmp;
845 +
846 + err = get_user(ldah, (unsigned int *)regs->pc);
847 + err |= get_user(ldq, (unsigned int *)(regs->pc+4));
848 + err |= get_user(jmp, (unsigned int *)(regs->pc+8));
849 +
850 + if (err)
851 + break;
852 +
853 + if ((ldah & 0xFFFF0000U) == 0x277B0000U &&
854 + (ldq & 0xFFFF0000U) == 0xA77B0000U &&
855 + jmp == 0x6BFB0000U)
856 + {
857 + unsigned long r27, addr;
858 + unsigned long addrh = (ldah | 0xFFFFFFFFFFFF0000UL) << 16;
859 + unsigned long addrl = ldq | 0xFFFFFFFFFFFF0000UL;
860 +
861 + addr = regs->r27 + ((addrh ^ 0x80000000UL) + 0x80000000UL) + ((addrl ^ 0x8000UL) + 0x8000UL);
862 + err = get_user(r27, (unsigned long *)addr);
863 + if (err)
864 + break;
865 +
866 + regs->r27 = r27;
867 + regs->pc = r27;
868 + return 2;
869 + }
870 + } while (0);
871 +
872 + do { /* PaX: patched PLT emulation #2 */
873 + unsigned int ldah, lda, br;
874 +
875 + err = get_user(ldah, (unsigned int *)regs->pc);
876 + err |= get_user(lda, (unsigned int *)(regs->pc+4));
877 + err |= get_user(br, (unsigned int *)(regs->pc+8));
878 +
879 + if (err)
880 + break;
881 +
882 + if ((ldah & 0xFFFF0000U) == 0x277B0000U &&
883 + (lda & 0xFFFF0000U) == 0xA77B0000U &&
884 + (br & 0xFFE00000U) == 0xC3E00000U)
885 + {
886 + unsigned long addr = br | 0xFFFFFFFFFFE00000UL;
887 + unsigned long addrh = (ldah | 0xFFFFFFFFFFFF0000UL) << 16;
888 + unsigned long addrl = lda | 0xFFFFFFFFFFFF0000UL;
889 +
890 + regs->r27 += ((addrh ^ 0x80000000UL) + 0x80000000UL) + ((addrl ^ 0x8000UL) + 0x8000UL);
891 + regs->pc += 12 + (((addr ^ 0x00100000UL) + 0x00100000UL) << 2);
892 + return 2;
893 + }
894 + } while (0);
895 +
896 + do { /* PaX: unpatched PLT emulation */
897 + unsigned int br;
898 +
899 + err = get_user(br, (unsigned int *)regs->pc);
900 +
901 + if (!err && (br & 0xFFE00000U) == 0xC3800000U) {
902 + unsigned int br2, ldq, nop, jmp;
903 + unsigned long addr = br | 0xFFFFFFFFFFE00000UL, resolver;
904 +
905 + addr = regs->pc + 4 + (((addr ^ 0x00100000UL) + 0x00100000UL) << 2);
906 + err = get_user(br2, (unsigned int *)addr);
907 + err |= get_user(ldq, (unsigned int *)(addr+4));
908 + err |= get_user(nop, (unsigned int *)(addr+8));
909 + err |= get_user(jmp, (unsigned int *)(addr+12));
910 + err |= get_user(resolver, (unsigned long *)(addr+16));
911 +
912 + if (err)
913 + break;
914 +
915 + if (br2 == 0xC3600000U &&
916 + ldq == 0xA77B000CU &&
917 + nop == 0x47FF041FU &&
918 + jmp == 0x6B7B0000U)
919 + {
920 + regs->r28 = regs->pc+4;
921 + regs->r27 = addr+16;
922 + regs->pc = resolver;
923 + return 3;
924 + }
925 + }
926 + } while (0);
927 +#endif
928 +
929 + return 1;
930 +}
931 +
932 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
933 +{
934 + unsigned long i;
935 +
936 + printk(KERN_ERR "PAX: bytes at PC: ");
937 + for (i = 0; i < 5; i++) {
938 + unsigned int c;
939 + if (get_user(c, (unsigned int *)pc+i))
940 + printk(KERN_CONT "???????? ");
941 + else
942 + printk(KERN_CONT "%08x ", c);
943 + }
944 + printk("\n");
945 +}
946 +#endif
947
948 /*
949 * This routine handles page faults. It determines the address,
950 @@ -132,8 +250,29 @@ retry:
951 good_area:
952 si_code = SEGV_ACCERR;
953 if (cause < 0) {
954 - if (!(vma->vm_flags & VM_EXEC))
955 + if (!(vma->vm_flags & VM_EXEC)) {
956 +
957 +#ifdef CONFIG_PAX_PAGEEXEC
958 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || address != regs->pc)
959 + goto bad_area;
960 +
961 + up_read(&mm->mmap_sem);
962 + switch (pax_handle_fetch_fault(regs)) {
963 +
964 +#ifdef CONFIG_PAX_EMUPLT
965 + case 2:
966 + case 3:
967 + return;
968 +#endif
969 +
970 + }
971 + pax_report_fault(regs, (void *)regs->pc, (void *)rdusp());
972 + do_group_exit(SIGKILL);
973 +#else
974 goto bad_area;
975 +#endif
976 +
977 + }
978 } else if (!cause) {
979 /* Allow reads even for write-only mappings */
980 if (!(vma->vm_flags & (VM_READ | VM_WRITE)))
981 diff --git a/arch/arc/Kconfig b/arch/arc/Kconfig
982 index bd4670d..920c97a 100644
983 --- a/arch/arc/Kconfig
984 +++ b/arch/arc/Kconfig
985 @@ -485,6 +485,7 @@ config ARC_DBG_TLB_MISS_COUNT
986 bool "Profile TLB Misses"
987 default n
988 select DEBUG_FS
989 + depends on !GRKERNSEC_KMEM
990 help
991 Counts number of I and D TLB Misses and exports them via Debugfs
992 The counters can be cleared via Debugfs as well
993 diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
994 index ede2526..9e12300 100644
995 --- a/arch/arm/Kconfig
996 +++ b/arch/arm/Kconfig
997 @@ -1770,7 +1770,7 @@ config ALIGNMENT_TRAP
998
999 config UACCESS_WITH_MEMCPY
1000 bool "Use kernel mem{cpy,set}() for {copy_to,clear}_user()"
1001 - depends on MMU
1002 + depends on MMU && !PAX_MEMORY_UDEREF
1003 default y if CPU_FEROCEON
1004 help
1005 Implement faster copy_to_user and clear_user methods for CPU
1006 @@ -2006,6 +2006,7 @@ config KEXEC
1007 bool "Kexec system call (EXPERIMENTAL)"
1008 depends on (!SMP || PM_SLEEP_SMP)
1009 depends on !CPU_V7M
1010 + depends on !GRKERNSEC_KMEM
1011 help
1012 kexec is a system call that implements the ability to shutdown your
1013 current kernel, and to start another kernel. It is like a reboot
1014 diff --git a/arch/arm/Kconfig.debug b/arch/arm/Kconfig.debug
1015 index a2e16f9..b26e911 100644
1016 --- a/arch/arm/Kconfig.debug
1017 +++ b/arch/arm/Kconfig.debug
1018 @@ -7,6 +7,7 @@ config ARM_PTDUMP
1019 depends on DEBUG_KERNEL
1020 depends on MMU
1021 select DEBUG_FS
1022 + depends on !GRKERNSEC_KMEM
1023 ---help---
1024 Say Y here if you want to show the kernel pagetable layout in a
1025 debugfs file. This information is only useful for kernel developers
1026 diff --git a/arch/arm/include/asm/atomic.h b/arch/arm/include/asm/atomic.h
1027 index e22c119..abe7041 100644
1028 --- a/arch/arm/include/asm/atomic.h
1029 +++ b/arch/arm/include/asm/atomic.h
1030 @@ -18,17 +18,41 @@
1031 #include <asm/barrier.h>
1032 #include <asm/cmpxchg.h>
1033
1034 +#ifdef CONFIG_GENERIC_ATOMIC64
1035 +#include <asm-generic/atomic64.h>
1036 +#endif
1037 +
1038 #define ATOMIC_INIT(i) { (i) }
1039
1040 #ifdef __KERNEL__
1041
1042 +#ifdef CONFIG_THUMB2_KERNEL
1043 +#define REFCOUNT_TRAP_INSN "bkpt 0xf1"
1044 +#else
1045 +#define REFCOUNT_TRAP_INSN "bkpt 0xf103"
1046 +#endif
1047 +
1048 +#define _ASM_EXTABLE(from, to) \
1049 +" .pushsection __ex_table,\"a\"\n"\
1050 +" .align 3\n" \
1051 +" .long " #from ", " #to"\n" \
1052 +" .popsection"
1053 +
1054 /*
1055 * On ARM, ordinary assignment (str instruction) doesn't clear the local
1056 * strex/ldrex monitor on some implementations. The reason we can use it for
1057 * atomic_set() is the clrex or dummy strex done on every exception return.
1058 */
1059 #define atomic_read(v) ACCESS_ONCE((v)->counter)
1060 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
1061 +{
1062 + return ACCESS_ONCE(v->counter);
1063 +}
1064 #define atomic_set(v,i) (((v)->counter) = (i))
1065 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
1066 +{
1067 + v->counter = i;
1068 +}
1069
1070 #if __LINUX_ARM_ARCH__ >= 6
1071
1072 @@ -38,26 +62,50 @@
1073 * to ensure that the update happens.
1074 */
1075
1076 -#define ATOMIC_OP(op, c_op, asm_op) \
1077 -static inline void atomic_##op(int i, atomic_t *v) \
1078 +#ifdef CONFIG_PAX_REFCOUNT
1079 +#define __OVERFLOW_POST \
1080 + " bvc 3f\n" \
1081 + "2: " REFCOUNT_TRAP_INSN "\n"\
1082 + "3:\n"
1083 +#define __OVERFLOW_POST_RETURN \
1084 + " bvc 3f\n" \
1085 +" mov %0, %1\n" \
1086 + "2: " REFCOUNT_TRAP_INSN "\n"\
1087 + "3:\n"
1088 +#define __OVERFLOW_EXTABLE \
1089 + "4:\n" \
1090 + _ASM_EXTABLE(2b, 4b)
1091 +#else
1092 +#define __OVERFLOW_POST
1093 +#define __OVERFLOW_POST_RETURN
1094 +#define __OVERFLOW_EXTABLE
1095 +#endif
1096 +
1097 +#define __ATOMIC_OP(op, suffix, c_op, asm_op, post_op, extable) \
1098 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t *v) \
1099 { \
1100 unsigned long tmp; \
1101 int result; \
1102 \
1103 prefetchw(&v->counter); \
1104 - __asm__ __volatile__("@ atomic_" #op "\n" \
1105 + __asm__ __volatile__("@ atomic_" #op #suffix "\n" \
1106 "1: ldrex %0, [%3]\n" \
1107 " " #asm_op " %0, %0, %4\n" \
1108 + post_op \
1109 " strex %1, %0, [%3]\n" \
1110 " teq %1, #0\n" \
1111 -" bne 1b" \
1112 +" bne 1b\n" \
1113 + extable \
1114 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1115 : "r" (&v->counter), "Ir" (i) \
1116 : "cc"); \
1117 } \
1118
1119 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
1120 -static inline int atomic_##op##_return(int i, atomic_t *v) \
1121 +#define ATOMIC_OP(op, c_op, asm_op) __ATOMIC_OP(op, _unchecked, c_op, asm_op, , )\
1122 + __ATOMIC_OP(op, , c_op, asm_op##s, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
1123 +
1124 +#define __ATOMIC_OP_RETURN(op, suffix, c_op, asm_op, post_op, extable) \
1125 +static inline int atomic_##op##_return##suffix(int i, atomic##suffix##_t *v)\
1126 { \
1127 unsigned long tmp; \
1128 int result; \
1129 @@ -65,12 +113,14 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \
1130 smp_mb(); \
1131 prefetchw(&v->counter); \
1132 \
1133 - __asm__ __volatile__("@ atomic_" #op "_return\n" \
1134 + __asm__ __volatile__("@ atomic_" #op "_return" #suffix "\n" \
1135 "1: ldrex %0, [%3]\n" \
1136 " " #asm_op " %0, %0, %4\n" \
1137 + post_op \
1138 " strex %1, %0, [%3]\n" \
1139 " teq %1, #0\n" \
1140 -" bne 1b" \
1141 +" bne 1b\n" \
1142 + extable \
1143 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1144 : "r" (&v->counter), "Ir" (i) \
1145 : "cc"); \
1146 @@ -80,6 +130,9 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \
1147 return result; \
1148 }
1149
1150 +#define ATOMIC_OP_RETURN(op, c_op, asm_op) __ATOMIC_OP_RETURN(op, _unchecked, c_op, asm_op, , )\
1151 + __ATOMIC_OP_RETURN(op, , c_op, asm_op##s, __OVERFLOW_POST_RETURN, __OVERFLOW_EXTABLE)
1152 +
1153 static inline int atomic_cmpxchg(atomic_t *ptr, int old, int new)
1154 {
1155 int oldval;
1156 @@ -115,12 +168,24 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1157 __asm__ __volatile__ ("@ atomic_add_unless\n"
1158 "1: ldrex %0, [%4]\n"
1159 " teq %0, %5\n"
1160 -" beq 2f\n"
1161 -" add %1, %0, %6\n"
1162 +" beq 4f\n"
1163 +" adds %1, %0, %6\n"
1164 +
1165 +#ifdef CONFIG_PAX_REFCOUNT
1166 +" bvc 3f\n"
1167 +"2: " REFCOUNT_TRAP_INSN "\n"
1168 +"3:\n"
1169 +#endif
1170 +
1171 " strex %2, %1, [%4]\n"
1172 " teq %2, #0\n"
1173 " bne 1b\n"
1174 -"2:"
1175 +"4:"
1176 +
1177 +#ifdef CONFIG_PAX_REFCOUNT
1178 + _ASM_EXTABLE(2b, 4b)
1179 +#endif
1180 +
1181 : "=&r" (oldval), "=&r" (newval), "=&r" (tmp), "+Qo" (v->counter)
1182 : "r" (&v->counter), "r" (u), "r" (a)
1183 : "cc");
1184 @@ -131,14 +196,36 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1185 return oldval;
1186 }
1187
1188 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *ptr, int old, int new)
1189 +{
1190 + unsigned long oldval, res;
1191 +
1192 + smp_mb();
1193 +
1194 + do {
1195 + __asm__ __volatile__("@ atomic_cmpxchg_unchecked\n"
1196 + "ldrex %1, [%3]\n"
1197 + "mov %0, #0\n"
1198 + "teq %1, %4\n"
1199 + "strexeq %0, %5, [%3]\n"
1200 + : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
1201 + : "r" (&ptr->counter), "Ir" (old), "r" (new)
1202 + : "cc");
1203 + } while (res);
1204 +
1205 + smp_mb();
1206 +
1207 + return oldval;
1208 +}
1209 +
1210 #else /* ARM_ARCH_6 */
1211
1212 #ifdef CONFIG_SMP
1213 #error SMP not supported on pre-ARMv6 CPUs
1214 #endif
1215
1216 -#define ATOMIC_OP(op, c_op, asm_op) \
1217 -static inline void atomic_##op(int i, atomic_t *v) \
1218 +#define __ATOMIC_OP(op, suffix, c_op, asm_op) \
1219 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t *v) \
1220 { \
1221 unsigned long flags; \
1222 \
1223 @@ -147,8 +234,11 @@ static inline void atomic_##op(int i, atomic_t *v) \
1224 raw_local_irq_restore(flags); \
1225 } \
1226
1227 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
1228 -static inline int atomic_##op##_return(int i, atomic_t *v) \
1229 +#define ATOMIC_OP(op, c_op, asm_op) __ATOMIC_OP(op, , c_op, asm_op) \
1230 + __ATOMIC_OP(op, _unchecked, c_op, asm_op)
1231 +
1232 +#define __ATOMIC_OP_RETURN(op, suffix, c_op, asm_op) \
1233 +static inline int atomic_##op##_return##suffix(int i, atomic##suffix##_t *v)\
1234 { \
1235 unsigned long flags; \
1236 int val; \
1237 @@ -161,6 +251,9 @@ static inline int atomic_##op##_return(int i, atomic_t *v) \
1238 return val; \
1239 }
1240
1241 +#define ATOMIC_OP_RETURN(op, c_op, asm_op) __ATOMIC_OP_RETURN(op, , c_op, asm_op)\
1242 + __ATOMIC_OP_RETURN(op, _unchecked, c_op, asm_op)
1243 +
1244 static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
1245 {
1246 int ret;
1247 @@ -175,6 +268,11 @@ static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
1248 return ret;
1249 }
1250
1251 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
1252 +{
1253 + return atomic_cmpxchg((atomic_t *)v, old, new);
1254 +}
1255 +
1256 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
1257 {
1258 int c, old;
1259 @@ -196,16 +294,38 @@ ATOMIC_OPS(sub, -=, sub)
1260
1261 #undef ATOMIC_OPS
1262 #undef ATOMIC_OP_RETURN
1263 +#undef __ATOMIC_OP_RETURN
1264 #undef ATOMIC_OP
1265 +#undef __ATOMIC_OP
1266
1267 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
1268 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
1269 +{
1270 + return xchg(&v->counter, new);
1271 +}
1272
1273 #define atomic_inc(v) atomic_add(1, v)
1274 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
1275 +{
1276 + atomic_add_unchecked(1, v);
1277 +}
1278 #define atomic_dec(v) atomic_sub(1, v)
1279 +static inline void atomic_dec_unchecked(atomic_unchecked_t *v)
1280 +{
1281 + atomic_sub_unchecked(1, v);
1282 +}
1283
1284 #define atomic_inc_and_test(v) (atomic_add_return(1, v) == 0)
1285 +static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
1286 +{
1287 + return atomic_add_return_unchecked(1, v) == 0;
1288 +}
1289 #define atomic_dec_and_test(v) (atomic_sub_return(1, v) == 0)
1290 #define atomic_inc_return(v) (atomic_add_return(1, v))
1291 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
1292 +{
1293 + return atomic_add_return_unchecked(1, v);
1294 +}
1295 #define atomic_dec_return(v) (atomic_sub_return(1, v))
1296 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
1297
1298 @@ -216,6 +336,14 @@ typedef struct {
1299 long long counter;
1300 } atomic64_t;
1301
1302 +#ifdef CONFIG_PAX_REFCOUNT
1303 +typedef struct {
1304 + long long counter;
1305 +} atomic64_unchecked_t;
1306 +#else
1307 +typedef atomic64_t atomic64_unchecked_t;
1308 +#endif
1309 +
1310 #define ATOMIC64_INIT(i) { (i) }
1311
1312 #ifdef CONFIG_ARM_LPAE
1313 @@ -232,6 +360,19 @@ static inline long long atomic64_read(const atomic64_t *v)
1314 return result;
1315 }
1316
1317 +static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
1318 +{
1319 + long long result;
1320 +
1321 + __asm__ __volatile__("@ atomic64_read_unchecked\n"
1322 +" ldrd %0, %H0, [%1]"
1323 + : "=&r" (result)
1324 + : "r" (&v->counter), "Qo" (v->counter)
1325 + );
1326 +
1327 + return result;
1328 +}
1329 +
1330 static inline void atomic64_set(atomic64_t *v, long long i)
1331 {
1332 __asm__ __volatile__("@ atomic64_set\n"
1333 @@ -240,6 +381,15 @@ static inline void atomic64_set(atomic64_t *v, long long i)
1334 : "r" (&v->counter), "r" (i)
1335 );
1336 }
1337 +
1338 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
1339 +{
1340 + __asm__ __volatile__("@ atomic64_set_unchecked\n"
1341 +" strd %2, %H2, [%1]"
1342 + : "=Qo" (v->counter)
1343 + : "r" (&v->counter), "r" (i)
1344 + );
1345 +}
1346 #else
1347 static inline long long atomic64_read(const atomic64_t *v)
1348 {
1349 @@ -254,6 +404,19 @@ static inline long long atomic64_read(const atomic64_t *v)
1350 return result;
1351 }
1352
1353 +static inline long long atomic64_read_unchecked(const atomic64_unchecked_t *v)
1354 +{
1355 + long long result;
1356 +
1357 + __asm__ __volatile__("@ atomic64_read_unchecked\n"
1358 +" ldrexd %0, %H0, [%1]"
1359 + : "=&r" (result)
1360 + : "r" (&v->counter), "Qo" (v->counter)
1361 + );
1362 +
1363 + return result;
1364 +}
1365 +
1366 static inline void atomic64_set(atomic64_t *v, long long i)
1367 {
1368 long long tmp;
1369 @@ -268,29 +431,57 @@ static inline void atomic64_set(atomic64_t *v, long long i)
1370 : "r" (&v->counter), "r" (i)
1371 : "cc");
1372 }
1373 +
1374 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
1375 +{
1376 + long long tmp;
1377 +
1378 + prefetchw(&v->counter);
1379 + __asm__ __volatile__("@ atomic64_set_unchecked\n"
1380 +"1: ldrexd %0, %H0, [%2]\n"
1381 +" strexd %0, %3, %H3, [%2]\n"
1382 +" teq %0, #0\n"
1383 +" bne 1b"
1384 + : "=&r" (tmp), "=Qo" (v->counter)
1385 + : "r" (&v->counter), "r" (i)
1386 + : "cc");
1387 +}
1388 #endif
1389
1390 -#define ATOMIC64_OP(op, op1, op2) \
1391 -static inline void atomic64_##op(long long i, atomic64_t *v) \
1392 +#undef __OVERFLOW_POST_RETURN
1393 +#define __OVERFLOW_POST_RETURN \
1394 + " bvc 3f\n" \
1395 +" mov %0, %1\n" \
1396 +" mov %H0, %H1\n" \
1397 + "2: " REFCOUNT_TRAP_INSN "\n"\
1398 + "3:\n"
1399 +
1400 +#define __ATOMIC64_OP(op, suffix, op1, op2, post_op, extable) \
1401 +static inline void atomic64_##op##suffix(long long i, atomic64##suffix##_t *v)\
1402 { \
1403 long long result; \
1404 unsigned long tmp; \
1405 \
1406 prefetchw(&v->counter); \
1407 - __asm__ __volatile__("@ atomic64_" #op "\n" \
1408 + __asm__ __volatile__("@ atomic64_" #op #suffix "\n" \
1409 "1: ldrexd %0, %H0, [%3]\n" \
1410 " " #op1 " %Q0, %Q0, %Q4\n" \
1411 " " #op2 " %R0, %R0, %R4\n" \
1412 + post_op \
1413 " strexd %1, %0, %H0, [%3]\n" \
1414 " teq %1, #0\n" \
1415 -" bne 1b" \
1416 +" bne 1b\n" \
1417 + extable \
1418 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1419 : "r" (&v->counter), "r" (i) \
1420 : "cc"); \
1421 } \
1422
1423 -#define ATOMIC64_OP_RETURN(op, op1, op2) \
1424 -static inline long long atomic64_##op##_return(long long i, atomic64_t *v) \
1425 +#define ATOMIC64_OP(op, op1, op2) __ATOMIC64_OP(op, _unchecked, op1, op2, , ) \
1426 + __ATOMIC64_OP(op, , op1, op2##s, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
1427 +
1428 +#define __ATOMIC64_OP_RETURN(op, suffix, op1, op2, post_op, extable) \
1429 +static inline long long atomic64_##op##_return##suffix(long long i, atomic64##suffix##_t *v) \
1430 { \
1431 long long result; \
1432 unsigned long tmp; \
1433 @@ -298,13 +489,15 @@ static inline long long atomic64_##op##_return(long long i, atomic64_t *v) \
1434 smp_mb(); \
1435 prefetchw(&v->counter); \
1436 \
1437 - __asm__ __volatile__("@ atomic64_" #op "_return\n" \
1438 + __asm__ __volatile__("@ atomic64_" #op "_return" #suffix "\n" \
1439 "1: ldrexd %0, %H0, [%3]\n" \
1440 " " #op1 " %Q0, %Q0, %Q4\n" \
1441 " " #op2 " %R0, %R0, %R4\n" \
1442 + post_op \
1443 " strexd %1, %0, %H0, [%3]\n" \
1444 " teq %1, #0\n" \
1445 -" bne 1b" \
1446 +" bne 1b\n" \
1447 + extable \
1448 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter) \
1449 : "r" (&v->counter), "r" (i) \
1450 : "cc"); \
1451 @@ -314,6 +507,9 @@ static inline long long atomic64_##op##_return(long long i, atomic64_t *v) \
1452 return result; \
1453 }
1454
1455 +#define ATOMIC64_OP_RETURN(op, op1, op2) __ATOMIC64_OP_RETURN(op, _unchecked, op1, op2, , ) \
1456 + __ATOMIC64_OP_RETURN(op, , op1, op2##s, __OVERFLOW_POST_RETURN, __OVERFLOW_EXTABLE)
1457 +
1458 #define ATOMIC64_OPS(op, op1, op2) \
1459 ATOMIC64_OP(op, op1, op2) \
1460 ATOMIC64_OP_RETURN(op, op1, op2)
1461 @@ -323,7 +519,12 @@ ATOMIC64_OPS(sub, subs, sbc)
1462
1463 #undef ATOMIC64_OPS
1464 #undef ATOMIC64_OP_RETURN
1465 +#undef __ATOMIC64_OP_RETURN
1466 #undef ATOMIC64_OP
1467 +#undef __ATOMIC64_OP
1468 +#undef __OVERFLOW_EXTABLE
1469 +#undef __OVERFLOW_POST_RETURN
1470 +#undef __OVERFLOW_POST
1471
1472 static inline long long atomic64_cmpxchg(atomic64_t *ptr, long long old,
1473 long long new)
1474 @@ -351,6 +552,31 @@ static inline long long atomic64_cmpxchg(atomic64_t *ptr, long long old,
1475 return oldval;
1476 }
1477
1478 +static inline long long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *ptr, long long old,
1479 + long long new)
1480 +{
1481 + long long oldval;
1482 + unsigned long res;
1483 +
1484 + smp_mb();
1485 +
1486 + do {
1487 + __asm__ __volatile__("@ atomic64_cmpxchg_unchecked\n"
1488 + "ldrexd %1, %H1, [%3]\n"
1489 + "mov %0, #0\n"
1490 + "teq %1, %4\n"
1491 + "teqeq %H1, %H4\n"
1492 + "strexdeq %0, %5, %H5, [%3]"
1493 + : "=&r" (res), "=&r" (oldval), "+Qo" (ptr->counter)
1494 + : "r" (&ptr->counter), "r" (old), "r" (new)
1495 + : "cc");
1496 + } while (res);
1497 +
1498 + smp_mb();
1499 +
1500 + return oldval;
1501 +}
1502 +
1503 static inline long long atomic64_xchg(atomic64_t *ptr, long long new)
1504 {
1505 long long result;
1506 @@ -376,21 +602,35 @@ static inline long long atomic64_xchg(atomic64_t *ptr, long long new)
1507 static inline long long atomic64_dec_if_positive(atomic64_t *v)
1508 {
1509 long long result;
1510 - unsigned long tmp;
1511 + u64 tmp;
1512
1513 smp_mb();
1514 prefetchw(&v->counter);
1515
1516 __asm__ __volatile__("@ atomic64_dec_if_positive\n"
1517 -"1: ldrexd %0, %H0, [%3]\n"
1518 -" subs %Q0, %Q0, #1\n"
1519 -" sbc %R0, %R0, #0\n"
1520 +"1: ldrexd %1, %H1, [%3]\n"
1521 +" subs %Q0, %Q1, #1\n"
1522 +" sbcs %R0, %R1, #0\n"
1523 +
1524 +#ifdef CONFIG_PAX_REFCOUNT
1525 +" bvc 3f\n"
1526 +" mov %Q0, %Q1\n"
1527 +" mov %R0, %R1\n"
1528 +"2: " REFCOUNT_TRAP_INSN "\n"
1529 +"3:\n"
1530 +#endif
1531 +
1532 " teq %R0, #0\n"
1533 -" bmi 2f\n"
1534 +" bmi 4f\n"
1535 " strexd %1, %0, %H0, [%3]\n"
1536 " teq %1, #0\n"
1537 " bne 1b\n"
1538 -"2:"
1539 +"4:\n"
1540 +
1541 +#ifdef CONFIG_PAX_REFCOUNT
1542 + _ASM_EXTABLE(2b, 4b)
1543 +#endif
1544 +
1545 : "=&r" (result), "=&r" (tmp), "+Qo" (v->counter)
1546 : "r" (&v->counter)
1547 : "cc");
1548 @@ -414,13 +654,25 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
1549 " teq %0, %5\n"
1550 " teqeq %H0, %H5\n"
1551 " moveq %1, #0\n"
1552 -" beq 2f\n"
1553 +" beq 4f\n"
1554 " adds %Q0, %Q0, %Q6\n"
1555 -" adc %R0, %R0, %R6\n"
1556 +" adcs %R0, %R0, %R6\n"
1557 +
1558 +#ifdef CONFIG_PAX_REFCOUNT
1559 +" bvc 3f\n"
1560 +"2: " REFCOUNT_TRAP_INSN "\n"
1561 +"3:\n"
1562 +#endif
1563 +
1564 " strexd %2, %0, %H0, [%4]\n"
1565 " teq %2, #0\n"
1566 " bne 1b\n"
1567 -"2:"
1568 +"4:\n"
1569 +
1570 +#ifdef CONFIG_PAX_REFCOUNT
1571 + _ASM_EXTABLE(2b, 4b)
1572 +#endif
1573 +
1574 : "=&r" (val), "+r" (ret), "=&r" (tmp), "+Qo" (v->counter)
1575 : "r" (&v->counter), "r" (u), "r" (a)
1576 : "cc");
1577 @@ -433,10 +685,13 @@ static inline int atomic64_add_unless(atomic64_t *v, long long a, long long u)
1578
1579 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
1580 #define atomic64_inc(v) atomic64_add(1LL, (v))
1581 +#define atomic64_inc_unchecked(v) atomic64_add_unchecked(1LL, (v))
1582 #define atomic64_inc_return(v) atomic64_add_return(1LL, (v))
1583 +#define atomic64_inc_return_unchecked(v) atomic64_add_return_unchecked(1LL, (v))
1584 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
1585 #define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
1586 #define atomic64_dec(v) atomic64_sub(1LL, (v))
1587 +#define atomic64_dec_unchecked(v) atomic64_sub_unchecked(1LL, (v))
1588 #define atomic64_dec_return(v) atomic64_sub_return(1LL, (v))
1589 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
1590 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
1591 diff --git a/arch/arm/include/asm/barrier.h b/arch/arm/include/asm/barrier.h
1592 index 6c2327e..85beac4 100644
1593 --- a/arch/arm/include/asm/barrier.h
1594 +++ b/arch/arm/include/asm/barrier.h
1595 @@ -67,7 +67,7 @@
1596 do { \
1597 compiletime_assert_atomic_type(*p); \
1598 smp_mb(); \
1599 - ACCESS_ONCE(*p) = (v); \
1600 + ACCESS_ONCE_RW(*p) = (v); \
1601 } while (0)
1602
1603 #define smp_load_acquire(p) \
1604 diff --git a/arch/arm/include/asm/cache.h b/arch/arm/include/asm/cache.h
1605 index 75fe66b..ba3dee4 100644
1606 --- a/arch/arm/include/asm/cache.h
1607 +++ b/arch/arm/include/asm/cache.h
1608 @@ -4,8 +4,10 @@
1609 #ifndef __ASMARM_CACHE_H
1610 #define __ASMARM_CACHE_H
1611
1612 +#include <linux/const.h>
1613 +
1614 #define L1_CACHE_SHIFT CONFIG_ARM_L1_CACHE_SHIFT
1615 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
1616 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
1617
1618 /*
1619 * Memory returned by kmalloc() may be used for DMA, so we must make
1620 @@ -24,5 +26,6 @@
1621 #endif
1622
1623 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
1624 +#define __read_only __attribute__ ((__section__(".data..read_only")))
1625
1626 #endif
1627 diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
1628 index 4812cda..9da8116 100644
1629 --- a/arch/arm/include/asm/cacheflush.h
1630 +++ b/arch/arm/include/asm/cacheflush.h
1631 @@ -116,7 +116,7 @@ struct cpu_cache_fns {
1632 void (*dma_unmap_area)(const void *, size_t, int);
1633
1634 void (*dma_flush_range)(const void *, const void *);
1635 -};
1636 +} __no_const;
1637
1638 /*
1639 * Select the calling method
1640 diff --git a/arch/arm/include/asm/checksum.h b/arch/arm/include/asm/checksum.h
1641 index 5233151..87a71fa 100644
1642 --- a/arch/arm/include/asm/checksum.h
1643 +++ b/arch/arm/include/asm/checksum.h
1644 @@ -37,7 +37,19 @@ __wsum
1645 csum_partial_copy_nocheck(const void *src, void *dst, int len, __wsum sum);
1646
1647 __wsum
1648 -csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr);
1649 +__csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr);
1650 +
1651 +static inline __wsum
1652 +csum_partial_copy_from_user(const void __user *src, void *dst, int len, __wsum sum, int *err_ptr)
1653 +{
1654 + __wsum ret;
1655 + pax_open_userland();
1656 + ret = __csum_partial_copy_from_user(src, dst, len, sum, err_ptr);
1657 + pax_close_userland();
1658 + return ret;
1659 +}
1660 +
1661 +
1662
1663 /*
1664 * Fold a partial checksum without adding pseudo headers
1665 diff --git a/arch/arm/include/asm/cmpxchg.h b/arch/arm/include/asm/cmpxchg.h
1666 index 1692a05..1835802 100644
1667 --- a/arch/arm/include/asm/cmpxchg.h
1668 +++ b/arch/arm/include/asm/cmpxchg.h
1669 @@ -107,6 +107,10 @@ static inline unsigned long __xchg(unsigned long x, volatile void *ptr, int size
1670 (__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), \
1671 sizeof(*(ptr))); \
1672 })
1673 +#define xchg_unchecked(ptr, x) ({ \
1674 + (__typeof__(*(ptr)))__xchg((unsigned long)(x), (ptr), \
1675 + sizeof(*(ptr))); \
1676 +})
1677
1678 #include <asm-generic/cmpxchg-local.h>
1679
1680 diff --git a/arch/arm/include/asm/cpuidle.h b/arch/arm/include/asm/cpuidle.h
1681 index 0f84249..8e83c55 100644
1682 --- a/arch/arm/include/asm/cpuidle.h
1683 +++ b/arch/arm/include/asm/cpuidle.h
1684 @@ -32,7 +32,7 @@ struct device_node;
1685 struct cpuidle_ops {
1686 int (*suspend)(int cpu, unsigned long arg);
1687 int (*init)(struct device_node *, int cpu);
1688 -};
1689 +} __no_const;
1690
1691 struct of_cpuidle_method {
1692 const char *method;
1693 diff --git a/arch/arm/include/asm/domain.h b/arch/arm/include/asm/domain.h
1694 index 6ddbe44..b5e38b1a 100644
1695 --- a/arch/arm/include/asm/domain.h
1696 +++ b/arch/arm/include/asm/domain.h
1697 @@ -48,18 +48,37 @@
1698 * Domain types
1699 */
1700 #define DOMAIN_NOACCESS 0
1701 -#define DOMAIN_CLIENT 1
1702 #ifdef CONFIG_CPU_USE_DOMAINS
1703 +#define DOMAIN_USERCLIENT 1
1704 +#define DOMAIN_KERNELCLIENT 1
1705 #define DOMAIN_MANAGER 3
1706 +#define DOMAIN_VECTORS DOMAIN_USER
1707 #else
1708 +
1709 +#ifdef CONFIG_PAX_KERNEXEC
1710 #define DOMAIN_MANAGER 1
1711 +#define DOMAIN_KERNEXEC 3
1712 +#else
1713 +#define DOMAIN_MANAGER 1
1714 +#endif
1715 +
1716 +#ifdef CONFIG_PAX_MEMORY_UDEREF
1717 +#define DOMAIN_USERCLIENT 0
1718 +#define DOMAIN_UDEREF 1
1719 +#define DOMAIN_VECTORS DOMAIN_KERNEL
1720 +#else
1721 +#define DOMAIN_USERCLIENT 1
1722 +#define DOMAIN_VECTORS DOMAIN_USER
1723 +#endif
1724 +#define DOMAIN_KERNELCLIENT 1
1725 +
1726 #endif
1727
1728 #define domain_val(dom,type) ((type) << (2*(dom)))
1729
1730 #ifndef __ASSEMBLY__
1731
1732 -#ifdef CONFIG_CPU_USE_DOMAINS
1733 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
1734 static inline void set_domain(unsigned val)
1735 {
1736 asm volatile(
1737 @@ -68,15 +87,7 @@ static inline void set_domain(unsigned val)
1738 isb();
1739 }
1740
1741 -#define modify_domain(dom,type) \
1742 - do { \
1743 - struct thread_info *thread = current_thread_info(); \
1744 - unsigned int domain = thread->cpu_domain; \
1745 - domain &= ~domain_val(dom, DOMAIN_MANAGER); \
1746 - thread->cpu_domain = domain | domain_val(dom, type); \
1747 - set_domain(thread->cpu_domain); \
1748 - } while (0)
1749 -
1750 +extern void modify_domain(unsigned int dom, unsigned int type);
1751 #else
1752 static inline void set_domain(unsigned val) { }
1753 static inline void modify_domain(unsigned dom, unsigned type) { }
1754 diff --git a/arch/arm/include/asm/elf.h b/arch/arm/include/asm/elf.h
1755 index d2315ff..f60b47b 100644
1756 --- a/arch/arm/include/asm/elf.h
1757 +++ b/arch/arm/include/asm/elf.h
1758 @@ -117,7 +117,14 @@ int dump_task_regs(struct task_struct *t, elf_gregset_t *elfregs);
1759 the loader. We need to make sure that it is out of the way of the program
1760 that it will "exec", and that there is sufficient room for the brk. */
1761
1762 -#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
1763 +#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
1764 +
1765 +#ifdef CONFIG_PAX_ASLR
1766 +#define PAX_ELF_ET_DYN_BASE 0x00008000UL
1767 +
1768 +#define PAX_DELTA_MMAP_LEN ((current->personality == PER_LINUX_32BIT) ? 16 : 10)
1769 +#define PAX_DELTA_STACK_LEN ((current->personality == PER_LINUX_32BIT) ? 16 : 10)
1770 +#endif
1771
1772 /* When the program starts, a1 contains a pointer to a function to be
1773 registered with atexit, as per the SVR4 ABI. A value of 0 means we
1774 diff --git a/arch/arm/include/asm/fncpy.h b/arch/arm/include/asm/fncpy.h
1775 index de53547..52b9a28 100644
1776 --- a/arch/arm/include/asm/fncpy.h
1777 +++ b/arch/arm/include/asm/fncpy.h
1778 @@ -81,7 +81,9 @@
1779 BUG_ON((uintptr_t)(dest_buf) & (FNCPY_ALIGN - 1) || \
1780 (__funcp_address & ~(uintptr_t)1 & (FNCPY_ALIGN - 1))); \
1781 \
1782 + pax_open_kernel(); \
1783 memcpy(dest_buf, (void const *)(__funcp_address & ~1), size); \
1784 + pax_close_kernel(); \
1785 flush_icache_range((unsigned long)(dest_buf), \
1786 (unsigned long)(dest_buf) + (size)); \
1787 \
1788 diff --git a/arch/arm/include/asm/futex.h b/arch/arm/include/asm/futex.h
1789 index 5eed828..365e018 100644
1790 --- a/arch/arm/include/asm/futex.h
1791 +++ b/arch/arm/include/asm/futex.h
1792 @@ -46,6 +46,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1793 if (!access_ok(VERIFY_WRITE, uaddr, sizeof(u32)))
1794 return -EFAULT;
1795
1796 + pax_open_userland();
1797 +
1798 smp_mb();
1799 /* Prefetching cannot fault */
1800 prefetchw(uaddr);
1801 @@ -63,6 +65,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1802 : "cc", "memory");
1803 smp_mb();
1804
1805 + pax_close_userland();
1806 +
1807 *uval = val;
1808 return ret;
1809 }
1810 @@ -94,6 +98,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1811 return -EFAULT;
1812
1813 preempt_disable();
1814 + pax_open_userland();
1815 +
1816 __asm__ __volatile__("@futex_atomic_cmpxchg_inatomic\n"
1817 "1: " TUSER(ldr) " %1, [%4]\n"
1818 " teq %1, %2\n"
1819 @@ -104,6 +110,8 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
1820 : "r" (oldval), "r" (newval), "r" (uaddr), "Ir" (-EFAULT)
1821 : "cc", "memory");
1822
1823 + pax_close_userland();
1824 +
1825 *uval = val;
1826 preempt_enable();
1827
1828 @@ -131,6 +139,7 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr)
1829 preempt_disable();
1830 #endif
1831 pagefault_disable();
1832 + pax_open_userland();
1833
1834 switch (op) {
1835 case FUTEX_OP_SET:
1836 @@ -152,6 +161,7 @@ futex_atomic_op_inuser (int encoded_op, u32 __user *uaddr)
1837 ret = -ENOSYS;
1838 }
1839
1840 + pax_close_userland();
1841 pagefault_enable();
1842 #ifndef CONFIG_SMP
1843 preempt_enable();
1844 diff --git a/arch/arm/include/asm/kmap_types.h b/arch/arm/include/asm/kmap_types.h
1845 index 83eb2f7..ed77159 100644
1846 --- a/arch/arm/include/asm/kmap_types.h
1847 +++ b/arch/arm/include/asm/kmap_types.h
1848 @@ -4,6 +4,6 @@
1849 /*
1850 * This is the "bare minimum". AIO seems to require this.
1851 */
1852 -#define KM_TYPE_NR 16
1853 +#define KM_TYPE_NR 17
1854
1855 #endif
1856 diff --git a/arch/arm/include/asm/mach/dma.h b/arch/arm/include/asm/mach/dma.h
1857 index 9e614a1..3302cca 100644
1858 --- a/arch/arm/include/asm/mach/dma.h
1859 +++ b/arch/arm/include/asm/mach/dma.h
1860 @@ -22,7 +22,7 @@ struct dma_ops {
1861 int (*residue)(unsigned int, dma_t *); /* optional */
1862 int (*setspeed)(unsigned int, dma_t *, int); /* optional */
1863 const char *type;
1864 -};
1865 +} __do_const;
1866
1867 struct dma_struct {
1868 void *addr; /* single DMA address */
1869 diff --git a/arch/arm/include/asm/mach/map.h b/arch/arm/include/asm/mach/map.h
1870 index f98c7f3..e5c626d 100644
1871 --- a/arch/arm/include/asm/mach/map.h
1872 +++ b/arch/arm/include/asm/mach/map.h
1873 @@ -23,17 +23,19 @@ struct map_desc {
1874
1875 /* types 0-3 are defined in asm/io.h */
1876 enum {
1877 - MT_UNCACHED = 4,
1878 - MT_CACHECLEAN,
1879 - MT_MINICLEAN,
1880 + MT_UNCACHED_RW = 4,
1881 + MT_CACHECLEAN_RO,
1882 + MT_MINICLEAN_RO,
1883 MT_LOW_VECTORS,
1884 MT_HIGH_VECTORS,
1885 - MT_MEMORY_RWX,
1886 + __MT_MEMORY_RWX,
1887 MT_MEMORY_RW,
1888 - MT_ROM,
1889 - MT_MEMORY_RWX_NONCACHED,
1890 + MT_MEMORY_RX,
1891 + MT_ROM_RX,
1892 + MT_MEMORY_RW_NONCACHED,
1893 + MT_MEMORY_RX_NONCACHED,
1894 MT_MEMORY_RW_DTCM,
1895 - MT_MEMORY_RWX_ITCM,
1896 + MT_MEMORY_RX_ITCM,
1897 MT_MEMORY_RW_SO,
1898 MT_MEMORY_DMA_READY,
1899 };
1900 diff --git a/arch/arm/include/asm/outercache.h b/arch/arm/include/asm/outercache.h
1901 index 563b92f..689d58e 100644
1902 --- a/arch/arm/include/asm/outercache.h
1903 +++ b/arch/arm/include/asm/outercache.h
1904 @@ -39,7 +39,7 @@ struct outer_cache_fns {
1905 /* This is an ARM L2C thing */
1906 void (*write_sec)(unsigned long, unsigned);
1907 void (*configure)(const struct l2x0_regs *);
1908 -};
1909 +} __no_const;
1910
1911 extern struct outer_cache_fns outer_cache;
1912
1913 diff --git a/arch/arm/include/asm/page.h b/arch/arm/include/asm/page.h
1914 index 4355f0e..cd9168e 100644
1915 --- a/arch/arm/include/asm/page.h
1916 +++ b/arch/arm/include/asm/page.h
1917 @@ -23,6 +23,7 @@
1918
1919 #else
1920
1921 +#include <linux/compiler.h>
1922 #include <asm/glue.h>
1923
1924 /*
1925 @@ -114,7 +115,7 @@ struct cpu_user_fns {
1926 void (*cpu_clear_user_highpage)(struct page *page, unsigned long vaddr);
1927 void (*cpu_copy_user_highpage)(struct page *to, struct page *from,
1928 unsigned long vaddr, struct vm_area_struct *vma);
1929 -};
1930 +} __no_const;
1931
1932 #ifdef MULTI_USER
1933 extern struct cpu_user_fns cpu_user;
1934 diff --git a/arch/arm/include/asm/pgalloc.h b/arch/arm/include/asm/pgalloc.h
1935 index 19cfab5..3f5c7e9 100644
1936 --- a/arch/arm/include/asm/pgalloc.h
1937 +++ b/arch/arm/include/asm/pgalloc.h
1938 @@ -17,6 +17,7 @@
1939 #include <asm/processor.h>
1940 #include <asm/cacheflush.h>
1941 #include <asm/tlbflush.h>
1942 +#include <asm/system_info.h>
1943
1944 #define check_pgt_cache() do { } while (0)
1945
1946 @@ -43,6 +44,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1947 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
1948 }
1949
1950 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1951 +{
1952 + pud_populate(mm, pud, pmd);
1953 +}
1954 +
1955 #else /* !CONFIG_ARM_LPAE */
1956
1957 /*
1958 @@ -51,6 +57,7 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
1959 #define pmd_alloc_one(mm,addr) ({ BUG(); ((pmd_t *)2); })
1960 #define pmd_free(mm, pmd) do { } while (0)
1961 #define pud_populate(mm,pmd,pte) BUG()
1962 +#define pud_populate_kernel(mm,pmd,pte) BUG()
1963
1964 #endif /* CONFIG_ARM_LPAE */
1965
1966 @@ -128,6 +135,19 @@ static inline void pte_free(struct mm_struct *mm, pgtable_t pte)
1967 __free_page(pte);
1968 }
1969
1970 +static inline void __section_update(pmd_t *pmdp, unsigned long addr, pmdval_t prot)
1971 +{
1972 +#ifdef CONFIG_ARM_LPAE
1973 + pmdp[0] = __pmd(pmd_val(pmdp[0]) | prot);
1974 +#else
1975 + if (addr & SECTION_SIZE)
1976 + pmdp[1] = __pmd(pmd_val(pmdp[1]) | prot);
1977 + else
1978 + pmdp[0] = __pmd(pmd_val(pmdp[0]) | prot);
1979 +#endif
1980 + flush_pmd_entry(pmdp);
1981 +}
1982 +
1983 static inline void __pmd_populate(pmd_t *pmdp, phys_addr_t pte,
1984 pmdval_t prot)
1985 {
1986 diff --git a/arch/arm/include/asm/pgtable-2level-hwdef.h b/arch/arm/include/asm/pgtable-2level-hwdef.h
1987 index 5e68278..1869bae 100644
1988 --- a/arch/arm/include/asm/pgtable-2level-hwdef.h
1989 +++ b/arch/arm/include/asm/pgtable-2level-hwdef.h
1990 @@ -27,7 +27,7 @@
1991 /*
1992 * - section
1993 */
1994 -#define PMD_SECT_PXN (_AT(pmdval_t, 1) << 0) /* v7 */
1995 +#define PMD_SECT_PXN (_AT(pmdval_t, 1) << 0) /* v7 */
1996 #define PMD_SECT_BUFFERABLE (_AT(pmdval_t, 1) << 2)
1997 #define PMD_SECT_CACHEABLE (_AT(pmdval_t, 1) << 3)
1998 #define PMD_SECT_XN (_AT(pmdval_t, 1) << 4) /* v6 */
1999 @@ -39,6 +39,7 @@
2000 #define PMD_SECT_nG (_AT(pmdval_t, 1) << 17) /* v6 */
2001 #define PMD_SECT_SUPER (_AT(pmdval_t, 1) << 18) /* v6 */
2002 #define PMD_SECT_AF (_AT(pmdval_t, 0))
2003 +#define PMD_SECT_RDONLY (_AT(pmdval_t, 0))
2004
2005 #define PMD_SECT_UNCACHED (_AT(pmdval_t, 0))
2006 #define PMD_SECT_BUFFERED (PMD_SECT_BUFFERABLE)
2007 @@ -68,6 +69,7 @@
2008 * - extended small page/tiny page
2009 */
2010 #define PTE_EXT_XN (_AT(pteval_t, 1) << 0) /* v6 */
2011 +#define PTE_EXT_PXN (_AT(pteval_t, 1) << 2) /* v7 */
2012 #define PTE_EXT_AP_MASK (_AT(pteval_t, 3) << 4)
2013 #define PTE_EXT_AP0 (_AT(pteval_t, 1) << 4)
2014 #define PTE_EXT_AP1 (_AT(pteval_t, 2) << 4)
2015 diff --git a/arch/arm/include/asm/pgtable-2level.h b/arch/arm/include/asm/pgtable-2level.h
2016 index aeddd28..207745c 100644
2017 --- a/arch/arm/include/asm/pgtable-2level.h
2018 +++ b/arch/arm/include/asm/pgtable-2level.h
2019 @@ -127,6 +127,9 @@
2020 #define L_PTE_SHARED (_AT(pteval_t, 1) << 10) /* shared(v6), coherent(xsc3) */
2021 #define L_PTE_NONE (_AT(pteval_t, 1) << 11)
2022
2023 +/* Two-level page tables only have PXN in the PGD, not in the PTE. */
2024 +#define L_PTE_PXN (_AT(pteval_t, 0))
2025 +
2026 /*
2027 * These are the memory types, defined to be compatible with
2028 * pre-ARMv6 CPUs cacheable and bufferable bits: n/a,n/a,C,B
2029 diff --git a/arch/arm/include/asm/pgtable-3level.h b/arch/arm/include/asm/pgtable-3level.h
2030 index a745a2a..481350a 100644
2031 --- a/arch/arm/include/asm/pgtable-3level.h
2032 +++ b/arch/arm/include/asm/pgtable-3level.h
2033 @@ -80,6 +80,7 @@
2034 #define L_PTE_USER (_AT(pteval_t, 1) << 6) /* AP[1] */
2035 #define L_PTE_SHARED (_AT(pteval_t, 3) << 8) /* SH[1:0], inner shareable */
2036 #define L_PTE_YOUNG (_AT(pteval_t, 1) << 10) /* AF */
2037 +#define L_PTE_PXN (_AT(pteval_t, 1) << 53) /* PXN */
2038 #define L_PTE_XN (_AT(pteval_t, 1) << 54) /* XN */
2039 #define L_PTE_DIRTY (_AT(pteval_t, 1) << 55)
2040 #define L_PTE_SPECIAL (_AT(pteval_t, 1) << 56)
2041 @@ -91,10 +92,12 @@
2042 #define L_PMD_SECT_SPLITTING (_AT(pmdval_t, 1) << 56)
2043 #define L_PMD_SECT_NONE (_AT(pmdval_t, 1) << 57)
2044 #define L_PMD_SECT_RDONLY (_AT(pteval_t, 1) << 58)
2045 +#define PMD_SECT_RDONLY PMD_SECT_AP2
2046
2047 /*
2048 * To be used in assembly code with the upper page attributes.
2049 */
2050 +#define L_PTE_PXN_HIGH (1 << (53 - 32))
2051 #define L_PTE_XN_HIGH (1 << (54 - 32))
2052 #define L_PTE_DIRTY_HIGH (1 << (55 - 32))
2053
2054 diff --git a/arch/arm/include/asm/pgtable.h b/arch/arm/include/asm/pgtable.h
2055 index f403541..b10df68 100644
2056 --- a/arch/arm/include/asm/pgtable.h
2057 +++ b/arch/arm/include/asm/pgtable.h
2058 @@ -33,6 +33,9 @@
2059 #include <asm/pgtable-2level.h>
2060 #endif
2061
2062 +#define ktla_ktva(addr) (addr)
2063 +#define ktva_ktla(addr) (addr)
2064 +
2065 /*
2066 * Just any arbitrary offset to the start of the vmalloc VM area: the
2067 * current 8MB value just means that there will be a 8MB "hole" after the
2068 @@ -48,6 +51,9 @@
2069 #define LIBRARY_TEXT_START 0x0c000000
2070
2071 #ifndef __ASSEMBLY__
2072 +extern pteval_t __supported_pte_mask;
2073 +extern pmdval_t __supported_pmd_mask;
2074 +
2075 extern void __pte_error(const char *file, int line, pte_t);
2076 extern void __pmd_error(const char *file, int line, pmd_t);
2077 extern void __pgd_error(const char *file, int line, pgd_t);
2078 @@ -56,6 +62,48 @@ extern void __pgd_error(const char *file, int line, pgd_t);
2079 #define pmd_ERROR(pmd) __pmd_error(__FILE__, __LINE__, pmd)
2080 #define pgd_ERROR(pgd) __pgd_error(__FILE__, __LINE__, pgd)
2081
2082 +#define __HAVE_ARCH_PAX_OPEN_KERNEL
2083 +#define __HAVE_ARCH_PAX_CLOSE_KERNEL
2084 +
2085 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2086 +#include <asm/domain.h>
2087 +#include <linux/thread_info.h>
2088 +#include <linux/preempt.h>
2089 +
2090 +static inline int test_domain(int domain, int domaintype)
2091 +{
2092 + return ((current_thread_info()->cpu_domain) & domain_val(domain, 3)) == domain_val(domain, domaintype);
2093 +}
2094 +#endif
2095 +
2096 +#ifdef CONFIG_PAX_KERNEXEC
2097 +static inline unsigned long pax_open_kernel(void) {
2098 +#ifdef CONFIG_ARM_LPAE
2099 + /* TODO */
2100 +#else
2101 + preempt_disable();
2102 + BUG_ON(test_domain(DOMAIN_KERNEL, DOMAIN_KERNEXEC));
2103 + modify_domain(DOMAIN_KERNEL, DOMAIN_KERNEXEC);
2104 +#endif
2105 + return 0;
2106 +}
2107 +
2108 +static inline unsigned long pax_close_kernel(void) {
2109 +#ifdef CONFIG_ARM_LPAE
2110 + /* TODO */
2111 +#else
2112 + BUG_ON(test_domain(DOMAIN_KERNEL, DOMAIN_MANAGER));
2113 + /* DOMAIN_MANAGER = "client" under KERNEXEC */
2114 + modify_domain(DOMAIN_KERNEL, DOMAIN_MANAGER);
2115 + preempt_enable_no_resched();
2116 +#endif
2117 + return 0;
2118 +}
2119 +#else
2120 +static inline unsigned long pax_open_kernel(void) { return 0; }
2121 +static inline unsigned long pax_close_kernel(void) { return 0; }
2122 +#endif
2123 +
2124 /*
2125 * This is the lowest virtual address we can permit any user space
2126 * mapping to be mapped at. This is particularly important for
2127 @@ -75,8 +123,8 @@ extern void __pgd_error(const char *file, int line, pgd_t);
2128 /*
2129 * The pgprot_* and protection_map entries will be fixed up in runtime
2130 * to include the cachable and bufferable bits based on memory policy,
2131 - * as well as any architecture dependent bits like global/ASID and SMP
2132 - * shared mapping bits.
2133 + * as well as any architecture dependent bits like global/ASID, PXN,
2134 + * and SMP shared mapping bits.
2135 */
2136 #define _L_PTE_DEFAULT L_PTE_PRESENT | L_PTE_YOUNG
2137
2138 @@ -307,7 +355,7 @@ static inline pte_t pte_mknexec(pte_t pte)
2139 static inline pte_t pte_modify(pte_t pte, pgprot_t newprot)
2140 {
2141 const pteval_t mask = L_PTE_XN | L_PTE_RDONLY | L_PTE_USER |
2142 - L_PTE_NONE | L_PTE_VALID;
2143 + L_PTE_NONE | L_PTE_VALID | __supported_pte_mask;
2144 pte_val(pte) = (pte_val(pte) & ~mask) | (pgprot_val(newprot) & mask);
2145 return pte;
2146 }
2147 diff --git a/arch/arm/include/asm/psci.h b/arch/arm/include/asm/psci.h
2148 index c25ef3e..735f14b 100644
2149 --- a/arch/arm/include/asm/psci.h
2150 +++ b/arch/arm/include/asm/psci.h
2151 @@ -32,7 +32,7 @@ struct psci_operations {
2152 int (*affinity_info)(unsigned long target_affinity,
2153 unsigned long lowest_affinity_level);
2154 int (*migrate_info_type)(void);
2155 -};
2156 +} __no_const;
2157
2158 extern struct psci_operations psci_ops;
2159 extern struct smp_operations psci_smp_ops;
2160 diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
2161 index 2f3ac1b..67182ae0 100644
2162 --- a/arch/arm/include/asm/smp.h
2163 +++ b/arch/arm/include/asm/smp.h
2164 @@ -108,7 +108,7 @@ struct smp_operations {
2165 int (*cpu_disable)(unsigned int cpu);
2166 #endif
2167 #endif
2168 -};
2169 +} __no_const;
2170
2171 struct of_cpu_method {
2172 const char *method;
2173 diff --git a/arch/arm/include/asm/thread_info.h b/arch/arm/include/asm/thread_info.h
2174 index bd32ede..bd90a0b 100644
2175 --- a/arch/arm/include/asm/thread_info.h
2176 +++ b/arch/arm/include/asm/thread_info.h
2177 @@ -74,9 +74,9 @@ struct thread_info {
2178 .flags = 0, \
2179 .preempt_count = INIT_PREEMPT_COUNT, \
2180 .addr_limit = KERNEL_DS, \
2181 - .cpu_domain = domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \
2182 - domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
2183 - domain_val(DOMAIN_IO, DOMAIN_CLIENT), \
2184 + .cpu_domain = domain_val(DOMAIN_USER, DOMAIN_USERCLIENT) | \
2185 + domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT) | \
2186 + domain_val(DOMAIN_IO, DOMAIN_KERNELCLIENT), \
2187 }
2188
2189 #define init_thread_info (init_thread_union.thread_info)
2190 @@ -152,7 +152,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
2191 #define TIF_SYSCALL_AUDIT 9
2192 #define TIF_SYSCALL_TRACEPOINT 10
2193 #define TIF_SECCOMP 11 /* seccomp syscall filtering active */
2194 -#define TIF_NOHZ 12 /* in adaptive nohz mode */
2195 +/* within 8 bits of TIF_SYSCALL_TRACE
2196 + * to meet flexible second operand requirements
2197 + */
2198 +#define TIF_GRSEC_SETXID 12
2199 +#define TIF_NOHZ 13 /* in adaptive nohz mode */
2200 #define TIF_USING_IWMMXT 17
2201 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */
2202 #define TIF_RESTORE_SIGMASK 20
2203 @@ -166,10 +170,11 @@ extern int vfp_restore_user_hwstate(struct user_vfp __user *,
2204 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
2205 #define _TIF_SECCOMP (1 << TIF_SECCOMP)
2206 #define _TIF_USING_IWMMXT (1 << TIF_USING_IWMMXT)
2207 +#define _TIF_GRSEC_SETXID (1 << TIF_GRSEC_SETXID)
2208
2209 /* Checks for any syscall work in entry-common.S */
2210 #define _TIF_SYSCALL_WORK (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
2211 - _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP)
2212 + _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | _TIF_GRSEC_SETXID)
2213
2214 /*
2215 * Change these and you break ASM code in entry-common.S
2216 diff --git a/arch/arm/include/asm/tls.h b/arch/arm/include/asm/tls.h
2217 index 5f833f7..76e6644 100644
2218 --- a/arch/arm/include/asm/tls.h
2219 +++ b/arch/arm/include/asm/tls.h
2220 @@ -3,6 +3,7 @@
2221
2222 #include <linux/compiler.h>
2223 #include <asm/thread_info.h>
2224 +#include <asm/pgtable.h>
2225
2226 #ifdef __ASSEMBLY__
2227 #include <asm/asm-offsets.h>
2228 @@ -89,7 +90,9 @@ static inline void set_tls(unsigned long val)
2229 * at 0xffff0fe0 must be used instead. (see
2230 * entry-armv.S for details)
2231 */
2232 + pax_open_kernel();
2233 *((unsigned int *)0xffff0ff0) = val;
2234 + pax_close_kernel();
2235 #endif
2236 }
2237
2238 diff --git a/arch/arm/include/asm/uaccess.h b/arch/arm/include/asm/uaccess.h
2239 index 74b17d0..7e6da4b 100644
2240 --- a/arch/arm/include/asm/uaccess.h
2241 +++ b/arch/arm/include/asm/uaccess.h
2242 @@ -18,6 +18,7 @@
2243 #include <asm/domain.h>
2244 #include <asm/unified.h>
2245 #include <asm/compiler.h>
2246 +#include <asm/pgtable.h>
2247
2248 #ifndef CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS
2249 #include <asm-generic/uaccess-unaligned.h>
2250 @@ -70,11 +71,38 @@ extern int __put_user_bad(void);
2251 static inline void set_fs(mm_segment_t fs)
2252 {
2253 current_thread_info()->addr_limit = fs;
2254 - modify_domain(DOMAIN_KERNEL, fs ? DOMAIN_CLIENT : DOMAIN_MANAGER);
2255 + modify_domain(DOMAIN_KERNEL, fs ? DOMAIN_KERNELCLIENT : DOMAIN_MANAGER);
2256 }
2257
2258 #define segment_eq(a, b) ((a) == (b))
2259
2260 +#define __HAVE_ARCH_PAX_OPEN_USERLAND
2261 +#define __HAVE_ARCH_PAX_CLOSE_USERLAND
2262 +
2263 +static inline void pax_open_userland(void)
2264 +{
2265 +
2266 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2267 + if (segment_eq(get_fs(), USER_DS)) {
2268 + BUG_ON(test_domain(DOMAIN_USER, DOMAIN_UDEREF));
2269 + modify_domain(DOMAIN_USER, DOMAIN_UDEREF);
2270 + }
2271 +#endif
2272 +
2273 +}
2274 +
2275 +static inline void pax_close_userland(void)
2276 +{
2277 +
2278 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2279 + if (segment_eq(get_fs(), USER_DS)) {
2280 + BUG_ON(test_domain(DOMAIN_USER, DOMAIN_NOACCESS));
2281 + modify_domain(DOMAIN_USER, DOMAIN_NOACCESS);
2282 + }
2283 +#endif
2284 +
2285 +}
2286 +
2287 #define __addr_ok(addr) ({ \
2288 unsigned long flag; \
2289 __asm__("cmp %2, %0; movlo %0, #0" \
2290 @@ -198,8 +226,12 @@ extern int __get_user_64t_4(void *);
2291
2292 #define get_user(x, p) \
2293 ({ \
2294 + int __e; \
2295 might_fault(); \
2296 - __get_user_check(x, p); \
2297 + pax_open_userland(); \
2298 + __e = __get_user_check((x), (p)); \
2299 + pax_close_userland(); \
2300 + __e; \
2301 })
2302
2303 extern int __put_user_1(void *, unsigned int);
2304 @@ -244,8 +276,12 @@ extern int __put_user_8(void *, unsigned long long);
2305
2306 #define put_user(x, p) \
2307 ({ \
2308 + int __e; \
2309 might_fault(); \
2310 - __put_user_check(x, p); \
2311 + pax_open_userland(); \
2312 + __e = __put_user_check((x), (p)); \
2313 + pax_close_userland(); \
2314 + __e; \
2315 })
2316
2317 #else /* CONFIG_MMU */
2318 @@ -269,6 +305,7 @@ static inline void set_fs(mm_segment_t fs)
2319
2320 #endif /* CONFIG_MMU */
2321
2322 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
2323 #define access_ok(type, addr, size) (__range_ok(addr, size) == 0)
2324
2325 #define user_addr_max() \
2326 @@ -286,13 +323,17 @@ static inline void set_fs(mm_segment_t fs)
2327 #define __get_user(x, ptr) \
2328 ({ \
2329 long __gu_err = 0; \
2330 + pax_open_userland(); \
2331 __get_user_err((x), (ptr), __gu_err); \
2332 + pax_close_userland(); \
2333 __gu_err; \
2334 })
2335
2336 #define __get_user_error(x, ptr, err) \
2337 ({ \
2338 + pax_open_userland(); \
2339 __get_user_err((x), (ptr), err); \
2340 + pax_close_userland(); \
2341 (void) 0; \
2342 })
2343
2344 @@ -368,13 +409,17 @@ do { \
2345 #define __put_user(x, ptr) \
2346 ({ \
2347 long __pu_err = 0; \
2348 + pax_open_userland(); \
2349 __put_user_err((x), (ptr), __pu_err); \
2350 + pax_close_userland(); \
2351 __pu_err; \
2352 })
2353
2354 #define __put_user_error(x, ptr, err) \
2355 ({ \
2356 + pax_open_userland(); \
2357 __put_user_err((x), (ptr), err); \
2358 + pax_close_userland(); \
2359 (void) 0; \
2360 })
2361
2362 @@ -474,11 +519,44 @@ do { \
2363
2364
2365 #ifdef CONFIG_MMU
2366 -extern unsigned long __must_check __copy_from_user(void *to, const void __user *from, unsigned long n);
2367 -extern unsigned long __must_check __copy_to_user(void __user *to, const void *from, unsigned long n);
2368 -extern unsigned long __must_check __copy_to_user_std(void __user *to, const void *from, unsigned long n);
2369 -extern unsigned long __must_check __clear_user(void __user *addr, unsigned long n);
2370 -extern unsigned long __must_check __clear_user_std(void __user *addr, unsigned long n);
2371 +extern unsigned long __must_check __size_overflow(3) ___copy_from_user(void *to, const void __user *from, unsigned long n);
2372 +extern unsigned long __must_check __size_overflow(3) ___copy_to_user(void __user *to, const void *from, unsigned long n);
2373 +
2374 +static inline unsigned long __must_check __size_overflow(3) __copy_from_user(void *to, const void __user *from, unsigned long n)
2375 +{
2376 + unsigned long ret;
2377 +
2378 + check_object_size(to, n, false);
2379 + pax_open_userland();
2380 + ret = ___copy_from_user(to, from, n);
2381 + pax_close_userland();
2382 + return ret;
2383 +}
2384 +
2385 +static inline unsigned long __must_check __copy_to_user(void __user *to, const void *from, unsigned long n)
2386 +{
2387 + unsigned long ret;
2388 +
2389 + check_object_size(from, n, true);
2390 + pax_open_userland();
2391 + ret = ___copy_to_user(to, from, n);
2392 + pax_close_userland();
2393 + return ret;
2394 +}
2395 +
2396 +extern unsigned long __must_check __size_overflow(3) __copy_to_user_std(void __user *to, const void *from, unsigned long n);
2397 +extern unsigned long __must_check __size_overflow(2) ___clear_user(void __user *addr, unsigned long n);
2398 +extern unsigned long __must_check __size_overflow(2) __clear_user_std(void __user *addr, unsigned long n);
2399 +
2400 +static inline unsigned long __must_check __clear_user(void __user *addr, unsigned long n)
2401 +{
2402 + unsigned long ret;
2403 + pax_open_userland();
2404 + ret = ___clear_user(addr, n);
2405 + pax_close_userland();
2406 + return ret;
2407 +}
2408 +
2409 #else
2410 #define __copy_from_user(to, from, n) (memcpy(to, (void __force *)from, n), 0)
2411 #define __copy_to_user(to, from, n) (memcpy((void __force *)to, from, n), 0)
2412 @@ -487,6 +565,9 @@ extern unsigned long __must_check __clear_user_std(void __user *addr, unsigned l
2413
2414 static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
2415 {
2416 + if ((long)n < 0)
2417 + return n;
2418 +
2419 if (access_ok(VERIFY_READ, from, n))
2420 n = __copy_from_user(to, from, n);
2421 else /* security hole - plug it */
2422 @@ -496,6 +577,9 @@ static inline unsigned long __must_check copy_from_user(void *to, const void __u
2423
2424 static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
2425 {
2426 + if ((long)n < 0)
2427 + return n;
2428 +
2429 if (access_ok(VERIFY_WRITE, to, n))
2430 n = __copy_to_user(to, from, n);
2431 return n;
2432 diff --git a/arch/arm/include/uapi/asm/ptrace.h b/arch/arm/include/uapi/asm/ptrace.h
2433 index 5af0ed1..cea83883 100644
2434 --- a/arch/arm/include/uapi/asm/ptrace.h
2435 +++ b/arch/arm/include/uapi/asm/ptrace.h
2436 @@ -92,7 +92,7 @@
2437 * ARMv7 groups of PSR bits
2438 */
2439 #define APSR_MASK 0xf80f0000 /* N, Z, C, V, Q and GE flags */
2440 -#define PSR_ISET_MASK 0x01000010 /* ISA state (J, T) mask */
2441 +#define PSR_ISET_MASK 0x01000020 /* ISA state (J, T) mask */
2442 #define PSR_IT_MASK 0x0600fc00 /* If-Then execution state mask */
2443 #define PSR_ENDIAN_MASK 0x00000200 /* Endianness state mask */
2444
2445 diff --git a/arch/arm/kernel/armksyms.c b/arch/arm/kernel/armksyms.c
2446 index 5e5a51a..b21eeef 100644
2447 --- a/arch/arm/kernel/armksyms.c
2448 +++ b/arch/arm/kernel/armksyms.c
2449 @@ -58,7 +58,7 @@ EXPORT_SYMBOL(arm_delay_ops);
2450
2451 /* networking */
2452 EXPORT_SYMBOL(csum_partial);
2453 -EXPORT_SYMBOL(csum_partial_copy_from_user);
2454 +EXPORT_SYMBOL(__csum_partial_copy_from_user);
2455 EXPORT_SYMBOL(csum_partial_copy_nocheck);
2456 EXPORT_SYMBOL(__csum_ipv6_magic);
2457
2458 @@ -97,9 +97,9 @@ EXPORT_SYMBOL(mmiocpy);
2459 #ifdef CONFIG_MMU
2460 EXPORT_SYMBOL(copy_page);
2461
2462 -EXPORT_SYMBOL(__copy_from_user);
2463 -EXPORT_SYMBOL(__copy_to_user);
2464 -EXPORT_SYMBOL(__clear_user);
2465 +EXPORT_SYMBOL(___copy_from_user);
2466 +EXPORT_SYMBOL(___copy_to_user);
2467 +EXPORT_SYMBOL(___clear_user);
2468
2469 EXPORT_SYMBOL(__get_user_1);
2470 EXPORT_SYMBOL(__get_user_2);
2471 diff --git a/arch/arm/kernel/cpuidle.c b/arch/arm/kernel/cpuidle.c
2472 index 318da33..373689f 100644
2473 --- a/arch/arm/kernel/cpuidle.c
2474 +++ b/arch/arm/kernel/cpuidle.c
2475 @@ -19,7 +19,7 @@ extern struct of_cpuidle_method __cpuidle_method_of_table[];
2476 static const struct of_cpuidle_method __cpuidle_method_of_table_sentinel
2477 __used __section(__cpuidle_method_of_table_end);
2478
2479 -static struct cpuidle_ops cpuidle_ops[NR_CPUS];
2480 +static struct cpuidle_ops cpuidle_ops[NR_CPUS] __read_only;
2481
2482 /**
2483 * arm_cpuidle_simple_enter() - a wrapper to cpu_do_idle()
2484 diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
2485 index cb4fb1e..dc7fcaf 100644
2486 --- a/arch/arm/kernel/entry-armv.S
2487 +++ b/arch/arm/kernel/entry-armv.S
2488 @@ -50,6 +50,87 @@
2489 9997:
2490 .endm
2491
2492 + .macro pax_enter_kernel
2493 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2494 + @ make aligned space for saved DACR
2495 + sub sp, sp, #8
2496 + @ save regs
2497 + stmdb sp!, {r1, r2}
2498 + @ read DACR from cpu_domain into r1
2499 + mov r2, sp
2500 + @ assume 8K pages, since we have to split the immediate in two
2501 + bic r2, r2, #(0x1fc0)
2502 + bic r2, r2, #(0x3f)
2503 + ldr r1, [r2, #TI_CPU_DOMAIN]
2504 + @ store old DACR on stack
2505 + str r1, [sp, #8]
2506 +#ifdef CONFIG_PAX_KERNEXEC
2507 + @ set type of DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2508 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2509 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2510 +#endif
2511 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2512 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2513 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2514 +#endif
2515 + @ write r1 to current_thread_info()->cpu_domain
2516 + str r1, [r2, #TI_CPU_DOMAIN]
2517 + @ write r1 to DACR
2518 + mcr p15, 0, r1, c3, c0, 0
2519 + @ instruction sync
2520 + instr_sync
2521 + @ restore regs
2522 + ldmia sp!, {r1, r2}
2523 +#endif
2524 + .endm
2525 +
2526 + .macro pax_open_userland
2527 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2528 + @ save regs
2529 + stmdb sp!, {r0, r1}
2530 + @ read DACR from cpu_domain into r1
2531 + mov r0, sp
2532 + @ assume 8K pages, since we have to split the immediate in two
2533 + bic r0, r0, #(0x1fc0)
2534 + bic r0, r0, #(0x3f)
2535 + ldr r1, [r0, #TI_CPU_DOMAIN]
2536 + @ set current DOMAIN_USER to DOMAIN_CLIENT
2537 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2538 + orr r1, r1, #(domain_val(DOMAIN_USER, DOMAIN_UDEREF))
2539 + @ write r1 to current_thread_info()->cpu_domain
2540 + str r1, [r0, #TI_CPU_DOMAIN]
2541 + @ write r1 to DACR
2542 + mcr p15, 0, r1, c3, c0, 0
2543 + @ instruction sync
2544 + instr_sync
2545 + @ restore regs
2546 + ldmia sp!, {r0, r1}
2547 +#endif
2548 + .endm
2549 +
2550 + .macro pax_close_userland
2551 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2552 + @ save regs
2553 + stmdb sp!, {r0, r1}
2554 + @ read DACR from cpu_domain into r1
2555 + mov r0, sp
2556 + @ assume 8K pages, since we have to split the immediate in two
2557 + bic r0, r0, #(0x1fc0)
2558 + bic r0, r0, #(0x3f)
2559 + ldr r1, [r0, #TI_CPU_DOMAIN]
2560 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2561 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2562 + @ write r1 to current_thread_info()->cpu_domain
2563 + str r1, [r0, #TI_CPU_DOMAIN]
2564 + @ write r1 to DACR
2565 + mcr p15, 0, r1, c3, c0, 0
2566 + @ instruction sync
2567 + instr_sync
2568 + @ restore regs
2569 + ldmia sp!, {r0, r1}
2570 +#endif
2571 + .endm
2572 +
2573 .macro pabt_helper
2574 @ PABORT handler takes pt_regs in r2, fault address in r4 and psr in r5
2575 #ifdef MULTI_PABORT
2576 @@ -92,11 +173,15 @@
2577 * Invalid mode handlers
2578 */
2579 .macro inv_entry, reason
2580 +
2581 + pax_enter_kernel
2582 +
2583 sub sp, sp, #S_FRAME_SIZE
2584 ARM( stmib sp, {r1 - lr} )
2585 THUMB( stmia sp, {r0 - r12} )
2586 THUMB( str sp, [sp, #S_SP] )
2587 THUMB( str lr, [sp, #S_LR] )
2588 +
2589 mov r1, #\reason
2590 .endm
2591
2592 @@ -152,7 +237,11 @@ ENDPROC(__und_invalid)
2593 .macro svc_entry, stack_hole=0, trace=1
2594 UNWIND(.fnstart )
2595 UNWIND(.save {r0 - pc} )
2596 +
2597 + pax_enter_kernel
2598 +
2599 sub sp, sp, #(S_FRAME_SIZE + \stack_hole - 4)
2600 +
2601 #ifdef CONFIG_THUMB2_KERNEL
2602 SPFIX( str r0, [sp] ) @ temporarily saved
2603 SPFIX( mov r0, sp )
2604 @@ -167,7 +256,12 @@ ENDPROC(__und_invalid)
2605 ldmia r0, {r3 - r5}
2606 add r7, sp, #S_SP - 4 @ here for interlock avoidance
2607 mov r6, #-1 @ "" "" "" ""
2608 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2609 + @ offset sp by 8 as done in pax_enter_kernel
2610 + add r2, sp, #(S_FRAME_SIZE + \stack_hole + 4)
2611 +#else
2612 add r2, sp, #(S_FRAME_SIZE + \stack_hole - 4)
2613 +#endif
2614 SPFIX( addeq r2, r2, #4 )
2615 str r3, [sp, #-4]! @ save the "real" r0 copied
2616 @ from the exception stack
2617 @@ -371,6 +465,9 @@ ENDPROC(__fiq_abt)
2618 .macro usr_entry, trace=1
2619 UNWIND(.fnstart )
2620 UNWIND(.cantunwind ) @ don't unwind the user space
2621 +
2622 + pax_enter_kernel_user
2623 +
2624 sub sp, sp, #S_FRAME_SIZE
2625 ARM( stmib sp, {r1 - r12} )
2626 THUMB( stmia sp, {r0 - r12} )
2627 @@ -481,7 +578,9 @@ __und_usr:
2628 tst r3, #PSR_T_BIT @ Thumb mode?
2629 bne __und_usr_thumb
2630 sub r4, r2, #4 @ ARM instr at LR - 4
2631 + pax_open_userland
2632 1: ldrt r0, [r4]
2633 + pax_close_userland
2634 ARM_BE8(rev r0, r0) @ little endian instruction
2635
2636 @ r0 = 32-bit ARM instruction which caused the exception
2637 @@ -515,11 +614,15 @@ __und_usr_thumb:
2638 */
2639 .arch armv6t2
2640 #endif
2641 + pax_open_userland
2642 2: ldrht r5, [r4]
2643 + pax_close_userland
2644 ARM_BE8(rev16 r5, r5) @ little endian instruction
2645 cmp r5, #0xe800 @ 32bit instruction if xx != 0
2646 blo __und_usr_fault_16 @ 16bit undefined instruction
2647 + pax_open_userland
2648 3: ldrht r0, [r2]
2649 + pax_close_userland
2650 ARM_BE8(rev16 r0, r0) @ little endian instruction
2651 add r2, r2, #2 @ r2 is PC + 2, make it PC + 4
2652 str r2, [sp, #S_PC] @ it's a 2x16bit instr, update
2653 @@ -549,7 +652,8 @@ ENDPROC(__und_usr)
2654 */
2655 .pushsection .text.fixup, "ax"
2656 .align 2
2657 -4: str r4, [sp, #S_PC] @ retry current instruction
2658 +4: pax_close_userland
2659 + str r4, [sp, #S_PC] @ retry current instruction
2660 ret r9
2661 .popsection
2662 .pushsection __ex_table,"a"
2663 @@ -769,7 +873,7 @@ ENTRY(__switch_to)
2664 THUMB( str lr, [ip], #4 )
2665 ldr r4, [r2, #TI_TP_VALUE]
2666 ldr r5, [r2, #TI_TP_VALUE + 4]
2667 -#ifdef CONFIG_CPU_USE_DOMAINS
2668 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2669 ldr r6, [r2, #TI_CPU_DOMAIN]
2670 #endif
2671 switch_tls r1, r4, r5, r3, r7
2672 @@ -778,7 +882,7 @@ ENTRY(__switch_to)
2673 ldr r8, =__stack_chk_guard
2674 ldr r7, [r7, #TSK_STACK_CANARY]
2675 #endif
2676 -#ifdef CONFIG_CPU_USE_DOMAINS
2677 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2678 mcr p15, 0, r6, c3, c0, 0 @ Set domain register
2679 #endif
2680 mov r5, r0
2681 diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
2682 index b48dd4f..9f9a72f 100644
2683 --- a/arch/arm/kernel/entry-common.S
2684 +++ b/arch/arm/kernel/entry-common.S
2685 @@ -11,18 +11,46 @@
2686 #include <asm/assembler.h>
2687 #include <asm/unistd.h>
2688 #include <asm/ftrace.h>
2689 +#include <asm/domain.h>
2690 #include <asm/unwind.h>
2691
2692 +#include "entry-header.S"
2693 +
2694 #ifdef CONFIG_NEED_RET_TO_USER
2695 #include <mach/entry-macro.S>
2696 #else
2697 .macro arch_ret_to_user, tmp1, tmp2
2698 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2699 + @ save regs
2700 + stmdb sp!, {r1, r2}
2701 + @ read DACR from cpu_domain into r1
2702 + mov r2, sp
2703 + @ assume 8K pages, since we have to split the immediate in two
2704 + bic r2, r2, #(0x1fc0)
2705 + bic r2, r2, #(0x3f)
2706 + ldr r1, [r2, #TI_CPU_DOMAIN]
2707 +#ifdef CONFIG_PAX_KERNEXEC
2708 + @ set type of DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2709 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2710 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2711 +#endif
2712 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2713 + @ set current DOMAIN_USER to DOMAIN_UDEREF
2714 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2715 + orr r1, r1, #(domain_val(DOMAIN_USER, DOMAIN_UDEREF))
2716 +#endif
2717 + @ write r1 to current_thread_info()->cpu_domain
2718 + str r1, [r2, #TI_CPU_DOMAIN]
2719 + @ write r1 to DACR
2720 + mcr p15, 0, r1, c3, c0, 0
2721 + @ instruction sync
2722 + instr_sync
2723 + @ restore regs
2724 + ldmia sp!, {r1, r2}
2725 +#endif
2726 .endm
2727 #endif
2728
2729 -#include "entry-header.S"
2730 -
2731 -
2732 .align 5
2733 /*
2734 * This is the fast syscall return path. We do as little as
2735 @@ -174,6 +202,12 @@ ENTRY(vector_swi)
2736 USER( ldr scno, [lr, #-4] ) @ get SWI instruction
2737 #endif
2738
2739 + /*
2740 + * do this here to avoid a performance hit of wrapping the code above
2741 + * that directly dereferences userland to parse the SWI instruction
2742 + */
2743 + pax_enter_kernel_user
2744 +
2745 adr tbl, sys_call_table @ load syscall table pointer
2746
2747 #if defined(CONFIG_OABI_COMPAT)
2748 diff --git a/arch/arm/kernel/entry-header.S b/arch/arm/kernel/entry-header.S
2749 index 1a0045a..9b4f34d 100644
2750 --- a/arch/arm/kernel/entry-header.S
2751 +++ b/arch/arm/kernel/entry-header.S
2752 @@ -196,6 +196,60 @@
2753 msr cpsr_c, \rtemp @ switch back to the SVC mode
2754 .endm
2755
2756 + .macro pax_enter_kernel_user
2757 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2758 + @ save regs
2759 + stmdb sp!, {r0, r1}
2760 + @ read DACR from cpu_domain into r1
2761 + mov r0, sp
2762 + @ assume 8K pages, since we have to split the immediate in two
2763 + bic r0, r0, #(0x1fc0)
2764 + bic r0, r0, #(0x3f)
2765 + ldr r1, [r0, #TI_CPU_DOMAIN]
2766 +#ifdef CONFIG_PAX_MEMORY_UDEREF
2767 + @ set current DOMAIN_USER to DOMAIN_NOACCESS
2768 + bic r1, r1, #(domain_val(DOMAIN_USER, 3))
2769 +#endif
2770 +#ifdef CONFIG_PAX_KERNEXEC
2771 + @ set current DOMAIN_KERNEL to DOMAIN_KERNELCLIENT
2772 + bic r1, r1, #(domain_val(DOMAIN_KERNEL, 3))
2773 + orr r1, r1, #(domain_val(DOMAIN_KERNEL, DOMAIN_KERNELCLIENT))
2774 +#endif
2775 + @ write r1 to current_thread_info()->cpu_domain
2776 + str r1, [r0, #TI_CPU_DOMAIN]
2777 + @ write r1 to DACR
2778 + mcr p15, 0, r1, c3, c0, 0
2779 + @ instruction sync
2780 + instr_sync
2781 + @ restore regs
2782 + ldmia sp!, {r0, r1}
2783 +#endif
2784 + .endm
2785 +
2786 + .macro pax_exit_kernel
2787 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
2788 + @ save regs
2789 + stmdb sp!, {r0, r1}
2790 + @ read old DACR from stack into r1
2791 + ldr r1, [sp, #(8 + S_SP)]
2792 + sub r1, r1, #8
2793 + ldr r1, [r1]
2794 +
2795 + @ write r1 to current_thread_info()->cpu_domain
2796 + mov r0, sp
2797 + @ assume 8K pages, since we have to split the immediate in two
2798 + bic r0, r0, #(0x1fc0)
2799 + bic r0, r0, #(0x3f)
2800 + str r1, [r0, #TI_CPU_DOMAIN]
2801 + @ write r1 to DACR
2802 + mcr p15, 0, r1, c3, c0, 0
2803 + @ instruction sync
2804 + instr_sync
2805 + @ restore regs
2806 + ldmia sp!, {r0, r1}
2807 +#endif
2808 + .endm
2809 +
2810 #ifndef CONFIG_THUMB2_KERNEL
2811 .macro svc_exit, rpsr, irq = 0
2812 .if \irq != 0
2813 @@ -215,6 +269,9 @@
2814 blne trace_hardirqs_off
2815 #endif
2816 .endif
2817 +
2818 + pax_exit_kernel
2819 +
2820 msr spsr_cxsf, \rpsr
2821 #if defined(CONFIG_CPU_V6) || defined(CONFIG_CPU_32v6K)
2822 @ We must avoid clrex due to Cortex-A15 erratum #830321
2823 @@ -291,6 +348,9 @@
2824 blne trace_hardirqs_off
2825 #endif
2826 .endif
2827 +
2828 + pax_exit_kernel
2829 +
2830 ldr lr, [sp, #S_SP] @ top of the stack
2831 ldrd r0, r1, [sp, #S_LR] @ calling lr and pc
2832
2833 diff --git a/arch/arm/kernel/fiq.c b/arch/arm/kernel/fiq.c
2834 index 059c3da..8e45cfc 100644
2835 --- a/arch/arm/kernel/fiq.c
2836 +++ b/arch/arm/kernel/fiq.c
2837 @@ -95,7 +95,10 @@ void set_fiq_handler(void *start, unsigned int length)
2838 void *base = vectors_page;
2839 unsigned offset = FIQ_OFFSET;
2840
2841 + pax_open_kernel();
2842 memcpy(base + offset, start, length);
2843 + pax_close_kernel();
2844 +
2845 if (!cache_is_vipt_nonaliasing())
2846 flush_icache_range((unsigned long)base + offset, offset +
2847 length);
2848 diff --git a/arch/arm/kernel/head.S b/arch/arm/kernel/head.S
2849 index 29e2991..7bc5757 100644
2850 --- a/arch/arm/kernel/head.S
2851 +++ b/arch/arm/kernel/head.S
2852 @@ -467,7 +467,7 @@ __enable_mmu:
2853 mov r5, #(domain_val(DOMAIN_USER, DOMAIN_MANAGER) | \
2854 domain_val(DOMAIN_KERNEL, DOMAIN_MANAGER) | \
2855 domain_val(DOMAIN_TABLE, DOMAIN_MANAGER) | \
2856 - domain_val(DOMAIN_IO, DOMAIN_CLIENT))
2857 + domain_val(DOMAIN_IO, DOMAIN_KERNELCLIENT))
2858 mcr p15, 0, r5, c3, c0, 0 @ load domain access register
2859 mcr p15, 0, r4, c2, c0, 0 @ load page table pointer
2860 #endif
2861 diff --git a/arch/arm/kernel/module-plts.c b/arch/arm/kernel/module-plts.c
2862 index 097e2e2..3927085 100644
2863 --- a/arch/arm/kernel/module-plts.c
2864 +++ b/arch/arm/kernel/module-plts.c
2865 @@ -30,17 +30,12 @@ struct plt_entries {
2866 u32 lit[PLT_ENT_COUNT];
2867 };
2868
2869 -static bool in_init(const struct module *mod, u32 addr)
2870 -{
2871 - return addr - (u32)mod->module_init < mod->init_size;
2872 -}
2873 -
2874 u32 get_module_plt(struct module *mod, unsigned long loc, Elf32_Addr val)
2875 {
2876 struct plt_entries *plt, *plt_end;
2877 int c, *count;
2878
2879 - if (in_init(mod, loc)) {
2880 + if (within_module_init(loc, mod)) {
2881 plt = (void *)mod->arch.init_plt->sh_addr;
2882 plt_end = (void *)plt + mod->arch.init_plt->sh_size;
2883 count = &mod->arch.init_plt_count;
2884 diff --git a/arch/arm/kernel/module.c b/arch/arm/kernel/module.c
2885 index efdddcb..35e58f6 100644
2886 --- a/arch/arm/kernel/module.c
2887 +++ b/arch/arm/kernel/module.c
2888 @@ -38,17 +38,47 @@
2889 #endif
2890
2891 #ifdef CONFIG_MMU
2892 -void *module_alloc(unsigned long size)
2893 +static inline void *__module_alloc(unsigned long size, pgprot_t prot)
2894 {
2895 - void *p = __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
2896 - GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
2897 + void *p;
2898 +
2899 + if (!size || (!IS_ENABLED(CONFIG_ARM_MODULE_PLTS) && PAGE_ALIGN(size) > MODULES_END - MODULES_VADDR))
2900 + return NULL;
2901 +
2902 + p = __vmalloc_node_range(size, 1, MODULES_VADDR, MODULES_END,
2903 + GFP_KERNEL, prot, 0, NUMA_NO_NODE,
2904 __builtin_return_address(0));
2905 if (!IS_ENABLED(CONFIG_ARM_MODULE_PLTS) || p)
2906 return p;
2907 return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
2908 - GFP_KERNEL, PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
2909 + GFP_KERNEL, prot, 0, NUMA_NO_NODE,
2910 __builtin_return_address(0));
2911 }
2912 +
2913 +void *module_alloc(unsigned long size)
2914 +{
2915 +
2916 +#ifdef CONFIG_PAX_KERNEXEC
2917 + return __module_alloc(size, PAGE_KERNEL);
2918 +#else
2919 + return __module_alloc(size, PAGE_KERNEL_EXEC);
2920 +#endif
2921 +
2922 +}
2923 +
2924 +#ifdef CONFIG_PAX_KERNEXEC
2925 +void module_memfree_exec(void *module_region)
2926 +{
2927 + module_memfree(module_region);
2928 +}
2929 +EXPORT_SYMBOL(module_memfree_exec);
2930 +
2931 +void *module_alloc_exec(unsigned long size)
2932 +{
2933 + return __module_alloc(size, PAGE_KERNEL_EXEC);
2934 +}
2935 +EXPORT_SYMBOL(module_alloc_exec);
2936 +#endif
2937 #endif
2938
2939 int
2940 diff --git a/arch/arm/kernel/patch.c b/arch/arm/kernel/patch.c
2941 index 69bda1a..755113a 100644
2942 --- a/arch/arm/kernel/patch.c
2943 +++ b/arch/arm/kernel/patch.c
2944 @@ -66,6 +66,7 @@ void __kprobes __patch_text_real(void *addr, unsigned int insn, bool remap)
2945 else
2946 __acquire(&patch_lock);
2947
2948 + pax_open_kernel();
2949 if (thumb2 && __opcode_is_thumb16(insn)) {
2950 *(u16 *)waddr = __opcode_to_mem_thumb16(insn);
2951 size = sizeof(u16);
2952 @@ -97,6 +98,7 @@ void __kprobes __patch_text_real(void *addr, unsigned int insn, bool remap)
2953 *(u32 *)waddr = insn;
2954 size = sizeof(u32);
2955 }
2956 + pax_close_kernel();
2957
2958 if (waddr != addr) {
2959 flush_kernel_vmap_range(waddr, twopage ? size / 2 : size);
2960 diff --git a/arch/arm/kernel/process.c b/arch/arm/kernel/process.c
2961 index f192a2a..1a40523 100644
2962 --- a/arch/arm/kernel/process.c
2963 +++ b/arch/arm/kernel/process.c
2964 @@ -105,8 +105,8 @@ void __show_regs(struct pt_regs *regs)
2965
2966 show_regs_print_info(KERN_DEFAULT);
2967
2968 - print_symbol("PC is at %s\n", instruction_pointer(regs));
2969 - print_symbol("LR is at %s\n", regs->ARM_lr);
2970 + printk("PC is at %pA\n", (void *)instruction_pointer(regs));
2971 + printk("LR is at %pA\n", (void *)regs->ARM_lr);
2972 printk("pc : [<%08lx>] lr : [<%08lx>] psr: %08lx\n"
2973 "sp : %08lx ip : %08lx fp : %08lx\n",
2974 regs->ARM_pc, regs->ARM_lr, regs->ARM_cpsr,
2975 @@ -283,12 +283,6 @@ unsigned long get_wchan(struct task_struct *p)
2976 return 0;
2977 }
2978
2979 -unsigned long arch_randomize_brk(struct mm_struct *mm)
2980 -{
2981 - unsigned long range_end = mm->brk + 0x02000000;
2982 - return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
2983 -}
2984 -
2985 #ifdef CONFIG_MMU
2986 #ifdef CONFIG_KUSER_HELPERS
2987 /*
2988 @@ -304,7 +298,7 @@ static struct vm_area_struct gate_vma = {
2989
2990 static int __init gate_vma_init(void)
2991 {
2992 - gate_vma.vm_page_prot = PAGE_READONLY_EXEC;
2993 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
2994 return 0;
2995 }
2996 arch_initcall(gate_vma_init);
2997 @@ -333,91 +327,13 @@ const char *arch_vma_name(struct vm_area_struct *vma)
2998 return is_gate_vma(vma) ? "[vectors]" : NULL;
2999 }
3000
3001 -/* If possible, provide a placement hint at a random offset from the
3002 - * stack for the sigpage and vdso pages.
3003 - */
3004 -static unsigned long sigpage_addr(const struct mm_struct *mm,
3005 - unsigned int npages)
3006 -{
3007 - unsigned long offset;
3008 - unsigned long first;
3009 - unsigned long last;
3010 - unsigned long addr;
3011 - unsigned int slots;
3012 -
3013 - first = PAGE_ALIGN(mm->start_stack);
3014 -
3015 - last = TASK_SIZE - (npages << PAGE_SHIFT);
3016 -
3017 - /* No room after stack? */
3018 - if (first > last)
3019 - return 0;
3020 -
3021 - /* Just enough room? */
3022 - if (first == last)
3023 - return first;
3024 -
3025 - slots = ((last - first) >> PAGE_SHIFT) + 1;
3026 -
3027 - offset = get_random_int() % slots;
3028 -
3029 - addr = first + (offset << PAGE_SHIFT);
3030 -
3031 - return addr;
3032 -}
3033 -
3034 -static struct page *signal_page;
3035 -extern struct page *get_signal_page(void);
3036 -
3037 -static const struct vm_special_mapping sigpage_mapping = {
3038 - .name = "[sigpage]",
3039 - .pages = &signal_page,
3040 -};
3041 -
3042 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
3043 {
3044 struct mm_struct *mm = current->mm;
3045 - struct vm_area_struct *vma;
3046 - unsigned long npages;
3047 - unsigned long addr;
3048 - unsigned long hint;
3049 - int ret = 0;
3050 -
3051 - if (!signal_page)
3052 - signal_page = get_signal_page();
3053 - if (!signal_page)
3054 - return -ENOMEM;
3055 -
3056 - npages = 1; /* for sigpage */
3057 - npages += vdso_total_pages;
3058
3059 down_write(&mm->mmap_sem);
3060 - hint = sigpage_addr(mm, npages);
3061 - addr = get_unmapped_area(NULL, hint, npages << PAGE_SHIFT, 0, 0);
3062 - if (IS_ERR_VALUE(addr)) {
3063 - ret = addr;
3064 - goto up_fail;
3065 - }
3066 -
3067 - vma = _install_special_mapping(mm, addr, PAGE_SIZE,
3068 - VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC,
3069 - &sigpage_mapping);
3070 -
3071 - if (IS_ERR(vma)) {
3072 - ret = PTR_ERR(vma);
3073 - goto up_fail;
3074 - }
3075 -
3076 - mm->context.sigpage = addr;
3077 -
3078 - /* Unlike the sigpage, failure to install the vdso is unlikely
3079 - * to be fatal to the process, so no error check needed
3080 - * here.
3081 - */
3082 - arm_install_vdso(mm, addr + PAGE_SIZE);
3083 -
3084 - up_fail:
3085 + mm->context.sigpage = (PAGE_OFFSET + (get_random_int() % 0x3FFEFFE0)) & 0xFFFFFFFC;
3086 up_write(&mm->mmap_sem);
3087 - return ret;
3088 + return 0;
3089 }
3090 #endif
3091 diff --git a/arch/arm/kernel/psci.c b/arch/arm/kernel/psci.c
3092 index f90fdf4..24e8c84 100644
3093 --- a/arch/arm/kernel/psci.c
3094 +++ b/arch/arm/kernel/psci.c
3095 @@ -26,7 +26,7 @@
3096 #include <asm/psci.h>
3097 #include <asm/system_misc.h>
3098
3099 -struct psci_operations psci_ops;
3100 +struct psci_operations psci_ops __read_only;
3101
3102 static int (*invoke_psci_fn)(u32, u32, u32, u32);
3103 typedef int (*psci_initcall_t)(const struct device_node *);
3104 diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
3105 index ef9119f..31995a3 100644
3106 --- a/arch/arm/kernel/ptrace.c
3107 +++ b/arch/arm/kernel/ptrace.c
3108 @@ -928,10 +928,19 @@ static void tracehook_report_syscall(struct pt_regs *regs,
3109 regs->ARM_ip = ip;
3110 }
3111
3112 +#ifdef CONFIG_GRKERNSEC_SETXID
3113 +extern void gr_delayed_cred_worker(void);
3114 +#endif
3115 +
3116 asmlinkage int syscall_trace_enter(struct pt_regs *regs, int scno)
3117 {
3118 current_thread_info()->syscall = scno;
3119
3120 +#ifdef CONFIG_GRKERNSEC_SETXID
3121 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
3122 + gr_delayed_cred_worker();
3123 +#endif
3124 +
3125 /* Do the secure computing check first; failures should be fast. */
3126 #ifdef CONFIG_HAVE_ARCH_SECCOMP_FILTER
3127 if (secure_computing() == -1)
3128 diff --git a/arch/arm/kernel/reboot.c b/arch/arm/kernel/reboot.c
3129 index 3826935..8ed63ed 100644
3130 --- a/arch/arm/kernel/reboot.c
3131 +++ b/arch/arm/kernel/reboot.c
3132 @@ -122,6 +122,7 @@ void machine_power_off(void)
3133
3134 if (pm_power_off)
3135 pm_power_off();
3136 + while (1);
3137 }
3138
3139 /*
3140 diff --git a/arch/arm/kernel/setup.c b/arch/arm/kernel/setup.c
3141 index 36c18b7..0d78292 100644
3142 --- a/arch/arm/kernel/setup.c
3143 +++ b/arch/arm/kernel/setup.c
3144 @@ -108,21 +108,23 @@ EXPORT_SYMBOL(elf_hwcap);
3145 unsigned int elf_hwcap2 __read_mostly;
3146 EXPORT_SYMBOL(elf_hwcap2);
3147
3148 +pteval_t __supported_pte_mask __read_only;
3149 +pmdval_t __supported_pmd_mask __read_only;
3150
3151 #ifdef MULTI_CPU
3152 -struct processor processor __read_mostly;
3153 +struct processor processor __read_only;
3154 #endif
3155 #ifdef MULTI_TLB
3156 -struct cpu_tlb_fns cpu_tlb __read_mostly;
3157 +struct cpu_tlb_fns cpu_tlb __read_only;
3158 #endif
3159 #ifdef MULTI_USER
3160 -struct cpu_user_fns cpu_user __read_mostly;
3161 +struct cpu_user_fns cpu_user __read_only;
3162 #endif
3163 #ifdef MULTI_CACHE
3164 -struct cpu_cache_fns cpu_cache __read_mostly;
3165 +struct cpu_cache_fns cpu_cache __read_only;
3166 #endif
3167 #ifdef CONFIG_OUTER_CACHE
3168 -struct outer_cache_fns outer_cache __read_mostly;
3169 +struct outer_cache_fns outer_cache __read_only;
3170 EXPORT_SYMBOL(outer_cache);
3171 #endif
3172
3173 @@ -253,9 +255,13 @@ static int __get_cpu_architecture(void)
3174 * Register 0 and check for VMSAv7 or PMSAv7 */
3175 unsigned int mmfr0 = read_cpuid_ext(CPUID_EXT_MMFR0);
3176 if ((mmfr0 & 0x0000000f) >= 0x00000003 ||
3177 - (mmfr0 & 0x000000f0) >= 0x00000030)
3178 + (mmfr0 & 0x000000f0) >= 0x00000030) {
3179 cpu_arch = CPU_ARCH_ARMv7;
3180 - else if ((mmfr0 & 0x0000000f) == 0x00000002 ||
3181 + if ((mmfr0 & 0x0000000f) == 0x00000005 || (mmfr0 & 0x0000000f) == 0x00000004) {
3182 + __supported_pte_mask |= L_PTE_PXN;
3183 + __supported_pmd_mask |= PMD_PXNTABLE;
3184 + }
3185 + } else if ((mmfr0 & 0x0000000f) == 0x00000002 ||
3186 (mmfr0 & 0x000000f0) == 0x00000020)
3187 cpu_arch = CPU_ARCH_ARMv6;
3188 else
3189 diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
3190 index 586eef2..61aabd4 100644
3191 --- a/arch/arm/kernel/signal.c
3192 +++ b/arch/arm/kernel/signal.c
3193 @@ -24,8 +24,6 @@
3194
3195 extern const unsigned long sigreturn_codes[7];
3196
3197 -static unsigned long signal_return_offset;
3198 -
3199 #ifdef CONFIG_CRUNCH
3200 static int preserve_crunch_context(struct crunch_sigframe __user *frame)
3201 {
3202 @@ -390,8 +388,7 @@ setup_return(struct pt_regs *regs, struct ksignal *ksig,
3203 * except when the MPU has protected the vectors
3204 * page from PL0
3205 */
3206 - retcode = mm->context.sigpage + signal_return_offset +
3207 - (idx << 2) + thumb;
3208 + retcode = mm->context.sigpage + (idx << 2) + thumb;
3209 } else
3210 #endif
3211 {
3212 @@ -597,33 +594,3 @@ do_work_pending(struct pt_regs *regs, unsigned int thread_flags, int syscall)
3213 } while (thread_flags & _TIF_WORK_MASK);
3214 return 0;
3215 }
3216 -
3217 -struct page *get_signal_page(void)
3218 -{
3219 - unsigned long ptr;
3220 - unsigned offset;
3221 - struct page *page;
3222 - void *addr;
3223 -
3224 - page = alloc_pages(GFP_KERNEL, 0);
3225 -
3226 - if (!page)
3227 - return NULL;
3228 -
3229 - addr = page_address(page);
3230 -
3231 - /* Give the signal return code some randomness */
3232 - offset = 0x200 + (get_random_int() & 0x7fc);
3233 - signal_return_offset = offset;
3234 -
3235 - /*
3236 - * Copy signal return handlers into the vector page, and
3237 - * set sigreturn to be a pointer to these.
3238 - */
3239 - memcpy(addr + offset, sigreturn_codes, sizeof(sigreturn_codes));
3240 -
3241 - ptr = (unsigned long)addr + offset;
3242 - flush_icache_range(ptr, ptr + sizeof(sigreturn_codes));
3243 -
3244 - return page;
3245 -}
3246 diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
3247 index 3d6b782..8b3baeb 100644
3248 --- a/arch/arm/kernel/smp.c
3249 +++ b/arch/arm/kernel/smp.c
3250 @@ -76,7 +76,7 @@ enum ipi_msg_type {
3251
3252 static DECLARE_COMPLETION(cpu_running);
3253
3254 -static struct smp_operations smp_ops;
3255 +static struct smp_operations smp_ops __read_only;
3256
3257 void __init smp_set_ops(struct smp_operations *ops)
3258 {
3259 diff --git a/arch/arm/kernel/tcm.c b/arch/arm/kernel/tcm.c
3260 index b10e136..cb5edf9 100644
3261 --- a/arch/arm/kernel/tcm.c
3262 +++ b/arch/arm/kernel/tcm.c
3263 @@ -64,7 +64,7 @@ static struct map_desc itcm_iomap[] __initdata = {
3264 .virtual = ITCM_OFFSET,
3265 .pfn = __phys_to_pfn(ITCM_OFFSET),
3266 .length = 0,
3267 - .type = MT_MEMORY_RWX_ITCM,
3268 + .type = MT_MEMORY_RX_ITCM,
3269 }
3270 };
3271
3272 @@ -362,7 +362,9 @@ no_dtcm:
3273 start = &__sitcm_text;
3274 end = &__eitcm_text;
3275 ram = &__itcm_start;
3276 + pax_open_kernel();
3277 memcpy(start, ram, itcm_code_sz);
3278 + pax_close_kernel();
3279 pr_debug("CPU ITCM: copied code from %p - %p\n",
3280 start, end);
3281 itcm_present = true;
3282 diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
3283 index d358226..bfd4019 100644
3284 --- a/arch/arm/kernel/traps.c
3285 +++ b/arch/arm/kernel/traps.c
3286 @@ -65,7 +65,7 @@ static void dump_mem(const char *, const char *, unsigned long, unsigned long);
3287 void dump_backtrace_entry(unsigned long where, unsigned long from, unsigned long frame)
3288 {
3289 #ifdef CONFIG_KALLSYMS
3290 - printk("[<%08lx>] (%ps) from [<%08lx>] (%pS)\n", where, (void *)where, from, (void *)from);
3291 + printk("[<%08lx>] (%pA) from [<%08lx>] (%pA)\n", where, (void *)where, from, (void *)from);
3292 #else
3293 printk("Function entered at [<%08lx>] from [<%08lx>]\n", where, from);
3294 #endif
3295 @@ -267,6 +267,8 @@ static arch_spinlock_t die_lock = __ARCH_SPIN_LOCK_UNLOCKED;
3296 static int die_owner = -1;
3297 static unsigned int die_nest_count;
3298
3299 +extern void gr_handle_kernel_exploit(void);
3300 +
3301 static unsigned long oops_begin(void)
3302 {
3303 int cpu;
3304 @@ -309,6 +311,9 @@ static void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
3305 panic("Fatal exception in interrupt");
3306 if (panic_on_oops)
3307 panic("Fatal exception");
3308 +
3309 + gr_handle_kernel_exploit();
3310 +
3311 if (signr)
3312 do_exit(signr);
3313 }
3314 @@ -870,7 +875,11 @@ void __init early_trap_init(void *vectors_base)
3315 kuser_init(vectors_base);
3316
3317 flush_icache_range(vectors, vectors + PAGE_SIZE * 2);
3318 - modify_domain(DOMAIN_USER, DOMAIN_CLIENT);
3319 +
3320 +#ifndef CONFIG_PAX_MEMORY_UDEREF
3321 + modify_domain(DOMAIN_USER, DOMAIN_USERCLIENT);
3322 +#endif
3323 +
3324 #else /* ifndef CONFIG_CPU_V7M */
3325 /*
3326 * on V7-M there is no need to copy the vector table to a dedicated
3327 diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S
3328 index 8b60fde..8d986dd 100644
3329 --- a/arch/arm/kernel/vmlinux.lds.S
3330 +++ b/arch/arm/kernel/vmlinux.lds.S
3331 @@ -37,7 +37,7 @@
3332 #endif
3333
3334 #if (defined(CONFIG_SMP_ON_UP) && !defined(CONFIG_DEBUG_SPINLOCK)) || \
3335 - defined(CONFIG_GENERIC_BUG)
3336 + defined(CONFIG_GENERIC_BUG) || defined(CONFIG_PAX_REFCOUNT)
3337 #define ARM_EXIT_KEEP(x) x
3338 #define ARM_EXIT_DISCARD(x)
3339 #else
3340 @@ -120,6 +120,8 @@ SECTIONS
3341 #ifdef CONFIG_DEBUG_RODATA
3342 . = ALIGN(1<<SECTION_SHIFT);
3343 #endif
3344 + _etext = .; /* End of text section */
3345 +
3346 RO_DATA(PAGE_SIZE)
3347
3348 . = ALIGN(4);
3349 @@ -150,8 +152,6 @@ SECTIONS
3350
3351 NOTES
3352
3353 - _etext = .; /* End of text and rodata section */
3354 -
3355 #ifndef CONFIG_XIP_KERNEL
3356 # ifdef CONFIG_ARM_KERNMEM_PERMS
3357 . = ALIGN(1<<SECTION_SHIFT);
3358 diff --git a/arch/arm/kvm/arm.c b/arch/arm/kvm/arm.c
3359 index f9c341c..7430436 100644
3360 --- a/arch/arm/kvm/arm.c
3361 +++ b/arch/arm/kvm/arm.c
3362 @@ -57,7 +57,7 @@ static unsigned long hyp_default_vectors;
3363 static DEFINE_PER_CPU(struct kvm_vcpu *, kvm_arm_running_vcpu);
3364
3365 /* The VMID used in the VTTBR */
3366 -static atomic64_t kvm_vmid_gen = ATOMIC64_INIT(1);
3367 +static atomic64_unchecked_t kvm_vmid_gen = ATOMIC64_INIT(1);
3368 static u8 kvm_next_vmid;
3369 static DEFINE_SPINLOCK(kvm_vmid_lock);
3370
3371 @@ -372,7 +372,7 @@ void force_vm_exit(const cpumask_t *mask)
3372 */
3373 static bool need_new_vmid_gen(struct kvm *kvm)
3374 {
3375 - return unlikely(kvm->arch.vmid_gen != atomic64_read(&kvm_vmid_gen));
3376 + return unlikely(kvm->arch.vmid_gen != atomic64_read_unchecked(&kvm_vmid_gen));
3377 }
3378
3379 /**
3380 @@ -405,7 +405,7 @@ static void update_vttbr(struct kvm *kvm)
3381
3382 /* First user of a new VMID generation? */
3383 if (unlikely(kvm_next_vmid == 0)) {
3384 - atomic64_inc(&kvm_vmid_gen);
3385 + atomic64_inc_unchecked(&kvm_vmid_gen);
3386 kvm_next_vmid = 1;
3387
3388 /*
3389 @@ -422,7 +422,7 @@ static void update_vttbr(struct kvm *kvm)
3390 kvm_call_hyp(__kvm_flush_vm_context);
3391 }
3392
3393 - kvm->arch.vmid_gen = atomic64_read(&kvm_vmid_gen);
3394 + kvm->arch.vmid_gen = atomic64_read_unchecked(&kvm_vmid_gen);
3395 kvm->arch.vmid = kvm_next_vmid;
3396 kvm_next_vmid++;
3397
3398 @@ -1110,7 +1110,7 @@ struct kvm_vcpu *kvm_mpidr_to_vcpu(struct kvm *kvm, unsigned long mpidr)
3399 /**
3400 * Initialize Hyp-mode and memory mappings on all CPUs.
3401 */
3402 -int kvm_arch_init(void *opaque)
3403 +int kvm_arch_init(const void *opaque)
3404 {
3405 int err;
3406 int ret, cpu;
3407 diff --git a/arch/arm/lib/clear_user.S b/arch/arm/lib/clear_user.S
3408 index 1710fd7..ec3e014 100644
3409 --- a/arch/arm/lib/clear_user.S
3410 +++ b/arch/arm/lib/clear_user.S
3411 @@ -12,14 +12,14 @@
3412
3413 .text
3414
3415 -/* Prototype: int __clear_user(void *addr, size_t sz)
3416 +/* Prototype: int ___clear_user(void *addr, size_t sz)
3417 * Purpose : clear some user memory
3418 * Params : addr - user memory address to clear
3419 * : sz - number of bytes to clear
3420 * Returns : number of bytes NOT cleared
3421 */
3422 ENTRY(__clear_user_std)
3423 -WEAK(__clear_user)
3424 +WEAK(___clear_user)
3425 stmfd sp!, {r1, lr}
3426 mov r2, #0
3427 cmp r1, #4
3428 @@ -44,7 +44,7 @@ WEAK(__clear_user)
3429 USER( strnebt r2, [r0])
3430 mov r0, #0
3431 ldmfd sp!, {r1, pc}
3432 -ENDPROC(__clear_user)
3433 +ENDPROC(___clear_user)
3434 ENDPROC(__clear_user_std)
3435
3436 .pushsection .text.fixup,"ax"
3437 diff --git a/arch/arm/lib/copy_from_user.S b/arch/arm/lib/copy_from_user.S
3438 index 7a235b9..73a0556 100644
3439 --- a/arch/arm/lib/copy_from_user.S
3440 +++ b/arch/arm/lib/copy_from_user.S
3441 @@ -17,7 +17,7 @@
3442 /*
3443 * Prototype:
3444 *
3445 - * size_t __copy_from_user(void *to, const void *from, size_t n)
3446 + * size_t ___copy_from_user(void *to, const void *from, size_t n)
3447 *
3448 * Purpose:
3449 *
3450 @@ -89,11 +89,11 @@
3451
3452 .text
3453
3454 -ENTRY(__copy_from_user)
3455 +ENTRY(___copy_from_user)
3456
3457 #include "copy_template.S"
3458
3459 -ENDPROC(__copy_from_user)
3460 +ENDPROC(___copy_from_user)
3461
3462 .pushsection .fixup,"ax"
3463 .align 0
3464 diff --git a/arch/arm/lib/copy_page.S b/arch/arm/lib/copy_page.S
3465 index 6ee2f67..d1cce76 100644
3466 --- a/arch/arm/lib/copy_page.S
3467 +++ b/arch/arm/lib/copy_page.S
3468 @@ -10,6 +10,7 @@
3469 * ASM optimised string functions
3470 */
3471 #include <linux/linkage.h>
3472 +#include <linux/const.h>
3473 #include <asm/assembler.h>
3474 #include <asm/asm-offsets.h>
3475 #include <asm/cache.h>
3476 diff --git a/arch/arm/lib/copy_to_user.S b/arch/arm/lib/copy_to_user.S
3477 index 9648b06..19c333c 100644
3478 --- a/arch/arm/lib/copy_to_user.S
3479 +++ b/arch/arm/lib/copy_to_user.S
3480 @@ -17,7 +17,7 @@
3481 /*
3482 * Prototype:
3483 *
3484 - * size_t __copy_to_user(void *to, const void *from, size_t n)
3485 + * size_t ___copy_to_user(void *to, const void *from, size_t n)
3486 *
3487 * Purpose:
3488 *
3489 @@ -93,11 +93,11 @@
3490 .text
3491
3492 ENTRY(__copy_to_user_std)
3493 -WEAK(__copy_to_user)
3494 +WEAK(___copy_to_user)
3495
3496 #include "copy_template.S"
3497
3498 -ENDPROC(__copy_to_user)
3499 +ENDPROC(___copy_to_user)
3500 ENDPROC(__copy_to_user_std)
3501
3502 .pushsection .text.fixup,"ax"
3503 diff --git a/arch/arm/lib/csumpartialcopyuser.S b/arch/arm/lib/csumpartialcopyuser.S
3504 index 1d0957e..f708846 100644
3505 --- a/arch/arm/lib/csumpartialcopyuser.S
3506 +++ b/arch/arm/lib/csumpartialcopyuser.S
3507 @@ -57,8 +57,8 @@
3508 * Returns : r0 = checksum, [[sp, #0], #0] = 0 or -EFAULT
3509 */
3510
3511 -#define FN_ENTRY ENTRY(csum_partial_copy_from_user)
3512 -#define FN_EXIT ENDPROC(csum_partial_copy_from_user)
3513 +#define FN_ENTRY ENTRY(__csum_partial_copy_from_user)
3514 +#define FN_EXIT ENDPROC(__csum_partial_copy_from_user)
3515
3516 #include "csumpartialcopygeneric.S"
3517
3518 diff --git a/arch/arm/lib/delay.c b/arch/arm/lib/delay.c
3519 index 8044591..c9b2609 100644
3520 --- a/arch/arm/lib/delay.c
3521 +++ b/arch/arm/lib/delay.c
3522 @@ -29,7 +29,7 @@
3523 /*
3524 * Default to the loop-based delay implementation.
3525 */
3526 -struct arm_delay_ops arm_delay_ops = {
3527 +struct arm_delay_ops arm_delay_ops __read_only = {
3528 .delay = __loop_delay,
3529 .const_udelay = __loop_const_udelay,
3530 .udelay = __loop_udelay,
3531 diff --git a/arch/arm/lib/uaccess_with_memcpy.c b/arch/arm/lib/uaccess_with_memcpy.c
3532 index 4b39af2..9ae747d 100644
3533 --- a/arch/arm/lib/uaccess_with_memcpy.c
3534 +++ b/arch/arm/lib/uaccess_with_memcpy.c
3535 @@ -85,7 +85,7 @@ pin_page_for_write(const void __user *_addr, pte_t **ptep, spinlock_t **ptlp)
3536 return 1;
3537 }
3538
3539 -static unsigned long noinline
3540 +static unsigned long noinline __size_overflow(3)
3541 __copy_to_user_memcpy(void __user *to, const void *from, unsigned long n)
3542 {
3543 int atomic;
3544 @@ -136,7 +136,7 @@ out:
3545 }
3546
3547 unsigned long
3548 -__copy_to_user(void __user *to, const void *from, unsigned long n)
3549 +___copy_to_user(void __user *to, const void *from, unsigned long n)
3550 {
3551 /*
3552 * This test is stubbed out of the main function above to keep
3553 @@ -150,7 +150,7 @@ __copy_to_user(void __user *to, const void *from, unsigned long n)
3554 return __copy_to_user_memcpy(to, from, n);
3555 }
3556
3557 -static unsigned long noinline
3558 +static unsigned long noinline __size_overflow(2)
3559 __clear_user_memset(void __user *addr, unsigned long n)
3560 {
3561 if (unlikely(segment_eq(get_fs(), KERNEL_DS))) {
3562 @@ -190,7 +190,7 @@ out:
3563 return n;
3564 }
3565
3566 -unsigned long __clear_user(void __user *addr, unsigned long n)
3567 +unsigned long ___clear_user(void __user *addr, unsigned long n)
3568 {
3569 /* See rational for this in __copy_to_user() above. */
3570 if (n < 64)
3571 diff --git a/arch/arm/mach-exynos/suspend.c b/arch/arm/mach-exynos/suspend.c
3572 index f572219..2cf36d5 100644
3573 --- a/arch/arm/mach-exynos/suspend.c
3574 +++ b/arch/arm/mach-exynos/suspend.c
3575 @@ -732,8 +732,10 @@ void __init exynos_pm_init(void)
3576 tmp |= pm_data->wake_disable_mask;
3577 pmu_raw_writel(tmp, S5P_WAKEUP_MASK);
3578
3579 - exynos_pm_syscore_ops.suspend = pm_data->pm_suspend;
3580 - exynos_pm_syscore_ops.resume = pm_data->pm_resume;
3581 + pax_open_kernel();
3582 + *(void **)&exynos_pm_syscore_ops.suspend = pm_data->pm_suspend;
3583 + *(void **)&exynos_pm_syscore_ops.resume = pm_data->pm_resume;
3584 + pax_close_kernel();
3585
3586 register_syscore_ops(&exynos_pm_syscore_ops);
3587 suspend_set_ops(&exynos_suspend_ops);
3588 diff --git a/arch/arm/mach-mvebu/coherency.c b/arch/arm/mach-mvebu/coherency.c
3589 index e46e9ea..9141c83 100644
3590 --- a/arch/arm/mach-mvebu/coherency.c
3591 +++ b/arch/arm/mach-mvebu/coherency.c
3592 @@ -117,7 +117,7 @@ static void __init armada_370_coherency_init(struct device_node *np)
3593
3594 /*
3595 * This ioremap hook is used on Armada 375/38x to ensure that PCIe
3596 - * memory areas are mapped as MT_UNCACHED instead of MT_DEVICE. This
3597 + * memory areas are mapped as MT_UNCACHED_RW instead of MT_DEVICE. This
3598 * is needed as a workaround for a deadlock issue between the PCIe
3599 * interface and the cache controller.
3600 */
3601 @@ -130,7 +130,7 @@ armada_pcie_wa_ioremap_caller(phys_addr_t phys_addr, size_t size,
3602 mvebu_mbus_get_pcie_mem_aperture(&pcie_mem);
3603
3604 if (pcie_mem.start <= phys_addr && (phys_addr + size) <= pcie_mem.end)
3605 - mtype = MT_UNCACHED;
3606 + mtype = MT_UNCACHED_RW;
3607
3608 return __arm_ioremap_caller(phys_addr, size, mtype, caller);
3609 }
3610 diff --git a/arch/arm/mach-omap2/board-n8x0.c b/arch/arm/mach-omap2/board-n8x0.c
3611 index b6443a4..20a0b74 100644
3612 --- a/arch/arm/mach-omap2/board-n8x0.c
3613 +++ b/arch/arm/mach-omap2/board-n8x0.c
3614 @@ -569,7 +569,7 @@ static int n8x0_menelaus_late_init(struct device *dev)
3615 }
3616 #endif
3617
3618 -struct menelaus_platform_data n8x0_menelaus_platform_data __initdata = {
3619 +struct menelaus_platform_data n8x0_menelaus_platform_data __initconst = {
3620 .late_init = n8x0_menelaus_late_init,
3621 };
3622
3623 diff --git a/arch/arm/mach-omap2/omap-mpuss-lowpower.c b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3624 index 79f49d9..70bf184 100644
3625 --- a/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3626 +++ b/arch/arm/mach-omap2/omap-mpuss-lowpower.c
3627 @@ -86,7 +86,7 @@ struct cpu_pm_ops {
3628 void (*resume)(void);
3629 void (*scu_prepare)(unsigned int cpu_id, unsigned int cpu_state);
3630 void (*hotplug_restart)(void);
3631 -};
3632 +} __no_const;
3633
3634 static DEFINE_PER_CPU(struct omap4_cpu_pm_info, omap4_pm_info);
3635 static struct powerdomain *mpuss_pd;
3636 @@ -105,7 +105,7 @@ static void dummy_cpu_resume(void)
3637 static void dummy_scu_prepare(unsigned int cpu_id, unsigned int cpu_state)
3638 {}
3639
3640 -struct cpu_pm_ops omap_pm_ops = {
3641 +static struct cpu_pm_ops omap_pm_ops __read_only = {
3642 .finish_suspend = default_finish_suspend,
3643 .resume = dummy_cpu_resume,
3644 .scu_prepare = dummy_scu_prepare,
3645 diff --git a/arch/arm/mach-omap2/omap-smp.c b/arch/arm/mach-omap2/omap-smp.c
3646 index 5305ec7..6d74045 100644
3647 --- a/arch/arm/mach-omap2/omap-smp.c
3648 +++ b/arch/arm/mach-omap2/omap-smp.c
3649 @@ -19,6 +19,7 @@
3650 #include <linux/device.h>
3651 #include <linux/smp.h>
3652 #include <linux/io.h>
3653 +#include <linux/irq.h>
3654 #include <linux/irqchip/arm-gic.h>
3655
3656 #include <asm/smp_scu.h>
3657 diff --git a/arch/arm/mach-omap2/omap-wakeupgen.c b/arch/arm/mach-omap2/omap-wakeupgen.c
3658 index e1d2e99..d9b3177 100644
3659 --- a/arch/arm/mach-omap2/omap-wakeupgen.c
3660 +++ b/arch/arm/mach-omap2/omap-wakeupgen.c
3661 @@ -330,7 +330,7 @@ static int irq_cpu_hotplug_notify(struct notifier_block *self,
3662 return NOTIFY_OK;
3663 }
3664
3665 -static struct notifier_block __refdata irq_hotplug_notifier = {
3666 +static struct notifier_block irq_hotplug_notifier = {
3667 .notifier_call = irq_cpu_hotplug_notify,
3668 };
3669
3670 diff --git a/arch/arm/mach-omap2/omap_device.c b/arch/arm/mach-omap2/omap_device.c
3671 index 4cb8fd9..5ce65bc 100644
3672 --- a/arch/arm/mach-omap2/omap_device.c
3673 +++ b/arch/arm/mach-omap2/omap_device.c
3674 @@ -504,7 +504,7 @@ void omap_device_delete(struct omap_device *od)
3675 struct platform_device __init *omap_device_build(const char *pdev_name,
3676 int pdev_id,
3677 struct omap_hwmod *oh,
3678 - void *pdata, int pdata_len)
3679 + const void *pdata, int pdata_len)
3680 {
3681 struct omap_hwmod *ohs[] = { oh };
3682
3683 @@ -532,7 +532,7 @@ struct platform_device __init *omap_device_build(const char *pdev_name,
3684 struct platform_device __init *omap_device_build_ss(const char *pdev_name,
3685 int pdev_id,
3686 struct omap_hwmod **ohs,
3687 - int oh_cnt, void *pdata,
3688 + int oh_cnt, const void *pdata,
3689 int pdata_len)
3690 {
3691 int ret = -ENOMEM;
3692 diff --git a/arch/arm/mach-omap2/omap_device.h b/arch/arm/mach-omap2/omap_device.h
3693 index 78c02b3..c94109a 100644
3694 --- a/arch/arm/mach-omap2/omap_device.h
3695 +++ b/arch/arm/mach-omap2/omap_device.h
3696 @@ -72,12 +72,12 @@ int omap_device_idle(struct platform_device *pdev);
3697 /* Core code interface */
3698
3699 struct platform_device *omap_device_build(const char *pdev_name, int pdev_id,
3700 - struct omap_hwmod *oh, void *pdata,
3701 + struct omap_hwmod *oh, const void *pdata,
3702 int pdata_len);
3703
3704 struct platform_device *omap_device_build_ss(const char *pdev_name, int pdev_id,
3705 struct omap_hwmod **oh, int oh_cnt,
3706 - void *pdata, int pdata_len);
3707 + const void *pdata, int pdata_len);
3708
3709 struct omap_device *omap_device_alloc(struct platform_device *pdev,
3710 struct omap_hwmod **ohs, int oh_cnt);
3711 diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
3712 index 486cc4d..8d1a0b7 100644
3713 --- a/arch/arm/mach-omap2/omap_hwmod.c
3714 +++ b/arch/arm/mach-omap2/omap_hwmod.c
3715 @@ -199,10 +199,10 @@ struct omap_hwmod_soc_ops {
3716 int (*init_clkdm)(struct omap_hwmod *oh);
3717 void (*update_context_lost)(struct omap_hwmod *oh);
3718 int (*get_context_lost)(struct omap_hwmod *oh);
3719 -};
3720 +} __no_const;
3721
3722 /* soc_ops: adapts the omap_hwmod code to the currently-booted SoC */
3723 -static struct omap_hwmod_soc_ops soc_ops;
3724 +static struct omap_hwmod_soc_ops soc_ops __read_only;
3725
3726 /* omap_hwmod_list contains all registered struct omap_hwmods */
3727 static LIST_HEAD(omap_hwmod_list);
3728 diff --git a/arch/arm/mach-omap2/powerdomains43xx_data.c b/arch/arm/mach-omap2/powerdomains43xx_data.c
3729 index 95fee54..cfa9cf1 100644
3730 --- a/arch/arm/mach-omap2/powerdomains43xx_data.c
3731 +++ b/arch/arm/mach-omap2/powerdomains43xx_data.c
3732 @@ -10,6 +10,7 @@
3733
3734 #include <linux/kernel.h>
3735 #include <linux/init.h>
3736 +#include <asm/pgtable.h>
3737
3738 #include "powerdomain.h"
3739
3740 @@ -129,7 +130,9 @@ static int am43xx_check_vcvp(void)
3741
3742 void __init am43xx_powerdomains_init(void)
3743 {
3744 - omap4_pwrdm_operations.pwrdm_has_voltdm = am43xx_check_vcvp;
3745 + pax_open_kernel();
3746 + *(void **)&omap4_pwrdm_operations.pwrdm_has_voltdm = am43xx_check_vcvp;
3747 + pax_close_kernel();
3748 pwrdm_register_platform_funcs(&omap4_pwrdm_operations);
3749 pwrdm_register_pwrdms(powerdomains_am43xx);
3750 pwrdm_complete_init();
3751 diff --git a/arch/arm/mach-omap2/wd_timer.c b/arch/arm/mach-omap2/wd_timer.c
3752 index ff0a68c..b312aa0 100644
3753 --- a/arch/arm/mach-omap2/wd_timer.c
3754 +++ b/arch/arm/mach-omap2/wd_timer.c
3755 @@ -110,7 +110,9 @@ static int __init omap_init_wdt(void)
3756 struct omap_hwmod *oh;
3757 char *oh_name = "wd_timer2";
3758 char *dev_name = "omap_wdt";
3759 - struct omap_wd_timer_platform_data pdata;
3760 + static struct omap_wd_timer_platform_data pdata = {
3761 + .read_reset_sources = prm_read_reset_sources
3762 + };
3763
3764 if (!cpu_class_is_omap2() || of_have_populated_dt())
3765 return 0;
3766 @@ -121,8 +123,6 @@ static int __init omap_init_wdt(void)
3767 return -EINVAL;
3768 }
3769
3770 - pdata.read_reset_sources = prm_read_reset_sources;
3771 -
3772 pdev = omap_device_build(dev_name, id, oh, &pdata,
3773 sizeof(struct omap_wd_timer_platform_data));
3774 WARN(IS_ERR(pdev), "Can't build omap_device for %s:%s.\n",
3775 diff --git a/arch/arm/mach-shmobile/platsmp-apmu.c b/arch/arm/mach-shmobile/platsmp-apmu.c
3776 index b0790fc..71eb21f 100644
3777 --- a/arch/arm/mach-shmobile/platsmp-apmu.c
3778 +++ b/arch/arm/mach-shmobile/platsmp-apmu.c
3779 @@ -22,6 +22,7 @@
3780 #include <asm/proc-fns.h>
3781 #include <asm/smp_plat.h>
3782 #include <asm/suspend.h>
3783 +#include <asm/pgtable.h>
3784 #include "common.h"
3785 #include "platsmp-apmu.h"
3786
3787 @@ -233,6 +234,8 @@ static int shmobile_smp_apmu_enter_suspend(suspend_state_t state)
3788
3789 void __init shmobile_smp_apmu_suspend_init(void)
3790 {
3791 - shmobile_suspend_ops.enter = shmobile_smp_apmu_enter_suspend;
3792 + pax_open_kernel();
3793 + *(void **)&shmobile_suspend_ops.enter = shmobile_smp_apmu_enter_suspend;
3794 + pax_close_kernel();
3795 }
3796 #endif
3797 diff --git a/arch/arm/mach-shmobile/pm-r8a7740.c b/arch/arm/mach-shmobile/pm-r8a7740.c
3798 index 34608fc..344d7c0 100644
3799 --- a/arch/arm/mach-shmobile/pm-r8a7740.c
3800 +++ b/arch/arm/mach-shmobile/pm-r8a7740.c
3801 @@ -11,6 +11,7 @@
3802 #include <linux/console.h>
3803 #include <linux/io.h>
3804 #include <linux/suspend.h>
3805 +#include <asm/pgtable.h>
3806
3807 #include "common.h"
3808 #include "pm-rmobile.h"
3809 @@ -117,7 +118,9 @@ static int r8a7740_enter_suspend(suspend_state_t suspend_state)
3810
3811 static void r8a7740_suspend_init(void)
3812 {
3813 - shmobile_suspend_ops.enter = r8a7740_enter_suspend;
3814 + pax_open_kernel();
3815 + *(void **)&shmobile_suspend_ops.enter = r8a7740_enter_suspend;
3816 + pax_close_kernel();
3817 }
3818 #else
3819 static void r8a7740_suspend_init(void) {}
3820 diff --git a/arch/arm/mach-shmobile/pm-sh73a0.c b/arch/arm/mach-shmobile/pm-sh73a0.c
3821 index a7e4668..83334f33 100644
3822 --- a/arch/arm/mach-shmobile/pm-sh73a0.c
3823 +++ b/arch/arm/mach-shmobile/pm-sh73a0.c
3824 @@ -9,6 +9,7 @@
3825 */
3826
3827 #include <linux/suspend.h>
3828 +#include <asm/pgtable.h>
3829 #include "common.h"
3830
3831 #ifdef CONFIG_SUSPEND
3832 @@ -20,7 +21,9 @@ static int sh73a0_enter_suspend(suspend_state_t suspend_state)
3833
3834 static void sh73a0_suspend_init(void)
3835 {
3836 - shmobile_suspend_ops.enter = sh73a0_enter_suspend;
3837 + pax_open_kernel();
3838 + *(void **)&shmobile_suspend_ops.enter = sh73a0_enter_suspend;
3839 + pax_close_kernel();
3840 }
3841 #else
3842 static void sh73a0_suspend_init(void) {}
3843 diff --git a/arch/arm/mach-tegra/cpuidle-tegra20.c b/arch/arm/mach-tegra/cpuidle-tegra20.c
3844 index 7469347..1ecc350 100644
3845 --- a/arch/arm/mach-tegra/cpuidle-tegra20.c
3846 +++ b/arch/arm/mach-tegra/cpuidle-tegra20.c
3847 @@ -177,7 +177,7 @@ static int tegra20_idle_lp2_coupled(struct cpuidle_device *dev,
3848 bool entered_lp2 = false;
3849
3850 if (tegra_pending_sgi())
3851 - ACCESS_ONCE(abort_flag) = true;
3852 + ACCESS_ONCE_RW(abort_flag) = true;
3853
3854 cpuidle_coupled_parallel_barrier(dev, &abort_barrier);
3855
3856 diff --git a/arch/arm/mach-tegra/irq.c b/arch/arm/mach-tegra/irq.c
3857 index 3b9098d..15b390f 100644
3858 --- a/arch/arm/mach-tegra/irq.c
3859 +++ b/arch/arm/mach-tegra/irq.c
3860 @@ -20,6 +20,7 @@
3861 #include <linux/cpu_pm.h>
3862 #include <linux/interrupt.h>
3863 #include <linux/io.h>
3864 +#include <linux/irq.h>
3865 #include <linux/irqchip/arm-gic.h>
3866 #include <linux/irq.h>
3867 #include <linux/kernel.h>
3868 diff --git a/arch/arm/mach-ux500/pm.c b/arch/arm/mach-ux500/pm.c
3869 index 8538910..2f39bc4 100644
3870 --- a/arch/arm/mach-ux500/pm.c
3871 +++ b/arch/arm/mach-ux500/pm.c
3872 @@ -10,6 +10,7 @@
3873 */
3874
3875 #include <linux/kernel.h>
3876 +#include <linux/irq.h>
3877 #include <linux/irqchip/arm-gic.h>
3878 #include <linux/delay.h>
3879 #include <linux/io.h>
3880 diff --git a/arch/arm/mach-zynq/platsmp.c b/arch/arm/mach-zynq/platsmp.c
3881 index f66816c..228b951 100644
3882 --- a/arch/arm/mach-zynq/platsmp.c
3883 +++ b/arch/arm/mach-zynq/platsmp.c
3884 @@ -24,6 +24,7 @@
3885 #include <linux/io.h>
3886 #include <asm/cacheflush.h>
3887 #include <asm/smp_scu.h>
3888 +#include <linux/irq.h>
3889 #include <linux/irqchip/arm-gic.h>
3890 #include "common.h"
3891
3892 diff --git a/arch/arm/mm/Kconfig b/arch/arm/mm/Kconfig
3893 index 7c6b976..055db09 100644
3894 --- a/arch/arm/mm/Kconfig
3895 +++ b/arch/arm/mm/Kconfig
3896 @@ -446,6 +446,7 @@ config CPU_32v5
3897
3898 config CPU_32v6
3899 bool
3900 + select CPU_USE_DOMAINS if CPU_V6 && MMU && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
3901 select TLS_REG_EMUL if !CPU_32v6K && !MMU
3902
3903 config CPU_32v6K
3904 @@ -600,6 +601,7 @@ config CPU_CP15_MPU
3905
3906 config CPU_USE_DOMAINS
3907 bool
3908 + depends on !ARM_LPAE && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
3909 help
3910 This option enables or disables the use of domain switching
3911 via the set_fs() function.
3912 @@ -818,7 +820,7 @@ config NEED_KUSER_HELPERS
3913
3914 config KUSER_HELPERS
3915 bool "Enable kuser helpers in vector page" if !NEED_KUSER_HELPERS
3916 - depends on MMU
3917 + depends on MMU && (!(CPU_V6 || CPU_V6K || CPU_V7) || GRKERNSEC_OLD_ARM_USERLAND)
3918 default y
3919 help
3920 Warning: disabling this option may break user programs.
3921 @@ -832,7 +834,7 @@ config KUSER_HELPERS
3922 See Documentation/arm/kernel_user_helpers.txt for details.
3923
3924 However, the fixed address nature of these helpers can be used
3925 - by ROP (return orientated programming) authors when creating
3926 + by ROP (Return Oriented Programming) authors when creating
3927 exploits.
3928
3929 If all of the binaries and libraries which run on your platform
3930 diff --git a/arch/arm/mm/alignment.c b/arch/arm/mm/alignment.c
3931 index 9769f1e..16aaa55 100644
3932 --- a/arch/arm/mm/alignment.c
3933 +++ b/arch/arm/mm/alignment.c
3934 @@ -216,10 +216,12 @@ union offset_union {
3935 #define __get16_unaligned_check(ins,val,addr) \
3936 do { \
3937 unsigned int err = 0, v, a = addr; \
3938 + pax_open_userland(); \
3939 __get8_unaligned_check(ins,v,a,err); \
3940 val = v << ((BE) ? 8 : 0); \
3941 __get8_unaligned_check(ins,v,a,err); \
3942 val |= v << ((BE) ? 0 : 8); \
3943 + pax_close_userland(); \
3944 if (err) \
3945 goto fault; \
3946 } while (0)
3947 @@ -233,6 +235,7 @@ union offset_union {
3948 #define __get32_unaligned_check(ins,val,addr) \
3949 do { \
3950 unsigned int err = 0, v, a = addr; \
3951 + pax_open_userland(); \
3952 __get8_unaligned_check(ins,v,a,err); \
3953 val = v << ((BE) ? 24 : 0); \
3954 __get8_unaligned_check(ins,v,a,err); \
3955 @@ -241,6 +244,7 @@ union offset_union {
3956 val |= v << ((BE) ? 8 : 16); \
3957 __get8_unaligned_check(ins,v,a,err); \
3958 val |= v << ((BE) ? 0 : 24); \
3959 + pax_close_userland(); \
3960 if (err) \
3961 goto fault; \
3962 } while (0)
3963 @@ -254,6 +258,7 @@ union offset_union {
3964 #define __put16_unaligned_check(ins,val,addr) \
3965 do { \
3966 unsigned int err = 0, v = val, a = addr; \
3967 + pax_open_userland(); \
3968 __asm__( FIRST_BYTE_16 \
3969 ARM( "1: "ins" %1, [%2], #1\n" ) \
3970 THUMB( "1: "ins" %1, [%2]\n" ) \
3971 @@ -273,6 +278,7 @@ union offset_union {
3972 " .popsection\n" \
3973 : "=r" (err), "=&r" (v), "=&r" (a) \
3974 : "0" (err), "1" (v), "2" (a)); \
3975 + pax_close_userland(); \
3976 if (err) \
3977 goto fault; \
3978 } while (0)
3979 @@ -286,6 +292,7 @@ union offset_union {
3980 #define __put32_unaligned_check(ins,val,addr) \
3981 do { \
3982 unsigned int err = 0, v = val, a = addr; \
3983 + pax_open_userland(); \
3984 __asm__( FIRST_BYTE_32 \
3985 ARM( "1: "ins" %1, [%2], #1\n" ) \
3986 THUMB( "1: "ins" %1, [%2]\n" ) \
3987 @@ -315,6 +322,7 @@ union offset_union {
3988 " .popsection\n" \
3989 : "=r" (err), "=&r" (v), "=&r" (a) \
3990 : "0" (err), "1" (v), "2" (a)); \
3991 + pax_close_userland(); \
3992 if (err) \
3993 goto fault; \
3994 } while (0)
3995 diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
3996 index 71b3d33..8af9ade 100644
3997 --- a/arch/arm/mm/cache-l2x0.c
3998 +++ b/arch/arm/mm/cache-l2x0.c
3999 @@ -44,7 +44,7 @@ struct l2c_init_data {
4000 void (*configure)(void __iomem *);
4001 void (*unlock)(void __iomem *, unsigned);
4002 struct outer_cache_fns outer_cache;
4003 -};
4004 +} __do_const;
4005
4006 #define CACHE_LINE_SIZE 32
4007
4008 diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c
4009 index 845769e..4278fd7 100644
4010 --- a/arch/arm/mm/context.c
4011 +++ b/arch/arm/mm/context.c
4012 @@ -43,7 +43,7 @@
4013 #define NUM_USER_ASIDS ASID_FIRST_VERSION
4014
4015 static DEFINE_RAW_SPINLOCK(cpu_asid_lock);
4016 -static atomic64_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION);
4017 +static atomic64_unchecked_t asid_generation = ATOMIC64_INIT(ASID_FIRST_VERSION);
4018 static DECLARE_BITMAP(asid_map, NUM_USER_ASIDS);
4019
4020 static DEFINE_PER_CPU(atomic64_t, active_asids);
4021 @@ -178,7 +178,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
4022 {
4023 static u32 cur_idx = 1;
4024 u64 asid = atomic64_read(&mm->context.id);
4025 - u64 generation = atomic64_read(&asid_generation);
4026 + u64 generation = atomic64_read_unchecked(&asid_generation);
4027
4028 if (asid != 0) {
4029 /*
4030 @@ -208,7 +208,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu)
4031 */
4032 asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, cur_idx);
4033 if (asid == NUM_USER_ASIDS) {
4034 - generation = atomic64_add_return(ASID_FIRST_VERSION,
4035 + generation = atomic64_add_return_unchecked(ASID_FIRST_VERSION,
4036 &asid_generation);
4037 flush_context(cpu);
4038 asid = find_next_zero_bit(asid_map, NUM_USER_ASIDS, 1);
4039 @@ -240,14 +240,14 @@ void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk)
4040 cpu_set_reserved_ttbr0();
4041
4042 asid = atomic64_read(&mm->context.id);
4043 - if (!((asid ^ atomic64_read(&asid_generation)) >> ASID_BITS)
4044 + if (!((asid ^ atomic64_read_unchecked(&asid_generation)) >> ASID_BITS)
4045 && atomic64_xchg(&per_cpu(active_asids, cpu), asid))
4046 goto switch_mm_fastpath;
4047
4048 raw_spin_lock_irqsave(&cpu_asid_lock, flags);
4049 /* Check that our ASID belongs to the current generation. */
4050 asid = atomic64_read(&mm->context.id);
4051 - if ((asid ^ atomic64_read(&asid_generation)) >> ASID_BITS) {
4052 + if ((asid ^ atomic64_read_unchecked(&asid_generation)) >> ASID_BITS) {
4053 asid = new_context(mm, cpu);
4054 atomic64_set(&mm->context.id, asid);
4055 }
4056 diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
4057 index 0d629b8..01867c8 100644
4058 --- a/arch/arm/mm/fault.c
4059 +++ b/arch/arm/mm/fault.c
4060 @@ -25,6 +25,7 @@
4061 #include <asm/system_misc.h>
4062 #include <asm/system_info.h>
4063 #include <asm/tlbflush.h>
4064 +#include <asm/sections.h>
4065
4066 #include "fault.h"
4067
4068 @@ -138,6 +139,31 @@ __do_kernel_fault(struct mm_struct *mm, unsigned long addr, unsigned int fsr,
4069 if (fixup_exception(regs))
4070 return;
4071
4072 +#ifdef CONFIG_PAX_MEMORY_UDEREF
4073 + if (addr < TASK_SIZE) {
4074 + if (current->signal->curr_ip)
4075 + 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),
4076 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
4077 + else
4078 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
4079 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
4080 + }
4081 +#endif
4082 +
4083 +#ifdef CONFIG_PAX_KERNEXEC
4084 + if ((fsr & FSR_WRITE) &&
4085 + (((unsigned long)_stext <= addr && addr < init_mm.end_code) ||
4086 + (MODULES_VADDR <= addr && addr < MODULES_END)))
4087 + {
4088 + if (current->signal->curr_ip)
4089 + 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),
4090 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
4091 + else
4092 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
4093 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
4094 + }
4095 +#endif
4096 +
4097 /*
4098 * No handler, we'll have to terminate things with extreme prejudice.
4099 */
4100 @@ -173,6 +199,13 @@ __do_user_fault(struct task_struct *tsk, unsigned long addr,
4101 }
4102 #endif
4103
4104 +#ifdef CONFIG_PAX_PAGEEXEC
4105 + if (fsr & FSR_LNX_PF) {
4106 + pax_report_fault(regs, (void *)regs->ARM_pc, (void *)regs->ARM_sp);
4107 + do_group_exit(SIGKILL);
4108 + }
4109 +#endif
4110 +
4111 tsk->thread.address = addr;
4112 tsk->thread.error_code = fsr;
4113 tsk->thread.trap_no = 14;
4114 @@ -400,6 +433,33 @@ do_page_fault(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
4115 }
4116 #endif /* CONFIG_MMU */
4117
4118 +#ifdef CONFIG_PAX_PAGEEXEC
4119 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
4120 +{
4121 + long i;
4122 +
4123 + printk(KERN_ERR "PAX: bytes at PC: ");
4124 + for (i = 0; i < 20; i++) {
4125 + unsigned char c;
4126 + if (get_user(c, (__force unsigned char __user *)pc+i))
4127 + printk(KERN_CONT "?? ");
4128 + else
4129 + printk(KERN_CONT "%02x ", c);
4130 + }
4131 + printk("\n");
4132 +
4133 + printk(KERN_ERR "PAX: bytes at SP-4: ");
4134 + for (i = -1; i < 20; i++) {
4135 + unsigned long c;
4136 + if (get_user(c, (__force unsigned long __user *)sp+i))
4137 + printk(KERN_CONT "???????? ");
4138 + else
4139 + printk(KERN_CONT "%08lx ", c);
4140 + }
4141 + printk("\n");
4142 +}
4143 +#endif
4144 +
4145 /*
4146 * First Level Translation Fault Handler
4147 *
4148 @@ -547,9 +607,22 @@ do_DataAbort(unsigned long addr, unsigned int fsr, struct pt_regs *regs)
4149 const struct fsr_info *inf = fsr_info + fsr_fs(fsr);
4150 struct siginfo info;
4151
4152 +#ifdef CONFIG_PAX_MEMORY_UDEREF
4153 + if (addr < TASK_SIZE && is_domain_fault(fsr)) {
4154 + if (current->signal->curr_ip)
4155 + 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),
4156 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
4157 + else
4158 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to access userland memory at %08lx\n", current->comm, task_pid_nr(current),
4159 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()), addr);
4160 + goto die;
4161 + }
4162 +#endif
4163 +
4164 if (!inf->fn(addr, fsr & ~FSR_LNX_PF, regs))
4165 return;
4166
4167 +die:
4168 pr_alert("Unhandled fault: %s (0x%03x) at 0x%08lx\n",
4169 inf->name, fsr, addr);
4170 show_pte(current->mm, addr);
4171 @@ -574,15 +647,104 @@ hook_ifault_code(int nr, int (*fn)(unsigned long, unsigned int, struct pt_regs *
4172 ifsr_info[nr].name = name;
4173 }
4174
4175 +asmlinkage int sys_sigreturn(struct pt_regs *regs);
4176 +asmlinkage int sys_rt_sigreturn(struct pt_regs *regs);
4177 +
4178 asmlinkage void __exception
4179 do_PrefetchAbort(unsigned long addr, unsigned int ifsr, struct pt_regs *regs)
4180 {
4181 const struct fsr_info *inf = ifsr_info + fsr_fs(ifsr);
4182 struct siginfo info;
4183 + unsigned long pc = instruction_pointer(regs);
4184 +
4185 + if (user_mode(regs)) {
4186 + unsigned long sigpage = current->mm->context.sigpage;
4187 +
4188 + if (sigpage <= pc && pc < sigpage + 7*4) {
4189 + if (pc < sigpage + 3*4)
4190 + sys_sigreturn(regs);
4191 + else
4192 + sys_rt_sigreturn(regs);
4193 + return;
4194 + }
4195 + if (pc == 0xffff0f60UL) {
4196 + /*
4197 + * PaX: __kuser_cmpxchg64 emulation
4198 + */
4199 + // TODO
4200 + //regs->ARM_pc = regs->ARM_lr;
4201 + //return;
4202 + }
4203 + if (pc == 0xffff0fa0UL) {
4204 + /*
4205 + * PaX: __kuser_memory_barrier emulation
4206 + */
4207 + // dmb(); implied by the exception
4208 + regs->ARM_pc = regs->ARM_lr;
4209 + return;
4210 + }
4211 + if (pc == 0xffff0fc0UL) {
4212 + /*
4213 + * PaX: __kuser_cmpxchg emulation
4214 + */
4215 + // TODO
4216 + //long new;
4217 + //int op;
4218 +
4219 + //op = FUTEX_OP_SET << 28;
4220 + //new = futex_atomic_op_inuser(op, regs->ARM_r2);
4221 + //regs->ARM_r0 = old != new;
4222 + //regs->ARM_pc = regs->ARM_lr;
4223 + //return;
4224 + }
4225 + if (pc == 0xffff0fe0UL) {
4226 + /*
4227 + * PaX: __kuser_get_tls emulation
4228 + */
4229 + regs->ARM_r0 = current_thread_info()->tp_value[0];
4230 + regs->ARM_pc = regs->ARM_lr;
4231 + return;
4232 + }
4233 + }
4234 +
4235 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
4236 + else if (is_domain_fault(ifsr) || is_xn_fault(ifsr)) {
4237 + if (current->signal->curr_ip)
4238 + 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),
4239 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()),
4240 + pc >= TASK_SIZE ? "non-executable kernel" : "userland", pc);
4241 + else
4242 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to execute %s memory at %08lx\n", current->comm, task_pid_nr(current),
4243 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()),
4244 + pc >= TASK_SIZE ? "non-executable kernel" : "userland", pc);
4245 + goto die;
4246 + }
4247 +#endif
4248 +
4249 +#ifdef CONFIG_PAX_REFCOUNT
4250 + if (fsr_fs(ifsr) == FAULT_CODE_DEBUG) {
4251 +#ifdef CONFIG_THUMB2_KERNEL
4252 + unsigned short bkpt;
4253 +
4254 + if (!probe_kernel_address(pc, bkpt) && cpu_to_le16(bkpt) == 0xbef1) {
4255 +#else
4256 + unsigned int bkpt;
4257 +
4258 + if (!probe_kernel_address(pc, bkpt) && cpu_to_le32(bkpt) == 0xe12f1073) {
4259 +#endif
4260 + current->thread.error_code = ifsr;
4261 + current->thread.trap_no = 0;
4262 + pax_report_refcount_overflow(regs);
4263 + fixup_exception(regs);
4264 + return;
4265 + }
4266 + }
4267 +#endif
4268
4269 if (!inf->fn(addr, ifsr | FSR_LNX_PF, regs))
4270 return;
4271
4272 +die:
4273 pr_alert("Unhandled prefetch abort: %s (0x%03x) at 0x%08lx\n",
4274 inf->name, ifsr, addr);
4275
4276 diff --git a/arch/arm/mm/fault.h b/arch/arm/mm/fault.h
4277 index cf08bdf..772656c 100644
4278 --- a/arch/arm/mm/fault.h
4279 +++ b/arch/arm/mm/fault.h
4280 @@ -3,6 +3,7 @@
4281
4282 /*
4283 * Fault status register encodings. We steal bit 31 for our own purposes.
4284 + * Set when the FSR value is from an instruction fault.
4285 */
4286 #define FSR_LNX_PF (1 << 31)
4287 #define FSR_WRITE (1 << 11)
4288 @@ -22,6 +23,17 @@ static inline int fsr_fs(unsigned int fsr)
4289 }
4290 #endif
4291
4292 +/* valid for LPAE and !LPAE */
4293 +static inline int is_xn_fault(unsigned int fsr)
4294 +{
4295 + return ((fsr_fs(fsr) & 0x3c) == 0xc);
4296 +}
4297 +
4298 +static inline int is_domain_fault(unsigned int fsr)
4299 +{
4300 + return ((fsr_fs(fsr) & 0xD) == 0x9);
4301 +}
4302 +
4303 void do_bad_area(unsigned long addr, unsigned int fsr, struct pt_regs *regs);
4304 unsigned long search_exception_table(unsigned long addr);
4305
4306 diff --git a/arch/arm/mm/init.c b/arch/arm/mm/init.c
4307 index 8a63b4c..6b04370 100644
4308 --- a/arch/arm/mm/init.c
4309 +++ b/arch/arm/mm/init.c
4310 @@ -710,7 +710,46 @@ void free_tcmmem(void)
4311 {
4312 #ifdef CONFIG_HAVE_TCM
4313 extern char __tcm_start, __tcm_end;
4314 +#endif
4315
4316 +#ifdef CONFIG_PAX_KERNEXEC
4317 + unsigned long addr;
4318 + pgd_t *pgd;
4319 + pud_t *pud;
4320 + pmd_t *pmd;
4321 + int cpu_arch = cpu_architecture();
4322 + unsigned int cr = get_cr();
4323 +
4324 + if (cpu_arch >= CPU_ARCH_ARMv6 && (cr & CR_XP)) {
4325 + /* make pages tables, etc before .text NX */
4326 + for (addr = PAGE_OFFSET; addr < (unsigned long)_stext; addr += SECTION_SIZE) {
4327 + pgd = pgd_offset_k(addr);
4328 + pud = pud_offset(pgd, addr);
4329 + pmd = pmd_offset(pud, addr);
4330 + __section_update(pmd, addr, PMD_SECT_XN);
4331 + }
4332 + /* make init NX */
4333 + for (addr = (unsigned long)__init_begin; addr < (unsigned long)_sdata; addr += SECTION_SIZE) {
4334 + pgd = pgd_offset_k(addr);
4335 + pud = pud_offset(pgd, addr);
4336 + pmd = pmd_offset(pud, addr);
4337 + __section_update(pmd, addr, PMD_SECT_XN);
4338 + }
4339 + /* make kernel code/rodata RX */
4340 + for (addr = (unsigned long)_stext; addr < (unsigned long)__init_begin; addr += SECTION_SIZE) {
4341 + pgd = pgd_offset_k(addr);
4342 + pud = pud_offset(pgd, addr);
4343 + pmd = pmd_offset(pud, addr);
4344 +#ifdef CONFIG_ARM_LPAE
4345 + __section_update(pmd, addr, PMD_SECT_RDONLY);
4346 +#else
4347 + __section_update(pmd, addr, PMD_SECT_APX|PMD_SECT_AP_WRITE);
4348 +#endif
4349 + }
4350 + }
4351 +#endif
4352 +
4353 +#ifdef CONFIG_HAVE_TCM
4354 poison_init_mem(&__tcm_start, &__tcm_end - &__tcm_start);
4355 free_reserved_area(&__tcm_start, &__tcm_end, -1, "TCM link");
4356 #endif
4357 diff --git a/arch/arm/mm/ioremap.c b/arch/arm/mm/ioremap.c
4358 index 0c81056..97279f7 100644
4359 --- a/arch/arm/mm/ioremap.c
4360 +++ b/arch/arm/mm/ioremap.c
4361 @@ -405,9 +405,9 @@ __arm_ioremap_exec(phys_addr_t phys_addr, size_t size, bool cached)
4362 unsigned int mtype;
4363
4364 if (cached)
4365 - mtype = MT_MEMORY_RWX;
4366 + mtype = MT_MEMORY_RX;
4367 else
4368 - mtype = MT_MEMORY_RWX_NONCACHED;
4369 + mtype = MT_MEMORY_RX_NONCACHED;
4370
4371 return __arm_ioremap_caller(phys_addr, size, mtype,
4372 __builtin_return_address(0));
4373 diff --git a/arch/arm/mm/mmap.c b/arch/arm/mm/mmap.c
4374 index 407dc78..047ce9d 100644
4375 --- a/arch/arm/mm/mmap.c
4376 +++ b/arch/arm/mm/mmap.c
4377 @@ -59,6 +59,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4378 struct vm_area_struct *vma;
4379 int do_align = 0;
4380 int aliasing = cache_is_vipt_aliasing();
4381 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
4382 struct vm_unmapped_area_info info;
4383
4384 /*
4385 @@ -81,6 +82,10 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4386 if (len > TASK_SIZE)
4387 return -ENOMEM;
4388
4389 +#ifdef CONFIG_PAX_RANDMMAP
4390 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4391 +#endif
4392 +
4393 if (addr) {
4394 if (do_align)
4395 addr = COLOUR_ALIGN(addr, pgoff);
4396 @@ -88,8 +93,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4397 addr = PAGE_ALIGN(addr);
4398
4399 vma = find_vma(mm, addr);
4400 - if (TASK_SIZE - len >= addr &&
4401 - (!vma || addr + len <= vma->vm_start))
4402 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
4403 return addr;
4404 }
4405
4406 @@ -99,6 +103,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
4407 info.high_limit = TASK_SIZE;
4408 info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
4409 info.align_offset = pgoff << PAGE_SHIFT;
4410 + info.threadstack_offset = offset;
4411 return vm_unmapped_area(&info);
4412 }
4413
4414 @@ -112,6 +117,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4415 unsigned long addr = addr0;
4416 int do_align = 0;
4417 int aliasing = cache_is_vipt_aliasing();
4418 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
4419 struct vm_unmapped_area_info info;
4420
4421 /*
4422 @@ -132,6 +138,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4423 return addr;
4424 }
4425
4426 +#ifdef CONFIG_PAX_RANDMMAP
4427 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4428 +#endif
4429 +
4430 /* requesting a specific address */
4431 if (addr) {
4432 if (do_align)
4433 @@ -139,8 +149,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4434 else
4435 addr = PAGE_ALIGN(addr);
4436 vma = find_vma(mm, addr);
4437 - if (TASK_SIZE - len >= addr &&
4438 - (!vma || addr + len <= vma->vm_start))
4439 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
4440 return addr;
4441 }
4442
4443 @@ -150,6 +159,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
4444 info.high_limit = mm->mmap_base;
4445 info.align_mask = do_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
4446 info.align_offset = pgoff << PAGE_SHIFT;
4447 + info.threadstack_offset = offset;
4448 addr = vm_unmapped_area(&info);
4449
4450 /*
4451 @@ -183,14 +193,30 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
4452 {
4453 unsigned long random_factor = 0UL;
4454
4455 +#ifdef CONFIG_PAX_RANDMMAP
4456 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
4457 +#endif
4458 +
4459 if (current->flags & PF_RANDOMIZE)
4460 random_factor = arch_mmap_rnd();
4461
4462 if (mmap_is_legacy()) {
4463 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
4464 +
4465 +#ifdef CONFIG_PAX_RANDMMAP
4466 + if (mm->pax_flags & MF_PAX_RANDMMAP)
4467 + mm->mmap_base += mm->delta_mmap;
4468 +#endif
4469 +
4470 mm->get_unmapped_area = arch_get_unmapped_area;
4471 } else {
4472 mm->mmap_base = mmap_base(random_factor);
4473 +
4474 +#ifdef CONFIG_PAX_RANDMMAP
4475 + if (mm->pax_flags & MF_PAX_RANDMMAP)
4476 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
4477 +#endif
4478 +
4479 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
4480 }
4481 }
4482 diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
4483 index 870838a..070df1d 100644
4484 --- a/arch/arm/mm/mmu.c
4485 +++ b/arch/arm/mm/mmu.c
4486 @@ -41,6 +41,22 @@
4487 #include "mm.h"
4488 #include "tcm.h"
4489
4490 +#if defined(CONFIG_CPU_USE_DOMAINS) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
4491 +void modify_domain(unsigned int dom, unsigned int type)
4492 +{
4493 + struct thread_info *thread = current_thread_info();
4494 + unsigned int domain = thread->cpu_domain;
4495 + /*
4496 + * DOMAIN_MANAGER might be defined to some other value,
4497 + * use the arch-defined constant
4498 + */
4499 + domain &= ~domain_val(dom, 3);
4500 + thread->cpu_domain = domain | domain_val(dom, type);
4501 + set_domain(thread->cpu_domain);
4502 +}
4503 +EXPORT_SYMBOL(modify_domain);
4504 +#endif
4505 +
4506 /*
4507 * empty_zero_page is a special page that is used for
4508 * zero-initialized data and COW.
4509 @@ -242,7 +258,15 @@ __setup("noalign", noalign_setup);
4510 #define PROT_PTE_S2_DEVICE PROT_PTE_DEVICE
4511 #define PROT_SECT_DEVICE PMD_TYPE_SECT|PMD_SECT_AP_WRITE
4512
4513 -static struct mem_type mem_types[] = {
4514 +#ifdef CONFIG_PAX_KERNEXEC
4515 +#define L_PTE_KERNEXEC L_PTE_RDONLY
4516 +#define PMD_SECT_KERNEXEC PMD_SECT_RDONLY
4517 +#else
4518 +#define L_PTE_KERNEXEC L_PTE_DIRTY
4519 +#define PMD_SECT_KERNEXEC PMD_SECT_AP_WRITE
4520 +#endif
4521 +
4522 +static struct mem_type mem_types[] __read_only = {
4523 [MT_DEVICE] = { /* Strongly ordered / ARMv6 shared device */
4524 .prot_pte = PROT_PTE_DEVICE | L_PTE_MT_DEV_SHARED |
4525 L_PTE_SHARED,
4526 @@ -271,19 +295,19 @@ static struct mem_type mem_types[] = {
4527 .prot_sect = PROT_SECT_DEVICE,
4528 .domain = DOMAIN_IO,
4529 },
4530 - [MT_UNCACHED] = {
4531 + [MT_UNCACHED_RW] = {
4532 .prot_pte = PROT_PTE_DEVICE,
4533 .prot_l1 = PMD_TYPE_TABLE,
4534 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4535 .domain = DOMAIN_IO,
4536 },
4537 - [MT_CACHECLEAN] = {
4538 - .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4539 + [MT_CACHECLEAN_RO] = {
4540 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN | PMD_SECT_RDONLY,
4541 .domain = DOMAIN_KERNEL,
4542 },
4543 #ifndef CONFIG_ARM_LPAE
4544 - [MT_MINICLEAN] = {
4545 - .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN | PMD_SECT_MINICACHE,
4546 + [MT_MINICLEAN_RO] = {
4547 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_MINICACHE | PMD_SECT_XN | PMD_SECT_RDONLY,
4548 .domain = DOMAIN_KERNEL,
4549 },
4550 #endif
4551 @@ -291,15 +315,15 @@ static struct mem_type mem_types[] = {
4552 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4553 L_PTE_RDONLY,
4554 .prot_l1 = PMD_TYPE_TABLE,
4555 - .domain = DOMAIN_USER,
4556 + .domain = DOMAIN_VECTORS,
4557 },
4558 [MT_HIGH_VECTORS] = {
4559 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4560 L_PTE_USER | L_PTE_RDONLY,
4561 .prot_l1 = PMD_TYPE_TABLE,
4562 - .domain = DOMAIN_USER,
4563 + .domain = DOMAIN_VECTORS,
4564 },
4565 - [MT_MEMORY_RWX] = {
4566 + [__MT_MEMORY_RWX] = {
4567 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY,
4568 .prot_l1 = PMD_TYPE_TABLE,
4569 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4570 @@ -312,17 +336,30 @@ static struct mem_type mem_types[] = {
4571 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4572 .domain = DOMAIN_KERNEL,
4573 },
4574 - [MT_ROM] = {
4575 - .prot_sect = PMD_TYPE_SECT,
4576 + [MT_MEMORY_RX] = {
4577 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC,
4578 + .prot_l1 = PMD_TYPE_TABLE,
4579 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4580 + .domain = DOMAIN_KERNEL,
4581 + },
4582 + [MT_ROM_RX] = {
4583 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_RDONLY,
4584 .domain = DOMAIN_KERNEL,
4585 },
4586 - [MT_MEMORY_RWX_NONCACHED] = {
4587 + [MT_MEMORY_RW_NONCACHED] = {
4588 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4589 L_PTE_MT_BUFFERABLE,
4590 .prot_l1 = PMD_TYPE_TABLE,
4591 .prot_sect = PMD_TYPE_SECT | PMD_SECT_AP_WRITE,
4592 .domain = DOMAIN_KERNEL,
4593 },
4594 + [MT_MEMORY_RX_NONCACHED] = {
4595 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC |
4596 + L_PTE_MT_BUFFERABLE,
4597 + .prot_l1 = PMD_TYPE_TABLE,
4598 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4599 + .domain = DOMAIN_KERNEL,
4600 + },
4601 [MT_MEMORY_RW_DTCM] = {
4602 .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY |
4603 L_PTE_XN,
4604 @@ -330,9 +367,10 @@ static struct mem_type mem_types[] = {
4605 .prot_sect = PMD_TYPE_SECT | PMD_SECT_XN,
4606 .domain = DOMAIN_KERNEL,
4607 },
4608 - [MT_MEMORY_RWX_ITCM] = {
4609 - .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_DIRTY,
4610 + [MT_MEMORY_RX_ITCM] = {
4611 + .prot_pte = L_PTE_PRESENT | L_PTE_YOUNG | L_PTE_KERNEXEC,
4612 .prot_l1 = PMD_TYPE_TABLE,
4613 + .prot_sect = PMD_TYPE_SECT | PMD_SECT_KERNEXEC,
4614 .domain = DOMAIN_KERNEL,
4615 },
4616 [MT_MEMORY_RW_SO] = {
4617 @@ -544,9 +582,14 @@ static void __init build_mem_type_table(void)
4618 * Mark cache clean areas and XIP ROM read only
4619 * from SVC mode and no access from userspace.
4620 */
4621 - mem_types[MT_ROM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4622 - mem_types[MT_MINICLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4623 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4624 + mem_types[MT_ROM_RX].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4625 +#ifdef CONFIG_PAX_KERNEXEC
4626 + mem_types[MT_MEMORY_RX].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4627 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4628 + mem_types[MT_MEMORY_RX_ITCM].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4629 +#endif
4630 + mem_types[MT_MINICLEAN_RO].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4631 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_APX|PMD_SECT_AP_WRITE;
4632 #endif
4633
4634 /*
4635 @@ -563,13 +606,17 @@ static void __init build_mem_type_table(void)
4636 mem_types[MT_DEVICE_WC].prot_pte |= L_PTE_SHARED;
4637 mem_types[MT_DEVICE_CACHED].prot_sect |= PMD_SECT_S;
4638 mem_types[MT_DEVICE_CACHED].prot_pte |= L_PTE_SHARED;
4639 - mem_types[MT_MEMORY_RWX].prot_sect |= PMD_SECT_S;
4640 - mem_types[MT_MEMORY_RWX].prot_pte |= L_PTE_SHARED;
4641 + mem_types[__MT_MEMORY_RWX].prot_sect |= PMD_SECT_S;
4642 + mem_types[__MT_MEMORY_RWX].prot_pte |= L_PTE_SHARED;
4643 mem_types[MT_MEMORY_RW].prot_sect |= PMD_SECT_S;
4644 mem_types[MT_MEMORY_RW].prot_pte |= L_PTE_SHARED;
4645 + mem_types[MT_MEMORY_RX].prot_sect |= PMD_SECT_S;
4646 + mem_types[MT_MEMORY_RX].prot_pte |= L_PTE_SHARED;
4647 mem_types[MT_MEMORY_DMA_READY].prot_pte |= L_PTE_SHARED;
4648 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= PMD_SECT_S;
4649 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_pte |= L_PTE_SHARED;
4650 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= PMD_SECT_S;
4651 + mem_types[MT_MEMORY_RW_NONCACHED].prot_pte |= L_PTE_SHARED;
4652 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_S;
4653 + mem_types[MT_MEMORY_RX_NONCACHED].prot_pte |= L_PTE_SHARED;
4654 }
4655 }
4656
4657 @@ -580,15 +627,20 @@ static void __init build_mem_type_table(void)
4658 if (cpu_arch >= CPU_ARCH_ARMv6) {
4659 if (cpu_arch >= CPU_ARCH_ARMv7 && (cr & CR_TRE)) {
4660 /* Non-cacheable Normal is XCB = 001 */
4661 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |=
4662 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |=
4663 + PMD_SECT_BUFFERED;
4664 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |=
4665 PMD_SECT_BUFFERED;
4666 } else {
4667 /* For both ARMv6 and non-TEX-remapping ARMv7 */
4668 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |=
4669 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |=
4670 + PMD_SECT_TEX(1);
4671 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |=
4672 PMD_SECT_TEX(1);
4673 }
4674 } else {
4675 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4676 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4677 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= PMD_SECT_BUFFERABLE;
4678 }
4679
4680 #ifdef CONFIG_ARM_LPAE
4681 @@ -609,6 +661,8 @@ static void __init build_mem_type_table(void)
4682 user_pgprot |= PTE_EXT_PXN;
4683 #endif
4684
4685 + user_pgprot |= __supported_pte_mask;
4686 +
4687 for (i = 0; i < 16; i++) {
4688 pteval_t v = pgprot_val(protection_map[i]);
4689 protection_map[i] = __pgprot(v | user_pgprot);
4690 @@ -626,21 +680,24 @@ static void __init build_mem_type_table(void)
4691
4692 mem_types[MT_LOW_VECTORS].prot_l1 |= ecc_mask;
4693 mem_types[MT_HIGH_VECTORS].prot_l1 |= ecc_mask;
4694 - mem_types[MT_MEMORY_RWX].prot_sect |= ecc_mask | cp->pmd;
4695 - mem_types[MT_MEMORY_RWX].prot_pte |= kern_pgprot;
4696 + mem_types[__MT_MEMORY_RWX].prot_sect |= ecc_mask | cp->pmd;
4697 + mem_types[__MT_MEMORY_RWX].prot_pte |= kern_pgprot;
4698 mem_types[MT_MEMORY_RW].prot_sect |= ecc_mask | cp->pmd;
4699 mem_types[MT_MEMORY_RW].prot_pte |= kern_pgprot;
4700 + mem_types[MT_MEMORY_RX].prot_sect |= ecc_mask | cp->pmd;
4701 + mem_types[MT_MEMORY_RX].prot_pte |= kern_pgprot;
4702 mem_types[MT_MEMORY_DMA_READY].prot_pte |= kern_pgprot;
4703 - mem_types[MT_MEMORY_RWX_NONCACHED].prot_sect |= ecc_mask;
4704 - mem_types[MT_ROM].prot_sect |= cp->pmd;
4705 + mem_types[MT_MEMORY_RW_NONCACHED].prot_sect |= ecc_mask;
4706 + mem_types[MT_MEMORY_RX_NONCACHED].prot_sect |= ecc_mask;
4707 + mem_types[MT_ROM_RX].prot_sect |= cp->pmd;
4708
4709 switch (cp->pmd) {
4710 case PMD_SECT_WT:
4711 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_WT;
4712 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_WT;
4713 break;
4714 case PMD_SECT_WB:
4715 case PMD_SECT_WBWA:
4716 - mem_types[MT_CACHECLEAN].prot_sect |= PMD_SECT_WB;
4717 + mem_types[MT_CACHECLEAN_RO].prot_sect |= PMD_SECT_WB;
4718 break;
4719 }
4720 pr_info("Memory policy: %sData cache %s\n",
4721 @@ -854,7 +911,7 @@ static void __init create_mapping(struct map_desc *md)
4722 return;
4723 }
4724
4725 - if ((md->type == MT_DEVICE || md->type == MT_ROM) &&
4726 + if ((md->type == MT_DEVICE || md->type == MT_ROM_RX) &&
4727 md->virtual >= PAGE_OFFSET &&
4728 (md->virtual < VMALLOC_START || md->virtual >= VMALLOC_END)) {
4729 pr_warn("BUG: mapping for 0x%08llx at 0x%08lx out of vmalloc space\n",
4730 @@ -1224,18 +1281,15 @@ void __init arm_mm_memblock_reserve(void)
4731 * called function. This means you can't use any function or debugging
4732 * method which may touch any device, otherwise the kernel _will_ crash.
4733 */
4734 +
4735 +static char vectors[PAGE_SIZE * 2] __read_only __aligned(PAGE_SIZE);
4736 +
4737 static void __init devicemaps_init(const struct machine_desc *mdesc)
4738 {
4739 struct map_desc map;
4740 unsigned long addr;
4741 - void *vectors;
4742
4743 - /*
4744 - * Allocate the vector page early.
4745 - */
4746 - vectors = early_alloc(PAGE_SIZE * 2);
4747 -
4748 - early_trap_init(vectors);
4749 + early_trap_init(&vectors);
4750
4751 for (addr = VMALLOC_START; addr; addr += PMD_SIZE)
4752 pmd_clear(pmd_off_k(addr));
4753 @@ -1248,7 +1302,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4754 map.pfn = __phys_to_pfn(CONFIG_XIP_PHYS_ADDR & SECTION_MASK);
4755 map.virtual = MODULES_VADDR;
4756 map.length = ((unsigned long)_etext - map.virtual + ~SECTION_MASK) & SECTION_MASK;
4757 - map.type = MT_ROM;
4758 + map.type = MT_ROM_RX;
4759 create_mapping(&map);
4760 #endif
4761
4762 @@ -1259,14 +1313,14 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4763 map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS);
4764 map.virtual = FLUSH_BASE;
4765 map.length = SZ_1M;
4766 - map.type = MT_CACHECLEAN;
4767 + map.type = MT_CACHECLEAN_RO;
4768 create_mapping(&map);
4769 #endif
4770 #ifdef FLUSH_BASE_MINICACHE
4771 map.pfn = __phys_to_pfn(FLUSH_BASE_PHYS + SZ_1M);
4772 map.virtual = FLUSH_BASE_MINICACHE;
4773 map.length = SZ_1M;
4774 - map.type = MT_MINICLEAN;
4775 + map.type = MT_MINICLEAN_RO;
4776 create_mapping(&map);
4777 #endif
4778
4779 @@ -1275,7 +1329,7 @@ static void __init devicemaps_init(const struct machine_desc *mdesc)
4780 * location (0xffff0000). If we aren't using high-vectors, also
4781 * create a mapping at the low-vectors virtual address.
4782 */
4783 - map.pfn = __phys_to_pfn(virt_to_phys(vectors));
4784 + map.pfn = __phys_to_pfn(virt_to_phys(&vectors));
4785 map.virtual = 0xffff0000;
4786 map.length = PAGE_SIZE;
4787 #ifdef CONFIG_KUSER_HELPERS
4788 @@ -1335,8 +1389,10 @@ static void __init kmap_init(void)
4789 static void __init map_lowmem(void)
4790 {
4791 struct memblock_region *reg;
4792 +#ifndef CONFIG_PAX_KERNEXEC
4793 phys_addr_t kernel_x_start = round_down(__pa(_stext), SECTION_SIZE);
4794 phys_addr_t kernel_x_end = round_up(__pa(__init_end), SECTION_SIZE);
4795 +#endif
4796
4797 /* Map all the lowmem memory banks. */
4798 for_each_memblock(memory, reg) {
4799 @@ -1349,11 +1405,48 @@ static void __init map_lowmem(void)
4800 if (start >= end)
4801 break;
4802
4803 +#ifdef CONFIG_PAX_KERNEXEC
4804 + map.pfn = __phys_to_pfn(start);
4805 + map.virtual = __phys_to_virt(start);
4806 + map.length = end - start;
4807 +
4808 + if (map.virtual <= (unsigned long)_stext && ((unsigned long)_end < (map.virtual + map.length))) {
4809 + struct map_desc kernel;
4810 + struct map_desc initmap;
4811 +
4812 + /* when freeing initmem we will make this RW */
4813 + initmap.pfn = __phys_to_pfn(__pa(__init_begin));
4814 + initmap.virtual = (unsigned long)__init_begin;
4815 + initmap.length = _sdata - __init_begin;
4816 + initmap.type = __MT_MEMORY_RWX;
4817 + create_mapping(&initmap);
4818 +
4819 + /* when freeing initmem we will make this RX */
4820 + kernel.pfn = __phys_to_pfn(__pa(_stext));
4821 + kernel.virtual = (unsigned long)_stext;
4822 + kernel.length = __init_begin - _stext;
4823 + kernel.type = __MT_MEMORY_RWX;
4824 + create_mapping(&kernel);
4825 +
4826 + if (map.virtual < (unsigned long)_stext) {
4827 + map.length = (unsigned long)_stext - map.virtual;
4828 + map.type = __MT_MEMORY_RWX;
4829 + create_mapping(&map);
4830 + }
4831 +
4832 + map.pfn = __phys_to_pfn(__pa(_sdata));
4833 + map.virtual = (unsigned long)_sdata;
4834 + map.length = end - __pa(_sdata);
4835 + }
4836 +
4837 + map.type = MT_MEMORY_RW;
4838 + create_mapping(&map);
4839 +#else
4840 if (end < kernel_x_start) {
4841 map.pfn = __phys_to_pfn(start);
4842 map.virtual = __phys_to_virt(start);
4843 map.length = end - start;
4844 - map.type = MT_MEMORY_RWX;
4845 + map.type = __MT_MEMORY_RWX;
4846
4847 create_mapping(&map);
4848 } else if (start >= kernel_x_end) {
4849 @@ -1377,7 +1470,7 @@ static void __init map_lowmem(void)
4850 map.pfn = __phys_to_pfn(kernel_x_start);
4851 map.virtual = __phys_to_virt(kernel_x_start);
4852 map.length = kernel_x_end - kernel_x_start;
4853 - map.type = MT_MEMORY_RWX;
4854 + map.type = __MT_MEMORY_RWX;
4855
4856 create_mapping(&map);
4857
4858 @@ -1390,6 +1483,7 @@ static void __init map_lowmem(void)
4859 create_mapping(&map);
4860 }
4861 }
4862 +#endif
4863 }
4864 }
4865
4866 diff --git a/arch/arm/net/bpf_jit_32.c b/arch/arm/net/bpf_jit_32.c
4867 index c011e22..92a0260 100644
4868 --- a/arch/arm/net/bpf_jit_32.c
4869 +++ b/arch/arm/net/bpf_jit_32.c
4870 @@ -20,6 +20,7 @@
4871 #include <asm/cacheflush.h>
4872 #include <asm/hwcap.h>
4873 #include <asm/opcodes.h>
4874 +#include <asm/pgtable.h>
4875
4876 #include "bpf_jit_32.h"
4877
4878 @@ -72,54 +73,38 @@ struct jit_ctx {
4879 #endif
4880 };
4881
4882 +#ifdef CONFIG_GRKERNSEC_BPF_HARDEN
4883 +int bpf_jit_enable __read_only;
4884 +#else
4885 int bpf_jit_enable __read_mostly;
4886 +#endif
4887
4888 -static inline int call_neg_helper(struct sk_buff *skb, int offset, void *ret,
4889 - unsigned int size)
4890 -{
4891 - void *ptr = bpf_internal_load_pointer_neg_helper(skb, offset, size);
4892 -
4893 - if (!ptr)
4894 - return -EFAULT;
4895 - memcpy(ret, ptr, size);
4896 - return 0;
4897 -}
4898 -
4899 -static u64 jit_get_skb_b(struct sk_buff *skb, int offset)
4900 +static u64 jit_get_skb_b(struct sk_buff *skb, unsigned offset)
4901 {
4902 u8 ret;
4903 int err;
4904
4905 - if (offset < 0)
4906 - err = call_neg_helper(skb, offset, &ret, 1);
4907 - else
4908 - err = skb_copy_bits(skb, offset, &ret, 1);
4909 + err = skb_copy_bits(skb, offset, &ret, 1);
4910
4911 return (u64)err << 32 | ret;
4912 }
4913
4914 -static u64 jit_get_skb_h(struct sk_buff *skb, int offset)
4915 +static u64 jit_get_skb_h(struct sk_buff *skb, unsigned offset)
4916 {
4917 u16 ret;
4918 int err;
4919
4920 - if (offset < 0)
4921 - err = call_neg_helper(skb, offset, &ret, 2);
4922 - else
4923 - err = skb_copy_bits(skb, offset, &ret, 2);
4924 + err = skb_copy_bits(skb, offset, &ret, 2);
4925
4926 return (u64)err << 32 | ntohs(ret);
4927 }
4928
4929 -static u64 jit_get_skb_w(struct sk_buff *skb, int offset)
4930 +static u64 jit_get_skb_w(struct sk_buff *skb, unsigned offset)
4931 {
4932 u32 ret;
4933 int err;
4934
4935 - if (offset < 0)
4936 - err = call_neg_helper(skb, offset, &ret, 4);
4937 - else
4938 - err = skb_copy_bits(skb, offset, &ret, 4);
4939 + err = skb_copy_bits(skb, offset, &ret, 4);
4940
4941 return (u64)err << 32 | ntohl(ret);
4942 }
4943 @@ -199,8 +184,10 @@ static void jit_fill_hole(void *area, unsigned int size)
4944 {
4945 u32 *ptr;
4946 /* We are guaranteed to have aligned memory. */
4947 + pax_open_kernel();
4948 for (ptr = area; size >= sizeof(u32); size -= sizeof(u32))
4949 *ptr++ = __opcode_to_mem_arm(ARM_INST_UDF);
4950 + pax_close_kernel();
4951 }
4952
4953 static void build_prologue(struct jit_ctx *ctx)
4954 @@ -556,6 +543,9 @@ static int build_body(struct jit_ctx *ctx)
4955 case BPF_LD | BPF_B | BPF_ABS:
4956 load_order = 0;
4957 load:
4958 + /* the interpreter will deal with the negative K */
4959 + if ((int)k < 0)
4960 + return -ENOTSUPP;
4961 emit_mov_i(r_off, k, ctx);
4962 load_common:
4963 ctx->seen |= SEEN_DATA | SEEN_CALL;
4964 @@ -570,18 +560,6 @@ load_common:
4965 condt = ARM_COND_HI;
4966 }
4967
4968 - /*
4969 - * test for negative offset, only if we are
4970 - * currently scheduled to take the fast
4971 - * path. this will update the flags so that
4972 - * the slowpath instruction are ignored if the
4973 - * offset is negative.
4974 - *
4975 - * for loard_order == 0 the HI condition will
4976 - * make loads at offset 0 take the slow path too.
4977 - */
4978 - _emit(condt, ARM_CMP_I(r_off, 0), ctx);
4979 -
4980 _emit(condt, ARM_ADD_R(r_scratch, r_off, r_skb_data),
4981 ctx);
4982
4983 diff --git a/arch/arm/plat-iop/setup.c b/arch/arm/plat-iop/setup.c
4984 index 5b217f4..c23f40e 100644
4985 --- a/arch/arm/plat-iop/setup.c
4986 +++ b/arch/arm/plat-iop/setup.c
4987 @@ -24,7 +24,7 @@ static struct map_desc iop3xx_std_desc[] __initdata = {
4988 .virtual = IOP3XX_PERIPHERAL_VIRT_BASE,
4989 .pfn = __phys_to_pfn(IOP3XX_PERIPHERAL_PHYS_BASE),
4990 .length = IOP3XX_PERIPHERAL_SIZE,
4991 - .type = MT_UNCACHED,
4992 + .type = MT_UNCACHED_RW,
4993 },
4994 };
4995
4996 diff --git a/arch/arm/plat-omap/sram.c b/arch/arm/plat-omap/sram.c
4997 index a5bc92d..0bb4730 100644
4998 --- a/arch/arm/plat-omap/sram.c
4999 +++ b/arch/arm/plat-omap/sram.c
5000 @@ -93,6 +93,8 @@ void __init omap_map_sram(unsigned long start, unsigned long size,
5001 * Looks like we need to preserve some bootloader code at the
5002 * beginning of SRAM for jumping to flash for reboot to work...
5003 */
5004 + pax_open_kernel();
5005 memset_io(omap_sram_base + omap_sram_skip, 0,
5006 omap_sram_size - omap_sram_skip);
5007 + pax_close_kernel();
5008 }
5009 diff --git a/arch/arm64/Kconfig.debug b/arch/arm64/Kconfig.debug
5010 index d6285ef..b684dac 100644
5011 --- a/arch/arm64/Kconfig.debug
5012 +++ b/arch/arm64/Kconfig.debug
5013 @@ -10,6 +10,7 @@ config ARM64_PTDUMP
5014 bool "Export kernel pagetable layout to userspace via debugfs"
5015 depends on DEBUG_KERNEL
5016 select DEBUG_FS
5017 + depends on !GRKERNSEC_KMEM
5018 help
5019 Say Y here if you want to show the kernel pagetable layout in a
5020 debugfs file. This information is only useful for kernel developers
5021 diff --git a/arch/arm64/include/asm/atomic.h b/arch/arm64/include/asm/atomic.h
5022 index 7047051..44e8675 100644
5023 --- a/arch/arm64/include/asm/atomic.h
5024 +++ b/arch/arm64/include/asm/atomic.h
5025 @@ -252,5 +252,15 @@ static inline int atomic64_add_unless(atomic64_t *v, long a, long u)
5026 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
5027 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
5028
5029 +#define atomic64_read_unchecked(v) atomic64_read(v)
5030 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
5031 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
5032 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
5033 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
5034 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
5035 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
5036 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
5037 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
5038 +
5039 #endif
5040 #endif
5041 diff --git a/arch/arm64/include/asm/barrier.h b/arch/arm64/include/asm/barrier.h
5042 index 0fa47c4..b167938 100644
5043 --- a/arch/arm64/include/asm/barrier.h
5044 +++ b/arch/arm64/include/asm/barrier.h
5045 @@ -44,7 +44,7 @@
5046 do { \
5047 compiletime_assert_atomic_type(*p); \
5048 barrier(); \
5049 - ACCESS_ONCE(*p) = (v); \
5050 + ACCESS_ONCE_RW(*p) = (v); \
5051 } while (0)
5052
5053 #define smp_load_acquire(p) \
5054 diff --git a/arch/arm64/include/asm/percpu.h b/arch/arm64/include/asm/percpu.h
5055 index 4fde8c1..441f84f 100644
5056 --- a/arch/arm64/include/asm/percpu.h
5057 +++ b/arch/arm64/include/asm/percpu.h
5058 @@ -135,16 +135,16 @@ static inline void __percpu_write(void *ptr, unsigned long val, int size)
5059 {
5060 switch (size) {
5061 case 1:
5062 - ACCESS_ONCE(*(u8 *)ptr) = (u8)val;
5063 + ACCESS_ONCE_RW(*(u8 *)ptr) = (u8)val;
5064 break;
5065 case 2:
5066 - ACCESS_ONCE(*(u16 *)ptr) = (u16)val;
5067 + ACCESS_ONCE_RW(*(u16 *)ptr) = (u16)val;
5068 break;
5069 case 4:
5070 - ACCESS_ONCE(*(u32 *)ptr) = (u32)val;
5071 + ACCESS_ONCE_RW(*(u32 *)ptr) = (u32)val;
5072 break;
5073 case 8:
5074 - ACCESS_ONCE(*(u64 *)ptr) = (u64)val;
5075 + ACCESS_ONCE_RW(*(u64 *)ptr) = (u64)val;
5076 break;
5077 default:
5078 BUILD_BUG();
5079 diff --git a/arch/arm64/include/asm/pgalloc.h b/arch/arm64/include/asm/pgalloc.h
5080 index 7642056..bffc904 100644
5081 --- a/arch/arm64/include/asm/pgalloc.h
5082 +++ b/arch/arm64/include/asm/pgalloc.h
5083 @@ -46,6 +46,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
5084 set_pud(pud, __pud(__pa(pmd) | PMD_TYPE_TABLE));
5085 }
5086
5087 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
5088 +{
5089 + pud_populate(mm, pud, pmd);
5090 +}
5091 +
5092 #endif /* CONFIG_PGTABLE_LEVELS > 2 */
5093
5094 #if CONFIG_PGTABLE_LEVELS > 3
5095 diff --git a/arch/arm64/include/asm/uaccess.h b/arch/arm64/include/asm/uaccess.h
5096 index 07e1ba44..ec8cbbb 100644
5097 --- a/arch/arm64/include/asm/uaccess.h
5098 +++ b/arch/arm64/include/asm/uaccess.h
5099 @@ -99,6 +99,7 @@ static inline void set_fs(mm_segment_t fs)
5100 flag; \
5101 })
5102
5103 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
5104 #define access_ok(type, addr, size) __range_ok(addr, size)
5105 #define user_addr_max get_fs
5106
5107 diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
5108 index d16a1ce..a5acc60 100644
5109 --- a/arch/arm64/mm/dma-mapping.c
5110 +++ b/arch/arm64/mm/dma-mapping.c
5111 @@ -134,7 +134,7 @@ static void __dma_free_coherent(struct device *dev, size_t size,
5112 phys_to_page(paddr),
5113 size >> PAGE_SHIFT);
5114 if (!freed)
5115 - swiotlb_free_coherent(dev, size, vaddr, dma_handle);
5116 + swiotlb_free_coherent(dev, size, vaddr, dma_handle, attrs);
5117 }
5118
5119 static void *__dma_alloc(struct device *dev, size_t size,
5120 diff --git a/arch/avr32/include/asm/cache.h b/arch/avr32/include/asm/cache.h
5121 index c3a58a1..78fbf54 100644
5122 --- a/arch/avr32/include/asm/cache.h
5123 +++ b/arch/avr32/include/asm/cache.h
5124 @@ -1,8 +1,10 @@
5125 #ifndef __ASM_AVR32_CACHE_H
5126 #define __ASM_AVR32_CACHE_H
5127
5128 +#include <linux/const.h>
5129 +
5130 #define L1_CACHE_SHIFT 5
5131 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5132 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5133
5134 /*
5135 * Memory returned by kmalloc() may be used for DMA, so we must make
5136 diff --git a/arch/avr32/include/asm/elf.h b/arch/avr32/include/asm/elf.h
5137 index 0388ece..87c8df1 100644
5138 --- a/arch/avr32/include/asm/elf.h
5139 +++ b/arch/avr32/include/asm/elf.h
5140 @@ -84,8 +84,14 @@ typedef struct user_fpu_struct elf_fpregset_t;
5141 the loader. We need to make sure that it is out of the way of the program
5142 that it will "exec", and that there is sufficient room for the brk. */
5143
5144 -#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
5145 +#define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
5146
5147 +#ifdef CONFIG_PAX_ASLR
5148 +#define PAX_ELF_ET_DYN_BASE 0x00001000UL
5149 +
5150 +#define PAX_DELTA_MMAP_LEN 15
5151 +#define PAX_DELTA_STACK_LEN 15
5152 +#endif
5153
5154 /* This yields a mask that user programs can use to figure out what
5155 instruction set this CPU supports. This could be done in user space,
5156 diff --git a/arch/avr32/include/asm/kmap_types.h b/arch/avr32/include/asm/kmap_types.h
5157 index 479330b..53717a8 100644
5158 --- a/arch/avr32/include/asm/kmap_types.h
5159 +++ b/arch/avr32/include/asm/kmap_types.h
5160 @@ -2,9 +2,9 @@
5161 #define __ASM_AVR32_KMAP_TYPES_H
5162
5163 #ifdef CONFIG_DEBUG_HIGHMEM
5164 -# define KM_TYPE_NR 29
5165 +# define KM_TYPE_NR 30
5166 #else
5167 -# define KM_TYPE_NR 14
5168 +# define KM_TYPE_NR 15
5169 #endif
5170
5171 #endif /* __ASM_AVR32_KMAP_TYPES_H */
5172 diff --git a/arch/avr32/mm/fault.c b/arch/avr32/mm/fault.c
5173 index c035339..e1fa594 100644
5174 --- a/arch/avr32/mm/fault.c
5175 +++ b/arch/avr32/mm/fault.c
5176 @@ -41,6 +41,23 @@ static inline int notify_page_fault(struct pt_regs *regs, int trap)
5177
5178 int exception_trace = 1;
5179
5180 +#ifdef CONFIG_PAX_PAGEEXEC
5181 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
5182 +{
5183 + unsigned long i;
5184 +
5185 + printk(KERN_ERR "PAX: bytes at PC: ");
5186 + for (i = 0; i < 20; i++) {
5187 + unsigned char c;
5188 + if (get_user(c, (unsigned char *)pc+i))
5189 + printk(KERN_CONT "???????? ");
5190 + else
5191 + printk(KERN_CONT "%02x ", c);
5192 + }
5193 + printk("\n");
5194 +}
5195 +#endif
5196 +
5197 /*
5198 * This routine handles page faults. It determines the address and the
5199 * problem, and then passes it off to one of the appropriate routines.
5200 @@ -178,6 +195,16 @@ bad_area:
5201 up_read(&mm->mmap_sem);
5202
5203 if (user_mode(regs)) {
5204 +
5205 +#ifdef CONFIG_PAX_PAGEEXEC
5206 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
5207 + if (ecr == ECR_PROTECTION_X || ecr == ECR_TLB_MISS_X) {
5208 + pax_report_fault(regs, (void *)regs->pc, (void *)regs->sp);
5209 + do_group_exit(SIGKILL);
5210 + }
5211 + }
5212 +#endif
5213 +
5214 if (exception_trace && printk_ratelimit())
5215 printk("%s%s[%d]: segfault at %08lx pc %08lx "
5216 "sp %08lx ecr %lu\n",
5217 diff --git a/arch/blackfin/Kconfig.debug b/arch/blackfin/Kconfig.debug
5218 index f3337ee..15b6f8d 100644
5219 --- a/arch/blackfin/Kconfig.debug
5220 +++ b/arch/blackfin/Kconfig.debug
5221 @@ -18,6 +18,7 @@ config DEBUG_VERBOSE
5222 config DEBUG_MMRS
5223 tristate "Generate Blackfin MMR tree"
5224 select DEBUG_FS
5225 + depends on !GRKERNSEC_KMEM
5226 help
5227 Create a tree of Blackfin MMRs via the debugfs tree. If
5228 you enable this, you will find all MMRs laid out in the
5229 diff --git a/arch/blackfin/include/asm/cache.h b/arch/blackfin/include/asm/cache.h
5230 index 568885a..f8008df 100644
5231 --- a/arch/blackfin/include/asm/cache.h
5232 +++ b/arch/blackfin/include/asm/cache.h
5233 @@ -7,6 +7,7 @@
5234 #ifndef __ARCH_BLACKFIN_CACHE_H
5235 #define __ARCH_BLACKFIN_CACHE_H
5236
5237 +#include <linux/const.h>
5238 #include <linux/linkage.h> /* for asmlinkage */
5239
5240 /*
5241 @@ -14,7 +15,7 @@
5242 * Blackfin loads 32 bytes for cache
5243 */
5244 #define L1_CACHE_SHIFT 5
5245 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5246 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5247 #define SMP_CACHE_BYTES L1_CACHE_BYTES
5248
5249 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5250 diff --git a/arch/cris/include/arch-v10/arch/cache.h b/arch/cris/include/arch-v10/arch/cache.h
5251 index aea2718..3639a60 100644
5252 --- a/arch/cris/include/arch-v10/arch/cache.h
5253 +++ b/arch/cris/include/arch-v10/arch/cache.h
5254 @@ -1,8 +1,9 @@
5255 #ifndef _ASM_ARCH_CACHE_H
5256 #define _ASM_ARCH_CACHE_H
5257
5258 +#include <linux/const.h>
5259 /* Etrax 100LX have 32-byte cache-lines. */
5260 -#define L1_CACHE_BYTES 32
5261 #define L1_CACHE_SHIFT 5
5262 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5263
5264 #endif /* _ASM_ARCH_CACHE_H */
5265 diff --git a/arch/cris/include/arch-v32/arch/cache.h b/arch/cris/include/arch-v32/arch/cache.h
5266 index 7caf25d..ee65ac5 100644
5267 --- a/arch/cris/include/arch-v32/arch/cache.h
5268 +++ b/arch/cris/include/arch-v32/arch/cache.h
5269 @@ -1,11 +1,12 @@
5270 #ifndef _ASM_CRIS_ARCH_CACHE_H
5271 #define _ASM_CRIS_ARCH_CACHE_H
5272
5273 +#include <linux/const.h>
5274 #include <arch/hwregs/dma.h>
5275
5276 /* A cache-line is 32 bytes. */
5277 -#define L1_CACHE_BYTES 32
5278 #define L1_CACHE_SHIFT 5
5279 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5280
5281 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
5282
5283 diff --git a/arch/frv/include/asm/atomic.h b/arch/frv/include/asm/atomic.h
5284 index 102190a..5334cea 100644
5285 --- a/arch/frv/include/asm/atomic.h
5286 +++ b/arch/frv/include/asm/atomic.h
5287 @@ -181,6 +181,16 @@ static inline void atomic64_dec(atomic64_t *v)
5288 #define atomic64_cmpxchg(v, old, new) (__cmpxchg_64(old, new, &(v)->counter))
5289 #define atomic64_xchg(v, new) (__xchg_64(new, &(v)->counter))
5290
5291 +#define atomic64_read_unchecked(v) atomic64_read(v)
5292 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
5293 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
5294 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
5295 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
5296 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
5297 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
5298 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
5299 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
5300 +
5301 static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
5302 {
5303 int c, old;
5304 diff --git a/arch/frv/include/asm/cache.h b/arch/frv/include/asm/cache.h
5305 index 2797163..c2a401df9 100644
5306 --- a/arch/frv/include/asm/cache.h
5307 +++ b/arch/frv/include/asm/cache.h
5308 @@ -12,10 +12,11 @@
5309 #ifndef __ASM_CACHE_H
5310 #define __ASM_CACHE_H
5311
5312 +#include <linux/const.h>
5313
5314 /* bytes per L1 cache line */
5315 #define L1_CACHE_SHIFT (CONFIG_FRV_L1_CACHE_SHIFT)
5316 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5317 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5318
5319 #define __cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
5320 #define ____cacheline_aligned __attribute__((aligned(L1_CACHE_BYTES)))
5321 diff --git a/arch/frv/include/asm/kmap_types.h b/arch/frv/include/asm/kmap_types.h
5322 index 43901f2..0d8b865 100644
5323 --- a/arch/frv/include/asm/kmap_types.h
5324 +++ b/arch/frv/include/asm/kmap_types.h
5325 @@ -2,6 +2,6 @@
5326 #ifndef _ASM_KMAP_TYPES_H
5327 #define _ASM_KMAP_TYPES_H
5328
5329 -#define KM_TYPE_NR 17
5330 +#define KM_TYPE_NR 18
5331
5332 #endif
5333 diff --git a/arch/frv/mm/elf-fdpic.c b/arch/frv/mm/elf-fdpic.c
5334 index 836f147..4cf23f5 100644
5335 --- a/arch/frv/mm/elf-fdpic.c
5336 +++ b/arch/frv/mm/elf-fdpic.c
5337 @@ -61,6 +61,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
5338 {
5339 struct vm_area_struct *vma;
5340 struct vm_unmapped_area_info info;
5341 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
5342
5343 if (len > TASK_SIZE)
5344 return -ENOMEM;
5345 @@ -73,8 +74,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
5346 if (addr) {
5347 addr = PAGE_ALIGN(addr);
5348 vma = find_vma(current->mm, addr);
5349 - if (TASK_SIZE - len >= addr &&
5350 - (!vma || addr + len <= vma->vm_start))
5351 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
5352 goto success;
5353 }
5354
5355 @@ -85,6 +85,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
5356 info.high_limit = (current->mm->start_stack - 0x00200000);
5357 info.align_mask = 0;
5358 info.align_offset = 0;
5359 + info.threadstack_offset = offset;
5360 addr = vm_unmapped_area(&info);
5361 if (!(addr & ~PAGE_MASK))
5362 goto success;
5363 diff --git a/arch/hexagon/include/asm/cache.h b/arch/hexagon/include/asm/cache.h
5364 index 69952c18..4fa2908 100644
5365 --- a/arch/hexagon/include/asm/cache.h
5366 +++ b/arch/hexagon/include/asm/cache.h
5367 @@ -21,9 +21,11 @@
5368 #ifndef __ASM_CACHE_H
5369 #define __ASM_CACHE_H
5370
5371 +#include <linux/const.h>
5372 +
5373 /* Bytes per L1 cache line */
5374 -#define L1_CACHE_SHIFT (5)
5375 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5376 +#define L1_CACHE_SHIFT 5
5377 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5378
5379 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5380
5381 diff --git a/arch/ia64/Kconfig b/arch/ia64/Kconfig
5382 index 42a91a7..29d446e 100644
5383 --- a/arch/ia64/Kconfig
5384 +++ b/arch/ia64/Kconfig
5385 @@ -518,6 +518,7 @@ source "drivers/sn/Kconfig"
5386 config KEXEC
5387 bool "kexec system call"
5388 depends on !IA64_HP_SIM && (!SMP || HOTPLUG_CPU)
5389 + depends on !GRKERNSEC_KMEM
5390 help
5391 kexec is a system call that implements the ability to shutdown your
5392 current kernel, and to start another kernel. It is like a reboot
5393 diff --git a/arch/ia64/Makefile b/arch/ia64/Makefile
5394 index 970d0bd..e750b9b 100644
5395 --- a/arch/ia64/Makefile
5396 +++ b/arch/ia64/Makefile
5397 @@ -98,5 +98,6 @@ endef
5398 archprepare: make_nr_irqs_h FORCE
5399 PHONY += make_nr_irqs_h FORCE
5400
5401 +make_nr_irqs_h: KBUILD_CFLAGS := $(filter-out $(GCC_PLUGINS_CFLAGS),$(KBUILD_CFLAGS))
5402 make_nr_irqs_h: FORCE
5403 $(Q)$(MAKE) $(build)=arch/ia64/kernel include/generated/nr-irqs.h
5404 diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h
5405 index 0bf0350..2ad1957 100644
5406 --- a/arch/ia64/include/asm/atomic.h
5407 +++ b/arch/ia64/include/asm/atomic.h
5408 @@ -193,4 +193,14 @@ atomic64_add_negative (__s64 i, atomic64_t *v)
5409 #define atomic64_inc(v) atomic64_add(1, (v))
5410 #define atomic64_dec(v) atomic64_sub(1, (v))
5411
5412 +#define atomic64_read_unchecked(v) atomic64_read(v)
5413 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
5414 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
5415 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
5416 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
5417 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
5418 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
5419 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
5420 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
5421 +
5422 #endif /* _ASM_IA64_ATOMIC_H */
5423 diff --git a/arch/ia64/include/asm/barrier.h b/arch/ia64/include/asm/barrier.h
5424 index 843ba43..fa118fb 100644
5425 --- a/arch/ia64/include/asm/barrier.h
5426 +++ b/arch/ia64/include/asm/barrier.h
5427 @@ -66,7 +66,7 @@
5428 do { \
5429 compiletime_assert_atomic_type(*p); \
5430 barrier(); \
5431 - ACCESS_ONCE(*p) = (v); \
5432 + ACCESS_ONCE_RW(*p) = (v); \
5433 } while (0)
5434
5435 #define smp_load_acquire(p) \
5436 diff --git a/arch/ia64/include/asm/cache.h b/arch/ia64/include/asm/cache.h
5437 index 988254a..e1ee885 100644
5438 --- a/arch/ia64/include/asm/cache.h
5439 +++ b/arch/ia64/include/asm/cache.h
5440 @@ -1,6 +1,7 @@
5441 #ifndef _ASM_IA64_CACHE_H
5442 #define _ASM_IA64_CACHE_H
5443
5444 +#include <linux/const.h>
5445
5446 /*
5447 * Copyright (C) 1998-2000 Hewlett-Packard Co
5448 @@ -9,7 +10,7 @@
5449
5450 /* Bytes per L1 (data) cache line. */
5451 #define L1_CACHE_SHIFT CONFIG_IA64_L1_CACHE_SHIFT
5452 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5453 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5454
5455 #ifdef CONFIG_SMP
5456 # define SMP_CACHE_SHIFT L1_CACHE_SHIFT
5457 diff --git a/arch/ia64/include/asm/elf.h b/arch/ia64/include/asm/elf.h
5458 index 5a83c5c..4d7f553 100644
5459 --- a/arch/ia64/include/asm/elf.h
5460 +++ b/arch/ia64/include/asm/elf.h
5461 @@ -42,6 +42,13 @@
5462 */
5463 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x800000000UL)
5464
5465 +#ifdef CONFIG_PAX_ASLR
5466 +#define PAX_ELF_ET_DYN_BASE (current->personality == PER_LINUX32 ? 0x08048000UL : 0x4000000000000000UL)
5467 +
5468 +#define PAX_DELTA_MMAP_LEN (current->personality == PER_LINUX32 ? 16 : 3*PAGE_SHIFT - 13)
5469 +#define PAX_DELTA_STACK_LEN (current->personality == PER_LINUX32 ? 16 : 3*PAGE_SHIFT - 13)
5470 +#endif
5471 +
5472 #define PT_IA_64_UNWIND 0x70000001
5473
5474 /* IA-64 relocations: */
5475 diff --git a/arch/ia64/include/asm/pgalloc.h b/arch/ia64/include/asm/pgalloc.h
5476 index f5e70e9..624fad5 100644
5477 --- a/arch/ia64/include/asm/pgalloc.h
5478 +++ b/arch/ia64/include/asm/pgalloc.h
5479 @@ -39,6 +39,12 @@ pgd_populate(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
5480 pgd_val(*pgd_entry) = __pa(pud);
5481 }
5482
5483 +static inline void
5484 +pgd_populate_kernel(struct mm_struct *mm, pgd_t * pgd_entry, pud_t * pud)
5485 +{
5486 + pgd_populate(mm, pgd_entry, pud);
5487 +}
5488 +
5489 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
5490 {
5491 return quicklist_alloc(0, GFP_KERNEL, NULL);
5492 @@ -57,6 +63,12 @@ pud_populate(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd)
5493 pud_val(*pud_entry) = __pa(pmd);
5494 }
5495
5496 +static inline void
5497 +pud_populate_kernel(struct mm_struct *mm, pud_t * pud_entry, pmd_t * pmd)
5498 +{
5499 + pud_populate(mm, pud_entry, pmd);
5500 +}
5501 +
5502 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long addr)
5503 {
5504 return quicklist_alloc(0, GFP_KERNEL, NULL);
5505 diff --git a/arch/ia64/include/asm/pgtable.h b/arch/ia64/include/asm/pgtable.h
5506 index 9f3ed9e..c99b418 100644
5507 --- a/arch/ia64/include/asm/pgtable.h
5508 +++ b/arch/ia64/include/asm/pgtable.h
5509 @@ -12,7 +12,7 @@
5510 * David Mosberger-Tang <davidm@hpl.hp.com>
5511 */
5512
5513 -
5514 +#include <linux/const.h>
5515 #include <asm/mman.h>
5516 #include <asm/page.h>
5517 #include <asm/processor.h>
5518 @@ -139,6 +139,17 @@
5519 #define PAGE_READONLY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5520 #define PAGE_COPY __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5521 #define PAGE_COPY_EXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_RX)
5522 +
5523 +#ifdef CONFIG_PAX_PAGEEXEC
5524 +# define PAGE_SHARED_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_RW)
5525 +# define PAGE_READONLY_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5526 +# define PAGE_COPY_NOEXEC __pgprot(__ACCESS_BITS | _PAGE_PL_3 | _PAGE_AR_R)
5527 +#else
5528 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
5529 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
5530 +# define PAGE_COPY_NOEXEC PAGE_COPY
5531 +#endif
5532 +
5533 #define PAGE_GATE __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_X_RX)
5534 #define PAGE_KERNEL __pgprot(__DIRTY_BITS | _PAGE_PL_0 | _PAGE_AR_RWX)
5535 #define PAGE_KERNELRX __pgprot(__ACCESS_BITS | _PAGE_PL_0 | _PAGE_AR_RX)
5536 diff --git a/arch/ia64/include/asm/spinlock.h b/arch/ia64/include/asm/spinlock.h
5537 index 45698cd..e8e2dbc 100644
5538 --- a/arch/ia64/include/asm/spinlock.h
5539 +++ b/arch/ia64/include/asm/spinlock.h
5540 @@ -71,7 +71,7 @@ static __always_inline void __ticket_spin_unlock(arch_spinlock_t *lock)
5541 unsigned short *p = (unsigned short *)&lock->lock + 1, tmp;
5542
5543 asm volatile ("ld2.bias %0=[%1]" : "=r"(tmp) : "r"(p));
5544 - ACCESS_ONCE(*p) = (tmp + 2) & ~1;
5545 + ACCESS_ONCE_RW(*p) = (tmp + 2) & ~1;
5546 }
5547
5548 static __always_inline void __ticket_spin_unlock_wait(arch_spinlock_t *lock)
5549 diff --git a/arch/ia64/include/asm/uaccess.h b/arch/ia64/include/asm/uaccess.h
5550 index 4f3fb6cc..254055e 100644
5551 --- a/arch/ia64/include/asm/uaccess.h
5552 +++ b/arch/ia64/include/asm/uaccess.h
5553 @@ -70,6 +70,7 @@
5554 && ((segment).seg == KERNEL_DS.seg \
5555 || likely(REGION_OFFSET((unsigned long) (addr)) < RGN_MAP_LIMIT))); \
5556 })
5557 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
5558 #define access_ok(type, addr, size) __access_ok((addr), (size), get_fs())
5559
5560 /*
5561 @@ -241,12 +242,24 @@ extern unsigned long __must_check __copy_user (void __user *to, const void __use
5562 static inline unsigned long
5563 __copy_to_user (void __user *to, const void *from, unsigned long count)
5564 {
5565 + if (count > INT_MAX)
5566 + return count;
5567 +
5568 + if (!__builtin_constant_p(count))
5569 + check_object_size(from, count, true);
5570 +
5571 return __copy_user(to, (__force void __user *) from, count);
5572 }
5573
5574 static inline unsigned long
5575 __copy_from_user (void *to, const void __user *from, unsigned long count)
5576 {
5577 + if (count > INT_MAX)
5578 + return count;
5579 +
5580 + if (!__builtin_constant_p(count))
5581 + check_object_size(to, count, false);
5582 +
5583 return __copy_user((__force void __user *) to, from, count);
5584 }
5585
5586 @@ -256,10 +269,13 @@ __copy_from_user (void *to, const void __user *from, unsigned long count)
5587 ({ \
5588 void __user *__cu_to = (to); \
5589 const void *__cu_from = (from); \
5590 - long __cu_len = (n); \
5591 + unsigned long __cu_len = (n); \
5592 \
5593 - if (__access_ok(__cu_to, __cu_len, get_fs())) \
5594 + if (__cu_len <= INT_MAX && __access_ok(__cu_to, __cu_len, get_fs())) { \
5595 + if (!__builtin_constant_p(n)) \
5596 + check_object_size(__cu_from, __cu_len, true); \
5597 __cu_len = __copy_user(__cu_to, (__force void __user *) __cu_from, __cu_len); \
5598 + } \
5599 __cu_len; \
5600 })
5601
5602 @@ -267,11 +283,14 @@ __copy_from_user (void *to, const void __user *from, unsigned long count)
5603 ({ \
5604 void *__cu_to = (to); \
5605 const void __user *__cu_from = (from); \
5606 - long __cu_len = (n); \
5607 + unsigned long __cu_len = (n); \
5608 \
5609 __chk_user_ptr(__cu_from); \
5610 - if (__access_ok(__cu_from, __cu_len, get_fs())) \
5611 + if (__cu_len <= INT_MAX && __access_ok(__cu_from, __cu_len, get_fs())) { \
5612 + if (!__builtin_constant_p(n)) \
5613 + check_object_size(__cu_to, __cu_len, false); \
5614 __cu_len = __copy_user((__force void __user *) __cu_to, __cu_from, __cu_len); \
5615 + } \
5616 __cu_len; \
5617 })
5618
5619 diff --git a/arch/ia64/kernel/module.c b/arch/ia64/kernel/module.c
5620 index b15933c..098b1c8 100644
5621 --- a/arch/ia64/kernel/module.c
5622 +++ b/arch/ia64/kernel/module.c
5623 @@ -484,15 +484,39 @@ module_frob_arch_sections (Elf_Ehdr *ehdr, Elf_Shdr *sechdrs, char *secstrings,
5624 }
5625
5626 static inline int
5627 +in_init_rx (const struct module *mod, uint64_t addr)
5628 +{
5629 + return addr - (uint64_t) mod->module_init_rx < mod->init_size_rx;
5630 +}
5631 +
5632 +static inline int
5633 +in_init_rw (const struct module *mod, uint64_t addr)
5634 +{
5635 + return addr - (uint64_t) mod->module_init_rw < mod->init_size_rw;
5636 +}
5637 +
5638 +static inline int
5639 in_init (const struct module *mod, uint64_t addr)
5640 {
5641 - return addr - (uint64_t) mod->module_init < mod->init_size;
5642 + return in_init_rx(mod, addr) || in_init_rw(mod, addr);
5643 +}
5644 +
5645 +static inline int
5646 +in_core_rx (const struct module *mod, uint64_t addr)
5647 +{
5648 + return addr - (uint64_t) mod->module_core_rx < mod->core_size_rx;
5649 +}
5650 +
5651 +static inline int
5652 +in_core_rw (const struct module *mod, uint64_t addr)
5653 +{
5654 + return addr - (uint64_t) mod->module_core_rw < mod->core_size_rw;
5655 }
5656
5657 static inline int
5658 in_core (const struct module *mod, uint64_t addr)
5659 {
5660 - return addr - (uint64_t) mod->module_core < mod->core_size;
5661 + return in_core_rx(mod, addr) || in_core_rw(mod, addr);
5662 }
5663
5664 static inline int
5665 @@ -675,7 +699,14 @@ do_reloc (struct module *mod, uint8_t r_type, Elf64_Sym *sym, uint64_t addend,
5666 break;
5667
5668 case RV_BDREL:
5669 - val -= (uint64_t) (in_init(mod, val) ? mod->module_init : mod->module_core);
5670 + if (in_init_rx(mod, val))
5671 + val -= (uint64_t) mod->module_init_rx;
5672 + else if (in_init_rw(mod, val))
5673 + val -= (uint64_t) mod->module_init_rw;
5674 + else if (in_core_rx(mod, val))
5675 + val -= (uint64_t) mod->module_core_rx;
5676 + else if (in_core_rw(mod, val))
5677 + val -= (uint64_t) mod->module_core_rw;
5678 break;
5679
5680 case RV_LTV:
5681 @@ -810,15 +841,15 @@ apply_relocate_add (Elf64_Shdr *sechdrs, const char *strtab, unsigned int symind
5682 * addresses have been selected...
5683 */
5684 uint64_t gp;
5685 - if (mod->core_size > MAX_LTOFF)
5686 + if (mod->core_size_rx + mod->core_size_rw > MAX_LTOFF)
5687 /*
5688 * This takes advantage of fact that SHF_ARCH_SMALL gets allocated
5689 * at the end of the module.
5690 */
5691 - gp = mod->core_size - MAX_LTOFF / 2;
5692 + gp = mod->core_size_rx + mod->core_size_rw - MAX_LTOFF / 2;
5693 else
5694 - gp = mod->core_size / 2;
5695 - gp = (uint64_t) mod->module_core + ((gp + 7) & -8);
5696 + gp = (mod->core_size_rx + mod->core_size_rw) / 2;
5697 + gp = (uint64_t) mod->module_core_rx + ((gp + 7) & -8);
5698 mod->arch.gp = gp;
5699 DEBUGP("%s: placing gp at 0x%lx\n", __func__, gp);
5700 }
5701 diff --git a/arch/ia64/kernel/palinfo.c b/arch/ia64/kernel/palinfo.c
5702 index c39c3cd..3c77738 100644
5703 --- a/arch/ia64/kernel/palinfo.c
5704 +++ b/arch/ia64/kernel/palinfo.c
5705 @@ -980,7 +980,7 @@ static int palinfo_cpu_callback(struct notifier_block *nfb,
5706 return NOTIFY_OK;
5707 }
5708
5709 -static struct notifier_block __refdata palinfo_cpu_notifier =
5710 +static struct notifier_block palinfo_cpu_notifier =
5711 {
5712 .notifier_call = palinfo_cpu_callback,
5713 .priority = 0,
5714 diff --git a/arch/ia64/kernel/sys_ia64.c b/arch/ia64/kernel/sys_ia64.c
5715 index 41e33f8..65180b2a 100644
5716 --- a/arch/ia64/kernel/sys_ia64.c
5717 +++ b/arch/ia64/kernel/sys_ia64.c
5718 @@ -28,6 +28,7 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5719 unsigned long align_mask = 0;
5720 struct mm_struct *mm = current->mm;
5721 struct vm_unmapped_area_info info;
5722 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
5723
5724 if (len > RGN_MAP_LIMIT)
5725 return -ENOMEM;
5726 @@ -43,6 +44,13 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5727 if (REGION_NUMBER(addr) == RGN_HPAGE)
5728 addr = 0;
5729 #endif
5730 +
5731 +#ifdef CONFIG_PAX_RANDMMAP
5732 + if (mm->pax_flags & MF_PAX_RANDMMAP)
5733 + addr = mm->free_area_cache;
5734 + else
5735 +#endif
5736 +
5737 if (!addr)
5738 addr = TASK_UNMAPPED_BASE;
5739
5740 @@ -61,6 +69,7 @@ arch_get_unmapped_area (struct file *filp, unsigned long addr, unsigned long len
5741 info.high_limit = TASK_SIZE;
5742 info.align_mask = align_mask;
5743 info.align_offset = 0;
5744 + info.threadstack_offset = offset;
5745 return vm_unmapped_area(&info);
5746 }
5747
5748 diff --git a/arch/ia64/kernel/vmlinux.lds.S b/arch/ia64/kernel/vmlinux.lds.S
5749 index dc506b0..39baade 100644
5750 --- a/arch/ia64/kernel/vmlinux.lds.S
5751 +++ b/arch/ia64/kernel/vmlinux.lds.S
5752 @@ -171,7 +171,7 @@ SECTIONS {
5753 /* Per-cpu data: */
5754 . = ALIGN(PERCPU_PAGE_SIZE);
5755 PERCPU_VADDR(SMP_CACHE_BYTES, PERCPU_ADDR, :percpu)
5756 - __phys_per_cpu_start = __per_cpu_load;
5757 + __phys_per_cpu_start = per_cpu_load;
5758 /*
5759 * ensure percpu data fits
5760 * into percpu page size
5761 diff --git a/arch/ia64/mm/fault.c b/arch/ia64/mm/fault.c
5762 index 70b40d1..01a9a28 100644
5763 --- a/arch/ia64/mm/fault.c
5764 +++ b/arch/ia64/mm/fault.c
5765 @@ -72,6 +72,23 @@ mapped_kernel_page_is_present (unsigned long address)
5766 return pte_present(pte);
5767 }
5768
5769 +#ifdef CONFIG_PAX_PAGEEXEC
5770 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
5771 +{
5772 + unsigned long i;
5773 +
5774 + printk(KERN_ERR "PAX: bytes at PC: ");
5775 + for (i = 0; i < 8; i++) {
5776 + unsigned int c;
5777 + if (get_user(c, (unsigned int *)pc+i))
5778 + printk(KERN_CONT "???????? ");
5779 + else
5780 + printk(KERN_CONT "%08x ", c);
5781 + }
5782 + printk("\n");
5783 +}
5784 +#endif
5785 +
5786 # define VM_READ_BIT 0
5787 # define VM_WRITE_BIT 1
5788 # define VM_EXEC_BIT 2
5789 @@ -151,8 +168,21 @@ retry:
5790 if (((isr >> IA64_ISR_R_BIT) & 1UL) && (!(vma->vm_flags & (VM_READ | VM_WRITE))))
5791 goto bad_area;
5792
5793 - if ((vma->vm_flags & mask) != mask)
5794 + if ((vma->vm_flags & mask) != mask) {
5795 +
5796 +#ifdef CONFIG_PAX_PAGEEXEC
5797 + if (!(vma->vm_flags & VM_EXEC) && (mask & VM_EXEC)) {
5798 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || address != regs->cr_iip)
5799 + goto bad_area;
5800 +
5801 + up_read(&mm->mmap_sem);
5802 + pax_report_fault(regs, (void *)regs->cr_iip, (void *)regs->r12);
5803 + do_group_exit(SIGKILL);
5804 + }
5805 +#endif
5806 +
5807 goto bad_area;
5808 + }
5809
5810 /*
5811 * If for any reason at all we couldn't handle the fault, make
5812 diff --git a/arch/ia64/mm/hugetlbpage.c b/arch/ia64/mm/hugetlbpage.c
5813 index f50d4b3..c7975ee 100644
5814 --- a/arch/ia64/mm/hugetlbpage.c
5815 +++ b/arch/ia64/mm/hugetlbpage.c
5816 @@ -138,6 +138,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
5817 unsigned long pgoff, unsigned long flags)
5818 {
5819 struct vm_unmapped_area_info info;
5820 + unsigned long offset = gr_rand_threadstack_offset(current->mm, file, flags);
5821
5822 if (len > RGN_MAP_LIMIT)
5823 return -ENOMEM;
5824 @@ -161,6 +162,7 @@ unsigned long hugetlb_get_unmapped_area(struct file *file, unsigned long addr, u
5825 info.high_limit = HPAGE_REGION_BASE + RGN_MAP_LIMIT;
5826 info.align_mask = PAGE_MASK & (HPAGE_SIZE - 1);
5827 info.align_offset = 0;
5828 + info.threadstack_offset = offset;
5829 return vm_unmapped_area(&info);
5830 }
5831
5832 diff --git a/arch/ia64/mm/init.c b/arch/ia64/mm/init.c
5833 index 97e48b0..fc59c36 100644
5834 --- a/arch/ia64/mm/init.c
5835 +++ b/arch/ia64/mm/init.c
5836 @@ -119,6 +119,19 @@ ia64_init_addr_space (void)
5837 vma->vm_start = current->thread.rbs_bot & PAGE_MASK;
5838 vma->vm_end = vma->vm_start + PAGE_SIZE;
5839 vma->vm_flags = VM_DATA_DEFAULT_FLAGS|VM_GROWSUP|VM_ACCOUNT;
5840 +
5841 +#ifdef CONFIG_PAX_PAGEEXEC
5842 + if (current->mm->pax_flags & MF_PAX_PAGEEXEC) {
5843 + vma->vm_flags &= ~VM_EXEC;
5844 +
5845 +#ifdef CONFIG_PAX_MPROTECT
5846 + if (current->mm->pax_flags & MF_PAX_MPROTECT)
5847 + vma->vm_flags &= ~VM_MAYEXEC;
5848 +#endif
5849 +
5850 + }
5851 +#endif
5852 +
5853 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
5854 down_write(&current->mm->mmap_sem);
5855 if (insert_vm_struct(current->mm, vma)) {
5856 @@ -279,7 +292,7 @@ static int __init gate_vma_init(void)
5857 gate_vma.vm_start = FIXADDR_USER_START;
5858 gate_vma.vm_end = FIXADDR_USER_END;
5859 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
5860 - gate_vma.vm_page_prot = __P101;
5861 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
5862
5863 return 0;
5864 }
5865 diff --git a/arch/m32r/include/asm/cache.h b/arch/m32r/include/asm/cache.h
5866 index 40b3ee98..8c2c112 100644
5867 --- a/arch/m32r/include/asm/cache.h
5868 +++ b/arch/m32r/include/asm/cache.h
5869 @@ -1,8 +1,10 @@
5870 #ifndef _ASM_M32R_CACHE_H
5871 #define _ASM_M32R_CACHE_H
5872
5873 +#include <linux/const.h>
5874 +
5875 /* L1 cache line size */
5876 #define L1_CACHE_SHIFT 4
5877 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5878 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5879
5880 #endif /* _ASM_M32R_CACHE_H */
5881 diff --git a/arch/m32r/lib/usercopy.c b/arch/m32r/lib/usercopy.c
5882 index 82abd15..d95ae5d 100644
5883 --- a/arch/m32r/lib/usercopy.c
5884 +++ b/arch/m32r/lib/usercopy.c
5885 @@ -14,6 +14,9 @@
5886 unsigned long
5887 __generic_copy_to_user(void __user *to, const void *from, unsigned long n)
5888 {
5889 + if ((long)n < 0)
5890 + return n;
5891 +
5892 prefetch(from);
5893 if (access_ok(VERIFY_WRITE, to, n))
5894 __copy_user(to,from,n);
5895 @@ -23,6 +26,9 @@ __generic_copy_to_user(void __user *to, const void *from, unsigned long n)
5896 unsigned long
5897 __generic_copy_from_user(void *to, const void __user *from, unsigned long n)
5898 {
5899 + if ((long)n < 0)
5900 + return n;
5901 +
5902 prefetchw(to);
5903 if (access_ok(VERIFY_READ, from, n))
5904 __copy_user_zeroing(to,from,n);
5905 diff --git a/arch/m68k/include/asm/cache.h b/arch/m68k/include/asm/cache.h
5906 index 0395c51..5f26031 100644
5907 --- a/arch/m68k/include/asm/cache.h
5908 +++ b/arch/m68k/include/asm/cache.h
5909 @@ -4,9 +4,11 @@
5910 #ifndef __ARCH_M68K_CACHE_H
5911 #define __ARCH_M68K_CACHE_H
5912
5913 +#include <linux/const.h>
5914 +
5915 /* bytes per L1 cache line */
5916 #define L1_CACHE_SHIFT 4
5917 -#define L1_CACHE_BYTES (1<< L1_CACHE_SHIFT)
5918 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5919
5920 #define ARCH_DMA_MINALIGN L1_CACHE_BYTES
5921
5922 diff --git a/arch/metag/include/asm/barrier.h b/arch/metag/include/asm/barrier.h
5923 index 5a696e5..070490d 100644
5924 --- a/arch/metag/include/asm/barrier.h
5925 +++ b/arch/metag/include/asm/barrier.h
5926 @@ -90,7 +90,7 @@ static inline void fence(void)
5927 do { \
5928 compiletime_assert_atomic_type(*p); \
5929 smp_mb(); \
5930 - ACCESS_ONCE(*p) = (v); \
5931 + ACCESS_ONCE_RW(*p) = (v); \
5932 } while (0)
5933
5934 #define smp_load_acquire(p) \
5935 diff --git a/arch/metag/mm/hugetlbpage.c b/arch/metag/mm/hugetlbpage.c
5936 index 53f0f6c..2dc07fd 100644
5937 --- a/arch/metag/mm/hugetlbpage.c
5938 +++ b/arch/metag/mm/hugetlbpage.c
5939 @@ -189,6 +189,7 @@ hugetlb_get_unmapped_area_new_pmd(unsigned long len)
5940 info.high_limit = TASK_SIZE;
5941 info.align_mask = PAGE_MASK & HUGEPT_MASK;
5942 info.align_offset = 0;
5943 + info.threadstack_offset = 0;
5944 return vm_unmapped_area(&info);
5945 }
5946
5947 diff --git a/arch/microblaze/include/asm/cache.h b/arch/microblaze/include/asm/cache.h
5948 index 4efe96a..60e8699 100644
5949 --- a/arch/microblaze/include/asm/cache.h
5950 +++ b/arch/microblaze/include/asm/cache.h
5951 @@ -13,11 +13,12 @@
5952 #ifndef _ASM_MICROBLAZE_CACHE_H
5953 #define _ASM_MICROBLAZE_CACHE_H
5954
5955 +#include <linux/const.h>
5956 #include <asm/registers.h>
5957
5958 #define L1_CACHE_SHIFT 5
5959 /* word-granular cache in microblaze */
5960 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
5961 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
5962
5963 #define SMP_CACHE_BYTES L1_CACHE_BYTES
5964
5965 diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig
5966 index 199a835..822b487 100644
5967 --- a/arch/mips/Kconfig
5968 +++ b/arch/mips/Kconfig
5969 @@ -2591,6 +2591,7 @@ source "kernel/Kconfig.preempt"
5970
5971 config KEXEC
5972 bool "Kexec system call"
5973 + depends on !GRKERNSEC_KMEM
5974 help
5975 kexec is a system call that implements the ability to shutdown your
5976 current kernel, and to start another kernel. It is like a reboot
5977 diff --git a/arch/mips/cavium-octeon/dma-octeon.c b/arch/mips/cavium-octeon/dma-octeon.c
5978 index d8960d4..77dbd31 100644
5979 --- a/arch/mips/cavium-octeon/dma-octeon.c
5980 +++ b/arch/mips/cavium-octeon/dma-octeon.c
5981 @@ -199,7 +199,7 @@ static void octeon_dma_free_coherent(struct device *dev, size_t size,
5982 if (dma_release_from_coherent(dev, order, vaddr))
5983 return;
5984
5985 - swiotlb_free_coherent(dev, size, vaddr, dma_handle);
5986 + swiotlb_free_coherent(dev, size, vaddr, dma_handle, attrs);
5987 }
5988
5989 static dma_addr_t octeon_unity_phys_to_dma(struct device *dev, phys_addr_t paddr)
5990 diff --git a/arch/mips/include/asm/atomic.h b/arch/mips/include/asm/atomic.h
5991 index 26d4363..3c9a82e 100644
5992 --- a/arch/mips/include/asm/atomic.h
5993 +++ b/arch/mips/include/asm/atomic.h
5994 @@ -22,15 +22,39 @@
5995 #include <asm/cmpxchg.h>
5996 #include <asm/war.h>
5997
5998 +#ifdef CONFIG_GENERIC_ATOMIC64
5999 +#include <asm-generic/atomic64.h>
6000 +#endif
6001 +
6002 #define ATOMIC_INIT(i) { (i) }
6003
6004 +#ifdef CONFIG_64BIT
6005 +#define _ASM_EXTABLE(from, to) \
6006 +" .section __ex_table,\"a\"\n" \
6007 +" .dword " #from ", " #to"\n" \
6008 +" .previous\n"
6009 +#else
6010 +#define _ASM_EXTABLE(from, to) \
6011 +" .section __ex_table,\"a\"\n" \
6012 +" .word " #from ", " #to"\n" \
6013 +" .previous\n"
6014 +#endif
6015 +
6016 /*
6017 * atomic_read - read atomic variable
6018 * @v: pointer of type atomic_t
6019 *
6020 * Atomically reads the value of @v.
6021 */
6022 -#define atomic_read(v) ACCESS_ONCE((v)->counter)
6023 +static inline int atomic_read(const atomic_t *v)
6024 +{
6025 + return ACCESS_ONCE(v->counter);
6026 +}
6027 +
6028 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
6029 +{
6030 + return ACCESS_ONCE(v->counter);
6031 +}
6032
6033 /*
6034 * atomic_set - set atomic variable
6035 @@ -39,47 +63,77 @@
6036 *
6037 * Atomically sets the value of @v to @i.
6038 */
6039 -#define atomic_set(v, i) ((v)->counter = (i))
6040 +static inline void atomic_set(atomic_t *v, int i)
6041 +{
6042 + v->counter = i;
6043 +}
6044
6045 -#define ATOMIC_OP(op, c_op, asm_op) \
6046 -static __inline__ void atomic_##op(int i, atomic_t * v) \
6047 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
6048 +{
6049 + v->counter = i;
6050 +}
6051 +
6052 +#ifdef CONFIG_PAX_REFCOUNT
6053 +#define __OVERFLOW_POST \
6054 + " b 4f \n" \
6055 + " .set noreorder \n" \
6056 + "3: b 5f \n" \
6057 + " move %0, %1 \n" \
6058 + " .set reorder \n"
6059 +#define __OVERFLOW_EXTABLE \
6060 + "3:\n" \
6061 + _ASM_EXTABLE(2b, 3b)
6062 +#else
6063 +#define __OVERFLOW_POST
6064 +#define __OVERFLOW_EXTABLE
6065 +#endif
6066 +
6067 +#define __ATOMIC_OP(op, suffix, asm_op, extable) \
6068 +static inline void atomic_##op##suffix(int i, atomic##suffix##_t * v) \
6069 { \
6070 if (kernel_uses_llsc && R10000_LLSC_WAR) { \
6071 int temp; \
6072 \
6073 __asm__ __volatile__( \
6074 - " .set arch=r4000 \n" \
6075 - "1: ll %0, %1 # atomic_" #op " \n" \
6076 - " " #asm_op " %0, %2 \n" \
6077 + " .set mips3 \n" \
6078 + "1: ll %0, %1 # atomic_" #op #suffix "\n" \
6079 + "2: " #asm_op " %0, %2 \n" \
6080 " sc %0, %1 \n" \
6081 " beqzl %0, 1b \n" \
6082 + extable \
6083 " .set mips0 \n" \
6084 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6085 : "Ir" (i)); \
6086 } else if (kernel_uses_llsc) { \
6087 int temp; \
6088 \
6089 - do { \
6090 - __asm__ __volatile__( \
6091 - " .set "MIPS_ISA_LEVEL" \n" \
6092 - " ll %0, %1 # atomic_" #op "\n" \
6093 - " " #asm_op " %0, %2 \n" \
6094 - " sc %0, %1 \n" \
6095 - " .set mips0 \n" \
6096 - : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6097 - : "Ir" (i)); \
6098 - } while (unlikely(!temp)); \
6099 + __asm__ __volatile__( \
6100 + " .set "MIPS_ISA_LEVEL" \n" \
6101 + "1: ll %0, %1 # atomic_" #op #suffix "\n" \
6102 + "2: " #asm_op " %0, %2 \n" \
6103 + " sc %0, %1 \n" \
6104 + " beqz %0, 1b \n" \
6105 + extable \
6106 + " .set mips0 \n" \
6107 + : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6108 + : "Ir" (i)); \
6109 } else { \
6110 unsigned long flags; \
6111 \
6112 raw_local_irq_save(flags); \
6113 - v->counter c_op i; \
6114 + __asm__ __volatile__( \
6115 + "2: " #asm_op " %0, %1 \n" \
6116 + extable \
6117 + : "+r" (v->counter) : "Ir" (i)); \
6118 raw_local_irq_restore(flags); \
6119 } \
6120 }
6121
6122 -#define ATOMIC_OP_RETURN(op, c_op, asm_op) \
6123 -static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
6124 +#define ATOMIC_OP(op, asm_op) __ATOMIC_OP(op, _unchecked, asm_op##u, ) \
6125 + __ATOMIC_OP(op, , asm_op, __OVERFLOW_EXTABLE)
6126 +
6127 +#define __ATOMIC_OP_RETURN(op, suffix, asm_op, post_op, extable) \
6128 +static inline int atomic_##op##_return##suffix(int i, atomic##suffix##_t * v) \
6129 { \
6130 int result; \
6131 \
6132 @@ -89,12 +143,15 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
6133 int temp; \
6134 \
6135 __asm__ __volatile__( \
6136 - " .set arch=r4000 \n" \
6137 - "1: ll %1, %2 # atomic_" #op "_return \n" \
6138 - " " #asm_op " %0, %1, %3 \n" \
6139 + " .set mips3 \n" \
6140 + "1: ll %1, %2 # atomic_" #op "_return" #suffix"\n" \
6141 + "2: " #asm_op " %0, %1, %3 \n" \
6142 " sc %0, %2 \n" \
6143 " beqzl %0, 1b \n" \
6144 - " " #asm_op " %0, %1, %3 \n" \
6145 + post_op \
6146 + extable \
6147 + "4: " #asm_op " %0, %1, %3 \n" \
6148 + "5: \n" \
6149 " .set mips0 \n" \
6150 : "=&r" (result), "=&r" (temp), \
6151 "+" GCC_OFF_SMALL_ASM() (v->counter) \
6152 @@ -102,26 +159,33 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
6153 } else if (kernel_uses_llsc) { \
6154 int temp; \
6155 \
6156 - do { \
6157 - __asm__ __volatile__( \
6158 - " .set "MIPS_ISA_LEVEL" \n" \
6159 - " ll %1, %2 # atomic_" #op "_return \n" \
6160 - " " #asm_op " %0, %1, %3 \n" \
6161 - " sc %0, %2 \n" \
6162 - " .set mips0 \n" \
6163 - : "=&r" (result), "=&r" (temp), \
6164 - "+" GCC_OFF_SMALL_ASM() (v->counter) \
6165 - : "Ir" (i)); \
6166 - } while (unlikely(!result)); \
6167 + __asm__ __volatile__( \
6168 + " .set "MIPS_ISA_LEVEL" \n" \
6169 + "1: ll %1, %2 # atomic_" #op "_return" #suffix "\n" \
6170 + "2: " #asm_op " %0, %1, %3 \n" \
6171 + " sc %0, %2 \n" \
6172 + post_op \
6173 + extable \
6174 + "4: " #asm_op " %0, %1, %3 \n" \
6175 + "5: \n" \
6176 + " .set mips0 \n" \
6177 + : "=&r" (result), "=&r" (temp), \
6178 + "+" GCC_OFF_SMALL_ASM() (v->counter) \
6179 + : "Ir" (i)); \
6180 \
6181 result = temp; result c_op i; \
6182 } else { \
6183 unsigned long flags; \
6184 \
6185 raw_local_irq_save(flags); \
6186 - result = v->counter; \
6187 - result c_op i; \
6188 - v->counter = result; \
6189 + __asm__ __volatile__( \
6190 + " lw %0, %1 \n" \
6191 + "2: " #asm_op " %0, %1, %2 \n" \
6192 + " sw %0, %1 \n" \
6193 + "3: \n" \
6194 + extable \
6195 + : "=&r" (result), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6196 + : "Ir" (i)); \
6197 raw_local_irq_restore(flags); \
6198 } \
6199 \
6200 @@ -130,16 +194,21 @@ static __inline__ int atomic_##op##_return(int i, atomic_t * v) \
6201 return result; \
6202 }
6203
6204 -#define ATOMIC_OPS(op, c_op, asm_op) \
6205 - ATOMIC_OP(op, c_op, asm_op) \
6206 - ATOMIC_OP_RETURN(op, c_op, asm_op)
6207 +#define ATOMIC_OP_RETURN(op, asm_op) __ATOMIC_OP_RETURN(op, _unchecked, asm_op##u, , ) \
6208 + __ATOMIC_OP_RETURN(op, , asm_op, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
6209
6210 -ATOMIC_OPS(add, +=, addu)
6211 -ATOMIC_OPS(sub, -=, subu)
6212 +#define ATOMIC_OPS(op, asm_op) \
6213 + ATOMIC_OP(op, asm_op) \
6214 + ATOMIC_OP_RETURN(op, asm_op)
6215 +
6216 +ATOMIC_OPS(add, add)
6217 +ATOMIC_OPS(sub, sub)
6218
6219 #undef ATOMIC_OPS
6220 #undef ATOMIC_OP_RETURN
6221 +#undef __ATOMIC_OP_RETURN
6222 #undef ATOMIC_OP
6223 +#undef __ATOMIC_OP
6224
6225 /*
6226 * atomic_sub_if_positive - conditionally subtract integer from atomic variable
6227 @@ -149,7 +218,7 @@ ATOMIC_OPS(sub, -=, subu)
6228 * Atomically test @v and subtract @i if @v is greater or equal than @i.
6229 * The function returns the old value of @v minus @i.
6230 */
6231 -static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
6232 +static __inline__ int atomic_sub_if_positive(int i, atomic_t *v)
6233 {
6234 int result;
6235
6236 @@ -159,7 +228,7 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
6237 int temp;
6238
6239 __asm__ __volatile__(
6240 - " .set arch=r4000 \n"
6241 + " .set "MIPS_ISA_LEVEL" \n"
6242 "1: ll %1, %2 # atomic_sub_if_positive\n"
6243 " subu %0, %1, %3 \n"
6244 " bltz %0, 1f \n"
6245 @@ -208,8 +277,26 @@ static __inline__ int atomic_sub_if_positive(int i, atomic_t * v)
6246 return result;
6247 }
6248
6249 -#define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
6250 -#define atomic_xchg(v, new) (xchg(&((v)->counter), (new)))
6251 +static inline int atomic_cmpxchg(atomic_t *v, int old, int new)
6252 +{
6253 + return cmpxchg(&v->counter, old, new);
6254 +}
6255 +
6256 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old,
6257 + int new)
6258 +{
6259 + return cmpxchg(&(v->counter), old, new);
6260 +}
6261 +
6262 +static inline int atomic_xchg(atomic_t *v, int new)
6263 +{
6264 + return xchg(&v->counter, new);
6265 +}
6266 +
6267 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
6268 +{
6269 + return xchg(&(v->counter), new);
6270 +}
6271
6272 /**
6273 * __atomic_add_unless - add unless the number is a given value
6274 @@ -237,6 +324,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6275
6276 #define atomic_dec_return(v) atomic_sub_return(1, (v))
6277 #define atomic_inc_return(v) atomic_add_return(1, (v))
6278 +static __inline__ int atomic_inc_return_unchecked(atomic_unchecked_t *v)
6279 +{
6280 + return atomic_add_return_unchecked(1, v);
6281 +}
6282
6283 /*
6284 * atomic_sub_and_test - subtract value from variable and test result
6285 @@ -258,6 +349,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6286 * other cases.
6287 */
6288 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
6289 +static __inline__ int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
6290 +{
6291 + return atomic_add_return_unchecked(1, v) == 0;
6292 +}
6293
6294 /*
6295 * atomic_dec_and_test - decrement by 1 and test
6296 @@ -282,6 +377,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6297 * Atomically increments @v by 1.
6298 */
6299 #define atomic_inc(v) atomic_add(1, (v))
6300 +static __inline__ void atomic_inc_unchecked(atomic_unchecked_t *v)
6301 +{
6302 + atomic_add_unchecked(1, v);
6303 +}
6304
6305 /*
6306 * atomic_dec - decrement and test
6307 @@ -290,6 +389,10 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6308 * Atomically decrements @v by 1.
6309 */
6310 #define atomic_dec(v) atomic_sub(1, (v))
6311 +static __inline__ void atomic_dec_unchecked(atomic_unchecked_t *v)
6312 +{
6313 + atomic_sub_unchecked(1, v);
6314 +}
6315
6316 /*
6317 * atomic_add_negative - add and test if negative
6318 @@ -311,54 +414,77 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
6319 * @v: pointer of type atomic64_t
6320 *
6321 */
6322 -#define atomic64_read(v) ACCESS_ONCE((v)->counter)
6323 +static inline long atomic64_read(const atomic64_t *v)
6324 +{
6325 + return ACCESS_ONCE(v->counter);
6326 +}
6327 +
6328 +static inline long atomic64_read_unchecked(const atomic64_unchecked_t *v)
6329 +{
6330 + return ACCESS_ONCE(v->counter);
6331 +}
6332
6333 /*
6334 * atomic64_set - set atomic variable
6335 * @v: pointer of type atomic64_t
6336 * @i: required value
6337 */
6338 -#define atomic64_set(v, i) ((v)->counter = (i))
6339 +static inline void atomic64_set(atomic64_t *v, long i)
6340 +{
6341 + v->counter = i;
6342 +}
6343
6344 -#define ATOMIC64_OP(op, c_op, asm_op) \
6345 -static __inline__ void atomic64_##op(long i, atomic64_t * v) \
6346 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
6347 +{
6348 + v->counter = i;
6349 +}
6350 +
6351 +#define __ATOMIC64_OP(op, suffix, asm_op, extable) \
6352 +static inline void atomic64_##op##suffix(long i, atomic64##suffix##_t * v) \
6353 { \
6354 if (kernel_uses_llsc && R10000_LLSC_WAR) { \
6355 long temp; \
6356 \
6357 __asm__ __volatile__( \
6358 - " .set arch=r4000 \n" \
6359 - "1: lld %0, %1 # atomic64_" #op " \n" \
6360 - " " #asm_op " %0, %2 \n" \
6361 + " .set "MIPS_ISA_LEVEL" \n" \
6362 + "1: lld %0, %1 # atomic64_" #op #suffix "\n" \
6363 + "2: " #asm_op " %0, %2 \n" \
6364 " scd %0, %1 \n" \
6365 " beqzl %0, 1b \n" \
6366 + extable \
6367 " .set mips0 \n" \
6368 : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6369 : "Ir" (i)); \
6370 } else if (kernel_uses_llsc) { \
6371 long temp; \
6372 \
6373 - do { \
6374 - __asm__ __volatile__( \
6375 - " .set "MIPS_ISA_LEVEL" \n" \
6376 - " lld %0, %1 # atomic64_" #op "\n" \
6377 - " " #asm_op " %0, %2 \n" \
6378 - " scd %0, %1 \n" \
6379 - " .set mips0 \n" \
6380 - : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6381 - : "Ir" (i)); \
6382 - } while (unlikely(!temp)); \
6383 + __asm__ __volatile__( \
6384 + " .set "MIPS_ISA_LEVEL" \n" \
6385 + "1: lld %0, %1 # atomic64_" #op #suffix "\n" \
6386 + "2: " #asm_op " %0, %2 \n" \
6387 + " scd %0, %1 \n" \
6388 + " beqz %0, 1b \n" \
6389 + extable \
6390 + " .set mips0 \n" \
6391 + : "=&r" (temp), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6392 + : "Ir" (i)); \
6393 } else { \
6394 unsigned long flags; \
6395 \
6396 raw_local_irq_save(flags); \
6397 - v->counter c_op i; \
6398 + __asm__ __volatile__( \
6399 + "2: " #asm_op " %0, %1 \n" \
6400 + extable \
6401 + : "+" GCC_OFF_SMALL_ASM() (v->counter) : "Ir" (i)); \
6402 raw_local_irq_restore(flags); \
6403 } \
6404 }
6405
6406 -#define ATOMIC64_OP_RETURN(op, c_op, asm_op) \
6407 -static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6408 +#define ATOMIC64_OP(op, asm_op) __ATOMIC64_OP(op, _unchecked, asm_op##u, ) \
6409 + __ATOMIC64_OP(op, , asm_op, __OVERFLOW_EXTABLE)
6410 +
6411 +#define __ATOMIC64_OP_RETURN(op, suffix, asm_op, post_op, extable) \
6412 +static inline long atomic64_##op##_return##suffix(long i, atomic64##suffix##_t * v)\
6413 { \
6414 long result; \
6415 \
6416 @@ -368,12 +494,15 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6417 long temp; \
6418 \
6419 __asm__ __volatile__( \
6420 - " .set arch=r4000 \n" \
6421 + " .set mips3 \n" \
6422 "1: lld %1, %2 # atomic64_" #op "_return\n" \
6423 - " " #asm_op " %0, %1, %3 \n" \
6424 + "2: " #asm_op " %0, %1, %3 \n" \
6425 " scd %0, %2 \n" \
6426 " beqzl %0, 1b \n" \
6427 - " " #asm_op " %0, %1, %3 \n" \
6428 + post_op \
6429 + extable \
6430 + "4: " #asm_op " %0, %1, %3 \n" \
6431 + "5: \n" \
6432 " .set mips0 \n" \
6433 : "=&r" (result), "=&r" (temp), \
6434 "+" GCC_OFF_SMALL_ASM() (v->counter) \
6435 @@ -381,27 +510,35 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6436 } else if (kernel_uses_llsc) { \
6437 long temp; \
6438 \
6439 - do { \
6440 - __asm__ __volatile__( \
6441 - " .set "MIPS_ISA_LEVEL" \n" \
6442 - " lld %1, %2 # atomic64_" #op "_return\n" \
6443 - " " #asm_op " %0, %1, %3 \n" \
6444 - " scd %0, %2 \n" \
6445 - " .set mips0 \n" \
6446 - : "=&r" (result), "=&r" (temp), \
6447 - "=" GCC_OFF_SMALL_ASM() (v->counter) \
6448 - : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) \
6449 - : "memory"); \
6450 - } while (unlikely(!result)); \
6451 + __asm__ __volatile__( \
6452 + " .set "MIPS_ISA_LEVEL" \n" \
6453 + "1: lld %1, %2 # atomic64_" #op "_return" #suffix "\n"\
6454 + "2: " #asm_op " %0, %1, %3 \n" \
6455 + " scd %0, %2 \n" \
6456 + " beqz %0, 1b \n" \
6457 + post_op \
6458 + extable \
6459 + "4: " #asm_op " %0, %1, %3 \n" \
6460 + "5: \n" \
6461 + " .set mips0 \n" \
6462 + : "=&r" (result), "=&r" (temp), \
6463 + "=" GCC_OFF_SMALL_ASM() (v->counter) \
6464 + : "Ir" (i), GCC_OFF_SMALL_ASM() (v->counter) \
6465 + : "memory"); \
6466 \
6467 result = temp; result c_op i; \
6468 } else { \
6469 unsigned long flags; \
6470 \
6471 raw_local_irq_save(flags); \
6472 - result = v->counter; \
6473 - result c_op i; \
6474 - v->counter = result; \
6475 + __asm__ __volatile__( \
6476 + " ld %0, %1 \n" \
6477 + "2: " #asm_op " %0, %1, %2 \n" \
6478 + " sd %0, %1 \n" \
6479 + "3: \n" \
6480 + extable \
6481 + : "=&r" (result), "+" GCC_OFF_SMALL_ASM() (v->counter) \
6482 + : "Ir" (i)); \
6483 raw_local_irq_restore(flags); \
6484 } \
6485 \
6486 @@ -410,16 +547,23 @@ static __inline__ long atomic64_##op##_return(long i, atomic64_t * v) \
6487 return result; \
6488 }
6489
6490 -#define ATOMIC64_OPS(op, c_op, asm_op) \
6491 - ATOMIC64_OP(op, c_op, asm_op) \
6492 - ATOMIC64_OP_RETURN(op, c_op, asm_op)
6493 +#define ATOMIC64_OP_RETURN(op, asm_op) __ATOMIC64_OP_RETURN(op, _unchecked, asm_op##u, , ) \
6494 + __ATOMIC64_OP_RETURN(op, , asm_op, __OVERFLOW_POST, __OVERFLOW_EXTABLE)
6495
6496 -ATOMIC64_OPS(add, +=, daddu)
6497 -ATOMIC64_OPS(sub, -=, dsubu)
6498 +#define ATOMIC64_OPS(op, asm_op) \
6499 + ATOMIC64_OP(op, asm_op) \
6500 + ATOMIC64_OP_RETURN(op, asm_op)
6501 +
6502 +ATOMIC64_OPS(add, dadd)
6503 +ATOMIC64_OPS(sub, dsub)
6504
6505 #undef ATOMIC64_OPS
6506 #undef ATOMIC64_OP_RETURN
6507 +#undef __ATOMIC64_OP_RETURN
6508 #undef ATOMIC64_OP
6509 +#undef __ATOMIC64_OP
6510 +#undef __OVERFLOW_EXTABLE
6511 +#undef __OVERFLOW_POST
6512
6513 /*
6514 * atomic64_sub_if_positive - conditionally subtract integer from atomic
6515 @@ -430,7 +574,7 @@ ATOMIC64_OPS(sub, -=, dsubu)
6516 * Atomically test @v and subtract @i if @v is greater or equal than @i.
6517 * The function returns the old value of @v minus @i.
6518 */
6519 -static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6520 +static __inline__ long atomic64_sub_if_positive(long i, atomic64_t *v)
6521 {
6522 long result;
6523
6524 @@ -440,7 +584,7 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6525 long temp;
6526
6527 __asm__ __volatile__(
6528 - " .set arch=r4000 \n"
6529 + " .set "MIPS_ISA_LEVEL" \n"
6530 "1: lld %1, %2 # atomic64_sub_if_positive\n"
6531 " dsubu %0, %1, %3 \n"
6532 " bltz %0, 1f \n"
6533 @@ -489,9 +633,26 @@ static __inline__ long atomic64_sub_if_positive(long i, atomic64_t * v)
6534 return result;
6535 }
6536
6537 -#define atomic64_cmpxchg(v, o, n) \
6538 - ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
6539 -#define atomic64_xchg(v, new) (xchg(&((v)->counter), (new)))
6540 +static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
6541 +{
6542 + return cmpxchg(&v->counter, old, new);
6543 +}
6544 +
6545 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old,
6546 + long new)
6547 +{
6548 + return cmpxchg(&(v->counter), old, new);
6549 +}
6550 +
6551 +static inline long atomic64_xchg(atomic64_t *v, long new)
6552 +{
6553 + return xchg(&v->counter, new);
6554 +}
6555 +
6556 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
6557 +{
6558 + return xchg(&(v->counter), new);
6559 +}
6560
6561 /**
6562 * atomic64_add_unless - add unless the number is a given value
6563 @@ -521,6 +682,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6564
6565 #define atomic64_dec_return(v) atomic64_sub_return(1, (v))
6566 #define atomic64_inc_return(v) atomic64_add_return(1, (v))
6567 +#define atomic64_inc_return_unchecked(v) atomic64_add_return_unchecked(1, (v))
6568
6569 /*
6570 * atomic64_sub_and_test - subtract value from variable and test result
6571 @@ -542,6 +704,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6572 * other cases.
6573 */
6574 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
6575 +#define atomic64_inc_and_test_unchecked(v) atomic64_add_return_unchecked(1, (v)) == 0)
6576
6577 /*
6578 * atomic64_dec_and_test - decrement by 1 and test
6579 @@ -566,6 +729,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6580 * Atomically increments @v by 1.
6581 */
6582 #define atomic64_inc(v) atomic64_add(1, (v))
6583 +#define atomic64_inc_unchecked(v) atomic64_add_unchecked(1, (v))
6584
6585 /*
6586 * atomic64_dec - decrement and test
6587 @@ -574,6 +738,7 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
6588 * Atomically decrements @v by 1.
6589 */
6590 #define atomic64_dec(v) atomic64_sub(1, (v))
6591 +#define atomic64_dec_unchecked(v) atomic64_sub_unchecked(1, (v))
6592
6593 /*
6594 * atomic64_add_negative - add and test if negative
6595 diff --git a/arch/mips/include/asm/barrier.h b/arch/mips/include/asm/barrier.h
6596 index 7ecba84..21774af 100644
6597 --- a/arch/mips/include/asm/barrier.h
6598 +++ b/arch/mips/include/asm/barrier.h
6599 @@ -133,7 +133,7 @@
6600 do { \
6601 compiletime_assert_atomic_type(*p); \
6602 smp_mb(); \
6603 - ACCESS_ONCE(*p) = (v); \
6604 + ACCESS_ONCE_RW(*p) = (v); \
6605 } while (0)
6606
6607 #define smp_load_acquire(p) \
6608 diff --git a/arch/mips/include/asm/cache.h b/arch/mips/include/asm/cache.h
6609 index b4db69f..8f3b093 100644
6610 --- a/arch/mips/include/asm/cache.h
6611 +++ b/arch/mips/include/asm/cache.h
6612 @@ -9,10 +9,11 @@
6613 #ifndef _ASM_CACHE_H
6614 #define _ASM_CACHE_H
6615
6616 +#include <linux/const.h>
6617 #include <kmalloc.h>
6618
6619 #define L1_CACHE_SHIFT CONFIG_MIPS_L1_CACHE_SHIFT
6620 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
6621 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
6622
6623 #define SMP_CACHE_SHIFT L1_CACHE_SHIFT
6624 #define SMP_CACHE_BYTES L1_CACHE_BYTES
6625 diff --git a/arch/mips/include/asm/elf.h b/arch/mips/include/asm/elf.h
6626 index f19e890..a4f8177 100644
6627 --- a/arch/mips/include/asm/elf.h
6628 +++ b/arch/mips/include/asm/elf.h
6629 @@ -417,6 +417,13 @@ extern const char *__elf_platform;
6630 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
6631 #endif
6632
6633 +#ifdef CONFIG_PAX_ASLR
6634 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6635 +
6636 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6637 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6638 +#endif
6639 +
6640 #define ARCH_HAS_SETUP_ADDITIONAL_PAGES 1
6641 struct linux_binprm;
6642 extern int arch_setup_additional_pages(struct linux_binprm *bprm,
6643 diff --git a/arch/mips/include/asm/exec.h b/arch/mips/include/asm/exec.h
6644 index c1f6afa..38cc6e9 100644
6645 --- a/arch/mips/include/asm/exec.h
6646 +++ b/arch/mips/include/asm/exec.h
6647 @@ -12,6 +12,6 @@
6648 #ifndef _ASM_EXEC_H
6649 #define _ASM_EXEC_H
6650
6651 -extern unsigned long arch_align_stack(unsigned long sp);
6652 +#define arch_align_stack(x) ((x) & ~0xfUL)
6653
6654 #endif /* _ASM_EXEC_H */
6655 diff --git a/arch/mips/include/asm/hw_irq.h b/arch/mips/include/asm/hw_irq.h
6656 index 9e8ef59..1139d6b 100644
6657 --- a/arch/mips/include/asm/hw_irq.h
6658 +++ b/arch/mips/include/asm/hw_irq.h
6659 @@ -10,7 +10,7 @@
6660
6661 #include <linux/atomic.h>
6662
6663 -extern atomic_t irq_err_count;
6664 +extern atomic_unchecked_t irq_err_count;
6665
6666 /*
6667 * interrupt-retrigger: NOP for now. This may not be appropriate for all
6668 diff --git a/arch/mips/include/asm/local.h b/arch/mips/include/asm/local.h
6669 index 8feaed6..1bd8a64 100644
6670 --- a/arch/mips/include/asm/local.h
6671 +++ b/arch/mips/include/asm/local.h
6672 @@ -13,15 +13,25 @@ typedef struct
6673 atomic_long_t a;
6674 } local_t;
6675
6676 +typedef struct {
6677 + atomic_long_unchecked_t a;
6678 +} local_unchecked_t;
6679 +
6680 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
6681
6682 #define local_read(l) atomic_long_read(&(l)->a)
6683 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
6684 #define local_set(l, i) atomic_long_set(&(l)->a, (i))
6685 +#define local_set_unchecked(l, i) atomic_long_set_unchecked(&(l)->a, (i))
6686
6687 #define local_add(i, l) atomic_long_add((i), (&(l)->a))
6688 +#define local_add_unchecked(i, l) atomic_long_add_unchecked((i), (&(l)->a))
6689 #define local_sub(i, l) atomic_long_sub((i), (&(l)->a))
6690 +#define local_sub_unchecked(i, l) atomic_long_sub_unchecked((i), (&(l)->a))
6691 #define local_inc(l) atomic_long_inc(&(l)->a)
6692 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
6693 #define local_dec(l) atomic_long_dec(&(l)->a)
6694 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
6695
6696 /*
6697 * Same as above, but return the result value
6698 @@ -71,6 +81,51 @@ static __inline__ long local_add_return(long i, local_t * l)
6699 return result;
6700 }
6701
6702 +static __inline__ long local_add_return_unchecked(long i, local_unchecked_t * l)
6703 +{
6704 + unsigned long result;
6705 +
6706 + if (kernel_uses_llsc && R10000_LLSC_WAR) {
6707 + unsigned long temp;
6708 +
6709 + __asm__ __volatile__(
6710 + " .set mips3 \n"
6711 + "1:" __LL "%1, %2 # local_add_return \n"
6712 + " addu %0, %1, %3 \n"
6713 + __SC "%0, %2 \n"
6714 + " beqzl %0, 1b \n"
6715 + " addu %0, %1, %3 \n"
6716 + " .set mips0 \n"
6717 + : "=&r" (result), "=&r" (temp), "=m" (l->a.counter)
6718 + : "Ir" (i), "m" (l->a.counter)
6719 + : "memory");
6720 + } else if (kernel_uses_llsc) {
6721 + unsigned long temp;
6722 +
6723 + __asm__ __volatile__(
6724 + " .set mips3 \n"
6725 + "1:" __LL "%1, %2 # local_add_return \n"
6726 + " addu %0, %1, %3 \n"
6727 + __SC "%0, %2 \n"
6728 + " beqz %0, 1b \n"
6729 + " addu %0, %1, %3 \n"
6730 + " .set mips0 \n"
6731 + : "=&r" (result), "=&r" (temp), "=m" (l->a.counter)
6732 + : "Ir" (i), "m" (l->a.counter)
6733 + : "memory");
6734 + } else {
6735 + unsigned long flags;
6736 +
6737 + local_irq_save(flags);
6738 + result = l->a.counter;
6739 + result += i;
6740 + l->a.counter = result;
6741 + local_irq_restore(flags);
6742 + }
6743 +
6744 + return result;
6745 +}
6746 +
6747 static __inline__ long local_sub_return(long i, local_t * l)
6748 {
6749 unsigned long result;
6750 @@ -118,6 +173,8 @@ static __inline__ long local_sub_return(long i, local_t * l)
6751
6752 #define local_cmpxchg(l, o, n) \
6753 ((long)cmpxchg_local(&((l)->a.counter), (o), (n)))
6754 +#define local_cmpxchg_unchecked(l, o, n) \
6755 + ((long)cmpxchg_local(&((l)->a.counter), (o), (n)))
6756 #define local_xchg(l, n) (atomic_long_xchg((&(l)->a), (n)))
6757
6758 /**
6759 diff --git a/arch/mips/include/asm/page.h b/arch/mips/include/asm/page.h
6760 index 89dd7fe..a123c97 100644
6761 --- a/arch/mips/include/asm/page.h
6762 +++ b/arch/mips/include/asm/page.h
6763 @@ -118,7 +118,7 @@ extern void copy_user_highpage(struct page *to, struct page *from,
6764 #ifdef CONFIG_CPU_MIPS32
6765 typedef struct { unsigned long pte_low, pte_high; } pte_t;
6766 #define pte_val(x) ((x).pte_low | ((unsigned long long)(x).pte_high << 32))
6767 - #define __pte(x) ({ pte_t __pte = {(x), ((unsigned long long)(x)) >> 32}; __pte; })
6768 + #define __pte(x) ({ pte_t __pte = {(x), (x) >> 32}; __pte; })
6769 #else
6770 typedef struct { unsigned long long pte; } pte_t;
6771 #define pte_val(x) ((x).pte)
6772 diff --git a/arch/mips/include/asm/pgalloc.h b/arch/mips/include/asm/pgalloc.h
6773 index b336037..5b874cc 100644
6774 --- a/arch/mips/include/asm/pgalloc.h
6775 +++ b/arch/mips/include/asm/pgalloc.h
6776 @@ -37,6 +37,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
6777 {
6778 set_pud(pud, __pud((unsigned long)pmd));
6779 }
6780 +
6781 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
6782 +{
6783 + pud_populate(mm, pud, pmd);
6784 +}
6785 #endif
6786
6787 /*
6788 diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h
6789 index ae85694..4cdbba8 100644
6790 --- a/arch/mips/include/asm/pgtable.h
6791 +++ b/arch/mips/include/asm/pgtable.h
6792 @@ -20,6 +20,9 @@
6793 #include <asm/io.h>
6794 #include <asm/pgtable-bits.h>
6795
6796 +#define ktla_ktva(addr) (addr)
6797 +#define ktva_ktla(addr) (addr)
6798 +
6799 struct mm_struct;
6800 struct vm_area_struct;
6801
6802 diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
6803 index 9c0014e..5101ef5 100644
6804 --- a/arch/mips/include/asm/thread_info.h
6805 +++ b/arch/mips/include/asm/thread_info.h
6806 @@ -100,6 +100,9 @@ static inline struct thread_info *current_thread_info(void)
6807 #define TIF_SECCOMP 4 /* secure computing */
6808 #define TIF_NOTIFY_RESUME 5 /* callback before returning to user */
6809 #define TIF_RESTORE_SIGMASK 9 /* restore signal mask in do_signal() */
6810 +/* li takes a 32bit immediate */
6811 +#define TIF_GRSEC_SETXID 10 /* update credentials on syscall entry/exit */
6812 +
6813 #define TIF_USEDFPU 16 /* FPU was used by this task this quantum (SMP) */
6814 #define TIF_MEMDIE 18 /* is terminating due to OOM killer */
6815 #define TIF_NOHZ 19 /* in adaptive nohz mode */
6816 @@ -135,14 +138,16 @@ static inline struct thread_info *current_thread_info(void)
6817 #define _TIF_USEDMSA (1<<TIF_USEDMSA)
6818 #define _TIF_MSA_CTX_LIVE (1<<TIF_MSA_CTX_LIVE)
6819 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
6820 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
6821
6822 #define _TIF_WORK_SYSCALL_ENTRY (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
6823 _TIF_SYSCALL_AUDIT | \
6824 - _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP)
6825 + _TIF_SYSCALL_TRACEPOINT | _TIF_SECCOMP | \
6826 + _TIF_GRSEC_SETXID)
6827
6828 /* work to do in syscall_trace_leave() */
6829 #define _TIF_WORK_SYSCALL_EXIT (_TIF_NOHZ | _TIF_SYSCALL_TRACE | \
6830 - _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT)
6831 + _TIF_SYSCALL_AUDIT | _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
6832
6833 /* work to do on interrupt/exception return */
6834 #define _TIF_WORK_MASK \
6835 @@ -150,7 +155,7 @@ static inline struct thread_info *current_thread_info(void)
6836 /* work to do on any return to u-space */
6837 #define _TIF_ALLWORK_MASK (_TIF_NOHZ | _TIF_WORK_MASK | \
6838 _TIF_WORK_SYSCALL_EXIT | \
6839 - _TIF_SYSCALL_TRACEPOINT)
6840 + _TIF_SYSCALL_TRACEPOINT | _TIF_GRSEC_SETXID)
6841
6842 /*
6843 * We stash processor id into a COP0 register to retrieve it fast
6844 diff --git a/arch/mips/include/asm/uaccess.h b/arch/mips/include/asm/uaccess.h
6845 index 5305d69..1da2bf5 100644
6846 --- a/arch/mips/include/asm/uaccess.h
6847 +++ b/arch/mips/include/asm/uaccess.h
6848 @@ -146,6 +146,7 @@ static inline bool eva_kernel_access(void)
6849 __ok == 0; \
6850 })
6851
6852 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
6853 #define access_ok(type, addr, size) \
6854 likely(__access_ok((addr), (size), __access_mask))
6855
6856 diff --git a/arch/mips/kernel/binfmt_elfn32.c b/arch/mips/kernel/binfmt_elfn32.c
6857 index 1188e00..41cf144 100644
6858 --- a/arch/mips/kernel/binfmt_elfn32.c
6859 +++ b/arch/mips/kernel/binfmt_elfn32.c
6860 @@ -50,6 +50,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
6861 #undef ELF_ET_DYN_BASE
6862 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
6863
6864 +#ifdef CONFIG_PAX_ASLR
6865 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6866 +
6867 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6868 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6869 +#endif
6870 +
6871 #include <asm/processor.h>
6872 #include <linux/module.h>
6873 #include <linux/elfcore.h>
6874 diff --git a/arch/mips/kernel/binfmt_elfo32.c b/arch/mips/kernel/binfmt_elfo32.c
6875 index 9287678..f870e47 100644
6876 --- a/arch/mips/kernel/binfmt_elfo32.c
6877 +++ b/arch/mips/kernel/binfmt_elfo32.c
6878 @@ -70,6 +70,13 @@ typedef elf_fpreg_t elf_fpregset_t[ELF_NFPREG];
6879 #undef ELF_ET_DYN_BASE
6880 #define ELF_ET_DYN_BASE (TASK32_SIZE / 3 * 2)
6881
6882 +#ifdef CONFIG_PAX_ASLR
6883 +#define PAX_ELF_ET_DYN_BASE (TASK_IS_32BIT_ADDR ? 0x00400000UL : 0x00400000UL)
6884 +
6885 +#define PAX_DELTA_MMAP_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6886 +#define PAX_DELTA_STACK_LEN (TASK_IS_32BIT_ADDR ? 27-PAGE_SHIFT : 36-PAGE_SHIFT)
6887 +#endif
6888 +
6889 #include <asm/processor.h>
6890
6891 #include <linux/module.h>
6892 diff --git a/arch/mips/kernel/i8259.c b/arch/mips/kernel/i8259.c
6893 index 74f6752..f3d7a47 100644
6894 --- a/arch/mips/kernel/i8259.c
6895 +++ b/arch/mips/kernel/i8259.c
6896 @@ -205,7 +205,7 @@ spurious_8259A_irq:
6897 printk(KERN_DEBUG "spurious 8259A interrupt: IRQ%d.\n", irq);
6898 spurious_irq_mask |= irqmask;
6899 }
6900 - atomic_inc(&irq_err_count);
6901 + atomic_inc_unchecked(&irq_err_count);
6902 /*
6903 * Theoretically we do not have to handle this IRQ,
6904 * but in Linux this does not cause problems and is
6905 diff --git a/arch/mips/kernel/irq-gt641xx.c b/arch/mips/kernel/irq-gt641xx.c
6906 index 44a1f79..2bd6aa3 100644
6907 --- a/arch/mips/kernel/irq-gt641xx.c
6908 +++ b/arch/mips/kernel/irq-gt641xx.c
6909 @@ -110,7 +110,7 @@ void gt641xx_irq_dispatch(void)
6910 }
6911 }
6912
6913 - atomic_inc(&irq_err_count);
6914 + atomic_inc_unchecked(&irq_err_count);
6915 }
6916
6917 void __init gt641xx_irq_init(void)
6918 diff --git a/arch/mips/kernel/irq.c b/arch/mips/kernel/irq.c
6919 index 8eb5af8..2baf465 100644
6920 --- a/arch/mips/kernel/irq.c
6921 +++ b/arch/mips/kernel/irq.c
6922 @@ -34,17 +34,17 @@ void ack_bad_irq(unsigned int irq)
6923 printk("unexpected IRQ # %d\n", irq);
6924 }
6925
6926 -atomic_t irq_err_count;
6927 +atomic_unchecked_t irq_err_count;
6928
6929 int arch_show_interrupts(struct seq_file *p, int prec)
6930 {
6931 - seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count));
6932 + seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read_unchecked(&irq_err_count));
6933 return 0;
6934 }
6935
6936 asmlinkage void spurious_interrupt(void)
6937 {
6938 - atomic_inc(&irq_err_count);
6939 + atomic_inc_unchecked(&irq_err_count);
6940 }
6941
6942 void __init init_IRQ(void)
6943 @@ -58,6 +58,8 @@ void __init init_IRQ(void)
6944 }
6945
6946 #ifdef CONFIG_DEBUG_STACKOVERFLOW
6947 +
6948 +extern void gr_handle_kernel_exploit(void);
6949 static inline void check_stack_overflow(void)
6950 {
6951 unsigned long sp;
6952 @@ -73,6 +75,7 @@ static inline void check_stack_overflow(void)
6953 printk("do_IRQ: stack overflow: %ld\n",
6954 sp - sizeof(struct thread_info));
6955 dump_stack();
6956 + gr_handle_kernel_exploit();
6957 }
6958 }
6959 #else
6960 diff --git a/arch/mips/kernel/pm-cps.c b/arch/mips/kernel/pm-cps.c
6961 index 0614717..002fa43 100644
6962 --- a/arch/mips/kernel/pm-cps.c
6963 +++ b/arch/mips/kernel/pm-cps.c
6964 @@ -172,7 +172,7 @@ int cps_pm_enter_state(enum cps_pm_state state)
6965 nc_core_ready_count = nc_addr;
6966
6967 /* Ensure ready_count is zero-initialised before the assembly runs */
6968 - ACCESS_ONCE(*nc_core_ready_count) = 0;
6969 + ACCESS_ONCE_RW(*nc_core_ready_count) = 0;
6970 coupled_barrier(&per_cpu(pm_barrier, core), online);
6971
6972 /* Run the generated entry code */
6973 diff --git a/arch/mips/kernel/process.c b/arch/mips/kernel/process.c
6974 index f2975d4..f61d355 100644
6975 --- a/arch/mips/kernel/process.c
6976 +++ b/arch/mips/kernel/process.c
6977 @@ -541,18 +541,6 @@ out:
6978 return pc;
6979 }
6980
6981 -/*
6982 - * Don't forget that the stack pointer must be aligned on a 8 bytes
6983 - * boundary for 32-bits ABI and 16 bytes for 64-bits ABI.
6984 - */
6985 -unsigned long arch_align_stack(unsigned long sp)
6986 -{
6987 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
6988 - sp -= get_random_int() & ~PAGE_MASK;
6989 -
6990 - return sp & ALMASK;
6991 -}
6992 -
6993 static void arch_dump_stack(void *info)
6994 {
6995 struct pt_regs *regs;
6996 diff --git a/arch/mips/kernel/ptrace.c b/arch/mips/kernel/ptrace.c
6997 index e933a30..0d02625 100644
6998 --- a/arch/mips/kernel/ptrace.c
6999 +++ b/arch/mips/kernel/ptrace.c
7000 @@ -785,6 +785,10 @@ long arch_ptrace(struct task_struct *child, long request,
7001 return ret;
7002 }
7003
7004 +#ifdef CONFIG_GRKERNSEC_SETXID
7005 +extern void gr_delayed_cred_worker(void);
7006 +#endif
7007 +
7008 /*
7009 * Notification of system call entry/exit
7010 * - triggered by current->work.syscall_trace
7011 @@ -803,6 +807,11 @@ asmlinkage long syscall_trace_enter(struct pt_regs *regs, long syscall)
7012 tracehook_report_syscall_entry(regs))
7013 ret = -1;
7014
7015 +#ifdef CONFIG_GRKERNSEC_SETXID
7016 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
7017 + gr_delayed_cred_worker();
7018 +#endif
7019 +
7020 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
7021 trace_sys_enter(regs, regs->regs[2]);
7022
7023 diff --git a/arch/mips/kernel/sync-r4k.c b/arch/mips/kernel/sync-r4k.c
7024 index 2242bdd..b284048 100644
7025 --- a/arch/mips/kernel/sync-r4k.c
7026 +++ b/arch/mips/kernel/sync-r4k.c
7027 @@ -18,8 +18,8 @@
7028 #include <asm/mipsregs.h>
7029
7030 static atomic_t count_start_flag = ATOMIC_INIT(0);
7031 -static atomic_t count_count_start = ATOMIC_INIT(0);
7032 -static atomic_t count_count_stop = ATOMIC_INIT(0);
7033 +static atomic_unchecked_t count_count_start = ATOMIC_INIT(0);
7034 +static atomic_unchecked_t count_count_stop = ATOMIC_INIT(0);
7035 static atomic_t count_reference = ATOMIC_INIT(0);
7036
7037 #define COUNTON 100
7038 @@ -58,13 +58,13 @@ void synchronise_count_master(int cpu)
7039
7040 for (i = 0; i < NR_LOOPS; i++) {
7041 /* slaves loop on '!= 2' */
7042 - while (atomic_read(&count_count_start) != 1)
7043 + while (atomic_read_unchecked(&count_count_start) != 1)
7044 mb();
7045 - atomic_set(&count_count_stop, 0);
7046 + atomic_set_unchecked(&count_count_stop, 0);
7047 smp_wmb();
7048
7049 /* this lets the slaves write their count register */
7050 - atomic_inc(&count_count_start);
7051 + atomic_inc_unchecked(&count_count_start);
7052
7053 /*
7054 * Everyone initialises count in the last loop:
7055 @@ -75,11 +75,11 @@ void synchronise_count_master(int cpu)
7056 /*
7057 * Wait for all slaves to leave the synchronization point:
7058 */
7059 - while (atomic_read(&count_count_stop) != 1)
7060 + while (atomic_read_unchecked(&count_count_stop) != 1)
7061 mb();
7062 - atomic_set(&count_count_start, 0);
7063 + atomic_set_unchecked(&count_count_start, 0);
7064 smp_wmb();
7065 - atomic_inc(&count_count_stop);
7066 + atomic_inc_unchecked(&count_count_stop);
7067 }
7068 /* Arrange for an interrupt in a short while */
7069 write_c0_compare(read_c0_count() + COUNTON);
7070 @@ -112,8 +112,8 @@ void synchronise_count_slave(int cpu)
7071 initcount = atomic_read(&count_reference);
7072
7073 for (i = 0; i < NR_LOOPS; i++) {
7074 - atomic_inc(&count_count_start);
7075 - while (atomic_read(&count_count_start) != 2)
7076 + atomic_inc_unchecked(&count_count_start);
7077 + while (atomic_read_unchecked(&count_count_start) != 2)
7078 mb();
7079
7080 /*
7081 @@ -122,8 +122,8 @@ void synchronise_count_slave(int cpu)
7082 if (i == NR_LOOPS-1)
7083 write_c0_count(initcount);
7084
7085 - atomic_inc(&count_count_stop);
7086 - while (atomic_read(&count_count_stop) != 2)
7087 + atomic_inc_unchecked(&count_count_stop);
7088 + while (atomic_read_unchecked(&count_count_stop) != 2)
7089 mb();
7090 }
7091 /* Arrange for an interrupt in a short while */
7092 diff --git a/arch/mips/kernel/traps.c b/arch/mips/kernel/traps.c
7093 index 8ea28e6..c8873d5 100644
7094 --- a/arch/mips/kernel/traps.c
7095 +++ b/arch/mips/kernel/traps.c
7096 @@ -697,7 +697,18 @@ asmlinkage void do_ov(struct pt_regs *regs)
7097 siginfo_t info;
7098
7099 prev_state = exception_enter();
7100 - die_if_kernel("Integer overflow", regs);
7101 + if (unlikely(!user_mode(regs))) {
7102 +
7103 +#ifdef CONFIG_PAX_REFCOUNT
7104 + if (fixup_exception(regs)) {
7105 + pax_report_refcount_overflow(regs);
7106 + exception_exit(prev_state);
7107 + return;
7108 + }
7109 +#endif
7110 +
7111 + die("Integer overflow", regs);
7112 + }
7113
7114 info.si_code = FPE_INTOVF;
7115 info.si_signo = SIGFPE;
7116 diff --git a/arch/mips/kvm/mips.c b/arch/mips/kvm/mips.c
7117 index cd4c129..290c518 100644
7118 --- a/arch/mips/kvm/mips.c
7119 +++ b/arch/mips/kvm/mips.c
7120 @@ -1016,7 +1016,7 @@ long kvm_arch_vm_ioctl(struct file *filp, unsigned int ioctl, unsigned long arg)
7121 return r;
7122 }
7123
7124 -int kvm_arch_init(void *opaque)
7125 +int kvm_arch_init(const void *opaque)
7126 {
7127 if (kvm_mips_callbacks) {
7128 kvm_err("kvm: module already exists\n");
7129 diff --git a/arch/mips/mm/fault.c b/arch/mips/mm/fault.c
7130 index 852a41c..75b9d38 100644
7131 --- a/arch/mips/mm/fault.c
7132 +++ b/arch/mips/mm/fault.c
7133 @@ -31,6 +31,23 @@
7134
7135 int show_unhandled_signals = 1;
7136
7137 +#ifdef CONFIG_PAX_PAGEEXEC
7138 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
7139 +{
7140 + unsigned long i;
7141 +
7142 + printk(KERN_ERR "PAX: bytes at PC: ");
7143 + for (i = 0; i < 5; i++) {
7144 + unsigned int c;
7145 + if (get_user(c, (unsigned int *)pc+i))
7146 + printk(KERN_CONT "???????? ");
7147 + else
7148 + printk(KERN_CONT "%08x ", c);
7149 + }
7150 + printk("\n");
7151 +}
7152 +#endif
7153 +
7154 /*
7155 * This routine handles page faults. It determines the address,
7156 * and the problem, and then passes it off to one of the appropriate
7157 @@ -207,6 +224,14 @@ bad_area:
7158 bad_area_nosemaphore:
7159 /* User mode accesses just cause a SIGSEGV */
7160 if (user_mode(regs)) {
7161 +
7162 +#ifdef CONFIG_PAX_PAGEEXEC
7163 + if (cpu_has_rixi && (mm->pax_flags & MF_PAX_PAGEEXEC) && !write && address == instruction_pointer(regs)) {
7164 + pax_report_fault(regs, (void *)address, (void *)user_stack_pointer(regs));
7165 + do_group_exit(SIGKILL);
7166 + }
7167 +#endif
7168 +
7169 tsk->thread.cp0_badvaddr = address;
7170 tsk->thread.error_code = write;
7171 if (show_unhandled_signals &&
7172 diff --git a/arch/mips/mm/mmap.c b/arch/mips/mm/mmap.c
7173 index 5c81fdd..db158d3 100644
7174 --- a/arch/mips/mm/mmap.c
7175 +++ b/arch/mips/mm/mmap.c
7176 @@ -59,6 +59,7 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
7177 struct vm_area_struct *vma;
7178 unsigned long addr = addr0;
7179 int do_color_align;
7180 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
7181 struct vm_unmapped_area_info info;
7182
7183 if (unlikely(len > TASK_SIZE))
7184 @@ -84,6 +85,11 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
7185 do_color_align = 1;
7186
7187 /* requesting a specific address */
7188 +
7189 +#ifdef CONFIG_PAX_RANDMMAP
7190 + if (!(current->mm->pax_flags & MF_PAX_RANDMMAP))
7191 +#endif
7192 +
7193 if (addr) {
7194 if (do_color_align)
7195 addr = COLOUR_ALIGN(addr, pgoff);
7196 @@ -91,14 +97,14 @@ static unsigned long arch_get_unmapped_area_common(struct file *filp,
7197 addr = PAGE_ALIGN(addr);
7198
7199 vma = find_vma(mm, addr);
7200 - if (TASK_SIZE - len >= addr &&
7201 - (!vma || addr + len <= vma->vm_start))
7202 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
7203 return addr;
7204 }
7205
7206 info.length = len;
7207 info.align_mask = do_color_align ? (PAGE_MASK & shm_align_mask) : 0;
7208 info.align_offset = pgoff << PAGE_SHIFT;
7209 + info.threadstack_offset = offset;
7210
7211 if (dir == DOWN) {
7212 info.flags = VM_UNMAPPED_AREA_TOPDOWN;
7213 @@ -160,45 +166,34 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
7214 {
7215 unsigned long random_factor = 0UL;
7216
7217 +#ifdef CONFIG_PAX_RANDMMAP
7218 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
7219 +#endif
7220 +
7221 if (current->flags & PF_RANDOMIZE)
7222 random_factor = arch_mmap_rnd();
7223
7224 if (mmap_is_legacy()) {
7225 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
7226 +
7227 +#ifdef CONFIG_PAX_RANDMMAP
7228 + if (mm->pax_flags & MF_PAX_RANDMMAP)
7229 + mm->mmap_base += mm->delta_mmap;
7230 +#endif
7231 +
7232 mm->get_unmapped_area = arch_get_unmapped_area;
7233 } else {
7234 mm->mmap_base = mmap_base(random_factor);
7235 +
7236 +#ifdef CONFIG_PAX_RANDMMAP
7237 + if (mm->pax_flags & MF_PAX_RANDMMAP)
7238 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
7239 +#endif
7240 +
7241 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
7242 }
7243 }
7244
7245 -static inline unsigned long brk_rnd(void)
7246 -{
7247 - unsigned long rnd = get_random_int();
7248 -
7249 - rnd = rnd << PAGE_SHIFT;
7250 - /* 8MB for 32bit, 256MB for 64bit */
7251 - if (TASK_IS_32BIT_ADDR)
7252 - rnd = rnd & 0x7ffffful;
7253 - else
7254 - rnd = rnd & 0xffffffful;
7255 -
7256 - return rnd;
7257 -}
7258 -
7259 -unsigned long arch_randomize_brk(struct mm_struct *mm)
7260 -{
7261 - unsigned long base = mm->brk;
7262 - unsigned long ret;
7263 -
7264 - ret = PAGE_ALIGN(base + brk_rnd());
7265 -
7266 - if (ret < mm->brk)
7267 - return mm->brk;
7268 -
7269 - return ret;
7270 -}
7271 -
7272 int __virt_addr_valid(const volatile void *kaddr)
7273 {
7274 return pfn_valid(PFN_DOWN(virt_to_phys(kaddr)));
7275 diff --git a/arch/mips/net/bpf_jit_asm.S b/arch/mips/net/bpf_jit_asm.S
7276 index dabf417..0be1d6d 100644
7277 --- a/arch/mips/net/bpf_jit_asm.S
7278 +++ b/arch/mips/net/bpf_jit_asm.S
7279 @@ -62,7 +62,9 @@ sk_load_word_positive:
7280 is_offset_in_header(4, word)
7281 /* Offset within header boundaries */
7282 PTR_ADDU t1, $r_skb_data, offset
7283 + .set reorder
7284 lw $r_A, 0(t1)
7285 + .set noreorder
7286 #ifdef CONFIG_CPU_LITTLE_ENDIAN
7287 # if defined(__mips_isa_rev) && (__mips_isa_rev >= 2)
7288 wsbh t0, $r_A
7289 @@ -90,7 +92,9 @@ sk_load_half_positive:
7290 is_offset_in_header(2, half)
7291 /* Offset within header boundaries */
7292 PTR_ADDU t1, $r_skb_data, offset
7293 + .set reorder
7294 lh $r_A, 0(t1)
7295 + .set noreorder
7296 #ifdef CONFIG_CPU_LITTLE_ENDIAN
7297 # if defined(__mips_isa_rev) && (__mips_isa_rev >= 2)
7298 wsbh t0, $r_A
7299 diff --git a/arch/mips/sgi-ip27/ip27-nmi.c b/arch/mips/sgi-ip27/ip27-nmi.c
7300 index a2358b4..7cead4f 100644
7301 --- a/arch/mips/sgi-ip27/ip27-nmi.c
7302 +++ b/arch/mips/sgi-ip27/ip27-nmi.c
7303 @@ -187,9 +187,9 @@ void
7304 cont_nmi_dump(void)
7305 {
7306 #ifndef REAL_NMI_SIGNAL
7307 - static atomic_t nmied_cpus = ATOMIC_INIT(0);
7308 + static atomic_unchecked_t nmied_cpus = ATOMIC_INIT(0);
7309
7310 - atomic_inc(&nmied_cpus);
7311 + atomic_inc_unchecked(&nmied_cpus);
7312 #endif
7313 /*
7314 * Only allow 1 cpu to proceed
7315 @@ -233,7 +233,7 @@ cont_nmi_dump(void)
7316 udelay(10000);
7317 }
7318 #else
7319 - while (atomic_read(&nmied_cpus) != num_online_cpus());
7320 + while (atomic_read_unchecked(&nmied_cpus) != num_online_cpus());
7321 #endif
7322
7323 /*
7324 diff --git a/arch/mips/sni/rm200.c b/arch/mips/sni/rm200.c
7325 index a046b30..6799527 100644
7326 --- a/arch/mips/sni/rm200.c
7327 +++ b/arch/mips/sni/rm200.c
7328 @@ -270,7 +270,7 @@ spurious_8259A_irq:
7329 "spurious RM200 8259A interrupt: IRQ%d.\n", irq);
7330 spurious_irq_mask |= irqmask;
7331 }
7332 - atomic_inc(&irq_err_count);
7333 + atomic_inc_unchecked(&irq_err_count);
7334 /*
7335 * Theoretically we do not have to handle this IRQ,
7336 * but in Linux this does not cause problems and is
7337 diff --git a/arch/mips/vr41xx/common/icu.c b/arch/mips/vr41xx/common/icu.c
7338 index 41e873b..34d33a7 100644
7339 --- a/arch/mips/vr41xx/common/icu.c
7340 +++ b/arch/mips/vr41xx/common/icu.c
7341 @@ -653,7 +653,7 @@ static int icu_get_irq(unsigned int irq)
7342
7343 printk(KERN_ERR "spurious ICU interrupt: %04x,%04x\n", pend1, pend2);
7344
7345 - atomic_inc(&irq_err_count);
7346 + atomic_inc_unchecked(&irq_err_count);
7347
7348 return -1;
7349 }
7350 diff --git a/arch/mips/vr41xx/common/irq.c b/arch/mips/vr41xx/common/irq.c
7351 index ae0e4ee..e8f0692 100644
7352 --- a/arch/mips/vr41xx/common/irq.c
7353 +++ b/arch/mips/vr41xx/common/irq.c
7354 @@ -64,7 +64,7 @@ static void irq_dispatch(unsigned int irq)
7355 irq_cascade_t *cascade;
7356
7357 if (irq >= NR_IRQS) {
7358 - atomic_inc(&irq_err_count);
7359 + atomic_inc_unchecked(&irq_err_count);
7360 return;
7361 }
7362
7363 @@ -84,7 +84,7 @@ static void irq_dispatch(unsigned int irq)
7364 ret = cascade->get_irq(irq);
7365 irq = ret;
7366 if (ret < 0)
7367 - atomic_inc(&irq_err_count);
7368 + atomic_inc_unchecked(&irq_err_count);
7369 else
7370 irq_dispatch(irq);
7371 if (!irqd_irq_disabled(idata) && chip->irq_unmask)
7372 diff --git a/arch/mn10300/proc-mn103e010/include/proc/cache.h b/arch/mn10300/proc-mn103e010/include/proc/cache.h
7373 index 967d144..db12197 100644
7374 --- a/arch/mn10300/proc-mn103e010/include/proc/cache.h
7375 +++ b/arch/mn10300/proc-mn103e010/include/proc/cache.h
7376 @@ -11,12 +11,14 @@
7377 #ifndef _ASM_PROC_CACHE_H
7378 #define _ASM_PROC_CACHE_H
7379
7380 +#include <linux/const.h>
7381 +
7382 /* L1 cache */
7383
7384 #define L1_CACHE_NWAYS 4 /* number of ways in caches */
7385 #define L1_CACHE_NENTRIES 256 /* number of entries in each way */
7386 -#define L1_CACHE_BYTES 16 /* bytes per entry */
7387 #define L1_CACHE_SHIFT 4 /* shift for bytes per entry */
7388 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT) /* bytes per entry */
7389 #define L1_CACHE_WAYDISP 0x1000 /* displacement of one way from the next */
7390
7391 #define L1_CACHE_TAG_VALID 0x00000001 /* cache tag valid bit */
7392 diff --git a/arch/mn10300/proc-mn2ws0050/include/proc/cache.h b/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
7393 index bcb5df2..84fabd2 100644
7394 --- a/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
7395 +++ b/arch/mn10300/proc-mn2ws0050/include/proc/cache.h
7396 @@ -16,13 +16,15 @@
7397 #ifndef _ASM_PROC_CACHE_H
7398 #define _ASM_PROC_CACHE_H
7399
7400 +#include <linux/const.h>
7401 +
7402 /*
7403 * L1 cache
7404 */
7405 #define L1_CACHE_NWAYS 4 /* number of ways in caches */
7406 #define L1_CACHE_NENTRIES 128 /* number of entries in each way */
7407 -#define L1_CACHE_BYTES 32 /* bytes per entry */
7408 #define L1_CACHE_SHIFT 5 /* shift for bytes per entry */
7409 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT) /* bytes per entry */
7410 #define L1_CACHE_WAYDISP 0x1000 /* distance from one way to the next */
7411
7412 #define L1_CACHE_TAG_VALID 0x00000001 /* cache tag valid bit */
7413 diff --git a/arch/openrisc/include/asm/cache.h b/arch/openrisc/include/asm/cache.h
7414 index 4ce7a01..449202a 100644
7415 --- a/arch/openrisc/include/asm/cache.h
7416 +++ b/arch/openrisc/include/asm/cache.h
7417 @@ -19,11 +19,13 @@
7418 #ifndef __ASM_OPENRISC_CACHE_H
7419 #define __ASM_OPENRISC_CACHE_H
7420
7421 +#include <linux/const.h>
7422 +
7423 /* FIXME: How can we replace these with values from the CPU...
7424 * they shouldn't be hard-coded!
7425 */
7426
7427 -#define L1_CACHE_BYTES 16
7428 #define L1_CACHE_SHIFT 4
7429 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
7430
7431 #endif /* __ASM_OPENRISC_CACHE_H */
7432 diff --git a/arch/parisc/include/asm/atomic.h b/arch/parisc/include/asm/atomic.h
7433 index 226f8ca9..9d9b87d 100644
7434 --- a/arch/parisc/include/asm/atomic.h
7435 +++ b/arch/parisc/include/asm/atomic.h
7436 @@ -273,6 +273,16 @@ static inline long atomic64_dec_if_positive(atomic64_t *v)
7437 return dec;
7438 }
7439
7440 +#define atomic64_read_unchecked(v) atomic64_read(v)
7441 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
7442 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
7443 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
7444 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
7445 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
7446 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
7447 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
7448 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
7449 +
7450 #endif /* !CONFIG_64BIT */
7451
7452
7453 diff --git a/arch/parisc/include/asm/cache.h b/arch/parisc/include/asm/cache.h
7454 index 47f11c7..3420df2 100644
7455 --- a/arch/parisc/include/asm/cache.h
7456 +++ b/arch/parisc/include/asm/cache.h
7457 @@ -5,6 +5,7 @@
7458 #ifndef __ARCH_PARISC_CACHE_H
7459 #define __ARCH_PARISC_CACHE_H
7460
7461 +#include <linux/const.h>
7462
7463 /*
7464 * PA 2.0 processors have 64-byte cachelines; PA 1.1 processors have
7465 @@ -15,13 +16,13 @@
7466 * just ruin performance.
7467 */
7468 #ifdef CONFIG_PA20
7469 -#define L1_CACHE_BYTES 64
7470 #define L1_CACHE_SHIFT 6
7471 #else
7472 -#define L1_CACHE_BYTES 32
7473 #define L1_CACHE_SHIFT 5
7474 #endif
7475
7476 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
7477 +
7478 #ifndef __ASSEMBLY__
7479
7480 #define SMP_CACHE_BYTES L1_CACHE_BYTES
7481 diff --git a/arch/parisc/include/asm/elf.h b/arch/parisc/include/asm/elf.h
7482 index 78c9fd3..42fa66a 100644
7483 --- a/arch/parisc/include/asm/elf.h
7484 +++ b/arch/parisc/include/asm/elf.h
7485 @@ -342,6 +342,13 @@ struct pt_regs; /* forward declaration... */
7486
7487 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE + 0x01000000)
7488
7489 +#ifdef CONFIG_PAX_ASLR
7490 +#define PAX_ELF_ET_DYN_BASE 0x10000UL
7491 +
7492 +#define PAX_DELTA_MMAP_LEN 16
7493 +#define PAX_DELTA_STACK_LEN 16
7494 +#endif
7495 +
7496 /* This yields a mask that user programs can use to figure out what
7497 instruction set this CPU supports. This could be done in user space,
7498 but it's not easy, and we've already done it here. */
7499 diff --git a/arch/parisc/include/asm/pgalloc.h b/arch/parisc/include/asm/pgalloc.h
7500 index 3edbb9f..08fef28 100644
7501 --- a/arch/parisc/include/asm/pgalloc.h
7502 +++ b/arch/parisc/include/asm/pgalloc.h
7503 @@ -61,6 +61,11 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
7504 (__u32)(__pa((unsigned long)pmd) >> PxD_VALUE_SHIFT));
7505 }
7506
7507 +static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmd)
7508 +{
7509 + pgd_populate(mm, pgd, pmd);
7510 +}
7511 +
7512 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm, unsigned long address)
7513 {
7514 pmd_t *pmd = (pmd_t *)__get_free_pages(GFP_KERNEL|__GFP_REPEAT,
7515 @@ -97,6 +102,7 @@ static inline void pmd_free(struct mm_struct *mm, pmd_t *pmd)
7516 #define pmd_alloc_one(mm, addr) ({ BUG(); ((pmd_t *)2); })
7517 #define pmd_free(mm, x) do { } while (0)
7518 #define pgd_populate(mm, pmd, pte) BUG()
7519 +#define pgd_populate_kernel(mm, pmd, pte) BUG()
7520
7521 #endif
7522
7523 diff --git a/arch/parisc/include/asm/pgtable.h b/arch/parisc/include/asm/pgtable.h
7524 index f93c4a4..cfd5663 100644
7525 --- a/arch/parisc/include/asm/pgtable.h
7526 +++ b/arch/parisc/include/asm/pgtable.h
7527 @@ -231,6 +231,17 @@ static inline void purge_tlb_entries(struct mm_struct *mm, unsigned long addr)
7528 #define PAGE_EXECREAD __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_EXEC |_PAGE_ACCESSED)
7529 #define PAGE_COPY PAGE_EXECREAD
7530 #define PAGE_RWX __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_EXEC |_PAGE_ACCESSED)
7531 +
7532 +#ifdef CONFIG_PAX_PAGEEXEC
7533 +# define PAGE_SHARED_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_WRITE | _PAGE_ACCESSED)
7534 +# define PAGE_COPY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_ACCESSED)
7535 +# define PAGE_READONLY_NOEXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | _PAGE_READ | _PAGE_ACCESSED)
7536 +#else
7537 +# define PAGE_SHARED_NOEXEC PAGE_SHARED
7538 +# define PAGE_COPY_NOEXEC PAGE_COPY
7539 +# define PAGE_READONLY_NOEXEC PAGE_READONLY
7540 +#endif
7541 +
7542 #define PAGE_KERNEL __pgprot(_PAGE_KERNEL)
7543 #define PAGE_KERNEL_EXEC __pgprot(_PAGE_KERNEL_EXEC)
7544 #define PAGE_KERNEL_RWX __pgprot(_PAGE_KERNEL_RWX)
7545 diff --git a/arch/parisc/include/asm/uaccess.h b/arch/parisc/include/asm/uaccess.h
7546 index 0abdd4c..1af92f0 100644
7547 --- a/arch/parisc/include/asm/uaccess.h
7548 +++ b/arch/parisc/include/asm/uaccess.h
7549 @@ -243,10 +243,10 @@ static inline unsigned long __must_check copy_from_user(void *to,
7550 const void __user *from,
7551 unsigned long n)
7552 {
7553 - int sz = __compiletime_object_size(to);
7554 + size_t sz = __compiletime_object_size(to);
7555 int ret = -EFAULT;
7556
7557 - if (likely(sz == -1 || !__builtin_constant_p(n) || sz >= n))
7558 + if (likely(sz == (size_t)-1 || !__builtin_constant_p(n) || sz >= n))
7559 ret = __copy_from_user(to, from, n);
7560 else
7561 copy_from_user_overflow();
7562 diff --git a/arch/parisc/kernel/module.c b/arch/parisc/kernel/module.c
7563 index 3c63a82..b1d6ee9 100644
7564 --- a/arch/parisc/kernel/module.c
7565 +++ b/arch/parisc/kernel/module.c
7566 @@ -98,16 +98,38 @@
7567
7568 /* three functions to determine where in the module core
7569 * or init pieces the location is */
7570 +static inline int in_init_rx(struct module *me, void *loc)
7571 +{
7572 + return (loc >= me->module_init_rx &&
7573 + loc < (me->module_init_rx + me->init_size_rx));
7574 +}
7575 +
7576 +static inline int in_init_rw(struct module *me, void *loc)
7577 +{
7578 + return (loc >= me->module_init_rw &&
7579 + loc < (me->module_init_rw + me->init_size_rw));
7580 +}
7581 +
7582 static inline int in_init(struct module *me, void *loc)
7583 {
7584 - return (loc >= me->module_init &&
7585 - loc <= (me->module_init + me->init_size));
7586 + return in_init_rx(me, loc) || in_init_rw(me, loc);
7587 +}
7588 +
7589 +static inline int in_core_rx(struct module *me, void *loc)
7590 +{
7591 + return (loc >= me->module_core_rx &&
7592 + loc < (me->module_core_rx + me->core_size_rx));
7593 +}
7594 +
7595 +static inline int in_core_rw(struct module *me, void *loc)
7596 +{
7597 + return (loc >= me->module_core_rw &&
7598 + loc < (me->module_core_rw + me->core_size_rw));
7599 }
7600
7601 static inline int in_core(struct module *me, void *loc)
7602 {
7603 - return (loc >= me->module_core &&
7604 - loc <= (me->module_core + me->core_size));
7605 + return in_core_rx(me, loc) || in_core_rw(me, loc);
7606 }
7607
7608 static inline int in_local(struct module *me, void *loc)
7609 @@ -367,13 +389,13 @@ int module_frob_arch_sections(CONST Elf_Ehdr *hdr,
7610 }
7611
7612 /* align things a bit */
7613 - me->core_size = ALIGN(me->core_size, 16);
7614 - me->arch.got_offset = me->core_size;
7615 - me->core_size += gots * sizeof(struct got_entry);
7616 + me->core_size_rw = ALIGN(me->core_size_rw, 16);
7617 + me->arch.got_offset = me->core_size_rw;
7618 + me->core_size_rw += gots * sizeof(struct got_entry);
7619
7620 - me->core_size = ALIGN(me->core_size, 16);
7621 - me->arch.fdesc_offset = me->core_size;
7622 - me->core_size += fdescs * sizeof(Elf_Fdesc);
7623 + me->core_size_rw = ALIGN(me->core_size_rw, 16);
7624 + me->arch.fdesc_offset = me->core_size_rw;
7625 + me->core_size_rw += fdescs * sizeof(Elf_Fdesc);
7626
7627 me->arch.got_max = gots;
7628 me->arch.fdesc_max = fdescs;
7629 @@ -391,7 +413,7 @@ static Elf64_Word get_got(struct module *me, unsigned long value, long addend)
7630
7631 BUG_ON(value == 0);
7632
7633 - got = me->module_core + me->arch.got_offset;
7634 + got = me->module_core_rw + me->arch.got_offset;
7635 for (i = 0; got[i].addr; i++)
7636 if (got[i].addr == value)
7637 goto out;
7638 @@ -409,7 +431,7 @@ static Elf64_Word get_got(struct module *me, unsigned long value, long addend)
7639 #ifdef CONFIG_64BIT
7640 static Elf_Addr get_fdesc(struct module *me, unsigned long value)
7641 {
7642 - Elf_Fdesc *fdesc = me->module_core + me->arch.fdesc_offset;
7643 + Elf_Fdesc *fdesc = me->module_core_rw + me->arch.fdesc_offset;
7644
7645 if (!value) {
7646 printk(KERN_ERR "%s: zero OPD requested!\n", me->name);
7647 @@ -427,7 +449,7 @@ static Elf_Addr get_fdesc(struct module *me, unsigned long value)
7648
7649 /* Create new one */
7650 fdesc->addr = value;
7651 - fdesc->gp = (Elf_Addr)me->module_core + me->arch.got_offset;
7652 + fdesc->gp = (Elf_Addr)me->module_core_rw + me->arch.got_offset;
7653 return (Elf_Addr)fdesc;
7654 }
7655 #endif /* CONFIG_64BIT */
7656 @@ -839,7 +861,7 @@ register_unwind_table(struct module *me,
7657
7658 table = (unsigned char *)sechdrs[me->arch.unwind_section].sh_addr;
7659 end = table + sechdrs[me->arch.unwind_section].sh_size;
7660 - gp = (Elf_Addr)me->module_core + me->arch.got_offset;
7661 + gp = (Elf_Addr)me->module_core_rw + me->arch.got_offset;
7662
7663 DEBUGP("register_unwind_table(), sect = %d at 0x%p - 0x%p (gp=0x%lx)\n",
7664 me->arch.unwind_section, table, end, gp);
7665 diff --git a/arch/parisc/kernel/sys_parisc.c b/arch/parisc/kernel/sys_parisc.c
7666 index 5aba01a..47cdd5a 100644
7667 --- a/arch/parisc/kernel/sys_parisc.c
7668 +++ b/arch/parisc/kernel/sys_parisc.c
7669 @@ -92,6 +92,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7670 unsigned long task_size = TASK_SIZE;
7671 int do_color_align, last_mmap;
7672 struct vm_unmapped_area_info info;
7673 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
7674
7675 if (len > task_size)
7676 return -ENOMEM;
7677 @@ -109,6 +110,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7678 goto found_addr;
7679 }
7680
7681 +#ifdef CONFIG_PAX_RANDMMAP
7682 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
7683 +#endif
7684 +
7685 if (addr) {
7686 if (do_color_align && last_mmap)
7687 addr = COLOR_ALIGN(addr, last_mmap, pgoff);
7688 @@ -127,6 +132,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
7689 info.high_limit = mmap_upper_limit();
7690 info.align_mask = last_mmap ? (PAGE_MASK & (SHM_COLOUR - 1)) : 0;
7691 info.align_offset = shared_align_offset(last_mmap, pgoff);
7692 + info.threadstack_offset = offset;
7693 addr = vm_unmapped_area(&info);
7694
7695 found_addr:
7696 @@ -146,6 +152,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7697 unsigned long addr = addr0;
7698 int do_color_align, last_mmap;
7699 struct vm_unmapped_area_info info;
7700 + unsigned long offset = gr_rand_threadstack_offset(current->mm, filp, flags);
7701
7702 #ifdef CONFIG_64BIT
7703 /* This should only ever run for 32-bit processes. */
7704 @@ -170,6 +177,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7705 }
7706
7707 /* requesting a specific address */
7708 +#ifdef CONFIG_PAX_RANDMMAP
7709 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
7710 +#endif
7711 +
7712 if (addr) {
7713 if (do_color_align && last_mmap)
7714 addr = COLOR_ALIGN(addr, last_mmap, pgoff);
7715 @@ -187,6 +198,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
7716 info.high_limit = mm->mmap_base;
7717 info.align_mask = last_mmap ? (PAGE_MASK & (SHM_COLOUR - 1)) : 0;
7718 info.align_offset = shared_align_offset(last_mmap, pgoff);
7719 + info.threadstack_offset = offset;
7720 addr = vm_unmapped_area(&info);
7721 if (!(addr & ~PAGE_MASK))
7722 goto found_addr;
7723 @@ -252,6 +264,13 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
7724 mm->mmap_legacy_base = mmap_legacy_base();
7725 mm->mmap_base = mmap_upper_limit();
7726
7727 +#ifdef CONFIG_PAX_RANDMMAP
7728 + if (mm->pax_flags & MF_PAX_RANDMMAP) {
7729 + mm->mmap_legacy_base += mm->delta_mmap;
7730 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
7731 + }
7732 +#endif
7733 +
7734 if (mmap_is_legacy()) {
7735 mm->mmap_base = mm->mmap_legacy_base;
7736 mm->get_unmapped_area = arch_get_unmapped_area;
7737 diff --git a/arch/parisc/kernel/traps.c b/arch/parisc/kernel/traps.c
7738 index b99b39f..e3915ae 100644
7739 --- a/arch/parisc/kernel/traps.c
7740 +++ b/arch/parisc/kernel/traps.c
7741 @@ -722,9 +722,7 @@ void notrace handle_interruption(int code, struct pt_regs *regs)
7742
7743 down_read(&current->mm->mmap_sem);
7744 vma = find_vma(current->mm,regs->iaoq[0]);
7745 - if (vma && (regs->iaoq[0] >= vma->vm_start)
7746 - && (vma->vm_flags & VM_EXEC)) {
7747 -
7748 + if (vma && (regs->iaoq[0] >= vma->vm_start)) {
7749 fault_address = regs->iaoq[0];
7750 fault_space = regs->iasq[0];
7751
7752 diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
7753 index 15503ad..4b1b8b6 100644
7754 --- a/arch/parisc/mm/fault.c
7755 +++ b/arch/parisc/mm/fault.c
7756 @@ -16,6 +16,7 @@
7757 #include <linux/interrupt.h>
7758 #include <linux/module.h>
7759 #include <linux/uaccess.h>
7760 +#include <linux/unistd.h>
7761
7762 #include <asm/traps.h>
7763
7764 @@ -50,7 +51,7 @@ int show_unhandled_signals = 1;
7765 static unsigned long
7766 parisc_acctyp(unsigned long code, unsigned int inst)
7767 {
7768 - if (code == 6 || code == 16)
7769 + if (code == 6 || code == 7 || code == 16)
7770 return VM_EXEC;
7771
7772 switch (inst & 0xf0000000) {
7773 @@ -136,6 +137,116 @@ parisc_acctyp(unsigned long code, unsigned int inst)
7774 }
7775 #endif
7776
7777 +#ifdef CONFIG_PAX_PAGEEXEC
7778 +/*
7779 + * PaX: decide what to do with offenders (instruction_pointer(regs) = fault address)
7780 + *
7781 + * returns 1 when task should be killed
7782 + * 2 when rt_sigreturn trampoline was detected
7783 + * 3 when unpatched PLT trampoline was detected
7784 + */
7785 +static int pax_handle_fetch_fault(struct pt_regs *regs)
7786 +{
7787 +
7788 +#ifdef CONFIG_PAX_EMUPLT
7789 + int err;
7790 +
7791 + do { /* PaX: unpatched PLT emulation */
7792 + unsigned int bl, depwi;
7793 +
7794 + err = get_user(bl, (unsigned int *)instruction_pointer(regs));
7795 + err |= get_user(depwi, (unsigned int *)(instruction_pointer(regs)+4));
7796 +
7797 + if (err)
7798 + break;
7799 +
7800 + if (bl == 0xEA9F1FDDU && depwi == 0xD6801C1EU) {
7801 + unsigned int ldw, bv, ldw2, addr = instruction_pointer(regs)-12;
7802 +
7803 + err = get_user(ldw, (unsigned int *)addr);
7804 + err |= get_user(bv, (unsigned int *)(addr+4));
7805 + err |= get_user(ldw2, (unsigned int *)(addr+8));
7806 +
7807 + if (err)
7808 + break;
7809 +
7810 + if (ldw == 0x0E801096U &&
7811 + bv == 0xEAC0C000U &&
7812 + ldw2 == 0x0E881095U)
7813 + {
7814 + unsigned int resolver, map;
7815 +
7816 + err = get_user(resolver, (unsigned int *)(instruction_pointer(regs)+8));
7817 + err |= get_user(map, (unsigned int *)(instruction_pointer(regs)+12));
7818 + if (err)
7819 + break;
7820 +
7821 + regs->gr[20] = instruction_pointer(regs)+8;
7822 + regs->gr[21] = map;
7823 + regs->gr[22] = resolver;
7824 + regs->iaoq[0] = resolver | 3UL;
7825 + regs->iaoq[1] = regs->iaoq[0] + 4;
7826 + return 3;
7827 + }
7828 + }
7829 + } while (0);
7830 +#endif
7831 +
7832 +#ifdef CONFIG_PAX_EMUTRAMP
7833 +
7834 +#ifndef CONFIG_PAX_EMUSIGRT
7835 + if (!(current->mm->pax_flags & MF_PAX_EMUTRAMP))
7836 + return 1;
7837 +#endif
7838 +
7839 + do { /* PaX: rt_sigreturn emulation */
7840 + unsigned int ldi1, ldi2, bel, nop;
7841 +
7842 + err = get_user(ldi1, (unsigned int *)instruction_pointer(regs));
7843 + err |= get_user(ldi2, (unsigned int *)(instruction_pointer(regs)+4));
7844 + err |= get_user(bel, (unsigned int *)(instruction_pointer(regs)+8));
7845 + err |= get_user(nop, (unsigned int *)(instruction_pointer(regs)+12));
7846 +
7847 + if (err)
7848 + break;
7849 +
7850 + if ((ldi1 == 0x34190000U || ldi1 == 0x34190002U) &&
7851 + ldi2 == 0x3414015AU &&
7852 + bel == 0xE4008200U &&
7853 + nop == 0x08000240U)
7854 + {
7855 + regs->gr[25] = (ldi1 & 2) >> 1;
7856 + regs->gr[20] = __NR_rt_sigreturn;
7857 + regs->gr[31] = regs->iaoq[1] + 16;
7858 + regs->sr[0] = regs->iasq[1];
7859 + regs->iaoq[0] = 0x100UL;
7860 + regs->iaoq[1] = regs->iaoq[0] + 4;
7861 + regs->iasq[0] = regs->sr[2];
7862 + regs->iasq[1] = regs->sr[2];
7863 + return 2;
7864 + }
7865 + } while (0);
7866 +#endif
7867 +
7868 + return 1;
7869 +}
7870 +
7871 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
7872 +{
7873 + unsigned long i;
7874 +
7875 + printk(KERN_ERR "PAX: bytes at PC: ");
7876 + for (i = 0; i < 5; i++) {
7877 + unsigned int c;
7878 + if (get_user(c, (unsigned int *)pc+i))
7879 + printk(KERN_CONT "???????? ");
7880 + else
7881 + printk(KERN_CONT "%08x ", c);
7882 + }
7883 + printk("\n");
7884 +}
7885 +#endif
7886 +
7887 int fixup_exception(struct pt_regs *regs)
7888 {
7889 const struct exception_table_entry *fix;
7890 @@ -234,8 +345,33 @@ retry:
7891
7892 good_area:
7893
7894 - if ((vma->vm_flags & acc_type) != acc_type)
7895 + if ((vma->vm_flags & acc_type) != acc_type) {
7896 +
7897 +#ifdef CONFIG_PAX_PAGEEXEC
7898 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && (acc_type & VM_EXEC) &&
7899 + (address & ~3UL) == instruction_pointer(regs))
7900 + {
7901 + up_read(&mm->mmap_sem);
7902 + switch (pax_handle_fetch_fault(regs)) {
7903 +
7904 +#ifdef CONFIG_PAX_EMUPLT
7905 + case 3:
7906 + return;
7907 +#endif
7908 +
7909 +#ifdef CONFIG_PAX_EMUTRAMP
7910 + case 2:
7911 + return;
7912 +#endif
7913 +
7914 + }
7915 + pax_report_fault(regs, (void *)instruction_pointer(regs), (void *)regs->gr[30]);
7916 + do_group_exit(SIGKILL);
7917 + }
7918 +#endif
7919 +
7920 goto bad_area;
7921 + }
7922
7923 /*
7924 * If for any reason at all we couldn't handle the fault, make
7925 diff --git a/arch/powerpc/Kconfig b/arch/powerpc/Kconfig
7926 index 5ef2711..21be2c3 100644
7927 --- a/arch/powerpc/Kconfig
7928 +++ b/arch/powerpc/Kconfig
7929 @@ -415,6 +415,7 @@ config PPC64_SUPPORTS_MEMORY_FAILURE
7930 config KEXEC
7931 bool "kexec system call"
7932 depends on (PPC_BOOK3S || FSL_BOOKE || (44x && !SMP))
7933 + depends on !GRKERNSEC_KMEM
7934 help
7935 kexec is a system call that implements the ability to shutdown your
7936 current kernel, and to start another kernel. It is like a reboot
7937 diff --git a/arch/powerpc/include/asm/atomic.h b/arch/powerpc/include/asm/atomic.h
7938 index 512d278..d31fadd 100644
7939 --- a/arch/powerpc/include/asm/atomic.h
7940 +++ b/arch/powerpc/include/asm/atomic.h
7941 @@ -12,6 +12,11 @@
7942
7943 #define ATOMIC_INIT(i) { (i) }
7944
7945 +#define _ASM_EXTABLE(from, to) \
7946 +" .section __ex_table,\"a\"\n" \
7947 + PPC_LONG" " #from ", " #to"\n" \
7948 +" .previous\n"
7949 +
7950 static __inline__ int atomic_read(const atomic_t *v)
7951 {
7952 int t;
7953 @@ -21,39 +26,80 @@ static __inline__ int atomic_read(const atomic_t *v)
7954 return t;
7955 }
7956
7957 +static __inline__ int atomic_read_unchecked(const atomic_unchecked_t *v)
7958 +{
7959 + int t;
7960 +
7961 + __asm__ __volatile__("lwz%U1%X1 %0,%1" : "=r"(t) : "m"(v->counter));
7962 +
7963 + return t;
7964 +}
7965 +
7966 static __inline__ void atomic_set(atomic_t *v, int i)
7967 {
7968 __asm__ __volatile__("stw%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7969 }
7970
7971 -#define ATOMIC_OP(op, asm_op) \
7972 -static __inline__ void atomic_##op(int a, atomic_t *v) \
7973 +static __inline__ void atomic_set_unchecked(atomic_unchecked_t *v, int i)
7974 +{
7975 + __asm__ __volatile__("stw%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
7976 +}
7977 +
7978 +#ifdef CONFIG_PAX_REFCOUNT
7979 +#define __REFCOUNT_OP(op) op##o.
7980 +#define __OVERFLOW_PRE \
7981 + " mcrxr cr0\n"
7982 +#define __OVERFLOW_POST \
7983 + " bf 4*cr0+so, 3f\n" \
7984 + "2: .long 0x00c00b00\n" \
7985 + "3:\n"
7986 +#define __OVERFLOW_EXTABLE \
7987 + "\n4:\n"
7988 + _ASM_EXTABLE(2b, 4b)
7989 +#else
7990 +#define __REFCOUNT_OP(op) op
7991 +#define __OVERFLOW_PRE
7992 +#define __OVERFLOW_POST
7993 +#define __OVERFLOW_EXTABLE
7994 +#endif
7995 +
7996 +#define __ATOMIC_OP(op, suffix, pre_op, asm_op, post_op, extable) \
7997 +static inline void atomic_##op##suffix(int a, atomic##suffix##_t *v) \
7998 { \
7999 int t; \
8000 \
8001 __asm__ __volatile__( \
8002 -"1: lwarx %0,0,%3 # atomic_" #op "\n" \
8003 +"1: lwarx %0,0,%3 # atomic_" #op #suffix "\n" \
8004 + pre_op \
8005 #asm_op " %0,%2,%0\n" \
8006 + post_op \
8007 PPC405_ERR77(0,%3) \
8008 " stwcx. %0,0,%3 \n" \
8009 " bne- 1b\n" \
8010 + extable \
8011 : "=&r" (t), "+m" (v->counter) \
8012 : "r" (a), "r" (&v->counter) \
8013 : "cc"); \
8014 } \
8015
8016 -#define ATOMIC_OP_RETURN(op, asm_op) \
8017 -static __inline__ int atomic_##op##_return(int a, atomic_t *v) \
8018 +#define ATOMIC_OP(op, asm_op) __ATOMIC_OP(op, , , asm_op, , ) \
8019 + __ATOMIC_OP(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
8020 +
8021 +#define __ATOMIC_OP_RETURN(op, suffix, pre_op, asm_op, post_op, extable)\
8022 +static inline int atomic_##op##_return##suffix(int a, atomic##suffix##_t *v)\
8023 { \
8024 int t; \
8025 \
8026 __asm__ __volatile__( \
8027 PPC_ATOMIC_ENTRY_BARRIER \
8028 -"1: lwarx %0,0,%2 # atomic_" #op "_return\n" \
8029 +"1: lwarx %0,0,%2 # atomic_" #op "_return" #suffix "\n" \
8030 + pre_op \
8031 #asm_op " %0,%1,%0\n" \
8032 + post_op \
8033 PPC405_ERR77(0,%2) \
8034 " stwcx. %0,0,%2 \n" \
8035 " bne- 1b\n" \
8036 + extable \
8037 PPC_ATOMIC_EXIT_BARRIER \
8038 : "=&r" (t) \
8039 : "r" (a), "r" (&v->counter) \
8040 @@ -62,6 +108,9 @@ static __inline__ int atomic_##op##_return(int a, atomic_t *v) \
8041 return t; \
8042 }
8043
8044 +#define ATOMIC_OP_RETURN(op, asm_op) __ATOMIC_OP_RETURN(op, , , asm_op, , )\
8045 + __ATOMIC_OP_RETURN(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
8046 +
8047 #define ATOMIC_OPS(op, asm_op) ATOMIC_OP(op, asm_op) ATOMIC_OP_RETURN(op, asm_op)
8048
8049 ATOMIC_OPS(add, add)
8050 @@ -69,42 +118,29 @@ ATOMIC_OPS(sub, subf)
8051
8052 #undef ATOMIC_OPS
8053 #undef ATOMIC_OP_RETURN
8054 +#undef __ATOMIC_OP_RETURN
8055 #undef ATOMIC_OP
8056 +#undef __ATOMIC_OP
8057
8058 #define atomic_add_negative(a, v) (atomic_add_return((a), (v)) < 0)
8059
8060 -static __inline__ void atomic_inc(atomic_t *v)
8061 -{
8062 - int t;
8063 +/*
8064 + * atomic_inc - increment atomic variable
8065 + * @v: pointer of type atomic_t
8066 + *
8067 + * Automatically increments @v by 1
8068 + */
8069 +#define atomic_inc(v) atomic_add(1, (v))
8070 +#define atomic_inc_return(v) atomic_add_return(1, (v))
8071
8072 - __asm__ __volatile__(
8073 -"1: lwarx %0,0,%2 # atomic_inc\n\
8074 - addic %0,%0,1\n"
8075 - PPC405_ERR77(0,%2)
8076 -" stwcx. %0,0,%2 \n\
8077 - bne- 1b"
8078 - : "=&r" (t), "+m" (v->counter)
8079 - : "r" (&v->counter)
8080 - : "cc", "xer");
8081 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
8082 +{
8083 + atomic_add_unchecked(1, v);
8084 }
8085
8086 -static __inline__ int atomic_inc_return(atomic_t *v)
8087 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
8088 {
8089 - int t;
8090 -
8091 - __asm__ __volatile__(
8092 - PPC_ATOMIC_ENTRY_BARRIER
8093 -"1: lwarx %0,0,%1 # atomic_inc_return\n\
8094 - addic %0,%0,1\n"
8095 - PPC405_ERR77(0,%1)
8096 -" stwcx. %0,0,%1 \n\
8097 - bne- 1b"
8098 - PPC_ATOMIC_EXIT_BARRIER
8099 - : "=&r" (t)
8100 - : "r" (&v->counter)
8101 - : "cc", "xer", "memory");
8102 -
8103 - return t;
8104 + return atomic_add_return_unchecked(1, v);
8105 }
8106
8107 /*
8108 @@ -117,43 +153,38 @@ static __inline__ int atomic_inc_return(atomic_t *v)
8109 */
8110 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
8111
8112 -static __inline__ void atomic_dec(atomic_t *v)
8113 +static __inline__ int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
8114 {
8115 - int t;
8116 -
8117 - __asm__ __volatile__(
8118 -"1: lwarx %0,0,%2 # atomic_dec\n\
8119 - addic %0,%0,-1\n"
8120 - PPC405_ERR77(0,%2)\
8121 -" stwcx. %0,0,%2\n\
8122 - bne- 1b"
8123 - : "=&r" (t), "+m" (v->counter)
8124 - : "r" (&v->counter)
8125 - : "cc", "xer");
8126 + return atomic_add_return_unchecked(1, v) == 0;
8127 }
8128
8129 -static __inline__ int atomic_dec_return(atomic_t *v)
8130 +/*
8131 + * atomic_dec - decrement atomic variable
8132 + * @v: pointer of type atomic_t
8133 + *
8134 + * Atomically decrements @v by 1
8135 + */
8136 +#define atomic_dec(v) atomic_sub(1, (v))
8137 +#define atomic_dec_return(v) atomic_sub_return(1, (v))
8138 +
8139 +static __inline__ void atomic_dec_unchecked(atomic_unchecked_t *v)
8140 {
8141 - int t;
8142 -
8143 - __asm__ __volatile__(
8144 - PPC_ATOMIC_ENTRY_BARRIER
8145 -"1: lwarx %0,0,%1 # atomic_dec_return\n\
8146 - addic %0,%0,-1\n"
8147 - PPC405_ERR77(0,%1)
8148 -" stwcx. %0,0,%1\n\
8149 - bne- 1b"
8150 - PPC_ATOMIC_EXIT_BARRIER
8151 - : "=&r" (t)
8152 - : "r" (&v->counter)
8153 - : "cc", "xer", "memory");
8154 -
8155 - return t;
8156 + atomic_sub_unchecked(1, v);
8157 }
8158
8159 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
8160 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
8161
8162 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
8163 +{
8164 + return cmpxchg(&(v->counter), old, new);
8165 +}
8166 +
8167 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
8168 +{
8169 + return xchg(&(v->counter), new);
8170 +}
8171 +
8172 /**
8173 * __atomic_add_unless - add unless the number is a given value
8174 * @v: pointer of type atomic_t
8175 @@ -171,11 +202,27 @@ static __inline__ int __atomic_add_unless(atomic_t *v, int a, int u)
8176 PPC_ATOMIC_ENTRY_BARRIER
8177 "1: lwarx %0,0,%1 # __atomic_add_unless\n\
8178 cmpw 0,%0,%3 \n\
8179 - beq- 2f \n\
8180 - add %0,%2,%0 \n"
8181 + beq- 2f \n"
8182 +
8183 +#ifdef CONFIG_PAX_REFCOUNT
8184 +" mcrxr cr0\n"
8185 +" addo. %0,%2,%0\n"
8186 +" bf 4*cr0+so, 4f\n"
8187 +"3:.long " "0x00c00b00""\n"
8188 +"4:\n"
8189 +#else
8190 + "add %0,%2,%0 \n"
8191 +#endif
8192 +
8193 PPC405_ERR77(0,%2)
8194 " stwcx. %0,0,%1 \n\
8195 bne- 1b \n"
8196 +"5:"
8197 +
8198 +#ifdef CONFIG_PAX_REFCOUNT
8199 + _ASM_EXTABLE(3b, 5b)
8200 +#endif
8201 +
8202 PPC_ATOMIC_EXIT_BARRIER
8203 " subf %0,%2,%0 \n\
8204 2:"
8205 @@ -248,6 +295,11 @@ static __inline__ int atomic_dec_if_positive(atomic_t *v)
8206 }
8207 #define atomic_dec_if_positive atomic_dec_if_positive
8208
8209 +#define smp_mb__before_atomic_dec() smp_mb()
8210 +#define smp_mb__after_atomic_dec() smp_mb()
8211 +#define smp_mb__before_atomic_inc() smp_mb()
8212 +#define smp_mb__after_atomic_inc() smp_mb()
8213 +
8214 #ifdef __powerpc64__
8215
8216 #define ATOMIC64_INIT(i) { (i) }
8217 @@ -261,37 +313,60 @@ static __inline__ long atomic64_read(const atomic64_t *v)
8218 return t;
8219 }
8220
8221 +static __inline__ long atomic64_read_unchecked(const atomic64_unchecked_t *v)
8222 +{
8223 + long t;
8224 +
8225 + __asm__ __volatile__("ld%U1%X1 %0,%1" : "=r"(t) : "m"(v->counter));
8226 +
8227 + return t;
8228 +}
8229 +
8230 static __inline__ void atomic64_set(atomic64_t *v, long i)
8231 {
8232 __asm__ __volatile__("std%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
8233 }
8234
8235 -#define ATOMIC64_OP(op, asm_op) \
8236 -static __inline__ void atomic64_##op(long a, atomic64_t *v) \
8237 +static __inline__ void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
8238 +{
8239 + __asm__ __volatile__("std%U0%X0 %1,%0" : "=m"(v->counter) : "r"(i));
8240 +}
8241 +
8242 +#define __ATOMIC64_OP(op, suffix, pre_op, asm_op, post_op, extable) \
8243 +static inline void atomic64_##op##suffix(long a, atomic64##suffix##_t *v)\
8244 { \
8245 long t; \
8246 \
8247 __asm__ __volatile__( \
8248 "1: ldarx %0,0,%3 # atomic64_" #op "\n" \
8249 + pre_op \
8250 #asm_op " %0,%2,%0\n" \
8251 + post_op \
8252 " stdcx. %0,0,%3 \n" \
8253 " bne- 1b\n" \
8254 + extable \
8255 : "=&r" (t), "+m" (v->counter) \
8256 : "r" (a), "r" (&v->counter) \
8257 : "cc"); \
8258 }
8259
8260 -#define ATOMIC64_OP_RETURN(op, asm_op) \
8261 -static __inline__ long atomic64_##op##_return(long a, atomic64_t *v) \
8262 +#define ATOMIC64_OP(op, asm_op) __ATOMIC64_OP(op, , , asm_op, , ) \
8263 + __ATOMIC64_OP(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
8264 +
8265 +#define __ATOMIC64_OP_RETURN(op, suffix, pre_op, asm_op, post_op, extable)\
8266 +static inline long atomic64_##op##_return##suffix(long a, atomic64##suffix##_t *v)\
8267 { \
8268 long t; \
8269 \
8270 __asm__ __volatile__( \
8271 PPC_ATOMIC_ENTRY_BARRIER \
8272 "1: ldarx %0,0,%2 # atomic64_" #op "_return\n" \
8273 + pre_op \
8274 #asm_op " %0,%1,%0\n" \
8275 + post_op \
8276 " stdcx. %0,0,%2 \n" \
8277 " bne- 1b\n" \
8278 + extable \
8279 PPC_ATOMIC_EXIT_BARRIER \
8280 : "=&r" (t) \
8281 : "r" (a), "r" (&v->counter) \
8282 @@ -300,6 +375,9 @@ static __inline__ long atomic64_##op##_return(long a, atomic64_t *v) \
8283 return t; \
8284 }
8285
8286 +#define ATOMIC64_OP_RETURN(op, asm_op) __ATOMIC64_OP_RETURN(op, , , asm_op, , )\
8287 + __ATOMIC64_OP_RETURN(op, _unchecked, __OVERFLOW_PRE, __REFCOUNT_OP(asm_op), __OVERFLOW_POST, __OVERFLOW_EXTABLE)
8288 +
8289 #define ATOMIC64_OPS(op, asm_op) ATOMIC64_OP(op, asm_op) ATOMIC64_OP_RETURN(op, asm_op)
8290
8291 ATOMIC64_OPS(add, add)
8292 @@ -307,40 +385,33 @@ ATOMIC64_OPS(sub, subf)
8293
8294 #undef ATOMIC64_OPS
8295 #undef ATOMIC64_OP_RETURN
8296 +#undef __ATOMIC64_OP_RETURN
8297 #undef ATOMIC64_OP
8298 +#undef __ATOMIC64_OP
8299 +#undef __OVERFLOW_EXTABLE
8300 +#undef __OVERFLOW_POST
8301 +#undef __OVERFLOW_PRE
8302 +#undef __REFCOUNT_OP
8303
8304 #define atomic64_add_negative(a, v) (atomic64_add_return((a), (v)) < 0)
8305
8306 -static __inline__ void atomic64_inc(atomic64_t *v)
8307 -{
8308 - long t;
8309 +/*
8310 + * atomic64_inc - increment atomic variable
8311 + * @v: pointer of type atomic64_t
8312 + *
8313 + * Automatically increments @v by 1
8314 + */
8315 +#define atomic64_inc(v) atomic64_add(1, (v))
8316 +#define atomic64_inc_return(v) atomic64_add_return(1, (v))
8317
8318 - __asm__ __volatile__(
8319 -"1: ldarx %0,0,%2 # atomic64_inc\n\
8320 - addic %0,%0,1\n\
8321 - stdcx. %0,0,%2 \n\
8322 - bne- 1b"
8323 - : "=&r" (t), "+m" (v->counter)
8324 - : "r" (&v->counter)
8325 - : "cc", "xer");
8326 +static inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
8327 +{
8328 + atomic64_add_unchecked(1, v);
8329 }
8330
8331 -static __inline__ long atomic64_inc_return(atomic64_t *v)
8332 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
8333 {
8334 - long t;
8335 -
8336 - __asm__ __volatile__(
8337 - PPC_ATOMIC_ENTRY_BARRIER
8338 -"1: ldarx %0,0,%1 # atomic64_inc_return\n\
8339 - addic %0,%0,1\n\
8340 - stdcx. %0,0,%1 \n\
8341 - bne- 1b"
8342 - PPC_ATOMIC_EXIT_BARRIER
8343 - : "=&r" (t)
8344 - : "r" (&v->counter)
8345 - : "cc", "xer", "memory");
8346 -
8347 - return t;
8348 + return atomic64_add_return_unchecked(1, v);
8349 }
8350
8351 /*
8352 @@ -353,36 +424,18 @@ static __inline__ long atomic64_inc_return(atomic64_t *v)
8353 */
8354 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
8355
8356 -static __inline__ void atomic64_dec(atomic64_t *v)
8357 +/*
8358 + * atomic64_dec - decrement atomic variable
8359 + * @v: pointer of type atomic64_t
8360 + *
8361 + * Atomically decrements @v by 1
8362 + */
8363 +#define atomic64_dec(v) atomic64_sub(1, (v))
8364 +#define atomic64_dec_return(v) atomic64_sub_return(1, (v))
8365 +
8366 +static __inline__ void atomic64_dec_unchecked(atomic64_unchecked_t *v)
8367 {
8368 - long t;
8369 -
8370 - __asm__ __volatile__(
8371 -"1: ldarx %0,0,%2 # atomic64_dec\n\
8372 - addic %0,%0,-1\n\
8373 - stdcx. %0,0,%2\n\
8374 - bne- 1b"
8375 - : "=&r" (t), "+m" (v->counter)
8376 - : "r" (&v->counter)
8377 - : "cc", "xer");
8378 -}
8379 -
8380 -static __inline__ long atomic64_dec_return(atomic64_t *v)
8381 -{
8382 - long t;
8383 -
8384 - __asm__ __volatile__(
8385 - PPC_ATOMIC_ENTRY_BARRIER
8386 -"1: ldarx %0,0,%1 # atomic64_dec_return\n\
8387 - addic %0,%0,-1\n\
8388 - stdcx. %0,0,%1\n\
8389 - bne- 1b"
8390 - PPC_ATOMIC_EXIT_BARRIER
8391 - : "=&r" (t)
8392 - : "r" (&v->counter)
8393 - : "cc", "xer", "memory");
8394 -
8395 - return t;
8396 + atomic64_sub_unchecked(1, v);
8397 }
8398
8399 #define atomic64_sub_and_test(a, v) (atomic64_sub_return((a), (v)) == 0)
8400 @@ -415,6 +468,16 @@ static __inline__ long atomic64_dec_if_positive(atomic64_t *v)
8401 #define atomic64_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
8402 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
8403
8404 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old, long new)
8405 +{
8406 + return cmpxchg(&(v->counter), old, new);
8407 +}
8408 +
8409 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
8410 +{
8411 + return xchg(&(v->counter), new);
8412 +}
8413 +
8414 /**
8415 * atomic64_add_unless - add unless the number is a given value
8416 * @v: pointer of type atomic64_t
8417 @@ -430,13 +493,29 @@ static __inline__ int atomic64_add_unless(atomic64_t *v, long a, long u)
8418
8419 __asm__ __volatile__ (
8420 PPC_ATOMIC_ENTRY_BARRIER
8421 -"1: ldarx %0,0,%1 # __atomic_add_unless\n\
8422 +"1: ldarx %0,0,%1 # atomic64_add_unless\n\
8423 cmpd 0,%0,%3 \n\
8424 - beq- 2f \n\
8425 - add %0,%2,%0 \n"
8426 + beq- 2f \n"
8427 +
8428 +#ifdef CONFIG_PAX_REFCOUNT
8429 +" mcrxr cr0\n"
8430 +" addo. %0,%2,%0\n"
8431 +" bf 4*cr0+so, 4f\n"
8432 +"3:.long " "0x00c00b00""\n"
8433 +"4:\n"
8434 +#else
8435 + "add %0,%2,%0 \n"
8436 +#endif
8437 +
8438 " stdcx. %0,0,%1 \n\
8439 bne- 1b \n"
8440 PPC_ATOMIC_EXIT_BARRIER
8441 +"5:"
8442 +
8443 +#ifdef CONFIG_PAX_REFCOUNT
8444 + _ASM_EXTABLE(3b, 5b)
8445 +#endif
8446 +
8447 " subf %0,%2,%0 \n\
8448 2:"
8449 : "=&r" (t)
8450 diff --git a/arch/powerpc/include/asm/barrier.h b/arch/powerpc/include/asm/barrier.h
8451 index 51ccc72..35de789 100644
8452 --- a/arch/powerpc/include/asm/barrier.h
8453 +++ b/arch/powerpc/include/asm/barrier.h
8454 @@ -76,7 +76,7 @@
8455 do { \
8456 compiletime_assert_atomic_type(*p); \
8457 smp_lwsync(); \
8458 - ACCESS_ONCE(*p) = (v); \
8459 + ACCESS_ONCE_RW(*p) = (v); \
8460 } while (0)
8461
8462 #define smp_load_acquire(p) \
8463 diff --git a/arch/powerpc/include/asm/cache.h b/arch/powerpc/include/asm/cache.h
8464 index 0dc42c5..b80a3a1 100644
8465 --- a/arch/powerpc/include/asm/cache.h
8466 +++ b/arch/powerpc/include/asm/cache.h
8467 @@ -4,6 +4,7 @@
8468 #ifdef __KERNEL__
8469
8470 #include <asm/reg.h>
8471 +#include <linux/const.h>
8472
8473 /* bytes per L1 cache line */
8474 #if defined(CONFIG_8xx) || defined(CONFIG_403GCX)
8475 @@ -23,7 +24,7 @@
8476 #define L1_CACHE_SHIFT 7
8477 #endif
8478
8479 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
8480 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
8481
8482 #define SMP_CACHE_BYTES L1_CACHE_BYTES
8483
8484 diff --git a/arch/powerpc/include/asm/elf.h b/arch/powerpc/include/asm/elf.h
8485 index ee46ffe..b36c98c 100644
8486 --- a/arch/powerpc/include/asm/elf.h
8487 +++ b/arch/powerpc/include/asm/elf.h
8488 @@ -30,6 +30,18 @@
8489
8490 #define ELF_ET_DYN_BASE 0x20000000
8491
8492 +#ifdef CONFIG_PAX_ASLR
8493 +#define PAX_ELF_ET_DYN_BASE (0x10000000UL)
8494 +
8495 +#ifdef __powerpc64__
8496 +#define PAX_DELTA_MMAP_LEN (is_32bit_task() ? 16 : 28)
8497 +#define PAX_DELTA_STACK_LEN (is_32bit_task() ? 16 : 28)
8498 +#else
8499 +#define PAX_DELTA_MMAP_LEN 15
8500 +#define PAX_DELTA_STACK_LEN 15
8501 +#endif
8502 +#endif
8503 +
8504 #define ELF_CORE_EFLAGS (is_elf2_task() ? 2 : 0)
8505
8506 /*
8507 diff --git a/arch/powerpc/include/asm/exec.h b/arch/powerpc/include/asm/exec.h
8508 index 8196e9c..d83a9f3 100644
8509 --- a/arch/powerpc/include/asm/exec.h
8510 +++ b/arch/powerpc/include/asm/exec.h
8511 @@ -4,6 +4,6 @@
8512 #ifndef _ASM_POWERPC_EXEC_H
8513 #define _ASM_POWERPC_EXEC_H
8514
8515 -extern unsigned long arch_align_stack(unsigned long sp);
8516 +#define arch_align_stack(x) ((x) & ~0xfUL)
8517
8518 #endif /* _ASM_POWERPC_EXEC_H */
8519 diff --git a/arch/powerpc/include/asm/kmap_types.h b/arch/powerpc/include/asm/kmap_types.h
8520 index 5acabbd..7ea14fa 100644
8521 --- a/arch/powerpc/include/asm/kmap_types.h
8522 +++ b/arch/powerpc/include/asm/kmap_types.h
8523 @@ -10,7 +10,7 @@
8524 * 2 of the License, or (at your option) any later version.
8525 */
8526
8527 -#define KM_TYPE_NR 16
8528 +#define KM_TYPE_NR 17
8529
8530 #endif /* __KERNEL__ */
8531 #endif /* _ASM_POWERPC_KMAP_TYPES_H */
8532 diff --git a/arch/powerpc/include/asm/local.h b/arch/powerpc/include/asm/local.h
8533 index b8da913..c02b593 100644
8534 --- a/arch/powerpc/include/asm/local.h
8535 +++ b/arch/powerpc/include/asm/local.h
8536 @@ -9,21 +9,65 @@ typedef struct
8537 atomic_long_t a;
8538 } local_t;
8539
8540 +typedef struct
8541 +{
8542 + atomic_long_unchecked_t a;
8543 +} local_unchecked_t;
8544 +
8545 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
8546
8547 #define local_read(l) atomic_long_read(&(l)->a)
8548 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
8549 #define local_set(l,i) atomic_long_set(&(l)->a, (i))
8550 +#define local_set_unchecked(l,i) atomic_long_set_unchecked(&(l)->a, (i))
8551
8552 #define local_add(i,l) atomic_long_add((i),(&(l)->a))
8553 +#define local_add_unchecked(i,l) atomic_long_add_unchecked((i),(&(l)->a))
8554 #define local_sub(i,l) atomic_long_sub((i),(&(l)->a))
8555 +#define local_sub_unchecked(i,l) atomic_long_sub_unchecked((i),(&(l)->a))
8556 #define local_inc(l) atomic_long_inc(&(l)->a)
8557 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
8558 #define local_dec(l) atomic_long_dec(&(l)->a)
8559 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
8560
8561 static __inline__ long local_add_return(long a, local_t *l)
8562 {
8563 long t;
8564
8565 __asm__ __volatile__(
8566 +"1:" PPC_LLARX(%0,0,%2,0) " # local_add_return\n"
8567 +
8568 +#ifdef CONFIG_PAX_REFCOUNT
8569 +" mcrxr cr0\n"
8570 +" addo. %0,%1,%0\n"
8571 +" bf 4*cr0+so, 3f\n"
8572 +"2:.long " "0x00c00b00""\n"
8573 +#else
8574 +" add %0,%1,%0\n"
8575 +#endif
8576 +
8577 +"3:\n"
8578 + PPC405_ERR77(0,%2)
8579 + PPC_STLCX "%0,0,%2 \n\
8580 + bne- 1b"
8581 +
8582 +#ifdef CONFIG_PAX_REFCOUNT
8583 +"\n4:\n"
8584 + _ASM_EXTABLE(2b, 4b)
8585 +#endif
8586 +
8587 + : "=&r" (t)
8588 + : "r" (a), "r" (&(l->a.counter))
8589 + : "cc", "memory");
8590 +
8591 + return t;
8592 +}
8593 +
8594 +static __inline__ long local_add_return_unchecked(long a, local_unchecked_t *l)
8595 +{
8596 + long t;
8597 +
8598 + __asm__ __volatile__(
8599 "1:" PPC_LLARX(%0,0,%2,0) " # local_add_return\n\
8600 add %0,%1,%0\n"
8601 PPC405_ERR77(0,%2)
8602 @@ -101,6 +145,8 @@ static __inline__ long local_dec_return(local_t *l)
8603
8604 #define local_cmpxchg(l, o, n) \
8605 (cmpxchg_local(&((l)->a.counter), (o), (n)))
8606 +#define local_cmpxchg_unchecked(l, o, n) \
8607 + (cmpxchg_local(&((l)->a.counter), (o), (n)))
8608 #define local_xchg(l, n) (xchg_local(&((l)->a.counter), (n)))
8609
8610 /**
8611 diff --git a/arch/powerpc/include/asm/mman.h b/arch/powerpc/include/asm/mman.h
8612 index 8565c25..2865190 100644
8613 --- a/arch/powerpc/include/asm/mman.h
8614 +++ b/arch/powerpc/include/asm/mman.h
8615 @@ -24,7 +24,7 @@ static inline unsigned long arch_calc_vm_prot_bits(unsigned long prot)
8616 }
8617 #define arch_calc_vm_prot_bits(prot) arch_calc_vm_prot_bits(prot)
8618
8619 -static inline pgprot_t arch_vm_get_page_prot(unsigned long vm_flags)
8620 +static inline pgprot_t arch_vm_get_page_prot(vm_flags_t vm_flags)
8621 {
8622 return (vm_flags & VM_SAO) ? __pgprot(_PAGE_SAO) : __pgprot(0);
8623 }
8624 diff --git a/arch/powerpc/include/asm/page.h b/arch/powerpc/include/asm/page.h
8625 index 71294a6..9e40aca 100644
8626 --- a/arch/powerpc/include/asm/page.h
8627 +++ b/arch/powerpc/include/asm/page.h
8628 @@ -227,8 +227,9 @@ extern long long virt_phys_offset;
8629 * and needs to be executable. This means the whole heap ends
8630 * up being executable.
8631 */
8632 -#define VM_DATA_DEFAULT_FLAGS32 (VM_READ | VM_WRITE | VM_EXEC | \
8633 - VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8634 +#define VM_DATA_DEFAULT_FLAGS32 \
8635 + (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
8636 + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8637
8638 #define VM_DATA_DEFAULT_FLAGS64 (VM_READ | VM_WRITE | \
8639 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8640 @@ -256,6 +257,9 @@ extern long long virt_phys_offset;
8641 #define is_kernel_addr(x) ((x) >= PAGE_OFFSET)
8642 #endif
8643
8644 +#define ktla_ktva(addr) (addr)
8645 +#define ktva_ktla(addr) (addr)
8646 +
8647 #ifndef CONFIG_PPC_BOOK3S_64
8648 /*
8649 * Use the top bit of the higher-level page table entries to indicate whether
8650 diff --git a/arch/powerpc/include/asm/page_64.h b/arch/powerpc/include/asm/page_64.h
8651 index d908a46..3753f71 100644
8652 --- a/arch/powerpc/include/asm/page_64.h
8653 +++ b/arch/powerpc/include/asm/page_64.h
8654 @@ -172,15 +172,18 @@ do { \
8655 * stack by default, so in the absence of a PT_GNU_STACK program header
8656 * we turn execute permission off.
8657 */
8658 -#define VM_STACK_DEFAULT_FLAGS32 (VM_READ | VM_WRITE | VM_EXEC | \
8659 - VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8660 +#define VM_STACK_DEFAULT_FLAGS32 \
8661 + (((current->personality & READ_IMPLIES_EXEC) ? VM_EXEC : 0) | \
8662 + VM_READ | VM_WRITE | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8663
8664 #define VM_STACK_DEFAULT_FLAGS64 (VM_READ | VM_WRITE | \
8665 VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)
8666
8667 +#ifndef CONFIG_PAX_PAGEEXEC
8668 #define VM_STACK_DEFAULT_FLAGS \
8669 (is_32bit_task() ? \
8670 VM_STACK_DEFAULT_FLAGS32 : VM_STACK_DEFAULT_FLAGS64)
8671 +#endif
8672
8673 #include <asm-generic/getorder.h>
8674
8675 diff --git a/arch/powerpc/include/asm/pgalloc-64.h b/arch/powerpc/include/asm/pgalloc-64.h
8676 index 4b0be20..c15a27d 100644
8677 --- a/arch/powerpc/include/asm/pgalloc-64.h
8678 +++ b/arch/powerpc/include/asm/pgalloc-64.h
8679 @@ -54,6 +54,7 @@ static inline void pgd_free(struct mm_struct *mm, pgd_t *pgd)
8680 #ifndef CONFIG_PPC_64K_PAGES
8681
8682 #define pgd_populate(MM, PGD, PUD) pgd_set(PGD, PUD)
8683 +#define pgd_populate_kernel(MM, PGD, PUD) pgd_populate((MM), (PGD), (PUD))
8684
8685 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
8686 {
8687 @@ -71,6 +72,11 @@ static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
8688 pud_set(pud, (unsigned long)pmd);
8689 }
8690
8691 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
8692 +{
8693 + pud_populate(mm, pud, pmd);
8694 +}
8695 +
8696 #define pmd_populate(mm, pmd, pte_page) \
8697 pmd_populate_kernel(mm, pmd, page_address(pte_page))
8698 #define pmd_populate_kernel(mm, pmd, pte) pmd_set(pmd, (unsigned long)(pte))
8699 @@ -173,6 +179,7 @@ extern void __tlb_remove_table(void *_table);
8700 #endif
8701
8702 #define pud_populate(mm, pud, pmd) pud_set(pud, (unsigned long)pmd)
8703 +#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd))
8704
8705 static inline void pmd_populate_kernel(struct mm_struct *mm, pmd_t *pmd,
8706 pte_t *pte)
8707 diff --git a/arch/powerpc/include/asm/pgtable.h b/arch/powerpc/include/asm/pgtable.h
8708 index 11a3863..108f194 100644
8709 --- a/arch/powerpc/include/asm/pgtable.h
8710 +++ b/arch/powerpc/include/asm/pgtable.h
8711 @@ -2,6 +2,7 @@
8712 #define _ASM_POWERPC_PGTABLE_H
8713 #ifdef __KERNEL__
8714
8715 +#include <linux/const.h>
8716 #ifndef __ASSEMBLY__
8717 #include <linux/mmdebug.h>
8718 #include <linux/mmzone.h>
8719 diff --git a/arch/powerpc/include/asm/pte-hash32.h b/arch/powerpc/include/asm/pte-hash32.h
8720 index 62cfb0c..50c6402 100644
8721 --- a/arch/powerpc/include/asm/pte-hash32.h
8722 +++ b/arch/powerpc/include/asm/pte-hash32.h
8723 @@ -20,6 +20,7 @@
8724 #define _PAGE_HASHPTE 0x002 /* hash_page has made an HPTE for this pte */
8725 #define _PAGE_USER 0x004 /* usermode access allowed */
8726 #define _PAGE_GUARDED 0x008 /* G: prohibit speculative access */
8727 +#define _PAGE_EXEC _PAGE_GUARDED
8728 #define _PAGE_COHERENT 0x010 /* M: enforce memory coherence (SMP systems) */
8729 #define _PAGE_NO_CACHE 0x020 /* I: cache inhibit */
8730 #define _PAGE_WRITETHRU 0x040 /* W: cache write-through */
8731 diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
8732 index af56b5c..f86f3f6 100644
8733 --- a/arch/powerpc/include/asm/reg.h
8734 +++ b/arch/powerpc/include/asm/reg.h
8735 @@ -253,6 +253,7 @@
8736 #define SPRN_DBCR 0x136 /* e300 Data Breakpoint Control Reg */
8737 #define SPRN_DSISR 0x012 /* Data Storage Interrupt Status Register */
8738 #define DSISR_NOHPTE 0x40000000 /* no translation found */
8739 +#define DSISR_GUARDED 0x10000000 /* fetch from guarded storage */
8740 #define DSISR_PROTFAULT 0x08000000 /* protection fault */
8741 #define DSISR_ISSTORE 0x02000000 /* access was a store */
8742 #define DSISR_DABRMATCH 0x00400000 /* hit data breakpoint */
8743 diff --git a/arch/powerpc/include/asm/smp.h b/arch/powerpc/include/asm/smp.h
8744 index 825663c..f9e9134 100644
8745 --- a/arch/powerpc/include/asm/smp.h
8746 +++ b/arch/powerpc/include/asm/smp.h
8747 @@ -51,7 +51,7 @@ struct smp_ops_t {
8748 int (*cpu_disable)(void);
8749 void (*cpu_die)(unsigned int nr);
8750 int (*cpu_bootable)(unsigned int nr);
8751 -};
8752 +} __no_const;
8753
8754 extern void smp_send_debugger_break(void);
8755 extern void start_secondary_resume(void);
8756 diff --git a/arch/powerpc/include/asm/spinlock.h b/arch/powerpc/include/asm/spinlock.h
8757 index 4dbe072..b803275 100644
8758 --- a/arch/powerpc/include/asm/spinlock.h
8759 +++ b/arch/powerpc/include/asm/spinlock.h
8760 @@ -204,13 +204,29 @@ static inline long __arch_read_trylock(arch_rwlock_t *rw)
8761 __asm__ __volatile__(
8762 "1: " PPC_LWARX(%0,0,%1,1) "\n"
8763 __DO_SIGN_EXTEND
8764 -" addic. %0,%0,1\n\
8765 - ble- 2f\n"
8766 +
8767 +#ifdef CONFIG_PAX_REFCOUNT
8768 +" mcrxr cr0\n"
8769 +" addico. %0,%0,1\n"
8770 +" bf 4*cr0+so, 3f\n"
8771 +"2:.long " "0x00c00b00""\n"
8772 +#else
8773 +" addic. %0,%0,1\n"
8774 +#endif
8775 +
8776 +"3:\n"
8777 + "ble- 4f\n"
8778 PPC405_ERR77(0,%1)
8779 " stwcx. %0,0,%1\n\
8780 bne- 1b\n"
8781 PPC_ACQUIRE_BARRIER
8782 -"2:" : "=&r" (tmp)
8783 +"4:"
8784 +
8785 +#ifdef CONFIG_PAX_REFCOUNT
8786 + _ASM_EXTABLE(2b,4b)
8787 +#endif
8788 +
8789 + : "=&r" (tmp)
8790 : "r" (&rw->lock)
8791 : "cr0", "xer", "memory");
8792
8793 @@ -286,11 +302,27 @@ static inline void arch_read_unlock(arch_rwlock_t *rw)
8794 __asm__ __volatile__(
8795 "# read_unlock\n\t"
8796 PPC_RELEASE_BARRIER
8797 -"1: lwarx %0,0,%1\n\
8798 - addic %0,%0,-1\n"
8799 +"1: lwarx %0,0,%1\n"
8800 +
8801 +#ifdef CONFIG_PAX_REFCOUNT
8802 +" mcrxr cr0\n"
8803 +" addico. %0,%0,-1\n"
8804 +" bf 4*cr0+so, 3f\n"
8805 +"2:.long " "0x00c00b00""\n"
8806 +#else
8807 +" addic. %0,%0,-1\n"
8808 +#endif
8809 +
8810 +"3:\n"
8811 PPC405_ERR77(0,%1)
8812 " stwcx. %0,0,%1\n\
8813 bne- 1b"
8814 +
8815 +#ifdef CONFIG_PAX_REFCOUNT
8816 +"\n4:\n"
8817 + _ASM_EXTABLE(2b, 4b)
8818 +#endif
8819 +
8820 : "=&r"(tmp)
8821 : "r"(&rw->lock)
8822 : "cr0", "xer", "memory");
8823 diff --git a/arch/powerpc/include/asm/thread_info.h b/arch/powerpc/include/asm/thread_info.h
8824 index 7efee4a..48d47cc 100644
8825 --- a/arch/powerpc/include/asm/thread_info.h
8826 +++ b/arch/powerpc/include/asm/thread_info.h
8827 @@ -101,6 +101,8 @@ static inline struct thread_info *current_thread_info(void)
8828 #if defined(CONFIG_PPC64)
8829 #define TIF_ELF2ABI 18 /* function descriptors must die! */
8830 #endif
8831 +/* mask must be expressable within 16 bits to satisfy 'andi' instruction reqs */
8832 +#define TIF_GRSEC_SETXID 6 /* update credentials on syscall entry/exit */
8833
8834 /* as above, but as bit values */
8835 #define _TIF_SYSCALL_TRACE (1<<TIF_SYSCALL_TRACE)
8836 @@ -119,9 +121,10 @@ static inline struct thread_info *current_thread_info(void)
8837 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
8838 #define _TIF_EMULATE_STACK_STORE (1<<TIF_EMULATE_STACK_STORE)
8839 #define _TIF_NOHZ (1<<TIF_NOHZ)
8840 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
8841 #define _TIF_SYSCALL_DOTRACE (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | \
8842 _TIF_SECCOMP | _TIF_SYSCALL_TRACEPOINT | \
8843 - _TIF_NOHZ)
8844 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
8845
8846 #define _TIF_USER_WORK_MASK (_TIF_SIGPENDING | _TIF_NEED_RESCHED | \
8847 _TIF_NOTIFY_RESUME | _TIF_UPROBE | \
8848 diff --git a/arch/powerpc/include/asm/uaccess.h b/arch/powerpc/include/asm/uaccess.h
8849 index 2a8ebae..5643c6f 100644
8850 --- a/arch/powerpc/include/asm/uaccess.h
8851 +++ b/arch/powerpc/include/asm/uaccess.h
8852 @@ -58,6 +58,7 @@
8853
8854 #endif
8855
8856 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
8857 #define access_ok(type, addr, size) \
8858 (__chk_user_ptr(addr), \
8859 __access_ok((__force unsigned long)(addr), (size), get_fs()))
8860 @@ -318,52 +319,6 @@ do { \
8861 extern unsigned long __copy_tofrom_user(void __user *to,
8862 const void __user *from, unsigned long size);
8863
8864 -#ifndef __powerpc64__
8865 -
8866 -static inline unsigned long copy_from_user(void *to,
8867 - const void __user *from, unsigned long n)
8868 -{
8869 - unsigned long over;
8870 -
8871 - if (access_ok(VERIFY_READ, from, n))
8872 - return __copy_tofrom_user((__force void __user *)to, from, n);
8873 - if ((unsigned long)from < TASK_SIZE) {
8874 - over = (unsigned long)from + n - TASK_SIZE;
8875 - return __copy_tofrom_user((__force void __user *)to, from,
8876 - n - over) + over;
8877 - }
8878 - return n;
8879 -}
8880 -
8881 -static inline unsigned long copy_to_user(void __user *to,
8882 - const void *from, unsigned long n)
8883 -{
8884 - unsigned long over;
8885 -
8886 - if (access_ok(VERIFY_WRITE, to, n))
8887 - return __copy_tofrom_user(to, (__force void __user *)from, n);
8888 - if ((unsigned long)to < TASK_SIZE) {
8889 - over = (unsigned long)to + n - TASK_SIZE;
8890 - return __copy_tofrom_user(to, (__force void __user *)from,
8891 - n - over) + over;
8892 - }
8893 - return n;
8894 -}
8895 -
8896 -#else /* __powerpc64__ */
8897 -
8898 -#define __copy_in_user(to, from, size) \
8899 - __copy_tofrom_user((to), (from), (size))
8900 -
8901 -extern unsigned long copy_from_user(void *to, const void __user *from,
8902 - unsigned long n);
8903 -extern unsigned long copy_to_user(void __user *to, const void *from,
8904 - unsigned long n);
8905 -extern unsigned long copy_in_user(void __user *to, const void __user *from,
8906 - unsigned long n);
8907 -
8908 -#endif /* __powerpc64__ */
8909 -
8910 static inline unsigned long __copy_from_user_inatomic(void *to,
8911 const void __user *from, unsigned long n)
8912 {
8913 @@ -387,6 +342,10 @@ static inline unsigned long __copy_from_user_inatomic(void *to,
8914 if (ret == 0)
8915 return 0;
8916 }
8917 +
8918 + if (!__builtin_constant_p(n))
8919 + check_object_size(to, n, false);
8920 +
8921 return __copy_tofrom_user((__force void __user *)to, from, n);
8922 }
8923
8924 @@ -413,6 +372,10 @@ static inline unsigned long __copy_to_user_inatomic(void __user *to,
8925 if (ret == 0)
8926 return 0;
8927 }
8928 +
8929 + if (!__builtin_constant_p(n))
8930 + check_object_size(from, n, true);
8931 +
8932 return __copy_tofrom_user(to, (__force const void __user *)from, n);
8933 }
8934
8935 @@ -430,6 +393,92 @@ static inline unsigned long __copy_to_user(void __user *to,
8936 return __copy_to_user_inatomic(to, from, size);
8937 }
8938
8939 +#ifndef __powerpc64__
8940 +
8941 +static inline unsigned long __must_check copy_from_user(void *to,
8942 + const void __user *from, unsigned long n)
8943 +{
8944 + unsigned long over;
8945 +
8946 + if ((long)n < 0)
8947 + return n;
8948 +
8949 + if (access_ok(VERIFY_READ, from, n)) {
8950 + if (!__builtin_constant_p(n))
8951 + check_object_size(to, n, false);
8952 + return __copy_tofrom_user((__force void __user *)to, from, n);
8953 + }
8954 + if ((unsigned long)from < TASK_SIZE) {
8955 + over = (unsigned long)from + n - TASK_SIZE;
8956 + if (!__builtin_constant_p(n - over))
8957 + check_object_size(to, n - over, false);
8958 + return __copy_tofrom_user((__force void __user *)to, from,
8959 + n - over) + over;
8960 + }
8961 + return n;
8962 +}
8963 +
8964 +static inline unsigned long __must_check copy_to_user(void __user *to,
8965 + const void *from, unsigned long n)
8966 +{
8967 + unsigned long over;
8968 +
8969 + if ((long)n < 0)
8970 + return n;
8971 +
8972 + if (access_ok(VERIFY_WRITE, to, n)) {
8973 + if (!__builtin_constant_p(n))
8974 + check_object_size(from, n, true);
8975 + return __copy_tofrom_user(to, (__force void __user *)from, n);
8976 + }
8977 + if ((unsigned long)to < TASK_SIZE) {
8978 + over = (unsigned long)to + n - TASK_SIZE;
8979 + if (!__builtin_constant_p(n))
8980 + check_object_size(from, n - over, true);
8981 + return __copy_tofrom_user(to, (__force void __user *)from,
8982 + n - over) + over;
8983 + }
8984 + return n;
8985 +}
8986 +
8987 +#else /* __powerpc64__ */
8988 +
8989 +#define __copy_in_user(to, from, size) \
8990 + __copy_tofrom_user((to), (from), (size))
8991 +
8992 +static inline unsigned long __must_check copy_from_user(void *to, const void __user *from, unsigned long n)
8993 +{
8994 + if ((long)n < 0 || n > INT_MAX)
8995 + return n;
8996 +
8997 + if (!__builtin_constant_p(n))
8998 + check_object_size(to, n, false);
8999 +
9000 + if (likely(access_ok(VERIFY_READ, from, n)))
9001 + n = __copy_from_user(to, from, n);
9002 + else
9003 + memset(to, 0, n);
9004 + return n;
9005 +}
9006 +
9007 +static inline unsigned long __must_check copy_to_user(void __user *to, const void *from, unsigned long n)
9008 +{
9009 + if ((long)n < 0 || n > INT_MAX)
9010 + return n;
9011 +
9012 + if (likely(access_ok(VERIFY_WRITE, to, n))) {
9013 + if (!__builtin_constant_p(n))
9014 + check_object_size(from, n, true);
9015 + n = __copy_to_user(to, from, n);
9016 + }
9017 + return n;
9018 +}
9019 +
9020 +extern unsigned long copy_in_user(void __user *to, const void __user *from,
9021 + unsigned long n);
9022 +
9023 +#endif /* __powerpc64__ */
9024 +
9025 extern unsigned long __clear_user(void __user *addr, unsigned long size);
9026
9027 static inline unsigned long clear_user(void __user *addr, unsigned long size)
9028 diff --git a/arch/powerpc/kernel/Makefile b/arch/powerpc/kernel/Makefile
9029 index 12868b1..5155667 100644
9030 --- a/arch/powerpc/kernel/Makefile
9031 +++ b/arch/powerpc/kernel/Makefile
9032 @@ -14,6 +14,11 @@ CFLAGS_prom_init.o += -fPIC
9033 CFLAGS_btext.o += -fPIC
9034 endif
9035
9036 +CFLAGS_REMOVE_cputable.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
9037 +CFLAGS_REMOVE_prom_init.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
9038 +CFLAGS_REMOVE_btext.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
9039 +CFLAGS_REMOVE_prom.o = $(LATENT_ENTROPY_PLUGIN_CFLAGS)
9040 +
9041 ifdef CONFIG_FUNCTION_TRACER
9042 # Do not trace early boot code
9043 CFLAGS_REMOVE_cputable.o = -pg -mno-sched-epilog
9044 @@ -26,6 +31,8 @@ CFLAGS_REMOVE_ftrace.o = -pg -mno-sched-epilog
9045 CFLAGS_REMOVE_time.o = -pg -mno-sched-epilog
9046 endif
9047
9048 +CFLAGS_REMOVE_prom_init.o += $(LATENT_ENTROPY_PLUGIN_CFLAGS)
9049 +
9050 obj-y := cputable.o ptrace.o syscalls.o \
9051 irq.o align.o signal_32.o pmc.o vdso.o \
9052 process.o systbl.o idle.o \
9053 diff --git a/arch/powerpc/kernel/exceptions-64e.S b/arch/powerpc/kernel/exceptions-64e.S
9054 index 3e68d1c..72a5ee6 100644
9055 --- a/arch/powerpc/kernel/exceptions-64e.S
9056 +++ b/arch/powerpc/kernel/exceptions-64e.S
9057 @@ -1010,6 +1010,7 @@ storage_fault_common:
9058 std r14,_DAR(r1)
9059 std r15,_DSISR(r1)
9060 addi r3,r1,STACK_FRAME_OVERHEAD
9061 + bl save_nvgprs
9062 mr r4,r14
9063 mr r5,r15
9064 ld r14,PACA_EXGEN+EX_R14(r13)
9065 @@ -1018,8 +1019,7 @@ storage_fault_common:
9066 cmpdi r3,0
9067 bne- 1f
9068 b ret_from_except_lite
9069 -1: bl save_nvgprs
9070 - mr r5,r3
9071 +1: mr r5,r3
9072 addi r3,r1,STACK_FRAME_OVERHEAD
9073 ld r4,_DAR(r1)
9074 bl bad_page_fault
9075 diff --git a/arch/powerpc/kernel/exceptions-64s.S b/arch/powerpc/kernel/exceptions-64s.S
9076 index 0a0399c2..262a2e6 100644
9077 --- a/arch/powerpc/kernel/exceptions-64s.S
9078 +++ b/arch/powerpc/kernel/exceptions-64s.S
9079 @@ -1591,10 +1591,10 @@ handle_page_fault:
9080 11: ld r4,_DAR(r1)
9081 ld r5,_DSISR(r1)
9082 addi r3,r1,STACK_FRAME_OVERHEAD
9083 + bl save_nvgprs
9084 bl do_page_fault
9085 cmpdi r3,0
9086 beq+ 12f
9087 - bl save_nvgprs
9088 mr r5,r3
9089 addi r3,r1,STACK_FRAME_OVERHEAD
9090 lwz r4,_DAR(r1)
9091 diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
9092 index 4509603..cdb491f 100644
9093 --- a/arch/powerpc/kernel/irq.c
9094 +++ b/arch/powerpc/kernel/irq.c
9095 @@ -460,6 +460,8 @@ void migrate_irqs(void)
9096 }
9097 #endif
9098
9099 +extern void gr_handle_kernel_exploit(void);
9100 +
9101 static inline void check_stack_overflow(void)
9102 {
9103 #ifdef CONFIG_DEBUG_STACKOVERFLOW
9104 @@ -472,6 +474,7 @@ static inline void check_stack_overflow(void)
9105 pr_err("do_IRQ: stack overflow: %ld\n",
9106 sp - sizeof(struct thread_info));
9107 dump_stack();
9108 + gr_handle_kernel_exploit();
9109 }
9110 #endif
9111 }
9112 diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c
9113 index c94d2e0..992a9ce 100644
9114 --- a/arch/powerpc/kernel/module_32.c
9115 +++ b/arch/powerpc/kernel/module_32.c
9116 @@ -158,7 +158,7 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr,
9117 me->arch.core_plt_section = i;
9118 }
9119 if (!me->arch.core_plt_section || !me->arch.init_plt_section) {
9120 - pr_err("Module doesn't contain .plt or .init.plt sections.\n");
9121 + pr_err("Module $s doesn't contain .plt or .init.plt sections.\n", me->name);
9122 return -ENOEXEC;
9123 }
9124
9125 @@ -188,11 +188,16 @@ static uint32_t do_plt_call(void *location,
9126
9127 pr_debug("Doing plt for call to 0x%x at 0x%x\n", val, (unsigned int)location);
9128 /* Init, or core PLT? */
9129 - if (location >= mod->module_core
9130 - && location < mod->module_core + mod->core_size)
9131 + if ((location >= mod->module_core_rx && location < mod->module_core_rx + mod->core_size_rx) ||
9132 + (location >= mod->module_core_rw && location < mod->module_core_rw + mod->core_size_rw))
9133 entry = (void *)sechdrs[mod->arch.core_plt_section].sh_addr;
9134 - else
9135 + else if ((location >= mod->module_init_rx && location < mod->module_init_rx + mod->init_size_rx) ||
9136 + (location >= mod->module_init_rw && location < mod->module_init_rw + mod->init_size_rw))
9137 entry = (void *)sechdrs[mod->arch.init_plt_section].sh_addr;
9138 + else {
9139 + printk(KERN_ERR "%s: invalid R_PPC_REL24 entry found\n", mod->name);
9140 + return ~0UL;
9141 + }
9142
9143 /* Find this entry, or if that fails, the next avail. entry */
9144 while (entry->jump[0]) {
9145 @@ -296,7 +301,7 @@ int apply_relocate_add(Elf32_Shdr *sechdrs,
9146 }
9147 #ifdef CONFIG_DYNAMIC_FTRACE
9148 module->arch.tramp =
9149 - do_plt_call(module->module_core,
9150 + do_plt_call(module->module_core_rx,
9151 (unsigned long)ftrace_caller,
9152 sechdrs, module);
9153 #endif
9154 diff --git a/arch/powerpc/kernel/process.c b/arch/powerpc/kernel/process.c
9155 index 64e6e9d..cf90ed5 100644
9156 --- a/arch/powerpc/kernel/process.c
9157 +++ b/arch/powerpc/kernel/process.c
9158 @@ -1033,8 +1033,8 @@ void show_regs(struct pt_regs * regs)
9159 * Lookup NIP late so we have the best change of getting the
9160 * above info out without failing
9161 */
9162 - printk("NIP ["REG"] %pS\n", regs->nip, (void *)regs->nip);
9163 - printk("LR ["REG"] %pS\n", regs->link, (void *)regs->link);
9164 + printk("NIP ["REG"] %pA\n", regs->nip, (void *)regs->nip);
9165 + printk("LR ["REG"] %pA\n", regs->link, (void *)regs->link);
9166 #endif
9167 show_stack(current, (unsigned long *) regs->gpr[1]);
9168 if (!user_mode(regs))
9169 @@ -1550,10 +1550,10 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
9170 newsp = stack[0];
9171 ip = stack[STACK_FRAME_LR_SAVE];
9172 if (!firstframe || ip != lr) {
9173 - printk("["REG"] ["REG"] %pS", sp, ip, (void *)ip);
9174 + printk("["REG"] ["REG"] %pA", sp, ip, (void *)ip);
9175 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
9176 if ((ip == rth) && curr_frame >= 0) {
9177 - printk(" (%pS)",
9178 + printk(" (%pA)",
9179 (void *)current->ret_stack[curr_frame].ret);
9180 curr_frame--;
9181 }
9182 @@ -1573,7 +1573,7 @@ void show_stack(struct task_struct *tsk, unsigned long *stack)
9183 struct pt_regs *regs = (struct pt_regs *)
9184 (sp + STACK_FRAME_OVERHEAD);
9185 lr = regs->link;
9186 - printk("--- interrupt: %lx at %pS\n LR = %pS\n",
9187 + printk("--- interrupt: %lx at %pA\n LR = %pA\n",
9188 regs->trap, (void *)regs->nip, (void *)lr);
9189 firstframe = 1;
9190 }
9191 @@ -1609,49 +1609,3 @@ void notrace __ppc64_runlatch_off(void)
9192 mtspr(SPRN_CTRLT, ctrl);
9193 }
9194 #endif /* CONFIG_PPC64 */
9195 -
9196 -unsigned long arch_align_stack(unsigned long sp)
9197 -{
9198 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
9199 - sp -= get_random_int() & ~PAGE_MASK;
9200 - return sp & ~0xf;
9201 -}
9202 -
9203 -static inline unsigned long brk_rnd(void)
9204 -{
9205 - unsigned long rnd = 0;
9206 -
9207 - /* 8MB for 32bit, 1GB for 64bit */
9208 - if (is_32bit_task())
9209 - rnd = (long)(get_random_int() % (1<<(23-PAGE_SHIFT)));
9210 - else
9211 - rnd = (long)(get_random_int() % (1<<(30-PAGE_SHIFT)));
9212 -
9213 - return rnd << PAGE_SHIFT;
9214 -}
9215 -
9216 -unsigned long arch_randomize_brk(struct mm_struct *mm)
9217 -{
9218 - unsigned long base = mm->brk;
9219 - unsigned long ret;
9220 -
9221 -#ifdef CONFIG_PPC_STD_MMU_64
9222 - /*
9223 - * If we are using 1TB segments and we are allowed to randomise
9224 - * the heap, we can put it above 1TB so it is backed by a 1TB
9225 - * segment. Otherwise the heap will be in the bottom 1TB
9226 - * which always uses 256MB segments and this may result in a
9227 - * performance penalty.
9228 - */
9229 - if (!is_32bit_task() && (mmu_highuser_ssize == MMU_SEGSIZE_1T))
9230 - base = max_t(unsigned long, mm->brk, 1UL << SID_SHIFT_1T);
9231 -#endif
9232 -
9233 - ret = PAGE_ALIGN(base + brk_rnd());
9234 -
9235 - if (ret < mm->brk)
9236 - return mm->brk;
9237 -
9238 - return ret;
9239 -}
9240 -
9241 diff --git a/arch/powerpc/kernel/ptrace.c b/arch/powerpc/kernel/ptrace.c
9242 index f21897b..28c0428 100644
9243 --- a/arch/powerpc/kernel/ptrace.c
9244 +++ b/arch/powerpc/kernel/ptrace.c
9245 @@ -1762,6 +1762,10 @@ long arch_ptrace(struct task_struct *child, long request,
9246 return ret;
9247 }
9248
9249 +#ifdef CONFIG_GRKERNSEC_SETXID
9250 +extern void gr_delayed_cred_worker(void);
9251 +#endif
9252 +
9253 /*
9254 * We must return the syscall number to actually look up in the table.
9255 * This can be -1L to skip running any syscall at all.
9256 @@ -1774,6 +1778,11 @@ long do_syscall_trace_enter(struct pt_regs *regs)
9257
9258 secure_computing_strict(regs->gpr[0]);
9259
9260 +#ifdef CONFIG_GRKERNSEC_SETXID
9261 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
9262 + gr_delayed_cred_worker();
9263 +#endif
9264 +
9265 if (test_thread_flag(TIF_SYSCALL_TRACE) &&
9266 tracehook_report_syscall_entry(regs))
9267 /*
9268 @@ -1805,6 +1814,11 @@ void do_syscall_trace_leave(struct pt_regs *regs)
9269 {
9270 int step;
9271
9272 +#ifdef CONFIG_GRKERNSEC_SETXID
9273 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
9274 + gr_delayed_cred_worker();
9275 +#endif
9276 +
9277 audit_syscall_exit(regs);
9278
9279 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
9280 diff --git a/arch/powerpc/kernel/signal_32.c b/arch/powerpc/kernel/signal_32.c
9281 index da50e0c..5ff6307 100644
9282 --- a/arch/powerpc/kernel/signal_32.c
9283 +++ b/arch/powerpc/kernel/signal_32.c
9284 @@ -1009,7 +1009,7 @@ int handle_rt_signal32(struct ksignal *ksig, sigset_t *oldset,
9285 /* Save user registers on the stack */
9286 frame = &rt_sf->uc.uc_mcontext;
9287 addr = frame;
9288 - if (vdso32_rt_sigtramp && current->mm->context.vdso_base) {
9289 + if (vdso32_rt_sigtramp && current->mm->context.vdso_base != ~0UL) {
9290 sigret = 0;
9291 tramp = current->mm->context.vdso_base + vdso32_rt_sigtramp;
9292 } else {
9293 diff --git a/arch/powerpc/kernel/signal_64.c b/arch/powerpc/kernel/signal_64.c
9294 index c7c24d2..1bf7039 100644
9295 --- a/arch/powerpc/kernel/signal_64.c
9296 +++ b/arch/powerpc/kernel/signal_64.c
9297 @@ -754,7 +754,7 @@ int handle_rt_signal64(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs
9298 current->thread.fp_state.fpscr = 0;
9299
9300 /* Set up to return from userspace. */
9301 - if (vdso64_rt_sigtramp && current->mm->context.vdso_base) {
9302 + if (vdso64_rt_sigtramp && current->mm->context.vdso_base != ~0UL) {
9303 regs->link = current->mm->context.vdso_base + vdso64_rt_sigtramp;
9304 } else {
9305 err |= setup_trampoline(__NR_rt_sigreturn, &frame->tramp[0]);
9306 diff --git a/arch/powerpc/kernel/traps.c b/arch/powerpc/kernel/traps.c
9307 index 37de90f..12472ac 100644
9308 --- a/arch/powerpc/kernel/traps.c
9309 +++ b/arch/powerpc/kernel/traps.c
9310 @@ -36,6 +36,7 @@
9311 #include <linux/debugfs.h>
9312 #include <linux/ratelimit.h>
9313 #include <linux/context_tracking.h>
9314 +#include <linux/uaccess.h>
9315
9316 #include <asm/emulated_ops.h>
9317 #include <asm/pgtable.h>
9318 @@ -142,6 +143,8 @@ static unsigned __kprobes long oops_begin(struct pt_regs *regs)
9319 return flags;
9320 }
9321
9322 +extern void gr_handle_kernel_exploit(void);
9323 +
9324 static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
9325 int signr)
9326 {
9327 @@ -191,6 +194,9 @@ static void __kprobes oops_end(unsigned long flags, struct pt_regs *regs,
9328 panic("Fatal exception in interrupt");
9329 if (panic_on_oops)
9330 panic("Fatal exception");
9331 +
9332 + gr_handle_kernel_exploit();
9333 +
9334 do_exit(signr);
9335 }
9336
9337 @@ -1139,6 +1145,26 @@ void __kprobes program_check_exception(struct pt_regs *regs)
9338 enum ctx_state prev_state = exception_enter();
9339 unsigned int reason = get_reason(regs);
9340
9341 +#ifdef CONFIG_PAX_REFCOUNT
9342 + unsigned int bkpt;
9343 + const struct exception_table_entry *entry;
9344 +
9345 + if (reason & REASON_ILLEGAL) {
9346 + /* Check if PaX bad instruction */
9347 + if (!probe_kernel_address(regs->nip, bkpt) && bkpt == 0xc00b00) {
9348 + current->thread.trap_nr = 0;
9349 + pax_report_refcount_overflow(regs);
9350 + /* fixup_exception() for PowerPC does not exist, simulate its job */
9351 + if ((entry = search_exception_tables(regs->nip)) != NULL) {
9352 + regs->nip = entry->fixup;
9353 + return;
9354 + }
9355 + /* fixup_exception() could not handle */
9356 + goto bail;
9357 + }
9358 + }
9359 +#endif
9360 +
9361 /* We can now get here via a FP Unavailable exception if the core
9362 * has no FPU, in that case the reason flags will be 0 */
9363
9364 diff --git a/arch/powerpc/kernel/vdso.c b/arch/powerpc/kernel/vdso.c
9365 index b457bfa..9018cde 100644
9366 --- a/arch/powerpc/kernel/vdso.c
9367 +++ b/arch/powerpc/kernel/vdso.c
9368 @@ -34,6 +34,7 @@
9369 #include <asm/vdso.h>
9370 #include <asm/vdso_datapage.h>
9371 #include <asm/setup.h>
9372 +#include <asm/mman.h>
9373
9374 #undef DEBUG
9375
9376 @@ -179,7 +180,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
9377 vdso_base = VDSO32_MBASE;
9378 #endif
9379
9380 - current->mm->context.vdso_base = 0;
9381 + current->mm->context.vdso_base = ~0UL;
9382
9383 /* vDSO has a problem and was disabled, just don't "enable" it for the
9384 * process
9385 @@ -199,7 +200,7 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
9386 vdso_base = get_unmapped_area(NULL, vdso_base,
9387 (vdso_pages << PAGE_SHIFT) +
9388 ((VDSO_ALIGNMENT - 1) & PAGE_MASK),
9389 - 0, 0);
9390 + 0, MAP_PRIVATE | MAP_EXECUTABLE);
9391 if (IS_ERR_VALUE(vdso_base)) {
9392 rc = vdso_base;
9393 goto fail_mmapsem;
9394 diff --git a/arch/powerpc/kvm/powerpc.c b/arch/powerpc/kvm/powerpc.c
9395 index e5dde32..557af3d 100644
9396 --- a/arch/powerpc/kvm/powerpc.c
9397 +++ b/arch/powerpc/kvm/powerpc.c
9398 @@ -1404,7 +1404,7 @@ void kvmppc_init_lpid(unsigned long nr_lpids_param)
9399 }
9400 EXPORT_SYMBOL_GPL(kvmppc_init_lpid);
9401
9402 -int kvm_arch_init(void *opaque)
9403 +int kvm_arch_init(const void *opaque)
9404 {
9405 return 0;
9406 }
9407 diff --git a/arch/powerpc/lib/usercopy_64.c b/arch/powerpc/lib/usercopy_64.c
9408 index 5eea6f3..5d10396 100644
9409 --- a/arch/powerpc/lib/usercopy_64.c
9410 +++ b/arch/powerpc/lib/usercopy_64.c
9411 @@ -9,22 +9,6 @@
9412 #include <linux/module.h>
9413 #include <asm/uaccess.h>
9414
9415 -unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
9416 -{
9417 - if (likely(access_ok(VERIFY_READ, from, n)))
9418 - n = __copy_from_user(to, from, n);
9419 - else
9420 - memset(to, 0, n);
9421 - return n;
9422 -}
9423 -
9424 -unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
9425 -{
9426 - if (likely(access_ok(VERIFY_WRITE, to, n)))
9427 - n = __copy_to_user(to, from, n);
9428 - return n;
9429 -}
9430 -
9431 unsigned long copy_in_user(void __user *to, const void __user *from,
9432 unsigned long n)
9433 {
9434 @@ -35,7 +19,5 @@ unsigned long copy_in_user(void __user *to, const void __user *from,
9435 return n;
9436 }
9437
9438 -EXPORT_SYMBOL(copy_from_user);
9439 -EXPORT_SYMBOL(copy_to_user);
9440 EXPORT_SYMBOL(copy_in_user);
9441
9442 diff --git a/arch/powerpc/mm/fault.c b/arch/powerpc/mm/fault.c
9443 index a67c6d7..a662e6d 100644
9444 --- a/arch/powerpc/mm/fault.c
9445 +++ b/arch/powerpc/mm/fault.c
9446 @@ -34,6 +34,10 @@
9447 #include <linux/context_tracking.h>
9448 #include <linux/hugetlb.h>
9449 #include <linux/uaccess.h>
9450 +#include <linux/slab.h>
9451 +#include <linux/pagemap.h>
9452 +#include <linux/compiler.h>
9453 +#include <linux/unistd.h>
9454
9455 #include <asm/firmware.h>
9456 #include <asm/page.h>
9457 @@ -68,6 +72,33 @@ static inline int notify_page_fault(struct pt_regs *regs)
9458 }
9459 #endif
9460
9461 +#ifdef CONFIG_PAX_PAGEEXEC
9462 +/*
9463 + * PaX: decide what to do with offenders (regs->nip = fault address)
9464 + *
9465 + * returns 1 when task should be killed
9466 + */
9467 +static int pax_handle_fetch_fault(struct pt_regs *regs)
9468 +{
9469 + return 1;
9470 +}
9471 +
9472 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
9473 +{
9474 + unsigned long i;
9475 +
9476 + printk(KERN_ERR "PAX: bytes at PC: ");
9477 + for (i = 0; i < 5; i++) {
9478 + unsigned int c;
9479 + if (get_user(c, (unsigned int __user *)pc+i))
9480 + printk(KERN_CONT "???????? ");
9481 + else
9482 + printk(KERN_CONT "%08x ", c);
9483 + }
9484 + printk("\n");
9485 +}
9486 +#endif
9487 +
9488 /*
9489 * Check whether the instruction at regs->nip is a store using
9490 * an update addressing form which will update r1.
9491 @@ -227,7 +258,7 @@ int __kprobes do_page_fault(struct pt_regs *regs, unsigned long address,
9492 * indicate errors in DSISR but can validly be set in SRR1.
9493 */
9494 if (trap == 0x400)
9495 - error_code &= 0x48200000;
9496 + error_code &= 0x58200000;
9497 else
9498 is_write = error_code & DSISR_ISSTORE;
9499 #else
9500 @@ -384,12 +415,16 @@ good_area:
9501 * "undefined". Of those that can be set, this is the only
9502 * one which seems bad.
9503 */
9504 - if (error_code & 0x10000000)
9505 + if (error_code & DSISR_GUARDED)
9506 /* Guarded storage error. */
9507 goto bad_area;
9508 #endif /* CONFIG_8xx */
9509
9510 if (is_exec) {
9511 +#ifdef CONFIG_PPC_STD_MMU
9512 + if (error_code & DSISR_GUARDED)
9513 + goto bad_area;
9514 +#endif
9515 /*
9516 * Allow execution from readable areas if the MMU does not
9517 * provide separate controls over reading and executing.
9518 @@ -484,6 +519,23 @@ bad_area:
9519 bad_area_nosemaphore:
9520 /* User mode accesses cause a SIGSEGV */
9521 if (user_mode(regs)) {
9522 +
9523 +#ifdef CONFIG_PAX_PAGEEXEC
9524 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
9525 +#ifdef CONFIG_PPC_STD_MMU
9526 + if (is_exec && (error_code & (DSISR_PROTFAULT | DSISR_GUARDED))) {
9527 +#else
9528 + if (is_exec && regs->nip == address) {
9529 +#endif
9530 + switch (pax_handle_fetch_fault(regs)) {
9531 + }
9532 +
9533 + pax_report_fault(regs, (void *)regs->nip, (void *)regs->gpr[PT_R1]);
9534 + do_group_exit(SIGKILL);
9535 + }
9536 + }
9537 +#endif
9538 +
9539 _exception(SIGSEGV, regs, code, address);
9540 goto bail;
9541 }
9542 diff --git a/arch/powerpc/mm/mmap.c b/arch/powerpc/mm/mmap.c
9543 index 0f0502e..bc3e7a3 100644
9544 --- a/arch/powerpc/mm/mmap.c
9545 +++ b/arch/powerpc/mm/mmap.c
9546 @@ -86,6 +86,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9547 {
9548 unsigned long random_factor = 0UL;
9549
9550 +#ifdef CONFIG_PAX_RANDMMAP
9551 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9552 +#endif
9553 +
9554 if (current->flags & PF_RANDOMIZE)
9555 random_factor = arch_mmap_rnd();
9556
9557 @@ -95,9 +99,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9558 */
9559 if (mmap_is_legacy()) {
9560 mm->mmap_base = TASK_UNMAPPED_BASE;
9561 +
9562 +#ifdef CONFIG_PAX_RANDMMAP
9563 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9564 + mm->mmap_base += mm->delta_mmap;
9565 +#endif
9566 +
9567 mm->get_unmapped_area = arch_get_unmapped_area;
9568 } else {
9569 mm->mmap_base = mmap_base(random_factor);
9570 +
9571 +#ifdef CONFIG_PAX_RANDMMAP
9572 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9573 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
9574 +#endif
9575 +
9576 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
9577 }
9578 }
9579 diff --git a/arch/powerpc/mm/slice.c b/arch/powerpc/mm/slice.c
9580 index 0f432a7..abfe841 100644
9581 --- a/arch/powerpc/mm/slice.c
9582 +++ b/arch/powerpc/mm/slice.c
9583 @@ -105,7 +105,7 @@ static int slice_area_is_free(struct mm_struct *mm, unsigned long addr,
9584 if ((mm->task_size - len) < addr)
9585 return 0;
9586 vma = find_vma(mm, addr);
9587 - return (!vma || (addr + len) <= vma->vm_start);
9588 + return check_heap_stack_gap(vma, addr, len, 0);
9589 }
9590
9591 static int slice_low_has_vma(struct mm_struct *mm, unsigned long slice)
9592 @@ -277,6 +277,12 @@ static unsigned long slice_find_area_bottomup(struct mm_struct *mm,
9593 info.align_offset = 0;
9594
9595 addr = TASK_UNMAPPED_BASE;
9596 +
9597 +#ifdef CONFIG_PAX_RANDMMAP
9598 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9599 + addr += mm->delta_mmap;
9600 +#endif
9601 +
9602 while (addr < TASK_SIZE) {
9603 info.low_limit = addr;
9604 if (!slice_scan_available(addr, available, 1, &addr))
9605 @@ -410,6 +416,11 @@ unsigned long slice_get_unmapped_area(unsigned long addr, unsigned long len,
9606 if (fixed && addr > (mm->task_size - len))
9607 return -ENOMEM;
9608
9609 +#ifdef CONFIG_PAX_RANDMMAP
9610 + if (!fixed && (mm->pax_flags & MF_PAX_RANDMMAP))
9611 + addr = 0;
9612 +#endif
9613 +
9614 /* If hint, make sure it matches our alignment restrictions */
9615 if (!fixed && addr) {
9616 addr = _ALIGN_UP(addr, 1ul << pshift);
9617 diff --git a/arch/powerpc/platforms/cell/spufs/file.c b/arch/powerpc/platforms/cell/spufs/file.c
9618 index d966bbe..372124a 100644
9619 --- a/arch/powerpc/platforms/cell/spufs/file.c
9620 +++ b/arch/powerpc/platforms/cell/spufs/file.c
9621 @@ -280,9 +280,9 @@ spufs_mem_mmap_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
9622 return VM_FAULT_NOPAGE;
9623 }
9624
9625 -static int spufs_mem_mmap_access(struct vm_area_struct *vma,
9626 +static ssize_t spufs_mem_mmap_access(struct vm_area_struct *vma,
9627 unsigned long address,
9628 - void *buf, int len, int write)
9629 + void *buf, size_t len, int write)
9630 {
9631 struct spu_context *ctx = vma->vm_file->private_data;
9632 unsigned long offset = address - vma->vm_start;
9633 diff --git a/arch/s390/Kconfig.debug b/arch/s390/Kconfig.debug
9634 index c56878e..073d04e 100644
9635 --- a/arch/s390/Kconfig.debug
9636 +++ b/arch/s390/Kconfig.debug
9637 @@ -21,6 +21,7 @@ config S390_PTDUMP
9638 bool "Export kernel pagetable layout to userspace via debugfs"
9639 depends on DEBUG_KERNEL
9640 select DEBUG_FS
9641 + depends on !GRKERNSEC_KMEM
9642 ---help---
9643 Say Y here if you want to show the kernel pagetable layout in a
9644 debugfs file. This information is only useful for kernel developers
9645 diff --git a/arch/s390/include/asm/atomic.h b/arch/s390/include/asm/atomic.h
9646 index adbe380..adb7516 100644
9647 --- a/arch/s390/include/asm/atomic.h
9648 +++ b/arch/s390/include/asm/atomic.h
9649 @@ -317,4 +317,14 @@ static inline long long atomic64_dec_if_positive(atomic64_t *v)
9650 #define atomic64_dec_and_test(_v) (atomic64_sub_return(1, _v) == 0)
9651 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
9652
9653 +#define atomic64_read_unchecked(v) atomic64_read(v)
9654 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
9655 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
9656 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
9657 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
9658 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
9659 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
9660 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
9661 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
9662 +
9663 #endif /* __ARCH_S390_ATOMIC__ */
9664 diff --git a/arch/s390/include/asm/barrier.h b/arch/s390/include/asm/barrier.h
9665 index e6f8615..4a66339 100644
9666 --- a/arch/s390/include/asm/barrier.h
9667 +++ b/arch/s390/include/asm/barrier.h
9668 @@ -42,7 +42,7 @@
9669 do { \
9670 compiletime_assert_atomic_type(*p); \
9671 barrier(); \
9672 - ACCESS_ONCE(*p) = (v); \
9673 + ACCESS_ONCE_RW(*p) = (v); \
9674 } while (0)
9675
9676 #define smp_load_acquire(p) \
9677 diff --git a/arch/s390/include/asm/cache.h b/arch/s390/include/asm/cache.h
9678 index 4d7ccac..d03d0ad 100644
9679 --- a/arch/s390/include/asm/cache.h
9680 +++ b/arch/s390/include/asm/cache.h
9681 @@ -9,8 +9,10 @@
9682 #ifndef __ARCH_S390_CACHE_H
9683 #define __ARCH_S390_CACHE_H
9684
9685 -#define L1_CACHE_BYTES 256
9686 +#include <linux/const.h>
9687 +
9688 #define L1_CACHE_SHIFT 8
9689 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9690 #define NET_SKB_PAD 32
9691
9692 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
9693 diff --git a/arch/s390/include/asm/elf.h b/arch/s390/include/asm/elf.h
9694 index 3ad48f2..64cc6f3 100644
9695 --- a/arch/s390/include/asm/elf.h
9696 +++ b/arch/s390/include/asm/elf.h
9697 @@ -163,6 +163,13 @@ extern unsigned int vdso_enabled;
9698 (STACK_TOP / 3 * 2) : \
9699 (STACK_TOP / 3 * 2) & ~((1UL << 32) - 1))
9700
9701 +#ifdef CONFIG_PAX_ASLR
9702 +#define PAX_ELF_ET_DYN_BASE (test_thread_flag(TIF_31BIT) ? 0x10000UL : 0x80000000UL)
9703 +
9704 +#define PAX_DELTA_MMAP_LEN (test_thread_flag(TIF_31BIT) ? 15 : 26)
9705 +#define PAX_DELTA_STACK_LEN (test_thread_flag(TIF_31BIT) ? 15 : 26)
9706 +#endif
9707 +
9708 /* This yields a mask that user programs can use to figure out what
9709 instruction set this CPU supports. */
9710
9711 diff --git a/arch/s390/include/asm/exec.h b/arch/s390/include/asm/exec.h
9712 index c4a93d6..4d2a9b4 100644
9713 --- a/arch/s390/include/asm/exec.h
9714 +++ b/arch/s390/include/asm/exec.h
9715 @@ -7,6 +7,6 @@
9716 #ifndef __ASM_EXEC_H
9717 #define __ASM_EXEC_H
9718
9719 -extern unsigned long arch_align_stack(unsigned long sp);
9720 +#define arch_align_stack(x) ((x) & ~0xfUL)
9721
9722 #endif /* __ASM_EXEC_H */
9723 diff --git a/arch/s390/include/asm/uaccess.h b/arch/s390/include/asm/uaccess.h
9724 index 9dd4cc4..36f4b84 100644
9725 --- a/arch/s390/include/asm/uaccess.h
9726 +++ b/arch/s390/include/asm/uaccess.h
9727 @@ -59,6 +59,7 @@ static inline int __range_ok(unsigned long addr, unsigned long size)
9728 __range_ok((unsigned long)(addr), (size)); \
9729 })
9730
9731 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
9732 #define access_ok(type, addr, size) __access_ok(addr, size)
9733
9734 /*
9735 @@ -278,6 +279,10 @@ static inline unsigned long __must_check
9736 copy_to_user(void __user *to, const void *from, unsigned long n)
9737 {
9738 might_fault();
9739 +
9740 + if ((long)n < 0)
9741 + return n;
9742 +
9743 return __copy_to_user(to, from, n);
9744 }
9745
9746 @@ -307,10 +312,14 @@ __compiletime_warning("copy_from_user() buffer size is not provably correct")
9747 static inline unsigned long __must_check
9748 copy_from_user(void *to, const void __user *from, unsigned long n)
9749 {
9750 - unsigned int sz = __compiletime_object_size(to);
9751 + size_t sz = __compiletime_object_size(to);
9752
9753 might_fault();
9754 - if (unlikely(sz != -1 && sz < n)) {
9755 +
9756 + if ((long)n < 0)
9757 + return n;
9758 +
9759 + if (unlikely(sz != (size_t)-1 && sz < n)) {
9760 copy_from_user_overflow();
9761 return n;
9762 }
9763 diff --git a/arch/s390/kernel/module.c b/arch/s390/kernel/module.c
9764 index 0c1a679..e1df357 100644
9765 --- a/arch/s390/kernel/module.c
9766 +++ b/arch/s390/kernel/module.c
9767 @@ -159,11 +159,11 @@ int module_frob_arch_sections(Elf_Ehdr *hdr, Elf_Shdr *sechdrs,
9768
9769 /* Increase core size by size of got & plt and set start
9770 offsets for got and plt. */
9771 - me->core_size = ALIGN(me->core_size, 4);
9772 - me->arch.got_offset = me->core_size;
9773 - me->core_size += me->arch.got_size;
9774 - me->arch.plt_offset = me->core_size;
9775 - me->core_size += me->arch.plt_size;
9776 + me->core_size_rw = ALIGN(me->core_size_rw, 4);
9777 + me->arch.got_offset = me->core_size_rw;
9778 + me->core_size_rw += me->arch.got_size;
9779 + me->arch.plt_offset = me->core_size_rx;
9780 + me->core_size_rx += me->arch.plt_size;
9781 return 0;
9782 }
9783
9784 @@ -279,7 +279,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9785 if (info->got_initialized == 0) {
9786 Elf_Addr *gotent;
9787
9788 - gotent = me->module_core + me->arch.got_offset +
9789 + gotent = me->module_core_rw + me->arch.got_offset +
9790 info->got_offset;
9791 *gotent = val;
9792 info->got_initialized = 1;
9793 @@ -302,7 +302,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9794 rc = apply_rela_bits(loc, val, 0, 64, 0);
9795 else if (r_type == R_390_GOTENT ||
9796 r_type == R_390_GOTPLTENT) {
9797 - val += (Elf_Addr) me->module_core - loc;
9798 + val += (Elf_Addr) me->module_core_rw - loc;
9799 rc = apply_rela_bits(loc, val, 1, 32, 1);
9800 }
9801 break;
9802 @@ -315,7 +315,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9803 case R_390_PLTOFF64: /* 16 bit offset from GOT to PLT. */
9804 if (info->plt_initialized == 0) {
9805 unsigned int *ip;
9806 - ip = me->module_core + me->arch.plt_offset +
9807 + ip = me->module_core_rx + me->arch.plt_offset +
9808 info->plt_offset;
9809 ip[0] = 0x0d10e310; /* basr 1,0; lg 1,10(1); br 1 */
9810 ip[1] = 0x100a0004;
9811 @@ -334,7 +334,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9812 val - loc + 0xffffUL < 0x1ffffeUL) ||
9813 (r_type == R_390_PLT32DBL &&
9814 val - loc + 0xffffffffULL < 0x1fffffffeULL)))
9815 - val = (Elf_Addr) me->module_core +
9816 + val = (Elf_Addr) me->module_core_rx +
9817 me->arch.plt_offset +
9818 info->plt_offset;
9819 val += rela->r_addend - loc;
9820 @@ -356,7 +356,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9821 case R_390_GOTOFF32: /* 32 bit offset to GOT. */
9822 case R_390_GOTOFF64: /* 64 bit offset to GOT. */
9823 val = val + rela->r_addend -
9824 - ((Elf_Addr) me->module_core + me->arch.got_offset);
9825 + ((Elf_Addr) me->module_core_rw + me->arch.got_offset);
9826 if (r_type == R_390_GOTOFF16)
9827 rc = apply_rela_bits(loc, val, 0, 16, 0);
9828 else if (r_type == R_390_GOTOFF32)
9829 @@ -366,7 +366,7 @@ static int apply_rela(Elf_Rela *rela, Elf_Addr base, Elf_Sym *symtab,
9830 break;
9831 case R_390_GOTPC: /* 32 bit PC relative offset to GOT. */
9832 case R_390_GOTPCDBL: /* 32 bit PC rel. off. to GOT shifted by 1. */
9833 - val = (Elf_Addr) me->module_core + me->arch.got_offset +
9834 + val = (Elf_Addr) me->module_core_rw + me->arch.got_offset +
9835 rela->r_addend - loc;
9836 if (r_type == R_390_GOTPC)
9837 rc = apply_rela_bits(loc, val, 1, 32, 0);
9838 diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
9839 index 8f587d8..0642516b 100644
9840 --- a/arch/s390/kernel/process.c
9841 +++ b/arch/s390/kernel/process.c
9842 @@ -200,27 +200,3 @@ unsigned long get_wchan(struct task_struct *p)
9843 }
9844 return 0;
9845 }
9846 -
9847 -unsigned long arch_align_stack(unsigned long sp)
9848 -{
9849 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
9850 - sp -= get_random_int() & ~PAGE_MASK;
9851 - return sp & ~0xf;
9852 -}
9853 -
9854 -static inline unsigned long brk_rnd(void)
9855 -{
9856 - /* 8MB for 32bit, 1GB for 64bit */
9857 - if (is_32bit_task())
9858 - return (get_random_int() & 0x7ffUL) << PAGE_SHIFT;
9859 - else
9860 - return (get_random_int() & 0x3ffffUL) << PAGE_SHIFT;
9861 -}
9862 -
9863 -unsigned long arch_randomize_brk(struct mm_struct *mm)
9864 -{
9865 - unsigned long ret;
9866 -
9867 - ret = PAGE_ALIGN(mm->brk + brk_rnd());
9868 - return (ret > mm->brk) ? ret : mm->brk;
9869 -}
9870 diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
9871 index 6e552af..3e608a1 100644
9872 --- a/arch/s390/mm/mmap.c
9873 +++ b/arch/s390/mm/mmap.c
9874 @@ -239,6 +239,10 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9875 {
9876 unsigned long random_factor = 0UL;
9877
9878 +#ifdef CONFIG_PAX_RANDMMAP
9879 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9880 +#endif
9881 +
9882 if (current->flags & PF_RANDOMIZE)
9883 random_factor = arch_mmap_rnd();
9884
9885 @@ -248,9 +252,21 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
9886 */
9887 if (mmap_is_legacy()) {
9888 mm->mmap_base = mmap_base_legacy(random_factor);
9889 +
9890 +#ifdef CONFIG_PAX_RANDMMAP
9891 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9892 + mm->mmap_base += mm->delta_mmap;
9893 +#endif
9894 +
9895 mm->get_unmapped_area = s390_get_unmapped_area;
9896 } else {
9897 mm->mmap_base = mmap_base(random_factor);
9898 +
9899 +#ifdef CONFIG_PAX_RANDMMAP
9900 + if (mm->pax_flags & MF_PAX_RANDMMAP)
9901 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
9902 +#endif
9903 +
9904 mm->get_unmapped_area = s390_get_unmapped_area_topdown;
9905 }
9906 }
9907 diff --git a/arch/score/include/asm/cache.h b/arch/score/include/asm/cache.h
9908 index ae3d59f..f65f075 100644
9909 --- a/arch/score/include/asm/cache.h
9910 +++ b/arch/score/include/asm/cache.h
9911 @@ -1,7 +1,9 @@
9912 #ifndef _ASM_SCORE_CACHE_H
9913 #define _ASM_SCORE_CACHE_H
9914
9915 +#include <linux/const.h>
9916 +
9917 #define L1_CACHE_SHIFT 4
9918 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
9919 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9920
9921 #endif /* _ASM_SCORE_CACHE_H */
9922 diff --git a/arch/score/include/asm/exec.h b/arch/score/include/asm/exec.h
9923 index f9f3cd5..58ff438 100644
9924 --- a/arch/score/include/asm/exec.h
9925 +++ b/arch/score/include/asm/exec.h
9926 @@ -1,6 +1,6 @@
9927 #ifndef _ASM_SCORE_EXEC_H
9928 #define _ASM_SCORE_EXEC_H
9929
9930 -extern unsigned long arch_align_stack(unsigned long sp);
9931 +#define arch_align_stack(x) (x)
9932
9933 #endif /* _ASM_SCORE_EXEC_H */
9934 diff --git a/arch/score/kernel/process.c b/arch/score/kernel/process.c
9935 index a1519ad3..e8ac1ff 100644
9936 --- a/arch/score/kernel/process.c
9937 +++ b/arch/score/kernel/process.c
9938 @@ -116,8 +116,3 @@ unsigned long get_wchan(struct task_struct *task)
9939
9940 return task_pt_regs(task)->cp0_epc;
9941 }
9942 -
9943 -unsigned long arch_align_stack(unsigned long sp)
9944 -{
9945 - return sp;
9946 -}
9947 diff --git a/arch/sh/include/asm/cache.h b/arch/sh/include/asm/cache.h
9948 index ef9e555..331bd29 100644
9949 --- a/arch/sh/include/asm/cache.h
9950 +++ b/arch/sh/include/asm/cache.h
9951 @@ -9,10 +9,11 @@
9952 #define __ASM_SH_CACHE_H
9953 #ifdef __KERNEL__
9954
9955 +#include <linux/const.h>
9956 #include <linux/init.h>
9957 #include <cpu/cache.h>
9958
9959 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
9960 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
9961
9962 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
9963
9964 diff --git a/arch/sh/mm/mmap.c b/arch/sh/mm/mmap.c
9965 index 6777177..cb5e44f 100644
9966 --- a/arch/sh/mm/mmap.c
9967 +++ b/arch/sh/mm/mmap.c
9968 @@ -36,6 +36,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9969 struct mm_struct *mm = current->mm;
9970 struct vm_area_struct *vma;
9971 int do_colour_align;
9972 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
9973 struct vm_unmapped_area_info info;
9974
9975 if (flags & MAP_FIXED) {
9976 @@ -55,6 +56,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9977 if (filp || (flags & MAP_SHARED))
9978 do_colour_align = 1;
9979
9980 +#ifdef CONFIG_PAX_RANDMMAP
9981 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
9982 +#endif
9983 +
9984 if (addr) {
9985 if (do_colour_align)
9986 addr = COLOUR_ALIGN(addr, pgoff);
9987 @@ -62,14 +67,13 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
9988 addr = PAGE_ALIGN(addr);
9989
9990 vma = find_vma(mm, addr);
9991 - if (TASK_SIZE - len >= addr &&
9992 - (!vma || addr + len <= vma->vm_start))
9993 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
9994 return addr;
9995 }
9996
9997 info.flags = 0;
9998 info.length = len;
9999 - info.low_limit = TASK_UNMAPPED_BASE;
10000 + info.low_limit = mm->mmap_base;
10001 info.high_limit = TASK_SIZE;
10002 info.align_mask = do_colour_align ? (PAGE_MASK & shm_align_mask) : 0;
10003 info.align_offset = pgoff << PAGE_SHIFT;
10004 @@ -85,6 +89,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10005 struct mm_struct *mm = current->mm;
10006 unsigned long addr = addr0;
10007 int do_colour_align;
10008 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
10009 struct vm_unmapped_area_info info;
10010
10011 if (flags & MAP_FIXED) {
10012 @@ -104,6 +109,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10013 if (filp || (flags & MAP_SHARED))
10014 do_colour_align = 1;
10015
10016 +#ifdef CONFIG_PAX_RANDMMAP
10017 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10018 +#endif
10019 +
10020 /* requesting a specific address */
10021 if (addr) {
10022 if (do_colour_align)
10023 @@ -112,8 +121,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10024 addr = PAGE_ALIGN(addr);
10025
10026 vma = find_vma(mm, addr);
10027 - if (TASK_SIZE - len >= addr &&
10028 - (!vma || addr + len <= vma->vm_start))
10029 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
10030 return addr;
10031 }
10032
10033 @@ -135,6 +143,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10034 VM_BUG_ON(addr != -ENOMEM);
10035 info.flags = 0;
10036 info.low_limit = TASK_UNMAPPED_BASE;
10037 +
10038 +#ifdef CONFIG_PAX_RANDMMAP
10039 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10040 + info.low_limit += mm->delta_mmap;
10041 +#endif
10042 +
10043 info.high_limit = TASK_SIZE;
10044 addr = vm_unmapped_area(&info);
10045 }
10046 diff --git a/arch/sparc/include/asm/atomic_64.h b/arch/sparc/include/asm/atomic_64.h
10047 index 4082749..fd97781 100644
10048 --- a/arch/sparc/include/asm/atomic_64.h
10049 +++ b/arch/sparc/include/asm/atomic_64.h
10050 @@ -15,18 +15,38 @@
10051 #define ATOMIC64_INIT(i) { (i) }
10052
10053 #define atomic_read(v) ACCESS_ONCE((v)->counter)
10054 +static inline int atomic_read_unchecked(const atomic_unchecked_t *v)
10055 +{
10056 + return ACCESS_ONCE(v->counter);
10057 +}
10058 #define atomic64_read(v) ACCESS_ONCE((v)->counter)
10059 +static inline long atomic64_read_unchecked(const atomic64_unchecked_t *v)
10060 +{
10061 + return ACCESS_ONCE(v->counter);
10062 +}
10063
10064 #define atomic_set(v, i) (((v)->counter) = i)
10065 +static inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
10066 +{
10067 + v->counter = i;
10068 +}
10069 #define atomic64_set(v, i) (((v)->counter) = i)
10070 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
10071 +{
10072 + v->counter = i;
10073 +}
10074
10075 -#define ATOMIC_OP(op) \
10076 -void atomic_##op(int, atomic_t *); \
10077 -void atomic64_##op(long, atomic64_t *);
10078 +#define __ATOMIC_OP(op, suffix) \
10079 +void atomic_##op##suffix(int, atomic##suffix##_t *); \
10080 +void atomic64_##op##suffix(long, atomic64##suffix##_t *);
10081
10082 -#define ATOMIC_OP_RETURN(op) \
10083 -int atomic_##op##_return(int, atomic_t *); \
10084 -long atomic64_##op##_return(long, atomic64_t *);
10085 +#define ATOMIC_OP(op) __ATOMIC_OP(op, ) __ATOMIC_OP(op, _unchecked)
10086 +
10087 +#define __ATOMIC_OP_RETURN(op, suffix) \
10088 +int atomic_##op##_return##suffix(int, atomic##suffix##_t *); \
10089 +long atomic64_##op##_return##suffix(long, atomic64##suffix##_t *);
10090 +
10091 +#define ATOMIC_OP_RETURN(op) __ATOMIC_OP_RETURN(op, ) __ATOMIC_OP_RETURN(op, _unchecked)
10092
10093 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
10094
10095 @@ -35,13 +55,23 @@ ATOMIC_OPS(sub)
10096
10097 #undef ATOMIC_OPS
10098 #undef ATOMIC_OP_RETURN
10099 +#undef __ATOMIC_OP_RETURN
10100 #undef ATOMIC_OP
10101 +#undef __ATOMIC_OP
10102
10103 #define atomic_dec_return(v) atomic_sub_return(1, v)
10104 #define atomic64_dec_return(v) atomic64_sub_return(1, v)
10105
10106 #define atomic_inc_return(v) atomic_add_return(1, v)
10107 +static inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
10108 +{
10109 + return atomic_add_return_unchecked(1, v);
10110 +}
10111 #define atomic64_inc_return(v) atomic64_add_return(1, v)
10112 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
10113 +{
10114 + return atomic64_add_return_unchecked(1, v);
10115 +}
10116
10117 /*
10118 * atomic_inc_and_test - increment and test
10119 @@ -52,6 +82,10 @@ ATOMIC_OPS(sub)
10120 * other cases.
10121 */
10122 #define atomic_inc_and_test(v) (atomic_inc_return(v) == 0)
10123 +static inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
10124 +{
10125 + return atomic_inc_return_unchecked(v) == 0;
10126 +}
10127 #define atomic64_inc_and_test(v) (atomic64_inc_return(v) == 0)
10128
10129 #define atomic_sub_and_test(i, v) (atomic_sub_return(i, v) == 0)
10130 @@ -61,25 +95,60 @@ ATOMIC_OPS(sub)
10131 #define atomic64_dec_and_test(v) (atomic64_sub_return(1, v) == 0)
10132
10133 #define atomic_inc(v) atomic_add(1, v)
10134 +static inline void atomic_inc_unchecked(atomic_unchecked_t *v)
10135 +{
10136 + atomic_add_unchecked(1, v);
10137 +}
10138 #define atomic64_inc(v) atomic64_add(1, v)
10139 +static inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
10140 +{
10141 + atomic64_add_unchecked(1, v);
10142 +}
10143
10144 #define atomic_dec(v) atomic_sub(1, v)
10145 +static inline void atomic_dec_unchecked(atomic_unchecked_t *v)
10146 +{
10147 + atomic_sub_unchecked(1, v);
10148 +}
10149 #define atomic64_dec(v) atomic64_sub(1, v)
10150 +static inline void atomic64_dec_unchecked(atomic64_unchecked_t *v)
10151 +{
10152 + atomic64_sub_unchecked(1, v);
10153 +}
10154
10155 #define atomic_add_negative(i, v) (atomic_add_return(i, v) < 0)
10156 #define atomic64_add_negative(i, v) (atomic64_add_return(i, v) < 0)
10157
10158 #define atomic_cmpxchg(v, o, n) (cmpxchg(&((v)->counter), (o), (n)))
10159 +static inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
10160 +{
10161 + return cmpxchg(&v->counter, old, new);
10162 +}
10163 #define atomic_xchg(v, new) (xchg(&((v)->counter), new))
10164 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
10165 +{
10166 + return xchg(&v->counter, new);
10167 +}
10168
10169 static inline int __atomic_add_unless(atomic_t *v, int a, int u)
10170 {
10171 - int c, old;
10172 + int c, old, new;
10173 c = atomic_read(v);
10174 for (;;) {
10175 - if (unlikely(c == (u)))
10176 + if (unlikely(c == u))
10177 break;
10178 - old = atomic_cmpxchg((v), c, c + (a));
10179 +
10180 + asm volatile("addcc %2, %0, %0\n"
10181 +
10182 +#ifdef CONFIG_PAX_REFCOUNT
10183 + "tvs %%icc, 6\n"
10184 +#endif
10185 +
10186 + : "=r" (new)
10187 + : "0" (c), "ir" (a)
10188 + : "cc");
10189 +
10190 + old = atomic_cmpxchg(v, c, new);
10191 if (likely(old == c))
10192 break;
10193 c = old;
10194 @@ -90,20 +159,35 @@ static inline int __atomic_add_unless(atomic_t *v, int a, int u)
10195 #define atomic64_cmpxchg(v, o, n) \
10196 ((__typeof__((v)->counter))cmpxchg(&((v)->counter), (o), (n)))
10197 #define atomic64_xchg(v, new) (xchg(&((v)->counter), new))
10198 +static inline long atomic64_xchg_unchecked(atomic64_unchecked_t *v, long new)
10199 +{
10200 + return xchg(&v->counter, new);
10201 +}
10202
10203 static inline long atomic64_add_unless(atomic64_t *v, long a, long u)
10204 {
10205 - long c, old;
10206 + long c, old, new;
10207 c = atomic64_read(v);
10208 for (;;) {
10209 - if (unlikely(c == (u)))
10210 + if (unlikely(c == u))
10211 break;
10212 - old = atomic64_cmpxchg((v), c, c + (a));
10213 +
10214 + asm volatile("addcc %2, %0, %0\n"
10215 +
10216 +#ifdef CONFIG_PAX_REFCOUNT
10217 + "tvs %%xcc, 6\n"
10218 +#endif
10219 +
10220 + : "=r" (new)
10221 + : "0" (c), "ir" (a)
10222 + : "cc");
10223 +
10224 + old = atomic64_cmpxchg(v, c, new);
10225 if (likely(old == c))
10226 break;
10227 c = old;
10228 }
10229 - return c != (u);
10230 + return c != u;
10231 }
10232
10233 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
10234 diff --git a/arch/sparc/include/asm/barrier_64.h b/arch/sparc/include/asm/barrier_64.h
10235 index 809941e..b443309 100644
10236 --- a/arch/sparc/include/asm/barrier_64.h
10237 +++ b/arch/sparc/include/asm/barrier_64.h
10238 @@ -60,7 +60,7 @@ do { __asm__ __volatile__("ba,pt %%xcc, 1f\n\t" \
10239 do { \
10240 compiletime_assert_atomic_type(*p); \
10241 barrier(); \
10242 - ACCESS_ONCE(*p) = (v); \
10243 + ACCESS_ONCE_RW(*p) = (v); \
10244 } while (0)
10245
10246 #define smp_load_acquire(p) \
10247 diff --git a/arch/sparc/include/asm/cache.h b/arch/sparc/include/asm/cache.h
10248 index 5bb6991..5c2132e 100644
10249 --- a/arch/sparc/include/asm/cache.h
10250 +++ b/arch/sparc/include/asm/cache.h
10251 @@ -7,10 +7,12 @@
10252 #ifndef _SPARC_CACHE_H
10253 #define _SPARC_CACHE_H
10254
10255 +#include <linux/const.h>
10256 +
10257 #define ARCH_SLAB_MINALIGN __alignof__(unsigned long long)
10258
10259 #define L1_CACHE_SHIFT 5
10260 -#define L1_CACHE_BYTES 32
10261 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
10262
10263 #ifdef CONFIG_SPARC32
10264 #define SMP_CACHE_BYTES_SHIFT 5
10265 diff --git a/arch/sparc/include/asm/elf_32.h b/arch/sparc/include/asm/elf_32.h
10266 index a24e41f..47677ff 100644
10267 --- a/arch/sparc/include/asm/elf_32.h
10268 +++ b/arch/sparc/include/asm/elf_32.h
10269 @@ -114,6 +114,13 @@ typedef struct {
10270
10271 #define ELF_ET_DYN_BASE (TASK_UNMAPPED_BASE)
10272
10273 +#ifdef CONFIG_PAX_ASLR
10274 +#define PAX_ELF_ET_DYN_BASE 0x10000UL
10275 +
10276 +#define PAX_DELTA_MMAP_LEN 16
10277 +#define PAX_DELTA_STACK_LEN 16
10278 +#endif
10279 +
10280 /* This yields a mask that user programs can use to figure out what
10281 instruction set this cpu supports. This can NOT be done in userspace
10282 on Sparc. */
10283 diff --git a/arch/sparc/include/asm/elf_64.h b/arch/sparc/include/asm/elf_64.h
10284 index 370ca1e..d4f4a98 100644
10285 --- a/arch/sparc/include/asm/elf_64.h
10286 +++ b/arch/sparc/include/asm/elf_64.h
10287 @@ -189,6 +189,13 @@ typedef struct {
10288 #define ELF_ET_DYN_BASE 0x0000010000000000UL
10289 #define COMPAT_ELF_ET_DYN_BASE 0x0000000070000000UL
10290
10291 +#ifdef CONFIG_PAX_ASLR
10292 +#define PAX_ELF_ET_DYN_BASE (test_thread_flag(TIF_32BIT) ? 0x10000UL : 0x100000UL)
10293 +
10294 +#define PAX_DELTA_MMAP_LEN (test_thread_flag(TIF_32BIT) ? 14 : 28)
10295 +#define PAX_DELTA_STACK_LEN (test_thread_flag(TIF_32BIT) ? 15 : 29)
10296 +#endif
10297 +
10298 extern unsigned long sparc64_elf_hwcap;
10299 #define ELF_HWCAP sparc64_elf_hwcap
10300
10301 diff --git a/arch/sparc/include/asm/pgalloc_32.h b/arch/sparc/include/asm/pgalloc_32.h
10302 index a3890da..f6a408e 100644
10303 --- a/arch/sparc/include/asm/pgalloc_32.h
10304 +++ b/arch/sparc/include/asm/pgalloc_32.h
10305 @@ -35,6 +35,7 @@ static inline void pgd_set(pgd_t * pgdp, pmd_t * pmdp)
10306 }
10307
10308 #define pgd_populate(MM, PGD, PMD) pgd_set(PGD, PMD)
10309 +#define pgd_populate_kernel(MM, PGD, PMD) pgd_populate((MM), (PGD), (PMD))
10310
10311 static inline pmd_t *pmd_alloc_one(struct mm_struct *mm,
10312 unsigned long address)
10313 diff --git a/arch/sparc/include/asm/pgalloc_64.h b/arch/sparc/include/asm/pgalloc_64.h
10314 index 5e31871..13469c6 100644
10315 --- a/arch/sparc/include/asm/pgalloc_64.h
10316 +++ b/arch/sparc/include/asm/pgalloc_64.h
10317 @@ -21,6 +21,7 @@ static inline void __pgd_populate(pgd_t *pgd, pud_t *pud)
10318 }
10319
10320 #define pgd_populate(MM, PGD, PUD) __pgd_populate(PGD, PUD)
10321 +#define pgd_populate_kernel(MM, PGD, PMD) pgd_populate((MM), (PGD), (PMD))
10322
10323 static inline pgd_t *pgd_alloc(struct mm_struct *mm)
10324 {
10325 @@ -38,6 +39,7 @@ static inline void __pud_populate(pud_t *pud, pmd_t *pmd)
10326 }
10327
10328 #define pud_populate(MM, PUD, PMD) __pud_populate(PUD, PMD)
10329 +#define pud_populate_kernel(MM, PUD, PMD) pud_populate((MM), (PUD), (PMD))
10330
10331 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
10332 {
10333 diff --git a/arch/sparc/include/asm/pgtable.h b/arch/sparc/include/asm/pgtable.h
10334 index 59ba6f6..4518128 100644
10335 --- a/arch/sparc/include/asm/pgtable.h
10336 +++ b/arch/sparc/include/asm/pgtable.h
10337 @@ -5,4 +5,8 @@
10338 #else
10339 #include <asm/pgtable_32.h>
10340 #endif
10341 +
10342 +#define ktla_ktva(addr) (addr)
10343 +#define ktva_ktla(addr) (addr)
10344 +
10345 #endif
10346 diff --git a/arch/sparc/include/asm/pgtable_32.h b/arch/sparc/include/asm/pgtable_32.h
10347 index f06b36a..bca3189 100644
10348 --- a/arch/sparc/include/asm/pgtable_32.h
10349 +++ b/arch/sparc/include/asm/pgtable_32.h
10350 @@ -51,6 +51,9 @@ unsigned long __init bootmem_init(unsigned long *pages_avail);
10351 #define PAGE_SHARED SRMMU_PAGE_SHARED
10352 #define PAGE_COPY SRMMU_PAGE_COPY
10353 #define PAGE_READONLY SRMMU_PAGE_RDONLY
10354 +#define PAGE_SHARED_NOEXEC SRMMU_PAGE_SHARED_NOEXEC
10355 +#define PAGE_COPY_NOEXEC SRMMU_PAGE_COPY_NOEXEC
10356 +#define PAGE_READONLY_NOEXEC SRMMU_PAGE_RDONLY_NOEXEC
10357 #define PAGE_KERNEL SRMMU_PAGE_KERNEL
10358
10359 /* Top-level page directory - dummy used by init-mm.
10360 @@ -63,18 +66,18 @@ extern unsigned long ptr_in_current_pgd;
10361
10362 /* xwr */
10363 #define __P000 PAGE_NONE
10364 -#define __P001 PAGE_READONLY
10365 -#define __P010 PAGE_COPY
10366 -#define __P011 PAGE_COPY
10367 +#define __P001 PAGE_READONLY_NOEXEC
10368 +#define __P010 PAGE_COPY_NOEXEC
10369 +#define __P011 PAGE_COPY_NOEXEC
10370 #define __P100 PAGE_READONLY
10371 #define __P101 PAGE_READONLY
10372 #define __P110 PAGE_COPY
10373 #define __P111 PAGE_COPY
10374
10375 #define __S000 PAGE_NONE
10376 -#define __S001 PAGE_READONLY
10377 -#define __S010 PAGE_SHARED
10378 -#define __S011 PAGE_SHARED
10379 +#define __S001 PAGE_READONLY_NOEXEC
10380 +#define __S010 PAGE_SHARED_NOEXEC
10381 +#define __S011 PAGE_SHARED_NOEXEC
10382 #define __S100 PAGE_READONLY
10383 #define __S101 PAGE_READONLY
10384 #define __S110 PAGE_SHARED
10385 diff --git a/arch/sparc/include/asm/pgtsrmmu.h b/arch/sparc/include/asm/pgtsrmmu.h
10386 index ae51a11..eadfd03 100644
10387 --- a/arch/sparc/include/asm/pgtsrmmu.h
10388 +++ b/arch/sparc/include/asm/pgtsrmmu.h
10389 @@ -111,6 +111,11 @@
10390 SRMMU_EXEC | SRMMU_REF)
10391 #define SRMMU_PAGE_RDONLY __pgprot(SRMMU_VALID | SRMMU_CACHE | \
10392 SRMMU_EXEC | SRMMU_REF)
10393 +
10394 +#define SRMMU_PAGE_SHARED_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_WRITE | SRMMU_REF)
10395 +#define SRMMU_PAGE_COPY_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_REF)
10396 +#define SRMMU_PAGE_RDONLY_NOEXEC __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_REF)
10397 +
10398 #define SRMMU_PAGE_KERNEL __pgprot(SRMMU_VALID | SRMMU_CACHE | SRMMU_PRIV | \
10399 SRMMU_DIRTY | SRMMU_REF)
10400
10401 diff --git a/arch/sparc/include/asm/setup.h b/arch/sparc/include/asm/setup.h
10402 index 29d64b1..4272fe8 100644
10403 --- a/arch/sparc/include/asm/setup.h
10404 +++ b/arch/sparc/include/asm/setup.h
10405 @@ -55,8 +55,8 @@ int handle_ldf_stq(u32 insn, struct pt_regs *regs);
10406 void handle_ld_nf(u32 insn, struct pt_regs *regs);
10407
10408 /* init_64.c */
10409 -extern atomic_t dcpage_flushes;
10410 -extern atomic_t dcpage_flushes_xcall;
10411 +extern atomic_unchecked_t dcpage_flushes;
10412 +extern atomic_unchecked_t dcpage_flushes_xcall;
10413
10414 extern int sysctl_tsb_ratio;
10415 #endif
10416 diff --git a/arch/sparc/include/asm/spinlock_64.h b/arch/sparc/include/asm/spinlock_64.h
10417 index 9689176..63c18ea 100644
10418 --- a/arch/sparc/include/asm/spinlock_64.h
10419 +++ b/arch/sparc/include/asm/spinlock_64.h
10420 @@ -92,14 +92,19 @@ static inline void arch_spin_lock_flags(arch_spinlock_t *lock, unsigned long fla
10421
10422 /* Multi-reader locks, these are much saner than the 32-bit Sparc ones... */
10423
10424 -static void inline arch_read_lock(arch_rwlock_t *lock)
10425 +static inline void arch_read_lock(arch_rwlock_t *lock)
10426 {
10427 unsigned long tmp1, tmp2;
10428
10429 __asm__ __volatile__ (
10430 "1: ldsw [%2], %0\n"
10431 " brlz,pn %0, 2f\n"
10432 -"4: add %0, 1, %1\n"
10433 +"4: addcc %0, 1, %1\n"
10434 +
10435 +#ifdef CONFIG_PAX_REFCOUNT
10436 +" tvs %%icc, 6\n"
10437 +#endif
10438 +
10439 " cas [%2], %0, %1\n"
10440 " cmp %0, %1\n"
10441 " bne,pn %%icc, 1b\n"
10442 @@ -112,10 +117,10 @@ static void inline arch_read_lock(arch_rwlock_t *lock)
10443 " .previous"
10444 : "=&r" (tmp1), "=&r" (tmp2)
10445 : "r" (lock)
10446 - : "memory");
10447 + : "memory", "cc");
10448 }
10449
10450 -static int inline arch_read_trylock(arch_rwlock_t *lock)
10451 +static inline int arch_read_trylock(arch_rwlock_t *lock)
10452 {
10453 int tmp1, tmp2;
10454
10455 @@ -123,7 +128,12 @@ static int inline arch_read_trylock(arch_rwlock_t *lock)
10456 "1: ldsw [%2], %0\n"
10457 " brlz,a,pn %0, 2f\n"
10458 " mov 0, %0\n"
10459 -" add %0, 1, %1\n"
10460 +" addcc %0, 1, %1\n"
10461 +
10462 +#ifdef CONFIG_PAX_REFCOUNT
10463 +" tvs %%icc, 6\n"
10464 +#endif
10465 +
10466 " cas [%2], %0, %1\n"
10467 " cmp %0, %1\n"
10468 " bne,pn %%icc, 1b\n"
10469 @@ -136,13 +146,18 @@ static int inline arch_read_trylock(arch_rwlock_t *lock)
10470 return tmp1;
10471 }
10472
10473 -static void inline arch_read_unlock(arch_rwlock_t *lock)
10474 +static inline void arch_read_unlock(arch_rwlock_t *lock)
10475 {
10476 unsigned long tmp1, tmp2;
10477
10478 __asm__ __volatile__(
10479 "1: lduw [%2], %0\n"
10480 -" sub %0, 1, %1\n"
10481 +" subcc %0, 1, %1\n"
10482 +
10483 +#ifdef CONFIG_PAX_REFCOUNT
10484 +" tvs %%icc, 6\n"
10485 +#endif
10486 +
10487 " cas [%2], %0, %1\n"
10488 " cmp %0, %1\n"
10489 " bne,pn %%xcc, 1b\n"
10490 @@ -152,7 +167,7 @@ static void inline arch_read_unlock(arch_rwlock_t *lock)
10491 : "memory");
10492 }
10493
10494 -static void inline arch_write_lock(arch_rwlock_t *lock)
10495 +static inline void arch_write_lock(arch_rwlock_t *lock)
10496 {
10497 unsigned long mask, tmp1, tmp2;
10498
10499 @@ -177,7 +192,7 @@ static void inline arch_write_lock(arch_rwlock_t *lock)
10500 : "memory");
10501 }
10502
10503 -static void inline arch_write_unlock(arch_rwlock_t *lock)
10504 +static inline void arch_write_unlock(arch_rwlock_t *lock)
10505 {
10506 __asm__ __volatile__(
10507 " stw %%g0, [%0]"
10508 @@ -186,7 +201,7 @@ static void inline arch_write_unlock(arch_rwlock_t *lock)
10509 : "memory");
10510 }
10511
10512 -static int inline arch_write_trylock(arch_rwlock_t *lock)
10513 +static inline int arch_write_trylock(arch_rwlock_t *lock)
10514 {
10515 unsigned long mask, tmp1, tmp2, result;
10516
10517 diff --git a/arch/sparc/include/asm/thread_info_32.h b/arch/sparc/include/asm/thread_info_32.h
10518 index 229475f..2fca9163 100644
10519 --- a/arch/sparc/include/asm/thread_info_32.h
10520 +++ b/arch/sparc/include/asm/thread_info_32.h
10521 @@ -48,6 +48,7 @@ struct thread_info {
10522 struct reg_window32 reg_window[NSWINS]; /* align for ldd! */
10523 unsigned long rwbuf_stkptrs[NSWINS];
10524 unsigned long w_saved;
10525 + unsigned long lowest_stack;
10526 };
10527
10528 /*
10529 diff --git a/arch/sparc/include/asm/thread_info_64.h b/arch/sparc/include/asm/thread_info_64.h
10530 index bde5982..9cbb56d 100644
10531 --- a/arch/sparc/include/asm/thread_info_64.h
10532 +++ b/arch/sparc/include/asm/thread_info_64.h
10533 @@ -59,6 +59,8 @@ struct thread_info {
10534 struct pt_regs *kern_una_regs;
10535 unsigned int kern_una_insn;
10536
10537 + unsigned long lowest_stack;
10538 +
10539 unsigned long fpregs[(7 * 256) / sizeof(unsigned long)]
10540 __attribute__ ((aligned(64)));
10541 };
10542 @@ -180,12 +182,13 @@ register struct thread_info *current_thread_info_reg asm("g6");
10543 #define TIF_NEED_RESCHED 3 /* rescheduling necessary */
10544 /* flag bit 4 is available */
10545 #define TIF_UNALIGNED 5 /* allowed to do unaligned accesses */
10546 -/* flag bit 6 is available */
10547 +#define TIF_GRSEC_SETXID 6 /* update credentials on syscall entry/exit */
10548 #define TIF_32BIT 7 /* 32-bit binary */
10549 #define TIF_NOHZ 8 /* in adaptive nohz mode */
10550 #define TIF_SECCOMP 9 /* secure computing */
10551 #define TIF_SYSCALL_AUDIT 10 /* syscall auditing active */
10552 #define TIF_SYSCALL_TRACEPOINT 11 /* syscall tracepoint instrumentation */
10553 +
10554 /* NOTE: Thread flags >= 12 should be ones we have no interest
10555 * in using in assembly, else we can't use the mask as
10556 * an immediate value in instructions such as andcc.
10557 @@ -205,12 +208,17 @@ register struct thread_info *current_thread_info_reg asm("g6");
10558 #define _TIF_SYSCALL_AUDIT (1<<TIF_SYSCALL_AUDIT)
10559 #define _TIF_SYSCALL_TRACEPOINT (1<<TIF_SYSCALL_TRACEPOINT)
10560 #define _TIF_POLLING_NRFLAG (1<<TIF_POLLING_NRFLAG)
10561 +#define _TIF_GRSEC_SETXID (1<<TIF_GRSEC_SETXID)
10562
10563 #define _TIF_USER_WORK_MASK ((0xff << TI_FLAG_WSAVED_SHIFT) | \
10564 _TIF_DO_NOTIFY_RESUME_MASK | \
10565 _TIF_NEED_RESCHED)
10566 #define _TIF_DO_NOTIFY_RESUME_MASK (_TIF_NOTIFY_RESUME | _TIF_SIGPENDING)
10567
10568 +#define _TIF_WORK_SYSCALL \
10569 + (_TIF_SYSCALL_TRACE | _TIF_SECCOMP | _TIF_SYSCALL_AUDIT | \
10570 + _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ | _TIF_GRSEC_SETXID)
10571 +
10572 #define is_32bit_task() (test_thread_flag(TIF_32BIT))
10573
10574 /*
10575 diff --git a/arch/sparc/include/asm/uaccess.h b/arch/sparc/include/asm/uaccess.h
10576 index bd56c28..4b63d83 100644
10577 --- a/arch/sparc/include/asm/uaccess.h
10578 +++ b/arch/sparc/include/asm/uaccess.h
10579 @@ -1,5 +1,6 @@
10580 #ifndef ___ASM_SPARC_UACCESS_H
10581 #define ___ASM_SPARC_UACCESS_H
10582 +
10583 #if defined(__sparc__) && defined(__arch64__)
10584 #include <asm/uaccess_64.h>
10585 #else
10586 diff --git a/arch/sparc/include/asm/uaccess_32.h b/arch/sparc/include/asm/uaccess_32.h
10587 index 64ee103..388aef0 100644
10588 --- a/arch/sparc/include/asm/uaccess_32.h
10589 +++ b/arch/sparc/include/asm/uaccess_32.h
10590 @@ -47,6 +47,7 @@
10591 #define __user_ok(addr, size) ({ (void)(size); (addr) < STACK_TOP; })
10592 #define __kernel_ok (segment_eq(get_fs(), KERNEL_DS))
10593 #define __access_ok(addr, size) (__user_ok((addr) & get_fs().seg, (size)))
10594 +#define access_ok_noprefault(type, addr, size) access_ok((type), (addr), (size))
10595 #define access_ok(type, addr, size) \
10596 ({ (void)(type); __access_ok((unsigned long)(addr), size); })
10597
10598 @@ -313,27 +314,46 @@ unsigned long __copy_user(void __user *to, const void __user *from, unsigned lon
10599
10600 static inline unsigned long copy_to_user(void __user *to, const void *from, unsigned long n)
10601 {
10602 - if (n && __access_ok((unsigned long) to, n))
10603 + if ((long)n < 0)
10604 + return n;
10605 +
10606 + if (n && __access_ok((unsigned long) to, n)) {
10607 + if (!__builtin_constant_p(n))
10608 + check_object_size(from, n, true);
10609 return __copy_user(to, (__force void __user *) from, n);
10610 - else
10611 + } else
10612 return n;
10613 }
10614
10615 static inline unsigned long __copy_to_user(void __user *to, const void *from, unsigned long n)
10616 {
10617 + if ((long)n < 0)
10618 + return n;
10619 +
10620 + if (!__builtin_constant_p(n))
10621 + check_object_size(from, n, true);
10622 +
10623 return __copy_user(to, (__force void __user *) from, n);
10624 }
10625
10626 static inline unsigned long copy_from_user(void *to, const void __user *from, unsigned long n)
10627 {
10628 - if (n && __access_ok((unsigned long) from, n))
10629 + if ((long)n < 0)
10630 + return n;
10631 +
10632 + if (n && __access_ok((unsigned long) from, n)) {
10633 + if (!__builtin_constant_p(n))
10634 + check_object_size(to, n, false);
10635 return __copy_user((__force void __user *) to, from, n);
10636 - else
10637 + } else
10638 return n;
10639 }
10640
10641 static inline unsigned long __copy_from_user(void *to, const void __user *from, unsigned long n)
10642 {
10643 + if ((long)n < 0)
10644 + return n;
10645 +
10646 return __copy_user((__force void __user *) to, from, n);
10647 }
10648
10649 diff --git a/arch/sparc/include/asm/uaccess_64.h b/arch/sparc/include/asm/uaccess_64.h
10650 index ea6e9a2..5703598 100644
10651 --- a/arch/sparc/include/asm/uaccess_64.h
10652 +++ b/arch/sparc/include/asm/uaccess_64.h
10653 @@ -10,6 +10,7 @@
10654 #include <linux/compiler.h>
10655 #include <linux/string.h>
10656 #include <linux/thread_info.h>
10657 +#include <linux/kernel.h>
10658 #include <asm/asi.h>
10659 #include <asm/spitfire.h>
10660 #include <asm-generic/uaccess-unaligned.h>
10661 @@ -76,6 +77,11 @@ static inline int __access_ok(const void __user * addr, unsigned long size)
10662 return 1;
10663 }
10664
10665 +static inline int access_ok_noprefault(int type, const void __user * addr, unsigned long size)
10666 +{
10667 + return 1;
10668 +}
10669 +
10670 static inline int access_ok(int type, const void __user * addr, unsigned long size)
10671 {
10672 return 1;
10673 @@ -250,8 +256,15 @@ unsigned long copy_from_user_fixup(void *to, const void __user *from,
10674 static inline unsigned long __must_check
10675 copy_from_user(void *to, const void __user *from, unsigned long size)
10676 {
10677 - unsigned long ret = ___copy_from_user(to, from, size);
10678 + unsigned long ret;
10679
10680 + if ((long)size < 0 || size > INT_MAX)
10681 + return size;
10682 +
10683 + if (!__builtin_constant_p(size))
10684 + check_object_size(to, size, false);
10685 +
10686 + ret = ___copy_from_user(to, from, size);
10687 if (unlikely(ret))
10688 ret = copy_from_user_fixup(to, from, size);
10689
10690 @@ -267,8 +280,15 @@ unsigned long copy_to_user_fixup(void __user *to, const void *from,
10691 static inline unsigned long __must_check
10692 copy_to_user(void __user *to, const void *from, unsigned long size)
10693 {
10694 - unsigned long ret = ___copy_to_user(to, from, size);
10695 + unsigned long ret;
10696
10697 + if ((long)size < 0 || size > INT_MAX)
10698 + return size;
10699 +
10700 + if (!__builtin_constant_p(size))
10701 + check_object_size(from, size, true);
10702 +
10703 + ret = ___copy_to_user(to, from, size);
10704 if (unlikely(ret))
10705 ret = copy_to_user_fixup(to, from, size);
10706 return ret;
10707 diff --git a/arch/sparc/kernel/Makefile b/arch/sparc/kernel/Makefile
10708 index 7cf9c6e..6206648 100644
10709 --- a/arch/sparc/kernel/Makefile
10710 +++ b/arch/sparc/kernel/Makefile
10711 @@ -4,7 +4,7 @@
10712 #
10713
10714 asflags-y := -ansi
10715 -ccflags-y := -Werror
10716 +#ccflags-y := -Werror
10717
10718 extra-y := head_$(BITS).o
10719
10720 diff --git a/arch/sparc/kernel/process_32.c b/arch/sparc/kernel/process_32.c
10721 index 50e7b62..79fae35 100644
10722 --- a/arch/sparc/kernel/process_32.c
10723 +++ b/arch/sparc/kernel/process_32.c
10724 @@ -123,14 +123,14 @@ void show_regs(struct pt_regs *r)
10725
10726 printk("PSR: %08lx PC: %08lx NPC: %08lx Y: %08lx %s\n",
10727 r->psr, r->pc, r->npc, r->y, print_tainted());
10728 - printk("PC: <%pS>\n", (void *) r->pc);
10729 + printk("PC: <%pA>\n", (void *) r->pc);
10730 printk("%%G: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10731 r->u_regs[0], r->u_regs[1], r->u_regs[2], r->u_regs[3],
10732 r->u_regs[4], r->u_regs[5], r->u_regs[6], r->u_regs[7]);
10733 printk("%%O: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10734 r->u_regs[8], r->u_regs[9], r->u_regs[10], r->u_regs[11],
10735 r->u_regs[12], r->u_regs[13], r->u_regs[14], r->u_regs[15]);
10736 - printk("RPC: <%pS>\n", (void *) r->u_regs[15]);
10737 + printk("RPC: <%pA>\n", (void *) r->u_regs[15]);
10738
10739 printk("%%L: %08lx %08lx %08lx %08lx %08lx %08lx %08lx %08lx\n",
10740 rw->locals[0], rw->locals[1], rw->locals[2], rw->locals[3],
10741 @@ -167,7 +167,7 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
10742 rw = (struct reg_window32 *) fp;
10743 pc = rw->ins[7];
10744 printk("[%08lx : ", pc);
10745 - printk("%pS ] ", (void *) pc);
10746 + printk("%pA ] ", (void *) pc);
10747 fp = rw->ins[6];
10748 } while (++count < 16);
10749 printk("\n");
10750 diff --git a/arch/sparc/kernel/process_64.c b/arch/sparc/kernel/process_64.c
10751 index 46a5964..a35c62c 100644
10752 --- a/arch/sparc/kernel/process_64.c
10753 +++ b/arch/sparc/kernel/process_64.c
10754 @@ -161,7 +161,7 @@ static void show_regwindow(struct pt_regs *regs)
10755 printk("i4: %016lx i5: %016lx i6: %016lx i7: %016lx\n",
10756 rwk->ins[4], rwk->ins[5], rwk->ins[6], rwk->ins[7]);
10757 if (regs->tstate & TSTATE_PRIV)
10758 - printk("I7: <%pS>\n", (void *) rwk->ins[7]);
10759 + printk("I7: <%pA>\n", (void *) rwk->ins[7]);
10760 }
10761
10762 void show_regs(struct pt_regs *regs)
10763 @@ -170,7 +170,7 @@ void show_regs(struct pt_regs *regs)
10764
10765 printk("TSTATE: %016lx TPC: %016lx TNPC: %016lx Y: %08x %s\n", regs->tstate,
10766 regs->tpc, regs->tnpc, regs->y, print_tainted());
10767 - printk("TPC: <%pS>\n", (void *) regs->tpc);
10768 + printk("TPC: <%pA>\n", (void *) regs->tpc);
10769 printk("g0: %016lx g1: %016lx g2: %016lx g3: %016lx\n",
10770 regs->u_regs[0], regs->u_regs[1], regs->u_regs[2],
10771 regs->u_regs[3]);
10772 @@ -183,7 +183,7 @@ void show_regs(struct pt_regs *regs)
10773 printk("o4: %016lx o5: %016lx sp: %016lx ret_pc: %016lx\n",
10774 regs->u_regs[12], regs->u_regs[13], regs->u_regs[14],
10775 regs->u_regs[15]);
10776 - printk("RPC: <%pS>\n", (void *) regs->u_regs[15]);
10777 + printk("RPC: <%pA>\n", (void *) regs->u_regs[15]);
10778 show_regwindow(regs);
10779 show_stack(current, (unsigned long *) regs->u_regs[UREG_FP]);
10780 }
10781 @@ -278,7 +278,7 @@ void arch_trigger_all_cpu_backtrace(bool include_self)
10782 ((tp && tp->task) ? tp->task->pid : -1));
10783
10784 if (gp->tstate & TSTATE_PRIV) {
10785 - printk(" TPC[%pS] O7[%pS] I7[%pS] RPC[%pS]\n",
10786 + printk(" TPC[%pA] O7[%pA] I7[%pA] RPC[%pA]\n",
10787 (void *) gp->tpc,
10788 (void *) gp->o7,
10789 (void *) gp->i7,
10790 diff --git a/arch/sparc/kernel/prom_common.c b/arch/sparc/kernel/prom_common.c
10791 index 79cc0d1..ec62734 100644
10792 --- a/arch/sparc/kernel/prom_common.c
10793 +++ b/arch/sparc/kernel/prom_common.c
10794 @@ -144,7 +144,7 @@ static int __init prom_common_nextprop(phandle node, char *prev, char *buf)
10795
10796 unsigned int prom_early_allocated __initdata;
10797
10798 -static struct of_pdt_ops prom_sparc_ops __initdata = {
10799 +static struct of_pdt_ops prom_sparc_ops __initconst = {
10800 .nextprop = prom_common_nextprop,
10801 .getproplen = prom_getproplen,
10802 .getproperty = prom_getproperty,
10803 diff --git a/arch/sparc/kernel/ptrace_64.c b/arch/sparc/kernel/ptrace_64.c
10804 index 9ddc492..27a5619 100644
10805 --- a/arch/sparc/kernel/ptrace_64.c
10806 +++ b/arch/sparc/kernel/ptrace_64.c
10807 @@ -1060,6 +1060,10 @@ long arch_ptrace(struct task_struct *child, long request,
10808 return ret;
10809 }
10810
10811 +#ifdef CONFIG_GRKERNSEC_SETXID
10812 +extern void gr_delayed_cred_worker(void);
10813 +#endif
10814 +
10815 asmlinkage int syscall_trace_enter(struct pt_regs *regs)
10816 {
10817 int ret = 0;
10818 @@ -1070,6 +1074,11 @@ asmlinkage int syscall_trace_enter(struct pt_regs *regs)
10819 if (test_thread_flag(TIF_NOHZ))
10820 user_exit();
10821
10822 +#ifdef CONFIG_GRKERNSEC_SETXID
10823 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
10824 + gr_delayed_cred_worker();
10825 +#endif
10826 +
10827 if (test_thread_flag(TIF_SYSCALL_TRACE))
10828 ret = tracehook_report_syscall_entry(regs);
10829
10830 @@ -1088,6 +1097,11 @@ asmlinkage void syscall_trace_leave(struct pt_regs *regs)
10831 if (test_thread_flag(TIF_NOHZ))
10832 user_exit();
10833
10834 +#ifdef CONFIG_GRKERNSEC_SETXID
10835 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
10836 + gr_delayed_cred_worker();
10837 +#endif
10838 +
10839 audit_syscall_exit(regs);
10840
10841 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
10842 diff --git a/arch/sparc/kernel/smp_64.c b/arch/sparc/kernel/smp_64.c
10843 index 19cd08d..ff21e99 100644
10844 --- a/arch/sparc/kernel/smp_64.c
10845 +++ b/arch/sparc/kernel/smp_64.c
10846 @@ -891,7 +891,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
10847 return;
10848
10849 #ifdef CONFIG_DEBUG_DCFLUSH
10850 - atomic_inc(&dcpage_flushes);
10851 + atomic_inc_unchecked(&dcpage_flushes);
10852 #endif
10853
10854 this_cpu = get_cpu();
10855 @@ -915,7 +915,7 @@ void smp_flush_dcache_page_impl(struct page *page, int cpu)
10856 xcall_deliver(data0, __pa(pg_addr),
10857 (u64) pg_addr, cpumask_of(cpu));
10858 #ifdef CONFIG_DEBUG_DCFLUSH
10859 - atomic_inc(&dcpage_flushes_xcall);
10860 + atomic_inc_unchecked(&dcpage_flushes_xcall);
10861 #endif
10862 }
10863 }
10864 @@ -934,7 +934,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
10865 preempt_disable();
10866
10867 #ifdef CONFIG_DEBUG_DCFLUSH
10868 - atomic_inc(&dcpage_flushes);
10869 + atomic_inc_unchecked(&dcpage_flushes);
10870 #endif
10871 data0 = 0;
10872 pg_addr = page_address(page);
10873 @@ -951,7 +951,7 @@ void flush_dcache_page_all(struct mm_struct *mm, struct page *page)
10874 xcall_deliver(data0, __pa(pg_addr),
10875 (u64) pg_addr, cpu_online_mask);
10876 #ifdef CONFIG_DEBUG_DCFLUSH
10877 - atomic_inc(&dcpage_flushes_xcall);
10878 + atomic_inc_unchecked(&dcpage_flushes_xcall);
10879 #endif
10880 }
10881 __local_flush_dcache_page(page);
10882 diff --git a/arch/sparc/kernel/sys_sparc_32.c b/arch/sparc/kernel/sys_sparc_32.c
10883 index 646988d..b88905f 100644
10884 --- a/arch/sparc/kernel/sys_sparc_32.c
10885 +++ b/arch/sparc/kernel/sys_sparc_32.c
10886 @@ -54,7 +54,7 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10887 if (len > TASK_SIZE - PAGE_SIZE)
10888 return -ENOMEM;
10889 if (!addr)
10890 - addr = TASK_UNMAPPED_BASE;
10891 + addr = current->mm->mmap_base;
10892
10893 info.flags = 0;
10894 info.length = len;
10895 diff --git a/arch/sparc/kernel/sys_sparc_64.c b/arch/sparc/kernel/sys_sparc_64.c
10896 index 30e7ddb..266a3b0 100644
10897 --- a/arch/sparc/kernel/sys_sparc_64.c
10898 +++ b/arch/sparc/kernel/sys_sparc_64.c
10899 @@ -89,13 +89,14 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10900 struct vm_area_struct * vma;
10901 unsigned long task_size = TASK_SIZE;
10902 int do_color_align;
10903 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
10904 struct vm_unmapped_area_info info;
10905
10906 if (flags & MAP_FIXED) {
10907 /* We do not accept a shared mapping if it would violate
10908 * cache aliasing constraints.
10909 */
10910 - if ((flags & MAP_SHARED) &&
10911 + if ((filp || (flags & MAP_SHARED)) &&
10912 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
10913 return -EINVAL;
10914 return addr;
10915 @@ -110,6 +111,10 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10916 if (filp || (flags & MAP_SHARED))
10917 do_color_align = 1;
10918
10919 +#ifdef CONFIG_PAX_RANDMMAP
10920 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10921 +#endif
10922 +
10923 if (addr) {
10924 if (do_color_align)
10925 addr = COLOR_ALIGN(addr, pgoff);
10926 @@ -117,22 +122,28 @@ unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr, unsi
10927 addr = PAGE_ALIGN(addr);
10928
10929 vma = find_vma(mm, addr);
10930 - if (task_size - len >= addr &&
10931 - (!vma || addr + len <= vma->vm_start))
10932 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
10933 return addr;
10934 }
10935
10936 info.flags = 0;
10937 info.length = len;
10938 - info.low_limit = TASK_UNMAPPED_BASE;
10939 + info.low_limit = mm->mmap_base;
10940 info.high_limit = min(task_size, VA_EXCLUDE_START);
10941 info.align_mask = do_color_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
10942 info.align_offset = pgoff << PAGE_SHIFT;
10943 + info.threadstack_offset = offset;
10944 addr = vm_unmapped_area(&info);
10945
10946 if ((addr & ~PAGE_MASK) && task_size > VA_EXCLUDE_END) {
10947 VM_BUG_ON(addr != -ENOMEM);
10948 info.low_limit = VA_EXCLUDE_END;
10949 +
10950 +#ifdef CONFIG_PAX_RANDMMAP
10951 + if (mm->pax_flags & MF_PAX_RANDMMAP)
10952 + info.low_limit += mm->delta_mmap;
10953 +#endif
10954 +
10955 info.high_limit = task_size;
10956 addr = vm_unmapped_area(&info);
10957 }
10958 @@ -150,6 +161,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10959 unsigned long task_size = STACK_TOP32;
10960 unsigned long addr = addr0;
10961 int do_color_align;
10962 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
10963 struct vm_unmapped_area_info info;
10964
10965 /* This should only ever run for 32-bit processes. */
10966 @@ -159,7 +171,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10967 /* We do not accept a shared mapping if it would violate
10968 * cache aliasing constraints.
10969 */
10970 - if ((flags & MAP_SHARED) &&
10971 + if ((filp || (flags & MAP_SHARED)) &&
10972 ((addr - (pgoff << PAGE_SHIFT)) & (SHMLBA - 1)))
10973 return -EINVAL;
10974 return addr;
10975 @@ -172,6 +184,10 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10976 if (filp || (flags & MAP_SHARED))
10977 do_color_align = 1;
10978
10979 +#ifdef CONFIG_PAX_RANDMMAP
10980 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
10981 +#endif
10982 +
10983 /* requesting a specific address */
10984 if (addr) {
10985 if (do_color_align)
10986 @@ -180,8 +196,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10987 addr = PAGE_ALIGN(addr);
10988
10989 vma = find_vma(mm, addr);
10990 - if (task_size - len >= addr &&
10991 - (!vma || addr + len <= vma->vm_start))
10992 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
10993 return addr;
10994 }
10995
10996 @@ -191,6 +206,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
10997 info.high_limit = mm->mmap_base;
10998 info.align_mask = do_color_align ? (PAGE_MASK & (SHMLBA - 1)) : 0;
10999 info.align_offset = pgoff << PAGE_SHIFT;
11000 + info.threadstack_offset = offset;
11001 addr = vm_unmapped_area(&info);
11002
11003 /*
11004 @@ -203,6 +219,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
11005 VM_BUG_ON(addr != -ENOMEM);
11006 info.flags = 0;
11007 info.low_limit = TASK_UNMAPPED_BASE;
11008 +
11009 +#ifdef CONFIG_PAX_RANDMMAP
11010 + if (mm->pax_flags & MF_PAX_RANDMMAP)
11011 + info.low_limit += mm->delta_mmap;
11012 +#endif
11013 +
11014 info.high_limit = STACK_TOP32;
11015 addr = vm_unmapped_area(&info);
11016 }
11017 @@ -259,10 +281,14 @@ unsigned long get_fb_unmapped_area(struct file *filp, unsigned long orig_addr, u
11018 EXPORT_SYMBOL(get_fb_unmapped_area);
11019
11020 /* Essentially the same as PowerPC. */
11021 -static unsigned long mmap_rnd(void)
11022 +static unsigned long mmap_rnd(struct mm_struct *mm)
11023 {
11024 unsigned long rnd = 0UL;
11025
11026 +#ifdef CONFIG_PAX_RANDMMAP
11027 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
11028 +#endif
11029 +
11030 if (current->flags & PF_RANDOMIZE) {
11031 unsigned long val = get_random_int();
11032 if (test_thread_flag(TIF_32BIT))
11033 @@ -275,7 +301,7 @@ static unsigned long mmap_rnd(void)
11034
11035 void arch_pick_mmap_layout(struct mm_struct *mm)
11036 {
11037 - unsigned long random_factor = mmap_rnd();
11038 + unsigned long random_factor = mmap_rnd(mm);
11039 unsigned long gap;
11040
11041 /*
11042 @@ -288,6 +314,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
11043 gap == RLIM_INFINITY ||
11044 sysctl_legacy_va_layout) {
11045 mm->mmap_base = TASK_UNMAPPED_BASE + random_factor;
11046 +
11047 +#ifdef CONFIG_PAX_RANDMMAP
11048 + if (mm->pax_flags & MF_PAX_RANDMMAP)
11049 + mm->mmap_base += mm->delta_mmap;
11050 +#endif
11051 +
11052 mm->get_unmapped_area = arch_get_unmapped_area;
11053 } else {
11054 /* We know it's 32-bit */
11055 @@ -299,6 +331,12 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
11056 gap = (task_size / 6 * 5);
11057
11058 mm->mmap_base = PAGE_ALIGN(task_size - gap - random_factor);
11059 +
11060 +#ifdef CONFIG_PAX_RANDMMAP
11061 + if (mm->pax_flags & MF_PAX_RANDMMAP)
11062 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
11063 +#endif
11064 +
11065 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
11066 }
11067 }
11068 diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
11069 index bb00089..e0ea580 100644
11070 --- a/arch/sparc/kernel/syscalls.S
11071 +++ b/arch/sparc/kernel/syscalls.S
11072 @@ -62,7 +62,7 @@ sys32_rt_sigreturn:
11073 #endif
11074 .align 32
11075 1: ldx [%g6 + TI_FLAGS], %l5
11076 - andcc %l5, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
11077 + andcc %l5, _TIF_WORK_SYSCALL, %g0
11078 be,pt %icc, rtrap
11079 nop
11080 call syscall_trace_leave
11081 @@ -194,7 +194,7 @@ linux_sparc_syscall32:
11082
11083 srl %i3, 0, %o3 ! IEU0
11084 srl %i2, 0, %o2 ! IEU0 Group
11085 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
11086 + andcc %l0, _TIF_WORK_SYSCALL, %g0
11087 bne,pn %icc, linux_syscall_trace32 ! CTI
11088 mov %i0, %l5 ! IEU1
11089 5: call %l7 ! CTI Group brk forced
11090 @@ -218,7 +218,7 @@ linux_sparc_syscall:
11091
11092 mov %i3, %o3 ! IEU1
11093 mov %i4, %o4 ! IEU0 Group
11094 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
11095 + andcc %l0, _TIF_WORK_SYSCALL, %g0
11096 bne,pn %icc, linux_syscall_trace ! CTI Group
11097 mov %i0, %l5 ! IEU0
11098 2: call %l7 ! CTI Group brk forced
11099 @@ -233,7 +233,7 @@ ret_sys_call:
11100
11101 cmp %o0, -ERESTART_RESTARTBLOCK
11102 bgeu,pn %xcc, 1f
11103 - andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT|_TIF_NOHZ), %g0
11104 + andcc %l0, _TIF_WORK_SYSCALL, %g0
11105 ldx [%sp + PTREGS_OFF + PT_V9_TNPC], %l1 ! pc = npc
11106
11107 2:
11108 diff --git a/arch/sparc/kernel/traps_32.c b/arch/sparc/kernel/traps_32.c
11109 index 4f21df7..0a374da 100644
11110 --- a/arch/sparc/kernel/traps_32.c
11111 +++ b/arch/sparc/kernel/traps_32.c
11112 @@ -44,6 +44,8 @@ static void instruction_dump(unsigned long *pc)
11113 #define __SAVE __asm__ __volatile__("save %sp, -0x40, %sp\n\t")
11114 #define __RESTORE __asm__ __volatile__("restore %g0, %g0, %g0\n\t")
11115
11116 +extern void gr_handle_kernel_exploit(void);
11117 +
11118 void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11119 {
11120 static int die_counter;
11121 @@ -76,15 +78,17 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11122 count++ < 30 &&
11123 (((unsigned long) rw) >= PAGE_OFFSET) &&
11124 !(((unsigned long) rw) & 0x7)) {
11125 - printk("Caller[%08lx]: %pS\n", rw->ins[7],
11126 + printk("Caller[%08lx]: %pA\n", rw->ins[7],
11127 (void *) rw->ins[7]);
11128 rw = (struct reg_window32 *)rw->ins[6];
11129 }
11130 }
11131 printk("Instruction DUMP:");
11132 instruction_dump ((unsigned long *) regs->pc);
11133 - if(regs->psr & PSR_PS)
11134 + if(regs->psr & PSR_PS) {
11135 + gr_handle_kernel_exploit();
11136 do_exit(SIGKILL);
11137 + }
11138 do_exit(SIGSEGV);
11139 }
11140
11141 diff --git a/arch/sparc/kernel/traps_64.c b/arch/sparc/kernel/traps_64.c
11142 index d21cd62..00a4a17 100644
11143 --- a/arch/sparc/kernel/traps_64.c
11144 +++ b/arch/sparc/kernel/traps_64.c
11145 @@ -79,7 +79,7 @@ static void dump_tl1_traplog(struct tl1_traplog *p)
11146 i + 1,
11147 p->trapstack[i].tstate, p->trapstack[i].tpc,
11148 p->trapstack[i].tnpc, p->trapstack[i].tt);
11149 - printk("TRAPLOG: TPC<%pS>\n", (void *) p->trapstack[i].tpc);
11150 + printk("TRAPLOG: TPC<%pA>\n", (void *) p->trapstack[i].tpc);
11151 }
11152 }
11153
11154 @@ -99,6 +99,12 @@ void bad_trap(struct pt_regs *regs, long lvl)
11155
11156 lvl -= 0x100;
11157 if (regs->tstate & TSTATE_PRIV) {
11158 +
11159 +#ifdef CONFIG_PAX_REFCOUNT
11160 + if (lvl == 6)
11161 + pax_report_refcount_overflow(regs);
11162 +#endif
11163 +
11164 sprintf(buffer, "Kernel bad sw trap %lx", lvl);
11165 die_if_kernel(buffer, regs);
11166 }
11167 @@ -117,11 +123,16 @@ void bad_trap(struct pt_regs *regs, long lvl)
11168 void bad_trap_tl1(struct pt_regs *regs, long lvl)
11169 {
11170 char buffer[32];
11171 -
11172 +
11173 if (notify_die(DIE_TRAP_TL1, "bad trap tl1", regs,
11174 0, lvl, SIGTRAP) == NOTIFY_STOP)
11175 return;
11176
11177 +#ifdef CONFIG_PAX_REFCOUNT
11178 + if (lvl == 6)
11179 + pax_report_refcount_overflow(regs);
11180 +#endif
11181 +
11182 dump_tl1_traplog((struct tl1_traplog *)(regs + 1));
11183
11184 sprintf (buffer, "Bad trap %lx at tl>0", lvl);
11185 @@ -1151,7 +1162,7 @@ static void cheetah_log_errors(struct pt_regs *regs, struct cheetah_err_info *in
11186 regs->tpc, regs->tnpc, regs->u_regs[UREG_I7], regs->tstate);
11187 printk("%s" "ERROR(%d): ",
11188 (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id());
11189 - printk("TPC<%pS>\n", (void *) regs->tpc);
11190 + printk("TPC<%pA>\n", (void *) regs->tpc);
11191 printk("%s" "ERROR(%d): M_SYND(%lx), E_SYND(%lx)%s%s\n",
11192 (recoverable ? KERN_WARNING : KERN_CRIT), smp_processor_id(),
11193 (afsr & CHAFSR_M_SYNDROME) >> CHAFSR_M_SYNDROME_SHIFT,
11194 @@ -1758,7 +1769,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
11195 smp_processor_id(),
11196 (type & 0x1) ? 'I' : 'D',
11197 regs->tpc);
11198 - printk(KERN_EMERG "TPC<%pS>\n", (void *) regs->tpc);
11199 + printk(KERN_EMERG "TPC<%pA>\n", (void *) regs->tpc);
11200 panic("Irrecoverable Cheetah+ parity error.");
11201 }
11202
11203 @@ -1766,7 +1777,7 @@ void cheetah_plus_parity_error(int type, struct pt_regs *regs)
11204 smp_processor_id(),
11205 (type & 0x1) ? 'I' : 'D',
11206 regs->tpc);
11207 - printk(KERN_WARNING "TPC<%pS>\n", (void *) regs->tpc);
11208 + printk(KERN_WARNING "TPC<%pA>\n", (void *) regs->tpc);
11209 }
11210
11211 struct sun4v_error_entry {
11212 @@ -1839,8 +1850,8 @@ struct sun4v_error_entry {
11213 /*0x38*/u64 reserved_5;
11214 };
11215
11216 -static atomic_t sun4v_resum_oflow_cnt = ATOMIC_INIT(0);
11217 -static atomic_t sun4v_nonresum_oflow_cnt = ATOMIC_INIT(0);
11218 +static atomic_unchecked_t sun4v_resum_oflow_cnt = ATOMIC_INIT(0);
11219 +static atomic_unchecked_t sun4v_nonresum_oflow_cnt = ATOMIC_INIT(0);
11220
11221 static const char *sun4v_err_type_to_str(u8 type)
11222 {
11223 @@ -1932,7 +1943,7 @@ static void sun4v_report_real_raddr(const char *pfx, struct pt_regs *regs)
11224 }
11225
11226 static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
11227 - int cpu, const char *pfx, atomic_t *ocnt)
11228 + int cpu, const char *pfx, atomic_unchecked_t *ocnt)
11229 {
11230 u64 *raw_ptr = (u64 *) ent;
11231 u32 attrs;
11232 @@ -1990,8 +2001,8 @@ static void sun4v_log_error(struct pt_regs *regs, struct sun4v_error_entry *ent,
11233
11234 show_regs(regs);
11235
11236 - if ((cnt = atomic_read(ocnt)) != 0) {
11237 - atomic_set(ocnt, 0);
11238 + if ((cnt = atomic_read_unchecked(ocnt)) != 0) {
11239 + atomic_set_unchecked(ocnt, 0);
11240 wmb();
11241 printk("%s: Queue overflowed %d times.\n",
11242 pfx, cnt);
11243 @@ -2048,7 +2059,7 @@ out:
11244 */
11245 void sun4v_resum_overflow(struct pt_regs *regs)
11246 {
11247 - atomic_inc(&sun4v_resum_oflow_cnt);
11248 + atomic_inc_unchecked(&sun4v_resum_oflow_cnt);
11249 }
11250
11251 /* We run with %pil set to PIL_NORMAL_MAX and PSTATE_IE enabled in %pstate.
11252 @@ -2101,7 +2112,7 @@ void sun4v_nonresum_overflow(struct pt_regs *regs)
11253 /* XXX Actually even this can make not that much sense. Perhaps
11254 * XXX we should just pull the plug and panic directly from here?
11255 */
11256 - atomic_inc(&sun4v_nonresum_oflow_cnt);
11257 + atomic_inc_unchecked(&sun4v_nonresum_oflow_cnt);
11258 }
11259
11260 static void sun4v_tlb_error(struct pt_regs *regs)
11261 @@ -2120,9 +2131,9 @@ void sun4v_itlb_error_report(struct pt_regs *regs, int tl)
11262
11263 printk(KERN_EMERG "SUN4V-ITLB: Error at TPC[%lx], tl %d\n",
11264 regs->tpc, tl);
11265 - printk(KERN_EMERG "SUN4V-ITLB: TPC<%pS>\n", (void *) regs->tpc);
11266 + printk(KERN_EMERG "SUN4V-ITLB: TPC<%pA>\n", (void *) regs->tpc);
11267 printk(KERN_EMERG "SUN4V-ITLB: O7[%lx]\n", regs->u_regs[UREG_I7]);
11268 - printk(KERN_EMERG "SUN4V-ITLB: O7<%pS>\n",
11269 + printk(KERN_EMERG "SUN4V-ITLB: O7<%pA>\n",
11270 (void *) regs->u_regs[UREG_I7]);
11271 printk(KERN_EMERG "SUN4V-ITLB: vaddr[%lx] ctx[%lx] "
11272 "pte[%lx] error[%lx]\n",
11273 @@ -2143,9 +2154,9 @@ void sun4v_dtlb_error_report(struct pt_regs *regs, int tl)
11274
11275 printk(KERN_EMERG "SUN4V-DTLB: Error at TPC[%lx], tl %d\n",
11276 regs->tpc, tl);
11277 - printk(KERN_EMERG "SUN4V-DTLB: TPC<%pS>\n", (void *) regs->tpc);
11278 + printk(KERN_EMERG "SUN4V-DTLB: TPC<%pA>\n", (void *) regs->tpc);
11279 printk(KERN_EMERG "SUN4V-DTLB: O7[%lx]\n", regs->u_regs[UREG_I7]);
11280 - printk(KERN_EMERG "SUN4V-DTLB: O7<%pS>\n",
11281 + printk(KERN_EMERG "SUN4V-DTLB: O7<%pA>\n",
11282 (void *) regs->u_regs[UREG_I7]);
11283 printk(KERN_EMERG "SUN4V-DTLB: vaddr[%lx] ctx[%lx] "
11284 "pte[%lx] error[%lx]\n",
11285 @@ -2362,13 +2373,13 @@ void show_stack(struct task_struct *tsk, unsigned long *_ksp)
11286 fp = (unsigned long)sf->fp + STACK_BIAS;
11287 }
11288
11289 - printk(" [%016lx] %pS\n", pc, (void *) pc);
11290 + printk(" [%016lx] %pA\n", pc, (void *) pc);
11291 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
11292 if ((pc + 8UL) == (unsigned long) &return_to_handler) {
11293 int index = tsk->curr_ret_stack;
11294 if (tsk->ret_stack && index >= graph) {
11295 pc = tsk->ret_stack[index - graph].ret;
11296 - printk(" [%016lx] %pS\n", pc, (void *) pc);
11297 + printk(" [%016lx] %pA\n", pc, (void *) pc);
11298 graph++;
11299 }
11300 }
11301 @@ -2386,6 +2397,8 @@ static inline struct reg_window *kernel_stack_up(struct reg_window *rw)
11302 return (struct reg_window *) (fp + STACK_BIAS);
11303 }
11304
11305 +extern void gr_handle_kernel_exploit(void);
11306 +
11307 void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11308 {
11309 static int die_counter;
11310 @@ -2414,7 +2427,7 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11311 while (rw &&
11312 count++ < 30 &&
11313 kstack_valid(tp, (unsigned long) rw)) {
11314 - printk("Caller[%016lx]: %pS\n", rw->ins[7],
11315 + printk("Caller[%016lx]: %pA\n", rw->ins[7],
11316 (void *) rw->ins[7]);
11317
11318 rw = kernel_stack_up(rw);
11319 @@ -2429,8 +2442,10 @@ void __noreturn die_if_kernel(char *str, struct pt_regs *regs)
11320 }
11321 if (panic_on_oops)
11322 panic("Fatal exception");
11323 - if (regs->tstate & TSTATE_PRIV)
11324 + if (regs->tstate & TSTATE_PRIV) {
11325 + gr_handle_kernel_exploit();
11326 do_exit(SIGKILL);
11327 + }
11328 do_exit(SIGSEGV);
11329 }
11330 EXPORT_SYMBOL(die_if_kernel);
11331 diff --git a/arch/sparc/kernel/unaligned_64.c b/arch/sparc/kernel/unaligned_64.c
11332 index 62098a8..547ab2c 100644
11333 --- a/arch/sparc/kernel/unaligned_64.c
11334 +++ b/arch/sparc/kernel/unaligned_64.c
11335 @@ -297,7 +297,7 @@ static void log_unaligned(struct pt_regs *regs)
11336 static DEFINE_RATELIMIT_STATE(ratelimit, 5 * HZ, 5);
11337
11338 if (__ratelimit(&ratelimit)) {
11339 - printk("Kernel unaligned access at TPC[%lx] %pS\n",
11340 + printk("Kernel unaligned access at TPC[%lx] %pA\n",
11341 regs->tpc, (void *) regs->tpc);
11342 }
11343 }
11344 diff --git a/arch/sparc/lib/Makefile b/arch/sparc/lib/Makefile
11345 index 3269b02..64f5231 100644
11346 --- a/arch/sparc/lib/Makefile
11347 +++ b/arch/sparc/lib/Makefile
11348 @@ -2,7 +2,7 @@
11349 #
11350
11351 asflags-y := -ansi -DST_DIV0=0x02
11352 -ccflags-y := -Werror
11353 +#ccflags-y := -Werror
11354
11355 lib-$(CONFIG_SPARC32) += ashrdi3.o
11356 lib-$(CONFIG_SPARC32) += memcpy.o memset.o
11357 diff --git a/arch/sparc/lib/atomic_64.S b/arch/sparc/lib/atomic_64.S
11358 index 05dac43..76f8ed4 100644
11359 --- a/arch/sparc/lib/atomic_64.S
11360 +++ b/arch/sparc/lib/atomic_64.S
11361 @@ -15,11 +15,22 @@
11362 * a value and does the barriers.
11363 */
11364
11365 -#define ATOMIC_OP(op) \
11366 -ENTRY(atomic_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11367 +#ifdef CONFIG_PAX_REFCOUNT
11368 +#define __REFCOUNT_OP(op) op##cc
11369 +#define __OVERFLOW_IOP tvs %icc, 6;
11370 +#define __OVERFLOW_XOP tvs %xcc, 6;
11371 +#else
11372 +#define __REFCOUNT_OP(op) op
11373 +#define __OVERFLOW_IOP
11374 +#define __OVERFLOW_XOP
11375 +#endif
11376 +
11377 +#define __ATOMIC_OP(op, suffix, asm_op, post_op) \
11378 +ENTRY(atomic_##op##suffix) /* %o0 = increment, %o1 = atomic_ptr */ \
11379 BACKOFF_SETUP(%o2); \
11380 1: lduw [%o1], %g1; \
11381 - op %g1, %o0, %g7; \
11382 + asm_op %g1, %o0, %g7; \
11383 + post_op \
11384 cas [%o1], %g1, %g7; \
11385 cmp %g1, %g7; \
11386 bne,pn %icc, BACKOFF_LABEL(2f, 1b); \
11387 @@ -29,11 +40,15 @@ ENTRY(atomic_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11388 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11389 ENDPROC(atomic_##op); \
11390
11391 -#define ATOMIC_OP_RETURN(op) \
11392 -ENTRY(atomic_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11393 +#define ATOMIC_OP(op) __ATOMIC_OP(op, , op, ) \
11394 + __ATOMIC_OP(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_IOP)
11395 +
11396 +#define __ATOMIC_OP_RETURN(op, suffix, asm_op, post_op) \
11397 +ENTRY(atomic_##op##_return##suffix) /* %o0 = increment, %o1 = atomic_ptr */\
11398 BACKOFF_SETUP(%o2); \
11399 1: lduw [%o1], %g1; \
11400 - op %g1, %o0, %g7; \
11401 + asm_op %g1, %o0, %g7; \
11402 + post_op \
11403 cas [%o1], %g1, %g7; \
11404 cmp %g1, %g7; \
11405 bne,pn %icc, BACKOFF_LABEL(2f, 1b); \
11406 @@ -43,6 +58,9 @@ ENTRY(atomic_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11407 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11408 ENDPROC(atomic_##op##_return);
11409
11410 +#define ATOMIC_OP_RETURN(op) __ATOMIC_OP_RETURN(op, , op, ) \
11411 + __ATOMIC_OP_RETURN(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_IOP)
11412 +
11413 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
11414
11415 ATOMIC_OPS(add)
11416 @@ -50,13 +68,16 @@ ATOMIC_OPS(sub)
11417
11418 #undef ATOMIC_OPS
11419 #undef ATOMIC_OP_RETURN
11420 +#undef __ATOMIC_OP_RETURN
11421 #undef ATOMIC_OP
11422 +#undef __ATOMIC_OP
11423
11424 -#define ATOMIC64_OP(op) \
11425 -ENTRY(atomic64_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11426 +#define __ATOMIC64_OP(op, suffix, asm_op, post_op) \
11427 +ENTRY(atomic64_##op##suffix) /* %o0 = increment, %o1 = atomic_ptr */ \
11428 BACKOFF_SETUP(%o2); \
11429 1: ldx [%o1], %g1; \
11430 - op %g1, %o0, %g7; \
11431 + asm_op %g1, %o0, %g7; \
11432 + post_op \
11433 casx [%o1], %g1, %g7; \
11434 cmp %g1, %g7; \
11435 bne,pn %xcc, BACKOFF_LABEL(2f, 1b); \
11436 @@ -66,11 +87,15 @@ ENTRY(atomic64_##op) /* %o0 = increment, %o1 = atomic_ptr */ \
11437 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11438 ENDPROC(atomic64_##op); \
11439
11440 -#define ATOMIC64_OP_RETURN(op) \
11441 -ENTRY(atomic64_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11442 +#define ATOMIC64_OP(op) __ATOMIC64_OP(op, , op, ) \
11443 + __ATOMIC64_OP(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_XOP)
11444 +
11445 +#define __ATOMIC64_OP_RETURN(op, suffix, asm_op, post_op) \
11446 +ENTRY(atomic64_##op##_return##suffix) /* %o0 = increment, %o1 = atomic_ptr */\
11447 BACKOFF_SETUP(%o2); \
11448 1: ldx [%o1], %g1; \
11449 - op %g1, %o0, %g7; \
11450 + asm_op %g1, %o0, %g7; \
11451 + post_op \
11452 casx [%o1], %g1, %g7; \
11453 cmp %g1, %g7; \
11454 bne,pn %xcc, BACKOFF_LABEL(2f, 1b); \
11455 @@ -80,6 +105,9 @@ ENTRY(atomic64_##op##_return) /* %o0 = increment, %o1 = atomic_ptr */ \
11456 2: BACKOFF_SPIN(%o2, %o3, 1b); \
11457 ENDPROC(atomic64_##op##_return);
11458
11459 +#define ATOMIC64_OP_RETURN(op) __ATOMIC64_OP_RETURN(op, , op, ) \
11460 +i __ATOMIC64_OP_RETURN(op, _unchecked, __REFCOUNT_OP(op), __OVERFLOW_XOP)
11461 +
11462 #define ATOMIC64_OPS(op) ATOMIC64_OP(op) ATOMIC64_OP_RETURN(op)
11463
11464 ATOMIC64_OPS(add)
11465 @@ -87,7 +115,12 @@ ATOMIC64_OPS(sub)
11466
11467 #undef ATOMIC64_OPS
11468 #undef ATOMIC64_OP_RETURN
11469 +#undef __ATOMIC64_OP_RETURN
11470 #undef ATOMIC64_OP
11471 +#undef __ATOMIC64_OP
11472 +#undef __OVERFLOW_XOP
11473 +#undef __OVERFLOW_IOP
11474 +#undef __REFCOUNT_OP
11475
11476 ENTRY(atomic64_dec_if_positive) /* %o0 = atomic_ptr */
11477 BACKOFF_SETUP(%o2)
11478 diff --git a/arch/sparc/lib/ksyms.c b/arch/sparc/lib/ksyms.c
11479 index 8069ce1..c2e23c4 100644
11480 --- a/arch/sparc/lib/ksyms.c
11481 +++ b/arch/sparc/lib/ksyms.c
11482 @@ -101,7 +101,9 @@ EXPORT_SYMBOL(__clear_user);
11483 /* Atomic counter implementation. */
11484 #define ATOMIC_OP(op) \
11485 EXPORT_SYMBOL(atomic_##op); \
11486 -EXPORT_SYMBOL(atomic64_##op);
11487 +EXPORT_SYMBOL(atomic_##op##_unchecked); \
11488 +EXPORT_SYMBOL(atomic64_##op); \
11489 +EXPORT_SYMBOL(atomic64_##op##_unchecked);
11490
11491 #define ATOMIC_OP_RETURN(op) \
11492 EXPORT_SYMBOL(atomic_##op##_return); \
11493 @@ -110,6 +112,8 @@ EXPORT_SYMBOL(atomic64_##op##_return);
11494 #define ATOMIC_OPS(op) ATOMIC_OP(op) ATOMIC_OP_RETURN(op)
11495
11496 ATOMIC_OPS(add)
11497 +EXPORT_SYMBOL(atomic_add_ret_unchecked);
11498 +EXPORT_SYMBOL(atomic64_add_ret_unchecked);
11499 ATOMIC_OPS(sub)
11500
11501 #undef ATOMIC_OPS
11502 diff --git a/arch/sparc/mm/Makefile b/arch/sparc/mm/Makefile
11503 index 30c3ecc..736f015 100644
11504 --- a/arch/sparc/mm/Makefile
11505 +++ b/arch/sparc/mm/Makefile
11506 @@ -2,7 +2,7 @@
11507 #
11508
11509 asflags-y := -ansi
11510 -ccflags-y := -Werror
11511 +#ccflags-y := -Werror
11512
11513 obj-$(CONFIG_SPARC64) += ultra.o tlb.o tsb.o gup.o
11514 obj-y += fault_$(BITS).o
11515 diff --git a/arch/sparc/mm/fault_32.c b/arch/sparc/mm/fault_32.c
11516 index c399e7b..2387414 100644
11517 --- a/arch/sparc/mm/fault_32.c
11518 +++ b/arch/sparc/mm/fault_32.c
11519 @@ -22,6 +22,9 @@
11520 #include <linux/interrupt.h>
11521 #include <linux/kdebug.h>
11522 #include <linux/uaccess.h>
11523 +#include <linux/slab.h>
11524 +#include <linux/pagemap.h>
11525 +#include <linux/compiler.h>
11526
11527 #include <asm/page.h>
11528 #include <asm/pgtable.h>
11529 @@ -156,6 +159,277 @@ static unsigned long compute_si_addr(struct pt_regs *regs, int text_fault)
11530 return safe_compute_effective_address(regs, insn);
11531 }
11532
11533 +#ifdef CONFIG_PAX_PAGEEXEC
11534 +#ifdef CONFIG_PAX_DLRESOLVE
11535 +static void pax_emuplt_close(struct vm_area_struct *vma)
11536 +{
11537 + vma->vm_mm->call_dl_resolve = 0UL;
11538 +}
11539 +
11540 +static int pax_emuplt_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
11541 +{
11542 + unsigned int *kaddr;
11543 +
11544 + vmf->page = alloc_page(GFP_HIGHUSER);
11545 + if (!vmf->page)
11546 + return VM_FAULT_OOM;
11547 +
11548 + kaddr = kmap(vmf->page);
11549 + memset(kaddr, 0, PAGE_SIZE);
11550 + kaddr[0] = 0x9DE3BFA8U; /* save */
11551 + flush_dcache_page(vmf->page);
11552 + kunmap(vmf->page);
11553 + return VM_FAULT_MAJOR;
11554 +}
11555 +
11556 +static const struct vm_operations_struct pax_vm_ops = {
11557 + .close = pax_emuplt_close,
11558 + .fault = pax_emuplt_fault
11559 +};
11560 +
11561 +static int pax_insert_vma(struct vm_area_struct *vma, unsigned long addr)
11562 +{
11563 + int ret;
11564 +
11565 + INIT_LIST_HEAD(&vma->anon_vma_chain);
11566 + vma->vm_mm = current->mm;
11567 + vma->vm_start = addr;
11568 + vma->vm_end = addr + PAGE_SIZE;
11569 + vma->vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC;
11570 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
11571 + vma->vm_ops = &pax_vm_ops;
11572 +
11573 + ret = insert_vm_struct(current->mm, vma);
11574 + if (ret)
11575 + return ret;
11576 +
11577 + ++current->mm->total_vm;
11578 + return 0;
11579 +}
11580 +#endif
11581 +
11582 +/*
11583 + * PaX: decide what to do with offenders (regs->pc = fault address)
11584 + *
11585 + * returns 1 when task should be killed
11586 + * 2 when patched PLT trampoline was detected
11587 + * 3 when unpatched PLT trampoline was detected
11588 + */
11589 +static int pax_handle_fetch_fault(struct pt_regs *regs)
11590 +{
11591 +
11592 +#ifdef CONFIG_PAX_EMUPLT
11593 + int err;
11594 +
11595 + do { /* PaX: patched PLT emulation #1 */
11596 + unsigned int sethi1, sethi2, jmpl;
11597 +
11598 + err = get_user(sethi1, (unsigned int *)regs->pc);
11599 + err |= get_user(sethi2, (unsigned int *)(regs->pc+4));
11600 + err |= get_user(jmpl, (unsigned int *)(regs->pc+8));
11601 +
11602 + if (err)
11603 + break;
11604 +
11605 + if ((sethi1 & 0xFFC00000U) == 0x03000000U &&
11606 + (sethi2 & 0xFFC00000U) == 0x03000000U &&
11607 + (jmpl & 0xFFFFE000U) == 0x81C06000U)
11608 + {
11609 + unsigned int addr;
11610 +
11611 + regs->u_regs[UREG_G1] = (sethi2 & 0x003FFFFFU) << 10;
11612 + addr = regs->u_regs[UREG_G1];
11613 + addr += (((jmpl | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11614 + regs->pc = addr;
11615 + regs->npc = addr+4;
11616 + return 2;
11617 + }
11618 + } while (0);
11619 +
11620 + do { /* PaX: patched PLT emulation #2 */
11621 + unsigned int ba;
11622 +
11623 + err = get_user(ba, (unsigned int *)regs->pc);
11624 +
11625 + if (err)
11626 + break;
11627 +
11628 + if ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30480000U) {
11629 + unsigned int addr;
11630 +
11631 + if ((ba & 0xFFC00000U) == 0x30800000U)
11632 + addr = regs->pc + ((((ba | 0xFFC00000U) ^ 0x00200000U) + 0x00200000U) << 2);
11633 + else
11634 + addr = regs->pc + ((((ba | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11635 + regs->pc = addr;
11636 + regs->npc = addr+4;
11637 + return 2;
11638 + }
11639 + } while (0);
11640 +
11641 + do { /* PaX: patched PLT emulation #3 */
11642 + unsigned int sethi, bajmpl, nop;
11643 +
11644 + err = get_user(sethi, (unsigned int *)regs->pc);
11645 + err |= get_user(bajmpl, (unsigned int *)(regs->pc+4));
11646 + err |= get_user(nop, (unsigned int *)(regs->pc+8));
11647 +
11648 + if (err)
11649 + break;
11650 +
11651 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11652 + ((bajmpl & 0xFFFFE000U) == 0x81C06000U || (bajmpl & 0xFFF80000U) == 0x30480000U) &&
11653 + nop == 0x01000000U)
11654 + {
11655 + unsigned int addr;
11656 +
11657 + addr = (sethi & 0x003FFFFFU) << 10;
11658 + regs->u_regs[UREG_G1] = addr;
11659 + if ((bajmpl & 0xFFFFE000U) == 0x81C06000U)
11660 + addr += (((bajmpl | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11661 + else
11662 + addr = regs->pc + ((((bajmpl | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11663 + regs->pc = addr;
11664 + regs->npc = addr+4;
11665 + return 2;
11666 + }
11667 + } while (0);
11668 +
11669 + do { /* PaX: unpatched PLT emulation step 1 */
11670 + unsigned int sethi, ba, nop;
11671 +
11672 + err = get_user(sethi, (unsigned int *)regs->pc);
11673 + err |= get_user(ba, (unsigned int *)(regs->pc+4));
11674 + err |= get_user(nop, (unsigned int *)(regs->pc+8));
11675 +
11676 + if (err)
11677 + break;
11678 +
11679 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11680 + ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30680000U) &&
11681 + nop == 0x01000000U)
11682 + {
11683 + unsigned int addr, save, call;
11684 +
11685 + if ((ba & 0xFFC00000U) == 0x30800000U)
11686 + addr = regs->pc + 4 + ((((ba | 0xFFC00000U) ^ 0x00200000U) + 0x00200000U) << 2);
11687 + else
11688 + addr = regs->pc + 4 + ((((ba | 0xFFF80000U) ^ 0x00040000U) + 0x00040000U) << 2);
11689 +
11690 + err = get_user(save, (unsigned int *)addr);
11691 + err |= get_user(call, (unsigned int *)(addr+4));
11692 + err |= get_user(nop, (unsigned int *)(addr+8));
11693 + if (err)
11694 + break;
11695 +
11696 +#ifdef CONFIG_PAX_DLRESOLVE
11697 + if (save == 0x9DE3BFA8U &&
11698 + (call & 0xC0000000U) == 0x40000000U &&
11699 + nop == 0x01000000U)
11700 + {
11701 + struct vm_area_struct *vma;
11702 + unsigned long call_dl_resolve;
11703 +
11704 + down_read(&current->mm->mmap_sem);
11705 + call_dl_resolve = current->mm->call_dl_resolve;
11706 + up_read(&current->mm->mmap_sem);
11707 + if (likely(call_dl_resolve))
11708 + goto emulate;
11709 +
11710 + vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
11711 +
11712 + down_write(&current->mm->mmap_sem);
11713 + if (current->mm->call_dl_resolve) {
11714 + call_dl_resolve = current->mm->call_dl_resolve;
11715 + up_write(&current->mm->mmap_sem);
11716 + if (vma)
11717 + kmem_cache_free(vm_area_cachep, vma);
11718 + goto emulate;
11719 + }
11720 +
11721 + call_dl_resolve = get_unmapped_area(NULL, 0UL, PAGE_SIZE, 0UL, MAP_PRIVATE);
11722 + if (!vma || (call_dl_resolve & ~PAGE_MASK)) {
11723 + up_write(&current->mm->mmap_sem);
11724 + if (vma)
11725 + kmem_cache_free(vm_area_cachep, vma);
11726 + return 1;
11727 + }
11728 +
11729 + if (pax_insert_vma(vma, call_dl_resolve)) {
11730 + up_write(&current->mm->mmap_sem);
11731 + kmem_cache_free(vm_area_cachep, vma);
11732 + return 1;
11733 + }
11734 +
11735 + current->mm->call_dl_resolve = call_dl_resolve;
11736 + up_write(&current->mm->mmap_sem);
11737 +
11738 +emulate:
11739 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11740 + regs->pc = call_dl_resolve;
11741 + regs->npc = addr+4;
11742 + return 3;
11743 + }
11744 +#endif
11745 +
11746 + /* PaX: glibc 2.4+ generates sethi/jmpl instead of save/call */
11747 + if ((save & 0xFFC00000U) == 0x05000000U &&
11748 + (call & 0xFFFFE000U) == 0x85C0A000U &&
11749 + nop == 0x01000000U)
11750 + {
11751 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
11752 + regs->u_regs[UREG_G2] = addr + 4;
11753 + addr = (save & 0x003FFFFFU) << 10;
11754 + addr += (((call | 0xFFFFE000U) ^ 0x00001000U) + 0x00001000U);
11755 + regs->pc = addr;
11756 + regs->npc = addr+4;
11757 + return 3;
11758 + }
11759 + }
11760 + } while (0);
11761 +
11762 + do { /* PaX: unpatched PLT emulation step 2 */
11763 + unsigned int save, call, nop;
11764 +
11765 + err = get_user(save, (unsigned int *)(regs->pc-4));
11766 + err |= get_user(call, (unsigned int *)regs->pc);
11767 + err |= get_user(nop, (unsigned int *)(regs->pc+4));
11768 + if (err)
11769 + break;
11770 +
11771 + if (save == 0x9DE3BFA8U &&
11772 + (call & 0xC0000000U) == 0x40000000U &&
11773 + nop == 0x01000000U)
11774 + {
11775 + unsigned int dl_resolve = regs->pc + ((((call | 0xC0000000U) ^ 0x20000000U) + 0x20000000U) << 2);
11776 +
11777 + regs->u_regs[UREG_RETPC] = regs->pc;
11778 + regs->pc = dl_resolve;
11779 + regs->npc = dl_resolve+4;
11780 + return 3;
11781 + }
11782 + } while (0);
11783 +#endif
11784 +
11785 + return 1;
11786 +}
11787 +
11788 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
11789 +{
11790 + unsigned long i;
11791 +
11792 + printk(KERN_ERR "PAX: bytes at PC: ");
11793 + for (i = 0; i < 8; i++) {
11794 + unsigned int c;
11795 + if (get_user(c, (unsigned int *)pc+i))
11796 + printk(KERN_CONT "???????? ");
11797 + else
11798 + printk(KERN_CONT "%08x ", c);
11799 + }
11800 + printk("\n");
11801 +}
11802 +#endif
11803 +
11804 static noinline void do_fault_siginfo(int code, int sig, struct pt_regs *regs,
11805 int text_fault)
11806 {
11807 @@ -226,6 +500,24 @@ good_area:
11808 if (!(vma->vm_flags & VM_WRITE))
11809 goto bad_area;
11810 } else {
11811 +
11812 +#ifdef CONFIG_PAX_PAGEEXEC
11813 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && text_fault && !(vma->vm_flags & VM_EXEC)) {
11814 + up_read(&mm->mmap_sem);
11815 + switch (pax_handle_fetch_fault(regs)) {
11816 +
11817 +#ifdef CONFIG_PAX_EMUPLT
11818 + case 2:
11819 + case 3:
11820 + return;
11821 +#endif
11822 +
11823 + }
11824 + pax_report_fault(regs, (void *)regs->pc, (void *)regs->u_regs[UREG_FP]);
11825 + do_group_exit(SIGKILL);
11826 + }
11827 +#endif
11828 +
11829 /* Allow reads even for write-only mappings */
11830 if (!(vma->vm_flags & (VM_READ | VM_EXEC)))
11831 goto bad_area;
11832 diff --git a/arch/sparc/mm/fault_64.c b/arch/sparc/mm/fault_64.c
11833 index dbabe57..d34d315 100644
11834 --- a/arch/sparc/mm/fault_64.c
11835 +++ b/arch/sparc/mm/fault_64.c
11836 @@ -23,6 +23,9 @@
11837 #include <linux/percpu.h>
11838 #include <linux/context_tracking.h>
11839 #include <linux/uaccess.h>
11840 +#include <linux/slab.h>
11841 +#include <linux/pagemap.h>
11842 +#include <linux/compiler.h>
11843
11844 #include <asm/page.h>
11845 #include <asm/pgtable.h>
11846 @@ -76,7 +79,7 @@ static void __kprobes bad_kernel_pc(struct pt_regs *regs, unsigned long vaddr)
11847 printk(KERN_CRIT "OOPS: Bogus kernel PC [%016lx] in fault handler\n",
11848 regs->tpc);
11849 printk(KERN_CRIT "OOPS: RPC [%016lx]\n", regs->u_regs[15]);
11850 - printk("OOPS: RPC <%pS>\n", (void *) regs->u_regs[15]);
11851 + printk("OOPS: RPC <%pA>\n", (void *) regs->u_regs[15]);
11852 printk(KERN_CRIT "OOPS: Fault was to vaddr[%lx]\n", vaddr);
11853 dump_stack();
11854 unhandled_fault(regs->tpc, current, regs);
11855 @@ -279,6 +282,466 @@ static void noinline __kprobes bogus_32bit_fault_tpc(struct pt_regs *regs)
11856 show_regs(regs);
11857 }
11858
11859 +#ifdef CONFIG_PAX_PAGEEXEC
11860 +#ifdef CONFIG_PAX_DLRESOLVE
11861 +static void pax_emuplt_close(struct vm_area_struct *vma)
11862 +{
11863 + vma->vm_mm->call_dl_resolve = 0UL;
11864 +}
11865 +
11866 +static int pax_emuplt_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
11867 +{
11868 + unsigned int *kaddr;
11869 +
11870 + vmf->page = alloc_page(GFP_HIGHUSER);
11871 + if (!vmf->page)
11872 + return VM_FAULT_OOM;
11873 +
11874 + kaddr = kmap(vmf->page);
11875 + memset(kaddr, 0, PAGE_SIZE);
11876 + kaddr[0] = 0x9DE3BFA8U; /* save */
11877 + flush_dcache_page(vmf->page);
11878 + kunmap(vmf->page);
11879 + return VM_FAULT_MAJOR;
11880 +}
11881 +
11882 +static const struct vm_operations_struct pax_vm_ops = {
11883 + .close = pax_emuplt_close,
11884 + .fault = pax_emuplt_fault
11885 +};
11886 +
11887 +static int pax_insert_vma(struct vm_area_struct *vma, unsigned long addr)
11888 +{
11889 + int ret;
11890 +
11891 + INIT_LIST_HEAD(&vma->anon_vma_chain);
11892 + vma->vm_mm = current->mm;
11893 + vma->vm_start = addr;
11894 + vma->vm_end = addr + PAGE_SIZE;
11895 + vma->vm_flags = VM_READ | VM_EXEC | VM_MAYREAD | VM_MAYEXEC;
11896 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
11897 + vma->vm_ops = &pax_vm_ops;
11898 +
11899 + ret = insert_vm_struct(current->mm, vma);
11900 + if (ret)
11901 + return ret;
11902 +
11903 + ++current->mm->total_vm;
11904 + return 0;
11905 +}
11906 +#endif
11907 +
11908 +/*
11909 + * PaX: decide what to do with offenders (regs->tpc = fault address)
11910 + *
11911 + * returns 1 when task should be killed
11912 + * 2 when patched PLT trampoline was detected
11913 + * 3 when unpatched PLT trampoline was detected
11914 + */
11915 +static int pax_handle_fetch_fault(struct pt_regs *regs)
11916 +{
11917 +
11918 +#ifdef CONFIG_PAX_EMUPLT
11919 + int err;
11920 +
11921 + do { /* PaX: patched PLT emulation #1 */
11922 + unsigned int sethi1, sethi2, jmpl;
11923 +
11924 + err = get_user(sethi1, (unsigned int *)regs->tpc);
11925 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+4));
11926 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+8));
11927 +
11928 + if (err)
11929 + break;
11930 +
11931 + if ((sethi1 & 0xFFC00000U) == 0x03000000U &&
11932 + (sethi2 & 0xFFC00000U) == 0x03000000U &&
11933 + (jmpl & 0xFFFFE000U) == 0x81C06000U)
11934 + {
11935 + unsigned long addr;
11936 +
11937 + regs->u_regs[UREG_G1] = (sethi2 & 0x003FFFFFU) << 10;
11938 + addr = regs->u_regs[UREG_G1];
11939 + addr += (((jmpl | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
11940 +
11941 + if (test_thread_flag(TIF_32BIT))
11942 + addr &= 0xFFFFFFFFUL;
11943 +
11944 + regs->tpc = addr;
11945 + regs->tnpc = addr+4;
11946 + return 2;
11947 + }
11948 + } while (0);
11949 +
11950 + do { /* PaX: patched PLT emulation #2 */
11951 + unsigned int ba;
11952 +
11953 + err = get_user(ba, (unsigned int *)regs->tpc);
11954 +
11955 + if (err)
11956 + break;
11957 +
11958 + if ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30480000U) {
11959 + unsigned long addr;
11960 +
11961 + if ((ba & 0xFFC00000U) == 0x30800000U)
11962 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFC00000UL) ^ 0x00200000UL) + 0x00200000UL) << 2);
11963 + else
11964 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11965 +
11966 + if (test_thread_flag(TIF_32BIT))
11967 + addr &= 0xFFFFFFFFUL;
11968 +
11969 + regs->tpc = addr;
11970 + regs->tnpc = addr+4;
11971 + return 2;
11972 + }
11973 + } while (0);
11974 +
11975 + do { /* PaX: patched PLT emulation #3 */
11976 + unsigned int sethi, bajmpl, nop;
11977 +
11978 + err = get_user(sethi, (unsigned int *)regs->tpc);
11979 + err |= get_user(bajmpl, (unsigned int *)(regs->tpc+4));
11980 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
11981 +
11982 + if (err)
11983 + break;
11984 +
11985 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
11986 + ((bajmpl & 0xFFFFE000U) == 0x81C06000U || (bajmpl & 0xFFF80000U) == 0x30480000U) &&
11987 + nop == 0x01000000U)
11988 + {
11989 + unsigned long addr;
11990 +
11991 + addr = (sethi & 0x003FFFFFU) << 10;
11992 + regs->u_regs[UREG_G1] = addr;
11993 + if ((bajmpl & 0xFFFFE000U) == 0x81C06000U)
11994 + addr += (((bajmpl | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
11995 + else
11996 + addr = regs->tpc + ((((bajmpl | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
11997 +
11998 + if (test_thread_flag(TIF_32BIT))
11999 + addr &= 0xFFFFFFFFUL;
12000 +
12001 + regs->tpc = addr;
12002 + regs->tnpc = addr+4;
12003 + return 2;
12004 + }
12005 + } while (0);
12006 +
12007 + do { /* PaX: patched PLT emulation #4 */
12008 + unsigned int sethi, mov1, call, mov2;
12009 +
12010 + err = get_user(sethi, (unsigned int *)regs->tpc);
12011 + err |= get_user(mov1, (unsigned int *)(regs->tpc+4));
12012 + err |= get_user(call, (unsigned int *)(regs->tpc+8));
12013 + err |= get_user(mov2, (unsigned int *)(regs->tpc+12));
12014 +
12015 + if (err)
12016 + break;
12017 +
12018 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
12019 + mov1 == 0x8210000FU &&
12020 + (call & 0xC0000000U) == 0x40000000U &&
12021 + mov2 == 0x9E100001U)
12022 + {
12023 + unsigned long addr;
12024 +
12025 + regs->u_regs[UREG_G1] = regs->u_regs[UREG_RETPC];
12026 + addr = regs->tpc + 4 + ((((call | 0xFFFFFFFFC0000000UL) ^ 0x20000000UL) + 0x20000000UL) << 2);
12027 +
12028 + if (test_thread_flag(TIF_32BIT))
12029 + addr &= 0xFFFFFFFFUL;
12030 +
12031 + regs->tpc = addr;
12032 + regs->tnpc = addr+4;
12033 + return 2;
12034 + }
12035 + } while (0);
12036 +
12037 + do { /* PaX: patched PLT emulation #5 */
12038 + unsigned int sethi, sethi1, sethi2, or1, or2, sllx, jmpl, nop;
12039 +
12040 + err = get_user(sethi, (unsigned int *)regs->tpc);
12041 + err |= get_user(sethi1, (unsigned int *)(regs->tpc+4));
12042 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+8));
12043 + err |= get_user(or1, (unsigned int *)(regs->tpc+12));
12044 + err |= get_user(or2, (unsigned int *)(regs->tpc+16));
12045 + err |= get_user(sllx, (unsigned int *)(regs->tpc+20));
12046 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+24));
12047 + err |= get_user(nop, (unsigned int *)(regs->tpc+28));
12048 +
12049 + if (err)
12050 + break;
12051 +
12052 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
12053 + (sethi1 & 0xFFC00000U) == 0x03000000U &&
12054 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
12055 + (or1 & 0xFFFFE000U) == 0x82106000U &&
12056 + (or2 & 0xFFFFE000U) == 0x8A116000U &&
12057 + sllx == 0x83287020U &&
12058 + jmpl == 0x81C04005U &&
12059 + nop == 0x01000000U)
12060 + {
12061 + unsigned long addr;
12062 +
12063 + regs->u_regs[UREG_G1] = ((sethi1 & 0x003FFFFFU) << 10) | (or1 & 0x000003FFU);
12064 + regs->u_regs[UREG_G1] <<= 32;
12065 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or2 & 0x000003FFU);
12066 + addr = regs->u_regs[UREG_G1] + regs->u_regs[UREG_G5];
12067 + regs->tpc = addr;
12068 + regs->tnpc = addr+4;
12069 + return 2;
12070 + }
12071 + } while (0);
12072 +
12073 + do { /* PaX: patched PLT emulation #6 */
12074 + unsigned int sethi, sethi1, sethi2, sllx, or, jmpl, nop;
12075 +
12076 + err = get_user(sethi, (unsigned int *)regs->tpc);
12077 + err |= get_user(sethi1, (unsigned int *)(regs->tpc+4));
12078 + err |= get_user(sethi2, (unsigned int *)(regs->tpc+8));
12079 + err |= get_user(sllx, (unsigned int *)(regs->tpc+12));
12080 + err |= get_user(or, (unsigned int *)(regs->tpc+16));
12081 + err |= get_user(jmpl, (unsigned int *)(regs->tpc+20));
12082 + err |= get_user(nop, (unsigned int *)(regs->tpc+24));
12083 +
12084 + if (err)
12085 + break;
12086 +
12087 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
12088 + (sethi1 & 0xFFC00000U) == 0x03000000U &&
12089 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
12090 + sllx == 0x83287020U &&
12091 + (or & 0xFFFFE000U) == 0x8A116000U &&
12092 + jmpl == 0x81C04005U &&
12093 + nop == 0x01000000U)
12094 + {
12095 + unsigned long addr;
12096 +
12097 + regs->u_regs[UREG_G1] = (sethi1 & 0x003FFFFFU) << 10;
12098 + regs->u_regs[UREG_G1] <<= 32;
12099 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or & 0x3FFU);
12100 + addr = regs->u_regs[UREG_G1] + regs->u_regs[UREG_G5];
12101 + regs->tpc = addr;
12102 + regs->tnpc = addr+4;
12103 + return 2;
12104 + }
12105 + } while (0);
12106 +
12107 + do { /* PaX: unpatched PLT emulation step 1 */
12108 + unsigned int sethi, ba, nop;
12109 +
12110 + err = get_user(sethi, (unsigned int *)regs->tpc);
12111 + err |= get_user(ba, (unsigned int *)(regs->tpc+4));
12112 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
12113 +
12114 + if (err)
12115 + break;
12116 +
12117 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
12118 + ((ba & 0xFFC00000U) == 0x30800000U || (ba & 0xFFF80000U) == 0x30680000U) &&
12119 + nop == 0x01000000U)
12120 + {
12121 + unsigned long addr;
12122 + unsigned int save, call;
12123 + unsigned int sethi1, sethi2, or1, or2, sllx, add, jmpl;
12124 +
12125 + if ((ba & 0xFFC00000U) == 0x30800000U)
12126 + addr = regs->tpc + 4 + ((((ba | 0xFFFFFFFFFFC00000UL) ^ 0x00200000UL) + 0x00200000UL) << 2);
12127 + else
12128 + addr = regs->tpc + 4 + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
12129 +
12130 + if (test_thread_flag(TIF_32BIT))
12131 + addr &= 0xFFFFFFFFUL;
12132 +
12133 + err = get_user(save, (unsigned int *)addr);
12134 + err |= get_user(call, (unsigned int *)(addr+4));
12135 + err |= get_user(nop, (unsigned int *)(addr+8));
12136 + if (err)
12137 + break;
12138 +
12139 +#ifdef CONFIG_PAX_DLRESOLVE
12140 + if (save == 0x9DE3BFA8U &&
12141 + (call & 0xC0000000U) == 0x40000000U &&
12142 + nop == 0x01000000U)
12143 + {
12144 + struct vm_area_struct *vma;
12145 + unsigned long call_dl_resolve;
12146 +
12147 + down_read(&current->mm->mmap_sem);
12148 + call_dl_resolve = current->mm->call_dl_resolve;
12149 + up_read(&current->mm->mmap_sem);
12150 + if (likely(call_dl_resolve))
12151 + goto emulate;
12152 +
12153 + vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
12154 +
12155 + down_write(&current->mm->mmap_sem);
12156 + if (current->mm->call_dl_resolve) {
12157 + call_dl_resolve = current->mm->call_dl_resolve;
12158 + up_write(&current->mm->mmap_sem);
12159 + if (vma)
12160 + kmem_cache_free(vm_area_cachep, vma);
12161 + goto emulate;
12162 + }
12163 +
12164 + call_dl_resolve = get_unmapped_area(NULL, 0UL, PAGE_SIZE, 0UL, MAP_PRIVATE);
12165 + if (!vma || (call_dl_resolve & ~PAGE_MASK)) {
12166 + up_write(&current->mm->mmap_sem);
12167 + if (vma)
12168 + kmem_cache_free(vm_area_cachep, vma);
12169 + return 1;
12170 + }
12171 +
12172 + if (pax_insert_vma(vma, call_dl_resolve)) {
12173 + up_write(&current->mm->mmap_sem);
12174 + kmem_cache_free(vm_area_cachep, vma);
12175 + return 1;
12176 + }
12177 +
12178 + current->mm->call_dl_resolve = call_dl_resolve;
12179 + up_write(&current->mm->mmap_sem);
12180 +
12181 +emulate:
12182 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
12183 + regs->tpc = call_dl_resolve;
12184 + regs->tnpc = addr+4;
12185 + return 3;
12186 + }
12187 +#endif
12188 +
12189 + /* PaX: glibc 2.4+ generates sethi/jmpl instead of save/call */
12190 + if ((save & 0xFFC00000U) == 0x05000000U &&
12191 + (call & 0xFFFFE000U) == 0x85C0A000U &&
12192 + nop == 0x01000000U)
12193 + {
12194 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
12195 + regs->u_regs[UREG_G2] = addr + 4;
12196 + addr = (save & 0x003FFFFFU) << 10;
12197 + addr += (((call | 0xFFFFFFFFFFFFE000UL) ^ 0x00001000UL) + 0x00001000UL);
12198 +
12199 + if (test_thread_flag(TIF_32BIT))
12200 + addr &= 0xFFFFFFFFUL;
12201 +
12202 + regs->tpc = addr;
12203 + regs->tnpc = addr+4;
12204 + return 3;
12205 + }
12206 +
12207 + /* PaX: 64-bit PLT stub */
12208 + err = get_user(sethi1, (unsigned int *)addr);
12209 + err |= get_user(sethi2, (unsigned int *)(addr+4));
12210 + err |= get_user(or1, (unsigned int *)(addr+8));
12211 + err |= get_user(or2, (unsigned int *)(addr+12));
12212 + err |= get_user(sllx, (unsigned int *)(addr+16));
12213 + err |= get_user(add, (unsigned int *)(addr+20));
12214 + err |= get_user(jmpl, (unsigned int *)(addr+24));
12215 + err |= get_user(nop, (unsigned int *)(addr+28));
12216 + if (err)
12217 + break;
12218 +
12219 + if ((sethi1 & 0xFFC00000U) == 0x09000000U &&
12220 + (sethi2 & 0xFFC00000U) == 0x0B000000U &&
12221 + (or1 & 0xFFFFE000U) == 0x88112000U &&
12222 + (or2 & 0xFFFFE000U) == 0x8A116000U &&
12223 + sllx == 0x89293020U &&
12224 + add == 0x8A010005U &&
12225 + jmpl == 0x89C14000U &&
12226 + nop == 0x01000000U)
12227 + {
12228 + regs->u_regs[UREG_G1] = (sethi & 0x003FFFFFU) << 10;
12229 + regs->u_regs[UREG_G4] = ((sethi1 & 0x003FFFFFU) << 10) | (or1 & 0x000003FFU);
12230 + regs->u_regs[UREG_G4] <<= 32;
12231 + regs->u_regs[UREG_G5] = ((sethi2 & 0x003FFFFFU) << 10) | (or2 & 0x000003FFU);
12232 + regs->u_regs[UREG_G5] += regs->u_regs[UREG_G4];
12233 + regs->u_regs[UREG_G4] = addr + 24;
12234 + addr = regs->u_regs[UREG_G5];
12235 + regs->tpc = addr;
12236 + regs->tnpc = addr+4;
12237 + return 3;
12238 + }
12239 + }
12240 + } while (0);
12241 +
12242 +#ifdef CONFIG_PAX_DLRESOLVE
12243 + do { /* PaX: unpatched PLT emulation step 2 */
12244 + unsigned int save, call, nop;
12245 +
12246 + err = get_user(save, (unsigned int *)(regs->tpc-4));
12247 + err |= get_user(call, (unsigned int *)regs->tpc);
12248 + err |= get_user(nop, (unsigned int *)(regs->tpc+4));
12249 + if (err)
12250 + break;
12251 +
12252 + if (save == 0x9DE3BFA8U &&
12253 + (call & 0xC0000000U) == 0x40000000U &&
12254 + nop == 0x01000000U)
12255 + {
12256 + unsigned long dl_resolve = regs->tpc + ((((call | 0xFFFFFFFFC0000000UL) ^ 0x20000000UL) + 0x20000000UL) << 2);
12257 +
12258 + if (test_thread_flag(TIF_32BIT))
12259 + dl_resolve &= 0xFFFFFFFFUL;
12260 +
12261 + regs->u_regs[UREG_RETPC] = regs->tpc;
12262 + regs->tpc = dl_resolve;
12263 + regs->tnpc = dl_resolve+4;
12264 + return 3;
12265 + }
12266 + } while (0);
12267 +#endif
12268 +
12269 + do { /* PaX: patched PLT emulation #7, must be AFTER the unpatched PLT emulation */
12270 + unsigned int sethi, ba, nop;
12271 +
12272 + err = get_user(sethi, (unsigned int *)regs->tpc);
12273 + err |= get_user(ba, (unsigned int *)(regs->tpc+4));
12274 + err |= get_user(nop, (unsigned int *)(regs->tpc+8));
12275 +
12276 + if (err)
12277 + break;
12278 +
12279 + if ((sethi & 0xFFC00000U) == 0x03000000U &&
12280 + (ba & 0xFFF00000U) == 0x30600000U &&
12281 + nop == 0x01000000U)
12282 + {
12283 + unsigned long addr;
12284 +
12285 + addr = (sethi & 0x003FFFFFU) << 10;
12286 + regs->u_regs[UREG_G1] = addr;
12287 + addr = regs->tpc + ((((ba | 0xFFFFFFFFFFF80000UL) ^ 0x00040000UL) + 0x00040000UL) << 2);
12288 +
12289 + if (test_thread_flag(TIF_32BIT))
12290 + addr &= 0xFFFFFFFFUL;
12291 +
12292 + regs->tpc = addr;
12293 + regs->tnpc = addr+4;
12294 + return 2;
12295 + }
12296 + } while (0);
12297 +
12298 +#endif
12299 +
12300 + return 1;
12301 +}
12302 +
12303 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
12304 +{
12305 + unsigned long i;
12306 +
12307 + printk(KERN_ERR "PAX: bytes at PC: ");
12308 + for (i = 0; i < 8; i++) {
12309 + unsigned int c;
12310 + if (get_user(c, (unsigned int *)pc+i))
12311 + printk(KERN_CONT "???????? ");
12312 + else
12313 + printk(KERN_CONT "%08x ", c);
12314 + }
12315 + printk("\n");
12316 +}
12317 +#endif
12318 +
12319 asmlinkage void __kprobes do_sparc64_fault(struct pt_regs *regs)
12320 {
12321 enum ctx_state prev_state = exception_enter();
12322 @@ -353,6 +816,29 @@ retry:
12323 if (!vma)
12324 goto bad_area;
12325
12326 +#ifdef CONFIG_PAX_PAGEEXEC
12327 + /* PaX: detect ITLB misses on non-exec pages */
12328 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && vma->vm_start <= address &&
12329 + !(vma->vm_flags & VM_EXEC) && (fault_code & FAULT_CODE_ITLB))
12330 + {
12331 + if (address != regs->tpc)
12332 + goto good_area;
12333 +
12334 + up_read(&mm->mmap_sem);
12335 + switch (pax_handle_fetch_fault(regs)) {
12336 +
12337 +#ifdef CONFIG_PAX_EMUPLT
12338 + case 2:
12339 + case 3:
12340 + return;
12341 +#endif
12342 +
12343 + }
12344 + pax_report_fault(regs, (void *)regs->tpc, (void *)(regs->u_regs[UREG_FP] + STACK_BIAS));
12345 + do_group_exit(SIGKILL);
12346 + }
12347 +#endif
12348 +
12349 /* Pure DTLB misses do not tell us whether the fault causing
12350 * load/store/atomic was a write or not, it only says that there
12351 * was no match. So in such a case we (carefully) read the
12352 diff --git a/arch/sparc/mm/hugetlbpage.c b/arch/sparc/mm/hugetlbpage.c
12353 index 131eaf4..285ea31 100644
12354 --- a/arch/sparc/mm/hugetlbpage.c
12355 +++ b/arch/sparc/mm/hugetlbpage.c
12356 @@ -25,8 +25,10 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
12357 unsigned long addr,
12358 unsigned long len,
12359 unsigned long pgoff,
12360 - unsigned long flags)
12361 + unsigned long flags,
12362 + unsigned long offset)
12363 {
12364 + struct mm_struct *mm = current->mm;
12365 unsigned long task_size = TASK_SIZE;
12366 struct vm_unmapped_area_info info;
12367
12368 @@ -35,15 +37,22 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *filp,
12369
12370 info.flags = 0;
12371 info.length = len;
12372 - info.low_limit = TASK_UNMAPPED_BASE;
12373 + info.low_limit = mm->mmap_base;
12374 info.high_limit = min(task_size, VA_EXCLUDE_START);
12375 info.align_mask = PAGE_MASK & ~HPAGE_MASK;
12376 info.align_offset = 0;
12377 + info.threadstack_offset = offset;
12378 addr = vm_unmapped_area(&info);
12379
12380 if ((addr & ~PAGE_MASK) && task_size > VA_EXCLUDE_END) {
12381 VM_BUG_ON(addr != -ENOMEM);
12382 info.low_limit = VA_EXCLUDE_END;
12383 +
12384 +#ifdef CONFIG_PAX_RANDMMAP
12385 + if (mm->pax_flags & MF_PAX_RANDMMAP)
12386 + info.low_limit += mm->delta_mmap;
12387 +#endif
12388 +
12389 info.high_limit = task_size;
12390 addr = vm_unmapped_area(&info);
12391 }
12392 @@ -55,7 +64,8 @@ static unsigned long
12393 hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
12394 const unsigned long len,
12395 const unsigned long pgoff,
12396 - const unsigned long flags)
12397 + const unsigned long flags,
12398 + const unsigned long offset)
12399 {
12400 struct mm_struct *mm = current->mm;
12401 unsigned long addr = addr0;
12402 @@ -70,6 +80,7 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
12403 info.high_limit = mm->mmap_base;
12404 info.align_mask = PAGE_MASK & ~HPAGE_MASK;
12405 info.align_offset = 0;
12406 + info.threadstack_offset = offset;
12407 addr = vm_unmapped_area(&info);
12408
12409 /*
12410 @@ -82,6 +93,12 @@ hugetlb_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
12411 VM_BUG_ON(addr != -ENOMEM);
12412 info.flags = 0;
12413 info.low_limit = TASK_UNMAPPED_BASE;
12414 +
12415 +#ifdef CONFIG_PAX_RANDMMAP
12416 + if (mm->pax_flags & MF_PAX_RANDMMAP)
12417 + info.low_limit += mm->delta_mmap;
12418 +#endif
12419 +
12420 info.high_limit = STACK_TOP32;
12421 addr = vm_unmapped_area(&info);
12422 }
12423 @@ -96,6 +113,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
12424 struct mm_struct *mm = current->mm;
12425 struct vm_area_struct *vma;
12426 unsigned long task_size = TASK_SIZE;
12427 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
12428
12429 if (test_thread_flag(TIF_32BIT))
12430 task_size = STACK_TOP32;
12431 @@ -111,19 +129,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
12432 return addr;
12433 }
12434
12435 +#ifdef CONFIG_PAX_RANDMMAP
12436 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
12437 +#endif
12438 +
12439 if (addr) {
12440 addr = ALIGN(addr, HPAGE_SIZE);
12441 vma = find_vma(mm, addr);
12442 - if (task_size - len >= addr &&
12443 - (!vma || addr + len <= vma->vm_start))
12444 + if (task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
12445 return addr;
12446 }
12447 if (mm->get_unmapped_area == arch_get_unmapped_area)
12448 return hugetlb_get_unmapped_area_bottomup(file, addr, len,
12449 - pgoff, flags);
12450 + pgoff, flags, offset);
12451 else
12452 return hugetlb_get_unmapped_area_topdown(file, addr, len,
12453 - pgoff, flags);
12454 + pgoff, flags, offset);
12455 }
12456
12457 pte_t *huge_pte_alloc(struct mm_struct *mm,
12458 diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
12459 index 4ac88b7..bac6cb2 100644
12460 --- a/arch/sparc/mm/init_64.c
12461 +++ b/arch/sparc/mm/init_64.c
12462 @@ -187,9 +187,9 @@ unsigned long sparc64_kern_sec_context __read_mostly;
12463 int num_kernel_image_mappings;
12464
12465 #ifdef CONFIG_DEBUG_DCFLUSH
12466 -atomic_t dcpage_flushes = ATOMIC_INIT(0);
12467 +atomic_unchecked_t dcpage_flushes = ATOMIC_INIT(0);
12468 #ifdef CONFIG_SMP
12469 -atomic_t dcpage_flushes_xcall = ATOMIC_INIT(0);
12470 +atomic_unchecked_t dcpage_flushes_xcall = ATOMIC_INIT(0);
12471 #endif
12472 #endif
12473
12474 @@ -197,7 +197,7 @@ inline void flush_dcache_page_impl(struct page *page)
12475 {
12476 BUG_ON(tlb_type == hypervisor);
12477 #ifdef CONFIG_DEBUG_DCFLUSH
12478 - atomic_inc(&dcpage_flushes);
12479 + atomic_inc_unchecked(&dcpage_flushes);
12480 #endif
12481
12482 #ifdef DCACHE_ALIASING_POSSIBLE
12483 @@ -469,10 +469,10 @@ void mmu_info(struct seq_file *m)
12484
12485 #ifdef CONFIG_DEBUG_DCFLUSH
12486 seq_printf(m, "DCPageFlushes\t: %d\n",
12487 - atomic_read(&dcpage_flushes));
12488 + atomic_read_unchecked(&dcpage_flushes));
12489 #ifdef CONFIG_SMP
12490 seq_printf(m, "DCPageFlushesXC\t: %d\n",
12491 - atomic_read(&dcpage_flushes_xcall));
12492 + atomic_read_unchecked(&dcpage_flushes_xcall));
12493 #endif /* CONFIG_SMP */
12494 #endif /* CONFIG_DEBUG_DCFLUSH */
12495 }
12496 diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
12497 index 9def1f5..cf0cabc 100644
12498 --- a/arch/tile/Kconfig
12499 +++ b/arch/tile/Kconfig
12500 @@ -204,6 +204,7 @@ source "kernel/Kconfig.hz"
12501
12502 config KEXEC
12503 bool "kexec system call"
12504 + depends on !GRKERNSEC_KMEM
12505 ---help---
12506 kexec is a system call that implements the ability to shutdown your
12507 current kernel, and to start another kernel. It is like a reboot
12508 diff --git a/arch/tile/include/asm/atomic_64.h b/arch/tile/include/asm/atomic_64.h
12509 index 0496970..1a57e5f 100644
12510 --- a/arch/tile/include/asm/atomic_64.h
12511 +++ b/arch/tile/include/asm/atomic_64.h
12512 @@ -105,6 +105,16 @@ static inline long atomic64_add_unless(atomic64_t *v, long a, long u)
12513
12514 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
12515
12516 +#define atomic64_read_unchecked(v) atomic64_read(v)
12517 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
12518 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
12519 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
12520 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
12521 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
12522 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
12523 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
12524 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
12525 +
12526 #endif /* !__ASSEMBLY__ */
12527
12528 #endif /* _ASM_TILE_ATOMIC_64_H */
12529 diff --git a/arch/tile/include/asm/cache.h b/arch/tile/include/asm/cache.h
12530 index 6160761..00cac88 100644
12531 --- a/arch/tile/include/asm/cache.h
12532 +++ b/arch/tile/include/asm/cache.h
12533 @@ -15,11 +15,12 @@
12534 #ifndef _ASM_TILE_CACHE_H
12535 #define _ASM_TILE_CACHE_H
12536
12537 +#include <linux/const.h>
12538 #include <arch/chip.h>
12539
12540 /* bytes per L1 data cache line */
12541 #define L1_CACHE_SHIFT CHIP_L1D_LOG_LINE_SIZE()
12542 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12543 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12544
12545 /* bytes per L2 cache line */
12546 #define L2_CACHE_SHIFT CHIP_L2_LOG_LINE_SIZE()
12547 diff --git a/arch/tile/include/asm/uaccess.h b/arch/tile/include/asm/uaccess.h
12548 index 0a9c4265..bfb62d1 100644
12549 --- a/arch/tile/include/asm/uaccess.h
12550 +++ b/arch/tile/include/asm/uaccess.h
12551 @@ -429,9 +429,9 @@ static inline unsigned long __must_check copy_from_user(void *to,
12552 const void __user *from,
12553 unsigned long n)
12554 {
12555 - int sz = __compiletime_object_size(to);
12556 + size_t sz = __compiletime_object_size(to);
12557
12558 - if (likely(sz == -1 || sz >= n))
12559 + if (likely(sz == (size_t)-1 || sz >= n))
12560 n = _copy_from_user(to, from, n);
12561 else
12562 copy_from_user_overflow();
12563 diff --git a/arch/tile/mm/hugetlbpage.c b/arch/tile/mm/hugetlbpage.c
12564 index c034dc3..cf1cc96 100644
12565 --- a/arch/tile/mm/hugetlbpage.c
12566 +++ b/arch/tile/mm/hugetlbpage.c
12567 @@ -174,6 +174,7 @@ static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
12568 info.high_limit = TASK_SIZE;
12569 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
12570 info.align_offset = 0;
12571 + info.threadstack_offset = 0;
12572 return vm_unmapped_area(&info);
12573 }
12574
12575 @@ -191,6 +192,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
12576 info.high_limit = current->mm->mmap_base;
12577 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
12578 info.align_offset = 0;
12579 + info.threadstack_offset = 0;
12580 addr = vm_unmapped_area(&info);
12581
12582 /*
12583 diff --git a/arch/um/Makefile b/arch/um/Makefile
12584 index 098ab33..fc54a33 100644
12585 --- a/arch/um/Makefile
12586 +++ b/arch/um/Makefile
12587 @@ -73,6 +73,10 @@ USER_CFLAGS = $(patsubst $(KERNEL_DEFINES),,$(patsubst -I%,,$(KBUILD_CFLAGS))) \
12588 -D_FILE_OFFSET_BITS=64 -idirafter include \
12589 -D__KERNEL__ -D__UM_HOST__
12590
12591 +ifdef CONSTIFY_PLUGIN
12592 +USER_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12593 +endif
12594 +
12595 #This will adjust *FLAGS accordingly to the platform.
12596 include $(ARCH_DIR)/Makefile-os-$(OS)
12597
12598 diff --git a/arch/um/include/asm/cache.h b/arch/um/include/asm/cache.h
12599 index 19e1bdd..3665b77 100644
12600 --- a/arch/um/include/asm/cache.h
12601 +++ b/arch/um/include/asm/cache.h
12602 @@ -1,6 +1,7 @@
12603 #ifndef __UM_CACHE_H
12604 #define __UM_CACHE_H
12605
12606 +#include <linux/const.h>
12607
12608 #if defined(CONFIG_UML_X86) && !defined(CONFIG_64BIT)
12609 # define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
12610 @@ -12,6 +13,6 @@
12611 # define L1_CACHE_SHIFT 5
12612 #endif
12613
12614 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12615 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12616
12617 #endif
12618 diff --git a/arch/um/include/asm/kmap_types.h b/arch/um/include/asm/kmap_types.h
12619 index 2e0a6b1..a64d0f5 100644
12620 --- a/arch/um/include/asm/kmap_types.h
12621 +++ b/arch/um/include/asm/kmap_types.h
12622 @@ -8,6 +8,6 @@
12623
12624 /* No more #include "asm/arch/kmap_types.h" ! */
12625
12626 -#define KM_TYPE_NR 14
12627 +#define KM_TYPE_NR 15
12628
12629 #endif
12630 diff --git a/arch/um/include/asm/page.h b/arch/um/include/asm/page.h
12631 index 71c5d13..4c7b9f1 100644
12632 --- a/arch/um/include/asm/page.h
12633 +++ b/arch/um/include/asm/page.h
12634 @@ -14,6 +14,9 @@
12635 #define PAGE_SIZE (_AC(1, UL) << PAGE_SHIFT)
12636 #define PAGE_MASK (~(PAGE_SIZE-1))
12637
12638 +#define ktla_ktva(addr) (addr)
12639 +#define ktva_ktla(addr) (addr)
12640 +
12641 #ifndef __ASSEMBLY__
12642
12643 struct page;
12644 diff --git a/arch/um/include/asm/pgtable-3level.h b/arch/um/include/asm/pgtable-3level.h
12645 index 2b4274e..754fe06 100644
12646 --- a/arch/um/include/asm/pgtable-3level.h
12647 +++ b/arch/um/include/asm/pgtable-3level.h
12648 @@ -58,6 +58,7 @@
12649 #define pud_present(x) (pud_val(x) & _PAGE_PRESENT)
12650 #define pud_populate(mm, pud, pmd) \
12651 set_pud(pud, __pud(_PAGE_TABLE + __pa(pmd)))
12652 +#define pud_populate_kernel(mm, pud, pmd) pud_populate((mm), (pud), (pmd))
12653
12654 #ifdef CONFIG_64BIT
12655 #define set_pud(pudptr, pudval) set_64bit((u64 *) (pudptr), pud_val(pudval))
12656 diff --git a/arch/um/kernel/process.c b/arch/um/kernel/process.c
12657 index 68b9119..f72353c 100644
12658 --- a/arch/um/kernel/process.c
12659 +++ b/arch/um/kernel/process.c
12660 @@ -345,22 +345,6 @@ int singlestepping(void * t)
12661 return 2;
12662 }
12663
12664 -/*
12665 - * Only x86 and x86_64 have an arch_align_stack().
12666 - * All other arches have "#define arch_align_stack(x) (x)"
12667 - * in their asm/exec.h
12668 - * As this is included in UML from asm-um/system-generic.h,
12669 - * we can use it to behave as the subarch does.
12670 - */
12671 -#ifndef arch_align_stack
12672 -unsigned long arch_align_stack(unsigned long sp)
12673 -{
12674 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
12675 - sp -= get_random_int() % 8192;
12676 - return sp & ~0xf;
12677 -}
12678 -#endif
12679 -
12680 unsigned long get_wchan(struct task_struct *p)
12681 {
12682 unsigned long stack_page, sp, ip;
12683 diff --git a/arch/unicore32/include/asm/cache.h b/arch/unicore32/include/asm/cache.h
12684 index ad8f795..2c7eec6 100644
12685 --- a/arch/unicore32/include/asm/cache.h
12686 +++ b/arch/unicore32/include/asm/cache.h
12687 @@ -12,8 +12,10 @@
12688 #ifndef __UNICORE_CACHE_H__
12689 #define __UNICORE_CACHE_H__
12690
12691 -#define L1_CACHE_SHIFT (5)
12692 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
12693 +#include <linux/const.h>
12694 +
12695 +#define L1_CACHE_SHIFT 5
12696 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
12697
12698 /*
12699 * Memory returned by kmalloc() may be used for DMA, so we must make
12700 diff --git a/arch/x86/Kconfig b/arch/x86/Kconfig
12701 index b3a1a5d..8dbc2d6 100644
12702 --- a/arch/x86/Kconfig
12703 +++ b/arch/x86/Kconfig
12704 @@ -35,13 +35,12 @@ config X86
12705 select ARCH_MIGHT_HAVE_PC_SERIO
12706 select ARCH_SUPPORTS_ATOMIC_RMW
12707 select ARCH_SUPPORTS_DEFERRED_STRUCT_PAGE_INIT
12708 - select ARCH_SUPPORTS_INT128 if X86_64
12709 + select ARCH_SUPPORTS_INT128 if X86_64 && !PAX_SIZE_OVERFLOW
12710 select ARCH_SUPPORTS_NUMA_BALANCING if X86_64
12711 select ARCH_USE_BUILTIN_BSWAP
12712 select ARCH_USE_CMPXCHG_LOCKREF if X86_64
12713 select ARCH_USE_QUEUED_RWLOCKS
12714 select ARCH_USE_QUEUED_SPINLOCKS
12715 - select ARCH_WANTS_DYNAMIC_TASK_STRUCT
12716 select ARCH_WANT_FRAME_POINTERS
12717 select ARCH_WANT_IPC_PARSE_VERSION if X86_32
12718 select ARCH_WANT_OPTIONAL_GPIOLIB
12719 @@ -85,7 +84,7 @@ config X86
12720 select HAVE_ARCH_TRACEHOOK
12721 select HAVE_ARCH_TRANSPARENT_HUGEPAGE
12722 select HAVE_BPF_JIT if X86_64
12723 - select HAVE_CC_STACKPROTECTOR
12724 + select HAVE_CC_STACKPROTECTOR if X86_64 || !PAX_MEMORY_UDEREF
12725 select HAVE_CMPXCHG_DOUBLE
12726 select HAVE_CMPXCHG_LOCAL
12727 select HAVE_CONTEXT_TRACKING if X86_64
12728 @@ -274,7 +273,7 @@ config X86_64_SMP
12729
12730 config X86_32_LAZY_GS
12731 def_bool y
12732 - depends on X86_32 && !CC_STACKPROTECTOR
12733 + depends on X86_32 && !CC_STACKPROTECTOR && !PAX_MEMORY_UDEREF
12734
12735 config ARCH_HWEIGHT_CFLAGS
12736 string
12737 @@ -646,6 +645,7 @@ config SCHED_OMIT_FRAME_POINTER
12738
12739 menuconfig HYPERVISOR_GUEST
12740 bool "Linux guest support"
12741 + depends on !GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_VIRT_GUEST || (GRKERNSEC_CONFIG_VIRT_HOST && GRKERNSEC_CONFIG_VIRT_XEN)
12742 ---help---
12743 Say Y here to enable options for running Linux under various hyper-
12744 visors. This option enables basic hypervisor detection and platform
12745 @@ -1014,6 +1014,7 @@ config VM86
12746
12747 config X86_16BIT
12748 bool "Enable support for 16-bit segments" if EXPERT
12749 + depends on !GRKERNSEC
12750 default y
12751 ---help---
12752 This option is required by programs like Wine to run 16-bit
12753 @@ -1182,6 +1183,7 @@ choice
12754
12755 config NOHIGHMEM
12756 bool "off"
12757 + depends on !(PAX_PAGEEXEC && PAX_ENABLE_PAE)
12758 ---help---
12759 Linux can use up to 64 Gigabytes of physical memory on x86 systems.
12760 However, the address space of 32-bit x86 processors is only 4
12761 @@ -1218,6 +1220,7 @@ config NOHIGHMEM
12762
12763 config HIGHMEM4G
12764 bool "4GB"
12765 + depends on !(PAX_PAGEEXEC && PAX_ENABLE_PAE)
12766 ---help---
12767 Select this if you have a 32-bit processor and between 1 and 4
12768 gigabytes of physical RAM.
12769 @@ -1270,7 +1273,7 @@ config PAGE_OFFSET
12770 hex
12771 default 0xB0000000 if VMSPLIT_3G_OPT
12772 default 0x80000000 if VMSPLIT_2G
12773 - default 0x78000000 if VMSPLIT_2G_OPT
12774 + default 0x70000000 if VMSPLIT_2G_OPT
12775 default 0x40000000 if VMSPLIT_1G
12776 default 0xC0000000
12777 depends on X86_32
12778 @@ -1290,7 +1293,6 @@ config X86_PAE
12779
12780 config ARCH_PHYS_ADDR_T_64BIT
12781 def_bool y
12782 - depends on X86_64 || X86_PAE
12783
12784 config ARCH_DMA_ADDR_T_64BIT
12785 def_bool y
12786 @@ -1724,6 +1726,7 @@ source kernel/Kconfig.hz
12787
12788 config KEXEC
12789 bool "kexec system call"
12790 + depends on !GRKERNSEC_KMEM
12791 ---help---
12792 kexec is a system call that implements the ability to shutdown your
12793 current kernel, and to start another kernel. It is like a reboot
12794 @@ -1906,7 +1909,9 @@ config X86_NEED_RELOCS
12795
12796 config PHYSICAL_ALIGN
12797 hex "Alignment value to which kernel should be aligned"
12798 - default "0x200000"
12799 + default "0x1000000"
12800 + range 0x200000 0x1000000 if PAX_KERNEXEC && X86_PAE
12801 + range 0x400000 0x1000000 if PAX_KERNEXEC && !X86_PAE
12802 range 0x2000 0x1000000 if X86_32
12803 range 0x200000 0x1000000 if X86_64
12804 ---help---
12805 @@ -1989,6 +1994,7 @@ config COMPAT_VDSO
12806 def_bool n
12807 prompt "Disable the 32-bit vDSO (needed for glibc 2.3.3)"
12808 depends on X86_32 || IA32_EMULATION
12809 + depends on !PAX_PAGEEXEC && !PAX_SEGMEXEC && !PAX_KERNEXEC && !PAX_MEMORY_UDEREF
12810 ---help---
12811 Certain buggy versions of glibc will crash if they are
12812 presented with a 32-bit vDSO that is not mapped at the address
12813 @@ -2053,6 +2059,22 @@ config CMDLINE_OVERRIDE
12814 This is used to work around broken boot loaders. This should
12815 be set to 'N' under normal conditions.
12816
12817 +config DEFAULT_MODIFY_LDT_SYSCALL
12818 + bool "Allow userspace to modify the LDT by default"
12819 + default y
12820 +
12821 + ---help---
12822 + Modifying the LDT (Local Descriptor Table) may be needed to run a
12823 + 16-bit or segmented code such as Dosemu or Wine. This is done via
12824 + a system call which is not needed to run portable applications,
12825 + and which can sometimes be abused to exploit some weaknesses of
12826 + the architecture, opening new vulnerabilities.
12827 +
12828 + For this reason this option allows one to enable or disable the
12829 + feature at runtime. It is recommended to say 'N' here to leave
12830 + the system protected, and to enable it at runtime only if needed
12831 + by setting the sys.kernel.modify_ldt sysctl.
12832 +
12833 source "kernel/livepatch/Kconfig"
12834
12835 endmenu
12836 diff --git a/arch/x86/Kconfig.cpu b/arch/x86/Kconfig.cpu
12837 index 6983314..54ad7e8 100644
12838 --- a/arch/x86/Kconfig.cpu
12839 +++ b/arch/x86/Kconfig.cpu
12840 @@ -319,7 +319,7 @@ config X86_PPRO_FENCE
12841
12842 config X86_F00F_BUG
12843 def_bool y
12844 - depends on M586MMX || M586TSC || M586 || M486
12845 + depends on (M586MMX || M586TSC || M586 || M486) && !PAX_KERNEXEC
12846
12847 config X86_INVD_BUG
12848 def_bool y
12849 @@ -327,7 +327,7 @@ config X86_INVD_BUG
12850
12851 config X86_ALIGNMENT_16
12852 def_bool y
12853 - depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || MELAN || MK6 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
12854 + depends on MWINCHIP3D || MWINCHIPC6 || MCYRIXIII || X86_ELAN || MK8 || MK7 || MK6 || MCORE2 || MPENTIUM4 || MPENTIUMIII || MPENTIUMII || M686 || M586MMX || M586TSC || M586 || M486 || MVIAC3_2 || MGEODEGX1
12855
12856 config X86_INTEL_USERCOPY
12857 def_bool y
12858 @@ -369,7 +369,7 @@ config X86_CMPXCHG64
12859 # generates cmov.
12860 config X86_CMOV
12861 def_bool y
12862 - depends on (MK8 || MK7 || MCORE2 || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
12863 + depends on (MK8 || MK7 || MCORE2 || MPSC || MPENTIUM4 || MPENTIUMM || MPENTIUMIII || MPENTIUMII || M686 || MVIAC3_2 || MVIAC7 || MCRUSOE || MEFFICEON || X86_64 || MATOM || MGEODE_LX)
12864
12865 config X86_MINIMUM_CPU_FAMILY
12866 int
12867 diff --git a/arch/x86/Kconfig.debug b/arch/x86/Kconfig.debug
12868 index d8c0d32..28e3117 100644
12869 --- a/arch/x86/Kconfig.debug
12870 +++ b/arch/x86/Kconfig.debug
12871 @@ -69,6 +69,7 @@ config X86_PTDUMP
12872 bool "Export kernel pagetable layout to userspace via debugfs"
12873 depends on DEBUG_KERNEL
12874 select DEBUG_FS
12875 + depends on !GRKERNSEC_KMEM
12876 ---help---
12877 Say Y here if you want to show the kernel pagetable layout in a
12878 debugfs file. This information is only useful for kernel developers
12879 @@ -89,7 +90,7 @@ config EFI_PGT_DUMP
12880 config DEBUG_RODATA
12881 bool "Write protect kernel read-only data structures"
12882 default y
12883 - depends on DEBUG_KERNEL
12884 + depends on DEBUG_KERNEL && BROKEN
12885 ---help---
12886 Mark the kernel read-only data as write-protected in the pagetables,
12887 in order to catch accidental (and incorrect) writes to such const
12888 @@ -107,7 +108,7 @@ config DEBUG_RODATA_TEST
12889
12890 config DEBUG_SET_MODULE_RONX
12891 bool "Set loadable kernel module data as NX and text as RO"
12892 - depends on MODULES
12893 + depends on MODULES && BROKEN
12894 ---help---
12895 This option helps catch unintended modifications to loadable
12896 kernel module's text and read-only data. It also prevents execution
12897 @@ -359,6 +360,7 @@ config X86_DEBUG_FPU
12898 config PUNIT_ATOM_DEBUG
12899 tristate "ATOM Punit debug driver"
12900 select DEBUG_FS
12901 + depends on !GRKERNSEC_KMEM
12902 select IOSF_MBI
12903 ---help---
12904 This is a debug driver, which gets the power states
12905 diff --git a/arch/x86/Makefile b/arch/x86/Makefile
12906 index 118e6de..e02efff 100644
12907 --- a/arch/x86/Makefile
12908 +++ b/arch/x86/Makefile
12909 @@ -65,9 +65,6 @@ ifeq ($(CONFIG_X86_32),y)
12910 # CPU-specific tuning. Anything which can be shared with UML should go here.
12911 include arch/x86/Makefile_32.cpu
12912 KBUILD_CFLAGS += $(cflags-y)
12913 -
12914 - # temporary until string.h is fixed
12915 - KBUILD_CFLAGS += -ffreestanding
12916 else
12917 BITS := 64
12918 UTS_MACHINE := x86_64
12919 @@ -116,6 +113,9 @@ else
12920 KBUILD_CFLAGS += $(call cc-option,-maccumulate-outgoing-args)
12921 endif
12922
12923 +# temporary until string.h is fixed
12924 +KBUILD_CFLAGS += -ffreestanding
12925 +
12926 # Make sure compiler does not have buggy stack-protector support.
12927 ifdef CONFIG_CC_STACKPROTECTOR
12928 cc_has_sp := $(srctree)/scripts/gcc-x86_$(BITS)-has-stack-protector.sh
12929 @@ -184,6 +184,7 @@ archheaders:
12930 $(Q)$(MAKE) $(build)=arch/x86/entry/syscalls all
12931
12932 archprepare:
12933 + $(if $(LDFLAGS_BUILD_ID),,$(error $(OLD_LD)))
12934 ifeq ($(CONFIG_KEXEC_FILE),y)
12935 $(Q)$(MAKE) $(build)=arch/x86/purgatory arch/x86/purgatory/kexec-purgatory.c
12936 endif
12937 @@ -267,3 +268,9 @@ define archhelp
12938 echo ' FDARGS="..." arguments for the booted kernel'
12939 echo ' FDINITRD=file initrd for the booted kernel'
12940 endef
12941 +
12942 +define OLD_LD
12943 +
12944 +*** ${VERSION}.${PATCHLEVEL} PaX kernels no longer build correctly with old versions of binutils.
12945 +*** Please upgrade your binutils to 2.18 or newer
12946 +endef
12947 diff --git a/arch/x86/boot/Makefile b/arch/x86/boot/Makefile
12948 index 57bbf2f..b100fce 100644
12949 --- a/arch/x86/boot/Makefile
12950 +++ b/arch/x86/boot/Makefile
12951 @@ -58,6 +58,9 @@ clean-files += cpustr.h
12952 # ---------------------------------------------------------------------------
12953
12954 KBUILD_CFLAGS := $(USERINCLUDE) $(REALMODE_CFLAGS) -D_SETUP
12955 +ifdef CONSTIFY_PLUGIN
12956 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
12957 +endif
12958 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
12959 GCOV_PROFILE := n
12960
12961 diff --git a/arch/x86/boot/bitops.h b/arch/x86/boot/bitops.h
12962 index 878e4b9..20537ab 100644
12963 --- a/arch/x86/boot/bitops.h
12964 +++ b/arch/x86/boot/bitops.h
12965 @@ -26,7 +26,7 @@ static inline int variable_test_bit(int nr, const void *addr)
12966 u8 v;
12967 const u32 *p = (const u32 *)addr;
12968
12969 - asm("btl %2,%1; setc %0" : "=qm" (v) : "m" (*p), "Ir" (nr));
12970 + asm volatile("btl %2,%1; setc %0" : "=qm" (v) : "m" (*p), "Ir" (nr));
12971 return v;
12972 }
12973
12974 @@ -37,7 +37,7 @@ static inline int variable_test_bit(int nr, const void *addr)
12975
12976 static inline void set_bit(int nr, void *addr)
12977 {
12978 - asm("btsl %1,%0" : "+m" (*(u32 *)addr) : "Ir" (nr));
12979 + asm volatile("btsl %1,%0" : "+m" (*(u32 *)addr) : "Ir" (nr));
12980 }
12981
12982 #endif /* BOOT_BITOPS_H */
12983 diff --git a/arch/x86/boot/boot.h b/arch/x86/boot/boot.h
12984 index bd49ec6..94c7f58 100644
12985 --- a/arch/x86/boot/boot.h
12986 +++ b/arch/x86/boot/boot.h
12987 @@ -84,7 +84,7 @@ static inline void io_delay(void)
12988 static inline u16 ds(void)
12989 {
12990 u16 seg;
12991 - asm("movw %%ds,%0" : "=rm" (seg));
12992 + asm volatile("movw %%ds,%0" : "=rm" (seg));
12993 return seg;
12994 }
12995
12996 diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
12997 index 0a291cd..9686efc 100644
12998 --- a/arch/x86/boot/compressed/Makefile
12999 +++ b/arch/x86/boot/compressed/Makefile
13000 @@ -30,6 +30,9 @@ KBUILD_CFLAGS += $(cflags-y)
13001 KBUILD_CFLAGS += -mno-mmx -mno-sse
13002 KBUILD_CFLAGS += $(call cc-option,-ffreestanding)
13003 KBUILD_CFLAGS += $(call cc-option,-fno-stack-protector)
13004 +ifdef CONSTIFY_PLUGIN
13005 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
13006 +endif
13007
13008 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
13009 GCOV_PROFILE := n
13010 diff --git a/arch/x86/boot/compressed/efi_stub_32.S b/arch/x86/boot/compressed/efi_stub_32.S
13011 index a53440e..c3dbf1e 100644
13012 --- a/arch/x86/boot/compressed/efi_stub_32.S
13013 +++ b/arch/x86/boot/compressed/efi_stub_32.S
13014 @@ -46,16 +46,13 @@ ENTRY(efi_call_phys)
13015 * parameter 2, ..., param n. To make things easy, we save the return
13016 * address of efi_call_phys in a global variable.
13017 */
13018 - popl %ecx
13019 - movl %ecx, saved_return_addr(%edx)
13020 - /* get the function pointer into ECX*/
13021 - popl %ecx
13022 - movl %ecx, efi_rt_function_ptr(%edx)
13023 + popl saved_return_addr(%edx)
13024 + popl efi_rt_function_ptr(%edx)
13025
13026 /*
13027 * 3. Call the physical function.
13028 */
13029 - call *%ecx
13030 + call *efi_rt_function_ptr(%edx)
13031
13032 /*
13033 * 4. Balance the stack. And because EAX contain the return value,
13034 @@ -67,15 +64,12 @@ ENTRY(efi_call_phys)
13035 1: popl %edx
13036 subl $1b, %edx
13037
13038 - movl efi_rt_function_ptr(%edx), %ecx
13039 - pushl %ecx
13040 + pushl efi_rt_function_ptr(%edx)
13041
13042 /*
13043 * 10. Push the saved return address onto the stack and return.
13044 */
13045 - movl saved_return_addr(%edx), %ecx
13046 - pushl %ecx
13047 - ret
13048 + jmpl *saved_return_addr(%edx)
13049 ENDPROC(efi_call_phys)
13050 .previous
13051
13052 diff --git a/arch/x86/boot/compressed/efi_thunk_64.S b/arch/x86/boot/compressed/efi_thunk_64.S
13053 index 630384a..278e788 100644
13054 --- a/arch/x86/boot/compressed/efi_thunk_64.S
13055 +++ b/arch/x86/boot/compressed/efi_thunk_64.S
13056 @@ -189,8 +189,8 @@ efi_gdt64:
13057 .long 0 /* Filled out by user */
13058 .word 0
13059 .quad 0x0000000000000000 /* NULL descriptor */
13060 - .quad 0x00af9a000000ffff /* __KERNEL_CS */
13061 - .quad 0x00cf92000000ffff /* __KERNEL_DS */
13062 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
13063 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
13064 .quad 0x0080890000000000 /* TS descriptor */
13065 .quad 0x0000000000000000 /* TS continued */
13066 efi_gdt64_end:
13067 diff --git a/arch/x86/boot/compressed/head_32.S b/arch/x86/boot/compressed/head_32.S
13068 index 8ef964d..fcfb8aa 100644
13069 --- a/arch/x86/boot/compressed/head_32.S
13070 +++ b/arch/x86/boot/compressed/head_32.S
13071 @@ -141,10 +141,10 @@ preferred_addr:
13072 addl %eax, %ebx
13073 notl %eax
13074 andl %eax, %ebx
13075 - cmpl $LOAD_PHYSICAL_ADDR, %ebx
13076 + cmpl $____LOAD_PHYSICAL_ADDR, %ebx
13077 jge 1f
13078 #endif
13079 - movl $LOAD_PHYSICAL_ADDR, %ebx
13080 + movl $____LOAD_PHYSICAL_ADDR, %ebx
13081 1:
13082
13083 /* Target address to relocate to for decompression */
13084 diff --git a/arch/x86/boot/compressed/head_64.S b/arch/x86/boot/compressed/head_64.S
13085 index b0c0d16..3b44ff8 100644
13086 --- a/arch/x86/boot/compressed/head_64.S
13087 +++ b/arch/x86/boot/compressed/head_64.S
13088 @@ -95,10 +95,10 @@ ENTRY(startup_32)
13089 addl %eax, %ebx
13090 notl %eax
13091 andl %eax, %ebx
13092 - cmpl $LOAD_PHYSICAL_ADDR, %ebx
13093 + cmpl $____LOAD_PHYSICAL_ADDR, %ebx
13094 jge 1f
13095 #endif
13096 - movl $LOAD_PHYSICAL_ADDR, %ebx
13097 + movl $____LOAD_PHYSICAL_ADDR, %ebx
13098 1:
13099
13100 /* Target address to relocate to for decompression */
13101 @@ -323,10 +323,10 @@ preferred_addr:
13102 addq %rax, %rbp
13103 notq %rax
13104 andq %rax, %rbp
13105 - cmpq $LOAD_PHYSICAL_ADDR, %rbp
13106 + cmpq $____LOAD_PHYSICAL_ADDR, %rbp
13107 jge 1f
13108 #endif
13109 - movq $LOAD_PHYSICAL_ADDR, %rbp
13110 + movq $____LOAD_PHYSICAL_ADDR, %rbp
13111 1:
13112
13113 /* Target address to relocate to for decompression */
13114 @@ -435,8 +435,8 @@ gdt:
13115 .long gdt
13116 .word 0
13117 .quad 0x0000000000000000 /* NULL descriptor */
13118 - .quad 0x00af9a000000ffff /* __KERNEL_CS */
13119 - .quad 0x00cf92000000ffff /* __KERNEL_DS */
13120 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
13121 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
13122 .quad 0x0080890000000000 /* TS descriptor */
13123 .quad 0x0000000000000000 /* TS continued */
13124 gdt_end:
13125 diff --git a/arch/x86/boot/compressed/misc.c b/arch/x86/boot/compressed/misc.c
13126 index e28437e..6a17460 100644
13127 --- a/arch/x86/boot/compressed/misc.c
13128 +++ b/arch/x86/boot/compressed/misc.c
13129 @@ -242,7 +242,7 @@ static void handle_relocations(void *output, unsigned long output_len)
13130 * Calculate the delta between where vmlinux was linked to load
13131 * and where it was actually loaded.
13132 */
13133 - delta = min_addr - LOAD_PHYSICAL_ADDR;
13134 + delta = min_addr - ____LOAD_PHYSICAL_ADDR;
13135 if (!delta) {
13136 debug_putstr("No relocation needed... ");
13137 return;
13138 @@ -324,7 +324,7 @@ static void parse_elf(void *output)
13139 Elf32_Ehdr ehdr;
13140 Elf32_Phdr *phdrs, *phdr;
13141 #endif
13142 - void *dest;
13143 + void *dest, *prev;
13144 int i;
13145
13146 memcpy(&ehdr, output, sizeof(ehdr));
13147 @@ -351,13 +351,16 @@ static void parse_elf(void *output)
13148 case PT_LOAD:
13149 #ifdef CONFIG_RELOCATABLE
13150 dest = output;
13151 - dest += (phdr->p_paddr - LOAD_PHYSICAL_ADDR);
13152 + dest += (phdr->p_paddr - ____LOAD_PHYSICAL_ADDR);
13153 #else
13154 dest = (void *)(phdr->p_paddr);
13155 #endif
13156 memcpy(dest,
13157 output + phdr->p_offset,
13158 phdr->p_filesz);
13159 + if (i)
13160 + memset(prev, 0xff, dest - prev);
13161 + prev = dest + phdr->p_filesz;
13162 break;
13163 default: /* Ignore other PT_* */ break;
13164 }
13165 @@ -419,7 +422,7 @@ asmlinkage __visible void *decompress_kernel(void *rmode, memptr heap,
13166 error("Destination address too large");
13167 #endif
13168 #ifndef CONFIG_RELOCATABLE
13169 - if ((unsigned long)output != LOAD_PHYSICAL_ADDR)
13170 + if ((unsigned long)output != ____LOAD_PHYSICAL_ADDR)
13171 error("Wrong destination address");
13172 #endif
13173
13174 diff --git a/arch/x86/boot/cpucheck.c b/arch/x86/boot/cpucheck.c
13175 index 1fd7d57..0f7d096 100644
13176 --- a/arch/x86/boot/cpucheck.c
13177 +++ b/arch/x86/boot/cpucheck.c
13178 @@ -125,9 +125,9 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
13179 u32 ecx = MSR_K7_HWCR;
13180 u32 eax, edx;
13181
13182 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13183 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13184 eax &= ~(1 << 15);
13185 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13186 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13187
13188 get_cpuflags(); /* Make sure it really did something */
13189 err = check_cpuflags();
13190 @@ -140,9 +140,9 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
13191 u32 ecx = MSR_VIA_FCR;
13192 u32 eax, edx;
13193
13194 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13195 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13196 eax |= (1<<1)|(1<<7);
13197 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13198 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13199
13200 set_bit(X86_FEATURE_CX8, cpu.flags);
13201 err = check_cpuflags();
13202 @@ -153,12 +153,12 @@ int check_cpu(int *cpu_level_ptr, int *req_level_ptr, u32 **err_flags_ptr)
13203 u32 eax, edx;
13204 u32 level = 1;
13205
13206 - asm("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13207 - asm("wrmsr" : : "a" (~0), "d" (edx), "c" (ecx));
13208 - asm("cpuid"
13209 + asm volatile("rdmsr" : "=a" (eax), "=d" (edx) : "c" (ecx));
13210 + asm volatile("wrmsr" : : "a" (~0), "d" (edx), "c" (ecx));
13211 + asm volatile("cpuid"
13212 : "+a" (level), "=d" (cpu.flags[0])
13213 : : "ecx", "ebx");
13214 - asm("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13215 + asm volatile("wrmsr" : : "a" (eax), "d" (edx), "c" (ecx));
13216
13217 err = check_cpuflags();
13218 } else if (err == 0x01 &&
13219 diff --git a/arch/x86/boot/header.S b/arch/x86/boot/header.S
13220 index 16ef025..91e033b 100644
13221 --- a/arch/x86/boot/header.S
13222 +++ b/arch/x86/boot/header.S
13223 @@ -438,10 +438,14 @@ setup_data: .quad 0 # 64-bit physical pointer to
13224 # single linked list of
13225 # struct setup_data
13226
13227 -pref_address: .quad LOAD_PHYSICAL_ADDR # preferred load addr
13228 +pref_address: .quad ____LOAD_PHYSICAL_ADDR # preferred load addr
13229
13230 #define ZO_INIT_SIZE (ZO__end - ZO_startup_32 + ZO_z_extract_offset)
13231 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
13232 +#define VO_INIT_SIZE (VO__end - VO__text - __PAGE_OFFSET - ____LOAD_PHYSICAL_ADDR)
13233 +#else
13234 #define VO_INIT_SIZE (VO__end - VO__text)
13235 +#endif
13236 #if ZO_INIT_SIZE > VO_INIT_SIZE
13237 #define INIT_SIZE ZO_INIT_SIZE
13238 #else
13239 diff --git a/arch/x86/boot/memory.c b/arch/x86/boot/memory.c
13240 index db75d07..8e6d0af 100644
13241 --- a/arch/x86/boot/memory.c
13242 +++ b/arch/x86/boot/memory.c
13243 @@ -19,7 +19,7 @@
13244
13245 static int detect_memory_e820(void)
13246 {
13247 - int count = 0;
13248 + unsigned int count = 0;
13249 struct biosregs ireg, oreg;
13250 struct e820entry *desc = boot_params.e820_map;
13251 static struct e820entry buf; /* static so it is zeroed */
13252 diff --git a/arch/x86/boot/video-vesa.c b/arch/x86/boot/video-vesa.c
13253 index ba3e100..6501b8f 100644
13254 --- a/arch/x86/boot/video-vesa.c
13255 +++ b/arch/x86/boot/video-vesa.c
13256 @@ -201,6 +201,7 @@ static void vesa_store_pm_info(void)
13257
13258 boot_params.screen_info.vesapm_seg = oreg.es;
13259 boot_params.screen_info.vesapm_off = oreg.di;
13260 + boot_params.screen_info.vesapm_size = oreg.cx;
13261 }
13262
13263 /*
13264 diff --git a/arch/x86/boot/video.c b/arch/x86/boot/video.c
13265 index 05111bb..a1ae1f0 100644
13266 --- a/arch/x86/boot/video.c
13267 +++ b/arch/x86/boot/video.c
13268 @@ -98,7 +98,7 @@ static void store_mode_params(void)
13269 static unsigned int get_entry(void)
13270 {
13271 char entry_buf[4];
13272 - int i, len = 0;
13273 + unsigned int i, len = 0;
13274 int key;
13275 unsigned int v;
13276
13277 diff --git a/arch/x86/crypto/aes-x86_64-asm_64.S b/arch/x86/crypto/aes-x86_64-asm_64.S
13278 index 9105655..41779c1 100644
13279 --- a/arch/x86/crypto/aes-x86_64-asm_64.S
13280 +++ b/arch/x86/crypto/aes-x86_64-asm_64.S
13281 @@ -8,6 +8,8 @@
13282 * including this sentence is retained in full.
13283 */
13284
13285 +#include <asm/alternative-asm.h>
13286 +
13287 .extern crypto_ft_tab
13288 .extern crypto_it_tab
13289 .extern crypto_fl_tab
13290 @@ -70,6 +72,8 @@
13291 je B192; \
13292 leaq 32(r9),r9;
13293
13294 +#define ret pax_force_retaddr; ret
13295 +
13296 #define epilogue(FUNC,r1,r2,r3,r4,r5,r6,r7,r8,r9) \
13297 movq r1,r2; \
13298 movq r3,r4; \
13299 diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S
13300 index 6bd2c6c..368c93e 100644
13301 --- a/arch/x86/crypto/aesni-intel_asm.S
13302 +++ b/arch/x86/crypto/aesni-intel_asm.S
13303 @@ -31,6 +31,7 @@
13304
13305 #include <linux/linkage.h>
13306 #include <asm/inst.h>
13307 +#include <asm/alternative-asm.h>
13308
13309 /*
13310 * The following macros are used to move an (un)aligned 16 byte value to/from
13311 @@ -217,7 +218,7 @@ enc: .octa 0x2
13312 * num_initial_blocks = b mod 4
13313 * encrypt the initial num_initial_blocks blocks and apply ghash on
13314 * the ciphertext
13315 -* %r10, %r11, %r12, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13316 +* %r10, %r11, %r15, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13317 * are clobbered
13318 * arg1, %arg2, %arg3, %r14 are used as a pointer only, not modified
13319 */
13320 @@ -227,8 +228,8 @@ enc: .octa 0x2
13321 XMM2 XMM3 XMM4 XMMDst TMP6 TMP7 i i_seq operation
13322 MOVADQ SHUF_MASK(%rip), %xmm14
13323 mov arg7, %r10 # %r10 = AAD
13324 - mov arg8, %r12 # %r12 = aadLen
13325 - mov %r12, %r11
13326 + mov arg8, %r15 # %r15 = aadLen
13327 + mov %r15, %r11
13328 pxor %xmm\i, %xmm\i
13329
13330 _get_AAD_loop\num_initial_blocks\operation:
13331 @@ -237,17 +238,17 @@ _get_AAD_loop\num_initial_blocks\operation:
13332 psrldq $4, %xmm\i
13333 pxor \TMP1, %xmm\i
13334 add $4, %r10
13335 - sub $4, %r12
13336 + sub $4, %r15
13337 jne _get_AAD_loop\num_initial_blocks\operation
13338
13339 cmp $16, %r11
13340 je _get_AAD_loop2_done\num_initial_blocks\operation
13341
13342 - mov $16, %r12
13343 + mov $16, %r15
13344 _get_AAD_loop2\num_initial_blocks\operation:
13345 psrldq $4, %xmm\i
13346 - sub $4, %r12
13347 - cmp %r11, %r12
13348 + sub $4, %r15
13349 + cmp %r11, %r15
13350 jne _get_AAD_loop2\num_initial_blocks\operation
13351
13352 _get_AAD_loop2_done\num_initial_blocks\operation:
13353 @@ -442,7 +443,7 @@ _initial_blocks_done\num_initial_blocks\operation:
13354 * num_initial_blocks = b mod 4
13355 * encrypt the initial num_initial_blocks blocks and apply ghash on
13356 * the ciphertext
13357 -* %r10, %r11, %r12, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13358 +* %r10, %r11, %r15, %rax, %xmm5, %xmm6, %xmm7, %xmm8, %xmm9 registers
13359 * are clobbered
13360 * arg1, %arg2, %arg3, %r14 are used as a pointer only, not modified
13361 */
13362 @@ -452,8 +453,8 @@ _initial_blocks_done\num_initial_blocks\operation:
13363 XMM2 XMM3 XMM4 XMMDst TMP6 TMP7 i i_seq operation
13364 MOVADQ SHUF_MASK(%rip), %xmm14
13365 mov arg7, %r10 # %r10 = AAD
13366 - mov arg8, %r12 # %r12 = aadLen
13367 - mov %r12, %r11
13368 + mov arg8, %r15 # %r15 = aadLen
13369 + mov %r15, %r11
13370 pxor %xmm\i, %xmm\i
13371 _get_AAD_loop\num_initial_blocks\operation:
13372 movd (%r10), \TMP1
13373 @@ -461,15 +462,15 @@ _get_AAD_loop\num_initial_blocks\operation:
13374 psrldq $4, %xmm\i
13375 pxor \TMP1, %xmm\i
13376 add $4, %r10
13377 - sub $4, %r12
13378 + sub $4, %r15
13379 jne _get_AAD_loop\num_initial_blocks\operation
13380 cmp $16, %r11
13381 je _get_AAD_loop2_done\num_initial_blocks\operation
13382 - mov $16, %r12
13383 + mov $16, %r15
13384 _get_AAD_loop2\num_initial_blocks\operation:
13385 psrldq $4, %xmm\i
13386 - sub $4, %r12
13387 - cmp %r11, %r12
13388 + sub $4, %r15
13389 + cmp %r11, %r15
13390 jne _get_AAD_loop2\num_initial_blocks\operation
13391 _get_AAD_loop2_done\num_initial_blocks\operation:
13392 PSHUFB_XMM %xmm14, %xmm\i # byte-reflect the AAD data
13393 @@ -1280,7 +1281,7 @@ _esb_loop_\@:
13394 *
13395 *****************************************************************************/
13396 ENTRY(aesni_gcm_dec)
13397 - push %r12
13398 + push %r15
13399 push %r13
13400 push %r14
13401 mov %rsp, %r14
13402 @@ -1290,8 +1291,8 @@ ENTRY(aesni_gcm_dec)
13403 */
13404 sub $VARIABLE_OFFSET, %rsp
13405 and $~63, %rsp # align rsp to 64 bytes
13406 - mov %arg6, %r12
13407 - movdqu (%r12), %xmm13 # %xmm13 = HashKey
13408 + mov %arg6, %r15
13409 + movdqu (%r15), %xmm13 # %xmm13 = HashKey
13410 movdqa SHUF_MASK(%rip), %xmm2
13411 PSHUFB_XMM %xmm2, %xmm13
13412
13413 @@ -1319,10 +1320,10 @@ ENTRY(aesni_gcm_dec)
13414 movdqa %xmm13, HashKey(%rsp) # store HashKey<<1 (mod poly)
13415 mov %arg4, %r13 # save the number of bytes of plaintext/ciphertext
13416 and $-16, %r13 # %r13 = %r13 - (%r13 mod 16)
13417 - mov %r13, %r12
13418 - and $(3<<4), %r12
13419 + mov %r13, %r15
13420 + and $(3<<4), %r15
13421 jz _initial_num_blocks_is_0_decrypt
13422 - cmp $(2<<4), %r12
13423 + cmp $(2<<4), %r15
13424 jb _initial_num_blocks_is_1_decrypt
13425 je _initial_num_blocks_is_2_decrypt
13426 _initial_num_blocks_is_3_decrypt:
13427 @@ -1372,16 +1373,16 @@ _zero_cipher_left_decrypt:
13428 sub $16, %r11
13429 add %r13, %r11
13430 movdqu (%arg3,%r11,1), %xmm1 # receive the last <16 byte block
13431 - lea SHIFT_MASK+16(%rip), %r12
13432 - sub %r13, %r12
13433 + lea SHIFT_MASK+16(%rip), %r15
13434 + sub %r13, %r15
13435 # adjust the shuffle mask pointer to be able to shift 16-%r13 bytes
13436 # (%r13 is the number of bytes in plaintext mod 16)
13437 - movdqu (%r12), %xmm2 # get the appropriate shuffle mask
13438 + movdqu (%r15), %xmm2 # get the appropriate shuffle mask
13439 PSHUFB_XMM %xmm2, %xmm1 # right shift 16-%r13 butes
13440
13441 movdqa %xmm1, %xmm2
13442 pxor %xmm1, %xmm0 # Ciphertext XOR E(K, Yn)
13443 - movdqu ALL_F-SHIFT_MASK(%r12), %xmm1
13444 + movdqu ALL_F-SHIFT_MASK(%r15), %xmm1
13445 # get the appropriate mask to mask out top 16-%r13 bytes of %xmm0
13446 pand %xmm1, %xmm0 # mask out top 16-%r13 bytes of %xmm0
13447 pand %xmm1, %xmm2
13448 @@ -1410,9 +1411,9 @@ _less_than_8_bytes_left_decrypt:
13449 sub $1, %r13
13450 jne _less_than_8_bytes_left_decrypt
13451 _multiple_of_16_bytes_decrypt:
13452 - mov arg8, %r12 # %r13 = aadLen (number of bytes)
13453 - shl $3, %r12 # convert into number of bits
13454 - movd %r12d, %xmm15 # len(A) in %xmm15
13455 + mov arg8, %r15 # %r13 = aadLen (number of bytes)
13456 + shl $3, %r15 # convert into number of bits
13457 + movd %r15d, %xmm15 # len(A) in %xmm15
13458 shl $3, %arg4 # len(C) in bits (*128)
13459 MOVQ_R64_XMM %arg4, %xmm1
13460 pslldq $8, %xmm15 # %xmm15 = len(A)||0x0000000000000000
13461 @@ -1451,7 +1452,8 @@ _return_T_done_decrypt:
13462 mov %r14, %rsp
13463 pop %r14
13464 pop %r13
13465 - pop %r12
13466 + pop %r15
13467 + pax_force_retaddr
13468 ret
13469 ENDPROC(aesni_gcm_dec)
13470
13471 @@ -1540,7 +1542,7 @@ ENDPROC(aesni_gcm_dec)
13472 * poly = x^128 + x^127 + x^126 + x^121 + 1
13473 ***************************************************************************/
13474 ENTRY(aesni_gcm_enc)
13475 - push %r12
13476 + push %r15
13477 push %r13
13478 push %r14
13479 mov %rsp, %r14
13480 @@ -1550,8 +1552,8 @@ ENTRY(aesni_gcm_enc)
13481 #
13482 sub $VARIABLE_OFFSET, %rsp
13483 and $~63, %rsp
13484 - mov %arg6, %r12
13485 - movdqu (%r12), %xmm13
13486 + mov %arg6, %r15
13487 + movdqu (%r15), %xmm13
13488 movdqa SHUF_MASK(%rip), %xmm2
13489 PSHUFB_XMM %xmm2, %xmm13
13490
13491 @@ -1575,13 +1577,13 @@ ENTRY(aesni_gcm_enc)
13492 movdqa %xmm13, HashKey(%rsp)
13493 mov %arg4, %r13 # %xmm13 holds HashKey<<1 (mod poly)
13494 and $-16, %r13
13495 - mov %r13, %r12
13496 + mov %r13, %r15
13497
13498 # Encrypt first few blocks
13499
13500 - and $(3<<4), %r12
13501 + and $(3<<4), %r15
13502 jz _initial_num_blocks_is_0_encrypt
13503 - cmp $(2<<4), %r12
13504 + cmp $(2<<4), %r15
13505 jb _initial_num_blocks_is_1_encrypt
13506 je _initial_num_blocks_is_2_encrypt
13507 _initial_num_blocks_is_3_encrypt:
13508 @@ -1634,14 +1636,14 @@ _zero_cipher_left_encrypt:
13509 sub $16, %r11
13510 add %r13, %r11
13511 movdqu (%arg3,%r11,1), %xmm1 # receive the last <16 byte blocks
13512 - lea SHIFT_MASK+16(%rip), %r12
13513 - sub %r13, %r12
13514 + lea SHIFT_MASK+16(%rip), %r15
13515 + sub %r13, %r15
13516 # adjust the shuffle mask pointer to be able to shift 16-r13 bytes
13517 # (%r13 is the number of bytes in plaintext mod 16)
13518 - movdqu (%r12), %xmm2 # get the appropriate shuffle mask
13519 + movdqu (%r15), %xmm2 # get the appropriate shuffle mask
13520 PSHUFB_XMM %xmm2, %xmm1 # shift right 16-r13 byte
13521 pxor %xmm1, %xmm0 # Plaintext XOR Encrypt(K, Yn)
13522 - movdqu ALL_F-SHIFT_MASK(%r12), %xmm1
13523 + movdqu ALL_F-SHIFT_MASK(%r15), %xmm1
13524 # get the appropriate mask to mask out top 16-r13 bytes of xmm0
13525 pand %xmm1, %xmm0 # mask out top 16-r13 bytes of xmm0
13526 movdqa SHUF_MASK(%rip), %xmm10
13527 @@ -1674,9 +1676,9 @@ _less_than_8_bytes_left_encrypt:
13528 sub $1, %r13
13529 jne _less_than_8_bytes_left_encrypt
13530 _multiple_of_16_bytes_encrypt:
13531 - mov arg8, %r12 # %r12 = addLen (number of bytes)
13532 - shl $3, %r12
13533 - movd %r12d, %xmm15 # len(A) in %xmm15
13534 + mov arg8, %r15 # %r15 = addLen (number of bytes)
13535 + shl $3, %r15
13536 + movd %r15d, %xmm15 # len(A) in %xmm15
13537 shl $3, %arg4 # len(C) in bits (*128)
13538 MOVQ_R64_XMM %arg4, %xmm1
13539 pslldq $8, %xmm15 # %xmm15 = len(A)||0x0000000000000000
13540 @@ -1715,7 +1717,8 @@ _return_T_done_encrypt:
13541 mov %r14, %rsp
13542 pop %r14
13543 pop %r13
13544 - pop %r12
13545 + pop %r15
13546 + pax_force_retaddr
13547 ret
13548 ENDPROC(aesni_gcm_enc)
13549
13550 @@ -1733,6 +1736,7 @@ _key_expansion_256a:
13551 pxor %xmm1, %xmm0
13552 movaps %xmm0, (TKEYP)
13553 add $0x10, TKEYP
13554 + pax_force_retaddr
13555 ret
13556 ENDPROC(_key_expansion_128)
13557 ENDPROC(_key_expansion_256a)
13558 @@ -1759,6 +1763,7 @@ _key_expansion_192a:
13559 shufps $0b01001110, %xmm2, %xmm1
13560 movaps %xmm1, 0x10(TKEYP)
13561 add $0x20, TKEYP
13562 + pax_force_retaddr
13563 ret
13564 ENDPROC(_key_expansion_192a)
13565
13566 @@ -1779,6 +1784,7 @@ _key_expansion_192b:
13567
13568 movaps %xmm0, (TKEYP)
13569 add $0x10, TKEYP
13570 + pax_force_retaddr
13571 ret
13572 ENDPROC(_key_expansion_192b)
13573
13574 @@ -1792,6 +1798,7 @@ _key_expansion_256b:
13575 pxor %xmm1, %xmm2
13576 movaps %xmm2, (TKEYP)
13577 add $0x10, TKEYP
13578 + pax_force_retaddr
13579 ret
13580 ENDPROC(_key_expansion_256b)
13581
13582 @@ -1905,6 +1912,7 @@ ENTRY(aesni_set_key)
13583 #ifndef __x86_64__
13584 popl KEYP
13585 #endif
13586 + pax_force_retaddr
13587 ret
13588 ENDPROC(aesni_set_key)
13589
13590 @@ -1927,6 +1935,7 @@ ENTRY(aesni_enc)
13591 popl KLEN
13592 popl KEYP
13593 #endif
13594 + pax_force_retaddr
13595 ret
13596 ENDPROC(aesni_enc)
13597
13598 @@ -1985,6 +1994,7 @@ _aesni_enc1:
13599 AESENC KEY STATE
13600 movaps 0x70(TKEYP), KEY
13601 AESENCLAST KEY STATE
13602 + pax_force_retaddr
13603 ret
13604 ENDPROC(_aesni_enc1)
13605
13606 @@ -2094,6 +2104,7 @@ _aesni_enc4:
13607 AESENCLAST KEY STATE2
13608 AESENCLAST KEY STATE3
13609 AESENCLAST KEY STATE4
13610 + pax_force_retaddr
13611 ret
13612 ENDPROC(_aesni_enc4)
13613
13614 @@ -2117,6 +2128,7 @@ ENTRY(aesni_dec)
13615 popl KLEN
13616 popl KEYP
13617 #endif
13618 + pax_force_retaddr
13619 ret
13620 ENDPROC(aesni_dec)
13621
13622 @@ -2175,6 +2187,7 @@ _aesni_dec1:
13623 AESDEC KEY STATE
13624 movaps 0x70(TKEYP), KEY
13625 AESDECLAST KEY STATE
13626 + pax_force_retaddr
13627 ret
13628 ENDPROC(_aesni_dec1)
13629
13630 @@ -2284,6 +2297,7 @@ _aesni_dec4:
13631 AESDECLAST KEY STATE2
13632 AESDECLAST KEY STATE3
13633 AESDECLAST KEY STATE4
13634 + pax_force_retaddr
13635 ret
13636 ENDPROC(_aesni_dec4)
13637
13638 @@ -2342,6 +2356,7 @@ ENTRY(aesni_ecb_enc)
13639 popl KEYP
13640 popl LEN
13641 #endif
13642 + pax_force_retaddr
13643 ret
13644 ENDPROC(aesni_ecb_enc)
13645
13646 @@ -2401,6 +2416,7 @@ ENTRY(aesni_ecb_dec)
13647 popl KEYP
13648 popl LEN
13649 #endif
13650 + pax_force_retaddr
13651 ret
13652 ENDPROC(aesni_ecb_dec)
13653
13654 @@ -2443,6 +2459,7 @@ ENTRY(aesni_cbc_enc)
13655 popl LEN
13656 popl IVP
13657 #endif
13658 + pax_force_retaddr
13659 ret
13660 ENDPROC(aesni_cbc_enc)
13661
13662 @@ -2534,6 +2551,7 @@ ENTRY(aesni_cbc_dec)
13663 popl LEN
13664 popl IVP
13665 #endif
13666 + pax_force_retaddr
13667 ret
13668 ENDPROC(aesni_cbc_dec)
13669
13670 @@ -2561,6 +2579,7 @@ _aesni_inc_init:
13671 mov $1, TCTR_LOW
13672 MOVQ_R64_XMM TCTR_LOW INC
13673 MOVQ_R64_XMM CTR TCTR_LOW
13674 + pax_force_retaddr
13675 ret
13676 ENDPROC(_aesni_inc_init)
13677
13678 @@ -2590,6 +2609,7 @@ _aesni_inc:
13679 .Linc_low:
13680 movaps CTR, IV
13681 PSHUFB_XMM BSWAP_MASK IV
13682 + pax_force_retaddr
13683 ret
13684 ENDPROC(_aesni_inc)
13685
13686 @@ -2651,6 +2671,7 @@ ENTRY(aesni_ctr_enc)
13687 .Lctr_enc_ret:
13688 movups IV, (IVP)
13689 .Lctr_enc_just_ret:
13690 + pax_force_retaddr
13691 ret
13692 ENDPROC(aesni_ctr_enc)
13693
13694 @@ -2777,6 +2798,7 @@ ENTRY(aesni_xts_crypt8)
13695 pxor INC, STATE4
13696 movdqu STATE4, 0x70(OUTP)
13697
13698 + pax_force_retaddr
13699 ret
13700 ENDPROC(aesni_xts_crypt8)
13701
13702 diff --git a/arch/x86/crypto/blowfish-x86_64-asm_64.S b/arch/x86/crypto/blowfish-x86_64-asm_64.S
13703 index 246c670..466e2d6 100644
13704 --- a/arch/x86/crypto/blowfish-x86_64-asm_64.S
13705 +++ b/arch/x86/crypto/blowfish-x86_64-asm_64.S
13706 @@ -21,6 +21,7 @@
13707 */
13708
13709 #include <linux/linkage.h>
13710 +#include <asm/alternative-asm.h>
13711
13712 .file "blowfish-x86_64-asm.S"
13713 .text
13714 @@ -149,9 +150,11 @@ ENTRY(__blowfish_enc_blk)
13715 jnz .L__enc_xor;
13716
13717 write_block();
13718 + pax_force_retaddr
13719 ret;
13720 .L__enc_xor:
13721 xor_block();
13722 + pax_force_retaddr
13723 ret;
13724 ENDPROC(__blowfish_enc_blk)
13725
13726 @@ -183,6 +186,7 @@ ENTRY(blowfish_dec_blk)
13727
13728 movq %r11, %rbp;
13729
13730 + pax_force_retaddr
13731 ret;
13732 ENDPROC(blowfish_dec_blk)
13733
13734 @@ -334,6 +338,7 @@ ENTRY(__blowfish_enc_blk_4way)
13735
13736 popq %rbx;
13737 popq %rbp;
13738 + pax_force_retaddr
13739 ret;
13740
13741 .L__enc_xor4:
13742 @@ -341,6 +346,7 @@ ENTRY(__blowfish_enc_blk_4way)
13743
13744 popq %rbx;
13745 popq %rbp;
13746 + pax_force_retaddr
13747 ret;
13748 ENDPROC(__blowfish_enc_blk_4way)
13749
13750 @@ -375,5 +381,6 @@ ENTRY(blowfish_dec_blk_4way)
13751 popq %rbx;
13752 popq %rbp;
13753
13754 + pax_force_retaddr
13755 ret;
13756 ENDPROC(blowfish_dec_blk_4way)
13757 diff --git a/arch/x86/crypto/camellia-aesni-avx-asm_64.S b/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13758 index ce71f92..1dce7ec 100644
13759 --- a/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13760 +++ b/arch/x86/crypto/camellia-aesni-avx-asm_64.S
13761 @@ -16,6 +16,7 @@
13762 */
13763
13764 #include <linux/linkage.h>
13765 +#include <asm/alternative-asm.h>
13766
13767 #define CAMELLIA_TABLE_BYTE_LEN 272
13768
13769 @@ -191,6 +192,7 @@ roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd:
13770 roundsm16(%xmm0, %xmm1, %xmm2, %xmm3, %xmm4, %xmm5, %xmm6, %xmm7,
13771 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14, %xmm15,
13772 %rcx, (%r9));
13773 + pax_force_retaddr
13774 ret;
13775 ENDPROC(roundsm16_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
13776
13777 @@ -199,6 +201,7 @@ roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab:
13778 roundsm16(%xmm4, %xmm5, %xmm6, %xmm7, %xmm0, %xmm1, %xmm2, %xmm3,
13779 %xmm12, %xmm13, %xmm14, %xmm15, %xmm8, %xmm9, %xmm10, %xmm11,
13780 %rax, (%r9));
13781 + pax_force_retaddr
13782 ret;
13783 ENDPROC(roundsm16_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
13784
13785 @@ -780,6 +783,7 @@ __camellia_enc_blk16:
13786 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14,
13787 %xmm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 16(%rax));
13788
13789 + pax_force_retaddr
13790 ret;
13791
13792 .align 8
13793 @@ -865,6 +869,7 @@ __camellia_dec_blk16:
13794 %xmm8, %xmm9, %xmm10, %xmm11, %xmm12, %xmm13, %xmm14,
13795 %xmm15, (key_table)(CTX), (%rax), 1 * 16(%rax));
13796
13797 + pax_force_retaddr
13798 ret;
13799
13800 .align 8
13801 @@ -904,6 +909,7 @@ ENTRY(camellia_ecb_enc_16way)
13802 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13803 %xmm8, %rsi);
13804
13805 + pax_force_retaddr
13806 ret;
13807 ENDPROC(camellia_ecb_enc_16way)
13808
13809 @@ -932,6 +938,7 @@ ENTRY(camellia_ecb_dec_16way)
13810 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13811 %xmm8, %rsi);
13812
13813 + pax_force_retaddr
13814 ret;
13815 ENDPROC(camellia_ecb_dec_16way)
13816
13817 @@ -981,6 +988,7 @@ ENTRY(camellia_cbc_dec_16way)
13818 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13819 %xmm8, %rsi);
13820
13821 + pax_force_retaddr
13822 ret;
13823 ENDPROC(camellia_cbc_dec_16way)
13824
13825 @@ -1092,6 +1100,7 @@ ENTRY(camellia_ctr_16way)
13826 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13827 %xmm8, %rsi);
13828
13829 + pax_force_retaddr
13830 ret;
13831 ENDPROC(camellia_ctr_16way)
13832
13833 @@ -1234,6 +1243,7 @@ camellia_xts_crypt_16way:
13834 %xmm15, %xmm14, %xmm13, %xmm12, %xmm11, %xmm10, %xmm9,
13835 %xmm8, %rsi);
13836
13837 + pax_force_retaddr
13838 ret;
13839 ENDPROC(camellia_xts_crypt_16way)
13840
13841 diff --git a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13842 index 0e0b886..5a3123c 100644
13843 --- a/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13844 +++ b/arch/x86/crypto/camellia-aesni-avx2-asm_64.S
13845 @@ -11,6 +11,7 @@
13846 */
13847
13848 #include <linux/linkage.h>
13849 +#include <asm/alternative-asm.h>
13850
13851 #define CAMELLIA_TABLE_BYTE_LEN 272
13852
13853 @@ -230,6 +231,7 @@ roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd:
13854 roundsm32(%ymm0, %ymm1, %ymm2, %ymm3, %ymm4, %ymm5, %ymm6, %ymm7,
13855 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14, %ymm15,
13856 %rcx, (%r9));
13857 + pax_force_retaddr
13858 ret;
13859 ENDPROC(roundsm32_x0_x1_x2_x3_x4_x5_x6_x7_y0_y1_y2_y3_y4_y5_y6_y7_cd)
13860
13861 @@ -238,6 +240,7 @@ roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab:
13862 roundsm32(%ymm4, %ymm5, %ymm6, %ymm7, %ymm0, %ymm1, %ymm2, %ymm3,
13863 %ymm12, %ymm13, %ymm14, %ymm15, %ymm8, %ymm9, %ymm10, %ymm11,
13864 %rax, (%r9));
13865 + pax_force_retaddr
13866 ret;
13867 ENDPROC(roundsm32_x4_x5_x6_x7_x0_x1_x2_x3_y4_y5_y6_y7_y0_y1_y2_y3_ab)
13868
13869 @@ -820,6 +823,7 @@ __camellia_enc_blk32:
13870 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14,
13871 %ymm15, (key_table)(CTX, %r8, 8), (%rax), 1 * 32(%rax));
13872
13873 + pax_force_retaddr
13874 ret;
13875
13876 .align 8
13877 @@ -905,6 +909,7 @@ __camellia_dec_blk32:
13878 %ymm8, %ymm9, %ymm10, %ymm11, %ymm12, %ymm13, %ymm14,
13879 %ymm15, (key_table)(CTX), (%rax), 1 * 32(%rax));
13880
13881 + pax_force_retaddr
13882 ret;
13883
13884 .align 8
13885 @@ -948,6 +953,7 @@ ENTRY(camellia_ecb_enc_32way)
13886
13887 vzeroupper;
13888
13889 + pax_force_retaddr
13890 ret;
13891 ENDPROC(camellia_ecb_enc_32way)
13892
13893 @@ -980,6 +986,7 @@ ENTRY(camellia_ecb_dec_32way)
13894
13895 vzeroupper;
13896
13897 + pax_force_retaddr
13898 ret;
13899 ENDPROC(camellia_ecb_dec_32way)
13900
13901 @@ -1046,6 +1053,7 @@ ENTRY(camellia_cbc_dec_32way)
13902
13903 vzeroupper;
13904
13905 + pax_force_retaddr
13906 ret;
13907 ENDPROC(camellia_cbc_dec_32way)
13908
13909 @@ -1184,6 +1192,7 @@ ENTRY(camellia_ctr_32way)
13910
13911 vzeroupper;
13912
13913 + pax_force_retaddr
13914 ret;
13915 ENDPROC(camellia_ctr_32way)
13916
13917 @@ -1349,6 +1358,7 @@ camellia_xts_crypt_32way:
13918
13919 vzeroupper;
13920
13921 + pax_force_retaddr
13922 ret;
13923 ENDPROC(camellia_xts_crypt_32way)
13924
13925 diff --git a/arch/x86/crypto/camellia-x86_64-asm_64.S b/arch/x86/crypto/camellia-x86_64-asm_64.S
13926 index 310319c..db3d7b5 100644
13927 --- a/arch/x86/crypto/camellia-x86_64-asm_64.S
13928 +++ b/arch/x86/crypto/camellia-x86_64-asm_64.S
13929 @@ -21,6 +21,7 @@
13930 */
13931
13932 #include <linux/linkage.h>
13933 +#include <asm/alternative-asm.h>
13934
13935 .file "camellia-x86_64-asm_64.S"
13936 .text
13937 @@ -228,12 +229,14 @@ ENTRY(__camellia_enc_blk)
13938 enc_outunpack(mov, RT1);
13939
13940 movq RRBP, %rbp;
13941 + pax_force_retaddr
13942 ret;
13943
13944 .L__enc_xor:
13945 enc_outunpack(xor, RT1);
13946
13947 movq RRBP, %rbp;
13948 + pax_force_retaddr
13949 ret;
13950 ENDPROC(__camellia_enc_blk)
13951
13952 @@ -272,6 +275,7 @@ ENTRY(camellia_dec_blk)
13953 dec_outunpack();
13954
13955 movq RRBP, %rbp;
13956 + pax_force_retaddr
13957 ret;
13958 ENDPROC(camellia_dec_blk)
13959
13960 @@ -463,6 +467,7 @@ ENTRY(__camellia_enc_blk_2way)
13961
13962 movq RRBP, %rbp;
13963 popq %rbx;
13964 + pax_force_retaddr
13965 ret;
13966
13967 .L__enc2_xor:
13968 @@ -470,6 +475,7 @@ ENTRY(__camellia_enc_blk_2way)
13969
13970 movq RRBP, %rbp;
13971 popq %rbx;
13972 + pax_force_retaddr
13973 ret;
13974 ENDPROC(__camellia_enc_blk_2way)
13975
13976 @@ -510,5 +516,6 @@ ENTRY(camellia_dec_blk_2way)
13977
13978 movq RRBP, %rbp;
13979 movq RXOR, %rbx;
13980 + pax_force_retaddr
13981 ret;
13982 ENDPROC(camellia_dec_blk_2way)
13983 diff --git a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13984 index c35fd5d..2d8c7db 100644
13985 --- a/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13986 +++ b/arch/x86/crypto/cast5-avx-x86_64-asm_64.S
13987 @@ -24,6 +24,7 @@
13988 */
13989
13990 #include <linux/linkage.h>
13991 +#include <asm/alternative-asm.h>
13992
13993 .file "cast5-avx-x86_64-asm_64.S"
13994
13995 @@ -281,6 +282,7 @@ __cast5_enc_blk16:
13996 outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
13997 outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
13998
13999 + pax_force_retaddr
14000 ret;
14001 ENDPROC(__cast5_enc_blk16)
14002
14003 @@ -352,6 +354,7 @@ __cast5_dec_blk16:
14004 outunpack_blocks(RR3, RL3, RTMP, RX, RKM);
14005 outunpack_blocks(RR4, RL4, RTMP, RX, RKM);
14006
14007 + pax_force_retaddr
14008 ret;
14009
14010 .L__skip_dec:
14011 @@ -388,6 +391,7 @@ ENTRY(cast5_ecb_enc_16way)
14012 vmovdqu RR4, (6*4*4)(%r11);
14013 vmovdqu RL4, (7*4*4)(%r11);
14014
14015 + pax_force_retaddr
14016 ret;
14017 ENDPROC(cast5_ecb_enc_16way)
14018
14019 @@ -420,6 +424,7 @@ ENTRY(cast5_ecb_dec_16way)
14020 vmovdqu RR4, (6*4*4)(%r11);
14021 vmovdqu RL4, (7*4*4)(%r11);
14022
14023 + pax_force_retaddr
14024 ret;
14025 ENDPROC(cast5_ecb_dec_16way)
14026
14027 @@ -430,10 +435,10 @@ ENTRY(cast5_cbc_dec_16way)
14028 * %rdx: src
14029 */
14030
14031 - pushq %r12;
14032 + pushq %r14;
14033
14034 movq %rsi, %r11;
14035 - movq %rdx, %r12;
14036 + movq %rdx, %r14;
14037
14038 vmovdqu (0*16)(%rdx), RL1;
14039 vmovdqu (1*16)(%rdx), RR1;
14040 @@ -447,16 +452,16 @@ ENTRY(cast5_cbc_dec_16way)
14041 call __cast5_dec_blk16;
14042
14043 /* xor with src */
14044 - vmovq (%r12), RX;
14045 + vmovq (%r14), RX;
14046 vpshufd $0x4f, RX, RX;
14047 vpxor RX, RR1, RR1;
14048 - vpxor 0*16+8(%r12), RL1, RL1;
14049 - vpxor 1*16+8(%r12), RR2, RR2;
14050 - vpxor 2*16+8(%r12), RL2, RL2;
14051 - vpxor 3*16+8(%r12), RR3, RR3;
14052 - vpxor 4*16+8(%r12), RL3, RL3;
14053 - vpxor 5*16+8(%r12), RR4, RR4;
14054 - vpxor 6*16+8(%r12), RL4, RL4;
14055 + vpxor 0*16+8(%r14), RL1, RL1;
14056 + vpxor 1*16+8(%r14), RR2, RR2;
14057 + vpxor 2*16+8(%r14), RL2, RL2;
14058 + vpxor 3*16+8(%r14), RR3, RR3;
14059 + vpxor 4*16+8(%r14), RL3, RL3;
14060 + vpxor 5*16+8(%r14), RR4, RR4;
14061 + vpxor 6*16+8(%r14), RL4, RL4;
14062
14063 vmovdqu RR1, (0*16)(%r11);
14064 vmovdqu RL1, (1*16)(%r11);
14065 @@ -467,8 +472,9 @@ ENTRY(cast5_cbc_dec_16way)
14066 vmovdqu RR4, (6*16)(%r11);
14067 vmovdqu RL4, (7*16)(%r11);
14068
14069 - popq %r12;
14070 + popq %r14;
14071
14072 + pax_force_retaddr
14073 ret;
14074 ENDPROC(cast5_cbc_dec_16way)
14075
14076 @@ -480,10 +486,10 @@ ENTRY(cast5_ctr_16way)
14077 * %rcx: iv (big endian, 64bit)
14078 */
14079
14080 - pushq %r12;
14081 + pushq %r14;
14082
14083 movq %rsi, %r11;
14084 - movq %rdx, %r12;
14085 + movq %rdx, %r14;
14086
14087 vpcmpeqd RTMP, RTMP, RTMP;
14088 vpsrldq $8, RTMP, RTMP; /* low: -1, high: 0 */
14089 @@ -523,14 +529,14 @@ ENTRY(cast5_ctr_16way)
14090 call __cast5_enc_blk16;
14091
14092 /* dst = src ^ iv */
14093 - vpxor (0*16)(%r12), RR1, RR1;
14094 - vpxor (1*16)(%r12), RL1, RL1;
14095 - vpxor (2*16)(%r12), RR2, RR2;
14096 - vpxor (3*16)(%r12), RL2, RL2;
14097 - vpxor (4*16)(%r12), RR3, RR3;
14098 - vpxor (5*16)(%r12), RL3, RL3;
14099 - vpxor (6*16)(%r12), RR4, RR4;
14100 - vpxor (7*16)(%r12), RL4, RL4;
14101 + vpxor (0*16)(%r14), RR1, RR1;
14102 + vpxor (1*16)(%r14), RL1, RL1;
14103 + vpxor (2*16)(%r14), RR2, RR2;
14104 + vpxor (3*16)(%r14), RL2, RL2;
14105 + vpxor (4*16)(%r14), RR3, RR3;
14106 + vpxor (5*16)(%r14), RL3, RL3;
14107 + vpxor (6*16)(%r14), RR4, RR4;
14108 + vpxor (7*16)(%r14), RL4, RL4;
14109 vmovdqu RR1, (0*16)(%r11);
14110 vmovdqu RL1, (1*16)(%r11);
14111 vmovdqu RR2, (2*16)(%r11);
14112 @@ -540,7 +546,8 @@ ENTRY(cast5_ctr_16way)
14113 vmovdqu RR4, (6*16)(%r11);
14114 vmovdqu RL4, (7*16)(%r11);
14115
14116 - popq %r12;
14117 + popq %r14;
14118
14119 + pax_force_retaddr
14120 ret;
14121 ENDPROC(cast5_ctr_16way)
14122 diff --git a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
14123 index e3531f8..e123f35 100644
14124 --- a/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
14125 +++ b/arch/x86/crypto/cast6-avx-x86_64-asm_64.S
14126 @@ -24,6 +24,7 @@
14127 */
14128
14129 #include <linux/linkage.h>
14130 +#include <asm/alternative-asm.h>
14131 #include "glue_helper-asm-avx.S"
14132
14133 .file "cast6-avx-x86_64-asm_64.S"
14134 @@ -295,6 +296,7 @@ __cast6_enc_blk8:
14135 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
14136 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
14137
14138 + pax_force_retaddr
14139 ret;
14140 ENDPROC(__cast6_enc_blk8)
14141
14142 @@ -340,6 +342,7 @@ __cast6_dec_blk8:
14143 outunpack_blocks(RA1, RB1, RC1, RD1, RTMP, RX, RKRF, RKM);
14144 outunpack_blocks(RA2, RB2, RC2, RD2, RTMP, RX, RKRF, RKM);
14145
14146 + pax_force_retaddr
14147 ret;
14148 ENDPROC(__cast6_dec_blk8)
14149
14150 @@ -358,6 +361,7 @@ ENTRY(cast6_ecb_enc_8way)
14151
14152 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14153
14154 + pax_force_retaddr
14155 ret;
14156 ENDPROC(cast6_ecb_enc_8way)
14157
14158 @@ -376,6 +380,7 @@ ENTRY(cast6_ecb_dec_8way)
14159
14160 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14161
14162 + pax_force_retaddr
14163 ret;
14164 ENDPROC(cast6_ecb_dec_8way)
14165
14166 @@ -386,19 +391,20 @@ ENTRY(cast6_cbc_dec_8way)
14167 * %rdx: src
14168 */
14169
14170 - pushq %r12;
14171 + pushq %r14;
14172
14173 movq %rsi, %r11;
14174 - movq %rdx, %r12;
14175 + movq %rdx, %r14;
14176
14177 load_8way(%rdx, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14178
14179 call __cast6_dec_blk8;
14180
14181 - store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14182 + store_cbc_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14183
14184 - popq %r12;
14185 + popq %r14;
14186
14187 + pax_force_retaddr
14188 ret;
14189 ENDPROC(cast6_cbc_dec_8way)
14190
14191 @@ -410,20 +416,21 @@ ENTRY(cast6_ctr_8way)
14192 * %rcx: iv (little endian, 128bit)
14193 */
14194
14195 - pushq %r12;
14196 + pushq %r14;
14197
14198 movq %rsi, %r11;
14199 - movq %rdx, %r12;
14200 + movq %rdx, %r14;
14201
14202 load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2,
14203 RD2, RX, RKR, RKM);
14204
14205 call __cast6_enc_blk8;
14206
14207 - store_ctr_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14208 + store_ctr_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14209
14210 - popq %r12;
14211 + popq %r14;
14212
14213 + pax_force_retaddr
14214 ret;
14215 ENDPROC(cast6_ctr_8way)
14216
14217 @@ -446,6 +453,7 @@ ENTRY(cast6_xts_enc_8way)
14218 /* dst <= regs xor IVs(in dst) */
14219 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14220
14221 + pax_force_retaddr
14222 ret;
14223 ENDPROC(cast6_xts_enc_8way)
14224
14225 @@ -468,5 +476,6 @@ ENTRY(cast6_xts_dec_8way)
14226 /* dst <= regs xor IVs(in dst) */
14227 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14228
14229 + pax_force_retaddr
14230 ret;
14231 ENDPROC(cast6_xts_dec_8way)
14232 diff --git a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
14233 index 225be06..2885e731 100644
14234 --- a/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
14235 +++ b/arch/x86/crypto/crc32c-pcl-intel-asm_64.S
14236 @@ -45,6 +45,7 @@
14237
14238 #include <asm/inst.h>
14239 #include <linux/linkage.h>
14240 +#include <asm/alternative-asm.h>
14241
14242 ## ISCSI CRC 32 Implementation with crc32 and pclmulqdq Instruction
14243
14244 @@ -309,6 +310,7 @@ do_return:
14245 popq %rsi
14246 popq %rdi
14247 popq %rbx
14248 + pax_force_retaddr
14249 ret
14250
14251 ################################################################
14252 @@ -330,7 +332,7 @@ ENDPROC(crc_pcl)
14253 ## PCLMULQDQ tables
14254 ## Table is 128 entries x 2 words (8 bytes) each
14255 ################################################################
14256 -.section .rotata, "a", %progbits
14257 +.section .rodata, "a", %progbits
14258 .align 8
14259 K_table:
14260 .long 0x493c7d27, 0x00000001
14261 diff --git a/arch/x86/crypto/ghash-clmulni-intel_asm.S b/arch/x86/crypto/ghash-clmulni-intel_asm.S
14262 index 5d1e007..098cb4f 100644
14263 --- a/arch/x86/crypto/ghash-clmulni-intel_asm.S
14264 +++ b/arch/x86/crypto/ghash-clmulni-intel_asm.S
14265 @@ -18,6 +18,7 @@
14266
14267 #include <linux/linkage.h>
14268 #include <asm/inst.h>
14269 +#include <asm/alternative-asm.h>
14270
14271 .data
14272
14273 @@ -89,6 +90,7 @@ __clmul_gf128mul_ble:
14274 psrlq $1, T2
14275 pxor T2, T1
14276 pxor T1, DATA
14277 + pax_force_retaddr
14278 ret
14279 ENDPROC(__clmul_gf128mul_ble)
14280
14281 @@ -101,6 +103,7 @@ ENTRY(clmul_ghash_mul)
14282 call __clmul_gf128mul_ble
14283 PSHUFB_XMM BSWAP DATA
14284 movups DATA, (%rdi)
14285 + pax_force_retaddr
14286 ret
14287 ENDPROC(clmul_ghash_mul)
14288
14289 @@ -128,5 +131,6 @@ ENTRY(clmul_ghash_update)
14290 PSHUFB_XMM BSWAP DATA
14291 movups DATA, (%rdi)
14292 .Lupdate_just_ret:
14293 + pax_force_retaddr
14294 ret
14295 ENDPROC(clmul_ghash_update)
14296 diff --git a/arch/x86/crypto/salsa20-x86_64-asm_64.S b/arch/x86/crypto/salsa20-x86_64-asm_64.S
14297 index 9279e0b..c4b3d2c 100644
14298 --- a/arch/x86/crypto/salsa20-x86_64-asm_64.S
14299 +++ b/arch/x86/crypto/salsa20-x86_64-asm_64.S
14300 @@ -1,4 +1,5 @@
14301 #include <linux/linkage.h>
14302 +#include <asm/alternative-asm.h>
14303
14304 # enter salsa20_encrypt_bytes
14305 ENTRY(salsa20_encrypt_bytes)
14306 @@ -789,6 +790,7 @@ ENTRY(salsa20_encrypt_bytes)
14307 add %r11,%rsp
14308 mov %rdi,%rax
14309 mov %rsi,%rdx
14310 + pax_force_retaddr
14311 ret
14312 # bytesatleast65:
14313 ._bytesatleast65:
14314 @@ -889,6 +891,7 @@ ENTRY(salsa20_keysetup)
14315 add %r11,%rsp
14316 mov %rdi,%rax
14317 mov %rsi,%rdx
14318 + pax_force_retaddr
14319 ret
14320 ENDPROC(salsa20_keysetup)
14321
14322 @@ -914,5 +917,6 @@ ENTRY(salsa20_ivsetup)
14323 add %r11,%rsp
14324 mov %rdi,%rax
14325 mov %rsi,%rdx
14326 + pax_force_retaddr
14327 ret
14328 ENDPROC(salsa20_ivsetup)
14329 diff --git a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
14330 index 2f202f4..d9164d6 100644
14331 --- a/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
14332 +++ b/arch/x86/crypto/serpent-avx-x86_64-asm_64.S
14333 @@ -24,6 +24,7 @@
14334 */
14335
14336 #include <linux/linkage.h>
14337 +#include <asm/alternative-asm.h>
14338 #include "glue_helper-asm-avx.S"
14339
14340 .file "serpent-avx-x86_64-asm_64.S"
14341 @@ -618,6 +619,7 @@ __serpent_enc_blk8_avx:
14342 write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14343 write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14344
14345 + pax_force_retaddr
14346 ret;
14347 ENDPROC(__serpent_enc_blk8_avx)
14348
14349 @@ -672,6 +674,7 @@ __serpent_dec_blk8_avx:
14350 write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
14351 write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
14352
14353 + pax_force_retaddr
14354 ret;
14355 ENDPROC(__serpent_dec_blk8_avx)
14356
14357 @@ -688,6 +691,7 @@ ENTRY(serpent_ecb_enc_8way_avx)
14358
14359 store_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14360
14361 + pax_force_retaddr
14362 ret;
14363 ENDPROC(serpent_ecb_enc_8way_avx)
14364
14365 @@ -704,6 +708,7 @@ ENTRY(serpent_ecb_dec_8way_avx)
14366
14367 store_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
14368
14369 + pax_force_retaddr
14370 ret;
14371 ENDPROC(serpent_ecb_dec_8way_avx)
14372
14373 @@ -720,6 +725,7 @@ ENTRY(serpent_cbc_dec_8way_avx)
14374
14375 store_cbc_8way(%rdx, %rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
14376
14377 + pax_force_retaddr
14378 ret;
14379 ENDPROC(serpent_cbc_dec_8way_avx)
14380
14381 @@ -738,6 +744,7 @@ ENTRY(serpent_ctr_8way_avx)
14382
14383 store_ctr_8way(%rdx, %rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14384
14385 + pax_force_retaddr
14386 ret;
14387 ENDPROC(serpent_ctr_8way_avx)
14388
14389 @@ -758,6 +765,7 @@ ENTRY(serpent_xts_enc_8way_avx)
14390 /* dst <= regs xor IVs(in dst) */
14391 store_xts_8way(%rsi, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14392
14393 + pax_force_retaddr
14394 ret;
14395 ENDPROC(serpent_xts_enc_8way_avx)
14396
14397 @@ -778,5 +786,6 @@ ENTRY(serpent_xts_dec_8way_avx)
14398 /* dst <= regs xor IVs(in dst) */
14399 store_xts_8way(%rsi, RC1, RD1, RB1, RE1, RC2, RD2, RB2, RE2);
14400
14401 + pax_force_retaddr
14402 ret;
14403 ENDPROC(serpent_xts_dec_8way_avx)
14404 diff --git a/arch/x86/crypto/serpent-avx2-asm_64.S b/arch/x86/crypto/serpent-avx2-asm_64.S
14405 index b222085..abd483c 100644
14406 --- a/arch/x86/crypto/serpent-avx2-asm_64.S
14407 +++ b/arch/x86/crypto/serpent-avx2-asm_64.S
14408 @@ -15,6 +15,7 @@
14409 */
14410
14411 #include <linux/linkage.h>
14412 +#include <asm/alternative-asm.h>
14413 #include "glue_helper-asm-avx2.S"
14414
14415 .file "serpent-avx2-asm_64.S"
14416 @@ -610,6 +611,7 @@ __serpent_enc_blk16:
14417 write_blocks(RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14418 write_blocks(RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14419
14420 + pax_force_retaddr
14421 ret;
14422 ENDPROC(__serpent_enc_blk16)
14423
14424 @@ -664,6 +666,7 @@ __serpent_dec_blk16:
14425 write_blocks(RC1, RD1, RB1, RE1, RK0, RK1, RK2);
14426 write_blocks(RC2, RD2, RB2, RE2, RK0, RK1, RK2);
14427
14428 + pax_force_retaddr
14429 ret;
14430 ENDPROC(__serpent_dec_blk16)
14431
14432 @@ -684,6 +687,7 @@ ENTRY(serpent_ecb_enc_16way)
14433
14434 vzeroupper;
14435
14436 + pax_force_retaddr
14437 ret;
14438 ENDPROC(serpent_ecb_enc_16way)
14439
14440 @@ -704,6 +708,7 @@ ENTRY(serpent_ecb_dec_16way)
14441
14442 vzeroupper;
14443
14444 + pax_force_retaddr
14445 ret;
14446 ENDPROC(serpent_ecb_dec_16way)
14447
14448 @@ -725,6 +730,7 @@ ENTRY(serpent_cbc_dec_16way)
14449
14450 vzeroupper;
14451
14452 + pax_force_retaddr
14453 ret;
14454 ENDPROC(serpent_cbc_dec_16way)
14455
14456 @@ -748,6 +754,7 @@ ENTRY(serpent_ctr_16way)
14457
14458 vzeroupper;
14459
14460 + pax_force_retaddr
14461 ret;
14462 ENDPROC(serpent_ctr_16way)
14463
14464 @@ -772,6 +779,7 @@ ENTRY(serpent_xts_enc_16way)
14465
14466 vzeroupper;
14467
14468 + pax_force_retaddr
14469 ret;
14470 ENDPROC(serpent_xts_enc_16way)
14471
14472 @@ -796,5 +804,6 @@ ENTRY(serpent_xts_dec_16way)
14473
14474 vzeroupper;
14475
14476 + pax_force_retaddr
14477 ret;
14478 ENDPROC(serpent_xts_dec_16way)
14479 diff --git a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14480 index acc066c..1559cc4 100644
14481 --- a/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14482 +++ b/arch/x86/crypto/serpent-sse2-x86_64-asm_64.S
14483 @@ -25,6 +25,7 @@
14484 */
14485
14486 #include <linux/linkage.h>
14487 +#include <asm/alternative-asm.h>
14488
14489 .file "serpent-sse2-x86_64-asm_64.S"
14490 .text
14491 @@ -690,12 +691,14 @@ ENTRY(__serpent_enc_blk_8way)
14492 write_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14493 write_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14494
14495 + pax_force_retaddr
14496 ret;
14497
14498 .L__enc_xor8:
14499 xor_blocks(%rsi, RA1, RB1, RC1, RD1, RK0, RK1, RK2);
14500 xor_blocks(%rax, RA2, RB2, RC2, RD2, RK0, RK1, RK2);
14501
14502 + pax_force_retaddr
14503 ret;
14504 ENDPROC(__serpent_enc_blk_8way)
14505
14506 @@ -750,5 +753,6 @@ ENTRY(serpent_dec_blk_8way)
14507 write_blocks(%rsi, RC1, RD1, RB1, RE1, RK0, RK1, RK2);
14508 write_blocks(%rax, RC2, RD2, RB2, RE2, RK0, RK1, RK2);
14509
14510 + pax_force_retaddr
14511 ret;
14512 ENDPROC(serpent_dec_blk_8way)
14513 diff --git a/arch/x86/crypto/sha1_ssse3_asm.S b/arch/x86/crypto/sha1_ssse3_asm.S
14514 index a410950..9dfe7ad 100644
14515 --- a/arch/x86/crypto/sha1_ssse3_asm.S
14516 +++ b/arch/x86/crypto/sha1_ssse3_asm.S
14517 @@ -29,6 +29,7 @@
14518 */
14519
14520 #include <linux/linkage.h>
14521 +#include <asm/alternative-asm.h>
14522
14523 #define CTX %rdi // arg1
14524 #define BUF %rsi // arg2
14525 @@ -75,9 +76,9 @@
14526
14527 push %rbx
14528 push %rbp
14529 - push %r12
14530 + push %r14
14531
14532 - mov %rsp, %r12
14533 + mov %rsp, %r14
14534 sub $64, %rsp # allocate workspace
14535 and $~15, %rsp # align stack
14536
14537 @@ -99,11 +100,12 @@
14538 xor %rax, %rax
14539 rep stosq
14540
14541 - mov %r12, %rsp # deallocate workspace
14542 + mov %r14, %rsp # deallocate workspace
14543
14544 - pop %r12
14545 + pop %r14
14546 pop %rbp
14547 pop %rbx
14548 + pax_force_retaddr
14549 ret
14550
14551 ENDPROC(\name)
14552 diff --git a/arch/x86/crypto/sha256-avx-asm.S b/arch/x86/crypto/sha256-avx-asm.S
14553 index 92b3b5d..0dc1dcb 100644
14554 --- a/arch/x86/crypto/sha256-avx-asm.S
14555 +++ b/arch/x86/crypto/sha256-avx-asm.S
14556 @@ -49,6 +49,7 @@
14557
14558 #ifdef CONFIG_AS_AVX
14559 #include <linux/linkage.h>
14560 +#include <asm/alternative-asm.h>
14561
14562 ## assume buffers not aligned
14563 #define VMOVDQ vmovdqu
14564 @@ -460,6 +461,7 @@ done_hash:
14565 popq %r13
14566 popq %rbp
14567 popq %rbx
14568 + pax_force_retaddr
14569 ret
14570 ENDPROC(sha256_transform_avx)
14571
14572 diff --git a/arch/x86/crypto/sha256-avx2-asm.S b/arch/x86/crypto/sha256-avx2-asm.S
14573 index 570ec5e..cf2b625 100644
14574 --- a/arch/x86/crypto/sha256-avx2-asm.S
14575 +++ b/arch/x86/crypto/sha256-avx2-asm.S
14576 @@ -50,6 +50,7 @@
14577
14578 #ifdef CONFIG_AS_AVX2
14579 #include <linux/linkage.h>
14580 +#include <asm/alternative-asm.h>
14581
14582 ## assume buffers not aligned
14583 #define VMOVDQ vmovdqu
14584 @@ -720,6 +721,7 @@ done_hash:
14585 popq %r12
14586 popq %rbp
14587 popq %rbx
14588 + pax_force_retaddr
14589 ret
14590 ENDPROC(sha256_transform_rorx)
14591
14592 diff --git a/arch/x86/crypto/sha256-ssse3-asm.S b/arch/x86/crypto/sha256-ssse3-asm.S
14593 index 2cedc44..5144899 100644
14594 --- a/arch/x86/crypto/sha256-ssse3-asm.S
14595 +++ b/arch/x86/crypto/sha256-ssse3-asm.S
14596 @@ -47,6 +47,7 @@
14597 ########################################################################
14598
14599 #include <linux/linkage.h>
14600 +#include <asm/alternative-asm.h>
14601
14602 ## assume buffers not aligned
14603 #define MOVDQ movdqu
14604 @@ -471,6 +472,7 @@ done_hash:
14605 popq %rbp
14606 popq %rbx
14607
14608 + pax_force_retaddr
14609 ret
14610 ENDPROC(sha256_transform_ssse3)
14611
14612 diff --git a/arch/x86/crypto/sha512-avx-asm.S b/arch/x86/crypto/sha512-avx-asm.S
14613 index 565274d..af6bc08 100644
14614 --- a/arch/x86/crypto/sha512-avx-asm.S
14615 +++ b/arch/x86/crypto/sha512-avx-asm.S
14616 @@ -49,6 +49,7 @@
14617
14618 #ifdef CONFIG_AS_AVX
14619 #include <linux/linkage.h>
14620 +#include <asm/alternative-asm.h>
14621
14622 .text
14623
14624 @@ -364,6 +365,7 @@ updateblock:
14625 mov frame_RSPSAVE(%rsp), %rsp
14626
14627 nowork:
14628 + pax_force_retaddr
14629 ret
14630 ENDPROC(sha512_transform_avx)
14631
14632 diff --git a/arch/x86/crypto/sha512-avx2-asm.S b/arch/x86/crypto/sha512-avx2-asm.S
14633 index 1f20b35..f25c8c1 100644
14634 --- a/arch/x86/crypto/sha512-avx2-asm.S
14635 +++ b/arch/x86/crypto/sha512-avx2-asm.S
14636 @@ -51,6 +51,7 @@
14637
14638 #ifdef CONFIG_AS_AVX2
14639 #include <linux/linkage.h>
14640 +#include <asm/alternative-asm.h>
14641
14642 .text
14643
14644 @@ -678,6 +679,7 @@ done_hash:
14645
14646 # Restore Stack Pointer
14647 mov frame_RSPSAVE(%rsp), %rsp
14648 + pax_force_retaddr
14649 ret
14650 ENDPROC(sha512_transform_rorx)
14651
14652 diff --git a/arch/x86/crypto/sha512-ssse3-asm.S b/arch/x86/crypto/sha512-ssse3-asm.S
14653 index e610e29..ffcb5ed 100644
14654 --- a/arch/x86/crypto/sha512-ssse3-asm.S
14655 +++ b/arch/x86/crypto/sha512-ssse3-asm.S
14656 @@ -48,6 +48,7 @@
14657 ########################################################################
14658
14659 #include <linux/linkage.h>
14660 +#include <asm/alternative-asm.h>
14661
14662 .text
14663
14664 @@ -363,6 +364,7 @@ updateblock:
14665 mov frame_RSPSAVE(%rsp), %rsp
14666
14667 nowork:
14668 + pax_force_retaddr
14669 ret
14670 ENDPROC(sha512_transform_ssse3)
14671
14672 diff --git a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14673 index 0505813..b067311 100644
14674 --- a/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14675 +++ b/arch/x86/crypto/twofish-avx-x86_64-asm_64.S
14676 @@ -24,6 +24,7 @@
14677 */
14678
14679 #include <linux/linkage.h>
14680 +#include <asm/alternative-asm.h>
14681 #include "glue_helper-asm-avx.S"
14682
14683 .file "twofish-avx-x86_64-asm_64.S"
14684 @@ -284,6 +285,7 @@ __twofish_enc_blk8:
14685 outunpack_blocks(RC1, RD1, RA1, RB1, RK1, RX0, RY0, RK2);
14686 outunpack_blocks(RC2, RD2, RA2, RB2, RK1, RX0, RY0, RK2);
14687
14688 + pax_force_retaddr
14689 ret;
14690 ENDPROC(__twofish_enc_blk8)
14691
14692 @@ -324,6 +326,7 @@ __twofish_dec_blk8:
14693 outunpack_blocks(RA1, RB1, RC1, RD1, RK1, RX0, RY0, RK2);
14694 outunpack_blocks(RA2, RB2, RC2, RD2, RK1, RX0, RY0, RK2);
14695
14696 + pax_force_retaddr
14697 ret;
14698 ENDPROC(__twofish_dec_blk8)
14699
14700 @@ -342,6 +345,7 @@ ENTRY(twofish_ecb_enc_8way)
14701
14702 store_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14703
14704 + pax_force_retaddr
14705 ret;
14706 ENDPROC(twofish_ecb_enc_8way)
14707
14708 @@ -360,6 +364,7 @@ ENTRY(twofish_ecb_dec_8way)
14709
14710 store_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14711
14712 + pax_force_retaddr
14713 ret;
14714 ENDPROC(twofish_ecb_dec_8way)
14715
14716 @@ -370,19 +375,20 @@ ENTRY(twofish_cbc_dec_8way)
14717 * %rdx: src
14718 */
14719
14720 - pushq %r12;
14721 + pushq %r14;
14722
14723 movq %rsi, %r11;
14724 - movq %rdx, %r12;
14725 + movq %rdx, %r14;
14726
14727 load_8way(%rdx, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14728
14729 call __twofish_dec_blk8;
14730
14731 - store_cbc_8way(%r12, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14732 + store_cbc_8way(%r14, %r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14733
14734 - popq %r12;
14735 + popq %r14;
14736
14737 + pax_force_retaddr
14738 ret;
14739 ENDPROC(twofish_cbc_dec_8way)
14740
14741 @@ -394,20 +400,21 @@ ENTRY(twofish_ctr_8way)
14742 * %rcx: iv (little endian, 128bit)
14743 */
14744
14745 - pushq %r12;
14746 + pushq %r14;
14747
14748 movq %rsi, %r11;
14749 - movq %rdx, %r12;
14750 + movq %rdx, %r14;
14751
14752 load_ctr_8way(%rcx, .Lbswap128_mask, RA1, RB1, RC1, RD1, RA2, RB2, RC2,
14753 RD2, RX0, RX1, RY0);
14754
14755 call __twofish_enc_blk8;
14756
14757 - store_ctr_8way(%r12, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14758 + store_ctr_8way(%r14, %r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14759
14760 - popq %r12;
14761 + popq %r14;
14762
14763 + pax_force_retaddr
14764 ret;
14765 ENDPROC(twofish_ctr_8way)
14766
14767 @@ -430,6 +437,7 @@ ENTRY(twofish_xts_enc_8way)
14768 /* dst <= regs xor IVs(in dst) */
14769 store_xts_8way(%r11, RC1, RD1, RA1, RB1, RC2, RD2, RA2, RB2);
14770
14771 + pax_force_retaddr
14772 ret;
14773 ENDPROC(twofish_xts_enc_8way)
14774
14775 @@ -452,5 +460,6 @@ ENTRY(twofish_xts_dec_8way)
14776 /* dst <= regs xor IVs(in dst) */
14777 store_xts_8way(%r11, RA1, RB1, RC1, RD1, RA2, RB2, RC2, RD2);
14778
14779 + pax_force_retaddr
14780 ret;
14781 ENDPROC(twofish_xts_dec_8way)
14782 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14783 index 1c3b7ce..02f578d 100644
14784 --- a/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14785 +++ b/arch/x86/crypto/twofish-x86_64-asm_64-3way.S
14786 @@ -21,6 +21,7 @@
14787 */
14788
14789 #include <linux/linkage.h>
14790 +#include <asm/alternative-asm.h>
14791
14792 .file "twofish-x86_64-asm-3way.S"
14793 .text
14794 @@ -258,6 +259,7 @@ ENTRY(__twofish_enc_blk_3way)
14795 popq %r13;
14796 popq %r14;
14797 popq %r15;
14798 + pax_force_retaddr
14799 ret;
14800
14801 .L__enc_xor3:
14802 @@ -269,6 +271,7 @@ ENTRY(__twofish_enc_blk_3way)
14803 popq %r13;
14804 popq %r14;
14805 popq %r15;
14806 + pax_force_retaddr
14807 ret;
14808 ENDPROC(__twofish_enc_blk_3way)
14809
14810 @@ -308,5 +311,6 @@ ENTRY(twofish_dec_blk_3way)
14811 popq %r13;
14812 popq %r14;
14813 popq %r15;
14814 + pax_force_retaddr
14815 ret;
14816 ENDPROC(twofish_dec_blk_3way)
14817 diff --git a/arch/x86/crypto/twofish-x86_64-asm_64.S b/arch/x86/crypto/twofish-x86_64-asm_64.S
14818 index a350c99..c1bac24 100644
14819 --- a/arch/x86/crypto/twofish-x86_64-asm_64.S
14820 +++ b/arch/x86/crypto/twofish-x86_64-asm_64.S
14821 @@ -22,6 +22,7 @@
14822
14823 #include <linux/linkage.h>
14824 #include <asm/asm-offsets.h>
14825 +#include <asm/alternative-asm.h>
14826
14827 #define a_offset 0
14828 #define b_offset 4
14829 @@ -265,6 +266,7 @@ ENTRY(twofish_enc_blk)
14830
14831 popq R1
14832 movl $1,%eax
14833 + pax_force_retaddr
14834 ret
14835 ENDPROC(twofish_enc_blk)
14836
14837 @@ -317,5 +319,6 @@ ENTRY(twofish_dec_blk)
14838
14839 popq R1
14840 movl $1,%eax
14841 + pax_force_retaddr
14842 ret
14843 ENDPROC(twofish_dec_blk)
14844 diff --git a/arch/x86/entry/calling.h b/arch/x86/entry/calling.h
14845 index f4e6308..7ba29a1 100644
14846 --- a/arch/x86/entry/calling.h
14847 +++ b/arch/x86/entry/calling.h
14848 @@ -93,23 +93,26 @@ For 32-bit we have the following conventions - kernel is built with
14849 .endm
14850
14851 .macro SAVE_C_REGS_HELPER offset=0 rax=1 rcx=1 r8910=1 r11=1
14852 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14853 + movq %r12, R12+\offset(%rsp)
14854 +#endif
14855 .if \r11
14856 - movq %r11, 6*8+\offset(%rsp)
14857 + movq %r11, R11+\offset(%rsp)
14858 .endif
14859 .if \r8910
14860 - movq %r10, 7*8+\offset(%rsp)
14861 - movq %r9, 8*8+\offset(%rsp)
14862 - movq %r8, 9*8+\offset(%rsp)
14863 + movq %r10, R10+\offset(%rsp)
14864 + movq %r9, R9+\offset(%rsp)
14865 + movq %r8, R8+\offset(%rsp)
14866 .endif
14867 .if \rax
14868 - movq %rax, 10*8+\offset(%rsp)
14869 + movq %rax, RAX+\offset(%rsp)
14870 .endif
14871 .if \rcx
14872 - movq %rcx, 11*8+\offset(%rsp)
14873 + movq %rcx, RCX+\offset(%rsp)
14874 .endif
14875 - movq %rdx, 12*8+\offset(%rsp)
14876 - movq %rsi, 13*8+\offset(%rsp)
14877 - movq %rdi, 14*8+\offset(%rsp)
14878 + movq %rdx, RDX+\offset(%rsp)
14879 + movq %rsi, RSI+\offset(%rsp)
14880 + movq %rdi, RDI+\offset(%rsp)
14881 .endm
14882 .macro SAVE_C_REGS offset=0
14883 SAVE_C_REGS_HELPER \offset, 1, 1, 1, 1
14884 @@ -128,76 +131,87 @@ For 32-bit we have the following conventions - kernel is built with
14885 .endm
14886
14887 .macro SAVE_EXTRA_REGS offset=0
14888 - movq %r15, 0*8+\offset(%rsp)
14889 - movq %r14, 1*8+\offset(%rsp)
14890 - movq %r13, 2*8+\offset(%rsp)
14891 - movq %r12, 3*8+\offset(%rsp)
14892 - movq %rbp, 4*8+\offset(%rsp)
14893 - movq %rbx, 5*8+\offset(%rsp)
14894 + movq %r15, R15+\offset(%rsp)
14895 + movq %r14, R14+\offset(%rsp)
14896 + movq %r13, R13+\offset(%rsp)
14897 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14898 + movq %r12, R12+\offset(%rsp)
14899 +#endif
14900 + movq %rbp, RBP+\offset(%rsp)
14901 + movq %rbx, RBX+\offset(%rsp)
14902 .endm
14903 .macro SAVE_EXTRA_REGS_RBP offset=0
14904 - movq %rbp, 4*8+\offset(%rsp)
14905 + movq %rbp, RBP+\offset(%rsp)
14906 .endm
14907
14908 .macro RESTORE_EXTRA_REGS offset=0
14909 - movq 0*8+\offset(%rsp), %r15
14910 - movq 1*8+\offset(%rsp), %r14
14911 - movq 2*8+\offset(%rsp), %r13
14912 - movq 3*8+\offset(%rsp), %r12
14913 - movq 4*8+\offset(%rsp), %rbp
14914 - movq 5*8+\offset(%rsp), %rbx
14915 + movq R15+\offset(%rsp), %r15
14916 + movq R14+\offset(%rsp), %r14
14917 + movq R13+\offset(%rsp), %r13
14918 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14919 + movq R12+\offset(%rsp), %r12
14920 +#endif
14921 + movq RBP+\offset(%rsp), %rbp
14922 + movq RBX+\offset(%rsp), %rbx
14923 .endm
14924
14925 .macro ZERO_EXTRA_REGS
14926 xorl %r15d, %r15d
14927 xorl %r14d, %r14d
14928 xorl %r13d, %r13d
14929 +#ifndef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14930 xorl %r12d, %r12d
14931 +#endif
14932 xorl %ebp, %ebp
14933 xorl %ebx, %ebx
14934 .endm
14935
14936 - .macro RESTORE_C_REGS_HELPER rstor_rax=1, rstor_rcx=1, rstor_r11=1, rstor_r8910=1, rstor_rdx=1
14937 + .macro RESTORE_C_REGS_HELPER rstor_rax=1, rstor_rcx=1, rstor_r11=1, rstor_r8910=1, rstor_rdx=1, rstor_r12=1
14938 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
14939 + .if \rstor_r12
14940 + movq R12(%rsp), %r12
14941 + .endif
14942 +#endif
14943 .if \rstor_r11
14944 - movq 6*8(%rsp), %r11
14945 + movq R11(%rsp), %r11
14946 .endif
14947 .if \rstor_r8910
14948 - movq 7*8(%rsp), %r10
14949 - movq 8*8(%rsp), %r9
14950 - movq 9*8(%rsp), %r8
14951 + movq R10(%rsp), %r10
14952 + movq R9(%rsp), %r9
14953 + movq R8(%rsp), %r8
14954 .endif
14955 .if \rstor_rax
14956 - movq 10*8(%rsp), %rax
14957 + movq RAX(%rsp), %rax
14958 .endif
14959 .if \rstor_rcx
14960 - movq 11*8(%rsp), %rcx
14961 + movq RCX(%rsp), %rcx
14962 .endif
14963 .if \rstor_rdx
14964 - movq 12*8(%rsp), %rdx
14965 + movq RDX(%rsp), %rdx
14966 .endif
14967 - movq 13*8(%rsp), %rsi
14968 - movq 14*8(%rsp), %rdi
14969 + movq RSI(%rsp), %rsi
14970 + movq RDI(%rsp), %rdi
14971 .endm
14972 .macro RESTORE_C_REGS
14973 - RESTORE_C_REGS_HELPER 1,1,1,1,1
14974 + RESTORE_C_REGS_HELPER 1,1,1,1,1,1
14975 .endm
14976 .macro RESTORE_C_REGS_EXCEPT_RAX
14977 - RESTORE_C_REGS_HELPER 0,1,1,1,1
14978 + RESTORE_C_REGS_HELPER 0,1,1,1,1,0
14979 .endm
14980 .macro RESTORE_C_REGS_EXCEPT_RCX
14981 - RESTORE_C_REGS_HELPER 1,0,1,1,1
14982 + RESTORE_C_REGS_HELPER 1,0,1,1,1,0
14983 .endm
14984 .macro RESTORE_C_REGS_EXCEPT_R11
14985 - RESTORE_C_REGS_HELPER 1,1,0,1,1
14986 + RESTORE_C_REGS_HELPER 1,1,0,1,1,1
14987 .endm
14988 .macro RESTORE_C_REGS_EXCEPT_RCX_R11
14989 - RESTORE_C_REGS_HELPER 1,0,0,1,1
14990 + RESTORE_C_REGS_HELPER 1,0,0,1,1,1
14991 .endm
14992 .macro RESTORE_RSI_RDI
14993 - RESTORE_C_REGS_HELPER 0,0,0,0,0
14994 + RESTORE_C_REGS_HELPER 0,0,0,0,0,1
14995 .endm
14996 .macro RESTORE_RSI_RDI_RDX
14997 - RESTORE_C_REGS_HELPER 0,0,0,0,1
14998 + RESTORE_C_REGS_HELPER 0,0,0,0,1,1
14999 .endm
15000
15001 .macro REMOVE_PT_GPREGS_FROM_STACK addskip=0
15002 diff --git a/arch/x86/entry/entry_32.S b/arch/x86/entry/entry_32.S
15003 index 21dc60a..844def1 100644
15004 --- a/arch/x86/entry/entry_32.S
15005 +++ b/arch/x86/entry/entry_32.S
15006 @@ -157,13 +157,154 @@
15007 movl \reg, PT_GS(%esp)
15008 .endm
15009 .macro SET_KERNEL_GS reg
15010 +
15011 +#ifdef CONFIG_CC_STACKPROTECTOR
15012 movl $(__KERNEL_STACK_CANARY), \reg
15013 +#elif defined(CONFIG_PAX_MEMORY_UDEREF)
15014 + movl $(__USER_DS), \reg
15015 +#else
15016 + xorl \reg, \reg
15017 +#endif
15018 +
15019 movl \reg, %gs
15020 .endm
15021
15022 #endif /* CONFIG_X86_32_LAZY_GS */
15023
15024 -.macro SAVE_ALL
15025 +.macro pax_enter_kernel
15026 +#ifdef CONFIG_PAX_KERNEXEC
15027 + call pax_enter_kernel
15028 +#endif
15029 +.endm
15030 +
15031 +.macro pax_exit_kernel
15032 +#ifdef CONFIG_PAX_KERNEXEC
15033 + call pax_exit_kernel
15034 +#endif
15035 +.endm
15036 +
15037 +#ifdef CONFIG_PAX_KERNEXEC
15038 +ENTRY(pax_enter_kernel)
15039 +#ifdef CONFIG_PARAVIRT
15040 + pushl %eax
15041 + pushl %ecx
15042 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0)
15043 + mov %eax, %esi
15044 +#else
15045 + mov %cr0, %esi
15046 +#endif
15047 + bts $X86_CR0_WP_BIT, %esi
15048 + jnc 1f
15049 + mov %cs, %esi
15050 + cmp $__KERNEL_CS, %esi
15051 + jz 3f
15052 + ljmp $__KERNEL_CS, $3f
15053 +1: ljmp $__KERNEXEC_KERNEL_CS, $2f
15054 +2:
15055 +#ifdef CONFIG_PARAVIRT
15056 + mov %esi, %eax
15057 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0)
15058 +#else
15059 + mov %esi, %cr0
15060 +#endif
15061 +3:
15062 +#ifdef CONFIG_PARAVIRT
15063 + popl %ecx
15064 + popl %eax
15065 +#endif
15066 + ret
15067 +ENDPROC(pax_enter_kernel)
15068 +
15069 +ENTRY(pax_exit_kernel)
15070 +#ifdef CONFIG_PARAVIRT
15071 + pushl %eax
15072 + pushl %ecx
15073 +#endif
15074 + mov %cs, %esi
15075 + cmp $__KERNEXEC_KERNEL_CS, %esi
15076 + jnz 2f
15077 +#ifdef CONFIG_PARAVIRT
15078 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0);
15079 + mov %eax, %esi
15080 +#else
15081 + mov %cr0, %esi
15082 +#endif
15083 + btr $X86_CR0_WP_BIT, %esi
15084 + ljmp $__KERNEL_CS, $1f
15085 +1:
15086 +#ifdef CONFIG_PARAVIRT
15087 + mov %esi, %eax
15088 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0);
15089 +#else
15090 + mov %esi, %cr0
15091 +#endif
15092 +2:
15093 +#ifdef CONFIG_PARAVIRT
15094 + popl %ecx
15095 + popl %eax
15096 +#endif
15097 + ret
15098 +ENDPROC(pax_exit_kernel)
15099 +#endif
15100 +
15101 + .macro pax_erase_kstack
15102 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
15103 + call pax_erase_kstack
15104 +#endif
15105 + .endm
15106 +
15107 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
15108 +/*
15109 + * ebp: thread_info
15110 + */
15111 +ENTRY(pax_erase_kstack)
15112 + pushl %edi
15113 + pushl %ecx
15114 + pushl %eax
15115 +
15116 + mov TI_lowest_stack(%ebp), %edi
15117 + mov $-0xBEEF, %eax
15118 + std
15119 +
15120 +1: mov %edi, %ecx
15121 + and $THREAD_SIZE_asm - 1, %ecx
15122 + shr $2, %ecx
15123 + repne scasl
15124 + jecxz 2f
15125 +
15126 + cmp $2*16, %ecx
15127 + jc 2f
15128 +
15129 + mov $2*16, %ecx
15130 + repe scasl
15131 + jecxz 2f
15132 + jne 1b
15133 +
15134 +2: cld
15135 + or $2*4, %edi
15136 + mov %esp, %ecx
15137 + sub %edi, %ecx
15138 +
15139 + cmp $THREAD_SIZE_asm, %ecx
15140 + jb 3f
15141 + ud2
15142 +3:
15143 +
15144 + shr $2, %ecx
15145 + rep stosl
15146 +
15147 + mov TI_task_thread_sp0(%ebp), %edi
15148 + sub $128, %edi
15149 + mov %edi, TI_lowest_stack(%ebp)
15150 +
15151 + popl %eax
15152 + popl %ecx
15153 + popl %edi
15154 + ret
15155 +ENDPROC(pax_erase_kstack)
15156 +#endif
15157 +
15158 +.macro __SAVE_ALL _DS
15159 cld
15160 PUSH_GS
15161 pushl %fs
15162 @@ -176,7 +317,7 @@
15163 pushl %edx
15164 pushl %ecx
15165 pushl %ebx
15166 - movl $(__USER_DS), %edx
15167 + movl $\_DS, %edx
15168 movl %edx, %ds
15169 movl %edx, %es
15170 movl $(__KERNEL_PERCPU), %edx
15171 @@ -184,6 +325,15 @@
15172 SET_KERNEL_GS %edx
15173 .endm
15174
15175 +.macro SAVE_ALL
15176 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15177 + __SAVE_ALL __KERNEL_DS
15178 + pax_enter_kernel
15179 +#else
15180 + __SAVE_ALL __USER_DS
15181 +#endif
15182 +.endm
15183 +
15184 .macro RESTORE_INT_REGS
15185 popl %ebx
15186 popl %ecx
15187 @@ -222,7 +372,7 @@ ENTRY(ret_from_fork)
15188 pushl $0x0202 # Reset kernel eflags
15189 popfl
15190 jmp syscall_exit
15191 -END(ret_from_fork)
15192 +ENDPROC(ret_from_fork)
15193
15194 ENTRY(ret_from_kernel_thread)
15195 pushl %eax
15196 @@ -262,7 +412,15 @@ ret_from_intr:
15197 andl $SEGMENT_RPL_MASK, %eax
15198 #endif
15199 cmpl $USER_RPL, %eax
15200 +
15201 +#ifdef CONFIG_PAX_KERNEXEC
15202 + jae resume_userspace
15203 +
15204 + pax_exit_kernel
15205 + jmp resume_kernel
15206 +#else
15207 jb resume_kernel # not returning to v8086 or userspace
15208 +#endif
15209
15210 ENTRY(resume_userspace)
15211 LOCKDEP_SYS_EXIT
15212 @@ -274,8 +432,8 @@ ENTRY(resume_userspace)
15213 andl $_TIF_WORK_MASK, %ecx # is there any work to be done on
15214 # int/exception return?
15215 jne work_pending
15216 - jmp restore_all
15217 -END(ret_from_exception)
15218 + jmp restore_all_pax
15219 +ENDPROC(ret_from_exception)
15220
15221 #ifdef CONFIG_PREEMPT
15222 ENTRY(resume_kernel)
15223 @@ -287,7 +445,7 @@ need_resched:
15224 jz restore_all
15225 call preempt_schedule_irq
15226 jmp need_resched
15227 -END(resume_kernel)
15228 +ENDPROC(resume_kernel)
15229 #endif
15230
15231 /*
15232 @@ -312,32 +470,44 @@ sysenter_past_esp:
15233 pushl $__USER_CS
15234 /*
15235 * Push current_thread_info()->sysenter_return to the stack.
15236 - * A tiny bit of offset fixup is necessary: TI_sysenter_return
15237 - * is relative to thread_info, which is at the bottom of the
15238 - * kernel stack page. 4*4 means the 4 words pushed above;
15239 - * TOP_OF_KERNEL_STACK_PADDING takes us to the top of the stack;
15240 - * and THREAD_SIZE takes us to the bottom.
15241 */
15242 - pushl ((TI_sysenter_return) - THREAD_SIZE + TOP_OF_KERNEL_STACK_PADDING + 4*4)(%esp)
15243 + pushl $0
15244
15245 pushl %eax
15246 SAVE_ALL
15247 + GET_THREAD_INFO(%ebp)
15248 + movl TI_sysenter_return(%ebp), %ebp
15249 + movl %ebp, PT_EIP(%esp)
15250 ENABLE_INTERRUPTS(CLBR_NONE)
15251
15252 /*
15253 * Load the potential sixth argument from user stack.
15254 * Careful about security.
15255 */
15256 + movl PT_OLDESP(%esp),%ebp
15257 +
15258 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15259 + mov PT_OLDSS(%esp), %ds
15260 +1: movl %ds:(%ebp), %ebp
15261 + push %ss
15262 + pop %ds
15263 +#else
15264 cmpl $__PAGE_OFFSET-3, %ebp
15265 jae syscall_fault
15266 ASM_STAC
15267 1: movl (%ebp), %ebp
15268 ASM_CLAC
15269 +#endif
15270 +
15271 movl %ebp, PT_EBP(%esp)
15272 _ASM_EXTABLE(1b, syscall_fault)
15273
15274 GET_THREAD_INFO(%ebp)
15275
15276 +#ifdef CONFIG_PAX_RANDKSTACK
15277 + pax_erase_kstack
15278 +#endif
15279 +
15280 testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%ebp)
15281 jnz sysenter_audit
15282 sysenter_do_call:
15283 @@ -353,12 +523,24 @@ sysenter_after_call:
15284 testl $_TIF_ALLWORK_MASK, %ecx
15285 jnz sysexit_audit
15286 sysenter_exit:
15287 +
15288 +#ifdef CONFIG_PAX_RANDKSTACK
15289 + pushl %eax
15290 + movl %esp, %eax
15291 + call pax_randomize_kstack
15292 + popl %eax
15293 +#endif
15294 +
15295 + pax_erase_kstack
15296 +
15297 /* if something modifies registers it must also disable sysexit */
15298 movl PT_EIP(%esp), %edx
15299 movl PT_OLDESP(%esp), %ecx
15300 xorl %ebp, %ebp
15301 TRACE_IRQS_ON
15302 1: mov PT_FS(%esp), %fs
15303 +2: mov PT_DS(%esp), %ds
15304 +3: mov PT_ES(%esp), %es
15305 PTGS_TO_GS
15306 ENABLE_INTERRUPTS_SYSEXIT
15307
15308 @@ -372,6 +554,9 @@ sysenter_audit:
15309 pushl PT_ESI(%esp) /* a3: 5th arg */
15310 pushl PT_EDX+4(%esp) /* a2: 4th arg */
15311 call __audit_syscall_entry
15312 +
15313 + pax_erase_kstack
15314 +
15315 popl %ecx /* get that remapped edx off the stack */
15316 popl %ecx /* get that remapped esi off the stack */
15317 movl PT_EAX(%esp), %eax /* reload syscall number */
15318 @@ -397,10 +582,16 @@ sysexit_audit:
15319 #endif
15320
15321 .pushsection .fixup, "ax"
15322 -2: movl $0, PT_FS(%esp)
15323 +4: movl $0, PT_FS(%esp)
15324 + jmp 1b
15325 +5: movl $0, PT_DS(%esp)
15326 + jmp 1b
15327 +6: movl $0, PT_ES(%esp)
15328 jmp 1b
15329 .popsection
15330 - _ASM_EXTABLE(1b, 2b)
15331 + _ASM_EXTABLE(1b, 4b)
15332 + _ASM_EXTABLE(2b, 5b)
15333 + _ASM_EXTABLE(3b, 6b)
15334 PTGS_TO_GS_EX
15335 ENDPROC(entry_SYSENTER_32)
15336
15337 @@ -410,6 +601,11 @@ ENTRY(entry_INT80_32)
15338 pushl %eax # save orig_eax
15339 SAVE_ALL
15340 GET_THREAD_INFO(%ebp)
15341 +
15342 +#ifdef CONFIG_PAX_RANDKSTACK
15343 + pax_erase_kstack
15344 +#endif
15345 +
15346 # system call tracing in operation / emulation
15347 testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%ebp)
15348 jnz syscall_trace_entry
15349 @@ -429,6 +625,15 @@ syscall_exit:
15350 testl $_TIF_ALLWORK_MASK, %ecx # current->work
15351 jnz syscall_exit_work
15352
15353 +restore_all_pax:
15354 +
15355 +#ifdef CONFIG_PAX_RANDKSTACK
15356 + movl %esp, %eax
15357 + call pax_randomize_kstack
15358 +#endif
15359 +
15360 + pax_erase_kstack
15361 +
15362 restore_all:
15363 TRACE_IRQS_IRET
15364 restore_all_notrace:
15365 @@ -483,14 +688,34 @@ ldt_ss:
15366 * compensating for the offset by changing to the ESPFIX segment with
15367 * a base address that matches for the difference.
15368 */
15369 -#define GDT_ESPFIX_SS PER_CPU_VAR(gdt_page) + (GDT_ENTRY_ESPFIX_SS * 8)
15370 +#define GDT_ESPFIX_SS (GDT_ENTRY_ESPFIX_SS * 8)(%ebx)
15371 mov %esp, %edx /* load kernel esp */
15372 mov PT_OLDESP(%esp), %eax /* load userspace esp */
15373 mov %dx, %ax /* eax: new kernel esp */
15374 sub %eax, %edx /* offset (low word is 0) */
15375 +#ifdef CONFIG_SMP
15376 + movl PER_CPU_VAR(cpu_number), %ebx
15377 + shll $PAGE_SHIFT_asm, %ebx
15378 + addl $cpu_gdt_table, %ebx
15379 +#else
15380 + movl $cpu_gdt_table, %ebx
15381 +#endif
15382 shr $16, %edx
15383 - mov %dl, GDT_ESPFIX_SS + 4 /* bits 16..23 */
15384 - mov %dh, GDT_ESPFIX_SS + 7 /* bits 24..31 */
15385 +
15386 +#ifdef CONFIG_PAX_KERNEXEC
15387 + mov %cr0, %esi
15388 + btr $X86_CR0_WP_BIT, %esi
15389 + mov %esi, %cr0
15390 +#endif
15391 +
15392 + mov %dl, 4 + GDT_ESPFIX_SS /* bits 16..23 */
15393 + mov %dh, 7 + GDT_ESPFIX_SS /* bits 24..31 */
15394 +
15395 +#ifdef CONFIG_PAX_KERNEXEC
15396 + bts $X86_CR0_WP_BIT, %esi
15397 + mov %esi, %cr0
15398 +#endif
15399 +
15400 pushl $__ESPFIX_SS
15401 pushl %eax /* new kernel esp */
15402 /*
15403 @@ -519,20 +744,18 @@ work_resched:
15404 movl TI_flags(%ebp), %ecx
15405 andl $_TIF_WORK_MASK, %ecx # is there any work to be done other
15406 # than syscall tracing?
15407 - jz restore_all
15408 + jz restore_all_pax
15409 testb $_TIF_NEED_RESCHED, %cl
15410 jnz work_resched
15411
15412 work_notifysig: # deal with pending signals and
15413 # notify-resume requests
15414 + movl %esp, %eax
15415 #ifdef CONFIG_VM86
15416 testl $X86_EFLAGS_VM, PT_EFLAGS(%esp)
15417 - movl %esp, %eax
15418 jnz work_notifysig_v86 # returning to kernel-space or
15419 # vm86-space
15420 1:
15421 -#else
15422 - movl %esp, %eax
15423 #endif
15424 TRACE_IRQS_ON
15425 ENABLE_INTERRUPTS(CLBR_NONE)
15426 @@ -553,7 +776,7 @@ work_notifysig_v86:
15427 movl %eax, %esp
15428 jmp 1b
15429 #endif
15430 -END(work_pending)
15431 +ENDPROC(work_pending)
15432
15433 # perform syscall exit tracing
15434 ALIGN
15435 @@ -561,11 +784,14 @@ syscall_trace_entry:
15436 movl $-ENOSYS, PT_EAX(%esp)
15437 movl %esp, %eax
15438 call syscall_trace_enter
15439 +
15440 + pax_erase_kstack
15441 +
15442 /* What it returned is what we'll actually use. */
15443 cmpl $(NR_syscalls), %eax
15444 jnae syscall_call
15445 jmp syscall_exit
15446 -END(syscall_trace_entry)
15447 +ENDPROC(syscall_trace_entry)
15448
15449 # perform syscall exit tracing
15450 ALIGN
15451 @@ -578,24 +804,28 @@ syscall_exit_work:
15452 movl %esp, %eax
15453 call syscall_trace_leave
15454 jmp resume_userspace
15455 -END(syscall_exit_work)
15456 +ENDPROC(syscall_exit_work)
15457
15458 syscall_fault:
15459 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15460 + push %ss
15461 + pop %ds
15462 +#endif
15463 ASM_CLAC
15464 GET_THREAD_INFO(%ebp)
15465 movl $-EFAULT, PT_EAX(%esp)
15466 jmp resume_userspace
15467 -END(syscall_fault)
15468 +ENDPROC(syscall_fault)
15469
15470 syscall_badsys:
15471 movl $-ENOSYS, %eax
15472 jmp syscall_after_call
15473 -END(syscall_badsys)
15474 +ENDPROC(syscall_badsys)
15475
15476 sysenter_badsys:
15477 movl $-ENOSYS, %eax
15478 jmp sysenter_after_call
15479 -END(sysenter_badsys)
15480 +ENDPROC(sysenter_badsys)
15481
15482 .macro FIXUP_ESPFIX_STACK
15483 /*
15484 @@ -607,8 +837,15 @@ END(sysenter_badsys)
15485 */
15486 #ifdef CONFIG_X86_ESPFIX32
15487 /* fixup the stack */
15488 - mov GDT_ESPFIX_SS + 4, %al /* bits 16..23 */
15489 - mov GDT_ESPFIX_SS + 7, %ah /* bits 24..31 */
15490 +#ifdef CONFIG_SMP
15491 + movl PER_CPU_VAR(cpu_number), %ebx
15492 + shll $PAGE_SHIFT_asm, %ebx
15493 + addl $cpu_gdt_table, %ebx
15494 +#else
15495 + movl $cpu_gdt_table, %ebx
15496 +#endif
15497 + mov 4 + GDT_ESPFIX_SS, %al /* bits 16..23 */
15498 + mov 7 + GDT_ESPFIX_SS, %ah /* bits 24..31 */
15499 shl $16, %eax
15500 addl %esp, %eax /* the adjusted stack pointer */
15501 pushl $__KERNEL_DS
15502 @@ -644,7 +881,7 @@ ENTRY(irq_entries_start)
15503 jmp common_interrupt
15504 .align 8
15505 .endr
15506 -END(irq_entries_start)
15507 +ENDPROC(irq_entries_start)
15508
15509 /*
15510 * the CPU automatically disables interrupts when executing an IRQ vector,
15511 @@ -691,7 +928,7 @@ ENTRY(coprocessor_error)
15512 pushl $0
15513 pushl $do_coprocessor_error
15514 jmp error_code
15515 -END(coprocessor_error)
15516 +ENDPROC(coprocessor_error)
15517
15518 ENTRY(simd_coprocessor_error)
15519 ASM_CLAC
15520 @@ -705,25 +942,25 @@ ENTRY(simd_coprocessor_error)
15521 pushl $do_simd_coprocessor_error
15522 #endif
15523 jmp error_code
15524 -END(simd_coprocessor_error)
15525 +ENDPROC(simd_coprocessor_error)
15526
15527 ENTRY(device_not_available)
15528 ASM_CLAC
15529 pushl $-1 # mark this as an int
15530 pushl $do_device_not_available
15531 jmp error_code
15532 -END(device_not_available)
15533 +ENDPROC(device_not_available)
15534
15535 #ifdef CONFIG_PARAVIRT
15536 ENTRY(native_iret)
15537 iret
15538 _ASM_EXTABLE(native_iret, iret_exc)
15539 -END(native_iret)
15540 +ENDPROC(native_iret)
15541
15542 ENTRY(native_irq_enable_sysexit)
15543 sti
15544 sysexit
15545 -END(native_irq_enable_sysexit)
15546 +ENDPROC(native_irq_enable_sysexit)
15547 #endif
15548
15549 ENTRY(overflow)
15550 @@ -731,59 +968,59 @@ ENTRY(overflow)
15551 pushl $0
15552 pushl $do_overflow
15553 jmp error_code
15554 -END(overflow)
15555 +ENDPROC(overflow)
15556
15557 ENTRY(bounds)
15558 ASM_CLAC
15559 pushl $0
15560 pushl $do_bounds
15561 jmp error_code
15562 -END(bounds)
15563 +ENDPROC(bounds)
15564
15565 ENTRY(invalid_op)
15566 ASM_CLAC
15567 pushl $0
15568 pushl $do_invalid_op
15569 jmp error_code
15570 -END(invalid_op)
15571 +ENDPROC(invalid_op)
15572
15573 ENTRY(coprocessor_segment_overrun)
15574 ASM_CLAC
15575 pushl $0
15576 pushl $do_coprocessor_segment_overrun
15577 jmp error_code
15578 -END(coprocessor_segment_overrun)
15579 +ENDPROC(coprocessor_segment_overrun)
15580
15581 ENTRY(invalid_TSS)
15582 ASM_CLAC
15583 pushl $do_invalid_TSS
15584 jmp error_code
15585 -END(invalid_TSS)
15586 +ENDPROC(invalid_TSS)
15587
15588 ENTRY(segment_not_present)
15589 ASM_CLAC
15590 pushl $do_segment_not_present
15591 jmp error_code
15592 -END(segment_not_present)
15593 +ENDPROC(segment_not_present)
15594
15595 ENTRY(stack_segment)
15596 ASM_CLAC
15597 pushl $do_stack_segment
15598 jmp error_code
15599 -END(stack_segment)
15600 +ENDPROC(stack_segment)
15601
15602 ENTRY(alignment_check)
15603 ASM_CLAC
15604 pushl $do_alignment_check
15605 jmp error_code
15606 -END(alignment_check)
15607 +ENDPROC(alignment_check)
15608
15609 ENTRY(divide_error)
15610 ASM_CLAC
15611 pushl $0 # no error code
15612 pushl $do_divide_error
15613 jmp error_code
15614 -END(divide_error)
15615 +ENDPROC(divide_error)
15616
15617 #ifdef CONFIG_X86_MCE
15618 ENTRY(machine_check)
15619 @@ -791,7 +1028,7 @@ ENTRY(machine_check)
15620 pushl $0
15621 pushl machine_check_vector
15622 jmp error_code
15623 -END(machine_check)
15624 +ENDPROC(machine_check)
15625 #endif
15626
15627 ENTRY(spurious_interrupt_bug)
15628 @@ -799,7 +1036,7 @@ ENTRY(spurious_interrupt_bug)
15629 pushl $0
15630 pushl $do_spurious_interrupt_bug
15631 jmp error_code
15632 -END(spurious_interrupt_bug)
15633 +ENDPROC(spurious_interrupt_bug)
15634
15635 #ifdef CONFIG_XEN
15636 /*
15637 @@ -906,7 +1143,7 @@ BUILD_INTERRUPT3(hyperv_callback_vector, HYPERVISOR_CALLBACK_VECTOR,
15638
15639 ENTRY(mcount)
15640 ret
15641 -END(mcount)
15642 +ENDPROC(mcount)
15643
15644 ENTRY(ftrace_caller)
15645 pushl %eax
15646 @@ -936,7 +1173,7 @@ ftrace_graph_call:
15647 .globl ftrace_stub
15648 ftrace_stub:
15649 ret
15650 -END(ftrace_caller)
15651 +ENDPROC(ftrace_caller)
15652
15653 ENTRY(ftrace_regs_caller)
15654 pushf /* push flags before compare (in cs location) */
15655 @@ -1034,7 +1271,7 @@ trace:
15656 popl %ecx
15657 popl %eax
15658 jmp ftrace_stub
15659 -END(mcount)
15660 +ENDPROC(mcount)
15661 #endif /* CONFIG_DYNAMIC_FTRACE */
15662 #endif /* CONFIG_FUNCTION_TRACER */
15663
15664 @@ -1052,7 +1289,7 @@ ENTRY(ftrace_graph_caller)
15665 popl %ecx
15666 popl %eax
15667 ret
15668 -END(ftrace_graph_caller)
15669 +ENDPROC(ftrace_graph_caller)
15670
15671 .globl return_to_handler
15672 return_to_handler:
15673 @@ -1100,14 +1337,17 @@ error_code:
15674 movl $-1, PT_ORIG_EAX(%esp) # no syscall to restart
15675 REG_TO_PTGS %ecx
15676 SET_KERNEL_GS %ecx
15677 - movl $(__USER_DS), %ecx
15678 + movl $(__KERNEL_DS), %ecx
15679 movl %ecx, %ds
15680 movl %ecx, %es
15681 +
15682 + pax_enter_kernel
15683 +
15684 TRACE_IRQS_OFF
15685 movl %esp, %eax # pt_regs pointer
15686 call *%edi
15687 jmp ret_from_exception
15688 -END(page_fault)
15689 +ENDPROC(page_fault)
15690
15691 /*
15692 * Debug traps and NMI can happen at the one SYSENTER instruction
15693 @@ -1145,7 +1385,7 @@ debug_stack_correct:
15694 movl %esp, %eax # pt_regs pointer
15695 call do_debug
15696 jmp ret_from_exception
15697 -END(debug)
15698 +ENDPROC(debug)
15699
15700 /*
15701 * NMI is doubly nasty. It can happen _while_ we're handling
15702 @@ -1184,6 +1424,9 @@ nmi_stack_correct:
15703 xorl %edx, %edx # zero error code
15704 movl %esp, %eax # pt_regs pointer
15705 call do_nmi
15706 +
15707 + pax_exit_kernel
15708 +
15709 jmp restore_all_notrace
15710
15711 nmi_stack_fixup:
15712 @@ -1217,11 +1460,14 @@ nmi_espfix_stack:
15713 FIXUP_ESPFIX_STACK # %eax == %esp
15714 xorl %edx, %edx # zero error code
15715 call do_nmi
15716 +
15717 + pax_exit_kernel
15718 +
15719 RESTORE_REGS
15720 lss 12+4(%esp), %esp # back to espfix stack
15721 jmp irq_return
15722 #endif
15723 -END(nmi)
15724 +ENDPROC(nmi)
15725
15726 ENTRY(int3)
15727 ASM_CLAC
15728 @@ -1232,17 +1478,17 @@ ENTRY(int3)
15729 movl %esp, %eax # pt_regs pointer
15730 call do_int3
15731 jmp ret_from_exception
15732 -END(int3)
15733 +ENDPROC(int3)
15734
15735 ENTRY(general_protection)
15736 pushl $do_general_protection
15737 jmp error_code
15738 -END(general_protection)
15739 +ENDPROC(general_protection)
15740
15741 #ifdef CONFIG_KVM_GUEST
15742 ENTRY(async_page_fault)
15743 ASM_CLAC
15744 pushl $do_async_page_fault
15745 jmp error_code
15746 -END(async_page_fault)
15747 +ENDPROC(async_page_fault)
15748 #endif
15749 diff --git a/arch/x86/entry/entry_64.S b/arch/x86/entry/entry_64.S
15750 index d330840..4f1925e 100644
15751 --- a/arch/x86/entry/entry_64.S
15752 +++ b/arch/x86/entry/entry_64.S
15753 @@ -37,6 +37,8 @@
15754 #include <asm/smap.h>
15755 #include <asm/pgtable_types.h>
15756 #include <linux/err.h>
15757 +#include <asm/pgtable.h>
15758 +#include <asm/alternative-asm.h>
15759
15760 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
15761 #include <linux/elf-em.h>
15762 @@ -54,6 +56,402 @@ ENTRY(native_usergs_sysret64)
15763 ENDPROC(native_usergs_sysret64)
15764 #endif /* CONFIG_PARAVIRT */
15765
15766 + .macro ljmpq sel, off
15767 +#if defined(CONFIG_MPSC) || defined(CONFIG_MCORE2) || defined (CONFIG_MATOM)
15768 + .byte 0x48; ljmp *1234f(%rip)
15769 + .pushsection .rodata
15770 + .align 16
15771 + 1234: .quad \off; .word \sel
15772 + .popsection
15773 +#else
15774 + pushq $\sel
15775 + pushq $\off
15776 + lretq
15777 +#endif
15778 + .endm
15779 +
15780 + .macro pax_enter_kernel
15781 + pax_set_fptr_mask
15782 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15783 + call pax_enter_kernel
15784 +#endif
15785 + .endm
15786 +
15787 + .macro pax_exit_kernel
15788 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15789 + call pax_exit_kernel
15790 +#endif
15791 + .endm
15792 +
15793 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
15794 +ENTRY(pax_enter_kernel)
15795 + pushq %rdi
15796 +
15797 +#ifdef CONFIG_PARAVIRT
15798 + PV_SAVE_REGS(CLBR_RDI)
15799 +#endif
15800 +
15801 +#ifdef CONFIG_PAX_KERNEXEC
15802 + GET_CR0_INTO_RDI
15803 + bts $X86_CR0_WP_BIT,%rdi
15804 + jnc 3f
15805 + mov %cs,%edi
15806 + cmp $__KERNEL_CS,%edi
15807 + jnz 2f
15808 +1:
15809 +#endif
15810 +
15811 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15812 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15813 + GET_CR3_INTO_RDI
15814 + cmp $0,%dil
15815 + jnz 112f
15816 + mov $__KERNEL_DS,%edi
15817 + mov %edi,%ss
15818 + jmp 111f
15819 +112: cmp $1,%dil
15820 + jz 113f
15821 + ud2
15822 +113: sub $4097,%rdi
15823 + bts $63,%rdi
15824 + SET_RDI_INTO_CR3
15825 + mov $__UDEREF_KERNEL_DS,%edi
15826 + mov %edi,%ss
15827 +111:
15828 +#endif
15829 +
15830 +#ifdef CONFIG_PARAVIRT
15831 + PV_RESTORE_REGS(CLBR_RDI)
15832 +#endif
15833 +
15834 + popq %rdi
15835 + pax_force_retaddr
15836 + retq
15837 +
15838 +#ifdef CONFIG_PAX_KERNEXEC
15839 +2: ljmpq __KERNEL_CS,1b
15840 +3: ljmpq __KERNEXEC_KERNEL_CS,4f
15841 +4: SET_RDI_INTO_CR0
15842 + jmp 1b
15843 +#endif
15844 +ENDPROC(pax_enter_kernel)
15845 +
15846 +ENTRY(pax_exit_kernel)
15847 + pushq %rdi
15848 +
15849 +#ifdef CONFIG_PARAVIRT
15850 + PV_SAVE_REGS(CLBR_RDI)
15851 +#endif
15852 +
15853 +#ifdef CONFIG_PAX_KERNEXEC
15854 + mov %cs,%rdi
15855 + cmp $__KERNEXEC_KERNEL_CS,%edi
15856 + jz 2f
15857 + GET_CR0_INTO_RDI
15858 + bts $X86_CR0_WP_BIT,%rdi
15859 + jnc 4f
15860 +1:
15861 +#endif
15862 +
15863 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15864 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15865 + mov %ss,%edi
15866 + cmp $__UDEREF_KERNEL_DS,%edi
15867 + jnz 111f
15868 + GET_CR3_INTO_RDI
15869 + cmp $0,%dil
15870 + jz 112f
15871 + ud2
15872 +112: add $4097,%rdi
15873 + bts $63,%rdi
15874 + SET_RDI_INTO_CR3
15875 + mov $__KERNEL_DS,%edi
15876 + mov %edi,%ss
15877 +111:
15878 +#endif
15879 +
15880 +#ifdef CONFIG_PARAVIRT
15881 + PV_RESTORE_REGS(CLBR_RDI);
15882 +#endif
15883 +
15884 + popq %rdi
15885 + pax_force_retaddr
15886 + retq
15887 +
15888 +#ifdef CONFIG_PAX_KERNEXEC
15889 +2: GET_CR0_INTO_RDI
15890 + btr $X86_CR0_WP_BIT,%rdi
15891 + jnc 4f
15892 + ljmpq __KERNEL_CS,3f
15893 +3: SET_RDI_INTO_CR0
15894 + jmp 1b
15895 +4: ud2
15896 + jmp 4b
15897 +#endif
15898 +ENDPROC(pax_exit_kernel)
15899 +#endif
15900 +
15901 + .macro pax_enter_kernel_user
15902 + pax_set_fptr_mask
15903 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15904 + call pax_enter_kernel_user
15905 +#endif
15906 + .endm
15907 +
15908 + .macro pax_exit_kernel_user
15909 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15910 + call pax_exit_kernel_user
15911 +#endif
15912 +#ifdef CONFIG_PAX_RANDKSTACK
15913 + pushq %rax
15914 + pushq %r11
15915 + call pax_randomize_kstack
15916 + popq %r11
15917 + popq %rax
15918 +#endif
15919 + .endm
15920 +
15921 +#ifdef CONFIG_PAX_MEMORY_UDEREF
15922 +ENTRY(pax_enter_kernel_user)
15923 + pushq %rdi
15924 + pushq %rbx
15925 +
15926 +#ifdef CONFIG_PARAVIRT
15927 + PV_SAVE_REGS(CLBR_RDI)
15928 +#endif
15929 +
15930 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
15931 + GET_CR3_INTO_RDI
15932 + cmp $1,%dil
15933 + jnz 4f
15934 + sub $4097,%rdi
15935 + bts $63,%rdi
15936 + SET_RDI_INTO_CR3
15937 + jmp 3f
15938 +111:
15939 +
15940 + GET_CR3_INTO_RDI
15941 + mov %rdi,%rbx
15942 + add $__START_KERNEL_map,%rbx
15943 + sub phys_base(%rip),%rbx
15944 +
15945 +#ifdef CONFIG_PARAVIRT
15946 + cmpl $0, pv_info+PARAVIRT_enabled
15947 + jz 1f
15948 + pushq %rdi
15949 + i = 0
15950 + .rept USER_PGD_PTRS
15951 + mov i*8(%rbx),%rsi
15952 + mov $0,%sil
15953 + lea i*8(%rbx),%rdi
15954 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_set_pgd_batched)
15955 + i = i + 1
15956 + .endr
15957 + popq %rdi
15958 + jmp 2f
15959 +1:
15960 +#endif
15961 +
15962 + i = 0
15963 + .rept USER_PGD_PTRS
15964 + movb $0,i*8(%rbx)
15965 + i = i + 1
15966 + .endr
15967 +
15968 +2: SET_RDI_INTO_CR3
15969 +
15970 +#ifdef CONFIG_PAX_KERNEXEC
15971 + GET_CR0_INTO_RDI
15972 + bts $X86_CR0_WP_BIT,%rdi
15973 + SET_RDI_INTO_CR0
15974 +#endif
15975 +
15976 +3:
15977 +
15978 +#ifdef CONFIG_PARAVIRT
15979 + PV_RESTORE_REGS(CLBR_RDI)
15980 +#endif
15981 +
15982 + popq %rbx
15983 + popq %rdi
15984 + pax_force_retaddr
15985 + retq
15986 +4: ud2
15987 +ENDPROC(pax_enter_kernel_user)
15988 +
15989 +ENTRY(pax_exit_kernel_user)
15990 + pushq %rdi
15991 + pushq %rbx
15992 +
15993 +#ifdef CONFIG_PARAVIRT
15994 + PV_SAVE_REGS(CLBR_RDI)
15995 +#endif
15996 +
15997 + GET_CR3_INTO_RDI
15998 + ALTERNATIVE "jmp 1f", "", X86_FEATURE_PCID
15999 + cmp $0,%dil
16000 + jnz 3f
16001 + add $4097,%rdi
16002 + bts $63,%rdi
16003 + SET_RDI_INTO_CR3
16004 + jmp 2f
16005 +1:
16006 +
16007 + mov %rdi,%rbx
16008 +
16009 +#ifdef CONFIG_PAX_KERNEXEC
16010 + GET_CR0_INTO_RDI
16011 + btr $X86_CR0_WP_BIT,%rdi
16012 + jnc 3f
16013 + SET_RDI_INTO_CR0
16014 +#endif
16015 +
16016 + add $__START_KERNEL_map,%rbx
16017 + sub phys_base(%rip),%rbx
16018 +
16019 +#ifdef CONFIG_PARAVIRT
16020 + cmpl $0, pv_info+PARAVIRT_enabled
16021 + jz 1f
16022 + i = 0
16023 + .rept USER_PGD_PTRS
16024 + mov i*8(%rbx),%rsi
16025 + mov $0x67,%sil
16026 + lea i*8(%rbx),%rdi
16027 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_set_pgd_batched)
16028 + i = i + 1
16029 + .endr
16030 + jmp 2f
16031 +1:
16032 +#endif
16033 +
16034 + i = 0
16035 + .rept USER_PGD_PTRS
16036 + movb $0x67,i*8(%rbx)
16037 + i = i + 1
16038 + .endr
16039 +2:
16040 +
16041 +#ifdef CONFIG_PARAVIRT
16042 + PV_RESTORE_REGS(CLBR_RDI)
16043 +#endif
16044 +
16045 + popq %rbx
16046 + popq %rdi
16047 + pax_force_retaddr
16048 + retq
16049 +3: ud2
16050 +ENDPROC(pax_exit_kernel_user)
16051 +#endif
16052 +
16053 + .macro pax_enter_kernel_nmi
16054 + pax_set_fptr_mask
16055 +
16056 +#ifdef CONFIG_PAX_KERNEXEC
16057 + GET_CR0_INTO_RDI
16058 + bts $X86_CR0_WP_BIT,%rdi
16059 + jc 110f
16060 + SET_RDI_INTO_CR0
16061 + or $2,%ebx
16062 +110:
16063 +#endif
16064 +
16065 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16066 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
16067 + GET_CR3_INTO_RDI
16068 + cmp $0,%dil
16069 + jz 111f
16070 + sub $4097,%rdi
16071 + or $4,%ebx
16072 + bts $63,%rdi
16073 + SET_RDI_INTO_CR3
16074 + mov $__UDEREF_KERNEL_DS,%edi
16075 + mov %edi,%ss
16076 +111:
16077 +#endif
16078 + .endm
16079 +
16080 + .macro pax_exit_kernel_nmi
16081 +#ifdef CONFIG_PAX_KERNEXEC
16082 + btr $1,%ebx
16083 + jnc 110f
16084 + GET_CR0_INTO_RDI
16085 + btr $X86_CR0_WP_BIT,%rdi
16086 + SET_RDI_INTO_CR0
16087 +110:
16088 +#endif
16089 +
16090 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16091 + ALTERNATIVE "jmp 111f", "", X86_FEATURE_PCID
16092 + btr $2,%ebx
16093 + jnc 111f
16094 + GET_CR3_INTO_RDI
16095 + add $4097,%rdi
16096 + bts $63,%rdi
16097 + SET_RDI_INTO_CR3
16098 + mov $__KERNEL_DS,%edi
16099 + mov %edi,%ss
16100 +111:
16101 +#endif
16102 + .endm
16103 +
16104 + .macro pax_erase_kstack
16105 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
16106 + call pax_erase_kstack
16107 +#endif
16108 + .endm
16109 +
16110 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
16111 +ENTRY(pax_erase_kstack)
16112 + pushq %rdi
16113 + pushq %rcx
16114 + pushq %rax
16115 + pushq %r11
16116 +
16117 + GET_THREAD_INFO(%r11)
16118 + mov TI_lowest_stack(%r11), %rdi
16119 + mov $-0xBEEF, %rax
16120 + std
16121 +
16122 +1: mov %edi, %ecx
16123 + and $THREAD_SIZE_asm - 1, %ecx
16124 + shr $3, %ecx
16125 + repne scasq
16126 + jecxz 2f
16127 +
16128 + cmp $2*8, %ecx
16129 + jc 2f
16130 +
16131 + mov $2*8, %ecx
16132 + repe scasq
16133 + jecxz 2f
16134 + jne 1b
16135 +
16136 +2: cld
16137 + or $2*8, %rdi
16138 + mov %esp, %ecx
16139 + sub %edi, %ecx
16140 +
16141 + cmp $THREAD_SIZE_asm, %rcx
16142 + jb 3f
16143 + ud2
16144 +3:
16145 +
16146 + shr $3, %ecx
16147 + rep stosq
16148 +
16149 + mov TI_task_thread_sp0(%r11), %rdi
16150 + sub $256, %rdi
16151 + mov %rdi, TI_lowest_stack(%r11)
16152 +
16153 + popq %r11
16154 + popq %rax
16155 + popq %rcx
16156 + popq %rdi
16157 + pax_force_retaddr
16158 + ret
16159 +ENDPROC(pax_erase_kstack)
16160 +#endif
16161 +
16162 .macro TRACE_IRQS_IRETQ
16163 #ifdef CONFIG_TRACE_IRQFLAGS
16164 bt $9, EFLAGS(%rsp) /* interrupts off? */
16165 @@ -89,7 +487,7 @@ ENDPROC(native_usergs_sysret64)
16166 .endm
16167
16168 .macro TRACE_IRQS_IRETQ_DEBUG
16169 - bt $9, EFLAGS(%rsp) /* interrupts off? */
16170 + bt $X86_EFLAGS_IF_BIT, EFLAGS(%rsp) /* interrupts off? */
16171 jnc 1f
16172 TRACE_IRQS_ON_DEBUG
16173 1:
16174 @@ -149,14 +547,6 @@ GLOBAL(entry_SYSCALL_64_after_swapgs)
16175 /* Construct struct pt_regs on stack */
16176 pushq $__USER_DS /* pt_regs->ss */
16177 pushq PER_CPU_VAR(rsp_scratch) /* pt_regs->sp */
16178 - /*
16179 - * Re-enable interrupts.
16180 - * We use 'rsp_scratch' as a scratch space, hence irq-off block above
16181 - * must execute atomically in the face of possible interrupt-driven
16182 - * task preemption. We must enable interrupts only after we're done
16183 - * with using rsp_scratch:
16184 - */
16185 - ENABLE_INTERRUPTS(CLBR_NONE)
16186 pushq %r11 /* pt_regs->flags */
16187 pushq $__USER_CS /* pt_regs->cs */
16188 pushq %rcx /* pt_regs->ip */
16189 @@ -172,7 +562,27 @@ GLOBAL(entry_SYSCALL_64_after_swapgs)
16190 pushq %r11 /* pt_regs->r11 */
16191 sub $(6*8), %rsp /* pt_regs->bp, bx, r12-15 not saved */
16192
16193 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16194 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16195 + movq %r12, R12(%rsp)
16196 +#endif
16197 +
16198 + pax_enter_kernel_user
16199 +
16200 +#ifdef CONFIG_PAX_RANDKSTACK
16201 + pax_erase_kstack
16202 +#endif
16203 +
16204 + /*
16205 + * Re-enable interrupts.
16206 + * We use 'rsp_scratch' as a scratch space, hence irq-off block above
16207 + * must execute atomically in the face of possible interrupt-driven
16208 + * task preemption. We must enable interrupts only after we're done
16209 + * with using rsp_scratch:
16210 + */
16211 + ENABLE_INTERRUPTS(CLBR_NONE)
16212 +
16213 + GET_THREAD_INFO(%rcx)
16214 + testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%rcx)
16215 jnz tracesys
16216 entry_SYSCALL_64_fastpath:
16217 #if __SYSCALL_MASK == ~0
16218 @@ -205,9 +615,13 @@ entry_SYSCALL_64_fastpath:
16219 * flags (TIF_NOTIFY_RESUME, TIF_USER_RETURN_NOTIFY, etc) set is
16220 * very bad.
16221 */
16222 - testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16223 + GET_THREAD_INFO(%rcx)
16224 + testl $_TIF_ALLWORK_MASK, TI_flags(%rcx)
16225 jnz int_ret_from_sys_call_irqs_off /* Go to the slow path */
16226
16227 + pax_exit_kernel_user
16228 + pax_erase_kstack
16229 +
16230 RESTORE_C_REGS_EXCEPT_RCX_R11
16231 movq RIP(%rsp), %rcx
16232 movq EFLAGS(%rsp), %r11
16233 @@ -236,6 +650,9 @@ tracesys:
16234 call syscall_trace_enter_phase1
16235 test %rax, %rax
16236 jnz tracesys_phase2 /* if needed, run the slow path */
16237 +
16238 + pax_erase_kstack
16239 +
16240 RESTORE_C_REGS_EXCEPT_RAX /* else restore clobbered regs */
16241 movq ORIG_RAX(%rsp), %rax
16242 jmp entry_SYSCALL_64_fastpath /* and return to the fast path */
16243 @@ -247,6 +664,8 @@ tracesys_phase2:
16244 movq %rax, %rdx
16245 call syscall_trace_enter_phase2
16246
16247 + pax_erase_kstack
16248 +
16249 /*
16250 * Reload registers from stack in case ptrace changed them.
16251 * We don't reload %rax because syscall_trace_entry_phase2() returned
16252 @@ -284,6 +703,8 @@ GLOBAL(int_with_check)
16253 andl %edi, %edx
16254 jnz int_careful
16255 andl $~TS_COMPAT, TI_status(%rcx)
16256 + pax_exit_kernel_user
16257 + pax_erase_kstack
16258 jmp syscall_return
16259
16260 /*
16261 @@ -407,14 +828,14 @@ syscall_return_via_sysret:
16262 opportunistic_sysret_failed:
16263 SWAPGS
16264 jmp restore_c_regs_and_iret
16265 -END(entry_SYSCALL_64)
16266 +ENDPROC(entry_SYSCALL_64)
16267
16268
16269 .macro FORK_LIKE func
16270 ENTRY(stub_\func)
16271 SAVE_EXTRA_REGS 8
16272 jmp sys_\func
16273 -END(stub_\func)
16274 +ENDPROC(stub_\func)
16275 .endm
16276
16277 FORK_LIKE clone
16278 @@ -434,7 +855,7 @@ return_from_execve:
16279 ZERO_EXTRA_REGS
16280 movq %rax, RAX(%rsp)
16281 jmp int_ret_from_sys_call
16282 -END(stub_execve)
16283 +ENDPROC(stub_execve)
16284 /*
16285 * Remaining execve stubs are only 7 bytes long.
16286 * ENTRY() often aligns to 16 bytes, which in this case has no benefits.
16287 @@ -443,7 +864,7 @@ END(stub_execve)
16288 GLOBAL(stub_execveat)
16289 call sys_execveat
16290 jmp return_from_execve
16291 -END(stub_execveat)
16292 +ENDPROC(stub_execveat)
16293
16294 #if defined(CONFIG_X86_X32_ABI) || defined(CONFIG_IA32_EMULATION)
16295 .align 8
16296 @@ -451,15 +872,15 @@ GLOBAL(stub_x32_execve)
16297 GLOBAL(stub32_execve)
16298 call compat_sys_execve
16299 jmp return_from_execve
16300 -END(stub32_execve)
16301 -END(stub_x32_execve)
16302 +ENDPROC(stub32_execve)
16303 +ENDPROC(stub_x32_execve)
16304 .align 8
16305 GLOBAL(stub_x32_execveat)
16306 GLOBAL(stub32_execveat)
16307 call compat_sys_execveat
16308 jmp return_from_execve
16309 -END(stub32_execveat)
16310 -END(stub_x32_execveat)
16311 +ENDPROC(stub32_execveat)
16312 +ENDPROC(stub_x32_execveat)
16313 #endif
16314
16315 /*
16316 @@ -488,7 +909,7 @@ ENTRY(stub_x32_rt_sigreturn)
16317 SAVE_EXTRA_REGS 8
16318 call sys32_x32_rt_sigreturn
16319 jmp return_from_stub
16320 -END(stub_x32_rt_sigreturn)
16321 +ENDPROC(stub_x32_rt_sigreturn)
16322 #endif
16323
16324 /*
16325 @@ -527,7 +948,7 @@ ENTRY(ret_from_fork)
16326 movl $0, RAX(%rsp)
16327 RESTORE_EXTRA_REGS
16328 jmp int_ret_from_sys_call
16329 -END(ret_from_fork)
16330 +ENDPROC(ret_from_fork)
16331
16332 /*
16333 * Build the entry stubs with some assembler magic.
16334 @@ -542,7 +963,7 @@ ENTRY(irq_entries_start)
16335 jmp common_interrupt
16336 .align 8
16337 .endr
16338 -END(irq_entries_start)
16339 +ENDPROC(irq_entries_start)
16340
16341 /*
16342 * Interrupt entry/exit.
16343 @@ -555,21 +976,13 @@ END(irq_entries_start)
16344 /* 0(%rsp): ~(interrupt number) */
16345 .macro interrupt func
16346 cld
16347 - /*
16348 - * Since nothing in interrupt handling code touches r12...r15 members
16349 - * of "struct pt_regs", and since interrupts can nest, we can save
16350 - * four stack slots and simultaneously provide
16351 - * an unwind-friendly stack layout by saving "truncated" pt_regs
16352 - * exactly up to rbp slot, without these members.
16353 - */
16354 - ALLOC_PT_GPREGS_ON_STACK -RBP
16355 - SAVE_C_REGS -RBP
16356 - /* this goes to 0(%rsp) for unwinder, not for saving the value: */
16357 - SAVE_EXTRA_REGS_RBP -RBP
16358 + ALLOC_PT_GPREGS_ON_STACK
16359 + SAVE_C_REGS
16360 + SAVE_EXTRA_REGS
16361
16362 - leaq -RBP(%rsp), %rdi /* arg1 for \func (pointer to pt_regs) */
16363 + movq %rsp, %rdi /* arg1 for \func (pointer to pt_regs) */
16364
16365 - testb $3, CS-RBP(%rsp)
16366 + testb $3, CS(%rsp)
16367 jz 1f
16368 SWAPGS
16369 1:
16370 @@ -584,6 +997,18 @@ END(irq_entries_start)
16371 incl PER_CPU_VAR(irq_count)
16372 cmovzq PER_CPU_VAR(irq_stack_ptr), %rsp
16373 pushq %rsi
16374 +
16375 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16376 + testb $3, CS(%rdi)
16377 + jnz 1f
16378 + pax_enter_kernel
16379 + jmp 2f
16380 +1: pax_enter_kernel_user
16381 +2:
16382 +#else
16383 + pax_enter_kernel
16384 +#endif
16385 +
16386 /* We entered an interrupt context - irqs are off: */
16387 TRACE_IRQS_OFF
16388
16389 @@ -608,7 +1033,7 @@ ret_from_intr:
16390 /* Restore saved previous stack */
16391 popq %rsi
16392 /* return code expects complete pt_regs - adjust rsp accordingly: */
16393 - leaq -RBP(%rsi), %rsp
16394 + movq %rsi, %rsp
16395
16396 testb $3, CS(%rsp)
16397 jz retint_kernel
16398 @@ -630,6 +1055,8 @@ retint_swapgs: /* return to user-space */
16399 * The iretq could re-enable interrupts:
16400 */
16401 DISABLE_INTERRUPTS(CLBR_ANY)
16402 + pax_exit_kernel_user
16403 +# pax_erase_kstack
16404 TRACE_IRQS_IRETQ
16405
16406 SWAPGS
16407 @@ -648,6 +1075,21 @@ retint_kernel:
16408 jmp 0b
16409 1:
16410 #endif
16411 +
16412 + pax_exit_kernel
16413 +
16414 +#if defined(CONFIG_EFI) && defined(CONFIG_PAX_KERNEXEC)
16415 + /* This is a quirk to allow IRQs/NMIs/MCEs during early EFI setup,
16416 + * namely calling EFI runtime services with a phys mapping. We're
16417 + * starting off with NOPs and patch in the real instrumentation
16418 + * (BTS/OR) before starting any userland process; even before starting
16419 + * up the APs.
16420 + */
16421 + ALTERNATIVE "", "pax_force_retaddr 16*8", X86_FEATURE_ALWAYS
16422 +#else
16423 + pax_force_retaddr RIP
16424 +#endif
16425 +
16426 /*
16427 * The iretq could re-enable interrupts:
16428 */
16429 @@ -689,15 +1131,15 @@ native_irq_return_ldt:
16430 SWAPGS
16431 movq PER_CPU_VAR(espfix_waddr), %rdi
16432 movq %rax, (0*8)(%rdi) /* RAX */
16433 - movq (2*8)(%rsp), %rax /* RIP */
16434 + movq (2*8 + RIP-RIP)(%rsp), %rax /* RIP */
16435 movq %rax, (1*8)(%rdi)
16436 - movq (3*8)(%rsp), %rax /* CS */
16437 + movq (2*8 + CS-RIP)(%rsp), %rax /* CS */
16438 movq %rax, (2*8)(%rdi)
16439 - movq (4*8)(%rsp), %rax /* RFLAGS */
16440 + movq (2*8 + EFLAGS-RIP)(%rsp), %rax /* RFLAGS */
16441 movq %rax, (3*8)(%rdi)
16442 - movq (6*8)(%rsp), %rax /* SS */
16443 + movq (2*8 + SS-RIP)(%rsp), %rax /* SS */
16444 movq %rax, (5*8)(%rdi)
16445 - movq (5*8)(%rsp), %rax /* RSP */
16446 + movq (2*8 + RSP-RIP)(%rsp), %rax /* RSP */
16447 movq %rax, (4*8)(%rdi)
16448 andl $0xffff0000, %eax
16449 popq %rdi
16450 @@ -738,7 +1180,7 @@ retint_signal:
16451 GET_THREAD_INFO(%rcx)
16452 jmp retint_with_reschedule
16453
16454 -END(common_interrupt)
16455 +ENDPROC(common_interrupt)
16456
16457 /*
16458 * APIC interrupts.
16459 @@ -750,7 +1192,7 @@ ENTRY(\sym)
16460 .Lcommon_\sym:
16461 interrupt \do_sym
16462 jmp ret_from_intr
16463 -END(\sym)
16464 +ENDPROC(\sym)
16465 .endm
16466
16467 #ifdef CONFIG_TRACING
16468 @@ -815,7 +1257,7 @@ apicinterrupt IRQ_WORK_VECTOR irq_work_interrupt smp_irq_work_interrupt
16469 /*
16470 * Exception entry points.
16471 */
16472 -#define CPU_TSS_IST(x) PER_CPU_VAR(cpu_tss) + (TSS_ist + ((x) - 1) * 8)
16473 +#define CPU_TSS_IST(x) (TSS_ist + ((x) - 1) * 8)(%r13)
16474
16475 .macro idtentry sym do_sym has_error_code:req paranoid=0 shift_ist=-1
16476 ENTRY(\sym)
16477 @@ -862,6 +1304,12 @@ ENTRY(\sym)
16478 .endif
16479
16480 .if \shift_ist != -1
16481 +#ifdef CONFIG_SMP
16482 + imul $TSS_size, PER_CPU_VAR(cpu_number), %r13d
16483 + lea cpu_tss(%r13), %r13
16484 +#else
16485 + lea cpu_tss(%rip), %r13
16486 +#endif
16487 subq $EXCEPTION_STKSZ, CPU_TSS_IST(\shift_ist)
16488 .endif
16489
16490 @@ -905,7 +1353,7 @@ ENTRY(\sym)
16491
16492 jmp error_exit /* %ebx: no swapgs flag */
16493 .endif
16494 -END(\sym)
16495 +ENDPROC(\sym)
16496 .endm
16497
16498 #ifdef CONFIG_TRACING
16499 @@ -947,8 +1395,9 @@ gs_change:
16500 2: mfence /* workaround */
16501 SWAPGS
16502 popfq
16503 + pax_force_retaddr
16504 ret
16505 -END(native_load_gs_index)
16506 +ENDPROC(native_load_gs_index)
16507
16508 _ASM_EXTABLE(gs_change, bad_gs)
16509 .section .fixup, "ax"
16510 @@ -970,8 +1419,9 @@ ENTRY(do_softirq_own_stack)
16511 call __do_softirq
16512 leaveq
16513 decl PER_CPU_VAR(irq_count)
16514 + pax_force_retaddr
16515 ret
16516 -END(do_softirq_own_stack)
16517 +ENDPROC(do_softirq_own_stack)
16518
16519 #ifdef CONFIG_XEN
16520 idtentry xen_hypervisor_callback xen_do_hypervisor_callback has_error_code=0
16521 @@ -1007,7 +1457,7 @@ ENTRY(xen_do_hypervisor_callback) /* do_hypervisor_callback(struct *pt_regs) */
16522 call xen_maybe_preempt_hcall
16523 #endif
16524 jmp error_exit
16525 -END(xen_do_hypervisor_callback)
16526 +ENDPROC(xen_do_hypervisor_callback)
16527
16528 /*
16529 * Hypervisor uses this for application faults while it executes.
16530 @@ -1052,7 +1502,7 @@ ENTRY(xen_failsafe_callback)
16531 SAVE_C_REGS
16532 SAVE_EXTRA_REGS
16533 jmp error_exit
16534 -END(xen_failsafe_callback)
16535 +ENDPROC(xen_failsafe_callback)
16536
16537 apicinterrupt3 HYPERVISOR_CALLBACK_VECTOR \
16538 xen_hvm_callback_vector xen_evtchn_do_upcall
16539 @@ -1101,8 +1551,36 @@ ENTRY(paranoid_entry)
16540 js 1f /* negative -> in kernel */
16541 SWAPGS
16542 xorl %ebx, %ebx
16543 -1: ret
16544 -END(paranoid_entry)
16545 +1:
16546 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16547 + testb $3, CS+8(%rsp)
16548 + jnz 1f
16549 + pax_enter_kernel
16550 + jmp 2f
16551 +1: pax_enter_kernel_user
16552 +2:
16553 +#else
16554 + pax_enter_kernel
16555 +#endif
16556 + pax_force_retaddr
16557 + ret
16558 +ENDPROC(paranoid_entry)
16559 +
16560 +ENTRY(paranoid_entry_nmi)
16561 + cld
16562 + SAVE_C_REGS 8
16563 + SAVE_EXTRA_REGS 8
16564 + movl $1, %ebx
16565 + movl $MSR_GS_BASE, %ecx
16566 + rdmsr
16567 + testl %edx, %edx
16568 + js 1f /* negative -> in kernel */
16569 + SWAPGS
16570 + xorl %ebx, %ebx
16571 +1: pax_enter_kernel_nmi
16572 + pax_force_retaddr
16573 + ret
16574 +ENDPROC(paranoid_entry_nmi)
16575
16576 /*
16577 * "Paranoid" exit path from exception stack. This is invoked
16578 @@ -1119,19 +1597,26 @@ END(paranoid_entry)
16579 ENTRY(paranoid_exit)
16580 DISABLE_INTERRUPTS(CLBR_NONE)
16581 TRACE_IRQS_OFF_DEBUG
16582 - testl %ebx, %ebx /* swapgs needed? */
16583 + testl $1, %ebx /* swapgs needed? */
16584 jnz paranoid_exit_no_swapgs
16585 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16586 + pax_exit_kernel_user
16587 +#else
16588 + pax_exit_kernel
16589 +#endif
16590 TRACE_IRQS_IRETQ
16591 SWAPGS_UNSAFE_STACK
16592 jmp paranoid_exit_restore
16593 paranoid_exit_no_swapgs:
16594 + pax_exit_kernel
16595 TRACE_IRQS_IRETQ_DEBUG
16596 paranoid_exit_restore:
16597 RESTORE_EXTRA_REGS
16598 RESTORE_C_REGS
16599 REMOVE_PT_GPREGS_FROM_STACK 8
16600 + pax_force_retaddr_bts
16601 INTERRUPT_RETURN
16602 -END(paranoid_exit)
16603 +ENDPROC(paranoid_exit)
16604
16605 /*
16606 * Save all registers in pt_regs, and switch gs if needed.
16607 @@ -1149,7 +1634,18 @@ ENTRY(error_entry)
16608 SWAPGS
16609
16610 error_entry_done:
16611 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16612 + testb $3, CS+8(%rsp)
16613 + jnz 1f
16614 + pax_enter_kernel
16615 + jmp 2f
16616 +1: pax_enter_kernel_user
16617 +2:
16618 +#else
16619 + pax_enter_kernel
16620 +#endif
16621 TRACE_IRQS_OFF
16622 + pax_force_retaddr
16623 ret
16624
16625 /*
16626 @@ -1199,7 +1695,7 @@ error_bad_iret:
16627 mov %rax, %rsp
16628 decl %ebx
16629 jmp error_entry_done
16630 -END(error_entry)
16631 +ENDPROC(error_entry)
16632
16633
16634 /*
16635 @@ -1212,10 +1708,10 @@ ENTRY(error_exit)
16636 RESTORE_EXTRA_REGS
16637 DISABLE_INTERRUPTS(CLBR_NONE)
16638 TRACE_IRQS_OFF
16639 - testl %eax, %eax
16640 + testl $1, %eax
16641 jnz retint_kernel
16642 jmp retint_user
16643 -END(error_exit)
16644 +ENDPROC(error_exit)
16645
16646 /* Runs on exception stack */
16647 ENTRY(nmi)
16648 @@ -1269,6 +1765,8 @@ ENTRY(nmi)
16649 * other IST entries.
16650 */
16651
16652 + ASM_CLAC
16653 +
16654 /* Use %rdx as our temp variable throughout */
16655 pushq %rdx
16656
16657 @@ -1312,6 +1810,12 @@ ENTRY(nmi)
16658 pushq %r14 /* pt_regs->r14 */
16659 pushq %r15 /* pt_regs->r15 */
16660
16661 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
16662 + xorl %ebx, %ebx
16663 +#endif
16664 +
16665 + pax_enter_kernel_nmi
16666 +
16667 /*
16668 * At this point we no longer need to worry about stack damage
16669 * due to nesting -- we're on the normal thread stack and we're
16670 @@ -1322,12 +1826,19 @@ ENTRY(nmi)
16671 movq $-1, %rsi
16672 call do_nmi
16673
16674 + pax_exit_kernel_nmi
16675 +
16676 /*
16677 * Return back to user mode. We must *not* do the normal exit
16678 * work, because we don't want to enable interrupts. Fortunately,
16679 * do_nmi doesn't modify pt_regs.
16680 */
16681 SWAPGS
16682 +
16683 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
16684 + movq RBX(%rsp), %rbx
16685 +#endif
16686 +
16687 jmp restore_c_regs_and_iret
16688
16689 .Lnmi_from_kernel:
16690 @@ -1449,6 +1960,7 @@ nested_nmi_out:
16691 popq %rdx
16692
16693 /* We are returning to kernel mode, so this cannot result in a fault. */
16694 +# pax_force_retaddr_bts
16695 INTERRUPT_RETURN
16696
16697 first_nmi:
16698 @@ -1522,20 +2034,22 @@ end_repeat_nmi:
16699 ALLOC_PT_GPREGS_ON_STACK
16700
16701 /*
16702 - * Use paranoid_entry to handle SWAPGS, but no need to use paranoid_exit
16703 + * Use paranoid_entry_nmi to handle SWAPGS, but no need to use paranoid_exit
16704 * as we should not be calling schedule in NMI context.
16705 * Even with normal interrupts enabled. An NMI should not be
16706 * setting NEED_RESCHED or anything that normal interrupts and
16707 * exceptions might do.
16708 */
16709 - call paranoid_entry
16710 + call paranoid_entry_nmi
16711
16712 /* paranoidentry do_nmi, 0; without TRACE_IRQS_OFF */
16713 movq %rsp, %rdi
16714 movq $-1, %rsi
16715 call do_nmi
16716
16717 - testl %ebx, %ebx /* swapgs needed? */
16718 + pax_exit_kernel_nmi
16719 +
16720 + testl $1, %ebx /* swapgs needed? */
16721 jnz nmi_restore
16722 nmi_swapgs:
16723 SWAPGS_UNSAFE_STACK
16724 @@ -1546,6 +2060,8 @@ nmi_restore:
16725 /* Point RSP at the "iret" frame. */
16726 REMOVE_PT_GPREGS_FROM_STACK 6*8
16727
16728 + pax_force_retaddr_bts
16729 +
16730 /*
16731 * Clear "NMI executing". Set DF first so that we can easily
16732 * distinguish the remaining code between here and IRET from
16733 @@ -1563,9 +2079,9 @@ nmi_restore:
16734 * mode, so this cannot result in a fault.
16735 */
16736 INTERRUPT_RETURN
16737 -END(nmi)
16738 +ENDPROC(nmi)
16739
16740 ENTRY(ignore_sysret)
16741 mov $-ENOSYS, %eax
16742 sysret
16743 -END(ignore_sysret)
16744 +ENDPROC(ignore_sysret)
16745 diff --git a/arch/x86/entry/entry_64_compat.S b/arch/x86/entry/entry_64_compat.S
16746 index a7e257d..3a6ad23 100644
16747 --- a/arch/x86/entry/entry_64_compat.S
16748 +++ b/arch/x86/entry/entry_64_compat.S
16749 @@ -13,8 +13,10 @@
16750 #include <asm/irqflags.h>
16751 #include <asm/asm.h>
16752 #include <asm/smap.h>
16753 +#include <asm/pgtable.h>
16754 #include <linux/linkage.h>
16755 #include <linux/err.h>
16756 +#include <asm/alternative-asm.h>
16757
16758 /* Avoid __ASSEMBLER__'ifying <linux/audit.h> just for this. */
16759 #include <linux/elf-em.h>
16760 @@ -35,6 +37,32 @@ ENTRY(native_usergs_sysret32)
16761 ENDPROC(native_usergs_sysret32)
16762 #endif
16763
16764 + .macro pax_enter_kernel_user
16765 + pax_set_fptr_mask
16766 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16767 + call pax_enter_kernel_user
16768 +#endif
16769 + .endm
16770 +
16771 + .macro pax_exit_kernel_user
16772 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16773 + call pax_exit_kernel_user
16774 +#endif
16775 +#ifdef CONFIG_PAX_RANDKSTACK
16776 + pushq %rax
16777 + pushq %r11
16778 + call pax_randomize_kstack
16779 + popq %r11
16780 + popq %rax
16781 +#endif
16782 + .endm
16783 +
16784 + .macro pax_erase_kstack
16785 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
16786 + call pax_erase_kstack
16787 +#endif
16788 + .endm
16789 +
16790 /*
16791 * 32-bit SYSENTER instruction entry.
16792 *
16793 @@ -65,20 +93,21 @@ ENTRY(entry_SYSENTER_compat)
16794 */
16795 SWAPGS_UNSAFE_STACK
16796 movq PER_CPU_VAR(cpu_current_top_of_stack), %rsp
16797 - ENABLE_INTERRUPTS(CLBR_NONE)
16798
16799 /* Zero-extending 32-bit regs, do not remove */
16800 movl %ebp, %ebp
16801 movl %eax, %eax
16802
16803 - movl ASM_THREAD_INFO(TI_sysenter_return, %rsp, 0), %r10d
16804 + GET_THREAD_INFO(%r11)
16805 + movl TI_sysenter_return(%r11), %r11d
16806
16807 /* Construct struct pt_regs on stack */
16808 pushq $__USER32_DS /* pt_regs->ss */
16809 pushq %rbp /* pt_regs->sp */
16810 pushfq /* pt_regs->flags */
16811 + orl $X86_EFLAGS_IF,(%rsp)
16812 pushq $__USER32_CS /* pt_regs->cs */
16813 - pushq %r10 /* pt_regs->ip = thread_info->sysenter_return */
16814 + pushq %r11 /* pt_regs->ip = thread_info->sysenter_return */
16815 pushq %rax /* pt_regs->orig_ax */
16816 pushq %rdi /* pt_regs->di */
16817 pushq %rsi /* pt_regs->si */
16818 @@ -88,15 +117,37 @@ ENTRY(entry_SYSENTER_compat)
16819 cld
16820 sub $(10*8), %rsp /* pt_regs->r8-11, bp, bx, r12-15 not saved */
16821
16822 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16823 + movq %r12, R12(%rsp)
16824 +#endif
16825 +
16826 + pax_enter_kernel_user
16827 +
16828 +#ifdef CONFIG_PAX_RANDKSTACK
16829 + pax_erase_kstack
16830 +#endif
16831 +
16832 + ENABLE_INTERRUPTS(CLBR_NONE)
16833 +
16834 /*
16835 * no need to do an access_ok check here because rbp has been
16836 * 32-bit zero extended
16837 */
16838 +
16839 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16840 + addq pax_user_shadow_base, %rbp
16841 + ASM_PAX_OPEN_USERLAND
16842 +#endif
16843 +
16844 ASM_STAC
16845 1: movl (%rbp), %ebp
16846 _ASM_EXTABLE(1b, ia32_badarg)
16847 ASM_CLAC
16848
16849 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16850 + ASM_PAX_CLOSE_USERLAND
16851 +#endif
16852 +
16853 /*
16854 * Sysenter doesn't filter flags, so we need to clear NT
16855 * ourselves. To save a few cycles, we can check whether
16856 @@ -106,8 +157,9 @@ ENTRY(entry_SYSENTER_compat)
16857 jnz sysenter_fix_flags
16858 sysenter_flags_fixed:
16859
16860 - orl $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16861 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16862 + GET_THREAD_INFO(%r11)
16863 + orl $TS_COMPAT, TI_status(%r11)
16864 + testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%r11)
16865 jnz sysenter_tracesys
16866
16867 sysenter_do_call:
16868 @@ -123,9 +175,10 @@ sysenter_dispatch:
16869 call *ia32_sys_call_table(, %rax, 8)
16870 movq %rax, RAX(%rsp)
16871 1:
16872 + GET_THREAD_INFO(%r11)
16873 DISABLE_INTERRUPTS(CLBR_NONE)
16874 TRACE_IRQS_OFF
16875 - testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16876 + testl $_TIF_ALLWORK_MASK, TI_flags(%r11)
16877 jnz sysexit_audit
16878 sysexit_from_sys_call:
16879 /*
16880 @@ -138,7 +191,9 @@ sysexit_from_sys_call:
16881 * This code path is still called 'sysexit' because it pairs
16882 * with 'sysenter' and it uses the SYSENTER calling convention.
16883 */
16884 - andl $~TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16885 + pax_exit_kernel_user
16886 + pax_erase_kstack
16887 + andl $~TS_COMPAT, TI_status(%r11)
16888 movl RIP(%rsp), %ecx /* User %eip */
16889 movq RAX(%rsp), %rax
16890 RESTORE_RSI_RDI
16891 @@ -194,6 +249,8 @@ sysexit_from_sys_call:
16892 movl %eax, %edi /* arg1 (RDI) <= syscall number (EAX) */
16893 call __audit_syscall_entry
16894
16895 + pax_erase_kstack
16896 +
16897 /*
16898 * We are going to jump back to the syscall dispatch code.
16899 * Prepare syscall args as required by the 64-bit C ABI.
16900 @@ -209,7 +266,7 @@ sysexit_from_sys_call:
16901 .endm
16902
16903 .macro auditsys_exit exit
16904 - testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16905 + testl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT), TI_flags(%r11)
16906 jnz ia32_ret_from_sys_call
16907 TRACE_IRQS_ON
16908 ENABLE_INTERRUPTS(CLBR_NONE)
16909 @@ -220,10 +277,11 @@ sysexit_from_sys_call:
16910 1: setbe %al /* 1 if error, 0 if not */
16911 movzbl %al, %edi /* zero-extend that into %edi */
16912 call __audit_syscall_exit
16913 + GET_THREAD_INFO(%r11)
16914 movl $(_TIF_ALLWORK_MASK & ~_TIF_SYSCALL_AUDIT), %edi
16915 DISABLE_INTERRUPTS(CLBR_NONE)
16916 TRACE_IRQS_OFF
16917 - testl %edi, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16918 + testl %edi, TI_flags(%r11)
16919 jz \exit
16920 xorl %eax, %eax /* Do not leak kernel information */
16921 movq %rax, R11(%rsp)
16922 @@ -249,7 +307,7 @@ sysenter_fix_flags:
16923
16924 sysenter_tracesys:
16925 #ifdef CONFIG_AUDITSYSCALL
16926 - testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16927 + testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), TI_flags(%r11)
16928 jz sysenter_auditsys
16929 #endif
16930 SAVE_EXTRA_REGS
16931 @@ -269,6 +327,9 @@ sysenter_tracesys:
16932 movl %eax, %eax /* zero extension */
16933
16934 RESTORE_EXTRA_REGS
16935 +
16936 + pax_erase_kstack
16937 +
16938 jmp sysenter_do_call
16939 ENDPROC(entry_SYSENTER_compat)
16940
16941 @@ -311,7 +372,6 @@ ENTRY(entry_SYSCALL_compat)
16942 SWAPGS_UNSAFE_STACK
16943 movl %esp, %r8d
16944 movq PER_CPU_VAR(cpu_current_top_of_stack), %rsp
16945 - ENABLE_INTERRUPTS(CLBR_NONE)
16946
16947 /* Zero-extending 32-bit regs, do not remove */
16948 movl %eax, %eax
16949 @@ -331,16 +391,41 @@ ENTRY(entry_SYSCALL_compat)
16950 pushq $-ENOSYS /* pt_regs->ax */
16951 sub $(10*8), %rsp /* pt_regs->r8-11, bp, bx, r12-15 not saved */
16952
16953 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
16954 + movq %r12, R12(%rsp)
16955 +#endif
16956 +
16957 + pax_enter_kernel_user
16958 +
16959 +#ifdef CONFIG_PAX_RANDKSTACK
16960 + pax_erase_kstack
16961 +#endif
16962 +
16963 + ENABLE_INTERRUPTS(CLBR_NONE)
16964 +
16965 /*
16966 * No need to do an access_ok check here because r8 has been
16967 * 32-bit zero extended:
16968 */
16969 +
16970 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16971 + ASM_PAX_OPEN_USERLAND
16972 + movq pax_user_shadow_base, %r8
16973 + addq RSP(%rsp), %r8
16974 +#endif
16975 +
16976 ASM_STAC
16977 1: movl (%r8), %r9d
16978 _ASM_EXTABLE(1b, ia32_badarg)
16979 ASM_CLAC
16980 - orl $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
16981 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
16982 +
16983 +#ifdef CONFIG_PAX_MEMORY_UDEREF
16984 + ASM_PAX_CLOSE_USERLAND
16985 +#endif
16986 +
16987 + GET_THREAD_INFO(%r11)
16988 + orl $TS_COMPAT,TI_status(%r11)
16989 + testl $_TIF_WORK_SYSCALL_ENTRY,TI_flags(%r11)
16990 jnz cstar_tracesys
16991
16992 cstar_do_call:
16993 @@ -358,13 +443,16 @@ cstar_dispatch:
16994 call *ia32_sys_call_table(, %rax, 8)
16995 movq %rax, RAX(%rsp)
16996 1:
16997 + GET_THREAD_INFO(%r11)
16998 DISABLE_INTERRUPTS(CLBR_NONE)
16999 TRACE_IRQS_OFF
17000 - testl $_TIF_ALLWORK_MASK, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
17001 + testl $_TIF_ALLWORK_MASK, TI_flags(%r11)
17002 jnz sysretl_audit
17003
17004 sysretl_from_sys_call:
17005 - andl $~TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
17006 + pax_exit_kernel_user
17007 + pax_erase_kstack
17008 + andl $~TS_COMPAT, TI_status(%r11)
17009 RESTORE_RSI_RDI_RDX
17010 movl RIP(%rsp), %ecx
17011 movl EFLAGS(%rsp), %r11d
17012 @@ -403,7 +491,7 @@ sysretl_audit:
17013
17014 cstar_tracesys:
17015 #ifdef CONFIG_AUDITSYSCALL
17016 - testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
17017 + testl $(_TIF_WORK_SYSCALL_ENTRY & ~_TIF_SYSCALL_AUDIT), TI_flags(%r11)
17018 jz cstar_auditsys
17019 #endif
17020 xchgl %r9d, %ebp
17021 @@ -426,11 +514,19 @@ cstar_tracesys:
17022
17023 RESTORE_EXTRA_REGS
17024 xchgl %ebp, %r9d
17025 +
17026 + pax_erase_kstack
17027 +
17028 jmp cstar_do_call
17029 END(entry_SYSCALL_compat)
17030
17031 ia32_badarg:
17032 ASM_CLAC
17033 +
17034 +#ifdef CONFIG_PAX_MEMORY_UDEREF
17035 + ASM_PAX_CLOSE_USERLAND
17036 +#endif
17037 +
17038 movq $-EFAULT, RAX(%rsp)
17039 ia32_ret_from_sys_call:
17040 xorl %eax, %eax /* Do not leak kernel information */
17041 @@ -462,14 +558,8 @@ ia32_ret_from_sys_call:
17042 */
17043
17044 ENTRY(entry_INT80_compat)
17045 - /*
17046 - * Interrupts are off on entry.
17047 - * We do not frame this tiny irq-off block with TRACE_IRQS_OFF/ON,
17048 - * it is too small to ever cause noticeable irq latency.
17049 - */
17050 PARAVIRT_ADJUST_EXCEPTION_FRAME
17051 SWAPGS
17052 - ENABLE_INTERRUPTS(CLBR_NONE)
17053
17054 /* Zero-extending 32-bit regs, do not remove */
17055 movl %eax, %eax
17056 @@ -488,8 +578,26 @@ ENTRY(entry_INT80_compat)
17057 cld
17058 sub $(6*8), %rsp /* pt_regs->bp, bx, r12-15 not saved */
17059
17060 - orl $TS_COMPAT, ASM_THREAD_INFO(TI_status, %rsp, SIZEOF_PTREGS)
17061 - testl $_TIF_WORK_SYSCALL_ENTRY, ASM_THREAD_INFO(TI_flags, %rsp, SIZEOF_PTREGS)
17062 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
17063 + movq %r12, R12(%rsp)
17064 +#endif
17065 +
17066 + pax_enter_kernel_user
17067 +
17068 +#ifdef CONFIG_PAX_RANDKSTACK
17069 + pax_erase_kstack
17070 +#endif
17071 +
17072 + /*
17073 + * Interrupts are off on entry.
17074 + * We do not frame this tiny irq-off block with TRACE_IRQS_OFF/ON,
17075 + * it is too small to ever cause noticeable irq latency.
17076 + */
17077 + ENABLE_INTERRUPTS(CLBR_NONE)
17078 +
17079 + GET_THREAD_INFO(%r11)
17080 + orl $TS_COMPAT, TI_status(%r11)
17081 + testl $_TIF_WORK_SYSCALL_ENTRY, TI_flags(%r11)
17082 jnz ia32_tracesys
17083
17084 ia32_do_call:
17085 @@ -524,6 +632,9 @@ ia32_tracesys:
17086 movl RDI(%rsp), %edi
17087 movl %eax, %eax /* zero extension */
17088 RESTORE_EXTRA_REGS
17089 +
17090 + pax_erase_kstack
17091 +
17092 jmp ia32_do_call
17093 END(entry_INT80_compat)
17094
17095 diff --git a/arch/x86/entry/thunk_64.S b/arch/x86/entry/thunk_64.S
17096 index efb2b93..8a9cb8e 100644
17097 --- a/arch/x86/entry/thunk_64.S
17098 +++ b/arch/x86/entry/thunk_64.S
17099 @@ -8,6 +8,7 @@
17100 #include <linux/linkage.h>
17101 #include "calling.h"
17102 #include <asm/asm.h>
17103 +#include <asm/alternative-asm.h>
17104
17105 /* rdi: arg1 ... normal C conventions. rax is saved/restored. */
17106 .macro THUNK name, func, put_ret_addr_in_rdi=0
17107 @@ -62,6 +63,7 @@ restore:
17108 popq %rdx
17109 popq %rsi
17110 popq %rdi
17111 + pax_force_retaddr
17112 ret
17113 _ASM_NOKPROBE(restore)
17114 #endif
17115 diff --git a/arch/x86/entry/vdso/Makefile b/arch/x86/entry/vdso/Makefile
17116 index e970320..c006fea 100644
17117 --- a/arch/x86/entry/vdso/Makefile
17118 +++ b/arch/x86/entry/vdso/Makefile
17119 @@ -175,7 +175,7 @@ quiet_cmd_vdso = VDSO $@
17120 -Wl,-T,$(filter %.lds,$^) $(filter %.o,$^) && \
17121 sh $(srctree)/$(src)/checkundef.sh '$(NM)' '$@'
17122
17123 -VDSO_LDFLAGS = -fPIC -shared $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) \
17124 +VDSO_LDFLAGS = -fPIC -shared -Wl,--no-undefined $(call cc-ldoption, -Wl$(comma)--hash-style=sysv) \
17125 $(call cc-ldoption, -Wl$(comma)--build-id) -Wl,-Bsymbolic $(LTO_CFLAGS)
17126 GCOV_PROFILE := n
17127
17128 diff --git a/arch/x86/entry/vdso/vdso2c.h b/arch/x86/entry/vdso/vdso2c.h
17129 index 0224987..8deb742 100644
17130 --- a/arch/x86/entry/vdso/vdso2c.h
17131 +++ b/arch/x86/entry/vdso/vdso2c.h
17132 @@ -12,7 +12,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
17133 unsigned long load_size = -1; /* Work around bogus warning */
17134 unsigned long mapping_size;
17135 ELF(Ehdr) *hdr = (ELF(Ehdr) *)raw_addr;
17136 - int i;
17137 + unsigned int i;
17138 unsigned long j;
17139 ELF(Shdr) *symtab_hdr = NULL, *strtab_hdr, *secstrings_hdr,
17140 *alt_sec = NULL;
17141 @@ -83,7 +83,7 @@ static void BITSFUNC(go)(void *raw_addr, size_t raw_len,
17142 for (i = 0;
17143 i < GET_LE(&symtab_hdr->sh_size) / GET_LE(&symtab_hdr->sh_entsize);
17144 i++) {
17145 - int k;
17146 + unsigned int k;
17147 ELF(Sym) *sym = raw_addr + GET_LE(&symtab_hdr->sh_offset) +
17148 GET_LE(&symtab_hdr->sh_entsize) * i;
17149 const char *name = raw_addr + GET_LE(&strtab_hdr->sh_offset) +
17150 diff --git a/arch/x86/entry/vdso/vma.c b/arch/x86/entry/vdso/vma.c
17151 index 1c9f750..cfddb1a 100644
17152 --- a/arch/x86/entry/vdso/vma.c
17153 +++ b/arch/x86/entry/vdso/vma.c
17154 @@ -19,10 +19,7 @@
17155 #include <asm/page.h>
17156 #include <asm/hpet.h>
17157 #include <asm/desc.h>
17158 -
17159 -#if defined(CONFIG_X86_64)
17160 -unsigned int __read_mostly vdso64_enabled = 1;
17161 -#endif
17162 +#include <asm/mman.h>
17163
17164 void __init init_vdso_image(const struct vdso_image *image)
17165 {
17166 @@ -101,6 +98,11 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
17167 .pages = no_pages,
17168 };
17169
17170 +#ifdef CONFIG_PAX_RANDMMAP
17171 + if (mm->pax_flags & MF_PAX_RANDMMAP)
17172 + calculate_addr = false;
17173 +#endif
17174 +
17175 if (calculate_addr) {
17176 addr = vdso_addr(current->mm->start_stack,
17177 image->size - image->sym_vvar_start);
17178 @@ -111,14 +113,14 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
17179 down_write(&mm->mmap_sem);
17180
17181 addr = get_unmapped_area(NULL, addr,
17182 - image->size - image->sym_vvar_start, 0, 0);
17183 + image->size - image->sym_vvar_start, 0, MAP_EXECUTABLE);
17184 if (IS_ERR_VALUE(addr)) {
17185 ret = addr;
17186 goto up_fail;
17187 }
17188
17189 text_start = addr - image->sym_vvar_start;
17190 - current->mm->context.vdso = (void __user *)text_start;
17191 + mm->context.vdso = text_start;
17192
17193 /*
17194 * MAYWRITE to allow gdb to COW and set breakpoints
17195 @@ -163,15 +165,12 @@ static int map_vdso(const struct vdso_image *image, bool calculate_addr)
17196 hpet_address >> PAGE_SHIFT,
17197 PAGE_SIZE,
17198 pgprot_noncached(PAGE_READONLY));
17199 -
17200 - if (ret)
17201 - goto up_fail;
17202 }
17203 #endif
17204
17205 up_fail:
17206 if (ret)
17207 - current->mm->context.vdso = NULL;
17208 + current->mm->context.vdso = 0;
17209
17210 up_write(&mm->mmap_sem);
17211 return ret;
17212 @@ -191,8 +190,8 @@ static int load_vdso32(void)
17213
17214 if (selected_vdso32->sym_VDSO32_SYSENTER_RETURN)
17215 current_thread_info()->sysenter_return =
17216 - current->mm->context.vdso +
17217 - selected_vdso32->sym_VDSO32_SYSENTER_RETURN;
17218 + (void __force_user *)(current->mm->context.vdso +
17219 + selected_vdso32->sym_VDSO32_SYSENTER_RETURN);
17220
17221 return 0;
17222 }
17223 @@ -201,9 +200,6 @@ static int load_vdso32(void)
17224 #ifdef CONFIG_X86_64
17225 int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
17226 {
17227 - if (!vdso64_enabled)
17228 - return 0;
17229 -
17230 return map_vdso(&vdso_image_64, true);
17231 }
17232
17233 @@ -212,12 +208,8 @@ int compat_arch_setup_additional_pages(struct linux_binprm *bprm,
17234 int uses_interp)
17235 {
17236 #ifdef CONFIG_X86_X32_ABI
17237 - if (test_thread_flag(TIF_X32)) {
17238 - if (!vdso64_enabled)
17239 - return 0;
17240 -
17241 + if (test_thread_flag(TIF_X32))
17242 return map_vdso(&vdso_image_x32, true);
17243 - }
17244 #endif
17245
17246 return load_vdso32();
17247 @@ -231,15 +223,6 @@ int arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
17248 #endif
17249
17250 #ifdef CONFIG_X86_64
17251 -static __init int vdso_setup(char *s)
17252 -{
17253 - vdso64_enabled = simple_strtoul(s, NULL, 0);
17254 - return 0;
17255 -}
17256 -__setup("vdso=", vdso_setup);
17257 -#endif
17258 -
17259 -#ifdef CONFIG_X86_64
17260 static void vgetcpu_cpu_init(void *arg)
17261 {
17262 int cpu = smp_processor_id();
17263 diff --git a/arch/x86/entry/vsyscall/vsyscall_64.c b/arch/x86/entry/vsyscall/vsyscall_64.c
17264 index 2dcc6ff..082dc7a 100644
17265 --- a/arch/x86/entry/vsyscall/vsyscall_64.c
17266 +++ b/arch/x86/entry/vsyscall/vsyscall_64.c
17267 @@ -38,15 +38,13 @@
17268 #define CREATE_TRACE_POINTS
17269 #include "vsyscall_trace.h"
17270
17271 -static enum { EMULATE, NATIVE, NONE } vsyscall_mode = EMULATE;
17272 +static enum { EMULATE, NONE } vsyscall_mode = EMULATE;
17273
17274 static int __init vsyscall_setup(char *str)
17275 {
17276 if (str) {
17277 if (!strcmp("emulate", str))
17278 vsyscall_mode = EMULATE;
17279 - else if (!strcmp("native", str))
17280 - vsyscall_mode = NATIVE;
17281 else if (!strcmp("none", str))
17282 vsyscall_mode = NONE;
17283 else
17284 @@ -264,8 +262,7 @@ do_ret:
17285 return true;
17286
17287 sigsegv:
17288 - force_sig(SIGSEGV, current);
17289 - return true;
17290 + do_group_exit(SIGKILL);
17291 }
17292
17293 /*
17294 @@ -283,8 +280,8 @@ static struct vm_operations_struct gate_vma_ops = {
17295 static struct vm_area_struct gate_vma = {
17296 .vm_start = VSYSCALL_ADDR,
17297 .vm_end = VSYSCALL_ADDR + PAGE_SIZE,
17298 - .vm_page_prot = PAGE_READONLY_EXEC,
17299 - .vm_flags = VM_READ | VM_EXEC,
17300 + .vm_page_prot = PAGE_READONLY,
17301 + .vm_flags = VM_READ,
17302 .vm_ops = &gate_vma_ops,
17303 };
17304
17305 @@ -325,10 +322,7 @@ void __init map_vsyscall(void)
17306 unsigned long physaddr_vsyscall = __pa_symbol(&__vsyscall_page);
17307
17308 if (vsyscall_mode != NONE)
17309 - __set_fixmap(VSYSCALL_PAGE, physaddr_vsyscall,
17310 - vsyscall_mode == NATIVE
17311 - ? PAGE_KERNEL_VSYSCALL
17312 - : PAGE_KERNEL_VVAR);
17313 + __set_fixmap(VSYSCALL_PAGE, physaddr_vsyscall, PAGE_KERNEL_VVAR);
17314
17315 BUILD_BUG_ON((unsigned long)__fix_to_virt(VSYSCALL_PAGE) !=
17316 (unsigned long)VSYSCALL_ADDR);
17317 diff --git a/arch/x86/ia32/ia32_aout.c b/arch/x86/ia32/ia32_aout.c
17318 index ae6aad1..719d6d9 100644
17319 --- a/arch/x86/ia32/ia32_aout.c
17320 +++ b/arch/x86/ia32/ia32_aout.c
17321 @@ -153,6 +153,8 @@ static int aout_core_dump(struct coredump_params *cprm)
17322 unsigned long dump_start, dump_size;
17323 struct user32 dump;
17324
17325 + memset(&dump, 0, sizeof(dump));
17326 +
17327 fs = get_fs();
17328 set_fs(KERNEL_DS);
17329 has_dumped = 1;
17330 diff --git a/arch/x86/ia32/ia32_signal.c b/arch/x86/ia32/ia32_signal.c
17331 index ae3a29a..cea65e9 100644
17332 --- a/arch/x86/ia32/ia32_signal.c
17333 +++ b/arch/x86/ia32/ia32_signal.c
17334 @@ -216,7 +216,7 @@ asmlinkage long sys32_sigreturn(void)
17335 if (__get_user(set.sig[0], &frame->sc.oldmask)
17336 || (_COMPAT_NSIG_WORDS > 1
17337 && __copy_from_user((((char *) &set.sig) + 4),
17338 - &frame->extramask,
17339 + frame->extramask,
17340 sizeof(frame->extramask))))
17341 goto badframe;
17342
17343 @@ -336,7 +336,7 @@ static void __user *get_sigframe(struct ksignal *ksig, struct pt_regs *regs,
17344 sp -= frame_size;
17345 /* Align the stack pointer according to the i386 ABI,
17346 * i.e. so that on function entry ((sp + 4) & 15) == 0. */
17347 - sp = ((sp + 4) & -16ul) - 4;
17348 + sp = ((sp - 12) & -16ul) - 4;
17349 return (void __user *) sp;
17350 }
17351
17352 @@ -381,10 +381,10 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
17353 } else {
17354 /* Return stub is in 32bit vsyscall page */
17355 if (current->mm->context.vdso)
17356 - restorer = current->mm->context.vdso +
17357 - selected_vdso32->sym___kernel_sigreturn;
17358 + restorer = (void __force_user *)(current->mm->context.vdso +
17359 + selected_vdso32->sym___kernel_sigreturn);
17360 else
17361 - restorer = &frame->retcode;
17362 + restorer = frame->retcode;
17363 }
17364
17365 put_user_try {
17366 @@ -394,7 +394,7 @@ int ia32_setup_frame(int sig, struct ksignal *ksig,
17367 * These are actually not used anymore, but left because some
17368 * gdb versions depend on them as a marker.
17369 */
17370 - put_user_ex(*((u64 *)&code), (u64 __user *)frame->retcode);
17371 + put_user_ex(*((const u64 *)&code), (u64 __user *)frame->retcode);
17372 } put_user_catch(err);
17373
17374 if (err)
17375 @@ -436,7 +436,7 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
17376 0xb8,
17377 __NR_ia32_rt_sigreturn,
17378 0x80cd,
17379 - 0,
17380 + 0
17381 };
17382
17383 frame = get_sigframe(ksig, regs, sizeof(*frame), &fpstate);
17384 @@ -459,16 +459,19 @@ int ia32_setup_rt_frame(int sig, struct ksignal *ksig,
17385
17386 if (ksig->ka.sa.sa_flags & SA_RESTORER)
17387 restorer = ksig->ka.sa.sa_restorer;
17388 + else if (current->mm->context.vdso)
17389 + /* Return stub is in 32bit vsyscall page */
17390 + restorer = (void __force_user *)(current->mm->context.vdso +
17391 + selected_vdso32->sym___kernel_rt_sigreturn);
17392 else
17393 - restorer = current->mm->context.vdso +
17394 - selected_vdso32->sym___kernel_rt_sigreturn;
17395 + restorer = frame->retcode;
17396 put_user_ex(ptr_to_compat(restorer), &frame->pretcode);
17397
17398 /*
17399 * Not actually used anymore, but left because some gdb
17400 * versions need it.
17401 */
17402 - put_user_ex(*((u64 *)&code), (u64 __user *)frame->retcode);
17403 + put_user_ex(*((const u64 *)&code), (u64 __user *)frame->retcode);
17404 } put_user_catch(err);
17405
17406 err |= copy_siginfo_to_user32(&frame->info, &ksig->info);
17407 diff --git a/arch/x86/ia32/sys_ia32.c b/arch/x86/ia32/sys_ia32.c
17408 index 719cd70..72af944 100644
17409 --- a/arch/x86/ia32/sys_ia32.c
17410 +++ b/arch/x86/ia32/sys_ia32.c
17411 @@ -49,18 +49,26 @@
17412
17413 #define AA(__x) ((unsigned long)(__x))
17414
17415 +static inline loff_t compose_loff(unsigned int high, unsigned int low)
17416 +{
17417 + loff_t retval = low;
17418 +
17419 + BUILD_BUG_ON(sizeof retval != sizeof low + sizeof high);
17420 + __builtin_memcpy((unsigned char *)&retval + sizeof low, &high, sizeof high);
17421 + return retval;
17422 +}
17423
17424 asmlinkage long sys32_truncate64(const char __user *filename,
17425 - unsigned long offset_low,
17426 - unsigned long offset_high)
17427 + unsigned int offset_low,
17428 + unsigned int offset_high)
17429 {
17430 - return sys_truncate(filename, ((loff_t) offset_high << 32) | offset_low);
17431 + return sys_truncate(filename, compose_loff(offset_high, offset_low));
17432 }
17433
17434 -asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
17435 - unsigned long offset_high)
17436 +asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned int offset_low,
17437 + unsigned int offset_high)
17438 {
17439 - return sys_ftruncate(fd, ((loff_t) offset_high << 32) | offset_low);
17440 + return sys_ftruncate(fd, ((unsigned long) offset_high << 32) | offset_low);
17441 }
17442
17443 /*
17444 @@ -69,8 +77,8 @@ asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long offset_low,
17445 */
17446 static int cp_stat64(struct stat64 __user *ubuf, struct kstat *stat)
17447 {
17448 - typeof(ubuf->st_uid) uid = 0;
17449 - typeof(ubuf->st_gid) gid = 0;
17450 + typeof(((struct stat64 *)0)->st_uid) uid = 0;
17451 + typeof(((struct stat64 *)0)->st_gid) gid = 0;
17452 SET_UID(uid, from_kuid_munged(current_user_ns(), stat->uid));
17453 SET_GID(gid, from_kgid_munged(current_user_ns(), stat->gid));
17454 if (!access_ok(VERIFY_WRITE, ubuf, sizeof(struct stat64)) ||
17455 @@ -196,29 +204,29 @@ long sys32_fadvise64_64(int fd, __u32 offset_low, __u32 offset_high,
17456 __u32 len_low, __u32 len_high, int advice)
17457 {
17458 return sys_fadvise64_64(fd,
17459 - (((u64)offset_high)<<32) | offset_low,
17460 - (((u64)len_high)<<32) | len_low,
17461 + compose_loff(offset_high, offset_low),
17462 + compose_loff(len_high, len_low),
17463 advice);
17464 }
17465
17466 asmlinkage ssize_t sys32_readahead(int fd, unsigned off_lo, unsigned off_hi,
17467 size_t count)
17468 {
17469 - return sys_readahead(fd, ((u64)off_hi << 32) | off_lo, count);
17470 + return sys_readahead(fd, compose_loff(off_hi, off_lo), count);
17471 }
17472
17473 asmlinkage long sys32_sync_file_range(int fd, unsigned off_low, unsigned off_hi,
17474 unsigned n_low, unsigned n_hi, int flags)
17475 {
17476 return sys_sync_file_range(fd,
17477 - ((u64)off_hi << 32) | off_low,
17478 - ((u64)n_hi << 32) | n_low, flags);
17479 + compose_loff(off_hi, off_low),
17480 + compose_loff(n_hi, n_low), flags);
17481 }
17482
17483 asmlinkage long sys32_fadvise64(int fd, unsigned offset_lo, unsigned offset_hi,
17484 - size_t len, int advice)
17485 + int len, int advice)
17486 {
17487 - return sys_fadvise64_64(fd, ((u64)offset_hi << 32) | offset_lo,
17488 + return sys_fadvise64_64(fd, compose_loff(offset_hi, offset_lo),
17489 len, advice);
17490 }
17491
17492 @@ -226,6 +234,6 @@ asmlinkage long sys32_fallocate(int fd, int mode, unsigned offset_lo,
17493 unsigned offset_hi, unsigned len_lo,
17494 unsigned len_hi)
17495 {
17496 - return sys_fallocate(fd, mode, ((u64)offset_hi << 32) | offset_lo,
17497 - ((u64)len_hi << 32) | len_lo);
17498 + return sys_fallocate(fd, mode, compose_loff(offset_hi, offset_lo),
17499 + compose_loff(len_hi, len_lo));
17500 }
17501 diff --git a/arch/x86/include/asm/alternative-asm.h b/arch/x86/include/asm/alternative-asm.h
17502 index e7636ba..e1fb78a 100644
17503 --- a/arch/x86/include/asm/alternative-asm.h
17504 +++ b/arch/x86/include/asm/alternative-asm.h
17505 @@ -18,6 +18,45 @@
17506 .endm
17507 #endif
17508
17509 +#ifdef KERNEXEC_PLUGIN
17510 + .macro pax_force_retaddr_bts rip=0
17511 + btsq $63,\rip(%rsp)
17512 + .endm
17513 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS
17514 + .macro pax_force_retaddr rip=0, reload=0
17515 + btsq $63,\rip(%rsp)
17516 + .endm
17517 + .macro pax_force_fptr ptr
17518 + btsq $63,\ptr
17519 + .endm
17520 + .macro pax_set_fptr_mask
17521 + .endm
17522 +#endif
17523 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
17524 + .macro pax_force_retaddr rip=0, reload=0
17525 + .if \reload
17526 + pax_set_fptr_mask
17527 + .endif
17528 + orq %r12,\rip(%rsp)
17529 + .endm
17530 + .macro pax_force_fptr ptr
17531 + orq %r12,\ptr
17532 + .endm
17533 + .macro pax_set_fptr_mask
17534 + movabs $0x8000000000000000,%r12
17535 + .endm
17536 +#endif
17537 +#else
17538 + .macro pax_force_retaddr rip=0, reload=0
17539 + .endm
17540 + .macro pax_force_fptr ptr
17541 + .endm
17542 + .macro pax_force_retaddr_bts rip=0
17543 + .endm
17544 + .macro pax_set_fptr_mask
17545 + .endm
17546 +#endif
17547 +
17548 /*
17549 * Issue one struct alt_instr descriptor entry (need to put it into
17550 * the section .altinstructions, see below). This entry contains
17551 @@ -50,7 +89,7 @@
17552 altinstruction_entry 140b,143f,\feature,142b-140b,144f-143f,142b-141b
17553 .popsection
17554
17555 - .pushsection .altinstr_replacement,"ax"
17556 + .pushsection .altinstr_replacement,"a"
17557 143:
17558 \newinstr
17559 144:
17560 @@ -86,7 +125,7 @@
17561 altinstruction_entry 140b,144f,\feature2,142b-140b,145f-144f,142b-141b
17562 .popsection
17563
17564 - .pushsection .altinstr_replacement,"ax"
17565 + .pushsection .altinstr_replacement,"a"
17566 143:
17567 \newinstr1
17568 144:
17569 diff --git a/arch/x86/include/asm/alternative.h b/arch/x86/include/asm/alternative.h
17570 index 7bfc85b..65d1ec4 100644
17571 --- a/arch/x86/include/asm/alternative.h
17572 +++ b/arch/x86/include/asm/alternative.h
17573 @@ -136,7 +136,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
17574 ".pushsection .altinstructions,\"a\"\n" \
17575 ALTINSTR_ENTRY(feature, 1) \
17576 ".popsection\n" \
17577 - ".pushsection .altinstr_replacement, \"ax\"\n" \
17578 + ".pushsection .altinstr_replacement, \"a\"\n" \
17579 ALTINSTR_REPLACEMENT(newinstr, feature, 1) \
17580 ".popsection"
17581
17582 @@ -146,7 +146,7 @@ static inline int alternatives_text_reserved(void *start, void *end)
17583 ALTINSTR_ENTRY(feature1, 1) \
17584 ALTINSTR_ENTRY(feature2, 2) \
17585 ".popsection\n" \
17586 - ".pushsection .altinstr_replacement, \"ax\"\n" \
17587 + ".pushsection .altinstr_replacement, \"a\"\n" \
17588 ALTINSTR_REPLACEMENT(newinstr1, feature1, 1) \
17589 ALTINSTR_REPLACEMENT(newinstr2, feature2, 2) \
17590 ".popsection"
17591 diff --git a/arch/x86/include/asm/apic.h b/arch/x86/include/asm/apic.h
17592 index c839363..b9a8c43 100644
17593 --- a/arch/x86/include/asm/apic.h
17594 +++ b/arch/x86/include/asm/apic.h
17595 @@ -45,7 +45,7 @@ static inline void generic_apic_probe(void)
17596
17597 #ifdef CONFIG_X86_LOCAL_APIC
17598
17599 -extern unsigned int apic_verbosity;
17600 +extern int apic_verbosity;
17601 extern int local_apic_timer_c2_ok;
17602
17603 extern int disable_apic;
17604 diff --git a/arch/x86/include/asm/apm.h b/arch/x86/include/asm/apm.h
17605 index 20370c6..a2eb9b0 100644
17606 --- a/arch/x86/include/asm/apm.h
17607 +++ b/arch/x86/include/asm/apm.h
17608 @@ -34,7 +34,7 @@ static inline void apm_bios_call_asm(u32 func, u32 ebx_in, u32 ecx_in,
17609 __asm__ __volatile__(APM_DO_ZERO_SEGS
17610 "pushl %%edi\n\t"
17611 "pushl %%ebp\n\t"
17612 - "lcall *%%cs:apm_bios_entry\n\t"
17613 + "lcall *%%ss:apm_bios_entry\n\t"
17614 "setc %%al\n\t"
17615 "popl %%ebp\n\t"
17616 "popl %%edi\n\t"
17617 @@ -58,7 +58,7 @@ static inline u8 apm_bios_call_simple_asm(u32 func, u32 ebx_in,
17618 __asm__ __volatile__(APM_DO_ZERO_SEGS
17619 "pushl %%edi\n\t"
17620 "pushl %%ebp\n\t"
17621 - "lcall *%%cs:apm_bios_entry\n\t"
17622 + "lcall *%%ss:apm_bios_entry\n\t"
17623 "setc %%bl\n\t"
17624 "popl %%ebp\n\t"
17625 "popl %%edi\n\t"
17626 diff --git a/arch/x86/include/asm/atomic.h b/arch/x86/include/asm/atomic.h
17627 index e916895..42d729d 100644
17628 --- a/arch/x86/include/asm/atomic.h
17629 +++ b/arch/x86/include/asm/atomic.h
17630 @@ -28,6 +28,17 @@ static __always_inline int atomic_read(const atomic_t *v)
17631 }
17632
17633 /**
17634 + * atomic_read_unchecked - read atomic variable
17635 + * @v: pointer of type atomic_unchecked_t
17636 + *
17637 + * Atomically reads the value of @v.
17638 + */
17639 +static __always_inline int __intentional_overflow(-1) atomic_read_unchecked(const atomic_unchecked_t *v)
17640 +{
17641 + return ACCESS_ONCE((v)->counter);
17642 +}
17643 +
17644 +/**
17645 * atomic_set - set atomic variable
17646 * @v: pointer of type atomic_t
17647 * @i: required value
17648 @@ -40,6 +51,18 @@ static __always_inline void atomic_set(atomic_t *v, int i)
17649 }
17650
17651 /**
17652 + * atomic_set_unchecked - set atomic variable
17653 + * @v: pointer of type atomic_unchecked_t
17654 + * @i: required value
17655 + *
17656 + * Atomically sets the value of @v to @i.
17657 + */
17658 +static __always_inline void atomic_set_unchecked(atomic_unchecked_t *v, int i)
17659 +{
17660 + v->counter = i;
17661 +}
17662 +
17663 +/**
17664 * atomic_add - add integer to atomic variable
17665 * @i: integer value to add
17666 * @v: pointer of type atomic_t
17667 @@ -48,7 +71,29 @@ static __always_inline void atomic_set(atomic_t *v, int i)
17668 */
17669 static __always_inline void atomic_add(int i, atomic_t *v)
17670 {
17671 - asm volatile(LOCK_PREFIX "addl %1,%0"
17672 + asm volatile(LOCK_PREFIX "addl %1,%0\n"
17673 +
17674 +#ifdef CONFIG_PAX_REFCOUNT
17675 + "jno 0f\n"
17676 + LOCK_PREFIX "subl %1,%0\n"
17677 + "int $4\n0:\n"
17678 + _ASM_EXTABLE(0b, 0b)
17679 +#endif
17680 +
17681 + : "+m" (v->counter)
17682 + : "ir" (i));
17683 +}
17684 +
17685 +/**
17686 + * atomic_add_unchecked - add integer to atomic variable
17687 + * @i: integer value to add
17688 + * @v: pointer of type atomic_unchecked_t
17689 + *
17690 + * Atomically adds @i to @v.
17691 + */
17692 +static __always_inline void atomic_add_unchecked(int i, atomic_unchecked_t *v)
17693 +{
17694 + asm volatile(LOCK_PREFIX "addl %1,%0\n"
17695 : "+m" (v->counter)
17696 : "ir" (i));
17697 }
17698 @@ -62,7 +107,29 @@ static __always_inline void atomic_add(int i, atomic_t *v)
17699 */
17700 static __always_inline void atomic_sub(int i, atomic_t *v)
17701 {
17702 - asm volatile(LOCK_PREFIX "subl %1,%0"
17703 + asm volatile(LOCK_PREFIX "subl %1,%0\n"
17704 +
17705 +#ifdef CONFIG_PAX_REFCOUNT
17706 + "jno 0f\n"
17707 + LOCK_PREFIX "addl %1,%0\n"
17708 + "int $4\n0:\n"
17709 + _ASM_EXTABLE(0b, 0b)
17710 +#endif
17711 +
17712 + : "+m" (v->counter)
17713 + : "ir" (i));
17714 +}
17715 +
17716 +/**
17717 + * atomic_sub_unchecked - subtract integer from atomic variable
17718 + * @i: integer value to subtract
17719 + * @v: pointer of type atomic_unchecked_t
17720 + *
17721 + * Atomically subtracts @i from @v.
17722 + */
17723 +static __always_inline void atomic_sub_unchecked(int i, atomic_unchecked_t *v)
17724 +{
17725 + asm volatile(LOCK_PREFIX "subl %1,%0\n"
17726 : "+m" (v->counter)
17727 : "ir" (i));
17728 }
17729 @@ -78,7 +145,7 @@ static __always_inline void atomic_sub(int i, atomic_t *v)
17730 */
17731 static __always_inline int atomic_sub_and_test(int i, atomic_t *v)
17732 {
17733 - GEN_BINARY_RMWcc(LOCK_PREFIX "subl", v->counter, "er", i, "%0", "e");
17734 + GEN_BINARY_RMWcc(LOCK_PREFIX "subl", LOCK_PREFIX "addl", v->counter, "er", i, "%0", "e");
17735 }
17736
17737 /**
17738 @@ -89,7 +156,27 @@ static __always_inline int atomic_sub_and_test(int i, atomic_t *v)
17739 */
17740 static __always_inline void atomic_inc(atomic_t *v)
17741 {
17742 - asm volatile(LOCK_PREFIX "incl %0"
17743 + asm volatile(LOCK_PREFIX "incl %0\n"
17744 +
17745 +#ifdef CONFIG_PAX_REFCOUNT
17746 + "jno 0f\n"
17747 + LOCK_PREFIX "decl %0\n"
17748 + "int $4\n0:\n"
17749 + _ASM_EXTABLE(0b, 0b)
17750 +#endif
17751 +
17752 + : "+m" (v->counter));
17753 +}
17754 +
17755 +/**
17756 + * atomic_inc_unchecked - increment atomic variable
17757 + * @v: pointer of type atomic_unchecked_t
17758 + *
17759 + * Atomically increments @v by 1.
17760 + */
17761 +static __always_inline void atomic_inc_unchecked(atomic_unchecked_t *v)
17762 +{
17763 + asm volatile(LOCK_PREFIX "incl %0\n"
17764 : "+m" (v->counter));
17765 }
17766
17767 @@ -101,7 +188,27 @@ static __always_inline void atomic_inc(atomic_t *v)
17768 */
17769 static __always_inline void atomic_dec(atomic_t *v)
17770 {
17771 - asm volatile(LOCK_PREFIX "decl %0"
17772 + asm volatile(LOCK_PREFIX "decl %0\n"
17773 +
17774 +#ifdef CONFIG_PAX_REFCOUNT
17775 + "jno 0f\n"
17776 + LOCK_PREFIX "incl %0\n"
17777 + "int $4\n0:\n"
17778 + _ASM_EXTABLE(0b, 0b)
17779 +#endif
17780 +
17781 + : "+m" (v->counter));
17782 +}
17783 +
17784 +/**
17785 + * atomic_dec_unchecked - decrement atomic variable
17786 + * @v: pointer of type atomic_unchecked_t
17787 + *
17788 + * Atomically decrements @v by 1.
17789 + */
17790 +static __always_inline void atomic_dec_unchecked(atomic_unchecked_t *v)
17791 +{
17792 + asm volatile(LOCK_PREFIX "decl %0\n"
17793 : "+m" (v->counter));
17794 }
17795
17796 @@ -115,7 +222,7 @@ static __always_inline void atomic_dec(atomic_t *v)
17797 */
17798 static __always_inline int atomic_dec_and_test(atomic_t *v)
17799 {
17800 - GEN_UNARY_RMWcc(LOCK_PREFIX "decl", v->counter, "%0", "e");
17801 + GEN_UNARY_RMWcc(LOCK_PREFIX "decl", LOCK_PREFIX "incl", v->counter, "%0", "e");
17802 }
17803
17804 /**
17805 @@ -128,7 +235,20 @@ static __always_inline int atomic_dec_and_test(atomic_t *v)
17806 */
17807 static __always_inline int atomic_inc_and_test(atomic_t *v)
17808 {
17809 - GEN_UNARY_RMWcc(LOCK_PREFIX "incl", v->counter, "%0", "e");
17810 + GEN_UNARY_RMWcc(LOCK_PREFIX "incl", LOCK_PREFIX "decl", v->counter, "%0", "e");
17811 +}
17812 +
17813 +/**
17814 + * atomic_inc_and_test_unchecked - increment and test
17815 + * @v: pointer of type atomic_unchecked_t
17816 + *
17817 + * Atomically increments @v by 1
17818 + * and returns true if the result is zero, or false for all
17819 + * other cases.
17820 + */
17821 +static __always_inline int atomic_inc_and_test_unchecked(atomic_unchecked_t *v)
17822 +{
17823 + GEN_UNARY_RMWcc_unchecked(LOCK_PREFIX "incl", v->counter, "%0", "e");
17824 }
17825
17826 /**
17827 @@ -142,7 +262,7 @@ static __always_inline int atomic_inc_and_test(atomic_t *v)
17828 */
17829 static __always_inline int atomic_add_negative(int i, atomic_t *v)
17830 {
17831 - GEN_BINARY_RMWcc(LOCK_PREFIX "addl", v->counter, "er", i, "%0", "s");
17832 + GEN_BINARY_RMWcc(LOCK_PREFIX "addl", LOCK_PREFIX "subl", v->counter, "er", i, "%0", "s");
17833 }
17834
17835 /**
17836 @@ -152,7 +272,19 @@ static __always_inline int atomic_add_negative(int i, atomic_t *v)
17837 *
17838 * Atomically adds @i to @v and returns @i + @v
17839 */
17840 -static __always_inline int atomic_add_return(int i, atomic_t *v)
17841 +static __always_inline int __intentional_overflow(-1) atomic_add_return(int i, atomic_t *v)
17842 +{
17843 + return i + xadd_check_overflow(&v->counter, i);
17844 +}
17845 +
17846 +/**
17847 + * atomic_add_return_unchecked - add integer and return
17848 + * @i: integer value to add
17849 + * @v: pointer of type atomi_uncheckedc_t
17850 + *
17851 + * Atomically adds @i to @v and returns @i + @v
17852 + */
17853 +static __always_inline int atomic_add_return_unchecked(int i, atomic_unchecked_t *v)
17854 {
17855 return i + xadd(&v->counter, i);
17856 }
17857 @@ -164,15 +296,24 @@ static __always_inline int atomic_add_return(int i, atomic_t *v)
17858 *
17859 * Atomically subtracts @i from @v and returns @v - @i
17860 */
17861 -static __always_inline int atomic_sub_return(int i, atomic_t *v)
17862 +static __always_inline int __intentional_overflow(-1) atomic_sub_return(int i, atomic_t *v)
17863 {
17864 return atomic_add_return(-i, v);
17865 }
17866
17867 #define atomic_inc_return(v) (atomic_add_return(1, v))
17868 +static __always_inline int atomic_inc_return_unchecked(atomic_unchecked_t *v)
17869 +{
17870 + return atomic_add_return_unchecked(1, v);
17871 +}
17872 #define atomic_dec_return(v) (atomic_sub_return(1, v))
17873
17874 -static __always_inline int atomic_cmpxchg(atomic_t *v, int old, int new)
17875 +static __always_inline int __intentional_overflow(-1) atomic_cmpxchg(atomic_t *v, int old, int new)
17876 +{
17877 + return cmpxchg(&v->counter, old, new);
17878 +}
17879 +
17880 +static __always_inline int atomic_cmpxchg_unchecked(atomic_unchecked_t *v, int old, int new)
17881 {
17882 return cmpxchg(&v->counter, old, new);
17883 }
17884 @@ -182,6 +323,11 @@ static inline int atomic_xchg(atomic_t *v, int new)
17885 return xchg(&v->counter, new);
17886 }
17887
17888 +static inline int atomic_xchg_unchecked(atomic_unchecked_t *v, int new)
17889 +{
17890 + return xchg(&v->counter, new);
17891 +}
17892 +
17893 /**
17894 * __atomic_add_unless - add unless the number is already a given value
17895 * @v: pointer of type atomic_t
17896 @@ -193,12 +339,25 @@ static inline int atomic_xchg(atomic_t *v, int new)
17897 */
17898 static __always_inline int __atomic_add_unless(atomic_t *v, int a, int u)
17899 {
17900 - int c, old;
17901 + int c, old, new;
17902 c = atomic_read(v);
17903 for (;;) {
17904 - if (unlikely(c == (u)))
17905 + if (unlikely(c == u))
17906 break;
17907 - old = atomic_cmpxchg((v), c, c + (a));
17908 +
17909 + asm volatile("addl %2,%0\n"
17910 +
17911 +#ifdef CONFIG_PAX_REFCOUNT
17912 + "jno 0f\n"
17913 + "subl %2,%0\n"
17914 + "int $4\n0:\n"
17915 + _ASM_EXTABLE(0b, 0b)
17916 +#endif
17917 +
17918 + : "=r" (new)
17919 + : "0" (c), "ir" (a));
17920 +
17921 + old = atomic_cmpxchg(v, c, new);
17922 if (likely(old == c))
17923 break;
17924 c = old;
17925 @@ -207,6 +366,49 @@ static __always_inline int __atomic_add_unless(atomic_t *v, int a, int u)
17926 }
17927
17928 /**
17929 + * atomic_inc_not_zero_hint - increment if not null
17930 + * @v: pointer of type atomic_t
17931 + * @hint: probable value of the atomic before the increment
17932 + *
17933 + * This version of atomic_inc_not_zero() gives a hint of probable
17934 + * value of the atomic. This helps processor to not read the memory
17935 + * before doing the atomic read/modify/write cycle, lowering
17936 + * number of bus transactions on some arches.
17937 + *
17938 + * Returns: 0 if increment was not done, 1 otherwise.
17939 + */
17940 +#define atomic_inc_not_zero_hint atomic_inc_not_zero_hint
17941 +static inline int atomic_inc_not_zero_hint(atomic_t *v, int hint)
17942 +{
17943 + int val, c = hint, new;
17944 +
17945 + /* sanity test, should be removed by compiler if hint is a constant */
17946 + if (!hint)
17947 + return __atomic_add_unless(v, 1, 0);
17948 +
17949 + do {
17950 + asm volatile("incl %0\n"
17951 +
17952 +#ifdef CONFIG_PAX_REFCOUNT
17953 + "jno 0f\n"
17954 + "decl %0\n"
17955 + "int $4\n0:\n"
17956 + _ASM_EXTABLE(0b, 0b)
17957 +#endif
17958 +
17959 + : "=r" (new)
17960 + : "0" (c));
17961 +
17962 + val = atomic_cmpxchg(v, c, new);
17963 + if (val == c)
17964 + return 1;
17965 + c = val;
17966 + } while (c);
17967 +
17968 + return 0;
17969 +}
17970 +
17971 +/**
17972 * atomic_inc_short - increment of a short integer
17973 * @v: pointer to type int
17974 *
17975 @@ -220,14 +422,37 @@ static __always_inline short int atomic_inc_short(short int *v)
17976 }
17977
17978 /* These are x86-specific, used by some header files */
17979 -#define atomic_clear_mask(mask, addr) \
17980 - asm volatile(LOCK_PREFIX "andl %0,%1" \
17981 - : : "r" (~(mask)), "m" (*(addr)) : "memory")
17982 +static inline void atomic_clear_mask(unsigned int mask, atomic_t *v)
17983 +{
17984 + asm volatile(LOCK_PREFIX "andl %1,%0"
17985 + : "+m" (v->counter)
17986 + : "r" (~(mask))
17987 + : "memory");
17988 +}
17989
17990 -#define atomic_set_mask(mask, addr) \
17991 - asm volatile(LOCK_PREFIX "orl %0,%1" \
17992 - : : "r" ((unsigned)(mask)), "m" (*(addr)) \
17993 - : "memory")
17994 +static inline void atomic_clear_mask_unchecked(unsigned int mask, atomic_unchecked_t *v)
17995 +{
17996 + asm volatile(LOCK_PREFIX "andl %1,%0"
17997 + : "+m" (v->counter)
17998 + : "r" (~(mask))
17999 + : "memory");
18000 +}
18001 +
18002 +static inline void atomic_set_mask(unsigned int mask, atomic_t *v)
18003 +{
18004 + asm volatile(LOCK_PREFIX "orl %1,%0"
18005 + : "+m" (v->counter)
18006 + : "r" (mask)
18007 + : "memory");
18008 +}
18009 +
18010 +static inline void atomic_set_mask_unchecked(unsigned int mask, atomic_unchecked_t *v)
18011 +{
18012 + asm volatile(LOCK_PREFIX "orl %1,%0"
18013 + : "+m" (v->counter)
18014 + : "r" (mask)
18015 + : "memory");
18016 +}
18017
18018 #ifdef CONFIG_X86_32
18019 # include <asm/atomic64_32.h>
18020 diff --git a/arch/x86/include/asm/atomic64_32.h b/arch/x86/include/asm/atomic64_32.h
18021 index b154de7..3dc335d 100644
18022 --- a/arch/x86/include/asm/atomic64_32.h
18023 +++ b/arch/x86/include/asm/atomic64_32.h
18024 @@ -12,6 +12,14 @@ typedef struct {
18025 u64 __aligned(8) counter;
18026 } atomic64_t;
18027
18028 +#ifdef CONFIG_PAX_REFCOUNT
18029 +typedef struct {
18030 + u64 __aligned(8) counter;
18031 +} atomic64_unchecked_t;
18032 +#else
18033 +typedef atomic64_t atomic64_unchecked_t;
18034 +#endif
18035 +
18036 #define ATOMIC64_INIT(val) { (val) }
18037
18038 #define __ATOMIC64_DECL(sym) void atomic64_##sym(atomic64_t *, ...)
18039 @@ -37,21 +45,31 @@ typedef struct {
18040 ATOMIC64_DECL_ONE(sym##_386)
18041
18042 ATOMIC64_DECL_ONE(add_386);
18043 +ATOMIC64_DECL_ONE(add_unchecked_386);
18044 ATOMIC64_DECL_ONE(sub_386);
18045 +ATOMIC64_DECL_ONE(sub_unchecked_386);
18046 ATOMIC64_DECL_ONE(inc_386);
18047 +ATOMIC64_DECL_ONE(inc_unchecked_386);
18048 ATOMIC64_DECL_ONE(dec_386);
18049 +ATOMIC64_DECL_ONE(dec_unchecked_386);
18050 #endif
18051
18052 #define alternative_atomic64(f, out, in...) \
18053 __alternative_atomic64(f, f, ASM_OUTPUT2(out), ## in)
18054
18055 ATOMIC64_DECL(read);
18056 +ATOMIC64_DECL(read_unchecked);
18057 ATOMIC64_DECL(set);
18058 +ATOMIC64_DECL(set_unchecked);
18059 ATOMIC64_DECL(xchg);
18060 ATOMIC64_DECL(add_return);
18061 +ATOMIC64_DECL(add_return_unchecked);
18062 ATOMIC64_DECL(sub_return);
18063 +ATOMIC64_DECL(sub_return_unchecked);
18064 ATOMIC64_DECL(inc_return);
18065 +ATOMIC64_DECL(inc_return_unchecked);
18066 ATOMIC64_DECL(dec_return);
18067 +ATOMIC64_DECL(dec_return_unchecked);
18068 ATOMIC64_DECL(dec_if_positive);
18069 ATOMIC64_DECL(inc_not_zero);
18070 ATOMIC64_DECL(add_unless);
18071 @@ -77,6 +95,21 @@ static inline long long atomic64_cmpxchg(atomic64_t *v, long long o, long long n
18072 }
18073
18074 /**
18075 + * atomic64_cmpxchg_unchecked - cmpxchg atomic64 variable
18076 + * @p: pointer to type atomic64_unchecked_t
18077 + * @o: expected value
18078 + * @n: new value
18079 + *
18080 + * Atomically sets @v to @n if it was equal to @o and returns
18081 + * the old value.
18082 + */
18083 +
18084 +static inline long long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long long o, long long n)
18085 +{
18086 + return cmpxchg64(&v->counter, o, n);
18087 +}
18088 +
18089 +/**
18090 * atomic64_xchg - xchg atomic64 variable
18091 * @v: pointer to type atomic64_t
18092 * @n: value to assign
18093 @@ -112,6 +145,22 @@ static inline void atomic64_set(atomic64_t *v, long long i)
18094 }
18095
18096 /**
18097 + * atomic64_set_unchecked - set atomic64 variable
18098 + * @v: pointer to type atomic64_unchecked_t
18099 + * @n: value to assign
18100 + *
18101 + * Atomically sets the value of @v to @n.
18102 + */
18103 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long long i)
18104 +{
18105 + unsigned high = (unsigned)(i >> 32);
18106 + unsigned low = (unsigned)i;
18107 + alternative_atomic64(set, /* no output */,
18108 + "S" (v), "b" (low), "c" (high)
18109 + : "eax", "edx", "memory");
18110 +}
18111 +
18112 +/**
18113 * atomic64_read - read atomic64 variable
18114 * @v: pointer to type atomic64_t
18115 *
18116 @@ -125,6 +174,19 @@ static inline long long atomic64_read(const atomic64_t *v)
18117 }
18118
18119 /**
18120 + * atomic64_read_unchecked - read atomic64 variable
18121 + * @v: pointer to type atomic64_unchecked_t
18122 + *
18123 + * Atomically reads the value of @v and returns it.
18124 + */
18125 +static inline long long __intentional_overflow(-1) atomic64_read_unchecked(const atomic64_unchecked_t *v)
18126 +{
18127 + long long r;
18128 + alternative_atomic64(read, "=&A" (r), "c" (v) : "memory");
18129 + return r;
18130 + }
18131 +
18132 +/**
18133 * atomic64_add_return - add and return
18134 * @i: integer value to add
18135 * @v: pointer to type atomic64_t
18136 @@ -139,6 +201,21 @@ static inline long long atomic64_add_return(long long i, atomic64_t *v)
18137 return i;
18138 }
18139
18140 +/**
18141 + * atomic64_add_return_unchecked - add and return
18142 + * @i: integer value to add
18143 + * @v: pointer to type atomic64_unchecked_t
18144 + *
18145 + * Atomically adds @i to @v and returns @i + *@v
18146 + */
18147 +static inline long long atomic64_add_return_unchecked(long long i, atomic64_unchecked_t *v)
18148 +{
18149 + alternative_atomic64(add_return_unchecked,
18150 + ASM_OUTPUT2("+A" (i), "+c" (v)),
18151 + ASM_NO_INPUT_CLOBBER("memory"));
18152 + return i;
18153 +}
18154 +
18155 /*
18156 * Other variants with different arithmetic operators:
18157 */
18158 @@ -158,6 +235,14 @@ static inline long long atomic64_inc_return(atomic64_t *v)
18159 return a;
18160 }
18161
18162 +static inline long long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
18163 +{
18164 + long long a;
18165 + alternative_atomic64(inc_return_unchecked, "=&A" (a),
18166 + "S" (v) : "memory", "ecx");
18167 + return a;
18168 +}
18169 +
18170 static inline long long atomic64_dec_return(atomic64_t *v)
18171 {
18172 long long a;
18173 @@ -182,6 +267,21 @@ static inline long long atomic64_add(long long i, atomic64_t *v)
18174 }
18175
18176 /**
18177 + * atomic64_add_unchecked - add integer to atomic64 variable
18178 + * @i: integer value to add
18179 + * @v: pointer to type atomic64_unchecked_t
18180 + *
18181 + * Atomically adds @i to @v.
18182 + */
18183 +static inline long long atomic64_add_unchecked(long long i, atomic64_unchecked_t *v)
18184 +{
18185 + __alternative_atomic64(add_unchecked, add_return_unchecked,
18186 + ASM_OUTPUT2("+A" (i), "+c" (v)),
18187 + ASM_NO_INPUT_CLOBBER("memory"));
18188 + return i;
18189 +}
18190 +
18191 +/**
18192 * atomic64_sub - subtract the atomic64 variable
18193 * @i: integer value to subtract
18194 * @v: pointer to type atomic64_t
18195 diff --git a/arch/x86/include/asm/atomic64_64.h b/arch/x86/include/asm/atomic64_64.h
18196 index b965f9e..8e22dd3 100644
18197 --- a/arch/x86/include/asm/atomic64_64.h
18198 +++ b/arch/x86/include/asm/atomic64_64.h
18199 @@ -22,6 +22,18 @@ static inline long atomic64_read(const atomic64_t *v)
18200 }
18201
18202 /**
18203 + * atomic64_read_unchecked - read atomic64 variable
18204 + * @v: pointer of type atomic64_unchecked_t
18205 + *
18206 + * Atomically reads the value of @v.
18207 + * Doesn't imply a read memory barrier.
18208 + */
18209 +static inline long __intentional_overflow(-1) atomic64_read_unchecked(const atomic64_unchecked_t *v)
18210 +{
18211 + return ACCESS_ONCE((v)->counter);
18212 +}
18213 +
18214 +/**
18215 * atomic64_set - set atomic64 variable
18216 * @v: pointer to type atomic64_t
18217 * @i: required value
18218 @@ -34,6 +46,18 @@ static inline void atomic64_set(atomic64_t *v, long i)
18219 }
18220
18221 /**
18222 + * atomic64_set_unchecked - set atomic64 variable
18223 + * @v: pointer to type atomic64_unchecked_t
18224 + * @i: required value
18225 + *
18226 + * Atomically sets the value of @v to @i.
18227 + */
18228 +static inline void atomic64_set_unchecked(atomic64_unchecked_t *v, long i)
18229 +{
18230 + v->counter = i;
18231 +}
18232 +
18233 +/**
18234 * atomic64_add - add integer to atomic64 variable
18235 * @i: integer value to add
18236 * @v: pointer to type atomic64_t
18237 @@ -42,6 +66,28 @@ static inline void atomic64_set(atomic64_t *v, long i)
18238 */
18239 static __always_inline void atomic64_add(long i, atomic64_t *v)
18240 {
18241 + asm volatile(LOCK_PREFIX "addq %1,%0\n"
18242 +
18243 +#ifdef CONFIG_PAX_REFCOUNT
18244 + "jno 0f\n"
18245 + LOCK_PREFIX "subq %1,%0\n"
18246 + "int $4\n0:\n"
18247 + _ASM_EXTABLE(0b, 0b)
18248 +#endif
18249 +
18250 + : "=m" (v->counter)
18251 + : "er" (i), "m" (v->counter));
18252 +}
18253 +
18254 +/**
18255 + * atomic64_add_unchecked - add integer to atomic64 variable
18256 + * @i: integer value to add
18257 + * @v: pointer to type atomic64_unchecked_t
18258 + *
18259 + * Atomically adds @i to @v.
18260 + */
18261 +static __always_inline void atomic64_add_unchecked(long i, atomic64_unchecked_t *v)
18262 +{
18263 asm volatile(LOCK_PREFIX "addq %1,%0"
18264 : "=m" (v->counter)
18265 : "er" (i), "m" (v->counter));
18266 @@ -56,7 +102,29 @@ static __always_inline void atomic64_add(long i, atomic64_t *v)
18267 */
18268 static inline void atomic64_sub(long i, atomic64_t *v)
18269 {
18270 - asm volatile(LOCK_PREFIX "subq %1,%0"
18271 + asm volatile(LOCK_PREFIX "subq %1,%0\n"
18272 +
18273 +#ifdef CONFIG_PAX_REFCOUNT
18274 + "jno 0f\n"
18275 + LOCK_PREFIX "addq %1,%0\n"
18276 + "int $4\n0:\n"
18277 + _ASM_EXTABLE(0b, 0b)
18278 +#endif
18279 +
18280 + : "=m" (v->counter)
18281 + : "er" (i), "m" (v->counter));
18282 +}
18283 +
18284 +/**
18285 + * atomic64_sub_unchecked - subtract the atomic64 variable
18286 + * @i: integer value to subtract
18287 + * @v: pointer to type atomic64_unchecked_t
18288 + *
18289 + * Atomically subtracts @i from @v.
18290 + */
18291 +static inline void atomic64_sub_unchecked(long i, atomic64_unchecked_t *v)
18292 +{
18293 + asm volatile(LOCK_PREFIX "subq %1,%0\n"
18294 : "=m" (v->counter)
18295 : "er" (i), "m" (v->counter));
18296 }
18297 @@ -72,7 +140,7 @@ static inline void atomic64_sub(long i, atomic64_t *v)
18298 */
18299 static inline int atomic64_sub_and_test(long i, atomic64_t *v)
18300 {
18301 - GEN_BINARY_RMWcc(LOCK_PREFIX "subq", v->counter, "er", i, "%0", "e");
18302 + GEN_BINARY_RMWcc(LOCK_PREFIX "subq", LOCK_PREFIX "addq", v->counter, "er", i, "%0", "e");
18303 }
18304
18305 /**
18306 @@ -83,6 +151,27 @@ static inline int atomic64_sub_and_test(long i, atomic64_t *v)
18307 */
18308 static __always_inline void atomic64_inc(atomic64_t *v)
18309 {
18310 + asm volatile(LOCK_PREFIX "incq %0\n"
18311 +
18312 +#ifdef CONFIG_PAX_REFCOUNT
18313 + "jno 0f\n"
18314 + LOCK_PREFIX "decq %0\n"
18315 + "int $4\n0:\n"
18316 + _ASM_EXTABLE(0b, 0b)
18317 +#endif
18318 +
18319 + : "=m" (v->counter)
18320 + : "m" (v->counter));
18321 +}
18322 +
18323 +/**
18324 + * atomic64_inc_unchecked - increment atomic64 variable
18325 + * @v: pointer to type atomic64_unchecked_t
18326 + *
18327 + * Atomically increments @v by 1.
18328 + */
18329 +static __always_inline void atomic64_inc_unchecked(atomic64_unchecked_t *v)
18330 +{
18331 asm volatile(LOCK_PREFIX "incq %0"
18332 : "=m" (v->counter)
18333 : "m" (v->counter));
18334 @@ -96,7 +185,28 @@ static __always_inline void atomic64_inc(atomic64_t *v)
18335 */
18336 static __always_inline void atomic64_dec(atomic64_t *v)
18337 {
18338 - asm volatile(LOCK_PREFIX "decq %0"
18339 + asm volatile(LOCK_PREFIX "decq %0\n"
18340 +
18341 +#ifdef CONFIG_PAX_REFCOUNT
18342 + "jno 0f\n"
18343 + LOCK_PREFIX "incq %0\n"
18344 + "int $4\n0:\n"
18345 + _ASM_EXTABLE(0b, 0b)
18346 +#endif
18347 +
18348 + : "=m" (v->counter)
18349 + : "m" (v->counter));
18350 +}
18351 +
18352 +/**
18353 + * atomic64_dec_unchecked - decrement atomic64 variable
18354 + * @v: pointer to type atomic64_t
18355 + *
18356 + * Atomically decrements @v by 1.
18357 + */
18358 +static __always_inline void atomic64_dec_unchecked(atomic64_unchecked_t *v)
18359 +{
18360 + asm volatile(LOCK_PREFIX "decq %0\n"
18361 : "=m" (v->counter)
18362 : "m" (v->counter));
18363 }
18364 @@ -111,7 +221,7 @@ static __always_inline void atomic64_dec(atomic64_t *v)
18365 */
18366 static inline int atomic64_dec_and_test(atomic64_t *v)
18367 {
18368 - GEN_UNARY_RMWcc(LOCK_PREFIX "decq", v->counter, "%0", "e");
18369 + GEN_UNARY_RMWcc(LOCK_PREFIX "decq", LOCK_PREFIX "incq", v->counter, "%0", "e");
18370 }
18371
18372 /**
18373 @@ -124,7 +234,7 @@ static inline int atomic64_dec_and_test(atomic64_t *v)
18374 */
18375 static inline int atomic64_inc_and_test(atomic64_t *v)
18376 {
18377 - GEN_UNARY_RMWcc(LOCK_PREFIX "incq", v->counter, "%0", "e");
18378 + GEN_UNARY_RMWcc(LOCK_PREFIX "incq", LOCK_PREFIX "decq", v->counter, "%0", "e");
18379 }
18380
18381 /**
18382 @@ -138,7 +248,7 @@ static inline int atomic64_inc_and_test(atomic64_t *v)
18383 */
18384 static inline int atomic64_add_negative(long i, atomic64_t *v)
18385 {
18386 - GEN_BINARY_RMWcc(LOCK_PREFIX "addq", v->counter, "er", i, "%0", "s");
18387 + GEN_BINARY_RMWcc(LOCK_PREFIX "addq", LOCK_PREFIX "subq", v->counter, "er", i, "%0", "s");
18388 }
18389
18390 /**
18391 @@ -150,6 +260,18 @@ static inline int atomic64_add_negative(long i, atomic64_t *v)
18392 */
18393 static __always_inline long atomic64_add_return(long i, atomic64_t *v)
18394 {
18395 + return i + xadd_check_overflow(&v->counter, i);
18396 +}
18397 +
18398 +/**
18399 + * atomic64_add_return_unchecked - add and return
18400 + * @i: integer value to add
18401 + * @v: pointer to type atomic64_unchecked_t
18402 + *
18403 + * Atomically adds @i to @v and returns @i + @v
18404 + */
18405 +static __always_inline long atomic64_add_return_unchecked(long i, atomic64_unchecked_t *v)
18406 +{
18407 return i + xadd(&v->counter, i);
18408 }
18409
18410 @@ -159,6 +281,10 @@ static inline long atomic64_sub_return(long i, atomic64_t *v)
18411 }
18412
18413 #define atomic64_inc_return(v) (atomic64_add_return(1, (v)))
18414 +static inline long atomic64_inc_return_unchecked(atomic64_unchecked_t *v)
18415 +{
18416 + return atomic64_add_return_unchecked(1, v);
18417 +}
18418 #define atomic64_dec_return(v) (atomic64_sub_return(1, (v)))
18419
18420 static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
18421 @@ -166,6 +292,11 @@ static inline long atomic64_cmpxchg(atomic64_t *v, long old, long new)
18422 return cmpxchg(&v->counter, old, new);
18423 }
18424
18425 +static inline long atomic64_cmpxchg_unchecked(atomic64_unchecked_t *v, long old, long new)
18426 +{
18427 + return cmpxchg(&v->counter, old, new);
18428 +}
18429 +
18430 static inline long atomic64_xchg(atomic64_t *v, long new)
18431 {
18432 return xchg(&v->counter, new);
18433 @@ -182,17 +313,30 @@ static inline long atomic64_xchg(atomic64_t *v, long new)
18434 */
18435 static inline int atomic64_add_unless(atomic64_t *v, long a, long u)
18436 {
18437 - long c, old;
18438 + long c, old, new;
18439 c = atomic64_read(v);
18440 for (;;) {
18441 - if (unlikely(c == (u)))
18442 + if (unlikely(c == u))
18443 break;
18444 - old = atomic64_cmpxchg((v), c, c + (a));
18445 +
18446 + asm volatile("add %2,%0\n"
18447 +
18448 +#ifdef CONFIG_PAX_REFCOUNT
18449 + "jno 0f\n"
18450 + "sub %2,%0\n"
18451 + "int $4\n0:\n"
18452 + _ASM_EXTABLE(0b, 0b)
18453 +#endif
18454 +
18455 + : "=r" (new)
18456 + : "0" (c), "ir" (a));
18457 +
18458 + old = atomic64_cmpxchg(v, c, new);
18459 if (likely(old == c))
18460 break;
18461 c = old;
18462 }
18463 - return c != (u);
18464 + return c != u;
18465 }
18466
18467 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1, 0)
18468 diff --git a/arch/x86/include/asm/barrier.h b/arch/x86/include/asm/barrier.h
18469 index e51a8f8..ee075df 100644
18470 --- a/arch/x86/include/asm/barrier.h
18471 +++ b/arch/x86/include/asm/barrier.h
18472 @@ -57,7 +57,7 @@
18473 do { \
18474 compiletime_assert_atomic_type(*p); \
18475 smp_mb(); \
18476 - ACCESS_ONCE(*p) = (v); \
18477 + ACCESS_ONCE_RW(*p) = (v); \
18478 } while (0)
18479
18480 #define smp_load_acquire(p) \
18481 @@ -74,7 +74,7 @@ do { \
18482 do { \
18483 compiletime_assert_atomic_type(*p); \
18484 barrier(); \
18485 - ACCESS_ONCE(*p) = (v); \
18486 + ACCESS_ONCE_RW(*p) = (v); \
18487 } while (0)
18488
18489 #define smp_load_acquire(p) \
18490 diff --git a/arch/x86/include/asm/bitops.h b/arch/x86/include/asm/bitops.h
18491 index cfe3b95..d01b118 100644
18492 --- a/arch/x86/include/asm/bitops.h
18493 +++ b/arch/x86/include/asm/bitops.h
18494 @@ -50,7 +50,7 @@
18495 * a mask operation on a byte.
18496 */
18497 #define IS_IMMEDIATE(nr) (__builtin_constant_p(nr))
18498 -#define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((void *)(addr) + ((nr)>>3))
18499 +#define CONST_MASK_ADDR(nr, addr) BITOP_ADDR((volatile void *)(addr) + ((nr)>>3))
18500 #define CONST_MASK(nr) (1 << ((nr) & 7))
18501
18502 /**
18503 @@ -203,7 +203,7 @@ static inline void change_bit(long nr, volatile unsigned long *addr)
18504 */
18505 static inline int test_and_set_bit(long nr, volatile unsigned long *addr)
18506 {
18507 - GEN_BINARY_RMWcc(LOCK_PREFIX "bts", *addr, "Ir", nr, "%0", "c");
18508 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "bts", *addr, "Ir", nr, "%0", "c");
18509 }
18510
18511 /**
18512 @@ -249,7 +249,7 @@ static inline int __test_and_set_bit(long nr, volatile unsigned long *addr)
18513 */
18514 static inline int test_and_clear_bit(long nr, volatile unsigned long *addr)
18515 {
18516 - GEN_BINARY_RMWcc(LOCK_PREFIX "btr", *addr, "Ir", nr, "%0", "c");
18517 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "btr", *addr, "Ir", nr, "%0", "c");
18518 }
18519
18520 /**
18521 @@ -302,7 +302,7 @@ static inline int __test_and_change_bit(long nr, volatile unsigned long *addr)
18522 */
18523 static inline int test_and_change_bit(long nr, volatile unsigned long *addr)
18524 {
18525 - GEN_BINARY_RMWcc(LOCK_PREFIX "btc", *addr, "Ir", nr, "%0", "c");
18526 + GEN_BINARY_RMWcc_unchecked(LOCK_PREFIX "btc", *addr, "Ir", nr, "%0", "c");
18527 }
18528
18529 static __always_inline int constant_test_bit(long nr, const volatile unsigned long *addr)
18530 @@ -343,7 +343,7 @@ static int test_bit(int nr, const volatile unsigned long *addr);
18531 *
18532 * Undefined if no bit exists, so code should check against 0 first.
18533 */
18534 -static inline unsigned long __ffs(unsigned long word)
18535 +static inline unsigned long __intentional_overflow(-1) __ffs(unsigned long word)
18536 {
18537 asm("rep; bsf %1,%0"
18538 : "=r" (word)
18539 @@ -357,7 +357,7 @@ static inline unsigned long __ffs(unsigned long word)
18540 *
18541 * Undefined if no zero exists, so code should check against ~0UL first.
18542 */
18543 -static inline unsigned long ffz(unsigned long word)
18544 +static inline unsigned long __intentional_overflow(-1) ffz(unsigned long word)
18545 {
18546 asm("rep; bsf %1,%0"
18547 : "=r" (word)
18548 @@ -371,7 +371,7 @@ static inline unsigned long ffz(unsigned long word)
18549 *
18550 * Undefined if no set bit exists, so code should check against 0 first.
18551 */
18552 -static inline unsigned long __fls(unsigned long word)
18553 +static inline unsigned long __intentional_overflow(-1) __fls(unsigned long word)
18554 {
18555 asm("bsr %1,%0"
18556 : "=r" (word)
18557 @@ -434,7 +434,7 @@ static inline int ffs(int x)
18558 * set bit if value is nonzero. The last (most significant) bit is
18559 * at position 32.
18560 */
18561 -static inline int fls(int x)
18562 +static inline int __intentional_overflow(-1) fls(int x)
18563 {
18564 int r;
18565
18566 @@ -476,7 +476,7 @@ static inline int fls(int x)
18567 * at position 64.
18568 */
18569 #ifdef CONFIG_X86_64
18570 -static __always_inline int fls64(__u64 x)
18571 +static __always_inline __intentional_overflow(-1) int fls64(__u64 x)
18572 {
18573 int bitpos = -1;
18574 /*
18575 diff --git a/arch/x86/include/asm/boot.h b/arch/x86/include/asm/boot.h
18576 index 4fa687a..4ca636f 100644
18577 --- a/arch/x86/include/asm/boot.h
18578 +++ b/arch/x86/include/asm/boot.h
18579 @@ -6,7 +6,7 @@
18580 #include <uapi/asm/boot.h>
18581
18582 /* Physical address where kernel should be loaded. */
18583 -#define LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
18584 +#define ____LOAD_PHYSICAL_ADDR ((CONFIG_PHYSICAL_START \
18585 + (CONFIG_PHYSICAL_ALIGN - 1)) \
18586 & ~(CONFIG_PHYSICAL_ALIGN - 1))
18587
18588 diff --git a/arch/x86/include/asm/cache.h b/arch/x86/include/asm/cache.h
18589 index 48f99f1..d78ebf9 100644
18590 --- a/arch/x86/include/asm/cache.h
18591 +++ b/arch/x86/include/asm/cache.h
18592 @@ -5,12 +5,13 @@
18593
18594 /* L1 cache line size */
18595 #define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
18596 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
18597 +#define L1_CACHE_BYTES (_AC(1,UL) << L1_CACHE_SHIFT)
18598
18599 #define __read_mostly __attribute__((__section__(".data..read_mostly")))
18600 +#define __read_only __attribute__((__section__(".data..read_only")))
18601
18602 #define INTERNODE_CACHE_SHIFT CONFIG_X86_INTERNODE_CACHE_SHIFT
18603 -#define INTERNODE_CACHE_BYTES (1 << INTERNODE_CACHE_SHIFT)
18604 +#define INTERNODE_CACHE_BYTES (_AC(1,UL) << INTERNODE_CACHE_SHIFT)
18605
18606 #ifdef CONFIG_X86_VSMP
18607 #ifdef CONFIG_SMP
18608 diff --git a/arch/x86/include/asm/checksum_32.h b/arch/x86/include/asm/checksum_32.h
18609 index f50de69..2b0a458 100644
18610 --- a/arch/x86/include/asm/checksum_32.h
18611 +++ b/arch/x86/include/asm/checksum_32.h
18612 @@ -31,6 +31,14 @@ asmlinkage __wsum csum_partial_copy_generic(const void *src, void *dst,
18613 int len, __wsum sum,
18614 int *src_err_ptr, int *dst_err_ptr);
18615
18616 +asmlinkage __wsum csum_partial_copy_generic_to_user(const void *src, void *dst,
18617 + int len, __wsum sum,
18618 + int *src_err_ptr, int *dst_err_ptr);
18619 +
18620 +asmlinkage __wsum csum_partial_copy_generic_from_user(const void *src, void *dst,
18621 + int len, __wsum sum,
18622 + int *src_err_ptr, int *dst_err_ptr);
18623 +
18624 /*
18625 * Note: when you get a NULL pointer exception here this means someone
18626 * passed in an incorrect kernel address to one of these functions.
18627 @@ -53,7 +61,7 @@ static inline __wsum csum_partial_copy_from_user(const void __user *src,
18628
18629 might_sleep();
18630 stac();
18631 - ret = csum_partial_copy_generic((__force void *)src, dst,
18632 + ret = csum_partial_copy_generic_from_user((__force void *)src, dst,
18633 len, sum, err_ptr, NULL);
18634 clac();
18635
18636 @@ -187,7 +195,7 @@ static inline __wsum csum_and_copy_to_user(const void *src,
18637 might_sleep();
18638 if (access_ok(VERIFY_WRITE, dst, len)) {
18639 stac();
18640 - ret = csum_partial_copy_generic(src, (__force void *)dst,
18641 + ret = csum_partial_copy_generic_to_user(src, (__force void *)dst,
18642 len, sum, NULL, err_ptr);
18643 clac();
18644 return ret;
18645 diff --git a/arch/x86/include/asm/cmpxchg.h b/arch/x86/include/asm/cmpxchg.h
18646 index ad19841..0784041 100644
18647 --- a/arch/x86/include/asm/cmpxchg.h
18648 +++ b/arch/x86/include/asm/cmpxchg.h
18649 @@ -14,8 +14,12 @@ extern void __cmpxchg_wrong_size(void)
18650 __compiletime_error("Bad argument size for cmpxchg");
18651 extern void __xadd_wrong_size(void)
18652 __compiletime_error("Bad argument size for xadd");
18653 +extern void __xadd_check_overflow_wrong_size(void)
18654 + __compiletime_error("Bad argument size for xadd_check_overflow");
18655 extern void __add_wrong_size(void)
18656 __compiletime_error("Bad argument size for add");
18657 +extern void __add_check_overflow_wrong_size(void)
18658 + __compiletime_error("Bad argument size for add_check_overflow");
18659
18660 /*
18661 * Constants for operation sizes. On 32-bit, the 64-bit size it set to
18662 @@ -67,6 +71,38 @@ extern void __add_wrong_size(void)
18663 __ret; \
18664 })
18665
18666 +#ifdef CONFIG_PAX_REFCOUNT
18667 +#define __xchg_op_check_overflow(ptr, arg, op, lock) \
18668 + ({ \
18669 + __typeof__ (*(ptr)) __ret = (arg); \
18670 + switch (sizeof(*(ptr))) { \
18671 + case __X86_CASE_L: \
18672 + asm volatile (lock #op "l %0, %1\n" \
18673 + "jno 0f\n" \
18674 + "mov %0,%1\n" \
18675 + "int $4\n0:\n" \
18676 + _ASM_EXTABLE(0b, 0b) \
18677 + : "+r" (__ret), "+m" (*(ptr)) \
18678 + : : "memory", "cc"); \
18679 + break; \
18680 + case __X86_CASE_Q: \
18681 + asm volatile (lock #op "q %q0, %1\n" \
18682 + "jno 0f\n" \
18683 + "mov %0,%1\n" \
18684 + "int $4\n0:\n" \
18685 + _ASM_EXTABLE(0b, 0b) \
18686 + : "+r" (__ret), "+m" (*(ptr)) \
18687 + : : "memory", "cc"); \
18688 + break; \
18689 + default: \
18690 + __ ## op ## _check_overflow_wrong_size(); \
18691 + } \
18692 + __ret; \
18693 + })
18694 +#else
18695 +#define __xchg_op_check_overflow(ptr, arg, op, lock) __xchg_op(ptr, arg, op, lock)
18696 +#endif
18697 +
18698 /*
18699 * Note: no "lock" prefix even on SMP: xchg always implies lock anyway.
18700 * Since this is generally used to protect other memory information, we
18701 @@ -165,6 +201,9 @@ extern void __add_wrong_size(void)
18702 #define xadd_sync(ptr, inc) __xadd((ptr), (inc), "lock; ")
18703 #define xadd_local(ptr, inc) __xadd((ptr), (inc), "")
18704
18705 +#define __xadd_check_overflow(ptr, inc, lock) __xchg_op_check_overflow((ptr), (inc), xadd, lock)
18706 +#define xadd_check_overflow(ptr, inc) __xadd_check_overflow((ptr), (inc), LOCK_PREFIX)
18707 +
18708 #define __add(ptr, inc, lock) \
18709 ({ \
18710 __typeof__ (*(ptr)) __ret = (inc); \
18711 diff --git a/arch/x86/include/asm/compat.h b/arch/x86/include/asm/compat.h
18712 index acdee09..a553db3 100644
18713 --- a/arch/x86/include/asm/compat.h
18714 +++ b/arch/x86/include/asm/compat.h
18715 @@ -41,7 +41,7 @@ typedef s64 __attribute__((aligned(4))) compat_s64;
18716 typedef u32 compat_uint_t;
18717 typedef u32 compat_ulong_t;
18718 typedef u64 __attribute__((aligned(4))) compat_u64;
18719 -typedef u32 compat_uptr_t;
18720 +typedef u32 __user compat_uptr_t;
18721
18722 struct compat_timespec {
18723 compat_time_t tv_sec;
18724 diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
18725 index 3d6606f..300641d 100644
18726 --- a/arch/x86/include/asm/cpufeature.h
18727 +++ b/arch/x86/include/asm/cpufeature.h
18728 @@ -214,7 +214,8 @@
18729 #define X86_FEATURE_PAUSEFILTER ( 8*32+13) /* AMD filtered pause intercept */
18730 #define X86_FEATURE_PFTHRESHOLD ( 8*32+14) /* AMD pause filter threshold */
18731 #define X86_FEATURE_VMMCALL ( 8*32+15) /* Prefer vmmcall to vmcall */
18732 -
18733 +#define X86_FEATURE_PCIDUDEREF ( 8*32+30) /* PaX PCID based UDEREF */
18734 +#define X86_FEATURE_STRONGUDEREF (8*32+31) /* PaX PCID based strong UDEREF */
18735
18736 /* Intel-defined CPU features, CPUID level 0x00000007:0 (ebx), word 9 */
18737 #define X86_FEATURE_FSGSBASE ( 9*32+ 0) /* {RD/WR}{FS/GS}BASE instructions*/
18738 @@ -222,7 +223,7 @@
18739 #define X86_FEATURE_BMI1 ( 9*32+ 3) /* 1st group bit manipulation extensions */
18740 #define X86_FEATURE_HLE ( 9*32+ 4) /* Hardware Lock Elision */
18741 #define X86_FEATURE_AVX2 ( 9*32+ 5) /* AVX2 instructions */
18742 -#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Protection */
18743 +#define X86_FEATURE_SMEP ( 9*32+ 7) /* Supervisor Mode Execution Prevention */
18744 #define X86_FEATURE_BMI2 ( 9*32+ 8) /* 2nd group bit manipulation extensions */
18745 #define X86_FEATURE_ERMS ( 9*32+ 9) /* Enhanced REP MOVSB/STOSB */
18746 #define X86_FEATURE_INVPCID ( 9*32+10) /* Invalidate Processor Context ID */
18747 @@ -401,6 +402,7 @@ extern const char * const x86_bug_flags[NBUGINTS*32];
18748 #define cpu_has_eager_fpu boot_cpu_has(X86_FEATURE_EAGER_FPU)
18749 #define cpu_has_topoext boot_cpu_has(X86_FEATURE_TOPOEXT)
18750 #define cpu_has_bpext boot_cpu_has(X86_FEATURE_BPEXT)
18751 +#define cpu_has_pcid boot_cpu_has(X86_FEATURE_PCID)
18752
18753 #if __GNUC__ >= 4
18754 extern void warn_pre_alternatives(void);
18755 @@ -454,7 +456,8 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
18756
18757 #ifdef CONFIG_X86_DEBUG_STATIC_CPU_HAS
18758 t_warn:
18759 - warn_pre_alternatives();
18760 + if (bit != X86_FEATURE_PCID && bit != X86_FEATURE_INVPCID && bit != X86_FEATURE_PCIDUDEREF)
18761 + warn_pre_alternatives();
18762 return false;
18763 #endif
18764
18765 @@ -475,7 +478,7 @@ static __always_inline __pure bool __static_cpu_has(u16 bit)
18766 ".section .discard,\"aw\",@progbits\n"
18767 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
18768 ".previous\n"
18769 - ".section .altinstr_replacement,\"ax\"\n"
18770 + ".section .altinstr_replacement,\"a\"\n"
18771 "3: movb $1,%0\n"
18772 "4:\n"
18773 ".previous\n"
18774 @@ -510,7 +513,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18775 " .byte 5f - 4f\n" /* repl len */
18776 " .byte 3b - 2b\n" /* pad len */
18777 ".previous\n"
18778 - ".section .altinstr_replacement,\"ax\"\n"
18779 + ".section .altinstr_replacement,\"a\"\n"
18780 "4: jmp %l[t_no]\n"
18781 "5:\n"
18782 ".previous\n"
18783 @@ -545,7 +548,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18784 ".section .discard,\"aw\",@progbits\n"
18785 " .byte 0xff + (4f-3f) - (2b-1b)\n" /* size check */
18786 ".previous\n"
18787 - ".section .altinstr_replacement,\"ax\"\n"
18788 + ".section .altinstr_replacement,\"a\"\n"
18789 "3: movb $0,%0\n"
18790 "4:\n"
18791 ".previous\n"
18792 @@ -560,7 +563,7 @@ static __always_inline __pure bool _static_cpu_has_safe(u16 bit)
18793 ".section .discard,\"aw\",@progbits\n"
18794 " .byte 0xff + (6f-5f) - (4b-3b)\n" /* size check */
18795 ".previous\n"
18796 - ".section .altinstr_replacement,\"ax\"\n"
18797 + ".section .altinstr_replacement,\"a\"\n"
18798 "5: movb $1,%0\n"
18799 "6:\n"
18800 ".previous\n"
18801 diff --git a/arch/x86/include/asm/desc.h b/arch/x86/include/asm/desc.h
18802 index 4e10d73..7319a47 100644
18803 --- a/arch/x86/include/asm/desc.h
18804 +++ b/arch/x86/include/asm/desc.h
18805 @@ -4,6 +4,7 @@
18806 #include <asm/desc_defs.h>
18807 #include <asm/ldt.h>
18808 #include <asm/mmu.h>
18809 +#include <asm/pgtable.h>
18810
18811 #include <linux/smp.h>
18812 #include <linux/percpu.h>
18813 @@ -17,6 +18,7 @@ static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *in
18814
18815 desc->type = (info->read_exec_only ^ 1) << 1;
18816 desc->type |= info->contents << 2;
18817 + desc->type |= info->seg_not_present ^ 1;
18818
18819 desc->s = 1;
18820 desc->dpl = 0x3;
18821 @@ -35,19 +37,14 @@ static inline void fill_ldt(struct desc_struct *desc, const struct user_desc *in
18822 }
18823
18824 extern struct desc_ptr idt_descr;
18825 -extern gate_desc idt_table[];
18826 -extern struct desc_ptr debug_idt_descr;
18827 -extern gate_desc debug_idt_table[];
18828 -
18829 -struct gdt_page {
18830 - struct desc_struct gdt[GDT_ENTRIES];
18831 -} __attribute__((aligned(PAGE_SIZE)));
18832 -
18833 -DECLARE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page);
18834 +extern gate_desc idt_table[IDT_ENTRIES];
18835 +extern const struct desc_ptr debug_idt_descr;
18836 +extern gate_desc debug_idt_table[IDT_ENTRIES];
18837
18838 +extern struct desc_struct cpu_gdt_table[NR_CPUS][PAGE_SIZE / sizeof(struct desc_struct)];
18839 static inline struct desc_struct *get_cpu_gdt_table(unsigned int cpu)
18840 {
18841 - return per_cpu(gdt_page, cpu).gdt;
18842 + return cpu_gdt_table[cpu];
18843 }
18844
18845 #ifdef CONFIG_X86_64
18846 @@ -72,8 +69,14 @@ static inline void pack_gate(gate_desc *gate, unsigned char type,
18847 unsigned long base, unsigned dpl, unsigned flags,
18848 unsigned short seg)
18849 {
18850 - gate->a = (seg << 16) | (base & 0xffff);
18851 - gate->b = (base & 0xffff0000) | (((0x80 | type | (dpl << 5)) & 0xff) << 8);
18852 + gate->gate.offset_low = base;
18853 + gate->gate.seg = seg;
18854 + gate->gate.reserved = 0;
18855 + gate->gate.type = type;
18856 + gate->gate.s = 0;
18857 + gate->gate.dpl = dpl;
18858 + gate->gate.p = 1;
18859 + gate->gate.offset_high = base >> 16;
18860 }
18861
18862 #endif
18863 @@ -118,12 +121,16 @@ static inline void paravirt_free_ldt(struct desc_struct *ldt, unsigned entries)
18864
18865 static inline void native_write_idt_entry(gate_desc *idt, int entry, const gate_desc *gate)
18866 {
18867 + pax_open_kernel();
18868 memcpy(&idt[entry], gate, sizeof(*gate));
18869 + pax_close_kernel();
18870 }
18871
18872 static inline void native_write_ldt_entry(struct desc_struct *ldt, int entry, const void *desc)
18873 {
18874 + pax_open_kernel();
18875 memcpy(&ldt[entry], desc, 8);
18876 + pax_close_kernel();
18877 }
18878
18879 static inline void
18880 @@ -137,7 +144,9 @@ native_write_gdt_entry(struct desc_struct *gdt, int entry, const void *desc, int
18881 default: size = sizeof(*gdt); break;
18882 }
18883
18884 + pax_open_kernel();
18885 memcpy(&gdt[entry], desc, size);
18886 + pax_close_kernel();
18887 }
18888
18889 static inline void pack_descriptor(struct desc_struct *desc, unsigned long base,
18890 @@ -210,7 +219,9 @@ static inline void native_set_ldt(const void *addr, unsigned int entries)
18891
18892 static inline void native_load_tr_desc(void)
18893 {
18894 + pax_open_kernel();
18895 asm volatile("ltr %w0"::"q" (GDT_ENTRY_TSS*8));
18896 + pax_close_kernel();
18897 }
18898
18899 static inline void native_load_gdt(const struct desc_ptr *dtr)
18900 @@ -247,8 +258,10 @@ static inline void native_load_tls(struct thread_struct *t, unsigned int cpu)
18901 struct desc_struct *gdt = get_cpu_gdt_table(cpu);
18902 unsigned int i;
18903
18904 + pax_open_kernel();
18905 for (i = 0; i < GDT_ENTRY_TLS_ENTRIES; i++)
18906 gdt[GDT_ENTRY_TLS_MIN + i] = t->tls_array[i];
18907 + pax_close_kernel();
18908 }
18909
18910 /* This intentionally ignores lm, since 32-bit apps don't have that field. */
18911 @@ -280,7 +293,7 @@ static inline void clear_LDT(void)
18912 set_ldt(NULL, 0);
18913 }
18914
18915 -static inline unsigned long get_desc_base(const struct desc_struct *desc)
18916 +static inline unsigned long __intentional_overflow(-1) get_desc_base(const struct desc_struct *desc)
18917 {
18918 return (unsigned)(desc->base0 | ((desc->base1) << 16) | ((desc->base2) << 24));
18919 }
18920 @@ -304,7 +317,7 @@ static inline void set_desc_limit(struct desc_struct *desc, unsigned long limit)
18921 }
18922
18923 #ifdef CONFIG_X86_64
18924 -static inline void set_nmi_gate(int gate, void *addr)
18925 +static inline void set_nmi_gate(int gate, const void *addr)
18926 {
18927 gate_desc s;
18928
18929 @@ -314,14 +327,14 @@ static inline void set_nmi_gate(int gate, void *addr)
18930 #endif
18931
18932 #ifdef CONFIG_TRACING
18933 -extern struct desc_ptr trace_idt_descr;
18934 -extern gate_desc trace_idt_table[];
18935 +extern const struct desc_ptr trace_idt_descr;
18936 +extern gate_desc trace_idt_table[IDT_ENTRIES];
18937 static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
18938 {
18939 write_idt_entry(trace_idt_table, entry, gate);
18940 }
18941
18942 -static inline void _trace_set_gate(int gate, unsigned type, void *addr,
18943 +static inline void _trace_set_gate(int gate, unsigned type, const void *addr,
18944 unsigned dpl, unsigned ist, unsigned seg)
18945 {
18946 gate_desc s;
18947 @@ -341,7 +354,7 @@ static inline void write_trace_idt_entry(int entry, const gate_desc *gate)
18948 #define _trace_set_gate(gate, type, addr, dpl, ist, seg)
18949 #endif
18950
18951 -static inline void _set_gate(int gate, unsigned type, void *addr,
18952 +static inline void _set_gate(int gate, unsigned type, const void *addr,
18953 unsigned dpl, unsigned ist, unsigned seg)
18954 {
18955 gate_desc s;
18956 @@ -364,14 +377,14 @@ static inline void _set_gate(int gate, unsigned type, void *addr,
18957 #define set_intr_gate_notrace(n, addr) \
18958 do { \
18959 BUG_ON((unsigned)n > 0xFF); \
18960 - _set_gate(n, GATE_INTERRUPT, (void *)addr, 0, 0, \
18961 + _set_gate(n, GATE_INTERRUPT, (const void *)addr, 0, 0, \
18962 __KERNEL_CS); \
18963 } while (0)
18964
18965 #define set_intr_gate(n, addr) \
18966 do { \
18967 set_intr_gate_notrace(n, addr); \
18968 - _trace_set_gate(n, GATE_INTERRUPT, (void *)trace_##addr,\
18969 + _trace_set_gate(n, GATE_INTERRUPT, (const void *)trace_##addr,\
18970 0, 0, __KERNEL_CS); \
18971 } while (0)
18972
18973 @@ -399,19 +412,19 @@ static inline void alloc_system_vector(int vector)
18974 /*
18975 * This routine sets up an interrupt gate at directory privilege level 3.
18976 */
18977 -static inline void set_system_intr_gate(unsigned int n, void *addr)
18978 +static inline void set_system_intr_gate(unsigned int n, const void *addr)
18979 {
18980 BUG_ON((unsigned)n > 0xFF);
18981 _set_gate(n, GATE_INTERRUPT, addr, 0x3, 0, __KERNEL_CS);
18982 }
18983
18984 -static inline void set_system_trap_gate(unsigned int n, void *addr)
18985 +static inline void set_system_trap_gate(unsigned int n, const void *addr)
18986 {
18987 BUG_ON((unsigned)n > 0xFF);
18988 _set_gate(n, GATE_TRAP, addr, 0x3, 0, __KERNEL_CS);
18989 }
18990
18991 -static inline void set_trap_gate(unsigned int n, void *addr)
18992 +static inline void set_trap_gate(unsigned int n, const void *addr)
18993 {
18994 BUG_ON((unsigned)n > 0xFF);
18995 _set_gate(n, GATE_TRAP, addr, 0, 0, __KERNEL_CS);
18996 @@ -420,16 +433,16 @@ static inline void set_trap_gate(unsigned int n, void *addr)
18997 static inline void set_task_gate(unsigned int n, unsigned int gdt_entry)
18998 {
18999 BUG_ON((unsigned)n > 0xFF);
19000 - _set_gate(n, GATE_TASK, (void *)0, 0, 0, (gdt_entry<<3));
19001 + _set_gate(n, GATE_TASK, (const void *)0, 0, 0, (gdt_entry<<3));
19002 }
19003
19004 -static inline void set_intr_gate_ist(int n, void *addr, unsigned ist)
19005 +static inline void set_intr_gate_ist(int n, const void *addr, unsigned ist)
19006 {
19007 BUG_ON((unsigned)n > 0xFF);
19008 _set_gate(n, GATE_INTERRUPT, addr, 0, ist, __KERNEL_CS);
19009 }
19010
19011 -static inline void set_system_intr_gate_ist(int n, void *addr, unsigned ist)
19012 +static inline void set_system_intr_gate_ist(int n, const void *addr, unsigned ist)
19013 {
19014 BUG_ON((unsigned)n > 0xFF);
19015 _set_gate(n, GATE_INTERRUPT, addr, 0x3, ist, __KERNEL_CS);
19016 @@ -501,4 +514,17 @@ static inline void load_current_idt(void)
19017 else
19018 load_idt((const struct desc_ptr *)&idt_descr);
19019 }
19020 +
19021 +#ifdef CONFIG_X86_32
19022 +static inline void set_user_cs(unsigned long base, unsigned long limit, int cpu)
19023 +{
19024 + struct desc_struct d;
19025 +
19026 + if (likely(limit))
19027 + limit = (limit - 1UL) >> PAGE_SHIFT;
19028 + pack_descriptor(&d, base, limit, 0xFB, 0xC);
19029 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_DEFAULT_USER_CS, &d, DESCTYPE_S);
19030 +}
19031 +#endif
19032 +
19033 #endif /* _ASM_X86_DESC_H */
19034 diff --git a/arch/x86/include/asm/desc_defs.h b/arch/x86/include/asm/desc_defs.h
19035 index 278441f..b95a174 100644
19036 --- a/arch/x86/include/asm/desc_defs.h
19037 +++ b/arch/x86/include/asm/desc_defs.h
19038 @@ -31,6 +31,12 @@ struct desc_struct {
19039 unsigned base1: 8, type: 4, s: 1, dpl: 2, p: 1;
19040 unsigned limit: 4, avl: 1, l: 1, d: 1, g: 1, base2: 8;
19041 };
19042 + struct {
19043 + u16 offset_low;
19044 + u16 seg;
19045 + unsigned reserved: 8, type: 4, s: 1, dpl: 2, p: 1;
19046 + unsigned offset_high: 16;
19047 + } gate;
19048 };
19049 } __attribute__((packed));
19050
19051 diff --git a/arch/x86/include/asm/div64.h b/arch/x86/include/asm/div64.h
19052 index ced283a..ffe04cc 100644
19053 --- a/arch/x86/include/asm/div64.h
19054 +++ b/arch/x86/include/asm/div64.h
19055 @@ -39,7 +39,7 @@
19056 __mod; \
19057 })
19058
19059 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
19060 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
19061 {
19062 union {
19063 u64 v64;
19064 diff --git a/arch/x86/include/asm/elf.h b/arch/x86/include/asm/elf.h
19065 index f161c18..97d43e8 100644
19066 --- a/arch/x86/include/asm/elf.h
19067 +++ b/arch/x86/include/asm/elf.h
19068 @@ -75,9 +75,6 @@ typedef struct user_fxsr_struct elf_fpxregset_t;
19069
19070 #include <asm/vdso.h>
19071
19072 -#ifdef CONFIG_X86_64
19073 -extern unsigned int vdso64_enabled;
19074 -#endif
19075 #if defined(CONFIG_X86_32) || defined(CONFIG_COMPAT)
19076 extern unsigned int vdso32_enabled;
19077 #endif
19078 @@ -250,7 +247,25 @@ extern int force_personality32;
19079 the loader. We need to make sure that it is out of the way of the program
19080 that it will "exec", and that there is sufficient room for the brk. */
19081
19082 +#ifdef CONFIG_PAX_SEGMEXEC
19083 +#define ELF_ET_DYN_BASE ((current->mm->pax_flags & MF_PAX_SEGMEXEC) ? SEGMEXEC_TASK_SIZE/3*2 : TASK_SIZE/3*2)
19084 +#else
19085 #define ELF_ET_DYN_BASE (TASK_SIZE / 3 * 2)
19086 +#endif
19087 +
19088 +#ifdef CONFIG_PAX_ASLR
19089 +#ifdef CONFIG_X86_32
19090 +#define PAX_ELF_ET_DYN_BASE 0x10000000UL
19091 +
19092 +#define PAX_DELTA_MMAP_LEN (current->mm->pax_flags & MF_PAX_SEGMEXEC ? 15 : 16)
19093 +#define PAX_DELTA_STACK_LEN (current->mm->pax_flags & MF_PAX_SEGMEXEC ? 15 : 16)
19094 +#else
19095 +#define PAX_ELF_ET_DYN_BASE 0x400000UL
19096 +
19097 +#define PAX_DELTA_MMAP_LEN ((test_thread_flag(TIF_ADDR32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
19098 +#define PAX_DELTA_STACK_LEN ((test_thread_flag(TIF_ADDR32)) ? 16 : TASK_SIZE_MAX_SHIFT - PAGE_SHIFT - 3)
19099 +#endif
19100 +#endif
19101
19102 /* This yields a mask that user programs can use to figure out what
19103 instruction set this CPU supports. This could be done in user space,
19104 @@ -299,17 +314,13 @@ do { \
19105
19106 #define ARCH_DLINFO \
19107 do { \
19108 - if (vdso64_enabled) \
19109 - NEW_AUX_ENT(AT_SYSINFO_EHDR, \
19110 - (unsigned long __force)current->mm->context.vdso); \
19111 + NEW_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso); \
19112 } while (0)
19113
19114 /* As a historical oddity, the x32 and x86_64 vDSOs are controlled together. */
19115 #define ARCH_DLINFO_X32 \
19116 do { \
19117 - if (vdso64_enabled) \
19118 - NEW_AUX_ENT(AT_SYSINFO_EHDR, \
19119 - (unsigned long __force)current->mm->context.vdso); \
19120 + NEW_AUX_ENT(AT_SYSINFO_EHDR, current->mm->context.vdso); \
19121 } while (0)
19122
19123 #define AT_SYSINFO 32
19124 @@ -324,10 +335,10 @@ else \
19125
19126 #endif /* !CONFIG_X86_32 */
19127
19128 -#define VDSO_CURRENT_BASE ((unsigned long)current->mm->context.vdso)
19129 +#define VDSO_CURRENT_BASE (current->mm->context.vdso)
19130
19131 #define VDSO_ENTRY \
19132 - ((unsigned long)current->mm->context.vdso + \
19133 + (current->mm->context.vdso + \
19134 selected_vdso32->sym___kernel_vsyscall)
19135
19136 struct linux_binprm;
19137 diff --git a/arch/x86/include/asm/emergency-restart.h b/arch/x86/include/asm/emergency-restart.h
19138 index 77a99ac..39ff7f5 100644
19139 --- a/arch/x86/include/asm/emergency-restart.h
19140 +++ b/arch/x86/include/asm/emergency-restart.h
19141 @@ -1,6 +1,6 @@
19142 #ifndef _ASM_X86_EMERGENCY_RESTART_H
19143 #define _ASM_X86_EMERGENCY_RESTART_H
19144
19145 -extern void machine_emergency_restart(void);
19146 +extern void machine_emergency_restart(void) __noreturn;
19147
19148 #endif /* _ASM_X86_EMERGENCY_RESTART_H */
19149 diff --git a/arch/x86/include/asm/floppy.h b/arch/x86/include/asm/floppy.h
19150 index 1c7eefe..d0e4702 100644
19151 --- a/arch/x86/include/asm/floppy.h
19152 +++ b/arch/x86/include/asm/floppy.h
19153 @@ -229,18 +229,18 @@ static struct fd_routine_l {
19154 int (*_dma_setup)(char *addr, unsigned long size, int mode, int io);
19155 } fd_routine[] = {
19156 {
19157 - request_dma,
19158 - free_dma,
19159 - get_dma_residue,
19160 - dma_mem_alloc,
19161 - hard_dma_setup
19162 + ._request_dma = request_dma,
19163 + ._free_dma = free_dma,
19164 + ._get_dma_residue = get_dma_residue,
19165 + ._dma_mem_alloc = dma_mem_alloc,
19166 + ._dma_setup = hard_dma_setup
19167 },
19168 {
19169 - vdma_request_dma,
19170 - vdma_nop,
19171 - vdma_get_dma_residue,
19172 - vdma_mem_alloc,
19173 - vdma_dma_setup
19174 + ._request_dma = vdma_request_dma,
19175 + ._free_dma = vdma_nop,
19176 + ._get_dma_residue = vdma_get_dma_residue,
19177 + ._dma_mem_alloc = vdma_mem_alloc,
19178 + ._dma_setup = vdma_dma_setup
19179 }
19180 };
19181
19182 diff --git a/arch/x86/include/asm/fpu/internal.h b/arch/x86/include/asm/fpu/internal.h
19183 index 3c3550c..ca9e4c3 100644
19184 --- a/arch/x86/include/asm/fpu/internal.h
19185 +++ b/arch/x86/include/asm/fpu/internal.h
19186 @@ -97,8 +97,11 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);
19187 #define user_insn(insn, output, input...) \
19188 ({ \
19189 int err; \
19190 + pax_open_userland(); \
19191 asm volatile(ASM_STAC "\n" \
19192 - "1:" #insn "\n\t" \
19193 + "1:" \
19194 + __copyuser_seg \
19195 + #insn "\n\t" \
19196 "2: " ASM_CLAC "\n" \
19197 ".section .fixup,\"ax\"\n" \
19198 "3: movl $-1,%[err]\n" \
19199 @@ -107,6 +110,7 @@ extern void fpstate_sanitize_xstate(struct fpu *fpu);
19200 _ASM_EXTABLE(1b, 3b) \
19201 : [err] "=r" (err), output \
19202 : "0"(0), input); \
19203 + pax_close_userland(); \
19204 err; \
19205 })
19206
19207 @@ -186,9 +190,9 @@ static inline int copy_user_to_fregs(struct fregs_state __user *fx)
19208 static inline void copy_fxregs_to_kernel(struct fpu *fpu)
19209 {
19210 if (config_enabled(CONFIG_X86_32))
19211 - asm volatile( "fxsave %[fx]" : [fx] "=m" (fpu->state.fxsave));
19212 + asm volatile( "fxsave %[fx]" : [fx] "=m" (fpu->state->fxsave));
19213 else if (config_enabled(CONFIG_AS_FXSAVEQ))
19214 - asm volatile("fxsaveq %[fx]" : [fx] "=m" (fpu->state.fxsave));
19215 + asm volatile("fxsaveq %[fx]" : [fx] "=m" (fpu->state->fxsave));
19216 else {
19217 /* Using "rex64; fxsave %0" is broken because, if the memory
19218 * operand uses any extended registers for addressing, a second
19219 @@ -205,15 +209,15 @@ static inline void copy_fxregs_to_kernel(struct fpu *fpu)
19220 * an extended register is needed for addressing (fix submitted
19221 * to mainline 2005-11-21).
19222 *
19223 - * asm volatile("rex64/fxsave %0" : "=m" (fpu->state.fxsave));
19224 + * asm volatile("rex64/fxsave %0" : "=m" (fpu->state->fxsave));
19225 *
19226 * This, however, we can work around by forcing the compiler to
19227 * select an addressing mode that doesn't require extended
19228 * registers.
19229 */
19230 asm volatile( "rex64/fxsave (%[fx])"
19231 - : "=m" (fpu->state.fxsave)
19232 - : [fx] "R" (&fpu->state.fxsave));
19233 + : "=m" (fpu->state->fxsave)
19234 + : [fx] "R" (&fpu->state->fxsave));
19235 }
19236 }
19237
19238 @@ -388,12 +392,16 @@ static inline int copy_xregs_to_user(struct xregs_state __user *buf)
19239 if (unlikely(err))
19240 return -EFAULT;
19241
19242 + pax_open_userland();
19243 __asm__ __volatile__(ASM_STAC "\n"
19244 - "1:"XSAVE"\n"
19245 + "1:"
19246 + __copyuser_seg
19247 + XSAVE"\n"
19248 "2: " ASM_CLAC "\n"
19249 xstate_fault(err)
19250 : "D" (buf), "a" (-1), "d" (-1), "0" (err)
19251 : "memory");
19252 + pax_close_userland();
19253 return err;
19254 }
19255
19256 @@ -402,17 +410,21 @@ static inline int copy_xregs_to_user(struct xregs_state __user *buf)
19257 */
19258 static inline int copy_user_to_xregs(struct xregs_state __user *buf, u64 mask)
19259 {
19260 - struct xregs_state *xstate = ((__force struct xregs_state *)buf);
19261 + struct xregs_state *xstate = ((__force_kernel struct xregs_state *)buf);
19262 u32 lmask = mask;
19263 u32 hmask = mask >> 32;
19264 int err = 0;
19265
19266 + pax_open_userland();
19267 __asm__ __volatile__(ASM_STAC "\n"
19268 - "1:"XRSTOR"\n"
19269 + "1:"
19270 + __copyuser_seg
19271 + XRSTOR"\n"
19272 "2: " ASM_CLAC "\n"
19273 xstate_fault(err)
19274 : "D" (xstate), "a" (lmask), "d" (hmask), "0" (err)
19275 : "memory"); /* memory required? */
19276 + pax_close_userland();
19277 return err;
19278 }
19279
19280 @@ -429,7 +441,7 @@ static inline int copy_user_to_xregs(struct xregs_state __user *buf, u64 mask)
19281 static inline int copy_fpregs_to_fpstate(struct fpu *fpu)
19282 {
19283 if (likely(use_xsave())) {
19284 - copy_xregs_to_kernel(&fpu->state.xsave);
19285 + copy_xregs_to_kernel(&fpu->state->xsave);
19286 return 1;
19287 }
19288
19289 @@ -442,7 +454,7 @@ static inline int copy_fpregs_to_fpstate(struct fpu *fpu)
19290 * Legacy FPU register saving, FNSAVE always clears FPU registers,
19291 * so we have to mark them inactive:
19292 */
19293 - asm volatile("fnsave %[fp]; fwait" : [fp] "=m" (fpu->state.fsave));
19294 + asm volatile("fnsave %[fp]; fwait" : [fp] "=m" (fpu->state->fsave));
19295
19296 return 0;
19297 }
19298 @@ -471,7 +483,7 @@ static inline void copy_kernel_to_fpregs(union fpregs_state *fpstate)
19299 "fnclex\n\t"
19300 "emms\n\t"
19301 "fildl %P[addr]" /* set F?P to defined value */
19302 - : : [addr] "m" (fpstate));
19303 + : : [addr] "m" (cpu_tss[raw_smp_processor_id()].x86_tss.sp0));
19304 }
19305
19306 __copy_kernel_to_fpregs(fpstate);
19307 @@ -611,7 +623,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
19308 if (fpu.preload) {
19309 new_fpu->counter++;
19310 __fpregs_activate(new_fpu);
19311 - prefetch(&new_fpu->state);
19312 + prefetch(new_fpu->state);
19313 } else {
19314 __fpregs_deactivate_hw();
19315 }
19316 @@ -623,7 +635,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
19317 if (fpu_want_lazy_restore(new_fpu, cpu))
19318 fpu.preload = 0;
19319 else
19320 - prefetch(&new_fpu->state);
19321 + prefetch(new_fpu->state);
19322 fpregs_activate(new_fpu);
19323 }
19324 }
19325 @@ -643,7 +655,7 @@ switch_fpu_prepare(struct fpu *old_fpu, struct fpu *new_fpu, int cpu)
19326 static inline void switch_fpu_finish(struct fpu *new_fpu, fpu_switch_t fpu_switch)
19327 {
19328 if (fpu_switch.preload)
19329 - copy_kernel_to_fpregs(&new_fpu->state);
19330 + copy_kernel_to_fpregs(new_fpu->state);
19331 }
19332
19333 /*
19334 diff --git a/arch/x86/include/asm/fpu/types.h b/arch/x86/include/asm/fpu/types.h
19335 index c49c517..0a6e089 100644
19336 --- a/arch/x86/include/asm/fpu/types.h
19337 +++ b/arch/x86/include/asm/fpu/types.h
19338 @@ -189,7 +189,6 @@ union fpregs_state {
19339 struct fxregs_state fxsave;
19340 struct swregs_state soft;
19341 struct xregs_state xsave;
19342 - u8 __padding[PAGE_SIZE];
19343 };
19344
19345 /*
19346 @@ -199,6 +198,39 @@ union fpregs_state {
19347 */
19348 struct fpu {
19349 /*
19350 + * @state:
19351 + *
19352 + * In-memory copy of all FPU registers that we save/restore
19353 + * over context switches. If the task is using the FPU then
19354 + * the registers in the FPU are more recent than this state
19355 + * copy. If the task context-switches away then they get
19356 + * saved here and represent the FPU state.
19357 + *
19358 + * After context switches there may be a (short) time period
19359 + * during which the in-FPU hardware registers are unchanged
19360 + * and still perfectly match this state, if the tasks
19361 + * scheduled afterwards are not using the FPU.
19362 + *
19363 + * This is the 'lazy restore' window of optimization, which
19364 + * we track though 'fpu_fpregs_owner_ctx' and 'fpu->last_cpu'.
19365 + *
19366 + * We detect whether a subsequent task uses the FPU via setting
19367 + * CR0::TS to 1, which causes any FPU use to raise a #NM fault.
19368 + *
19369 + * During this window, if the task gets scheduled again, we
19370 + * might be able to skip having to do a restore from this
19371 + * memory buffer to the hardware registers - at the cost of
19372 + * incurring the overhead of #NM fault traps.
19373 + *
19374 + * Note that on modern CPUs that support the XSAVEOPT (or other
19375 + * optimized XSAVE instructions), we don't use #NM traps anymore,
19376 + * as the hardware can track whether FPU registers need saving
19377 + * or not. On such CPUs we activate the non-lazy ('eagerfpu')
19378 + * logic, which unconditionally saves/restores all FPU state
19379 + * across context switches. (if FPU state exists.)
19380 + */
19381 + union fpregs_state *state;
19382 + /*
19383 * @last_cpu:
19384 *
19385 * Records the last CPU on which this context was loaded into
19386 @@ -255,43 +287,6 @@ struct fpu {
19387 * deal with bursty apps that only use the FPU for a short time:
19388 */
19389 unsigned char counter;
19390 - /*
19391 - * @state:
19392 - *
19393 - * In-memory copy of all FPU registers that we save/restore
19394 - * over context switches. If the task is using the FPU then
19395 - * the registers in the FPU are more recent than this state
19396 - * copy. If the task context-switches away then they get
19397 - * saved here and represent the FPU state.
19398 - *
19399 - * After context switches there may be a (short) time period
19400 - * during which the in-FPU hardware registers are unchanged
19401 - * and still perfectly match this state, if the tasks
19402 - * scheduled afterwards are not using the FPU.
19403 - *
19404 - * This is the 'lazy restore' window of optimization, which
19405 - * we track though 'fpu_fpregs_owner_ctx' and 'fpu->last_cpu'.
19406 - *
19407 - * We detect whether a subsequent task uses the FPU via setting
19408 - * CR0::TS to 1, which causes any FPU use to raise a #NM fault.
19409 - *
19410 - * During this window, if the task gets scheduled again, we
19411 - * might be able to skip having to do a restore from this
19412 - * memory buffer to the hardware registers - at the cost of
19413 - * incurring the overhead of #NM fault traps.
19414 - *
19415 - * Note that on modern CPUs that support the XSAVEOPT (or other
19416 - * optimized XSAVE instructions), we don't use #NM traps anymore,
19417 - * as the hardware can track whether FPU registers need saving
19418 - * or not. On such CPUs we activate the non-lazy ('eagerfpu')
19419 - * logic, which unconditionally saves/restores all FPU state
19420 - * across context switches. (if FPU state exists.)
19421 - */
19422 - union fpregs_state state;
19423 - /*
19424 - * WARNING: 'state' is dynamically-sized. Do not put
19425 - * anything after it here.
19426 - */
19427 };
19428
19429 #endif /* _ASM_X86_FPU_H */
19430 diff --git a/arch/x86/include/asm/futex.h b/arch/x86/include/asm/futex.h
19431 index b4c1f54..e290c08 100644
19432 --- a/arch/x86/include/asm/futex.h
19433 +++ b/arch/x86/include/asm/futex.h
19434 @@ -12,6 +12,7 @@
19435 #include <asm/smap.h>
19436
19437 #define __futex_atomic_op1(insn, ret, oldval, uaddr, oparg) \
19438 + typecheck(u32 __user *, uaddr); \
19439 asm volatile("\t" ASM_STAC "\n" \
19440 "1:\t" insn "\n" \
19441 "2:\t" ASM_CLAC "\n" \
19442 @@ -20,15 +21,16 @@
19443 "\tjmp\t2b\n" \
19444 "\t.previous\n" \
19445 _ASM_EXTABLE(1b, 3b) \
19446 - : "=r" (oldval), "=r" (ret), "+m" (*uaddr) \
19447 + : "=r" (oldval), "=r" (ret), "+m" (*(u32 __user *)____m(uaddr)) \
19448 : "i" (-EFAULT), "0" (oparg), "1" (0))
19449
19450 #define __futex_atomic_op2(insn, ret, oldval, uaddr, oparg) \
19451 + typecheck(u32 __user *, uaddr); \
19452 asm volatile("\t" ASM_STAC "\n" \
19453 "1:\tmovl %2, %0\n" \
19454 "\tmovl\t%0, %3\n" \
19455 "\t" insn "\n" \
19456 - "2:\t" LOCK_PREFIX "cmpxchgl %3, %2\n" \
19457 + "2:\t" LOCK_PREFIX __copyuser_seg"cmpxchgl %3, %2\n" \
19458 "\tjnz\t1b\n" \
19459 "3:\t" ASM_CLAC "\n" \
19460 "\t.section .fixup,\"ax\"\n" \
19461 @@ -38,7 +40,7 @@
19462 _ASM_EXTABLE(1b, 4b) \
19463 _ASM_EXTABLE(2b, 4b) \
19464 : "=&a" (oldval), "=&r" (ret), \
19465 - "+m" (*uaddr), "=&r" (tem) \
19466 + "+m" (*(u32 __user *)____m(uaddr)), "=&r" (tem) \
19467 : "r" (oparg), "i" (-EFAULT), "1" (0))
19468
19469 static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
19470 @@ -57,12 +59,13 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
19471
19472 pagefault_disable();
19473
19474 + pax_open_userland();
19475 switch (op) {
19476 case FUTEX_OP_SET:
19477 - __futex_atomic_op1("xchgl %0, %2", ret, oldval, uaddr, oparg);
19478 + __futex_atomic_op1(__copyuser_seg"xchgl %0, %2", ret, oldval, uaddr, oparg);
19479 break;
19480 case FUTEX_OP_ADD:
19481 - __futex_atomic_op1(LOCK_PREFIX "xaddl %0, %2", ret, oldval,
19482 + __futex_atomic_op1(LOCK_PREFIX __copyuser_seg"xaddl %0, %2", ret, oldval,
19483 uaddr, oparg);
19484 break;
19485 case FUTEX_OP_OR:
19486 @@ -77,6 +80,7 @@ static inline int futex_atomic_op_inuser(int encoded_op, u32 __user *uaddr)
19487 default:
19488 ret = -ENOSYS;
19489 }
19490 + pax_close_userland();
19491
19492 pagefault_enable();
19493
19494 diff --git a/arch/x86/include/asm/hw_irq.h b/arch/x86/include/asm/hw_irq.h
19495 index 6615032..9c233be 100644
19496 --- a/arch/x86/include/asm/hw_irq.h
19497 +++ b/arch/x86/include/asm/hw_irq.h
19498 @@ -158,8 +158,8 @@ static inline void unlock_vector_lock(void) {}
19499 #endif /* CONFIG_X86_LOCAL_APIC */
19500
19501 /* Statistics */
19502 -extern atomic_t irq_err_count;
19503 -extern atomic_t irq_mis_count;
19504 +extern atomic_unchecked_t irq_err_count;
19505 +extern atomic_unchecked_t irq_mis_count;
19506
19507 extern void elcr_set_level_irq(unsigned int irq);
19508
19509 diff --git a/arch/x86/include/asm/i8259.h b/arch/x86/include/asm/i8259.h
19510 index ccffa53..3c90c87 100644
19511 --- a/arch/x86/include/asm/i8259.h
19512 +++ b/arch/x86/include/asm/i8259.h
19513 @@ -62,7 +62,7 @@ struct legacy_pic {
19514 void (*init)(int auto_eoi);
19515 int (*irq_pending)(unsigned int irq);
19516 void (*make_irq)(unsigned int irq);
19517 -};
19518 +} __do_const;
19519
19520 extern struct legacy_pic *legacy_pic;
19521 extern struct legacy_pic null_legacy_pic;
19522 diff --git a/arch/x86/include/asm/io.h b/arch/x86/include/asm/io.h
19523 index cc9c61b..7b17f40 100644
19524 --- a/arch/x86/include/asm/io.h
19525 +++ b/arch/x86/include/asm/io.h
19526 @@ -42,6 +42,7 @@
19527 #include <asm/page.h>
19528 #include <asm/early_ioremap.h>
19529 #include <asm/pgtable_types.h>
19530 +#include <asm/processor.h>
19531
19532 #define build_mmio_read(name, size, type, reg, barrier) \
19533 static inline type name(const volatile void __iomem *addr) \
19534 @@ -54,12 +55,12 @@ static inline void name(type val, volatile void __iomem *addr) \
19535 "m" (*(volatile type __force *)addr) barrier); }
19536
19537 build_mmio_read(readb, "b", unsigned char, "=q", :"memory")
19538 -build_mmio_read(readw, "w", unsigned short, "=r", :"memory")
19539 -build_mmio_read(readl, "l", unsigned int, "=r", :"memory")
19540 +build_mmio_read(__intentional_overflow(-1) readw, "w", unsigned short, "=r", :"memory")
19541 +build_mmio_read(__intentional_overflow(-1) readl, "l", unsigned int, "=r", :"memory")
19542
19543 build_mmio_read(__readb, "b", unsigned char, "=q", )
19544 -build_mmio_read(__readw, "w", unsigned short, "=r", )
19545 -build_mmio_read(__readl, "l", unsigned int, "=r", )
19546 +build_mmio_read(__intentional_overflow(-1) __readw, "w", unsigned short, "=r", )
19547 +build_mmio_read(__intentional_overflow(-1) __readl, "l", unsigned int, "=r", )
19548
19549 build_mmio_write(writeb, "b", unsigned char, "q", :"memory")
19550 build_mmio_write(writew, "w", unsigned short, "r", :"memory")
19551 @@ -115,7 +116,7 @@ build_mmio_write(writeq, "q", unsigned long, "r", :"memory")
19552 * this function
19553 */
19554
19555 -static inline phys_addr_t virt_to_phys(volatile void *address)
19556 +static inline phys_addr_t __intentional_overflow(-1) virt_to_phys(volatile void *address)
19557 {
19558 return __pa(address);
19559 }
19560 @@ -192,7 +193,7 @@ static inline void __iomem *ioremap(resource_size_t offset, unsigned long size)
19561 return ioremap_nocache(offset, size);
19562 }
19563
19564 -extern void iounmap(volatile void __iomem *addr);
19565 +extern void iounmap(const volatile void __iomem *addr);
19566
19567 extern void set_iounmap_nonlazy(void);
19568
19569 @@ -200,6 +201,17 @@ extern void set_iounmap_nonlazy(void);
19570
19571 #include <asm-generic/iomap.h>
19572
19573 +#define ARCH_HAS_VALID_PHYS_ADDR_RANGE
19574 +static inline int valid_phys_addr_range(unsigned long addr, size_t count)
19575 +{
19576 + return ((addr + count + PAGE_SIZE - 1) >> PAGE_SHIFT) < (1ULL << (boot_cpu_data.x86_phys_bits - PAGE_SHIFT)) ? 1 : 0;
19577 +}
19578 +
19579 +static inline int valid_mmap_phys_addr_range(unsigned long pfn, size_t count)
19580 +{
19581 + return (pfn + (count >> PAGE_SHIFT)) < (1ULL << (boot_cpu_data.x86_phys_bits - PAGE_SHIFT)) ? 1 : 0;
19582 +}
19583 +
19584 /*
19585 * Convert a virtual cached pointer to an uncached pointer
19586 */
19587 diff --git a/arch/x86/include/asm/irqflags.h b/arch/x86/include/asm/irqflags.h
19588 index b77f5ed..a2f791e 100644
19589 --- a/arch/x86/include/asm/irqflags.h
19590 +++ b/arch/x86/include/asm/irqflags.h
19591 @@ -137,6 +137,11 @@ static inline notrace unsigned long arch_local_irq_save(void)
19592 swapgs; \
19593 sysretl
19594
19595 +#define GET_CR0_INTO_RDI mov %cr0, %rdi
19596 +#define SET_RDI_INTO_CR0 mov %rdi, %cr0
19597 +#define GET_CR3_INTO_RDI mov %cr3, %rdi
19598 +#define SET_RDI_INTO_CR3 mov %rdi, %cr3
19599 +
19600 #else
19601 #define INTERRUPT_RETURN iret
19602 #define ENABLE_INTERRUPTS_SYSEXIT sti; sysexit
19603 diff --git a/arch/x86/include/asm/kprobes.h b/arch/x86/include/asm/kprobes.h
19604 index 4421b5d..8543006 100644
19605 --- a/arch/x86/include/asm/kprobes.h
19606 +++ b/arch/x86/include/asm/kprobes.h
19607 @@ -37,13 +37,8 @@ typedef u8 kprobe_opcode_t;
19608 #define RELATIVEJUMP_SIZE 5
19609 #define RELATIVECALL_OPCODE 0xe8
19610 #define RELATIVE_ADDR_SIZE 4
19611 -#define MAX_STACK_SIZE 64
19612 -#define MIN_STACK_SIZE(ADDR) \
19613 - (((MAX_STACK_SIZE) < (((unsigned long)current_thread_info()) + \
19614 - THREAD_SIZE - (unsigned long)(ADDR))) \
19615 - ? (MAX_STACK_SIZE) \
19616 - : (((unsigned long)current_thread_info()) + \
19617 - THREAD_SIZE - (unsigned long)(ADDR)))
19618 +#define MAX_STACK_SIZE 64UL
19619 +#define MIN_STACK_SIZE(ADDR) min(MAX_STACK_SIZE, current->thread.sp0 - (unsigned long)(ADDR))
19620
19621 #define flush_insn_slot(p) do { } while (0)
19622
19623 diff --git a/arch/x86/include/asm/local.h b/arch/x86/include/asm/local.h
19624 index 4ad6560..75c7bdd 100644
19625 --- a/arch/x86/include/asm/local.h
19626 +++ b/arch/x86/include/asm/local.h
19627 @@ -10,33 +10,97 @@ typedef struct {
19628 atomic_long_t a;
19629 } local_t;
19630
19631 +typedef struct {
19632 + atomic_long_unchecked_t a;
19633 +} local_unchecked_t;
19634 +
19635 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
19636
19637 #define local_read(l) atomic_long_read(&(l)->a)
19638 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
19639 #define local_set(l, i) atomic_long_set(&(l)->a, (i))
19640 +#define local_set_unchecked(l, i) atomic_long_set_unchecked(&(l)->a, (i))
19641
19642 static inline void local_inc(local_t *l)
19643 {
19644 - asm volatile(_ASM_INC "%0"
19645 + asm volatile(_ASM_INC "%0\n"
19646 +
19647 +#ifdef CONFIG_PAX_REFCOUNT
19648 + "jno 0f\n"
19649 + _ASM_DEC "%0\n"
19650 + "int $4\n0:\n"
19651 + _ASM_EXTABLE(0b, 0b)
19652 +#endif
19653 +
19654 + : "+m" (l->a.counter));
19655 +}
19656 +
19657 +static inline void local_inc_unchecked(local_unchecked_t *l)
19658 +{
19659 + asm volatile(_ASM_INC "%0\n"
19660 : "+m" (l->a.counter));
19661 }
19662
19663 static inline void local_dec(local_t *l)
19664 {
19665 - asm volatile(_ASM_DEC "%0"
19666 + asm volatile(_ASM_DEC "%0\n"
19667 +
19668 +#ifdef CONFIG_PAX_REFCOUNT
19669 + "jno 0f\n"
19670 + _ASM_INC "%0\n"
19671 + "int $4\n0:\n"
19672 + _ASM_EXTABLE(0b, 0b)
19673 +#endif
19674 +
19675 + : "+m" (l->a.counter));
19676 +}
19677 +
19678 +static inline void local_dec_unchecked(local_unchecked_t *l)
19679 +{
19680 + asm volatile(_ASM_DEC "%0\n"
19681 : "+m" (l->a.counter));
19682 }
19683
19684 static inline void local_add(long i, local_t *l)
19685 {
19686 - asm volatile(_ASM_ADD "%1,%0"
19687 + asm volatile(_ASM_ADD "%1,%0\n"
19688 +
19689 +#ifdef CONFIG_PAX_REFCOUNT
19690 + "jno 0f\n"
19691 + _ASM_SUB "%1,%0\n"
19692 + "int $4\n0:\n"
19693 + _ASM_EXTABLE(0b, 0b)
19694 +#endif
19695 +
19696 + : "+m" (l->a.counter)
19697 + : "ir" (i));
19698 +}
19699 +
19700 +static inline void local_add_unchecked(long i, local_unchecked_t *l)
19701 +{
19702 + asm volatile(_ASM_ADD "%1,%0\n"
19703 : "+m" (l->a.counter)
19704 : "ir" (i));
19705 }
19706
19707 static inline void local_sub(long i, local_t *l)
19708 {
19709 - asm volatile(_ASM_SUB "%1,%0"
19710 + asm volatile(_ASM_SUB "%1,%0\n"
19711 +
19712 +#ifdef CONFIG_PAX_REFCOUNT
19713 + "jno 0f\n"
19714 + _ASM_ADD "%1,%0\n"
19715 + "int $4\n0:\n"
19716 + _ASM_EXTABLE(0b, 0b)
19717 +#endif
19718 +
19719 + : "+m" (l->a.counter)
19720 + : "ir" (i));
19721 +}
19722 +
19723 +static inline void local_sub_unchecked(long i, local_unchecked_t *l)
19724 +{
19725 + asm volatile(_ASM_SUB "%1,%0\n"
19726 : "+m" (l->a.counter)
19727 : "ir" (i));
19728 }
19729 @@ -52,7 +116,7 @@ static inline void local_sub(long i, local_t *l)
19730 */
19731 static inline int local_sub_and_test(long i, local_t *l)
19732 {
19733 - GEN_BINARY_RMWcc(_ASM_SUB, l->a.counter, "er", i, "%0", "e");
19734 + GEN_BINARY_RMWcc(_ASM_SUB, _ASM_ADD, l->a.counter, "er", i, "%0", "e");
19735 }
19736
19737 /**
19738 @@ -65,7 +129,7 @@ static inline int local_sub_and_test(long i, local_t *l)
19739 */
19740 static inline int local_dec_and_test(local_t *l)
19741 {
19742 - GEN_UNARY_RMWcc(_ASM_DEC, l->a.counter, "%0", "e");
19743 + GEN_UNARY_RMWcc(_ASM_DEC, _ASM_INC, l->a.counter, "%0", "e");
19744 }
19745
19746 /**
19747 @@ -78,7 +142,7 @@ static inline int local_dec_and_test(local_t *l)
19748 */
19749 static inline int local_inc_and_test(local_t *l)
19750 {
19751 - GEN_UNARY_RMWcc(_ASM_INC, l->a.counter, "%0", "e");
19752 + GEN_UNARY_RMWcc(_ASM_INC, _ASM_DEC, l->a.counter, "%0", "e");
19753 }
19754
19755 /**
19756 @@ -92,7 +156,7 @@ static inline int local_inc_and_test(local_t *l)
19757 */
19758 static inline int local_add_negative(long i, local_t *l)
19759 {
19760 - GEN_BINARY_RMWcc(_ASM_ADD, l->a.counter, "er", i, "%0", "s");
19761 + GEN_BINARY_RMWcc(_ASM_ADD, _ASM_SUB, l->a.counter, "er", i, "%0", "s");
19762 }
19763
19764 /**
19765 @@ -105,6 +169,30 @@ static inline int local_add_negative(long i, local_t *l)
19766 static inline long local_add_return(long i, local_t *l)
19767 {
19768 long __i = i;
19769 + asm volatile(_ASM_XADD "%0, %1\n"
19770 +
19771 +#ifdef CONFIG_PAX_REFCOUNT
19772 + "jno 0f\n"
19773 + _ASM_MOV "%0,%1\n"
19774 + "int $4\n0:\n"
19775 + _ASM_EXTABLE(0b, 0b)
19776 +#endif
19777 +
19778 + : "+r" (i), "+m" (l->a.counter)
19779 + : : "memory");
19780 + return i + __i;
19781 +}
19782 +
19783 +/**
19784 + * local_add_return_unchecked - add and return
19785 + * @i: integer value to add
19786 + * @l: pointer to type local_unchecked_t
19787 + *
19788 + * Atomically adds @i to @l and returns @i + @l
19789 + */
19790 +static inline long local_add_return_unchecked(long i, local_unchecked_t *l)
19791 +{
19792 + long __i = i;
19793 asm volatile(_ASM_XADD "%0, %1;"
19794 : "+r" (i), "+m" (l->a.counter)
19795 : : "memory");
19796 @@ -121,6 +209,8 @@ static inline long local_sub_return(long i, local_t *l)
19797
19798 #define local_cmpxchg(l, o, n) \
19799 (cmpxchg_local(&((l)->a.counter), (o), (n)))
19800 +#define local_cmpxchg_unchecked(l, o, n) \
19801 + (cmpxchg_local(&((l)->a.counter), (o), (n)))
19802 /* Always has a lock prefix */
19803 #define local_xchg(l, n) (xchg(&((l)->a.counter), (n)))
19804
19805 diff --git a/arch/x86/include/asm/mman.h b/arch/x86/include/asm/mman.h
19806 new file mode 100644
19807 index 0000000..2bfd3ba
19808 --- /dev/null
19809 +++ b/arch/x86/include/asm/mman.h
19810 @@ -0,0 +1,15 @@
19811 +#ifndef _X86_MMAN_H
19812 +#define _X86_MMAN_H
19813 +
19814 +#include <uapi/asm/mman.h>
19815 +
19816 +#ifdef __KERNEL__
19817 +#ifndef __ASSEMBLY__
19818 +#ifdef CONFIG_X86_32
19819 +#define arch_mmap_check i386_mmap_check
19820 +int i386_mmap_check(unsigned long addr, unsigned long len, unsigned long flags);
19821 +#endif
19822 +#endif
19823 +#endif
19824 +
19825 +#endif /* X86_MMAN_H */
19826 diff --git a/arch/x86/include/asm/mmu.h b/arch/x86/include/asm/mmu.h
19827 index 364d274..e51b4bc 100644
19828 --- a/arch/x86/include/asm/mmu.h
19829 +++ b/arch/x86/include/asm/mmu.h
19830 @@ -17,7 +17,19 @@ typedef struct {
19831 #endif
19832
19833 struct mutex lock;
19834 - void __user *vdso;
19835 + unsigned long vdso;
19836 +
19837 +#ifdef CONFIG_X86_32
19838 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
19839 + unsigned long user_cs_base;
19840 + unsigned long user_cs_limit;
19841 +
19842 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
19843 + cpumask_t cpu_user_cs_mask;
19844 +#endif
19845 +
19846 +#endif
19847 +#endif
19848
19849 atomic_t perf_rdpmc_allowed; /* nonzero if rdpmc is allowed */
19850 } mm_context_t;
19851 diff --git a/arch/x86/include/asm/mmu_context.h b/arch/x86/include/asm/mmu_context.h
19852 index 984abfe..9996c62 100644
19853 --- a/arch/x86/include/asm/mmu_context.h
19854 +++ b/arch/x86/include/asm/mmu_context.h
19855 @@ -45,7 +45,7 @@ struct ldt_struct {
19856 * allocations, but it's not worth trying to optimize.
19857 */
19858 struct desc_struct *entries;
19859 - int size;
19860 + unsigned int size;
19861 };
19862
19863 static inline void load_mm_ldt(struct mm_struct *mm)
19864 @@ -86,26 +86,95 @@ void destroy_context(struct mm_struct *mm);
19865
19866 static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk)
19867 {
19868 +
19869 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19870 + if (!(static_cpu_has(X86_FEATURE_PCIDUDEREF))) {
19871 + unsigned int i;
19872 + pgd_t *pgd;
19873 +
19874 + pax_open_kernel();
19875 + pgd = get_cpu_pgd(smp_processor_id(), kernel);
19876 + for (i = USER_PGD_PTRS; i < 2 * USER_PGD_PTRS; ++i)
19877 + set_pgd_batched(pgd+i, native_make_pgd(0));
19878 + pax_close_kernel();
19879 + }
19880 +#endif
19881 +
19882 #ifdef CONFIG_SMP
19883 if (this_cpu_read(cpu_tlbstate.state) == TLBSTATE_OK)
19884 this_cpu_write(cpu_tlbstate.state, TLBSTATE_LAZY);
19885 #endif
19886 }
19887
19888 +static inline void pax_switch_mm(struct mm_struct *next, unsigned int cpu)
19889 +{
19890 +
19891 +#ifdef CONFIG_PAX_PER_CPU_PGD
19892 + pax_open_kernel();
19893 +
19894 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19895 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF))
19896 + __clone_user_pgds(get_cpu_pgd(cpu, user), next->pgd);
19897 + else
19898 +#endif
19899 +
19900 + __clone_user_pgds(get_cpu_pgd(cpu, kernel), next->pgd);
19901 +
19902 + __shadow_user_pgds(get_cpu_pgd(cpu, kernel) + USER_PGD_PTRS, next->pgd);
19903 +
19904 + pax_close_kernel();
19905 +
19906 + 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));
19907 +
19908 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
19909 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
19910 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
19911 + u64 descriptor[2];
19912 + descriptor[0] = PCID_USER;
19913 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_CONTEXT) : "memory");
19914 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF)) {
19915 + descriptor[0] = PCID_KERNEL;
19916 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_CONTEXT) : "memory");
19917 + }
19918 + } else {
19919 + write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER);
19920 + if (static_cpu_has(X86_FEATURE_STRONGUDEREF))
19921 + write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
19922 + else
19923 + write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL);
19924 + }
19925 + } else
19926 +#endif
19927 +
19928 + load_cr3(get_cpu_pgd(cpu, kernel));
19929 +#endif
19930 +
19931 +}
19932 +
19933 static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19934 struct task_struct *tsk)
19935 {
19936 unsigned cpu = smp_processor_id();
19937 +#if defined(CONFIG_X86_32) && defined(CONFIG_SMP) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19938 + int tlbstate = TLBSTATE_OK;
19939 +#endif
19940
19941 if (likely(prev != next)) {
19942 #ifdef CONFIG_SMP
19943 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19944 + tlbstate = this_cpu_read(cpu_tlbstate.state);
19945 +#endif
19946 this_cpu_write(cpu_tlbstate.state, TLBSTATE_OK);
19947 this_cpu_write(cpu_tlbstate.active_mm, next);
19948 #endif
19949 cpumask_set_cpu(cpu, mm_cpumask(next));
19950
19951 /* Re-load page tables */
19952 +#ifdef CONFIG_PAX_PER_CPU_PGD
19953 + pax_switch_mm(next, cpu);
19954 +#else
19955 load_cr3(next->pgd);
19956 +#endif
19957 trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);
19958
19959 /* Stop flush ipis for the previous mm */
19960 @@ -128,9 +197,31 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19961 */
19962 if (unlikely(prev->context.ldt != next->context.ldt))
19963 load_mm_ldt(next);
19964 +
19965 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
19966 + if (!(__supported_pte_mask & _PAGE_NX)) {
19967 + smp_mb__before_atomic();
19968 + cpumask_clear_cpu(cpu, &prev->context.cpu_user_cs_mask);
19969 + smp_mb__after_atomic();
19970 + cpumask_set_cpu(cpu, &next->context.cpu_user_cs_mask);
19971 + }
19972 +#endif
19973 +
19974 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
19975 + if (unlikely(prev->context.user_cs_base != next->context.user_cs_base ||
19976 + prev->context.user_cs_limit != next->context.user_cs_limit))
19977 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
19978 +#ifdef CONFIG_SMP
19979 + else if (unlikely(tlbstate != TLBSTATE_OK))
19980 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
19981 +#endif
19982 +#endif
19983 +
19984 }
19985 + else {
19986 + pax_switch_mm(next, cpu);
19987 +
19988 #ifdef CONFIG_SMP
19989 - else {
19990 this_cpu_write(cpu_tlbstate.state, TLBSTATE_OK);
19991 BUG_ON(this_cpu_read(cpu_tlbstate.active_mm) != next);
19992
19993 @@ -147,13 +238,30 @@ static inline void switch_mm(struct mm_struct *prev, struct mm_struct *next,
19994 * tlb flush IPI delivery. We must reload CR3
19995 * to make sure to use no freed page tables.
19996 */
19997 +
19998 +#ifndef CONFIG_PAX_PER_CPU_PGD
19999 load_cr3(next->pgd);
20000 trace_tlb_flush(TLB_FLUSH_ON_TASK_SWITCH, TLB_FLUSH_ALL);
20001 +#endif
20002 +
20003 load_mm_cr4(next);
20004 load_mm_ldt(next);
20005 +
20006 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
20007 + if (!(__supported_pte_mask & _PAGE_NX))
20008 + cpumask_set_cpu(cpu, &next->context.cpu_user_cs_mask);
20009 +#endif
20010 +
20011 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC))
20012 +#ifdef CONFIG_PAX_PAGEEXEC
20013 + if (!((next->pax_flags & MF_PAX_PAGEEXEC) && (__supported_pte_mask & _PAGE_NX)))
20014 +#endif
20015 + set_user_cs(next->context.user_cs_base, next->context.user_cs_limit, cpu);
20016 +#endif
20017 +
20018 }
20019 +#endif
20020 }
20021 -#endif
20022 }
20023
20024 #define activate_mm(prev, next) \
20025 diff --git a/arch/x86/include/asm/module.h b/arch/x86/include/asm/module.h
20026 index e3b7819..b257c64 100644
20027 --- a/arch/x86/include/asm/module.h
20028 +++ b/arch/x86/include/asm/module.h
20029 @@ -5,6 +5,7 @@
20030
20031 #ifdef CONFIG_X86_64
20032 /* X86_64 does not define MODULE_PROC_FAMILY */
20033 +#define MODULE_PROC_FAMILY ""
20034 #elif defined CONFIG_M486
20035 #define MODULE_PROC_FAMILY "486 "
20036 #elif defined CONFIG_M586
20037 @@ -57,8 +58,20 @@
20038 #error unknown processor family
20039 #endif
20040
20041 -#ifdef CONFIG_X86_32
20042 -# define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY
20043 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_BTS
20044 +#define MODULE_PAX_KERNEXEC "KERNEXEC_BTS "
20045 +#elif defined(CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR)
20046 +#define MODULE_PAX_KERNEXEC "KERNEXEC_OR "
20047 +#else
20048 +#define MODULE_PAX_KERNEXEC ""
20049 #endif
20050
20051 +#ifdef CONFIG_PAX_MEMORY_UDEREF
20052 +#define MODULE_PAX_UDEREF "UDEREF "
20053 +#else
20054 +#define MODULE_PAX_UDEREF ""
20055 +#endif
20056 +
20057 +#define MODULE_ARCH_VERMAGIC MODULE_PROC_FAMILY MODULE_PAX_KERNEXEC MODULE_PAX_UDEREF
20058 +
20059 #endif /* _ASM_X86_MODULE_H */
20060 diff --git a/arch/x86/include/asm/nmi.h b/arch/x86/include/asm/nmi.h
20061 index 5f2fc44..106caa6 100644
20062 --- a/arch/x86/include/asm/nmi.h
20063 +++ b/arch/x86/include/asm/nmi.h
20064 @@ -36,26 +36,35 @@ enum {
20065
20066 typedef int (*nmi_handler_t)(unsigned int, struct pt_regs *);
20067
20068 +struct nmiaction;
20069 +
20070 +struct nmiwork {
20071 + const struct nmiaction *action;
20072 + u64 max_duration;
20073 + struct irq_work irq_work;
20074 +};
20075 +
20076 struct nmiaction {
20077 struct list_head list;
20078 nmi_handler_t handler;
20079 - u64 max_duration;
20080 - struct irq_work irq_work;
20081 unsigned long flags;
20082 const char *name;
20083 -};
20084 + struct nmiwork *work;
20085 +} __do_const;
20086
20087 #define register_nmi_handler(t, fn, fg, n, init...) \
20088 ({ \
20089 - static struct nmiaction init fn##_na = { \
20090 + static struct nmiwork fn##_nw; \
20091 + static const struct nmiaction init fn##_na = { \
20092 .handler = (fn), \
20093 .name = (n), \
20094 .flags = (fg), \
20095 + .work = &fn##_nw, \
20096 }; \
20097 __register_nmi_handler((t), &fn##_na); \
20098 })
20099
20100 -int __register_nmi_handler(unsigned int, struct nmiaction *);
20101 +int __register_nmi_handler(unsigned int, const struct nmiaction *);
20102
20103 void unregister_nmi_handler(unsigned int, const char *);
20104
20105 diff --git a/arch/x86/include/asm/page.h b/arch/x86/include/asm/page.h
20106 index 802dde3..9183e68 100644
20107 --- a/arch/x86/include/asm/page.h
20108 +++ b/arch/x86/include/asm/page.h
20109 @@ -52,6 +52,7 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
20110 __phys_addr_symbol(__phys_reloc_hide((unsigned long)(x)))
20111
20112 #define __va(x) ((void *)((unsigned long)(x)+PAGE_OFFSET))
20113 +#define __early_va(x) ((void *)((unsigned long)(x)+__START_KERNEL_map - phys_base))
20114
20115 #define __boot_va(x) __va(x)
20116 #define __boot_pa(x) __pa(x)
20117 @@ -60,11 +61,21 @@ static inline void copy_user_page(void *to, void *from, unsigned long vaddr,
20118 * virt_to_page(kaddr) returns a valid pointer if and only if
20119 * virt_addr_valid(kaddr) returns true.
20120 */
20121 -#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
20122 #define pfn_to_kaddr(pfn) __va((pfn) << PAGE_SHIFT)
20123 extern bool __virt_addr_valid(unsigned long kaddr);
20124 #define virt_addr_valid(kaddr) __virt_addr_valid((unsigned long) (kaddr))
20125
20126 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
20127 +#define virt_to_page(kaddr) \
20128 + ({ \
20129 + const void *__kaddr = (const void *)(kaddr); \
20130 + BUG_ON(!virt_addr_valid(__kaddr)); \
20131 + pfn_to_page(__pa(__kaddr) >> PAGE_SHIFT); \
20132 + })
20133 +#else
20134 +#define virt_to_page(kaddr) pfn_to_page(__pa(kaddr) >> PAGE_SHIFT)
20135 +#endif
20136 +
20137 #endif /* __ASSEMBLY__ */
20138
20139 #include <asm-generic/memory_model.h>
20140 diff --git a/arch/x86/include/asm/page_32.h b/arch/x86/include/asm/page_32.h
20141 index 904f528..b4d0d24 100644
20142 --- a/arch/x86/include/asm/page_32.h
20143 +++ b/arch/x86/include/asm/page_32.h
20144 @@ -7,11 +7,17 @@
20145
20146 #define __phys_addr_nodebug(x) ((x) - PAGE_OFFSET)
20147 #ifdef CONFIG_DEBUG_VIRTUAL
20148 -extern unsigned long __phys_addr(unsigned long);
20149 +extern unsigned long __intentional_overflow(-1) __phys_addr(unsigned long);
20150 #else
20151 -#define __phys_addr(x) __phys_addr_nodebug(x)
20152 +static inline unsigned long __intentional_overflow(-1) __phys_addr(unsigned long x)
20153 +{
20154 + return __phys_addr_nodebug(x);
20155 +}
20156 #endif
20157 -#define __phys_addr_symbol(x) __phys_addr(x)
20158 +static inline unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long x)
20159 +{
20160 + return __phys_addr(x);
20161 +}
20162 #define __phys_reloc_hide(x) RELOC_HIDE((x), 0)
20163
20164 #ifdef CONFIG_FLATMEM
20165 diff --git a/arch/x86/include/asm/page_64.h b/arch/x86/include/asm/page_64.h
20166 index b3bebf9..cb419e7 100644
20167 --- a/arch/x86/include/asm/page_64.h
20168 +++ b/arch/x86/include/asm/page_64.h
20169 @@ -7,9 +7,9 @@
20170
20171 /* duplicated to the one in bootmem.h */
20172 extern unsigned long max_pfn;
20173 -extern unsigned long phys_base;
20174 +extern const unsigned long phys_base;
20175
20176 -static inline unsigned long __phys_addr_nodebug(unsigned long x)
20177 +static inline unsigned long __intentional_overflow(-1) __phys_addr_nodebug(unsigned long x)
20178 {
20179 unsigned long y = x - __START_KERNEL_map;
20180
20181 @@ -20,12 +20,14 @@ static inline unsigned long __phys_addr_nodebug(unsigned long x)
20182 }
20183
20184 #ifdef CONFIG_DEBUG_VIRTUAL
20185 -extern unsigned long __phys_addr(unsigned long);
20186 -extern unsigned long __phys_addr_symbol(unsigned long);
20187 +extern unsigned long __intentional_overflow(-1) __phys_addr(unsigned long);
20188 +extern unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long);
20189 #else
20190 #define __phys_addr(x) __phys_addr_nodebug(x)
20191 -#define __phys_addr_symbol(x) \
20192 - ((unsigned long)(x) - __START_KERNEL_map + phys_base)
20193 +static inline unsigned long __intentional_overflow(-1) __phys_addr_symbol(unsigned long x)
20194 +{
20195 + return x - __START_KERNEL_map + phys_base;
20196 +}
20197 #endif
20198
20199 #define __phys_reloc_hide(x) (x)
20200 diff --git a/arch/x86/include/asm/paravirt.h b/arch/x86/include/asm/paravirt.h
20201 index d143bfa..30d1f41 100644
20202 --- a/arch/x86/include/asm/paravirt.h
20203 +++ b/arch/x86/include/asm/paravirt.h
20204 @@ -560,7 +560,7 @@ static inline pmd_t __pmd(pmdval_t val)
20205 return (pmd_t) { ret };
20206 }
20207
20208 -static inline pmdval_t pmd_val(pmd_t pmd)
20209 +static inline __intentional_overflow(-1) pmdval_t pmd_val(pmd_t pmd)
20210 {
20211 pmdval_t ret;
20212
20213 @@ -626,6 +626,18 @@ static inline void set_pgd(pgd_t *pgdp, pgd_t pgd)
20214 val);
20215 }
20216
20217 +static inline void set_pgd_batched(pgd_t *pgdp, pgd_t pgd)
20218 +{
20219 + pgdval_t val = native_pgd_val(pgd);
20220 +
20221 + if (sizeof(pgdval_t) > sizeof(long))
20222 + PVOP_VCALL3(pv_mmu_ops.set_pgd_batched, pgdp,
20223 + val, (u64)val >> 32);
20224 + else
20225 + PVOP_VCALL2(pv_mmu_ops.set_pgd_batched, pgdp,
20226 + val);
20227 +}
20228 +
20229 static inline void pgd_clear(pgd_t *pgdp)
20230 {
20231 set_pgd(pgdp, __pgd(0));
20232 @@ -710,6 +722,21 @@ static inline void __set_fixmap(unsigned /* enum fixed_addresses */ idx,
20233 pv_mmu_ops.set_fixmap(idx, phys, flags);
20234 }
20235
20236 +#ifdef CONFIG_PAX_KERNEXEC
20237 +static inline unsigned long pax_open_kernel(void)
20238 +{
20239 + return PVOP_CALL0(unsigned long, pv_mmu_ops.pax_open_kernel);
20240 +}
20241 +
20242 +static inline unsigned long pax_close_kernel(void)
20243 +{
20244 + return PVOP_CALL0(unsigned long, pv_mmu_ops.pax_close_kernel);
20245 +}
20246 +#else
20247 +static inline unsigned long pax_open_kernel(void) { return 0; }
20248 +static inline unsigned long pax_close_kernel(void) { return 0; }
20249 +#endif
20250 +
20251 #if defined(CONFIG_SMP) && defined(CONFIG_PARAVIRT_SPINLOCKS)
20252
20253 #ifdef CONFIG_QUEUED_SPINLOCKS
20254 @@ -933,7 +960,7 @@ extern void default_banner(void);
20255
20256 #define PARA_PATCH(struct, off) ((PARAVIRT_PATCH_##struct + (off)) / 4)
20257 #define PARA_SITE(ptype, clobbers, ops) _PVSITE(ptype, clobbers, ops, .long, 4)
20258 -#define PARA_INDIRECT(addr) *%cs:addr
20259 +#define PARA_INDIRECT(addr) *%ss:addr
20260 #endif
20261
20262 #define INTERRUPT_RETURN \
20263 @@ -1003,6 +1030,21 @@ extern void default_banner(void);
20264 PARA_SITE(PARA_PATCH(pv_cpu_ops, PV_CPU_usergs_sysret64), \
20265 CLBR_NONE, \
20266 jmp PARA_INDIRECT(pv_cpu_ops+PV_CPU_usergs_sysret64))
20267 +
20268 +#define GET_CR0_INTO_RDI \
20269 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_read_cr0); \
20270 + mov %rax,%rdi
20271 +
20272 +#define SET_RDI_INTO_CR0 \
20273 + call PARA_INDIRECT(pv_cpu_ops+PV_CPU_write_cr0)
20274 +
20275 +#define GET_CR3_INTO_RDI \
20276 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_read_cr3); \
20277 + mov %rax,%rdi
20278 +
20279 +#define SET_RDI_INTO_CR3 \
20280 + call PARA_INDIRECT(pv_mmu_ops+PV_MMU_write_cr3)
20281 +
20282 #endif /* CONFIG_X86_32 */
20283
20284 #endif /* __ASSEMBLY__ */
20285 diff --git a/arch/x86/include/asm/paravirt_types.h b/arch/x86/include/asm/paravirt_types.h
20286 index a6b8f9f..fd61ef7 100644
20287 --- a/arch/x86/include/asm/paravirt_types.h
20288 +++ b/arch/x86/include/asm/paravirt_types.h
20289 @@ -84,7 +84,7 @@ struct pv_init_ops {
20290 */
20291 unsigned (*patch)(u8 type, u16 clobber, void *insnbuf,
20292 unsigned long addr, unsigned len);
20293 -};
20294 +} __no_const __no_randomize_layout;
20295
20296
20297 struct pv_lazy_ops {
20298 @@ -92,13 +92,13 @@ struct pv_lazy_ops {
20299 void (*enter)(void);
20300 void (*leave)(void);
20301 void (*flush)(void);
20302 -};
20303 +} __no_randomize_layout;
20304
20305 struct pv_time_ops {
20306 unsigned long long (*sched_clock)(void);
20307 unsigned long long (*steal_clock)(int cpu);
20308 unsigned long (*get_tsc_khz)(void);
20309 -};
20310 +} __no_const __no_randomize_layout;
20311
20312 struct pv_cpu_ops {
20313 /* hooks for various privileged instructions */
20314 @@ -193,7 +193,7 @@ struct pv_cpu_ops {
20315
20316 void (*start_context_switch)(struct task_struct *prev);
20317 void (*end_context_switch)(struct task_struct *next);
20318 -};
20319 +} __no_const __no_randomize_layout;
20320
20321 struct pv_irq_ops {
20322 /*
20323 @@ -216,7 +216,7 @@ struct pv_irq_ops {
20324 #ifdef CONFIG_X86_64
20325 void (*adjust_exception_frame)(void);
20326 #endif
20327 -};
20328 +} __no_randomize_layout;
20329
20330 struct pv_apic_ops {
20331 #ifdef CONFIG_X86_LOCAL_APIC
20332 @@ -224,7 +224,7 @@ struct pv_apic_ops {
20333 unsigned long start_eip,
20334 unsigned long start_esp);
20335 #endif
20336 -};
20337 +} __no_const __no_randomize_layout;
20338
20339 struct pv_mmu_ops {
20340 unsigned long (*read_cr2)(void);
20341 @@ -314,6 +314,7 @@ struct pv_mmu_ops {
20342 struct paravirt_callee_save make_pud;
20343
20344 void (*set_pgd)(pgd_t *pudp, pgd_t pgdval);
20345 + void (*set_pgd_batched)(pgd_t *pudp, pgd_t pgdval);
20346 #endif /* CONFIG_PGTABLE_LEVELS == 4 */
20347 #endif /* CONFIG_PGTABLE_LEVELS >= 3 */
20348
20349 @@ -325,7 +326,13 @@ struct pv_mmu_ops {
20350 an mfn. We can tell which is which from the index. */
20351 void (*set_fixmap)(unsigned /* enum fixed_addresses */ idx,
20352 phys_addr_t phys, pgprot_t flags);
20353 -};
20354 +
20355 +#ifdef CONFIG_PAX_KERNEXEC
20356 + unsigned long (*pax_open_kernel)(void);
20357 + unsigned long (*pax_close_kernel)(void);
20358 +#endif
20359 +
20360 +} __no_randomize_layout;
20361
20362 struct arch_spinlock;
20363 #ifdef CONFIG_SMP
20364 @@ -347,11 +354,14 @@ struct pv_lock_ops {
20365 struct paravirt_callee_save lock_spinning;
20366 void (*unlock_kick)(struct arch_spinlock *lock, __ticket_t ticket);
20367 #endif /* !CONFIG_QUEUED_SPINLOCKS */
20368 -};
20369 +} __no_randomize_layout;
20370
20371 /* This contains all the paravirt structures: we get a convenient
20372 * number for each function using the offset which we use to indicate
20373 - * what to patch. */
20374 + * what to patch.
20375 + * shouldn't be randomized due to the "NEAT TRICK" in paravirt.c
20376 + */
20377 +
20378 struct paravirt_patch_template {
20379 struct pv_init_ops pv_init_ops;
20380 struct pv_time_ops pv_time_ops;
20381 @@ -360,7 +370,7 @@ struct paravirt_patch_template {
20382 struct pv_apic_ops pv_apic_ops;
20383 struct pv_mmu_ops pv_mmu_ops;
20384 struct pv_lock_ops pv_lock_ops;
20385 -};
20386 +} __no_randomize_layout;
20387
20388 extern struct pv_info pv_info;
20389 extern struct pv_init_ops pv_init_ops;
20390 diff --git a/arch/x86/include/asm/pgalloc.h b/arch/x86/include/asm/pgalloc.h
20391 index bf7f8b5..ca5799d 100644
20392 --- a/arch/x86/include/asm/pgalloc.h
20393 +++ b/arch/x86/include/asm/pgalloc.h
20394 @@ -63,6 +63,13 @@ static inline void pmd_populate_kernel(struct mm_struct *mm,
20395 pmd_t *pmd, pte_t *pte)
20396 {
20397 paravirt_alloc_pte(mm, __pa(pte) >> PAGE_SHIFT);
20398 + set_pmd(pmd, __pmd(__pa(pte) | _KERNPG_TABLE));
20399 +}
20400 +
20401 +static inline void pmd_populate_user(struct mm_struct *mm,
20402 + pmd_t *pmd, pte_t *pte)
20403 +{
20404 + paravirt_alloc_pte(mm, __pa(pte) >> PAGE_SHIFT);
20405 set_pmd(pmd, __pmd(__pa(pte) | _PAGE_TABLE));
20406 }
20407
20408 @@ -108,12 +115,22 @@ static inline void __pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
20409
20410 #ifdef CONFIG_X86_PAE
20411 extern void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd);
20412 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
20413 +{
20414 + pud_populate(mm, pudp, pmd);
20415 +}
20416 #else /* !CONFIG_X86_PAE */
20417 static inline void pud_populate(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
20418 {
20419 paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
20420 set_pud(pud, __pud(_PAGE_TABLE | __pa(pmd)));
20421 }
20422 +
20423 +static inline void pud_populate_kernel(struct mm_struct *mm, pud_t *pud, pmd_t *pmd)
20424 +{
20425 + paravirt_alloc_pmd(mm, __pa(pmd) >> PAGE_SHIFT);
20426 + set_pud(pud, __pud(_KERNPG_TABLE | __pa(pmd)));
20427 +}
20428 #endif /* CONFIG_X86_PAE */
20429
20430 #if CONFIG_PGTABLE_LEVELS > 3
20431 @@ -123,6 +140,12 @@ static inline void pgd_populate(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
20432 set_pgd(pgd, __pgd(_PAGE_TABLE | __pa(pud)));
20433 }
20434
20435 +static inline void pgd_populate_kernel(struct mm_struct *mm, pgd_t *pgd, pud_t *pud)
20436 +{
20437 + paravirt_alloc_pud(mm, __pa(pud) >> PAGE_SHIFT);
20438 + set_pgd(pgd, __pgd(_KERNPG_TABLE | __pa(pud)));
20439 +}
20440 +
20441 static inline pud_t *pud_alloc_one(struct mm_struct *mm, unsigned long addr)
20442 {
20443 return (pud_t *)get_zeroed_page(GFP_KERNEL|__GFP_REPEAT);
20444 diff --git a/arch/x86/include/asm/pgtable-2level.h b/arch/x86/include/asm/pgtable-2level.h
20445 index fd74a11..35fd5af 100644
20446 --- a/arch/x86/include/asm/pgtable-2level.h
20447 +++ b/arch/x86/include/asm/pgtable-2level.h
20448 @@ -18,7 +18,9 @@ static inline void native_set_pte(pte_t *ptep , pte_t pte)
20449
20450 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
20451 {
20452 + pax_open_kernel();
20453 *pmdp = pmd;
20454 + pax_close_kernel();
20455 }
20456
20457 static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
20458 diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
20459 index cdaa58c..ae30f0d 100644
20460 --- a/arch/x86/include/asm/pgtable-3level.h
20461 +++ b/arch/x86/include/asm/pgtable-3level.h
20462 @@ -92,12 +92,16 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
20463
20464 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
20465 {
20466 + pax_open_kernel();
20467 set_64bit((unsigned long long *)(pmdp), native_pmd_val(pmd));
20468 + pax_close_kernel();
20469 }
20470
20471 static inline void native_set_pud(pud_t *pudp, pud_t pud)
20472 {
20473 + pax_open_kernel();
20474 set_64bit((unsigned long long *)(pudp), native_pud_val(pud));
20475 + pax_close_kernel();
20476 }
20477
20478 /*
20479 @@ -116,9 +120,12 @@ static inline void native_pte_clear(struct mm_struct *mm, unsigned long addr,
20480 static inline void native_pmd_clear(pmd_t *pmd)
20481 {
20482 u32 *tmp = (u32 *)pmd;
20483 +
20484 + pax_open_kernel();
20485 *tmp = 0;
20486 smp_wmb();
20487 *(tmp + 1) = 0;
20488 + pax_close_kernel();
20489 }
20490
20491 static inline void pud_clear(pud_t *pudp)
20492 diff --git a/arch/x86/include/asm/pgtable.h b/arch/x86/include/asm/pgtable.h
20493 index 867da5b..7ec083d 100644
20494 --- a/arch/x86/include/asm/pgtable.h
20495 +++ b/arch/x86/include/asm/pgtable.h
20496 @@ -47,6 +47,7 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
20497
20498 #ifndef __PAGETABLE_PUD_FOLDED
20499 #define set_pgd(pgdp, pgd) native_set_pgd(pgdp, pgd)
20500 +#define set_pgd_batched(pgdp, pgd) native_set_pgd_batched(pgdp, pgd)
20501 #define pgd_clear(pgd) native_pgd_clear(pgd)
20502 #endif
20503
20504 @@ -84,12 +85,53 @@ extern struct mm_struct *pgd_page_get_mm(struct page *page);
20505
20506 #define arch_end_context_switch(prev) do {} while(0)
20507
20508 +#define pax_open_kernel() native_pax_open_kernel()
20509 +#define pax_close_kernel() native_pax_close_kernel()
20510 #endif /* CONFIG_PARAVIRT */
20511
20512 +#define __HAVE_ARCH_PAX_OPEN_KERNEL
20513 +#define __HAVE_ARCH_PAX_CLOSE_KERNEL
20514 +
20515 +#ifdef CONFIG_PAX_KERNEXEC
20516 +static inline unsigned long native_pax_open_kernel(void)
20517 +{
20518 + unsigned long cr0;
20519 +
20520 + preempt_disable();
20521 + barrier();
20522 + cr0 = read_cr0() ^ X86_CR0_WP;
20523 + BUG_ON(cr0 & X86_CR0_WP);
20524 + write_cr0(cr0);
20525 + barrier();
20526 + return cr0 ^ X86_CR0_WP;
20527 +}
20528 +
20529 +static inline unsigned long native_pax_close_kernel(void)
20530 +{
20531 + unsigned long cr0;
20532 +
20533 + barrier();
20534 + cr0 = read_cr0() ^ X86_CR0_WP;
20535 + BUG_ON(!(cr0 & X86_CR0_WP));
20536 + write_cr0(cr0);
20537 + barrier();
20538 + preempt_enable_no_resched();
20539 + return cr0 ^ X86_CR0_WP;
20540 +}
20541 +#else
20542 +static inline unsigned long native_pax_open_kernel(void) { return 0; }
20543 +static inline unsigned long native_pax_close_kernel(void) { return 0; }
20544 +#endif
20545 +
20546 /*
20547 * The following only work if pte_present() is true.
20548 * Undefined behaviour if not..
20549 */
20550 +static inline int pte_user(pte_t pte)
20551 +{
20552 + return pte_val(pte) & _PAGE_USER;
20553 +}
20554 +
20555 static inline int pte_dirty(pte_t pte)
20556 {
20557 return pte_flags(pte) & _PAGE_DIRTY;
20558 @@ -150,6 +192,11 @@ static inline unsigned long pud_pfn(pud_t pud)
20559 return (pud_val(pud) & PTE_PFN_MASK) >> PAGE_SHIFT;
20560 }
20561
20562 +static inline unsigned long pgd_pfn(pgd_t pgd)
20563 +{
20564 + return (pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT;
20565 +}
20566 +
20567 #define pte_page(pte) pfn_to_page(pte_pfn(pte))
20568
20569 static inline int pmd_large(pmd_t pte)
20570 @@ -203,9 +250,29 @@ static inline pte_t pte_wrprotect(pte_t pte)
20571 return pte_clear_flags(pte, _PAGE_RW);
20572 }
20573
20574 +static inline pte_t pte_mkread(pte_t pte)
20575 +{
20576 + return __pte(pte_val(pte) | _PAGE_USER);
20577 +}
20578 +
20579 static inline pte_t pte_mkexec(pte_t pte)
20580 {
20581 - return pte_clear_flags(pte, _PAGE_NX);
20582 +#ifdef CONFIG_X86_PAE
20583 + if (__supported_pte_mask & _PAGE_NX)
20584 + return pte_clear_flags(pte, _PAGE_NX);
20585 + else
20586 +#endif
20587 + return pte_set_flags(pte, _PAGE_USER);
20588 +}
20589 +
20590 +static inline pte_t pte_exprotect(pte_t pte)
20591 +{
20592 +#ifdef CONFIG_X86_PAE
20593 + if (__supported_pte_mask & _PAGE_NX)
20594 + return pte_set_flags(pte, _PAGE_NX);
20595 + else
20596 +#endif
20597 + return pte_clear_flags(pte, _PAGE_USER);
20598 }
20599
20600 static inline pte_t pte_mkdirty(pte_t pte)
20601 @@ -426,6 +493,16 @@ pte_t *populate_extra_pte(unsigned long vaddr);
20602 #endif
20603
20604 #ifndef __ASSEMBLY__
20605 +
20606 +#ifdef CONFIG_PAX_PER_CPU_PGD
20607 +extern pgd_t cpu_pgd[NR_CPUS][2][PTRS_PER_PGD];
20608 +enum cpu_pgd_type {kernel = 0, user = 1};
20609 +static inline pgd_t *get_cpu_pgd(unsigned int cpu, enum cpu_pgd_type type)
20610 +{
20611 + return cpu_pgd[cpu][type];
20612 +}
20613 +#endif
20614 +
20615 #include <linux/mm_types.h>
20616 #include <linux/mmdebug.h>
20617 #include <linux/log2.h>
20618 @@ -577,7 +654,7 @@ static inline unsigned long pud_page_vaddr(pud_t pud)
20619 * Currently stuck as a macro due to indirect forward reference to
20620 * linux/mmzone.h's __section_mem_map_addr() definition:
20621 */
20622 -#define pud_page(pud) pfn_to_page(pud_val(pud) >> PAGE_SHIFT)
20623 +#define pud_page(pud) pfn_to_page((pud_val(pud) & PTE_PFN_MASK) >> PAGE_SHIFT)
20624
20625 /* Find an entry in the second-level page table.. */
20626 static inline pmd_t *pmd_offset(pud_t *pud, unsigned long address)
20627 @@ -617,7 +694,7 @@ static inline unsigned long pgd_page_vaddr(pgd_t pgd)
20628 * Currently stuck as a macro due to indirect forward reference to
20629 * linux/mmzone.h's __section_mem_map_addr() definition:
20630 */
20631 -#define pgd_page(pgd) pfn_to_page(pgd_val(pgd) >> PAGE_SHIFT)
20632 +#define pgd_page(pgd) pfn_to_page((pgd_val(pgd) & PTE_PFN_MASK) >> PAGE_SHIFT)
20633
20634 /* to find an entry in a page-table-directory. */
20635 static inline unsigned long pud_index(unsigned long address)
20636 @@ -632,7 +709,7 @@ static inline pud_t *pud_offset(pgd_t *pgd, unsigned long address)
20637
20638 static inline int pgd_bad(pgd_t pgd)
20639 {
20640 - return (pgd_flags(pgd) & ~_PAGE_USER) != _KERNPG_TABLE;
20641 + return (pgd_flags(pgd) & ~(_PAGE_USER | _PAGE_NX)) != _KERNPG_TABLE;
20642 }
20643
20644 static inline int pgd_none(pgd_t pgd)
20645 @@ -655,7 +732,12 @@ static inline int pgd_none(pgd_t pgd)
20646 * pgd_offset() returns a (pgd_t *)
20647 * pgd_index() is used get the offset into the pgd page's array of pgd_t's;
20648 */
20649 -#define pgd_offset(mm, address) ((mm)->pgd + pgd_index((address)))
20650 +#define pgd_offset(mm, address) ((mm)->pgd + pgd_index(address))
20651 +
20652 +#ifdef CONFIG_PAX_PER_CPU_PGD
20653 +#define pgd_offset_cpu(cpu, type, address) (get_cpu_pgd(cpu, type) + pgd_index(address))
20654 +#endif
20655 +
20656 /*
20657 * a shortcut which implies the use of the kernel's pgd, instead
20658 * of a process's
20659 @@ -666,6 +748,25 @@ static inline int pgd_none(pgd_t pgd)
20660 #define KERNEL_PGD_BOUNDARY pgd_index(PAGE_OFFSET)
20661 #define KERNEL_PGD_PTRS (PTRS_PER_PGD - KERNEL_PGD_BOUNDARY)
20662
20663 +#ifdef CONFIG_X86_32
20664 +#define USER_PGD_PTRS KERNEL_PGD_BOUNDARY
20665 +#else
20666 +#define TASK_SIZE_MAX_SHIFT CONFIG_TASK_SIZE_MAX_SHIFT
20667 +#define USER_PGD_PTRS (_AC(1,UL) << (TASK_SIZE_MAX_SHIFT - PGDIR_SHIFT))
20668 +
20669 +#ifdef CONFIG_PAX_MEMORY_UDEREF
20670 +#ifdef __ASSEMBLY__
20671 +#define pax_user_shadow_base pax_user_shadow_base(%rip)
20672 +#else
20673 +extern unsigned long pax_user_shadow_base;
20674 +extern pgdval_t clone_pgd_mask;
20675 +#endif
20676 +#else
20677 +#define pax_user_shadow_base (0UL)
20678 +#endif
20679 +
20680 +#endif
20681 +
20682 #ifndef __ASSEMBLY__
20683
20684 extern int direct_gbpages;
20685 @@ -832,11 +933,24 @@ static inline void pmdp_set_wrprotect(struct mm_struct *mm,
20686 * dst and src can be on the same page, but the range must not overlap,
20687 * and must not cross a page boundary.
20688 */
20689 -static inline void clone_pgd_range(pgd_t *dst, pgd_t *src, int count)
20690 +static inline void clone_pgd_range(pgd_t *dst, const pgd_t *src, int count)
20691 {
20692 - memcpy(dst, src, count * sizeof(pgd_t));
20693 + pax_open_kernel();
20694 + while (count--)
20695 + *dst++ = *src++;
20696 + pax_close_kernel();
20697 }
20698
20699 +#ifdef CONFIG_PAX_PER_CPU_PGD
20700 +extern void __clone_user_pgds(pgd_t *dst, const pgd_t *src);
20701 +#endif
20702 +
20703 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
20704 +extern void __shadow_user_pgds(pgd_t *dst, const pgd_t *src);
20705 +#else
20706 +static inline void __shadow_user_pgds(pgd_t *dst, const pgd_t *src) {}
20707 +#endif
20708 +
20709 #define PTE_SHIFT ilog2(PTRS_PER_PTE)
20710 static inline int page_level_shift(enum pg_level level)
20711 {
20712 diff --git a/arch/x86/include/asm/pgtable_32.h b/arch/x86/include/asm/pgtable_32.h
20713 index b6c0b40..3535d47 100644
20714 --- a/arch/x86/include/asm/pgtable_32.h
20715 +++ b/arch/x86/include/asm/pgtable_32.h
20716 @@ -25,9 +25,6 @@
20717 struct mm_struct;
20718 struct vm_area_struct;
20719
20720 -extern pgd_t swapper_pg_dir[1024];
20721 -extern pgd_t initial_page_table[1024];
20722 -
20723 static inline void pgtable_cache_init(void) { }
20724 static inline void check_pgt_cache(void) { }
20725 void paging_init(void);
20726 @@ -45,6 +42,12 @@ void paging_init(void);
20727 # include <asm/pgtable-2level.h>
20728 #endif
20729
20730 +extern pgd_t swapper_pg_dir[PTRS_PER_PGD];
20731 +extern pgd_t initial_page_table[PTRS_PER_PGD];
20732 +#ifdef CONFIG_X86_PAE
20733 +extern pmd_t swapper_pm_dir[PTRS_PER_PGD][PTRS_PER_PMD];
20734 +#endif
20735 +
20736 #if defined(CONFIG_HIGHPTE)
20737 #define pte_offset_map(dir, address) \
20738 ((pte_t *)kmap_atomic(pmd_page(*(dir))) + \
20739 @@ -59,12 +62,17 @@ void paging_init(void);
20740 /* Clear a kernel PTE and flush it from the TLB */
20741 #define kpte_clear_flush(ptep, vaddr) \
20742 do { \
20743 + pax_open_kernel(); \
20744 pte_clear(&init_mm, (vaddr), (ptep)); \
20745 + pax_close_kernel(); \
20746 __flush_tlb_one((vaddr)); \
20747 } while (0)
20748
20749 #endif /* !__ASSEMBLY__ */
20750
20751 +#define HAVE_ARCH_UNMAPPED_AREA
20752 +#define HAVE_ARCH_UNMAPPED_AREA_TOPDOWN
20753 +
20754 /*
20755 * kern_addr_valid() is (1) for FLATMEM and (0) for
20756 * SPARSEMEM and DISCONTIGMEM
20757 diff --git a/arch/x86/include/asm/pgtable_32_types.h b/arch/x86/include/asm/pgtable_32_types.h
20758 index 9fb2f2b..8e18c70 100644
20759 --- a/arch/x86/include/asm/pgtable_32_types.h
20760 +++ b/arch/x86/include/asm/pgtable_32_types.h
20761 @@ -8,7 +8,7 @@
20762 */
20763 #ifdef CONFIG_X86_PAE
20764 # include <asm/pgtable-3level_types.h>
20765 -# define PMD_SIZE (1UL << PMD_SHIFT)
20766 +# define PMD_SIZE (_AC(1, UL) << PMD_SHIFT)
20767 # define PMD_MASK (~(PMD_SIZE - 1))
20768 #else
20769 # include <asm/pgtable-2level_types.h>
20770 @@ -46,6 +46,28 @@ extern bool __vmalloc_start_set; /* set once high_memory is set */
20771 # define VMALLOC_END (FIXADDR_START - 2 * PAGE_SIZE)
20772 #endif
20773
20774 +#ifdef CONFIG_PAX_KERNEXEC
20775 +#ifndef __ASSEMBLY__
20776 +extern unsigned char MODULES_EXEC_VADDR[];
20777 +extern unsigned char MODULES_EXEC_END[];
20778 +
20779 +extern unsigned char __LOAD_PHYSICAL_ADDR[];
20780 +#define LOAD_PHYSICAL_ADDR ((unsigned long)__LOAD_PHYSICAL_ADDR)
20781 +static inline unsigned long __intentional_overflow(-1) ktla_ktva(unsigned long addr)
20782 +{
20783 + return addr + LOAD_PHYSICAL_ADDR + PAGE_OFFSET;
20784 +
20785 +}
20786 +static inline unsigned long __intentional_overflow(-1) ktva_ktla(unsigned long addr)
20787 +{
20788 + return addr - LOAD_PHYSICAL_ADDR - PAGE_OFFSET;
20789 +}
20790 +#endif
20791 +#else
20792 +#define ktla_ktva(addr) (addr)
20793 +#define ktva_ktla(addr) (addr)
20794 +#endif
20795 +
20796 #define MODULES_VADDR VMALLOC_START
20797 #define MODULES_END VMALLOC_END
20798 #define MODULES_LEN (MODULES_VADDR - MODULES_END)
20799 diff --git a/arch/x86/include/asm/pgtable_64.h b/arch/x86/include/asm/pgtable_64.h
20800 index 2ee7811..afd76c0 100644
20801 --- a/arch/x86/include/asm/pgtable_64.h
20802 +++ b/arch/x86/include/asm/pgtable_64.h
20803 @@ -16,11 +16,17 @@
20804
20805 extern pud_t level3_kernel_pgt[512];
20806 extern pud_t level3_ident_pgt[512];
20807 +extern pud_t level3_vmalloc_start_pgt[512];
20808 +extern pud_t level3_vmalloc_end_pgt[512];
20809 +extern pud_t level3_vmemmap_pgt[512];
20810 +extern pud_t level2_vmemmap_pgt[512];
20811 extern pmd_t level2_kernel_pgt[512];
20812 extern pmd_t level2_fixmap_pgt[512];
20813 -extern pmd_t level2_ident_pgt[512];
20814 -extern pte_t level1_fixmap_pgt[512];
20815 -extern pgd_t init_level4_pgt[];
20816 +extern pmd_t level2_ident_pgt[2][512];
20817 +extern pte_t level1_modules_pgt[4][512];
20818 +extern pte_t level1_fixmap_pgt[3][512];
20819 +extern pte_t level1_vsyscall_pgt[512];
20820 +extern pgd_t init_level4_pgt[512];
20821
20822 #define swapper_pg_dir init_level4_pgt
20823
20824 @@ -62,7 +68,9 @@ static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
20825
20826 static inline void native_set_pmd(pmd_t *pmdp, pmd_t pmd)
20827 {
20828 + pax_open_kernel();
20829 *pmdp = pmd;
20830 + pax_close_kernel();
20831 }
20832
20833 static inline void native_pmd_clear(pmd_t *pmd)
20834 @@ -98,7 +106,9 @@ static inline pmd_t native_pmdp_get_and_clear(pmd_t *xp)
20835
20836 static inline void native_set_pud(pud_t *pudp, pud_t pud)
20837 {
20838 + pax_open_kernel();
20839 *pudp = pud;
20840 + pax_close_kernel();
20841 }
20842
20843 static inline void native_pud_clear(pud_t *pud)
20844 @@ -108,6 +118,13 @@ static inline void native_pud_clear(pud_t *pud)
20845
20846 static inline void native_set_pgd(pgd_t *pgdp, pgd_t pgd)
20847 {
20848 + pax_open_kernel();
20849 + *pgdp = pgd;
20850 + pax_close_kernel();
20851 +}
20852 +
20853 +static inline void native_set_pgd_batched(pgd_t *pgdp, pgd_t pgd)
20854 +{
20855 *pgdp = pgd;
20856 }
20857
20858 diff --git a/arch/x86/include/asm/pgtable_64_types.h b/arch/x86/include/asm/pgtable_64_types.h
20859 index e6844df..432b56e 100644
20860 --- a/arch/x86/include/asm/pgtable_64_types.h
20861 +++ b/arch/x86/include/asm/pgtable_64_types.h
20862 @@ -60,11 +60,16 @@ typedef struct { pteval_t pte; } pte_t;
20863 #define MODULES_VADDR (__START_KERNEL_map + KERNEL_IMAGE_SIZE)
20864 #define MODULES_END _AC(0xffffffffff000000, UL)
20865 #define MODULES_LEN (MODULES_END - MODULES_VADDR)
20866 +#define MODULES_EXEC_VADDR MODULES_VADDR
20867 +#define MODULES_EXEC_END MODULES_END
20868 #define ESPFIX_PGD_ENTRY _AC(-2, UL)
20869 #define ESPFIX_BASE_ADDR (ESPFIX_PGD_ENTRY << PGDIR_SHIFT)
20870 #define EFI_VA_START ( -4 * (_AC(1, UL) << 30))
20871 #define EFI_VA_END (-68 * (_AC(1, UL) << 30))
20872
20873 +#define ktla_ktva(addr) (addr)
20874 +#define ktva_ktla(addr) (addr)
20875 +
20876 #define EARLY_DYNAMIC_PAGE_TABLES 64
20877
20878 #endif /* _ASM_X86_PGTABLE_64_DEFS_H */
20879 diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
20880 index 13f310b..f0ef42e 100644
20881 --- a/arch/x86/include/asm/pgtable_types.h
20882 +++ b/arch/x86/include/asm/pgtable_types.h
20883 @@ -85,8 +85,10 @@
20884
20885 #if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
20886 #define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_NX)
20887 -#else
20888 +#elif defined(CONFIG_KMEMCHECK) || defined(CONFIG_MEM_SOFT_DIRTY)
20889 #define _PAGE_NX (_AT(pteval_t, 0))
20890 +#else
20891 +#define _PAGE_NX (_AT(pteval_t, 1) << _PAGE_BIT_HIDDEN)
20892 #endif
20893
20894 #define _PAGE_PROTNONE (_AT(pteval_t, 1) << _PAGE_BIT_PROTNONE)
20895 @@ -141,6 +143,9 @@ enum page_cache_mode {
20896 #define PAGE_READONLY_EXEC __pgprot(_PAGE_PRESENT | _PAGE_USER | \
20897 _PAGE_ACCESSED)
20898
20899 +#define PAGE_READONLY_NOEXEC PAGE_READONLY
20900 +#define PAGE_SHARED_NOEXEC PAGE_SHARED
20901 +
20902 #define __PAGE_KERNEL_EXEC \
20903 (_PAGE_PRESENT | _PAGE_RW | _PAGE_DIRTY | _PAGE_ACCESSED | _PAGE_GLOBAL)
20904 #define __PAGE_KERNEL (__PAGE_KERNEL_EXEC | _PAGE_NX)
20905 @@ -148,7 +153,7 @@ enum page_cache_mode {
20906 #define __PAGE_KERNEL_RO (__PAGE_KERNEL & ~_PAGE_RW)
20907 #define __PAGE_KERNEL_RX (__PAGE_KERNEL_EXEC & ~_PAGE_RW)
20908 #define __PAGE_KERNEL_NOCACHE (__PAGE_KERNEL | _PAGE_NOCACHE)
20909 -#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RX | _PAGE_USER)
20910 +#define __PAGE_KERNEL_VSYSCALL (__PAGE_KERNEL_RO | _PAGE_USER)
20911 #define __PAGE_KERNEL_VVAR (__PAGE_KERNEL_RO | _PAGE_USER)
20912 #define __PAGE_KERNEL_LARGE (__PAGE_KERNEL | _PAGE_PSE)
20913 #define __PAGE_KERNEL_LARGE_EXEC (__PAGE_KERNEL_EXEC | _PAGE_PSE)
20914 @@ -194,7 +199,7 @@ enum page_cache_mode {
20915 #ifdef CONFIG_X86_64
20916 #define __PAGE_KERNEL_IDENT_LARGE_EXEC __PAGE_KERNEL_LARGE_EXEC
20917 #else
20918 -#define PTE_IDENT_ATTR 0x003 /* PRESENT+RW */
20919 +#define PTE_IDENT_ATTR 0x063 /* PRESENT+RW+DIRTY+ACCESSED */
20920 #define PDE_IDENT_ATTR 0x063 /* PRESENT+RW+DIRTY+ACCESSED */
20921 #define PGD_IDENT_ATTR 0x001 /* PRESENT (no other attributes) */
20922 #endif
20923 @@ -233,7 +238,17 @@ static inline pgdval_t pgd_flags(pgd_t pgd)
20924 {
20925 return native_pgd_val(pgd) & PTE_FLAGS_MASK;
20926 }
20927 +#endif
20928
20929 +#if CONFIG_PGTABLE_LEVELS == 3
20930 +#include <asm-generic/pgtable-nopud.h>
20931 +#endif
20932 +
20933 +#if CONFIG_PGTABLE_LEVELS == 2
20934 +#include <asm-generic/pgtable-nopmd.h>
20935 +#endif
20936 +
20937 +#ifndef __ASSEMBLY__
20938 #if CONFIG_PGTABLE_LEVELS > 3
20939 typedef struct { pudval_t pud; } pud_t;
20940
20941 @@ -247,8 +262,6 @@ static inline pudval_t native_pud_val(pud_t pud)
20942 return pud.pud;
20943 }
20944 #else
20945 -#include <asm-generic/pgtable-nopud.h>
20946 -
20947 static inline pudval_t native_pud_val(pud_t pud)
20948 {
20949 return native_pgd_val(pud.pgd);
20950 @@ -268,8 +281,6 @@ static inline pmdval_t native_pmd_val(pmd_t pmd)
20951 return pmd.pmd;
20952 }
20953 #else
20954 -#include <asm-generic/pgtable-nopmd.h>
20955 -
20956 static inline pmdval_t native_pmd_val(pmd_t pmd)
20957 {
20958 return native_pgd_val(pmd.pud.pgd);
20959 @@ -362,7 +373,6 @@ typedef struct page *pgtable_t;
20960
20961 extern pteval_t __supported_pte_mask;
20962 extern void set_nx(void);
20963 -extern int nx_enabled;
20964
20965 #define pgprot_writecombine pgprot_writecombine
20966 extern pgprot_t pgprot_writecombine(pgprot_t prot);
20967 diff --git a/arch/x86/include/asm/preempt.h b/arch/x86/include/asm/preempt.h
20968 index b12f810..aedcc13 100644
20969 --- a/arch/x86/include/asm/preempt.h
20970 +++ b/arch/x86/include/asm/preempt.h
20971 @@ -84,7 +84,7 @@ static __always_inline void __preempt_count_sub(int val)
20972 */
20973 static __always_inline bool __preempt_count_dec_and_test(void)
20974 {
20975 - GEN_UNARY_RMWcc("decl", __preempt_count, __percpu_arg(0), "e");
20976 + GEN_UNARY_RMWcc("decl", "incl", __preempt_count, __percpu_arg(0), "e");
20977 }
20978
20979 /*
20980 diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
20981 index 944f178..f2269de 100644
20982 --- a/arch/x86/include/asm/processor.h
20983 +++ b/arch/x86/include/asm/processor.h
20984 @@ -136,7 +136,7 @@ struct cpuinfo_x86 {
20985 /* Index into per_cpu list: */
20986 u16 cpu_index;
20987 u32 microcode;
20988 -};
20989 +} __randomize_layout;
20990
20991 #define X86_VENDOR_INTEL 0
20992 #define X86_VENDOR_CYRIX 1
20993 @@ -206,9 +206,21 @@ static inline void native_cpuid(unsigned int *eax, unsigned int *ebx,
20994 : "memory");
20995 }
20996
20997 +/* invpcid (%rdx),%rax */
20998 +#define __ASM_INVPCID ".byte 0x66,0x0f,0x38,0x82,0x02"
20999 +
21000 +#define INVPCID_SINGLE_ADDRESS 0UL
21001 +#define INVPCID_SINGLE_CONTEXT 1UL
21002 +#define INVPCID_ALL_GLOBAL 2UL
21003 +#define INVPCID_ALL_NONGLOBAL 3UL
21004 +
21005 +#define PCID_KERNEL 0UL
21006 +#define PCID_USER 1UL
21007 +#define PCID_NOFLUSH (1UL << 63)
21008 +
21009 static inline void load_cr3(pgd_t *pgdir)
21010 {
21011 - write_cr3(__pa(pgdir));
21012 + write_cr3(__pa(pgdir) | PCID_KERNEL);
21013 }
21014
21015 #ifdef CONFIG_X86_32
21016 @@ -305,11 +317,9 @@ struct tss_struct {
21017
21018 } ____cacheline_aligned;
21019
21020 -DECLARE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss);
21021 +extern struct tss_struct cpu_tss[NR_CPUS];
21022
21023 -#ifdef CONFIG_X86_32
21024 DECLARE_PER_CPU(unsigned long, cpu_current_top_of_stack);
21025 -#endif
21026
21027 /*
21028 * Save the original ist values for checking stack pointers during debugging
21029 @@ -381,6 +391,7 @@ struct thread_struct {
21030 unsigned short ds;
21031 unsigned short fsindex;
21032 unsigned short gsindex;
21033 + unsigned short ss;
21034 #endif
21035 #ifdef CONFIG_X86_32
21036 unsigned long ip;
21037 @@ -390,6 +401,9 @@ struct thread_struct {
21038 #endif
21039 unsigned long gs;
21040
21041 + /* Floating point and extended processor state */
21042 + struct fpu fpu;
21043 +
21044 /* Save middle states of ptrace breakpoints */
21045 struct perf_event *ptrace_bps[HBP_NUM];
21046 /* Debug status used for traps, single steps, etc... */
21047 @@ -415,13 +429,6 @@ struct thread_struct {
21048 unsigned long iopl;
21049 /* Max allowed port in the bitmap, in bytes: */
21050 unsigned io_bitmap_max;
21051 -
21052 - /* Floating point and extended processor state */
21053 - struct fpu fpu;
21054 - /*
21055 - * WARNING: 'fpu' is dynamically-sized. It *MUST* be at
21056 - * the end.
21057 - */
21058 };
21059
21060 /*
21061 @@ -463,10 +470,10 @@ static inline void native_swapgs(void)
21062 #endif
21063 }
21064
21065 -static inline unsigned long current_top_of_stack(void)
21066 +static inline unsigned long current_top_of_stack(unsigned int cpu)
21067 {
21068 #ifdef CONFIG_X86_64
21069 - return this_cpu_read_stable(cpu_tss.x86_tss.sp0);
21070 + return cpu_tss[cpu].x86_tss.sp0;
21071 #else
21072 /* sp0 on x86_32 is special in and around vm86 mode. */
21073 return this_cpu_read_stable(cpu_current_top_of_stack);
21074 @@ -709,20 +716,30 @@ static inline void spin_lock_prefetch(const void *x)
21075 #define TOP_OF_INIT_STACK ((unsigned long)&init_stack + sizeof(init_stack) - \
21076 TOP_OF_KERNEL_STACK_PADDING)
21077
21078 +extern union fpregs_state init_fpregs_state;
21079 +
21080 #ifdef CONFIG_X86_32
21081 /*
21082 * User space process size: 3GB (default).
21083 */
21084 #define TASK_SIZE PAGE_OFFSET
21085 #define TASK_SIZE_MAX TASK_SIZE
21086 +
21087 +#ifdef CONFIG_PAX_SEGMEXEC
21088 +#define SEGMEXEC_TASK_SIZE (TASK_SIZE / 2)
21089 +#define STACK_TOP ((current->mm->pax_flags & MF_PAX_SEGMEXEC)?SEGMEXEC_TASK_SIZE:TASK_SIZE)
21090 +#else
21091 #define STACK_TOP TASK_SIZE
21092 -#define STACK_TOP_MAX STACK_TOP
21093 +#endif
21094 +
21095 +#define STACK_TOP_MAX TASK_SIZE
21096
21097 #define INIT_THREAD { \
21098 .sp0 = TOP_OF_INIT_STACK, \
21099 .vm86_info = NULL, \
21100 .sysenter_cs = __KERNEL_CS, \
21101 .io_bitmap_ptr = NULL, \
21102 + .fpu.state = &init_fpregs_state, \
21103 }
21104
21105 extern unsigned long thread_saved_pc(struct task_struct *tsk);
21106 @@ -737,12 +754,7 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
21107 * "struct pt_regs" is possible, but they may contain the
21108 * completely wrong values.
21109 */
21110 -#define task_pt_regs(task) \
21111 -({ \
21112 - unsigned long __ptr = (unsigned long)task_stack_page(task); \
21113 - __ptr += THREAD_SIZE - TOP_OF_KERNEL_STACK_PADDING; \
21114 - ((struct pt_regs *)__ptr) - 1; \
21115 -})
21116 +#define task_pt_regs(tsk) ((struct pt_regs *)(tsk)->thread.sp0 - 1)
21117
21118 #define KSTK_ESP(task) (task_pt_regs(task)->sp)
21119
21120 @@ -756,13 +768,13 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
21121 * particular problem by preventing anything from being mapped
21122 * at the maximum canonical address.
21123 */
21124 -#define TASK_SIZE_MAX ((1UL << 47) - PAGE_SIZE)
21125 +#define TASK_SIZE_MAX ((1UL << TASK_SIZE_MAX_SHIFT) - PAGE_SIZE)
21126
21127 /* This decides where the kernel will search for a free chunk of vm
21128 * space during mmap's.
21129 */
21130 #define IA32_PAGE_OFFSET ((current->personality & ADDR_LIMIT_3GB) ? \
21131 - 0xc0000000 : 0xFFFFe000)
21132 + 0xc0000000 : 0xFFFFf000)
21133
21134 #define TASK_SIZE (test_thread_flag(TIF_ADDR32) ? \
21135 IA32_PAGE_OFFSET : TASK_SIZE_MAX)
21136 @@ -773,7 +785,8 @@ extern unsigned long thread_saved_pc(struct task_struct *tsk);
21137 #define STACK_TOP_MAX TASK_SIZE_MAX
21138
21139 #define INIT_THREAD { \
21140 - .sp0 = TOP_OF_INIT_STACK \
21141 + .sp0 = TOP_OF_INIT_STACK, \
21142 + .fpu.state = &init_fpregs_state, \
21143 }
21144
21145 /*
21146 @@ -796,6 +809,10 @@ extern void start_thread(struct pt_regs *regs, unsigned long new_ip,
21147 */
21148 #define TASK_UNMAPPED_BASE (PAGE_ALIGN(TASK_SIZE / 3))
21149
21150 +#ifdef CONFIG_PAX_SEGMEXEC
21151 +#define SEGMEXEC_TASK_UNMAPPED_BASE (PAGE_ALIGN(SEGMEXEC_TASK_SIZE / 3))
21152 +#endif
21153 +
21154 #define KSTK_EIP(task) (task_pt_regs(task)->ip)
21155
21156 /* Get/set a process' ability to use the timestamp counter instruction */
21157 @@ -841,7 +858,7 @@ static inline uint32_t hypervisor_cpuid_base(const char *sig, uint32_t leaves)
21158 return 0;
21159 }
21160
21161 -extern unsigned long arch_align_stack(unsigned long sp);
21162 +#define arch_align_stack(x) ((x) & ~0xfUL)
21163 extern void free_init_pages(char *what, unsigned long begin, unsigned long end);
21164
21165 void default_idle(void);
21166 @@ -851,6 +868,6 @@ bool xen_set_default_idle(void);
21167 #define xen_set_default_idle 0
21168 #endif
21169
21170 -void stop_this_cpu(void *dummy);
21171 +void stop_this_cpu(void *dummy) __noreturn;
21172 void df_debug(struct pt_regs *regs, long error_code);
21173 #endif /* _ASM_X86_PROCESSOR_H */
21174 diff --git a/arch/x86/include/asm/ptrace.h b/arch/x86/include/asm/ptrace.h
21175 index 5fabf13..7388158 100644
21176 --- a/arch/x86/include/asm/ptrace.h
21177 +++ b/arch/x86/include/asm/ptrace.h
21178 @@ -125,15 +125,16 @@ static inline int v8086_mode(struct pt_regs *regs)
21179 #ifdef CONFIG_X86_64
21180 static inline bool user_64bit_mode(struct pt_regs *regs)
21181 {
21182 + unsigned long cs = regs->cs & 0xffff;
21183 #ifndef CONFIG_PARAVIRT
21184 /*
21185 * On non-paravirt systems, this is the only long mode CPL 3
21186 * selector. We do not allow long mode selectors in the LDT.
21187 */
21188 - return regs->cs == __USER_CS;
21189 + return cs == __USER_CS;
21190 #else
21191 /* Headers are too twisted for this to go in paravirt.h. */
21192 - return regs->cs == __USER_CS || regs->cs == pv_info.extra_user_64bit_cs;
21193 + return cs == __USER_CS || cs == pv_info.extra_user_64bit_cs;
21194 #endif
21195 }
21196
21197 @@ -180,9 +181,11 @@ static inline unsigned long regs_get_register(struct pt_regs *regs,
21198 * Traps from the kernel do not save sp and ss.
21199 * Use the helper function to retrieve sp.
21200 */
21201 - if (offset == offsetof(struct pt_regs, sp) &&
21202 - regs->cs == __KERNEL_CS)
21203 - return kernel_stack_pointer(regs);
21204 + if (offset == offsetof(struct pt_regs, sp)) {
21205 + unsigned long cs = regs->cs & 0xffff;
21206 + if (cs == __KERNEL_CS || cs == __KERNEXEC_KERNEL_CS)
21207 + return kernel_stack_pointer(regs);
21208 + }
21209 #endif
21210 return *(unsigned long *)((unsigned long)regs + offset);
21211 }
21212 diff --git a/arch/x86/include/asm/qrwlock.h b/arch/x86/include/asm/qrwlock.h
21213 index ae0e241..e80b10b 100644
21214 --- a/arch/x86/include/asm/qrwlock.h
21215 +++ b/arch/x86/include/asm/qrwlock.h
21216 @@ -7,8 +7,8 @@
21217 #define queue_write_unlock queue_write_unlock
21218 static inline void queue_write_unlock(struct qrwlock *lock)
21219 {
21220 - barrier();
21221 - ACCESS_ONCE(*(u8 *)&lock->cnts) = 0;
21222 + barrier();
21223 + ACCESS_ONCE_RW(*(u8 *)&lock->cnts) = 0;
21224 }
21225 #endif
21226
21227 diff --git a/arch/x86/include/asm/realmode.h b/arch/x86/include/asm/realmode.h
21228 index 9c6b890..5305f53 100644
21229 --- a/arch/x86/include/asm/realmode.h
21230 +++ b/arch/x86/include/asm/realmode.h
21231 @@ -22,16 +22,14 @@ struct real_mode_header {
21232 #endif
21233 /* APM/BIOS reboot */
21234 u32 machine_real_restart_asm;
21235 -#ifdef CONFIG_X86_64
21236 u32 machine_real_restart_seg;
21237 -#endif
21238 };
21239
21240 /* This must match data at trampoline_32/64.S */
21241 struct trampoline_header {
21242 #ifdef CONFIG_X86_32
21243 u32 start;
21244 - u16 gdt_pad;
21245 + u16 boot_cs;
21246 u16 gdt_limit;
21247 u32 gdt_base;
21248 #else
21249 diff --git a/arch/x86/include/asm/reboot.h b/arch/x86/include/asm/reboot.h
21250 index a82c4f1..ac45053 100644
21251 --- a/arch/x86/include/asm/reboot.h
21252 +++ b/arch/x86/include/asm/reboot.h
21253 @@ -6,13 +6,13 @@
21254 struct pt_regs;
21255
21256 struct machine_ops {
21257 - void (*restart)(char *cmd);
21258 - void (*halt)(void);
21259 - void (*power_off)(void);
21260 + void (* __noreturn restart)(char *cmd);
21261 + void (* __noreturn halt)(void);
21262 + void (* __noreturn power_off)(void);
21263 void (*shutdown)(void);
21264 void (*crash_shutdown)(struct pt_regs *);
21265 - void (*emergency_restart)(void);
21266 -};
21267 + void (* __noreturn emergency_restart)(void);
21268 +} __no_const;
21269
21270 extern struct machine_ops machine_ops;
21271
21272 diff --git a/arch/x86/include/asm/rmwcc.h b/arch/x86/include/asm/rmwcc.h
21273 index 8f7866a..e442f20 100644
21274 --- a/arch/x86/include/asm/rmwcc.h
21275 +++ b/arch/x86/include/asm/rmwcc.h
21276 @@ -3,7 +3,34 @@
21277
21278 #ifdef CC_HAVE_ASM_GOTO
21279
21280 -#define __GEN_RMWcc(fullop, var, cc, ...) \
21281 +#ifdef CONFIG_PAX_REFCOUNT
21282 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21283 +do { \
21284 + asm_volatile_goto (fullop \
21285 + ";jno 0f\n" \
21286 + fullantiop \
21287 + ";int $4\n0:\n" \
21288 + _ASM_EXTABLE(0b, 0b) \
21289 + ";j" cc " %l[cc_label]" \
21290 + : : "m" (var), ## __VA_ARGS__ \
21291 + : "memory" : cc_label); \
21292 + return 0; \
21293 +cc_label: \
21294 + return 1; \
21295 +} while (0)
21296 +#else
21297 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21298 +do { \
21299 + asm_volatile_goto (fullop ";j" cc " %l[cc_label]" \
21300 + : : "m" (var), ## __VA_ARGS__ \
21301 + : "memory" : cc_label); \
21302 + return 0; \
21303 +cc_label: \
21304 + return 1; \
21305 +} while (0)
21306 +#endif
21307 +
21308 +#define __GEN_RMWcc_unchecked(fullop, var, cc, ...) \
21309 do { \
21310 asm_volatile_goto (fullop "; j" cc " %l[cc_label]" \
21311 : : "m" (var), ## __VA_ARGS__ \
21312 @@ -13,15 +40,46 @@ cc_label: \
21313 return 1; \
21314 } while (0)
21315
21316 -#define GEN_UNARY_RMWcc(op, var, arg0, cc) \
21317 - __GEN_RMWcc(op " " arg0, var, cc)
21318 +#define GEN_UNARY_RMWcc(op, antiop, var, arg0, cc) \
21319 + __GEN_RMWcc(op " " arg0, antiop " " arg0, var, cc)
21320
21321 -#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
21322 - __GEN_RMWcc(op " %1, " arg0, var, cc, vcon (val))
21323 +#define GEN_UNARY_RMWcc_unchecked(op, var, arg0, cc) \
21324 + __GEN_RMWcc_unchecked(op " " arg0, var, cc)
21325 +
21326 +#define GEN_BINARY_RMWcc(op, antiop, var, vcon, val, arg0, cc) \
21327 + __GEN_RMWcc(op " %1, " arg0, antiop " %1, " arg0, var, cc, vcon (val))
21328 +
21329 +#define GEN_BINARY_RMWcc_unchecked(op, var, vcon, val, arg0, cc) \
21330 + __GEN_RMWcc_unchecked(op " %1, " arg0, var, cc, vcon (val))
21331
21332 #else /* !CC_HAVE_ASM_GOTO */
21333
21334 -#define __GEN_RMWcc(fullop, var, cc, ...) \
21335 +#ifdef CONFIG_PAX_REFCOUNT
21336 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21337 +do { \
21338 + char c; \
21339 + asm volatile (fullop \
21340 + ";jno 0f\n" \
21341 + fullantiop \
21342 + ";int $4\n0:\n" \
21343 + _ASM_EXTABLE(0b, 0b) \
21344 + "; set" cc " %1" \
21345 + : "+m" (var), "=qm" (c) \
21346 + : __VA_ARGS__ : "memory"); \
21347 + return c != 0; \
21348 +} while (0)
21349 +#else
21350 +#define __GEN_RMWcc(fullop, fullantiop, var, cc, ...) \
21351 +do { \
21352 + char c; \
21353 + asm volatile (fullop "; set" cc " %1" \
21354 + : "+m" (var), "=qm" (c) \
21355 + : __VA_ARGS__ : "memory"); \
21356 + return c != 0; \
21357 +} while (0)
21358 +#endif
21359 +
21360 +#define __GEN_RMWcc_unchecked(fullop, var, cc, ...) \
21361 do { \
21362 char c; \
21363 asm volatile (fullop "; set" cc " %1" \
21364 @@ -30,11 +88,17 @@ do { \
21365 return c != 0; \
21366 } while (0)
21367
21368 -#define GEN_UNARY_RMWcc(op, var, arg0, cc) \
21369 - __GEN_RMWcc(op " " arg0, var, cc)
21370 +#define GEN_UNARY_RMWcc(op, antiop, var, arg0, cc) \
21371 + __GEN_RMWcc(op " " arg0, antiop " " arg0, var, cc)
21372 +
21373 +#define GEN_UNARY_RMWcc_unchecked(op, var, arg0, cc) \
21374 + __GEN_RMWcc_unchecked(op " " arg0, var, cc)
21375 +
21376 +#define GEN_BINARY_RMWcc(op, antiop, var, vcon, val, arg0, cc) \
21377 + __GEN_RMWcc(op " %2, " arg0, antiop " %2, " arg0, var, cc, vcon (val))
21378
21379 -#define GEN_BINARY_RMWcc(op, var, vcon, val, arg0, cc) \
21380 - __GEN_RMWcc(op " %2, " arg0, var, cc, vcon (val))
21381 +#define GEN_BINARY_RMWcc_unchecked(op, var, vcon, val, arg0, cc) \
21382 + __GEN_RMWcc_unchecked(op " %2, " arg0, var, cc, vcon (val))
21383
21384 #endif /* CC_HAVE_ASM_GOTO */
21385
21386 diff --git a/arch/x86/include/asm/rwsem.h b/arch/x86/include/asm/rwsem.h
21387 index cad82c9..2e5c5c1 100644
21388 --- a/arch/x86/include/asm/rwsem.h
21389 +++ b/arch/x86/include/asm/rwsem.h
21390 @@ -64,6 +64,14 @@ static inline void __down_read(struct rw_semaphore *sem)
21391 {
21392 asm volatile("# beginning down_read\n\t"
21393 LOCK_PREFIX _ASM_INC "(%1)\n\t"
21394 +
21395 +#ifdef CONFIG_PAX_REFCOUNT
21396 + "jno 0f\n"
21397 + LOCK_PREFIX _ASM_DEC "(%1)\n"
21398 + "int $4\n0:\n"
21399 + _ASM_EXTABLE(0b, 0b)
21400 +#endif
21401 +
21402 /* adds 0x00000001 */
21403 " jns 1f\n"
21404 " call call_rwsem_down_read_failed\n"
21405 @@ -85,6 +93,14 @@ static inline int __down_read_trylock(struct rw_semaphore *sem)
21406 "1:\n\t"
21407 " mov %1,%2\n\t"
21408 " add %3,%2\n\t"
21409 +
21410 +#ifdef CONFIG_PAX_REFCOUNT
21411 + "jno 0f\n"
21412 + "sub %3,%2\n"
21413 + "int $4\n0:\n"
21414 + _ASM_EXTABLE(0b, 0b)
21415 +#endif
21416 +
21417 " jle 2f\n\t"
21418 LOCK_PREFIX " cmpxchg %2,%0\n\t"
21419 " jnz 1b\n\t"
21420 @@ -104,6 +120,14 @@ static inline void __down_write_nested(struct rw_semaphore *sem, int subclass)
21421 long tmp;
21422 asm volatile("# beginning down_write\n\t"
21423 LOCK_PREFIX " xadd %1,(%2)\n\t"
21424 +
21425 +#ifdef CONFIG_PAX_REFCOUNT
21426 + "jno 0f\n"
21427 + "mov %1,(%2)\n"
21428 + "int $4\n0:\n"
21429 + _ASM_EXTABLE(0b, 0b)
21430 +#endif
21431 +
21432 /* adds 0xffff0001, returns the old value */
21433 " test " __ASM_SEL(%w1,%k1) "," __ASM_SEL(%w1,%k1) "\n\t"
21434 /* was the active mask 0 before? */
21435 @@ -155,6 +179,14 @@ static inline void __up_read(struct rw_semaphore *sem)
21436 long tmp;
21437 asm volatile("# beginning __up_read\n\t"
21438 LOCK_PREFIX " xadd %1,(%2)\n\t"
21439 +
21440 +#ifdef CONFIG_PAX_REFCOUNT
21441 + "jno 0f\n"
21442 + "mov %1,(%2)\n"
21443 + "int $4\n0:\n"
21444 + _ASM_EXTABLE(0b, 0b)
21445 +#endif
21446 +
21447 /* subtracts 1, returns the old value */
21448 " jns 1f\n\t"
21449 " call call_rwsem_wake\n" /* expects old value in %edx */
21450 @@ -173,6 +205,14 @@ static inline void __up_write(struct rw_semaphore *sem)
21451 long tmp;
21452 asm volatile("# beginning __up_write\n\t"
21453 LOCK_PREFIX " xadd %1,(%2)\n\t"
21454 +
21455 +#ifdef CONFIG_PAX_REFCOUNT
21456 + "jno 0f\n"
21457 + "mov %1,(%2)\n"
21458 + "int $4\n0:\n"
21459 + _ASM_EXTABLE(0b, 0b)
21460 +#endif
21461 +
21462 /* subtracts 0xffff0001, returns the old value */
21463 " jns 1f\n\t"
21464 " call call_rwsem_wake\n" /* expects old value in %edx */
21465 @@ -190,6 +230,14 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
21466 {
21467 asm volatile("# beginning __downgrade_write\n\t"
21468 LOCK_PREFIX _ASM_ADD "%2,(%1)\n\t"
21469 +
21470 +#ifdef CONFIG_PAX_REFCOUNT
21471 + "jno 0f\n"
21472 + LOCK_PREFIX _ASM_SUB "%2,(%1)\n"
21473 + "int $4\n0:\n"
21474 + _ASM_EXTABLE(0b, 0b)
21475 +#endif
21476 +
21477 /*
21478 * transitions 0xZZZZ0001 -> 0xYYYY0001 (i386)
21479 * 0xZZZZZZZZ00000001 -> 0xYYYYYYYY00000001 (x86_64)
21480 @@ -208,7 +256,15 @@ static inline void __downgrade_write(struct rw_semaphore *sem)
21481 */
21482 static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
21483 {
21484 - asm volatile(LOCK_PREFIX _ASM_ADD "%1,%0"
21485 + asm volatile(LOCK_PREFIX _ASM_ADD "%1,%0\n"
21486 +
21487 +#ifdef CONFIG_PAX_REFCOUNT
21488 + "jno 0f\n"
21489 + LOCK_PREFIX _ASM_SUB "%1,%0\n"
21490 + "int $4\n0:\n"
21491 + _ASM_EXTABLE(0b, 0b)
21492 +#endif
21493 +
21494 : "+m" (sem->count)
21495 : "er" (delta));
21496 }
21497 @@ -218,7 +274,7 @@ static inline void rwsem_atomic_add(long delta, struct rw_semaphore *sem)
21498 */
21499 static inline long rwsem_atomic_update(long delta, struct rw_semaphore *sem)
21500 {
21501 - return delta + xadd(&sem->count, delta);
21502 + return delta + xadd_check_overflow(&sem->count, delta);
21503 }
21504
21505 #endif /* __KERNEL__ */
21506 diff --git a/arch/x86/include/asm/segment.h b/arch/x86/include/asm/segment.h
21507 index 7d5a192..23ef1aa 100644
21508 --- a/arch/x86/include/asm/segment.h
21509 +++ b/arch/x86/include/asm/segment.h
21510 @@ -82,14 +82,20 @@
21511 * 26 - ESPFIX small SS
21512 * 27 - per-cpu [ offset to per-cpu data area ]
21513 * 28 - stack_canary-20 [ for stack protector ] <=== cacheline #8
21514 - * 29 - unused
21515 - * 30 - unused
21516 + * 29 - PCI BIOS CS
21517 + * 30 - PCI BIOS DS
21518 * 31 - TSS for double fault handler
21519 */
21520 +#define GDT_ENTRY_KERNEXEC_EFI_CS (1)
21521 +#define GDT_ENTRY_KERNEXEC_EFI_DS (2)
21522 +#define __KERNEXEC_EFI_CS (GDT_ENTRY_KERNEXEC_EFI_CS*8)
21523 +#define __KERNEXEC_EFI_DS (GDT_ENTRY_KERNEXEC_EFI_DS*8)
21524 +
21525 #define GDT_ENTRY_TLS_MIN 6
21526 #define GDT_ENTRY_TLS_MAX (GDT_ENTRY_TLS_MIN + GDT_ENTRY_TLS_ENTRIES - 1)
21527
21528 #define GDT_ENTRY_KERNEL_CS 12
21529 +#define GDT_ENTRY_KERNEXEC_KERNEL_CS 4
21530 #define GDT_ENTRY_KERNEL_DS 13
21531 #define GDT_ENTRY_DEFAULT_USER_CS 14
21532 #define GDT_ENTRY_DEFAULT_USER_DS 15
21533 @@ -106,6 +112,12 @@
21534 #define GDT_ENTRY_PERCPU 27
21535 #define GDT_ENTRY_STACK_CANARY 28
21536
21537 +#define GDT_ENTRY_PCIBIOS_CS 29
21538 +#define __PCIBIOS_DS (GDT_ENTRY_PCIBIOS_DS * 8)
21539 +
21540 +#define GDT_ENTRY_PCIBIOS_DS 30
21541 +#define __PCIBIOS_CS (GDT_ENTRY_PCIBIOS_CS * 8)
21542 +
21543 #define GDT_ENTRY_DOUBLEFAULT_TSS 31
21544
21545 /*
21546 @@ -118,6 +130,7 @@
21547 */
21548
21549 #define __KERNEL_CS (GDT_ENTRY_KERNEL_CS*8)
21550 +#define __KERNEXEC_KERNEL_CS (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
21551 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
21552 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8 + 3)
21553 #define __USER_CS (GDT_ENTRY_DEFAULT_USER_CS*8 + 3)
21554 @@ -129,7 +142,7 @@
21555 #define PNP_CS16 (GDT_ENTRY_PNPBIOS_CS16*8)
21556
21557 /* "Is this PNP code selector (PNP_CS32 or PNP_CS16)?" */
21558 -#define SEGMENT_IS_PNP_CODE(x) (((x) & 0xf4) == PNP_CS32)
21559 +#define SEGMENT_IS_PNP_CODE(x) (((x) & 0xFFFCU) == PNP_CS32 || ((x) & 0xFFFCU) == PNP_CS16)
21560
21561 /* data segment for BIOS: */
21562 #define PNP_DS (GDT_ENTRY_PNPBIOS_DS*8)
21563 @@ -176,6 +189,8 @@
21564 #define GDT_ENTRY_DEFAULT_USER_DS 5
21565 #define GDT_ENTRY_DEFAULT_USER_CS 6
21566
21567 +#define GDT_ENTRY_KERNEXEC_KERNEL_CS 7
21568 +
21569 /* Needs two entries */
21570 #define GDT_ENTRY_TSS 8
21571 /* Needs two entries */
21572 @@ -187,10 +202,12 @@
21573 /* Abused to load per CPU data from limit */
21574 #define GDT_ENTRY_PER_CPU 15
21575
21576 +#define GDT_ENTRY_UDEREF_KERNEL_DS 16
21577 +
21578 /*
21579 * Number of entries in the GDT table:
21580 */
21581 -#define GDT_ENTRIES 16
21582 +#define GDT_ENTRIES 17
21583
21584 /*
21585 * Segment selector values corresponding to the above entries:
21586 @@ -200,7 +217,9 @@
21587 */
21588 #define __KERNEL32_CS (GDT_ENTRY_KERNEL32_CS*8)
21589 #define __KERNEL_CS (GDT_ENTRY_KERNEL_CS*8)
21590 +#define __KERNEXEC_KERNEL_CS (GDT_ENTRY_KERNEXEC_KERNEL_CS*8)
21591 #define __KERNEL_DS (GDT_ENTRY_KERNEL_DS*8)
21592 +#define __UDEREF_KERNEL_DS (GDT_ENTRY_UDEREF_KERNEL_DS*8)
21593 #define __USER32_CS (GDT_ENTRY_DEFAULT_USER32_CS*8 + 3)
21594 #define __USER_DS (GDT_ENTRY_DEFAULT_USER_DS*8 + 3)
21595 #define __USER32_DS __USER_DS
21596 diff --git a/arch/x86/include/asm/smap.h b/arch/x86/include/asm/smap.h
21597 index ba665eb..0f72938 100644
21598 --- a/arch/x86/include/asm/smap.h
21599 +++ b/arch/x86/include/asm/smap.h
21600 @@ -25,6 +25,18 @@
21601
21602 #include <asm/alternative-asm.h>
21603
21604 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21605 +#define ASM_PAX_OPEN_USERLAND \
21606 + ALTERNATIVE "", "call __pax_open_userland", X86_FEATURE_STRONGUDEREF
21607 +
21608 +#define ASM_PAX_CLOSE_USERLAND \
21609 + ALTERNATIVE "", "call __pax_close_userland", X86_FEATURE_STRONGUDEREF
21610 +
21611 +#else
21612 +#define ASM_PAX_OPEN_USERLAND
21613 +#define ASM_PAX_CLOSE_USERLAND
21614 +#endif
21615 +
21616 #ifdef CONFIG_X86_SMAP
21617
21618 #define ASM_CLAC \
21619 @@ -44,6 +56,37 @@
21620
21621 #include <asm/alternative.h>
21622
21623 +#define __HAVE_ARCH_PAX_OPEN_USERLAND
21624 +#define __HAVE_ARCH_PAX_CLOSE_USERLAND
21625 +
21626 +extern void __pax_open_userland(void);
21627 +static __always_inline unsigned long pax_open_userland(void)
21628 +{
21629 +
21630 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21631 + asm volatile(ALTERNATIVE("", "call %P[open]", X86_FEATURE_STRONGUDEREF)
21632 + :
21633 + : [open] "i" (__pax_open_userland)
21634 + : "memory", "rax");
21635 +#endif
21636 +
21637 + return 0;
21638 +}
21639 +
21640 +extern void __pax_close_userland(void);
21641 +static __always_inline unsigned long pax_close_userland(void)
21642 +{
21643 +
21644 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21645 + asm volatile(ALTERNATIVE("", "call %P[close]", X86_FEATURE_STRONGUDEREF)
21646 + :
21647 + : [close] "i" (__pax_close_userland)
21648 + : "memory", "rax");
21649 +#endif
21650 +
21651 + return 0;
21652 +}
21653 +
21654 #ifdef CONFIG_X86_SMAP
21655
21656 static __always_inline void clac(void)
21657 diff --git a/arch/x86/include/asm/smp.h b/arch/x86/include/asm/smp.h
21658 index 222a6a3..839da8d 100644
21659 --- a/arch/x86/include/asm/smp.h
21660 +++ b/arch/x86/include/asm/smp.h
21661 @@ -35,7 +35,7 @@ DECLARE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_map);
21662 /* cpus sharing the last level cache: */
21663 DECLARE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_llc_shared_map);
21664 DECLARE_PER_CPU_READ_MOSTLY(u16, cpu_llc_id);
21665 -DECLARE_PER_CPU_READ_MOSTLY(int, cpu_number);
21666 +DECLARE_PER_CPU_READ_MOSTLY(unsigned int, cpu_number);
21667
21668 static inline struct cpumask *cpu_llc_shared_mask(int cpu)
21669 {
21670 @@ -68,7 +68,7 @@ struct smp_ops {
21671
21672 void (*send_call_func_ipi)(const struct cpumask *mask);
21673 void (*send_call_func_single_ipi)(int cpu);
21674 -};
21675 +} __no_const;
21676
21677 /* Globals due to paravirt */
21678 extern void set_cpu_sibling_map(int cpu);
21679 @@ -182,14 +182,8 @@ extern unsigned disabled_cpus;
21680 extern int safe_smp_processor_id(void);
21681
21682 #elif defined(CONFIG_X86_64_SMP)
21683 -#define raw_smp_processor_id() (this_cpu_read(cpu_number))
21684 -
21685 -#define stack_smp_processor_id() \
21686 -({ \
21687 - struct thread_info *ti; \
21688 - __asm__("andq %%rsp,%0; ":"=r" (ti) : "0" (CURRENT_MASK)); \
21689 - ti->cpu; \
21690 -})
21691 +#define raw_smp_processor_id() (this_cpu_read(cpu_number))
21692 +#define stack_smp_processor_id() raw_smp_processor_id()
21693 #define safe_smp_processor_id() smp_processor_id()
21694
21695 #endif
21696 diff --git a/arch/x86/include/asm/stackprotector.h b/arch/x86/include/asm/stackprotector.h
21697 index c2e00bb..a10266e 100644
21698 --- a/arch/x86/include/asm/stackprotector.h
21699 +++ b/arch/x86/include/asm/stackprotector.h
21700 @@ -49,7 +49,7 @@
21701 * head_32 for boot CPU and setup_per_cpu_areas() for others.
21702 */
21703 #define GDT_STACK_CANARY_INIT \
21704 - [GDT_ENTRY_STACK_CANARY] = GDT_ENTRY_INIT(0x4090, 0, 0x18),
21705 + [GDT_ENTRY_STACK_CANARY] = GDT_ENTRY_INIT(0x4090, 0, 0x17),
21706
21707 /*
21708 * Initialize the stackprotector canary value.
21709 @@ -114,7 +114,7 @@ static inline void setup_stack_canary_segment(int cpu)
21710
21711 static inline void load_stack_canary_segment(void)
21712 {
21713 -#ifdef CONFIG_X86_32
21714 +#if defined(CONFIG_X86_32) && !defined(CONFIG_PAX_MEMORY_UDEREF)
21715 asm volatile ("mov %0, %%gs" : : "r" (0));
21716 #endif
21717 }
21718 diff --git a/arch/x86/include/asm/stacktrace.h b/arch/x86/include/asm/stacktrace.h
21719 index 70bbe39..4ae2bd4 100644
21720 --- a/arch/x86/include/asm/stacktrace.h
21721 +++ b/arch/x86/include/asm/stacktrace.h
21722 @@ -11,28 +11,20 @@
21723
21724 extern int kstack_depth_to_print;
21725
21726 -struct thread_info;
21727 +struct task_struct;
21728 struct stacktrace_ops;
21729
21730 -typedef unsigned long (*walk_stack_t)(struct thread_info *tinfo,
21731 - unsigned long *stack,
21732 - unsigned long bp,
21733 - const struct stacktrace_ops *ops,
21734 - void *data,
21735 - unsigned long *end,
21736 - int *graph);
21737 +typedef unsigned long walk_stack_t(struct task_struct *task,
21738 + void *stack_start,
21739 + unsigned long *stack,
21740 + unsigned long bp,
21741 + const struct stacktrace_ops *ops,
21742 + void *data,
21743 + unsigned long *end,
21744 + int *graph);
21745
21746 -extern unsigned long
21747 -print_context_stack(struct thread_info *tinfo,
21748 - unsigned long *stack, unsigned long bp,
21749 - const struct stacktrace_ops *ops, void *data,
21750 - unsigned long *end, int *graph);
21751 -
21752 -extern unsigned long
21753 -print_context_stack_bp(struct thread_info *tinfo,
21754 - unsigned long *stack, unsigned long bp,
21755 - const struct stacktrace_ops *ops, void *data,
21756 - unsigned long *end, int *graph);
21757 +extern walk_stack_t print_context_stack;
21758 +extern walk_stack_t print_context_stack_bp;
21759
21760 /* Generic stack tracer with callbacks */
21761
21762 @@ -40,7 +32,7 @@ struct stacktrace_ops {
21763 void (*address)(void *data, unsigned long address, int reliable);
21764 /* On negative return stop dumping */
21765 int (*stack)(void *data, char *name);
21766 - walk_stack_t walk_stack;
21767 + walk_stack_t *walk_stack;
21768 };
21769
21770 void dump_trace(struct task_struct *tsk, struct pt_regs *regs,
21771 diff --git a/arch/x86/include/asm/switch_to.h b/arch/x86/include/asm/switch_to.h
21772 index d7f3b3b..3cc39f1 100644
21773 --- a/arch/x86/include/asm/switch_to.h
21774 +++ b/arch/x86/include/asm/switch_to.h
21775 @@ -108,7 +108,7 @@ do { \
21776 "call __switch_to\n\t" \
21777 "movq "__percpu_arg([current_task])",%%rsi\n\t" \
21778 __switch_canary \
21779 - "movq %P[thread_info](%%rsi),%%r8\n\t" \
21780 + "movq "__percpu_arg([thread_info])",%%r8\n\t" \
21781 "movq %%rax,%%rdi\n\t" \
21782 "testl %[_tif_fork],%P[ti_flags](%%r8)\n\t" \
21783 "jnz ret_from_fork\n\t" \
21784 @@ -119,7 +119,7 @@ do { \
21785 [threadrsp] "i" (offsetof(struct task_struct, thread.sp)), \
21786 [ti_flags] "i" (offsetof(struct thread_info, flags)), \
21787 [_tif_fork] "i" (_TIF_FORK), \
21788 - [thread_info] "i" (offsetof(struct task_struct, stack)), \
21789 + [thread_info] "m" (current_tinfo), \
21790 [current_task] "m" (current_task) \
21791 __switch_canary_iparam \
21792 : "memory", "cc" __EXTRA_CLOBBER)
21793 diff --git a/arch/x86/include/asm/sys_ia32.h b/arch/x86/include/asm/sys_ia32.h
21794 index 82c34ee..940fa40 100644
21795 --- a/arch/x86/include/asm/sys_ia32.h
21796 +++ b/arch/x86/include/asm/sys_ia32.h
21797 @@ -20,8 +20,8 @@
21798 #include <asm/ia32.h>
21799
21800 /* ia32/sys_ia32.c */
21801 -asmlinkage long sys32_truncate64(const char __user *, unsigned long, unsigned long);
21802 -asmlinkage long sys32_ftruncate64(unsigned int, unsigned long, unsigned long);
21803 +asmlinkage long sys32_truncate64(const char __user *, unsigned int, unsigned int);
21804 +asmlinkage long sys32_ftruncate64(unsigned int, unsigned int, unsigned int);
21805
21806 asmlinkage long sys32_stat64(const char __user *, struct stat64 __user *);
21807 asmlinkage long sys32_lstat64(const char __user *, struct stat64 __user *);
21808 @@ -42,7 +42,7 @@ long sys32_vm86_warning(void);
21809 asmlinkage ssize_t sys32_readahead(int, unsigned, unsigned, size_t);
21810 asmlinkage long sys32_sync_file_range(int, unsigned, unsigned,
21811 unsigned, unsigned, int);
21812 -asmlinkage long sys32_fadvise64(int, unsigned, unsigned, size_t, int);
21813 +asmlinkage long sys32_fadvise64(int, unsigned, unsigned, int, int);
21814 asmlinkage long sys32_fallocate(int, int, unsigned,
21815 unsigned, unsigned, unsigned);
21816
21817 diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
21818 index 225ee54..fae4566 100644
21819 --- a/arch/x86/include/asm/thread_info.h
21820 +++ b/arch/x86/include/asm/thread_info.h
21821 @@ -36,7 +36,7 @@
21822 #ifdef CONFIG_X86_32
21823 # define TOP_OF_KERNEL_STACK_PADDING 8
21824 #else
21825 -# define TOP_OF_KERNEL_STACK_PADDING 0
21826 +# define TOP_OF_KERNEL_STACK_PADDING 16
21827 #endif
21828
21829 /*
21830 @@ -50,27 +50,26 @@ struct task_struct;
21831 #include <linux/atomic.h>
21832
21833 struct thread_info {
21834 - struct task_struct *task; /* main task structure */
21835 __u32 flags; /* low level flags */
21836 __u32 status; /* thread synchronous flags */
21837 __u32 cpu; /* current CPU */
21838 int saved_preempt_count;
21839 mm_segment_t addr_limit;
21840 void __user *sysenter_return;
21841 + unsigned long lowest_stack;
21842 unsigned int sig_on_uaccess_error:1;
21843 unsigned int uaccess_err:1; /* uaccess failed */
21844 };
21845
21846 -#define INIT_THREAD_INFO(tsk) \
21847 +#define INIT_THREAD_INFO \
21848 { \
21849 - .task = &tsk, \
21850 .flags = 0, \
21851 .cpu = 0, \
21852 .saved_preempt_count = INIT_PREEMPT_COUNT, \
21853 .addr_limit = KERNEL_DS, \
21854 }
21855
21856 -#define init_thread_info (init_thread_union.thread_info)
21857 +#define init_thread_info (init_thread_union.stack)
21858 #define init_stack (init_thread_union.stack)
21859
21860 #else /* !__ASSEMBLY__ */
21861 @@ -110,6 +109,7 @@ struct thread_info {
21862 #define TIF_SYSCALL_TRACEPOINT 28 /* syscall tracepoint instrumentation */
21863 #define TIF_ADDR32 29 /* 32-bit address space on 64 bits */
21864 #define TIF_X32 30 /* 32-bit native x86-64 binary */
21865 +#define TIF_GRSEC_SETXID 31 /* update credentials on syscall entry/exit */
21866
21867 #define _TIF_SYSCALL_TRACE (1 << TIF_SYSCALL_TRACE)
21868 #define _TIF_NOTIFY_RESUME (1 << TIF_NOTIFY_RESUME)
21869 @@ -133,17 +133,18 @@ struct thread_info {
21870 #define _TIF_SYSCALL_TRACEPOINT (1 << TIF_SYSCALL_TRACEPOINT)
21871 #define _TIF_ADDR32 (1 << TIF_ADDR32)
21872 #define _TIF_X32 (1 << TIF_X32)
21873 +#define _TIF_GRSEC_SETXID (1 << TIF_GRSEC_SETXID)
21874
21875 /* work to do in syscall_trace_enter() */
21876 #define _TIF_WORK_SYSCALL_ENTRY \
21877 (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_EMU | _TIF_SYSCALL_AUDIT | \
21878 _TIF_SECCOMP | _TIF_SINGLESTEP | _TIF_SYSCALL_TRACEPOINT | \
21879 - _TIF_NOHZ)
21880 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
21881
21882 /* work to do in syscall_trace_leave() */
21883 #define _TIF_WORK_SYSCALL_EXIT \
21884 (_TIF_SYSCALL_TRACE | _TIF_SYSCALL_AUDIT | _TIF_SINGLESTEP | \
21885 - _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ)
21886 + _TIF_SYSCALL_TRACEPOINT | _TIF_NOHZ | _TIF_GRSEC_SETXID)
21887
21888 /* work to do on interrupt/exception return */
21889 #define _TIF_WORK_MASK \
21890 @@ -154,7 +155,7 @@ struct thread_info {
21891 /* work to do on any return to user space */
21892 #define _TIF_ALLWORK_MASK \
21893 ((0x0000FFFF & ~_TIF_SECCOMP) | _TIF_SYSCALL_TRACEPOINT | \
21894 - _TIF_NOHZ)
21895 + _TIF_NOHZ | _TIF_GRSEC_SETXID)
21896
21897 /* Only used for 64 bit */
21898 #define _TIF_DO_NOTIFY_MASK \
21899 @@ -177,9 +178,11 @@ struct thread_info {
21900 */
21901 #ifndef __ASSEMBLY__
21902
21903 +DECLARE_PER_CPU(struct thread_info *, current_tinfo);
21904 +
21905 static inline struct thread_info *current_thread_info(void)
21906 {
21907 - return (struct thread_info *)(current_top_of_stack() - THREAD_SIZE);
21908 + return this_cpu_read_stable(current_tinfo);
21909 }
21910
21911 static inline unsigned long current_stack_pointer(void)
21912 @@ -195,14 +198,9 @@ static inline unsigned long current_stack_pointer(void)
21913
21914 #else /* !__ASSEMBLY__ */
21915
21916 -#ifdef CONFIG_X86_64
21917 -# define cpu_current_top_of_stack (cpu_tss + TSS_sp0)
21918 -#endif
21919 -
21920 /* Load thread_info address into "reg" */
21921 #define GET_THREAD_INFO(reg) \
21922 - _ASM_MOV PER_CPU_VAR(cpu_current_top_of_stack),reg ; \
21923 - _ASM_SUB $(THREAD_SIZE),reg ;
21924 + _ASM_MOV PER_CPU_VAR(current_tinfo),reg ;
21925
21926 /*
21927 * ASM operand which evaluates to a 'thread_info' address of
21928 @@ -295,5 +293,12 @@ static inline bool is_ia32_task(void)
21929 extern void arch_task_cache_init(void);
21930 extern int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src);
21931 extern void arch_release_task_struct(struct task_struct *tsk);
21932 +
21933 +#define __HAVE_THREAD_FUNCTIONS
21934 +#define task_thread_info(task) (&(task)->tinfo)
21935 +#define task_stack_page(task) ((task)->stack)
21936 +#define setup_thread_stack(p, org) do {} while (0)
21937 +#define end_of_stack(p) ((unsigned long *)task_stack_page(p) + 1)
21938 +
21939 #endif
21940 #endif /* _ASM_X86_THREAD_INFO_H */
21941 diff --git a/arch/x86/include/asm/tlbflush.h b/arch/x86/include/asm/tlbflush.h
21942 index cd79194..6a9956f 100644
21943 --- a/arch/x86/include/asm/tlbflush.h
21944 +++ b/arch/x86/include/asm/tlbflush.h
21945 @@ -86,18 +86,44 @@ static inline void cr4_set_bits_and_update_boot(unsigned long mask)
21946
21947 static inline void __native_flush_tlb(void)
21948 {
21949 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
21950 + u64 descriptor[2];
21951 +
21952 + descriptor[0] = PCID_KERNEL;
21953 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_ALL_NONGLOBAL) : "memory");
21954 + return;
21955 + }
21956 +
21957 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
21958 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
21959 + unsigned int cpu = raw_get_cpu();
21960 +
21961 + native_write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER);
21962 + native_write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL);
21963 + raw_put_cpu_no_resched();
21964 + return;
21965 + }
21966 +#endif
21967 +
21968 native_write_cr3(native_read_cr3());
21969 }
21970
21971 static inline void __native_flush_tlb_global_irq_disabled(void)
21972 {
21973 - unsigned long cr4;
21974 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
21975 + u64 descriptor[2];
21976
21977 - cr4 = this_cpu_read(cpu_tlbstate.cr4);
21978 - /* clear PGE */
21979 - native_write_cr4(cr4 & ~X86_CR4_PGE);
21980 - /* write old PGE again and flush TLBs */
21981 - native_write_cr4(cr4);
21982 + descriptor[0] = PCID_KERNEL;
21983 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_ALL_GLOBAL) : "memory");
21984 + } else {
21985 + unsigned long cr4;
21986 +
21987 + cr4 = this_cpu_read(cpu_tlbstate.cr4);
21988 + /* clear PGE */
21989 + native_write_cr4(cr4 & ~X86_CR4_PGE);
21990 + /* write old PGE again and flush TLBs */
21991 + native_write_cr4(cr4);
21992 + }
21993 }
21994
21995 static inline void __native_flush_tlb_global(void)
21996 @@ -118,6 +144,43 @@ static inline void __native_flush_tlb_global(void)
21997
21998 static inline void __native_flush_tlb_single(unsigned long addr)
21999 {
22000 + if (static_cpu_has(X86_FEATURE_INVPCID)) {
22001 + u64 descriptor[2];
22002 +
22003 + descriptor[0] = PCID_KERNEL;
22004 + descriptor[1] = addr;
22005 +
22006 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22007 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
22008 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF) || addr >= TASK_SIZE_MAX) {
22009 + if (addr < TASK_SIZE_MAX)
22010 + descriptor[1] += pax_user_shadow_base;
22011 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
22012 + }
22013 +
22014 + descriptor[0] = PCID_USER;
22015 + descriptor[1] = addr;
22016 + }
22017 +#endif
22018 +
22019 + asm volatile(__ASM_INVPCID : : "d"(&descriptor), "a"(INVPCID_SINGLE_ADDRESS) : "memory");
22020 + return;
22021 + }
22022 +
22023 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22024 + if (static_cpu_has(X86_FEATURE_PCIDUDEREF)) {
22025 + unsigned int cpu = raw_get_cpu();
22026 +
22027 + native_write_cr3(__pa(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
22028 + asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
22029 + native_write_cr3(__pa(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
22030 + raw_put_cpu_no_resched();
22031 +
22032 + if (!static_cpu_has(X86_FEATURE_STRONGUDEREF) && addr < TASK_SIZE_MAX)
22033 + addr += pax_user_shadow_base;
22034 + }
22035 +#endif
22036 +
22037 asm volatile("invlpg (%0)" ::"r" (addr) : "memory");
22038 }
22039
22040 diff --git a/arch/x86/include/asm/uaccess.h b/arch/x86/include/asm/uaccess.h
22041 index a8df874..ef0e34f 100644
22042 --- a/arch/x86/include/asm/uaccess.h
22043 +++ b/arch/x86/include/asm/uaccess.h
22044 @@ -7,6 +7,7 @@
22045 #include <linux/compiler.h>
22046 #include <linux/thread_info.h>
22047 #include <linux/string.h>
22048 +#include <linux/spinlock.h>
22049 #include <asm/asm.h>
22050 #include <asm/page.h>
22051 #include <asm/smap.h>
22052 @@ -29,7 +30,12 @@
22053
22054 #define get_ds() (KERNEL_DS)
22055 #define get_fs() (current_thread_info()->addr_limit)
22056 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
22057 +void __set_fs(mm_segment_t x);
22058 +void set_fs(mm_segment_t x);
22059 +#else
22060 #define set_fs(x) (current_thread_info()->addr_limit = (x))
22061 +#endif
22062
22063 #define segment_eq(a, b) ((a).seg == (b).seg)
22064
22065 @@ -86,8 +92,36 @@ static inline bool __chk_range_not_ok(unsigned long addr, unsigned long size, un
22066 * checks that the pointer is in the user space range - after calling
22067 * this function, memory access functions may still return -EFAULT.
22068 */
22069 -#define access_ok(type, addr, size) \
22070 - likely(!__range_not_ok(addr, size, user_addr_max()))
22071 +extern int _cond_resched(void);
22072 +#define access_ok_noprefault(type, addr, size) (likely(!__range_not_ok(addr, size, user_addr_max())))
22073 +#define access_ok(type, addr, size) \
22074 +({ \
22075 + unsigned long __size = size; \
22076 + unsigned long __addr = (unsigned long)addr; \
22077 + bool __ret_ao = __range_not_ok(__addr, __size, user_addr_max()) == 0;\
22078 + if (__ret_ao && __size) { \
22079 + unsigned long __addr_ao = __addr & PAGE_MASK; \
22080 + unsigned long __end_ao = __addr + __size - 1; \
22081 + if (unlikely((__end_ao ^ __addr_ao) & PAGE_MASK)) { \
22082 + while (__addr_ao <= __end_ao) { \
22083 + char __c_ao; \
22084 + __addr_ao += PAGE_SIZE; \
22085 + if (__size > PAGE_SIZE) \
22086 + _cond_resched(); \
22087 + if (__get_user(__c_ao, (char __user *)__addr)) \
22088 + break; \
22089 + if (type != VERIFY_WRITE) { \
22090 + __addr = __addr_ao; \
22091 + continue; \
22092 + } \
22093 + if (__put_user(__c_ao, (char __user *)__addr)) \
22094 + break; \
22095 + __addr = __addr_ao; \
22096 + } \
22097 + } \
22098 + } \
22099 + __ret_ao; \
22100 +})
22101
22102 /*
22103 * The exception table consists of pairs of addresses relative to the
22104 @@ -135,11 +169,13 @@ extern int __get_user_8(void);
22105 extern int __get_user_bad(void);
22106
22107 /*
22108 - * This is a type: either unsigned long, if the argument fits into
22109 - * that type, or otherwise unsigned long long.
22110 + * This is a type: either (un)signed int, if the argument fits into
22111 + * that type, or otherwise (un)signed long long.
22112 */
22113 #define __inttype(x) \
22114 -__typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
22115 +__typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0U), \
22116 + __builtin_choose_expr(__type_is_unsigned(__typeof__(x)), 0ULL, 0LL),\
22117 + __builtin_choose_expr(__type_is_unsigned(__typeof__(x)), 0U, 0)))
22118
22119 /**
22120 * get_user: - Get a simple variable from user space.
22121 @@ -178,10 +214,12 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
22122 register __inttype(*(ptr)) __val_gu asm("%"_ASM_DX); \
22123 __chk_user_ptr(ptr); \
22124 might_fault(); \
22125 + pax_open_userland(); \
22126 asm volatile("call __get_user_%P3" \
22127 : "=a" (__ret_gu), "=r" (__val_gu) \
22128 : "0" (ptr), "i" (sizeof(*(ptr)))); \
22129 (x) = (__force __typeof__(*(ptr))) __val_gu; \
22130 + pax_close_userland(); \
22131 __ret_gu; \
22132 })
22133
22134 @@ -189,13 +227,21 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
22135 asm volatile("call __put_user_" #size : "=a" (__ret_pu) \
22136 : "0" ((typeof(*(ptr)))(x)), "c" (ptr) : "ebx")
22137
22138 -
22139 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
22140 +#define __copyuser_seg "gs;"
22141 +#define __COPYUSER_SET_ES "pushl %%gs; popl %%es\n"
22142 +#define __COPYUSER_RESTORE_ES "pushl %%ss; popl %%es\n"
22143 +#else
22144 +#define __copyuser_seg
22145 +#define __COPYUSER_SET_ES
22146 +#define __COPYUSER_RESTORE_ES
22147 +#endif
22148
22149 #ifdef CONFIG_X86_32
22150 #define __put_user_asm_u64(x, addr, err, errret) \
22151 asm volatile(ASM_STAC "\n" \
22152 - "1: movl %%eax,0(%2)\n" \
22153 - "2: movl %%edx,4(%2)\n" \
22154 + "1: "__copyuser_seg"movl %%eax,0(%2)\n" \
22155 + "2: "__copyuser_seg"movl %%edx,4(%2)\n" \
22156 "3: " ASM_CLAC "\n" \
22157 ".section .fixup,\"ax\"\n" \
22158 "4: movl %3,%0\n" \
22159 @@ -208,8 +254,8 @@ __typeof__(__builtin_choose_expr(sizeof(x) > sizeof(0UL), 0ULL, 0UL))
22160
22161 #define __put_user_asm_ex_u64(x, addr) \
22162 asm volatile(ASM_STAC "\n" \
22163 - "1: movl %%eax,0(%1)\n" \
22164 - "2: movl %%edx,4(%1)\n" \
22165 + "1: "__copyuser_seg"movl %%eax,0(%1)\n" \
22166 + "2: "__copyuser_seg"movl %%edx,4(%1)\n" \
22167 "3: " ASM_CLAC "\n" \
22168 _ASM_EXTABLE_EX(1b, 2b) \
22169 _ASM_EXTABLE_EX(2b, 3b) \
22170 @@ -260,7 +306,8 @@ extern void __put_user_8(void);
22171 __typeof__(*(ptr)) __pu_val; \
22172 __chk_user_ptr(ptr); \
22173 might_fault(); \
22174 - __pu_val = x; \
22175 + __pu_val = (x); \
22176 + pax_open_userland(); \
22177 switch (sizeof(*(ptr))) { \
22178 case 1: \
22179 __put_user_x(1, __pu_val, ptr, __ret_pu); \
22180 @@ -278,6 +325,7 @@ extern void __put_user_8(void);
22181 __put_user_x(X, __pu_val, ptr, __ret_pu); \
22182 break; \
22183 } \
22184 + pax_close_userland(); \
22185 __ret_pu; \
22186 })
22187
22188 @@ -358,8 +406,10 @@ do { \
22189 } while (0)
22190
22191 #define __get_user_asm(x, addr, err, itype, rtype, ltype, errret) \
22192 +do { \
22193 + pax_open_userland(); \
22194 asm volatile(ASM_STAC "\n" \
22195 - "1: mov"itype" %2,%"rtype"1\n" \
22196 + "1: "__copyuser_seg"mov"itype" %2,%"rtype"1\n"\
22197 "2: " ASM_CLAC "\n" \
22198 ".section .fixup,\"ax\"\n" \
22199 "3: mov %3,%0\n" \
22200 @@ -367,8 +417,10 @@ do { \
22201 " jmp 2b\n" \
22202 ".previous\n" \
22203 _ASM_EXTABLE(1b, 3b) \
22204 - : "=r" (err), ltype(x) \
22205 - : "m" (__m(addr)), "i" (errret), "0" (err))
22206 + : "=r" (err), ltype (x) \
22207 + : "m" (__m(addr)), "i" (errret), "0" (err)); \
22208 + pax_close_userland(); \
22209 +} while (0)
22210
22211 #define __get_user_size_ex(x, ptr, size) \
22212 do { \
22213 @@ -392,7 +444,7 @@ do { \
22214 } while (0)
22215
22216 #define __get_user_asm_ex(x, addr, itype, rtype, ltype) \
22217 - asm volatile("1: mov"itype" %1,%"rtype"0\n" \
22218 + asm volatile("1: "__copyuser_seg"mov"itype" %1,%"rtype"0\n"\
22219 "2:\n" \
22220 _ASM_EXTABLE_EX(1b, 2b) \
22221 : ltype(x) : "m" (__m(addr)))
22222 @@ -409,13 +461,24 @@ do { \
22223 int __gu_err; \
22224 unsigned long __gu_val; \
22225 __get_user_size(__gu_val, (ptr), (size), __gu_err, -EFAULT); \
22226 - (x) = (__force __typeof__(*(ptr)))__gu_val; \
22227 + (x) = (__typeof__(*(ptr)))__gu_val; \
22228 __gu_err; \
22229 })
22230
22231 /* FIXME: this hack is definitely wrong -AK */
22232 struct __large_struct { unsigned long buf[100]; };
22233 -#define __m(x) (*(struct __large_struct __user *)(x))
22234 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22235 +#define ____m(x) \
22236 +({ \
22237 + unsigned long ____x = (unsigned long)(x); \
22238 + if (____x < pax_user_shadow_base) \
22239 + ____x += pax_user_shadow_base; \
22240 + (typeof(x))____x; \
22241 +})
22242 +#else
22243 +#define ____m(x) (x)
22244 +#endif
22245 +#define __m(x) (*(struct __large_struct __user *)____m(x))
22246
22247 /*
22248 * Tell gcc we read from memory instead of writing: this is because
22249 @@ -423,8 +486,10 @@ struct __large_struct { unsigned long buf[100]; };
22250 * aliasing issues.
22251 */
22252 #define __put_user_asm(x, addr, err, itype, rtype, ltype, errret) \
22253 +do { \
22254 + pax_open_userland(); \
22255 asm volatile(ASM_STAC "\n" \
22256 - "1: mov"itype" %"rtype"1,%2\n" \
22257 + "1: "__copyuser_seg"mov"itype" %"rtype"1,%2\n"\
22258 "2: " ASM_CLAC "\n" \
22259 ".section .fixup,\"ax\"\n" \
22260 "3: mov %3,%0\n" \
22261 @@ -432,10 +497,12 @@ struct __large_struct { unsigned long buf[100]; };
22262 ".previous\n" \
22263 _ASM_EXTABLE(1b, 3b) \
22264 : "=r"(err) \
22265 - : ltype(x), "m" (__m(addr)), "i" (errret), "0" (err))
22266 + : ltype (x), "m" (__m(addr)), "i" (errret), "0" (err));\
22267 + pax_close_userland(); \
22268 +} while (0)
22269
22270 #define __put_user_asm_ex(x, addr, itype, rtype, ltype) \
22271 - asm volatile("1: mov"itype" %"rtype"0,%1\n" \
22272 + asm volatile("1: "__copyuser_seg"mov"itype" %"rtype"0,%1\n"\
22273 "2:\n" \
22274 _ASM_EXTABLE_EX(1b, 2b) \
22275 : : ltype(x), "m" (__m(addr)))
22276 @@ -445,11 +512,13 @@ struct __large_struct { unsigned long buf[100]; };
22277 */
22278 #define uaccess_try do { \
22279 current_thread_info()->uaccess_err = 0; \
22280 + pax_open_userland(); \
22281 stac(); \
22282 barrier();
22283
22284 #define uaccess_catch(err) \
22285 clac(); \
22286 + pax_close_userland(); \
22287 (err) |= (current_thread_info()->uaccess_err ? -EFAULT : 0); \
22288 } while (0)
22289
22290 @@ -475,8 +544,12 @@ struct __large_struct { unsigned long buf[100]; };
22291 * On error, the variable @x is set to zero.
22292 */
22293
22294 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22295 +#define __get_user(x, ptr) get_user((x), (ptr))
22296 +#else
22297 #define __get_user(x, ptr) \
22298 __get_user_nocheck((x), (ptr), sizeof(*(ptr)))
22299 +#endif
22300
22301 /**
22302 * __put_user: - Write a simple value into user space, with less checking.
22303 @@ -499,8 +572,12 @@ struct __large_struct { unsigned long buf[100]; };
22304 * Returns zero on success, or -EFAULT on error.
22305 */
22306
22307 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
22308 +#define __put_user(x, ptr) put_user((x), (ptr))
22309 +#else
22310 #define __put_user(x, ptr) \
22311 __put_user_nocheck((__typeof__(*(ptr)))(x), (ptr), sizeof(*(ptr)))
22312 +#endif
22313
22314 #define __get_user_unaligned __get_user
22315 #define __put_user_unaligned __put_user
22316 @@ -518,7 +595,7 @@ struct __large_struct { unsigned long buf[100]; };
22317 #define get_user_ex(x, ptr) do { \
22318 unsigned long __gue_val; \
22319 __get_user_size_ex((__gue_val), (ptr), (sizeof(*(ptr)))); \
22320 - (x) = (__force __typeof__(*(ptr)))__gue_val; \
22321 + (x) = (__typeof__(*(ptr)))__gue_val; \
22322 } while (0)
22323
22324 #define put_user_try uaccess_try
22325 @@ -536,7 +613,7 @@ extern __must_check long strlen_user(const char __user *str);
22326 extern __must_check long strnlen_user(const char __user *str, long n);
22327
22328 unsigned long __must_check clear_user(void __user *mem, unsigned long len);
22329 -unsigned long __must_check __clear_user(void __user *mem, unsigned long len);
22330 +unsigned long __must_check __clear_user(void __user *mem, unsigned long len) __size_overflow(2);
22331
22332 extern void __cmpxchg_wrong_size(void)
22333 __compiletime_error("Bad argument size for cmpxchg");
22334 @@ -547,18 +624,19 @@ extern void __cmpxchg_wrong_size(void)
22335 __typeof__(ptr) __uval = (uval); \
22336 __typeof__(*(ptr)) __old = (old); \
22337 __typeof__(*(ptr)) __new = (new); \
22338 + pax_open_userland(); \
22339 switch (size) { \
22340 case 1: \
22341 { \
22342 asm volatile("\t" ASM_STAC "\n" \
22343 - "1:\t" LOCK_PREFIX "cmpxchgb %4, %2\n" \
22344 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgb %4, %2\n"\
22345 "2:\t" ASM_CLAC "\n" \
22346 "\t.section .fixup, \"ax\"\n" \
22347 "3:\tmov %3, %0\n" \
22348 "\tjmp 2b\n" \
22349 "\t.previous\n" \
22350 _ASM_EXTABLE(1b, 3b) \
22351 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22352 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22353 : "i" (-EFAULT), "q" (__new), "1" (__old) \
22354 : "memory" \
22355 ); \
22356 @@ -567,14 +645,14 @@ extern void __cmpxchg_wrong_size(void)
22357 case 2: \
22358 { \
22359 asm volatile("\t" ASM_STAC "\n" \
22360 - "1:\t" LOCK_PREFIX "cmpxchgw %4, %2\n" \
22361 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgw %4, %2\n"\
22362 "2:\t" ASM_CLAC "\n" \
22363 "\t.section .fixup, \"ax\"\n" \
22364 "3:\tmov %3, %0\n" \
22365 "\tjmp 2b\n" \
22366 "\t.previous\n" \
22367 _ASM_EXTABLE(1b, 3b) \
22368 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22369 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22370 : "i" (-EFAULT), "r" (__new), "1" (__old) \
22371 : "memory" \
22372 ); \
22373 @@ -583,14 +661,14 @@ extern void __cmpxchg_wrong_size(void)
22374 case 4: \
22375 { \
22376 asm volatile("\t" ASM_STAC "\n" \
22377 - "1:\t" LOCK_PREFIX "cmpxchgl %4, %2\n" \
22378 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgl %4, %2\n"\
22379 "2:\t" ASM_CLAC "\n" \
22380 "\t.section .fixup, \"ax\"\n" \
22381 "3:\tmov %3, %0\n" \
22382 "\tjmp 2b\n" \
22383 "\t.previous\n" \
22384 _ASM_EXTABLE(1b, 3b) \
22385 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22386 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22387 : "i" (-EFAULT), "r" (__new), "1" (__old) \
22388 : "memory" \
22389 ); \
22390 @@ -602,14 +680,14 @@ extern void __cmpxchg_wrong_size(void)
22391 __cmpxchg_wrong_size(); \
22392 \
22393 asm volatile("\t" ASM_STAC "\n" \
22394 - "1:\t" LOCK_PREFIX "cmpxchgq %4, %2\n" \
22395 + "1:\t" LOCK_PREFIX __copyuser_seg"cmpxchgq %4, %2\n"\
22396 "2:\t" ASM_CLAC "\n" \
22397 "\t.section .fixup, \"ax\"\n" \
22398 "3:\tmov %3, %0\n" \
22399 "\tjmp 2b\n" \
22400 "\t.previous\n" \
22401 _ASM_EXTABLE(1b, 3b) \
22402 - : "+r" (__ret), "=a" (__old), "+m" (*(ptr)) \
22403 + : "+r" (__ret), "=a" (__old), "+m" (*____m(ptr))\
22404 : "i" (-EFAULT), "r" (__new), "1" (__old) \
22405 : "memory" \
22406 ); \
22407 @@ -618,6 +696,7 @@ extern void __cmpxchg_wrong_size(void)
22408 default: \
22409 __cmpxchg_wrong_size(); \
22410 } \
22411 + pax_close_userland(); \
22412 *__uval = __old; \
22413 __ret; \
22414 })
22415 @@ -641,17 +720,6 @@ extern struct movsl_mask {
22416
22417 #define ARCH_HAS_NOCACHE_UACCESS 1
22418
22419 -#ifdef CONFIG_X86_32
22420 -# include <asm/uaccess_32.h>
22421 -#else
22422 -# include <asm/uaccess_64.h>
22423 -#endif
22424 -
22425 -unsigned long __must_check _copy_from_user(void *to, const void __user *from,
22426 - unsigned n);
22427 -unsigned long __must_check _copy_to_user(void __user *to, const void *from,
22428 - unsigned n);
22429 -
22430 #ifdef CONFIG_DEBUG_STRICT_USER_COPY_CHECKS
22431 # define copy_user_diag __compiletime_error
22432 #else
22433 @@ -661,7 +729,7 @@ unsigned long __must_check _copy_to_user(void __user *to, const void *from,
22434 extern void copy_user_diag("copy_from_user() buffer size is too small")
22435 copy_from_user_overflow(void);
22436 extern void copy_user_diag("copy_to_user() buffer size is too small")
22437 -copy_to_user_overflow(void) __asm__("copy_from_user_overflow");
22438 +copy_to_user_overflow(void);
22439
22440 #undef copy_user_diag
22441
22442 @@ -674,7 +742,7 @@ __copy_from_user_overflow(void) __asm__("copy_from_user_overflow");
22443
22444 extern void
22445 __compiletime_warning("copy_to_user() buffer size is not provably correct")
22446 -__copy_to_user_overflow(void) __asm__("copy_from_user_overflow");
22447 +__copy_to_user_overflow(void) __asm__("copy_to_user_overflow");
22448 #define __copy_to_user_overflow(size, count) __copy_to_user_overflow()
22449
22450 #else
22451 @@ -689,10 +757,16 @@ __copy_from_user_overflow(int size, unsigned long count)
22452
22453 #endif
22454
22455 +#ifdef CONFIG_X86_32
22456 +# include <asm/uaccess_32.h>
22457 +#else
22458 +# include <asm/uaccess_64.h>
22459 +#endif
22460 +
22461 static inline unsigned long __must_check
22462 copy_from_user(void *to, const void __user *from, unsigned long n)
22463 {
22464 - int sz = __compiletime_object_size(to);
22465 + size_t sz = __compiletime_object_size(to);
22466
22467 might_fault();
22468
22469 @@ -714,12 +788,15 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
22470 * case, and do only runtime checking for non-constant sizes.
22471 */
22472
22473 - if (likely(sz < 0 || sz >= n))
22474 - n = _copy_from_user(to, from, n);
22475 - else if(__builtin_constant_p(n))
22476 - copy_from_user_overflow();
22477 - else
22478 - __copy_from_user_overflow(sz, n);
22479 + if (likely(sz != (size_t)-1 && sz < n)) {
22480 + if(__builtin_constant_p(n))
22481 + copy_from_user_overflow();
22482 + else
22483 + __copy_from_user_overflow(sz, n);
22484 + } else if (access_ok(VERIFY_READ, from, n))
22485 + n = __copy_from_user(to, from, n);
22486 + else if ((long)n > 0)
22487 + memset(to, 0, n);
22488
22489 return n;
22490 }
22491 @@ -727,17 +804,18 @@ copy_from_user(void *to, const void __user *from, unsigned long n)
22492 static inline unsigned long __must_check
22493 copy_to_user(void __user *to, const void *from, unsigned long n)
22494 {
22495 - int sz = __compiletime_object_size(from);
22496 + size_t sz = __compiletime_object_size(from);
22497
22498 might_fault();
22499
22500 /* See the comment in copy_from_user() above. */
22501 - if (likely(sz < 0 || sz >= n))
22502 - n = _copy_to_user(to, from, n);
22503 - else if(__builtin_constant_p(n))
22504 - copy_to_user_overflow();
22505 - else
22506 - __copy_to_user_overflow(sz, n);
22507 + if (likely(sz != (size_t)-1 && sz < n)) {
22508 + if(__builtin_constant_p(n))
22509 + copy_to_user_overflow();
22510 + else
22511 + __copy_to_user_overflow(sz, n);
22512 + } else if (access_ok(VERIFY_WRITE, to, n))
22513 + n = __copy_to_user(to, from, n);
22514
22515 return n;
22516 }
22517 diff --git a/arch/x86/include/asm/uaccess_32.h b/arch/x86/include/asm/uaccess_32.h
22518 index f5dcb52..da2c15b 100644
22519 --- a/arch/x86/include/asm/uaccess_32.h
22520 +++ b/arch/x86/include/asm/uaccess_32.h
22521 @@ -40,9 +40,14 @@ unsigned long __must_check __copy_from_user_ll_nocache_nozero
22522 * anything, so this is accurate.
22523 */
22524
22525 -static __always_inline unsigned long __must_check
22526 +static __always_inline __size_overflow(3) unsigned long __must_check
22527 __copy_to_user_inatomic(void __user *to, const void *from, unsigned long n)
22528 {
22529 + if ((long)n < 0)
22530 + return n;
22531 +
22532 + check_object_size(from, n, true);
22533 +
22534 if (__builtin_constant_p(n)) {
22535 unsigned long ret;
22536
22537 @@ -87,12 +92,16 @@ static __always_inline unsigned long __must_check
22538 __copy_to_user(void __user *to, const void *from, unsigned long n)
22539 {
22540 might_fault();
22541 +
22542 return __copy_to_user_inatomic(to, from, n);
22543 }
22544
22545 -static __always_inline unsigned long
22546 +static __always_inline __size_overflow(3) unsigned long
22547 __copy_from_user_inatomic(void *to, const void __user *from, unsigned long n)
22548 {
22549 + if ((long)n < 0)
22550 + return n;
22551 +
22552 /* Avoid zeroing the tail if the copy fails..
22553 * If 'n' is constant and 1, 2, or 4, we do still zero on a failure,
22554 * but as the zeroing behaviour is only significant when n is not
22555 @@ -143,6 +152,12 @@ static __always_inline unsigned long
22556 __copy_from_user(void *to, const void __user *from, unsigned long n)
22557 {
22558 might_fault();
22559 +
22560 + if ((long)n < 0)
22561 + return n;
22562 +
22563 + check_object_size(to, n, false);
22564 +
22565 if (__builtin_constant_p(n)) {
22566 unsigned long ret;
22567
22568 @@ -165,6 +180,10 @@ static __always_inline unsigned long __copy_from_user_nocache(void *to,
22569 const void __user *from, unsigned long n)
22570 {
22571 might_fault();
22572 +
22573 + if ((long)n < 0)
22574 + return n;
22575 +
22576 if (__builtin_constant_p(n)) {
22577 unsigned long ret;
22578
22579 @@ -187,7 +206,10 @@ static __always_inline unsigned long
22580 __copy_from_user_inatomic_nocache(void *to, const void __user *from,
22581 unsigned long n)
22582 {
22583 - return __copy_from_user_ll_nocache_nozero(to, from, n);
22584 + if ((long)n < 0)
22585 + return n;
22586 +
22587 + return __copy_from_user_ll_nocache_nozero(to, from, n);
22588 }
22589
22590 #endif /* _ASM_X86_UACCESS_32_H */
22591 diff --git a/arch/x86/include/asm/uaccess_64.h b/arch/x86/include/asm/uaccess_64.h
22592 index f2f9b39..2ae1bf8 100644
22593 --- a/arch/x86/include/asm/uaccess_64.h
22594 +++ b/arch/x86/include/asm/uaccess_64.h
22595 @@ -10,6 +10,9 @@
22596 #include <asm/alternative.h>
22597 #include <asm/cpufeature.h>
22598 #include <asm/page.h>
22599 +#include <asm/pgtable.h>
22600 +
22601 +#define set_fs(x) (current_thread_info()->addr_limit = (x))
22602
22603 /*
22604 * Copy To/From Userspace
22605 @@ -23,8 +26,8 @@ copy_user_generic_string(void *to, const void *from, unsigned len);
22606 __must_check unsigned long
22607 copy_user_generic_unrolled(void *to, const void *from, unsigned len);
22608
22609 -static __always_inline __must_check unsigned long
22610 -copy_user_generic(void *to, const void *from, unsigned len)
22611 +static __always_inline __must_check __size_overflow(3) unsigned long
22612 +copy_user_generic(void *to, const void *from, unsigned long len)
22613 {
22614 unsigned ret;
22615
22616 @@ -46,121 +49,170 @@ copy_user_generic(void *to, const void *from, unsigned len)
22617 }
22618
22619 __must_check unsigned long
22620 -copy_in_user(void __user *to, const void __user *from, unsigned len);
22621 +copy_in_user(void __user *to, const void __user *from, unsigned long len);
22622
22623 static __always_inline __must_check
22624 -int __copy_from_user_nocheck(void *dst, const void __user *src, unsigned size)
22625 +unsigned long __copy_from_user_nocheck(void *dst, const void __user *src, unsigned long size)
22626 {
22627 - int ret = 0;
22628 + size_t sz = __compiletime_object_size(dst);
22629 + unsigned ret = 0;
22630 +
22631 + if (size > INT_MAX)
22632 + return size;
22633 +
22634 + check_object_size(dst, size, false);
22635 +
22636 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22637 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22638 + return size;
22639 +#endif
22640 +
22641 + if (unlikely(sz != (size_t)-1 && sz < size)) {
22642 + if(__builtin_constant_p(size))
22643 + copy_from_user_overflow();
22644 + else
22645 + __copy_from_user_overflow(sz, size);
22646 + return size;
22647 + }
22648
22649 if (!__builtin_constant_p(size))
22650 - return copy_user_generic(dst, (__force void *)src, size);
22651 + return copy_user_generic(dst, (__force_kernel const void *)____m(src), size);
22652 switch (size) {
22653 - case 1:__get_user_asm(*(u8 *)dst, (u8 __user *)src,
22654 + case 1:__get_user_asm(*(u8 *)dst, (const u8 __user *)src,
22655 ret, "b", "b", "=q", 1);
22656 return ret;
22657 - case 2:__get_user_asm(*(u16 *)dst, (u16 __user *)src,
22658 + case 2:__get_user_asm(*(u16 *)dst, (const u16 __user *)src,
22659 ret, "w", "w", "=r", 2);
22660 return ret;
22661 - case 4:__get_user_asm(*(u32 *)dst, (u32 __user *)src,
22662 + case 4:__get_user_asm(*(u32 *)dst, (const u32 __user *)src,
22663 ret, "l", "k", "=r", 4);
22664 return ret;
22665 - case 8:__get_user_asm(*(u64 *)dst, (u64 __user *)src,
22666 + case 8:__get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22667 ret, "q", "", "=r", 8);
22668 return ret;
22669 case 10:
22670 - __get_user_asm(*(u64 *)dst, (u64 __user *)src,
22671 + __get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22672 ret, "q", "", "=r", 10);
22673 if (unlikely(ret))
22674 return ret;
22675 __get_user_asm(*(u16 *)(8 + (char *)dst),
22676 - (u16 __user *)(8 + (char __user *)src),
22677 + (const u16 __user *)(8 + (const char __user *)src),
22678 ret, "w", "w", "=r", 2);
22679 return ret;
22680 case 16:
22681 - __get_user_asm(*(u64 *)dst, (u64 __user *)src,
22682 + __get_user_asm(*(u64 *)dst, (const u64 __user *)src,
22683 ret, "q", "", "=r", 16);
22684 if (unlikely(ret))
22685 return ret;
22686 __get_user_asm(*(u64 *)(8 + (char *)dst),
22687 - (u64 __user *)(8 + (char __user *)src),
22688 + (const u64 __user *)(8 + (const char __user *)src),
22689 ret, "q", "", "=r", 8);
22690 return ret;
22691 default:
22692 - return copy_user_generic(dst, (__force void *)src, size);
22693 + return copy_user_generic(dst, (__force_kernel const void *)____m(src), size);
22694 }
22695 }
22696
22697 static __always_inline __must_check
22698 -int __copy_from_user(void *dst, const void __user *src, unsigned size)
22699 +unsigned long __copy_from_user(void *dst, const void __user *src, unsigned long size)
22700 {
22701 might_fault();
22702 return __copy_from_user_nocheck(dst, src, size);
22703 }
22704
22705 static __always_inline __must_check
22706 -int __copy_to_user_nocheck(void __user *dst, const void *src, unsigned size)
22707 +unsigned long __copy_to_user_nocheck(void __user *dst, const void *src, unsigned long size)
22708 {
22709 - int ret = 0;
22710 + size_t sz = __compiletime_object_size(src);
22711 + unsigned ret = 0;
22712 +
22713 + if (size > INT_MAX)
22714 + return size;
22715 +
22716 + check_object_size(src, size, true);
22717 +
22718 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22719 + if (!access_ok_noprefault(VERIFY_WRITE, dst, size))
22720 + return size;
22721 +#endif
22722 +
22723 + if (unlikely(sz != (size_t)-1 && sz < size)) {
22724 + if(__builtin_constant_p(size))
22725 + copy_to_user_overflow();
22726 + else
22727 + __copy_to_user_overflow(sz, size);
22728 + return size;
22729 + }
22730
22731 if (!__builtin_constant_p(size))
22732 - return copy_user_generic((__force void *)dst, src, size);
22733 + return copy_user_generic((__force_kernel void *)____m(dst), src, size);
22734 switch (size) {
22735 - case 1:__put_user_asm(*(u8 *)src, (u8 __user *)dst,
22736 + case 1:__put_user_asm(*(const u8 *)src, (u8 __user *)dst,
22737 ret, "b", "b", "iq", 1);
22738 return ret;
22739 - case 2:__put_user_asm(*(u16 *)src, (u16 __user *)dst,
22740 + case 2:__put_user_asm(*(const u16 *)src, (u16 __user *)dst,
22741 ret, "w", "w", "ir", 2);
22742 return ret;
22743 - case 4:__put_user_asm(*(u32 *)src, (u32 __user *)dst,
22744 + case 4:__put_user_asm(*(const u32 *)src, (u32 __user *)dst,
22745 ret, "l", "k", "ir", 4);
22746 return ret;
22747 - case 8:__put_user_asm(*(u64 *)src, (u64 __user *)dst,
22748 + case 8:__put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22749 ret, "q", "", "er", 8);
22750 return ret;
22751 case 10:
22752 - __put_user_asm(*(u64 *)src, (u64 __user *)dst,
22753 + __put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22754 ret, "q", "", "er", 10);
22755 if (unlikely(ret))
22756 return ret;
22757 asm("":::"memory");
22758 - __put_user_asm(4[(u16 *)src], 4 + (u16 __user *)dst,
22759 + __put_user_asm(4[(const u16 *)src], 4 + (u16 __user *)dst,
22760 ret, "w", "w", "ir", 2);
22761 return ret;
22762 case 16:
22763 - __put_user_asm(*(u64 *)src, (u64 __user *)dst,
22764 + __put_user_asm(*(const u64 *)src, (u64 __user *)dst,
22765 ret, "q", "", "er", 16);
22766 if (unlikely(ret))
22767 return ret;
22768 asm("":::"memory");
22769 - __put_user_asm(1[(u64 *)src], 1 + (u64 __user *)dst,
22770 + __put_user_asm(1[(const u64 *)src], 1 + (u64 __user *)dst,
22771 ret, "q", "", "er", 8);
22772 return ret;
22773 default:
22774 - return copy_user_generic((__force void *)dst, src, size);
22775 + return copy_user_generic((__force_kernel void *)____m(dst), src, size);
22776 }
22777 }
22778
22779 static __always_inline __must_check
22780 -int __copy_to_user(void __user *dst, const void *src, unsigned size)
22781 +unsigned long __copy_to_user(void __user *dst, const void *src, unsigned long size)
22782 {
22783 might_fault();
22784 return __copy_to_user_nocheck(dst, src, size);
22785 }
22786
22787 static __always_inline __must_check
22788 -int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22789 +unsigned long __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22790 {
22791 - int ret = 0;
22792 + unsigned ret = 0;
22793
22794 might_fault();
22795 +
22796 + if (size > INT_MAX)
22797 + return size;
22798 +
22799 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22800 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22801 + return size;
22802 + if (!access_ok_noprefault(VERIFY_WRITE, dst, size))
22803 + return size;
22804 +#endif
22805 +
22806 if (!__builtin_constant_p(size))
22807 - return copy_user_generic((__force void *)dst,
22808 - (__force void *)src, size);
22809 + return copy_user_generic((__force_kernel void *)____m(dst),
22810 + (__force_kernel const void *)____m(src), size);
22811 switch (size) {
22812 case 1: {
22813 u8 tmp;
22814 - __get_user_asm(tmp, (u8 __user *)src,
22815 + __get_user_asm(tmp, (const u8 __user *)src,
22816 ret, "b", "b", "=q", 1);
22817 if (likely(!ret))
22818 __put_user_asm(tmp, (u8 __user *)dst,
22819 @@ -169,7 +221,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22820 }
22821 case 2: {
22822 u16 tmp;
22823 - __get_user_asm(tmp, (u16 __user *)src,
22824 + __get_user_asm(tmp, (const u16 __user *)src,
22825 ret, "w", "w", "=r", 2);
22826 if (likely(!ret))
22827 __put_user_asm(tmp, (u16 __user *)dst,
22828 @@ -179,7 +231,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22829
22830 case 4: {
22831 u32 tmp;
22832 - __get_user_asm(tmp, (u32 __user *)src,
22833 + __get_user_asm(tmp, (const u32 __user *)src,
22834 ret, "l", "k", "=r", 4);
22835 if (likely(!ret))
22836 __put_user_asm(tmp, (u32 __user *)dst,
22837 @@ -188,7 +240,7 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22838 }
22839 case 8: {
22840 u64 tmp;
22841 - __get_user_asm(tmp, (u64 __user *)src,
22842 + __get_user_asm(tmp, (const u64 __user *)src,
22843 ret, "q", "", "=r", 8);
22844 if (likely(!ret))
22845 __put_user_asm(tmp, (u64 __user *)dst,
22846 @@ -196,41 +248,58 @@ int __copy_in_user(void __user *dst, const void __user *src, unsigned size)
22847 return ret;
22848 }
22849 default:
22850 - return copy_user_generic((__force void *)dst,
22851 - (__force void *)src, size);
22852 + return copy_user_generic((__force_kernel void *)____m(dst),
22853 + (__force_kernel const void *)____m(src), size);
22854 }
22855 }
22856
22857 -static __must_check __always_inline int
22858 -__copy_from_user_inatomic(void *dst, const void __user *src, unsigned size)
22859 +static __must_check __always_inline unsigned long
22860 +__copy_from_user_inatomic(void *dst, const void __user *src, unsigned long size)
22861 {
22862 return __copy_from_user_nocheck(dst, src, size);
22863 }
22864
22865 -static __must_check __always_inline int
22866 -__copy_to_user_inatomic(void __user *dst, const void *src, unsigned size)
22867 +static __must_check __always_inline unsigned long
22868 +__copy_to_user_inatomic(void __user *dst, const void *src, unsigned long size)
22869 {
22870 return __copy_to_user_nocheck(dst, src, size);
22871 }
22872
22873 -extern long __copy_user_nocache(void *dst, const void __user *src,
22874 - unsigned size, int zerorest);
22875 +extern unsigned long __copy_user_nocache(void *dst, const void __user *src,
22876 + unsigned long size, int zerorest);
22877
22878 -static inline int
22879 -__copy_from_user_nocache(void *dst, const void __user *src, unsigned size)
22880 +static inline unsigned long
22881 +__copy_from_user_nocache(void *dst, const void __user *src, unsigned long size)
22882 {
22883 might_fault();
22884 +
22885 + if (size > INT_MAX)
22886 + return size;
22887 +
22888 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22889 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22890 + return size;
22891 +#endif
22892 +
22893 return __copy_user_nocache(dst, src, size, 1);
22894 }
22895
22896 -static inline int
22897 +static inline unsigned long
22898 __copy_from_user_inatomic_nocache(void *dst, const void __user *src,
22899 - unsigned size)
22900 + unsigned long size)
22901 {
22902 + if (size > INT_MAX)
22903 + return size;
22904 +
22905 +#ifdef CONFIG_PAX_MEMORY_UDEREF
22906 + if (!access_ok_noprefault(VERIFY_READ, src, size))
22907 + return size;
22908 +#endif
22909 +
22910 return __copy_user_nocache(dst, src, size, 0);
22911 }
22912
22913 unsigned long
22914 -copy_user_handle_tail(char *to, char *from, unsigned len);
22915 +copy_user_handle_tail(char __user *to, char __user *from, unsigned long len) __size_overflow(3);
22916
22917 #endif /* _ASM_X86_UACCESS_64_H */
22918 diff --git a/arch/x86/include/asm/word-at-a-time.h b/arch/x86/include/asm/word-at-a-time.h
22919 index 5b238981..77fdd78 100644
22920 --- a/arch/x86/include/asm/word-at-a-time.h
22921 +++ b/arch/x86/include/asm/word-at-a-time.h
22922 @@ -11,7 +11,7 @@
22923 * and shift, for example.
22924 */
22925 struct word_at_a_time {
22926 - const unsigned long one_bits, high_bits;
22927 + unsigned long one_bits, high_bits;
22928 };
22929
22930 #define WORD_AT_A_TIME_CONSTANTS { REPEAT_BYTE(0x01), REPEAT_BYTE(0x80) }
22931 diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
22932 index 48d34d2..90671c7 100644
22933 --- a/arch/x86/include/asm/x86_init.h
22934 +++ b/arch/x86/include/asm/x86_init.h
22935 @@ -129,7 +129,7 @@ struct x86_init_ops {
22936 struct x86_init_timers timers;
22937 struct x86_init_iommu iommu;
22938 struct x86_init_pci pci;
22939 -};
22940 +} __no_const;
22941
22942 /**
22943 * struct x86_cpuinit_ops - platform specific cpu hotplug setups
22944 @@ -140,7 +140,7 @@ struct x86_cpuinit_ops {
22945 void (*setup_percpu_clockev)(void);
22946 void (*early_percpu_clock_init)(void);
22947 void (*fixup_cpu_id)(struct cpuinfo_x86 *c, int node);
22948 -};
22949 +} __no_const;
22950
22951 struct timespec;
22952
22953 @@ -168,7 +168,7 @@ struct x86_platform_ops {
22954 void (*save_sched_clock_state)(void);
22955 void (*restore_sched_clock_state)(void);
22956 void (*apic_post_init)(void);
22957 -};
22958 +} __no_const;
22959
22960 struct pci_dev;
22961
22962 @@ -177,12 +177,12 @@ struct x86_msi_ops {
22963 void (*teardown_msi_irq)(unsigned int irq);
22964 void (*teardown_msi_irqs)(struct pci_dev *dev);
22965 void (*restore_msi_irqs)(struct pci_dev *dev);
22966 -};
22967 +} __no_const;
22968
22969 struct x86_io_apic_ops {
22970 unsigned int (*read) (unsigned int apic, unsigned int reg);
22971 void (*disable)(void);
22972 -};
22973 +} __no_const;
22974
22975 extern struct x86_init_ops x86_init;
22976 extern struct x86_cpuinit_ops x86_cpuinit;
22977 diff --git a/arch/x86/include/asm/xen/page.h b/arch/x86/include/asm/xen/page.h
22978 index c44a5d5..7f83cfc 100644
22979 --- a/arch/x86/include/asm/xen/page.h
22980 +++ b/arch/x86/include/asm/xen/page.h
22981 @@ -82,7 +82,7 @@ static inline int xen_safe_read_ulong(unsigned long *addr, unsigned long *val)
22982 * - get_phys_to_machine() is to be called by __pfn_to_mfn() only in special
22983 * cases needing an extended handling.
22984 */
22985 -static inline unsigned long __pfn_to_mfn(unsigned long pfn)
22986 +static inline unsigned long __intentional_overflow(-1) __pfn_to_mfn(unsigned long pfn)
22987 {
22988 unsigned long mfn;
22989
22990 diff --git a/arch/x86/include/uapi/asm/e820.h b/arch/x86/include/uapi/asm/e820.h
22991 index 0f457e6..5970c0a 100644
22992 --- a/arch/x86/include/uapi/asm/e820.h
22993 +++ b/arch/x86/include/uapi/asm/e820.h
22994 @@ -69,7 +69,7 @@ struct e820map {
22995 #define ISA_START_ADDRESS 0xa0000
22996 #define ISA_END_ADDRESS 0x100000
22997
22998 -#define BIOS_BEGIN 0x000a0000
22999 +#define BIOS_BEGIN 0x000c0000
23000 #define BIOS_END 0x00100000
23001
23002 #define BIOS_ROM_BASE 0xffe00000
23003 diff --git a/arch/x86/include/uapi/asm/svm.h b/arch/x86/include/uapi/asm/svm.h
23004 index b5d7640..8a4add8 100644
23005 --- a/arch/x86/include/uapi/asm/svm.h
23006 +++ b/arch/x86/include/uapi/asm/svm.h
23007 @@ -100,6 +100,7 @@
23008 { SVM_EXIT_EXCP_BASE + UD_VECTOR, "UD excp" }, \
23009 { SVM_EXIT_EXCP_BASE + PF_VECTOR, "PF excp" }, \
23010 { SVM_EXIT_EXCP_BASE + NM_VECTOR, "NM excp" }, \
23011 + { SVM_EXIT_EXCP_BASE + AC_VECTOR, "AC excp" }, \
23012 { SVM_EXIT_EXCP_BASE + MC_VECTOR, "MC excp" }, \
23013 { SVM_EXIT_INTR, "interrupt" }, \
23014 { SVM_EXIT_NMI, "nmi" }, \
23015 diff --git a/arch/x86/kernel/Makefile b/arch/x86/kernel/Makefile
23016 index 0f15af4..501a76a 100644
23017 --- a/arch/x86/kernel/Makefile
23018 +++ b/arch/x86/kernel/Makefile
23019 @@ -28,7 +28,7 @@ obj-y += time.o ioport.o ldt.o dumpstack.o nmi.o
23020 obj-y += setup.o x86_init.o i8259.o irqinit.o jump_label.o
23021 obj-$(CONFIG_IRQ_WORK) += irq_work.o
23022 obj-y += probe_roms.o
23023 -obj-$(CONFIG_X86_32) += i386_ksyms_32.o
23024 +obj-$(CONFIG_X86_32) += sys_i386_32.o i386_ksyms_32.o
23025 obj-$(CONFIG_X86_64) += sys_x86_64.o x8664_ksyms_64.o
23026 obj-$(CONFIG_X86_64) += mcount_64.o
23027 obj-$(CONFIG_X86_ESPFIX64) += espfix_64.o
23028 diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
23029 index 9393896..adbaa90 100644
23030 --- a/arch/x86/kernel/acpi/boot.c
23031 +++ b/arch/x86/kernel/acpi/boot.c
23032 @@ -1333,7 +1333,7 @@ static void __init acpi_reduced_hw_init(void)
23033 * If your system is blacklisted here, but you find that acpi=force
23034 * works for you, please contact linux-acpi@vger.kernel.org
23035 */
23036 -static struct dmi_system_id __initdata acpi_dmi_table[] = {
23037 +static const struct dmi_system_id __initconst acpi_dmi_table[] = {
23038 /*
23039 * Boxes that need ACPI disabled
23040 */
23041 @@ -1408,7 +1408,7 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
23042 };
23043
23044 /* second table for DMI checks that should run after early-quirks */
23045 -static struct dmi_system_id __initdata acpi_dmi_table_late[] = {
23046 +static const struct dmi_system_id __initconst acpi_dmi_table_late[] = {
23047 /*
23048 * HP laptops which use a DSDT reporting as HP/SB400/10000,
23049 * which includes some code which overrides all temperature
23050 diff --git a/arch/x86/kernel/acpi/sleep.c b/arch/x86/kernel/acpi/sleep.c
23051 index d1daead..acd77e2 100644
23052 --- a/arch/x86/kernel/acpi/sleep.c
23053 +++ b/arch/x86/kernel/acpi/sleep.c
23054 @@ -99,8 +99,12 @@ int x86_acpi_suspend_lowlevel(void)
23055 #else /* CONFIG_64BIT */
23056 #ifdef CONFIG_SMP
23057 stack_start = (unsigned long)temp_stack + sizeof(temp_stack);
23058 +
23059 + pax_open_kernel();
23060 early_gdt_descr.address =
23061 (unsigned long)get_cpu_gdt_table(smp_processor_id());
23062 + pax_close_kernel();
23063 +
23064 initial_gs = per_cpu_offset(smp_processor_id());
23065 #endif
23066 initial_code = (unsigned long)wakeup_long64;
23067 diff --git a/arch/x86/kernel/acpi/wakeup_32.S b/arch/x86/kernel/acpi/wakeup_32.S
23068 index 0c26b1b..a766e85 100644
23069 --- a/arch/x86/kernel/acpi/wakeup_32.S
23070 +++ b/arch/x86/kernel/acpi/wakeup_32.S
23071 @@ -31,13 +31,11 @@ wakeup_pmode_return:
23072 # and restore the stack ... but you need gdt for this to work
23073 movl saved_context_esp, %esp
23074
23075 - movl %cs:saved_magic, %eax
23076 - cmpl $0x12345678, %eax
23077 + cmpl $0x12345678, saved_magic
23078 jne bogus_magic
23079
23080 # jump to place where we left off
23081 - movl saved_eip, %eax
23082 - jmp *%eax
23083 + jmp *(saved_eip)
23084
23085 bogus_magic:
23086 jmp bogus_magic
23087 diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
23088 index 25f9093..21d2827 100644
23089 --- a/arch/x86/kernel/alternative.c
23090 +++ b/arch/x86/kernel/alternative.c
23091 @@ -20,6 +20,7 @@
23092 #include <asm/tlbflush.h>
23093 #include <asm/io.h>
23094 #include <asm/fixmap.h>
23095 +#include <asm/boot.h>
23096
23097 int __read_mostly alternatives_patched;
23098
23099 @@ -261,7 +262,9 @@ static void __init_or_module add_nops(void *insns, unsigned int len)
23100 unsigned int noplen = len;
23101 if (noplen > ASM_NOP_MAX)
23102 noplen = ASM_NOP_MAX;
23103 + pax_open_kernel();
23104 memcpy(insns, ideal_nops[noplen], noplen);
23105 + pax_close_kernel();
23106 insns += noplen;
23107 len -= noplen;
23108 }
23109 @@ -289,6 +292,13 @@ recompute_jump(struct alt_instr *a, u8 *orig_insn, u8 *repl_insn, u8 *insnbuf)
23110 if (a->replacementlen != 5)
23111 return;
23112
23113 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23114 + if (orig_insn < (u8 *)_text || (u8 *)_einittext <= orig_insn)
23115 + orig_insn = (u8 *)ktva_ktla((unsigned long)orig_insn);
23116 + else
23117 + orig_insn -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23118 +#endif
23119 +
23120 o_dspl = *(s32 *)(insnbuf + 1);
23121
23122 /* next_rip of the replacement JMP */
23123 @@ -364,6 +374,7 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
23124 {
23125 struct alt_instr *a;
23126 u8 *instr, *replacement;
23127 + u8 *vinstr, *vreplacement;
23128 u8 insnbuf[MAX_PATCH_LEN];
23129
23130 DPRINTK("alt table %p -> %p", start, end);
23131 @@ -379,46 +390,71 @@ void __init_or_module apply_alternatives(struct alt_instr *start,
23132 for (a = start; a < end; a++) {
23133 int insnbuf_sz = 0;
23134
23135 - instr = (u8 *)&a->instr_offset + a->instr_offset;
23136 - replacement = (u8 *)&a->repl_offset + a->repl_offset;
23137 + vinstr = instr = (u8 *)&a->instr_offset + a->instr_offset;
23138 +
23139 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23140 + if ((u8 *)_text - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR) <= instr &&
23141 + instr < (u8 *)_einittext - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR)) {
23142 + instr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23143 + vinstr = (u8 *)ktla_ktva((unsigned long)instr);
23144 + } else if ((u8 *)_text <= instr && instr < (u8 *)_einittext) {
23145 + vinstr = (u8 *)ktla_ktva((unsigned long)instr);
23146 + } else {
23147 + instr = (u8 *)ktva_ktla((unsigned long)instr);
23148 + }
23149 +#endif
23150 +
23151 + vreplacement = replacement = (u8 *)&a->repl_offset + a->repl_offset;
23152 +
23153 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23154 + if ((u8 *)_text - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR) <= replacement &&
23155 + replacement < (u8 *)_einittext - (____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR)) {
23156 + replacement += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23157 + vreplacement = (u8 *)ktla_ktva((unsigned long)replacement);
23158 + } else if ((u8 *)_text <= replacement && replacement < (u8 *)_einittext) {
23159 + vreplacement = (u8 *)ktla_ktva((unsigned long)replacement);
23160 + } else
23161 + replacement = (u8 *)ktva_ktla((unsigned long)replacement);
23162 +#endif
23163 +
23164 BUG_ON(a->instrlen > sizeof(insnbuf));
23165 BUG_ON(a->cpuid >= (NCAPINTS + NBUGINTS) * 32);
23166 if (!boot_cpu_has(a->cpuid)) {
23167 if (a->padlen > 1)
23168 - optimize_nops(a, instr);
23169 + optimize_nops(a, vinstr);
23170
23171 continue;
23172 }
23173
23174 - DPRINTK("feat: %d*32+%d, old: (%p, len: %d), repl: (%p, len: %d), pad: %d",
23175 + DPRINTK("feat: %d*32+%d, old: (%p/%p, len: %d), repl: (%p, len: %d), pad: %d",
23176 a->cpuid >> 5,
23177 a->cpuid & 0x1f,
23178 - instr, a->instrlen,
23179 - replacement, a->replacementlen, a->padlen);
23180 + instr, vinstr, a->instrlen,
23181 + vreplacement, a->replacementlen, a->padlen);
23182
23183 - DUMP_BYTES(instr, a->instrlen, "%p: old_insn: ", instr);
23184 - DUMP_BYTES(replacement, a->replacementlen, "%p: rpl_insn: ", replacement);
23185 + DUMP_BYTES(vinstr, a->instrlen, "%p: old_insn: ", vinstr);
23186 + DUMP_BYTES(vreplacement, a->replacementlen, "%p: rpl_insn: ", vreplacement);
23187
23188 - memcpy(insnbuf, replacement, a->replacementlen);
23189 + memcpy(insnbuf, vreplacement, a->replacementlen);
23190 insnbuf_sz = a->replacementlen;
23191
23192 /* 0xe8 is a relative jump; fix the offset. */
23193 if (*insnbuf == 0xe8 && a->replacementlen == 5) {
23194 - *(s32 *)(insnbuf + 1) += replacement - instr;
23195 + *(s32 *)(insnbuf + 1) += vreplacement - vinstr;
23196 DPRINTK("Fix CALL offset: 0x%x, CALL 0x%lx",
23197 *(s32 *)(insnbuf + 1),
23198 - (unsigned long)instr + *(s32 *)(insnbuf + 1) + 5);
23199 + (unsigned long)vinstr + *(s32 *)(insnbuf + 1) + 5);
23200 }
23201
23202 - if (a->replacementlen && is_jmp(replacement[0]))
23203 - recompute_jump(a, instr, replacement, insnbuf);
23204 + if (a->replacementlen && is_jmp(vreplacement[0]))
23205 + recompute_jump(a, instr, vreplacement, insnbuf);
23206
23207 if (a->instrlen > a->replacementlen) {
23208 add_nops(insnbuf + a->replacementlen,
23209 a->instrlen - a->replacementlen);
23210 insnbuf_sz += a->instrlen - a->replacementlen;
23211 }
23212 - DUMP_BYTES(insnbuf, insnbuf_sz, "%p: final_insn: ", instr);
23213 + DUMP_BYTES(insnbuf, insnbuf_sz, "%p: final_insn: ", vinstr);
23214
23215 text_poke_early(instr, insnbuf, insnbuf_sz);
23216 }
23217 @@ -434,10 +470,16 @@ static void alternatives_smp_lock(const s32 *start, const s32 *end,
23218 for (poff = start; poff < end; poff++) {
23219 u8 *ptr = (u8 *)poff + *poff;
23220
23221 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23222 + ptr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23223 + if (ptr < (u8 *)_text || (u8 *)_einittext <= ptr)
23224 + ptr -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23225 +#endif
23226 +
23227 if (!*poff || ptr < text || ptr >= text_end)
23228 continue;
23229 /* turn DS segment override prefix into lock prefix */
23230 - if (*ptr == 0x3e)
23231 + if (*(u8 *)ktla_ktva((unsigned long)ptr) == 0x3e)
23232 text_poke(ptr, ((unsigned char []){0xf0}), 1);
23233 }
23234 mutex_unlock(&text_mutex);
23235 @@ -452,10 +494,16 @@ static void alternatives_smp_unlock(const s32 *start, const s32 *end,
23236 for (poff = start; poff < end; poff++) {
23237 u8 *ptr = (u8 *)poff + *poff;
23238
23239 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
23240 + ptr += ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23241 + if (ptr < (u8 *)_text || (u8 *)_einittext <= ptr)
23242 + ptr -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
23243 +#endif
23244 +
23245 if (!*poff || ptr < text || ptr >= text_end)
23246 continue;
23247 /* turn lock prefix into DS segment override prefix */
23248 - if (*ptr == 0xf0)
23249 + if (*(u8 *)ktla_ktva((unsigned long)ptr) == 0xf0)
23250 text_poke(ptr, ((unsigned char []){0x3E}), 1);
23251 }
23252 mutex_unlock(&text_mutex);
23253 @@ -592,7 +640,7 @@ void __init_or_module apply_paravirt(struct paravirt_patch_site *start,
23254
23255 BUG_ON(p->len > MAX_PATCH_LEN);
23256 /* prep the buffer with the original instructions */
23257 - memcpy(insnbuf, p->instr, p->len);
23258 + memcpy(insnbuf, (const void *)ktla_ktva((unsigned long)p->instr), p->len);
23259 used = pv_init_ops.patch(p->instrtype, p->clobbers, insnbuf,
23260 (unsigned long)p->instr, p->len);
23261
23262 @@ -639,7 +687,7 @@ void __init alternative_instructions(void)
23263 if (!uniproc_patched || num_possible_cpus() == 1)
23264 free_init_pages("SMP alternatives",
23265 (unsigned long)__smp_locks,
23266 - (unsigned long)__smp_locks_end);
23267 + PAGE_ALIGN((unsigned long)__smp_locks_end));
23268 #endif
23269
23270 apply_paravirt(__parainstructions, __parainstructions_end);
23271 @@ -660,13 +708,17 @@ void __init alternative_instructions(void)
23272 * instructions. And on the local CPU you need to be protected again NMI or MCE
23273 * handlers seeing an inconsistent instruction while you patch.
23274 */
23275 -void *__init_or_module text_poke_early(void *addr, const void *opcode,
23276 +void *__kprobes text_poke_early(void *addr, const void *opcode,
23277 size_t len)
23278 {
23279 unsigned long flags;
23280 local_irq_save(flags);
23281 - memcpy(addr, opcode, len);
23282 +
23283 + pax_open_kernel();
23284 + memcpy((void *)ktla_ktva((unsigned long)addr), opcode, len);
23285 sync_core();
23286 + pax_close_kernel();
23287 +
23288 local_irq_restore(flags);
23289 /* Could also do a CLFLUSH here to speed up CPU recovery; but
23290 that causes hangs on some VIA CPUs. */
23291 @@ -688,36 +740,22 @@ void *__init_or_module text_poke_early(void *addr, const void *opcode,
23292 */
23293 void *text_poke(void *addr, const void *opcode, size_t len)
23294 {
23295 - unsigned long flags;
23296 - char *vaddr;
23297 + unsigned char *vaddr = (void *)ktla_ktva((unsigned long)addr);
23298 struct page *pages[2];
23299 - int i;
23300 + size_t i;
23301
23302 if (!core_kernel_text((unsigned long)addr)) {
23303 - pages[0] = vmalloc_to_page(addr);
23304 - pages[1] = vmalloc_to_page(addr + PAGE_SIZE);
23305 + pages[0] = vmalloc_to_page(vaddr);
23306 + pages[1] = vmalloc_to_page(vaddr + PAGE_SIZE);
23307 } else {
23308 - pages[0] = virt_to_page(addr);
23309 + pages[0] = virt_to_page(vaddr);
23310 WARN_ON(!PageReserved(pages[0]));
23311 - pages[1] = virt_to_page(addr + PAGE_SIZE);
23312 + pages[1] = virt_to_page(vaddr + PAGE_SIZE);
23313 }
23314 BUG_ON(!pages[0]);
23315 - local_irq_save(flags);
23316 - set_fixmap(FIX_TEXT_POKE0, page_to_phys(pages[0]));
23317 - if (pages[1])
23318 - set_fixmap(FIX_TEXT_POKE1, page_to_phys(pages[1]));
23319 - vaddr = (char *)fix_to_virt(FIX_TEXT_POKE0);
23320 - memcpy(&vaddr[(unsigned long)addr & ~PAGE_MASK], opcode, len);
23321 - clear_fixmap(FIX_TEXT_POKE0);
23322 - if (pages[1])
23323 - clear_fixmap(FIX_TEXT_POKE1);
23324 - local_flush_tlb();
23325 - sync_core();
23326 - /* Could also do a CLFLUSH here to speed up CPU recovery; but
23327 - that causes hangs on some VIA CPUs. */
23328 + text_poke_early(addr, opcode, len);
23329 for (i = 0; i < len; i++)
23330 - BUG_ON(((char *)addr)[i] != ((char *)opcode)[i]);
23331 - local_irq_restore(flags);
23332 + BUG_ON((vaddr)[i] != ((const unsigned char *)opcode)[i]);
23333 return addr;
23334 }
23335
23336 @@ -771,7 +809,7 @@ int poke_int3_handler(struct pt_regs *regs)
23337 */
23338 void *text_poke_bp(void *addr, const void *opcode, size_t len, void *handler)
23339 {
23340 - unsigned char int3 = 0xcc;
23341 + const unsigned char int3 = 0xcc;
23342
23343 bp_int3_handler = handler;
23344 bp_int3_addr = (u8 *)addr + sizeof(int3);
23345 diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
23346 index 307a498..a7ffc39 100644
23347 --- a/arch/x86/kernel/apic/apic.c
23348 +++ b/arch/x86/kernel/apic/apic.c
23349 @@ -171,7 +171,7 @@ int first_system_vector = FIRST_SYSTEM_VECTOR;
23350 /*
23351 * Debug level, exported for io_apic.c
23352 */
23353 -unsigned int apic_verbosity;
23354 +int apic_verbosity;
23355
23356 int pic_mode;
23357
23358 @@ -1864,7 +1864,7 @@ static inline void __smp_error_interrupt(struct pt_regs *regs)
23359 apic_write(APIC_ESR, 0);
23360 v = apic_read(APIC_ESR);
23361 ack_APIC_irq();
23362 - atomic_inc(&irq_err_count);
23363 + atomic_inc_unchecked(&irq_err_count);
23364
23365 apic_printk(APIC_DEBUG, KERN_DEBUG "APIC error on CPU%d: %02x",
23366 smp_processor_id(), v);
23367 @@ -2143,7 +2143,9 @@ void __init apic_set_eoi_write(void (*eoi_write)(u32 reg, u32 v))
23368 for (drv = __apicdrivers; drv < __apicdrivers_end; drv++) {
23369 /* Should happen once for each apic */
23370 WARN_ON((*drv)->eoi_write == eoi_write);
23371 - (*drv)->eoi_write = eoi_write;
23372 + pax_open_kernel();
23373 + *(void **)&(*drv)->eoi_write = eoi_write;
23374 + pax_close_kernel();
23375 }
23376 }
23377
23378 diff --git a/arch/x86/kernel/apic/apic_flat_64.c b/arch/x86/kernel/apic/apic_flat_64.c
23379 index de918c4..32eed23 100644
23380 --- a/arch/x86/kernel/apic/apic_flat_64.c
23381 +++ b/arch/x86/kernel/apic/apic_flat_64.c
23382 @@ -154,7 +154,7 @@ static int flat_probe(void)
23383 return 1;
23384 }
23385
23386 -static struct apic apic_flat = {
23387 +static struct apic apic_flat __read_only = {
23388 .name = "flat",
23389 .probe = flat_probe,
23390 .acpi_madt_oem_check = flat_acpi_madt_oem_check,
23391 @@ -260,7 +260,7 @@ static int physflat_probe(void)
23392 return 0;
23393 }
23394
23395 -static struct apic apic_physflat = {
23396 +static struct apic apic_physflat __read_only = {
23397
23398 .name = "physical flat",
23399 .probe = physflat_probe,
23400 diff --git a/arch/x86/kernel/apic/apic_noop.c b/arch/x86/kernel/apic/apic_noop.c
23401 index b205cdb..d8503ff 100644
23402 --- a/arch/x86/kernel/apic/apic_noop.c
23403 +++ b/arch/x86/kernel/apic/apic_noop.c
23404 @@ -108,7 +108,7 @@ static void noop_apic_write(u32 reg, u32 v)
23405 WARN_ON_ONCE(cpu_has_apic && !disable_apic);
23406 }
23407
23408 -struct apic apic_noop = {
23409 +struct apic apic_noop __read_only = {
23410 .name = "noop",
23411 .probe = noop_probe,
23412 .acpi_madt_oem_check = NULL,
23413 diff --git a/arch/x86/kernel/apic/bigsmp_32.c b/arch/x86/kernel/apic/bigsmp_32.c
23414 index c4a8d63..fe893ac 100644
23415 --- a/arch/x86/kernel/apic/bigsmp_32.c
23416 +++ b/arch/x86/kernel/apic/bigsmp_32.c
23417 @@ -147,7 +147,7 @@ static int probe_bigsmp(void)
23418 return dmi_bigsmp;
23419 }
23420
23421 -static struct apic apic_bigsmp = {
23422 +static struct apic apic_bigsmp __read_only = {
23423
23424 .name = "bigsmp",
23425 .probe = probe_bigsmp,
23426 diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
23427 index 11b46d9..e2bc827 100644
23428 --- a/arch/x86/kernel/apic/io_apic.c
23429 +++ b/arch/x86/kernel/apic/io_apic.c
23430 @@ -1682,7 +1682,7 @@ static unsigned int startup_ioapic_irq(struct irq_data *data)
23431 return was_pending;
23432 }
23433
23434 -atomic_t irq_mis_count;
23435 +atomic_unchecked_t irq_mis_count;
23436
23437 #ifdef CONFIG_GENERIC_PENDING_IRQ
23438 static bool io_apic_level_ack_pending(struct mp_chip_data *data)
23439 @@ -1821,7 +1821,7 @@ static void ioapic_ack_level(struct irq_data *irq_data)
23440 * at the cpu.
23441 */
23442 if (!(v & (1 << (i & 0x1f)))) {
23443 - atomic_inc(&irq_mis_count);
23444 + atomic_inc_unchecked(&irq_mis_count);
23445 eoi_ioapic_pin(cfg->vector, irq_data->chip_data);
23446 }
23447
23448 @@ -1867,7 +1867,7 @@ static int ioapic_set_affinity(struct irq_data *irq_data,
23449 return ret;
23450 }
23451
23452 -static struct irq_chip ioapic_chip __read_mostly = {
23453 +static struct irq_chip ioapic_chip = {
23454 .name = "IO-APIC",
23455 .irq_startup = startup_ioapic_irq,
23456 .irq_mask = mask_ioapic_irq,
23457 @@ -1936,7 +1936,7 @@ static void ack_lapic_irq(struct irq_data *data)
23458 ack_APIC_irq();
23459 }
23460
23461 -static struct irq_chip lapic_chip __read_mostly = {
23462 +static struct irq_chip lapic_chip = {
23463 .name = "local-APIC",
23464 .irq_mask = mask_lapic_irq,
23465 .irq_unmask = unmask_lapic_irq,
23466 diff --git a/arch/x86/kernel/apic/msi.c b/arch/x86/kernel/apic/msi.c
23467 index 1a9d735..c58b5c5 100644
23468 --- a/arch/x86/kernel/apic/msi.c
23469 +++ b/arch/x86/kernel/apic/msi.c
23470 @@ -267,7 +267,7 @@ static void hpet_msi_write_msg(struct irq_data *data, struct msi_msg *msg)
23471 hpet_msi_write(data->handler_data, msg);
23472 }
23473
23474 -static struct irq_chip hpet_msi_controller = {
23475 +static irq_chip_no_const hpet_msi_controller __read_only = {
23476 .name = "HPET-MSI",
23477 .irq_unmask = hpet_msi_unmask,
23478 .irq_mask = hpet_msi_mask,
23479 diff --git a/arch/x86/kernel/apic/probe_32.c b/arch/x86/kernel/apic/probe_32.c
23480 index bda4886..f9c7195 100644
23481 --- a/arch/x86/kernel/apic/probe_32.c
23482 +++ b/arch/x86/kernel/apic/probe_32.c
23483 @@ -72,7 +72,7 @@ static int probe_default(void)
23484 return 1;
23485 }
23486
23487 -static struct apic apic_default = {
23488 +static struct apic apic_default __read_only = {
23489
23490 .name = "default",
23491 .probe = probe_default,
23492 diff --git a/arch/x86/kernel/apic/vector.c b/arch/x86/kernel/apic/vector.c
23493 index 2683f36..0bdc74c 100644
23494 --- a/arch/x86/kernel/apic/vector.c
23495 +++ b/arch/x86/kernel/apic/vector.c
23496 @@ -36,7 +36,7 @@ static struct irq_chip lapic_controller;
23497 static struct apic_chip_data *legacy_irq_data[NR_IRQS_LEGACY];
23498 #endif
23499
23500 -void lock_vector_lock(void)
23501 +void lock_vector_lock(void) __acquires(vector_lock)
23502 {
23503 /* Used to the online set of cpus does not change
23504 * during assign_irq_vector.
23505 @@ -44,7 +44,7 @@ void lock_vector_lock(void)
23506 raw_spin_lock(&vector_lock);
23507 }
23508
23509 -void unlock_vector_lock(void)
23510 +void unlock_vector_lock(void) __releases(vector_lock)
23511 {
23512 raw_spin_unlock(&vector_lock);
23513 }
23514 diff --git a/arch/x86/kernel/apic/x2apic_cluster.c b/arch/x86/kernel/apic/x2apic_cluster.c
23515 index ab3219b..e8033eb 100644
23516 --- a/arch/x86/kernel/apic/x2apic_cluster.c
23517 +++ b/arch/x86/kernel/apic/x2apic_cluster.c
23518 @@ -182,7 +182,7 @@ update_clusterinfo(struct notifier_block *nfb, unsigned long action, void *hcpu)
23519 return notifier_from_errno(err);
23520 }
23521
23522 -static struct notifier_block __refdata x2apic_cpu_notifier = {
23523 +static struct notifier_block x2apic_cpu_notifier = {
23524 .notifier_call = update_clusterinfo,
23525 };
23526
23527 @@ -234,7 +234,7 @@ static void cluster_vector_allocation_domain(int cpu, struct cpumask *retmask,
23528 cpumask_and(retmask, mask, per_cpu(cpus_in_cluster, cpu));
23529 }
23530
23531 -static struct apic apic_x2apic_cluster = {
23532 +static struct apic apic_x2apic_cluster __read_only = {
23533
23534 .name = "cluster x2apic",
23535 .probe = x2apic_cluster_probe,
23536 diff --git a/arch/x86/kernel/apic/x2apic_phys.c b/arch/x86/kernel/apic/x2apic_phys.c
23537 index 3ffd925..8c0f5a8 100644
23538 --- a/arch/x86/kernel/apic/x2apic_phys.c
23539 +++ b/arch/x86/kernel/apic/x2apic_phys.c
23540 @@ -90,7 +90,7 @@ static int x2apic_phys_probe(void)
23541 return apic == &apic_x2apic_phys;
23542 }
23543
23544 -static struct apic apic_x2apic_phys = {
23545 +static struct apic apic_x2apic_phys __read_only = {
23546
23547 .name = "physical x2apic",
23548 .probe = x2apic_phys_probe,
23549 diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
23550 index c8d9295..9af2d03 100644
23551 --- a/arch/x86/kernel/apic/x2apic_uv_x.c
23552 +++ b/arch/x86/kernel/apic/x2apic_uv_x.c
23553 @@ -375,7 +375,7 @@ static int uv_probe(void)
23554 return apic == &apic_x2apic_uv_x;
23555 }
23556
23557 -static struct apic __refdata apic_x2apic_uv_x = {
23558 +static struct apic apic_x2apic_uv_x __read_only = {
23559
23560 .name = "UV large system",
23561 .probe = uv_probe,
23562 diff --git a/arch/x86/kernel/apm_32.c b/arch/x86/kernel/apm_32.c
23563 index 927ec92..de68f32 100644
23564 --- a/arch/x86/kernel/apm_32.c
23565 +++ b/arch/x86/kernel/apm_32.c
23566 @@ -432,7 +432,7 @@ static DEFINE_MUTEX(apm_mutex);
23567 * This is for buggy BIOS's that refer to (real mode) segment 0x40
23568 * even though they are called in protected mode.
23569 */
23570 -static struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4092,
23571 +static const struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4093,
23572 (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
23573
23574 static const char driver_version[] = "1.16ac"; /* no spaces */
23575 @@ -610,7 +610,10 @@ static long __apm_bios_call(void *_call)
23576 BUG_ON(cpu != 0);
23577 gdt = get_cpu_gdt_table(cpu);
23578 save_desc_40 = gdt[0x40 / 8];
23579 +
23580 + pax_open_kernel();
23581 gdt[0x40 / 8] = bad_bios_desc;
23582 + pax_close_kernel();
23583
23584 apm_irq_save(flags);
23585 APM_DO_SAVE_SEGS;
23586 @@ -619,7 +622,11 @@ static long __apm_bios_call(void *_call)
23587 &call->esi);
23588 APM_DO_RESTORE_SEGS;
23589 apm_irq_restore(flags);
23590 +
23591 + pax_open_kernel();
23592 gdt[0x40 / 8] = save_desc_40;
23593 + pax_close_kernel();
23594 +
23595 put_cpu();
23596
23597 return call->eax & 0xff;
23598 @@ -686,7 +693,10 @@ static long __apm_bios_call_simple(void *_call)
23599 BUG_ON(cpu != 0);
23600 gdt = get_cpu_gdt_table(cpu);
23601 save_desc_40 = gdt[0x40 / 8];
23602 +
23603 + pax_open_kernel();
23604 gdt[0x40 / 8] = bad_bios_desc;
23605 + pax_close_kernel();
23606
23607 apm_irq_save(flags);
23608 APM_DO_SAVE_SEGS;
23609 @@ -694,7 +704,11 @@ static long __apm_bios_call_simple(void *_call)
23610 &call->eax);
23611 APM_DO_RESTORE_SEGS;
23612 apm_irq_restore(flags);
23613 +
23614 + pax_open_kernel();
23615 gdt[0x40 / 8] = save_desc_40;
23616 + pax_close_kernel();
23617 +
23618 put_cpu();
23619 return error;
23620 }
23621 @@ -2039,7 +2053,7 @@ static int __init swab_apm_power_in_minutes(const struct dmi_system_id *d)
23622 return 0;
23623 }
23624
23625 -static struct dmi_system_id __initdata apm_dmi_table[] = {
23626 +static const struct dmi_system_id __initconst apm_dmi_table[] = {
23627 {
23628 print_if_true,
23629 KERN_WARNING "IBM T23 - BIOS 1.03b+ and controller firmware 1.02+ may be needed for Linux APM.",
23630 @@ -2349,12 +2363,15 @@ static int __init apm_init(void)
23631 * code to that CPU.
23632 */
23633 gdt = get_cpu_gdt_table(0);
23634 +
23635 + pax_open_kernel();
23636 set_desc_base(&gdt[APM_CS >> 3],
23637 (unsigned long)__va((unsigned long)apm_info.bios.cseg << 4));
23638 set_desc_base(&gdt[APM_CS_16 >> 3],
23639 (unsigned long)__va((unsigned long)apm_info.bios.cseg_16 << 4));
23640 set_desc_base(&gdt[APM_DS >> 3],
23641 (unsigned long)__va((unsigned long)apm_info.bios.dseg << 4));
23642 + pax_close_kernel();
23643
23644 proc_create("apm", 0, NULL, &apm_file_ops);
23645
23646 diff --git a/arch/x86/kernel/asm-offsets.c b/arch/x86/kernel/asm-offsets.c
23647 index 8e3d22a1..37118b6 100644
23648 --- a/arch/x86/kernel/asm-offsets.c
23649 +++ b/arch/x86/kernel/asm-offsets.c
23650 @@ -32,6 +32,8 @@ void common(void) {
23651 OFFSET(TI_flags, thread_info, flags);
23652 OFFSET(TI_status, thread_info, status);
23653 OFFSET(TI_addr_limit, thread_info, addr_limit);
23654 + OFFSET(TI_lowest_stack, thread_info, lowest_stack);
23655 + DEFINE(TI_task_thread_sp0, offsetof(struct task_struct, thread.sp0) - offsetof(struct task_struct, tinfo));
23656
23657 BLANK();
23658 OFFSET(crypto_tfm_ctx_offset, crypto_tfm, __crt_ctx);
23659 @@ -73,8 +75,26 @@ void common(void) {
23660 #endif
23661 OFFSET(PV_CPU_read_cr0, pv_cpu_ops, read_cr0);
23662 OFFSET(PV_MMU_read_cr2, pv_mmu_ops, read_cr2);
23663 +
23664 +#ifdef CONFIG_PAX_KERNEXEC
23665 + OFFSET(PV_CPU_write_cr0, pv_cpu_ops, write_cr0);
23666 #endif
23667
23668 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23669 + OFFSET(PV_MMU_read_cr3, pv_mmu_ops, read_cr3);
23670 + OFFSET(PV_MMU_write_cr3, pv_mmu_ops, write_cr3);
23671 +#ifdef CONFIG_X86_64
23672 + OFFSET(PV_MMU_set_pgd_batched, pv_mmu_ops, set_pgd_batched);
23673 +#endif
23674 +#endif
23675 +
23676 +#endif
23677 +
23678 + BLANK();
23679 + DEFINE(PAGE_SIZE_asm, PAGE_SIZE);
23680 + DEFINE(PAGE_SHIFT_asm, PAGE_SHIFT);
23681 + DEFINE(THREAD_SIZE_asm, THREAD_SIZE);
23682 +
23683 #ifdef CONFIG_XEN
23684 BLANK();
23685 OFFSET(XEN_vcpu_info_mask, vcpu_info, evtchn_upcall_mask);
23686 diff --git a/arch/x86/kernel/asm-offsets_64.c b/arch/x86/kernel/asm-offsets_64.c
23687 index d8f42f9..a46f1fc 100644
23688 --- a/arch/x86/kernel/asm-offsets_64.c
23689 +++ b/arch/x86/kernel/asm-offsets_64.c
23690 @@ -59,6 +59,7 @@ int main(void)
23691 BLANK();
23692 #undef ENTRY
23693
23694 + DEFINE(TSS_size, sizeof(struct tss_struct));
23695 OFFSET(TSS_ist, tss_struct, x86_tss.ist);
23696 OFFSET(TSS_sp0, tss_struct, x86_tss.sp0);
23697 BLANK();
23698 diff --git a/arch/x86/kernel/cpu/Makefile b/arch/x86/kernel/cpu/Makefile
23699 index 9bff687..5b899fb 100644
23700 --- a/arch/x86/kernel/cpu/Makefile
23701 +++ b/arch/x86/kernel/cpu/Makefile
23702 @@ -8,10 +8,6 @@ CFLAGS_REMOVE_common.o = -pg
23703 CFLAGS_REMOVE_perf_event.o = -pg
23704 endif
23705
23706 -# Make sure load_percpu_segment has no stackprotector
23707 -nostackp := $(call cc-option, -fno-stack-protector)
23708 -CFLAGS_common.o := $(nostackp)
23709 -
23710 obj-y := intel_cacheinfo.o scattered.o topology.o
23711 obj-y += common.o
23712 obj-y += rdrand.o
23713 diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
23714 index dd3a4ba..06672af 100644
23715 --- a/arch/x86/kernel/cpu/amd.c
23716 +++ b/arch/x86/kernel/cpu/amd.c
23717 @@ -750,7 +750,7 @@ static void init_amd(struct cpuinfo_x86 *c)
23718 static unsigned int amd_size_cache(struct cpuinfo_x86 *c, unsigned int size)
23719 {
23720 /* AMD errata T13 (order #21922) */
23721 - if ((c->x86 == 6)) {
23722 + if (c->x86 == 6) {
23723 /* Duron Rev A0 */
23724 if (c->x86_model == 3 && c->x86_mask == 0)
23725 size = 64;
23726 diff --git a/arch/x86/kernel/cpu/bugs_64.c b/arch/x86/kernel/cpu/bugs_64.c
23727 index 04f0fe5..3c0598c 100644
23728 --- a/arch/x86/kernel/cpu/bugs_64.c
23729 +++ b/arch/x86/kernel/cpu/bugs_64.c
23730 @@ -10,6 +10,7 @@
23731 #include <asm/processor.h>
23732 #include <asm/mtrr.h>
23733 #include <asm/cacheflush.h>
23734 +#include <asm/sections.h>
23735
23736 void __init check_bugs(void)
23737 {
23738 @@ -18,6 +19,7 @@ void __init check_bugs(void)
23739 printk(KERN_INFO "CPU: ");
23740 print_cpu_info(&boot_cpu_data);
23741 #endif
23742 + set_memory_nx((unsigned long)_sinitdata, (__START_KERNEL_map + KERNEL_IMAGE_SIZE - (unsigned long)_sinitdata) >> PAGE_SHIFT);
23743 alternative_instructions();
23744
23745 /*
23746 diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
23747 index cb9e5df..0d25636 100644
23748 --- a/arch/x86/kernel/cpu/common.c
23749 +++ b/arch/x86/kernel/cpu/common.c
23750 @@ -91,60 +91,6 @@ static const struct cpu_dev default_cpu = {
23751
23752 static const struct cpu_dev *this_cpu = &default_cpu;
23753
23754 -DEFINE_PER_CPU_PAGE_ALIGNED(struct gdt_page, gdt_page) = { .gdt = {
23755 -#ifdef CONFIG_X86_64
23756 - /*
23757 - * We need valid kernel segments for data and code in long mode too
23758 - * IRET will check the segment types kkeil 2000/10/28
23759 - * Also sysret mandates a special GDT layout
23760 - *
23761 - * TLS descriptors are currently at a different place compared to i386.
23762 - * Hopefully nobody expects them at a fixed place (Wine?)
23763 - */
23764 - [GDT_ENTRY_KERNEL32_CS] = GDT_ENTRY_INIT(0xc09b, 0, 0xfffff),
23765 - [GDT_ENTRY_KERNEL_CS] = GDT_ENTRY_INIT(0xa09b, 0, 0xfffff),
23766 - [GDT_ENTRY_KERNEL_DS] = GDT_ENTRY_INIT(0xc093, 0, 0xfffff),
23767 - [GDT_ENTRY_DEFAULT_USER32_CS] = GDT_ENTRY_INIT(0xc0fb, 0, 0xfffff),
23768 - [GDT_ENTRY_DEFAULT_USER_DS] = GDT_ENTRY_INIT(0xc0f3, 0, 0xfffff),
23769 - [GDT_ENTRY_DEFAULT_USER_CS] = GDT_ENTRY_INIT(0xa0fb, 0, 0xfffff),
23770 -#else
23771 - [GDT_ENTRY_KERNEL_CS] = GDT_ENTRY_INIT(0xc09a, 0, 0xfffff),
23772 - [GDT_ENTRY_KERNEL_DS] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23773 - [GDT_ENTRY_DEFAULT_USER_CS] = GDT_ENTRY_INIT(0xc0fa, 0, 0xfffff),
23774 - [GDT_ENTRY_DEFAULT_USER_DS] = GDT_ENTRY_INIT(0xc0f2, 0, 0xfffff),
23775 - /*
23776 - * Segments used for calling PnP BIOS have byte granularity.
23777 - * They code segments and data segments have fixed 64k limits,
23778 - * the transfer segment sizes are set at run time.
23779 - */
23780 - /* 32-bit code */
23781 - [GDT_ENTRY_PNPBIOS_CS32] = GDT_ENTRY_INIT(0x409a, 0, 0xffff),
23782 - /* 16-bit code */
23783 - [GDT_ENTRY_PNPBIOS_CS16] = GDT_ENTRY_INIT(0x009a, 0, 0xffff),
23784 - /* 16-bit data */
23785 - [GDT_ENTRY_PNPBIOS_DS] = GDT_ENTRY_INIT(0x0092, 0, 0xffff),
23786 - /* 16-bit data */
23787 - [GDT_ENTRY_PNPBIOS_TS1] = GDT_ENTRY_INIT(0x0092, 0, 0),
23788 - /* 16-bit data */
23789 - [GDT_ENTRY_PNPBIOS_TS2] = GDT_ENTRY_INIT(0x0092, 0, 0),
23790 - /*
23791 - * The APM segments have byte granularity and their bases
23792 - * are set at run time. All have 64k limits.
23793 - */
23794 - /* 32-bit code */
23795 - [GDT_ENTRY_APMBIOS_BASE] = GDT_ENTRY_INIT(0x409a, 0, 0xffff),
23796 - /* 16-bit code */
23797 - [GDT_ENTRY_APMBIOS_BASE+1] = GDT_ENTRY_INIT(0x009a, 0, 0xffff),
23798 - /* data */
23799 - [GDT_ENTRY_APMBIOS_BASE+2] = GDT_ENTRY_INIT(0x4092, 0, 0xffff),
23800 -
23801 - [GDT_ENTRY_ESPFIX_SS] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23802 - [GDT_ENTRY_PERCPU] = GDT_ENTRY_INIT(0xc092, 0, 0xfffff),
23803 - GDT_STACK_CANARY_INIT
23804 -#endif
23805 -} };
23806 -EXPORT_PER_CPU_SYMBOL_GPL(gdt_page);
23807 -
23808 static int __init x86_mpx_setup(char *s)
23809 {
23810 /* require an exact match without trailing characters */
23811 @@ -287,6 +233,109 @@ static __always_inline void setup_smap(struct cpuinfo_x86 *c)
23812 }
23813 }
23814
23815 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23816 +#ifdef CONFIG_X86_64
23817 +static bool uderef_enabled __read_only = true;
23818 +unsigned long pax_user_shadow_base __read_only;
23819 +EXPORT_SYMBOL(pax_user_shadow_base);
23820 +extern char pax_enter_kernel_user[];
23821 +extern char pax_exit_kernel_user[];
23822 +
23823 +static int __init setup_pax_weakuderef(char *str)
23824 +{
23825 + if (uderef_enabled)
23826 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23827 + return 1;
23828 +}
23829 +__setup("pax_weakuderef", setup_pax_weakuderef);
23830 +#endif
23831 +
23832 +static int __init setup_pax_nouderef(char *str)
23833 +{
23834 +#ifdef CONFIG_X86_32
23835 + unsigned int cpu;
23836 + struct desc_struct *gdt;
23837 +
23838 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
23839 + gdt = get_cpu_gdt_table(cpu);
23840 + gdt[GDT_ENTRY_KERNEL_DS].type = 3;
23841 + gdt[GDT_ENTRY_KERNEL_DS].limit = 0xf;
23842 + gdt[GDT_ENTRY_DEFAULT_USER_CS].limit = 0xf;
23843 + gdt[GDT_ENTRY_DEFAULT_USER_DS].limit = 0xf;
23844 + }
23845 + loadsegment(ds, __KERNEL_DS);
23846 + loadsegment(es, __KERNEL_DS);
23847 + loadsegment(ss, __KERNEL_DS);
23848 +#else
23849 + memcpy(pax_enter_kernel_user, (unsigned char []){0xc3}, 1);
23850 + memcpy(pax_exit_kernel_user, (unsigned char []){0xc3}, 1);
23851 + clone_pgd_mask = ~(pgdval_t)0UL;
23852 + pax_user_shadow_base = 0UL;
23853 + setup_clear_cpu_cap(X86_FEATURE_PCIDUDEREF);
23854 + uderef_enabled = false;
23855 +#endif
23856 +
23857 + return 0;
23858 +}
23859 +early_param("pax_nouderef", setup_pax_nouderef);
23860 +#endif
23861 +
23862 +#ifdef CONFIG_X86_64
23863 +static __init int setup_disable_pcid(char *arg)
23864 +{
23865 + setup_clear_cpu_cap(X86_FEATURE_PCID);
23866 + setup_clear_cpu_cap(X86_FEATURE_INVPCID);
23867 +
23868 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23869 + if (uderef_enabled)
23870 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23871 +#endif
23872 +
23873 + return 1;
23874 +}
23875 +__setup("nopcid", setup_disable_pcid);
23876 +
23877 +static void setup_pcid(struct cpuinfo_x86 *c)
23878 +{
23879 + if (cpu_has(c, X86_FEATURE_PCID)) {
23880 + printk("PAX: PCID detected\n");
23881 + cr4_set_bits(X86_CR4_PCIDE);
23882 + } else
23883 + clear_cpu_cap(c, X86_FEATURE_INVPCID);
23884 +
23885 + if (cpu_has(c, X86_FEATURE_INVPCID))
23886 + printk("PAX: INVPCID detected\n");
23887 +
23888 +#ifdef CONFIG_PAX_MEMORY_UDEREF
23889 + if (!uderef_enabled) {
23890 + printk("PAX: UDEREF disabled\n");
23891 + return;
23892 + }
23893 +
23894 + if (!cpu_has(c, X86_FEATURE_PCID)) {
23895 + pax_open_kernel();
23896 + pax_user_shadow_base = 1UL << TASK_SIZE_MAX_SHIFT;
23897 + pax_close_kernel();
23898 + printk("PAX: slow and weak UDEREF enabled\n");
23899 + return;
23900 + }
23901 +
23902 + set_cpu_cap(c, X86_FEATURE_PCIDUDEREF);
23903 +
23904 + pax_open_kernel();
23905 + clone_pgd_mask = ~(pgdval_t)0UL;
23906 + pax_close_kernel();
23907 + if (pax_user_shadow_base)
23908 + printk("PAX: weak UDEREF enabled\n");
23909 + else {
23910 + set_cpu_cap(c, X86_FEATURE_STRONGUDEREF);
23911 + printk("PAX: strong UDEREF enabled\n");
23912 + }
23913 +#endif
23914 +
23915 +}
23916 +#endif
23917 +
23918 /*
23919 * Some CPU features depend on higher CPUID levels, which may not always
23920 * be available due to CPUID level capping or broken virtualization
23921 @@ -387,7 +436,7 @@ void switch_to_new_gdt(int cpu)
23922 {
23923 struct desc_ptr gdt_descr;
23924
23925 - gdt_descr.address = (long)get_cpu_gdt_table(cpu);
23926 + gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
23927 gdt_descr.size = GDT_SIZE - 1;
23928 load_gdt(&gdt_descr);
23929 /* Reload the per-cpu base */
23930 @@ -918,6 +967,20 @@ static void identify_cpu(struct cpuinfo_x86 *c)
23931 setup_smep(c);
23932 setup_smap(c);
23933
23934 +#ifdef CONFIG_X86_32
23935 +#ifdef CONFIG_PAX_PAGEEXEC
23936 + if (!(__supported_pte_mask & _PAGE_NX))
23937 + clear_cpu_cap(c, X86_FEATURE_PSE);
23938 +#endif
23939 +#if defined(CONFIG_PAX_SEGMEXEC) || defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
23940 + clear_cpu_cap(c, X86_FEATURE_SEP);
23941 +#endif
23942 +#endif
23943 +
23944 +#ifdef CONFIG_X86_64
23945 + setup_pcid(c);
23946 +#endif
23947 +
23948 /*
23949 * The vendor-specific functions might have changed features.
23950 * Now we do "generic changes."
23951 @@ -992,7 +1055,7 @@ void enable_sep_cpu(void)
23952 int cpu;
23953
23954 cpu = get_cpu();
23955 - tss = &per_cpu(cpu_tss, cpu);
23956 + tss = cpu_tss + cpu;
23957
23958 if (!boot_cpu_has(X86_FEATURE_SEP))
23959 goto out;
23960 @@ -1138,10 +1201,12 @@ static __init int setup_disablecpuid(char *arg)
23961 }
23962 __setup("clearcpuid=", setup_disablecpuid);
23963
23964 +DEFINE_PER_CPU(struct thread_info *, current_tinfo) = &init_task.tinfo;
23965 +EXPORT_PER_CPU_SYMBOL(current_tinfo);
23966 +
23967 #ifdef CONFIG_X86_64
23968 -struct desc_ptr idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
23969 -struct desc_ptr debug_idt_descr = { NR_VECTORS * 16 - 1,
23970 - (unsigned long) debug_idt_table };
23971 +struct desc_ptr idt_descr __read_only = { NR_VECTORS * 16 - 1, (unsigned long) idt_table };
23972 +const struct desc_ptr debug_idt_descr = { NR_VECTORS * 16 - 1, (unsigned long) debug_idt_table };
23973
23974 DEFINE_PER_CPU_FIRST(union irq_stack_union,
23975 irq_stack_union) __aligned(PAGE_SIZE) __visible;
23976 @@ -1253,21 +1318,21 @@ EXPORT_PER_CPU_SYMBOL(current_task);
23977 DEFINE_PER_CPU(int, __preempt_count) = INIT_PREEMPT_COUNT;
23978 EXPORT_PER_CPU_SYMBOL(__preempt_count);
23979
23980 +#ifdef CONFIG_CC_STACKPROTECTOR
23981 +DEFINE_PER_CPU_ALIGNED(struct stack_canary, stack_canary);
23982 +#endif
23983 +
23984 +#endif /* CONFIG_X86_64 */
23985 +
23986 /*
23987 * On x86_32, vm86 modifies tss.sp0, so sp0 isn't a reliable way to find
23988 * the top of the kernel stack. Use an extra percpu variable to track the
23989 * top of the kernel stack directly.
23990 */
23991 DEFINE_PER_CPU(unsigned long, cpu_current_top_of_stack) =
23992 - (unsigned long)&init_thread_union + THREAD_SIZE;
23993 + (unsigned long)&init_thread_union - 16 + THREAD_SIZE;
23994 EXPORT_PER_CPU_SYMBOL(cpu_current_top_of_stack);
23995
23996 -#ifdef CONFIG_CC_STACKPROTECTOR
23997 -DEFINE_PER_CPU_ALIGNED(struct stack_canary, stack_canary);
23998 -#endif
23999 -
24000 -#endif /* CONFIG_X86_64 */
24001 -
24002 /*
24003 * Clear all 6 debug registers:
24004 */
24005 @@ -1343,7 +1408,7 @@ void cpu_init(void)
24006 */
24007 load_ucode_ap();
24008
24009 - t = &per_cpu(cpu_tss, cpu);
24010 + t = cpu_tss + cpu;
24011 oist = &per_cpu(orig_ist, cpu);
24012
24013 #ifdef CONFIG_NUMA
24014 @@ -1375,7 +1440,6 @@ void cpu_init(void)
24015 wrmsrl(MSR_KERNEL_GS_BASE, 0);
24016 barrier();
24017
24018 - x86_configure_nx();
24019 x2apic_setup();
24020
24021 /*
24022 @@ -1427,7 +1491,7 @@ void cpu_init(void)
24023 {
24024 int cpu = smp_processor_id();
24025 struct task_struct *curr = current;
24026 - struct tss_struct *t = &per_cpu(cpu_tss, cpu);
24027 + struct tss_struct *t = cpu_tss + cpu;
24028 struct thread_struct *thread = &curr->thread;
24029
24030 wait_for_master_cpu(cpu);
24031 diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
24032 index be4febc..f7af533 100644
24033 --- a/arch/x86/kernel/cpu/intel_cacheinfo.c
24034 +++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
24035 @@ -519,25 +519,23 @@ cache_private_attrs_is_visible(struct kobject *kobj,
24036 return 0;
24037 }
24038
24039 +static struct attribute *amd_l3_attrs[4];
24040 +
24041 static struct attribute_group cache_private_group = {
24042 .is_visible = cache_private_attrs_is_visible,
24043 + .attrs = amd_l3_attrs,
24044 };
24045
24046 static void init_amd_l3_attrs(void)
24047 {
24048 int n = 1;
24049 - static struct attribute **amd_l3_attrs;
24050 -
24051 - if (amd_l3_attrs) /* already initialized */
24052 - return;
24053
24054 if (amd_nb_has_feature(AMD_NB_L3_INDEX_DISABLE))
24055 n += 2;
24056 if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
24057 n += 1;
24058
24059 - amd_l3_attrs = kcalloc(n, sizeof(*amd_l3_attrs), GFP_KERNEL);
24060 - if (!amd_l3_attrs)
24061 + if (n > 1 && amd_l3_attrs[0]) /* already initialized */
24062 return;
24063
24064 n = 0;
24065 @@ -547,8 +545,6 @@ static void init_amd_l3_attrs(void)
24066 }
24067 if (amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
24068 amd_l3_attrs[n++] = &dev_attr_subcaches.attr;
24069 -
24070 - cache_private_group.attrs = amd_l3_attrs;
24071 }
24072
24073 const struct attribute_group *
24074 @@ -559,7 +555,7 @@ cache_get_priv_group(struct cacheinfo *this_leaf)
24075 if (this_leaf->level < 3 || !nb)
24076 return NULL;
24077
24078 - if (nb && nb->l3_cache.indices)
24079 + if (nb->l3_cache.indices)
24080 init_amd_l3_attrs();
24081
24082 return &cache_private_group;
24083 diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
24084 index df919ff..3332bf7 100644
24085 --- a/arch/x86/kernel/cpu/mcheck/mce.c
24086 +++ b/arch/x86/kernel/cpu/mcheck/mce.c
24087 @@ -47,6 +47,7 @@
24088 #include <asm/tlbflush.h>
24089 #include <asm/mce.h>
24090 #include <asm/msr.h>
24091 +#include <asm/local.h>
24092
24093 #include "mce-internal.h"
24094
24095 @@ -259,7 +260,7 @@ static void print_mce(struct mce *m)
24096 !(m->mcgstatus & MCG_STATUS_EIPV) ? " !INEXACT!" : "",
24097 m->cs, m->ip);
24098
24099 - if (m->cs == __KERNEL_CS)
24100 + if (m->cs == __KERNEL_CS || m->cs == __KERNEXEC_KERNEL_CS)
24101 print_symbol("{%s}", m->ip);
24102 pr_cont("\n");
24103 }
24104 @@ -292,10 +293,10 @@ static void print_mce(struct mce *m)
24105
24106 #define PANIC_TIMEOUT 5 /* 5 seconds */
24107
24108 -static atomic_t mce_panicked;
24109 +static atomic_unchecked_t mce_panicked;
24110
24111 static int fake_panic;
24112 -static atomic_t mce_fake_panicked;
24113 +static atomic_unchecked_t mce_fake_panicked;
24114
24115 /* Panic in progress. Enable interrupts and wait for final IPI */
24116 static void wait_for_panic(void)
24117 @@ -319,7 +320,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
24118 /*
24119 * Make sure only one CPU runs in machine check panic
24120 */
24121 - if (atomic_inc_return(&mce_panicked) > 1)
24122 + if (atomic_inc_return_unchecked(&mce_panicked) > 1)
24123 wait_for_panic();
24124 barrier();
24125
24126 @@ -327,7 +328,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
24127 console_verbose();
24128 } else {
24129 /* Don't log too much for fake panic */
24130 - if (atomic_inc_return(&mce_fake_panicked) > 1)
24131 + if (atomic_inc_return_unchecked(&mce_fake_panicked) > 1)
24132 return;
24133 }
24134 /* First print corrected ones that are still unlogged */
24135 @@ -366,7 +367,7 @@ static void mce_panic(const char *msg, struct mce *final, char *exp)
24136 if (!fake_panic) {
24137 if (panic_timeout == 0)
24138 panic_timeout = mca_cfg.panic_timeout;
24139 - panic(msg);
24140 + panic("%s", msg);
24141 } else
24142 pr_emerg(HW_ERR "Fake kernel panic: %s\n", msg);
24143 }
24144 @@ -752,7 +753,7 @@ static int mce_timed_out(u64 *t, const char *msg)
24145 * might have been modified by someone else.
24146 */
24147 rmb();
24148 - if (atomic_read(&mce_panicked))
24149 + if (atomic_read_unchecked(&mce_panicked))
24150 wait_for_panic();
24151 if (!mca_cfg.monarch_timeout)
24152 goto out;
24153 @@ -1708,7 +1709,7 @@ static void unexpected_machine_check(struct pt_regs *regs, long error_code)
24154 }
24155
24156 /* Call the installed machine check handler for this CPU setup. */
24157 -void (*machine_check_vector)(struct pt_regs *, long error_code) =
24158 +void (*machine_check_vector)(struct pt_regs *, long error_code) __read_only =
24159 unexpected_machine_check;
24160
24161 /*
24162 @@ -1731,7 +1732,9 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
24163 return;
24164 }
24165
24166 + pax_open_kernel();
24167 machine_check_vector = do_machine_check;
24168 + pax_close_kernel();
24169
24170 __mcheck_cpu_init_generic();
24171 __mcheck_cpu_init_vendor(c);
24172 @@ -1745,7 +1748,7 @@ void mcheck_cpu_init(struct cpuinfo_x86 *c)
24173 */
24174
24175 static DEFINE_SPINLOCK(mce_chrdev_state_lock);
24176 -static int mce_chrdev_open_count; /* #times opened */
24177 +static local_t mce_chrdev_open_count; /* #times opened */
24178 static int mce_chrdev_open_exclu; /* already open exclusive? */
24179
24180 static int mce_chrdev_open(struct inode *inode, struct file *file)
24181 @@ -1753,7 +1756,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
24182 spin_lock(&mce_chrdev_state_lock);
24183
24184 if (mce_chrdev_open_exclu ||
24185 - (mce_chrdev_open_count && (file->f_flags & O_EXCL))) {
24186 + (local_read(&mce_chrdev_open_count) && (file->f_flags & O_EXCL))) {
24187 spin_unlock(&mce_chrdev_state_lock);
24188
24189 return -EBUSY;
24190 @@ -1761,7 +1764,7 @@ static int mce_chrdev_open(struct inode *inode, struct file *file)
24191
24192 if (file->f_flags & O_EXCL)
24193 mce_chrdev_open_exclu = 1;
24194 - mce_chrdev_open_count++;
24195 + local_inc(&mce_chrdev_open_count);
24196
24197 spin_unlock(&mce_chrdev_state_lock);
24198
24199 @@ -1772,7 +1775,7 @@ static int mce_chrdev_release(struct inode *inode, struct file *file)
24200 {
24201 spin_lock(&mce_chrdev_state_lock);
24202
24203 - mce_chrdev_open_count--;
24204 + local_dec(&mce_chrdev_open_count);
24205 mce_chrdev_open_exclu = 0;
24206
24207 spin_unlock(&mce_chrdev_state_lock);
24208 @@ -2448,7 +2451,7 @@ static __init void mce_init_banks(void)
24209
24210 for (i = 0; i < mca_cfg.banks; i++) {
24211 struct mce_bank *b = &mce_banks[i];
24212 - struct device_attribute *a = &b->attr;
24213 + device_attribute_no_const *a = &b->attr;
24214
24215 sysfs_attr_init(&a->attr);
24216 a->attr.name = b->attrname;
24217 @@ -2555,7 +2558,7 @@ struct dentry *mce_get_debugfs_dir(void)
24218 static void mce_reset(void)
24219 {
24220 cpu_missing = 0;
24221 - atomic_set(&mce_fake_panicked, 0);
24222 + atomic_set_unchecked(&mce_fake_panicked, 0);
24223 atomic_set(&mce_executing, 0);
24224 atomic_set(&mce_callin, 0);
24225 atomic_set(&global_nwo, 0);
24226 diff --git a/arch/x86/kernel/cpu/mcheck/p5.c b/arch/x86/kernel/cpu/mcheck/p5.c
24227 index 737b0ad..09ec66e 100644
24228 --- a/arch/x86/kernel/cpu/mcheck/p5.c
24229 +++ b/arch/x86/kernel/cpu/mcheck/p5.c
24230 @@ -12,6 +12,7 @@
24231 #include <asm/tlbflush.h>
24232 #include <asm/mce.h>
24233 #include <asm/msr.h>
24234 +#include <asm/pgtable.h>
24235
24236 /* By default disabled */
24237 int mce_p5_enabled __read_mostly;
24238 @@ -55,7 +56,9 @@ void intel_p5_mcheck_init(struct cpuinfo_x86 *c)
24239 if (!cpu_has(c, X86_FEATURE_MCE))
24240 return;
24241
24242 + pax_open_kernel();
24243 machine_check_vector = pentium_machine_check;
24244 + pax_close_kernel();
24245 /* Make sure the vector pointer is visible before we enable MCEs: */
24246 wmb();
24247
24248 diff --git a/arch/x86/kernel/cpu/mcheck/winchip.c b/arch/x86/kernel/cpu/mcheck/winchip.c
24249 index 44f1382..315b292 100644
24250 --- a/arch/x86/kernel/cpu/mcheck/winchip.c
24251 +++ b/arch/x86/kernel/cpu/mcheck/winchip.c
24252 @@ -11,6 +11,7 @@
24253 #include <asm/tlbflush.h>
24254 #include <asm/mce.h>
24255 #include <asm/msr.h>
24256 +#include <asm/pgtable.h>
24257
24258 /* Machine check handler for WinChip C6: */
24259 static void winchip_machine_check(struct pt_regs *regs, long error_code)
24260 @@ -28,7 +29,9 @@ void winchip_mcheck_init(struct cpuinfo_x86 *c)
24261 {
24262 u32 lo, hi;
24263
24264 + pax_open_kernel();
24265 machine_check_vector = winchip_machine_check;
24266 + pax_close_kernel();
24267 /* Make sure the vector pointer is visible before we enable MCEs: */
24268 wmb();
24269
24270 diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
24271 index 6236a54..532026d 100644
24272 --- a/arch/x86/kernel/cpu/microcode/core.c
24273 +++ b/arch/x86/kernel/cpu/microcode/core.c
24274 @@ -460,7 +460,7 @@ mc_cpu_callback(struct notifier_block *nb, unsigned long action, void *hcpu)
24275 return NOTIFY_OK;
24276 }
24277
24278 -static struct notifier_block __refdata mc_cpu_notifier = {
24279 +static struct notifier_block mc_cpu_notifier = {
24280 .notifier_call = mc_cpu_callback,
24281 };
24282
24283 diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
24284 index 969dc17..a9c3fdd 100644
24285 --- a/arch/x86/kernel/cpu/microcode/intel.c
24286 +++ b/arch/x86/kernel/cpu/microcode/intel.c
24287 @@ -237,13 +237,13 @@ static enum ucode_state request_microcode_fw(int cpu, struct device *device,
24288
24289 static int get_ucode_user(void *to, const void *from, size_t n)
24290 {
24291 - return copy_from_user(to, from, n);
24292 + return copy_from_user(to, (const void __force_user *)from, n);
24293 }
24294
24295 static enum ucode_state
24296 request_microcode_user(int cpu, const void __user *buf, size_t size)
24297 {
24298 - return generic_load_microcode(cpu, (void *)buf, size, &get_ucode_user);
24299 + return generic_load_microcode(cpu, (__force_kernel void *)buf, size, &get_ucode_user);
24300 }
24301
24302 static void microcode_fini_cpu(int cpu)
24303 diff --git a/arch/x86/kernel/cpu/mtrr/main.c b/arch/x86/kernel/cpu/mtrr/main.c
24304 index e7ed0d8..57a2ab9 100644
24305 --- a/arch/x86/kernel/cpu/mtrr/main.c
24306 +++ b/arch/x86/kernel/cpu/mtrr/main.c
24307 @@ -72,7 +72,7 @@ static DEFINE_MUTEX(mtrr_mutex);
24308 u64 size_or_mask, size_and_mask;
24309 static bool mtrr_aps_delayed_init;
24310
24311 -static const struct mtrr_ops *mtrr_ops[X86_VENDOR_NUM];
24312 +static const struct mtrr_ops *mtrr_ops[X86_VENDOR_NUM] __read_only;
24313
24314 const struct mtrr_ops *mtrr_if;
24315
24316 diff --git a/arch/x86/kernel/cpu/mtrr/mtrr.h b/arch/x86/kernel/cpu/mtrr/mtrr.h
24317 index 951884d..4796b75 100644
24318 --- a/arch/x86/kernel/cpu/mtrr/mtrr.h
24319 +++ b/arch/x86/kernel/cpu/mtrr/mtrr.h
24320 @@ -25,7 +25,7 @@ struct mtrr_ops {
24321 int (*validate_add_page)(unsigned long base, unsigned long size,
24322 unsigned int type);
24323 int (*have_wrcomb)(void);
24324 -};
24325 +} __do_const;
24326
24327 extern int generic_get_free_region(unsigned long base, unsigned long size,
24328 int replace_reg);
24329 diff --git a/arch/x86/kernel/cpu/perf_event.c b/arch/x86/kernel/cpu/perf_event.c
24330 index 9469dfa..2b026bc 100644
24331 --- a/arch/x86/kernel/cpu/perf_event.c
24332 +++ b/arch/x86/kernel/cpu/perf_event.c
24333 @@ -1518,7 +1518,7 @@ static void __init pmu_check_apic(void)
24334
24335 }
24336
24337 -static struct attribute_group x86_pmu_format_group = {
24338 +static attribute_group_no_const x86_pmu_format_group = {
24339 .name = "format",
24340 .attrs = NULL,
24341 };
24342 @@ -1617,7 +1617,7 @@ static struct attribute *events_attr[] = {
24343 NULL,
24344 };
24345
24346 -static struct attribute_group x86_pmu_events_group = {
24347 +static attribute_group_no_const x86_pmu_events_group = {
24348 .name = "events",
24349 .attrs = events_attr,
24350 };
24351 @@ -2176,7 +2176,7 @@ valid_user_frame(const void __user *fp, unsigned long size)
24352 static unsigned long get_segment_base(unsigned int segment)
24353 {
24354 struct desc_struct *desc;
24355 - int idx = segment >> 3;
24356 + unsigned int idx = segment >> 3;
24357
24358 if ((segment & SEGMENT_TI_MASK) == SEGMENT_LDT) {
24359 struct ldt_struct *ldt;
24360 @@ -2194,7 +2194,7 @@ static unsigned long get_segment_base(unsigned int segment)
24361 if (idx > GDT_ENTRIES)
24362 return 0;
24363
24364 - desc = raw_cpu_ptr(gdt_page.gdt) + idx;
24365 + desc = get_cpu_gdt_table(smp_processor_id()) + idx;
24366 }
24367
24368 return get_desc_base(desc);
24369 @@ -2284,7 +2284,7 @@ perf_callchain_user(struct perf_callchain_entry *entry, struct pt_regs *regs)
24370 break;
24371
24372 perf_callchain_store(entry, frame.return_address);
24373 - fp = frame.next_frame;
24374 + fp = (const void __force_user *)frame.next_frame;
24375 }
24376 }
24377
24378 diff --git a/arch/x86/kernel/cpu/perf_event_amd_iommu.c b/arch/x86/kernel/cpu/perf_event_amd_iommu.c
24379 index 97242a9..cf9c30e 100644
24380 --- a/arch/x86/kernel/cpu/perf_event_amd_iommu.c
24381 +++ b/arch/x86/kernel/cpu/perf_event_amd_iommu.c
24382 @@ -402,7 +402,7 @@ static void perf_iommu_del(struct perf_event *event, int flags)
24383 static __init int _init_events_attrs(struct perf_amd_iommu *perf_iommu)
24384 {
24385 struct attribute **attrs;
24386 - struct attribute_group *attr_group;
24387 + attribute_group_no_const *attr_group;
24388 int i = 0, j;
24389
24390 while (amd_iommu_v2_event_descs[i].attr.attr.name)
24391 diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
24392 index 1b09c42..521004d 100644
24393 --- a/arch/x86/kernel/cpu/perf_event_intel.c
24394 +++ b/arch/x86/kernel/cpu/perf_event_intel.c
24395 @@ -3019,10 +3019,10 @@ __init int intel_pmu_init(void)
24396 x86_pmu.num_counters_fixed = max((int)edx.split.num_counters_fixed, 3);
24397
24398 if (boot_cpu_has(X86_FEATURE_PDCM)) {
24399 - u64 capabilities;
24400 + u64 capabilities = x86_pmu.intel_cap.capabilities;
24401
24402 - rdmsrl(MSR_IA32_PERF_CAPABILITIES, capabilities);
24403 - x86_pmu.intel_cap.capabilities = capabilities;
24404 + if (rdmsrl_safe(MSR_IA32_PERF_CAPABILITIES, &x86_pmu.intel_cap.capabilities))
24405 + x86_pmu.intel_cap.capabilities = capabilities;
24406 }
24407
24408 intel_ds_init();
24409 diff --git a/arch/x86/kernel/cpu/perf_event_intel_bts.c b/arch/x86/kernel/cpu/perf_event_intel_bts.c
24410 index 43dd672..78c0562 100644
24411 --- a/arch/x86/kernel/cpu/perf_event_intel_bts.c
24412 +++ b/arch/x86/kernel/cpu/perf_event_intel_bts.c
24413 @@ -252,7 +252,7 @@ static void bts_event_start(struct perf_event *event, int flags)
24414 __bts_event_start(event);
24415
24416 /* PMI handler: this counter is running and likely generating PMIs */
24417 - ACCESS_ONCE(bts->started) = 1;
24418 + ACCESS_ONCE_RW(bts->started) = 1;
24419 }
24420
24421 static void __bts_event_stop(struct perf_event *event)
24422 @@ -266,7 +266,7 @@ static void __bts_event_stop(struct perf_event *event)
24423 if (event->hw.state & PERF_HES_STOPPED)
24424 return;
24425
24426 - ACCESS_ONCE(event->hw.state) |= PERF_HES_STOPPED;
24427 + ACCESS_ONCE_RW(event->hw.state) |= PERF_HES_STOPPED;
24428 }
24429
24430 static void bts_event_stop(struct perf_event *event, int flags)
24431 @@ -274,7 +274,7 @@ static void bts_event_stop(struct perf_event *event, int flags)
24432 struct bts_ctx *bts = this_cpu_ptr(&bts_ctx);
24433
24434 /* PMI handler: don't restart this counter */
24435 - ACCESS_ONCE(bts->started) = 0;
24436 + ACCESS_ONCE_RW(bts->started) = 0;
24437
24438 __bts_event_stop(event);
24439
24440 diff --git a/arch/x86/kernel/cpu/perf_event_intel_cqm.c b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24441 index 377e8f8..2982f48 100644
24442 --- a/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24443 +++ b/arch/x86/kernel/cpu/perf_event_intel_cqm.c
24444 @@ -1364,7 +1364,9 @@ static int __init intel_cqm_init(void)
24445 goto out;
24446 }
24447
24448 - event_attr_intel_cqm_llc_scale.event_str = str;
24449 + pax_open_kernel();
24450 + *(const char **)&event_attr_intel_cqm_llc_scale.event_str = str;
24451 + pax_close_kernel();
24452
24453 ret = intel_cqm_setup_rmid_cache();
24454 if (ret)
24455 diff --git a/arch/x86/kernel/cpu/perf_event_intel_pt.c b/arch/x86/kernel/cpu/perf_event_intel_pt.c
24456 index 183de71..bd34d52 100644
24457 --- a/arch/x86/kernel/cpu/perf_event_intel_pt.c
24458 +++ b/arch/x86/kernel/cpu/perf_event_intel_pt.c
24459 @@ -116,16 +116,12 @@ static const struct attribute_group *pt_attr_groups[] = {
24460
24461 static int __init pt_pmu_hw_init(void)
24462 {
24463 - struct dev_ext_attribute *de_attrs;
24464 - struct attribute **attrs;
24465 - size_t size;
24466 - int ret;
24467 + static struct dev_ext_attribute de_attrs[ARRAY_SIZE(pt_caps)];
24468 + static struct attribute *attrs[ARRAY_SIZE(pt_caps)];
24469 long i;
24470
24471 - attrs = NULL;
24472 - ret = -ENODEV;
24473 if (!test_cpu_cap(&boot_cpu_data, X86_FEATURE_INTEL_PT))
24474 - goto fail;
24475 + return -ENODEV;
24476
24477 for (i = 0; i < PT_CPUID_LEAVES; i++) {
24478 cpuid_count(20, i,
24479 @@ -135,39 +131,25 @@ static int __init pt_pmu_hw_init(void)
24480 &pt_pmu.caps[CR_EDX + i*4]);
24481 }
24482
24483 - ret = -ENOMEM;
24484 - size = sizeof(struct attribute *) * (ARRAY_SIZE(pt_caps)+1);
24485 - attrs = kzalloc(size, GFP_KERNEL);
24486 - if (!attrs)
24487 - goto fail;
24488 -
24489 - size = sizeof(struct dev_ext_attribute) * (ARRAY_SIZE(pt_caps)+1);
24490 - de_attrs = kzalloc(size, GFP_KERNEL);
24491 - if (!de_attrs)
24492 - goto fail;
24493 -
24494 + pax_open_kernel();
24495 for (i = 0; i < ARRAY_SIZE(pt_caps); i++) {
24496 - struct dev_ext_attribute *de_attr = de_attrs + i;
24497 + struct dev_ext_attribute *de_attr = &de_attrs[i];
24498
24499 - de_attr->attr.attr.name = pt_caps[i].name;
24500 + *(const char **)&de_attr->attr.attr.name = pt_caps[i].name;
24501
24502 sysfs_attr_init(&de_attr->attr.attr);
24503
24504 - de_attr->attr.attr.mode = S_IRUGO;
24505 - de_attr->attr.show = pt_cap_show;
24506 - de_attr->var = (void *)i;
24507 + *(umode_t *)&de_attr->attr.attr.mode = S_IRUGO;
24508 + *(void **)&de_attr->attr.show = pt_cap_show;
24509 + *(void **)&de_attr->var = (void *)i;
24510
24511 attrs[i] = &de_attr->attr.attr;
24512 }
24513
24514 - pt_cap_group.attrs = attrs;
24515 + *(struct attribute ***)&pt_cap_group.attrs = attrs;
24516 + pax_close_kernel();
24517
24518 return 0;
24519 -
24520 -fail:
24521 - kfree(attrs);
24522 -
24523 - return ret;
24524 }
24525
24526 #define PT_CONFIG_MASK (RTIT_CTL_TSC_EN | RTIT_CTL_DISRETC)
24527 @@ -929,7 +911,7 @@ static void pt_event_start(struct perf_event *event, int mode)
24528 return;
24529 }
24530
24531 - ACCESS_ONCE(pt->handle_nmi) = 1;
24532 + ACCESS_ONCE_RW(pt->handle_nmi) = 1;
24533 event->hw.state = 0;
24534
24535 pt_config_buffer(buf->cur->table, buf->cur_idx,
24536 @@ -946,7 +928,7 @@ static void pt_event_stop(struct perf_event *event, int mode)
24537 * Protect against the PMI racing with disabling wrmsr,
24538 * see comment in intel_pt_interrupt().
24539 */
24540 - ACCESS_ONCE(pt->handle_nmi) = 0;
24541 + ACCESS_ONCE_RW(pt->handle_nmi) = 0;
24542 pt_config_start(false);
24543
24544 if (event->hw.state == PERF_HES_STOPPED)
24545 diff --git a/arch/x86/kernel/cpu/perf_event_intel_rapl.c b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24546 index 5cbd4e6..ee9388a 100644
24547 --- a/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24548 +++ b/arch/x86/kernel/cpu/perf_event_intel_rapl.c
24549 @@ -486,7 +486,7 @@ static struct attribute *rapl_events_hsw_attr[] = {
24550 NULL,
24551 };
24552
24553 -static struct attribute_group rapl_pmu_events_group = {
24554 +static attribute_group_no_const rapl_pmu_events_group __read_only = {
24555 .name = "events",
24556 .attrs = NULL, /* patched at runtime */
24557 };
24558 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.c b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24559 index 21b5e38..84f1f82 100644
24560 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24561 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.c
24562 @@ -731,7 +731,7 @@ static void __init uncore_types_exit(struct intel_uncore_type **types)
24563 static int __init uncore_type_init(struct intel_uncore_type *type)
24564 {
24565 struct intel_uncore_pmu *pmus;
24566 - struct attribute_group *attr_group;
24567 + attribute_group_no_const *attr_group;
24568 struct attribute **attrs;
24569 int i, j;
24570
24571 diff --git a/arch/x86/kernel/cpu/perf_event_intel_uncore.h b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24572 index 0f77f0a..d3c6b7d 100644
24573 --- a/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24574 +++ b/arch/x86/kernel/cpu/perf_event_intel_uncore.h
24575 @@ -115,7 +115,7 @@ struct intel_uncore_box {
24576 struct uncore_event_desc {
24577 struct kobj_attribute attr;
24578 const char *config;
24579 -};
24580 +} __do_const;
24581
24582 ssize_t uncore_event_show(struct kobject *kobj,
24583 struct kobj_attribute *attr, char *buf);
24584 diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c
24585 index 83741a7..bd3507d 100644
24586 --- a/arch/x86/kernel/cpuid.c
24587 +++ b/arch/x86/kernel/cpuid.c
24588 @@ -170,7 +170,7 @@ static int cpuid_class_cpu_callback(struct notifier_block *nfb,
24589 return notifier_from_errno(err);
24590 }
24591
24592 -static struct notifier_block __refdata cpuid_class_cpu_notifier =
24593 +static struct notifier_block cpuid_class_cpu_notifier =
24594 {
24595 .notifier_call = cpuid_class_cpu_callback,
24596 };
24597 diff --git a/arch/x86/kernel/crash_dump_64.c b/arch/x86/kernel/crash_dump_64.c
24598 index afa64ad..dce67dd 100644
24599 --- a/arch/x86/kernel/crash_dump_64.c
24600 +++ b/arch/x86/kernel/crash_dump_64.c
24601 @@ -36,7 +36,7 @@ ssize_t copy_oldmem_page(unsigned long pfn, char *buf,
24602 return -ENOMEM;
24603
24604 if (userbuf) {
24605 - if (copy_to_user(buf, vaddr + offset, csize)) {
24606 + if (copy_to_user((char __force_user *)buf, vaddr + offset, csize)) {
24607 iounmap(vaddr);
24608 return -EFAULT;
24609 }
24610 diff --git a/arch/x86/kernel/doublefault.c b/arch/x86/kernel/doublefault.c
24611 index f6dfd93..892ade4 100644
24612 --- a/arch/x86/kernel/doublefault.c
24613 +++ b/arch/x86/kernel/doublefault.c
24614 @@ -12,7 +12,7 @@
24615
24616 #define DOUBLEFAULT_STACKSIZE (1024)
24617 static unsigned long doublefault_stack[DOUBLEFAULT_STACKSIZE];
24618 -#define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE)
24619 +#define STACK_START (unsigned long)(doublefault_stack+DOUBLEFAULT_STACKSIZE-2)
24620
24621 #define ptr_ok(x) ((x) > PAGE_OFFSET && (x) < PAGE_OFFSET + MAXMEM)
24622
24623 @@ -22,7 +22,7 @@ static void doublefault_fn(void)
24624 unsigned long gdt, tss;
24625
24626 native_store_gdt(&gdt_desc);
24627 - gdt = gdt_desc.address;
24628 + gdt = (unsigned long)gdt_desc.address;
24629
24630 printk(KERN_EMERG "PANIC: double fault, gdt at %08lx [%d bytes]\n", gdt, gdt_desc.size);
24631
24632 @@ -59,10 +59,10 @@ struct tss_struct doublefault_tss __cacheline_aligned = {
24633 /* 0x2 bit is always set */
24634 .flags = X86_EFLAGS_SF | 0x2,
24635 .sp = STACK_START,
24636 - .es = __USER_DS,
24637 + .es = __KERNEL_DS,
24638 .cs = __KERNEL_CS,
24639 .ss = __KERNEL_DS,
24640 - .ds = __USER_DS,
24641 + .ds = __KERNEL_DS,
24642 .fs = __KERNEL_PERCPU,
24643
24644 .__cr3 = __pa_nodebug(swapper_pg_dir),
24645 diff --git a/arch/x86/kernel/dumpstack.c b/arch/x86/kernel/dumpstack.c
24646 index 9c30acf..8cf2411 100644
24647 --- a/arch/x86/kernel/dumpstack.c
24648 +++ b/arch/x86/kernel/dumpstack.c
24649 @@ -2,6 +2,9 @@
24650 * Copyright (C) 1991, 1992 Linus Torvalds
24651 * Copyright (C) 2000, 2001, 2002 Andi Kleen, SuSE Labs
24652 */
24653 +#ifdef CONFIG_GRKERNSEC_HIDESYM
24654 +#define __INCLUDED_BY_HIDESYM 1
24655 +#endif
24656 #include <linux/kallsyms.h>
24657 #include <linux/kprobes.h>
24658 #include <linux/uaccess.h>
24659 @@ -35,23 +38,21 @@ static void printk_stack_address(unsigned long address, int reliable,
24660
24661 void printk_address(unsigned long address)
24662 {
24663 - pr_cont(" [<%p>] %pS\n", (void *)address, (void *)address);
24664 + pr_cont(" [<%p>] %pA\n", (void *)address, (void *)address);
24665 }
24666
24667 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
24668 static void
24669 print_ftrace_graph_addr(unsigned long addr, void *data,
24670 const struct stacktrace_ops *ops,
24671 - struct thread_info *tinfo, int *graph)
24672 + struct task_struct *task, int *graph)
24673 {
24674 - struct task_struct *task;
24675 unsigned long ret_addr;
24676 int index;
24677
24678 if (addr != (unsigned long)return_to_handler)
24679 return;
24680
24681 - task = tinfo->task;
24682 index = task->curr_ret_stack;
24683
24684 if (!task->ret_stack || index < *graph)
24685 @@ -68,7 +69,7 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
24686 static inline void
24687 print_ftrace_graph_addr(unsigned long addr, void *data,
24688 const struct stacktrace_ops *ops,
24689 - struct thread_info *tinfo, int *graph)
24690 + struct task_struct *task, int *graph)
24691 { }
24692 #endif
24693
24694 @@ -79,10 +80,8 @@ print_ftrace_graph_addr(unsigned long addr, void *data,
24695 * severe exception (double fault, nmi, stack fault, debug, mce) hardware stack
24696 */
24697
24698 -static inline int valid_stack_ptr(struct thread_info *tinfo,
24699 - void *p, unsigned int size, void *end)
24700 +static inline int valid_stack_ptr(void *t, void *p, unsigned int size, void *end)
24701 {
24702 - void *t = tinfo;
24703 if (end) {
24704 if (p < end && p >= (end-THREAD_SIZE))
24705 return 1;
24706 @@ -93,14 +92,14 @@ static inline int valid_stack_ptr(struct thread_info *tinfo,
24707 }
24708
24709 unsigned long
24710 -print_context_stack(struct thread_info *tinfo,
24711 +print_context_stack(struct task_struct *task, void *stack_start,
24712 unsigned long *stack, unsigned long bp,
24713 const struct stacktrace_ops *ops, void *data,
24714 unsigned long *end, int *graph)
24715 {
24716 struct stack_frame *frame = (struct stack_frame *)bp;
24717
24718 - while (valid_stack_ptr(tinfo, stack, sizeof(*stack), end)) {
24719 + while (valid_stack_ptr(stack_start, stack, sizeof(*stack), end)) {
24720 unsigned long addr;
24721
24722 addr = *stack;
24723 @@ -112,7 +111,7 @@ print_context_stack(struct thread_info *tinfo,
24724 } else {
24725 ops->address(data, addr, 0);
24726 }
24727 - print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
24728 + print_ftrace_graph_addr(addr, data, ops, task, graph);
24729 }
24730 stack++;
24731 }
24732 @@ -121,7 +120,7 @@ print_context_stack(struct thread_info *tinfo,
24733 EXPORT_SYMBOL_GPL(print_context_stack);
24734
24735 unsigned long
24736 -print_context_stack_bp(struct thread_info *tinfo,
24737 +print_context_stack_bp(struct task_struct *task, void *stack_start,
24738 unsigned long *stack, unsigned long bp,
24739 const struct stacktrace_ops *ops, void *data,
24740 unsigned long *end, int *graph)
24741 @@ -129,7 +128,7 @@ print_context_stack_bp(struct thread_info *tinfo,
24742 struct stack_frame *frame = (struct stack_frame *)bp;
24743 unsigned long *ret_addr = &frame->return_address;
24744
24745 - while (valid_stack_ptr(tinfo, ret_addr, sizeof(*ret_addr), end)) {
24746 + while (valid_stack_ptr(stack_start, ret_addr, sizeof(*ret_addr), end)) {
24747 unsigned long addr = *ret_addr;
24748
24749 if (!__kernel_text_address(addr))
24750 @@ -138,7 +137,7 @@ print_context_stack_bp(struct thread_info *tinfo,
24751 ops->address(data, addr, 1);
24752 frame = frame->next_frame;
24753 ret_addr = &frame->return_address;
24754 - print_ftrace_graph_addr(addr, data, ops, tinfo, graph);
24755 + print_ftrace_graph_addr(addr, data, ops, task, graph);
24756 }
24757
24758 return (unsigned long)frame;
24759 @@ -226,6 +225,8 @@ unsigned long oops_begin(void)
24760 EXPORT_SYMBOL_GPL(oops_begin);
24761 NOKPROBE_SYMBOL(oops_begin);
24762
24763 +extern void gr_handle_kernel_exploit(void);
24764 +
24765 void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
24766 {
24767 if (regs && kexec_should_crash(current))
24768 @@ -247,7 +248,10 @@ void oops_end(unsigned long flags, struct pt_regs *regs, int signr)
24769 panic("Fatal exception in interrupt");
24770 if (panic_on_oops)
24771 panic("Fatal exception");
24772 - do_exit(signr);
24773 +
24774 + gr_handle_kernel_exploit();
24775 +
24776 + do_group_exit(signr);
24777 }
24778 NOKPROBE_SYMBOL(oops_end);
24779
24780 diff --git a/arch/x86/kernel/dumpstack_32.c b/arch/x86/kernel/dumpstack_32.c
24781 index 464ffd6..01f2cda 100644
24782 --- a/arch/x86/kernel/dumpstack_32.c
24783 +++ b/arch/x86/kernel/dumpstack_32.c
24784 @@ -61,15 +61,14 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24785 bp = stack_frame(task, regs);
24786
24787 for (;;) {
24788 - struct thread_info *context;
24789 + void *stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
24790 void *end_stack;
24791
24792 end_stack = is_hardirq_stack(stack, cpu);
24793 if (!end_stack)
24794 end_stack = is_softirq_stack(stack, cpu);
24795
24796 - context = task_thread_info(task);
24797 - bp = ops->walk_stack(context, stack, bp, ops, data,
24798 + bp = ops->walk_stack(task, stack_start, stack, bp, ops, data,
24799 end_stack, &graph);
24800
24801 /* Stop if not on irq stack */
24802 @@ -137,16 +136,17 @@ void show_regs(struct pt_regs *regs)
24803 unsigned int code_len = code_bytes;
24804 unsigned char c;
24805 u8 *ip;
24806 + unsigned long cs_base = get_desc_base(&get_cpu_gdt_table(0)[(0xffff & regs->cs) >> 3]);
24807
24808 pr_emerg("Stack:\n");
24809 show_stack_log_lvl(NULL, regs, &regs->sp, 0, KERN_EMERG);
24810
24811 pr_emerg("Code:");
24812
24813 - ip = (u8 *)regs->ip - code_prologue;
24814 + ip = (u8 *)regs->ip - code_prologue + cs_base;
24815 if (ip < (u8 *)PAGE_OFFSET || probe_kernel_address(ip, c)) {
24816 /* try starting at IP */
24817 - ip = (u8 *)regs->ip;
24818 + ip = (u8 *)regs->ip + cs_base;
24819 code_len = code_len - code_prologue + 1;
24820 }
24821 for (i = 0; i < code_len; i++, ip++) {
24822 @@ -155,7 +155,7 @@ void show_regs(struct pt_regs *regs)
24823 pr_cont(" Bad EIP value.");
24824 break;
24825 }
24826 - if (ip == (u8 *)regs->ip)
24827 + if (ip == (u8 *)regs->ip + cs_base)
24828 pr_cont(" <%02x>", c);
24829 else
24830 pr_cont(" %02x", c);
24831 @@ -168,6 +168,7 @@ int is_valid_bugaddr(unsigned long ip)
24832 {
24833 unsigned short ud2;
24834
24835 + ip = ktla_ktva(ip);
24836 if (ip < PAGE_OFFSET)
24837 return 0;
24838 if (probe_kernel_address((unsigned short *)ip, ud2))
24839 @@ -175,3 +176,15 @@ int is_valid_bugaddr(unsigned long ip)
24840
24841 return ud2 == 0x0b0f;
24842 }
24843 +
24844 +#if defined(CONFIG_PAX_MEMORY_STACKLEAK) || defined(CONFIG_PAX_USERCOPY)
24845 +void __used pax_check_alloca(unsigned long size)
24846 +{
24847 + unsigned long sp = (unsigned long)&sp, stack_left;
24848 +
24849 + /* all kernel stacks are of the same size */
24850 + stack_left = sp & (THREAD_SIZE - 1);
24851 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24852 +}
24853 +EXPORT_SYMBOL(pax_check_alloca);
24854 +#endif
24855 diff --git a/arch/x86/kernel/dumpstack_64.c b/arch/x86/kernel/dumpstack_64.c
24856 index 5f1c626..1cba97e 100644
24857 --- a/arch/x86/kernel/dumpstack_64.c
24858 +++ b/arch/x86/kernel/dumpstack_64.c
24859 @@ -153,12 +153,12 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24860 const struct stacktrace_ops *ops, void *data)
24861 {
24862 const unsigned cpu = get_cpu();
24863 - struct thread_info *tinfo;
24864 unsigned long *irq_stack = (unsigned long *)per_cpu(irq_stack_ptr, cpu);
24865 unsigned long dummy;
24866 unsigned used = 0;
24867 int graph = 0;
24868 int done = 0;
24869 + void *stack_start;
24870
24871 if (!task)
24872 task = current;
24873 @@ -179,7 +179,6 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24874 * current stack address. If the stacks consist of nested
24875 * exceptions
24876 */
24877 - tinfo = task_thread_info(task);
24878 while (!done) {
24879 unsigned long *stack_end;
24880 enum stack_type stype;
24881 @@ -202,7 +201,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24882 if (ops->stack(data, id) < 0)
24883 break;
24884
24885 - bp = ops->walk_stack(tinfo, stack, bp, ops,
24886 + bp = ops->walk_stack(task, stack_end - EXCEPTION_STKSZ, stack, bp, ops,
24887 data, stack_end, &graph);
24888 ops->stack(data, "<EOE>");
24889 /*
24890 @@ -210,6 +209,8 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24891 * second-to-last pointer (index -2 to end) in the
24892 * exception stack:
24893 */
24894 + if ((u16)stack_end[-1] != __KERNEL_DS)
24895 + goto out;
24896 stack = (unsigned long *) stack_end[-2];
24897 done = 0;
24898 break;
24899 @@ -218,7 +219,7 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24900
24901 if (ops->stack(data, "IRQ") < 0)
24902 break;
24903 - bp = ops->walk_stack(tinfo, stack, bp,
24904 + bp = ops->walk_stack(task, irq_stack, stack, bp,
24905 ops, data, stack_end, &graph);
24906 /*
24907 * We link to the next stack (which would be
24908 @@ -240,7 +241,9 @@ void dump_trace(struct task_struct *task, struct pt_regs *regs,
24909 /*
24910 * This handles the process stack:
24911 */
24912 - bp = ops->walk_stack(tinfo, stack, bp, ops, data, NULL, &graph);
24913 + stack_start = (void *)((unsigned long)stack & ~(THREAD_SIZE-1));
24914 + bp = ops->walk_stack(task, stack_start, stack, bp, ops, data, NULL, &graph);
24915 +out:
24916 put_cpu();
24917 }
24918 EXPORT_SYMBOL(dump_trace);
24919 @@ -347,8 +350,55 @@ int is_valid_bugaddr(unsigned long ip)
24920 {
24921 unsigned short ud2;
24922
24923 - if (__copy_from_user(&ud2, (const void __user *) ip, sizeof(ud2)))
24924 + if (probe_kernel_address((unsigned short *)ip, ud2))
24925 return 0;
24926
24927 return ud2 == 0x0b0f;
24928 }
24929 +
24930 +#if defined(CONFIG_PAX_MEMORY_STACKLEAK) || defined(CONFIG_PAX_USERCOPY)
24931 +void __used pax_check_alloca(unsigned long size)
24932 +{
24933 + unsigned long sp = (unsigned long)&sp, stack_start, stack_end;
24934 + unsigned cpu, used;
24935 + char *id;
24936 +
24937 + /* check the process stack first */
24938 + stack_start = (unsigned long)task_stack_page(current);
24939 + stack_end = stack_start + THREAD_SIZE;
24940 + if (likely(stack_start <= sp && sp < stack_end)) {
24941 + unsigned long stack_left = sp & (THREAD_SIZE - 1);
24942 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24943 + return;
24944 + }
24945 +
24946 + cpu = get_cpu();
24947 +
24948 + /* check the irq stacks */
24949 + stack_end = (unsigned long)per_cpu(irq_stack_ptr, cpu);
24950 + stack_start = stack_end - IRQ_STACK_SIZE;
24951 + if (stack_start <= sp && sp < stack_end) {
24952 + unsigned long stack_left = sp & (IRQ_STACK_SIZE - 1);
24953 + put_cpu();
24954 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24955 + return;
24956 + }
24957 +
24958 + /* check the exception stacks */
24959 + used = 0;
24960 + stack_end = (unsigned long)in_exception_stack(cpu, sp, &used, &id);
24961 + stack_start = stack_end - EXCEPTION_STKSZ;
24962 + if (stack_end && stack_start <= sp && sp < stack_end) {
24963 + unsigned long stack_left = sp & (EXCEPTION_STKSZ - 1);
24964 + put_cpu();
24965 + BUG_ON(stack_left < 256 || size >= stack_left - 256);
24966 + return;
24967 + }
24968 +
24969 + put_cpu();
24970 +
24971 + /* unknown stack */
24972 + BUG();
24973 +}
24974 +EXPORT_SYMBOL(pax_check_alloca);
24975 +#endif
24976 diff --git a/arch/x86/kernel/e820.c b/arch/x86/kernel/e820.c
24977 index a102564..d1f0b73 100644
24978 --- a/arch/x86/kernel/e820.c
24979 +++ b/arch/x86/kernel/e820.c
24980 @@ -803,8 +803,8 @@ unsigned long __init e820_end_of_low_ram_pfn(void)
24981
24982 static void early_panic(char *msg)
24983 {
24984 - early_printk(msg);
24985 - panic(msg);
24986 + early_printk("%s", msg);
24987 + panic("%s", msg);
24988 }
24989
24990 static int userdef __initdata;
24991 diff --git a/arch/x86/kernel/early_printk.c b/arch/x86/kernel/early_printk.c
24992 index eec40f5..4fee808 100644
24993 --- a/arch/x86/kernel/early_printk.c
24994 +++ b/arch/x86/kernel/early_printk.c
24995 @@ -7,6 +7,7 @@
24996 #include <linux/pci_regs.h>
24997 #include <linux/pci_ids.h>
24998 #include <linux/errno.h>
24999 +#include <linux/sched.h>
25000 #include <asm/io.h>
25001 #include <asm/processor.h>
25002 #include <asm/fcntl.h>
25003 diff --git a/arch/x86/kernel/espfix_64.c b/arch/x86/kernel/espfix_64.c
25004 index ce95676..af5c012 100644
25005 --- a/arch/x86/kernel/espfix_64.c
25006 +++ b/arch/x86/kernel/espfix_64.c
25007 @@ -41,6 +41,7 @@
25008 #include <asm/pgalloc.h>
25009 #include <asm/setup.h>
25010 #include <asm/espfix.h>
25011 +#include <asm/bug.h>
25012
25013 /*
25014 * Note: we only need 6*8 = 48 bytes for the espfix stack, but round
25015 @@ -70,8 +71,10 @@ static DEFINE_MUTEX(espfix_init_mutex);
25016 #define ESPFIX_MAX_PAGES DIV_ROUND_UP(CONFIG_NR_CPUS, ESPFIX_STACKS_PER_PAGE)
25017 static void *espfix_pages[ESPFIX_MAX_PAGES];
25018
25019 -static __page_aligned_bss pud_t espfix_pud_page[PTRS_PER_PUD]
25020 - __aligned(PAGE_SIZE);
25021 +static __page_aligned_rodata pud_t espfix_pud_page[PTRS_PER_PUD];
25022 +static __page_aligned_rodata pmd_t espfix_pmd_page[PTRS_PER_PMD];
25023 +static __page_aligned_rodata pte_t espfix_pte_page[PTRS_PER_PTE];
25024 +static __page_aligned_rodata char espfix_stack_page[ESPFIX_MAX_PAGES][PAGE_SIZE];
25025
25026 static unsigned int page_random, slot_random;
25027
25028 @@ -122,10 +125,19 @@ static void init_espfix_random(void)
25029 void __init init_espfix_bsp(void)
25030 {
25031 pgd_t *pgd_p;
25032 + pud_t *pud_p;
25033 + unsigned long index = pgd_index(ESPFIX_BASE_ADDR);
25034
25035 /* Install the espfix pud into the kernel page directory */
25036 - pgd_p = &init_level4_pgt[pgd_index(ESPFIX_BASE_ADDR)];
25037 - pgd_populate(&init_mm, pgd_p, (pud_t *)espfix_pud_page);
25038 + pgd_p = &init_level4_pgt[index];
25039 + pud_p = espfix_pud_page;
25040 + paravirt_alloc_pud(&init_mm, __pa(pud_p) >> PAGE_SHIFT);
25041 + set_pgd(pgd_p, __pgd(PGTABLE_PROT | __pa(pud_p)));
25042 +
25043 +#ifdef CONFIG_PAX_PER_CPU_PGD
25044 + clone_pgd_range(get_cpu_pgd(0, kernel) + index, swapper_pg_dir + index, 1);
25045 + clone_pgd_range(get_cpu_pgd(0, user) + index, swapper_pg_dir + index, 1);
25046 +#endif
25047
25048 /* Randomize the locations */
25049 init_espfix_random();
25050 @@ -170,35 +182,39 @@ void init_espfix_ap(int cpu)
25051 pud_p = &espfix_pud_page[pud_index(addr)];
25052 pud = *pud_p;
25053 if (!pud_present(pud)) {
25054 - struct page *page = alloc_pages_node(node, PGALLOC_GFP, 0);
25055 -
25056 - pmd_p = (pmd_t *)page_address(page);
25057 + if (cpu)
25058 + pmd_p = page_address(alloc_pages_node(node, PGALLOC_GFP, 0));
25059 + else
25060 + pmd_p = espfix_pmd_page;
25061 pud = __pud(__pa(pmd_p) | (PGTABLE_PROT & ptemask));
25062 paravirt_alloc_pmd(&init_mm, __pa(pmd_p) >> PAGE_SHIFT);
25063 for (n = 0; n < ESPFIX_PUD_CLONES; n++)
25064 set_pud(&pud_p[n], pud);
25065 - }
25066 + } else
25067 + BUG_ON(!cpu);
25068
25069 pmd_p = pmd_offset(&pud, addr);
25070 pmd = *pmd_p;
25071 if (!pmd_present(pmd)) {
25072 - struct page *page = alloc_pages_node(node, PGALLOC_GFP, 0);
25073 -
25074 - pte_p = (pte_t *)page_address(page);
25075 + if (cpu)
25076 + pte_p = page_address(alloc_pages_node(node, PGALLOC_GFP, 0));
25077 + else
25078 + pte_p = espfix_pte_page;
25079 pmd = __pmd(__pa(pte_p) | (PGTABLE_PROT & ptemask));
25080 paravirt_alloc_pte(&init_mm, __pa(pte_p) >> PAGE_SHIFT);
25081 for (n = 0; n < ESPFIX_PMD_CLONES; n++)
25082 set_pmd(&pmd_p[n], pmd);
25083 - }
25084 + } else
25085 + BUG_ON(!cpu);
25086
25087 pte_p = pte_offset_kernel(&pmd, addr);
25088 - stack_page = page_address(alloc_pages_node(node, GFP_KERNEL, 0));
25089 + stack_page = espfix_stack_page[page];
25090 pte = __pte(__pa(stack_page) | (__PAGE_KERNEL_RO & ptemask));
25091 for (n = 0; n < ESPFIX_PTE_CLONES; n++)
25092 set_pte(&pte_p[n*PTE_STRIDE], pte);
25093
25094 /* Job is done for this CPU and any CPU which shares this page */
25095 - ACCESS_ONCE(espfix_pages[page]) = stack_page;
25096 + ACCESS_ONCE_RW(espfix_pages[page]) = stack_page;
25097
25098 unlock_done:
25099 mutex_unlock(&espfix_init_mutex);
25100 diff --git a/arch/x86/kernel/fpu/core.c b/arch/x86/kernel/fpu/core.c
25101 index d25097c..e2df353 100644
25102 --- a/arch/x86/kernel/fpu/core.c
25103 +++ b/arch/x86/kernel/fpu/core.c
25104 @@ -127,7 +127,7 @@ void __kernel_fpu_end(void)
25105 struct fpu *fpu = &current->thread.fpu;
25106
25107 if (fpu->fpregs_active)
25108 - copy_kernel_to_fpregs(&fpu->state);
25109 + copy_kernel_to_fpregs(fpu->state);
25110 else
25111 __fpregs_deactivate_hw();
25112
25113 @@ -238,7 +238,7 @@ static void fpu_copy(struct fpu *dst_fpu, struct fpu *src_fpu)
25114 * leak into the child task:
25115 */
25116 if (use_eager_fpu())
25117 - memset(&dst_fpu->state.xsave, 0, xstate_size);
25118 + memset(&dst_fpu->state->xsave, 0, xstate_size);
25119
25120 /*
25121 * Save current FPU registers directly into the child
25122 @@ -258,7 +258,7 @@ static void fpu_copy(struct fpu *dst_fpu, struct fpu *src_fpu)
25123 */
25124 preempt_disable();
25125 if (!copy_fpregs_to_fpstate(dst_fpu)) {
25126 - memcpy(&src_fpu->state, &dst_fpu->state, xstate_size);
25127 + memcpy(src_fpu->state, dst_fpu->state, xstate_size);
25128 fpregs_deactivate(src_fpu);
25129 }
25130 preempt_enable();
25131 @@ -285,7 +285,7 @@ void fpu__activate_curr(struct fpu *fpu)
25132 WARN_ON_FPU(fpu != &current->thread.fpu);
25133
25134 if (!fpu->fpstate_active) {
25135 - fpstate_init(&fpu->state);
25136 + fpstate_init(fpu->state);
25137
25138 /* Safe to do for the current task: */
25139 fpu->fpstate_active = 1;
25140 @@ -311,7 +311,7 @@ void fpu__activate_fpstate_read(struct fpu *fpu)
25141 fpu__save(fpu);
25142 } else {
25143 if (!fpu->fpstate_active) {
25144 - fpstate_init(&fpu->state);
25145 + fpstate_init(fpu->state);
25146
25147 /* Safe to do for current and for stopped child tasks: */
25148 fpu->fpstate_active = 1;
25149 @@ -344,7 +344,7 @@ void fpu__activate_fpstate_write(struct fpu *fpu)
25150 /* Invalidate any lazy state: */
25151 fpu->last_cpu = -1;
25152 } else {
25153 - fpstate_init(&fpu->state);
25154 + fpstate_init(fpu->state);
25155
25156 /* Safe to do for stopped child tasks: */
25157 fpu->fpstate_active = 1;
25158 @@ -368,7 +368,7 @@ void fpu__restore(struct fpu *fpu)
25159 /* Avoid __kernel_fpu_begin() right after fpregs_activate() */
25160 kernel_fpu_disable();
25161 fpregs_activate(fpu);
25162 - copy_kernel_to_fpregs(&fpu->state);
25163 + copy_kernel_to_fpregs(fpu->state);
25164 fpu->counter++;
25165 kernel_fpu_enable();
25166 }
25167 @@ -442,25 +442,25 @@ void fpu__clear(struct fpu *fpu)
25168 static inline unsigned short get_fpu_cwd(struct fpu *fpu)
25169 {
25170 if (cpu_has_fxsr) {
25171 - return fpu->state.fxsave.cwd;
25172 + return fpu->state->fxsave.cwd;
25173 } else {
25174 - return (unsigned short)fpu->state.fsave.cwd;
25175 + return (unsigned short)fpu->state->fsave.cwd;
25176 }
25177 }
25178
25179 static inline unsigned short get_fpu_swd(struct fpu *fpu)
25180 {
25181 if (cpu_has_fxsr) {
25182 - return fpu->state.fxsave.swd;
25183 + return fpu->state->fxsave.swd;
25184 } else {
25185 - return (unsigned short)fpu->state.fsave.swd;
25186 + return (unsigned short)fpu->state->fsave.swd;
25187 }
25188 }
25189
25190 static inline unsigned short get_fpu_mxcsr(struct fpu *fpu)
25191 {
25192 if (cpu_has_xmm) {
25193 - return fpu->state.fxsave.mxcsr;
25194 + return fpu->state->fxsave.mxcsr;
25195 } else {
25196 return MXCSR_DEFAULT;
25197 }
25198 diff --git a/arch/x86/kernel/fpu/init.c b/arch/x86/kernel/fpu/init.c
25199 index d14e9ac..13442f0 100644
25200 --- a/arch/x86/kernel/fpu/init.c
25201 +++ b/arch/x86/kernel/fpu/init.c
25202 @@ -42,7 +42,7 @@ static void fpu__init_cpu_generic(void)
25203 /* Flush out any pending x87 state: */
25204 #ifdef CONFIG_MATH_EMULATION
25205 if (!cpu_has_fpu)
25206 - fpstate_init_soft(&current->thread.fpu.state.soft);
25207 + fpstate_init_soft(&current->thread.fpu.state->soft);
25208 else
25209 #endif
25210 asm volatile ("fninit");
25211 @@ -143,42 +143,7 @@ static void __init fpu__init_system_generic(void)
25212 unsigned int xstate_size;
25213 EXPORT_SYMBOL_GPL(xstate_size);
25214
25215 -/* Enforce that 'MEMBER' is the last field of 'TYPE': */
25216 -#define CHECK_MEMBER_AT_END_OF(TYPE, MEMBER) \
25217 - BUILD_BUG_ON(sizeof(TYPE) != offsetofend(TYPE, MEMBER))
25218 -
25219 -/*
25220 - * We append the 'struct fpu' to the task_struct:
25221 - */
25222 -static void __init fpu__init_task_struct_size(void)
25223 -{
25224 - int task_size = sizeof(struct task_struct);
25225 -
25226 - /*
25227 - * Subtract off the static size of the register state.
25228 - * It potentially has a bunch of padding.
25229 - */
25230 - task_size -= sizeof(((struct task_struct *)0)->thread.fpu.state);
25231 -
25232 - /*
25233 - * Add back the dynamically-calculated register state
25234 - * size.
25235 - */
25236 - task_size += xstate_size;
25237 -
25238 - /*
25239 - * We dynamically size 'struct fpu', so we require that
25240 - * it be at the end of 'thread_struct' and that
25241 - * 'thread_struct' be at the end of 'task_struct'. If
25242 - * you hit a compile error here, check the structure to
25243 - * see if something got added to the end.
25244 - */
25245 - CHECK_MEMBER_AT_END_OF(struct fpu, state);
25246 - CHECK_MEMBER_AT_END_OF(struct thread_struct, fpu);
25247 - CHECK_MEMBER_AT_END_OF(struct task_struct, thread);
25248 -
25249 - arch_task_struct_size = task_size;
25250 -}
25251 +union fpregs_state init_fpregs_state;
25252
25253 /*
25254 * Set up the xstate_size based on the legacy FPU context size.
25255 @@ -331,7 +296,6 @@ void __init fpu__init_system(struct cpuinfo_x86 *c)
25256 fpu__init_system_generic();
25257 fpu__init_system_xstate_size_legacy();
25258 fpu__init_system_xstate();
25259 - fpu__init_task_struct_size();
25260
25261 fpu__init_system_ctx_switch();
25262 }
25263 diff --git a/arch/x86/kernel/fpu/regset.c b/arch/x86/kernel/fpu/regset.c
25264 index dc60810..6c8a1fa 100644
25265 --- a/arch/x86/kernel/fpu/regset.c
25266 +++ b/arch/x86/kernel/fpu/regset.c
25267 @@ -37,7 +37,7 @@ int xfpregs_get(struct task_struct *target, const struct user_regset *regset,
25268 fpstate_sanitize_xstate(fpu);
25269
25270 return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
25271 - &fpu->state.fxsave, 0, -1);
25272 + &fpu->state->fxsave, 0, -1);
25273 }
25274
25275 int xfpregs_set(struct task_struct *target, const struct user_regset *regset,
25276 @@ -54,19 +54,19 @@ int xfpregs_set(struct task_struct *target, const struct user_regset *regset,
25277 fpstate_sanitize_xstate(fpu);
25278
25279 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
25280 - &fpu->state.fxsave, 0, -1);
25281 + &fpu->state->fxsave, 0, -1);
25282
25283 /*
25284 * mxcsr reserved bits must be masked to zero for security reasons.
25285 */
25286 - fpu->state.fxsave.mxcsr &= mxcsr_feature_mask;
25287 + fpu->state->fxsave.mxcsr &= mxcsr_feature_mask;
25288
25289 /*
25290 * update the header bits in the xsave header, indicating the
25291 * presence of FP and SSE state.
25292 */
25293 if (cpu_has_xsave)
25294 - fpu->state.xsave.header.xfeatures |= XSTATE_FPSSE;
25295 + fpu->state->xsave.header.xfeatures |= XSTATE_FPSSE;
25296
25297 return ret;
25298 }
25299 @@ -84,7 +84,7 @@ int xstateregs_get(struct task_struct *target, const struct user_regset *regset,
25300
25301 fpu__activate_fpstate_read(fpu);
25302
25303 - xsave = &fpu->state.xsave;
25304 + xsave = &fpu->state->xsave;
25305
25306 /*
25307 * Copy the 48bytes defined by the software first into the xstate
25308 @@ -113,7 +113,7 @@ int xstateregs_set(struct task_struct *target, const struct user_regset *regset,
25309
25310 fpu__activate_fpstate_write(fpu);
25311
25312 - xsave = &fpu->state.xsave;
25313 + xsave = &fpu->state->xsave;
25314
25315 ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf, xsave, 0, -1);
25316 /*
25317 @@ -204,7 +204,7 @@ static inline u32 twd_fxsr_to_i387(struct fxregs_state *fxsave)
25318 void
25319 convert_from_fxsr(struct user_i387_ia32_struct *env, struct task_struct *tsk)
25320 {
25321 - struct fxregs_state *fxsave = &tsk->thread.fpu.state.fxsave;
25322 + struct fxregs_state *fxsave = &tsk->thread.fpu.state->fxsave;
25323 struct _fpreg *to = (struct _fpreg *) &env->st_space[0];
25324 struct _fpxreg *from = (struct _fpxreg *) &fxsave->st_space[0];
25325 int i;
25326 @@ -242,7 +242,7 @@ void convert_to_fxsr(struct task_struct *tsk,
25327 const struct user_i387_ia32_struct *env)
25328
25329 {
25330 - struct fxregs_state *fxsave = &tsk->thread.fpu.state.fxsave;
25331 + struct fxregs_state *fxsave = &tsk->thread.fpu.state->fxsave;
25332 struct _fpreg *from = (struct _fpreg *) &env->st_space[0];
25333 struct _fpxreg *to = (struct _fpxreg *) &fxsave->st_space[0];
25334 int i;
25335 @@ -280,7 +280,7 @@ int fpregs_get(struct task_struct *target, const struct user_regset *regset,
25336
25337 if (!cpu_has_fxsr)
25338 return user_regset_copyout(&pos, &count, &kbuf, &ubuf,
25339 - &fpu->state.fsave, 0,
25340 + &fpu->state->fsave, 0,
25341 -1);
25342
25343 fpstate_sanitize_xstate(fpu);
25344 @@ -311,7 +311,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
25345
25346 if (!cpu_has_fxsr)
25347 return user_regset_copyin(&pos, &count, &kbuf, &ubuf,
25348 - &fpu->state.fsave, 0,
25349 + &fpu->state->fsave, 0,
25350 -1);
25351
25352 if (pos > 0 || count < sizeof(env))
25353 @@ -326,7 +326,7 @@ int fpregs_set(struct task_struct *target, const struct user_regset *regset,
25354 * presence of FP.
25355 */
25356 if (cpu_has_xsave)
25357 - fpu->state.xsave.header.xfeatures |= XSTATE_FP;
25358 + fpu->state->xsave.header.xfeatures |= XSTATE_FP;
25359 return ret;
25360 }
25361
25362 diff --git a/arch/x86/kernel/fpu/signal.c b/arch/x86/kernel/fpu/signal.c
25363 index 50ec9af..bb871ca 100644
25364 --- a/arch/x86/kernel/fpu/signal.c
25365 +++ b/arch/x86/kernel/fpu/signal.c
25366 @@ -54,7 +54,7 @@ static inline int check_for_xstate(struct fxregs_state __user *buf,
25367 static inline int save_fsave_header(struct task_struct *tsk, void __user *buf)
25368 {
25369 if (use_fxsr()) {
25370 - struct xregs_state *xsave = &tsk->thread.fpu.state.xsave;
25371 + struct xregs_state *xsave = &tsk->thread.fpu.state->xsave;
25372 struct user_i387_ia32_struct env;
25373 struct _fpstate_ia32 __user *fp = buf;
25374
25375 @@ -83,18 +83,18 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
25376
25377 /* Setup the bytes not touched by the [f]xsave and reserved for SW. */
25378 sw_bytes = ia32_frame ? &fx_sw_reserved_ia32 : &fx_sw_reserved;
25379 - err = __copy_to_user(&x->i387.sw_reserved, sw_bytes, sizeof(*sw_bytes));
25380 + err = __copy_to_user(x->i387.sw_reserved, sw_bytes, sizeof(*sw_bytes));
25381
25382 if (!use_xsave())
25383 return err;
25384
25385 - err |= __put_user(FP_XSTATE_MAGIC2, (__u32 *)(buf + xstate_size));
25386 + err |= __put_user(FP_XSTATE_MAGIC2, (__u32 __user *)(buf + xstate_size));
25387
25388 /*
25389 * Read the xfeatures which we copied (directly from the cpu or
25390 * from the state in task struct) to the user buffers.
25391 */
25392 - err |= __get_user(xfeatures, (__u32 *)&x->header.xfeatures);
25393 + err |= __get_user(xfeatures, (__u32 __user *)&x->header.xfeatures);
25394
25395 /*
25396 * For legacy compatible, we always set FP/SSE bits in the bit
25397 @@ -109,7 +109,7 @@ static inline int save_xstate_epilog(void __user *buf, int ia32_frame)
25398 */
25399 xfeatures |= XSTATE_FPSSE;
25400
25401 - err |= __put_user(xfeatures, (__u32 *)&x->header.xfeatures);
25402 + err |= __put_user(xfeatures, (__u32 __user *)&x->header.xfeatures);
25403
25404 return err;
25405 }
25406 @@ -118,6 +118,7 @@ static inline int copy_fpregs_to_sigframe(struct xregs_state __user *buf)
25407 {
25408 int err;
25409
25410 + buf = (struct xregs_state __user *)____m(buf);
25411 if (use_xsave())
25412 err = copy_xregs_to_user(buf);
25413 else if (use_fxsr())
25414 @@ -152,7 +153,7 @@ static inline int copy_fpregs_to_sigframe(struct xregs_state __user *buf)
25415 */
25416 int copy_fpstate_to_sigframe(void __user *buf, void __user *buf_fx, int size)
25417 {
25418 - struct xregs_state *xsave = &current->thread.fpu.state.xsave;
25419 + struct xregs_state *xsave = &current->thread.fpu.state->xsave;
25420 struct task_struct *tsk = current;
25421 int ia32_fxstate = (buf != buf_fx);
25422
25423 @@ -195,7 +196,7 @@ sanitize_restored_xstate(struct task_struct *tsk,
25424 struct user_i387_ia32_struct *ia32_env,
25425 u64 xfeatures, int fx_only)
25426 {
25427 - struct xregs_state *xsave = &tsk->thread.fpu.state.xsave;
25428 + struct xregs_state *xsave = &tsk->thread.fpu.state->xsave;
25429 struct xstate_header *header = &xsave->header;
25430
25431 if (use_xsave()) {
25432 @@ -228,6 +229,7 @@ sanitize_restored_xstate(struct task_struct *tsk,
25433 */
25434 static inline int copy_user_to_fpregs_zeroing(void __user *buf, u64 xbv, int fx_only)
25435 {
25436 + buf = (void __user *)____m(buf);
25437 if (use_xsave()) {
25438 if ((unsigned long)buf % 64 || fx_only) {
25439 u64 init_bv = xfeatures_mask & ~XSTATE_FPSSE;
25440 @@ -308,9 +310,9 @@ static int __fpu__restore_sig(void __user *buf, void __user *buf_fx, int size)
25441 */
25442 fpu__drop(fpu);
25443
25444 - if (__copy_from_user(&fpu->state.xsave, buf_fx, state_size) ||
25445 + if (__copy_from_user(&fpu->state->xsave, buf_fx, state_size) ||
25446 __copy_from_user(&env, buf, sizeof(env))) {
25447 - fpstate_init(&fpu->state);
25448 + fpstate_init(fpu->state);
25449 err = -1;
25450 } else {
25451 sanitize_restored_xstate(tsk, &env, xfeatures, fx_only);
25452 diff --git a/arch/x86/kernel/fpu/xstate.c b/arch/x86/kernel/fpu/xstate.c
25453 index 62fc001..5ce38be 100644
25454 --- a/arch/x86/kernel/fpu/xstate.c
25455 +++ b/arch/x86/kernel/fpu/xstate.c
25456 @@ -93,14 +93,14 @@ EXPORT_SYMBOL_GPL(cpu_has_xfeatures);
25457 */
25458 void fpstate_sanitize_xstate(struct fpu *fpu)
25459 {
25460 - struct fxregs_state *fx = &fpu->state.fxsave;
25461 + struct fxregs_state *fx = &fpu->state->fxsave;
25462 int feature_bit;
25463 u64 xfeatures;
25464
25465 if (!use_xsaveopt())
25466 return;
25467
25468 - xfeatures = fpu->state.xsave.header.xfeatures;
25469 + xfeatures = fpu->state->xsave.header.xfeatures;
25470
25471 /*
25472 * None of the feature bits are in init state. So nothing else
25473 @@ -402,7 +402,7 @@ void *get_xsave_addr(struct xregs_state *xsave, int xstate_feature)
25474 if (!boot_cpu_has(X86_FEATURE_XSAVE))
25475 return NULL;
25476
25477 - xsave = &current->thread.fpu.state.xsave;
25478 + xsave = &current->thread.fpu.state->xsave;
25479 /*
25480 * We should not ever be requesting features that we
25481 * have not enabled. Remember that pcntxt_mask is
25482 @@ -457,5 +457,5 @@ const void *get_xsave_field_ptr(int xsave_state)
25483 */
25484 fpu__save(fpu);
25485
25486 - return get_xsave_addr(&fpu->state.xsave, xsave_state);
25487 + return get_xsave_addr(&fpu->state->xsave, xsave_state);
25488 }
25489 diff --git a/arch/x86/kernel/ftrace.c b/arch/x86/kernel/ftrace.c
25490 index 8b7b0a5..02219db 100644
25491 --- a/arch/x86/kernel/ftrace.c
25492 +++ b/arch/x86/kernel/ftrace.c
25493 @@ -89,7 +89,7 @@ static unsigned long text_ip_addr(unsigned long ip)
25494 * kernel identity mapping to modify code.
25495 */
25496 if (within(ip, (unsigned long)_text, (unsigned long)_etext))
25497 - ip = (unsigned long)__va(__pa_symbol(ip));
25498 + ip = (unsigned long)__va(__pa_symbol(ktla_ktva(ip)));
25499
25500 return ip;
25501 }
25502 @@ -105,6 +105,8 @@ ftrace_modify_code_direct(unsigned long ip, unsigned const char *old_code,
25503 {
25504 unsigned char replaced[MCOUNT_INSN_SIZE];
25505
25506 + ip = ktla_ktva(ip);
25507 +
25508 /*
25509 * Note: Due to modules and __init, code can
25510 * disappear and change, we need to protect against faulting
25511 @@ -230,7 +232,7 @@ static int update_ftrace_func(unsigned long ip, void *new)
25512 unsigned char old[MCOUNT_INSN_SIZE];
25513 int ret;
25514
25515 - memcpy(old, (void *)ip, MCOUNT_INSN_SIZE);
25516 + memcpy(old, (void *)ktla_ktva(ip), MCOUNT_INSN_SIZE);
25517
25518 ftrace_update_func = ip;
25519 /* Make sure the breakpoints see the ftrace_update_func update */
25520 @@ -311,7 +313,7 @@ static int add_break(unsigned long ip, const char *old)
25521 unsigned char replaced[MCOUNT_INSN_SIZE];
25522 unsigned char brk = BREAKPOINT_INSTRUCTION;
25523
25524 - if (probe_kernel_read(replaced, (void *)ip, MCOUNT_INSN_SIZE))
25525 + if (probe_kernel_read(replaced, (void *)ktla_ktva(ip), MCOUNT_INSN_SIZE))
25526 return -EFAULT;
25527
25528 /* Make sure it is what we expect it to be */
25529 @@ -670,11 +672,11 @@ static unsigned char *ftrace_jmp_replace(unsigned long ip, unsigned long addr)
25530 /* Module allocation simplifies allocating memory for code */
25531 static inline void *alloc_tramp(unsigned long size)
25532 {
25533 - return module_alloc(size);
25534 + return module_alloc_exec(size);
25535 }
25536 static inline void tramp_free(void *tramp)
25537 {
25538 - module_memfree(tramp);
25539 + module_memfree_exec(tramp);
25540 }
25541 #else
25542 /* Trampolines can only be created if modules are supported */
25543 @@ -753,7 +755,9 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25544 *tramp_size = size + MCOUNT_INSN_SIZE + sizeof(void *);
25545
25546 /* Copy ftrace_caller onto the trampoline memory */
25547 + pax_open_kernel();
25548 ret = probe_kernel_read(trampoline, (void *)start_offset, size);
25549 + pax_close_kernel();
25550 if (WARN_ON(ret < 0)) {
25551 tramp_free(trampoline);
25552 return 0;
25553 @@ -763,6 +767,7 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25554
25555 /* The trampoline ends with a jmp to ftrace_return */
25556 jmp = ftrace_jmp_replace(ip, (unsigned long)ftrace_return);
25557 + pax_open_kernel();
25558 memcpy(trampoline + size, jmp, MCOUNT_INSN_SIZE);
25559
25560 /*
25561 @@ -775,6 +780,7 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25562
25563 ptr = (unsigned long *)(trampoline + size + MCOUNT_INSN_SIZE);
25564 *ptr = (unsigned long)ops;
25565 + pax_close_kernel();
25566
25567 op_offset -= start_offset;
25568 memcpy(&op_ptr, trampoline + op_offset, OP_REF_SIZE);
25569 @@ -792,7 +798,9 @@ create_trampoline(struct ftrace_ops *ops, unsigned int *tramp_size)
25570 op_ptr.offset = offset;
25571
25572 /* put in the new offset to the ftrace_ops */
25573 + pax_open_kernel();
25574 memcpy(trampoline + op_offset, &op_ptr, OP_REF_SIZE);
25575 + pax_close_kernel();
25576
25577 /* ALLOC_TRAMP flags lets us know we created it */
25578 ops->flags |= FTRACE_OPS_FL_ALLOC_TRAMP;
25579 diff --git a/arch/x86/kernel/head64.c b/arch/x86/kernel/head64.c
25580 index f129a9a..af8f6da 100644
25581 --- a/arch/x86/kernel/head64.c
25582 +++ b/arch/x86/kernel/head64.c
25583 @@ -68,12 +68,12 @@ again:
25584 pgd = *pgd_p;
25585
25586 /*
25587 - * The use of __START_KERNEL_map rather than __PAGE_OFFSET here is
25588 - * critical -- __PAGE_OFFSET would point us back into the dynamic
25589 + * The use of __early_va rather than __va here is critical:
25590 + * __va would point us back into the dynamic
25591 * range and we might end up looping forever...
25592 */
25593 if (pgd)
25594 - pud_p = (pudval_t *)((pgd & PTE_PFN_MASK) + __START_KERNEL_map - phys_base);
25595 + pud_p = (pudval_t *)(__early_va(pgd & PTE_PFN_MASK));
25596 else {
25597 if (next_early_pgt >= EARLY_DYNAMIC_PAGE_TABLES) {
25598 reset_early_page_tables();
25599 @@ -83,13 +83,13 @@ again:
25600 pud_p = (pudval_t *)early_dynamic_pgts[next_early_pgt++];
25601 for (i = 0; i < PTRS_PER_PUD; i++)
25602 pud_p[i] = 0;
25603 - *pgd_p = (pgdval_t)pud_p - __START_KERNEL_map + phys_base + _KERNPG_TABLE;
25604 + *pgd_p = (pgdval_t)__pa(pud_p) + _KERNPG_TABLE;
25605 }
25606 pud_p += pud_index(address);
25607 pud = *pud_p;
25608
25609 if (pud)
25610 - pmd_p = (pmdval_t *)((pud & PTE_PFN_MASK) + __START_KERNEL_map - phys_base);
25611 + pmd_p = (pmdval_t *)(__early_va(pud & PTE_PFN_MASK));
25612 else {
25613 if (next_early_pgt >= EARLY_DYNAMIC_PAGE_TABLES) {
25614 reset_early_page_tables();
25615 @@ -99,7 +99,7 @@ again:
25616 pmd_p = (pmdval_t *)early_dynamic_pgts[next_early_pgt++];
25617 for (i = 0; i < PTRS_PER_PMD; i++)
25618 pmd_p[i] = 0;
25619 - *pud_p = (pudval_t)pmd_p - __START_KERNEL_map + phys_base + _KERNPG_TABLE;
25620 + *pud_p = (pudval_t)__pa(pmd_p) + _KERNPG_TABLE;
25621 }
25622 pmd = (physaddr & PMD_MASK) + early_pmd_flags;
25623 pmd_p[pmd_index(address)] = pmd;
25624 @@ -163,8 +163,6 @@ asmlinkage __visible void __init x86_64_start_kernel(char * real_mode_data)
25625
25626 clear_bss();
25627
25628 - clear_page(init_level4_pgt);
25629 -
25630 kasan_early_init();
25631
25632 for (i = 0; i < NUM_EXCEPTION_VECTORS; i++)
25633 diff --git a/arch/x86/kernel/head_32.S b/arch/x86/kernel/head_32.S
25634 index 0e2d96f..5889003 100644
25635 --- a/arch/x86/kernel/head_32.S
25636 +++ b/arch/x86/kernel/head_32.S
25637 @@ -27,6 +27,12 @@
25638 /* Physical address */
25639 #define pa(X) ((X) - __PAGE_OFFSET)
25640
25641 +#ifdef CONFIG_PAX_KERNEXEC
25642 +#define ta(X) (X)
25643 +#else
25644 +#define ta(X) ((X) - __PAGE_OFFSET)
25645 +#endif
25646 +
25647 /*
25648 * References to members of the new_cpu_data structure.
25649 */
25650 @@ -56,11 +62,7 @@
25651 * and small than max_low_pfn, otherwise will waste some page table entries
25652 */
25653
25654 -#if PTRS_PER_PMD > 1
25655 -#define PAGE_TABLE_SIZE(pages) (((pages) / PTRS_PER_PMD) + PTRS_PER_PGD)
25656 -#else
25657 -#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PGD)
25658 -#endif
25659 +#define PAGE_TABLE_SIZE(pages) ((pages) / PTRS_PER_PTE)
25660
25661 /*
25662 * Number of possible pages in the lowmem region.
25663 @@ -86,6 +88,12 @@ INIT_MAP_SIZE = PAGE_TABLE_SIZE(KERNEL_PAGES) * PAGE_SIZE
25664 RESERVE_BRK(pagetables, INIT_MAP_SIZE)
25665
25666 /*
25667 + * Real beginning of normal "text" segment
25668 + */
25669 +ENTRY(stext)
25670 +ENTRY(_stext)
25671 +
25672 +/*
25673 * 32-bit kernel entrypoint; only used by the boot CPU. On entry,
25674 * %esi points to the real-mode code as a 32-bit pointer.
25675 * CS and DS must be 4 GB flat segments, but we don't depend on
25676 @@ -93,6 +101,13 @@ RESERVE_BRK(pagetables, INIT_MAP_SIZE)
25677 * can.
25678 */
25679 __HEAD
25680 +
25681 +#ifdef CONFIG_PAX_KERNEXEC
25682 + jmp startup_32
25683 +/* PaX: fill first page in .text with int3 to catch NULL derefs in kernel mode */
25684 +.fill PAGE_SIZE-5,1,0xcc
25685 +#endif
25686 +
25687 ENTRY(startup_32)
25688 movl pa(stack_start),%ecx
25689
25690 @@ -114,6 +129,66 @@ ENTRY(startup_32)
25691 2:
25692 leal -__PAGE_OFFSET(%ecx),%esp
25693
25694 +#ifdef CONFIG_SMP
25695 + movl $pa(cpu_gdt_table),%edi
25696 + movl $__per_cpu_load,%eax
25697 + movw %ax,GDT_ENTRY_PERCPU * 8 + 2(%edi)
25698 + rorl $16,%eax
25699 + movb %al,GDT_ENTRY_PERCPU * 8 + 4(%edi)
25700 + movb %ah,GDT_ENTRY_PERCPU * 8 + 7(%edi)
25701 + movl $__per_cpu_end - 1,%eax
25702 + subl $__per_cpu_start,%eax
25703 + cmpl $0x100000,%eax
25704 + jb 1f
25705 + shrl $PAGE_SHIFT,%eax
25706 + orb $0x80,GDT_ENTRY_PERCPU * 8 + 6(%edi)
25707 +1:
25708 + movw %ax,GDT_ENTRY_PERCPU * 8 + 0(%edi)
25709 + shrl $16,%eax
25710 + orb %al,GDT_ENTRY_PERCPU * 8 + 6(%edi)
25711 +#endif
25712 +
25713 +#ifdef CONFIG_PAX_MEMORY_UDEREF
25714 + movl $NR_CPUS,%ecx
25715 + movl $pa(cpu_gdt_table),%edi
25716 +1:
25717 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c09700),GDT_ENTRY_KERNEL_DS * 8 + 4(%edi)
25718 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c0fb00),GDT_ENTRY_DEFAULT_USER_CS * 8 + 4(%edi)
25719 + movl $((((__PAGE_OFFSET-1) & 0xf0000000) >> 12) | 0x00c0f300),GDT_ENTRY_DEFAULT_USER_DS * 8 + 4(%edi)
25720 + addl $PAGE_SIZE_asm,%edi
25721 + loop 1b
25722 +#endif
25723 +
25724 +#ifdef CONFIG_PAX_KERNEXEC
25725 + movl $pa(boot_gdt),%edi
25726 + movl $__LOAD_PHYSICAL_ADDR,%eax
25727 + movw %ax,GDT_ENTRY_BOOT_CS * 8 + 2(%edi)
25728 + rorl $16,%eax
25729 + movb %al,GDT_ENTRY_BOOT_CS * 8 + 4(%edi)
25730 + movb %ah,GDT_ENTRY_BOOT_CS * 8 + 7(%edi)
25731 + rorl $16,%eax
25732 +
25733 + ljmp $(__BOOT_CS),$1f
25734 +1:
25735 +
25736 + movl $NR_CPUS,%ecx
25737 + movl $pa(cpu_gdt_table),%edi
25738 + addl $__PAGE_OFFSET,%eax
25739 +1:
25740 + movb $0xc0,GDT_ENTRY_KERNEL_CS * 8 + 6(%edi)
25741 + movb $0xc0,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 6(%edi)
25742 + movw %ax,GDT_ENTRY_KERNEL_CS * 8 + 2(%edi)
25743 + movw %ax,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 2(%edi)
25744 + rorl $16,%eax
25745 + movb %al,GDT_ENTRY_KERNEL_CS * 8 + 4(%edi)
25746 + movb %al,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 4(%edi)
25747 + movb %ah,GDT_ENTRY_KERNEL_CS * 8 + 7(%edi)
25748 + movb %ah,GDT_ENTRY_KERNEXEC_KERNEL_CS * 8 + 7(%edi)
25749 + rorl $16,%eax
25750 + addl $PAGE_SIZE_asm,%edi
25751 + loop 1b
25752 +#endif
25753 +
25754 /*
25755 * Clear BSS first so that there are no surprises...
25756 */
25757 @@ -209,8 +284,11 @@ ENTRY(startup_32)
25758 movl %eax, pa(max_pfn_mapped)
25759
25760 /* Do early initialization of the fixmap area */
25761 - movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,%eax
25762 - movl %eax,pa(initial_pg_pmd+0x1000*KPMDS-8)
25763 +#ifdef CONFIG_COMPAT_VDSO
25764 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(initial_pg_pmd+0x1000*KPMDS-8)
25765 +#else
25766 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,pa(initial_pg_pmd+0x1000*KPMDS-8)
25767 +#endif
25768 #else /* Not PAE */
25769
25770 page_pde_offset = (__PAGE_OFFSET >> 20);
25771 @@ -240,8 +318,11 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
25772 movl %eax, pa(max_pfn_mapped)
25773
25774 /* Do early initialization of the fixmap area */
25775 - movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,%eax
25776 - movl %eax,pa(initial_page_table+0xffc)
25777 +#ifdef CONFIG_COMPAT_VDSO
25778 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR+_PAGE_USER,pa(initial_page_table+0xffc)
25779 +#else
25780 + movl $pa(initial_pg_fixmap)+PDE_IDENT_ATTR,pa(initial_page_table+0xffc)
25781 +#endif
25782 #endif
25783
25784 #ifdef CONFIG_PARAVIRT
25785 @@ -255,9 +336,7 @@ page_pde_offset = (__PAGE_OFFSET >> 20);
25786 cmpl $num_subarch_entries, %eax
25787 jae bad_subarch
25788
25789 - movl pa(subarch_entries)(,%eax,4), %eax
25790 - subl $__PAGE_OFFSET, %eax
25791 - jmp *%eax
25792 + jmp *pa(subarch_entries)(,%eax,4)
25793
25794 bad_subarch:
25795 WEAK(lguest_entry)
25796 @@ -269,10 +348,10 @@ WEAK(xen_entry)
25797 __INITDATA
25798
25799 subarch_entries:
25800 - .long default_entry /* normal x86/PC */
25801 - .long lguest_entry /* lguest hypervisor */
25802 - .long xen_entry /* Xen hypervisor */
25803 - .long default_entry /* Moorestown MID */
25804 + .long ta(default_entry) /* normal x86/PC */
25805 + .long ta(lguest_entry) /* lguest hypervisor */
25806 + .long ta(xen_entry) /* Xen hypervisor */
25807 + .long ta(default_entry) /* Moorestown MID */
25808 num_subarch_entries = (. - subarch_entries) / 4
25809 .previous
25810 #else
25811 @@ -362,6 +441,7 @@ default_entry:
25812 movl pa(mmu_cr4_features),%eax
25813 movl %eax,%cr4
25814
25815 +#ifdef CONFIG_X86_PAE
25816 testb $X86_CR4_PAE, %al # check if PAE is enabled
25817 jz enable_paging
25818
25819 @@ -390,6 +470,9 @@ default_entry:
25820 /* Make changes effective */
25821 wrmsr
25822
25823 + btsl $_PAGE_BIT_NX-32,pa(__supported_pte_mask+4)
25824 +#endif
25825 +
25826 enable_paging:
25827
25828 /*
25829 @@ -457,14 +540,20 @@ is486:
25830 1: movl $(__KERNEL_DS),%eax # reload all the segment registers
25831 movl %eax,%ss # after changing gdt.
25832
25833 - movl $(__USER_DS),%eax # DS/ES contains default USER segment
25834 +# movl $(__KERNEL_DS),%eax # DS/ES contains default KERNEL segment
25835 movl %eax,%ds
25836 movl %eax,%es
25837
25838 movl $(__KERNEL_PERCPU), %eax
25839 movl %eax,%fs # set this cpu's percpu
25840
25841 +#ifdef CONFIG_CC_STACKPROTECTOR
25842 movl $(__KERNEL_STACK_CANARY),%eax
25843 +#elif defined(CONFIG_PAX_MEMORY_UDEREF)
25844 + movl $(__USER_DS),%eax
25845 +#else
25846 + xorl %eax,%eax
25847 +#endif
25848 movl %eax,%gs
25849
25850 xorl %eax,%eax # Clear LDT
25851 @@ -521,8 +610,11 @@ setup_once:
25852 * relocation. Manually set base address in stack canary
25853 * segment descriptor.
25854 */
25855 - movl $gdt_page,%eax
25856 + movl $cpu_gdt_table,%eax
25857 movl $stack_canary,%ecx
25858 +#ifdef CONFIG_SMP
25859 + addl $__per_cpu_load,%ecx
25860 +#endif
25861 movw %cx, 8 * GDT_ENTRY_STACK_CANARY + 2(%eax)
25862 shrl $16, %ecx
25863 movb %cl, 8 * GDT_ENTRY_STACK_CANARY + 4(%eax)
25864 @@ -559,7 +651,7 @@ early_idt_handler_common:
25865 cmpl $2,(%esp) # X86_TRAP_NMI
25866 je .Lis_nmi # Ignore NMI
25867
25868 - cmpl $2,%ss:early_recursion_flag
25869 + cmpl $1,%ss:early_recursion_flag
25870 je hlt_loop
25871 incl %ss:early_recursion_flag
25872
25873 @@ -597,8 +689,8 @@ early_idt_handler_common:
25874 pushl (20+6*4)(%esp) /* trapno */
25875 pushl $fault_msg
25876 call printk
25877 -#endif
25878 call dump_stack
25879 +#endif
25880 hlt_loop:
25881 hlt
25882 jmp hlt_loop
25883 @@ -618,8 +710,11 @@ ENDPROC(early_idt_handler_common)
25884 /* This is the default interrupt "handler" :-) */
25885 ALIGN
25886 ignore_int:
25887 - cld
25888 #ifdef CONFIG_PRINTK
25889 + cmpl $2,%ss:early_recursion_flag
25890 + je hlt_loop
25891 + incl %ss:early_recursion_flag
25892 + cld
25893 pushl %eax
25894 pushl %ecx
25895 pushl %edx
25896 @@ -628,9 +723,6 @@ ignore_int:
25897 movl $(__KERNEL_DS),%eax
25898 movl %eax,%ds
25899 movl %eax,%es
25900 - cmpl $2,early_recursion_flag
25901 - je hlt_loop
25902 - incl early_recursion_flag
25903 pushl 16(%esp)
25904 pushl 24(%esp)
25905 pushl 32(%esp)
25906 @@ -664,29 +756,34 @@ ENTRY(setup_once_ref)
25907 /*
25908 * BSS section
25909 */
25910 -__PAGE_ALIGNED_BSS
25911 - .align PAGE_SIZE
25912 #ifdef CONFIG_X86_PAE
25913 +.section .initial_pg_pmd,"a",@progbits
25914 initial_pg_pmd:
25915 .fill 1024*KPMDS,4,0
25916 #else
25917 +.section .initial_page_table,"a",@progbits
25918 ENTRY(initial_page_table)
25919 .fill 1024,4,0
25920 #endif
25921 +.section .initial_pg_fixmap,"a",@progbits
25922 initial_pg_fixmap:
25923 .fill 1024,4,0
25924 +.section .empty_zero_page,"a",@progbits
25925 ENTRY(empty_zero_page)
25926 .fill 4096,1,0
25927 +.section .swapper_pg_dir,"a",@progbits
25928 ENTRY(swapper_pg_dir)
25929 +#ifdef CONFIG_X86_PAE
25930 + .fill 4,8,0
25931 +#else
25932 .fill 1024,4,0
25933 +#endif
25934
25935 /*
25936 * This starts the data section.
25937 */
25938 #ifdef CONFIG_X86_PAE
25939 -__PAGE_ALIGNED_DATA
25940 - /* Page-aligned for the benefit of paravirt? */
25941 - .align PAGE_SIZE
25942 +.section .initial_page_table,"a",@progbits
25943 ENTRY(initial_page_table)
25944 .long pa(initial_pg_pmd+PGD_IDENT_ATTR),0 /* low identity map */
25945 # if KPMDS == 3
25946 @@ -705,12 +802,20 @@ ENTRY(initial_page_table)
25947 # error "Kernel PMDs should be 1, 2 or 3"
25948 # endif
25949 .align PAGE_SIZE /* needs to be page-sized too */
25950 +
25951 +#ifdef CONFIG_PAX_PER_CPU_PGD
25952 +ENTRY(cpu_pgd)
25953 + .rept 2*NR_CPUS
25954 + .fill 4,8,0
25955 + .endr
25956 +#endif
25957 +
25958 #endif
25959
25960 .data
25961 .balign 4
25962 ENTRY(stack_start)
25963 - .long init_thread_union+THREAD_SIZE
25964 + .long init_thread_union+THREAD_SIZE-8
25965
25966 __INITRODATA
25967 int_msg:
25968 @@ -738,7 +843,7 @@ fault_msg:
25969 * segment size, and 32-bit linear address value:
25970 */
25971
25972 - .data
25973 +.section .rodata,"a",@progbits
25974 .globl boot_gdt_descr
25975 .globl idt_descr
25976
25977 @@ -747,7 +852,7 @@ fault_msg:
25978 .word 0 # 32 bit align gdt_desc.address
25979 boot_gdt_descr:
25980 .word __BOOT_DS+7
25981 - .long boot_gdt - __PAGE_OFFSET
25982 + .long pa(boot_gdt)
25983
25984 .word 0 # 32-bit align idt_desc.address
25985 idt_descr:
25986 @@ -758,7 +863,7 @@ idt_descr:
25987 .word 0 # 32 bit align gdt_desc.address
25988 ENTRY(early_gdt_descr)
25989 .word GDT_ENTRIES*8-1
25990 - .long gdt_page /* Overwritten for secondary CPUs */
25991 + .long cpu_gdt_table /* Overwritten for secondary CPUs */
25992
25993 /*
25994 * The boot_gdt must mirror the equivalent in setup.S and is
25995 @@ -767,5 +872,65 @@ ENTRY(early_gdt_descr)
25996 .align L1_CACHE_BYTES
25997 ENTRY(boot_gdt)
25998 .fill GDT_ENTRY_BOOT_CS,8,0
25999 - .quad 0x00cf9a000000ffff /* kernel 4GB code at 0x00000000 */
26000 - .quad 0x00cf92000000ffff /* kernel 4GB data at 0x00000000 */
26001 + .quad 0x00cf9b000000ffff /* kernel 4GB code at 0x00000000 */
26002 + .quad 0x00cf93000000ffff /* kernel 4GB data at 0x00000000 */
26003 +
26004 + .align PAGE_SIZE_asm
26005 +ENTRY(cpu_gdt_table)
26006 + .rept NR_CPUS
26007 + .quad 0x0000000000000000 /* NULL descriptor */
26008 + .quad 0x0000000000000000 /* 0x0b reserved */
26009 + .quad 0x0000000000000000 /* 0x13 reserved */
26010 + .quad 0x0000000000000000 /* 0x1b reserved */
26011 +
26012 +#ifdef CONFIG_PAX_KERNEXEC
26013 + .quad 0x00cf9b000000ffff /* 0x20 alternate kernel 4GB code at 0x00000000 */
26014 +#else
26015 + .quad 0x0000000000000000 /* 0x20 unused */
26016 +#endif
26017 +
26018 + .quad 0x0000000000000000 /* 0x28 unused */
26019 + .quad 0x0000000000000000 /* 0x33 TLS entry 1 */
26020 + .quad 0x0000000000000000 /* 0x3b TLS entry 2 */
26021 + .quad 0x0000000000000000 /* 0x43 TLS entry 3 */
26022 + .quad 0x0000000000000000 /* 0x4b reserved */
26023 + .quad 0x0000000000000000 /* 0x53 reserved */
26024 + .quad 0x0000000000000000 /* 0x5b reserved */
26025 +
26026 + .quad 0x00cf9b000000ffff /* 0x60 kernel 4GB code at 0x00000000 */
26027 + .quad 0x00cf93000000ffff /* 0x68 kernel 4GB data at 0x00000000 */
26028 + .quad 0x00cffb000000ffff /* 0x73 user 4GB code at 0x00000000 */
26029 + .quad 0x00cff3000000ffff /* 0x7b user 4GB data at 0x00000000 */
26030 +
26031 + .quad 0x0000000000000000 /* 0x80 TSS descriptor */
26032 + .quad 0x0000000000000000 /* 0x88 LDT descriptor */
26033 +
26034 + /*
26035 + * Segments used for calling PnP BIOS have byte granularity.
26036 + * The code segments and data segments have fixed 64k limits,
26037 + * the transfer segment sizes are set at run time.
26038 + */
26039 + .quad 0x00409b000000ffff /* 0x90 32-bit code */
26040 + .quad 0x00009b000000ffff /* 0x98 16-bit code */
26041 + .quad 0x000093000000ffff /* 0xa0 16-bit data */
26042 + .quad 0x0000930000000000 /* 0xa8 16-bit data */
26043 + .quad 0x0000930000000000 /* 0xb0 16-bit data */
26044 +
26045 + /*
26046 + * The APM segments have byte granularity and their bases
26047 + * are set at run time. All have 64k limits.
26048 + */
26049 + .quad 0x00409b000000ffff /* 0xb8 APM CS code */
26050 + .quad 0x00009b000000ffff /* 0xc0 APM CS 16 code (16 bit) */
26051 + .quad 0x004093000000ffff /* 0xc8 APM DS data */
26052 +
26053 + .quad 0x00c093000000ffff /* 0xd0 - ESPFIX SS */
26054 + .quad 0x0040930000000000 /* 0xd8 - PERCPU */
26055 + .quad 0x0040910000000017 /* 0xe0 - STACK_CANARY */
26056 + .quad 0x0000000000000000 /* 0xe8 - PCIBIOS_CS */
26057 + .quad 0x0000000000000000 /* 0xf0 - PCIBIOS_DS */
26058 + .quad 0x0000000000000000 /* 0xf8 - GDT entry 31: double-fault TSS */
26059 +
26060 + /* Be sure this is zeroed to avoid false validations in Xen */
26061 + .fill PAGE_SIZE_asm - GDT_SIZE,1,0
26062 + .endr
26063 diff --git a/arch/x86/kernel/head_64.S b/arch/x86/kernel/head_64.S
26064 index 1d40ca8..4d38dbd 100644
26065 --- a/arch/x86/kernel/head_64.S
26066 +++ b/arch/x86/kernel/head_64.S
26067 @@ -20,6 +20,8 @@
26068 #include <asm/processor-flags.h>
26069 #include <asm/percpu.h>
26070 #include <asm/nops.h>
26071 +#include <asm/cpufeature.h>
26072 +#include <asm/alternative-asm.h>
26073
26074 #ifdef CONFIG_PARAVIRT
26075 #include <asm/asm-offsets.h>
26076 @@ -41,6 +43,12 @@ L4_PAGE_OFFSET = pgd_index(__PAGE_OFFSET)
26077 L3_PAGE_OFFSET = pud_index(__PAGE_OFFSET)
26078 L4_START_KERNEL = pgd_index(__START_KERNEL_map)
26079 L3_START_KERNEL = pud_index(__START_KERNEL_map)
26080 +L4_VMALLOC_START = pgd_index(VMALLOC_START)
26081 +L3_VMALLOC_START = pud_index(VMALLOC_START)
26082 +L4_VMALLOC_END = pgd_index(VMALLOC_END)
26083 +L3_VMALLOC_END = pud_index(VMALLOC_END)
26084 +L4_VMEMMAP_START = pgd_index(VMEMMAP_START)
26085 +L3_VMEMMAP_START = pud_index(VMEMMAP_START)
26086
26087 .text
26088 __HEAD
26089 @@ -89,11 +97,33 @@ startup_64:
26090 * Fixup the physical addresses in the page table
26091 */
26092 addq %rbp, early_level4_pgt + (L4_START_KERNEL*8)(%rip)
26093 + addq %rbp, init_level4_pgt + (L4_PAGE_OFFSET*8)(%rip)
26094 + addq %rbp, init_level4_pgt + (L4_VMALLOC_START*8)(%rip)
26095 + addq %rbp, init_level4_pgt + (L4_VMALLOC_END*8)(%rip)
26096 + addq %rbp, init_level4_pgt + (L4_VMEMMAP_START*8)(%rip)
26097 + addq %rbp, init_level4_pgt + (L4_START_KERNEL*8)(%rip)
26098
26099 - addq %rbp, level3_kernel_pgt + (510*8)(%rip)
26100 - addq %rbp, level3_kernel_pgt + (511*8)(%rip)
26101 + addq %rbp, level3_ident_pgt + (0*8)(%rip)
26102 +#ifndef CONFIG_XEN
26103 + addq %rbp, level3_ident_pgt + (1*8)(%rip)
26104 +#endif
26105
26106 + addq %rbp, level3_vmemmap_pgt + (L3_VMEMMAP_START*8)(%rip)
26107 +
26108 + addq %rbp, level3_kernel_pgt + (L3_START_KERNEL*8)(%rip)
26109 + addq %rbp, level3_kernel_pgt + ((L3_START_KERNEL+1)*8)(%rip)
26110 +
26111 + addq %rbp, level2_ident_pgt + (0*8)(%rip)
26112 +
26113 + addq %rbp, level2_fixmap_pgt + (0*8)(%rip)
26114 + addq %rbp, level2_fixmap_pgt + (1*8)(%rip)
26115 + addq %rbp, level2_fixmap_pgt + (2*8)(%rip)
26116 + addq %rbp, level2_fixmap_pgt + (3*8)(%rip)
26117 +
26118 + addq %rbp, level2_fixmap_pgt + (504*8)(%rip)
26119 + addq %rbp, level2_fixmap_pgt + (505*8)(%rip)
26120 addq %rbp, level2_fixmap_pgt + (506*8)(%rip)
26121 + addq %rbp, level2_fixmap_pgt + (507*8)(%rip)
26122
26123 /*
26124 * Set up the identity mapping for the switchover. These
26125 @@ -174,11 +204,12 @@ ENTRY(secondary_startup_64)
26126 * after the boot processor executes this code.
26127 */
26128
26129 + orq $-1, %rbp
26130 movq $(init_level4_pgt - __START_KERNEL_map), %rax
26131 1:
26132
26133 - /* Enable PAE mode and PGE */
26134 - movl $(X86_CR4_PAE | X86_CR4_PGE), %ecx
26135 + /* Enable PAE mode and PSE/PGE */
26136 + movl $(X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE), %ecx
26137 movq %rcx, %cr4
26138
26139 /* Setup early boot stage 4 level pagetables. */
26140 @@ -199,10 +230,21 @@ ENTRY(secondary_startup_64)
26141 movl $MSR_EFER, %ecx
26142 rdmsr
26143 btsl $_EFER_SCE, %eax /* Enable System Call */
26144 - btl $20,%edi /* No Execute supported? */
26145 + btl $(X86_FEATURE_NX & 31),%edi /* No Execute supported? */
26146 jnc 1f
26147 btsl $_EFER_NX, %eax
26148 + cmpq $-1, %rbp
26149 + je 1f
26150 btsq $_PAGE_BIT_NX,early_pmd_flags(%rip)
26151 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_PAGE_OFFSET(%rip)
26152 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMALLOC_START(%rip)
26153 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMALLOC_END(%rip)
26154 + btsq $_PAGE_BIT_NX, init_level4_pgt + 8*L4_VMEMMAP_START(%rip)
26155 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*504(%rip)
26156 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*505(%rip)
26157 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*506(%rip)
26158 + btsq $_PAGE_BIT_NX, level2_fixmap_pgt + 8*507(%rip)
26159 + btsq $_PAGE_BIT_NX, __supported_pte_mask(%rip)
26160 1: wrmsr /* Make changes effective */
26161
26162 /* Setup cr0 */
26163 @@ -282,6 +324,7 @@ ENTRY(secondary_startup_64)
26164 * REX.W + FF /5 JMP m16:64 Jump far, absolute indirect,
26165 * address given in m16:64.
26166 */
26167 + pax_set_fptr_mask
26168 movq initial_code(%rip),%rax
26169 pushq $0 # fake return address to stop unwinder
26170 pushq $__KERNEL_CS # set correct cs
26171 @@ -313,7 +356,7 @@ ENDPROC(start_cpu0)
26172 .quad INIT_PER_CPU_VAR(irq_stack_union)
26173
26174 GLOBAL(stack_start)
26175 - .quad init_thread_union+THREAD_SIZE-8
26176 + .quad init_thread_union+THREAD_SIZE-16
26177 .word 0
26178 __FINITDATA
26179
26180 @@ -393,7 +436,7 @@ early_idt_handler_common:
26181 call dump_stack
26182 #ifdef CONFIG_KALLSYMS
26183 leaq early_idt_ripmsg(%rip),%rdi
26184 - movq 40(%rsp),%rsi # %rip again
26185 + movq 88(%rsp),%rsi # %rip again
26186 call __print_symbol
26187 #endif
26188 #endif /* EARLY_PRINTK */
26189 @@ -422,6 +465,7 @@ ENDPROC(early_idt_handler_common)
26190 early_recursion_flag:
26191 .long 0
26192
26193 + .section .rodata,"a",@progbits
26194 #ifdef CONFIG_EARLY_PRINTK
26195 early_idt_msg:
26196 .asciz "PANIC: early exception %02lx rip %lx:%lx error %lx cr2 %lx\n"
26197 @@ -444,40 +488,67 @@ GLOBAL(name)
26198 __INITDATA
26199 NEXT_PAGE(early_level4_pgt)
26200 .fill 511,8,0
26201 - .quad level3_kernel_pgt - __START_KERNEL_map + _PAGE_TABLE
26202 + .quad level3_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
26203
26204 NEXT_PAGE(early_dynamic_pgts)
26205 .fill 512*EARLY_DYNAMIC_PAGE_TABLES,8,0
26206
26207 - .data
26208 + .section .rodata,"a",@progbits
26209
26210 -#ifndef CONFIG_XEN
26211 NEXT_PAGE(init_level4_pgt)
26212 - .fill 512,8,0
26213 -#else
26214 -NEXT_PAGE(init_level4_pgt)
26215 - .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26216 .org init_level4_pgt + L4_PAGE_OFFSET*8, 0
26217 .quad level3_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26218 + .org init_level4_pgt + L4_VMALLOC_START*8, 0
26219 + .quad level3_vmalloc_start_pgt - __START_KERNEL_map + _KERNPG_TABLE
26220 + .org init_level4_pgt + L4_VMALLOC_END*8, 0
26221 + .quad level3_vmalloc_end_pgt - __START_KERNEL_map + _KERNPG_TABLE
26222 + .org init_level4_pgt + L4_VMEMMAP_START*8, 0
26223 + .quad level3_vmemmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
26224 .org init_level4_pgt + L4_START_KERNEL*8, 0
26225 /* (2^48-(2*1024*1024*1024))/(2^39) = 511 */
26226 - .quad level3_kernel_pgt - __START_KERNEL_map + _PAGE_TABLE
26227 + .quad level3_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
26228 +
26229 +#ifdef CONFIG_PAX_PER_CPU_PGD
26230 +NEXT_PAGE(cpu_pgd)
26231 + .rept 2*NR_CPUS
26232 + .fill 512,8,0
26233 + .endr
26234 +#endif
26235
26236 NEXT_PAGE(level3_ident_pgt)
26237 .quad level2_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26238 +#ifdef CONFIG_XEN
26239 .fill 511, 8, 0
26240 +#else
26241 + .quad level2_ident_pgt + PAGE_SIZE - __START_KERNEL_map + _KERNPG_TABLE
26242 + .fill 510,8,0
26243 +#endif
26244 +
26245 +NEXT_PAGE(level3_vmalloc_start_pgt)
26246 + .fill 512,8,0
26247 +
26248 +NEXT_PAGE(level3_vmalloc_end_pgt)
26249 + .fill 512,8,0
26250 +
26251 +NEXT_PAGE(level3_vmemmap_pgt)
26252 + .fill L3_VMEMMAP_START,8,0
26253 + .quad level2_vmemmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
26254 +
26255 NEXT_PAGE(level2_ident_pgt)
26256 - /* Since I easily can, map the first 1G.
26257 + .quad level1_ident_pgt - __START_KERNEL_map + _KERNPG_TABLE
26258 + /* Since I easily can, map the first 2G.
26259 * Don't set NX because code runs from these pages.
26260 */
26261 - PMDS(0, __PAGE_KERNEL_IDENT_LARGE_EXEC, PTRS_PER_PMD)
26262 -#endif
26263 + PMDS(PMD_SIZE, __PAGE_KERNEL_IDENT_LARGE_EXEC, 2*PTRS_PER_PMD - 1)
26264
26265 NEXT_PAGE(level3_kernel_pgt)
26266 .fill L3_START_KERNEL,8,0
26267 /* (2^48-(2*1024*1024*1024)-((2^39)*511))/(2^30) = 510 */
26268 .quad level2_kernel_pgt - __START_KERNEL_map + _KERNPG_TABLE
26269 - .quad level2_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
26270 + .quad level2_fixmap_pgt - __START_KERNEL_map + _KERNPG_TABLE
26271 +
26272 +NEXT_PAGE(level2_vmemmap_pgt)
26273 + .fill 512,8,0
26274
26275 NEXT_PAGE(level2_kernel_pgt)
26276 /*
26277 @@ -494,31 +565,79 @@ NEXT_PAGE(level2_kernel_pgt)
26278 KERNEL_IMAGE_SIZE/PMD_SIZE)
26279
26280 NEXT_PAGE(level2_fixmap_pgt)
26281 - .fill 506,8,0
26282 - .quad level1_fixmap_pgt - __START_KERNEL_map + _PAGE_TABLE
26283 - /* 8MB reserved for vsyscalls + a 2MB hole = 4 + 1 entries */
26284 - .fill 5,8,0
26285 + .quad level1_modules_pgt - __START_KERNEL_map + 0 * PAGE_SIZE + _KERNPG_TABLE
26286 + .quad level1_modules_pgt - __START_KERNEL_map + 1 * PAGE_SIZE + _KERNPG_TABLE
26287 + .quad level1_modules_pgt - __START_KERNEL_map + 2 * PAGE_SIZE + _KERNPG_TABLE
26288 + .quad level1_modules_pgt - __START_KERNEL_map + 3 * PAGE_SIZE + _KERNPG_TABLE
26289 + .fill 500,8,0
26290 + .quad level1_fixmap_pgt - __START_KERNEL_map + 0 * PAGE_SIZE + _KERNPG_TABLE
26291 + .quad level1_fixmap_pgt - __START_KERNEL_map + 1 * PAGE_SIZE + _KERNPG_TABLE
26292 + .quad level1_fixmap_pgt - __START_KERNEL_map + 2 * PAGE_SIZE + _KERNPG_TABLE
26293 + .quad level1_vsyscall_pgt - __START_KERNEL_map + _KERNPG_TABLE
26294 + /* 6MB reserved for vsyscalls + a 2MB hole = 3 + 1 entries */
26295 + .fill 4,8,0
26296 +
26297 +NEXT_PAGE(level1_ident_pgt)
26298 + .fill 512,8,0
26299 +
26300 +NEXT_PAGE(level1_modules_pgt)
26301 + .fill 4*512,8,0
26302
26303 NEXT_PAGE(level1_fixmap_pgt)
26304 + .fill 3*512,8,0
26305 +
26306 +NEXT_PAGE(level1_vsyscall_pgt)
26307 .fill 512,8,0
26308
26309 #undef PMDS
26310
26311 - .data
26312 + .align PAGE_SIZE
26313 +ENTRY(cpu_gdt_table)
26314 + .rept NR_CPUS
26315 + .quad 0x0000000000000000 /* NULL descriptor */
26316 + .quad 0x00cf9b000000ffff /* __KERNEL32_CS */
26317 + .quad 0x00af9b000000ffff /* __KERNEL_CS */
26318 + .quad 0x00cf93000000ffff /* __KERNEL_DS */
26319 + .quad 0x00cffb000000ffff /* __USER32_CS */
26320 + .quad 0x00cff3000000ffff /* __USER_DS, __USER32_DS */
26321 + .quad 0x00affb000000ffff /* __USER_CS */
26322 +
26323 +#ifdef CONFIG_PAX_KERNEXEC
26324 + .quad 0x00af9b000000ffff /* __KERNEXEC_KERNEL_CS */
26325 +#else
26326 + .quad 0x0 /* unused */
26327 +#endif
26328 +
26329 + .quad 0,0 /* TSS */
26330 + .quad 0,0 /* LDT */
26331 + .quad 0,0,0 /* three TLS descriptors */
26332 + .quad 0x0000f40000000000 /* node/CPU stored in limit */
26333 + /* asm/segment.h:GDT_ENTRIES must match this */
26334 +
26335 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26336 + .quad 0x00cf93000000ffff /* __UDEREF_KERNEL_DS */
26337 +#else
26338 + .quad 0x0 /* unused */
26339 +#endif
26340 +
26341 + /* zero the remaining page */
26342 + .fill PAGE_SIZE / 8 - GDT_ENTRIES,8,0
26343 + .endr
26344 +
26345 .align 16
26346 .globl early_gdt_descr
26347 early_gdt_descr:
26348 .word GDT_ENTRIES*8-1
26349 early_gdt_descr_base:
26350 - .quad INIT_PER_CPU_VAR(gdt_page)
26351 + .quad cpu_gdt_table
26352
26353 ENTRY(phys_base)
26354 /* This must match the first entry in level2_kernel_pgt */
26355 .quad 0x0000000000000000
26356
26357 #include "../../x86/xen/xen-head.S"
26358 -
26359 - __PAGE_ALIGNED_BSS
26360 +
26361 + .section .rodata,"a",@progbits
26362 NEXT_PAGE(empty_zero_page)
26363 .skip PAGE_SIZE
26364
26365 diff --git a/arch/x86/kernel/i386_ksyms_32.c b/arch/x86/kernel/i386_ksyms_32.c
26366 index 64341aa..b1e6632 100644
26367 --- a/arch/x86/kernel/i386_ksyms_32.c
26368 +++ b/arch/x86/kernel/i386_ksyms_32.c
26369 @@ -20,8 +20,12 @@ extern void cmpxchg8b_emu(void);
26370 EXPORT_SYMBOL(cmpxchg8b_emu);
26371 #endif
26372
26373 +EXPORT_SYMBOL_GPL(cpu_gdt_table);
26374 +
26375 /* Networking helper routines. */
26376 EXPORT_SYMBOL(csum_partial_copy_generic);
26377 +EXPORT_SYMBOL(csum_partial_copy_generic_to_user);
26378 +EXPORT_SYMBOL(csum_partial_copy_generic_from_user);
26379
26380 EXPORT_SYMBOL(__get_user_1);
26381 EXPORT_SYMBOL(__get_user_2);
26382 @@ -42,3 +46,11 @@ EXPORT_SYMBOL(empty_zero_page);
26383 EXPORT_SYMBOL(___preempt_schedule);
26384 EXPORT_SYMBOL(___preempt_schedule_notrace);
26385 #endif
26386 +
26387 +#ifdef CONFIG_PAX_KERNEXEC
26388 +EXPORT_SYMBOL(__LOAD_PHYSICAL_ADDR);
26389 +#endif
26390 +
26391 +#ifdef CONFIG_PAX_PER_CPU_PGD
26392 +EXPORT_SYMBOL(cpu_pgd);
26393 +#endif
26394 diff --git a/arch/x86/kernel/i8259.c b/arch/x86/kernel/i8259.c
26395 index 16cb827..372334f 100644
26396 --- a/arch/x86/kernel/i8259.c
26397 +++ b/arch/x86/kernel/i8259.c
26398 @@ -110,7 +110,7 @@ static int i8259A_irq_pending(unsigned int irq)
26399 static void make_8259A_irq(unsigned int irq)
26400 {
26401 disable_irq_nosync(irq);
26402 - io_apic_irqs &= ~(1<<irq);
26403 + io_apic_irqs &= ~(1UL<<irq);
26404 irq_set_chip_and_handler(irq, &i8259A_chip, handle_level_irq);
26405 enable_irq(irq);
26406 }
26407 @@ -208,7 +208,7 @@ spurious_8259A_irq:
26408 "spurious 8259A interrupt: IRQ%d.\n", irq);
26409 spurious_irq_mask |= irqmask;
26410 }
26411 - atomic_inc(&irq_err_count);
26412 + atomic_inc_unchecked(&irq_err_count);
26413 /*
26414 * Theoretically we do not have to handle this IRQ,
26415 * but in Linux this does not cause problems and is
26416 @@ -349,14 +349,16 @@ static void init_8259A(int auto_eoi)
26417 /* (slave's support for AEOI in flat mode is to be investigated) */
26418 outb_pic(SLAVE_ICW4_DEFAULT, PIC_SLAVE_IMR);
26419
26420 + pax_open_kernel();
26421 if (auto_eoi)
26422 /*
26423 * In AEOI mode we just have to mask the interrupt
26424 * when acking.
26425 */
26426 - i8259A_chip.irq_mask_ack = disable_8259A_irq;
26427 + *(void **)&i8259A_chip.irq_mask_ack = disable_8259A_irq;
26428 else
26429 - i8259A_chip.irq_mask_ack = mask_and_ack_8259A;
26430 + *(void **)&i8259A_chip.irq_mask_ack = mask_and_ack_8259A;
26431 + pax_close_kernel();
26432
26433 udelay(100); /* wait for 8259A to initialize */
26434
26435 diff --git a/arch/x86/kernel/io_delay.c b/arch/x86/kernel/io_delay.c
26436 index a979b5b..1d6db75 100644
26437 --- a/arch/x86/kernel/io_delay.c
26438 +++ b/arch/x86/kernel/io_delay.c
26439 @@ -58,7 +58,7 @@ static int __init dmi_io_delay_0xed_port(const struct dmi_system_id *id)
26440 * Quirk table for systems that misbehave (lock up, etc.) if port
26441 * 0x80 is used:
26442 */
26443 -static struct dmi_system_id __initdata io_delay_0xed_port_dmi_table[] = {
26444 +static const struct dmi_system_id __initconst io_delay_0xed_port_dmi_table[] = {
26445 {
26446 .callback = dmi_io_delay_0xed_port,
26447 .ident = "Compaq Presario V6000",
26448 diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c
26449 index 37dae79..620dd84 100644
26450 --- a/arch/x86/kernel/ioport.c
26451 +++ b/arch/x86/kernel/ioport.c
26452 @@ -6,6 +6,7 @@
26453 #include <linux/sched.h>
26454 #include <linux/kernel.h>
26455 #include <linux/capability.h>
26456 +#include <linux/security.h>
26457 #include <linux/errno.h>
26458 #include <linux/types.h>
26459 #include <linux/ioport.h>
26460 @@ -30,6 +31,12 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
26461 return -EINVAL;
26462 if (turn_on && !capable(CAP_SYS_RAWIO))
26463 return -EPERM;
26464 +#ifdef CONFIG_GRKERNSEC_IO
26465 + if (turn_on && grsec_disable_privio) {
26466 + gr_handle_ioperm();
26467 + return -ENODEV;
26468 + }
26469 +#endif
26470
26471 /*
26472 * If it's the first ioperm() call in this thread's lifetime, set the
26473 @@ -54,7 +61,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on)
26474 * because the ->io_bitmap_max value must match the bitmap
26475 * contents:
26476 */
26477 - tss = &per_cpu(cpu_tss, get_cpu());
26478 + tss = cpu_tss + get_cpu();
26479
26480 if (turn_on)
26481 bitmap_clear(t->io_bitmap_ptr, from, num);
26482 @@ -105,6 +112,12 @@ SYSCALL_DEFINE1(iopl, unsigned int, level)
26483 if (level > old) {
26484 if (!capable(CAP_SYS_RAWIO))
26485 return -EPERM;
26486 +#ifdef CONFIG_GRKERNSEC_IO
26487 + if (grsec_disable_privio) {
26488 + gr_handle_iopl();
26489 + return -ENODEV;
26490 + }
26491 +#endif
26492 }
26493 regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | (level << 12);
26494 t->iopl = level << 12;
26495 diff --git a/arch/x86/kernel/irq.c b/arch/x86/kernel/irq.c
26496 index c7dfe1b..146f63c 100644
26497 --- a/arch/x86/kernel/irq.c
26498 +++ b/arch/x86/kernel/irq.c
26499 @@ -28,7 +28,7 @@ EXPORT_PER_CPU_SYMBOL(irq_stat);
26500 DEFINE_PER_CPU(struct pt_regs *, irq_regs);
26501 EXPORT_PER_CPU_SYMBOL(irq_regs);
26502
26503 -atomic_t irq_err_count;
26504 +atomic_unchecked_t irq_err_count;
26505
26506 /* Function pointer for generic interrupt vector handling */
26507 void (*x86_platform_ipi_callback)(void) = NULL;
26508 @@ -144,9 +144,9 @@ int arch_show_interrupts(struct seq_file *p, int prec)
26509 seq_printf(p, "%10u ", irq_stats(j)->irq_hv_callback_count);
26510 seq_puts(p, " Hypervisor callback interrupts\n");
26511 #endif
26512 - seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read(&irq_err_count));
26513 + seq_printf(p, "%*s: %10u\n", prec, "ERR", atomic_read_unchecked(&irq_err_count));
26514 #if defined(CONFIG_X86_IO_APIC)
26515 - seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read(&irq_mis_count));
26516 + seq_printf(p, "%*s: %10u\n", prec, "MIS", atomic_read_unchecked(&irq_mis_count));
26517 #endif
26518 #ifdef CONFIG_HAVE_KVM
26519 seq_printf(p, "%*s: ", prec, "PIN");
26520 @@ -198,7 +198,7 @@ u64 arch_irq_stat_cpu(unsigned int cpu)
26521
26522 u64 arch_irq_stat(void)
26523 {
26524 - u64 sum = atomic_read(&irq_err_count);
26525 + u64 sum = atomic_read_unchecked(&irq_err_count);
26526 return sum;
26527 }
26528
26529 diff --git a/arch/x86/kernel/irq_32.c b/arch/x86/kernel/irq_32.c
26530 index cd74f59..588af0b 100644
26531 --- a/arch/x86/kernel/irq_32.c
26532 +++ b/arch/x86/kernel/irq_32.c
26533 @@ -23,6 +23,8 @@
26534
26535 #ifdef CONFIG_DEBUG_STACKOVERFLOW
26536
26537 +extern void gr_handle_kernel_exploit(void);
26538 +
26539 int sysctl_panic_on_stackoverflow __read_mostly;
26540
26541 /* Debugging check for stack overflow: is there less than 1KB free? */
26542 @@ -33,13 +35,14 @@ static int check_stack_overflow(void)
26543 __asm__ __volatile__("andl %%esp,%0" :
26544 "=r" (sp) : "0" (THREAD_SIZE - 1));
26545
26546 - return sp < (sizeof(struct thread_info) + STACK_WARN);
26547 + return sp < STACK_WARN;
26548 }
26549
26550 static void print_stack_overflow(void)
26551 {
26552 printk(KERN_WARNING "low stack detected by irq handler\n");
26553 dump_stack();
26554 + gr_handle_kernel_exploit();
26555 if (sysctl_panic_on_stackoverflow)
26556 panic("low stack detected by irq handler - check messages\n");
26557 }
26558 @@ -71,10 +74,9 @@ static inline void *current_stack(void)
26559 static inline int
26560 execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
26561 {
26562 - struct irq_stack *curstk, *irqstk;
26563 + struct irq_stack *irqstk;
26564 u32 *isp, *prev_esp, arg1, arg2;
26565
26566 - curstk = (struct irq_stack *) current_stack();
26567 irqstk = __this_cpu_read(hardirq_stack);
26568
26569 /*
26570 @@ -83,15 +85,19 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
26571 * handler) we can't do that and just have to keep using the
26572 * current stack (which is the irq stack already after all)
26573 */
26574 - if (unlikely(curstk == irqstk))
26575 + if (unlikely((void *)current_stack_pointer - (void *)irqstk < THREAD_SIZE))
26576 return 0;
26577
26578 - isp = (u32 *) ((char *)irqstk + sizeof(*irqstk));
26579 + isp = (u32 *) ((char *)irqstk + sizeof(*irqstk) - 8);
26580
26581 /* Save the next esp at the bottom of the stack */
26582 prev_esp = (u32 *)irqstk;
26583 *prev_esp = current_stack_pointer();
26584
26585 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26586 + __set_fs(MAKE_MM_SEG(0));
26587 +#endif
26588 +
26589 if (unlikely(overflow))
26590 call_on_stack(print_stack_overflow, isp);
26591
26592 @@ -102,6 +108,11 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
26593 : "0" (irq), "1" (desc), "2" (isp),
26594 "D" (desc->handle_irq)
26595 : "memory", "cc", "ecx");
26596 +
26597 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26598 + __set_fs(current_thread_info()->addr_limit);
26599 +#endif
26600 +
26601 return 1;
26602 }
26603
26604 @@ -110,32 +121,18 @@ execute_on_irq_stack(int overflow, struct irq_desc *desc, int irq)
26605 */
26606 void irq_ctx_init(int cpu)
26607 {
26608 - struct irq_stack *irqstk;
26609 -
26610 if (per_cpu(hardirq_stack, cpu))
26611 return;
26612
26613 - irqstk = page_address(alloc_pages_node(cpu_to_node(cpu),
26614 - THREADINFO_GFP,
26615 - THREAD_SIZE_ORDER));
26616 - per_cpu(hardirq_stack, cpu) = irqstk;
26617 -
26618 - irqstk = page_address(alloc_pages_node(cpu_to_node(cpu),
26619 - THREADINFO_GFP,
26620 - THREAD_SIZE_ORDER));
26621 - per_cpu(softirq_stack, cpu) = irqstk;
26622 -
26623 - printk(KERN_DEBUG "CPU %u irqstacks, hard=%p soft=%p\n",
26624 - cpu, per_cpu(hardirq_stack, cpu), per_cpu(softirq_stack, cpu));
26625 + per_cpu(hardirq_stack, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREADINFO_GFP, THREAD_SIZE_ORDER));
26626 + per_cpu(softirq_stack, cpu) = page_address(alloc_pages_node(cpu_to_node(cpu), THREADINFO_GFP, THREAD_SIZE_ORDER));
26627 }
26628
26629 void do_softirq_own_stack(void)
26630 {
26631 - struct thread_info *curstk;
26632 struct irq_stack *irqstk;
26633 u32 *isp, *prev_esp;
26634
26635 - curstk = current_stack();
26636 irqstk = __this_cpu_read(softirq_stack);
26637
26638 /* build the stack frame on the softirq stack */
26639 @@ -145,7 +142,16 @@ void do_softirq_own_stack(void)
26640 prev_esp = (u32 *)irqstk;
26641 *prev_esp = current_stack_pointer();
26642
26643 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26644 + __set_fs(MAKE_MM_SEG(0));
26645 +#endif
26646 +
26647 call_on_stack(__do_softirq, isp);
26648 +
26649 +#ifdef CONFIG_PAX_MEMORY_UDEREF
26650 + __set_fs(current_thread_info()->addr_limit);
26651 +#endif
26652 +
26653 }
26654
26655 bool handle_irq(unsigned irq, struct pt_regs *regs)
26656 diff --git a/arch/x86/kernel/irq_64.c b/arch/x86/kernel/irq_64.c
26657 index bc4604e..0be227d 100644
26658 --- a/arch/x86/kernel/irq_64.c
26659 +++ b/arch/x86/kernel/irq_64.c
26660 @@ -20,6 +20,8 @@
26661 #include <asm/idle.h>
26662 #include <asm/apic.h>
26663
26664 +extern void gr_handle_kernel_exploit(void);
26665 +
26666 int sysctl_panic_on_stackoverflow;
26667
26668 /*
26669 @@ -63,6 +65,8 @@ static inline void stack_overflow_check(struct pt_regs *regs)
26670 irq_stack_top, irq_stack_bottom,
26671 estack_top, estack_bottom);
26672
26673 + gr_handle_kernel_exploit();
26674 +
26675 if (sysctl_panic_on_stackoverflow)
26676 panic("low stack detected by irq handler - check messages\n");
26677 #endif
26678 diff --git a/arch/x86/kernel/jump_label.c b/arch/x86/kernel/jump_label.c
26679 index 26d5a55..063fef8 100644
26680 --- a/arch/x86/kernel/jump_label.c
26681 +++ b/arch/x86/kernel/jump_label.c
26682 @@ -31,6 +31,8 @@ static void bug_at(unsigned char *ip, int line)
26683 * Something went wrong. Crash the box, as something could be
26684 * corrupting the kernel.
26685 */
26686 + ip = (unsigned char *)ktla_ktva((unsigned long)ip);
26687 + pr_warning("Unexpected op at %pS [%p] %s:%d\n", ip, ip, __FILE__, line);
26688 pr_warning("Unexpected op at %pS [%p] (%02x %02x %02x %02x %02x) %s:%d\n",
26689 ip, ip, ip[0], ip[1], ip[2], ip[3], ip[4], __FILE__, line);
26690 BUG();
26691 @@ -51,7 +53,7 @@ static void __jump_label_transform(struct jump_entry *entry,
26692 * Jump label is enabled for the first time.
26693 * So we expect a default_nop...
26694 */
26695 - if (unlikely(memcmp((void *)entry->code, default_nop, 5)
26696 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5)
26697 != 0))
26698 bug_at((void *)entry->code, __LINE__);
26699 } else {
26700 @@ -59,7 +61,7 @@ static void __jump_label_transform(struct jump_entry *entry,
26701 * ...otherwise expect an ideal_nop. Otherwise
26702 * something went horribly wrong.
26703 */
26704 - if (unlikely(memcmp((void *)entry->code, ideal_nop, 5)
26705 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), ideal_nop, 5)
26706 != 0))
26707 bug_at((void *)entry->code, __LINE__);
26708 }
26709 @@ -75,13 +77,13 @@ static void __jump_label_transform(struct jump_entry *entry,
26710 * are converting the default nop to the ideal nop.
26711 */
26712 if (init) {
26713 - if (unlikely(memcmp((void *)entry->code, default_nop, 5) != 0))
26714 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), default_nop, 5) != 0))
26715 bug_at((void *)entry->code, __LINE__);
26716 } else {
26717 code.jump = 0xe9;
26718 code.offset = entry->target -
26719 (entry->code + JUMP_LABEL_NOP_SIZE);
26720 - if (unlikely(memcmp((void *)entry->code, &code, 5) != 0))
26721 + if (unlikely(memcmp((void *)ktla_ktva(entry->code), &code, 5) != 0))
26722 bug_at((void *)entry->code, __LINE__);
26723 }
26724 memcpy(&code, ideal_nops[NOP_ATOMIC5], JUMP_LABEL_NOP_SIZE);
26725 diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
26726 index d6178d9..598681f 100644
26727 --- a/arch/x86/kernel/kgdb.c
26728 +++ b/arch/x86/kernel/kgdb.c
26729 @@ -228,7 +228,10 @@ static void kgdb_correct_hw_break(void)
26730 bp->attr.bp_addr = breakinfo[breakno].addr;
26731 bp->attr.bp_len = breakinfo[breakno].len;
26732 bp->attr.bp_type = breakinfo[breakno].type;
26733 - info->address = breakinfo[breakno].addr;
26734 + if (breakinfo[breakno].type == X86_BREAKPOINT_EXECUTE)
26735 + info->address = ktla_ktva(breakinfo[breakno].addr);
26736 + else
26737 + info->address = breakinfo[breakno].addr;
26738 info->len = breakinfo[breakno].len;
26739 info->type = breakinfo[breakno].type;
26740 val = arch_install_hw_breakpoint(bp);
26741 @@ -475,12 +478,12 @@ int kgdb_arch_handle_exception(int e_vector, int signo, int err_code,
26742 case 'k':
26743 /* clear the trace bit */
26744 linux_regs->flags &= ~X86_EFLAGS_TF;
26745 - atomic_set(&kgdb_cpu_doing_single_step, -1);
26746 + atomic_set_unchecked(&kgdb_cpu_doing_single_step, -1);
26747
26748 /* set the trace bit if we're stepping */
26749 if (remcomInBuffer[0] == 's') {
26750 linux_regs->flags |= X86_EFLAGS_TF;
26751 - atomic_set(&kgdb_cpu_doing_single_step,
26752 + atomic_set_unchecked(&kgdb_cpu_doing_single_step,
26753 raw_smp_processor_id());
26754 }
26755
26756 @@ -545,7 +548,7 @@ static int __kgdb_notify(struct die_args *args, unsigned long cmd)
26757
26758 switch (cmd) {
26759 case DIE_DEBUG:
26760 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
26761 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1) {
26762 if (user_mode(regs))
26763 return single_step_cont(regs, args);
26764 break;
26765 @@ -750,11 +753,11 @@ int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt)
26766 #endif /* CONFIG_DEBUG_RODATA */
26767
26768 bpt->type = BP_BREAKPOINT;
26769 - err = probe_kernel_read(bpt->saved_instr, (char *)bpt->bpt_addr,
26770 + err = probe_kernel_read(bpt->saved_instr, (const void *)ktla_ktva(bpt->bpt_addr),
26771 BREAK_INSTR_SIZE);
26772 if (err)
26773 return err;
26774 - err = probe_kernel_write((char *)bpt->bpt_addr,
26775 + err = probe_kernel_write((void *)ktla_ktva(bpt->bpt_addr),
26776 arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE);
26777 #ifdef CONFIG_DEBUG_RODATA
26778 if (!err)
26779 @@ -767,7 +770,7 @@ int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt)
26780 return -EBUSY;
26781 text_poke((void *)bpt->bpt_addr, arch_kgdb_ops.gdb_bpt_instr,
26782 BREAK_INSTR_SIZE);
26783 - err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE);
26784 + err = probe_kernel_read(opc, ktla_ktva((char *)bpt->bpt_addr), BREAK_INSTR_SIZE);
26785 if (err)
26786 return err;
26787 if (memcmp(opc, arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE))
26788 @@ -792,13 +795,13 @@ int kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt)
26789 if (mutex_is_locked(&text_mutex))
26790 goto knl_write;
26791 text_poke((void *)bpt->bpt_addr, bpt->saved_instr, BREAK_INSTR_SIZE);
26792 - err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE);
26793 + err = probe_kernel_read(opc, ktla_ktva((char *)bpt->bpt_addr), BREAK_INSTR_SIZE);
26794 if (err || memcmp(opc, bpt->saved_instr, BREAK_INSTR_SIZE))
26795 goto knl_write;
26796 return err;
26797 knl_write:
26798 #endif /* CONFIG_DEBUG_RODATA */
26799 - return probe_kernel_write((char *)bpt->bpt_addr,
26800 + return probe_kernel_write((void *)ktla_ktva(bpt->bpt_addr),
26801 (char *)bpt->saved_instr, BREAK_INSTR_SIZE);
26802 }
26803
26804 diff --git a/arch/x86/kernel/kprobes/core.c b/arch/x86/kernel/kprobes/core.c
26805 index 1deffe6..3be342a 100644
26806 --- a/arch/x86/kernel/kprobes/core.c
26807 +++ b/arch/x86/kernel/kprobes/core.c
26808 @@ -120,9 +120,12 @@ __synthesize_relative_insn(void *from, void *to, u8 op)
26809 s32 raddr;
26810 } __packed *insn;
26811
26812 - insn = (struct __arch_relative_insn *)from;
26813 + insn = (struct __arch_relative_insn *)ktla_ktva((unsigned long)from);
26814 +
26815 + pax_open_kernel();
26816 insn->raddr = (s32)((long)(to) - ((long)(from) + 5));
26817 insn->op = op;
26818 + pax_close_kernel();
26819 }
26820
26821 /* Insert a jump instruction at address 'from', which jumps to address 'to'.*/
26822 @@ -168,7 +171,7 @@ int can_boost(kprobe_opcode_t *opcodes)
26823 kprobe_opcode_t opcode;
26824 kprobe_opcode_t *orig_opcodes = opcodes;
26825
26826 - if (search_exception_tables((unsigned long)opcodes))
26827 + if (search_exception_tables(ktva_ktla((unsigned long)opcodes)))
26828 return 0; /* Page fault may occur on this address. */
26829
26830 retry:
26831 @@ -260,12 +263,12 @@ __recover_probed_insn(kprobe_opcode_t *buf, unsigned long addr)
26832 * Fortunately, we know that the original code is the ideal 5-byte
26833 * long NOP.
26834 */
26835 - memcpy(buf, (void *)addr, MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
26836 + memcpy(buf, (void *)ktla_ktva(addr), MAX_INSN_SIZE * sizeof(kprobe_opcode_t));
26837 if (faddr)
26838 memcpy(buf, ideal_nops[NOP_ATOMIC5], 5);
26839 else
26840 buf[0] = kp->opcode;
26841 - return (unsigned long)buf;
26842 + return ktva_ktla((unsigned long)buf);
26843 }
26844
26845 /*
26846 @@ -367,7 +370,9 @@ int __copy_instruction(u8 *dest, u8 *src)
26847 /* Another subsystem puts a breakpoint, failed to recover */
26848 if (insn.opcode.bytes[0] == BREAKPOINT_INSTRUCTION)
26849 return 0;
26850 + pax_open_kernel();
26851 memcpy(dest, insn.kaddr, length);
26852 + pax_close_kernel();
26853
26854 #ifdef CONFIG_X86_64
26855 if (insn_rip_relative(&insn)) {
26856 @@ -394,7 +399,9 @@ int __copy_instruction(u8 *dest, u8 *src)
26857 return 0;
26858 }
26859 disp = (u8 *) dest + insn_offset_displacement(&insn);
26860 + pax_open_kernel();
26861 *(s32 *) disp = (s32) newdisp;
26862 + pax_close_kernel();
26863 }
26864 #endif
26865 return length;
26866 @@ -536,7 +543,7 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
26867 * nor set current_kprobe, because it doesn't use single
26868 * stepping.
26869 */
26870 - regs->ip = (unsigned long)p->ainsn.insn;
26871 + regs->ip = ktva_ktla((unsigned long)p->ainsn.insn);
26872 preempt_enable_no_resched();
26873 return;
26874 }
26875 @@ -553,9 +560,9 @@ static void setup_singlestep(struct kprobe *p, struct pt_regs *regs,
26876 regs->flags &= ~X86_EFLAGS_IF;
26877 /* single step inline if the instruction is an int3 */
26878 if (p->opcode == BREAKPOINT_INSTRUCTION)
26879 - regs->ip = (unsigned long)p->addr;
26880 + regs->ip = ktla_ktva((unsigned long)p->addr);
26881 else
26882 - regs->ip = (unsigned long)p->ainsn.insn;
26883 + regs->ip = ktva_ktla((unsigned long)p->ainsn.insn);
26884 }
26885 NOKPROBE_SYMBOL(setup_singlestep);
26886
26887 @@ -640,7 +647,7 @@ int kprobe_int3_handler(struct pt_regs *regs)
26888 setup_singlestep(p, regs, kcb, 0);
26889 return 1;
26890 }
26891 - } else if (*addr != BREAKPOINT_INSTRUCTION) {
26892 + } else if (*(kprobe_opcode_t *)ktla_ktva((unsigned long)addr) != BREAKPOINT_INSTRUCTION) {
26893 /*
26894 * The breakpoint instruction was removed right
26895 * after we hit it. Another cpu has removed
26896 @@ -687,6 +694,9 @@ static void __used kretprobe_trampoline_holder(void)
26897 " movq %rax, 152(%rsp)\n"
26898 RESTORE_REGS_STRING
26899 " popfq\n"
26900 +#ifdef KERNEXEC_PLUGIN
26901 + " btsq $63,(%rsp)\n"
26902 +#endif
26903 #else
26904 " pushf\n"
26905 SAVE_REGS_STRING
26906 @@ -827,7 +837,7 @@ static void resume_execution(struct kprobe *p, struct pt_regs *regs,
26907 struct kprobe_ctlblk *kcb)
26908 {
26909 unsigned long *tos = stack_addr(regs);
26910 - unsigned long copy_ip = (unsigned long)p->ainsn.insn;
26911 + unsigned long copy_ip = ktva_ktla((unsigned long)p->ainsn.insn);
26912 unsigned long orig_ip = (unsigned long)p->addr;
26913 kprobe_opcode_t *insn = p->ainsn.insn;
26914
26915 diff --git a/arch/x86/kernel/kprobes/opt.c b/arch/x86/kernel/kprobes/opt.c
26916 index 7b3b9d1..e2478b91 100644
26917 --- a/arch/x86/kernel/kprobes/opt.c
26918 +++ b/arch/x86/kernel/kprobes/opt.c
26919 @@ -79,6 +79,7 @@ found:
26920 /* Insert a move instruction which sets a pointer to eax/rdi (1st arg). */
26921 static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
26922 {
26923 + pax_open_kernel();
26924 #ifdef CONFIG_X86_64
26925 *addr++ = 0x48;
26926 *addr++ = 0xbf;
26927 @@ -86,6 +87,7 @@ static void synthesize_set_arg1(kprobe_opcode_t *addr, unsigned long val)
26928 *addr++ = 0xb8;
26929 #endif
26930 *(unsigned long *)addr = val;
26931 + pax_close_kernel();
26932 }
26933
26934 asm (
26935 @@ -342,7 +344,7 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op,
26936 * Verify if the address gap is in 2GB range, because this uses
26937 * a relative jump.
26938 */
26939 - rel = (long)op->optinsn.insn - (long)op->kp.addr + RELATIVEJUMP_SIZE;
26940 + rel = (long)op->optinsn.insn - ktla_ktva((long)op->kp.addr) + RELATIVEJUMP_SIZE;
26941 if (abs(rel) > 0x7fffffff) {
26942 __arch_remove_optimized_kprobe(op, 0);
26943 return -ERANGE;
26944 @@ -359,16 +361,18 @@ int arch_prepare_optimized_kprobe(struct optimized_kprobe *op,
26945 op->optinsn.size = ret;
26946
26947 /* Copy arch-dep-instance from template */
26948 - memcpy(buf, &optprobe_template_entry, TMPL_END_IDX);
26949 + pax_open_kernel();
26950 + memcpy(buf, ktla_ktva(&optprobe_template_entry), TMPL_END_IDX);
26951 + pax_close_kernel();
26952
26953 /* Set probe information */
26954 synthesize_set_arg1(buf + TMPL_MOVE_IDX, (unsigned long)op);
26955
26956 /* Set probe function call */
26957 - synthesize_relcall(buf + TMPL_CALL_IDX, optimized_callback);
26958 + synthesize_relcall(ktva_ktla(buf) + TMPL_CALL_IDX, optimized_callback);
26959
26960 /* Set returning jmp instruction at the tail of out-of-line buffer */
26961 - synthesize_reljump(buf + TMPL_END_IDX + op->optinsn.size,
26962 + synthesize_reljump(ktva_ktla(buf) + TMPL_END_IDX + op->optinsn.size,
26963 (u8 *)op->kp.addr + op->optinsn.size);
26964
26965 flush_icache_range((unsigned long) buf,
26966 @@ -393,7 +397,7 @@ void arch_optimize_kprobes(struct list_head *oplist)
26967 WARN_ON(kprobe_disabled(&op->kp));
26968
26969 /* Backup instructions which will be replaced by jump address */
26970 - memcpy(op->optinsn.copied_insn, op->kp.addr + INT3_SIZE,
26971 + memcpy(op->optinsn.copied_insn, ktla_ktva(op->kp.addr) + INT3_SIZE,
26972 RELATIVE_ADDR_SIZE);
26973
26974 insn_buf[0] = RELATIVEJUMP_OPCODE;
26975 @@ -441,7 +445,7 @@ int setup_detour_execution(struct kprobe *p, struct pt_regs *regs, int reenter)
26976 /* This kprobe is really able to run optimized path. */
26977 op = container_of(p, struct optimized_kprobe, kp);
26978 /* Detour through copied instructions */
26979 - regs->ip = (unsigned long)op->optinsn.insn + TMPL_END_IDX;
26980 + regs->ip = ktva_ktla((unsigned long)op->optinsn.insn) + TMPL_END_IDX;
26981 if (!reenter)
26982 reset_current_kprobe();
26983 preempt_enable_no_resched();
26984 diff --git a/arch/x86/kernel/ksysfs.c b/arch/x86/kernel/ksysfs.c
26985 index c2bedae..25e7ab60 100644
26986 --- a/arch/x86/kernel/ksysfs.c
26987 +++ b/arch/x86/kernel/ksysfs.c
26988 @@ -184,7 +184,7 @@ out:
26989
26990 static struct kobj_attribute type_attr = __ATTR_RO(type);
26991
26992 -static struct bin_attribute data_attr = {
26993 +static bin_attribute_no_const data_attr __read_only = {
26994 .attr = {
26995 .name = "data",
26996 .mode = S_IRUGO,
26997 diff --git a/arch/x86/kernel/kvmclock.c b/arch/x86/kernel/kvmclock.c
26998 index 49487b4..a94a0d3 100644
26999 --- a/arch/x86/kernel/kvmclock.c
27000 +++ b/arch/x86/kernel/kvmclock.c
27001 @@ -29,7 +29,7 @@
27002 #include <asm/x86_init.h>
27003 #include <asm/reboot.h>
27004
27005 -static int kvmclock = 1;
27006 +static int kvmclock __read_only = 1;
27007 static int msr_kvm_system_time = MSR_KVM_SYSTEM_TIME;
27008 static int msr_kvm_wall_clock = MSR_KVM_WALL_CLOCK;
27009
27010 @@ -41,7 +41,7 @@ static int parse_no_kvmclock(char *arg)
27011 early_param("no-kvmclock", parse_no_kvmclock);
27012
27013 /* The hypervisor will put information about time periodically here */
27014 -static struct pvclock_vsyscall_time_info *hv_clock;
27015 +static struct pvclock_vsyscall_time_info hv_clock[NR_CPUS] __page_aligned_bss;
27016 static struct pvclock_wall_clock wall_clock;
27017
27018 /*
27019 @@ -132,7 +132,7 @@ bool kvm_check_and_clear_guest_paused(void)
27020 struct pvclock_vcpu_time_info *src;
27021 int cpu = smp_processor_id();
27022
27023 - if (!hv_clock)
27024 + if (!kvmclock)
27025 return ret;
27026
27027 src = &hv_clock[cpu].pvti;
27028 @@ -159,7 +159,7 @@ int kvm_register_clock(char *txt)
27029 int low, high, ret;
27030 struct pvclock_vcpu_time_info *src;
27031
27032 - if (!hv_clock)
27033 + if (!kvmclock)
27034 return 0;
27035
27036 src = &hv_clock[cpu].pvti;
27037 @@ -219,7 +219,6 @@ static void kvm_shutdown(void)
27038 void __init kvmclock_init(void)
27039 {
27040 struct pvclock_vcpu_time_info *vcpu_time;
27041 - unsigned long mem;
27042 int size, cpu;
27043 u8 flags;
27044
27045 @@ -237,15 +236,8 @@ void __init kvmclock_init(void)
27046 printk(KERN_INFO "kvm-clock: Using msrs %x and %x",
27047 msr_kvm_system_time, msr_kvm_wall_clock);
27048
27049 - mem = memblock_alloc(size, PAGE_SIZE);
27050 - if (!mem)
27051 - return;
27052 - hv_clock = __va(mem);
27053 - memset(hv_clock, 0, size);
27054 -
27055 if (kvm_register_clock("primary cpu clock")) {
27056 - hv_clock = NULL;
27057 - memblock_free(mem, size);
27058 + kvmclock = 0;
27059 return;
27060 }
27061 pv_time_ops.sched_clock = kvm_clock_read;
27062 @@ -286,7 +278,7 @@ int __init kvm_setup_vsyscall_timeinfo(void)
27063 struct pvclock_vcpu_time_info *vcpu_time;
27064 unsigned int size;
27065
27066 - if (!hv_clock)
27067 + if (!kvmclock)
27068 return 0;
27069
27070 size = PAGE_ALIGN(sizeof(struct pvclock_vsyscall_time_info)*NR_CPUS);
27071 diff --git a/arch/x86/kernel/ldt.c b/arch/x86/kernel/ldt.c
27072 index 2bcc052..864eb84 100644
27073 --- a/arch/x86/kernel/ldt.c
27074 +++ b/arch/x86/kernel/ldt.c
27075 @@ -11,6 +11,7 @@
27076 #include <linux/sched.h>
27077 #include <linux/string.h>
27078 #include <linux/mm.h>
27079 +#include <linux/ratelimit.h>
27080 #include <linux/smp.h>
27081 #include <linux/slab.h>
27082 #include <linux/vmalloc.h>
27083 @@ -21,6 +22,14 @@
27084 #include <asm/mmu_context.h>
27085 #include <asm/syscalls.h>
27086
27087 +#ifdef CONFIG_GRKERNSEC
27088 +int sysctl_modify_ldt __read_only = 0;
27089 +#elif defined(CONFIG_DEFAULT_MODIFY_LDT_SYSCALL)
27090 +int sysctl_modify_ldt __read_only = 1;
27091 +#else
27092 +int sysctl_modify_ldt __read_only = 0;
27093 +#endif
27094 +
27095 /* context.lock is held for us, so we don't need any locking. */
27096 static void flush_ldt(void *current_mm)
27097 {
27098 @@ -109,6 +118,23 @@ int init_new_context(struct task_struct *tsk, struct mm_struct *mm)
27099 struct mm_struct *old_mm;
27100 int retval = 0;
27101
27102 + if (tsk == current) {
27103 + mm->context.vdso = 0;
27104 +
27105 +#ifdef CONFIG_X86_32
27106 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
27107 + mm->context.user_cs_base = 0UL;
27108 + mm->context.user_cs_limit = ~0UL;
27109 +
27110 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_SMP)
27111 + cpumask_clear(&mm->context.cpu_user_cs_mask);
27112 +#endif
27113 +
27114 +#endif
27115 +#endif
27116 +
27117 + }
27118 +
27119 mutex_init(&mm->context.lock);
27120 old_mm = current->mm;
27121 if (!old_mm) {
27122 @@ -235,6 +261,14 @@ static int write_ldt(void __user *ptr, unsigned long bytecount, int oldmode)
27123 /* The user wants to clear the entry. */
27124 memset(&ldt, 0, sizeof(ldt));
27125 } else {
27126 +
27127 +#ifdef CONFIG_PAX_SEGMEXEC
27128 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (ldt_info.contents & MODIFY_LDT_CONTENTS_CODE)) {
27129 + error = -EINVAL;
27130 + goto out;
27131 + }
27132 +#endif
27133 +
27134 if (!IS_ENABLED(CONFIG_X86_16BIT) && !ldt_info.seg_32bit) {
27135 error = -EINVAL;
27136 goto out;
27137 @@ -276,6 +310,15 @@ asmlinkage int sys_modify_ldt(int func, void __user *ptr,
27138 {
27139 int ret = -ENOSYS;
27140
27141 + if (!sysctl_modify_ldt) {
27142 + printk_ratelimited(KERN_INFO
27143 + "Denied a call to modify_ldt() from %s[%d] (uid: %d)."
27144 + " Adjust sysctl if this was not an exploit attempt.\n",
27145 + current->comm, task_pid_nr(current),
27146 + from_kuid_munged(current_user_ns(), current_uid()));
27147 + return ret;
27148 + }
27149 +
27150 switch (func) {
27151 case 0:
27152 ret = read_ldt(ptr, bytecount);
27153 diff --git a/arch/x86/kernel/livepatch.c b/arch/x86/kernel/livepatch.c
27154 index ff3c3101d..d7c0cd8 100644
27155 --- a/arch/x86/kernel/livepatch.c
27156 +++ b/arch/x86/kernel/livepatch.c
27157 @@ -41,9 +41,10 @@ int klp_write_module_reloc(struct module *mod, unsigned long type,
27158 int ret, numpages, size = 4;
27159 bool readonly;
27160 unsigned long val;
27161 - unsigned long core = (unsigned long)mod->module_core;
27162 - unsigned long core_ro_size = mod->core_ro_size;
27163 - unsigned long core_size = mod->core_size;
27164 + unsigned long core_rx = (unsigned long)mod->module_core_rx;
27165 + unsigned long core_rw = (unsigned long)mod->module_core_rw;
27166 + unsigned long core_size_rx = mod->core_size_rx;
27167 + unsigned long core_size_rw = mod->core_size_rw;
27168
27169 switch (type) {
27170 case R_X86_64_NONE:
27171 @@ -66,11 +67,12 @@ int klp_write_module_reloc(struct module *mod, unsigned long type,
27172 return -EINVAL;
27173 }
27174
27175 - if (loc < core || loc >= core + core_size)
27176 + if ((loc < core_rx || loc >= core_rx + core_size_rx) &&
27177 + (loc < core_rw || loc >= core_rw + core_size_rw))
27178 /* loc does not point to any symbol inside the module */
27179 return -EINVAL;
27180
27181 - if (loc < core + core_ro_size)
27182 + if (loc < core_rx + core_size_rx)
27183 readonly = true;
27184 else
27185 readonly = false;
27186 diff --git a/arch/x86/kernel/machine_kexec_32.c b/arch/x86/kernel/machine_kexec_32.c
27187 index 469b23d..5449cfe 100644
27188 --- a/arch/x86/kernel/machine_kexec_32.c
27189 +++ b/arch/x86/kernel/machine_kexec_32.c
27190 @@ -26,7 +26,7 @@
27191 #include <asm/cacheflush.h>
27192 #include <asm/debugreg.h>
27193
27194 -static void set_idt(void *newidt, __u16 limit)
27195 +static void set_idt(struct desc_struct *newidt, __u16 limit)
27196 {
27197 struct desc_ptr curidt;
27198
27199 @@ -38,7 +38,7 @@ static void set_idt(void *newidt, __u16 limit)
27200 }
27201
27202
27203 -static void set_gdt(void *newgdt, __u16 limit)
27204 +static void set_gdt(struct desc_struct *newgdt, __u16 limit)
27205 {
27206 struct desc_ptr curgdt;
27207
27208 @@ -216,7 +216,7 @@ void machine_kexec(struct kimage *image)
27209 }
27210
27211 control_page = page_address(image->control_code_page);
27212 - memcpy(control_page, relocate_kernel, KEXEC_CONTROL_CODE_MAX_SIZE);
27213 + memcpy(control_page, (void *)ktla_ktva((unsigned long)relocate_kernel), KEXEC_CONTROL_CODE_MAX_SIZE);
27214
27215 relocate_kernel_ptr = control_page;
27216 page_list[PA_CONTROL_PAGE] = __pa(control_page);
27217 diff --git a/arch/x86/kernel/mcount_64.S b/arch/x86/kernel/mcount_64.S
27218 index 94ea120..4154cea 100644
27219 --- a/arch/x86/kernel/mcount_64.S
27220 +++ b/arch/x86/kernel/mcount_64.S
27221 @@ -7,7 +7,7 @@
27222 #include <linux/linkage.h>
27223 #include <asm/ptrace.h>
27224 #include <asm/ftrace.h>
27225 -
27226 +#include <asm/alternative-asm.h>
27227
27228 .code64
27229 .section .entry.text, "ax"
27230 @@ -148,8 +148,9 @@
27231 #ifdef CONFIG_DYNAMIC_FTRACE
27232
27233 ENTRY(function_hook)
27234 + pax_force_retaddr
27235 retq
27236 -END(function_hook)
27237 +ENDPROC(function_hook)
27238
27239 ENTRY(ftrace_caller)
27240 /* save_mcount_regs fills in first two parameters */
27241 @@ -181,8 +182,9 @@ GLOBAL(ftrace_graph_call)
27242 #endif
27243
27244 GLOBAL(ftrace_stub)
27245 + pax_force_retaddr
27246 retq
27247 -END(ftrace_caller)
27248 +ENDPROC(ftrace_caller)
27249
27250 ENTRY(ftrace_regs_caller)
27251 /* Save the current flags before any operations that can change them */
27252 @@ -253,7 +255,7 @@ GLOBAL(ftrace_regs_caller_end)
27253
27254 jmp ftrace_return
27255
27256 -END(ftrace_regs_caller)
27257 +ENDPROC(ftrace_regs_caller)
27258
27259
27260 #else /* ! CONFIG_DYNAMIC_FTRACE */
27261 @@ -272,18 +274,20 @@ fgraph_trace:
27262 #endif
27263
27264 GLOBAL(ftrace_stub)
27265 + pax_force_retaddr
27266 retq
27267
27268 trace:
27269 /* save_mcount_regs fills in first two parameters */
27270 save_mcount_regs
27271
27272 + pax_force_fptr ftrace_trace_function
27273 call *ftrace_trace_function
27274
27275 restore_mcount_regs
27276
27277 jmp fgraph_trace
27278 -END(function_hook)
27279 +ENDPROC(function_hook)
27280 #endif /* CONFIG_DYNAMIC_FTRACE */
27281 #endif /* CONFIG_FUNCTION_TRACER */
27282
27283 @@ -305,8 +309,9 @@ ENTRY(ftrace_graph_caller)
27284
27285 restore_mcount_regs
27286
27287 + pax_force_retaddr
27288 retq
27289 -END(ftrace_graph_caller)
27290 +ENDPROC(ftrace_graph_caller)
27291
27292 GLOBAL(return_to_handler)
27293 subq $24, %rsp
27294 @@ -322,5 +327,7 @@ GLOBAL(return_to_handler)
27295 movq 8(%rsp), %rdx
27296 movq (%rsp), %rax
27297 addq $24, %rsp
27298 + pax_force_fptr %rdi
27299 jmp *%rdi
27300 +ENDPROC(return_to_handler)
27301 #endif
27302 diff --git a/arch/x86/kernel/module.c b/arch/x86/kernel/module.c
27303 index 005c03e..7000fe4 100644
27304 --- a/arch/x86/kernel/module.c
27305 +++ b/arch/x86/kernel/module.c
27306 @@ -75,17 +75,17 @@ static unsigned long int get_module_load_offset(void)
27307 }
27308 #endif
27309
27310 -void *module_alloc(unsigned long size)
27311 +static inline void *__module_alloc(unsigned long size, pgprot_t prot)
27312 {
27313 void *p;
27314
27315 - if (PAGE_ALIGN(size) > MODULES_LEN)
27316 + if (!size || PAGE_ALIGN(size) > MODULES_LEN)
27317 return NULL;
27318
27319 p = __vmalloc_node_range(size, MODULE_ALIGN,
27320 MODULES_VADDR + get_module_load_offset(),
27321 - MODULES_END, GFP_KERNEL | __GFP_HIGHMEM,
27322 - PAGE_KERNEL_EXEC, 0, NUMA_NO_NODE,
27323 + MODULES_END, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO,
27324 + prot, 0, NUMA_NO_NODE,
27325 __builtin_return_address(0));
27326 if (p && (kasan_module_alloc(p, size) < 0)) {
27327 vfree(p);
27328 @@ -95,6 +95,51 @@ void *module_alloc(unsigned long size)
27329 return p;
27330 }
27331
27332 +void *module_alloc(unsigned long size)
27333 +{
27334 +
27335 +#ifdef CONFIG_PAX_KERNEXEC
27336 + return __module_alloc(size, PAGE_KERNEL);
27337 +#else
27338 + return __module_alloc(size, PAGE_KERNEL_EXEC);
27339 +#endif
27340 +
27341 +}
27342 +
27343 +#ifdef CONFIG_PAX_KERNEXEC
27344 +#ifdef CONFIG_X86_32
27345 +void *module_alloc_exec(unsigned long size)
27346 +{
27347 + struct vm_struct *area;
27348 +
27349 + if (size == 0)
27350 + return NULL;
27351 +
27352 + area = __get_vm_area(size, VM_ALLOC, (unsigned long)&MODULES_EXEC_VADDR, (unsigned long)&MODULES_EXEC_END);
27353 +return area ? area->addr : NULL;
27354 +}
27355 +EXPORT_SYMBOL(module_alloc_exec);
27356 +
27357 +void module_memfree_exec(void *module_region)
27358 +{
27359 + vunmap(module_region);
27360 +}
27361 +EXPORT_SYMBOL(module_memfree_exec);
27362 +#else
27363 +void module_memfree_exec(void *module_region)
27364 +{
27365 + module_memfree(module_region);
27366 +}
27367 +EXPORT_SYMBOL(module_memfree_exec);
27368 +
27369 +void *module_alloc_exec(unsigned long size)
27370 +{
27371 + return __module_alloc(size, PAGE_KERNEL_RX);
27372 +}
27373 +EXPORT_SYMBOL(module_alloc_exec);
27374 +#endif
27375 +#endif
27376 +
27377 #ifdef CONFIG_X86_32
27378 int apply_relocate(Elf32_Shdr *sechdrs,
27379 const char *strtab,
27380 @@ -105,14 +150,16 @@ int apply_relocate(Elf32_Shdr *sechdrs,
27381 unsigned int i;
27382 Elf32_Rel *rel = (void *)sechdrs[relsec].sh_addr;
27383 Elf32_Sym *sym;
27384 - uint32_t *location;
27385 + uint32_t *plocation, location;
27386
27387 DEBUGP("Applying relocate section %u to %u\n",
27388 relsec, sechdrs[relsec].sh_info);
27389 for (i = 0; i < sechdrs[relsec].sh_size / sizeof(*rel); i++) {
27390 /* This is where to make the change */
27391 - location = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr
27392 - + rel[i].r_offset;
27393 + plocation = (void *)sechdrs[sechdrs[relsec].sh_info].sh_addr + rel[i].r_offset;
27394 + location = (uint32_t)plocation;
27395 + if (sechdrs[sechdrs[relsec].sh_info].sh_flags & SHF_EXECINSTR)
27396 + plocation = (uint32_t *)ktla_ktva((unsigned long)plocation);
27397 /* This is the symbol it is referring to. Note that all
27398 undefined symbols have been resolved. */
27399 sym = (Elf32_Sym *)sechdrs[symindex].sh_addr
27400 @@ -121,11 +168,15 @@ int apply_relocate(Elf32_Shdr *sechdrs,
27401 switch (ELF32_R_TYPE(rel[i].r_info)) {
27402 case R_386_32:
27403 /* We add the value into the location given */
27404 - *location += sym->st_value;
27405 + pax_open_kernel();
27406 + *plocation += sym->st_value;
27407 + pax_close_kernel();
27408 break;
27409 case R_386_PC32:
27410 /* Add the value, subtract its position */
27411 - *location += sym->st_value - (uint32_t)location;
27412 + pax_open_kernel();
27413 + *plocation += sym->st_value - location;
27414 + pax_close_kernel();
27415 break;
27416 default:
27417 pr_err("%s: Unknown relocation: %u\n",
27418 @@ -170,21 +221,30 @@ int apply_relocate_add(Elf64_Shdr *sechdrs,
27419 case R_X86_64_NONE:
27420 break;
27421 case R_X86_64_64:
27422 + pax_open_kernel();
27423 *(u64 *)loc = val;
27424 + pax_close_kernel();
27425 break;
27426 case R_X86_64_32:
27427 + pax_open_kernel();
27428 *(u32 *)loc = val;
27429 + pax_close_kernel();
27430 if (val != *(u32 *)loc)
27431 goto overflow;
27432 break;
27433 case R_X86_64_32S:
27434 + pax_open_kernel();
27435 *(s32 *)loc = val;
27436 + pax_close_kernel();
27437 if ((s64)val != *(s32 *)loc)
27438 goto overflow;
27439 break;
27440 case R_X86_64_PC32:
27441 val -= (u64)loc;
27442 + pax_open_kernel();
27443 *(u32 *)loc = val;
27444 + pax_close_kernel();
27445 +
27446 #if 0
27447 if ((s64)val != *(s32 *)loc)
27448 goto overflow;
27449 diff --git a/arch/x86/kernel/msr.c b/arch/x86/kernel/msr.c
27450 index 113e707..0a690e1 100644
27451 --- a/arch/x86/kernel/msr.c
27452 +++ b/arch/x86/kernel/msr.c
27453 @@ -39,6 +39,7 @@
27454 #include <linux/notifier.h>
27455 #include <linux/uaccess.h>
27456 #include <linux/gfp.h>
27457 +#include <linux/grsecurity.h>
27458
27459 #include <asm/processor.h>
27460 #include <asm/msr.h>
27461 @@ -105,6 +106,11 @@ static ssize_t msr_write(struct file *file, const char __user *buf,
27462 int err = 0;
27463 ssize_t bytes = 0;
27464
27465 +#ifdef CONFIG_GRKERNSEC_KMEM
27466 + gr_handle_msr_write();
27467 + return -EPERM;
27468 +#endif
27469 +
27470 if (count % 8)
27471 return -EINVAL; /* Invalid chunk size */
27472
27473 @@ -152,6 +158,10 @@ static long msr_ioctl(struct file *file, unsigned int ioc, unsigned long arg)
27474 err = -EBADF;
27475 break;
27476 }
27477 +#ifdef CONFIG_GRKERNSEC_KMEM
27478 + gr_handle_msr_write();
27479 + return -EPERM;
27480 +#endif
27481 if (copy_from_user(&regs, uregs, sizeof regs)) {
27482 err = -EFAULT;
27483 break;
27484 @@ -235,7 +245,7 @@ static int msr_class_cpu_callback(struct notifier_block *nfb,
27485 return notifier_from_errno(err);
27486 }
27487
27488 -static struct notifier_block __refdata msr_class_cpu_notifier = {
27489 +static struct notifier_block msr_class_cpu_notifier = {
27490 .notifier_call = msr_class_cpu_callback,
27491 };
27492
27493 diff --git a/arch/x86/kernel/nmi.c b/arch/x86/kernel/nmi.c
27494 index d05bd2e..f690edd 100644
27495 --- a/arch/x86/kernel/nmi.c
27496 +++ b/arch/x86/kernel/nmi.c
27497 @@ -98,16 +98,16 @@ fs_initcall(nmi_warning_debugfs);
27498
27499 static void nmi_max_handler(struct irq_work *w)
27500 {
27501 - struct nmiaction *a = container_of(w, struct nmiaction, irq_work);
27502 + struct nmiwork *n = container_of(w, struct nmiwork, irq_work);
27503 int remainder_ns, decimal_msecs;
27504 - u64 whole_msecs = ACCESS_ONCE(a->max_duration);
27505 + u64 whole_msecs = ACCESS_ONCE(n->max_duration);
27506
27507 remainder_ns = do_div(whole_msecs, (1000 * 1000));
27508 decimal_msecs = remainder_ns / 1000;
27509
27510 printk_ratelimited(KERN_INFO
27511 "INFO: NMI handler (%ps) took too long to run: %lld.%03d msecs\n",
27512 - a->handler, whole_msecs, decimal_msecs);
27513 + n->action->handler, whole_msecs, decimal_msecs);
27514 }
27515
27516 static int nmi_handle(unsigned int type, struct pt_regs *regs, bool b2b)
27517 @@ -134,11 +134,11 @@ static int nmi_handle(unsigned int type, struct pt_regs *regs, bool b2b)
27518 delta = sched_clock() - delta;
27519 trace_nmi_handler(a->handler, (int)delta, thishandled);
27520
27521 - if (delta < nmi_longest_ns || delta < a->max_duration)
27522 + if (delta < nmi_longest_ns || delta < a->work->max_duration)
27523 continue;
27524
27525 - a->max_duration = delta;
27526 - irq_work_queue(&a->irq_work);
27527 + a->work->max_duration = delta;
27528 + irq_work_queue(&a->work->irq_work);
27529 }
27530
27531 rcu_read_unlock();
27532 @@ -148,7 +148,7 @@ static int nmi_handle(unsigned int type, struct pt_regs *regs, bool b2b)
27533 }
27534 NOKPROBE_SYMBOL(nmi_handle);
27535
27536 -int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27537 +int __register_nmi_handler(unsigned int type, const struct nmiaction *action)
27538 {
27539 struct nmi_desc *desc = nmi_to_desc(type);
27540 unsigned long flags;
27541 @@ -156,7 +156,8 @@ int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27542 if (!action->handler)
27543 return -EINVAL;
27544
27545 - init_irq_work(&action->irq_work, nmi_max_handler);
27546 + action->work->action = action;
27547 + init_irq_work(&action->work->irq_work, nmi_max_handler);
27548
27549 spin_lock_irqsave(&desc->lock, flags);
27550
27551 @@ -174,9 +175,9 @@ int __register_nmi_handler(unsigned int type, struct nmiaction *action)
27552 * event confuses some handlers (kdump uses this flag)
27553 */
27554 if (action->flags & NMI_FLAG_FIRST)
27555 - list_add_rcu(&action->list, &desc->head);
27556 + pax_list_add_rcu((struct list_head *)&action->list, &desc->head);
27557 else
27558 - list_add_tail_rcu(&action->list, &desc->head);
27559 + pax_list_add_tail_rcu((struct list_head *)&action->list, &desc->head);
27560
27561 spin_unlock_irqrestore(&desc->lock, flags);
27562 return 0;
27563 @@ -199,7 +200,7 @@ void unregister_nmi_handler(unsigned int type, const char *name)
27564 if (!strcmp(n->name, name)) {
27565 WARN(in_nmi(),
27566 "Trying to free NMI (%s) from NMI context!\n", n->name);
27567 - list_del_rcu(&n->list);
27568 + pax_list_del_rcu((struct list_head *)&n->list);
27569 break;
27570 }
27571 }
27572 @@ -481,6 +482,17 @@ static DEFINE_PER_CPU(int, update_debug_stack);
27573 dotraplinkage notrace void
27574 do_nmi(struct pt_regs *regs, long error_code)
27575 {
27576 +
27577 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
27578 + if (!user_mode(regs)) {
27579 + unsigned long cs = regs->cs & 0xFFFF;
27580 + unsigned long ip = ktva_ktla(regs->ip);
27581 +
27582 + if ((cs == __KERNEL_CS || cs == __KERNEXEC_KERNEL_CS) && ip <= (unsigned long)_etext)
27583 + regs->ip = ip;
27584 + }
27585 +#endif
27586 +
27587 if (this_cpu_read(nmi_state) != NMI_NOT_RUNNING) {
27588 this_cpu_write(nmi_state, NMI_LATCHED);
27589 return;
27590 diff --git a/arch/x86/kernel/nmi_selftest.c b/arch/x86/kernel/nmi_selftest.c
27591 index 6d9582e..f746287 100644
27592 --- a/arch/x86/kernel/nmi_selftest.c
27593 +++ b/arch/x86/kernel/nmi_selftest.c
27594 @@ -43,7 +43,7 @@ static void __init init_nmi_testsuite(void)
27595 {
27596 /* trap all the unknown NMIs we may generate */
27597 register_nmi_handler(NMI_UNKNOWN, nmi_unk_cb, 0, "nmi_selftest_unk",
27598 - __initdata);
27599 + __initconst);
27600 }
27601
27602 static void __init cleanup_nmi_testsuite(void)
27603 @@ -66,7 +66,7 @@ static void __init test_nmi_ipi(struct cpumask *mask)
27604 unsigned long timeout;
27605
27606 if (register_nmi_handler(NMI_LOCAL, test_nmi_ipi_callback,
27607 - NMI_FLAG_FIRST, "nmi_selftest", __initdata)) {
27608 + NMI_FLAG_FIRST, "nmi_selftest", __initconst)) {
27609 nmi_fail = FAILURE;
27610 return;
27611 }
27612 diff --git a/arch/x86/kernel/paravirt-spinlocks.c b/arch/x86/kernel/paravirt-spinlocks.c
27613 index 33ee3e0..da3519a 100644
27614 --- a/arch/x86/kernel/paravirt-spinlocks.c
27615 +++ b/arch/x86/kernel/paravirt-spinlocks.c
27616 @@ -23,7 +23,7 @@ bool pv_is_native_spin_unlock(void)
27617 }
27618 #endif
27619
27620 -struct pv_lock_ops pv_lock_ops = {
27621 +struct pv_lock_ops pv_lock_ops __read_only = {
27622 #ifdef CONFIG_SMP
27623 #ifdef CONFIG_QUEUED_SPINLOCKS
27624 .queued_spin_lock_slowpath = native_queued_spin_lock_slowpath,
27625 diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
27626 index ebb5657..dde2f45 100644
27627 --- a/arch/x86/kernel/paravirt.c
27628 +++ b/arch/x86/kernel/paravirt.c
27629 @@ -64,6 +64,9 @@ u64 _paravirt_ident_64(u64 x)
27630 {
27631 return x;
27632 }
27633 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
27634 +PV_CALLEE_SAVE_REGS_THUNK(_paravirt_ident_64);
27635 +#endif
27636
27637 void __init default_banner(void)
27638 {
27639 @@ -150,16 +153,20 @@ unsigned paravirt_patch_default(u8 type, u16 clobbers, void *insnbuf,
27640
27641 if (opfunc == NULL)
27642 /* If there's no function, patch it with a ud2a (BUG) */
27643 - ret = paravirt_patch_insns(insnbuf, len, ud2a, ud2a+sizeof(ud2a));
27644 - else if (opfunc == _paravirt_nop)
27645 + ret = paravirt_patch_insns(insnbuf, len, (const char *)ktva_ktla((unsigned long)ud2a), ud2a+sizeof(ud2a));
27646 + else if (opfunc == (void *)_paravirt_nop)
27647 /* If the operation is a nop, then nop the callsite */
27648 ret = paravirt_patch_nop();
27649
27650 /* identity functions just return their single argument */
27651 - else if (opfunc == _paravirt_ident_32)
27652 + else if (opfunc == (void *)_paravirt_ident_32)
27653 ret = paravirt_patch_ident_32(insnbuf, len);
27654 - else if (opfunc == _paravirt_ident_64)
27655 + else if (opfunc == (void *)_paravirt_ident_64)
27656 ret = paravirt_patch_ident_64(insnbuf, len);
27657 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
27658 + else if (opfunc == (void *)__raw_callee_save__paravirt_ident_64)
27659 + ret = paravirt_patch_ident_64(insnbuf, len);
27660 +#endif
27661
27662 else if (type == PARAVIRT_PATCH(pv_cpu_ops.iret) ||
27663 #ifdef CONFIG_X86_32
27664 @@ -186,7 +193,7 @@ unsigned paravirt_patch_insns(void *insnbuf, unsigned len,
27665 if (insn_len > len || start == NULL)
27666 insn_len = len;
27667 else
27668 - memcpy(insnbuf, start, insn_len);
27669 + memcpy(insnbuf, (const char *)ktla_ktva((unsigned long)start), insn_len);
27670
27671 return insn_len;
27672 }
27673 @@ -310,7 +317,7 @@ enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
27674 return this_cpu_read(paravirt_lazy_mode);
27675 }
27676
27677 -struct pv_info pv_info = {
27678 +struct pv_info pv_info __read_only = {
27679 .name = "bare hardware",
27680 .paravirt_enabled = 0,
27681 .kernel_rpl = 0,
27682 @@ -321,16 +328,16 @@ struct pv_info pv_info = {
27683 #endif
27684 };
27685
27686 -struct pv_init_ops pv_init_ops = {
27687 +struct pv_init_ops pv_init_ops __read_only = {
27688 .patch = native_patch,
27689 };
27690
27691 -struct pv_time_ops pv_time_ops = {
27692 +struct pv_time_ops pv_time_ops __read_only = {
27693 .sched_clock = native_sched_clock,
27694 .steal_clock = native_steal_clock,
27695 };
27696
27697 -__visible struct pv_irq_ops pv_irq_ops = {
27698 +__visible struct pv_irq_ops pv_irq_ops __read_only = {
27699 .save_fl = __PV_IS_CALLEE_SAVE(native_save_fl),
27700 .restore_fl = __PV_IS_CALLEE_SAVE(native_restore_fl),
27701 .irq_disable = __PV_IS_CALLEE_SAVE(native_irq_disable),
27702 @@ -342,7 +349,7 @@ __visible struct pv_irq_ops pv_irq_ops = {
27703 #endif
27704 };
27705
27706 -__visible struct pv_cpu_ops pv_cpu_ops = {
27707 +__visible struct pv_cpu_ops pv_cpu_ops __read_only = {
27708 .cpuid = native_cpuid,
27709 .get_debugreg = native_get_debugreg,
27710 .set_debugreg = native_set_debugreg,
27711 @@ -405,21 +412,26 @@ NOKPROBE_SYMBOL(native_get_debugreg);
27712 NOKPROBE_SYMBOL(native_set_debugreg);
27713 NOKPROBE_SYMBOL(native_load_idt);
27714
27715 -struct pv_apic_ops pv_apic_ops = {
27716 +struct pv_apic_ops pv_apic_ops __read_only= {
27717 #ifdef CONFIG_X86_LOCAL_APIC
27718 .startup_ipi_hook = paravirt_nop,
27719 #endif
27720 };
27721
27722 -#if defined(CONFIG_X86_32) && !defined(CONFIG_X86_PAE)
27723 +#ifdef CONFIG_X86_32
27724 +#ifdef CONFIG_X86_PAE
27725 +/* 64-bit pagetable entries */
27726 +#define PTE_IDENT PV_CALLEE_SAVE(_paravirt_ident_64)
27727 +#else
27728 /* 32-bit pagetable entries */
27729 #define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_32)
27730 +#endif
27731 #else
27732 /* 64-bit pagetable entries */
27733 #define PTE_IDENT __PV_IS_CALLEE_SAVE(_paravirt_ident_64)
27734 #endif
27735
27736 -struct pv_mmu_ops pv_mmu_ops = {
27737 +struct pv_mmu_ops pv_mmu_ops __read_only = {
27738
27739 .read_cr2 = native_read_cr2,
27740 .write_cr2 = native_write_cr2,
27741 @@ -469,6 +481,7 @@ struct pv_mmu_ops pv_mmu_ops = {
27742 .make_pud = PTE_IDENT,
27743
27744 .set_pgd = native_set_pgd,
27745 + .set_pgd_batched = native_set_pgd_batched,
27746 #endif
27747 #endif /* CONFIG_PGTABLE_LEVELS >= 3 */
27748
27749 @@ -489,6 +502,12 @@ struct pv_mmu_ops pv_mmu_ops = {
27750 },
27751
27752 .set_fixmap = native_set_fixmap,
27753 +
27754 +#ifdef CONFIG_PAX_KERNEXEC
27755 + .pax_open_kernel = native_pax_open_kernel,
27756 + .pax_close_kernel = native_pax_close_kernel,
27757 +#endif
27758 +
27759 };
27760
27761 EXPORT_SYMBOL_GPL(pv_time_ops);
27762 diff --git a/arch/x86/kernel/paravirt_patch_64.c b/arch/x86/kernel/paravirt_patch_64.c
27763 index 8aa0558..465512e 100644
27764 --- a/arch/x86/kernel/paravirt_patch_64.c
27765 +++ b/arch/x86/kernel/paravirt_patch_64.c
27766 @@ -9,7 +9,11 @@ DEF_NATIVE(pv_irq_ops, save_fl, "pushfq; popq %rax");
27767 DEF_NATIVE(pv_mmu_ops, read_cr2, "movq %cr2, %rax");
27768 DEF_NATIVE(pv_mmu_ops, read_cr3, "movq %cr3, %rax");
27769 DEF_NATIVE(pv_mmu_ops, write_cr3, "movq %rdi, %cr3");
27770 +
27771 +#ifndef CONFIG_PAX_MEMORY_UDEREF
27772 DEF_NATIVE(pv_mmu_ops, flush_tlb_single, "invlpg (%rdi)");
27773 +#endif
27774 +
27775 DEF_NATIVE(pv_cpu_ops, clts, "clts");
27776 DEF_NATIVE(pv_cpu_ops, wbinvd, "wbinvd");
27777
27778 @@ -62,7 +66,11 @@ unsigned native_patch(u8 type, u16 clobbers, void *ibuf,
27779 PATCH_SITE(pv_mmu_ops, read_cr3);
27780 PATCH_SITE(pv_mmu_ops, write_cr3);
27781 PATCH_SITE(pv_cpu_ops, clts);
27782 +
27783 +#ifndef CONFIG_PAX_MEMORY_UDEREF
27784 PATCH_SITE(pv_mmu_ops, flush_tlb_single);
27785 +#endif
27786 +
27787 PATCH_SITE(pv_cpu_ops, wbinvd);
27788 #if defined(CONFIG_PARAVIRT_SPINLOCKS) && defined(CONFIG_QUEUED_SPINLOCKS)
27789 case PARAVIRT_PATCH(pv_lock_ops.queued_spin_unlock):
27790 diff --git a/arch/x86/kernel/pci-calgary_64.c b/arch/x86/kernel/pci-calgary_64.c
27791 index 0497f71..7186c0d 100644
27792 --- a/arch/x86/kernel/pci-calgary_64.c
27793 +++ b/arch/x86/kernel/pci-calgary_64.c
27794 @@ -1347,7 +1347,7 @@ static void __init get_tce_space_from_tar(void)
27795 tce_space = be64_to_cpu(readq(target));
27796 tce_space = tce_space & TAR_SW_BITS;
27797
27798 - tce_space = tce_space & (~specified_table_size);
27799 + tce_space = tce_space & (~(unsigned long)specified_table_size);
27800 info->tce_space = (u64 *)__va(tce_space);
27801 }
27802 }
27803 diff --git a/arch/x86/kernel/pci-iommu_table.c b/arch/x86/kernel/pci-iommu_table.c
27804 index 35ccf75..7a15747 100644
27805 --- a/arch/x86/kernel/pci-iommu_table.c
27806 +++ b/arch/x86/kernel/pci-iommu_table.c
27807 @@ -2,7 +2,7 @@
27808 #include <asm/iommu_table.h>
27809 #include <linux/string.h>
27810 #include <linux/kallsyms.h>
27811 -
27812 +#include <linux/sched.h>
27813
27814 #define DEBUG 1
27815
27816 diff --git a/arch/x86/kernel/pci-swiotlb.c b/arch/x86/kernel/pci-swiotlb.c
27817 index adf0392..88a7576 100644
27818 --- a/arch/x86/kernel/pci-swiotlb.c
27819 +++ b/arch/x86/kernel/pci-swiotlb.c
27820 @@ -40,7 +40,7 @@ void x86_swiotlb_free_coherent(struct device *dev, size_t size,
27821 struct dma_attrs *attrs)
27822 {
27823 if (is_swiotlb_buffer(dma_to_phys(dev, dma_addr)))
27824 - swiotlb_free_coherent(dev, size, vaddr, dma_addr);
27825 + swiotlb_free_coherent(dev, size, vaddr, dma_addr, attrs);
27826 else
27827 dma_generic_free_coherent(dev, size, vaddr, dma_addr, attrs);
27828 }
27829 diff --git a/arch/x86/kernel/process.c b/arch/x86/kernel/process.c
27830 index c27cad7..47c45ed 100644
27831 --- a/arch/x86/kernel/process.c
27832 +++ b/arch/x86/kernel/process.c
27833 @@ -15,6 +15,7 @@
27834 #include <linux/dmi.h>
27835 #include <linux/utsname.h>
27836 #include <linux/stackprotector.h>
27837 +#include <linux/kthread.h>
27838 #include <linux/tick.h>
27839 #include <linux/cpuidle.h>
27840 #include <trace/events/power.h>
27841 @@ -37,7 +38,8 @@
27842 * section. Since TSS's are completely CPU-local, we want them
27843 * on exact cacheline boundaries, to eliminate cacheline ping-pong.
27844 */
27845 -__visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = {
27846 +struct tss_struct cpu_tss[NR_CPUS] __visible ____cacheline_internodealigned_in_smp = {
27847 + [0 ... NR_CPUS-1] = {
27848 .x86_tss = {
27849 .sp0 = TOP_OF_INIT_STACK,
27850 #ifdef CONFIG_X86_32
27851 @@ -55,6 +57,7 @@ __visible DEFINE_PER_CPU_SHARED_ALIGNED(struct tss_struct, cpu_tss) = {
27852 */
27853 .io_bitmap = { [0 ... IO_BITMAP_LONGS] = ~0 },
27854 #endif
27855 +}
27856 };
27857 EXPORT_PER_CPU_SYMBOL(cpu_tss);
27858
27859 @@ -75,17 +78,36 @@ void idle_notifier_unregister(struct notifier_block *n)
27860 EXPORT_SYMBOL_GPL(idle_notifier_unregister);
27861 #endif
27862
27863 +struct kmem_cache *fpregs_state_cachep;
27864 +EXPORT_SYMBOL(fpregs_state_cachep);
27865 +
27866 +void __init arch_task_cache_init(void)
27867 +{
27868 + /* create a slab on which task_structs can be allocated */
27869 + fpregs_state_cachep =
27870 + kmem_cache_create("fpregs_state", xstate_size,
27871 + ARCH_MIN_TASKALIGN, SLAB_PANIC | SLAB_NOTRACK | SLAB_USERCOPY, NULL);
27872 +}
27873 +
27874 /*
27875 * this gets called so that we can store lazy state into memory and copy the
27876 * current task into the new thread.
27877 */
27878 int arch_dup_task_struct(struct task_struct *dst, struct task_struct *src)
27879 {
27880 - memcpy(dst, src, arch_task_struct_size);
27881 + *dst = *src;
27882 + dst->thread.fpu.state = kmem_cache_alloc_node(fpregs_state_cachep, GFP_KERNEL, tsk_fork_get_node(src));
27883 + memcpy(dst->thread.fpu.state, src->thread.fpu.state, xstate_size);
27884
27885 return fpu__copy(&dst->thread.fpu, &src->thread.fpu);
27886 }
27887
27888 +void arch_release_task_struct(struct task_struct *tsk)
27889 +{
27890 + kmem_cache_free(fpregs_state_cachep, tsk->thread.fpu.state);
27891 + tsk->thread.fpu.state = NULL;
27892 +}
27893 +
27894 /*
27895 * Free current thread data structures etc..
27896 */
27897 @@ -97,7 +119,7 @@ void exit_thread(void)
27898 struct fpu *fpu = &t->fpu;
27899
27900 if (bp) {
27901 - struct tss_struct *tss = &per_cpu(cpu_tss, get_cpu());
27902 + struct tss_struct *tss = cpu_tss + get_cpu();
27903
27904 t->io_bitmap_ptr = NULL;
27905 clear_thread_flag(TIF_IO_BITMAP);
27906 @@ -117,6 +139,9 @@ void flush_thread(void)
27907 {
27908 struct task_struct *tsk = current;
27909
27910 +#if defined(CONFIG_X86_32) && !defined(CONFIG_CC_STACKPROTECTOR) && !defined(CONFIG_PAX_MEMORY_UDEREF)
27911 + loadsegment(gs, 0);
27912 +#endif
27913 flush_ptrace_hw_breakpoint(tsk);
27914 memset(tsk->thread.tls_array, 0, sizeof(tsk->thread.tls_array));
27915
27916 @@ -258,7 +283,7 @@ static void __exit_idle(void)
27917 void exit_idle(void)
27918 {
27919 /* idle loop has pid 0 */
27920 - if (current->pid)
27921 + if (task_pid_nr(current))
27922 return;
27923 __exit_idle();
27924 }
27925 @@ -311,7 +336,7 @@ bool xen_set_default_idle(void)
27926 return ret;
27927 }
27928 #endif
27929 -void stop_this_cpu(void *dummy)
27930 +__noreturn void stop_this_cpu(void *dummy)
27931 {
27932 local_irq_disable();
27933 /*
27934 @@ -488,16 +513,40 @@ static int __init idle_setup(char *str)
27935 }
27936 early_param("idle", idle_setup);
27937
27938 -unsigned long arch_align_stack(unsigned long sp)
27939 -{
27940 - if (!(current->personality & ADDR_NO_RANDOMIZE) && randomize_va_space)
27941 - sp -= get_random_int() % 8192;
27942 - return sp & ~0xf;
27943 -}
27944 -
27945 unsigned long arch_randomize_brk(struct mm_struct *mm)
27946 {
27947 unsigned long range_end = mm->brk + 0x02000000;
27948 return randomize_range(mm->brk, range_end, 0) ? : mm->brk;
27949 }
27950
27951 +#ifdef CONFIG_PAX_RANDKSTACK
27952 +void pax_randomize_kstack(struct pt_regs *regs)
27953 +{
27954 + struct thread_struct *thread = &current->thread;
27955 + unsigned long time;
27956 +
27957 + if (!randomize_va_space)
27958 + return;
27959 +
27960 + if (v8086_mode(regs))
27961 + return;
27962 +
27963 + rdtscl(time);
27964 +
27965 + /* P4 seems to return a 0 LSB, ignore it */
27966 +#ifdef CONFIG_MPENTIUM4
27967 + time &= 0x3EUL;
27968 + time <<= 2;
27969 +#elif defined(CONFIG_X86_64)
27970 + time &= 0xFUL;
27971 + time <<= 4;
27972 +#else
27973 + time &= 0x1FUL;
27974 + time <<= 3;
27975 +#endif
27976 +
27977 + thread->sp0 ^= time;
27978 + load_sp0(cpu_tss + smp_processor_id(), thread);
27979 + this_cpu_write(cpu_current_top_of_stack, thread->sp0);
27980 +}
27981 +#endif
27982 diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
27983 index f73c962..6589332 100644
27984 --- a/arch/x86/kernel/process_32.c
27985 +++ b/arch/x86/kernel/process_32.c
27986 @@ -63,6 +63,7 @@ asmlinkage void ret_from_kernel_thread(void) __asm__("ret_from_kernel_thread");
27987 unsigned long thread_saved_pc(struct task_struct *tsk)
27988 {
27989 return ((unsigned long *)tsk->thread.sp)[3];
27990 +//XXX return tsk->thread.eip;
27991 }
27992
27993 void __show_regs(struct pt_regs *regs, int all)
27994 @@ -75,16 +76,15 @@ void __show_regs(struct pt_regs *regs, int all)
27995 if (user_mode(regs)) {
27996 sp = regs->sp;
27997 ss = regs->ss & 0xffff;
27998 - gs = get_user_gs(regs);
27999 } else {
28000 sp = kernel_stack_pointer(regs);
28001 savesegment(ss, ss);
28002 - savesegment(gs, gs);
28003 }
28004 + gs = get_user_gs(regs);
28005
28006 printk(KERN_DEFAULT "EIP: %04x:[<%08lx>] EFLAGS: %08lx CPU: %d\n",
28007 (u16)regs->cs, regs->ip, regs->flags,
28008 - smp_processor_id());
28009 + raw_smp_processor_id());
28010 print_symbol("EIP is at %s\n", regs->ip);
28011
28012 printk(KERN_DEFAULT "EAX: %08lx EBX: %08lx ECX: %08lx EDX: %08lx\n",
28013 @@ -131,21 +131,22 @@ void release_thread(struct task_struct *dead_task)
28014 int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
28015 unsigned long arg, struct task_struct *p, unsigned long tls)
28016 {
28017 - struct pt_regs *childregs = task_pt_regs(p);
28018 + struct pt_regs *childregs = task_stack_page(p) + THREAD_SIZE - sizeof(struct pt_regs) - 8;
28019 struct task_struct *tsk;
28020 int err;
28021
28022 p->thread.sp = (unsigned long) childregs;
28023 p->thread.sp0 = (unsigned long) (childregs+1);
28024 + p->tinfo.lowest_stack = (unsigned long)task_stack_page(p) + 2 * sizeof(unsigned long);
28025 memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
28026
28027 if (unlikely(p->flags & PF_KTHREAD)) {
28028 /* kernel thread */
28029 memset(childregs, 0, sizeof(struct pt_regs));
28030 p->thread.ip = (unsigned long) ret_from_kernel_thread;
28031 - task_user_gs(p) = __KERNEL_STACK_CANARY;
28032 - childregs->ds = __USER_DS;
28033 - childregs->es = __USER_DS;
28034 + savesegment(gs, childregs->gs);
28035 + childregs->ds = __KERNEL_DS;
28036 + childregs->es = __KERNEL_DS;
28037 childregs->fs = __KERNEL_PERCPU;
28038 childregs->bx = sp; /* function */
28039 childregs->bp = arg;
28040 @@ -245,7 +246,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28041 struct fpu *prev_fpu = &prev->fpu;
28042 struct fpu *next_fpu = &next->fpu;
28043 int cpu = smp_processor_id();
28044 - struct tss_struct *tss = &per_cpu(cpu_tss, cpu);
28045 + struct tss_struct *tss = cpu_tss + cpu;
28046 fpu_switch_t fpu_switch;
28047
28048 /* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
28049 @@ -264,6 +265,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28050 */
28051 lazy_save_gs(prev->gs);
28052
28053 +#ifdef CONFIG_PAX_MEMORY_UDEREF
28054 + __set_fs(task_thread_info(next_p)->addr_limit);
28055 +#endif
28056 +
28057 /*
28058 * Load the per-thread Thread-Local Storage descriptor.
28059 */
28060 @@ -307,9 +312,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28061 * current_thread_info().
28062 */
28063 load_sp0(tss, next);
28064 - this_cpu_write(cpu_current_top_of_stack,
28065 - (unsigned long)task_stack_page(next_p) +
28066 - THREAD_SIZE);
28067 + this_cpu_write(current_task, next_p);
28068 + this_cpu_write(current_tinfo, &next_p->tinfo);
28069 + this_cpu_write(cpu_current_top_of_stack, next->sp0);
28070
28071 /*
28072 * Restore %gs if needed (which is common)
28073 @@ -319,8 +324,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28074
28075 switch_fpu_finish(next_fpu, fpu_switch);
28076
28077 - this_cpu_write(current_task, next_p);
28078 -
28079 return prev_p;
28080 }
28081
28082 @@ -350,4 +353,3 @@ unsigned long get_wchan(struct task_struct *p)
28083 } while (count++ < 16);
28084 return 0;
28085 }
28086 -
28087 diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
28088 index a90ac95..c285bd5 100644
28089 --- a/arch/x86/kernel/process_64.c
28090 +++ b/arch/x86/kernel/process_64.c
28091 @@ -157,9 +157,10 @@ int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
28092 struct pt_regs *childregs;
28093 struct task_struct *me = current;
28094
28095 - p->thread.sp0 = (unsigned long)task_stack_page(p) + THREAD_SIZE;
28096 + p->thread.sp0 = (unsigned long)task_stack_page(p) + THREAD_SIZE - 16;
28097 childregs = task_pt_regs(p);
28098 p->thread.sp = (unsigned long) childregs;
28099 + p->tinfo.lowest_stack = (unsigned long)task_stack_page(p) + 2 * sizeof(unsigned long);
28100 set_tsk_thread_flag(p, TIF_FORK);
28101 p->thread.io_bitmap_ptr = NULL;
28102
28103 @@ -169,6 +170,8 @@ int copy_thread_tls(unsigned long clone_flags, unsigned long sp,
28104 p->thread.fs = p->thread.fsindex ? 0 : me->thread.fs;
28105 savesegment(es, p->thread.es);
28106 savesegment(ds, p->thread.ds);
28107 + savesegment(ss, p->thread.ss);
28108 + BUG_ON(p->thread.ss == __UDEREF_KERNEL_DS);
28109 memset(p->thread.ptrace_bps, 0, sizeof(p->thread.ptrace_bps));
28110
28111 if (unlikely(p->flags & PF_KTHREAD)) {
28112 @@ -276,7 +279,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28113 struct fpu *prev_fpu = &prev->fpu;
28114 struct fpu *next_fpu = &next->fpu;
28115 int cpu = smp_processor_id();
28116 - struct tss_struct *tss = &per_cpu(cpu_tss, cpu);
28117 + struct tss_struct *tss = cpu_tss + cpu;
28118 unsigned fsindex, gsindex;
28119 fpu_switch_t fpu_switch;
28120
28121 @@ -327,6 +330,10 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28122 if (unlikely(next->ds | prev->ds))
28123 loadsegment(ds, next->ds);
28124
28125 + savesegment(ss, prev->ss);
28126 + if (unlikely(next->ss != prev->ss))
28127 + loadsegment(ss, next->ss);
28128 +
28129 /*
28130 * Switch FS and GS.
28131 *
28132 @@ -398,6 +405,7 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28133 * Switch the PDA and FPU contexts.
28134 */
28135 this_cpu_write(current_task, next_p);
28136 + this_cpu_write(current_tinfo, &next_p->tinfo);
28137
28138 /*
28139 * If it were not for PREEMPT_ACTIVE we could guarantee that the
28140 @@ -410,6 +418,8 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
28141 /* Reload esp0 and ss1. This changes current_thread_info(). */
28142 load_sp0(tss, next);
28143
28144 + this_cpu_write(cpu_current_top_of_stack, next->sp0);
28145 +
28146 /*
28147 * Now maybe reload the debug registers and handle I/O bitmaps
28148 */
28149 @@ -522,9 +532,7 @@ unsigned long get_wchan(struct task_struct *p)
28150 * PADDING
28151 * ----------- top = topmax - TOP_OF_KERNEL_STACK_PADDING
28152 * stack
28153 - * ----------- bottom = start + sizeof(thread_info)
28154 - * thread_info
28155 - * ----------- start
28156 + * ----------- bottom = start
28157 *
28158 * The tasks stack pointer points at the location where the
28159 * framepointer is stored. The data on the stack is:
28160 @@ -535,7 +543,7 @@ unsigned long get_wchan(struct task_struct *p)
28161 */
28162 top = start + THREAD_SIZE - TOP_OF_KERNEL_STACK_PADDING;
28163 top -= 2 * sizeof(unsigned long);
28164 - bottom = start + sizeof(struct thread_info);
28165 + bottom = start;
28166
28167 sp = READ_ONCE(p->thread.sp);
28168 if (sp < bottom || sp > top)
28169 diff --git a/arch/x86/kernel/ptrace.c b/arch/x86/kernel/ptrace.c
28170 index 9be72bc..f4329c5 100644
28171 --- a/arch/x86/kernel/ptrace.c
28172 +++ b/arch/x86/kernel/ptrace.c
28173 @@ -186,10 +186,10 @@ unsigned long kernel_stack_pointer(struct pt_regs *regs)
28174 unsigned long sp = (unsigned long)&regs->sp;
28175 u32 *prev_esp;
28176
28177 - if (context == (sp & ~(THREAD_SIZE - 1)))
28178 + if (context == ((sp + 8) & ~(THREAD_SIZE - 1)))
28179 return sp;
28180
28181 - prev_esp = (u32 *)(context);
28182 + prev_esp = *(u32 **)(context);
28183 if (prev_esp)
28184 return (unsigned long)prev_esp;
28185
28186 @@ -446,6 +446,20 @@ static int putreg(struct task_struct *child,
28187 if (child->thread.gs != value)
28188 return do_arch_prctl(child, ARCH_SET_GS, value);
28189 return 0;
28190 +
28191 + case offsetof(struct user_regs_struct,ip):
28192 + /*
28193 + * Protect against any attempt to set ip to an
28194 + * impossible address. There are dragons lurking if the
28195 + * address is noncanonical. (This explicitly allows
28196 + * setting ip to TASK_SIZE_MAX, because user code can do
28197 + * that all by itself by running off the end of its
28198 + * address space.
28199 + */
28200 + if (value > TASK_SIZE_MAX)
28201 + return -EIO;
28202 + break;
28203 +
28204 #endif
28205 }
28206
28207 @@ -582,7 +596,7 @@ static void ptrace_triggered(struct perf_event *bp,
28208 static unsigned long ptrace_get_dr7(struct perf_event *bp[])
28209 {
28210 int i;
28211 - int dr7 = 0;
28212 + unsigned long dr7 = 0;
28213 struct arch_hw_breakpoint *info;
28214
28215 for (i = 0; i < HBP_NUM; i++) {
28216 @@ -816,7 +830,7 @@ long arch_ptrace(struct task_struct *child, long request,
28217 unsigned long addr, unsigned long data)
28218 {
28219 int ret;
28220 - unsigned long __user *datap = (unsigned long __user *)data;
28221 + unsigned long __user *datap = (__force unsigned long __user *)data;
28222
28223 switch (request) {
28224 /* read the word at location addr in the USER area. */
28225 @@ -901,14 +915,14 @@ long arch_ptrace(struct task_struct *child, long request,
28226 if ((int) addr < 0)
28227 return -EIO;
28228 ret = do_get_thread_area(child, addr,
28229 - (struct user_desc __user *)data);
28230 + (__force struct user_desc __user *) data);
28231 break;
28232
28233 case PTRACE_SET_THREAD_AREA:
28234 if ((int) addr < 0)
28235 return -EIO;
28236 ret = do_set_thread_area(child, addr,
28237 - (struct user_desc __user *)data, 0);
28238 + (__force struct user_desc __user *) data, 0);
28239 break;
28240 #endif
28241
28242 @@ -1286,7 +1300,7 @@ long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
28243
28244 #ifdef CONFIG_X86_64
28245
28246 -static struct user_regset x86_64_regsets[] __read_mostly = {
28247 +static user_regset_no_const x86_64_regsets[] __read_only = {
28248 [REGSET_GENERAL] = {
28249 .core_note_type = NT_PRSTATUS,
28250 .n = sizeof(struct user_regs_struct) / sizeof(long),
28251 @@ -1327,7 +1341,7 @@ static const struct user_regset_view user_x86_64_view = {
28252 #endif /* CONFIG_X86_64 */
28253
28254 #if defined CONFIG_X86_32 || defined CONFIG_IA32_EMULATION
28255 -static struct user_regset x86_32_regsets[] __read_mostly = {
28256 +static user_regset_no_const x86_32_regsets[] __read_only = {
28257 [REGSET_GENERAL] = {
28258 .core_note_type = NT_PRSTATUS,
28259 .n = sizeof(struct user_regs_struct32) / sizeof(u32),
28260 @@ -1380,7 +1394,7 @@ static const struct user_regset_view user_x86_32_view = {
28261 */
28262 u64 xstate_fx_sw_bytes[USER_XSTATE_FX_SW_WORDS];
28263
28264 -void update_regset_xstate_info(unsigned int size, u64 xstate_mask)
28265 +void __init update_regset_xstate_info(unsigned int size, u64 xstate_mask)
28266 {
28267 #ifdef CONFIG_X86_64
28268 x86_64_regsets[REGSET_XSTATE].n = size / sizeof(u64);
28269 @@ -1415,7 +1429,7 @@ static void fill_sigtrap_info(struct task_struct *tsk,
28270 memset(info, 0, sizeof(*info));
28271 info->si_signo = SIGTRAP;
28272 info->si_code = si_code;
28273 - info->si_addr = user_mode(regs) ? (void __user *)regs->ip : NULL;
28274 + info->si_addr = user_mode(regs) ? (__force void __user *)regs->ip : NULL;
28275 }
28276
28277 void user_single_step_siginfo(struct task_struct *tsk,
28278 @@ -1449,6 +1463,10 @@ static void do_audit_syscall_entry(struct pt_regs *regs, u32 arch)
28279 }
28280 }
28281
28282 +#ifdef CONFIG_GRKERNSEC_SETXID
28283 +extern void gr_delayed_cred_worker(void);
28284 +#endif
28285 +
28286 /*
28287 * We can return 0 to resume the syscall or anything else to go to phase
28288 * 2. If we resume the syscall, we need to put something appropriate in
28289 @@ -1556,6 +1574,11 @@ long syscall_trace_enter_phase2(struct pt_regs *regs, u32 arch,
28290
28291 BUG_ON(regs != task_pt_regs(current));
28292
28293 +#ifdef CONFIG_GRKERNSEC_SETXID
28294 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
28295 + gr_delayed_cred_worker();
28296 +#endif
28297 +
28298 /*
28299 * If we stepped into a sysenter/syscall insn, it trapped in
28300 * kernel mode; do_debug() cleared TF and set TIF_SINGLESTEP.
28301 @@ -1614,6 +1637,11 @@ void syscall_trace_leave(struct pt_regs *regs)
28302 */
28303 user_exit();
28304
28305 +#ifdef CONFIG_GRKERNSEC_SETXID
28306 + if (unlikely(test_and_clear_thread_flag(TIF_GRSEC_SETXID)))
28307 + gr_delayed_cred_worker();
28308 +#endif
28309 +
28310 audit_syscall_exit(regs);
28311
28312 if (unlikely(test_thread_flag(TIF_SYSCALL_TRACEPOINT)))
28313 diff --git a/arch/x86/kernel/pvclock.c b/arch/x86/kernel/pvclock.c
28314 index 2f355d2..e75ed0a 100644
28315 --- a/arch/x86/kernel/pvclock.c
28316 +++ b/arch/x86/kernel/pvclock.c
28317 @@ -51,11 +51,11 @@ void pvclock_touch_watchdogs(void)
28318 reset_hung_task_detector();
28319 }
28320
28321 -static atomic64_t last_value = ATOMIC64_INIT(0);
28322 +static atomic64_unchecked_t last_value = ATOMIC64_INIT(0);
28323
28324 void pvclock_resume(void)
28325 {
28326 - atomic64_set(&last_value, 0);
28327 + atomic64_set_unchecked(&last_value, 0);
28328 }
28329
28330 u8 pvclock_read_flags(struct pvclock_vcpu_time_info *src)
28331 @@ -105,11 +105,11 @@ cycle_t pvclock_clocksource_read(struct pvclock_vcpu_time_info *src)
28332 * updating at the same time, and one of them could be slightly behind,
28333 * making the assumption that last_value always go forward fail to hold.
28334 */
28335 - last = atomic64_read(&last_value);
28336 + last = atomic64_read_unchecked(&last_value);
28337 do {
28338 if (ret < last)
28339 return last;
28340 - last = atomic64_cmpxchg(&last_value, last, ret);
28341 + last = atomic64_cmpxchg_unchecked(&last_value, last, ret);
28342 } while (unlikely(last != ret));
28343
28344 return ret;
28345 diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
28346 index 86db4bc..a50a54a 100644
28347 --- a/arch/x86/kernel/reboot.c
28348 +++ b/arch/x86/kernel/reboot.c
28349 @@ -70,6 +70,11 @@ static int __init set_bios_reboot(const struct dmi_system_id *d)
28350
28351 void __noreturn machine_real_restart(unsigned int type)
28352 {
28353 +
28354 +#if defined(CONFIG_X86_32) && (defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF))
28355 + struct desc_struct *gdt;
28356 +#endif
28357 +
28358 local_irq_disable();
28359
28360 /*
28361 @@ -97,7 +102,29 @@ void __noreturn machine_real_restart(unsigned int type)
28362
28363 /* Jump to the identity-mapped low memory code */
28364 #ifdef CONFIG_X86_32
28365 - asm volatile("jmpl *%0" : :
28366 +
28367 +#if defined(CONFIG_PAX_KERNEXEC) || defined(CONFIG_PAX_MEMORY_UDEREF)
28368 + gdt = get_cpu_gdt_table(smp_processor_id());
28369 + pax_open_kernel();
28370 +#ifdef CONFIG_PAX_MEMORY_UDEREF
28371 + gdt[GDT_ENTRY_KERNEL_DS].type = 3;
28372 + gdt[GDT_ENTRY_KERNEL_DS].limit = 0xf;
28373 + loadsegment(ds, __KERNEL_DS);
28374 + loadsegment(es, __KERNEL_DS);
28375 + loadsegment(ss, __KERNEL_DS);
28376 +#endif
28377 +#ifdef CONFIG_PAX_KERNEXEC
28378 + gdt[GDT_ENTRY_KERNEL_CS].base0 = 0;
28379 + gdt[GDT_ENTRY_KERNEL_CS].base1 = 0;
28380 + gdt[GDT_ENTRY_KERNEL_CS].base2 = 0;
28381 + gdt[GDT_ENTRY_KERNEL_CS].limit0 = 0xffff;
28382 + gdt[GDT_ENTRY_KERNEL_CS].limit = 0xf;
28383 + gdt[GDT_ENTRY_KERNEL_CS].g = 1;
28384 +#endif
28385 + pax_close_kernel();
28386 +#endif
28387 +
28388 + asm volatile("ljmpl *%0" : :
28389 "rm" (real_mode_header->machine_real_restart_asm),
28390 "a" (type));
28391 #else
28392 @@ -137,7 +164,7 @@ static int __init set_kbd_reboot(const struct dmi_system_id *d)
28393 /*
28394 * This is a single dmi_table handling all reboot quirks.
28395 */
28396 -static struct dmi_system_id __initdata reboot_dmi_table[] = {
28397 +static const struct dmi_system_id __initconst reboot_dmi_table[] = {
28398
28399 /* Acer */
28400 { /* Handle reboot issue on Acer Aspire one */
28401 @@ -511,7 +538,7 @@ void __attribute__((weak)) mach_reboot_fixups(void)
28402 * This means that this function can never return, it can misbehave
28403 * by not rebooting properly and hanging.
28404 */
28405 -static void native_machine_emergency_restart(void)
28406 +static void __noreturn native_machine_emergency_restart(void)
28407 {
28408 int i;
28409 int attempt = 0;
28410 @@ -631,13 +658,13 @@ void native_machine_shutdown(void)
28411 #endif
28412 }
28413
28414 -static void __machine_emergency_restart(int emergency)
28415 +static void __noreturn __machine_emergency_restart(int emergency)
28416 {
28417 reboot_emergency = emergency;
28418 machine_ops.emergency_restart();
28419 }
28420
28421 -static void native_machine_restart(char *__unused)
28422 +static void __noreturn native_machine_restart(char *__unused)
28423 {
28424 pr_notice("machine restart\n");
28425
28426 @@ -646,7 +673,7 @@ static void native_machine_restart(char *__unused)
28427 __machine_emergency_restart(0);
28428 }
28429
28430 -static void native_machine_halt(void)
28431 +static void __noreturn native_machine_halt(void)
28432 {
28433 /* Stop other cpus and apics */
28434 machine_shutdown();
28435 @@ -656,7 +683,7 @@ static void native_machine_halt(void)
28436 stop_this_cpu(NULL);
28437 }
28438
28439 -static void native_machine_power_off(void)
28440 +static void __noreturn native_machine_power_off(void)
28441 {
28442 if (pm_power_off) {
28443 if (!reboot_force)
28444 @@ -665,9 +692,10 @@ static void native_machine_power_off(void)
28445 }
28446 /* A fallback in case there is no PM info available */
28447 tboot_shutdown(TB_SHUTDOWN_HALT);
28448 + unreachable();
28449 }
28450
28451 -struct machine_ops machine_ops = {
28452 +struct machine_ops machine_ops __read_only = {
28453 .power_off = native_machine_power_off,
28454 .shutdown = native_machine_shutdown,
28455 .emergency_restart = native_machine_emergency_restart,
28456 diff --git a/arch/x86/kernel/reboot_fixups_32.c b/arch/x86/kernel/reboot_fixups_32.c
28457 index c8e41e9..64049ef 100644
28458 --- a/arch/x86/kernel/reboot_fixups_32.c
28459 +++ b/arch/x86/kernel/reboot_fixups_32.c
28460 @@ -57,7 +57,7 @@ struct device_fixup {
28461 unsigned int vendor;
28462 unsigned int device;
28463 void (*reboot_fixup)(struct pci_dev *);
28464 -};
28465 +} __do_const;
28466
28467 /*
28468 * PCI ids solely used for fixups_table go here
28469 diff --git a/arch/x86/kernel/relocate_kernel_64.S b/arch/x86/kernel/relocate_kernel_64.S
28470 index 98111b3..73ca125 100644
28471 --- a/arch/x86/kernel/relocate_kernel_64.S
28472 +++ b/arch/x86/kernel/relocate_kernel_64.S
28473 @@ -96,8 +96,7 @@ relocate_kernel:
28474
28475 /* jump to identity mapped page */
28476 addq $(identity_mapped - relocate_kernel), %r8
28477 - pushq %r8
28478 - ret
28479 + jmp *%r8
28480
28481 identity_mapped:
28482 /* set return address to 0 if not preserving context */
28483 diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
28484 index 80f874b..b3eff67 100644
28485 --- a/arch/x86/kernel/setup.c
28486 +++ b/arch/x86/kernel/setup.c
28487 @@ -111,6 +111,7 @@
28488 #include <asm/mce.h>
28489 #include <asm/alternative.h>
28490 #include <asm/prom.h>
28491 +#include <asm/boot.h>
28492
28493 /*
28494 * max_low_pfn_mapped: highest direct mapped pfn under 4GB
28495 @@ -206,10 +207,12 @@ EXPORT_SYMBOL(boot_cpu_data);
28496 #endif
28497
28498
28499 -#if !defined(CONFIG_X86_PAE) || defined(CONFIG_X86_64)
28500 -__visible unsigned long mmu_cr4_features;
28501 +#ifdef CONFIG_X86_64
28502 +__visible unsigned long mmu_cr4_features __read_only = X86_CR4_PSE | X86_CR4_PAE | X86_CR4_PGE;
28503 +#elif defined(CONFIG_X86_PAE)
28504 +__visible unsigned long mmu_cr4_features __read_only = X86_CR4_PAE;
28505 #else
28506 -__visible unsigned long mmu_cr4_features = X86_CR4_PAE;
28507 +__visible unsigned long mmu_cr4_features __read_only;
28508 #endif
28509
28510 /* Boot loader ID and version as integers, for the benefit of proc_dointvec */
28511 @@ -772,7 +775,7 @@ static void __init trim_bios_range(void)
28512 * area (640->1Mb) as ram even though it is not.
28513 * take them out.
28514 */
28515 - e820_remove_range(BIOS_BEGIN, BIOS_END - BIOS_BEGIN, E820_RAM, 1);
28516 + e820_remove_range(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS, E820_RAM, 1);
28517
28518 sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
28519 }
28520 @@ -780,7 +783,7 @@ static void __init trim_bios_range(void)
28521 /* called before trim_bios_range() to spare extra sanitize */
28522 static void __init e820_add_kernel_range(void)
28523 {
28524 - u64 start = __pa_symbol(_text);
28525 + u64 start = __pa_symbol(ktla_ktva((unsigned long)_text));
28526 u64 size = __pa_symbol(_end) - start;
28527
28528 /*
28529 @@ -861,8 +864,8 @@ dump_kernel_offset(struct notifier_block *self, unsigned long v, void *p)
28530
28531 void __init setup_arch(char **cmdline_p)
28532 {
28533 - memblock_reserve(__pa_symbol(_text),
28534 - (unsigned long)__bss_stop - (unsigned long)_text);
28535 + memblock_reserve(__pa_symbol(ktla_ktva((unsigned long)_text)),
28536 + (unsigned long)__bss_stop - ktla_ktva((unsigned long)_text));
28537
28538 early_reserve_initrd();
28539
28540 @@ -960,16 +963,16 @@ void __init setup_arch(char **cmdline_p)
28541
28542 if (!boot_params.hdr.root_flags)
28543 root_mountflags &= ~MS_RDONLY;
28544 - init_mm.start_code = (unsigned long) _text;
28545 - init_mm.end_code = (unsigned long) _etext;
28546 - init_mm.end_data = (unsigned long) _edata;
28547 + init_mm.start_code = ktla_ktva((unsigned long)_text);
28548 + init_mm.end_code = ktla_ktva((unsigned long)_etext);
28549 + init_mm.end_data = (unsigned long)_edata;
28550 init_mm.brk = _brk_end;
28551
28552 mpx_mm_init(&init_mm);
28553
28554 - code_resource.start = __pa_symbol(_text);
28555 - code_resource.end = __pa_symbol(_etext)-1;
28556 - data_resource.start = __pa_symbol(_etext);
28557 + code_resource.start = __pa_symbol(ktla_ktva((unsigned long)_text));
28558 + code_resource.end = __pa_symbol(ktla_ktva((unsigned long)_etext))-1;
28559 + data_resource.start = __pa_symbol(_sdata);
28560 data_resource.end = __pa_symbol(_edata)-1;
28561 bss_resource.start = __pa_symbol(__bss_start);
28562 bss_resource.end = __pa_symbol(__bss_stop)-1;
28563 diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
28564 index e4fcb87..9c06c55 100644
28565 --- a/arch/x86/kernel/setup_percpu.c
28566 +++ b/arch/x86/kernel/setup_percpu.c
28567 @@ -21,19 +21,17 @@
28568 #include <asm/cpu.h>
28569 #include <asm/stackprotector.h>
28570
28571 -DEFINE_PER_CPU_READ_MOSTLY(int, cpu_number);
28572 +#ifdef CONFIG_SMP
28573 +DEFINE_PER_CPU_READ_MOSTLY(unsigned int, cpu_number);
28574 EXPORT_PER_CPU_SYMBOL(cpu_number);
28575 +#endif
28576
28577 -#ifdef CONFIG_X86_64
28578 #define BOOT_PERCPU_OFFSET ((unsigned long)__per_cpu_load)
28579 -#else
28580 -#define BOOT_PERCPU_OFFSET 0
28581 -#endif
28582
28583 DEFINE_PER_CPU_READ_MOSTLY(unsigned long, this_cpu_off) = BOOT_PERCPU_OFFSET;
28584 EXPORT_PER_CPU_SYMBOL(this_cpu_off);
28585
28586 -unsigned long __per_cpu_offset[NR_CPUS] __read_mostly = {
28587 +unsigned long __per_cpu_offset[NR_CPUS] __read_only = {
28588 [0 ... NR_CPUS-1] = BOOT_PERCPU_OFFSET,
28589 };
28590 EXPORT_SYMBOL(__per_cpu_offset);
28591 @@ -66,7 +64,7 @@ static bool __init pcpu_need_numa(void)
28592 {
28593 #ifdef CONFIG_NEED_MULTIPLE_NODES
28594 pg_data_t *last = NULL;
28595 - unsigned int cpu;
28596 + int cpu;
28597
28598 for_each_possible_cpu(cpu) {
28599 int node = early_cpu_to_node(cpu);
28600 @@ -155,10 +153,10 @@ static inline void setup_percpu_segment(int cpu)
28601 {
28602 #ifdef CONFIG_X86_32
28603 struct desc_struct gdt;
28604 + unsigned long base = per_cpu_offset(cpu);
28605
28606 - pack_descriptor(&gdt, per_cpu_offset(cpu), 0xFFFFF,
28607 - 0x2 | DESCTYPE_S, 0x8);
28608 - gdt.s = 1;
28609 + pack_descriptor(&gdt, base, (VMALLOC_END - base - 1) >> PAGE_SHIFT,
28610 + 0x83 | DESCTYPE_S, 0xC);
28611 write_gdt_entry(get_cpu_gdt_table(cpu),
28612 GDT_ENTRY_PERCPU, &gdt, DESCTYPE_S);
28613 #endif
28614 @@ -219,6 +217,11 @@ void __init setup_per_cpu_areas(void)
28615 /* alrighty, percpu areas up and running */
28616 delta = (unsigned long)pcpu_base_addr - (unsigned long)__per_cpu_start;
28617 for_each_possible_cpu(cpu) {
28618 +#ifdef CONFIG_CC_STACKPROTECTOR
28619 +#ifdef CONFIG_X86_32
28620 + unsigned long canary = per_cpu(stack_canary.canary, cpu);
28621 +#endif
28622 +#endif
28623 per_cpu_offset(cpu) = delta + pcpu_unit_offsets[cpu];
28624 per_cpu(this_cpu_off, cpu) = per_cpu_offset(cpu);
28625 per_cpu(cpu_number, cpu) = cpu;
28626 @@ -259,6 +262,12 @@ void __init setup_per_cpu_areas(void)
28627 */
28628 set_cpu_numa_node(cpu, early_cpu_to_node(cpu));
28629 #endif
28630 +#ifdef CONFIG_CC_STACKPROTECTOR
28631 +#ifdef CONFIG_X86_32
28632 + if (!cpu)
28633 + per_cpu(stack_canary.canary, cpu) = canary;
28634 +#endif
28635 +#endif
28636 /*
28637 * Up to this point, the boot CPU has been using .init.data
28638 * area. Reload any changed state for the boot CPU.
28639 diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
28640 index 71820c4..ad16f6b 100644
28641 --- a/arch/x86/kernel/signal.c
28642 +++ b/arch/x86/kernel/signal.c
28643 @@ -189,7 +189,7 @@ static unsigned long align_sigframe(unsigned long sp)
28644 * Align the stack pointer according to the i386 ABI,
28645 * i.e. so that on function entry ((sp + 4) & 15) == 0.
28646 */
28647 - sp = ((sp + 4) & -16ul) - 4;
28648 + sp = ((sp - 12) & -16ul) - 4;
28649 #else /* !CONFIG_X86_32 */
28650 sp = round_down(sp, 16) - 8;
28651 #endif
28652 @@ -298,10 +298,9 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
28653 }
28654
28655 if (current->mm->context.vdso)
28656 - restorer = current->mm->context.vdso +
28657 - selected_vdso32->sym___kernel_sigreturn;
28658 + restorer = (void __force_user *)(current->mm->context.vdso + selected_vdso32->sym___kernel_sigreturn);
28659 else
28660 - restorer = &frame->retcode;
28661 + restorer = (void __user *)&frame->retcode;
28662 if (ksig->ka.sa.sa_flags & SA_RESTORER)
28663 restorer = ksig->ka.sa.sa_restorer;
28664
28665 @@ -315,7 +314,7 @@ __setup_frame(int sig, struct ksignal *ksig, sigset_t *set,
28666 * reasons and because gdb uses it as a signature to notice
28667 * signal handler stack frames.
28668 */
28669 - err |= __put_user(*((u64 *)&retcode), (u64 *)frame->retcode);
28670 + err |= __put_user(*((u64 *)&retcode), (u64 __user *)frame->retcode);
28671
28672 if (err)
28673 return -EFAULT;
28674 @@ -362,8 +361,10 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
28675 save_altstack_ex(&frame->uc.uc_stack, regs->sp);
28676
28677 /* Set up to return from userspace. */
28678 - restorer = current->mm->context.vdso +
28679 - selected_vdso32->sym___kernel_rt_sigreturn;
28680 + if (current->mm->context.vdso)
28681 + restorer = (void __force_user *)(current->mm->context.vdso + selected_vdso32->sym___kernel_rt_sigreturn);
28682 + else
28683 + restorer = (void __user *)&frame->retcode;
28684 if (ksig->ka.sa.sa_flags & SA_RESTORER)
28685 restorer = ksig->ka.sa.sa_restorer;
28686 put_user_ex(restorer, &frame->pretcode);
28687 @@ -375,7 +376,7 @@ static int __setup_rt_frame(int sig, struct ksignal *ksig,
28688 * reasons and because gdb uses it as a signature to notice
28689 * signal handler stack frames.
28690 */
28691 - put_user_ex(*((u64 *)&rt_retcode), (u64 *)frame->retcode);
28692 + put_user_ex(*((u64 *)&rt_retcode), (u64 __user *)frame->retcode);
28693 } put_user_catch(err);
28694
28695 err |= copy_siginfo_to_user(&frame->info, &ksig->info);
28696 @@ -611,7 +612,12 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
28697 {
28698 int usig = ksig->sig;
28699 sigset_t *set = sigmask_to_save();
28700 - compat_sigset_t *cset = (compat_sigset_t *) set;
28701 + sigset_t sigcopy;
28702 + compat_sigset_t *cset;
28703 +
28704 + sigcopy = *set;
28705 +
28706 + cset = (compat_sigset_t *) &sigcopy;
28707
28708 /* Set up the stack frame */
28709 if (is_ia32_frame()) {
28710 @@ -622,7 +628,7 @@ setup_rt_frame(struct ksignal *ksig, struct pt_regs *regs)
28711 } else if (is_x32_frame()) {
28712 return x32_setup_rt_frame(ksig, cset, regs);
28713 } else {
28714 - return __setup_rt_frame(ksig->sig, ksig, set, regs);
28715 + return __setup_rt_frame(ksig->sig, ksig, &sigcopy, regs);
28716 }
28717 }
28718
28719 diff --git a/arch/x86/kernel/smp.c b/arch/x86/kernel/smp.c
28720 index 15aaa69..66103af 100644
28721 --- a/arch/x86/kernel/smp.c
28722 +++ b/arch/x86/kernel/smp.c
28723 @@ -334,7 +334,7 @@ static int __init nonmi_ipi_setup(char *str)
28724
28725 __setup("nonmi_ipi", nonmi_ipi_setup);
28726
28727 -struct smp_ops smp_ops = {
28728 +struct smp_ops smp_ops __read_only = {
28729 .smp_prepare_boot_cpu = native_smp_prepare_boot_cpu,
28730 .smp_prepare_cpus = native_smp_prepare_cpus,
28731 .smp_cpus_done = native_smp_cpus_done,
28732 diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
28733 index b1f3ed9c..b76221b 100644
28734 --- a/arch/x86/kernel/smpboot.c
28735 +++ b/arch/x86/kernel/smpboot.c
28736 @@ -220,14 +220,17 @@ static void notrace start_secondary(void *unused)
28737
28738 enable_start_cpu0 = 0;
28739
28740 -#ifdef CONFIG_X86_32
28741 + /* otherwise gcc will move up smp_processor_id before the cpu_init */
28742 + barrier();
28743 +
28744 /* switch away from the initial page table */
28745 +#ifdef CONFIG_PAX_PER_CPU_PGD
28746 + load_cr3(get_cpu_pgd(smp_processor_id(), kernel));
28747 +#else
28748 load_cr3(swapper_pg_dir);
28749 +#endif
28750 __flush_tlb_all();
28751 -#endif
28752
28753 - /* otherwise gcc will move up smp_processor_id before the cpu_init */
28754 - barrier();
28755 /*
28756 * Check TSC synchronization with the BP:
28757 */
28758 @@ -808,16 +811,15 @@ void common_cpu_up(unsigned int cpu, struct task_struct *idle)
28759 alternatives_enable_smp();
28760
28761 per_cpu(current_task, cpu) = idle;
28762 + per_cpu(current_tinfo, cpu) = &idle->tinfo;
28763
28764 #ifdef CONFIG_X86_32
28765 - /* Stack for startup_32 can be just as for start_secondary onwards */
28766 irq_ctx_init(cpu);
28767 - per_cpu(cpu_current_top_of_stack, cpu) =
28768 - (unsigned long)task_stack_page(idle) + THREAD_SIZE;
28769 #else
28770 clear_tsk_thread_flag(idle, TIF_FORK);
28771 initial_gs = per_cpu_offset(cpu);
28772 #endif
28773 + per_cpu(cpu_current_top_of_stack, cpu) = (unsigned long)task_stack_page(idle) - 16 + THREAD_SIZE;
28774 }
28775
28776 /*
28777 @@ -838,9 +840,11 @@ static int do_boot_cpu(int apicid, int cpu, struct task_struct *idle)
28778 unsigned long timeout;
28779
28780 idle->thread.sp = (unsigned long) (((struct pt_regs *)
28781 - (THREAD_SIZE + task_stack_page(idle))) - 1);
28782 + (THREAD_SIZE - 16 + task_stack_page(idle))) - 1);
28783
28784 + pax_open_kernel();
28785 early_gdt_descr.address = (unsigned long)get_cpu_gdt_table(cpu);
28786 + pax_close_kernel();
28787 initial_code = (unsigned long)start_secondary;
28788 stack_start = idle->thread.sp;
28789
28790 @@ -992,6 +996,15 @@ int native_cpu_up(unsigned int cpu, struct task_struct *tidle)
28791
28792 common_cpu_up(cpu, tidle);
28793
28794 +#ifdef CONFIG_PAX_PER_CPU_PGD
28795 + clone_pgd_range(get_cpu_pgd(cpu, kernel) + KERNEL_PGD_BOUNDARY,
28796 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
28797 + KERNEL_PGD_PTRS);
28798 + clone_pgd_range(get_cpu_pgd(cpu, user) + KERNEL_PGD_BOUNDARY,
28799 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
28800 + KERNEL_PGD_PTRS);
28801 +#endif
28802 +
28803 /*
28804 * We have to walk the irq descriptors to setup the vector
28805 * space for the cpu which comes online. Prevent irq
28806 diff --git a/arch/x86/kernel/step.c b/arch/x86/kernel/step.c
28807 index 0ccb53a..fbc4759 100644
28808 --- a/arch/x86/kernel/step.c
28809 +++ b/arch/x86/kernel/step.c
28810 @@ -44,7 +44,8 @@ unsigned long convert_ip_to_linear(struct task_struct *child, struct pt_regs *re
28811 addr += base;
28812 }
28813 mutex_unlock(&child->mm->context.lock);
28814 - }
28815 + } else if (seg == __KERNEL_CS || seg == __KERNEXEC_KERNEL_CS)
28816 + addr = ktla_ktva(addr);
28817
28818 return addr;
28819 }
28820 @@ -55,6 +56,9 @@ static int is_setting_trap_flag(struct task_struct *child, struct pt_regs *regs)
28821 unsigned char opcode[15];
28822 unsigned long addr = convert_ip_to_linear(child, regs);
28823
28824 + if (addr == -EINVAL)
28825 + return 0;
28826 +
28827 copied = access_process_vm(child, addr, opcode, sizeof(opcode), 0);
28828 for (i = 0; i < copied; i++) {
28829 switch (opcode[i]) {
28830 diff --git a/arch/x86/kernel/sys_i386_32.c b/arch/x86/kernel/sys_i386_32.c
28831 new file mode 100644
28832 index 0000000..5877189
28833 --- /dev/null
28834 +++ b/arch/x86/kernel/sys_i386_32.c
28835 @@ -0,0 +1,189 @@
28836 +/*
28837 + * This file contains various random system calls that
28838 + * have a non-standard calling sequence on the Linux/i386
28839 + * platform.
28840 + */
28841 +
28842 +#include <linux/errno.h>
28843 +#include <linux/sched.h>
28844 +#include <linux/mm.h>
28845 +#include <linux/fs.h>
28846 +#include <linux/smp.h>
28847 +#include <linux/sem.h>
28848 +#include <linux/msg.h>
28849 +#include <linux/shm.h>
28850 +#include <linux/stat.h>
28851 +#include <linux/syscalls.h>
28852 +#include <linux/mman.h>
28853 +#include <linux/file.h>
28854 +#include <linux/utsname.h>
28855 +#include <linux/ipc.h>
28856 +#include <linux/elf.h>
28857 +
28858 +#include <linux/uaccess.h>
28859 +#include <linux/unistd.h>
28860 +
28861 +#include <asm/syscalls.h>
28862 +
28863 +int i386_mmap_check(unsigned long addr, unsigned long len, unsigned long flags)
28864 +{
28865 + unsigned long pax_task_size = TASK_SIZE;
28866 +
28867 +#ifdef CONFIG_PAX_SEGMEXEC
28868 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC)
28869 + pax_task_size = SEGMEXEC_TASK_SIZE;
28870 +#endif
28871 +
28872 + if (flags & MAP_FIXED)
28873 + if (len > pax_task_size || addr > pax_task_size - len)
28874 + return -EINVAL;
28875 +
28876 + return 0;
28877 +}
28878 +
28879 +/*
28880 + * Align a virtual address to avoid aliasing in the I$ on AMD F15h.
28881 + */
28882 +static unsigned long get_align_mask(void)
28883 +{
28884 + if (va_align.flags < 0 || !(va_align.flags & ALIGN_VA_32))
28885 + return 0;
28886 +
28887 + if (!(current->flags & PF_RANDOMIZE))
28888 + return 0;
28889 +
28890 + return va_align.mask;
28891 +}
28892 +
28893 +unsigned long
28894 +arch_get_unmapped_area(struct file *filp, unsigned long addr,
28895 + unsigned long len, unsigned long pgoff, unsigned long flags)
28896 +{
28897 + struct mm_struct *mm = current->mm;
28898 + struct vm_area_struct *vma;
28899 + unsigned long pax_task_size = TASK_SIZE;
28900 + struct vm_unmapped_area_info info;
28901 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28902 +
28903 +#ifdef CONFIG_PAX_SEGMEXEC
28904 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
28905 + pax_task_size = SEGMEXEC_TASK_SIZE;
28906 +#endif
28907 +
28908 + pax_task_size -= PAGE_SIZE;
28909 +
28910 + if (len > pax_task_size)
28911 + return -ENOMEM;
28912 +
28913 + if (flags & MAP_FIXED)
28914 + return addr;
28915 +
28916 +#ifdef CONFIG_PAX_RANDMMAP
28917 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28918 +#endif
28919 +
28920 + if (addr) {
28921 + addr = PAGE_ALIGN(addr);
28922 + if (pax_task_size - len >= addr) {
28923 + vma = find_vma(mm, addr);
28924 + if (check_heap_stack_gap(vma, addr, len, offset))
28925 + return addr;
28926 + }
28927 + }
28928 +
28929 + info.flags = 0;
28930 + info.length = len;
28931 + info.align_mask = filp ? get_align_mask() : 0;
28932 + info.align_offset = pgoff << PAGE_SHIFT;
28933 + info.threadstack_offset = offset;
28934 +
28935 +#ifdef CONFIG_PAX_PAGEEXEC
28936 + if (!(__supported_pte_mask & _PAGE_NX) && (mm->pax_flags & MF_PAX_PAGEEXEC) && (flags & MAP_EXECUTABLE)) {
28937 + info.low_limit = 0x00110000UL;
28938 + info.high_limit = mm->start_code;
28939 +
28940 +#ifdef CONFIG_PAX_RANDMMAP
28941 + if (mm->pax_flags & MF_PAX_RANDMMAP)
28942 + info.low_limit += mm->delta_mmap & 0x03FFF000UL;
28943 +#endif
28944 +
28945 + if (info.low_limit < info.high_limit) {
28946 + addr = vm_unmapped_area(&info);
28947 + if (!IS_ERR_VALUE(addr))
28948 + return addr;
28949 + }
28950 + } else
28951 +#endif
28952 +
28953 + info.low_limit = mm->mmap_base;
28954 + info.high_limit = pax_task_size;
28955 +
28956 + return vm_unmapped_area(&info);
28957 +}
28958 +
28959 +unsigned long
28960 +arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
28961 + const unsigned long len, const unsigned long pgoff,
28962 + const unsigned long flags)
28963 +{
28964 + struct vm_area_struct *vma;
28965 + struct mm_struct *mm = current->mm;
28966 + unsigned long addr = addr0, pax_task_size = TASK_SIZE;
28967 + struct vm_unmapped_area_info info;
28968 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
28969 +
28970 +#ifdef CONFIG_PAX_SEGMEXEC
28971 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
28972 + pax_task_size = SEGMEXEC_TASK_SIZE;
28973 +#endif
28974 +
28975 + pax_task_size -= PAGE_SIZE;
28976 +
28977 + /* requested length too big for entire address space */
28978 + if (len > pax_task_size)
28979 + return -ENOMEM;
28980 +
28981 + if (flags & MAP_FIXED)
28982 + return addr;
28983 +
28984 +#ifdef CONFIG_PAX_PAGEEXEC
28985 + if (!(__supported_pte_mask & _PAGE_NX) && (mm->pax_flags & MF_PAX_PAGEEXEC) && (flags & MAP_EXECUTABLE))
28986 + goto bottomup;
28987 +#endif
28988 +
28989 +#ifdef CONFIG_PAX_RANDMMAP
28990 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
28991 +#endif
28992 +
28993 + /* requesting a specific address */
28994 + if (addr) {
28995 + addr = PAGE_ALIGN(addr);
28996 + if (pax_task_size - len >= addr) {
28997 + vma = find_vma(mm, addr);
28998 + if (check_heap_stack_gap(vma, addr, len, offset))
28999 + return addr;
29000 + }
29001 + }
29002 +
29003 + info.flags = VM_UNMAPPED_AREA_TOPDOWN;
29004 + info.length = len;
29005 + info.low_limit = PAGE_SIZE;
29006 + info.high_limit = mm->mmap_base;
29007 + info.align_mask = filp ? get_align_mask() : 0;
29008 + info.align_offset = pgoff << PAGE_SHIFT;
29009 + info.threadstack_offset = offset;
29010 +
29011 + addr = vm_unmapped_area(&info);
29012 + if (!(addr & ~PAGE_MASK))
29013 + return addr;
29014 + VM_BUG_ON(addr != -ENOMEM);
29015 +
29016 +bottomup:
29017 + /*
29018 + * A failed mmap() very likely causes application failure,
29019 + * so fall back to the bottom-up function here. This scenario
29020 + * can happen with large stack limits and large mmap()
29021 + * allocations.
29022 + */
29023 + return arch_get_unmapped_area(filp, addr0, len, pgoff, flags);
29024 +}
29025 diff --git a/arch/x86/kernel/sys_x86_64.c b/arch/x86/kernel/sys_x86_64.c
29026 index 10e0272..b4bb9a7 100644
29027 --- a/arch/x86/kernel/sys_x86_64.c
29028 +++ b/arch/x86/kernel/sys_x86_64.c
29029 @@ -97,8 +97,8 @@ out:
29030 return error;
29031 }
29032
29033 -static void find_start_end(unsigned long flags, unsigned long *begin,
29034 - unsigned long *end)
29035 +static void find_start_end(struct mm_struct *mm, unsigned long flags,
29036 + unsigned long *begin, unsigned long *end)
29037 {
29038 if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT)) {
29039 unsigned long new_begin;
29040 @@ -117,7 +117,7 @@ static void find_start_end(unsigned long flags, unsigned long *begin,
29041 *begin = new_begin;
29042 }
29043 } else {
29044 - *begin = current->mm->mmap_legacy_base;
29045 + *begin = mm->mmap_legacy_base;
29046 *end = TASK_SIZE;
29047 }
29048 }
29049 @@ -130,20 +130,24 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
29050 struct vm_area_struct *vma;
29051 struct vm_unmapped_area_info info;
29052 unsigned long begin, end;
29053 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
29054
29055 if (flags & MAP_FIXED)
29056 return addr;
29057
29058 - find_start_end(flags, &begin, &end);
29059 + find_start_end(mm, flags, &begin, &end);
29060
29061 if (len > end)
29062 return -ENOMEM;
29063
29064 +#ifdef CONFIG_PAX_RANDMMAP
29065 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
29066 +#endif
29067 +
29068 if (addr) {
29069 addr = PAGE_ALIGN(addr);
29070 vma = find_vma(mm, addr);
29071 - if (end - len >= addr &&
29072 - (!vma || addr + len <= vma->vm_start))
29073 + if (end - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
29074 return addr;
29075 }
29076
29077 @@ -157,6 +161,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
29078 info.align_mask = get_align_mask();
29079 info.align_offset += get_align_bits();
29080 }
29081 + info.threadstack_offset = offset;
29082 return vm_unmapped_area(&info);
29083 }
29084
29085 @@ -169,6 +174,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
29086 struct mm_struct *mm = current->mm;
29087 unsigned long addr = addr0;
29088 struct vm_unmapped_area_info info;
29089 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
29090
29091 /* requested length too big for entire address space */
29092 if (len > TASK_SIZE)
29093 @@ -181,12 +187,15 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
29094 if (!test_thread_flag(TIF_ADDR32) && (flags & MAP_32BIT))
29095 goto bottomup;
29096
29097 +#ifdef CONFIG_PAX_RANDMMAP
29098 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
29099 +#endif
29100 +
29101 /* requesting a specific address */
29102 if (addr) {
29103 addr = PAGE_ALIGN(addr);
29104 vma = find_vma(mm, addr);
29105 - if (TASK_SIZE - len >= addr &&
29106 - (!vma || addr + len <= vma->vm_start))
29107 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
29108 return addr;
29109 }
29110
29111 @@ -200,6 +209,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
29112 info.align_mask = get_align_mask();
29113 info.align_offset += get_align_bits();
29114 }
29115 + info.threadstack_offset = offset;
29116 addr = vm_unmapped_area(&info);
29117 if (!(addr & ~PAGE_MASK))
29118 return addr;
29119 diff --git a/arch/x86/kernel/tboot.c b/arch/x86/kernel/tboot.c
29120 index 91a4496..42fc304 100644
29121 --- a/arch/x86/kernel/tboot.c
29122 +++ b/arch/x86/kernel/tboot.c
29123 @@ -44,6 +44,7 @@
29124 #include <asm/setup.h>
29125 #include <asm/e820.h>
29126 #include <asm/io.h>
29127 +#include <asm/tlbflush.h>
29128
29129 #include "../realmode/rm/wakeup.h"
29130
29131 @@ -221,7 +222,7 @@ static int tboot_setup_sleep(void)
29132
29133 void tboot_shutdown(u32 shutdown_type)
29134 {
29135 - void (*shutdown)(void);
29136 + void (* __noreturn shutdown)(void);
29137
29138 if (!tboot_enabled())
29139 return;
29140 @@ -242,8 +243,9 @@ void tboot_shutdown(u32 shutdown_type)
29141 tboot->shutdown_type = shutdown_type;
29142
29143 switch_to_tboot_pt();
29144 + cr4_clear_bits(X86_CR4_PCIDE);
29145
29146 - shutdown = (void(*)(void))(unsigned long)tboot->shutdown_entry;
29147 + shutdown = (void *)(unsigned long)tboot->shutdown_entry;
29148 shutdown();
29149
29150 /* should not reach here */
29151 @@ -310,7 +312,7 @@ static int tboot_extended_sleep(u8 sleep_state, u32 val_a, u32 val_b)
29152 return -ENODEV;
29153 }
29154
29155 -static atomic_t ap_wfs_count;
29156 +static atomic_unchecked_t ap_wfs_count;
29157
29158 static int tboot_wait_for_aps(int num_aps)
29159 {
29160 @@ -334,9 +336,9 @@ static int tboot_cpu_callback(struct notifier_block *nfb, unsigned long action,
29161 {
29162 switch (action) {
29163 case CPU_DYING:
29164 - atomic_inc(&ap_wfs_count);
29165 + atomic_inc_unchecked(&ap_wfs_count);
29166 if (num_online_cpus() == 1)
29167 - if (tboot_wait_for_aps(atomic_read(&ap_wfs_count)))
29168 + if (tboot_wait_for_aps(atomic_read_unchecked(&ap_wfs_count)))
29169 return NOTIFY_BAD;
29170 break;
29171 }
29172 @@ -422,7 +424,7 @@ static __init int tboot_late_init(void)
29173
29174 tboot_create_trampoline();
29175
29176 - atomic_set(&ap_wfs_count, 0);
29177 + atomic_set_unchecked(&ap_wfs_count, 0);
29178 register_hotcpu_notifier(&tboot_cpu_notifier);
29179
29180 #ifdef CONFIG_DEBUG_FS
29181 diff --git a/arch/x86/kernel/time.c b/arch/x86/kernel/time.c
29182 index d39c091..1df4349 100644
29183 --- a/arch/x86/kernel/time.c
29184 +++ b/arch/x86/kernel/time.c
29185 @@ -32,7 +32,7 @@ unsigned long profile_pc(struct pt_regs *regs)
29186
29187 if (!user_mode(regs) && in_lock_functions(pc)) {
29188 #ifdef CONFIG_FRAME_POINTER
29189 - return *(unsigned long *)(regs->bp + sizeof(long));
29190 + return ktla_ktva(*(unsigned long *)(regs->bp + sizeof(long)));
29191 #else
29192 unsigned long *sp =
29193 (unsigned long *)kernel_stack_pointer(regs);
29194 @@ -41,11 +41,17 @@ unsigned long profile_pc(struct pt_regs *regs)
29195 * or above a saved flags. Eflags has bits 22-31 zero,
29196 * kernel addresses don't.
29197 */
29198 +
29199 +#ifdef CONFIG_PAX_KERNEXEC
29200 + return ktla_ktva(sp[0]);
29201 +#else
29202 if (sp[0] >> 22)
29203 return sp[0];
29204 if (sp[1] >> 22)
29205 return sp[1];
29206 #endif
29207 +
29208 +#endif
29209 }
29210 return pc;
29211 }
29212 diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c
29213 index 7fc5e84..c6e445a 100644
29214 --- a/arch/x86/kernel/tls.c
29215 +++ b/arch/x86/kernel/tls.c
29216 @@ -139,6 +139,11 @@ int do_set_thread_area(struct task_struct *p, int idx,
29217 if (idx < GDT_ENTRY_TLS_MIN || idx > GDT_ENTRY_TLS_MAX)
29218 return -EINVAL;
29219
29220 +#ifdef CONFIG_PAX_SEGMEXEC
29221 + if ((p->mm->pax_flags & MF_PAX_SEGMEXEC) && (info.contents & MODIFY_LDT_CONTENTS_CODE))
29222 + return -EINVAL;
29223 +#endif
29224 +
29225 set_tls_desc(p, idx, &info, 1);
29226
29227 return 0;
29228 @@ -256,7 +261,7 @@ int regset_tls_set(struct task_struct *target, const struct user_regset *regset,
29229
29230 if (kbuf)
29231 info = kbuf;
29232 - else if (__copy_from_user(infobuf, ubuf, count))
29233 + else if (count > sizeof infobuf || __copy_from_user(infobuf, ubuf, count))
29234 return -EFAULT;
29235 else
29236 info = infobuf;
29237 diff --git a/arch/x86/kernel/tracepoint.c b/arch/x86/kernel/tracepoint.c
29238 index 1c113db..287b42e 100644
29239 --- a/arch/x86/kernel/tracepoint.c
29240 +++ b/arch/x86/kernel/tracepoint.c
29241 @@ -9,11 +9,11 @@
29242 #include <linux/atomic.h>
29243
29244 atomic_t trace_idt_ctr = ATOMIC_INIT(0);
29245 -struct desc_ptr trace_idt_descr = { NR_VECTORS * 16 - 1,
29246 +const struct desc_ptr trace_idt_descr = { NR_VECTORS * 16 - 1,
29247 (unsigned long) trace_idt_table };
29248
29249 /* No need to be aligned, but done to keep all IDTs defined the same way. */
29250 -gate_desc trace_idt_table[NR_VECTORS] __page_aligned_bss;
29251 +gate_desc trace_idt_table[NR_VECTORS] __page_aligned_rodata;
29252
29253 static int trace_irq_vector_refcount;
29254 static DEFINE_MUTEX(irq_vector_mutex);
29255 diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
29256 index f579192..aed90b8 100644
29257 --- a/arch/x86/kernel/traps.c
29258 +++ b/arch/x86/kernel/traps.c
29259 @@ -69,7 +69,7 @@
29260 #include <asm/proto.h>
29261
29262 /* No need to be aligned, but done to keep all IDTs defined the same way. */
29263 -gate_desc debug_idt_table[NR_VECTORS] __page_aligned_bss;
29264 +gate_desc debug_idt_table[NR_VECTORS] __page_aligned_rodata;
29265 #else
29266 #include <asm/processor-flags.h>
29267 #include <asm/setup.h>
29268 @@ -77,7 +77,7 @@ gate_desc debug_idt_table[NR_VECTORS] __page_aligned_bss;
29269 #endif
29270
29271 /* Must be page-aligned because the real IDT is used in a fixmap. */
29272 -gate_desc idt_table[NR_VECTORS] __page_aligned_bss;
29273 +gate_desc idt_table[NR_VECTORS] __page_aligned_rodata;
29274
29275 DECLARE_BITMAP(used_vectors, NR_VECTORS);
29276 EXPORT_SYMBOL_GPL(used_vectors);
29277 @@ -174,7 +174,7 @@ void ist_begin_non_atomic(struct pt_regs *regs)
29278 * will catch asm bugs and any attempt to use ist_preempt_enable
29279 * from double_fault.
29280 */
29281 - BUG_ON((unsigned long)(current_top_of_stack() -
29282 + BUG_ON((unsigned long)(current_top_of_stack(smp_processor_id()) -
29283 current_stack_pointer()) >= THREAD_SIZE);
29284
29285 preempt_count_sub(HARDIRQ_OFFSET);
29286 @@ -191,7 +191,7 @@ void ist_end_non_atomic(void)
29287 }
29288
29289 static nokprobe_inline int
29290 -do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
29291 +do_trap_no_signal(struct task_struct *tsk, int trapnr, const char *str,
29292 struct pt_regs *regs, long error_code)
29293 {
29294 if (v8086_mode(regs)) {
29295 @@ -211,8 +211,20 @@ do_trap_no_signal(struct task_struct *tsk, int trapnr, char *str,
29296 if (!fixup_exception(regs)) {
29297 tsk->thread.error_code = error_code;
29298 tsk->thread.trap_nr = trapnr;
29299 +
29300 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29301 + if (trapnr == X86_TRAP_SS && ((regs->cs & 0xFFFF) == __KERNEL_CS || (regs->cs & 0xFFFF) == __KERNEXEC_KERNEL_CS))
29302 + str = "PAX: suspicious stack segment fault";
29303 +#endif
29304 +
29305 die(str, regs, error_code);
29306 }
29307 +
29308 +#ifdef CONFIG_PAX_REFCOUNT
29309 + if (trapnr == X86_TRAP_OF)
29310 + pax_report_refcount_overflow(regs);
29311 +#endif
29312 +
29313 return 0;
29314 }
29315
29316 @@ -251,7 +263,7 @@ static siginfo_t *fill_trap_info(struct pt_regs *regs, int signr, int trapnr,
29317 }
29318
29319 static void
29320 -do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
29321 +do_trap(int trapnr, int signr, const char *str, struct pt_regs *regs,
29322 long error_code, siginfo_t *info)
29323 {
29324 struct task_struct *tsk = current;
29325 @@ -275,7 +287,7 @@ do_trap(int trapnr, int signr, char *str, struct pt_regs *regs,
29326 if (show_unhandled_signals && unhandled_signal(tsk, signr) &&
29327 printk_ratelimit()) {
29328 pr_info("%s[%d] trap %s ip:%lx sp:%lx error:%lx",
29329 - tsk->comm, tsk->pid, str,
29330 + tsk->comm, task_pid_nr(tsk), str,
29331 regs->ip, regs->sp, error_code);
29332 print_vma_addr(" in ", regs->ip);
29333 pr_cont("\n");
29334 @@ -357,6 +369,11 @@ dotraplinkage void do_double_fault(struct pt_regs *regs, long error_code)
29335 tsk->thread.error_code = error_code;
29336 tsk->thread.trap_nr = X86_TRAP_DF;
29337
29338 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
29339 + if ((unsigned long)tsk->stack - regs->sp <= PAGE_SIZE)
29340 + die("grsec: kernel stack overflow detected", regs, error_code);
29341 +#endif
29342 +
29343 #ifdef CONFIG_DOUBLEFAULT
29344 df_debug(regs, error_code);
29345 #endif
29346 @@ -473,11 +490,35 @@ do_general_protection(struct pt_regs *regs, long error_code)
29347 tsk->thread.error_code = error_code;
29348 tsk->thread.trap_nr = X86_TRAP_GP;
29349 if (notify_die(DIE_GPF, "general protection fault", regs, error_code,
29350 - X86_TRAP_GP, SIGSEGV) != NOTIFY_STOP)
29351 + X86_TRAP_GP, SIGSEGV) != NOTIFY_STOP) {
29352 +
29353 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29354 + if ((regs->cs & 0xFFFF) == __KERNEL_CS || (regs->cs & 0xFFFF) == __KERNEXEC_KERNEL_CS)
29355 + die("PAX: suspicious general protection fault", regs, error_code);
29356 + else
29357 +#endif
29358 +
29359 die("general protection fault", regs, error_code);
29360 + }
29361 goto exit;
29362 }
29363
29364 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
29365 + if (!(__supported_pte_mask & _PAGE_NX) && tsk->mm && (tsk->mm->pax_flags & MF_PAX_PAGEEXEC)) {
29366 + struct mm_struct *mm = tsk->mm;
29367 + unsigned long limit;
29368 +
29369 + down_write(&mm->mmap_sem);
29370 + limit = mm->context.user_cs_limit;
29371 + if (limit < TASK_SIZE) {
29372 + track_exec_limit(mm, limit, TASK_SIZE, VM_EXEC);
29373 + up_write(&mm->mmap_sem);
29374 + return;
29375 + }
29376 + up_write(&mm->mmap_sem);
29377 + }
29378 +#endif
29379 +
29380 tsk->thread.error_code = error_code;
29381 tsk->thread.trap_nr = X86_TRAP_GP;
29382
29383 @@ -576,6 +617,9 @@ struct bad_iret_stack *fixup_bad_iret(struct bad_iret_stack *s)
29384 container_of(task_pt_regs(current),
29385 struct bad_iret_stack, regs);
29386
29387 + if ((current->thread.sp0 ^ (unsigned long)s) < THREAD_SIZE)
29388 + new_stack = s;
29389 +
29390 /* Copy the IRET target to the new stack. */
29391 memmove(&new_stack->regs.ip, (void *)s->regs.sp, 5*8);
29392
29393 diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
29394 index dc9af7a..1bc625e 100644
29395 --- a/arch/x86/kernel/tsc.c
29396 +++ b/arch/x86/kernel/tsc.c
29397 @@ -151,7 +151,7 @@ static void cyc2ns_write_end(int cpu, struct cyc2ns_data *data)
29398 */
29399 smp_wmb();
29400
29401 - ACCESS_ONCE(c2n->head) = data;
29402 + ACCESS_ONCE_RW(c2n->head) = data;
29403 }
29404
29405 /*
29406 diff --git a/arch/x86/kernel/uprobes.c b/arch/x86/kernel/uprobes.c
29407 index 6647624..2056791 100644
29408 --- a/arch/x86/kernel/uprobes.c
29409 +++ b/arch/x86/kernel/uprobes.c
29410 @@ -978,7 +978,7 @@ arch_uretprobe_hijack_return_addr(unsigned long trampoline_vaddr, struct pt_regs
29411
29412 if (nleft != rasize) {
29413 pr_err("uprobe: return address clobbered: pid=%d, %%sp=%#lx, "
29414 - "%%ip=%#lx\n", current->pid, regs->sp, regs->ip);
29415 + "%%ip=%#lx\n", task_pid_nr(current), regs->sp, regs->ip);
29416
29417 force_sig_info(SIGSEGV, SEND_SIG_FORCED, current);
29418 }
29419 diff --git a/arch/x86/kernel/verify_cpu.S b/arch/x86/kernel/verify_cpu.S
29420 index b9242ba..50c5edd 100644
29421 --- a/arch/x86/kernel/verify_cpu.S
29422 +++ b/arch/x86/kernel/verify_cpu.S
29423 @@ -20,6 +20,7 @@
29424 * arch/x86/boot/compressed/head_64.S: Boot cpu verification
29425 * arch/x86/kernel/trampoline_64.S: secondary processor verification
29426 * arch/x86/kernel/head_32.S: processor startup
29427 + * arch/x86/kernel/acpi/realmode/wakeup.S: 32bit processor resume
29428 *
29429 * verify_cpu, returns the status of longmode and SSE in register %eax.
29430 * 0: Success 1: Failure
29431 diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
29432 index fc9db6e..2c5865d 100644
29433 --- a/arch/x86/kernel/vm86_32.c
29434 +++ b/arch/x86/kernel/vm86_32.c
29435 @@ -44,6 +44,7 @@
29436 #include <linux/ptrace.h>
29437 #include <linux/audit.h>
29438 #include <linux/stddef.h>
29439 +#include <linux/grsecurity.h>
29440
29441 #include <asm/uaccess.h>
29442 #include <asm/io.h>
29443 @@ -150,7 +151,7 @@ struct pt_regs *save_v86_state(struct kernel_vm86_regs *regs)
29444 do_exit(SIGSEGV);
29445 }
29446
29447 - tss = &per_cpu(cpu_tss, get_cpu());
29448 + tss = cpu_tss + get_cpu();
29449 current->thread.sp0 = current->thread.saved_sp0;
29450 current->thread.sysenter_cs = __KERNEL_CS;
29451 load_sp0(tss, &current->thread);
29452 @@ -214,6 +215,14 @@ SYSCALL_DEFINE1(vm86old, struct vm86_struct __user *, v86)
29453
29454 if (tsk->thread.saved_sp0)
29455 return -EPERM;
29456 +
29457 +#ifdef CONFIG_GRKERNSEC_VM86
29458 + if (!capable(CAP_SYS_RAWIO)) {
29459 + gr_handle_vm86();
29460 + return -EPERM;
29461 + }
29462 +#endif
29463 +
29464 tmp = copy_vm86_regs_from_user(&info.regs, &v86->regs,
29465 offsetof(struct kernel_vm86_struct, vm86plus) -
29466 sizeof(info.regs));
29467 @@ -238,6 +247,13 @@ SYSCALL_DEFINE2(vm86, unsigned long, cmd, unsigned long, arg)
29468 int tmp;
29469 struct vm86plus_struct __user *v86;
29470
29471 +#ifdef CONFIG_GRKERNSEC_VM86
29472 + if (!capable(CAP_SYS_RAWIO)) {
29473 + gr_handle_vm86();
29474 + return -EPERM;
29475 + }
29476 +#endif
29477 +
29478 tsk = current;
29479 switch (cmd) {
29480 case VM86_REQUEST_IRQ:
29481 @@ -318,7 +334,7 @@ static void do_sys_vm86(struct kernel_vm86_struct *info, struct task_struct *tsk
29482 tsk->thread.saved_fs = info->regs32->fs;
29483 tsk->thread.saved_gs = get_user_gs(info->regs32);
29484
29485 - tss = &per_cpu(cpu_tss, get_cpu());
29486 + tss = cpu_tss + get_cpu();
29487 tsk->thread.sp0 = (unsigned long) &info->VM86_TSS_ESP0;
29488 if (cpu_has_sep)
29489 tsk->thread.sysenter_cs = 0;
29490 @@ -525,7 +541,7 @@ static void do_int(struct kernel_vm86_regs *regs, int i,
29491 goto cannot_handle;
29492 if (i == 0x21 && is_revectored(AH(regs), &KVM86->int21_revectored))
29493 goto cannot_handle;
29494 - intr_ptr = (unsigned long __user *) (i << 2);
29495 + intr_ptr = (__force unsigned long __user *) (i << 2);
29496 if (get_user(segoffs, intr_ptr))
29497 goto cannot_handle;
29498 if ((segoffs >> 16) == BIOSSEG)
29499 diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S
29500 index 00bf300..03e1c3b 100644
29501 --- a/arch/x86/kernel/vmlinux.lds.S
29502 +++ b/arch/x86/kernel/vmlinux.lds.S
29503 @@ -26,6 +26,13 @@
29504 #include <asm/page_types.h>
29505 #include <asm/cache.h>
29506 #include <asm/boot.h>
29507 +#include <asm/segment.h>
29508 +
29509 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
29510 +#define __KERNEL_TEXT_OFFSET (LOAD_OFFSET + ____LOAD_PHYSICAL_ADDR)
29511 +#else
29512 +#define __KERNEL_TEXT_OFFSET 0
29513 +#endif
29514
29515 #undef i386 /* in case the preprocessor is a 32bit one */
29516
29517 @@ -69,30 +76,43 @@ jiffies_64 = jiffies;
29518
29519 PHDRS {
29520 text PT_LOAD FLAGS(5); /* R_E */
29521 +#ifdef CONFIG_X86_32
29522 + module PT_LOAD FLAGS(5); /* R_E */
29523 +#endif
29524 +#ifdef CONFIG_XEN
29525 + rodata PT_LOAD FLAGS(5); /* R_E */
29526 +#else
29527 + rodata PT_LOAD FLAGS(4); /* R__ */
29528 +#endif
29529 data PT_LOAD FLAGS(6); /* RW_ */
29530 -#ifdef CONFIG_X86_64
29531 + init.begin PT_LOAD FLAGS(6); /* RW_ */
29532 #ifdef CONFIG_SMP
29533 percpu PT_LOAD FLAGS(6); /* RW_ */
29534 #endif
29535 - init PT_LOAD FLAGS(7); /* RWE */
29536 -#endif
29537 + text.init PT_LOAD FLAGS(5); /* R_E */
29538 + text.exit PT_LOAD FLAGS(5); /* R_E */
29539 + init PT_LOAD FLAGS(6); /* RW_ */
29540 note PT_NOTE FLAGS(0); /* ___ */
29541 }
29542
29543 SECTIONS
29544 {
29545 #ifdef CONFIG_X86_32
29546 - . = LOAD_OFFSET + LOAD_PHYSICAL_ADDR;
29547 - phys_startup_32 = startup_32 - LOAD_OFFSET;
29548 + . = LOAD_OFFSET + ____LOAD_PHYSICAL_ADDR;
29549 #else
29550 - . = __START_KERNEL;
29551 - phys_startup_64 = startup_64 - LOAD_OFFSET;
29552 + . = __START_KERNEL;
29553 #endif
29554
29555 /* Text and read-only data */
29556 - .text : AT(ADDR(.text) - LOAD_OFFSET) {
29557 - _text = .;
29558 + .text (. - __KERNEL_TEXT_OFFSET): AT(ADDR(.text) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) {
29559 /* bootstrapping code */
29560 +#ifdef CONFIG_X86_32
29561 + phys_startup_32 = startup_32 - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29562 +#else
29563 + phys_startup_64 = startup_64 - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29564 +#endif
29565 + __LOAD_PHYSICAL_ADDR = . - LOAD_OFFSET + __KERNEL_TEXT_OFFSET;
29566 + _text = .;
29567 HEAD_TEXT
29568 . = ALIGN(8);
29569 _stext = .;
29570 @@ -104,13 +124,47 @@ SECTIONS
29571 IRQENTRY_TEXT
29572 *(.fixup)
29573 *(.gnu.warning)
29574 - /* End of text section */
29575 - _etext = .;
29576 } :text = 0x9090
29577
29578 - NOTES :text :note
29579 + . += __KERNEL_TEXT_OFFSET;
29580
29581 - EXCEPTION_TABLE(16) :text = 0x9090
29582 +#ifdef CONFIG_X86_32
29583 + . = ALIGN(PAGE_SIZE);
29584 + .module.text : AT(ADDR(.module.text) - LOAD_OFFSET) {
29585 +
29586 +#ifdef CONFIG_PAX_KERNEXEC
29587 + MODULES_EXEC_VADDR = .;
29588 + BYTE(0)
29589 + . += (CONFIG_PAX_KERNEXEC_MODULE_TEXT * 1024 * 1024);
29590 + . = ALIGN(HPAGE_SIZE) - 1;
29591 + MODULES_EXEC_END = .;
29592 +#endif
29593 +
29594 + } :module
29595 +#endif
29596 +
29597 + .text.end : AT(ADDR(.text.end) - LOAD_OFFSET) {
29598 + /* End of text section */
29599 + BYTE(0)
29600 + _etext = . - __KERNEL_TEXT_OFFSET;
29601 + }
29602 +
29603 +#ifdef CONFIG_X86_32
29604 + . = ALIGN(PAGE_SIZE);
29605 + .rodata.page_aligned : AT(ADDR(.rodata.page_aligned) - LOAD_OFFSET) {
29606 + . = ALIGN(PAGE_SIZE);
29607 + *(.empty_zero_page)
29608 + *(.initial_pg_fixmap)
29609 + *(.initial_pg_pmd)
29610 + *(.initial_page_table)
29611 + *(.swapper_pg_dir)
29612 + } :rodata
29613 +#endif
29614 +
29615 + . = ALIGN(PAGE_SIZE);
29616 + NOTES :rodata :note
29617 +
29618 + EXCEPTION_TABLE(16) :rodata
29619
29620 #if defined(CONFIG_DEBUG_RODATA)
29621 /* .text should occupy whole number of pages */
29622 @@ -122,16 +176,20 @@ SECTIONS
29623
29624 /* Data */
29625 .data : AT(ADDR(.data) - LOAD_OFFSET) {
29626 +
29627 +#ifdef CONFIG_PAX_KERNEXEC
29628 + . = ALIGN(HPAGE_SIZE);
29629 +#else
29630 + . = ALIGN(PAGE_SIZE);
29631 +#endif
29632 +
29633 /* Start of data section */
29634 _sdata = .;
29635
29636 /* init_task */
29637 INIT_TASK_DATA(THREAD_SIZE)
29638
29639 -#ifdef CONFIG_X86_32
29640 - /* 32 bit has nosave before _edata */
29641 NOSAVE_DATA
29642 -#endif
29643
29644 PAGE_ALIGNED_DATA(PAGE_SIZE)
29645
29646 @@ -174,12 +232,19 @@ SECTIONS
29647 . = ALIGN(__vvar_page + PAGE_SIZE, PAGE_SIZE);
29648
29649 /* Init code and data - will be freed after init */
29650 - . = ALIGN(PAGE_SIZE);
29651 .init.begin : AT(ADDR(.init.begin) - LOAD_OFFSET) {
29652 + BYTE(0)
29653 +
29654 +#ifdef CONFIG_PAX_KERNEXEC
29655 + . = ALIGN(HPAGE_SIZE);
29656 +#else
29657 + . = ALIGN(PAGE_SIZE);
29658 +#endif
29659 +
29660 __init_begin = .; /* paired with __init_end */
29661 - }
29662 + } :init.begin
29663
29664 -#if defined(CONFIG_X86_64) && defined(CONFIG_SMP)
29665 +#ifdef CONFIG_SMP
29666 /*
29667 * percpu offsets are zero-based on SMP. PERCPU_VADDR() changes the
29668 * output PHDR, so the next output section - .init.text - should
29669 @@ -190,12 +255,33 @@ SECTIONS
29670 "per-CPU data too large - increase CONFIG_PHYSICAL_START")
29671 #endif
29672
29673 - INIT_TEXT_SECTION(PAGE_SIZE)
29674 -#ifdef CONFIG_X86_64
29675 - :init
29676 + . = ALIGN(PAGE_SIZE);
29677 + init_begin = .;
29678 + .init.text (. - __KERNEL_TEXT_OFFSET): AT(init_begin - LOAD_OFFSET) {
29679 + VMLINUX_SYMBOL(_sinittext) = .;
29680 + INIT_TEXT
29681 + . = ALIGN(PAGE_SIZE);
29682 + } :text.init
29683 +
29684 + /*
29685 + * .exit.text is discard at runtime, not link time, to deal with
29686 + * references from .altinstructions and .eh_frame
29687 + */
29688 + .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET + __KERNEL_TEXT_OFFSET) {
29689 + EXIT_TEXT
29690 + VMLINUX_SYMBOL(_einittext) = .;
29691 +
29692 +#ifdef CONFIG_PAX_KERNEXEC
29693 + . = ALIGN(HPAGE_SIZE);
29694 +#else
29695 + . = ALIGN(16);
29696 #endif
29697
29698 - INIT_DATA_SECTION(16)
29699 + } :text.exit
29700 + . = init_begin + SIZEOF(.init.text) + SIZEOF(.exit.text);
29701 +
29702 + . = ALIGN(PAGE_SIZE);
29703 + INIT_DATA_SECTION(16) :init
29704
29705 .x86_cpu_dev.init : AT(ADDR(.x86_cpu_dev.init) - LOAD_OFFSET) {
29706 __x86_cpu_dev_start = .;
29707 @@ -266,19 +352,12 @@ SECTIONS
29708 }
29709
29710 . = ALIGN(8);
29711 - /*
29712 - * .exit.text is discard at runtime, not link time, to deal with
29713 - * references from .altinstructions and .eh_frame
29714 - */
29715 - .exit.text : AT(ADDR(.exit.text) - LOAD_OFFSET) {
29716 - EXIT_TEXT
29717 - }
29718
29719 .exit.data : AT(ADDR(.exit.data) - LOAD_OFFSET) {
29720 EXIT_DATA
29721 }
29722
29723 -#if !defined(CONFIG_X86_64) || !defined(CONFIG_SMP)
29724 +#ifndef CONFIG_SMP
29725 PERCPU_SECTION(INTERNODE_CACHE_BYTES)
29726 #endif
29727
29728 @@ -297,16 +376,10 @@ SECTIONS
29729 .smp_locks : AT(ADDR(.smp_locks) - LOAD_OFFSET) {
29730 __smp_locks = .;
29731 *(.smp_locks)
29732 - . = ALIGN(PAGE_SIZE);
29733 __smp_locks_end = .;
29734 + . = ALIGN(PAGE_SIZE);
29735 }
29736
29737 -#ifdef CONFIG_X86_64
29738 - .data_nosave : AT(ADDR(.data_nosave) - LOAD_OFFSET) {
29739 - NOSAVE_DATA
29740 - }
29741 -#endif
29742 -
29743 /* BSS */
29744 . = ALIGN(PAGE_SIZE);
29745 .bss : AT(ADDR(.bss) - LOAD_OFFSET) {
29746 @@ -322,6 +395,7 @@ SECTIONS
29747 __brk_base = .;
29748 . += 64 * 1024; /* 64k alignment slop space */
29749 *(.brk_reservation) /* areas brk users have reserved */
29750 + . = ALIGN(HPAGE_SIZE);
29751 __brk_limit = .;
29752 }
29753
29754 @@ -348,13 +422,12 @@ SECTIONS
29755 * for the boot processor.
29756 */
29757 #define INIT_PER_CPU(x) init_per_cpu__##x = x + __per_cpu_load
29758 -INIT_PER_CPU(gdt_page);
29759 INIT_PER_CPU(irq_stack_union);
29760
29761 /*
29762 * Build-time check on the image size:
29763 */
29764 -. = ASSERT((_end - _text <= KERNEL_IMAGE_SIZE),
29765 +. = ASSERT((_end - _text - __KERNEL_TEXT_OFFSET <= KERNEL_IMAGE_SIZE),
29766 "kernel image bigger than KERNEL_IMAGE_SIZE");
29767
29768 #ifdef CONFIG_SMP
29769 diff --git a/arch/x86/kernel/vsmp_64.c b/arch/x86/kernel/vsmp_64.c
29770 index b034b1b..32462af 100644
29771 --- a/arch/x86/kernel/vsmp_64.c
29772 +++ b/arch/x86/kernel/vsmp_64.c
29773 @@ -224,10 +224,15 @@ static void fill_vector_allocation_domain(int cpu, struct cpumask *retmask,
29774 static void vsmp_apic_post_init(void)
29775 {
29776 /* need to update phys_pkg_id */
29777 - apic->phys_pkg_id = apicid_phys_pkg_id;
29778 + pax_open_kernel();
29779 + *(void **)&apic->phys_pkg_id = apicid_phys_pkg_id;
29780 + pax_close_kernel();
29781
29782 - if (!irq_routing_comply)
29783 - apic->vector_allocation_domain = fill_vector_allocation_domain;
29784 + if (!irq_routing_comply) {
29785 + pax_open_kernel();
29786 + *(void **)&apic->vector_allocation_domain = fill_vector_allocation_domain;
29787 + pax_close_kernel();
29788 + }
29789 }
29790
29791 void __init vsmp_init(void)
29792 diff --git a/arch/x86/kernel/x8664_ksyms_64.c b/arch/x86/kernel/x8664_ksyms_64.c
29793 index a0695be..33e180c 100644
29794 --- a/arch/x86/kernel/x8664_ksyms_64.c
29795 +++ b/arch/x86/kernel/x8664_ksyms_64.c
29796 @@ -34,8 +34,6 @@ EXPORT_SYMBOL(copy_user_generic_string);
29797 EXPORT_SYMBOL(copy_user_generic_unrolled);
29798 EXPORT_SYMBOL(copy_user_enhanced_fast_string);
29799 EXPORT_SYMBOL(__copy_user_nocache);
29800 -EXPORT_SYMBOL(_copy_from_user);
29801 -EXPORT_SYMBOL(_copy_to_user);
29802
29803 EXPORT_SYMBOL(copy_page);
29804 EXPORT_SYMBOL(clear_page);
29805 @@ -77,3 +75,7 @@ EXPORT_SYMBOL(native_load_gs_index);
29806 EXPORT_SYMBOL(___preempt_schedule);
29807 EXPORT_SYMBOL(___preempt_schedule_notrace);
29808 #endif
29809 +
29810 +#ifdef CONFIG_PAX_PER_CPU_PGD
29811 +EXPORT_SYMBOL(cpu_pgd);
29812 +#endif
29813 diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
29814 index 3839628..2e5b5b35 100644
29815 --- a/arch/x86/kernel/x86_init.c
29816 +++ b/arch/x86/kernel/x86_init.c
29817 @@ -92,7 +92,7 @@ struct x86_cpuinit_ops x86_cpuinit = {
29818 static void default_nmi_init(void) { };
29819 static int default_i8042_detect(void) { return 1; };
29820
29821 -struct x86_platform_ops x86_platform = {
29822 +struct x86_platform_ops x86_platform __read_only = {
29823 .calibrate_tsc = native_calibrate_tsc,
29824 .get_wallclock = mach_get_cmos_time,
29825 .set_wallclock = mach_set_rtc_mmss,
29826 @@ -108,7 +108,7 @@ struct x86_platform_ops x86_platform = {
29827 EXPORT_SYMBOL_GPL(x86_platform);
29828
29829 #if defined(CONFIG_PCI_MSI)
29830 -struct x86_msi_ops x86_msi = {
29831 +struct x86_msi_ops x86_msi __read_only = {
29832 .setup_msi_irqs = native_setup_msi_irqs,
29833 .teardown_msi_irq = native_teardown_msi_irq,
29834 .teardown_msi_irqs = default_teardown_msi_irqs,
29835 @@ -137,7 +137,7 @@ void arch_restore_msi_irqs(struct pci_dev *dev)
29836 }
29837 #endif
29838
29839 -struct x86_io_apic_ops x86_io_apic_ops = {
29840 +struct x86_io_apic_ops x86_io_apic_ops __read_only = {
29841 .read = native_io_apic_read,
29842 .disable = native_disable_io_apic,
29843 };
29844 diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
29845 index 2fbea25..9e0f8c7 100644
29846 --- a/arch/x86/kvm/cpuid.c
29847 +++ b/arch/x86/kvm/cpuid.c
29848 @@ -206,15 +206,20 @@ int kvm_vcpu_ioctl_set_cpuid2(struct kvm_vcpu *vcpu,
29849 struct kvm_cpuid2 *cpuid,
29850 struct kvm_cpuid_entry2 __user *entries)
29851 {
29852 - int r;
29853 + int r, i;
29854
29855 r = -E2BIG;
29856 if (cpuid->nent > KVM_MAX_CPUID_ENTRIES)
29857 goto out;
29858 r = -EFAULT;
29859 - if (copy_from_user(&vcpu->arch.cpuid_entries, entries,
29860 - cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
29861 + if (!access_ok(VERIFY_READ, entries, cpuid->nent * sizeof(struct kvm_cpuid_entry2)))
29862 goto out;
29863 + for (i = 0; i < cpuid->nent; ++i) {
29864 + struct kvm_cpuid_entry2 cpuid_entry;
29865 + if (__copy_from_user(&cpuid_entry, entries + i, sizeof(cpuid_entry)))
29866 + goto out;
29867 + vcpu->arch.cpuid_entries[i] = cpuid_entry;
29868 + }
29869 vcpu->arch.cpuid_nent = cpuid->nent;
29870 kvm_apic_set_version(vcpu);
29871 kvm_x86_ops->cpuid_update(vcpu);
29872 @@ -227,15 +232,19 @@ int kvm_vcpu_ioctl_get_cpuid2(struct kvm_vcpu *vcpu,
29873 struct kvm_cpuid2 *cpuid,
29874 struct kvm_cpuid_entry2 __user *entries)
29875 {
29876 - int r;
29877 + int r, i;
29878
29879 r = -E2BIG;
29880 if (cpuid->nent < vcpu->arch.cpuid_nent)
29881 goto out;
29882 r = -EFAULT;
29883 - if (copy_to_user(entries, &vcpu->arch.cpuid_entries,
29884 - vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
29885 + if (!access_ok(VERIFY_WRITE, entries, vcpu->arch.cpuid_nent * sizeof(struct kvm_cpuid_entry2)))
29886 goto out;
29887 + for (i = 0; i < vcpu->arch.cpuid_nent; ++i) {
29888 + struct kvm_cpuid_entry2 cpuid_entry = vcpu->arch.cpuid_entries[i];
29889 + if (__copy_to_user(entries + i, &cpuid_entry, sizeof(cpuid_entry)))
29890 + goto out;
29891 + }
29892 return 0;
29893
29894 out:
29895 diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
29896 index 2392541a..2aefc2a 100644
29897 --- a/arch/x86/kvm/emulate.c
29898 +++ b/arch/x86/kvm/emulate.c
29899 @@ -3851,7 +3851,7 @@ static int check_cr_write(struct x86_emulate_ctxt *ctxt)
29900 int cr = ctxt->modrm_reg;
29901 u64 efer = 0;
29902
29903 - static u64 cr_reserved_bits[] = {
29904 + static const u64 cr_reserved_bits[] = {
29905 0xffffffff00000000ULL,
29906 0, 0, 0, /* CR3 checked later */
29907 CR4_RESERVED_BITS,
29908 diff --git a/arch/x86/kvm/lapic.c b/arch/x86/kvm/lapic.c
29909 index 2a5ca97..ce8577a 100644
29910 --- a/arch/x86/kvm/lapic.c
29911 +++ b/arch/x86/kvm/lapic.c
29912 @@ -56,7 +56,7 @@
29913 #define APIC_BUS_CYCLE_NS 1
29914
29915 /* #define apic_debug(fmt,arg...) printk(KERN_WARNING fmt,##arg) */
29916 -#define apic_debug(fmt, arg...)
29917 +#define apic_debug(fmt, arg...) do {} while (0)
29918
29919 #define APIC_LVT_NUM 6
29920 /* 14 is the version for Xeon and Pentium 8.4.8*/
29921 diff --git a/arch/x86/kvm/paging_tmpl.h b/arch/x86/kvm/paging_tmpl.h
29922 index 0f67d7e..4b9fa11 100644
29923 --- a/arch/x86/kvm/paging_tmpl.h
29924 +++ b/arch/x86/kvm/paging_tmpl.h
29925 @@ -343,7 +343,7 @@ retry_walk:
29926 if (unlikely(kvm_is_error_hva(host_addr)))
29927 goto error;
29928
29929 - ptep_user = (pt_element_t __user *)((void *)host_addr + offset);
29930 + ptep_user = (pt_element_t __force_user *)((void *)host_addr + offset);
29931 if (unlikely(__copy_from_user(&pte, ptep_user, sizeof(pte))))
29932 goto error;
29933 walker->ptep_user[walker->level - 1] = ptep_user;
29934 diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
29935 index 2d32b67..06cac10 100644
29936 --- a/arch/x86/kvm/svm.c
29937 +++ b/arch/x86/kvm/svm.c
29938 @@ -1106,6 +1106,8 @@ static void init_vmcb(struct vcpu_svm *svm, bool init_event)
29939 set_exception_intercept(svm, PF_VECTOR);
29940 set_exception_intercept(svm, UD_VECTOR);
29941 set_exception_intercept(svm, MC_VECTOR);
29942 + set_exception_intercept(svm, AC_VECTOR);
29943 + set_exception_intercept(svm, DB_VECTOR);
29944
29945 set_intercept(svm, INTERCEPT_INTR);
29946 set_intercept(svm, INTERCEPT_NMI);
29947 @@ -1641,20 +1643,13 @@ static void svm_set_segment(struct kvm_vcpu *vcpu,
29948 mark_dirty(svm->vmcb, VMCB_SEG);
29949 }
29950
29951 -static void update_db_bp_intercept(struct kvm_vcpu *vcpu)
29952 +static void update_bp_intercept(struct kvm_vcpu *vcpu)
29953 {
29954 struct vcpu_svm *svm = to_svm(vcpu);
29955
29956 - clr_exception_intercept(svm, DB_VECTOR);
29957 clr_exception_intercept(svm, BP_VECTOR);
29958
29959 - if (svm->nmi_singlestep)
29960 - set_exception_intercept(svm, DB_VECTOR);
29961 -
29962 if (vcpu->guest_debug & KVM_GUESTDBG_ENABLE) {
29963 - if (vcpu->guest_debug &
29964 - (KVM_GUESTDBG_SINGLESTEP | KVM_GUESTDBG_USE_HW_BP))
29965 - set_exception_intercept(svm, DB_VECTOR);
29966 if (vcpu->guest_debug & KVM_GUESTDBG_USE_SW_BP)
29967 set_exception_intercept(svm, BP_VECTOR);
29968 } else
29969 @@ -1760,7 +1755,6 @@ static int db_interception(struct vcpu_svm *svm)
29970 if (!(svm->vcpu.guest_debug & KVM_GUESTDBG_SINGLESTEP))
29971 svm->vmcb->save.rflags &=
29972 ~(X86_EFLAGS_TF | X86_EFLAGS_RF);
29973 - update_db_bp_intercept(&svm->vcpu);
29974 }
29975
29976 if (svm->vcpu.guest_debug &
29977 @@ -1795,6 +1789,12 @@ static int ud_interception(struct vcpu_svm *svm)
29978 return 1;
29979 }
29980
29981 +static int ac_interception(struct vcpu_svm *svm)
29982 +{
29983 + kvm_queue_exception_e(&svm->vcpu, AC_VECTOR, 0);
29984 + return 1;
29985 +}
29986 +
29987 static void svm_fpu_activate(struct kvm_vcpu *vcpu)
29988 {
29989 struct vcpu_svm *svm = to_svm(vcpu);
29990 @@ -3369,6 +3369,7 @@ static int (*const svm_exit_handlers[])(struct vcpu_svm *svm) = {
29991 [SVM_EXIT_EXCP_BASE + PF_VECTOR] = pf_interception,
29992 [SVM_EXIT_EXCP_BASE + NM_VECTOR] = nm_interception,
29993 [SVM_EXIT_EXCP_BASE + MC_VECTOR] = mc_interception,
29994 + [SVM_EXIT_EXCP_BASE + AC_VECTOR] = ac_interception,
29995 [SVM_EXIT_INTR] = intr_interception,
29996 [SVM_EXIT_NMI] = nmi_interception,
29997 [SVM_EXIT_SMI] = nop_on_interception,
29998 @@ -3586,7 +3587,11 @@ static void reload_tss(struct kvm_vcpu *vcpu)
29999 int cpu = raw_smp_processor_id();
30000
30001 struct svm_cpu_data *sd = per_cpu(svm_data, cpu);
30002 +
30003 + pax_open_kernel();
30004 sd->tss_desc->type = 9; /* available 32/64-bit TSS */
30005 + pax_close_kernel();
30006 +
30007 load_TR_desc();
30008 }
30009
30010 @@ -3752,7 +3757,6 @@ static void enable_nmi_window(struct kvm_vcpu *vcpu)
30011 */
30012 svm->nmi_singlestep = true;
30013 svm->vmcb->save.rflags |= (X86_EFLAGS_TF | X86_EFLAGS_RF);
30014 - update_db_bp_intercept(vcpu);
30015 }
30016
30017 static int svm_set_tss_addr(struct kvm *kvm, unsigned int addr)
30018 @@ -3982,6 +3986,10 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
30019 #endif
30020 #endif
30021
30022 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
30023 + __set_fs(current_thread_info()->addr_limit);
30024 +#endif
30025 +
30026 reload_tss(vcpu);
30027
30028 local_irq_disable();
30029 @@ -4374,7 +4382,7 @@ static struct kvm_x86_ops svm_x86_ops = {
30030 .vcpu_load = svm_vcpu_load,
30031 .vcpu_put = svm_vcpu_put,
30032
30033 - .update_db_bp_intercept = update_db_bp_intercept,
30034 + .update_db_bp_intercept = update_bp_intercept,
30035 .get_msr = svm_get_msr,
30036 .set_msr = svm_set_msr,
30037 .get_segment_base = svm_get_segment_base,
30038 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
30039 index aa9e8229..6223041 100644
30040 --- a/arch/x86/kvm/vmx.c
30041 +++ b/arch/x86/kvm/vmx.c
30042 @@ -1440,12 +1440,12 @@ static void vmcs_write64(unsigned long field, u64 value)
30043 #endif
30044 }
30045
30046 -static void vmcs_clear_bits(unsigned long field, u32 mask)
30047 +static void vmcs_clear_bits(unsigned long field, unsigned long mask)
30048 {
30049 vmcs_writel(field, vmcs_readl(field) & ~mask);
30050 }
30051
30052 -static void vmcs_set_bits(unsigned long field, u32 mask)
30053 +static void vmcs_set_bits(unsigned long field, unsigned long mask)
30054 {
30055 vmcs_writel(field, vmcs_readl(field) | mask);
30056 }
30057 @@ -1567,7 +1567,7 @@ static void update_exception_bitmap(struct kvm_vcpu *vcpu)
30058 u32 eb;
30059
30060 eb = (1u << PF_VECTOR) | (1u << UD_VECTOR) | (1u << MC_VECTOR) |
30061 - (1u << NM_VECTOR) | (1u << DB_VECTOR);
30062 + (1u << NM_VECTOR) | (1u << DB_VECTOR) | (1u << AC_VECTOR);
30063 if ((vcpu->guest_debug &
30064 (KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_SW_BP)) ==
30065 (KVM_GUESTDBG_ENABLE | KVM_GUESTDBG_USE_SW_BP))
30066 @@ -1705,7 +1705,11 @@ static void reload_tss(void)
30067 struct desc_struct *descs;
30068
30069 descs = (void *)gdt->address;
30070 +
30071 + pax_open_kernel();
30072 descs[GDT_ENTRY_TSS].type = 9; /* available TSS */
30073 + pax_close_kernel();
30074 +
30075 load_TR_desc();
30076 }
30077
30078 @@ -1941,6 +1945,10 @@ static void vmx_vcpu_load(struct kvm_vcpu *vcpu, int cpu)
30079 vmcs_writel(HOST_TR_BASE, kvm_read_tr_base()); /* 22.2.4 */
30080 vmcs_writel(HOST_GDTR_BASE, gdt->address); /* 22.2.4 */
30081
30082 +#ifdef CONFIG_PAX_PER_CPU_PGD
30083 + vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */
30084 +#endif
30085 +
30086 rdmsrl(MSR_IA32_SYSENTER_ESP, sysenter_esp);
30087 vmcs_writel(HOST_IA32_SYSENTER_ESP, sysenter_esp); /* 22.2.3 */
30088 vmx->loaded_vmcs->cpu = cpu;
30089 @@ -2232,7 +2240,7 @@ static void setup_msrs(struct vcpu_vmx *vmx)
30090 * reads and returns guest's timestamp counter "register"
30091 * guest_tsc = host_tsc + tsc_offset -- 21.3
30092 */
30093 -static u64 guest_read_tsc(void)
30094 +static u64 __intentional_overflow(-1) guest_read_tsc(void)
30095 {
30096 u64 host_tsc, tsc_offset;
30097
30098 @@ -4459,7 +4467,10 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
30099 unsigned long cr4;
30100
30101 vmcs_writel(HOST_CR0, read_cr0() & ~X86_CR0_TS); /* 22.2.3 */
30102 +
30103 +#ifndef CONFIG_PAX_PER_CPU_PGD
30104 vmcs_writel(HOST_CR3, read_cr3()); /* 22.2.3 FIXME: shadow tables */
30105 +#endif
30106
30107 /* Save the most likely value for this task's CR4 in the VMCS. */
30108 cr4 = cr4_read_shadow();
30109 @@ -4486,7 +4497,7 @@ static void vmx_set_constant_host_state(struct vcpu_vmx *vmx)
30110 vmcs_writel(HOST_IDTR_BASE, dt.address); /* 22.2.4 */
30111 vmx->host_idt_base = dt.address;
30112
30113 - vmcs_writel(HOST_RIP, vmx_return); /* 22.2.5 */
30114 + vmcs_writel(HOST_RIP, ktla_ktva(vmx_return)); /* 22.2.5 */
30115
30116 rdmsr(MSR_IA32_SYSENTER_CS, low32, high32);
30117 vmcs_write32(HOST_IA32_SYSENTER_CS, low32);
30118 @@ -5118,6 +5129,9 @@ static int handle_exception(struct kvm_vcpu *vcpu)
30119 return handle_rmode_exception(vcpu, ex_no, error_code);
30120
30121 switch (ex_no) {
30122 + case AC_VECTOR:
30123 + kvm_queue_exception_e(vcpu, AC_VECTOR, error_code);
30124 + return 1;
30125 case DB_VECTOR:
30126 dr6 = vmcs_readl(EXIT_QUALIFICATION);
30127 if (!(vcpu->guest_debug &
30128 @@ -6097,11 +6111,17 @@ static __init int hardware_setup(void)
30129 * page upon invalidation. No need to do anything if not
30130 * using the APIC_ACCESS_ADDR VMCS field.
30131 */
30132 - if (!flexpriority_enabled)
30133 - kvm_x86_ops->set_apic_access_page_addr = NULL;
30134 + if (!flexpriority_enabled) {
30135 + pax_open_kernel();
30136 + *(void **)&kvm_x86_ops->set_apic_access_page_addr = NULL;
30137 + pax_close_kernel();
30138 + }
30139
30140 - if (!cpu_has_vmx_tpr_shadow())
30141 - kvm_x86_ops->update_cr8_intercept = NULL;
30142 + if (!cpu_has_vmx_tpr_shadow()) {
30143 + pax_open_kernel();
30144 + *(void **)&kvm_x86_ops->update_cr8_intercept = NULL;
30145 + pax_close_kernel();
30146 + }
30147
30148 if (enable_ept && !cpu_has_vmx_ept_2m_page())
30149 kvm_disable_largepages();
30150 @@ -6112,14 +6132,16 @@ static __init int hardware_setup(void)
30151 if (!cpu_has_vmx_apicv())
30152 enable_apicv = 0;
30153
30154 + pax_open_kernel();
30155 if (enable_apicv)
30156 - kvm_x86_ops->update_cr8_intercept = NULL;
30157 + *(void **)&kvm_x86_ops->update_cr8_intercept = NULL;
30158 else {
30159 - kvm_x86_ops->hwapic_irr_update = NULL;
30160 - kvm_x86_ops->hwapic_isr_update = NULL;
30161 - kvm_x86_ops->deliver_posted_interrupt = NULL;
30162 - kvm_x86_ops->sync_pir_to_irr = vmx_sync_pir_to_irr_dummy;
30163 + *(void **)&kvm_x86_ops->hwapic_irr_update = NULL;
30164 + *(void **)&kvm_x86_ops->hwapic_isr_update = NULL;
30165 + *(void **)&kvm_x86_ops->deliver_posted_interrupt = NULL;
30166 + *(void **)&kvm_x86_ops->sync_pir_to_irr = vmx_sync_pir_to_irr_dummy;
30167 }
30168 + pax_close_kernel();
30169
30170 vmx_disable_intercept_for_msr(MSR_FS_BASE, false);
30171 vmx_disable_intercept_for_msr(MSR_GS_BASE, false);
30172 @@ -6174,10 +6196,12 @@ static __init int hardware_setup(void)
30173 enable_pml = 0;
30174
30175 if (!enable_pml) {
30176 - kvm_x86_ops->slot_enable_log_dirty = NULL;
30177 - kvm_x86_ops->slot_disable_log_dirty = NULL;
30178 - kvm_x86_ops->flush_log_dirty = NULL;
30179 - kvm_x86_ops->enable_log_dirty_pt_masked = NULL;
30180 + pax_open_kernel();
30181 + *(void **)&kvm_x86_ops->slot_enable_log_dirty = NULL;
30182 + *(void **)&kvm_x86_ops->slot_disable_log_dirty = NULL;
30183 + *(void **)&kvm_x86_ops->flush_log_dirty = NULL;
30184 + *(void **)&kvm_x86_ops->enable_log_dirty_pt_masked = NULL;
30185 + pax_close_kernel();
30186 }
30187
30188 return alloc_kvm_area();
30189 @@ -8380,6 +8404,12 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30190 "jmp 2f \n\t"
30191 "1: " __ex(ASM_VMX_VMRESUME) "\n\t"
30192 "2: "
30193 +
30194 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
30195 + "ljmp %[cs],$3f\n\t"
30196 + "3: "
30197 +#endif
30198 +
30199 /* Save guest registers, load host registers, keep flags */
30200 "mov %0, %c[wordsize](%%" _ASM_SP ") \n\t"
30201 "pop %0 \n\t"
30202 @@ -8432,6 +8462,11 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30203 #endif
30204 [cr2]"i"(offsetof(struct vcpu_vmx, vcpu.arch.cr2)),
30205 [wordsize]"i"(sizeof(ulong))
30206 +
30207 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
30208 + ,[cs]"i"(__KERNEL_CS)
30209 +#endif
30210 +
30211 : "cc", "memory"
30212 #ifdef CONFIG_X86_64
30213 , "rax", "rbx", "rdi", "rsi"
30214 @@ -8445,7 +8480,7 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30215 if (debugctlmsr)
30216 update_debugctlmsr(debugctlmsr);
30217
30218 -#ifndef CONFIG_X86_64
30219 +#ifdef CONFIG_X86_32
30220 /*
30221 * The sysexit path does not restore ds/es, so we must set them to
30222 * a reasonable value ourselves.
30223 @@ -8454,8 +8489,18 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
30224 * may be executed in interrupt context, which saves and restore segments
30225 * around it, nullifying its effect.
30226 */
30227 - loadsegment(ds, __USER_DS);
30228 - loadsegment(es, __USER_DS);
30229 + loadsegment(ds, __KERNEL_DS);
30230 + loadsegment(es, __KERNEL_DS);
30231 + loadsegment(ss, __KERNEL_DS);
30232 +
30233 +#ifdef CONFIG_PAX_KERNEXEC
30234 + loadsegment(fs, __KERNEL_PERCPU);
30235 +#endif
30236 +
30237 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30238 + __set_fs(current_thread_info()->addr_limit);
30239 +#endif
30240 +
30241 #endif
30242
30243 vcpu->arch.regs_avail = ~((1 << VCPU_REGS_RIP) | (1 << VCPU_REGS_RSP)
30244 diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
30245 index 373328b7..ebd267f 100644
30246 --- a/arch/x86/kvm/x86.c
30247 +++ b/arch/x86/kvm/x86.c
30248 @@ -1842,8 +1842,8 @@ static int xen_hvm_config(struct kvm_vcpu *vcpu, u64 data)
30249 {
30250 struct kvm *kvm = vcpu->kvm;
30251 int lm = is_long_mode(vcpu);
30252 - u8 *blob_addr = lm ? (u8 *)(long)kvm->arch.xen_hvm_config.blob_addr_64
30253 - : (u8 *)(long)kvm->arch.xen_hvm_config.blob_addr_32;
30254 + u8 __user *blob_addr = lm ? (u8 __user *)(long)kvm->arch.xen_hvm_config.blob_addr_64
30255 + : (u8 __user *)(long)kvm->arch.xen_hvm_config.blob_addr_32;
30256 u8 blob_size = lm ? kvm->arch.xen_hvm_config.blob_size_64
30257 : kvm->arch.xen_hvm_config.blob_size_32;
30258 u32 page_num = data & ~PAGE_MASK;
30259 @@ -2733,6 +2733,8 @@ long kvm_arch_dev_ioctl(struct file *filp,
30260 if (n < msr_list.nmsrs)
30261 goto out;
30262 r = -EFAULT;
30263 + if (num_msrs_to_save > ARRAY_SIZE(msrs_to_save))
30264 + goto out;
30265 if (copy_to_user(user_msr_list->indices, &msrs_to_save,
30266 num_msrs_to_save * sizeof(u32)))
30267 goto out;
30268 @@ -3093,7 +3095,7 @@ static int kvm_vcpu_ioctl_x86_set_debugregs(struct kvm_vcpu *vcpu,
30269
30270 static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
30271 {
30272 - struct xregs_state *xsave = &vcpu->arch.guest_fpu.state.xsave;
30273 + struct xregs_state *xsave = &vcpu->arch.guest_fpu.state->xsave;
30274 u64 xstate_bv = xsave->header.xfeatures;
30275 u64 valid;
30276
30277 @@ -3129,7 +3131,7 @@ static void fill_xsave(u8 *dest, struct kvm_vcpu *vcpu)
30278
30279 static void load_xsave(struct kvm_vcpu *vcpu, u8 *src)
30280 {
30281 - struct xregs_state *xsave = &vcpu->arch.guest_fpu.state.xsave;
30282 + struct xregs_state *xsave = &vcpu->arch.guest_fpu.state->xsave;
30283 u64 xstate_bv = *(u64 *)(src + XSAVE_HDR_OFFSET);
30284 u64 valid;
30285
30286 @@ -3173,7 +3175,7 @@ static void kvm_vcpu_ioctl_x86_get_xsave(struct kvm_vcpu *vcpu,
30287 fill_xsave((u8 *) guest_xsave->region, vcpu);
30288 } else {
30289 memcpy(guest_xsave->region,
30290 - &vcpu->arch.guest_fpu.state.fxsave,
30291 + &vcpu->arch.guest_fpu.state->fxsave,
30292 sizeof(struct fxregs_state));
30293 *(u64 *)&guest_xsave->region[XSAVE_HDR_OFFSET / sizeof(u32)] =
30294 XSTATE_FPSSE;
30295 @@ -3198,7 +3200,7 @@ static int kvm_vcpu_ioctl_x86_set_xsave(struct kvm_vcpu *vcpu,
30296 } else {
30297 if (xstate_bv & ~XSTATE_FPSSE)
30298 return -EINVAL;
30299 - memcpy(&vcpu->arch.guest_fpu.state.fxsave,
30300 + memcpy(&vcpu->arch.guest_fpu.state->fxsave,
30301 guest_xsave->region, sizeof(struct fxregs_state));
30302 }
30303 return 0;
30304 @@ -5788,7 +5790,7 @@ static struct notifier_block pvclock_gtod_notifier = {
30305 };
30306 #endif
30307
30308 -int kvm_arch_init(void *opaque)
30309 +int kvm_arch_init(const void *opaque)
30310 {
30311 int r;
30312 struct kvm_x86_ops *ops = opaque;
30313 @@ -7217,7 +7219,7 @@ int kvm_arch_vcpu_ioctl_translate(struct kvm_vcpu *vcpu,
30314 int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30315 {
30316 struct fxregs_state *fxsave =
30317 - &vcpu->arch.guest_fpu.state.fxsave;
30318 + &vcpu->arch.guest_fpu.state->fxsave;
30319
30320 memcpy(fpu->fpr, fxsave->st_space, 128);
30321 fpu->fcw = fxsave->cwd;
30322 @@ -7234,7 +7236,7 @@ int kvm_arch_vcpu_ioctl_get_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30323 int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30324 {
30325 struct fxregs_state *fxsave =
30326 - &vcpu->arch.guest_fpu.state.fxsave;
30327 + &vcpu->arch.guest_fpu.state->fxsave;
30328
30329 memcpy(fxsave->st_space, fpu->fpr, 128);
30330 fxsave->cwd = fpu->fcw;
30331 @@ -7250,9 +7252,9 @@ int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
30332
30333 static void fx_init(struct kvm_vcpu *vcpu)
30334 {
30335 - fpstate_init(&vcpu->arch.guest_fpu.state);
30336 + fpstate_init(vcpu->arch.guest_fpu.state);
30337 if (cpu_has_xsaves)
30338 - vcpu->arch.guest_fpu.state.xsave.header.xcomp_bv =
30339 + vcpu->arch.guest_fpu.state->xsave.header.xcomp_bv =
30340 host_xcr0 | XSTATE_COMPACTION_ENABLED;
30341
30342 /*
30343 @@ -7276,7 +7278,7 @@ void kvm_load_guest_fpu(struct kvm_vcpu *vcpu)
30344 kvm_put_guest_xcr0(vcpu);
30345 vcpu->guest_fpu_loaded = 1;
30346 __kernel_fpu_begin();
30347 - __copy_kernel_to_fpregs(&vcpu->arch.guest_fpu.state);
30348 + __copy_kernel_to_fpregs(vcpu->arch.guest_fpu.state);
30349 trace_kvm_fpu(1);
30350 }
30351
30352 @@ -7554,6 +7556,8 @@ bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu)
30353
30354 struct static_key kvm_no_apic_vcpu __read_mostly;
30355
30356 +extern struct kmem_cache *fpregs_state_cachep;
30357 +
30358 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
30359 {
30360 struct page *page;
30361 @@ -7570,11 +7574,14 @@ int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
30362 else
30363 vcpu->arch.mp_state = KVM_MP_STATE_UNINITIALIZED;
30364
30365 - page = alloc_page(GFP_KERNEL | __GFP_ZERO);
30366 - if (!page) {
30367 - r = -ENOMEM;
30368 + r = -ENOMEM;
30369 + vcpu->arch.guest_fpu.state = kmem_cache_alloc(fpregs_state_cachep, GFP_KERNEL);
30370 + if (!vcpu->arch.guest_fpu.state)
30371 goto fail;
30372 - }
30373 +
30374 + page = alloc_page(GFP_KERNEL | __GFP_ZERO);
30375 + if (!page)
30376 + goto fail_free_fpregs;
30377 vcpu->arch.pio_data = page_address(page);
30378
30379 kvm_set_tsc_khz(vcpu, max_tsc_khz);
30380 @@ -7628,6 +7635,9 @@ fail_mmu_destroy:
30381 kvm_mmu_destroy(vcpu);
30382 fail_free_pio_data:
30383 free_page((unsigned long)vcpu->arch.pio_data);
30384 +fail_free_fpregs:
30385 + kmem_cache_free(fpregs_state_cachep, vcpu->arch.guest_fpu.state);
30386 + vcpu->arch.guest_fpu.state = NULL;
30387 fail:
30388 return r;
30389 }
30390 @@ -7645,6 +7655,8 @@ void kvm_arch_vcpu_uninit(struct kvm_vcpu *vcpu)
30391 free_page((unsigned long)vcpu->arch.pio_data);
30392 if (!irqchip_in_kernel(vcpu->kvm))
30393 static_key_slow_dec(&kvm_no_apic_vcpu);
30394 + kmem_cache_free(fpregs_state_cachep, vcpu->arch.guest_fpu.state);
30395 + vcpu->arch.guest_fpu.state = NULL;
30396 }
30397
30398 void kvm_arch_sched_in(struct kvm_vcpu *vcpu, int cpu)
30399 diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c
30400 index f2dc08c..d85d906 100644
30401 --- a/arch/x86/lguest/boot.c
30402 +++ b/arch/x86/lguest/boot.c
30403 @@ -1341,9 +1341,10 @@ static __init int early_put_chars(u32 vtermno, const char *buf, int count)
30404 * Rebooting also tells the Host we're finished, but the RESTART flag tells the
30405 * Launcher to reboot us.
30406 */
30407 -static void lguest_restart(char *reason)
30408 +static __noreturn void lguest_restart(char *reason)
30409 {
30410 hcall(LHCALL_SHUTDOWN, __pa(reason), LGUEST_SHUTDOWN_RESTART, 0, 0);
30411 + BUG();
30412 }
30413
30414 /*G:050
30415 diff --git a/arch/x86/lib/atomic64_386_32.S b/arch/x86/lib/atomic64_386_32.S
30416 index 9b0ca8f..bb4af41 100644
30417 --- a/arch/x86/lib/atomic64_386_32.S
30418 +++ b/arch/x86/lib/atomic64_386_32.S
30419 @@ -45,6 +45,10 @@ BEGIN(read)
30420 movl (v), %eax
30421 movl 4(v), %edx
30422 RET_ENDP
30423 +BEGIN(read_unchecked)
30424 + movl (v), %eax
30425 + movl 4(v), %edx
30426 +RET_ENDP
30427 #undef v
30428
30429 #define v %esi
30430 @@ -52,6 +56,10 @@ BEGIN(set)
30431 movl %ebx, (v)
30432 movl %ecx, 4(v)
30433 RET_ENDP
30434 +BEGIN(set_unchecked)
30435 + movl %ebx, (v)
30436 + movl %ecx, 4(v)
30437 +RET_ENDP
30438 #undef v
30439
30440 #define v %esi
30441 @@ -67,6 +75,20 @@ RET_ENDP
30442 BEGIN(add)
30443 addl %eax, (v)
30444 adcl %edx, 4(v)
30445 +
30446 +#ifdef CONFIG_PAX_REFCOUNT
30447 + jno 0f
30448 + subl %eax, (v)
30449 + sbbl %edx, 4(v)
30450 + int $4
30451 +0:
30452 + _ASM_EXTABLE(0b, 0b)
30453 +#endif
30454 +
30455 +RET_ENDP
30456 +BEGIN(add_unchecked)
30457 + addl %eax, (v)
30458 + adcl %edx, 4(v)
30459 RET_ENDP
30460 #undef v
30461
30462 @@ -74,6 +96,24 @@ RET_ENDP
30463 BEGIN(add_return)
30464 addl (v), %eax
30465 adcl 4(v), %edx
30466 +
30467 +#ifdef CONFIG_PAX_REFCOUNT
30468 + into
30469 +1234:
30470 + _ASM_EXTABLE(1234b, 2f)
30471 +#endif
30472 +
30473 + movl %eax, (v)
30474 + movl %edx, 4(v)
30475 +
30476 +#ifdef CONFIG_PAX_REFCOUNT
30477 +2:
30478 +#endif
30479 +
30480 +RET_ENDP
30481 +BEGIN(add_return_unchecked)
30482 + addl (v), %eax
30483 + adcl 4(v), %edx
30484 movl %eax, (v)
30485 movl %edx, 4(v)
30486 RET_ENDP
30487 @@ -83,6 +123,20 @@ RET_ENDP
30488 BEGIN(sub)
30489 subl %eax, (v)
30490 sbbl %edx, 4(v)
30491 +
30492 +#ifdef CONFIG_PAX_REFCOUNT
30493 + jno 0f
30494 + addl %eax, (v)
30495 + adcl %edx, 4(v)
30496 + int $4
30497 +0:
30498 + _ASM_EXTABLE(0b, 0b)
30499 +#endif
30500 +
30501 +RET_ENDP
30502 +BEGIN(sub_unchecked)
30503 + subl %eax, (v)
30504 + sbbl %edx, 4(v)
30505 RET_ENDP
30506 #undef v
30507
30508 @@ -93,6 +147,27 @@ BEGIN(sub_return)
30509 sbbl $0, %edx
30510 addl (v), %eax
30511 adcl 4(v), %edx
30512 +
30513 +#ifdef CONFIG_PAX_REFCOUNT
30514 + into
30515 +1234:
30516 + _ASM_EXTABLE(1234b, 2f)
30517 +#endif
30518 +
30519 + movl %eax, (v)
30520 + movl %edx, 4(v)
30521 +
30522 +#ifdef CONFIG_PAX_REFCOUNT
30523 +2:
30524 +#endif
30525 +
30526 +RET_ENDP
30527 +BEGIN(sub_return_unchecked)
30528 + negl %edx
30529 + negl %eax
30530 + sbbl $0, %edx
30531 + addl (v), %eax
30532 + adcl 4(v), %edx
30533 movl %eax, (v)
30534 movl %edx, 4(v)
30535 RET_ENDP
30536 @@ -102,6 +177,20 @@ RET_ENDP
30537 BEGIN(inc)
30538 addl $1, (v)
30539 adcl $0, 4(v)
30540 +
30541 +#ifdef CONFIG_PAX_REFCOUNT
30542 + jno 0f
30543 + subl $1, (v)
30544 + sbbl $0, 4(v)
30545 + int $4
30546 +0:
30547 + _ASM_EXTABLE(0b, 0b)
30548 +#endif
30549 +
30550 +RET_ENDP
30551 +BEGIN(inc_unchecked)
30552 + addl $1, (v)
30553 + adcl $0, 4(v)
30554 RET_ENDP
30555 #undef v
30556
30557 @@ -111,6 +200,26 @@ BEGIN(inc_return)
30558 movl 4(v), %edx
30559 addl $1, %eax
30560 adcl $0, %edx
30561 +
30562 +#ifdef CONFIG_PAX_REFCOUNT
30563 + into
30564 +1234:
30565 + _ASM_EXTABLE(1234b, 2f)
30566 +#endif
30567 +
30568 + movl %eax, (v)
30569 + movl %edx, 4(v)
30570 +
30571 +#ifdef CONFIG_PAX_REFCOUNT
30572 +2:
30573 +#endif
30574 +
30575 +RET_ENDP
30576 +BEGIN(inc_return_unchecked)
30577 + movl (v), %eax
30578 + movl 4(v), %edx
30579 + addl $1, %eax
30580 + adcl $0, %edx
30581 movl %eax, (v)
30582 movl %edx, 4(v)
30583 RET_ENDP
30584 @@ -120,6 +229,20 @@ RET_ENDP
30585 BEGIN(dec)
30586 subl $1, (v)
30587 sbbl $0, 4(v)
30588 +
30589 +#ifdef CONFIG_PAX_REFCOUNT
30590 + jno 0f
30591 + addl $1, (v)
30592 + adcl $0, 4(v)
30593 + int $4
30594 +0:
30595 + _ASM_EXTABLE(0b, 0b)
30596 +#endif
30597 +
30598 +RET_ENDP
30599 +BEGIN(dec_unchecked)
30600 + subl $1, (v)
30601 + sbbl $0, 4(v)
30602 RET_ENDP
30603 #undef v
30604
30605 @@ -129,6 +252,26 @@ BEGIN(dec_return)
30606 movl 4(v), %edx
30607 subl $1, %eax
30608 sbbl $0, %edx
30609 +
30610 +#ifdef CONFIG_PAX_REFCOUNT
30611 + into
30612 +1234:
30613 + _ASM_EXTABLE(1234b, 2f)
30614 +#endif
30615 +
30616 + movl %eax, (v)
30617 + movl %edx, 4(v)
30618 +
30619 +#ifdef CONFIG_PAX_REFCOUNT
30620 +2:
30621 +#endif
30622 +
30623 +RET_ENDP
30624 +BEGIN(dec_return_unchecked)
30625 + movl (v), %eax
30626 + movl 4(v), %edx
30627 + subl $1, %eax
30628 + sbbl $0, %edx
30629 movl %eax, (v)
30630 movl %edx, 4(v)
30631 RET_ENDP
30632 @@ -140,6 +283,13 @@ BEGIN(add_unless)
30633 adcl %edx, %edi
30634 addl (v), %eax
30635 adcl 4(v), %edx
30636 +
30637 +#ifdef CONFIG_PAX_REFCOUNT
30638 + into
30639 +1234:
30640 + _ASM_EXTABLE(1234b, 2f)
30641 +#endif
30642 +
30643 cmpl %eax, %ecx
30644 je 3f
30645 1:
30646 @@ -165,6 +315,13 @@ BEGIN(inc_not_zero)
30647 1:
30648 addl $1, %eax
30649 adcl $0, %edx
30650 +
30651 +#ifdef CONFIG_PAX_REFCOUNT
30652 + into
30653 +1234:
30654 + _ASM_EXTABLE(1234b, 2f)
30655 +#endif
30656 +
30657 movl %eax, (v)
30658 movl %edx, 4(v)
30659 movl $1, %eax
30660 @@ -183,6 +340,13 @@ BEGIN(dec_if_positive)
30661 movl 4(v), %edx
30662 subl $1, %eax
30663 sbbl $0, %edx
30664 +
30665 +#ifdef CONFIG_PAX_REFCOUNT
30666 + into
30667 +1234:
30668 + _ASM_EXTABLE(1234b, 1f)
30669 +#endif
30670 +
30671 js 1f
30672 movl %eax, (v)
30673 movl %edx, 4(v)
30674 diff --git a/arch/x86/lib/atomic64_cx8_32.S b/arch/x86/lib/atomic64_cx8_32.S
30675 index db3ae854..b8ad0de 100644
30676 --- a/arch/x86/lib/atomic64_cx8_32.S
30677 +++ b/arch/x86/lib/atomic64_cx8_32.S
30678 @@ -22,9 +22,16 @@
30679
30680 ENTRY(atomic64_read_cx8)
30681 read64 %ecx
30682 + pax_force_retaddr
30683 ret
30684 ENDPROC(atomic64_read_cx8)
30685
30686 +ENTRY(atomic64_read_unchecked_cx8)
30687 + read64 %ecx
30688 + pax_force_retaddr
30689 + ret
30690 +ENDPROC(atomic64_read_unchecked_cx8)
30691 +
30692 ENTRY(atomic64_set_cx8)
30693 1:
30694 /* we don't need LOCK_PREFIX since aligned 64-bit writes
30695 @@ -32,20 +39,33 @@ ENTRY(atomic64_set_cx8)
30696 cmpxchg8b (%esi)
30697 jne 1b
30698
30699 + pax_force_retaddr
30700 ret
30701 ENDPROC(atomic64_set_cx8)
30702
30703 +ENTRY(atomic64_set_unchecked_cx8)
30704 +1:
30705 +/* we don't need LOCK_PREFIX since aligned 64-bit writes
30706 + * are atomic on 586 and newer */
30707 + cmpxchg8b (%esi)
30708 + jne 1b
30709 +
30710 + pax_force_retaddr
30711 + ret
30712 +ENDPROC(atomic64_set_unchecked_cx8)
30713 +
30714 ENTRY(atomic64_xchg_cx8)
30715 1:
30716 LOCK_PREFIX
30717 cmpxchg8b (%esi)
30718 jne 1b
30719
30720 + pax_force_retaddr
30721 ret
30722 ENDPROC(atomic64_xchg_cx8)
30723
30724 -.macro addsub_return func ins insc
30725 -ENTRY(atomic64_\func\()_return_cx8)
30726 +.macro addsub_return func ins insc unchecked=""
30727 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
30728 pushl %ebp
30729 pushl %ebx
30730 pushl %esi
30731 @@ -61,26 +81,43 @@ ENTRY(atomic64_\func\()_return_cx8)
30732 movl %edx, %ecx
30733 \ins\()l %esi, %ebx
30734 \insc\()l %edi, %ecx
30735 +
30736 +.ifb \unchecked
30737 +#ifdef CONFIG_PAX_REFCOUNT
30738 + into
30739 +2:
30740 + _ASM_EXTABLE(2b, 3f)
30741 +#endif
30742 +.endif
30743 +
30744 LOCK_PREFIX
30745 cmpxchg8b (%ebp)
30746 jne 1b
30747 -
30748 -10:
30749 movl %ebx, %eax
30750 movl %ecx, %edx
30751 +
30752 +.ifb \unchecked
30753 +#ifdef CONFIG_PAX_REFCOUNT
30754 +3:
30755 +#endif
30756 +.endif
30757 +
30758 popl %edi
30759 popl %esi
30760 popl %ebx
30761 popl %ebp
30762 + pax_force_retaddr
30763 ret
30764 -ENDPROC(atomic64_\func\()_return_cx8)
30765 +ENDPROC(atomic64_\func\()_return\unchecked\()_cx8)
30766 .endm
30767
30768 addsub_return add add adc
30769 addsub_return sub sub sbb
30770 +addsub_return add add adc _unchecked
30771 +addsub_return sub sub sbb _unchecked
30772
30773 -.macro incdec_return func ins insc
30774 -ENTRY(atomic64_\func\()_return_cx8)
30775 +.macro incdec_return func ins insc unchecked=""
30776 +ENTRY(atomic64_\func\()_return\unchecked\()_cx8)
30777 pushl %ebx
30778
30779 read64 %esi
30780 @@ -89,20 +126,37 @@ ENTRY(atomic64_\func\()_return_cx8)
30781 movl %edx, %ecx
30782 \ins\()l $1, %ebx
30783 \insc\()l $0, %ecx
30784 +
30785 +.ifb \unchecked
30786 +#ifdef CONFIG_PAX_REFCOUNT
30787 + into
30788 +2:
30789 + _ASM_EXTABLE(2b, 3f)
30790 +#endif
30791 +.endif
30792 +
30793 LOCK_PREFIX
30794 cmpxchg8b (%esi)
30795 jne 1b
30796 -
30797 -10:
30798 movl %ebx, %eax
30799 movl %ecx, %edx
30800 +
30801 +.ifb \unchecked
30802 +#ifdef CONFIG_PAX_REFCOUNT
30803 +3:
30804 +#endif
30805 +.endif
30806 +
30807 popl %ebx
30808 + pax_force_retaddr
30809 ret
30810 -ENDPROC(atomic64_\func\()_return_cx8)
30811 +ENDPROC(atomic64_\func\()_return\unchecked\()_cx8)
30812 .endm
30813
30814 incdec_return inc add adc
30815 incdec_return dec sub sbb
30816 +incdec_return inc add adc _unchecked
30817 +incdec_return dec sub sbb _unchecked
30818
30819 ENTRY(atomic64_dec_if_positive_cx8)
30820 pushl %ebx
30821 @@ -113,6 +167,13 @@ ENTRY(atomic64_dec_if_positive_cx8)
30822 movl %edx, %ecx
30823 subl $1, %ebx
30824 sbb $0, %ecx
30825 +
30826 +#ifdef CONFIG_PAX_REFCOUNT
30827 + into
30828 +1234:
30829 + _ASM_EXTABLE(1234b, 2f)
30830 +#endif
30831 +
30832 js 2f
30833 LOCK_PREFIX
30834 cmpxchg8b (%esi)
30835 @@ -122,6 +183,7 @@ ENTRY(atomic64_dec_if_positive_cx8)
30836 movl %ebx, %eax
30837 movl %ecx, %edx
30838 popl %ebx
30839 + pax_force_retaddr
30840 ret
30841 ENDPROC(atomic64_dec_if_positive_cx8)
30842
30843 @@ -144,6 +206,13 @@ ENTRY(atomic64_add_unless_cx8)
30844 movl %edx, %ecx
30845 addl %ebp, %ebx
30846 adcl %edi, %ecx
30847 +
30848 +#ifdef CONFIG_PAX_REFCOUNT
30849 + into
30850 +1234:
30851 + _ASM_EXTABLE(1234b, 3f)
30852 +#endif
30853 +
30854 LOCK_PREFIX
30855 cmpxchg8b (%esi)
30856 jne 1b
30857 @@ -153,6 +222,7 @@ ENTRY(atomic64_add_unless_cx8)
30858 addl $8, %esp
30859 popl %ebx
30860 popl %ebp
30861 + pax_force_retaddr
30862 ret
30863 4:
30864 cmpl %edx, 4(%esp)
30865 @@ -173,6 +243,13 @@ ENTRY(atomic64_inc_not_zero_cx8)
30866 xorl %ecx, %ecx
30867 addl $1, %ebx
30868 adcl %edx, %ecx
30869 +
30870 +#ifdef CONFIG_PAX_REFCOUNT
30871 + into
30872 +1234:
30873 + _ASM_EXTABLE(1234b, 3f)
30874 +#endif
30875 +
30876 LOCK_PREFIX
30877 cmpxchg8b (%esi)
30878 jne 1b
30879 @@ -180,5 +257,6 @@ ENTRY(atomic64_inc_not_zero_cx8)
30880 movl $1, %eax
30881 3:
30882 popl %ebx
30883 + pax_force_retaddr
30884 ret
30885 ENDPROC(atomic64_inc_not_zero_cx8)
30886 diff --git a/arch/x86/lib/checksum_32.S b/arch/x86/lib/checksum_32.S
30887 index c1e6232..ebbeba7 100644
30888 --- a/arch/x86/lib/checksum_32.S
30889 +++ b/arch/x86/lib/checksum_32.S
30890 @@ -28,7 +28,8 @@
30891 #include <linux/linkage.h>
30892 #include <asm/errno.h>
30893 #include <asm/asm.h>
30894 -
30895 +#include <asm/segment.h>
30896 +
30897 /*
30898 * computes a partial checksum, e.g. for TCP/UDP fragments
30899 */
30900 @@ -280,7 +281,22 @@ unsigned int csum_partial_copy_generic (const char *src, char *dst,
30901
30902 #define ARGBASE 16
30903 #define FP 12
30904 -
30905 +
30906 +ENTRY(csum_partial_copy_generic_to_user)
30907 +
30908 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30909 + pushl %gs
30910 + popl %es
30911 + jmp csum_partial_copy_generic
30912 +#endif
30913 +
30914 +ENTRY(csum_partial_copy_generic_from_user)
30915 +
30916 +#ifdef CONFIG_PAX_MEMORY_UDEREF
30917 + pushl %gs
30918 + popl %ds
30919 +#endif
30920 +
30921 ENTRY(csum_partial_copy_generic)
30922 subl $4,%esp
30923 pushl %edi
30924 @@ -299,7 +315,7 @@ ENTRY(csum_partial_copy_generic)
30925 jmp 4f
30926 SRC(1: movw (%esi), %bx )
30927 addl $2, %esi
30928 -DST( movw %bx, (%edi) )
30929 +DST( movw %bx, %es:(%edi) )
30930 addl $2, %edi
30931 addw %bx, %ax
30932 adcl $0, %eax
30933 @@ -311,30 +327,30 @@ DST( movw %bx, (%edi) )
30934 SRC(1: movl (%esi), %ebx )
30935 SRC( movl 4(%esi), %edx )
30936 adcl %ebx, %eax
30937 -DST( movl %ebx, (%edi) )
30938 +DST( movl %ebx, %es:(%edi) )
30939 adcl %edx, %eax
30940 -DST( movl %edx, 4(%edi) )
30941 +DST( movl %edx, %es:4(%edi) )
30942
30943 SRC( movl 8(%esi), %ebx )
30944 SRC( movl 12(%esi), %edx )
30945 adcl %ebx, %eax
30946 -DST( movl %ebx, 8(%edi) )
30947 +DST( movl %ebx, %es:8(%edi) )
30948 adcl %edx, %eax
30949 -DST( movl %edx, 12(%edi) )
30950 +DST( movl %edx, %es:12(%edi) )
30951
30952 SRC( movl 16(%esi), %ebx )
30953 SRC( movl 20(%esi), %edx )
30954 adcl %ebx, %eax
30955 -DST( movl %ebx, 16(%edi) )
30956 +DST( movl %ebx, %es:16(%edi) )
30957 adcl %edx, %eax
30958 -DST( movl %edx, 20(%edi) )
30959 +DST( movl %edx, %es:20(%edi) )
30960
30961 SRC( movl 24(%esi), %ebx )
30962 SRC( movl 28(%esi), %edx )
30963 adcl %ebx, %eax
30964 -DST( movl %ebx, 24(%edi) )
30965 +DST( movl %ebx, %es:24(%edi) )
30966 adcl %edx, %eax
30967 -DST( movl %edx, 28(%edi) )
30968 +DST( movl %edx, %es:28(%edi) )
30969
30970 lea 32(%esi), %esi
30971 lea 32(%edi), %edi
30972 @@ -348,7 +364,7 @@ DST( movl %edx, 28(%edi) )
30973 shrl $2, %edx # This clears CF
30974 SRC(3: movl (%esi), %ebx )
30975 adcl %ebx, %eax
30976 -DST( movl %ebx, (%edi) )
30977 +DST( movl %ebx, %es:(%edi) )
30978 lea 4(%esi), %esi
30979 lea 4(%edi), %edi
30980 dec %edx
30981 @@ -360,12 +376,12 @@ DST( movl %ebx, (%edi) )
30982 jb 5f
30983 SRC( movw (%esi), %cx )
30984 leal 2(%esi), %esi
30985 -DST( movw %cx, (%edi) )
30986 +DST( movw %cx, %es:(%edi) )
30987 leal 2(%edi), %edi
30988 je 6f
30989 shll $16,%ecx
30990 SRC(5: movb (%esi), %cl )
30991 -DST( movb %cl, (%edi) )
30992 +DST( movb %cl, %es:(%edi) )
30993 6: addl %ecx, %eax
30994 adcl $0, %eax
30995 7:
30996 @@ -376,7 +392,7 @@ DST( movb %cl, (%edi) )
30997
30998 6001:
30999 movl ARGBASE+20(%esp), %ebx # src_err_ptr
31000 - movl $-EFAULT, (%ebx)
31001 + movl $-EFAULT, %ss:(%ebx)
31002
31003 # zero the complete destination - computing the rest
31004 # is too much work
31005 @@ -389,34 +405,58 @@ DST( movb %cl, (%edi) )
31006
31007 6002:
31008 movl ARGBASE+24(%esp), %ebx # dst_err_ptr
31009 - movl $-EFAULT,(%ebx)
31010 + movl $-EFAULT,%ss:(%ebx)
31011 jmp 5000b
31012
31013 .previous
31014
31015 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31016 + pushl %ss
31017 + popl %ds
31018 + pushl %ss
31019 + popl %es
31020 +#endif
31021 +
31022 popl %ebx
31023 popl %esi
31024 popl %edi
31025 popl %ecx # equivalent to addl $4,%esp
31026 ret
31027 -ENDPROC(csum_partial_copy_generic)
31028 +ENDPROC(csum_partial_copy_generic_to_user)
31029
31030 #else
31031
31032 /* Version for PentiumII/PPro */
31033
31034 #define ROUND1(x) \
31035 + nop; nop; nop; \
31036 SRC(movl x(%esi), %ebx ) ; \
31037 addl %ebx, %eax ; \
31038 - DST(movl %ebx, x(%edi) ) ;
31039 + DST(movl %ebx, %es:x(%edi)) ;
31040
31041 #define ROUND(x) \
31042 + nop; nop; nop; \
31043 SRC(movl x(%esi), %ebx ) ; \
31044 adcl %ebx, %eax ; \
31045 - DST(movl %ebx, x(%edi) ) ;
31046 + DST(movl %ebx, %es:x(%edi)) ;
31047
31048 #define ARGBASE 12
31049 -
31050 +
31051 +ENTRY(csum_partial_copy_generic_to_user)
31052 +
31053 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31054 + pushl %gs
31055 + popl %es
31056 + jmp csum_partial_copy_generic
31057 +#endif
31058 +
31059 +ENTRY(csum_partial_copy_generic_from_user)
31060 +
31061 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31062 + pushl %gs
31063 + popl %ds
31064 +#endif
31065 +
31066 ENTRY(csum_partial_copy_generic)
31067 pushl %ebx
31068 pushl %edi
31069 @@ -435,7 +475,7 @@ ENTRY(csum_partial_copy_generic)
31070 subl %ebx, %edi
31071 lea -1(%esi),%edx
31072 andl $-32,%edx
31073 - lea 3f(%ebx,%ebx), %ebx
31074 + lea 3f(%ebx,%ebx,2), %ebx
31075 testl %esi, %esi
31076 jmp *%ebx
31077 1: addl $64,%esi
31078 @@ -456,19 +496,19 @@ ENTRY(csum_partial_copy_generic)
31079 jb 5f
31080 SRC( movw (%esi), %dx )
31081 leal 2(%esi), %esi
31082 -DST( movw %dx, (%edi) )
31083 +DST( movw %dx, %es:(%edi) )
31084 leal 2(%edi), %edi
31085 je 6f
31086 shll $16,%edx
31087 5:
31088 SRC( movb (%esi), %dl )
31089 -DST( movb %dl, (%edi) )
31090 +DST( movb %dl, %es:(%edi) )
31091 6: addl %edx, %eax
31092 adcl $0, %eax
31093 7:
31094 .section .fixup, "ax"
31095 6001: movl ARGBASE+20(%esp), %ebx # src_err_ptr
31096 - movl $-EFAULT, (%ebx)
31097 + movl $-EFAULT, %ss:(%ebx)
31098 # zero the complete destination (computing the rest is too much work)
31099 movl ARGBASE+8(%esp),%edi # dst
31100 movl ARGBASE+12(%esp),%ecx # len
31101 @@ -476,15 +516,22 @@ DST( movb %dl, (%edi) )
31102 rep; stosb
31103 jmp 7b
31104 6002: movl ARGBASE+24(%esp), %ebx # dst_err_ptr
31105 - movl $-EFAULT, (%ebx)
31106 + movl $-EFAULT, %ss:(%ebx)
31107 jmp 7b
31108 .previous
31109
31110 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31111 + pushl %ss
31112 + popl %ds
31113 + pushl %ss
31114 + popl %es
31115 +#endif
31116 +
31117 popl %esi
31118 popl %edi
31119 popl %ebx
31120 ret
31121 -ENDPROC(csum_partial_copy_generic)
31122 +ENDPROC(csum_partial_copy_generic_to_user)
31123
31124 #undef ROUND
31125 #undef ROUND1
31126 diff --git a/arch/x86/lib/clear_page_64.S b/arch/x86/lib/clear_page_64.S
31127 index a2fe51b..507dab0 100644
31128 --- a/arch/x86/lib/clear_page_64.S
31129 +++ b/arch/x86/lib/clear_page_64.S
31130 @@ -21,6 +21,7 @@ ENTRY(clear_page)
31131 movl $4096/8,%ecx
31132 xorl %eax,%eax
31133 rep stosq
31134 + pax_force_retaddr
31135 ret
31136 ENDPROC(clear_page)
31137
31138 @@ -43,6 +44,7 @@ ENTRY(clear_page_orig)
31139 leaq 64(%rdi),%rdi
31140 jnz .Lloop
31141 nop
31142 + pax_force_retaddr
31143 ret
31144 ENDPROC(clear_page_orig)
31145
31146 @@ -50,5 +52,6 @@ ENTRY(clear_page_c_e)
31147 movl $4096,%ecx
31148 xorl %eax,%eax
31149 rep stosb
31150 + pax_force_retaddr
31151 ret
31152 ENDPROC(clear_page_c_e)
31153 diff --git a/arch/x86/lib/cmpxchg16b_emu.S b/arch/x86/lib/cmpxchg16b_emu.S
31154 index 9b33024..e52ee44 100644
31155 --- a/arch/x86/lib/cmpxchg16b_emu.S
31156 +++ b/arch/x86/lib/cmpxchg16b_emu.S
31157 @@ -7,6 +7,7 @@
31158 */
31159 #include <linux/linkage.h>
31160 #include <asm/percpu.h>
31161 +#include <asm/alternative-asm.h>
31162
31163 .text
31164
31165 @@ -43,11 +44,13 @@ ENTRY(this_cpu_cmpxchg16b_emu)
31166
31167 popfq
31168 mov $1, %al
31169 + pax_force_retaddr
31170 ret
31171
31172 .Lnot_same:
31173 popfq
31174 xor %al,%al
31175 + pax_force_retaddr
31176 ret
31177
31178 ENDPROC(this_cpu_cmpxchg16b_emu)
31179 diff --git a/arch/x86/lib/copy_page_64.S b/arch/x86/lib/copy_page_64.S
31180 index 009f982..9b3db5e 100644
31181 --- a/arch/x86/lib/copy_page_64.S
31182 +++ b/arch/x86/lib/copy_page_64.S
31183 @@ -15,13 +15,14 @@ ENTRY(copy_page)
31184 ALTERNATIVE "jmp copy_page_regs", "", X86_FEATURE_REP_GOOD
31185 movl $4096/8, %ecx
31186 rep movsq
31187 + pax_force_retaddr
31188 ret
31189 ENDPROC(copy_page)
31190
31191 ENTRY(copy_page_regs)
31192 subq $2*8, %rsp
31193 movq %rbx, (%rsp)
31194 - movq %r12, 1*8(%rsp)
31195 + movq %r13, 1*8(%rsp)
31196
31197 movl $(4096/64)-5, %ecx
31198 .p2align 4
31199 @@ -34,7 +35,7 @@ ENTRY(copy_page_regs)
31200 movq 0x8*4(%rsi), %r9
31201 movq 0x8*5(%rsi), %r10
31202 movq 0x8*6(%rsi), %r11
31203 - movq 0x8*7(%rsi), %r12
31204 + movq 0x8*7(%rsi), %r13
31205
31206 prefetcht0 5*64(%rsi)
31207
31208 @@ -45,7 +46,7 @@ ENTRY(copy_page_regs)
31209 movq %r9, 0x8*4(%rdi)
31210 movq %r10, 0x8*5(%rdi)
31211 movq %r11, 0x8*6(%rdi)
31212 - movq %r12, 0x8*7(%rdi)
31213 + movq %r13, 0x8*7(%rdi)
31214
31215 leaq 64 (%rsi), %rsi
31216 leaq 64 (%rdi), %rdi
31217 @@ -64,7 +65,7 @@ ENTRY(copy_page_regs)
31218 movq 0x8*4(%rsi), %r9
31219 movq 0x8*5(%rsi), %r10
31220 movq 0x8*6(%rsi), %r11
31221 - movq 0x8*7(%rsi), %r12
31222 + movq 0x8*7(%rsi), %r13
31223
31224 movq %rax, 0x8*0(%rdi)
31225 movq %rbx, 0x8*1(%rdi)
31226 @@ -73,14 +74,15 @@ ENTRY(copy_page_regs)
31227 movq %r9, 0x8*4(%rdi)
31228 movq %r10, 0x8*5(%rdi)
31229 movq %r11, 0x8*6(%rdi)
31230 - movq %r12, 0x8*7(%rdi)
31231 + movq %r13, 0x8*7(%rdi)
31232
31233 leaq 64(%rdi), %rdi
31234 leaq 64(%rsi), %rsi
31235 jnz .Loop2
31236
31237 movq (%rsp), %rbx
31238 - movq 1*8(%rsp), %r12
31239 + movq 1*8(%rsp), %r13
31240 addq $2*8, %rsp
31241 + pax_force_retaddr
31242 ret
31243 ENDPROC(copy_page_regs)
31244 diff --git a/arch/x86/lib/copy_user_64.S b/arch/x86/lib/copy_user_64.S
31245 index 982ce34..8e14731 100644
31246 --- a/arch/x86/lib/copy_user_64.S
31247 +++ b/arch/x86/lib/copy_user_64.S
31248 @@ -14,50 +14,7 @@
31249 #include <asm/alternative-asm.h>
31250 #include <asm/asm.h>
31251 #include <asm/smap.h>
31252 -
31253 -/* Standard copy_to_user with segment limit checking */
31254 -ENTRY(_copy_to_user)
31255 - GET_THREAD_INFO(%rax)
31256 - movq %rdi,%rcx
31257 - addq %rdx,%rcx
31258 - jc bad_to_user
31259 - cmpq TI_addr_limit(%rax),%rcx
31260 - ja bad_to_user
31261 - ALTERNATIVE_2 "jmp copy_user_generic_unrolled", \
31262 - "jmp copy_user_generic_string", \
31263 - X86_FEATURE_REP_GOOD, \
31264 - "jmp copy_user_enhanced_fast_string", \
31265 - X86_FEATURE_ERMS
31266 -ENDPROC(_copy_to_user)
31267 -
31268 -/* Standard copy_from_user with segment limit checking */
31269 -ENTRY(_copy_from_user)
31270 - GET_THREAD_INFO(%rax)
31271 - movq %rsi,%rcx
31272 - addq %rdx,%rcx
31273 - jc bad_from_user
31274 - cmpq TI_addr_limit(%rax),%rcx
31275 - ja bad_from_user
31276 - ALTERNATIVE_2 "jmp copy_user_generic_unrolled", \
31277 - "jmp copy_user_generic_string", \
31278 - X86_FEATURE_REP_GOOD, \
31279 - "jmp copy_user_enhanced_fast_string", \
31280 - X86_FEATURE_ERMS
31281 -ENDPROC(_copy_from_user)
31282 -
31283 - .section .fixup,"ax"
31284 - /* must zero dest */
31285 -ENTRY(bad_from_user)
31286 -bad_from_user:
31287 - movl %edx,%ecx
31288 - xorl %eax,%eax
31289 - rep
31290 - stosb
31291 -bad_to_user:
31292 - movl %edx,%eax
31293 - ret
31294 -ENDPROC(bad_from_user)
31295 - .previous
31296 +#include <asm/pgtable.h>
31297
31298 /*
31299 * copy_user_generic_unrolled - memory copy with exception handling.
31300 @@ -73,6 +30,7 @@ ENDPROC(bad_from_user)
31301 * eax uncopied bytes or 0 if successful.
31302 */
31303 ENTRY(copy_user_generic_unrolled)
31304 + ASM_PAX_OPEN_USERLAND
31305 ASM_STAC
31306 cmpl $8,%edx
31307 jb 20f /* less then 8 bytes, go to byte copy loop */
31308 @@ -122,6 +80,8 @@ ENTRY(copy_user_generic_unrolled)
31309 jnz 21b
31310 23: xor %eax,%eax
31311 ASM_CLAC
31312 + ASM_PAX_CLOSE_USERLAND
31313 + pax_force_retaddr
31314 ret
31315
31316 .section .fixup,"ax"
31317 @@ -175,6 +135,7 @@ ENDPROC(copy_user_generic_unrolled)
31318 * eax uncopied bytes or 0 if successful.
31319 */
31320 ENTRY(copy_user_generic_string)
31321 + ASM_PAX_OPEN_USERLAND
31322 ASM_STAC
31323 cmpl $8,%edx
31324 jb 2f /* less than 8 bytes, go to byte copy loop */
31325 @@ -189,6 +150,8 @@ ENTRY(copy_user_generic_string)
31326 movsb
31327 xorl %eax,%eax
31328 ASM_CLAC
31329 + ASM_PAX_CLOSE_USERLAND
31330 + pax_force_retaddr
31331 ret
31332
31333 .section .fixup,"ax"
31334 @@ -214,12 +177,15 @@ ENDPROC(copy_user_generic_string)
31335 * eax uncopied bytes or 0 if successful.
31336 */
31337 ENTRY(copy_user_enhanced_fast_string)
31338 + ASM_PAX_OPEN_USERLAND
31339 ASM_STAC
31340 movl %edx,%ecx
31341 1: rep
31342 movsb
31343 xorl %eax,%eax
31344 ASM_CLAC
31345 + ASM_PAX_CLOSE_USERLAND
31346 + pax_force_retaddr
31347 ret
31348
31349 .section .fixup,"ax"
31350 @@ -235,6 +201,16 @@ ENDPROC(copy_user_enhanced_fast_string)
31351 * This will force destination/source out of cache for more performance.
31352 */
31353 ENTRY(__copy_user_nocache)
31354 +
31355 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31356 + mov pax_user_shadow_base,%rcx
31357 + cmp %rcx,%rsi
31358 + jae 1f
31359 + add %rcx,%rsi
31360 +1:
31361 +#endif
31362 +
31363 + ASM_PAX_OPEN_USERLAND
31364 ASM_STAC
31365 cmpl $8,%edx
31366 jb 20f /* less then 8 bytes, go to byte copy loop */
31367 @@ -284,7 +260,9 @@ ENTRY(__copy_user_nocache)
31368 jnz 21b
31369 23: xorl %eax,%eax
31370 ASM_CLAC
31371 + ASM_PAX_CLOSE_USERLAND
31372 sfence
31373 + pax_force_retaddr
31374 ret
31375
31376 .section .fixup,"ax"
31377 diff --git a/arch/x86/lib/csum-copy_64.S b/arch/x86/lib/csum-copy_64.S
31378 index 7e48807..cc966ff 100644
31379 --- a/arch/x86/lib/csum-copy_64.S
31380 +++ b/arch/x86/lib/csum-copy_64.S
31381 @@ -8,6 +8,7 @@
31382 #include <linux/linkage.h>
31383 #include <asm/errno.h>
31384 #include <asm/asm.h>
31385 +#include <asm/alternative-asm.h>
31386
31387 /*
31388 * Checksum copy with exception handling.
31389 @@ -52,7 +53,7 @@ ENTRY(csum_partial_copy_generic)
31390 .Lignore:
31391 subq $7*8, %rsp
31392 movq %rbx, 2*8(%rsp)
31393 - movq %r12, 3*8(%rsp)
31394 + movq %r15, 3*8(%rsp)
31395 movq %r14, 4*8(%rsp)
31396 movq %r13, 5*8(%rsp)
31397 movq %rbp, 6*8(%rsp)
31398 @@ -64,16 +65,16 @@ ENTRY(csum_partial_copy_generic)
31399 movl %edx, %ecx
31400
31401 xorl %r9d, %r9d
31402 - movq %rcx, %r12
31403 + movq %rcx, %r15
31404
31405 - shrq $6, %r12
31406 + shrq $6, %r15
31407 jz .Lhandle_tail /* < 64 */
31408
31409 clc
31410
31411 /* main loop. clear in 64 byte blocks */
31412 /* r9: zero, r8: temp2, rbx: temp1, rax: sum, rcx: saved length */
31413 - /* r11: temp3, rdx: temp4, r12 loopcnt */
31414 + /* r11: temp3, rdx: temp4, r15 loopcnt */
31415 /* r10: temp5, rbp: temp6, r14 temp7, r13 temp8 */
31416 .p2align 4
31417 .Lloop:
31418 @@ -107,7 +108,7 @@ ENTRY(csum_partial_copy_generic)
31419 adcq %r14, %rax
31420 adcq %r13, %rax
31421
31422 - decl %r12d
31423 + decl %r15d
31424
31425 dest
31426 movq %rbx, (%rsi)
31427 @@ -200,11 +201,12 @@ ENTRY(csum_partial_copy_generic)
31428
31429 .Lende:
31430 movq 2*8(%rsp), %rbx
31431 - movq 3*8(%rsp), %r12
31432 + movq 3*8(%rsp), %r15
31433 movq 4*8(%rsp), %r14
31434 movq 5*8(%rsp), %r13
31435 movq 6*8(%rsp), %rbp
31436 addq $7*8, %rsp
31437 + pax_force_retaddr
31438 ret
31439
31440 /* Exception handlers. Very simple, zeroing is done in the wrappers */
31441 diff --git a/arch/x86/lib/csum-wrappers_64.c b/arch/x86/lib/csum-wrappers_64.c
31442 index 1318f75..44c30fd 100644
31443 --- a/arch/x86/lib/csum-wrappers_64.c
31444 +++ b/arch/x86/lib/csum-wrappers_64.c
31445 @@ -52,10 +52,12 @@ csum_partial_copy_from_user(const void __user *src, void *dst,
31446 len -= 2;
31447 }
31448 }
31449 + pax_open_userland();
31450 stac();
31451 - isum = csum_partial_copy_generic((__force const void *)src,
31452 + isum = csum_partial_copy_generic((const void __force_kernel *)____m(src),
31453 dst, len, isum, errp, NULL);
31454 clac();
31455 + pax_close_userland();
31456 if (unlikely(*errp))
31457 goto out_err;
31458
31459 @@ -109,10 +111,12 @@ csum_partial_copy_to_user(const void *src, void __user *dst,
31460 }
31461
31462 *errp = 0;
31463 + pax_open_userland();
31464 stac();
31465 - ret = csum_partial_copy_generic(src, (void __force *)dst,
31466 + ret = csum_partial_copy_generic(src, (void __force_kernel *)____m(dst),
31467 len, isum, NULL, errp);
31468 clac();
31469 + pax_close_userland();
31470 return ret;
31471 }
31472 EXPORT_SYMBOL(csum_partial_copy_to_user);
31473 diff --git a/arch/x86/lib/getuser.S b/arch/x86/lib/getuser.S
31474 index 46668cd..a3bdfb9 100644
31475 --- a/arch/x86/lib/getuser.S
31476 +++ b/arch/x86/lib/getuser.S
31477 @@ -32,42 +32,93 @@
31478 #include <asm/thread_info.h>
31479 #include <asm/asm.h>
31480 #include <asm/smap.h>
31481 +#include <asm/segment.h>
31482 +#include <asm/pgtable.h>
31483 +#include <asm/alternative-asm.h>
31484 +
31485 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
31486 +#define __copyuser_seg gs;
31487 +#else
31488 +#define __copyuser_seg
31489 +#endif
31490
31491 .text
31492 ENTRY(__get_user_1)
31493 +
31494 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31495 GET_THREAD_INFO(%_ASM_DX)
31496 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31497 jae bad_get_user
31498 +
31499 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31500 + mov pax_user_shadow_base,%_ASM_DX
31501 + cmp %_ASM_DX,%_ASM_AX
31502 + jae 1234f
31503 + add %_ASM_DX,%_ASM_AX
31504 +1234:
31505 +#endif
31506 +
31507 +#endif
31508 +
31509 ASM_STAC
31510 -1: movzbl (%_ASM_AX),%edx
31511 +1: __copyuser_seg movzbl (%_ASM_AX),%edx
31512 xor %eax,%eax
31513 ASM_CLAC
31514 + pax_force_retaddr
31515 ret
31516 ENDPROC(__get_user_1)
31517
31518 ENTRY(__get_user_2)
31519 add $1,%_ASM_AX
31520 +
31521 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31522 jc bad_get_user
31523 GET_THREAD_INFO(%_ASM_DX)
31524 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31525 jae bad_get_user
31526 +
31527 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31528 + mov pax_user_shadow_base,%_ASM_DX
31529 + cmp %_ASM_DX,%_ASM_AX
31530 + jae 1234f
31531 + add %_ASM_DX,%_ASM_AX
31532 +1234:
31533 +#endif
31534 +
31535 +#endif
31536 +
31537 ASM_STAC
31538 -2: movzwl -1(%_ASM_AX),%edx
31539 +2: __copyuser_seg movzwl -1(%_ASM_AX),%edx
31540 xor %eax,%eax
31541 ASM_CLAC
31542 + pax_force_retaddr
31543 ret
31544 ENDPROC(__get_user_2)
31545
31546 ENTRY(__get_user_4)
31547 add $3,%_ASM_AX
31548 +
31549 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
31550 jc bad_get_user
31551 GET_THREAD_INFO(%_ASM_DX)
31552 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31553 jae bad_get_user
31554 +
31555 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
31556 + mov pax_user_shadow_base,%_ASM_DX
31557 + cmp %_ASM_DX,%_ASM_AX
31558 + jae 1234f
31559 + add %_ASM_DX,%_ASM_AX
31560 +1234:
31561 +#endif
31562 +
31563 +#endif
31564 +
31565 ASM_STAC
31566 -3: movl -3(%_ASM_AX),%edx
31567 +3: __copyuser_seg movl -3(%_ASM_AX),%edx
31568 xor %eax,%eax
31569 ASM_CLAC
31570 + pax_force_retaddr
31571 ret
31572 ENDPROC(__get_user_4)
31573
31574 @@ -78,10 +129,20 @@ ENTRY(__get_user_8)
31575 GET_THREAD_INFO(%_ASM_DX)
31576 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31577 jae bad_get_user
31578 +
31579 +#ifdef CONFIG_PAX_MEMORY_UDEREF
31580 + mov pax_user_shadow_base,%_ASM_DX
31581 + cmp %_ASM_DX,%_ASM_AX
31582 + jae 1234f
31583 + add %_ASM_DX,%_ASM_AX
31584 +1234:
31585 +#endif
31586 +
31587 ASM_STAC
31588 4: movq -7(%_ASM_AX),%rdx
31589 xor %eax,%eax
31590 ASM_CLAC
31591 + pax_force_retaddr
31592 ret
31593 #else
31594 add $7,%_ASM_AX
31595 @@ -90,10 +151,11 @@ ENTRY(__get_user_8)
31596 cmp TI_addr_limit(%_ASM_DX),%_ASM_AX
31597 jae bad_get_user_8
31598 ASM_STAC
31599 -4: movl -7(%_ASM_AX),%edx
31600 -5: movl -3(%_ASM_AX),%ecx
31601 +4: __copyuser_seg movl -7(%_ASM_AX),%edx
31602 +5: __copyuser_seg movl -3(%_ASM_AX),%ecx
31603 xor %eax,%eax
31604 ASM_CLAC
31605 + pax_force_retaddr
31606 ret
31607 #endif
31608 ENDPROC(__get_user_8)
31609 @@ -103,6 +165,7 @@ bad_get_user:
31610 xor %edx,%edx
31611 mov $(-EFAULT),%_ASM_AX
31612 ASM_CLAC
31613 + pax_force_retaddr
31614 ret
31615 END(bad_get_user)
31616
31617 @@ -112,6 +175,7 @@ bad_get_user_8:
31618 xor %ecx,%ecx
31619 mov $(-EFAULT),%_ASM_AX
31620 ASM_CLAC
31621 + pax_force_retaddr
31622 ret
31623 END(bad_get_user_8)
31624 #endif
31625 diff --git a/arch/x86/lib/insn.c b/arch/x86/lib/insn.c
31626 index 8f72b33..4667a46 100644
31627 --- a/arch/x86/lib/insn.c
31628 +++ b/arch/x86/lib/insn.c
31629 @@ -20,8 +20,10 @@
31630
31631 #ifdef __KERNEL__
31632 #include <linux/string.h>
31633 +#include <asm/pgtable_types.h>
31634 #else
31635 #include <string.h>
31636 +#define ktla_ktva(addr) addr
31637 #endif
31638 #include <asm/inat.h>
31639 #include <asm/insn.h>
31640 @@ -60,9 +62,9 @@ void insn_init(struct insn *insn, const void *kaddr, int buf_len, int x86_64)
31641 buf_len = MAX_INSN_SIZE;
31642
31643 memset(insn, 0, sizeof(*insn));
31644 - insn->kaddr = kaddr;
31645 - insn->end_kaddr = kaddr + buf_len;
31646 - insn->next_byte = kaddr;
31647 + insn->kaddr = (void *)ktla_ktva((unsigned long)kaddr);
31648 + insn->end_kaddr = insn->kaddr + buf_len;
31649 + insn->next_byte = insn->kaddr;
31650 insn->x86_64 = x86_64 ? 1 : 0;
31651 insn->opnd_bytes = 4;
31652 if (x86_64)
31653 diff --git a/arch/x86/lib/iomap_copy_64.S b/arch/x86/lib/iomap_copy_64.S
31654 index 33147fe..12a8815 100644
31655 --- a/arch/x86/lib/iomap_copy_64.S
31656 +++ b/arch/x86/lib/iomap_copy_64.S
31657 @@ -16,6 +16,7 @@
31658 */
31659
31660 #include <linux/linkage.h>
31661 +#include <asm/alternative-asm.h>
31662
31663 /*
31664 * override generic version in lib/iomap_copy.c
31665 @@ -23,5 +24,6 @@
31666 ENTRY(__iowrite32_copy)
31667 movl %edx,%ecx
31668 rep movsd
31669 + pax_force_retaddr
31670 ret
31671 ENDPROC(__iowrite32_copy)
31672 diff --git a/arch/x86/lib/memcpy_64.S b/arch/x86/lib/memcpy_64.S
31673 index 16698bb..971d300 100644
31674 --- a/arch/x86/lib/memcpy_64.S
31675 +++ b/arch/x86/lib/memcpy_64.S
31676 @@ -36,6 +36,7 @@ ENTRY(memcpy)
31677 rep movsq
31678 movl %edx, %ecx
31679 rep movsb
31680 + pax_force_retaddr
31681 ret
31682 ENDPROC(memcpy)
31683 ENDPROC(__memcpy)
31684 @@ -48,6 +49,7 @@ ENTRY(memcpy_erms)
31685 movq %rdi, %rax
31686 movq %rdx, %rcx
31687 rep movsb
31688 + pax_force_retaddr
31689 ret
31690 ENDPROC(memcpy_erms)
31691
31692 @@ -132,6 +134,7 @@ ENTRY(memcpy_orig)
31693 movq %r9, 1*8(%rdi)
31694 movq %r10, -2*8(%rdi, %rdx)
31695 movq %r11, -1*8(%rdi, %rdx)
31696 + pax_force_retaddr
31697 retq
31698 .p2align 4
31699 .Lless_16bytes:
31700 @@ -144,6 +147,7 @@ ENTRY(memcpy_orig)
31701 movq -1*8(%rsi, %rdx), %r9
31702 movq %r8, 0*8(%rdi)
31703 movq %r9, -1*8(%rdi, %rdx)
31704 + pax_force_retaddr
31705 retq
31706 .p2align 4
31707 .Lless_8bytes:
31708 @@ -157,6 +161,7 @@ ENTRY(memcpy_orig)
31709 movl -4(%rsi, %rdx), %r8d
31710 movl %ecx, (%rdi)
31711 movl %r8d, -4(%rdi, %rdx)
31712 + pax_force_retaddr
31713 retq
31714 .p2align 4
31715 .Lless_3bytes:
31716 @@ -175,5 +180,6 @@ ENTRY(memcpy_orig)
31717 movb %cl, (%rdi)
31718
31719 .Lend:
31720 + pax_force_retaddr
31721 retq
31722 ENDPROC(memcpy_orig)
31723 diff --git a/arch/x86/lib/memmove_64.S b/arch/x86/lib/memmove_64.S
31724 index ca2afdd..2e474fa 100644
31725 --- a/arch/x86/lib/memmove_64.S
31726 +++ b/arch/x86/lib/memmove_64.S
31727 @@ -41,7 +41,7 @@ ENTRY(__memmove)
31728 jg 2f
31729
31730 .Lmemmove_begin_forward:
31731 - ALTERNATIVE "", "movq %rdx, %rcx; rep movsb; retq", X86_FEATURE_ERMS
31732 + ALTERNATIVE "", "movq %rdx, %rcx; rep movsb; pax_force_retaddr; retq", X86_FEATURE_ERMS
31733
31734 /*
31735 * movsq instruction have many startup latency
31736 @@ -204,6 +204,7 @@ ENTRY(__memmove)
31737 movb (%rsi), %r11b
31738 movb %r11b, (%rdi)
31739 13:
31740 + pax_force_retaddr
31741 retq
31742 ENDPROC(__memmove)
31743 ENDPROC(memmove)
31744 diff --git a/arch/x86/lib/memset_64.S b/arch/x86/lib/memset_64.S
31745 index 2661fad..b584d5c 100644
31746 --- a/arch/x86/lib/memset_64.S
31747 +++ b/arch/x86/lib/memset_64.S
31748 @@ -40,6 +40,7 @@ ENTRY(__memset)
31749 movl %edx,%ecx
31750 rep stosb
31751 movq %r9,%rax
31752 + pax_force_retaddr
31753 ret
31754 ENDPROC(memset)
31755 ENDPROC(__memset)
31756 @@ -61,6 +62,7 @@ ENTRY(memset_erms)
31757 movq %rdx,%rcx
31758 rep stosb
31759 movq %r9,%rax
31760 + pax_force_retaddr
31761 ret
31762 ENDPROC(memset_erms)
31763
31764 @@ -123,6 +125,7 @@ ENTRY(memset_orig)
31765
31766 .Lende:
31767 movq %r10,%rax
31768 + pax_force_retaddr
31769 ret
31770
31771 .Lbad_alignment:
31772 diff --git a/arch/x86/lib/mmx_32.c b/arch/x86/lib/mmx_32.c
31773 index e5e3ed8..d7c08c2 100644
31774 --- a/arch/x86/lib/mmx_32.c
31775 +++ b/arch/x86/lib/mmx_32.c
31776 @@ -29,6 +29,7 @@ void *_mmx_memcpy(void *to, const void *from, size_t len)
31777 {
31778 void *p;
31779 int i;
31780 + unsigned long cr0;
31781
31782 if (unlikely(in_interrupt()))
31783 return __memcpy(to, from, len);
31784 @@ -39,44 +40,72 @@ void *_mmx_memcpy(void *to, const void *from, size_t len)
31785 kernel_fpu_begin();
31786
31787 __asm__ __volatile__ (
31788 - "1: prefetch (%0)\n" /* This set is 28 bytes */
31789 - " prefetch 64(%0)\n"
31790 - " prefetch 128(%0)\n"
31791 - " prefetch 192(%0)\n"
31792 - " prefetch 256(%0)\n"
31793 + "1: prefetch (%1)\n" /* This set is 28 bytes */
31794 + " prefetch 64(%1)\n"
31795 + " prefetch 128(%1)\n"
31796 + " prefetch 192(%1)\n"
31797 + " prefetch 256(%1)\n"
31798 "2: \n"
31799 ".section .fixup, \"ax\"\n"
31800 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31801 + "3: \n"
31802 +
31803 +#ifdef CONFIG_PAX_KERNEXEC
31804 + " movl %%cr0, %0\n"
31805 + " movl %0, %%eax\n"
31806 + " andl $0xFFFEFFFF, %%eax\n"
31807 + " movl %%eax, %%cr0\n"
31808 +#endif
31809 +
31810 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31811 +
31812 +#ifdef CONFIG_PAX_KERNEXEC
31813 + " movl %0, %%cr0\n"
31814 +#endif
31815 +
31816 " jmp 2b\n"
31817 ".previous\n"
31818 _ASM_EXTABLE(1b, 3b)
31819 - : : "r" (from));
31820 + : "=&r" (cr0) : "r" (from) : "ax");
31821
31822 for ( ; i > 5; i--) {
31823 __asm__ __volatile__ (
31824 - "1: prefetch 320(%0)\n"
31825 - "2: movq (%0), %%mm0\n"
31826 - " movq 8(%0), %%mm1\n"
31827 - " movq 16(%0), %%mm2\n"
31828 - " movq 24(%0), %%mm3\n"
31829 - " movq %%mm0, (%1)\n"
31830 - " movq %%mm1, 8(%1)\n"
31831 - " movq %%mm2, 16(%1)\n"
31832 - " movq %%mm3, 24(%1)\n"
31833 - " movq 32(%0), %%mm0\n"
31834 - " movq 40(%0), %%mm1\n"
31835 - " movq 48(%0), %%mm2\n"
31836 - " movq 56(%0), %%mm3\n"
31837 - " movq %%mm0, 32(%1)\n"
31838 - " movq %%mm1, 40(%1)\n"
31839 - " movq %%mm2, 48(%1)\n"
31840 - " movq %%mm3, 56(%1)\n"
31841 + "1: prefetch 320(%1)\n"
31842 + "2: movq (%1), %%mm0\n"
31843 + " movq 8(%1), %%mm1\n"
31844 + " movq 16(%1), %%mm2\n"
31845 + " movq 24(%1), %%mm3\n"
31846 + " movq %%mm0, (%2)\n"
31847 + " movq %%mm1, 8(%2)\n"
31848 + " movq %%mm2, 16(%2)\n"
31849 + " movq %%mm3, 24(%2)\n"
31850 + " movq 32(%1), %%mm0\n"
31851 + " movq 40(%1), %%mm1\n"
31852 + " movq 48(%1), %%mm2\n"
31853 + " movq 56(%1), %%mm3\n"
31854 + " movq %%mm0, 32(%2)\n"
31855 + " movq %%mm1, 40(%2)\n"
31856 + " movq %%mm2, 48(%2)\n"
31857 + " movq %%mm3, 56(%2)\n"
31858 ".section .fixup, \"ax\"\n"
31859 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31860 + "3:\n"
31861 +
31862 +#ifdef CONFIG_PAX_KERNEXEC
31863 + " movl %%cr0, %0\n"
31864 + " movl %0, %%eax\n"
31865 + " andl $0xFFFEFFFF, %%eax\n"
31866 + " movl %%eax, %%cr0\n"
31867 +#endif
31868 +
31869 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31870 +
31871 +#ifdef CONFIG_PAX_KERNEXEC
31872 + " movl %0, %%cr0\n"
31873 +#endif
31874 +
31875 " jmp 2b\n"
31876 ".previous\n"
31877 _ASM_EXTABLE(1b, 3b)
31878 - : : "r" (from), "r" (to) : "memory");
31879 + : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
31880
31881 from += 64;
31882 to += 64;
31883 @@ -158,6 +187,7 @@ static void fast_clear_page(void *page)
31884 static void fast_copy_page(void *to, void *from)
31885 {
31886 int i;
31887 + unsigned long cr0;
31888
31889 kernel_fpu_begin();
31890
31891 @@ -166,42 +196,70 @@ static void fast_copy_page(void *to, void *from)
31892 * but that is for later. -AV
31893 */
31894 __asm__ __volatile__(
31895 - "1: prefetch (%0)\n"
31896 - " prefetch 64(%0)\n"
31897 - " prefetch 128(%0)\n"
31898 - " prefetch 192(%0)\n"
31899 - " prefetch 256(%0)\n"
31900 + "1: prefetch (%1)\n"
31901 + " prefetch 64(%1)\n"
31902 + " prefetch 128(%1)\n"
31903 + " prefetch 192(%1)\n"
31904 + " prefetch 256(%1)\n"
31905 "2: \n"
31906 ".section .fixup, \"ax\"\n"
31907 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31908 + "3: \n"
31909 +
31910 +#ifdef CONFIG_PAX_KERNEXEC
31911 + " movl %%cr0, %0\n"
31912 + " movl %0, %%eax\n"
31913 + " andl $0xFFFEFFFF, %%eax\n"
31914 + " movl %%eax, %%cr0\n"
31915 +#endif
31916 +
31917 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
31918 +
31919 +#ifdef CONFIG_PAX_KERNEXEC
31920 + " movl %0, %%cr0\n"
31921 +#endif
31922 +
31923 " jmp 2b\n"
31924 ".previous\n"
31925 - _ASM_EXTABLE(1b, 3b) : : "r" (from));
31926 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from) : "ax");
31927
31928 for (i = 0; i < (4096-320)/64; i++) {
31929 __asm__ __volatile__ (
31930 - "1: prefetch 320(%0)\n"
31931 - "2: movq (%0), %%mm0\n"
31932 - " movntq %%mm0, (%1)\n"
31933 - " movq 8(%0), %%mm1\n"
31934 - " movntq %%mm1, 8(%1)\n"
31935 - " movq 16(%0), %%mm2\n"
31936 - " movntq %%mm2, 16(%1)\n"
31937 - " movq 24(%0), %%mm3\n"
31938 - " movntq %%mm3, 24(%1)\n"
31939 - " movq 32(%0), %%mm4\n"
31940 - " movntq %%mm4, 32(%1)\n"
31941 - " movq 40(%0), %%mm5\n"
31942 - " movntq %%mm5, 40(%1)\n"
31943 - " movq 48(%0), %%mm6\n"
31944 - " movntq %%mm6, 48(%1)\n"
31945 - " movq 56(%0), %%mm7\n"
31946 - " movntq %%mm7, 56(%1)\n"
31947 + "1: prefetch 320(%1)\n"
31948 + "2: movq (%1), %%mm0\n"
31949 + " movntq %%mm0, (%2)\n"
31950 + " movq 8(%1), %%mm1\n"
31951 + " movntq %%mm1, 8(%2)\n"
31952 + " movq 16(%1), %%mm2\n"
31953 + " movntq %%mm2, 16(%2)\n"
31954 + " movq 24(%1), %%mm3\n"
31955 + " movntq %%mm3, 24(%2)\n"
31956 + " movq 32(%1), %%mm4\n"
31957 + " movntq %%mm4, 32(%2)\n"
31958 + " movq 40(%1), %%mm5\n"
31959 + " movntq %%mm5, 40(%2)\n"
31960 + " movq 48(%1), %%mm6\n"
31961 + " movntq %%mm6, 48(%2)\n"
31962 + " movq 56(%1), %%mm7\n"
31963 + " movntq %%mm7, 56(%2)\n"
31964 ".section .fixup, \"ax\"\n"
31965 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31966 + "3:\n"
31967 +
31968 +#ifdef CONFIG_PAX_KERNEXEC
31969 + " movl %%cr0, %0\n"
31970 + " movl %0, %%eax\n"
31971 + " andl $0xFFFEFFFF, %%eax\n"
31972 + " movl %%eax, %%cr0\n"
31973 +#endif
31974 +
31975 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
31976 +
31977 +#ifdef CONFIG_PAX_KERNEXEC
31978 + " movl %0, %%cr0\n"
31979 +#endif
31980 +
31981 " jmp 2b\n"
31982 ".previous\n"
31983 - _ASM_EXTABLE(1b, 3b) : : "r" (from), "r" (to) : "memory");
31984 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
31985
31986 from += 64;
31987 to += 64;
31988 @@ -280,47 +338,76 @@ static void fast_clear_page(void *page)
31989 static void fast_copy_page(void *to, void *from)
31990 {
31991 int i;
31992 + unsigned long cr0;
31993
31994 kernel_fpu_begin();
31995
31996 __asm__ __volatile__ (
31997 - "1: prefetch (%0)\n"
31998 - " prefetch 64(%0)\n"
31999 - " prefetch 128(%0)\n"
32000 - " prefetch 192(%0)\n"
32001 - " prefetch 256(%0)\n"
32002 + "1: prefetch (%1)\n"
32003 + " prefetch 64(%1)\n"
32004 + " prefetch 128(%1)\n"
32005 + " prefetch 192(%1)\n"
32006 + " prefetch 256(%1)\n"
32007 "2: \n"
32008 ".section .fixup, \"ax\"\n"
32009 - "3: movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
32010 + "3: \n"
32011 +
32012 +#ifdef CONFIG_PAX_KERNEXEC
32013 + " movl %%cr0, %0\n"
32014 + " movl %0, %%eax\n"
32015 + " andl $0xFFFEFFFF, %%eax\n"
32016 + " movl %%eax, %%cr0\n"
32017 +#endif
32018 +
32019 + " movw $0x1AEB, 1b\n" /* jmp on 26 bytes */
32020 +
32021 +#ifdef CONFIG_PAX_KERNEXEC
32022 + " movl %0, %%cr0\n"
32023 +#endif
32024 +
32025 " jmp 2b\n"
32026 ".previous\n"
32027 - _ASM_EXTABLE(1b, 3b) : : "r" (from));
32028 + _ASM_EXTABLE(1b, 3b) : "=&r" (cr0) : "r" (from) : "ax");
32029
32030 for (i = 0; i < 4096/64; i++) {
32031 __asm__ __volatile__ (
32032 - "1: prefetch 320(%0)\n"
32033 - "2: movq (%0), %%mm0\n"
32034 - " movq 8(%0), %%mm1\n"
32035 - " movq 16(%0), %%mm2\n"
32036 - " movq 24(%0), %%mm3\n"
32037 - " movq %%mm0, (%1)\n"
32038 - " movq %%mm1, 8(%1)\n"
32039 - " movq %%mm2, 16(%1)\n"
32040 - " movq %%mm3, 24(%1)\n"
32041 - " movq 32(%0), %%mm0\n"
32042 - " movq 40(%0), %%mm1\n"
32043 - " movq 48(%0), %%mm2\n"
32044 - " movq 56(%0), %%mm3\n"
32045 - " movq %%mm0, 32(%1)\n"
32046 - " movq %%mm1, 40(%1)\n"
32047 - " movq %%mm2, 48(%1)\n"
32048 - " movq %%mm3, 56(%1)\n"
32049 + "1: prefetch 320(%1)\n"
32050 + "2: movq (%1), %%mm0\n"
32051 + " movq 8(%1), %%mm1\n"
32052 + " movq 16(%1), %%mm2\n"
32053 + " movq 24(%1), %%mm3\n"
32054 + " movq %%mm0, (%2)\n"
32055 + " movq %%mm1, 8(%2)\n"
32056 + " movq %%mm2, 16(%2)\n"
32057 + " movq %%mm3, 24(%2)\n"
32058 + " movq 32(%1), %%mm0\n"
32059 + " movq 40(%1), %%mm1\n"
32060 + " movq 48(%1), %%mm2\n"
32061 + " movq 56(%1), %%mm3\n"
32062 + " movq %%mm0, 32(%2)\n"
32063 + " movq %%mm1, 40(%2)\n"
32064 + " movq %%mm2, 48(%2)\n"
32065 + " movq %%mm3, 56(%2)\n"
32066 ".section .fixup, \"ax\"\n"
32067 - "3: movw $0x05EB, 1b\n" /* jmp on 5 bytes */
32068 + "3:\n"
32069 +
32070 +#ifdef CONFIG_PAX_KERNEXEC
32071 + " movl %%cr0, %0\n"
32072 + " movl %0, %%eax\n"
32073 + " andl $0xFFFEFFFF, %%eax\n"
32074 + " movl %%eax, %%cr0\n"
32075 +#endif
32076 +
32077 + " movw $0x05EB, 1b\n" /* jmp on 5 bytes */
32078 +
32079 +#ifdef CONFIG_PAX_KERNEXEC
32080 + " movl %0, %%cr0\n"
32081 +#endif
32082 +
32083 " jmp 2b\n"
32084 ".previous\n"
32085 _ASM_EXTABLE(1b, 3b)
32086 - : : "r" (from), "r" (to) : "memory");
32087 + : "=&r" (cr0) : "r" (from), "r" (to) : "memory", "ax");
32088
32089 from += 64;
32090 to += 64;
32091 diff --git a/arch/x86/lib/msr-reg.S b/arch/x86/lib/msr-reg.S
32092 index c815564..303dcfa 100644
32093 --- a/arch/x86/lib/msr-reg.S
32094 +++ b/arch/x86/lib/msr-reg.S
32095 @@ -2,6 +2,7 @@
32096 #include <linux/errno.h>
32097 #include <asm/asm.h>
32098 #include <asm/msr.h>
32099 +#include <asm/alternative-asm.h>
32100
32101 #ifdef CONFIG_X86_64
32102 /*
32103 @@ -34,6 +35,7 @@ ENTRY(\op\()_safe_regs)
32104 movl %edi, 28(%r10)
32105 popq %rbp
32106 popq %rbx
32107 + pax_force_retaddr
32108 ret
32109 3:
32110 movl $-EIO, %r11d
32111 diff --git a/arch/x86/lib/putuser.S b/arch/x86/lib/putuser.S
32112 index e0817a1..bc9cf66 100644
32113 --- a/arch/x86/lib/putuser.S
32114 +++ b/arch/x86/lib/putuser.S
32115 @@ -15,7 +15,9 @@
32116 #include <asm/errno.h>
32117 #include <asm/asm.h>
32118 #include <asm/smap.h>
32119 -
32120 +#include <asm/segment.h>
32121 +#include <asm/pgtable.h>
32122 +#include <asm/alternative-asm.h>
32123
32124 /*
32125 * __put_user_X
32126 @@ -29,55 +31,124 @@
32127 * as they get called from within inline assembly.
32128 */
32129
32130 -#define ENTER GET_THREAD_INFO(%_ASM_BX)
32131 -#define EXIT ASM_CLAC ; \
32132 +#define ENTER
32133 +#define EXIT ASM_CLAC ; \
32134 + pax_force_retaddr ; \
32135 ret
32136
32137 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32138 +#define _DEST %_ASM_CX,%_ASM_BX
32139 +#else
32140 +#define _DEST %_ASM_CX
32141 +#endif
32142 +
32143 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_MEMORY_UDEREF)
32144 +#define __copyuser_seg gs;
32145 +#else
32146 +#define __copyuser_seg
32147 +#endif
32148 +
32149 .text
32150 ENTRY(__put_user_1)
32151 ENTER
32152 +
32153 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32154 + GET_THREAD_INFO(%_ASM_BX)
32155 cmp TI_addr_limit(%_ASM_BX),%_ASM_CX
32156 jae bad_put_user
32157 +
32158 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32159 + mov pax_user_shadow_base,%_ASM_BX
32160 + cmp %_ASM_BX,%_ASM_CX
32161 + jb 1234f
32162 + xor %ebx,%ebx
32163 +1234:
32164 +#endif
32165 +
32166 +#endif
32167 +
32168 ASM_STAC
32169 -1: movb %al,(%_ASM_CX)
32170 +1: __copyuser_seg movb %al,(_DEST)
32171 xor %eax,%eax
32172 EXIT
32173 ENDPROC(__put_user_1)
32174
32175 ENTRY(__put_user_2)
32176 ENTER
32177 +
32178 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32179 + GET_THREAD_INFO(%_ASM_BX)
32180 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
32181 sub $1,%_ASM_BX
32182 cmp %_ASM_BX,%_ASM_CX
32183 jae bad_put_user
32184 +
32185 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32186 + mov pax_user_shadow_base,%_ASM_BX
32187 + cmp %_ASM_BX,%_ASM_CX
32188 + jb 1234f
32189 + xor %ebx,%ebx
32190 +1234:
32191 +#endif
32192 +
32193 +#endif
32194 +
32195 ASM_STAC
32196 -2: movw %ax,(%_ASM_CX)
32197 +2: __copyuser_seg movw %ax,(_DEST)
32198 xor %eax,%eax
32199 EXIT
32200 ENDPROC(__put_user_2)
32201
32202 ENTRY(__put_user_4)
32203 ENTER
32204 +
32205 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32206 + GET_THREAD_INFO(%_ASM_BX)
32207 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
32208 sub $3,%_ASM_BX
32209 cmp %_ASM_BX,%_ASM_CX
32210 jae bad_put_user
32211 +
32212 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32213 + mov pax_user_shadow_base,%_ASM_BX
32214 + cmp %_ASM_BX,%_ASM_CX
32215 + jb 1234f
32216 + xor %ebx,%ebx
32217 +1234:
32218 +#endif
32219 +
32220 +#endif
32221 +
32222 ASM_STAC
32223 -3: movl %eax,(%_ASM_CX)
32224 +3: __copyuser_seg movl %eax,(_DEST)
32225 xor %eax,%eax
32226 EXIT
32227 ENDPROC(__put_user_4)
32228
32229 ENTRY(__put_user_8)
32230 ENTER
32231 +
32232 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_MEMORY_UDEREF)
32233 + GET_THREAD_INFO(%_ASM_BX)
32234 mov TI_addr_limit(%_ASM_BX),%_ASM_BX
32235 sub $7,%_ASM_BX
32236 cmp %_ASM_BX,%_ASM_CX
32237 jae bad_put_user
32238 +
32239 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
32240 + mov pax_user_shadow_base,%_ASM_BX
32241 + cmp %_ASM_BX,%_ASM_CX
32242 + jb 1234f
32243 + xor %ebx,%ebx
32244 +1234:
32245 +#endif
32246 +
32247 +#endif
32248 +
32249 ASM_STAC
32250 -4: mov %_ASM_AX,(%_ASM_CX)
32251 +4: __copyuser_seg mov %_ASM_AX,(_DEST)
32252 #ifdef CONFIG_X86_32
32253 -5: movl %edx,4(%_ASM_CX)
32254 +5: __copyuser_seg movl %edx,4(_DEST)
32255 #endif
32256 xor %eax,%eax
32257 EXIT
32258 diff --git a/arch/x86/lib/rwsem.S b/arch/x86/lib/rwsem.S
32259 index 40027db..37bb69d 100644
32260 --- a/arch/x86/lib/rwsem.S
32261 +++ b/arch/x86/lib/rwsem.S
32262 @@ -90,6 +90,7 @@ ENTRY(call_rwsem_down_read_failed)
32263 call rwsem_down_read_failed
32264 __ASM_SIZE(pop,) %__ASM_REG(dx)
32265 restore_common_regs
32266 + pax_force_retaddr
32267 ret
32268 ENDPROC(call_rwsem_down_read_failed)
32269
32270 @@ -98,6 +99,7 @@ ENTRY(call_rwsem_down_write_failed)
32271 movq %rax,%rdi
32272 call rwsem_down_write_failed
32273 restore_common_regs
32274 + pax_force_retaddr
32275 ret
32276 ENDPROC(call_rwsem_down_write_failed)
32277
32278 @@ -109,7 +111,8 @@ ENTRY(call_rwsem_wake)
32279 movq %rax,%rdi
32280 call rwsem_wake
32281 restore_common_regs
32282 -1: ret
32283 +1: pax_force_retaddr
32284 + ret
32285 ENDPROC(call_rwsem_wake)
32286
32287 ENTRY(call_rwsem_downgrade_wake)
32288 @@ -119,5 +122,6 @@ ENTRY(call_rwsem_downgrade_wake)
32289 call rwsem_downgrade_wake
32290 __ASM_SIZE(pop,) %__ASM_REG(dx)
32291 restore_common_regs
32292 + pax_force_retaddr
32293 ret
32294 ENDPROC(call_rwsem_downgrade_wake)
32295 diff --git a/arch/x86/lib/usercopy_32.c b/arch/x86/lib/usercopy_32.c
32296 index 91d93b9..4b22130 100644
32297 --- a/arch/x86/lib/usercopy_32.c
32298 +++ b/arch/x86/lib/usercopy_32.c
32299 @@ -42,11 +42,13 @@ do { \
32300 int __d0; \
32301 might_fault(); \
32302 __asm__ __volatile__( \
32303 + __COPYUSER_SET_ES \
32304 ASM_STAC "\n" \
32305 "0: rep; stosl\n" \
32306 " movl %2,%0\n" \
32307 "1: rep; stosb\n" \
32308 "2: " ASM_CLAC "\n" \
32309 + __COPYUSER_RESTORE_ES \
32310 ".section .fixup,\"ax\"\n" \
32311 "3: lea 0(%2,%0,4),%0\n" \
32312 " jmp 2b\n" \
32313 @@ -98,7 +100,7 @@ EXPORT_SYMBOL(__clear_user);
32314
32315 #ifdef CONFIG_X86_INTEL_USERCOPY
32316 static unsigned long
32317 -__copy_user_intel(void __user *to, const void *from, unsigned long size)
32318 +__generic_copy_to_user_intel(void __user *to, const void *from, unsigned long size)
32319 {
32320 int d0, d1;
32321 __asm__ __volatile__(
32322 @@ -110,36 +112,36 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
32323 " .align 2,0x90\n"
32324 "3: movl 0(%4), %%eax\n"
32325 "4: movl 4(%4), %%edx\n"
32326 - "5: movl %%eax, 0(%3)\n"
32327 - "6: movl %%edx, 4(%3)\n"
32328 + "5: "__copyuser_seg" movl %%eax, 0(%3)\n"
32329 + "6: "__copyuser_seg" movl %%edx, 4(%3)\n"
32330 "7: movl 8(%4), %%eax\n"
32331 "8: movl 12(%4),%%edx\n"
32332 - "9: movl %%eax, 8(%3)\n"
32333 - "10: movl %%edx, 12(%3)\n"
32334 + "9: "__copyuser_seg" movl %%eax, 8(%3)\n"
32335 + "10: "__copyuser_seg" movl %%edx, 12(%3)\n"
32336 "11: movl 16(%4), %%eax\n"
32337 "12: movl 20(%4), %%edx\n"
32338 - "13: movl %%eax, 16(%3)\n"
32339 - "14: movl %%edx, 20(%3)\n"
32340 + "13: "__copyuser_seg" movl %%eax, 16(%3)\n"
32341 + "14: "__copyuser_seg" movl %%edx, 20(%3)\n"
32342 "15: movl 24(%4), %%eax\n"
32343 "16: movl 28(%4), %%edx\n"
32344 - "17: movl %%eax, 24(%3)\n"
32345 - "18: movl %%edx, 28(%3)\n"
32346 + "17: "__copyuser_seg" movl %%eax, 24(%3)\n"
32347 + "18: "__copyuser_seg" movl %%edx, 28(%3)\n"
32348 "19: movl 32(%4), %%eax\n"
32349 "20: movl 36(%4), %%edx\n"
32350 - "21: movl %%eax, 32(%3)\n"
32351 - "22: movl %%edx, 36(%3)\n"
32352 + "21: "__copyuser_seg" movl %%eax, 32(%3)\n"
32353 + "22: "__copyuser_seg" movl %%edx, 36(%3)\n"
32354 "23: movl 40(%4), %%eax\n"
32355 "24: movl 44(%4), %%edx\n"
32356 - "25: movl %%eax, 40(%3)\n"
32357 - "26: movl %%edx, 44(%3)\n"
32358 + "25: "__copyuser_seg" movl %%eax, 40(%3)\n"
32359 + "26: "__copyuser_seg" movl %%edx, 44(%3)\n"
32360 "27: movl 48(%4), %%eax\n"
32361 "28: movl 52(%4), %%edx\n"
32362 - "29: movl %%eax, 48(%3)\n"
32363 - "30: movl %%edx, 52(%3)\n"
32364 + "29: "__copyuser_seg" movl %%eax, 48(%3)\n"
32365 + "30: "__copyuser_seg" movl %%edx, 52(%3)\n"
32366 "31: movl 56(%4), %%eax\n"
32367 "32: movl 60(%4), %%edx\n"
32368 - "33: movl %%eax, 56(%3)\n"
32369 - "34: movl %%edx, 60(%3)\n"
32370 + "33: "__copyuser_seg" movl %%eax, 56(%3)\n"
32371 + "34: "__copyuser_seg" movl %%edx, 60(%3)\n"
32372 " addl $-64, %0\n"
32373 " addl $64, %4\n"
32374 " addl $64, %3\n"
32375 @@ -149,10 +151,116 @@ __copy_user_intel(void __user *to, const void *from, unsigned long size)
32376 " shrl $2, %0\n"
32377 " andl $3, %%eax\n"
32378 " cld\n"
32379 + __COPYUSER_SET_ES
32380 "99: rep; movsl\n"
32381 "36: movl %%eax, %0\n"
32382 "37: rep; movsb\n"
32383 "100:\n"
32384 + __COPYUSER_RESTORE_ES
32385 + ".section .fixup,\"ax\"\n"
32386 + "101: lea 0(%%eax,%0,4),%0\n"
32387 + " jmp 100b\n"
32388 + ".previous\n"
32389 + _ASM_EXTABLE(1b,100b)
32390 + _ASM_EXTABLE(2b,100b)
32391 + _ASM_EXTABLE(3b,100b)
32392 + _ASM_EXTABLE(4b,100b)
32393 + _ASM_EXTABLE(5b,100b)
32394 + _ASM_EXTABLE(6b,100b)
32395 + _ASM_EXTABLE(7b,100b)
32396 + _ASM_EXTABLE(8b,100b)
32397 + _ASM_EXTABLE(9b,100b)
32398 + _ASM_EXTABLE(10b,100b)
32399 + _ASM_EXTABLE(11b,100b)
32400 + _ASM_EXTABLE(12b,100b)
32401 + _ASM_EXTABLE(13b,100b)
32402 + _ASM_EXTABLE(14b,100b)
32403 + _ASM_EXTABLE(15b,100b)
32404 + _ASM_EXTABLE(16b,100b)
32405 + _ASM_EXTABLE(17b,100b)
32406 + _ASM_EXTABLE(18b,100b)
32407 + _ASM_EXTABLE(19b,100b)
32408 + _ASM_EXTABLE(20b,100b)
32409 + _ASM_EXTABLE(21b,100b)
32410 + _ASM_EXTABLE(22b,100b)
32411 + _ASM_EXTABLE(23b,100b)
32412 + _ASM_EXTABLE(24b,100b)
32413 + _ASM_EXTABLE(25b,100b)
32414 + _ASM_EXTABLE(26b,100b)
32415 + _ASM_EXTABLE(27b,100b)
32416 + _ASM_EXTABLE(28b,100b)
32417 + _ASM_EXTABLE(29b,100b)
32418 + _ASM_EXTABLE(30b,100b)
32419 + _ASM_EXTABLE(31b,100b)
32420 + _ASM_EXTABLE(32b,100b)
32421 + _ASM_EXTABLE(33b,100b)
32422 + _ASM_EXTABLE(34b,100b)
32423 + _ASM_EXTABLE(35b,100b)
32424 + _ASM_EXTABLE(36b,100b)
32425 + _ASM_EXTABLE(37b,100b)
32426 + _ASM_EXTABLE(99b,101b)
32427 + : "=&c"(size), "=&D" (d0), "=&S" (d1)
32428 + : "1"(to), "2"(from), "0"(size)
32429 + : "eax", "edx", "memory");
32430 + return size;
32431 +}
32432 +
32433 +static unsigned long
32434 +__generic_copy_from_user_intel(void *to, const void __user *from, unsigned long size)
32435 +{
32436 + int d0, d1;
32437 + __asm__ __volatile__(
32438 + " .align 2,0x90\n"
32439 + "1: "__copyuser_seg" movl 32(%4), %%eax\n"
32440 + " cmpl $67, %0\n"
32441 + " jbe 3f\n"
32442 + "2: "__copyuser_seg" movl 64(%4), %%eax\n"
32443 + " .align 2,0x90\n"
32444 + "3: "__copyuser_seg" movl 0(%4), %%eax\n"
32445 + "4: "__copyuser_seg" movl 4(%4), %%edx\n"
32446 + "5: movl %%eax, 0(%3)\n"
32447 + "6: movl %%edx, 4(%3)\n"
32448 + "7: "__copyuser_seg" movl 8(%4), %%eax\n"
32449 + "8: "__copyuser_seg" movl 12(%4),%%edx\n"
32450 + "9: movl %%eax, 8(%3)\n"
32451 + "10: movl %%edx, 12(%3)\n"
32452 + "11: "__copyuser_seg" movl 16(%4), %%eax\n"
32453 + "12: "__copyuser_seg" movl 20(%4), %%edx\n"
32454 + "13: movl %%eax, 16(%3)\n"
32455 + "14: movl %%edx, 20(%3)\n"
32456 + "15: "__copyuser_seg" movl 24(%4), %%eax\n"
32457 + "16: "__copyuser_seg" movl 28(%4), %%edx\n"
32458 + "17: movl %%eax, 24(%3)\n"
32459 + "18: movl %%edx, 28(%3)\n"
32460 + "19: "__copyuser_seg" movl 32(%4), %%eax\n"
32461 + "20: "__copyuser_seg" movl 36(%4), %%edx\n"
32462 + "21: movl %%eax, 32(%3)\n"
32463 + "22: movl %%edx, 36(%3)\n"
32464 + "23: "__copyuser_seg" movl 40(%4), %%eax\n"
32465 + "24: "__copyuser_seg" movl 44(%4), %%edx\n"
32466 + "25: movl %%eax, 40(%3)\n"
32467 + "26: movl %%edx, 44(%3)\n"
32468 + "27: "__copyuser_seg" movl 48(%4), %%eax\n"
32469 + "28: "__copyuser_seg" movl 52(%4), %%edx\n"
32470 + "29: movl %%eax, 48(%3)\n"
32471 + "30: movl %%edx, 52(%3)\n"
32472 + "31: "__copyuser_seg" movl 56(%4), %%eax\n"
32473 + "32: "__copyuser_seg" movl 60(%4), %%edx\n"
32474 + "33: movl %%eax, 56(%3)\n"
32475 + "34: movl %%edx, 60(%3)\n"
32476 + " addl $-64, %0\n"
32477 + " addl $64, %4\n"
32478 + " addl $64, %3\n"
32479 + " cmpl $63, %0\n"
32480 + " ja 1b\n"
32481 + "35: movl %0, %%eax\n"
32482 + " shrl $2, %0\n"
32483 + " andl $3, %%eax\n"
32484 + " cld\n"
32485 + "99: rep; "__copyuser_seg" movsl\n"
32486 + "36: movl %%eax, %0\n"
32487 + "37: rep; "__copyuser_seg" movsb\n"
32488 + "100:\n"
32489 ".section .fixup,\"ax\"\n"
32490 "101: lea 0(%%eax,%0,4),%0\n"
32491 " jmp 100b\n"
32492 @@ -207,41 +315,41 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
32493 int d0, d1;
32494 __asm__ __volatile__(
32495 " .align 2,0x90\n"
32496 - "0: movl 32(%4), %%eax\n"
32497 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32498 " cmpl $67, %0\n"
32499 " jbe 2f\n"
32500 - "1: movl 64(%4), %%eax\n"
32501 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32502 " .align 2,0x90\n"
32503 - "2: movl 0(%4), %%eax\n"
32504 - "21: movl 4(%4), %%edx\n"
32505 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32506 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32507 " movl %%eax, 0(%3)\n"
32508 " movl %%edx, 4(%3)\n"
32509 - "3: movl 8(%4), %%eax\n"
32510 - "31: movl 12(%4),%%edx\n"
32511 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32512 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32513 " movl %%eax, 8(%3)\n"
32514 " movl %%edx, 12(%3)\n"
32515 - "4: movl 16(%4), %%eax\n"
32516 - "41: movl 20(%4), %%edx\n"
32517 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32518 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32519 " movl %%eax, 16(%3)\n"
32520 " movl %%edx, 20(%3)\n"
32521 - "10: movl 24(%4), %%eax\n"
32522 - "51: movl 28(%4), %%edx\n"
32523 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32524 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32525 " movl %%eax, 24(%3)\n"
32526 " movl %%edx, 28(%3)\n"
32527 - "11: movl 32(%4), %%eax\n"
32528 - "61: movl 36(%4), %%edx\n"
32529 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32530 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32531 " movl %%eax, 32(%3)\n"
32532 " movl %%edx, 36(%3)\n"
32533 - "12: movl 40(%4), %%eax\n"
32534 - "71: movl 44(%4), %%edx\n"
32535 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32536 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32537 " movl %%eax, 40(%3)\n"
32538 " movl %%edx, 44(%3)\n"
32539 - "13: movl 48(%4), %%eax\n"
32540 - "81: movl 52(%4), %%edx\n"
32541 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32542 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32543 " movl %%eax, 48(%3)\n"
32544 " movl %%edx, 52(%3)\n"
32545 - "14: movl 56(%4), %%eax\n"
32546 - "91: movl 60(%4), %%edx\n"
32547 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32548 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32549 " movl %%eax, 56(%3)\n"
32550 " movl %%edx, 60(%3)\n"
32551 " addl $-64, %0\n"
32552 @@ -253,9 +361,9 @@ __copy_user_zeroing_intel(void *to, const void __user *from, unsigned long size)
32553 " shrl $2, %0\n"
32554 " andl $3, %%eax\n"
32555 " cld\n"
32556 - "6: rep; movsl\n"
32557 + "6: rep; "__copyuser_seg" movsl\n"
32558 " movl %%eax,%0\n"
32559 - "7: rep; movsb\n"
32560 + "7: rep; "__copyuser_seg" movsb\n"
32561 "8:\n"
32562 ".section .fixup,\"ax\"\n"
32563 "9: lea 0(%%eax,%0,4),%0\n"
32564 @@ -305,41 +413,41 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
32565
32566 __asm__ __volatile__(
32567 " .align 2,0x90\n"
32568 - "0: movl 32(%4), %%eax\n"
32569 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32570 " cmpl $67, %0\n"
32571 " jbe 2f\n"
32572 - "1: movl 64(%4), %%eax\n"
32573 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32574 " .align 2,0x90\n"
32575 - "2: movl 0(%4), %%eax\n"
32576 - "21: movl 4(%4), %%edx\n"
32577 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32578 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32579 " movnti %%eax, 0(%3)\n"
32580 " movnti %%edx, 4(%3)\n"
32581 - "3: movl 8(%4), %%eax\n"
32582 - "31: movl 12(%4),%%edx\n"
32583 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32584 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32585 " movnti %%eax, 8(%3)\n"
32586 " movnti %%edx, 12(%3)\n"
32587 - "4: movl 16(%4), %%eax\n"
32588 - "41: movl 20(%4), %%edx\n"
32589 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32590 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32591 " movnti %%eax, 16(%3)\n"
32592 " movnti %%edx, 20(%3)\n"
32593 - "10: movl 24(%4), %%eax\n"
32594 - "51: movl 28(%4), %%edx\n"
32595 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32596 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32597 " movnti %%eax, 24(%3)\n"
32598 " movnti %%edx, 28(%3)\n"
32599 - "11: movl 32(%4), %%eax\n"
32600 - "61: movl 36(%4), %%edx\n"
32601 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32602 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32603 " movnti %%eax, 32(%3)\n"
32604 " movnti %%edx, 36(%3)\n"
32605 - "12: movl 40(%4), %%eax\n"
32606 - "71: movl 44(%4), %%edx\n"
32607 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32608 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32609 " movnti %%eax, 40(%3)\n"
32610 " movnti %%edx, 44(%3)\n"
32611 - "13: movl 48(%4), %%eax\n"
32612 - "81: movl 52(%4), %%edx\n"
32613 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32614 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32615 " movnti %%eax, 48(%3)\n"
32616 " movnti %%edx, 52(%3)\n"
32617 - "14: movl 56(%4), %%eax\n"
32618 - "91: movl 60(%4), %%edx\n"
32619 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32620 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32621 " movnti %%eax, 56(%3)\n"
32622 " movnti %%edx, 60(%3)\n"
32623 " addl $-64, %0\n"
32624 @@ -352,9 +460,9 @@ static unsigned long __copy_user_zeroing_intel_nocache(void *to,
32625 " shrl $2, %0\n"
32626 " andl $3, %%eax\n"
32627 " cld\n"
32628 - "6: rep; movsl\n"
32629 + "6: rep; "__copyuser_seg" movsl\n"
32630 " movl %%eax,%0\n"
32631 - "7: rep; movsb\n"
32632 + "7: rep; "__copyuser_seg" movsb\n"
32633 "8:\n"
32634 ".section .fixup,\"ax\"\n"
32635 "9: lea 0(%%eax,%0,4),%0\n"
32636 @@ -399,41 +507,41 @@ static unsigned long __copy_user_intel_nocache(void *to,
32637
32638 __asm__ __volatile__(
32639 " .align 2,0x90\n"
32640 - "0: movl 32(%4), %%eax\n"
32641 + "0: "__copyuser_seg" movl 32(%4), %%eax\n"
32642 " cmpl $67, %0\n"
32643 " jbe 2f\n"
32644 - "1: movl 64(%4), %%eax\n"
32645 + "1: "__copyuser_seg" movl 64(%4), %%eax\n"
32646 " .align 2,0x90\n"
32647 - "2: movl 0(%4), %%eax\n"
32648 - "21: movl 4(%4), %%edx\n"
32649 + "2: "__copyuser_seg" movl 0(%4), %%eax\n"
32650 + "21: "__copyuser_seg" movl 4(%4), %%edx\n"
32651 " movnti %%eax, 0(%3)\n"
32652 " movnti %%edx, 4(%3)\n"
32653 - "3: movl 8(%4), %%eax\n"
32654 - "31: movl 12(%4),%%edx\n"
32655 + "3: "__copyuser_seg" movl 8(%4), %%eax\n"
32656 + "31: "__copyuser_seg" movl 12(%4),%%edx\n"
32657 " movnti %%eax, 8(%3)\n"
32658 " movnti %%edx, 12(%3)\n"
32659 - "4: movl 16(%4), %%eax\n"
32660 - "41: movl 20(%4), %%edx\n"
32661 + "4: "__copyuser_seg" movl 16(%4), %%eax\n"
32662 + "41: "__copyuser_seg" movl 20(%4), %%edx\n"
32663 " movnti %%eax, 16(%3)\n"
32664 " movnti %%edx, 20(%3)\n"
32665 - "10: movl 24(%4), %%eax\n"
32666 - "51: movl 28(%4), %%edx\n"
32667 + "10: "__copyuser_seg" movl 24(%4), %%eax\n"
32668 + "51: "__copyuser_seg" movl 28(%4), %%edx\n"
32669 " movnti %%eax, 24(%3)\n"
32670 " movnti %%edx, 28(%3)\n"
32671 - "11: movl 32(%4), %%eax\n"
32672 - "61: movl 36(%4), %%edx\n"
32673 + "11: "__copyuser_seg" movl 32(%4), %%eax\n"
32674 + "61: "__copyuser_seg" movl 36(%4), %%edx\n"
32675 " movnti %%eax, 32(%3)\n"
32676 " movnti %%edx, 36(%3)\n"
32677 - "12: movl 40(%4), %%eax\n"
32678 - "71: movl 44(%4), %%edx\n"
32679 + "12: "__copyuser_seg" movl 40(%4), %%eax\n"
32680 + "71: "__copyuser_seg" movl 44(%4), %%edx\n"
32681 " movnti %%eax, 40(%3)\n"
32682 " movnti %%edx, 44(%3)\n"
32683 - "13: movl 48(%4), %%eax\n"
32684 - "81: movl 52(%4), %%edx\n"
32685 + "13: "__copyuser_seg" movl 48(%4), %%eax\n"
32686 + "81: "__copyuser_seg" movl 52(%4), %%edx\n"
32687 " movnti %%eax, 48(%3)\n"
32688 " movnti %%edx, 52(%3)\n"
32689 - "14: movl 56(%4), %%eax\n"
32690 - "91: movl 60(%4), %%edx\n"
32691 + "14: "__copyuser_seg" movl 56(%4), %%eax\n"
32692 + "91: "__copyuser_seg" movl 60(%4), %%edx\n"
32693 " movnti %%eax, 56(%3)\n"
32694 " movnti %%edx, 60(%3)\n"
32695 " addl $-64, %0\n"
32696 @@ -446,9 +554,9 @@ static unsigned long __copy_user_intel_nocache(void *to,
32697 " shrl $2, %0\n"
32698 " andl $3, %%eax\n"
32699 " cld\n"
32700 - "6: rep; movsl\n"
32701 + "6: rep; "__copyuser_seg" movsl\n"
32702 " movl %%eax,%0\n"
32703 - "7: rep; movsb\n"
32704 + "7: rep; "__copyuser_seg" movsb\n"
32705 "8:\n"
32706 ".section .fixup,\"ax\"\n"
32707 "9: lea 0(%%eax,%0,4),%0\n"
32708 @@ -488,32 +596,36 @@ static unsigned long __copy_user_intel_nocache(void *to,
32709 */
32710 unsigned long __copy_user_zeroing_intel(void *to, const void __user *from,
32711 unsigned long size);
32712 -unsigned long __copy_user_intel(void __user *to, const void *from,
32713 +unsigned long __generic_copy_to_user_intel(void __user *to, const void *from,
32714 + unsigned long size);
32715 +unsigned long __generic_copy_from_user_intel(void *to, const void __user *from,
32716 unsigned long size);
32717 unsigned long __copy_user_zeroing_intel_nocache(void *to,
32718 const void __user *from, unsigned long size);
32719 #endif /* CONFIG_X86_INTEL_USERCOPY */
32720
32721 /* Generic arbitrary sized copy. */
32722 -#define __copy_user(to, from, size) \
32723 +#define __copy_user(to, from, size, prefix, set, restore) \
32724 do { \
32725 int __d0, __d1, __d2; \
32726 __asm__ __volatile__( \
32727 + set \
32728 " cmp $7,%0\n" \
32729 " jbe 1f\n" \
32730 " movl %1,%0\n" \
32731 " negl %0\n" \
32732 " andl $7,%0\n" \
32733 " subl %0,%3\n" \
32734 - "4: rep; movsb\n" \
32735 + "4: rep; "prefix"movsb\n" \
32736 " movl %3,%0\n" \
32737 " shrl $2,%0\n" \
32738 " andl $3,%3\n" \
32739 " .align 2,0x90\n" \
32740 - "0: rep; movsl\n" \
32741 + "0: rep; "prefix"movsl\n" \
32742 " movl %3,%0\n" \
32743 - "1: rep; movsb\n" \
32744 + "1: rep; "prefix"movsb\n" \
32745 "2:\n" \
32746 + restore \
32747 ".section .fixup,\"ax\"\n" \
32748 "5: addl %3,%0\n" \
32749 " jmp 2b\n" \
32750 @@ -538,14 +650,14 @@ do { \
32751 " negl %0\n" \
32752 " andl $7,%0\n" \
32753 " subl %0,%3\n" \
32754 - "4: rep; movsb\n" \
32755 + "4: rep; "__copyuser_seg"movsb\n" \
32756 " movl %3,%0\n" \
32757 " shrl $2,%0\n" \
32758 " andl $3,%3\n" \
32759 " .align 2,0x90\n" \
32760 - "0: rep; movsl\n" \
32761 + "0: rep; "__copyuser_seg"movsl\n" \
32762 " movl %3,%0\n" \
32763 - "1: rep; movsb\n" \
32764 + "1: rep; "__copyuser_seg"movsb\n" \
32765 "2:\n" \
32766 ".section .fixup,\"ax\"\n" \
32767 "5: addl %3,%0\n" \
32768 @@ -572,9 +684,9 @@ unsigned long __copy_to_user_ll(void __user *to, const void *from,
32769 {
32770 stac();
32771 if (movsl_is_ok(to, from, n))
32772 - __copy_user(to, from, n);
32773 + __copy_user(to, from, n, "", __COPYUSER_SET_ES, __COPYUSER_RESTORE_ES);
32774 else
32775 - n = __copy_user_intel(to, from, n);
32776 + n = __generic_copy_to_user_intel(to, from, n);
32777 clac();
32778 return n;
32779 }
32780 @@ -598,10 +710,9 @@ unsigned long __copy_from_user_ll_nozero(void *to, const void __user *from,
32781 {
32782 stac();
32783 if (movsl_is_ok(to, from, n))
32784 - __copy_user(to, from, n);
32785 + __copy_user(to, from, n, __copyuser_seg, "", "");
32786 else
32787 - n = __copy_user_intel((void __user *)to,
32788 - (const void *)from, n);
32789 + n = __generic_copy_from_user_intel(to, from, n);
32790 clac();
32791 return n;
32792 }
32793 @@ -632,60 +743,38 @@ unsigned long __copy_from_user_ll_nocache_nozero(void *to, const void __user *fr
32794 if (n > 64 && cpu_has_xmm2)
32795 n = __copy_user_intel_nocache(to, from, n);
32796 else
32797 - __copy_user(to, from, n);
32798 + __copy_user(to, from, n, __copyuser_seg, "", "");
32799 #else
32800 - __copy_user(to, from, n);
32801 + __copy_user(to, from, n, __copyuser_seg, "", "");
32802 #endif
32803 clac();
32804 return n;
32805 }
32806 EXPORT_SYMBOL(__copy_from_user_ll_nocache_nozero);
32807
32808 -/**
32809 - * copy_to_user: - Copy a block of data into user space.
32810 - * @to: Destination address, in user space.
32811 - * @from: Source address, in kernel space.
32812 - * @n: Number of bytes to copy.
32813 - *
32814 - * Context: User context only. This function may sleep if pagefaults are
32815 - * enabled.
32816 - *
32817 - * Copy data from kernel space to user space.
32818 - *
32819 - * Returns number of bytes that could not be copied.
32820 - * On success, this will be zero.
32821 - */
32822 -unsigned long _copy_to_user(void __user *to, const void *from, unsigned n)
32823 +#ifdef CONFIG_PAX_MEMORY_UDEREF
32824 +void __set_fs(mm_segment_t x)
32825 {
32826 - if (access_ok(VERIFY_WRITE, to, n))
32827 - n = __copy_to_user(to, from, n);
32828 - return n;
32829 + switch (x.seg) {
32830 + case 0:
32831 + loadsegment(gs, 0);
32832 + break;
32833 + case TASK_SIZE_MAX:
32834 + loadsegment(gs, __USER_DS);
32835 + break;
32836 + case -1UL:
32837 + loadsegment(gs, __KERNEL_DS);
32838 + break;
32839 + default:
32840 + BUG();
32841 + }
32842 }
32843 -EXPORT_SYMBOL(_copy_to_user);
32844 +EXPORT_SYMBOL(__set_fs);
32845
32846 -/**
32847 - * copy_from_user: - Copy a block of data from user space.
32848 - * @to: Destination address, in kernel space.
32849 - * @from: Source address, in user space.
32850 - * @n: Number of bytes to copy.
32851 - *
32852 - * Context: User context only. This function may sleep if pagefaults are
32853 - * enabled.
32854 - *
32855 - * Copy data from user space to kernel space.
32856 - *
32857 - * Returns number of bytes that could not be copied.
32858 - * On success, this will be zero.
32859 - *
32860 - * If some data could not be copied, this function will pad the copied
32861 - * data to the requested size using zero bytes.
32862 - */
32863 -unsigned long _copy_from_user(void *to, const void __user *from, unsigned n)
32864 +void set_fs(mm_segment_t x)
32865 {
32866 - if (access_ok(VERIFY_READ, from, n))
32867 - n = __copy_from_user(to, from, n);
32868 - else
32869 - memset(to, 0, n);
32870 - return n;
32871 + current_thread_info()->addr_limit = x;
32872 + __set_fs(x);
32873 }
32874 -EXPORT_SYMBOL(_copy_from_user);
32875 +EXPORT_SYMBOL(set_fs);
32876 +#endif
32877 diff --git a/arch/x86/lib/usercopy_64.c b/arch/x86/lib/usercopy_64.c
32878 index 0a42327..7a82465 100644
32879 --- a/arch/x86/lib/usercopy_64.c
32880 +++ b/arch/x86/lib/usercopy_64.c
32881 @@ -18,6 +18,7 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
32882 might_fault();
32883 /* no memory constraint because it doesn't change any memory gcc knows
32884 about */
32885 + pax_open_userland();
32886 stac();
32887 asm volatile(
32888 " testq %[size8],%[size8]\n"
32889 @@ -39,9 +40,10 @@ unsigned long __clear_user(void __user *addr, unsigned long size)
32890 _ASM_EXTABLE(0b,3b)
32891 _ASM_EXTABLE(1b,2b)
32892 : [size8] "=&c"(size), [dst] "=&D" (__d0)
32893 - : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(addr),
32894 + : [size1] "r"(size & 7), "[size8]" (size / 8), "[dst]"(____m(addr)),
32895 [zero] "r" (0UL), [eight] "r" (8UL));
32896 clac();
32897 + pax_close_userland();
32898 return size;
32899 }
32900 EXPORT_SYMBOL(__clear_user);
32901 @@ -54,12 +56,11 @@ unsigned long clear_user(void __user *to, unsigned long n)
32902 }
32903 EXPORT_SYMBOL(clear_user);
32904
32905 -unsigned long copy_in_user(void __user *to, const void __user *from, unsigned len)
32906 +unsigned long copy_in_user(void __user *to, const void __user *from, unsigned long len)
32907 {
32908 - if (access_ok(VERIFY_WRITE, to, len) && access_ok(VERIFY_READ, from, len)) {
32909 - return copy_user_generic((__force void *)to, (__force void *)from, len);
32910 - }
32911 - return len;
32912 + if (access_ok(VERIFY_WRITE, to, len) && access_ok(VERIFY_READ, from, len))
32913 + return copy_user_generic((void __force_kernel *)____m(to), (void __force_kernel *)____m(from), len);
32914 + return len;
32915 }
32916 EXPORT_SYMBOL(copy_in_user);
32917
32918 @@ -69,8 +70,10 @@ EXPORT_SYMBOL(copy_in_user);
32919 * it is not necessary to optimize tail handling.
32920 */
32921 __visible unsigned long
32922 -copy_user_handle_tail(char *to, char *from, unsigned len)
32923 +copy_user_handle_tail(char __user *to, char __user *from, unsigned long len)
32924 {
32925 + clac();
32926 + pax_close_userland();
32927 for (; len; --len, to++) {
32928 char c;
32929
32930 @@ -79,10 +82,9 @@ copy_user_handle_tail(char *to, char *from, unsigned len)
32931 if (__put_user_nocheck(c, to, sizeof(char)))
32932 break;
32933 }
32934 - clac();
32935
32936 /* If the destination is a kernel buffer, we always clear the end */
32937 - if (!__addr_ok(to))
32938 + if (!__addr_ok(to) && (unsigned long)to >= TASK_SIZE_MAX + pax_user_shadow_base)
32939 memset(to, 0, len);
32940 return len;
32941 }
32942 diff --git a/arch/x86/math-emu/fpu_aux.c b/arch/x86/math-emu/fpu_aux.c
32943 index dd76a05..df65688 100644
32944 --- a/arch/x86/math-emu/fpu_aux.c
32945 +++ b/arch/x86/math-emu/fpu_aux.c
32946 @@ -52,7 +52,7 @@ void fpstate_init_soft(struct swregs_state *soft)
32947
32948 void finit(void)
32949 {
32950 - fpstate_init_soft(&current->thread.fpu.state.soft);
32951 + fpstate_init_soft(&current->thread.fpu.state->soft);
32952 }
32953
32954 /*
32955 diff --git a/arch/x86/math-emu/fpu_entry.c b/arch/x86/math-emu/fpu_entry.c
32956 index 3d8f2e4..ef7cf4e 100644
32957 --- a/arch/x86/math-emu/fpu_entry.c
32958 +++ b/arch/x86/math-emu/fpu_entry.c
32959 @@ -677,7 +677,7 @@ int fpregs_soft_set(struct task_struct *target,
32960 unsigned int pos, unsigned int count,
32961 const void *kbuf, const void __user *ubuf)
32962 {
32963 - struct swregs_state *s387 = &target->thread.fpu.state.soft;
32964 + struct swregs_state *s387 = &target->thread.fpu.state->soft;
32965 void *space = s387->st_space;
32966 int ret;
32967 int offset, other, i, tags, regnr, tag, newtop;
32968 @@ -729,7 +729,7 @@ int fpregs_soft_get(struct task_struct *target,
32969 unsigned int pos, unsigned int count,
32970 void *kbuf, void __user *ubuf)
32971 {
32972 - struct swregs_state *s387 = &target->thread.fpu.state.soft;
32973 + struct swregs_state *s387 = &target->thread.fpu.state->soft;
32974 const void *space = s387->st_space;
32975 int ret;
32976 int offset = (S387->ftop & 7) * 10, other = 80 - offset;
32977 diff --git a/arch/x86/math-emu/fpu_system.h b/arch/x86/math-emu/fpu_system.h
32978 index 5e044d5..d342fce 100644
32979 --- a/arch/x86/math-emu/fpu_system.h
32980 +++ b/arch/x86/math-emu/fpu_system.h
32981 @@ -46,7 +46,7 @@ static inline struct desc_struct FPU_get_ldt_descriptor(unsigned seg)
32982 #define SEG_EXPAND_DOWN(s) (((s).b & ((1 << 11) | (1 << 10))) \
32983 == (1 << 10))
32984
32985 -#define I387 (&current->thread.fpu.state)
32986 +#define I387 (current->thread.fpu.state)
32987 #define FPU_info (I387->soft.info)
32988
32989 #define FPU_CS (*(unsigned short *) &(FPU_info->regs->cs))
32990 diff --git a/arch/x86/mm/Makefile b/arch/x86/mm/Makefile
32991 index a482d10..1a6edb5 100644
32992 --- a/arch/x86/mm/Makefile
32993 +++ b/arch/x86/mm/Makefile
32994 @@ -33,3 +33,7 @@ obj-$(CONFIG_ACPI_NUMA) += srat.o
32995 obj-$(CONFIG_NUMA_EMU) += numa_emulation.o
32996
32997 obj-$(CONFIG_X86_INTEL_MPX) += mpx.o
32998 +
32999 +quote:="
33000 +obj-$(CONFIG_X86_64) += uderef_64.o
33001 +CFLAGS_uderef_64.o := $(subst $(quote),,$(CONFIG_ARCH_HWEIGHT_CFLAGS)) -fcall-saved-rax
33002 diff --git a/arch/x86/mm/extable.c b/arch/x86/mm/extable.c
33003 index 903ec1e..41b4708 100644
33004 --- a/arch/x86/mm/extable.c
33005 +++ b/arch/x86/mm/extable.c
33006 @@ -2,16 +2,29 @@
33007 #include <linux/spinlock.h>
33008 #include <linux/sort.h>
33009 #include <asm/uaccess.h>
33010 +#include <asm/boot.h>
33011
33012 static inline unsigned long
33013 ex_insn_addr(const struct exception_table_entry *x)
33014 {
33015 - return (unsigned long)&x->insn + x->insn;
33016 + unsigned long reloc = 0;
33017 +
33018 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
33019 + reloc = ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
33020 +#endif
33021 +
33022 + return (unsigned long)&x->insn + x->insn + reloc;
33023 }
33024 static inline unsigned long
33025 ex_fixup_addr(const struct exception_table_entry *x)
33026 {
33027 - return (unsigned long)&x->fixup + x->fixup;
33028 + unsigned long reloc = 0;
33029 +
33030 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
33031 + reloc = ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
33032 +#endif
33033 +
33034 + return (unsigned long)&x->fixup + x->fixup + reloc;
33035 }
33036
33037 int fixup_exception(struct pt_regs *regs)
33038 @@ -20,7 +33,7 @@ int fixup_exception(struct pt_regs *regs)
33039 unsigned long new_ip;
33040
33041 #ifdef CONFIG_PNPBIOS
33042 - if (unlikely(SEGMENT_IS_PNP_CODE(regs->cs))) {
33043 + if (unlikely(!v8086_mode(regs) && SEGMENT_IS_PNP_CODE(regs->cs))) {
33044 extern u32 pnp_bios_fault_eip, pnp_bios_fault_esp;
33045 extern u32 pnp_bios_is_utter_crap;
33046 pnp_bios_is_utter_crap = 1;
33047 @@ -145,6 +158,13 @@ void sort_extable(struct exception_table_entry *start,
33048 i += 4;
33049 p->fixup -= i;
33050 i += 4;
33051 +
33052 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
33053 + BUILD_BUG_ON(!IS_ENABLED(CONFIG_BUILDTIME_EXTABLE_SORT));
33054 + p->insn -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
33055 + p->fixup -= ____LOAD_PHYSICAL_ADDR - LOAD_PHYSICAL_ADDR;
33056 +#endif
33057 +
33058 }
33059 }
33060
33061 diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
33062 index 9dc9098..938251a 100644
33063 --- a/arch/x86/mm/fault.c
33064 +++ b/arch/x86/mm/fault.c
33065 @@ -14,12 +14,19 @@
33066 #include <linux/prefetch.h> /* prefetchw */
33067 #include <linux/context_tracking.h> /* exception_enter(), ... */
33068 #include <linux/uaccess.h> /* faulthandler_disabled() */
33069 +#include <linux/unistd.h>
33070 +#include <linux/compiler.h>
33071
33072 #include <asm/traps.h> /* dotraplinkage, ... */
33073 #include <asm/pgalloc.h> /* pgd_*(), ... */
33074 #include <asm/kmemcheck.h> /* kmemcheck_*(), ... */
33075 #include <asm/fixmap.h> /* VSYSCALL_ADDR */
33076 #include <asm/vsyscall.h> /* emulate_vsyscall */
33077 +#include <asm/tlbflush.h>
33078 +
33079 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
33080 +#include <asm/stacktrace.h>
33081 +#endif
33082
33083 #define CREATE_TRACE_POINTS
33084 #include <asm/trace/exceptions.h>
33085 @@ -121,7 +128,10 @@ check_prefetch_opcode(struct pt_regs *regs, unsigned char *instr,
33086 return !instr_lo || (instr_lo>>1) == 1;
33087 case 0x00:
33088 /* Prefetch instruction is 0x0F0D or 0x0F18 */
33089 - if (probe_kernel_address(instr, opcode))
33090 + if (user_mode(regs)) {
33091 + if (__copy_from_user_inatomic(&opcode, (unsigned char __force_user *)(instr), 1))
33092 + return 0;
33093 + } else if (probe_kernel_address(instr, opcode))
33094 return 0;
33095
33096 *prefetch = (instr_lo == 0xF) &&
33097 @@ -155,7 +165,10 @@ is_prefetch(struct pt_regs *regs, unsigned long error_code, unsigned long addr)
33098 while (instr < max_instr) {
33099 unsigned char opcode;
33100
33101 - if (probe_kernel_address(instr, opcode))
33102 + if (user_mode(regs)) {
33103 + if (__copy_from_user_inatomic(&opcode, (unsigned char __force_user *)(instr), 1))
33104 + break;
33105 + } else if (probe_kernel_address(instr, opcode))
33106 break;
33107
33108 instr++;
33109 @@ -186,6 +199,34 @@ force_sig_info_fault(int si_signo, int si_code, unsigned long address,
33110 force_sig_info(si_signo, &info, tsk);
33111 }
33112
33113 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33114 +static bool pax_is_fetch_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address);
33115 +#endif
33116 +
33117 +#ifdef CONFIG_PAX_EMUTRAMP
33118 +static int pax_handle_fetch_fault(struct pt_regs *regs);
33119 +#endif
33120 +
33121 +#ifdef CONFIG_PAX_PAGEEXEC
33122 +static inline pmd_t * pax_get_pmd(struct mm_struct *mm, unsigned long address)
33123 +{
33124 + pgd_t *pgd;
33125 + pud_t *pud;
33126 + pmd_t *pmd;
33127 +
33128 + pgd = pgd_offset(mm, address);
33129 + if (!pgd_present(*pgd))
33130 + return NULL;
33131 + pud = pud_offset(pgd, address);
33132 + if (!pud_present(*pud))
33133 + return NULL;
33134 + pmd = pmd_offset(pud, address);
33135 + if (!pmd_present(*pmd))
33136 + return NULL;
33137 + return pmd;
33138 +}
33139 +#endif
33140 +
33141 DEFINE_SPINLOCK(pgd_lock);
33142 LIST_HEAD(pgd_list);
33143
33144 @@ -236,10 +277,27 @@ void vmalloc_sync_all(void)
33145 for (address = VMALLOC_START & PMD_MASK;
33146 address >= TASK_SIZE && address < FIXADDR_TOP;
33147 address += PMD_SIZE) {
33148 +
33149 +#ifdef CONFIG_PAX_PER_CPU_PGD
33150 + unsigned long cpu;
33151 +#else
33152 struct page *page;
33153 +#endif
33154
33155 spin_lock(&pgd_lock);
33156 +
33157 +#ifdef CONFIG_PAX_PER_CPU_PGD
33158 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
33159 + pgd_t *pgd = get_cpu_pgd(cpu, user);
33160 + pmd_t *ret;
33161 +
33162 + ret = vmalloc_sync_one(pgd, address);
33163 + if (!ret)
33164 + break;
33165 + pgd = get_cpu_pgd(cpu, kernel);
33166 +#else
33167 list_for_each_entry(page, &pgd_list, lru) {
33168 + pgd_t *pgd;
33169 spinlock_t *pgt_lock;
33170 pmd_t *ret;
33171
33172 @@ -247,8 +305,14 @@ void vmalloc_sync_all(void)
33173 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
33174
33175 spin_lock(pgt_lock);
33176 - ret = vmalloc_sync_one(page_address(page), address);
33177 + pgd = page_address(page);
33178 +#endif
33179 +
33180 + ret = vmalloc_sync_one(pgd, address);
33181 +
33182 +#ifndef CONFIG_PAX_PER_CPU_PGD
33183 spin_unlock(pgt_lock);
33184 +#endif
33185
33186 if (!ret)
33187 break;
33188 @@ -282,6 +346,12 @@ static noinline int vmalloc_fault(unsigned long address)
33189 * an interrupt in the middle of a task switch..
33190 */
33191 pgd_paddr = read_cr3();
33192 +
33193 +#ifdef CONFIG_PAX_PER_CPU_PGD
33194 + BUG_ON(__pa(get_cpu_pgd(smp_processor_id(), kernel)) != (pgd_paddr & __PHYSICAL_MASK));
33195 + vmalloc_sync_one(__va(pgd_paddr + PAGE_SIZE), address);
33196 +#endif
33197 +
33198 pmd_k = vmalloc_sync_one(__va(pgd_paddr), address);
33199 if (!pmd_k)
33200 return -1;
33201 @@ -378,11 +448,25 @@ static noinline int vmalloc_fault(unsigned long address)
33202 * happen within a race in page table update. In the later
33203 * case just flush:
33204 */
33205 - pgd = pgd_offset(current->active_mm, address);
33206 +
33207 pgd_ref = pgd_offset_k(address);
33208 if (pgd_none(*pgd_ref))
33209 return -1;
33210
33211 +#ifdef CONFIG_PAX_PER_CPU_PGD
33212 + BUG_ON(__pa(get_cpu_pgd(smp_processor_id(), kernel)) != (read_cr3() & __PHYSICAL_MASK));
33213 + pgd = pgd_offset_cpu(smp_processor_id(), user, address);
33214 + if (pgd_none(*pgd)) {
33215 + set_pgd(pgd, *pgd_ref);
33216 + arch_flush_lazy_mmu_mode();
33217 + } else {
33218 + BUG_ON(pgd_page_vaddr(*pgd) != pgd_page_vaddr(*pgd_ref));
33219 + }
33220 + pgd = pgd_offset_cpu(smp_processor_id(), kernel, address);
33221 +#else
33222 + pgd = pgd_offset(current->active_mm, address);
33223 +#endif
33224 +
33225 if (pgd_none(*pgd)) {
33226 set_pgd(pgd, *pgd_ref);
33227 arch_flush_lazy_mmu_mode();
33228 @@ -549,7 +633,7 @@ static int is_errata93(struct pt_regs *regs, unsigned long address)
33229 static int is_errata100(struct pt_regs *regs, unsigned long address)
33230 {
33231 #ifdef CONFIG_X86_64
33232 - if ((regs->cs == __USER32_CS || (regs->cs & (1<<2))) && (address >> 32))
33233 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)) && (address >> 32))
33234 return 1;
33235 #endif
33236 return 0;
33237 @@ -576,9 +660,9 @@ static int is_f00f_bug(struct pt_regs *regs, unsigned long address)
33238 }
33239
33240 static const char nx_warning[] = KERN_CRIT
33241 -"kernel tried to execute NX-protected page - exploit attempt? (uid: %d)\n";
33242 +"kernel tried to execute NX-protected page - exploit attempt? (uid: %d, task: %s, pid: %d)\n";
33243 static const char smep_warning[] = KERN_CRIT
33244 -"unable to execute userspace code (SMEP?) (uid: %d)\n";
33245 +"unable to execute userspace code (SMEP?) (uid: %d, task: %s, pid: %d)\n";
33246
33247 static void
33248 show_fault_oops(struct pt_regs *regs, unsigned long error_code,
33249 @@ -587,7 +671,7 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
33250 if (!oops_may_print())
33251 return;
33252
33253 - if (error_code & PF_INSTR) {
33254 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR)) {
33255 unsigned int level;
33256 pgd_t *pgd;
33257 pte_t *pte;
33258 @@ -598,13 +682,25 @@ show_fault_oops(struct pt_regs *regs, unsigned long error_code,
33259 pte = lookup_address_in_pgd(pgd, address, &level);
33260
33261 if (pte && pte_present(*pte) && !pte_exec(*pte))
33262 - printk(nx_warning, from_kuid(&init_user_ns, current_uid()));
33263 + printk(nx_warning, from_kuid_munged(&init_user_ns, current_uid()), current->comm, task_pid_nr(current));
33264 if (pte && pte_present(*pte) && pte_exec(*pte) &&
33265 (pgd_flags(*pgd) & _PAGE_USER) &&
33266 (__read_cr4() & X86_CR4_SMEP))
33267 - printk(smep_warning, from_kuid(&init_user_ns, current_uid()));
33268 + printk(smep_warning, from_kuid(&init_user_ns, current_uid()), current->comm, task_pid_nr(current));
33269 }
33270
33271 +#ifdef CONFIG_PAX_KERNEXEC
33272 + if (init_mm.start_code <= address && address < init_mm.end_code) {
33273 + if (current->signal->curr_ip)
33274 + printk(KERN_EMERG "PAX: From %pI4: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n",
33275 + &current->signal->curr_ip, current->comm, task_pid_nr(current),
33276 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
33277 + else
33278 + printk(KERN_EMERG "PAX: %s:%d, uid/euid: %u/%u, attempted to modify kernel code\n", current->comm, task_pid_nr(current),
33279 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
33280 + }
33281 +#endif
33282 +
33283 printk(KERN_ALERT "BUG: unable to handle kernel ");
33284 if (address < PAGE_SIZE)
33285 printk(KERN_CONT "NULL pointer dereference");
33286 @@ -783,6 +879,22 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
33287 return;
33288 }
33289 #endif
33290 +
33291 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33292 + if (pax_is_fetch_fault(regs, error_code, address)) {
33293 +
33294 +#ifdef CONFIG_PAX_EMUTRAMP
33295 + switch (pax_handle_fetch_fault(regs)) {
33296 + case 2:
33297 + return;
33298 + }
33299 +#endif
33300 +
33301 + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp);
33302 + do_group_exit(SIGKILL);
33303 + }
33304 +#endif
33305 +
33306 /* Kernel addresses are always protection faults: */
33307 if (address >= TASK_SIZE)
33308 error_code |= PF_PROT;
33309 @@ -865,7 +977,7 @@ do_sigbus(struct pt_regs *regs, unsigned long error_code, unsigned long address,
33310 if (fault & (VM_FAULT_HWPOISON|VM_FAULT_HWPOISON_LARGE)) {
33311 printk(KERN_ERR
33312 "MCE: Killing %s:%d due to hardware memory corruption fault at %lx\n",
33313 - tsk->comm, tsk->pid, address);
33314 + tsk->comm, task_pid_nr(tsk), address);
33315 code = BUS_MCEERR_AR;
33316 }
33317 #endif
33318 @@ -917,6 +1029,107 @@ static int spurious_fault_check(unsigned long error_code, pte_t *pte)
33319 return 1;
33320 }
33321
33322 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
33323 +static inline unsigned long get_limit(unsigned long segment)
33324 +{
33325 + unsigned long __limit;
33326 +
33327 + asm("lsll %1,%0" : "=r" (__limit) : "r" (segment));
33328 + return __limit + 1;
33329 +}
33330 +
33331 +static int pax_handle_pageexec_fault(struct pt_regs *regs, struct mm_struct *mm, unsigned long address, unsigned long error_code)
33332 +{
33333 + pte_t *pte;
33334 + pmd_t *pmd;
33335 + spinlock_t *ptl;
33336 + unsigned char pte_mask;
33337 +
33338 + if ((__supported_pte_mask & _PAGE_NX) || (error_code & (PF_PROT|PF_USER)) != (PF_PROT|PF_USER) || v8086_mode(regs) ||
33339 + !(mm->pax_flags & MF_PAX_PAGEEXEC))
33340 + return 0;
33341 +
33342 + /* PaX: it's our fault, let's handle it if we can */
33343 +
33344 + /* PaX: take a look at read faults before acquiring any locks */
33345 + if (unlikely(!(error_code & PF_WRITE) && (regs->ip == address))) {
33346 + /* instruction fetch attempt from a protected page in user mode */
33347 + up_read(&mm->mmap_sem);
33348 +
33349 +#ifdef CONFIG_PAX_EMUTRAMP
33350 + switch (pax_handle_fetch_fault(regs)) {
33351 + case 2:
33352 + return 1;
33353 + }
33354 +#endif
33355 +
33356 + pax_report_fault(regs, (void *)regs->ip, (void *)regs->sp);
33357 + do_group_exit(SIGKILL);
33358 + }
33359 +
33360 + pmd = pax_get_pmd(mm, address);
33361 + if (unlikely(!pmd))
33362 + return 0;
33363 +
33364 + pte = pte_offset_map_lock(mm, pmd, address, &ptl);
33365 + if (unlikely(!(pte_val(*pte) & _PAGE_PRESENT) || pte_user(*pte))) {
33366 + pte_unmap_unlock(pte, ptl);
33367 + return 0;
33368 + }
33369 +
33370 + if (unlikely((error_code & PF_WRITE) && !pte_write(*pte))) {
33371 + /* write attempt to a protected page in user mode */
33372 + pte_unmap_unlock(pte, ptl);
33373 + return 0;
33374 + }
33375 +
33376 +#ifdef CONFIG_SMP
33377 + if (likely(address > get_limit(regs->cs) && cpumask_test_cpu(smp_processor_id(), &mm->context.cpu_user_cs_mask)))
33378 +#else
33379 + if (likely(address > get_limit(regs->cs)))
33380 +#endif
33381 + {
33382 + set_pte(pte, pte_mkread(*pte));
33383 + __flush_tlb_one(address);
33384 + pte_unmap_unlock(pte, ptl);
33385 + up_read(&mm->mmap_sem);
33386 + return 1;
33387 + }
33388 +
33389 + pte_mask = _PAGE_ACCESSED | _PAGE_USER | ((error_code & PF_WRITE) << (_PAGE_BIT_DIRTY-1));
33390 +
33391 + /*
33392 + * PaX: fill DTLB with user rights and retry
33393 + */
33394 + __asm__ __volatile__ (
33395 + "orb %2,(%1)\n"
33396 +#if defined(CONFIG_M586) || defined(CONFIG_M586TSC)
33397 +/*
33398 + * PaX: let this uncommented 'invlpg' remind us on the behaviour of Intel's
33399 + * (and AMD's) TLBs. namely, they do not cache PTEs that would raise *any*
33400 + * page fault when examined during a TLB load attempt. this is true not only
33401 + * for PTEs holding a non-present entry but also present entries that will
33402 + * raise a page fault (such as those set up by PaX, or the copy-on-write
33403 + * mechanism). in effect it means that we do *not* need to flush the TLBs
33404 + * for our target pages since their PTEs are simply not in the TLBs at all.
33405 +
33406 + * the best thing in omitting it is that we gain around 15-20% speed in the
33407 + * fast path of the page fault handler and can get rid of tracing since we
33408 + * can no longer flush unintended entries.
33409 + */
33410 + "invlpg (%0)\n"
33411 +#endif
33412 + __copyuser_seg"testb $0,(%0)\n"
33413 + "xorb %3,(%1)\n"
33414 + :
33415 + : "r" (address), "r" (pte), "q" (pte_mask), "i" (_PAGE_USER)
33416 + : "memory", "cc");
33417 + pte_unmap_unlock(pte, ptl);
33418 + up_read(&mm->mmap_sem);
33419 + return 1;
33420 +}
33421 +#endif
33422 +
33423 /*
33424 * Handle a spurious fault caused by a stale TLB entry.
33425 *
33426 @@ -1002,6 +1215,9 @@ int show_unhandled_signals = 1;
33427 static inline int
33428 access_error(unsigned long error_code, struct vm_area_struct *vma)
33429 {
33430 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR) && !(vma->vm_flags & VM_EXEC))
33431 + return 1;
33432 +
33433 if (error_code & PF_WRITE) {
33434 /* write, present and write, not present: */
33435 if (unlikely(!(vma->vm_flags & VM_WRITE)))
33436 @@ -1064,6 +1280,22 @@ __do_page_fault(struct pt_regs *regs, unsigned long error_code,
33437 tsk = current;
33438 mm = tsk->mm;
33439
33440 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
33441 + if (!user_mode(regs) && address < 2 * pax_user_shadow_base) {
33442 + if (!search_exception_tables(regs->ip)) {
33443 + printk(KERN_EMERG "PAX: please report this to pageexec@freemail.hu\n");
33444 + bad_area_nosemaphore(regs, error_code, address);
33445 + return;
33446 + }
33447 + if (address < pax_user_shadow_base) {
33448 + printk(KERN_EMERG "PAX: please report this to pageexec@freemail.hu\n");
33449 + printk(KERN_EMERG "PAX: faulting IP: %pS\n", (void *)regs->ip);
33450 + show_trace_log_lvl(NULL, NULL, (void *)regs->sp, regs->bp, KERN_EMERG);
33451 + } else
33452 + address -= pax_user_shadow_base;
33453 + }
33454 +#endif
33455 +
33456 /*
33457 * Detect and handle instructions that would cause a page fault for
33458 * both a tracked kernel page and a userspace page.
33459 @@ -1188,6 +1420,11 @@ retry:
33460 might_sleep();
33461 }
33462
33463 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_PAGEEXEC)
33464 + if (pax_handle_pageexec_fault(regs, mm, address, error_code))
33465 + return;
33466 +#endif
33467 +
33468 vma = find_vma(mm, address);
33469 if (unlikely(!vma)) {
33470 bad_area(regs, error_code, address);
33471 @@ -1199,18 +1436,24 @@ retry:
33472 bad_area(regs, error_code, address);
33473 return;
33474 }
33475 - if (error_code & PF_USER) {
33476 - /*
33477 - * Accessing the stack below %sp is always a bug.
33478 - * The large cushion allows instructions like enter
33479 - * and pusha to work. ("enter $65535, $31" pushes
33480 - * 32 pointers and then decrements %sp by 65535.)
33481 - */
33482 - if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < regs->sp)) {
33483 - bad_area(regs, error_code, address);
33484 - return;
33485 - }
33486 + /*
33487 + * Accessing the stack below %sp is always a bug.
33488 + * The large cushion allows instructions like enter
33489 + * and pusha to work. ("enter $65535, $31" pushes
33490 + * 32 pointers and then decrements %sp by 65535.)
33491 + */
33492 + if (unlikely(address + 65536 + 32 * sizeof(unsigned long) < task_pt_regs(tsk)->sp)) {
33493 + bad_area(regs, error_code, address);
33494 + return;
33495 }
33496 +
33497 +#ifdef CONFIG_PAX_SEGMEXEC
33498 + if (unlikely((mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_end - SEGMEXEC_TASK_SIZE - 1 < address - SEGMEXEC_TASK_SIZE - 1)) {
33499 + bad_area(regs, error_code, address);
33500 + return;
33501 + }
33502 +#endif
33503 +
33504 if (unlikely(expand_stack(vma, address))) {
33505 bad_area(regs, error_code, address);
33506 return;
33507 @@ -1330,3 +1573,292 @@ trace_do_page_fault(struct pt_regs *regs, unsigned long error_code)
33508 }
33509 NOKPROBE_SYMBOL(trace_do_page_fault);
33510 #endif /* CONFIG_TRACING */
33511 +
33512 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33513 +static bool pax_is_fetch_fault(struct pt_regs *regs, unsigned long error_code, unsigned long address)
33514 +{
33515 + struct mm_struct *mm = current->mm;
33516 + unsigned long ip = regs->ip;
33517 +
33518 + if (v8086_mode(regs))
33519 + ip = ((regs->cs & 0xffff) << 4) + (ip & 0xffff);
33520 +
33521 +#ifdef CONFIG_PAX_PAGEEXEC
33522 + if (mm->pax_flags & MF_PAX_PAGEEXEC) {
33523 + if ((__supported_pte_mask & _PAGE_NX) && (error_code & PF_INSTR))
33524 + return true;
33525 + if (!(error_code & (PF_PROT | PF_WRITE)) && ip == address)
33526 + return true;
33527 + return false;
33528 + }
33529 +#endif
33530 +
33531 +#ifdef CONFIG_PAX_SEGMEXEC
33532 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
33533 + if (!(error_code & (PF_PROT | PF_WRITE)) && (ip + SEGMEXEC_TASK_SIZE == address))
33534 + return true;
33535 + return false;
33536 + }
33537 +#endif
33538 +
33539 + return false;
33540 +}
33541 +#endif
33542 +
33543 +#ifdef CONFIG_PAX_EMUTRAMP
33544 +static int pax_handle_fetch_fault_32(struct pt_regs *regs)
33545 +{
33546 + int err;
33547 +
33548 + do { /* PaX: libffi trampoline emulation */
33549 + unsigned char mov, jmp;
33550 + unsigned int addr1, addr2;
33551 +
33552 +#ifdef CONFIG_X86_64
33553 + if ((regs->ip + 9) >> 32)
33554 + break;
33555 +#endif
33556 +
33557 + err = get_user(mov, (unsigned char __user *)regs->ip);
33558 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33559 + err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5));
33560 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33561 +
33562 + if (err)
33563 + break;
33564 +
33565 + if (mov == 0xB8 && jmp == 0xE9) {
33566 + regs->ax = addr1;
33567 + regs->ip = (unsigned int)(regs->ip + addr2 + 10);
33568 + return 2;
33569 + }
33570 + } while (0);
33571 +
33572 + do { /* PaX: gcc trampoline emulation #1 */
33573 + unsigned char mov1, mov2;
33574 + unsigned short jmp;
33575 + unsigned int addr1, addr2;
33576 +
33577 +#ifdef CONFIG_X86_64
33578 + if ((regs->ip + 11) >> 32)
33579 + break;
33580 +#endif
33581 +
33582 + err = get_user(mov1, (unsigned char __user *)regs->ip);
33583 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33584 + err |= get_user(mov2, (unsigned char __user *)(regs->ip + 5));
33585 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33586 + err |= get_user(jmp, (unsigned short __user *)(regs->ip + 10));
33587 +
33588 + if (err)
33589 + break;
33590 +
33591 + if (mov1 == 0xB9 && mov2 == 0xB8 && jmp == 0xE0FF) {
33592 + regs->cx = addr1;
33593 + regs->ax = addr2;
33594 + regs->ip = addr2;
33595 + return 2;
33596 + }
33597 + } while (0);
33598 +
33599 + do { /* PaX: gcc trampoline emulation #2 */
33600 + unsigned char mov, jmp;
33601 + unsigned int addr1, addr2;
33602 +
33603 +#ifdef CONFIG_X86_64
33604 + if ((regs->ip + 9) >> 32)
33605 + break;
33606 +#endif
33607 +
33608 + err = get_user(mov, (unsigned char __user *)regs->ip);
33609 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 1));
33610 + err |= get_user(jmp, (unsigned char __user *)(regs->ip + 5));
33611 + err |= get_user(addr2, (unsigned int __user *)(regs->ip + 6));
33612 +
33613 + if (err)
33614 + break;
33615 +
33616 + if (mov == 0xB9 && jmp == 0xE9) {
33617 + regs->cx = addr1;
33618 + regs->ip = (unsigned int)(regs->ip + addr2 + 10);
33619 + return 2;
33620 + }
33621 + } while (0);
33622 +
33623 + return 1; /* PaX in action */
33624 +}
33625 +
33626 +#ifdef CONFIG_X86_64
33627 +static int pax_handle_fetch_fault_64(struct pt_regs *regs)
33628 +{
33629 + int err;
33630 +
33631 + do { /* PaX: libffi trampoline emulation */
33632 + unsigned short mov1, mov2, jmp1;
33633 + unsigned char stcclc, jmp2;
33634 + unsigned long addr1, addr2;
33635 +
33636 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33637 + err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2));
33638 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10));
33639 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12));
33640 + err |= get_user(stcclc, (unsigned char __user *)(regs->ip + 20));
33641 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 21));
33642 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 23));
33643 +
33644 + if (err)
33645 + break;
33646 +
33647 + if (mov1 == 0xBB49 && mov2 == 0xBA49 && (stcclc == 0xF8 || stcclc == 0xF9) && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33648 + regs->r11 = addr1;
33649 + regs->r10 = addr2;
33650 + if (stcclc == 0xF8)
33651 + regs->flags &= ~X86_EFLAGS_CF;
33652 + else
33653 + regs->flags |= X86_EFLAGS_CF;
33654 + regs->ip = addr1;
33655 + return 2;
33656 + }
33657 + } while (0);
33658 +
33659 + do { /* PaX: gcc trampoline emulation #1 */
33660 + unsigned short mov1, mov2, jmp1;
33661 + unsigned char jmp2;
33662 + unsigned int addr1;
33663 + unsigned long addr2;
33664 +
33665 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33666 + err |= get_user(addr1, (unsigned int __user *)(regs->ip + 2));
33667 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 6));
33668 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 8));
33669 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 16));
33670 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 18));
33671 +
33672 + if (err)
33673 + break;
33674 +
33675 + if (mov1 == 0xBB41 && mov2 == 0xBA49 && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33676 + regs->r11 = addr1;
33677 + regs->r10 = addr2;
33678 + regs->ip = addr1;
33679 + return 2;
33680 + }
33681 + } while (0);
33682 +
33683 + do { /* PaX: gcc trampoline emulation #2 */
33684 + unsigned short mov1, mov2, jmp1;
33685 + unsigned char jmp2;
33686 + unsigned long addr1, addr2;
33687 +
33688 + err = get_user(mov1, (unsigned short __user *)regs->ip);
33689 + err |= get_user(addr1, (unsigned long __user *)(regs->ip + 2));
33690 + err |= get_user(mov2, (unsigned short __user *)(regs->ip + 10));
33691 + err |= get_user(addr2, (unsigned long __user *)(regs->ip + 12));
33692 + err |= get_user(jmp1, (unsigned short __user *)(regs->ip + 20));
33693 + err |= get_user(jmp2, (unsigned char __user *)(regs->ip + 22));
33694 +
33695 + if (err)
33696 + break;
33697 +
33698 + if (mov1 == 0xBB49 && mov2 == 0xBA49 && jmp1 == 0xFF49 && jmp2 == 0xE3) {
33699 + regs->r11 = addr1;
33700 + regs->r10 = addr2;
33701 + regs->ip = addr1;
33702 + return 2;
33703 + }
33704 + } while (0);
33705 +
33706 + return 1; /* PaX in action */
33707 +}
33708 +#endif
33709 +
33710 +/*
33711 + * PaX: decide what to do with offenders (regs->ip = fault address)
33712 + *
33713 + * returns 1 when task should be killed
33714 + * 2 when gcc trampoline was detected
33715 + */
33716 +static int pax_handle_fetch_fault(struct pt_regs *regs)
33717 +{
33718 + if (v8086_mode(regs))
33719 + return 1;
33720 +
33721 + if (!(current->mm->pax_flags & MF_PAX_EMUTRAMP))
33722 + return 1;
33723 +
33724 +#ifdef CONFIG_X86_32
33725 + return pax_handle_fetch_fault_32(regs);
33726 +#else
33727 + if (regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT))
33728 + return pax_handle_fetch_fault_32(regs);
33729 + else
33730 + return pax_handle_fetch_fault_64(regs);
33731 +#endif
33732 +}
33733 +#endif
33734 +
33735 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
33736 +void pax_report_insns(struct pt_regs *regs, void *pc, void *sp)
33737 +{
33738 + long i;
33739 +
33740 + printk(KERN_ERR "PAX: bytes at PC: ");
33741 + for (i = 0; i < 20; i++) {
33742 + unsigned char c;
33743 + if (get_user(c, (unsigned char __force_user *)pc+i))
33744 + printk(KERN_CONT "?? ");
33745 + else
33746 + printk(KERN_CONT "%02x ", c);
33747 + }
33748 + printk("\n");
33749 +
33750 + printk(KERN_ERR "PAX: bytes at SP-%lu: ", (unsigned long)sizeof(long));
33751 + for (i = -1; i < 80 / (long)sizeof(long); i++) {
33752 + unsigned long c;
33753 + if (get_user(c, (unsigned long __force_user *)sp+i)) {
33754 +#ifdef CONFIG_X86_32
33755 + printk(KERN_CONT "???????? ");
33756 +#else
33757 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT)))
33758 + printk(KERN_CONT "???????? ???????? ");
33759 + else
33760 + printk(KERN_CONT "???????????????? ");
33761 +#endif
33762 + } else {
33763 +#ifdef CONFIG_X86_64
33764 + if ((regs->cs == __USER32_CS || (regs->cs & SEGMENT_LDT))) {
33765 + printk(KERN_CONT "%08x ", (unsigned int)c);
33766 + printk(KERN_CONT "%08x ", (unsigned int)(c >> 32));
33767 + } else
33768 +#endif
33769 + printk(KERN_CONT "%0*lx ", 2 * (int)sizeof(long), c);
33770 + }
33771 + }
33772 + printk("\n");
33773 +}
33774 +#endif
33775 +
33776 +/**
33777 + * probe_kernel_write(): safely attempt to write to a location
33778 + * @dst: address to write to
33779 + * @src: pointer to the data that shall be written
33780 + * @size: size of the data chunk
33781 + *
33782 + * Safely write to address @dst from the buffer at @src. If a kernel fault
33783 + * happens, handle that and return -EFAULT.
33784 + */
33785 +long notrace probe_kernel_write(void *dst, const void *src, size_t size)
33786 +{
33787 + long ret;
33788 + mm_segment_t old_fs = get_fs();
33789 +
33790 + set_fs(KERNEL_DS);
33791 + pagefault_disable();
33792 + pax_open_kernel();
33793 + ret = __copy_to_user_inatomic((void __force_user *)dst, src, size);
33794 + pax_close_kernel();
33795 + pagefault_enable();
33796 + set_fs(old_fs);
33797 +
33798 + return ret ? -EFAULT : 0;
33799 +}
33800 diff --git a/arch/x86/mm/gup.c b/arch/x86/mm/gup.c
33801 index 81bf3d2..7ef25c2 100644
33802 --- a/arch/x86/mm/gup.c
33803 +++ b/arch/x86/mm/gup.c
33804 @@ -268,7 +268,7 @@ int __get_user_pages_fast(unsigned long start, int nr_pages, int write,
33805 addr = start;
33806 len = (unsigned long) nr_pages << PAGE_SHIFT;
33807 end = start + len;
33808 - if (unlikely(!access_ok(write ? VERIFY_WRITE : VERIFY_READ,
33809 + if (unlikely(!access_ok_noprefault(write ? VERIFY_WRITE : VERIFY_READ,
33810 (void __user *)start, len)))
33811 return 0;
33812
33813 @@ -344,6 +344,10 @@ int get_user_pages_fast(unsigned long start, int nr_pages, int write,
33814 goto slow_irqon;
33815 #endif
33816
33817 + if (unlikely(!access_ok_noprefault(write ? VERIFY_WRITE : VERIFY_READ,
33818 + (void __user *)start, len)))
33819 + return 0;
33820 +
33821 /*
33822 * XXX: batch / limit 'nr', to avoid large irq off latency
33823 * needs some instrumenting to determine the common sizes used by
33824 diff --git a/arch/x86/mm/highmem_32.c b/arch/x86/mm/highmem_32.c
33825 index eecb207a..e76b7f4 100644
33826 --- a/arch/x86/mm/highmem_32.c
33827 +++ b/arch/x86/mm/highmem_32.c
33828 @@ -35,6 +35,8 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
33829 unsigned long vaddr;
33830 int idx, type;
33831
33832 + BUG_ON(pgprot_val(prot) & _PAGE_USER);
33833 +
33834 preempt_disable();
33835 pagefault_disable();
33836
33837 @@ -45,7 +47,11 @@ void *kmap_atomic_prot(struct page *page, pgprot_t prot)
33838 idx = type + KM_TYPE_NR*smp_processor_id();
33839 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
33840 BUG_ON(!pte_none(*(kmap_pte-idx)));
33841 +
33842 + pax_open_kernel();
33843 set_pte(kmap_pte-idx, mk_pte(page, prot));
33844 + pax_close_kernel();
33845 +
33846 arch_flush_lazy_mmu_mode();
33847
33848 return (void *)vaddr;
33849 diff --git a/arch/x86/mm/hugetlbpage.c b/arch/x86/mm/hugetlbpage.c
33850 index 42982b2..7168fc3 100644
33851 --- a/arch/x86/mm/hugetlbpage.c
33852 +++ b/arch/x86/mm/hugetlbpage.c
33853 @@ -74,23 +74,24 @@ int pud_huge(pud_t pud)
33854 #ifdef CONFIG_HUGETLB_PAGE
33855 static unsigned long hugetlb_get_unmapped_area_bottomup(struct file *file,
33856 unsigned long addr, unsigned long len,
33857 - unsigned long pgoff, unsigned long flags)
33858 + unsigned long pgoff, unsigned long flags, unsigned long offset)
33859 {
33860 struct hstate *h = hstate_file(file);
33861 struct vm_unmapped_area_info info;
33862 -
33863 +
33864 info.flags = 0;
33865 info.length = len;
33866 info.low_limit = current->mm->mmap_legacy_base;
33867 info.high_limit = TASK_SIZE;
33868 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
33869 info.align_offset = 0;
33870 + info.threadstack_offset = offset;
33871 return vm_unmapped_area(&info);
33872 }
33873
33874 static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33875 unsigned long addr0, unsigned long len,
33876 - unsigned long pgoff, unsigned long flags)
33877 + unsigned long pgoff, unsigned long flags, unsigned long offset)
33878 {
33879 struct hstate *h = hstate_file(file);
33880 struct vm_unmapped_area_info info;
33881 @@ -102,6 +103,7 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33882 info.high_limit = current->mm->mmap_base;
33883 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
33884 info.align_offset = 0;
33885 + info.threadstack_offset = offset;
33886 addr = vm_unmapped_area(&info);
33887
33888 /*
33889 @@ -114,6 +116,12 @@ static unsigned long hugetlb_get_unmapped_area_topdown(struct file *file,
33890 VM_BUG_ON(addr != -ENOMEM);
33891 info.flags = 0;
33892 info.low_limit = TASK_UNMAPPED_BASE;
33893 +
33894 +#ifdef CONFIG_PAX_RANDMMAP
33895 + if (current->mm->pax_flags & MF_PAX_RANDMMAP)
33896 + info.low_limit += current->mm->delta_mmap;
33897 +#endif
33898 +
33899 info.high_limit = TASK_SIZE;
33900 addr = vm_unmapped_area(&info);
33901 }
33902 @@ -128,10 +136,20 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
33903 struct hstate *h = hstate_file(file);
33904 struct mm_struct *mm = current->mm;
33905 struct vm_area_struct *vma;
33906 + unsigned long pax_task_size = TASK_SIZE;
33907 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
33908
33909 if (len & ~huge_page_mask(h))
33910 return -EINVAL;
33911 - if (len > TASK_SIZE)
33912 +
33913 +#ifdef CONFIG_PAX_SEGMEXEC
33914 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
33915 + pax_task_size = SEGMEXEC_TASK_SIZE;
33916 +#endif
33917 +
33918 + pax_task_size -= PAGE_SIZE;
33919 +
33920 + if (len > pax_task_size)
33921 return -ENOMEM;
33922
33923 if (flags & MAP_FIXED) {
33924 @@ -140,19 +158,22 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
33925 return addr;
33926 }
33927
33928 +#ifdef CONFIG_PAX_RANDMMAP
33929 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
33930 +#endif
33931 +
33932 if (addr) {
33933 addr = ALIGN(addr, huge_page_size(h));
33934 vma = find_vma(mm, addr);
33935 - if (TASK_SIZE - len >= addr &&
33936 - (!vma || addr + len <= vma->vm_start))
33937 + if (pax_task_size - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
33938 return addr;
33939 }
33940 if (mm->get_unmapped_area == arch_get_unmapped_area)
33941 return hugetlb_get_unmapped_area_bottomup(file, addr, len,
33942 - pgoff, flags);
33943 + pgoff, flags, offset);
33944 else
33945 return hugetlb_get_unmapped_area_topdown(file, addr, len,
33946 - pgoff, flags);
33947 + pgoff, flags, offset);
33948 }
33949 #endif /* CONFIG_HUGETLB_PAGE */
33950
33951 diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
33952 index 8533b46..8c83176 100644
33953 --- a/arch/x86/mm/init.c
33954 +++ b/arch/x86/mm/init.c
33955 @@ -4,6 +4,7 @@
33956 #include <linux/swap.h>
33957 #include <linux/memblock.h>
33958 #include <linux/bootmem.h> /* for max_low_pfn */
33959 +#include <linux/tboot.h>
33960
33961 #include <asm/cacheflush.h>
33962 #include <asm/e820.h>
33963 @@ -17,6 +18,8 @@
33964 #include <asm/proto.h>
33965 #include <asm/dma.h> /* for MAX_DMA_PFN */
33966 #include <asm/microcode.h>
33967 +#include <asm/desc.h>
33968 +#include <asm/bios_ebda.h>
33969
33970 /*
33971 * We need to define the tracepoints somewhere, and tlb.c
33972 @@ -615,7 +618,18 @@ void __init init_mem_mapping(void)
33973 early_ioremap_page_table_range_init();
33974 #endif
33975
33976 +#ifdef CONFIG_PAX_PER_CPU_PGD
33977 + clone_pgd_range(get_cpu_pgd(0, kernel) + KERNEL_PGD_BOUNDARY,
33978 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
33979 + KERNEL_PGD_PTRS);
33980 + clone_pgd_range(get_cpu_pgd(0, user) + KERNEL_PGD_BOUNDARY,
33981 + swapper_pg_dir + KERNEL_PGD_BOUNDARY,
33982 + KERNEL_PGD_PTRS);
33983 + load_cr3(get_cpu_pgd(0, kernel));
33984 +#else
33985 load_cr3(swapper_pg_dir);
33986 +#endif
33987 +
33988 __flush_tlb_all();
33989
33990 early_memtest(0, max_pfn_mapped << PAGE_SHIFT);
33991 @@ -631,10 +645,40 @@ void __init init_mem_mapping(void)
33992 * Access has to be given to non-kernel-ram areas as well, these contain the PCI
33993 * mmio resources as well as potential bios/acpi data regions.
33994 */
33995 +
33996 +#ifdef CONFIG_GRKERNSEC_KMEM
33997 +static unsigned int ebda_start __read_only;
33998 +static unsigned int ebda_end __read_only;
33999 +#endif
34000 +
34001 int devmem_is_allowed(unsigned long pagenr)
34002 {
34003 - if (pagenr < 256)
34004 +#ifdef CONFIG_GRKERNSEC_KMEM
34005 + /* allow BDA */
34006 + if (!pagenr)
34007 return 1;
34008 + /* allow EBDA */
34009 + if (pagenr >= ebda_start && pagenr < ebda_end)
34010 + return 1;
34011 + /* if tboot is in use, allow access to its hardcoded serial log range */
34012 + if (tboot_enabled() && ((0x60000 >> PAGE_SHIFT) <= pagenr) && (pagenr < (0x68000 >> PAGE_SHIFT)))
34013 + return 1;
34014 +#else
34015 + if (!pagenr)
34016 + return 1;
34017 +#ifdef CONFIG_VM86
34018 + if (pagenr < (ISA_START_ADDRESS >> PAGE_SHIFT))
34019 + return 1;
34020 +#endif
34021 +#endif
34022 +
34023 + if ((ISA_START_ADDRESS >> PAGE_SHIFT) <= pagenr && pagenr < (ISA_END_ADDRESS >> PAGE_SHIFT))
34024 + return 1;
34025 +#ifdef CONFIG_GRKERNSEC_KMEM
34026 + /* throw out everything else below 1MB */
34027 + if (pagenr <= 256)
34028 + return 0;
34029 +#endif
34030 if (iomem_is_exclusive(pagenr << PAGE_SHIFT))
34031 return 0;
34032 if (!page_is_ram(pagenr))
34033 @@ -680,8 +724,127 @@ void free_init_pages(char *what, unsigned long begin, unsigned long end)
34034 #endif
34035 }
34036
34037 +#ifdef CONFIG_GRKERNSEC_KMEM
34038 +static inline void gr_init_ebda(void)
34039 +{
34040 + unsigned int ebda_addr;
34041 + unsigned int ebda_size = 0;
34042 +
34043 + ebda_addr = get_bios_ebda();
34044 + if (ebda_addr) {
34045 + ebda_size = *(unsigned char *)phys_to_virt(ebda_addr);
34046 + ebda_size <<= 10;
34047 + }
34048 + if (ebda_addr && ebda_size) {
34049 + ebda_start = ebda_addr >> PAGE_SHIFT;
34050 + ebda_end = min((unsigned int)PAGE_ALIGN(ebda_addr + ebda_size), (unsigned int)0xa0000) >> PAGE_SHIFT;
34051 + } else {
34052 + ebda_start = 0x9f000 >> PAGE_SHIFT;
34053 + ebda_end = 0xa0000 >> PAGE_SHIFT;
34054 + }
34055 +}
34056 +#else
34057 +static inline void gr_init_ebda(void) { }
34058 +#endif
34059 +
34060 void free_initmem(void)
34061 {
34062 +#ifdef CONFIG_PAX_KERNEXEC
34063 +#ifdef CONFIG_X86_32
34064 + /* PaX: limit KERNEL_CS to actual size */
34065 + unsigned long addr, limit;
34066 + struct desc_struct d;
34067 + int cpu;
34068 +#else
34069 + pgd_t *pgd;
34070 + pud_t *pud;
34071 + pmd_t *pmd;
34072 + unsigned long addr, end;
34073 +#endif
34074 +#endif
34075 +
34076 + gr_init_ebda();
34077 +
34078 +#ifdef CONFIG_PAX_KERNEXEC
34079 +#ifdef CONFIG_X86_32
34080 + limit = paravirt_enabled() ? ktva_ktla(0xffffffff) : (unsigned long)&_etext;
34081 + limit = (limit - 1UL) >> PAGE_SHIFT;
34082 +
34083 + memset(__LOAD_PHYSICAL_ADDR + PAGE_OFFSET, POISON_FREE_INITMEM, PAGE_SIZE);
34084 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
34085 + pack_descriptor(&d, get_desc_base(&get_cpu_gdt_table(cpu)[GDT_ENTRY_KERNEL_CS]), limit, 0x9B, 0xC);
34086 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEL_CS, &d, DESCTYPE_S);
34087 + write_gdt_entry(get_cpu_gdt_table(cpu), GDT_ENTRY_KERNEXEC_KERNEL_CS, &d, DESCTYPE_S);
34088 + }
34089 +
34090 + /* PaX: make KERNEL_CS read-only */
34091 + addr = PFN_ALIGN(ktla_ktva((unsigned long)&_text));
34092 + if (!paravirt_enabled())
34093 + set_memory_ro(addr, (PFN_ALIGN(_sdata) - addr) >> PAGE_SHIFT);
34094 +/*
34095 + for (addr = ktla_ktva((unsigned long)&_text); addr < (unsigned long)&_sdata; addr += PMD_SIZE) {
34096 + pgd = pgd_offset_k(addr);
34097 + pud = pud_offset(pgd, addr);
34098 + pmd = pmd_offset(pud, addr);
34099 + set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
34100 + }
34101 +*/
34102 +#ifdef CONFIG_X86_PAE
34103 + set_memory_nx(PFN_ALIGN(__init_begin), (PFN_ALIGN(__init_end) - PFN_ALIGN(__init_begin)) >> PAGE_SHIFT);
34104 +/*
34105 + for (addr = (unsigned long)&__init_begin; addr < (unsigned long)&__init_end; addr += PMD_SIZE) {
34106 + pgd = pgd_offset_k(addr);
34107 + pud = pud_offset(pgd, addr);
34108 + pmd = pmd_offset(pud, addr);
34109 + set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask)));
34110 + }
34111 +*/
34112 +#endif
34113 +
34114 +#ifdef CONFIG_MODULES
34115 + set_memory_4k((unsigned long)MODULES_EXEC_VADDR, (MODULES_EXEC_END - MODULES_EXEC_VADDR) >> PAGE_SHIFT);
34116 +#endif
34117 +
34118 +#else
34119 + /* PaX: make kernel code/rodata read-only, rest non-executable */
34120 + set_memory_ro((unsigned long)_text, ((unsigned long)(_sdata - _text) >> PAGE_SHIFT));
34121 + set_memory_nx((unsigned long)_sdata, (__START_KERNEL_map + KERNEL_IMAGE_SIZE - (unsigned long)_sdata) >> PAGE_SHIFT);
34122 +
34123 + for (addr = __START_KERNEL_map; addr < __START_KERNEL_map + KERNEL_IMAGE_SIZE; addr += PMD_SIZE) {
34124 + pgd = pgd_offset_k(addr);
34125 + pud = pud_offset(pgd, addr);
34126 + pmd = pmd_offset(pud, addr);
34127 + if (!pmd_present(*pmd))
34128 + continue;
34129 + if (addr >= (unsigned long)_text)
34130 + BUG_ON(!pmd_large(*pmd));
34131 + if ((unsigned long)_text <= addr && addr < (unsigned long)_sdata)
34132 + BUG_ON(pmd_write(*pmd));
34133 +// set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
34134 + else
34135 + BUG_ON(!(pmd_flags(*pmd) & _PAGE_NX));
34136 +// set_pmd(pmd, __pmd(pmd_val(*pmd) | (_PAGE_NX & __supported_pte_mask)));
34137 + }
34138 +
34139 + addr = (unsigned long)__va(__pa(__START_KERNEL_map));
34140 + end = addr + KERNEL_IMAGE_SIZE;
34141 + for (; addr < end; addr += PMD_SIZE) {
34142 + pgd = pgd_offset_k(addr);
34143 + pud = pud_offset(pgd, addr);
34144 + pmd = pmd_offset(pud, addr);
34145 + if (!pmd_present(*pmd))
34146 + continue;
34147 + if (addr >= (unsigned long)_text)
34148 + BUG_ON(!pmd_large(*pmd));
34149 + if ((unsigned long)__va(__pa(_text)) <= addr && addr < (unsigned long)__va(__pa(_sdata)))
34150 + BUG_ON(pmd_write(*pmd));
34151 +// set_pmd(pmd, __pmd(pmd_val(*pmd) & ~_PAGE_RW));
34152 + }
34153 +#endif
34154 +
34155 + flush_tlb_all();
34156 +#endif
34157 +
34158 free_init_pages("unused kernel",
34159 (unsigned long)(&__init_begin),
34160 (unsigned long)(&__init_end));
34161 diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
34162 index 68aec42..95ad5d3 100644
34163 --- a/arch/x86/mm/init_32.c
34164 +++ b/arch/x86/mm/init_32.c
34165 @@ -62,33 +62,6 @@ static noinline int do_test_wp_bit(void);
34166 bool __read_mostly __vmalloc_start_set = false;
34167
34168 /*
34169 - * Creates a middle page table and puts a pointer to it in the
34170 - * given global directory entry. This only returns the gd entry
34171 - * in non-PAE compilation mode, since the middle layer is folded.
34172 - */
34173 -static pmd_t * __init one_md_table_init(pgd_t *pgd)
34174 -{
34175 - pud_t *pud;
34176 - pmd_t *pmd_table;
34177 -
34178 -#ifdef CONFIG_X86_PAE
34179 - if (!(pgd_val(*pgd) & _PAGE_PRESENT)) {
34180 - pmd_table = (pmd_t *)alloc_low_page();
34181 - paravirt_alloc_pmd(&init_mm, __pa(pmd_table) >> PAGE_SHIFT);
34182 - set_pgd(pgd, __pgd(__pa(pmd_table) | _PAGE_PRESENT));
34183 - pud = pud_offset(pgd, 0);
34184 - BUG_ON(pmd_table != pmd_offset(pud, 0));
34185 -
34186 - return pmd_table;
34187 - }
34188 -#endif
34189 - pud = pud_offset(pgd, 0);
34190 - pmd_table = pmd_offset(pud, 0);
34191 -
34192 - return pmd_table;
34193 -}
34194 -
34195 -/*
34196 * Create a page table and place a pointer to it in a middle page
34197 * directory entry:
34198 */
34199 @@ -98,13 +71,28 @@ static pte_t * __init one_page_table_init(pmd_t *pmd)
34200 pte_t *page_table = (pte_t *)alloc_low_page();
34201
34202 paravirt_alloc_pte(&init_mm, __pa(page_table) >> PAGE_SHIFT);
34203 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
34204 + set_pmd(pmd, __pmd(__pa(page_table) | _KERNPG_TABLE));
34205 +#else
34206 set_pmd(pmd, __pmd(__pa(page_table) | _PAGE_TABLE));
34207 +#endif
34208 BUG_ON(page_table != pte_offset_kernel(pmd, 0));
34209 }
34210
34211 return pte_offset_kernel(pmd, 0);
34212 }
34213
34214 +static pmd_t * __init one_md_table_init(pgd_t *pgd)
34215 +{
34216 + pud_t *pud;
34217 + pmd_t *pmd_table;
34218 +
34219 + pud = pud_offset(pgd, 0);
34220 + pmd_table = pmd_offset(pud, 0);
34221 +
34222 + return pmd_table;
34223 +}
34224 +
34225 pmd_t * __init populate_extra_pmd(unsigned long vaddr)
34226 {
34227 int pgd_idx = pgd_index(vaddr);
34228 @@ -209,6 +197,7 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
34229 int pgd_idx, pmd_idx;
34230 unsigned long vaddr;
34231 pgd_t *pgd;
34232 + pud_t *pud;
34233 pmd_t *pmd;
34234 pte_t *pte = NULL;
34235 unsigned long count = page_table_range_init_count(start, end);
34236 @@ -223,8 +212,13 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
34237 pgd = pgd_base + pgd_idx;
34238
34239 for ( ; (pgd_idx < PTRS_PER_PGD) && (vaddr != end); pgd++, pgd_idx++) {
34240 - pmd = one_md_table_init(pgd);
34241 - pmd = pmd + pmd_index(vaddr);
34242 + pud = pud_offset(pgd, vaddr);
34243 + pmd = pmd_offset(pud, vaddr);
34244 +
34245 +#ifdef CONFIG_X86_PAE
34246 + paravirt_alloc_pmd(&init_mm, __pa(pmd) >> PAGE_SHIFT);
34247 +#endif
34248 +
34249 for (; (pmd_idx < PTRS_PER_PMD) && (vaddr != end);
34250 pmd++, pmd_idx++) {
34251 pte = page_table_kmap_check(one_page_table_init(pmd),
34252 @@ -236,11 +230,20 @@ page_table_range_init(unsigned long start, unsigned long end, pgd_t *pgd_base)
34253 }
34254 }
34255
34256 -static inline int is_kernel_text(unsigned long addr)
34257 +static inline int is_kernel_text(unsigned long start, unsigned long end)
34258 {
34259 - if (addr >= (unsigned long)_text && addr <= (unsigned long)__init_end)
34260 - return 1;
34261 - return 0;
34262 + if ((start >= ktla_ktva((unsigned long)_etext) ||
34263 + end <= ktla_ktva((unsigned long)_stext)) &&
34264 + (start >= ktla_ktva((unsigned long)_einittext) ||
34265 + end <= ktla_ktva((unsigned long)_sinittext)) &&
34266 +
34267 +#ifdef CONFIG_ACPI_SLEEP
34268 + (start >= (unsigned long)__va(acpi_wakeup_address) + 0x4000 || end <= (unsigned long)__va(acpi_wakeup_address)) &&
34269 +#endif
34270 +
34271 + (start > (unsigned long)__va(0xfffff) || end <= (unsigned long)__va(0xc0000)))
34272 + return 0;
34273 + return 1;
34274 }
34275
34276 /*
34277 @@ -257,9 +260,10 @@ kernel_physical_mapping_init(unsigned long start,
34278 unsigned long last_map_addr = end;
34279 unsigned long start_pfn, end_pfn;
34280 pgd_t *pgd_base = swapper_pg_dir;
34281 - int pgd_idx, pmd_idx, pte_ofs;
34282 + unsigned int pgd_idx, pmd_idx, pte_ofs;
34283 unsigned long pfn;
34284 pgd_t *pgd;
34285 + pud_t *pud;
34286 pmd_t *pmd;
34287 pte_t *pte;
34288 unsigned pages_2m, pages_4k;
34289 @@ -292,8 +296,13 @@ repeat:
34290 pfn = start_pfn;
34291 pgd_idx = pgd_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET);
34292 pgd = pgd_base + pgd_idx;
34293 - for (; pgd_idx < PTRS_PER_PGD; pgd++, pgd_idx++) {
34294 - pmd = one_md_table_init(pgd);
34295 + for (; pgd_idx < PTRS_PER_PGD && pfn < max_low_pfn; pgd++, pgd_idx++) {
34296 + pud = pud_offset(pgd, 0);
34297 + pmd = pmd_offset(pud, 0);
34298 +
34299 +#ifdef CONFIG_X86_PAE
34300 + paravirt_alloc_pmd(&init_mm, __pa(pmd) >> PAGE_SHIFT);
34301 +#endif
34302
34303 if (pfn >= end_pfn)
34304 continue;
34305 @@ -305,14 +314,13 @@ repeat:
34306 #endif
34307 for (; pmd_idx < PTRS_PER_PMD && pfn < end_pfn;
34308 pmd++, pmd_idx++) {
34309 - unsigned int addr = pfn * PAGE_SIZE + PAGE_OFFSET;
34310 + unsigned long address = pfn * PAGE_SIZE + PAGE_OFFSET;
34311
34312 /*
34313 * Map with big pages if possible, otherwise
34314 * create normal page tables:
34315 */
34316 if (use_pse) {
34317 - unsigned int addr2;
34318 pgprot_t prot = PAGE_KERNEL_LARGE;
34319 /*
34320 * first pass will use the same initial
34321 @@ -323,11 +331,7 @@ repeat:
34322 _PAGE_PSE);
34323
34324 pfn &= PMD_MASK >> PAGE_SHIFT;
34325 - addr2 = (pfn + PTRS_PER_PTE-1) * PAGE_SIZE +
34326 - PAGE_OFFSET + PAGE_SIZE-1;
34327 -
34328 - if (is_kernel_text(addr) ||
34329 - is_kernel_text(addr2))
34330 + if (is_kernel_text(address, address + PMD_SIZE))
34331 prot = PAGE_KERNEL_LARGE_EXEC;
34332
34333 pages_2m++;
34334 @@ -344,7 +348,7 @@ repeat:
34335 pte_ofs = pte_index((pfn<<PAGE_SHIFT) + PAGE_OFFSET);
34336 pte += pte_ofs;
34337 for (; pte_ofs < PTRS_PER_PTE && pfn < end_pfn;
34338 - pte++, pfn++, pte_ofs++, addr += PAGE_SIZE) {
34339 + pte++, pfn++, pte_ofs++, address += PAGE_SIZE) {
34340 pgprot_t prot = PAGE_KERNEL;
34341 /*
34342 * first pass will use the same initial
34343 @@ -352,7 +356,7 @@ repeat:
34344 */
34345 pgprot_t init_prot = __pgprot(PTE_IDENT_ATTR);
34346
34347 - if (is_kernel_text(addr))
34348 + if (is_kernel_text(address, address + PAGE_SIZE))
34349 prot = PAGE_KERNEL_EXEC;
34350
34351 pages_4k++;
34352 @@ -475,7 +479,7 @@ void __init native_pagetable_init(void)
34353
34354 pud = pud_offset(pgd, va);
34355 pmd = pmd_offset(pud, va);
34356 - if (!pmd_present(*pmd))
34357 + if (!pmd_present(*pmd)) // PAX TODO || pmd_large(*pmd))
34358 break;
34359
34360 /* should not be large page here */
34361 @@ -533,12 +537,10 @@ void __init early_ioremap_page_table_range_init(void)
34362
34363 static void __init pagetable_init(void)
34364 {
34365 - pgd_t *pgd_base = swapper_pg_dir;
34366 -
34367 - permanent_kmaps_init(pgd_base);
34368 + permanent_kmaps_init(swapper_pg_dir);
34369 }
34370
34371 -pteval_t __supported_pte_mask __read_mostly = ~(_PAGE_NX | _PAGE_GLOBAL);
34372 +pteval_t __supported_pte_mask __read_only = ~(_PAGE_NX | _PAGE_GLOBAL);
34373 EXPORT_SYMBOL_GPL(__supported_pte_mask);
34374
34375 /* user-defined highmem size */
34376 @@ -788,10 +790,10 @@ void __init mem_init(void)
34377 ((unsigned long)&__init_end -
34378 (unsigned long)&__init_begin) >> 10,
34379
34380 - (unsigned long)&_etext, (unsigned long)&_edata,
34381 - ((unsigned long)&_edata - (unsigned long)&_etext) >> 10,
34382 + (unsigned long)&_sdata, (unsigned long)&_edata,
34383 + ((unsigned long)&_edata - (unsigned long)&_sdata) >> 10,
34384
34385 - (unsigned long)&_text, (unsigned long)&_etext,
34386 + ktla_ktva((unsigned long)&_text), ktla_ktva((unsigned long)&_etext),
34387 ((unsigned long)&_etext - (unsigned long)&_text) >> 10);
34388
34389 /*
34390 @@ -885,6 +887,7 @@ void set_kernel_text_rw(void)
34391 if (!kernel_set_to_readonly)
34392 return;
34393
34394 + start = ktla_ktva(start);
34395 pr_debug("Set kernel text: %lx - %lx for read write\n",
34396 start, start+size);
34397
34398 @@ -899,6 +902,7 @@ void set_kernel_text_ro(void)
34399 if (!kernel_set_to_readonly)
34400 return;
34401
34402 + start = ktla_ktva(start);
34403 pr_debug("Set kernel text: %lx - %lx for read only\n",
34404 start, start+size);
34405
34406 @@ -927,6 +931,7 @@ void mark_rodata_ro(void)
34407 unsigned long start = PFN_ALIGN(_text);
34408 unsigned long size = PFN_ALIGN(_etext) - start;
34409
34410 + start = ktla_ktva(start);
34411 set_pages_ro(virt_to_page(start), size >> PAGE_SHIFT);
34412 printk(KERN_INFO "Write protecting the kernel text: %luk\n",
34413 size >> 10);
34414 diff --git a/arch/x86/mm/init_64.c b/arch/x86/mm/init_64.c
34415 index f9977a7..21a5082 100644
34416 --- a/arch/x86/mm/init_64.c
34417 +++ b/arch/x86/mm/init_64.c
34418 @@ -136,7 +136,7 @@ int kernel_ident_mapping_init(struct x86_mapping_info *info, pgd_t *pgd_page,
34419 * around without checking the pgd every time.
34420 */
34421
34422 -pteval_t __supported_pte_mask __read_mostly = ~0;
34423 +pteval_t __supported_pte_mask __read_only = ~_PAGE_NX;
34424 EXPORT_SYMBOL_GPL(__supported_pte_mask);
34425
34426 int force_personality32;
34427 @@ -169,7 +169,12 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34428
34429 for (address = start; address <= end; address += PGDIR_SIZE) {
34430 const pgd_t *pgd_ref = pgd_offset_k(address);
34431 +
34432 +#ifdef CONFIG_PAX_PER_CPU_PGD
34433 + unsigned long cpu;
34434 +#else
34435 struct page *page;
34436 +#endif
34437
34438 /*
34439 * When it is called after memory hot remove, pgd_none()
34440 @@ -180,6 +185,25 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34441 continue;
34442
34443 spin_lock(&pgd_lock);
34444 +
34445 +#ifdef CONFIG_PAX_PER_CPU_PGD
34446 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
34447 + pgd_t *pgd = pgd_offset_cpu(cpu, user, address);
34448 +
34449 + if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
34450 + BUG_ON(pgd_page_vaddr(*pgd)
34451 + != pgd_page_vaddr(*pgd_ref));
34452 +
34453 + if (removed) {
34454 + if (pgd_none(*pgd_ref) && !pgd_none(*pgd))
34455 + pgd_clear(pgd);
34456 + } else {
34457 + if (pgd_none(*pgd))
34458 + set_pgd(pgd, *pgd_ref);
34459 + }
34460 +
34461 + pgd = pgd_offset_cpu(cpu, kernel, address);
34462 +#else
34463 list_for_each_entry(page, &pgd_list, lru) {
34464 pgd_t *pgd;
34465 spinlock_t *pgt_lock;
34466 @@ -188,6 +212,7 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34467 /* the pgt_lock only for Xen */
34468 pgt_lock = &pgd_page_get_mm(page)->page_table_lock;
34469 spin_lock(pgt_lock);
34470 +#endif
34471
34472 if (!pgd_none(*pgd_ref) && !pgd_none(*pgd))
34473 BUG_ON(pgd_page_vaddr(*pgd)
34474 @@ -201,7 +226,10 @@ void sync_global_pgds(unsigned long start, unsigned long end, int removed)
34475 set_pgd(pgd, *pgd_ref);
34476 }
34477
34478 +#ifndef CONFIG_PAX_PER_CPU_PGD
34479 spin_unlock(pgt_lock);
34480 +#endif
34481 +
34482 }
34483 spin_unlock(&pgd_lock);
34484 }
34485 @@ -234,7 +262,7 @@ static pud_t *fill_pud(pgd_t *pgd, unsigned long vaddr)
34486 {
34487 if (pgd_none(*pgd)) {
34488 pud_t *pud = (pud_t *)spp_getpage();
34489 - pgd_populate(&init_mm, pgd, pud);
34490 + pgd_populate_kernel(&init_mm, pgd, pud);
34491 if (pud != pud_offset(pgd, 0))
34492 printk(KERN_ERR "PAGETABLE BUG #00! %p <-> %p\n",
34493 pud, pud_offset(pgd, 0));
34494 @@ -246,7 +274,7 @@ static pmd_t *fill_pmd(pud_t *pud, unsigned long vaddr)
34495 {
34496 if (pud_none(*pud)) {
34497 pmd_t *pmd = (pmd_t *) spp_getpage();
34498 - pud_populate(&init_mm, pud, pmd);
34499 + pud_populate_kernel(&init_mm, pud, pmd);
34500 if (pmd != pmd_offset(pud, 0))
34501 printk(KERN_ERR "PAGETABLE BUG #01! %p <-> %p\n",
34502 pmd, pmd_offset(pud, 0));
34503 @@ -275,7 +303,9 @@ void set_pte_vaddr_pud(pud_t *pud_page, unsigned long vaddr, pte_t new_pte)
34504 pmd = fill_pmd(pud, vaddr);
34505 pte = fill_pte(pmd, vaddr);
34506
34507 + pax_open_kernel();
34508 set_pte(pte, new_pte);
34509 + pax_close_kernel();
34510
34511 /*
34512 * It's enough to flush this one mapping.
34513 @@ -337,14 +367,12 @@ static void __init __init_extra_mapping(unsigned long phys, unsigned long size,
34514 pgd = pgd_offset_k((unsigned long)__va(phys));
34515 if (pgd_none(*pgd)) {
34516 pud = (pud_t *) spp_getpage();
34517 - set_pgd(pgd, __pgd(__pa(pud) | _KERNPG_TABLE |
34518 - _PAGE_USER));
34519 + set_pgd(pgd, __pgd(__pa(pud) | _PAGE_TABLE));
34520 }
34521 pud = pud_offset(pgd, (unsigned long)__va(phys));
34522 if (pud_none(*pud)) {
34523 pmd = (pmd_t *) spp_getpage();
34524 - set_pud(pud, __pud(__pa(pmd) | _KERNPG_TABLE |
34525 - _PAGE_USER));
34526 + set_pud(pud, __pud(__pa(pmd) | _PAGE_TABLE));
34527 }
34528 pmd = pmd_offset(pud, phys);
34529 BUG_ON(!pmd_none(*pmd));
34530 @@ -585,7 +613,7 @@ phys_pud_init(pud_t *pud_page, unsigned long addr, unsigned long end,
34531 prot);
34532
34533 spin_lock(&init_mm.page_table_lock);
34534 - pud_populate(&init_mm, pud, pmd);
34535 + pud_populate_kernel(&init_mm, pud, pmd);
34536 spin_unlock(&init_mm.page_table_lock);
34537 }
34538 __flush_tlb_all();
34539 @@ -626,7 +654,7 @@ kernel_physical_mapping_init(unsigned long start,
34540 page_size_mask);
34541
34542 spin_lock(&init_mm.page_table_lock);
34543 - pgd_populate(&init_mm, pgd, pud);
34544 + pgd_populate_kernel(&init_mm, pgd, pud);
34545 spin_unlock(&init_mm.page_table_lock);
34546 pgd_changed = true;
34547 }
34548 diff --git a/arch/x86/mm/iomap_32.c b/arch/x86/mm/iomap_32.c
34549 index 9c0ff04..9020d5f 100644
34550 --- a/arch/x86/mm/iomap_32.c
34551 +++ b/arch/x86/mm/iomap_32.c
34552 @@ -65,7 +65,11 @@ void *kmap_atomic_prot_pfn(unsigned long pfn, pgprot_t prot)
34553 type = kmap_atomic_idx_push();
34554 idx = type + KM_TYPE_NR * smp_processor_id();
34555 vaddr = __fix_to_virt(FIX_KMAP_BEGIN + idx);
34556 +
34557 + pax_open_kernel();
34558 set_pte(kmap_pte - idx, pfn_pte(pfn, prot));
34559 + pax_close_kernel();
34560 +
34561 arch_flush_lazy_mmu_mode();
34562
34563 return (void *)vaddr;
34564 diff --git a/arch/x86/mm/ioremap.c b/arch/x86/mm/ioremap.c
34565 index b9c78f3..9ca7e24 100644
34566 --- a/arch/x86/mm/ioremap.c
34567 +++ b/arch/x86/mm/ioremap.c
34568 @@ -59,8 +59,8 @@ static int __ioremap_check_ram(unsigned long start_pfn, unsigned long nr_pages,
34569 unsigned long i;
34570
34571 for (i = 0; i < nr_pages; ++i)
34572 - if (pfn_valid(start_pfn + i) &&
34573 - !PageReserved(pfn_to_page(start_pfn + i)))
34574 + if (pfn_valid(start_pfn + i) && (start_pfn + i >= 0x100 ||
34575 + !PageReserved(pfn_to_page(start_pfn + i))))
34576 return 1;
34577
34578 return 0;
34579 @@ -332,7 +332,7 @@ EXPORT_SYMBOL(ioremap_prot);
34580 *
34581 * Caller must ensure there is only one unmapping for the same pointer.
34582 */
34583 -void iounmap(volatile void __iomem *addr)
34584 +void iounmap(const volatile void __iomem *addr)
34585 {
34586 struct vm_struct *p, *o;
34587
34588 @@ -395,31 +395,37 @@ int __init arch_ioremap_pmd_supported(void)
34589 */
34590 void *xlate_dev_mem_ptr(phys_addr_t phys)
34591 {
34592 - unsigned long start = phys & PAGE_MASK;
34593 - unsigned long offset = phys & ~PAGE_MASK;
34594 - void *vaddr;
34595 + phys_addr_t pfn = phys >> PAGE_SHIFT;
34596
34597 - /* If page is RAM, we can use __va. Otherwise ioremap and unmap. */
34598 - if (page_is_ram(start >> PAGE_SHIFT))
34599 - return __va(phys);
34600 + if (page_is_ram(pfn)) {
34601 +#ifdef CONFIG_HIGHMEM
34602 + if (pfn >= max_low_pfn)
34603 + return kmap_high(pfn_to_page(pfn));
34604 + else
34605 +#endif
34606 + return __va(phys);
34607 + }
34608
34609 - vaddr = ioremap_cache(start, PAGE_SIZE);
34610 - /* Only add the offset on success and return NULL if the ioremap() failed: */
34611 - if (vaddr)
34612 - vaddr += offset;
34613 -
34614 - return vaddr;
34615 + return (void __force *)ioremap_cache(phys, 1);
34616 }
34617
34618 void unxlate_dev_mem_ptr(phys_addr_t phys, void *addr)
34619 {
34620 - if (page_is_ram(phys >> PAGE_SHIFT))
34621 + phys_addr_t pfn = phys >> PAGE_SHIFT;
34622 +
34623 + if (page_is_ram(pfn)) {
34624 +#ifdef CONFIG_HIGHMEM
34625 + if (pfn >= max_low_pfn)
34626 + kunmap_high(pfn_to_page(pfn));
34627 +#endif
34628 return;
34629 + }
34630
34631 - iounmap((void __iomem *)((unsigned long)addr & PAGE_MASK));
34632 + iounmap((void __iomem __force *)addr);
34633 }
34634
34635 -static pte_t bm_pte[PAGE_SIZE/sizeof(pte_t)] __page_aligned_bss;
34636 +static pte_t __bm_pte[PAGE_SIZE/sizeof(pte_t)] __read_only __aligned(PAGE_SIZE);
34637 +static pte_t *bm_pte __read_only = __bm_pte;
34638
34639 static inline pmd_t * __init early_ioremap_pmd(unsigned long addr)
34640 {
34641 @@ -455,8 +461,14 @@ void __init early_ioremap_init(void)
34642 early_ioremap_setup();
34643
34644 pmd = early_ioremap_pmd(fix_to_virt(FIX_BTMAP_BEGIN));
34645 - memset(bm_pte, 0, sizeof(bm_pte));
34646 - pmd_populate_kernel(&init_mm, pmd, bm_pte);
34647 + if (pmd_none(*pmd))
34648 +#ifdef CONFIG_COMPAT_VDSO
34649 + pmd_populate_user(&init_mm, pmd, __bm_pte);
34650 +#else
34651 + pmd_populate_kernel(&init_mm, pmd, __bm_pte);
34652 +#endif
34653 + else
34654 + bm_pte = (pte_t *)pmd_page_vaddr(*pmd);
34655
34656 /*
34657 * The boot-ioremap range spans multiple pmds, for which
34658 diff --git a/arch/x86/mm/kmemcheck/kmemcheck.c b/arch/x86/mm/kmemcheck/kmemcheck.c
34659 index b4f2e7e..96c9c3e 100644
34660 --- a/arch/x86/mm/kmemcheck/kmemcheck.c
34661 +++ b/arch/x86/mm/kmemcheck/kmemcheck.c
34662 @@ -628,9 +628,9 @@ bool kmemcheck_fault(struct pt_regs *regs, unsigned long address,
34663 * memory (e.g. tracked pages)? For now, we need this to avoid
34664 * invoking kmemcheck for PnP BIOS calls.
34665 */
34666 - if (regs->flags & X86_VM_MASK)
34667 + if (v8086_mode(regs))
34668 return false;
34669 - if (regs->cs != __KERNEL_CS)
34670 + if (regs->cs != __KERNEL_CS && regs->cs != __KERNEXEC_KERNEL_CS)
34671 return false;
34672
34673 pte = kmemcheck_pte_lookup(address);
34674 diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
34675 index 844b06d..f363c86 100644
34676 --- a/arch/x86/mm/mmap.c
34677 +++ b/arch/x86/mm/mmap.c
34678 @@ -52,7 +52,7 @@ static unsigned long stack_maxrandom_size(void)
34679 * Leave an at least ~128 MB hole with possible stack randomization.
34680 */
34681 #define MIN_GAP (128*1024*1024UL + stack_maxrandom_size())
34682 -#define MAX_GAP (TASK_SIZE/6*5)
34683 +#define MAX_GAP (pax_task_size/6*5)
34684
34685 static int mmap_is_legacy(void)
34686 {
34687 @@ -81,27 +81,40 @@ unsigned long arch_mmap_rnd(void)
34688 return rnd << PAGE_SHIFT;
34689 }
34690
34691 -static unsigned long mmap_base(unsigned long rnd)
34692 +static unsigned long mmap_base(struct mm_struct *mm, unsigned long rnd)
34693 {
34694 unsigned long gap = rlimit(RLIMIT_STACK);
34695 + unsigned long pax_task_size = TASK_SIZE;
34696 +
34697 +#ifdef CONFIG_PAX_SEGMEXEC
34698 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
34699 + pax_task_size = SEGMEXEC_TASK_SIZE;
34700 +#endif
34701
34702 if (gap < MIN_GAP)
34703 gap = MIN_GAP;
34704 else if (gap > MAX_GAP)
34705 gap = MAX_GAP;
34706
34707 - return PAGE_ALIGN(TASK_SIZE - gap - rnd);
34708 + return PAGE_ALIGN(pax_task_size - gap - rnd);
34709 }
34710
34711 /*
34712 * Bottom-up (legacy) layout on X86_32 did not support randomization, X86_64
34713 * does, but not when emulating X86_32
34714 */
34715 -static unsigned long mmap_legacy_base(unsigned long rnd)
34716 +static unsigned long mmap_legacy_base(struct mm_struct *mm, unsigned long rnd)
34717 {
34718 - if (mmap_is_ia32())
34719 + if (mmap_is_ia32()) {
34720 +
34721 +#ifdef CONFIG_PAX_SEGMEXEC
34722 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
34723 + return SEGMEXEC_TASK_UNMAPPED_BASE;
34724 + else
34725 +#endif
34726 +
34727 return TASK_UNMAPPED_BASE;
34728 - else
34729 + } else
34730 return TASK_UNMAPPED_BASE + rnd;
34731 }
34732
34733 @@ -113,18 +126,29 @@ void arch_pick_mmap_layout(struct mm_struct *mm)
34734 {
34735 unsigned long random_factor = 0UL;
34736
34737 +#ifdef CONFIG_PAX_RANDMMAP
34738 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
34739 +#endif
34740 if (current->flags & PF_RANDOMIZE)
34741 random_factor = arch_mmap_rnd();
34742
34743 - mm->mmap_legacy_base = mmap_legacy_base(random_factor);
34744 + mm->mmap_legacy_base = mmap_legacy_base(mm, random_factor);
34745
34746 if (mmap_is_legacy()) {
34747 mm->mmap_base = mm->mmap_legacy_base;
34748 mm->get_unmapped_area = arch_get_unmapped_area;
34749 } else {
34750 - mm->mmap_base = mmap_base(random_factor);
34751 + mm->mmap_base = mmap_base(mm, random_factor);
34752 mm->get_unmapped_area = arch_get_unmapped_area_topdown;
34753 }
34754 +
34755 +#ifdef CONFIG_PAX_RANDMMAP
34756 + if (mm->pax_flags & MF_PAX_RANDMMAP) {
34757 + mm->mmap_legacy_base += mm->delta_mmap;
34758 + mm->mmap_base -= mm->delta_mmap + mm->delta_stack;
34759 + }
34760 +#endif
34761 +
34762 }
34763
34764 const char *arch_vma_name(struct vm_area_struct *vma)
34765 diff --git a/arch/x86/mm/mmio-mod.c b/arch/x86/mm/mmio-mod.c
34766 index 0057a7a..95c7edd 100644
34767 --- a/arch/x86/mm/mmio-mod.c
34768 +++ b/arch/x86/mm/mmio-mod.c
34769 @@ -194,7 +194,7 @@ static void pre(struct kmmio_probe *p, struct pt_regs *regs,
34770 break;
34771 default:
34772 {
34773 - unsigned char *ip = (unsigned char *)instptr;
34774 + unsigned char *ip = (unsigned char *)ktla_ktva(instptr);
34775 my_trace->opcode = MMIO_UNKNOWN_OP;
34776 my_trace->width = 0;
34777 my_trace->value = (*ip) << 16 | *(ip + 1) << 8 |
34778 @@ -234,7 +234,7 @@ static void post(struct kmmio_probe *p, unsigned long condition,
34779 static void ioremap_trace_core(resource_size_t offset, unsigned long size,
34780 void __iomem *addr)
34781 {
34782 - static atomic_t next_id;
34783 + static atomic_unchecked_t next_id;
34784 struct remap_trace *trace = kmalloc(sizeof(*trace), GFP_KERNEL);
34785 /* These are page-unaligned. */
34786 struct mmiotrace_map map = {
34787 @@ -258,7 +258,7 @@ static void ioremap_trace_core(resource_size_t offset, unsigned long size,
34788 .private = trace
34789 },
34790 .phys = offset,
34791 - .id = atomic_inc_return(&next_id)
34792 + .id = atomic_inc_return_unchecked(&next_id)
34793 };
34794 map.map_id = trace->id;
34795
34796 @@ -290,7 +290,7 @@ void mmiotrace_ioremap(resource_size_t offset, unsigned long size,
34797 ioremap_trace_core(offset, size, addr);
34798 }
34799
34800 -static void iounmap_trace_core(volatile void __iomem *addr)
34801 +static void iounmap_trace_core(const volatile void __iomem *addr)
34802 {
34803 struct mmiotrace_map map = {
34804 .phys = 0,
34805 @@ -328,7 +328,7 @@ not_enabled:
34806 }
34807 }
34808
34809 -void mmiotrace_iounmap(volatile void __iomem *addr)
34810 +void mmiotrace_iounmap(const volatile void __iomem *addr)
34811 {
34812 might_sleep();
34813 if (is_enabled()) /* recheck and proper locking in *_core() */
34814 diff --git a/arch/x86/mm/numa.c b/arch/x86/mm/numa.c
34815 index 4053bb5..b1ad3dc 100644
34816 --- a/arch/x86/mm/numa.c
34817 +++ b/arch/x86/mm/numa.c
34818 @@ -506,7 +506,7 @@ static void __init numa_clear_kernel_node_hotplug(void)
34819 }
34820 }
34821
34822 -static int __init numa_register_memblks(struct numa_meminfo *mi)
34823 +static int __init __intentional_overflow(-1) numa_register_memblks(struct numa_meminfo *mi)
34824 {
34825 unsigned long uninitialized_var(pfn_align);
34826 int i, nid;
34827 diff --git a/arch/x86/mm/pageattr.c b/arch/x86/mm/pageattr.c
34828 index 727158c..54dd3ff 100644
34829 --- a/arch/x86/mm/pageattr.c
34830 +++ b/arch/x86/mm/pageattr.c
34831 @@ -260,7 +260,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34832 */
34833 #ifdef CONFIG_PCI_BIOS
34834 if (pcibios_enabled && within(pfn, BIOS_BEGIN >> PAGE_SHIFT, BIOS_END >> PAGE_SHIFT))
34835 - pgprot_val(forbidden) |= _PAGE_NX;
34836 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
34837 #endif
34838
34839 /*
34840 @@ -268,9 +268,10 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34841 * Does not cover __inittext since that is gone later on. On
34842 * 64bit we do not enforce !NX on the low mapping
34843 */
34844 - if (within(address, (unsigned long)_text, (unsigned long)_etext))
34845 - pgprot_val(forbidden) |= _PAGE_NX;
34846 + if (within(address, ktla_ktva((unsigned long)_text), ktla_ktva((unsigned long)_etext)))
34847 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
34848
34849 +#ifdef CONFIG_DEBUG_RODATA
34850 /*
34851 * The .rodata section needs to be read-only. Using the pfn
34852 * catches all aliases.
34853 @@ -278,6 +279,7 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34854 if (within(pfn, __pa_symbol(__start_rodata) >> PAGE_SHIFT,
34855 __pa_symbol(__end_rodata) >> PAGE_SHIFT))
34856 pgprot_val(forbidden) |= _PAGE_RW;
34857 +#endif
34858
34859 #if defined(CONFIG_X86_64) && defined(CONFIG_DEBUG_RODATA)
34860 /*
34861 @@ -316,6 +318,13 @@ static inline pgprot_t static_protections(pgprot_t prot, unsigned long address,
34862 }
34863 #endif
34864
34865 +#ifdef CONFIG_PAX_KERNEXEC
34866 + if (within(pfn, __pa(ktla_ktva((unsigned long)&_text)), __pa((unsigned long)&_sdata))) {
34867 + pgprot_val(forbidden) |= _PAGE_RW;
34868 + pgprot_val(forbidden) |= _PAGE_NX & __supported_pte_mask;
34869 + }
34870 +#endif
34871 +
34872 prot = __pgprot(pgprot_val(prot) & ~pgprot_val(forbidden));
34873
34874 return prot;
34875 @@ -436,23 +445,37 @@ EXPORT_SYMBOL_GPL(slow_virt_to_phys);
34876 static void __set_pmd_pte(pte_t *kpte, unsigned long address, pte_t pte)
34877 {
34878 /* change init_mm */
34879 + pax_open_kernel();
34880 set_pte_atomic(kpte, pte);
34881 +
34882 #ifdef CONFIG_X86_32
34883 if (!SHARED_KERNEL_PMD) {
34884 +
34885 +#ifdef CONFIG_PAX_PER_CPU_PGD
34886 + unsigned long cpu;
34887 +#else
34888 struct page *page;
34889 +#endif
34890
34891 +#ifdef CONFIG_PAX_PER_CPU_PGD
34892 + for (cpu = 0; cpu < nr_cpu_ids; ++cpu) {
34893 + pgd_t *pgd = get_cpu_pgd(cpu, kernel);
34894 +#else
34895 list_for_each_entry(page, &pgd_list, lru) {
34896 - pgd_t *pgd;
34897 + pgd_t *pgd = (pgd_t *)page_address(page);
34898 +#endif
34899 +
34900 pud_t *pud;
34901 pmd_t *pmd;
34902
34903 - pgd = (pgd_t *)page_address(page) + pgd_index(address);
34904 + pgd += pgd_index(address);
34905 pud = pud_offset(pgd, address);
34906 pmd = pmd_offset(pud, address);
34907 set_pte_atomic((pte_t *)pmd, pte);
34908 }
34909 }
34910 #endif
34911 + pax_close_kernel();
34912 }
34913
34914 static int
34915 @@ -505,7 +528,8 @@ try_preserve_large_page(pte_t *kpte, unsigned long address,
34916 * up accordingly.
34917 */
34918 old_pte = *kpte;
34919 - old_prot = req_prot = pgprot_large_2_4k(pte_pgprot(old_pte));
34920 + old_prot = pte_pgprot(old_pte);
34921 + req_prot = pgprot_large_2_4k(old_prot);
34922
34923 pgprot_val(req_prot) &= ~pgprot_val(cpa->mask_clr);
34924 pgprot_val(req_prot) |= pgprot_val(cpa->mask_set);
34925 @@ -1176,7 +1200,9 @@ repeat:
34926 * Do we really change anything ?
34927 */
34928 if (pte_val(old_pte) != pte_val(new_pte)) {
34929 + pax_open_kernel();
34930 set_pte_atomic(kpte, new_pte);
34931 + pax_close_kernel();
34932 cpa->flags |= CPA_FLUSHTLB;
34933 }
34934 cpa->numpages = 1;
34935 diff --git a/arch/x86/mm/pat.c b/arch/x86/mm/pat.c
34936 index 188e3e0..5c75446 100644
34937 --- a/arch/x86/mm/pat.c
34938 +++ b/arch/x86/mm/pat.c
34939 @@ -588,7 +588,7 @@ int free_memtype(u64 start, u64 end)
34940
34941 if (!entry) {
34942 pr_info("x86/PAT: %s:%d freeing invalid memtype [mem %#010Lx-%#010Lx]\n",
34943 - current->comm, current->pid, start, end - 1);
34944 + current->comm, task_pid_nr(current), start, end - 1);
34945 return -EINVAL;
34946 }
34947
34948 @@ -711,8 +711,8 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
34949
34950 while (cursor < to) {
34951 if (!devmem_is_allowed(pfn)) {
34952 - pr_info("x86/PAT: Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx], PAT prevents it\n",
34953 - current->comm, from, to - 1);
34954 + pr_info("x86/PAT: Program %s tried to access /dev/mem between [mem %#010Lx-%#010Lx] (%#010Lx), PAT prevents it\n",
34955 + current->comm, from, to - 1, cursor);
34956 return 0;
34957 }
34958 cursor += PAGE_SIZE;
34959 @@ -782,7 +782,7 @@ int kernel_map_sync_memtype(u64 base, unsigned long size,
34960
34961 if (ioremap_change_attr((unsigned long)__va(base), id_sz, pcm) < 0) {
34962 pr_info("x86/PAT: %s:%d ioremap_change_attr failed %s for [mem %#010Lx-%#010Lx]\n",
34963 - current->comm, current->pid,
34964 + current->comm, task_pid_nr(current),
34965 cattr_name(pcm),
34966 base, (unsigned long long)(base + size-1));
34967 return -EINVAL;
34968 @@ -817,7 +817,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
34969 pcm = lookup_memtype(paddr);
34970 if (want_pcm != pcm) {
34971 pr_warn("x86/PAT: %s:%d map pfn RAM range req %s for [mem %#010Lx-%#010Lx], got %s\n",
34972 - current->comm, current->pid,
34973 + current->comm, task_pid_nr(current),
34974 cattr_name(want_pcm),
34975 (unsigned long long)paddr,
34976 (unsigned long long)(paddr + size - 1),
34977 @@ -838,7 +838,7 @@ static int reserve_pfn_range(u64 paddr, unsigned long size, pgprot_t *vma_prot,
34978 !is_new_memtype_allowed(paddr, size, want_pcm, pcm)) {
34979 free_memtype(paddr, paddr + size);
34980 pr_err("x86/PAT: %s:%d map pfn expected mapping type %s for [mem %#010Lx-%#010Lx], got %s\n",
34981 - current->comm, current->pid,
34982 + current->comm, task_pid_nr(current),
34983 cattr_name(want_pcm),
34984 (unsigned long long)paddr,
34985 (unsigned long long)(paddr + size - 1),
34986 diff --git a/arch/x86/mm/pat_rbtree.c b/arch/x86/mm/pat_rbtree.c
34987 index 6393108..890adda 100644
34988 --- a/arch/x86/mm/pat_rbtree.c
34989 +++ b/arch/x86/mm/pat_rbtree.c
34990 @@ -161,7 +161,7 @@ success:
34991
34992 failure:
34993 pr_info("x86/PAT: %s:%d conflicting memory types %Lx-%Lx %s<->%s\n",
34994 - current->comm, current->pid, start, end,
34995 + current->comm, task_pid_nr(current), start, end,
34996 cattr_name(found_type), cattr_name(match->type));
34997 return -EBUSY;
34998 }
34999 diff --git a/arch/x86/mm/pf_in.c b/arch/x86/mm/pf_in.c
35000 index 9f0614d..92ae64a 100644
35001 --- a/arch/x86/mm/pf_in.c
35002 +++ b/arch/x86/mm/pf_in.c
35003 @@ -148,7 +148,7 @@ enum reason_type get_ins_type(unsigned long ins_addr)
35004 int i;
35005 enum reason_type rv = OTHERS;
35006
35007 - p = (unsigned char *)ins_addr;
35008 + p = (unsigned char *)ktla_ktva(ins_addr);
35009 p += skip_prefix(p, &prf);
35010 p += get_opcode(p, &opcode);
35011
35012 @@ -168,7 +168,7 @@ static unsigned int get_ins_reg_width(unsigned long ins_addr)
35013 struct prefix_bits prf;
35014 int i;
35015
35016 - p = (unsigned char *)ins_addr;
35017 + p = (unsigned char *)ktla_ktva(ins_addr);
35018 p += skip_prefix(p, &prf);
35019 p += get_opcode(p, &opcode);
35020
35021 @@ -191,7 +191,7 @@ unsigned int get_ins_mem_width(unsigned long ins_addr)
35022 struct prefix_bits prf;
35023 int i;
35024
35025 - p = (unsigned char *)ins_addr;
35026 + p = (unsigned char *)ktla_ktva(ins_addr);
35027 p += skip_prefix(p, &prf);
35028 p += get_opcode(p, &opcode);
35029
35030 @@ -415,7 +415,7 @@ unsigned long get_ins_reg_val(unsigned long ins_addr, struct pt_regs *regs)
35031 struct prefix_bits prf;
35032 int i;
35033
35034 - p = (unsigned char *)ins_addr;
35035 + p = (unsigned char *)ktla_ktva(ins_addr);
35036 p += skip_prefix(p, &prf);
35037 p += get_opcode(p, &opcode);
35038 for (i = 0; i < ARRAY_SIZE(reg_rop); i++)
35039 @@ -470,7 +470,7 @@ unsigned long get_ins_imm_val(unsigned long ins_addr)
35040 struct prefix_bits prf;
35041 int i;
35042
35043 - p = (unsigned char *)ins_addr;
35044 + p = (unsigned char *)ktla_ktva(ins_addr);
35045 p += skip_prefix(p, &prf);
35046 p += get_opcode(p, &opcode);
35047 for (i = 0; i < ARRAY_SIZE(imm_wop); i++)
35048 diff --git a/arch/x86/mm/pgtable.c b/arch/x86/mm/pgtable.c
35049 index fb0a9dd..5ab49c4 100644
35050 --- a/arch/x86/mm/pgtable.c
35051 +++ b/arch/x86/mm/pgtable.c
35052 @@ -98,10 +98,75 @@ static inline void pgd_list_del(pgd_t *pgd)
35053 list_del(&page->lru);
35054 }
35055
35056 -#define UNSHARED_PTRS_PER_PGD \
35057 - (SHARED_KERNEL_PMD ? KERNEL_PGD_BOUNDARY : PTRS_PER_PGD)
35058 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
35059 +pgdval_t clone_pgd_mask __read_only = ~_PAGE_PRESENT;
35060
35061 +void __shadow_user_pgds(pgd_t *dst, const pgd_t *src)
35062 +{
35063 + unsigned int count = USER_PGD_PTRS;
35064
35065 + if (!pax_user_shadow_base)
35066 + return;
35067 +
35068 + while (count--)
35069 + *dst++ = __pgd((pgd_val(*src++) | (_PAGE_NX & __supported_pte_mask)) & ~_PAGE_USER);
35070 +}
35071 +#endif
35072 +
35073 +#ifdef CONFIG_PAX_PER_CPU_PGD
35074 +void __clone_user_pgds(pgd_t *dst, const pgd_t *src)
35075 +{
35076 + unsigned int count = USER_PGD_PTRS;
35077 +
35078 + while (count--) {
35079 + pgd_t pgd;
35080 +
35081 +#ifdef CONFIG_X86_64
35082 + pgd = __pgd(pgd_val(*src++) | _PAGE_USER);
35083 +#else
35084 + pgd = *src++;
35085 +#endif
35086 +
35087 +#if defined(CONFIG_X86_64) && defined(CONFIG_PAX_MEMORY_UDEREF)
35088 + pgd = __pgd(pgd_val(pgd) & clone_pgd_mask);
35089 +#endif
35090 +
35091 + *dst++ = pgd;
35092 + }
35093 +
35094 +}
35095 +#endif
35096 +
35097 +#ifdef CONFIG_X86_64
35098 +#define pxd_t pud_t
35099 +#define pyd_t pgd_t
35100 +#define paravirt_release_pxd(pfn) paravirt_release_pud(pfn)
35101 +#define pgtable_pxd_page_ctor(page) true
35102 +#define pgtable_pxd_page_dtor(page) do {} while (0)
35103 +#define pxd_free(mm, pud) pud_free((mm), (pud))
35104 +#define pyd_populate(mm, pgd, pud) pgd_populate((mm), (pgd), (pud))
35105 +#define pyd_offset(mm, address) pgd_offset((mm), (address))
35106 +#define PYD_SIZE PGDIR_SIZE
35107 +#define mm_inc_nr_pxds(mm) do {} while (0)
35108 +#define mm_dec_nr_pxds(mm) do {} while (0)
35109 +#else
35110 +#define pxd_t pmd_t
35111 +#define pyd_t pud_t
35112 +#define paravirt_release_pxd(pfn) paravirt_release_pmd(pfn)
35113 +#define pgtable_pxd_page_ctor(page) pgtable_pmd_page_ctor(page)
35114 +#define pgtable_pxd_page_dtor(page) pgtable_pmd_page_dtor(page)
35115 +#define pxd_free(mm, pud) pmd_free((mm), (pud))
35116 +#define pyd_populate(mm, pgd, pud) pud_populate((mm), (pgd), (pud))
35117 +#define pyd_offset(mm, address) pud_offset((mm), (address))
35118 +#define PYD_SIZE PUD_SIZE
35119 +#define mm_inc_nr_pxds(mm) mm_inc_nr_pmds(mm)
35120 +#define mm_dec_nr_pxds(mm) mm_dec_nr_pmds(mm)
35121 +#endif
35122 +
35123 +#ifdef CONFIG_PAX_PER_CPU_PGD
35124 +static inline void pgd_ctor(struct mm_struct *mm, pgd_t *pgd) {}
35125 +static inline void pgd_dtor(pgd_t *pgd) {}
35126 +#else
35127 static void pgd_set_mm(pgd_t *pgd, struct mm_struct *mm)
35128 {
35129 BUILD_BUG_ON(sizeof(virt_to_page(pgd)->index) < sizeof(mm));
35130 @@ -142,6 +207,7 @@ static void pgd_dtor(pgd_t *pgd)
35131 pgd_list_del(pgd);
35132 spin_unlock(&pgd_lock);
35133 }
35134 +#endif
35135
35136 /*
35137 * List of all pgd's needed for non-PAE so it can invalidate entries
35138 @@ -154,7 +220,7 @@ static void pgd_dtor(pgd_t *pgd)
35139 * -- nyc
35140 */
35141
35142 -#ifdef CONFIG_X86_PAE
35143 +#if defined(CONFIG_X86_32) && defined(CONFIG_X86_PAE)
35144 /*
35145 * In PAE mode, we need to do a cr3 reload (=tlb flush) when
35146 * updating the top-level pagetable entries to guarantee the
35147 @@ -166,7 +232,7 @@ static void pgd_dtor(pgd_t *pgd)
35148 * not shared between pagetables (!SHARED_KERNEL_PMDS), we allocate
35149 * and initialize the kernel pmds here.
35150 */
35151 -#define PREALLOCATED_PMDS UNSHARED_PTRS_PER_PGD
35152 +#define PREALLOCATED_PXDS (SHARED_KERNEL_PMD ? KERNEL_PGD_BOUNDARY : PTRS_PER_PGD)
35153
35154 void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
35155 {
35156 @@ -184,46 +250,48 @@ void pud_populate(struct mm_struct *mm, pud_t *pudp, pmd_t *pmd)
35157 */
35158 flush_tlb_mm(mm);
35159 }
35160 +#elif defined(CONFIG_X86_64) && defined(CONFIG_PAX_PER_CPU_PGD)
35161 +#define PREALLOCATED_PXDS USER_PGD_PTRS
35162 #else /* !CONFIG_X86_PAE */
35163
35164 /* No need to prepopulate any pagetable entries in non-PAE modes. */
35165 -#define PREALLOCATED_PMDS 0
35166 +#define PREALLOCATED_PXDS 0
35167
35168 #endif /* CONFIG_X86_PAE */
35169
35170 -static void free_pmds(struct mm_struct *mm, pmd_t *pmds[])
35171 +static void free_pxds(struct mm_struct *mm, pxd_t *pxds[])
35172 {
35173 int i;
35174
35175 - for(i = 0; i < PREALLOCATED_PMDS; i++)
35176 - if (pmds[i]) {
35177 - pgtable_pmd_page_dtor(virt_to_page(pmds[i]));
35178 - free_page((unsigned long)pmds[i]);
35179 - mm_dec_nr_pmds(mm);
35180 + for(i = 0; i < PREALLOCATED_PXDS; i++)
35181 + if (pxds[i]) {
35182 + pgtable_pxd_page_dtor(virt_to_page(pxds[i]));
35183 + free_page((unsigned long)pxds[i]);
35184 + mm_dec_nr_pxds(mm);
35185 }
35186 }
35187
35188 -static int preallocate_pmds(struct mm_struct *mm, pmd_t *pmds[])
35189 +static int preallocate_pxds(struct mm_struct *mm, pxd_t *pxds[])
35190 {
35191 int i;
35192 bool failed = false;
35193
35194 - for(i = 0; i < PREALLOCATED_PMDS; i++) {
35195 - pmd_t *pmd = (pmd_t *)__get_free_page(PGALLOC_GFP);
35196 - if (!pmd)
35197 + for(i = 0; i < PREALLOCATED_PXDS; i++) {
35198 + pxd_t *pxd = (pxd_t *)__get_free_page(PGALLOC_GFP);
35199 + if (!pxd)
35200 failed = true;
35201 - if (pmd && !pgtable_pmd_page_ctor(virt_to_page(pmd))) {
35202 - free_page((unsigned long)pmd);
35203 - pmd = NULL;
35204 + if (pxd && !pgtable_pxd_page_ctor(virt_to_page(pxd))) {
35205 + free_page((unsigned long)pxd);
35206 + pxd = NULL;
35207 failed = true;
35208 }
35209 - if (pmd)
35210 - mm_inc_nr_pmds(mm);
35211 - pmds[i] = pmd;
35212 + if (pxd)
35213 + mm_inc_nr_pxds(mm);
35214 + pxds[i] = pxd;
35215 }
35216
35217 if (failed) {
35218 - free_pmds(mm, pmds);
35219 + free_pxds(mm, pxds);
35220 return -ENOMEM;
35221 }
35222
35223 @@ -236,43 +304,47 @@ static int preallocate_pmds(struct mm_struct *mm, pmd_t *pmds[])
35224 * preallocate which never got a corresponding vma will need to be
35225 * freed manually.
35226 */
35227 -static void pgd_mop_up_pmds(struct mm_struct *mm, pgd_t *pgdp)
35228 +static void pgd_mop_up_pxds(struct mm_struct *mm, pgd_t *pgdp)
35229 {
35230 int i;
35231
35232 - for(i = 0; i < PREALLOCATED_PMDS; i++) {
35233 + for(i = 0; i < PREALLOCATED_PXDS; i++) {
35234 pgd_t pgd = pgdp[i];
35235
35236 if (pgd_val(pgd) != 0) {
35237 - pmd_t *pmd = (pmd_t *)pgd_page_vaddr(pgd);
35238 + pxd_t *pxd = (pxd_t *)pgd_page_vaddr(pgd);
35239
35240 - pgdp[i] = native_make_pgd(0);
35241 + set_pgd(pgdp + i, native_make_pgd(0));
35242
35243 - paravirt_release_pmd(pgd_val(pgd) >> PAGE_SHIFT);
35244 - pmd_free(mm, pmd);
35245 - mm_dec_nr_pmds(mm);
35246 + paravirt_release_pxd(pgd_val(pgd) >> PAGE_SHIFT);
35247 + pxd_free(mm, pxd);
35248 + mm_dec_nr_pxds(mm);
35249 }
35250 }
35251 }
35252
35253 -static void pgd_prepopulate_pmd(struct mm_struct *mm, pgd_t *pgd, pmd_t *pmds[])
35254 +static void pgd_prepopulate_pxd(struct mm_struct *mm, pgd_t *pgd, pxd_t *pxds[])
35255 {
35256 - pud_t *pud;
35257 + pyd_t *pyd;
35258 int i;
35259
35260 - if (PREALLOCATED_PMDS == 0) /* Work around gcc-3.4.x bug */
35261 + if (PREALLOCATED_PXDS == 0) /* Work around gcc-3.4.x bug */
35262 return;
35263
35264 - pud = pud_offset(pgd, 0);
35265 +#ifdef CONFIG_X86_64
35266 + pyd = pyd_offset(mm, 0L);
35267 +#else
35268 + pyd = pyd_offset(pgd, 0L);
35269 +#endif
35270
35271 - for (i = 0; i < PREALLOCATED_PMDS; i++, pud++) {
35272 - pmd_t *pmd = pmds[i];
35273 + for (i = 0; i < PREALLOCATED_PXDS; i++, pyd++) {
35274 + pxd_t *pxd = pxds[i];
35275
35276 if (i >= KERNEL_PGD_BOUNDARY)
35277 - memcpy(pmd, (pmd_t *)pgd_page_vaddr(swapper_pg_dir[i]),
35278 - sizeof(pmd_t) * PTRS_PER_PMD);
35279 + memcpy(pxd, (pxd_t *)pgd_page_vaddr(swapper_pg_dir[i]),
35280 + sizeof(pxd_t) * PTRS_PER_PMD);
35281
35282 - pud_populate(mm, pud, pmd);
35283 + pyd_populate(mm, pyd, pxd);
35284 }
35285 }
35286
35287 @@ -354,7 +426,7 @@ static inline void _pgd_free(pgd_t *pgd)
35288 pgd_t *pgd_alloc(struct mm_struct *mm)
35289 {
35290 pgd_t *pgd;
35291 - pmd_t *pmds[PREALLOCATED_PMDS];
35292 + pxd_t *pxds[PREALLOCATED_PXDS];
35293
35294 pgd = _pgd_alloc();
35295
35296 @@ -363,11 +435,11 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
35297
35298 mm->pgd = pgd;
35299
35300 - if (preallocate_pmds(mm, pmds) != 0)
35301 + if (preallocate_pxds(mm, pxds) != 0)
35302 goto out_free_pgd;
35303
35304 if (paravirt_pgd_alloc(mm) != 0)
35305 - goto out_free_pmds;
35306 + goto out_free_pxds;
35307
35308 /*
35309 * Make sure that pre-populating the pmds is atomic with
35310 @@ -377,14 +449,14 @@ pgd_t *pgd_alloc(struct mm_struct *mm)
35311 spin_lock(&pgd_lock);
35312
35313 pgd_ctor(mm, pgd);
35314 - pgd_prepopulate_pmd(mm, pgd, pmds);
35315 + pgd_prepopulate_pxd(mm, pgd, pxds);
35316
35317 spin_unlock(&pgd_lock);
35318
35319 return pgd;
35320
35321 -out_free_pmds:
35322 - free_pmds(mm, pmds);
35323 +out_free_pxds:
35324 + free_pxds(mm, pxds);
35325 out_free_pgd:
35326 _pgd_free(pgd);
35327 out:
35328 @@ -393,7 +465,7 @@ out:
35329
35330 void pgd_free(struct mm_struct *mm, pgd_t *pgd)
35331 {
35332 - pgd_mop_up_pmds(mm, pgd);
35333 + pgd_mop_up_pxds(mm, pgd);
35334 pgd_dtor(pgd);
35335 paravirt_pgd_free(mm, pgd);
35336 _pgd_free(pgd);
35337 @@ -544,6 +616,55 @@ void __init reserve_top_address(unsigned long reserve)
35338
35339 int fixmaps_set;
35340
35341 +static void fix_user_fixmap(enum fixed_addresses idx, unsigned long address)
35342 +{
35343 +#ifdef CONFIG_X86_64
35344 + pgd_t *pgd;
35345 + pud_t *pud;
35346 + pmd_t *pmd;
35347 +
35348 + switch (idx) {
35349 + default:
35350 + return;
35351 +
35352 +#ifdef CONFIG_X86_VSYSCALL_EMULATION
35353 + case VSYSCALL_PAGE:
35354 + break;
35355 +#endif
35356 +
35357 +#ifdef CONFIG_PARAVIRT_CLOCK
35358 + case PVCLOCK_FIXMAP_BEGIN ... PVCLOCK_FIXMAP_END:
35359 + break;
35360 +#endif
35361 + }
35362 +
35363 + pgd = pgd_offset_k(address);
35364 + if (!(pgd_val(*pgd) & _PAGE_USER)) {
35365 +#ifdef CONFIG_PAX_PER_CPU_PGD
35366 + unsigned int cpu;
35367 + pgd_t *pgd_cpu;
35368 +
35369 + for_each_possible_cpu(cpu) {
35370 + pgd_cpu = pgd_offset_cpu(cpu, kernel, address);
35371 + set_pgd(pgd_cpu, __pgd(pgd_val(*pgd_cpu) | _PAGE_USER));
35372 +
35373 + pgd_cpu = pgd_offset_cpu(cpu, user, address);
35374 + set_pgd(pgd_cpu, __pgd(pgd_val(*pgd_cpu) | _PAGE_USER));
35375 + }
35376 +#endif
35377 + set_pgd(pgd, __pgd(pgd_val(*pgd) | _PAGE_USER));
35378 + }
35379 +
35380 + pud = pud_offset(pgd, address);
35381 + if (!(pud_val(*pud) & _PAGE_USER))
35382 + set_pud(pud, __pud(pud_val(*pud) | _PAGE_USER));
35383 +
35384 + pmd = pmd_offset(pud, address);
35385 + if (!(pmd_val(*pmd) & _PAGE_USER))
35386 + set_pmd(pmd, __pmd(pmd_val(*pmd) | _PAGE_USER));
35387 +#endif
35388 +}
35389 +
35390 void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
35391 {
35392 unsigned long address = __fix_to_virt(idx);
35393 @@ -554,6 +675,7 @@ void __native_set_fixmap(enum fixed_addresses idx, pte_t pte)
35394 }
35395 set_pte_vaddr(address, pte);
35396 fixmaps_set++;
35397 + fix_user_fixmap(idx, address);
35398 }
35399
35400 void native_set_fixmap(enum fixed_addresses idx, phys_addr_t phys,
35401 @@ -620,9 +742,11 @@ int pmd_set_huge(pmd_t *pmd, phys_addr_t addr, pgprot_t prot)
35402
35403 prot = pgprot_4k_2_large(prot);
35404
35405 + pax_open_kernel();
35406 set_pte((pte_t *)pmd, pfn_pte(
35407 (u64)addr >> PAGE_SHIFT,
35408 __pgprot(pgprot_val(prot) | _PAGE_PSE)));
35409 + pax_close_kernel();
35410
35411 return 1;
35412 }
35413 diff --git a/arch/x86/mm/pgtable_32.c b/arch/x86/mm/pgtable_32.c
35414 index 75cc097..79a097f 100644
35415 --- a/arch/x86/mm/pgtable_32.c
35416 +++ b/arch/x86/mm/pgtable_32.c
35417 @@ -47,10 +47,13 @@ void set_pte_vaddr(unsigned long vaddr, pte_t pteval)
35418 return;
35419 }
35420 pte = pte_offset_kernel(pmd, vaddr);
35421 +
35422 + pax_open_kernel();
35423 if (pte_val(pteval))
35424 set_pte_at(&init_mm, vaddr, pte, pteval);
35425 else
35426 pte_clear(&init_mm, vaddr, pte);
35427 + pax_close_kernel();
35428
35429 /*
35430 * It's enough to flush this one mapping.
35431 diff --git a/arch/x86/mm/setup_nx.c b/arch/x86/mm/setup_nx.c
35432 index 90555bf..f5f1828 100644
35433 --- a/arch/x86/mm/setup_nx.c
35434 +++ b/arch/x86/mm/setup_nx.c
35435 @@ -5,8 +5,10 @@
35436 #include <asm/pgtable.h>
35437 #include <asm/proto.h>
35438
35439 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
35440 static int disable_nx;
35441
35442 +#ifndef CONFIG_PAX_PAGEEXEC
35443 /*
35444 * noexec = on|off
35445 *
35446 @@ -28,12 +30,17 @@ static int __init noexec_setup(char *str)
35447 return 0;
35448 }
35449 early_param("noexec", noexec_setup);
35450 +#endif
35451 +
35452 +#endif
35453
35454 void x86_configure_nx(void)
35455 {
35456 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
35457 if (cpu_has_nx && !disable_nx)
35458 __supported_pte_mask |= _PAGE_NX;
35459 else
35460 +#endif
35461 __supported_pte_mask &= ~_PAGE_NX;
35462 }
35463
35464 diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c
35465 index 90b924a..4197ac2 100644
35466 --- a/arch/x86/mm/tlb.c
35467 +++ b/arch/x86/mm/tlb.c
35468 @@ -45,7 +45,11 @@ void leave_mm(int cpu)
35469 BUG();
35470 if (cpumask_test_cpu(cpu, mm_cpumask(active_mm))) {
35471 cpumask_clear_cpu(cpu, mm_cpumask(active_mm));
35472 +
35473 +#ifndef CONFIG_PAX_PER_CPU_PGD
35474 load_cr3(swapper_pg_dir);
35475 +#endif
35476 +
35477 /*
35478 * This gets called in the idle path where RCU
35479 * functions differently. Tracing normally
35480 diff --git a/arch/x86/mm/uderef_64.c b/arch/x86/mm/uderef_64.c
35481 new file mode 100644
35482 index 0000000..3fda3f3
35483 --- /dev/null
35484 +++ b/arch/x86/mm/uderef_64.c
35485 @@ -0,0 +1,37 @@
35486 +#include <linux/mm.h>
35487 +#include <asm/pgtable.h>
35488 +#include <asm/uaccess.h>
35489 +
35490 +#ifdef CONFIG_PAX_MEMORY_UDEREF
35491 +/* PaX: due to the special call convention these functions must
35492 + * - remain leaf functions under all configurations,
35493 + * - never be called directly, only dereferenced from the wrappers.
35494 + */
35495 +void __used __pax_open_userland(void)
35496 +{
35497 + unsigned int cpu;
35498 +
35499 + if (unlikely(!segment_eq(get_fs(), USER_DS)))
35500 + return;
35501 +
35502 + cpu = raw_get_cpu();
35503 + BUG_ON((read_cr3() & ~PAGE_MASK) != PCID_KERNEL);
35504 + write_cr3(__pa_nodebug(get_cpu_pgd(cpu, user)) | PCID_USER | PCID_NOFLUSH);
35505 + raw_put_cpu_no_resched();
35506 +}
35507 +EXPORT_SYMBOL(__pax_open_userland);
35508 +
35509 +void __used __pax_close_userland(void)
35510 +{
35511 + unsigned int cpu;
35512 +
35513 + if (unlikely(!segment_eq(get_fs(), USER_DS)))
35514 + return;
35515 +
35516 + cpu = raw_get_cpu();
35517 + BUG_ON((read_cr3() & ~PAGE_MASK) != PCID_USER);
35518 + write_cr3(__pa_nodebug(get_cpu_pgd(cpu, kernel)) | PCID_KERNEL | PCID_NOFLUSH);
35519 + raw_put_cpu_no_resched();
35520 +}
35521 +EXPORT_SYMBOL(__pax_close_userland);
35522 +#endif
35523 diff --git a/arch/x86/net/bpf_jit.S b/arch/x86/net/bpf_jit.S
35524 index 4093216..44b6b83 100644
35525 --- a/arch/x86/net/bpf_jit.S
35526 +++ b/arch/x86/net/bpf_jit.S
35527 @@ -8,6 +8,7 @@
35528 * of the License.
35529 */
35530 #include <linux/linkage.h>
35531 +#include <asm/alternative-asm.h>
35532
35533 /*
35534 * Calling convention :
35535 @@ -37,6 +38,7 @@ sk_load_word_positive_offset:
35536 jle bpf_slow_path_word
35537 mov (SKBDATA,%rsi),%eax
35538 bswap %eax /* ntohl() */
35539 + pax_force_retaddr
35540 ret
35541
35542 sk_load_half:
35543 @@ -54,6 +56,7 @@ sk_load_half_positive_offset:
35544 jle bpf_slow_path_half
35545 movzwl (SKBDATA,%rsi),%eax
35546 rol $8,%ax # ntohs()
35547 + pax_force_retaddr
35548 ret
35549
35550 sk_load_byte:
35551 @@ -68,6 +71,7 @@ sk_load_byte_positive_offset:
35552 cmp %esi,%r9d /* if (offset >= hlen) goto bpf_slow_path_byte */
35553 jle bpf_slow_path_byte
35554 movzbl (SKBDATA,%rsi),%eax
35555 + pax_force_retaddr
35556 ret
35557
35558 /* rsi contains offset and can be scratched */
35559 @@ -89,6 +93,7 @@ bpf_slow_path_word:
35560 js bpf_error
35561 mov - MAX_BPF_STACK + 32(%rbp),%eax
35562 bswap %eax
35563 + pax_force_retaddr
35564 ret
35565
35566 bpf_slow_path_half:
35567 @@ -97,12 +102,14 @@ bpf_slow_path_half:
35568 mov - MAX_BPF_STACK + 32(%rbp),%ax
35569 rol $8,%ax
35570 movzwl %ax,%eax
35571 + pax_force_retaddr
35572 ret
35573
35574 bpf_slow_path_byte:
35575 bpf_slow_path_common(1)
35576 js bpf_error
35577 movzbl - MAX_BPF_STACK + 32(%rbp),%eax
35578 + pax_force_retaddr
35579 ret
35580
35581 #define sk_negative_common(SIZE) \
35582 @@ -125,6 +132,7 @@ sk_load_word_negative_offset:
35583 sk_negative_common(4)
35584 mov (%rax), %eax
35585 bswap %eax
35586 + pax_force_retaddr
35587 ret
35588
35589 bpf_slow_path_half_neg:
35590 @@ -136,6 +144,7 @@ sk_load_half_negative_offset:
35591 mov (%rax),%ax
35592 rol $8,%ax
35593 movzwl %ax,%eax
35594 + pax_force_retaddr
35595 ret
35596
35597 bpf_slow_path_byte_neg:
35598 @@ -145,6 +154,7 @@ sk_load_byte_negative_offset:
35599 .globl sk_load_byte_negative_offset
35600 sk_negative_common(1)
35601 movzbl (%rax), %eax
35602 + pax_force_retaddr
35603 ret
35604
35605 bpf_error:
35606 @@ -155,4 +165,5 @@ bpf_error:
35607 mov - MAX_BPF_STACK + 16(%rbp),%r14
35608 mov - MAX_BPF_STACK + 24(%rbp),%r15
35609 leaveq
35610 + pax_force_retaddr
35611 ret
35612 diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
35613 index be2e7a2..e6960dd 100644
35614 --- a/arch/x86/net/bpf_jit_comp.c
35615 +++ b/arch/x86/net/bpf_jit_comp.c
35616 @@ -14,7 +14,11 @@
35617 #include <asm/cacheflush.h>
35618 #include <linux/bpf.h>
35619
35620 +#ifdef CONFIG_GRKERNSEC_BPF_HARDEN
35621 +int bpf_jit_enable __read_only;
35622 +#else
35623 int bpf_jit_enable __read_mostly;
35624 +#endif
35625
35626 /*
35627 * assembly code in arch/x86/net/bpf_jit.S
35628 @@ -176,7 +180,9 @@ static u8 add_2reg(u8 byte, u32 dst_reg, u32 src_reg)
35629 static void jit_fill_hole(void *area, unsigned int size)
35630 {
35631 /* fill whole space with int3 instructions */
35632 + pax_open_kernel();
35633 memset(area, 0xcc, size);
35634 + pax_close_kernel();
35635 }
35636
35637 struct jit_context {
35638 @@ -1026,7 +1032,9 @@ common_load:
35639 pr_err("bpf_jit_compile fatal error\n");
35640 return -EFAULT;
35641 }
35642 + pax_open_kernel();
35643 memcpy(image + proglen, temp, ilen);
35644 + pax_close_kernel();
35645 }
35646 proglen += ilen;
35647 addrs[i] = proglen;
35648 @@ -1103,7 +1111,6 @@ void bpf_int_jit_compile(struct bpf_prog *prog)
35649
35650 if (image) {
35651 bpf_flush_icache(header, image + proglen);
35652 - set_memory_ro((unsigned long)header, header->pages);
35653 prog->bpf_func = (void *)image;
35654 prog->jited = true;
35655 }
35656 @@ -1116,12 +1123,8 @@ void bpf_jit_free(struct bpf_prog *fp)
35657 unsigned long addr = (unsigned long)fp->bpf_func & PAGE_MASK;
35658 struct bpf_binary_header *header = (void *)addr;
35659
35660 - if (!fp->jited)
35661 - goto free_filter;
35662 + if (fp->jited)
35663 + bpf_jit_binary_free(header);
35664
35665 - set_memory_rw(addr, header->pages);
35666 - bpf_jit_binary_free(header);
35667 -
35668 -free_filter:
35669 bpf_prog_unlock_free(fp);
35670 }
35671 diff --git a/arch/x86/oprofile/backtrace.c b/arch/x86/oprofile/backtrace.c
35672 index 4e664bd..2beeaa2 100644
35673 --- a/arch/x86/oprofile/backtrace.c
35674 +++ b/arch/x86/oprofile/backtrace.c
35675 @@ -46,11 +46,11 @@ dump_user_backtrace_32(struct stack_frame_ia32 *head)
35676 struct stack_frame_ia32 *fp;
35677 unsigned long bytes;
35678
35679 - bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead));
35680 + bytes = copy_from_user_nmi(bufhead, (const char __force_user *)head, sizeof(bufhead));
35681 if (bytes != 0)
35682 return NULL;
35683
35684 - fp = (struct stack_frame_ia32 *) compat_ptr(bufhead[0].next_frame);
35685 + fp = (struct stack_frame_ia32 __force_kernel *) compat_ptr(bufhead[0].next_frame);
35686
35687 oprofile_add_trace(bufhead[0].return_address);
35688
35689 @@ -92,7 +92,7 @@ static struct stack_frame *dump_user_backtrace(struct stack_frame *head)
35690 struct stack_frame bufhead[2];
35691 unsigned long bytes;
35692
35693 - bytes = copy_from_user_nmi(bufhead, head, sizeof(bufhead));
35694 + bytes = copy_from_user_nmi(bufhead, (const char __force_user *)head, sizeof(bufhead));
35695 if (bytes != 0)
35696 return NULL;
35697
35698 diff --git a/arch/x86/oprofile/nmi_int.c b/arch/x86/oprofile/nmi_int.c
35699 index 1d2e639..f6ef82a 100644
35700 --- a/arch/x86/oprofile/nmi_int.c
35701 +++ b/arch/x86/oprofile/nmi_int.c
35702 @@ -23,6 +23,7 @@
35703 #include <asm/nmi.h>
35704 #include <asm/msr.h>
35705 #include <asm/apic.h>
35706 +#include <asm/pgtable.h>
35707
35708 #include "op_counter.h"
35709 #include "op_x86_model.h"
35710 @@ -785,8 +786,11 @@ int __init op_nmi_init(struct oprofile_operations *ops)
35711 if (ret)
35712 return ret;
35713
35714 - if (!model->num_virt_counters)
35715 - model->num_virt_counters = model->num_counters;
35716 + if (!model->num_virt_counters) {
35717 + pax_open_kernel();
35718 + *(unsigned int *)&model->num_virt_counters = model->num_counters;
35719 + pax_close_kernel();
35720 + }
35721
35722 mux_init(ops);
35723
35724 diff --git a/arch/x86/oprofile/op_model_amd.c b/arch/x86/oprofile/op_model_amd.c
35725 index 50d86c0..7985318 100644
35726 --- a/arch/x86/oprofile/op_model_amd.c
35727 +++ b/arch/x86/oprofile/op_model_amd.c
35728 @@ -519,9 +519,11 @@ static int op_amd_init(struct oprofile_operations *ops)
35729 num_counters = AMD64_NUM_COUNTERS;
35730 }
35731
35732 - op_amd_spec.num_counters = num_counters;
35733 - op_amd_spec.num_controls = num_counters;
35734 - op_amd_spec.num_virt_counters = max(num_counters, NUM_VIRT_COUNTERS);
35735 + pax_open_kernel();
35736 + *(unsigned int *)&op_amd_spec.num_counters = num_counters;
35737 + *(unsigned int *)&op_amd_spec.num_controls = num_counters;
35738 + *(unsigned int *)&op_amd_spec.num_virt_counters = max(num_counters, NUM_VIRT_COUNTERS);
35739 + pax_close_kernel();
35740
35741 return 0;
35742 }
35743 diff --git a/arch/x86/oprofile/op_model_ppro.c b/arch/x86/oprofile/op_model_ppro.c
35744 index d90528e..0127e2b 100644
35745 --- a/arch/x86/oprofile/op_model_ppro.c
35746 +++ b/arch/x86/oprofile/op_model_ppro.c
35747 @@ -19,6 +19,7 @@
35748 #include <asm/msr.h>
35749 #include <asm/apic.h>
35750 #include <asm/nmi.h>
35751 +#include <asm/pgtable.h>
35752
35753 #include "op_x86_model.h"
35754 #include "op_counter.h"
35755 @@ -221,8 +222,10 @@ static void arch_perfmon_setup_counters(void)
35756
35757 num_counters = min((int)eax.split.num_counters, OP_MAX_COUNTER);
35758
35759 - op_arch_perfmon_spec.num_counters = num_counters;
35760 - op_arch_perfmon_spec.num_controls = num_counters;
35761 + pax_open_kernel();
35762 + *(unsigned int *)&op_arch_perfmon_spec.num_counters = num_counters;
35763 + *(unsigned int *)&op_arch_perfmon_spec.num_controls = num_counters;
35764 + pax_close_kernel();
35765 }
35766
35767 static int arch_perfmon_init(struct oprofile_operations *ignore)
35768 diff --git a/arch/x86/oprofile/op_x86_model.h b/arch/x86/oprofile/op_x86_model.h
35769 index 71e8a67..6a313bb 100644
35770 --- a/arch/x86/oprofile/op_x86_model.h
35771 +++ b/arch/x86/oprofile/op_x86_model.h
35772 @@ -52,7 +52,7 @@ struct op_x86_model_spec {
35773 void (*switch_ctrl)(struct op_x86_model_spec const *model,
35774 struct op_msrs const * const msrs);
35775 #endif
35776 -};
35777 +} __do_const;
35778
35779 struct op_counter_config;
35780
35781 diff --git a/arch/x86/pci/intel_mid_pci.c b/arch/x86/pci/intel_mid_pci.c
35782 index 7553921..d631bd4 100644
35783 --- a/arch/x86/pci/intel_mid_pci.c
35784 +++ b/arch/x86/pci/intel_mid_pci.c
35785 @@ -278,7 +278,7 @@ int __init intel_mid_pci_init(void)
35786 pci_mmcfg_late_init();
35787 pcibios_enable_irq = intel_mid_pci_irq_enable;
35788 pcibios_disable_irq = intel_mid_pci_irq_disable;
35789 - pci_root_ops = intel_mid_pci_ops;
35790 + memcpy((void *)&pci_root_ops, &intel_mid_pci_ops, sizeof pci_root_ops);
35791 pci_soc_mode = 1;
35792 /* Continue with standard init */
35793 return 1;
35794 diff --git a/arch/x86/pci/irq.c b/arch/x86/pci/irq.c
35795 index 9bd1154..e9d4656 100644
35796 --- a/arch/x86/pci/irq.c
35797 +++ b/arch/x86/pci/irq.c
35798 @@ -51,7 +51,7 @@ struct irq_router {
35799 struct irq_router_handler {
35800 u16 vendor;
35801 int (*probe)(struct irq_router *r, struct pci_dev *router, u16 device);
35802 -};
35803 +} __do_const;
35804
35805 int (*pcibios_enable_irq)(struct pci_dev *dev) = pirq_enable_irq;
35806 void (*pcibios_disable_irq)(struct pci_dev *dev) = pirq_disable_irq;
35807 @@ -792,7 +792,7 @@ static __init int pico_router_probe(struct irq_router *r, struct pci_dev *router
35808 return 0;
35809 }
35810
35811 -static __initdata struct irq_router_handler pirq_routers[] = {
35812 +static __initconst const struct irq_router_handler pirq_routers[] = {
35813 { PCI_VENDOR_ID_INTEL, intel_router_probe },
35814 { PCI_VENDOR_ID_AL, ali_router_probe },
35815 { PCI_VENDOR_ID_ITE, ite_router_probe },
35816 @@ -819,7 +819,7 @@ static struct pci_dev *pirq_router_dev;
35817 static void __init pirq_find_router(struct irq_router *r)
35818 {
35819 struct irq_routing_table *rt = pirq_table;
35820 - struct irq_router_handler *h;
35821 + const struct irq_router_handler *h;
35822
35823 #ifdef CONFIG_PCI_BIOS
35824 if (!rt->signature) {
35825 @@ -1092,7 +1092,7 @@ static int __init fix_acer_tm360_irqrouting(const struct dmi_system_id *d)
35826 return 0;
35827 }
35828
35829 -static struct dmi_system_id __initdata pciirq_dmi_table[] = {
35830 +static const struct dmi_system_id __initconst pciirq_dmi_table[] = {
35831 {
35832 .callback = fix_broken_hp_bios_irq9,
35833 .ident = "HP Pavilion N5400 Series Laptop",
35834 diff --git a/arch/x86/pci/pcbios.c b/arch/x86/pci/pcbios.c
35835 index 9b83b90..2c256c5 100644
35836 --- a/arch/x86/pci/pcbios.c
35837 +++ b/arch/x86/pci/pcbios.c
35838 @@ -79,7 +79,7 @@ union bios32 {
35839 static struct {
35840 unsigned long address;
35841 unsigned short segment;
35842 -} bios32_indirect __initdata = { 0, __KERNEL_CS };
35843 +} bios32_indirect __initdata = { 0, __PCIBIOS_CS };
35844
35845 /*
35846 * Returns the entry point for the given service, NULL on error
35847 @@ -92,37 +92,80 @@ static unsigned long __init bios32_service(unsigned long service)
35848 unsigned long length; /* %ecx */
35849 unsigned long entry; /* %edx */
35850 unsigned long flags;
35851 + struct desc_struct d, *gdt;
35852
35853 local_irq_save(flags);
35854 - __asm__("lcall *(%%edi); cld"
35855 +
35856 + gdt = get_cpu_gdt_table(smp_processor_id());
35857 +
35858 + pack_descriptor(&d, 0UL, 0xFFFFFUL, 0x9B, 0xC);
35859 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_CS, &d, DESCTYPE_S);
35860 + pack_descriptor(&d, 0UL, 0xFFFFFUL, 0x93, 0xC);
35861 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_DS, &d, DESCTYPE_S);
35862 +
35863 + __asm__("movw %w7, %%ds; lcall *(%%edi); push %%ss; pop %%ds; cld"
35864 : "=a" (return_code),
35865 "=b" (address),
35866 "=c" (length),
35867 "=d" (entry)
35868 : "0" (service),
35869 "1" (0),
35870 - "D" (&bios32_indirect));
35871 + "D" (&bios32_indirect),
35872 + "r"(__PCIBIOS_DS)
35873 + : "memory");
35874 +
35875 + pax_open_kernel();
35876 + gdt[GDT_ENTRY_PCIBIOS_CS].a = 0;
35877 + gdt[GDT_ENTRY_PCIBIOS_CS].b = 0;
35878 + gdt[GDT_ENTRY_PCIBIOS_DS].a = 0;
35879 + gdt[GDT_ENTRY_PCIBIOS_DS].b = 0;
35880 + pax_close_kernel();
35881 +
35882 local_irq_restore(flags);
35883
35884 switch (return_code) {
35885 - case 0:
35886 - return address + entry;
35887 - case 0x80: /* Not present */
35888 - printk(KERN_WARNING "bios32_service(0x%lx): not present\n", service);
35889 - return 0;
35890 - default: /* Shouldn't happen */
35891 - printk(KERN_WARNING "bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
35892 - service, return_code);
35893 + case 0: {
35894 + int cpu;
35895 + unsigned char flags;
35896 +
35897 + printk(KERN_INFO "bios32_service: base:%08lx length:%08lx entry:%08lx\n", address, length, entry);
35898 + if (address >= 0xFFFF0 || length > 0x100000 - address || length <= entry) {
35899 + printk(KERN_WARNING "bios32_service: not valid\n");
35900 return 0;
35901 + }
35902 + address = address + PAGE_OFFSET;
35903 + length += 16UL; /* some BIOSs underreport this... */
35904 + flags = 4;
35905 + if (length >= 64*1024*1024) {
35906 + length >>= PAGE_SHIFT;
35907 + flags |= 8;
35908 + }
35909 +
35910 + for (cpu = 0; cpu < nr_cpu_ids; cpu++) {
35911 + gdt = get_cpu_gdt_table(cpu);
35912 + pack_descriptor(&d, address, length, 0x9b, flags);
35913 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_CS, &d, DESCTYPE_S);
35914 + pack_descriptor(&d, address, length, 0x93, flags);
35915 + write_gdt_entry(gdt, GDT_ENTRY_PCIBIOS_DS, &d, DESCTYPE_S);
35916 + }
35917 + return entry;
35918 + }
35919 + case 0x80: /* Not present */
35920 + printk(KERN_WARNING "bios32_service(0x%lx): not present\n", service);
35921 + return 0;
35922 + default: /* Shouldn't happen */
35923 + printk(KERN_WARNING "bios32_service(0x%lx): returned 0x%x -- BIOS bug!\n",
35924 + service, return_code);
35925 + return 0;
35926 }
35927 }
35928
35929 static struct {
35930 unsigned long address;
35931 unsigned short segment;
35932 -} pci_indirect = { 0, __KERNEL_CS };
35933 +} pci_indirect __read_only = { 0, __PCIBIOS_CS };
35934
35935 -static int pci_bios_present;
35936 +static int pci_bios_present __read_only;
35937
35938 static int __init check_pcibios(void)
35939 {
35940 @@ -131,11 +174,13 @@ static int __init check_pcibios(void)
35941 unsigned long flags, pcibios_entry;
35942
35943 if ((pcibios_entry = bios32_service(PCI_SERVICE))) {
35944 - pci_indirect.address = pcibios_entry + PAGE_OFFSET;
35945 + pci_indirect.address = pcibios_entry;
35946
35947 local_irq_save(flags);
35948 - __asm__(
35949 - "lcall *(%%edi); cld\n\t"
35950 + __asm__("movw %w6, %%ds\n\t"
35951 + "lcall *%%ss:(%%edi); cld\n\t"
35952 + "push %%ss\n\t"
35953 + "pop %%ds\n\t"
35954 "jc 1f\n\t"
35955 "xor %%ah, %%ah\n"
35956 "1:"
35957 @@ -144,7 +189,8 @@ static int __init check_pcibios(void)
35958 "=b" (ebx),
35959 "=c" (ecx)
35960 : "1" (PCIBIOS_PCI_BIOS_PRESENT),
35961 - "D" (&pci_indirect)
35962 + "D" (&pci_indirect),
35963 + "r" (__PCIBIOS_DS)
35964 : "memory");
35965 local_irq_restore(flags);
35966
35967 @@ -189,7 +235,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35968
35969 switch (len) {
35970 case 1:
35971 - __asm__("lcall *(%%esi); cld\n\t"
35972 + __asm__("movw %w6, %%ds\n\t"
35973 + "lcall *%%ss:(%%esi); cld\n\t"
35974 + "push %%ss\n\t"
35975 + "pop %%ds\n\t"
35976 "jc 1f\n\t"
35977 "xor %%ah, %%ah\n"
35978 "1:"
35979 @@ -198,7 +247,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35980 : "1" (PCIBIOS_READ_CONFIG_BYTE),
35981 "b" (bx),
35982 "D" ((long)reg),
35983 - "S" (&pci_indirect));
35984 + "S" (&pci_indirect),
35985 + "r" (__PCIBIOS_DS));
35986 /*
35987 * Zero-extend the result beyond 8 bits, do not trust the
35988 * BIOS having done it:
35989 @@ -206,7 +256,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
35990 *value &= 0xff;
35991 break;
35992 case 2:
35993 - __asm__("lcall *(%%esi); cld\n\t"
35994 + __asm__("movw %w6, %%ds\n\t"
35995 + "lcall *%%ss:(%%esi); cld\n\t"
35996 + "push %%ss\n\t"
35997 + "pop %%ds\n\t"
35998 "jc 1f\n\t"
35999 "xor %%ah, %%ah\n"
36000 "1:"
36001 @@ -215,7 +268,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
36002 : "1" (PCIBIOS_READ_CONFIG_WORD),
36003 "b" (bx),
36004 "D" ((long)reg),
36005 - "S" (&pci_indirect));
36006 + "S" (&pci_indirect),
36007 + "r" (__PCIBIOS_DS));
36008 /*
36009 * Zero-extend the result beyond 16 bits, do not trust the
36010 * BIOS having done it:
36011 @@ -223,7 +277,10 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
36012 *value &= 0xffff;
36013 break;
36014 case 4:
36015 - __asm__("lcall *(%%esi); cld\n\t"
36016 + __asm__("movw %w6, %%ds\n\t"
36017 + "lcall *%%ss:(%%esi); cld\n\t"
36018 + "push %%ss\n\t"
36019 + "pop %%ds\n\t"
36020 "jc 1f\n\t"
36021 "xor %%ah, %%ah\n"
36022 "1:"
36023 @@ -232,7 +289,8 @@ static int pci_bios_read(unsigned int seg, unsigned int bus,
36024 : "1" (PCIBIOS_READ_CONFIG_DWORD),
36025 "b" (bx),
36026 "D" ((long)reg),
36027 - "S" (&pci_indirect));
36028 + "S" (&pci_indirect),
36029 + "r" (__PCIBIOS_DS));
36030 break;
36031 }
36032
36033 @@ -256,7 +314,10 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
36034
36035 switch (len) {
36036 case 1:
36037 - __asm__("lcall *(%%esi); cld\n\t"
36038 + __asm__("movw %w6, %%ds\n\t"
36039 + "lcall *%%ss:(%%esi); cld\n\t"
36040 + "push %%ss\n\t"
36041 + "pop %%ds\n\t"
36042 "jc 1f\n\t"
36043 "xor %%ah, %%ah\n"
36044 "1:"
36045 @@ -265,10 +326,14 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
36046 "c" (value),
36047 "b" (bx),
36048 "D" ((long)reg),
36049 - "S" (&pci_indirect));
36050 + "S" (&pci_indirect),
36051 + "r" (__PCIBIOS_DS));
36052 break;
36053 case 2:
36054 - __asm__("lcall *(%%esi); cld\n\t"
36055 + __asm__("movw %w6, %%ds\n\t"
36056 + "lcall *%%ss:(%%esi); cld\n\t"
36057 + "push %%ss\n\t"
36058 + "pop %%ds\n\t"
36059 "jc 1f\n\t"
36060 "xor %%ah, %%ah\n"
36061 "1:"
36062 @@ -277,10 +342,14 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
36063 "c" (value),
36064 "b" (bx),
36065 "D" ((long)reg),
36066 - "S" (&pci_indirect));
36067 + "S" (&pci_indirect),
36068 + "r" (__PCIBIOS_DS));
36069 break;
36070 case 4:
36071 - __asm__("lcall *(%%esi); cld\n\t"
36072 + __asm__("movw %w6, %%ds\n\t"
36073 + "lcall *%%ss:(%%esi); cld\n\t"
36074 + "push %%ss\n\t"
36075 + "pop %%ds\n\t"
36076 "jc 1f\n\t"
36077 "xor %%ah, %%ah\n"
36078 "1:"
36079 @@ -289,7 +358,8 @@ static int pci_bios_write(unsigned int seg, unsigned int bus,
36080 "c" (value),
36081 "b" (bx),
36082 "D" ((long)reg),
36083 - "S" (&pci_indirect));
36084 + "S" (&pci_indirect),
36085 + "r" (__PCIBIOS_DS));
36086 break;
36087 }
36088
36089 @@ -394,10 +464,13 @@ struct irq_routing_table * pcibios_get_irq_routing_table(void)
36090
36091 DBG("PCI: Fetching IRQ routing table... ");
36092 __asm__("push %%es\n\t"
36093 + "movw %w8, %%ds\n\t"
36094 "push %%ds\n\t"
36095 "pop %%es\n\t"
36096 - "lcall *(%%esi); cld\n\t"
36097 + "lcall *%%ss:(%%esi); cld\n\t"
36098 "pop %%es\n\t"
36099 + "push %%ss\n\t"
36100 + "pop %%ds\n"
36101 "jc 1f\n\t"
36102 "xor %%ah, %%ah\n"
36103 "1:"
36104 @@ -408,7 +481,8 @@ struct irq_routing_table * pcibios_get_irq_routing_table(void)
36105 "1" (0),
36106 "D" ((long) &opt),
36107 "S" (&pci_indirect),
36108 - "m" (opt)
36109 + "m" (opt),
36110 + "r" (__PCIBIOS_DS)
36111 : "memory");
36112 DBG("OK ret=%d, size=%d, map=%x\n", ret, opt.size, map);
36113 if (ret & 0xff00)
36114 @@ -432,7 +506,10 @@ int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq)
36115 {
36116 int ret;
36117
36118 - __asm__("lcall *(%%esi); cld\n\t"
36119 + __asm__("movw %w5, %%ds\n\t"
36120 + "lcall *%%ss:(%%esi); cld\n\t"
36121 + "push %%ss\n\t"
36122 + "pop %%ds\n"
36123 "jc 1f\n\t"
36124 "xor %%ah, %%ah\n"
36125 "1:"
36126 @@ -440,7 +517,8 @@ int pcibios_set_irq_routing(struct pci_dev *dev, int pin, int irq)
36127 : "0" (PCIBIOS_SET_PCI_HW_INT),
36128 "b" ((dev->bus->number << 8) | dev->devfn),
36129 "c" ((irq << 8) | (pin + 10)),
36130 - "S" (&pci_indirect));
36131 + "S" (&pci_indirect),
36132 + "r" (__PCIBIOS_DS));
36133 return !(ret & 0xff00);
36134 }
36135 EXPORT_SYMBOL(pcibios_set_irq_routing);
36136 diff --git a/arch/x86/platform/efi/efi_32.c b/arch/x86/platform/efi/efi_32.c
36137 index ed5b673..24d2d53 100644
36138 --- a/arch/x86/platform/efi/efi_32.c
36139 +++ b/arch/x86/platform/efi/efi_32.c
36140 @@ -61,11 +61,27 @@ pgd_t * __init efi_call_phys_prolog(void)
36141 struct desc_ptr gdt_descr;
36142 pgd_t *save_pgd;
36143
36144 +#ifdef CONFIG_PAX_KERNEXEC
36145 + struct desc_struct d;
36146 +#endif
36147 +
36148 /* Current pgd is swapper_pg_dir, we'll restore it later: */
36149 +#ifdef CONFIG_PAX_PER_CPU_PGD
36150 + save_pgd = get_cpu_pgd(smp_processor_id(), kernel);
36151 +#else
36152 save_pgd = swapper_pg_dir;
36153 +#endif
36154 +
36155 load_cr3(initial_page_table);
36156 __flush_tlb_all();
36157
36158 +#ifdef CONFIG_PAX_KERNEXEC
36159 + pack_descriptor(&d, 0, 0xFFFFF, 0x9B, 0xC);
36160 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_CS, &d, DESCTYPE_S);
36161 + pack_descriptor(&d, 0, 0xFFFFF, 0x93, 0xC);
36162 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_DS, &d, DESCTYPE_S);
36163 +#endif
36164 +
36165 gdt_descr.address = __pa(get_cpu_gdt_table(0));
36166 gdt_descr.size = GDT_SIZE - 1;
36167 load_gdt(&gdt_descr);
36168 @@ -77,6 +93,14 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd)
36169 {
36170 struct desc_ptr gdt_descr;
36171
36172 +#ifdef CONFIG_PAX_KERNEXEC
36173 + struct desc_struct d;
36174 +
36175 + memset(&d, 0, sizeof d);
36176 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_CS, &d, DESCTYPE_S);
36177 + write_gdt_entry(get_cpu_gdt_table(0), GDT_ENTRY_KERNEXEC_EFI_DS, &d, DESCTYPE_S);
36178 +#endif
36179 +
36180 gdt_descr.address = (unsigned long)get_cpu_gdt_table(0);
36181 gdt_descr.size = GDT_SIZE - 1;
36182 load_gdt(&gdt_descr);
36183 diff --git a/arch/x86/platform/efi/efi_64.c b/arch/x86/platform/efi/efi_64.c
36184 index a0ac0f9..f41d324 100644
36185 --- a/arch/x86/platform/efi/efi_64.c
36186 +++ b/arch/x86/platform/efi/efi_64.c
36187 @@ -96,6 +96,11 @@ pgd_t * __init efi_call_phys_prolog(void)
36188 vaddress = (unsigned long)__va(pgd * PGDIR_SIZE);
36189 set_pgd(pgd_offset_k(pgd * PGDIR_SIZE), *pgd_offset_k(vaddress));
36190 }
36191 +
36192 +#ifdef CONFIG_PAX_PER_CPU_PGD
36193 + load_cr3(swapper_pg_dir);
36194 +#endif
36195 +
36196 __flush_tlb_all();
36197
36198 return save_pgd;
36199 @@ -119,6 +124,10 @@ void __init efi_call_phys_epilog(pgd_t *save_pgd)
36200
36201 kfree(save_pgd);
36202
36203 +#ifdef CONFIG_PAX_PER_CPU_PGD
36204 + load_cr3(get_cpu_pgd(smp_processor_id(), kernel));
36205 +#endif
36206 +
36207 __flush_tlb_all();
36208 early_code_mapping_set_exec(0);
36209 }
36210 @@ -148,8 +157,23 @@ int __init efi_setup_page_tables(unsigned long pa_memmap, unsigned num_pages)
36211 unsigned npages;
36212 pgd_t *pgd;
36213
36214 - if (efi_enabled(EFI_OLD_MEMMAP))
36215 + if (efi_enabled(EFI_OLD_MEMMAP)) {
36216 + /* PaX: We need to disable the NX bit in the PGD, otherwise we won't be
36217 + * able to execute the EFI services.
36218 + */
36219 + if (__supported_pte_mask & _PAGE_NX) {
36220 + unsigned long addr = (unsigned long) __va(0);
36221 + pgd_t pe = __pgd(pgd_val(*pgd_offset_k(addr)) & ~_PAGE_NX);
36222 +
36223 + pr_alert("PAX: Disabling NX protection for low memory map. Try booting without \"efi=old_map\"\n");
36224 +#ifdef CONFIG_PAX_PER_CPU_PGD
36225 + set_pgd(pgd_offset_cpu(0, kernel, addr), pe);
36226 +#endif
36227 + set_pgd(pgd_offset_k(addr), pe);
36228 + }
36229 +
36230 return 0;
36231 + }
36232
36233 efi_scratch.efi_pgt = (pgd_t *)(unsigned long)real_mode_header->trampoline_pgd;
36234 pgd = __va(efi_scratch.efi_pgt);
36235 diff --git a/arch/x86/platform/efi/efi_stub_32.S b/arch/x86/platform/efi/efi_stub_32.S
36236 index 040192b..7d3300f 100644
36237 --- a/arch/x86/platform/efi/efi_stub_32.S
36238 +++ b/arch/x86/platform/efi/efi_stub_32.S
36239 @@ -6,7 +6,9 @@
36240 */
36241
36242 #include <linux/linkage.h>
36243 +#include <linux/init.h>
36244 #include <asm/page_types.h>
36245 +#include <asm/segment.h>
36246
36247 /*
36248 * efi_call_phys(void *, ...) is a function with variable parameters.
36249 @@ -20,7 +22,7 @@
36250 * service functions will comply with gcc calling convention, too.
36251 */
36252
36253 -.text
36254 +__INIT
36255 ENTRY(efi_call_phys)
36256 /*
36257 * 0. The function can only be called in Linux kernel. So CS has been
36258 @@ -36,10 +38,24 @@ ENTRY(efi_call_phys)
36259 * The mapping of lower virtual memory has been created in prolog and
36260 * epilog.
36261 */
36262 - movl $1f, %edx
36263 - subl $__PAGE_OFFSET, %edx
36264 - jmp *%edx
36265 +#ifdef CONFIG_PAX_KERNEXEC
36266 + movl $(__KERNEXEC_EFI_DS), %edx
36267 + mov %edx, %ds
36268 + mov %edx, %es
36269 + mov %edx, %ss
36270 + addl $2f,(1f)
36271 + ljmp *(1f)
36272 +
36273 +__INITDATA
36274 +1: .long __LOAD_PHYSICAL_ADDR, __KERNEXEC_EFI_CS
36275 +.previous
36276 +
36277 +2:
36278 + subl $2b,(1b)
36279 +#else
36280 + jmp 1f-__PAGE_OFFSET
36281 1:
36282 +#endif
36283
36284 /*
36285 * 2. Now on the top of stack is the return
36286 @@ -47,14 +63,8 @@ ENTRY(efi_call_phys)
36287 * parameter 2, ..., param n. To make things easy, we save the return
36288 * address of efi_call_phys in a global variable.
36289 */
36290 - popl %edx
36291 - movl %edx, saved_return_addr
36292 - /* get the function pointer into ECX*/
36293 - popl %ecx
36294 - movl %ecx, efi_rt_function_ptr
36295 - movl $2f, %edx
36296 - subl $__PAGE_OFFSET, %edx
36297 - pushl %edx
36298 + popl (saved_return_addr)
36299 + popl (efi_rt_function_ptr)
36300
36301 /*
36302 * 3. Clear PG bit in %CR0.
36303 @@ -73,9 +83,8 @@ ENTRY(efi_call_phys)
36304 /*
36305 * 5. Call the physical function.
36306 */
36307 - jmp *%ecx
36308 + call *(efi_rt_function_ptr-__PAGE_OFFSET)
36309
36310 -2:
36311 /*
36312 * 6. After EFI runtime service returns, control will return to
36313 * following instruction. We'd better readjust stack pointer first.
36314 @@ -88,35 +97,36 @@ ENTRY(efi_call_phys)
36315 movl %cr0, %edx
36316 orl $0x80000000, %edx
36317 movl %edx, %cr0
36318 - jmp 1f
36319 -1:
36320 +
36321 /*
36322 * 8. Now restore the virtual mode from flat mode by
36323 * adding EIP with PAGE_OFFSET.
36324 */
36325 - movl $1f, %edx
36326 - jmp *%edx
36327 +#ifdef CONFIG_PAX_KERNEXEC
36328 + movl $(__KERNEL_DS), %edx
36329 + mov %edx, %ds
36330 + mov %edx, %es
36331 + mov %edx, %ss
36332 + ljmp $(__KERNEL_CS),$1f
36333 +#else
36334 + jmp 1f+__PAGE_OFFSET
36335 +#endif
36336 1:
36337
36338 /*
36339 * 9. Balance the stack. And because EAX contain the return value,
36340 * we'd better not clobber it.
36341 */
36342 - leal efi_rt_function_ptr, %edx
36343 - movl (%edx), %ecx
36344 - pushl %ecx
36345 + pushl (efi_rt_function_ptr)
36346
36347 /*
36348 - * 10. Push the saved return address onto the stack and return.
36349 + * 10. Return to the saved return address.
36350 */
36351 - leal saved_return_addr, %edx
36352 - movl (%edx), %ecx
36353 - pushl %ecx
36354 - ret
36355 + jmpl *(saved_return_addr)
36356 ENDPROC(efi_call_phys)
36357 .previous
36358
36359 -.data
36360 +__INITDATA
36361 saved_return_addr:
36362 .long 0
36363 efi_rt_function_ptr:
36364 diff --git a/arch/x86/platform/efi/efi_stub_64.S b/arch/x86/platform/efi/efi_stub_64.S
36365 index 86d0f9e..6d499f4 100644
36366 --- a/arch/x86/platform/efi/efi_stub_64.S
36367 +++ b/arch/x86/platform/efi/efi_stub_64.S
36368 @@ -11,6 +11,7 @@
36369 #include <asm/msr.h>
36370 #include <asm/processor-flags.h>
36371 #include <asm/page_types.h>
36372 +#include <asm/alternative-asm.h>
36373
36374 #define SAVE_XMM \
36375 mov %rsp, %rax; \
36376 @@ -88,6 +89,7 @@ ENTRY(efi_call)
36377 RESTORE_PGT
36378 addq $48, %rsp
36379 RESTORE_XMM
36380 + pax_force_retaddr 0, 1
36381 ret
36382 ENDPROC(efi_call)
36383
36384 diff --git a/arch/x86/platform/intel-mid/intel-mid.c b/arch/x86/platform/intel-mid/intel-mid.c
36385 index 01d54ea..ba1d71c 100644
36386 --- a/arch/x86/platform/intel-mid/intel-mid.c
36387 +++ b/arch/x86/platform/intel-mid/intel-mid.c
36388 @@ -63,7 +63,7 @@ enum intel_mid_timer_options intel_mid_timer_options;
36389 /* intel_mid_ops to store sub arch ops */
36390 struct intel_mid_ops *intel_mid_ops;
36391 /* getter function for sub arch ops*/
36392 -static void *(*get_intel_mid_ops[])(void) = INTEL_MID_OPS_INIT;
36393 +static const void *(*get_intel_mid_ops[])(void) = INTEL_MID_OPS_INIT;
36394 enum intel_mid_cpu_type __intel_mid_cpu_chip;
36395 EXPORT_SYMBOL_GPL(__intel_mid_cpu_chip);
36396
36397 @@ -71,9 +71,10 @@ static void intel_mid_power_off(void)
36398 {
36399 };
36400
36401 -static void intel_mid_reboot(void)
36402 +static void __noreturn intel_mid_reboot(void)
36403 {
36404 intel_scu_ipc_simple_command(IPCMSG_COLD_BOOT, 0);
36405 + BUG();
36406 }
36407
36408 static unsigned long __init intel_mid_calibrate_tsc(void)
36409 diff --git a/arch/x86/platform/intel-mid/intel_mid_weak_decls.h b/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36410 index 3c1c386..59a68ed 100644
36411 --- a/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36412 +++ b/arch/x86/platform/intel-mid/intel_mid_weak_decls.h
36413 @@ -13,6 +13,6 @@
36414 /* For every CPU addition a new get_<cpuname>_ops interface needs
36415 * to be added.
36416 */
36417 -extern void *get_penwell_ops(void);
36418 -extern void *get_cloverview_ops(void);
36419 -extern void *get_tangier_ops(void);
36420 +extern const void *get_penwell_ops(void);
36421 +extern const void *get_cloverview_ops(void);
36422 +extern const void *get_tangier_ops(void);
36423 diff --git a/arch/x86/platform/intel-mid/mfld.c b/arch/x86/platform/intel-mid/mfld.c
36424 index 23381d2..8ddc10e 100644
36425 --- a/arch/x86/platform/intel-mid/mfld.c
36426 +++ b/arch/x86/platform/intel-mid/mfld.c
36427 @@ -64,12 +64,12 @@ static void __init penwell_arch_setup(void)
36428 pm_power_off = mfld_power_off;
36429 }
36430
36431 -void *get_penwell_ops(void)
36432 +const void *get_penwell_ops(void)
36433 {
36434 return &penwell_ops;
36435 }
36436
36437 -void *get_cloverview_ops(void)
36438 +const void *get_cloverview_ops(void)
36439 {
36440 return &penwell_ops;
36441 }
36442 diff --git a/arch/x86/platform/intel-mid/mrfl.c b/arch/x86/platform/intel-mid/mrfl.c
36443 index aaca917..66eadbc 100644
36444 --- a/arch/x86/platform/intel-mid/mrfl.c
36445 +++ b/arch/x86/platform/intel-mid/mrfl.c
36446 @@ -97,7 +97,7 @@ static struct intel_mid_ops tangier_ops = {
36447 .arch_setup = tangier_arch_setup,
36448 };
36449
36450 -void *get_tangier_ops(void)
36451 +const void *get_tangier_ops(void)
36452 {
36453 return &tangier_ops;
36454 }
36455 diff --git a/arch/x86/platform/intel-quark/imr_selftest.c b/arch/x86/platform/intel-quark/imr_selftest.c
36456 index 278e4da..35db1a9 100644
36457 --- a/arch/x86/platform/intel-quark/imr_selftest.c
36458 +++ b/arch/x86/platform/intel-quark/imr_selftest.c
36459 @@ -55,7 +55,7 @@ static void __init imr_self_test_result(int res, const char *fmt, ...)
36460 */
36461 static void __init imr_self_test(void)
36462 {
36463 - phys_addr_t base = virt_to_phys(&_text);
36464 + phys_addr_t base = virt_to_phys((void *)ktla_ktva((unsigned long)_text));
36465 size_t size = virt_to_phys(&__end_rodata) - base;
36466 const char *fmt_over = "overlapped IMR @ (0x%08lx - 0x%08lx)\n";
36467 int ret;
36468 diff --git a/arch/x86/platform/olpc/olpc_dt.c b/arch/x86/platform/olpc/olpc_dt.c
36469 index d6ee929..3637cb5 100644
36470 --- a/arch/x86/platform/olpc/olpc_dt.c
36471 +++ b/arch/x86/platform/olpc/olpc_dt.c
36472 @@ -156,7 +156,7 @@ void * __init prom_early_alloc(unsigned long size)
36473 return res;
36474 }
36475
36476 -static struct of_pdt_ops prom_olpc_ops __initdata = {
36477 +static struct of_pdt_ops prom_olpc_ops __initconst = {
36478 .nextprop = olpc_dt_nextprop,
36479 .getproplen = olpc_dt_getproplen,
36480 .getproperty = olpc_dt_getproperty,
36481 diff --git a/arch/x86/power/cpu.c b/arch/x86/power/cpu.c
36482 index 9ab5279..8ba4611 100644
36483 --- a/arch/x86/power/cpu.c
36484 +++ b/arch/x86/power/cpu.c
36485 @@ -134,11 +134,8 @@ static void do_fpu_end(void)
36486 static void fix_processor_context(void)
36487 {
36488 int cpu = smp_processor_id();
36489 - struct tss_struct *t = &per_cpu(cpu_tss, cpu);
36490 -#ifdef CONFIG_X86_64
36491 - struct desc_struct *desc = get_cpu_gdt_table(cpu);
36492 - tss_desc tss;
36493 -#endif
36494 + struct tss_struct *t = cpu_tss + cpu;
36495 +
36496 set_tss_desc(cpu, t); /*
36497 * This just modifies memory; should not be
36498 * necessary. But... This is necessary, because
36499 @@ -147,10 +144,6 @@ static void fix_processor_context(void)
36500 */
36501
36502 #ifdef CONFIG_X86_64
36503 - memcpy(&tss, &desc[GDT_ENTRY_TSS], sizeof(tss_desc));
36504 - tss.type = 0x9; /* The available 64-bit TSS (see AMD vol 2, pg 91 */
36505 - write_gdt_entry(desc, GDT_ENTRY_TSS, &tss, DESC_TSS);
36506 -
36507 syscall_init(); /* This sets MSR_*STAR and related */
36508 #endif
36509 load_TR_desc(); /* This does ltr */
36510 diff --git a/arch/x86/realmode/init.c b/arch/x86/realmode/init.c
36511 index 0b7a63d..dff2199 100644
36512 --- a/arch/x86/realmode/init.c
36513 +++ b/arch/x86/realmode/init.c
36514 @@ -68,7 +68,13 @@ void __init setup_real_mode(void)
36515 __va(real_mode_header->trampoline_header);
36516
36517 #ifdef CONFIG_X86_32
36518 - trampoline_header->start = __pa_symbol(startup_32_smp);
36519 + trampoline_header->start = __pa_symbol(ktla_ktva((unsigned long)startup_32_smp));
36520 +
36521 +#ifdef CONFIG_PAX_KERNEXEC
36522 + trampoline_header->start -= LOAD_PHYSICAL_ADDR;
36523 +#endif
36524 +
36525 + trampoline_header->boot_cs = __BOOT_CS;
36526 trampoline_header->gdt_limit = __BOOT_DS + 7;
36527 trampoline_header->gdt_base = __pa_symbol(boot_gdt);
36528 #else
36529 @@ -84,7 +90,7 @@ void __init setup_real_mode(void)
36530 *trampoline_cr4_features = __read_cr4();
36531
36532 trampoline_pgd = (u64 *) __va(real_mode_header->trampoline_pgd);
36533 - trampoline_pgd[0] = init_level4_pgt[pgd_index(__PAGE_OFFSET)].pgd;
36534 + trampoline_pgd[0] = init_level4_pgt[pgd_index(__PAGE_OFFSET)].pgd & ~_PAGE_NX;
36535 trampoline_pgd[511] = init_level4_pgt[511].pgd;
36536 #endif
36537 }
36538 diff --git a/arch/x86/realmode/rm/Makefile b/arch/x86/realmode/rm/Makefile
36539 index 2730d77..2e4cd19 100644
36540 --- a/arch/x86/realmode/rm/Makefile
36541 +++ b/arch/x86/realmode/rm/Makefile
36542 @@ -68,5 +68,8 @@ $(obj)/realmode.relocs: $(obj)/realmode.elf FORCE
36543
36544 KBUILD_CFLAGS := $(LINUXINCLUDE) $(REALMODE_CFLAGS) -D_SETUP -D_WAKEUP \
36545 -I$(srctree)/arch/x86/boot
36546 +ifdef CONSTIFY_PLUGIN
36547 +KBUILD_CFLAGS += -fplugin-arg-constify_plugin-no-constify
36548 +endif
36549 KBUILD_AFLAGS := $(KBUILD_CFLAGS) -D__ASSEMBLY__
36550 GCOV_PROFILE := n
36551 diff --git a/arch/x86/realmode/rm/header.S b/arch/x86/realmode/rm/header.S
36552 index a28221d..93c40f1 100644
36553 --- a/arch/x86/realmode/rm/header.S
36554 +++ b/arch/x86/realmode/rm/header.S
36555 @@ -30,7 +30,9 @@ GLOBAL(real_mode_header)
36556 #endif
36557 /* APM/BIOS reboot */
36558 .long pa_machine_real_restart_asm
36559 -#ifdef CONFIG_X86_64
36560 +#ifdef CONFIG_X86_32
36561 + .long __KERNEL_CS
36562 +#else
36563 .long __KERNEL32_CS
36564 #endif
36565 END(real_mode_header)
36566 diff --git a/arch/x86/realmode/rm/reboot.S b/arch/x86/realmode/rm/reboot.S
36567 index d66c607..3def845 100644
36568 --- a/arch/x86/realmode/rm/reboot.S
36569 +++ b/arch/x86/realmode/rm/reboot.S
36570 @@ -27,6 +27,10 @@ ENTRY(machine_real_restart_asm)
36571 lgdtl pa_tr_gdt
36572
36573 /* Disable paging to drop us out of long mode */
36574 + movl %cr4, %eax
36575 + andl $~X86_CR4_PCIDE, %eax
36576 + movl %eax, %cr4
36577 +
36578 movl %cr0, %eax
36579 andl $~X86_CR0_PG, %eax
36580 movl %eax, %cr0
36581 diff --git a/arch/x86/realmode/rm/trampoline_32.S b/arch/x86/realmode/rm/trampoline_32.S
36582 index 48ddd76..c26749f 100644
36583 --- a/arch/x86/realmode/rm/trampoline_32.S
36584 +++ b/arch/x86/realmode/rm/trampoline_32.S
36585 @@ -24,6 +24,12 @@
36586 #include <asm/page_types.h>
36587 #include "realmode.h"
36588
36589 +#ifdef CONFIG_PAX_KERNEXEC
36590 +#define ta(X) (X)
36591 +#else
36592 +#define ta(X) (pa_ ## X)
36593 +#endif
36594 +
36595 .text
36596 .code16
36597
36598 @@ -38,8 +44,6 @@ ENTRY(trampoline_start)
36599
36600 cli # We should be safe anyway
36601
36602 - movl tr_start, %eax # where we need to go
36603 -
36604 movl $0xA5A5A5A5, trampoline_status
36605 # write marker for master knows we're running
36606
36607 @@ -55,7 +59,7 @@ ENTRY(trampoline_start)
36608 movw $1, %dx # protected mode (PE) bit
36609 lmsw %dx # into protected mode
36610
36611 - ljmpl $__BOOT_CS, $pa_startup_32
36612 + ljmpl *(trampoline_header)
36613
36614 .section ".text32","ax"
36615 .code32
36616 @@ -66,7 +70,7 @@ ENTRY(startup_32) # note: also used from wakeup_asm.S
36617 .balign 8
36618 GLOBAL(trampoline_header)
36619 tr_start: .space 4
36620 - tr_gdt_pad: .space 2
36621 + tr_boot_cs: .space 2
36622 tr_gdt: .space 6
36623 END(trampoline_header)
36624
36625 diff --git a/arch/x86/realmode/rm/trampoline_64.S b/arch/x86/realmode/rm/trampoline_64.S
36626 index dac7b20..72dbaca 100644
36627 --- a/arch/x86/realmode/rm/trampoline_64.S
36628 +++ b/arch/x86/realmode/rm/trampoline_64.S
36629 @@ -93,6 +93,7 @@ ENTRY(startup_32)
36630 movl %edx, %gs
36631
36632 movl pa_tr_cr4, %eax
36633 + andl $~X86_CR4_PCIDE, %eax
36634 movl %eax, %cr4 # Enable PAE mode
36635
36636 # Setup trampoline 4 level pagetables
36637 @@ -106,7 +107,7 @@ ENTRY(startup_32)
36638 wrmsr
36639
36640 # Enable paging and in turn activate Long Mode
36641 - movl $(X86_CR0_PG | X86_CR0_WP | X86_CR0_PE), %eax
36642 + movl $(X86_CR0_PG | X86_CR0_PE), %eax
36643 movl %eax, %cr0
36644
36645 /*
36646 diff --git a/arch/x86/realmode/rm/wakeup_asm.S b/arch/x86/realmode/rm/wakeup_asm.S
36647 index 9e7e147..25a4158 100644
36648 --- a/arch/x86/realmode/rm/wakeup_asm.S
36649 +++ b/arch/x86/realmode/rm/wakeup_asm.S
36650 @@ -126,11 +126,10 @@ ENTRY(wakeup_start)
36651 lgdtl pmode_gdt
36652
36653 /* This really couldn't... */
36654 - movl pmode_entry, %eax
36655 movl pmode_cr0, %ecx
36656 movl %ecx, %cr0
36657 - ljmpl $__KERNEL_CS, $pa_startup_32
36658 - /* -> jmp *%eax in trampoline_32.S */
36659 +
36660 + ljmpl *pmode_entry
36661 #else
36662 jmp trampoline_start
36663 #endif
36664 diff --git a/arch/x86/tools/Makefile b/arch/x86/tools/Makefile
36665 index 604a37e..e49702a 100644
36666 --- a/arch/x86/tools/Makefile
36667 +++ b/arch/x86/tools/Makefile
36668 @@ -37,7 +37,7 @@ $(obj)/test_get_len.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/in
36669
36670 $(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
36671
36672 -HOST_EXTRACFLAGS += -I$(srctree)/tools/include
36673 +HOST_EXTRACFLAGS += -I$(srctree)/tools/include -ggdb
36674 hostprogs-y += relocs
36675 relocs-objs := relocs_32.o relocs_64.o relocs_common.o
36676 PHONY += relocs
36677 diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
36678 index 0c2fae8..88d7719 100644
36679 --- a/arch/x86/tools/relocs.c
36680 +++ b/arch/x86/tools/relocs.c
36681 @@ -1,5 +1,7 @@
36682 /* This is included from relocs_32/64.c */
36683
36684 +#include "../../../include/generated/autoconf.h"
36685 +
36686 #define ElfW(type) _ElfW(ELF_BITS, type)
36687 #define _ElfW(bits, type) __ElfW(bits, type)
36688 #define __ElfW(bits, type) Elf##bits##_##type
36689 @@ -11,6 +13,7 @@
36690 #define Elf_Sym ElfW(Sym)
36691
36692 static Elf_Ehdr ehdr;
36693 +static Elf_Phdr *phdr;
36694
36695 struct relocs {
36696 uint32_t *offset;
36697 @@ -386,9 +389,39 @@ static void read_ehdr(FILE *fp)
36698 }
36699 }
36700
36701 +static void read_phdrs(FILE *fp)
36702 +{
36703 + unsigned int i;
36704 +
36705 + phdr = calloc(ehdr.e_phnum, sizeof(Elf_Phdr));
36706 + if (!phdr) {
36707 + die("Unable to allocate %d program headers\n",
36708 + ehdr.e_phnum);
36709 + }
36710 + if (fseek(fp, ehdr.e_phoff, SEEK_SET) < 0) {
36711 + die("Seek to %d failed: %s\n",
36712 + ehdr.e_phoff, strerror(errno));
36713 + }
36714 + if (fread(phdr, sizeof(*phdr), ehdr.e_phnum, fp) != ehdr.e_phnum) {
36715 + die("Cannot read ELF program headers: %s\n",
36716 + strerror(errno));
36717 + }
36718 + for(i = 0; i < ehdr.e_phnum; i++) {
36719 + phdr[i].p_type = elf_word_to_cpu(phdr[i].p_type);
36720 + phdr[i].p_offset = elf_off_to_cpu(phdr[i].p_offset);
36721 + phdr[i].p_vaddr = elf_addr_to_cpu(phdr[i].p_vaddr);
36722 + phdr[i].p_paddr = elf_addr_to_cpu(phdr[i].p_paddr);
36723 + phdr[i].p_filesz = elf_word_to_cpu(phdr[i].p_filesz);
36724 + phdr[i].p_memsz = elf_word_to_cpu(phdr[i].p_memsz);
36725 + phdr[i].p_flags = elf_word_to_cpu(phdr[i].p_flags);
36726 + phdr[i].p_align = elf_word_to_cpu(phdr[i].p_align);
36727 + }
36728 +
36729 +}
36730 +
36731 static void read_shdrs(FILE *fp)
36732 {
36733 - int i;
36734 + unsigned int i;
36735 Elf_Shdr shdr;
36736
36737 secs = calloc(ehdr.e_shnum, sizeof(struct section));
36738 @@ -423,7 +456,7 @@ static void read_shdrs(FILE *fp)
36739
36740 static void read_strtabs(FILE *fp)
36741 {
36742 - int i;
36743 + unsigned int i;
36744 for (i = 0; i < ehdr.e_shnum; i++) {
36745 struct section *sec = &secs[i];
36746 if (sec->shdr.sh_type != SHT_STRTAB) {
36747 @@ -448,7 +481,7 @@ static void read_strtabs(FILE *fp)
36748
36749 static void read_symtabs(FILE *fp)
36750 {
36751 - int i,j;
36752 + unsigned int i,j;
36753 for (i = 0; i < ehdr.e_shnum; i++) {
36754 struct section *sec = &secs[i];
36755 if (sec->shdr.sh_type != SHT_SYMTAB) {
36756 @@ -479,9 +512,11 @@ static void read_symtabs(FILE *fp)
36757 }
36758
36759
36760 -static void read_relocs(FILE *fp)
36761 +static void read_relocs(FILE *fp, int use_real_mode)
36762 {
36763 - int i,j;
36764 + unsigned int i,j;
36765 + uint32_t base;
36766 +
36767 for (i = 0; i < ehdr.e_shnum; i++) {
36768 struct section *sec = &secs[i];
36769 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36770 @@ -501,9 +536,22 @@ static void read_relocs(FILE *fp)
36771 die("Cannot read symbol table: %s\n",
36772 strerror(errno));
36773 }
36774 + base = 0;
36775 +
36776 +#ifdef CONFIG_X86_32
36777 + for (j = 0; !use_real_mode && j < ehdr.e_phnum; j++) {
36778 + if (phdr[j].p_type != PT_LOAD )
36779 + continue;
36780 + 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)
36781 + continue;
36782 + base = CONFIG_PAGE_OFFSET + phdr[j].p_paddr - phdr[j].p_vaddr;
36783 + break;
36784 + }
36785 +#endif
36786 +
36787 for (j = 0; j < sec->shdr.sh_size/sizeof(Elf_Rel); j++) {
36788 Elf_Rel *rel = &sec->reltab[j];
36789 - rel->r_offset = elf_addr_to_cpu(rel->r_offset);
36790 + rel->r_offset = elf_addr_to_cpu(rel->r_offset) + base;
36791 rel->r_info = elf_xword_to_cpu(rel->r_info);
36792 #if (SHT_REL_TYPE == SHT_RELA)
36793 rel->r_addend = elf_xword_to_cpu(rel->r_addend);
36794 @@ -515,7 +563,7 @@ static void read_relocs(FILE *fp)
36795
36796 static void print_absolute_symbols(void)
36797 {
36798 - int i;
36799 + unsigned int i;
36800 const char *format;
36801
36802 if (ELF_BITS == 64)
36803 @@ -528,7 +576,7 @@ static void print_absolute_symbols(void)
36804 for (i = 0; i < ehdr.e_shnum; i++) {
36805 struct section *sec = &secs[i];
36806 char *sym_strtab;
36807 - int j;
36808 + unsigned int j;
36809
36810 if (sec->shdr.sh_type != SHT_SYMTAB) {
36811 continue;
36812 @@ -555,7 +603,7 @@ static void print_absolute_symbols(void)
36813
36814 static void print_absolute_relocs(void)
36815 {
36816 - int i, printed = 0;
36817 + unsigned int i, printed = 0;
36818 const char *format;
36819
36820 if (ELF_BITS == 64)
36821 @@ -568,7 +616,7 @@ static void print_absolute_relocs(void)
36822 struct section *sec_applies, *sec_symtab;
36823 char *sym_strtab;
36824 Elf_Sym *sh_symtab;
36825 - int j;
36826 + unsigned int j;
36827 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36828 continue;
36829 }
36830 @@ -645,13 +693,13 @@ static void add_reloc(struct relocs *r, uint32_t offset)
36831 static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
36832 Elf_Sym *sym, const char *symname))
36833 {
36834 - int i;
36835 + unsigned int i;
36836 /* Walk through the relocations */
36837 for (i = 0; i < ehdr.e_shnum; i++) {
36838 char *sym_strtab;
36839 Elf_Sym *sh_symtab;
36840 struct section *sec_applies, *sec_symtab;
36841 - int j;
36842 + unsigned int j;
36843 struct section *sec = &secs[i];
36844
36845 if (sec->shdr.sh_type != SHT_REL_TYPE) {
36846 @@ -697,7 +745,7 @@ static void walk_relocs(int (*process)(struct section *sec, Elf_Rel *rel,
36847 * kernel data and does not require special treatment.
36848 *
36849 */
36850 -static int per_cpu_shndx = -1;
36851 +static unsigned int per_cpu_shndx = ~0;
36852 static Elf_Addr per_cpu_load_addr;
36853
36854 static void percpu_init(void)
36855 @@ -830,6 +878,23 @@ static int do_reloc32(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
36856 {
36857 unsigned r_type = ELF32_R_TYPE(rel->r_info);
36858 int shn_abs = (sym->st_shndx == SHN_ABS) && !is_reloc(S_REL, symname);
36859 + char *sym_strtab = sec->link->link->strtab;
36860 +
36861 + /* Don't relocate actual per-cpu variables, they are absolute indices, not addresses */
36862 + if (!strcmp(sec_name(sym->st_shndx), ".data..percpu") && strcmp(sym_name(sym_strtab, sym), "__per_cpu_load"))
36863 + return 0;
36864 +
36865 +#ifdef CONFIG_PAX_KERNEXEC
36866 + /* Don't relocate actual code, they are relocated implicitly by the base address of KERNEL_CS */
36867 + if (!strcmp(sec_name(sym->st_shndx), ".text.end") && !strcmp(sym_name(sym_strtab, sym), "_etext"))
36868 + return 0;
36869 + if (!strcmp(sec_name(sym->st_shndx), ".init.text"))
36870 + return 0;
36871 + if (!strcmp(sec_name(sym->st_shndx), ".exit.text"))
36872 + return 0;
36873 + if (!strcmp(sec_name(sym->st_shndx), ".text") && strcmp(sym_name(sym_strtab, sym), "__LOAD_PHYSICAL_ADDR"))
36874 + return 0;
36875 +#endif
36876
36877 switch (r_type) {
36878 case R_386_NONE:
36879 @@ -968,7 +1033,7 @@ static int write32_as_text(uint32_t v, FILE *f)
36880
36881 static void emit_relocs(int as_text, int use_real_mode)
36882 {
36883 - int i;
36884 + unsigned int i;
36885 int (*write_reloc)(uint32_t, FILE *) = write32;
36886 int (*do_reloc)(struct section *sec, Elf_Rel *rel, Elf_Sym *sym,
36887 const char *symname);
36888 @@ -1078,10 +1143,11 @@ void process(FILE *fp, int use_real_mode, int as_text,
36889 {
36890 regex_init(use_real_mode);
36891 read_ehdr(fp);
36892 + read_phdrs(fp);
36893 read_shdrs(fp);
36894 read_strtabs(fp);
36895 read_symtabs(fp);
36896 - read_relocs(fp);
36897 + read_relocs(fp, use_real_mode);
36898 if (ELF_BITS == 64)
36899 percpu_init();
36900 if (show_absolute_syms) {
36901 diff --git a/arch/x86/um/mem_32.c b/arch/x86/um/mem_32.c
36902 index 744afdc..a0b8a0d 100644
36903 --- a/arch/x86/um/mem_32.c
36904 +++ b/arch/x86/um/mem_32.c
36905 @@ -20,7 +20,7 @@ static int __init gate_vma_init(void)
36906 gate_vma.vm_start = FIXADDR_USER_START;
36907 gate_vma.vm_end = FIXADDR_USER_END;
36908 gate_vma.vm_flags = VM_READ | VM_MAYREAD | VM_EXEC | VM_MAYEXEC;
36909 - gate_vma.vm_page_prot = __P101;
36910 + gate_vma.vm_page_prot = vm_get_page_prot(gate_vma.vm_flags);
36911
36912 return 0;
36913 }
36914 diff --git a/arch/x86/um/tls_32.c b/arch/x86/um/tls_32.c
36915 index 48e3858..ab4458c 100644
36916 --- a/arch/x86/um/tls_32.c
36917 +++ b/arch/x86/um/tls_32.c
36918 @@ -261,7 +261,7 @@ out:
36919 if (unlikely(task == current &&
36920 !t->arch.tls_array[idx - GDT_ENTRY_TLS_MIN].flushed)) {
36921 printk(KERN_ERR "get_tls_entry: task with pid %d got here "
36922 - "without flushed TLS.", current->pid);
36923 + "without flushed TLS.", task_pid_nr(current));
36924 }
36925
36926 return 0;
36927 diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
36928 index 4841453..d59a203 100644
36929 --- a/arch/x86/xen/Kconfig
36930 +++ b/arch/x86/xen/Kconfig
36931 @@ -9,6 +9,7 @@ config XEN
36932 select XEN_HAVE_PVMMU
36933 depends on X86_64 || (X86_32 && X86_PAE)
36934 depends on X86_LOCAL_APIC && X86_TSC
36935 + depends on !GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_VIRT_XEN
36936 help
36937 This is the Linux Xen port. Enabling this will allow the
36938 kernel to boot in a paravirtualized environment under the
36939 diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
36940 index 3cebc65..2789b02 100644
36941 --- a/arch/x86/xen/enlighten.c
36942 +++ b/arch/x86/xen/enlighten.c
36943 @@ -129,8 +129,6 @@ EXPORT_SYMBOL_GPL(xen_start_info);
36944
36945 struct shared_info xen_dummy_shared_info;
36946
36947 -void *xen_initial_gdt;
36948 -
36949 RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
36950 __read_mostly int xen_have_vector_callback;
36951 EXPORT_SYMBOL_GPL(xen_have_vector_callback);
36952 @@ -588,8 +586,7 @@ static void xen_load_gdt(const struct desc_ptr *dtr)
36953 {
36954 unsigned long va = dtr->address;
36955 unsigned int size = dtr->size + 1;
36956 - unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
36957 - unsigned long frames[pages];
36958 + unsigned long frames[65536 / PAGE_SIZE];
36959 int f;
36960
36961 /*
36962 @@ -637,8 +634,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
36963 {
36964 unsigned long va = dtr->address;
36965 unsigned int size = dtr->size + 1;
36966 - unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
36967 - unsigned long frames[pages];
36968 + unsigned long frames[(GDT_SIZE + PAGE_SIZE - 1) / PAGE_SIZE];
36969 int f;
36970
36971 /*
36972 @@ -646,7 +642,7 @@ static void __init xen_load_gdt_boot(const struct desc_ptr *dtr)
36973 * 8-byte entries, or 16 4k pages..
36974 */
36975
36976 - BUG_ON(size > 65536);
36977 + BUG_ON(size > GDT_SIZE);
36978 BUG_ON(va & ~PAGE_MASK);
36979
36980 for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
36981 @@ -1268,30 +1264,30 @@ static const struct pv_apic_ops xen_apic_ops __initconst = {
36982 #endif
36983 };
36984
36985 -static void xen_reboot(int reason)
36986 +static __noreturn void xen_reboot(int reason)
36987 {
36988 struct sched_shutdown r = { .reason = reason };
36989
36990 - if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
36991 - BUG();
36992 + HYPERVISOR_sched_op(SCHEDOP_shutdown, &r);
36993 + BUG();
36994 }
36995
36996 -static void xen_restart(char *msg)
36997 +static __noreturn void xen_restart(char *msg)
36998 {
36999 xen_reboot(SHUTDOWN_reboot);
37000 }
37001
37002 -static void xen_emergency_restart(void)
37003 +static __noreturn void xen_emergency_restart(void)
37004 {
37005 xen_reboot(SHUTDOWN_reboot);
37006 }
37007
37008 -static void xen_machine_halt(void)
37009 +static __noreturn void xen_machine_halt(void)
37010 {
37011 xen_reboot(SHUTDOWN_poweroff);
37012 }
37013
37014 -static void xen_machine_power_off(void)
37015 +static __noreturn void xen_machine_power_off(void)
37016 {
37017 if (pm_power_off)
37018 pm_power_off();
37019 @@ -1444,8 +1440,11 @@ static void __ref xen_setup_gdt(int cpu)
37020 pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry_boot;
37021 pv_cpu_ops.load_gdt = xen_load_gdt_boot;
37022
37023 - setup_stack_canary_segment(0);
37024 - switch_to_new_gdt(0);
37025 + setup_stack_canary_segment(cpu);
37026 +#ifdef CONFIG_X86_64
37027 + load_percpu_segment(cpu);
37028 +#endif
37029 + switch_to_new_gdt(cpu);
37030
37031 pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry;
37032 pv_cpu_ops.load_gdt = xen_load_gdt;
37033 @@ -1561,7 +1560,17 @@ asmlinkage __visible void __init xen_start_kernel(void)
37034 __userpte_alloc_gfp &= ~__GFP_HIGHMEM;
37035
37036 /* Work out if we support NX */
37037 - x86_configure_nx();
37038 +#if defined(CONFIG_X86_64) || defined(CONFIG_X86_PAE)
37039 + if ((cpuid_eax(0x80000000) & 0xffff0000) == 0x80000000 &&
37040 + (cpuid_edx(0x80000001) & (1U << (X86_FEATURE_NX & 31)))) {
37041 + unsigned l, h;
37042 +
37043 + __supported_pte_mask |= _PAGE_NX;
37044 + rdmsr(MSR_EFER, l, h);
37045 + l |= EFER_NX;
37046 + wrmsr(MSR_EFER, l, h);
37047 + }
37048 +#endif
37049
37050 /* Get mfn list */
37051 xen_build_dynamic_phys_to_machine();
37052 @@ -1589,13 +1598,6 @@ asmlinkage __visible void __init xen_start_kernel(void)
37053
37054 machine_ops = xen_machine_ops;
37055
37056 - /*
37057 - * The only reliable way to retain the initial address of the
37058 - * percpu gdt_page is to remember it here, so we can go and
37059 - * mark it RW later, when the initial percpu area is freed.
37060 - */
37061 - xen_initial_gdt = &per_cpu(gdt_page, 0);
37062 -
37063 xen_smp_init();
37064
37065 #ifdef CONFIG_ACPI_NUMA
37066 diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
37067 index dd151b2..3291e38 100644
37068 --- a/arch/x86/xen/mmu.c
37069 +++ b/arch/x86/xen/mmu.c
37070 @@ -1835,7 +1835,11 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
37071 * L3_k[511] -> level2_fixmap_pgt */
37072 convert_pfn_mfn(level3_kernel_pgt);
37073
37074 + convert_pfn_mfn(level3_vmalloc_start_pgt);
37075 + convert_pfn_mfn(level3_vmalloc_end_pgt);
37076 + convert_pfn_mfn(level3_vmemmap_pgt);
37077 /* L3_k[511][506] -> level1_fixmap_pgt */
37078 + /* L3_k[511][507] -> level1_vsyscall_pgt */
37079 convert_pfn_mfn(level2_fixmap_pgt);
37080 }
37081 /* We get [511][511] and have Xen's version of level2_kernel_pgt */
37082 @@ -1860,11 +1864,22 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
37083 set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
37084 set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
37085 set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
37086 + set_page_prot(level3_vmalloc_start_pgt, PAGE_KERNEL_RO);
37087 + set_page_prot(level3_vmalloc_end_pgt, PAGE_KERNEL_RO);
37088 + set_page_prot(level3_vmemmap_pgt, PAGE_KERNEL_RO);
37089 set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
37090 set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
37091 + set_page_prot(level2_vmemmap_pgt, PAGE_KERNEL_RO);
37092 set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
37093 set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
37094 - set_page_prot(level1_fixmap_pgt, PAGE_KERNEL_RO);
37095 + set_page_prot(level1_modules_pgt[0], PAGE_KERNEL_RO);
37096 + set_page_prot(level1_modules_pgt[1], PAGE_KERNEL_RO);
37097 + set_page_prot(level1_modules_pgt[2], PAGE_KERNEL_RO);
37098 + set_page_prot(level1_modules_pgt[3], PAGE_KERNEL_RO);
37099 + set_page_prot(level1_fixmap_pgt[0], PAGE_KERNEL_RO);
37100 + set_page_prot(level1_fixmap_pgt[1], PAGE_KERNEL_RO);
37101 + set_page_prot(level1_fixmap_pgt[2], PAGE_KERNEL_RO);
37102 + set_page_prot(level1_vsyscall_pgt, PAGE_KERNEL_RO);
37103
37104 /* Pin down new L4 */
37105 pin_pagetable_pfn(MMUEXT_PIN_L4_TABLE,
37106 @@ -2048,6 +2063,7 @@ static void __init xen_post_allocator_init(void)
37107 pv_mmu_ops.set_pud = xen_set_pud;
37108 #if CONFIG_PGTABLE_LEVELS == 4
37109 pv_mmu_ops.set_pgd = xen_set_pgd;
37110 + pv_mmu_ops.set_pgd_batched = xen_set_pgd;
37111 #endif
37112
37113 /* This will work as long as patching hasn't happened yet
37114 @@ -2126,6 +2142,7 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
37115 .pud_val = PV_CALLEE_SAVE(xen_pud_val),
37116 .make_pud = PV_CALLEE_SAVE(xen_make_pud),
37117 .set_pgd = xen_set_pgd_hyper,
37118 + .set_pgd_batched = xen_set_pgd_hyper,
37119
37120 .alloc_pud = xen_alloc_pmd_init,
37121 .release_pud = xen_release_pmd_init,
37122 diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
37123 index 8648438..18bac20 100644
37124 --- a/arch/x86/xen/smp.c
37125 +++ b/arch/x86/xen/smp.c
37126 @@ -284,17 +284,13 @@ static void __init xen_smp_prepare_boot_cpu(void)
37127
37128 if (xen_pv_domain()) {
37129 if (!xen_feature(XENFEAT_writable_page_tables))
37130 - /* We've switched to the "real" per-cpu gdt, so make
37131 - * sure the old memory can be recycled. */
37132 - make_lowmem_page_readwrite(xen_initial_gdt);
37133 -
37134 #ifdef CONFIG_X86_32
37135 /*
37136 * Xen starts us with XEN_FLAT_RING1_DS, but linux code
37137 * expects __USER_DS
37138 */
37139 - loadsegment(ds, __USER_DS);
37140 - loadsegment(es, __USER_DS);
37141 + loadsegment(ds, __KERNEL_DS);
37142 + loadsegment(es, __KERNEL_DS);
37143 #endif
37144
37145 xen_filter_cpu_maps();
37146 @@ -375,7 +371,7 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
37147 #ifdef CONFIG_X86_32
37148 /* Note: PVH is not yet supported on x86_32. */
37149 ctxt->user_regs.fs = __KERNEL_PERCPU;
37150 - ctxt->user_regs.gs = __KERNEL_STACK_CANARY;
37151 + savesegment(gs, ctxt->user_regs.gs);
37152 #endif
37153 memset(&ctxt->fpu_ctxt, 0, sizeof(ctxt->fpu_ctxt));
37154
37155 @@ -383,8 +379,8 @@ cpu_initialize_context(unsigned int cpu, struct task_struct *idle)
37156 ctxt->user_regs.eip = (unsigned long)cpu_bringup_and_idle;
37157 ctxt->flags = VGCF_IN_KERNEL;
37158 ctxt->user_regs.eflags = 0x1000; /* IOPL_RING1 */
37159 - ctxt->user_regs.ds = __USER_DS;
37160 - ctxt->user_regs.es = __USER_DS;
37161 + ctxt->user_regs.ds = __KERNEL_DS;
37162 + ctxt->user_regs.es = __KERNEL_DS;
37163 ctxt->user_regs.ss = __KERNEL_DS;
37164
37165 xen_copy_trap_info(ctxt->trap_ctxt);
37166 @@ -720,7 +716,7 @@ static const struct smp_ops xen_smp_ops __initconst = {
37167
37168 void __init xen_smp_init(void)
37169 {
37170 - smp_ops = xen_smp_ops;
37171 + memcpy((void *)&smp_ops, &xen_smp_ops, sizeof smp_ops);
37172 xen_fill_possible_map();
37173 }
37174
37175 diff --git a/arch/x86/xen/xen-asm_32.S b/arch/x86/xen/xen-asm_32.S
37176 index fd92a64..1f72641 100644
37177 --- a/arch/x86/xen/xen-asm_32.S
37178 +++ b/arch/x86/xen/xen-asm_32.S
37179 @@ -99,7 +99,7 @@ ENTRY(xen_iret)
37180 pushw %fs
37181 movl $(__KERNEL_PERCPU), %eax
37182 movl %eax, %fs
37183 - movl %fs:xen_vcpu, %eax
37184 + mov PER_CPU_VAR(xen_vcpu), %eax
37185 POP_FS
37186 #else
37187 movl %ss:xen_vcpu, %eax
37188 diff --git a/arch/x86/xen/xen-head.S b/arch/x86/xen/xen-head.S
37189 index 8afdfcc..79239db 100644
37190 --- a/arch/x86/xen/xen-head.S
37191 +++ b/arch/x86/xen/xen-head.S
37192 @@ -41,6 +41,17 @@ ENTRY(startup_xen)
37193 #ifdef CONFIG_X86_32
37194 mov %esi,xen_start_info
37195 mov $init_thread_union+THREAD_SIZE,%esp
37196 +#ifdef CONFIG_SMP
37197 + movl $cpu_gdt_table,%edi
37198 + movl $__per_cpu_load,%eax
37199 + movw %ax,__KERNEL_PERCPU + 2(%edi)
37200 + rorl $16,%eax
37201 + movb %al,__KERNEL_PERCPU + 4(%edi)
37202 + movb %ah,__KERNEL_PERCPU + 7(%edi)
37203 + movl $__per_cpu_end - 1,%eax
37204 + subl $__per_cpu_start,%eax
37205 + movw %ax,__KERNEL_PERCPU + 0(%edi)
37206 +#endif
37207 #else
37208 mov %rsi,xen_start_info
37209 mov $init_thread_union+THREAD_SIZE,%rsp
37210 diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
37211 index 2292721..a9bb18e 100644
37212 --- a/arch/x86/xen/xen-ops.h
37213 +++ b/arch/x86/xen/xen-ops.h
37214 @@ -16,8 +16,6 @@ void xen_syscall_target(void);
37215 void xen_syscall32_target(void);
37216 #endif
37217
37218 -extern void *xen_initial_gdt;
37219 -
37220 struct trap_info;
37221 void xen_copy_trap_info(struct trap_info *traps);
37222
37223 diff --git a/arch/xtensa/variants/dc232b/include/variant/core.h b/arch/xtensa/variants/dc232b/include/variant/core.h
37224 index 525bd3d..ef888b1 100644
37225 --- a/arch/xtensa/variants/dc232b/include/variant/core.h
37226 +++ b/arch/xtensa/variants/dc232b/include/variant/core.h
37227 @@ -119,9 +119,9 @@
37228 ----------------------------------------------------------------------*/
37229
37230 #define XCHAL_ICACHE_LINESIZE 32 /* I-cache line size in bytes */
37231 -#define XCHAL_DCACHE_LINESIZE 32 /* D-cache line size in bytes */
37232 #define XCHAL_ICACHE_LINEWIDTH 5 /* log2(I line size in bytes) */
37233 #define XCHAL_DCACHE_LINEWIDTH 5 /* log2(D line size in bytes) */
37234 +#define XCHAL_DCACHE_LINESIZE (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH) /* D-cache line size in bytes */
37235
37236 #define XCHAL_ICACHE_SIZE 16384 /* I-cache size in bytes or 0 */
37237 #define XCHAL_DCACHE_SIZE 16384 /* D-cache size in bytes or 0 */
37238 diff --git a/arch/xtensa/variants/fsf/include/variant/core.h b/arch/xtensa/variants/fsf/include/variant/core.h
37239 index 2f33760..835e50a 100644
37240 --- a/arch/xtensa/variants/fsf/include/variant/core.h
37241 +++ b/arch/xtensa/variants/fsf/include/variant/core.h
37242 @@ -11,6 +11,7 @@
37243 #ifndef _XTENSA_CORE_H
37244 #define _XTENSA_CORE_H
37245
37246 +#include <linux/const.h>
37247
37248 /****************************************************************************
37249 Parameters Useful for Any Code, USER or PRIVILEGED
37250 @@ -112,9 +113,9 @@
37251 ----------------------------------------------------------------------*/
37252
37253 #define XCHAL_ICACHE_LINESIZE 16 /* I-cache line size in bytes */
37254 -#define XCHAL_DCACHE_LINESIZE 16 /* D-cache line size in bytes */
37255 #define XCHAL_ICACHE_LINEWIDTH 4 /* log2(I line size in bytes) */
37256 #define XCHAL_DCACHE_LINEWIDTH 4 /* log2(D line size in bytes) */
37257 +#define XCHAL_DCACHE_LINESIZE (_AC(1,UL) << XCHAL_DCACHE_LINEWIDTH) /* D-cache line size in bytes */
37258
37259 #define XCHAL_ICACHE_SIZE 8192 /* I-cache size in bytes or 0 */
37260 #define XCHAL_DCACHE_SIZE 8192 /* D-cache size in bytes or 0 */
37261 diff --git a/block/bio.c b/block/bio.c
37262 index d6e5ba3..2bb142c 100644
37263 --- a/block/bio.c
37264 +++ b/block/bio.c
37265 @@ -1187,7 +1187,7 @@ struct bio *bio_copy_user_iov(struct request_queue *q,
37266 /*
37267 * Overflow, abort
37268 */
37269 - if (end < start)
37270 + if (end < start || end - start > INT_MAX - nr_pages)
37271 return ERR_PTR(-EINVAL);
37272
37273 nr_pages += end - start;
37274 @@ -1312,7 +1312,7 @@ struct bio *bio_map_user_iov(struct request_queue *q,
37275 /*
37276 * Overflow, abort
37277 */
37278 - if (end < start)
37279 + if (end < start || end - start > INT_MAX - nr_pages)
37280 return ERR_PTR(-EINVAL);
37281
37282 nr_pages += end - start;
37283 diff --git a/block/blk-iopoll.c b/block/blk-iopoll.c
37284 index 0736729..2ec3b48 100644
37285 --- a/block/blk-iopoll.c
37286 +++ b/block/blk-iopoll.c
37287 @@ -74,7 +74,7 @@ void blk_iopoll_complete(struct blk_iopoll *iop)
37288 }
37289 EXPORT_SYMBOL(blk_iopoll_complete);
37290
37291 -static void blk_iopoll_softirq(struct softirq_action *h)
37292 +static __latent_entropy void blk_iopoll_softirq(void)
37293 {
37294 struct list_head *list = this_cpu_ptr(&blk_cpu_iopoll);
37295 int rearm = 0, budget = blk_iopoll_budget;
37296 diff --git a/block/blk-map.c b/block/blk-map.c
37297 index da310a1..213b5c9 100644
37298 --- a/block/blk-map.c
37299 +++ b/block/blk-map.c
37300 @@ -192,7 +192,7 @@ int blk_rq_map_kern(struct request_queue *q, struct request *rq, void *kbuf,
37301 if (!len || !kbuf)
37302 return -EINVAL;
37303
37304 - do_copy = !blk_rq_aligned(q, addr, len) || object_is_on_stack(kbuf);
37305 + do_copy = !blk_rq_aligned(q, addr, len) || object_starts_on_stack(kbuf);
37306 if (do_copy)
37307 bio = bio_copy_kern(q, kbuf, len, gfp_mask, reading);
37308 else
37309 diff --git a/block/blk-softirq.c b/block/blk-softirq.c
37310 index 53b1737..08177d2e 100644
37311 --- a/block/blk-softirq.c
37312 +++ b/block/blk-softirq.c
37313 @@ -18,7 +18,7 @@ static DEFINE_PER_CPU(struct list_head, blk_cpu_done);
37314 * Softirq action handler - move entries to local list and loop over them
37315 * while passing them to the queue registered handler.
37316 */
37317 -static void blk_done_softirq(struct softirq_action *h)
37318 +static __latent_entropy void blk_done_softirq(void)
37319 {
37320 struct list_head *cpu_list, local_list;
37321
37322 diff --git a/block/bsg.c b/block/bsg.c
37323 index d214e92..9649863 100644
37324 --- a/block/bsg.c
37325 +++ b/block/bsg.c
37326 @@ -140,16 +140,24 @@ static int blk_fill_sgv4_hdr_rq(struct request_queue *q, struct request *rq,
37327 struct sg_io_v4 *hdr, struct bsg_device *bd,
37328 fmode_t has_write_perm)
37329 {
37330 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37331 + unsigned char *cmdptr;
37332 +
37333 if (hdr->request_len > BLK_MAX_CDB) {
37334 rq->cmd = kzalloc(hdr->request_len, GFP_KERNEL);
37335 if (!rq->cmd)
37336 return -ENOMEM;
37337 - }
37338 + cmdptr = rq->cmd;
37339 + } else
37340 + cmdptr = tmpcmd;
37341
37342 - if (copy_from_user(rq->cmd, (void __user *)(unsigned long)hdr->request,
37343 + if (copy_from_user(cmdptr, (void __user *)(unsigned long)hdr->request,
37344 hdr->request_len))
37345 return -EFAULT;
37346
37347 + if (cmdptr != rq->cmd)
37348 + memcpy(rq->cmd, cmdptr, hdr->request_len);
37349 +
37350 if (hdr->subprotocol == BSG_SUB_PROTOCOL_SCSI_CMD) {
37351 if (blk_verify_command(rq->cmd, has_write_perm))
37352 return -EPERM;
37353 diff --git a/block/compat_ioctl.c b/block/compat_ioctl.c
37354 index f678c73..f35aa18 100644
37355 --- a/block/compat_ioctl.c
37356 +++ b/block/compat_ioctl.c
37357 @@ -156,7 +156,7 @@ static int compat_cdrom_generic_command(struct block_device *bdev, fmode_t mode,
37358 cgc = compat_alloc_user_space(sizeof(*cgc));
37359 cgc32 = compat_ptr(arg);
37360
37361 - if (copy_in_user(&cgc->cmd, &cgc32->cmd, sizeof(cgc->cmd)) ||
37362 + if (copy_in_user(cgc->cmd, cgc32->cmd, sizeof(cgc->cmd)) ||
37363 get_user(data, &cgc32->buffer) ||
37364 put_user(compat_ptr(data), &cgc->buffer) ||
37365 copy_in_user(&cgc->buflen, &cgc32->buflen,
37366 @@ -341,7 +341,7 @@ static int compat_fd_ioctl(struct block_device *bdev, fmode_t mode,
37367 err |= __get_user(f->spec1, &uf->spec1);
37368 err |= __get_user(f->fmt_gap, &uf->fmt_gap);
37369 err |= __get_user(name, &uf->name);
37370 - f->name = compat_ptr(name);
37371 + f->name = (void __force_kernel *)compat_ptr(name);
37372 if (err) {
37373 err = -EFAULT;
37374 goto out;
37375 diff --git a/block/genhd.c b/block/genhd.c
37376 index 59a1395..54ff187 100644
37377 --- a/block/genhd.c
37378 +++ b/block/genhd.c
37379 @@ -470,21 +470,24 @@ static char *bdevt_str(dev_t devt, char *buf)
37380
37381 /*
37382 * Register device numbers dev..(dev+range-1)
37383 - * range must be nonzero
37384 + * Noop if @range is zero.
37385 * The hash chain is sorted on range, so that subranges can override.
37386 */
37387 void blk_register_region(dev_t devt, unsigned long range, struct module *module,
37388 struct kobject *(*probe)(dev_t, int *, void *),
37389 int (*lock)(dev_t, void *), void *data)
37390 {
37391 - kobj_map(bdev_map, devt, range, module, probe, lock, data);
37392 + if (range)
37393 + kobj_map(bdev_map, devt, range, module, probe, lock, data);
37394 }
37395
37396 EXPORT_SYMBOL(blk_register_region);
37397
37398 +/* undo blk_register_region(), noop if @range is zero */
37399 void blk_unregister_region(dev_t devt, unsigned long range)
37400 {
37401 - kobj_unmap(bdev_map, devt, range);
37402 + if (range)
37403 + kobj_unmap(bdev_map, devt, range);
37404 }
37405
37406 EXPORT_SYMBOL(blk_unregister_region);
37407 diff --git a/block/partitions/efi.c b/block/partitions/efi.c
37408 index 26cb624..a49c3a5 100644
37409 --- a/block/partitions/efi.c
37410 +++ b/block/partitions/efi.c
37411 @@ -293,14 +293,14 @@ static gpt_entry *alloc_read_gpt_entries(struct parsed_partitions *state,
37412 if (!gpt)
37413 return NULL;
37414
37415 + if (!le32_to_cpu(gpt->num_partition_entries))
37416 + return NULL;
37417 + pte = kcalloc(le32_to_cpu(gpt->num_partition_entries), le32_to_cpu(gpt->sizeof_partition_entry), GFP_KERNEL);
37418 + if (!pte)
37419 + return NULL;
37420 +
37421 count = le32_to_cpu(gpt->num_partition_entries) *
37422 le32_to_cpu(gpt->sizeof_partition_entry);
37423 - if (!count)
37424 - return NULL;
37425 - pte = kmalloc(count, GFP_KERNEL);
37426 - if (!pte)
37427 - return NULL;
37428 -
37429 if (read_lba(state, le64_to_cpu(gpt->partition_entry_lba),
37430 (u8 *) pte, count) < count) {
37431 kfree(pte);
37432 diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
37433 index dda653c..028a13ee 100644
37434 --- a/block/scsi_ioctl.c
37435 +++ b/block/scsi_ioctl.c
37436 @@ -67,7 +67,7 @@ static int scsi_get_bus(struct request_queue *q, int __user *p)
37437 return put_user(0, p);
37438 }
37439
37440 -static int sg_get_timeout(struct request_queue *q)
37441 +static int __intentional_overflow(-1) sg_get_timeout(struct request_queue *q)
37442 {
37443 return jiffies_to_clock_t(q->sg_timeout);
37444 }
37445 @@ -227,8 +227,20 @@ EXPORT_SYMBOL(blk_verify_command);
37446 static int blk_fill_sghdr_rq(struct request_queue *q, struct request *rq,
37447 struct sg_io_hdr *hdr, fmode_t mode)
37448 {
37449 - if (copy_from_user(rq->cmd, hdr->cmdp, hdr->cmd_len))
37450 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37451 + unsigned char *cmdptr;
37452 +
37453 + if (rq->cmd != rq->__cmd)
37454 + cmdptr = rq->cmd;
37455 + else
37456 + cmdptr = tmpcmd;
37457 +
37458 + if (copy_from_user(cmdptr, hdr->cmdp, hdr->cmd_len))
37459 return -EFAULT;
37460 +
37461 + if (cmdptr != rq->cmd)
37462 + memcpy(rq->cmd, cmdptr, hdr->cmd_len);
37463 +
37464 if (blk_verify_command(rq->cmd, mode & FMODE_WRITE))
37465 return -EPERM;
37466
37467 @@ -420,6 +432,8 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
37468 int err;
37469 unsigned int in_len, out_len, bytes, opcode, cmdlen;
37470 char *buffer = NULL, sense[SCSI_SENSE_BUFFERSIZE];
37471 + unsigned char tmpcmd[sizeof(rq->__cmd)];
37472 + unsigned char *cmdptr;
37473
37474 if (!sic)
37475 return -EINVAL;
37476 @@ -458,9 +472,18 @@ int sg_scsi_ioctl(struct request_queue *q, struct gendisk *disk, fmode_t mode,
37477 */
37478 err = -EFAULT;
37479 rq->cmd_len = cmdlen;
37480 - if (copy_from_user(rq->cmd, sic->data, cmdlen))
37481 +
37482 + if (rq->cmd != rq->__cmd)
37483 + cmdptr = rq->cmd;
37484 + else
37485 + cmdptr = tmpcmd;
37486 +
37487 + if (copy_from_user(cmdptr, sic->data, cmdlen))
37488 goto error;
37489
37490 + if (rq->cmd != cmdptr)
37491 + memcpy(rq->cmd, cmdptr, cmdlen);
37492 +
37493 if (in_len && copy_from_user(buffer, sic->data + cmdlen, in_len))
37494 goto error;
37495
37496 diff --git a/crypto/cryptd.c b/crypto/cryptd.c
37497 index 22ba81f..1acac67 100644
37498 --- a/crypto/cryptd.c
37499 +++ b/crypto/cryptd.c
37500 @@ -63,7 +63,7 @@ struct cryptd_blkcipher_ctx {
37501
37502 struct cryptd_blkcipher_request_ctx {
37503 crypto_completion_t complete;
37504 -};
37505 +} __no_const;
37506
37507 struct cryptd_hash_ctx {
37508 struct crypto_shash *child;
37509 @@ -80,7 +80,7 @@ struct cryptd_aead_ctx {
37510
37511 struct cryptd_aead_request_ctx {
37512 crypto_completion_t complete;
37513 -};
37514 +} __no_const;
37515
37516 static void cryptd_queue_worker(struct work_struct *work);
37517
37518 diff --git a/crypto/pcrypt.c b/crypto/pcrypt.c
37519 index 45e7d51..2967121 100644
37520 --- a/crypto/pcrypt.c
37521 +++ b/crypto/pcrypt.c
37522 @@ -385,7 +385,7 @@ static int pcrypt_sysfs_add(struct padata_instance *pinst, const char *name)
37523 int ret;
37524
37525 pinst->kobj.kset = pcrypt_kset;
37526 - ret = kobject_add(&pinst->kobj, NULL, name);
37527 + ret = kobject_add(&pinst->kobj, NULL, "%s", name);
37528 if (!ret)
37529 kobject_uevent(&pinst->kobj, KOBJ_ADD);
37530
37531 diff --git a/crypto/scatterwalk.c b/crypto/scatterwalk.c
37532 index ea5815c..5880da6 100644
37533 --- a/crypto/scatterwalk.c
37534 +++ b/crypto/scatterwalk.c
37535 @@ -109,14 +109,20 @@ void scatterwalk_map_and_copy(void *buf, struct scatterlist *sg,
37536 {
37537 struct scatter_walk walk;
37538 struct scatterlist tmp[2];
37539 + void *realbuf = buf;
37540
37541 if (!nbytes)
37542 return;
37543
37544 sg = scatterwalk_ffwd(tmp, sg, start);
37545
37546 - if (sg_page(sg) == virt_to_page(buf) &&
37547 - sg->offset == offset_in_page(buf))
37548 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
37549 + if (object_starts_on_stack(buf))
37550 + realbuf = buf - current->stack + current->lowmem_stack;
37551 +#endif
37552 +
37553 + if (sg_page(sg) == virt_to_page(realbuf) &&
37554 + sg->offset == offset_in_page(realbuf))
37555 return;
37556
37557 scatterwalk_start(&walk, sg);
37558 diff --git a/crypto/zlib.c b/crypto/zlib.c
37559 index d51a30a..fb1f8af 100644
37560 --- a/crypto/zlib.c
37561 +++ b/crypto/zlib.c
37562 @@ -95,10 +95,10 @@ static int zlib_compress_setup(struct crypto_pcomp *tfm, const void *params,
37563 zlib_comp_exit(ctx);
37564
37565 window_bits = tb[ZLIB_COMP_WINDOWBITS]
37566 - ? nla_get_u32(tb[ZLIB_COMP_WINDOWBITS])
37567 + ? nla_get_s32(tb[ZLIB_COMP_WINDOWBITS])
37568 : MAX_WBITS;
37569 mem_level = tb[ZLIB_COMP_MEMLEVEL]
37570 - ? nla_get_u32(tb[ZLIB_COMP_MEMLEVEL])
37571 + ? nla_get_s32(tb[ZLIB_COMP_MEMLEVEL])
37572 : DEF_MEM_LEVEL;
37573
37574 workspacesize = zlib_deflate_workspacesize(window_bits, mem_level);
37575 diff --git a/drivers/acpi/acpi_video.c b/drivers/acpi/acpi_video.c
37576 index 8c2fe2f..fc47c12 100644
37577 --- a/drivers/acpi/acpi_video.c
37578 +++ b/drivers/acpi/acpi_video.c
37579 @@ -398,7 +398,7 @@ static int video_disable_backlight_sysfs_if(
37580 return 0;
37581 }
37582
37583 -static struct dmi_system_id video_dmi_table[] = {
37584 +static const struct dmi_system_id video_dmi_table[] = {
37585 /*
37586 * Broken _BQC workaround http://bugzilla.kernel.org/show_bug.cgi?id=13121
37587 */
37588 diff --git a/drivers/acpi/acpica/hwxfsleep.c b/drivers/acpi/acpica/hwxfsleep.c
37589 index 52dfd0d..8386baf 100644
37590 --- a/drivers/acpi/acpica/hwxfsleep.c
37591 +++ b/drivers/acpi/acpica/hwxfsleep.c
37592 @@ -70,11 +70,12 @@ static acpi_status acpi_hw_sleep_dispatch(u8 sleep_state, u32 function_id);
37593 /* Legacy functions are optional, based upon ACPI_REDUCED_HARDWARE */
37594
37595 static struct acpi_sleep_functions acpi_sleep_dispatch[] = {
37596 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep),
37597 - acpi_hw_extended_sleep},
37598 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep),
37599 - acpi_hw_extended_wake_prep},
37600 - {ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake), acpi_hw_extended_wake}
37601 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_sleep),
37602 + .extended_function = acpi_hw_extended_sleep},
37603 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake_prep),
37604 + .extended_function = acpi_hw_extended_wake_prep},
37605 + {.legacy_function = ACPI_HW_OPTIONAL_FUNCTION(acpi_hw_legacy_wake),
37606 + .extended_function = acpi_hw_extended_wake}
37607 };
37608
37609 /*
37610 diff --git a/drivers/acpi/apei/apei-internal.h b/drivers/acpi/apei/apei-internal.h
37611 index 16129c7..8b675cd 100644
37612 --- a/drivers/acpi/apei/apei-internal.h
37613 +++ b/drivers/acpi/apei/apei-internal.h
37614 @@ -19,7 +19,7 @@ typedef int (*apei_exec_ins_func_t)(struct apei_exec_context *ctx,
37615 struct apei_exec_ins_type {
37616 u32 flags;
37617 apei_exec_ins_func_t run;
37618 -};
37619 +} __do_const;
37620
37621 struct apei_exec_context {
37622 u32 ip;
37623 diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
37624 index 2bfd53c..391e9a4 100644
37625 --- a/drivers/acpi/apei/ghes.c
37626 +++ b/drivers/acpi/apei/ghes.c
37627 @@ -478,7 +478,7 @@ static void __ghes_print_estatus(const char *pfx,
37628 const struct acpi_hest_generic *generic,
37629 const struct acpi_hest_generic_status *estatus)
37630 {
37631 - static atomic_t seqno;
37632 + static atomic_unchecked_t seqno;
37633 unsigned int curr_seqno;
37634 char pfx_seq[64];
37635
37636 @@ -489,7 +489,7 @@ static void __ghes_print_estatus(const char *pfx,
37637 else
37638 pfx = KERN_ERR;
37639 }
37640 - curr_seqno = atomic_inc_return(&seqno);
37641 + curr_seqno = atomic_inc_return_unchecked(&seqno);
37642 snprintf(pfx_seq, sizeof(pfx_seq), "%s{%u}" HW_ERR, pfx, curr_seqno);
37643 printk("%s""Hardware error from APEI Generic Hardware Error Source: %d\n",
37644 pfx_seq, generic->header.source_id);
37645 diff --git a/drivers/acpi/bgrt.c b/drivers/acpi/bgrt.c
37646 index a83e3c6..c3d617f 100644
37647 --- a/drivers/acpi/bgrt.c
37648 +++ b/drivers/acpi/bgrt.c
37649 @@ -86,8 +86,10 @@ static int __init bgrt_init(void)
37650 if (!bgrt_image)
37651 return -ENODEV;
37652
37653 - bin_attr_image.private = bgrt_image;
37654 - bin_attr_image.size = bgrt_image_size;
37655 + pax_open_kernel();
37656 + *(void **)&bin_attr_image.private = bgrt_image;
37657 + *(size_t *)&bin_attr_image.size = bgrt_image_size;
37658 + pax_close_kernel();
37659
37660 bgrt_kobj = kobject_create_and_add("bgrt", acpi_kobj);
37661 if (!bgrt_kobj)
37662 diff --git a/drivers/acpi/blacklist.c b/drivers/acpi/blacklist.c
37663 index 278dc4b..976433d 100644
37664 --- a/drivers/acpi/blacklist.c
37665 +++ b/drivers/acpi/blacklist.c
37666 @@ -51,7 +51,7 @@ struct acpi_blacklist_item {
37667 u32 is_critical_error;
37668 };
37669
37670 -static struct dmi_system_id acpi_osi_dmi_table[] __initdata;
37671 +static const struct dmi_system_id acpi_osi_dmi_table[] __initconst;
37672
37673 /*
37674 * POLICY: If *anything* doesn't work, put it on the blacklist.
37675 @@ -172,7 +172,7 @@ static int __init dmi_enable_rev_override(const struct dmi_system_id *d)
37676 }
37677 #endif
37678
37679 -static struct dmi_system_id acpi_osi_dmi_table[] __initdata = {
37680 +static const struct dmi_system_id acpi_osi_dmi_table[] __initconst = {
37681 {
37682 .callback = dmi_disable_osi_vista,
37683 .ident = "Fujitsu Siemens",
37684 diff --git a/drivers/acpi/bus.c b/drivers/acpi/bus.c
37685 index 513e7230e..802015a 100644
37686 --- a/drivers/acpi/bus.c
37687 +++ b/drivers/acpi/bus.c
37688 @@ -67,7 +67,7 @@ static int set_copy_dsdt(const struct dmi_system_id *id)
37689 }
37690 #endif
37691
37692 -static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37693 +static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
37694 /*
37695 * Invoke DSDT corruption work-around on all Toshiba Satellite.
37696 * https://bugzilla.kernel.org/show_bug.cgi?id=14679
37697 @@ -83,7 +83,7 @@ static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37698 {}
37699 };
37700 #else
37701 -static struct dmi_system_id dsdt_dmi_table[] __initdata = {
37702 +static const struct dmi_system_id dsdt_dmi_table[] __initconst = {
37703 {}
37704 };
37705 #endif
37706 diff --git a/drivers/acpi/custom_method.c b/drivers/acpi/custom_method.c
37707 index c68e724..e863008 100644
37708 --- a/drivers/acpi/custom_method.c
37709 +++ b/drivers/acpi/custom_method.c
37710 @@ -29,6 +29,10 @@ static ssize_t cm_write(struct file *file, const char __user * user_buf,
37711 struct acpi_table_header table;
37712 acpi_status status;
37713
37714 +#ifdef CONFIG_GRKERNSEC_KMEM
37715 + return -EPERM;
37716 +#endif
37717 +
37718 if (!(*ppos)) {
37719 /* parse the table header to get the table length */
37720 if (count <= sizeof(struct acpi_table_header))
37721 diff --git a/drivers/acpi/device_pm.c b/drivers/acpi/device_pm.c
37722 index 88dbbb1..90714c0 100644
37723 --- a/drivers/acpi/device_pm.c
37724 +++ b/drivers/acpi/device_pm.c
37725 @@ -1045,6 +1045,8 @@ EXPORT_SYMBOL_GPL(acpi_subsys_freeze);
37726
37727 #endif /* CONFIG_PM_SLEEP */
37728
37729 +static void acpi_dev_pm_detach(struct device *dev, bool power_off);
37730 +
37731 static struct dev_pm_domain acpi_general_pm_domain = {
37732 .ops = {
37733 .runtime_suspend = acpi_subsys_runtime_suspend,
37734 @@ -1061,6 +1063,7 @@ static struct dev_pm_domain acpi_general_pm_domain = {
37735 .restore_early = acpi_subsys_resume_early,
37736 #endif
37737 },
37738 + .detach = acpi_dev_pm_detach
37739 };
37740
37741 /**
37742 @@ -1130,7 +1133,6 @@ int acpi_dev_pm_attach(struct device *dev, bool power_on)
37743 acpi_device_wakeup(adev, ACPI_STATE_S0, false);
37744 }
37745
37746 - dev->pm_domain->detach = acpi_dev_pm_detach;
37747 return 0;
37748 }
37749 EXPORT_SYMBOL_GPL(acpi_dev_pm_attach);
37750 diff --git a/drivers/acpi/ec.c b/drivers/acpi/ec.c
37751 index 9d4761d..ece2163 100644
37752 --- a/drivers/acpi/ec.c
37753 +++ b/drivers/acpi/ec.c
37754 @@ -1434,7 +1434,7 @@ static int ec_clear_on_resume(const struct dmi_system_id *id)
37755 return 0;
37756 }
37757
37758 -static struct dmi_system_id ec_dmi_table[] __initdata = {
37759 +static const struct dmi_system_id ec_dmi_table[] __initconst = {
37760 {
37761 ec_skip_dsdt_scan, "Compal JFL92", {
37762 DMI_MATCH(DMI_BIOS_VENDOR, "COMPAL"),
37763 diff --git a/drivers/acpi/pci_slot.c b/drivers/acpi/pci_slot.c
37764 index 139d9e4..9a9d799 100644
37765 --- a/drivers/acpi/pci_slot.c
37766 +++ b/drivers/acpi/pci_slot.c
37767 @@ -195,7 +195,7 @@ static int do_sta_before_sun(const struct dmi_system_id *d)
37768 return 0;
37769 }
37770
37771 -static struct dmi_system_id acpi_pci_slot_dmi_table[] __initdata = {
37772 +static const struct dmi_system_id acpi_pci_slot_dmi_table[] __initconst = {
37773 /*
37774 * Fujitsu Primequest machines will return 1023 to indicate an
37775 * error if the _SUN method is evaluated on SxFy objects that
37776 diff --git a/drivers/acpi/processor_driver.c b/drivers/acpi/processor_driver.c
37777 index d9f7158..168e742 100644
37778 --- a/drivers/acpi/processor_driver.c
37779 +++ b/drivers/acpi/processor_driver.c
37780 @@ -159,7 +159,7 @@ static int acpi_cpu_soft_notify(struct notifier_block *nfb,
37781 return NOTIFY_OK;
37782 }
37783
37784 -static struct notifier_block __refdata acpi_cpu_notifier = {
37785 +static struct notifier_block __refconst acpi_cpu_notifier = {
37786 .notifier_call = acpi_cpu_soft_notify,
37787 };
37788
37789 diff --git a/drivers/acpi/processor_idle.c b/drivers/acpi/processor_idle.c
37790 index d540f42..d5b32ac 100644
37791 --- a/drivers/acpi/processor_idle.c
37792 +++ b/drivers/acpi/processor_idle.c
37793 @@ -910,7 +910,7 @@ static int acpi_processor_setup_cpuidle_states(struct acpi_processor *pr)
37794 {
37795 int i, count = CPUIDLE_DRIVER_STATE_START;
37796 struct acpi_processor_cx *cx;
37797 - struct cpuidle_state *state;
37798 + cpuidle_state_no_const *state;
37799 struct cpuidle_driver *drv = &acpi_idle_driver;
37800
37801 if (!pr->flags.power_setup_done)
37802 diff --git a/drivers/acpi/processor_pdc.c b/drivers/acpi/processor_pdc.c
37803 index 7cfbda4..74f738c 100644
37804 --- a/drivers/acpi/processor_pdc.c
37805 +++ b/drivers/acpi/processor_pdc.c
37806 @@ -173,7 +173,7 @@ static int __init set_no_mwait(const struct dmi_system_id *id)
37807 return 0;
37808 }
37809
37810 -static struct dmi_system_id processor_idle_dmi_table[] __initdata = {
37811 +static const struct dmi_system_id processor_idle_dmi_table[] __initconst = {
37812 {
37813 set_no_mwait, "Extensa 5220", {
37814 DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies LTD"),
37815 diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
37816 index 2f0d4db..b9e9b15 100644
37817 --- a/drivers/acpi/sleep.c
37818 +++ b/drivers/acpi/sleep.c
37819 @@ -148,7 +148,7 @@ static int __init init_nvs_nosave(const struct dmi_system_id *d)
37820 return 0;
37821 }
37822
37823 -static struct dmi_system_id acpisleep_dmi_table[] __initdata = {
37824 +static const struct dmi_system_id acpisleep_dmi_table[] __initconst = {
37825 {
37826 .callback = init_old_suspend_ordering,
37827 .ident = "Abit KN9 (nForce4 variant)",
37828 diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
37829 index 0876d77b..3ba0127 100644
37830 --- a/drivers/acpi/sysfs.c
37831 +++ b/drivers/acpi/sysfs.c
37832 @@ -423,11 +423,11 @@ static u32 num_counters;
37833 static struct attribute **all_attrs;
37834 static u32 acpi_gpe_count;
37835
37836 -static struct attribute_group interrupt_stats_attr_group = {
37837 +static attribute_group_no_const interrupt_stats_attr_group = {
37838 .name = "interrupts",
37839 };
37840
37841 -static struct kobj_attribute *counter_attrs;
37842 +static kobj_attribute_no_const *counter_attrs;
37843
37844 static void delete_gpe_attr_array(void)
37845 {
37846 diff --git a/drivers/acpi/thermal.c b/drivers/acpi/thermal.c
37847 index 6d4e44e..44fb839 100644
37848 --- a/drivers/acpi/thermal.c
37849 +++ b/drivers/acpi/thermal.c
37850 @@ -1212,7 +1212,7 @@ static int thermal_psv(const struct dmi_system_id *d) {
37851 return 0;
37852 }
37853
37854 -static struct dmi_system_id thermal_dmi_table[] __initdata = {
37855 +static const struct dmi_system_id thermal_dmi_table[] __initconst = {
37856 /*
37857 * Award BIOS on this AOpen makes thermal control almost worthless.
37858 * http://bugzilla.kernel.org/show_bug.cgi?id=8842
37859 diff --git a/drivers/acpi/video_detect.c b/drivers/acpi/video_detect.c
37860 index 2922f1f..6c2fdaf 100644
37861 --- a/drivers/acpi/video_detect.c
37862 +++ b/drivers/acpi/video_detect.c
37863 @@ -41,7 +41,6 @@ ACPI_MODULE_NAME("video");
37864 void acpi_video_unregister_backlight(void);
37865
37866 static bool backlight_notifier_registered;
37867 -static struct notifier_block backlight_nb;
37868 static struct work_struct backlight_notify_work;
37869
37870 static enum acpi_backlight_type acpi_backlight_cmdline = acpi_backlight_undef;
37871 @@ -284,6 +283,10 @@ static int acpi_video_backlight_notify(struct notifier_block *nb,
37872 return NOTIFY_OK;
37873 }
37874
37875 +static struct notifier_block backlight_nb = {
37876 + .notifier_call = acpi_video_backlight_notify,
37877 +};
37878 +
37879 /*
37880 * Determine which type of backlight interface to use on this system,
37881 * First check cmdline, then dmi quirks, then do autodetect.
37882 @@ -314,8 +317,6 @@ enum acpi_backlight_type acpi_video_get_backlight_type(void)
37883 &video_caps, NULL);
37884 INIT_WORK(&backlight_notify_work,
37885 acpi_video_backlight_notify_work);
37886 - backlight_nb.notifier_call = acpi_video_backlight_notify;
37887 - backlight_nb.priority = 0;
37888 if (backlight_register_notifier(&backlight_nb) == 0)
37889 backlight_notifier_registered = true;
37890 init_done = true;
37891 diff --git a/drivers/ata/libata-core.c b/drivers/ata/libata-core.c
37892 index 790e0de..6bae378 100644
37893 --- a/drivers/ata/libata-core.c
37894 +++ b/drivers/ata/libata-core.c
37895 @@ -102,7 +102,7 @@ static unsigned int ata_dev_set_xfermode(struct ata_device *dev);
37896 static void ata_dev_xfermask(struct ata_device *dev);
37897 static unsigned long ata_dev_blacklisted(const struct ata_device *dev);
37898
37899 -atomic_t ata_print_id = ATOMIC_INIT(0);
37900 +atomic_unchecked_t ata_print_id = ATOMIC_INIT(0);
37901
37902 struct ata_force_param {
37903 const char *name;
37904 @@ -4800,7 +4800,7 @@ void ata_qc_free(struct ata_queued_cmd *qc)
37905 struct ata_port *ap;
37906 unsigned int tag;
37907
37908 - WARN_ON_ONCE(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37909 + BUG_ON(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37910 ap = qc->ap;
37911
37912 qc->flags = 0;
37913 @@ -4817,7 +4817,7 @@ void __ata_qc_complete(struct ata_queued_cmd *qc)
37914 struct ata_port *ap;
37915 struct ata_link *link;
37916
37917 - WARN_ON_ONCE(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37918 + BUG_ON(qc == NULL); /* ata_qc_from_tag _might_ return NULL */
37919 WARN_ON_ONCE(!(qc->flags & ATA_QCFLAG_ACTIVE));
37920 ap = qc->ap;
37921 link = qc->dev->link;
37922 @@ -5924,6 +5924,7 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
37923 return;
37924
37925 spin_lock(&lock);
37926 + pax_open_kernel();
37927
37928 for (cur = ops->inherits; cur; cur = cur->inherits) {
37929 void **inherit = (void **)cur;
37930 @@ -5937,8 +5938,9 @@ static void ata_finalize_port_ops(struct ata_port_operations *ops)
37931 if (IS_ERR(*pp))
37932 *pp = NULL;
37933
37934 - ops->inherits = NULL;
37935 + *(struct ata_port_operations **)&ops->inherits = NULL;
37936
37937 + pax_close_kernel();
37938 spin_unlock(&lock);
37939 }
37940
37941 @@ -6134,7 +6136,7 @@ int ata_host_register(struct ata_host *host, struct scsi_host_template *sht)
37942
37943 /* give ports names and add SCSI hosts */
37944 for (i = 0; i < host->n_ports; i++) {
37945 - host->ports[i]->print_id = atomic_inc_return(&ata_print_id);
37946 + host->ports[i]->print_id = atomic_inc_return_unchecked(&ata_print_id);
37947 host->ports[i]->local_port_no = i + 1;
37948 }
37949
37950 diff --git a/drivers/ata/libata-scsi.c b/drivers/ata/libata-scsi.c
37951 index 0d7f0da..bc20aa6 100644
37952 --- a/drivers/ata/libata-scsi.c
37953 +++ b/drivers/ata/libata-scsi.c
37954 @@ -4193,7 +4193,7 @@ int ata_sas_port_init(struct ata_port *ap)
37955
37956 if (rc)
37957 return rc;
37958 - ap->print_id = atomic_inc_return(&ata_print_id);
37959 + ap->print_id = atomic_inc_return_unchecked(&ata_print_id);
37960 return 0;
37961 }
37962 EXPORT_SYMBOL_GPL(ata_sas_port_init);
37963 diff --git a/drivers/ata/libata.h b/drivers/ata/libata.h
37964 index f840ca1..edd6ef3 100644
37965 --- a/drivers/ata/libata.h
37966 +++ b/drivers/ata/libata.h
37967 @@ -53,7 +53,7 @@ enum {
37968 ATA_DNXFER_QUIET = (1 << 31),
37969 };
37970
37971 -extern atomic_t ata_print_id;
37972 +extern atomic_unchecked_t ata_print_id;
37973 extern int atapi_passthru16;
37974 extern int libata_fua;
37975 extern int libata_noacpi;
37976 diff --git a/drivers/ata/pata_arasan_cf.c b/drivers/ata/pata_arasan_cf.c
37977 index 5d9ee99..8fa2585 100644
37978 --- a/drivers/ata/pata_arasan_cf.c
37979 +++ b/drivers/ata/pata_arasan_cf.c
37980 @@ -865,7 +865,9 @@ static int arasan_cf_probe(struct platform_device *pdev)
37981 /* Handle platform specific quirks */
37982 if (quirk) {
37983 if (quirk & CF_BROKEN_PIO) {
37984 - ap->ops->set_piomode = NULL;
37985 + pax_open_kernel();
37986 + *(void **)&ap->ops->set_piomode = NULL;
37987 + pax_close_kernel();
37988 ap->pio_mask = 0;
37989 }
37990 if (quirk & CF_BROKEN_MWDMA)
37991 diff --git a/drivers/atm/adummy.c b/drivers/atm/adummy.c
37992 index f9b983a..887b9d8 100644
37993 --- a/drivers/atm/adummy.c
37994 +++ b/drivers/atm/adummy.c
37995 @@ -114,7 +114,7 @@ adummy_send(struct atm_vcc *vcc, struct sk_buff *skb)
37996 vcc->pop(vcc, skb);
37997 else
37998 dev_kfree_skb_any(skb);
37999 - atomic_inc(&vcc->stats->tx);
38000 + atomic_inc_unchecked(&vcc->stats->tx);
38001
38002 return 0;
38003 }
38004 diff --git a/drivers/atm/ambassador.c b/drivers/atm/ambassador.c
38005 index f1a9198..f466a4a 100644
38006 --- a/drivers/atm/ambassador.c
38007 +++ b/drivers/atm/ambassador.c
38008 @@ -454,7 +454,7 @@ static void tx_complete (amb_dev * dev, tx_out * tx) {
38009 PRINTD (DBG_FLOW|DBG_TX, "tx_complete %p %p", dev, tx);
38010
38011 // VC layer stats
38012 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
38013 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
38014
38015 // free the descriptor
38016 kfree (tx_descr);
38017 @@ -495,7 +495,7 @@ static void rx_complete (amb_dev * dev, rx_out * rx) {
38018 dump_skb ("<<<", vc, skb);
38019
38020 // VC layer stats
38021 - atomic_inc(&atm_vcc->stats->rx);
38022 + atomic_inc_unchecked(&atm_vcc->stats->rx);
38023 __net_timestamp(skb);
38024 // end of our responsibility
38025 atm_vcc->push (atm_vcc, skb);
38026 @@ -510,7 +510,7 @@ static void rx_complete (amb_dev * dev, rx_out * rx) {
38027 } else {
38028 PRINTK (KERN_INFO, "dropped over-size frame");
38029 // should we count this?
38030 - atomic_inc(&atm_vcc->stats->rx_drop);
38031 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
38032 }
38033
38034 } else {
38035 @@ -1338,7 +1338,7 @@ static int amb_send (struct atm_vcc * atm_vcc, struct sk_buff * skb) {
38036 }
38037
38038 if (check_area (skb->data, skb->len)) {
38039 - atomic_inc(&atm_vcc->stats->tx_err);
38040 + atomic_inc_unchecked(&atm_vcc->stats->tx_err);
38041 return -ENOMEM; // ?
38042 }
38043
38044 diff --git a/drivers/atm/atmtcp.c b/drivers/atm/atmtcp.c
38045 index 480fa6f..947067c 100644
38046 --- a/drivers/atm/atmtcp.c
38047 +++ b/drivers/atm/atmtcp.c
38048 @@ -206,7 +206,7 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
38049 if (vcc->pop) vcc->pop(vcc,skb);
38050 else dev_kfree_skb(skb);
38051 if (dev_data) return 0;
38052 - atomic_inc(&vcc->stats->tx_err);
38053 + atomic_inc_unchecked(&vcc->stats->tx_err);
38054 return -ENOLINK;
38055 }
38056 size = skb->len+sizeof(struct atmtcp_hdr);
38057 @@ -214,7 +214,7 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
38058 if (!new_skb) {
38059 if (vcc->pop) vcc->pop(vcc,skb);
38060 else dev_kfree_skb(skb);
38061 - atomic_inc(&vcc->stats->tx_err);
38062 + atomic_inc_unchecked(&vcc->stats->tx_err);
38063 return -ENOBUFS;
38064 }
38065 hdr = (void *) skb_put(new_skb,sizeof(struct atmtcp_hdr));
38066 @@ -225,8 +225,8 @@ static int atmtcp_v_send(struct atm_vcc *vcc,struct sk_buff *skb)
38067 if (vcc->pop) vcc->pop(vcc,skb);
38068 else dev_kfree_skb(skb);
38069 out_vcc->push(out_vcc,new_skb);
38070 - atomic_inc(&vcc->stats->tx);
38071 - atomic_inc(&out_vcc->stats->rx);
38072 + atomic_inc_unchecked(&vcc->stats->tx);
38073 + atomic_inc_unchecked(&out_vcc->stats->rx);
38074 return 0;
38075 }
38076
38077 @@ -300,7 +300,7 @@ static int atmtcp_c_send(struct atm_vcc *vcc,struct sk_buff *skb)
38078 read_unlock(&vcc_sklist_lock);
38079 if (!out_vcc) {
38080 result = -EUNATCH;
38081 - atomic_inc(&vcc->stats->tx_err);
38082 + atomic_inc_unchecked(&vcc->stats->tx_err);
38083 goto done;
38084 }
38085 skb_pull(skb,sizeof(struct atmtcp_hdr));
38086 @@ -312,8 +312,8 @@ static int atmtcp_c_send(struct atm_vcc *vcc,struct sk_buff *skb)
38087 __net_timestamp(new_skb);
38088 skb_copy_from_linear_data(skb, skb_put(new_skb, skb->len), skb->len);
38089 out_vcc->push(out_vcc,new_skb);
38090 - atomic_inc(&vcc->stats->tx);
38091 - atomic_inc(&out_vcc->stats->rx);
38092 + atomic_inc_unchecked(&vcc->stats->tx);
38093 + atomic_inc_unchecked(&out_vcc->stats->rx);
38094 done:
38095 if (vcc->pop) vcc->pop(vcc,skb);
38096 else dev_kfree_skb(skb);
38097 diff --git a/drivers/atm/eni.c b/drivers/atm/eni.c
38098 index 6339efd..2b441d5 100644
38099 --- a/drivers/atm/eni.c
38100 +++ b/drivers/atm/eni.c
38101 @@ -525,7 +525,7 @@ static int rx_aal0(struct atm_vcc *vcc)
38102 DPRINTK(DEV_LABEL "(itf %d): trashing empty cell\n",
38103 vcc->dev->number);
38104 length = 0;
38105 - atomic_inc(&vcc->stats->rx_err);
38106 + atomic_inc_unchecked(&vcc->stats->rx_err);
38107 }
38108 else {
38109 length = ATM_CELL_SIZE-1; /* no HEC */
38110 @@ -580,7 +580,7 @@ static int rx_aal5(struct atm_vcc *vcc)
38111 size);
38112 }
38113 eff = length = 0;
38114 - atomic_inc(&vcc->stats->rx_err);
38115 + atomic_inc_unchecked(&vcc->stats->rx_err);
38116 }
38117 else {
38118 size = (descr & MID_RED_COUNT)*(ATM_CELL_PAYLOAD >> 2);
38119 @@ -597,7 +597,7 @@ static int rx_aal5(struct atm_vcc *vcc)
38120 "(VCI=%d,length=%ld,size=%ld (descr 0x%lx))\n",
38121 vcc->dev->number,vcc->vci,length,size << 2,descr);
38122 length = eff = 0;
38123 - atomic_inc(&vcc->stats->rx_err);
38124 + atomic_inc_unchecked(&vcc->stats->rx_err);
38125 }
38126 }
38127 skb = eff ? atm_alloc_charge(vcc,eff << 2,GFP_ATOMIC) : NULL;
38128 @@ -770,7 +770,7 @@ rx_dequeued++;
38129 vcc->push(vcc,skb);
38130 pushed++;
38131 }
38132 - atomic_inc(&vcc->stats->rx);
38133 + atomic_inc_unchecked(&vcc->stats->rx);
38134 }
38135 wake_up(&eni_dev->rx_wait);
38136 }
38137 @@ -1230,7 +1230,7 @@ static void dequeue_tx(struct atm_dev *dev)
38138 DMA_TO_DEVICE);
38139 if (vcc->pop) vcc->pop(vcc,skb);
38140 else dev_kfree_skb_irq(skb);
38141 - atomic_inc(&vcc->stats->tx);
38142 + atomic_inc_unchecked(&vcc->stats->tx);
38143 wake_up(&eni_dev->tx_wait);
38144 dma_complete++;
38145 }
38146 diff --git a/drivers/atm/firestream.c b/drivers/atm/firestream.c
38147 index 82f2ae0..f205c02 100644
38148 --- a/drivers/atm/firestream.c
38149 +++ b/drivers/atm/firestream.c
38150 @@ -749,7 +749,7 @@ static void process_txdone_queue (struct fs_dev *dev, struct queue *q)
38151 }
38152 }
38153
38154 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
38155 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
38156
38157 fs_dprintk (FS_DEBUG_TXMEM, "i");
38158 fs_dprintk (FS_DEBUG_ALLOC, "Free t-skb: %p\n", skb);
38159 @@ -816,7 +816,7 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
38160 #endif
38161 skb_put (skb, qe->p1 & 0xffff);
38162 ATM_SKB(skb)->vcc = atm_vcc;
38163 - atomic_inc(&atm_vcc->stats->rx);
38164 + atomic_inc_unchecked(&atm_vcc->stats->rx);
38165 __net_timestamp(skb);
38166 fs_dprintk (FS_DEBUG_ALLOC, "Free rec-skb: %p (pushed)\n", skb);
38167 atm_vcc->push (atm_vcc, skb);
38168 @@ -837,12 +837,12 @@ static void process_incoming (struct fs_dev *dev, struct queue *q)
38169 kfree (pe);
38170 }
38171 if (atm_vcc)
38172 - atomic_inc(&atm_vcc->stats->rx_drop);
38173 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
38174 break;
38175 case 0x1f: /* Reassembly abort: no buffers. */
38176 /* Silently increment error counter. */
38177 if (atm_vcc)
38178 - atomic_inc(&atm_vcc->stats->rx_drop);
38179 + atomic_inc_unchecked(&atm_vcc->stats->rx_drop);
38180 break;
38181 default: /* Hmm. Haven't written the code to handle the others yet... -- REW */
38182 printk (KERN_WARNING "Don't know what to do with RX status %x: %s.\n",
38183 diff --git a/drivers/atm/fore200e.c b/drivers/atm/fore200e.c
38184 index 75dde90..4309ead 100644
38185 --- a/drivers/atm/fore200e.c
38186 +++ b/drivers/atm/fore200e.c
38187 @@ -932,9 +932,9 @@ fore200e_tx_irq(struct fore200e* fore200e)
38188 #endif
38189 /* check error condition */
38190 if (*entry->status & STATUS_ERROR)
38191 - atomic_inc(&vcc->stats->tx_err);
38192 + atomic_inc_unchecked(&vcc->stats->tx_err);
38193 else
38194 - atomic_inc(&vcc->stats->tx);
38195 + atomic_inc_unchecked(&vcc->stats->tx);
38196 }
38197 }
38198
38199 @@ -1083,7 +1083,7 @@ fore200e_push_rpd(struct fore200e* fore200e, struct atm_vcc* vcc, struct rpd* rp
38200 if (skb == NULL) {
38201 DPRINTK(2, "unable to alloc new skb, rx PDU length = %d\n", pdu_len);
38202
38203 - atomic_inc(&vcc->stats->rx_drop);
38204 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38205 return -ENOMEM;
38206 }
38207
38208 @@ -1126,14 +1126,14 @@ fore200e_push_rpd(struct fore200e* fore200e, struct atm_vcc* vcc, struct rpd* rp
38209
38210 dev_kfree_skb_any(skb);
38211
38212 - atomic_inc(&vcc->stats->rx_drop);
38213 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38214 return -ENOMEM;
38215 }
38216
38217 ASSERT(atomic_read(&sk_atm(vcc)->sk_wmem_alloc) >= 0);
38218
38219 vcc->push(vcc, skb);
38220 - atomic_inc(&vcc->stats->rx);
38221 + atomic_inc_unchecked(&vcc->stats->rx);
38222
38223 ASSERT(atomic_read(&sk_atm(vcc)->sk_wmem_alloc) >= 0);
38224
38225 @@ -1211,7 +1211,7 @@ fore200e_rx_irq(struct fore200e* fore200e)
38226 DPRINTK(2, "damaged PDU on %d.%d.%d\n",
38227 fore200e->atm_dev->number,
38228 entry->rpd->atm_header.vpi, entry->rpd->atm_header.vci);
38229 - atomic_inc(&vcc->stats->rx_err);
38230 + atomic_inc_unchecked(&vcc->stats->rx_err);
38231 }
38232 }
38233
38234 @@ -1656,7 +1656,7 @@ fore200e_send(struct atm_vcc *vcc, struct sk_buff *skb)
38235 goto retry_here;
38236 }
38237
38238 - atomic_inc(&vcc->stats->tx_err);
38239 + atomic_inc_unchecked(&vcc->stats->tx_err);
38240
38241 fore200e->tx_sat++;
38242 DPRINTK(2, "tx queue of device %s is saturated, PDU dropped - heartbeat is %08x\n",
38243 diff --git a/drivers/atm/he.c b/drivers/atm/he.c
38244 index a8da3a5..67cf6c2 100644
38245 --- a/drivers/atm/he.c
38246 +++ b/drivers/atm/he.c
38247 @@ -1692,7 +1692,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38248
38249 if (RBRQ_HBUF_ERR(he_dev->rbrq_head)) {
38250 hprintk("HBUF_ERR! (cid 0x%x)\n", cid);
38251 - atomic_inc(&vcc->stats->rx_drop);
38252 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38253 goto return_host_buffers;
38254 }
38255
38256 @@ -1719,7 +1719,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38257 RBRQ_LEN_ERR(he_dev->rbrq_head)
38258 ? "LEN_ERR" : "",
38259 vcc->vpi, vcc->vci);
38260 - atomic_inc(&vcc->stats->rx_err);
38261 + atomic_inc_unchecked(&vcc->stats->rx_err);
38262 goto return_host_buffers;
38263 }
38264
38265 @@ -1771,7 +1771,7 @@ he_service_rbrq(struct he_dev *he_dev, int group)
38266 vcc->push(vcc, skb);
38267 spin_lock(&he_dev->global_lock);
38268
38269 - atomic_inc(&vcc->stats->rx);
38270 + atomic_inc_unchecked(&vcc->stats->rx);
38271
38272 return_host_buffers:
38273 ++pdus_assembled;
38274 @@ -2097,7 +2097,7 @@ __enqueue_tpd(struct he_dev *he_dev, struct he_tpd *tpd, unsigned cid)
38275 tpd->vcc->pop(tpd->vcc, tpd->skb);
38276 else
38277 dev_kfree_skb_any(tpd->skb);
38278 - atomic_inc(&tpd->vcc->stats->tx_err);
38279 + atomic_inc_unchecked(&tpd->vcc->stats->tx_err);
38280 }
38281 dma_pool_free(he_dev->tpd_pool, tpd, TPD_ADDR(tpd->status));
38282 return;
38283 @@ -2509,7 +2509,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38284 vcc->pop(vcc, skb);
38285 else
38286 dev_kfree_skb_any(skb);
38287 - atomic_inc(&vcc->stats->tx_err);
38288 + atomic_inc_unchecked(&vcc->stats->tx_err);
38289 return -EINVAL;
38290 }
38291
38292 @@ -2520,7 +2520,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38293 vcc->pop(vcc, skb);
38294 else
38295 dev_kfree_skb_any(skb);
38296 - atomic_inc(&vcc->stats->tx_err);
38297 + atomic_inc_unchecked(&vcc->stats->tx_err);
38298 return -EINVAL;
38299 }
38300 #endif
38301 @@ -2532,7 +2532,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38302 vcc->pop(vcc, skb);
38303 else
38304 dev_kfree_skb_any(skb);
38305 - atomic_inc(&vcc->stats->tx_err);
38306 + atomic_inc_unchecked(&vcc->stats->tx_err);
38307 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38308 return -ENOMEM;
38309 }
38310 @@ -2574,7 +2574,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38311 vcc->pop(vcc, skb);
38312 else
38313 dev_kfree_skb_any(skb);
38314 - atomic_inc(&vcc->stats->tx_err);
38315 + atomic_inc_unchecked(&vcc->stats->tx_err);
38316 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38317 return -ENOMEM;
38318 }
38319 @@ -2605,7 +2605,7 @@ he_send(struct atm_vcc *vcc, struct sk_buff *skb)
38320 __enqueue_tpd(he_dev, tpd, cid);
38321 spin_unlock_irqrestore(&he_dev->global_lock, flags);
38322
38323 - atomic_inc(&vcc->stats->tx);
38324 + atomic_inc_unchecked(&vcc->stats->tx);
38325
38326 return 0;
38327 }
38328 diff --git a/drivers/atm/horizon.c b/drivers/atm/horizon.c
38329 index 527bbd5..96570c8 100644
38330 --- a/drivers/atm/horizon.c
38331 +++ b/drivers/atm/horizon.c
38332 @@ -1018,7 +1018,7 @@ static void rx_schedule (hrz_dev * dev, int irq) {
38333 {
38334 struct atm_vcc * vcc = ATM_SKB(skb)->vcc;
38335 // VC layer stats
38336 - atomic_inc(&vcc->stats->rx);
38337 + atomic_inc_unchecked(&vcc->stats->rx);
38338 __net_timestamp(skb);
38339 // end of our responsibility
38340 vcc->push (vcc, skb);
38341 @@ -1170,7 +1170,7 @@ static void tx_schedule (hrz_dev * const dev, int irq) {
38342 dev->tx_iovec = NULL;
38343
38344 // VC layer stats
38345 - atomic_inc(&ATM_SKB(skb)->vcc->stats->tx);
38346 + atomic_inc_unchecked(&ATM_SKB(skb)->vcc->stats->tx);
38347
38348 // free the skb
38349 hrz_kfree_skb (skb);
38350 diff --git a/drivers/atm/idt77252.c b/drivers/atm/idt77252.c
38351 index 074616b..d6b3d5f 100644
38352 --- a/drivers/atm/idt77252.c
38353 +++ b/drivers/atm/idt77252.c
38354 @@ -811,7 +811,7 @@ drain_scq(struct idt77252_dev *card, struct vc_map *vc)
38355 else
38356 dev_kfree_skb(skb);
38357
38358 - atomic_inc(&vcc->stats->tx);
38359 + atomic_inc_unchecked(&vcc->stats->tx);
38360 }
38361
38362 atomic_dec(&scq->used);
38363 @@ -1073,13 +1073,13 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38364 if ((sb = dev_alloc_skb(64)) == NULL) {
38365 printk("%s: Can't allocate buffers for aal0.\n",
38366 card->name);
38367 - atomic_add(i, &vcc->stats->rx_drop);
38368 + atomic_add_unchecked(i, &vcc->stats->rx_drop);
38369 break;
38370 }
38371 if (!atm_charge(vcc, sb->truesize)) {
38372 RXPRINTK("%s: atm_charge() dropped aal0 packets.\n",
38373 card->name);
38374 - atomic_add(i - 1, &vcc->stats->rx_drop);
38375 + atomic_add_unchecked(i - 1, &vcc->stats->rx_drop);
38376 dev_kfree_skb(sb);
38377 break;
38378 }
38379 @@ -1096,7 +1096,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38380 ATM_SKB(sb)->vcc = vcc;
38381 __net_timestamp(sb);
38382 vcc->push(vcc, sb);
38383 - atomic_inc(&vcc->stats->rx);
38384 + atomic_inc_unchecked(&vcc->stats->rx);
38385
38386 cell += ATM_CELL_PAYLOAD;
38387 }
38388 @@ -1133,13 +1133,13 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38389 "(CDC: %08x)\n",
38390 card->name, len, rpp->len, readl(SAR_REG_CDC));
38391 recycle_rx_pool_skb(card, rpp);
38392 - atomic_inc(&vcc->stats->rx_err);
38393 + atomic_inc_unchecked(&vcc->stats->rx_err);
38394 return;
38395 }
38396 if (stat & SAR_RSQE_CRC) {
38397 RXPRINTK("%s: AAL5 CRC error.\n", card->name);
38398 recycle_rx_pool_skb(card, rpp);
38399 - atomic_inc(&vcc->stats->rx_err);
38400 + atomic_inc_unchecked(&vcc->stats->rx_err);
38401 return;
38402 }
38403 if (skb_queue_len(&rpp->queue) > 1) {
38404 @@ -1150,7 +1150,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38405 RXPRINTK("%s: Can't alloc RX skb.\n",
38406 card->name);
38407 recycle_rx_pool_skb(card, rpp);
38408 - atomic_inc(&vcc->stats->rx_err);
38409 + atomic_inc_unchecked(&vcc->stats->rx_err);
38410 return;
38411 }
38412 if (!atm_charge(vcc, skb->truesize)) {
38413 @@ -1169,7 +1169,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38414 __net_timestamp(skb);
38415
38416 vcc->push(vcc, skb);
38417 - atomic_inc(&vcc->stats->rx);
38418 + atomic_inc_unchecked(&vcc->stats->rx);
38419
38420 return;
38421 }
38422 @@ -1191,7 +1191,7 @@ dequeue_rx(struct idt77252_dev *card, struct rsq_entry *rsqe)
38423 __net_timestamp(skb);
38424
38425 vcc->push(vcc, skb);
38426 - atomic_inc(&vcc->stats->rx);
38427 + atomic_inc_unchecked(&vcc->stats->rx);
38428
38429 if (skb->truesize > SAR_FB_SIZE_3)
38430 add_rx_skb(card, 3, SAR_FB_SIZE_3, 1);
38431 @@ -1302,14 +1302,14 @@ idt77252_rx_raw(struct idt77252_dev *card)
38432 if (vcc->qos.aal != ATM_AAL0) {
38433 RPRINTK("%s: raw cell for non AAL0 vc %u.%u\n",
38434 card->name, vpi, vci);
38435 - atomic_inc(&vcc->stats->rx_drop);
38436 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38437 goto drop;
38438 }
38439
38440 if ((sb = dev_alloc_skb(64)) == NULL) {
38441 printk("%s: Can't allocate buffers for AAL0.\n",
38442 card->name);
38443 - atomic_inc(&vcc->stats->rx_err);
38444 + atomic_inc_unchecked(&vcc->stats->rx_err);
38445 goto drop;
38446 }
38447
38448 @@ -1328,7 +1328,7 @@ idt77252_rx_raw(struct idt77252_dev *card)
38449 ATM_SKB(sb)->vcc = vcc;
38450 __net_timestamp(sb);
38451 vcc->push(vcc, sb);
38452 - atomic_inc(&vcc->stats->rx);
38453 + atomic_inc_unchecked(&vcc->stats->rx);
38454
38455 drop:
38456 skb_pull(queue, 64);
38457 @@ -1953,13 +1953,13 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38458
38459 if (vc == NULL) {
38460 printk("%s: NULL connection in send().\n", card->name);
38461 - atomic_inc(&vcc->stats->tx_err);
38462 + atomic_inc_unchecked(&vcc->stats->tx_err);
38463 dev_kfree_skb(skb);
38464 return -EINVAL;
38465 }
38466 if (!test_bit(VCF_TX, &vc->flags)) {
38467 printk("%s: Trying to transmit on a non-tx VC.\n", card->name);
38468 - atomic_inc(&vcc->stats->tx_err);
38469 + atomic_inc_unchecked(&vcc->stats->tx_err);
38470 dev_kfree_skb(skb);
38471 return -EINVAL;
38472 }
38473 @@ -1971,14 +1971,14 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38474 break;
38475 default:
38476 printk("%s: Unsupported AAL: %d\n", card->name, vcc->qos.aal);
38477 - atomic_inc(&vcc->stats->tx_err);
38478 + atomic_inc_unchecked(&vcc->stats->tx_err);
38479 dev_kfree_skb(skb);
38480 return -EINVAL;
38481 }
38482
38483 if (skb_shinfo(skb)->nr_frags != 0) {
38484 printk("%s: No scatter-gather yet.\n", card->name);
38485 - atomic_inc(&vcc->stats->tx_err);
38486 + atomic_inc_unchecked(&vcc->stats->tx_err);
38487 dev_kfree_skb(skb);
38488 return -EINVAL;
38489 }
38490 @@ -1986,7 +1986,7 @@ idt77252_send_skb(struct atm_vcc *vcc, struct sk_buff *skb, int oam)
38491
38492 err = queue_skb(card, vc, skb, oam);
38493 if (err) {
38494 - atomic_inc(&vcc->stats->tx_err);
38495 + atomic_inc_unchecked(&vcc->stats->tx_err);
38496 dev_kfree_skb(skb);
38497 return err;
38498 }
38499 @@ -2009,7 +2009,7 @@ idt77252_send_oam(struct atm_vcc *vcc, void *cell, int flags)
38500 skb = dev_alloc_skb(64);
38501 if (!skb) {
38502 printk("%s: Out of memory in send_oam().\n", card->name);
38503 - atomic_inc(&vcc->stats->tx_err);
38504 + atomic_inc_unchecked(&vcc->stats->tx_err);
38505 return -ENOMEM;
38506 }
38507 atomic_add(skb->truesize, &sk_atm(vcc)->sk_wmem_alloc);
38508 diff --git a/drivers/atm/iphase.c b/drivers/atm/iphase.c
38509 index 65e6590..df77d04 100644
38510 --- a/drivers/atm/iphase.c
38511 +++ b/drivers/atm/iphase.c
38512 @@ -1145,7 +1145,7 @@ static int rx_pkt(struct atm_dev *dev)
38513 status = (u_short) (buf_desc_ptr->desc_mode);
38514 if (status & (RX_CER | RX_PTE | RX_OFL))
38515 {
38516 - atomic_inc(&vcc->stats->rx_err);
38517 + atomic_inc_unchecked(&vcc->stats->rx_err);
38518 IF_ERR(printk("IA: bad packet, dropping it");)
38519 if (status & RX_CER) {
38520 IF_ERR(printk(" cause: packet CRC error\n");)
38521 @@ -1168,7 +1168,7 @@ static int rx_pkt(struct atm_dev *dev)
38522 len = dma_addr - buf_addr;
38523 if (len > iadev->rx_buf_sz) {
38524 printk("Over %d bytes sdu received, dropped!!!\n", iadev->rx_buf_sz);
38525 - atomic_inc(&vcc->stats->rx_err);
38526 + atomic_inc_unchecked(&vcc->stats->rx_err);
38527 goto out_free_desc;
38528 }
38529
38530 @@ -1318,7 +1318,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38531 ia_vcc = INPH_IA_VCC(vcc);
38532 if (ia_vcc == NULL)
38533 {
38534 - atomic_inc(&vcc->stats->rx_err);
38535 + atomic_inc_unchecked(&vcc->stats->rx_err);
38536 atm_return(vcc, skb->truesize);
38537 dev_kfree_skb_any(skb);
38538 goto INCR_DLE;
38539 @@ -1330,7 +1330,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38540 if ((length > iadev->rx_buf_sz) || (length >
38541 (skb->len - sizeof(struct cpcs_trailer))))
38542 {
38543 - atomic_inc(&vcc->stats->rx_err);
38544 + atomic_inc_unchecked(&vcc->stats->rx_err);
38545 IF_ERR(printk("rx_dle_intr: Bad AAL5 trailer %d (skb len %d)",
38546 length, skb->len);)
38547 atm_return(vcc, skb->truesize);
38548 @@ -1346,7 +1346,7 @@ static void rx_dle_intr(struct atm_dev *dev)
38549
38550 IF_RX(printk("rx_dle_intr: skb push");)
38551 vcc->push(vcc,skb);
38552 - atomic_inc(&vcc->stats->rx);
38553 + atomic_inc_unchecked(&vcc->stats->rx);
38554 iadev->rx_pkt_cnt++;
38555 }
38556 INCR_DLE:
38557 @@ -2828,15 +2828,15 @@ static int ia_ioctl(struct atm_dev *dev, unsigned int cmd, void __user *arg)
38558 {
38559 struct k_sonet_stats *stats;
38560 stats = &PRIV(_ia_dev[board])->sonet_stats;
38561 - printk("section_bip: %d\n", atomic_read(&stats->section_bip));
38562 - printk("line_bip : %d\n", atomic_read(&stats->line_bip));
38563 - printk("path_bip : %d\n", atomic_read(&stats->path_bip));
38564 - printk("line_febe : %d\n", atomic_read(&stats->line_febe));
38565 - printk("path_febe : %d\n", atomic_read(&stats->path_febe));
38566 - printk("corr_hcs : %d\n", atomic_read(&stats->corr_hcs));
38567 - printk("uncorr_hcs : %d\n", atomic_read(&stats->uncorr_hcs));
38568 - printk("tx_cells : %d\n", atomic_read(&stats->tx_cells));
38569 - printk("rx_cells : %d\n", atomic_read(&stats->rx_cells));
38570 + printk("section_bip: %d\n", atomic_read_unchecked(&stats->section_bip));
38571 + printk("line_bip : %d\n", atomic_read_unchecked(&stats->line_bip));
38572 + printk("path_bip : %d\n", atomic_read_unchecked(&stats->path_bip));
38573 + printk("line_febe : %d\n", atomic_read_unchecked(&stats->line_febe));
38574 + printk("path_febe : %d\n", atomic_read_unchecked(&stats->path_febe));
38575 + printk("corr_hcs : %d\n", atomic_read_unchecked(&stats->corr_hcs));
38576 + printk("uncorr_hcs : %d\n", atomic_read_unchecked(&stats->uncorr_hcs));
38577 + printk("tx_cells : %d\n", atomic_read_unchecked(&stats->tx_cells));
38578 + printk("rx_cells : %d\n", atomic_read_unchecked(&stats->rx_cells));
38579 }
38580 ia_cmds.status = 0;
38581 break;
38582 @@ -2941,7 +2941,7 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
38583 if ((desc == 0) || (desc > iadev->num_tx_desc))
38584 {
38585 IF_ERR(printk(DEV_LABEL "invalid desc for send: %d\n", desc);)
38586 - atomic_inc(&vcc->stats->tx);
38587 + atomic_inc_unchecked(&vcc->stats->tx);
38588 if (vcc->pop)
38589 vcc->pop(vcc, skb);
38590 else
38591 @@ -3046,14 +3046,14 @@ static int ia_pkt_tx (struct atm_vcc *vcc, struct sk_buff *skb) {
38592 ATM_DESC(skb) = vcc->vci;
38593 skb_queue_tail(&iadev->tx_dma_q, skb);
38594
38595 - atomic_inc(&vcc->stats->tx);
38596 + atomic_inc_unchecked(&vcc->stats->tx);
38597 iadev->tx_pkt_cnt++;
38598 /* Increment transaction counter */
38599 writel(2, iadev->dma+IPHASE5575_TX_COUNTER);
38600
38601 #if 0
38602 /* add flow control logic */
38603 - if (atomic_read(&vcc->stats->tx) % 20 == 0) {
38604 + if (atomic_read_unchecked(&vcc->stats->tx) % 20 == 0) {
38605 if (iavcc->vc_desc_cnt > 10) {
38606 vcc->tx_quota = vcc->tx_quota * 3 / 4;
38607 printk("Tx1: vcc->tx_quota = %d \n", (u32)vcc->tx_quota );
38608 diff --git a/drivers/atm/lanai.c b/drivers/atm/lanai.c
38609 index ce43ae3..969de38 100644
38610 --- a/drivers/atm/lanai.c
38611 +++ b/drivers/atm/lanai.c
38612 @@ -1295,7 +1295,7 @@ static void lanai_send_one_aal5(struct lanai_dev *lanai,
38613 vcc_tx_add_aal5_trailer(lvcc, skb->len, 0, 0);
38614 lanai_endtx(lanai, lvcc);
38615 lanai_free_skb(lvcc->tx.atmvcc, skb);
38616 - atomic_inc(&lvcc->tx.atmvcc->stats->tx);
38617 + atomic_inc_unchecked(&lvcc->tx.atmvcc->stats->tx);
38618 }
38619
38620 /* Try to fill the buffer - don't call unless there is backlog */
38621 @@ -1418,7 +1418,7 @@ static void vcc_rx_aal5(struct lanai_vcc *lvcc, int endptr)
38622 ATM_SKB(skb)->vcc = lvcc->rx.atmvcc;
38623 __net_timestamp(skb);
38624 lvcc->rx.atmvcc->push(lvcc->rx.atmvcc, skb);
38625 - atomic_inc(&lvcc->rx.atmvcc->stats->rx);
38626 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx);
38627 out:
38628 lvcc->rx.buf.ptr = end;
38629 cardvcc_write(lvcc, endptr, vcc_rxreadptr);
38630 @@ -1659,7 +1659,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38631 DPRINTK("(itf %d) got RX service entry 0x%X for non-AAL5 "
38632 "vcc %d\n", lanai->number, (unsigned int) s, vci);
38633 lanai->stats.service_rxnotaal5++;
38634 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38635 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38636 return 0;
38637 }
38638 if (likely(!(s & (SERVICE_TRASH | SERVICE_STREAM | SERVICE_CRCERR)))) {
38639 @@ -1671,7 +1671,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38640 int bytes;
38641 read_unlock(&vcc_sklist_lock);
38642 DPRINTK("got trashed rx pdu on vci %d\n", vci);
38643 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38644 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38645 lvcc->stats.x.aal5.service_trash++;
38646 bytes = (SERVICE_GET_END(s) * 16) -
38647 (((unsigned long) lvcc->rx.buf.ptr) -
38648 @@ -1683,7 +1683,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38649 }
38650 if (s & SERVICE_STREAM) {
38651 read_unlock(&vcc_sklist_lock);
38652 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38653 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38654 lvcc->stats.x.aal5.service_stream++;
38655 printk(KERN_ERR DEV_LABEL "(itf %d): Got AAL5 stream "
38656 "PDU on VCI %d!\n", lanai->number, vci);
38657 @@ -1691,7 +1691,7 @@ static int handle_service(struct lanai_dev *lanai, u32 s)
38658 return 0;
38659 }
38660 DPRINTK("got rx crc error on vci %d\n", vci);
38661 - atomic_inc(&lvcc->rx.atmvcc->stats->rx_err);
38662 + atomic_inc_unchecked(&lvcc->rx.atmvcc->stats->rx_err);
38663 lvcc->stats.x.aal5.service_rxcrc++;
38664 lvcc->rx.buf.ptr = &lvcc->rx.buf.start[SERVICE_GET_END(s) * 4];
38665 cardvcc_write(lvcc, SERVICE_GET_END(s), vcc_rxreadptr);
38666 diff --git a/drivers/atm/nicstar.c b/drivers/atm/nicstar.c
38667 index ddc4ceb..36e29aa 100644
38668 --- a/drivers/atm/nicstar.c
38669 +++ b/drivers/atm/nicstar.c
38670 @@ -1632,7 +1632,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38671 if ((vc = (vc_map *) vcc->dev_data) == NULL) {
38672 printk("nicstar%d: vcc->dev_data == NULL on ns_send().\n",
38673 card->index);
38674 - atomic_inc(&vcc->stats->tx_err);
38675 + atomic_inc_unchecked(&vcc->stats->tx_err);
38676 dev_kfree_skb_any(skb);
38677 return -EINVAL;
38678 }
38679 @@ -1640,7 +1640,7 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38680 if (!vc->tx) {
38681 printk("nicstar%d: Trying to transmit on a non-tx VC.\n",
38682 card->index);
38683 - atomic_inc(&vcc->stats->tx_err);
38684 + atomic_inc_unchecked(&vcc->stats->tx_err);
38685 dev_kfree_skb_any(skb);
38686 return -EINVAL;
38687 }
38688 @@ -1648,14 +1648,14 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38689 if (vcc->qos.aal != ATM_AAL5 && vcc->qos.aal != ATM_AAL0) {
38690 printk("nicstar%d: Only AAL0 and AAL5 are supported.\n",
38691 card->index);
38692 - atomic_inc(&vcc->stats->tx_err);
38693 + atomic_inc_unchecked(&vcc->stats->tx_err);
38694 dev_kfree_skb_any(skb);
38695 return -EINVAL;
38696 }
38697
38698 if (skb_shinfo(skb)->nr_frags != 0) {
38699 printk("nicstar%d: No scatter-gather yet.\n", card->index);
38700 - atomic_inc(&vcc->stats->tx_err);
38701 + atomic_inc_unchecked(&vcc->stats->tx_err);
38702 dev_kfree_skb_any(skb);
38703 return -EINVAL;
38704 }
38705 @@ -1703,11 +1703,11 @@ static int ns_send(struct atm_vcc *vcc, struct sk_buff *skb)
38706 }
38707
38708 if (push_scqe(card, vc, scq, &scqe, skb) != 0) {
38709 - atomic_inc(&vcc->stats->tx_err);
38710 + atomic_inc_unchecked(&vcc->stats->tx_err);
38711 dev_kfree_skb_any(skb);
38712 return -EIO;
38713 }
38714 - atomic_inc(&vcc->stats->tx);
38715 + atomic_inc_unchecked(&vcc->stats->tx);
38716
38717 return 0;
38718 }
38719 @@ -2024,14 +2024,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38720 printk
38721 ("nicstar%d: Can't allocate buffers for aal0.\n",
38722 card->index);
38723 - atomic_add(i, &vcc->stats->rx_drop);
38724 + atomic_add_unchecked(i, &vcc->stats->rx_drop);
38725 break;
38726 }
38727 if (!atm_charge(vcc, sb->truesize)) {
38728 RXPRINTK
38729 ("nicstar%d: atm_charge() dropped aal0 packets.\n",
38730 card->index);
38731 - atomic_add(i - 1, &vcc->stats->rx_drop); /* already increased by 1 */
38732 + atomic_add_unchecked(i - 1, &vcc->stats->rx_drop); /* already increased by 1 */
38733 dev_kfree_skb_any(sb);
38734 break;
38735 }
38736 @@ -2046,7 +2046,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38737 ATM_SKB(sb)->vcc = vcc;
38738 __net_timestamp(sb);
38739 vcc->push(vcc, sb);
38740 - atomic_inc(&vcc->stats->rx);
38741 + atomic_inc_unchecked(&vcc->stats->rx);
38742 cell += ATM_CELL_PAYLOAD;
38743 }
38744
38745 @@ -2063,7 +2063,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38746 if (iovb == NULL) {
38747 printk("nicstar%d: Out of iovec buffers.\n",
38748 card->index);
38749 - atomic_inc(&vcc->stats->rx_drop);
38750 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38751 recycle_rx_buf(card, skb);
38752 return;
38753 }
38754 @@ -2087,7 +2087,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38755 small or large buffer itself. */
38756 } else if (NS_PRV_IOVCNT(iovb) >= NS_MAX_IOVECS) {
38757 printk("nicstar%d: received too big AAL5 SDU.\n", card->index);
38758 - atomic_inc(&vcc->stats->rx_err);
38759 + atomic_inc_unchecked(&vcc->stats->rx_err);
38760 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38761 NS_MAX_IOVECS);
38762 NS_PRV_IOVCNT(iovb) = 0;
38763 @@ -2107,7 +2107,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38764 ("nicstar%d: Expected a small buffer, and this is not one.\n",
38765 card->index);
38766 which_list(card, skb);
38767 - atomic_inc(&vcc->stats->rx_err);
38768 + atomic_inc_unchecked(&vcc->stats->rx_err);
38769 recycle_rx_buf(card, skb);
38770 vc->rx_iov = NULL;
38771 recycle_iov_buf(card, iovb);
38772 @@ -2120,7 +2120,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38773 ("nicstar%d: Expected a large buffer, and this is not one.\n",
38774 card->index);
38775 which_list(card, skb);
38776 - atomic_inc(&vcc->stats->rx_err);
38777 + atomic_inc_unchecked(&vcc->stats->rx_err);
38778 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38779 NS_PRV_IOVCNT(iovb));
38780 vc->rx_iov = NULL;
38781 @@ -2143,7 +2143,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38782 printk(" - PDU size mismatch.\n");
38783 else
38784 printk(".\n");
38785 - atomic_inc(&vcc->stats->rx_err);
38786 + atomic_inc_unchecked(&vcc->stats->rx_err);
38787 recycle_iovec_rx_bufs(card, (struct iovec *)iovb->data,
38788 NS_PRV_IOVCNT(iovb));
38789 vc->rx_iov = NULL;
38790 @@ -2157,14 +2157,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38791 /* skb points to a small buffer */
38792 if (!atm_charge(vcc, skb->truesize)) {
38793 push_rxbufs(card, skb);
38794 - atomic_inc(&vcc->stats->rx_drop);
38795 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38796 } else {
38797 skb_put(skb, len);
38798 dequeue_sm_buf(card, skb);
38799 ATM_SKB(skb)->vcc = vcc;
38800 __net_timestamp(skb);
38801 vcc->push(vcc, skb);
38802 - atomic_inc(&vcc->stats->rx);
38803 + atomic_inc_unchecked(&vcc->stats->rx);
38804 }
38805 } else if (NS_PRV_IOVCNT(iovb) == 2) { /* One small plus one large buffer */
38806 struct sk_buff *sb;
38807 @@ -2175,14 +2175,14 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38808 if (len <= NS_SMBUFSIZE) {
38809 if (!atm_charge(vcc, sb->truesize)) {
38810 push_rxbufs(card, sb);
38811 - atomic_inc(&vcc->stats->rx_drop);
38812 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38813 } else {
38814 skb_put(sb, len);
38815 dequeue_sm_buf(card, sb);
38816 ATM_SKB(sb)->vcc = vcc;
38817 __net_timestamp(sb);
38818 vcc->push(vcc, sb);
38819 - atomic_inc(&vcc->stats->rx);
38820 + atomic_inc_unchecked(&vcc->stats->rx);
38821 }
38822
38823 push_rxbufs(card, skb);
38824 @@ -2191,7 +2191,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38825
38826 if (!atm_charge(vcc, skb->truesize)) {
38827 push_rxbufs(card, skb);
38828 - atomic_inc(&vcc->stats->rx_drop);
38829 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38830 } else {
38831 dequeue_lg_buf(card, skb);
38832 skb_push(skb, NS_SMBUFSIZE);
38833 @@ -2201,7 +2201,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38834 ATM_SKB(skb)->vcc = vcc;
38835 __net_timestamp(skb);
38836 vcc->push(vcc, skb);
38837 - atomic_inc(&vcc->stats->rx);
38838 + atomic_inc_unchecked(&vcc->stats->rx);
38839 }
38840
38841 push_rxbufs(card, sb);
38842 @@ -2222,7 +2222,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38843 printk
38844 ("nicstar%d: Out of huge buffers.\n",
38845 card->index);
38846 - atomic_inc(&vcc->stats->rx_drop);
38847 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38848 recycle_iovec_rx_bufs(card,
38849 (struct iovec *)
38850 iovb->data,
38851 @@ -2273,7 +2273,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38852 card->hbpool.count++;
38853 } else
38854 dev_kfree_skb_any(hb);
38855 - atomic_inc(&vcc->stats->rx_drop);
38856 + atomic_inc_unchecked(&vcc->stats->rx_drop);
38857 } else {
38858 /* Copy the small buffer to the huge buffer */
38859 sb = (struct sk_buff *)iov->iov_base;
38860 @@ -2307,7 +2307,7 @@ static void dequeue_rx(ns_dev * card, ns_rsqe * rsqe)
38861 ATM_SKB(hb)->vcc = vcc;
38862 __net_timestamp(hb);
38863 vcc->push(vcc, hb);
38864 - atomic_inc(&vcc->stats->rx);
38865 + atomic_inc_unchecked(&vcc->stats->rx);
38866 }
38867 }
38868
38869 diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
38870 index 74e18b0..f16afa0 100644
38871 --- a/drivers/atm/solos-pci.c
38872 +++ b/drivers/atm/solos-pci.c
38873 @@ -838,7 +838,7 @@ static void solos_bh(unsigned long card_arg)
38874 }
38875 atm_charge(vcc, skb->truesize);
38876 vcc->push(vcc, skb);
38877 - atomic_inc(&vcc->stats->rx);
38878 + atomic_inc_unchecked(&vcc->stats->rx);
38879 break;
38880
38881 case PKT_STATUS:
38882 @@ -1116,7 +1116,7 @@ static uint32_t fpga_tx(struct solos_card *card)
38883 vcc = SKB_CB(oldskb)->vcc;
38884
38885 if (vcc) {
38886 - atomic_inc(&vcc->stats->tx);
38887 + atomic_inc_unchecked(&vcc->stats->tx);
38888 solos_pop(vcc, oldskb);
38889 } else {
38890 dev_kfree_skb_irq(oldskb);
38891 diff --git a/drivers/atm/suni.c b/drivers/atm/suni.c
38892 index 0215934..ce9f5b1 100644
38893 --- a/drivers/atm/suni.c
38894 +++ b/drivers/atm/suni.c
38895 @@ -49,8 +49,8 @@ static DEFINE_SPINLOCK(sunis_lock);
38896
38897
38898 #define ADD_LIMITED(s,v) \
38899 - atomic_add((v),&stats->s); \
38900 - if (atomic_read(&stats->s) < 0) atomic_set(&stats->s,INT_MAX);
38901 + atomic_add_unchecked((v),&stats->s); \
38902 + if (atomic_read_unchecked(&stats->s) < 0) atomic_set_unchecked(&stats->s,INT_MAX);
38903
38904
38905 static void suni_hz(unsigned long from_timer)
38906 diff --git a/drivers/atm/uPD98402.c b/drivers/atm/uPD98402.c
38907 index 5120a96..e2572bd 100644
38908 --- a/drivers/atm/uPD98402.c
38909 +++ b/drivers/atm/uPD98402.c
38910 @@ -42,7 +42,7 @@ static int fetch_stats(struct atm_dev *dev,struct sonet_stats __user *arg,int ze
38911 struct sonet_stats tmp;
38912 int error = 0;
38913
38914 - atomic_add(GET(HECCT),&PRIV(dev)->sonet_stats.uncorr_hcs);
38915 + atomic_add_unchecked(GET(HECCT),&PRIV(dev)->sonet_stats.uncorr_hcs);
38916 sonet_copy_stats(&PRIV(dev)->sonet_stats,&tmp);
38917 if (arg) error = copy_to_user(arg,&tmp,sizeof(tmp));
38918 if (zero && !error) {
38919 @@ -161,9 +161,9 @@ static int uPD98402_ioctl(struct atm_dev *dev,unsigned int cmd,void __user *arg)
38920
38921
38922 #define ADD_LIMITED(s,v) \
38923 - { atomic_add(GET(v),&PRIV(dev)->sonet_stats.s); \
38924 - if (atomic_read(&PRIV(dev)->sonet_stats.s) < 0) \
38925 - atomic_set(&PRIV(dev)->sonet_stats.s,INT_MAX); }
38926 + { atomic_add_unchecked(GET(v),&PRIV(dev)->sonet_stats.s); \
38927 + if (atomic_read_unchecked(&PRIV(dev)->sonet_stats.s) < 0) \
38928 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.s,INT_MAX); }
38929
38930
38931 static void stat_event(struct atm_dev *dev)
38932 @@ -194,7 +194,7 @@ static void uPD98402_int(struct atm_dev *dev)
38933 if (reason & uPD98402_INT_PFM) stat_event(dev);
38934 if (reason & uPD98402_INT_PCO) {
38935 (void) GET(PCOCR); /* clear interrupt cause */
38936 - atomic_add(GET(HECCT),
38937 + atomic_add_unchecked(GET(HECCT),
38938 &PRIV(dev)->sonet_stats.uncorr_hcs);
38939 }
38940 if ((reason & uPD98402_INT_RFO) &&
38941 @@ -222,9 +222,9 @@ static int uPD98402_start(struct atm_dev *dev)
38942 PUT(~(uPD98402_INT_PFM | uPD98402_INT_ALM | uPD98402_INT_RFO |
38943 uPD98402_INT_LOS),PIMR); /* enable them */
38944 (void) fetch_stats(dev,NULL,1); /* clear kernel counters */
38945 - atomic_set(&PRIV(dev)->sonet_stats.corr_hcs,-1);
38946 - atomic_set(&PRIV(dev)->sonet_stats.tx_cells,-1);
38947 - atomic_set(&PRIV(dev)->sonet_stats.rx_cells,-1);
38948 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.corr_hcs,-1);
38949 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.tx_cells,-1);
38950 + atomic_set_unchecked(&PRIV(dev)->sonet_stats.rx_cells,-1);
38951 return 0;
38952 }
38953
38954 diff --git a/drivers/atm/zatm.c b/drivers/atm/zatm.c
38955 index cecfb94..87009ec 100644
38956 --- a/drivers/atm/zatm.c
38957 +++ b/drivers/atm/zatm.c
38958 @@ -459,7 +459,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
38959 }
38960 if (!size) {
38961 dev_kfree_skb_irq(skb);
38962 - if (vcc) atomic_inc(&vcc->stats->rx_err);
38963 + if (vcc) atomic_inc_unchecked(&vcc->stats->rx_err);
38964 continue;
38965 }
38966 if (!atm_charge(vcc,skb->truesize)) {
38967 @@ -469,7 +469,7 @@ printk("dummy: 0x%08lx, 0x%08lx\n",dummy[0],dummy[1]);
38968 skb->len = size;
38969 ATM_SKB(skb)->vcc = vcc;
38970 vcc->push(vcc,skb);
38971 - atomic_inc(&vcc->stats->rx);
38972 + atomic_inc_unchecked(&vcc->stats->rx);
38973 }
38974 zout(pos & 0xffff,MTA(mbx));
38975 #if 0 /* probably a stupid idea */
38976 @@ -733,7 +733,7 @@ if (*ZATM_PRV_DSC(skb) != (uPD98401_TXPD_V | uPD98401_TXPD_DP |
38977 skb_queue_head(&zatm_vcc->backlog,skb);
38978 break;
38979 }
38980 - atomic_inc(&vcc->stats->tx);
38981 + atomic_inc_unchecked(&vcc->stats->tx);
38982 wake_up(&zatm_vcc->tx_wait);
38983 }
38984
38985 diff --git a/drivers/base/bus.c b/drivers/base/bus.c
38986 index 5005924..9fc06c4 100644
38987 --- a/drivers/base/bus.c
38988 +++ b/drivers/base/bus.c
38989 @@ -1141,7 +1141,7 @@ int subsys_interface_register(struct subsys_interface *sif)
38990 return -EINVAL;
38991
38992 mutex_lock(&subsys->p->mutex);
38993 - list_add_tail(&sif->node, &subsys->p->interfaces);
38994 + pax_list_add_tail((struct list_head *)&sif->node, &subsys->p->interfaces);
38995 if (sif->add_dev) {
38996 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
38997 while ((dev = subsys_dev_iter_next(&iter)))
38998 @@ -1166,7 +1166,7 @@ void subsys_interface_unregister(struct subsys_interface *sif)
38999 subsys = sif->subsys;
39000
39001 mutex_lock(&subsys->p->mutex);
39002 - list_del_init(&sif->node);
39003 + pax_list_del_init((struct list_head *)&sif->node);
39004 if (sif->remove_dev) {
39005 subsys_dev_iter_init(&iter, subsys, NULL, NULL);
39006 while ((dev = subsys_dev_iter_next(&iter)))
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/power/domain.c b/drivers/base/power/domain.c
39049 index 0ee43c1..369dd62 100644
39050 --- a/drivers/base/power/domain.c
39051 +++ b/drivers/base/power/domain.c
39052 @@ -1738,7 +1738,7 @@ int pm_genpd_attach_cpuidle(struct generic_pm_domain *genpd, int state)
39053 {
39054 struct cpuidle_driver *cpuidle_drv;
39055 struct gpd_cpuidle_data *cpuidle_data;
39056 - struct cpuidle_state *idle_state;
39057 + cpuidle_state_no_const *idle_state;
39058 int ret = 0;
39059
39060 if (IS_ERR_OR_NULL(genpd) || state < 0)
39061 @@ -1806,7 +1806,7 @@ int pm_genpd_name_attach_cpuidle(const char *name, int state)
39062 int pm_genpd_detach_cpuidle(struct generic_pm_domain *genpd)
39063 {
39064 struct gpd_cpuidle_data *cpuidle_data;
39065 - struct cpuidle_state *idle_state;
39066 + cpuidle_state_no_const *idle_state;
39067 int ret = 0;
39068
39069 if (IS_ERR_OR_NULL(genpd))
39070 @@ -2241,8 +2241,11 @@ int genpd_dev_pm_attach(struct device *dev)
39071 return ret;
39072 }
39073
39074 - dev->pm_domain->detach = genpd_dev_pm_detach;
39075 - dev->pm_domain->sync = genpd_dev_pm_sync;
39076 + pax_open_kernel();
39077 + *(void **)&dev->pm_domain->detach = genpd_dev_pm_detach;
39078 + *(void **)&dev->pm_domain->sync = genpd_dev_pm_sync;
39079 + pax_close_kernel();
39080 +
39081 pm_genpd_poweron(pd);
39082
39083 return 0;
39084 diff --git a/drivers/base/power/sysfs.c b/drivers/base/power/sysfs.c
39085 index d2be3f9..0a3167a 100644
39086 --- a/drivers/base/power/sysfs.c
39087 +++ b/drivers/base/power/sysfs.c
39088 @@ -181,7 +181,7 @@ static ssize_t rtpm_status_show(struct device *dev,
39089 return -EIO;
39090 }
39091 }
39092 - return sprintf(buf, p);
39093 + return sprintf(buf, "%s", p);
39094 }
39095
39096 static DEVICE_ATTR(runtime_status, 0444, rtpm_status_show, NULL);
39097 diff --git a/drivers/base/power/wakeup.c b/drivers/base/power/wakeup.c
39098 index 51f15bc..892a668 100644
39099 --- a/drivers/base/power/wakeup.c
39100 +++ b/drivers/base/power/wakeup.c
39101 @@ -33,14 +33,14 @@ static bool pm_abort_suspend __read_mostly;
39102 * They need to be modified together atomically, so it's better to use one
39103 * atomic variable to hold them both.
39104 */
39105 -static atomic_t combined_event_count = ATOMIC_INIT(0);
39106 +static atomic_unchecked_t combined_event_count = ATOMIC_INIT(0);
39107
39108 #define IN_PROGRESS_BITS (sizeof(int) * 4)
39109 #define MAX_IN_PROGRESS ((1 << IN_PROGRESS_BITS) - 1)
39110
39111 static void split_counters(unsigned int *cnt, unsigned int *inpr)
39112 {
39113 - unsigned int comb = atomic_read(&combined_event_count);
39114 + unsigned int comb = atomic_read_unchecked(&combined_event_count);
39115
39116 *cnt = (comb >> IN_PROGRESS_BITS);
39117 *inpr = comb & MAX_IN_PROGRESS;
39118 @@ -537,7 +537,7 @@ static void wakeup_source_activate(struct wakeup_source *ws)
39119 ws->start_prevent_time = ws->last_time;
39120
39121 /* Increment the counter of events in progress. */
39122 - cec = atomic_inc_return(&combined_event_count);
39123 + cec = atomic_inc_return_unchecked(&combined_event_count);
39124
39125 trace_wakeup_source_activate(ws->name, cec);
39126 }
39127 @@ -663,7 +663,7 @@ static void wakeup_source_deactivate(struct wakeup_source *ws)
39128 * Increment the counter of registered wakeup events and decrement the
39129 * couter of wakeup events in progress simultaneously.
39130 */
39131 - cec = atomic_add_return(MAX_IN_PROGRESS, &combined_event_count);
39132 + cec = atomic_add_return_unchecked(MAX_IN_PROGRESS, &combined_event_count);
39133 trace_wakeup_source_deactivate(ws->name, cec);
39134
39135 split_counters(&cnt, &inpr);
39136 diff --git a/drivers/base/regmap/regmap-debugfs.c b/drivers/base/regmap/regmap-debugfs.c
39137 index c8941f3..f7c7a7e 100644
39138 --- a/drivers/base/regmap/regmap-debugfs.c
39139 +++ b/drivers/base/regmap/regmap-debugfs.c
39140 @@ -30,7 +30,7 @@ static LIST_HEAD(regmap_debugfs_early_list);
39141 static DEFINE_MUTEX(regmap_debugfs_early_lock);
39142
39143 /* Calculate the length of a fixed format */
39144 -static size_t regmap_calc_reg_len(int max_val, char *buf, size_t buf_size)
39145 +static size_t regmap_calc_reg_len(int max_val)
39146 {
39147 return snprintf(NULL, 0, "%x", max_val);
39148 }
39149 @@ -173,8 +173,7 @@ static inline void regmap_calc_tot_len(struct regmap *map,
39150 {
39151 /* Calculate the length of a fixed format */
39152 if (!map->debugfs_tot_len) {
39153 - map->debugfs_reg_len = regmap_calc_reg_len(map->max_register,
39154 - buf, count);
39155 + map->debugfs_reg_len = regmap_calc_reg_len(map->max_register);
39156 map->debugfs_val_len = 2 * map->format.val_bytes;
39157 map->debugfs_tot_len = map->debugfs_reg_len +
39158 map->debugfs_val_len + 3; /* : \n */
39159 @@ -404,7 +403,7 @@ static ssize_t regmap_access_read_file(struct file *file,
39160 char __user *user_buf, size_t count,
39161 loff_t *ppos)
39162 {
39163 - int reg_len, tot_len;
39164 + size_t reg_len, tot_len;
39165 size_t buf_pos = 0;
39166 loff_t p = 0;
39167 ssize_t ret;
39168 @@ -420,7 +419,7 @@ static ssize_t regmap_access_read_file(struct file *file,
39169 return -ENOMEM;
39170
39171 /* Calculate the length of a fixed format */
39172 - reg_len = regmap_calc_reg_len(map->max_register, buf, count);
39173 + reg_len = regmap_calc_reg_len(map->max_register);
39174 tot_len = reg_len + 10; /* ': R W V P\n' */
39175
39176 for (i = 0; i <= map->max_register; i += map->reg_stride) {
39177 diff --git a/drivers/base/syscore.c b/drivers/base/syscore.c
39178 index 8d98a32..61d3165 100644
39179 --- a/drivers/base/syscore.c
39180 +++ b/drivers/base/syscore.c
39181 @@ -22,7 +22,7 @@ static DEFINE_MUTEX(syscore_ops_lock);
39182 void register_syscore_ops(struct syscore_ops *ops)
39183 {
39184 mutex_lock(&syscore_ops_lock);
39185 - list_add_tail(&ops->node, &syscore_ops_list);
39186 + pax_list_add_tail((struct list_head *)&ops->node, &syscore_ops_list);
39187 mutex_unlock(&syscore_ops_lock);
39188 }
39189 EXPORT_SYMBOL_GPL(register_syscore_ops);
39190 @@ -34,7 +34,7 @@ EXPORT_SYMBOL_GPL(register_syscore_ops);
39191 void unregister_syscore_ops(struct syscore_ops *ops)
39192 {
39193 mutex_lock(&syscore_ops_lock);
39194 - list_del(&ops->node);
39195 + pax_list_del((struct list_head *)&ops->node);
39196 mutex_unlock(&syscore_ops_lock);
39197 }
39198 EXPORT_SYMBOL_GPL(unregister_syscore_ops);
39199 diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
39200 index 0422c47..b222c7a 100644
39201 --- a/drivers/block/cciss.c
39202 +++ b/drivers/block/cciss.c
39203 @@ -3024,7 +3024,7 @@ static void start_io(ctlr_info_t *h)
39204 while (!list_empty(&h->reqQ)) {
39205 c = list_entry(h->reqQ.next, CommandList_struct, list);
39206 /* can't do anything if fifo is full */
39207 - if ((h->access.fifo_full(h))) {
39208 + if ((h->access->fifo_full(h))) {
39209 dev_warn(&h->pdev->dev, "fifo full\n");
39210 break;
39211 }
39212 @@ -3034,7 +3034,7 @@ static void start_io(ctlr_info_t *h)
39213 h->Qdepth--;
39214
39215 /* Tell the controller execute command */
39216 - h->access.submit_command(h, c);
39217 + h->access->submit_command(h, c);
39218
39219 /* Put job onto the completed Q */
39220 addQ(&h->cmpQ, c);
39221 @@ -3460,17 +3460,17 @@ startio:
39222
39223 static inline unsigned long get_next_completion(ctlr_info_t *h)
39224 {
39225 - return h->access.command_completed(h);
39226 + return h->access->command_completed(h);
39227 }
39228
39229 static inline int interrupt_pending(ctlr_info_t *h)
39230 {
39231 - return h->access.intr_pending(h);
39232 + return h->access->intr_pending(h);
39233 }
39234
39235 static inline long interrupt_not_for_us(ctlr_info_t *h)
39236 {
39237 - return ((h->access.intr_pending(h) == 0) ||
39238 + return ((h->access->intr_pending(h) == 0) ||
39239 (h->interrupts_enabled == 0));
39240 }
39241
39242 @@ -3503,7 +3503,7 @@ static inline u32 next_command(ctlr_info_t *h)
39243 u32 a;
39244
39245 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
39246 - return h->access.command_completed(h);
39247 + return h->access->command_completed(h);
39248
39249 if ((*(h->reply_pool_head) & 1) == (h->reply_pool_wraparound)) {
39250 a = *(h->reply_pool_head); /* Next cmd in ring buffer */
39251 @@ -4060,7 +4060,7 @@ static void cciss_put_controller_into_performant_mode(ctlr_info_t *h)
39252 trans_support & CFGTBL_Trans_use_short_tags);
39253
39254 /* Change the access methods to the performant access methods */
39255 - h->access = SA5_performant_access;
39256 + h->access = &SA5_performant_access;
39257 h->transMethod = CFGTBL_Trans_Performant;
39258
39259 return;
39260 @@ -4334,7 +4334,7 @@ static int cciss_pci_init(ctlr_info_t *h)
39261 if (prod_index < 0)
39262 return -ENODEV;
39263 h->product_name = products[prod_index].product_name;
39264 - h->access = *(products[prod_index].access);
39265 + h->access = products[prod_index].access;
39266
39267 if (cciss_board_disabled(h)) {
39268 dev_warn(&h->pdev->dev, "controller appears to be disabled\n");
39269 @@ -5065,7 +5065,7 @@ reinit_after_soft_reset:
39270 }
39271
39272 /* make sure the board interrupts are off */
39273 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39274 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39275 rc = cciss_request_irq(h, do_cciss_msix_intr, do_cciss_intx);
39276 if (rc)
39277 goto clean2;
39278 @@ -5115,7 +5115,7 @@ reinit_after_soft_reset:
39279 * fake ones to scoop up any residual completions.
39280 */
39281 spin_lock_irqsave(&h->lock, flags);
39282 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39283 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39284 spin_unlock_irqrestore(&h->lock, flags);
39285 free_irq(h->intr[h->intr_mode], h);
39286 rc = cciss_request_irq(h, cciss_msix_discard_completions,
39287 @@ -5135,9 +5135,9 @@ reinit_after_soft_reset:
39288 dev_info(&h->pdev->dev, "Board READY.\n");
39289 dev_info(&h->pdev->dev,
39290 "Waiting for stale completions to drain.\n");
39291 - h->access.set_intr_mask(h, CCISS_INTR_ON);
39292 + h->access->set_intr_mask(h, CCISS_INTR_ON);
39293 msleep(10000);
39294 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39295 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39296
39297 rc = controller_reset_failed(h->cfgtable);
39298 if (rc)
39299 @@ -5160,7 +5160,7 @@ reinit_after_soft_reset:
39300 cciss_scsi_setup(h);
39301
39302 /* Turn the interrupts on so we can service requests */
39303 - h->access.set_intr_mask(h, CCISS_INTR_ON);
39304 + h->access->set_intr_mask(h, CCISS_INTR_ON);
39305
39306 /* Get the firmware version */
39307 inq_buff = kzalloc(sizeof(InquiryData_struct), GFP_KERNEL);
39308 @@ -5232,7 +5232,7 @@ static void cciss_shutdown(struct pci_dev *pdev)
39309 kfree(flush_buf);
39310 if (return_code != IO_OK)
39311 dev_warn(&h->pdev->dev, "Error flushing cache\n");
39312 - h->access.set_intr_mask(h, CCISS_INTR_OFF);
39313 + h->access->set_intr_mask(h, CCISS_INTR_OFF);
39314 free_irq(h->intr[h->intr_mode], h);
39315 }
39316
39317 diff --git a/drivers/block/cciss.h b/drivers/block/cciss.h
39318 index 7fda30e..2f27946 100644
39319 --- a/drivers/block/cciss.h
39320 +++ b/drivers/block/cciss.h
39321 @@ -101,7 +101,7 @@ struct ctlr_info
39322 /* information about each logical volume */
39323 drive_info_struct *drv[CISS_MAX_LUN];
39324
39325 - struct access_method access;
39326 + struct access_method *access;
39327
39328 /* queue and queue Info */
39329 struct list_head reqQ;
39330 @@ -402,27 +402,27 @@ static bool SA5_performant_intr_pending(ctlr_info_t *h)
39331 }
39332
39333 static struct access_method SA5_access = {
39334 - SA5_submit_command,
39335 - SA5_intr_mask,
39336 - SA5_fifo_full,
39337 - SA5_intr_pending,
39338 - SA5_completed,
39339 + .submit_command = SA5_submit_command,
39340 + .set_intr_mask = SA5_intr_mask,
39341 + .fifo_full = SA5_fifo_full,
39342 + .intr_pending = SA5_intr_pending,
39343 + .command_completed = SA5_completed,
39344 };
39345
39346 static struct access_method SA5B_access = {
39347 - SA5_submit_command,
39348 - SA5B_intr_mask,
39349 - SA5_fifo_full,
39350 - SA5B_intr_pending,
39351 - SA5_completed,
39352 + .submit_command = SA5_submit_command,
39353 + .set_intr_mask = SA5B_intr_mask,
39354 + .fifo_full = SA5_fifo_full,
39355 + .intr_pending = SA5B_intr_pending,
39356 + .command_completed = SA5_completed,
39357 };
39358
39359 static struct access_method SA5_performant_access = {
39360 - SA5_submit_command,
39361 - SA5_performant_intr_mask,
39362 - SA5_fifo_full,
39363 - SA5_performant_intr_pending,
39364 - SA5_performant_completed,
39365 + .submit_command = SA5_submit_command,
39366 + .set_intr_mask = SA5_performant_intr_mask,
39367 + .fifo_full = SA5_fifo_full,
39368 + .intr_pending = SA5_performant_intr_pending,
39369 + .command_completed = SA5_performant_completed,
39370 };
39371
39372 struct board_type {
39373 diff --git a/drivers/block/cpqarray.c b/drivers/block/cpqarray.c
39374 index f749df9..5f8b9c4 100644
39375 --- a/drivers/block/cpqarray.c
39376 +++ b/drivers/block/cpqarray.c
39377 @@ -404,7 +404,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
39378 if (register_blkdev(COMPAQ_SMART2_MAJOR+i, hba[i]->devname)) {
39379 goto Enomem4;
39380 }
39381 - hba[i]->access.set_intr_mask(hba[i], 0);
39382 + hba[i]->access->set_intr_mask(hba[i], 0);
39383 if (request_irq(hba[i]->intr, do_ida_intr, IRQF_SHARED,
39384 hba[i]->devname, hba[i]))
39385 {
39386 @@ -459,7 +459,7 @@ static int cpqarray_register_ctlr(int i, struct pci_dev *pdev)
39387 add_timer(&hba[i]->timer);
39388
39389 /* Enable IRQ now that spinlock and rate limit timer are set up */
39390 - hba[i]->access.set_intr_mask(hba[i], FIFO_NOT_EMPTY);
39391 + hba[i]->access->set_intr_mask(hba[i], FIFO_NOT_EMPTY);
39392
39393 for(j=0; j<NWD; j++) {
39394 struct gendisk *disk = ida_gendisk[i][j];
39395 @@ -694,7 +694,7 @@ DBGINFO(
39396 for(i=0; i<NR_PRODUCTS; i++) {
39397 if (board_id == products[i].board_id) {
39398 c->product_name = products[i].product_name;
39399 - c->access = *(products[i].access);
39400 + c->access = products[i].access;
39401 break;
39402 }
39403 }
39404 @@ -792,7 +792,7 @@ static int cpqarray_eisa_detect(void)
39405 hba[ctlr]->intr = intr;
39406 sprintf(hba[ctlr]->devname, "ida%d", nr_ctlr);
39407 hba[ctlr]->product_name = products[j].product_name;
39408 - hba[ctlr]->access = *(products[j].access);
39409 + hba[ctlr]->access = products[j].access;
39410 hba[ctlr]->ctlr = ctlr;
39411 hba[ctlr]->board_id = board_id;
39412 hba[ctlr]->pci_dev = NULL; /* not PCI */
39413 @@ -978,7 +978,7 @@ static void start_io(ctlr_info_t *h)
39414
39415 while((c = h->reqQ) != NULL) {
39416 /* Can't do anything if we're busy */
39417 - if (h->access.fifo_full(h) == 0)
39418 + if (h->access->fifo_full(h) == 0)
39419 return;
39420
39421 /* Get the first entry from the request Q */
39422 @@ -986,7 +986,7 @@ static void start_io(ctlr_info_t *h)
39423 h->Qdepth--;
39424
39425 /* Tell the controller to do our bidding */
39426 - h->access.submit_command(h, c);
39427 + h->access->submit_command(h, c);
39428
39429 /* Get onto the completion Q */
39430 addQ(&h->cmpQ, c);
39431 @@ -1048,7 +1048,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
39432 unsigned long flags;
39433 __u32 a,a1;
39434
39435 - istat = h->access.intr_pending(h);
39436 + istat = h->access->intr_pending(h);
39437 /* Is this interrupt for us? */
39438 if (istat == 0)
39439 return IRQ_NONE;
39440 @@ -1059,7 +1059,7 @@ static irqreturn_t do_ida_intr(int irq, void *dev_id)
39441 */
39442 spin_lock_irqsave(IDA_LOCK(h->ctlr), flags);
39443 if (istat & FIFO_NOT_EMPTY) {
39444 - while((a = h->access.command_completed(h))) {
39445 + while((a = h->access->command_completed(h))) {
39446 a1 = a; a &= ~3;
39447 if ((c = h->cmpQ) == NULL)
39448 {
39449 @@ -1448,11 +1448,11 @@ static int sendcmd(
39450 /*
39451 * Disable interrupt
39452 */
39453 - info_p->access.set_intr_mask(info_p, 0);
39454 + info_p->access->set_intr_mask(info_p, 0);
39455 /* Make sure there is room in the command FIFO */
39456 /* Actually it should be completely empty at this time. */
39457 for (i = 200000; i > 0; i--) {
39458 - temp = info_p->access.fifo_full(info_p);
39459 + temp = info_p->access->fifo_full(info_p);
39460 if (temp != 0) {
39461 break;
39462 }
39463 @@ -1465,7 +1465,7 @@ DBG(
39464 /*
39465 * Send the cmd
39466 */
39467 - info_p->access.submit_command(info_p, c);
39468 + info_p->access->submit_command(info_p, c);
39469 complete = pollcomplete(ctlr);
39470
39471 pci_unmap_single(info_p->pci_dev, (dma_addr_t) c->req.sg[0].addr,
39472 @@ -1548,9 +1548,9 @@ static int revalidate_allvol(ctlr_info_t *host)
39473 * we check the new geometry. Then turn interrupts back on when
39474 * we're done.
39475 */
39476 - host->access.set_intr_mask(host, 0);
39477 + host->access->set_intr_mask(host, 0);
39478 getgeometry(ctlr);
39479 - host->access.set_intr_mask(host, FIFO_NOT_EMPTY);
39480 + host->access->set_intr_mask(host, FIFO_NOT_EMPTY);
39481
39482 for(i=0; i<NWD; i++) {
39483 struct gendisk *disk = ida_gendisk[ctlr][i];
39484 @@ -1590,7 +1590,7 @@ static int pollcomplete(int ctlr)
39485 /* Wait (up to 2 seconds) for a command to complete */
39486
39487 for (i = 200000; i > 0; i--) {
39488 - done = hba[ctlr]->access.command_completed(hba[ctlr]);
39489 + done = hba[ctlr]->access->command_completed(hba[ctlr]);
39490 if (done == 0) {
39491 udelay(10); /* a short fixed delay */
39492 } else
39493 diff --git a/drivers/block/cpqarray.h b/drivers/block/cpqarray.h
39494 index be73e9d..7fbf140 100644
39495 --- a/drivers/block/cpqarray.h
39496 +++ b/drivers/block/cpqarray.h
39497 @@ -99,7 +99,7 @@ struct ctlr_info {
39498 drv_info_t drv[NWD];
39499 struct proc_dir_entry *proc;
39500
39501 - struct access_method access;
39502 + struct access_method *access;
39503
39504 cmdlist_t *reqQ;
39505 cmdlist_t *cmpQ;
39506 diff --git a/drivers/block/drbd/drbd_bitmap.c b/drivers/block/drbd/drbd_bitmap.c
39507 index 434c77d..6d3219a 100644
39508 --- a/drivers/block/drbd/drbd_bitmap.c
39509 +++ b/drivers/block/drbd/drbd_bitmap.c
39510 @@ -1036,7 +1036,7 @@ static void bm_page_io_async(struct drbd_bm_aio_ctx *ctx, int page_nr) __must_ho
39511 submit_bio(rw, bio);
39512 /* this should not count as user activity and cause the
39513 * resync to throttle -- see drbd_rs_should_slow_down(). */
39514 - atomic_add(len >> 9, &device->rs_sect_ev);
39515 + atomic_add_unchecked(len >> 9, &device->rs_sect_ev);
39516 }
39517 }
39518
39519 diff --git a/drivers/block/drbd/drbd_int.h b/drivers/block/drbd/drbd_int.h
39520 index efd19c2..6ccfa94 100644
39521 --- a/drivers/block/drbd/drbd_int.h
39522 +++ b/drivers/block/drbd/drbd_int.h
39523 @@ -386,7 +386,7 @@ struct drbd_epoch {
39524 struct drbd_connection *connection;
39525 struct list_head list;
39526 unsigned int barrier_nr;
39527 - atomic_t epoch_size; /* increased on every request added. */
39528 + atomic_unchecked_t epoch_size; /* increased on every request added. */
39529 atomic_t active; /* increased on every req. added, and dec on every finished. */
39530 unsigned long flags;
39531 };
39532 @@ -947,7 +947,7 @@ struct drbd_device {
39533 unsigned int al_tr_number;
39534 int al_tr_cycle;
39535 wait_queue_head_t seq_wait;
39536 - atomic_t packet_seq;
39537 + atomic_unchecked_t packet_seq;
39538 unsigned int peer_seq;
39539 spinlock_t peer_seq_lock;
39540 unsigned long comm_bm_set; /* communicated number of set bits. */
39541 @@ -956,8 +956,8 @@ struct drbd_device {
39542 struct mutex own_state_mutex;
39543 struct mutex *state_mutex; /* either own_state_mutex or first_peer_device(device)->connection->cstate_mutex */
39544 char congestion_reason; /* Why we where congested... */
39545 - atomic_t rs_sect_in; /* for incoming resync data rate, SyncTarget */
39546 - atomic_t rs_sect_ev; /* for submitted resync data rate, both */
39547 + atomic_unchecked_t rs_sect_in; /* for incoming resync data rate, SyncTarget */
39548 + atomic_unchecked_t rs_sect_ev; /* for submitted resync data rate, both */
39549 int rs_last_sect_ev; /* counter to compare with */
39550 int rs_last_events; /* counter of read or write "events" (unit sectors)
39551 * on the lower level device when we last looked. */
39552 diff --git a/drivers/block/drbd/drbd_main.c b/drivers/block/drbd/drbd_main.c
39553 index a151853..b9b5baa 100644
39554 --- a/drivers/block/drbd/drbd_main.c
39555 +++ b/drivers/block/drbd/drbd_main.c
39556 @@ -1328,7 +1328,7 @@ static int _drbd_send_ack(struct drbd_peer_device *peer_device, enum drbd_packet
39557 p->sector = sector;
39558 p->block_id = block_id;
39559 p->blksize = blksize;
39560 - p->seq_num = cpu_to_be32(atomic_inc_return(&peer_device->device->packet_seq));
39561 + p->seq_num = cpu_to_be32(atomic_inc_return_unchecked(&peer_device->device->packet_seq));
39562 return drbd_send_command(peer_device, sock, cmd, sizeof(*p), NULL, 0);
39563 }
39564
39565 @@ -1634,7 +1634,7 @@ int drbd_send_dblock(struct drbd_peer_device *peer_device, struct drbd_request *
39566 return -EIO;
39567 p->sector = cpu_to_be64(req->i.sector);
39568 p->block_id = (unsigned long)req;
39569 - p->seq_num = cpu_to_be32(atomic_inc_return(&device->packet_seq));
39570 + p->seq_num = cpu_to_be32(atomic_inc_return_unchecked(&device->packet_seq));
39571 dp_flags = bio_flags_to_wire(peer_device->connection, req->master_bio->bi_rw);
39572 if (device->state.conn >= C_SYNC_SOURCE &&
39573 device->state.conn <= C_PAUSED_SYNC_T)
39574 @@ -1915,8 +1915,8 @@ void drbd_init_set_defaults(struct drbd_device *device)
39575 atomic_set(&device->unacked_cnt, 0);
39576 atomic_set(&device->local_cnt, 0);
39577 atomic_set(&device->pp_in_use_by_net, 0);
39578 - atomic_set(&device->rs_sect_in, 0);
39579 - atomic_set(&device->rs_sect_ev, 0);
39580 + atomic_set_unchecked(&device->rs_sect_in, 0);
39581 + atomic_set_unchecked(&device->rs_sect_ev, 0);
39582 atomic_set(&device->ap_in_flight, 0);
39583 atomic_set(&device->md_io.in_use, 0);
39584
39585 @@ -2683,8 +2683,8 @@ void drbd_destroy_connection(struct kref *kref)
39586 struct drbd_connection *connection = container_of(kref, struct drbd_connection, kref);
39587 struct drbd_resource *resource = connection->resource;
39588
39589 - if (atomic_read(&connection->current_epoch->epoch_size) != 0)
39590 - drbd_err(connection, "epoch_size:%d\n", atomic_read(&connection->current_epoch->epoch_size));
39591 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size) != 0)
39592 + drbd_err(connection, "epoch_size:%d\n", atomic_read_unchecked(&connection->current_epoch->epoch_size));
39593 kfree(connection->current_epoch);
39594
39595 idr_destroy(&connection->peer_devices);
39596 diff --git a/drivers/block/drbd/drbd_nl.c b/drivers/block/drbd/drbd_nl.c
39597 index 74df8cf..e41fc24 100644
39598 --- a/drivers/block/drbd/drbd_nl.c
39599 +++ b/drivers/block/drbd/drbd_nl.c
39600 @@ -3637,13 +3637,13 @@ finish:
39601
39602 void drbd_bcast_event(struct drbd_device *device, const struct sib_info *sib)
39603 {
39604 - static atomic_t drbd_genl_seq = ATOMIC_INIT(2); /* two. */
39605 + static atomic_unchecked_t drbd_genl_seq = ATOMIC_INIT(2); /* two. */
39606 struct sk_buff *msg;
39607 struct drbd_genlmsghdr *d_out;
39608 unsigned seq;
39609 int err = -ENOMEM;
39610
39611 - seq = atomic_inc_return(&drbd_genl_seq);
39612 + seq = atomic_inc_return_unchecked(&drbd_genl_seq);
39613 msg = genlmsg_new(NLMSG_GOODSIZE, GFP_NOIO);
39614 if (!msg)
39615 goto failed;
39616 diff --git a/drivers/block/drbd/drbd_receiver.c b/drivers/block/drbd/drbd_receiver.c
39617 index c097909..13688e1 100644
39618 --- a/drivers/block/drbd/drbd_receiver.c
39619 +++ b/drivers/block/drbd/drbd_receiver.c
39620 @@ -870,7 +870,7 @@ int drbd_connected(struct drbd_peer_device *peer_device)
39621 struct drbd_device *device = peer_device->device;
39622 int err;
39623
39624 - atomic_set(&device->packet_seq, 0);
39625 + atomic_set_unchecked(&device->packet_seq, 0);
39626 device->peer_seq = 0;
39627
39628 device->state_mutex = peer_device->connection->agreed_pro_version < 100 ?
39629 @@ -1233,7 +1233,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_connection *connectio
39630 do {
39631 next_epoch = NULL;
39632
39633 - epoch_size = atomic_read(&epoch->epoch_size);
39634 + epoch_size = atomic_read_unchecked(&epoch->epoch_size);
39635
39636 switch (ev & ~EV_CLEANUP) {
39637 case EV_PUT:
39638 @@ -1273,7 +1273,7 @@ static enum finish_epoch drbd_may_finish_epoch(struct drbd_connection *connectio
39639 rv = FE_DESTROYED;
39640 } else {
39641 epoch->flags = 0;
39642 - atomic_set(&epoch->epoch_size, 0);
39643 + atomic_set_unchecked(&epoch->epoch_size, 0);
39644 /* atomic_set(&epoch->active, 0); is already zero */
39645 if (rv == FE_STILL_LIVE)
39646 rv = FE_RECYCLED;
39647 @@ -1550,7 +1550,7 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
39648 conn_wait_active_ee_empty(connection);
39649 drbd_flush(connection);
39650
39651 - if (atomic_read(&connection->current_epoch->epoch_size)) {
39652 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size)) {
39653 epoch = kmalloc(sizeof(struct drbd_epoch), GFP_NOIO);
39654 if (epoch)
39655 break;
39656 @@ -1564,11 +1564,11 @@ static int receive_Barrier(struct drbd_connection *connection, struct packet_inf
39657 }
39658
39659 epoch->flags = 0;
39660 - atomic_set(&epoch->epoch_size, 0);
39661 + atomic_set_unchecked(&epoch->epoch_size, 0);
39662 atomic_set(&epoch->active, 0);
39663
39664 spin_lock(&connection->epoch_lock);
39665 - if (atomic_read(&connection->current_epoch->epoch_size)) {
39666 + if (atomic_read_unchecked(&connection->current_epoch->epoch_size)) {
39667 list_add(&epoch->list, &connection->current_epoch->list);
39668 connection->current_epoch = epoch;
39669 connection->epochs++;
39670 @@ -1802,7 +1802,7 @@ static int recv_resync_read(struct drbd_peer_device *peer_device, sector_t secto
39671 list_add_tail(&peer_req->w.list, &device->sync_ee);
39672 spin_unlock_irq(&device->resource->req_lock);
39673
39674 - atomic_add(pi->size >> 9, &device->rs_sect_ev);
39675 + atomic_add_unchecked(pi->size >> 9, &device->rs_sect_ev);
39676 if (drbd_submit_peer_request(device, peer_req, WRITE, DRBD_FAULT_RS_WR) == 0)
39677 return 0;
39678
39679 @@ -1900,7 +1900,7 @@ static int receive_RSDataReply(struct drbd_connection *connection, struct packet
39680 drbd_send_ack_dp(peer_device, P_NEG_ACK, p, pi->size);
39681 }
39682
39683 - atomic_add(pi->size >> 9, &device->rs_sect_in);
39684 + atomic_add_unchecked(pi->size >> 9, &device->rs_sect_in);
39685
39686 return err;
39687 }
39688 @@ -2290,7 +2290,7 @@ static int receive_Data(struct drbd_connection *connection, struct packet_info *
39689
39690 err = wait_for_and_update_peer_seq(peer_device, peer_seq);
39691 drbd_send_ack_dp(peer_device, P_NEG_ACK, p, pi->size);
39692 - atomic_inc(&connection->current_epoch->epoch_size);
39693 + atomic_inc_unchecked(&connection->current_epoch->epoch_size);
39694 err2 = drbd_drain_block(peer_device, pi->size);
39695 if (!err)
39696 err = err2;
39697 @@ -2334,7 +2334,7 @@ static int receive_Data(struct drbd_connection *connection, struct packet_info *
39698
39699 spin_lock(&connection->epoch_lock);
39700 peer_req->epoch = connection->current_epoch;
39701 - atomic_inc(&peer_req->epoch->epoch_size);
39702 + atomic_inc_unchecked(&peer_req->epoch->epoch_size);
39703 atomic_inc(&peer_req->epoch->active);
39704 spin_unlock(&connection->epoch_lock);
39705
39706 @@ -2479,7 +2479,7 @@ bool drbd_rs_c_min_rate_throttle(struct drbd_device *device)
39707
39708 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
39709 (int)part_stat_read(&disk->part0, sectors[1]) -
39710 - atomic_read(&device->rs_sect_ev);
39711 + atomic_read_unchecked(&device->rs_sect_ev);
39712
39713 if (atomic_read(&device->ap_actlog_cnt)
39714 || curr_events - device->rs_last_events > 64) {
39715 @@ -2618,7 +2618,7 @@ static int receive_DataRequest(struct drbd_connection *connection, struct packet
39716 device->use_csums = true;
39717 } else if (pi->cmd == P_OV_REPLY) {
39718 /* track progress, we may need to throttle */
39719 - atomic_add(size >> 9, &device->rs_sect_in);
39720 + atomic_add_unchecked(size >> 9, &device->rs_sect_in);
39721 peer_req->w.cb = w_e_end_ov_reply;
39722 dec_rs_pending(device);
39723 /* drbd_rs_begin_io done when we sent this request,
39724 @@ -2691,7 +2691,7 @@ static int receive_DataRequest(struct drbd_connection *connection, struct packet
39725 goto out_free_e;
39726
39727 submit_for_resync:
39728 - atomic_add(size >> 9, &device->rs_sect_ev);
39729 + atomic_add_unchecked(size >> 9, &device->rs_sect_ev);
39730
39731 submit:
39732 update_receiver_timing_details(connection, drbd_submit_peer_request);
39733 @@ -4564,7 +4564,7 @@ struct data_cmd {
39734 int expect_payload;
39735 size_t pkt_size;
39736 int (*fn)(struct drbd_connection *, struct packet_info *);
39737 -};
39738 +} __do_const;
39739
39740 static struct data_cmd drbd_cmd_handler[] = {
39741 [P_DATA] = { 1, sizeof(struct p_data), receive_Data },
39742 @@ -4678,7 +4678,7 @@ static void conn_disconnect(struct drbd_connection *connection)
39743 if (!list_empty(&connection->current_epoch->list))
39744 drbd_err(connection, "ASSERTION FAILED: connection->current_epoch->list not empty\n");
39745 /* ok, no more ee's on the fly, it is safe to reset the epoch_size */
39746 - atomic_set(&connection->current_epoch->epoch_size, 0);
39747 + atomic_set_unchecked(&connection->current_epoch->epoch_size, 0);
39748 connection->send.seen_any_write_yet = false;
39749
39750 drbd_info(connection, "Connection closed\n");
39751 @@ -5182,7 +5182,7 @@ static int got_IsInSync(struct drbd_connection *connection, struct packet_info *
39752 put_ldev(device);
39753 }
39754 dec_rs_pending(device);
39755 - atomic_add(blksize >> 9, &device->rs_sect_in);
39756 + atomic_add_unchecked(blksize >> 9, &device->rs_sect_in);
39757
39758 return 0;
39759 }
39760 @@ -5470,7 +5470,7 @@ static int connection_finish_peer_reqs(struct drbd_connection *connection)
39761 struct asender_cmd {
39762 size_t pkt_size;
39763 int (*fn)(struct drbd_connection *connection, struct packet_info *);
39764 -};
39765 +} __do_const;
39766
39767 static struct asender_cmd asender_tbl[] = {
39768 [P_PING] = { 0, got_Ping },
39769 diff --git a/drivers/block/drbd/drbd_worker.c b/drivers/block/drbd/drbd_worker.c
39770 index d0fae55..4469096 100644
39771 --- a/drivers/block/drbd/drbd_worker.c
39772 +++ b/drivers/block/drbd/drbd_worker.c
39773 @@ -408,7 +408,7 @@ static int read_for_csum(struct drbd_peer_device *peer_device, sector_t sector,
39774 list_add_tail(&peer_req->w.list, &device->read_ee);
39775 spin_unlock_irq(&device->resource->req_lock);
39776
39777 - atomic_add(size >> 9, &device->rs_sect_ev);
39778 + atomic_add_unchecked(size >> 9, &device->rs_sect_ev);
39779 if (drbd_submit_peer_request(device, peer_req, READ, DRBD_FAULT_RS_RD) == 0)
39780 return 0;
39781
39782 @@ -553,7 +553,7 @@ static int drbd_rs_number_requests(struct drbd_device *device)
39783 unsigned int sect_in; /* Number of sectors that came in since the last turn */
39784 int number, mxb;
39785
39786 - sect_in = atomic_xchg(&device->rs_sect_in, 0);
39787 + sect_in = atomic_xchg_unchecked(&device->rs_sect_in, 0);
39788 device->rs_in_flight -= sect_in;
39789
39790 rcu_read_lock();
39791 @@ -1595,8 +1595,8 @@ void drbd_rs_controller_reset(struct drbd_device *device)
39792 struct gendisk *disk = device->ldev->backing_bdev->bd_contains->bd_disk;
39793 struct fifo_buffer *plan;
39794
39795 - atomic_set(&device->rs_sect_in, 0);
39796 - atomic_set(&device->rs_sect_ev, 0);
39797 + atomic_set_unchecked(&device->rs_sect_in, 0);
39798 + atomic_set_unchecked(&device->rs_sect_ev, 0);
39799 device->rs_in_flight = 0;
39800 device->rs_last_events =
39801 (int)part_stat_read(&disk->part0, sectors[0]) +
39802 diff --git a/drivers/block/pktcdvd.c b/drivers/block/pktcdvd.c
39803 index 4c20c22..caef1eb 100644
39804 --- a/drivers/block/pktcdvd.c
39805 +++ b/drivers/block/pktcdvd.c
39806 @@ -109,7 +109,7 @@ static int pkt_seq_show(struct seq_file *m, void *p);
39807
39808 static sector_t get_zone(sector_t sector, struct pktcdvd_device *pd)
39809 {
39810 - return (sector + pd->offset) & ~(sector_t)(pd->settings.size - 1);
39811 + return (sector + pd->offset) & ~(sector_t)(pd->settings.size - 1UL);
39812 }
39813
39814 /*
39815 @@ -1891,7 +1891,7 @@ static noinline_for_stack int pkt_probe_settings(struct pktcdvd_device *pd)
39816 return -EROFS;
39817 }
39818 pd->settings.fp = ti.fp;
39819 - pd->offset = (be32_to_cpu(ti.track_start) << 2) & (pd->settings.size - 1);
39820 + pd->offset = (be32_to_cpu(ti.track_start) << 2) & (pd->settings.size - 1UL);
39821
39822 if (ti.nwa_v) {
39823 pd->nwa = be32_to_cpu(ti.next_writable);
39824 diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c
39825 index 017b7d5..6845b91 100644
39826 --- a/drivers/block/rbd.c
39827 +++ b/drivers/block/rbd.c
39828 @@ -64,7 +64,7 @@
39829 * If the counter is already at its maximum value returns
39830 * -EINVAL without updating it.
39831 */
39832 -static int atomic_inc_return_safe(atomic_t *v)
39833 +static int __intentional_overflow(-1) atomic_inc_return_safe(atomic_t *v)
39834 {
39835 unsigned int counter;
39836
39837 diff --git a/drivers/block/smart1,2.h b/drivers/block/smart1,2.h
39838 index e5565fb..71be10b4 100644
39839 --- a/drivers/block/smart1,2.h
39840 +++ b/drivers/block/smart1,2.h
39841 @@ -108,11 +108,11 @@ static unsigned long smart4_intr_pending(ctlr_info_t *h)
39842 }
39843
39844 static struct access_method smart4_access = {
39845 - smart4_submit_command,
39846 - smart4_intr_mask,
39847 - smart4_fifo_full,
39848 - smart4_intr_pending,
39849 - smart4_completed,
39850 + .submit_command = smart4_submit_command,
39851 + .set_intr_mask = smart4_intr_mask,
39852 + .fifo_full = smart4_fifo_full,
39853 + .intr_pending = smart4_intr_pending,
39854 + .command_completed = smart4_completed,
39855 };
39856
39857 /*
39858 @@ -144,11 +144,11 @@ static unsigned long smart2_intr_pending(ctlr_info_t *h)
39859 }
39860
39861 static struct access_method smart2_access = {
39862 - smart2_submit_command,
39863 - smart2_intr_mask,
39864 - smart2_fifo_full,
39865 - smart2_intr_pending,
39866 - smart2_completed,
39867 + .submit_command = smart2_submit_command,
39868 + .set_intr_mask = smart2_intr_mask,
39869 + .fifo_full = smart2_fifo_full,
39870 + .intr_pending = smart2_intr_pending,
39871 + .command_completed = smart2_completed,
39872 };
39873
39874 /*
39875 @@ -180,11 +180,11 @@ static unsigned long smart2e_intr_pending(ctlr_info_t *h)
39876 }
39877
39878 static struct access_method smart2e_access = {
39879 - smart2e_submit_command,
39880 - smart2e_intr_mask,
39881 - smart2e_fifo_full,
39882 - smart2e_intr_pending,
39883 - smart2e_completed,
39884 + .submit_command = smart2e_submit_command,
39885 + .set_intr_mask = smart2e_intr_mask,
39886 + .fifo_full = smart2e_fifo_full,
39887 + .intr_pending = smart2e_intr_pending,
39888 + .command_completed = smart2e_completed,
39889 };
39890
39891 /*
39892 @@ -270,9 +270,9 @@ static unsigned long smart1_intr_pending(ctlr_info_t *h)
39893 }
39894
39895 static struct access_method smart1_access = {
39896 - smart1_submit_command,
39897 - smart1_intr_mask,
39898 - smart1_fifo_full,
39899 - smart1_intr_pending,
39900 - smart1_completed,
39901 + .submit_command = smart1_submit_command,
39902 + .set_intr_mask = smart1_intr_mask,
39903 + .fifo_full = smart1_fifo_full,
39904 + .intr_pending = smart1_intr_pending,
39905 + .command_completed = smart1_completed,
39906 };
39907 diff --git a/drivers/bluetooth/btwilink.c b/drivers/bluetooth/btwilink.c
39908 index 7a722df..54b76ab 100644
39909 --- a/drivers/bluetooth/btwilink.c
39910 +++ b/drivers/bluetooth/btwilink.c
39911 @@ -288,7 +288,7 @@ static int ti_st_send_frame(struct hci_dev *hdev, struct sk_buff *skb)
39912
39913 static int bt_ti_probe(struct platform_device *pdev)
39914 {
39915 - static struct ti_st *hst;
39916 + struct ti_st *hst;
39917 struct hci_dev *hdev;
39918 int err;
39919
39920 diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
39921 index 5d28a45..a538f90 100644
39922 --- a/drivers/cdrom/cdrom.c
39923 +++ b/drivers/cdrom/cdrom.c
39924 @@ -610,7 +610,6 @@ int register_cdrom(struct cdrom_device_info *cdi)
39925 ENSURE(reset, CDC_RESET);
39926 ENSURE(generic_packet, CDC_GENERIC_PACKET);
39927 cdi->mc_flags = 0;
39928 - cdo->n_minors = 0;
39929 cdi->options = CDO_USE_FFLAGS;
39930
39931 if (autoclose == 1 && CDROM_CAN(CDC_CLOSE_TRAY))
39932 @@ -630,8 +629,11 @@ int register_cdrom(struct cdrom_device_info *cdi)
39933 else
39934 cdi->cdda_method = CDDA_OLD;
39935
39936 - if (!cdo->generic_packet)
39937 - cdo->generic_packet = cdrom_dummy_generic_packet;
39938 + if (!cdo->generic_packet) {
39939 + pax_open_kernel();
39940 + *(void **)&cdo->generic_packet = cdrom_dummy_generic_packet;
39941 + pax_close_kernel();
39942 + }
39943
39944 cd_dbg(CD_REG_UNREG, "drive \"/dev/%s\" registered\n", cdi->name);
39945 mutex_lock(&cdrom_mutex);
39946 @@ -652,7 +654,6 @@ void unregister_cdrom(struct cdrom_device_info *cdi)
39947 if (cdi->exit)
39948 cdi->exit(cdi);
39949
39950 - cdi->ops->n_minors--;
39951 cd_dbg(CD_REG_UNREG, "drive \"/dev/%s\" unregistered\n", cdi->name);
39952 }
39953
39954 @@ -2126,7 +2127,7 @@ static int cdrom_read_cdda_old(struct cdrom_device_info *cdi, __u8 __user *ubuf,
39955 */
39956 nr = nframes;
39957 do {
39958 - cgc.buffer = kmalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL);
39959 + cgc.buffer = kzalloc(CD_FRAMESIZE_RAW * nr, GFP_KERNEL);
39960 if (cgc.buffer)
39961 break;
39962
39963 @@ -3434,7 +3435,7 @@ static int cdrom_print_info(const char *header, int val, char *info,
39964 struct cdrom_device_info *cdi;
39965 int ret;
39966
39967 - ret = scnprintf(info + *pos, max_size - *pos, header);
39968 + ret = scnprintf(info + *pos, max_size - *pos, "%s", header);
39969 if (!ret)
39970 return 1;
39971
39972 diff --git a/drivers/cdrom/gdrom.c b/drivers/cdrom/gdrom.c
39973 index 584bc31..e64a12c 100644
39974 --- a/drivers/cdrom/gdrom.c
39975 +++ b/drivers/cdrom/gdrom.c
39976 @@ -491,7 +491,6 @@ static struct cdrom_device_ops gdrom_ops = {
39977 .audio_ioctl = gdrom_audio_ioctl,
39978 .capability = CDC_MULTI_SESSION | CDC_MEDIA_CHANGED |
39979 CDC_RESET | CDC_DRIVE_STATUS | CDC_CD_R,
39980 - .n_minors = 1,
39981 };
39982
39983 static int gdrom_bdops_open(struct block_device *bdev, fmode_t mode)
39984 diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
39985 index a043107..1263e4a 100644
39986 --- a/drivers/char/Kconfig
39987 +++ b/drivers/char/Kconfig
39988 @@ -17,7 +17,8 @@ config DEVMEM
39989
39990 config DEVKMEM
39991 bool "/dev/kmem virtual device support"
39992 - default y
39993 + default n
39994 + depends on !GRKERNSEC_KMEM
39995 help
39996 Say Y here if you want to support the /dev/kmem device. The
39997 /dev/kmem device is rarely used, but can be used for certain
39998 @@ -586,6 +587,7 @@ config DEVPORT
39999 bool
40000 depends on !M68K
40001 depends on ISA || PCI
40002 + depends on !GRKERNSEC_KMEM
40003 default y
40004
40005 source "drivers/s390/char/Kconfig"
40006 diff --git a/drivers/char/agp/compat_ioctl.c b/drivers/char/agp/compat_ioctl.c
40007 index a48e05b..6bac831 100644
40008 --- a/drivers/char/agp/compat_ioctl.c
40009 +++ b/drivers/char/agp/compat_ioctl.c
40010 @@ -108,7 +108,7 @@ static int compat_agpioc_reserve_wrap(struct agp_file_private *priv, void __user
40011 return -ENOMEM;
40012 }
40013
40014 - if (copy_from_user(usegment, (void __user *) ureserve.seg_list,
40015 + if (copy_from_user(usegment, (void __force_user *) ureserve.seg_list,
40016 sizeof(*usegment) * ureserve.seg_count)) {
40017 kfree(usegment);
40018 kfree(ksegment);
40019 diff --git a/drivers/char/agp/frontend.c b/drivers/char/agp/frontend.c
40020 index 09f17eb..8531d2f 100644
40021 --- a/drivers/char/agp/frontend.c
40022 +++ b/drivers/char/agp/frontend.c
40023 @@ -806,7 +806,7 @@ static int agpioc_reserve_wrap(struct agp_file_private *priv, void __user *arg)
40024 if (copy_from_user(&reserve, arg, sizeof(struct agp_region)))
40025 return -EFAULT;
40026
40027 - if ((unsigned) reserve.seg_count >= ~0U/sizeof(struct agp_segment))
40028 + if ((unsigned) reserve.seg_count >= ~0U/sizeof(struct agp_segment_priv))
40029 return -EFAULT;
40030
40031 client = agp_find_client_by_pid(reserve.pid);
40032 @@ -836,7 +836,7 @@ static int agpioc_reserve_wrap(struct agp_file_private *priv, void __user *arg)
40033 if (segment == NULL)
40034 return -ENOMEM;
40035
40036 - if (copy_from_user(segment, (void __user *) reserve.seg_list,
40037 + if (copy_from_user(segment, (void __force_user *) reserve.seg_list,
40038 sizeof(struct agp_segment) * reserve.seg_count)) {
40039 kfree(segment);
40040 return -EFAULT;
40041 diff --git a/drivers/char/agp/intel-gtt.c b/drivers/char/agp/intel-gtt.c
40042 index c6dea3f..72ae4b0 100644
40043 --- a/drivers/char/agp/intel-gtt.c
40044 +++ b/drivers/char/agp/intel-gtt.c
40045 @@ -1408,8 +1408,8 @@ int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
40046 }
40047 EXPORT_SYMBOL(intel_gmch_probe);
40048
40049 -void intel_gtt_get(size_t *gtt_total, size_t *stolen_size,
40050 - phys_addr_t *mappable_base, unsigned long *mappable_end)
40051 +void intel_gtt_get(uint64_t *gtt_total, uint64_t *stolen_size,
40052 + uint64_t *mappable_base, uint64_t *mappable_end)
40053 {
40054 *gtt_total = intel_private.gtt_total_entries << PAGE_SHIFT;
40055 *stolen_size = intel_private.stolen_size;
40056 diff --git a/drivers/char/genrtc.c b/drivers/char/genrtc.c
40057 index 4f94375..413694e 100644
40058 --- a/drivers/char/genrtc.c
40059 +++ b/drivers/char/genrtc.c
40060 @@ -273,6 +273,7 @@ static int gen_rtc_ioctl(struct file *file,
40061 switch (cmd) {
40062
40063 case RTC_PLL_GET:
40064 + memset(&pll, 0, sizeof(pll));
40065 if (get_rtc_pll(&pll))
40066 return -EINVAL;
40067 else
40068 diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
40069 index 5c0baa9..44011b1 100644
40070 --- a/drivers/char/hpet.c
40071 +++ b/drivers/char/hpet.c
40072 @@ -575,7 +575,7 @@ static inline unsigned long hpet_time_div(struct hpets *hpets,
40073 }
40074
40075 static int
40076 -hpet_ioctl_common(struct hpet_dev *devp, int cmd, unsigned long arg,
40077 +hpet_ioctl_common(struct hpet_dev *devp, unsigned int cmd, unsigned long arg,
40078 struct hpet_info *info)
40079 {
40080 struct hpet_timer __iomem *timer;
40081 diff --git a/drivers/char/ipmi/ipmi_msghandler.c b/drivers/char/ipmi/ipmi_msghandler.c
40082 index bf75f63..359fa10 100644
40083 --- a/drivers/char/ipmi/ipmi_msghandler.c
40084 +++ b/drivers/char/ipmi/ipmi_msghandler.c
40085 @@ -436,7 +436,7 @@ struct ipmi_smi {
40086 struct proc_dir_entry *proc_dir;
40087 char proc_dir_name[10];
40088
40089 - atomic_t stats[IPMI_NUM_STATS];
40090 + atomic_unchecked_t stats[IPMI_NUM_STATS];
40091
40092 /*
40093 * run_to_completion duplicate of smb_info, smi_info
40094 @@ -468,9 +468,9 @@ static LIST_HEAD(smi_watchers);
40095 static DEFINE_MUTEX(smi_watchers_mutex);
40096
40097 #define ipmi_inc_stat(intf, stat) \
40098 - atomic_inc(&(intf)->stats[IPMI_STAT_ ## stat])
40099 + atomic_inc_unchecked(&(intf)->stats[IPMI_STAT_ ## stat])
40100 #define ipmi_get_stat(intf, stat) \
40101 - ((unsigned int) atomic_read(&(intf)->stats[IPMI_STAT_ ## stat]))
40102 + ((unsigned int) atomic_read_unchecked(&(intf)->stats[IPMI_STAT_ ## stat]))
40103
40104 static char *addr_src_to_str[] = { "invalid", "hotmod", "hardcoded", "SPMI",
40105 "ACPI", "SMBIOS", "PCI",
40106 @@ -2828,7 +2828,7 @@ int ipmi_register_smi(struct ipmi_smi_handlers *handlers,
40107 INIT_LIST_HEAD(&intf->cmd_rcvrs);
40108 init_waitqueue_head(&intf->waitq);
40109 for (i = 0; i < IPMI_NUM_STATS; i++)
40110 - atomic_set(&intf->stats[i], 0);
40111 + atomic_set_unchecked(&intf->stats[i], 0);
40112
40113 intf->proc_dir = NULL;
40114
40115 diff --git a/drivers/char/ipmi/ipmi_si_intf.c b/drivers/char/ipmi/ipmi_si_intf.c
40116 index 8a45e92..e41b1c7 100644
40117 --- a/drivers/char/ipmi/ipmi_si_intf.c
40118 +++ b/drivers/char/ipmi/ipmi_si_intf.c
40119 @@ -289,7 +289,7 @@ struct smi_info {
40120 unsigned char slave_addr;
40121
40122 /* Counters and things for the proc filesystem. */
40123 - atomic_t stats[SI_NUM_STATS];
40124 + atomic_unchecked_t stats[SI_NUM_STATS];
40125
40126 struct task_struct *thread;
40127
40128 @@ -298,9 +298,9 @@ struct smi_info {
40129 };
40130
40131 #define smi_inc_stat(smi, stat) \
40132 - atomic_inc(&(smi)->stats[SI_STAT_ ## stat])
40133 + atomic_inc_unchecked(&(smi)->stats[SI_STAT_ ## stat])
40134 #define smi_get_stat(smi, stat) \
40135 - ((unsigned int) atomic_read(&(smi)->stats[SI_STAT_ ## stat]))
40136 + ((unsigned int) atomic_read_unchecked(&(smi)->stats[SI_STAT_ ## stat]))
40137
40138 #define SI_MAX_PARMS 4
40139
40140 @@ -3500,7 +3500,7 @@ static int try_smi_init(struct smi_info *new_smi)
40141 atomic_set(&new_smi->req_events, 0);
40142 new_smi->run_to_completion = false;
40143 for (i = 0; i < SI_NUM_STATS; i++)
40144 - atomic_set(&new_smi->stats[i], 0);
40145 + atomic_set_unchecked(&new_smi->stats[i], 0);
40146
40147 new_smi->interrupt_disabled = true;
40148 atomic_set(&new_smi->need_watch, 0);
40149 diff --git a/drivers/char/mem.c b/drivers/char/mem.c
40150 index 6b1721f..fda9398 100644
40151 --- a/drivers/char/mem.c
40152 +++ b/drivers/char/mem.c
40153 @@ -18,6 +18,7 @@
40154 #include <linux/raw.h>
40155 #include <linux/tty.h>
40156 #include <linux/capability.h>
40157 +#include <linux/security.h>
40158 #include <linux/ptrace.h>
40159 #include <linux/device.h>
40160 #include <linux/highmem.h>
40161 @@ -36,6 +37,10 @@
40162
40163 #define DEVPORT_MINOR 4
40164
40165 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
40166 +extern const struct file_operations grsec_fops;
40167 +#endif
40168 +
40169 static inline unsigned long size_inside_page(unsigned long start,
40170 unsigned long size)
40171 {
40172 @@ -67,9 +72,13 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40173
40174 while (cursor < to) {
40175 if (!devmem_is_allowed(pfn)) {
40176 +#ifdef CONFIG_GRKERNSEC_KMEM
40177 + gr_handle_mem_readwrite(from, to);
40178 +#else
40179 printk(KERN_INFO
40180 "Program %s tried to access /dev/mem between %Lx->%Lx.\n",
40181 current->comm, from, to);
40182 +#endif
40183 return 0;
40184 }
40185 cursor += PAGE_SIZE;
40186 @@ -77,6 +86,11 @@ static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40187 }
40188 return 1;
40189 }
40190 +#elif defined(CONFIG_GRKERNSEC_KMEM)
40191 +static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40192 +{
40193 + return 0;
40194 +}
40195 #else
40196 static inline int range_is_allowed(unsigned long pfn, unsigned long size)
40197 {
40198 @@ -124,7 +138,8 @@ static ssize_t read_mem(struct file *file, char __user *buf,
40199 #endif
40200
40201 while (count > 0) {
40202 - unsigned long remaining;
40203 + unsigned long remaining = 0;
40204 + char *temp;
40205
40206 sz = size_inside_page(p, count);
40207
40208 @@ -140,7 +155,24 @@ static ssize_t read_mem(struct file *file, char __user *buf,
40209 if (!ptr)
40210 return -EFAULT;
40211
40212 - remaining = copy_to_user(buf, ptr, sz);
40213 +#ifdef CONFIG_PAX_USERCOPY
40214 + temp = kmalloc(sz, GFP_KERNEL|GFP_USERCOPY);
40215 + if (!temp) {
40216 + unxlate_dev_mem_ptr(p, ptr);
40217 + return -ENOMEM;
40218 + }
40219 + remaining = probe_kernel_read(temp, ptr, sz);
40220 +#else
40221 + temp = ptr;
40222 +#endif
40223 +
40224 + if (!remaining)
40225 + remaining = copy_to_user(buf, temp, sz);
40226 +
40227 +#ifdef CONFIG_PAX_USERCOPY
40228 + kfree(temp);
40229 +#endif
40230 +
40231 unxlate_dev_mem_ptr(p, ptr);
40232 if (remaining)
40233 return -EFAULT;
40234 @@ -380,9 +412,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40235 size_t count, loff_t *ppos)
40236 {
40237 unsigned long p = *ppos;
40238 - ssize_t low_count, read, sz;
40239 + ssize_t low_count, read, sz, err = 0;
40240 char *kbuf; /* k-addr because vread() takes vmlist_lock rwlock */
40241 - int err = 0;
40242
40243 read = 0;
40244 if (p < (unsigned long) high_memory) {
40245 @@ -404,6 +435,8 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40246 }
40247 #endif
40248 while (low_count > 0) {
40249 + char *temp;
40250 +
40251 sz = size_inside_page(p, low_count);
40252
40253 /*
40254 @@ -413,7 +446,23 @@ static ssize_t read_kmem(struct file *file, char __user *buf,
40255 */
40256 kbuf = xlate_dev_kmem_ptr((void *)p);
40257
40258 - if (copy_to_user(buf, kbuf, sz))
40259 +#ifdef CONFIG_PAX_USERCOPY
40260 + temp = kmalloc(sz, GFP_KERNEL|GFP_USERCOPY);
40261 + if (!temp)
40262 + return -ENOMEM;
40263 + err = probe_kernel_read(temp, kbuf, sz);
40264 +#else
40265 + temp = kbuf;
40266 +#endif
40267 +
40268 + if (!err)
40269 + err = copy_to_user(buf, temp, sz);
40270 +
40271 +#ifdef CONFIG_PAX_USERCOPY
40272 + kfree(temp);
40273 +#endif
40274 +
40275 + if (err)
40276 return -EFAULT;
40277 buf += sz;
40278 p += sz;
40279 @@ -802,6 +851,9 @@ static const struct memdev {
40280 #ifdef CONFIG_PRINTK
40281 [11] = { "kmsg", 0644, &kmsg_fops, 0 },
40282 #endif
40283 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
40284 + [13] = { "grsec",S_IRUSR | S_IWUGO, &grsec_fops, 0 },
40285 +#endif
40286 };
40287
40288 static int memory_open(struct inode *inode, struct file *filp)
40289 @@ -863,7 +915,7 @@ static int __init chr_dev_init(void)
40290 continue;
40291
40292 device_create(mem_class, NULL, MKDEV(MEM_MAJOR, minor),
40293 - NULL, devlist[minor].name);
40294 + NULL, "%s", devlist[minor].name);
40295 }
40296
40297 return tty_init();
40298 diff --git a/drivers/char/nvram.c b/drivers/char/nvram.c
40299 index 9df78e2..01ba9ae 100644
40300 --- a/drivers/char/nvram.c
40301 +++ b/drivers/char/nvram.c
40302 @@ -247,7 +247,7 @@ static ssize_t nvram_read(struct file *file, char __user *buf,
40303
40304 spin_unlock_irq(&rtc_lock);
40305
40306 - if (copy_to_user(buf, contents, tmp - contents))
40307 + if (tmp - contents > sizeof(contents) || copy_to_user(buf, contents, tmp - contents))
40308 return -EFAULT;
40309
40310 *ppos = i;
40311 diff --git a/drivers/char/pcmcia/synclink_cs.c b/drivers/char/pcmcia/synclink_cs.c
40312 index 7680d52..073f799e 100644
40313 --- a/drivers/char/pcmcia/synclink_cs.c
40314 +++ b/drivers/char/pcmcia/synclink_cs.c
40315 @@ -2345,7 +2345,7 @@ static void mgslpc_close(struct tty_struct *tty, struct file * filp)
40316
40317 if (debug_level >= DEBUG_LEVEL_INFO)
40318 printk("%s(%d):mgslpc_close(%s) entry, count=%d\n",
40319 - __FILE__, __LINE__, info->device_name, port->count);
40320 + __FILE__, __LINE__, info->device_name, atomic_read(&port->count));
40321
40322 if (tty_port_close_start(port, tty, filp) == 0)
40323 goto cleanup;
40324 @@ -2363,7 +2363,7 @@ static void mgslpc_close(struct tty_struct *tty, struct file * filp)
40325 cleanup:
40326 if (debug_level >= DEBUG_LEVEL_INFO)
40327 printk("%s(%d):mgslpc_close(%s) exit, count=%d\n", __FILE__, __LINE__,
40328 - tty->driver->name, port->count);
40329 + tty->driver->name, atomic_read(&port->count));
40330 }
40331
40332 /* Wait until the transmitter is empty.
40333 @@ -2505,7 +2505,7 @@ static int mgslpc_open(struct tty_struct *tty, struct file * filp)
40334
40335 if (debug_level >= DEBUG_LEVEL_INFO)
40336 printk("%s(%d):mgslpc_open(%s), old ref count = %d\n",
40337 - __FILE__, __LINE__, tty->driver->name, port->count);
40338 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
40339
40340 /* If port is closing, signal caller to try again */
40341 if (port->flags & ASYNC_CLOSING){
40342 @@ -2525,11 +2525,11 @@ static int mgslpc_open(struct tty_struct *tty, struct file * filp)
40343 goto cleanup;
40344 }
40345 spin_lock(&port->lock);
40346 - port->count++;
40347 + atomic_inc(&port->count);
40348 spin_unlock(&port->lock);
40349 spin_unlock_irqrestore(&info->netlock, flags);
40350
40351 - if (port->count == 1) {
40352 + if (atomic_read(&port->count) == 1) {
40353 /* 1st open on this device, init hardware */
40354 retval = startup(info, tty);
40355 if (retval < 0)
40356 @@ -3918,7 +3918,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
40357 unsigned short new_crctype;
40358
40359 /* return error if TTY interface open */
40360 - if (info->port.count)
40361 + if (atomic_read(&info->port.count))
40362 return -EBUSY;
40363
40364 switch (encoding)
40365 @@ -4022,7 +4022,7 @@ static int hdlcdev_open(struct net_device *dev)
40366
40367 /* arbitrate between network and tty opens */
40368 spin_lock_irqsave(&info->netlock, flags);
40369 - if (info->port.count != 0 || info->netcount != 0) {
40370 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
40371 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
40372 spin_unlock_irqrestore(&info->netlock, flags);
40373 return -EBUSY;
40374 @@ -4112,7 +4112,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
40375 printk("%s:hdlcdev_ioctl(%s)\n", __FILE__, dev->name);
40376
40377 /* return error if TTY interface open */
40378 - if (info->port.count)
40379 + if (atomic_read(&info->port.count))
40380 return -EBUSY;
40381
40382 if (cmd != SIOCWANDEV)
40383 diff --git a/drivers/char/random.c b/drivers/char/random.c
40384 index d0da5d8..739fd3a 100644
40385 --- a/drivers/char/random.c
40386 +++ b/drivers/char/random.c
40387 @@ -289,9 +289,6 @@
40388 /*
40389 * To allow fractional bits to be tracked, the entropy_count field is
40390 * denominated in units of 1/8th bits.
40391 - *
40392 - * 2*(ENTROPY_SHIFT + log2(poolbits)) must <= 31, or the multiply in
40393 - * credit_entropy_bits() needs to be 64 bits wide.
40394 */
40395 #define ENTROPY_SHIFT 3
40396 #define ENTROPY_BITS(r) ((r)->entropy_count >> ENTROPY_SHIFT)
40397 @@ -442,9 +439,9 @@ struct entropy_store {
40398 };
40399
40400 static void push_to_pool(struct work_struct *work);
40401 -static __u32 input_pool_data[INPUT_POOL_WORDS];
40402 -static __u32 blocking_pool_data[OUTPUT_POOL_WORDS];
40403 -static __u32 nonblocking_pool_data[OUTPUT_POOL_WORDS];
40404 +static __u32 input_pool_data[INPUT_POOL_WORDS] __latent_entropy;
40405 +static __u32 blocking_pool_data[OUTPUT_POOL_WORDS] __latent_entropy;
40406 +static __u32 nonblocking_pool_data[OUTPUT_POOL_WORDS] __latent_entropy;
40407
40408 static struct entropy_store input_pool = {
40409 .poolinfo = &poolinfo_table[0],
40410 @@ -654,7 +651,7 @@ retry:
40411 /* The +2 corresponds to the /4 in the denominator */
40412
40413 do {
40414 - unsigned int anfrac = min(pnfrac, pool_size/2);
40415 + u64 anfrac = min(pnfrac, pool_size/2);
40416 unsigned int add =
40417 ((pool_size - entropy_count)*anfrac*3) >> s;
40418
40419 @@ -1227,7 +1224,7 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
40420
40421 extract_buf(r, tmp);
40422 i = min_t(int, nbytes, EXTRACT_SIZE);
40423 - if (copy_to_user(buf, tmp, i)) {
40424 + if (i > sizeof(tmp) || copy_to_user(buf, tmp, i)) {
40425 ret = -EFAULT;
40426 break;
40427 }
40428 @@ -1668,7 +1665,7 @@ static char sysctl_bootid[16];
40429 static int proc_do_uuid(struct ctl_table *table, int write,
40430 void __user *buffer, size_t *lenp, loff_t *ppos)
40431 {
40432 - struct ctl_table fake_table;
40433 + ctl_table_no_const fake_table;
40434 unsigned char buf[64], tmp_uuid[16], *uuid;
40435
40436 uuid = table->data;
40437 @@ -1698,7 +1695,7 @@ static int proc_do_uuid(struct ctl_table *table, int write,
40438 static int proc_do_entropy(struct ctl_table *table, int write,
40439 void __user *buffer, size_t *lenp, loff_t *ppos)
40440 {
40441 - struct ctl_table fake_table;
40442 + ctl_table_no_const fake_table;
40443 int entropy_count;
40444
40445 entropy_count = *(int *)table->data >> ENTROPY_SHIFT;
40446 diff --git a/drivers/char/sonypi.c b/drivers/char/sonypi.c
40447 index e496dae..3db53b6 100644
40448 --- a/drivers/char/sonypi.c
40449 +++ b/drivers/char/sonypi.c
40450 @@ -54,6 +54,7 @@
40451
40452 #include <asm/uaccess.h>
40453 #include <asm/io.h>
40454 +#include <asm/local.h>
40455
40456 #include <linux/sonypi.h>
40457
40458 @@ -490,7 +491,7 @@ static struct sonypi_device {
40459 spinlock_t fifo_lock;
40460 wait_queue_head_t fifo_proc_list;
40461 struct fasync_struct *fifo_async;
40462 - int open_count;
40463 + local_t open_count;
40464 int model;
40465 struct input_dev *input_jog_dev;
40466 struct input_dev *input_key_dev;
40467 @@ -892,7 +893,7 @@ static int sonypi_misc_fasync(int fd, struct file *filp, int on)
40468 static int sonypi_misc_release(struct inode *inode, struct file *file)
40469 {
40470 mutex_lock(&sonypi_device.lock);
40471 - sonypi_device.open_count--;
40472 + local_dec(&sonypi_device.open_count);
40473 mutex_unlock(&sonypi_device.lock);
40474 return 0;
40475 }
40476 @@ -901,9 +902,9 @@ static int sonypi_misc_open(struct inode *inode, struct file *file)
40477 {
40478 mutex_lock(&sonypi_device.lock);
40479 /* Flush input queue on first open */
40480 - if (!sonypi_device.open_count)
40481 + if (!local_read(&sonypi_device.open_count))
40482 kfifo_reset(&sonypi_device.fifo);
40483 - sonypi_device.open_count++;
40484 + local_inc(&sonypi_device.open_count);
40485 mutex_unlock(&sonypi_device.lock);
40486
40487 return 0;
40488 @@ -1491,7 +1492,7 @@ static struct platform_driver sonypi_driver = {
40489
40490 static struct platform_device *sonypi_platform_device;
40491
40492 -static struct dmi_system_id __initdata sonypi_dmi_table[] = {
40493 +static const struct dmi_system_id __initconst sonypi_dmi_table[] = {
40494 {
40495 .ident = "Sony Vaio",
40496 .matches = {
40497 diff --git a/drivers/char/tpm/tpm_acpi.c b/drivers/char/tpm/tpm_acpi.c
40498 index 565a947..dcdc06e 100644
40499 --- a/drivers/char/tpm/tpm_acpi.c
40500 +++ b/drivers/char/tpm/tpm_acpi.c
40501 @@ -98,11 +98,12 @@ int read_log(struct tpm_bios_log *log)
40502 virt = acpi_os_map_iomem(start, len);
40503 if (!virt) {
40504 kfree(log->bios_event_log);
40505 + log->bios_event_log = NULL;
40506 printk("%s: ERROR - Unable to map memory\n", __func__);
40507 return -EIO;
40508 }
40509
40510 - memcpy_fromio(log->bios_event_log, virt, len);
40511 + memcpy_fromio(log->bios_event_log, (const char __force_kernel *)virt, len);
40512
40513 acpi_os_unmap_iomem(virt, len);
40514 return 0;
40515 diff --git a/drivers/char/tpm/tpm_eventlog.c b/drivers/char/tpm/tpm_eventlog.c
40516 index 3a56a13..f8cbd25 100644
40517 --- a/drivers/char/tpm/tpm_eventlog.c
40518 +++ b/drivers/char/tpm/tpm_eventlog.c
40519 @@ -95,7 +95,7 @@ static void *tpm_bios_measurements_start(struct seq_file *m, loff_t *pos)
40520 event = addr;
40521
40522 if ((event->event_type == 0 && event->event_size == 0) ||
40523 - ((addr + sizeof(struct tcpa_event) + event->event_size) >= limit))
40524 + (event->event_size >= limit - addr - sizeof(struct tcpa_event)))
40525 return NULL;
40526
40527 return addr;
40528 @@ -120,7 +120,7 @@ static void *tpm_bios_measurements_next(struct seq_file *m, void *v,
40529 return NULL;
40530
40531 if ((event->event_type == 0 && event->event_size == 0) ||
40532 - ((v + sizeof(struct tcpa_event) + event->event_size) >= limit))
40533 + (event->event_size >= limit - v - sizeof(struct tcpa_event)))
40534 return NULL;
40535
40536 (*pos)++;
40537 @@ -213,7 +213,8 @@ static int tpm_binary_bios_measurements_show(struct seq_file *m, void *v)
40538 int i;
40539
40540 for (i = 0; i < sizeof(struct tcpa_event) + event->event_size; i++)
40541 - seq_putc(m, data[i]);
40542 + if (!seq_putc(m, data[i]))
40543 + return -EFAULT;
40544
40545 return 0;
40546 }
40547 diff --git a/drivers/char/virtio_console.c b/drivers/char/virtio_console.c
40548 index d2406fe..243951a 100644
40549 --- a/drivers/char/virtio_console.c
40550 +++ b/drivers/char/virtio_console.c
40551 @@ -685,7 +685,7 @@ static ssize_t fill_readbuf(struct port *port, char __user *out_buf,
40552 if (to_user) {
40553 ssize_t ret;
40554
40555 - ret = copy_to_user(out_buf, buf->buf + buf->offset, out_count);
40556 + ret = copy_to_user((char __force_user *)out_buf, buf->buf + buf->offset, out_count);
40557 if (ret)
40558 return -EFAULT;
40559 } else {
40560 @@ -789,7 +789,7 @@ static ssize_t port_fops_read(struct file *filp, char __user *ubuf,
40561 if (!port_has_data(port) && !port->host_connected)
40562 return 0;
40563
40564 - return fill_readbuf(port, ubuf, count, true);
40565 + return fill_readbuf(port, (char __force_kernel *)ubuf, count, true);
40566 }
40567
40568 static int wait_port_writable(struct port *port, bool nonblock)
40569 diff --git a/drivers/clk/clk-composite.c b/drivers/clk/clk-composite.c
40570 index 616f5ae..747bdd0 100644
40571 --- a/drivers/clk/clk-composite.c
40572 +++ b/drivers/clk/clk-composite.c
40573 @@ -197,7 +197,7 @@ struct clk *clk_register_composite(struct device *dev, const char *name,
40574 struct clk *clk;
40575 struct clk_init_data init;
40576 struct clk_composite *composite;
40577 - struct clk_ops *clk_composite_ops;
40578 + clk_ops_no_const *clk_composite_ops;
40579
40580 composite = kzalloc(sizeof(*composite), GFP_KERNEL);
40581 if (!composite)
40582 diff --git a/drivers/clk/samsung/clk.h b/drivers/clk/samsung/clk.h
40583 index b775fc2..2d45b64 100644
40584 --- a/drivers/clk/samsung/clk.h
40585 +++ b/drivers/clk/samsung/clk.h
40586 @@ -260,7 +260,7 @@ struct samsung_gate_clock {
40587 #define GATE_DA(_id, dname, cname, pname, o, b, f, gf, a) \
40588 __GATE(_id, dname, cname, pname, o, b, f, gf, a)
40589
40590 -#define PNAME(x) static const char *x[] __initdata
40591 +#define PNAME(x) static const char * const x[] __initconst
40592
40593 /**
40594 * struct samsung_clk_reg_dump: register dump of clock controller registers.
40595 diff --git a/drivers/clk/socfpga/clk-gate.c b/drivers/clk/socfpga/clk-gate.c
40596 index 82449cd..dcfec30 100644
40597 --- a/drivers/clk/socfpga/clk-gate.c
40598 +++ b/drivers/clk/socfpga/clk-gate.c
40599 @@ -22,6 +22,7 @@
40600 #include <linux/mfd/syscon.h>
40601 #include <linux/of.h>
40602 #include <linux/regmap.h>
40603 +#include <asm/pgtable.h>
40604
40605 #include "clk.h"
40606
40607 @@ -170,7 +171,7 @@ static int socfpga_clk_prepare(struct clk_hw *hwclk)
40608 return 0;
40609 }
40610
40611 -static struct clk_ops gateclk_ops = {
40612 +static clk_ops_no_const gateclk_ops __read_only = {
40613 .prepare = socfpga_clk_prepare,
40614 .recalc_rate = socfpga_clk_recalc_rate,
40615 .get_parent = socfpga_clk_get_parent,
40616 @@ -203,8 +204,10 @@ static void __init __socfpga_gate_init(struct device_node *node,
40617 socfpga_clk->hw.reg = clk_mgr_base_addr + clk_gate[0];
40618 socfpga_clk->hw.bit_idx = clk_gate[1];
40619
40620 - gateclk_ops.enable = clk_gate_ops.enable;
40621 - gateclk_ops.disable = clk_gate_ops.disable;
40622 + pax_open_kernel();
40623 + *(void **)&gateclk_ops.enable = clk_gate_ops.enable;
40624 + *(void **)&gateclk_ops.disable = clk_gate_ops.disable;
40625 + pax_close_kernel();
40626 }
40627
40628 rc = of_property_read_u32(node, "fixed-divider", &fixed_div);
40629 diff --git a/drivers/clk/socfpga/clk-pll.c b/drivers/clk/socfpga/clk-pll.c
40630 index 8f26b52..29f2a3a 100644
40631 --- a/drivers/clk/socfpga/clk-pll.c
40632 +++ b/drivers/clk/socfpga/clk-pll.c
40633 @@ -21,6 +21,7 @@
40634 #include <linux/io.h>
40635 #include <linux/of.h>
40636 #include <linux/of_address.h>
40637 +#include <asm/pgtable.h>
40638
40639 #include "clk.h"
40640
40641 @@ -76,7 +77,7 @@ static u8 clk_pll_get_parent(struct clk_hw *hwclk)
40642 CLK_MGR_PLL_CLK_SRC_MASK;
40643 }
40644
40645 -static struct clk_ops clk_pll_ops = {
40646 +static clk_ops_no_const clk_pll_ops __read_only = {
40647 .recalc_rate = clk_pll_recalc_rate,
40648 .get_parent = clk_pll_get_parent,
40649 };
40650 @@ -115,8 +116,10 @@ static __init struct clk *__socfpga_pll_init(struct device_node *node,
40651 pll_clk->hw.hw.init = &init;
40652
40653 pll_clk->hw.bit_idx = SOCFPGA_PLL_EXT_ENA;
40654 - clk_pll_ops.enable = clk_gate_ops.enable;
40655 - clk_pll_ops.disable = clk_gate_ops.disable;
40656 + pax_open_kernel();
40657 + *(void **)&clk_pll_ops.enable = clk_gate_ops.enable;
40658 + *(void **)&clk_pll_ops.disable = clk_gate_ops.disable;
40659 + pax_close_kernel();
40660
40661 clk = clk_register(NULL, &pll_clk->hw.hw);
40662 if (WARN_ON(IS_ERR(clk))) {
40663 diff --git a/drivers/cpufreq/acpi-cpufreq.c b/drivers/cpufreq/acpi-cpufreq.c
40664 index 7c2a738..0b84bd6 100644
40665 --- a/drivers/cpufreq/acpi-cpufreq.c
40666 +++ b/drivers/cpufreq/acpi-cpufreq.c
40667 @@ -678,8 +678,11 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
40668 data->acpi_data = per_cpu_ptr(acpi_perf_data, cpu);
40669 per_cpu(acfreq_data, cpu) = data;
40670
40671 - if (cpu_has(c, X86_FEATURE_CONSTANT_TSC))
40672 - acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS;
40673 + if (cpu_has(c, X86_FEATURE_CONSTANT_TSC)) {
40674 + pax_open_kernel();
40675 + *(u8 *)&acpi_cpufreq_driver.flags |= CPUFREQ_CONST_LOOPS;
40676 + pax_close_kernel();
40677 + }
40678
40679 result = acpi_processor_register_performance(data->acpi_data, cpu);
40680 if (result)
40681 @@ -813,7 +816,9 @@ static int acpi_cpufreq_cpu_init(struct cpufreq_policy *policy)
40682 policy->cur = acpi_cpufreq_guess_freq(data, policy->cpu);
40683 break;
40684 case ACPI_ADR_SPACE_FIXED_HARDWARE:
40685 - acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
40686 + pax_open_kernel();
40687 + *(void **)&acpi_cpufreq_driver.get = get_cur_freq_on_cpu;
40688 + pax_close_kernel();
40689 break;
40690 default:
40691 break;
40692 @@ -907,8 +912,10 @@ static void __init acpi_cpufreq_boost_init(void)
40693 if (!msrs)
40694 return;
40695
40696 - acpi_cpufreq_driver.boost_supported = true;
40697 - acpi_cpufreq_driver.boost_enabled = boost_state(0);
40698 + pax_open_kernel();
40699 + *(bool *)&acpi_cpufreq_driver.boost_supported = true;
40700 + *(bool *)&acpi_cpufreq_driver.boost_enabled = boost_state(0);
40701 + pax_close_kernel();
40702
40703 cpu_notifier_register_begin();
40704
40705 diff --git a/drivers/cpufreq/cpufreq-dt.c b/drivers/cpufreq/cpufreq-dt.c
40706 index 99a4065..f97236c 100644
40707 --- a/drivers/cpufreq/cpufreq-dt.c
40708 +++ b/drivers/cpufreq/cpufreq-dt.c
40709 @@ -393,7 +393,9 @@ static int dt_cpufreq_probe(struct platform_device *pdev)
40710 if (!IS_ERR(cpu_reg))
40711 regulator_put(cpu_reg);
40712
40713 - dt_cpufreq_driver.driver_data = dev_get_platdata(&pdev->dev);
40714 + pax_open_kernel();
40715 + *(void **)&dt_cpufreq_driver.driver_data = dev_get_platdata(&pdev->dev);
40716 + pax_close_kernel();
40717
40718 ret = cpufreq_register_driver(&dt_cpufreq_driver);
40719 if (ret)
40720 diff --git a/drivers/cpufreq/cpufreq.c b/drivers/cpufreq/cpufreq.c
40721 index 7a3c30c..bac142e 100644
40722 --- a/drivers/cpufreq/cpufreq.c
40723 +++ b/drivers/cpufreq/cpufreq.c
40724 @@ -2197,7 +2197,7 @@ void cpufreq_unregister_governor(struct cpufreq_governor *governor)
40725 read_unlock_irqrestore(&cpufreq_driver_lock, flags);
40726
40727 mutex_lock(&cpufreq_governor_mutex);
40728 - list_del(&governor->governor_list);
40729 + pax_list_del(&governor->governor_list);
40730 mutex_unlock(&cpufreq_governor_mutex);
40731 return;
40732 }
40733 @@ -2412,7 +2412,7 @@ static int cpufreq_cpu_callback(struct notifier_block *nfb,
40734 return NOTIFY_OK;
40735 }
40736
40737 -static struct notifier_block __refdata cpufreq_cpu_notifier = {
40738 +static struct notifier_block cpufreq_cpu_notifier = {
40739 .notifier_call = cpufreq_cpu_callback,
40740 };
40741
40742 @@ -2452,13 +2452,17 @@ int cpufreq_boost_trigger_state(int state)
40743 return 0;
40744
40745 write_lock_irqsave(&cpufreq_driver_lock, flags);
40746 - cpufreq_driver->boost_enabled = state;
40747 + pax_open_kernel();
40748 + *(bool *)&cpufreq_driver->boost_enabled = state;
40749 + pax_close_kernel();
40750 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
40751
40752 ret = cpufreq_driver->set_boost(state);
40753 if (ret) {
40754 write_lock_irqsave(&cpufreq_driver_lock, flags);
40755 - cpufreq_driver->boost_enabled = !state;
40756 + pax_open_kernel();
40757 + *(bool *)&cpufreq_driver->boost_enabled = !state;
40758 + pax_close_kernel();
40759 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
40760
40761 pr_err("%s: Cannot %s BOOST\n",
40762 @@ -2523,16 +2527,22 @@ int cpufreq_register_driver(struct cpufreq_driver *driver_data)
40763 cpufreq_driver = driver_data;
40764 write_unlock_irqrestore(&cpufreq_driver_lock, flags);
40765
40766 - if (driver_data->setpolicy)
40767 - driver_data->flags |= CPUFREQ_CONST_LOOPS;
40768 + if (driver_data->setpolicy) {
40769 + pax_open_kernel();
40770 + *(u8 *)&driver_data->flags |= CPUFREQ_CONST_LOOPS;
40771 + pax_close_kernel();
40772 + }
40773
40774 if (cpufreq_boost_supported()) {
40775 /*
40776 * Check if driver provides function to enable boost -
40777 * if not, use cpufreq_boost_set_sw as default
40778 */
40779 - if (!cpufreq_driver->set_boost)
40780 - cpufreq_driver->set_boost = cpufreq_boost_set_sw;
40781 + if (!cpufreq_driver->set_boost) {
40782 + pax_open_kernel();
40783 + *(void **)&cpufreq_driver->set_boost = cpufreq_boost_set_sw;
40784 + pax_close_kernel();
40785 + }
40786
40787 ret = cpufreq_sysfs_create_file(&boost.attr);
40788 if (ret) {
40789 diff --git a/drivers/cpufreq/cpufreq_governor.c b/drivers/cpufreq/cpufreq_governor.c
40790 index 57a39f8..feb9c73 100644
40791 --- a/drivers/cpufreq/cpufreq_governor.c
40792 +++ b/drivers/cpufreq/cpufreq_governor.c
40793 @@ -378,7 +378,7 @@ static int cpufreq_governor_start(struct cpufreq_policy *policy,
40794 cs_dbs_info->enable = 1;
40795 cs_dbs_info->requested_freq = policy->cur;
40796 } else {
40797 - struct od_ops *od_ops = cdata->gov_ops;
40798 + const struct od_ops *od_ops = cdata->gov_ops;
40799 struct od_cpu_dbs_info_s *od_dbs_info = cdata->get_cpu_dbs_info_s(cpu);
40800
40801 od_dbs_info->rate_mult = 1;
40802 diff --git a/drivers/cpufreq/cpufreq_governor.h b/drivers/cpufreq/cpufreq_governor.h
40803 index 34736f5..da8cf4a 100644
40804 --- a/drivers/cpufreq/cpufreq_governor.h
40805 +++ b/drivers/cpufreq/cpufreq_governor.h
40806 @@ -212,7 +212,7 @@ struct common_dbs_data {
40807 void (*exit)(struct dbs_data *dbs_data, bool notify);
40808
40809 /* Governor specific ops, see below */
40810 - void *gov_ops;
40811 + const void *gov_ops;
40812
40813 /*
40814 * Protects governor's data (struct dbs_data and struct common_dbs_data)
40815 @@ -234,7 +234,7 @@ struct od_ops {
40816 unsigned int (*powersave_bias_target)(struct cpufreq_policy *policy,
40817 unsigned int freq_next, unsigned int relation);
40818 void (*freq_increase)(struct cpufreq_policy *policy, unsigned int freq);
40819 -};
40820 +} __no_const;
40821
40822 static inline int delay_for_sampling_rate(unsigned int sampling_rate)
40823 {
40824 diff --git a/drivers/cpufreq/cpufreq_ondemand.c b/drivers/cpufreq/cpufreq_ondemand.c
40825 index 3c1e10f..02f17af 100644
40826 --- a/drivers/cpufreq/cpufreq_ondemand.c
40827 +++ b/drivers/cpufreq/cpufreq_ondemand.c
40828 @@ -523,7 +523,7 @@ static void od_exit(struct dbs_data *dbs_data, bool notify)
40829
40830 define_get_cpu_dbs_routines(od_cpu_dbs_info);
40831
40832 -static struct od_ops od_ops = {
40833 +static struct od_ops od_ops __read_only = {
40834 .powersave_bias_init_cpu = ondemand_powersave_bias_init_cpu,
40835 .powersave_bias_target = generic_powersave_bias_target,
40836 .freq_increase = dbs_freq_increase,
40837 @@ -579,14 +579,18 @@ void od_register_powersave_bias_handler(unsigned int (*f)
40838 (struct cpufreq_policy *, unsigned int, unsigned int),
40839 unsigned int powersave_bias)
40840 {
40841 - od_ops.powersave_bias_target = f;
40842 + pax_open_kernel();
40843 + *(void **)&od_ops.powersave_bias_target = f;
40844 + pax_close_kernel();
40845 od_set_powersave_bias(powersave_bias);
40846 }
40847 EXPORT_SYMBOL_GPL(od_register_powersave_bias_handler);
40848
40849 void od_unregister_powersave_bias_handler(void)
40850 {
40851 - od_ops.powersave_bias_target = generic_powersave_bias_target;
40852 + pax_open_kernel();
40853 + *(void **)&od_ops.powersave_bias_target = generic_powersave_bias_target;
40854 + pax_close_kernel();
40855 od_set_powersave_bias(0);
40856 }
40857 EXPORT_SYMBOL_GPL(od_unregister_powersave_bias_handler);
40858 diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
40859 index aba2117..4b187c8 100644
40860 --- a/drivers/cpufreq/intel_pstate.c
40861 +++ b/drivers/cpufreq/intel_pstate.c
40862 @@ -137,10 +137,10 @@ struct pstate_funcs {
40863 struct cpu_defaults {
40864 struct pstate_adjust_policy pid_policy;
40865 struct pstate_funcs funcs;
40866 -};
40867 +} __do_const;
40868
40869 static struct pstate_adjust_policy pid_params;
40870 -static struct pstate_funcs pstate_funcs;
40871 +static struct pstate_funcs *pstate_funcs;
40872 static int hwp_active;
40873
40874 struct perf_limits {
40875 @@ -726,18 +726,18 @@ static void intel_pstate_set_pstate(struct cpudata *cpu, int pstate, bool force)
40876
40877 cpu->pstate.current_pstate = pstate;
40878
40879 - pstate_funcs.set(cpu, pstate);
40880 + pstate_funcs->set(cpu, pstate);
40881 }
40882
40883 static void intel_pstate_get_cpu_pstates(struct cpudata *cpu)
40884 {
40885 - cpu->pstate.min_pstate = pstate_funcs.get_min();
40886 - cpu->pstate.max_pstate = pstate_funcs.get_max();
40887 - cpu->pstate.turbo_pstate = pstate_funcs.get_turbo();
40888 - cpu->pstate.scaling = pstate_funcs.get_scaling();
40889 + cpu->pstate.min_pstate = pstate_funcs->get_min();
40890 + cpu->pstate.max_pstate = pstate_funcs->get_max();
40891 + cpu->pstate.turbo_pstate = pstate_funcs->get_turbo();
40892 + cpu->pstate.scaling = pstate_funcs->get_scaling();
40893
40894 - if (pstate_funcs.get_vid)
40895 - pstate_funcs.get_vid(cpu);
40896 + if (pstate_funcs->get_vid)
40897 + pstate_funcs->get_vid(cpu);
40898 intel_pstate_set_pstate(cpu, cpu->pstate.min_pstate, false);
40899 }
40900
40901 @@ -1075,15 +1075,15 @@ static unsigned int force_load;
40902
40903 static int intel_pstate_msrs_not_valid(void)
40904 {
40905 - if (!pstate_funcs.get_max() ||
40906 - !pstate_funcs.get_min() ||
40907 - !pstate_funcs.get_turbo())
40908 + if (!pstate_funcs->get_max() ||
40909 + !pstate_funcs->get_min() ||
40910 + !pstate_funcs->get_turbo())
40911 return -ENODEV;
40912
40913 return 0;
40914 }
40915
40916 -static void copy_pid_params(struct pstate_adjust_policy *policy)
40917 +static void copy_pid_params(const struct pstate_adjust_policy *policy)
40918 {
40919 pid_params.sample_rate_ms = policy->sample_rate_ms;
40920 pid_params.p_gain_pct = policy->p_gain_pct;
40921 @@ -1095,12 +1095,7 @@ static void copy_pid_params(struct pstate_adjust_policy *policy)
40922
40923 static void copy_cpu_funcs(struct pstate_funcs *funcs)
40924 {
40925 - pstate_funcs.get_max = funcs->get_max;
40926 - pstate_funcs.get_min = funcs->get_min;
40927 - pstate_funcs.get_turbo = funcs->get_turbo;
40928 - pstate_funcs.get_scaling = funcs->get_scaling;
40929 - pstate_funcs.set = funcs->set;
40930 - pstate_funcs.get_vid = funcs->get_vid;
40931 + pstate_funcs = funcs;
40932 }
40933
40934 #if IS_ENABLED(CONFIG_ACPI)
40935 diff --git a/drivers/cpufreq/p4-clockmod.c b/drivers/cpufreq/p4-clockmod.c
40936 index 5dd95da..abc3837 100644
40937 --- a/drivers/cpufreq/p4-clockmod.c
40938 +++ b/drivers/cpufreq/p4-clockmod.c
40939 @@ -134,10 +134,14 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
40940 case 0x0F: /* Core Duo */
40941 case 0x16: /* Celeron Core */
40942 case 0x1C: /* Atom */
40943 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40944 + pax_open_kernel();
40945 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40946 + pax_close_kernel();
40947 return speedstep_get_frequency(SPEEDSTEP_CPU_PCORE);
40948 case 0x0D: /* Pentium M (Dothan) */
40949 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40950 + pax_open_kernel();
40951 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40952 + pax_close_kernel();
40953 /* fall through */
40954 case 0x09: /* Pentium M (Banias) */
40955 return speedstep_get_frequency(SPEEDSTEP_CPU_PM);
40956 @@ -149,7 +153,9 @@ static unsigned int cpufreq_p4_get_frequency(struct cpuinfo_x86 *c)
40957
40958 /* on P-4s, the TSC runs with constant frequency independent whether
40959 * throttling is active or not. */
40960 - p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40961 + pax_open_kernel();
40962 + *(u8 *)&p4clockmod_driver.flags |= CPUFREQ_CONST_LOOPS;
40963 + pax_close_kernel();
40964
40965 if (speedstep_detect_processor() == SPEEDSTEP_CPU_P4M) {
40966 printk(KERN_WARNING PFX "Warning: Pentium 4-M detected. "
40967 diff --git a/drivers/cpufreq/sparc-us3-cpufreq.c b/drivers/cpufreq/sparc-us3-cpufreq.c
40968 index 9bb42ba..b01b4a2 100644
40969 --- a/drivers/cpufreq/sparc-us3-cpufreq.c
40970 +++ b/drivers/cpufreq/sparc-us3-cpufreq.c
40971 @@ -18,14 +18,12 @@
40972 #include <asm/head.h>
40973 #include <asm/timer.h>
40974
40975 -static struct cpufreq_driver *cpufreq_us3_driver;
40976 -
40977 struct us3_freq_percpu_info {
40978 struct cpufreq_frequency_table table[4];
40979 };
40980
40981 /* Indexed by cpu number. */
40982 -static struct us3_freq_percpu_info *us3_freq_table;
40983 +static struct us3_freq_percpu_info us3_freq_table[NR_CPUS];
40984
40985 /* UltraSPARC-III has three dividers: 1, 2, and 32. These are controlled
40986 * in the Safari config register.
40987 @@ -156,16 +154,27 @@ static int __init us3_freq_cpu_init(struct cpufreq_policy *policy)
40988
40989 static int us3_freq_cpu_exit(struct cpufreq_policy *policy)
40990 {
40991 - if (cpufreq_us3_driver)
40992 - us3_freq_target(policy, 0);
40993 + us3_freq_target(policy, 0);
40994
40995 return 0;
40996 }
40997
40998 +static int __init us3_freq_init(void);
40999 +static void __exit us3_freq_exit(void);
41000 +
41001 +static struct cpufreq_driver cpufreq_us3_driver = {
41002 + .init = us3_freq_cpu_init,
41003 + .verify = cpufreq_generic_frequency_table_verify,
41004 + .target_index = us3_freq_target,
41005 + .get = us3_freq_get,
41006 + .exit = us3_freq_cpu_exit,
41007 + .name = "UltraSPARC-III",
41008 +
41009 +};
41010 +
41011 static int __init us3_freq_init(void)
41012 {
41013 unsigned long manuf, impl, ver;
41014 - int ret;
41015
41016 if (tlb_type != cheetah && tlb_type != cheetah_plus)
41017 return -ENODEV;
41018 @@ -178,55 +187,15 @@ static int __init us3_freq_init(void)
41019 (impl == CHEETAH_IMPL ||
41020 impl == CHEETAH_PLUS_IMPL ||
41021 impl == JAGUAR_IMPL ||
41022 - impl == PANTHER_IMPL)) {
41023 - struct cpufreq_driver *driver;
41024 -
41025 - ret = -ENOMEM;
41026 - driver = kzalloc(sizeof(*driver), GFP_KERNEL);
41027 - if (!driver)
41028 - goto err_out;
41029 -
41030 - us3_freq_table = kzalloc((NR_CPUS * sizeof(*us3_freq_table)),
41031 - GFP_KERNEL);
41032 - if (!us3_freq_table)
41033 - goto err_out;
41034 -
41035 - driver->init = us3_freq_cpu_init;
41036 - driver->verify = cpufreq_generic_frequency_table_verify;
41037 - driver->target_index = us3_freq_target;
41038 - driver->get = us3_freq_get;
41039 - driver->exit = us3_freq_cpu_exit;
41040 - strcpy(driver->name, "UltraSPARC-III");
41041 -
41042 - cpufreq_us3_driver = driver;
41043 - ret = cpufreq_register_driver(driver);
41044 - if (ret)
41045 - goto err_out;
41046 -
41047 - return 0;
41048 -
41049 -err_out:
41050 - if (driver) {
41051 - kfree(driver);
41052 - cpufreq_us3_driver = NULL;
41053 - }
41054 - kfree(us3_freq_table);
41055 - us3_freq_table = NULL;
41056 - return ret;
41057 - }
41058 + impl == PANTHER_IMPL))
41059 + return cpufreq_register_driver(&cpufreq_us3_driver);
41060
41061 return -ENODEV;
41062 }
41063
41064 static void __exit us3_freq_exit(void)
41065 {
41066 - if (cpufreq_us3_driver) {
41067 - cpufreq_unregister_driver(cpufreq_us3_driver);
41068 - kfree(cpufreq_us3_driver);
41069 - cpufreq_us3_driver = NULL;
41070 - kfree(us3_freq_table);
41071 - us3_freq_table = NULL;
41072 - }
41073 + cpufreq_unregister_driver(&cpufreq_us3_driver);
41074 }
41075
41076 MODULE_AUTHOR("David S. Miller <davem@redhat.com>");
41077 diff --git a/drivers/cpufreq/speedstep-centrino.c b/drivers/cpufreq/speedstep-centrino.c
41078 index 7d4a315..21bb886 100644
41079 --- a/drivers/cpufreq/speedstep-centrino.c
41080 +++ b/drivers/cpufreq/speedstep-centrino.c
41081 @@ -351,8 +351,11 @@ static int centrino_cpu_init(struct cpufreq_policy *policy)
41082 !cpu_has(cpu, X86_FEATURE_EST))
41083 return -ENODEV;
41084
41085 - if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC))
41086 - centrino_driver.flags |= CPUFREQ_CONST_LOOPS;
41087 + if (cpu_has(cpu, X86_FEATURE_CONSTANT_TSC)) {
41088 + pax_open_kernel();
41089 + *(u8 *)&centrino_driver.flags |= CPUFREQ_CONST_LOOPS;
41090 + pax_close_kernel();
41091 + }
41092
41093 if (policy->cpu != 0)
41094 return -ENODEV;
41095 diff --git a/drivers/cpuidle/driver.c b/drivers/cpuidle/driver.c
41096 index 5db1478..e90e25e 100644
41097 --- a/drivers/cpuidle/driver.c
41098 +++ b/drivers/cpuidle/driver.c
41099 @@ -193,7 +193,7 @@ static int poll_idle(struct cpuidle_device *dev,
41100
41101 static void poll_idle_init(struct cpuidle_driver *drv)
41102 {
41103 - struct cpuidle_state *state = &drv->states[0];
41104 + cpuidle_state_no_const *state = &drv->states[0];
41105
41106 snprintf(state->name, CPUIDLE_NAME_LEN, "POLL");
41107 snprintf(state->desc, CPUIDLE_DESC_LEN, "CPUIDLE CORE POLL IDLE");
41108 diff --git a/drivers/cpuidle/dt_idle_states.c b/drivers/cpuidle/dt_idle_states.c
41109 index a5c111b..1113002 100644
41110 --- a/drivers/cpuidle/dt_idle_states.c
41111 +++ b/drivers/cpuidle/dt_idle_states.c
41112 @@ -21,7 +21,7 @@
41113
41114 #include "dt_idle_states.h"
41115
41116 -static int init_state_node(struct cpuidle_state *idle_state,
41117 +static int init_state_node(cpuidle_state_no_const *idle_state,
41118 const struct of_device_id *matches,
41119 struct device_node *state_node)
41120 {
41121 diff --git a/drivers/cpuidle/governor.c b/drivers/cpuidle/governor.c
41122 index fb9f511..213e6cc 100644
41123 --- a/drivers/cpuidle/governor.c
41124 +++ b/drivers/cpuidle/governor.c
41125 @@ -87,7 +87,7 @@ int cpuidle_register_governor(struct cpuidle_governor *gov)
41126 mutex_lock(&cpuidle_lock);
41127 if (__cpuidle_find_governor(gov->name) == NULL) {
41128 ret = 0;
41129 - list_add_tail(&gov->governor_list, &cpuidle_governors);
41130 + pax_list_add_tail((struct list_head *)&gov->governor_list, &cpuidle_governors);
41131 if (!cpuidle_curr_governor ||
41132 cpuidle_curr_governor->rating < gov->rating)
41133 cpuidle_switch_governor(gov);
41134 diff --git a/drivers/cpuidle/sysfs.c b/drivers/cpuidle/sysfs.c
41135 index 832a2c3..1794080 100644
41136 --- a/drivers/cpuidle/sysfs.c
41137 +++ b/drivers/cpuidle/sysfs.c
41138 @@ -135,7 +135,7 @@ static struct attribute *cpuidle_switch_attrs[] = {
41139 NULL
41140 };
41141
41142 -static struct attribute_group cpuidle_attr_group = {
41143 +static attribute_group_no_const cpuidle_attr_group = {
41144 .attrs = cpuidle_default_attrs,
41145 .name = "cpuidle",
41146 };
41147 diff --git a/drivers/crypto/hifn_795x.c b/drivers/crypto/hifn_795x.c
41148 index 8d2a772..33826c9 100644
41149 --- a/drivers/crypto/hifn_795x.c
41150 +++ b/drivers/crypto/hifn_795x.c
41151 @@ -51,7 +51,7 @@ module_param_string(hifn_pll_ref, hifn_pll_ref, sizeof(hifn_pll_ref), 0444);
41152 MODULE_PARM_DESC(hifn_pll_ref,
41153 "PLL reference clock (pci[freq] or ext[freq], default ext)");
41154
41155 -static atomic_t hifn_dev_number;
41156 +static atomic_unchecked_t hifn_dev_number;
41157
41158 #define ACRYPTO_OP_DECRYPT 0
41159 #define ACRYPTO_OP_ENCRYPT 1
41160 @@ -2577,7 +2577,7 @@ static int hifn_probe(struct pci_dev *pdev, const struct pci_device_id *id)
41161 goto err_out_disable_pci_device;
41162
41163 snprintf(name, sizeof(name), "hifn%d",
41164 - atomic_inc_return(&hifn_dev_number)-1);
41165 + atomic_inc_return_unchecked(&hifn_dev_number)-1);
41166
41167 err = pci_request_regions(pdev, name);
41168 if (err)
41169 diff --git a/drivers/devfreq/devfreq.c b/drivers/devfreq/devfreq.c
41170 index ca1b362..01cae6a 100644
41171 --- a/drivers/devfreq/devfreq.c
41172 +++ b/drivers/devfreq/devfreq.c
41173 @@ -672,7 +672,7 @@ int devfreq_add_governor(struct devfreq_governor *governor)
41174 goto err_out;
41175 }
41176
41177 - list_add(&governor->node, &devfreq_governor_list);
41178 + pax_list_add((struct list_head *)&governor->node, &devfreq_governor_list);
41179
41180 list_for_each_entry(devfreq, &devfreq_list, node) {
41181 int ret = 0;
41182 @@ -760,7 +760,7 @@ int devfreq_remove_governor(struct devfreq_governor *governor)
41183 }
41184 }
41185
41186 - list_del(&governor->node);
41187 + pax_list_del((struct list_head *)&governor->node);
41188 err_out:
41189 mutex_unlock(&devfreq_list_lock);
41190
41191 diff --git a/drivers/dma/sh/shdma-base.c b/drivers/dma/sh/shdma-base.c
41192 index 10fcaba..326f709 100644
41193 --- a/drivers/dma/sh/shdma-base.c
41194 +++ b/drivers/dma/sh/shdma-base.c
41195 @@ -227,8 +227,8 @@ static int shdma_alloc_chan_resources(struct dma_chan *chan)
41196 schan->slave_id = -EINVAL;
41197 }
41198
41199 - schan->desc = kcalloc(NR_DESCS_PER_CHANNEL,
41200 - sdev->desc_size, GFP_KERNEL);
41201 + schan->desc = kcalloc(sdev->desc_size,
41202 + NR_DESCS_PER_CHANNEL, GFP_KERNEL);
41203 if (!schan->desc) {
41204 ret = -ENOMEM;
41205 goto edescalloc;
41206 diff --git a/drivers/dma/sh/shdmac.c b/drivers/dma/sh/shdmac.c
41207 index 11707df..2ea96f7 100644
41208 --- a/drivers/dma/sh/shdmac.c
41209 +++ b/drivers/dma/sh/shdmac.c
41210 @@ -513,7 +513,7 @@ static int sh_dmae_nmi_handler(struct notifier_block *self,
41211 return ret;
41212 }
41213
41214 -static struct notifier_block sh_dmae_nmi_notifier __read_mostly = {
41215 +static struct notifier_block sh_dmae_nmi_notifier = {
41216 .notifier_call = sh_dmae_nmi_handler,
41217
41218 /* Run before NMI debug handler and KGDB */
41219 diff --git a/drivers/edac/edac_device.c b/drivers/edac/edac_device.c
41220 index 592af5f..bb1d583 100644
41221 --- a/drivers/edac/edac_device.c
41222 +++ b/drivers/edac/edac_device.c
41223 @@ -477,9 +477,9 @@ void edac_device_reset_delay_period(struct edac_device_ctl_info *edac_dev,
41224 */
41225 int edac_device_alloc_index(void)
41226 {
41227 - static atomic_t device_indexes = ATOMIC_INIT(0);
41228 + static atomic_unchecked_t device_indexes = ATOMIC_INIT(0);
41229
41230 - return atomic_inc_return(&device_indexes) - 1;
41231 + return atomic_inc_return_unchecked(&device_indexes) - 1;
41232 }
41233 EXPORT_SYMBOL_GPL(edac_device_alloc_index);
41234
41235 diff --git a/drivers/edac/edac_mc_sysfs.c b/drivers/edac/edac_mc_sysfs.c
41236 index 33df7d9..0794989 100644
41237 --- a/drivers/edac/edac_mc_sysfs.c
41238 +++ b/drivers/edac/edac_mc_sysfs.c
41239 @@ -154,7 +154,7 @@ static const char * const edac_caps[] = {
41240 struct dev_ch_attribute {
41241 struct device_attribute attr;
41242 int channel;
41243 -};
41244 +} __do_const;
41245
41246 #define DEVICE_CHANNEL(_name, _mode, _show, _store, _var) \
41247 static struct dev_ch_attribute dev_attr_legacy_##_name = \
41248 diff --git a/drivers/edac/edac_pci.c b/drivers/edac/edac_pci.c
41249 index 2cf44b4d..6dd2dc7 100644
41250 --- a/drivers/edac/edac_pci.c
41251 +++ b/drivers/edac/edac_pci.c
41252 @@ -29,7 +29,7 @@
41253
41254 static DEFINE_MUTEX(edac_pci_ctls_mutex);
41255 static LIST_HEAD(edac_pci_list);
41256 -static atomic_t pci_indexes = ATOMIC_INIT(0);
41257 +static atomic_unchecked_t pci_indexes = ATOMIC_INIT(0);
41258
41259 /*
41260 * edac_pci_alloc_ctl_info
41261 @@ -315,7 +315,7 @@ EXPORT_SYMBOL_GPL(edac_pci_reset_delay_period);
41262 */
41263 int edac_pci_alloc_index(void)
41264 {
41265 - return atomic_inc_return(&pci_indexes) - 1;
41266 + return atomic_inc_return_unchecked(&pci_indexes) - 1;
41267 }
41268 EXPORT_SYMBOL_GPL(edac_pci_alloc_index);
41269
41270 diff --git a/drivers/edac/edac_pci_sysfs.c b/drivers/edac/edac_pci_sysfs.c
41271 index 24d877f..4e30133 100644
41272 --- a/drivers/edac/edac_pci_sysfs.c
41273 +++ b/drivers/edac/edac_pci_sysfs.c
41274 @@ -23,8 +23,8 @@ static int edac_pci_log_pe = 1; /* log PCI parity errors */
41275 static int edac_pci_log_npe = 1; /* log PCI non-parity error errors */
41276 static int edac_pci_poll_msec = 1000; /* one second workq period */
41277
41278 -static atomic_t pci_parity_count = ATOMIC_INIT(0);
41279 -static atomic_t pci_nonparity_count = ATOMIC_INIT(0);
41280 +static atomic_unchecked_t pci_parity_count = ATOMIC_INIT(0);
41281 +static atomic_unchecked_t pci_nonparity_count = ATOMIC_INIT(0);
41282
41283 static struct kobject *edac_pci_top_main_kobj;
41284 static atomic_t edac_pci_sysfs_refcount = ATOMIC_INIT(0);
41285 @@ -232,7 +232,7 @@ struct edac_pci_dev_attribute {
41286 void *value;
41287 ssize_t(*show) (void *, char *);
41288 ssize_t(*store) (void *, const char *, size_t);
41289 -};
41290 +} __do_const;
41291
41292 /* Set of show/store abstract level functions for PCI Parity object */
41293 static ssize_t edac_pci_dev_show(struct kobject *kobj, struct attribute *attr,
41294 @@ -576,7 +576,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41295 edac_printk(KERN_CRIT, EDAC_PCI,
41296 "Signaled System Error on %s\n",
41297 pci_name(dev));
41298 - atomic_inc(&pci_nonparity_count);
41299 + atomic_inc_unchecked(&pci_nonparity_count);
41300 }
41301
41302 if (status & (PCI_STATUS_PARITY)) {
41303 @@ -584,7 +584,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41304 "Master Data Parity Error on %s\n",
41305 pci_name(dev));
41306
41307 - atomic_inc(&pci_parity_count);
41308 + atomic_inc_unchecked(&pci_parity_count);
41309 }
41310
41311 if (status & (PCI_STATUS_DETECTED_PARITY)) {
41312 @@ -592,7 +592,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41313 "Detected Parity Error on %s\n",
41314 pci_name(dev));
41315
41316 - atomic_inc(&pci_parity_count);
41317 + atomic_inc_unchecked(&pci_parity_count);
41318 }
41319 }
41320
41321 @@ -615,7 +615,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41322 edac_printk(KERN_CRIT, EDAC_PCI, "Bridge "
41323 "Signaled System Error on %s\n",
41324 pci_name(dev));
41325 - atomic_inc(&pci_nonparity_count);
41326 + atomic_inc_unchecked(&pci_nonparity_count);
41327 }
41328
41329 if (status & (PCI_STATUS_PARITY)) {
41330 @@ -623,7 +623,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41331 "Master Data Parity Error on "
41332 "%s\n", pci_name(dev));
41333
41334 - atomic_inc(&pci_parity_count);
41335 + atomic_inc_unchecked(&pci_parity_count);
41336 }
41337
41338 if (status & (PCI_STATUS_DETECTED_PARITY)) {
41339 @@ -631,7 +631,7 @@ static void edac_pci_dev_parity_test(struct pci_dev *dev)
41340 "Detected Parity Error on %s\n",
41341 pci_name(dev));
41342
41343 - atomic_inc(&pci_parity_count);
41344 + atomic_inc_unchecked(&pci_parity_count);
41345 }
41346 }
41347 }
41348 @@ -669,7 +669,7 @@ void edac_pci_do_parity_check(void)
41349 if (!check_pci_errors)
41350 return;
41351
41352 - before_count = atomic_read(&pci_parity_count);
41353 + before_count = atomic_read_unchecked(&pci_parity_count);
41354
41355 /* scan all PCI devices looking for a Parity Error on devices and
41356 * bridges.
41357 @@ -681,7 +681,7 @@ void edac_pci_do_parity_check(void)
41358 /* Only if operator has selected panic on PCI Error */
41359 if (edac_pci_get_panic_on_pe()) {
41360 /* If the count is different 'after' from 'before' */
41361 - if (before_count != atomic_read(&pci_parity_count))
41362 + if (before_count != atomic_read_unchecked(&pci_parity_count))
41363 panic("EDAC: PCI Parity Error");
41364 }
41365 }
41366 diff --git a/drivers/edac/mce_amd.h b/drivers/edac/mce_amd.h
41367 index c2359a1..8bd119d 100644
41368 --- a/drivers/edac/mce_amd.h
41369 +++ b/drivers/edac/mce_amd.h
41370 @@ -74,7 +74,7 @@ struct amd_decoder_ops {
41371 bool (*mc0_mce)(u16, u8);
41372 bool (*mc1_mce)(u16, u8);
41373 bool (*mc2_mce)(u16, u8);
41374 -};
41375 +} __no_const;
41376
41377 void amd_report_gart_errors(bool);
41378 void amd_register_ecc_decoder(void (*f)(int, struct mce *));
41379 diff --git a/drivers/firewire/core-card.c b/drivers/firewire/core-card.c
41380 index 57ea7f4..af06b76 100644
41381 --- a/drivers/firewire/core-card.c
41382 +++ b/drivers/firewire/core-card.c
41383 @@ -528,9 +528,9 @@ void fw_card_initialize(struct fw_card *card,
41384 const struct fw_card_driver *driver,
41385 struct device *device)
41386 {
41387 - static atomic_t index = ATOMIC_INIT(-1);
41388 + static atomic_unchecked_t index = ATOMIC_INIT(-1);
41389
41390 - card->index = atomic_inc_return(&index);
41391 + card->index = atomic_inc_return_unchecked(&index);
41392 card->driver = driver;
41393 card->device = device;
41394 card->current_tlabel = 0;
41395 @@ -680,7 +680,7 @@ EXPORT_SYMBOL_GPL(fw_card_release);
41396
41397 void fw_core_remove_card(struct fw_card *card)
41398 {
41399 - struct fw_card_driver dummy_driver = dummy_driver_template;
41400 + fw_card_driver_no_const dummy_driver = dummy_driver_template;
41401
41402 card->driver->update_phy_reg(card, 4,
41403 PHY_LINK_ACTIVE | PHY_CONTENDER, 0);
41404 diff --git a/drivers/firewire/core-device.c b/drivers/firewire/core-device.c
41405 index f9e3aee..269dbdb 100644
41406 --- a/drivers/firewire/core-device.c
41407 +++ b/drivers/firewire/core-device.c
41408 @@ -256,7 +256,7 @@ EXPORT_SYMBOL(fw_device_enable_phys_dma);
41409 struct config_rom_attribute {
41410 struct device_attribute attr;
41411 u32 key;
41412 -};
41413 +} __do_const;
41414
41415 static ssize_t show_immediate(struct device *dev,
41416 struct device_attribute *dattr, char *buf)
41417 diff --git a/drivers/firewire/core-transaction.c b/drivers/firewire/core-transaction.c
41418 index d6a09b9..18e90dd 100644
41419 --- a/drivers/firewire/core-transaction.c
41420 +++ b/drivers/firewire/core-transaction.c
41421 @@ -38,6 +38,7 @@
41422 #include <linux/timer.h>
41423 #include <linux/types.h>
41424 #include <linux/workqueue.h>
41425 +#include <linux/sched.h>
41426
41427 #include <asm/byteorder.h>
41428
41429 diff --git a/drivers/firewire/core.h b/drivers/firewire/core.h
41430 index e1480ff6..1a429bd 100644
41431 --- a/drivers/firewire/core.h
41432 +++ b/drivers/firewire/core.h
41433 @@ -111,6 +111,7 @@ struct fw_card_driver {
41434
41435 int (*stop_iso)(struct fw_iso_context *ctx);
41436 };
41437 +typedef struct fw_card_driver __no_const fw_card_driver_no_const;
41438
41439 void fw_card_initialize(struct fw_card *card,
41440 const struct fw_card_driver *driver, struct device *device);
41441 diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
41442 index f51d376..b118e40 100644
41443 --- a/drivers/firewire/ohci.c
41444 +++ b/drivers/firewire/ohci.c
41445 @@ -2049,10 +2049,12 @@ static void bus_reset_work(struct work_struct *work)
41446 be32_to_cpu(ohci->next_header));
41447 }
41448
41449 +#ifndef CONFIG_GRKERNSEC
41450 if (param_remote_dma) {
41451 reg_write(ohci, OHCI1394_PhyReqFilterHiSet, ~0);
41452 reg_write(ohci, OHCI1394_PhyReqFilterLoSet, ~0);
41453 }
41454 +#endif
41455
41456 spin_unlock_irq(&ohci->lock);
41457
41458 @@ -2584,8 +2586,10 @@ static int ohci_enable_phys_dma(struct fw_card *card,
41459 unsigned long flags;
41460 int n, ret = 0;
41461
41462 +#ifndef CONFIG_GRKERNSEC
41463 if (param_remote_dma)
41464 return 0;
41465 +#endif
41466
41467 /*
41468 * FIXME: Make sure this bitmask is cleared when we clear the busReset
41469 diff --git a/drivers/firmware/dmi-id.c b/drivers/firmware/dmi-id.c
41470 index 94a58a0..f5eba42 100644
41471 --- a/drivers/firmware/dmi-id.c
41472 +++ b/drivers/firmware/dmi-id.c
41473 @@ -16,7 +16,7 @@
41474 struct dmi_device_attribute{
41475 struct device_attribute dev_attr;
41476 int field;
41477 -};
41478 +} __do_const;
41479 #define to_dmi_dev_attr(_dev_attr) \
41480 container_of(_dev_attr, struct dmi_device_attribute, dev_attr)
41481
41482 diff --git a/drivers/firmware/dmi_scan.c b/drivers/firmware/dmi_scan.c
41483 index ac1ce4a..321745e 100644
41484 --- a/drivers/firmware/dmi_scan.c
41485 +++ b/drivers/firmware/dmi_scan.c
41486 @@ -690,14 +690,18 @@ static int __init dmi_init(void)
41487 if (!dmi_table)
41488 goto err_tables;
41489
41490 - bin_attr_smbios_entry_point.size = smbios_entry_point_size;
41491 - bin_attr_smbios_entry_point.private = smbios_entry_point;
41492 + pax_open_kernel();
41493 + *(size_t *)&bin_attr_smbios_entry_point.size = smbios_entry_point_size;
41494 + *(void **)&bin_attr_smbios_entry_point.private = smbios_entry_point;
41495 + pax_close_kernel();
41496 ret = sysfs_create_bin_file(tables_kobj, &bin_attr_smbios_entry_point);
41497 if (ret)
41498 goto err_unmap;
41499
41500 - bin_attr_DMI.size = dmi_len;
41501 - bin_attr_DMI.private = dmi_table;
41502 + pax_open_kernel();
41503 + *(size_t *)&bin_attr_DMI.size = dmi_len;
41504 + *(void **)&bin_attr_DMI.private = dmi_table;
41505 + pax_close_kernel();
41506 ret = sysfs_create_bin_file(tables_kobj, &bin_attr_DMI);
41507 if (!ret)
41508 return 0;
41509 diff --git a/drivers/firmware/efi/cper.c b/drivers/firmware/efi/cper.c
41510 index d425374..1da1716 100644
41511 --- a/drivers/firmware/efi/cper.c
41512 +++ b/drivers/firmware/efi/cper.c
41513 @@ -44,12 +44,12 @@ static char rcd_decode_str[CPER_REC_LEN];
41514 */
41515 u64 cper_next_record_id(void)
41516 {
41517 - static atomic64_t seq;
41518 + static atomic64_unchecked_t seq;
41519
41520 - if (!atomic64_read(&seq))
41521 - atomic64_set(&seq, ((u64)get_seconds()) << 32);
41522 + if (!atomic64_read_unchecked(&seq))
41523 + atomic64_set_unchecked(&seq, ((u64)get_seconds()) << 32);
41524
41525 - return atomic64_inc_return(&seq);
41526 + return atomic64_inc_return_unchecked(&seq);
41527 }
41528 EXPORT_SYMBOL_GPL(cper_next_record_id);
41529
41530 diff --git a/drivers/firmware/efi/efi.c b/drivers/firmware/efi/efi.c
41531 index d6144e3..23f9686 100644
41532 --- a/drivers/firmware/efi/efi.c
41533 +++ b/drivers/firmware/efi/efi.c
41534 @@ -170,14 +170,16 @@ static struct attribute_group efi_subsys_attr_group = {
41535 };
41536
41537 static struct efivars generic_efivars;
41538 -static struct efivar_operations generic_ops;
41539 +static efivar_operations_no_const generic_ops __read_only;
41540
41541 static int generic_ops_register(void)
41542 {
41543 - generic_ops.get_variable = efi.get_variable;
41544 - generic_ops.set_variable = efi.set_variable;
41545 - generic_ops.get_next_variable = efi.get_next_variable;
41546 - generic_ops.query_variable_store = efi_query_variable_store;
41547 + pax_open_kernel();
41548 + *(void **)&generic_ops.get_variable = efi.get_variable;
41549 + *(void **)&generic_ops.set_variable = efi.set_variable;
41550 + *(void **)&generic_ops.get_next_variable = efi.get_next_variable;
41551 + *(void **)&generic_ops.query_variable_store = efi_query_variable_store;
41552 + pax_close_kernel();
41553
41554 return efivars_register(&generic_efivars, &generic_ops, efi_kobj);
41555 }
41556 diff --git a/drivers/firmware/efi/efivars.c b/drivers/firmware/efi/efivars.c
41557 index 756eca8..2336d08 100644
41558 --- a/drivers/firmware/efi/efivars.c
41559 +++ b/drivers/firmware/efi/efivars.c
41560 @@ -590,7 +590,7 @@ efivar_create_sysfs_entry(struct efivar_entry *new_var)
41561 static int
41562 create_efivars_bin_attributes(void)
41563 {
41564 - struct bin_attribute *attr;
41565 + bin_attribute_no_const *attr;
41566 int error;
41567
41568 /* new_var */
41569 diff --git a/drivers/firmware/efi/runtime-map.c b/drivers/firmware/efi/runtime-map.c
41570 index 5c55227..97f4978 100644
41571 --- a/drivers/firmware/efi/runtime-map.c
41572 +++ b/drivers/firmware/efi/runtime-map.c
41573 @@ -97,7 +97,7 @@ static void map_release(struct kobject *kobj)
41574 kfree(entry);
41575 }
41576
41577 -static struct kobj_type __refdata map_ktype = {
41578 +static const struct kobj_type __refconst map_ktype = {
41579 .sysfs_ops = &map_attr_ops,
41580 .default_attrs = def_attrs,
41581 .release = map_release,
41582 diff --git a/drivers/firmware/google/gsmi.c b/drivers/firmware/google/gsmi.c
41583 index f1ab05e..ab51228 100644
41584 --- a/drivers/firmware/google/gsmi.c
41585 +++ b/drivers/firmware/google/gsmi.c
41586 @@ -709,7 +709,7 @@ static u32 __init hash_oem_table_id(char s[8])
41587 return local_hash_64(input, 32);
41588 }
41589
41590 -static struct dmi_system_id gsmi_dmi_table[] __initdata = {
41591 +static const struct dmi_system_id gsmi_dmi_table[] __initconst = {
41592 {
41593 .ident = "Google Board",
41594 .matches = {
41595 diff --git a/drivers/firmware/google/memconsole.c b/drivers/firmware/google/memconsole.c
41596 index 2f569aa..26e4f39 100644
41597 --- a/drivers/firmware/google/memconsole.c
41598 +++ b/drivers/firmware/google/memconsole.c
41599 @@ -136,7 +136,7 @@ static bool __init found_memconsole(void)
41600 return false;
41601 }
41602
41603 -static struct dmi_system_id memconsole_dmi_table[] __initdata = {
41604 +static const struct dmi_system_id memconsole_dmi_table[] __initconst = {
41605 {
41606 .ident = "Google Board",
41607 .matches = {
41608 @@ -155,7 +155,10 @@ static int __init memconsole_init(void)
41609 if (!found_memconsole())
41610 return -ENODEV;
41611
41612 - memconsole_bin_attr.size = memconsole_length;
41613 + pax_open_kernel();
41614 + *(size_t *)&memconsole_bin_attr.size = memconsole_length;
41615 + pax_close_kernel();
41616 +
41617 return sysfs_create_bin_file(firmware_kobj, &memconsole_bin_attr);
41618 }
41619
41620 diff --git a/drivers/firmware/memmap.c b/drivers/firmware/memmap.c
41621 index 5de3ed2..d839c56 100644
41622 --- a/drivers/firmware/memmap.c
41623 +++ b/drivers/firmware/memmap.c
41624 @@ -124,7 +124,7 @@ static void __meminit release_firmware_map_entry(struct kobject *kobj)
41625 kfree(entry);
41626 }
41627
41628 -static struct kobj_type __refdata memmap_ktype = {
41629 +static const struct kobj_type __refconst memmap_ktype = {
41630 .release = release_firmware_map_entry,
41631 .sysfs_ops = &memmap_attr_ops,
41632 .default_attrs = def_attrs,
41633 diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
41634 index c246ac3..6867ca6 100644
41635 --- a/drivers/gpio/gpio-davinci.c
41636 +++ b/drivers/gpio/gpio-davinci.c
41637 @@ -442,9 +442,9 @@ static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq)
41638 return &gpio_unbanked.chip;
41639 };
41640
41641 -static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq)
41642 +static irq_chip_no_const *keystone_gpio_get_irq_chip(unsigned int irq)
41643 {
41644 - static struct irq_chip gpio_unbanked;
41645 + static irq_chip_no_const gpio_unbanked;
41646
41647 gpio_unbanked = *irq_get_chip(irq);
41648 return &gpio_unbanked;
41649 @@ -474,7 +474,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev)
41650 struct davinci_gpio_regs __iomem *g;
41651 struct irq_domain *irq_domain = NULL;
41652 const struct of_device_id *match;
41653 - struct irq_chip *irq_chip;
41654 + irq_chip_no_const *irq_chip;
41655 gpio_get_irq_chip_cb_t gpio_get_irq_chip;
41656
41657 /*
41658 diff --git a/drivers/gpio/gpio-em.c b/drivers/gpio/gpio-em.c
41659 index fbf2873..0a37114 100644
41660 --- a/drivers/gpio/gpio-em.c
41661 +++ b/drivers/gpio/gpio-em.c
41662 @@ -278,7 +278,7 @@ static int em_gio_probe(struct platform_device *pdev)
41663 struct em_gio_priv *p;
41664 struct resource *io[2], *irq[2];
41665 struct gpio_chip *gpio_chip;
41666 - struct irq_chip *irq_chip;
41667 + irq_chip_no_const *irq_chip;
41668 const char *name = dev_name(&pdev->dev);
41669 int ret;
41670
41671 diff --git a/drivers/gpio/gpio-ich.c b/drivers/gpio/gpio-ich.c
41672 index 4ba7ed5..1536b5d 100644
41673 --- a/drivers/gpio/gpio-ich.c
41674 +++ b/drivers/gpio/gpio-ich.c
41675 @@ -94,7 +94,7 @@ struct ichx_desc {
41676 * this option allows driver caching written output values
41677 */
41678 bool use_outlvl_cache;
41679 -};
41680 +} __do_const;
41681
41682 static struct {
41683 spinlock_t lock;
41684 diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
41685 index 61a731f..d5ca6cb 100644
41686 --- a/drivers/gpio/gpio-omap.c
41687 +++ b/drivers/gpio/gpio-omap.c
41688 @@ -1067,7 +1067,7 @@ static void omap_gpio_mod_init(struct gpio_bank *bank)
41689 dev_err(bank->dev, "Could not get gpio dbck\n");
41690 }
41691
41692 -static int omap_gpio_chip_init(struct gpio_bank *bank, struct irq_chip *irqc)
41693 +static int omap_gpio_chip_init(struct gpio_bank *bank, irq_chip_no_const *irqc)
41694 {
41695 static int gpio;
41696 int irq_base = 0;
41697 @@ -1150,7 +1150,7 @@ static int omap_gpio_probe(struct platform_device *pdev)
41698 const struct omap_gpio_platform_data *pdata;
41699 struct resource *res;
41700 struct gpio_bank *bank;
41701 - struct irq_chip *irqc;
41702 + irq_chip_no_const *irqc;
41703 int ret;
41704
41705 match = of_match_device(of_match_ptr(omap_gpio_match), dev);
41706 diff --git a/drivers/gpio/gpio-rcar.c b/drivers/gpio/gpio-rcar.c
41707 index 1e14a6c..0442450 100644
41708 --- a/drivers/gpio/gpio-rcar.c
41709 +++ b/drivers/gpio/gpio-rcar.c
41710 @@ -379,7 +379,7 @@ static int gpio_rcar_probe(struct platform_device *pdev)
41711 struct gpio_rcar_priv *p;
41712 struct resource *io, *irq;
41713 struct gpio_chip *gpio_chip;
41714 - struct irq_chip *irq_chip;
41715 + irq_chip_no_const *irq_chip;
41716 struct device *dev = &pdev->dev;
41717 const char *name = dev_name(dev);
41718 int ret;
41719 diff --git a/drivers/gpio/gpio-vr41xx.c b/drivers/gpio/gpio-vr41xx.c
41720 index c1caa45..f0f97d2 100644
41721 --- a/drivers/gpio/gpio-vr41xx.c
41722 +++ b/drivers/gpio/gpio-vr41xx.c
41723 @@ -224,7 +224,7 @@ static int giu_get_irq(unsigned int irq)
41724 printk(KERN_ERR "spurious GIU interrupt: %04x(%04x),%04x(%04x)\n",
41725 maskl, pendl, maskh, pendh);
41726
41727 - atomic_inc(&irq_err_count);
41728 + atomic_inc_unchecked(&irq_err_count);
41729
41730 return -EINVAL;
41731 }
41732 diff --git a/drivers/gpio/gpiolib.c b/drivers/gpio/gpiolib.c
41733 index bf4bd1d..51154a3 100644
41734 --- a/drivers/gpio/gpiolib.c
41735 +++ b/drivers/gpio/gpiolib.c
41736 @@ -569,8 +569,10 @@ static void gpiochip_irqchip_remove(struct gpio_chip *gpiochip)
41737 }
41738
41739 if (gpiochip->irqchip) {
41740 - gpiochip->irqchip->irq_request_resources = NULL;
41741 - gpiochip->irqchip->irq_release_resources = NULL;
41742 + pax_open_kernel();
41743 + *(void **)&gpiochip->irqchip->irq_request_resources = NULL;
41744 + *(void **)&gpiochip->irqchip->irq_release_resources = NULL;
41745 + pax_close_kernel();
41746 gpiochip->irqchip = NULL;
41747 }
41748 }
41749 @@ -636,8 +638,11 @@ int gpiochip_irqchip_add(struct gpio_chip *gpiochip,
41750 gpiochip->irqchip = NULL;
41751 return -EINVAL;
41752 }
41753 - irqchip->irq_request_resources = gpiochip_irq_reqres;
41754 - irqchip->irq_release_resources = gpiochip_irq_relres;
41755 +
41756 + pax_open_kernel();
41757 + *(void **)&irqchip->irq_request_resources = gpiochip_irq_reqres;
41758 + *(void **)&irqchip->irq_release_resources = gpiochip_irq_relres;
41759 + pax_close_kernel();
41760
41761 /*
41762 * Prepare the mapping since the irqchip shall be orthogonal to
41763 diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
41764 index 99f158e..20b6c4c 100644
41765 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
41766 +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
41767 @@ -1071,7 +1071,7 @@ static bool amdgpu_switcheroo_can_switch(struct pci_dev *pdev)
41768 * locking inversion with the driver load path. And the access here is
41769 * completely racy anyway. So don't bother with locking for now.
41770 */
41771 - return dev->open_count == 0;
41772 + return local_read(&dev->open_count) == 0;
41773 }
41774
41775 static const struct vga_switcheroo_client_ops amdgpu_switcheroo_ops = {
41776 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
41777 index c991973..8eb176b 100644
41778 --- a/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
41779 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_chardev.c
41780 @@ -419,7 +419,7 @@ static int kfd_ioctl_set_memory_policy(struct file *filep,
41781 (args->alternate_policy == KFD_IOC_CACHE_POLICY_COHERENT)
41782 ? cache_policy_coherent : cache_policy_noncoherent;
41783
41784 - if (!dev->dqm->ops.set_cache_memory_policy(dev->dqm,
41785 + if (!dev->dqm->ops->set_cache_memory_policy(dev->dqm,
41786 &pdd->qpd,
41787 default_policy,
41788 alternate_policy,
41789 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device.c b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
41790 index 75312c8..e3684e6 100644
41791 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device.c
41792 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device.c
41793 @@ -293,7 +293,7 @@ bool kgd2kfd_device_init(struct kfd_dev *kfd,
41794 goto device_queue_manager_error;
41795 }
41796
41797 - if (kfd->dqm->ops.start(kfd->dqm) != 0) {
41798 + if (kfd->dqm->ops->start(kfd->dqm) != 0) {
41799 dev_err(kfd_device,
41800 "Error starting queuen manager for device (%x:%x)\n",
41801 kfd->pdev->vendor, kfd->pdev->device);
41802 @@ -349,7 +349,7 @@ void kgd2kfd_suspend(struct kfd_dev *kfd)
41803 BUG_ON(kfd == NULL);
41804
41805 if (kfd->init_complete) {
41806 - kfd->dqm->ops.stop(kfd->dqm);
41807 + kfd->dqm->ops->stop(kfd->dqm);
41808 amd_iommu_set_invalidate_ctx_cb(kfd->pdev, NULL);
41809 amd_iommu_set_invalid_ppr_cb(kfd->pdev, NULL);
41810 amd_iommu_free_device(kfd->pdev);
41811 @@ -372,7 +372,7 @@ int kgd2kfd_resume(struct kfd_dev *kfd)
41812 amd_iommu_set_invalidate_ctx_cb(kfd->pdev,
41813 iommu_pasid_shutdown_callback);
41814 amd_iommu_set_invalid_ppr_cb(kfd->pdev, iommu_invalid_ppr_cb);
41815 - kfd->dqm->ops.start(kfd->dqm);
41816 + kfd->dqm->ops->start(kfd->dqm);
41817 }
41818
41819 return 0;
41820 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
41821 index 4bb7f42..320fcac 100644
41822 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
41823 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.c
41824 @@ -242,7 +242,7 @@ static int create_compute_queue_nocpsch(struct device_queue_manager *dqm,
41825
41826 BUG_ON(!dqm || !q || !qpd);
41827
41828 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
41829 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
41830 if (mqd == NULL)
41831 return -ENOMEM;
41832
41833 @@ -288,14 +288,14 @@ static int destroy_queue_nocpsch(struct device_queue_manager *dqm,
41834 mutex_lock(&dqm->lock);
41835
41836 if (q->properties.type == KFD_QUEUE_TYPE_COMPUTE) {
41837 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
41838 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
41839 if (mqd == NULL) {
41840 retval = -ENOMEM;
41841 goto out;
41842 }
41843 deallocate_hqd(dqm, q);
41844 } else if (q->properties.type == KFD_QUEUE_TYPE_SDMA) {
41845 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
41846 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
41847 if (mqd == NULL) {
41848 retval = -ENOMEM;
41849 goto out;
41850 @@ -347,7 +347,7 @@ static int update_queue(struct device_queue_manager *dqm, struct queue *q)
41851 BUG_ON(!dqm || !q || !q->mqd);
41852
41853 mutex_lock(&dqm->lock);
41854 - mqd = dqm->ops.get_mqd_manager(dqm,
41855 + mqd = dqm->ops->get_mqd_manager(dqm,
41856 get_mqd_type_from_queue_type(q->properties.type));
41857 if (mqd == NULL) {
41858 mutex_unlock(&dqm->lock);
41859 @@ -414,7 +414,7 @@ static int register_process_nocpsch(struct device_queue_manager *dqm,
41860 mutex_lock(&dqm->lock);
41861 list_add(&n->list, &dqm->queues);
41862
41863 - retval = dqm->ops_asic_specific.register_process(dqm, qpd);
41864 + retval = dqm->ops_asic_specific->register_process(dqm, qpd);
41865
41866 dqm->processes_count++;
41867
41868 @@ -502,7 +502,7 @@ int init_pipelines(struct device_queue_manager *dqm,
41869
41870 memset(hpdptr, 0, CIK_HPD_EOP_BYTES * pipes_num);
41871
41872 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
41873 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_COMPUTE);
41874 if (mqd == NULL) {
41875 kfd_gtt_sa_free(dqm->dev, dqm->pipeline_mem);
41876 return -ENOMEM;
41877 @@ -635,7 +635,7 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm,
41878 struct mqd_manager *mqd;
41879 int retval;
41880
41881 - mqd = dqm->ops.get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
41882 + mqd = dqm->ops->get_mqd_manager(dqm, KFD_MQD_TYPE_SDMA);
41883 if (!mqd)
41884 return -ENOMEM;
41885
41886 @@ -650,7 +650,7 @@ static int create_sdma_queue_nocpsch(struct device_queue_manager *dqm,
41887 pr_debug(" sdma queue id: %d\n", q->properties.sdma_queue_id);
41888 pr_debug(" sdma engine id: %d\n", q->properties.sdma_engine_id);
41889
41890 - dqm->ops_asic_specific.init_sdma_vm(dqm, q, qpd);
41891 + dqm->ops_asic_specific->init_sdma_vm(dqm, q, qpd);
41892 retval = mqd->init_mqd(mqd, &q->mqd, &q->mqd_mem_obj,
41893 &q->gart_mqd_addr, &q->properties);
41894 if (retval != 0) {
41895 @@ -712,7 +712,7 @@ static int initialize_cpsch(struct device_queue_manager *dqm)
41896 dqm->queue_count = dqm->processes_count = 0;
41897 dqm->sdma_queue_count = 0;
41898 dqm->active_runlist = false;
41899 - retval = dqm->ops_asic_specific.initialize(dqm);
41900 + retval = dqm->ops_asic_specific->initialize(dqm);
41901 if (retval != 0)
41902 goto fail_init_pipelines;
41903
41904 @@ -879,7 +879,7 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
41905 if (q->properties.type == KFD_QUEUE_TYPE_SDMA)
41906 select_sdma_engine_id(q);
41907
41908 - mqd = dqm->ops.get_mqd_manager(dqm,
41909 + mqd = dqm->ops->get_mqd_manager(dqm,
41910 get_mqd_type_from_queue_type(q->properties.type));
41911
41912 if (mqd == NULL) {
41913 @@ -887,7 +887,7 @@ static int create_queue_cpsch(struct device_queue_manager *dqm, struct queue *q,
41914 return -ENOMEM;
41915 }
41916
41917 - dqm->ops_asic_specific.init_sdma_vm(dqm, q, qpd);
41918 + dqm->ops_asic_specific->init_sdma_vm(dqm, q, qpd);
41919 retval = mqd->init_mqd(mqd, &q->mqd, &q->mqd_mem_obj,
41920 &q->gart_mqd_addr, &q->properties);
41921 if (retval != 0)
41922 @@ -1060,7 +1060,7 @@ static int destroy_queue_cpsch(struct device_queue_manager *dqm,
41923
41924 }
41925
41926 - mqd = dqm->ops.get_mqd_manager(dqm,
41927 + mqd = dqm->ops->get_mqd_manager(dqm,
41928 get_mqd_type_from_queue_type(q->properties.type));
41929 if (!mqd) {
41930 retval = -ENOMEM;
41931 @@ -1149,7 +1149,7 @@ static bool set_cache_memory_policy(struct device_queue_manager *dqm,
41932 qpd->sh_mem_ape1_limit = limit >> 16;
41933 }
41934
41935 - retval = dqm->ops_asic_specific.set_cache_memory_policy(
41936 + retval = dqm->ops_asic_specific->set_cache_memory_policy(
41937 dqm,
41938 qpd,
41939 default_policy,
41940 @@ -1172,6 +1172,36 @@ out:
41941 return false;
41942 }
41943
41944 +static const struct device_queue_manager_ops cp_dqm_ops = {
41945 + .create_queue = create_queue_cpsch,
41946 + .initialize = initialize_cpsch,
41947 + .start = start_cpsch,
41948 + .stop = stop_cpsch,
41949 + .destroy_queue = destroy_queue_cpsch,
41950 + .update_queue = update_queue,
41951 + .get_mqd_manager = get_mqd_manager_nocpsch,
41952 + .register_process = register_process_nocpsch,
41953 + .unregister_process = unregister_process_nocpsch,
41954 + .uninitialize = uninitialize_nocpsch,
41955 + .create_kernel_queue = create_kernel_queue_cpsch,
41956 + .destroy_kernel_queue = destroy_kernel_queue_cpsch,
41957 + .set_cache_memory_policy = set_cache_memory_policy,
41958 +};
41959 +
41960 +static const struct device_queue_manager_ops no_cp_dqm_ops = {
41961 + .start = start_nocpsch,
41962 + .stop = stop_nocpsch,
41963 + .create_queue = create_queue_nocpsch,
41964 + .destroy_queue = destroy_queue_nocpsch,
41965 + .update_queue = update_queue,
41966 + .get_mqd_manager = get_mqd_manager_nocpsch,
41967 + .register_process = register_process_nocpsch,
41968 + .unregister_process = unregister_process_nocpsch,
41969 + .initialize = initialize_nocpsch,
41970 + .uninitialize = uninitialize_nocpsch,
41971 + .set_cache_memory_policy = set_cache_memory_policy,
41972 +};
41973 +
41974 struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
41975 {
41976 struct device_queue_manager *dqm;
41977 @@ -1189,33 +1219,11 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
41978 case KFD_SCHED_POLICY_HWS:
41979 case KFD_SCHED_POLICY_HWS_NO_OVERSUBSCRIPTION:
41980 /* initialize dqm for cp scheduling */
41981 - dqm->ops.create_queue = create_queue_cpsch;
41982 - dqm->ops.initialize = initialize_cpsch;
41983 - dqm->ops.start = start_cpsch;
41984 - dqm->ops.stop = stop_cpsch;
41985 - dqm->ops.destroy_queue = destroy_queue_cpsch;
41986 - dqm->ops.update_queue = update_queue;
41987 - dqm->ops.get_mqd_manager = get_mqd_manager_nocpsch;
41988 - dqm->ops.register_process = register_process_nocpsch;
41989 - dqm->ops.unregister_process = unregister_process_nocpsch;
41990 - dqm->ops.uninitialize = uninitialize_nocpsch;
41991 - dqm->ops.create_kernel_queue = create_kernel_queue_cpsch;
41992 - dqm->ops.destroy_kernel_queue = destroy_kernel_queue_cpsch;
41993 - dqm->ops.set_cache_memory_policy = set_cache_memory_policy;
41994 + dqm->ops = &cp_dqm_ops;
41995 break;
41996 case KFD_SCHED_POLICY_NO_HWS:
41997 /* initialize dqm for no cp scheduling */
41998 - dqm->ops.start = start_nocpsch;
41999 - dqm->ops.stop = stop_nocpsch;
42000 - dqm->ops.create_queue = create_queue_nocpsch;
42001 - dqm->ops.destroy_queue = destroy_queue_nocpsch;
42002 - dqm->ops.update_queue = update_queue;
42003 - dqm->ops.get_mqd_manager = get_mqd_manager_nocpsch;
42004 - dqm->ops.register_process = register_process_nocpsch;
42005 - dqm->ops.unregister_process = unregister_process_nocpsch;
42006 - dqm->ops.initialize = initialize_nocpsch;
42007 - dqm->ops.uninitialize = uninitialize_nocpsch;
42008 - dqm->ops.set_cache_memory_policy = set_cache_memory_policy;
42009 + dqm->ops = &no_cp_dqm_ops;
42010 break;
42011 default:
42012 BUG();
42013 @@ -1224,15 +1232,15 @@ struct device_queue_manager *device_queue_manager_init(struct kfd_dev *dev)
42014
42015 switch (dev->device_info->asic_family) {
42016 case CHIP_CARRIZO:
42017 - device_queue_manager_init_vi(&dqm->ops_asic_specific);
42018 + device_queue_manager_init_vi(dqm);
42019 break;
42020
42021 case CHIP_KAVERI:
42022 - device_queue_manager_init_cik(&dqm->ops_asic_specific);
42023 + device_queue_manager_init_cik(dqm);
42024 break;
42025 }
42026
42027 - if (dqm->ops.initialize(dqm) != 0) {
42028 + if (dqm->ops->initialize(dqm) != 0) {
42029 kfree(dqm);
42030 return NULL;
42031 }
42032 @@ -1244,6 +1252,6 @@ void device_queue_manager_uninit(struct device_queue_manager *dqm)
42033 {
42034 BUG_ON(!dqm);
42035
42036 - dqm->ops.uninitialize(dqm);
42037 + dqm->ops->uninitialize(dqm);
42038 kfree(dqm);
42039 }
42040 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42041 index ec4036a..3ef0646 100644
42042 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42043 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager.h
42044 @@ -154,8 +154,8 @@ struct device_queue_manager_asic_ops {
42045 */
42046
42047 struct device_queue_manager {
42048 - struct device_queue_manager_ops ops;
42049 - struct device_queue_manager_asic_ops ops_asic_specific;
42050 + struct device_queue_manager_ops *ops;
42051 + struct device_queue_manager_asic_ops *ops_asic_specific;
42052
42053 struct mqd_manager *mqds[KFD_MQD_TYPE_MAX];
42054 struct packet_manager packets;
42055 @@ -178,8 +178,8 @@ struct device_queue_manager {
42056 bool active_runlist;
42057 };
42058
42059 -void device_queue_manager_init_cik(struct device_queue_manager_asic_ops *ops);
42060 -void device_queue_manager_init_vi(struct device_queue_manager_asic_ops *ops);
42061 +void device_queue_manager_init_cik(struct device_queue_manager *dqm);
42062 +void device_queue_manager_init_vi(struct device_queue_manager *dqm);
42063 void program_sh_mem_settings(struct device_queue_manager *dqm,
42064 struct qcm_process_device *qpd);
42065 int init_pipelines(struct device_queue_manager *dqm,
42066 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
42067 index 9ce8a20..1ca4e22 100644
42068 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c
42069 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_cik.c
42070 @@ -36,12 +36,16 @@ static int initialize_cpsch_cik(struct device_queue_manager *dqm);
42071 static void init_sdma_vm(struct device_queue_manager *dqm, struct queue *q,
42072 struct qcm_process_device *qpd);
42073
42074 -void device_queue_manager_init_cik(struct device_queue_manager_asic_ops *ops)
42075 +static const struct device_queue_manager_asic_ops cik_dqm_asic_ops = {
42076 + .set_cache_memory_policy = set_cache_memory_policy_cik,
42077 + .register_process = register_process_cik,
42078 + .initialize = initialize_cpsch_cik,
42079 + .init_sdma_vm = init_sdma_vm,
42080 +};
42081 +
42082 +void device_queue_manager_init_cik(struct device_queue_manager *dqm)
42083 {
42084 - ops->set_cache_memory_policy = set_cache_memory_policy_cik;
42085 - ops->register_process = register_process_cik;
42086 - ops->initialize = initialize_cpsch_cik;
42087 - ops->init_sdma_vm = init_sdma_vm;
42088 + dqm->ops_asic_specific = &cik_dqm_asic_ops;
42089 }
42090
42091 static uint32_t compute_sh_mem_bases_64bit(unsigned int top_address_nybble)
42092 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
42093 index 4c15212..61bfab8 100644
42094 --- a/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c
42095 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_device_queue_manager_vi.c
42096 @@ -35,14 +35,18 @@ static int initialize_cpsch_vi(struct device_queue_manager *dqm);
42097 static void init_sdma_vm(struct device_queue_manager *dqm, struct queue *q,
42098 struct qcm_process_device *qpd);
42099
42100 -void device_queue_manager_init_vi(struct device_queue_manager_asic_ops *ops)
42101 +static const struct device_queue_manager_asic_ops vi_dqm_asic_ops = {
42102 + .set_cache_memory_policy = set_cache_memory_policy_vi,
42103 + .register_process = register_process_vi,
42104 + .initialize = initialize_cpsch_vi,
42105 + .init_sdma_vm = init_sdma_vm,
42106 +};
42107 +
42108 +void device_queue_manager_init_vi(struct device_queue_manager *dqm)
42109 {
42110 pr_warn("amdkfd: VI DQM is not currently supported\n");
42111
42112 - ops->set_cache_memory_policy = set_cache_memory_policy_vi;
42113 - ops->register_process = register_process_vi;
42114 - ops->initialize = initialize_cpsch_vi;
42115 - ops->init_sdma_vm = init_sdma_vm;
42116 + dqm->ops_asic_specific = &vi_dqm_asic_ops;
42117 }
42118
42119 static bool set_cache_memory_policy_vi(struct device_queue_manager *dqm,
42120 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42121 index 7f134aa..cd34d4a 100644
42122 --- a/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42123 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_interrupt.c
42124 @@ -50,8 +50,8 @@ static void interrupt_wq(struct work_struct *);
42125
42126 int kfd_interrupt_init(struct kfd_dev *kfd)
42127 {
42128 - void *interrupt_ring = kmalloc_array(KFD_INTERRUPT_RING_SIZE,
42129 - kfd->device_info->ih_ring_entry_size,
42130 + void *interrupt_ring = kmalloc_array(kfd->device_info->ih_ring_entry_size,
42131 + KFD_INTERRUPT_RING_SIZE,
42132 GFP_KERNEL);
42133 if (!interrupt_ring)
42134 return -ENOMEM;
42135 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42136 index 8fa8941..5ae07df 100644
42137 --- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42138 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.c
42139 @@ -56,7 +56,7 @@ static bool initialize(struct kernel_queue *kq, struct kfd_dev *dev,
42140 switch (type) {
42141 case KFD_QUEUE_TYPE_DIQ:
42142 case KFD_QUEUE_TYPE_HIQ:
42143 - kq->mqd = dev->dqm->ops.get_mqd_manager(dev->dqm,
42144 + kq->mqd = dev->dqm->ops->get_mqd_manager(dev->dqm,
42145 KFD_MQD_TYPE_HIQ);
42146 break;
42147 default:
42148 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42149 index 5940531..a75b0e5 100644
42150 --- a/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42151 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_kernel_queue.h
42152 @@ -62,7 +62,7 @@ struct kernel_queue_ops {
42153
42154 void (*submit_packet)(struct kernel_queue *kq);
42155 void (*rollback_packet)(struct kernel_queue *kq);
42156 -};
42157 +} __no_const;
42158
42159 struct kernel_queue {
42160 struct kernel_queue_ops ops;
42161 diff --git a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42162 index 7b69070..d7bd78b 100644
42163 --- a/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42164 +++ b/drivers/gpu/drm/amd/amdkfd/kfd_process_queue_manager.c
42165 @@ -194,7 +194,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42166
42167 if (list_empty(&pqm->queues)) {
42168 pdd->qpd.pqm = pqm;
42169 - dev->dqm->ops.register_process(dev->dqm, &pdd->qpd);
42170 + dev->dqm->ops->register_process(dev->dqm, &pdd->qpd);
42171 }
42172
42173 pqn = kzalloc(sizeof(struct process_queue_node), GFP_KERNEL);
42174 @@ -220,7 +220,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42175 goto err_create_queue;
42176 pqn->q = q;
42177 pqn->kq = NULL;
42178 - retval = dev->dqm->ops.create_queue(dev->dqm, q, &pdd->qpd,
42179 + retval = dev->dqm->ops->create_queue(dev->dqm, q, &pdd->qpd,
42180 &q->properties.vmid);
42181 pr_debug("DQM returned %d for create_queue\n", retval);
42182 print_queue(q);
42183 @@ -234,7 +234,7 @@ int pqm_create_queue(struct process_queue_manager *pqm,
42184 kq->queue->properties.queue_id = *qid;
42185 pqn->kq = kq;
42186 pqn->q = NULL;
42187 - retval = dev->dqm->ops.create_kernel_queue(dev->dqm,
42188 + retval = dev->dqm->ops->create_kernel_queue(dev->dqm,
42189 kq, &pdd->qpd);
42190 break;
42191 default:
42192 @@ -265,7 +265,7 @@ err_allocate_pqn:
42193 /* check if queues list is empty unregister process from device */
42194 clear_bit(*qid, pqm->queue_slot_bitmap);
42195 if (list_empty(&pqm->queues))
42196 - dev->dqm->ops.unregister_process(dev->dqm, &pdd->qpd);
42197 + dev->dqm->ops->unregister_process(dev->dqm, &pdd->qpd);
42198 return retval;
42199 }
42200
42201 @@ -306,13 +306,13 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
42202 if (pqn->kq) {
42203 /* destroy kernel queue (DIQ) */
42204 dqm = pqn->kq->dev->dqm;
42205 - dqm->ops.destroy_kernel_queue(dqm, pqn->kq, &pdd->qpd);
42206 + dqm->ops->destroy_kernel_queue(dqm, pqn->kq, &pdd->qpd);
42207 kernel_queue_uninit(pqn->kq);
42208 }
42209
42210 if (pqn->q) {
42211 dqm = pqn->q->device->dqm;
42212 - retval = dqm->ops.destroy_queue(dqm, &pdd->qpd, pqn->q);
42213 + retval = dqm->ops->destroy_queue(dqm, &pdd->qpd, pqn->q);
42214 if (retval != 0)
42215 return retval;
42216
42217 @@ -324,7 +324,7 @@ int pqm_destroy_queue(struct process_queue_manager *pqm, unsigned int qid)
42218 clear_bit(qid, pqm->queue_slot_bitmap);
42219
42220 if (list_empty(&pqm->queues))
42221 - dqm->ops.unregister_process(dqm, &pdd->qpd);
42222 + dqm->ops->unregister_process(dqm, &pdd->qpd);
42223
42224 return retval;
42225 }
42226 @@ -349,7 +349,7 @@ int pqm_update_queue(struct process_queue_manager *pqm, unsigned int qid,
42227 pqn->q->properties.queue_percent = p->queue_percent;
42228 pqn->q->properties.priority = p->priority;
42229
42230 - retval = pqn->q->device->dqm->ops.update_queue(pqn->q->device->dqm,
42231 + retval = pqn->q->device->dqm->ops->update_queue(pqn->q->device->dqm,
42232 pqn->q);
42233 if (retval != 0)
42234 return retval;
42235 diff --git a/drivers/gpu/drm/drm_context.c b/drivers/gpu/drm/drm_context.c
42236 index 9b23525..65f4110 100644
42237 --- a/drivers/gpu/drm/drm_context.c
42238 +++ b/drivers/gpu/drm/drm_context.c
42239 @@ -53,6 +53,9 @@ struct drm_ctx_list {
42240 */
42241 void drm_legacy_ctxbitmap_free(struct drm_device * dev, int ctx_handle)
42242 {
42243 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42244 + return;
42245 +
42246 mutex_lock(&dev->struct_mutex);
42247 idr_remove(&dev->ctx_idr, ctx_handle);
42248 mutex_unlock(&dev->struct_mutex);
42249 @@ -87,6 +90,9 @@ static int drm_legacy_ctxbitmap_next(struct drm_device * dev)
42250 */
42251 int drm_legacy_ctxbitmap_init(struct drm_device * dev)
42252 {
42253 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42254 + return -EINVAL;
42255 +
42256 idr_init(&dev->ctx_idr);
42257 return 0;
42258 }
42259 @@ -101,6 +107,9 @@ int drm_legacy_ctxbitmap_init(struct drm_device * dev)
42260 */
42261 void drm_legacy_ctxbitmap_cleanup(struct drm_device * dev)
42262 {
42263 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42264 + return;
42265 +
42266 mutex_lock(&dev->struct_mutex);
42267 idr_destroy(&dev->ctx_idr);
42268 mutex_unlock(&dev->struct_mutex);
42269 @@ -119,11 +128,14 @@ void drm_legacy_ctxbitmap_flush(struct drm_device *dev, struct drm_file *file)
42270 {
42271 struct drm_ctx_list *pos, *tmp;
42272
42273 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42274 + return;
42275 +
42276 mutex_lock(&dev->ctxlist_mutex);
42277
42278 list_for_each_entry_safe(pos, tmp, &dev->ctxlist, head) {
42279 if (pos->tag == file &&
42280 - pos->handle != DRM_KERNEL_CONTEXT) {
42281 + _DRM_LOCKING_CONTEXT(pos->handle) != DRM_KERNEL_CONTEXT) {
42282 if (dev->driver->context_dtor)
42283 dev->driver->context_dtor(dev, pos->handle);
42284
42285 @@ -161,6 +173,9 @@ int drm_legacy_getsareactx(struct drm_device *dev, void *data,
42286 struct drm_local_map *map;
42287 struct drm_map_list *_entry;
42288
42289 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42290 + return -EINVAL;
42291 +
42292 mutex_lock(&dev->struct_mutex);
42293
42294 map = idr_find(&dev->ctx_idr, request->ctx_id);
42295 @@ -205,6 +220,9 @@ int drm_legacy_setsareactx(struct drm_device *dev, void *data,
42296 struct drm_local_map *map = NULL;
42297 struct drm_map_list *r_list = NULL;
42298
42299 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42300 + return -EINVAL;
42301 +
42302 mutex_lock(&dev->struct_mutex);
42303 list_for_each_entry(r_list, &dev->maplist, head) {
42304 if (r_list->map
42305 @@ -277,7 +295,13 @@ static int drm_context_switch_complete(struct drm_device *dev,
42306 {
42307 dev->last_context = new; /* PRE/POST: This is the _only_ writer. */
42308
42309 - if (!_DRM_LOCK_IS_HELD(file_priv->master->lock.hw_lock->lock)) {
42310 + if (file_priv->master->lock.hw_lock == NULL) {
42311 + DRM_ERROR(
42312 + "Device has been unregistered. Hard exit. Process %d\n",
42313 + task_pid_nr(current));
42314 + send_sig(SIGTERM, current, 0);
42315 + return -EPERM;
42316 + } else if (!_DRM_LOCK_IS_HELD(file_priv->master->lock.hw_lock->lock)) {
42317 DRM_ERROR("Lock isn't held after context switch\n");
42318 }
42319
42320 @@ -305,6 +329,9 @@ int drm_legacy_resctx(struct drm_device *dev, void *data,
42321 struct drm_ctx ctx;
42322 int i;
42323
42324 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42325 + return -EINVAL;
42326 +
42327 if (res->count >= DRM_RESERVED_CONTEXTS) {
42328 memset(&ctx, 0, sizeof(ctx));
42329 for (i = 0; i < DRM_RESERVED_CONTEXTS; i++) {
42330 @@ -335,8 +362,11 @@ int drm_legacy_addctx(struct drm_device *dev, void *data,
42331 struct drm_ctx_list *ctx_entry;
42332 struct drm_ctx *ctx = data;
42333
42334 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42335 + return -EINVAL;
42336 +
42337 ctx->handle = drm_legacy_ctxbitmap_next(dev);
42338 - if (ctx->handle == DRM_KERNEL_CONTEXT) {
42339 + if (_DRM_LOCKING_CONTEXT(ctx->handle) == DRM_KERNEL_CONTEXT) {
42340 /* Skip kernel's context and get a new one. */
42341 ctx->handle = drm_legacy_ctxbitmap_next(dev);
42342 }
42343 @@ -378,6 +408,9 @@ int drm_legacy_getctx(struct drm_device *dev, void *data,
42344 {
42345 struct drm_ctx *ctx = data;
42346
42347 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42348 + return -EINVAL;
42349 +
42350 /* This is 0, because we don't handle any context flags */
42351 ctx->flags = 0;
42352
42353 @@ -400,6 +433,9 @@ int drm_legacy_switchctx(struct drm_device *dev, void *data,
42354 {
42355 struct drm_ctx *ctx = data;
42356
42357 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42358 + return -EINVAL;
42359 +
42360 DRM_DEBUG("%d\n", ctx->handle);
42361 return drm_context_switch(dev, dev->last_context, ctx->handle);
42362 }
42363 @@ -420,6 +456,9 @@ int drm_legacy_newctx(struct drm_device *dev, void *data,
42364 {
42365 struct drm_ctx *ctx = data;
42366
42367 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42368 + return -EINVAL;
42369 +
42370 DRM_DEBUG("%d\n", ctx->handle);
42371 drm_context_switch_complete(dev, file_priv, ctx->handle);
42372
42373 @@ -442,8 +481,11 @@ int drm_legacy_rmctx(struct drm_device *dev, void *data,
42374 {
42375 struct drm_ctx *ctx = data;
42376
42377 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42378 + return -EINVAL;
42379 +
42380 DRM_DEBUG("%d\n", ctx->handle);
42381 - if (ctx->handle != DRM_KERNEL_CONTEXT) {
42382 + if (_DRM_LOCKING_CONTEXT(ctx->handle) != DRM_KERNEL_CONTEXT) {
42383 if (dev->driver->context_dtor)
42384 dev->driver->context_dtor(dev, ctx->handle);
42385 drm_legacy_ctxbitmap_free(dev, ctx->handle);
42386 diff --git a/drivers/gpu/drm/drm_crtc.c b/drivers/gpu/drm/drm_crtc.c
42387 index 4e8d72d4..ca1459a 100644
42388 --- a/drivers/gpu/drm/drm_crtc.c
42389 +++ b/drivers/gpu/drm/drm_crtc.c
42390 @@ -4174,7 +4174,7 @@ int drm_mode_getproperty_ioctl(struct drm_device *dev,
42391 goto done;
42392 }
42393
42394 - if (copy_to_user(&enum_ptr[copied].name,
42395 + if (copy_to_user(enum_ptr[copied].name,
42396 &prop_enum->name, DRM_PROP_NAME_LEN)) {
42397 ret = -EFAULT;
42398 goto done;
42399 diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
42400 index b7bf4ce..585cf3b 100644
42401 --- a/drivers/gpu/drm/drm_drv.c
42402 +++ b/drivers/gpu/drm/drm_drv.c
42403 @@ -434,7 +434,7 @@ void drm_unplug_dev(struct drm_device *dev)
42404
42405 drm_device_set_unplugged(dev);
42406
42407 - if (dev->open_count == 0) {
42408 + if (local_read(&dev->open_count) == 0) {
42409 drm_put_dev(dev);
42410 }
42411 mutex_unlock(&drm_global_mutex);
42412 @@ -582,10 +582,13 @@ struct drm_device *drm_dev_alloc(struct drm_driver *driver,
42413 if (drm_ht_create(&dev->map_hash, 12))
42414 goto err_minors;
42415
42416 - ret = drm_legacy_ctxbitmap_init(dev);
42417 - if (ret) {
42418 - DRM_ERROR("Cannot allocate memory for context bitmap.\n");
42419 - goto err_ht;
42420 + if (drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT)) {
42421 + ret = drm_legacy_ctxbitmap_init(dev);
42422 + if (ret) {
42423 + DRM_ERROR(
42424 + "Cannot allocate memory for context bitmap.\n");
42425 + goto err_ht;
42426 + }
42427 }
42428
42429 if (drm_core_check_feature(dev, DRIVER_GEM)) {
42430 diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
42431 index c59ce4d..056d413 100644
42432 --- a/drivers/gpu/drm/drm_fops.c
42433 +++ b/drivers/gpu/drm/drm_fops.c
42434 @@ -89,7 +89,7 @@ int drm_open(struct inode *inode, struct file *filp)
42435 return PTR_ERR(minor);
42436
42437 dev = minor->dev;
42438 - if (!dev->open_count++)
42439 + if (local_inc_return(&dev->open_count) == 1)
42440 need_setup = 1;
42441
42442 /* share address_space across all char-devs of a single device */
42443 @@ -106,7 +106,7 @@ int drm_open(struct inode *inode, struct file *filp)
42444 return 0;
42445
42446 err_undo:
42447 - dev->open_count--;
42448 + local_dec(&dev->open_count);
42449 drm_minor_release(minor);
42450 return retcode;
42451 }
42452 @@ -377,7 +377,7 @@ int drm_release(struct inode *inode, struct file *filp)
42453
42454 mutex_lock(&drm_global_mutex);
42455
42456 - DRM_DEBUG("open_count = %d\n", dev->open_count);
42457 + DRM_DEBUG("open_count = %ld\n", local_read(&dev->open_count));
42458
42459 mutex_lock(&dev->struct_mutex);
42460 list_del(&file_priv->lhead);
42461 @@ -392,10 +392,10 @@ int drm_release(struct inode *inode, struct file *filp)
42462 * Begin inline drm_release
42463 */
42464
42465 - DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %d\n",
42466 + DRM_DEBUG("pid = %d, device = 0x%lx, open_count = %ld\n",
42467 task_pid_nr(current),
42468 (long)old_encode_dev(file_priv->minor->kdev->devt),
42469 - dev->open_count);
42470 + local_read(&dev->open_count));
42471
42472 /* if the master has gone away we can't do anything with the lock */
42473 if (file_priv->minor->master)
42474 @@ -465,7 +465,7 @@ int drm_release(struct inode *inode, struct file *filp)
42475 * End inline drm_release
42476 */
42477
42478 - if (!--dev->open_count) {
42479 + if (local_dec_and_test(&dev->open_count)) {
42480 retcode = drm_lastclose(dev);
42481 if (drm_device_is_unplugged(dev))
42482 drm_put_dev(dev);
42483 diff --git a/drivers/gpu/drm/drm_global.c b/drivers/gpu/drm/drm_global.c
42484 index 3d2e91c..d31c4c9 100644
42485 --- a/drivers/gpu/drm/drm_global.c
42486 +++ b/drivers/gpu/drm/drm_global.c
42487 @@ -36,7 +36,7 @@
42488 struct drm_global_item {
42489 struct mutex mutex;
42490 void *object;
42491 - int refcount;
42492 + atomic_t refcount;
42493 };
42494
42495 static struct drm_global_item glob[DRM_GLOBAL_NUM];
42496 @@ -49,7 +49,7 @@ void drm_global_init(void)
42497 struct drm_global_item *item = &glob[i];
42498 mutex_init(&item->mutex);
42499 item->object = NULL;
42500 - item->refcount = 0;
42501 + atomic_set(&item->refcount, 0);
42502 }
42503 }
42504
42505 @@ -59,7 +59,7 @@ void drm_global_release(void)
42506 for (i = 0; i < DRM_GLOBAL_NUM; ++i) {
42507 struct drm_global_item *item = &glob[i];
42508 BUG_ON(item->object != NULL);
42509 - BUG_ON(item->refcount != 0);
42510 + BUG_ON(atomic_read(&item->refcount) != 0);
42511 }
42512 }
42513
42514 @@ -69,7 +69,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
42515 struct drm_global_item *item = &glob[ref->global_type];
42516
42517 mutex_lock(&item->mutex);
42518 - if (item->refcount == 0) {
42519 + if (atomic_read(&item->refcount) == 0) {
42520 item->object = kzalloc(ref->size, GFP_KERNEL);
42521 if (unlikely(item->object == NULL)) {
42522 ret = -ENOMEM;
42523 @@ -82,7 +82,7 @@ int drm_global_item_ref(struct drm_global_reference *ref)
42524 goto out_err;
42525
42526 }
42527 - ++item->refcount;
42528 + atomic_inc(&item->refcount);
42529 ref->object = item->object;
42530 mutex_unlock(&item->mutex);
42531 return 0;
42532 @@ -98,9 +98,9 @@ void drm_global_item_unref(struct drm_global_reference *ref)
42533 struct drm_global_item *item = &glob[ref->global_type];
42534
42535 mutex_lock(&item->mutex);
42536 - BUG_ON(item->refcount == 0);
42537 + BUG_ON(atomic_read(&item->refcount) == 0);
42538 BUG_ON(ref->object != item->object);
42539 - if (--item->refcount == 0) {
42540 + if (atomic_dec_and_test(&item->refcount)) {
42541 ref->release(ref);
42542 item->object = NULL;
42543 }
42544 diff --git a/drivers/gpu/drm/drm_info.c b/drivers/gpu/drm/drm_info.c
42545 index cbb4fc0..5c756cb9 100644
42546 --- a/drivers/gpu/drm/drm_info.c
42547 +++ b/drivers/gpu/drm/drm_info.c
42548 @@ -77,10 +77,13 @@ int drm_vm_info(struct seq_file *m, void *data)
42549 struct drm_local_map *map;
42550 struct drm_map_list *r_list;
42551
42552 - /* Hardcoded from _DRM_FRAME_BUFFER,
42553 - _DRM_REGISTERS, _DRM_SHM, _DRM_AGP, and
42554 - _DRM_SCATTER_GATHER and _DRM_CONSISTENT */
42555 - const char *types[] = { "FB", "REG", "SHM", "AGP", "SG", "PCI" };
42556 + static const char * const types[] = {
42557 + [_DRM_FRAME_BUFFER] = "FB",
42558 + [_DRM_REGISTERS] = "REG",
42559 + [_DRM_SHM] = "SHM",
42560 + [_DRM_AGP] = "AGP",
42561 + [_DRM_SCATTER_GATHER] = "SG",
42562 + [_DRM_CONSISTENT] = "PCI"};
42563 const char *type;
42564 int i;
42565
42566 @@ -91,7 +94,7 @@ int drm_vm_info(struct seq_file *m, void *data)
42567 map = r_list->map;
42568 if (!map)
42569 continue;
42570 - if (map->type < 0 || map->type > 5)
42571 + if (map->type >= ARRAY_SIZE(types))
42572 type = "??";
42573 else
42574 type = types[map->type];
42575 diff --git a/drivers/gpu/drm/drm_ioc32.c b/drivers/gpu/drm/drm_ioc32.c
42576 index 9cfcd0a..7142a7f 100644
42577 --- a/drivers/gpu/drm/drm_ioc32.c
42578 +++ b/drivers/gpu/drm/drm_ioc32.c
42579 @@ -459,7 +459,7 @@ static int compat_drm_infobufs(struct file *file, unsigned int cmd,
42580 request = compat_alloc_user_space(nbytes);
42581 if (!access_ok(VERIFY_WRITE, request, nbytes))
42582 return -EFAULT;
42583 - list = (struct drm_buf_desc *) (request + 1);
42584 + list = (struct drm_buf_desc __user *) (request + 1);
42585
42586 if (__put_user(count, &request->count)
42587 || __put_user(list, &request->list))
42588 @@ -520,7 +520,7 @@ static int compat_drm_mapbufs(struct file *file, unsigned int cmd,
42589 request = compat_alloc_user_space(nbytes);
42590 if (!access_ok(VERIFY_WRITE, request, nbytes))
42591 return -EFAULT;
42592 - list = (struct drm_buf_pub *) (request + 1);
42593 + list = (struct drm_buf_pub __user *) (request + 1);
42594
42595 if (__put_user(count, &request->count)
42596 || __put_user(list, &request->list))
42597 @@ -1075,7 +1075,7 @@ static int compat_drm_mode_addfb2(struct file *file, unsigned int cmd,
42598 return 0;
42599 }
42600
42601 -static drm_ioctl_compat_t *drm_compat_ioctls[] = {
42602 +static drm_ioctl_compat_t drm_compat_ioctls[] = {
42603 [DRM_IOCTL_NR(DRM_IOCTL_VERSION32)] = compat_drm_version,
42604 [DRM_IOCTL_NR(DRM_IOCTL_GET_UNIQUE32)] = compat_drm_getunique,
42605 [DRM_IOCTL_NR(DRM_IOCTL_GET_MAP32)] = compat_drm_getmap,
42606 @@ -1122,7 +1122,6 @@ static drm_ioctl_compat_t *drm_compat_ioctls[] = {
42607 long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
42608 {
42609 unsigned int nr = DRM_IOCTL_NR(cmd);
42610 - drm_ioctl_compat_t *fn;
42611 int ret;
42612
42613 /* Assume that ioctls without an explicit compat routine will just
42614 @@ -1132,10 +1131,8 @@ long drm_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
42615 if (nr >= ARRAY_SIZE(drm_compat_ioctls))
42616 return drm_ioctl(filp, cmd, arg);
42617
42618 - fn = drm_compat_ioctls[nr];
42619 -
42620 - if (fn != NULL)
42621 - ret = (*fn) (filp, cmd, arg);
42622 + if (drm_compat_ioctls[nr] != NULL)
42623 + ret = (*drm_compat_ioctls[nr]) (filp, cmd, arg);
42624 else
42625 ret = drm_ioctl(filp, cmd, arg);
42626
42627 diff --git a/drivers/gpu/drm/drm_ioctl.c b/drivers/gpu/drm/drm_ioctl.c
42628 index b1d303f..c59012c 100644
42629 --- a/drivers/gpu/drm/drm_ioctl.c
42630 +++ b/drivers/gpu/drm/drm_ioctl.c
42631 @@ -650,7 +650,7 @@ long drm_ioctl(struct file *filp,
42632 struct drm_file *file_priv = filp->private_data;
42633 struct drm_device *dev;
42634 const struct drm_ioctl_desc *ioctl = NULL;
42635 - drm_ioctl_t *func;
42636 + drm_ioctl_no_const_t func;
42637 unsigned int nr = DRM_IOCTL_NR(cmd);
42638 int retcode = -EINVAL;
42639 char stack_kdata[128];
42640 diff --git a/drivers/gpu/drm/drm_lock.c b/drivers/gpu/drm/drm_lock.c
42641 index 4924d381..fd3b5ee 100644
42642 --- a/drivers/gpu/drm/drm_lock.c
42643 +++ b/drivers/gpu/drm/drm_lock.c
42644 @@ -61,12 +61,15 @@ int drm_legacy_lock(struct drm_device *dev, void *data,
42645 struct drm_master *master = file_priv->master;
42646 int ret = 0;
42647
42648 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42649 + return -EINVAL;
42650 +
42651 if (drm_core_check_feature(dev, DRIVER_MODESET))
42652 return -EINVAL;
42653
42654 ++file_priv->lock_count;
42655
42656 - if (lock->context == DRM_KERNEL_CONTEXT) {
42657 + if (_DRM_LOCKING_CONTEXT(lock->context) == DRM_KERNEL_CONTEXT) {
42658 DRM_ERROR("Process %d using kernel context %d\n",
42659 task_pid_nr(current), lock->context);
42660 return -EINVAL;
42661 @@ -156,6 +159,9 @@ int drm_legacy_unlock(struct drm_device *dev, void *data, struct drm_file *file_
42662 struct drm_lock *lock = data;
42663 struct drm_master *master = file_priv->master;
42664
42665 + if (!drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT))
42666 + return -EINVAL;
42667 +
42668 if (drm_core_check_feature(dev, DRIVER_MODESET))
42669 return -EINVAL;
42670
42671 @@ -165,6 +171,14 @@ int drm_legacy_unlock(struct drm_device *dev, void *data, struct drm_file *file_
42672 return -EINVAL;
42673 }
42674
42675 + if (!master->lock.hw_lock) {
42676 + DRM_ERROR(
42677 + "Device has been unregistered. Hard exit. Process %d\n",
42678 + task_pid_nr(current));
42679 + send_sig(SIGTERM, current, 0);
42680 + return -EPERM;
42681 + }
42682 +
42683 if (drm_legacy_lock_free(&master->lock, lock->context)) {
42684 /* FIXME: Should really bail out here. */
42685 }
42686 diff --git a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42687 index d4813e0..6c1ab4d 100644
42688 --- a/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42689 +++ b/drivers/gpu/drm/gma500/mdfld_dsi_dpi.c
42690 @@ -825,10 +825,16 @@ void mdfld_dsi_dpi_mode_set(struct drm_encoder *encoder,
42691 u32 pipeconf_reg = PIPEACONF;
42692 u32 dspcntr_reg = DSPACNTR;
42693
42694 - u32 pipeconf = dev_priv->pipeconf[pipe];
42695 - u32 dspcntr = dev_priv->dspcntr[pipe];
42696 + u32 pipeconf;
42697 + u32 dspcntr;
42698 u32 mipi = MIPI_PORT_EN | PASS_FROM_SPHY_TO_AFE | SEL_FLOPPED_HSTX;
42699
42700 + if (pipe == -1)
42701 + return;
42702 +
42703 + pipeconf = dev_priv->pipeconf[pipe];
42704 + dspcntr = dev_priv->dspcntr[pipe];
42705 +
42706 if (pipe) {
42707 pipeconf_reg = PIPECCONF;
42708 dspcntr_reg = DSPCCNTR;
42709 diff --git a/drivers/gpu/drm/i810/i810_drv.h b/drivers/gpu/drm/i810/i810_drv.h
42710 index 93ec5dc..82acbaf 100644
42711 --- a/drivers/gpu/drm/i810/i810_drv.h
42712 +++ b/drivers/gpu/drm/i810/i810_drv.h
42713 @@ -110,8 +110,8 @@ typedef struct drm_i810_private {
42714 int page_flipping;
42715
42716 wait_queue_head_t irq_queue;
42717 - atomic_t irq_received;
42718 - atomic_t irq_emitted;
42719 + atomic_unchecked_t irq_received;
42720 + atomic_unchecked_t irq_emitted;
42721
42722 int front_offset;
42723 } drm_i810_private_t;
42724 diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
42725 index 82bbe3f..ce004bf 100644
42726 --- a/drivers/gpu/drm/i915/i915_debugfs.c
42727 +++ b/drivers/gpu/drm/i915/i915_debugfs.c
42728 @@ -480,7 +480,7 @@ static int i915_gem_object_info(struct seq_file *m, void* data)
42729 seq_printf(m, "%u fault mappable objects, %zu bytes\n",
42730 count, size);
42731
42732 - seq_printf(m, "%zu [%lu] gtt total\n",
42733 + seq_printf(m, "%llu [%llu] gtt total\n",
42734 dev_priv->gtt.base.total,
42735 dev_priv->gtt.mappable_end - dev_priv->gtt.base.start);
42736
42737 diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
42738 index d2df321..f746478 100644
42739 --- a/drivers/gpu/drm/i915/i915_dma.c
42740 +++ b/drivers/gpu/drm/i915/i915_dma.c
42741 @@ -162,6 +162,8 @@ static int i915_getparam(struct drm_device *dev, void *data,
42742 value = INTEL_INFO(dev)->eu_total;
42743 if (!value)
42744 return -ENODEV;
42745 + case I915_PARAM_HAS_LEGACY_CONTEXT:
42746 + value = drm_core_check_feature(dev, DRIVER_KMS_LEGACY_CONTEXT);
42747 break;
42748 default:
42749 DRM_DEBUG("Unknown parameter %d\n", param->param);
42750 @@ -376,7 +378,7 @@ static bool i915_switcheroo_can_switch(struct pci_dev *pdev)
42751 * locking inversion with the driver load path. And the access here is
42752 * completely racy anyway. So don't bother with locking for now.
42753 */
42754 - return dev->open_count == 0;
42755 + return local_read(&dev->open_count) == 0;
42756 }
42757
42758 static const struct vga_switcheroo_client_ops i915_switcheroo_ops = {
42759 diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42760 index 5e6b4a2..6ba2c85 100644
42761 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42762 +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
42763 @@ -935,12 +935,12 @@ i915_gem_check_execbuffer(struct drm_i915_gem_execbuffer2 *exec)
42764 static int
42765 validate_exec_list(struct drm_device *dev,
42766 struct drm_i915_gem_exec_object2 *exec,
42767 - int count)
42768 + unsigned int count)
42769 {
42770 unsigned relocs_total = 0;
42771 unsigned relocs_max = UINT_MAX / sizeof(struct drm_i915_gem_relocation_entry);
42772 unsigned invalid_flags;
42773 - int i;
42774 + unsigned int i;
42775
42776 invalid_flags = __EXEC_OBJECT_UNKNOWN_FLAGS;
42777 if (USES_FULL_PPGTT(dev))
42778 diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.c b/drivers/gpu/drm/i915/i915_gem_gtt.c
42779 index 31e8269..7055934 100644
42780 --- a/drivers/gpu/drm/i915/i915_gem_gtt.c
42781 +++ b/drivers/gpu/drm/i915/i915_gem_gtt.c
42782 @@ -2360,10 +2360,10 @@ static void chv_setup_private_ppat(struct drm_i915_private *dev_priv)
42783 }
42784
42785 static int gen8_gmch_probe(struct drm_device *dev,
42786 - size_t *gtt_total,
42787 - size_t *stolen,
42788 - phys_addr_t *mappable_base,
42789 - unsigned long *mappable_end)
42790 + uint64_t *gtt_total,
42791 + uint64_t *stolen,
42792 + uint64_t *mappable_base,
42793 + uint64_t *mappable_end)
42794 {
42795 struct drm_i915_private *dev_priv = dev->dev_private;
42796 unsigned int gtt_size;
42797 @@ -2408,10 +2408,10 @@ static int gen8_gmch_probe(struct drm_device *dev,
42798 }
42799
42800 static int gen6_gmch_probe(struct drm_device *dev,
42801 - size_t *gtt_total,
42802 - size_t *stolen,
42803 - phys_addr_t *mappable_base,
42804 - unsigned long *mappable_end)
42805 + uint64_t *gtt_total,
42806 + uint64_t *stolen,
42807 + uint64_t *mappable_base,
42808 + uint64_t *mappable_end)
42809 {
42810 struct drm_i915_private *dev_priv = dev->dev_private;
42811 unsigned int gtt_size;
42812 @@ -2425,7 +2425,7 @@ static int gen6_gmch_probe(struct drm_device *dev,
42813 * a coarse sanity check.
42814 */
42815 if ((*mappable_end < (64<<20) || (*mappable_end > (512<<20)))) {
42816 - DRM_ERROR("Unknown GMADR size (%lx)\n",
42817 + DRM_ERROR("Unknown GMADR size (%llx)\n",
42818 dev_priv->gtt.mappable_end);
42819 return -ENXIO;
42820 }
42821 @@ -2459,10 +2459,10 @@ static void gen6_gmch_remove(struct i915_address_space *vm)
42822 }
42823
42824 static int i915_gmch_probe(struct drm_device *dev,
42825 - size_t *gtt_total,
42826 - size_t *stolen,
42827 - phys_addr_t *mappable_base,
42828 - unsigned long *mappable_end)
42829 + uint64_t *gtt_total,
42830 + uint64_t *stolen,
42831 + uint64_t *mappable_base,
42832 + uint64_t *mappable_end)
42833 {
42834 struct drm_i915_private *dev_priv = dev->dev_private;
42835 int ret;
42836 @@ -2527,10 +2527,10 @@ int i915_gem_gtt_init(struct drm_device *dev)
42837 gtt->base.dev = dev;
42838
42839 /* GMADR is the PCI mmio aperture into the global GTT. */
42840 - DRM_INFO("Memory usable by graphics device = %zdM\n",
42841 + DRM_INFO("Memory usable by graphics device = %lldM\n",
42842 gtt->base.total >> 20);
42843 - DRM_DEBUG_DRIVER("GMADR size = %ldM\n", gtt->mappable_end >> 20);
42844 - DRM_DEBUG_DRIVER("GTT stolen size = %zdM\n", gtt->stolen_size >> 20);
42845 + DRM_DEBUG_DRIVER("GMADR size = %lldM\n", gtt->mappable_end >> 20);
42846 + DRM_DEBUG_DRIVER("GTT stolen size = %lldM\n", gtt->stolen_size >> 20);
42847 #ifdef CONFIG_INTEL_IOMMU
42848 if (intel_iommu_gfx_mapped)
42849 DRM_INFO("VT-d active for gfx access\n");
42850 diff --git a/drivers/gpu/drm/i915/i915_gem_gtt.h b/drivers/gpu/drm/i915/i915_gem_gtt.h
42851 index 0d46dd2..1171c00 100644
42852 --- a/drivers/gpu/drm/i915/i915_gem_gtt.h
42853 +++ b/drivers/gpu/drm/i915/i915_gem_gtt.h
42854 @@ -233,8 +233,8 @@ struct i915_address_space {
42855 struct drm_mm mm;
42856 struct drm_device *dev;
42857 struct list_head global_link;
42858 - unsigned long start; /* Start offset always 0 for dri2 */
42859 - size_t total; /* size addr space maps (ex. 2GB for ggtt) */
42860 + uint64_t start; /* Start offset always 0 for dri2 */
42861 + uint64_t total; /* size addr space maps (ex. 2GB for ggtt) */
42862
42863 struct {
42864 dma_addr_t addr;
42865 @@ -300,11 +300,11 @@ struct i915_address_space {
42866 */
42867 struct i915_gtt {
42868 struct i915_address_space base;
42869 - size_t stolen_size; /* Total size of stolen memory */
42870 + uint64_t stolen_size; /* Total size of stolen memory */
42871
42872 - unsigned long mappable_end; /* End offset that we can CPU map */
42873 + uint64_t mappable_end; /* End offset that we can CPU map */
42874 struct io_mapping *mappable; /* Mapping to our CPU mappable region */
42875 - phys_addr_t mappable_base; /* PA of our GMADR */
42876 + uint64_t mappable_base; /* PA of our GMADR */
42877
42878 /** "Graphics Stolen Memory" holds the global PTEs */
42879 void __iomem *gsm;
42880 @@ -314,9 +314,9 @@ struct i915_gtt {
42881 int mtrr;
42882
42883 /* global gtt ops */
42884 - int (*gtt_probe)(struct drm_device *dev, size_t *gtt_total,
42885 - size_t *stolen, phys_addr_t *mappable_base,
42886 - unsigned long *mappable_end);
42887 + int (*gtt_probe)(struct drm_device *dev, uint64_t *gtt_total,
42888 + uint64_t *stolen, uint64_t *mappable_base,
42889 + uint64_t *mappable_end);
42890 };
42891
42892 struct i915_hw_ppgtt {
42893 diff --git a/drivers/gpu/drm/i915/i915_gem_stolen.c b/drivers/gpu/drm/i915/i915_gem_stolen.c
42894 index 8b5b784..78711f6 100644
42895 --- a/drivers/gpu/drm/i915/i915_gem_stolen.c
42896 +++ b/drivers/gpu/drm/i915/i915_gem_stolen.c
42897 @@ -310,7 +310,7 @@ int i915_gem_init_stolen(struct drm_device *dev)
42898 if (dev_priv->mm.stolen_base == 0)
42899 return 0;
42900
42901 - DRM_DEBUG_KMS("found %zd bytes of stolen memory at %08lx\n",
42902 + DRM_DEBUG_KMS("found %lld bytes of stolen memory at %08lx\n",
42903 dev_priv->gtt.stolen_size, dev_priv->mm.stolen_base);
42904
42905 if (INTEL_INFO(dev)->gen >= 8) {
42906 diff --git a/drivers/gpu/drm/i915/i915_ioc32.c b/drivers/gpu/drm/i915/i915_ioc32.c
42907 index 23aa04c..1d25960 100644
42908 --- a/drivers/gpu/drm/i915/i915_ioc32.c
42909 +++ b/drivers/gpu/drm/i915/i915_ioc32.c
42910 @@ -62,7 +62,7 @@ static int compat_i915_batchbuffer(struct file *file, unsigned int cmd,
42911 || __put_user(batchbuffer32.DR4, &batchbuffer->DR4)
42912 || __put_user(batchbuffer32.num_cliprects,
42913 &batchbuffer->num_cliprects)
42914 - || __put_user((int __user *)(unsigned long)batchbuffer32.cliprects,
42915 + || __put_user((struct drm_clip_rect __user *)(unsigned long)batchbuffer32.cliprects,
42916 &batchbuffer->cliprects))
42917 return -EFAULT;
42918
42919 @@ -91,13 +91,13 @@ static int compat_i915_cmdbuffer(struct file *file, unsigned int cmd,
42920
42921 cmdbuffer = compat_alloc_user_space(sizeof(*cmdbuffer));
42922 if (!access_ok(VERIFY_WRITE, cmdbuffer, sizeof(*cmdbuffer))
42923 - || __put_user((int __user *)(unsigned long)cmdbuffer32.buf,
42924 + || __put_user((char __user *)(unsigned long)cmdbuffer32.buf,
42925 &cmdbuffer->buf)
42926 || __put_user(cmdbuffer32.sz, &cmdbuffer->sz)
42927 || __put_user(cmdbuffer32.DR1, &cmdbuffer->DR1)
42928 || __put_user(cmdbuffer32.DR4, &cmdbuffer->DR4)
42929 || __put_user(cmdbuffer32.num_cliprects, &cmdbuffer->num_cliprects)
42930 - || __put_user((int __user *)(unsigned long)cmdbuffer32.cliprects,
42931 + || __put_user((struct drm_clip_rect __user *)(unsigned long)cmdbuffer32.cliprects,
42932 &cmdbuffer->cliprects))
42933 return -EFAULT;
42934
42935 @@ -181,7 +181,7 @@ static int compat_i915_alloc(struct file *file, unsigned int cmd,
42936 (unsigned long)request);
42937 }
42938
42939 -static drm_ioctl_compat_t *i915_compat_ioctls[] = {
42940 +static drm_ioctl_compat_t i915_compat_ioctls[] = {
42941 [DRM_I915_BATCHBUFFER] = compat_i915_batchbuffer,
42942 [DRM_I915_CMDBUFFER] = compat_i915_cmdbuffer,
42943 [DRM_I915_GETPARAM] = compat_i915_getparam,
42944 @@ -201,17 +201,13 @@ static drm_ioctl_compat_t *i915_compat_ioctls[] = {
42945 long i915_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
42946 {
42947 unsigned int nr = DRM_IOCTL_NR(cmd);
42948 - drm_ioctl_compat_t *fn = NULL;
42949 int ret;
42950
42951 if (nr < DRM_COMMAND_BASE || nr >= DRM_COMMAND_END)
42952 return drm_compat_ioctl(filp, cmd, arg);
42953
42954 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(i915_compat_ioctls))
42955 - fn = i915_compat_ioctls[nr - DRM_COMMAND_BASE];
42956 -
42957 - if (fn != NULL)
42958 - ret = (*fn) (filp, cmd, arg);
42959 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(i915_compat_ioctls) && i915_compat_ioctls[nr - DRM_COMMAND_BASE])
42960 + ret = (*i915_compat_ioctls[nr - DRM_COMMAND_BASE])(filp, cmd, arg);
42961 else
42962 ret = drm_ioctl(filp, cmd, arg);
42963
42964 diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
42965 index 10b1b65..4891a7e 100644
42966 --- a/drivers/gpu/drm/i915/intel_display.c
42967 +++ b/drivers/gpu/drm/i915/intel_display.c
42968 @@ -14508,13 +14508,13 @@ struct intel_quirk {
42969 int subsystem_vendor;
42970 int subsystem_device;
42971 void (*hook)(struct drm_device *dev);
42972 -};
42973 +} __do_const;
42974
42975 /* For systems that don't have a meaningful PCI subdevice/subvendor ID */
42976 struct intel_dmi_quirk {
42977 void (*hook)(struct drm_device *dev);
42978 const struct dmi_system_id (*dmi_id_list)[];
42979 -};
42980 +} __do_const;
42981
42982 static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
42983 {
42984 @@ -14522,18 +14522,20 @@ static int intel_dmi_reverse_brightness(const struct dmi_system_id *id)
42985 return 1;
42986 }
42987
42988 -static const struct intel_dmi_quirk intel_dmi_quirks[] = {
42989 +static const struct dmi_system_id intel_dmi_quirks_table[] = {
42990 {
42991 - .dmi_id_list = &(const struct dmi_system_id[]) {
42992 - {
42993 - .callback = intel_dmi_reverse_brightness,
42994 - .ident = "NCR Corporation",
42995 - .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"),
42996 - DMI_MATCH(DMI_PRODUCT_NAME, ""),
42997 - },
42998 - },
42999 - { } /* terminating entry */
43000 + .callback = intel_dmi_reverse_brightness,
43001 + .ident = "NCR Corporation",
43002 + .matches = {DMI_MATCH(DMI_SYS_VENDOR, "NCR Corporation"),
43003 + DMI_MATCH(DMI_PRODUCT_NAME, ""),
43004 },
43005 + },
43006 + { } /* terminating entry */
43007 +};
43008 +
43009 +static const struct intel_dmi_quirk intel_dmi_quirks[] = {
43010 + {
43011 + .dmi_id_list = &intel_dmi_quirks_table,
43012 .hook = quirk_invert_brightness,
43013 },
43014 };
43015 diff --git a/drivers/gpu/drm/imx/imx-drm-core.c b/drivers/gpu/drm/imx/imx-drm-core.c
43016 index 74f505b..21f6914 100644
43017 --- a/drivers/gpu/drm/imx/imx-drm-core.c
43018 +++ b/drivers/gpu/drm/imx/imx-drm-core.c
43019 @@ -355,7 +355,7 @@ int imx_drm_add_crtc(struct drm_device *drm, struct drm_crtc *crtc,
43020 if (imxdrm->pipes >= MAX_CRTC)
43021 return -EINVAL;
43022
43023 - if (imxdrm->drm->open_count)
43024 + if (local_read(&imxdrm->drm->open_count))
43025 return -EBUSY;
43026
43027 imx_drm_crtc = kzalloc(sizeof(*imx_drm_crtc), GFP_KERNEL);
43028 diff --git a/drivers/gpu/drm/mga/mga_drv.h b/drivers/gpu/drm/mga/mga_drv.h
43029 index b4a20149..219ab78 100644
43030 --- a/drivers/gpu/drm/mga/mga_drv.h
43031 +++ b/drivers/gpu/drm/mga/mga_drv.h
43032 @@ -122,9 +122,9 @@ typedef struct drm_mga_private {
43033 u32 clear_cmd;
43034 u32 maccess;
43035
43036 - atomic_t vbl_received; /**< Number of vblanks received. */
43037 + atomic_unchecked_t vbl_received; /**< Number of vblanks received. */
43038 wait_queue_head_t fence_queue;
43039 - atomic_t last_fence_retired;
43040 + atomic_unchecked_t last_fence_retired;
43041 u32 next_fence_to_post;
43042
43043 unsigned int fb_cpp;
43044 diff --git a/drivers/gpu/drm/mga/mga_ioc32.c b/drivers/gpu/drm/mga/mga_ioc32.c
43045 index 729bfd5..14bae78 100644
43046 --- a/drivers/gpu/drm/mga/mga_ioc32.c
43047 +++ b/drivers/gpu/drm/mga/mga_ioc32.c
43048 @@ -190,7 +190,7 @@ static int compat_mga_dma_bootstrap(struct file *file, unsigned int cmd,
43049 return 0;
43050 }
43051
43052 -drm_ioctl_compat_t *mga_compat_ioctls[] = {
43053 +drm_ioctl_compat_t mga_compat_ioctls[] = {
43054 [DRM_MGA_INIT] = compat_mga_init,
43055 [DRM_MGA_GETPARAM] = compat_mga_getparam,
43056 [DRM_MGA_DMA_BOOTSTRAP] = compat_mga_dma_bootstrap,
43057 @@ -208,17 +208,13 @@ drm_ioctl_compat_t *mga_compat_ioctls[] = {
43058 long mga_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43059 {
43060 unsigned int nr = DRM_IOCTL_NR(cmd);
43061 - drm_ioctl_compat_t *fn = NULL;
43062 int ret;
43063
43064 if (nr < DRM_COMMAND_BASE)
43065 return drm_compat_ioctl(filp, cmd, arg);
43066
43067 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(mga_compat_ioctls))
43068 - fn = mga_compat_ioctls[nr - DRM_COMMAND_BASE];
43069 -
43070 - if (fn != NULL)
43071 - ret = (*fn) (filp, cmd, arg);
43072 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(mga_compat_ioctls) && mga_compat_ioctls[nr - DRM_COMMAND_BASE])
43073 + ret = (*mga_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43074 else
43075 ret = drm_ioctl(filp, cmd, arg);
43076
43077 diff --git a/drivers/gpu/drm/mga/mga_irq.c b/drivers/gpu/drm/mga/mga_irq.c
43078 index 1b071b8..de8601a 100644
43079 --- a/drivers/gpu/drm/mga/mga_irq.c
43080 +++ b/drivers/gpu/drm/mga/mga_irq.c
43081 @@ -43,7 +43,7 @@ u32 mga_get_vblank_counter(struct drm_device *dev, int crtc)
43082 if (crtc != 0)
43083 return 0;
43084
43085 - return atomic_read(&dev_priv->vbl_received);
43086 + return atomic_read_unchecked(&dev_priv->vbl_received);
43087 }
43088
43089
43090 @@ -59,7 +59,7 @@ irqreturn_t mga_driver_irq_handler(int irq, void *arg)
43091 /* VBLANK interrupt */
43092 if (status & MGA_VLINEPEN) {
43093 MGA_WRITE(MGA_ICLEAR, MGA_VLINEICLR);
43094 - atomic_inc(&dev_priv->vbl_received);
43095 + atomic_inc_unchecked(&dev_priv->vbl_received);
43096 drm_handle_vblank(dev, 0);
43097 handled = 1;
43098 }
43099 @@ -78,7 +78,7 @@ irqreturn_t mga_driver_irq_handler(int irq, void *arg)
43100 if ((prim_start & ~0x03) != (prim_end & ~0x03))
43101 MGA_WRITE(MGA_PRIMEND, prim_end);
43102
43103 - atomic_inc(&dev_priv->last_fence_retired);
43104 + atomic_inc_unchecked(&dev_priv->last_fence_retired);
43105 wake_up(&dev_priv->fence_queue);
43106 handled = 1;
43107 }
43108 @@ -129,7 +129,7 @@ int mga_driver_fence_wait(struct drm_device *dev, unsigned int *sequence)
43109 * using fences.
43110 */
43111 DRM_WAIT_ON(ret, dev_priv->fence_queue, 3 * HZ,
43112 - (((cur_fence = atomic_read(&dev_priv->last_fence_retired))
43113 + (((cur_fence = atomic_read_unchecked(&dev_priv->last_fence_retired))
43114 - *sequence) <= (1 << 23)));
43115
43116 *sequence = cur_fence;
43117 diff --git a/drivers/gpu/drm/nouveau/nouveau_bios.c b/drivers/gpu/drm/nouveau/nouveau_bios.c
43118 index 0190b69..60c3eaf 100644
43119 --- a/drivers/gpu/drm/nouveau/nouveau_bios.c
43120 +++ b/drivers/gpu/drm/nouveau/nouveau_bios.c
43121 @@ -963,7 +963,7 @@ static int parse_bit_tmds_tbl_entry(struct drm_device *dev, struct nvbios *bios,
43122 struct bit_table {
43123 const char id;
43124 int (* const parse_fn)(struct drm_device *, struct nvbios *, struct bit_entry *);
43125 -};
43126 +} __no_const;
43127
43128 #define BIT_TABLE(id, funcid) ((struct bit_table){ id, parse_bit_##funcid##_tbl_entry })
43129
43130 diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.c b/drivers/gpu/drm/nouveau/nouveau_drm.c
43131 index 477cbb1..109b826 100644
43132 --- a/drivers/gpu/drm/nouveau/nouveau_drm.c
43133 +++ b/drivers/gpu/drm/nouveau/nouveau_drm.c
43134 @@ -946,7 +946,8 @@ static struct drm_driver
43135 driver_stub = {
43136 .driver_features =
43137 DRIVER_USE_AGP |
43138 - DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER,
43139 + DRIVER_GEM | DRIVER_MODESET | DRIVER_PRIME | DRIVER_RENDER |
43140 + DRIVER_KMS_LEGACY_CONTEXT,
43141
43142 .load = nouveau_drm_load,
43143 .unload = nouveau_drm_unload,
43144 diff --git a/drivers/gpu/drm/nouveau/nouveau_drm.h b/drivers/gpu/drm/nouveau/nouveau_drm.h
43145 index dd72652..1fd2368 100644
43146 --- a/drivers/gpu/drm/nouveau/nouveau_drm.h
43147 +++ b/drivers/gpu/drm/nouveau/nouveau_drm.h
43148 @@ -123,7 +123,6 @@ struct nouveau_drm {
43149 struct drm_global_reference mem_global_ref;
43150 struct ttm_bo_global_ref bo_global_ref;
43151 struct ttm_bo_device bdev;
43152 - atomic_t validate_sequence;
43153 int (*move)(struct nouveau_channel *,
43154 struct ttm_buffer_object *,
43155 struct ttm_mem_reg *, struct ttm_mem_reg *);
43156 diff --git a/drivers/gpu/drm/nouveau/nouveau_ioc32.c b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43157 index 462679a..88e32a7 100644
43158 --- a/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43159 +++ b/drivers/gpu/drm/nouveau/nouveau_ioc32.c
43160 @@ -50,7 +50,7 @@ long nouveau_compat_ioctl(struct file *filp, unsigned int cmd,
43161 unsigned long arg)
43162 {
43163 unsigned int nr = DRM_IOCTL_NR(cmd);
43164 - drm_ioctl_compat_t *fn = NULL;
43165 + drm_ioctl_compat_t fn = NULL;
43166 int ret;
43167
43168 if (nr < DRM_COMMAND_BASE)
43169 diff --git a/drivers/gpu/drm/nouveau/nouveau_ttm.c b/drivers/gpu/drm/nouveau/nouveau_ttm.c
43170 index 7464aef3..c63ae4f 100644
43171 --- a/drivers/gpu/drm/nouveau/nouveau_ttm.c
43172 +++ b/drivers/gpu/drm/nouveau/nouveau_ttm.c
43173 @@ -130,11 +130,11 @@ nouveau_vram_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
43174 }
43175
43176 const struct ttm_mem_type_manager_func nouveau_vram_manager = {
43177 - nouveau_vram_manager_init,
43178 - nouveau_vram_manager_fini,
43179 - nouveau_vram_manager_new,
43180 - nouveau_vram_manager_del,
43181 - nouveau_vram_manager_debug
43182 + .init = nouveau_vram_manager_init,
43183 + .takedown = nouveau_vram_manager_fini,
43184 + .get_node = nouveau_vram_manager_new,
43185 + .put_node = nouveau_vram_manager_del,
43186 + .debug = nouveau_vram_manager_debug
43187 };
43188
43189 static int
43190 @@ -207,11 +207,11 @@ nouveau_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
43191 }
43192
43193 const struct ttm_mem_type_manager_func nouveau_gart_manager = {
43194 - nouveau_gart_manager_init,
43195 - nouveau_gart_manager_fini,
43196 - nouveau_gart_manager_new,
43197 - nouveau_gart_manager_del,
43198 - nouveau_gart_manager_debug
43199 + .init = nouveau_gart_manager_init,
43200 + .takedown = nouveau_gart_manager_fini,
43201 + .get_node = nouveau_gart_manager_new,
43202 + .put_node = nouveau_gart_manager_del,
43203 + .debug = nouveau_gart_manager_debug
43204 };
43205
43206 /*XXX*/
43207 @@ -280,11 +280,11 @@ nv04_gart_manager_debug(struct ttm_mem_type_manager *man, const char *prefix)
43208 }
43209
43210 const struct ttm_mem_type_manager_func nv04_gart_manager = {
43211 - nv04_gart_manager_init,
43212 - nv04_gart_manager_fini,
43213 - nv04_gart_manager_new,
43214 - nv04_gart_manager_del,
43215 - nv04_gart_manager_debug
43216 + .init = nv04_gart_manager_init,
43217 + .takedown = nv04_gart_manager_fini,
43218 + .get_node = nv04_gart_manager_new,
43219 + .put_node = nv04_gart_manager_del,
43220 + .debug = nv04_gart_manager_debug
43221 };
43222
43223 int
43224 diff --git a/drivers/gpu/drm/nouveau/nouveau_vga.c b/drivers/gpu/drm/nouveau/nouveau_vga.c
43225 index c7592ec..dd45ebc 100644
43226 --- a/drivers/gpu/drm/nouveau/nouveau_vga.c
43227 +++ b/drivers/gpu/drm/nouveau/nouveau_vga.c
43228 @@ -72,7 +72,7 @@ nouveau_switcheroo_can_switch(struct pci_dev *pdev)
43229 * locking inversion with the driver load path. And the access here is
43230 * completely racy anyway. So don't bother with locking for now.
43231 */
43232 - return dev->open_count == 0;
43233 + return local_read(&dev->open_count) == 0;
43234 }
43235
43236 static const struct vga_switcheroo_client_ops
43237 diff --git a/drivers/gpu/drm/omapdrm/Makefile b/drivers/gpu/drm/omapdrm/Makefile
43238 index 778372b..4b81cb4 100644
43239 --- a/drivers/gpu/drm/omapdrm/Makefile
43240 +++ b/drivers/gpu/drm/omapdrm/Makefile
43241 @@ -3,7 +3,7 @@
43242 # Direct Rendering Infrastructure (DRI)
43243 #
43244
43245 -ccflags-y := -Iinclude/drm -Werror
43246 +ccflags-y := -Iinclude/drm
43247 omapdrm-y := omap_drv.o \
43248 omap_irq.o \
43249 omap_debugfs.o \
43250 diff --git a/drivers/gpu/drm/qxl/qxl_cmd.c b/drivers/gpu/drm/qxl/qxl_cmd.c
43251 index fdc1833..f307630 100644
43252 --- a/drivers/gpu/drm/qxl/qxl_cmd.c
43253 +++ b/drivers/gpu/drm/qxl/qxl_cmd.c
43254 @@ -285,27 +285,27 @@ static int wait_for_io_cmd_user(struct qxl_device *qdev, uint8_t val, long port,
43255 int ret;
43256
43257 mutex_lock(&qdev->async_io_mutex);
43258 - irq_num = atomic_read(&qdev->irq_received_io_cmd);
43259 + irq_num = atomic_read_unchecked(&qdev->irq_received_io_cmd);
43260 if (qdev->last_sent_io_cmd > irq_num) {
43261 if (intr)
43262 ret = wait_event_interruptible_timeout(qdev->io_cmd_event,
43263 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43264 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43265 else
43266 ret = wait_event_timeout(qdev->io_cmd_event,
43267 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43268 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43269 /* 0 is timeout, just bail the "hw" has gone away */
43270 if (ret <= 0)
43271 goto out;
43272 - irq_num = atomic_read(&qdev->irq_received_io_cmd);
43273 + irq_num = atomic_read_unchecked(&qdev->irq_received_io_cmd);
43274 }
43275 outb(val, addr);
43276 qdev->last_sent_io_cmd = irq_num + 1;
43277 if (intr)
43278 ret = wait_event_interruptible_timeout(qdev->io_cmd_event,
43279 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43280 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43281 else
43282 ret = wait_event_timeout(qdev->io_cmd_event,
43283 - atomic_read(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43284 + atomic_read_unchecked(&qdev->irq_received_io_cmd) > irq_num, 5*HZ);
43285 out:
43286 if (ret > 0)
43287 ret = 0;
43288 diff --git a/drivers/gpu/drm/qxl/qxl_debugfs.c b/drivers/gpu/drm/qxl/qxl_debugfs.c
43289 index 6911b8c..89d6867 100644
43290 --- a/drivers/gpu/drm/qxl/qxl_debugfs.c
43291 +++ b/drivers/gpu/drm/qxl/qxl_debugfs.c
43292 @@ -42,10 +42,10 @@ qxl_debugfs_irq_received(struct seq_file *m, void *data)
43293 struct drm_info_node *node = (struct drm_info_node *) m->private;
43294 struct qxl_device *qdev = node->minor->dev->dev_private;
43295
43296 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received));
43297 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_display));
43298 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_cursor));
43299 - seq_printf(m, "%d\n", atomic_read(&qdev->irq_received_io_cmd));
43300 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received));
43301 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_display));
43302 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_cursor));
43303 + seq_printf(m, "%d\n", atomic_read_unchecked(&qdev->irq_received_io_cmd));
43304 seq_printf(m, "%d\n", qdev->irq_received_error);
43305 return 0;
43306 }
43307 diff --git a/drivers/gpu/drm/qxl/qxl_drv.h b/drivers/gpu/drm/qxl/qxl_drv.h
43308 index 01a8694..584fb48 100644
43309 --- a/drivers/gpu/drm/qxl/qxl_drv.h
43310 +++ b/drivers/gpu/drm/qxl/qxl_drv.h
43311 @@ -290,10 +290,10 @@ struct qxl_device {
43312 unsigned int last_sent_io_cmd;
43313
43314 /* interrupt handling */
43315 - atomic_t irq_received;
43316 - atomic_t irq_received_display;
43317 - atomic_t irq_received_cursor;
43318 - atomic_t irq_received_io_cmd;
43319 + atomic_unchecked_t irq_received;
43320 + atomic_unchecked_t irq_received_display;
43321 + atomic_unchecked_t irq_received_cursor;
43322 + atomic_unchecked_t irq_received_io_cmd;
43323 unsigned irq_received_error;
43324 wait_queue_head_t display_event;
43325 wait_queue_head_t cursor_event;
43326 diff --git a/drivers/gpu/drm/qxl/qxl_ioctl.c b/drivers/gpu/drm/qxl/qxl_ioctl.c
43327 index bda5c5f..140ac46 100644
43328 --- a/drivers/gpu/drm/qxl/qxl_ioctl.c
43329 +++ b/drivers/gpu/drm/qxl/qxl_ioctl.c
43330 @@ -183,7 +183,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
43331
43332 /* TODO copy slow path code from i915 */
43333 fb_cmd = qxl_bo_kmap_atomic_page(qdev, cmd_bo, (release->release_offset & PAGE_SIZE));
43334 - 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);
43335 + 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);
43336
43337 {
43338 struct qxl_drawable *draw = fb_cmd;
43339 @@ -203,7 +203,7 @@ static int qxl_process_single_command(struct qxl_device *qdev,
43340 struct drm_qxl_reloc reloc;
43341
43342 if (copy_from_user(&reloc,
43343 - &((struct drm_qxl_reloc *)(uintptr_t)cmd->relocs)[i],
43344 + &((struct drm_qxl_reloc __force_user *)(uintptr_t)cmd->relocs)[i],
43345 sizeof(reloc))) {
43346 ret = -EFAULT;
43347 goto out_free_bos;
43348 @@ -282,10 +282,10 @@ static int qxl_execbuffer_ioctl(struct drm_device *dev, void *data,
43349
43350 for (cmd_num = 0; cmd_num < execbuffer->commands_num; ++cmd_num) {
43351
43352 - struct drm_qxl_command *commands =
43353 - (struct drm_qxl_command *)(uintptr_t)execbuffer->commands;
43354 + struct drm_qxl_command __user *commands =
43355 + (struct drm_qxl_command __user *)(uintptr_t)execbuffer->commands;
43356
43357 - if (copy_from_user(&user_cmd, &commands[cmd_num],
43358 + if (copy_from_user(&user_cmd, (struct drm_qxl_command __force_user *)&commands[cmd_num],
43359 sizeof(user_cmd)))
43360 return -EFAULT;
43361
43362 diff --git a/drivers/gpu/drm/qxl/qxl_irq.c b/drivers/gpu/drm/qxl/qxl_irq.c
43363 index 0bf1e20..42a7310 100644
43364 --- a/drivers/gpu/drm/qxl/qxl_irq.c
43365 +++ b/drivers/gpu/drm/qxl/qxl_irq.c
43366 @@ -36,19 +36,19 @@ irqreturn_t qxl_irq_handler(int irq, void *arg)
43367 if (!pending)
43368 return IRQ_NONE;
43369
43370 - atomic_inc(&qdev->irq_received);
43371 + atomic_inc_unchecked(&qdev->irq_received);
43372
43373 if (pending & QXL_INTERRUPT_DISPLAY) {
43374 - atomic_inc(&qdev->irq_received_display);
43375 + atomic_inc_unchecked(&qdev->irq_received_display);
43376 wake_up_all(&qdev->display_event);
43377 qxl_queue_garbage_collect(qdev, false);
43378 }
43379 if (pending & QXL_INTERRUPT_CURSOR) {
43380 - atomic_inc(&qdev->irq_received_cursor);
43381 + atomic_inc_unchecked(&qdev->irq_received_cursor);
43382 wake_up_all(&qdev->cursor_event);
43383 }
43384 if (pending & QXL_INTERRUPT_IO_CMD) {
43385 - atomic_inc(&qdev->irq_received_io_cmd);
43386 + atomic_inc_unchecked(&qdev->irq_received_io_cmd);
43387 wake_up_all(&qdev->io_cmd_event);
43388 }
43389 if (pending & QXL_INTERRUPT_ERROR) {
43390 @@ -85,10 +85,10 @@ int qxl_irq_init(struct qxl_device *qdev)
43391 init_waitqueue_head(&qdev->io_cmd_event);
43392 INIT_WORK(&qdev->client_monitors_config_work,
43393 qxl_client_monitors_config_work_func);
43394 - atomic_set(&qdev->irq_received, 0);
43395 - atomic_set(&qdev->irq_received_display, 0);
43396 - atomic_set(&qdev->irq_received_cursor, 0);
43397 - atomic_set(&qdev->irq_received_io_cmd, 0);
43398 + atomic_set_unchecked(&qdev->irq_received, 0);
43399 + atomic_set_unchecked(&qdev->irq_received_display, 0);
43400 + atomic_set_unchecked(&qdev->irq_received_cursor, 0);
43401 + atomic_set_unchecked(&qdev->irq_received_io_cmd, 0);
43402 qdev->irq_received_error = 0;
43403 ret = drm_irq_install(qdev->ddev, qdev->ddev->pdev->irq);
43404 qdev->ram_header->int_mask = QXL_INTERRUPT_MASK;
43405 diff --git a/drivers/gpu/drm/qxl/qxl_ttm.c b/drivers/gpu/drm/qxl/qxl_ttm.c
43406 index 0cbc4c9..0e46686 100644
43407 --- a/drivers/gpu/drm/qxl/qxl_ttm.c
43408 +++ b/drivers/gpu/drm/qxl/qxl_ttm.c
43409 @@ -103,7 +103,7 @@ static void qxl_ttm_global_fini(struct qxl_device *qdev)
43410 }
43411 }
43412
43413 -static struct vm_operations_struct qxl_ttm_vm_ops;
43414 +static vm_operations_struct_no_const qxl_ttm_vm_ops __read_only;
43415 static const struct vm_operations_struct *ttm_vm_ops;
43416
43417 static int qxl_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
43418 @@ -145,8 +145,10 @@ int qxl_mmap(struct file *filp, struct vm_area_struct *vma)
43419 return r;
43420 if (unlikely(ttm_vm_ops == NULL)) {
43421 ttm_vm_ops = vma->vm_ops;
43422 + pax_open_kernel();
43423 qxl_ttm_vm_ops = *ttm_vm_ops;
43424 qxl_ttm_vm_ops.fault = &qxl_ttm_fault;
43425 + pax_close_kernel();
43426 }
43427 vma->vm_ops = &qxl_ttm_vm_ops;
43428 return 0;
43429 @@ -464,25 +466,23 @@ static int qxl_mm_dump_table(struct seq_file *m, void *data)
43430 static int qxl_ttm_debugfs_init(struct qxl_device *qdev)
43431 {
43432 #if defined(CONFIG_DEBUG_FS)
43433 - static struct drm_info_list qxl_mem_types_list[QXL_DEBUGFS_MEM_TYPES];
43434 - static char qxl_mem_types_names[QXL_DEBUGFS_MEM_TYPES][32];
43435 - unsigned i;
43436 + static struct drm_info_list qxl_mem_types_list[QXL_DEBUGFS_MEM_TYPES] = {
43437 + {
43438 + .name = "qxl_mem_mm",
43439 + .show = &qxl_mm_dump_table,
43440 + },
43441 + {
43442 + .name = "qxl_surf_mm",
43443 + .show = &qxl_mm_dump_table,
43444 + }
43445 + };
43446
43447 - for (i = 0; i < QXL_DEBUGFS_MEM_TYPES; i++) {
43448 - if (i == 0)
43449 - sprintf(qxl_mem_types_names[i], "qxl_mem_mm");
43450 - else
43451 - sprintf(qxl_mem_types_names[i], "qxl_surf_mm");
43452 - qxl_mem_types_list[i].name = qxl_mem_types_names[i];
43453 - qxl_mem_types_list[i].show = &qxl_mm_dump_table;
43454 - qxl_mem_types_list[i].driver_features = 0;
43455 - if (i == 0)
43456 - qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
43457 - else
43458 - qxl_mem_types_list[i].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
43459 + pax_open_kernel();
43460 + *(void **)&qxl_mem_types_list[0].data = qdev->mman.bdev.man[TTM_PL_VRAM].priv;
43461 + *(void **)&qxl_mem_types_list[1].data = qdev->mman.bdev.man[TTM_PL_PRIV0].priv;
43462 + pax_close_kernel();
43463
43464 - }
43465 - return qxl_debugfs_add_files(qdev, qxl_mem_types_list, i);
43466 + return qxl_debugfs_add_files(qdev, qxl_mem_types_list, QXL_DEBUGFS_MEM_TYPES);
43467 #else
43468 return 0;
43469 #endif
43470 diff --git a/drivers/gpu/drm/r128/r128_cce.c b/drivers/gpu/drm/r128/r128_cce.c
43471 index 2c45ac9..5d740f8 100644
43472 --- a/drivers/gpu/drm/r128/r128_cce.c
43473 +++ b/drivers/gpu/drm/r128/r128_cce.c
43474 @@ -377,7 +377,7 @@ static int r128_do_init_cce(struct drm_device *dev, drm_r128_init_t *init)
43475
43476 /* GH: Simple idle check.
43477 */
43478 - atomic_set(&dev_priv->idle_count, 0);
43479 + atomic_set_unchecked(&dev_priv->idle_count, 0);
43480
43481 /* We don't support anything other than bus-mastering ring mode,
43482 * but the ring can be in either AGP or PCI space for the ring
43483 diff --git a/drivers/gpu/drm/r128/r128_drv.h b/drivers/gpu/drm/r128/r128_drv.h
43484 index 723e5d6..102dbaf 100644
43485 --- a/drivers/gpu/drm/r128/r128_drv.h
43486 +++ b/drivers/gpu/drm/r128/r128_drv.h
43487 @@ -93,14 +93,14 @@ typedef struct drm_r128_private {
43488 int is_pci;
43489 unsigned long cce_buffers_offset;
43490
43491 - atomic_t idle_count;
43492 + atomic_unchecked_t idle_count;
43493
43494 int page_flipping;
43495 int current_page;
43496 u32 crtc_offset;
43497 u32 crtc_offset_cntl;
43498
43499 - atomic_t vbl_received;
43500 + atomic_unchecked_t vbl_received;
43501
43502 u32 color_fmt;
43503 unsigned int front_offset;
43504 diff --git a/drivers/gpu/drm/r128/r128_ioc32.c b/drivers/gpu/drm/r128/r128_ioc32.c
43505 index 663f38c..ec159a1 100644
43506 --- a/drivers/gpu/drm/r128/r128_ioc32.c
43507 +++ b/drivers/gpu/drm/r128/r128_ioc32.c
43508 @@ -178,7 +178,7 @@ static int compat_r128_getparam(struct file *file, unsigned int cmd,
43509 return drm_ioctl(file, DRM_IOCTL_R128_GETPARAM, (unsigned long)getparam);
43510 }
43511
43512 -drm_ioctl_compat_t *r128_compat_ioctls[] = {
43513 +drm_ioctl_compat_t r128_compat_ioctls[] = {
43514 [DRM_R128_INIT] = compat_r128_init,
43515 [DRM_R128_DEPTH] = compat_r128_depth,
43516 [DRM_R128_STIPPLE] = compat_r128_stipple,
43517 @@ -197,17 +197,13 @@ drm_ioctl_compat_t *r128_compat_ioctls[] = {
43518 long r128_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43519 {
43520 unsigned int nr = DRM_IOCTL_NR(cmd);
43521 - drm_ioctl_compat_t *fn = NULL;
43522 int ret;
43523
43524 if (nr < DRM_COMMAND_BASE)
43525 return drm_compat_ioctl(filp, cmd, arg);
43526
43527 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(r128_compat_ioctls))
43528 - fn = r128_compat_ioctls[nr - DRM_COMMAND_BASE];
43529 -
43530 - if (fn != NULL)
43531 - ret = (*fn) (filp, cmd, arg);
43532 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(r128_compat_ioctls) && r128_compat_ioctls[nr - DRM_COMMAND_BASE])
43533 + ret = (*r128_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43534 else
43535 ret = drm_ioctl(filp, cmd, arg);
43536
43537 diff --git a/drivers/gpu/drm/r128/r128_irq.c b/drivers/gpu/drm/r128/r128_irq.c
43538 index c2ae496..30b5993 100644
43539 --- a/drivers/gpu/drm/r128/r128_irq.c
43540 +++ b/drivers/gpu/drm/r128/r128_irq.c
43541 @@ -41,7 +41,7 @@ u32 r128_get_vblank_counter(struct drm_device *dev, int crtc)
43542 if (crtc != 0)
43543 return 0;
43544
43545 - return atomic_read(&dev_priv->vbl_received);
43546 + return atomic_read_unchecked(&dev_priv->vbl_received);
43547 }
43548
43549 irqreturn_t r128_driver_irq_handler(int irq, void *arg)
43550 @@ -55,7 +55,7 @@ irqreturn_t r128_driver_irq_handler(int irq, void *arg)
43551 /* VBLANK interrupt */
43552 if (status & R128_CRTC_VBLANK_INT) {
43553 R128_WRITE(R128_GEN_INT_STATUS, R128_CRTC_VBLANK_INT_AK);
43554 - atomic_inc(&dev_priv->vbl_received);
43555 + atomic_inc_unchecked(&dev_priv->vbl_received);
43556 drm_handle_vblank(dev, 0);
43557 return IRQ_HANDLED;
43558 }
43559 diff --git a/drivers/gpu/drm/r128/r128_state.c b/drivers/gpu/drm/r128/r128_state.c
43560 index 8fd2d9f..18c9660 100644
43561 --- a/drivers/gpu/drm/r128/r128_state.c
43562 +++ b/drivers/gpu/drm/r128/r128_state.c
43563 @@ -320,10 +320,10 @@ static void r128_clear_box(drm_r128_private_t *dev_priv,
43564
43565 static void r128_cce_performance_boxes(drm_r128_private_t *dev_priv)
43566 {
43567 - if (atomic_read(&dev_priv->idle_count) == 0)
43568 + if (atomic_read_unchecked(&dev_priv->idle_count) == 0)
43569 r128_clear_box(dev_priv, 64, 4, 8, 8, 0, 255, 0);
43570 else
43571 - atomic_set(&dev_priv->idle_count, 0);
43572 + atomic_set_unchecked(&dev_priv->idle_count, 0);
43573 }
43574
43575 #endif
43576 diff --git a/drivers/gpu/drm/radeon/mkregtable.c b/drivers/gpu/drm/radeon/mkregtable.c
43577 index b928c17..e5d9400 100644
43578 --- a/drivers/gpu/drm/radeon/mkregtable.c
43579 +++ b/drivers/gpu/drm/radeon/mkregtable.c
43580 @@ -624,14 +624,14 @@ static int parser_auth(struct table *t, const char *filename)
43581 regex_t mask_rex;
43582 regmatch_t match[4];
43583 char buf[1024];
43584 - size_t end;
43585 + long end;
43586 int len;
43587 int done = 0;
43588 int r;
43589 unsigned o;
43590 struct offset *offset;
43591 char last_reg_s[10];
43592 - int last_reg;
43593 + unsigned long last_reg;
43594
43595 if (regcomp
43596 (&mask_rex, "(0x[0-9a-fA-F]*) *([_a-zA-Z0-9]*)", REG_EXTENDED)) {
43597 diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
43598 index d8319da..d6e066f 100644
43599 --- a/drivers/gpu/drm/radeon/radeon_device.c
43600 +++ b/drivers/gpu/drm/radeon/radeon_device.c
43601 @@ -1253,7 +1253,7 @@ static bool radeon_switcheroo_can_switch(struct pci_dev *pdev)
43602 * locking inversion with the driver load path. And the access here is
43603 * completely racy anyway. So don't bother with locking for now.
43604 */
43605 - return dev->open_count == 0;
43606 + return local_read(&dev->open_count) == 0;
43607 }
43608
43609 static const struct vga_switcheroo_client_ops radeon_switcheroo_ops = {
43610 diff --git a/drivers/gpu/drm/radeon/radeon_drv.h b/drivers/gpu/drm/radeon/radeon_drv.h
43611 index 46bd393..6ae4719 100644
43612 --- a/drivers/gpu/drm/radeon/radeon_drv.h
43613 +++ b/drivers/gpu/drm/radeon/radeon_drv.h
43614 @@ -264,7 +264,7 @@ typedef struct drm_radeon_private {
43615
43616 /* SW interrupt */
43617 wait_queue_head_t swi_queue;
43618 - atomic_t swi_emitted;
43619 + atomic_unchecked_t swi_emitted;
43620 int vblank_crtc;
43621 uint32_t irq_enable_reg;
43622 uint32_t r500_disp_irq_reg;
43623 diff --git a/drivers/gpu/drm/radeon/radeon_ioc32.c b/drivers/gpu/drm/radeon/radeon_ioc32.c
43624 index 0b98ea1..a3c770f 100644
43625 --- a/drivers/gpu/drm/radeon/radeon_ioc32.c
43626 +++ b/drivers/gpu/drm/radeon/radeon_ioc32.c
43627 @@ -358,7 +358,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd,
43628 request = compat_alloc_user_space(sizeof(*request));
43629 if (!access_ok(VERIFY_WRITE, request, sizeof(*request))
43630 || __put_user(req32.param, &request->param)
43631 - || __put_user((void __user *)(unsigned long)req32.value,
43632 + || __put_user((unsigned long)req32.value,
43633 &request->value))
43634 return -EFAULT;
43635
43636 @@ -368,7 +368,7 @@ static int compat_radeon_cp_setparam(struct file *file, unsigned int cmd,
43637 #define compat_radeon_cp_setparam NULL
43638 #endif /* X86_64 || IA64 */
43639
43640 -static drm_ioctl_compat_t *radeon_compat_ioctls[] = {
43641 +static drm_ioctl_compat_t radeon_compat_ioctls[] = {
43642 [DRM_RADEON_CP_INIT] = compat_radeon_cp_init,
43643 [DRM_RADEON_CLEAR] = compat_radeon_cp_clear,
43644 [DRM_RADEON_STIPPLE] = compat_radeon_cp_stipple,
43645 @@ -393,17 +393,13 @@ static drm_ioctl_compat_t *radeon_compat_ioctls[] = {
43646 long radeon_compat_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
43647 {
43648 unsigned int nr = DRM_IOCTL_NR(cmd);
43649 - drm_ioctl_compat_t *fn = NULL;
43650 int ret;
43651
43652 if (nr < DRM_COMMAND_BASE)
43653 return drm_compat_ioctl(filp, cmd, arg);
43654
43655 - if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(radeon_compat_ioctls))
43656 - fn = radeon_compat_ioctls[nr - DRM_COMMAND_BASE];
43657 -
43658 - if (fn != NULL)
43659 - ret = (*fn) (filp, cmd, arg);
43660 + if (nr < DRM_COMMAND_BASE + ARRAY_SIZE(radeon_compat_ioctls) && radeon_compat_ioctls[nr - DRM_COMMAND_BASE])
43661 + ret = (*radeon_compat_ioctls[nr - DRM_COMMAND_BASE]) (filp, cmd, arg);
43662 else
43663 ret = drm_ioctl(filp, cmd, arg);
43664
43665 diff --git a/drivers/gpu/drm/radeon/radeon_irq.c b/drivers/gpu/drm/radeon/radeon_irq.c
43666 index 244b19b..c19226d 100644
43667 --- a/drivers/gpu/drm/radeon/radeon_irq.c
43668 +++ b/drivers/gpu/drm/radeon/radeon_irq.c
43669 @@ -226,8 +226,8 @@ static int radeon_emit_irq(struct drm_device * dev)
43670 unsigned int ret;
43671 RING_LOCALS;
43672
43673 - atomic_inc(&dev_priv->swi_emitted);
43674 - ret = atomic_read(&dev_priv->swi_emitted);
43675 + atomic_inc_unchecked(&dev_priv->swi_emitted);
43676 + ret = atomic_read_unchecked(&dev_priv->swi_emitted);
43677
43678 BEGIN_RING(4);
43679 OUT_RING_REG(RADEON_LAST_SWI_REG, ret);
43680 @@ -353,7 +353,7 @@ int radeon_driver_irq_postinstall(struct drm_device *dev)
43681 drm_radeon_private_t *dev_priv =
43682 (drm_radeon_private_t *) dev->dev_private;
43683
43684 - atomic_set(&dev_priv->swi_emitted, 0);
43685 + atomic_set_unchecked(&dev_priv->swi_emitted, 0);
43686 init_waitqueue_head(&dev_priv->swi_queue);
43687
43688 dev->max_vblank_count = 0x001fffff;
43689 diff --git a/drivers/gpu/drm/radeon/radeon_state.c b/drivers/gpu/drm/radeon/radeon_state.c
43690 index 15aee72..cda326e 100644
43691 --- a/drivers/gpu/drm/radeon/radeon_state.c
43692 +++ b/drivers/gpu/drm/radeon/radeon_state.c
43693 @@ -2168,7 +2168,7 @@ static int radeon_cp_clear(struct drm_device *dev, void *data, struct drm_file *
43694 if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS)
43695 sarea_priv->nbox = RADEON_NR_SAREA_CLIPRECTS;
43696
43697 - if (copy_from_user(&depth_boxes, clear->depth_boxes,
43698 + if (sarea_priv->nbox > RADEON_NR_SAREA_CLIPRECTS || copy_from_user(&depth_boxes, clear->depth_boxes,
43699 sarea_priv->nbox * sizeof(depth_boxes[0])))
43700 return -EFAULT;
43701
43702 @@ -3031,7 +3031,7 @@ static int radeon_cp_getparam(struct drm_device *dev, void *data, struct drm_fil
43703 {
43704 drm_radeon_private_t *dev_priv = dev->dev_private;
43705 drm_radeon_getparam_t *param = data;
43706 - int value;
43707 + int value = 0;
43708
43709 DRM_DEBUG("pid=%d\n", DRM_CURRENTPID);
43710
43711 diff --git a/drivers/gpu/drm/radeon/radeon_ttm.c b/drivers/gpu/drm/radeon/radeon_ttm.c
43712 index 06ac59fe..57e0681 100644
43713 --- a/drivers/gpu/drm/radeon/radeon_ttm.c
43714 +++ b/drivers/gpu/drm/radeon/radeon_ttm.c
43715 @@ -961,7 +961,7 @@ void radeon_ttm_set_active_vram_size(struct radeon_device *rdev, u64 size)
43716 man->size = size >> PAGE_SHIFT;
43717 }
43718
43719 -static struct vm_operations_struct radeon_ttm_vm_ops;
43720 +static vm_operations_struct_no_const radeon_ttm_vm_ops __read_only;
43721 static const struct vm_operations_struct *ttm_vm_ops = NULL;
43722
43723 static int radeon_ttm_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
43724 @@ -1002,8 +1002,10 @@ int radeon_mmap(struct file *filp, struct vm_area_struct *vma)
43725 }
43726 if (unlikely(ttm_vm_ops == NULL)) {
43727 ttm_vm_ops = vma->vm_ops;
43728 + pax_open_kernel();
43729 radeon_ttm_vm_ops = *ttm_vm_ops;
43730 radeon_ttm_vm_ops.fault = &radeon_ttm_fault;
43731 + pax_close_kernel();
43732 }
43733 vma->vm_ops = &radeon_ttm_vm_ops;
43734 return 0;
43735 diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c
43736 index a287e4f..df1d5dd 100644
43737 --- a/drivers/gpu/drm/tegra/dc.c
43738 +++ b/drivers/gpu/drm/tegra/dc.c
43739 @@ -1594,7 +1594,7 @@ static int tegra_dc_debugfs_init(struct tegra_dc *dc, struct drm_minor *minor)
43740 }
43741
43742 for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
43743 - dc->debugfs_files[i].data = dc;
43744 + *(void **)&dc->debugfs_files[i].data = dc;
43745
43746 err = drm_debugfs_create_files(dc->debugfs_files,
43747 ARRAY_SIZE(debugfs_files),
43748 diff --git a/drivers/gpu/drm/tegra/dsi.c b/drivers/gpu/drm/tegra/dsi.c
43749 index ed970f6..4eeea42 100644
43750 --- a/drivers/gpu/drm/tegra/dsi.c
43751 +++ b/drivers/gpu/drm/tegra/dsi.c
43752 @@ -62,7 +62,7 @@ struct tegra_dsi {
43753 struct clk *clk_lp;
43754 struct clk *clk;
43755
43756 - struct drm_info_list *debugfs_files;
43757 + drm_info_list_no_const *debugfs_files;
43758 struct drm_minor *minor;
43759 struct dentry *debugfs;
43760
43761 diff --git a/drivers/gpu/drm/tegra/hdmi.c b/drivers/gpu/drm/tegra/hdmi.c
43762 index 06ab178..b5324e4 100644
43763 --- a/drivers/gpu/drm/tegra/hdmi.c
43764 +++ b/drivers/gpu/drm/tegra/hdmi.c
43765 @@ -64,7 +64,7 @@ struct tegra_hdmi {
43766 bool stereo;
43767 bool dvi;
43768
43769 - struct drm_info_list *debugfs_files;
43770 + drm_info_list_no_const *debugfs_files;
43771 struct drm_minor *minor;
43772 struct dentry *debugfs;
43773 };
43774 diff --git a/drivers/gpu/drm/tegra/sor.c b/drivers/gpu/drm/tegra/sor.c
43775 index 7591d89..463e2b6 100644
43776 --- a/drivers/gpu/drm/tegra/sor.c
43777 +++ b/drivers/gpu/drm/tegra/sor.c
43778 @@ -826,8 +826,11 @@ static int tegra_sor_debugfs_init(struct tegra_sor *sor,
43779 goto remove;
43780 }
43781
43782 - for (i = 0; i < ARRAY_SIZE(debugfs_files); i++)
43783 - sor->debugfs_files[i].data = sor;
43784 + for (i = 0; i < ARRAY_SIZE(debugfs_files); i++) {
43785 + pax_open_kernel();
43786 + *(void **)&sor->debugfs_files[i].data = sor;
43787 + pax_close_kernel();
43788 + }
43789
43790 err = drm_debugfs_create_files(sor->debugfs_files,
43791 ARRAY_SIZE(debugfs_files),
43792 diff --git a/drivers/gpu/drm/tilcdc/Makefile b/drivers/gpu/drm/tilcdc/Makefile
43793 index deeca48..54e1b6c 100644
43794 --- a/drivers/gpu/drm/tilcdc/Makefile
43795 +++ b/drivers/gpu/drm/tilcdc/Makefile
43796 @@ -1,7 +1,7 @@
43797 ccflags-y := -Iinclude/drm
43798 -ifeq (, $(findstring -W,$(EXTRA_CFLAGS)))
43799 - ccflags-y += -Werror
43800 -endif
43801 +#ifeq (, $(findstring -W,$(EXTRA_CFLAGS)))
43802 +# ccflags-y += -Werror
43803 +#endif
43804
43805 obj-$(CONFIG_DRM_TILCDC_SLAVE_COMPAT) += tilcdc_slave_compat.o \
43806 tilcdc_slave_compat.dtb.o
43807 diff --git a/drivers/gpu/drm/ttm/ttm_bo_manager.c b/drivers/gpu/drm/ttm/ttm_bo_manager.c
43808 index aa0bd054..aea6a01 100644
43809 --- a/drivers/gpu/drm/ttm/ttm_bo_manager.c
43810 +++ b/drivers/gpu/drm/ttm/ttm_bo_manager.c
43811 @@ -148,10 +148,10 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
43812 }
43813
43814 const struct ttm_mem_type_manager_func ttm_bo_manager_func = {
43815 - ttm_bo_man_init,
43816 - ttm_bo_man_takedown,
43817 - ttm_bo_man_get_node,
43818 - ttm_bo_man_put_node,
43819 - ttm_bo_man_debug
43820 + .init = ttm_bo_man_init,
43821 + .takedown = ttm_bo_man_takedown,
43822 + .get_node = ttm_bo_man_get_node,
43823 + .put_node = ttm_bo_man_put_node,
43824 + .debug = ttm_bo_man_debug
43825 };
43826 EXPORT_SYMBOL(ttm_bo_manager_func);
43827 diff --git a/drivers/gpu/drm/ttm/ttm_memory.c b/drivers/gpu/drm/ttm/ttm_memory.c
43828 index a1803fb..c53f6b0 100644
43829 --- a/drivers/gpu/drm/ttm/ttm_memory.c
43830 +++ b/drivers/gpu/drm/ttm/ttm_memory.c
43831 @@ -264,7 +264,7 @@ static int ttm_mem_init_kernel_zone(struct ttm_mem_global *glob,
43832 zone->glob = glob;
43833 glob->zone_kernel = zone;
43834 ret = kobject_init_and_add(
43835 - &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
43836 + &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, "%s", zone->name);
43837 if (unlikely(ret != 0)) {
43838 kobject_put(&zone->kobj);
43839 return ret;
43840 @@ -348,7 +348,7 @@ static int ttm_mem_init_dma32_zone(struct ttm_mem_global *glob,
43841 zone->glob = glob;
43842 glob->zone_dma32 = zone;
43843 ret = kobject_init_and_add(
43844 - &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, zone->name);
43845 + &zone->kobj, &ttm_mem_zone_kobj_type, &glob->kobj, "%s", zone->name);
43846 if (unlikely(ret != 0)) {
43847 kobject_put(&zone->kobj);
43848 return ret;
43849 diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc.c b/drivers/gpu/drm/ttm/ttm_page_alloc.c
43850 index 025c429..314062f 100644
43851 --- a/drivers/gpu/drm/ttm/ttm_page_alloc.c
43852 +++ b/drivers/gpu/drm/ttm/ttm_page_alloc.c
43853 @@ -54,7 +54,7 @@
43854
43855 #define NUM_PAGES_TO_ALLOC (PAGE_SIZE/sizeof(struct page *))
43856 #define SMALL_ALLOCATION 16
43857 -#define FREE_ALL_PAGES (~0U)
43858 +#define FREE_ALL_PAGES (~0UL)
43859 /* times are in msecs */
43860 #define PAGE_FREE_INTERVAL 1000
43861
43862 @@ -299,15 +299,14 @@ static void ttm_pool_update_free_locked(struct ttm_page_pool *pool,
43863 * @free_all: If set to true will free all pages in pool
43864 * @use_static: Safe to use static buffer
43865 **/
43866 -static int ttm_page_pool_free(struct ttm_page_pool *pool, unsigned nr_free,
43867 +static unsigned long ttm_page_pool_free(struct ttm_page_pool *pool, unsigned long nr_free,
43868 bool use_static)
43869 {
43870 static struct page *static_buf[NUM_PAGES_TO_ALLOC];
43871 unsigned long irq_flags;
43872 struct page *p;
43873 struct page **pages_to_free;
43874 - unsigned freed_pages = 0,
43875 - npages_to_free = nr_free;
43876 + unsigned long freed_pages = 0, npages_to_free = nr_free;
43877
43878 if (NUM_PAGES_TO_ALLOC < nr_free)
43879 npages_to_free = NUM_PAGES_TO_ALLOC;
43880 @@ -371,7 +370,8 @@ restart:
43881 __list_del(&p->lru, &pool->list);
43882
43883 ttm_pool_update_free_locked(pool, freed_pages);
43884 - nr_free -= freed_pages;
43885 + if (likely(nr_free != FREE_ALL_PAGES))
43886 + nr_free -= freed_pages;
43887 }
43888
43889 spin_unlock_irqrestore(&pool->lock, irq_flags);
43890 @@ -399,7 +399,7 @@ ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
43891 unsigned i;
43892 unsigned pool_offset;
43893 struct ttm_page_pool *pool;
43894 - int shrink_pages = sc->nr_to_scan;
43895 + unsigned long shrink_pages = sc->nr_to_scan;
43896 unsigned long freed = 0;
43897
43898 if (!mutex_trylock(&lock))
43899 @@ -407,7 +407,7 @@ ttm_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
43900 pool_offset = ++start_pool % NUM_POOLS;
43901 /* select start pool in round robin fashion */
43902 for (i = 0; i < NUM_POOLS; ++i) {
43903 - unsigned nr_free = shrink_pages;
43904 + unsigned long nr_free = shrink_pages;
43905 if (shrink_pages == 0)
43906 break;
43907 pool = &_manager->pools[(i + pool_offset)%NUM_POOLS];
43908 @@ -673,7 +673,7 @@ out:
43909 }
43910
43911 /* Put all pages in pages list to correct pool to wait for reuse */
43912 -static void ttm_put_pages(struct page **pages, unsigned npages, int flags,
43913 +static void ttm_put_pages(struct page **pages, unsigned long npages, int flags,
43914 enum ttm_caching_state cstate)
43915 {
43916 unsigned long irq_flags;
43917 @@ -728,7 +728,7 @@ static int ttm_get_pages(struct page **pages, unsigned npages, int flags,
43918 struct list_head plist;
43919 struct page *p = NULL;
43920 gfp_t gfp_flags = GFP_USER;
43921 - unsigned count;
43922 + unsigned long count;
43923 int r;
43924
43925 /* set zero flag for page allocation if required */
43926 diff --git a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
43927 index 624d941..106fa1f 100644
43928 --- a/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
43929 +++ b/drivers/gpu/drm/ttm/ttm_page_alloc_dma.c
43930 @@ -56,7 +56,7 @@
43931
43932 #define NUM_PAGES_TO_ALLOC (PAGE_SIZE/sizeof(struct page *))
43933 #define SMALL_ALLOCATION 4
43934 -#define FREE_ALL_PAGES (~0U)
43935 +#define FREE_ALL_PAGES (~0UL)
43936 /* times are in msecs */
43937 #define IS_UNDEFINED (0)
43938 #define IS_WC (1<<1)
43939 @@ -416,7 +416,7 @@ static void ttm_dma_page_put(struct dma_pool *pool, struct dma_page *d_page)
43940 * @nr_free: If set to true will free all pages in pool
43941 * @use_static: Safe to use static buffer
43942 **/
43943 -static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free,
43944 +static unsigned long ttm_dma_page_pool_free(struct dma_pool *pool, unsigned long nr_free,
43945 bool use_static)
43946 {
43947 static struct page *static_buf[NUM_PAGES_TO_ALLOC];
43948 @@ -424,8 +424,7 @@ static unsigned ttm_dma_page_pool_free(struct dma_pool *pool, unsigned nr_free,
43949 struct dma_page *dma_p, *tmp;
43950 struct page **pages_to_free;
43951 struct list_head d_pages;
43952 - unsigned freed_pages = 0,
43953 - npages_to_free = nr_free;
43954 + unsigned long freed_pages = 0, npages_to_free = nr_free;
43955
43956 if (NUM_PAGES_TO_ALLOC < nr_free)
43957 npages_to_free = NUM_PAGES_TO_ALLOC;
43958 @@ -502,7 +501,8 @@ restart:
43959 /* remove range of pages from the pool */
43960 if (freed_pages) {
43961 ttm_pool_update_free_locked(pool, freed_pages);
43962 - nr_free -= freed_pages;
43963 + if (likely(nr_free != FREE_ALL_PAGES))
43964 + nr_free -= freed_pages;
43965 }
43966
43967 spin_unlock_irqrestore(&pool->lock, irq_flags);
43968 @@ -939,7 +939,7 @@ void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev)
43969 struct dma_page *d_page, *next;
43970 enum pool_type type;
43971 bool is_cached = false;
43972 - unsigned count = 0, i, npages = 0;
43973 + unsigned long count = 0, i, npages = 0;
43974 unsigned long irq_flags;
43975
43976 type = ttm_to_type(ttm->page_flags, ttm->caching_state);
43977 @@ -1014,7 +1014,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
43978 static unsigned start_pool;
43979 unsigned idx = 0;
43980 unsigned pool_offset;
43981 - unsigned shrink_pages = sc->nr_to_scan;
43982 + unsigned long shrink_pages = sc->nr_to_scan;
43983 struct device_pools *p;
43984 unsigned long freed = 0;
43985
43986 @@ -1027,7 +1027,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
43987 goto out;
43988 pool_offset = ++start_pool % _manager->npools;
43989 list_for_each_entry(p, &_manager->pools, pools) {
43990 - unsigned nr_free;
43991 + unsigned long nr_free;
43992
43993 if (!p->dev)
43994 continue;
43995 @@ -1041,7 +1041,7 @@ ttm_dma_pool_shrink_scan(struct shrinker *shrink, struct shrink_control *sc)
43996 shrink_pages = ttm_dma_page_pool_free(p->pool, nr_free, true);
43997 freed += nr_free - shrink_pages;
43998
43999 - pr_debug("%s: (%s:%d) Asked to shrink %d, have %d more to go\n",
44000 + pr_debug("%s: (%s:%d) Asked to shrink %lu, have %lu more to go\n",
44001 p->pool->dev_name, p->pool->name, current->pid,
44002 nr_free, shrink_pages);
44003 }
44004 diff --git a/drivers/gpu/drm/udl/udl_fb.c b/drivers/gpu/drm/udl/udl_fb.c
44005 index 5fc16ce..1bd84ec 100644
44006 --- a/drivers/gpu/drm/udl/udl_fb.c
44007 +++ b/drivers/gpu/drm/udl/udl_fb.c
44008 @@ -367,7 +367,6 @@ static int udl_fb_release(struct fb_info *info, int user)
44009 fb_deferred_io_cleanup(info);
44010 kfree(info->fbdefio);
44011 info->fbdefio = NULL;
44012 - info->fbops->fb_mmap = udl_fb_mmap;
44013 }
44014
44015 pr_warn("released /dev/fb%d user=%d count=%d\n",
44016 diff --git a/drivers/gpu/drm/via/via_drv.h b/drivers/gpu/drm/via/via_drv.h
44017 index ef8c500..01030c8 100644
44018 --- a/drivers/gpu/drm/via/via_drv.h
44019 +++ b/drivers/gpu/drm/via/via_drv.h
44020 @@ -53,7 +53,7 @@ typedef struct drm_via_ring_buffer {
44021 typedef uint32_t maskarray_t[5];
44022
44023 typedef struct drm_via_irq {
44024 - atomic_t irq_received;
44025 + atomic_unchecked_t irq_received;
44026 uint32_t pending_mask;
44027 uint32_t enable_mask;
44028 wait_queue_head_t irq_queue;
44029 @@ -77,7 +77,7 @@ typedef struct drm_via_private {
44030 struct timeval last_vblank;
44031 int last_vblank_valid;
44032 unsigned usec_per_vblank;
44033 - atomic_t vbl_received;
44034 + atomic_unchecked_t vbl_received;
44035 drm_via_state_t hc_state;
44036 char pci_buf[VIA_PCI_BUF_SIZE];
44037 const uint32_t *fire_offsets[VIA_FIRE_BUF_SIZE];
44038 diff --git a/drivers/gpu/drm/via/via_irq.c b/drivers/gpu/drm/via/via_irq.c
44039 index 1319433..a993b0c 100644
44040 --- a/drivers/gpu/drm/via/via_irq.c
44041 +++ b/drivers/gpu/drm/via/via_irq.c
44042 @@ -101,7 +101,7 @@ u32 via_get_vblank_counter(struct drm_device *dev, int crtc)
44043 if (crtc != 0)
44044 return 0;
44045
44046 - return atomic_read(&dev_priv->vbl_received);
44047 + return atomic_read_unchecked(&dev_priv->vbl_received);
44048 }
44049
44050 irqreturn_t via_driver_irq_handler(int irq, void *arg)
44051 @@ -116,8 +116,8 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44052
44053 status = VIA_READ(VIA_REG_INTERRUPT);
44054 if (status & VIA_IRQ_VBLANK_PENDING) {
44055 - atomic_inc(&dev_priv->vbl_received);
44056 - if (!(atomic_read(&dev_priv->vbl_received) & 0x0F)) {
44057 + atomic_inc_unchecked(&dev_priv->vbl_received);
44058 + if (!(atomic_read_unchecked(&dev_priv->vbl_received) & 0x0F)) {
44059 do_gettimeofday(&cur_vblank);
44060 if (dev_priv->last_vblank_valid) {
44061 dev_priv->usec_per_vblank =
44062 @@ -127,7 +127,7 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44063 dev_priv->last_vblank = cur_vblank;
44064 dev_priv->last_vblank_valid = 1;
44065 }
44066 - if (!(atomic_read(&dev_priv->vbl_received) & 0xFF)) {
44067 + if (!(atomic_read_unchecked(&dev_priv->vbl_received) & 0xFF)) {
44068 DRM_DEBUG("US per vblank is: %u\n",
44069 dev_priv->usec_per_vblank);
44070 }
44071 @@ -137,7 +137,7 @@ irqreturn_t via_driver_irq_handler(int irq, void *arg)
44072
44073 for (i = 0; i < dev_priv->num_irqs; ++i) {
44074 if (status & cur_irq->pending_mask) {
44075 - atomic_inc(&cur_irq->irq_received);
44076 + atomic_inc_unchecked(&cur_irq->irq_received);
44077 wake_up(&cur_irq->irq_queue);
44078 handled = 1;
44079 if (dev_priv->irq_map[drm_via_irq_dma0_td] == i)
44080 @@ -242,11 +242,11 @@ via_driver_irq_wait(struct drm_device *dev, unsigned int irq, int force_sequence
44081 DRM_WAIT_ON(ret, cur_irq->irq_queue, 3 * HZ,
44082 ((VIA_READ(masks[irq][2]) & masks[irq][3]) ==
44083 masks[irq][4]));
44084 - cur_irq_sequence = atomic_read(&cur_irq->irq_received);
44085 + cur_irq_sequence = atomic_read_unchecked(&cur_irq->irq_received);
44086 } else {
44087 DRM_WAIT_ON(ret, cur_irq->irq_queue, 3 * HZ,
44088 (((cur_irq_sequence =
44089 - atomic_read(&cur_irq->irq_received)) -
44090 + atomic_read_unchecked(&cur_irq->irq_received)) -
44091 *sequence) <= (1 << 23)));
44092 }
44093 *sequence = cur_irq_sequence;
44094 @@ -284,7 +284,7 @@ void via_driver_irq_preinstall(struct drm_device *dev)
44095 }
44096
44097 for (i = 0; i < dev_priv->num_irqs; ++i) {
44098 - atomic_set(&cur_irq->irq_received, 0);
44099 + atomic_set_unchecked(&cur_irq->irq_received, 0);
44100 cur_irq->enable_mask = dev_priv->irq_masks[i][0];
44101 cur_irq->pending_mask = dev_priv->irq_masks[i][1];
44102 init_waitqueue_head(&cur_irq->irq_queue);
44103 @@ -366,7 +366,7 @@ int via_wait_irq(struct drm_device *dev, void *data, struct drm_file *file_priv)
44104 switch (irqwait->request.type & ~VIA_IRQ_FLAGS_MASK) {
44105 case VIA_IRQ_RELATIVE:
44106 irqwait->request.sequence +=
44107 - atomic_read(&cur_irq->irq_received);
44108 + atomic_read_unchecked(&cur_irq->irq_received);
44109 irqwait->request.type &= ~_DRM_VBLANK_RELATIVE;
44110 case VIA_IRQ_ABSOLUTE:
44111 break;
44112 diff --git a/drivers/gpu/drm/virtio/virtgpu_debugfs.c b/drivers/gpu/drm/virtio/virtgpu_debugfs.c
44113 index db8b491..d87b27c 100644
44114 --- a/drivers/gpu/drm/virtio/virtgpu_debugfs.c
44115 +++ b/drivers/gpu/drm/virtio/virtgpu_debugfs.c
44116 @@ -34,7 +34,7 @@ virtio_gpu_debugfs_irq_info(struct seq_file *m, void *data)
44117 struct drm_info_node *node = (struct drm_info_node *) m->private;
44118 struct virtio_gpu_device *vgdev = node->minor->dev->dev_private;
44119
44120 - seq_printf(m, "fence %ld %lld\n",
44121 + seq_printf(m, "fence %lld %lld\n",
44122 atomic64_read(&vgdev->fence_drv.last_seq),
44123 vgdev->fence_drv.sync_seq);
44124 return 0;
44125 diff --git a/drivers/gpu/drm/virtio/virtgpu_fence.c b/drivers/gpu/drm/virtio/virtgpu_fence.c
44126 index 1da6326..98dd385 100644
44127 --- a/drivers/gpu/drm/virtio/virtgpu_fence.c
44128 +++ b/drivers/gpu/drm/virtio/virtgpu_fence.c
44129 @@ -61,7 +61,7 @@ static void virtio_timeline_value_str(struct fence *f, char *str, int size)
44130 {
44131 struct virtio_gpu_fence *fence = to_virtio_fence(f);
44132
44133 - snprintf(str, size, "%lu", atomic64_read(&fence->drv->last_seq));
44134 + snprintf(str, size, "%llu", atomic64_read(&fence->drv->last_seq));
44135 }
44136
44137 static const struct fence_ops virtio_fence_ops = {
44138 diff --git a/drivers/gpu/drm/virtio/virtgpu_ttm.c b/drivers/gpu/drm/virtio/virtgpu_ttm.c
44139 index b092d7b..3bbecd9 100644
44140 --- a/drivers/gpu/drm/virtio/virtgpu_ttm.c
44141 +++ b/drivers/gpu/drm/virtio/virtgpu_ttm.c
44142 @@ -197,11 +197,11 @@ static void ttm_bo_man_debug(struct ttm_mem_type_manager *man,
44143 }
44144
44145 static const struct ttm_mem_type_manager_func virtio_gpu_bo_manager_func = {
44146 - ttm_bo_man_init,
44147 - ttm_bo_man_takedown,
44148 - ttm_bo_man_get_node,
44149 - ttm_bo_man_put_node,
44150 - ttm_bo_man_debug
44151 + .init = &ttm_bo_man_init,
44152 + .takedown = &ttm_bo_man_takedown,
44153 + .get_node = &ttm_bo_man_get_node,
44154 + .put_node = &ttm_bo_man_put_node,
44155 + .debug = &ttm_bo_man_debug
44156 };
44157
44158 static int virtio_gpu_init_mem_type(struct ttm_bo_device *bdev, uint32_t type,
44159 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44160 index d8896ed..f5ca485 100644
44161 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44162 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_drv.h
44163 @@ -447,7 +447,7 @@ struct vmw_private {
44164 * Fencing and IRQs.
44165 */
44166
44167 - atomic_t marker_seq;
44168 + atomic_unchecked_t marker_seq;
44169 wait_queue_head_t fence_queue;
44170 wait_queue_head_t fifo_queue;
44171 spinlock_t waiter_lock;
44172 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44173 index 39f2b03..d1b0a64 100644
44174 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44175 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_fifo.c
44176 @@ -152,7 +152,7 @@ int vmw_fifo_init(struct vmw_private *dev_priv, struct vmw_fifo_state *fifo)
44177 (unsigned int) min,
44178 (unsigned int) fifo->capabilities);
44179
44180 - atomic_set(&dev_priv->marker_seq, dev_priv->last_read_seqno);
44181 + atomic_set_unchecked(&dev_priv->marker_seq, dev_priv->last_read_seqno);
44182 iowrite32(dev_priv->last_read_seqno, fifo_mem + SVGA_FIFO_FENCE);
44183 vmw_marker_queue_init(&fifo->marker_queue);
44184 return vmw_fifo_send_fence(dev_priv, &dummy);
44185 @@ -372,7 +372,7 @@ void *vmw_fifo_reserve(struct vmw_private *dev_priv, uint32_t bytes)
44186 if (reserveable)
44187 iowrite32(bytes, fifo_mem +
44188 SVGA_FIFO_RESERVED);
44189 - return fifo_mem + (next_cmd >> 2);
44190 + return (__le32 __force_kernel *)fifo_mem + (next_cmd >> 2);
44191 } else {
44192 need_bounce = true;
44193 }
44194 @@ -492,7 +492,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
44195
44196 fm = vmw_fifo_reserve(dev_priv, bytes);
44197 if (unlikely(fm == NULL)) {
44198 - *seqno = atomic_read(&dev_priv->marker_seq);
44199 + *seqno = atomic_read_unchecked(&dev_priv->marker_seq);
44200 ret = -ENOMEM;
44201 (void)vmw_fallback_wait(dev_priv, false, true, *seqno,
44202 false, 3*HZ);
44203 @@ -500,7 +500,7 @@ int vmw_fifo_send_fence(struct vmw_private *dev_priv, uint32_t *seqno)
44204 }
44205
44206 do {
44207 - *seqno = atomic_add_return(1, &dev_priv->marker_seq);
44208 + *seqno = atomic_add_return_unchecked(1, &dev_priv->marker_seq);
44209 } while (*seqno == 0);
44210
44211 if (!(fifo_state->capabilities & SVGA_FIFO_CAP_FENCE)) {
44212 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44213 index 170b61b..fec7348 100644
44214 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44215 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmrid_manager.c
44216 @@ -164,9 +164,9 @@ static void vmw_gmrid_man_debug(struct ttm_mem_type_manager *man,
44217 }
44218
44219 const struct ttm_mem_type_manager_func vmw_gmrid_manager_func = {
44220 - vmw_gmrid_man_init,
44221 - vmw_gmrid_man_takedown,
44222 - vmw_gmrid_man_get_node,
44223 - vmw_gmrid_man_put_node,
44224 - vmw_gmrid_man_debug
44225 + .init = vmw_gmrid_man_init,
44226 + .takedown = vmw_gmrid_man_takedown,
44227 + .get_node = vmw_gmrid_man_get_node,
44228 + .put_node = vmw_gmrid_man_put_node,
44229 + .debug = vmw_gmrid_man_debug
44230 };
44231 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
44232 index 69c8ce2..cacb0ab 100644
44233 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
44234 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_ioctl.c
44235 @@ -235,7 +235,7 @@ int vmw_present_ioctl(struct drm_device *dev, void *data,
44236 int ret;
44237
44238 num_clips = arg->num_clips;
44239 - clips_ptr = (struct drm_vmw_rect *)(unsigned long)arg->clips_ptr;
44240 + clips_ptr = (struct drm_vmw_rect __user *)(unsigned long)arg->clips_ptr;
44241
44242 if (unlikely(num_clips == 0))
44243 return 0;
44244 @@ -318,7 +318,7 @@ int vmw_present_readback_ioctl(struct drm_device *dev, void *data,
44245 int ret;
44246
44247 num_clips = arg->num_clips;
44248 - clips_ptr = (struct drm_vmw_rect *)(unsigned long)arg->clips_ptr;
44249 + clips_ptr = (struct drm_vmw_rect __user *)(unsigned long)arg->clips_ptr;
44250
44251 if (unlikely(num_clips == 0))
44252 return 0;
44253 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44254 index 9fe9827..0aa2fc0 100644
44255 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44256 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_irq.c
44257 @@ -102,7 +102,7 @@ bool vmw_seqno_passed(struct vmw_private *dev_priv,
44258 * emitted. Then the fence is stale and signaled.
44259 */
44260
44261 - ret = ((atomic_read(&dev_priv->marker_seq) - seqno)
44262 + ret = ((atomic_read_unchecked(&dev_priv->marker_seq) - seqno)
44263 > VMW_FENCE_WRAP);
44264
44265 return ret;
44266 @@ -133,7 +133,7 @@ int vmw_fallback_wait(struct vmw_private *dev_priv,
44267
44268 if (fifo_idle)
44269 down_read(&fifo_state->rwsem);
44270 - signal_seq = atomic_read(&dev_priv->marker_seq);
44271 + signal_seq = atomic_read_unchecked(&dev_priv->marker_seq);
44272 ret = 0;
44273
44274 for (;;) {
44275 diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c b/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44276 index efd1ffd..0ae13ca 100644
44277 --- a/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44278 +++ b/drivers/gpu/drm/vmwgfx/vmwgfx_marker.c
44279 @@ -135,7 +135,7 @@ int vmw_wait_lag(struct vmw_private *dev_priv,
44280 while (!vmw_lag_lt(queue, us)) {
44281 spin_lock(&queue->lock);
44282 if (list_empty(&queue->head))
44283 - seqno = atomic_read(&dev_priv->marker_seq);
44284 + seqno = atomic_read_unchecked(&dev_priv->marker_seq);
44285 else {
44286 marker = list_first_entry(&queue->head,
44287 struct vmw_marker, head);
44288 diff --git a/drivers/gpu/vga/vga_switcheroo.c b/drivers/gpu/vga/vga_switcheroo.c
44289 index 37ac7b5..d52a5c9 100644
44290 --- a/drivers/gpu/vga/vga_switcheroo.c
44291 +++ b/drivers/gpu/vga/vga_switcheroo.c
44292 @@ -644,7 +644,7 @@ static int vga_switcheroo_runtime_resume(struct device *dev)
44293
44294 /* this version is for the case where the power switch is separate
44295 to the device being powered down. */
44296 -int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain)
44297 +int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain)
44298 {
44299 /* copy over all the bus versions */
44300 if (dev->bus && dev->bus->pm) {
44301 @@ -695,7 +695,7 @@ static int vga_switcheroo_runtime_resume_hdmi_audio(struct device *dev)
44302 return ret;
44303 }
44304
44305 -int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain)
44306 +int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain)
44307 {
44308 /* copy over all the bus versions */
44309 if (dev->bus && dev->bus->pm) {
44310 diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
44311 index e6fce23..85949a0 100644
44312 --- a/drivers/hid/hid-core.c
44313 +++ b/drivers/hid/hid-core.c
44314 @@ -2550,7 +2550,7 @@ EXPORT_SYMBOL_GPL(hid_ignore);
44315
44316 int hid_add_device(struct hid_device *hdev)
44317 {
44318 - static atomic_t id = ATOMIC_INIT(0);
44319 + static atomic_unchecked_t id = ATOMIC_INIT(0);
44320 int ret;
44321
44322 if (WARN_ON(hdev->status & HID_STAT_ADDED))
44323 @@ -2593,7 +2593,7 @@ int hid_add_device(struct hid_device *hdev)
44324 /* XXX hack, any other cleaner solution after the driver core
44325 * is converted to allow more than 20 bytes as the device name? */
44326 dev_set_name(&hdev->dev, "%04X:%04X:%04X.%04X", hdev->bus,
44327 - hdev->vendor, hdev->product, atomic_inc_return(&id));
44328 + hdev->vendor, hdev->product, atomic_inc_return_unchecked(&id));
44329
44330 hid_debug_register(hdev, dev_name(&hdev->dev));
44331 ret = device_add(&hdev->dev);
44332 diff --git a/drivers/hid/hid-sensor-custom.c b/drivers/hid/hid-sensor-custom.c
44333 index 5614fee..8a6f5f6 100644
44334 --- a/drivers/hid/hid-sensor-custom.c
44335 +++ b/drivers/hid/hid-sensor-custom.c
44336 @@ -590,7 +590,7 @@ static int hid_sensor_custom_add_attributes(struct hid_sensor_custom
44337 j = 0;
44338 while (j < HID_CUSTOM_TOTAL_ATTRS &&
44339 hid_custom_attrs[j].name) {
44340 - struct device_attribute *device_attr;
44341 + device_attribute_no_const *device_attr;
44342
44343 device_attr = &sensor_inst->fields[i].sd_attrs[j];
44344
44345 diff --git a/drivers/hid/hid-wiimote-debug.c b/drivers/hid/hid-wiimote-debug.c
44346 index c13fb5b..55a3802 100644
44347 --- a/drivers/hid/hid-wiimote-debug.c
44348 +++ b/drivers/hid/hid-wiimote-debug.c
44349 @@ -66,7 +66,7 @@ static ssize_t wiidebug_eeprom_read(struct file *f, char __user *u, size_t s,
44350 else if (size == 0)
44351 return -EIO;
44352
44353 - if (copy_to_user(u, buf, size))
44354 + if (size > sizeof(buf) || copy_to_user(u, buf, size))
44355 return -EFAULT;
44356
44357 *off += size;
44358 diff --git a/drivers/hv/channel.c b/drivers/hv/channel.c
44359 index 603ce97..7f27468 100644
44360 --- a/drivers/hv/channel.c
44361 +++ b/drivers/hv/channel.c
44362 @@ -382,7 +382,7 @@ int vmbus_establish_gpadl(struct vmbus_channel *channel, void *kbuffer,
44363 int ret = 0;
44364
44365 next_gpadl_handle =
44366 - (atomic_inc_return(&vmbus_connection.next_gpadl_handle) - 1);
44367 + (atomic_inc_return_unchecked(&vmbus_connection.next_gpadl_handle) - 1);
44368
44369 ret = create_gpadl_header(kbuffer, size, &msginfo, &msgcount);
44370 if (ret)
44371 diff --git a/drivers/hv/hv.c b/drivers/hv/hv.c
44372 index d3943bc..597fd1e 100644
44373 --- a/drivers/hv/hv.c
44374 +++ b/drivers/hv/hv.c
44375 @@ -118,7 +118,7 @@ static u64 do_hypercall(u64 control, void *input, void *output)
44376 u64 output_address = (output) ? virt_to_phys(output) : 0;
44377 u32 output_address_hi = output_address >> 32;
44378 u32 output_address_lo = output_address & 0xFFFFFFFF;
44379 - void *hypercall_page = hv_context.hypercall_page;
44380 + void *hypercall_page = (void *)ktva_ktla((unsigned long)hv_context.hypercall_page);
44381
44382 __asm__ __volatile__ ("call *%8" : "=d"(hv_status_hi),
44383 "=a"(hv_status_lo) : "d" (control_hi),
44384 @@ -164,7 +164,7 @@ int hv_init(void)
44385 /* See if the hypercall page is already set */
44386 rdmsrl(HV_X64_MSR_HYPERCALL, hypercall_msr.as_uint64);
44387
44388 - virtaddr = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_EXEC);
44389 + virtaddr = __vmalloc(PAGE_SIZE, GFP_KERNEL, PAGE_KERNEL_RX);
44390
44391 if (!virtaddr)
44392 goto cleanup;
44393 diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
44394 index 8a725cd..91abaf0 100644
44395 --- a/drivers/hv/hv_balloon.c
44396 +++ b/drivers/hv/hv_balloon.c
44397 @@ -469,7 +469,7 @@ MODULE_PARM_DESC(hot_add, "If set attempt memory hot_add");
44398
44399 module_param(pressure_report_delay, uint, (S_IRUGO | S_IWUSR));
44400 MODULE_PARM_DESC(pressure_report_delay, "Delay in secs in reporting pressure");
44401 -static atomic_t trans_id = ATOMIC_INIT(0);
44402 +static atomic_unchecked_t trans_id = ATOMIC_INIT(0);
44403
44404 static int dm_ring_size = (5 * PAGE_SIZE);
44405
44406 @@ -943,7 +943,7 @@ static void hot_add_req(struct work_struct *dummy)
44407 pr_info("Memory hot add failed\n");
44408
44409 dm->state = DM_INITIALIZED;
44410 - resp.hdr.trans_id = atomic_inc_return(&trans_id);
44411 + resp.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44412 vmbus_sendpacket(dm->dev->channel, &resp,
44413 sizeof(struct dm_hot_add_response),
44414 (unsigned long)NULL,
44415 @@ -1024,7 +1024,7 @@ static void post_status(struct hv_dynmem_device *dm)
44416 memset(&status, 0, sizeof(struct dm_status));
44417 status.hdr.type = DM_STATUS_REPORT;
44418 status.hdr.size = sizeof(struct dm_status);
44419 - status.hdr.trans_id = atomic_inc_return(&trans_id);
44420 + status.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44421
44422 /*
44423 * The host expects the guest to report free and committed memory.
44424 @@ -1048,7 +1048,7 @@ static void post_status(struct hv_dynmem_device *dm)
44425 * send the status. This can happen if we were interrupted
44426 * after we picked our transaction ID.
44427 */
44428 - if (status.hdr.trans_id != atomic_read(&trans_id))
44429 + if (status.hdr.trans_id != atomic_read_unchecked(&trans_id))
44430 return;
44431
44432 /*
44433 @@ -1193,7 +1193,7 @@ static void balloon_up(struct work_struct *dummy)
44434 */
44435
44436 do {
44437 - bl_resp->hdr.trans_id = atomic_inc_return(&trans_id);
44438 + bl_resp->hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44439 ret = vmbus_sendpacket(dm_device.dev->channel,
44440 bl_resp,
44441 bl_resp->hdr.size,
44442 @@ -1239,7 +1239,7 @@ static void balloon_down(struct hv_dynmem_device *dm,
44443
44444 memset(&resp, 0, sizeof(struct dm_unballoon_response));
44445 resp.hdr.type = DM_UNBALLOON_RESPONSE;
44446 - resp.hdr.trans_id = atomic_inc_return(&trans_id);
44447 + resp.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44448 resp.hdr.size = sizeof(struct dm_unballoon_response);
44449
44450 vmbus_sendpacket(dm_device.dev->channel, &resp,
44451 @@ -1300,7 +1300,7 @@ static void version_resp(struct hv_dynmem_device *dm,
44452 memset(&version_req, 0, sizeof(struct dm_version_request));
44453 version_req.hdr.type = DM_VERSION_REQUEST;
44454 version_req.hdr.size = sizeof(struct dm_version_request);
44455 - version_req.hdr.trans_id = atomic_inc_return(&trans_id);
44456 + version_req.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44457 version_req.version.version = DYNMEM_PROTOCOL_VERSION_WIN7;
44458 version_req.is_last_attempt = 1;
44459
44460 @@ -1473,7 +1473,7 @@ static int balloon_probe(struct hv_device *dev,
44461 memset(&version_req, 0, sizeof(struct dm_version_request));
44462 version_req.hdr.type = DM_VERSION_REQUEST;
44463 version_req.hdr.size = sizeof(struct dm_version_request);
44464 - version_req.hdr.trans_id = atomic_inc_return(&trans_id);
44465 + version_req.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44466 version_req.version.version = DYNMEM_PROTOCOL_VERSION_WIN8;
44467 version_req.is_last_attempt = 0;
44468
44469 @@ -1504,7 +1504,7 @@ static int balloon_probe(struct hv_device *dev,
44470 memset(&cap_msg, 0, sizeof(struct dm_capabilities));
44471 cap_msg.hdr.type = DM_CAPABILITIES_REPORT;
44472 cap_msg.hdr.size = sizeof(struct dm_capabilities);
44473 - cap_msg.hdr.trans_id = atomic_inc_return(&trans_id);
44474 + cap_msg.hdr.trans_id = atomic_inc_return_unchecked(&trans_id);
44475
44476 cap_msg.caps.cap_bits.balloon = 1;
44477 cap_msg.caps.cap_bits.hot_add = 1;
44478 diff --git a/drivers/hv/hyperv_vmbus.h b/drivers/hv/hyperv_vmbus.h
44479 index cddc0c9..2eb587d 100644
44480 --- a/drivers/hv/hyperv_vmbus.h
44481 +++ b/drivers/hv/hyperv_vmbus.h
44482 @@ -645,7 +645,7 @@ enum vmbus_connect_state {
44483 struct vmbus_connection {
44484 enum vmbus_connect_state conn_state;
44485
44486 - atomic_t next_gpadl_handle;
44487 + atomic_unchecked_t next_gpadl_handle;
44488
44489 struct completion unload_event;
44490 /*
44491 diff --git a/drivers/hwmon/acpi_power_meter.c b/drivers/hwmon/acpi_power_meter.c
44492 index 579bdf9..0dac21d5 100644
44493 --- a/drivers/hwmon/acpi_power_meter.c
44494 +++ b/drivers/hwmon/acpi_power_meter.c
44495 @@ -116,7 +116,7 @@ struct sensor_template {
44496 struct device_attribute *devattr,
44497 const char *buf, size_t count);
44498 int index;
44499 -};
44500 +} __do_const;
44501
44502 /* Averaging interval */
44503 static int update_avg_interval(struct acpi_power_meter_resource *resource)
44504 @@ -631,7 +631,7 @@ static int register_attrs(struct acpi_power_meter_resource *resource,
44505 struct sensor_template *attrs)
44506 {
44507 struct device *dev = &resource->acpi_dev->dev;
44508 - struct sensor_device_attribute *sensors =
44509 + sensor_device_attribute_no_const *sensors =
44510 &resource->sensors[resource->num_sensors];
44511 int res = 0;
44512
44513 @@ -973,7 +973,7 @@ static int __init enable_cap_knobs(const struct dmi_system_id *d)
44514 return 0;
44515 }
44516
44517 -static struct dmi_system_id __initdata pm_dmi_table[] = {
44518 +static const struct dmi_system_id __initconst pm_dmi_table[] = {
44519 {
44520 enable_cap_knobs, "IBM Active Energy Manager",
44521 {
44522 diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
44523 index 0af63da..05a183a 100644
44524 --- a/drivers/hwmon/applesmc.c
44525 +++ b/drivers/hwmon/applesmc.c
44526 @@ -1105,7 +1105,7 @@ static int applesmc_create_nodes(struct applesmc_node_group *groups, int num)
44527 {
44528 struct applesmc_node_group *grp;
44529 struct applesmc_dev_attr *node;
44530 - struct attribute *attr;
44531 + attribute_no_const *attr;
44532 int ret, i;
44533
44534 for (grp = groups; grp->format; grp++) {
44535 diff --git a/drivers/hwmon/asus_atk0110.c b/drivers/hwmon/asus_atk0110.c
44536 index cccef87..06ce8ec 100644
44537 --- a/drivers/hwmon/asus_atk0110.c
44538 +++ b/drivers/hwmon/asus_atk0110.c
44539 @@ -147,10 +147,10 @@ MODULE_DEVICE_TABLE(acpi, atk_ids);
44540 struct atk_sensor_data {
44541 struct list_head list;
44542 struct atk_data *data;
44543 - struct device_attribute label_attr;
44544 - struct device_attribute input_attr;
44545 - struct device_attribute limit1_attr;
44546 - struct device_attribute limit2_attr;
44547 + device_attribute_no_const label_attr;
44548 + device_attribute_no_const input_attr;
44549 + device_attribute_no_const limit1_attr;
44550 + device_attribute_no_const limit2_attr;
44551 char label_attr_name[ATTR_NAME_SIZE];
44552 char input_attr_name[ATTR_NAME_SIZE];
44553 char limit1_attr_name[ATTR_NAME_SIZE];
44554 @@ -270,7 +270,7 @@ static ssize_t atk_name_show(struct device *dev,
44555 static struct device_attribute atk_name_attr =
44556 __ATTR(name, 0444, atk_name_show, NULL);
44557
44558 -static void atk_init_attribute(struct device_attribute *attr, char *name,
44559 +static void atk_init_attribute(device_attribute_no_const *attr, char *name,
44560 sysfs_show_func show)
44561 {
44562 sysfs_attr_init(&attr->attr);
44563 diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
44564 index 3e03379..ec521d3 100644
44565 --- a/drivers/hwmon/coretemp.c
44566 +++ b/drivers/hwmon/coretemp.c
44567 @@ -783,7 +783,7 @@ static int coretemp_cpu_callback(struct notifier_block *nfb,
44568 return NOTIFY_OK;
44569 }
44570
44571 -static struct notifier_block coretemp_cpu_notifier __refdata = {
44572 +static struct notifier_block coretemp_cpu_notifier = {
44573 .notifier_call = coretemp_cpu_callback,
44574 };
44575
44576 diff --git a/drivers/hwmon/dell-smm-hwmon.c b/drivers/hwmon/dell-smm-hwmon.c
44577 index c848789..e9e9217 100644
44578 --- a/drivers/hwmon/dell-smm-hwmon.c
44579 +++ b/drivers/hwmon/dell-smm-hwmon.c
44580 @@ -819,7 +819,7 @@ static const struct i8k_config_data i8k_config_data[] = {
44581 },
44582 };
44583
44584 -static struct dmi_system_id i8k_dmi_table[] __initdata = {
44585 +static const struct dmi_system_id i8k_dmi_table[] __initconst = {
44586 {
44587 .ident = "Dell Inspiron",
44588 .matches = {
44589 diff --git a/drivers/hwmon/ibmaem.c b/drivers/hwmon/ibmaem.c
44590 index 7a8a6fb..015c1fd 100644
44591 --- a/drivers/hwmon/ibmaem.c
44592 +++ b/drivers/hwmon/ibmaem.c
44593 @@ -924,7 +924,7 @@ static int aem_register_sensors(struct aem_data *data,
44594 struct aem_rw_sensor_template *rw)
44595 {
44596 struct device *dev = &data->pdev->dev;
44597 - struct sensor_device_attribute *sensors = data->sensors;
44598 + sensor_device_attribute_no_const *sensors = data->sensors;
44599 int err;
44600
44601 /* Set up read-only sensors */
44602 diff --git a/drivers/hwmon/iio_hwmon.c b/drivers/hwmon/iio_hwmon.c
44603 index 17ae2eb..21b71dd 100644
44604 --- a/drivers/hwmon/iio_hwmon.c
44605 +++ b/drivers/hwmon/iio_hwmon.c
44606 @@ -61,7 +61,7 @@ static int iio_hwmon_probe(struct platform_device *pdev)
44607 {
44608 struct device *dev = &pdev->dev;
44609 struct iio_hwmon_state *st;
44610 - struct sensor_device_attribute *a;
44611 + sensor_device_attribute_no_const *a;
44612 int ret, i;
44613 int in_i = 1, temp_i = 1, curr_i = 1, humidity_i = 1;
44614 enum iio_chan_type type;
44615 diff --git a/drivers/hwmon/nct6683.c b/drivers/hwmon/nct6683.c
44616 index 37f0170..414ec2c 100644
44617 --- a/drivers/hwmon/nct6683.c
44618 +++ b/drivers/hwmon/nct6683.c
44619 @@ -397,11 +397,11 @@ static struct attribute_group *
44620 nct6683_create_attr_group(struct device *dev, struct sensor_template_group *tg,
44621 int repeat)
44622 {
44623 - struct sensor_device_attribute_2 *a2;
44624 - struct sensor_device_attribute *a;
44625 + sensor_device_attribute_2_no_const *a2;
44626 + sensor_device_attribute_no_const *a;
44627 struct sensor_device_template **t;
44628 struct sensor_device_attr_u *su;
44629 - struct attribute_group *group;
44630 + attribute_group_no_const *group;
44631 struct attribute **attrs;
44632 int i, j, count;
44633
44634 diff --git a/drivers/hwmon/nct6775.c b/drivers/hwmon/nct6775.c
44635 index 2aaedbe..e944f14 100644
44636 --- a/drivers/hwmon/nct6775.c
44637 +++ b/drivers/hwmon/nct6775.c
44638 @@ -957,10 +957,10 @@ static struct attribute_group *
44639 nct6775_create_attr_group(struct device *dev, struct sensor_template_group *tg,
44640 int repeat)
44641 {
44642 - struct attribute_group *group;
44643 + attribute_group_no_const *group;
44644 struct sensor_device_attr_u *su;
44645 - struct sensor_device_attribute *a;
44646 - struct sensor_device_attribute_2 *a2;
44647 + sensor_device_attribute_no_const *a;
44648 + sensor_device_attribute_2_no_const *a2;
44649 struct attribute **attrs;
44650 struct sensor_device_template **t;
44651 int i, count;
44652 diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
44653 index f2e47c7..45d7941 100644
44654 --- a/drivers/hwmon/pmbus/pmbus_core.c
44655 +++ b/drivers/hwmon/pmbus/pmbus_core.c
44656 @@ -816,7 +816,7 @@ static int pmbus_add_attribute(struct pmbus_data *data, struct attribute *attr)
44657 return 0;
44658 }
44659
44660 -static void pmbus_dev_attr_init(struct device_attribute *dev_attr,
44661 +static void pmbus_dev_attr_init(device_attribute_no_const *dev_attr,
44662 const char *name,
44663 umode_t mode,
44664 ssize_t (*show)(struct device *dev,
44665 @@ -833,7 +833,7 @@ static void pmbus_dev_attr_init(struct device_attribute *dev_attr,
44666 dev_attr->store = store;
44667 }
44668
44669 -static void pmbus_attr_init(struct sensor_device_attribute *a,
44670 +static void pmbus_attr_init(sensor_device_attribute_no_const *a,
44671 const char *name,
44672 umode_t mode,
44673 ssize_t (*show)(struct device *dev,
44674 @@ -855,7 +855,7 @@ static int pmbus_add_boolean(struct pmbus_data *data,
44675 u16 reg, u8 mask)
44676 {
44677 struct pmbus_boolean *boolean;
44678 - struct sensor_device_attribute *a;
44679 + sensor_device_attribute_no_const *a;
44680
44681 boolean = devm_kzalloc(data->dev, sizeof(*boolean), GFP_KERNEL);
44682 if (!boolean)
44683 @@ -880,7 +880,7 @@ static struct pmbus_sensor *pmbus_add_sensor(struct pmbus_data *data,
44684 bool update, bool readonly)
44685 {
44686 struct pmbus_sensor *sensor;
44687 - struct device_attribute *a;
44688 + device_attribute_no_const *a;
44689
44690 sensor = devm_kzalloc(data->dev, sizeof(*sensor), GFP_KERNEL);
44691 if (!sensor)
44692 @@ -911,7 +911,7 @@ static int pmbus_add_label(struct pmbus_data *data,
44693 const char *lstring, int index)
44694 {
44695 struct pmbus_label *label;
44696 - struct device_attribute *a;
44697 + device_attribute_no_const *a;
44698
44699 label = devm_kzalloc(data->dev, sizeof(*label), GFP_KERNEL);
44700 if (!label)
44701 diff --git a/drivers/hwmon/sht15.c b/drivers/hwmon/sht15.c
44702 index 497a7f8..3fffedf 100644
44703 --- a/drivers/hwmon/sht15.c
44704 +++ b/drivers/hwmon/sht15.c
44705 @@ -169,7 +169,7 @@ struct sht15_data {
44706 int supply_uv;
44707 bool supply_uv_valid;
44708 struct work_struct update_supply_work;
44709 - atomic_t interrupt_handled;
44710 + atomic_unchecked_t interrupt_handled;
44711 };
44712
44713 /**
44714 @@ -542,13 +542,13 @@ static int sht15_measurement(struct sht15_data *data,
44715 ret = gpio_direction_input(data->pdata->gpio_data);
44716 if (ret)
44717 return ret;
44718 - atomic_set(&data->interrupt_handled, 0);
44719 + atomic_set_unchecked(&data->interrupt_handled, 0);
44720
44721 enable_irq(gpio_to_irq(data->pdata->gpio_data));
44722 if (gpio_get_value(data->pdata->gpio_data) == 0) {
44723 disable_irq_nosync(gpio_to_irq(data->pdata->gpio_data));
44724 /* Only relevant if the interrupt hasn't occurred. */
44725 - if (!atomic_read(&data->interrupt_handled))
44726 + if (!atomic_read_unchecked(&data->interrupt_handled))
44727 schedule_work(&data->read_work);
44728 }
44729 ret = wait_event_timeout(data->wait_queue,
44730 @@ -820,7 +820,7 @@ static irqreturn_t sht15_interrupt_fired(int irq, void *d)
44731
44732 /* First disable the interrupt */
44733 disable_irq_nosync(irq);
44734 - atomic_inc(&data->interrupt_handled);
44735 + atomic_inc_unchecked(&data->interrupt_handled);
44736 /* Then schedule a reading work struct */
44737 if (data->state != SHT15_READING_NOTHING)
44738 schedule_work(&data->read_work);
44739 @@ -842,11 +842,11 @@ static void sht15_bh_read_data(struct work_struct *work_s)
44740 * If not, then start the interrupt again - care here as could
44741 * have gone low in meantime so verify it hasn't!
44742 */
44743 - atomic_set(&data->interrupt_handled, 0);
44744 + atomic_set_unchecked(&data->interrupt_handled, 0);
44745 enable_irq(gpio_to_irq(data->pdata->gpio_data));
44746 /* If still not occurred or another handler was scheduled */
44747 if (gpio_get_value(data->pdata->gpio_data)
44748 - || atomic_read(&data->interrupt_handled))
44749 + || atomic_read_unchecked(&data->interrupt_handled))
44750 return;
44751 }
44752
44753 diff --git a/drivers/hwmon/via-cputemp.c b/drivers/hwmon/via-cputemp.c
44754 index ac91c07..8e69663 100644
44755 --- a/drivers/hwmon/via-cputemp.c
44756 +++ b/drivers/hwmon/via-cputemp.c
44757 @@ -295,7 +295,7 @@ static int via_cputemp_cpu_callback(struct notifier_block *nfb,
44758 return NOTIFY_OK;
44759 }
44760
44761 -static struct notifier_block via_cputemp_cpu_notifier __refdata = {
44762 +static struct notifier_block via_cputemp_cpu_notifier = {
44763 .notifier_call = via_cputemp_cpu_callback,
44764 };
44765
44766 diff --git a/drivers/i2c/busses/i2c-amd756-s4882.c b/drivers/i2c/busses/i2c-amd756-s4882.c
44767 index 65e3240..e6c511d 100644
44768 --- a/drivers/i2c/busses/i2c-amd756-s4882.c
44769 +++ b/drivers/i2c/busses/i2c-amd756-s4882.c
44770 @@ -39,7 +39,7 @@
44771 extern struct i2c_adapter amd756_smbus;
44772
44773 static struct i2c_adapter *s4882_adapter;
44774 -static struct i2c_algorithm *s4882_algo;
44775 +static i2c_algorithm_no_const *s4882_algo;
44776
44777 /* Wrapper access functions for multiplexed SMBus */
44778 static DEFINE_MUTEX(amd756_lock);
44779 diff --git a/drivers/i2c/busses/i2c-nforce2-s4985.c b/drivers/i2c/busses/i2c-nforce2-s4985.c
44780 index 88eda09..cf40434 100644
44781 --- a/drivers/i2c/busses/i2c-nforce2-s4985.c
44782 +++ b/drivers/i2c/busses/i2c-nforce2-s4985.c
44783 @@ -37,7 +37,7 @@
44784 extern struct i2c_adapter *nforce2_smbus;
44785
44786 static struct i2c_adapter *s4985_adapter;
44787 -static struct i2c_algorithm *s4985_algo;
44788 +static i2c_algorithm_no_const *s4985_algo;
44789
44790 /* Wrapper access functions for multiplexed SMBus */
44791 static DEFINE_MUTEX(nforce2_lock);
44792 diff --git a/drivers/i2c/i2c-dev.c b/drivers/i2c/i2c-dev.c
44793 index 71c7a39..71dd3e0 100644
44794 --- a/drivers/i2c/i2c-dev.c
44795 +++ b/drivers/i2c/i2c-dev.c
44796 @@ -272,7 +272,7 @@ static noinline int i2cdev_ioctl_rdrw(struct i2c_client *client,
44797 break;
44798 }
44799
44800 - data_ptrs[i] = (u8 __user *)rdwr_pa[i].buf;
44801 + data_ptrs[i] = (u8 __force_user *)rdwr_pa[i].buf;
44802 rdwr_pa[i].buf = memdup_user(data_ptrs[i], rdwr_pa[i].len);
44803 if (IS_ERR(rdwr_pa[i].buf)) {
44804 res = PTR_ERR(rdwr_pa[i].buf);
44805 diff --git a/drivers/ide/ide-cd.c b/drivers/ide/ide-cd.c
44806 index 64a6b82..a524354 100644
44807 --- a/drivers/ide/ide-cd.c
44808 +++ b/drivers/ide/ide-cd.c
44809 @@ -768,7 +768,7 @@ static void cdrom_do_block_pc(ide_drive_t *drive, struct request *rq)
44810 alignment = queue_dma_alignment(q) | q->dma_pad_mask;
44811 if ((unsigned long)buf & alignment
44812 || blk_rq_bytes(rq) & q->dma_pad_mask
44813 - || object_is_on_stack(buf))
44814 + || object_starts_on_stack(buf))
44815 drive->dma = 0;
44816 }
44817 }
44818 diff --git a/drivers/ide/ide-disk.c b/drivers/ide/ide-disk.c
44819 index 56b9708..980b63b 100644
44820 --- a/drivers/ide/ide-disk.c
44821 +++ b/drivers/ide/ide-disk.c
44822 @@ -178,7 +178,7 @@ static ide_startstop_t __ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
44823 * 1073741822 == 549756 MB or 48bit addressing fake drive
44824 */
44825
44826 -static ide_startstop_t ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
44827 +static ide_startstop_t __intentional_overflow(-1) ide_do_rw_disk(ide_drive_t *drive, struct request *rq,
44828 sector_t block)
44829 {
44830 ide_hwif_t *hwif = drive->hwif;
44831 diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
44832 index 3524b0d..8c14520 100644
44833 --- a/drivers/iio/industrialio-core.c
44834 +++ b/drivers/iio/industrialio-core.c
44835 @@ -576,7 +576,7 @@ static ssize_t iio_write_channel_info(struct device *dev,
44836 }
44837
44838 static
44839 -int __iio_device_attr_init(struct device_attribute *dev_attr,
44840 +int __iio_device_attr_init(device_attribute_no_const *dev_attr,
44841 const char *postfix,
44842 struct iio_chan_spec const *chan,
44843 ssize_t (*readfunc)(struct device *dev,
44844 diff --git a/drivers/iio/magnetometer/ak8975.c b/drivers/iio/magnetometer/ak8975.c
44845 index b13936d..65322b2 100644
44846 --- a/drivers/iio/magnetometer/ak8975.c
44847 +++ b/drivers/iio/magnetometer/ak8975.c
44848 @@ -776,7 +776,7 @@ static int ak8975_probe(struct i2c_client *client,
44849 name = id->name;
44850 } else if (ACPI_HANDLE(&client->dev))
44851 name = ak8975_match_acpi_device(&client->dev, &chipset);
44852 - else
44853 + if (!name)
44854 return -ENOSYS;
44855
44856 if (chipset >= AK_MAX_TYPE) {
44857 diff --git a/drivers/infiniband/core/cm.c b/drivers/infiniband/core/cm.c
44858 index 8be7352..02f9653 100644
44859 --- a/drivers/infiniband/core/cm.c
44860 +++ b/drivers/infiniband/core/cm.c
44861 @@ -115,7 +115,7 @@ static char const counter_group_names[CM_COUNTER_GROUPS]
44862
44863 struct cm_counter_group {
44864 struct kobject obj;
44865 - atomic_long_t counter[CM_ATTR_COUNT];
44866 + atomic_long_unchecked_t counter[CM_ATTR_COUNT];
44867 };
44868
44869 struct cm_counter_attribute {
44870 @@ -1416,7 +1416,7 @@ static void cm_dup_req_handler(struct cm_work *work,
44871 struct ib_mad_send_buf *msg = NULL;
44872 int ret;
44873
44874 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44875 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44876 counter[CM_REQ_COUNTER]);
44877
44878 /* Quick state check to discard duplicate REQs. */
44879 @@ -1803,7 +1803,7 @@ static void cm_dup_rep_handler(struct cm_work *work)
44880 if (!cm_id_priv)
44881 return;
44882
44883 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44884 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44885 counter[CM_REP_COUNTER]);
44886 ret = cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg);
44887 if (ret)
44888 @@ -1970,7 +1970,7 @@ static int cm_rtu_handler(struct cm_work *work)
44889 if (cm_id_priv->id.state != IB_CM_REP_SENT &&
44890 cm_id_priv->id.state != IB_CM_MRA_REP_RCVD) {
44891 spin_unlock_irq(&cm_id_priv->lock);
44892 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44893 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44894 counter[CM_RTU_COUNTER]);
44895 goto out;
44896 }
44897 @@ -2153,7 +2153,7 @@ static int cm_dreq_handler(struct cm_work *work)
44898 cm_id_priv = cm_acquire_id(dreq_msg->remote_comm_id,
44899 dreq_msg->local_comm_id);
44900 if (!cm_id_priv) {
44901 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44902 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44903 counter[CM_DREQ_COUNTER]);
44904 cm_issue_drep(work->port, work->mad_recv_wc);
44905 return -EINVAL;
44906 @@ -2178,7 +2178,7 @@ static int cm_dreq_handler(struct cm_work *work)
44907 case IB_CM_MRA_REP_RCVD:
44908 break;
44909 case IB_CM_TIMEWAIT:
44910 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44911 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44912 counter[CM_DREQ_COUNTER]);
44913 if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
44914 goto unlock;
44915 @@ -2192,7 +2192,7 @@ static int cm_dreq_handler(struct cm_work *work)
44916 cm_free_msg(msg);
44917 goto deref;
44918 case IB_CM_DREQ_RCVD:
44919 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44920 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44921 counter[CM_DREQ_COUNTER]);
44922 goto unlock;
44923 default:
44924 @@ -2559,7 +2559,7 @@ static int cm_mra_handler(struct cm_work *work)
44925 ib_modify_mad(cm_id_priv->av.port->mad_agent,
44926 cm_id_priv->msg, timeout)) {
44927 if (cm_id_priv->id.lap_state == IB_CM_MRA_LAP_RCVD)
44928 - atomic_long_inc(&work->port->
44929 + atomic_long_inc_unchecked(&work->port->
44930 counter_group[CM_RECV_DUPLICATES].
44931 counter[CM_MRA_COUNTER]);
44932 goto out;
44933 @@ -2568,7 +2568,7 @@ static int cm_mra_handler(struct cm_work *work)
44934 break;
44935 case IB_CM_MRA_REQ_RCVD:
44936 case IB_CM_MRA_REP_RCVD:
44937 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44938 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44939 counter[CM_MRA_COUNTER]);
44940 /* fall through */
44941 default:
44942 @@ -2730,7 +2730,7 @@ static int cm_lap_handler(struct cm_work *work)
44943 case IB_CM_LAP_IDLE:
44944 break;
44945 case IB_CM_MRA_LAP_SENT:
44946 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44947 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44948 counter[CM_LAP_COUNTER]);
44949 if (cm_alloc_response_msg(work->port, work->mad_recv_wc, &msg))
44950 goto unlock;
44951 @@ -2746,7 +2746,7 @@ static int cm_lap_handler(struct cm_work *work)
44952 cm_free_msg(msg);
44953 goto deref;
44954 case IB_CM_LAP_RCVD:
44955 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44956 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44957 counter[CM_LAP_COUNTER]);
44958 goto unlock;
44959 default:
44960 @@ -3030,7 +3030,7 @@ static int cm_sidr_req_handler(struct cm_work *work)
44961 cur_cm_id_priv = cm_insert_remote_sidr(cm_id_priv);
44962 if (cur_cm_id_priv) {
44963 spin_unlock_irq(&cm.lock);
44964 - atomic_long_inc(&work->port->counter_group[CM_RECV_DUPLICATES].
44965 + atomic_long_inc_unchecked(&work->port->counter_group[CM_RECV_DUPLICATES].
44966 counter[CM_SIDR_REQ_COUNTER]);
44967 goto out; /* Duplicate message. */
44968 }
44969 @@ -3245,10 +3245,10 @@ static void cm_send_handler(struct ib_mad_agent *mad_agent,
44970 if (!msg->context[0] && (attr_index != CM_REJ_COUNTER))
44971 msg->retries = 1;
44972
44973 - atomic_long_add(1 + msg->retries,
44974 + atomic_long_add_unchecked(1 + msg->retries,
44975 &port->counter_group[CM_XMIT].counter[attr_index]);
44976 if (msg->retries)
44977 - atomic_long_add(msg->retries,
44978 + atomic_long_add_unchecked(msg->retries,
44979 &port->counter_group[CM_XMIT_RETRIES].
44980 counter[attr_index]);
44981
44982 @@ -3474,7 +3474,7 @@ static void cm_recv_handler(struct ib_mad_agent *mad_agent,
44983 }
44984
44985 attr_id = be16_to_cpu(mad_recv_wc->recv_buf.mad->mad_hdr.attr_id);
44986 - atomic_long_inc(&port->counter_group[CM_RECV].
44987 + atomic_long_inc_unchecked(&port->counter_group[CM_RECV].
44988 counter[attr_id - CM_ATTR_ID_OFFSET]);
44989
44990 work = kmalloc(sizeof *work + sizeof(struct ib_sa_path_rec) * paths,
44991 @@ -3717,7 +3717,7 @@ static ssize_t cm_show_counter(struct kobject *obj, struct attribute *attr,
44992 cm_attr = container_of(attr, struct cm_counter_attribute, attr);
44993
44994 return sprintf(buf, "%ld\n",
44995 - atomic_long_read(&group->counter[cm_attr->index]));
44996 + atomic_long_read_unchecked(&group->counter[cm_attr->index]));
44997 }
44998
44999 static const struct sysfs_ops cm_counter_ops = {
45000 diff --git a/drivers/infiniband/core/fmr_pool.c b/drivers/infiniband/core/fmr_pool.c
45001 index 9f5ad7c..588cd84 100644
45002 --- a/drivers/infiniband/core/fmr_pool.c
45003 +++ b/drivers/infiniband/core/fmr_pool.c
45004 @@ -98,8 +98,8 @@ struct ib_fmr_pool {
45005
45006 struct task_struct *thread;
45007
45008 - atomic_t req_ser;
45009 - atomic_t flush_ser;
45010 + atomic_unchecked_t req_ser;
45011 + atomic_unchecked_t flush_ser;
45012
45013 wait_queue_head_t force_wait;
45014 };
45015 @@ -179,10 +179,10 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
45016 struct ib_fmr_pool *pool = pool_ptr;
45017
45018 do {
45019 - if (atomic_read(&pool->flush_ser) - atomic_read(&pool->req_ser) < 0) {
45020 + if (atomic_read_unchecked(&pool->flush_ser) - atomic_read_unchecked(&pool->req_ser) < 0) {
45021 ib_fmr_batch_release(pool);
45022
45023 - atomic_inc(&pool->flush_ser);
45024 + atomic_inc_unchecked(&pool->flush_ser);
45025 wake_up_interruptible(&pool->force_wait);
45026
45027 if (pool->flush_function)
45028 @@ -190,7 +190,7 @@ static int ib_fmr_cleanup_thread(void *pool_ptr)
45029 }
45030
45031 set_current_state(TASK_INTERRUPTIBLE);
45032 - if (atomic_read(&pool->flush_ser) - atomic_read(&pool->req_ser) >= 0 &&
45033 + if (atomic_read_unchecked(&pool->flush_ser) - atomic_read_unchecked(&pool->req_ser) >= 0 &&
45034 !kthread_should_stop())
45035 schedule();
45036 __set_current_state(TASK_RUNNING);
45037 @@ -282,8 +282,8 @@ struct ib_fmr_pool *ib_create_fmr_pool(struct ib_pd *pd,
45038 pool->dirty_watermark = params->dirty_watermark;
45039 pool->dirty_len = 0;
45040 spin_lock_init(&pool->pool_lock);
45041 - atomic_set(&pool->req_ser, 0);
45042 - atomic_set(&pool->flush_ser, 0);
45043 + atomic_set_unchecked(&pool->req_ser, 0);
45044 + atomic_set_unchecked(&pool->flush_ser, 0);
45045 init_waitqueue_head(&pool->force_wait);
45046
45047 pool->thread = kthread_run(ib_fmr_cleanup_thread,
45048 @@ -411,11 +411,11 @@ int ib_flush_fmr_pool(struct ib_fmr_pool *pool)
45049 }
45050 spin_unlock_irq(&pool->pool_lock);
45051
45052 - serial = atomic_inc_return(&pool->req_ser);
45053 + serial = atomic_inc_return_unchecked(&pool->req_ser);
45054 wake_up_process(pool->thread);
45055
45056 if (wait_event_interruptible(pool->force_wait,
45057 - atomic_read(&pool->flush_ser) - serial >= 0))
45058 + atomic_read_unchecked(&pool->flush_ser) - serial >= 0))
45059 return -EINTR;
45060
45061 return 0;
45062 @@ -525,7 +525,7 @@ int ib_fmr_pool_unmap(struct ib_pool_fmr *fmr)
45063 } else {
45064 list_add_tail(&fmr->list, &pool->dirty_list);
45065 if (++pool->dirty_len >= pool->dirty_watermark) {
45066 - atomic_inc(&pool->req_ser);
45067 + atomic_inc_unchecked(&pool->req_ser);
45068 wake_up_process(pool->thread);
45069 }
45070 }
45071 diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
45072 index a6ca83b..bd3a726 100644
45073 --- a/drivers/infiniband/core/uverbs_cmd.c
45074 +++ b/drivers/infiniband/core/uverbs_cmd.c
45075 @@ -951,6 +951,9 @@ ssize_t ib_uverbs_reg_mr(struct ib_uverbs_file *file,
45076 if (copy_from_user(&cmd, buf, sizeof cmd))
45077 return -EFAULT;
45078
45079 + if (!access_ok_noprefault(VERIFY_READ, cmd.start, cmd.length))
45080 + return -EFAULT;
45081 +
45082 INIT_UDATA(&udata, buf + sizeof cmd,
45083 (unsigned long) cmd.response + sizeof resp,
45084 in_len - sizeof cmd, out_len - sizeof resp);
45085 diff --git a/drivers/infiniband/hw/cxgb4/mem.c b/drivers/infiniband/hw/cxgb4/mem.c
45086 index cff815b..75576dd 100644
45087 --- a/drivers/infiniband/hw/cxgb4/mem.c
45088 +++ b/drivers/infiniband/hw/cxgb4/mem.c
45089 @@ -256,7 +256,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
45090 int err;
45091 struct fw_ri_tpte tpt;
45092 u32 stag_idx;
45093 - static atomic_t key;
45094 + static atomic_unchecked_t key;
45095
45096 if (c4iw_fatal_error(rdev))
45097 return -EIO;
45098 @@ -277,7 +277,7 @@ static int write_tpt_entry(struct c4iw_rdev *rdev, u32 reset_tpt_entry,
45099 if (rdev->stats.stag.cur > rdev->stats.stag.max)
45100 rdev->stats.stag.max = rdev->stats.stag.cur;
45101 mutex_unlock(&rdev->stats.lock);
45102 - *stag = (stag_idx << 8) | (atomic_inc_return(&key) & 0xff);
45103 + *stag = (stag_idx << 8) | (atomic_inc_return_unchecked(&key) & 0xff);
45104 }
45105 PDBG("%s stag_state 0x%0x type 0x%0x pdid 0x%0x, stag_idx 0x%x\n",
45106 __func__, stag_state, type, pdid, stag_idx);
45107 diff --git a/drivers/infiniband/hw/ipath/ipath_rc.c b/drivers/infiniband/hw/ipath/ipath_rc.c
45108 index 79b3dbc..96e5fcc 100644
45109 --- a/drivers/infiniband/hw/ipath/ipath_rc.c
45110 +++ b/drivers/infiniband/hw/ipath/ipath_rc.c
45111 @@ -1868,7 +1868,7 @@ void ipath_rc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
45112 struct ib_atomic_eth *ateth;
45113 struct ipath_ack_entry *e;
45114 u64 vaddr;
45115 - atomic64_t *maddr;
45116 + atomic64_unchecked_t *maddr;
45117 u64 sdata;
45118 u32 rkey;
45119 u8 next;
45120 @@ -1903,11 +1903,11 @@ void ipath_rc_rcv(struct ipath_ibdev *dev, struct ipath_ib_header *hdr,
45121 IB_ACCESS_REMOTE_ATOMIC)))
45122 goto nack_acc_unlck;
45123 /* Perform atomic OP and save result. */
45124 - maddr = (atomic64_t *) qp->r_sge.sge.vaddr;
45125 + maddr = (atomic64_unchecked_t *) qp->r_sge.sge.vaddr;
45126 sdata = be64_to_cpu(ateth->swap_data);
45127 e = &qp->s_ack_queue[qp->r_head_ack_queue];
45128 e->atomic_data = (opcode == OP(FETCH_ADD)) ?
45129 - (u64) atomic64_add_return(sdata, maddr) - sdata :
45130 + (u64) atomic64_add_return_unchecked(sdata, maddr) - sdata :
45131 (u64) cmpxchg((u64 *) qp->r_sge.sge.vaddr,
45132 be64_to_cpu(ateth->compare_data),
45133 sdata);
45134 diff --git a/drivers/infiniband/hw/ipath/ipath_ruc.c b/drivers/infiniband/hw/ipath/ipath_ruc.c
45135 index 1f95bba..9530f87 100644
45136 --- a/drivers/infiniband/hw/ipath/ipath_ruc.c
45137 +++ b/drivers/infiniband/hw/ipath/ipath_ruc.c
45138 @@ -266,7 +266,7 @@ static void ipath_ruc_loopback(struct ipath_qp *sqp)
45139 unsigned long flags;
45140 struct ib_wc wc;
45141 u64 sdata;
45142 - atomic64_t *maddr;
45143 + atomic64_unchecked_t *maddr;
45144 enum ib_wc_status send_status;
45145
45146 /*
45147 @@ -382,11 +382,11 @@ again:
45148 IB_ACCESS_REMOTE_ATOMIC)))
45149 goto acc_err;
45150 /* Perform atomic OP and save result. */
45151 - maddr = (atomic64_t *) qp->r_sge.sge.vaddr;
45152 + maddr = (atomic64_unchecked_t *) qp->r_sge.sge.vaddr;
45153 sdata = wqe->wr.wr.atomic.compare_add;
45154 *(u64 *) sqp->s_sge.sge.vaddr =
45155 (wqe->wr.opcode == IB_WR_ATOMIC_FETCH_AND_ADD) ?
45156 - (u64) atomic64_add_return(sdata, maddr) - sdata :
45157 + (u64) atomic64_add_return_unchecked(sdata, maddr) - sdata :
45158 (u64) cmpxchg((u64 *) qp->r_sge.sge.vaddr,
45159 sdata, wqe->wr.wr.atomic.swap);
45160 goto send_comp;
45161 diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
45162 index 68b3dfa..3e0c511 100644
45163 --- a/drivers/infiniband/hw/mlx4/mad.c
45164 +++ b/drivers/infiniband/hw/mlx4/mad.c
45165 @@ -98,7 +98,7 @@ __be64 mlx4_ib_gen_node_guid(void)
45166
45167 __be64 mlx4_ib_get_new_demux_tid(struct mlx4_ib_demux_ctx *ctx)
45168 {
45169 - return cpu_to_be64(atomic_inc_return(&ctx->tid)) |
45170 + return cpu_to_be64(atomic_inc_return_unchecked(&ctx->tid)) |
45171 cpu_to_be64(0xff00000000000000LL);
45172 }
45173
45174 diff --git a/drivers/infiniband/hw/mlx4/mcg.c b/drivers/infiniband/hw/mlx4/mcg.c
45175 index a0559a8..86a2320 100644
45176 --- a/drivers/infiniband/hw/mlx4/mcg.c
45177 +++ b/drivers/infiniband/hw/mlx4/mcg.c
45178 @@ -1042,7 +1042,7 @@ int mlx4_ib_mcg_port_init(struct mlx4_ib_demux_ctx *ctx)
45179 {
45180 char name[20];
45181
45182 - atomic_set(&ctx->tid, 0);
45183 + atomic_set_unchecked(&ctx->tid, 0);
45184 sprintf(name, "mlx4_ib_mcg%d", ctx->port);
45185 ctx->mcg_wq = create_singlethread_workqueue(name);
45186 if (!ctx->mcg_wq)
45187 diff --git a/drivers/infiniband/hw/mlx4/mlx4_ib.h b/drivers/infiniband/hw/mlx4/mlx4_ib.h
45188 index 334387f..e640d74 100644
45189 --- a/drivers/infiniband/hw/mlx4/mlx4_ib.h
45190 +++ b/drivers/infiniband/hw/mlx4/mlx4_ib.h
45191 @@ -436,7 +436,7 @@ struct mlx4_ib_demux_ctx {
45192 struct list_head mcg_mgid0_list;
45193 struct workqueue_struct *mcg_wq;
45194 struct mlx4_ib_demux_pv_ctx **tun;
45195 - atomic_t tid;
45196 + atomic_unchecked_t tid;
45197 int flushing; /* flushing the work queue */
45198 };
45199
45200 diff --git a/drivers/infiniband/hw/mthca/mthca_cmd.c b/drivers/infiniband/hw/mthca/mthca_cmd.c
45201 index c7f49bb..6a021bb 100644
45202 --- a/drivers/infiniband/hw/mthca/mthca_cmd.c
45203 +++ b/drivers/infiniband/hw/mthca/mthca_cmd.c
45204 @@ -772,7 +772,7 @@ static void mthca_setup_cmd_doorbells(struct mthca_dev *dev, u64 base)
45205 mthca_dbg(dev, "Mapped doorbell page for posting FW commands\n");
45206 }
45207
45208 -int mthca_QUERY_FW(struct mthca_dev *dev)
45209 +int __intentional_overflow(-1) mthca_QUERY_FW(struct mthca_dev *dev)
45210 {
45211 struct mthca_mailbox *mailbox;
45212 u32 *outbox;
45213 @@ -1612,7 +1612,7 @@ int mthca_HW2SW_MPT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45214 CMD_TIME_CLASS_B);
45215 }
45216
45217 -int mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45218 +int __intentional_overflow(-1) mthca_WRITE_MTT(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45219 int num_mtt)
45220 {
45221 return mthca_cmd(dev, mailbox->dma, num_mtt, 0, CMD_WRITE_MTT,
45222 @@ -1634,7 +1634,7 @@ int mthca_MAP_EQ(struct mthca_dev *dev, u64 event_mask, int unmap,
45223 0, CMD_MAP_EQ, CMD_TIME_CLASS_B);
45224 }
45225
45226 -int mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45227 +int __intentional_overflow(-1) mthca_SW2HW_EQ(struct mthca_dev *dev, struct mthca_mailbox *mailbox,
45228 int eq_num)
45229 {
45230 return mthca_cmd(dev, mailbox->dma, eq_num, 0, CMD_SW2HW_EQ,
45231 @@ -1857,7 +1857,7 @@ int mthca_CONF_SPECIAL_QP(struct mthca_dev *dev, int type, u32 qpn)
45232 CMD_TIME_CLASS_B);
45233 }
45234
45235 -int mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey,
45236 +int __intentional_overflow(-1) mthca_MAD_IFC(struct mthca_dev *dev, int ignore_mkey, int ignore_bkey,
45237 int port, const struct ib_wc *in_wc, const struct ib_grh *in_grh,
45238 const void *in_mad, void *response_mad)
45239 {
45240 diff --git a/drivers/infiniband/hw/mthca/mthca_main.c b/drivers/infiniband/hw/mthca/mthca_main.c
45241 index ded76c1..0cf0a08 100644
45242 --- a/drivers/infiniband/hw/mthca/mthca_main.c
45243 +++ b/drivers/infiniband/hw/mthca/mthca_main.c
45244 @@ -692,7 +692,7 @@ err_close:
45245 return err;
45246 }
45247
45248 -static int mthca_setup_hca(struct mthca_dev *dev)
45249 +static int __intentional_overflow(-1) mthca_setup_hca(struct mthca_dev *dev)
45250 {
45251 int err;
45252
45253 diff --git a/drivers/infiniband/hw/mthca/mthca_mr.c b/drivers/infiniband/hw/mthca/mthca_mr.c
45254 index ed9a989..6aa5dc2 100644
45255 --- a/drivers/infiniband/hw/mthca/mthca_mr.c
45256 +++ b/drivers/infiniband/hw/mthca/mthca_mr.c
45257 @@ -81,7 +81,7 @@ struct mthca_mpt_entry {
45258 * through the bitmaps)
45259 */
45260
45261 -static u32 mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
45262 +static u32 __intentional_overflow(-1) mthca_buddy_alloc(struct mthca_buddy *buddy, int order)
45263 {
45264 int o;
45265 int m;
45266 @@ -426,7 +426,7 @@ static inline u32 adjust_key(struct mthca_dev *dev, u32 key)
45267 return key;
45268 }
45269
45270 -int mthca_mr_alloc(struct mthca_dev *dev, u32 pd, int buffer_size_shift,
45271 +int __intentional_overflow(-1) mthca_mr_alloc(struct mthca_dev *dev, u32 pd, int buffer_size_shift,
45272 u64 iova, u64 total_size, u32 access, struct mthca_mr *mr)
45273 {
45274 struct mthca_mailbox *mailbox;
45275 @@ -516,7 +516,7 @@ int mthca_mr_alloc_notrans(struct mthca_dev *dev, u32 pd,
45276 return mthca_mr_alloc(dev, pd, 12, 0, ~0ULL, access, mr);
45277 }
45278
45279 -int mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd,
45280 +int __intentional_overflow(-1) mthca_mr_alloc_phys(struct mthca_dev *dev, u32 pd,
45281 u64 *buffer_list, int buffer_size_shift,
45282 int list_len, u64 iova, u64 total_size,
45283 u32 access, struct mthca_mr *mr)
45284 diff --git a/drivers/infiniband/hw/mthca/mthca_provider.c b/drivers/infiniband/hw/mthca/mthca_provider.c
45285 index 93ae51d..84c4a44 100644
45286 --- a/drivers/infiniband/hw/mthca/mthca_provider.c
45287 +++ b/drivers/infiniband/hw/mthca/mthca_provider.c
45288 @@ -771,7 +771,7 @@ unlock:
45289 return 0;
45290 }
45291
45292 -static int mthca_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
45293 +static int __intentional_overflow(-1) mthca_resize_cq(struct ib_cq *ibcq, int entries, struct ib_udata *udata)
45294 {
45295 struct mthca_dev *dev = to_mdev(ibcq->device);
45296 struct mthca_cq *cq = to_mcq(ibcq);
45297 diff --git a/drivers/infiniband/hw/nes/nes.c b/drivers/infiniband/hw/nes/nes.c
45298 index 9f9d5c5..3c19aac 100644
45299 --- a/drivers/infiniband/hw/nes/nes.c
45300 +++ b/drivers/infiniband/hw/nes/nes.c
45301 @@ -97,7 +97,7 @@ MODULE_PARM_DESC(limit_maxrdreqsz, "Limit max read request size to 256 Bytes");
45302 LIST_HEAD(nes_adapter_list);
45303 static LIST_HEAD(nes_dev_list);
45304
45305 -atomic_t qps_destroyed;
45306 +atomic_unchecked_t qps_destroyed;
45307
45308 static unsigned int ee_flsh_adapter;
45309 static unsigned int sysfs_nonidx_addr;
45310 @@ -279,7 +279,7 @@ static void nes_cqp_rem_ref_callback(struct nes_device *nesdev, struct nes_cqp_r
45311 struct nes_qp *nesqp = cqp_request->cqp_callback_pointer;
45312 struct nes_adapter *nesadapter = nesdev->nesadapter;
45313
45314 - atomic_inc(&qps_destroyed);
45315 + atomic_inc_unchecked(&qps_destroyed);
45316
45317 /* Free the control structures */
45318
45319 diff --git a/drivers/infiniband/hw/nes/nes.h b/drivers/infiniband/hw/nes/nes.h
45320 index bd9d132..70d84f4 100644
45321 --- a/drivers/infiniband/hw/nes/nes.h
45322 +++ b/drivers/infiniband/hw/nes/nes.h
45323 @@ -180,17 +180,17 @@ extern unsigned int nes_debug_level;
45324 extern unsigned int wqm_quanta;
45325 extern struct list_head nes_adapter_list;
45326
45327 -extern atomic_t cm_connects;
45328 -extern atomic_t cm_accepts;
45329 -extern atomic_t cm_disconnects;
45330 -extern atomic_t cm_closes;
45331 -extern atomic_t cm_connecteds;
45332 -extern atomic_t cm_connect_reqs;
45333 -extern atomic_t cm_rejects;
45334 -extern atomic_t mod_qp_timouts;
45335 -extern atomic_t qps_created;
45336 -extern atomic_t qps_destroyed;
45337 -extern atomic_t sw_qps_destroyed;
45338 +extern atomic_unchecked_t cm_connects;
45339 +extern atomic_unchecked_t cm_accepts;
45340 +extern atomic_unchecked_t cm_disconnects;
45341 +extern atomic_unchecked_t cm_closes;
45342 +extern atomic_unchecked_t cm_connecteds;
45343 +extern atomic_unchecked_t cm_connect_reqs;
45344 +extern atomic_unchecked_t cm_rejects;
45345 +extern atomic_unchecked_t mod_qp_timouts;
45346 +extern atomic_unchecked_t qps_created;
45347 +extern atomic_unchecked_t qps_destroyed;
45348 +extern atomic_unchecked_t sw_qps_destroyed;
45349 extern u32 mh_detected;
45350 extern u32 mh_pauses_sent;
45351 extern u32 cm_packets_sent;
45352 @@ -199,16 +199,16 @@ extern u32 cm_packets_created;
45353 extern u32 cm_packets_received;
45354 extern u32 cm_packets_dropped;
45355 extern u32 cm_packets_retrans;
45356 -extern atomic_t cm_listens_created;
45357 -extern atomic_t cm_listens_destroyed;
45358 +extern atomic_unchecked_t cm_listens_created;
45359 +extern atomic_unchecked_t cm_listens_destroyed;
45360 extern u32 cm_backlog_drops;
45361 -extern atomic_t cm_loopbacks;
45362 -extern atomic_t cm_nodes_created;
45363 -extern atomic_t cm_nodes_destroyed;
45364 -extern atomic_t cm_accel_dropped_pkts;
45365 -extern atomic_t cm_resets_recvd;
45366 -extern atomic_t pau_qps_created;
45367 -extern atomic_t pau_qps_destroyed;
45368 +extern atomic_unchecked_t cm_loopbacks;
45369 +extern atomic_unchecked_t cm_nodes_created;
45370 +extern atomic_unchecked_t cm_nodes_destroyed;
45371 +extern atomic_unchecked_t cm_accel_dropped_pkts;
45372 +extern atomic_unchecked_t cm_resets_recvd;
45373 +extern atomic_unchecked_t pau_qps_created;
45374 +extern atomic_unchecked_t pau_qps_destroyed;
45375
45376 extern u32 int_mod_timer_init;
45377 extern u32 int_mod_cq_depth_256;
45378 diff --git a/drivers/infiniband/hw/nes/nes_cm.c b/drivers/infiniband/hw/nes/nes_cm.c
45379 index 8a3ad17..e1ed4bc 100644
45380 --- a/drivers/infiniband/hw/nes/nes_cm.c
45381 +++ b/drivers/infiniband/hw/nes/nes_cm.c
45382 @@ -69,14 +69,14 @@ u32 cm_packets_dropped;
45383 u32 cm_packets_retrans;
45384 u32 cm_packets_created;
45385 u32 cm_packets_received;
45386 -atomic_t cm_listens_created;
45387 -atomic_t cm_listens_destroyed;
45388 +atomic_unchecked_t cm_listens_created;
45389 +atomic_unchecked_t cm_listens_destroyed;
45390 u32 cm_backlog_drops;
45391 -atomic_t cm_loopbacks;
45392 -atomic_t cm_nodes_created;
45393 -atomic_t cm_nodes_destroyed;
45394 -atomic_t cm_accel_dropped_pkts;
45395 -atomic_t cm_resets_recvd;
45396 +atomic_unchecked_t cm_loopbacks;
45397 +atomic_unchecked_t cm_nodes_created;
45398 +atomic_unchecked_t cm_nodes_destroyed;
45399 +atomic_unchecked_t cm_accel_dropped_pkts;
45400 +atomic_unchecked_t cm_resets_recvd;
45401
45402 static inline int mini_cm_accelerated(struct nes_cm_core *, struct nes_cm_node *);
45403 static struct nes_cm_listener *mini_cm_listen(struct nes_cm_core *, struct nes_vnic *, struct nes_cm_info *);
45404 @@ -135,28 +135,28 @@ static void record_ird_ord(struct nes_cm_node *, u16, u16);
45405 /* instance of function pointers for client API */
45406 /* set address of this instance to cm_core->cm_ops at cm_core alloc */
45407 static struct nes_cm_ops nes_cm_api = {
45408 - mini_cm_accelerated,
45409 - mini_cm_listen,
45410 - mini_cm_del_listen,
45411 - mini_cm_connect,
45412 - mini_cm_close,
45413 - mini_cm_accept,
45414 - mini_cm_reject,
45415 - mini_cm_recv_pkt,
45416 - mini_cm_dealloc_core,
45417 - mini_cm_get,
45418 - mini_cm_set
45419 + .accelerated = mini_cm_accelerated,
45420 + .listen = mini_cm_listen,
45421 + .stop_listener = mini_cm_del_listen,
45422 + .connect = mini_cm_connect,
45423 + .close = mini_cm_close,
45424 + .accept = mini_cm_accept,
45425 + .reject = mini_cm_reject,
45426 + .recv_pkt = mini_cm_recv_pkt,
45427 + .destroy_cm_core = mini_cm_dealloc_core,
45428 + .get = mini_cm_get,
45429 + .set = mini_cm_set
45430 };
45431
45432 static struct nes_cm_core *g_cm_core;
45433
45434 -atomic_t cm_connects;
45435 -atomic_t cm_accepts;
45436 -atomic_t cm_disconnects;
45437 -atomic_t cm_closes;
45438 -atomic_t cm_connecteds;
45439 -atomic_t cm_connect_reqs;
45440 -atomic_t cm_rejects;
45441 +atomic_unchecked_t cm_connects;
45442 +atomic_unchecked_t cm_accepts;
45443 +atomic_unchecked_t cm_disconnects;
45444 +atomic_unchecked_t cm_closes;
45445 +atomic_unchecked_t cm_connecteds;
45446 +atomic_unchecked_t cm_connect_reqs;
45447 +atomic_unchecked_t cm_rejects;
45448
45449 int nes_add_ref_cm_node(struct nes_cm_node *cm_node)
45450 {
45451 @@ -1461,7 +1461,7 @@ static int mini_cm_dec_refcnt_listen(struct nes_cm_core *cm_core,
45452 kfree(listener);
45453 listener = NULL;
45454 ret = 0;
45455 - atomic_inc(&cm_listens_destroyed);
45456 + atomic_inc_unchecked(&cm_listens_destroyed);
45457 } else {
45458 spin_unlock_irqrestore(&cm_core->listen_list_lock, flags);
45459 }
45460 @@ -1670,7 +1670,7 @@ static struct nes_cm_node *make_cm_node(struct nes_cm_core *cm_core,
45461 cm_node->rem_mac);
45462
45463 add_hte_node(cm_core, cm_node);
45464 - atomic_inc(&cm_nodes_created);
45465 + atomic_inc_unchecked(&cm_nodes_created);
45466
45467 return cm_node;
45468 }
45469 @@ -1731,7 +1731,7 @@ static int rem_ref_cm_node(struct nes_cm_core *cm_core,
45470 }
45471
45472 atomic_dec(&cm_core->node_cnt);
45473 - atomic_inc(&cm_nodes_destroyed);
45474 + atomic_inc_unchecked(&cm_nodes_destroyed);
45475 nesqp = cm_node->nesqp;
45476 if (nesqp) {
45477 nesqp->cm_node = NULL;
45478 @@ -1795,7 +1795,7 @@ static int process_options(struct nes_cm_node *cm_node, u8 *optionsloc,
45479
45480 static void drop_packet(struct sk_buff *skb)
45481 {
45482 - atomic_inc(&cm_accel_dropped_pkts);
45483 + atomic_inc_unchecked(&cm_accel_dropped_pkts);
45484 dev_kfree_skb_any(skb);
45485 }
45486
45487 @@ -1858,7 +1858,7 @@ static void handle_rst_pkt(struct nes_cm_node *cm_node, struct sk_buff *skb,
45488 {
45489
45490 int reset = 0; /* whether to send reset in case of err.. */
45491 - atomic_inc(&cm_resets_recvd);
45492 + atomic_inc_unchecked(&cm_resets_recvd);
45493 nes_debug(NES_DBG_CM, "Received Reset, cm_node = %p, state = %u."
45494 " refcnt=%d\n", cm_node, cm_node->state,
45495 atomic_read(&cm_node->ref_count));
45496 @@ -2526,7 +2526,7 @@ static struct nes_cm_node *mini_cm_connect(struct nes_cm_core *cm_core,
45497 rem_ref_cm_node(cm_node->cm_core, cm_node);
45498 return NULL;
45499 }
45500 - atomic_inc(&cm_loopbacks);
45501 + atomic_inc_unchecked(&cm_loopbacks);
45502 loopbackremotenode->loopbackpartner = cm_node;
45503 loopbackremotenode->tcp_cntxt.rcv_wscale =
45504 NES_CM_DEFAULT_RCV_WND_SCALE;
45505 @@ -2807,7 +2807,7 @@ static int mini_cm_recv_pkt(struct nes_cm_core *cm_core,
45506 nes_queue_mgt_skbs(skb, nesvnic, cm_node->nesqp);
45507 else {
45508 rem_ref_cm_node(cm_core, cm_node);
45509 - atomic_inc(&cm_accel_dropped_pkts);
45510 + atomic_inc_unchecked(&cm_accel_dropped_pkts);
45511 dev_kfree_skb_any(skb);
45512 }
45513 break;
45514 @@ -3118,7 +3118,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
45515
45516 if ((cm_id) && (cm_id->event_handler)) {
45517 if (issue_disconn) {
45518 - atomic_inc(&cm_disconnects);
45519 + atomic_inc_unchecked(&cm_disconnects);
45520 cm_event.event = IW_CM_EVENT_DISCONNECT;
45521 cm_event.status = disconn_status;
45522 cm_event.local_addr = cm_id->local_addr;
45523 @@ -3140,7 +3140,7 @@ static int nes_cm_disconn_true(struct nes_qp *nesqp)
45524 }
45525
45526 if (issue_close) {
45527 - atomic_inc(&cm_closes);
45528 + atomic_inc_unchecked(&cm_closes);
45529 nes_disconnect(nesqp, 1);
45530
45531 cm_id->provider_data = nesqp;
45532 @@ -3278,7 +3278,7 @@ int nes_accept(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
45533
45534 nes_debug(NES_DBG_CM, "QP%u, cm_node=%p, jiffies = %lu listener = %p\n",
45535 nesqp->hwqp.qp_id, cm_node, jiffies, cm_node->listener);
45536 - atomic_inc(&cm_accepts);
45537 + atomic_inc_unchecked(&cm_accepts);
45538
45539 nes_debug(NES_DBG_CM, "netdev refcnt = %u.\n",
45540 netdev_refcnt_read(nesvnic->netdev));
45541 @@ -3476,7 +3476,7 @@ int nes_reject(struct iw_cm_id *cm_id, const void *pdata, u8 pdata_len)
45542 struct nes_cm_core *cm_core;
45543 u8 *start_buff;
45544
45545 - atomic_inc(&cm_rejects);
45546 + atomic_inc_unchecked(&cm_rejects);
45547 cm_node = (struct nes_cm_node *)cm_id->provider_data;
45548 loopback = cm_node->loopbackpartner;
45549 cm_core = cm_node->cm_core;
45550 @@ -3541,7 +3541,7 @@ int nes_connect(struct iw_cm_id *cm_id, struct iw_cm_conn_param *conn_param)
45551 ntohs(raddr->sin_port), ntohl(laddr->sin_addr.s_addr),
45552 ntohs(laddr->sin_port));
45553
45554 - atomic_inc(&cm_connects);
45555 + atomic_inc_unchecked(&cm_connects);
45556 nesqp->active_conn = 1;
45557
45558 /* cache the cm_id in the qp */
45559 @@ -3688,7 +3688,7 @@ int nes_create_listen(struct iw_cm_id *cm_id, int backlog)
45560 g_cm_core->api->stop_listener(g_cm_core, (void *)cm_node);
45561 return err;
45562 }
45563 - atomic_inc(&cm_listens_created);
45564 + atomic_inc_unchecked(&cm_listens_created);
45565 }
45566
45567 cm_id->add_ref(cm_id);
45568 @@ -3795,7 +3795,7 @@ static void cm_event_connected(struct nes_cm_event *event)
45569
45570 if (nesqp->destroyed)
45571 return;
45572 - atomic_inc(&cm_connecteds);
45573 + atomic_inc_unchecked(&cm_connecteds);
45574 nes_debug(NES_DBG_CM, "QP%u attempting to connect to 0x%08X:0x%04X on"
45575 " local port 0x%04X. jiffies = %lu.\n",
45576 nesqp->hwqp.qp_id, ntohl(raddr->sin_addr.s_addr),
45577 @@ -3980,7 +3980,7 @@ static void cm_event_reset(struct nes_cm_event *event)
45578
45579 cm_id->add_ref(cm_id);
45580 ret = cm_id->event_handler(cm_id, &cm_event);
45581 - atomic_inc(&cm_closes);
45582 + atomic_inc_unchecked(&cm_closes);
45583 cm_event.event = IW_CM_EVENT_CLOSE;
45584 cm_event.status = 0;
45585 cm_event.provider_data = cm_id->provider_data;
45586 @@ -4020,7 +4020,7 @@ static void cm_event_mpa_req(struct nes_cm_event *event)
45587 return;
45588 cm_id = cm_node->cm_id;
45589
45590 - atomic_inc(&cm_connect_reqs);
45591 + atomic_inc_unchecked(&cm_connect_reqs);
45592 nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
45593 cm_node, cm_id, jiffies);
45594
45595 @@ -4069,7 +4069,7 @@ static void cm_event_mpa_reject(struct nes_cm_event *event)
45596 return;
45597 cm_id = cm_node->cm_id;
45598
45599 - atomic_inc(&cm_connect_reqs);
45600 + atomic_inc_unchecked(&cm_connect_reqs);
45601 nes_debug(NES_DBG_CM, "cm_node = %p - cm_id = %p, jiffies = %lu\n",
45602 cm_node, cm_id, jiffies);
45603
45604 diff --git a/drivers/infiniband/hw/nes/nes_mgt.c b/drivers/infiniband/hw/nes/nes_mgt.c
45605 index 4166452..fc952c3 100644
45606 --- a/drivers/infiniband/hw/nes/nes_mgt.c
45607 +++ b/drivers/infiniband/hw/nes/nes_mgt.c
45608 @@ -40,8 +40,8 @@
45609 #include "nes.h"
45610 #include "nes_mgt.h"
45611
45612 -atomic_t pau_qps_created;
45613 -atomic_t pau_qps_destroyed;
45614 +atomic_unchecked_t pau_qps_created;
45615 +atomic_unchecked_t pau_qps_destroyed;
45616
45617 static void nes_replenish_mgt_rq(struct nes_vnic_mgt *mgtvnic)
45618 {
45619 @@ -621,7 +621,7 @@ void nes_destroy_pau_qp(struct nes_device *nesdev, struct nes_qp *nesqp)
45620 {
45621 struct sk_buff *skb;
45622 unsigned long flags;
45623 - atomic_inc(&pau_qps_destroyed);
45624 + atomic_inc_unchecked(&pau_qps_destroyed);
45625
45626 /* Free packets that have not yet been forwarded */
45627 /* Lock is acquired by skb_dequeue when removing the skb */
45628 @@ -810,7 +810,7 @@ static void nes_mgt_ce_handler(struct nes_device *nesdev, struct nes_hw_nic_cq *
45629 cq->cq_vbase[head].cqe_words[NES_NIC_CQE_HASH_RCVNXT]);
45630 skb_queue_head_init(&nesqp->pau_list);
45631 spin_lock_init(&nesqp->pau_lock);
45632 - atomic_inc(&pau_qps_created);
45633 + atomic_inc_unchecked(&pau_qps_created);
45634 nes_change_quad_hash(nesdev, mgtvnic->nesvnic, nesqp);
45635 }
45636
45637 diff --git a/drivers/infiniband/hw/nes/nes_nic.c b/drivers/infiniband/hw/nes/nes_nic.c
45638 index 70acda9..a96de9d 100644
45639 --- a/drivers/infiniband/hw/nes/nes_nic.c
45640 +++ b/drivers/infiniband/hw/nes/nes_nic.c
45641 @@ -1274,39 +1274,39 @@ static void nes_netdev_get_ethtool_stats(struct net_device *netdev,
45642 target_stat_values[++index] = mh_detected;
45643 target_stat_values[++index] = mh_pauses_sent;
45644 target_stat_values[++index] = nesvnic->endnode_ipv4_tcp_retransmits;
45645 - target_stat_values[++index] = atomic_read(&cm_connects);
45646 - target_stat_values[++index] = atomic_read(&cm_accepts);
45647 - target_stat_values[++index] = atomic_read(&cm_disconnects);
45648 - target_stat_values[++index] = atomic_read(&cm_connecteds);
45649 - target_stat_values[++index] = atomic_read(&cm_connect_reqs);
45650 - target_stat_values[++index] = atomic_read(&cm_rejects);
45651 - target_stat_values[++index] = atomic_read(&mod_qp_timouts);
45652 - target_stat_values[++index] = atomic_read(&qps_created);
45653 - target_stat_values[++index] = atomic_read(&sw_qps_destroyed);
45654 - target_stat_values[++index] = atomic_read(&qps_destroyed);
45655 - target_stat_values[++index] = atomic_read(&cm_closes);
45656 + target_stat_values[++index] = atomic_read_unchecked(&cm_connects);
45657 + target_stat_values[++index] = atomic_read_unchecked(&cm_accepts);
45658 + target_stat_values[++index] = atomic_read_unchecked(&cm_disconnects);
45659 + target_stat_values[++index] = atomic_read_unchecked(&cm_connecteds);
45660 + target_stat_values[++index] = atomic_read_unchecked(&cm_connect_reqs);
45661 + target_stat_values[++index] = atomic_read_unchecked(&cm_rejects);
45662 + target_stat_values[++index] = atomic_read_unchecked(&mod_qp_timouts);
45663 + target_stat_values[++index] = atomic_read_unchecked(&qps_created);
45664 + target_stat_values[++index] = atomic_read_unchecked(&sw_qps_destroyed);
45665 + target_stat_values[++index] = atomic_read_unchecked(&qps_destroyed);
45666 + target_stat_values[++index] = atomic_read_unchecked(&cm_closes);
45667 target_stat_values[++index] = cm_packets_sent;
45668 target_stat_values[++index] = cm_packets_bounced;
45669 target_stat_values[++index] = cm_packets_created;
45670 target_stat_values[++index] = cm_packets_received;
45671 target_stat_values[++index] = cm_packets_dropped;
45672 target_stat_values[++index] = cm_packets_retrans;
45673 - target_stat_values[++index] = atomic_read(&cm_listens_created);
45674 - target_stat_values[++index] = atomic_read(&cm_listens_destroyed);
45675 + target_stat_values[++index] = atomic_read_unchecked(&cm_listens_created);
45676 + target_stat_values[++index] = atomic_read_unchecked(&cm_listens_destroyed);
45677 target_stat_values[++index] = cm_backlog_drops;
45678 - target_stat_values[++index] = atomic_read(&cm_loopbacks);
45679 - target_stat_values[++index] = atomic_read(&cm_nodes_created);
45680 - target_stat_values[++index] = atomic_read(&cm_nodes_destroyed);
45681 - target_stat_values[++index] = atomic_read(&cm_accel_dropped_pkts);
45682 - target_stat_values[++index] = atomic_read(&cm_resets_recvd);
45683 + target_stat_values[++index] = atomic_read_unchecked(&cm_loopbacks);
45684 + target_stat_values[++index] = atomic_read_unchecked(&cm_nodes_created);
45685 + target_stat_values[++index] = atomic_read_unchecked(&cm_nodes_destroyed);
45686 + target_stat_values[++index] = atomic_read_unchecked(&cm_accel_dropped_pkts);
45687 + target_stat_values[++index] = atomic_read_unchecked(&cm_resets_recvd);
45688 target_stat_values[++index] = nesadapter->free_4kpbl;
45689 target_stat_values[++index] = nesadapter->free_256pbl;
45690 target_stat_values[++index] = int_mod_timer_init;
45691 target_stat_values[++index] = nesvnic->lro_mgr.stats.aggregated;
45692 target_stat_values[++index] = nesvnic->lro_mgr.stats.flushed;
45693 target_stat_values[++index] = nesvnic->lro_mgr.stats.no_desc;
45694 - target_stat_values[++index] = atomic_read(&pau_qps_created);
45695 - target_stat_values[++index] = atomic_read(&pau_qps_destroyed);
45696 + target_stat_values[++index] = atomic_read_unchecked(&pau_qps_created);
45697 + target_stat_values[++index] = atomic_read_unchecked(&pau_qps_destroyed);
45698 }
45699
45700 /**
45701 diff --git a/drivers/infiniband/hw/nes/nes_verbs.c b/drivers/infiniband/hw/nes/nes_verbs.c
45702 index fbc43e5..3672792 100644
45703 --- a/drivers/infiniband/hw/nes/nes_verbs.c
45704 +++ b/drivers/infiniband/hw/nes/nes_verbs.c
45705 @@ -46,9 +46,9 @@
45706
45707 #include <rdma/ib_umem.h>
45708
45709 -atomic_t mod_qp_timouts;
45710 -atomic_t qps_created;
45711 -atomic_t sw_qps_destroyed;
45712 +atomic_unchecked_t mod_qp_timouts;
45713 +atomic_unchecked_t qps_created;
45714 +atomic_unchecked_t sw_qps_destroyed;
45715
45716 static void nes_unregister_ofa_device(struct nes_ib_device *nesibdev);
45717
45718 @@ -1137,7 +1137,7 @@ static struct ib_qp *nes_create_qp(struct ib_pd *ibpd,
45719 if (init_attr->create_flags)
45720 return ERR_PTR(-EINVAL);
45721
45722 - atomic_inc(&qps_created);
45723 + atomic_inc_unchecked(&qps_created);
45724 switch (init_attr->qp_type) {
45725 case IB_QPT_RC:
45726 if (nes_drv_opt & NES_DRV_OPT_NO_INLINE_DATA) {
45727 @@ -1471,7 +1471,7 @@ static int nes_destroy_qp(struct ib_qp *ibqp)
45728 struct iw_cm_event cm_event;
45729 int ret = 0;
45730
45731 - atomic_inc(&sw_qps_destroyed);
45732 + atomic_inc_unchecked(&sw_qps_destroyed);
45733 nesqp->destroyed = 1;
45734
45735 /* Blow away the connection if it exists. */
45736 diff --git a/drivers/infiniband/hw/qib/qib.h b/drivers/infiniband/hw/qib/qib.h
45737 index 7df16f7..7e1b21e 100644
45738 --- a/drivers/infiniband/hw/qib/qib.h
45739 +++ b/drivers/infiniband/hw/qib/qib.h
45740 @@ -52,6 +52,7 @@
45741 #include <linux/kref.h>
45742 #include <linux/sched.h>
45743 #include <linux/kthread.h>
45744 +#include <linux/slab.h>
45745
45746 #include "qib_common.h"
45747 #include "qib_verbs.h"
45748 diff --git a/drivers/infiniband/ulp/ipoib/ipoib_netlink.c b/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
45749 index cdc7df4..a2fdfdb 100644
45750 --- a/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
45751 +++ b/drivers/infiniband/ulp/ipoib/ipoib_netlink.c
45752 @@ -156,7 +156,7 @@ static size_t ipoib_get_size(const struct net_device *dev)
45753 nla_total_size(2); /* IFLA_IPOIB_UMCAST */
45754 }
45755
45756 -static struct rtnl_link_ops ipoib_link_ops __read_mostly = {
45757 +static struct rtnl_link_ops ipoib_link_ops = {
45758 .kind = "ipoib",
45759 .maxtype = IFLA_IPOIB_MAX,
45760 .policy = ipoib_policy,
45761 diff --git a/drivers/input/gameport/gameport.c b/drivers/input/gameport/gameport.c
45762 index e853a21..56fc5a8 100644
45763 --- a/drivers/input/gameport/gameport.c
45764 +++ b/drivers/input/gameport/gameport.c
45765 @@ -527,14 +527,14 @@ EXPORT_SYMBOL(gameport_set_phys);
45766 */
45767 static void gameport_init_port(struct gameport *gameport)
45768 {
45769 - static atomic_t gameport_no = ATOMIC_INIT(-1);
45770 + static atomic_unchecked_t gameport_no = ATOMIC_INIT(-1);
45771
45772 __module_get(THIS_MODULE);
45773
45774 mutex_init(&gameport->drv_mutex);
45775 device_initialize(&gameport->dev);
45776 dev_set_name(&gameport->dev, "gameport%lu",
45777 - (unsigned long)atomic_inc_return(&gameport_no));
45778 + (unsigned long)atomic_inc_return_unchecked(&gameport_no));
45779 gameport->dev.bus = &gameport_bus;
45780 gameport->dev.release = gameport_release_port;
45781 if (gameport->parent)
45782 diff --git a/drivers/input/input.c b/drivers/input/input.c
45783 index 78d2499..1f0318e 100644
45784 --- a/drivers/input/input.c
45785 +++ b/drivers/input/input.c
45786 @@ -1775,7 +1775,7 @@ EXPORT_SYMBOL_GPL(input_class);
45787 */
45788 struct input_dev *input_allocate_device(void)
45789 {
45790 - static atomic_t input_no = ATOMIC_INIT(-1);
45791 + static atomic_unchecked_t input_no = ATOMIC_INIT(-1);
45792 struct input_dev *dev;
45793
45794 dev = kzalloc(sizeof(struct input_dev), GFP_KERNEL);
45795 @@ -1790,7 +1790,7 @@ struct input_dev *input_allocate_device(void)
45796 INIT_LIST_HEAD(&dev->node);
45797
45798 dev_set_name(&dev->dev, "input%lu",
45799 - (unsigned long)atomic_inc_return(&input_no));
45800 + (unsigned long)atomic_inc_return_unchecked(&input_no));
45801
45802 __module_get(THIS_MODULE);
45803 }
45804 diff --git a/drivers/input/joystick/sidewinder.c b/drivers/input/joystick/sidewinder.c
45805 index 4a95b22..874c182 100644
45806 --- a/drivers/input/joystick/sidewinder.c
45807 +++ b/drivers/input/joystick/sidewinder.c
45808 @@ -30,6 +30,7 @@
45809 #include <linux/kernel.h>
45810 #include <linux/module.h>
45811 #include <linux/slab.h>
45812 +#include <linux/sched.h>
45813 #include <linux/input.h>
45814 #include <linux/gameport.h>
45815 #include <linux/jiffies.h>
45816 diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
45817 index f8850f9..9708a2d 100644
45818 --- a/drivers/input/joystick/xpad.c
45819 +++ b/drivers/input/joystick/xpad.c
45820 @@ -959,7 +959,7 @@ static void xpad_led_set(struct led_classdev *led_cdev,
45821
45822 static int xpad_led_probe(struct usb_xpad *xpad)
45823 {
45824 - static atomic_t led_seq = ATOMIC_INIT(-1);
45825 + static atomic_unchecked_t led_seq = ATOMIC_INIT(-1);
45826 struct xpad_led *led;
45827 struct led_classdev *led_cdev;
45828 int error;
45829 @@ -971,7 +971,7 @@ static int xpad_led_probe(struct usb_xpad *xpad)
45830 if (!led)
45831 return -ENOMEM;
45832
45833 - xpad->led_no = atomic_inc_return(&led_seq);
45834 + xpad->led_no = atomic_inc_return_unchecked(&led_seq);
45835
45836 snprintf(led->name, sizeof(led->name), "xpad%lu", xpad->led_no);
45837 led->xpad = xpad;
45838 diff --git a/drivers/input/misc/ims-pcu.c b/drivers/input/misc/ims-pcu.c
45839 index ac1fa5f..5f7502c 100644
45840 --- a/drivers/input/misc/ims-pcu.c
45841 +++ b/drivers/input/misc/ims-pcu.c
45842 @@ -1851,7 +1851,7 @@ static int ims_pcu_identify_type(struct ims_pcu *pcu, u8 *device_id)
45843
45844 static int ims_pcu_init_application_mode(struct ims_pcu *pcu)
45845 {
45846 - static atomic_t device_no = ATOMIC_INIT(-1);
45847 + static atomic_unchecked_t device_no = ATOMIC_INIT(-1);
45848
45849 const struct ims_pcu_device_info *info;
45850 int error;
45851 @@ -1882,7 +1882,7 @@ static int ims_pcu_init_application_mode(struct ims_pcu *pcu)
45852 }
45853
45854 /* Device appears to be operable, complete initialization */
45855 - pcu->device_no = atomic_inc_return(&device_no);
45856 + pcu->device_no = atomic_inc_return_unchecked(&device_no);
45857
45858 /*
45859 * PCU-B devices, both GEN_1 and GEN_2 do not have OFN sensor
45860 diff --git a/drivers/input/mouse/psmouse.h b/drivers/input/mouse/psmouse.h
45861 index ad5a5a1..5eac214 100644
45862 --- a/drivers/input/mouse/psmouse.h
45863 +++ b/drivers/input/mouse/psmouse.h
45864 @@ -125,7 +125,7 @@ struct psmouse_attribute {
45865 ssize_t (*set)(struct psmouse *psmouse, void *data,
45866 const char *buf, size_t count);
45867 bool protect;
45868 -};
45869 +} __do_const;
45870 #define to_psmouse_attr(a) container_of((a), struct psmouse_attribute, dattr)
45871
45872 ssize_t psmouse_attr_show_helper(struct device *dev, struct device_attribute *attr,
45873 diff --git a/drivers/input/mousedev.c b/drivers/input/mousedev.c
45874 index b604564..3f14ae4 100644
45875 --- a/drivers/input/mousedev.c
45876 +++ b/drivers/input/mousedev.c
45877 @@ -744,7 +744,7 @@ static ssize_t mousedev_read(struct file *file, char __user *buffer,
45878
45879 spin_unlock_irq(&client->packet_lock);
45880
45881 - if (copy_to_user(buffer, data, count))
45882 + if (count > sizeof(data) || copy_to_user(buffer, data, count))
45883 return -EFAULT;
45884
45885 return count;
45886 diff --git a/drivers/input/serio/serio.c b/drivers/input/serio/serio.c
45887 index a05a517..323a2fd 100644
45888 --- a/drivers/input/serio/serio.c
45889 +++ b/drivers/input/serio/serio.c
45890 @@ -514,7 +514,7 @@ static void serio_release_port(struct device *dev)
45891 */
45892 static void serio_init_port(struct serio *serio)
45893 {
45894 - static atomic_t serio_no = ATOMIC_INIT(-1);
45895 + static atomic_unchecked_t serio_no = ATOMIC_INIT(-1);
45896
45897 __module_get(THIS_MODULE);
45898
45899 @@ -525,7 +525,7 @@ static void serio_init_port(struct serio *serio)
45900 mutex_init(&serio->drv_mutex);
45901 device_initialize(&serio->dev);
45902 dev_set_name(&serio->dev, "serio%lu",
45903 - (unsigned long)atomic_inc_return(&serio_no));
45904 + (unsigned long)atomic_inc_return_unchecked(&serio_no));
45905 serio->dev.bus = &serio_bus;
45906 serio->dev.release = serio_release_port;
45907 serio->dev.groups = serio_device_attr_groups;
45908 diff --git a/drivers/input/serio/serio_raw.c b/drivers/input/serio/serio_raw.c
45909 index 71ef5d6..93380a9 100644
45910 --- a/drivers/input/serio/serio_raw.c
45911 +++ b/drivers/input/serio/serio_raw.c
45912 @@ -292,7 +292,7 @@ static irqreturn_t serio_raw_interrupt(struct serio *serio, unsigned char data,
45913
45914 static int serio_raw_connect(struct serio *serio, struct serio_driver *drv)
45915 {
45916 - static atomic_t serio_raw_no = ATOMIC_INIT(-1);
45917 + static atomic_unchecked_t serio_raw_no = ATOMIC_INIT(-1);
45918 struct serio_raw *serio_raw;
45919 int err;
45920
45921 @@ -303,7 +303,7 @@ static int serio_raw_connect(struct serio *serio, struct serio_driver *drv)
45922 }
45923
45924 snprintf(serio_raw->name, sizeof(serio_raw->name),
45925 - "serio_raw%ld", (long)atomic_inc_return(&serio_raw_no));
45926 + "serio_raw%ld", (long)atomic_inc_return_unchecked(&serio_raw_no));
45927 kref_init(&serio_raw->kref);
45928 INIT_LIST_HEAD(&serio_raw->client_list);
45929 init_waitqueue_head(&serio_raw->wait);
45930 diff --git a/drivers/input/touchscreen/htcpen.c b/drivers/input/touchscreen/htcpen.c
45931 index 92e2243..8fd9092 100644
45932 --- a/drivers/input/touchscreen/htcpen.c
45933 +++ b/drivers/input/touchscreen/htcpen.c
45934 @@ -219,7 +219,7 @@ static struct isa_driver htcpen_isa_driver = {
45935 }
45936 };
45937
45938 -static struct dmi_system_id htcshift_dmi_table[] __initdata = {
45939 +static const struct dmi_system_id htcshift_dmi_table[] __initconst = {
45940 {
45941 .ident = "Shift",
45942 .matches = {
45943 diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
45944 index f1fb1d3..82257cc 100644
45945 --- a/drivers/iommu/Kconfig
45946 +++ b/drivers/iommu/Kconfig
45947 @@ -102,6 +102,7 @@ config AMD_IOMMU_STATS
45948 bool "Export AMD IOMMU statistics to debugfs"
45949 depends on AMD_IOMMU
45950 select DEBUG_FS
45951 + depends on !GRKERNSEC_KMEM
45952 ---help---
45953 This option enables code in the AMD IOMMU driver to collect various
45954 statistics about whats happening in the driver and exports that
45955 diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
45956 index 1b10e5fd..9eddba7 100644
45957 --- a/drivers/iommu/amd_iommu.c
45958 +++ b/drivers/iommu/amd_iommu.c
45959 @@ -794,11 +794,21 @@ static void copy_cmd_to_buffer(struct amd_iommu *iommu,
45960
45961 static void build_completion_wait(struct iommu_cmd *cmd, u64 address)
45962 {
45963 + phys_addr_t physaddr;
45964 WARN_ON(address & 0x7ULL);
45965
45966 memset(cmd, 0, sizeof(*cmd));
45967 - cmd->data[0] = lower_32_bits(__pa(address)) | CMD_COMPL_WAIT_STORE_MASK;
45968 - cmd->data[1] = upper_32_bits(__pa(address));
45969 +
45970 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
45971 + if (object_starts_on_stack((void *)address)) {
45972 + void *adjbuf = (void *)address - current->stack + current->lowmem_stack;
45973 + physaddr = __pa((u64)adjbuf);
45974 + } else
45975 +#endif
45976 + physaddr = __pa(address);
45977 +
45978 + cmd->data[0] = lower_32_bits(physaddr) | CMD_COMPL_WAIT_STORE_MASK;
45979 + cmd->data[1] = upper_32_bits(physaddr);
45980 cmd->data[2] = 1;
45981 CMD_SET_TYPE(cmd, CMD_COMPL_WAIT);
45982 }
45983 diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c
45984 index 4cd0c29..afd3cbe 100644
45985 --- a/drivers/iommu/arm-smmu.c
45986 +++ b/drivers/iommu/arm-smmu.c
45987 @@ -330,7 +330,7 @@ enum arm_smmu_domain_stage {
45988
45989 struct arm_smmu_domain {
45990 struct arm_smmu_device *smmu;
45991 - struct io_pgtable_ops *pgtbl_ops;
45992 + struct io_pgtable *pgtbl;
45993 spinlock_t pgtbl_lock;
45994 struct arm_smmu_cfg cfg;
45995 enum arm_smmu_domain_stage stage;
45996 @@ -816,7 +816,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
45997 {
45998 int irq, start, ret = 0;
45999 unsigned long ias, oas;
46000 - struct io_pgtable_ops *pgtbl_ops;
46001 + struct io_pgtable *pgtbl;
46002 struct io_pgtable_cfg pgtbl_cfg;
46003 enum io_pgtable_fmt fmt;
46004 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46005 @@ -901,14 +901,16 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
46006 };
46007
46008 smmu_domain->smmu = smmu;
46009 - pgtbl_ops = alloc_io_pgtable_ops(fmt, &pgtbl_cfg, smmu_domain);
46010 - if (!pgtbl_ops) {
46011 + pgtbl = alloc_io_pgtable(fmt, &pgtbl_cfg, smmu_domain);
46012 + if (!pgtbl) {
46013 ret = -ENOMEM;
46014 goto out_clear_smmu;
46015 }
46016
46017 /* Update our support page sizes to reflect the page table format */
46018 - arm_smmu_ops.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
46019 + pax_open_kernel();
46020 + *(unsigned long *)&arm_smmu_ops.pgsize_bitmap = pgtbl_cfg.pgsize_bitmap;
46021 + pax_close_kernel();
46022
46023 /* Initialise the context bank with our page table cfg */
46024 arm_smmu_init_context_bank(smmu_domain, &pgtbl_cfg);
46025 @@ -929,7 +931,7 @@ static int arm_smmu_init_domain_context(struct iommu_domain *domain,
46026 mutex_unlock(&smmu_domain->init_mutex);
46027
46028 /* Publish page table ops for map/unmap */
46029 - smmu_domain->pgtbl_ops = pgtbl_ops;
46030 + smmu_domain->pgtbl = pgtbl;
46031 return 0;
46032
46033 out_clear_smmu:
46034 @@ -962,8 +964,7 @@ static void arm_smmu_destroy_domain_context(struct iommu_domain *domain)
46035 free_irq(irq, domain);
46036 }
46037
46038 - if (smmu_domain->pgtbl_ops)
46039 - free_io_pgtable_ops(smmu_domain->pgtbl_ops);
46040 + free_io_pgtable(smmu_domain->pgtbl);
46041
46042 __arm_smmu_free_bitmap(smmu->context_map, cfg->cbndx);
46043 }
46044 @@ -1189,13 +1190,13 @@ static int arm_smmu_map(struct iommu_domain *domain, unsigned long iova,
46045 int ret;
46046 unsigned long flags;
46047 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46048 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46049 + struct io_pgtable *iop = smmu_domain->pgtbl;
46050
46051 - if (!ops)
46052 + if (!iop)
46053 return -ENODEV;
46054
46055 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46056 - ret = ops->map(ops, iova, paddr, size, prot);
46057 + ret = iop->ops->map(iop, iova, paddr, size, prot);
46058 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46059 return ret;
46060 }
46061 @@ -1206,13 +1207,13 @@ static size_t arm_smmu_unmap(struct iommu_domain *domain, unsigned long iova,
46062 size_t ret;
46063 unsigned long flags;
46064 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46065 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46066 + struct io_pgtable *iop = smmu_domain->pgtbl;
46067
46068 - if (!ops)
46069 + if (!iop)
46070 return 0;
46071
46072 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46073 - ret = ops->unmap(ops, iova, size);
46074 + ret = iop->ops->unmap(iop, iova, size);
46075 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46076 return ret;
46077 }
46078 @@ -1223,7 +1224,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
46079 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46080 struct arm_smmu_device *smmu = smmu_domain->smmu;
46081 struct arm_smmu_cfg *cfg = &smmu_domain->cfg;
46082 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46083 + struct io_pgtable *iop = smmu_domain->pgtbl;
46084 struct device *dev = smmu->dev;
46085 void __iomem *cb_base;
46086 u32 tmp;
46087 @@ -1246,7 +1247,7 @@ static phys_addr_t arm_smmu_iova_to_phys_hard(struct iommu_domain *domain,
46088 dev_err(dev,
46089 "iova to phys timed out on 0x%pad. Falling back to software table walk.\n",
46090 &iova);
46091 - return ops->iova_to_phys(ops, iova);
46092 + return iop->ops->iova_to_phys(iop, iova);
46093 }
46094
46095 phys = readl_relaxed(cb_base + ARM_SMMU_CB_PAR_LO);
46096 @@ -1267,9 +1268,9 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
46097 phys_addr_t ret;
46098 unsigned long flags;
46099 struct arm_smmu_domain *smmu_domain = to_smmu_domain(domain);
46100 - struct io_pgtable_ops *ops= smmu_domain->pgtbl_ops;
46101 + struct io_pgtable *iop = smmu_domain->pgtbl;
46102
46103 - if (!ops)
46104 + if (!iop)
46105 return 0;
46106
46107 spin_lock_irqsave(&smmu_domain->pgtbl_lock, flags);
46108 @@ -1277,7 +1278,7 @@ static phys_addr_t arm_smmu_iova_to_phys(struct iommu_domain *domain,
46109 smmu_domain->stage == ARM_SMMU_DOMAIN_S1) {
46110 ret = arm_smmu_iova_to_phys_hard(domain, iova);
46111 } else {
46112 - ret = ops->iova_to_phys(ops, iova);
46113 + ret = iop->ops->iova_to_phys(iop, iova);
46114 }
46115
46116 spin_unlock_irqrestore(&smmu_domain->pgtbl_lock, flags);
46117 @@ -1667,7 +1668,9 @@ static int arm_smmu_device_cfg_probe(struct arm_smmu_device *smmu)
46118 size |= SZ_64K | SZ_512M;
46119 }
46120
46121 - arm_smmu_ops.pgsize_bitmap &= size;
46122 + pax_open_kernel();
46123 + *(unsigned long *)&arm_smmu_ops.pgsize_bitmap &= size;
46124 + pax_close_kernel();
46125 dev_notice(smmu->dev, "\tSupported page sizes: 0x%08lx\n", size);
46126
46127 if (smmu->features & ARM_SMMU_FEAT_TRANS_S1)
46128 diff --git a/drivers/iommu/io-pgtable-arm.c b/drivers/iommu/io-pgtable-arm.c
46129 index e29d5d7..e5eeb3e 100644
46130 --- a/drivers/iommu/io-pgtable-arm.c
46131 +++ b/drivers/iommu/io-pgtable-arm.c
46132 @@ -36,12 +36,6 @@
46133 #define io_pgtable_to_data(x) \
46134 container_of((x), struct arm_lpae_io_pgtable, iop)
46135
46136 -#define io_pgtable_ops_to_pgtable(x) \
46137 - container_of((x), struct io_pgtable, ops)
46138 -
46139 -#define io_pgtable_ops_to_data(x) \
46140 - io_pgtable_to_data(io_pgtable_ops_to_pgtable(x))
46141 -
46142 /*
46143 * For consistency with the architecture, we always consider
46144 * ARM_LPAE_MAX_LEVELS levels, with the walk starting at level n >=0
46145 @@ -319,10 +313,10 @@ static arm_lpae_iopte arm_lpae_prot_to_pte(struct arm_lpae_io_pgtable *data,
46146 return pte;
46147 }
46148
46149 -static int arm_lpae_map(struct io_pgtable_ops *ops, unsigned long iova,
46150 +static int arm_lpae_map(struct io_pgtable *iop, unsigned long iova,
46151 phys_addr_t paddr, size_t size, int iommu_prot)
46152 {
46153 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46154 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46155 arm_lpae_iopte *ptep = data->pgd;
46156 int lvl = ARM_LPAE_START_LVL(data);
46157 arm_lpae_iopte prot;
46158 @@ -462,12 +456,11 @@ static int __arm_lpae_unmap(struct arm_lpae_io_pgtable *data,
46159 return __arm_lpae_unmap(data, iova, size, lvl + 1, ptep);
46160 }
46161
46162 -static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
46163 +static int arm_lpae_unmap(struct io_pgtable *iop, unsigned long iova,
46164 size_t size)
46165 {
46166 size_t unmapped;
46167 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46168 - struct io_pgtable *iop = &data->iop;
46169 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46170 arm_lpae_iopte *ptep = data->pgd;
46171 int lvl = ARM_LPAE_START_LVL(data);
46172
46173 @@ -478,10 +471,10 @@ static int arm_lpae_unmap(struct io_pgtable_ops *ops, unsigned long iova,
46174 return unmapped;
46175 }
46176
46177 -static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable_ops *ops,
46178 +static phys_addr_t arm_lpae_iova_to_phys(struct io_pgtable *iop,
46179 unsigned long iova)
46180 {
46181 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46182 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46183 arm_lpae_iopte pte, *ptep = data->pgd;
46184 int lvl = ARM_LPAE_START_LVL(data);
46185
46186 @@ -548,6 +541,12 @@ static void arm_lpae_restrict_pgsizes(struct io_pgtable_cfg *cfg)
46187 }
46188 }
46189
46190 +static struct io_pgtable_ops arm_lpae_io_pgtable_ops = {
46191 + .map = arm_lpae_map,
46192 + .unmap = arm_lpae_unmap,
46193 + .iova_to_phys = arm_lpae_iova_to_phys,
46194 +};
46195 +
46196 static struct arm_lpae_io_pgtable *
46197 arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
46198 {
46199 @@ -579,11 +578,7 @@ arm_lpae_alloc_pgtable(struct io_pgtable_cfg *cfg)
46200 pgd_bits = va_bits - (data->bits_per_level * (data->levels - 1));
46201 data->pgd_size = 1UL << (pgd_bits + ilog2(sizeof(arm_lpae_iopte)));
46202
46203 - data->iop.ops = (struct io_pgtable_ops) {
46204 - .map = arm_lpae_map,
46205 - .unmap = arm_lpae_unmap,
46206 - .iova_to_phys = arm_lpae_iova_to_phys,
46207 - };
46208 + data->iop.ops = &arm_lpae_io_pgtable_ops;
46209
46210 return data;
46211 }
46212 @@ -845,9 +840,9 @@ static struct iommu_gather_ops dummy_tlb_ops __initdata = {
46213 .flush_pgtable = dummy_flush_pgtable,
46214 };
46215
46216 -static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
46217 +static void __init arm_lpae_dump_ops(struct io_pgtable *iop)
46218 {
46219 - struct arm_lpae_io_pgtable *data = io_pgtable_ops_to_data(ops);
46220 + struct arm_lpae_io_pgtable *data = io_pgtable_to_data(iop);
46221 struct io_pgtable_cfg *cfg = &data->iop.cfg;
46222
46223 pr_err("cfg: pgsize_bitmap 0x%lx, ias %u-bit\n",
46224 @@ -857,9 +852,9 @@ static void __init arm_lpae_dump_ops(struct io_pgtable_ops *ops)
46225 data->bits_per_level, data->pgd);
46226 }
46227
46228 -#define __FAIL(ops, i) ({ \
46229 +#define __FAIL(iop, i) ({ \
46230 WARN(1, "selftest: test failed for fmt idx %d\n", (i)); \
46231 - arm_lpae_dump_ops(ops); \
46232 + arm_lpae_dump_ops(iop); \
46233 selftest_running = false; \
46234 -EFAULT; \
46235 })
46236 @@ -874,30 +869,32 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46237 int i, j;
46238 unsigned long iova;
46239 size_t size;
46240 - struct io_pgtable_ops *ops;
46241 + struct io_pgtable *iop;
46242 + const struct io_pgtable_ops *ops;
46243
46244 selftest_running = true;
46245
46246 for (i = 0; i < ARRAY_SIZE(fmts); ++i) {
46247 cfg_cookie = cfg;
46248 - ops = alloc_io_pgtable_ops(fmts[i], cfg, cfg);
46249 - if (!ops) {
46250 + iop = alloc_io_pgtable(fmts[i], cfg, cfg);
46251 + if (!iop) {
46252 pr_err("selftest: failed to allocate io pgtable ops\n");
46253 return -ENOMEM;
46254 }
46255 + ops = iop->ops;
46256
46257 /*
46258 * Initial sanity checks.
46259 * Empty page tables shouldn't provide any translations.
46260 */
46261 - if (ops->iova_to_phys(ops, 42))
46262 - return __FAIL(ops, i);
46263 + if (ops->iova_to_phys(iop, 42))
46264 + return __FAIL(iop, i);
46265
46266 - if (ops->iova_to_phys(ops, SZ_1G + 42))
46267 - return __FAIL(ops, i);
46268 + if (ops->iova_to_phys(iop, SZ_1G + 42))
46269 + return __FAIL(iop, i);
46270
46271 - if (ops->iova_to_phys(ops, SZ_2G + 42))
46272 - return __FAIL(ops, i);
46273 + if (ops->iova_to_phys(iop, SZ_2G + 42))
46274 + return __FAIL(iop, i);
46275
46276 /*
46277 * Distinct mappings of different granule sizes.
46278 @@ -907,19 +904,19 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46279 while (j != BITS_PER_LONG) {
46280 size = 1UL << j;
46281
46282 - if (ops->map(ops, iova, iova, size, IOMMU_READ |
46283 + if (ops->map(iop, iova, iova, size, IOMMU_READ |
46284 IOMMU_WRITE |
46285 IOMMU_NOEXEC |
46286 IOMMU_CACHE))
46287 - return __FAIL(ops, i);
46288 + return __FAIL(iop, i);
46289
46290 /* Overlapping mappings */
46291 - if (!ops->map(ops, iova, iova + size, size,
46292 + if (!ops->map(iop, iova, iova + size, size,
46293 IOMMU_READ | IOMMU_NOEXEC))
46294 - return __FAIL(ops, i);
46295 + return __FAIL(iop, i);
46296
46297 - if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
46298 - return __FAIL(ops, i);
46299 + if (ops->iova_to_phys(iop, iova + 42) != (iova + 42))
46300 + return __FAIL(iop, i);
46301
46302 iova += SZ_1G;
46303 j++;
46304 @@ -928,15 +925,15 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46305
46306 /* Partial unmap */
46307 size = 1UL << __ffs(cfg->pgsize_bitmap);
46308 - if (ops->unmap(ops, SZ_1G + size, size) != size)
46309 - return __FAIL(ops, i);
46310 + if (ops->unmap(iop, SZ_1G + size, size) != size)
46311 + return __FAIL(iop, i);
46312
46313 /* Remap of partial unmap */
46314 - if (ops->map(ops, SZ_1G + size, size, size, IOMMU_READ))
46315 - return __FAIL(ops, i);
46316 + if (ops->map(iop, SZ_1G + size, size, size, IOMMU_READ))
46317 + return __FAIL(iop, i);
46318
46319 - if (ops->iova_to_phys(ops, SZ_1G + size + 42) != (size + 42))
46320 - return __FAIL(ops, i);
46321 + if (ops->iova_to_phys(iop, SZ_1G + size + 42) != (size + 42))
46322 + return __FAIL(iop, i);
46323
46324 /* Full unmap */
46325 iova = 0;
46326 @@ -944,25 +941,25 @@ static int __init arm_lpae_run_tests(struct io_pgtable_cfg *cfg)
46327 while (j != BITS_PER_LONG) {
46328 size = 1UL << j;
46329
46330 - if (ops->unmap(ops, iova, size) != size)
46331 - return __FAIL(ops, i);
46332 + if (ops->unmap(iop, iova, size) != size)
46333 + return __FAIL(iop, i);
46334
46335 - if (ops->iova_to_phys(ops, iova + 42))
46336 - return __FAIL(ops, i);
46337 + if (ops->iova_to_phys(iop, iova + 42))
46338 + return __FAIL(iop, i);
46339
46340 /* Remap full block */
46341 - if (ops->map(ops, iova, iova, size, IOMMU_WRITE))
46342 - return __FAIL(ops, i);
46343 + if (ops->map(iop, iova, iova, size, IOMMU_WRITE))
46344 + return __FAIL(iop, i);
46345
46346 - if (ops->iova_to_phys(ops, iova + 42) != (iova + 42))
46347 - return __FAIL(ops, i);
46348 + if (ops->iova_to_phys(iop, iova + 42) != (iova + 42))
46349 + return __FAIL(iop, i);
46350
46351 iova += SZ_1G;
46352 j++;
46353 j = find_next_bit(&cfg->pgsize_bitmap, BITS_PER_LONG, j);
46354 }
46355
46356 - free_io_pgtable_ops(ops);
46357 + free_io_pgtable(iop);
46358 }
46359
46360 selftest_running = false;
46361 diff --git a/drivers/iommu/io-pgtable.c b/drivers/iommu/io-pgtable.c
46362 index 6436fe2..088c965 100644
46363 --- a/drivers/iommu/io-pgtable.c
46364 +++ b/drivers/iommu/io-pgtable.c
46365 @@ -40,7 +40,7 @@ io_pgtable_init_table[IO_PGTABLE_NUM_FMTS] =
46366 #endif
46367 };
46368
46369 -struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46370 +struct io_pgtable *alloc_io_pgtable(enum io_pgtable_fmt fmt,
46371 struct io_pgtable_cfg *cfg,
46372 void *cookie)
46373 {
46374 @@ -62,21 +62,18 @@ struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46375 iop->cookie = cookie;
46376 iop->cfg = *cfg;
46377
46378 - return &iop->ops;
46379 + return iop;
46380 }
46381
46382 /*
46383 * It is the IOMMU driver's responsibility to ensure that the page table
46384 * is no longer accessible to the walker by this point.
46385 */
46386 -void free_io_pgtable_ops(struct io_pgtable_ops *ops)
46387 +void free_io_pgtable(struct io_pgtable *iop)
46388 {
46389 - struct io_pgtable *iop;
46390 -
46391 - if (!ops)
46392 + if (!iop)
46393 return;
46394
46395 - iop = container_of(ops, struct io_pgtable, ops);
46396 iop->cfg.tlb->tlb_flush_all(iop->cookie);
46397 io_pgtable_init_table[iop->fmt]->free(iop);
46398 }
46399 diff --git a/drivers/iommu/io-pgtable.h b/drivers/iommu/io-pgtable.h
46400 index 10e32f6..0b276c8 100644
46401 --- a/drivers/iommu/io-pgtable.h
46402 +++ b/drivers/iommu/io-pgtable.h
46403 @@ -75,17 +75,18 @@ struct io_pgtable_cfg {
46404 * These functions map directly onto the iommu_ops member functions with
46405 * the same names.
46406 */
46407 +struct io_pgtable;
46408 struct io_pgtable_ops {
46409 - int (*map)(struct io_pgtable_ops *ops, unsigned long iova,
46410 + int (*map)(struct io_pgtable *iop, unsigned long iova,
46411 phys_addr_t paddr, size_t size, int prot);
46412 - int (*unmap)(struct io_pgtable_ops *ops, unsigned long iova,
46413 + int (*unmap)(struct io_pgtable *iop, unsigned long iova,
46414 size_t size);
46415 - phys_addr_t (*iova_to_phys)(struct io_pgtable_ops *ops,
46416 + phys_addr_t (*iova_to_phys)(struct io_pgtable *iop,
46417 unsigned long iova);
46418 };
46419
46420 /**
46421 - * alloc_io_pgtable_ops() - Allocate a page table allocator for use by an IOMMU.
46422 + * alloc_io_pgtable() - Allocate a page table allocator for use by an IOMMU.
46423 *
46424 * @fmt: The page table format.
46425 * @cfg: The page table configuration. This will be modified to represent
46426 @@ -94,9 +95,9 @@ struct io_pgtable_ops {
46427 * @cookie: An opaque token provided by the IOMMU driver and passed back to
46428 * the callback routines in cfg->tlb.
46429 */
46430 -struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46431 - struct io_pgtable_cfg *cfg,
46432 - void *cookie);
46433 +struct io_pgtable *alloc_io_pgtable(enum io_pgtable_fmt fmt,
46434 + struct io_pgtable_cfg *cfg,
46435 + void *cookie);
46436
46437 /**
46438 * free_io_pgtable_ops() - Free an io_pgtable_ops structure. The caller
46439 @@ -105,7 +106,7 @@ struct io_pgtable_ops *alloc_io_pgtable_ops(enum io_pgtable_fmt fmt,
46440 *
46441 * @ops: The ops returned from alloc_io_pgtable_ops.
46442 */
46443 -void free_io_pgtable_ops(struct io_pgtable_ops *ops);
46444 +void free_io_pgtable(struct io_pgtable *iop);
46445
46446
46447 /*
46448 @@ -125,7 +126,7 @@ struct io_pgtable {
46449 enum io_pgtable_fmt fmt;
46450 void *cookie;
46451 struct io_pgtable_cfg cfg;
46452 - struct io_pgtable_ops ops;
46453 + const struct io_pgtable_ops *ops;
46454 };
46455
46456 /**
46457 diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
46458 index f286090..bac3e7e 100644
46459 --- a/drivers/iommu/iommu.c
46460 +++ b/drivers/iommu/iommu.c
46461 @@ -934,7 +934,7 @@ static int iommu_bus_notifier(struct notifier_block *nb,
46462 static int iommu_bus_init(struct bus_type *bus, const struct iommu_ops *ops)
46463 {
46464 int err;
46465 - struct notifier_block *nb;
46466 + notifier_block_no_const *nb;
46467 struct iommu_callback_data cb = {
46468 .ops = ops,
46469 };
46470 diff --git a/drivers/iommu/ipmmu-vmsa.c b/drivers/iommu/ipmmu-vmsa.c
46471 index 1a67c53..23181d8 100644
46472 --- a/drivers/iommu/ipmmu-vmsa.c
46473 +++ b/drivers/iommu/ipmmu-vmsa.c
46474 @@ -41,7 +41,7 @@ struct ipmmu_vmsa_domain {
46475 struct iommu_domain io_domain;
46476
46477 struct io_pgtable_cfg cfg;
46478 - struct io_pgtable_ops *iop;
46479 + struct io_pgtable *iop;
46480
46481 unsigned int context_id;
46482 spinlock_t lock; /* Protects mappings */
46483 @@ -328,8 +328,7 @@ static int ipmmu_domain_init_context(struct ipmmu_vmsa_domain *domain)
46484 domain->cfg.oas = 40;
46485 domain->cfg.tlb = &ipmmu_gather_ops;
46486
46487 - domain->iop = alloc_io_pgtable_ops(ARM_32_LPAE_S1, &domain->cfg,
46488 - domain);
46489 + domain->iop = alloc_io_pgtable(ARM_32_LPAE_S1, &domain->cfg, domain);
46490 if (!domain->iop)
46491 return -EINVAL;
46492
46493 @@ -487,7 +486,7 @@ static void ipmmu_domain_free(struct iommu_domain *io_domain)
46494 * been detached.
46495 */
46496 ipmmu_domain_destroy_context(domain);
46497 - free_io_pgtable_ops(domain->iop);
46498 + free_io_pgtable(domain->iop);
46499 kfree(domain);
46500 }
46501
46502 @@ -556,7 +555,7 @@ static int ipmmu_map(struct iommu_domain *io_domain, unsigned long iova,
46503 if (!domain)
46504 return -ENODEV;
46505
46506 - return domain->iop->map(domain->iop, iova, paddr, size, prot);
46507 + return domain->iop->ops->map(domain->iop, iova, paddr, size, prot);
46508 }
46509
46510 static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
46511 @@ -564,7 +563,7 @@ static size_t ipmmu_unmap(struct iommu_domain *io_domain, unsigned long iova,
46512 {
46513 struct ipmmu_vmsa_domain *domain = to_vmsa_domain(io_domain);
46514
46515 - return domain->iop->unmap(domain->iop, iova, size);
46516 + return domain->iop->ops->unmap(domain->iop, iova, size);
46517 }
46518
46519 static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
46520 @@ -574,7 +573,7 @@ static phys_addr_t ipmmu_iova_to_phys(struct iommu_domain *io_domain,
46521
46522 /* TODO: Is locking needed ? */
46523
46524 - return domain->iop->iova_to_phys(domain->iop, iova);
46525 + return domain->iop->ops->iova_to_phys(domain->iop, iova);
46526 }
46527
46528 static int ipmmu_find_utlbs(struct ipmmu_vmsa_device *mmu, struct device *dev,
46529 diff --git a/drivers/iommu/irq_remapping.c b/drivers/iommu/irq_remapping.c
46530 index 2d99930..b8b358c 100644
46531 --- a/drivers/iommu/irq_remapping.c
46532 +++ b/drivers/iommu/irq_remapping.c
46533 @@ -149,7 +149,7 @@ int __init irq_remap_enable_fault_handling(void)
46534 void panic_if_irq_remap(const char *msg)
46535 {
46536 if (irq_remapping_enabled)
46537 - panic(msg);
46538 + panic("%s", msg);
46539 }
46540
46541 void ir_ack_apic_edge(struct irq_data *data)
46542 diff --git a/drivers/iommu/omap-iommu-debug.c b/drivers/iommu/omap-iommu-debug.c
46543 index f3d20a2..5dcb85e 100644
46544 --- a/drivers/iommu/omap-iommu-debug.c
46545 +++ b/drivers/iommu/omap-iommu-debug.c
46546 @@ -55,34 +55,22 @@ static ssize_t debug_read_regs(struct file *file, char __user *userbuf,
46547 return bytes;
46548 }
46549
46550 -static ssize_t debug_read_tlb(struct file *file, char __user *userbuf,
46551 - size_t count, loff_t *ppos)
46552 +static int debug_read_tlb(struct seq_file *s, void *data)
46553 {
46554 - struct omap_iommu *obj = file->private_data;
46555 - char *p, *buf;
46556 - ssize_t bytes, rest;
46557 + struct omap_iommu *obj = s->private;
46558
46559 if (is_omap_iommu_detached(obj))
46560 return -EPERM;
46561
46562 - buf = kmalloc(count, GFP_KERNEL);
46563 - if (!buf)
46564 - return -ENOMEM;
46565 - p = buf;
46566 -
46567 mutex_lock(&iommu_debug_lock);
46568
46569 - p += sprintf(p, "%8s %8s\n", "cam:", "ram:");
46570 - p += sprintf(p, "-----------------------------------------\n");
46571 - rest = count - (p - buf);
46572 - p += omap_dump_tlb_entries(obj, p, rest);
46573 -
46574 - bytes = simple_read_from_buffer(userbuf, count, ppos, buf, p - buf);
46575 + seq_printf(s, "%8s %8s\n", "cam:", "ram:");
46576 + seq_puts(s, "-----------------------------------------\n");
46577 + omap_dump_tlb_entries(obj, s);
46578
46579 mutex_unlock(&iommu_debug_lock);
46580 - kfree(buf);
46581
46582 - return bytes;
46583 + return 0;
46584 }
46585
46586 static void dump_ioptable(struct seq_file *s)
46587 @@ -157,7 +145,7 @@ static int debug_read_pagetable(struct seq_file *s, void *data)
46588 };
46589
46590 DEBUG_FOPS_RO(regs);
46591 -DEBUG_FOPS_RO(tlb);
46592 +DEBUG_SEQ_FOPS_RO(tlb);
46593 DEBUG_SEQ_FOPS_RO(pagetable);
46594
46595 #define __DEBUG_ADD_FILE(attr, mode) \
46596 diff --git a/drivers/iommu/omap-iommu.c b/drivers/iommu/omap-iommu.c
46597 index a22c33d..2247075e2 100644
46598 --- a/drivers/iommu/omap-iommu.c
46599 +++ b/drivers/iommu/omap-iommu.c
46600 @@ -546,36 +546,30 @@ __dump_tlb_entries(struct omap_iommu *obj, struct cr_regs *crs, int num)
46601 }
46602
46603 /**
46604 - * iotlb_dump_cr - Dump an iommu tlb entry into buf
46605 + * iotlb_dump_cr - Dump an iommu tlb entry into seq_file
46606 * @obj: target iommu
46607 * @cr: contents of cam and ram register
46608 - * @buf: output buffer
46609 + * @s: output seq_file
46610 **/
46611 static ssize_t iotlb_dump_cr(struct omap_iommu *obj, struct cr_regs *cr,
46612 - char *buf)
46613 + struct seq_file *s)
46614 {
46615 - char *p = buf;
46616 -
46617 /* FIXME: Need more detail analysis of cam/ram */
46618 - p += sprintf(p, "%08x %08x %01x\n", cr->cam, cr->ram,
46619 - (cr->cam & MMU_CAM_P) ? 1 : 0);
46620 -
46621 - return p - buf;
46622 + return seq_printf(s, "%08x %08x %01x\n", cr->cam, cr->ram,
46623 + (cr->cam & MMU_CAM_P) ? 1 : 0);
46624 }
46625
46626 /**
46627 - * omap_dump_tlb_entries - dump cr arrays to given buffer
46628 + * omap_dump_tlb_entries - dump cr arrays to given seq_file
46629 * @obj: target iommu
46630 - * @buf: output buffer
46631 + * @s: output seq_file
46632 **/
46633 -size_t omap_dump_tlb_entries(struct omap_iommu *obj, char *buf, ssize_t bytes)
46634 +size_t omap_dump_tlb_entries(struct omap_iommu *obj, struct seq_file *s)
46635 {
46636 int i, num;
46637 struct cr_regs *cr;
46638 - char *p = buf;
46639
46640 - num = bytes / sizeof(*cr);
46641 - num = min(obj->nr_tlb_entries, num);
46642 + num = obj->nr_tlb_entries;
46643
46644 cr = kcalloc(num, sizeof(*cr), GFP_KERNEL);
46645 if (!cr)
46646 @@ -583,10 +577,10 @@ size_t omap_dump_tlb_entries(struct omap_iommu *obj, char *buf, ssize_t bytes)
46647
46648 num = __dump_tlb_entries(obj, cr, num);
46649 for (i = 0; i < num; i++)
46650 - p += iotlb_dump_cr(obj, cr + i, p);
46651 + iotlb_dump_cr(obj, cr + i, s);
46652 kfree(cr);
46653
46654 - return p - buf;
46655 + return 0;
46656 }
46657
46658 #endif /* CONFIG_OMAP_IOMMU_DEBUG */
46659 diff --git a/drivers/iommu/omap-iommu.h b/drivers/iommu/omap-iommu.h
46660 index d736630..5df9755 100644
46661 --- a/drivers/iommu/omap-iommu.h
46662 +++ b/drivers/iommu/omap-iommu.h
46663 @@ -193,8 +193,7 @@ static inline struct omap_iommu *dev_to_omap_iommu(struct device *dev)
46664 #ifdef CONFIG_OMAP_IOMMU_DEBUG
46665 extern ssize_t
46666 omap_iommu_dump_ctx(struct omap_iommu *obj, char *buf, ssize_t len);
46667 -extern size_t
46668 -omap_dump_tlb_entries(struct omap_iommu *obj, char *buf, ssize_t len);
46669 +extern size_t omap_dump_tlb_entries(struct omap_iommu *obj, struct seq_file *s);
46670
46671 void omap_iommu_debugfs_init(void);
46672 void omap_iommu_debugfs_exit(void);
46673 diff --git a/drivers/irqchip/irq-gic.c b/drivers/irqchip/irq-gic.c
46674 index 4dd8826..1f33400 100644
46675 --- a/drivers/irqchip/irq-gic.c
46676 +++ b/drivers/irqchip/irq-gic.c
46677 @@ -313,7 +313,7 @@ static void gic_handle_cascade_irq(unsigned int irq, struct irq_desc *desc)
46678 chained_irq_exit(chip, desc);
46679 }
46680
46681 -static struct irq_chip gic_chip = {
46682 +static irq_chip_no_const gic_chip __read_only = {
46683 .name = "GIC",
46684 .irq_mask = gic_mask_irq,
46685 .irq_unmask = gic_unmask_irq,
46686 diff --git a/drivers/irqchip/irq-renesas-intc-irqpin.c b/drivers/irqchip/irq-renesas-intc-irqpin.c
46687 index 0670ab4..1094651 100644
46688 --- a/drivers/irqchip/irq-renesas-intc-irqpin.c
46689 +++ b/drivers/irqchip/irq-renesas-intc-irqpin.c
46690 @@ -373,7 +373,7 @@ static int intc_irqpin_probe(struct platform_device *pdev)
46691 struct intc_irqpin_iomem *i;
46692 struct resource *io[INTC_IRQPIN_REG_NR];
46693 struct resource *irq;
46694 - struct irq_chip *irq_chip;
46695 + irq_chip_no_const *irq_chip;
46696 void (*enable_fn)(struct irq_data *d);
46697 void (*disable_fn)(struct irq_data *d);
46698 const char *name = dev_name(dev);
46699 diff --git a/drivers/irqchip/irq-renesas-irqc.c b/drivers/irqchip/irq-renesas-irqc.c
46700 index 778bd07..0397152 100644
46701 --- a/drivers/irqchip/irq-renesas-irqc.c
46702 +++ b/drivers/irqchip/irq-renesas-irqc.c
46703 @@ -176,7 +176,7 @@ static int irqc_probe(struct platform_device *pdev)
46704 struct irqc_priv *p;
46705 struct resource *io;
46706 struct resource *irq;
46707 - struct irq_chip *irq_chip;
46708 + irq_chip_no_const *irq_chip;
46709 const char *name = dev_name(&pdev->dev);
46710 int ret;
46711 int k;
46712 diff --git a/drivers/isdn/capi/capi.c b/drivers/isdn/capi/capi.c
46713 index 6a2df32..dc962f1 100644
46714 --- a/drivers/isdn/capi/capi.c
46715 +++ b/drivers/isdn/capi/capi.c
46716 @@ -81,8 +81,8 @@ struct capiminor {
46717
46718 struct capi20_appl *ap;
46719 u32 ncci;
46720 - atomic_t datahandle;
46721 - atomic_t msgid;
46722 + atomic_unchecked_t datahandle;
46723 + atomic_unchecked_t msgid;
46724
46725 struct tty_port port;
46726 int ttyinstop;
46727 @@ -391,7 +391,7 @@ gen_data_b3_resp_for(struct capiminor *mp, struct sk_buff *skb)
46728 capimsg_setu16(s, 2, mp->ap->applid);
46729 capimsg_setu8 (s, 4, CAPI_DATA_B3);
46730 capimsg_setu8 (s, 5, CAPI_RESP);
46731 - capimsg_setu16(s, 6, atomic_inc_return(&mp->msgid));
46732 + capimsg_setu16(s, 6, atomic_inc_return_unchecked(&mp->msgid));
46733 capimsg_setu32(s, 8, mp->ncci);
46734 capimsg_setu16(s, 12, datahandle);
46735 }
46736 @@ -512,14 +512,14 @@ static void handle_minor_send(struct capiminor *mp)
46737 mp->outbytes -= len;
46738 spin_unlock_bh(&mp->outlock);
46739
46740 - datahandle = atomic_inc_return(&mp->datahandle);
46741 + datahandle = atomic_inc_return_unchecked(&mp->datahandle);
46742 skb_push(skb, CAPI_DATA_B3_REQ_LEN);
46743 memset(skb->data, 0, CAPI_DATA_B3_REQ_LEN);
46744 capimsg_setu16(skb->data, 0, CAPI_DATA_B3_REQ_LEN);
46745 capimsg_setu16(skb->data, 2, mp->ap->applid);
46746 capimsg_setu8 (skb->data, 4, CAPI_DATA_B3);
46747 capimsg_setu8 (skb->data, 5, CAPI_REQ);
46748 - capimsg_setu16(skb->data, 6, atomic_inc_return(&mp->msgid));
46749 + capimsg_setu16(skb->data, 6, atomic_inc_return_unchecked(&mp->msgid));
46750 capimsg_setu32(skb->data, 8, mp->ncci); /* NCCI */
46751 capimsg_setu32(skb->data, 12, (u32)(long)skb->data);/* Data32 */
46752 capimsg_setu16(skb->data, 16, len); /* Data length */
46753 diff --git a/drivers/isdn/gigaset/bas-gigaset.c b/drivers/isdn/gigaset/bas-gigaset.c
46754 index aecec6d..11e13c5 100644
46755 --- a/drivers/isdn/gigaset/bas-gigaset.c
46756 +++ b/drivers/isdn/gigaset/bas-gigaset.c
46757 @@ -2565,22 +2565,22 @@ static int gigaset_post_reset(struct usb_interface *intf)
46758
46759
46760 static const struct gigaset_ops gigops = {
46761 - gigaset_write_cmd,
46762 - gigaset_write_room,
46763 - gigaset_chars_in_buffer,
46764 - gigaset_brkchars,
46765 - gigaset_init_bchannel,
46766 - gigaset_close_bchannel,
46767 - gigaset_initbcshw,
46768 - gigaset_freebcshw,
46769 - gigaset_reinitbcshw,
46770 - gigaset_initcshw,
46771 - gigaset_freecshw,
46772 - gigaset_set_modem_ctrl,
46773 - gigaset_baud_rate,
46774 - gigaset_set_line_ctrl,
46775 - gigaset_isoc_send_skb,
46776 - gigaset_isoc_input,
46777 + .write_cmd = gigaset_write_cmd,
46778 + .write_room = gigaset_write_room,
46779 + .chars_in_buffer = gigaset_chars_in_buffer,
46780 + .brkchars = gigaset_brkchars,
46781 + .init_bchannel = gigaset_init_bchannel,
46782 + .close_bchannel = gigaset_close_bchannel,
46783 + .initbcshw = gigaset_initbcshw,
46784 + .freebcshw = gigaset_freebcshw,
46785 + .reinitbcshw = gigaset_reinitbcshw,
46786 + .initcshw = gigaset_initcshw,
46787 + .freecshw = gigaset_freecshw,
46788 + .set_modem_ctrl = gigaset_set_modem_ctrl,
46789 + .baud_rate = gigaset_baud_rate,
46790 + .set_line_ctrl = gigaset_set_line_ctrl,
46791 + .send_skb = gigaset_isoc_send_skb,
46792 + .handle_input = gigaset_isoc_input,
46793 };
46794
46795 /* bas_gigaset_init
46796 diff --git a/drivers/isdn/gigaset/interface.c b/drivers/isdn/gigaset/interface.c
46797 index 600c79b..3752bab 100644
46798 --- a/drivers/isdn/gigaset/interface.c
46799 +++ b/drivers/isdn/gigaset/interface.c
46800 @@ -130,9 +130,9 @@ static int if_open(struct tty_struct *tty, struct file *filp)
46801 }
46802 tty->driver_data = cs;
46803
46804 - ++cs->port.count;
46805 + atomic_inc(&cs->port.count);
46806
46807 - if (cs->port.count == 1) {
46808 + if (atomic_read(&cs->port.count) == 1) {
46809 tty_port_tty_set(&cs->port, tty);
46810 cs->port.low_latency = 1;
46811 }
46812 @@ -156,9 +156,9 @@ static void if_close(struct tty_struct *tty, struct file *filp)
46813
46814 if (!cs->connected)
46815 gig_dbg(DEBUG_IF, "not connected"); /* nothing to do */
46816 - else if (!cs->port.count)
46817 + else if (!atomic_read(&cs->port.count))
46818 dev_warn(cs->dev, "%s: device not opened\n", __func__);
46819 - else if (!--cs->port.count)
46820 + else if (!atomic_dec_return(&cs->port.count))
46821 tty_port_tty_set(&cs->port, NULL);
46822
46823 mutex_unlock(&cs->mutex);
46824 diff --git a/drivers/isdn/gigaset/ser-gigaset.c b/drivers/isdn/gigaset/ser-gigaset.c
46825 index 375be50..675293c 100644
46826 --- a/drivers/isdn/gigaset/ser-gigaset.c
46827 +++ b/drivers/isdn/gigaset/ser-gigaset.c
46828 @@ -453,22 +453,22 @@ static int gigaset_set_line_ctrl(struct cardstate *cs, unsigned cflag)
46829 }
46830
46831 static const struct gigaset_ops ops = {
46832 - gigaset_write_cmd,
46833 - gigaset_write_room,
46834 - gigaset_chars_in_buffer,
46835 - gigaset_brkchars,
46836 - gigaset_init_bchannel,
46837 - gigaset_close_bchannel,
46838 - gigaset_initbcshw,
46839 - gigaset_freebcshw,
46840 - gigaset_reinitbcshw,
46841 - gigaset_initcshw,
46842 - gigaset_freecshw,
46843 - gigaset_set_modem_ctrl,
46844 - gigaset_baud_rate,
46845 - gigaset_set_line_ctrl,
46846 - gigaset_m10x_send_skb, /* asyncdata.c */
46847 - gigaset_m10x_input, /* asyncdata.c */
46848 + .write_cmd = gigaset_write_cmd,
46849 + .write_room = gigaset_write_room,
46850 + .chars_in_buffer = gigaset_chars_in_buffer,
46851 + .brkchars = gigaset_brkchars,
46852 + .init_bchannel = gigaset_init_bchannel,
46853 + .close_bchannel = gigaset_close_bchannel,
46854 + .initbcshw = gigaset_initbcshw,
46855 + .freebcshw = gigaset_freebcshw,
46856 + .reinitbcshw = gigaset_reinitbcshw,
46857 + .initcshw = gigaset_initcshw,
46858 + .freecshw = gigaset_freecshw,
46859 + .set_modem_ctrl = gigaset_set_modem_ctrl,
46860 + .baud_rate = gigaset_baud_rate,
46861 + .set_line_ctrl = gigaset_set_line_ctrl,
46862 + .send_skb = gigaset_m10x_send_skb, /* asyncdata.c */
46863 + .handle_input = gigaset_m10x_input, /* asyncdata.c */
46864 };
46865
46866
46867 diff --git a/drivers/isdn/gigaset/usb-gigaset.c b/drivers/isdn/gigaset/usb-gigaset.c
46868 index 5f306e2..5342f88 100644
46869 --- a/drivers/isdn/gigaset/usb-gigaset.c
46870 +++ b/drivers/isdn/gigaset/usb-gigaset.c
46871 @@ -543,7 +543,7 @@ static int gigaset_brkchars(struct cardstate *cs, const unsigned char buf[6])
46872 gigaset_dbg_buffer(DEBUG_USBREQ, "brkchars", 6, buf);
46873 memcpy(cs->hw.usb->bchars, buf, 6);
46874 return usb_control_msg(udev, usb_sndctrlpipe(udev, 0), 0x19, 0x41,
46875 - 0, 0, &buf, 6, 2000);
46876 + 0, 0, buf, 6, 2000);
46877 }
46878
46879 static void gigaset_freebcshw(struct bc_state *bcs)
46880 @@ -862,22 +862,22 @@ static int gigaset_pre_reset(struct usb_interface *intf)
46881 }
46882
46883 static const struct gigaset_ops ops = {
46884 - gigaset_write_cmd,
46885 - gigaset_write_room,
46886 - gigaset_chars_in_buffer,
46887 - gigaset_brkchars,
46888 - gigaset_init_bchannel,
46889 - gigaset_close_bchannel,
46890 - gigaset_initbcshw,
46891 - gigaset_freebcshw,
46892 - gigaset_reinitbcshw,
46893 - gigaset_initcshw,
46894 - gigaset_freecshw,
46895 - gigaset_set_modem_ctrl,
46896 - gigaset_baud_rate,
46897 - gigaset_set_line_ctrl,
46898 - gigaset_m10x_send_skb,
46899 - gigaset_m10x_input,
46900 + .write_cmd = gigaset_write_cmd,
46901 + .write_room = gigaset_write_room,
46902 + .chars_in_buffer = gigaset_chars_in_buffer,
46903 + .brkchars = gigaset_brkchars,
46904 + .init_bchannel = gigaset_init_bchannel,
46905 + .close_bchannel = gigaset_close_bchannel,
46906 + .initbcshw = gigaset_initbcshw,
46907 + .freebcshw = gigaset_freebcshw,
46908 + .reinitbcshw = gigaset_reinitbcshw,
46909 + .initcshw = gigaset_initcshw,
46910 + .freecshw = gigaset_freecshw,
46911 + .set_modem_ctrl = gigaset_set_modem_ctrl,
46912 + .baud_rate = gigaset_baud_rate,
46913 + .set_line_ctrl = gigaset_set_line_ctrl,
46914 + .send_skb = gigaset_m10x_send_skb,
46915 + .handle_input = gigaset_m10x_input,
46916 };
46917
46918 /*
46919 diff --git a/drivers/isdn/hardware/avm/b1.c b/drivers/isdn/hardware/avm/b1.c
46920 index 4d9b195..455075c 100644
46921 --- a/drivers/isdn/hardware/avm/b1.c
46922 +++ b/drivers/isdn/hardware/avm/b1.c
46923 @@ -176,7 +176,7 @@ int b1_load_t4file(avmcard *card, capiloaddatapart *t4file)
46924 }
46925 if (left) {
46926 if (t4file->user) {
46927 - if (copy_from_user(buf, dp, left))
46928 + if (left > sizeof buf || copy_from_user(buf, dp, left))
46929 return -EFAULT;
46930 } else {
46931 memcpy(buf, dp, left);
46932 @@ -224,7 +224,7 @@ int b1_load_config(avmcard *card, capiloaddatapart *config)
46933 }
46934 if (left) {
46935 if (config->user) {
46936 - if (copy_from_user(buf, dp, left))
46937 + if (left > sizeof buf || copy_from_user(buf, dp, left))
46938 return -EFAULT;
46939 } else {
46940 memcpy(buf, dp, left);
46941 diff --git a/drivers/isdn/i4l/isdn_common.c b/drivers/isdn/i4l/isdn_common.c
46942 index 9b856e1..fa03c92 100644
46943 --- a/drivers/isdn/i4l/isdn_common.c
46944 +++ b/drivers/isdn/i4l/isdn_common.c
46945 @@ -1654,6 +1654,8 @@ isdn_ioctl(struct file *file, uint cmd, ulong arg)
46946 } else
46947 return -EINVAL;
46948 case IIOCDBGVAR:
46949 + if (!capable(CAP_SYS_RAWIO))
46950 + return -EPERM;
46951 if (arg) {
46952 if (copy_to_user(argp, &dev, sizeof(ulong)))
46953 return -EFAULT;
46954 diff --git a/drivers/isdn/i4l/isdn_concap.c b/drivers/isdn/i4l/isdn_concap.c
46955 index 91d5730..336523e 100644
46956 --- a/drivers/isdn/i4l/isdn_concap.c
46957 +++ b/drivers/isdn/i4l/isdn_concap.c
46958 @@ -80,9 +80,9 @@ static int isdn_concap_dl_disconn_req(struct concap_proto *concap)
46959 }
46960
46961 struct concap_device_ops isdn_concap_reliable_dl_dops = {
46962 - &isdn_concap_dl_data_req,
46963 - &isdn_concap_dl_connect_req,
46964 - &isdn_concap_dl_disconn_req
46965 + .data_req = &isdn_concap_dl_data_req,
46966 + .connect_req = &isdn_concap_dl_connect_req,
46967 + .disconn_req = &isdn_concap_dl_disconn_req
46968 };
46969
46970 /* The following should better go into a dedicated source file such that
46971 diff --git a/drivers/isdn/i4l/isdn_tty.c b/drivers/isdn/i4l/isdn_tty.c
46972 index bc91261..2ef7e36 100644
46973 --- a/drivers/isdn/i4l/isdn_tty.c
46974 +++ b/drivers/isdn/i4l/isdn_tty.c
46975 @@ -1503,9 +1503,9 @@ isdn_tty_open(struct tty_struct *tty, struct file *filp)
46976
46977 #ifdef ISDN_DEBUG_MODEM_OPEN
46978 printk(KERN_DEBUG "isdn_tty_open %s, count = %d\n", tty->name,
46979 - port->count);
46980 + atomic_read(&port->count));
46981 #endif
46982 - port->count++;
46983 + atomic_inc(&port->count);
46984 port->tty = tty;
46985 /*
46986 * Start up serial port
46987 @@ -1549,7 +1549,7 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
46988 #endif
46989 return;
46990 }
46991 - if ((tty->count == 1) && (port->count != 1)) {
46992 + if ((tty->count == 1) && (atomic_read(&port->count) != 1)) {
46993 /*
46994 * Uh, oh. tty->count is 1, which means that the tty
46995 * structure will be freed. Info->count should always
46996 @@ -1558,15 +1558,15 @@ isdn_tty_close(struct tty_struct *tty, struct file *filp)
46997 * serial port won't be shutdown.
46998 */
46999 printk(KERN_ERR "isdn_tty_close: bad port count; tty->count is 1, "
47000 - "info->count is %d\n", port->count);
47001 - port->count = 1;
47002 + "info->count is %d\n", atomic_read(&port->count));
47003 + atomic_set(&port->count, 1);
47004 }
47005 - if (--port->count < 0) {
47006 + if (atomic_dec_return(&port->count) < 0) {
47007 printk(KERN_ERR "isdn_tty_close: bad port count for ttyi%d: %d\n",
47008 - info->line, port->count);
47009 - port->count = 0;
47010 + info->line, atomic_read(&port->count));
47011 + atomic_set(&port->count, 0);
47012 }
47013 - if (port->count) {
47014 + if (atomic_read(&port->count)) {
47015 #ifdef ISDN_DEBUG_MODEM_OPEN
47016 printk(KERN_DEBUG "isdn_tty_close after info->count != 0\n");
47017 #endif
47018 @@ -1620,7 +1620,7 @@ isdn_tty_hangup(struct tty_struct *tty)
47019 if (isdn_tty_paranoia_check(info, tty->name, "isdn_tty_hangup"))
47020 return;
47021 isdn_tty_shutdown(info);
47022 - port->count = 0;
47023 + atomic_set(&port->count, 0);
47024 port->flags &= ~ASYNC_NORMAL_ACTIVE;
47025 port->tty = NULL;
47026 wake_up_interruptible(&port->open_wait);
47027 @@ -1965,7 +1965,7 @@ isdn_tty_find_icall(int di, int ch, setup_parm *setup)
47028 for (i = 0; i < ISDN_MAX_CHANNELS; i++) {
47029 modem_info *info = &dev->mdm.info[i];
47030
47031 - if (info->port.count == 0)
47032 + if (atomic_read(&info->port.count) == 0)
47033 continue;
47034 if ((info->emu.mdmreg[REG_SI1] & si2bit[si1]) && /* SI1 is matching */
47035 (info->emu.mdmreg[REG_SI2] == si2)) { /* SI2 is matching */
47036 diff --git a/drivers/isdn/i4l/isdn_x25iface.c b/drivers/isdn/i4l/isdn_x25iface.c
47037 index e2d4e58..40cd045 100644
47038 --- a/drivers/isdn/i4l/isdn_x25iface.c
47039 +++ b/drivers/isdn/i4l/isdn_x25iface.c
47040 @@ -53,14 +53,14 @@ static int isdn_x25iface_disconn_ind(struct concap_proto *);
47041
47042
47043 static struct concap_proto_ops ix25_pops = {
47044 - &isdn_x25iface_proto_new,
47045 - &isdn_x25iface_proto_del,
47046 - &isdn_x25iface_proto_restart,
47047 - &isdn_x25iface_proto_close,
47048 - &isdn_x25iface_xmit,
47049 - &isdn_x25iface_receive,
47050 - &isdn_x25iface_connect_ind,
47051 - &isdn_x25iface_disconn_ind
47052 + .proto_new = &isdn_x25iface_proto_new,
47053 + .proto_del = &isdn_x25iface_proto_del,
47054 + .restart = &isdn_x25iface_proto_restart,
47055 + .close = &isdn_x25iface_proto_close,
47056 + .encap_and_xmit = &isdn_x25iface_xmit,
47057 + .data_ind = &isdn_x25iface_receive,
47058 + .connect_ind = &isdn_x25iface_connect_ind,
47059 + .disconn_ind = &isdn_x25iface_disconn_ind
47060 };
47061
47062 /* error message helper function */
47063 diff --git a/drivers/isdn/icn/icn.c b/drivers/isdn/icn/icn.c
47064 index 358a574..b4987ea 100644
47065 --- a/drivers/isdn/icn/icn.c
47066 +++ b/drivers/isdn/icn/icn.c
47067 @@ -1045,7 +1045,7 @@ icn_writecmd(const u_char *buf, int len, int user, icn_card *card)
47068 if (count > len)
47069 count = len;
47070 if (user) {
47071 - if (copy_from_user(msg, buf, count))
47072 + if (count > sizeof msg || copy_from_user(msg, buf, count))
47073 return -EFAULT;
47074 } else
47075 memcpy(msg, buf, count);
47076 diff --git a/drivers/isdn/mISDN/dsp_cmx.c b/drivers/isdn/mISDN/dsp_cmx.c
47077 index 52c4382..09e0c7c 100644
47078 --- a/drivers/isdn/mISDN/dsp_cmx.c
47079 +++ b/drivers/isdn/mISDN/dsp_cmx.c
47080 @@ -1625,7 +1625,7 @@ unsigned long dsp_spl_jiffies; /* calculate the next time to fire */
47081 static u16 dsp_count; /* last sample count */
47082 static int dsp_count_valid; /* if we have last sample count */
47083
47084 -void
47085 +void __intentional_overflow(-1)
47086 dsp_cmx_send(void *arg)
47087 {
47088 struct dsp_conf *conf;
47089 diff --git a/drivers/lguest/core.c b/drivers/lguest/core.c
47090 index 312ffd3..d060510 100644
47091 --- a/drivers/lguest/core.c
47092 +++ b/drivers/lguest/core.c
47093 @@ -96,9 +96,17 @@ static __init int map_switcher(void)
47094 * The end address needs +1 because __get_vm_area allocates an
47095 * extra guard page, so we need space for that.
47096 */
47097 +
47098 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
47099 + switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE,
47100 + VM_ALLOC | VM_KERNEXEC, switcher_addr, switcher_addr
47101 + + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE);
47102 +#else
47103 switcher_vma = __get_vm_area(TOTAL_SWITCHER_PAGES * PAGE_SIZE,
47104 VM_ALLOC, switcher_addr, switcher_addr
47105 + (TOTAL_SWITCHER_PAGES+1) * PAGE_SIZE);
47106 +#endif
47107 +
47108 if (!switcher_vma) {
47109 err = -ENOMEM;
47110 printk("lguest: could not map switcher pages high\n");
47111 @@ -121,7 +129,7 @@ static __init int map_switcher(void)
47112 * Now the Switcher is mapped at the right address, we can't fail!
47113 * Copy in the compiled-in Switcher code (from x86/switcher_32.S).
47114 */
47115 - memcpy(switcher_vma->addr, start_switcher_text,
47116 + memcpy(switcher_vma->addr, (void *)ktla_ktva((unsigned long)start_switcher_text),
47117 end_switcher_text - start_switcher_text);
47118
47119 printk(KERN_INFO "lguest: mapped switcher at %p\n",
47120 diff --git a/drivers/lguest/page_tables.c b/drivers/lguest/page_tables.c
47121 index e3abebc9..6a35328 100644
47122 --- a/drivers/lguest/page_tables.c
47123 +++ b/drivers/lguest/page_tables.c
47124 @@ -585,7 +585,7 @@ void pin_page(struct lg_cpu *cpu, unsigned long vaddr)
47125 /*:*/
47126
47127 #ifdef CONFIG_X86_PAE
47128 -static void release_pmd(pmd_t *spmd)
47129 +static void __intentional_overflow(-1) release_pmd(pmd_t *spmd)
47130 {
47131 /* If the entry's not present, there's nothing to release. */
47132 if (pmd_flags(*spmd) & _PAGE_PRESENT) {
47133 diff --git a/drivers/lguest/x86/core.c b/drivers/lguest/x86/core.c
47134 index 6a4cd77..c9e2d9f 100644
47135 --- a/drivers/lguest/x86/core.c
47136 +++ b/drivers/lguest/x86/core.c
47137 @@ -60,7 +60,7 @@ static struct {
47138 /* Offset from where switcher.S was compiled to where we've copied it */
47139 static unsigned long switcher_offset(void)
47140 {
47141 - return switcher_addr - (unsigned long)start_switcher_text;
47142 + return switcher_addr - ktla_ktva((unsigned long)start_switcher_text);
47143 }
47144
47145 /* This cpu's struct lguest_pages (after the Switcher text page) */
47146 @@ -100,7 +100,13 @@ static void copy_in_guest_info(struct lg_cpu *cpu, struct lguest_pages *pages)
47147 * These copies are pretty cheap, so we do them unconditionally: */
47148 /* Save the current Host top-level page directory.
47149 */
47150 +
47151 +#ifdef CONFIG_PAX_PER_CPU_PGD
47152 + pages->state.host_cr3 = read_cr3();
47153 +#else
47154 pages->state.host_cr3 = __pa(current->mm->pgd);
47155 +#endif
47156 +
47157 /*
47158 * Set up the Guest's page tables to see this CPU's pages (and no
47159 * other CPU's pages).
47160 @@ -494,7 +500,7 @@ void __init lguest_arch_host_init(void)
47161 * compiled-in switcher code and the high-mapped copy we just made.
47162 */
47163 for (i = 0; i < IDT_ENTRIES; i++)
47164 - default_idt_entries[i] += switcher_offset();
47165 + default_idt_entries[i] = ktla_ktva(default_idt_entries[i]) + switcher_offset();
47166
47167 /*
47168 * Set up the Switcher's per-cpu areas.
47169 @@ -577,7 +583,7 @@ void __init lguest_arch_host_init(void)
47170 * it will be undisturbed when we switch. To change %cs and jump we
47171 * need this structure to feed to Intel's "lcall" instruction.
47172 */
47173 - lguest_entry.offset = (long)switch_to_guest + switcher_offset();
47174 + lguest_entry.offset = ktla_ktva((unsigned long)switch_to_guest) + switcher_offset();
47175 lguest_entry.segment = LGUEST_CS;
47176
47177 /*
47178 diff --git a/drivers/lguest/x86/switcher_32.S b/drivers/lguest/x86/switcher_32.S
47179 index 40634b0..4f5855e 100644
47180 --- a/drivers/lguest/x86/switcher_32.S
47181 +++ b/drivers/lguest/x86/switcher_32.S
47182 @@ -87,6 +87,7 @@
47183 #include <asm/page.h>
47184 #include <asm/segment.h>
47185 #include <asm/lguest.h>
47186 +#include <asm/processor-flags.h>
47187
47188 // We mark the start of the code to copy
47189 // It's placed in .text tho it's never run here
47190 @@ -149,6 +150,13 @@ ENTRY(switch_to_guest)
47191 // Changes type when we load it: damn Intel!
47192 // For after we switch over our page tables
47193 // That entry will be read-only: we'd crash.
47194 +
47195 +#ifdef CONFIG_PAX_KERNEXEC
47196 + mov %cr0, %edx
47197 + xor $X86_CR0_WP, %edx
47198 + mov %edx, %cr0
47199 +#endif
47200 +
47201 movl $(GDT_ENTRY_TSS*8), %edx
47202 ltr %dx
47203
47204 @@ -157,9 +165,15 @@ ENTRY(switch_to_guest)
47205 // Let's clear it again for our return.
47206 // The GDT descriptor of the Host
47207 // Points to the table after two "size" bytes
47208 - movl (LGUEST_PAGES_host_gdt_desc+2)(%eax), %edx
47209 + movl (LGUEST_PAGES_host_gdt_desc+2)(%eax), %eax
47210 // Clear "used" from type field (byte 5, bit 2)
47211 - andb $0xFD, (GDT_ENTRY_TSS*8 + 5)(%edx)
47212 + andb $0xFD, (GDT_ENTRY_TSS*8 + 5)(%eax)
47213 +
47214 +#ifdef CONFIG_PAX_KERNEXEC
47215 + mov %cr0, %eax
47216 + xor $X86_CR0_WP, %eax
47217 + mov %eax, %cr0
47218 +#endif
47219
47220 // Once our page table's switched, the Guest is live!
47221 // The Host fades as we run this final step.
47222 @@ -295,13 +309,12 @@ deliver_to_host:
47223 // I consulted gcc, and it gave
47224 // These instructions, which I gladly credit:
47225 leal (%edx,%ebx,8), %eax
47226 - movzwl (%eax),%edx
47227 - movl 4(%eax), %eax
47228 - xorw %ax, %ax
47229 - orl %eax, %edx
47230 + movl 4(%eax), %edx
47231 + movw (%eax), %dx
47232 // Now the address of the handler's in %edx
47233 // We call it now: its "iret" drops us home.
47234 - jmp *%edx
47235 + ljmp $__KERNEL_CS, $1f
47236 +1: jmp *%edx
47237
47238 // Every interrupt can come to us here
47239 // But we must truly tell each apart.
47240 diff --git a/drivers/md/bcache/Kconfig b/drivers/md/bcache/Kconfig
47241 index 4d20088..de60cb2 100644
47242 --- a/drivers/md/bcache/Kconfig
47243 +++ b/drivers/md/bcache/Kconfig
47244 @@ -20,6 +20,7 @@ config BCACHE_CLOSURES_DEBUG
47245 bool "Debug closures"
47246 depends on BCACHE
47247 select DEBUG_FS
47248 + depends on !GRKERNSEC_KMEM
47249 ---help---
47250 Keeps all active closures in a linked list and provides a debugfs
47251 interface to list them, which makes it possible to see asynchronous
47252 diff --git a/drivers/md/bcache/closure.h b/drivers/md/bcache/closure.h
47253 index 79a6d63..47acff6 100644
47254 --- a/drivers/md/bcache/closure.h
47255 +++ b/drivers/md/bcache/closure.h
47256 @@ -238,7 +238,7 @@ static inline void closure_set_stopped(struct closure *cl)
47257 static inline void set_closure_fn(struct closure *cl, closure_fn *fn,
47258 struct workqueue_struct *wq)
47259 {
47260 - BUG_ON(object_is_on_stack(cl));
47261 + BUG_ON(object_starts_on_stack(cl));
47262 closure_set_ip(cl);
47263 cl->fn = fn;
47264 cl->wq = wq;
47265 diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
47266 index 48b5890..b0af0ca 100644
47267 --- a/drivers/md/bitmap.c
47268 +++ b/drivers/md/bitmap.c
47269 @@ -1933,7 +1933,7 @@ void bitmap_status(struct seq_file *seq, struct bitmap *bitmap)
47270 chunk_kb ? "KB" : "B");
47271 if (bitmap->storage.file) {
47272 seq_printf(seq, ", file: ");
47273 - seq_file_path(seq, bitmap->storage.file, " \t\n");
47274 + seq_file_path(seq, bitmap->storage.file, " \t\n\\");
47275 }
47276
47277 seq_printf(seq, "\n");
47278 diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
47279 index 720ceeb..030f1d4 100644
47280 --- a/drivers/md/dm-ioctl.c
47281 +++ b/drivers/md/dm-ioctl.c
47282 @@ -1773,7 +1773,7 @@ static int validate_params(uint cmd, struct dm_ioctl *param)
47283 cmd == DM_LIST_VERSIONS_CMD)
47284 return 0;
47285
47286 - if ((cmd == DM_DEV_CREATE_CMD)) {
47287 + if (cmd == DM_DEV_CREATE_CMD) {
47288 if (!*param->name) {
47289 DMWARN("name not supplied when creating device");
47290 return -EINVAL;
47291 diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
47292 index d83696b..44f22f7 100644
47293 --- a/drivers/md/dm-raid1.c
47294 +++ b/drivers/md/dm-raid1.c
47295 @@ -42,7 +42,7 @@ enum dm_raid1_error {
47296
47297 struct mirror {
47298 struct mirror_set *ms;
47299 - atomic_t error_count;
47300 + atomic_unchecked_t error_count;
47301 unsigned long error_type;
47302 struct dm_dev *dev;
47303 sector_t offset;
47304 @@ -188,7 +188,7 @@ static struct mirror *get_valid_mirror(struct mirror_set *ms)
47305 struct mirror *m;
47306
47307 for (m = ms->mirror; m < ms->mirror + ms->nr_mirrors; m++)
47308 - if (!atomic_read(&m->error_count))
47309 + if (!atomic_read_unchecked(&m->error_count))
47310 return m;
47311
47312 return NULL;
47313 @@ -220,7 +220,7 @@ static void fail_mirror(struct mirror *m, enum dm_raid1_error error_type)
47314 * simple way to tell if a device has encountered
47315 * errors.
47316 */
47317 - atomic_inc(&m->error_count);
47318 + atomic_inc_unchecked(&m->error_count);
47319
47320 if (test_and_set_bit(error_type, &m->error_type))
47321 return;
47322 @@ -378,7 +378,7 @@ static void reset_ms_flags(struct mirror_set *ms)
47323
47324 ms->leg_failure = 0;
47325 for (m = 0; m < ms->nr_mirrors; m++) {
47326 - atomic_set(&(ms->mirror[m].error_count), 0);
47327 + atomic_set_unchecked(&(ms->mirror[m].error_count), 0);
47328 ms->mirror[m].error_type = 0;
47329 }
47330 }
47331 @@ -423,7 +423,7 @@ static struct mirror *choose_mirror(struct mirror_set *ms, sector_t sector)
47332 struct mirror *m = get_default_mirror(ms);
47333
47334 do {
47335 - if (likely(!atomic_read(&m->error_count)))
47336 + if (likely(!atomic_read_unchecked(&m->error_count)))
47337 return m;
47338
47339 if (m-- == ms->mirror)
47340 @@ -437,7 +437,7 @@ static int default_ok(struct mirror *m)
47341 {
47342 struct mirror *default_mirror = get_default_mirror(m->ms);
47343
47344 - return !atomic_read(&default_mirror->error_count);
47345 + return !atomic_read_unchecked(&default_mirror->error_count);
47346 }
47347
47348 static int mirror_available(struct mirror_set *ms, struct bio *bio)
47349 @@ -574,7 +574,7 @@ static void do_reads(struct mirror_set *ms, struct bio_list *reads)
47350 */
47351 if (likely(region_in_sync(ms, region, 1)))
47352 m = choose_mirror(ms, bio->bi_iter.bi_sector);
47353 - else if (m && atomic_read(&m->error_count))
47354 + else if (m && atomic_read_unchecked(&m->error_count))
47355 m = NULL;
47356
47357 if (likely(m))
47358 @@ -956,7 +956,7 @@ static int get_mirror(struct mirror_set *ms, struct dm_target *ti,
47359 }
47360
47361 ms->mirror[mirror].ms = ms;
47362 - atomic_set(&(ms->mirror[mirror].error_count), 0);
47363 + atomic_set_unchecked(&(ms->mirror[mirror].error_count), 0);
47364 ms->mirror[mirror].error_type = 0;
47365 ms->mirror[mirror].offset = offset;
47366
47367 @@ -1380,7 +1380,7 @@ static void mirror_resume(struct dm_target *ti)
47368 */
47369 static char device_status_char(struct mirror *m)
47370 {
47371 - if (!atomic_read(&(m->error_count)))
47372 + if (!atomic_read_unchecked(&(m->error_count)))
47373 return 'A';
47374
47375 return (test_bit(DM_RAID1_FLUSH_ERROR, &(m->error_type))) ? 'F' :
47376 diff --git a/drivers/md/dm-stats.c b/drivers/md/dm-stats.c
47377 index 8289804..12db118 100644
47378 --- a/drivers/md/dm-stats.c
47379 +++ b/drivers/md/dm-stats.c
47380 @@ -435,7 +435,7 @@ do_sync_free:
47381 synchronize_rcu_expedited();
47382 dm_stat_free(&s->rcu_head);
47383 } else {
47384 - ACCESS_ONCE(dm_stat_need_rcu_barrier) = 1;
47385 + ACCESS_ONCE_RW(dm_stat_need_rcu_barrier) = 1;
47386 call_rcu(&s->rcu_head, dm_stat_free);
47387 }
47388 return 0;
47389 @@ -648,8 +648,8 @@ void dm_stats_account_io(struct dm_stats *stats, unsigned long bi_rw,
47390 ((bi_rw & (REQ_WRITE | REQ_DISCARD)) ==
47391 (ACCESS_ONCE(last->last_rw) & (REQ_WRITE | REQ_DISCARD)))
47392 ));
47393 - ACCESS_ONCE(last->last_sector) = end_sector;
47394 - ACCESS_ONCE(last->last_rw) = bi_rw;
47395 + ACCESS_ONCE_RW(last->last_sector) = end_sector;
47396 + ACCESS_ONCE_RW(last->last_rw) = bi_rw;
47397 }
47398
47399 rcu_read_lock();
47400 diff --git a/drivers/md/dm-stripe.c b/drivers/md/dm-stripe.c
47401 index a672a15..dc85e99 100644
47402 --- a/drivers/md/dm-stripe.c
47403 +++ b/drivers/md/dm-stripe.c
47404 @@ -21,7 +21,7 @@ struct stripe {
47405 struct dm_dev *dev;
47406 sector_t physical_start;
47407
47408 - atomic_t error_count;
47409 + atomic_unchecked_t error_count;
47410 };
47411
47412 struct stripe_c {
47413 @@ -188,7 +188,7 @@ static int stripe_ctr(struct dm_target *ti, unsigned int argc, char **argv)
47414 kfree(sc);
47415 return r;
47416 }
47417 - atomic_set(&(sc->stripe[i].error_count), 0);
47418 + atomic_set_unchecked(&(sc->stripe[i].error_count), 0);
47419 }
47420
47421 ti->private = sc;
47422 @@ -332,7 +332,7 @@ static void stripe_status(struct dm_target *ti, status_type_t type,
47423 DMEMIT("%d ", sc->stripes);
47424 for (i = 0; i < sc->stripes; i++) {
47425 DMEMIT("%s ", sc->stripe[i].dev->name);
47426 - buffer[i] = atomic_read(&(sc->stripe[i].error_count)) ?
47427 + buffer[i] = atomic_read_unchecked(&(sc->stripe[i].error_count)) ?
47428 'D' : 'A';
47429 }
47430 buffer[i] = '\0';
47431 @@ -377,8 +377,8 @@ static int stripe_end_io(struct dm_target *ti, struct bio *bio, int error)
47432 */
47433 for (i = 0; i < sc->stripes; i++)
47434 if (!strcmp(sc->stripe[i].dev->name, major_minor)) {
47435 - atomic_inc(&(sc->stripe[i].error_count));
47436 - if (atomic_read(&(sc->stripe[i].error_count)) <
47437 + atomic_inc_unchecked(&(sc->stripe[i].error_count));
47438 + if (atomic_read_unchecked(&(sc->stripe[i].error_count)) <
47439 DM_IO_ERROR_THRESHOLD)
47440 schedule_work(&sc->trigger_event);
47441 }
47442 diff --git a/drivers/md/dm-table.c b/drivers/md/dm-table.c
47443 index 16ba55a..31af906 100644
47444 --- a/drivers/md/dm-table.c
47445 +++ b/drivers/md/dm-table.c
47446 @@ -305,7 +305,7 @@ static int device_area_is_invalid(struct dm_target *ti, struct dm_dev *dev,
47447 if (!dev_size)
47448 return 0;
47449
47450 - if ((start >= dev_size) || (start + len > dev_size)) {
47451 + if ((start >= dev_size) || (len > dev_size - start)) {
47452 DMWARN("%s: %s too small for target: "
47453 "start=%llu, len=%llu, dev_size=%llu",
47454 dm_device_name(ti->table->md), bdevname(bdev, b),
47455 diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
47456 index 6ba47cf..a870ba2 100644
47457 --- a/drivers/md/dm-thin-metadata.c
47458 +++ b/drivers/md/dm-thin-metadata.c
47459 @@ -403,7 +403,7 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd)
47460 {
47461 pmd->info.tm = pmd->tm;
47462 pmd->info.levels = 2;
47463 - pmd->info.value_type.context = pmd->data_sm;
47464 + pmd->info.value_type.context = (dm_space_map_no_const *)pmd->data_sm;
47465 pmd->info.value_type.size = sizeof(__le64);
47466 pmd->info.value_type.inc = data_block_inc;
47467 pmd->info.value_type.dec = data_block_dec;
47468 @@ -422,7 +422,7 @@ static void __setup_btree_details(struct dm_pool_metadata *pmd)
47469
47470 pmd->bl_info.tm = pmd->tm;
47471 pmd->bl_info.levels = 1;
47472 - pmd->bl_info.value_type.context = pmd->data_sm;
47473 + pmd->bl_info.value_type.context = (dm_space_map_no_const *)pmd->data_sm;
47474 pmd->bl_info.value_type.size = sizeof(__le64);
47475 pmd->bl_info.value_type.inc = data_block_inc;
47476 pmd->bl_info.value_type.dec = data_block_dec;
47477 diff --git a/drivers/md/dm.c b/drivers/md/dm.c
47478 index 3e32f4e..01e0a7f 100644
47479 --- a/drivers/md/dm.c
47480 +++ b/drivers/md/dm.c
47481 @@ -194,9 +194,9 @@ struct mapped_device {
47482 /*
47483 * Event handling.
47484 */
47485 - atomic_t event_nr;
47486 + atomic_unchecked_t event_nr;
47487 wait_queue_head_t eventq;
47488 - atomic_t uevent_seq;
47489 + atomic_unchecked_t uevent_seq;
47490 struct list_head uevent_list;
47491 spinlock_t uevent_lock; /* Protect access to uevent_list */
47492
47493 @@ -2339,8 +2339,8 @@ static struct mapped_device *alloc_dev(int minor)
47494 spin_lock_init(&md->deferred_lock);
47495 atomic_set(&md->holders, 1);
47496 atomic_set(&md->open_count, 0);
47497 - atomic_set(&md->event_nr, 0);
47498 - atomic_set(&md->uevent_seq, 0);
47499 + atomic_set_unchecked(&md->event_nr, 0);
47500 + atomic_set_unchecked(&md->uevent_seq, 0);
47501 INIT_LIST_HEAD(&md->uevent_list);
47502 INIT_LIST_HEAD(&md->table_devices);
47503 spin_lock_init(&md->uevent_lock);
47504 @@ -2481,7 +2481,7 @@ static void event_callback(void *context)
47505
47506 dm_send_uevents(&uevents, &disk_to_dev(md->disk)->kobj);
47507
47508 - atomic_inc(&md->event_nr);
47509 + atomic_inc_unchecked(&md->event_nr);
47510 wake_up(&md->eventq);
47511 }
47512
47513 @@ -3479,18 +3479,18 @@ int dm_kobject_uevent(struct mapped_device *md, enum kobject_action action,
47514
47515 uint32_t dm_next_uevent_seq(struct mapped_device *md)
47516 {
47517 - return atomic_add_return(1, &md->uevent_seq);
47518 + return atomic_add_return_unchecked(1, &md->uevent_seq);
47519 }
47520
47521 uint32_t dm_get_event_nr(struct mapped_device *md)
47522 {
47523 - return atomic_read(&md->event_nr);
47524 + return atomic_read_unchecked(&md->event_nr);
47525 }
47526
47527 int dm_wait_event(struct mapped_device *md, int event_nr)
47528 {
47529 return wait_event_interruptible(md->eventq,
47530 - (event_nr != atomic_read(&md->event_nr)));
47531 + (event_nr != atomic_read_unchecked(&md->event_nr)));
47532 }
47533
47534 void dm_uevent_add(struct mapped_device *md, struct list_head *elist)
47535 diff --git a/drivers/md/md.c b/drivers/md/md.c
47536 index 95e7b72..11002b9 100644
47537 --- a/drivers/md/md.c
47538 +++ b/drivers/md/md.c
47539 @@ -197,10 +197,10 @@ EXPORT_SYMBOL_GPL(bio_clone_mddev);
47540 * start build, activate spare
47541 */
47542 static DECLARE_WAIT_QUEUE_HEAD(md_event_waiters);
47543 -static atomic_t md_event_count;
47544 +static atomic_unchecked_t md_event_count;
47545 void md_new_event(struct mddev *mddev)
47546 {
47547 - atomic_inc(&md_event_count);
47548 + atomic_inc_unchecked(&md_event_count);
47549 wake_up(&md_event_waiters);
47550 }
47551 EXPORT_SYMBOL_GPL(md_new_event);
47552 @@ -210,7 +210,7 @@ EXPORT_SYMBOL_GPL(md_new_event);
47553 */
47554 static void md_new_event_inintr(struct mddev *mddev)
47555 {
47556 - atomic_inc(&md_event_count);
47557 + atomic_inc_unchecked(&md_event_count);
47558 wake_up(&md_event_waiters);
47559 }
47560
47561 @@ -1449,7 +1449,7 @@ static int super_1_load(struct md_rdev *rdev, struct md_rdev *refdev, int minor_
47562 if ((le32_to_cpu(sb->feature_map) & MD_FEATURE_RESHAPE_ACTIVE) &&
47563 (le32_to_cpu(sb->feature_map) & MD_FEATURE_NEW_OFFSET))
47564 rdev->new_data_offset += (s32)le32_to_cpu(sb->new_offset);
47565 - atomic_set(&rdev->corrected_errors, le32_to_cpu(sb->cnt_corrected_read));
47566 + atomic_set_unchecked(&rdev->corrected_errors, le32_to_cpu(sb->cnt_corrected_read));
47567
47568 rdev->sb_size = le32_to_cpu(sb->max_dev) * 2 + 256;
47569 bmask = queue_logical_block_size(rdev->bdev->bd_disk->queue)-1;
47570 @@ -1700,7 +1700,7 @@ static void super_1_sync(struct mddev *mddev, struct md_rdev *rdev)
47571 else
47572 sb->resync_offset = cpu_to_le64(0);
47573
47574 - sb->cnt_corrected_read = cpu_to_le32(atomic_read(&rdev->corrected_errors));
47575 + sb->cnt_corrected_read = cpu_to_le32(atomic_read_unchecked(&rdev->corrected_errors));
47576
47577 sb->raid_disks = cpu_to_le32(mddev->raid_disks);
47578 sb->size = cpu_to_le64(mddev->dev_sectors);
47579 @@ -2622,7 +2622,7 @@ __ATTR_PREALLOC(state, S_IRUGO|S_IWUSR, state_show, state_store);
47580 static ssize_t
47581 errors_show(struct md_rdev *rdev, char *page)
47582 {
47583 - return sprintf(page, "%d\n", atomic_read(&rdev->corrected_errors));
47584 + return sprintf(page, "%d\n", atomic_read_unchecked(&rdev->corrected_errors));
47585 }
47586
47587 static ssize_t
47588 @@ -2634,7 +2634,7 @@ errors_store(struct md_rdev *rdev, const char *buf, size_t len)
47589 rv = kstrtouint(buf, 10, &n);
47590 if (rv < 0)
47591 return rv;
47592 - atomic_set(&rdev->corrected_errors, n);
47593 + atomic_set_unchecked(&rdev->corrected_errors, n);
47594 return len;
47595 }
47596 static struct rdev_sysfs_entry rdev_errors =
47597 @@ -3071,8 +3071,8 @@ int md_rdev_init(struct md_rdev *rdev)
47598 rdev->sb_loaded = 0;
47599 rdev->bb_page = NULL;
47600 atomic_set(&rdev->nr_pending, 0);
47601 - atomic_set(&rdev->read_errors, 0);
47602 - atomic_set(&rdev->corrected_errors, 0);
47603 + atomic_set_unchecked(&rdev->read_errors, 0);
47604 + atomic_set_unchecked(&rdev->corrected_errors, 0);
47605
47606 INIT_LIST_HEAD(&rdev->same_set);
47607 init_waitqueue_head(&rdev->blocked_wait);
47608 @@ -7256,7 +7256,7 @@ static int md_seq_show(struct seq_file *seq, void *v)
47609
47610 spin_unlock(&pers_lock);
47611 seq_printf(seq, "\n");
47612 - seq->poll_event = atomic_read(&md_event_count);
47613 + seq->poll_event = atomic_read_unchecked(&md_event_count);
47614 return 0;
47615 }
47616 if (v == (void*)2) {
47617 @@ -7359,7 +7359,7 @@ static int md_seq_open(struct inode *inode, struct file *file)
47618 return error;
47619
47620 seq = file->private_data;
47621 - seq->poll_event = atomic_read(&md_event_count);
47622 + seq->poll_event = atomic_read_unchecked(&md_event_count);
47623 return error;
47624 }
47625
47626 @@ -7376,7 +7376,7 @@ static unsigned int mdstat_poll(struct file *filp, poll_table *wait)
47627 /* always allow read */
47628 mask = POLLIN | POLLRDNORM;
47629
47630 - if (seq->poll_event != atomic_read(&md_event_count))
47631 + if (seq->poll_event != atomic_read_unchecked(&md_event_count))
47632 mask |= POLLERR | POLLPRI;
47633 return mask;
47634 }
47635 @@ -7472,7 +7472,7 @@ static int is_mddev_idle(struct mddev *mddev, int init)
47636 struct gendisk *disk = rdev->bdev->bd_contains->bd_disk;
47637 curr_events = (int)part_stat_read(&disk->part0, sectors[0]) +
47638 (int)part_stat_read(&disk->part0, sectors[1]) -
47639 - atomic_read(&disk->sync_io);
47640 + atomic_read_unchecked(&disk->sync_io);
47641 /* sync IO will cause sync_io to increase before the disk_stats
47642 * as sync_io is counted when a request starts, and
47643 * disk_stats is counted when it completes.
47644 diff --git a/drivers/md/md.h b/drivers/md/md.h
47645 index 7da6e9c..f0c1f10 100644
47646 --- a/drivers/md/md.h
47647 +++ b/drivers/md/md.h
47648 @@ -96,13 +96,13 @@ struct md_rdev {
47649 * only maintained for arrays that
47650 * support hot removal
47651 */
47652 - atomic_t read_errors; /* number of consecutive read errors that
47653 + atomic_unchecked_t read_errors; /* number of consecutive read errors that
47654 * we have tried to ignore.
47655 */
47656 struct timespec last_read_error; /* monotonic time since our
47657 * last read error
47658 */
47659 - atomic_t corrected_errors; /* number of corrected read errors,
47660 + atomic_unchecked_t corrected_errors; /* number of corrected read errors,
47661 * for reporting to userspace and storing
47662 * in superblock.
47663 */
47664 @@ -487,7 +487,7 @@ extern void mddev_unlock(struct mddev *mddev);
47665
47666 static inline void md_sync_acct(struct block_device *bdev, unsigned long nr_sectors)
47667 {
47668 - atomic_add(nr_sectors, &bdev->bd_contains->bd_disk->sync_io);
47669 + atomic_add_unchecked(nr_sectors, &bdev->bd_contains->bd_disk->sync_io);
47670 }
47671
47672 struct md_personality
47673 diff --git a/drivers/md/persistent-data/dm-space-map-metadata.c b/drivers/md/persistent-data/dm-space-map-metadata.c
47674 index 5309129..7fb096e 100644
47675 --- a/drivers/md/persistent-data/dm-space-map-metadata.c
47676 +++ b/drivers/md/persistent-data/dm-space-map-metadata.c
47677 @@ -691,7 +691,7 @@ static int sm_metadata_extend(struct dm_space_map *sm, dm_block_t extra_blocks)
47678 * Flick into a mode where all blocks get allocated in the new area.
47679 */
47680 smm->begin = old_len;
47681 - memcpy(sm, &bootstrap_ops, sizeof(*sm));
47682 + memcpy((void *)sm, &bootstrap_ops, sizeof(*sm));
47683
47684 /*
47685 * Extend.
47686 @@ -728,7 +728,7 @@ out:
47687 /*
47688 * Switch back to normal behaviour.
47689 */
47690 - memcpy(sm, &ops, sizeof(*sm));
47691 + memcpy((void *)sm, &ops, sizeof(*sm));
47692 return r;
47693 }
47694
47695 diff --git a/drivers/md/persistent-data/dm-space-map.h b/drivers/md/persistent-data/dm-space-map.h
47696 index 3e6d115..ffecdeb 100644
47697 --- a/drivers/md/persistent-data/dm-space-map.h
47698 +++ b/drivers/md/persistent-data/dm-space-map.h
47699 @@ -71,6 +71,7 @@ struct dm_space_map {
47700 dm_sm_threshold_fn fn,
47701 void *context);
47702 };
47703 +typedef struct dm_space_map __no_const dm_space_map_no_const;
47704
47705 /*----------------------------------------------------------------*/
47706
47707 diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
47708 index d10d300..6169233 100644
47709 --- a/drivers/md/raid1.c
47710 +++ b/drivers/md/raid1.c
47711 @@ -1937,7 +1937,7 @@ static int fix_sync_read_error(struct r1bio *r1_bio)
47712 if (r1_sync_page_io(rdev, sect, s,
47713 bio->bi_io_vec[idx].bv_page,
47714 READ) != 0)
47715 - atomic_add(s, &rdev->corrected_errors);
47716 + atomic_add_unchecked(s, &rdev->corrected_errors);
47717 }
47718 sectors -= s;
47719 sect += s;
47720 @@ -2170,7 +2170,7 @@ static void fix_read_error(struct r1conf *conf, int read_disk,
47721 !test_bit(Faulty, &rdev->flags)) {
47722 if (r1_sync_page_io(rdev, sect, s,
47723 conf->tmppage, READ)) {
47724 - atomic_add(s, &rdev->corrected_errors);
47725 + atomic_add_unchecked(s, &rdev->corrected_errors);
47726 printk(KERN_INFO
47727 "md/raid1:%s: read error corrected "
47728 "(%d sectors at %llu on %s)\n",
47729 diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
47730 index d4b70d9..3e3bbb8 100644
47731 --- a/drivers/md/raid10.c
47732 +++ b/drivers/md/raid10.c
47733 @@ -1934,7 +1934,7 @@ static void end_sync_read(struct bio *bio, int error)
47734 /* The write handler will notice the lack of
47735 * R10BIO_Uptodate and record any errors etc
47736 */
47737 - atomic_add(r10_bio->sectors,
47738 + atomic_add_unchecked(r10_bio->sectors,
47739 &conf->mirrors[d].rdev->corrected_errors);
47740
47741 /* for reconstruct, we always reschedule after a read.
47742 @@ -2281,7 +2281,7 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
47743 {
47744 struct timespec cur_time_mon;
47745 unsigned long hours_since_last;
47746 - unsigned int read_errors = atomic_read(&rdev->read_errors);
47747 + unsigned int read_errors = atomic_read_unchecked(&rdev->read_errors);
47748
47749 ktime_get_ts(&cur_time_mon);
47750
47751 @@ -2303,9 +2303,9 @@ static void check_decay_read_errors(struct mddev *mddev, struct md_rdev *rdev)
47752 * overflowing the shift of read_errors by hours_since_last.
47753 */
47754 if (hours_since_last >= 8 * sizeof(read_errors))
47755 - atomic_set(&rdev->read_errors, 0);
47756 + atomic_set_unchecked(&rdev->read_errors, 0);
47757 else
47758 - atomic_set(&rdev->read_errors, read_errors >> hours_since_last);
47759 + atomic_set_unchecked(&rdev->read_errors, read_errors >> hours_since_last);
47760 }
47761
47762 static int r10_sync_page_io(struct md_rdev *rdev, sector_t sector,
47763 @@ -2359,8 +2359,8 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
47764 return;
47765
47766 check_decay_read_errors(mddev, rdev);
47767 - atomic_inc(&rdev->read_errors);
47768 - if (atomic_read(&rdev->read_errors) > max_read_errors) {
47769 + atomic_inc_unchecked(&rdev->read_errors);
47770 + if (atomic_read_unchecked(&rdev->read_errors) > max_read_errors) {
47771 char b[BDEVNAME_SIZE];
47772 bdevname(rdev->bdev, b);
47773
47774 @@ -2368,7 +2368,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
47775 "md/raid10:%s: %s: Raid device exceeded "
47776 "read_error threshold [cur %d:max %d]\n",
47777 mdname(mddev), b,
47778 - atomic_read(&rdev->read_errors), max_read_errors);
47779 + atomic_read_unchecked(&rdev->read_errors), max_read_errors);
47780 printk(KERN_NOTICE
47781 "md/raid10:%s: %s: Failing raid device\n",
47782 mdname(mddev), b);
47783 @@ -2523,7 +2523,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
47784 sect +
47785 choose_data_offset(r10_bio, rdev)),
47786 bdevname(rdev->bdev, b));
47787 - atomic_add(s, &rdev->corrected_errors);
47788 + atomic_add_unchecked(s, &rdev->corrected_errors);
47789 }
47790
47791 rdev_dec_pending(rdev, mddev);
47792 diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
47793 index 0d4f7b1..86ea615 100644
47794 --- a/drivers/md/raid5.c
47795 +++ b/drivers/md/raid5.c
47796 @@ -1119,23 +1119,23 @@ async_copy_data(int frombio, struct bio *bio, struct page **page,
47797 struct bio_vec bvl;
47798 struct bvec_iter iter;
47799 struct page *bio_page;
47800 - int page_offset;
47801 + s64 page_offset;
47802 struct async_submit_ctl submit;
47803 enum async_tx_flags flags = 0;
47804
47805 if (bio->bi_iter.bi_sector >= sector)
47806 - page_offset = (signed)(bio->bi_iter.bi_sector - sector) * 512;
47807 + page_offset = (s64)(bio->bi_iter.bi_sector - sector) * 512;
47808 else
47809 - page_offset = (signed)(sector - bio->bi_iter.bi_sector) * -512;
47810 + page_offset = (s64)(sector - bio->bi_iter.bi_sector) * -512;
47811
47812 if (frombio)
47813 flags |= ASYNC_TX_FENCE;
47814 init_async_submit(&submit, flags, tx, NULL, NULL, NULL);
47815
47816 bio_for_each_segment(bvl, bio, iter) {
47817 - int len = bvl.bv_len;
47818 - int clen;
47819 - int b_offset = 0;
47820 + s64 len = bvl.bv_len;
47821 + s64 clen;
47822 + s64 b_offset = 0;
47823
47824 if (page_offset < 0) {
47825 b_offset = -page_offset;
47826 @@ -2028,6 +2028,10 @@ static int grow_one_stripe(struct r5conf *conf, gfp_t gfp)
47827 return 1;
47828 }
47829
47830 +#ifdef CONFIG_GRKERNSEC_HIDESYM
47831 +static atomic_unchecked_t raid5_cache_id = ATOMIC_INIT(0);
47832 +#endif
47833 +
47834 static int grow_stripes(struct r5conf *conf, int num)
47835 {
47836 struct kmem_cache *sc;
47837 @@ -2038,7 +2042,11 @@ static int grow_stripes(struct r5conf *conf, int num)
47838 "raid%d-%s", conf->level, mdname(conf->mddev));
47839 else
47840 sprintf(conf->cache_name[0],
47841 +#ifdef CONFIG_GRKERNSEC_HIDESYM
47842 + "raid%d-%08lx", conf->level, atomic_inc_return_unchecked(&raid5_cache_id));
47843 +#else
47844 "raid%d-%p", conf->level, conf->mddev);
47845 +#endif
47846 sprintf(conf->cache_name[1], "%s-alt", conf->cache_name[0]);
47847
47848 conf->active_name = 0;
47849 @@ -2331,21 +2339,21 @@ static void raid5_end_read_request(struct bio * bi, int error)
47850 mdname(conf->mddev), STRIPE_SECTORS,
47851 (unsigned long long)s,
47852 bdevname(rdev->bdev, b));
47853 - atomic_add(STRIPE_SECTORS, &rdev->corrected_errors);
47854 + atomic_add_unchecked(STRIPE_SECTORS, &rdev->corrected_errors);
47855 clear_bit(R5_ReadError, &sh->dev[i].flags);
47856 clear_bit(R5_ReWrite, &sh->dev[i].flags);
47857 } else if (test_bit(R5_ReadNoMerge, &sh->dev[i].flags))
47858 clear_bit(R5_ReadNoMerge, &sh->dev[i].flags);
47859
47860 - if (atomic_read(&rdev->read_errors))
47861 - atomic_set(&rdev->read_errors, 0);
47862 + if (atomic_read_unchecked(&rdev->read_errors))
47863 + atomic_set_unchecked(&rdev->read_errors, 0);
47864 } else {
47865 const char *bdn = bdevname(rdev->bdev, b);
47866 int retry = 0;
47867 int set_bad = 0;
47868
47869 clear_bit(R5_UPTODATE, &sh->dev[i].flags);
47870 - atomic_inc(&rdev->read_errors);
47871 + atomic_inc_unchecked(&rdev->read_errors);
47872 if (test_bit(R5_ReadRepl, &sh->dev[i].flags))
47873 printk_ratelimited(
47874 KERN_WARNING
47875 @@ -2373,7 +2381,7 @@ static void raid5_end_read_request(struct bio * bi, int error)
47876 mdname(conf->mddev),
47877 (unsigned long long)s,
47878 bdn);
47879 - } else if (atomic_read(&rdev->read_errors)
47880 + } else if (atomic_read_unchecked(&rdev->read_errors)
47881 > conf->max_nr_stripes)
47882 printk(KERN_WARNING
47883 "md/raid:%s: Too many read errors, failing device %s.\n",
47884 diff --git a/drivers/media/dvb-core/dvbdev.c b/drivers/media/dvb-core/dvbdev.c
47885 index 13bb57f..0ca21b2 100644
47886 --- a/drivers/media/dvb-core/dvbdev.c
47887 +++ b/drivers/media/dvb-core/dvbdev.c
47888 @@ -272,7 +272,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
47889 const struct dvb_device *template, void *priv, int type)
47890 {
47891 struct dvb_device *dvbdev;
47892 - struct file_operations *dvbdevfops;
47893 + file_operations_no_const *dvbdevfops;
47894 struct device *clsdev;
47895 int minor;
47896 int id;
47897 diff --git a/drivers/media/dvb-frontends/af9033.h b/drivers/media/dvb-frontends/af9033.h
47898 index 6ad22b6..6e90e2a 100644
47899 --- a/drivers/media/dvb-frontends/af9033.h
47900 +++ b/drivers/media/dvb-frontends/af9033.h
47901 @@ -96,6 +96,6 @@ struct af9033_ops {
47902 int (*pid_filter_ctrl)(struct dvb_frontend *fe, int onoff);
47903 int (*pid_filter)(struct dvb_frontend *fe, int index, u16 pid,
47904 int onoff);
47905 -};
47906 +} __no_const;
47907
47908 #endif /* AF9033_H */
47909 diff --git a/drivers/media/dvb-frontends/dib3000.h b/drivers/media/dvb-frontends/dib3000.h
47910 index 6ae9899..07d8543 100644
47911 --- a/drivers/media/dvb-frontends/dib3000.h
47912 +++ b/drivers/media/dvb-frontends/dib3000.h
47913 @@ -39,7 +39,7 @@ struct dib_fe_xfer_ops
47914 int (*fifo_ctrl)(struct dvb_frontend *fe, int onoff);
47915 int (*pid_ctrl)(struct dvb_frontend *fe, int index, int pid, int onoff);
47916 int (*tuner_pass_ctrl)(struct dvb_frontend *fe, int onoff, u8 pll_ctrl);
47917 -};
47918 +} __no_const;
47919
47920 #if IS_REACHABLE(CONFIG_DVB_DIB3000MB)
47921 extern struct dvb_frontend* dib3000mb_attach(const struct dib3000_config* config,
47922 diff --git a/drivers/media/dvb-frontends/dib7000p.h b/drivers/media/dvb-frontends/dib7000p.h
47923 index baa2789..c8de7fe 100644
47924 --- a/drivers/media/dvb-frontends/dib7000p.h
47925 +++ b/drivers/media/dvb-frontends/dib7000p.h
47926 @@ -64,7 +64,7 @@ struct dib7000p_ops {
47927 int (*get_adc_power)(struct dvb_frontend *fe);
47928 int (*slave_reset)(struct dvb_frontend *fe);
47929 struct dvb_frontend *(*init)(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib7000p_config *cfg);
47930 -};
47931 +} __no_const;
47932
47933 #if IS_REACHABLE(CONFIG_DVB_DIB7000P)
47934 void *dib7000p_attach(struct dib7000p_ops *ops);
47935 diff --git a/drivers/media/dvb-frontends/dib8000.h b/drivers/media/dvb-frontends/dib8000.h
47936 index 2b8b4b1..8cef451 100644
47937 --- a/drivers/media/dvb-frontends/dib8000.h
47938 +++ b/drivers/media/dvb-frontends/dib8000.h
47939 @@ -61,7 +61,7 @@ struct dib8000_ops {
47940 int (*pid_filter_ctrl)(struct dvb_frontend *fe, u8 onoff);
47941 int (*pid_filter)(struct dvb_frontend *fe, u8 id, u16 pid, u8 onoff);
47942 struct dvb_frontend *(*init)(struct i2c_adapter *i2c_adap, u8 i2c_addr, struct dib8000_config *cfg);
47943 -};
47944 +} __no_const;
47945
47946 #if IS_REACHABLE(CONFIG_DVB_DIB8000)
47947 void *dib8000_attach(struct dib8000_ops *ops);
47948 diff --git a/drivers/media/pci/cx88/cx88-video.c b/drivers/media/pci/cx88/cx88-video.c
47949 index 400e5ca..f69f748 100644
47950 --- a/drivers/media/pci/cx88/cx88-video.c
47951 +++ b/drivers/media/pci/cx88/cx88-video.c
47952 @@ -50,9 +50,9 @@ MODULE_VERSION(CX88_VERSION);
47953
47954 /* ------------------------------------------------------------------ */
47955
47956 -static unsigned int video_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47957 -static unsigned int vbi_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47958 -static unsigned int radio_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47959 +static int video_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47960 +static int vbi_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47961 +static int radio_nr[] = {[0 ... (CX88_MAXBOARDS - 1)] = UNSET };
47962
47963 module_param_array(video_nr, int, NULL, 0444);
47964 module_param_array(vbi_nr, int, NULL, 0444);
47965 diff --git a/drivers/media/pci/ivtv/ivtv-driver.c b/drivers/media/pci/ivtv/ivtv-driver.c
47966 index 8616fa8..e16eeaf 100644
47967 --- a/drivers/media/pci/ivtv/ivtv-driver.c
47968 +++ b/drivers/media/pci/ivtv/ivtv-driver.c
47969 @@ -83,7 +83,7 @@ static struct pci_device_id ivtv_pci_tbl[] = {
47970 MODULE_DEVICE_TABLE(pci,ivtv_pci_tbl);
47971
47972 /* ivtv instance counter */
47973 -static atomic_t ivtv_instance = ATOMIC_INIT(0);
47974 +static atomic_unchecked_t ivtv_instance = ATOMIC_INIT(0);
47975
47976 /* Parameter declarations */
47977 static int cardtype[IVTV_MAX_CARDS];
47978 diff --git a/drivers/media/pci/solo6x10/solo6x10-core.c b/drivers/media/pci/solo6x10/solo6x10-core.c
47979 index 570d119..ed25830 100644
47980 --- a/drivers/media/pci/solo6x10/solo6x10-core.c
47981 +++ b/drivers/media/pci/solo6x10/solo6x10-core.c
47982 @@ -424,7 +424,7 @@ static void solo_device_release(struct device *dev)
47983
47984 static int solo_sysfs_init(struct solo_dev *solo_dev)
47985 {
47986 - struct bin_attribute *sdram_attr = &solo_dev->sdram_attr;
47987 + bin_attribute_no_const *sdram_attr = &solo_dev->sdram_attr;
47988 struct device *dev = &solo_dev->dev;
47989 const char *driver;
47990 int i;
47991 diff --git a/drivers/media/pci/solo6x10/solo6x10-g723.c b/drivers/media/pci/solo6x10/solo6x10-g723.c
47992 index 7ddc767..1c24361 100644
47993 --- a/drivers/media/pci/solo6x10/solo6x10-g723.c
47994 +++ b/drivers/media/pci/solo6x10/solo6x10-g723.c
47995 @@ -351,7 +351,7 @@ static int solo_snd_pcm_init(struct solo_dev *solo_dev)
47996
47997 int solo_g723_init(struct solo_dev *solo_dev)
47998 {
47999 - static struct snd_device_ops ops = { NULL };
48000 + static struct snd_device_ops ops = { };
48001 struct snd_card *card;
48002 struct snd_kcontrol_new kctl;
48003 char name[32];
48004 diff --git a/drivers/media/pci/solo6x10/solo6x10-p2m.c b/drivers/media/pci/solo6x10/solo6x10-p2m.c
48005 index 8c84846..27b4f83 100644
48006 --- a/drivers/media/pci/solo6x10/solo6x10-p2m.c
48007 +++ b/drivers/media/pci/solo6x10/solo6x10-p2m.c
48008 @@ -73,7 +73,7 @@ int solo_p2m_dma_desc(struct solo_dev *solo_dev,
48009
48010 /* Get next ID. According to Softlogic, 6110 has problems on !=0 P2M */
48011 if (solo_dev->type != SOLO_DEV_6110 && multi_p2m) {
48012 - p2m_id = atomic_inc_return(&solo_dev->p2m_count) % SOLO_NR_P2M;
48013 + p2m_id = atomic_inc_return_unchecked(&solo_dev->p2m_count) % SOLO_NR_P2M;
48014 if (p2m_id < 0)
48015 p2m_id = -p2m_id;
48016 }
48017 diff --git a/drivers/media/pci/solo6x10/solo6x10.h b/drivers/media/pci/solo6x10/solo6x10.h
48018 index 1ca54b0..7d7cb9a 100644
48019 --- a/drivers/media/pci/solo6x10/solo6x10.h
48020 +++ b/drivers/media/pci/solo6x10/solo6x10.h
48021 @@ -218,7 +218,7 @@ struct solo_dev {
48022
48023 /* P2M DMA Engine */
48024 struct solo_p2m_dev p2m_dev[SOLO_NR_P2M];
48025 - atomic_t p2m_count;
48026 + atomic_unchecked_t p2m_count;
48027 int p2m_jiffies;
48028 unsigned int p2m_timeouts;
48029
48030 diff --git a/drivers/media/pci/tw68/tw68-core.c b/drivers/media/pci/tw68/tw68-core.c
48031 index c135165..dc69499 100644
48032 --- a/drivers/media/pci/tw68/tw68-core.c
48033 +++ b/drivers/media/pci/tw68/tw68-core.c
48034 @@ -60,7 +60,7 @@ static unsigned int card[] = {[0 ... (TW68_MAXBOARDS - 1)] = UNSET };
48035 module_param_array(card, int, NULL, 0444);
48036 MODULE_PARM_DESC(card, "card type");
48037
48038 -static atomic_t tw68_instance = ATOMIC_INIT(0);
48039 +static atomic_unchecked_t tw68_instance = ATOMIC_INIT(0);
48040
48041 /* ------------------------------------------------------------------ */
48042
48043 diff --git a/drivers/media/platform/omap/omap_vout.c b/drivers/media/platform/omap/omap_vout.c
48044 index f09c5f1..38f6d65 100644
48045 --- a/drivers/media/platform/omap/omap_vout.c
48046 +++ b/drivers/media/platform/omap/omap_vout.c
48047 @@ -63,7 +63,6 @@ enum omap_vout_channels {
48048 OMAP_VIDEO2,
48049 };
48050
48051 -static struct videobuf_queue_ops video_vbq_ops;
48052 /* Variables configurable through module params*/
48053 static u32 video1_numbuffers = 3;
48054 static u32 video2_numbuffers = 3;
48055 @@ -1008,6 +1007,12 @@ static int omap_vout_open(struct file *file)
48056 {
48057 struct videobuf_queue *q;
48058 struct omap_vout_device *vout = NULL;
48059 + static struct videobuf_queue_ops video_vbq_ops = {
48060 + .buf_setup = omap_vout_buffer_setup,
48061 + .buf_prepare = omap_vout_buffer_prepare,
48062 + .buf_release = omap_vout_buffer_release,
48063 + .buf_queue = omap_vout_buffer_queue,
48064 + };
48065
48066 vout = video_drvdata(file);
48067 v4l2_dbg(1, debug, &vout->vid_dev->v4l2_dev, "Entering %s\n", __func__);
48068 @@ -1025,10 +1030,6 @@ static int omap_vout_open(struct file *file)
48069 vout->type = V4L2_BUF_TYPE_VIDEO_OUTPUT;
48070
48071 q = &vout->vbq;
48072 - video_vbq_ops.buf_setup = omap_vout_buffer_setup;
48073 - video_vbq_ops.buf_prepare = omap_vout_buffer_prepare;
48074 - video_vbq_ops.buf_release = omap_vout_buffer_release;
48075 - video_vbq_ops.buf_queue = omap_vout_buffer_queue;
48076 spin_lock_init(&vout->vbq_lock);
48077
48078 videobuf_queue_dma_contig_init(q, &video_vbq_ops, q->dev,
48079 diff --git a/drivers/media/platform/s5p-tv/mixer.h b/drivers/media/platform/s5p-tv/mixer.h
48080 index fb2acc5..a2fcbdc4 100644
48081 --- a/drivers/media/platform/s5p-tv/mixer.h
48082 +++ b/drivers/media/platform/s5p-tv/mixer.h
48083 @@ -156,7 +156,7 @@ struct mxr_layer {
48084 /** layer index (unique identifier) */
48085 int idx;
48086 /** callbacks for layer methods */
48087 - struct mxr_layer_ops ops;
48088 + struct mxr_layer_ops *ops;
48089 /** format array */
48090 const struct mxr_format **fmt_array;
48091 /** size of format array */
48092 diff --git a/drivers/media/platform/s5p-tv/mixer_grp_layer.c b/drivers/media/platform/s5p-tv/mixer_grp_layer.c
48093 index 74344c7..a39e70e 100644
48094 --- a/drivers/media/platform/s5p-tv/mixer_grp_layer.c
48095 +++ b/drivers/media/platform/s5p-tv/mixer_grp_layer.c
48096 @@ -235,7 +235,7 @@ struct mxr_layer *mxr_graph_layer_create(struct mxr_device *mdev, int idx)
48097 {
48098 struct mxr_layer *layer;
48099 int ret;
48100 - struct mxr_layer_ops ops = {
48101 + static struct mxr_layer_ops ops = {
48102 .release = mxr_graph_layer_release,
48103 .buffer_set = mxr_graph_buffer_set,
48104 .stream_set = mxr_graph_stream_set,
48105 diff --git a/drivers/media/platform/s5p-tv/mixer_reg.c b/drivers/media/platform/s5p-tv/mixer_reg.c
48106 index b713403..53cb5ad 100644
48107 --- a/drivers/media/platform/s5p-tv/mixer_reg.c
48108 +++ b/drivers/media/platform/s5p-tv/mixer_reg.c
48109 @@ -276,7 +276,7 @@ static void mxr_irq_layer_handle(struct mxr_layer *layer)
48110 layer->update_buf = next;
48111 }
48112
48113 - layer->ops.buffer_set(layer, layer->update_buf);
48114 + layer->ops->buffer_set(layer, layer->update_buf);
48115
48116 if (done && done != layer->shadow_buf)
48117 vb2_buffer_done(&done->vb, VB2_BUF_STATE_DONE);
48118 diff --git a/drivers/media/platform/s5p-tv/mixer_video.c b/drivers/media/platform/s5p-tv/mixer_video.c
48119 index 751f3b6..d829203 100644
48120 --- a/drivers/media/platform/s5p-tv/mixer_video.c
48121 +++ b/drivers/media/platform/s5p-tv/mixer_video.c
48122 @@ -210,7 +210,7 @@ static void mxr_layer_default_geo(struct mxr_layer *layer)
48123 layer->geo.src.height = layer->geo.src.full_height;
48124
48125 mxr_geometry_dump(mdev, &layer->geo);
48126 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48127 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48128 mxr_geometry_dump(mdev, &layer->geo);
48129 }
48130
48131 @@ -228,7 +228,7 @@ static void mxr_layer_update_output(struct mxr_layer *layer)
48132 layer->geo.dst.full_width = mbus_fmt.width;
48133 layer->geo.dst.full_height = mbus_fmt.height;
48134 layer->geo.dst.field = mbus_fmt.field;
48135 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48136 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SINK, 0);
48137
48138 mxr_geometry_dump(mdev, &layer->geo);
48139 }
48140 @@ -334,7 +334,7 @@ static int mxr_s_fmt(struct file *file, void *priv,
48141 /* set source size to highest accepted value */
48142 geo->src.full_width = max(geo->dst.full_width, pix->width);
48143 geo->src.full_height = max(geo->dst.full_height, pix->height);
48144 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48145 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48146 mxr_geometry_dump(mdev, &layer->geo);
48147 /* set cropping to total visible screen */
48148 geo->src.width = pix->width;
48149 @@ -342,12 +342,12 @@ static int mxr_s_fmt(struct file *file, void *priv,
48150 geo->src.x_offset = 0;
48151 geo->src.y_offset = 0;
48152 /* assure consistency of geometry */
48153 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_CROP, MXR_NO_OFFSET);
48154 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_CROP, MXR_NO_OFFSET);
48155 mxr_geometry_dump(mdev, &layer->geo);
48156 /* set full size to lowest possible value */
48157 geo->src.full_width = 0;
48158 geo->src.full_height = 0;
48159 - layer->ops.fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48160 + layer->ops->fix_geometry(layer, MXR_GEOMETRY_SOURCE, 0);
48161 mxr_geometry_dump(mdev, &layer->geo);
48162
48163 /* returning results */
48164 @@ -474,7 +474,7 @@ static int mxr_s_selection(struct file *file, void *fh,
48165 target->width = s->r.width;
48166 target->height = s->r.height;
48167
48168 - layer->ops.fix_geometry(layer, stage, s->flags);
48169 + layer->ops->fix_geometry(layer, stage, s->flags);
48170
48171 /* retrieve update selection rectangle */
48172 res.left = target->x_offset;
48173 @@ -938,13 +938,13 @@ static int start_streaming(struct vb2_queue *vq, unsigned int count)
48174 mxr_output_get(mdev);
48175
48176 mxr_layer_update_output(layer);
48177 - layer->ops.format_set(layer);
48178 + layer->ops->format_set(layer);
48179 /* enabling layer in hardware */
48180 spin_lock_irqsave(&layer->enq_slock, flags);
48181 layer->state = MXR_LAYER_STREAMING;
48182 spin_unlock_irqrestore(&layer->enq_slock, flags);
48183
48184 - layer->ops.stream_set(layer, MXR_ENABLE);
48185 + layer->ops->stream_set(layer, MXR_ENABLE);
48186 mxr_streamer_get(mdev);
48187
48188 return 0;
48189 @@ -1014,7 +1014,7 @@ static void stop_streaming(struct vb2_queue *vq)
48190 spin_unlock_irqrestore(&layer->enq_slock, flags);
48191
48192 /* disabling layer in hardware */
48193 - layer->ops.stream_set(layer, MXR_DISABLE);
48194 + layer->ops->stream_set(layer, MXR_DISABLE);
48195 /* remove one streamer */
48196 mxr_streamer_put(mdev);
48197 /* allow changes in output configuration */
48198 @@ -1052,8 +1052,8 @@ void mxr_base_layer_unregister(struct mxr_layer *layer)
48199
48200 void mxr_layer_release(struct mxr_layer *layer)
48201 {
48202 - if (layer->ops.release)
48203 - layer->ops.release(layer);
48204 + if (layer->ops->release)
48205 + layer->ops->release(layer);
48206 }
48207
48208 void mxr_base_layer_release(struct mxr_layer *layer)
48209 @@ -1079,7 +1079,7 @@ struct mxr_layer *mxr_base_layer_create(struct mxr_device *mdev,
48210
48211 layer->mdev = mdev;
48212 layer->idx = idx;
48213 - layer->ops = *ops;
48214 + layer->ops = ops;
48215
48216 spin_lock_init(&layer->enq_slock);
48217 INIT_LIST_HEAD(&layer->enq_list);
48218 diff --git a/drivers/media/platform/s5p-tv/mixer_vp_layer.c b/drivers/media/platform/s5p-tv/mixer_vp_layer.c
48219 index c9388c4..ce71ece 100644
48220 --- a/drivers/media/platform/s5p-tv/mixer_vp_layer.c
48221 +++ b/drivers/media/platform/s5p-tv/mixer_vp_layer.c
48222 @@ -206,7 +206,7 @@ struct mxr_layer *mxr_vp_layer_create(struct mxr_device *mdev, int idx)
48223 {
48224 struct mxr_layer *layer;
48225 int ret;
48226 - struct mxr_layer_ops ops = {
48227 + static struct mxr_layer_ops ops = {
48228 .release = mxr_vp_layer_release,
48229 .buffer_set = mxr_vp_buffer_set,
48230 .stream_set = mxr_vp_stream_set,
48231 diff --git a/drivers/media/platform/vivid/vivid-osd.c b/drivers/media/platform/vivid/vivid-osd.c
48232 index 084d346..e15eef6 100644
48233 --- a/drivers/media/platform/vivid/vivid-osd.c
48234 +++ b/drivers/media/platform/vivid/vivid-osd.c
48235 @@ -85,6 +85,7 @@ static int vivid_fb_ioctl(struct fb_info *info, unsigned cmd, unsigned long arg)
48236 case FBIOGET_VBLANK: {
48237 struct fb_vblank vblank;
48238
48239 + memset(&vblank, 0, sizeof(vblank));
48240 vblank.flags = FB_VBLANK_HAVE_COUNT | FB_VBLANK_HAVE_VCOUNT |
48241 FB_VBLANK_HAVE_VSYNC;
48242 vblank.count = 0;
48243 diff --git a/drivers/media/radio/radio-cadet.c b/drivers/media/radio/radio-cadet.c
48244 index 82affae..42833ec 100644
48245 --- a/drivers/media/radio/radio-cadet.c
48246 +++ b/drivers/media/radio/radio-cadet.c
48247 @@ -333,6 +333,8 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
48248 unsigned char readbuf[RDS_BUFFER];
48249 int i = 0;
48250
48251 + if (count > RDS_BUFFER)
48252 + return -EFAULT;
48253 mutex_lock(&dev->lock);
48254 if (dev->rdsstat == 0)
48255 cadet_start_rds(dev);
48256 @@ -349,8 +351,9 @@ static ssize_t cadet_read(struct file *file, char __user *data, size_t count, lo
48257 readbuf[i++] = dev->rdsbuf[dev->rdsout++];
48258 mutex_unlock(&dev->lock);
48259
48260 - if (i && copy_to_user(data, readbuf, i))
48261 - return -EFAULT;
48262 + if (i > sizeof(readbuf) || (i && copy_to_user(data, readbuf, i)))
48263 + i = -EFAULT;
48264 +
48265 return i;
48266 }
48267
48268 diff --git a/drivers/media/radio/radio-maxiradio.c b/drivers/media/radio/radio-maxiradio.c
48269 index 5236035..c622c74 100644
48270 --- a/drivers/media/radio/radio-maxiradio.c
48271 +++ b/drivers/media/radio/radio-maxiradio.c
48272 @@ -61,7 +61,7 @@ MODULE_PARM_DESC(radio_nr, "Radio device number");
48273 /* TEA5757 pin mappings */
48274 static const int clk = 1, data = 2, wren = 4, mo_st = 8, power = 16;
48275
48276 -static atomic_t maxiradio_instance = ATOMIC_INIT(0);
48277 +static atomic_unchecked_t maxiradio_instance = ATOMIC_INIT(0);
48278
48279 #define PCI_VENDOR_ID_GUILLEMOT 0x5046
48280 #define PCI_DEVICE_ID_GUILLEMOT_MAXIRADIO 0x1001
48281 diff --git a/drivers/media/radio/radio-shark.c b/drivers/media/radio/radio-shark.c
48282 index 050b3bb..79f62b9 100644
48283 --- a/drivers/media/radio/radio-shark.c
48284 +++ b/drivers/media/radio/radio-shark.c
48285 @@ -79,7 +79,7 @@ struct shark_device {
48286 u32 last_val;
48287 };
48288
48289 -static atomic_t shark_instance = ATOMIC_INIT(0);
48290 +static atomic_unchecked_t shark_instance = ATOMIC_INIT(0);
48291
48292 static void shark_write_val(struct snd_tea575x *tea, u32 val)
48293 {
48294 diff --git a/drivers/media/radio/radio-shark2.c b/drivers/media/radio/radio-shark2.c
48295 index 8654e0d..0608a64 100644
48296 --- a/drivers/media/radio/radio-shark2.c
48297 +++ b/drivers/media/radio/radio-shark2.c
48298 @@ -74,7 +74,7 @@ struct shark_device {
48299 u8 *transfer_buffer;
48300 };
48301
48302 -static atomic_t shark_instance = ATOMIC_INIT(0);
48303 +static atomic_unchecked_t shark_instance = ATOMIC_INIT(0);
48304
48305 static int shark_write_reg(struct radio_tea5777 *tea, u64 reg)
48306 {
48307 diff --git a/drivers/media/radio/radio-si476x.c b/drivers/media/radio/radio-si476x.c
48308 index 9cbb8cd..2bf2ff3 100644
48309 --- a/drivers/media/radio/radio-si476x.c
48310 +++ b/drivers/media/radio/radio-si476x.c
48311 @@ -1445,7 +1445,7 @@ static int si476x_radio_probe(struct platform_device *pdev)
48312 struct si476x_radio *radio;
48313 struct v4l2_ctrl *ctrl;
48314
48315 - static atomic_t instance = ATOMIC_INIT(0);
48316 + static atomic_unchecked_t instance = ATOMIC_INIT(0);
48317
48318 radio = devm_kzalloc(&pdev->dev, sizeof(*radio), GFP_KERNEL);
48319 if (!radio)
48320 diff --git a/drivers/media/radio/wl128x/fmdrv_common.c b/drivers/media/radio/wl128x/fmdrv_common.c
48321 index 704397f..4d05977 100644
48322 --- a/drivers/media/radio/wl128x/fmdrv_common.c
48323 +++ b/drivers/media/radio/wl128x/fmdrv_common.c
48324 @@ -71,7 +71,7 @@ module_param(default_rds_buf, uint, 0444);
48325 MODULE_PARM_DESC(rds_buf, "RDS buffer entries");
48326
48327 /* Radio Nr */
48328 -static u32 radio_nr = -1;
48329 +static int radio_nr = -1;
48330 module_param(radio_nr, int, 0444);
48331 MODULE_PARM_DESC(radio_nr, "Radio Nr");
48332
48333 diff --git a/drivers/media/usb/dvb-usb/cinergyT2-core.c b/drivers/media/usb/dvb-usb/cinergyT2-core.c
48334 index 9fd1527..8927230 100644
48335 --- a/drivers/media/usb/dvb-usb/cinergyT2-core.c
48336 +++ b/drivers/media/usb/dvb-usb/cinergyT2-core.c
48337 @@ -50,29 +50,73 @@ static struct dvb_usb_device_properties cinergyt2_properties;
48338
48339 static int cinergyt2_streaming_ctrl(struct dvb_usb_adapter *adap, int enable)
48340 {
48341 - char buf[] = { CINERGYT2_EP1_CONTROL_STREAM_TRANSFER, enable ? 1 : 0 };
48342 - char result[64];
48343 - return dvb_usb_generic_rw(adap->dev, buf, sizeof(buf), result,
48344 - sizeof(result), 0);
48345 + char *buf;
48346 + char *result;
48347 + int retval;
48348 +
48349 + buf = kmalloc(2, GFP_KERNEL);
48350 + if (buf == NULL)
48351 + return -ENOMEM;
48352 + result = kmalloc(64, GFP_KERNEL);
48353 + if (result == NULL) {
48354 + kfree(buf);
48355 + return -ENOMEM;
48356 + }
48357 +
48358 + buf[0] = CINERGYT2_EP1_CONTROL_STREAM_TRANSFER;
48359 + buf[1] = enable ? 1 : 0;
48360 +
48361 + retval = dvb_usb_generic_rw(adap->dev, buf, 2, result, 64, 0);
48362 +
48363 + kfree(buf);
48364 + kfree(result);
48365 + return retval;
48366 }
48367
48368 static int cinergyt2_power_ctrl(struct dvb_usb_device *d, int enable)
48369 {
48370 - char buf[] = { CINERGYT2_EP1_SLEEP_MODE, enable ? 0 : 1 };
48371 - char state[3];
48372 - return dvb_usb_generic_rw(d, buf, sizeof(buf), state, sizeof(state), 0);
48373 + char *buf;
48374 + char *state;
48375 + int retval;
48376 +
48377 + buf = kmalloc(2, GFP_KERNEL);
48378 + if (buf == NULL)
48379 + return -ENOMEM;
48380 + state = kmalloc(3, GFP_KERNEL);
48381 + if (state == NULL) {
48382 + kfree(buf);
48383 + return -ENOMEM;
48384 + }
48385 +
48386 + buf[0] = CINERGYT2_EP1_SLEEP_MODE;
48387 + buf[1] = enable ? 1 : 0;
48388 +
48389 + retval = dvb_usb_generic_rw(d, buf, 2, state, 3, 0);
48390 +
48391 + kfree(buf);
48392 + kfree(state);
48393 + return retval;
48394 }
48395
48396 static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap)
48397 {
48398 - char query[] = { CINERGYT2_EP1_GET_FIRMWARE_VERSION };
48399 - char state[3];
48400 + char *query;
48401 + char *state;
48402 int ret;
48403 + query = kmalloc(1, GFP_KERNEL);
48404 + if (query == NULL)
48405 + return -ENOMEM;
48406 + state = kmalloc(3, GFP_KERNEL);
48407 + if (state == NULL) {
48408 + kfree(query);
48409 + return -ENOMEM;
48410 + }
48411 +
48412 + query[0] = CINERGYT2_EP1_GET_FIRMWARE_VERSION;
48413
48414 adap->fe_adap[0].fe = cinergyt2_fe_attach(adap->dev);
48415
48416 - ret = dvb_usb_generic_rw(adap->dev, query, sizeof(query), state,
48417 - sizeof(state), 0);
48418 + ret = dvb_usb_generic_rw(adap->dev, query, 1, state, 3, 0);
48419 if (ret < 0) {
48420 deb_rc("cinergyt2_power_ctrl() Failed to retrieve sleep "
48421 "state info\n");
48422 @@ -80,7 +124,8 @@ static int cinergyt2_frontend_attach(struct dvb_usb_adapter *adap)
48423
48424 /* Copy this pointer as we are gonna need it in the release phase */
48425 cinergyt2_usb_device = adap->dev;
48426 -
48427 + kfree(query);
48428 + kfree(state);
48429 return 0;
48430 }
48431
48432 @@ -141,12 +186,23 @@ static int repeatable_keys[] = {
48433 static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
48434 {
48435 struct cinergyt2_state *st = d->priv;
48436 - u8 key[5] = {0, 0, 0, 0, 0}, cmd = CINERGYT2_EP1_GET_RC_EVENTS;
48437 + u8 *key, *cmd;
48438 int i;
48439
48440 + cmd = kmalloc(1, GFP_KERNEL);
48441 + if (cmd == NULL)
48442 + return -EINVAL;
48443 + key = kzalloc(5, GFP_KERNEL);
48444 + if (key == NULL) {
48445 + kfree(cmd);
48446 + return -EINVAL;
48447 + }
48448 +
48449 + cmd[0] = CINERGYT2_EP1_GET_RC_EVENTS;
48450 +
48451 *state = REMOTE_NO_KEY_PRESSED;
48452
48453 - dvb_usb_generic_rw(d, &cmd, 1, key, sizeof(key), 0);
48454 + dvb_usb_generic_rw(d, cmd, 1, key, 5, 0);
48455 if (key[4] == 0xff) {
48456 /* key repeat */
48457 st->rc_counter++;
48458 @@ -157,12 +213,12 @@ static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
48459 *event = d->last_event;
48460 deb_rc("repeat key, event %x\n",
48461 *event);
48462 - return 0;
48463 + goto out;
48464 }
48465 }
48466 deb_rc("repeated key (non repeatable)\n");
48467 }
48468 - return 0;
48469 + goto out;
48470 }
48471
48472 /* hack to pass checksum on the custom field */
48473 @@ -174,6 +230,9 @@ static int cinergyt2_rc_query(struct dvb_usb_device *d, u32 *event, int *state)
48474
48475 deb_rc("key: %*ph\n", 5, key);
48476 }
48477 +out:
48478 + kfree(cmd);
48479 + kfree(key);
48480 return 0;
48481 }
48482
48483 diff --git a/drivers/media/usb/dvb-usb/cinergyT2-fe.c b/drivers/media/usb/dvb-usb/cinergyT2-fe.c
48484 index b3ec743..9c0e418 100644
48485 --- a/drivers/media/usb/dvb-usb/cinergyT2-fe.c
48486 +++ b/drivers/media/usb/dvb-usb/cinergyT2-fe.c
48487 @@ -145,103 +145,176 @@ static int cinergyt2_fe_read_status(struct dvb_frontend *fe,
48488 enum fe_status *status)
48489 {
48490 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48491 - struct dvbt_get_status_msg result;
48492 - u8 cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48493 + struct dvbt_get_status_msg *result;
48494 + u8 *cmd;
48495 int ret;
48496
48497 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (u8 *)&result,
48498 - sizeof(result), 0);
48499 + cmd = kmalloc(1, GFP_KERNEL);
48500 + if (cmd == NULL)
48501 + return -ENOMEM;
48502 + result = kmalloc(sizeof(*result), GFP_KERNEL);
48503 + if (result == NULL) {
48504 + kfree(cmd);
48505 + return -ENOMEM;
48506 + }
48507 +
48508 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48509 +
48510 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (u8 *)result,
48511 + sizeof(*result), 0);
48512 if (ret < 0)
48513 - return ret;
48514 + goto out;
48515
48516 *status = 0;
48517
48518 - if (0xffff - le16_to_cpu(result.gain) > 30)
48519 + if (0xffff - le16_to_cpu(result->gain) > 30)
48520 *status |= FE_HAS_SIGNAL;
48521 - if (result.lock_bits & (1 << 6))
48522 + if (result->lock_bits & (1 << 6))
48523 *status |= FE_HAS_LOCK;
48524 - if (result.lock_bits & (1 << 5))
48525 + if (result->lock_bits & (1 << 5))
48526 *status |= FE_HAS_SYNC;
48527 - if (result.lock_bits & (1 << 4))
48528 + if (result->lock_bits & (1 << 4))
48529 *status |= FE_HAS_CARRIER;
48530 - if (result.lock_bits & (1 << 1))
48531 + if (result->lock_bits & (1 << 1))
48532 *status |= FE_HAS_VITERBI;
48533
48534 if ((*status & (FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC)) !=
48535 (FE_HAS_CARRIER | FE_HAS_VITERBI | FE_HAS_SYNC))
48536 *status &= ~FE_HAS_LOCK;
48537
48538 - return 0;
48539 +out:
48540 + kfree(cmd);
48541 + kfree(result);
48542 + return ret;
48543 }
48544
48545 static int cinergyt2_fe_read_ber(struct dvb_frontend *fe, u32 *ber)
48546 {
48547 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48548 - struct dvbt_get_status_msg status;
48549 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48550 + struct dvbt_get_status_msg *status;
48551 + char *cmd;
48552 int ret;
48553
48554 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
48555 - sizeof(status), 0);
48556 + cmd = kmalloc(1, GFP_KERNEL);
48557 + if (cmd == NULL)
48558 + return -ENOMEM;
48559 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48560 + if (status == NULL) {
48561 + kfree(cmd);
48562 + return -ENOMEM;
48563 + }
48564 +
48565 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48566 +
48567 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
48568 + sizeof(*status), 0);
48569 if (ret < 0)
48570 - return ret;
48571 + goto out;
48572
48573 - *ber = le32_to_cpu(status.viterbi_error_rate);
48574 + *ber = le32_to_cpu(status->viterbi_error_rate);
48575 +out:
48576 + kfree(cmd);
48577 + kfree(status);
48578 return 0;
48579 }
48580
48581 static int cinergyt2_fe_read_unc_blocks(struct dvb_frontend *fe, u32 *unc)
48582 {
48583 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48584 - struct dvbt_get_status_msg status;
48585 - u8 cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48586 + struct dvbt_get_status_msg *status;
48587 + u8 *cmd;
48588 int ret;
48589
48590 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (u8 *)&status,
48591 - sizeof(status), 0);
48592 + cmd = kmalloc(1, GFP_KERNEL);
48593 + if (cmd == NULL)
48594 + return -ENOMEM;
48595 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48596 + if (status == NULL) {
48597 + kfree(cmd);
48598 + return -ENOMEM;
48599 + }
48600 +
48601 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48602 +
48603 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (u8 *)status,
48604 + sizeof(*status), 0);
48605 if (ret < 0) {
48606 err("cinergyt2_fe_read_unc_blocks() Failed! (Error=%d)\n",
48607 ret);
48608 - return ret;
48609 + goto out;
48610 }
48611 - *unc = le32_to_cpu(status.uncorrected_block_count);
48612 - return 0;
48613 + *unc = le32_to_cpu(status->uncorrected_block_count);
48614 +
48615 +out:
48616 + kfree(cmd);
48617 + kfree(status);
48618 + return ret;
48619 }
48620
48621 static int cinergyt2_fe_read_signal_strength(struct dvb_frontend *fe,
48622 u16 *strength)
48623 {
48624 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48625 - struct dvbt_get_status_msg status;
48626 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48627 + struct dvbt_get_status_msg *status;
48628 + char *cmd;
48629 int ret;
48630
48631 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
48632 - sizeof(status), 0);
48633 + cmd = kmalloc(1, GFP_KERNEL);
48634 + if (cmd == NULL)
48635 + return -ENOMEM;
48636 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48637 + if (status == NULL) {
48638 + kfree(cmd);
48639 + return -ENOMEM;
48640 + }
48641 +
48642 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48643 +
48644 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
48645 + sizeof(*status), 0);
48646 if (ret < 0) {
48647 err("cinergyt2_fe_read_signal_strength() Failed!"
48648 " (Error=%d)\n", ret);
48649 - return ret;
48650 + goto out;
48651 }
48652 - *strength = (0xffff - le16_to_cpu(status.gain));
48653 + *strength = (0xffff - le16_to_cpu(status->gain));
48654 +
48655 +out:
48656 + kfree(cmd);
48657 + kfree(status);
48658 return 0;
48659 }
48660
48661 static int cinergyt2_fe_read_snr(struct dvb_frontend *fe, u16 *snr)
48662 {
48663 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48664 - struct dvbt_get_status_msg status;
48665 - char cmd[] = { CINERGYT2_EP1_GET_TUNER_STATUS };
48666 + struct dvbt_get_status_msg *status;
48667 + char *cmd;
48668 int ret;
48669
48670 - ret = dvb_usb_generic_rw(state->d, cmd, sizeof(cmd), (char *)&status,
48671 - sizeof(status), 0);
48672 + cmd = kmalloc(1, GFP_KERNEL);
48673 + if (cmd == NULL)
48674 + return -ENOMEM;
48675 + status = kmalloc(sizeof(*status), GFP_KERNEL);
48676 + if (status == NULL) {
48677 + kfree(cmd);
48678 + return -ENOMEM;
48679 + }
48680 +
48681 + cmd[0] = CINERGYT2_EP1_GET_TUNER_STATUS;
48682 +
48683 + ret = dvb_usb_generic_rw(state->d, cmd, 1, (char *)status,
48684 + sizeof(*status), 0);
48685 if (ret < 0) {
48686 err("cinergyt2_fe_read_snr() Failed! (Error=%d)\n", ret);
48687 - return ret;
48688 + goto out;
48689 }
48690 - *snr = (status.snr << 8) | status.snr;
48691 - return 0;
48692 + *snr = (status->snr << 8) | status->snr;
48693 +
48694 +out:
48695 + kfree(cmd);
48696 + kfree(status);
48697 + return ret;
48698 }
48699
48700 static int cinergyt2_fe_init(struct dvb_frontend *fe)
48701 @@ -266,35 +339,46 @@ static int cinergyt2_fe_set_frontend(struct dvb_frontend *fe)
48702 {
48703 struct dtv_frontend_properties *fep = &fe->dtv_property_cache;
48704 struct cinergyt2_fe_state *state = fe->demodulator_priv;
48705 - struct dvbt_set_parameters_msg param;
48706 - char result[2];
48707 + struct dvbt_set_parameters_msg *param;
48708 + char *result;
48709 int err;
48710
48711 - param.cmd = CINERGYT2_EP1_SET_TUNER_PARAMETERS;
48712 - param.tps = cpu_to_le16(compute_tps(fep));
48713 - param.freq = cpu_to_le32(fep->frequency / 1000);
48714 - param.flags = 0;
48715 + result = kmalloc(2, GFP_KERNEL);
48716 + if (result == NULL)
48717 + return -ENOMEM;
48718 + param = kmalloc(sizeof(*param), GFP_KERNEL);
48719 + if (param == NULL) {
48720 + kfree(result);
48721 + return -ENOMEM;
48722 + }
48723 +
48724 + param->cmd = CINERGYT2_EP1_SET_TUNER_PARAMETERS;
48725 + param->tps = cpu_to_le16(compute_tps(fep));
48726 + param->freq = cpu_to_le32(fep->frequency / 1000);
48727 + param->flags = 0;
48728
48729 switch (fep->bandwidth_hz) {
48730 default:
48731 case 8000000:
48732 - param.bandwidth = 8;
48733 + param->bandwidth = 8;
48734 break;
48735 case 7000000:
48736 - param.bandwidth = 7;
48737 + param->bandwidth = 7;
48738 break;
48739 case 6000000:
48740 - param.bandwidth = 6;
48741 + param->bandwidth = 6;
48742 break;
48743 }
48744
48745 err = dvb_usb_generic_rw(state->d,
48746 - (char *)&param, sizeof(param),
48747 - result, sizeof(result), 0);
48748 + (char *)param, sizeof(*param),
48749 + result, 2, 0);
48750 if (err < 0)
48751 err("cinergyt2_fe_set_frontend() Failed! err=%d\n", err);
48752
48753 - return (err < 0) ? err : 0;
48754 + kfree(result);
48755 + kfree(param);
48756 + return err;
48757 }
48758
48759 static void cinergyt2_fe_release(struct dvb_frontend *fe)
48760 diff --git a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
48761 index 733a7ff..f8b52e3 100644
48762 --- a/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
48763 +++ b/drivers/media/usb/dvb-usb/dvb-usb-firmware.c
48764 @@ -35,42 +35,57 @@ static int usb_cypress_writemem(struct usb_device *udev,u16 addr,u8 *data, u8 le
48765
48766 int usb_cypress_load_firmware(struct usb_device *udev, const struct firmware *fw, int type)
48767 {
48768 - struct hexline hx;
48769 - u8 reset;
48770 + struct hexline *hx;
48771 + u8 *reset;
48772 int ret,pos=0;
48773
48774 + reset = kmalloc(1, GFP_KERNEL);
48775 + if (reset == NULL)
48776 + return -ENOMEM;
48777 +
48778 + hx = kmalloc(sizeof(struct hexline), GFP_KERNEL);
48779 + if (hx == NULL) {
48780 + kfree(reset);
48781 + return -ENOMEM;
48782 + }
48783 +
48784 /* stop the CPU */
48785 - reset = 1;
48786 - if ((ret = usb_cypress_writemem(udev,cypress[type].cpu_cs_register,&reset,1)) != 1)
48787 + reset[0] = 1;
48788 + if ((ret = usb_cypress_writemem(udev,cypress[type].cpu_cs_register,reset,1)) != 1)
48789 err("could not stop the USB controller CPU.");
48790
48791 - while ((ret = dvb_usb_get_hexline(fw,&hx,&pos)) > 0) {
48792 - deb_fw("writing to address 0x%04x (buffer: 0x%02x %02x)\n",hx.addr,hx.len,hx.chk);
48793 - ret = usb_cypress_writemem(udev,hx.addr,hx.data,hx.len);
48794 + while ((ret = dvb_usb_get_hexline(fw,hx,&pos)) > 0) {
48795 + deb_fw("writing to address 0x%04x (buffer: 0x%02x %02x)\n",hx->addr,hx->len,hx->chk);
48796 + ret = usb_cypress_writemem(udev,hx->addr,hx->data,hx->len);
48797
48798 - if (ret != hx.len) {
48799 + if (ret != hx->len) {
48800 err("error while transferring firmware "
48801 "(transferred size: %d, block size: %d)",
48802 - ret,hx.len);
48803 + ret,hx->len);
48804 ret = -EINVAL;
48805 break;
48806 }
48807 }
48808 if (ret < 0) {
48809 err("firmware download failed at %d with %d",pos,ret);
48810 + kfree(reset);
48811 + kfree(hx);
48812 return ret;
48813 }
48814
48815 if (ret == 0) {
48816 /* restart the CPU */
48817 - reset = 0;
48818 - if (ret || usb_cypress_writemem(udev,cypress[type].cpu_cs_register,&reset,1) != 1) {
48819 + reset[0] = 0;
48820 + if (ret || usb_cypress_writemem(udev,cypress[type].cpu_cs_register,reset,1) != 1) {
48821 err("could not restart the USB controller CPU.");
48822 ret = -EINVAL;
48823 }
48824 } else
48825 ret = -EIO;
48826
48827 + kfree(reset);
48828 + kfree(hx);
48829 +
48830 return ret;
48831 }
48832 EXPORT_SYMBOL(usb_cypress_load_firmware);
48833 diff --git a/drivers/media/usb/dvb-usb/technisat-usb2.c b/drivers/media/usb/dvb-usb/technisat-usb2.c
48834 index 03f334d..0986492 100644
48835 --- a/drivers/media/usb/dvb-usb/technisat-usb2.c
48836 +++ b/drivers/media/usb/dvb-usb/technisat-usb2.c
48837 @@ -87,8 +87,11 @@ struct technisat_usb2_state {
48838 static int technisat_usb2_i2c_access(struct usb_device *udev,
48839 u8 device_addr, u8 *tx, u8 txlen, u8 *rx, u8 rxlen)
48840 {
48841 - u8 b[64];
48842 - int ret, actual_length;
48843 + u8 *b = kmalloc(64, GFP_KERNEL);
48844 + int ret, actual_length, error = 0;
48845 +
48846 + if (b == NULL)
48847 + return -ENOMEM;
48848
48849 deb_i2c("i2c-access: %02x, tx: ", device_addr);
48850 debug_dump(tx, txlen, deb_i2c);
48851 @@ -121,7 +124,8 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
48852
48853 if (ret < 0) {
48854 err("i2c-error: out failed %02x = %d", device_addr, ret);
48855 - return -ENODEV;
48856 + error = -ENODEV;
48857 + goto out;
48858 }
48859
48860 ret = usb_bulk_msg(udev,
48861 @@ -129,7 +133,8 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
48862 b, 64, &actual_length, 1000);
48863 if (ret < 0) {
48864 err("i2c-error: in failed %02x = %d", device_addr, ret);
48865 - return -ENODEV;
48866 + error = -ENODEV;
48867 + goto out;
48868 }
48869
48870 if (b[0] != I2C_STATUS_OK) {
48871 @@ -137,8 +142,10 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
48872 /* handle tuner-i2c-nak */
48873 if (!(b[0] == I2C_STATUS_NAK &&
48874 device_addr == 0x60
48875 - /* && device_is_technisat_usb2 */))
48876 - return -ENODEV;
48877 + /* && device_is_technisat_usb2 */)) {
48878 + error = -ENODEV;
48879 + goto out;
48880 + }
48881 }
48882
48883 deb_i2c("status: %d, ", b[0]);
48884 @@ -152,7 +159,9 @@ static int technisat_usb2_i2c_access(struct usb_device *udev,
48885
48886 deb_i2c("\n");
48887
48888 - return 0;
48889 +out:
48890 + kfree(b);
48891 + return error;
48892 }
48893
48894 static int technisat_usb2_i2c_xfer(struct i2c_adapter *adap, struct i2c_msg *msg,
48895 @@ -224,14 +233,16 @@ static int technisat_usb2_set_led(struct dvb_usb_device *d, int red, enum techni
48896 {
48897 int ret;
48898
48899 - u8 led[8] = {
48900 - red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST,
48901 - 0
48902 - };
48903 + u8 *led = kzalloc(8, GFP_KERNEL);
48904 +
48905 + if (led == NULL)
48906 + return -ENOMEM;
48907
48908 if (disable_led_control && state != TECH_LED_OFF)
48909 return 0;
48910
48911 + led[0] = red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST;
48912 +
48913 switch (state) {
48914 case TECH_LED_ON:
48915 led[1] = 0x82;
48916 @@ -263,16 +274,22 @@ static int technisat_usb2_set_led(struct dvb_usb_device *d, int red, enum techni
48917 red ? SET_RED_LED_VENDOR_REQUEST : SET_GREEN_LED_VENDOR_REQUEST,
48918 USB_TYPE_VENDOR | USB_DIR_OUT,
48919 0, 0,
48920 - led, sizeof(led), 500);
48921 + led, 8, 500);
48922
48923 mutex_unlock(&d->i2c_mutex);
48924 +
48925 + kfree(led);
48926 +
48927 return ret;
48928 }
48929
48930 static int technisat_usb2_set_led_timer(struct dvb_usb_device *d, u8 red, u8 green)
48931 {
48932 int ret;
48933 - u8 b = 0;
48934 + u8 *b = kzalloc(1, GFP_KERNEL);
48935 +
48936 + if (b == NULL)
48937 + return -ENOMEM;
48938
48939 if (mutex_lock_interruptible(&d->i2c_mutex) < 0)
48940 return -EAGAIN;
48941 @@ -281,10 +298,12 @@ static int technisat_usb2_set_led_timer(struct dvb_usb_device *d, u8 red, u8 gre
48942 SET_LED_TIMER_DIVIDER_VENDOR_REQUEST,
48943 USB_TYPE_VENDOR | USB_DIR_OUT,
48944 (red << 8) | green, 0,
48945 - &b, 1, 500);
48946 + b, 1, 500);
48947
48948 mutex_unlock(&d->i2c_mutex);
48949
48950 + kfree(b);
48951 +
48952 return ret;
48953 }
48954
48955 @@ -328,7 +347,7 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
48956 struct dvb_usb_device_description **desc, int *cold)
48957 {
48958 int ret;
48959 - u8 version[3];
48960 + u8 *version = kmalloc(3, GFP_KERNEL);
48961
48962 /* first select the interface */
48963 if (usb_set_interface(udev, 0, 1) != 0)
48964 @@ -338,11 +357,14 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
48965
48966 *cold = 0; /* by default do not download a firmware - just in case something is wrong */
48967
48968 + if (version == NULL)
48969 + return 0;
48970 +
48971 ret = usb_control_msg(udev, usb_rcvctrlpipe(udev, 0),
48972 GET_VERSION_INFO_VENDOR_REQUEST,
48973 USB_TYPE_VENDOR | USB_DIR_IN,
48974 0, 0,
48975 - version, sizeof(version), 500);
48976 + version, 3, 500);
48977
48978 if (ret < 0)
48979 *cold = 1;
48980 @@ -351,6 +373,8 @@ static int technisat_usb2_identify_state(struct usb_device *udev,
48981 *cold = 0;
48982 }
48983
48984 + kfree(version);
48985 +
48986 return 0;
48987 }
48988
48989 @@ -594,10 +618,15 @@ static int technisat_usb2_frontend_attach(struct dvb_usb_adapter *a)
48990
48991 static int technisat_usb2_get_ir(struct dvb_usb_device *d)
48992 {
48993 - u8 buf[62], *b;
48994 + u8 *buf, *b;
48995 int ret;
48996 struct ir_raw_event ev;
48997
48998 + buf = kmalloc(62, GFP_KERNEL);
48999 +
49000 + if (buf == NULL)
49001 + return -ENOMEM;
49002 +
49003 buf[0] = GET_IR_DATA_VENDOR_REQUEST;
49004 buf[1] = 0x08;
49005 buf[2] = 0x8f;
49006 @@ -620,16 +649,20 @@ static int technisat_usb2_get_ir(struct dvb_usb_device *d)
49007 GET_IR_DATA_VENDOR_REQUEST,
49008 USB_TYPE_VENDOR | USB_DIR_IN,
49009 0x8080, 0,
49010 - buf, sizeof(buf), 500);
49011 + buf, 62, 500);
49012
49013 unlock:
49014 mutex_unlock(&d->i2c_mutex);
49015
49016 - if (ret < 0)
49017 + if (ret < 0) {
49018 + kfree(buf);
49019 return ret;
49020 + }
49021
49022 - if (ret == 1)
49023 + if (ret == 1) {
49024 + kfree(buf);
49025 return 0; /* no key pressed */
49026 + }
49027
49028 /* decoding */
49029 b = buf+1;
49030 @@ -656,6 +689,8 @@ unlock:
49031
49032 ir_raw_event_handle(d->rc_dev);
49033
49034 + kfree(buf);
49035 +
49036 return 1;
49037 }
49038
49039 diff --git a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
49040 index af63543..0436f20 100644
49041 --- a/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
49042 +++ b/drivers/media/v4l2-core/v4l2-compat-ioctl32.c
49043 @@ -429,7 +429,7 @@ static int get_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
49044 * by passing a very big num_planes value */
49045 uplane = compat_alloc_user_space(num_planes *
49046 sizeof(struct v4l2_plane));
49047 - kp->m.planes = (__force struct v4l2_plane *)uplane;
49048 + kp->m.planes = (__force_kernel struct v4l2_plane *)uplane;
49049
49050 while (--num_planes >= 0) {
49051 ret = get_v4l2_plane32(uplane, uplane32, kp->memory);
49052 @@ -500,7 +500,7 @@ static int put_v4l2_buffer32(struct v4l2_buffer *kp, struct v4l2_buffer32 __user
49053 if (num_planes == 0)
49054 return 0;
49055
49056 - uplane = (__force struct v4l2_plane __user *)kp->m.planes;
49057 + uplane = (struct v4l2_plane __force_user *)kp->m.planes;
49058 if (get_user(p, &up->m.planes))
49059 return -EFAULT;
49060 uplane32 = compat_ptr(p);
49061 @@ -564,7 +564,7 @@ static int get_v4l2_framebuffer32(struct v4l2_framebuffer *kp, struct v4l2_frame
49062 get_user(kp->flags, &up->flags) ||
49063 copy_from_user(&kp->fmt, &up->fmt, sizeof(up->fmt)))
49064 return -EFAULT;
49065 - kp->base = (__force void *)compat_ptr(tmp);
49066 + kp->base = (__force_kernel void *)compat_ptr(tmp);
49067 return 0;
49068 }
49069
49070 @@ -669,7 +669,7 @@ static int get_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
49071 n * sizeof(struct v4l2_ext_control32)))
49072 return -EFAULT;
49073 kcontrols = compat_alloc_user_space(n * sizeof(struct v4l2_ext_control));
49074 - kp->controls = (__force struct v4l2_ext_control *)kcontrols;
49075 + kp->controls = (__force_kernel struct v4l2_ext_control *)kcontrols;
49076 while (--n >= 0) {
49077 u32 id;
49078
49079 @@ -696,7 +696,7 @@ static int put_v4l2_ext_controls32(struct v4l2_ext_controls *kp, struct v4l2_ext
49080 {
49081 struct v4l2_ext_control32 __user *ucontrols;
49082 struct v4l2_ext_control __user *kcontrols =
49083 - (__force struct v4l2_ext_control __user *)kp->controls;
49084 + (struct v4l2_ext_control __force_user *)kp->controls;
49085 int n = kp->count;
49086 compat_caddr_t p;
49087
49088 @@ -780,7 +780,7 @@ static int get_v4l2_edid32(struct v4l2_edid *kp, struct v4l2_edid32 __user *up)
49089 get_user(tmp, &up->edid) ||
49090 copy_from_user(kp->reserved, up->reserved, sizeof(kp->reserved)))
49091 return -EFAULT;
49092 - kp->edid = (__force u8 *)compat_ptr(tmp);
49093 + kp->edid = (__force_kernel u8 *)compat_ptr(tmp);
49094 return 0;
49095 }
49096
49097 diff --git a/drivers/media/v4l2-core/v4l2-device.c b/drivers/media/v4l2-core/v4l2-device.c
49098 index 5b0a30b..1974b38 100644
49099 --- a/drivers/media/v4l2-core/v4l2-device.c
49100 +++ b/drivers/media/v4l2-core/v4l2-device.c
49101 @@ -74,9 +74,9 @@ int v4l2_device_put(struct v4l2_device *v4l2_dev)
49102 EXPORT_SYMBOL_GPL(v4l2_device_put);
49103
49104 int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
49105 - atomic_t *instance)
49106 + atomic_unchecked_t *instance)
49107 {
49108 - int num = atomic_inc_return(instance) - 1;
49109 + int num = atomic_inc_return_unchecked(instance) - 1;
49110 int len = strlen(basename);
49111
49112 if (basename[len - 1] >= '0' && basename[len - 1] <= '9')
49113 diff --git a/drivers/media/v4l2-core/v4l2-ioctl.c b/drivers/media/v4l2-core/v4l2-ioctl.c
49114 index 85de455..4987854 100644
49115 --- a/drivers/media/v4l2-core/v4l2-ioctl.c
49116 +++ b/drivers/media/v4l2-core/v4l2-ioctl.c
49117 @@ -2341,7 +2341,8 @@ struct v4l2_ioctl_info {
49118 struct file *file, void *fh, void *p);
49119 } u;
49120 void (*debug)(const void *arg, bool write_only);
49121 -};
49122 +} __do_const;
49123 +typedef struct v4l2_ioctl_info __no_const v4l2_ioctl_info_no_const;
49124
49125 /* This control needs a priority check */
49126 #define INFO_FL_PRIO (1 << 0)
49127 @@ -2525,7 +2526,7 @@ static long __video_do_ioctl(struct file *file,
49128 struct video_device *vfd = video_devdata(file);
49129 const struct v4l2_ioctl_ops *ops = vfd->ioctl_ops;
49130 bool write_only = false;
49131 - struct v4l2_ioctl_info default_info;
49132 + v4l2_ioctl_info_no_const default_info;
49133 const struct v4l2_ioctl_info *info;
49134 void *fh = file->private_data;
49135 struct v4l2_fh *vfh = NULL;
49136 @@ -2616,7 +2617,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
49137 ret = -EINVAL;
49138 break;
49139 }
49140 - *user_ptr = (void __user *)buf->m.planes;
49141 + *user_ptr = (void __force_user *)buf->m.planes;
49142 *kernel_ptr = (void **)&buf->m.planes;
49143 *array_size = sizeof(struct v4l2_plane) * buf->length;
49144 ret = 1;
49145 @@ -2633,7 +2634,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
49146 ret = -EINVAL;
49147 break;
49148 }
49149 - *user_ptr = (void __user *)edid->edid;
49150 + *user_ptr = (void __force_user *)edid->edid;
49151 *kernel_ptr = (void **)&edid->edid;
49152 *array_size = edid->blocks * 128;
49153 ret = 1;
49154 @@ -2651,7 +2652,7 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
49155 ret = -EINVAL;
49156 break;
49157 }
49158 - *user_ptr = (void __user *)ctrls->controls;
49159 + *user_ptr = (void __force_user *)ctrls->controls;
49160 *kernel_ptr = (void **)&ctrls->controls;
49161 *array_size = sizeof(struct v4l2_ext_control)
49162 * ctrls->count;
49163 @@ -2752,7 +2753,7 @@ video_usercopy(struct file *file, unsigned int cmd, unsigned long arg,
49164 }
49165
49166 if (has_array_args) {
49167 - *kernel_ptr = (void __force *)user_ptr;
49168 + *kernel_ptr = (void __force_kernel *)user_ptr;
49169 if (copy_to_user(user_ptr, mbuf, array_size))
49170 err = -EFAULT;
49171 goto out_array_args;
49172 diff --git a/drivers/memory/omap-gpmc.c b/drivers/memory/omap-gpmc.c
49173 index 9426276..9abd11e 100644
49174 --- a/drivers/memory/omap-gpmc.c
49175 +++ b/drivers/memory/omap-gpmc.c
49176 @@ -232,7 +232,6 @@ struct omap3_gpmc_regs {
49177 };
49178
49179 static struct gpmc_client_irq gpmc_client_irq[GPMC_NR_IRQ];
49180 -static struct irq_chip gpmc_irq_chip;
49181 static int gpmc_irq_start;
49182
49183 static struct resource gpmc_mem_root;
49184 @@ -1146,6 +1145,17 @@ static void gpmc_irq_noop(struct irq_data *data) { }
49185
49186 static unsigned int gpmc_irq_noop_ret(struct irq_data *data) { return 0; }
49187
49188 +static struct irq_chip gpmc_irq_chip = {
49189 + .name = "gpmc",
49190 + .irq_startup = gpmc_irq_noop_ret,
49191 + .irq_enable = gpmc_irq_enable,
49192 + .irq_disable = gpmc_irq_disable,
49193 + .irq_shutdown = gpmc_irq_noop,
49194 + .irq_ack = gpmc_irq_noop,
49195 + .irq_mask = gpmc_irq_noop,
49196 + .irq_unmask = gpmc_irq_noop,
49197 +};
49198 +
49199 static int gpmc_setup_irq(void)
49200 {
49201 int i;
49202 @@ -1160,15 +1170,6 @@ static int gpmc_setup_irq(void)
49203 return gpmc_irq_start;
49204 }
49205
49206 - gpmc_irq_chip.name = "gpmc";
49207 - gpmc_irq_chip.irq_startup = gpmc_irq_noop_ret;
49208 - gpmc_irq_chip.irq_enable = gpmc_irq_enable;
49209 - gpmc_irq_chip.irq_disable = gpmc_irq_disable;
49210 - gpmc_irq_chip.irq_shutdown = gpmc_irq_noop;
49211 - gpmc_irq_chip.irq_ack = gpmc_irq_noop;
49212 - gpmc_irq_chip.irq_mask = gpmc_irq_noop;
49213 - gpmc_irq_chip.irq_unmask = gpmc_irq_noop;
49214 -
49215 gpmc_client_irq[0].bitmask = GPMC_IRQ_FIFOEVENTENABLE;
49216 gpmc_client_irq[1].bitmask = GPMC_IRQ_COUNT_EVENT;
49217
49218 diff --git a/drivers/message/fusion/mptbase.c b/drivers/message/fusion/mptbase.c
49219 index 5dcc031..e08ecd2 100644
49220 --- a/drivers/message/fusion/mptbase.c
49221 +++ b/drivers/message/fusion/mptbase.c
49222 @@ -6722,8 +6722,13 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
49223 seq_printf(m, " MaxChainDepth = 0x%02x frames\n", ioc->facts.MaxChainDepth);
49224 seq_printf(m, " MinBlockSize = 0x%02x bytes\n", 4*ioc->facts.BlockSize);
49225
49226 +#ifdef CONFIG_GRKERNSEC_HIDESYM
49227 + seq_printf(m, " RequestFrames @ 0x%p (Dma @ 0x%p)\n", NULL, NULL);
49228 +#else
49229 seq_printf(m, " RequestFrames @ 0x%p (Dma @ 0x%p)\n",
49230 (void *)ioc->req_frames, (void *)(ulong)ioc->req_frames_dma);
49231 +#endif
49232 +
49233 /*
49234 * Rounding UP to nearest 4-kB boundary here...
49235 */
49236 @@ -6736,7 +6741,11 @@ static int mpt_iocinfo_proc_show(struct seq_file *m, void *v)
49237 ioc->facts.GlobalCredits);
49238
49239 seq_printf(m, " Frames @ 0x%p (Dma @ 0x%p)\n",
49240 +#ifdef CONFIG_GRKERNSEC_HIDESYM
49241 + NULL, NULL);
49242 +#else
49243 (void *)ioc->alloc, (void *)(ulong)ioc->alloc_dma);
49244 +#endif
49245 sz = (ioc->reply_sz * ioc->reply_depth) + 128;
49246 seq_printf(m, " {CurRepSz=%d} x {CurRepDepth=%d} = %d bytes ^= 0x%x\n",
49247 ioc->reply_sz, ioc->reply_depth, ioc->reply_sz*ioc->reply_depth, sz);
49248 diff --git a/drivers/message/fusion/mptsas.c b/drivers/message/fusion/mptsas.c
49249 index 005a88b..5a90fbb 100644
49250 --- a/drivers/message/fusion/mptsas.c
49251 +++ b/drivers/message/fusion/mptsas.c
49252 @@ -446,6 +446,23 @@ mptsas_is_end_device(struct mptsas_devinfo * attached)
49253 return 0;
49254 }
49255
49256 +static inline void
49257 +mptsas_set_rphy(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_rphy *rphy)
49258 +{
49259 + if (phy_info->port_details) {
49260 + phy_info->port_details->rphy = rphy;
49261 + dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sas_rphy_add: rphy=%p\n",
49262 + ioc->name, rphy));
49263 + }
49264 +
49265 + if (rphy) {
49266 + dsaswideprintk(ioc, dev_printk(KERN_DEBUG,
49267 + &rphy->dev, MYIOC_s_FMT "add:", ioc->name));
49268 + dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "rphy=%p release=%p\n",
49269 + ioc->name, rphy, rphy->dev.release));
49270 + }
49271 +}
49272 +
49273 /* no mutex */
49274 static void
49275 mptsas_port_delete(MPT_ADAPTER *ioc, struct mptsas_portinfo_details * port_details)
49276 @@ -484,23 +501,6 @@ mptsas_get_rphy(struct mptsas_phyinfo *phy_info)
49277 return NULL;
49278 }
49279
49280 -static inline void
49281 -mptsas_set_rphy(MPT_ADAPTER *ioc, struct mptsas_phyinfo *phy_info, struct sas_rphy *rphy)
49282 -{
49283 - if (phy_info->port_details) {
49284 - phy_info->port_details->rphy = rphy;
49285 - dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "sas_rphy_add: rphy=%p\n",
49286 - ioc->name, rphy));
49287 - }
49288 -
49289 - if (rphy) {
49290 - dsaswideprintk(ioc, dev_printk(KERN_DEBUG,
49291 - &rphy->dev, MYIOC_s_FMT "add:", ioc->name));
49292 - dsaswideprintk(ioc, printk(MYIOC_s_DEBUG_FMT "rphy=%p release=%p\n",
49293 - ioc->name, rphy, rphy->dev.release));
49294 - }
49295 -}
49296 -
49297 static inline struct sas_port *
49298 mptsas_get_port(struct mptsas_phyinfo *phy_info)
49299 {
49300 diff --git a/drivers/mfd/ab8500-debugfs.c b/drivers/mfd/ab8500-debugfs.c
49301 index 0236cd7..53b10d7 100644
49302 --- a/drivers/mfd/ab8500-debugfs.c
49303 +++ b/drivers/mfd/ab8500-debugfs.c
49304 @@ -100,7 +100,7 @@ static int irq_last;
49305 static u32 *irq_count;
49306 static int num_irqs;
49307
49308 -static struct device_attribute **dev_attr;
49309 +static device_attribute_no_const **dev_attr;
49310 static char **event_name;
49311
49312 static u8 avg_sample = SAMPLE_16;
49313 diff --git a/drivers/mfd/kempld-core.c b/drivers/mfd/kempld-core.c
49314 index 8057849..0550fdf 100644
49315 --- a/drivers/mfd/kempld-core.c
49316 +++ b/drivers/mfd/kempld-core.c
49317 @@ -499,7 +499,7 @@ static struct platform_driver kempld_driver = {
49318 .remove = kempld_remove,
49319 };
49320
49321 -static struct dmi_system_id kempld_dmi_table[] __initdata = {
49322 +static const struct dmi_system_id kempld_dmi_table[] __initconst = {
49323 {
49324 .ident = "BHL6",
49325 .matches = {
49326 diff --git a/drivers/mfd/max8925-i2c.c b/drivers/mfd/max8925-i2c.c
49327 index c880c89..45a7c68 100644
49328 --- a/drivers/mfd/max8925-i2c.c
49329 +++ b/drivers/mfd/max8925-i2c.c
49330 @@ -152,7 +152,7 @@ static int max8925_probe(struct i2c_client *client,
49331 const struct i2c_device_id *id)
49332 {
49333 struct max8925_platform_data *pdata = dev_get_platdata(&client->dev);
49334 - static struct max8925_chip *chip;
49335 + struct max8925_chip *chip;
49336 struct device_node *node = client->dev.of_node;
49337
49338 if (node && !pdata) {
49339 diff --git a/drivers/mfd/tps65910.c b/drivers/mfd/tps65910.c
49340 index 7612d89..70549c2 100644
49341 --- a/drivers/mfd/tps65910.c
49342 +++ b/drivers/mfd/tps65910.c
49343 @@ -230,7 +230,7 @@ static int tps65910_irq_init(struct tps65910 *tps65910, int irq,
49344 struct tps65910_platform_data *pdata)
49345 {
49346 int ret = 0;
49347 - static struct regmap_irq_chip *tps6591x_irqs_chip;
49348 + struct regmap_irq_chip *tps6591x_irqs_chip;
49349
49350 if (!irq) {
49351 dev_warn(tps65910->dev, "No interrupt support, no core IRQ\n");
49352 diff --git a/drivers/mfd/twl4030-irq.c b/drivers/mfd/twl4030-irq.c
49353 index a3fa7f4..eac02ef 100644
49354 --- a/drivers/mfd/twl4030-irq.c
49355 +++ b/drivers/mfd/twl4030-irq.c
49356 @@ -34,6 +34,7 @@
49357 #include <linux/of.h>
49358 #include <linux/irqdomain.h>
49359 #include <linux/i2c/twl.h>
49360 +#include <asm/pgtable.h>
49361
49362 #include "twl-core.h"
49363
49364 @@ -729,10 +730,12 @@ int twl4030_init_irq(struct device *dev, int irq_num)
49365 * Install an irq handler for each of the SIH modules;
49366 * clone dummy irq_chip since PIH can't *do* anything
49367 */
49368 - twl4030_irq_chip = dummy_irq_chip;
49369 - twl4030_irq_chip.name = "twl4030";
49370 + pax_open_kernel();
49371 + memcpy((void *)&twl4030_irq_chip, &dummy_irq_chip, sizeof twl4030_irq_chip);
49372 + *(const char **)&twl4030_irq_chip.name = "twl4030";
49373
49374 - twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack;
49375 + *(void **)&twl4030_sih_irq_chip.irq_ack = dummy_irq_chip.irq_ack;
49376 + pax_close_kernel();
49377
49378 for (i = irq_base; i < irq_end; i++) {
49379 irq_set_chip_and_handler(i, &twl4030_irq_chip,
49380 diff --git a/drivers/misc/c2port/core.c b/drivers/misc/c2port/core.c
49381 index 464419b..64bae8d 100644
49382 --- a/drivers/misc/c2port/core.c
49383 +++ b/drivers/misc/c2port/core.c
49384 @@ -922,7 +922,9 @@ struct c2port_device *c2port_device_register(char *name,
49385 goto error_idr_alloc;
49386 c2dev->id = ret;
49387
49388 - bin_attr_flash_data.size = ops->blocks_num * ops->block_size;
49389 + pax_open_kernel();
49390 + *(size_t *)&bin_attr_flash_data.size = ops->blocks_num * ops->block_size;
49391 + pax_close_kernel();
49392
49393 c2dev->dev = device_create(c2port_class, NULL, 0, c2dev,
49394 "c2port%d", c2dev->id);
49395 diff --git a/drivers/misc/eeprom/sunxi_sid.c b/drivers/misc/eeprom/sunxi_sid.c
49396 index 8385177..2f54635 100644
49397 --- a/drivers/misc/eeprom/sunxi_sid.c
49398 +++ b/drivers/misc/eeprom/sunxi_sid.c
49399 @@ -126,7 +126,9 @@ static int sunxi_sid_probe(struct platform_device *pdev)
49400
49401 platform_set_drvdata(pdev, sid_data);
49402
49403 - sid_bin_attr.size = sid_data->keysize;
49404 + pax_open_kernel();
49405 + *(size_t *)&sid_bin_attr.size = sid_data->keysize;
49406 + pax_close_kernel();
49407 if (device_create_bin_file(&pdev->dev, &sid_bin_attr))
49408 return -ENODEV;
49409
49410 diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
49411 index 9a60bd4..cee2069 100644
49412 --- a/drivers/misc/kgdbts.c
49413 +++ b/drivers/misc/kgdbts.c
49414 @@ -834,7 +834,7 @@ static void run_plant_and_detach_test(int is_early)
49415 char before[BREAK_INSTR_SIZE];
49416 char after[BREAK_INSTR_SIZE];
49417
49418 - probe_kernel_read(before, (char *)kgdbts_break_test,
49419 + probe_kernel_read(before, (void *)ktla_ktva((unsigned long)kgdbts_break_test),
49420 BREAK_INSTR_SIZE);
49421 init_simple_test();
49422 ts.tst = plant_and_detach_test;
49423 @@ -842,7 +842,7 @@ static void run_plant_and_detach_test(int is_early)
49424 /* Activate test with initial breakpoint */
49425 if (!is_early)
49426 kgdb_breakpoint();
49427 - probe_kernel_read(after, (char *)kgdbts_break_test,
49428 + probe_kernel_read(after, (void *)ktla_ktva((unsigned long)kgdbts_break_test),
49429 BREAK_INSTR_SIZE);
49430 if (memcmp(before, after, BREAK_INSTR_SIZE)) {
49431 printk(KERN_CRIT "kgdbts: ERROR kgdb corrupted memory\n");
49432 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.c b/drivers/misc/lis3lv02d/lis3lv02d.c
49433 index fb8705f..dc2f679 100644
49434 --- a/drivers/misc/lis3lv02d/lis3lv02d.c
49435 +++ b/drivers/misc/lis3lv02d/lis3lv02d.c
49436 @@ -497,7 +497,7 @@ static irqreturn_t lis302dl_interrupt(int irq, void *data)
49437 * the lid is closed. This leads to interrupts as soon as a little move
49438 * is done.
49439 */
49440 - atomic_inc(&lis3->count);
49441 + atomic_inc_unchecked(&lis3->count);
49442
49443 wake_up_interruptible(&lis3->misc_wait);
49444 kill_fasync(&lis3->async_queue, SIGIO, POLL_IN);
49445 @@ -583,7 +583,7 @@ static int lis3lv02d_misc_open(struct inode *inode, struct file *file)
49446 if (lis3->pm_dev)
49447 pm_runtime_get_sync(lis3->pm_dev);
49448
49449 - atomic_set(&lis3->count, 0);
49450 + atomic_set_unchecked(&lis3->count, 0);
49451 return 0;
49452 }
49453
49454 @@ -615,7 +615,7 @@ static ssize_t lis3lv02d_misc_read(struct file *file, char __user *buf,
49455 add_wait_queue(&lis3->misc_wait, &wait);
49456 while (true) {
49457 set_current_state(TASK_INTERRUPTIBLE);
49458 - data = atomic_xchg(&lis3->count, 0);
49459 + data = atomic_xchg_unchecked(&lis3->count, 0);
49460 if (data)
49461 break;
49462
49463 @@ -656,7 +656,7 @@ static unsigned int lis3lv02d_misc_poll(struct file *file, poll_table *wait)
49464 struct lis3lv02d, miscdev);
49465
49466 poll_wait(file, &lis3->misc_wait, wait);
49467 - if (atomic_read(&lis3->count))
49468 + if (atomic_read_unchecked(&lis3->count))
49469 return POLLIN | POLLRDNORM;
49470 return 0;
49471 }
49472 diff --git a/drivers/misc/lis3lv02d/lis3lv02d.h b/drivers/misc/lis3lv02d/lis3lv02d.h
49473 index c439c82..1f20f57 100644
49474 --- a/drivers/misc/lis3lv02d/lis3lv02d.h
49475 +++ b/drivers/misc/lis3lv02d/lis3lv02d.h
49476 @@ -297,7 +297,7 @@ struct lis3lv02d {
49477 struct input_polled_dev *idev; /* input device */
49478 struct platform_device *pdev; /* platform device */
49479 struct regulator_bulk_data regulators[2];
49480 - atomic_t count; /* interrupt count after last read */
49481 + atomic_unchecked_t count; /* interrupt count after last read */
49482 union axis_conversion ac; /* hw -> logical axis */
49483 int mapped_btns[3];
49484
49485 diff --git a/drivers/misc/mic/scif/scif_rb.c b/drivers/misc/mic/scif/scif_rb.c
49486 index 637cc46..4fb1267 100644
49487 --- a/drivers/misc/mic/scif/scif_rb.c
49488 +++ b/drivers/misc/mic/scif/scif_rb.c
49489 @@ -138,7 +138,7 @@ void scif_rb_commit(struct scif_rb *rb)
49490 * the read barrier in scif_rb_count(..)
49491 */
49492 wmb();
49493 - ACCESS_ONCE(*rb->write_ptr) = rb->current_write_offset;
49494 + ACCESS_ONCE_RW(*rb->write_ptr) = rb->current_write_offset;
49495 #ifdef CONFIG_INTEL_MIC_CARD
49496 /*
49497 * X100 Si bug: For the case where a Core is performing an EXT_WR
49498 @@ -147,7 +147,7 @@ void scif_rb_commit(struct scif_rb *rb)
49499 * This way, if ordering is violated for the Interrupt Message, it will
49500 * fall just behind the first Posted associated with the first EXT_WR.
49501 */
49502 - ACCESS_ONCE(*rb->write_ptr) = rb->current_write_offset;
49503 + ACCESS_ONCE_RW(*rb->write_ptr) = rb->current_write_offset;
49504 #endif
49505 }
49506
49507 @@ -210,7 +210,7 @@ void scif_rb_update_read_ptr(struct scif_rb *rb)
49508 * scif_rb_space(..)
49509 */
49510 mb();
49511 - ACCESS_ONCE(*rb->read_ptr) = new_offset;
49512 + ACCESS_ONCE_RW(*rb->read_ptr) = new_offset;
49513 #ifdef CONFIG_INTEL_MIC_CARD
49514 /*
49515 * X100 Si Bug: For the case where a Core is performing an EXT_WR
49516 @@ -219,7 +219,7 @@ void scif_rb_update_read_ptr(struct scif_rb *rb)
49517 * This way, if ordering is violated for the Interrupt Message, it will
49518 * fall just behind the first Posted associated with the first EXT_WR.
49519 */
49520 - ACCESS_ONCE(*rb->read_ptr) = new_offset;
49521 + ACCESS_ONCE_RW(*rb->read_ptr) = new_offset;
49522 #endif
49523 }
49524
49525 diff --git a/drivers/misc/sgi-gru/gruhandles.c b/drivers/misc/sgi-gru/gruhandles.c
49526 index 2f30bad..c4c13d0 100644
49527 --- a/drivers/misc/sgi-gru/gruhandles.c
49528 +++ b/drivers/misc/sgi-gru/gruhandles.c
49529 @@ -44,8 +44,8 @@ static void update_mcs_stats(enum mcs_op op, unsigned long clks)
49530 unsigned long nsec;
49531
49532 nsec = CLKS2NSEC(clks);
49533 - atomic_long_inc(&mcs_op_statistics[op].count);
49534 - atomic_long_add(nsec, &mcs_op_statistics[op].total);
49535 + atomic_long_inc_unchecked(&mcs_op_statistics[op].count);
49536 + atomic_long_add_unchecked(nsec, &mcs_op_statistics[op].total);
49537 if (mcs_op_statistics[op].max < nsec)
49538 mcs_op_statistics[op].max = nsec;
49539 }
49540 diff --git a/drivers/misc/sgi-gru/gruprocfs.c b/drivers/misc/sgi-gru/gruprocfs.c
49541 index 4f76359..cdfcb2e 100644
49542 --- a/drivers/misc/sgi-gru/gruprocfs.c
49543 +++ b/drivers/misc/sgi-gru/gruprocfs.c
49544 @@ -32,9 +32,9 @@
49545
49546 #define printstat(s, f) printstat_val(s, &gru_stats.f, #f)
49547
49548 -static void printstat_val(struct seq_file *s, atomic_long_t *v, char *id)
49549 +static void printstat_val(struct seq_file *s, atomic_long_unchecked_t *v, char *id)
49550 {
49551 - unsigned long val = atomic_long_read(v);
49552 + unsigned long val = atomic_long_read_unchecked(v);
49553
49554 seq_printf(s, "%16lu %s\n", val, id);
49555 }
49556 @@ -134,8 +134,8 @@ static int mcs_statistics_show(struct seq_file *s, void *p)
49557
49558 seq_printf(s, "%-20s%12s%12s%12s\n", "#id", "count", "aver-clks", "max-clks");
49559 for (op = 0; op < mcsop_last; op++) {
49560 - count = atomic_long_read(&mcs_op_statistics[op].count);
49561 - total = atomic_long_read(&mcs_op_statistics[op].total);
49562 + count = atomic_long_read_unchecked(&mcs_op_statistics[op].count);
49563 + total = atomic_long_read_unchecked(&mcs_op_statistics[op].total);
49564 max = mcs_op_statistics[op].max;
49565 seq_printf(s, "%-20s%12ld%12ld%12ld\n", id[op], count,
49566 count ? total / count : 0, max);
49567 diff --git a/drivers/misc/sgi-gru/grutables.h b/drivers/misc/sgi-gru/grutables.h
49568 index 5c3ce24..4915ccb 100644
49569 --- a/drivers/misc/sgi-gru/grutables.h
49570 +++ b/drivers/misc/sgi-gru/grutables.h
49571 @@ -167,82 +167,82 @@ extern unsigned int gru_max_gids;
49572 * GRU statistics.
49573 */
49574 struct gru_stats_s {
49575 - atomic_long_t vdata_alloc;
49576 - atomic_long_t vdata_free;
49577 - atomic_long_t gts_alloc;
49578 - atomic_long_t gts_free;
49579 - atomic_long_t gms_alloc;
49580 - atomic_long_t gms_free;
49581 - atomic_long_t gts_double_allocate;
49582 - atomic_long_t assign_context;
49583 - atomic_long_t assign_context_failed;
49584 - atomic_long_t free_context;
49585 - atomic_long_t load_user_context;
49586 - atomic_long_t load_kernel_context;
49587 - atomic_long_t lock_kernel_context;
49588 - atomic_long_t unlock_kernel_context;
49589 - atomic_long_t steal_user_context;
49590 - atomic_long_t steal_kernel_context;
49591 - atomic_long_t steal_context_failed;
49592 - atomic_long_t nopfn;
49593 - atomic_long_t asid_new;
49594 - atomic_long_t asid_next;
49595 - atomic_long_t asid_wrap;
49596 - atomic_long_t asid_reuse;
49597 - atomic_long_t intr;
49598 - atomic_long_t intr_cbr;
49599 - atomic_long_t intr_tfh;
49600 - atomic_long_t intr_spurious;
49601 - atomic_long_t intr_mm_lock_failed;
49602 - atomic_long_t call_os;
49603 - atomic_long_t call_os_wait_queue;
49604 - atomic_long_t user_flush_tlb;
49605 - atomic_long_t user_unload_context;
49606 - atomic_long_t user_exception;
49607 - atomic_long_t set_context_option;
49608 - atomic_long_t check_context_retarget_intr;
49609 - atomic_long_t check_context_unload;
49610 - atomic_long_t tlb_dropin;
49611 - atomic_long_t tlb_preload_page;
49612 - atomic_long_t tlb_dropin_fail_no_asid;
49613 - atomic_long_t tlb_dropin_fail_upm;
49614 - atomic_long_t tlb_dropin_fail_invalid;
49615 - atomic_long_t tlb_dropin_fail_range_active;
49616 - atomic_long_t tlb_dropin_fail_idle;
49617 - atomic_long_t tlb_dropin_fail_fmm;
49618 - atomic_long_t tlb_dropin_fail_no_exception;
49619 - atomic_long_t tfh_stale_on_fault;
49620 - atomic_long_t mmu_invalidate_range;
49621 - atomic_long_t mmu_invalidate_page;
49622 - atomic_long_t flush_tlb;
49623 - atomic_long_t flush_tlb_gru;
49624 - atomic_long_t flush_tlb_gru_tgh;
49625 - atomic_long_t flush_tlb_gru_zero_asid;
49626 + atomic_long_unchecked_t vdata_alloc;
49627 + atomic_long_unchecked_t vdata_free;
49628 + atomic_long_unchecked_t gts_alloc;
49629 + atomic_long_unchecked_t gts_free;
49630 + atomic_long_unchecked_t gms_alloc;
49631 + atomic_long_unchecked_t gms_free;
49632 + atomic_long_unchecked_t gts_double_allocate;
49633 + atomic_long_unchecked_t assign_context;
49634 + atomic_long_unchecked_t assign_context_failed;
49635 + atomic_long_unchecked_t free_context;
49636 + atomic_long_unchecked_t load_user_context;
49637 + atomic_long_unchecked_t load_kernel_context;
49638 + atomic_long_unchecked_t lock_kernel_context;
49639 + atomic_long_unchecked_t unlock_kernel_context;
49640 + atomic_long_unchecked_t steal_user_context;
49641 + atomic_long_unchecked_t steal_kernel_context;
49642 + atomic_long_unchecked_t steal_context_failed;
49643 + atomic_long_unchecked_t nopfn;
49644 + atomic_long_unchecked_t asid_new;
49645 + atomic_long_unchecked_t asid_next;
49646 + atomic_long_unchecked_t asid_wrap;
49647 + atomic_long_unchecked_t asid_reuse;
49648 + atomic_long_unchecked_t intr;
49649 + atomic_long_unchecked_t intr_cbr;
49650 + atomic_long_unchecked_t intr_tfh;
49651 + atomic_long_unchecked_t intr_spurious;
49652 + atomic_long_unchecked_t intr_mm_lock_failed;
49653 + atomic_long_unchecked_t call_os;
49654 + atomic_long_unchecked_t call_os_wait_queue;
49655 + atomic_long_unchecked_t user_flush_tlb;
49656 + atomic_long_unchecked_t user_unload_context;
49657 + atomic_long_unchecked_t user_exception;
49658 + atomic_long_unchecked_t set_context_option;
49659 + atomic_long_unchecked_t check_context_retarget_intr;
49660 + atomic_long_unchecked_t check_context_unload;
49661 + atomic_long_unchecked_t tlb_dropin;
49662 + atomic_long_unchecked_t tlb_preload_page;
49663 + atomic_long_unchecked_t tlb_dropin_fail_no_asid;
49664 + atomic_long_unchecked_t tlb_dropin_fail_upm;
49665 + atomic_long_unchecked_t tlb_dropin_fail_invalid;
49666 + atomic_long_unchecked_t tlb_dropin_fail_range_active;
49667 + atomic_long_unchecked_t tlb_dropin_fail_idle;
49668 + atomic_long_unchecked_t tlb_dropin_fail_fmm;
49669 + atomic_long_unchecked_t tlb_dropin_fail_no_exception;
49670 + atomic_long_unchecked_t tfh_stale_on_fault;
49671 + atomic_long_unchecked_t mmu_invalidate_range;
49672 + atomic_long_unchecked_t mmu_invalidate_page;
49673 + atomic_long_unchecked_t flush_tlb;
49674 + atomic_long_unchecked_t flush_tlb_gru;
49675 + atomic_long_unchecked_t flush_tlb_gru_tgh;
49676 + atomic_long_unchecked_t flush_tlb_gru_zero_asid;
49677
49678 - atomic_long_t copy_gpa;
49679 - atomic_long_t read_gpa;
49680 + atomic_long_unchecked_t copy_gpa;
49681 + atomic_long_unchecked_t read_gpa;
49682
49683 - atomic_long_t mesq_receive;
49684 - atomic_long_t mesq_receive_none;
49685 - atomic_long_t mesq_send;
49686 - atomic_long_t mesq_send_failed;
49687 - atomic_long_t mesq_noop;
49688 - atomic_long_t mesq_send_unexpected_error;
49689 - atomic_long_t mesq_send_lb_overflow;
49690 - atomic_long_t mesq_send_qlimit_reached;
49691 - atomic_long_t mesq_send_amo_nacked;
49692 - atomic_long_t mesq_send_put_nacked;
49693 - atomic_long_t mesq_page_overflow;
49694 - atomic_long_t mesq_qf_locked;
49695 - atomic_long_t mesq_qf_noop_not_full;
49696 - atomic_long_t mesq_qf_switch_head_failed;
49697 - atomic_long_t mesq_qf_unexpected_error;
49698 - atomic_long_t mesq_noop_unexpected_error;
49699 - atomic_long_t mesq_noop_lb_overflow;
49700 - atomic_long_t mesq_noop_qlimit_reached;
49701 - atomic_long_t mesq_noop_amo_nacked;
49702 - atomic_long_t mesq_noop_put_nacked;
49703 - atomic_long_t mesq_noop_page_overflow;
49704 + atomic_long_unchecked_t mesq_receive;
49705 + atomic_long_unchecked_t mesq_receive_none;
49706 + atomic_long_unchecked_t mesq_send;
49707 + atomic_long_unchecked_t mesq_send_failed;
49708 + atomic_long_unchecked_t mesq_noop;
49709 + atomic_long_unchecked_t mesq_send_unexpected_error;
49710 + atomic_long_unchecked_t mesq_send_lb_overflow;
49711 + atomic_long_unchecked_t mesq_send_qlimit_reached;
49712 + atomic_long_unchecked_t mesq_send_amo_nacked;
49713 + atomic_long_unchecked_t mesq_send_put_nacked;
49714 + atomic_long_unchecked_t mesq_page_overflow;
49715 + atomic_long_unchecked_t mesq_qf_locked;
49716 + atomic_long_unchecked_t mesq_qf_noop_not_full;
49717 + atomic_long_unchecked_t mesq_qf_switch_head_failed;
49718 + atomic_long_unchecked_t mesq_qf_unexpected_error;
49719 + atomic_long_unchecked_t mesq_noop_unexpected_error;
49720 + atomic_long_unchecked_t mesq_noop_lb_overflow;
49721 + atomic_long_unchecked_t mesq_noop_qlimit_reached;
49722 + atomic_long_unchecked_t mesq_noop_amo_nacked;
49723 + atomic_long_unchecked_t mesq_noop_put_nacked;
49724 + atomic_long_unchecked_t mesq_noop_page_overflow;
49725
49726 };
49727
49728 @@ -251,8 +251,8 @@ enum mcs_op {cchop_allocate, cchop_start, cchop_interrupt, cchop_interrupt_sync,
49729 tghop_invalidate, mcsop_last};
49730
49731 struct mcs_op_statistic {
49732 - atomic_long_t count;
49733 - atomic_long_t total;
49734 + atomic_long_unchecked_t count;
49735 + atomic_long_unchecked_t total;
49736 unsigned long max;
49737 };
49738
49739 @@ -275,7 +275,7 @@ extern struct mcs_op_statistic mcs_op_statistics[mcsop_last];
49740
49741 #define STAT(id) do { \
49742 if (gru_options & OPT_STATS) \
49743 - atomic_long_inc(&gru_stats.id); \
49744 + atomic_long_inc_unchecked(&gru_stats.id); \
49745 } while (0)
49746
49747 #ifdef CONFIG_SGI_GRU_DEBUG
49748 diff --git a/drivers/misc/sgi-xp/xp.h b/drivers/misc/sgi-xp/xp.h
49749 index c862cd4..0d176fe 100644
49750 --- a/drivers/misc/sgi-xp/xp.h
49751 +++ b/drivers/misc/sgi-xp/xp.h
49752 @@ -288,7 +288,7 @@ struct xpc_interface {
49753 xpc_notify_func, void *);
49754 void (*received) (short, int, void *);
49755 enum xp_retval (*partid_to_nasids) (short, void *);
49756 -};
49757 +} __no_const;
49758
49759 extern struct xpc_interface xpc_interface;
49760
49761 diff --git a/drivers/misc/sgi-xp/xp_main.c b/drivers/misc/sgi-xp/xp_main.c
49762 index 01be66d..e3a0c7e 100644
49763 --- a/drivers/misc/sgi-xp/xp_main.c
49764 +++ b/drivers/misc/sgi-xp/xp_main.c
49765 @@ -78,13 +78,13 @@ xpc_notloaded(void)
49766 }
49767
49768 struct xpc_interface xpc_interface = {
49769 - (void (*)(int))xpc_notloaded,
49770 - (void (*)(int))xpc_notloaded,
49771 - (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded,
49772 - (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func,
49773 + .connect = (void (*)(int))xpc_notloaded,
49774 + .disconnect = (void (*)(int))xpc_notloaded,
49775 + .send = (enum xp_retval(*)(short, int, u32, void *, u16))xpc_notloaded,
49776 + .send_notify = (enum xp_retval(*)(short, int, u32, void *, u16, xpc_notify_func,
49777 void *))xpc_notloaded,
49778 - (void (*)(short, int, void *))xpc_notloaded,
49779 - (enum xp_retval(*)(short, void *))xpc_notloaded
49780 + .received = (void (*)(short, int, void *))xpc_notloaded,
49781 + .partid_to_nasids = (enum xp_retval(*)(short, void *))xpc_notloaded
49782 };
49783 EXPORT_SYMBOL_GPL(xpc_interface);
49784
49785 diff --git a/drivers/misc/sgi-xp/xpc.h b/drivers/misc/sgi-xp/xpc.h
49786 index b94d5f7..7f494c5 100644
49787 --- a/drivers/misc/sgi-xp/xpc.h
49788 +++ b/drivers/misc/sgi-xp/xpc.h
49789 @@ -835,6 +835,7 @@ struct xpc_arch_operations {
49790 void (*received_payload) (struct xpc_channel *, void *);
49791 void (*notify_senders_of_disconnect) (struct xpc_channel *);
49792 };
49793 +typedef struct xpc_arch_operations __no_const xpc_arch_operations_no_const;
49794
49795 /* struct xpc_partition act_state values (for XPC HB) */
49796
49797 @@ -876,7 +877,7 @@ extern struct xpc_registration xpc_registrations[];
49798 /* found in xpc_main.c */
49799 extern struct device *xpc_part;
49800 extern struct device *xpc_chan;
49801 -extern struct xpc_arch_operations xpc_arch_ops;
49802 +extern xpc_arch_operations_no_const xpc_arch_ops;
49803 extern int xpc_disengage_timelimit;
49804 extern int xpc_disengage_timedout;
49805 extern int xpc_activate_IRQ_rcvd;
49806 diff --git a/drivers/misc/sgi-xp/xpc_main.c b/drivers/misc/sgi-xp/xpc_main.c
49807 index 7f32712..8539ab2 100644
49808 --- a/drivers/misc/sgi-xp/xpc_main.c
49809 +++ b/drivers/misc/sgi-xp/xpc_main.c
49810 @@ -166,7 +166,7 @@ static struct notifier_block xpc_die_notifier = {
49811 .notifier_call = xpc_system_die,
49812 };
49813
49814 -struct xpc_arch_operations xpc_arch_ops;
49815 +xpc_arch_operations_no_const xpc_arch_ops;
49816
49817 /*
49818 * Timer function to enforce the timelimit on the partition disengage.
49819 diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
49820 index a1b820f..e299c58 100644
49821 --- a/drivers/mmc/card/block.c
49822 +++ b/drivers/mmc/card/block.c
49823 @@ -579,7 +579,7 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev,
49824 if (idata->ic.postsleep_min_us)
49825 usleep_range(idata->ic.postsleep_min_us, idata->ic.postsleep_max_us);
49826
49827 - if (copy_to_user(&(ic_ptr->response), cmd.resp, sizeof(cmd.resp))) {
49828 + if (copy_to_user(ic_ptr->response, cmd.resp, sizeof(cmd.resp))) {
49829 err = -EFAULT;
49830 goto cmd_rel_host;
49831 }
49832 diff --git a/drivers/mmc/host/dw_mmc.h b/drivers/mmc/host/dw_mmc.h
49833 index 8ce4674..a23c858 100644
49834 --- a/drivers/mmc/host/dw_mmc.h
49835 +++ b/drivers/mmc/host/dw_mmc.h
49836 @@ -286,5 +286,5 @@ struct dw_mci_drv_data {
49837 struct mmc_ios *ios);
49838 int (*switch_voltage)(struct mmc_host *mmc,
49839 struct mmc_ios *ios);
49840 -};
49841 +} __do_const;
49842 #endif /* _DW_MMC_H_ */
49843 diff --git a/drivers/mmc/host/mmci.c b/drivers/mmc/host/mmci.c
49844 index fb26674..3172c2b 100644
49845 --- a/drivers/mmc/host/mmci.c
49846 +++ b/drivers/mmc/host/mmci.c
49847 @@ -1633,7 +1633,9 @@ static int mmci_probe(struct amba_device *dev,
49848 mmc->caps |= MMC_CAP_CMD23;
49849
49850 if (variant->busy_detect) {
49851 - mmci_ops.card_busy = mmci_card_busy;
49852 + pax_open_kernel();
49853 + *(void **)&mmci_ops.card_busy = mmci_card_busy;
49854 + pax_close_kernel();
49855 mmci_write_datactrlreg(host, MCI_ST_DPSM_BUSYMODE);
49856 mmc->caps |= MMC_CAP_WAIT_WHILE_BUSY;
49857 mmc->max_busy_timeout = 0;
49858 diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
49859 index 4d12032..2b0eb6d 100644
49860 --- a/drivers/mmc/host/omap_hsmmc.c
49861 +++ b/drivers/mmc/host/omap_hsmmc.c
49862 @@ -1984,7 +1984,9 @@ static int omap_hsmmc_probe(struct platform_device *pdev)
49863
49864 if (host->pdata->controller_flags & OMAP_HSMMC_BROKEN_MULTIBLOCK_READ) {
49865 dev_info(&pdev->dev, "multiblock reads disabled due to 35xx erratum 2.1.1.128; MMC read performance may suffer\n");
49866 - omap_hsmmc_ops.multi_io_quirk = omap_hsmmc_multi_io_quirk;
49867 + pax_open_kernel();
49868 + *(void **)&omap_hsmmc_ops.multi_io_quirk = omap_hsmmc_multi_io_quirk;
49869 + pax_close_kernel();
49870 }
49871
49872 device_init_wakeup(&pdev->dev, true);
49873 diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
49874 index c6b9f64..00e656c 100644
49875 --- a/drivers/mmc/host/sdhci-esdhc-imx.c
49876 +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
49877 @@ -1088,9 +1088,12 @@ static int sdhci_esdhc_imx_probe(struct platform_device *pdev)
49878 host->ioaddr + 0x6c);
49879 }
49880
49881 - if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING)
49882 - sdhci_esdhc_ops.platform_execute_tuning =
49883 + if (imx_data->socdata->flags & ESDHC_FLAG_MAN_TUNING) {
49884 + pax_open_kernel();
49885 + *(void **)&sdhci_esdhc_ops.platform_execute_tuning =
49886 esdhc_executing_tuning;
49887 + pax_close_kernel();
49888 + }
49889
49890 if (imx_data->socdata->flags & ESDHC_FLAG_STD_TUNING)
49891 writel(readl(host->ioaddr + ESDHC_TUNING_CTRL) |
49892 diff --git a/drivers/mmc/host/sdhci-s3c.c b/drivers/mmc/host/sdhci-s3c.c
49893 index 70c724b..308aafc 100644
49894 --- a/drivers/mmc/host/sdhci-s3c.c
49895 +++ b/drivers/mmc/host/sdhci-s3c.c
49896 @@ -598,9 +598,11 @@ static int sdhci_s3c_probe(struct platform_device *pdev)
49897 * we can use overriding functions instead of default.
49898 */
49899 if (sc->no_divider) {
49900 - sdhci_s3c_ops.set_clock = sdhci_cmu_set_clock;
49901 - sdhci_s3c_ops.get_min_clock = sdhci_cmu_get_min_clock;
49902 - sdhci_s3c_ops.get_max_clock = sdhci_cmu_get_max_clock;
49903 + pax_open_kernel();
49904 + *(void **)&sdhci_s3c_ops.set_clock = sdhci_cmu_set_clock;
49905 + *(void **)&sdhci_s3c_ops.get_min_clock = sdhci_cmu_get_min_clock;
49906 + *(void **)&sdhci_s3c_ops.get_max_clock = sdhci_cmu_get_max_clock;
49907 + pax_close_kernel();
49908 }
49909
49910 /* It supports additional host capabilities if needed */
49911 diff --git a/drivers/mtd/chips/cfi_cmdset_0020.c b/drivers/mtd/chips/cfi_cmdset_0020.c
49912 index 9a1a6ff..b8f1a57 100644
49913 --- a/drivers/mtd/chips/cfi_cmdset_0020.c
49914 +++ b/drivers/mtd/chips/cfi_cmdset_0020.c
49915 @@ -666,7 +666,7 @@ cfi_staa_writev(struct mtd_info *mtd, const struct kvec *vecs,
49916 size_t totlen = 0, thislen;
49917 int ret = 0;
49918 size_t buflen = 0;
49919 - static char *buffer;
49920 + char *buffer;
49921
49922 if (!ECCBUF_SIZE) {
49923 /* We should fall back to a general writev implementation.
49924 diff --git a/drivers/mtd/nand/denali.c b/drivers/mtd/nand/denali.c
49925 index 870c7fc..c7d6440 100644
49926 --- a/drivers/mtd/nand/denali.c
49927 +++ b/drivers/mtd/nand/denali.c
49928 @@ -24,6 +24,7 @@
49929 #include <linux/slab.h>
49930 #include <linux/mtd/mtd.h>
49931 #include <linux/module.h>
49932 +#include <linux/slab.h>
49933
49934 #include "denali.h"
49935
49936 diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
49937 index 1b8f350..990f2e9 100644
49938 --- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
49939 +++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
49940 @@ -386,7 +386,7 @@ void prepare_data_dma(struct gpmi_nand_data *this, enum dma_data_direction dr)
49941
49942 /* first try to map the upper buffer directly */
49943 if (virt_addr_valid(this->upper_buf) &&
49944 - !object_is_on_stack(this->upper_buf)) {
49945 + !object_starts_on_stack(this->upper_buf)) {
49946 sg_init_one(sgl, this->upper_buf, this->upper_len);
49947 ret = dma_map_sg(this->dev, sgl, 1, dr);
49948 if (ret == 0)
49949 diff --git a/drivers/mtd/nftlmount.c b/drivers/mtd/nftlmount.c
49950 index a5dfbfb..8042ab4 100644
49951 --- a/drivers/mtd/nftlmount.c
49952 +++ b/drivers/mtd/nftlmount.c
49953 @@ -24,6 +24,7 @@
49954 #include <asm/errno.h>
49955 #include <linux/delay.h>
49956 #include <linux/slab.h>
49957 +#include <linux/sched.h>
49958 #include <linux/mtd/mtd.h>
49959 #include <linux/mtd/nand.h>
49960 #include <linux/mtd/nftl.h>
49961 diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c
49962 index c23184a..4115c41 100644
49963 --- a/drivers/mtd/sm_ftl.c
49964 +++ b/drivers/mtd/sm_ftl.c
49965 @@ -56,7 +56,7 @@ static ssize_t sm_attr_show(struct device *dev, struct device_attribute *attr,
49966 #define SM_CIS_VENDOR_OFFSET 0x59
49967 static struct attribute_group *sm_create_sysfs_attributes(struct sm_ftl *ftl)
49968 {
49969 - struct attribute_group *attr_group;
49970 + attribute_group_no_const *attr_group;
49971 struct attribute **attributes;
49972 struct sm_sysfs_attribute *vendor_attribute;
49973 char *vendor;
49974 diff --git a/drivers/net/bonding/bond_netlink.c b/drivers/net/bonding/bond_netlink.c
49975 index 1bda292..3f4af40 100644
49976 --- a/drivers/net/bonding/bond_netlink.c
49977 +++ b/drivers/net/bonding/bond_netlink.c
49978 @@ -649,7 +649,7 @@ nla_put_failure:
49979 return -EMSGSIZE;
49980 }
49981
49982 -struct rtnl_link_ops bond_link_ops __read_mostly = {
49983 +struct rtnl_link_ops bond_link_ops = {
49984 .kind = "bond",
49985 .priv_size = sizeof(struct bonding),
49986 .setup = bond_setup,
49987 diff --git a/drivers/net/caif/caif_hsi.c b/drivers/net/caif/caif_hsi.c
49988 index b3b922a..80bba38 100644
49989 --- a/drivers/net/caif/caif_hsi.c
49990 +++ b/drivers/net/caif/caif_hsi.c
49991 @@ -1444,7 +1444,7 @@ err:
49992 return -ENODEV;
49993 }
49994
49995 -static struct rtnl_link_ops caif_hsi_link_ops __read_mostly = {
49996 +static struct rtnl_link_ops caif_hsi_link_ops = {
49997 .kind = "cfhsi",
49998 .priv_size = sizeof(struct cfhsi),
49999 .setup = cfhsi_setup,
50000 diff --git a/drivers/net/can/Kconfig b/drivers/net/can/Kconfig
50001 index e8c96b8..516a96c 100644
50002 --- a/drivers/net/can/Kconfig
50003 +++ b/drivers/net/can/Kconfig
50004 @@ -98,7 +98,7 @@ config CAN_JANZ_ICAN3
50005
50006 config CAN_FLEXCAN
50007 tristate "Support for Freescale FLEXCAN based chips"
50008 - depends on ARM || PPC
50009 + depends on (ARM && CPU_LITTLE_ENDIAN) || PPC
50010 ---help---
50011 Say Y here if you want to support for Freescale FlexCAN.
50012
50013 diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
50014 index aede704..ca734ed 100644
50015 --- a/drivers/net/can/dev.c
50016 +++ b/drivers/net/can/dev.c
50017 @@ -915,7 +915,7 @@ static int can_fill_info(struct sk_buff *skb, const struct net_device *dev)
50018 nla_put(skb, IFLA_CAN_BITTIMING_CONST,
50019 sizeof(*priv->bittiming_const), priv->bittiming_const)) ||
50020
50021 - nla_put(skb, IFLA_CAN_CLOCK, sizeof(cm), &priv->clock) ||
50022 + nla_put(skb, IFLA_CAN_CLOCK, sizeof(priv->clock), &priv->clock) ||
50023 nla_put_u32(skb, IFLA_CAN_STATE, state) ||
50024 nla_put(skb, IFLA_CAN_CTRLMODE, sizeof(cm), &cm) ||
50025 nla_put_u32(skb, IFLA_CAN_RESTART_MS, priv->restart_ms) ||
50026 @@ -961,7 +961,7 @@ static int can_newlink(struct net *src_net, struct net_device *dev,
50027 return -EOPNOTSUPP;
50028 }
50029
50030 -static struct rtnl_link_ops can_link_ops __read_mostly = {
50031 +static struct rtnl_link_ops can_link_ops = {
50032 .kind = "can",
50033 .maxtype = IFLA_CAN_MAX,
50034 .policy = can_policy,
50035 diff --git a/drivers/net/can/vcan.c b/drivers/net/can/vcan.c
50036 index 674f367..ec3a31f 100644
50037 --- a/drivers/net/can/vcan.c
50038 +++ b/drivers/net/can/vcan.c
50039 @@ -163,7 +163,7 @@ static void vcan_setup(struct net_device *dev)
50040 dev->destructor = free_netdev;
50041 }
50042
50043 -static struct rtnl_link_ops vcan_link_ops __read_mostly = {
50044 +static struct rtnl_link_ops vcan_link_ops = {
50045 .kind = "vcan",
50046 .setup = vcan_setup,
50047 };
50048 diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
50049 index 49adbf1..fff7ff8 100644
50050 --- a/drivers/net/dummy.c
50051 +++ b/drivers/net/dummy.c
50052 @@ -164,7 +164,7 @@ static int dummy_validate(struct nlattr *tb[], struct nlattr *data[])
50053 return 0;
50054 }
50055
50056 -static struct rtnl_link_ops dummy_link_ops __read_mostly = {
50057 +static struct rtnl_link_ops dummy_link_ops = {
50058 .kind = DRV_NAME,
50059 .setup = dummy_setup,
50060 .validate = dummy_validate,
50061 diff --git a/drivers/net/ethernet/8390/ax88796.c b/drivers/net/ethernet/8390/ax88796.c
50062 index 0443654..4f0aa18 100644
50063 --- a/drivers/net/ethernet/8390/ax88796.c
50064 +++ b/drivers/net/ethernet/8390/ax88796.c
50065 @@ -889,9 +889,11 @@ static int ax_probe(struct platform_device *pdev)
50066 if (ax->plat->reg_offsets)
50067 ei_local->reg_offset = ax->plat->reg_offsets;
50068 else {
50069 + resource_size_t _mem_size = mem_size;
50070 + do_div(_mem_size, 0x18);
50071 ei_local->reg_offset = ax->reg_offsets;
50072 for (ret = 0; ret < 0x18; ret++)
50073 - ax->reg_offsets[ret] = (mem_size / 0x18) * ret;
50074 + ax->reg_offsets[ret] = _mem_size * ret;
50075 }
50076
50077 if (!request_mem_region(mem->start, mem_size, pdev->name)) {
50078 diff --git a/drivers/net/ethernet/altera/altera_tse_main.c b/drivers/net/ethernet/altera/altera_tse_main.c
50079 index 8207877..ce13e99 100644
50080 --- a/drivers/net/ethernet/altera/altera_tse_main.c
50081 +++ b/drivers/net/ethernet/altera/altera_tse_main.c
50082 @@ -1255,7 +1255,7 @@ static int tse_shutdown(struct net_device *dev)
50083 return 0;
50084 }
50085
50086 -static struct net_device_ops altera_tse_netdev_ops = {
50087 +static net_device_ops_no_const altera_tse_netdev_ops __read_only = {
50088 .ndo_open = tse_open,
50089 .ndo_stop = tse_shutdown,
50090 .ndo_start_xmit = tse_start_xmit,
50091 @@ -1492,11 +1492,13 @@ static int altera_tse_probe(struct platform_device *pdev)
50092 ndev->netdev_ops = &altera_tse_netdev_ops;
50093 altera_tse_set_ethtool_ops(ndev);
50094
50095 + pax_open_kernel();
50096 altera_tse_netdev_ops.ndo_set_rx_mode = tse_set_rx_mode;
50097
50098 if (priv->hash_filter)
50099 altera_tse_netdev_ops.ndo_set_rx_mode =
50100 tse_set_rx_mode_hashfilter;
50101 + pax_close_kernel();
50102
50103 /* Scatter/gather IO is not supported,
50104 * so it is turned off
50105 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-common.h b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
50106 index b6fa891..31ef157 100644
50107 --- a/drivers/net/ethernet/amd/xgbe/xgbe-common.h
50108 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-common.h
50109 @@ -1279,14 +1279,14 @@ do { \
50110 * operations, everything works on mask values.
50111 */
50112 #define XMDIO_READ(_pdata, _mmd, _reg) \
50113 - ((_pdata)->hw_if.read_mmd_regs((_pdata), 0, \
50114 + ((_pdata)->hw_if->read_mmd_regs((_pdata), 0, \
50115 MII_ADDR_C45 | (_mmd << 16) | ((_reg) & 0xffff)))
50116
50117 #define XMDIO_READ_BITS(_pdata, _mmd, _reg, _mask) \
50118 (XMDIO_READ((_pdata), _mmd, _reg) & _mask)
50119
50120 #define XMDIO_WRITE(_pdata, _mmd, _reg, _val) \
50121 - ((_pdata)->hw_if.write_mmd_regs((_pdata), 0, \
50122 + ((_pdata)->hw_if->write_mmd_regs((_pdata), 0, \
50123 MII_ADDR_C45 | (_mmd << 16) | ((_reg) & 0xffff), (_val)))
50124
50125 #define XMDIO_WRITE_BITS(_pdata, _mmd, _reg, _mask, _val) \
50126 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c b/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
50127 index a6b9899..2e5e972 100644
50128 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
50129 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dcb.c
50130 @@ -190,7 +190,7 @@ static int xgbe_dcb_ieee_setets(struct net_device *netdev,
50131
50132 memcpy(pdata->ets, ets, sizeof(*pdata->ets));
50133
50134 - pdata->hw_if.config_dcb_tc(pdata);
50135 + pdata->hw_if->config_dcb_tc(pdata);
50136
50137 return 0;
50138 }
50139 @@ -230,7 +230,7 @@ static int xgbe_dcb_ieee_setpfc(struct net_device *netdev,
50140
50141 memcpy(pdata->pfc, pfc, sizeof(*pdata->pfc));
50142
50143 - pdata->hw_if.config_dcb_pfc(pdata);
50144 + pdata->hw_if->config_dcb_pfc(pdata);
50145
50146 return 0;
50147 }
50148 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
50149 index b3bc87f..5bdfdd3 100644
50150 --- a/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
50151 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-desc.c
50152 @@ -353,7 +353,7 @@ static int xgbe_map_rx_buffer(struct xgbe_prv_data *pdata,
50153
50154 static void xgbe_wrapper_tx_descriptor_init(struct xgbe_prv_data *pdata)
50155 {
50156 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50157 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50158 struct xgbe_channel *channel;
50159 struct xgbe_ring *ring;
50160 struct xgbe_ring_data *rdata;
50161 @@ -394,7 +394,7 @@ static void xgbe_wrapper_tx_descriptor_init(struct xgbe_prv_data *pdata)
50162
50163 static void xgbe_wrapper_rx_descriptor_init(struct xgbe_prv_data *pdata)
50164 {
50165 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50166 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50167 struct xgbe_channel *channel;
50168 struct xgbe_ring *ring;
50169 struct xgbe_ring_desc *rdesc;
50170 @@ -628,17 +628,12 @@ err_out:
50171 return 0;
50172 }
50173
50174 -void xgbe_init_function_ptrs_desc(struct xgbe_desc_if *desc_if)
50175 -{
50176 - DBGPR("-->xgbe_init_function_ptrs_desc\n");
50177 -
50178 - desc_if->alloc_ring_resources = xgbe_alloc_ring_resources;
50179 - desc_if->free_ring_resources = xgbe_free_ring_resources;
50180 - desc_if->map_tx_skb = xgbe_map_tx_skb;
50181 - desc_if->map_rx_buffer = xgbe_map_rx_buffer;
50182 - desc_if->unmap_rdata = xgbe_unmap_rdata;
50183 - desc_if->wrapper_tx_desc_init = xgbe_wrapper_tx_descriptor_init;
50184 - desc_if->wrapper_rx_desc_init = xgbe_wrapper_rx_descriptor_init;
50185 -
50186 - DBGPR("<--xgbe_init_function_ptrs_desc\n");
50187 -}
50188 +const struct xgbe_desc_if default_xgbe_desc_if = {
50189 + .alloc_ring_resources = xgbe_alloc_ring_resources,
50190 + .free_ring_resources = xgbe_free_ring_resources,
50191 + .map_tx_skb = xgbe_map_tx_skb,
50192 + .map_rx_buffer = xgbe_map_rx_buffer,
50193 + .unmap_rdata = xgbe_unmap_rdata,
50194 + .wrapper_tx_desc_init = xgbe_wrapper_tx_descriptor_init,
50195 + .wrapper_rx_desc_init = xgbe_wrapper_rx_descriptor_init,
50196 +};
50197 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
50198 index a4473d8..039a2ab 100644
50199 --- a/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
50200 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-dev.c
50201 @@ -2776,7 +2776,7 @@ static void xgbe_powerdown_rx(struct xgbe_prv_data *pdata)
50202
50203 static int xgbe_init(struct xgbe_prv_data *pdata)
50204 {
50205 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50206 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50207 int ret;
50208
50209 DBGPR("-->xgbe_init\n");
50210 @@ -2842,106 +2842,101 @@ static int xgbe_init(struct xgbe_prv_data *pdata)
50211 return 0;
50212 }
50213
50214 -void xgbe_init_function_ptrs_dev(struct xgbe_hw_if *hw_if)
50215 -{
50216 - DBGPR("-->xgbe_init_function_ptrs\n");
50217 -
50218 - hw_if->tx_complete = xgbe_tx_complete;
50219 -
50220 - hw_if->set_mac_address = xgbe_set_mac_address;
50221 - hw_if->config_rx_mode = xgbe_config_rx_mode;
50222 -
50223 - hw_if->enable_rx_csum = xgbe_enable_rx_csum;
50224 - hw_if->disable_rx_csum = xgbe_disable_rx_csum;
50225 -
50226 - hw_if->enable_rx_vlan_stripping = xgbe_enable_rx_vlan_stripping;
50227 - hw_if->disable_rx_vlan_stripping = xgbe_disable_rx_vlan_stripping;
50228 - hw_if->enable_rx_vlan_filtering = xgbe_enable_rx_vlan_filtering;
50229 - hw_if->disable_rx_vlan_filtering = xgbe_disable_rx_vlan_filtering;
50230 - hw_if->update_vlan_hash_table = xgbe_update_vlan_hash_table;
50231 -
50232 - hw_if->read_mmd_regs = xgbe_read_mmd_regs;
50233 - hw_if->write_mmd_regs = xgbe_write_mmd_regs;
50234 -
50235 - hw_if->set_gmii_speed = xgbe_set_gmii_speed;
50236 - hw_if->set_gmii_2500_speed = xgbe_set_gmii_2500_speed;
50237 - hw_if->set_xgmii_speed = xgbe_set_xgmii_speed;
50238 -
50239 - hw_if->enable_tx = xgbe_enable_tx;
50240 - hw_if->disable_tx = xgbe_disable_tx;
50241 - hw_if->enable_rx = xgbe_enable_rx;
50242 - hw_if->disable_rx = xgbe_disable_rx;
50243 -
50244 - hw_if->powerup_tx = xgbe_powerup_tx;
50245 - hw_if->powerdown_tx = xgbe_powerdown_tx;
50246 - hw_if->powerup_rx = xgbe_powerup_rx;
50247 - hw_if->powerdown_rx = xgbe_powerdown_rx;
50248 -
50249 - hw_if->dev_xmit = xgbe_dev_xmit;
50250 - hw_if->dev_read = xgbe_dev_read;
50251 - hw_if->enable_int = xgbe_enable_int;
50252 - hw_if->disable_int = xgbe_disable_int;
50253 - hw_if->init = xgbe_init;
50254 - hw_if->exit = xgbe_exit;
50255 +const struct xgbe_hw_if default_xgbe_hw_if = {
50256 + .tx_complete = xgbe_tx_complete,
50257 +
50258 + .set_mac_address = xgbe_set_mac_address,
50259 + .config_rx_mode = xgbe_config_rx_mode,
50260 +
50261 + .enable_rx_csum = xgbe_enable_rx_csum,
50262 + .disable_rx_csum = xgbe_disable_rx_csum,
50263 +
50264 + .enable_rx_vlan_stripping = xgbe_enable_rx_vlan_stripping,
50265 + .disable_rx_vlan_stripping = xgbe_disable_rx_vlan_stripping,
50266 + .enable_rx_vlan_filtering = xgbe_enable_rx_vlan_filtering,
50267 + .disable_rx_vlan_filtering = xgbe_disable_rx_vlan_filtering,
50268 + .update_vlan_hash_table = xgbe_update_vlan_hash_table,
50269 +
50270 + .read_mmd_regs = xgbe_read_mmd_regs,
50271 + .write_mmd_regs = xgbe_write_mmd_regs,
50272 +
50273 + .set_gmii_speed = xgbe_set_gmii_speed,
50274 + .set_gmii_2500_speed = xgbe_set_gmii_2500_speed,
50275 + .set_xgmii_speed = xgbe_set_xgmii_speed,
50276 +
50277 + .enable_tx = xgbe_enable_tx,
50278 + .disable_tx = xgbe_disable_tx,
50279 + .enable_rx = xgbe_enable_rx,
50280 + .disable_rx = xgbe_disable_rx,
50281 +
50282 + .powerup_tx = xgbe_powerup_tx,
50283 + .powerdown_tx = xgbe_powerdown_tx,
50284 + .powerup_rx = xgbe_powerup_rx,
50285 + .powerdown_rx = xgbe_powerdown_rx,
50286 +
50287 + .dev_xmit = xgbe_dev_xmit,
50288 + .dev_read = xgbe_dev_read,
50289 + .enable_int = xgbe_enable_int,
50290 + .disable_int = xgbe_disable_int,
50291 + .init = xgbe_init,
50292 + .exit = xgbe_exit,
50293
50294 /* Descriptor related Sequences have to be initialized here */
50295 - hw_if->tx_desc_init = xgbe_tx_desc_init;
50296 - hw_if->rx_desc_init = xgbe_rx_desc_init;
50297 - hw_if->tx_desc_reset = xgbe_tx_desc_reset;
50298 - hw_if->rx_desc_reset = xgbe_rx_desc_reset;
50299 - hw_if->is_last_desc = xgbe_is_last_desc;
50300 - hw_if->is_context_desc = xgbe_is_context_desc;
50301 - hw_if->tx_start_xmit = xgbe_tx_start_xmit;
50302 + .tx_desc_init = xgbe_tx_desc_init,
50303 + .rx_desc_init = xgbe_rx_desc_init,
50304 + .tx_desc_reset = xgbe_tx_desc_reset,
50305 + .rx_desc_reset = xgbe_rx_desc_reset,
50306 + .is_last_desc = xgbe_is_last_desc,
50307 + .is_context_desc = xgbe_is_context_desc,
50308 + .tx_start_xmit = xgbe_tx_start_xmit,
50309
50310 /* For FLOW ctrl */
50311 - hw_if->config_tx_flow_control = xgbe_config_tx_flow_control;
50312 - hw_if->config_rx_flow_control = xgbe_config_rx_flow_control;
50313 + .config_tx_flow_control = xgbe_config_tx_flow_control,
50314 + .config_rx_flow_control = xgbe_config_rx_flow_control,
50315
50316 /* For RX coalescing */
50317 - hw_if->config_rx_coalesce = xgbe_config_rx_coalesce;
50318 - hw_if->config_tx_coalesce = xgbe_config_tx_coalesce;
50319 - hw_if->usec_to_riwt = xgbe_usec_to_riwt;
50320 - hw_if->riwt_to_usec = xgbe_riwt_to_usec;
50321 + .config_rx_coalesce = xgbe_config_rx_coalesce,
50322 + .config_tx_coalesce = xgbe_config_tx_coalesce,
50323 + .usec_to_riwt = xgbe_usec_to_riwt,
50324 + .riwt_to_usec = xgbe_riwt_to_usec,
50325
50326 /* For RX and TX threshold config */
50327 - hw_if->config_rx_threshold = xgbe_config_rx_threshold;
50328 - hw_if->config_tx_threshold = xgbe_config_tx_threshold;
50329 + .config_rx_threshold = xgbe_config_rx_threshold,
50330 + .config_tx_threshold = xgbe_config_tx_threshold,
50331
50332 /* For RX and TX Store and Forward Mode config */
50333 - hw_if->config_rsf_mode = xgbe_config_rsf_mode;
50334 - hw_if->config_tsf_mode = xgbe_config_tsf_mode;
50335 + .config_rsf_mode = xgbe_config_rsf_mode,
50336 + .config_tsf_mode = xgbe_config_tsf_mode,
50337
50338 /* For TX DMA Operating on Second Frame config */
50339 - hw_if->config_osp_mode = xgbe_config_osp_mode;
50340 + .config_osp_mode = xgbe_config_osp_mode,
50341
50342 /* For RX and TX PBL config */
50343 - hw_if->config_rx_pbl_val = xgbe_config_rx_pbl_val;
50344 - hw_if->get_rx_pbl_val = xgbe_get_rx_pbl_val;
50345 - hw_if->config_tx_pbl_val = xgbe_config_tx_pbl_val;
50346 - hw_if->get_tx_pbl_val = xgbe_get_tx_pbl_val;
50347 - hw_if->config_pblx8 = xgbe_config_pblx8;
50348 + .config_rx_pbl_val = xgbe_config_rx_pbl_val,
50349 + .get_rx_pbl_val = xgbe_get_rx_pbl_val,
50350 + .config_tx_pbl_val = xgbe_config_tx_pbl_val,
50351 + .get_tx_pbl_val = xgbe_get_tx_pbl_val,
50352 + .config_pblx8 = xgbe_config_pblx8,
50353
50354 /* For MMC statistics support */
50355 - hw_if->tx_mmc_int = xgbe_tx_mmc_int;
50356 - hw_if->rx_mmc_int = xgbe_rx_mmc_int;
50357 - hw_if->read_mmc_stats = xgbe_read_mmc_stats;
50358 + .tx_mmc_int = xgbe_tx_mmc_int,
50359 + .rx_mmc_int = xgbe_rx_mmc_int,
50360 + .read_mmc_stats = xgbe_read_mmc_stats,
50361
50362 /* For PTP config */
50363 - hw_if->config_tstamp = xgbe_config_tstamp;
50364 - hw_if->update_tstamp_addend = xgbe_update_tstamp_addend;
50365 - hw_if->set_tstamp_time = xgbe_set_tstamp_time;
50366 - hw_if->get_tstamp_time = xgbe_get_tstamp_time;
50367 - hw_if->get_tx_tstamp = xgbe_get_tx_tstamp;
50368 + .config_tstamp = xgbe_config_tstamp,
50369 + .update_tstamp_addend = xgbe_update_tstamp_addend,
50370 + .set_tstamp_time = xgbe_set_tstamp_time,
50371 + .get_tstamp_time = xgbe_get_tstamp_time,
50372 + .get_tx_tstamp = xgbe_get_tx_tstamp,
50373
50374 /* For Data Center Bridging config */
50375 - hw_if->config_dcb_tc = xgbe_config_dcb_tc;
50376 - hw_if->config_dcb_pfc = xgbe_config_dcb_pfc;
50377 + .config_dcb_tc = xgbe_config_dcb_tc,
50378 + .config_dcb_pfc = xgbe_config_dcb_pfc,
50379
50380 /* For Receive Side Scaling */
50381 - hw_if->enable_rss = xgbe_enable_rss;
50382 - hw_if->disable_rss = xgbe_disable_rss;
50383 - hw_if->set_rss_hash_key = xgbe_set_rss_hash_key;
50384 - hw_if->set_rss_lookup_table = xgbe_set_rss_lookup_table;
50385 -
50386 - DBGPR("<--xgbe_init_function_ptrs\n");
50387 -}
50388 + .enable_rss = xgbe_enable_rss,
50389 + .disable_rss = xgbe_disable_rss,
50390 + .set_rss_hash_key = xgbe_set_rss_hash_key,
50391 + .set_rss_lookup_table = xgbe_set_rss_lookup_table,
50392 +};
50393 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
50394 index aae9d5e..29ce58d 100644
50395 --- a/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
50396 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-drv.c
50397 @@ -245,7 +245,7 @@ static int xgbe_maybe_stop_tx_queue(struct xgbe_channel *channel,
50398 * support, tell it now
50399 */
50400 if (ring->tx.xmit_more)
50401 - pdata->hw_if.tx_start_xmit(channel, ring);
50402 + pdata->hw_if->tx_start_xmit(channel, ring);
50403
50404 return NETDEV_TX_BUSY;
50405 }
50406 @@ -273,7 +273,7 @@ static int xgbe_calc_rx_buf_size(struct net_device *netdev, unsigned int mtu)
50407
50408 static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
50409 {
50410 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50411 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50412 struct xgbe_channel *channel;
50413 enum xgbe_int int_id;
50414 unsigned int i;
50415 @@ -295,7 +295,7 @@ static void xgbe_enable_rx_tx_ints(struct xgbe_prv_data *pdata)
50416
50417 static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
50418 {
50419 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50420 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50421 struct xgbe_channel *channel;
50422 enum xgbe_int int_id;
50423 unsigned int i;
50424 @@ -318,7 +318,7 @@ static void xgbe_disable_rx_tx_ints(struct xgbe_prv_data *pdata)
50425 static irqreturn_t xgbe_isr(int irq, void *data)
50426 {
50427 struct xgbe_prv_data *pdata = data;
50428 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50429 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50430 struct xgbe_channel *channel;
50431 unsigned int dma_isr, dma_ch_isr;
50432 unsigned int mac_isr, mac_tssr;
50433 @@ -443,7 +443,7 @@ static void xgbe_service(struct work_struct *work)
50434 struct xgbe_prv_data,
50435 service_work);
50436
50437 - pdata->phy_if.phy_status(pdata);
50438 + pdata->phy_if->phy_status(pdata);
50439 }
50440
50441 static void xgbe_service_timer(unsigned long data)
50442 @@ -702,7 +702,7 @@ static void xgbe_free_irqs(struct xgbe_prv_data *pdata)
50443
50444 void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
50445 {
50446 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50447 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50448
50449 DBGPR("-->xgbe_init_tx_coalesce\n");
50450
50451 @@ -716,7 +716,7 @@ void xgbe_init_tx_coalesce(struct xgbe_prv_data *pdata)
50452
50453 void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
50454 {
50455 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50456 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50457
50458 DBGPR("-->xgbe_init_rx_coalesce\n");
50459
50460 @@ -731,7 +731,7 @@ void xgbe_init_rx_coalesce(struct xgbe_prv_data *pdata)
50461
50462 static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
50463 {
50464 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50465 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50466 struct xgbe_channel *channel;
50467 struct xgbe_ring *ring;
50468 struct xgbe_ring_data *rdata;
50469 @@ -756,7 +756,7 @@ static void xgbe_free_tx_data(struct xgbe_prv_data *pdata)
50470
50471 static void xgbe_free_rx_data(struct xgbe_prv_data *pdata)
50472 {
50473 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50474 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50475 struct xgbe_channel *channel;
50476 struct xgbe_ring *ring;
50477 struct xgbe_ring_data *rdata;
50478 @@ -784,13 +784,13 @@ static int xgbe_phy_init(struct xgbe_prv_data *pdata)
50479 pdata->phy_link = -1;
50480 pdata->phy_speed = SPEED_UNKNOWN;
50481
50482 - return pdata->phy_if.phy_reset(pdata);
50483 + return pdata->phy_if->phy_reset(pdata);
50484 }
50485
50486 int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
50487 {
50488 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50489 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50490 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50491 unsigned long flags;
50492
50493 DBGPR("-->xgbe_powerdown\n");
50494 @@ -829,7 +829,7 @@ int xgbe_powerdown(struct net_device *netdev, unsigned int caller)
50495 int xgbe_powerup(struct net_device *netdev, unsigned int caller)
50496 {
50497 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50498 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50499 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50500 unsigned long flags;
50501
50502 DBGPR("-->xgbe_powerup\n");
50503 @@ -866,8 +866,8 @@ int xgbe_powerup(struct net_device *netdev, unsigned int caller)
50504
50505 static int xgbe_start(struct xgbe_prv_data *pdata)
50506 {
50507 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50508 - struct xgbe_phy_if *phy_if = &pdata->phy_if;
50509 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50510 + struct xgbe_phy_if *phy_if = pdata->phy_if;
50511 struct net_device *netdev = pdata->netdev;
50512 int ret;
50513
50514 @@ -910,8 +910,8 @@ err_phy:
50515
50516 static void xgbe_stop(struct xgbe_prv_data *pdata)
50517 {
50518 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50519 - struct xgbe_phy_if *phy_if = &pdata->phy_if;
50520 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50521 + struct xgbe_phy_if *phy_if = pdata->phy_if;
50522 struct xgbe_channel *channel;
50523 struct net_device *netdev = pdata->netdev;
50524 struct netdev_queue *txq;
50525 @@ -1139,7 +1139,7 @@ static int xgbe_set_hwtstamp_settings(struct xgbe_prv_data *pdata,
50526 return -ERANGE;
50527 }
50528
50529 - pdata->hw_if.config_tstamp(pdata, mac_tscr);
50530 + pdata->hw_if->config_tstamp(pdata, mac_tscr);
50531
50532 memcpy(&pdata->tstamp_config, &config, sizeof(config));
50533
50534 @@ -1288,7 +1288,7 @@ static void xgbe_packet_info(struct xgbe_prv_data *pdata,
50535 static int xgbe_open(struct net_device *netdev)
50536 {
50537 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50538 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50539 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50540 int ret;
50541
50542 DBGPR("-->xgbe_open\n");
50543 @@ -1360,7 +1360,7 @@ err_sysclk:
50544 static int xgbe_close(struct net_device *netdev)
50545 {
50546 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50547 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50548 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50549
50550 DBGPR("-->xgbe_close\n");
50551
50552 @@ -1387,8 +1387,8 @@ static int xgbe_close(struct net_device *netdev)
50553 static int xgbe_xmit(struct sk_buff *skb, struct net_device *netdev)
50554 {
50555 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50556 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50557 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50558 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50559 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50560 struct xgbe_channel *channel;
50561 struct xgbe_ring *ring;
50562 struct xgbe_packet_data *packet;
50563 @@ -1457,7 +1457,7 @@ tx_netdev_return:
50564 static void xgbe_set_rx_mode(struct net_device *netdev)
50565 {
50566 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50567 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50568 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50569
50570 DBGPR("-->xgbe_set_rx_mode\n");
50571
50572 @@ -1469,7 +1469,7 @@ static void xgbe_set_rx_mode(struct net_device *netdev)
50573 static int xgbe_set_mac_address(struct net_device *netdev, void *addr)
50574 {
50575 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50576 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50577 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50578 struct sockaddr *saddr = addr;
50579
50580 DBGPR("-->xgbe_set_mac_address\n");
50581 @@ -1544,7 +1544,7 @@ static struct rtnl_link_stats64 *xgbe_get_stats64(struct net_device *netdev,
50582
50583 DBGPR("-->%s\n", __func__);
50584
50585 - pdata->hw_if.read_mmc_stats(pdata);
50586 + pdata->hw_if->read_mmc_stats(pdata);
50587
50588 s->rx_packets = pstats->rxframecount_gb;
50589 s->rx_bytes = pstats->rxoctetcount_gb;
50590 @@ -1571,7 +1571,7 @@ static int xgbe_vlan_rx_add_vid(struct net_device *netdev, __be16 proto,
50591 u16 vid)
50592 {
50593 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50594 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50595 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50596
50597 DBGPR("-->%s\n", __func__);
50598
50599 @@ -1587,7 +1587,7 @@ static int xgbe_vlan_rx_kill_vid(struct net_device *netdev, __be16 proto,
50600 u16 vid)
50601 {
50602 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50603 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50604 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50605
50606 DBGPR("-->%s\n", __func__);
50607
50608 @@ -1654,7 +1654,7 @@ static int xgbe_set_features(struct net_device *netdev,
50609 netdev_features_t features)
50610 {
50611 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50612 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50613 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50614 netdev_features_t rxhash, rxcsum, rxvlan, rxvlan_filter;
50615 int ret = 0;
50616
50617 @@ -1720,8 +1720,8 @@ struct net_device_ops *xgbe_get_netdev_ops(void)
50618 static void xgbe_rx_refresh(struct xgbe_channel *channel)
50619 {
50620 struct xgbe_prv_data *pdata = channel->pdata;
50621 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50622 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50623 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50624 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50625 struct xgbe_ring *ring = channel->rx_ring;
50626 struct xgbe_ring_data *rdata;
50627
50628 @@ -1798,8 +1798,8 @@ static struct sk_buff *xgbe_create_skb(struct xgbe_prv_data *pdata,
50629 static int xgbe_tx_poll(struct xgbe_channel *channel)
50630 {
50631 struct xgbe_prv_data *pdata = channel->pdata;
50632 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50633 - struct xgbe_desc_if *desc_if = &pdata->desc_if;
50634 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50635 + struct xgbe_desc_if *desc_if = pdata->desc_if;
50636 struct xgbe_ring *ring = channel->tx_ring;
50637 struct xgbe_ring_data *rdata;
50638 struct xgbe_ring_desc *rdesc;
50639 @@ -1863,7 +1863,7 @@ static int xgbe_tx_poll(struct xgbe_channel *channel)
50640 static int xgbe_rx_poll(struct xgbe_channel *channel, int budget)
50641 {
50642 struct xgbe_prv_data *pdata = channel->pdata;
50643 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50644 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50645 struct xgbe_ring *ring = channel->rx_ring;
50646 struct xgbe_ring_data *rdata;
50647 struct xgbe_packet_data *packet;
50648 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
50649 index 59e090e..90bc0b4 100644
50650 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
50651 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ethtool.c
50652 @@ -211,7 +211,7 @@ static void xgbe_get_ethtool_stats(struct net_device *netdev,
50653
50654 DBGPR("-->%s\n", __func__);
50655
50656 - pdata->hw_if.read_mmc_stats(pdata);
50657 + pdata->hw_if->read_mmc_stats(pdata);
50658 for (i = 0; i < XGBE_STATS_COUNT; i++) {
50659 stat = (u8 *)pdata + xgbe_gstring_stats[i].stat_offset;
50660 *data++ = *(u64 *)stat;
50661 @@ -284,7 +284,7 @@ static int xgbe_set_pauseparam(struct net_device *netdev,
50662 pdata->phy.advertising ^= ADVERTISED_Asym_Pause;
50663
50664 if (netif_running(netdev))
50665 - ret = pdata->phy_if.phy_config_aneg(pdata);
50666 + ret = pdata->phy_if->phy_config_aneg(pdata);
50667
50668 DBGPR("<--xgbe_set_pauseparam\n");
50669
50670 @@ -364,7 +364,7 @@ static int xgbe_set_settings(struct net_device *netdev,
50671 pdata->phy.advertising &= ~ADVERTISED_Autoneg;
50672
50673 if (netif_running(netdev))
50674 - ret = pdata->phy_if.phy_config_aneg(pdata);
50675 + ret = pdata->phy_if->phy_config_aneg(pdata);
50676
50677 DBGPR("<--xgbe_set_settings\n");
50678
50679 @@ -411,7 +411,7 @@ static int xgbe_set_coalesce(struct net_device *netdev,
50680 struct ethtool_coalesce *ec)
50681 {
50682 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50683 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50684 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50685 unsigned int rx_frames, rx_riwt, rx_usecs;
50686 unsigned int tx_frames;
50687
50688 @@ -536,7 +536,7 @@ static int xgbe_set_rxfh(struct net_device *netdev, const u32 *indir,
50689 const u8 *key, const u8 hfunc)
50690 {
50691 struct xgbe_prv_data *pdata = netdev_priv(netdev);
50692 - struct xgbe_hw_if *hw_if = &pdata->hw_if;
50693 + struct xgbe_hw_if *hw_if = pdata->hw_if;
50694 unsigned int ret;
50695
50696 if (hfunc != ETH_RSS_HASH_NO_CHANGE && hfunc != ETH_RSS_HASH_TOP)
50697 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-main.c b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
50698 index e83bd76..f2d5d56 100644
50699 --- a/drivers/net/ethernet/amd/xgbe/xgbe-main.c
50700 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-main.c
50701 @@ -202,13 +202,6 @@ static void xgbe_default_config(struct xgbe_prv_data *pdata)
50702 DBGPR("<--xgbe_default_config\n");
50703 }
50704
50705 -static void xgbe_init_all_fptrs(struct xgbe_prv_data *pdata)
50706 -{
50707 - xgbe_init_function_ptrs_dev(&pdata->hw_if);
50708 - xgbe_init_function_ptrs_phy(&pdata->phy_if);
50709 - xgbe_init_function_ptrs_desc(&pdata->desc_if);
50710 -}
50711 -
50712 #ifdef CONFIG_ACPI
50713 static int xgbe_acpi_support(struct xgbe_prv_data *pdata)
50714 {
50715 @@ -641,10 +634,12 @@ static int xgbe_probe(struct platform_device *pdev)
50716 memcpy(netdev->dev_addr, pdata->mac_addr, netdev->addr_len);
50717
50718 /* Set all the function pointers */
50719 - xgbe_init_all_fptrs(pdata);
50720 + pdata->hw_if = &default_xgbe_hw_if;
50721 + pdata->phy_if = &default_xgbe_phy_if;
50722 + pdata->desc_if = &default_xgbe_desc_if;
50723
50724 /* Issue software reset to device */
50725 - pdata->hw_if.exit(pdata);
50726 + pdata->hw_if->exit(pdata);
50727
50728 /* Populate the hardware features */
50729 xgbe_get_all_hw_features(pdata);
50730 @@ -698,7 +693,7 @@ static int xgbe_probe(struct platform_device *pdev)
50731 XGMAC_SET_BITS(pdata->rss_options, MAC_RSSCR, UDP4TE, 1);
50732
50733 /* Call MDIO/PHY initialization routine */
50734 - pdata->phy_if.phy_init(pdata);
50735 + pdata->phy_if->phy_init(pdata);
50736
50737 /* Set device operations */
50738 netdev->netdev_ops = xgbe_get_netdev_ops();
50739 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
50740 index 9088c3a..2ffe7c4 100644
50741 --- a/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
50742 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-mdio.c
50743 @@ -202,7 +202,7 @@ static void xgbe_xgmii_mode(struct xgbe_prv_data *pdata)
50744 xgbe_an_enable_kr_training(pdata);
50745
50746 /* Set MAC to 10G speed */
50747 - pdata->hw_if.set_xgmii_speed(pdata);
50748 + pdata->hw_if->set_xgmii_speed(pdata);
50749
50750 /* Set PCS to KR/10G speed */
50751 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
50752 @@ -250,7 +250,7 @@ static void xgbe_gmii_2500_mode(struct xgbe_prv_data *pdata)
50753 xgbe_an_disable_kr_training(pdata);
50754
50755 /* Set MAC to 2.5G speed */
50756 - pdata->hw_if.set_gmii_2500_speed(pdata);
50757 + pdata->hw_if->set_gmii_2500_speed(pdata);
50758
50759 /* Set PCS to KX/1G speed */
50760 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
50761 @@ -298,7 +298,7 @@ static void xgbe_gmii_mode(struct xgbe_prv_data *pdata)
50762 xgbe_an_disable_kr_training(pdata);
50763
50764 /* Set MAC to 1G speed */
50765 - pdata->hw_if.set_gmii_speed(pdata);
50766 + pdata->hw_if->set_gmii_speed(pdata);
50767
50768 /* Set PCS to KX/1G speed */
50769 reg = XMDIO_READ(pdata, MDIO_MMD_PCS, MDIO_CTRL2);
50770 @@ -872,13 +872,13 @@ static void xgbe_phy_adjust_link(struct xgbe_prv_data *pdata)
50771
50772 if (pdata->tx_pause != pdata->phy.tx_pause) {
50773 new_state = 1;
50774 - pdata->hw_if.config_tx_flow_control(pdata);
50775 + pdata->hw_if->config_tx_flow_control(pdata);
50776 pdata->tx_pause = pdata->phy.tx_pause;
50777 }
50778
50779 if (pdata->rx_pause != pdata->phy.rx_pause) {
50780 new_state = 1;
50781 - pdata->hw_if.config_rx_flow_control(pdata);
50782 + pdata->hw_if->config_rx_flow_control(pdata);
50783 pdata->rx_pause = pdata->phy.rx_pause;
50784 }
50785
50786 @@ -1351,14 +1351,13 @@ static void xgbe_phy_init(struct xgbe_prv_data *pdata)
50787 xgbe_dump_phy_registers(pdata);
50788 }
50789
50790 -void xgbe_init_function_ptrs_phy(struct xgbe_phy_if *phy_if)
50791 -{
50792 - phy_if->phy_init = xgbe_phy_init;
50793 +const struct xgbe_phy_if default_xgbe_phy_if = {
50794 + .phy_init = xgbe_phy_init,
50795
50796 - phy_if->phy_reset = xgbe_phy_reset;
50797 - phy_if->phy_start = xgbe_phy_start;
50798 - phy_if->phy_stop = xgbe_phy_stop;
50799 + .phy_reset = xgbe_phy_reset,
50800 + .phy_start = xgbe_phy_start,
50801 + .phy_stop = xgbe_phy_stop,
50802
50803 - phy_if->phy_status = xgbe_phy_status;
50804 - phy_if->phy_config_aneg = xgbe_phy_config_aneg;
50805 -}
50806 + .phy_status = xgbe_phy_status,
50807 + .phy_config_aneg = xgbe_phy_config_aneg,
50808 +};
50809 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c b/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
50810 index b03e4f5..78e4cc4 100644
50811 --- a/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
50812 +++ b/drivers/net/ethernet/amd/xgbe/xgbe-ptp.c
50813 @@ -129,7 +129,7 @@ static cycle_t xgbe_cc_read(const struct cyclecounter *cc)
50814 tstamp_cc);
50815 u64 nsec;
50816
50817 - nsec = pdata->hw_if.get_tstamp_time(pdata);
50818 + nsec = pdata->hw_if->get_tstamp_time(pdata);
50819
50820 return nsec;
50821 }
50822 @@ -158,7 +158,7 @@ static int xgbe_adjfreq(struct ptp_clock_info *info, s32 delta)
50823
50824 spin_lock_irqsave(&pdata->tstamp_lock, flags);
50825
50826 - pdata->hw_if.update_tstamp_addend(pdata, addend);
50827 + pdata->hw_if->update_tstamp_addend(pdata, addend);
50828
50829 spin_unlock_irqrestore(&pdata->tstamp_lock, flags);
50830
50831 diff --git a/drivers/net/ethernet/amd/xgbe/xgbe.h b/drivers/net/ethernet/amd/xgbe/xgbe.h
50832 index 717ce21..aacd1f3 100644
50833 --- a/drivers/net/ethernet/amd/xgbe/xgbe.h
50834 +++ b/drivers/net/ethernet/amd/xgbe/xgbe.h
50835 @@ -801,9 +801,9 @@ struct xgbe_prv_data {
50836 int dev_irq;
50837 unsigned int per_channel_irq;
50838
50839 - struct xgbe_hw_if hw_if;
50840 - struct xgbe_phy_if phy_if;
50841 - struct xgbe_desc_if desc_if;
50842 + struct xgbe_hw_if *hw_if;
50843 + struct xgbe_phy_if *phy_if;
50844 + struct xgbe_desc_if *desc_if;
50845
50846 /* AXI DMA settings */
50847 unsigned int coherent;
50848 @@ -964,6 +964,10 @@ struct xgbe_prv_data {
50849 #endif
50850 };
50851
50852 +extern const struct xgbe_hw_if default_xgbe_hw_if;
50853 +extern const struct xgbe_phy_if default_xgbe_phy_if;
50854 +extern const struct xgbe_desc_if default_xgbe_desc_if;
50855 +
50856 /* Function prototypes*/
50857
50858 void xgbe_init_function_ptrs_dev(struct xgbe_hw_if *);
50859 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
50860 index 03b7404..01ff3b3 100644
50861 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
50862 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.h
50863 @@ -1082,7 +1082,7 @@ static inline u8 bnx2x_get_path_func_num(struct bnx2x *bp)
50864 static inline void bnx2x_init_bp_objs(struct bnx2x *bp)
50865 {
50866 /* RX_MODE controlling object */
50867 - bnx2x_init_rx_mode_obj(bp, &bp->rx_mode_obj);
50868 + bnx2x_init_rx_mode_obj(bp);
50869
50870 /* multicast configuration controlling object */
50871 bnx2x_init_mcast_obj(bp, &bp->mcast_obj, bp->fp->cl_id, bp->fp->cid,
50872 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
50873 index 4ad415a..8e0a040 100644
50874 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
50875 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.c
50876 @@ -2329,15 +2329,14 @@ int bnx2x_config_rx_mode(struct bnx2x *bp,
50877 return rc;
50878 }
50879
50880 -void bnx2x_init_rx_mode_obj(struct bnx2x *bp,
50881 - struct bnx2x_rx_mode_obj *o)
50882 +void bnx2x_init_rx_mode_obj(struct bnx2x *bp)
50883 {
50884 if (CHIP_IS_E1x(bp)) {
50885 - o->wait_comp = bnx2x_empty_rx_mode_wait;
50886 - o->config_rx_mode = bnx2x_set_rx_mode_e1x;
50887 + bp->rx_mode_obj.wait_comp = bnx2x_empty_rx_mode_wait;
50888 + bp->rx_mode_obj.config_rx_mode = bnx2x_set_rx_mode_e1x;
50889 } else {
50890 - o->wait_comp = bnx2x_wait_rx_mode_comp_e2;
50891 - o->config_rx_mode = bnx2x_set_rx_mode_e2;
50892 + bp->rx_mode_obj.wait_comp = bnx2x_wait_rx_mode_comp_e2;
50893 + bp->rx_mode_obj.config_rx_mode = bnx2x_set_rx_mode_e2;
50894 }
50895 }
50896
50897 diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
50898 index 86baecb..ff3bb46 100644
50899 --- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
50900 +++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_sp.h
50901 @@ -1411,8 +1411,7 @@ int bnx2x_vlan_mac_move(struct bnx2x *bp,
50902
50903 /********************* RX MODE ****************/
50904
50905 -void bnx2x_init_rx_mode_obj(struct bnx2x *bp,
50906 - struct bnx2x_rx_mode_obj *o);
50907 +void bnx2x_init_rx_mode_obj(struct bnx2x *bp);
50908
50909 /**
50910 * bnx2x_config_rx_mode - Send and RX_MODE ramrod according to the provided parameters.
50911 diff --git a/drivers/net/ethernet/broadcom/tg3.h b/drivers/net/ethernet/broadcom/tg3.h
50912 index 31c9f82..e65e986 100644
50913 --- a/drivers/net/ethernet/broadcom/tg3.h
50914 +++ b/drivers/net/ethernet/broadcom/tg3.h
50915 @@ -150,6 +150,7 @@
50916 #define CHIPREV_ID_5750_A0 0x4000
50917 #define CHIPREV_ID_5750_A1 0x4001
50918 #define CHIPREV_ID_5750_A3 0x4003
50919 +#define CHIPREV_ID_5750_C1 0x4201
50920 #define CHIPREV_ID_5750_C2 0x4202
50921 #define CHIPREV_ID_5752_A0_HW 0x5000
50922 #define CHIPREV_ID_5752_A0 0x6000
50923 diff --git a/drivers/net/ethernet/brocade/bna/bna_enet.c b/drivers/net/ethernet/brocade/bna/bna_enet.c
50924 index 4e5c387..bba8173 100644
50925 --- a/drivers/net/ethernet/brocade/bna/bna_enet.c
50926 +++ b/drivers/net/ethernet/brocade/bna/bna_enet.c
50927 @@ -1676,10 +1676,10 @@ bna_cb_ioceth_reset(void *arg)
50928 }
50929
50930 static struct bfa_ioc_cbfn bna_ioceth_cbfn = {
50931 - bna_cb_ioceth_enable,
50932 - bna_cb_ioceth_disable,
50933 - bna_cb_ioceth_hbfail,
50934 - bna_cb_ioceth_reset
50935 + .enable_cbfn = bna_cb_ioceth_enable,
50936 + .disable_cbfn = bna_cb_ioceth_disable,
50937 + .hbfail_cbfn = bna_cb_ioceth_hbfail,
50938 + .reset_cbfn = bna_cb_ioceth_reset
50939 };
50940
50941 static void bna_attr_init(struct bna_ioceth *ioceth)
50942 diff --git a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
50943 index 29f3308..b594c38 100644
50944 --- a/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
50945 +++ b/drivers/net/ethernet/cavium/liquidio/lio_ethtool.c
50946 @@ -265,9 +265,9 @@ static void octnet_mdio_resp_callback(struct octeon_device *oct,
50947 if (status) {
50948 dev_err(&oct->pci_dev->dev, "MIDO instruction failed. Status: %llx\n",
50949 CVM_CAST64(status));
50950 - ACCESS_ONCE(mdio_cmd_ctx->cond) = -1;
50951 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = -1;
50952 } else {
50953 - ACCESS_ONCE(mdio_cmd_ctx->cond) = 1;
50954 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = 1;
50955 }
50956 wake_up_interruptible(&mdio_cmd_ctx->wc);
50957 }
50958 @@ -298,7 +298,7 @@ octnet_mdio45_access(struct lio *lio, int op, int loc, int *value)
50959 mdio_cmd_rsp = (struct oct_mdio_cmd_resp *)sc->virtrptr;
50960 mdio_cmd = (struct oct_mdio_cmd *)sc->virtdptr;
50961
50962 - ACCESS_ONCE(mdio_cmd_ctx->cond) = 0;
50963 + ACCESS_ONCE_RW(mdio_cmd_ctx->cond) = 0;
50964 mdio_cmd_ctx->octeon_id = lio_get_device_id(oct_dev);
50965 mdio_cmd->op = op;
50966 mdio_cmd->mdio_addr = loc;
50967 diff --git a/drivers/net/ethernet/cavium/liquidio/lio_main.c b/drivers/net/ethernet/cavium/liquidio/lio_main.c
50968 index 0660dee..e07895e 100644
50969 --- a/drivers/net/ethernet/cavium/liquidio/lio_main.c
50970 +++ b/drivers/net/ethernet/cavium/liquidio/lio_main.c
50971 @@ -1727,7 +1727,7 @@ static void if_cfg_callback(struct octeon_device *oct,
50972 if (resp->status)
50973 dev_err(&oct->pci_dev->dev, "nic if cfg instruction failed. Status: %llx\n",
50974 CVM_CAST64(resp->status));
50975 - ACCESS_ONCE(ctx->cond) = 1;
50976 + ACCESS_ONCE_RW(ctx->cond) = 1;
50977
50978 /* This barrier is required to be sure that the response has been
50979 * written fully before waking up the handler
50980 @@ -3177,7 +3177,7 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
50981 dev_dbg(&octeon_dev->pci_dev->dev,
50982 "requesting config for interface %d, iqs %d, oqs %d\n",
50983 i, num_iqueues, num_oqueues);
50984 - ACCESS_ONCE(ctx->cond) = 0;
50985 + ACCESS_ONCE_RW(ctx->cond) = 0;
50986 ctx->octeon_id = lio_get_device_id(octeon_dev);
50987 init_waitqueue_head(&ctx->wc);
50988
50989 @@ -3240,8 +3240,11 @@ static int setup_nic_devices(struct octeon_device *octeon_dev)
50990 props = &octeon_dev->props[i];
50991 props->netdev = netdev;
50992
50993 - if (num_iqueues > 1)
50994 - lionetdevops.ndo_select_queue = select_q;
50995 + if (num_iqueues > 1) {
50996 + pax_open_kernel();
50997 + *(void **)&lionetdevops.ndo_select_queue = select_q;
50998 + pax_close_kernel();
50999 + }
51000
51001 /* Associate the routines that will handle different
51002 * netdev tasks.
51003 diff --git a/drivers/net/ethernet/chelsio/cxgb3/l2t.h b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
51004 index 8cffcdf..aadf043 100644
51005 --- a/drivers/net/ethernet/chelsio/cxgb3/l2t.h
51006 +++ b/drivers/net/ethernet/chelsio/cxgb3/l2t.h
51007 @@ -87,7 +87,7 @@ typedef void (*arp_failure_handler_func)(struct t3cdev * dev,
51008 */
51009 struct l2t_skb_cb {
51010 arp_failure_handler_func arp_failure_handler;
51011 -};
51012 +} __no_const;
51013
51014 #define L2T_SKB_CB(skb) ((struct l2t_skb_cb *)(skb)->cb)
51015
51016 diff --git a/drivers/net/ethernet/dec/tulip/de4x5.c b/drivers/net/ethernet/dec/tulip/de4x5.c
51017 index 8966f31..e15a101 100644
51018 --- a/drivers/net/ethernet/dec/tulip/de4x5.c
51019 +++ b/drivers/net/ethernet/dec/tulip/de4x5.c
51020 @@ -5373,7 +5373,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
51021 for (i=0; i<ETH_ALEN; i++) {
51022 tmp.addr[i] = dev->dev_addr[i];
51023 }
51024 - if (copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
51025 + if (ioc->len > sizeof tmp.addr || copy_to_user(ioc->data, tmp.addr, ioc->len)) return -EFAULT;
51026 break;
51027
51028 case DE4X5_SET_HWADDR: /* Set the hardware address */
51029 @@ -5413,7 +5413,7 @@ de4x5_ioctl(struct net_device *dev, struct ifreq *rq, int cmd)
51030 spin_lock_irqsave(&lp->lock, flags);
51031 memcpy(&statbuf, &lp->pktStats, ioc->len);
51032 spin_unlock_irqrestore(&lp->lock, flags);
51033 - if (copy_to_user(ioc->data, &statbuf, ioc->len))
51034 + if (ioc->len > sizeof statbuf || copy_to_user(ioc->data, &statbuf, ioc->len))
51035 return -EFAULT;
51036 break;
51037 }
51038 diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
51039 index 6ca693b..fa18c3f 100644
51040 --- a/drivers/net/ethernet/emulex/benet/be_main.c
51041 +++ b/drivers/net/ethernet/emulex/benet/be_main.c
51042 @@ -551,7 +551,7 @@ static void accumulate_16bit_val(u32 *acc, u16 val)
51043
51044 if (wrapped)
51045 newacc += 65536;
51046 - ACCESS_ONCE(*acc) = newacc;
51047 + ACCESS_ONCE_RW(*acc) = newacc;
51048 }
51049
51050 static void populate_erx_stats(struct be_adapter *adapter,
51051 diff --git a/drivers/net/ethernet/faraday/ftgmac100.c b/drivers/net/ethernet/faraday/ftgmac100.c
51052 index 6d0c5d5..55be363 100644
51053 --- a/drivers/net/ethernet/faraday/ftgmac100.c
51054 +++ b/drivers/net/ethernet/faraday/ftgmac100.c
51055 @@ -30,6 +30,8 @@
51056 #include <linux/netdevice.h>
51057 #include <linux/phy.h>
51058 #include <linux/platform_device.h>
51059 +#include <linux/interrupt.h>
51060 +#include <linux/irqreturn.h>
51061 #include <net/ip.h>
51062
51063 #include "ftgmac100.h"
51064 diff --git a/drivers/net/ethernet/faraday/ftmac100.c b/drivers/net/ethernet/faraday/ftmac100.c
51065 index dce5f7b..2433466 100644
51066 --- a/drivers/net/ethernet/faraday/ftmac100.c
51067 +++ b/drivers/net/ethernet/faraday/ftmac100.c
51068 @@ -31,6 +31,8 @@
51069 #include <linux/module.h>
51070 #include <linux/netdevice.h>
51071 #include <linux/platform_device.h>
51072 +#include <linux/interrupt.h>
51073 +#include <linux/irqreturn.h>
51074
51075 #include "ftmac100.h"
51076
51077 diff --git a/drivers/net/ethernet/intel/i40e/i40e_ptp.c b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
51078 index a92b772..250fe69 100644
51079 --- a/drivers/net/ethernet/intel/i40e/i40e_ptp.c
51080 +++ b/drivers/net/ethernet/intel/i40e/i40e_ptp.c
51081 @@ -419,7 +419,7 @@ void i40e_ptp_set_increment(struct i40e_pf *pf)
51082 wr32(hw, I40E_PRTTSYN_INC_H, incval >> 32);
51083
51084 /* Update the base adjustement value. */
51085 - ACCESS_ONCE(pf->ptp_base_adj) = incval;
51086 + ACCESS_ONCE_RW(pf->ptp_base_adj) = incval;
51087 smp_mb(); /* Force the above update. */
51088 }
51089
51090 diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
51091 index e5ba040..d47531c 100644
51092 --- a/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
51093 +++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_ptp.c
51094 @@ -782,7 +782,7 @@ void ixgbe_ptp_start_cyclecounter(struct ixgbe_adapter *adapter)
51095 }
51096
51097 /* update the base incval used to calculate frequency adjustment */
51098 - ACCESS_ONCE(adapter->base_incval) = incval;
51099 + ACCESS_ONCE_RW(adapter->base_incval) = incval;
51100 smp_mb();
51101
51102 /* need lock to prevent incorrect read while modifying cyclecounter */
51103 diff --git a/drivers/net/ethernet/mellanox/mlx4/cmd.c b/drivers/net/ethernet/mellanox/mlx4/cmd.c
51104 index 0a32020..2177e56 100644
51105 --- a/drivers/net/ethernet/mellanox/mlx4/cmd.c
51106 +++ b/drivers/net/ethernet/mellanox/mlx4/cmd.c
51107 @@ -2398,7 +2398,7 @@ int mlx4_multi_func_init(struct mlx4_dev *dev)
51108 }
51109 }
51110
51111 - memset(&priv->mfunc.master.cmd_eqe, 0, dev->caps.eqe_size);
51112 + memset(&priv->mfunc.master.cmd_eqe, 0, sizeof(struct mlx4_eqe));
51113 priv->mfunc.master.cmd_eqe.type = MLX4_EVENT_TYPE_CMD;
51114 INIT_WORK(&priv->mfunc.master.comm_work,
51115 mlx4_master_comm_channel);
51116 diff --git a/drivers/net/ethernet/mellanox/mlx4/en_tx.c b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
51117 index c10d98f..72914c6 100644
51118 --- a/drivers/net/ethernet/mellanox/mlx4/en_tx.c
51119 +++ b/drivers/net/ethernet/mellanox/mlx4/en_tx.c
51120 @@ -475,8 +475,8 @@ static bool mlx4_en_process_tx_cq(struct net_device *dev,
51121 wmb();
51122
51123 /* we want to dirty this cache line once */
51124 - ACCESS_ONCE(ring->last_nr_txbb) = last_nr_txbb;
51125 - ACCESS_ONCE(ring->cons) = ring_cons + txbbs_skipped;
51126 + ACCESS_ONCE_RW(ring->last_nr_txbb) = last_nr_txbb;
51127 + ACCESS_ONCE_RW(ring->cons) = ring_cons + txbbs_skipped;
51128
51129 netdev_tx_completed_queue(ring->tx_queue, packets, bytes);
51130
51131 diff --git a/drivers/net/ethernet/mellanox/mlx4/eq.c b/drivers/net/ethernet/mellanox/mlx4/eq.c
51132 index 8e81e53..ad8f95d 100644
51133 --- a/drivers/net/ethernet/mellanox/mlx4/eq.c
51134 +++ b/drivers/net/ethernet/mellanox/mlx4/eq.c
51135 @@ -196,7 +196,7 @@ static void slave_event(struct mlx4_dev *dev, u8 slave, struct mlx4_eqe *eqe)
51136 return;
51137 }
51138
51139 - memcpy(s_eqe, eqe, dev->caps.eqe_size - 1);
51140 + memcpy(s_eqe, eqe, sizeof(struct mlx4_eqe) - 1);
51141 s_eqe->slave_id = slave;
51142 /* ensure all information is written before setting the ownersip bit */
51143 dma_wmb();
51144 diff --git a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
51145 index 40206da..9d94643 100644
51146 --- a/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
51147 +++ b/drivers/net/ethernet/mellanox/mlx5/core/en_main.c
51148 @@ -1734,7 +1734,9 @@ static void mlx5e_build_netdev(struct net_device *netdev)
51149 SET_NETDEV_DEV(netdev, &mdev->pdev->dev);
51150
51151 if (priv->num_tc > 1) {
51152 - mlx5e_netdev_ops.ndo_select_queue = mlx5e_select_queue;
51153 + pax_open_kernel();
51154 + *(void **)&mlx5e_netdev_ops.ndo_select_queue = mlx5e_select_queue;
51155 + pax_close_kernel();
51156 }
51157
51158 netdev->netdev_ops = &mlx5e_netdev_ops;
51159 diff --git a/drivers/net/ethernet/neterion/vxge/vxge-config.c b/drivers/net/ethernet/neterion/vxge/vxge-config.c
51160 index 6223930..975033d 100644
51161 --- a/drivers/net/ethernet/neterion/vxge/vxge-config.c
51162 +++ b/drivers/net/ethernet/neterion/vxge/vxge-config.c
51163 @@ -3457,7 +3457,10 @@ __vxge_hw_fifo_create(struct __vxge_hw_vpath_handle *vp,
51164 struct __vxge_hw_fifo *fifo;
51165 struct vxge_hw_fifo_config *config;
51166 u32 txdl_size, txdl_per_memblock;
51167 - struct vxge_hw_mempool_cbs fifo_mp_callback;
51168 + static struct vxge_hw_mempool_cbs fifo_mp_callback = {
51169 + .item_func_alloc = __vxge_hw_fifo_mempool_item_alloc,
51170 + };
51171 +
51172 struct __vxge_hw_virtualpath *vpath;
51173
51174 if ((vp == NULL) || (attr == NULL)) {
51175 @@ -3540,8 +3543,6 @@ __vxge_hw_fifo_create(struct __vxge_hw_vpath_handle *vp,
51176 goto exit;
51177 }
51178
51179 - fifo_mp_callback.item_func_alloc = __vxge_hw_fifo_mempool_item_alloc;
51180 -
51181 fifo->mempool =
51182 __vxge_hw_mempool_create(vpath->hldev,
51183 fifo->config->memblock_size,
51184 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
51185 index 753ea8b..674c39a 100644
51186 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
51187 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_init.c
51188 @@ -2324,7 +2324,9 @@ int qlcnic_83xx_configure_opmode(struct qlcnic_adapter *adapter)
51189 max_tx_rings = QLCNIC_MAX_VNIC_TX_RINGS;
51190 } else if (ret == QLC_83XX_DEFAULT_OPMODE) {
51191 ahw->nic_mode = QLCNIC_DEFAULT_MODE;
51192 - adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
51193 + pax_open_kernel();
51194 + *(void **)&adapter->nic_ops->init_driver = qlcnic_83xx_init_default_driver;
51195 + pax_close_kernel();
51196 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
51197 max_sds_rings = QLCNIC_MAX_SDS_RINGS;
51198 max_tx_rings = QLCNIC_MAX_TX_RINGS;
51199 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
51200 index be7d7a6..a8983f8 100644
51201 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
51202 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_83xx_vnic.c
51203 @@ -207,17 +207,23 @@ int qlcnic_83xx_config_vnic_opmode(struct qlcnic_adapter *adapter)
51204 case QLCNIC_NON_PRIV_FUNC:
51205 ahw->op_mode = QLCNIC_NON_PRIV_FUNC;
51206 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
51207 - nic_ops->init_driver = qlcnic_83xx_init_non_privileged_vnic;
51208 + pax_open_kernel();
51209 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_non_privileged_vnic;
51210 + pax_close_kernel();
51211 break;
51212 case QLCNIC_PRIV_FUNC:
51213 ahw->op_mode = QLCNIC_PRIV_FUNC;
51214 ahw->idc.state_entry = qlcnic_83xx_idc_vnic_pf_entry;
51215 - nic_ops->init_driver = qlcnic_83xx_init_privileged_vnic;
51216 + pax_open_kernel();
51217 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_privileged_vnic;
51218 + pax_close_kernel();
51219 break;
51220 case QLCNIC_MGMT_FUNC:
51221 ahw->op_mode = QLCNIC_MGMT_FUNC;
51222 ahw->idc.state_entry = qlcnic_83xx_idc_ready_state_entry;
51223 - nic_ops->init_driver = qlcnic_83xx_init_mgmt_vnic;
51224 + pax_open_kernel();
51225 + *(void **)&nic_ops->init_driver = qlcnic_83xx_init_mgmt_vnic;
51226 + pax_close_kernel();
51227 break;
51228 default:
51229 dev_err(&adapter->pdev->dev, "Invalid Virtual NIC opmode\n");
51230 diff --git a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
51231 index 332bb8a..e6adcd1 100644
51232 --- a/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
51233 +++ b/drivers/net/ethernet/qlogic/qlcnic/qlcnic_minidump.c
51234 @@ -1285,7 +1285,7 @@ flash_temp:
51235 int qlcnic_dump_fw(struct qlcnic_adapter *adapter)
51236 {
51237 struct qlcnic_fw_dump *fw_dump = &adapter->ahw->fw_dump;
51238 - static const struct qlcnic_dump_operations *fw_dump_ops;
51239 + const struct qlcnic_dump_operations *fw_dump_ops;
51240 struct qlcnic_83xx_dump_template_hdr *hdr_83xx;
51241 u32 entry_offset, dump, no_entries, buf_offset = 0;
51242 int i, k, ops_cnt, ops_index, dump_size = 0;
51243 diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
51244 index f790f61..cb663ef8 100644
51245 --- a/drivers/net/ethernet/realtek/r8169.c
51246 +++ b/drivers/net/ethernet/realtek/r8169.c
51247 @@ -788,22 +788,22 @@ struct rtl8169_private {
51248 struct mdio_ops {
51249 void (*write)(struct rtl8169_private *, int, int);
51250 int (*read)(struct rtl8169_private *, int);
51251 - } mdio_ops;
51252 + } __no_const mdio_ops;
51253
51254 struct pll_power_ops {
51255 void (*down)(struct rtl8169_private *);
51256 void (*up)(struct rtl8169_private *);
51257 - } pll_power_ops;
51258 + } __no_const pll_power_ops;
51259
51260 struct jumbo_ops {
51261 void (*enable)(struct rtl8169_private *);
51262 void (*disable)(struct rtl8169_private *);
51263 - } jumbo_ops;
51264 + } __no_const jumbo_ops;
51265
51266 struct csi_ops {
51267 void (*write)(struct rtl8169_private *, int, int);
51268 u32 (*read)(struct rtl8169_private *, int);
51269 - } csi_ops;
51270 + } __no_const csi_ops;
51271
51272 int (*set_speed)(struct net_device *, u8 aneg, u16 sp, u8 dpx, u32 adv);
51273 int (*get_settings)(struct net_device *, struct ethtool_cmd *);
51274 @@ -7361,6 +7361,9 @@ process_pkt:
51275
51276 rtl8169_rx_vlan_tag(desc, skb);
51277
51278 + if (skb->pkt_type == PACKET_MULTICAST)
51279 + dev->stats.multicast++;
51280 +
51281 napi_gro_receive(&tp->napi, skb);
51282
51283 u64_stats_update_begin(&tp->rx_stats.syncp);
51284 diff --git a/drivers/net/ethernet/sfc/ptp.c b/drivers/net/ethernet/sfc/ptp.c
51285 index ad62615..a4c124d 100644
51286 --- a/drivers/net/ethernet/sfc/ptp.c
51287 +++ b/drivers/net/ethernet/sfc/ptp.c
51288 @@ -832,7 +832,7 @@ static int efx_ptp_synchronize(struct efx_nic *efx, unsigned int num_readings)
51289 ptp->start.dma_addr);
51290
51291 /* Clear flag that signals MC ready */
51292 - ACCESS_ONCE(*start) = 0;
51293 + ACCESS_ONCE_RW(*start) = 0;
51294 rc = efx_mcdi_rpc_start(efx, MC_CMD_PTP, synch_buf,
51295 MC_CMD_PTP_IN_SYNCHRONIZE_LEN);
51296 EFX_BUG_ON_PARANOID(rc);
51297 diff --git a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
51298 index 3f20bb1..59add41 100644
51299 --- a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
51300 +++ b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
51301 @@ -140,8 +140,8 @@ void dwmac_mmc_ctrl(void __iomem *ioaddr, unsigned int mode)
51302
51303 writel(value, ioaddr + MMC_CNTRL);
51304
51305 - pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n",
51306 - MMC_CNTRL, value);
51307 +// pr_debug("stmmac: MMC ctrl register (offset 0x%x): 0x%08x\n",
51308 +// MMC_CNTRL, value);
51309 }
51310
51311 /* To mask all all interrupts.*/
51312 diff --git a/drivers/net/ethernet/via/via-rhine.c b/drivers/net/ethernet/via/via-rhine.c
51313 index a832637..092da0a 100644
51314 --- a/drivers/net/ethernet/via/via-rhine.c
51315 +++ b/drivers/net/ethernet/via/via-rhine.c
51316 @@ -2599,7 +2599,7 @@ static struct platform_driver rhine_driver_platform = {
51317 }
51318 };
51319
51320 -static struct dmi_system_id rhine_dmi_table[] __initdata = {
51321 +static const struct dmi_system_id rhine_dmi_table[] __initconst = {
51322 {
51323 .ident = "EPIA-M",
51324 .matches = {
51325 diff --git a/drivers/net/hyperv/hyperv_net.h b/drivers/net/hyperv/hyperv_net.h
51326 index dd45440..c5f3cae 100644
51327 --- a/drivers/net/hyperv/hyperv_net.h
51328 +++ b/drivers/net/hyperv/hyperv_net.h
51329 @@ -177,7 +177,7 @@ struct rndis_device {
51330 enum rndis_device_state state;
51331 bool link_state;
51332 bool link_change;
51333 - atomic_t new_req_id;
51334 + atomic_unchecked_t new_req_id;
51335
51336 spinlock_t request_lock;
51337 struct list_head req_list;
51338 diff --git a/drivers/net/hyperv/rndis_filter.c b/drivers/net/hyperv/rndis_filter.c
51339 index 236aeb7..fd695e2 100644
51340 --- a/drivers/net/hyperv/rndis_filter.c
51341 +++ b/drivers/net/hyperv/rndis_filter.c
51342 @@ -101,7 +101,7 @@ static struct rndis_request *get_rndis_request(struct rndis_device *dev,
51343 * template
51344 */
51345 set = &rndis_msg->msg.set_req;
51346 - set->req_id = atomic_inc_return(&dev->new_req_id);
51347 + set->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
51348
51349 /* Add to the request list */
51350 spin_lock_irqsave(&dev->request_lock, flags);
51351 @@ -924,7 +924,7 @@ static void rndis_filter_halt_device(struct rndis_device *dev)
51352
51353 /* Setup the rndis set */
51354 halt = &request->request_msg.msg.halt_req;
51355 - halt->req_id = atomic_inc_return(&dev->new_req_id);
51356 + halt->req_id = atomic_inc_return_unchecked(&dev->new_req_id);
51357
51358 /* Ignore return since this msg is optional. */
51359 rndis_filter_send_request(dev, request);
51360 diff --git a/drivers/net/ifb.c b/drivers/net/ifb.c
51361 index 94570aa..1a798e1 100644
51362 --- a/drivers/net/ifb.c
51363 +++ b/drivers/net/ifb.c
51364 @@ -253,7 +253,7 @@ static int ifb_validate(struct nlattr *tb[], struct nlattr *data[])
51365 return 0;
51366 }
51367
51368 -static struct rtnl_link_ops ifb_link_ops __read_mostly = {
51369 +static struct rtnl_link_ops ifb_link_ops = {
51370 .kind = "ifb",
51371 .priv_size = sizeof(struct ifb_private),
51372 .setup = ifb_setup,
51373 diff --git a/drivers/net/ipvlan/ipvlan_core.c b/drivers/net/ipvlan/ipvlan_core.c
51374 index 207f62e..af3f5e5 100644
51375 --- a/drivers/net/ipvlan/ipvlan_core.c
51376 +++ b/drivers/net/ipvlan/ipvlan_core.c
51377 @@ -466,7 +466,7 @@ static void ipvlan_multicast_enqueue(struct ipvl_port *port,
51378 schedule_work(&port->wq);
51379 } else {
51380 spin_unlock(&port->backlog.lock);
51381 - atomic_long_inc(&skb->dev->rx_dropped);
51382 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
51383 kfree_skb(skb);
51384 }
51385 }
51386 diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
51387 index 9f59f17..52cb38f 100644
51388 --- a/drivers/net/macvlan.c
51389 +++ b/drivers/net/macvlan.c
51390 @@ -335,7 +335,7 @@ static void macvlan_broadcast_enqueue(struct macvlan_port *port,
51391 free_nskb:
51392 kfree_skb(nskb);
51393 err:
51394 - atomic_long_inc(&skb->dev->rx_dropped);
51395 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
51396 }
51397
51398 static void macvlan_flush_sources(struct macvlan_port *port,
51399 @@ -1480,13 +1480,15 @@ static const struct nla_policy macvlan_policy[IFLA_MACVLAN_MAX + 1] = {
51400 int macvlan_link_register(struct rtnl_link_ops *ops)
51401 {
51402 /* common fields */
51403 - ops->priv_size = sizeof(struct macvlan_dev);
51404 - ops->validate = macvlan_validate;
51405 - ops->maxtype = IFLA_MACVLAN_MAX;
51406 - ops->policy = macvlan_policy;
51407 - ops->changelink = macvlan_changelink;
51408 - ops->get_size = macvlan_get_size;
51409 - ops->fill_info = macvlan_fill_info;
51410 + pax_open_kernel();
51411 + *(size_t *)&ops->priv_size = sizeof(struct macvlan_dev);
51412 + *(void **)&ops->validate = macvlan_validate;
51413 + *(int *)&ops->maxtype = IFLA_MACVLAN_MAX;
51414 + *(const void **)&ops->policy = macvlan_policy;
51415 + *(void **)&ops->changelink = macvlan_changelink;
51416 + *(void **)&ops->get_size = macvlan_get_size;
51417 + *(void **)&ops->fill_info = macvlan_fill_info;
51418 + pax_close_kernel();
51419
51420 return rtnl_link_register(ops);
51421 };
51422 @@ -1572,7 +1574,7 @@ static int macvlan_device_event(struct notifier_block *unused,
51423 return NOTIFY_DONE;
51424 }
51425
51426 -static struct notifier_block macvlan_notifier_block __read_mostly = {
51427 +static struct notifier_block macvlan_notifier_block = {
51428 .notifier_call = macvlan_device_event,
51429 };
51430
51431 diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
51432 index 248478c..05e8467 100644
51433 --- a/drivers/net/macvtap.c
51434 +++ b/drivers/net/macvtap.c
51435 @@ -485,7 +485,7 @@ static void macvtap_setup(struct net_device *dev)
51436 dev->tx_queue_len = TUN_READQ_SIZE;
51437 }
51438
51439 -static struct rtnl_link_ops macvtap_link_ops __read_mostly = {
51440 +static struct rtnl_link_ops macvtap_link_ops = {
51441 .kind = "macvtap",
51442 .setup = macvtap_setup,
51443 .newlink = macvtap_newlink,
51444 @@ -1090,7 +1090,7 @@ static long macvtap_ioctl(struct file *file, unsigned int cmd,
51445
51446 ret = 0;
51447 u = q->flags;
51448 - if (copy_to_user(&ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
51449 + if (copy_to_user(ifr->ifr_name, vlan->dev->name, IFNAMSIZ) ||
51450 put_user(u, &ifr->ifr_flags))
51451 ret = -EFAULT;
51452 macvtap_put_vlan(vlan);
51453 @@ -1308,7 +1308,7 @@ static int macvtap_device_event(struct notifier_block *unused,
51454 return NOTIFY_DONE;
51455 }
51456
51457 -static struct notifier_block macvtap_notifier_block __read_mostly = {
51458 +static struct notifier_block macvtap_notifier_block = {
51459 .notifier_call = macvtap_device_event,
51460 };
51461
51462 diff --git a/drivers/net/nlmon.c b/drivers/net/nlmon.c
51463 index 34924df..a747360 100644
51464 --- a/drivers/net/nlmon.c
51465 +++ b/drivers/net/nlmon.c
51466 @@ -154,7 +154,7 @@ static int nlmon_validate(struct nlattr *tb[], struct nlattr *data[])
51467 return 0;
51468 }
51469
51470 -static struct rtnl_link_ops nlmon_link_ops __read_mostly = {
51471 +static struct rtnl_link_ops nlmon_link_ops = {
51472 .kind = "nlmon",
51473 .priv_size = sizeof(struct nlmon),
51474 .setup = nlmon_setup,
51475 diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
51476 index 55f0178..6220e93 100644
51477 --- a/drivers/net/phy/phy_device.c
51478 +++ b/drivers/net/phy/phy_device.c
51479 @@ -218,7 +218,7 @@ EXPORT_SYMBOL(phy_device_create);
51480 * zero on success.
51481 *
51482 */
51483 -static int get_phy_c45_ids(struct mii_bus *bus, int addr, u32 *phy_id,
51484 +static int get_phy_c45_ids(struct mii_bus *bus, int addr, int *phy_id,
51485 struct phy_c45_device_ids *c45_ids) {
51486 int phy_reg;
51487 int i, reg_addr;
51488 @@ -296,7 +296,7 @@ retry: reg_addr = MII_ADDR_C45 | i << 16 | MDIO_DEVS2;
51489 * its return value is in turn returned.
51490 *
51491 */
51492 -static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
51493 +static int get_phy_id(struct mii_bus *bus, int addr, int *phy_id,
51494 bool is_c45, struct phy_c45_device_ids *c45_ids)
51495 {
51496 int phy_reg;
51497 @@ -334,7 +334,7 @@ static int get_phy_id(struct mii_bus *bus, int addr, u32 *phy_id,
51498 struct phy_device *get_phy_device(struct mii_bus *bus, int addr, bool is_c45)
51499 {
51500 struct phy_c45_device_ids c45_ids = {0};
51501 - u32 phy_id = 0;
51502 + int phy_id = 0;
51503 int r;
51504
51505 r = get_phy_id(bus, addr, &phy_id, is_c45, &c45_ids);
51506 diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
51507 index 487be20..f4c87bc 100644
51508 --- a/drivers/net/ppp/ppp_generic.c
51509 +++ b/drivers/net/ppp/ppp_generic.c
51510 @@ -1035,7 +1035,6 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
51511 void __user *addr = (void __user *) ifr->ifr_ifru.ifru_data;
51512 struct ppp_stats stats;
51513 struct ppp_comp_stats cstats;
51514 - char *vers;
51515
51516 switch (cmd) {
51517 case SIOCGPPPSTATS:
51518 @@ -1057,8 +1056,7 @@ ppp_net_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
51519 break;
51520
51521 case SIOCGPPPVER:
51522 - vers = PPP_VERSION;
51523 - if (copy_to_user(addr, vers, strlen(vers) + 1))
51524 + if (copy_to_user(addr, PPP_VERSION, sizeof(PPP_VERSION)))
51525 break;
51526 err = 0;
51527 break;
51528 diff --git a/drivers/net/slip/slhc.c b/drivers/net/slip/slhc.c
51529 index 079f7ad..7e59810 100644
51530 --- a/drivers/net/slip/slhc.c
51531 +++ b/drivers/net/slip/slhc.c
51532 @@ -94,6 +94,9 @@ slhc_init(int rslots, int tslots)
51533 register struct cstate *ts;
51534 struct slcompress *comp;
51535
51536 + if (rslots <= 0 || tslots <= 0 || rslots >= 256 || tslots >= 256)
51537 + goto out_fail;
51538 +
51539 comp = kzalloc(sizeof(struct slcompress), GFP_KERNEL);
51540 if (! comp)
51541 goto out_fail;
51542 @@ -487,7 +490,7 @@ slhc_uncompress(struct slcompress *comp, unsigned char *icp, int isize)
51543 register struct tcphdr *thp;
51544 register struct iphdr *ip;
51545 register struct cstate *cs;
51546 - int len, hdrlen;
51547 + long len, hdrlen;
51548 unsigned char *cp = icp;
51549
51550 /* We've got a compressed packet; read the change byte */
51551 diff --git a/drivers/net/team/team.c b/drivers/net/team/team.c
51552 index daa054b..07d6b98 100644
51553 --- a/drivers/net/team/team.c
51554 +++ b/drivers/net/team/team.c
51555 @@ -2107,7 +2107,7 @@ static unsigned int team_get_num_rx_queues(void)
51556 return TEAM_DEFAULT_NUM_RX_QUEUES;
51557 }
51558
51559 -static struct rtnl_link_ops team_link_ops __read_mostly = {
51560 +static struct rtnl_link_ops team_link_ops = {
51561 .kind = DRV_NAME,
51562 .priv_size = sizeof(struct team),
51563 .setup = team_setup,
51564 @@ -2897,7 +2897,7 @@ static int team_device_event(struct notifier_block *unused,
51565 return NOTIFY_DONE;
51566 }
51567
51568 -static struct notifier_block team_notifier_block __read_mostly = {
51569 +static struct notifier_block team_notifier_block = {
51570 .notifier_call = team_device_event,
51571 };
51572
51573 diff --git a/drivers/net/tun.c b/drivers/net/tun.c
51574 index 06a0394..1756d18 100644
51575 --- a/drivers/net/tun.c
51576 +++ b/drivers/net/tun.c
51577 @@ -1472,7 +1472,7 @@ static int tun_validate(struct nlattr *tb[], struct nlattr *data[])
51578 return -EINVAL;
51579 }
51580
51581 -static struct rtnl_link_ops tun_link_ops __read_mostly = {
51582 +static struct rtnl_link_ops tun_link_ops = {
51583 .kind = DRV_NAME,
51584 .priv_size = sizeof(struct tun_struct),
51585 .setup = tun_setup,
51586 @@ -1871,7 +1871,7 @@ unlock:
51587 }
51588
51589 static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
51590 - unsigned long arg, int ifreq_len)
51591 + unsigned long arg, size_t ifreq_len)
51592 {
51593 struct tun_file *tfile = file->private_data;
51594 struct tun_struct *tun;
51595 @@ -1885,6 +1885,9 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
51596 int le;
51597 int ret;
51598
51599 + if (ifreq_len > sizeof ifr)
51600 + return -EFAULT;
51601 +
51602 if (cmd == TUNSETIFF || cmd == TUNSETQUEUE || _IOC_TYPE(cmd) == 0x89) {
51603 if (copy_from_user(&ifr, argp, ifreq_len))
51604 return -EFAULT;
51605 diff --git a/drivers/net/usb/hso.c b/drivers/net/usb/hso.c
51606 index 111d907..1ee643e 100644
51607 --- a/drivers/net/usb/hso.c
51608 +++ b/drivers/net/usb/hso.c
51609 @@ -70,7 +70,7 @@
51610 #include <asm/byteorder.h>
51611 #include <linux/serial_core.h>
51612 #include <linux/serial.h>
51613 -
51614 +#include <asm/local.h>
51615
51616 #define MOD_AUTHOR "Option Wireless"
51617 #define MOD_DESCRIPTION "USB High Speed Option driver"
51618 @@ -1183,7 +1183,7 @@ static void put_rxbuf_data_and_resubmit_ctrl_urb(struct hso_serial *serial)
51619 struct urb *urb;
51620
51621 urb = serial->rx_urb[0];
51622 - if (serial->port.count > 0) {
51623 + if (atomic_read(&serial->port.count) > 0) {
51624 count = put_rxbuf_data(urb, serial);
51625 if (count == -1)
51626 return;
51627 @@ -1221,7 +1221,7 @@ static void hso_std_serial_read_bulk_callback(struct urb *urb)
51628 DUMP1(urb->transfer_buffer, urb->actual_length);
51629
51630 /* Anyone listening? */
51631 - if (serial->port.count == 0)
51632 + if (atomic_read(&serial->port.count) == 0)
51633 return;
51634
51635 if (serial->parent->port_spec & HSO_INFO_CRC_BUG)
51636 @@ -1282,8 +1282,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
51637 tty_port_tty_set(&serial->port, tty);
51638
51639 /* check for port already opened, if not set the termios */
51640 - serial->port.count++;
51641 - if (serial->port.count == 1) {
51642 + if (atomic_inc_return(&serial->port.count) == 1) {
51643 serial->rx_state = RX_IDLE;
51644 /* Force default termio settings */
51645 _hso_serial_set_termios(tty, NULL);
51646 @@ -1293,7 +1292,7 @@ static int hso_serial_open(struct tty_struct *tty, struct file *filp)
51647 result = hso_start_serial_device(serial->parent, GFP_KERNEL);
51648 if (result) {
51649 hso_stop_serial_device(serial->parent);
51650 - serial->port.count--;
51651 + atomic_dec(&serial->port.count);
51652 } else {
51653 kref_get(&serial->parent->ref);
51654 }
51655 @@ -1331,10 +1330,10 @@ static void hso_serial_close(struct tty_struct *tty, struct file *filp)
51656
51657 /* reset the rts and dtr */
51658 /* do the actual close */
51659 - serial->port.count--;
51660 + atomic_dec(&serial->port.count);
51661
51662 - if (serial->port.count <= 0) {
51663 - serial->port.count = 0;
51664 + if (atomic_read(&serial->port.count) <= 0) {
51665 + atomic_set(&serial->port.count, 0);
51666 tty_port_tty_set(&serial->port, NULL);
51667 if (!usb_gone)
51668 hso_stop_serial_device(serial->parent);
51669 @@ -1417,7 +1416,7 @@ static void hso_serial_set_termios(struct tty_struct *tty, struct ktermios *old)
51670
51671 /* the actual setup */
51672 spin_lock_irqsave(&serial->serial_lock, flags);
51673 - if (serial->port.count)
51674 + if (atomic_read(&serial->port.count))
51675 _hso_serial_set_termios(tty, old);
51676 else
51677 tty->termios = *old;
51678 @@ -1891,7 +1890,7 @@ static void intr_callback(struct urb *urb)
51679 D1("Pending read interrupt on port %d\n", i);
51680 spin_lock(&serial->serial_lock);
51681 if (serial->rx_state == RX_IDLE &&
51682 - serial->port.count > 0) {
51683 + atomic_read(&serial->port.count) > 0) {
51684 /* Setup and send a ctrl req read on
51685 * port i */
51686 if (!serial->rx_urb_filled[0]) {
51687 @@ -3058,7 +3057,7 @@ static int hso_resume(struct usb_interface *iface)
51688 /* Start all serial ports */
51689 for (i = 0; i < HSO_SERIAL_TTY_MINORS; i++) {
51690 if (serial_table[i] && (serial_table[i]->interface == iface)) {
51691 - if (dev2ser(serial_table[i])->port.count) {
51692 + if (atomic_read(&dev2ser(serial_table[i])->port.count)) {
51693 result =
51694 hso_start_serial_device(serial_table[i], GFP_NOIO);
51695 hso_kick_transmit(dev2ser(serial_table[i]));
51696 diff --git a/drivers/net/usb/r8152.c b/drivers/net/usb/r8152.c
51697 index ad8cbc6..de80b09 100644
51698 --- a/drivers/net/usb/r8152.c
51699 +++ b/drivers/net/usb/r8152.c
51700 @@ -603,7 +603,7 @@ struct r8152 {
51701 void (*unload)(struct r8152 *);
51702 int (*eee_get)(struct r8152 *, struct ethtool_eee *);
51703 int (*eee_set)(struct r8152 *, struct ethtool_eee *);
51704 - } rtl_ops;
51705 + } __no_const rtl_ops;
51706
51707 int intr_interval;
51708 u32 saved_wolopts;
51709 diff --git a/drivers/net/usb/sierra_net.c b/drivers/net/usb/sierra_net.c
51710 index a2515887..6d13233 100644
51711 --- a/drivers/net/usb/sierra_net.c
51712 +++ b/drivers/net/usb/sierra_net.c
51713 @@ -51,7 +51,7 @@ static const char driver_name[] = "sierra_net";
51714 /* atomic counter partially included in MAC address to make sure 2 devices
51715 * do not end up with the same MAC - concept breaks in case of > 255 ifaces
51716 */
51717 -static atomic_t iface_counter = ATOMIC_INIT(0);
51718 +static atomic_unchecked_t iface_counter = ATOMIC_INIT(0);
51719
51720 /*
51721 * SYNC Timer Delay definition used to set the expiry time
51722 @@ -697,7 +697,7 @@ static int sierra_net_bind(struct usbnet *dev, struct usb_interface *intf)
51723 dev->net->netdev_ops = &sierra_net_device_ops;
51724
51725 /* change MAC addr to include, ifacenum, and to be unique */
51726 - dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return(&iface_counter);
51727 + dev->net->dev_addr[ETH_ALEN-2] = atomic_inc_return_unchecked(&iface_counter);
51728 dev->net->dev_addr[ETH_ALEN-1] = ifacenum;
51729
51730 /* we will have to manufacture ethernet headers, prepare template */
51731 diff --git a/drivers/net/virtio_net.c b/drivers/net/virtio_net.c
51732 index 237f8e5..8dccb91 100644
51733 --- a/drivers/net/virtio_net.c
51734 +++ b/drivers/net/virtio_net.c
51735 @@ -48,7 +48,7 @@ module_param(gso, bool, 0444);
51736 #define RECEIVE_AVG_WEIGHT 64
51737
51738 /* Minimum alignment for mergeable packet buffers. */
51739 -#define MERGEABLE_BUFFER_ALIGN max(L1_CACHE_BYTES, 256)
51740 +#define MERGEABLE_BUFFER_ALIGN max(L1_CACHE_BYTES, 256UL)
51741
51742 #define VIRTNET_DRIVER_VERSION "1.0.0"
51743
51744 diff --git a/drivers/net/vxlan.c b/drivers/net/vxlan.c
51745 index 5bc4b1e..d5769f5 100644
51746 --- a/drivers/net/vxlan.c
51747 +++ b/drivers/net/vxlan.c
51748 @@ -2884,7 +2884,7 @@ static struct net *vxlan_get_link_net(const struct net_device *dev)
51749 return vxlan->net;
51750 }
51751
51752 -static struct rtnl_link_ops vxlan_link_ops __read_mostly = {
51753 +static struct rtnl_link_ops vxlan_link_ops = {
51754 .kind = "vxlan",
51755 .maxtype = IFLA_VXLAN_MAX,
51756 .policy = vxlan_policy,
51757 @@ -2932,7 +2932,7 @@ static int vxlan_lowerdev_event(struct notifier_block *unused,
51758 return NOTIFY_DONE;
51759 }
51760
51761 -static struct notifier_block vxlan_notifier_block __read_mostly = {
51762 +static struct notifier_block vxlan_notifier_block = {
51763 .notifier_call = vxlan_lowerdev_event,
51764 };
51765
51766 diff --git a/drivers/net/wan/lmc/lmc_media.c b/drivers/net/wan/lmc/lmc_media.c
51767 index 5920c99..ff2e4a5 100644
51768 --- a/drivers/net/wan/lmc/lmc_media.c
51769 +++ b/drivers/net/wan/lmc/lmc_media.c
51770 @@ -95,62 +95,63 @@ static inline void write_av9110_bit (lmc_softc_t *, int);
51771 static void write_av9110(lmc_softc_t *, u32, u32, u32, u32, u32);
51772
51773 lmc_media_t lmc_ds3_media = {
51774 - lmc_ds3_init, /* special media init stuff */
51775 - lmc_ds3_default, /* reset to default state */
51776 - lmc_ds3_set_status, /* reset status to state provided */
51777 - lmc_dummy_set_1, /* set clock source */
51778 - lmc_dummy_set2_1, /* set line speed */
51779 - lmc_ds3_set_100ft, /* set cable length */
51780 - lmc_ds3_set_scram, /* set scrambler */
51781 - lmc_ds3_get_link_status, /* get link status */
51782 - lmc_dummy_set_1, /* set link status */
51783 - lmc_ds3_set_crc_length, /* set CRC length */
51784 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
51785 - lmc_ds3_watchdog
51786 + .init = lmc_ds3_init, /* special media init stuff */
51787 + .defaults = lmc_ds3_default, /* reset to default state */
51788 + .set_status = lmc_ds3_set_status, /* reset status to state provided */
51789 + .set_clock_source = lmc_dummy_set_1, /* set clock source */
51790 + .set_speed = lmc_dummy_set2_1, /* set line speed */
51791 + .set_cable_length = lmc_ds3_set_100ft, /* set cable length */
51792 + .set_scrambler = lmc_ds3_set_scram, /* set scrambler */
51793 + .get_link_status = lmc_ds3_get_link_status, /* get link status */
51794 + .set_link_status = lmc_dummy_set_1, /* set link status */
51795 + .set_crc_length = lmc_ds3_set_crc_length, /* set CRC length */
51796 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
51797 + .watchdog = lmc_ds3_watchdog
51798 };
51799
51800 lmc_media_t lmc_hssi_media = {
51801 - lmc_hssi_init, /* special media init stuff */
51802 - lmc_hssi_default, /* reset to default state */
51803 - lmc_hssi_set_status, /* reset status to state provided */
51804 - lmc_hssi_set_clock, /* set clock source */
51805 - lmc_dummy_set2_1, /* set line speed */
51806 - lmc_dummy_set_1, /* set cable length */
51807 - lmc_dummy_set_1, /* set scrambler */
51808 - lmc_hssi_get_link_status, /* get link status */
51809 - lmc_hssi_set_link_status, /* set link status */
51810 - lmc_hssi_set_crc_length, /* set CRC length */
51811 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
51812 - lmc_hssi_watchdog
51813 + .init = lmc_hssi_init, /* special media init stuff */
51814 + .defaults = lmc_hssi_default, /* reset to default state */
51815 + .set_status = lmc_hssi_set_status, /* reset status to state provided */
51816 + .set_clock_source = lmc_hssi_set_clock, /* set clock source */
51817 + .set_speed = lmc_dummy_set2_1, /* set line speed */
51818 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
51819 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
51820 + .get_link_status = lmc_hssi_get_link_status, /* get link status */
51821 + .set_link_status = lmc_hssi_set_link_status, /* set link status */
51822 + .set_crc_length = lmc_hssi_set_crc_length, /* set CRC length */
51823 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
51824 + .watchdog = lmc_hssi_watchdog
51825 };
51826
51827 -lmc_media_t lmc_ssi_media = { lmc_ssi_init, /* special media init stuff */
51828 - lmc_ssi_default, /* reset to default state */
51829 - lmc_ssi_set_status, /* reset status to state provided */
51830 - lmc_ssi_set_clock, /* set clock source */
51831 - lmc_ssi_set_speed, /* set line speed */
51832 - lmc_dummy_set_1, /* set cable length */
51833 - lmc_dummy_set_1, /* set scrambler */
51834 - lmc_ssi_get_link_status, /* get link status */
51835 - lmc_ssi_set_link_status, /* set link status */
51836 - lmc_ssi_set_crc_length, /* set CRC length */
51837 - lmc_dummy_set_1, /* set T1 or E1 circuit type */
51838 - lmc_ssi_watchdog
51839 +lmc_media_t lmc_ssi_media = {
51840 + .init = lmc_ssi_init, /* special media init stuff */
51841 + .defaults = lmc_ssi_default, /* reset to default state */
51842 + .set_status = lmc_ssi_set_status, /* reset status to state provided */
51843 + .set_clock_source = lmc_ssi_set_clock, /* set clock source */
51844 + .set_speed = lmc_ssi_set_speed, /* set line speed */
51845 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
51846 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
51847 + .get_link_status = lmc_ssi_get_link_status, /* get link status */
51848 + .set_link_status = lmc_ssi_set_link_status, /* set link status */
51849 + .set_crc_length = lmc_ssi_set_crc_length, /* set CRC length */
51850 + .set_circuit_type = lmc_dummy_set_1, /* set T1 or E1 circuit type */
51851 + .watchdog = lmc_ssi_watchdog
51852 };
51853
51854 lmc_media_t lmc_t1_media = {
51855 - lmc_t1_init, /* special media init stuff */
51856 - lmc_t1_default, /* reset to default state */
51857 - lmc_t1_set_status, /* reset status to state provided */
51858 - lmc_t1_set_clock, /* set clock source */
51859 - lmc_dummy_set2_1, /* set line speed */
51860 - lmc_dummy_set_1, /* set cable length */
51861 - lmc_dummy_set_1, /* set scrambler */
51862 - lmc_t1_get_link_status, /* get link status */
51863 - lmc_dummy_set_1, /* set link status */
51864 - lmc_t1_set_crc_length, /* set CRC length */
51865 - lmc_t1_set_circuit_type, /* set T1 or E1 circuit type */
51866 - lmc_t1_watchdog
51867 + .init = lmc_t1_init, /* special media init stuff */
51868 + .defaults = lmc_t1_default, /* reset to default state */
51869 + .set_status = lmc_t1_set_status, /* reset status to state provided */
51870 + .set_clock_source = lmc_t1_set_clock, /* set clock source */
51871 + .set_speed = lmc_dummy_set2_1, /* set line speed */
51872 + .set_cable_length = lmc_dummy_set_1, /* set cable length */
51873 + .set_scrambler = lmc_dummy_set_1, /* set scrambler */
51874 + .get_link_status = lmc_t1_get_link_status, /* get link status */
51875 + .set_link_status = lmc_dummy_set_1, /* set link status */
51876 + .set_crc_length = lmc_t1_set_crc_length, /* set CRC length */
51877 + .set_circuit_type = lmc_t1_set_circuit_type, /* set T1 or E1 circuit type */
51878 + .watchdog = lmc_t1_watchdog
51879 };
51880
51881 static void
51882 diff --git a/drivers/net/wan/z85230.c b/drivers/net/wan/z85230.c
51883 index 2f0bd69..e46ed7b 100644
51884 --- a/drivers/net/wan/z85230.c
51885 +++ b/drivers/net/wan/z85230.c
51886 @@ -485,9 +485,9 @@ static void z8530_status(struct z8530_channel *chan)
51887
51888 struct z8530_irqhandler z8530_sync =
51889 {
51890 - z8530_rx,
51891 - z8530_tx,
51892 - z8530_status
51893 + .rx = z8530_rx,
51894 + .tx = z8530_tx,
51895 + .status = z8530_status
51896 };
51897
51898 EXPORT_SYMBOL(z8530_sync);
51899 @@ -605,15 +605,15 @@ static void z8530_dma_status(struct z8530_channel *chan)
51900 }
51901
51902 static struct z8530_irqhandler z8530_dma_sync = {
51903 - z8530_dma_rx,
51904 - z8530_dma_tx,
51905 - z8530_dma_status
51906 + .rx = z8530_dma_rx,
51907 + .tx = z8530_dma_tx,
51908 + .status = z8530_dma_status
51909 };
51910
51911 static struct z8530_irqhandler z8530_txdma_sync = {
51912 - z8530_rx,
51913 - z8530_dma_tx,
51914 - z8530_dma_status
51915 + .rx = z8530_rx,
51916 + .tx = z8530_dma_tx,
51917 + .status = z8530_dma_status
51918 };
51919
51920 /**
51921 @@ -680,9 +680,9 @@ static void z8530_status_clear(struct z8530_channel *chan)
51922
51923 struct z8530_irqhandler z8530_nop=
51924 {
51925 - z8530_rx_clear,
51926 - z8530_tx_clear,
51927 - z8530_status_clear
51928 + .rx = z8530_rx_clear,
51929 + .tx = z8530_tx_clear,
51930 + .status = z8530_status_clear
51931 };
51932
51933
51934 diff --git a/drivers/net/wimax/i2400m/rx.c b/drivers/net/wimax/i2400m/rx.c
51935 index 0b60295..b8bfa5b 100644
51936 --- a/drivers/net/wimax/i2400m/rx.c
51937 +++ b/drivers/net/wimax/i2400m/rx.c
51938 @@ -1359,7 +1359,7 @@ int i2400m_rx_setup(struct i2400m *i2400m)
51939 if (i2400m->rx_roq == NULL)
51940 goto error_roq_alloc;
51941
51942 - rd = kcalloc(I2400M_RO_CIN + 1, sizeof(*i2400m->rx_roq[0].log),
51943 + rd = kcalloc(sizeof(*i2400m->rx_roq[0].log), I2400M_RO_CIN + 1,
51944 GFP_KERNEL);
51945 if (rd == NULL) {
51946 result = -ENOMEM;
51947 diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c
51948 index d0c97c2..108f59b 100644
51949 --- a/drivers/net/wireless/airo.c
51950 +++ b/drivers/net/wireless/airo.c
51951 @@ -7846,7 +7846,7 @@ static int writerids(struct net_device *dev, aironet_ioctl *comp) {
51952 struct airo_info *ai = dev->ml_priv;
51953 int ridcode;
51954 int enabled;
51955 - static int (* writer)(struct airo_info *, u16 rid, const void *, int, int);
51956 + int (* writer)(struct airo_info *, u16 rid, const void *, int, int);
51957 unsigned char *iobuf;
51958
51959 /* Only super-user can write RIDs */
51960 diff --git a/drivers/net/wireless/at76c50x-usb.c b/drivers/net/wireless/at76c50x-usb.c
51961 index dab2513..4c4b65d 100644
51962 --- a/drivers/net/wireless/at76c50x-usb.c
51963 +++ b/drivers/net/wireless/at76c50x-usb.c
51964 @@ -353,7 +353,7 @@ static int at76_dfu_get_state(struct usb_device *udev, u8 *state)
51965 }
51966
51967 /* Convert timeout from the DFU status to jiffies */
51968 -static inline unsigned long at76_get_timeout(struct dfu_status *s)
51969 +static inline unsigned long __intentional_overflow(-1) at76_get_timeout(struct dfu_status *s)
51970 {
51971 return msecs_to_jiffies((s->poll_timeout[2] << 16)
51972 | (s->poll_timeout[1] << 8)
51973 diff --git a/drivers/net/wireless/ath/ath10k/ce.c b/drivers/net/wireless/ath/ath10k/ce.c
51974 index e508c65..fb0dbae 100644
51975 --- a/drivers/net/wireless/ath/ath10k/ce.c
51976 +++ b/drivers/net/wireless/ath/ath10k/ce.c
51977 @@ -896,7 +896,7 @@ static int ath10k_ce_init_dest_ring(struct ath10k *ar,
51978 return 0;
51979 }
51980
51981 -static struct ath10k_ce_ring *
51982 +static struct ath10k_ce_ring * __intentional_overflow(-1)
51983 ath10k_ce_alloc_src_ring(struct ath10k *ar, unsigned int ce_id,
51984 const struct ce_attr *attr)
51985 {
51986 diff --git a/drivers/net/wireless/ath/ath10k/htc.c b/drivers/net/wireless/ath/ath10k/htc.c
51987 index 32d9ff1..0952b33 100644
51988 --- a/drivers/net/wireless/ath/ath10k/htc.c
51989 +++ b/drivers/net/wireless/ath/ath10k/htc.c
51990 @@ -841,7 +841,10 @@ int ath10k_htc_start(struct ath10k_htc *htc)
51991 /* registered target arrival callback from the HIF layer */
51992 int ath10k_htc_init(struct ath10k *ar)
51993 {
51994 - struct ath10k_hif_cb htc_callbacks;
51995 + static struct ath10k_hif_cb htc_callbacks = {
51996 + .rx_completion = ath10k_htc_rx_completion_handler,
51997 + .tx_completion = ath10k_htc_tx_completion_handler,
51998 + };
51999 struct ath10k_htc_ep *ep = NULL;
52000 struct ath10k_htc *htc = &ar->htc;
52001
52002 @@ -850,8 +853,6 @@ int ath10k_htc_init(struct ath10k *ar)
52003 ath10k_htc_reset_endpoint_states(htc);
52004
52005 /* setup HIF layer callbacks */
52006 - htc_callbacks.rx_completion = ath10k_htc_rx_completion_handler;
52007 - htc_callbacks.tx_completion = ath10k_htc_tx_completion_handler;
52008 htc->ar = ar;
52009
52010 /* Get HIF default pipe for HTC message exchange */
52011 diff --git a/drivers/net/wireless/ath/ath10k/htc.h b/drivers/net/wireless/ath/ath10k/htc.h
52012 index 527179c..a890150 100644
52013 --- a/drivers/net/wireless/ath/ath10k/htc.h
52014 +++ b/drivers/net/wireless/ath/ath10k/htc.h
52015 @@ -270,13 +270,13 @@ enum ath10k_htc_ep_id {
52016
52017 struct ath10k_htc_ops {
52018 void (*target_send_suspend_complete)(struct ath10k *ar);
52019 -};
52020 +} __no_const;
52021
52022 struct ath10k_htc_ep_ops {
52023 void (*ep_tx_complete)(struct ath10k *, struct sk_buff *);
52024 void (*ep_rx_complete)(struct ath10k *, struct sk_buff *);
52025 void (*ep_tx_credits)(struct ath10k *);
52026 -};
52027 +} __no_const;
52028
52029 /* service connection information */
52030 struct ath10k_htc_svc_conn_req {
52031 diff --git a/drivers/net/wireless/ath/ath9k/Kconfig b/drivers/net/wireless/ath/ath9k/Kconfig
52032 index fee0cad..a7a3b63 100644
52033 --- a/drivers/net/wireless/ath/ath9k/Kconfig
52034 +++ b/drivers/net/wireless/ath/ath9k/Kconfig
52035 @@ -3,7 +3,6 @@ config ATH9K_HW
52036 config ATH9K_COMMON
52037 tristate
52038 select ATH_COMMON
52039 - select DEBUG_FS
52040 select RELAY
52041 config ATH9K_DFS_DEBUGFS
52042 def_bool y
52043 diff --git a/drivers/net/wireless/ath/ath9k/ar9002_mac.c b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
52044 index f816909..e56cd8b 100644
52045 --- a/drivers/net/wireless/ath/ath9k/ar9002_mac.c
52046 +++ b/drivers/net/wireless/ath/ath9k/ar9002_mac.c
52047 @@ -220,8 +220,8 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52048 ads->ds_txstatus6 = ads->ds_txstatus7 = 0;
52049 ads->ds_txstatus8 = ads->ds_txstatus9 = 0;
52050
52051 - ACCESS_ONCE(ads->ds_link) = i->link;
52052 - ACCESS_ONCE(ads->ds_data) = i->buf_addr[0];
52053 + ACCESS_ONCE_RW(ads->ds_link) = i->link;
52054 + ACCESS_ONCE_RW(ads->ds_data) = i->buf_addr[0];
52055
52056 ctl1 = i->buf_len[0] | (i->is_last ? 0 : AR_TxMore);
52057 ctl6 = SM(i->keytype, AR_EncrType);
52058 @@ -235,26 +235,26 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52059
52060 if ((i->is_first || i->is_last) &&
52061 i->aggr != AGGR_BUF_MIDDLE && i->aggr != AGGR_BUF_LAST) {
52062 - ACCESS_ONCE(ads->ds_ctl2) = set11nTries(i->rates, 0)
52063 + ACCESS_ONCE_RW(ads->ds_ctl2) = set11nTries(i->rates, 0)
52064 | set11nTries(i->rates, 1)
52065 | set11nTries(i->rates, 2)
52066 | set11nTries(i->rates, 3)
52067 | (i->dur_update ? AR_DurUpdateEna : 0)
52068 | SM(0, AR_BurstDur);
52069
52070 - ACCESS_ONCE(ads->ds_ctl3) = set11nRate(i->rates, 0)
52071 + ACCESS_ONCE_RW(ads->ds_ctl3) = set11nRate(i->rates, 0)
52072 | set11nRate(i->rates, 1)
52073 | set11nRate(i->rates, 2)
52074 | set11nRate(i->rates, 3);
52075 } else {
52076 - ACCESS_ONCE(ads->ds_ctl2) = 0;
52077 - ACCESS_ONCE(ads->ds_ctl3) = 0;
52078 + ACCESS_ONCE_RW(ads->ds_ctl2) = 0;
52079 + ACCESS_ONCE_RW(ads->ds_ctl3) = 0;
52080 }
52081
52082 if (!i->is_first) {
52083 - ACCESS_ONCE(ads->ds_ctl0) = 0;
52084 - ACCESS_ONCE(ads->ds_ctl1) = ctl1;
52085 - ACCESS_ONCE(ads->ds_ctl6) = ctl6;
52086 + ACCESS_ONCE_RW(ads->ds_ctl0) = 0;
52087 + ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
52088 + ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
52089 return;
52090 }
52091
52092 @@ -279,7 +279,7 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52093 break;
52094 }
52095
52096 - ACCESS_ONCE(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
52097 + ACCESS_ONCE_RW(ads->ds_ctl0) = (i->pkt_len & AR_FrameLen)
52098 | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
52099 | SM(i->txpower[0], AR_XmitPower0)
52100 | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
52101 @@ -289,27 +289,27 @@ ar9002_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52102 | (i->flags & ATH9K_TXDESC_RTSENA ? AR_RTSEnable :
52103 (i->flags & ATH9K_TXDESC_CTSENA ? AR_CTSEnable : 0));
52104
52105 - ACCESS_ONCE(ads->ds_ctl1) = ctl1;
52106 - ACCESS_ONCE(ads->ds_ctl6) = ctl6;
52107 + ACCESS_ONCE_RW(ads->ds_ctl1) = ctl1;
52108 + ACCESS_ONCE_RW(ads->ds_ctl6) = ctl6;
52109
52110 if (i->aggr == AGGR_BUF_MIDDLE || i->aggr == AGGR_BUF_LAST)
52111 return;
52112
52113 - ACCESS_ONCE(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
52114 + ACCESS_ONCE_RW(ads->ds_ctl4) = set11nPktDurRTSCTS(i->rates, 0)
52115 | set11nPktDurRTSCTS(i->rates, 1);
52116
52117 - ACCESS_ONCE(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
52118 + ACCESS_ONCE_RW(ads->ds_ctl5) = set11nPktDurRTSCTS(i->rates, 2)
52119 | set11nPktDurRTSCTS(i->rates, 3);
52120
52121 - ACCESS_ONCE(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
52122 + ACCESS_ONCE_RW(ads->ds_ctl7) = set11nRateFlags(i->rates, 0)
52123 | set11nRateFlags(i->rates, 1)
52124 | set11nRateFlags(i->rates, 2)
52125 | set11nRateFlags(i->rates, 3)
52126 | SM(i->rtscts_rate, AR_RTSCTSRate);
52127
52128 - ACCESS_ONCE(ads->ds_ctl9) = SM(i->txpower[1], AR_XmitPower1);
52129 - ACCESS_ONCE(ads->ds_ctl10) = SM(i->txpower[2], AR_XmitPower2);
52130 - ACCESS_ONCE(ads->ds_ctl11) = SM(i->txpower[3], AR_XmitPower3);
52131 + ACCESS_ONCE_RW(ads->ds_ctl9) = SM(i->txpower[1], AR_XmitPower1);
52132 + ACCESS_ONCE_RW(ads->ds_ctl10) = SM(i->txpower[2], AR_XmitPower2);
52133 + ACCESS_ONCE_RW(ads->ds_ctl11) = SM(i->txpower[3], AR_XmitPower3);
52134 }
52135
52136 static int ar9002_hw_proc_txdesc(struct ath_hw *ah, void *ds,
52137 diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
52138 index da84b70..83e4978 100644
52139 --- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
52140 +++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
52141 @@ -39,47 +39,47 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52142 (i->qcu << AR_TxQcuNum_S) | desc_len;
52143
52144 checksum += val;
52145 - ACCESS_ONCE(ads->info) = val;
52146 + ACCESS_ONCE_RW(ads->info) = val;
52147
52148 checksum += i->link;
52149 - ACCESS_ONCE(ads->link) = i->link;
52150 + ACCESS_ONCE_RW(ads->link) = i->link;
52151
52152 checksum += i->buf_addr[0];
52153 - ACCESS_ONCE(ads->data0) = i->buf_addr[0];
52154 + ACCESS_ONCE_RW(ads->data0) = i->buf_addr[0];
52155 checksum += i->buf_addr[1];
52156 - ACCESS_ONCE(ads->data1) = i->buf_addr[1];
52157 + ACCESS_ONCE_RW(ads->data1) = i->buf_addr[1];
52158 checksum += i->buf_addr[2];
52159 - ACCESS_ONCE(ads->data2) = i->buf_addr[2];
52160 + ACCESS_ONCE_RW(ads->data2) = i->buf_addr[2];
52161 checksum += i->buf_addr[3];
52162 - ACCESS_ONCE(ads->data3) = i->buf_addr[3];
52163 + ACCESS_ONCE_RW(ads->data3) = i->buf_addr[3];
52164
52165 checksum += (val = (i->buf_len[0] << AR_BufLen_S) & AR_BufLen);
52166 - ACCESS_ONCE(ads->ctl3) = val;
52167 + ACCESS_ONCE_RW(ads->ctl3) = val;
52168 checksum += (val = (i->buf_len[1] << AR_BufLen_S) & AR_BufLen);
52169 - ACCESS_ONCE(ads->ctl5) = val;
52170 + ACCESS_ONCE_RW(ads->ctl5) = val;
52171 checksum += (val = (i->buf_len[2] << AR_BufLen_S) & AR_BufLen);
52172 - ACCESS_ONCE(ads->ctl7) = val;
52173 + ACCESS_ONCE_RW(ads->ctl7) = val;
52174 checksum += (val = (i->buf_len[3] << AR_BufLen_S) & AR_BufLen);
52175 - ACCESS_ONCE(ads->ctl9) = val;
52176 + ACCESS_ONCE_RW(ads->ctl9) = val;
52177
52178 checksum = (u16) (((checksum & 0xffff) + (checksum >> 16)) & 0xffff);
52179 - ACCESS_ONCE(ads->ctl10) = checksum;
52180 + ACCESS_ONCE_RW(ads->ctl10) = checksum;
52181
52182 if (i->is_first || i->is_last) {
52183 - ACCESS_ONCE(ads->ctl13) = set11nTries(i->rates, 0)
52184 + ACCESS_ONCE_RW(ads->ctl13) = set11nTries(i->rates, 0)
52185 | set11nTries(i->rates, 1)
52186 | set11nTries(i->rates, 2)
52187 | set11nTries(i->rates, 3)
52188 | (i->dur_update ? AR_DurUpdateEna : 0)
52189 | SM(0, AR_BurstDur);
52190
52191 - ACCESS_ONCE(ads->ctl14) = set11nRate(i->rates, 0)
52192 + ACCESS_ONCE_RW(ads->ctl14) = set11nRate(i->rates, 0)
52193 | set11nRate(i->rates, 1)
52194 | set11nRate(i->rates, 2)
52195 | set11nRate(i->rates, 3);
52196 } else {
52197 - ACCESS_ONCE(ads->ctl13) = 0;
52198 - ACCESS_ONCE(ads->ctl14) = 0;
52199 + ACCESS_ONCE_RW(ads->ctl13) = 0;
52200 + ACCESS_ONCE_RW(ads->ctl14) = 0;
52201 }
52202
52203 ads->ctl20 = 0;
52204 @@ -89,17 +89,17 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52205
52206 ctl17 = SM(i->keytype, AR_EncrType);
52207 if (!i->is_first) {
52208 - ACCESS_ONCE(ads->ctl11) = 0;
52209 - ACCESS_ONCE(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
52210 - ACCESS_ONCE(ads->ctl15) = 0;
52211 - ACCESS_ONCE(ads->ctl16) = 0;
52212 - ACCESS_ONCE(ads->ctl17) = ctl17;
52213 - ACCESS_ONCE(ads->ctl18) = 0;
52214 - ACCESS_ONCE(ads->ctl19) = 0;
52215 + ACCESS_ONCE_RW(ads->ctl11) = 0;
52216 + ACCESS_ONCE_RW(ads->ctl12) = i->is_last ? 0 : AR_TxMore;
52217 + ACCESS_ONCE_RW(ads->ctl15) = 0;
52218 + ACCESS_ONCE_RW(ads->ctl16) = 0;
52219 + ACCESS_ONCE_RW(ads->ctl17) = ctl17;
52220 + ACCESS_ONCE_RW(ads->ctl18) = 0;
52221 + ACCESS_ONCE_RW(ads->ctl19) = 0;
52222 return;
52223 }
52224
52225 - ACCESS_ONCE(ads->ctl11) = (i->pkt_len & AR_FrameLen)
52226 + ACCESS_ONCE_RW(ads->ctl11) = (i->pkt_len & AR_FrameLen)
52227 | (i->flags & ATH9K_TXDESC_VMF ? AR_VirtMoreFrag : 0)
52228 | SM(i->txpower[0], AR_XmitPower0)
52229 | (i->flags & ATH9K_TXDESC_VEOL ? AR_VEOL : 0)
52230 @@ -135,26 +135,26 @@ ar9003_set_txdesc(struct ath_hw *ah, void *ds, struct ath_tx_info *i)
52231 val = (i->flags & ATH9K_TXDESC_PAPRD) >> ATH9K_TXDESC_PAPRD_S;
52232 ctl12 |= SM(val, AR_PAPRDChainMask);
52233
52234 - ACCESS_ONCE(ads->ctl12) = ctl12;
52235 - ACCESS_ONCE(ads->ctl17) = ctl17;
52236 + ACCESS_ONCE_RW(ads->ctl12) = ctl12;
52237 + ACCESS_ONCE_RW(ads->ctl17) = ctl17;
52238
52239 - ACCESS_ONCE(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
52240 + ACCESS_ONCE_RW(ads->ctl15) = set11nPktDurRTSCTS(i->rates, 0)
52241 | set11nPktDurRTSCTS(i->rates, 1);
52242
52243 - ACCESS_ONCE(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
52244 + ACCESS_ONCE_RW(ads->ctl16) = set11nPktDurRTSCTS(i->rates, 2)
52245 | set11nPktDurRTSCTS(i->rates, 3);
52246
52247 - ACCESS_ONCE(ads->ctl18) = set11nRateFlags(i->rates, 0)
52248 + ACCESS_ONCE_RW(ads->ctl18) = set11nRateFlags(i->rates, 0)
52249 | set11nRateFlags(i->rates, 1)
52250 | set11nRateFlags(i->rates, 2)
52251 | set11nRateFlags(i->rates, 3)
52252 | SM(i->rtscts_rate, AR_RTSCTSRate);
52253
52254 - ACCESS_ONCE(ads->ctl19) = AR_Not_Sounding;
52255 + ACCESS_ONCE_RW(ads->ctl19) = AR_Not_Sounding;
52256
52257 - ACCESS_ONCE(ads->ctl20) = SM(i->txpower[1], AR_XmitPower1);
52258 - ACCESS_ONCE(ads->ctl21) = SM(i->txpower[2], AR_XmitPower2);
52259 - ACCESS_ONCE(ads->ctl22) = SM(i->txpower[3], AR_XmitPower3);
52260 + ACCESS_ONCE_RW(ads->ctl20) = SM(i->txpower[1], AR_XmitPower1);
52261 + ACCESS_ONCE_RW(ads->ctl21) = SM(i->txpower[2], AR_XmitPower2);
52262 + ACCESS_ONCE_RW(ads->ctl22) = SM(i->txpower[3], AR_XmitPower3);
52263 }
52264
52265 static u16 ar9003_calc_ptr_chksum(struct ar9003_txc *ads)
52266 diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
52267 index e8454db..c7b26fe 100644
52268 --- a/drivers/net/wireless/ath/ath9k/hw.h
52269 +++ b/drivers/net/wireless/ath/ath9k/hw.h
52270 @@ -671,7 +671,7 @@ struct ath_hw_private_ops {
52271 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
52272 bool (*is_aic_enabled)(struct ath_hw *ah);
52273 #endif /* CONFIG_ATH9K_BTCOEX_SUPPORT */
52274 -};
52275 +} __no_const;
52276
52277 /**
52278 * struct ath_spec_scan - parameters for Atheros spectral scan
52279 @@ -747,7 +747,7 @@ struct ath_hw_ops {
52280 #ifdef CONFIG_ATH9K_BTCOEX_SUPPORT
52281 void (*set_bt_ant_diversity)(struct ath_hw *hw, bool enable);
52282 #endif
52283 -};
52284 +} __no_const;
52285
52286 struct ath_nf_limits {
52287 s16 max;
52288 diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
52289 index cfd45cb..6de2be6 100644
52290 --- a/drivers/net/wireless/ath/ath9k/main.c
52291 +++ b/drivers/net/wireless/ath/ath9k/main.c
52292 @@ -2574,16 +2574,18 @@ void ath9k_fill_chanctx_ops(void)
52293 if (!ath9k_is_chanctx_enabled())
52294 return;
52295
52296 - ath9k_ops.hw_scan = ath9k_hw_scan;
52297 - ath9k_ops.cancel_hw_scan = ath9k_cancel_hw_scan;
52298 - ath9k_ops.remain_on_channel = ath9k_remain_on_channel;
52299 - ath9k_ops.cancel_remain_on_channel = ath9k_cancel_remain_on_channel;
52300 - ath9k_ops.add_chanctx = ath9k_add_chanctx;
52301 - ath9k_ops.remove_chanctx = ath9k_remove_chanctx;
52302 - ath9k_ops.change_chanctx = ath9k_change_chanctx;
52303 - ath9k_ops.assign_vif_chanctx = ath9k_assign_vif_chanctx;
52304 - ath9k_ops.unassign_vif_chanctx = ath9k_unassign_vif_chanctx;
52305 - ath9k_ops.mgd_prepare_tx = ath9k_mgd_prepare_tx;
52306 + pax_open_kernel();
52307 + *(void **)&ath9k_ops.hw_scan = ath9k_hw_scan;
52308 + *(void **)&ath9k_ops.cancel_hw_scan = ath9k_cancel_hw_scan;
52309 + *(void **)&ath9k_ops.remain_on_channel = ath9k_remain_on_channel;
52310 + *(void **)&ath9k_ops.cancel_remain_on_channel = ath9k_cancel_remain_on_channel;
52311 + *(void **)&ath9k_ops.add_chanctx = ath9k_add_chanctx;
52312 + *(void **)&ath9k_ops.remove_chanctx = ath9k_remove_chanctx;
52313 + *(void **)&ath9k_ops.change_chanctx = ath9k_change_chanctx;
52314 + *(void **)&ath9k_ops.assign_vif_chanctx = ath9k_assign_vif_chanctx;
52315 + *(void **)&ath9k_ops.unassign_vif_chanctx = ath9k_unassign_vif_chanctx;
52316 + *(void **)&ath9k_ops.mgd_prepare_tx = ath9k_mgd_prepare_tx;
52317 + pax_close_kernel();
52318 }
52319
52320 #endif
52321 diff --git a/drivers/net/wireless/b43/phy_lp.c b/drivers/net/wireless/b43/phy_lp.c
52322 index 058a9f2..d5cb1ba 100644
52323 --- a/drivers/net/wireless/b43/phy_lp.c
52324 +++ b/drivers/net/wireless/b43/phy_lp.c
52325 @@ -2502,7 +2502,7 @@ static int lpphy_b2063_tune(struct b43_wldev *dev,
52326 {
52327 struct ssb_bus *bus = dev->dev->sdev->bus;
52328
52329 - static const struct b206x_channel *chandata = NULL;
52330 + const struct b206x_channel *chandata = NULL;
52331 u32 crystal_freq = bus->chipco.pmu.crystalfreq * 1000;
52332 u32 freqref, vco_freq, val1, val2, val3, timeout, timeoutref, count;
52333 u16 old_comm15, scale;
52334 diff --git a/drivers/net/wireless/iwlegacy/3945-mac.c b/drivers/net/wireless/iwlegacy/3945-mac.c
52335 index 7f4cb69..16c0825 100644
52336 --- a/drivers/net/wireless/iwlegacy/3945-mac.c
52337 +++ b/drivers/net/wireless/iwlegacy/3945-mac.c
52338 @@ -3633,7 +3633,9 @@ il3945_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
52339 */
52340 if (il3945_mod_params.disable_hw_scan) {
52341 D_INFO("Disabling hw_scan\n");
52342 - il3945_mac_ops.hw_scan = NULL;
52343 + pax_open_kernel();
52344 + *(void **)&il3945_mac_ops.hw_scan = NULL;
52345 + pax_close_kernel();
52346 }
52347
52348 D_INFO("*** LOAD DRIVER ***\n");
52349 diff --git a/drivers/net/wireless/iwlwifi/dvm/debugfs.c b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
52350 index 0ffb6ff..c0b7f0e 100644
52351 --- a/drivers/net/wireless/iwlwifi/dvm/debugfs.c
52352 +++ b/drivers/net/wireless/iwlwifi/dvm/debugfs.c
52353 @@ -188,7 +188,7 @@ static ssize_t iwl_dbgfs_sram_write(struct file *file,
52354 {
52355 struct iwl_priv *priv = file->private_data;
52356 char buf[64];
52357 - int buf_size;
52358 + size_t buf_size;
52359 u32 offset, len;
52360
52361 memset(buf, 0, sizeof(buf));
52362 @@ -458,7 +458,7 @@ static ssize_t iwl_dbgfs_rx_handlers_write(struct file *file,
52363 struct iwl_priv *priv = file->private_data;
52364
52365 char buf[8];
52366 - int buf_size;
52367 + size_t buf_size;
52368 u32 reset_flag;
52369
52370 memset(buf, 0, sizeof(buf));
52371 @@ -539,7 +539,7 @@ static ssize_t iwl_dbgfs_disable_ht40_write(struct file *file,
52372 {
52373 struct iwl_priv *priv = file->private_data;
52374 char buf[8];
52375 - int buf_size;
52376 + size_t buf_size;
52377 int ht40;
52378
52379 memset(buf, 0, sizeof(buf));
52380 @@ -591,7 +591,7 @@ static ssize_t iwl_dbgfs_sleep_level_override_write(struct file *file,
52381 {
52382 struct iwl_priv *priv = file->private_data;
52383 char buf[8];
52384 - int buf_size;
52385 + size_t buf_size;
52386 int value;
52387
52388 memset(buf, 0, sizeof(buf));
52389 @@ -683,10 +683,10 @@ DEBUGFS_READ_FILE_OPS(temperature);
52390 DEBUGFS_READ_WRITE_FILE_OPS(sleep_level_override);
52391 DEBUGFS_READ_FILE_OPS(current_sleep_command);
52392
52393 -static const char *fmt_value = " %-30s %10u\n";
52394 -static const char *fmt_hex = " %-30s 0x%02X\n";
52395 -static const char *fmt_table = " %-30s %10u %10u %10u %10u\n";
52396 -static const char *fmt_header =
52397 +static const char fmt_value[] = " %-30s %10u\n";
52398 +static const char fmt_hex[] = " %-30s 0x%02X\n";
52399 +static const char fmt_table[] = " %-30s %10u %10u %10u %10u\n";
52400 +static const char fmt_header[] =
52401 "%-32s current cumulative delta max\n";
52402
52403 static int iwl_statistics_flag(struct iwl_priv *priv, char *buf, int bufsz)
52404 @@ -1856,7 +1856,7 @@ static ssize_t iwl_dbgfs_clear_ucode_statistics_write(struct file *file,
52405 {
52406 struct iwl_priv *priv = file->private_data;
52407 char buf[8];
52408 - int buf_size;
52409 + size_t buf_size;
52410 int clear;
52411
52412 memset(buf, 0, sizeof(buf));
52413 @@ -1901,7 +1901,7 @@ static ssize_t iwl_dbgfs_ucode_tracing_write(struct file *file,
52414 {
52415 struct iwl_priv *priv = file->private_data;
52416 char buf[8];
52417 - int buf_size;
52418 + size_t buf_size;
52419 int trace;
52420
52421 memset(buf, 0, sizeof(buf));
52422 @@ -1972,7 +1972,7 @@ static ssize_t iwl_dbgfs_missed_beacon_write(struct file *file,
52423 {
52424 struct iwl_priv *priv = file->private_data;
52425 char buf[8];
52426 - int buf_size;
52427 + size_t buf_size;
52428 int missed;
52429
52430 memset(buf, 0, sizeof(buf));
52431 @@ -2013,7 +2013,7 @@ static ssize_t iwl_dbgfs_plcp_delta_write(struct file *file,
52432
52433 struct iwl_priv *priv = file->private_data;
52434 char buf[8];
52435 - int buf_size;
52436 + size_t buf_size;
52437 int plcp;
52438
52439 memset(buf, 0, sizeof(buf));
52440 @@ -2073,7 +2073,7 @@ static ssize_t iwl_dbgfs_txfifo_flush_write(struct file *file,
52441
52442 struct iwl_priv *priv = file->private_data;
52443 char buf[8];
52444 - int buf_size;
52445 + size_t buf_size;
52446 int flush;
52447
52448 memset(buf, 0, sizeof(buf));
52449 @@ -2163,7 +2163,7 @@ static ssize_t iwl_dbgfs_protection_mode_write(struct file *file,
52450
52451 struct iwl_priv *priv = file->private_data;
52452 char buf[8];
52453 - int buf_size;
52454 + size_t buf_size;
52455 int rts;
52456
52457 if (!priv->cfg->ht_params)
52458 @@ -2204,7 +2204,7 @@ static ssize_t iwl_dbgfs_echo_test_write(struct file *file,
52459 {
52460 struct iwl_priv *priv = file->private_data;
52461 char buf[8];
52462 - int buf_size;
52463 + size_t buf_size;
52464
52465 memset(buf, 0, sizeof(buf));
52466 buf_size = min(count, sizeof(buf) - 1);
52467 @@ -2238,7 +2238,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file,
52468 struct iwl_priv *priv = file->private_data;
52469 u32 event_log_flag;
52470 char buf[8];
52471 - int buf_size;
52472 + size_t buf_size;
52473
52474 /* check that the interface is up */
52475 if (!iwl_is_ready(priv))
52476 @@ -2292,7 +2292,7 @@ static ssize_t iwl_dbgfs_calib_disabled_write(struct file *file,
52477 struct iwl_priv *priv = file->private_data;
52478 char buf[8];
52479 u32 calib_disabled;
52480 - int buf_size;
52481 + size_t buf_size;
52482
52483 memset(buf, 0, sizeof(buf));
52484 buf_size = min(count, sizeof(buf) - 1);
52485 diff --git a/drivers/net/wireless/iwlwifi/pcie/trans.c b/drivers/net/wireless/iwlwifi/pcie/trans.c
52486 index 9e144e7..2f5511a 100644
52487 --- a/drivers/net/wireless/iwlwifi/pcie/trans.c
52488 +++ b/drivers/net/wireless/iwlwifi/pcie/trans.c
52489 @@ -1950,7 +1950,7 @@ static ssize_t iwl_dbgfs_interrupt_write(struct file *file,
52490 struct isr_statistics *isr_stats = &trans_pcie->isr_stats;
52491
52492 char buf[8];
52493 - int buf_size;
52494 + size_t buf_size;
52495 u32 reset_flag;
52496
52497 memset(buf, 0, sizeof(buf));
52498 @@ -1971,7 +1971,7 @@ static ssize_t iwl_dbgfs_csr_write(struct file *file,
52499 {
52500 struct iwl_trans *trans = file->private_data;
52501 char buf[8];
52502 - int buf_size;
52503 + size_t buf_size;
52504 int csr;
52505
52506 memset(buf, 0, sizeof(buf));
52507 diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c
52508 index 99e873d..0d9aab2 100644
52509 --- a/drivers/net/wireless/mac80211_hwsim.c
52510 +++ b/drivers/net/wireless/mac80211_hwsim.c
52511 @@ -3148,20 +3148,20 @@ static int __init init_mac80211_hwsim(void)
52512 if (channels < 1)
52513 return -EINVAL;
52514
52515 - mac80211_hwsim_mchan_ops = mac80211_hwsim_ops;
52516 - mac80211_hwsim_mchan_ops.hw_scan = mac80211_hwsim_hw_scan;
52517 - mac80211_hwsim_mchan_ops.cancel_hw_scan = mac80211_hwsim_cancel_hw_scan;
52518 - mac80211_hwsim_mchan_ops.sw_scan_start = NULL;
52519 - mac80211_hwsim_mchan_ops.sw_scan_complete = NULL;
52520 - mac80211_hwsim_mchan_ops.remain_on_channel = mac80211_hwsim_roc;
52521 - mac80211_hwsim_mchan_ops.cancel_remain_on_channel = mac80211_hwsim_croc;
52522 - mac80211_hwsim_mchan_ops.add_chanctx = mac80211_hwsim_add_chanctx;
52523 - mac80211_hwsim_mchan_ops.remove_chanctx = mac80211_hwsim_remove_chanctx;
52524 - mac80211_hwsim_mchan_ops.change_chanctx = mac80211_hwsim_change_chanctx;
52525 - mac80211_hwsim_mchan_ops.assign_vif_chanctx =
52526 - mac80211_hwsim_assign_vif_chanctx;
52527 - mac80211_hwsim_mchan_ops.unassign_vif_chanctx =
52528 - mac80211_hwsim_unassign_vif_chanctx;
52529 + pax_open_kernel();
52530 + memcpy((void *)&mac80211_hwsim_mchan_ops, &mac80211_hwsim_ops, sizeof mac80211_hwsim_mchan_ops);
52531 + *(void **)&mac80211_hwsim_mchan_ops.hw_scan = mac80211_hwsim_hw_scan;
52532 + *(void **)&mac80211_hwsim_mchan_ops.cancel_hw_scan = mac80211_hwsim_cancel_hw_scan;
52533 + *(void **)&mac80211_hwsim_mchan_ops.sw_scan_start = NULL;
52534 + *(void **)&mac80211_hwsim_mchan_ops.sw_scan_complete = NULL;
52535 + *(void **)&mac80211_hwsim_mchan_ops.remain_on_channel = mac80211_hwsim_roc;
52536 + *(void **)&mac80211_hwsim_mchan_ops.cancel_remain_on_channel = mac80211_hwsim_croc;
52537 + *(void **)&mac80211_hwsim_mchan_ops.add_chanctx = mac80211_hwsim_add_chanctx;
52538 + *(void **)&mac80211_hwsim_mchan_ops.remove_chanctx = mac80211_hwsim_remove_chanctx;
52539 + *(void **)&mac80211_hwsim_mchan_ops.change_chanctx = mac80211_hwsim_change_chanctx;
52540 + *(void **)&mac80211_hwsim_mchan_ops.assign_vif_chanctx = mac80211_hwsim_assign_vif_chanctx;
52541 + *(void **)&mac80211_hwsim_mchan_ops.unassign_vif_chanctx = mac80211_hwsim_unassign_vif_chanctx;
52542 + pax_close_kernel();
52543
52544 spin_lock_init(&hwsim_radio_lock);
52545 INIT_LIST_HEAD(&hwsim_radios);
52546 diff --git a/drivers/net/wireless/rndis_wlan.c b/drivers/net/wireless/rndis_wlan.c
52547 index 71a825c..ce7d6c3 100644
52548 --- a/drivers/net/wireless/rndis_wlan.c
52549 +++ b/drivers/net/wireless/rndis_wlan.c
52550 @@ -1236,7 +1236,7 @@ static int set_rts_threshold(struct usbnet *usbdev, u32 rts_threshold)
52551
52552 netdev_dbg(usbdev->net, "%s(): %i\n", __func__, rts_threshold);
52553
52554 - if (rts_threshold < 0 || rts_threshold > 2347)
52555 + if (rts_threshold > 2347)
52556 rts_threshold = 2347;
52557
52558 tmp = cpu_to_le32(rts_threshold);
52559 diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
52560 index 9bb398b..b0cc047 100644
52561 --- a/drivers/net/wireless/rt2x00/rt2x00.h
52562 +++ b/drivers/net/wireless/rt2x00/rt2x00.h
52563 @@ -375,7 +375,7 @@ struct rt2x00_intf {
52564 * for hardware which doesn't support hardware
52565 * sequence counting.
52566 */
52567 - atomic_t seqno;
52568 + atomic_unchecked_t seqno;
52569 };
52570
52571 static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
52572 diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
52573 index 68b620b..92ecd9e 100644
52574 --- a/drivers/net/wireless/rt2x00/rt2x00queue.c
52575 +++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
52576 @@ -224,9 +224,9 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
52577 * sequence counter given by mac80211.
52578 */
52579 if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags))
52580 - seqno = atomic_add_return(0x10, &intf->seqno);
52581 + seqno = atomic_add_return_unchecked(0x10, &intf->seqno);
52582 else
52583 - seqno = atomic_read(&intf->seqno);
52584 + seqno = atomic_read_unchecked(&intf->seqno);
52585
52586 hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
52587 hdr->seq_ctrl |= cpu_to_le16(seqno);
52588 diff --git a/drivers/net/wireless/ti/wl1251/sdio.c b/drivers/net/wireless/ti/wl1251/sdio.c
52589 index b661f896..ddf7d2b 100644
52590 --- a/drivers/net/wireless/ti/wl1251/sdio.c
52591 +++ b/drivers/net/wireless/ti/wl1251/sdio.c
52592 @@ -282,13 +282,17 @@ static int wl1251_sdio_probe(struct sdio_func *func,
52593
52594 irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING);
52595
52596 - wl1251_sdio_ops.enable_irq = wl1251_enable_line_irq;
52597 - wl1251_sdio_ops.disable_irq = wl1251_disable_line_irq;
52598 + pax_open_kernel();
52599 + *(void **)&wl1251_sdio_ops.enable_irq = wl1251_enable_line_irq;
52600 + *(void **)&wl1251_sdio_ops.disable_irq = wl1251_disable_line_irq;
52601 + pax_close_kernel();
52602
52603 wl1251_info("using dedicated interrupt line");
52604 } else {
52605 - wl1251_sdio_ops.enable_irq = wl1251_sdio_enable_irq;
52606 - wl1251_sdio_ops.disable_irq = wl1251_sdio_disable_irq;
52607 + pax_open_kernel();
52608 + *(void **)&wl1251_sdio_ops.enable_irq = wl1251_sdio_enable_irq;
52609 + *(void **)&wl1251_sdio_ops.disable_irq = wl1251_sdio_disable_irq;
52610 + pax_close_kernel();
52611
52612 wl1251_info("using SDIO interrupt");
52613 }
52614 diff --git a/drivers/net/wireless/ti/wl12xx/main.c b/drivers/net/wireless/ti/wl12xx/main.c
52615 index af0fe2e..d04986b 100644
52616 --- a/drivers/net/wireless/ti/wl12xx/main.c
52617 +++ b/drivers/net/wireless/ti/wl12xx/main.c
52618 @@ -655,7 +655,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
52619 sizeof(wl->conf.mem));
52620
52621 /* read data preparation is only needed by wl127x */
52622 - wl->ops->prepare_read = wl127x_prepare_read;
52623 + pax_open_kernel();
52624 + *(void **)&wl->ops->prepare_read = wl127x_prepare_read;
52625 + pax_close_kernel();
52626
52627 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
52628 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER,
52629 @@ -680,7 +682,9 @@ static int wl12xx_identify_chip(struct wl1271 *wl)
52630 sizeof(wl->conf.mem));
52631
52632 /* read data preparation is only needed by wl127x */
52633 - wl->ops->prepare_read = wl127x_prepare_read;
52634 + pax_open_kernel();
52635 + *(void **)&wl->ops->prepare_read = wl127x_prepare_read;
52636 + pax_close_kernel();
52637
52638 wlcore_set_min_fw_ver(wl, WL127X_CHIP_VER,
52639 WL127X_IFTYPE_SR_VER, WL127X_MAJOR_SR_VER,
52640 diff --git a/drivers/net/wireless/ti/wl18xx/main.c b/drivers/net/wireless/ti/wl18xx/main.c
52641 index 49aca2c..3b9c10c 100644
52642 --- a/drivers/net/wireless/ti/wl18xx/main.c
52643 +++ b/drivers/net/wireless/ti/wl18xx/main.c
52644 @@ -1952,8 +1952,10 @@ static int wl18xx_setup(struct wl1271 *wl)
52645 }
52646
52647 if (!checksum_param) {
52648 - wl18xx_ops.set_rx_csum = NULL;
52649 - wl18xx_ops.init_vif = NULL;
52650 + pax_open_kernel();
52651 + *(void **)&wl18xx_ops.set_rx_csum = NULL;
52652 + *(void **)&wl18xx_ops.init_vif = NULL;
52653 + pax_close_kernel();
52654 }
52655
52656 /* Enable 11a Band only if we have 5G antennas */
52657 diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c
52658 index a912dc0..a8225ba 100644
52659 --- a/drivers/net/wireless/zd1211rw/zd_usb.c
52660 +++ b/drivers/net/wireless/zd1211rw/zd_usb.c
52661 @@ -385,7 +385,7 @@ static inline void handle_regs_int(struct urb *urb)
52662 {
52663 struct zd_usb *usb = urb->context;
52664 struct zd_usb_interrupt *intr = &usb->intr;
52665 - int len;
52666 + unsigned int len;
52667 u16 int_num;
52668
52669 ZD_ASSERT(in_interrupt());
52670 diff --git a/drivers/nfc/nfcwilink.c b/drivers/nfc/nfcwilink.c
52671 index ce2e2cf..f81e500 100644
52672 --- a/drivers/nfc/nfcwilink.c
52673 +++ b/drivers/nfc/nfcwilink.c
52674 @@ -497,7 +497,7 @@ static struct nci_ops nfcwilink_ops = {
52675
52676 static int nfcwilink_probe(struct platform_device *pdev)
52677 {
52678 - static struct nfcwilink *drv;
52679 + struct nfcwilink *drv;
52680 int rc;
52681 __u32 protocols;
52682
52683 diff --git a/drivers/of/fdt.c b/drivers/of/fdt.c
52684 index 6e82bc42..ab4145c 100644
52685 --- a/drivers/of/fdt.c
52686 +++ b/drivers/of/fdt.c
52687 @@ -1161,7 +1161,9 @@ static int __init of_fdt_raw_init(void)
52688 pr_warn("fdt: not creating '/sys/firmware/fdt': CRC check failed\n");
52689 return 0;
52690 }
52691 - of_fdt_raw_attr.size = fdt_totalsize(initial_boot_params);
52692 + pax_open_kernel();
52693 + *(size_t *)&of_fdt_raw_attr.size = fdt_totalsize(initial_boot_params);
52694 + pax_close_kernel();
52695 return sysfs_create_bin_file(firmware_kobj, &of_fdt_raw_attr);
52696 }
52697 late_initcall(of_fdt_raw_init);
52698 diff --git a/drivers/oprofile/buffer_sync.c b/drivers/oprofile/buffer_sync.c
52699 index 82f7000..d6d0447 100644
52700 --- a/drivers/oprofile/buffer_sync.c
52701 +++ b/drivers/oprofile/buffer_sync.c
52702 @@ -345,7 +345,7 @@ static void add_data(struct op_entry *entry, struct mm_struct *mm)
52703 if (cookie == NO_COOKIE)
52704 offset = pc;
52705 if (cookie == INVALID_COOKIE) {
52706 - atomic_inc(&oprofile_stats.sample_lost_no_mapping);
52707 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mapping);
52708 offset = pc;
52709 }
52710 if (cookie != last_cookie) {
52711 @@ -389,14 +389,14 @@ add_sample(struct mm_struct *mm, struct op_sample *s, int in_kernel)
52712 /* add userspace sample */
52713
52714 if (!mm) {
52715 - atomic_inc(&oprofile_stats.sample_lost_no_mm);
52716 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mm);
52717 return 0;
52718 }
52719
52720 cookie = lookup_dcookie(mm, s->eip, &offset);
52721
52722 if (cookie == INVALID_COOKIE) {
52723 - atomic_inc(&oprofile_stats.sample_lost_no_mapping);
52724 + atomic_inc_unchecked(&oprofile_stats.sample_lost_no_mapping);
52725 return 0;
52726 }
52727
52728 @@ -554,7 +554,7 @@ void sync_buffer(int cpu)
52729 /* ignore backtraces if failed to add a sample */
52730 if (state == sb_bt_start) {
52731 state = sb_bt_ignore;
52732 - atomic_inc(&oprofile_stats.bt_lost_no_mapping);
52733 + atomic_inc_unchecked(&oprofile_stats.bt_lost_no_mapping);
52734 }
52735 }
52736 release_mm(mm);
52737 diff --git a/drivers/oprofile/event_buffer.c b/drivers/oprofile/event_buffer.c
52738 index c0cc4e7..44d4e54 100644
52739 --- a/drivers/oprofile/event_buffer.c
52740 +++ b/drivers/oprofile/event_buffer.c
52741 @@ -53,7 +53,7 @@ void add_event_entry(unsigned long value)
52742 }
52743
52744 if (buffer_pos == buffer_size) {
52745 - atomic_inc(&oprofile_stats.event_lost_overflow);
52746 + atomic_inc_unchecked(&oprofile_stats.event_lost_overflow);
52747 return;
52748 }
52749
52750 diff --git a/drivers/oprofile/oprof.c b/drivers/oprofile/oprof.c
52751 index ed2c3ec..deda85a 100644
52752 --- a/drivers/oprofile/oprof.c
52753 +++ b/drivers/oprofile/oprof.c
52754 @@ -110,7 +110,7 @@ static void switch_worker(struct work_struct *work)
52755 if (oprofile_ops.switch_events())
52756 return;
52757
52758 - atomic_inc(&oprofile_stats.multiplex_counter);
52759 + atomic_inc_unchecked(&oprofile_stats.multiplex_counter);
52760 start_switch_worker();
52761 }
52762
52763 diff --git a/drivers/oprofile/oprofile_stats.c b/drivers/oprofile/oprofile_stats.c
52764 index 59659ce..6c860a0 100644
52765 --- a/drivers/oprofile/oprofile_stats.c
52766 +++ b/drivers/oprofile/oprofile_stats.c
52767 @@ -30,11 +30,11 @@ void oprofile_reset_stats(void)
52768 cpu_buf->sample_invalid_eip = 0;
52769 }
52770
52771 - atomic_set(&oprofile_stats.sample_lost_no_mm, 0);
52772 - atomic_set(&oprofile_stats.sample_lost_no_mapping, 0);
52773 - atomic_set(&oprofile_stats.event_lost_overflow, 0);
52774 - atomic_set(&oprofile_stats.bt_lost_no_mapping, 0);
52775 - atomic_set(&oprofile_stats.multiplex_counter, 0);
52776 + atomic_set_unchecked(&oprofile_stats.sample_lost_no_mm, 0);
52777 + atomic_set_unchecked(&oprofile_stats.sample_lost_no_mapping, 0);
52778 + atomic_set_unchecked(&oprofile_stats.event_lost_overflow, 0);
52779 + atomic_set_unchecked(&oprofile_stats.bt_lost_no_mapping, 0);
52780 + atomic_set_unchecked(&oprofile_stats.multiplex_counter, 0);
52781 }
52782
52783
52784 diff --git a/drivers/oprofile/oprofile_stats.h b/drivers/oprofile/oprofile_stats.h
52785 index 1fc622b..8c48fc3 100644
52786 --- a/drivers/oprofile/oprofile_stats.h
52787 +++ b/drivers/oprofile/oprofile_stats.h
52788 @@ -13,11 +13,11 @@
52789 #include <linux/atomic.h>
52790
52791 struct oprofile_stat_struct {
52792 - atomic_t sample_lost_no_mm;
52793 - atomic_t sample_lost_no_mapping;
52794 - atomic_t bt_lost_no_mapping;
52795 - atomic_t event_lost_overflow;
52796 - atomic_t multiplex_counter;
52797 + atomic_unchecked_t sample_lost_no_mm;
52798 + atomic_unchecked_t sample_lost_no_mapping;
52799 + atomic_unchecked_t bt_lost_no_mapping;
52800 + atomic_unchecked_t event_lost_overflow;
52801 + atomic_unchecked_t multiplex_counter;
52802 };
52803
52804 extern struct oprofile_stat_struct oprofile_stats;
52805 diff --git a/drivers/oprofile/oprofilefs.c b/drivers/oprofile/oprofilefs.c
52806 index dd92c5e..dfc04b5 100644
52807 --- a/drivers/oprofile/oprofilefs.c
52808 +++ b/drivers/oprofile/oprofilefs.c
52809 @@ -176,8 +176,8 @@ int oprofilefs_create_ro_ulong(struct dentry *root,
52810
52811 static ssize_t atomic_read_file(struct file *file, char __user *buf, size_t count, loff_t *offset)
52812 {
52813 - atomic_t *val = file->private_data;
52814 - return oprofilefs_ulong_to_user(atomic_read(val), buf, count, offset);
52815 + atomic_unchecked_t *val = file->private_data;
52816 + return oprofilefs_ulong_to_user(atomic_read_unchecked(val), buf, count, offset);
52817 }
52818
52819
52820 @@ -189,7 +189,7 @@ static const struct file_operations atomic_ro_fops = {
52821
52822
52823 int oprofilefs_create_ro_atomic(struct dentry *root,
52824 - char const *name, atomic_t *val)
52825 + char const *name, atomic_unchecked_t *val)
52826 {
52827 return __oprofilefs_create_file(root, name,
52828 &atomic_ro_fops, 0444, val);
52829 diff --git a/drivers/oprofile/timer_int.c b/drivers/oprofile/timer_int.c
52830 index bdef916..88c7dee 100644
52831 --- a/drivers/oprofile/timer_int.c
52832 +++ b/drivers/oprofile/timer_int.c
52833 @@ -93,7 +93,7 @@ static int oprofile_cpu_notify(struct notifier_block *self,
52834 return NOTIFY_OK;
52835 }
52836
52837 -static struct notifier_block __refdata oprofile_cpu_notifier = {
52838 +static struct notifier_block oprofile_cpu_notifier = {
52839 .notifier_call = oprofile_cpu_notify,
52840 };
52841
52842 diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c
52843 index c776333..aa6b325 100644
52844 --- a/drivers/parport/procfs.c
52845 +++ b/drivers/parport/procfs.c
52846 @@ -65,7 +65,7 @@ static int do_active_device(struct ctl_table *table, int write,
52847
52848 *ppos += len;
52849
52850 - return copy_to_user(result, buffer, len) ? -EFAULT : 0;
52851 + return (len > sizeof buffer || copy_to_user(result, buffer, len)) ? -EFAULT : 0;
52852 }
52853
52854 #ifdef CONFIG_PARPORT_1284
52855 @@ -107,7 +107,7 @@ static int do_autoprobe(struct ctl_table *table, int write,
52856
52857 *ppos += len;
52858
52859 - return copy_to_user (result, buffer, len) ? -EFAULT : 0;
52860 + return (len > sizeof buffer || copy_to_user (result, buffer, len)) ? -EFAULT : 0;
52861 }
52862 #endif /* IEEE1284.3 support. */
52863
52864 diff --git a/drivers/pci/host/pci-host-generic.c b/drivers/pci/host/pci-host-generic.c
52865 index ba46e58..90cfc24 100644
52866 --- a/drivers/pci/host/pci-host-generic.c
52867 +++ b/drivers/pci/host/pci-host-generic.c
52868 @@ -26,9 +26,9 @@
52869 #include <linux/platform_device.h>
52870
52871 struct gen_pci_cfg_bus_ops {
52872 + struct pci_ops ops;
52873 u32 bus_shift;
52874 - void __iomem *(*map_bus)(struct pci_bus *, unsigned int, int);
52875 -};
52876 +} __do_const;
52877
52878 struct gen_pci_cfg_windows {
52879 struct resource res;
52880 @@ -56,8 +56,12 @@ static void __iomem *gen_pci_map_cfg_bus_cam(struct pci_bus *bus,
52881 }
52882
52883 static struct gen_pci_cfg_bus_ops gen_pci_cfg_cam_bus_ops = {
52884 + .ops = {
52885 + .map_bus = gen_pci_map_cfg_bus_cam,
52886 + .read = pci_generic_config_read,
52887 + .write = pci_generic_config_write,
52888 + },
52889 .bus_shift = 16,
52890 - .map_bus = gen_pci_map_cfg_bus_cam,
52891 };
52892
52893 static void __iomem *gen_pci_map_cfg_bus_ecam(struct pci_bus *bus,
52894 @@ -72,13 +76,12 @@ static void __iomem *gen_pci_map_cfg_bus_ecam(struct pci_bus *bus,
52895 }
52896
52897 static struct gen_pci_cfg_bus_ops gen_pci_cfg_ecam_bus_ops = {
52898 + .ops = {
52899 + .map_bus = gen_pci_map_cfg_bus_ecam,
52900 + .read = pci_generic_config_read,
52901 + .write = pci_generic_config_write,
52902 + },
52903 .bus_shift = 20,
52904 - .map_bus = gen_pci_map_cfg_bus_ecam,
52905 -};
52906 -
52907 -static struct pci_ops gen_pci_ops = {
52908 - .read = pci_generic_config_read,
52909 - .write = pci_generic_config_write,
52910 };
52911
52912 static const struct of_device_id gen_pci_of_match[] = {
52913 @@ -219,7 +222,6 @@ static int gen_pci_probe(struct platform_device *pdev)
52914 .private_data = (void **)&pci,
52915 .setup = gen_pci_setup,
52916 .map_irq = of_irq_parse_and_map_pci,
52917 - .ops = &gen_pci_ops,
52918 };
52919
52920 if (!pci)
52921 @@ -241,7 +243,7 @@ static int gen_pci_probe(struct platform_device *pdev)
52922
52923 of_id = of_match_node(gen_pci_of_match, np);
52924 pci->cfg.ops = of_id->data;
52925 - gen_pci_ops.map_bus = pci->cfg.ops->map_bus;
52926 + hw.ops = &pci->cfg.ops->ops;
52927 pci->host.dev.parent = dev;
52928 INIT_LIST_HEAD(&pci->host.windows);
52929 INIT_LIST_HEAD(&pci->resources);
52930 diff --git a/drivers/pci/hotplug/acpiphp_ibm.c b/drivers/pci/hotplug/acpiphp_ibm.c
52931 index 6ca2399..68d866b 100644
52932 --- a/drivers/pci/hotplug/acpiphp_ibm.c
52933 +++ b/drivers/pci/hotplug/acpiphp_ibm.c
52934 @@ -452,7 +452,9 @@ static int __init ibm_acpiphp_init(void)
52935 goto init_cleanup;
52936 }
52937
52938 - ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL);
52939 + pax_open_kernel();
52940 + *(size_t *)&ibm_apci_table_attr.size = ibm_get_table_from_acpi(NULL);
52941 + pax_close_kernel();
52942 retval = sysfs_create_bin_file(sysdir, &ibm_apci_table_attr);
52943
52944 return retval;
52945 diff --git a/drivers/pci/hotplug/cpcihp_generic.c b/drivers/pci/hotplug/cpcihp_generic.c
52946 index 66b7bbe..26bee78 100644
52947 --- a/drivers/pci/hotplug/cpcihp_generic.c
52948 +++ b/drivers/pci/hotplug/cpcihp_generic.c
52949 @@ -73,7 +73,6 @@ static u16 port;
52950 static unsigned int enum_bit;
52951 static u8 enum_mask;
52952
52953 -static struct cpci_hp_controller_ops generic_hpc_ops;
52954 static struct cpci_hp_controller generic_hpc;
52955
52956 static int __init validate_parameters(void)
52957 @@ -139,6 +138,10 @@ static int query_enum(void)
52958 return ((value & enum_mask) == enum_mask);
52959 }
52960
52961 +static struct cpci_hp_controller_ops generic_hpc_ops = {
52962 + .query_enum = query_enum,
52963 +};
52964 +
52965 static int __init cpcihp_generic_init(void)
52966 {
52967 int status;
52968 @@ -165,7 +168,6 @@ static int __init cpcihp_generic_init(void)
52969 pci_dev_put(dev);
52970
52971 memset(&generic_hpc, 0, sizeof (struct cpci_hp_controller));
52972 - generic_hpc_ops.query_enum = query_enum;
52973 generic_hpc.ops = &generic_hpc_ops;
52974
52975 status = cpci_hp_register_controller(&generic_hpc);
52976 diff --git a/drivers/pci/hotplug/cpcihp_zt5550.c b/drivers/pci/hotplug/cpcihp_zt5550.c
52977 index 7ecf34e..effed62 100644
52978 --- a/drivers/pci/hotplug/cpcihp_zt5550.c
52979 +++ b/drivers/pci/hotplug/cpcihp_zt5550.c
52980 @@ -59,7 +59,6 @@
52981 /* local variables */
52982 static bool debug;
52983 static bool poll;
52984 -static struct cpci_hp_controller_ops zt5550_hpc_ops;
52985 static struct cpci_hp_controller zt5550_hpc;
52986
52987 /* Primary cPCI bus bridge device */
52988 @@ -204,6 +203,10 @@ static int zt5550_hc_disable_irq(void)
52989 return 0;
52990 }
52991
52992 +static struct cpci_hp_controller_ops zt5550_hpc_ops = {
52993 + .query_enum = zt5550_hc_query_enum,
52994 +};
52995 +
52996 static int zt5550_hc_init_one (struct pci_dev *pdev, const struct pci_device_id *ent)
52997 {
52998 int status;
52999 @@ -215,16 +218,17 @@ static int zt5550_hc_init_one (struct pci_dev *pdev, const struct pci_device_id
53000 dbg("returned from zt5550_hc_config");
53001
53002 memset(&zt5550_hpc, 0, sizeof (struct cpci_hp_controller));
53003 - zt5550_hpc_ops.query_enum = zt5550_hc_query_enum;
53004 zt5550_hpc.ops = &zt5550_hpc_ops;
53005 if (!poll) {
53006 zt5550_hpc.irq = hc_dev->irq;
53007 zt5550_hpc.irq_flags = IRQF_SHARED;
53008 zt5550_hpc.dev_id = hc_dev;
53009
53010 - zt5550_hpc_ops.enable_irq = zt5550_hc_enable_irq;
53011 - zt5550_hpc_ops.disable_irq = zt5550_hc_disable_irq;
53012 - zt5550_hpc_ops.check_irq = zt5550_hc_check_irq;
53013 + pax_open_kernel();
53014 + *(void **)&zt5550_hpc_ops.enable_irq = zt5550_hc_enable_irq;
53015 + *(void **)&zt5550_hpc_ops.disable_irq = zt5550_hc_disable_irq;
53016 + *(void **)&zt5550_hpc_ops.check_irq = zt5550_hc_check_irq;
53017 + pax_open_kernel();
53018 } else {
53019 info("using ENUM# polling mode");
53020 }
53021 diff --git a/drivers/pci/hotplug/cpqphp_nvram.c b/drivers/pci/hotplug/cpqphp_nvram.c
53022 index 1e08ff8c..3cd145f 100644
53023 --- a/drivers/pci/hotplug/cpqphp_nvram.c
53024 +++ b/drivers/pci/hotplug/cpqphp_nvram.c
53025 @@ -425,8 +425,10 @@ static u32 store_HRT (void __iomem *rom_start)
53026
53027 void compaq_nvram_init (void __iomem *rom_start)
53028 {
53029 +#ifndef CONFIG_PAX_KERNEXEC
53030 if (rom_start)
53031 compaq_int15_entry_point = (rom_start + ROM_INT15_PHY_ADDR - ROM_PHY_ADDR);
53032 +#endif
53033
53034 dbg("int15 entry = %p\n", compaq_int15_entry_point);
53035
53036 diff --git a/drivers/pci/hotplug/pci_hotplug_core.c b/drivers/pci/hotplug/pci_hotplug_core.c
53037 index 56d8486..f26113f 100644
53038 --- a/drivers/pci/hotplug/pci_hotplug_core.c
53039 +++ b/drivers/pci/hotplug/pci_hotplug_core.c
53040 @@ -436,8 +436,10 @@ int __pci_hp_register(struct hotplug_slot *slot, struct pci_bus *bus,
53041 return -EINVAL;
53042 }
53043
53044 - slot->ops->owner = owner;
53045 - slot->ops->mod_name = mod_name;
53046 + pax_open_kernel();
53047 + *(struct module **)&slot->ops->owner = owner;
53048 + *(const char **)&slot->ops->mod_name = mod_name;
53049 + pax_close_kernel();
53050
53051 mutex_lock(&pci_hp_mutex);
53052 /*
53053 diff --git a/drivers/pci/hotplug/pciehp_core.c b/drivers/pci/hotplug/pciehp_core.c
53054 index 612b21a..9494a5e 100644
53055 --- a/drivers/pci/hotplug/pciehp_core.c
53056 +++ b/drivers/pci/hotplug/pciehp_core.c
53057 @@ -87,7 +87,7 @@ static int init_slot(struct controller *ctrl)
53058 struct slot *slot = ctrl->slot;
53059 struct hotplug_slot *hotplug = NULL;
53060 struct hotplug_slot_info *info = NULL;
53061 - struct hotplug_slot_ops *ops = NULL;
53062 + hotplug_slot_ops_no_const *ops = NULL;
53063 char name[SLOT_NAME_SIZE];
53064 int retval = -ENOMEM;
53065
53066 diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
53067 index f66be86..6cbcabb 100644
53068 --- a/drivers/pci/msi.c
53069 +++ b/drivers/pci/msi.c
53070 @@ -492,8 +492,8 @@ static int populate_msi_sysfs(struct pci_dev *pdev)
53071 {
53072 struct attribute **msi_attrs;
53073 struct attribute *msi_attr;
53074 - struct device_attribute *msi_dev_attr;
53075 - struct attribute_group *msi_irq_group;
53076 + device_attribute_no_const *msi_dev_attr;
53077 + attribute_group_no_const *msi_irq_group;
53078 const struct attribute_group **msi_irq_groups;
53079 struct msi_desc *entry;
53080 int ret = -ENOMEM;
53081 @@ -552,7 +552,7 @@ error_attrs:
53082 count = 0;
53083 msi_attr = msi_attrs[count];
53084 while (msi_attr) {
53085 - msi_dev_attr = container_of(msi_attr, struct device_attribute, attr);
53086 + msi_dev_attr = container_of(msi_attr, device_attribute_no_const, attr);
53087 kfree(msi_attr->name);
53088 kfree(msi_dev_attr);
53089 ++count;
53090 @@ -1236,12 +1236,14 @@ static void pci_msi_domain_update_dom_ops(struct msi_domain_info *info)
53091 if (ops == NULL) {
53092 info->ops = &pci_msi_domain_ops_default;
53093 } else {
53094 + pax_open_kernel();
53095 if (ops->set_desc == NULL)
53096 - ops->set_desc = pci_msi_domain_set_desc;
53097 + *(void **)&ops->set_desc = pci_msi_domain_set_desc;
53098 if (ops->msi_check == NULL)
53099 - ops->msi_check = pci_msi_domain_check_cap;
53100 + *(void **)&ops->msi_check = pci_msi_domain_check_cap;
53101 if (ops->handle_error == NULL)
53102 - ops->handle_error = pci_msi_domain_handle_error;
53103 + *(void **)&ops->handle_error = pci_msi_domain_handle_error;
53104 + pax_close_kernel();
53105 }
53106 }
53107
53108 @@ -1250,8 +1252,11 @@ static void pci_msi_domain_update_chip_ops(struct msi_domain_info *info)
53109 struct irq_chip *chip = info->chip;
53110
53111 BUG_ON(!chip);
53112 - if (!chip->irq_write_msi_msg)
53113 - chip->irq_write_msi_msg = pci_msi_domain_write_msg;
53114 + if (!chip->irq_write_msi_msg) {
53115 + pax_open_kernel();
53116 + *(void **)&chip->irq_write_msi_msg = pci_msi_domain_write_msg;
53117 + pax_close_kernel();
53118 + }
53119 }
53120
53121 /**
53122 diff --git a/drivers/pci/pci-sysfs.c b/drivers/pci/pci-sysfs.c
53123 index 9261868..a403263 100644
53124 --- a/drivers/pci/pci-sysfs.c
53125 +++ b/drivers/pci/pci-sysfs.c
53126 @@ -216,7 +216,10 @@ static ssize_t numa_node_store(struct device *dev,
53127 if (ret)
53128 return ret;
53129
53130 - if (node >= MAX_NUMNODES || !node_online(node))
53131 + if (node < NUMA_NO_NODE || node >= MAX_NUMNODES)
53132 + return -EINVAL;
53133 +
53134 + if (node != NUMA_NO_NODE && !node_online(node))
53135 return -EINVAL;
53136
53137 add_taint(TAINT_FIRMWARE_WORKAROUND, LOCKDEP_STILL_OK);
53138 @@ -1140,7 +1143,7 @@ static int pci_create_attr(struct pci_dev *pdev, int num, int write_combine)
53139 {
53140 /* allocate attribute structure, piggyback attribute name */
53141 int name_len = write_combine ? 13 : 10;
53142 - struct bin_attribute *res_attr;
53143 + bin_attribute_no_const *res_attr;
53144 int retval;
53145
53146 res_attr = kzalloc(sizeof(*res_attr) + name_len, GFP_ATOMIC);
53147 @@ -1317,7 +1320,7 @@ static struct device_attribute reset_attr = __ATTR(reset, 0200, NULL, reset_stor
53148 static int pci_create_capabilities_sysfs(struct pci_dev *dev)
53149 {
53150 int retval;
53151 - struct bin_attribute *attr;
53152 + bin_attribute_no_const *attr;
53153
53154 /* If the device has VPD, try to expose it in sysfs. */
53155 if (dev->vpd) {
53156 @@ -1364,7 +1367,7 @@ int __must_check pci_create_sysfs_dev_files(struct pci_dev *pdev)
53157 {
53158 int retval;
53159 int rom_size = 0;
53160 - struct bin_attribute *attr;
53161 + bin_attribute_no_const *attr;
53162
53163 if (!sysfs_initialized)
53164 return -EACCES;
53165 diff --git a/drivers/pci/pci.h b/drivers/pci/pci.h
53166 index 4ff0ff1..e309fb0 100644
53167 --- a/drivers/pci/pci.h
53168 +++ b/drivers/pci/pci.h
53169 @@ -99,7 +99,7 @@ struct pci_vpd_ops {
53170 struct pci_vpd {
53171 unsigned int len;
53172 const struct pci_vpd_ops *ops;
53173 - struct bin_attribute *attr; /* descriptor for sysfs VPD entry */
53174 + bin_attribute_no_const *attr; /* descriptor for sysfs VPD entry */
53175 };
53176
53177 int pci_vpd_pci22_init(struct pci_dev *dev);
53178 diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
53179 index 317e355..21f7b91 100644
53180 --- a/drivers/pci/pcie/aspm.c
53181 +++ b/drivers/pci/pcie/aspm.c
53182 @@ -27,9 +27,9 @@
53183 #define MODULE_PARAM_PREFIX "pcie_aspm."
53184
53185 /* Note: those are not register definitions */
53186 -#define ASPM_STATE_L0S_UP (1) /* Upstream direction L0s state */
53187 -#define ASPM_STATE_L0S_DW (2) /* Downstream direction L0s state */
53188 -#define ASPM_STATE_L1 (4) /* L1 state */
53189 +#define ASPM_STATE_L0S_UP (1U) /* Upstream direction L0s state */
53190 +#define ASPM_STATE_L0S_DW (2U) /* Downstream direction L0s state */
53191 +#define ASPM_STATE_L1 (4U) /* L1 state */
53192 #define ASPM_STATE_L0S (ASPM_STATE_L0S_UP | ASPM_STATE_L0S_DW)
53193 #define ASPM_STATE_ALL (ASPM_STATE_L0S | ASPM_STATE_L1)
53194
53195 diff --git a/drivers/pci/pcie/portdrv_pci.c b/drivers/pci/pcie/portdrv_pci.c
53196 index be35da2..ec16cdb 100644
53197 --- a/drivers/pci/pcie/portdrv_pci.c
53198 +++ b/drivers/pci/pcie/portdrv_pci.c
53199 @@ -324,7 +324,7 @@ static int __init dmi_pcie_pme_disable_msi(const struct dmi_system_id *d)
53200 return 0;
53201 }
53202
53203 -static struct dmi_system_id __initdata pcie_portdrv_dmi_table[] = {
53204 +static const struct dmi_system_id __initconst pcie_portdrv_dmi_table[] = {
53205 /*
53206 * Boxes that should not use MSI for PCIe PME signaling.
53207 */
53208 diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
53209 index f6ae0d0..af897bc 100644
53210 --- a/drivers/pci/probe.c
53211 +++ b/drivers/pci/probe.c
53212 @@ -176,7 +176,7 @@ int __pci_read_base(struct pci_dev *dev, enum pci_bar_type type,
53213 u16 orig_cmd;
53214 struct pci_bus_region region, inverted_region;
53215
53216 - mask = type ? PCI_ROM_ADDRESS_MASK : ~0;
53217 + mask = type ? (u32)PCI_ROM_ADDRESS_MASK : ~0;
53218
53219 /* No printks while decoding is disabled! */
53220 if (!dev->mmio_always_on) {
53221 diff --git a/drivers/pci/proc.c b/drivers/pci/proc.c
53222 index 3f155e7..0f4b1f0 100644
53223 --- a/drivers/pci/proc.c
53224 +++ b/drivers/pci/proc.c
53225 @@ -434,7 +434,16 @@ static const struct file_operations proc_bus_pci_dev_operations = {
53226 static int __init pci_proc_init(void)
53227 {
53228 struct pci_dev *dev = NULL;
53229 +
53230 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
53231 +#ifdef CONFIG_GRKERNSEC_PROC_USER
53232 + proc_bus_pci_dir = proc_mkdir_mode("bus/pci", S_IRUSR | S_IXUSR, NULL);
53233 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
53234 + proc_bus_pci_dir = proc_mkdir_mode("bus/pci", S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP, NULL);
53235 +#endif
53236 +#else
53237 proc_bus_pci_dir = proc_mkdir("bus/pci", NULL);
53238 +#endif
53239 proc_create("devices", 0, proc_bus_pci_dir,
53240 &proc_bus_pci_dev_operations);
53241 proc_initialized = 1;
53242 diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
53243 index 2deb130..8194e13 100644
53244 --- a/drivers/pinctrl/pinctrl-at91.c
53245 +++ b/drivers/pinctrl/pinctrl-at91.c
53246 @@ -24,6 +24,7 @@
53247 #include <linux/pinctrl/pinmux.h>
53248 /* Since we request GPIOs from ourself */
53249 #include <linux/pinctrl/consumer.h>
53250 +#include <asm/pgtable.h>
53251
53252 #include "pinctrl-at91.h"
53253 #include "core.h"
53254 @@ -1656,7 +1657,9 @@ static int at91_gpio_of_irq_setup(struct platform_device *pdev,
53255 at91_gpio->pioc_hwirq = irqd_to_hwirq(d);
53256
53257 /* Setup proper .irq_set_type function */
53258 - gpio_irqchip.irq_set_type = at91_gpio->ops->irq_type;
53259 + pax_open_kernel();
53260 + *(void **)&gpio_irqchip.irq_set_type = at91_gpio->ops->irq_type;
53261 + pax_close_kernel();
53262
53263 /* Disable irqs of this PIO controller */
53264 writel_relaxed(~0, at91_gpio->regbase + PIO_IDR);
53265 diff --git a/drivers/platform/chrome/chromeos_pstore.c b/drivers/platform/chrome/chromeos_pstore.c
53266 index 3474920..acc9581 100644
53267 --- a/drivers/platform/chrome/chromeos_pstore.c
53268 +++ b/drivers/platform/chrome/chromeos_pstore.c
53269 @@ -13,7 +13,7 @@
53270 #include <linux/platform_device.h>
53271 #include <linux/pstore_ram.h>
53272
53273 -static struct dmi_system_id chromeos_pstore_dmi_table[] __initdata = {
53274 +static const struct dmi_system_id chromeos_pstore_dmi_table[] __initconst = {
53275 {
53276 /*
53277 * Today all Chromebooks/boxes ship with Google_* as version and
53278 diff --git a/drivers/platform/x86/alienware-wmi.c b/drivers/platform/x86/alienware-wmi.c
53279 index 1e1e594..8fe59c5 100644
53280 --- a/drivers/platform/x86/alienware-wmi.c
53281 +++ b/drivers/platform/x86/alienware-wmi.c
53282 @@ -150,7 +150,7 @@ struct wmax_led_args {
53283 } __packed;
53284
53285 static struct platform_device *platform_device;
53286 -static struct device_attribute *zone_dev_attrs;
53287 +static device_attribute_no_const *zone_dev_attrs;
53288 static struct attribute **zone_attrs;
53289 static struct platform_zone *zone_data;
53290
53291 @@ -160,7 +160,7 @@ static struct platform_driver platform_driver = {
53292 }
53293 };
53294
53295 -static struct attribute_group zone_attribute_group = {
53296 +static attribute_group_no_const zone_attribute_group = {
53297 .name = "rgb_zones",
53298 };
53299
53300 diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
53301 index efbc3f0..18ae682 100644
53302 --- a/drivers/platform/x86/asus-wmi.c
53303 +++ b/drivers/platform/x86/asus-wmi.c
53304 @@ -1868,6 +1868,10 @@ static int show_dsts(struct seq_file *m, void *data)
53305 int err;
53306 u32 retval = -1;
53307
53308 +#ifdef CONFIG_GRKERNSEC_KMEM
53309 + return -EPERM;
53310 +#endif
53311 +
53312 err = asus_wmi_get_devstate(asus, asus->debug.dev_id, &retval);
53313
53314 if (err < 0)
53315 @@ -1884,6 +1888,10 @@ static int show_devs(struct seq_file *m, void *data)
53316 int err;
53317 u32 retval = -1;
53318
53319 +#ifdef CONFIG_GRKERNSEC_KMEM
53320 + return -EPERM;
53321 +#endif
53322 +
53323 err = asus_wmi_set_devstate(asus->debug.dev_id, asus->debug.ctrl_param,
53324 &retval);
53325
53326 @@ -1908,6 +1916,10 @@ static int show_call(struct seq_file *m, void *data)
53327 union acpi_object *obj;
53328 acpi_status status;
53329
53330 +#ifdef CONFIG_GRKERNSEC_KMEM
53331 + return -EPERM;
53332 +#endif
53333 +
53334 status = wmi_evaluate_method(ASUS_WMI_MGMT_GUID,
53335 1, asus->debug.method_id,
53336 &input, &output);
53337 diff --git a/drivers/platform/x86/compal-laptop.c b/drivers/platform/x86/compal-laptop.c
53338 index f2706d2..850edfa4 100644
53339 --- a/drivers/platform/x86/compal-laptop.c
53340 +++ b/drivers/platform/x86/compal-laptop.c
53341 @@ -765,7 +765,7 @@ static int dmi_check_cb_extra(const struct dmi_system_id *id)
53342 return 1;
53343 }
53344
53345 -static struct dmi_system_id __initdata compal_dmi_table[] = {
53346 +static const struct dmi_system_id __initconst compal_dmi_table[] = {
53347 {
53348 .ident = "FL90/IFL90",
53349 .matches = {
53350 diff --git a/drivers/platform/x86/hdaps.c b/drivers/platform/x86/hdaps.c
53351 index 458e6c9..089aee7 100644
53352 --- a/drivers/platform/x86/hdaps.c
53353 +++ b/drivers/platform/x86/hdaps.c
53354 @@ -514,7 +514,7 @@ static int __init hdaps_dmi_match_invert(const struct dmi_system_id *id)
53355 "ThinkPad T42p", so the order of the entries matters.
53356 If your ThinkPad is not recognized, please update to latest
53357 BIOS. This is especially the case for some R52 ThinkPads. */
53358 -static struct dmi_system_id __initdata hdaps_whitelist[] = {
53359 +static const struct dmi_system_id __initconst hdaps_whitelist[] = {
53360 HDAPS_DMI_MATCH_INVERT("IBM", "ThinkPad R50p", HDAPS_BOTH_AXES),
53361 HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R50"),
53362 HDAPS_DMI_MATCH_NORMAL("IBM", "ThinkPad R51"),
53363 diff --git a/drivers/platform/x86/ibm_rtl.c b/drivers/platform/x86/ibm_rtl.c
53364 index 97c2be1..2ee50ce 100644
53365 --- a/drivers/platform/x86/ibm_rtl.c
53366 +++ b/drivers/platform/x86/ibm_rtl.c
53367 @@ -227,7 +227,7 @@ static void rtl_teardown_sysfs(void) {
53368 }
53369
53370
53371 -static struct dmi_system_id __initdata ibm_rtl_dmi_table[] = {
53372 +static const struct dmi_system_id __initconst ibm_rtl_dmi_table[] = {
53373 { \
53374 .matches = { \
53375 DMI_MATCH(DMI_SYS_VENDOR, "IBM"), \
53376 diff --git a/drivers/platform/x86/intel_oaktrail.c b/drivers/platform/x86/intel_oaktrail.c
53377 index 6aa33c4..cfb5425 100644
53378 --- a/drivers/platform/x86/intel_oaktrail.c
53379 +++ b/drivers/platform/x86/intel_oaktrail.c
53380 @@ -299,7 +299,7 @@ static int dmi_check_cb(const struct dmi_system_id *id)
53381 return 0;
53382 }
53383
53384 -static struct dmi_system_id __initdata oaktrail_dmi_table[] = {
53385 +static const struct dmi_system_id __initconst oaktrail_dmi_table[] = {
53386 {
53387 .ident = "OakTrail platform",
53388 .matches = {
53389 diff --git a/drivers/platform/x86/msi-laptop.c b/drivers/platform/x86/msi-laptop.c
53390 index 4231770..10a6caf 100644
53391 --- a/drivers/platform/x86/msi-laptop.c
53392 +++ b/drivers/platform/x86/msi-laptop.c
53393 @@ -605,7 +605,7 @@ static int dmi_check_cb(const struct dmi_system_id *dmi)
53394 return 1;
53395 }
53396
53397 -static struct dmi_system_id __initdata msi_dmi_table[] = {
53398 +static const struct dmi_system_id __initconst msi_dmi_table[] = {
53399 {
53400 .ident = "MSI S270",
53401 .matches = {
53402 @@ -1000,12 +1000,14 @@ static int __init load_scm_model_init(struct platform_device *sdev)
53403
53404 if (!quirks->ec_read_only) {
53405 /* allow userland write sysfs file */
53406 - dev_attr_bluetooth.store = store_bluetooth;
53407 - dev_attr_wlan.store = store_wlan;
53408 - dev_attr_threeg.store = store_threeg;
53409 - dev_attr_bluetooth.attr.mode |= S_IWUSR;
53410 - dev_attr_wlan.attr.mode |= S_IWUSR;
53411 - dev_attr_threeg.attr.mode |= S_IWUSR;
53412 + pax_open_kernel();
53413 + *(void **)&dev_attr_bluetooth.store = store_bluetooth;
53414 + *(void **)&dev_attr_wlan.store = store_wlan;
53415 + *(void **)&dev_attr_threeg.store = store_threeg;
53416 + *(umode_t *)&dev_attr_bluetooth.attr.mode |= S_IWUSR;
53417 + *(umode_t *)&dev_attr_wlan.attr.mode |= S_IWUSR;
53418 + *(umode_t *)&dev_attr_threeg.attr.mode |= S_IWUSR;
53419 + pax_close_kernel();
53420 }
53421
53422 /* disable hardware control by fn key */
53423 diff --git a/drivers/platform/x86/msi-wmi.c b/drivers/platform/x86/msi-wmi.c
53424 index 978e6d6..1f0b37d 100644
53425 --- a/drivers/platform/x86/msi-wmi.c
53426 +++ b/drivers/platform/x86/msi-wmi.c
53427 @@ -184,7 +184,7 @@ static const struct backlight_ops msi_backlight_ops = {
53428 static void msi_wmi_notify(u32 value, void *context)
53429 {
53430 struct acpi_buffer response = { ACPI_ALLOCATE_BUFFER, NULL };
53431 - static struct key_entry *key;
53432 + struct key_entry *key;
53433 union acpi_object *obj;
53434 acpi_status status;
53435
53436 diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
53437 index 8c146e2..356c62e 100644
53438 --- a/drivers/platform/x86/samsung-laptop.c
53439 +++ b/drivers/platform/x86/samsung-laptop.c
53440 @@ -1567,7 +1567,7 @@ static int __init samsung_dmi_matched(const struct dmi_system_id *d)
53441 return 0;
53442 }
53443
53444 -static struct dmi_system_id __initdata samsung_dmi_table[] = {
53445 +static const struct dmi_system_id __initconst samsung_dmi_table[] = {
53446 {
53447 .matches = {
53448 DMI_MATCH(DMI_SYS_VENDOR,
53449 diff --git a/drivers/platform/x86/samsung-q10.c b/drivers/platform/x86/samsung-q10.c
53450 index e6aac72..e11ff24 100644
53451 --- a/drivers/platform/x86/samsung-q10.c
53452 +++ b/drivers/platform/x86/samsung-q10.c
53453 @@ -95,7 +95,7 @@ static int __init dmi_check_callback(const struct dmi_system_id *id)
53454 return 1;
53455 }
53456
53457 -static struct dmi_system_id __initdata samsungq10_dmi_table[] = {
53458 +static const struct dmi_system_id __initconst samsungq10_dmi_table[] = {
53459 {
53460 .ident = "Samsung Q10",
53461 .matches = {
53462 diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
53463 index aeb80d1..3eb376b 100644
53464 --- a/drivers/platform/x86/sony-laptop.c
53465 +++ b/drivers/platform/x86/sony-laptop.c
53466 @@ -2527,7 +2527,7 @@ static void sony_nc_gfx_switch_cleanup(struct platform_device *pd)
53467 }
53468
53469 /* High speed charging function */
53470 -static struct device_attribute *hsc_handle;
53471 +static device_attribute_no_const *hsc_handle;
53472
53473 static ssize_t sony_nc_highspeed_charging_store(struct device *dev,
53474 struct device_attribute *attr,
53475 @@ -2601,7 +2601,7 @@ static void sony_nc_highspeed_charging_cleanup(struct platform_device *pd)
53476 }
53477
53478 /* low battery function */
53479 -static struct device_attribute *lowbatt_handle;
53480 +static device_attribute_no_const *lowbatt_handle;
53481
53482 static ssize_t sony_nc_lowbatt_store(struct device *dev,
53483 struct device_attribute *attr,
53484 @@ -2667,7 +2667,7 @@ static void sony_nc_lowbatt_cleanup(struct platform_device *pd)
53485 }
53486
53487 /* fan speed function */
53488 -static struct device_attribute *fan_handle, *hsf_handle;
53489 +static device_attribute_no_const *fan_handle, *hsf_handle;
53490
53491 static ssize_t sony_nc_hsfan_store(struct device *dev,
53492 struct device_attribute *attr,
53493 @@ -2774,7 +2774,7 @@ static void sony_nc_fanspeed_cleanup(struct platform_device *pd)
53494 }
53495
53496 /* USB charge function */
53497 -static struct device_attribute *uc_handle;
53498 +static device_attribute_no_const *uc_handle;
53499
53500 static ssize_t sony_nc_usb_charge_store(struct device *dev,
53501 struct device_attribute *attr,
53502 @@ -2848,7 +2848,7 @@ static void sony_nc_usb_charge_cleanup(struct platform_device *pd)
53503 }
53504
53505 /* Panel ID function */
53506 -static struct device_attribute *panel_handle;
53507 +static device_attribute_no_const *panel_handle;
53508
53509 static ssize_t sony_nc_panelid_show(struct device *dev,
53510 struct device_attribute *attr, char *buffer)
53511 @@ -2895,7 +2895,7 @@ static void sony_nc_panelid_cleanup(struct platform_device *pd)
53512 }
53513
53514 /* smart connect function */
53515 -static struct device_attribute *sc_handle;
53516 +static device_attribute_no_const *sc_handle;
53517
53518 static ssize_t sony_nc_smart_conn_store(struct device *dev,
53519 struct device_attribute *attr,
53520 @@ -4851,7 +4851,7 @@ static struct acpi_driver sony_pic_driver = {
53521 .drv.pm = &sony_pic_pm,
53522 };
53523
53524 -static struct dmi_system_id __initdata sonypi_dmi_table[] = {
53525 +static const struct dmi_system_id __initconst sonypi_dmi_table[] = {
53526 {
53527 .ident = "Sony Vaio",
53528 .matches = {
53529 diff --git a/drivers/platform/x86/thinkpad_acpi.c b/drivers/platform/x86/thinkpad_acpi.c
53530 index 33e488c..417aaea 100644
53531 --- a/drivers/platform/x86/thinkpad_acpi.c
53532 +++ b/drivers/platform/x86/thinkpad_acpi.c
53533 @@ -2460,10 +2460,10 @@ static void hotkey_compare_and_issue_event(struct tp_nvram_state *oldn,
53534 && !tp_features.bright_unkfw)
53535 TPACPI_MAY_SEND_KEY(TP_ACPI_HOTKEYSCAN_FNHOME);
53536 }
53537 +}
53538
53539 #undef TPACPI_COMPARE_KEY
53540 #undef TPACPI_MAY_SEND_KEY
53541 -}
53542
53543 /*
53544 * Polling driver
53545 diff --git a/drivers/pnp/pnpbios/bioscalls.c b/drivers/pnp/pnpbios/bioscalls.c
53546 index 438d4c7..ca8a2fb 100644
53547 --- a/drivers/pnp/pnpbios/bioscalls.c
53548 +++ b/drivers/pnp/pnpbios/bioscalls.c
53549 @@ -59,7 +59,7 @@ do { \
53550 set_desc_limit(&gdt[(selname) >> 3], (size) - 1); \
53551 } while(0)
53552
53553 -static struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4092,
53554 +static const struct desc_struct bad_bios_desc = GDT_ENTRY_INIT(0x4093,
53555 (unsigned long)__va(0x400UL), PAGE_SIZE - 0x400 - 1);
53556
53557 /*
53558 @@ -96,7 +96,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
53559
53560 cpu = get_cpu();
53561 save_desc_40 = get_cpu_gdt_table(cpu)[0x40 / 8];
53562 +
53563 + pax_open_kernel();
53564 get_cpu_gdt_table(cpu)[0x40 / 8] = bad_bios_desc;
53565 + pax_close_kernel();
53566
53567 /* On some boxes IRQ's during PnP BIOS calls are deadly. */
53568 spin_lock_irqsave(&pnp_bios_lock, flags);
53569 @@ -134,7 +137,10 @@ static inline u16 call_pnp_bios(u16 func, u16 arg1, u16 arg2, u16 arg3,
53570 :"memory");
53571 spin_unlock_irqrestore(&pnp_bios_lock, flags);
53572
53573 + pax_open_kernel();
53574 get_cpu_gdt_table(cpu)[0x40 / 8] = save_desc_40;
53575 + pax_close_kernel();
53576 +
53577 put_cpu();
53578
53579 /* If we get here and this is set then the PnP BIOS faulted on us. */
53580 @@ -468,7 +474,7 @@ int pnp_bios_read_escd(char *data, u32 nvram_base)
53581 return status;
53582 }
53583
53584 -void pnpbios_calls_init(union pnp_bios_install_struct *header)
53585 +void __init pnpbios_calls_init(union pnp_bios_install_struct *header)
53586 {
53587 int i;
53588
53589 @@ -476,6 +482,8 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
53590 pnp_bios_callpoint.offset = header->fields.pm16offset;
53591 pnp_bios_callpoint.segment = PNP_CS16;
53592
53593 + pax_open_kernel();
53594 +
53595 for_each_possible_cpu(i) {
53596 struct desc_struct *gdt = get_cpu_gdt_table(i);
53597 if (!gdt)
53598 @@ -487,4 +495,6 @@ void pnpbios_calls_init(union pnp_bios_install_struct *header)
53599 set_desc_base(&gdt[GDT_ENTRY_PNPBIOS_DS],
53600 (unsigned long)__va(header->fields.pm16dseg));
53601 }
53602 +
53603 + pax_close_kernel();
53604 }
53605 diff --git a/drivers/pnp/pnpbios/core.c b/drivers/pnp/pnpbios/core.c
53606 index facd43b..b291260 100644
53607 --- a/drivers/pnp/pnpbios/core.c
53608 +++ b/drivers/pnp/pnpbios/core.c
53609 @@ -494,7 +494,7 @@ static int __init exploding_pnp_bios(const struct dmi_system_id *d)
53610 return 0;
53611 }
53612
53613 -static struct dmi_system_id pnpbios_dmi_table[] __initdata = {
53614 +static const struct dmi_system_id pnpbios_dmi_table[] __initconst = {
53615 { /* PnPBIOS GPF on boot */
53616 .callback = exploding_pnp_bios,
53617 .ident = "Higraded P14H",
53618 diff --git a/drivers/power/pda_power.c b/drivers/power/pda_power.c
53619 index dfe1ee8..67e820c 100644
53620 --- a/drivers/power/pda_power.c
53621 +++ b/drivers/power/pda_power.c
53622 @@ -38,7 +38,11 @@ static struct power_supply *pda_psy_ac, *pda_psy_usb;
53623
53624 #if IS_ENABLED(CONFIG_USB_PHY)
53625 static struct usb_phy *transceiver;
53626 -static struct notifier_block otg_nb;
53627 +static int otg_handle_notification(struct notifier_block *nb,
53628 + unsigned long event, void *unused);
53629 +static struct notifier_block otg_nb = {
53630 + .notifier_call = otg_handle_notification
53631 +};
53632 #endif
53633
53634 static struct regulator *ac_draw;
53635 @@ -373,7 +377,6 @@ static int pda_power_probe(struct platform_device *pdev)
53636
53637 #if IS_ENABLED(CONFIG_USB_PHY)
53638 if (!IS_ERR_OR_NULL(transceiver) && pdata->use_otg_notifier) {
53639 - otg_nb.notifier_call = otg_handle_notification;
53640 ret = usb_register_notifier(transceiver, &otg_nb);
53641 if (ret) {
53642 dev_err(dev, "failure to register otg notifier\n");
53643 diff --git a/drivers/power/power_supply.h b/drivers/power/power_supply.h
53644 index cc439fd..8fa30df 100644
53645 --- a/drivers/power/power_supply.h
53646 +++ b/drivers/power/power_supply.h
53647 @@ -16,12 +16,12 @@ struct power_supply;
53648
53649 #ifdef CONFIG_SYSFS
53650
53651 -extern void power_supply_init_attrs(struct device_type *dev_type);
53652 +extern void power_supply_init_attrs(void);
53653 extern int power_supply_uevent(struct device *dev, struct kobj_uevent_env *env);
53654
53655 #else
53656
53657 -static inline void power_supply_init_attrs(struct device_type *dev_type) {}
53658 +static inline void power_supply_init_attrs(void) {}
53659 #define power_supply_uevent NULL
53660
53661 #endif /* CONFIG_SYSFS */
53662 diff --git a/drivers/power/power_supply_core.c b/drivers/power/power_supply_core.c
53663 index 869284c..38a812b 100644
53664 --- a/drivers/power/power_supply_core.c
53665 +++ b/drivers/power/power_supply_core.c
53666 @@ -28,7 +28,10 @@ EXPORT_SYMBOL_GPL(power_supply_class);
53667 ATOMIC_NOTIFIER_HEAD(power_supply_notifier);
53668 EXPORT_SYMBOL_GPL(power_supply_notifier);
53669
53670 -static struct device_type power_supply_dev_type;
53671 +extern const struct attribute_group *power_supply_attr_groups[];
53672 +static struct device_type power_supply_dev_type = {
53673 + .groups = power_supply_attr_groups,
53674 +};
53675
53676 #define POWER_SUPPLY_DEFERRED_REGISTER_TIME msecs_to_jiffies(10)
53677
53678 @@ -960,7 +963,7 @@ static int __init power_supply_class_init(void)
53679 return PTR_ERR(power_supply_class);
53680
53681 power_supply_class->dev_uevent = power_supply_uevent;
53682 - power_supply_init_attrs(&power_supply_dev_type);
53683 + power_supply_init_attrs();
53684
53685 return 0;
53686 }
53687 diff --git a/drivers/power/power_supply_sysfs.c b/drivers/power/power_supply_sysfs.c
53688 index ed2d7fd..266b28f 100644
53689 --- a/drivers/power/power_supply_sysfs.c
53690 +++ b/drivers/power/power_supply_sysfs.c
53691 @@ -238,17 +238,15 @@ static struct attribute_group power_supply_attr_group = {
53692 .is_visible = power_supply_attr_is_visible,
53693 };
53694
53695 -static const struct attribute_group *power_supply_attr_groups[] = {
53696 +const struct attribute_group *power_supply_attr_groups[] = {
53697 &power_supply_attr_group,
53698 NULL,
53699 };
53700
53701 -void power_supply_init_attrs(struct device_type *dev_type)
53702 +void power_supply_init_attrs(void)
53703 {
53704 int i;
53705
53706 - dev_type->groups = power_supply_attr_groups;
53707 -
53708 for (i = 0; i < ARRAY_SIZE(power_supply_attrs); i++)
53709 __power_supply_attrs[i] = &power_supply_attrs[i].attr;
53710 }
53711 diff --git a/drivers/power/reset/at91-reset.c b/drivers/power/reset/at91-reset.c
53712 index 36dc52f..e2e8a4b 100644
53713 --- a/drivers/power/reset/at91-reset.c
53714 +++ b/drivers/power/reset/at91-reset.c
53715 @@ -16,6 +16,7 @@
53716 #include <linux/of_address.h>
53717 #include <linux/platform_device.h>
53718 #include <linux/reboot.h>
53719 +#include <asm/pgtable.h>
53720
53721 #include <soc/at91/at91sam9_ddrsdr.h>
53722 #include <soc/at91/at91sam9_sdramc.h>
53723 @@ -191,7 +192,9 @@ static int at91_reset_of_probe(struct platform_device *pdev)
53724 }
53725
53726 match = of_match_node(at91_reset_of_match, pdev->dev.of_node);
53727 - at91_restart_nb.notifier_call = match->data;
53728 + pax_open_kernel();
53729 + *(void **)&at91_restart_nb.notifier_call = match->data;
53730 + pax_close_kernel();
53731 return register_restart_handler(&at91_restart_nb);
53732 }
53733
53734 @@ -219,9 +222,11 @@ static int at91_reset_platform_probe(struct platform_device *pdev)
53735 }
53736
53737 match = platform_get_device_id(pdev);
53738 - at91_restart_nb.notifier_call =
53739 + pax_open_kernel();
53740 + *(void **)&at91_restart_nb.notifier_call =
53741 (int (*)(struct notifier_block *,
53742 unsigned long, void *)) match->driver_data;
53743 + pax_close_kernel();
53744
53745 return register_restart_handler(&at91_restart_nb);
53746 }
53747 diff --git a/drivers/powercap/powercap_sys.c b/drivers/powercap/powercap_sys.c
53748 index 84419af..268ede8 100644
53749 --- a/drivers/powercap/powercap_sys.c
53750 +++ b/drivers/powercap/powercap_sys.c
53751 @@ -154,8 +154,77 @@ struct powercap_constraint_attr {
53752 struct device_attribute name_attr;
53753 };
53754
53755 +static ssize_t show_constraint_name(struct device *dev,
53756 + struct device_attribute *dev_attr,
53757 + char *buf);
53758 +
53759 static struct powercap_constraint_attr
53760 - constraint_attrs[MAX_CONSTRAINTS_PER_ZONE];
53761 + constraint_attrs[MAX_CONSTRAINTS_PER_ZONE] = {
53762 + [0 ... MAX_CONSTRAINTS_PER_ZONE - 1] = {
53763 + .power_limit_attr = {
53764 + .attr = {
53765 + .name = NULL,
53766 + .mode = S_IWUSR | S_IRUGO
53767 + },
53768 + .show = show_constraint_power_limit_uw,
53769 + .store = store_constraint_power_limit_uw
53770 + },
53771 +
53772 + .time_window_attr = {
53773 + .attr = {
53774 + .name = NULL,
53775 + .mode = S_IWUSR | S_IRUGO
53776 + },
53777 + .show = show_constraint_time_window_us,
53778 + .store = store_constraint_time_window_us
53779 + },
53780 +
53781 + .max_power_attr = {
53782 + .attr = {
53783 + .name = NULL,
53784 + .mode = S_IRUGO
53785 + },
53786 + .show = show_constraint_max_power_uw,
53787 + .store = NULL
53788 + },
53789 +
53790 + .min_power_attr = {
53791 + .attr = {
53792 + .name = NULL,
53793 + .mode = S_IRUGO
53794 + },
53795 + .show = show_constraint_min_power_uw,
53796 + .store = NULL
53797 + },
53798 +
53799 + .max_time_window_attr = {
53800 + .attr = {
53801 + .name = NULL,
53802 + .mode = S_IRUGO
53803 + },
53804 + .show = show_constraint_max_time_window_us,
53805 + .store = NULL
53806 + },
53807 +
53808 + .min_time_window_attr = {
53809 + .attr = {
53810 + .name = NULL,
53811 + .mode = S_IRUGO
53812 + },
53813 + .show = show_constraint_min_time_window_us,
53814 + .store = NULL
53815 + },
53816 +
53817 + .name_attr = {
53818 + .attr = {
53819 + .name = NULL,
53820 + .mode = S_IRUGO
53821 + },
53822 + .show = show_constraint_name,
53823 + .store = NULL
53824 + }
53825 + }
53826 +};
53827
53828 /* A list of powercap control_types */
53829 static LIST_HEAD(powercap_cntrl_list);
53830 @@ -193,23 +262,16 @@ static ssize_t show_constraint_name(struct device *dev,
53831 }
53832
53833 static int create_constraint_attribute(int id, const char *name,
53834 - int mode,
53835 - struct device_attribute *dev_attr,
53836 - ssize_t (*show)(struct device *,
53837 - struct device_attribute *, char *),
53838 - ssize_t (*store)(struct device *,
53839 - struct device_attribute *,
53840 - const char *, size_t)
53841 - )
53842 + struct device_attribute *dev_attr)
53843 {
53844 + name = kasprintf(GFP_KERNEL, "constraint_%d_%s", id, name);
53845
53846 - dev_attr->attr.name = kasprintf(GFP_KERNEL, "constraint_%d_%s",
53847 - id, name);
53848 - if (!dev_attr->attr.name)
53849 + if (!name)
53850 return -ENOMEM;
53851 - dev_attr->attr.mode = mode;
53852 - dev_attr->show = show;
53853 - dev_attr->store = store;
53854 +
53855 + pax_open_kernel();
53856 + *(const char **)&dev_attr->attr.name = name;
53857 + pax_close_kernel();
53858
53859 return 0;
53860 }
53861 @@ -236,49 +298,31 @@ static int seed_constraint_attributes(void)
53862
53863 for (i = 0; i < MAX_CONSTRAINTS_PER_ZONE; ++i) {
53864 ret = create_constraint_attribute(i, "power_limit_uw",
53865 - S_IWUSR | S_IRUGO,
53866 - &constraint_attrs[i].power_limit_attr,
53867 - show_constraint_power_limit_uw,
53868 - store_constraint_power_limit_uw);
53869 + &constraint_attrs[i].power_limit_attr);
53870 if (ret)
53871 goto err_alloc;
53872 ret = create_constraint_attribute(i, "time_window_us",
53873 - S_IWUSR | S_IRUGO,
53874 - &constraint_attrs[i].time_window_attr,
53875 - show_constraint_time_window_us,
53876 - store_constraint_time_window_us);
53877 + &constraint_attrs[i].time_window_attr);
53878 if (ret)
53879 goto err_alloc;
53880 - ret = create_constraint_attribute(i, "name", S_IRUGO,
53881 - &constraint_attrs[i].name_attr,
53882 - show_constraint_name,
53883 - NULL);
53884 + ret = create_constraint_attribute(i, "name",
53885 + &constraint_attrs[i].name_attr);
53886 if (ret)
53887 goto err_alloc;
53888 - ret = create_constraint_attribute(i, "max_power_uw", S_IRUGO,
53889 - &constraint_attrs[i].max_power_attr,
53890 - show_constraint_max_power_uw,
53891 - NULL);
53892 + ret = create_constraint_attribute(i, "max_power_uw",
53893 + &constraint_attrs[i].max_power_attr);
53894 if (ret)
53895 goto err_alloc;
53896 - ret = create_constraint_attribute(i, "min_power_uw", S_IRUGO,
53897 - &constraint_attrs[i].min_power_attr,
53898 - show_constraint_min_power_uw,
53899 - NULL);
53900 + ret = create_constraint_attribute(i, "min_power_uw",
53901 + &constraint_attrs[i].min_power_attr);
53902 if (ret)
53903 goto err_alloc;
53904 ret = create_constraint_attribute(i, "max_time_window_us",
53905 - S_IRUGO,
53906 - &constraint_attrs[i].max_time_window_attr,
53907 - show_constraint_max_time_window_us,
53908 - NULL);
53909 + &constraint_attrs[i].max_time_window_attr);
53910 if (ret)
53911 goto err_alloc;
53912 ret = create_constraint_attribute(i, "min_time_window_us",
53913 - S_IRUGO,
53914 - &constraint_attrs[i].min_time_window_attr,
53915 - show_constraint_min_time_window_us,
53916 - NULL);
53917 + &constraint_attrs[i].min_time_window_attr);
53918 if (ret)
53919 goto err_alloc;
53920
53921 @@ -378,10 +422,12 @@ static void create_power_zone_common_attributes(
53922 power_zone->zone_dev_attrs[count++] =
53923 &dev_attr_max_energy_range_uj.attr;
53924 if (power_zone->ops->get_energy_uj) {
53925 + pax_open_kernel();
53926 if (power_zone->ops->reset_energy_uj)
53927 - dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
53928 + *(umode_t *)&dev_attr_energy_uj.attr.mode = S_IWUSR | S_IRUGO;
53929 else
53930 - dev_attr_energy_uj.attr.mode = S_IRUGO;
53931 + *(umode_t *)&dev_attr_energy_uj.attr.mode = S_IRUGO;
53932 + pax_close_kernel();
53933 power_zone->zone_dev_attrs[count++] =
53934 &dev_attr_energy_uj.attr;
53935 }
53936 diff --git a/drivers/ptp/ptp_private.h b/drivers/ptp/ptp_private.h
53937 index 9c5d414..c7900ce 100644
53938 --- a/drivers/ptp/ptp_private.h
53939 +++ b/drivers/ptp/ptp_private.h
53940 @@ -51,7 +51,7 @@ struct ptp_clock {
53941 struct mutex pincfg_mux; /* protect concurrent info->pin_config access */
53942 wait_queue_head_t tsev_wq;
53943 int defunct; /* tells readers to go away when clock is being removed */
53944 - struct device_attribute *pin_dev_attr;
53945 + device_attribute_no_const *pin_dev_attr;
53946 struct attribute **pin_attr;
53947 struct attribute_group pin_attr_group;
53948 };
53949 diff --git a/drivers/ptp/ptp_sysfs.c b/drivers/ptp/ptp_sysfs.c
53950 index 302e626..12579af 100644
53951 --- a/drivers/ptp/ptp_sysfs.c
53952 +++ b/drivers/ptp/ptp_sysfs.c
53953 @@ -280,7 +280,7 @@ static int ptp_populate_pins(struct ptp_clock *ptp)
53954 goto no_pin_attr;
53955
53956 for (i = 0; i < n_pins; i++) {
53957 - struct device_attribute *da = &ptp->pin_dev_attr[i];
53958 + device_attribute_no_const *da = &ptp->pin_dev_attr[i];
53959 sysfs_attr_init(&da->attr);
53960 da->attr.name = info->pin_config[i].name;
53961 da->attr.mode = 0644;
53962 diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
53963 index 5081533..794deb2 100644
53964 --- a/drivers/regulator/core.c
53965 +++ b/drivers/regulator/core.c
53966 @@ -3650,7 +3650,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
53967 const struct regulation_constraints *constraints = NULL;
53968 const struct regulator_init_data *init_data;
53969 struct regulator_config *config = NULL;
53970 - static atomic_t regulator_no = ATOMIC_INIT(-1);
53971 + static atomic_unchecked_t regulator_no = ATOMIC_INIT(-1);
53972 struct regulator_dev *rdev;
53973 struct device *dev;
53974 int ret, i;
53975 @@ -3733,7 +3733,7 @@ regulator_register(const struct regulator_desc *regulator_desc,
53976 rdev->dev.class = &regulator_class;
53977 rdev->dev.parent = dev;
53978 dev_set_name(&rdev->dev, "regulator.%lu",
53979 - (unsigned long) atomic_inc_return(&regulator_no));
53980 + (unsigned long) atomic_inc_return_unchecked(&regulator_no));
53981 ret = device_register(&rdev->dev);
53982 if (ret != 0) {
53983 put_device(&rdev->dev);
53984 diff --git a/drivers/regulator/max8660.c b/drivers/regulator/max8660.c
53985 index 4071d74..260b15a 100644
53986 --- a/drivers/regulator/max8660.c
53987 +++ b/drivers/regulator/max8660.c
53988 @@ -423,8 +423,10 @@ static int max8660_probe(struct i2c_client *client,
53989 max8660->shadow_regs[MAX8660_OVER1] = 5;
53990 } else {
53991 /* Otherwise devices can be toggled via software */
53992 - max8660_dcdc_ops.enable = max8660_dcdc_enable;
53993 - max8660_dcdc_ops.disable = max8660_dcdc_disable;
53994 + pax_open_kernel();
53995 + *(void **)&max8660_dcdc_ops.enable = max8660_dcdc_enable;
53996 + *(void **)&max8660_dcdc_ops.disable = max8660_dcdc_disable;
53997 + pax_close_kernel();
53998 }
53999
54000 /*
54001 diff --git a/drivers/regulator/max8973-regulator.c b/drivers/regulator/max8973-regulator.c
54002 index e94ddcf..bad33ad 100644
54003 --- a/drivers/regulator/max8973-regulator.c
54004 +++ b/drivers/regulator/max8973-regulator.c
54005 @@ -580,9 +580,11 @@ static int max8973_probe(struct i2c_client *client,
54006 if (!pdata->enable_ext_control) {
54007 max->desc.enable_reg = MAX8973_VOUT;
54008 max->desc.enable_mask = MAX8973_VOUT_ENABLE;
54009 - max->ops.enable = regulator_enable_regmap;
54010 - max->ops.disable = regulator_disable_regmap;
54011 - max->ops.is_enabled = regulator_is_enabled_regmap;
54012 + pax_open_kernel();
54013 + *(void **)&max->ops.enable = regulator_enable_regmap;
54014 + *(void **)&max->ops.disable = regulator_disable_regmap;
54015 + *(void **)&max->ops.is_enabled = regulator_is_enabled_regmap;
54016 + pax_close_kernel();
54017 break;
54018 }
54019
54020 @@ -610,9 +612,11 @@ static int max8973_probe(struct i2c_client *client,
54021
54022 max->desc.enable_reg = MAX8973_VOUT;
54023 max->desc.enable_mask = MAX8973_VOUT_ENABLE;
54024 - max->ops.enable = regulator_enable_regmap;
54025 - max->ops.disable = regulator_disable_regmap;
54026 - max->ops.is_enabled = regulator_is_enabled_regmap;
54027 + pax_open_kernel();
54028 + *(void **)&max->ops.enable = regulator_enable_regmap;
54029 + *(void **)&max->ops.disable = regulator_disable_regmap;
54030 + *(void **)&max->ops.is_enabled = regulator_is_enabled_regmap;
54031 + pax_close_kernel();
54032 break;
54033 default:
54034 break;
54035 diff --git a/drivers/regulator/mc13892-regulator.c b/drivers/regulator/mc13892-regulator.c
54036 index 0d17c92..a29f627 100644
54037 --- a/drivers/regulator/mc13892-regulator.c
54038 +++ b/drivers/regulator/mc13892-regulator.c
54039 @@ -584,10 +584,12 @@ static int mc13892_regulator_probe(struct platform_device *pdev)
54040 mc13xxx_unlock(mc13892);
54041
54042 /* update mc13892_vcam ops */
54043 - memcpy(&mc13892_vcam_ops, mc13892_regulators[MC13892_VCAM].desc.ops,
54044 + pax_open_kernel();
54045 + memcpy((void *)&mc13892_vcam_ops, mc13892_regulators[MC13892_VCAM].desc.ops,
54046 sizeof(struct regulator_ops));
54047 - mc13892_vcam_ops.set_mode = mc13892_vcam_set_mode,
54048 - mc13892_vcam_ops.get_mode = mc13892_vcam_get_mode,
54049 + *(void **)&mc13892_vcam_ops.set_mode = mc13892_vcam_set_mode,
54050 + *(void **)&mc13892_vcam_ops.get_mode = mc13892_vcam_get_mode,
54051 + pax_close_kernel();
54052 mc13892_regulators[MC13892_VCAM].desc.ops = &mc13892_vcam_ops;
54053
54054 mc13xxx_data = mc13xxx_parse_regulators_dt(pdev, mc13892_regulators,
54055 diff --git a/drivers/rtc/rtc-armada38x.c b/drivers/rtc/rtc-armada38x.c
54056 index 2b08cac..8942201 100644
54057 --- a/drivers/rtc/rtc-armada38x.c
54058 +++ b/drivers/rtc/rtc-armada38x.c
54059 @@ -18,6 +18,7 @@
54060 #include <linux/of.h>
54061 #include <linux/platform_device.h>
54062 #include <linux/rtc.h>
54063 +#include <asm/pgtable.h>
54064
54065 #define RTC_STATUS 0x0
54066 #define RTC_STATUS_ALARM1 BIT(0)
54067 @@ -254,8 +255,10 @@ static __init int armada38x_rtc_probe(struct platform_device *pdev)
54068 * If there is no interrupt available then we can't
54069 * use the alarm
54070 */
54071 - armada38x_rtc_ops.set_alarm = NULL;
54072 - armada38x_rtc_ops.alarm_irq_enable = NULL;
54073 + pax_open_kernel();
54074 + *(void **)&armada38x_rtc_ops.set_alarm = NULL;
54075 + *(void **)&armada38x_rtc_ops.alarm_irq_enable = NULL;
54076 + pax_close_kernel();
54077 }
54078 platform_set_drvdata(pdev, rtc);
54079 if (rtc->irq != -1)
54080 diff --git a/drivers/rtc/rtc-cmos.c b/drivers/rtc/rtc-cmos.c
54081 index a82556a0..e842923 100644
54082 --- a/drivers/rtc/rtc-cmos.c
54083 +++ b/drivers/rtc/rtc-cmos.c
54084 @@ -793,7 +793,9 @@ cmos_do_probe(struct device *dev, struct resource *ports, int rtc_irq)
54085 hpet_rtc_timer_init();
54086
54087 /* export at least the first block of NVRAM */
54088 - nvram.size = address_space - NVRAM_OFFSET;
54089 + pax_open_kernel();
54090 + *(size_t *)&nvram.size = address_space - NVRAM_OFFSET;
54091 + pax_close_kernel();
54092 retval = sysfs_create_bin_file(&dev->kobj, &nvram);
54093 if (retval < 0) {
54094 dev_dbg(dev, "can't create nvram file? %d\n", retval);
54095 diff --git a/drivers/rtc/rtc-dev.c b/drivers/rtc/rtc-dev.c
54096 index 799c34b..8e9786a 100644
54097 --- a/drivers/rtc/rtc-dev.c
54098 +++ b/drivers/rtc/rtc-dev.c
54099 @@ -16,6 +16,7 @@
54100 #include <linux/module.h>
54101 #include <linux/rtc.h>
54102 #include <linux/sched.h>
54103 +#include <linux/grsecurity.h>
54104 #include "rtc-core.h"
54105
54106 static dev_t rtc_devt;
54107 @@ -347,6 +348,8 @@ static long rtc_dev_ioctl(struct file *file,
54108 if (copy_from_user(&tm, uarg, sizeof(tm)))
54109 return -EFAULT;
54110
54111 + gr_log_timechange();
54112 +
54113 return rtc_set_time(rtc, &tm);
54114
54115 case RTC_PIE_ON:
54116 diff --git a/drivers/rtc/rtc-ds1307.c b/drivers/rtc/rtc-ds1307.c
54117 index 6e76de1..d38a1e0 100644
54118 --- a/drivers/rtc/rtc-ds1307.c
54119 +++ b/drivers/rtc/rtc-ds1307.c
54120 @@ -107,7 +107,7 @@ struct ds1307 {
54121 u8 offset; /* register's offset */
54122 u8 regs[11];
54123 u16 nvram_offset;
54124 - struct bin_attribute *nvram;
54125 + bin_attribute_no_const *nvram;
54126 enum ds_type type;
54127 unsigned long flags;
54128 #define HAS_NVRAM 0 /* bit 0 == sysfs file active */
54129 diff --git a/drivers/rtc/rtc-m48t59.c b/drivers/rtc/rtc-m48t59.c
54130 index 90abb5b..e0bf6dd 100644
54131 --- a/drivers/rtc/rtc-m48t59.c
54132 +++ b/drivers/rtc/rtc-m48t59.c
54133 @@ -483,7 +483,9 @@ static int m48t59_rtc_probe(struct platform_device *pdev)
54134 if (IS_ERR(m48t59->rtc))
54135 return PTR_ERR(m48t59->rtc);
54136
54137 - m48t59_nvram_attr.size = pdata->offset;
54138 + pax_open_kernel();
54139 + *(size_t *)&m48t59_nvram_attr.size = pdata->offset;
54140 + pax_close_kernel();
54141
54142 ret = sysfs_create_bin_file(&pdev->dev.kobj, &m48t59_nvram_attr);
54143 if (ret)
54144 diff --git a/drivers/rtc/rtc-test.c b/drivers/rtc/rtc-test.c
54145 index 3a2da4c..e88493c 100644
54146 --- a/drivers/rtc/rtc-test.c
54147 +++ b/drivers/rtc/rtc-test.c
54148 @@ -112,8 +112,10 @@ static int test_probe(struct platform_device *plat_dev)
54149 struct rtc_device *rtc;
54150
54151 if (test_mmss64) {
54152 - test_rtc_ops.set_mmss64 = test_rtc_set_mmss64;
54153 - test_rtc_ops.set_mmss = NULL;
54154 + pax_open_kernel();
54155 + *(void **)&test_rtc_ops.set_mmss64 = test_rtc_set_mmss64;
54156 + *(void **)&test_rtc_ops.set_mmss = NULL;
54157 + pax_close_kernel();
54158 }
54159
54160 rtc = devm_rtc_device_register(&plat_dev->dev, "test",
54161 diff --git a/drivers/scsi/be2iscsi/be_main.c b/drivers/scsi/be2iscsi/be_main.c
54162 index 7a6dbfb..5cdcd29 100644
54163 --- a/drivers/scsi/be2iscsi/be_main.c
54164 +++ b/drivers/scsi/be2iscsi/be_main.c
54165 @@ -3184,7 +3184,7 @@ be_sgl_create_contiguous(void *virtual_address,
54166 {
54167 WARN_ON(!virtual_address);
54168 WARN_ON(!physical_address);
54169 - WARN_ON(!length > 0);
54170 + WARN_ON(!length);
54171 WARN_ON(!sgl);
54172
54173 sgl->va = virtual_address;
54174 diff --git a/drivers/scsi/bfa/bfa_fcpim.h b/drivers/scsi/bfa/bfa_fcpim.h
54175 index e693af6..2e525b6 100644
54176 --- a/drivers/scsi/bfa/bfa_fcpim.h
54177 +++ b/drivers/scsi/bfa/bfa_fcpim.h
54178 @@ -36,7 +36,7 @@ struct bfa_iotag_s {
54179
54180 struct bfa_itn_s {
54181 bfa_isr_func_t isr;
54182 -};
54183 +} __no_const;
54184
54185 void bfa_itn_create(struct bfa_s *bfa, struct bfa_rport_s *rport,
54186 void (*isr)(struct bfa_s *bfa, struct bfi_msg_s *m));
54187 diff --git a/drivers/scsi/bfa/bfa_fcs.c b/drivers/scsi/bfa/bfa_fcs.c
54188 index 0f19455..ef7adb5 100644
54189 --- a/drivers/scsi/bfa/bfa_fcs.c
54190 +++ b/drivers/scsi/bfa/bfa_fcs.c
54191 @@ -38,10 +38,21 @@ struct bfa_fcs_mod_s {
54192 #define BFA_FCS_MODULE(_mod) { _mod ## _modinit, _mod ## _modexit }
54193
54194 static struct bfa_fcs_mod_s fcs_modules[] = {
54195 - { bfa_fcs_port_attach, NULL, NULL },
54196 - { bfa_fcs_uf_attach, NULL, NULL },
54197 - { bfa_fcs_fabric_attach, bfa_fcs_fabric_modinit,
54198 - bfa_fcs_fabric_modexit },
54199 + {
54200 + .attach = bfa_fcs_port_attach,
54201 + .modinit = NULL,
54202 + .modexit = NULL
54203 + },
54204 + {
54205 + .attach = bfa_fcs_uf_attach,
54206 + .modinit = NULL,
54207 + .modexit = NULL
54208 + },
54209 + {
54210 + .attach = bfa_fcs_fabric_attach,
54211 + .modinit = bfa_fcs_fabric_modinit,
54212 + .modexit = bfa_fcs_fabric_modexit
54213 + },
54214 };
54215
54216 /*
54217 diff --git a/drivers/scsi/bfa/bfa_fcs_lport.c b/drivers/scsi/bfa/bfa_fcs_lport.c
54218 index ff75ef8..2dfe00a 100644
54219 --- a/drivers/scsi/bfa/bfa_fcs_lport.c
54220 +++ b/drivers/scsi/bfa/bfa_fcs_lport.c
54221 @@ -89,15 +89,26 @@ static struct {
54222 void (*offline) (struct bfa_fcs_lport_s *port);
54223 } __port_action[] = {
54224 {
54225 - bfa_fcs_lport_unknown_init, bfa_fcs_lport_unknown_online,
54226 - bfa_fcs_lport_unknown_offline}, {
54227 - bfa_fcs_lport_fab_init, bfa_fcs_lport_fab_online,
54228 - bfa_fcs_lport_fab_offline}, {
54229 - bfa_fcs_lport_n2n_init, bfa_fcs_lport_n2n_online,
54230 - bfa_fcs_lport_n2n_offline}, {
54231 - bfa_fcs_lport_loop_init, bfa_fcs_lport_loop_online,
54232 - bfa_fcs_lport_loop_offline},
54233 - };
54234 + .init = bfa_fcs_lport_unknown_init,
54235 + .online = bfa_fcs_lport_unknown_online,
54236 + .offline = bfa_fcs_lport_unknown_offline
54237 + },
54238 + {
54239 + .init = bfa_fcs_lport_fab_init,
54240 + .online = bfa_fcs_lport_fab_online,
54241 + .offline = bfa_fcs_lport_fab_offline
54242 + },
54243 + {
54244 + .init = bfa_fcs_lport_n2n_init,
54245 + .online = bfa_fcs_lport_n2n_online,
54246 + .offline = bfa_fcs_lport_n2n_offline
54247 + },
54248 + {
54249 + .init = bfa_fcs_lport_loop_init,
54250 + .online = bfa_fcs_lport_loop_online,
54251 + .offline = bfa_fcs_lport_loop_offline
54252 + },
54253 +};
54254
54255 /*
54256 * fcs_port_sm FCS logical port state machine
54257 diff --git a/drivers/scsi/bfa/bfa_ioc.h b/drivers/scsi/bfa/bfa_ioc.h
54258 index a38aafa0..fe8f03b 100644
54259 --- a/drivers/scsi/bfa/bfa_ioc.h
54260 +++ b/drivers/scsi/bfa/bfa_ioc.h
54261 @@ -258,7 +258,7 @@ struct bfa_ioc_cbfn_s {
54262 bfa_ioc_disable_cbfn_t disable_cbfn;
54263 bfa_ioc_hbfail_cbfn_t hbfail_cbfn;
54264 bfa_ioc_reset_cbfn_t reset_cbfn;
54265 -};
54266 +} __no_const;
54267
54268 /*
54269 * IOC event notification mechanism.
54270 @@ -352,7 +352,7 @@ struct bfa_ioc_hwif_s {
54271 void (*ioc_set_alt_fwstate) (struct bfa_ioc_s *ioc,
54272 enum bfi_ioc_state fwstate);
54273 enum bfi_ioc_state (*ioc_get_alt_fwstate) (struct bfa_ioc_s *ioc);
54274 -};
54275 +} __no_const;
54276
54277 /*
54278 * Queue element to wait for room in request queue. FIFO order is
54279 diff --git a/drivers/scsi/bfa/bfa_modules.h b/drivers/scsi/bfa/bfa_modules.h
54280 index a14c784..6de6790 100644
54281 --- a/drivers/scsi/bfa/bfa_modules.h
54282 +++ b/drivers/scsi/bfa/bfa_modules.h
54283 @@ -78,12 +78,12 @@ enum {
54284 \
54285 extern struct bfa_module_s hal_mod_ ## __mod; \
54286 struct bfa_module_s hal_mod_ ## __mod = { \
54287 - bfa_ ## __mod ## _meminfo, \
54288 - bfa_ ## __mod ## _attach, \
54289 - bfa_ ## __mod ## _detach, \
54290 - bfa_ ## __mod ## _start, \
54291 - bfa_ ## __mod ## _stop, \
54292 - bfa_ ## __mod ## _iocdisable, \
54293 + .meminfo = bfa_ ## __mod ## _meminfo, \
54294 + .attach = bfa_ ## __mod ## _attach, \
54295 + .detach = bfa_ ## __mod ## _detach, \
54296 + .start = bfa_ ## __mod ## _start, \
54297 + .stop = bfa_ ## __mod ## _stop, \
54298 + .iocdisable = bfa_ ## __mod ## _iocdisable, \
54299 }
54300
54301 #define BFA_CACHELINE_SZ (256)
54302 diff --git a/drivers/scsi/fcoe/fcoe_sysfs.c b/drivers/scsi/fcoe/fcoe_sysfs.c
54303 index 045c4e1..13de803 100644
54304 --- a/drivers/scsi/fcoe/fcoe_sysfs.c
54305 +++ b/drivers/scsi/fcoe/fcoe_sysfs.c
54306 @@ -33,8 +33,8 @@
54307 */
54308 #include "libfcoe.h"
54309
54310 -static atomic_t ctlr_num;
54311 -static atomic_t fcf_num;
54312 +static atomic_unchecked_t ctlr_num;
54313 +static atomic_unchecked_t fcf_num;
54314
54315 /*
54316 * fcoe_fcf_dev_loss_tmo: the default number of seconds that fcoe sysfs
54317 @@ -685,7 +685,7 @@ struct fcoe_ctlr_device *fcoe_ctlr_device_add(struct device *parent,
54318 if (!ctlr)
54319 goto out;
54320
54321 - ctlr->id = atomic_inc_return(&ctlr_num) - 1;
54322 + ctlr->id = atomic_inc_return_unchecked(&ctlr_num) - 1;
54323 ctlr->f = f;
54324 ctlr->mode = FIP_CONN_TYPE_FABRIC;
54325 INIT_LIST_HEAD(&ctlr->fcfs);
54326 @@ -902,7 +902,7 @@ struct fcoe_fcf_device *fcoe_fcf_device_add(struct fcoe_ctlr_device *ctlr,
54327 fcf->dev.parent = &ctlr->dev;
54328 fcf->dev.bus = &fcoe_bus_type;
54329 fcf->dev.type = &fcoe_fcf_device_type;
54330 - fcf->id = atomic_inc_return(&fcf_num) - 1;
54331 + fcf->id = atomic_inc_return_unchecked(&fcf_num) - 1;
54332 fcf->state = FCOE_FCF_STATE_UNKNOWN;
54333
54334 fcf->dev_loss_tmo = ctlr->fcf_dev_loss_tmo;
54335 @@ -938,8 +938,8 @@ int __init fcoe_sysfs_setup(void)
54336 {
54337 int error;
54338
54339 - atomic_set(&ctlr_num, 0);
54340 - atomic_set(&fcf_num, 0);
54341 + atomic_set_unchecked(&ctlr_num, 0);
54342 + atomic_set_unchecked(&fcf_num, 0);
54343
54344 error = bus_register(&fcoe_bus_type);
54345 if (error)
54346 diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
54347 index 8bb173e..20236b4 100644
54348 --- a/drivers/scsi/hosts.c
54349 +++ b/drivers/scsi/hosts.c
54350 @@ -42,7 +42,7 @@
54351 #include "scsi_logging.h"
54352
54353
54354 -static atomic_t scsi_host_next_hn = ATOMIC_INIT(0); /* host_no for next new host */
54355 +static atomic_unchecked_t scsi_host_next_hn = ATOMIC_INIT(0); /* host_no for next new host */
54356
54357
54358 static void scsi_host_cls_release(struct device *dev)
54359 @@ -392,7 +392,7 @@ struct Scsi_Host *scsi_host_alloc(struct scsi_host_template *sht, int privsize)
54360 * subtract one because we increment first then return, but we need to
54361 * know what the next host number was before increment
54362 */
54363 - shost->host_no = atomic_inc_return(&scsi_host_next_hn) - 1;
54364 + shost->host_no = atomic_inc_return_unchecked(&scsi_host_next_hn) - 1;
54365 shost->dma_channel = 0xff;
54366
54367 /* These three are default values which can be overridden */
54368 diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
54369 index cab4e98..31323f6 100644
54370 --- a/drivers/scsi/hpsa.c
54371 +++ b/drivers/scsi/hpsa.c
54372 @@ -793,10 +793,10 @@ static inline u32 next_command(struct ctlr_info *h, u8 q)
54373 struct reply_queue_buffer *rq = &h->reply_queue[q];
54374
54375 if (h->transMethod & CFGTBL_Trans_io_accel1)
54376 - return h->access.command_completed(h, q);
54377 + return h->access->command_completed(h, q);
54378
54379 if (unlikely(!(h->transMethod & CFGTBL_Trans_Performant)))
54380 - return h->access.command_completed(h, q);
54381 + return h->access->command_completed(h, q);
54382
54383 if ((rq->head[rq->current_entry] & 1) == rq->wraparound) {
54384 a = rq->head[rq->current_entry];
54385 @@ -978,7 +978,7 @@ static void __enqueue_cmd_and_start_io(struct ctlr_info *h,
54386 break;
54387 default:
54388 set_performant_mode(h, c, reply_queue);
54389 - h->access.submit_command(h, c);
54390 + h->access->submit_command(h, c);
54391 }
54392 }
54393
54394 @@ -6343,17 +6343,17 @@ static void __iomem *remap_pci_mem(ulong base, ulong size)
54395
54396 static inline unsigned long get_next_completion(struct ctlr_info *h, u8 q)
54397 {
54398 - return h->access.command_completed(h, q);
54399 + return h->access->command_completed(h, q);
54400 }
54401
54402 static inline bool interrupt_pending(struct ctlr_info *h)
54403 {
54404 - return h->access.intr_pending(h);
54405 + return h->access->intr_pending(h);
54406 }
54407
54408 static inline long interrupt_not_for_us(struct ctlr_info *h)
54409 {
54410 - return (h->access.intr_pending(h) == 0) ||
54411 + return (h->access->intr_pending(h) == 0) ||
54412 (h->interrupts_enabled == 0);
54413 }
54414
54415 @@ -7291,7 +7291,7 @@ static int hpsa_pci_init(struct ctlr_info *h)
54416 if (prod_index < 0)
54417 return prod_index;
54418 h->product_name = products[prod_index].product_name;
54419 - h->access = *(products[prod_index].access);
54420 + h->access = products[prod_index].access;
54421
54422 h->needs_abort_tags_swizzled =
54423 ctlr_needs_abort_tags_swizzled(h->board_id);
54424 @@ -7690,7 +7690,7 @@ static void controller_lockup_detected(struct ctlr_info *h)
54425 unsigned long flags;
54426 u32 lockup_detected;
54427
54428 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54429 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54430 spin_lock_irqsave(&h->lock, flags);
54431 lockup_detected = readl(h->vaddr + SA5_SCRATCHPAD_OFFSET);
54432 if (!lockup_detected) {
54433 @@ -7973,7 +7973,7 @@ reinit_after_soft_reset:
54434 }
54435
54436 /* make sure the board interrupts are off */
54437 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54438 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54439
54440 rc = hpsa_request_irqs(h, do_hpsa_intr_msi, do_hpsa_intr_intx);
54441 if (rc)
54442 @@ -8032,7 +8032,7 @@ reinit_after_soft_reset:
54443 * fake ones to scoop up any residual completions.
54444 */
54445 spin_lock_irqsave(&h->lock, flags);
54446 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54447 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54448 spin_unlock_irqrestore(&h->lock, flags);
54449 hpsa_free_irqs(h);
54450 rc = hpsa_request_irqs(h, hpsa_msix_discard_completions,
54451 @@ -8062,9 +8062,9 @@ reinit_after_soft_reset:
54452 dev_info(&h->pdev->dev, "Board READY.\n");
54453 dev_info(&h->pdev->dev,
54454 "Waiting for stale completions to drain.\n");
54455 - h->access.set_intr_mask(h, HPSA_INTR_ON);
54456 + h->access->set_intr_mask(h, HPSA_INTR_ON);
54457 msleep(10000);
54458 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54459 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54460
54461 rc = controller_reset_failed(h->cfgtable);
54462 if (rc)
54463 @@ -8089,7 +8089,7 @@ reinit_after_soft_reset:
54464
54465
54466 /* Turn the interrupts on so we can service requests */
54467 - h->access.set_intr_mask(h, HPSA_INTR_ON);
54468 + h->access->set_intr_mask(h, HPSA_INTR_ON);
54469
54470 hpsa_hba_inquiry(h);
54471
54472 @@ -8107,7 +8107,7 @@ clean9: /* wq, sh, perf, sg, cmd, irq, shost, pci, lu, aer/h */
54473 kfree(h->hba_inquiry_data);
54474 clean7: /* perf, sg, cmd, irq, shost, pci, lu, aer/h */
54475 hpsa_free_performant_mode(h);
54476 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54477 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54478 clean6: /* sg, cmd, irq, pci, lockup, wq/aer/h */
54479 hpsa_free_sg_chain_blocks(h);
54480 clean5: /* cmd, irq, shost, pci, lu, aer/h */
54481 @@ -8177,7 +8177,7 @@ static void hpsa_shutdown(struct pci_dev *pdev)
54482 * To write all data in the battery backed cache to disks
54483 */
54484 hpsa_flush_cache(h);
54485 - h->access.set_intr_mask(h, HPSA_INTR_OFF);
54486 + h->access->set_intr_mask(h, HPSA_INTR_OFF);
54487 hpsa_free_irqs(h); /* init_one 4 */
54488 hpsa_disable_interrupt_mode(h); /* pci_init 2 */
54489 }
54490 @@ -8309,7 +8309,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
54491 CFGTBL_Trans_enable_directed_msix |
54492 (trans_support & (CFGTBL_Trans_io_accel1 |
54493 CFGTBL_Trans_io_accel2));
54494 - struct access_method access = SA5_performant_access;
54495 + struct access_method *access = &SA5_performant_access;
54496
54497 /* This is a bit complicated. There are 8 registers on
54498 * the controller which we write to to tell it 8 different
54499 @@ -8351,7 +8351,7 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
54500 * perform the superfluous readl() after each command submission.
54501 */
54502 if (trans_support & (CFGTBL_Trans_io_accel1 | CFGTBL_Trans_io_accel2))
54503 - access = SA5_performant_access_no_read;
54504 + access = &SA5_performant_access_no_read;
54505
54506 /* Controller spec: zero out this buffer. */
54507 for (i = 0; i < h->nreply_queues; i++)
54508 @@ -8381,12 +8381,12 @@ static int hpsa_enter_performant_mode(struct ctlr_info *h, u32 trans_support)
54509 * enable outbound interrupt coalescing in accelerator mode;
54510 */
54511 if (trans_support & CFGTBL_Trans_io_accel1) {
54512 - access = SA5_ioaccel_mode1_access;
54513 + access = &SA5_ioaccel_mode1_access;
54514 writel(10, &h->cfgtable->HostWrite.CoalIntDelay);
54515 writel(4, &h->cfgtable->HostWrite.CoalIntCount);
54516 } else {
54517 if (trans_support & CFGTBL_Trans_io_accel2) {
54518 - access = SA5_ioaccel_mode2_access;
54519 + access = &SA5_ioaccel_mode2_access;
54520 writel(10, &h->cfgtable->HostWrite.CoalIntDelay);
54521 writel(4, &h->cfgtable->HostWrite.CoalIntCount);
54522 }
54523 diff --git a/drivers/scsi/hpsa.h b/drivers/scsi/hpsa.h
54524 index 6ee4da6..dfafb48 100644
54525 --- a/drivers/scsi/hpsa.h
54526 +++ b/drivers/scsi/hpsa.h
54527 @@ -152,7 +152,7 @@ struct ctlr_info {
54528 unsigned int msix_vector;
54529 unsigned int msi_vector;
54530 int intr_mode; /* either PERF_MODE_INT or SIMPLE_MODE_INT */
54531 - struct access_method access;
54532 + struct access_method *access;
54533 char hba_mode_enabled;
54534
54535 /* queue and queue Info */
54536 @@ -542,38 +542,38 @@ static unsigned long SA5_ioaccel_mode1_completed(struct ctlr_info *h, u8 q)
54537 }
54538
54539 static struct access_method SA5_access = {
54540 - SA5_submit_command,
54541 - SA5_intr_mask,
54542 - SA5_intr_pending,
54543 - SA5_completed,
54544 + .submit_command = SA5_submit_command,
54545 + .set_intr_mask = SA5_intr_mask,
54546 + .intr_pending = SA5_intr_pending,
54547 + .command_completed = SA5_completed,
54548 };
54549
54550 static struct access_method SA5_ioaccel_mode1_access = {
54551 - SA5_submit_command,
54552 - SA5_performant_intr_mask,
54553 - SA5_ioaccel_mode1_intr_pending,
54554 - SA5_ioaccel_mode1_completed,
54555 + .submit_command = SA5_submit_command,
54556 + .set_intr_mask = SA5_performant_intr_mask,
54557 + .intr_pending = SA5_ioaccel_mode1_intr_pending,
54558 + .command_completed = SA5_ioaccel_mode1_completed,
54559 };
54560
54561 static struct access_method SA5_ioaccel_mode2_access = {
54562 - SA5_submit_command_ioaccel2,
54563 - SA5_performant_intr_mask,
54564 - SA5_performant_intr_pending,
54565 - SA5_performant_completed,
54566 + .submit_command = SA5_submit_command_ioaccel2,
54567 + .set_intr_mask = SA5_performant_intr_mask,
54568 + .intr_pending = SA5_performant_intr_pending,
54569 + .command_completed = SA5_performant_completed,
54570 };
54571
54572 static struct access_method SA5_performant_access = {
54573 - SA5_submit_command,
54574 - SA5_performant_intr_mask,
54575 - SA5_performant_intr_pending,
54576 - SA5_performant_completed,
54577 + .submit_command = SA5_submit_command,
54578 + .set_intr_mask = SA5_performant_intr_mask,
54579 + .intr_pending = SA5_performant_intr_pending,
54580 + .command_completed = SA5_performant_completed,
54581 };
54582
54583 static struct access_method SA5_performant_access_no_read = {
54584 - SA5_submit_command_no_read,
54585 - SA5_performant_intr_mask,
54586 - SA5_performant_intr_pending,
54587 - SA5_performant_completed,
54588 + .submit_command = SA5_submit_command_no_read,
54589 + .set_intr_mask = SA5_performant_intr_mask,
54590 + .intr_pending = SA5_performant_intr_pending,
54591 + .command_completed = SA5_performant_completed,
54592 };
54593
54594 struct board_type {
54595 diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
54596 index 30f9ef0..a1e29ac 100644
54597 --- a/drivers/scsi/libfc/fc_exch.c
54598 +++ b/drivers/scsi/libfc/fc_exch.c
54599 @@ -101,12 +101,12 @@ struct fc_exch_mgr {
54600 u16 pool_max_index;
54601
54602 struct {
54603 - atomic_t no_free_exch;
54604 - atomic_t no_free_exch_xid;
54605 - atomic_t xid_not_found;
54606 - atomic_t xid_busy;
54607 - atomic_t seq_not_found;
54608 - atomic_t non_bls_resp;
54609 + atomic_unchecked_t no_free_exch;
54610 + atomic_unchecked_t no_free_exch_xid;
54611 + atomic_unchecked_t xid_not_found;
54612 + atomic_unchecked_t xid_busy;
54613 + atomic_unchecked_t seq_not_found;
54614 + atomic_unchecked_t non_bls_resp;
54615 } stats;
54616 };
54617
54618 @@ -809,7 +809,7 @@ static struct fc_exch *fc_exch_em_alloc(struct fc_lport *lport,
54619 /* allocate memory for exchange */
54620 ep = mempool_alloc(mp->ep_pool, GFP_ATOMIC);
54621 if (!ep) {
54622 - atomic_inc(&mp->stats.no_free_exch);
54623 + atomic_inc_unchecked(&mp->stats.no_free_exch);
54624 goto out;
54625 }
54626 memset(ep, 0, sizeof(*ep));
54627 @@ -872,7 +872,7 @@ out:
54628 return ep;
54629 err:
54630 spin_unlock_bh(&pool->lock);
54631 - atomic_inc(&mp->stats.no_free_exch_xid);
54632 + atomic_inc_unchecked(&mp->stats.no_free_exch_xid);
54633 mempool_free(ep, mp->ep_pool);
54634 return NULL;
54635 }
54636 @@ -1021,7 +1021,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
54637 xid = ntohs(fh->fh_ox_id); /* we originated exch */
54638 ep = fc_exch_find(mp, xid);
54639 if (!ep) {
54640 - atomic_inc(&mp->stats.xid_not_found);
54641 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54642 reject = FC_RJT_OX_ID;
54643 goto out;
54644 }
54645 @@ -1051,7 +1051,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
54646 ep = fc_exch_find(mp, xid);
54647 if ((f_ctl & FC_FC_FIRST_SEQ) && fc_sof_is_init(fr_sof(fp))) {
54648 if (ep) {
54649 - atomic_inc(&mp->stats.xid_busy);
54650 + atomic_inc_unchecked(&mp->stats.xid_busy);
54651 reject = FC_RJT_RX_ID;
54652 goto rel;
54653 }
54654 @@ -1062,7 +1062,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
54655 }
54656 xid = ep->xid; /* get our XID */
54657 } else if (!ep) {
54658 - atomic_inc(&mp->stats.xid_not_found);
54659 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54660 reject = FC_RJT_RX_ID; /* XID not found */
54661 goto out;
54662 }
54663 @@ -1080,7 +1080,7 @@ static enum fc_pf_rjt_reason fc_seq_lookup_recip(struct fc_lport *lport,
54664 } else {
54665 sp = &ep->seq;
54666 if (sp->id != fh->fh_seq_id) {
54667 - atomic_inc(&mp->stats.seq_not_found);
54668 + atomic_inc_unchecked(&mp->stats.seq_not_found);
54669 if (f_ctl & FC_FC_END_SEQ) {
54670 /*
54671 * Update sequence_id based on incoming last
54672 @@ -1531,22 +1531,22 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
54673
54674 ep = fc_exch_find(mp, ntohs(fh->fh_ox_id));
54675 if (!ep) {
54676 - atomic_inc(&mp->stats.xid_not_found);
54677 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54678 goto out;
54679 }
54680 if (ep->esb_stat & ESB_ST_COMPLETE) {
54681 - atomic_inc(&mp->stats.xid_not_found);
54682 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54683 goto rel;
54684 }
54685 if (ep->rxid == FC_XID_UNKNOWN)
54686 ep->rxid = ntohs(fh->fh_rx_id);
54687 if (ep->sid != 0 && ep->sid != ntoh24(fh->fh_d_id)) {
54688 - atomic_inc(&mp->stats.xid_not_found);
54689 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54690 goto rel;
54691 }
54692 if (ep->did != ntoh24(fh->fh_s_id) &&
54693 ep->did != FC_FID_FLOGI) {
54694 - atomic_inc(&mp->stats.xid_not_found);
54695 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54696 goto rel;
54697 }
54698 sof = fr_sof(fp);
54699 @@ -1555,7 +1555,7 @@ static void fc_exch_recv_seq_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
54700 sp->ssb_stat |= SSB_ST_RESP;
54701 sp->id = fh->fh_seq_id;
54702 } else if (sp->id != fh->fh_seq_id) {
54703 - atomic_inc(&mp->stats.seq_not_found);
54704 + atomic_inc_unchecked(&mp->stats.seq_not_found);
54705 goto rel;
54706 }
54707
54708 @@ -1618,9 +1618,9 @@ static void fc_exch_recv_resp(struct fc_exch_mgr *mp, struct fc_frame *fp)
54709 sp = fc_seq_lookup_orig(mp, fp); /* doesn't hold sequence */
54710
54711 if (!sp)
54712 - atomic_inc(&mp->stats.xid_not_found);
54713 + atomic_inc_unchecked(&mp->stats.xid_not_found);
54714 else
54715 - atomic_inc(&mp->stats.non_bls_resp);
54716 + atomic_inc_unchecked(&mp->stats.non_bls_resp);
54717
54718 fc_frame_free(fp);
54719 }
54720 @@ -2261,13 +2261,13 @@ void fc_exch_update_stats(struct fc_lport *lport)
54721
54722 list_for_each_entry(ema, &lport->ema_list, ema_list) {
54723 mp = ema->mp;
54724 - st->fc_no_free_exch += atomic_read(&mp->stats.no_free_exch);
54725 + st->fc_no_free_exch += atomic_read_unchecked(&mp->stats.no_free_exch);
54726 st->fc_no_free_exch_xid +=
54727 - atomic_read(&mp->stats.no_free_exch_xid);
54728 - st->fc_xid_not_found += atomic_read(&mp->stats.xid_not_found);
54729 - st->fc_xid_busy += atomic_read(&mp->stats.xid_busy);
54730 - st->fc_seq_not_found += atomic_read(&mp->stats.seq_not_found);
54731 - st->fc_non_bls_resp += atomic_read(&mp->stats.non_bls_resp);
54732 + atomic_read_unchecked(&mp->stats.no_free_exch_xid);
54733 + st->fc_xid_not_found += atomic_read_unchecked(&mp->stats.xid_not_found);
54734 + st->fc_xid_busy += atomic_read_unchecked(&mp->stats.xid_busy);
54735 + st->fc_seq_not_found += atomic_read_unchecked(&mp->stats.seq_not_found);
54736 + st->fc_non_bls_resp += atomic_read_unchecked(&mp->stats.non_bls_resp);
54737 }
54738 }
54739 EXPORT_SYMBOL(fc_exch_update_stats);
54740 diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
54741 index 9c706d8..d3e3ed2 100644
54742 --- a/drivers/scsi/libsas/sas_ata.c
54743 +++ b/drivers/scsi/libsas/sas_ata.c
54744 @@ -535,7 +535,7 @@ static struct ata_port_operations sas_sata_ops = {
54745 .postreset = ata_std_postreset,
54746 .error_handler = ata_std_error_handler,
54747 .post_internal_cmd = sas_ata_post_internal,
54748 - .qc_defer = ata_std_qc_defer,
54749 + .qc_defer = ata_std_qc_defer,
54750 .qc_prep = ata_noop_qc_prep,
54751 .qc_issue = sas_ata_qc_issue,
54752 .qc_fill_rtf = sas_ata_qc_fill_rtf,
54753 diff --git a/drivers/scsi/lpfc/lpfc.h b/drivers/scsi/lpfc/lpfc.h
54754 index a5a56fa..43499fd 100644
54755 --- a/drivers/scsi/lpfc/lpfc.h
54756 +++ b/drivers/scsi/lpfc/lpfc.h
54757 @@ -435,7 +435,7 @@ struct lpfc_vport {
54758 struct dentry *debug_nodelist;
54759 struct dentry *vport_debugfs_root;
54760 struct lpfc_debugfs_trc *disc_trc;
54761 - atomic_t disc_trc_cnt;
54762 + atomic_unchecked_t disc_trc_cnt;
54763 #endif
54764 uint8_t stat_data_enabled;
54765 uint8_t stat_data_blocked;
54766 @@ -885,8 +885,8 @@ struct lpfc_hba {
54767 struct timer_list fabric_block_timer;
54768 unsigned long bit_flags;
54769 #define FABRIC_COMANDS_BLOCKED 0
54770 - atomic_t num_rsrc_err;
54771 - atomic_t num_cmd_success;
54772 + atomic_unchecked_t num_rsrc_err;
54773 + atomic_unchecked_t num_cmd_success;
54774 unsigned long last_rsrc_error_time;
54775 unsigned long last_ramp_down_time;
54776 #ifdef CONFIG_SCSI_LPFC_DEBUG_FS
54777 @@ -921,7 +921,7 @@ struct lpfc_hba {
54778
54779 struct dentry *debug_slow_ring_trc;
54780 struct lpfc_debugfs_trc *slow_ring_trc;
54781 - atomic_t slow_ring_trc_cnt;
54782 + atomic_unchecked_t slow_ring_trc_cnt;
54783 /* iDiag debugfs sub-directory */
54784 struct dentry *idiag_root;
54785 struct dentry *idiag_pci_cfg;
54786 diff --git a/drivers/scsi/lpfc/lpfc_debugfs.c b/drivers/scsi/lpfc/lpfc_debugfs.c
54787 index 25aa9b9..d700a65 100644
54788 --- a/drivers/scsi/lpfc/lpfc_debugfs.c
54789 +++ b/drivers/scsi/lpfc/lpfc_debugfs.c
54790 @@ -106,7 +106,7 @@ MODULE_PARM_DESC(lpfc_debugfs_mask_disc_trc,
54791
54792 #include <linux/debugfs.h>
54793
54794 -static atomic_t lpfc_debugfs_seq_trc_cnt = ATOMIC_INIT(0);
54795 +static atomic_unchecked_t lpfc_debugfs_seq_trc_cnt = ATOMIC_INIT(0);
54796 static unsigned long lpfc_debugfs_start_time = 0L;
54797
54798 /* iDiag */
54799 @@ -147,7 +147,7 @@ lpfc_debugfs_disc_trc_data(struct lpfc_vport *vport, char *buf, int size)
54800 lpfc_debugfs_enable = 0;
54801
54802 len = 0;
54803 - index = (atomic_read(&vport->disc_trc_cnt) + 1) &
54804 + index = (atomic_read_unchecked(&vport->disc_trc_cnt) + 1) &
54805 (lpfc_debugfs_max_disc_trc - 1);
54806 for (i = index; i < lpfc_debugfs_max_disc_trc; i++) {
54807 dtp = vport->disc_trc + i;
54808 @@ -213,7 +213,7 @@ lpfc_debugfs_slow_ring_trc_data(struct lpfc_hba *phba, char *buf, int size)
54809 lpfc_debugfs_enable = 0;
54810
54811 len = 0;
54812 - index = (atomic_read(&phba->slow_ring_trc_cnt) + 1) &
54813 + index = (atomic_read_unchecked(&phba->slow_ring_trc_cnt) + 1) &
54814 (lpfc_debugfs_max_slow_ring_trc - 1);
54815 for (i = index; i < lpfc_debugfs_max_slow_ring_trc; i++) {
54816 dtp = phba->slow_ring_trc + i;
54817 @@ -646,14 +646,14 @@ lpfc_debugfs_disc_trc(struct lpfc_vport *vport, int mask, char *fmt,
54818 !vport || !vport->disc_trc)
54819 return;
54820
54821 - index = atomic_inc_return(&vport->disc_trc_cnt) &
54822 + index = atomic_inc_return_unchecked(&vport->disc_trc_cnt) &
54823 (lpfc_debugfs_max_disc_trc - 1);
54824 dtp = vport->disc_trc + index;
54825 dtp->fmt = fmt;
54826 dtp->data1 = data1;
54827 dtp->data2 = data2;
54828 dtp->data3 = data3;
54829 - dtp->seq_cnt = atomic_inc_return(&lpfc_debugfs_seq_trc_cnt);
54830 + dtp->seq_cnt = atomic_inc_return_unchecked(&lpfc_debugfs_seq_trc_cnt);
54831 dtp->jif = jiffies;
54832 #endif
54833 return;
54834 @@ -684,14 +684,14 @@ lpfc_debugfs_slow_ring_trc(struct lpfc_hba *phba, char *fmt,
54835 !phba || !phba->slow_ring_trc)
54836 return;
54837
54838 - index = atomic_inc_return(&phba->slow_ring_trc_cnt) &
54839 + index = atomic_inc_return_unchecked(&phba->slow_ring_trc_cnt) &
54840 (lpfc_debugfs_max_slow_ring_trc - 1);
54841 dtp = phba->slow_ring_trc + index;
54842 dtp->fmt = fmt;
54843 dtp->data1 = data1;
54844 dtp->data2 = data2;
54845 dtp->data3 = data3;
54846 - dtp->seq_cnt = atomic_inc_return(&lpfc_debugfs_seq_trc_cnt);
54847 + dtp->seq_cnt = atomic_inc_return_unchecked(&lpfc_debugfs_seq_trc_cnt);
54848 dtp->jif = jiffies;
54849 #endif
54850 return;
54851 @@ -4268,7 +4268,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
54852 "slow_ring buffer\n");
54853 goto debug_failed;
54854 }
54855 - atomic_set(&phba->slow_ring_trc_cnt, 0);
54856 + atomic_set_unchecked(&phba->slow_ring_trc_cnt, 0);
54857 memset(phba->slow_ring_trc, 0,
54858 (sizeof(struct lpfc_debugfs_trc) *
54859 lpfc_debugfs_max_slow_ring_trc));
54860 @@ -4314,7 +4314,7 @@ lpfc_debugfs_initialize(struct lpfc_vport *vport)
54861 "buffer\n");
54862 goto debug_failed;
54863 }
54864 - atomic_set(&vport->disc_trc_cnt, 0);
54865 + atomic_set_unchecked(&vport->disc_trc_cnt, 0);
54866
54867 snprintf(name, sizeof(name), "discovery_trace");
54868 vport->debug_disc_trc =
54869 diff --git a/drivers/scsi/lpfc/lpfc_init.c b/drivers/scsi/lpfc/lpfc_init.c
54870 index f962118..6706983 100644
54871 --- a/drivers/scsi/lpfc/lpfc_init.c
54872 +++ b/drivers/scsi/lpfc/lpfc_init.c
54873 @@ -11416,8 +11416,10 @@ lpfc_init(void)
54874 "misc_register returned with status %d", error);
54875
54876 if (lpfc_enable_npiv) {
54877 - lpfc_transport_functions.vport_create = lpfc_vport_create;
54878 - lpfc_transport_functions.vport_delete = lpfc_vport_delete;
54879 + pax_open_kernel();
54880 + *(void **)&lpfc_transport_functions.vport_create = lpfc_vport_create;
54881 + *(void **)&lpfc_transport_functions.vport_delete = lpfc_vport_delete;
54882 + pax_close_kernel();
54883 }
54884 lpfc_transport_template =
54885 fc_attach_transport(&lpfc_transport_functions);
54886 diff --git a/drivers/scsi/lpfc/lpfc_scsi.c b/drivers/scsi/lpfc/lpfc_scsi.c
54887 index e5eb40d..056dcd4 100644
54888 --- a/drivers/scsi/lpfc/lpfc_scsi.c
54889 +++ b/drivers/scsi/lpfc/lpfc_scsi.c
54890 @@ -261,7 +261,7 @@ lpfc_rampdown_queue_depth(struct lpfc_hba *phba)
54891 unsigned long expires;
54892
54893 spin_lock_irqsave(&phba->hbalock, flags);
54894 - atomic_inc(&phba->num_rsrc_err);
54895 + atomic_inc_unchecked(&phba->num_rsrc_err);
54896 phba->last_rsrc_error_time = jiffies;
54897
54898 expires = phba->last_ramp_down_time + QUEUE_RAMP_DOWN_INTERVAL;
54899 @@ -303,8 +303,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
54900 unsigned long num_rsrc_err, num_cmd_success;
54901 int i;
54902
54903 - num_rsrc_err = atomic_read(&phba->num_rsrc_err);
54904 - num_cmd_success = atomic_read(&phba->num_cmd_success);
54905 + num_rsrc_err = atomic_read_unchecked(&phba->num_rsrc_err);
54906 + num_cmd_success = atomic_read_unchecked(&phba->num_cmd_success);
54907
54908 /*
54909 * The error and success command counters are global per
54910 @@ -331,8 +331,8 @@ lpfc_ramp_down_queue_handler(struct lpfc_hba *phba)
54911 }
54912 }
54913 lpfc_destroy_vport_work_array(phba, vports);
54914 - atomic_set(&phba->num_rsrc_err, 0);
54915 - atomic_set(&phba->num_cmd_success, 0);
54916 + atomic_set_unchecked(&phba->num_rsrc_err, 0);
54917 + atomic_set_unchecked(&phba->num_cmd_success, 0);
54918 }
54919
54920 /**
54921 diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
54922 index 20c3754..1b05e727 100644
54923 --- a/drivers/scsi/megaraid/megaraid_sas.h
54924 +++ b/drivers/scsi/megaraid/megaraid_sas.h
54925 @@ -1700,7 +1700,7 @@ struct megasas_instance {
54926 s8 init_id;
54927
54928 u16 max_num_sge;
54929 - u16 max_fw_cmds;
54930 + u16 max_fw_cmds __intentional_overflow(-1);
54931 u16 max_mfi_cmds;
54932 u16 max_scsi_cmds;
54933 u32 max_sectors_per_req;
54934 diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
54935 index 3f26147..ee8efd1 100644
54936 --- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
54937 +++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
54938 @@ -1509,7 +1509,7 @@ _scsih_get_resync(struct device *dev)
54939 {
54940 struct scsi_device *sdev = to_scsi_device(dev);
54941 struct MPT2SAS_ADAPTER *ioc = shost_priv(sdev->host);
54942 - static struct _raid_device *raid_device;
54943 + struct _raid_device *raid_device;
54944 unsigned long flags;
54945 Mpi2RaidVolPage0_t vol_pg0;
54946 Mpi2ConfigReply_t mpi_reply;
54947 @@ -1561,7 +1561,7 @@ _scsih_get_state(struct device *dev)
54948 {
54949 struct scsi_device *sdev = to_scsi_device(dev);
54950 struct MPT2SAS_ADAPTER *ioc = shost_priv(sdev->host);
54951 - static struct _raid_device *raid_device;
54952 + struct _raid_device *raid_device;
54953 unsigned long flags;
54954 Mpi2RaidVolPage0_t vol_pg0;
54955 Mpi2ConfigReply_t mpi_reply;
54956 @@ -6641,7 +6641,7 @@ _scsih_sas_ir_operation_status_event(struct MPT2SAS_ADAPTER *ioc,
54957 Mpi2EventDataIrOperationStatus_t *event_data =
54958 (Mpi2EventDataIrOperationStatus_t *)
54959 fw_event->event_data;
54960 - static struct _raid_device *raid_device;
54961 + struct _raid_device *raid_device;
54962 unsigned long flags;
54963 u16 handle;
54964
54965 @@ -7112,7 +7112,7 @@ _scsih_scan_for_devices_after_reset(struct MPT2SAS_ADAPTER *ioc)
54966 u64 sas_address;
54967 struct _sas_device *sas_device;
54968 struct _sas_node *expander_device;
54969 - static struct _raid_device *raid_device;
54970 + struct _raid_device *raid_device;
54971 u8 retry_count;
54972 unsigned long flags;
54973
54974 diff --git a/drivers/scsi/pmcraid.c b/drivers/scsi/pmcraid.c
54975 index ed31d8c..ab856b3 100644
54976 --- a/drivers/scsi/pmcraid.c
54977 +++ b/drivers/scsi/pmcraid.c
54978 @@ -200,8 +200,8 @@ static int pmcraid_slave_alloc(struct scsi_device *scsi_dev)
54979 res->scsi_dev = scsi_dev;
54980 scsi_dev->hostdata = res;
54981 res->change_detected = 0;
54982 - atomic_set(&res->read_failures, 0);
54983 - atomic_set(&res->write_failures, 0);
54984 + atomic_set_unchecked(&res->read_failures, 0);
54985 + atomic_set_unchecked(&res->write_failures, 0);
54986 rc = 0;
54987 }
54988 spin_unlock_irqrestore(&pinstance->resource_lock, lock_flags);
54989 @@ -2640,9 +2640,9 @@ static int pmcraid_error_handler(struct pmcraid_cmd *cmd)
54990
54991 /* If this was a SCSI read/write command keep count of errors */
54992 if (SCSI_CMD_TYPE(scsi_cmd->cmnd[0]) == SCSI_READ_CMD)
54993 - atomic_inc(&res->read_failures);
54994 + atomic_inc_unchecked(&res->read_failures);
54995 else if (SCSI_CMD_TYPE(scsi_cmd->cmnd[0]) == SCSI_WRITE_CMD)
54996 - atomic_inc(&res->write_failures);
54997 + atomic_inc_unchecked(&res->write_failures);
54998
54999 if (!RES_IS_GSCSI(res->cfg_entry) &&
55000 masked_ioasc != PMCRAID_IOASC_HW_DEVICE_BUS_STATUS_ERROR) {
55001 @@ -3468,7 +3468,7 @@ static int pmcraid_queuecommand_lck(
55002 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
55003 * hrrq_id assigned here in queuecommand
55004 */
55005 - ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) %
55006 + ioarcb->hrrq_id = atomic_add_return_unchecked(1, &(pinstance->last_message_id)) %
55007 pinstance->num_hrrq;
55008 cmd->cmd_done = pmcraid_io_done;
55009
55010 @@ -3782,7 +3782,7 @@ static long pmcraid_ioctl_passthrough(
55011 * block of scsi_cmd which is re-used (e.g. cancel/abort), which uses
55012 * hrrq_id assigned here in queuecommand
55013 */
55014 - ioarcb->hrrq_id = atomic_add_return(1, &(pinstance->last_message_id)) %
55015 + ioarcb->hrrq_id = atomic_add_return_unchecked(1, &(pinstance->last_message_id)) %
55016 pinstance->num_hrrq;
55017
55018 if (request_size) {
55019 @@ -4420,7 +4420,7 @@ static void pmcraid_worker_function(struct work_struct *workp)
55020
55021 pinstance = container_of(workp, struct pmcraid_instance, worker_q);
55022 /* add resources only after host is added into system */
55023 - if (!atomic_read(&pinstance->expose_resources))
55024 + if (!atomic_read_unchecked(&pinstance->expose_resources))
55025 return;
55026
55027 fw_version = be16_to_cpu(pinstance->inq_data->fw_version);
55028 @@ -5237,8 +5237,8 @@ static int pmcraid_init_instance(struct pci_dev *pdev, struct Scsi_Host *host,
55029 init_waitqueue_head(&pinstance->reset_wait_q);
55030
55031 atomic_set(&pinstance->outstanding_cmds, 0);
55032 - atomic_set(&pinstance->last_message_id, 0);
55033 - atomic_set(&pinstance->expose_resources, 0);
55034 + atomic_set_unchecked(&pinstance->last_message_id, 0);
55035 + atomic_set_unchecked(&pinstance->expose_resources, 0);
55036
55037 INIT_LIST_HEAD(&pinstance->free_res_q);
55038 INIT_LIST_HEAD(&pinstance->used_res_q);
55039 @@ -5951,7 +5951,7 @@ static int pmcraid_probe(struct pci_dev *pdev,
55040 /* Schedule worker thread to handle CCN and take care of adding and
55041 * removing devices to OS
55042 */
55043 - atomic_set(&pinstance->expose_resources, 1);
55044 + atomic_set_unchecked(&pinstance->expose_resources, 1);
55045 schedule_work(&pinstance->worker_q);
55046 return rc;
55047
55048 diff --git a/drivers/scsi/pmcraid.h b/drivers/scsi/pmcraid.h
55049 index e1d150f..6c6df44 100644
55050 --- a/drivers/scsi/pmcraid.h
55051 +++ b/drivers/scsi/pmcraid.h
55052 @@ -748,7 +748,7 @@ struct pmcraid_instance {
55053 struct pmcraid_isr_param hrrq_vector[PMCRAID_NUM_MSIX_VECTORS];
55054
55055 /* Message id as filled in last fired IOARCB, used to identify HRRQ */
55056 - atomic_t last_message_id;
55057 + atomic_unchecked_t last_message_id;
55058
55059 /* configuration table */
55060 struct pmcraid_config_table *cfg_table;
55061 @@ -777,7 +777,7 @@ struct pmcraid_instance {
55062 atomic_t outstanding_cmds;
55063
55064 /* should add/delete resources to mid-layer now ?*/
55065 - atomic_t expose_resources;
55066 + atomic_unchecked_t expose_resources;
55067
55068
55069
55070 @@ -813,8 +813,8 @@ struct pmcraid_resource_entry {
55071 struct pmcraid_config_table_entry_ext cfg_entry_ext;
55072 };
55073 struct scsi_device *scsi_dev; /* Link scsi_device structure */
55074 - atomic_t read_failures; /* count of failed READ commands */
55075 - atomic_t write_failures; /* count of failed WRITE commands */
55076 + atomic_unchecked_t read_failures; /* count of failed READ commands */
55077 + atomic_unchecked_t write_failures; /* count of failed WRITE commands */
55078
55079 /* To indicate add/delete/modify during CCN */
55080 u8 change_detected;
55081 diff --git a/drivers/scsi/qla2xxx/qla_attr.c b/drivers/scsi/qla2xxx/qla_attr.c
55082 index 437254e..a66eb82 100644
55083 --- a/drivers/scsi/qla2xxx/qla_attr.c
55084 +++ b/drivers/scsi/qla2xxx/qla_attr.c
55085 @@ -2192,7 +2192,7 @@ qla24xx_vport_disable(struct fc_vport *fc_vport, bool disable)
55086 return 0;
55087 }
55088
55089 -struct fc_function_template qla2xxx_transport_functions = {
55090 +fc_function_template_no_const qla2xxx_transport_functions = {
55091
55092 .show_host_node_name = 1,
55093 .show_host_port_name = 1,
55094 @@ -2240,7 +2240,7 @@ struct fc_function_template qla2xxx_transport_functions = {
55095 .bsg_timeout = qla24xx_bsg_timeout,
55096 };
55097
55098 -struct fc_function_template qla2xxx_transport_vport_functions = {
55099 +fc_function_template_no_const qla2xxx_transport_vport_functions = {
55100
55101 .show_host_node_name = 1,
55102 .show_host_port_name = 1,
55103 diff --git a/drivers/scsi/qla2xxx/qla_gbl.h b/drivers/scsi/qla2xxx/qla_gbl.h
55104 index 7686bfe..4710893 100644
55105 --- a/drivers/scsi/qla2xxx/qla_gbl.h
55106 +++ b/drivers/scsi/qla2xxx/qla_gbl.h
55107 @@ -571,8 +571,8 @@ extern void qla2x00_get_sym_node_name(scsi_qla_host_t *, uint8_t *, size_t);
55108 struct device_attribute;
55109 extern struct device_attribute *qla2x00_host_attrs[];
55110 struct fc_function_template;
55111 -extern struct fc_function_template qla2xxx_transport_functions;
55112 -extern struct fc_function_template qla2xxx_transport_vport_functions;
55113 +extern fc_function_template_no_const qla2xxx_transport_functions;
55114 +extern fc_function_template_no_const qla2xxx_transport_vport_functions;
55115 extern void qla2x00_alloc_sysfs_attr(scsi_qla_host_t *);
55116 extern void qla2x00_free_sysfs_attr(scsi_qla_host_t *, bool);
55117 extern void qla2x00_init_host_attr(scsi_qla_host_t *);
55118 diff --git a/drivers/scsi/qla2xxx/qla_os.c b/drivers/scsi/qla2xxx/qla_os.c
55119 index 8a5cac8..4eba6ab 100644
55120 --- a/drivers/scsi/qla2xxx/qla_os.c
55121 +++ b/drivers/scsi/qla2xxx/qla_os.c
55122 @@ -1435,8 +1435,10 @@ qla2x00_config_dma_addressing(struct qla_hw_data *ha)
55123 !pci_set_consistent_dma_mask(ha->pdev, DMA_BIT_MASK(64))) {
55124 /* Ok, a 64bit DMA mask is applicable. */
55125 ha->flags.enable_64bit_addressing = 1;
55126 - ha->isp_ops->calc_req_entries = qla2x00_calc_iocbs_64;
55127 - ha->isp_ops->build_iocbs = qla2x00_build_scsi_iocbs_64;
55128 + pax_open_kernel();
55129 + *(void **)&ha->isp_ops->calc_req_entries = qla2x00_calc_iocbs_64;
55130 + *(void **)&ha->isp_ops->build_iocbs = qla2x00_build_scsi_iocbs_64;
55131 + pax_close_kernel();
55132 return;
55133 }
55134 }
55135 diff --git a/drivers/scsi/qla4xxx/ql4_def.h b/drivers/scsi/qla4xxx/ql4_def.h
55136 index a7cfc27..151f483 100644
55137 --- a/drivers/scsi/qla4xxx/ql4_def.h
55138 +++ b/drivers/scsi/qla4xxx/ql4_def.h
55139 @@ -306,7 +306,7 @@ struct ddb_entry {
55140 * (4000 only) */
55141 atomic_t relogin_timer; /* Max Time to wait for
55142 * relogin to complete */
55143 - atomic_t relogin_retry_count; /* Num of times relogin has been
55144 + atomic_unchecked_t relogin_retry_count; /* Num of times relogin has been
55145 * retried */
55146 uint32_t default_time2wait; /* Default Min time between
55147 * relogins (+aens) */
55148 diff --git a/drivers/scsi/qla4xxx/ql4_os.c b/drivers/scsi/qla4xxx/ql4_os.c
55149 index 6d25879..3031a9f 100644
55150 --- a/drivers/scsi/qla4xxx/ql4_os.c
55151 +++ b/drivers/scsi/qla4xxx/ql4_os.c
55152 @@ -4491,12 +4491,12 @@ static void qla4xxx_check_relogin_flash_ddb(struct iscsi_cls_session *cls_sess)
55153 */
55154 if (!iscsi_is_session_online(cls_sess)) {
55155 /* Reset retry relogin timer */
55156 - atomic_inc(&ddb_entry->relogin_retry_count);
55157 + atomic_inc_unchecked(&ddb_entry->relogin_retry_count);
55158 DEBUG2(ql4_printk(KERN_INFO, ha,
55159 "%s: index[%d] relogin timed out-retrying"
55160 " relogin (%d), retry (%d)\n", __func__,
55161 ddb_entry->fw_ddb_index,
55162 - atomic_read(&ddb_entry->relogin_retry_count),
55163 + atomic_read_unchecked(&ddb_entry->relogin_retry_count),
55164 ddb_entry->default_time2wait + 4));
55165 set_bit(DPC_RELOGIN_DEVICE, &ha->dpc_flags);
55166 atomic_set(&ddb_entry->retry_relogin_timer,
55167 @@ -6604,7 +6604,7 @@ static void qla4xxx_setup_flash_ddb_entry(struct scsi_qla_host *ha,
55168
55169 atomic_set(&ddb_entry->retry_relogin_timer, INVALID_ENTRY);
55170 atomic_set(&ddb_entry->relogin_timer, 0);
55171 - atomic_set(&ddb_entry->relogin_retry_count, 0);
55172 + atomic_set_unchecked(&ddb_entry->relogin_retry_count, 0);
55173 def_timeout = le16_to_cpu(ddb_entry->fw_ddb_entry.def_timeout);
55174 ddb_entry->default_relogin_timeout =
55175 (def_timeout > LOGIN_TOV) && (def_timeout < LOGIN_TOV * 10) ?
55176 diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
55177 index 207d6a7..bf155b5 100644
55178 --- a/drivers/scsi/scsi.c
55179 +++ b/drivers/scsi/scsi.c
55180 @@ -591,7 +591,7 @@ void scsi_finish_command(struct scsi_cmnd *cmd)
55181
55182 good_bytes = scsi_bufflen(cmd);
55183 if (cmd->request->cmd_type != REQ_TYPE_BLOCK_PC) {
55184 - int old_good_bytes = good_bytes;
55185 + unsigned int old_good_bytes = good_bytes;
55186 drv = scsi_cmd_to_driver(cmd);
55187 if (drv->done)
55188 good_bytes = drv->done(cmd);
55189 diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
55190 index 448ebda..9bd345f 100644
55191 --- a/drivers/scsi/scsi_lib.c
55192 +++ b/drivers/scsi/scsi_lib.c
55193 @@ -1597,7 +1597,7 @@ static void scsi_kill_request(struct request *req, struct request_queue *q)
55194 shost = sdev->host;
55195 scsi_init_cmd_errh(cmd);
55196 cmd->result = DID_NO_CONNECT << 16;
55197 - atomic_inc(&cmd->device->iorequest_cnt);
55198 + atomic_inc_unchecked(&cmd->device->iorequest_cnt);
55199
55200 /*
55201 * SCSI request completion path will do scsi_device_unbusy(),
55202 @@ -1620,9 +1620,9 @@ static void scsi_softirq_done(struct request *rq)
55203
55204 INIT_LIST_HEAD(&cmd->eh_entry);
55205
55206 - atomic_inc(&cmd->device->iodone_cnt);
55207 + atomic_inc_unchecked(&cmd->device->iodone_cnt);
55208 if (cmd->result)
55209 - atomic_inc(&cmd->device->ioerr_cnt);
55210 + atomic_inc_unchecked(&cmd->device->ioerr_cnt);
55211
55212 disposition = scsi_decide_disposition(cmd);
55213 if (disposition != SUCCESS &&
55214 @@ -1663,7 +1663,7 @@ static int scsi_dispatch_cmd(struct scsi_cmnd *cmd)
55215 struct Scsi_Host *host = cmd->device->host;
55216 int rtn = 0;
55217
55218 - atomic_inc(&cmd->device->iorequest_cnt);
55219 + atomic_inc_unchecked(&cmd->device->iorequest_cnt);
55220
55221 /* check if the device is still usable */
55222 if (unlikely(cmd->device->sdev_state == SDEV_DEL)) {
55223 diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
55224 index 9ad4116..4e736fc 100644
55225 --- a/drivers/scsi/scsi_sysfs.c
55226 +++ b/drivers/scsi/scsi_sysfs.c
55227 @@ -788,7 +788,7 @@ show_iostat_##field(struct device *dev, struct device_attribute *attr, \
55228 char *buf) \
55229 { \
55230 struct scsi_device *sdev = to_scsi_device(dev); \
55231 - unsigned long long count = atomic_read(&sdev->field); \
55232 + unsigned long long count = atomic_read_unchecked(&sdev->field); \
55233 return snprintf(buf, 20, "0x%llx\n", count); \
55234 } \
55235 static DEVICE_ATTR(field, S_IRUGO, show_iostat_##field, NULL)
55236 diff --git a/drivers/scsi/scsi_transport_fc.c b/drivers/scsi/scsi_transport_fc.c
55237 index 24eaaf6..de30ec9 100644
55238 --- a/drivers/scsi/scsi_transport_fc.c
55239 +++ b/drivers/scsi/scsi_transport_fc.c
55240 @@ -502,7 +502,7 @@ static DECLARE_TRANSPORT_CLASS(fc_vport_class,
55241 * Netlink Infrastructure
55242 */
55243
55244 -static atomic_t fc_event_seq;
55245 +static atomic_unchecked_t fc_event_seq;
55246
55247 /**
55248 * fc_get_event_number - Obtain the next sequential FC event number
55249 @@ -515,7 +515,7 @@ static atomic_t fc_event_seq;
55250 u32
55251 fc_get_event_number(void)
55252 {
55253 - return atomic_add_return(1, &fc_event_seq);
55254 + return atomic_add_return_unchecked(1, &fc_event_seq);
55255 }
55256 EXPORT_SYMBOL(fc_get_event_number);
55257
55258 @@ -659,7 +659,7 @@ static __init int fc_transport_init(void)
55259 {
55260 int error;
55261
55262 - atomic_set(&fc_event_seq, 0);
55263 + atomic_set_unchecked(&fc_event_seq, 0);
55264
55265 error = transport_class_register(&fc_host_class);
55266 if (error)
55267 @@ -849,7 +849,7 @@ static int fc_str_to_dev_loss(const char *buf, unsigned long *val)
55268 char *cp;
55269
55270 *val = simple_strtoul(buf, &cp, 0);
55271 - if ((*cp && (*cp != '\n')) || (*val < 0))
55272 + if (*cp && (*cp != '\n'))
55273 return -EINVAL;
55274 /*
55275 * Check for overflow; dev_loss_tmo is u32
55276 diff --git a/drivers/scsi/scsi_transport_iscsi.c b/drivers/scsi/scsi_transport_iscsi.c
55277 index 55647aa..b647d05 100644
55278 --- a/drivers/scsi/scsi_transport_iscsi.c
55279 +++ b/drivers/scsi/scsi_transport_iscsi.c
55280 @@ -79,7 +79,7 @@ struct iscsi_internal {
55281 struct transport_container session_cont;
55282 };
55283
55284 -static atomic_t iscsi_session_nr; /* sysfs session id for next new session */
55285 +static atomic_unchecked_t iscsi_session_nr; /* sysfs session id for next new session */
55286 static struct workqueue_struct *iscsi_eh_timer_workq;
55287
55288 static DEFINE_IDA(iscsi_sess_ida);
55289 @@ -2073,7 +2073,7 @@ int iscsi_add_session(struct iscsi_cls_session *session, unsigned int target_id)
55290 int err;
55291
55292 ihost = shost->shost_data;
55293 - session->sid = atomic_add_return(1, &iscsi_session_nr);
55294 + session->sid = atomic_add_return_unchecked(1, &iscsi_session_nr);
55295
55296 if (target_id == ISCSI_MAX_TARGET) {
55297 id = ida_simple_get(&iscsi_sess_ida, 0, 0, GFP_KERNEL);
55298 @@ -4517,7 +4517,7 @@ static __init int iscsi_transport_init(void)
55299 printk(KERN_INFO "Loading iSCSI transport class v%s.\n",
55300 ISCSI_TRANSPORT_VERSION);
55301
55302 - atomic_set(&iscsi_session_nr, 0);
55303 + atomic_set_unchecked(&iscsi_session_nr, 0);
55304
55305 err = class_register(&iscsi_transport_class);
55306 if (err)
55307 diff --git a/drivers/scsi/scsi_transport_srp.c b/drivers/scsi/scsi_transport_srp.c
55308 index e3cd3ec..00560ec 100644
55309 --- a/drivers/scsi/scsi_transport_srp.c
55310 +++ b/drivers/scsi/scsi_transport_srp.c
55311 @@ -35,7 +35,7 @@
55312 #include "scsi_priv.h"
55313
55314 struct srp_host_attrs {
55315 - atomic_t next_port_id;
55316 + atomic_unchecked_t next_port_id;
55317 };
55318 #define to_srp_host_attrs(host) ((struct srp_host_attrs *)(host)->shost_data)
55319
55320 @@ -105,7 +105,7 @@ static int srp_host_setup(struct transport_container *tc, struct device *dev,
55321 struct Scsi_Host *shost = dev_to_shost(dev);
55322 struct srp_host_attrs *srp_host = to_srp_host_attrs(shost);
55323
55324 - atomic_set(&srp_host->next_port_id, 0);
55325 + atomic_set_unchecked(&srp_host->next_port_id, 0);
55326 return 0;
55327 }
55328
55329 @@ -752,7 +752,7 @@ struct srp_rport *srp_rport_add(struct Scsi_Host *shost,
55330 rport_fast_io_fail_timedout);
55331 INIT_DELAYED_WORK(&rport->dev_loss_work, rport_dev_loss_timedout);
55332
55333 - id = atomic_inc_return(&to_srp_host_attrs(shost)->next_port_id);
55334 + id = atomic_inc_return_unchecked(&to_srp_host_attrs(shost)->next_port_id);
55335 dev_set_name(&rport->dev, "port-%d:%d", shost->host_no, id);
55336
55337 transport_setup_device(&rport->dev);
55338 diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
55339 index a20da8c..7f47bac 100644
55340 --- a/drivers/scsi/sd.c
55341 +++ b/drivers/scsi/sd.c
55342 @@ -111,7 +111,7 @@ static int sd_resume(struct device *);
55343 static void sd_rescan(struct device *);
55344 static int sd_init_command(struct scsi_cmnd *SCpnt);
55345 static void sd_uninit_command(struct scsi_cmnd *SCpnt);
55346 -static int sd_done(struct scsi_cmnd *);
55347 +static unsigned int sd_done(struct scsi_cmnd *);
55348 static int sd_eh_action(struct scsi_cmnd *, int);
55349 static void sd_read_capacity(struct scsi_disk *sdkp, unsigned char *buffer);
55350 static void scsi_disk_release(struct device *cdev);
55351 @@ -1646,7 +1646,7 @@ static unsigned int sd_completed_bytes(struct scsi_cmnd *scmd)
55352 *
55353 * Note: potentially run from within an ISR. Must not block.
55354 **/
55355 -static int sd_done(struct scsi_cmnd *SCpnt)
55356 +static unsigned int sd_done(struct scsi_cmnd *SCpnt)
55357 {
55358 int result = SCpnt->result;
55359 unsigned int good_bytes = result ? 0 : scsi_bufflen(SCpnt);
55360 @@ -2973,7 +2973,7 @@ static int sd_probe(struct device *dev)
55361 sdkp->disk = gd;
55362 sdkp->index = index;
55363 atomic_set(&sdkp->openers, 0);
55364 - atomic_set(&sdkp->device->ioerr_cnt, 0);
55365 + atomic_set_unchecked(&sdkp->device->ioerr_cnt, 0);
55366
55367 if (!sdp->request_queue->rq_timeout) {
55368 if (sdp->type != TYPE_MOD)
55369 diff --git a/drivers/scsi/sg.c b/drivers/scsi/sg.c
55370 index 9d7b7db..33ecc51 100644
55371 --- a/drivers/scsi/sg.c
55372 +++ b/drivers/scsi/sg.c
55373 @@ -1083,7 +1083,7 @@ sg_ioctl(struct file *filp, unsigned int cmd_in, unsigned long arg)
55374 sdp->disk->disk_name,
55375 MKDEV(SCSI_GENERIC_MAJOR, sdp->index),
55376 NULL,
55377 - (char *)arg);
55378 + (char __user *)arg);
55379 case BLKTRACESTART:
55380 return blk_trace_startstop(sdp->device->request_queue, 1);
55381 case BLKTRACESTOP:
55382 diff --git a/drivers/scsi/sr.c b/drivers/scsi/sr.c
55383 index 8bd54a6..58fa0d6 100644
55384 --- a/drivers/scsi/sr.c
55385 +++ b/drivers/scsi/sr.c
55386 @@ -80,7 +80,7 @@ static DEFINE_MUTEX(sr_mutex);
55387 static int sr_probe(struct device *);
55388 static int sr_remove(struct device *);
55389 static int sr_init_command(struct scsi_cmnd *SCpnt);
55390 -static int sr_done(struct scsi_cmnd *);
55391 +static unsigned int sr_done(struct scsi_cmnd *);
55392 static int sr_runtime_suspend(struct device *dev);
55393
55394 static struct dev_pm_ops sr_pm_ops = {
55395 @@ -312,13 +312,13 @@ do_tur:
55396 * It will be notified on the end of a SCSI read / write, and will take one
55397 * of several actions based on success or failure.
55398 */
55399 -static int sr_done(struct scsi_cmnd *SCpnt)
55400 +static unsigned int sr_done(struct scsi_cmnd *SCpnt)
55401 {
55402 int result = SCpnt->result;
55403 - int this_count = scsi_bufflen(SCpnt);
55404 - int good_bytes = (result == 0 ? this_count : 0);
55405 - int block_sectors = 0;
55406 - long error_sector;
55407 + unsigned int this_count = scsi_bufflen(SCpnt);
55408 + unsigned int good_bytes = (result == 0 ? this_count : 0);
55409 + unsigned int block_sectors = 0;
55410 + sector_t error_sector;
55411 struct scsi_cd *cd = scsi_cd(SCpnt->request->rq_disk);
55412
55413 #ifdef DEBUG
55414 @@ -351,9 +351,12 @@ static int sr_done(struct scsi_cmnd *SCpnt)
55415 if (cd->device->sector_size == 2048)
55416 error_sector <<= 2;
55417 error_sector &= ~(block_sectors - 1);
55418 - good_bytes = (error_sector -
55419 - blk_rq_pos(SCpnt->request)) << 9;
55420 - if (good_bytes < 0 || good_bytes >= this_count)
55421 + if (error_sector >= blk_rq_pos(SCpnt->request)) {
55422 + good_bytes = (error_sector -
55423 + blk_rq_pos(SCpnt->request)) << 9;
55424 + if (good_bytes >= this_count)
55425 + good_bytes = 0;
55426 + } else
55427 good_bytes = 0;
55428 /*
55429 * The SCSI specification allows for the value
55430 diff --git a/drivers/soc/tegra/fuse/fuse-tegra.c b/drivers/soc/tegra/fuse/fuse-tegra.c
55431 index c0d660f..24a5854 100644
55432 --- a/drivers/soc/tegra/fuse/fuse-tegra.c
55433 +++ b/drivers/soc/tegra/fuse/fuse-tegra.c
55434 @@ -71,7 +71,7 @@ static ssize_t fuse_read(struct file *fd, struct kobject *kobj,
55435 return i;
55436 }
55437
55438 -static struct bin_attribute fuse_bin_attr = {
55439 +static bin_attribute_no_const fuse_bin_attr = {
55440 .attr = { .name = "fuse", .mode = S_IRUGO, },
55441 .read = fuse_read,
55442 };
55443 diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
55444 index 9ce2f15..1ff9b36 100644
55445 --- a/drivers/spi/spi.c
55446 +++ b/drivers/spi/spi.c
55447 @@ -2215,7 +2215,7 @@ int spi_bus_unlock(struct spi_master *master)
55448 EXPORT_SYMBOL_GPL(spi_bus_unlock);
55449
55450 /* portable code must never pass more than 32 bytes */
55451 -#define SPI_BUFSIZ max(32, SMP_CACHE_BYTES)
55452 +#define SPI_BUFSIZ max(32UL, SMP_CACHE_BYTES)
55453
55454 static u8 *buf;
55455
55456 diff --git a/drivers/staging/android/timed_output.c b/drivers/staging/android/timed_output.c
55457 index b41429f..2de5373 100644
55458 --- a/drivers/staging/android/timed_output.c
55459 +++ b/drivers/staging/android/timed_output.c
55460 @@ -25,7 +25,7 @@
55461 #include "timed_output.h"
55462
55463 static struct class *timed_output_class;
55464 -static atomic_t device_count;
55465 +static atomic_unchecked_t device_count;
55466
55467 static ssize_t enable_show(struct device *dev, struct device_attribute *attr,
55468 char *buf)
55469 @@ -65,7 +65,7 @@ static int create_timed_output_class(void)
55470 timed_output_class = class_create(THIS_MODULE, "timed_output");
55471 if (IS_ERR(timed_output_class))
55472 return PTR_ERR(timed_output_class);
55473 - atomic_set(&device_count, 0);
55474 + atomic_set_unchecked(&device_count, 0);
55475 timed_output_class->dev_groups = timed_output_groups;
55476 }
55477
55478 @@ -83,7 +83,7 @@ int timed_output_dev_register(struct timed_output_dev *tdev)
55479 if (ret < 0)
55480 return ret;
55481
55482 - tdev->index = atomic_inc_return(&device_count);
55483 + tdev->index = atomic_inc_return_unchecked(&device_count);
55484 tdev->dev = device_create(timed_output_class, NULL,
55485 MKDEV(0, tdev->index), NULL, "%s", tdev->name);
55486 if (IS_ERR(tdev->dev))
55487 diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
55488 index 985d94b..49c59fb 100644
55489 --- a/drivers/staging/comedi/comedi_fops.c
55490 +++ b/drivers/staging/comedi/comedi_fops.c
55491 @@ -314,8 +314,8 @@ static void comedi_file_reset(struct file *file)
55492 }
55493 cfp->last_attached = dev->attached;
55494 cfp->last_detach_count = dev->detach_count;
55495 - ACCESS_ONCE(cfp->read_subdev) = read_s;
55496 - ACCESS_ONCE(cfp->write_subdev) = write_s;
55497 + ACCESS_ONCE_RW(cfp->read_subdev) = read_s;
55498 + ACCESS_ONCE_RW(cfp->write_subdev) = write_s;
55499 }
55500
55501 static void comedi_file_check(struct file *file)
55502 @@ -1983,7 +1983,7 @@ static int do_setrsubd_ioctl(struct comedi_device *dev, unsigned long arg,
55503 !(s_old->async->cmd.flags & CMDF_WRITE))
55504 return -EBUSY;
55505
55506 - ACCESS_ONCE(cfp->read_subdev) = s_new;
55507 + ACCESS_ONCE_RW(cfp->read_subdev) = s_new;
55508 return 0;
55509 }
55510
55511 @@ -2025,7 +2025,7 @@ static int do_setwsubd_ioctl(struct comedi_device *dev, unsigned long arg,
55512 (s_old->async->cmd.flags & CMDF_WRITE))
55513 return -EBUSY;
55514
55515 - ACCESS_ONCE(cfp->write_subdev) = s_new;
55516 + ACCESS_ONCE_RW(cfp->write_subdev) = s_new;
55517 return 0;
55518 }
55519
55520 diff --git a/drivers/staging/dgnc/dgnc_mgmt.c b/drivers/staging/dgnc/dgnc_mgmt.c
55521 index b13318a..883e2a8 100644
55522 --- a/drivers/staging/dgnc/dgnc_mgmt.c
55523 +++ b/drivers/staging/dgnc/dgnc_mgmt.c
55524 @@ -115,6 +115,7 @@ long dgnc_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
55525
55526 spin_lock_irqsave(&dgnc_global_lock, flags);
55527
55528 + memset(&ddi, 0, sizeof(ddi));
55529 ddi.dinfo_nboards = dgnc_NumBoards;
55530 sprintf(ddi.dinfo_version, "%s", DG_PART);
55531
55532 diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbtft-core.c
55533 index 9cc8141..ffd5039 100644
55534 --- a/drivers/staging/fbtft/fbtft-core.c
55535 +++ b/drivers/staging/fbtft/fbtft-core.c
55536 @@ -681,7 +681,7 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_display *display,
55537 {
55538 struct fb_info *info;
55539 struct fbtft_par *par;
55540 - struct fb_ops *fbops = NULL;
55541 + fb_ops_no_const *fbops = NULL;
55542 struct fb_deferred_io *fbdefio = NULL;
55543 struct fbtft_platform_data *pdata = dev->platform_data;
55544 u8 *vmem = NULL;
55545 diff --git a/drivers/staging/fbtft/fbtft.h b/drivers/staging/fbtft/fbtft.h
55546 index 7d817eb..d22e49e 100644
55547 --- a/drivers/staging/fbtft/fbtft.h
55548 +++ b/drivers/staging/fbtft/fbtft.h
55549 @@ -106,7 +106,7 @@ struct fbtft_ops {
55550
55551 int (*set_var)(struct fbtft_par *par);
55552 int (*set_gamma)(struct fbtft_par *par, unsigned long *curves);
55553 -};
55554 +} __no_const;
55555
55556 /**
55557 * struct fbtft_display - Describes the display properties
55558 diff --git a/drivers/staging/gdm724x/gdm_tty.c b/drivers/staging/gdm724x/gdm_tty.c
55559 index 001348c..cfaac8a 100644
55560 --- a/drivers/staging/gdm724x/gdm_tty.c
55561 +++ b/drivers/staging/gdm724x/gdm_tty.c
55562 @@ -44,7 +44,7 @@
55563 #define gdm_tty_send_control(n, r, v, d, l) (\
55564 n->tty_dev->send_control(n->tty_dev->priv_dev, r, v, d, l))
55565
55566 -#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && gdm->port.count)
55567 +#define GDM_TTY_READY(gdm) (gdm && gdm->tty_dev && atomic_read(&gdm->port.count))
55568
55569 static struct tty_driver *gdm_driver[TTY_MAX_COUNT];
55570 static struct gdm *gdm_table[TTY_MAX_COUNT][GDM_TTY_MINOR];
55571 diff --git a/drivers/staging/iio/accel/lis3l02dq_ring.c b/drivers/staging/iio/accel/lis3l02dq_ring.c
55572 index b892f2c..9b4898a 100644
55573 --- a/drivers/staging/iio/accel/lis3l02dq_ring.c
55574 +++ b/drivers/staging/iio/accel/lis3l02dq_ring.c
55575 @@ -118,7 +118,7 @@ static int lis3l02dq_get_buffer_element(struct iio_dev *indio_dev,
55576 int scan_count = bitmap_weight(indio_dev->active_scan_mask,
55577 indio_dev->masklength);
55578
55579 - rx_array = kcalloc(4, scan_count, GFP_KERNEL);
55580 + rx_array = kcalloc(scan_count, 4, GFP_KERNEL);
55581 if (!rx_array)
55582 return -ENOMEM;
55583 ret = lis3l02dq_read_all(indio_dev, rx_array);
55584 diff --git a/drivers/staging/iio/adc/ad7280a.c b/drivers/staging/iio/adc/ad7280a.c
55585 index d98e229..9c59bc2 100644
55586 --- a/drivers/staging/iio/adc/ad7280a.c
55587 +++ b/drivers/staging/iio/adc/ad7280a.c
55588 @@ -547,8 +547,8 @@ static int ad7280_attr_init(struct ad7280_state *st)
55589 {
55590 int dev, ch, cnt;
55591
55592 - st->iio_attr = kcalloc(2, sizeof(*st->iio_attr) *
55593 - (st->slave_num + 1) * AD7280A_CELLS_PER_DEV,
55594 + st->iio_attr = kcalloc(sizeof(*st->iio_attr) *
55595 + (st->slave_num + 1) * AD7280A_CELLS_PER_DEV, 2,
55596 GFP_KERNEL);
55597 if (st->iio_attr == NULL)
55598 return -ENOMEM;
55599 diff --git a/drivers/staging/lustre/lnet/selftest/brw_test.c b/drivers/staging/lustre/lnet/selftest/brw_test.c
55600 index de11f1b..f7181cf 100644
55601 --- a/drivers/staging/lustre/lnet/selftest/brw_test.c
55602 +++ b/drivers/staging/lustre/lnet/selftest/brw_test.c
55603 @@ -487,13 +487,11 @@ brw_server_handle(struct srpc_server_rpc *rpc)
55604 return 0;
55605 }
55606
55607 -sfw_test_client_ops_t brw_test_client;
55608 -void brw_init_test_client(void)
55609 -{
55610 - brw_test_client.tso_init = brw_client_init;
55611 - brw_test_client.tso_fini = brw_client_fini;
55612 - brw_test_client.tso_prep_rpc = brw_client_prep_rpc;
55613 - brw_test_client.tso_done_rpc = brw_client_done_rpc;
55614 +sfw_test_client_ops_t brw_test_client = {
55615 + .tso_init = brw_client_init,
55616 + .tso_fini = brw_client_fini,
55617 + .tso_prep_rpc = brw_client_prep_rpc,
55618 + .tso_done_rpc = brw_client_done_rpc,
55619 };
55620
55621 srpc_service_t brw_test_service;
55622 diff --git a/drivers/staging/lustre/lnet/selftest/framework.c b/drivers/staging/lustre/lnet/selftest/framework.c
55623 index 7c5185a..51c2ae7 100644
55624 --- a/drivers/staging/lustre/lnet/selftest/framework.c
55625 +++ b/drivers/staging/lustre/lnet/selftest/framework.c
55626 @@ -1628,12 +1628,10 @@ static srpc_service_t sfw_services[] = {
55627
55628 extern sfw_test_client_ops_t ping_test_client;
55629 extern srpc_service_t ping_test_service;
55630 -extern void ping_init_test_client(void);
55631 extern void ping_init_test_service(void);
55632
55633 extern sfw_test_client_ops_t brw_test_client;
55634 extern srpc_service_t brw_test_service;
55635 -extern void brw_init_test_client(void);
55636 extern void brw_init_test_service(void);
55637
55638
55639 @@ -1675,12 +1673,10 @@ sfw_startup(void)
55640 INIT_LIST_HEAD(&sfw_data.fw_zombie_rpcs);
55641 INIT_LIST_HEAD(&sfw_data.fw_zombie_sessions);
55642
55643 - brw_init_test_client();
55644 brw_init_test_service();
55645 rc = sfw_register_test(&brw_test_service, &brw_test_client);
55646 LASSERT(rc == 0);
55647
55648 - ping_init_test_client();
55649 ping_init_test_service();
55650 rc = sfw_register_test(&ping_test_service, &ping_test_client);
55651 LASSERT(rc == 0);
55652 diff --git a/drivers/staging/lustre/lnet/selftest/ping_test.c b/drivers/staging/lustre/lnet/selftest/ping_test.c
55653 index 1dab998..edfe0ac 100644
55654 --- a/drivers/staging/lustre/lnet/selftest/ping_test.c
55655 +++ b/drivers/staging/lustre/lnet/selftest/ping_test.c
55656 @@ -211,14 +211,12 @@ ping_server_handle(struct srpc_server_rpc *rpc)
55657 return 0;
55658 }
55659
55660 -sfw_test_client_ops_t ping_test_client;
55661 -void ping_init_test_client(void)
55662 -{
55663 - ping_test_client.tso_init = ping_client_init;
55664 - ping_test_client.tso_fini = ping_client_fini;
55665 - ping_test_client.tso_prep_rpc = ping_client_prep_rpc;
55666 - ping_test_client.tso_done_rpc = ping_client_done_rpc;
55667 -}
55668 +sfw_test_client_ops_t ping_test_client = {
55669 + .tso_init = ping_client_init,
55670 + .tso_fini = ping_client_fini,
55671 + .tso_prep_rpc = ping_client_prep_rpc,
55672 + .tso_done_rpc = ping_client_done_rpc,
55673 +};
55674
55675 srpc_service_t ping_test_service;
55676 void ping_init_test_service(void)
55677 diff --git a/drivers/staging/lustre/lustre/include/lustre_dlm.h b/drivers/staging/lustre/lustre/include/lustre_dlm.h
55678 index f6f4c03..cdc3556 100644
55679 --- a/drivers/staging/lustre/lustre/include/lustre_dlm.h
55680 +++ b/drivers/staging/lustre/lustre/include/lustre_dlm.h
55681 @@ -1107,7 +1107,7 @@ struct ldlm_callback_suite {
55682 ldlm_completion_callback lcs_completion;
55683 ldlm_blocking_callback lcs_blocking;
55684 ldlm_glimpse_callback lcs_glimpse;
55685 -};
55686 +} __no_const;
55687
55688 /* ldlm_lockd.c */
55689 int ldlm_del_waiting_lock(struct ldlm_lock *lock);
55690 diff --git a/drivers/staging/lustre/lustre/include/obd.h b/drivers/staging/lustre/lustre/include/obd.h
55691 index 55452e5..43b0f2f 100644
55692 --- a/drivers/staging/lustre/lustre/include/obd.h
55693 +++ b/drivers/staging/lustre/lustre/include/obd.h
55694 @@ -1364,7 +1364,7 @@ struct md_ops {
55695 * lprocfs_alloc_md_stats() in obdclass/lprocfs_status.c. Also, add a
55696 * wrapper function in include/linux/obd_class.h.
55697 */
55698 -};
55699 +} __no_const;
55700
55701 struct lsm_operations {
55702 void (*lsm_free)(struct lov_stripe_md *);
55703 diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
55704 index a4c252f..b21acac 100644
55705 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
55706 +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_flock.c
55707 @@ -258,7 +258,7 @@ ldlm_process_flock_lock(struct ldlm_lock *req, __u64 *flags, int first_enq,
55708 int added = (mode == LCK_NL);
55709 int overlaps = 0;
55710 int splitted = 0;
55711 - const struct ldlm_callback_suite null_cbs = { NULL };
55712 + const struct ldlm_callback_suite null_cbs = { };
55713
55714 CDEBUG(D_DLMTRACE,
55715 "flags %#llx owner %llu pid %u mode %u start %llu end %llu\n",
55716 diff --git a/drivers/staging/lustre/lustre/libcfs/module.c b/drivers/staging/lustre/lustre/libcfs/module.c
55717 index e60b2e9..ad9ceb3 100644
55718 --- a/drivers/staging/lustre/lustre/libcfs/module.c
55719 +++ b/drivers/staging/lustre/lustre/libcfs/module.c
55720 @@ -377,11 +377,11 @@ out:
55721
55722
55723 struct cfs_psdev_ops libcfs_psdev_ops = {
55724 - libcfs_psdev_open,
55725 - libcfs_psdev_release,
55726 - NULL,
55727 - NULL,
55728 - libcfs_ioctl
55729 + .p_open = libcfs_psdev_open,
55730 + .p_close = libcfs_psdev_release,
55731 + .p_read = NULL,
55732 + .p_write = NULL,
55733 + .p_ioctl = libcfs_ioctl
55734 };
55735
55736 static int init_libcfs_module(void)
55737 @@ -623,7 +623,7 @@ static int proc_console_max_delay_cs(struct ctl_table *table, int write,
55738 loff_t *ppos)
55739 {
55740 int rc, max_delay_cs;
55741 - struct ctl_table dummy = *table;
55742 + ctl_table_no_const dummy = *table;
55743 long d;
55744
55745 dummy.data = &max_delay_cs;
55746 @@ -656,7 +656,7 @@ static int proc_console_min_delay_cs(struct ctl_table *table, int write,
55747 loff_t *ppos)
55748 {
55749 int rc, min_delay_cs;
55750 - struct ctl_table dummy = *table;
55751 + ctl_table_no_const dummy = *table;
55752 long d;
55753
55754 dummy.data = &min_delay_cs;
55755 @@ -688,7 +688,7 @@ static int proc_console_backoff(struct ctl_table *table, int write,
55756 void __user *buffer, size_t *lenp, loff_t *ppos)
55757 {
55758 int rc, backoff;
55759 - struct ctl_table dummy = *table;
55760 + ctl_table_no_const dummy = *table;
55761
55762 dummy.data = &backoff;
55763 dummy.proc_handler = &proc_dointvec;
55764 diff --git a/drivers/staging/octeon/ethernet-rx.c b/drivers/staging/octeon/ethernet-rx.c
55765 index 22853d3..cfa3c49 100644
55766 --- a/drivers/staging/octeon/ethernet-rx.c
55767 +++ b/drivers/staging/octeon/ethernet-rx.c
55768 @@ -335,14 +335,14 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
55769 /* Increment RX stats for virtual ports */
55770 if (work->ipprt >= CVMX_PIP_NUM_INPUT_PORTS) {
55771 #ifdef CONFIG_64BIT
55772 - atomic64_add(1,
55773 + atomic64_add_unchecked(1,
55774 (atomic64_t *)&priv->stats.rx_packets);
55775 - atomic64_add(skb->len,
55776 + atomic64_add_unchecked(skb->len,
55777 (atomic64_t *)&priv->stats.rx_bytes);
55778 #else
55779 - atomic_add(1,
55780 + atomic_add_unchecked(1,
55781 (atomic_t *)&priv->stats.rx_packets);
55782 - atomic_add(skb->len,
55783 + atomic_add_unchecked(skb->len,
55784 (atomic_t *)&priv->stats.rx_bytes);
55785 #endif
55786 }
55787 @@ -354,10 +354,10 @@ static int cvm_oct_napi_poll(struct napi_struct *napi, int budget)
55788 dev->name);
55789 */
55790 #ifdef CONFIG_64BIT
55791 - atomic64_add(1,
55792 + atomic64_add_unchecked(1,
55793 (atomic64_t *)&priv->stats.rx_dropped);
55794 #else
55795 - atomic_add(1,
55796 + atomic_add_unchecked(1,
55797 (atomic_t *)&priv->stats.rx_dropped);
55798 #endif
55799 dev_kfree_skb_irq(skb);
55800 diff --git a/drivers/staging/octeon/ethernet.c b/drivers/staging/octeon/ethernet.c
55801 index f9dba23..7bc0ef3 100644
55802 --- a/drivers/staging/octeon/ethernet.c
55803 +++ b/drivers/staging/octeon/ethernet.c
55804 @@ -231,11 +231,11 @@ static struct net_device_stats *cvm_oct_common_get_stats(struct net_device *dev)
55805 * since the RX tasklet also increments it.
55806 */
55807 #ifdef CONFIG_64BIT
55808 - atomic64_add(rx_status.dropped_packets,
55809 - (atomic64_t *)&priv->stats.rx_dropped);
55810 + atomic64_add_unchecked(rx_status.dropped_packets,
55811 + (atomic64_unchecked_t *)&priv->stats.rx_dropped);
55812 #else
55813 - atomic_add(rx_status.dropped_packets,
55814 - (atomic_t *)&priv->stats.rx_dropped);
55815 + atomic_add_unchecked(rx_status.dropped_packets,
55816 + (atomic_unchecked_t *)&priv->stats.rx_dropped);
55817 #endif
55818 }
55819
55820 diff --git a/drivers/staging/rtl8188eu/include/hal_intf.h b/drivers/staging/rtl8188eu/include/hal_intf.h
55821 index 3b476d8..f522d68 100644
55822 --- a/drivers/staging/rtl8188eu/include/hal_intf.h
55823 +++ b/drivers/staging/rtl8188eu/include/hal_intf.h
55824 @@ -225,7 +225,7 @@ struct hal_ops {
55825
55826 void (*hal_notch_filter)(struct adapter *adapter, bool enable);
55827 void (*hal_reset_security_engine)(struct adapter *adapter);
55828 -};
55829 +} __no_const;
55830
55831 enum rt_eeprom_type {
55832 EEPROM_93C46,
55833 diff --git a/drivers/staging/rtl8712/rtl871x_io.h b/drivers/staging/rtl8712/rtl871x_io.h
55834 index 070cc03..6806e37 100644
55835 --- a/drivers/staging/rtl8712/rtl871x_io.h
55836 +++ b/drivers/staging/rtl8712/rtl871x_io.h
55837 @@ -108,7 +108,7 @@ struct _io_ops {
55838 u8 *pmem);
55839 u32 (*_write_port)(struct intf_hdl *pintfhdl, u32 addr, u32 cnt,
55840 u8 *pmem);
55841 -};
55842 +} __no_const;
55843
55844 struct io_req {
55845 struct list_head list;
55846 diff --git a/drivers/staging/sm750fb/sm750.c b/drivers/staging/sm750fb/sm750.c
55847 index 8e201f1..bf2a28d 100644
55848 --- a/drivers/staging/sm750fb/sm750.c
55849 +++ b/drivers/staging/sm750fb/sm750.c
55850 @@ -775,6 +775,7 @@ static struct fb_ops lynxfb_ops = {
55851 .fb_set_par = lynxfb_ops_set_par,
55852 .fb_setcolreg = lynxfb_ops_setcolreg,
55853 .fb_blank = lynxfb_ops_blank,
55854 + .fb_pan_display = lynxfb_ops_pan_display,
55855 .fb_fillrect = cfb_fillrect,
55856 .fb_imageblit = cfb_imageblit,
55857 .fb_copyarea = cfb_copyarea,
55858 @@ -822,8 +823,10 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
55859 par->index = index;
55860 output->channel = &crtc->channel;
55861 sm750fb_set_drv(par);
55862 - lynxfb_ops.fb_pan_display = lynxfb_ops_pan_display;
55863
55864 + pax_open_kernel();
55865 + *(void **)&lynxfb_ops.fb_pan_display = lynxfb_ops_pan_display;
55866 + pax_close_kernel();
55867
55868 /* set current cursor variable and proc pointer,
55869 * must be set after crtc member initialized */
55870 @@ -845,7 +848,9 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
55871 crtc->cursor.share = share;
55872 memset_io(crtc->cursor.vstart, 0, crtc->cursor.size);
55873 if (!g_hwcursor) {
55874 - lynxfb_ops.fb_cursor = NULL;
55875 + pax_open_kernel();
55876 + *(void **)&lynxfb_ops.fb_cursor = NULL;
55877 + pax_close_kernel();
55878 crtc->cursor.disable(&crtc->cursor);
55879 }
55880
55881 @@ -853,9 +858,11 @@ static int lynxfb_set_fbinfo(struct fb_info *info, int index)
55882 /* set info->fbops, must be set before fb_find_mode */
55883 if (!share->accel_off) {
55884 /* use 2d acceleration */
55885 - lynxfb_ops.fb_fillrect = lynxfb_ops_fillrect;
55886 - lynxfb_ops.fb_copyarea = lynxfb_ops_copyarea;
55887 - lynxfb_ops.fb_imageblit = lynxfb_ops_imageblit;
55888 + pax_open_kernel();
55889 + *(void **)&lynxfb_ops.fb_fillrect = lynxfb_ops_fillrect;
55890 + *(void **)&lynxfb_ops.fb_copyarea = lynxfb_ops_copyarea;
55891 + *(void **)&lynxfb_ops.fb_imageblit = lynxfb_ops_imageblit;
55892 + pax_close_kernel();
55893 }
55894 info->fbops = &lynxfb_ops;
55895
55896 diff --git a/drivers/staging/unisys/visorbus/visorbus_private.h b/drivers/staging/unisys/visorbus/visorbus_private.h
55897 index 2f12483..6e1b50a 100644
55898 --- a/drivers/staging/unisys/visorbus/visorbus_private.h
55899 +++ b/drivers/staging/unisys/visorbus/visorbus_private.h
55900 @@ -35,7 +35,7 @@ struct visorchipset_busdev_notifiers {
55901 void (*device_destroy)(struct visor_device *bus_info);
55902 void (*device_pause)(struct visor_device *bus_info);
55903 void (*device_resume)(struct visor_device *bus_info);
55904 -};
55905 +} __no_const;
55906
55907 /* These functions live inside visorchipset, and will be called to indicate
55908 * responses to specific events (by code outside of visorchipset).
55909 @@ -50,7 +50,7 @@ struct visorchipset_busdev_responders {
55910 void (*device_destroy)(struct visor_device *p, int response);
55911 void (*device_pause)(struct visor_device *p, int response);
55912 void (*device_resume)(struct visor_device *p, int response);
55913 -};
55914 +} __no_const;
55915
55916 /** Register functions (in the bus driver) to get called by visorchipset
55917 * whenever a bus or device appears for which this guest is to be the
55918 diff --git a/drivers/target/sbp/sbp_target.c b/drivers/target/sbp/sbp_target.c
55919 index 0edf320..49afe95 100644
55920 --- a/drivers/target/sbp/sbp_target.c
55921 +++ b/drivers/target/sbp/sbp_target.c
55922 @@ -60,7 +60,7 @@ static const u32 sbp_unit_directory_template[] = {
55923
55924 #define SESSION_MAINTENANCE_INTERVAL HZ
55925
55926 -static atomic_t login_id = ATOMIC_INIT(0);
55927 +static atomic_unchecked_t login_id = ATOMIC_INIT(0);
55928
55929 static void session_maintenance_work(struct work_struct *);
55930 static int sbp_run_transaction(struct fw_card *, int, int, int, int,
55931 @@ -441,7 +441,7 @@ static void sbp_management_request_login(
55932 login->login_lun = unpacked_lun;
55933 login->status_fifo_addr = sbp2_pointer_to_addr(&req->orb.status_fifo);
55934 login->exclusive = LOGIN_ORB_EXCLUSIVE(be32_to_cpu(req->orb.misc));
55935 - login->login_id = atomic_inc_return(&login_id);
55936 + login->login_id = atomic_inc_return_unchecked(&login_id);
55937
55938 login->tgt_agt = sbp_target_agent_register(login);
55939 if (IS_ERR(login->tgt_agt)) {
55940 diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
55941 index 8f1cd19..ba7a8f1 100644
55942 --- a/drivers/target/target_core_device.c
55943 +++ b/drivers/target/target_core_device.c
55944 @@ -772,7 +772,7 @@ struct se_device *target_alloc_device(struct se_hba *hba, const char *name)
55945 spin_lock_init(&dev->se_tmr_lock);
55946 spin_lock_init(&dev->qf_cmd_lock);
55947 sema_init(&dev->caw_sem, 1);
55948 - atomic_set(&dev->dev_ordered_id, 0);
55949 + atomic_set_unchecked(&dev->dev_ordered_id, 0);
55950 INIT_LIST_HEAD(&dev->t10_wwn.t10_vpd_list);
55951 spin_lock_init(&dev->t10_wwn.t10_vpd_lock);
55952 INIT_LIST_HEAD(&dev->t10_pr.registration_list);
55953 diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
55954 index ce8574b..98d6199 100644
55955 --- a/drivers/target/target_core_transport.c
55956 +++ b/drivers/target/target_core_transport.c
55957 @@ -1181,7 +1181,7 @@ transport_check_alloc_task_attr(struct se_cmd *cmd)
55958 * Used to determine when ORDERED commands should go from
55959 * Dormant to Active status.
55960 */
55961 - cmd->se_ordered_id = atomic_inc_return(&dev->dev_ordered_id);
55962 + cmd->se_ordered_id = atomic_inc_return_unchecked(&dev->dev_ordered_id);
55963 pr_debug("Allocated se_ordered_id: %u for Task Attr: 0x%02x on %s\n",
55964 cmd->se_ordered_id, cmd->sam_task_attr,
55965 dev->transport->name);
55966 diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
55967 index 42c6f71..1c64309 100644
55968 --- a/drivers/thermal/cpu_cooling.c
55969 +++ b/drivers/thermal/cpu_cooling.c
55970 @@ -838,10 +838,11 @@ __cpufreq_cooling_register(struct device_node *np,
55971 cpumask_copy(&cpufreq_dev->allowed_cpus, clip_cpus);
55972
55973 if (capacitance) {
55974 - cpufreq_cooling_ops.get_requested_power =
55975 - cpufreq_get_requested_power;
55976 - cpufreq_cooling_ops.state2power = cpufreq_state2power;
55977 - cpufreq_cooling_ops.power2state = cpufreq_power2state;
55978 + pax_open_kernel();
55979 + *(void **)&cpufreq_cooling_ops.get_requested_power = cpufreq_get_requested_power;
55980 + *(void **)&cpufreq_cooling_ops.state2power = cpufreq_state2power;
55981 + *(void **)&cpufreq_cooling_ops.power2state = cpufreq_power2state;
55982 + pax_close_kernel();
55983 cpufreq_dev->plat_get_static_power = plat_static_func;
55984
55985 ret = build_dyn_power_table(cpufreq_dev, capacitance);
55986 diff --git a/drivers/thermal/int340x_thermal/int3400_thermal.c b/drivers/thermal/int340x_thermal/int3400_thermal.c
55987 index 031018e..90981a1 100644
55988 --- a/drivers/thermal/int340x_thermal/int3400_thermal.c
55989 +++ b/drivers/thermal/int340x_thermal/int3400_thermal.c
55990 @@ -272,8 +272,10 @@ static int int3400_thermal_probe(struct platform_device *pdev)
55991 platform_set_drvdata(pdev, priv);
55992
55993 if (priv->uuid_bitmap & 1 << INT3400_THERMAL_PASSIVE_1) {
55994 - int3400_thermal_ops.get_mode = int3400_thermal_get_mode;
55995 - int3400_thermal_ops.set_mode = int3400_thermal_set_mode;
55996 + pax_open_kernel();
55997 + *(void **)&int3400_thermal_ops.get_mode = int3400_thermal_get_mode;
55998 + *(void **)&int3400_thermal_ops.set_mode = int3400_thermal_set_mode;
55999 + pax_close_kernel();
56000 }
56001 priv->thermal = thermal_zone_device_register("INT3400 Thermal", 0, 0,
56002 priv, &int3400_thermal_ops,
56003 diff --git a/drivers/thermal/of-thermal.c b/drivers/thermal/of-thermal.c
56004 index b295b2b..f7e2a30 100644
56005 --- a/drivers/thermal/of-thermal.c
56006 +++ b/drivers/thermal/of-thermal.c
56007 @@ -31,6 +31,7 @@
56008 #include <linux/export.h>
56009 #include <linux/string.h>
56010 #include <linux/thermal.h>
56011 +#include <linux/mm.h>
56012
56013 #include "thermal_core.h"
56014
56015 @@ -417,9 +418,11 @@ thermal_zone_of_add_sensor(struct device_node *zone,
56016 tz->ops = ops;
56017 tz->sensor_data = data;
56018
56019 - tzd->ops->get_temp = of_thermal_get_temp;
56020 - tzd->ops->get_trend = of_thermal_get_trend;
56021 - tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
56022 + pax_open_kernel();
56023 + *(void **)&tzd->ops->get_temp = of_thermal_get_temp;
56024 + *(void **)&tzd->ops->get_trend = of_thermal_get_trend;
56025 + *(void **)&tzd->ops->set_emul_temp = of_thermal_set_emul_temp;
56026 + pax_close_kernel();
56027 mutex_unlock(&tzd->lock);
56028
56029 return tzd;
56030 @@ -549,9 +552,11 @@ void thermal_zone_of_sensor_unregister(struct device *dev,
56031 return;
56032
56033 mutex_lock(&tzd->lock);
56034 - tzd->ops->get_temp = NULL;
56035 - tzd->ops->get_trend = NULL;
56036 - tzd->ops->set_emul_temp = NULL;
56037 + pax_open_kernel();
56038 + *(void **)&tzd->ops->get_temp = NULL;
56039 + *(void **)&tzd->ops->get_trend = NULL;
56040 + *(void **)&tzd->ops->set_emul_temp = NULL;
56041 + pax_close_kernel();
56042
56043 tz->ops = NULL;
56044 tz->sensor_data = NULL;
56045 diff --git a/drivers/thermal/x86_pkg_temp_thermal.c b/drivers/thermal/x86_pkg_temp_thermal.c
56046 index 50d1d2c..39c5ce0 100644
56047 --- a/drivers/thermal/x86_pkg_temp_thermal.c
56048 +++ b/drivers/thermal/x86_pkg_temp_thermal.c
56049 @@ -567,7 +567,7 @@ static int pkg_temp_thermal_cpu_callback(struct notifier_block *nfb,
56050 return NOTIFY_OK;
56051 }
56052
56053 -static struct notifier_block pkg_temp_thermal_notifier __refdata = {
56054 +static struct notifier_block pkg_temp_thermal_notifier __refconst = {
56055 .notifier_call = pkg_temp_thermal_cpu_callback,
56056 };
56057
56058 diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c
56059 index 87f6578..905c8f8 100644
56060 --- a/drivers/tty/cyclades.c
56061 +++ b/drivers/tty/cyclades.c
56062 @@ -1570,10 +1570,10 @@ static int cy_open(struct tty_struct *tty, struct file *filp)
56063 printk(KERN_DEBUG "cyc:cy_open ttyC%d, count = %d\n", info->line,
56064 info->port.count);
56065 #endif
56066 - info->port.count++;
56067 + atomic_inc(&info->port.count);
56068 #ifdef CY_DEBUG_COUNT
56069 printk(KERN_DEBUG "cyc:cy_open (%d): incrementing count to %d\n",
56070 - current->pid, info->port.count);
56071 + current->pid, atomic_read(&info->port.count));
56072 #endif
56073
56074 /*
56075 @@ -3970,7 +3970,7 @@ static int cyclades_proc_show(struct seq_file *m, void *v)
56076 for (j = 0; j < cy_card[i].nports; j++) {
56077 info = &cy_card[i].ports[j];
56078
56079 - if (info->port.count) {
56080 + if (atomic_read(&info->port.count)) {
56081 /* XXX is the ldisc num worth this? */
56082 struct tty_struct *tty;
56083 struct tty_ldisc *ld;
56084 diff --git a/drivers/tty/hvc/hvc_console.c b/drivers/tty/hvc/hvc_console.c
56085 index 4e9c4cc..2199d8f 100644
56086 --- a/drivers/tty/hvc/hvc_console.c
56087 +++ b/drivers/tty/hvc/hvc_console.c
56088 @@ -343,7 +343,7 @@ static int hvc_open(struct tty_struct *tty, struct file * filp)
56089
56090 spin_lock_irqsave(&hp->port.lock, flags);
56091 /* Check and then increment for fast path open. */
56092 - if (hp->port.count++ > 0) {
56093 + if (atomic_inc_return(&hp->port.count) > 1) {
56094 spin_unlock_irqrestore(&hp->port.lock, flags);
56095 hvc_kick();
56096 return 0;
56097 @@ -398,7 +398,7 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
56098
56099 spin_lock_irqsave(&hp->port.lock, flags);
56100
56101 - if (--hp->port.count == 0) {
56102 + if (atomic_dec_return(&hp->port.count) == 0) {
56103 spin_unlock_irqrestore(&hp->port.lock, flags);
56104 /* We are done with the tty pointer now. */
56105 tty_port_tty_set(&hp->port, NULL);
56106 @@ -420,9 +420,9 @@ static void hvc_close(struct tty_struct *tty, struct file * filp)
56107 */
56108 tty_wait_until_sent_from_close(tty, HVC_CLOSE_WAIT);
56109 } else {
56110 - if (hp->port.count < 0)
56111 + if (atomic_read(&hp->port.count) < 0)
56112 printk(KERN_ERR "hvc_close %X: oops, count is %d\n",
56113 - hp->vtermno, hp->port.count);
56114 + hp->vtermno, atomic_read(&hp->port.count));
56115 spin_unlock_irqrestore(&hp->port.lock, flags);
56116 }
56117 }
56118 @@ -452,12 +452,12 @@ static void hvc_hangup(struct tty_struct *tty)
56119 * open->hangup case this can be called after the final close so prevent
56120 * that from happening for now.
56121 */
56122 - if (hp->port.count <= 0) {
56123 + if (atomic_read(&hp->port.count) <= 0) {
56124 spin_unlock_irqrestore(&hp->port.lock, flags);
56125 return;
56126 }
56127
56128 - hp->port.count = 0;
56129 + atomic_set(&hp->port.count, 0);
56130 spin_unlock_irqrestore(&hp->port.lock, flags);
56131 tty_port_tty_set(&hp->port, NULL);
56132
56133 @@ -505,7 +505,7 @@ static int hvc_write(struct tty_struct *tty, const unsigned char *buf, int count
56134 return -EPIPE;
56135
56136 /* FIXME what's this (unprotected) check for? */
56137 - if (hp->port.count <= 0)
56138 + if (atomic_read(&hp->port.count) <= 0)
56139 return -EIO;
56140
56141 spin_lock_irqsave(&hp->lock, flags);
56142 diff --git a/drivers/tty/hvc/hvcs.c b/drivers/tty/hvc/hvcs.c
56143 index f7ff97c..0c0ebbf 100644
56144 --- a/drivers/tty/hvc/hvcs.c
56145 +++ b/drivers/tty/hvc/hvcs.c
56146 @@ -83,6 +83,7 @@
56147 #include <asm/hvcserver.h>
56148 #include <asm/uaccess.h>
56149 #include <asm/vio.h>
56150 +#include <asm/local.h>
56151
56152 /*
56153 * 1.3.0 -> 1.3.1 In hvcs_open memset(..,0x00,..) instead of memset(..,0x3F,00).
56154 @@ -416,7 +417,7 @@ static ssize_t hvcs_vterm_state_store(struct device *dev, struct device_attribut
56155
56156 spin_lock_irqsave(&hvcsd->lock, flags);
56157
56158 - if (hvcsd->port.count > 0) {
56159 + if (atomic_read(&hvcsd->port.count) > 0) {
56160 spin_unlock_irqrestore(&hvcsd->lock, flags);
56161 printk(KERN_INFO "HVCS: vterm state unchanged. "
56162 "The hvcs device node is still in use.\n");
56163 @@ -1127,7 +1128,7 @@ static int hvcs_install(struct tty_driver *driver, struct tty_struct *tty)
56164 }
56165 }
56166
56167 - hvcsd->port.count = 0;
56168 + atomic_set(&hvcsd->port.count, 0);
56169 hvcsd->port.tty = tty;
56170 tty->driver_data = hvcsd;
56171
56172 @@ -1180,7 +1181,7 @@ static int hvcs_open(struct tty_struct *tty, struct file *filp)
56173 unsigned long flags;
56174
56175 spin_lock_irqsave(&hvcsd->lock, flags);
56176 - hvcsd->port.count++;
56177 + atomic_inc(&hvcsd->port.count);
56178 hvcsd->todo_mask |= HVCS_SCHED_READ;
56179 spin_unlock_irqrestore(&hvcsd->lock, flags);
56180
56181 @@ -1216,7 +1217,7 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
56182 hvcsd = tty->driver_data;
56183
56184 spin_lock_irqsave(&hvcsd->lock, flags);
56185 - if (--hvcsd->port.count == 0) {
56186 + if (atomic_dec_and_test(&hvcsd->port.count)) {
56187
56188 vio_disable_interrupts(hvcsd->vdev);
56189
56190 @@ -1241,10 +1242,10 @@ static void hvcs_close(struct tty_struct *tty, struct file *filp)
56191
56192 free_irq(irq, hvcsd);
56193 return;
56194 - } else if (hvcsd->port.count < 0) {
56195 + } else if (atomic_read(&hvcsd->port.count) < 0) {
56196 printk(KERN_ERR "HVCS: vty-server@%X open_count: %d"
56197 " is missmanaged.\n",
56198 - hvcsd->vdev->unit_address, hvcsd->port.count);
56199 + hvcsd->vdev->unit_address, atomic_read(&hvcsd->port.count));
56200 }
56201
56202 spin_unlock_irqrestore(&hvcsd->lock, flags);
56203 @@ -1266,7 +1267,7 @@ static void hvcs_hangup(struct tty_struct * tty)
56204
56205 spin_lock_irqsave(&hvcsd->lock, flags);
56206 /* Preserve this so that we know how many kref refs to put */
56207 - temp_open_count = hvcsd->port.count;
56208 + temp_open_count = atomic_read(&hvcsd->port.count);
56209
56210 /*
56211 * Don't kref put inside the spinlock because the destruction
56212 @@ -1281,7 +1282,7 @@ static void hvcs_hangup(struct tty_struct * tty)
56213 tty->driver_data = NULL;
56214 hvcsd->port.tty = NULL;
56215
56216 - hvcsd->port.count = 0;
56217 + atomic_set(&hvcsd->port.count, 0);
56218
56219 /* This will drop any buffered data on the floor which is OK in a hangup
56220 * scenario. */
56221 @@ -1352,7 +1353,7 @@ static int hvcs_write(struct tty_struct *tty,
56222 * the middle of a write operation? This is a crummy place to do this
56223 * but we want to keep it all in the spinlock.
56224 */
56225 - if (hvcsd->port.count <= 0) {
56226 + if (atomic_read(&hvcsd->port.count) <= 0) {
56227 spin_unlock_irqrestore(&hvcsd->lock, flags);
56228 return -ENODEV;
56229 }
56230 @@ -1426,7 +1427,7 @@ static int hvcs_write_room(struct tty_struct *tty)
56231 {
56232 struct hvcs_struct *hvcsd = tty->driver_data;
56233
56234 - if (!hvcsd || hvcsd->port.count <= 0)
56235 + if (!hvcsd || atomic_read(&hvcsd->port.count) <= 0)
56236 return 0;
56237
56238 return HVCS_BUFF_LEN - hvcsd->chars_in_buffer;
56239 diff --git a/drivers/tty/hvc/hvsi.c b/drivers/tty/hvc/hvsi.c
56240 index 4190199..06d5bfa 100644
56241 --- a/drivers/tty/hvc/hvsi.c
56242 +++ b/drivers/tty/hvc/hvsi.c
56243 @@ -85,7 +85,7 @@ struct hvsi_struct {
56244 int n_outbuf;
56245 uint32_t vtermno;
56246 uint32_t virq;
56247 - atomic_t seqno; /* HVSI packet sequence number */
56248 + atomic_unchecked_t seqno; /* HVSI packet sequence number */
56249 uint16_t mctrl;
56250 uint8_t state; /* HVSI protocol state */
56251 uint8_t flags;
56252 @@ -295,7 +295,7 @@ static int hvsi_version_respond(struct hvsi_struct *hp, uint16_t query_seqno)
56253
56254 packet.hdr.type = VS_QUERY_RESPONSE_PACKET_HEADER;
56255 packet.hdr.len = sizeof(struct hvsi_query_response);
56256 - packet.hdr.seqno = atomic_inc_return(&hp->seqno);
56257 + packet.hdr.seqno = atomic_inc_return_unchecked(&hp->seqno);
56258 packet.verb = VSV_SEND_VERSION_NUMBER;
56259 packet.u.version = HVSI_VERSION;
56260 packet.query_seqno = query_seqno+1;
56261 @@ -555,7 +555,7 @@ static int hvsi_query(struct hvsi_struct *hp, uint16_t verb)
56262
56263 packet.hdr.type = VS_QUERY_PACKET_HEADER;
56264 packet.hdr.len = sizeof(struct hvsi_query);
56265 - packet.hdr.seqno = atomic_inc_return(&hp->seqno);
56266 + packet.hdr.seqno = atomic_inc_return_unchecked(&hp->seqno);
56267 packet.verb = verb;
56268
56269 pr_debug("%s: sending %i bytes\n", __func__, packet.hdr.len);
56270 @@ -597,7 +597,7 @@ static int hvsi_set_mctrl(struct hvsi_struct *hp, uint16_t mctrl)
56271 int wrote;
56272
56273 packet.hdr.type = VS_CONTROL_PACKET_HEADER,
56274 - packet.hdr.seqno = atomic_inc_return(&hp->seqno);
56275 + packet.hdr.seqno = atomic_inc_return_unchecked(&hp->seqno);
56276 packet.hdr.len = sizeof(struct hvsi_control);
56277 packet.verb = VSV_SET_MODEM_CTL;
56278 packet.mask = HVSI_TSDTR;
56279 @@ -680,7 +680,7 @@ static int hvsi_put_chars(struct hvsi_struct *hp, const char *buf, int count)
56280 BUG_ON(count > HVSI_MAX_OUTGOING_DATA);
56281
56282 packet.hdr.type = VS_DATA_PACKET_HEADER;
56283 - packet.hdr.seqno = atomic_inc_return(&hp->seqno);
56284 + packet.hdr.seqno = atomic_inc_return_unchecked(&hp->seqno);
56285 packet.hdr.len = count + sizeof(struct hvsi_header);
56286 memcpy(&packet.data, buf, count);
56287
56288 @@ -697,7 +697,7 @@ static void hvsi_close_protocol(struct hvsi_struct *hp)
56289 struct hvsi_control packet __ALIGNED__;
56290
56291 packet.hdr.type = VS_CONTROL_PACKET_HEADER;
56292 - packet.hdr.seqno = atomic_inc_return(&hp->seqno);
56293 + packet.hdr.seqno = atomic_inc_return_unchecked(&hp->seqno);
56294 packet.hdr.len = 6;
56295 packet.verb = VSV_CLOSE_PROTOCOL;
56296
56297 @@ -725,7 +725,7 @@ static int hvsi_open(struct tty_struct *tty, struct file *filp)
56298
56299 tty_port_tty_set(&hp->port, tty);
56300 spin_lock_irqsave(&hp->lock, flags);
56301 - hp->port.count++;
56302 + atomic_inc(&hp->port.count);
56303 atomic_set(&hp->seqno, 0);
56304 h_vio_signal(hp->vtermno, VIO_IRQ_ENABLE);
56305 spin_unlock_irqrestore(&hp->lock, flags);
56306 @@ -782,7 +782,7 @@ static void hvsi_close(struct tty_struct *tty, struct file *filp)
56307
56308 spin_lock_irqsave(&hp->lock, flags);
56309
56310 - if (--hp->port.count == 0) {
56311 + if (atomic_dec_return(&hp->port.count) == 0) {
56312 tty_port_tty_set(&hp->port, NULL);
56313 hp->inbuf_end = hp->inbuf; /* discard remaining partial packets */
56314
56315 @@ -815,9 +815,9 @@ static void hvsi_close(struct tty_struct *tty, struct file *filp)
56316
56317 spin_lock_irqsave(&hp->lock, flags);
56318 }
56319 - } else if (hp->port.count < 0)
56320 + } else if (atomic_read(&hp->port.count) < 0)
56321 printk(KERN_ERR "hvsi_close %lu: oops, count is %d\n",
56322 - hp - hvsi_ports, hp->port.count);
56323 + hp - hvsi_ports, atomic_read(&hp->port.count));
56324
56325 spin_unlock_irqrestore(&hp->lock, flags);
56326 }
56327 @@ -832,7 +832,7 @@ static void hvsi_hangup(struct tty_struct *tty)
56328 tty_port_tty_set(&hp->port, NULL);
56329
56330 spin_lock_irqsave(&hp->lock, flags);
56331 - hp->port.count = 0;
56332 + atomic_set(&hp->port.count, 0);
56333 hp->n_outbuf = 0;
56334 spin_unlock_irqrestore(&hp->lock, flags);
56335 }
56336 diff --git a/drivers/tty/hvc/hvsi_lib.c b/drivers/tty/hvc/hvsi_lib.c
56337 index a270f04..7c77b5d 100644
56338 --- a/drivers/tty/hvc/hvsi_lib.c
56339 +++ b/drivers/tty/hvc/hvsi_lib.c
56340 @@ -8,7 +8,7 @@
56341
56342 static int hvsi_send_packet(struct hvsi_priv *pv, struct hvsi_header *packet)
56343 {
56344 - packet->seqno = cpu_to_be16(atomic_inc_return(&pv->seqno));
56345 + packet->seqno = cpu_to_be16(atomic_inc_return_unchecked(&pv->seqno));
56346
56347 /* Assumes that always succeeds, works in practice */
56348 return pv->put_chars(pv->termno, (char *)packet, packet->len);
56349 @@ -20,7 +20,7 @@ static void hvsi_start_handshake(struct hvsi_priv *pv)
56350
56351 /* Reset state */
56352 pv->established = 0;
56353 - atomic_set(&pv->seqno, 0);
56354 + atomic_set_unchecked(&pv->seqno, 0);
56355
56356 pr_devel("HVSI@%x: Handshaking started\n", pv->termno);
56357
56358 diff --git a/drivers/tty/ipwireless/tty.c b/drivers/tty/ipwireless/tty.c
56359 index 345cebb..d5a1e9e 100644
56360 --- a/drivers/tty/ipwireless/tty.c
56361 +++ b/drivers/tty/ipwireless/tty.c
56362 @@ -28,6 +28,7 @@
56363 #include <linux/tty_driver.h>
56364 #include <linux/tty_flip.h>
56365 #include <linux/uaccess.h>
56366 +#include <asm/local.h>
56367
56368 #include "tty.h"
56369 #include "network.h"
56370 @@ -93,10 +94,10 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
56371 return -ENODEV;
56372
56373 mutex_lock(&tty->ipw_tty_mutex);
56374 - if (tty->port.count == 0)
56375 + if (atomic_read(&tty->port.count) == 0)
56376 tty->tx_bytes_queued = 0;
56377
56378 - tty->port.count++;
56379 + atomic_inc(&tty->port.count);
56380
56381 tty->port.tty = linux_tty;
56382 linux_tty->driver_data = tty;
56383 @@ -112,9 +113,7 @@ static int ipw_open(struct tty_struct *linux_tty, struct file *filp)
56384
56385 static void do_ipw_close(struct ipw_tty *tty)
56386 {
56387 - tty->port.count--;
56388 -
56389 - if (tty->port.count == 0) {
56390 + if (atomic_dec_return(&tty->port.count) == 0) {
56391 struct tty_struct *linux_tty = tty->port.tty;
56392
56393 if (linux_tty != NULL) {
56394 @@ -135,7 +134,7 @@ static void ipw_hangup(struct tty_struct *linux_tty)
56395 return;
56396
56397 mutex_lock(&tty->ipw_tty_mutex);
56398 - if (tty->port.count == 0) {
56399 + if (atomic_read(&tty->port.count) == 0) {
56400 mutex_unlock(&tty->ipw_tty_mutex);
56401 return;
56402 }
56403 @@ -158,7 +157,7 @@ void ipwireless_tty_received(struct ipw_tty *tty, unsigned char *data,
56404
56405 mutex_lock(&tty->ipw_tty_mutex);
56406
56407 - if (!tty->port.count) {
56408 + if (!atomic_read(&tty->port.count)) {
56409 mutex_unlock(&tty->ipw_tty_mutex);
56410 return;
56411 }
56412 @@ -197,7 +196,7 @@ static int ipw_write(struct tty_struct *linux_tty,
56413 return -ENODEV;
56414
56415 mutex_lock(&tty->ipw_tty_mutex);
56416 - if (!tty->port.count) {
56417 + if (!atomic_read(&tty->port.count)) {
56418 mutex_unlock(&tty->ipw_tty_mutex);
56419 return -EINVAL;
56420 }
56421 @@ -237,7 +236,7 @@ static int ipw_write_room(struct tty_struct *linux_tty)
56422 if (!tty)
56423 return -ENODEV;
56424
56425 - if (!tty->port.count)
56426 + if (!atomic_read(&tty->port.count))
56427 return -EINVAL;
56428
56429 room = IPWIRELESS_TX_QUEUE_SIZE - tty->tx_bytes_queued;
56430 @@ -279,7 +278,7 @@ static int ipw_chars_in_buffer(struct tty_struct *linux_tty)
56431 if (!tty)
56432 return 0;
56433
56434 - if (!tty->port.count)
56435 + if (!atomic_read(&tty->port.count))
56436 return 0;
56437
56438 return tty->tx_bytes_queued;
56439 @@ -360,7 +359,7 @@ static int ipw_tiocmget(struct tty_struct *linux_tty)
56440 if (!tty)
56441 return -ENODEV;
56442
56443 - if (!tty->port.count)
56444 + if (!atomic_read(&tty->port.count))
56445 return -EINVAL;
56446
56447 return get_control_lines(tty);
56448 @@ -376,7 +375,7 @@ ipw_tiocmset(struct tty_struct *linux_tty,
56449 if (!tty)
56450 return -ENODEV;
56451
56452 - if (!tty->port.count)
56453 + if (!atomic_read(&tty->port.count))
56454 return -EINVAL;
56455
56456 return set_control_lines(tty, set, clear);
56457 @@ -390,7 +389,7 @@ static int ipw_ioctl(struct tty_struct *linux_tty,
56458 if (!tty)
56459 return -ENODEV;
56460
56461 - if (!tty->port.count)
56462 + if (!atomic_read(&tty->port.count))
56463 return -EINVAL;
56464
56465 /* FIXME: Exactly how is the tty object locked here .. */
56466 @@ -546,7 +545,7 @@ void ipwireless_tty_free(struct ipw_tty *tty)
56467 * are gone */
56468 mutex_lock(&ttyj->ipw_tty_mutex);
56469 }
56470 - while (ttyj->port.count)
56471 + while (atomic_read(&ttyj->port.count))
56472 do_ipw_close(ttyj);
56473 ipwireless_disassociate_network_ttys(network,
56474 ttyj->channel_idx);
56475 diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
56476 index 14c54e0..1efd4f2 100644
56477 --- a/drivers/tty/moxa.c
56478 +++ b/drivers/tty/moxa.c
56479 @@ -1189,7 +1189,7 @@ static int moxa_open(struct tty_struct *tty, struct file *filp)
56480 }
56481
56482 ch = &brd->ports[port % MAX_PORTS_PER_BOARD];
56483 - ch->port.count++;
56484 + atomic_inc(&ch->port.count);
56485 tty->driver_data = ch;
56486 tty_port_tty_set(&ch->port, tty);
56487 mutex_lock(&ch->port.mutex);
56488 diff --git a/drivers/tty/n_gsm.c b/drivers/tty/n_gsm.c
56489 index 382d3fc..b16d625 100644
56490 --- a/drivers/tty/n_gsm.c
56491 +++ b/drivers/tty/n_gsm.c
56492 @@ -1644,7 +1644,7 @@ static struct gsm_dlci *gsm_dlci_alloc(struct gsm_mux *gsm, int addr)
56493 spin_lock_init(&dlci->lock);
56494 mutex_init(&dlci->mutex);
56495 dlci->fifo = &dlci->_fifo;
56496 - if (kfifo_alloc(&dlci->_fifo, 4096, GFP_KERNEL) < 0) {
56497 + if (kfifo_alloc(&dlci->_fifo, 4096, GFP_KERNEL)) {
56498 kfree(dlci);
56499 return NULL;
56500 }
56501 @@ -2957,7 +2957,7 @@ static int gsmtty_open(struct tty_struct *tty, struct file *filp)
56502 struct gsm_dlci *dlci = tty->driver_data;
56503 struct tty_port *port = &dlci->port;
56504
56505 - port->count++;
56506 + atomic_inc(&port->count);
56507 tty_port_tty_set(port, tty);
56508
56509 dlci->modem_rx = 0;
56510 diff --git a/drivers/tty/n_tty.c b/drivers/tty/n_tty.c
56511 index afc1879..b605d4b 100644
56512 --- a/drivers/tty/n_tty.c
56513 +++ b/drivers/tty/n_tty.c
56514 @@ -2574,6 +2574,7 @@ void n_tty_inherit_ops(struct tty_ldisc_ops *ops)
56515 {
56516 *ops = tty_ldisc_N_TTY;
56517 ops->owner = NULL;
56518 - ops->refcount = ops->flags = 0;
56519 + atomic_set(&ops->refcount, 0);
56520 + ops->flags = 0;
56521 }
56522 EXPORT_SYMBOL_GPL(n_tty_inherit_ops);
56523 diff --git a/drivers/tty/pty.c b/drivers/tty/pty.c
56524 index 4d5e840..a2340a6 100644
56525 --- a/drivers/tty/pty.c
56526 +++ b/drivers/tty/pty.c
56527 @@ -849,8 +849,10 @@ static void __init unix98_pty_init(void)
56528 panic("Couldn't register Unix98 pts driver");
56529
56530 /* Now create the /dev/ptmx special device */
56531 + pax_open_kernel();
56532 tty_default_fops(&ptmx_fops);
56533 - ptmx_fops.open = ptmx_open;
56534 + *(void **)&ptmx_fops.open = ptmx_open;
56535 + pax_close_kernel();
56536
56537 cdev_init(&ptmx_cdev, &ptmx_fops);
56538 if (cdev_add(&ptmx_cdev, MKDEV(TTYAUX_MAJOR, 2), 1) ||
56539 diff --git a/drivers/tty/rocket.c b/drivers/tty/rocket.c
56540 index c8dd8dc..dca6cfd 100644
56541 --- a/drivers/tty/rocket.c
56542 +++ b/drivers/tty/rocket.c
56543 @@ -914,7 +914,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp)
56544 tty->driver_data = info;
56545 tty_port_tty_set(port, tty);
56546
56547 - if (port->count++ == 0) {
56548 + if (atomic_inc_return(&port->count) == 1) {
56549 atomic_inc(&rp_num_ports_open);
56550
56551 #ifdef ROCKET_DEBUG_OPEN
56552 @@ -923,7 +923,7 @@ static int rp_open(struct tty_struct *tty, struct file *filp)
56553 #endif
56554 }
56555 #ifdef ROCKET_DEBUG_OPEN
56556 - printk(KERN_INFO "rp_open ttyR%d, count=%d\n", info->line, info->port.count);
56557 + printk(KERN_INFO "rp_open ttyR%d, count=%d\n", info->line, atomic-read(&info->port.count));
56558 #endif
56559
56560 /*
56561 @@ -1515,7 +1515,7 @@ static void rp_hangup(struct tty_struct *tty)
56562 spin_unlock_irqrestore(&info->port.lock, flags);
56563 return;
56564 }
56565 - if (info->port.count)
56566 + if (atomic_read(&info->port.count))
56567 atomic_dec(&rp_num_ports_open);
56568 clear_bit((info->aiop * 8) + info->chan, (void *) &xmit_flags[info->board]);
56569 spin_unlock_irqrestore(&info->port.lock, flags);
56570 diff --git a/drivers/tty/serial/8250/8250_core.c b/drivers/tty/serial/8250/8250_core.c
56571 index c35d96e..f05d689 100644
56572 --- a/drivers/tty/serial/8250/8250_core.c
56573 +++ b/drivers/tty/serial/8250/8250_core.c
56574 @@ -3237,9 +3237,9 @@ static void univ8250_release_port(struct uart_port *port)
56575
56576 static void univ8250_rsa_support(struct uart_ops *ops)
56577 {
56578 - ops->config_port = univ8250_config_port;
56579 - ops->request_port = univ8250_request_port;
56580 - ops->release_port = univ8250_release_port;
56581 + *(void **)&ops->config_port = univ8250_config_port;
56582 + *(void **)&ops->request_port = univ8250_request_port;
56583 + *(void **)&ops->release_port = univ8250_release_port;
56584 }
56585
56586 #else
56587 @@ -3282,8 +3282,10 @@ static void __init serial8250_isa_init_ports(void)
56588 }
56589
56590 /* chain base port ops to support Remote Supervisor Adapter */
56591 - univ8250_port_ops = *base_ops;
56592 + pax_open_kernel();
56593 + memcpy((void *)&univ8250_port_ops, base_ops, sizeof univ8250_port_ops);
56594 univ8250_rsa_support(&univ8250_port_ops);
56595 + pax_close_kernel();
56596
56597 if (share_irqs)
56598 irqflag = IRQF_SHARED;
56599 diff --git a/drivers/tty/serial/ifx6x60.c b/drivers/tty/serial/ifx6x60.c
56600 index 536a33b..1b98f43 100644
56601 --- a/drivers/tty/serial/ifx6x60.c
56602 +++ b/drivers/tty/serial/ifx6x60.c
56603 @@ -649,7 +649,7 @@ static void ifx_spi_complete(void *ctx)
56604 struct ifx_spi_device *ifx_dev = ctx;
56605 int length;
56606 int actual_length;
56607 - unsigned char more;
56608 + unsigned char more = 0;
56609 unsigned char cts;
56610 int local_write_pending = 0;
56611 int queue_length;
56612 diff --git a/drivers/tty/serial/ioc4_serial.c b/drivers/tty/serial/ioc4_serial.c
56613 index e5c42fe..f091b02 100644
56614 --- a/drivers/tty/serial/ioc4_serial.c
56615 +++ b/drivers/tty/serial/ioc4_serial.c
56616 @@ -437,7 +437,7 @@ struct ioc4_soft {
56617 } is_intr_info[MAX_IOC4_INTR_ENTS];
56618
56619 /* Number of entries active in the above array */
56620 - atomic_t is_num_intrs;
56621 + atomic_unchecked_t is_num_intrs;
56622 } is_intr_type[IOC4_NUM_INTR_TYPES];
56623
56624 /* is_ir_lock must be held while
56625 @@ -974,7 +974,7 @@ intr_connect(struct ioc4_soft *soft, int type,
56626 BUG_ON(!((type == IOC4_SIO_INTR_TYPE)
56627 || (type == IOC4_OTHER_INTR_TYPE)));
56628
56629 - i = atomic_inc_return(&soft-> is_intr_type[type].is_num_intrs) - 1;
56630 + i = atomic_inc_return_unchecked(&soft-> is_intr_type[type].is_num_intrs) - 1;
56631 BUG_ON(!(i < MAX_IOC4_INTR_ENTS || (printk("i %d\n", i), 0)));
56632
56633 /* Save off the lower level interrupt handler */
56634 @@ -1001,7 +1001,7 @@ static irqreturn_t ioc4_intr(int irq, void *arg)
56635
56636 soft = arg;
56637 for (intr_type = 0; intr_type < IOC4_NUM_INTR_TYPES; intr_type++) {
56638 - num_intrs = (int)atomic_read(
56639 + num_intrs = (int)atomic_read_unchecked(
56640 &soft->is_intr_type[intr_type].is_num_intrs);
56641
56642 this_mir = this_ir = pending_intrs(soft, intr_type);
56643 diff --git a/drivers/tty/serial/kgdb_nmi.c b/drivers/tty/serial/kgdb_nmi.c
56644 index 117df15..2f7dfcf 100644
56645 --- a/drivers/tty/serial/kgdb_nmi.c
56646 +++ b/drivers/tty/serial/kgdb_nmi.c
56647 @@ -53,7 +53,9 @@ static int kgdb_nmi_console_setup(struct console *co, char *options)
56648 * I/O utilities that messages sent to the console will automatically
56649 * be displayed on the dbg_io.
56650 */
56651 - dbg_io_ops->is_console = true;
56652 + pax_open_kernel();
56653 + *(int *)&dbg_io_ops->is_console = true;
56654 + pax_close_kernel();
56655
56656 return 0;
56657 }
56658 diff --git a/drivers/tty/serial/kgdboc.c b/drivers/tty/serial/kgdboc.c
56659 index a260cde..6b2b5ce 100644
56660 --- a/drivers/tty/serial/kgdboc.c
56661 +++ b/drivers/tty/serial/kgdboc.c
56662 @@ -24,8 +24,9 @@
56663 #define MAX_CONFIG_LEN 40
56664
56665 static struct kgdb_io kgdboc_io_ops;
56666 +static struct kgdb_io kgdboc_io_ops_console;
56667
56668 -/* -1 = init not run yet, 0 = unconfigured, 1 = configured. */
56669 +/* -1 = init not run yet, 0 = unconfigured, 1/2 = configured. */
56670 static int configured = -1;
56671
56672 static char config[MAX_CONFIG_LEN];
56673 @@ -151,6 +152,8 @@ static void cleanup_kgdboc(void)
56674 kgdboc_unregister_kbd();
56675 if (configured == 1)
56676 kgdb_unregister_io_module(&kgdboc_io_ops);
56677 + else if (configured == 2)
56678 + kgdb_unregister_io_module(&kgdboc_io_ops_console);
56679 }
56680
56681 static int configure_kgdboc(void)
56682 @@ -160,13 +163,13 @@ static int configure_kgdboc(void)
56683 int err;
56684 char *cptr = config;
56685 struct console *cons;
56686 + int is_console = 0;
56687
56688 err = kgdboc_option_setup(config);
56689 if (err || !strlen(config) || isspace(config[0]))
56690 goto noconfig;
56691
56692 err = -ENODEV;
56693 - kgdboc_io_ops.is_console = 0;
56694 kgdb_tty_driver = NULL;
56695
56696 kgdboc_use_kms = 0;
56697 @@ -187,7 +190,7 @@ static int configure_kgdboc(void)
56698 int idx;
56699 if (cons->device && cons->device(cons, &idx) == p &&
56700 idx == tty_line) {
56701 - kgdboc_io_ops.is_console = 1;
56702 + is_console = 1;
56703 break;
56704 }
56705 cons = cons->next;
56706 @@ -197,7 +200,13 @@ static int configure_kgdboc(void)
56707 kgdb_tty_line = tty_line;
56708
56709 do_register:
56710 - err = kgdb_register_io_module(&kgdboc_io_ops);
56711 + if (is_console) {
56712 + err = kgdb_register_io_module(&kgdboc_io_ops_console);
56713 + configured = 2;
56714 + } else {
56715 + err = kgdb_register_io_module(&kgdboc_io_ops);
56716 + configured = 1;
56717 + }
56718 if (err)
56719 goto noconfig;
56720
56721 @@ -205,8 +214,6 @@ do_register:
56722 if (err)
56723 goto nmi_con_failed;
56724
56725 - configured = 1;
56726 -
56727 return 0;
56728
56729 nmi_con_failed:
56730 @@ -223,7 +230,7 @@ noconfig:
56731 static int __init init_kgdboc(void)
56732 {
56733 /* Already configured? */
56734 - if (configured == 1)
56735 + if (configured >= 1)
56736 return 0;
56737
56738 return configure_kgdboc();
56739 @@ -272,7 +279,7 @@ static int param_set_kgdboc_var(const char *kmessage, struct kernel_param *kp)
56740 if (config[len - 1] == '\n')
56741 config[len - 1] = '\0';
56742
56743 - if (configured == 1)
56744 + if (configured >= 1)
56745 cleanup_kgdboc();
56746
56747 /* Go and configure with the new params. */
56748 @@ -312,6 +319,15 @@ static struct kgdb_io kgdboc_io_ops = {
56749 .post_exception = kgdboc_post_exp_handler,
56750 };
56751
56752 +static struct kgdb_io kgdboc_io_ops_console = {
56753 + .name = "kgdboc",
56754 + .read_char = kgdboc_get_char,
56755 + .write_char = kgdboc_put_char,
56756 + .pre_exception = kgdboc_pre_exp_handler,
56757 + .post_exception = kgdboc_post_exp_handler,
56758 + .is_console = 1
56759 +};
56760 +
56761 #ifdef CONFIG_KGDB_SERIAL_CONSOLE
56762 /* This is only available if kgdboc is a built in for early debugging */
56763 static int __init kgdboc_early_init(char *opt)
56764 diff --git a/drivers/tty/serial/msm_serial.c b/drivers/tty/serial/msm_serial.c
56765 index b73889c..9f74f0a 100644
56766 --- a/drivers/tty/serial/msm_serial.c
56767 +++ b/drivers/tty/serial/msm_serial.c
56768 @@ -1012,7 +1012,7 @@ static struct uart_driver msm_uart_driver = {
56769 .cons = MSM_CONSOLE,
56770 };
56771
56772 -static atomic_t msm_uart_next_id = ATOMIC_INIT(0);
56773 +static atomic_unchecked_t msm_uart_next_id = ATOMIC_INIT(0);
56774
56775 static const struct of_device_id msm_uartdm_table[] = {
56776 { .compatible = "qcom,msm-uartdm-v1.1", .data = (void *)UARTDM_1P1 },
56777 @@ -1036,7 +1036,7 @@ static int msm_serial_probe(struct platform_device *pdev)
56778 line = pdev->id;
56779
56780 if (line < 0)
56781 - line = atomic_inc_return(&msm_uart_next_id) - 1;
56782 + line = atomic_inc_return_unchecked(&msm_uart_next_id) - 1;
56783
56784 if (unlikely(line < 0 || line >= UART_NR))
56785 return -ENXIO;
56786 diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c
56787 index 5916311..1e32415 100644
56788 --- a/drivers/tty/serial/samsung.c
56789 +++ b/drivers/tty/serial/samsung.c
56790 @@ -995,11 +995,16 @@ static void s3c24xx_serial_shutdown(struct uart_port *port)
56791 ourport->tx_in_progress = 0;
56792 }
56793
56794 +static int s3c64xx_serial_startup(struct uart_port *port);
56795 static int s3c24xx_serial_startup(struct uart_port *port)
56796 {
56797 struct s3c24xx_uart_port *ourport = to_ourport(port);
56798 int ret;
56799
56800 + /* Startup sequence is different for s3c64xx and higher SoC's */
56801 + if (s3c24xx_serial_has_interrupt_mask(port))
56802 + return s3c64xx_serial_startup(port);
56803 +
56804 dbg("s3c24xx_serial_startup: port=%p (%08llx,%p)\n",
56805 port, (unsigned long long)port->mapbase, port->membase);
56806
56807 @@ -1706,10 +1711,6 @@ static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,
56808 /* setup info for port */
56809 port->dev = &platdev->dev;
56810
56811 - /* Startup sequence is different for s3c64xx and higher SoC's */
56812 - if (s3c24xx_serial_has_interrupt_mask(port))
56813 - s3c24xx_serial_ops.startup = s3c64xx_serial_startup;
56814 -
56815 port->uartclk = 1;
56816
56817 if (cfg->uart_flags & UPF_CONS_FLOW) {
56818 diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
56819 index f368520..c7a703a 100644
56820 --- a/drivers/tty/serial/serial_core.c
56821 +++ b/drivers/tty/serial/serial_core.c
56822 @@ -1385,7 +1385,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
56823 state = drv->state + tty->index;
56824 port = &state->port;
56825 spin_lock_irq(&port->lock);
56826 - --port->count;
56827 + atomic_dec(&port->count);
56828 spin_unlock_irq(&port->lock);
56829 return;
56830 }
56831 @@ -1395,7 +1395,7 @@ static void uart_close(struct tty_struct *tty, struct file *filp)
56832
56833 pr_debug("uart_close(%d) called\n", uport ? uport->line : -1);
56834
56835 - if (!port->count || tty_port_close_start(port, tty, filp) == 0)
56836 + if (!atomic_read(&port->count) || tty_port_close_start(port, tty, filp) == 0)
56837 return;
56838
56839 /*
56840 @@ -1520,7 +1520,7 @@ static void uart_hangup(struct tty_struct *tty)
56841 uart_flush_buffer(tty);
56842 uart_shutdown(tty, state);
56843 spin_lock_irqsave(&port->lock, flags);
56844 - port->count = 0;
56845 + atomic_set(&port->count, 0);
56846 clear_bit(ASYNCB_NORMAL_ACTIVE, &port->flags);
56847 spin_unlock_irqrestore(&port->lock, flags);
56848 tty_port_tty_set(port, NULL);
56849 @@ -1607,7 +1607,7 @@ static int uart_open(struct tty_struct *tty, struct file *filp)
56850 pr_debug("uart_open(%d) called\n", line);
56851
56852 spin_lock_irq(&port->lock);
56853 - ++port->count;
56854 + atomic_inc(&port->count);
56855 spin_unlock_irq(&port->lock);
56856
56857 /*
56858 diff --git a/drivers/tty/serial/uartlite.c b/drivers/tty/serial/uartlite.c
56859 index b1c6bd3..5f038e2 100644
56860 --- a/drivers/tty/serial/uartlite.c
56861 +++ b/drivers/tty/serial/uartlite.c
56862 @@ -341,13 +341,13 @@ static int ulite_request_port(struct uart_port *port)
56863 return -EBUSY;
56864 }
56865
56866 - port->private_data = &uartlite_be;
56867 + port->private_data = (void *)&uartlite_be;
56868 ret = uart_in32(ULITE_CONTROL, port);
56869 uart_out32(ULITE_CONTROL_RST_TX, ULITE_CONTROL, port);
56870 ret = uart_in32(ULITE_STATUS, port);
56871 /* Endianess detection */
56872 if ((ret & ULITE_STATUS_TXEMPTY) != ULITE_STATUS_TXEMPTY)
56873 - port->private_data = &uartlite_le;
56874 + port->private_data = (void *)&uartlite_le;
56875
56876 return 0;
56877 }
56878 diff --git a/drivers/tty/synclink.c b/drivers/tty/synclink.c
56879 index 2fac712..fcd5268 100644
56880 --- a/drivers/tty/synclink.c
56881 +++ b/drivers/tty/synclink.c
56882 @@ -3090,7 +3090,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
56883
56884 if (debug_level >= DEBUG_LEVEL_INFO)
56885 printk("%s(%d):mgsl_close(%s) entry, count=%d\n",
56886 - __FILE__,__LINE__, info->device_name, info->port.count);
56887 + __FILE__,__LINE__, info->device_name, atomic_read(&info->port.count));
56888
56889 if (tty_port_close_start(&info->port, tty, filp) == 0)
56890 goto cleanup;
56891 @@ -3108,7 +3108,7 @@ static void mgsl_close(struct tty_struct *tty, struct file * filp)
56892 cleanup:
56893 if (debug_level >= DEBUG_LEVEL_INFO)
56894 printk("%s(%d):mgsl_close(%s) exit, count=%d\n", __FILE__,__LINE__,
56895 - tty->driver->name, info->port.count);
56896 + tty->driver->name, atomic_read(&info->port.count));
56897
56898 } /* end of mgsl_close() */
56899
56900 @@ -3207,8 +3207,8 @@ static void mgsl_hangup(struct tty_struct *tty)
56901
56902 mgsl_flush_buffer(tty);
56903 shutdown(info);
56904 -
56905 - info->port.count = 0;
56906 +
56907 + atomic_set(&info->port.count, 0);
56908 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
56909 info->port.tty = NULL;
56910
56911 @@ -3296,10 +3296,10 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
56912
56913 if (debug_level >= DEBUG_LEVEL_INFO)
56914 printk("%s(%d):block_til_ready before block on %s count=%d\n",
56915 - __FILE__,__LINE__, tty->driver->name, port->count );
56916 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
56917
56918 spin_lock_irqsave(&info->irq_spinlock, flags);
56919 - port->count--;
56920 + atomic_dec(&port->count);
56921 spin_unlock_irqrestore(&info->irq_spinlock, flags);
56922 port->blocked_open++;
56923
56924 @@ -3327,7 +3327,7 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
56925
56926 if (debug_level >= DEBUG_LEVEL_INFO)
56927 printk("%s(%d):block_til_ready blocking on %s count=%d\n",
56928 - __FILE__,__LINE__, tty->driver->name, port->count );
56929 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
56930
56931 tty_unlock(tty);
56932 schedule();
56933 @@ -3339,12 +3339,12 @@ static int block_til_ready(struct tty_struct *tty, struct file * filp,
56934
56935 /* FIXME: Racy on hangup during close wait */
56936 if (!tty_hung_up_p(filp))
56937 - port->count++;
56938 + atomic_inc(&port->count);
56939 port->blocked_open--;
56940
56941 if (debug_level >= DEBUG_LEVEL_INFO)
56942 printk("%s(%d):block_til_ready after blocking on %s count=%d\n",
56943 - __FILE__,__LINE__, tty->driver->name, port->count );
56944 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
56945
56946 if (!retval)
56947 port->flags |= ASYNC_NORMAL_ACTIVE;
56948 @@ -3396,7 +3396,7 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
56949
56950 if (debug_level >= DEBUG_LEVEL_INFO)
56951 printk("%s(%d):mgsl_open(%s), old ref count = %d\n",
56952 - __FILE__,__LINE__,tty->driver->name, info->port.count);
56953 + __FILE__,__LINE__,tty->driver->name, atomic_read(&info->port.count));
56954
56955 /* If port is closing, signal caller to try again */
56956 if (info->port.flags & ASYNC_CLOSING){
56957 @@ -3415,10 +3415,10 @@ static int mgsl_open(struct tty_struct *tty, struct file * filp)
56958 spin_unlock_irqrestore(&info->netlock, flags);
56959 goto cleanup;
56960 }
56961 - info->port.count++;
56962 + atomic_inc(&info->port.count);
56963 spin_unlock_irqrestore(&info->netlock, flags);
56964
56965 - if (info->port.count == 1) {
56966 + if (atomic_read(&info->port.count) == 1) {
56967 /* 1st open on this device, init hardware */
56968 retval = startup(info);
56969 if (retval < 0)
56970 @@ -3442,8 +3442,8 @@ cleanup:
56971 if (retval) {
56972 if (tty->count == 1)
56973 info->port.tty = NULL; /* tty layer will release tty struct */
56974 - if(info->port.count)
56975 - info->port.count--;
56976 + if (atomic_read(&info->port.count))
56977 + atomic_dec(&info->port.count);
56978 }
56979
56980 return retval;
56981 @@ -7662,7 +7662,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
56982 unsigned short new_crctype;
56983
56984 /* return error if TTY interface open */
56985 - if (info->port.count)
56986 + if (atomic_read(&info->port.count))
56987 return -EBUSY;
56988
56989 switch (encoding)
56990 @@ -7758,7 +7758,7 @@ static int hdlcdev_open(struct net_device *dev)
56991
56992 /* arbitrate between network and tty opens */
56993 spin_lock_irqsave(&info->netlock, flags);
56994 - if (info->port.count != 0 || info->netcount != 0) {
56995 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
56996 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
56997 spin_unlock_irqrestore(&info->netlock, flags);
56998 return -EBUSY;
56999 @@ -7844,7 +7844,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
57000 printk("%s:hdlcdev_ioctl(%s)\n",__FILE__,dev->name);
57001
57002 /* return error if TTY interface open */
57003 - if (info->port.count)
57004 + if (atomic_read(&info->port.count))
57005 return -EBUSY;
57006
57007 if (cmd != SIOCWANDEV)
57008 diff --git a/drivers/tty/synclink_gt.c b/drivers/tty/synclink_gt.c
57009 index 0ea8eee..b3f1b8f 100644
57010 --- a/drivers/tty/synclink_gt.c
57011 +++ b/drivers/tty/synclink_gt.c
57012 @@ -670,7 +670,7 @@ static int open(struct tty_struct *tty, struct file *filp)
57013 tty->driver_data = info;
57014 info->port.tty = tty;
57015
57016 - DBGINFO(("%s open, old ref count = %d\n", info->device_name, info->port.count));
57017 + DBGINFO(("%s open, old ref count = %d\n", info->device_name, atomic_read(&info->port.count)));
57018
57019 /* If port is closing, signal caller to try again */
57020 if (info->port.flags & ASYNC_CLOSING){
57021 @@ -691,10 +691,10 @@ static int open(struct tty_struct *tty, struct file *filp)
57022 mutex_unlock(&info->port.mutex);
57023 goto cleanup;
57024 }
57025 - info->port.count++;
57026 + atomic_inc(&info->port.count);
57027 spin_unlock_irqrestore(&info->netlock, flags);
57028
57029 - if (info->port.count == 1) {
57030 + if (atomic_read(&info->port.count) == 1) {
57031 /* 1st open on this device, init hardware */
57032 retval = startup(info);
57033 if (retval < 0) {
57034 @@ -715,8 +715,8 @@ cleanup:
57035 if (retval) {
57036 if (tty->count == 1)
57037 info->port.tty = NULL; /* tty layer will release tty struct */
57038 - if(info->port.count)
57039 - info->port.count--;
57040 + if(atomic_read(&info->port.count))
57041 + atomic_dec(&info->port.count);
57042 }
57043
57044 DBGINFO(("%s open rc=%d\n", info->device_name, retval));
57045 @@ -729,7 +729,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57046
57047 if (sanity_check(info, tty->name, "close"))
57048 return;
57049 - DBGINFO(("%s close entry, count=%d\n", info->device_name, info->port.count));
57050 + DBGINFO(("%s close entry, count=%d\n", info->device_name, atomic_read(&info->port.count)));
57051
57052 if (tty_port_close_start(&info->port, tty, filp) == 0)
57053 goto cleanup;
57054 @@ -746,7 +746,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57055 tty_port_close_end(&info->port, tty);
57056 info->port.tty = NULL;
57057 cleanup:
57058 - DBGINFO(("%s close exit, count=%d\n", tty->driver->name, info->port.count));
57059 + DBGINFO(("%s close exit, count=%d\n", tty->driver->name, atomic_read(&info->port.count)));
57060 }
57061
57062 static void hangup(struct tty_struct *tty)
57063 @@ -764,7 +764,7 @@ static void hangup(struct tty_struct *tty)
57064 shutdown(info);
57065
57066 spin_lock_irqsave(&info->port.lock, flags);
57067 - info->port.count = 0;
57068 + atomic_set(&info->port.count, 0);
57069 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
57070 info->port.tty = NULL;
57071 spin_unlock_irqrestore(&info->port.lock, flags);
57072 @@ -1449,7 +1449,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
57073 unsigned short new_crctype;
57074
57075 /* return error if TTY interface open */
57076 - if (info->port.count)
57077 + if (atomic_read(&info->port.count))
57078 return -EBUSY;
57079
57080 DBGINFO(("%s hdlcdev_attach\n", info->device_name));
57081 @@ -1545,7 +1545,7 @@ static int hdlcdev_open(struct net_device *dev)
57082
57083 /* arbitrate between network and tty opens */
57084 spin_lock_irqsave(&info->netlock, flags);
57085 - if (info->port.count != 0 || info->netcount != 0) {
57086 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
57087 DBGINFO(("%s hdlc_open busy\n", dev->name));
57088 spin_unlock_irqrestore(&info->netlock, flags);
57089 return -EBUSY;
57090 @@ -1630,7 +1630,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
57091 DBGINFO(("%s hdlcdev_ioctl\n", dev->name));
57092
57093 /* return error if TTY interface open */
57094 - if (info->port.count)
57095 + if (atomic_read(&info->port.count))
57096 return -EBUSY;
57097
57098 if (cmd != SIOCWANDEV)
57099 @@ -2417,7 +2417,7 @@ static irqreturn_t slgt_interrupt(int dummy, void *dev_id)
57100 if (port == NULL)
57101 continue;
57102 spin_lock(&port->lock);
57103 - if ((port->port.count || port->netcount) &&
57104 + if ((atomic_read(&port->port.count) || port->netcount) &&
57105 port->pending_bh && !port->bh_running &&
57106 !port->bh_requested) {
57107 DBGISR(("%s bh queued\n", port->device_name));
57108 @@ -3303,7 +3303,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57109 add_wait_queue(&port->open_wait, &wait);
57110
57111 spin_lock_irqsave(&info->lock, flags);
57112 - port->count--;
57113 + atomic_dec(&port->count);
57114 spin_unlock_irqrestore(&info->lock, flags);
57115 port->blocked_open++;
57116
57117 @@ -3339,7 +3339,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57118 remove_wait_queue(&port->open_wait, &wait);
57119
57120 if (!tty_hung_up_p(filp))
57121 - port->count++;
57122 + atomic_inc(&port->count);
57123 port->blocked_open--;
57124
57125 if (!retval)
57126 diff --git a/drivers/tty/synclinkmp.c b/drivers/tty/synclinkmp.c
57127 index 08633a8..3d56e14 100644
57128 --- a/drivers/tty/synclinkmp.c
57129 +++ b/drivers/tty/synclinkmp.c
57130 @@ -750,7 +750,7 @@ static int open(struct tty_struct *tty, struct file *filp)
57131
57132 if (debug_level >= DEBUG_LEVEL_INFO)
57133 printk("%s(%d):%s open(), old ref count = %d\n",
57134 - __FILE__,__LINE__,tty->driver->name, info->port.count);
57135 + __FILE__,__LINE__,tty->driver->name, atomic_read(&info->port.count));
57136
57137 /* If port is closing, signal caller to try again */
57138 if (info->port.flags & ASYNC_CLOSING){
57139 @@ -769,10 +769,10 @@ static int open(struct tty_struct *tty, struct file *filp)
57140 spin_unlock_irqrestore(&info->netlock, flags);
57141 goto cleanup;
57142 }
57143 - info->port.count++;
57144 + atomic_inc(&info->port.count);
57145 spin_unlock_irqrestore(&info->netlock, flags);
57146
57147 - if (info->port.count == 1) {
57148 + if (atomic_read(&info->port.count) == 1) {
57149 /* 1st open on this device, init hardware */
57150 retval = startup(info);
57151 if (retval < 0)
57152 @@ -796,8 +796,8 @@ cleanup:
57153 if (retval) {
57154 if (tty->count == 1)
57155 info->port.tty = NULL; /* tty layer will release tty struct */
57156 - if(info->port.count)
57157 - info->port.count--;
57158 + if(atomic_read(&info->port.count))
57159 + atomic_dec(&info->port.count);
57160 }
57161
57162 return retval;
57163 @@ -815,7 +815,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57164
57165 if (debug_level >= DEBUG_LEVEL_INFO)
57166 printk("%s(%d):%s close() entry, count=%d\n",
57167 - __FILE__,__LINE__, info->device_name, info->port.count);
57168 + __FILE__,__LINE__, info->device_name, atomic_read(&info->port.count));
57169
57170 if (tty_port_close_start(&info->port, tty, filp) == 0)
57171 goto cleanup;
57172 @@ -834,7 +834,7 @@ static void close(struct tty_struct *tty, struct file *filp)
57173 cleanup:
57174 if (debug_level >= DEBUG_LEVEL_INFO)
57175 printk("%s(%d):%s close() exit, count=%d\n", __FILE__,__LINE__,
57176 - tty->driver->name, info->port.count);
57177 + tty->driver->name, atomic_read(&info->port.count));
57178 }
57179
57180 /* Called by tty_hangup() when a hangup is signaled.
57181 @@ -857,7 +857,7 @@ static void hangup(struct tty_struct *tty)
57182 shutdown(info);
57183
57184 spin_lock_irqsave(&info->port.lock, flags);
57185 - info->port.count = 0;
57186 + atomic_set(&info->port.count, 0);
57187 info->port.flags &= ~ASYNC_NORMAL_ACTIVE;
57188 info->port.tty = NULL;
57189 spin_unlock_irqrestore(&info->port.lock, flags);
57190 @@ -1565,7 +1565,7 @@ static int hdlcdev_attach(struct net_device *dev, unsigned short encoding,
57191 unsigned short new_crctype;
57192
57193 /* return error if TTY interface open */
57194 - if (info->port.count)
57195 + if (atomic_read(&info->port.count))
57196 return -EBUSY;
57197
57198 switch (encoding)
57199 @@ -1661,7 +1661,7 @@ static int hdlcdev_open(struct net_device *dev)
57200
57201 /* arbitrate between network and tty opens */
57202 spin_lock_irqsave(&info->netlock, flags);
57203 - if (info->port.count != 0 || info->netcount != 0) {
57204 + if (atomic_read(&info->port.count) != 0 || info->netcount != 0) {
57205 printk(KERN_WARNING "%s: hdlc_open returning busy\n", dev->name);
57206 spin_unlock_irqrestore(&info->netlock, flags);
57207 return -EBUSY;
57208 @@ -1747,7 +1747,7 @@ static int hdlcdev_ioctl(struct net_device *dev, struct ifreq *ifr, int cmd)
57209 printk("%s:hdlcdev_ioctl(%s)\n",__FILE__,dev->name);
57210
57211 /* return error if TTY interface open */
57212 - if (info->port.count)
57213 + if (atomic_read(&info->port.count))
57214 return -EBUSY;
57215
57216 if (cmd != SIOCWANDEV)
57217 @@ -2624,7 +2624,7 @@ static irqreturn_t synclinkmp_interrupt(int dummy, void *dev_id)
57218 * do not request bottom half processing if the
57219 * device is not open in a normal mode.
57220 */
57221 - if ( port && (port->port.count || port->netcount) &&
57222 + if ( port && (atomic_read(&port->port.count) || port->netcount) &&
57223 port->pending_bh && !port->bh_running &&
57224 !port->bh_requested ) {
57225 if ( debug_level >= DEBUG_LEVEL_ISR )
57226 @@ -3321,10 +3321,10 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57227
57228 if (debug_level >= DEBUG_LEVEL_INFO)
57229 printk("%s(%d):%s block_til_ready() before block, count=%d\n",
57230 - __FILE__,__LINE__, tty->driver->name, port->count );
57231 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57232
57233 spin_lock_irqsave(&info->lock, flags);
57234 - port->count--;
57235 + atomic_dec(&port->count);
57236 spin_unlock_irqrestore(&info->lock, flags);
57237 port->blocked_open++;
57238
57239 @@ -3352,7 +3352,7 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57240
57241 if (debug_level >= DEBUG_LEVEL_INFO)
57242 printk("%s(%d):%s block_til_ready() count=%d\n",
57243 - __FILE__,__LINE__, tty->driver->name, port->count );
57244 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57245
57246 tty_unlock(tty);
57247 schedule();
57248 @@ -3362,12 +3362,12 @@ static int block_til_ready(struct tty_struct *tty, struct file *filp,
57249 set_current_state(TASK_RUNNING);
57250 remove_wait_queue(&port->open_wait, &wait);
57251 if (!tty_hung_up_p(filp))
57252 - port->count++;
57253 + atomic_inc(&port->count);
57254 port->blocked_open--;
57255
57256 if (debug_level >= DEBUG_LEVEL_INFO)
57257 printk("%s(%d):%s block_til_ready() after, count=%d\n",
57258 - __FILE__,__LINE__, tty->driver->name, port->count );
57259 + __FILE__,__LINE__, tty->driver->name, atomic_read(&port->count));
57260
57261 if (!retval)
57262 port->flags |= ASYNC_NORMAL_ACTIVE;
57263 diff --git a/drivers/tty/sysrq.c b/drivers/tty/sysrq.c
57264 index b5b4278..bb9c7b0 100644
57265 --- a/drivers/tty/sysrq.c
57266 +++ b/drivers/tty/sysrq.c
57267 @@ -1072,7 +1072,7 @@ EXPORT_SYMBOL(unregister_sysrq_key);
57268 static ssize_t write_sysrq_trigger(struct file *file, const char __user *buf,
57269 size_t count, loff_t *ppos)
57270 {
57271 - if (count) {
57272 + if (count && capable(CAP_SYS_ADMIN)) {
57273 char c;
57274
57275 if (get_user(c, buf))
57276 diff --git a/drivers/tty/tty_buffer.c b/drivers/tty/tty_buffer.c
57277 index 4cf263d..fd011fa 100644
57278 --- a/drivers/tty/tty_buffer.c
57279 +++ b/drivers/tty/tty_buffer.c
57280 @@ -242,7 +242,10 @@ void tty_buffer_flush(struct tty_struct *tty, struct tty_ldisc *ld)
57281 atomic_inc(&buf->priority);
57282
57283 mutex_lock(&buf->lock);
57284 - while ((next = buf->head->next) != NULL) {
57285 + /* paired w/ release in __tty_buffer_request_room; ensures there are
57286 + * no pending memory accesses to the freed buffer
57287 + */
57288 + while ((next = smp_load_acquire(&buf->head->next)) != NULL) {
57289 tty_buffer_free(port, buf->head);
57290 buf->head = next;
57291 }
57292 @@ -290,13 +293,15 @@ static int __tty_buffer_request_room(struct tty_port *port, size_t size,
57293 if (n != NULL) {
57294 n->flags = flags;
57295 buf->tail = n;
57296 - b->commit = b->used;
57297 - /* paired w/ barrier in flush_to_ldisc(); ensures the
57298 + /* paired w/ acquire in flush_to_ldisc(); ensures
57299 + * flush_to_ldisc() sees buffer data.
57300 + */
57301 + smp_store_release(&b->commit, b->used);
57302 + /* paired w/ acquire in flush_to_ldisc(); ensures the
57303 * latest commit value can be read before the head is
57304 * advanced to the next buffer
57305 */
57306 - smp_wmb();
57307 - b->next = n;
57308 + smp_store_release(&b->next, n);
57309 } else if (change)
57310 size = 0;
57311 else
57312 @@ -394,7 +399,10 @@ void tty_schedule_flip(struct tty_port *port)
57313 {
57314 struct tty_bufhead *buf = &port->buf;
57315
57316 - buf->tail->commit = buf->tail->used;
57317 + /* paired w/ acquire in flush_to_ldisc(); ensures
57318 + * flush_to_ldisc() sees buffer data.
57319 + */
57320 + smp_store_release(&buf->tail->commit, buf->tail->used);
57321 schedule_work(&buf->work);
57322 }
57323 EXPORT_SYMBOL(tty_schedule_flip);
57324 @@ -469,7 +477,7 @@ static void flush_to_ldisc(struct work_struct *work)
57325 struct tty_struct *tty;
57326 struct tty_ldisc *disc;
57327
57328 - tty = port->itty;
57329 + tty = READ_ONCE(port->itty);
57330 if (tty == NULL)
57331 return;
57332
57333 @@ -488,13 +496,15 @@ static void flush_to_ldisc(struct work_struct *work)
57334 if (atomic_read(&buf->priority))
57335 break;
57336
57337 - next = head->next;
57338 - /* paired w/ barrier in __tty_buffer_request_room();
57339 + /* paired w/ release in __tty_buffer_request_room();
57340 * ensures commit value read is not stale if the head
57341 * is advancing to the next buffer
57342 */
57343 - smp_rmb();
57344 - count = head->commit - head->read;
57345 + next = smp_load_acquire(&head->next);
57346 + /* paired w/ release in __tty_buffer_request_room() or in
57347 + * tty_buffer_flush(); ensures we see the committed buffer data
57348 + */
57349 + count = smp_load_acquire(&head->commit) - head->read;
57350 if (!count) {
57351 if (next == NULL) {
57352 check_other_closed(tty);
57353 diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
57354 index 774df35..62fa290 100644
57355 --- a/drivers/tty/tty_io.c
57356 +++ b/drivers/tty/tty_io.c
57357 @@ -3524,7 +3524,7 @@ EXPORT_SYMBOL(tty_devnum);
57358
57359 void tty_default_fops(struct file_operations *fops)
57360 {
57361 - *fops = tty_fops;
57362 + memcpy((void *)fops, &tty_fops, sizeof(tty_fops));
57363 }
57364
57365 /*
57366 diff --git a/drivers/tty/tty_ldisc.c b/drivers/tty/tty_ldisc.c
57367 index c07fb5d..942acf7 100644
57368 --- a/drivers/tty/tty_ldisc.c
57369 +++ b/drivers/tty/tty_ldisc.c
57370 @@ -70,7 +70,7 @@ int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc)
57371 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
57372 tty_ldiscs[disc] = new_ldisc;
57373 new_ldisc->num = disc;
57374 - new_ldisc->refcount = 0;
57375 + atomic_set(&new_ldisc->refcount, 0);
57376 raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
57377
57378 return ret;
57379 @@ -98,7 +98,7 @@ int tty_unregister_ldisc(int disc)
57380 return -EINVAL;
57381
57382 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
57383 - if (tty_ldiscs[disc]->refcount)
57384 + if (atomic_read(&tty_ldiscs[disc]->refcount))
57385 ret = -EBUSY;
57386 else
57387 tty_ldiscs[disc] = NULL;
57388 @@ -119,7 +119,7 @@ static struct tty_ldisc_ops *get_ldops(int disc)
57389 if (ldops) {
57390 ret = ERR_PTR(-EAGAIN);
57391 if (try_module_get(ldops->owner)) {
57392 - ldops->refcount++;
57393 + atomic_inc(&ldops->refcount);
57394 ret = ldops;
57395 }
57396 }
57397 @@ -132,7 +132,7 @@ static void put_ldops(struct tty_ldisc_ops *ldops)
57398 unsigned long flags;
57399
57400 raw_spin_lock_irqsave(&tty_ldiscs_lock, flags);
57401 - ldops->refcount--;
57402 + atomic_dec(&ldops->refcount);
57403 module_put(ldops->owner);
57404 raw_spin_unlock_irqrestore(&tty_ldiscs_lock, flags);
57405 }
57406 diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
57407 index 40b31835..94d92ae 100644
57408 --- a/drivers/tty/tty_port.c
57409 +++ b/drivers/tty/tty_port.c
57410 @@ -236,7 +236,7 @@ void tty_port_hangup(struct tty_port *port)
57411 unsigned long flags;
57412
57413 spin_lock_irqsave(&port->lock, flags);
57414 - port->count = 0;
57415 + atomic_set(&port->count, 0);
57416 port->flags &= ~ASYNC_NORMAL_ACTIVE;
57417 tty = port->tty;
57418 if (tty)
57419 @@ -398,7 +398,7 @@ int tty_port_block_til_ready(struct tty_port *port,
57420
57421 /* The port lock protects the port counts */
57422 spin_lock_irqsave(&port->lock, flags);
57423 - port->count--;
57424 + atomic_dec(&port->count);
57425 port->blocked_open++;
57426 spin_unlock_irqrestore(&port->lock, flags);
57427
57428 @@ -440,7 +440,7 @@ int tty_port_block_til_ready(struct tty_port *port,
57429 we must not mess that up further */
57430 spin_lock_irqsave(&port->lock, flags);
57431 if (!tty_hung_up_p(filp))
57432 - port->count++;
57433 + atomic_inc(&port->count);
57434 port->blocked_open--;
57435 if (retval == 0)
57436 port->flags |= ASYNC_NORMAL_ACTIVE;
57437 @@ -476,19 +476,19 @@ int tty_port_close_start(struct tty_port *port,
57438 return 0;
57439
57440 spin_lock_irqsave(&port->lock, flags);
57441 - if (tty->count == 1 && port->count != 1) {
57442 + if (tty->count == 1 && atomic_read(&port->count) != 1) {
57443 printk(KERN_WARNING
57444 "tty_port_close_start: tty->count = 1 port count = %d.\n",
57445 - port->count);
57446 - port->count = 1;
57447 + atomic_read(&port->count));
57448 + atomic_set(&port->count, 1);
57449 }
57450 - if (--port->count < 0) {
57451 + if (atomic_dec_return(&port->count) < 0) {
57452 printk(KERN_WARNING "tty_port_close_start: count = %d\n",
57453 - port->count);
57454 - port->count = 0;
57455 + atomic_read(&port->count));
57456 + atomic_set(&port->count, 0);
57457 }
57458
57459 - if (port->count) {
57460 + if (atomic_read(&port->count)) {
57461 spin_unlock_irqrestore(&port->lock, flags);
57462 return 0;
57463 }
57464 @@ -590,7 +590,7 @@ int tty_port_open(struct tty_port *port, struct tty_struct *tty,
57465 struct file *filp)
57466 {
57467 spin_lock_irq(&port->lock);
57468 - ++port->count;
57469 + atomic_inc(&port->count);
57470 spin_unlock_irq(&port->lock);
57471 tty_port_tty_set(port, tty);
57472
57473 diff --git a/drivers/tty/vt/keyboard.c b/drivers/tty/vt/keyboard.c
57474 index 6f0336f..5818bc1 100644
57475 --- a/drivers/tty/vt/keyboard.c
57476 +++ b/drivers/tty/vt/keyboard.c
57477 @@ -642,6 +642,16 @@ static void k_spec(struct vc_data *vc, unsigned char value, char up_flag)
57478 kbd->kbdmode == VC_OFF) &&
57479 value != KVAL(K_SAK))
57480 return; /* SAK is allowed even in raw mode */
57481 +
57482 +#if defined(CONFIG_GRKERNSEC_PROC) || defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
57483 + {
57484 + void *func = fn_handler[value];
57485 + if (func == fn_show_state || func == fn_show_ptregs ||
57486 + func == fn_show_mem)
57487 + return;
57488 + }
57489 +#endif
57490 +
57491 fn_handler[value](vc);
57492 }
57493
57494 @@ -1880,9 +1890,6 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
57495 if (copy_from_user(&tmp, user_kbe, sizeof(struct kbentry)))
57496 return -EFAULT;
57497
57498 - if (!capable(CAP_SYS_TTY_CONFIG))
57499 - perm = 0;
57500 -
57501 switch (cmd) {
57502 case KDGKBENT:
57503 /* Ensure another thread doesn't free it under us */
57504 @@ -1897,6 +1904,9 @@ int vt_do_kdsk_ioctl(int cmd, struct kbentry __user *user_kbe, int perm,
57505 spin_unlock_irqrestore(&kbd_event_lock, flags);
57506 return put_user(val, &user_kbe->kb_value);
57507 case KDSKBENT:
57508 + if (!capable(CAP_SYS_TTY_CONFIG))
57509 + perm = 0;
57510 +
57511 if (!perm)
57512 return -EPERM;
57513 if (!i && v == K_NOSUCHMAP) {
57514 @@ -1987,9 +1997,6 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
57515 int i, j, k;
57516 int ret;
57517
57518 - if (!capable(CAP_SYS_TTY_CONFIG))
57519 - perm = 0;
57520 -
57521 kbs = kmalloc(sizeof(*kbs), GFP_KERNEL);
57522 if (!kbs) {
57523 ret = -ENOMEM;
57524 @@ -2023,6 +2030,9 @@ int vt_do_kdgkb_ioctl(int cmd, struct kbsentry __user *user_kdgkb, int perm)
57525 kfree(kbs);
57526 return ((p && *p) ? -EOVERFLOW : 0);
57527 case KDSKBSENT:
57528 + if (!capable(CAP_SYS_TTY_CONFIG))
57529 + perm = 0;
57530 +
57531 if (!perm) {
57532 ret = -EPERM;
57533 goto reterr;
57534 diff --git a/drivers/uio/uio.c b/drivers/uio/uio.c
57535 index 3257d42..b430b06 100644
57536 --- a/drivers/uio/uio.c
57537 +++ b/drivers/uio/uio.c
57538 @@ -25,6 +25,7 @@
57539 #include <linux/kobject.h>
57540 #include <linux/cdev.h>
57541 #include <linux/uio_driver.h>
57542 +#include <asm/local.h>
57543
57544 #define UIO_MAX_DEVICES (1U << MINORBITS)
57545
57546 @@ -231,7 +232,7 @@ static ssize_t event_show(struct device *dev,
57547 struct device_attribute *attr, char *buf)
57548 {
57549 struct uio_device *idev = dev_get_drvdata(dev);
57550 - return sprintf(buf, "%u\n", (unsigned int)atomic_read(&idev->event));
57551 + return sprintf(buf, "%u\n", (unsigned int)atomic_read_unchecked(&idev->event));
57552 }
57553 static DEVICE_ATTR_RO(event);
57554
57555 @@ -393,7 +394,7 @@ void uio_event_notify(struct uio_info *info)
57556 {
57557 struct uio_device *idev = info->uio_dev;
57558
57559 - atomic_inc(&idev->event);
57560 + atomic_inc_unchecked(&idev->event);
57561 wake_up_interruptible(&idev->wait);
57562 kill_fasync(&idev->async_queue, SIGIO, POLL_IN);
57563 }
57564 @@ -446,7 +447,7 @@ static int uio_open(struct inode *inode, struct file *filep)
57565 }
57566
57567 listener->dev = idev;
57568 - listener->event_count = atomic_read(&idev->event);
57569 + listener->event_count = atomic_read_unchecked(&idev->event);
57570 filep->private_data = listener;
57571
57572 if (idev->info->open) {
57573 @@ -497,7 +498,7 @@ static unsigned int uio_poll(struct file *filep, poll_table *wait)
57574 return -EIO;
57575
57576 poll_wait(filep, &idev->wait, wait);
57577 - if (listener->event_count != atomic_read(&idev->event))
57578 + if (listener->event_count != atomic_read_unchecked(&idev->event))
57579 return POLLIN | POLLRDNORM;
57580 return 0;
57581 }
57582 @@ -522,7 +523,7 @@ static ssize_t uio_read(struct file *filep, char __user *buf,
57583 do {
57584 set_current_state(TASK_INTERRUPTIBLE);
57585
57586 - event_count = atomic_read(&idev->event);
57587 + event_count = atomic_read_unchecked(&idev->event);
57588 if (event_count != listener->event_count) {
57589 if (copy_to_user(buf, &event_count, count))
57590 retval = -EFAULT;
57591 @@ -579,9 +580,13 @@ static ssize_t uio_write(struct file *filep, const char __user *buf,
57592 static int uio_find_mem_index(struct vm_area_struct *vma)
57593 {
57594 struct uio_device *idev = vma->vm_private_data;
57595 + unsigned long size;
57596
57597 if (vma->vm_pgoff < MAX_UIO_MAPS) {
57598 - if (idev->info->mem[vma->vm_pgoff].size == 0)
57599 + size = idev->info->mem[vma->vm_pgoff].size;
57600 + if (size == 0)
57601 + return -1;
57602 + if (vma->vm_end - vma->vm_start > size)
57603 return -1;
57604 return (int)vma->vm_pgoff;
57605 }
57606 @@ -813,7 +818,7 @@ int __uio_register_device(struct module *owner,
57607 idev->owner = owner;
57608 idev->info = info;
57609 init_waitqueue_head(&idev->wait);
57610 - atomic_set(&idev->event, 0);
57611 + atomic_set_unchecked(&idev->event, 0);
57612
57613 ret = uio_get_minor(idev);
57614 if (ret)
57615 diff --git a/drivers/usb/atm/cxacru.c b/drivers/usb/atm/cxacru.c
57616 index 813d4d3..a71934f 100644
57617 --- a/drivers/usb/atm/cxacru.c
57618 +++ b/drivers/usb/atm/cxacru.c
57619 @@ -472,7 +472,7 @@ static ssize_t cxacru_sysfs_store_adsl_config(struct device *dev,
57620 ret = sscanf(buf + pos, "%x=%x%n", &index, &value, &tmp);
57621 if (ret < 2)
57622 return -EINVAL;
57623 - if (index < 0 || index > 0x7f)
57624 + if (index > 0x7f)
57625 return -EINVAL;
57626 pos += tmp;
57627
57628 diff --git a/drivers/usb/atm/usbatm.c b/drivers/usb/atm/usbatm.c
57629 index db322d9..f0f4bc1 100644
57630 --- a/drivers/usb/atm/usbatm.c
57631 +++ b/drivers/usb/atm/usbatm.c
57632 @@ -331,7 +331,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
57633 if (printk_ratelimit())
57634 atm_warn(instance, "%s: OAM not supported (vpi %d, vci %d)!\n",
57635 __func__, vpi, vci);
57636 - atomic_inc(&vcc->stats->rx_err);
57637 + atomic_inc_unchecked(&vcc->stats->rx_err);
57638 return;
57639 }
57640
57641 @@ -358,7 +358,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
57642 if (length > ATM_MAX_AAL5_PDU) {
57643 atm_rldbg(instance, "%s: bogus length %u (vcc: 0x%p)!\n",
57644 __func__, length, vcc);
57645 - atomic_inc(&vcc->stats->rx_err);
57646 + atomic_inc_unchecked(&vcc->stats->rx_err);
57647 goto out;
57648 }
57649
57650 @@ -367,14 +367,14 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
57651 if (sarb->len < pdu_length) {
57652 atm_rldbg(instance, "%s: bogus pdu_length %u (sarb->len: %u, vcc: 0x%p)!\n",
57653 __func__, pdu_length, sarb->len, vcc);
57654 - atomic_inc(&vcc->stats->rx_err);
57655 + atomic_inc_unchecked(&vcc->stats->rx_err);
57656 goto out;
57657 }
57658
57659 if (crc32_be(~0, skb_tail_pointer(sarb) - pdu_length, pdu_length) != 0xc704dd7b) {
57660 atm_rldbg(instance, "%s: packet failed crc check (vcc: 0x%p)!\n",
57661 __func__, vcc);
57662 - atomic_inc(&vcc->stats->rx_err);
57663 + atomic_inc_unchecked(&vcc->stats->rx_err);
57664 goto out;
57665 }
57666
57667 @@ -387,7 +387,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
57668 if (printk_ratelimit())
57669 atm_err(instance, "%s: no memory for skb (length: %u)!\n",
57670 __func__, length);
57671 - atomic_inc(&vcc->stats->rx_drop);
57672 + atomic_inc_unchecked(&vcc->stats->rx_drop);
57673 goto out;
57674 }
57675
57676 @@ -415,7 +415,7 @@ static void usbatm_extract_one_cell(struct usbatm_data *instance, unsigned char
57677
57678 vcc->push(vcc, skb);
57679
57680 - atomic_inc(&vcc->stats->rx);
57681 + atomic_inc_unchecked(&vcc->stats->rx);
57682 out:
57683 skb_trim(sarb, 0);
57684 }
57685 @@ -613,7 +613,7 @@ static void usbatm_tx_process(unsigned long data)
57686 struct atm_vcc *vcc = UDSL_SKB(skb)->atm.vcc;
57687
57688 usbatm_pop(vcc, skb);
57689 - atomic_inc(&vcc->stats->tx);
57690 + atomic_inc_unchecked(&vcc->stats->tx);
57691
57692 skb = skb_dequeue(&instance->sndqueue);
57693 }
57694 @@ -757,11 +757,11 @@ static int usbatm_atm_proc_read(struct atm_dev *atm_dev, loff_t *pos, char *page
57695 if (!left--)
57696 return sprintf(page,
57697 "AAL5: tx %d ( %d err ), rx %d ( %d err, %d drop )\n",
57698 - atomic_read(&atm_dev->stats.aal5.tx),
57699 - atomic_read(&atm_dev->stats.aal5.tx_err),
57700 - atomic_read(&atm_dev->stats.aal5.rx),
57701 - atomic_read(&atm_dev->stats.aal5.rx_err),
57702 - atomic_read(&atm_dev->stats.aal5.rx_drop));
57703 + atomic_read_unchecked(&atm_dev->stats.aal5.tx),
57704 + atomic_read_unchecked(&atm_dev->stats.aal5.tx_err),
57705 + atomic_read_unchecked(&atm_dev->stats.aal5.rx),
57706 + atomic_read_unchecked(&atm_dev->stats.aal5.rx_err),
57707 + atomic_read_unchecked(&atm_dev->stats.aal5.rx_drop));
57708
57709 if (!left--) {
57710 if (instance->disconnected)
57711 diff --git a/drivers/usb/class/cdc-acm.h b/drivers/usb/class/cdc-acm.h
57712 index dd9af38..75b53e3 100644
57713 --- a/drivers/usb/class/cdc-acm.h
57714 +++ b/drivers/usb/class/cdc-acm.h
57715 @@ -95,7 +95,7 @@ struct acm {
57716 struct urb *read_urbs[ACM_NR];
57717 struct acm_rb read_buffers[ACM_NR];
57718 int rx_buflimit;
57719 - int rx_endpoint;
57720 + unsigned int rx_endpoint;
57721 spinlock_t read_lock;
57722 int write_used; /* number of non-empty write buffers */
57723 int transmitting;
57724 diff --git a/drivers/usb/core/devices.c b/drivers/usb/core/devices.c
57725 index 2a3bbdf..91d72cf 100644
57726 --- a/drivers/usb/core/devices.c
57727 +++ b/drivers/usb/core/devices.c
57728 @@ -126,7 +126,7 @@ static const char format_endpt[] =
57729 * time it gets called.
57730 */
57731 static struct device_connect_event {
57732 - atomic_t count;
57733 + atomic_unchecked_t count;
57734 wait_queue_head_t wait;
57735 } device_event = {
57736 .count = ATOMIC_INIT(1),
57737 @@ -164,7 +164,7 @@ static const struct class_info clas_info[] = {
57738
57739 void usbfs_conn_disc_event(void)
57740 {
57741 - atomic_add(2, &device_event.count);
57742 + atomic_add_unchecked(2, &device_event.count);
57743 wake_up(&device_event.wait);
57744 }
57745
57746 @@ -652,7 +652,7 @@ static unsigned int usb_device_poll(struct file *file,
57747
57748 poll_wait(file, &device_event.wait, wait);
57749
57750 - event_count = atomic_read(&device_event.count);
57751 + event_count = atomic_read_unchecked(&device_event.count);
57752 if (file->f_version != event_count) {
57753 file->f_version = event_count;
57754 return POLLIN | POLLRDNORM;
57755 diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
57756 index 986abde..2af59b11 100644
57757 --- a/drivers/usb/core/devio.c
57758 +++ b/drivers/usb/core/devio.c
57759 @@ -187,7 +187,7 @@ static ssize_t usbdev_read(struct file *file, char __user *buf, size_t nbytes,
57760 struct usb_dev_state *ps = file->private_data;
57761 struct usb_device *dev = ps->dev;
57762 ssize_t ret = 0;
57763 - unsigned len;
57764 + size_t len;
57765 loff_t pos;
57766 int i;
57767
57768 @@ -229,22 +229,22 @@ static ssize_t usbdev_read(struct file *file, char __user *buf, size_t nbytes,
57769 for (i = 0; nbytes && i < dev->descriptor.bNumConfigurations; i++) {
57770 struct usb_config_descriptor *config =
57771 (struct usb_config_descriptor *)dev->rawdescriptors[i];
57772 - unsigned int length = le16_to_cpu(config->wTotalLength);
57773 + size_t length = le16_to_cpu(config->wTotalLength);
57774
57775 if (*ppos < pos + length) {
57776
57777 /* The descriptor may claim to be longer than it
57778 * really is. Here is the actual allocated length. */
57779 - unsigned alloclen =
57780 + size_t alloclen =
57781 le16_to_cpu(dev->config[i].desc.wTotalLength);
57782
57783 - len = length - (*ppos - pos);
57784 + len = length + pos - *ppos;
57785 if (len > nbytes)
57786 len = nbytes;
57787
57788 /* Simply don't write (skip over) unallocated parts */
57789 if (alloclen > (*ppos - pos)) {
57790 - alloclen -= (*ppos - pos);
57791 + alloclen = alloclen + pos - *ppos;
57792 if (copy_to_user(buf,
57793 dev->rawdescriptors[i] + (*ppos - pos),
57794 min(len, alloclen))) {
57795 @@ -1499,7 +1499,7 @@ static int proc_do_submiturb(struct usb_dev_state *ps, struct usbdevfs_urb *uurb
57796 }
57797 }
57798 as->urb->dev = ps->dev;
57799 - as->urb->pipe = (uurb->type << 30) |
57800 + as->urb->pipe = ((unsigned int)uurb->type << 30) |
57801 __create_pipe(ps->dev, uurb->endpoint & 0xf) |
57802 (uurb->endpoint & USB_DIR_IN);
57803
57804 diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
57805 index cbcd092..e783f87 100644
57806 --- a/drivers/usb/core/hcd.c
57807 +++ b/drivers/usb/core/hcd.c
57808 @@ -1554,7 +1554,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
57809 */
57810 usb_get_urb(urb);
57811 atomic_inc(&urb->use_count);
57812 - atomic_inc(&urb->dev->urbnum);
57813 + atomic_inc_unchecked(&urb->dev->urbnum);
57814 usbmon_urb_submit(&hcd->self, urb);
57815
57816 /* NOTE requirements on root-hub callers (usbfs and the hub
57817 @@ -1581,7 +1581,7 @@ int usb_hcd_submit_urb (struct urb *urb, gfp_t mem_flags)
57818 urb->hcpriv = NULL;
57819 INIT_LIST_HEAD(&urb->urb_list);
57820 atomic_dec(&urb->use_count);
57821 - atomic_dec(&urb->dev->urbnum);
57822 + atomic_dec_unchecked(&urb->dev->urbnum);
57823 if (atomic_read(&urb->reject))
57824 wake_up(&usb_kill_urb_queue);
57825 usb_put_urb(urb);
57826 diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
57827 index 73dfa19..c22f1e43 100644
57828 --- a/drivers/usb/core/hub.c
57829 +++ b/drivers/usb/core/hub.c
57830 @@ -26,6 +26,7 @@
57831 #include <linux/mutex.h>
57832 #include <linux/random.h>
57833 #include <linux/pm_qos.h>
57834 +#include <linux/grsecurity.h>
57835
57836 #include <asm/uaccess.h>
57837 #include <asm/byteorder.h>
57838 @@ -4655,6 +4656,10 @@ static void hub_port_connect(struct usb_hub *hub, int port1, u16 portstatus,
57839 goto done;
57840 return;
57841 }
57842 +
57843 + if (gr_handle_new_usb())
57844 + goto done;
57845 +
57846 if (hub_is_superspeed(hub->hdev))
57847 unit_load = 150;
57848 else
57849 diff --git a/drivers/usb/core/sysfs.c b/drivers/usb/core/sysfs.c
57850 index d269738..7340cd7 100644
57851 --- a/drivers/usb/core/sysfs.c
57852 +++ b/drivers/usb/core/sysfs.c
57853 @@ -244,7 +244,7 @@ static ssize_t urbnum_show(struct device *dev, struct device_attribute *attr,
57854 struct usb_device *udev;
57855
57856 udev = to_usb_device(dev);
57857 - return sprintf(buf, "%d\n", atomic_read(&udev->urbnum));
57858 + return sprintf(buf, "%d\n", atomic_read_unchecked(&udev->urbnum));
57859 }
57860 static DEVICE_ATTR_RO(urbnum);
57861
57862 diff --git a/drivers/usb/core/usb.c b/drivers/usb/core/usb.c
57863 index 8d5b2f4..3896940 100644
57864 --- a/drivers/usb/core/usb.c
57865 +++ b/drivers/usb/core/usb.c
57866 @@ -447,7 +447,7 @@ struct usb_device *usb_alloc_dev(struct usb_device *parent,
57867 set_dev_node(&dev->dev, dev_to_node(bus->controller));
57868 dev->state = USB_STATE_ATTACHED;
57869 dev->lpm_disable_count = 1;
57870 - atomic_set(&dev->urbnum, 0);
57871 + atomic_set_unchecked(&dev->urbnum, 0);
57872
57873 INIT_LIST_HEAD(&dev->ep0.urb_list);
57874 dev->ep0.desc.bLength = USB_DT_ENDPOINT_SIZE;
57875 diff --git a/drivers/usb/early/ehci-dbgp.c b/drivers/usb/early/ehci-dbgp.c
57876 index 8cfc319..4868255 100644
57877 --- a/drivers/usb/early/ehci-dbgp.c
57878 +++ b/drivers/usb/early/ehci-dbgp.c
57879 @@ -98,7 +98,8 @@ static inline u32 dbgp_len_update(u32 x, u32 len)
57880
57881 #ifdef CONFIG_KGDB
57882 static struct kgdb_io kgdbdbgp_io_ops;
57883 -#define dbgp_kgdb_mode (dbg_io_ops == &kgdbdbgp_io_ops)
57884 +static struct kgdb_io kgdbdbgp_io_ops_console;
57885 +#define dbgp_kgdb_mode (dbg_io_ops == &kgdbdbgp_io_ops || dbg_io_ops == &kgdbdbgp_io_ops_console)
57886 #else
57887 #define dbgp_kgdb_mode (0)
57888 #endif
57889 @@ -1043,6 +1044,13 @@ static struct kgdb_io kgdbdbgp_io_ops = {
57890 .write_char = kgdbdbgp_write_char,
57891 };
57892
57893 +static struct kgdb_io kgdbdbgp_io_ops_console = {
57894 + .name = "kgdbdbgp",
57895 + .read_char = kgdbdbgp_read_char,
57896 + .write_char = kgdbdbgp_write_char,
57897 + .is_console = 1
57898 +};
57899 +
57900 static int kgdbdbgp_wait_time;
57901
57902 static int __init kgdbdbgp_parse_config(char *str)
57903 @@ -1058,8 +1066,10 @@ static int __init kgdbdbgp_parse_config(char *str)
57904 ptr++;
57905 kgdbdbgp_wait_time = simple_strtoul(ptr, &ptr, 10);
57906 }
57907 - kgdb_register_io_module(&kgdbdbgp_io_ops);
57908 - kgdbdbgp_io_ops.is_console = early_dbgp_console.index != -1;
57909 + if (early_dbgp_console.index != -1)
57910 + kgdb_register_io_module(&kgdbdbgp_io_ops_console);
57911 + else
57912 + kgdb_register_io_module(&kgdbdbgp_io_ops);
57913
57914 return 0;
57915 }
57916 diff --git a/drivers/usb/gadget/function/f_uac1.c b/drivers/usb/gadget/function/f_uac1.c
57917 index 7856b33..8b7fe09 100644
57918 --- a/drivers/usb/gadget/function/f_uac1.c
57919 +++ b/drivers/usb/gadget/function/f_uac1.c
57920 @@ -14,6 +14,7 @@
57921 #include <linux/module.h>
57922 #include <linux/device.h>
57923 #include <linux/atomic.h>
57924 +#include <linux/module.h>
57925
57926 #include "u_uac1.h"
57927
57928 diff --git a/drivers/usb/gadget/function/u_serial.c b/drivers/usb/gadget/function/u_serial.c
57929 index 7ee05793..2e31e99 100644
57930 --- a/drivers/usb/gadget/function/u_serial.c
57931 +++ b/drivers/usb/gadget/function/u_serial.c
57932 @@ -732,9 +732,9 @@ static int gs_open(struct tty_struct *tty, struct file *file)
57933 spin_lock_irq(&port->port_lock);
57934
57935 /* already open? Great. */
57936 - if (port->port.count) {
57937 + if (atomic_read(&port->port.count)) {
57938 status = 0;
57939 - port->port.count++;
57940 + atomic_inc(&port->port.count);
57941
57942 /* currently opening/closing? wait ... */
57943 } else if (port->openclose) {
57944 @@ -793,7 +793,7 @@ static int gs_open(struct tty_struct *tty, struct file *file)
57945 tty->driver_data = port;
57946 port->port.tty = tty;
57947
57948 - port->port.count = 1;
57949 + atomic_set(&port->port.count, 1);
57950 port->openclose = false;
57951
57952 /* if connected, start the I/O stream */
57953 @@ -835,11 +835,11 @@ static void gs_close(struct tty_struct *tty, struct file *file)
57954
57955 spin_lock_irq(&port->port_lock);
57956
57957 - if (port->port.count != 1) {
57958 - if (port->port.count == 0)
57959 + if (atomic_read(&port->port.count) != 1) {
57960 + if (atomic_read(&port->port.count) == 0)
57961 WARN_ON(1);
57962 else
57963 - --port->port.count;
57964 + atomic_dec(&port->port.count);
57965 goto exit;
57966 }
57967
57968 @@ -849,7 +849,7 @@ static void gs_close(struct tty_struct *tty, struct file *file)
57969 * and sleep if necessary
57970 */
57971 port->openclose = true;
57972 - port->port.count = 0;
57973 + atomic_set(&port->port.count, 0);
57974
57975 gser = port->port_usb;
57976 if (gser && gser->disconnect)
57977 @@ -1065,7 +1065,7 @@ static int gs_closed(struct gs_port *port)
57978 int cond;
57979
57980 spin_lock_irq(&port->port_lock);
57981 - cond = (port->port.count == 0) && !port->openclose;
57982 + cond = (atomic_read(&port->port.count) == 0) && !port->openclose;
57983 spin_unlock_irq(&port->port_lock);
57984 return cond;
57985 }
57986 @@ -1208,7 +1208,7 @@ int gserial_connect(struct gserial *gser, u8 port_num)
57987 /* if it's already open, start I/O ... and notify the serial
57988 * protocol about open/close status (connect/disconnect).
57989 */
57990 - if (port->port.count) {
57991 + if (atomic_read(&port->port.count)) {
57992 pr_debug("gserial_connect: start ttyGS%d\n", port->port_num);
57993 gs_start_io(port);
57994 if (gser->connect)
57995 @@ -1255,7 +1255,7 @@ void gserial_disconnect(struct gserial *gser)
57996
57997 port->port_usb = NULL;
57998 gser->ioport = NULL;
57999 - if (port->port.count > 0 || port->openclose) {
58000 + if (atomic_read(&port->port.count) > 0 || port->openclose) {
58001 wake_up_interruptible(&port->drain_wait);
58002 if (port->port.tty)
58003 tty_hangup(port->port.tty);
58004 @@ -1271,7 +1271,7 @@ void gserial_disconnect(struct gserial *gser)
58005
58006 /* finally, free any unused/unusable I/O buffers */
58007 spin_lock_irqsave(&port->port_lock, flags);
58008 - if (port->port.count == 0 && !port->openclose)
58009 + if (atomic_read(&port->port.count) == 0 && !port->openclose)
58010 gs_buf_free(&port->port_write_buf);
58011 gs_free_requests(gser->out, &port->read_pool, NULL);
58012 gs_free_requests(gser->out, &port->read_queue, NULL);
58013 diff --git a/drivers/usb/gadget/function/u_uac1.c b/drivers/usb/gadget/function/u_uac1.c
58014 index c78c841..48fd281 100644
58015 --- a/drivers/usb/gadget/function/u_uac1.c
58016 +++ b/drivers/usb/gadget/function/u_uac1.c
58017 @@ -17,6 +17,7 @@
58018 #include <linux/ctype.h>
58019 #include <linux/random.h>
58020 #include <linux/syscalls.h>
58021 +#include <linux/module.h>
58022
58023 #include "u_uac1.h"
58024
58025 diff --git a/drivers/usb/gadget/udc/dummy_hcd.c b/drivers/usb/gadget/udc/dummy_hcd.c
58026 index 181112c..036bcab 100644
58027 --- a/drivers/usb/gadget/udc/dummy_hcd.c
58028 +++ b/drivers/usb/gadget/udc/dummy_hcd.c
58029 @@ -2384,7 +2384,7 @@ static int dummy_setup(struct usb_hcd *hcd)
58030 struct dummy *dum;
58031
58032 dum = *((void **)dev_get_platdata(hcd->self.controller));
58033 - hcd->self.sg_tablesize = ~0;
58034 + hcd->self.sg_tablesize = SG_ALL;
58035 if (usb_hcd_is_primary_hcd(hcd)) {
58036 dum->hs_hcd = hcd_to_dummy_hcd(hcd);
58037 dum->hs_hcd->dum = dum;
58038 diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
58039 index c63d82c..a7e8665 100644
58040 --- a/drivers/usb/host/ehci-hcd.c
58041 +++ b/drivers/usb/host/ehci-hcd.c
58042 @@ -564,7 +564,7 @@ static int ehci_init(struct usb_hcd *hcd)
58043
58044 /* Accept arbitrarily long scatter-gather lists */
58045 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58046 - hcd->self.sg_tablesize = ~0;
58047 + hcd->self.sg_tablesize = SG_ALL;
58048 return 0;
58049 }
58050
58051 diff --git a/drivers/usb/host/ehci-hub.c b/drivers/usb/host/ehci-hub.c
58052 index 22abb68..50b7b84 100644
58053 --- a/drivers/usb/host/ehci-hub.c
58054 +++ b/drivers/usb/host/ehci-hub.c
58055 @@ -773,7 +773,7 @@ static struct urb *request_single_step_set_feature_urb(
58056 urb->transfer_flags = URB_DIR_IN;
58057 usb_get_urb(urb);
58058 atomic_inc(&urb->use_count);
58059 - atomic_inc(&urb->dev->urbnum);
58060 + atomic_inc_unchecked(&urb->dev->urbnum);
58061 urb->setup_dma = dma_map_single(
58062 hcd->self.controller,
58063 urb->setup_packet,
58064 @@ -840,7 +840,7 @@ static int ehset_single_step_set_feature(struct usb_hcd *hcd, int port)
58065 urb->status = -EINPROGRESS;
58066 usb_get_urb(urb);
58067 atomic_inc(&urb->use_count);
58068 - atomic_inc(&urb->dev->urbnum);
58069 + atomic_inc_unchecked(&urb->dev->urbnum);
58070 retval = submit_single_step_set_feature(hcd, urb, 0);
58071 if (!retval && !wait_for_completion_timeout(&done,
58072 msecs_to_jiffies(2000))) {
58073 diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
58074 index 54f5332..8b8335c 100644
58075 --- a/drivers/usb/host/ehci-q.c
58076 +++ b/drivers/usb/host/ehci-q.c
58077 @@ -44,9 +44,9 @@
58078
58079 static int
58080 qtd_fill(struct ehci_hcd *ehci, struct ehci_qtd *qtd, dma_addr_t buf,
58081 - size_t len, int token, int maxpacket)
58082 + size_t len, u32 token, int maxpacket)
58083 {
58084 - int i, count;
58085 + u32 i, count;
58086 u64 addr = buf;
58087
58088 /* one buffer entry per 4K ... first might be short or unaligned */
58089 diff --git a/drivers/usb/host/fotg210-hcd.c b/drivers/usb/host/fotg210-hcd.c
58090 index 000ed80..2701154 100644
58091 --- a/drivers/usb/host/fotg210-hcd.c
58092 +++ b/drivers/usb/host/fotg210-hcd.c
58093 @@ -5231,7 +5231,7 @@ static int hcd_fotg210_init(struct usb_hcd *hcd)
58094
58095 /* Accept arbitrarily long scatter-gather lists */
58096 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58097 - hcd->self.sg_tablesize = ~0;
58098 + hcd->self.sg_tablesize = SG_ALL;
58099 return 0;
58100 }
58101
58102 diff --git a/drivers/usb/host/fusbh200-hcd.c b/drivers/usb/host/fusbh200-hcd.c
58103 index 1fd8718..c7ff47c 100644
58104 --- a/drivers/usb/host/fusbh200-hcd.c
58105 +++ b/drivers/usb/host/fusbh200-hcd.c
58106 @@ -5156,7 +5156,7 @@ static int hcd_fusbh200_init(struct usb_hcd *hcd)
58107
58108 /* Accept arbitrarily long scatter-gather lists */
58109 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58110 - hcd->self.sg_tablesize = ~0;
58111 + hcd->self.sg_tablesize = SG_ALL;
58112 return 0;
58113 }
58114
58115 diff --git a/drivers/usb/host/hwa-hc.c b/drivers/usb/host/hwa-hc.c
58116 index 1db0626..2e9f5ea 100644
58117 --- a/drivers/usb/host/hwa-hc.c
58118 +++ b/drivers/usb/host/hwa-hc.c
58119 @@ -337,7 +337,10 @@ static int __hwahc_op_bwa_set(struct wusbhc *wusbhc, s8 stream_index,
58120 struct hwahc *hwahc = container_of(wusbhc, struct hwahc, wusbhc);
58121 struct wahc *wa = &hwahc->wa;
58122 struct device *dev = &wa->usb_iface->dev;
58123 - u8 mas_le[UWB_NUM_MAS/8];
58124 + u8 *mas_le = kmalloc(UWB_NUM_MAS/8, GFP_KERNEL);
58125 +
58126 + if (mas_le == NULL)
58127 + return -ENOMEM;
58128
58129 /* Set the stream index */
58130 result = usb_control_msg(wa->usb_dev, usb_sndctrlpipe(wa->usb_dev, 0),
58131 @@ -356,10 +359,12 @@ static int __hwahc_op_bwa_set(struct wusbhc *wusbhc, s8 stream_index,
58132 WUSB_REQ_SET_WUSB_MAS,
58133 USB_DIR_OUT | USB_TYPE_CLASS | USB_RECIP_INTERFACE,
58134 0, wa->usb_iface->cur_altsetting->desc.bInterfaceNumber,
58135 - mas_le, 32, USB_CTRL_SET_TIMEOUT);
58136 + mas_le, UWB_NUM_MAS/8, USB_CTRL_SET_TIMEOUT);
58137 if (result < 0)
58138 dev_err(dev, "Cannot set WUSB MAS allocation: %d\n", result);
58139 out:
58140 + kfree(mas_le);
58141 +
58142 return result;
58143 }
58144
58145 @@ -812,7 +817,7 @@ static int hwahc_probe(struct usb_interface *usb_iface,
58146 goto error_alloc;
58147 }
58148 usb_hcd->wireless = 1;
58149 - usb_hcd->self.sg_tablesize = ~0;
58150 + usb_hcd->self.sg_tablesize = SG_ALL;
58151 wusbhc = usb_hcd_to_wusbhc(usb_hcd);
58152 hwahc = container_of(wusbhc, struct hwahc, wusbhc);
58153 hwahc_init(hwahc);
58154 diff --git a/drivers/usb/host/ohci-hcd.c b/drivers/usb/host/ohci-hcd.c
58155 index 760cb57..fc7f8ad 100644
58156 --- a/drivers/usb/host/ohci-hcd.c
58157 +++ b/drivers/usb/host/ohci-hcd.c
58158 @@ -444,7 +444,7 @@ static int ohci_init (struct ohci_hcd *ohci)
58159 struct usb_hcd *hcd = ohci_to_hcd(ohci);
58160
58161 /* Accept arbitrarily long scatter-gather lists */
58162 - hcd->self.sg_tablesize = ~0;
58163 + hcd->self.sg_tablesize = SG_ALL;
58164
58165 if (distrust_firmware)
58166 ohci->flags |= OHCI_QUIRK_HUB_POWER;
58167 diff --git a/drivers/usb/host/r8a66597.h b/drivers/usb/host/r8a66597.h
58168 index 672cea3..31a730db 100644
58169 --- a/drivers/usb/host/r8a66597.h
58170 +++ b/drivers/usb/host/r8a66597.h
58171 @@ -125,7 +125,7 @@ struct r8a66597 {
58172 unsigned short interval_map;
58173 unsigned char pipe_cnt[R8A66597_MAX_NUM_PIPE];
58174 unsigned char dma_map;
58175 - unsigned int max_root_hub;
58176 + unsigned char max_root_hub;
58177
58178 struct list_head child_device;
58179 unsigned long child_connect_map[4];
58180 diff --git a/drivers/usb/host/uhci-hcd.c b/drivers/usb/host/uhci-hcd.c
58181 index a7de8e8..e1ef134 100644
58182 --- a/drivers/usb/host/uhci-hcd.c
58183 +++ b/drivers/usb/host/uhci-hcd.c
58184 @@ -570,7 +570,7 @@ static int uhci_start(struct usb_hcd *hcd)
58185 hcd->uses_new_polling = 1;
58186 /* Accept arbitrarily long scatter-gather lists */
58187 if (!(hcd->driver->flags & HCD_LOCAL_MEM))
58188 - hcd->self.sg_tablesize = ~0;
58189 + hcd->self.sg_tablesize = SG_ALL;
58190
58191 spin_lock_init(&uhci->lock);
58192 setup_timer(&uhci->fsbr_timer, uhci_fsbr_timeout,
58193 diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
58194 index c47d3e4..35bcc1e 100644
58195 --- a/drivers/usb/host/xhci-pci.c
58196 +++ b/drivers/usb/host/xhci-pci.c
58197 @@ -30,7 +30,7 @@
58198
58199 #define PORT2_SSIC_CONFIG_REG2 0x883c
58200 #define PROG_DONE (1 << 30)
58201 -#define SSIC_PORT_UNUSED (1 << 31)
58202 +#define SSIC_PORT_UNUSED (1U << 31)
58203
58204 /* Device for a quirk */
58205 #define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73
58206 diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
58207 index d7b9f484..8208965 100644
58208 --- a/drivers/usb/host/xhci.c
58209 +++ b/drivers/usb/host/xhci.c
58210 @@ -4837,7 +4837,7 @@ int xhci_gen_setup(struct usb_hcd *hcd, xhci_get_quirks_t get_quirks)
58211 int retval;
58212
58213 /* Accept arbitrarily long scatter-gather lists */
58214 - hcd->self.sg_tablesize = ~0;
58215 + hcd->self.sg_tablesize = SG_ALL;
58216
58217 /* support to build packet from discontinuous buffers */
58218 hcd->self.no_sg_constraint = 1;
58219 diff --git a/drivers/usb/misc/appledisplay.c b/drivers/usb/misc/appledisplay.c
58220 index a0a3827..d7ec10b 100644
58221 --- a/drivers/usb/misc/appledisplay.c
58222 +++ b/drivers/usb/misc/appledisplay.c
58223 @@ -84,7 +84,7 @@ struct appledisplay {
58224 struct mutex sysfslock; /* concurrent read and write */
58225 };
58226
58227 -static atomic_t count_displays = ATOMIC_INIT(0);
58228 +static atomic_unchecked_t count_displays = ATOMIC_INIT(0);
58229 static struct workqueue_struct *wq;
58230
58231 static void appledisplay_complete(struct urb *urb)
58232 @@ -288,7 +288,7 @@ static int appledisplay_probe(struct usb_interface *iface,
58233
58234 /* Register backlight device */
58235 snprintf(bl_name, sizeof(bl_name), "appledisplay%d",
58236 - atomic_inc_return(&count_displays) - 1);
58237 + atomic_inc_return_unchecked(&count_displays) - 1);
58238 memset(&props, 0, sizeof(struct backlight_properties));
58239 props.type = BACKLIGHT_RAW;
58240 props.max_brightness = 0xff;
58241 diff --git a/drivers/usb/serial/console.c b/drivers/usb/serial/console.c
58242 index 3806e70..55c508b 100644
58243 --- a/drivers/usb/serial/console.c
58244 +++ b/drivers/usb/serial/console.c
58245 @@ -126,7 +126,7 @@ static int usb_console_setup(struct console *co, char *options)
58246
58247 info->port = port;
58248
58249 - ++port->port.count;
58250 + atomic_inc(&port->port.count);
58251 if (!test_bit(ASYNCB_INITIALIZED, &port->port.flags)) {
58252 if (serial->type->set_termios) {
58253 /*
58254 @@ -175,7 +175,7 @@ static int usb_console_setup(struct console *co, char *options)
58255 }
58256 /* Now that any required fake tty operations are completed restore
58257 * the tty port count */
58258 - --port->port.count;
58259 + atomic_dec(&port->port.count);
58260 /* The console is special in terms of closing the device so
58261 * indicate this port is now acting as a system console. */
58262 port->port.console = 1;
58263 @@ -188,7 +188,7 @@ static int usb_console_setup(struct console *co, char *options)
58264 put_tty:
58265 tty_kref_put(tty);
58266 reset_open_count:
58267 - port->port.count = 0;
58268 + atomic_set(&port->port.count, 0);
58269 usb_autopm_put_interface(serial->interface);
58270 error_get_interface:
58271 usb_serial_put(serial);
58272 @@ -199,7 +199,7 @@ static int usb_console_setup(struct console *co, char *options)
58273 static void usb_console_write(struct console *co,
58274 const char *buf, unsigned count)
58275 {
58276 - static struct usbcons_info *info = &usbcons_info;
58277 + struct usbcons_info *info = &usbcons_info;
58278 struct usb_serial_port *port = info->port;
58279 struct usb_serial *serial;
58280 int retval = -ENODEV;
58281 diff --git a/drivers/usb/storage/transport.c b/drivers/usb/storage/transport.c
58282 index 540add2..2a2c7da 100644
58283 --- a/drivers/usb/storage/transport.c
58284 +++ b/drivers/usb/storage/transport.c
58285 @@ -689,7 +689,7 @@ void usb_stor_invoke_transport(struct scsi_cmnd *srb, struct us_data *us)
58286 if (need_auto_sense) {
58287 int temp_result;
58288 struct scsi_eh_save ses;
58289 - int sense_size = US_SENSE_SIZE;
58290 + unsigned int sense_size = US_SENSE_SIZE;
58291 struct scsi_sense_hdr sshdr;
58292 const u8 *scdd;
58293 u8 fm_ili;
58294 diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
58295 index 43576ed..583589d 100644
58296 --- a/drivers/usb/storage/usb.c
58297 +++ b/drivers/usb/storage/usb.c
58298 @@ -912,7 +912,7 @@ static void usb_stor_scan_dwork(struct work_struct *work)
58299 clear_bit(US_FLIDX_SCAN_PENDING, &us->dflags);
58300 }
58301
58302 -static unsigned int usb_stor_sg_tablesize(struct usb_interface *intf)
58303 +static unsigned short usb_stor_sg_tablesize(struct usb_interface *intf)
58304 {
58305 struct usb_device *usb_dev = interface_to_usbdev(intf);
58306
58307 diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h
58308 index da0ad32..50b5bbe 100644
58309 --- a/drivers/usb/storage/usb.h
58310 +++ b/drivers/usb/storage/usb.h
58311 @@ -63,7 +63,7 @@ struct us_unusual_dev {
58312 __u8 useProtocol;
58313 __u8 useTransport;
58314 int (*initFunction)(struct us_data *);
58315 -};
58316 +} __do_const;
58317
58318
58319 /* Dynamic bitflag definitions (us->dflags): used in set_bit() etc. */
58320 diff --git a/drivers/usb/usbip/vhci.h b/drivers/usb/usbip/vhci.h
58321 index a863a98..d272795 100644
58322 --- a/drivers/usb/usbip/vhci.h
58323 +++ b/drivers/usb/usbip/vhci.h
58324 @@ -83,7 +83,7 @@ struct vhci_hcd {
58325 unsigned resuming:1;
58326 unsigned long re_timeout;
58327
58328 - atomic_t seqnum;
58329 + atomic_unchecked_t seqnum;
58330
58331 /*
58332 * NOTE:
58333 diff --git a/drivers/usb/usbip/vhci_hcd.c b/drivers/usb/usbip/vhci_hcd.c
58334 index e9ef1ec..c3a0b04 100644
58335 --- a/drivers/usb/usbip/vhci_hcd.c
58336 +++ b/drivers/usb/usbip/vhci_hcd.c
58337 @@ -440,7 +440,7 @@ static void vhci_tx_urb(struct urb *urb)
58338
58339 spin_lock(&vdev->priv_lock);
58340
58341 - priv->seqnum = atomic_inc_return(&the_controller->seqnum);
58342 + priv->seqnum = atomic_inc_return_unchecked(&the_controller->seqnum);
58343 if (priv->seqnum == 0xffff)
58344 dev_info(&urb->dev->dev, "seqnum max\n");
58345
58346 @@ -685,7 +685,7 @@ static int vhci_urb_dequeue(struct usb_hcd *hcd, struct urb *urb, int status)
58347 return -ENOMEM;
58348 }
58349
58350 - unlink->seqnum = atomic_inc_return(&the_controller->seqnum);
58351 + unlink->seqnum = atomic_inc_return_unchecked(&the_controller->seqnum);
58352 if (unlink->seqnum == 0xffff)
58353 pr_info("seqnum max\n");
58354
58355 @@ -889,7 +889,7 @@ static int vhci_start(struct usb_hcd *hcd)
58356 vdev->rhport = rhport;
58357 }
58358
58359 - atomic_set(&vhci->seqnum, 0);
58360 + atomic_set_unchecked(&vhci->seqnum, 0);
58361 spin_lock_init(&vhci->lock);
58362
58363 hcd->power_budget = 0; /* no limit */
58364 diff --git a/drivers/usb/usbip/vhci_rx.c b/drivers/usb/usbip/vhci_rx.c
58365 index 00e4a54..d676f85 100644
58366 --- a/drivers/usb/usbip/vhci_rx.c
58367 +++ b/drivers/usb/usbip/vhci_rx.c
58368 @@ -80,7 +80,7 @@ static void vhci_recv_ret_submit(struct vhci_device *vdev,
58369 if (!urb) {
58370 pr_err("cannot find a urb of seqnum %u\n", pdu->base.seqnum);
58371 pr_info("max seqnum %d\n",
58372 - atomic_read(&the_controller->seqnum));
58373 + atomic_read_unchecked(&the_controller->seqnum));
58374 usbip_event_add(ud, VDEV_EVENT_ERROR_TCP);
58375 return;
58376 }
58377 diff --git a/drivers/usb/usbip/vhci_sysfs.c b/drivers/usb/usbip/vhci_sysfs.c
58378 index 211f43f..6c22ae1 100644
58379 --- a/drivers/usb/usbip/vhci_sysfs.c
58380 +++ b/drivers/usb/usbip/vhci_sysfs.c
58381 @@ -59,7 +59,7 @@ static ssize_t status_show(struct device *dev, struct device_attribute *attr,
58382 if (vdev->ud.status == VDEV_ST_USED) {
58383 out += sprintf(out, "%03u %08x ",
58384 vdev->speed, vdev->devid);
58385 - out += sprintf(out, "%16p ", vdev->ud.tcp_socket);
58386 + out += sprintf(out, "%16pK ", vdev->ud.tcp_socket);
58387 out += sprintf(out, "%s", dev_name(&vdev->udev->dev));
58388
58389 } else {
58390 diff --git a/drivers/usb/wusbcore/wa-hc.h b/drivers/usb/wusbcore/wa-hc.h
58391 index edc7267..9f65ce2 100644
58392 --- a/drivers/usb/wusbcore/wa-hc.h
58393 +++ b/drivers/usb/wusbcore/wa-hc.h
58394 @@ -240,7 +240,7 @@ struct wahc {
58395 spinlock_t xfer_list_lock;
58396 struct work_struct xfer_enqueue_work;
58397 struct work_struct xfer_error_work;
58398 - atomic_t xfer_id_count;
58399 + atomic_unchecked_t xfer_id_count;
58400
58401 kernel_ulong_t quirks;
58402 };
58403 @@ -305,7 +305,7 @@ static inline void wa_init(struct wahc *wa)
58404 INIT_WORK(&wa->xfer_enqueue_work, wa_urb_enqueue_run);
58405 INIT_WORK(&wa->xfer_error_work, wa_process_errored_transfers_run);
58406 wa->dto_in_use = 0;
58407 - atomic_set(&wa->xfer_id_count, 1);
58408 + atomic_set_unchecked(&wa->xfer_id_count, 1);
58409 /* init the buf in URBs */
58410 for (index = 0; index < WA_MAX_BUF_IN_URBS; ++index)
58411 usb_init_urb(&(wa->buf_in_urbs[index]));
58412 diff --git a/drivers/usb/wusbcore/wa-xfer.c b/drivers/usb/wusbcore/wa-xfer.c
58413 index 69af4fd..da390d7 100644
58414 --- a/drivers/usb/wusbcore/wa-xfer.c
58415 +++ b/drivers/usb/wusbcore/wa-xfer.c
58416 @@ -314,7 +314,7 @@ static void wa_xfer_completion(struct wa_xfer *xfer)
58417 */
58418 static void wa_xfer_id_init(struct wa_xfer *xfer)
58419 {
58420 - xfer->id = atomic_add_return(1, &xfer->wa->xfer_id_count);
58421 + xfer->id = atomic_add_return_unchecked(1, &xfer->wa->xfer_id_count);
58422 }
58423
58424 /* Return the xfer's ID. */
58425 diff --git a/drivers/vfio/vfio.c b/drivers/vfio/vfio.c
58426 index 563c510..1fcc957 100644
58427 --- a/drivers/vfio/vfio.c
58428 +++ b/drivers/vfio/vfio.c
58429 @@ -517,7 +517,7 @@ static int vfio_group_nb_add_dev(struct vfio_group *group, struct device *dev)
58430 return 0;
58431
58432 /* TODO Prevent device auto probing */
58433 - WARN("Device %s added to live group %d!\n", dev_name(dev),
58434 + WARN(1, "Device %s added to live group %d!\n", dev_name(dev),
58435 iommu_group_id(group->iommu_group));
58436
58437 return 0;
58438 diff --git a/drivers/vhost/vringh.c b/drivers/vhost/vringh.c
58439 index 3bb02c6..a01ff38 100644
58440 --- a/drivers/vhost/vringh.c
58441 +++ b/drivers/vhost/vringh.c
58442 @@ -551,7 +551,7 @@ static inline void __vringh_notify_disable(struct vringh *vrh,
58443 static inline int getu16_user(const struct vringh *vrh, u16 *val, const __virtio16 *p)
58444 {
58445 __virtio16 v = 0;
58446 - int rc = get_user(v, (__force __virtio16 __user *)p);
58447 + int rc = get_user(v, (__force_user __virtio16 *)p);
58448 *val = vringh16_to_cpu(vrh, v);
58449 return rc;
58450 }
58451 @@ -559,12 +559,12 @@ static inline int getu16_user(const struct vringh *vrh, u16 *val, const __virtio
58452 static inline int putu16_user(const struct vringh *vrh, __virtio16 *p, u16 val)
58453 {
58454 __virtio16 v = cpu_to_vringh16(vrh, val);
58455 - return put_user(v, (__force __virtio16 __user *)p);
58456 + return put_user(v, (__force_user __virtio16 *)p);
58457 }
58458
58459 static inline int copydesc_user(void *dst, const void *src, size_t len)
58460 {
58461 - return copy_from_user(dst, (__force void __user *)src, len) ?
58462 + return copy_from_user(dst, (void __force_user *)src, len) ?
58463 -EFAULT : 0;
58464 }
58465
58466 @@ -572,19 +572,19 @@ static inline int putused_user(struct vring_used_elem *dst,
58467 const struct vring_used_elem *src,
58468 unsigned int num)
58469 {
58470 - return copy_to_user((__force void __user *)dst, src,
58471 + return copy_to_user((void __force_user *)dst, src,
58472 sizeof(*dst) * num) ? -EFAULT : 0;
58473 }
58474
58475 static inline int xfer_from_user(void *src, void *dst, size_t len)
58476 {
58477 - return copy_from_user(dst, (__force void __user *)src, len) ?
58478 + return copy_from_user(dst, (void __force_user *)src, len) ?
58479 -EFAULT : 0;
58480 }
58481
58482 static inline int xfer_to_user(void *dst, void *src, size_t len)
58483 {
58484 - return copy_to_user((__force void __user *)dst, src, len) ?
58485 + return copy_to_user((void __force_user *)dst, src, len) ?
58486 -EFAULT : 0;
58487 }
58488
58489 @@ -621,9 +621,9 @@ int vringh_init_user(struct vringh *vrh, u64 features,
58490 vrh->last_used_idx = 0;
58491 vrh->vring.num = num;
58492 /* vring expects kernel addresses, but only used via accessors. */
58493 - vrh->vring.desc = (__force struct vring_desc *)desc;
58494 - vrh->vring.avail = (__force struct vring_avail *)avail;
58495 - vrh->vring.used = (__force struct vring_used *)used;
58496 + vrh->vring.desc = (__force_kernel struct vring_desc *)desc;
58497 + vrh->vring.avail = (__force_kernel struct vring_avail *)avail;
58498 + vrh->vring.used = (__force_kernel struct vring_used *)used;
58499 return 0;
58500 }
58501 EXPORT_SYMBOL(vringh_init_user);
58502 @@ -826,7 +826,7 @@ static inline int getu16_kern(const struct vringh *vrh,
58503
58504 static inline int putu16_kern(const struct vringh *vrh, __virtio16 *p, u16 val)
58505 {
58506 - ACCESS_ONCE(*p) = cpu_to_vringh16(vrh, val);
58507 + ACCESS_ONCE_RW(*p) = cpu_to_vringh16(vrh, val);
58508 return 0;
58509 }
58510
58511 diff --git a/drivers/video/backlight/kb3886_bl.c b/drivers/video/backlight/kb3886_bl.c
58512 index 84a110a..96312c3 100644
58513 --- a/drivers/video/backlight/kb3886_bl.c
58514 +++ b/drivers/video/backlight/kb3886_bl.c
58515 @@ -78,7 +78,7 @@ static struct kb3886bl_machinfo *bl_machinfo;
58516 static unsigned long kb3886bl_flags;
58517 #define KB3886BL_SUSPENDED 0x01
58518
58519 -static struct dmi_system_id kb3886bl_device_table[] __initdata = {
58520 +static const struct dmi_system_id kb3886bl_device_table[] __initconst = {
58521 {
58522 .ident = "Sahara Touch-iT",
58523 .matches = {
58524 diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c
58525 index 92f3949..7bb0e86 100644
58526 --- a/drivers/video/console/fbcon.c
58527 +++ b/drivers/video/console/fbcon.c
58528 @@ -106,7 +106,7 @@ static int fbcon_softback_size = 32768;
58529 static unsigned long softback_buf, softback_curr;
58530 static unsigned long softback_in;
58531 static unsigned long softback_top, softback_end;
58532 -static int softback_lines;
58533 +static long softback_lines;
58534 /* console mappings */
58535 static int first_fb_vc;
58536 static int last_fb_vc = MAX_NR_CONSOLES - 1;
58537 diff --git a/drivers/video/fbdev/arcfb.c b/drivers/video/fbdev/arcfb.c
58538 index 1b0b233..6f34c2c 100644
58539 --- a/drivers/video/fbdev/arcfb.c
58540 +++ b/drivers/video/fbdev/arcfb.c
58541 @@ -458,7 +458,7 @@ static ssize_t arcfb_write(struct fb_info *info, const char __user *buf,
58542 return -ENOSPC;
58543
58544 err = 0;
58545 - if ((count + p) > fbmemlength) {
58546 + if (count > (fbmemlength - p)) {
58547 count = fbmemlength - p;
58548 err = -ENOSPC;
58549 }
58550 diff --git a/drivers/video/fbdev/aty/aty128fb.c b/drivers/video/fbdev/aty/aty128fb.c
58551 index c42ce2f..4c8bc59 100644
58552 --- a/drivers/video/fbdev/aty/aty128fb.c
58553 +++ b/drivers/video/fbdev/aty/aty128fb.c
58554 @@ -145,7 +145,7 @@ enum {
58555 };
58556
58557 /* Must match above enum */
58558 -static char * const r128_family[] = {
58559 +static const char * const r128_family[] = {
58560 "AGP",
58561 "PCI",
58562 "PRO AGP",
58563 diff --git a/drivers/video/fbdev/aty/atyfb_base.c b/drivers/video/fbdev/aty/atyfb_base.c
58564 index 8789e48..698fe4c 100644
58565 --- a/drivers/video/fbdev/aty/atyfb_base.c
58566 +++ b/drivers/video/fbdev/aty/atyfb_base.c
58567 @@ -1326,10 +1326,14 @@ static int atyfb_set_par(struct fb_info *info)
58568 par->accel_flags = var->accel_flags; /* hack */
58569
58570 if (var->accel_flags) {
58571 - info->fbops->fb_sync = atyfb_sync;
58572 + pax_open_kernel();
58573 + *(void **)&info->fbops->fb_sync = atyfb_sync;
58574 + pax_close_kernel();
58575 info->flags &= ~FBINFO_HWACCEL_DISABLED;
58576 } else {
58577 - info->fbops->fb_sync = NULL;
58578 + pax_open_kernel();
58579 + *(void **)&info->fbops->fb_sync = NULL;
58580 + pax_close_kernel();
58581 info->flags |= FBINFO_HWACCEL_DISABLED;
58582 }
58583
58584 diff --git a/drivers/video/fbdev/aty/mach64_cursor.c b/drivers/video/fbdev/aty/mach64_cursor.c
58585 index 2fa0317..4983f2a 100644
58586 --- a/drivers/video/fbdev/aty/mach64_cursor.c
58587 +++ b/drivers/video/fbdev/aty/mach64_cursor.c
58588 @@ -8,6 +8,7 @@
58589 #include "../core/fb_draw.h"
58590
58591 #include <asm/io.h>
58592 +#include <asm/pgtable.h>
58593
58594 #ifdef __sparc__
58595 #include <asm/fbio.h>
58596 @@ -218,7 +219,9 @@ int aty_init_cursor(struct fb_info *info)
58597 info->sprite.buf_align = 16; /* and 64 lines tall. */
58598 info->sprite.flags = FB_PIXMAP_IO;
58599
58600 - info->fbops->fb_cursor = atyfb_cursor;
58601 + pax_open_kernel();
58602 + *(void **)&info->fbops->fb_cursor = atyfb_cursor;
58603 + pax_close_kernel();
58604
58605 return 0;
58606 }
58607 diff --git a/drivers/video/fbdev/core/fb_defio.c b/drivers/video/fbdev/core/fb_defio.c
58608 index 3fc63c2..eec5e49 100644
58609 --- a/drivers/video/fbdev/core/fb_defio.c
58610 +++ b/drivers/video/fbdev/core/fb_defio.c
58611 @@ -207,7 +207,9 @@ void fb_deferred_io_init(struct fb_info *info)
58612
58613 BUG_ON(!fbdefio);
58614 mutex_init(&fbdefio->lock);
58615 - info->fbops->fb_mmap = fb_deferred_io_mmap;
58616 + pax_open_kernel();
58617 + *(void **)&info->fbops->fb_mmap = fb_deferred_io_mmap;
58618 + pax_close_kernel();
58619 INIT_DELAYED_WORK(&info->deferred_work, fb_deferred_io_work);
58620 INIT_LIST_HEAD(&fbdefio->pagelist);
58621 if (fbdefio->delay == 0) /* set a default of 1 s */
58622 @@ -238,7 +240,7 @@ void fb_deferred_io_cleanup(struct fb_info *info)
58623 page->mapping = NULL;
58624 }
58625
58626 - info->fbops->fb_mmap = NULL;
58627 + *(void **)&info->fbops->fb_mmap = NULL;
58628 mutex_destroy(&fbdefio->lock);
58629 }
58630 EXPORT_SYMBOL_GPL(fb_deferred_io_cleanup);
58631 diff --git a/drivers/video/fbdev/core/fbmem.c b/drivers/video/fbdev/core/fbmem.c
58632 index 0705d88..d9429bf 100644
58633 --- a/drivers/video/fbdev/core/fbmem.c
58634 +++ b/drivers/video/fbdev/core/fbmem.c
58635 @@ -1301,7 +1301,7 @@ static int do_fscreeninfo_to_user(struct fb_fix_screeninfo *fix,
58636 __u32 data;
58637 int err;
58638
58639 - err = copy_to_user(&fix32->id, &fix->id, sizeof(fix32->id));
58640 + err = copy_to_user(fix32->id, &fix->id, sizeof(fix32->id));
58641
58642 data = (__u32) (unsigned long) fix->smem_start;
58643 err |= put_user(data, &fix32->smem_start);
58644 diff --git a/drivers/video/fbdev/hyperv_fb.c b/drivers/video/fbdev/hyperv_fb.c
58645 index 807ee22..7814cd6 100644
58646 --- a/drivers/video/fbdev/hyperv_fb.c
58647 +++ b/drivers/video/fbdev/hyperv_fb.c
58648 @@ -240,7 +240,7 @@ static uint screen_fb_size;
58649 static inline int synthvid_send(struct hv_device *hdev,
58650 struct synthvid_msg *msg)
58651 {
58652 - static atomic64_t request_id = ATOMIC64_INIT(0);
58653 + static atomic64_unchecked_t request_id = ATOMIC64_INIT(0);
58654 int ret;
58655
58656 msg->pipe_hdr.type = PIPE_MSG_DATA;
58657 @@ -248,7 +248,7 @@ static inline int synthvid_send(struct hv_device *hdev,
58658
58659 ret = vmbus_sendpacket(hdev->channel, msg,
58660 msg->vid_hdr.size + sizeof(struct pipe_msg_hdr),
58661 - atomic64_inc_return(&request_id),
58662 + atomic64_inc_return_unchecked(&request_id),
58663 VM_PKT_DATA_INBAND, 0);
58664
58665 if (ret)
58666 diff --git a/drivers/video/fbdev/i810/i810_accel.c b/drivers/video/fbdev/i810/i810_accel.c
58667 index 7672d2e..b56437f 100644
58668 --- a/drivers/video/fbdev/i810/i810_accel.c
58669 +++ b/drivers/video/fbdev/i810/i810_accel.c
58670 @@ -73,6 +73,7 @@ static inline int wait_for_space(struct fb_info *info, u32 space)
58671 }
58672 }
58673 printk("ringbuffer lockup!!!\n");
58674 + printk("head:%u tail:%u iring.size:%u space:%u\n", head, tail, par->iring.size, space);
58675 i810_report_error(mmio);
58676 par->dev_flags |= LOCKUP;
58677 info->pixmap.scan_align = 1;
58678 diff --git a/drivers/video/fbdev/matrox/matroxfb_DAC1064.c b/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
58679 index a01147f..5d896f8 100644
58680 --- a/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
58681 +++ b/drivers/video/fbdev/matrox/matroxfb_DAC1064.c
58682 @@ -1088,14 +1088,20 @@ static void MGAG100_restore(struct matrox_fb_info *minfo)
58683
58684 #ifdef CONFIG_FB_MATROX_MYSTIQUE
58685 struct matrox_switch matrox_mystique = {
58686 - MGA1064_preinit, MGA1064_reset, MGA1064_init, MGA1064_restore,
58687 + .preinit = MGA1064_preinit,
58688 + .reset = MGA1064_reset,
58689 + .init = MGA1064_init,
58690 + .restore = MGA1064_restore,
58691 };
58692 EXPORT_SYMBOL(matrox_mystique);
58693 #endif
58694
58695 #ifdef CONFIG_FB_MATROX_G
58696 struct matrox_switch matrox_G100 = {
58697 - MGAG100_preinit, MGAG100_reset, MGAG100_init, MGAG100_restore,
58698 + .preinit = MGAG100_preinit,
58699 + .reset = MGAG100_reset,
58700 + .init = MGAG100_init,
58701 + .restore = MGAG100_restore,
58702 };
58703 EXPORT_SYMBOL(matrox_G100);
58704 #endif
58705 diff --git a/drivers/video/fbdev/matrox/matroxfb_Ti3026.c b/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
58706 index 195ad7c..09743fc 100644
58707 --- a/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
58708 +++ b/drivers/video/fbdev/matrox/matroxfb_Ti3026.c
58709 @@ -738,7 +738,10 @@ static int Ti3026_preinit(struct matrox_fb_info *minfo)
58710 }
58711
58712 struct matrox_switch matrox_millennium = {
58713 - Ti3026_preinit, Ti3026_reset, Ti3026_init, Ti3026_restore
58714 + .preinit = Ti3026_preinit,
58715 + .reset = Ti3026_reset,
58716 + .init = Ti3026_init,
58717 + .restore = Ti3026_restore
58718 };
58719 EXPORT_SYMBOL(matrox_millennium);
58720 #endif
58721 diff --git a/drivers/video/fbdev/matrox/matroxfb_base.c b/drivers/video/fbdev/matrox/matroxfb_base.c
58722 index 11eb094..622ee31 100644
58723 --- a/drivers/video/fbdev/matrox/matroxfb_base.c
58724 +++ b/drivers/video/fbdev/matrox/matroxfb_base.c
58725 @@ -2176,7 +2176,7 @@ static struct pci_driver matroxfb_driver = {
58726 #define RS1056x480 14 /* 132 x 60 text */
58727 #define RSNoxNo 15
58728 /* 10-FF */
58729 -static struct { int xres, yres, left, right, upper, lower, hslen, vslen, vfreq; } timmings[] __initdata = {
58730 +static struct { unsigned int xres, yres, left, right, upper, lower, hslen, vslen, vfreq; } timmings[] __initdata = {
58731 { 640, 400, 48, 16, 39, 8, 96, 2, 70 },
58732 { 640, 480, 48, 16, 33, 10, 96, 2, 60 },
58733 { 800, 600, 144, 24, 28, 8, 112, 6, 60 },
58734 diff --git a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
58735 index fe92eed..106e085 100644
58736 --- a/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
58737 +++ b/drivers/video/fbdev/mb862xx/mb862xxfb_accel.c
58738 @@ -312,14 +312,18 @@ void mb862xxfb_init_accel(struct fb_info *info, int xres)
58739 struct mb862xxfb_par *par = info->par;
58740
58741 if (info->var.bits_per_pixel == 32) {
58742 - info->fbops->fb_fillrect = cfb_fillrect;
58743 - info->fbops->fb_copyarea = cfb_copyarea;
58744 - info->fbops->fb_imageblit = cfb_imageblit;
58745 + pax_open_kernel();
58746 + *(void **)&info->fbops->fb_fillrect = cfb_fillrect;
58747 + *(void **)&info->fbops->fb_copyarea = cfb_copyarea;
58748 + *(void **)&info->fbops->fb_imageblit = cfb_imageblit;
58749 + pax_close_kernel();
58750 } else {
58751 outreg(disp, GC_L0EM, 3);
58752 - info->fbops->fb_fillrect = mb86290fb_fillrect;
58753 - info->fbops->fb_copyarea = mb86290fb_copyarea;
58754 - info->fbops->fb_imageblit = mb86290fb_imageblit;
58755 + pax_open_kernel();
58756 + *(void **)&info->fbops->fb_fillrect = mb86290fb_fillrect;
58757 + *(void **)&info->fbops->fb_copyarea = mb86290fb_copyarea;
58758 + *(void **)&info->fbops->fb_imageblit = mb86290fb_imageblit;
58759 + pax_close_kernel();
58760 }
58761 outreg(draw, GDC_REG_DRAW_BASE, 0);
58762 outreg(draw, GDC_REG_MODE_MISC, 0x8000);
58763 diff --git a/drivers/video/fbdev/nvidia/nvidia.c b/drivers/video/fbdev/nvidia/nvidia.c
58764 index ce7dab7..a87baf8 100644
58765 --- a/drivers/video/fbdev/nvidia/nvidia.c
58766 +++ b/drivers/video/fbdev/nvidia/nvidia.c
58767 @@ -660,19 +660,23 @@ static int nvidiafb_set_par(struct fb_info *info)
58768 info->fix.line_length = (info->var.xres_virtual *
58769 info->var.bits_per_pixel) >> 3;
58770 if (info->var.accel_flags) {
58771 - info->fbops->fb_imageblit = nvidiafb_imageblit;
58772 - info->fbops->fb_fillrect = nvidiafb_fillrect;
58773 - info->fbops->fb_copyarea = nvidiafb_copyarea;
58774 - info->fbops->fb_sync = nvidiafb_sync;
58775 + pax_open_kernel();
58776 + *(void **)&info->fbops->fb_imageblit = nvidiafb_imageblit;
58777 + *(void **)&info->fbops->fb_fillrect = nvidiafb_fillrect;
58778 + *(void **)&info->fbops->fb_copyarea = nvidiafb_copyarea;
58779 + *(void **)&info->fbops->fb_sync = nvidiafb_sync;
58780 + pax_close_kernel();
58781 info->pixmap.scan_align = 4;
58782 info->flags &= ~FBINFO_HWACCEL_DISABLED;
58783 info->flags |= FBINFO_READS_FAST;
58784 NVResetGraphics(info);
58785 } else {
58786 - info->fbops->fb_imageblit = cfb_imageblit;
58787 - info->fbops->fb_fillrect = cfb_fillrect;
58788 - info->fbops->fb_copyarea = cfb_copyarea;
58789 - info->fbops->fb_sync = NULL;
58790 + pax_open_kernel();
58791 + *(void **)&info->fbops->fb_imageblit = cfb_imageblit;
58792 + *(void **)&info->fbops->fb_fillrect = cfb_fillrect;
58793 + *(void **)&info->fbops->fb_copyarea = cfb_copyarea;
58794 + *(void **)&info->fbops->fb_sync = NULL;
58795 + pax_close_kernel();
58796 info->pixmap.scan_align = 1;
58797 info->flags |= FBINFO_HWACCEL_DISABLED;
58798 info->flags &= ~FBINFO_READS_FAST;
58799 @@ -1164,8 +1168,11 @@ static int nvidia_set_fbinfo(struct fb_info *info)
58800 info->pixmap.size = 8 * 1024;
58801 info->pixmap.flags = FB_PIXMAP_SYSTEM;
58802
58803 - if (!hwcur)
58804 - info->fbops->fb_cursor = NULL;
58805 + if (!hwcur) {
58806 + pax_open_kernel();
58807 + *(void **)&info->fbops->fb_cursor = NULL;
58808 + pax_close_kernel();
58809 + }
58810
58811 info->var.accel_flags = (!noaccel);
58812
58813 diff --git a/drivers/video/fbdev/omap2/dss/display.c b/drivers/video/fbdev/omap2/dss/display.c
58814 index ef5b902..47cf7f5 100644
58815 --- a/drivers/video/fbdev/omap2/dss/display.c
58816 +++ b/drivers/video/fbdev/omap2/dss/display.c
58817 @@ -161,12 +161,14 @@ int omapdss_register_display(struct omap_dss_device *dssdev)
58818 if (dssdev->name == NULL)
58819 dssdev->name = dssdev->alias;
58820
58821 + pax_open_kernel();
58822 if (drv && drv->get_resolution == NULL)
58823 - drv->get_resolution = omapdss_default_get_resolution;
58824 + *(void **)&drv->get_resolution = omapdss_default_get_resolution;
58825 if (drv && drv->get_recommended_bpp == NULL)
58826 - drv->get_recommended_bpp = omapdss_default_get_recommended_bpp;
58827 + *(void **)&drv->get_recommended_bpp = omapdss_default_get_recommended_bpp;
58828 if (drv && drv->get_timings == NULL)
58829 - drv->get_timings = omapdss_default_get_timings;
58830 + *(void **)&drv->get_timings = omapdss_default_get_timings;
58831 + pax_close_kernel();
58832
58833 mutex_lock(&panel_list_mutex);
58834 list_add_tail(&dssdev->panel_list, &panel_list);
58835 diff --git a/drivers/video/fbdev/s1d13xxxfb.c b/drivers/video/fbdev/s1d13xxxfb.c
58836 index 83433cb..71e9b98 100644
58837 --- a/drivers/video/fbdev/s1d13xxxfb.c
58838 +++ b/drivers/video/fbdev/s1d13xxxfb.c
58839 @@ -881,8 +881,10 @@ static int s1d13xxxfb_probe(struct platform_device *pdev)
58840
58841 switch(prod_id) {
58842 case S1D13506_PROD_ID: /* activate acceleration */
58843 - s1d13xxxfb_fbops.fb_fillrect = s1d13xxxfb_bitblt_solidfill;
58844 - s1d13xxxfb_fbops.fb_copyarea = s1d13xxxfb_bitblt_copyarea;
58845 + pax_open_kernel();
58846 + *(void **)&s1d13xxxfb_fbops.fb_fillrect = s1d13xxxfb_bitblt_solidfill;
58847 + *(void **)&s1d13xxxfb_fbops.fb_copyarea = s1d13xxxfb_bitblt_copyarea;
58848 + pax_close_kernel();
58849 info->flags = FBINFO_DEFAULT | FBINFO_HWACCEL_YPAN |
58850 FBINFO_HWACCEL_FILLRECT | FBINFO_HWACCEL_COPYAREA;
58851 break;
58852 diff --git a/drivers/video/fbdev/sh_mobile_lcdcfb.c b/drivers/video/fbdev/sh_mobile_lcdcfb.c
58853 index 82c0a8c..42499a1 100644
58854 --- a/drivers/video/fbdev/sh_mobile_lcdcfb.c
58855 +++ b/drivers/video/fbdev/sh_mobile_lcdcfb.c
58856 @@ -439,9 +439,9 @@ static unsigned long lcdc_sys_read_data(void *handle)
58857 }
58858
58859 static struct sh_mobile_lcdc_sys_bus_ops sh_mobile_lcdc_sys_bus_ops = {
58860 - lcdc_sys_write_index,
58861 - lcdc_sys_write_data,
58862 - lcdc_sys_read_data,
58863 + .write_index = lcdc_sys_write_index,
58864 + .write_data = lcdc_sys_write_data,
58865 + .read_data = lcdc_sys_read_data,
58866 };
58867
58868 static int sh_mobile_lcdc_sginit(struct fb_info *info,
58869 diff --git a/drivers/video/fbdev/smscufx.c b/drivers/video/fbdev/smscufx.c
58870 index 9279e5f..d5f5276 100644
58871 --- a/drivers/video/fbdev/smscufx.c
58872 +++ b/drivers/video/fbdev/smscufx.c
58873 @@ -1174,7 +1174,9 @@ static int ufx_ops_release(struct fb_info *info, int user)
58874 fb_deferred_io_cleanup(info);
58875 kfree(info->fbdefio);
58876 info->fbdefio = NULL;
58877 - info->fbops->fb_mmap = ufx_ops_mmap;
58878 + pax_open_kernel();
58879 + *(void **)&info->fbops->fb_mmap = ufx_ops_mmap;
58880 + pax_close_kernel();
58881 }
58882
58883 pr_debug("released /dev/fb%d user=%d count=%d",
58884 diff --git a/drivers/video/fbdev/udlfb.c b/drivers/video/fbdev/udlfb.c
58885 index ff2b873..626a8d5 100644
58886 --- a/drivers/video/fbdev/udlfb.c
58887 +++ b/drivers/video/fbdev/udlfb.c
58888 @@ -623,11 +623,11 @@ static int dlfb_handle_damage(struct dlfb_data *dev, int x, int y,
58889 dlfb_urb_completion(urb);
58890
58891 error:
58892 - atomic_add(bytes_sent, &dev->bytes_sent);
58893 - atomic_add(bytes_identical, &dev->bytes_identical);
58894 - atomic_add(width*height*2, &dev->bytes_rendered);
58895 + atomic_add_unchecked(bytes_sent, &dev->bytes_sent);
58896 + atomic_add_unchecked(bytes_identical, &dev->bytes_identical);
58897 + atomic_add_unchecked(width*height*2, &dev->bytes_rendered);
58898 end_cycles = get_cycles();
58899 - atomic_add(((unsigned int) ((end_cycles - start_cycles)
58900 + atomic_add_unchecked(((unsigned int) ((end_cycles - start_cycles)
58901 >> 10)), /* Kcycles */
58902 &dev->cpu_kcycles_used);
58903
58904 @@ -748,11 +748,11 @@ static void dlfb_dpy_deferred_io(struct fb_info *info,
58905 dlfb_urb_completion(urb);
58906
58907 error:
58908 - atomic_add(bytes_sent, &dev->bytes_sent);
58909 - atomic_add(bytes_identical, &dev->bytes_identical);
58910 - atomic_add(bytes_rendered, &dev->bytes_rendered);
58911 + atomic_add_unchecked(bytes_sent, &dev->bytes_sent);
58912 + atomic_add_unchecked(bytes_identical, &dev->bytes_identical);
58913 + atomic_add_unchecked(bytes_rendered, &dev->bytes_rendered);
58914 end_cycles = get_cycles();
58915 - atomic_add(((unsigned int) ((end_cycles - start_cycles)
58916 + atomic_add_unchecked(((unsigned int) ((end_cycles - start_cycles)
58917 >> 10)), /* Kcycles */
58918 &dev->cpu_kcycles_used);
58919 }
58920 @@ -991,7 +991,9 @@ static int dlfb_ops_release(struct fb_info *info, int user)
58921 fb_deferred_io_cleanup(info);
58922 kfree(info->fbdefio);
58923 info->fbdefio = NULL;
58924 - info->fbops->fb_mmap = dlfb_ops_mmap;
58925 + pax_open_kernel();
58926 + *(void **)&info->fbops->fb_mmap = dlfb_ops_mmap;
58927 + pax_close_kernel();
58928 }
58929
58930 pr_warn("released /dev/fb%d user=%d count=%d\n",
58931 @@ -1373,7 +1375,7 @@ static ssize_t metrics_bytes_rendered_show(struct device *fbdev,
58932 struct fb_info *fb_info = dev_get_drvdata(fbdev);
58933 struct dlfb_data *dev = fb_info->par;
58934 return snprintf(buf, PAGE_SIZE, "%u\n",
58935 - atomic_read(&dev->bytes_rendered));
58936 + atomic_read_unchecked(&dev->bytes_rendered));
58937 }
58938
58939 static ssize_t metrics_bytes_identical_show(struct device *fbdev,
58940 @@ -1381,7 +1383,7 @@ static ssize_t metrics_bytes_identical_show(struct device *fbdev,
58941 struct fb_info *fb_info = dev_get_drvdata(fbdev);
58942 struct dlfb_data *dev = fb_info->par;
58943 return snprintf(buf, PAGE_SIZE, "%u\n",
58944 - atomic_read(&dev->bytes_identical));
58945 + atomic_read_unchecked(&dev->bytes_identical));
58946 }
58947
58948 static ssize_t metrics_bytes_sent_show(struct device *fbdev,
58949 @@ -1389,7 +1391,7 @@ static ssize_t metrics_bytes_sent_show(struct device *fbdev,
58950 struct fb_info *fb_info = dev_get_drvdata(fbdev);
58951 struct dlfb_data *dev = fb_info->par;
58952 return snprintf(buf, PAGE_SIZE, "%u\n",
58953 - atomic_read(&dev->bytes_sent));
58954 + atomic_read_unchecked(&dev->bytes_sent));
58955 }
58956
58957 static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
58958 @@ -1397,7 +1399,7 @@ static ssize_t metrics_cpu_kcycles_used_show(struct device *fbdev,
58959 struct fb_info *fb_info = dev_get_drvdata(fbdev);
58960 struct dlfb_data *dev = fb_info->par;
58961 return snprintf(buf, PAGE_SIZE, "%u\n",
58962 - atomic_read(&dev->cpu_kcycles_used));
58963 + atomic_read_unchecked(&dev->cpu_kcycles_used));
58964 }
58965
58966 static ssize_t edid_show(
58967 @@ -1457,10 +1459,10 @@ static ssize_t metrics_reset_store(struct device *fbdev,
58968 struct fb_info *fb_info = dev_get_drvdata(fbdev);
58969 struct dlfb_data *dev = fb_info->par;
58970
58971 - atomic_set(&dev->bytes_rendered, 0);
58972 - atomic_set(&dev->bytes_identical, 0);
58973 - atomic_set(&dev->bytes_sent, 0);
58974 - atomic_set(&dev->cpu_kcycles_used, 0);
58975 + atomic_set_unchecked(&dev->bytes_rendered, 0);
58976 + atomic_set_unchecked(&dev->bytes_identical, 0);
58977 + atomic_set_unchecked(&dev->bytes_sent, 0);
58978 + atomic_set_unchecked(&dev->cpu_kcycles_used, 0);
58979
58980 return count;
58981 }
58982 diff --git a/drivers/video/fbdev/uvesafb.c b/drivers/video/fbdev/uvesafb.c
58983 index 178ae93..624b2eb 100644
58984 --- a/drivers/video/fbdev/uvesafb.c
58985 +++ b/drivers/video/fbdev/uvesafb.c
58986 @@ -19,6 +19,7 @@
58987 #include <linux/io.h>
58988 #include <linux/mutex.h>
58989 #include <linux/slab.h>
58990 +#include <linux/moduleloader.h>
58991 #include <video/edid.h>
58992 #include <video/uvesafb.h>
58993 #ifdef CONFIG_X86
58994 @@ -565,10 +566,32 @@ static int uvesafb_vbe_getpmi(struct uvesafb_ktask *task,
58995 if ((task->t.regs.eax & 0xffff) != 0x4f || task->t.regs.es < 0xc000) {
58996 par->pmi_setpal = par->ypan = 0;
58997 } else {
58998 +
58999 +#ifdef CONFIG_PAX_KERNEXEC
59000 +#ifdef CONFIG_MODULES
59001 + par->pmi_code = module_alloc_exec((u16)task->t.regs.ecx);
59002 +#endif
59003 + if (!par->pmi_code) {
59004 + par->pmi_setpal = par->ypan = 0;
59005 + return 0;
59006 + }
59007 +#endif
59008 +
59009 par->pmi_base = (u16 *)phys_to_virt(((u32)task->t.regs.es << 4)
59010 + task->t.regs.edi);
59011 +
59012 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59013 + pax_open_kernel();
59014 + memcpy(par->pmi_code, par->pmi_base, (u16)task->t.regs.ecx);
59015 + pax_close_kernel();
59016 +
59017 + par->pmi_start = (void *)ktva_ktla((unsigned long)(par->pmi_code + par->pmi_base[1]));
59018 + par->pmi_pal = (void *)ktva_ktla((unsigned long)(par->pmi_code + par->pmi_base[2]));
59019 +#else
59020 par->pmi_start = (u8 *)par->pmi_base + par->pmi_base[1];
59021 par->pmi_pal = (u8 *)par->pmi_base + par->pmi_base[2];
59022 +#endif
59023 +
59024 printk(KERN_INFO "uvesafb: protected mode interface info at "
59025 "%04x:%04x\n",
59026 (u16)task->t.regs.es, (u16)task->t.regs.edi);
59027 @@ -813,13 +836,14 @@ static int uvesafb_vbe_init(struct fb_info *info)
59028 par->ypan = ypan;
59029
59030 if (par->pmi_setpal || par->ypan) {
59031 +#if !defined(CONFIG_MODULES) || !defined(CONFIG_PAX_KERNEXEC)
59032 if (__supported_pte_mask & _PAGE_NX) {
59033 par->pmi_setpal = par->ypan = 0;
59034 printk(KERN_WARNING "uvesafb: NX protection is active, "
59035 "better not use the PMI.\n");
59036 - } else {
59037 + } else
59038 +#endif
59039 uvesafb_vbe_getpmi(task, par);
59040 - }
59041 }
59042 #else
59043 /* The protected mode interface is not available on non-x86. */
59044 @@ -1452,8 +1476,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
59045 info->fix.ywrapstep = (par->ypan > 1) ? 1 : 0;
59046
59047 /* Disable blanking if the user requested so. */
59048 - if (!blank)
59049 - info->fbops->fb_blank = NULL;
59050 + if (!blank) {
59051 + pax_open_kernel();
59052 + *(void **)&info->fbops->fb_blank = NULL;
59053 + pax_close_kernel();
59054 + }
59055
59056 /*
59057 * Find out how much IO memory is required for the mode with
59058 @@ -1524,8 +1551,11 @@ static void uvesafb_init_info(struct fb_info *info, struct vbe_mode_ib *mode)
59059 info->flags = FBINFO_FLAG_DEFAULT |
59060 (par->ypan ? FBINFO_HWACCEL_YPAN : 0);
59061
59062 - if (!par->ypan)
59063 - info->fbops->fb_pan_display = NULL;
59064 + if (!par->ypan) {
59065 + pax_open_kernel();
59066 + *(void **)&info->fbops->fb_pan_display = NULL;
59067 + pax_close_kernel();
59068 + }
59069 }
59070
59071 static void uvesafb_init_mtrr(struct fb_info *info)
59072 @@ -1786,6 +1816,11 @@ out_mode:
59073 out:
59074 kfree(par->vbe_modes);
59075
59076 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59077 + if (par->pmi_code)
59078 + module_memfree_exec(par->pmi_code);
59079 +#endif
59080 +
59081 framebuffer_release(info);
59082 return err;
59083 }
59084 @@ -1810,6 +1845,11 @@ static int uvesafb_remove(struct platform_device *dev)
59085 kfree(par->vbe_state_orig);
59086 kfree(par->vbe_state_saved);
59087
59088 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59089 + if (par->pmi_code)
59090 + module_memfree_exec(par->pmi_code);
59091 +#endif
59092 +
59093 framebuffer_release(info);
59094 }
59095 return 0;
59096 diff --git a/drivers/video/fbdev/vesafb.c b/drivers/video/fbdev/vesafb.c
59097 index 528fe91..6fd29fe 100644
59098 --- a/drivers/video/fbdev/vesafb.c
59099 +++ b/drivers/video/fbdev/vesafb.c
59100 @@ -9,6 +9,7 @@
59101 */
59102
59103 #include <linux/module.h>
59104 +#include <linux/moduleloader.h>
59105 #include <linux/kernel.h>
59106 #include <linux/errno.h>
59107 #include <linux/string.h>
59108 @@ -56,8 +57,8 @@ static int vram_remap; /* Set amount of memory to be used */
59109 static int vram_total; /* Set total amount of memory */
59110 static int pmi_setpal __read_mostly = 1; /* pmi for palette changes ??? */
59111 static int ypan __read_mostly; /* 0..nothing, 1..ypan, 2..ywrap */
59112 -static void (*pmi_start)(void) __read_mostly;
59113 -static void (*pmi_pal) (void) __read_mostly;
59114 +static void (*pmi_start)(void) __read_only;
59115 +static void (*pmi_pal) (void) __read_only;
59116 static int depth __read_mostly;
59117 static int vga_compat __read_mostly;
59118 /* --------------------------------------------------------------------- */
59119 @@ -241,6 +242,7 @@ static int vesafb_probe(struct platform_device *dev)
59120 unsigned int size_remap;
59121 unsigned int size_total;
59122 char *option = NULL;
59123 + void *pmi_code = NULL;
59124
59125 /* ignore error return of fb_get_options */
59126 fb_get_options("vesafb", &option);
59127 @@ -287,10 +289,6 @@ static int vesafb_probe(struct platform_device *dev)
59128 size_remap = size_total;
59129 vesafb_fix.smem_len = size_remap;
59130
59131 -#ifndef __i386__
59132 - screen_info.vesapm_seg = 0;
59133 -#endif
59134 -
59135 if (!request_mem_region(vesafb_fix.smem_start, size_total, "vesafb")) {
59136 printk(KERN_WARNING
59137 "vesafb: cannot reserve video memory at 0x%lx\n",
59138 @@ -320,9 +318,21 @@ static int vesafb_probe(struct platform_device *dev)
59139 printk(KERN_INFO "vesafb: mode is %dx%dx%d, linelength=%d, pages=%d\n",
59140 vesafb_defined.xres, vesafb_defined.yres, vesafb_defined.bits_per_pixel, vesafb_fix.line_length, screen_info.pages);
59141
59142 +#ifdef __i386__
59143 +
59144 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59145 + pmi_code = module_alloc_exec(screen_info.vesapm_size);
59146 + if (!pmi_code)
59147 +#elif !defined(CONFIG_PAX_KERNEXEC)
59148 + if (0)
59149 +#endif
59150 +
59151 +#endif
59152 + screen_info.vesapm_seg = 0;
59153 +
59154 if (screen_info.vesapm_seg) {
59155 - printk(KERN_INFO "vesafb: protected mode interface info at %04x:%04x\n",
59156 - screen_info.vesapm_seg,screen_info.vesapm_off);
59157 + printk(KERN_INFO "vesafb: protected mode interface info at %04x:%04x %04x bytes\n",
59158 + screen_info.vesapm_seg,screen_info.vesapm_off,screen_info.vesapm_size);
59159 }
59160
59161 if (screen_info.vesapm_seg < 0xc000)
59162 @@ -330,9 +340,25 @@ static int vesafb_probe(struct platform_device *dev)
59163
59164 if (ypan || pmi_setpal) {
59165 unsigned short *pmi_base;
59166 +
59167 pmi_base = (unsigned short*)phys_to_virt(((unsigned long)screen_info.vesapm_seg << 4) + screen_info.vesapm_off);
59168 - pmi_start = (void*)((char*)pmi_base + pmi_base[1]);
59169 - pmi_pal = (void*)((char*)pmi_base + pmi_base[2]);
59170 +
59171 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59172 + pax_open_kernel();
59173 + memcpy(pmi_code, pmi_base, screen_info.vesapm_size);
59174 +#else
59175 + pmi_code = pmi_base;
59176 +#endif
59177 +
59178 + pmi_start = (void*)((char*)pmi_code + pmi_base[1]);
59179 + pmi_pal = (void*)((char*)pmi_code + pmi_base[2]);
59180 +
59181 +#if defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59182 + pmi_start = (void *)ktva_ktla((unsigned long)pmi_start);
59183 + pmi_pal = (void *)ktva_ktla((unsigned long)pmi_pal);
59184 + pax_close_kernel();
59185 +#endif
59186 +
59187 printk(KERN_INFO "vesafb: pmi: set display start = %p, set palette = %p\n",pmi_start,pmi_pal);
59188 if (pmi_base[3]) {
59189 printk(KERN_INFO "vesafb: pmi: ports = ");
59190 @@ -452,8 +478,11 @@ static int vesafb_probe(struct platform_device *dev)
59191 info->flags = FBINFO_FLAG_DEFAULT | FBINFO_MISC_FIRMWARE |
59192 (ypan ? FBINFO_HWACCEL_YPAN : 0);
59193
59194 - if (!ypan)
59195 - info->fbops->fb_pan_display = NULL;
59196 + if (!ypan) {
59197 + pax_open_kernel();
59198 + *(void **)&info->fbops->fb_pan_display = NULL;
59199 + pax_close_kernel();
59200 + }
59201
59202 if (fb_alloc_cmap(&info->cmap, 256, 0) < 0) {
59203 err = -ENOMEM;
59204 @@ -467,6 +496,11 @@ static int vesafb_probe(struct platform_device *dev)
59205 fb_info(info, "%s frame buffer device\n", info->fix.id);
59206 return 0;
59207 err:
59208 +
59209 +#if defined(__i386__) && defined(CONFIG_MODULES) && defined(CONFIG_PAX_KERNEXEC)
59210 + module_memfree_exec(pmi_code);
59211 +#endif
59212 +
59213 arch_phys_wc_del(par->wc_cookie);
59214 if (info->screen_base)
59215 iounmap(info->screen_base);
59216 diff --git a/drivers/video/fbdev/via/via_clock.h b/drivers/video/fbdev/via/via_clock.h
59217 index 88714ae..16c2e11 100644
59218 --- a/drivers/video/fbdev/via/via_clock.h
59219 +++ b/drivers/video/fbdev/via/via_clock.h
59220 @@ -56,7 +56,7 @@ struct via_clock {
59221
59222 void (*set_engine_pll_state)(u8 state);
59223 void (*set_engine_pll)(struct via_pll_config config);
59224 -};
59225 +} __no_const;
59226
59227
59228 static inline u32 get_pll_internal_frequency(u32 ref_freq,
59229 diff --git a/drivers/video/logo/logo_linux_clut224.ppm b/drivers/video/logo/logo_linux_clut224.ppm
59230 index 3c14e43..2630570 100644
59231 --- a/drivers/video/logo/logo_linux_clut224.ppm
59232 +++ b/drivers/video/logo/logo_linux_clut224.ppm
59233 @@ -2,1603 +2,1123 @@ P3
59234 # Standard 224-color Linux logo
59235 80 80
59236 255
59237 - 0 0 0 0 0 0 0 0 0 0 0 0
59238 - 0 0 0 0 0 0 0 0 0 0 0 0
59239 - 0 0 0 0 0 0 0 0 0 0 0 0
59240 - 0 0 0 0 0 0 0 0 0 0 0 0
59241 - 0 0 0 0 0 0 0 0 0 0 0 0
59242 - 0 0 0 0 0 0 0 0 0 0 0 0
59243 - 0 0 0 0 0 0 0 0 0 0 0 0
59244 - 0 0 0 0 0 0 0 0 0 0 0 0
59245 - 0 0 0 0 0 0 0 0 0 0 0 0
59246 - 6 6 6 6 6 6 10 10 10 10 10 10
59247 - 10 10 10 6 6 6 6 6 6 6 6 6
59248 - 0 0 0 0 0 0 0 0 0 0 0 0
59249 - 0 0 0 0 0 0 0 0 0 0 0 0
59250 - 0 0 0 0 0 0 0 0 0 0 0 0
59251 - 0 0 0 0 0 0 0 0 0 0 0 0
59252 - 0 0 0 0 0 0 0 0 0 0 0 0
59253 - 0 0 0 0 0 0 0 0 0 0 0 0
59254 - 0 0 0 0 0 0 0 0 0 0 0 0
59255 - 0 0 0 0 0 0 0 0 0 0 0 0
59256 - 0 0 0 0 0 0 0 0 0 0 0 0
59257 - 0 0 0 0 0 0 0 0 0 0 0 0
59258 - 0 0 0 0 0 0 0 0 0 0 0 0
59259 - 0 0 0 0 0 0 0 0 0 0 0 0
59260 - 0 0 0 0 0 0 0 0 0 0 0 0
59261 - 0 0 0 0 0 0 0 0 0 0 0 0
59262 - 0 0 0 0 0 0 0 0 0 0 0 0
59263 - 0 0 0 0 0 0 0 0 0 0 0 0
59264 - 0 0 0 0 0 0 0 0 0 0 0 0
59265 - 0 0 0 6 6 6 10 10 10 14 14 14
59266 - 22 22 22 26 26 26 30 30 30 34 34 34
59267 - 30 30 30 30 30 30 26 26 26 18 18 18
59268 - 14 14 14 10 10 10 6 6 6 0 0 0
59269 - 0 0 0 0 0 0 0 0 0 0 0 0
59270 - 0 0 0 0 0 0 0 0 0 0 0 0
59271 - 0 0 0 0 0 0 0 0 0 0 0 0
59272 - 0 0 0 0 0 0 0 0 0 0 0 0
59273 - 0 0 0 0 0 0 0 0 0 0 0 0
59274 - 0 0 0 0 0 0 0 0 0 0 0 0
59275 - 0 0 0 0 0 0 0 0 0 0 0 0
59276 - 0 0 0 0 0 0 0 0 0 0 0 0
59277 - 0 0 0 0 0 0 0 0 0 0 0 0
59278 - 0 0 0 0 0 1 0 0 1 0 0 0
59279 - 0 0 0 0 0 0 0 0 0 0 0 0
59280 - 0 0 0 0 0 0 0 0 0 0 0 0
59281 - 0 0 0 0 0 0 0 0 0 0 0 0
59282 - 0 0 0 0 0 0 0 0 0 0 0 0
59283 - 0 0 0 0 0 0 0 0 0 0 0 0
59284 - 0 0 0 0 0 0 0 0 0 0 0 0
59285 - 6 6 6 14 14 14 26 26 26 42 42 42
59286 - 54 54 54 66 66 66 78 78 78 78 78 78
59287 - 78 78 78 74 74 74 66 66 66 54 54 54
59288 - 42 42 42 26 26 26 18 18 18 10 10 10
59289 - 6 6 6 0 0 0 0 0 0 0 0 0
59290 - 0 0 0 0 0 0 0 0 0 0 0 0
59291 - 0 0 0 0 0 0 0 0 0 0 0 0
59292 - 0 0 0 0 0 0 0 0 0 0 0 0
59293 - 0 0 0 0 0 0 0 0 0 0 0 0
59294 - 0 0 0 0 0 0 0 0 0 0 0 0
59295 - 0 0 0 0 0 0 0 0 0 0 0 0
59296 - 0 0 0 0 0 0 0 0 0 0 0 0
59297 - 0 0 0 0 0 0 0 0 0 0 0 0
59298 - 0 0 1 0 0 0 0 0 0 0 0 0
59299 - 0 0 0 0 0 0 0 0 0 0 0 0
59300 - 0 0 0 0 0 0 0 0 0 0 0 0
59301 - 0 0 0 0 0 0 0 0 0 0 0 0
59302 - 0 0 0 0 0 0 0 0 0 0 0 0
59303 - 0 0 0 0 0 0 0 0 0 0 0 0
59304 - 0 0 0 0 0 0 0 0 0 10 10 10
59305 - 22 22 22 42 42 42 66 66 66 86 86 86
59306 - 66 66 66 38 38 38 38 38 38 22 22 22
59307 - 26 26 26 34 34 34 54 54 54 66 66 66
59308 - 86 86 86 70 70 70 46 46 46 26 26 26
59309 - 14 14 14 6 6 6 0 0 0 0 0 0
59310 - 0 0 0 0 0 0 0 0 0 0 0 0
59311 - 0 0 0 0 0 0 0 0 0 0 0 0
59312 - 0 0 0 0 0 0 0 0 0 0 0 0
59313 - 0 0 0 0 0 0 0 0 0 0 0 0
59314 - 0 0 0 0 0 0 0 0 0 0 0 0
59315 - 0 0 0 0 0 0 0 0 0 0 0 0
59316 - 0 0 0 0 0 0 0 0 0 0 0 0
59317 - 0 0 0 0 0 0 0 0 0 0 0 0
59318 - 0 0 1 0 0 1 0 0 1 0 0 0
59319 - 0 0 0 0 0 0 0 0 0 0 0 0
59320 - 0 0 0 0 0 0 0 0 0 0 0 0
59321 - 0 0 0 0 0 0 0 0 0 0 0 0
59322 - 0 0 0 0 0 0 0 0 0 0 0 0
59323 - 0 0 0 0 0 0 0 0 0 0 0 0
59324 - 0 0 0 0 0 0 10 10 10 26 26 26
59325 - 50 50 50 82 82 82 58 58 58 6 6 6
59326 - 2 2 6 2 2 6 2 2 6 2 2 6
59327 - 2 2 6 2 2 6 2 2 6 2 2 6
59328 - 6 6 6 54 54 54 86 86 86 66 66 66
59329 - 38 38 38 18 18 18 6 6 6 0 0 0
59330 - 0 0 0 0 0 0 0 0 0 0 0 0
59331 - 0 0 0 0 0 0 0 0 0 0 0 0
59332 - 0 0 0 0 0 0 0 0 0 0 0 0
59333 - 0 0 0 0 0 0 0 0 0 0 0 0
59334 - 0 0 0 0 0 0 0 0 0 0 0 0
59335 - 0 0 0 0 0 0 0 0 0 0 0 0
59336 - 0 0 0 0 0 0 0 0 0 0 0 0
59337 - 0 0 0 0 0 0 0 0 0 0 0 0
59338 - 0 0 0 0 0 0 0 0 0 0 0 0
59339 - 0 0 0 0 0 0 0 0 0 0 0 0
59340 - 0 0 0 0 0 0 0 0 0 0 0 0
59341 - 0 0 0 0 0 0 0 0 0 0 0 0
59342 - 0 0 0 0 0 0 0 0 0 0 0 0
59343 - 0 0 0 0 0 0 0 0 0 0 0 0
59344 - 0 0 0 6 6 6 22 22 22 50 50 50
59345 - 78 78 78 34 34 34 2 2 6 2 2 6
59346 - 2 2 6 2 2 6 2 2 6 2 2 6
59347 - 2 2 6 2 2 6 2 2 6 2 2 6
59348 - 2 2 6 2 2 6 6 6 6 70 70 70
59349 - 78 78 78 46 46 46 22 22 22 6 6 6
59350 - 0 0 0 0 0 0 0 0 0 0 0 0
59351 - 0 0 0 0 0 0 0 0 0 0 0 0
59352 - 0 0 0 0 0 0 0 0 0 0 0 0
59353 - 0 0 0 0 0 0 0 0 0 0 0 0
59354 - 0 0 0 0 0 0 0 0 0 0 0 0
59355 - 0 0 0 0 0 0 0 0 0 0 0 0
59356 - 0 0 0 0 0 0 0 0 0 0 0 0
59357 - 0 0 0 0 0 0 0 0 0 0 0 0
59358 - 0 0 1 0 0 1 0 0 1 0 0 0
59359 - 0 0 0 0 0 0 0 0 0 0 0 0
59360 - 0 0 0 0 0 0 0 0 0 0 0 0
59361 - 0 0 0 0 0 0 0 0 0 0 0 0
59362 - 0 0 0 0 0 0 0 0 0 0 0 0
59363 - 0 0 0 0 0 0 0 0 0 0 0 0
59364 - 6 6 6 18 18 18 42 42 42 82 82 82
59365 - 26 26 26 2 2 6 2 2 6 2 2 6
59366 - 2 2 6 2 2 6 2 2 6 2 2 6
59367 - 2 2 6 2 2 6 2 2 6 14 14 14
59368 - 46 46 46 34 34 34 6 6 6 2 2 6
59369 - 42 42 42 78 78 78 42 42 42 18 18 18
59370 - 6 6 6 0 0 0 0 0 0 0 0 0
59371 - 0 0 0 0 0 0 0 0 0 0 0 0
59372 - 0 0 0 0 0 0 0 0 0 0 0 0
59373 - 0 0 0 0 0 0 0 0 0 0 0 0
59374 - 0 0 0 0 0 0 0 0 0 0 0 0
59375 - 0 0 0 0 0 0 0 0 0 0 0 0
59376 - 0 0 0 0 0 0 0 0 0 0 0 0
59377 - 0 0 0 0 0 0 0 0 0 0 0 0
59378 - 0 0 1 0 0 0 0 0 1 0 0 0
59379 - 0 0 0 0 0 0 0 0 0 0 0 0
59380 - 0 0 0 0 0 0 0 0 0 0 0 0
59381 - 0 0 0 0 0 0 0 0 0 0 0 0
59382 - 0 0 0 0 0 0 0 0 0 0 0 0
59383 - 0 0 0 0 0 0 0 0 0 0 0 0
59384 - 10 10 10 30 30 30 66 66 66 58 58 58
59385 - 2 2 6 2 2 6 2 2 6 2 2 6
59386 - 2 2 6 2 2 6 2 2 6 2 2 6
59387 - 2 2 6 2 2 6 2 2 6 26 26 26
59388 - 86 86 86 101 101 101 46 46 46 10 10 10
59389 - 2 2 6 58 58 58 70 70 70 34 34 34
59390 - 10 10 10 0 0 0 0 0 0 0 0 0
59391 - 0 0 0 0 0 0 0 0 0 0 0 0
59392 - 0 0 0 0 0 0 0 0 0 0 0 0
59393 - 0 0 0 0 0 0 0 0 0 0 0 0
59394 - 0 0 0 0 0 0 0 0 0 0 0 0
59395 - 0 0 0 0 0 0 0 0 0 0 0 0
59396 - 0 0 0 0 0 0 0 0 0 0 0 0
59397 - 0 0 0 0 0 0 0 0 0 0 0 0
59398 - 0 0 1 0 0 1 0 0 1 0 0 0
59399 - 0 0 0 0 0 0 0 0 0 0 0 0
59400 - 0 0 0 0 0 0 0 0 0 0 0 0
59401 - 0 0 0 0 0 0 0 0 0 0 0 0
59402 - 0 0 0 0 0 0 0 0 0 0 0 0
59403 - 0 0 0 0 0 0 0 0 0 0 0 0
59404 - 14 14 14 42 42 42 86 86 86 10 10 10
59405 - 2 2 6 2 2 6 2 2 6 2 2 6
59406 - 2 2 6 2 2 6 2 2 6 2 2 6
59407 - 2 2 6 2 2 6 2 2 6 30 30 30
59408 - 94 94 94 94 94 94 58 58 58 26 26 26
59409 - 2 2 6 6 6 6 78 78 78 54 54 54
59410 - 22 22 22 6 6 6 0 0 0 0 0 0
59411 - 0 0 0 0 0 0 0 0 0 0 0 0
59412 - 0 0 0 0 0 0 0 0 0 0 0 0
59413 - 0 0 0 0 0 0 0 0 0 0 0 0
59414 - 0 0 0 0 0 0 0 0 0 0 0 0
59415 - 0 0 0 0 0 0 0 0 0 0 0 0
59416 - 0 0 0 0 0 0 0 0 0 0 0 0
59417 - 0 0 0 0 0 0 0 0 0 0 0 0
59418 - 0 0 0 0 0 0 0 0 0 0 0 0
59419 - 0 0 0 0 0 0 0 0 0 0 0 0
59420 - 0 0 0 0 0 0 0 0 0 0 0 0
59421 - 0 0 0 0 0 0 0 0 0 0 0 0
59422 - 0 0 0 0 0 0 0 0 0 0 0 0
59423 - 0 0 0 0 0 0 0 0 0 6 6 6
59424 - 22 22 22 62 62 62 62 62 62 2 2 6
59425 - 2 2 6 2 2 6 2 2 6 2 2 6
59426 - 2 2 6 2 2 6 2 2 6 2 2 6
59427 - 2 2 6 2 2 6 2 2 6 26 26 26
59428 - 54 54 54 38 38 38 18 18 18 10 10 10
59429 - 2 2 6 2 2 6 34 34 34 82 82 82
59430 - 38 38 38 14 14 14 0 0 0 0 0 0
59431 - 0 0 0 0 0 0 0 0 0 0 0 0
59432 - 0 0 0 0 0 0 0 0 0 0 0 0
59433 - 0 0 0 0 0 0 0 0 0 0 0 0
59434 - 0 0 0 0 0 0 0 0 0 0 0 0
59435 - 0 0 0 0 0 0 0 0 0 0 0 0
59436 - 0 0 0 0 0 0 0 0 0 0 0 0
59437 - 0 0 0 0 0 0 0 0 0 0 0 0
59438 - 0 0 0 0 0 1 0 0 1 0 0 0
59439 - 0 0 0 0 0 0 0 0 0 0 0 0
59440 - 0 0 0 0 0 0 0 0 0 0 0 0
59441 - 0 0 0 0 0 0 0 0 0 0 0 0
59442 - 0 0 0 0 0 0 0 0 0 0 0 0
59443 - 0 0 0 0 0 0 0 0 0 6 6 6
59444 - 30 30 30 78 78 78 30 30 30 2 2 6
59445 - 2 2 6 2 2 6 2 2 6 2 2 6
59446 - 2 2 6 2 2 6 2 2 6 2 2 6
59447 - 2 2 6 2 2 6 2 2 6 10 10 10
59448 - 10 10 10 2 2 6 2 2 6 2 2 6
59449 - 2 2 6 2 2 6 2 2 6 78 78 78
59450 - 50 50 50 18 18 18 6 6 6 0 0 0
59451 - 0 0 0 0 0 0 0 0 0 0 0 0
59452 - 0 0 0 0 0 0 0 0 0 0 0 0
59453 - 0 0 0 0 0 0 0 0 0 0 0 0
59454 - 0 0 0 0 0 0 0 0 0 0 0 0
59455 - 0 0 0 0 0 0 0 0 0 0 0 0
59456 - 0 0 0 0 0 0 0 0 0 0 0 0
59457 - 0 0 0 0 0 0 0 0 0 0 0 0
59458 - 0 0 1 0 0 0 0 0 0 0 0 0
59459 - 0 0 0 0 0 0 0 0 0 0 0 0
59460 - 0 0 0 0 0 0 0 0 0 0 0 0
59461 - 0 0 0 0 0 0 0 0 0 0 0 0
59462 - 0 0 0 0 0 0 0 0 0 0 0 0
59463 - 0 0 0 0 0 0 0 0 0 10 10 10
59464 - 38 38 38 86 86 86 14 14 14 2 2 6
59465 - 2 2 6 2 2 6 2 2 6 2 2 6
59466 - 2 2 6 2 2 6 2 2 6 2 2 6
59467 - 2 2 6 2 2 6 2 2 6 2 2 6
59468 - 2 2 6 2 2 6 2 2 6 2 2 6
59469 - 2 2 6 2 2 6 2 2 6 54 54 54
59470 - 66 66 66 26 26 26 6 6 6 0 0 0
59471 - 0 0 0 0 0 0 0 0 0 0 0 0
59472 - 0 0 0 0 0 0 0 0 0 0 0 0
59473 - 0 0 0 0 0 0 0 0 0 0 0 0
59474 - 0 0 0 0 0 0 0 0 0 0 0 0
59475 - 0 0 0 0 0 0 0 0 0 0 0 0
59476 - 0 0 0 0 0 0 0 0 0 0 0 0
59477 - 0 0 0 0 0 0 0 0 0 0 0 0
59478 - 0 0 0 0 0 1 0 0 1 0 0 0
59479 - 0 0 0 0 0 0 0 0 0 0 0 0
59480 - 0 0 0 0 0 0 0 0 0 0 0 0
59481 - 0 0 0 0 0 0 0 0 0 0 0 0
59482 - 0 0 0 0 0 0 0 0 0 0 0 0
59483 - 0 0 0 0 0 0 0 0 0 14 14 14
59484 - 42 42 42 82 82 82 2 2 6 2 2 6
59485 - 2 2 6 6 6 6 10 10 10 2 2 6
59486 - 2 2 6 2 2 6 2 2 6 2 2 6
59487 - 2 2 6 2 2 6 2 2 6 6 6 6
59488 - 14 14 14 10 10 10 2 2 6 2 2 6
59489 - 2 2 6 2 2 6 2 2 6 18 18 18
59490 - 82 82 82 34 34 34 10 10 10 0 0 0
59491 - 0 0 0 0 0 0 0 0 0 0 0 0
59492 - 0 0 0 0 0 0 0 0 0 0 0 0
59493 - 0 0 0 0 0 0 0 0 0 0 0 0
59494 - 0 0 0 0 0 0 0 0 0 0 0 0
59495 - 0 0 0 0 0 0 0 0 0 0 0 0
59496 - 0 0 0 0 0 0 0 0 0 0 0 0
59497 - 0 0 0 0 0 0 0 0 0 0 0 0
59498 - 0 0 1 0 0 0 0 0 0 0 0 0
59499 - 0 0 0 0 0 0 0 0 0 0 0 0
59500 - 0 0 0 0 0 0 0 0 0 0 0 0
59501 - 0 0 0 0 0 0 0 0 0 0 0 0
59502 - 0 0 0 0 0 0 0 0 0 0 0 0
59503 - 0 0 0 0 0 0 0 0 0 14 14 14
59504 - 46 46 46 86 86 86 2 2 6 2 2 6
59505 - 6 6 6 6 6 6 22 22 22 34 34 34
59506 - 6 6 6 2 2 6 2 2 6 2 2 6
59507 - 2 2 6 2 2 6 18 18 18 34 34 34
59508 - 10 10 10 50 50 50 22 22 22 2 2 6
59509 - 2 2 6 2 2 6 2 2 6 10 10 10
59510 - 86 86 86 42 42 42 14 14 14 0 0 0
59511 - 0 0 0 0 0 0 0 0 0 0 0 0
59512 - 0 0 0 0 0 0 0 0 0 0 0 0
59513 - 0 0 0 0 0 0 0 0 0 0 0 0
59514 - 0 0 0 0 0 0 0 0 0 0 0 0
59515 - 0 0 0 0 0 0 0 0 0 0 0 0
59516 - 0 0 0 0 0 0 0 0 0 0 0 0
59517 - 0 0 0 0 0 0 0 0 0 0 0 0
59518 - 0 0 1 0 0 1 0 0 1 0 0 0
59519 - 0 0 0 0 0 0 0 0 0 0 0 0
59520 - 0 0 0 0 0 0 0 0 0 0 0 0
59521 - 0 0 0 0 0 0 0 0 0 0 0 0
59522 - 0 0 0 0 0 0 0 0 0 0 0 0
59523 - 0 0 0 0 0 0 0 0 0 14 14 14
59524 - 46 46 46 86 86 86 2 2 6 2 2 6
59525 - 38 38 38 116 116 116 94 94 94 22 22 22
59526 - 22 22 22 2 2 6 2 2 6 2 2 6
59527 - 14 14 14 86 86 86 138 138 138 162 162 162
59528 -154 154 154 38 38 38 26 26 26 6 6 6
59529 - 2 2 6 2 2 6 2 2 6 2 2 6
59530 - 86 86 86 46 46 46 14 14 14 0 0 0
59531 - 0 0 0 0 0 0 0 0 0 0 0 0
59532 - 0 0 0 0 0 0 0 0 0 0 0 0
59533 - 0 0 0 0 0 0 0 0 0 0 0 0
59534 - 0 0 0 0 0 0 0 0 0 0 0 0
59535 - 0 0 0 0 0 0 0 0 0 0 0 0
59536 - 0 0 0 0 0 0 0 0 0 0 0 0
59537 - 0 0 0 0 0 0 0 0 0 0 0 0
59538 - 0 0 0 0 0 0 0 0 0 0 0 0
59539 - 0 0 0 0 0 0 0 0 0 0 0 0
59540 - 0 0 0 0 0 0 0 0 0 0 0 0
59541 - 0 0 0 0 0 0 0 0 0 0 0 0
59542 - 0 0 0 0 0 0 0 0 0 0 0 0
59543 - 0 0 0 0 0 0 0 0 0 14 14 14
59544 - 46 46 46 86 86 86 2 2 6 14 14 14
59545 -134 134 134 198 198 198 195 195 195 116 116 116
59546 - 10 10 10 2 2 6 2 2 6 6 6 6
59547 -101 98 89 187 187 187 210 210 210 218 218 218
59548 -214 214 214 134 134 134 14 14 14 6 6 6
59549 - 2 2 6 2 2 6 2 2 6 2 2 6
59550 - 86 86 86 50 50 50 18 18 18 6 6 6
59551 - 0 0 0 0 0 0 0 0 0 0 0 0
59552 - 0 0 0 0 0 0 0 0 0 0 0 0
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 1 0 0 0
59558 - 0 0 1 0 0 1 0 0 1 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 14 14 14
59564 - 46 46 46 86 86 86 2 2 6 54 54 54
59565 -218 218 218 195 195 195 226 226 226 246 246 246
59566 - 58 58 58 2 2 6 2 2 6 30 30 30
59567 -210 210 210 253 253 253 174 174 174 123 123 123
59568 -221 221 221 234 234 234 74 74 74 2 2 6
59569 - 2 2 6 2 2 6 2 2 6 2 2 6
59570 - 70 70 70 58 58 58 22 22 22 6 6 6
59571 - 0 0 0 0 0 0 0 0 0 0 0 0
59572 - 0 0 0 0 0 0 0 0 0 0 0 0
59573 - 0 0 0 0 0 0 0 0 0 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 0 0 0 0 14 14 14
59584 - 46 46 46 82 82 82 2 2 6 106 106 106
59585 -170 170 170 26 26 26 86 86 86 226 226 226
59586 -123 123 123 10 10 10 14 14 14 46 46 46
59587 -231 231 231 190 190 190 6 6 6 70 70 70
59588 - 90 90 90 238 238 238 158 158 158 2 2 6
59589 - 2 2 6 2 2 6 2 2 6 2 2 6
59590 - 70 70 70 58 58 58 22 22 22 6 6 6
59591 - 0 0 0 0 0 0 0 0 0 0 0 0
59592 - 0 0 0 0 0 0 0 0 0 0 0 0
59593 - 0 0 0 0 0 0 0 0 0 0 0 0
59594 - 0 0 0 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 1 0 0 0
59598 - 0 0 1 0 0 1 0 0 1 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 0 0 0 0 0 0 0 14 14 14
59604 - 42 42 42 86 86 86 6 6 6 116 116 116
59605 -106 106 106 6 6 6 70 70 70 149 149 149
59606 -128 128 128 18 18 18 38 38 38 54 54 54
59607 -221 221 221 106 106 106 2 2 6 14 14 14
59608 - 46 46 46 190 190 190 198 198 198 2 2 6
59609 - 2 2 6 2 2 6 2 2 6 2 2 6
59610 - 74 74 74 62 62 62 22 22 22 6 6 6
59611 - 0 0 0 0 0 0 0 0 0 0 0 0
59612 - 0 0 0 0 0 0 0 0 0 0 0 0
59613 - 0 0 0 0 0 0 0 0 0 0 0 0
59614 - 0 0 0 0 0 0 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 1 0 0 0
59618 - 0 0 1 0 0 0 0 0 1 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 0 0 0 0 0 0 0 14 14 14
59624 - 42 42 42 94 94 94 14 14 14 101 101 101
59625 -128 128 128 2 2 6 18 18 18 116 116 116
59626 -118 98 46 121 92 8 121 92 8 98 78 10
59627 -162 162 162 106 106 106 2 2 6 2 2 6
59628 - 2 2 6 195 195 195 195 195 195 6 6 6
59629 - 2 2 6 2 2 6 2 2 6 2 2 6
59630 - 74 74 74 62 62 62 22 22 22 6 6 6
59631 - 0 0 0 0 0 0 0 0 0 0 0 0
59632 - 0 0 0 0 0 0 0 0 0 0 0 0
59633 - 0 0 0 0 0 0 0 0 0 0 0 0
59634 - 0 0 0 0 0 0 0 0 0 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 1 0 0 1
59638 - 0 0 1 0 0 0 0 0 1 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 10 10 10
59644 - 38 38 38 90 90 90 14 14 14 58 58 58
59645 -210 210 210 26 26 26 54 38 6 154 114 10
59646 -226 170 11 236 186 11 225 175 15 184 144 12
59647 -215 174 15 175 146 61 37 26 9 2 2 6
59648 - 70 70 70 246 246 246 138 138 138 2 2 6
59649 - 2 2 6 2 2 6 2 2 6 2 2 6
59650 - 70 70 70 66 66 66 26 26 26 6 6 6
59651 - 0 0 0 0 0 0 0 0 0 0 0 0
59652 - 0 0 0 0 0 0 0 0 0 0 0 0
59653 - 0 0 0 0 0 0 0 0 0 0 0 0
59654 - 0 0 0 0 0 0 0 0 0 0 0 0
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 0 0 0 0 0 0 0 10 10 10
59664 - 38 38 38 86 86 86 14 14 14 10 10 10
59665 -195 195 195 188 164 115 192 133 9 225 175 15
59666 -239 182 13 234 190 10 232 195 16 232 200 30
59667 -245 207 45 241 208 19 232 195 16 184 144 12
59668 -218 194 134 211 206 186 42 42 42 2 2 6
59669 - 2 2 6 2 2 6 2 2 6 2 2 6
59670 - 50 50 50 74 74 74 30 30 30 6 6 6
59671 - 0 0 0 0 0 0 0 0 0 0 0 0
59672 - 0 0 0 0 0 0 0 0 0 0 0 0
59673 - 0 0 0 0 0 0 0 0 0 0 0 0
59674 - 0 0 0 0 0 0 0 0 0 0 0 0
59675 - 0 0 0 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 0 0 0 0 0 0 0 10 10 10
59684 - 34 34 34 86 86 86 14 14 14 2 2 6
59685 -121 87 25 192 133 9 219 162 10 239 182 13
59686 -236 186 11 232 195 16 241 208 19 244 214 54
59687 -246 218 60 246 218 38 246 215 20 241 208 19
59688 -241 208 19 226 184 13 121 87 25 2 2 6
59689 - 2 2 6 2 2 6 2 2 6 2 2 6
59690 - 50 50 50 82 82 82 34 34 34 10 10 10
59691 - 0 0 0 0 0 0 0 0 0 0 0 0
59692 - 0 0 0 0 0 0 0 0 0 0 0 0
59693 - 0 0 0 0 0 0 0 0 0 0 0 0
59694 - 0 0 0 0 0 0 0 0 0 0 0 0
59695 - 0 0 0 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 0 0 0 0 0 0 0 10 10 10
59704 - 34 34 34 82 82 82 30 30 30 61 42 6
59705 -180 123 7 206 145 10 230 174 11 239 182 13
59706 -234 190 10 238 202 15 241 208 19 246 218 74
59707 -246 218 38 246 215 20 246 215 20 246 215 20
59708 -226 184 13 215 174 15 184 144 12 6 6 6
59709 - 2 2 6 2 2 6 2 2 6 2 2 6
59710 - 26 26 26 94 94 94 42 42 42 14 14 14
59711 - 0 0 0 0 0 0 0 0 0 0 0 0
59712 - 0 0 0 0 0 0 0 0 0 0 0 0
59713 - 0 0 0 0 0 0 0 0 0 0 0 0
59714 - 0 0 0 0 0 0 0 0 0 0 0 0
59715 - 0 0 0 0 0 0 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 10 10 10
59724 - 30 30 30 78 78 78 50 50 50 104 69 6
59725 -192 133 9 216 158 10 236 178 12 236 186 11
59726 -232 195 16 241 208 19 244 214 54 245 215 43
59727 -246 215 20 246 215 20 241 208 19 198 155 10
59728 -200 144 11 216 158 10 156 118 10 2 2 6
59729 - 2 2 6 2 2 6 2 2 6 2 2 6
59730 - 6 6 6 90 90 90 54 54 54 18 18 18
59731 - 6 6 6 0 0 0 0 0 0 0 0 0
59732 - 0 0 0 0 0 0 0 0 0 0 0 0
59733 - 0 0 0 0 0 0 0 0 0 0 0 0
59734 - 0 0 0 0 0 0 0 0 0 0 0 0
59735 - 0 0 0 0 0 0 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 0 0 0 0 10 10 10
59744 - 30 30 30 78 78 78 46 46 46 22 22 22
59745 -137 92 6 210 162 10 239 182 13 238 190 10
59746 -238 202 15 241 208 19 246 215 20 246 215 20
59747 -241 208 19 203 166 17 185 133 11 210 150 10
59748 -216 158 10 210 150 10 102 78 10 2 2 6
59749 - 6 6 6 54 54 54 14 14 14 2 2 6
59750 - 2 2 6 62 62 62 74 74 74 30 30 30
59751 - 10 10 10 0 0 0 0 0 0 0 0 0
59752 - 0 0 0 0 0 0 0 0 0 0 0 0
59753 - 0 0 0 0 0 0 0 0 0 0 0 0
59754 - 0 0 0 0 0 0 0 0 0 0 0 0
59755 - 0 0 0 0 0 0 0 0 0 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 0 0 0 0 0 0 0 10 10 10
59764 - 34 34 34 78 78 78 50 50 50 6 6 6
59765 - 94 70 30 139 102 15 190 146 13 226 184 13
59766 -232 200 30 232 195 16 215 174 15 190 146 13
59767 -168 122 10 192 133 9 210 150 10 213 154 11
59768 -202 150 34 182 157 106 101 98 89 2 2 6
59769 - 2 2 6 78 78 78 116 116 116 58 58 58
59770 - 2 2 6 22 22 22 90 90 90 46 46 46
59771 - 18 18 18 6 6 6 0 0 0 0 0 0
59772 - 0 0 0 0 0 0 0 0 0 0 0 0
59773 - 0 0 0 0 0 0 0 0 0 0 0 0
59774 - 0 0 0 0 0 0 0 0 0 0 0 0
59775 - 0 0 0 0 0 0 0 0 0 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 0 0 0 0 10 10 10
59784 - 38 38 38 86 86 86 50 50 50 6 6 6
59785 -128 128 128 174 154 114 156 107 11 168 122 10
59786 -198 155 10 184 144 12 197 138 11 200 144 11
59787 -206 145 10 206 145 10 197 138 11 188 164 115
59788 -195 195 195 198 198 198 174 174 174 14 14 14
59789 - 2 2 6 22 22 22 116 116 116 116 116 116
59790 - 22 22 22 2 2 6 74 74 74 70 70 70
59791 - 30 30 30 10 10 10 0 0 0 0 0 0
59792 - 0 0 0 0 0 0 0 0 0 0 0 0
59793 - 0 0 0 0 0 0 0 0 0 0 0 0
59794 - 0 0 0 0 0 0 0 0 0 0 0 0
59795 - 0 0 0 0 0 0 0 0 0 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 0 0 0 0 6 6 6 18 18 18
59804 - 50 50 50 101 101 101 26 26 26 10 10 10
59805 -138 138 138 190 190 190 174 154 114 156 107 11
59806 -197 138 11 200 144 11 197 138 11 192 133 9
59807 -180 123 7 190 142 34 190 178 144 187 187 187
59808 -202 202 202 221 221 221 214 214 214 66 66 66
59809 - 2 2 6 2 2 6 50 50 50 62 62 62
59810 - 6 6 6 2 2 6 10 10 10 90 90 90
59811 - 50 50 50 18 18 18 6 6 6 0 0 0
59812 - 0 0 0 0 0 0 0 0 0 0 0 0
59813 - 0 0 0 0 0 0 0 0 0 0 0 0
59814 - 0 0 0 0 0 0 0 0 0 0 0 0
59815 - 0 0 0 0 0 0 0 0 0 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 0 0 0 0 10 10 10 34 34 34
59824 - 74 74 74 74 74 74 2 2 6 6 6 6
59825 -144 144 144 198 198 198 190 190 190 178 166 146
59826 -154 121 60 156 107 11 156 107 11 168 124 44
59827 -174 154 114 187 187 187 190 190 190 210 210 210
59828 -246 246 246 253 253 253 253 253 253 182 182 182
59829 - 6 6 6 2 2 6 2 2 6 2 2 6
59830 - 2 2 6 2 2 6 2 2 6 62 62 62
59831 - 74 74 74 34 34 34 14 14 14 0 0 0
59832 - 0 0 0 0 0 0 0 0 0 0 0 0
59833 - 0 0 0 0 0 0 0 0 0 0 0 0
59834 - 0 0 0 0 0 0 0 0 0 0 0 0
59835 - 0 0 0 0 0 0 0 0 0 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 10 10 10 22 22 22 54 54 54
59844 - 94 94 94 18 18 18 2 2 6 46 46 46
59845 -234 234 234 221 221 221 190 190 190 190 190 190
59846 -190 190 190 187 187 187 187 187 187 190 190 190
59847 -190 190 190 195 195 195 214 214 214 242 242 242
59848 -253 253 253 253 253 253 253 253 253 253 253 253
59849 - 82 82 82 2 2 6 2 2 6 2 2 6
59850 - 2 2 6 2 2 6 2 2 6 14 14 14
59851 - 86 86 86 54 54 54 22 22 22 6 6 6
59852 - 0 0 0 0 0 0 0 0 0 0 0 0
59853 - 0 0 0 0 0 0 0 0 0 0 0 0
59854 - 0 0 0 0 0 0 0 0 0 0 0 0
59855 - 0 0 0 0 0 0 0 0 0 0 0 0
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 0 0 0 0
59863 - 6 6 6 18 18 18 46 46 46 90 90 90
59864 - 46 46 46 18 18 18 6 6 6 182 182 182
59865 -253 253 253 246 246 246 206 206 206 190 190 190
59866 -190 190 190 190 190 190 190 190 190 190 190 190
59867 -206 206 206 231 231 231 250 250 250 253 253 253
59868 -253 253 253 253 253 253 253 253 253 253 253 253
59869 -202 202 202 14 14 14 2 2 6 2 2 6
59870 - 2 2 6 2 2 6 2 2 6 2 2 6
59871 - 42 42 42 86 86 86 42 42 42 18 18 18
59872 - 6 6 6 0 0 0 0 0 0 0 0 0
59873 - 0 0 0 0 0 0 0 0 0 0 0 0
59874 - 0 0 0 0 0 0 0 0 0 0 0 0
59875 - 0 0 0 0 0 0 0 0 0 0 0 0
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 6 6 6
59883 - 14 14 14 38 38 38 74 74 74 66 66 66
59884 - 2 2 6 6 6 6 90 90 90 250 250 250
59885 -253 253 253 253 253 253 238 238 238 198 198 198
59886 -190 190 190 190 190 190 195 195 195 221 221 221
59887 -246 246 246 253 253 253 253 253 253 253 253 253
59888 -253 253 253 253 253 253 253 253 253 253 253 253
59889 -253 253 253 82 82 82 2 2 6 2 2 6
59890 - 2 2 6 2 2 6 2 2 6 2 2 6
59891 - 2 2 6 78 78 78 70 70 70 34 34 34
59892 - 14 14 14 6 6 6 0 0 0 0 0 0
59893 - 0 0 0 0 0 0 0 0 0 0 0 0
59894 - 0 0 0 0 0 0 0 0 0 0 0 0
59895 - 0 0 0 0 0 0 0 0 0 0 0 0
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 0 14 14 14
59903 - 34 34 34 66 66 66 78 78 78 6 6 6
59904 - 2 2 6 18 18 18 218 218 218 253 253 253
59905 -253 253 253 253 253 253 253 253 253 246 246 246
59906 -226 226 226 231 231 231 246 246 246 253 253 253
59907 -253 253 253 253 253 253 253 253 253 253 253 253
59908 -253 253 253 253 253 253 253 253 253 253 253 253
59909 -253 253 253 178 178 178 2 2 6 2 2 6
59910 - 2 2 6 2 2 6 2 2 6 2 2 6
59911 - 2 2 6 18 18 18 90 90 90 62 62 62
59912 - 30 30 30 10 10 10 0 0 0 0 0 0
59913 - 0 0 0 0 0 0 0 0 0 0 0 0
59914 - 0 0 0 0 0 0 0 0 0 0 0 0
59915 - 0 0 0 0 0 0 0 0 0 0 0 0
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 10 10 10 26 26 26
59923 - 58 58 58 90 90 90 18 18 18 2 2 6
59924 - 2 2 6 110 110 110 253 253 253 253 253 253
59925 -253 253 253 253 253 253 253 253 253 253 253 253
59926 -250 250 250 253 253 253 253 253 253 253 253 253
59927 -253 253 253 253 253 253 253 253 253 253 253 253
59928 -253 253 253 253 253 253 253 253 253 253 253 253
59929 -253 253 253 231 231 231 18 18 18 2 2 6
59930 - 2 2 6 2 2 6 2 2 6 2 2 6
59931 - 2 2 6 2 2 6 18 18 18 94 94 94
59932 - 54 54 54 26 26 26 10 10 10 0 0 0
59933 - 0 0 0 0 0 0 0 0 0 0 0 0
59934 - 0 0 0 0 0 0 0 0 0 0 0 0
59935 - 0 0 0 0 0 0 0 0 0 0 0 0
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 6 6 6 22 22 22 50 50 50
59943 - 90 90 90 26 26 26 2 2 6 2 2 6
59944 - 14 14 14 195 195 195 250 250 250 253 253 253
59945 -253 253 253 253 253 253 253 253 253 253 253 253
59946 -253 253 253 253 253 253 253 253 253 253 253 253
59947 -253 253 253 253 253 253 253 253 253 253 253 253
59948 -253 253 253 253 253 253 253 253 253 253 253 253
59949 -250 250 250 242 242 242 54 54 54 2 2 6
59950 - 2 2 6 2 2 6 2 2 6 2 2 6
59951 - 2 2 6 2 2 6 2 2 6 38 38 38
59952 - 86 86 86 50 50 50 22 22 22 6 6 6
59953 - 0 0 0 0 0 0 0 0 0 0 0 0
59954 - 0 0 0 0 0 0 0 0 0 0 0 0
59955 - 0 0 0 0 0 0 0 0 0 0 0 0
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 - 6 6 6 14 14 14 38 38 38 82 82 82
59963 - 34 34 34 2 2 6 2 2 6 2 2 6
59964 - 42 42 42 195 195 195 246 246 246 253 253 253
59965 -253 253 253 253 253 253 253 253 253 250 250 250
59966 -242 242 242 242 242 242 250 250 250 253 253 253
59967 -253 253 253 253 253 253 253 253 253 253 253 253
59968 -253 253 253 250 250 250 246 246 246 238 238 238
59969 -226 226 226 231 231 231 101 101 101 6 6 6
59970 - 2 2 6 2 2 6 2 2 6 2 2 6
59971 - 2 2 6 2 2 6 2 2 6 2 2 6
59972 - 38 38 38 82 82 82 42 42 42 14 14 14
59973 - 6 6 6 0 0 0 0 0 0 0 0 0
59974 - 0 0 0 0 0 0 0 0 0 0 0 0
59975 - 0 0 0 0 0 0 0 0 0 0 0 0
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 - 10 10 10 26 26 26 62 62 62 66 66 66
59983 - 2 2 6 2 2 6 2 2 6 6 6 6
59984 - 70 70 70 170 170 170 206 206 206 234 234 234
59985 -246 246 246 250 250 250 250 250 250 238 238 238
59986 -226 226 226 231 231 231 238 238 238 250 250 250
59987 -250 250 250 250 250 250 246 246 246 231 231 231
59988 -214 214 214 206 206 206 202 202 202 202 202 202
59989 -198 198 198 202 202 202 182 182 182 18 18 18
59990 - 2 2 6 2 2 6 2 2 6 2 2 6
59991 - 2 2 6 2 2 6 2 2 6 2 2 6
59992 - 2 2 6 62 62 62 66 66 66 30 30 30
59993 - 10 10 10 0 0 0 0 0 0 0 0 0
59994 - 0 0 0 0 0 0 0 0 0 0 0 0
59995 - 0 0 0 0 0 0 0 0 0 0 0 0
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 - 14 14 14 42 42 42 82 82 82 18 18 18
60003 - 2 2 6 2 2 6 2 2 6 10 10 10
60004 - 94 94 94 182 182 182 218 218 218 242 242 242
60005 -250 250 250 253 253 253 253 253 253 250 250 250
60006 -234 234 234 253 253 253 253 253 253 253 253 253
60007 -253 253 253 253 253 253 253 253 253 246 246 246
60008 -238 238 238 226 226 226 210 210 210 202 202 202
60009 -195 195 195 195 195 195 210 210 210 158 158 158
60010 - 6 6 6 14 14 14 50 50 50 14 14 14
60011 - 2 2 6 2 2 6 2 2 6 2 2 6
60012 - 2 2 6 6 6 6 86 86 86 46 46 46
60013 - 18 18 18 6 6 6 0 0 0 0 0 0
60014 - 0 0 0 0 0 0 0 0 0 0 0 0
60015 - 0 0 0 0 0 0 0 0 0 0 0 0
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 6 6 6
60022 - 22 22 22 54 54 54 70 70 70 2 2 6
60023 - 2 2 6 10 10 10 2 2 6 22 22 22
60024 -166 166 166 231 231 231 250 250 250 253 253 253
60025 -253 253 253 253 253 253 253 253 253 250 250 250
60026 -242 242 242 253 253 253 253 253 253 253 253 253
60027 -253 253 253 253 253 253 253 253 253 253 253 253
60028 -253 253 253 253 253 253 253 253 253 246 246 246
60029 -231 231 231 206 206 206 198 198 198 226 226 226
60030 - 94 94 94 2 2 6 6 6 6 38 38 38
60031 - 30 30 30 2 2 6 2 2 6 2 2 6
60032 - 2 2 6 2 2 6 62 62 62 66 66 66
60033 - 26 26 26 10 10 10 0 0 0 0 0 0
60034 - 0 0 0 0 0 0 0 0 0 0 0 0
60035 - 0 0 0 0 0 0 0 0 0 0 0 0
60036 - 0 0 0 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 10 10 10
60042 - 30 30 30 74 74 74 50 50 50 2 2 6
60043 - 26 26 26 26 26 26 2 2 6 106 106 106
60044 -238 238 238 253 253 253 253 253 253 253 253 253
60045 -253 253 253 253 253 253 253 253 253 253 253 253
60046 -253 253 253 253 253 253 253 253 253 253 253 253
60047 -253 253 253 253 253 253 253 253 253 253 253 253
60048 -253 253 253 253 253 253 253 253 253 253 253 253
60049 -253 253 253 246 246 246 218 218 218 202 202 202
60050 -210 210 210 14 14 14 2 2 6 2 2 6
60051 - 30 30 30 22 22 22 2 2 6 2 2 6
60052 - 2 2 6 2 2 6 18 18 18 86 86 86
60053 - 42 42 42 14 14 14 0 0 0 0 0 0
60054 - 0 0 0 0 0 0 0 0 0 0 0 0
60055 - 0 0 0 0 0 0 0 0 0 0 0 0
60056 - 0 0 0 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 14 14 14
60062 - 42 42 42 90 90 90 22 22 22 2 2 6
60063 - 42 42 42 2 2 6 18 18 18 218 218 218
60064 -253 253 253 253 253 253 253 253 253 253 253 253
60065 -253 253 253 253 253 253 253 253 253 253 253 253
60066 -253 253 253 253 253 253 253 253 253 253 253 253
60067 -253 253 253 253 253 253 253 253 253 253 253 253
60068 -253 253 253 253 253 253 253 253 253 253 253 253
60069 -253 253 253 253 253 253 250 250 250 221 221 221
60070 -218 218 218 101 101 101 2 2 6 14 14 14
60071 - 18 18 18 38 38 38 10 10 10 2 2 6
60072 - 2 2 6 2 2 6 2 2 6 78 78 78
60073 - 58 58 58 22 22 22 6 6 6 0 0 0
60074 - 0 0 0 0 0 0 0 0 0 0 0 0
60075 - 0 0 0 0 0 0 0 0 0 0 0 0
60076 - 0 0 0 0 0 0 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 6 6 6 18 18 18
60082 - 54 54 54 82 82 82 2 2 6 26 26 26
60083 - 22 22 22 2 2 6 123 123 123 253 253 253
60084 -253 253 253 253 253 253 253 253 253 253 253 253
60085 -253 253 253 253 253 253 253 253 253 253 253 253
60086 -253 253 253 253 253 253 253 253 253 253 253 253
60087 -253 253 253 253 253 253 253 253 253 253 253 253
60088 -253 253 253 253 253 253 253 253 253 253 253 253
60089 -253 253 253 253 253 253 253 253 253 250 250 250
60090 -238 238 238 198 198 198 6 6 6 38 38 38
60091 - 58 58 58 26 26 26 38 38 38 2 2 6
60092 - 2 2 6 2 2 6 2 2 6 46 46 46
60093 - 78 78 78 30 30 30 10 10 10 0 0 0
60094 - 0 0 0 0 0 0 0 0 0 0 0 0
60095 - 0 0 0 0 0 0 0 0 0 0 0 0
60096 - 0 0 0 0 0 0 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 10 10 10 30 30 30
60102 - 74 74 74 58 58 58 2 2 6 42 42 42
60103 - 2 2 6 22 22 22 231 231 231 253 253 253
60104 -253 253 253 253 253 253 253 253 253 253 253 253
60105 -253 253 253 253 253 253 253 253 253 250 250 250
60106 -253 253 253 253 253 253 253 253 253 253 253 253
60107 -253 253 253 253 253 253 253 253 253 253 253 253
60108 -253 253 253 253 253 253 253 253 253 253 253 253
60109 -253 253 253 253 253 253 253 253 253 253 253 253
60110 -253 253 253 246 246 246 46 46 46 38 38 38
60111 - 42 42 42 14 14 14 38 38 38 14 14 14
60112 - 2 2 6 2 2 6 2 2 6 6 6 6
60113 - 86 86 86 46 46 46 14 14 14 0 0 0
60114 - 0 0 0 0 0 0 0 0 0 0 0 0
60115 - 0 0 0 0 0 0 0 0 0 0 0 0
60116 - 0 0 0 0 0 0 0 0 0 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 6 6 6 14 14 14 42 42 42
60122 - 90 90 90 18 18 18 18 18 18 26 26 26
60123 - 2 2 6 116 116 116 253 253 253 253 253 253
60124 -253 253 253 253 253 253 253 253 253 253 253 253
60125 -253 253 253 253 253 253 250 250 250 238 238 238
60126 -253 253 253 253 253 253 253 253 253 253 253 253
60127 -253 253 253 253 253 253 253 253 253 253 253 253
60128 -253 253 253 253 253 253 253 253 253 253 253 253
60129 -253 253 253 253 253 253 253 253 253 253 253 253
60130 -253 253 253 253 253 253 94 94 94 6 6 6
60131 - 2 2 6 2 2 6 10 10 10 34 34 34
60132 - 2 2 6 2 2 6 2 2 6 2 2 6
60133 - 74 74 74 58 58 58 22 22 22 6 6 6
60134 - 0 0 0 0 0 0 0 0 0 0 0 0
60135 - 0 0 0 0 0 0 0 0 0 0 0 0
60136 - 0 0 0 0 0 0 0 0 0 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 10 10 10 26 26 26 66 66 66
60142 - 82 82 82 2 2 6 38 38 38 6 6 6
60143 - 14 14 14 210 210 210 253 253 253 253 253 253
60144 -253 253 253 253 253 253 253 253 253 253 253 253
60145 -253 253 253 253 253 253 246 246 246 242 242 242
60146 -253 253 253 253 253 253 253 253 253 253 253 253
60147 -253 253 253 253 253 253 253 253 253 253 253 253
60148 -253 253 253 253 253 253 253 253 253 253 253 253
60149 -253 253 253 253 253 253 253 253 253 253 253 253
60150 -253 253 253 253 253 253 144 144 144 2 2 6
60151 - 2 2 6 2 2 6 2 2 6 46 46 46
60152 - 2 2 6 2 2 6 2 2 6 2 2 6
60153 - 42 42 42 74 74 74 30 30 30 10 10 10
60154 - 0 0 0 0 0 0 0 0 0 0 0 0
60155 - 0 0 0 0 0 0 0 0 0 0 0 0
60156 - 0 0 0 0 0 0 0 0 0 0 0 0
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 - 6 6 6 14 14 14 42 42 42 90 90 90
60162 - 26 26 26 6 6 6 42 42 42 2 2 6
60163 - 74 74 74 250 250 250 253 253 253 253 253 253
60164 -253 253 253 253 253 253 253 253 253 253 253 253
60165 -253 253 253 253 253 253 242 242 242 242 242 242
60166 -253 253 253 253 253 253 253 253 253 253 253 253
60167 -253 253 253 253 253 253 253 253 253 253 253 253
60168 -253 253 253 253 253 253 253 253 253 253 253 253
60169 -253 253 253 253 253 253 253 253 253 253 253 253
60170 -253 253 253 253 253 253 182 182 182 2 2 6
60171 - 2 2 6 2 2 6 2 2 6 46 46 46
60172 - 2 2 6 2 2 6 2 2 6 2 2 6
60173 - 10 10 10 86 86 86 38 38 38 10 10 10
60174 - 0 0 0 0 0 0 0 0 0 0 0 0
60175 - 0 0 0 0 0 0 0 0 0 0 0 0
60176 - 0 0 0 0 0 0 0 0 0 0 0 0
60177 - 0 0 0 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 - 10 10 10 26 26 26 66 66 66 82 82 82
60182 - 2 2 6 22 22 22 18 18 18 2 2 6
60183 -149 149 149 253 253 253 253 253 253 253 253 253
60184 -253 253 253 253 253 253 253 253 253 253 253 253
60185 -253 253 253 253 253 253 234 234 234 242 242 242
60186 -253 253 253 253 253 253 253 253 253 253 253 253
60187 -253 253 253 253 253 253 253 253 253 253 253 253
60188 -253 253 253 253 253 253 253 253 253 253 253 253
60189 -253 253 253 253 253 253 253 253 253 253 253 253
60190 -253 253 253 253 253 253 206 206 206 2 2 6
60191 - 2 2 6 2 2 6 2 2 6 38 38 38
60192 - 2 2 6 2 2 6 2 2 6 2 2 6
60193 - 6 6 6 86 86 86 46 46 46 14 14 14
60194 - 0 0 0 0 0 0 0 0 0 0 0 0
60195 - 0 0 0 0 0 0 0 0 0 0 0 0
60196 - 0 0 0 0 0 0 0 0 0 0 0 0
60197 - 0 0 0 0 0 0 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 6 6 6
60201 - 18 18 18 46 46 46 86 86 86 18 18 18
60202 - 2 2 6 34 34 34 10 10 10 6 6 6
60203 -210 210 210 253 253 253 253 253 253 253 253 253
60204 -253 253 253 253 253 253 253 253 253 253 253 253
60205 -253 253 253 253 253 253 234 234 234 242 242 242
60206 -253 253 253 253 253 253 253 253 253 253 253 253
60207 -253 253 253 253 253 253 253 253 253 253 253 253
60208 -253 253 253 253 253 253 253 253 253 253 253 253
60209 -253 253 253 253 253 253 253 253 253 253 253 253
60210 -253 253 253 253 253 253 221 221 221 6 6 6
60211 - 2 2 6 2 2 6 6 6 6 30 30 30
60212 - 2 2 6 2 2 6 2 2 6 2 2 6
60213 - 2 2 6 82 82 82 54 54 54 18 18 18
60214 - 6 6 6 0 0 0 0 0 0 0 0 0
60215 - 0 0 0 0 0 0 0 0 0 0 0 0
60216 - 0 0 0 0 0 0 0 0 0 0 0 0
60217 - 0 0 0 0 0 0 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 10 10 10
60221 - 26 26 26 66 66 66 62 62 62 2 2 6
60222 - 2 2 6 38 38 38 10 10 10 26 26 26
60223 -238 238 238 253 253 253 253 253 253 253 253 253
60224 -253 253 253 253 253 253 253 253 253 253 253 253
60225 -253 253 253 253 253 253 231 231 231 238 238 238
60226 -253 253 253 253 253 253 253 253 253 253 253 253
60227 -253 253 253 253 253 253 253 253 253 253 253 253
60228 -253 253 253 253 253 253 253 253 253 253 253 253
60229 -253 253 253 253 253 253 253 253 253 253 253 253
60230 -253 253 253 253 253 253 231 231 231 6 6 6
60231 - 2 2 6 2 2 6 10 10 10 30 30 30
60232 - 2 2 6 2 2 6 2 2 6 2 2 6
60233 - 2 2 6 66 66 66 58 58 58 22 22 22
60234 - 6 6 6 0 0 0 0 0 0 0 0 0
60235 - 0 0 0 0 0 0 0 0 0 0 0 0
60236 - 0 0 0 0 0 0 0 0 0 0 0 0
60237 - 0 0 0 0 0 0 0 0 0 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 10 10 10
60241 - 38 38 38 78 78 78 6 6 6 2 2 6
60242 - 2 2 6 46 46 46 14 14 14 42 42 42
60243 -246 246 246 253 253 253 253 253 253 253 253 253
60244 -253 253 253 253 253 253 253 253 253 253 253 253
60245 -253 253 253 253 253 253 231 231 231 242 242 242
60246 -253 253 253 253 253 253 253 253 253 253 253 253
60247 -253 253 253 253 253 253 253 253 253 253 253 253
60248 -253 253 253 253 253 253 253 253 253 253 253 253
60249 -253 253 253 253 253 253 253 253 253 253 253 253
60250 -253 253 253 253 253 253 234 234 234 10 10 10
60251 - 2 2 6 2 2 6 22 22 22 14 14 14
60252 - 2 2 6 2 2 6 2 2 6 2 2 6
60253 - 2 2 6 66 66 66 62 62 62 22 22 22
60254 - 6 6 6 0 0 0 0 0 0 0 0 0
60255 - 0 0 0 0 0 0 0 0 0 0 0 0
60256 - 0 0 0 0 0 0 0 0 0 0 0 0
60257 - 0 0 0 0 0 0 0 0 0 0 0 0
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 6 6 6 18 18 18
60261 - 50 50 50 74 74 74 2 2 6 2 2 6
60262 - 14 14 14 70 70 70 34 34 34 62 62 62
60263 -250 250 250 253 253 253 253 253 253 253 253 253
60264 -253 253 253 253 253 253 253 253 253 253 253 253
60265 -253 253 253 253 253 253 231 231 231 246 246 246
60266 -253 253 253 253 253 253 253 253 253 253 253 253
60267 -253 253 253 253 253 253 253 253 253 253 253 253
60268 -253 253 253 253 253 253 253 253 253 253 253 253
60269 -253 253 253 253 253 253 253 253 253 253 253 253
60270 -253 253 253 253 253 253 234 234 234 14 14 14
60271 - 2 2 6 2 2 6 30 30 30 2 2 6
60272 - 2 2 6 2 2 6 2 2 6 2 2 6
60273 - 2 2 6 66 66 66 62 62 62 22 22 22
60274 - 6 6 6 0 0 0 0 0 0 0 0 0
60275 - 0 0 0 0 0 0 0 0 0 0 0 0
60276 - 0 0 0 0 0 0 0 0 0 0 0 0
60277 - 0 0 0 0 0 0 0 0 0 0 0 0
60278 - 0 0 0 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 6 6 6 18 18 18
60281 - 54 54 54 62 62 62 2 2 6 2 2 6
60282 - 2 2 6 30 30 30 46 46 46 70 70 70
60283 -250 250 250 253 253 253 253 253 253 253 253 253
60284 -253 253 253 253 253 253 253 253 253 253 253 253
60285 -253 253 253 253 253 253 231 231 231 246 246 246
60286 -253 253 253 253 253 253 253 253 253 253 253 253
60287 -253 253 253 253 253 253 253 253 253 253 253 253
60288 -253 253 253 253 253 253 253 253 253 253 253 253
60289 -253 253 253 253 253 253 253 253 253 253 253 253
60290 -253 253 253 253 253 253 226 226 226 10 10 10
60291 - 2 2 6 6 6 6 30 30 30 2 2 6
60292 - 2 2 6 2 2 6 2 2 6 2 2 6
60293 - 2 2 6 66 66 66 58 58 58 22 22 22
60294 - 6 6 6 0 0 0 0 0 0 0 0 0
60295 - 0 0 0 0 0 0 0 0 0 0 0 0
60296 - 0 0 0 0 0 0 0 0 0 0 0 0
60297 - 0 0 0 0 0 0 0 0 0 0 0 0
60298 - 0 0 0 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 6 6 6 22 22 22
60301 - 58 58 58 62 62 62 2 2 6 2 2 6
60302 - 2 2 6 2 2 6 30 30 30 78 78 78
60303 -250 250 250 253 253 253 253 253 253 253 253 253
60304 -253 253 253 253 253 253 253 253 253 253 253 253
60305 -253 253 253 253 253 253 231 231 231 246 246 246
60306 -253 253 253 253 253 253 253 253 253 253 253 253
60307 -253 253 253 253 253 253 253 253 253 253 253 253
60308 -253 253 253 253 253 253 253 253 253 253 253 253
60309 -253 253 253 253 253 253 253 253 253 253 253 253
60310 -253 253 253 253 253 253 206 206 206 2 2 6
60311 - 22 22 22 34 34 34 18 14 6 22 22 22
60312 - 26 26 26 18 18 18 6 6 6 2 2 6
60313 - 2 2 6 82 82 82 54 54 54 18 18 18
60314 - 6 6 6 0 0 0 0 0 0 0 0 0
60315 - 0 0 0 0 0 0 0 0 0 0 0 0
60316 - 0 0 0 0 0 0 0 0 0 0 0 0
60317 - 0 0 0 0 0 0 0 0 0 0 0 0
60318 - 0 0 0 0 0 0 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 6 6 6 26 26 26
60321 - 62 62 62 106 106 106 74 54 14 185 133 11
60322 -210 162 10 121 92 8 6 6 6 62 62 62
60323 -238 238 238 253 253 253 253 253 253 253 253 253
60324 -253 253 253 253 253 253 253 253 253 253 253 253
60325 -253 253 253 253 253 253 231 231 231 246 246 246
60326 -253 253 253 253 253 253 253 253 253 253 253 253
60327 -253 253 253 253 253 253 253 253 253 253 253 253
60328 -253 253 253 253 253 253 253 253 253 253 253 253
60329 -253 253 253 253 253 253 253 253 253 253 253 253
60330 -253 253 253 253 253 253 158 158 158 18 18 18
60331 - 14 14 14 2 2 6 2 2 6 2 2 6
60332 - 6 6 6 18 18 18 66 66 66 38 38 38
60333 - 6 6 6 94 94 94 50 50 50 18 18 18
60334 - 6 6 6 0 0 0 0 0 0 0 0 0
60335 - 0 0 0 0 0 0 0 0 0 0 0 0
60336 - 0 0 0 0 0 0 0 0 0 0 0 0
60337 - 0 0 0 0 0 0 0 0 0 0 0 0
60338 - 0 0 0 0 0 0 0 0 0 0 0 0
60339 - 0 0 0 0 0 0 0 0 0 6 6 6
60340 - 10 10 10 10 10 10 18 18 18 38 38 38
60341 - 78 78 78 142 134 106 216 158 10 242 186 14
60342 -246 190 14 246 190 14 156 118 10 10 10 10
60343 - 90 90 90 238 238 238 253 253 253 253 253 253
60344 -253 253 253 253 253 253 253 253 253 253 253 253
60345 -253 253 253 253 253 253 231 231 231 250 250 250
60346 -253 253 253 253 253 253 253 253 253 253 253 253
60347 -253 253 253 253 253 253 253 253 253 253 253 253
60348 -253 253 253 253 253 253 253 253 253 253 253 253
60349 -253 253 253 253 253 253 253 253 253 246 230 190
60350 -238 204 91 238 204 91 181 142 44 37 26 9
60351 - 2 2 6 2 2 6 2 2 6 2 2 6
60352 - 2 2 6 2 2 6 38 38 38 46 46 46
60353 - 26 26 26 106 106 106 54 54 54 18 18 18
60354 - 6 6 6 0 0 0 0 0 0 0 0 0
60355 - 0 0 0 0 0 0 0 0 0 0 0 0
60356 - 0 0 0 0 0 0 0 0 0 0 0 0
60357 - 0 0 0 0 0 0 0 0 0 0 0 0
60358 - 0 0 0 0 0 0 0 0 0 0 0 0
60359 - 0 0 0 6 6 6 14 14 14 22 22 22
60360 - 30 30 30 38 38 38 50 50 50 70 70 70
60361 -106 106 106 190 142 34 226 170 11 242 186 14
60362 -246 190 14 246 190 14 246 190 14 154 114 10
60363 - 6 6 6 74 74 74 226 226 226 253 253 253
60364 -253 253 253 253 253 253 253 253 253 253 253 253
60365 -253 253 253 253 253 253 231 231 231 250 250 250
60366 -253 253 253 253 253 253 253 253 253 253 253 253
60367 -253 253 253 253 253 253 253 253 253 253 253 253
60368 -253 253 253 253 253 253 253 253 253 253 253 253
60369 -253 253 253 253 253 253 253 253 253 228 184 62
60370 -241 196 14 241 208 19 232 195 16 38 30 10
60371 - 2 2 6 2 2 6 2 2 6 2 2 6
60372 - 2 2 6 6 6 6 30 30 30 26 26 26
60373 -203 166 17 154 142 90 66 66 66 26 26 26
60374 - 6 6 6 0 0 0 0 0 0 0 0 0
60375 - 0 0 0 0 0 0 0 0 0 0 0 0
60376 - 0 0 0 0 0 0 0 0 0 0 0 0
60377 - 0 0 0 0 0 0 0 0 0 0 0 0
60378 - 0 0 0 0 0 0 0 0 0 0 0 0
60379 - 6 6 6 18 18 18 38 38 38 58 58 58
60380 - 78 78 78 86 86 86 101 101 101 123 123 123
60381 -175 146 61 210 150 10 234 174 13 246 186 14
60382 -246 190 14 246 190 14 246 190 14 238 190 10
60383 -102 78 10 2 2 6 46 46 46 198 198 198
60384 -253 253 253 253 253 253 253 253 253 253 253 253
60385 -253 253 253 253 253 253 234 234 234 242 242 242
60386 -253 253 253 253 253 253 253 253 253 253 253 253
60387 -253 253 253 253 253 253 253 253 253 253 253 253
60388 -253 253 253 253 253 253 253 253 253 253 253 253
60389 -253 253 253 253 253 253 253 253 253 224 178 62
60390 -242 186 14 241 196 14 210 166 10 22 18 6
60391 - 2 2 6 2 2 6 2 2 6 2 2 6
60392 - 2 2 6 2 2 6 6 6 6 121 92 8
60393 -238 202 15 232 195 16 82 82 82 34 34 34
60394 - 10 10 10 0 0 0 0 0 0 0 0 0
60395 - 0 0 0 0 0 0 0 0 0 0 0 0
60396 - 0 0 0 0 0 0 0 0 0 0 0 0
60397 - 0 0 0 0 0 0 0 0 0 0 0 0
60398 - 0 0 0 0 0 0 0 0 0 0 0 0
60399 - 14 14 14 38 38 38 70 70 70 154 122 46
60400 -190 142 34 200 144 11 197 138 11 197 138 11
60401 -213 154 11 226 170 11 242 186 14 246 190 14
60402 -246 190 14 246 190 14 246 190 14 246 190 14
60403 -225 175 15 46 32 6 2 2 6 22 22 22
60404 -158 158 158 250 250 250 253 253 253 253 253 253
60405 -253 253 253 253 253 253 253 253 253 253 253 253
60406 -253 253 253 253 253 253 253 253 253 253 253 253
60407 -253 253 253 253 253 253 253 253 253 253 253 253
60408 -253 253 253 253 253 253 253 253 253 253 253 253
60409 -253 253 253 250 250 250 242 242 242 224 178 62
60410 -239 182 13 236 186 11 213 154 11 46 32 6
60411 - 2 2 6 2 2 6 2 2 6 2 2 6
60412 - 2 2 6 2 2 6 61 42 6 225 175 15
60413 -238 190 10 236 186 11 112 100 78 42 42 42
60414 - 14 14 14 0 0 0 0 0 0 0 0 0
60415 - 0 0 0 0 0 0 0 0 0 0 0 0
60416 - 0 0 0 0 0 0 0 0 0 0 0 0
60417 - 0 0 0 0 0 0 0 0 0 0 0 0
60418 - 0 0 0 0 0 0 0 0 0 6 6 6
60419 - 22 22 22 54 54 54 154 122 46 213 154 11
60420 -226 170 11 230 174 11 226 170 11 226 170 11
60421 -236 178 12 242 186 14 246 190 14 246 190 14
60422 -246 190 14 246 190 14 246 190 14 246 190 14
60423 -241 196 14 184 144 12 10 10 10 2 2 6
60424 - 6 6 6 116 116 116 242 242 242 253 253 253
60425 -253 253 253 253 253 253 253 253 253 253 253 253
60426 -253 253 253 253 253 253 253 253 253 253 253 253
60427 -253 253 253 253 253 253 253 253 253 253 253 253
60428 -253 253 253 253 253 253 253 253 253 253 253 253
60429 -253 253 253 231 231 231 198 198 198 214 170 54
60430 -236 178 12 236 178 12 210 150 10 137 92 6
60431 - 18 14 6 2 2 6 2 2 6 2 2 6
60432 - 6 6 6 70 47 6 200 144 11 236 178 12
60433 -239 182 13 239 182 13 124 112 88 58 58 58
60434 - 22 22 22 6 6 6 0 0 0 0 0 0
60435 - 0 0 0 0 0 0 0 0 0 0 0 0
60436 - 0 0 0 0 0 0 0 0 0 0 0 0
60437 - 0 0 0 0 0 0 0 0 0 0 0 0
60438 - 0 0 0 0 0 0 0 0 0 10 10 10
60439 - 30 30 30 70 70 70 180 133 36 226 170 11
60440 -239 182 13 242 186 14 242 186 14 246 186 14
60441 -246 190 14 246 190 14 246 190 14 246 190 14
60442 -246 190 14 246 190 14 246 190 14 246 190 14
60443 -246 190 14 232 195 16 98 70 6 2 2 6
60444 - 2 2 6 2 2 6 66 66 66 221 221 221
60445 -253 253 253 253 253 253 253 253 253 253 253 253
60446 -253 253 253 253 253 253 253 253 253 253 253 253
60447 -253 253 253 253 253 253 253 253 253 253 253 253
60448 -253 253 253 253 253 253 253 253 253 253 253 253
60449 -253 253 253 206 206 206 198 198 198 214 166 58
60450 -230 174 11 230 174 11 216 158 10 192 133 9
60451 -163 110 8 116 81 8 102 78 10 116 81 8
60452 -167 114 7 197 138 11 226 170 11 239 182 13
60453 -242 186 14 242 186 14 162 146 94 78 78 78
60454 - 34 34 34 14 14 14 6 6 6 0 0 0
60455 - 0 0 0 0 0 0 0 0 0 0 0 0
60456 - 0 0 0 0 0 0 0 0 0 0 0 0
60457 - 0 0 0 0 0 0 0 0 0 0 0 0
60458 - 0 0 0 0 0 0 0 0 0 6 6 6
60459 - 30 30 30 78 78 78 190 142 34 226 170 11
60460 -239 182 13 246 190 14 246 190 14 246 190 14
60461 -246 190 14 246 190 14 246 190 14 246 190 14
60462 -246 190 14 246 190 14 246 190 14 246 190 14
60463 -246 190 14 241 196 14 203 166 17 22 18 6
60464 - 2 2 6 2 2 6 2 2 6 38 38 38
60465 -218 218 218 253 253 253 253 253 253 253 253 253
60466 -253 253 253 253 253 253 253 253 253 253 253 253
60467 -253 253 253 253 253 253 253 253 253 253 253 253
60468 -253 253 253 253 253 253 253 253 253 253 253 253
60469 -250 250 250 206 206 206 198 198 198 202 162 69
60470 -226 170 11 236 178 12 224 166 10 210 150 10
60471 -200 144 11 197 138 11 192 133 9 197 138 11
60472 -210 150 10 226 170 11 242 186 14 246 190 14
60473 -246 190 14 246 186 14 225 175 15 124 112 88
60474 - 62 62 62 30 30 30 14 14 14 6 6 6
60475 - 0 0 0 0 0 0 0 0 0 0 0 0
60476 - 0 0 0 0 0 0 0 0 0 0 0 0
60477 - 0 0 0 0 0 0 0 0 0 0 0 0
60478 - 0 0 0 0 0 0 0 0 0 10 10 10
60479 - 30 30 30 78 78 78 174 135 50 224 166 10
60480 -239 182 13 246 190 14 246 190 14 246 190 14
60481 -246 190 14 246 190 14 246 190 14 246 190 14
60482 -246 190 14 246 190 14 246 190 14 246 190 14
60483 -246 190 14 246 190 14 241 196 14 139 102 15
60484 - 2 2 6 2 2 6 2 2 6 2 2 6
60485 - 78 78 78 250 250 250 253 253 253 253 253 253
60486 -253 253 253 253 253 253 253 253 253 253 253 253
60487 -253 253 253 253 253 253 253 253 253 253 253 253
60488 -253 253 253 253 253 253 253 253 253 253 253 253
60489 -250 250 250 214 214 214 198 198 198 190 150 46
60490 -219 162 10 236 178 12 234 174 13 224 166 10
60491 -216 158 10 213 154 11 213 154 11 216 158 10
60492 -226 170 11 239 182 13 246 190 14 246 190 14
60493 -246 190 14 246 190 14 242 186 14 206 162 42
60494 -101 101 101 58 58 58 30 30 30 14 14 14
60495 - 6 6 6 0 0 0 0 0 0 0 0 0
60496 - 0 0 0 0 0 0 0 0 0 0 0 0
60497 - 0 0 0 0 0 0 0 0 0 0 0 0
60498 - 0 0 0 0 0 0 0 0 0 10 10 10
60499 - 30 30 30 74 74 74 174 135 50 216 158 10
60500 -236 178 12 246 190 14 246 190 14 246 190 14
60501 -246 190 14 246 190 14 246 190 14 246 190 14
60502 -246 190 14 246 190 14 246 190 14 246 190 14
60503 -246 190 14 246 190 14 241 196 14 226 184 13
60504 - 61 42 6 2 2 6 2 2 6 2 2 6
60505 - 22 22 22 238 238 238 253 253 253 253 253 253
60506 -253 253 253 253 253 253 253 253 253 253 253 253
60507 -253 253 253 253 253 253 253 253 253 253 253 253
60508 -253 253 253 253 253 253 253 253 253 253 253 253
60509 -253 253 253 226 226 226 187 187 187 180 133 36
60510 -216 158 10 236 178 12 239 182 13 236 178 12
60511 -230 174 11 226 170 11 226 170 11 230 174 11
60512 -236 178 12 242 186 14 246 190 14 246 190 14
60513 -246 190 14 246 190 14 246 186 14 239 182 13
60514 -206 162 42 106 106 106 66 66 66 34 34 34
60515 - 14 14 14 6 6 6 0 0 0 0 0 0
60516 - 0 0 0 0 0 0 0 0 0 0 0 0
60517 - 0 0 0 0 0 0 0 0 0 0 0 0
60518 - 0 0 0 0 0 0 0 0 0 6 6 6
60519 - 26 26 26 70 70 70 163 133 67 213 154 11
60520 -236 178 12 246 190 14 246 190 14 246 190 14
60521 -246 190 14 246 190 14 246 190 14 246 190 14
60522 -246 190 14 246 190 14 246 190 14 246 190 14
60523 -246 190 14 246 190 14 246 190 14 241 196 14
60524 -190 146 13 18 14 6 2 2 6 2 2 6
60525 - 46 46 46 246 246 246 253 253 253 253 253 253
60526 -253 253 253 253 253 253 253 253 253 253 253 253
60527 -253 253 253 253 253 253 253 253 253 253 253 253
60528 -253 253 253 253 253 253 253 253 253 253 253 253
60529 -253 253 253 221 221 221 86 86 86 156 107 11
60530 -216 158 10 236 178 12 242 186 14 246 186 14
60531 -242 186 14 239 182 13 239 182 13 242 186 14
60532 -242 186 14 246 186 14 246 190 14 246 190 14
60533 -246 190 14 246 190 14 246 190 14 246 190 14
60534 -242 186 14 225 175 15 142 122 72 66 66 66
60535 - 30 30 30 10 10 10 0 0 0 0 0 0
60536 - 0 0 0 0 0 0 0 0 0 0 0 0
60537 - 0 0 0 0 0 0 0 0 0 0 0 0
60538 - 0 0 0 0 0 0 0 0 0 6 6 6
60539 - 26 26 26 70 70 70 163 133 67 210 150 10
60540 -236 178 12 246 190 14 246 190 14 246 190 14
60541 -246 190 14 246 190 14 246 190 14 246 190 14
60542 -246 190 14 246 190 14 246 190 14 246 190 14
60543 -246 190 14 246 190 14 246 190 14 246 190 14
60544 -232 195 16 121 92 8 34 34 34 106 106 106
60545 -221 221 221 253 253 253 253 253 253 253 253 253
60546 -253 253 253 253 253 253 253 253 253 253 253 253
60547 -253 253 253 253 253 253 253 253 253 253 253 253
60548 -253 253 253 253 253 253 253 253 253 253 253 253
60549 -242 242 242 82 82 82 18 14 6 163 110 8
60550 -216 158 10 236 178 12 242 186 14 246 190 14
60551 -246 190 14 246 190 14 246 190 14 246 190 14
60552 -246 190 14 246 190 14 246 190 14 246 190 14
60553 -246 190 14 246 190 14 246 190 14 246 190 14
60554 -246 190 14 246 190 14 242 186 14 163 133 67
60555 - 46 46 46 18 18 18 6 6 6 0 0 0
60556 - 0 0 0 0 0 0 0 0 0 0 0 0
60557 - 0 0 0 0 0 0 0 0 0 0 0 0
60558 - 0 0 0 0 0 0 0 0 0 10 10 10
60559 - 30 30 30 78 78 78 163 133 67 210 150 10
60560 -236 178 12 246 186 14 246 190 14 246 190 14
60561 -246 190 14 246 190 14 246 190 14 246 190 14
60562 -246 190 14 246 190 14 246 190 14 246 190 14
60563 -246 190 14 246 190 14 246 190 14 246 190 14
60564 -241 196 14 215 174 15 190 178 144 253 253 253
60565 -253 253 253 253 253 253 253 253 253 253 253 253
60566 -253 253 253 253 253 253 253 253 253 253 253 253
60567 -253 253 253 253 253 253 253 253 253 253 253 253
60568 -253 253 253 253 253 253 253 253 253 218 218 218
60569 - 58 58 58 2 2 6 22 18 6 167 114 7
60570 -216 158 10 236 178 12 246 186 14 246 190 14
60571 -246 190 14 246 190 14 246 190 14 246 190 14
60572 -246 190 14 246 190 14 246 190 14 246 190 14
60573 -246 190 14 246 190 14 246 190 14 246 190 14
60574 -246 190 14 246 186 14 242 186 14 190 150 46
60575 - 54 54 54 22 22 22 6 6 6 0 0 0
60576 - 0 0 0 0 0 0 0 0 0 0 0 0
60577 - 0 0 0 0 0 0 0 0 0 0 0 0
60578 - 0 0 0 0 0 0 0 0 0 14 14 14
60579 - 38 38 38 86 86 86 180 133 36 213 154 11
60580 -236 178 12 246 186 14 246 190 14 246 190 14
60581 -246 190 14 246 190 14 246 190 14 246 190 14
60582 -246 190 14 246 190 14 246 190 14 246 190 14
60583 -246 190 14 246 190 14 246 190 14 246 190 14
60584 -246 190 14 232 195 16 190 146 13 214 214 214
60585 -253 253 253 253 253 253 253 253 253 253 253 253
60586 -253 253 253 253 253 253 253 253 253 253 253 253
60587 -253 253 253 253 253 253 253 253 253 253 253 253
60588 -253 253 253 250 250 250 170 170 170 26 26 26
60589 - 2 2 6 2 2 6 37 26 9 163 110 8
60590 -219 162 10 239 182 13 246 186 14 246 190 14
60591 -246 190 14 246 190 14 246 190 14 246 190 14
60592 -246 190 14 246 190 14 246 190 14 246 190 14
60593 -246 190 14 246 190 14 246 190 14 246 190 14
60594 -246 186 14 236 178 12 224 166 10 142 122 72
60595 - 46 46 46 18 18 18 6 6 6 0 0 0
60596 - 0 0 0 0 0 0 0 0 0 0 0 0
60597 - 0 0 0 0 0 0 0 0 0 0 0 0
60598 - 0 0 0 0 0 0 6 6 6 18 18 18
60599 - 50 50 50 109 106 95 192 133 9 224 166 10
60600 -242 186 14 246 190 14 246 190 14 246 190 14
60601 -246 190 14 246 190 14 246 190 14 246 190 14
60602 -246 190 14 246 190 14 246 190 14 246 190 14
60603 -246 190 14 246 190 14 246 190 14 246 190 14
60604 -242 186 14 226 184 13 210 162 10 142 110 46
60605 -226 226 226 253 253 253 253 253 253 253 253 253
60606 -253 253 253 253 253 253 253 253 253 253 253 253
60607 -253 253 253 253 253 253 253 253 253 253 253 253
60608 -198 198 198 66 66 66 2 2 6 2 2 6
60609 - 2 2 6 2 2 6 50 34 6 156 107 11
60610 -219 162 10 239 182 13 246 186 14 246 190 14
60611 -246 190 14 246 190 14 246 190 14 246 190 14
60612 -246 190 14 246 190 14 246 190 14 246 190 14
60613 -246 190 14 246 190 14 246 190 14 242 186 14
60614 -234 174 13 213 154 11 154 122 46 66 66 66
60615 - 30 30 30 10 10 10 0 0 0 0 0 0
60616 - 0 0 0 0 0 0 0 0 0 0 0 0
60617 - 0 0 0 0 0 0 0 0 0 0 0 0
60618 - 0 0 0 0 0 0 6 6 6 22 22 22
60619 - 58 58 58 154 121 60 206 145 10 234 174 13
60620 -242 186 14 246 186 14 246 190 14 246 190 14
60621 -246 190 14 246 190 14 246 190 14 246 190 14
60622 -246 190 14 246 190 14 246 190 14 246 190 14
60623 -246 190 14 246 190 14 246 190 14 246 190 14
60624 -246 186 14 236 178 12 210 162 10 163 110 8
60625 - 61 42 6 138 138 138 218 218 218 250 250 250
60626 -253 253 253 253 253 253 253 253 253 250 250 250
60627 -242 242 242 210 210 210 144 144 144 66 66 66
60628 - 6 6 6 2 2 6 2 2 6 2 2 6
60629 - 2 2 6 2 2 6 61 42 6 163 110 8
60630 -216 158 10 236 178 12 246 190 14 246 190 14
60631 -246 190 14 246 190 14 246 190 14 246 190 14
60632 -246 190 14 246 190 14 246 190 14 246 190 14
60633 -246 190 14 239 182 13 230 174 11 216 158 10
60634 -190 142 34 124 112 88 70 70 70 38 38 38
60635 - 18 18 18 6 6 6 0 0 0 0 0 0
60636 - 0 0 0 0 0 0 0 0 0 0 0 0
60637 - 0 0 0 0 0 0 0 0 0 0 0 0
60638 - 0 0 0 0 0 0 6 6 6 22 22 22
60639 - 62 62 62 168 124 44 206 145 10 224 166 10
60640 -236 178 12 239 182 13 242 186 14 242 186 14
60641 -246 186 14 246 190 14 246 190 14 246 190 14
60642 -246 190 14 246 190 14 246 190 14 246 190 14
60643 -246 190 14 246 190 14 246 190 14 246 190 14
60644 -246 190 14 236 178 12 216 158 10 175 118 6
60645 - 80 54 7 2 2 6 6 6 6 30 30 30
60646 - 54 54 54 62 62 62 50 50 50 38 38 38
60647 - 14 14 14 2 2 6 2 2 6 2 2 6
60648 - 2 2 6 2 2 6 2 2 6 2 2 6
60649 - 2 2 6 6 6 6 80 54 7 167 114 7
60650 -213 154 11 236 178 12 246 190 14 246 190 14
60651 -246 190 14 246 190 14 246 190 14 246 190 14
60652 -246 190 14 242 186 14 239 182 13 239 182 13
60653 -230 174 11 210 150 10 174 135 50 124 112 88
60654 - 82 82 82 54 54 54 34 34 34 18 18 18
60655 - 6 6 6 0 0 0 0 0 0 0 0 0
60656 - 0 0 0 0 0 0 0 0 0 0 0 0
60657 - 0 0 0 0 0 0 0 0 0 0 0 0
60658 - 0 0 0 0 0 0 6 6 6 18 18 18
60659 - 50 50 50 158 118 36 192 133 9 200 144 11
60660 -216 158 10 219 162 10 224 166 10 226 170 11
60661 -230 174 11 236 178 12 239 182 13 239 182 13
60662 -242 186 14 246 186 14 246 190 14 246 190 14
60663 -246 190 14 246 190 14 246 190 14 246 190 14
60664 -246 186 14 230 174 11 210 150 10 163 110 8
60665 -104 69 6 10 10 10 2 2 6 2 2 6
60666 - 2 2 6 2 2 6 2 2 6 2 2 6
60667 - 2 2 6 2 2 6 2 2 6 2 2 6
60668 - 2 2 6 2 2 6 2 2 6 2 2 6
60669 - 2 2 6 6 6 6 91 60 6 167 114 7
60670 -206 145 10 230 174 11 242 186 14 246 190 14
60671 -246 190 14 246 190 14 246 186 14 242 186 14
60672 -239 182 13 230 174 11 224 166 10 213 154 11
60673 -180 133 36 124 112 88 86 86 86 58 58 58
60674 - 38 38 38 22 22 22 10 10 10 6 6 6
60675 - 0 0 0 0 0 0 0 0 0 0 0 0
60676 - 0 0 0 0 0 0 0 0 0 0 0 0
60677 - 0 0 0 0 0 0 0 0 0 0 0 0
60678 - 0 0 0 0 0 0 0 0 0 14 14 14
60679 - 34 34 34 70 70 70 138 110 50 158 118 36
60680 -167 114 7 180 123 7 192 133 9 197 138 11
60681 -200 144 11 206 145 10 213 154 11 219 162 10
60682 -224 166 10 230 174 11 239 182 13 242 186 14
60683 -246 186 14 246 186 14 246 186 14 246 186 14
60684 -239 182 13 216 158 10 185 133 11 152 99 6
60685 -104 69 6 18 14 6 2 2 6 2 2 6
60686 - 2 2 6 2 2 6 2 2 6 2 2 6
60687 - 2 2 6 2 2 6 2 2 6 2 2 6
60688 - 2 2 6 2 2 6 2 2 6 2 2 6
60689 - 2 2 6 6 6 6 80 54 7 152 99 6
60690 -192 133 9 219 162 10 236 178 12 239 182 13
60691 -246 186 14 242 186 14 239 182 13 236 178 12
60692 -224 166 10 206 145 10 192 133 9 154 121 60
60693 - 94 94 94 62 62 62 42 42 42 22 22 22
60694 - 14 14 14 6 6 6 0 0 0 0 0 0
60695 - 0 0 0 0 0 0 0 0 0 0 0 0
60696 - 0 0 0 0 0 0 0 0 0 0 0 0
60697 - 0 0 0 0 0 0 0 0 0 0 0 0
60698 - 0 0 0 0 0 0 0 0 0 6 6 6
60699 - 18 18 18 34 34 34 58 58 58 78 78 78
60700 -101 98 89 124 112 88 142 110 46 156 107 11
60701 -163 110 8 167 114 7 175 118 6 180 123 7
60702 -185 133 11 197 138 11 210 150 10 219 162 10
60703 -226 170 11 236 178 12 236 178 12 234 174 13
60704 -219 162 10 197 138 11 163 110 8 130 83 6
60705 - 91 60 6 10 10 10 2 2 6 2 2 6
60706 - 18 18 18 38 38 38 38 38 38 38 38 38
60707 - 38 38 38 38 38 38 38 38 38 38 38 38
60708 - 38 38 38 38 38 38 26 26 26 2 2 6
60709 - 2 2 6 6 6 6 70 47 6 137 92 6
60710 -175 118 6 200 144 11 219 162 10 230 174 11
60711 -234 174 13 230 174 11 219 162 10 210 150 10
60712 -192 133 9 163 110 8 124 112 88 82 82 82
60713 - 50 50 50 30 30 30 14 14 14 6 6 6
60714 - 0 0 0 0 0 0 0 0 0 0 0 0
60715 - 0 0 0 0 0 0 0 0 0 0 0 0
60716 - 0 0 0 0 0 0 0 0 0 0 0 0
60717 - 0 0 0 0 0 0 0 0 0 0 0 0
60718 - 0 0 0 0 0 0 0 0 0 0 0 0
60719 - 6 6 6 14 14 14 22 22 22 34 34 34
60720 - 42 42 42 58 58 58 74 74 74 86 86 86
60721 -101 98 89 122 102 70 130 98 46 121 87 25
60722 -137 92 6 152 99 6 163 110 8 180 123 7
60723 -185 133 11 197 138 11 206 145 10 200 144 11
60724 -180 123 7 156 107 11 130 83 6 104 69 6
60725 - 50 34 6 54 54 54 110 110 110 101 98 89
60726 - 86 86 86 82 82 82 78 78 78 78 78 78
60727 - 78 78 78 78 78 78 78 78 78 78 78 78
60728 - 78 78 78 82 82 82 86 86 86 94 94 94
60729 -106 106 106 101 101 101 86 66 34 124 80 6
60730 -156 107 11 180 123 7 192 133 9 200 144 11
60731 -206 145 10 200 144 11 192 133 9 175 118 6
60732 -139 102 15 109 106 95 70 70 70 42 42 42
60733 - 22 22 22 10 10 10 0 0 0 0 0 0
60734 - 0 0 0 0 0 0 0 0 0 0 0 0
60735 - 0 0 0 0 0 0 0 0 0 0 0 0
60736 - 0 0 0 0 0 0 0 0 0 0 0 0
60737 - 0 0 0 0 0 0 0 0 0 0 0 0
60738 - 0 0 0 0 0 0 0 0 0 0 0 0
60739 - 0 0 0 0 0 0 6 6 6 10 10 10
60740 - 14 14 14 22 22 22 30 30 30 38 38 38
60741 - 50 50 50 62 62 62 74 74 74 90 90 90
60742 -101 98 89 112 100 78 121 87 25 124 80 6
60743 -137 92 6 152 99 6 152 99 6 152 99 6
60744 -138 86 6 124 80 6 98 70 6 86 66 30
60745 -101 98 89 82 82 82 58 58 58 46 46 46
60746 - 38 38 38 34 34 34 34 34 34 34 34 34
60747 - 34 34 34 34 34 34 34 34 34 34 34 34
60748 - 34 34 34 34 34 34 38 38 38 42 42 42
60749 - 54 54 54 82 82 82 94 86 76 91 60 6
60750 -134 86 6 156 107 11 167 114 7 175 118 6
60751 -175 118 6 167 114 7 152 99 6 121 87 25
60752 -101 98 89 62 62 62 34 34 34 18 18 18
60753 - 6 6 6 0 0 0 0 0 0 0 0 0
60754 - 0 0 0 0 0 0 0 0 0 0 0 0
60755 - 0 0 0 0 0 0 0 0 0 0 0 0
60756 - 0 0 0 0 0 0 0 0 0 0 0 0
60757 - 0 0 0 0 0 0 0 0 0 0 0 0
60758 - 0 0 0 0 0 0 0 0 0 0 0 0
60759 - 0 0 0 0 0 0 0 0 0 0 0 0
60760 - 0 0 0 6 6 6 6 6 6 10 10 10
60761 - 18 18 18 22 22 22 30 30 30 42 42 42
60762 - 50 50 50 66 66 66 86 86 86 101 98 89
60763 -106 86 58 98 70 6 104 69 6 104 69 6
60764 -104 69 6 91 60 6 82 62 34 90 90 90
60765 - 62 62 62 38 38 38 22 22 22 14 14 14
60766 - 10 10 10 10 10 10 10 10 10 10 10 10
60767 - 10 10 10 10 10 10 6 6 6 10 10 10
60768 - 10 10 10 10 10 10 10 10 10 14 14 14
60769 - 22 22 22 42 42 42 70 70 70 89 81 66
60770 - 80 54 7 104 69 6 124 80 6 137 92 6
60771 -134 86 6 116 81 8 100 82 52 86 86 86
60772 - 58 58 58 30 30 30 14 14 14 6 6 6
60773 - 0 0 0 0 0 0 0 0 0 0 0 0
60774 - 0 0 0 0 0 0 0 0 0 0 0 0
60775 - 0 0 0 0 0 0 0 0 0 0 0 0
60776 - 0 0 0 0 0 0 0 0 0 0 0 0
60777 - 0 0 0 0 0 0 0 0 0 0 0 0
60778 - 0 0 0 0 0 0 0 0 0 0 0 0
60779 - 0 0 0 0 0 0 0 0 0 0 0 0
60780 - 0 0 0 0 0 0 0 0 0 0 0 0
60781 - 0 0 0 6 6 6 10 10 10 14 14 14
60782 - 18 18 18 26 26 26 38 38 38 54 54 54
60783 - 70 70 70 86 86 86 94 86 76 89 81 66
60784 - 89 81 66 86 86 86 74 74 74 50 50 50
60785 - 30 30 30 14 14 14 6 6 6 0 0 0
60786 - 0 0 0 0 0 0 0 0 0 0 0 0
60787 - 0 0 0 0 0 0 0 0 0 0 0 0
60788 - 0 0 0 0 0 0 0 0 0 0 0 0
60789 - 6 6 6 18 18 18 34 34 34 58 58 58
60790 - 82 82 82 89 81 66 89 81 66 89 81 66
60791 - 94 86 66 94 86 76 74 74 74 50 50 50
60792 - 26 26 26 14 14 14 6 6 6 0 0 0
60793 - 0 0 0 0 0 0 0 0 0 0 0 0
60794 - 0 0 0 0 0 0 0 0 0 0 0 0
60795 - 0 0 0 0 0 0 0 0 0 0 0 0
60796 - 0 0 0 0 0 0 0 0 0 0 0 0
60797 - 0 0 0 0 0 0 0 0 0 0 0 0
60798 - 0 0 0 0 0 0 0 0 0 0 0 0
60799 - 0 0 0 0 0 0 0 0 0 0 0 0
60800 - 0 0 0 0 0 0 0 0 0 0 0 0
60801 - 0 0 0 0 0 0 0 0 0 0 0 0
60802 - 6 6 6 6 6 6 14 14 14 18 18 18
60803 - 30 30 30 38 38 38 46 46 46 54 54 54
60804 - 50 50 50 42 42 42 30 30 30 18 18 18
60805 - 10 10 10 0 0 0 0 0 0 0 0 0
60806 - 0 0 0 0 0 0 0 0 0 0 0 0
60807 - 0 0 0 0 0 0 0 0 0 0 0 0
60808 - 0 0 0 0 0 0 0 0 0 0 0 0
60809 - 0 0 0 6 6 6 14 14 14 26 26 26
60810 - 38 38 38 50 50 50 58 58 58 58 58 58
60811 - 54 54 54 42 42 42 30 30 30 18 18 18
60812 - 10 10 10 0 0 0 0 0 0 0 0 0
60813 - 0 0 0 0 0 0 0 0 0 0 0 0
60814 - 0 0 0 0 0 0 0 0 0 0 0 0
60815 - 0 0 0 0 0 0 0 0 0 0 0 0
60816 - 0 0 0 0 0 0 0 0 0 0 0 0
60817 - 0 0 0 0 0 0 0 0 0 0 0 0
60818 - 0 0 0 0 0 0 0 0 0 0 0 0
60819 - 0 0 0 0 0 0 0 0 0 0 0 0
60820 - 0 0 0 0 0 0 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 6 6 6
60823 - 6 6 6 10 10 10 14 14 14 18 18 18
60824 - 18 18 18 14 14 14 10 10 10 6 6 6
60825 - 0 0 0 0 0 0 0 0 0 0 0 0
60826 - 0 0 0 0 0 0 0 0 0 0 0 0
60827 - 0 0 0 0 0 0 0 0 0 0 0 0
60828 - 0 0 0 0 0 0 0 0 0 0 0 0
60829 - 0 0 0 0 0 0 0 0 0 6 6 6
60830 - 14 14 14 18 18 18 22 22 22 22 22 22
60831 - 18 18 18 14 14 14 10 10 10 6 6 6
60832 - 0 0 0 0 0 0 0 0 0 0 0 0
60833 - 0 0 0 0 0 0 0 0 0 0 0 0
60834 - 0 0 0 0 0 0 0 0 0 0 0 0
60835 - 0 0 0 0 0 0 0 0 0 0 0 0
60836 - 0 0 0 0 0 0 0 0 0 0 0 0
60837 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60838 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60839 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60840 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60841 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60842 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60843 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60844 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60845 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60846 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60847 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60848 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60849 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60850 +4 4 4 4 4 4
60851 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60852 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60853 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60854 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60855 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60856 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60857 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60858 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60859 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60860 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60861 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60862 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60863 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60864 +4 4 4 4 4 4
60865 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60866 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60867 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60868 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60869 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60870 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60871 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60872 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60873 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60874 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60875 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60876 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60877 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60878 +4 4 4 4 4 4
60879 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60880 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60881 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60882 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60883 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60884 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60885 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60886 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60887 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60888 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60889 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60890 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60891 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60892 +4 4 4 4 4 4
60893 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60894 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60895 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60896 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60897 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60898 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60899 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60900 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60901 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60902 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60903 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60904 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60905 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60906 +4 4 4 4 4 4
60907 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60908 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60909 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60910 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60911 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60912 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60913 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60914 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60915 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60916 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60917 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60918 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60919 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60920 +4 4 4 4 4 4
60921 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60922 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60923 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60924 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60925 +4 4 4 4 4 4 4 4 4 3 3 3 0 0 0 0 0 0
60926 +0 0 0 0 0 0 0 0 0 0 0 0 3 3 3 4 4 4
60927 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60928 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60929 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60930 +4 4 4 4 4 4 4 4 4 4 4 4 1 1 1 0 0 0
60931 +0 0 0 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
60932 +4 4 4 4 4 4 4 4 4 2 1 0 2 1 0 3 2 2
60933 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60934 +4 4 4 4 4 4
60935 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60936 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60937 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60938 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60939 +4 4 4 4 4 4 2 2 2 0 0 0 3 4 3 26 28 28
60940 +37 38 37 37 38 37 14 17 19 2 2 2 0 0 0 2 2 2
60941 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60942 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60943 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60944 +4 4 4 4 4 4 3 3 3 0 0 0 1 1 1 6 6 6
60945 +2 2 2 0 0 0 3 3 3 4 4 4 4 4 4 4 4 4
60946 +4 4 5 3 3 3 1 0 0 0 0 0 1 0 0 0 0 0
60947 +1 1 1 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60948 +4 4 4 4 4 4
60949 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60950 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60951 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60952 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60953 +2 2 2 0 0 0 0 0 0 14 17 19 60 74 84 137 136 137
60954 +153 152 153 137 136 137 125 124 125 60 73 81 6 6 6 3 1 0
60955 +0 0 0 3 3 3 4 4 4 4 4 4 4 4 4 4 4 4
60956 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60957 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60958 +4 4 4 4 4 4 0 0 0 4 4 4 41 54 63 125 124 125
60959 +60 73 81 6 6 6 4 0 0 3 3 3 4 4 4 4 4 4
60960 +4 4 4 0 0 0 6 9 11 41 54 63 41 65 82 22 30 35
60961 +2 2 2 2 1 0 4 4 4 4 4 4 4 4 4 4 4 4
60962 +4 4 4 4 4 4
60963 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60964 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60965 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60966 +4 4 4 4 4 4 5 5 5 5 5 5 2 2 2 0 0 0
60967 +4 0 0 6 6 6 41 54 63 137 136 137 174 174 174 167 166 167
60968 +165 164 165 165 164 165 163 162 163 163 162 163 125 124 125 41 54 63
60969 +1 1 1 0 0 0 0 0 0 3 3 3 5 5 5 4 4 4
60970 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60971 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
60972 +3 3 3 2 0 0 4 0 0 60 73 81 156 155 156 167 166 167
60973 +163 162 163 85 115 134 5 7 8 0 0 0 4 4 4 5 5 5
60974 +0 0 0 2 5 5 55 98 126 90 154 193 90 154 193 72 125 159
60975 +37 51 59 2 0 0 1 1 1 4 5 5 4 4 4 4 4 4
60976 +4 4 4 4 4 4
60977 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60978 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60979 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60980 +4 4 4 5 5 5 4 4 4 1 1 1 0 0 0 3 3 3
60981 +37 38 37 125 124 125 163 162 163 174 174 174 158 157 158 158 157 158
60982 +156 155 156 156 155 156 158 157 158 165 164 165 174 174 174 166 165 166
60983 +125 124 125 16 19 21 1 0 0 0 0 0 0 0 0 4 4 4
60984 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
60985 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 1 1 1
60986 +0 0 0 0 0 0 37 38 37 153 152 153 174 174 174 158 157 158
60987 +174 174 174 163 162 163 37 38 37 4 3 3 4 0 0 1 1 1
60988 +0 0 0 22 40 52 101 161 196 101 161 196 90 154 193 101 161 196
60989 +64 123 161 14 17 19 0 0 0 4 4 4 4 4 4 4 4 4
60990 +4 4 4 4 4 4
60991 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60992 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
60993 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
60994 +5 5 5 2 2 2 0 0 0 4 0 0 24 26 27 85 115 134
60995 +156 155 156 174 174 174 167 166 167 156 155 156 154 153 154 157 156 157
60996 +156 155 156 156 155 156 155 154 155 153 152 153 158 157 158 167 166 167
60997 +174 174 174 156 155 156 60 74 84 16 19 21 0 0 0 0 0 0
60998 +1 1 1 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
60999 +4 4 4 5 5 5 6 6 6 3 3 3 0 0 0 4 0 0
61000 +13 16 17 60 73 81 137 136 137 165 164 165 156 155 156 153 152 153
61001 +174 174 174 177 184 187 60 73 81 3 1 0 0 0 0 1 1 2
61002 +22 30 35 64 123 161 136 185 209 90 154 193 90 154 193 90 154 193
61003 +90 154 193 21 29 34 0 0 0 3 2 2 4 4 5 4 4 4
61004 +4 4 4 4 4 4
61005 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61006 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61007 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 3 3 3
61008 +0 0 0 0 0 0 10 13 16 60 74 84 157 156 157 174 174 174
61009 +174 174 174 158 157 158 153 152 153 154 153 154 156 155 156 155 154 155
61010 +156 155 156 155 154 155 154 153 154 157 156 157 154 153 154 153 152 153
61011 +163 162 163 174 174 174 177 184 187 137 136 137 60 73 81 13 16 17
61012 +4 0 0 0 0 0 3 3 3 5 5 5 4 4 4 4 4 4
61013 +5 5 5 4 4 4 1 1 1 0 0 0 3 3 3 41 54 63
61014 +131 129 131 174 174 174 174 174 174 174 174 174 167 166 167 174 174 174
61015 +190 197 201 137 136 137 24 26 27 4 0 0 16 21 25 50 82 103
61016 +90 154 193 136 185 209 90 154 193 101 161 196 101 161 196 101 161 196
61017 +31 91 132 3 6 7 0 0 0 4 4 4 4 4 4 4 4 4
61018 +4 4 4 4 4 4
61019 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61020 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61021 +4 4 4 4 4 4 4 4 4 2 2 2 0 0 0 4 0 0
61022 +4 0 0 43 57 68 137 136 137 177 184 187 174 174 174 163 162 163
61023 +155 154 155 155 154 155 156 155 156 155 154 155 158 157 158 165 164 165
61024 +167 166 167 166 165 166 163 162 163 157 156 157 155 154 155 155 154 155
61025 +153 152 153 156 155 156 167 166 167 174 174 174 174 174 174 131 129 131
61026 +41 54 63 5 5 5 0 0 0 0 0 0 3 3 3 4 4 4
61027 +1 1 1 0 0 0 1 0 0 26 28 28 125 124 125 174 174 174
61028 +177 184 187 174 174 174 174 174 174 156 155 156 131 129 131 137 136 137
61029 +125 124 125 24 26 27 4 0 0 41 65 82 90 154 193 136 185 209
61030 +136 185 209 101 161 196 53 118 160 37 112 160 90 154 193 34 86 122
61031 +7 12 15 0 0 0 4 4 4 4 4 4 4 4 4 4 4 4
61032 +4 4 4 4 4 4
61033 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61034 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61035 +4 4 4 3 3 3 0 0 0 0 0 0 5 5 5 37 38 37
61036 +125 124 125 167 166 167 174 174 174 167 166 167 158 157 158 155 154 155
61037 +156 155 156 156 155 156 156 155 156 163 162 163 167 166 167 155 154 155
61038 +137 136 137 153 152 153 156 155 156 165 164 165 163 162 163 156 155 156
61039 +156 155 156 156 155 156 155 154 155 158 157 158 166 165 166 174 174 174
61040 +167 166 167 125 124 125 37 38 37 1 0 0 0 0 0 0 0 0
61041 +0 0 0 24 26 27 60 74 84 158 157 158 174 174 174 174 174 174
61042 +166 165 166 158 157 158 125 124 125 41 54 63 13 16 17 6 6 6
61043 +6 6 6 37 38 37 80 127 157 136 185 209 101 161 196 101 161 196
61044 +90 154 193 28 67 93 6 10 14 13 20 25 13 20 25 6 10 14
61045 +1 1 2 4 3 3 4 4 4 4 4 4 4 4 4 4 4 4
61046 +4 4 4 4 4 4
61047 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61048 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61049 +1 1 1 1 0 0 4 3 3 37 38 37 60 74 84 153 152 153
61050 +167 166 167 167 166 167 158 157 158 154 153 154 155 154 155 156 155 156
61051 +157 156 157 158 157 158 167 166 167 167 166 167 131 129 131 43 57 68
61052 +26 28 28 37 38 37 60 73 81 131 129 131 165 164 165 166 165 166
61053 +158 157 158 155 154 155 156 155 156 156 155 156 156 155 156 158 157 158
61054 +165 164 165 174 174 174 163 162 163 60 74 84 16 19 21 13 16 17
61055 +60 73 81 131 129 131 174 174 174 174 174 174 167 166 167 165 164 165
61056 +137 136 137 60 73 81 24 26 27 4 0 0 4 0 0 16 19 21
61057 +52 104 138 101 161 196 136 185 209 136 185 209 90 154 193 27 99 146
61058 +13 20 25 4 5 7 2 5 5 4 5 7 1 1 2 0 0 0
61059 +4 4 4 4 4 4 3 3 3 2 2 2 2 2 2 4 4 4
61060 +4 4 4 4 4 4
61061 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61062 +4 4 4 4 4 4 4 4 4 4 4 4 3 3 3 0 0 0
61063 +0 0 0 13 16 17 60 73 81 137 136 137 174 174 174 166 165 166
61064 +158 157 158 156 155 156 157 156 157 156 155 156 155 154 155 158 157 158
61065 +167 166 167 174 174 174 153 152 153 60 73 81 16 19 21 4 0 0
61066 +4 0 0 4 0 0 6 6 6 26 28 28 60 74 84 158 157 158
61067 +174 174 174 166 165 166 157 156 157 155 154 155 156 155 156 156 155 156
61068 +155 154 155 158 157 158 167 166 167 167 166 167 131 129 131 125 124 125
61069 +137 136 137 167 166 167 167 166 167 174 174 174 158 157 158 125 124 125
61070 +16 19 21 4 0 0 4 0 0 10 13 16 49 76 92 107 159 188
61071 +136 185 209 136 185 209 90 154 193 26 108 161 22 40 52 6 10 14
61072 +2 3 3 1 1 2 1 1 2 4 4 5 4 4 5 4 4 5
61073 +4 4 5 2 2 1 0 0 0 0 0 0 0 0 0 2 2 2
61074 +4 4 4 4 4 4
61075 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61076 +4 4 4 5 5 5 3 3 3 0 0 0 1 0 0 4 0 0
61077 +37 51 59 131 129 131 167 166 167 167 166 167 163 162 163 157 156 157
61078 +157 156 157 155 154 155 153 152 153 157 156 157 167 166 167 174 174 174
61079 +153 152 153 125 124 125 37 38 37 4 0 0 4 0 0 4 0 0
61080 +4 3 3 4 3 3 4 0 0 6 6 6 4 0 0 37 38 37
61081 +125 124 125 174 174 174 174 174 174 165 164 165 156 155 156 154 153 154
61082 +156 155 156 156 155 156 155 154 155 163 162 163 158 157 158 163 162 163
61083 +174 174 174 174 174 174 174 174 174 125 124 125 37 38 37 0 0 0
61084 +4 0 0 6 9 11 41 54 63 90 154 193 136 185 209 146 190 211
61085 +136 185 209 37 112 160 22 40 52 6 10 14 3 6 7 1 1 2
61086 +1 1 2 3 3 3 1 1 2 3 3 3 4 4 4 4 4 4
61087 +2 2 2 2 0 0 16 19 21 37 38 37 24 26 27 0 0 0
61088 +0 0 0 4 4 4
61089 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 5 5 5
61090 +4 4 4 0 0 0 0 0 0 0 0 0 26 28 28 120 125 127
61091 +158 157 158 174 174 174 165 164 165 157 156 157 155 154 155 156 155 156
61092 +153 152 153 153 152 153 167 166 167 174 174 174 174 174 174 125 124 125
61093 +37 38 37 4 0 0 0 0 0 4 0 0 4 3 3 4 4 4
61094 +4 4 4 4 4 4 5 5 5 4 0 0 4 0 0 4 0 0
61095 +4 3 3 43 57 68 137 136 137 174 174 174 174 174 174 165 164 165
61096 +154 153 154 153 152 153 153 152 153 153 152 153 163 162 163 174 174 174
61097 +174 174 174 153 152 153 60 73 81 6 6 6 4 0 0 4 3 3
61098 +32 43 50 80 127 157 136 185 209 146 190 211 146 190 211 90 154 193
61099 +28 67 93 28 67 93 40 71 93 3 6 7 1 1 2 2 5 5
61100 +50 82 103 79 117 143 26 37 45 0 0 0 3 3 3 1 1 1
61101 +0 0 0 41 54 63 137 136 137 174 174 174 153 152 153 60 73 81
61102 +2 0 0 0 0 0
61103 +4 4 4 4 4 4 4 4 4 4 4 4 6 6 6 2 2 2
61104 +0 0 0 2 0 0 24 26 27 60 74 84 153 152 153 174 174 174
61105 +174 174 174 157 156 157 154 153 154 156 155 156 154 153 154 153 152 153
61106 +165 164 165 174 174 174 177 184 187 137 136 137 43 57 68 6 6 6
61107 +4 0 0 2 0 0 3 3 3 5 5 5 5 5 5 4 4 4
61108 +4 4 4 4 4 4 4 4 4 5 5 5 6 6 6 4 3 3
61109 +4 0 0 4 0 0 24 26 27 60 73 81 153 152 153 174 174 174
61110 +174 174 174 158 157 158 158 157 158 174 174 174 174 174 174 158 157 158
61111 +60 74 84 24 26 27 4 0 0 4 0 0 17 23 27 59 113 148
61112 +136 185 209 191 222 234 146 190 211 136 185 209 31 91 132 7 11 13
61113 +22 40 52 101 161 196 90 154 193 6 9 11 3 4 4 43 95 132
61114 +136 185 209 172 205 220 55 98 126 0 0 0 0 0 0 2 0 0
61115 +26 28 28 153 152 153 177 184 187 167 166 167 177 184 187 165 164 165
61116 +37 38 37 0 0 0
61117 +4 4 4 4 4 4 5 5 5 5 5 5 1 1 1 0 0 0
61118 +13 16 17 60 73 81 137 136 137 174 174 174 174 174 174 165 164 165
61119 +153 152 153 153 152 153 155 154 155 154 153 154 158 157 158 174 174 174
61120 +177 184 187 163 162 163 60 73 81 16 19 21 4 0 0 4 0 0
61121 +4 3 3 4 4 4 5 5 5 5 5 5 4 4 4 5 5 5
61122 +5 5 5 5 5 5 5 5 5 4 4 4 4 4 4 5 5 5
61123 +6 6 6 4 0 0 4 0 0 4 0 0 24 26 27 60 74 84
61124 +166 165 166 174 174 174 177 184 187 165 164 165 125 124 125 24 26 27
61125 +4 0 0 4 0 0 5 5 5 50 82 103 136 185 209 172 205 220
61126 +146 190 211 136 185 209 26 108 161 22 40 52 7 12 15 44 81 103
61127 +71 116 144 28 67 93 37 51 59 41 65 82 100 139 164 101 161 196
61128 +90 154 193 90 154 193 28 67 93 0 0 0 0 0 0 26 28 28
61129 +125 124 125 167 166 167 163 162 163 153 152 153 163 162 163 174 174 174
61130 +85 115 134 4 0 0
61131 +4 4 4 5 5 5 4 4 4 1 0 0 4 0 0 34 47 55
61132 +125 124 125 174 174 174 174 174 174 167 166 167 157 156 157 153 152 153
61133 +155 154 155 155 154 155 158 157 158 166 165 166 167 166 167 154 153 154
61134 +125 124 125 26 28 28 4 0 0 4 0 0 4 0 0 5 5 5
61135 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 1 1 1
61136 +0 0 0 0 0 0 1 1 1 4 4 4 4 4 4 4 4 4
61137 +5 5 5 5 5 5 4 3 3 4 0 0 4 0 0 6 6 6
61138 +37 38 37 131 129 131 137 136 137 37 38 37 0 0 0 4 0 0
61139 +4 5 5 43 61 72 90 154 193 172 205 220 146 190 211 136 185 209
61140 +90 154 193 28 67 93 13 20 25 43 61 72 71 116 144 44 81 103
61141 +2 5 5 7 11 13 59 113 148 101 161 196 90 154 193 28 67 93
61142 +13 20 25 6 10 14 0 0 0 13 16 17 60 73 81 137 136 137
61143 +166 165 166 158 157 158 156 155 156 154 153 154 167 166 167 174 174 174
61144 +60 73 81 4 0 0
61145 +4 4 4 4 4 4 0 0 0 3 3 3 60 74 84 174 174 174
61146 +174 174 174 167 166 167 163 162 163 155 154 155 157 156 157 155 154 155
61147 +156 155 156 163 162 163 167 166 167 158 157 158 125 124 125 37 38 37
61148 +4 3 3 4 0 0 4 0 0 6 6 6 6 6 6 5 5 5
61149 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 2 3 3
61150 +10 13 16 7 11 13 1 0 0 0 0 0 2 2 1 4 4 4
61151 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 4 0 0
61152 +4 0 0 7 11 13 13 16 17 4 0 0 3 3 3 34 47 55
61153 +80 127 157 146 190 211 172 205 220 136 185 209 136 185 209 136 185 209
61154 +28 67 93 22 40 52 55 98 126 55 98 126 21 29 34 7 11 13
61155 +50 82 103 101 161 196 101 161 196 35 83 115 13 20 25 2 2 1
61156 +1 1 2 1 1 2 37 51 59 131 129 131 174 174 174 174 174 174
61157 +167 166 167 163 162 163 163 162 163 167 166 167 174 174 174 125 124 125
61158 +16 19 21 4 0 0
61159 +4 4 4 4 0 0 4 0 0 60 74 84 174 174 174 174 174 174
61160 +158 157 158 155 154 155 155 154 155 156 155 156 155 154 155 158 157 158
61161 +167 166 167 165 164 165 131 129 131 60 73 81 13 16 17 4 0 0
61162 +4 0 0 4 3 3 6 6 6 4 3 3 5 5 5 4 4 4
61163 +4 4 4 3 2 2 0 0 0 0 0 0 7 11 13 45 69 86
61164 +80 127 157 71 116 144 43 61 72 7 11 13 0 0 0 1 1 1
61165 +4 3 3 4 4 4 4 4 4 4 4 4 6 6 6 5 5 5
61166 +3 2 2 4 0 0 1 0 0 21 29 34 59 113 148 136 185 209
61167 +146 190 211 136 185 209 136 185 209 136 185 209 136 185 209 136 185 209
61168 +68 124 159 44 81 103 22 40 52 13 16 17 43 61 72 90 154 193
61169 +136 185 209 59 113 148 21 29 34 3 4 3 1 1 1 0 0 0
61170 +24 26 27 125 124 125 163 162 163 174 174 174 166 165 166 165 164 165
61171 +163 162 163 125 124 125 125 124 125 125 124 125 125 124 125 26 28 28
61172 +4 0 0 4 3 3
61173 +3 3 3 0 0 0 24 26 27 153 152 153 177 184 187 158 157 158
61174 +156 155 156 156 155 156 155 154 155 155 154 155 165 164 165 174 174 174
61175 +155 154 155 60 74 84 26 28 28 4 0 0 4 0 0 3 1 0
61176 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 3 3
61177 +2 0 0 0 0 0 0 0 0 32 43 50 72 125 159 101 161 196
61178 +136 185 209 101 161 196 101 161 196 79 117 143 32 43 50 0 0 0
61179 +0 0 0 2 2 2 4 4 4 4 4 4 3 3 3 1 0 0
61180 +0 0 0 4 5 5 49 76 92 101 161 196 146 190 211 146 190 211
61181 +136 185 209 136 185 209 136 185 209 136 185 209 136 185 209 90 154 193
61182 +28 67 93 13 16 17 37 51 59 80 127 157 136 185 209 90 154 193
61183 +22 40 52 6 9 11 3 4 3 2 2 1 16 19 21 60 73 81
61184 +137 136 137 163 162 163 158 157 158 166 165 166 167 166 167 153 152 153
61185 +60 74 84 37 38 37 6 6 6 13 16 17 4 0 0 1 0 0
61186 +3 2 2 4 4 4
61187 +3 2 2 4 0 0 37 38 37 137 136 137 167 166 167 158 157 158
61188 +157 156 157 154 153 154 157 156 157 167 166 167 174 174 174 125 124 125
61189 +37 38 37 4 0 0 4 0 0 4 0 0 4 3 3 4 4 4
61190 +4 4 4 4 4 4 5 5 5 5 5 5 1 1 1 0 0 0
61191 +0 0 0 16 21 25 55 98 126 90 154 193 136 185 209 101 161 196
61192 +101 161 196 101 161 196 136 185 209 136 185 209 101 161 196 55 98 126
61193 +14 17 19 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
61194 +22 40 52 90 154 193 146 190 211 146 190 211 136 185 209 136 185 209
61195 +136 185 209 136 185 209 136 185 209 101 161 196 35 83 115 7 11 13
61196 +17 23 27 59 113 148 136 185 209 101 161 196 34 86 122 7 12 15
61197 +2 5 5 3 4 3 6 6 6 60 73 81 131 129 131 163 162 163
61198 +166 165 166 174 174 174 174 174 174 163 162 163 125 124 125 41 54 63
61199 +13 16 17 4 0 0 4 0 0 4 0 0 1 0 0 2 2 2
61200 +4 4 4 4 4 4
61201 +1 1 1 2 1 0 43 57 68 137 136 137 153 152 153 153 152 153
61202 +163 162 163 156 155 156 165 164 165 167 166 167 60 74 84 6 6 6
61203 +4 0 0 4 0 0 5 5 5 4 4 4 4 4 4 4 4 4
61204 +4 5 5 6 6 6 4 3 3 0 0 0 0 0 0 11 15 18
61205 +40 71 93 100 139 164 101 161 196 101 161 196 101 161 196 101 161 196
61206 +101 161 196 101 161 196 101 161 196 101 161 196 136 185 209 136 185 209
61207 +101 161 196 45 69 86 6 6 6 0 0 0 17 23 27 55 98 126
61208 +136 185 209 146 190 211 136 185 209 136 185 209 136 185 209 136 185 209
61209 +136 185 209 136 185 209 90 154 193 22 40 52 7 11 13 50 82 103
61210 +136 185 209 136 185 209 53 118 160 22 40 52 7 11 13 2 5 5
61211 +3 4 3 37 38 37 125 124 125 157 156 157 166 165 166 167 166 167
61212 +174 174 174 174 174 174 137 136 137 60 73 81 4 0 0 4 0 0
61213 +4 0 0 4 0 0 5 5 5 3 3 3 3 3 3 4 4 4
61214 +4 4 4 4 4 4
61215 +4 0 0 4 0 0 41 54 63 137 136 137 125 124 125 131 129 131
61216 +155 154 155 167 166 167 174 174 174 60 74 84 6 6 6 4 0 0
61217 +4 3 3 6 6 6 4 4 4 4 4 4 4 4 4 5 5 5
61218 +4 4 4 1 1 1 0 0 0 3 6 7 41 65 82 72 125 159
61219 +101 161 196 101 161 196 101 161 196 90 154 193 90 154 193 101 161 196
61220 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 136 185 209
61221 +136 185 209 136 185 209 80 127 157 55 98 126 101 161 196 146 190 211
61222 +136 185 209 136 185 209 136 185 209 101 161 196 136 185 209 101 161 196
61223 +136 185 209 101 161 196 35 83 115 22 30 35 101 161 196 172 205 220
61224 +90 154 193 28 67 93 7 11 13 2 5 5 3 4 3 13 16 17
61225 +85 115 134 167 166 167 174 174 174 174 174 174 174 174 174 174 174 174
61226 +167 166 167 60 74 84 13 16 17 4 0 0 4 0 0 4 3 3
61227 +6 6 6 5 5 5 4 4 4 5 5 5 4 4 4 5 5 5
61228 +5 5 5 5 5 5
61229 +1 1 1 4 0 0 41 54 63 137 136 137 137 136 137 125 124 125
61230 +131 129 131 167 166 167 157 156 157 37 38 37 6 6 6 4 0 0
61231 +6 6 6 5 5 5 4 4 4 4 4 4 4 5 5 2 2 1
61232 +0 0 0 0 0 0 26 37 45 58 111 146 101 161 196 101 161 196
61233 +101 161 196 90 154 193 90 154 193 90 154 193 101 161 196 101 161 196
61234 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61235 +101 161 196 136 185 209 136 185 209 136 185 209 146 190 211 136 185 209
61236 +136 185 209 101 161 196 136 185 209 136 185 209 101 161 196 136 185 209
61237 +101 161 196 136 185 209 136 185 209 136 185 209 136 185 209 16 89 141
61238 +7 11 13 2 5 5 2 5 5 13 16 17 60 73 81 154 154 154
61239 +174 174 174 174 174 174 174 174 174 174 174 174 163 162 163 125 124 125
61240 +24 26 27 4 0 0 4 0 0 4 0 0 5 5 5 5 5 5
61241 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
61242 +5 5 5 4 4 4
61243 +4 0 0 6 6 6 37 38 37 137 136 137 137 136 137 131 129 131
61244 +131 129 131 153 152 153 131 129 131 26 28 28 4 0 0 4 3 3
61245 +6 6 6 4 4 4 4 4 4 4 4 4 0 0 0 0 0 0
61246 +13 20 25 51 88 114 90 154 193 101 161 196 101 161 196 90 154 193
61247 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
61248 +101 161 196 101 161 196 101 161 196 101 161 196 136 185 209 101 161 196
61249 +101 161 196 136 185 209 101 161 196 136 185 209 136 185 209 101 161 196
61250 +136 185 209 101 161 196 136 185 209 101 161 196 101 161 196 101 161 196
61251 +136 185 209 136 185 209 136 185 209 37 112 160 21 29 34 5 7 8
61252 +2 5 5 13 16 17 43 57 68 131 129 131 174 174 174 174 174 174
61253 +174 174 174 167 166 167 157 156 157 125 124 125 37 38 37 4 0 0
61254 +4 0 0 4 0 0 5 5 5 5 5 5 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
61257 +1 1 1 4 0 0 41 54 63 153 152 153 137 136 137 137 136 137
61258 +137 136 137 153 152 153 125 124 125 24 26 27 4 0 0 3 2 2
61259 +4 4 4 4 4 4 4 3 3 4 0 0 3 6 7 43 61 72
61260 +64 123 161 101 161 196 90 154 193 90 154 193 90 154 193 90 154 193
61261 +90 154 193 90 154 193 90 154 193 90 154 193 101 161 196 90 154 193
61262 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61263 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61264 +136 185 209 101 161 196 101 161 196 136 185 209 136 185 209 101 161 196
61265 +101 161 196 90 154 193 28 67 93 13 16 17 7 11 13 3 6 7
61266 +37 51 59 125 124 125 163 162 163 174 174 174 167 166 167 166 165 166
61267 +167 166 167 131 129 131 60 73 81 4 0 0 4 0 0 4 0 0
61268 +3 3 3 5 5 5 6 6 6 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
61271 +4 0 0 4 0 0 41 54 63 137 136 137 153 152 153 137 136 137
61272 +153 152 153 157 156 157 125 124 125 24 26 27 0 0 0 2 2 2
61273 +4 4 4 4 4 4 2 0 0 0 0 0 28 67 93 90 154 193
61274 +90 154 193 90 154 193 90 154 193 90 154 193 64 123 161 90 154 193
61275 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
61276 +90 154 193 101 161 196 101 161 196 101 161 196 90 154 193 136 185 209
61277 +101 161 196 101 161 196 136 185 209 101 161 196 136 185 209 101 161 196
61278 +101 161 196 101 161 196 136 185 209 101 161 196 101 161 196 90 154 193
61279 +35 83 115 13 16 17 3 6 7 2 5 5 13 16 17 60 74 84
61280 +154 154 154 166 165 166 165 164 165 158 157 158 163 162 163 157 156 157
61281 +60 74 84 13 16 17 4 0 0 4 0 0 3 2 2 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
61285 +1 1 1 4 0 0 41 54 63 157 156 157 155 154 155 137 136 137
61286 +153 152 153 158 157 158 137 136 137 26 28 28 2 0 0 2 2 2
61287 +4 4 4 4 4 4 1 0 0 6 10 14 34 86 122 90 154 193
61288 +64 123 161 90 154 193 64 123 161 90 154 193 90 154 193 90 154 193
61289 +64 123 161 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
61290 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61291 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 101 161 196
61292 +136 185 209 101 161 196 136 185 209 90 154 193 26 108 161 22 40 52
61293 +13 16 17 5 7 8 2 5 5 2 5 5 37 38 37 165 164 165
61294 +174 174 174 163 162 163 154 154 154 165 164 165 167 166 167 60 73 81
61295 +6 6 6 4 0 0 4 0 0 4 4 4 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
61299 +4 0 0 6 6 6 41 54 63 156 155 156 158 157 158 153 152 153
61300 +156 155 156 165 164 165 137 136 137 26 28 28 0 0 0 2 2 2
61301 +4 4 5 4 4 4 2 0 0 7 12 15 31 96 139 64 123 161
61302 +90 154 193 64 123 161 90 154 193 90 154 193 64 123 161 90 154 193
61303 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
61304 +90 154 193 90 154 193 90 154 193 101 161 196 101 161 196 101 161 196
61305 +101 161 196 101 161 196 101 161 196 101 161 196 101 161 196 136 185 209
61306 +101 161 196 136 185 209 26 108 161 22 40 52 7 11 13 5 7 8
61307 +2 5 5 2 5 5 2 5 5 2 2 1 37 38 37 158 157 158
61308 +174 174 174 154 154 154 156 155 156 167 166 167 165 164 165 37 38 37
61309 +4 0 0 4 3 3 5 5 5 4 4 4 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
61313 +3 1 0 4 0 0 60 73 81 157 156 157 163 162 163 153 152 153
61314 +158 157 158 167 166 167 137 136 137 26 28 28 2 0 0 2 2 2
61315 +4 5 5 4 4 4 4 0 0 7 12 15 24 86 132 26 108 161
61316 +37 112 160 64 123 161 90 154 193 64 123 161 90 154 193 90 154 193
61317 +90 154 193 90 154 193 90 154 193 90 154 193 90 154 193 90 154 193
61318 +90 154 193 101 161 196 90 154 193 101 161 196 101 161 196 101 161 196
61319 +101 161 196 101 161 196 101 161 196 136 185 209 101 161 196 136 185 209
61320 +90 154 193 35 83 115 13 16 17 13 16 17 7 11 13 3 6 7
61321 +5 7 8 6 6 6 3 4 3 2 2 1 30 32 34 154 154 154
61322 +167 166 167 154 154 154 154 154 154 174 174 174 165 164 165 37 38 37
61323 +6 6 6 4 0 0 6 6 6 4 4 4 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
61327 +4 0 0 4 0 0 41 54 63 163 162 163 166 165 166 154 154 154
61328 +163 162 163 174 174 174 137 136 137 26 28 28 0 0 0 2 2 2
61329 +4 5 5 4 4 5 1 1 2 6 10 14 28 67 93 18 97 151
61330 +18 97 151 18 97 151 26 108 161 37 112 160 37 112 160 90 154 193
61331 +64 123 161 90 154 193 90 154 193 90 154 193 90 154 193 101 161 196
61332 +90 154 193 101 161 196 101 161 196 90 154 193 101 161 196 101 161 196
61333 +101 161 196 101 161 196 101 161 196 136 185 209 90 154 193 16 89 141
61334 +13 20 25 7 11 13 5 7 8 5 7 8 2 5 5 4 5 5
61335 +3 4 3 4 5 5 3 4 3 0 0 0 37 38 37 158 157 158
61336 +174 174 174 158 157 158 158 157 158 167 166 167 174 174 174 41 54 63
61337 +4 0 0 3 2 2 5 5 5 4 4 4 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 4 4 4
61341 +1 1 1 4 0 0 60 73 81 165 164 165 174 174 174 158 157 158
61342 +167 166 167 174 174 174 153 152 153 26 28 28 2 0 0 2 2 2
61343 +4 5 5 4 4 4 4 0 0 7 12 15 10 87 144 10 87 144
61344 +18 97 151 18 97 151 18 97 151 26 108 161 26 108 161 26 108 161
61345 +26 108 161 37 112 160 53 118 160 90 154 193 90 154 193 90 154 193
61346 +90 154 193 90 154 193 101 161 196 101 161 196 101 161 196 101 161 196
61347 +101 161 196 136 185 209 90 154 193 26 108 161 22 40 52 13 16 17
61348 +7 11 13 3 6 7 5 7 8 5 7 8 2 5 5 4 5 5
61349 +4 5 5 6 6 6 3 4 3 0 0 0 30 32 34 158 157 158
61350 +174 174 174 156 155 156 155 154 155 165 164 165 154 153 154 37 38 37
61351 +4 0 0 4 3 3 5 5 5 4 4 4 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 +4 4 4 4 4 4
61355 +4 0 0 4 0 0 60 73 81 167 166 167 174 174 174 163 162 163
61356 +174 174 174 174 174 174 153 152 153 26 28 28 0 0 0 3 3 3
61357 +5 5 5 4 4 4 1 1 2 7 12 15 28 67 93 18 97 151
61358 +18 97 151 18 97 151 18 97 151 18 97 151 18 97 151 26 108 161
61359 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61360 +90 154 193 26 108 161 90 154 193 90 154 193 90 154 193 101 161 196
61361 +101 161 196 26 108 161 22 40 52 13 16 17 7 11 13 2 5 5
61362 +2 5 5 6 6 6 2 5 5 4 5 5 4 5 5 4 5 5
61363 +3 4 3 5 5 5 3 4 3 2 0 0 30 32 34 137 136 137
61364 +153 152 153 137 136 137 131 129 131 137 136 137 131 129 131 37 38 37
61365 +4 0 0 4 3 3 5 5 5 4 4 4 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 4 4 4 4 4 4
61368 +4 4 4 4 4 4
61369 +1 1 1 4 0 0 60 73 81 167 166 167 174 174 174 166 165 166
61370 +174 174 174 177 184 187 153 152 153 30 32 34 1 0 0 3 3 3
61371 +5 5 5 4 3 3 4 0 0 7 12 15 10 87 144 10 87 144
61372 +18 97 151 18 97 151 18 97 151 26 108 161 26 108 161 26 108 161
61373 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61374 +26 108 161 26 108 161 26 108 161 90 154 193 90 154 193 26 108 161
61375 +35 83 115 13 16 17 7 11 13 5 7 8 3 6 7 5 7 8
61376 +2 5 5 6 6 6 4 5 5 4 5 5 3 4 3 4 5 5
61377 +3 4 3 6 6 6 3 4 3 0 0 0 26 28 28 125 124 125
61378 +131 129 131 125 124 125 125 124 125 131 129 131 131 129 131 37 38 37
61379 +4 0 0 3 3 3 5 5 5 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61382 +4 4 4 4 4 4
61383 +3 1 0 4 0 0 60 73 81 174 174 174 177 184 187 167 166 167
61384 +174 174 174 177 184 187 153 152 153 30 32 34 0 0 0 3 3 3
61385 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 18 97 151
61386 +18 97 151 18 97 151 18 97 151 18 97 151 18 97 151 26 108 161
61387 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61388 +26 108 161 90 154 193 26 108 161 26 108 161 24 86 132 13 20 25
61389 +7 11 13 13 20 25 22 40 52 5 7 8 3 4 3 3 4 3
61390 +4 5 5 3 4 3 4 5 5 3 4 3 4 5 5 3 4 3
61391 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 125 124 125
61392 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61393 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61394 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61395 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61396 +4 4 4 4 4 4
61397 +1 1 1 4 0 0 60 73 81 174 174 174 177 184 187 174 174 174
61398 +174 174 174 190 197 201 157 156 157 30 32 34 1 0 0 3 3 3
61399 +5 5 5 4 3 3 4 0 0 7 12 15 10 87 144 10 87 144
61400 +18 97 151 19 95 150 19 95 150 18 97 151 18 97 151 26 108 161
61401 +18 97 151 26 108 161 26 108 161 26 108 161 26 108 161 90 154 193
61402 +26 108 161 26 108 161 26 108 161 22 40 52 2 5 5 3 4 3
61403 +28 67 93 37 112 160 34 86 122 2 5 5 3 4 3 3 4 3
61404 +3 4 3 3 4 3 3 4 3 2 2 1 3 4 3 4 4 4
61405 +4 5 5 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61406 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61407 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61408 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61409 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61410 +4 4 4 4 4 4
61411 +4 0 0 4 0 0 60 73 81 174 174 174 177 184 187 174 174 174
61412 +174 174 174 190 197 201 158 157 158 30 32 34 0 0 0 2 2 2
61413 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 18 97 151
61414 +10 87 144 19 95 150 19 95 150 18 97 151 18 97 151 18 97 151
61415 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61416 +18 97 151 22 40 52 2 5 5 2 2 1 22 40 52 26 108 161
61417 +90 154 193 37 112 160 22 40 52 3 4 3 13 20 25 22 30 35
61418 +3 6 7 1 1 1 2 2 2 6 9 11 5 5 5 4 3 3
61419 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
61420 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61421 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61422 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61423 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61424 +4 4 4 4 4 4
61425 +1 1 1 4 0 0 60 73 81 177 184 187 193 200 203 174 174 174
61426 +177 184 187 193 200 203 163 162 163 30 32 34 4 0 0 2 2 2
61427 +5 5 5 4 3 3 4 0 0 6 10 14 24 86 132 10 87 144
61428 +10 87 144 10 87 144 19 95 150 19 95 150 19 95 150 18 97 151
61429 +26 108 161 26 108 161 26 108 161 90 154 193 26 108 161 28 67 93
61430 +6 10 14 2 5 5 13 20 25 24 86 132 37 112 160 90 154 193
61431 +10 87 144 7 12 15 2 5 5 28 67 93 37 112 160 28 67 93
61432 +2 2 1 7 12 15 35 83 115 28 67 93 3 6 7 1 0 0
61433 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61434 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61435 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61436 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61437 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61438 +4 4 4 4 4 4
61439 +4 0 0 4 0 0 60 73 81 174 174 174 190 197 201 174 174 174
61440 +177 184 187 193 200 203 163 162 163 30 32 34 0 0 0 2 2 2
61441 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
61442 +10 87 144 16 89 141 19 95 150 10 87 144 26 108 161 26 108 161
61443 +26 108 161 26 108 161 26 108 161 28 67 93 6 10 14 1 1 2
61444 +7 12 15 28 67 93 26 108 161 16 89 141 24 86 132 21 29 34
61445 +3 4 3 21 29 34 37 112 160 37 112 160 27 99 146 21 29 34
61446 +21 29 34 26 108 161 90 154 193 35 83 115 1 1 2 2 0 0
61447 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 125 124 125
61448 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61449 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61450 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61451 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61452 +4 4 4 4 4 4
61453 +3 1 0 4 0 0 60 73 81 193 200 203 193 200 203 174 174 174
61454 +190 197 201 193 200 203 165 164 165 37 38 37 4 0 0 2 2 2
61455 +5 5 5 4 3 3 4 0 0 6 10 14 24 86 132 10 87 144
61456 +10 87 144 10 87 144 16 89 141 18 97 151 18 97 151 10 87 144
61457 +24 86 132 24 86 132 13 20 25 4 5 7 4 5 7 22 40 52
61458 +18 97 151 37 112 160 26 108 161 7 12 15 1 1 1 0 0 0
61459 +28 67 93 37 112 160 26 108 161 28 67 93 22 40 52 28 67 93
61460 +26 108 161 90 154 193 26 108 161 10 87 144 0 0 0 2 0 0
61461 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61462 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61463 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61464 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61465 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61466 +4 4 4 4 4 4
61467 +4 0 0 6 6 6 60 73 81 174 174 174 193 200 203 174 174 174
61468 +190 197 201 193 200 203 165 164 165 30 32 34 0 0 0 2 2 2
61469 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
61470 +10 87 144 10 87 144 10 87 144 18 97 151 28 67 93 6 10 14
61471 +0 0 0 1 1 2 4 5 7 13 20 25 16 89 141 26 108 161
61472 +26 108 161 26 108 161 24 86 132 6 9 11 2 3 3 22 40 52
61473 +37 112 160 16 89 141 22 40 52 28 67 93 26 108 161 26 108 161
61474 +90 154 193 26 108 161 26 108 161 28 67 93 1 1 1 4 0 0
61475 +4 4 4 5 5 5 3 3 3 4 0 0 26 28 28 124 126 130
61476 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61477 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61478 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61479 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61480 +4 4 4 4 4 4
61481 +4 0 0 4 0 0 60 73 81 193 200 203 193 200 203 174 174 174
61482 +193 200 203 193 200 203 167 166 167 37 38 37 4 0 0 2 2 2
61483 +5 5 5 4 4 4 4 0 0 6 10 14 28 67 93 10 87 144
61484 +10 87 144 10 87 144 18 97 151 10 87 144 13 20 25 4 5 7
61485 +1 1 2 1 1 1 22 40 52 26 108 161 26 108 161 26 108 161
61486 +26 108 161 26 108 161 26 108 161 24 86 132 22 40 52 22 40 52
61487 +22 40 52 22 40 52 10 87 144 26 108 161 26 108 161 26 108 161
61488 +26 108 161 26 108 161 90 154 193 10 87 144 0 0 0 4 0 0
61489 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61490 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61491 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61492 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61493 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61494 +4 4 4 4 4 4
61495 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
61496 +190 197 201 205 212 215 167 166 167 30 32 34 0 0 0 2 2 2
61497 +5 5 5 4 4 4 1 1 2 6 10 14 28 67 93 10 87 144
61498 +10 87 144 10 87 144 10 87 144 10 87 144 22 40 52 1 1 2
61499 +2 0 0 1 1 2 24 86 132 26 108 161 26 108 161 26 108 161
61500 +26 108 161 19 95 150 16 89 141 10 87 144 22 40 52 22 40 52
61501 +10 87 144 26 108 161 37 112 160 26 108 161 26 108 161 26 108 161
61502 +26 108 161 26 108 161 26 108 161 28 67 93 2 0 0 3 1 0
61503 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
61504 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61505 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61506 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61507 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61508 +4 4 4 4 4 4
61509 +4 0 0 4 0 0 60 73 81 220 221 221 190 197 201 174 174 174
61510 +193 200 203 193 200 203 174 174 174 37 38 37 4 0 0 2 2 2
61511 +5 5 5 4 4 4 3 2 2 1 1 2 13 20 25 10 87 144
61512 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 13 20 25
61513 +13 20 25 22 40 52 10 87 144 18 97 151 18 97 151 26 108 161
61514 +10 87 144 13 20 25 6 10 14 21 29 34 24 86 132 18 97 151
61515 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61516 +26 108 161 90 154 193 18 97 151 13 20 25 0 0 0 4 3 3
61517 +4 4 4 5 5 5 3 3 3 0 0 0 26 28 28 131 129 131
61518 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61519 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61520 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61521 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61522 +4 4 4 4 4 4
61523 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
61524 +190 197 201 220 221 221 167 166 167 30 32 34 1 0 0 2 2 2
61525 +5 5 5 4 4 4 4 4 5 2 5 5 4 5 7 13 20 25
61526 +28 67 93 10 87 144 10 87 144 10 87 144 10 87 144 10 87 144
61527 +10 87 144 10 87 144 18 97 151 10 87 144 18 97 151 18 97 151
61528 +28 67 93 2 3 3 0 0 0 28 67 93 26 108 161 26 108 161
61529 +26 108 161 26 108 161 26 108 161 26 108 161 26 108 161 26 108 161
61530 +26 108 161 10 87 144 13 20 25 1 1 2 3 2 2 4 4 4
61531 +4 4 4 5 5 5 3 3 3 2 0 0 26 28 28 131 129 131
61532 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61533 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61534 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61535 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61536 +4 4 4 4 4 4
61537 +4 0 0 4 0 0 60 73 81 220 221 221 190 197 201 174 174 174
61538 +193 200 203 193 200 203 174 174 174 26 28 28 4 0 0 4 3 3
61539 +5 5 5 4 4 4 4 4 4 4 4 5 1 1 2 2 5 5
61540 +4 5 7 22 40 52 10 87 144 10 87 144 18 97 151 10 87 144
61541 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 18 97 151
61542 +10 87 144 28 67 93 22 40 52 10 87 144 26 108 161 18 97 151
61543 +18 97 151 18 97 151 26 108 161 26 108 161 26 108 161 26 108 161
61544 +22 40 52 1 1 2 0 0 0 2 3 3 4 4 4 4 4 4
61545 +4 4 4 5 5 5 4 4 4 0 0 0 26 28 28 131 129 131
61546 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61547 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61548 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61549 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61550 +4 4 4 4 4 4
61551 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
61552 +190 197 201 220 221 221 190 197 201 41 54 63 4 0 0 2 2 2
61553 +6 6 6 4 4 4 4 4 4 4 4 5 4 4 5 3 3 3
61554 +1 1 2 1 1 2 6 10 14 22 40 52 10 87 144 18 97 151
61555 +18 97 151 10 87 144 10 87 144 10 87 144 18 97 151 10 87 144
61556 +10 87 144 18 97 151 26 108 161 18 97 151 18 97 151 10 87 144
61557 +26 108 161 26 108 161 26 108 161 10 87 144 28 67 93 6 10 14
61558 +1 1 2 1 1 2 4 3 3 4 4 5 4 4 4 4 4 4
61559 +5 5 5 5 5 5 1 1 1 4 0 0 37 51 59 137 136 137
61560 +137 136 137 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61561 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61562 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61563 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61564 +4 4 4 4 4 4
61565 +4 0 0 4 0 0 60 73 81 220 221 221 193 200 203 174 174 174
61566 +193 200 203 193 200 203 220 221 221 137 136 137 13 16 17 4 0 0
61567 +2 2 2 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5
61568 +4 4 5 4 3 3 1 1 2 4 5 7 13 20 25 28 67 93
61569 +10 87 144 10 87 144 10 87 144 10 87 144 10 87 144 10 87 144
61570 +10 87 144 18 97 151 18 97 151 10 87 144 18 97 151 26 108 161
61571 +26 108 161 18 97 151 28 67 93 6 10 14 0 0 0 0 0 0
61572 +2 3 3 4 5 5 4 4 5 4 4 4 4 4 4 5 5 5
61573 +3 3 3 1 1 1 0 0 0 16 19 21 125 124 125 137 136 137
61574 +131 129 131 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61575 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61576 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61577 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61578 +4 4 4 4 4 4
61579 +4 0 0 6 6 6 60 73 81 174 174 174 220 221 221 174 174 174
61580 +193 200 203 190 197 201 220 221 221 220 221 221 153 152 153 30 32 34
61581 +0 0 0 0 0 0 2 2 2 4 4 4 4 4 4 4 4 4
61582 +4 4 4 4 5 5 4 5 7 1 1 2 1 1 2 4 5 7
61583 +13 20 25 28 67 93 10 87 144 18 97 151 10 87 144 10 87 144
61584 +10 87 144 10 87 144 10 87 144 18 97 151 26 108 161 18 97 151
61585 +28 67 93 7 12 15 0 0 0 0 0 0 2 2 1 4 4 4
61586 +4 5 5 4 5 5 4 4 4 4 4 4 3 3 3 0 0 0
61587 +0 0 0 0 0 0 37 38 37 125 124 125 158 157 158 131 129 131
61588 +125 124 125 125 124 125 125 124 125 137 136 137 131 129 131 37 38 37
61589 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61590 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61591 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61592 +4 4 4 4 4 4
61593 +4 3 3 4 0 0 41 54 63 193 200 203 220 221 221 174 174 174
61594 +193 200 203 193 200 203 193 200 203 220 221 221 244 246 246 193 200 203
61595 +120 125 127 5 5 5 1 0 0 0 0 0 1 1 1 4 4 4
61596 +4 4 4 4 4 4 4 5 5 4 5 5 4 4 5 1 1 2
61597 +4 5 7 4 5 7 22 40 52 10 87 144 10 87 144 10 87 144
61598 +10 87 144 10 87 144 18 97 151 10 87 144 10 87 144 13 20 25
61599 +4 5 7 2 3 3 1 1 2 4 4 4 4 5 5 4 4 4
61600 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 1 1 2
61601 +24 26 27 60 74 84 153 152 153 163 162 163 137 136 137 125 124 125
61602 +125 124 125 125 124 125 125 124 125 137 136 137 125 124 125 26 28 28
61603 +0 0 0 3 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61604 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61605 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61606 +4 4 4 4 4 4
61607 +4 0 0 6 6 6 26 28 28 156 155 156 220 221 221 220 221 221
61608 +174 174 174 193 200 203 193 200 203 193 200 203 205 212 215 220 221 221
61609 +220 221 221 167 166 167 60 73 81 7 11 13 0 0 0 0 0 0
61610 +3 3 3 4 4 4 4 4 4 4 4 4 4 4 5 4 4 5
61611 +4 4 5 1 1 2 1 1 2 4 5 7 22 40 52 10 87 144
61612 +10 87 144 10 87 144 10 87 144 22 40 52 4 5 7 1 1 2
61613 +1 1 2 4 4 5 4 4 4 4 4 4 4 4 4 4 4 4
61614 +5 5 5 2 2 2 0 0 0 4 0 0 16 19 21 60 73 81
61615 +137 136 137 167 166 167 158 157 158 137 136 137 131 129 131 131 129 131
61616 +125 124 125 125 124 125 131 129 131 155 154 155 60 74 84 5 7 8
61617 +0 0 0 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61618 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61619 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61620 +4 4 4 4 4 4
61621 +5 5 5 4 0 0 4 0 0 60 73 81 193 200 203 220 221 221
61622 +193 200 203 193 200 203 193 200 203 193 200 203 205 212 215 220 221 221
61623 +220 221 221 220 221 221 220 221 221 137 136 137 43 57 68 6 6 6
61624 +4 0 0 1 1 1 4 4 4 4 4 4 4 4 4 4 4 4
61625 +4 4 5 4 4 5 3 2 2 1 1 2 2 5 5 13 20 25
61626 +22 40 52 22 40 52 13 20 25 2 3 3 1 1 2 3 3 3
61627 +4 5 7 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61628 +1 1 1 0 0 0 2 3 3 41 54 63 131 129 131 166 165 166
61629 +166 165 166 155 154 155 153 152 153 137 136 137 137 136 137 125 124 125
61630 +125 124 125 137 136 137 137 136 137 125 124 125 37 38 37 4 3 3
61631 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
61632 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61633 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61634 +4 4 4 4 4 4
61635 +4 3 3 6 6 6 6 6 6 13 16 17 60 73 81 167 166 167
61636 +220 221 221 220 221 221 220 221 221 193 200 203 193 200 203 193 200 203
61637 +205 212 215 220 221 221 220 221 221 244 246 246 205 212 215 125 124 125
61638 +24 26 27 0 0 0 0 0 0 2 2 2 5 5 5 5 5 5
61639 +4 4 4 4 4 4 4 4 4 4 4 5 1 1 2 4 5 7
61640 +4 5 7 4 5 7 1 1 2 3 2 2 4 4 5 4 4 4
61641 +4 4 4 4 4 4 5 5 5 4 4 4 0 0 0 0 0 0
61642 +2 0 0 26 28 28 125 124 125 174 174 174 174 174 174 166 165 166
61643 +156 155 156 153 152 153 137 136 137 137 136 137 131 129 131 137 136 137
61644 +137 136 137 137 136 137 60 74 84 30 32 34 4 0 0 4 0 0
61645 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61646 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61647 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61648 +4 4 4 4 4 4
61649 +5 5 5 6 6 6 4 0 0 4 0 0 6 6 6 26 28 28
61650 +125 124 125 174 174 174 220 221 221 220 221 221 220 221 221 193 200 203
61651 +205 212 215 220 221 221 205 212 215 220 221 221 220 221 221 244 246 246
61652 +193 200 203 60 74 84 13 16 17 4 0 0 0 0 0 3 3 3
61653 +5 5 5 5 5 5 4 4 4 4 4 4 4 4 5 3 3 3
61654 +1 1 2 3 3 3 4 4 5 4 4 5 4 4 4 4 4 4
61655 +5 5 5 5 5 5 2 2 2 0 0 0 0 0 0 13 16 17
61656 +60 74 84 174 174 174 193 200 203 174 174 174 167 166 167 163 162 163
61657 +153 152 153 153 152 153 137 136 137 137 136 137 153 152 153 137 136 137
61658 +125 124 125 41 54 63 24 26 27 4 0 0 4 0 0 5 5 5
61659 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61660 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61661 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61662 +4 4 4 4 4 4
61663 +4 3 3 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
61664 +6 6 6 37 38 37 131 129 131 220 221 221 220 221 221 220 221 221
61665 +193 200 203 193 200 203 220 221 221 205 212 215 220 221 221 244 246 246
61666 +244 246 246 244 246 246 174 174 174 41 54 63 0 0 0 0 0 0
61667 +0 0 0 4 4 4 5 5 5 5 5 5 4 4 4 4 4 5
61668 +4 4 5 4 4 5 4 4 4 4 4 4 6 6 6 6 6 6
61669 +3 3 3 0 0 0 2 0 0 13 16 17 60 73 81 156 155 156
61670 +220 221 221 193 200 203 174 174 174 165 164 165 163 162 163 154 153 154
61671 +153 152 153 153 152 153 158 157 158 163 162 163 137 136 137 60 73 81
61672 +13 16 17 4 0 0 4 0 0 4 3 3 4 4 4 4 4 4
61673 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61674 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61675 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61676 +4 4 4 4 4 4
61677 +5 5 5 4 3 3 4 3 3 6 6 6 6 6 6 6 6 6
61678 +6 6 6 6 6 6 6 6 6 37 38 37 167 166 167 244 246 246
61679 +244 246 246 220 221 221 205 212 215 205 212 215 220 221 221 193 200 203
61680 +220 221 221 244 246 246 244 246 246 244 246 246 137 136 137 37 38 37
61681 +3 2 2 0 0 0 1 1 1 5 5 5 5 5 5 4 4 4
61682 +4 4 4 4 4 4 4 4 4 5 5 5 4 4 4 1 1 1
61683 +0 0 0 5 5 5 43 57 68 153 152 153 193 200 203 220 221 221
61684 +177 184 187 174 174 174 167 166 167 166 165 166 158 157 158 157 156 157
61685 +158 157 158 166 165 166 156 155 156 85 115 134 13 16 17 4 0 0
61686 +4 0 0 4 0 0 5 5 5 5 5 5 4 4 4 4 4 4
61687 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61688 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61689 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61690 +4 4 4 4 4 4
61691 +5 5 5 4 3 3 6 6 6 6 6 6 4 0 0 6 6 6
61692 +6 6 6 6 6 6 6 6 6 6 6 6 13 16 17 60 73 81
61693 +177 184 187 220 221 221 220 221 221 220 221 221 205 212 215 220 221 221
61694 +220 221 221 205 212 215 220 221 221 244 246 246 244 246 246 205 212 215
61695 +125 124 125 30 32 34 0 0 0 0 0 0 2 2 2 5 5 5
61696 +4 4 4 4 4 4 4 4 4 1 1 1 0 0 0 1 0 0
61697 +37 38 37 131 129 131 205 212 215 220 221 221 193 200 203 174 174 174
61698 +174 174 174 174 174 174 167 166 167 165 164 165 166 165 166 167 166 167
61699 +158 157 158 125 124 125 37 38 37 4 0 0 4 0 0 4 0 0
61700 +4 3 3 5 5 5 4 4 4 4 4 4 4 4 4 4 4 4
61701 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61702 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61703 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61704 +4 4 4 4 4 4
61705 +4 4 4 5 5 5 4 3 3 4 3 3 6 6 6 6 6 6
61706 +4 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
61707 +26 28 28 125 124 125 205 212 215 220 221 221 220 221 221 220 221 221
61708 +205 212 215 220 221 221 205 212 215 220 221 221 220 221 221 244 246 246
61709 +244 246 246 190 197 201 60 74 84 16 19 21 4 0 0 0 0 0
61710 +0 0 0 0 0 0 0 0 0 0 0 0 16 19 21 120 125 127
61711 +177 184 187 220 221 221 205 212 215 177 184 187 174 174 174 177 184 187
61712 +174 174 174 174 174 174 167 166 167 174 174 174 166 165 166 137 136 137
61713 +60 73 81 13 16 17 4 0 0 4 0 0 4 3 3 6 6 6
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 4 4 4 4 4 4 4 4 4 4 4 4
61716 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61717 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61718 +4 4 4 4 4 4
61719 +5 5 5 4 3 3 5 5 5 4 3 3 6 6 6 4 0 0
61720 +6 6 6 6 6 6 4 0 0 6 6 6 4 0 0 6 6 6
61721 +6 6 6 6 6 6 37 38 37 137 136 137 193 200 203 220 221 221
61722 +220 221 221 205 212 215 220 221 221 205 212 215 205 212 215 220 221 221
61723 +220 221 221 220 221 221 244 246 246 166 165 166 43 57 68 2 2 2
61724 +0 0 0 4 0 0 16 19 21 60 73 81 157 156 157 202 210 214
61725 +220 221 221 193 200 203 177 184 187 177 184 187 177 184 187 174 174 174
61726 +174 174 174 174 174 174 174 174 174 157 156 157 60 74 84 24 26 27
61727 +4 0 0 4 0 0 4 0 0 6 6 6 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 4 4 4 4 4 4 4 4 4 4 4 4
61730 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61731 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61732 +4 4 4 4 4 4
61733 +4 4 4 4 4 4 5 5 5 4 3 3 5 5 5 6 6 6
61734 +6 6 6 4 0 0 6 6 6 6 6 6 6 6 6 4 0 0
61735 +4 0 0 4 0 0 6 6 6 24 26 27 60 73 81 167 166 167
61736 +220 221 221 220 221 221 220 221 221 205 212 215 205 212 215 205 212 215
61737 +205 212 215 220 221 221 220 221 221 220 221 221 205 212 215 137 136 137
61738 +60 74 84 125 124 125 137 136 137 190 197 201 220 221 221 193 200 203
61739 +177 184 187 177 184 187 177 184 187 174 174 174 174 174 174 177 184 187
61740 +190 197 201 174 174 174 125 124 125 37 38 37 6 6 6 4 0 0
61741 +4 0 0 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 4 4 4 4 4 4 4 4 4 4 4 4
61744 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61745 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61746 +4 4 4 4 4 4
61747 +4 4 4 4 4 4 5 5 5 5 5 5 4 3 3 6 6 6
61748 +4 0 0 6 6 6 6 6 6 6 6 6 4 0 0 6 6 6
61749 +6 6 6 6 6 6 4 0 0 4 0 0 6 6 6 6 6 6
61750 +125 124 125 193 200 203 244 246 246 220 221 221 205 212 215 205 212 215
61751 +205 212 215 193 200 203 205 212 215 205 212 215 220 221 221 220 221 221
61752 +193 200 203 193 200 203 205 212 215 193 200 203 193 200 203 177 184 187
61753 +190 197 201 190 197 201 174 174 174 190 197 201 193 200 203 190 197 201
61754 +153 152 153 60 73 81 4 0 0 4 0 0 4 0 0 3 2 2
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 4 4 4 4 4 4 4 4 4 4 4 4
61758 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61759 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61760 +4 4 4 4 4 4
61761 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 3 3
61762 +6 6 6 4 3 3 4 3 3 4 3 3 6 6 6 6 6 6
61763 +4 0 0 6 6 6 6 6 6 6 6 6 4 0 0 4 0 0
61764 +4 0 0 26 28 28 131 129 131 220 221 221 244 246 246 220 221 221
61765 +205 212 215 193 200 203 205 212 215 193 200 203 193 200 203 205 212 215
61766 +220 221 221 193 200 203 193 200 203 193 200 203 190 197 201 174 174 174
61767 +174 174 174 190 197 201 193 200 203 193 200 203 167 166 167 125 124 125
61768 +6 6 6 4 0 0 4 0 0 4 3 3 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 4 4 4 4 4 4 4 4 4 4 4 4
61772 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61773 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61774 +4 4 4 4 4 4
61775 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
61776 +5 5 5 4 3 3 5 5 5 6 6 6 4 3 3 5 5 5
61777 +6 6 6 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
61778 +4 0 0 4 0 0 6 6 6 41 54 63 158 157 158 220 221 221
61779 +220 221 221 220 221 221 193 200 203 193 200 203 193 200 203 190 197 201
61780 +190 197 201 190 197 201 190 197 201 190 197 201 174 174 174 193 200 203
61781 +193 200 203 220 221 221 174 174 174 125 124 125 37 38 37 4 0 0
61782 +4 0 0 4 3 3 6 6 6 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 4 4 4 4 4 4 4 4 4 4 4 4
61786 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61787 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61788 +4 4 4 4 4 4
61789 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61790 +4 4 4 5 5 5 4 3 3 4 3 3 4 3 3 5 5 5
61791 +4 3 3 6 6 6 5 5 5 4 3 3 6 6 6 6 6 6
61792 +6 6 6 6 6 6 4 0 0 4 0 0 13 16 17 60 73 81
61793 +174 174 174 220 221 221 220 221 221 205 212 215 190 197 201 174 174 174
61794 +193 200 203 174 174 174 190 197 201 174 174 174 193 200 203 220 221 221
61795 +193 200 203 131 129 131 37 38 37 6 6 6 4 0 0 4 0 0
61796 +6 6 6 6 6 6 4 3 3 5 5 5 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 4 4 4 4 4 4 4 4 4 4 4 4
61800 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61801 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61802 +4 4 4 4 4 4
61803 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61804 +4 4 4 4 4 4 4 4 4 5 5 5 5 5 5 5 5 5
61805 +5 5 5 4 3 3 4 3 3 5 5 5 4 3 3 4 3 3
61806 +5 5 5 6 6 6 6 6 6 4 0 0 6 6 6 6 6 6
61807 +6 6 6 125 124 125 174 174 174 220 221 221 220 221 221 193 200 203
61808 +193 200 203 193 200 203 193 200 203 193 200 203 220 221 221 158 157 158
61809 +60 73 81 6 6 6 4 0 0 4 0 0 5 5 5 6 6 6
61810 +5 5 5 5 5 5 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61814 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61815 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61816 +4 4 4 4 4 4
61817 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61818 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61819 +4 4 4 5 5 5 5 5 5 4 3 3 5 5 5 4 3 3
61820 +5 5 5 5 5 5 6 6 6 6 6 6 4 0 0 4 0 0
61821 +4 0 0 4 0 0 26 28 28 125 124 125 174 174 174 193 200 203
61822 +193 200 203 174 174 174 193 200 203 167 166 167 125 124 125 6 6 6
61823 +6 6 6 6 6 6 4 0 0 6 6 6 6 6 6 5 5 5
61824 +4 3 3 5 5 5 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61828 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61829 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61830 +4 4 4 4 4 4
61831 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61832 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61833 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
61834 +4 3 3 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
61835 +6 6 6 4 0 0 4 0 0 6 6 6 37 38 37 125 124 125
61836 +153 152 153 131 129 131 125 124 125 37 38 37 6 6 6 6 6 6
61837 +6 6 6 4 0 0 6 6 6 6 6 6 4 3 3 5 5 5
61838 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61842 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61843 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61844 +4 4 4 4 4 4
61845 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61846 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61847 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61848 +4 4 4 5 5 5 5 5 5 4 3 3 5 5 5 4 3 3
61849 +6 6 6 6 6 6 4 0 0 4 0 0 6 6 6 6 6 6
61850 +24 26 27 24 26 27 6 6 6 6 6 6 6 6 6 4 0 0
61851 +6 6 6 6 6 6 4 0 0 6 6 6 5 5 5 4 3 3
61852 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61856 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61857 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61858 +4 4 4 4 4 4
61859 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61860 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61861 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61862 +4 4 4 4 4 4 5 5 5 4 3 3 5 5 5 6 6 6
61863 +4 0 0 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6
61864 +6 6 6 6 6 6 6 6 6 4 0 0 6 6 6 6 6 6
61865 +4 0 0 6 6 6 6 6 6 4 3 3 5 5 5 4 4 4
61866 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61870 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61871 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61872 +4 4 4 4 4 4
61873 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61874 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61875 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61876 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 5 5 5
61877 +5 5 5 5 5 5 4 0 0 6 6 6 4 0 0 6 6 6
61878 +6 6 6 6 6 6 6 6 6 4 0 0 6 6 6 4 0 0
61879 +6 6 6 4 3 3 5 5 5 4 3 3 5 5 5 4 4 4
61880 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61884 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61885 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61886 +4 4 4 4 4 4
61887 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61888 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61889 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61890 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 5 5 5
61891 +4 3 3 6 6 6 4 3 3 6 6 6 6 6 6 6 6 6
61892 +4 0 0 6 6 6 4 0 0 6 6 6 6 6 6 6 6 6
61893 +6 6 6 4 3 3 5 5 5 4 4 4 4 4 4 4 4 4
61894 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61898 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61899 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61900 +4 4 4 4 4 4
61901 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61902 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61903 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61904 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61905 +4 4 4 5 5 5 4 3 3 5 5 5 4 0 0 6 6 6
61906 +6 6 6 4 0 0 6 6 6 6 6 6 4 0 0 6 6 6
61907 +4 3 3 5 5 5 5 5 5 4 4 4 4 4 4 4 4 4
61908 +4 4 4 4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61912 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61913 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61914 +4 4 4 4 4 4
61915 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61916 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61917 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61918 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61919 +4 4 4 5 5 5 4 3 3 5 5 5 6 6 6 4 3 3
61920 +4 3 3 6 6 6 6 6 6 4 3 3 6 6 6 4 3 3
61921 +5 5 5 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61922 +4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61926 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61927 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61928 +4 4 4 4 4 4
61929 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61930 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61931 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61932 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61933 +4 4 4 4 4 4 4 4 4 5 5 5 4 3 3 6 6 6
61934 +5 5 5 4 3 3 4 3 3 4 3 3 5 5 5 5 5 5
61935 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61936 +4 4 4 4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61940 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61941 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61942 +4 4 4 4 4 4
61943 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61944 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61945 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61946 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61947 +4 4 4 4 4 4 4 4 4 4 4 4 5 5 5 4 3 3
61948 +5 5 5 4 3 3 5 5 5 5 5 5 4 4 4 4 4 4
61949 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61950 +4 4 4 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 4 4 4 4 4 4 4 4 4 4 4 4
61954 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61955 +4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4
61956 +4 4 4 4 4 4
61957 diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
61958 index 96093ae..b9eed29 100644
61959 --- a/drivers/xen/events/events_base.c
61960 +++ b/drivers/xen/events/events_base.c
61961 @@ -1568,7 +1568,7 @@ void xen_irq_resume(void)
61962 restore_pirqs();
61963 }
61964
61965 -static struct irq_chip xen_dynamic_chip __read_mostly = {
61966 +static struct irq_chip xen_dynamic_chip = {
61967 .name = "xen-dyn",
61968
61969 .irq_disable = disable_dynirq,
61970 @@ -1582,7 +1582,7 @@ static struct irq_chip xen_dynamic_chip __read_mostly = {
61971 .irq_retrigger = retrigger_dynirq,
61972 };
61973
61974 -static struct irq_chip xen_pirq_chip __read_mostly = {
61975 +static struct irq_chip xen_pirq_chip = {
61976 .name = "xen-pirq",
61977
61978 .irq_startup = startup_pirq,
61979 @@ -1602,7 +1602,7 @@ static struct irq_chip xen_pirq_chip __read_mostly = {
61980 .irq_retrigger = retrigger_dynirq,
61981 };
61982
61983 -static struct irq_chip xen_percpu_chip __read_mostly = {
61984 +static struct irq_chip xen_percpu_chip = {
61985 .name = "xen-percpu",
61986
61987 .irq_disable = disable_dynirq,
61988 diff --git a/drivers/xen/evtchn.c b/drivers/xen/evtchn.c
61989 index 00f40f0..e3c0b15 100644
61990 --- a/drivers/xen/evtchn.c
61991 +++ b/drivers/xen/evtchn.c
61992 @@ -201,8 +201,8 @@ static ssize_t evtchn_read(struct file *file, char __user *buf,
61993
61994 /* Byte lengths of two chunks. Chunk split (if any) is at ring wrap. */
61995 if (((c ^ p) & EVTCHN_RING_SIZE) != 0) {
61996 - bytes1 = (EVTCHN_RING_SIZE - EVTCHN_RING_MASK(c)) *
61997 - sizeof(evtchn_port_t);
61998 + bytes1 = EVTCHN_RING_SIZE - EVTCHN_RING_MASK(c);
61999 + bytes1 *= sizeof(evtchn_port_t);
62000 bytes2 = EVTCHN_RING_MASK(p) * sizeof(evtchn_port_t);
62001 } else {
62002 bytes1 = (p - c) * sizeof(evtchn_port_t);
62003 diff --git a/drivers/xen/xenfs/xenstored.c b/drivers/xen/xenfs/xenstored.c
62004 index fef20db..d28b1ab 100644
62005 --- a/drivers/xen/xenfs/xenstored.c
62006 +++ b/drivers/xen/xenfs/xenstored.c
62007 @@ -24,7 +24,12 @@ static int xsd_release(struct inode *inode, struct file *file)
62008 static int xsd_kva_open(struct inode *inode, struct file *file)
62009 {
62010 file->private_data = (void *)kasprintf(GFP_KERNEL, "0x%p",
62011 +#ifdef CONFIG_GRKERNSEC_HIDESYM
62012 + NULL);
62013 +#else
62014 xen_store_interface);
62015 +#endif
62016 +
62017 if (!file->private_data)
62018 return -ENOMEM;
62019 return 0;
62020 diff --git a/firmware/Makefile b/firmware/Makefile
62021 index e297e1b..aeb0982 100644
62022 --- a/firmware/Makefile
62023 +++ b/firmware/Makefile
62024 @@ -35,9 +35,11 @@ fw-shipped-$(CONFIG_BNX2X) += bnx2x/bnx2x-e1-6.2.9.0.fw \
62025 bnx2x/bnx2x-e1h-6.2.9.0.fw \
62026 bnx2x/bnx2x-e2-6.2.9.0.fw
62027 fw-shipped-$(CONFIG_BNX2) += bnx2/bnx2-mips-09-6.2.1a.fw \
62028 + bnx2/bnx2-mips-09-6.2.1b.fw \
62029 bnx2/bnx2-rv2p-09-6.0.17.fw \
62030 bnx2/bnx2-rv2p-09ax-6.0.17.fw \
62031 bnx2/bnx2-mips-06-6.2.1.fw \
62032 + bnx2/bnx2-mips-06-6.2.3.fw \
62033 bnx2/bnx2-rv2p-06-6.0.15.fw
62034 fw-shipped-$(CONFIG_CASSINI) += sun/cassini.bin
62035 fw-shipped-$(CONFIG_CHELSIO_T3) += cxgb3/t3b_psram-1.1.0.bin \
62036 diff --git a/firmware/WHENCE b/firmware/WHENCE
62037 index 0c4d96d..b17700f 100644
62038 --- a/firmware/WHENCE
62039 +++ b/firmware/WHENCE
62040 @@ -653,21 +653,23 @@ Found in hex form in kernel source.
62041 Driver: BNX2 - Broadcom NetXtremeII
62042
62043 File: bnx2/bnx2-mips-06-6.2.1.fw
62044 +File: bnx2/bnx2-mips-06-6.2.3.fw
62045 File: bnx2/bnx2-rv2p-06-6.0.15.fw
62046 File: bnx2/bnx2-mips-09-6.2.1a.fw
62047 +File: bnx2/bnx2-mips-09-6.2.1b.fw
62048 File: bnx2/bnx2-rv2p-09-6.0.17.fw
62049 File: bnx2/bnx2-rv2p-09ax-6.0.17.fw
62050
62051 Licence:
62052 -
62053 - This file contains firmware data derived from proprietary unpublished
62054 - source code, Copyright (c) 2004 - 2010 Broadcom Corporation.
62055 -
62056 - Permission is hereby granted for the distribution of this firmware data
62057 - in hexadecimal or equivalent format, provided this copyright notice is
62058 - accompanying it.
62059 -
62060 -Found in hex form in kernel source.
62061 +
62062 + This file contains firmware data derived from proprietary unpublished
62063 + source code, Copyright (c) 2004 - 2010 Broadcom Corporation.
62064 +
62065 + Permission is hereby granted for the distribution of this firmware data
62066 + in hexadecimal or equivalent format, provided this copyright notice is
62067 + accompanying it.
62068 +
62069 +Found in hex form in kernel source.
62070
62071 --------------------------------------------------------------------------
62072
62073 diff --git a/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex b/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex
62074 new file mode 100644
62075 index 0000000..da72bf1
62076 --- /dev/null
62077 +++ b/firmware/bnx2/bnx2-mips-06-6.2.3.fw.ihex
62078 @@ -0,0 +1,5804 @@
62079 +:10000000080001180800000000004A68000000C84D
62080 +:1000100000000000000000000000000008004A6826
62081 +:100020000000001400004B30080000A00800000091
62082 +:100030000000569400004B44080058200000008443
62083 +:100040000000A1D808005694000001580000A25CEE
62084 +:100050000800321008000000000072F00000A3B495
62085 +:10006000000000000000000000000000080072F026
62086 +:1000700000000024000116A40800049008000400F9
62087 +:10008000000017D4000116C80000000000000000A6
62088 +:100090000000000000000000000000000000000060
62089 +:1000A000080000A80800000000003BFC00012E9C96
62090 +:1000B0000000000000000000000000000000000040
62091 +:1000C00000000000000000000A00004600000000E0
62092 +:1000D000000000000000000D636F6D362E322E33DD
62093 +:1000E0000000000006020302000000000000000300
62094 +:1000F000000000C800000032000000030000000003
62095 +:1001000000000000000000000000000000000000EF
62096 +:1001100000000010000001360000EA600000000549
62097 +:1001200000000000000000000000000000000008C7
62098 +:1001300000000000000000000000000000000000BF
62099 +:1001400000000000000000000000000000000000AF
62100 +:10015000000000000000000000000000000000009F
62101 +:10016000000000020000000000000000000000008D
62102 +:10017000000000000000000000000000000000007F
62103 +:10018000000000000000000000000010000000005F
62104 +:10019000000000000000000000000000000000005F
62105 +:1001A000000000000000000000000000000000004F
62106 +:1001B000000000000000000000000000000000003F
62107 +:1001C000000000000000000000000000000000002F
62108 +:1001D000000000000000000000000000000000001F
62109 +:1001E0000000000010000003000000000000000DEF
62110 +:1001F0000000000D3C02080024424AA03C03080015
62111 +:1002000024634B9CAC4000000043202B1480FFFD76
62112 +:10021000244200043C1D080037BD7FFC03A0F021F0
62113 +:100220003C100800261001183C1C0800279C4AA01E
62114 +:100230000E000168000000000000000D27470100CB
62115 +:1002400090E3000B2402001A94E5000814620028D1
62116 +:10025000000020218CE200003C0308008C63004475
62117 +:1002600094E60014000211C20002104030A4000203
62118 +:10027000005A10212463000130A50004A446008028
62119 +:100280003C010800AC23004410A000190004202BFE
62120 +:100290008F4202B804410008240400013C02080017
62121 +:1002A0008C420060244200013C010800AC22006046
62122 +:1002B00003E00008008010218CE2002094E3001687
62123 +:1002C00000002021AF4202808CE20004A743028498
62124 +:1002D000AF4202883C021000AF4202B83C02080064
62125 +:1002E0008C42005C244200013C010800AC22005C0E
62126 +:1002F00003E00008008010212747010090E3000B75
62127 +:100300002402000394E50008146200280000202164
62128 +:100310008CE200003C0308008C63004494E6001467
62129 +:10032000000211C20002104030A40002005A102145
62130 +:100330002463000130A50004A44600803C010800AD
62131 +:10034000AC23004410A000190004202B8F4202B8F7
62132 +:1003500004410008240400013C0208008C420060B3
62133 +:10036000244200013C010800AC22006003E00008C8
62134 +:10037000008010218CE2002094E300160000202170
62135 +:10038000AF4202808CE20004A7430284AF4202889D
62136 +:100390003C021000AF4202B83C0208008C42005CF4
62137 +:1003A000244200013C010800AC22005C03E000088C
62138 +:1003B000008010218F4301002402010050620003DD
62139 +:1003C000000311C20000000D000311C20002104022
62140 +:1003D000005A1021A440008003E000080000102112
62141 +:1003E0009362000003E00008AF80000003E0000813
62142 +:1003F0000000102103E00008000010212402010089
62143 +:1004000014820008000000003C0208008C4200FC3E
62144 +:10041000244200013C010800AC2200FC0A0000DD7F
62145 +:1004200030A200203C0208008C42008424420001DB
62146 +:100430003C010800AC22008430A2002010400008DB
62147 +:1004400030A300103C0208008C4201082442000145
62148 +:100450003C010800AC22010803E000080000000095
62149 +:1004600010600008000000003C0208008C420104FB
62150 +:10047000244200013C010800AC22010403E0000812
62151 +:10048000000000003C0208008C42010024420001F0
62152 +:100490003C010800AC22010003E00008000000005D
62153 +:1004A00027BDFFE8AFBF0010274401009483000878
62154 +:1004B000306200041040001B306600028F4202B818
62155 +:1004C00004410008240500013C0208008C42006041
62156 +:1004D000244200013C010800AC2200600A0001290E
62157 +:1004E0008FBF00108C82002094830016000028210A
62158 +:1004F000AF4202808C820004A7430284AF4202888C
62159 +:100500003C021000AF4202B83C0208008C42005C82
62160 +:10051000244200013C010800AC22005C0A000129D1
62161 +:100520008FBF001010C00006006028218F4401001A
62162 +:100530000E0000CD000000000A0001282405000183
62163 +:100540008F8200088F4301045043000700002821D8
62164 +:100550008F4401000E0000CD000000008F42010416
62165 +:10056000AF820008000028218FBF001000A01021DA
62166 +:1005700003E0000827BD001827BDFFE8AFBF001447
62167 +:10058000AFB00010974201083043700024022000F1
62168 +:100590001062000B286220011440002F000010217F
62169 +:1005A00024024000106200250000000024026000C8
62170 +:1005B00010620026000010210A0001658FBF0014A0
62171 +:1005C00027500100920200091040001A2403000184
62172 +:1005D0003C0208008C420020104000160000182148
62173 +:1005E0000E00049300000000960300083C0608007B
62174 +:1005F00094C64B5E8E0400188F8200209605000C76
62175 +:1006000000031C0000661825AC440000AC45000443
62176 +:1006100024040001AC400008AC40000CAC400010C9
62177 +:10062000AC400014AC4000180E0004B8AC43001CF1
62178 +:10063000000018210A000164006010210E0003254B
62179 +:10064000000000000A000164000010210E000EE905
62180 +:1006500000000000000010218FBF00148FB00010B8
62181 +:1006600003E0000827BD001827BDFFE0AFB2001867
62182 +:100670003C036010AFBF001CAFB10014AFB000105E
62183 +:100680008C6450002402FF7F3C1A800000822024EA
62184 +:100690003484380C24020037AC6450003C1208004B
62185 +:1006A00026524AD8AF42000824020C80AF420024F0
62186 +:1006B0003C1B80083C06080024C60324024010218D
62187 +:1006C0002404001D2484FFFFAC4600000481FFFDCC
62188 +:1006D000244200043C020800244204B03C0108000B
62189 +:1006E000AC224AE03C020800244202303C010800EF
62190 +:1006F000AC224AE43C020800244201743C03080096
62191 +:100700002463032C3C040800248403D83C0508001F
62192 +:1007100024A538F03C010800AC224B403C02080004
62193 +:10072000244202EC3C010800AC264B243C010800AA
62194 +:10073000AC254B343C010800AC234B3C3C01080089
62195 +:10074000AC244B443C010800AC224B483C0108005F
62196 +:10075000AC234ADC3C010800AC204AE83C0108001C
62197 +:10076000AC204AEC3C010800AC204AF03C010800F7
62198 +:10077000AC204AF43C010800AC204AF83C010800D7
62199 +:10078000AC204AFC3C010800AC204B003C010800B6
62200 +:10079000AC244B043C010800AC204B083C01080091
62201 +:1007A000AC204B0C3C010800AC204B103C01080075
62202 +:1007B000AC204B143C010800AC204B183C01080055
62203 +:1007C000AC264B1C3C010800AC264B203C01080029
62204 +:1007D000AC254B303C010800AC234B380E000623FF
62205 +:1007E000000000003C028000344200708C42000097
62206 +:1007F000AF8200143C0308008C6300208F82000449
62207 +:10080000104300043C0280000E00045BAF83000430
62208 +:100810003C028000344600703C0308008C6300A05A
62209 +:100820003C0208008C4200A4104300048F84001492
62210 +:100830003C010800AC2300A4A743009E8CCA000022
62211 +:100840003C0308008C6300BC3C0208008C4200B8EA
62212 +:100850000144202300641821000040210064202B63
62213 +:1008600000481021004410213C010800AC2300BCCA
62214 +:100870003C010800AC2200B88F5100003222000772
62215 +:100880001040FFDCAF8A00148CC600003C05080055
62216 +:100890008CA500BC3C0408008C8400B800CA30233E
62217 +:1008A00000A628210000102100A6302B0082202164
62218 +:1008B00000862021322700013C010800AC2500BC45
62219 +:1008C0003C010800AC2400B810E0001F32220002F6
62220 +:1008D0008F420100AF4200208F420104AF4200A8C6
62221 +:1008E0009342010B0E0000C6305000FF2E02001E86
62222 +:1008F00054400004001010800E0000C90A000213CA
62223 +:1009000000000000005210218C4200000040F80955
62224 +:1009100000000000104000053C0240008F4301042D
62225 +:100920003C026020AC4300143C024000AF4201385E
62226 +:100930003C0208008C420034244200013C010800C3
62227 +:10094000AC220034322200021040000E3222000499
62228 +:100950008F4201400E0000C6AF4200200E000295FB
62229 +:10096000000000003C024000AF4201783C02080059
62230 +:100970008C420038244200013C010800AC220038BF
62231 +:10098000322200041040FF983C0280008F42018018
62232 +:100990000E0000C6AF4200208F43018024020F00EA
62233 +:1009A00014620005000000008F420188A742009CED
62234 +:1009B0000A0002483C0240009362000024030050F9
62235 +:1009C000304200FF144300083C0240000E00027B4E
62236 +:1009D00000000000544000043C0240000E000D7571
62237 +:1009E000000000003C024000AF4201B83C02080099
62238 +:1009F0008C42003C244200013C010800AC22003C37
62239 +:100A00000A0001C83C0280003C0290003442000110
62240 +:100A100000822025AF4400208F4200200440FFFECA
62241 +:100A20000000000003E00008000000003C0280001D
62242 +:100A3000344200010082202503E00008AF4400207A
62243 +:100A400027BDFFE0AFB10014AFB0001000808821D7
62244 +:100A5000AFBF00180E00025030B000FF9362007D5F
62245 +:100A60000220202102028025A370007D8F70007477
62246 +:100A70003C0280000E000259020280241600000988
62247 +:100A80008FBF00188F4201F80440FFFE24020002CD
62248 +:100A9000AF5101C0A34201C43C021000AF4201F8B3
62249 +:100AA0008FBF00188FB100148FB0001003E0000852
62250 +:100AB00027BD002027BDFFE8AFBF0010974201848B
62251 +:100AC0008F440188304202001040000500002821B8
62252 +:100AD0000E000FAA000000000A00028D240500018C
62253 +:100AE0003C02FF0004800005008218243C02040040
62254 +:100AF000506200019362003E240500018FBF001088
62255 +:100B000000A0102103E0000827BD0018A360002208
62256 +:100B10008F4401400A00025E2405000127BDFFE862
62257 +:100B2000AFBF0014AFB0001093620000304400FF6C
62258 +:100B300038830020388200300003182B0002102B6D
62259 +:100B40000062182410600003240200501482008008
62260 +:100B50008FBF001493620005304200011040007CFA
62261 +:100B60008FBF0014934201482443FFFF2C6200050D
62262 +:100B7000104000788FB00010000310803C03080084
62263 +:100B800024634A68004310218C42000000400008A2
62264 +:100B9000000000000E0002508F4401408F70000CD6
62265 +:100BA0008F4201441602000224020001AF62000CD1
62266 +:100BB0000E0002598F4401408F420144145000043A
62267 +:100BC0008FBF00148FB000100A000F2027BD00183F
62268 +:100BD0008F62000C0A0003040000000097620010FE
62269 +:100BE0008F4301443042FFFF1462001A00000000EE
62270 +:100BF00024020001A76200108F4202380443001053
62271 +:100C00008F4201403C02003F3446F0003C0560004A
62272 +:100C10003C04FFC08CA22BBC0044182400461024C6
62273 +:100C20000002130200031D82106200390000000060
62274 +:100C30008F4202380440FFF7000000008F4201405D
62275 +:100C4000AF4202003C021000AF4202380A00032209
62276 +:100C50008FBF0014976200100A0003040000000018
62277 +:100C60000E0002508F440140976200128F430144EE
62278 +:100C70003050FFFF1603000224020001A762001299
62279 +:100C80000E0002598F4401408F42014416020004B5
62280 +:100C90008FBF00148FB000100A00029127BD00180A
62281 +:100CA000976200120A00030400000000976200141B
62282 +:100CB0008F4301443042FFFF14620006240200010A
62283 +:100CC0008FBF00148FB00010A76200140A00124AF0
62284 +:100CD00027BD0018976200141440001D8FBF001438
62285 +:100CE0000A00031C00000000976200168F430144B5
62286 +:100CF0003042FFFF1462000B240200018FBF00147A
62287 +:100D00008FB00010A76200160A000B1227BD001852
62288 +:100D10009742007824420004A76200100A000322D0
62289 +:100D20008FBF001497620016240300013042FFFFBA
62290 +:100D3000144300078FBF00143C0208008C4200706F
62291 +:100D4000244200013C010800AC2200708FBF001457
62292 +:100D50008FB0001003E0000827BD001827BDFFE892
62293 +:100D6000AFBF0014AFB000108F50010093620000BD
62294 +:100D700093430109304400FF2402001F106200A5C4
62295 +:100D80002862002010400018240200382862000A5F
62296 +:100D90001040000C2402000B286200081040002CB8
62297 +:100DA00000000000046000E52862000214400028F2
62298 +:100DB00024020006106200268FBF00140A00041FE0
62299 +:100DC0008FB000101062005E2862000B144000DC3F
62300 +:100DD0008FBF00142402000E106200738FB0001049
62301 +:100DE0000A00041F00000000106200C028620039E1
62302 +:100DF0001040000A2402008024020036106200CA5B
62303 +:100E000028620037104000B424020035106200C18F
62304 +:100E10008FBF00140A00041F8FB000101062002B57
62305 +:100E20002862008110400006240200C82402003914
62306 +:100E3000106200B48FBF00140A00041F8FB00010AE
62307 +:100E4000106200998FBF00140A00041F8FB00010B9
62308 +:100E50003C0208008C420020104000B98FBF0014F3
62309 +:100E60000E000493000000008F4201008F830020D9
62310 +:100E70009745010C97460108AC6200008F420104BF
62311 +:100E80003C04080094844B5E00052C00AC62000416
62312 +:100E90008F4201180006340000C43025AC620008FF
62313 +:100EA0008F42011C24040001AC62000C9342010A31
62314 +:100EB00000A22825AC650010AC600014AC600018DE
62315 +:100EC000AC66001C0A0003F58FBF00143C0208004A
62316 +:100ED0008C4200201040009A8FBF00140E00049333
62317 +:100EE00000000000974401083C03080094634B5E37
62318 +:100EF0009745010C000422029746010E8F820020C4
62319 +:100F0000000426000083202500052C003C030080FF
62320 +:100F100000A6282500832025AC400000AC4000043A
62321 +:100F2000AC400008AC40000CAC450010AC400014D4
62322 +:100F3000AC400018AC44001C0A0003F42404000177
62323 +:100F40009742010C14400015000000009362000558
62324 +:100F50003042001014400011000000000E0002504A
62325 +:100F6000020020219362000502002021344200107B
62326 +:100F70000E000259A36200059362000024030020C2
62327 +:100F8000304200FF1043006D020020218FBF00148B
62328 +:100F90008FB000100A000FC027BD00180000000D20
62329 +:100FA0000A00041E8FBF00143C0208008C4200207F
62330 +:100FB000104000638FBF00140E0004930000000077
62331 +:100FC0008F4201048F8300209744010C3C050800E8
62332 +:100FD00094A54B5EAC6200009762002C00042400D4
62333 +:100FE0003042FFFF008220253C02400E00A228254F
62334 +:100FF000AC640004AC600008AC60000CAC60001095
62335 +:10100000AC600014AC600018AC65001C0A0003F46E
62336 +:10101000240400010E00025002002021A7600008F5
62337 +:101020000E00025902002021020020210E00025E63
62338 +:10103000240500013C0208008C42002010400040C2
62339 +:101040008FBF00140E000493000000009742010CB3
62340 +:101050008F8300203C05080094A54B5E000214001D
62341 +:10106000AC700000AC620004AC6000088F64004CFF
62342 +:101070003C02401F00A22825AC64000C8F62005087
62343 +:1010800024040001AC6200108F620054AC620014B2
62344 +:10109000AC600018AC65001C8FBF00148FB000104E
62345 +:1010A0000A0004B827BD0018240200205082002541
62346 +:1010B0008FB000100E000F0A020020211040002007
62347 +:1010C0008FBF0014020020218FB0001000002821E3
62348 +:1010D0000A00025E27BD0018020020218FBF001405
62349 +:1010E0008FB000100A00058027BD00189745010C3D
62350 +:1010F000020020218FBF00148FB000100A0005A04D
62351 +:1011000027BD0018020020218FB000100A0005C57D
62352 +:1011100027BD00189345010D020020218FB000105B
62353 +:101120000A00060F27BD0018020020218FBF0014FF
62354 +:101130008FB000100A0005EB27BD00188FBF001408
62355 +:101140008FB0001003E0000827BD00188F4202781E
62356 +:101150000440FFFE2402000234840080AF440240B9
62357 +:10116000A34202443C02100003E00008AF420278B0
62358 +:101170003C04080094844B6A3C0208008C424B7487
62359 +:101180003083FFFF000318C000431021AF42003C32
62360 +:101190003C0208008C424B70AF4200383C020050C9
62361 +:1011A00034420008AF4200300000000000000000A0
62362 +:1011B000000000008F420000304200201040FFFD80
62363 +:1011C000000000008F4204003C010800AC224B608C
62364 +:1011D0008F4204043C010800AC224B643C02002016
62365 +:1011E000AF420030000000003C02080094424B680F
62366 +:1011F0003C03080094634B6C3C05080094A54B6EBF
62367 +:1012000024840001004310213083FFFF3C010800CB
62368 +:10121000A4224B683C010800A4244B6A1465000317
62369 +:10122000000000003C010800A4204B6A03E0000815
62370 +:10123000000000003C05000A27BDFFE80345282107
62371 +:101240003C04080024844B50AFBF00100E00051D65
62372 +:101250002406000A3C02080094424B523C0308005A
62373 +:1012600094634B6E3042000F244200030043180485
62374 +:1012700024027FFF0043102B10400002AF83001CAC
62375 +:101280000000000D0E00042A000000003C020800CF
62376 +:1012900094424B5A8FBF001027BD001803E000088E
62377 +:1012A000A74200A23C02000A034210219443000618
62378 +:1012B0003C02080094424B5A3C010800A4234B56C0
62379 +:1012C000004310238F83001C00021400000214034B
62380 +:1012D0000043102B03E000083842000127BDFFE85F
62381 +:1012E000AFBF00103C02000A0342102194420006E6
62382 +:1012F0003C010800A4224B560E00047700000000B9
62383 +:101300005440FFF93C02000A8FBF001003E00008C0
62384 +:1013100027BD001827BDFFE8AFBF00100E000477FF
62385 +:101320000000000010400003000000000E000485D3
62386 +:10133000000000003C0208008C424B608FBF001090
62387 +:1013400027430400AF4200383C0208008C424B6443
62388 +:1013500027BD0018AF830020AF42003C3C020005CF
62389 +:10136000AF42003003E00008AF8000188F82001801
62390 +:101370003C0300060002114000431025AF4200303C
62391 +:101380000000000000000000000000008F4200008C
62392 +:10139000304200101040FFFD27420400AF820020C1
62393 +:1013A00003E00008AF8000183C0608008CC64B64C0
62394 +:1013B0008F8500188F8300203C02080094424B5A0E
62395 +:1013C00027BDFFE024A50001246300202442000182
62396 +:1013D00024C70020AFB10014AFB00010AFBF001899
62397 +:1013E000AF850018AF8300203C010800A4224B5AAF
62398 +:1013F000309000FF3C010800AC274B6404C100089A
62399 +:101400000000882104E00006000000003C02080003
62400 +:101410008C424B60244200013C010800AC224B602E
62401 +:101420003C02080094424B5A3C03080094634B680A
62402 +:101430000010202B004310262C42000100441025F0
62403 +:10144000144000048F830018240200101462000F5F
62404 +:10145000000000000E0004A9241100013C03080054
62405 +:1014600094634B5A3C02080094424B681462000398
62406 +:10147000000000000E00042A000000001600000317
62407 +:10148000000000000E000493000000003C03080070
62408 +:1014900094634B5E3C02080094424B5C2463000161
62409 +:1014A0003064FFFF3C010800A4234B5E148200035C
62410 +:1014B000000000003C010800A4204B5E1200000662
62411 +:1014C000000000003C02080094424B5AA74200A2D0
62412 +:1014D0000A00050B022010210E0004770000000016
62413 +:1014E00010400004022010210E00048500000000BE
62414 +:1014F000022010218FBF00188FB100148FB0001090
62415 +:1015000003E0000827BD00203084FFFF30A5FFFF67
62416 +:101510000000182110800007000000003082000148
62417 +:101520001040000200042042006518210A00051343
62418 +:101530000005284003E000080060102110C00006EC
62419 +:1015400024C6FFFF8CA2000024A50004AC8200008A
62420 +:101550000A00051D2484000403E0000800000000C8
62421 +:1015600010A0000824A3FFFFAC86000000000000CC
62422 +:10157000000000002402FFFF2463FFFF1462FFFA53
62423 +:101580002484000403E0000800000000240200019D
62424 +:10159000AF62000CA7620010A7620012A7620014DD
62425 +:1015A00003E00008A76200163082007F034210218A
62426 +:1015B0003C08000E004818213C0208008C42002024
62427 +:1015C00027BDFFD82407FF80AFB3001CAFB20018BF
62428 +:1015D000AFB10014AFB00010AFBF00200080802179
62429 +:1015E00030B100FF0087202430D200FF1040002FD0
62430 +:1015F00000009821AF44002C9062000024030050AA
62431 +:10160000304200FF1443000E000000003C020800BE
62432 +:101610008C4200E00202102100471024AF42002C4F
62433 +:101620003C0208008C4200E0020210213042007FA0
62434 +:101630000342102100481021944200D43053FFFF90
62435 +:101640000E000493000000003C02080094424B5E30
62436 +:101650008F8300200011340000C2302500122C00BE
62437 +:101660003C02400000C2302534A50001AC700000EF
62438 +:101670008FBF0020AC6000048FB20018AC7300086C
62439 +:101680008FB10014AC60000C8FB3001CAC6500106F
62440 +:101690008FB00010AC60001424040001AC6000188E
62441 +:1016A00027BD00280A0004B8AC66001C8FBF0020CC
62442 +:1016B0008FB3001C8FB200188FB100148FB00010D0
62443 +:1016C00003E0000827BD00289343010F2402001007
62444 +:1016D0001062000E2865001110A0000724020012FD
62445 +:1016E000240200082405003A1062000600003021A0
62446 +:1016F00003E0000800000000240500351462FFFC30
62447 +:10170000000030210A000538000000008F420074FC
62448 +:1017100024420FA003E00008AF62000C27BDFFE8E1
62449 +:10172000AFBF00100E00025E240500018FBF001045
62450 +:1017300024020001A762001227BD00182402000144
62451 +:1017400003E00008A360002227BDFFE0AFB1001452
62452 +:10175000AFB00010AFBF001830B1FFFF0E00025055
62453 +:10176000008080219362003F24030004304200FF88
62454 +:101770001443000C02002021122000082402000A59
62455 +:101780000E00053100000000936200052403FFFEF7
62456 +:1017900000431024A362000524020012A362003F4C
62457 +:1017A000020020210E000259A360008116200003D0
62458 +:1017B000020020210E0005950000000002002021FB
62459 +:1017C000322600FF8FBF00188FB100148FB00010B9
62460 +:1017D000240500380A00053827BD002027BDFFE09A
62461 +:1017E000AFBF001CAFB20018AFB10014AFB0001013
62462 +:1017F0000E000250008080210E0005310000000024
62463 +:101800009362003F24120018305100FF123200038F
62464 +:101810000200202124020012A362003F936200050F
62465 +:101820002403FFFE004310240E000259A3620005AA
62466 +:10183000020020212405002016320007000030217C
62467 +:101840008FBF001C8FB200188FB100148FB0001032
62468 +:101850000A00025E27BD00208FBF001C8FB2001857
62469 +:101860008FB100148FB00010240500390A0005382C
62470 +:1018700027BD002027BDFFE8AFB00010AFBF0014A8
62471 +:101880009742010C2405003600808021144000108E
62472 +:10189000304600FF0E00025000000000240200123B
62473 +:1018A000A362003F93620005344200100E00053130
62474 +:1018B000A36200050E00025902002021020020212F
62475 +:1018C0000E00025E240500200A000604000000004D
62476 +:1018D0000E000538000000000E000250020020211A
62477 +:1018E000936200232403FF9F020020210043102461
62478 +:1018F0008FBF00148FB00010A36200230A000259AA
62479 +:1019000027BD001827BDFFE0AFBF0018AFB100141E
62480 +:10191000AFB0001030B100FF0E00025000808021F7
62481 +:10192000240200120E000531A362003F0E0002598E
62482 +:101930000200202102002021022030218FBF001848
62483 +:101940008FB100148FB00010240500350A0005384F
62484 +:1019500027BD0020A380002C03E00008A380002DF9
62485 +:101960008F4202780440FFFE8F820034AF42024073
62486 +:1019700024020002A34202443C02100003E00008DB
62487 +:10198000AF4202783C0360008C6254003042000891
62488 +:101990001440FFFD000000008C625408AF82000C70
62489 +:1019A00024020052AC605408AC645430AC6254342D
62490 +:1019B0002402000803E00008AC6254003C0260000E
62491 +:1019C0008C42540030420008104000053C03600087
62492 +:1019D0008C625400304200081440FFFD00000000FB
62493 +:1019E0008F83000C3C02600003E00008AC43540805
62494 +:1019F00090A3000024020005008040213063003FD6
62495 +:101A000000004821146200050000502190A2001C33
62496 +:101A100094A3001E304900FF306AFFFFAD00000CA8
62497 +:101A2000AD000010AD000024950200148D05001CCF
62498 +:101A30008D0400183042FFFF0049102300021100FE
62499 +:101A4000000237C3004038210086202300A2102B5B
62500 +:101A50000082202300A72823AD05001CAD04001838
62501 +:101A6000A5090014A5090020A50A001603E0000836
62502 +:101A7000A50A00228F4201F80440FFFE2402000262
62503 +:101A8000AF4401C0A34201C43C02100003E00008BF
62504 +:101A9000AF4201F83C0208008C4200B427BDFFE8C9
62505 +:101AA000AFBF001424420001AFB000103C01080099
62506 +:101AB000AC2200B48F4300243C02001F30AA00FF78
62507 +:101AC0003442FF8030D800FF006280240080F8217B
62508 +:101AD00030EF00FF1158003B01405821240CFF80DB
62509 +:101AE0003C19000A3163007F000310C00003194055
62510 +:101AF000006218213C0208008C4200DC25680001CD
62511 +:101B0000310D007F03E21021004310213043007F9C
62512 +:101B100003431821004C102400794821AF420024CF
62513 +:101B20008D220024016C1824006C7026AD22000C5C
62514 +:101B30008D220024310800FFAD22001095220014F0
62515 +:101B4000952300208D27001C3042FFFF3063FFFFEC
62516 +:101B50008D2600180043102300021100000227C345
62517 +:101B60000040282100C4302300E2102B00C23023A3
62518 +:101B700000E53823AD27001CAD2600189522002073
62519 +:101B8000A522001495220022154B000AA52200165A
62520 +:101B90008D2300248D220008254600013145008058
62521 +:101BA0001462000430C4007F108F000238AA008045
62522 +:101BB00000C0502151AF000131C800FF1518FFC906
62523 +:101BC000010058218F8400343082007F03421821A5
62524 +:101BD0003C02000A006218212402FF8000822024B7
62525 +:101BE000AF440024A06A0079A06A00838C62005090
62526 +:101BF0008F840034AC6200708C6500743C027FFFFF
62527 +:101C00003442FFFF00A228240E00066BAC6500746E
62528 +:101C1000AF5000248FBF00148FB0001003E0000805
62529 +:101C200027BD001827BDFFC0AFBE0038AFB70034D6
62530 +:101C3000AFB5002CAFB20020AFB1001CAFB00018A0
62531 +:101C4000AFBF003CAFB60030AFB40028AFB3002444
62532 +:101C50008F4500248F4600288F43002C3C02001F34
62533 +:101C60003442FF800062182400C230240080A82182
62534 +:101C7000AFA3001400A2F0240E00062FAFA60010A0
62535 +:101C80003C0208008C4200E02410FF8003608821A1
62536 +:101C900002A2102100501024AF4200243C02080090
62537 +:101CA0008C4200E002A210213042007F0342182142
62538 +:101CB0003C02000A00629021924200D293630084A9
62539 +:101CC000305700FF306300FF24020001106200342F
62540 +:101CD000036020212402000214620036000000008C
62541 +:101CE0000E001216024028219223008392220083C4
62542 +:101CF0003063007F3042007F000210C000031940B3
62543 +:101D0000006218213C0208008C4200DC02A2102173
62544 +:101D10000043382100F01024AF42002892250078BB
62545 +:101D20009224008330E2007F034218213C02000C21
62546 +:101D300014850007006280212402FFFFA24200F107
62547 +:101D40002402FFFFA64200F20A0007272402FFFF39
62548 +:101D500096020020A24200F196020022A64200F262
62549 +:101D60008E020024AE4200F492220083A24200F0D0
62550 +:101D70008E4200C8AE4200FC8E4200C4AE4200F863
62551 +:101D80008E220050AE4201008E4200CCAE420104D1
62552 +:101D9000922200853042003F0A0007823442004010
62553 +:101DA0000E00123902402821922200850A00078283
62554 +:101DB0003042003F936200852403FFDF3042003F42
62555 +:101DC000A36200859362008500431024A36200850E
62556 +:101DD0009363008393620078307400FF304200FF09
62557 +:101DE00010540036240AFF803C0C000C3283007F24
62558 +:101DF000000310C000031940006218213C020800D3
62559 +:101E00008C4200DC268800013109007F02A21021EB
62560 +:101E10000043382130E2007F0342182100EA1024F9
62561 +:101E2000AF420028006C80218E020024028A182410
62562 +:101E3000006A5826AE02000C8E020024310800FF12
62563 +:101E4000AE02001096020014960300208E07001CBC
62564 +:101E50003042FFFF3063FFFF8E060018004310235F
62565 +:101E600000021100000227C30040282100C43023D3
62566 +:101E700000E2102B00C2302300E53823AE07001C1F
62567 +:101E8000AE06001896020020A60200149602002258
62568 +:101E9000A602001692220079304200FF105400077B
62569 +:101EA0000000000051370001316800FF92220078E5
62570 +:101EB000304200FF1448FFCD0100A0219222008390
62571 +:101EC000A22200798E2200500A0007E2AE220070A2
62572 +:101ED000A22200858E22004C2405FF80AE42010C18
62573 +:101EE0009222008534420020A2220085924200D135
62574 +:101EF0003C0308008C6300DC305400FF3C02080007
62575 +:101F00008C4200E400143140001420C002A31821C8
62576 +:101F100000C4202102A210210064382100461021B3
62577 +:101F20000045182400E52824AF450028AF43002CC5
62578 +:101F30003042007F924400D030E3007F03422821EA
62579 +:101F4000034318213C02000C006280213C02000E79
62580 +:101F5000309600FF00A298211296002A000000008F
62581 +:101F60008E02000C02002021026028211040002572
62582 +:101F7000261000280E00064A000000009262000DA4
62583 +:101F800026830001307400FF3042007FA262000D02
62584 +:101F90002404FF801697FFF0267300203C020800FF
62585 +:101FA0008C4200DC0000A02102A210210044102479
62586 +:101FB000AF4200283C0208008C4200E43C030800C9
62587 +:101FC0008C6300DC02A2102100441024AF42002CDC
62588 +:101FD0003C0208008C4200E402A318213063007F19
62589 +:101FE00002A210213042007F034220210343182126
62590 +:101FF0003C02000C006280213C02000E0A0007A493
62591 +:10200000008298218E4200D8AE2200508E4200D825
62592 +:10201000AE22007092250083924600D19223008365
62593 +:10202000924400D12402FF8000A228243063007F64
62594 +:10203000308400FF00A628250064182A10600002E2
62595 +:1020400030A500FF38A50080A2250083A2250079D5
62596 +:102050000E00063D000000009222007E02A020211A
62597 +:10206000A222007A8E2300743C027FFF3442FFFFDD
62598 +:10207000006218240E00066BAE2300748FA20010BD
62599 +:10208000AF5E00248FBF003CAF4200288FBE0038F7
62600 +:102090008FA200148FB700348FB600308FB5002C9C
62601 +:1020A0008FB400288FB300248FB200208FB1001CA2
62602 +:1020B0008FB0001827BD004003E00008AF42002C9D
62603 +:1020C00090A2000024420001A0A200003C030800EE
62604 +:1020D0008C6300F4304200FF1443000F0080302175
62605 +:1020E000A0A000003C0208008C4200E48F84003471
62606 +:1020F000008220213082007F034218213C02000C24
62607 +:10210000006218212402FF8000822024ACC300005A
62608 +:1021100003E00008AF4400288C8200002442002025
62609 +:1021200003E00008AC82000094C200003C080800F4
62610 +:10213000950800CA30E7FFFF008048210102102106
62611 +:10214000A4C2000094C200003042FFFF00E2102B46
62612 +:1021500054400001A4C7000094A200003C03080002
62613 +:102160008C6300CC24420001A4A2000094A20000D1
62614 +:102170003042FFFF544300078F8600280107102BD1
62615 +:10218000A4A000005440000101003821A4C70000B1
62616 +:102190008F8600288CC4001CAF44003C94A2000031
62617 +:1021A0008F43003C3042FFFF000210C00062182144
62618 +:1021B000AF43003C8F42003C008220231880000483
62619 +:1021C000000000008CC200180A00084324420001ED
62620 +:1021D0008CC20018AF4200383C020050344200105C
62621 +:1021E000AF420030000000000000000000000000CE
62622 +:1021F0008F420000304200201040FFFD0000000030
62623 +:102200008F420404AD2200048F420400AD2200007E
62624 +:102210003C020020AF42003003E000080000000054
62625 +:1022200027BDFFE0AFB20018AFB10014AFB000108F
62626 +:10223000AFBF001C94C2000000C080213C12080007
62627 +:10224000965200C624420001A60200009603000038
62628 +:1022500094E2000000E03021144300058FB100300B
62629 +:102260000E000818024038210A000875000000001E
62630 +:102270008C8300048C820004244200400461000727
62631 +:10228000AC8200048C8200040440000400000000C2
62632 +:102290008C82000024420001AC8200009602000003
62633 +:1022A0003042FFFF50520001A600000096220000BD
62634 +:1022B00024420001A62200008F82002896230000FD
62635 +:1022C00094420016144300048FBF001C2402000136
62636 +:1022D000A62200008FBF001C8FB200188FB100141F
62637 +:1022E0008FB0001003E0000827BD00208F89002870
62638 +:1022F00027BDFFE0AFBF00188D220028274804004B
62639 +:1023000030E700FFAF4200388D22002CAF8800304C
62640 +:10231000AF42003C3C020005AF420030000000002C
62641 +:1023200000000000000000000000000000000000AD
62642 +:10233000000000008C82000C8C82000CAD020000BA
62643 +:102340008C820010AD0200048C820018AD020008DF
62644 +:102350008C82001CAD02000C8CA20014AD02001097
62645 +:102360008C820020AD02001490820005304200FFF4
62646 +:1023700000021200AD0200188CA20018AD02001C71
62647 +:102380008CA2000CAD0200208CA20010AD02002433
62648 +:102390008CA2001CAD0200288CA20020AD02002CF3
62649 +:1023A000AD060030AD000034978300263402FFFFF5
62650 +:1023B00014620002006020213404FFFF10E00011CD
62651 +:1023C000AD04003895230036952400362402000120
62652 +:1023D0003063FFFF000318C20069182190650040B8
62653 +:1023E000308400070082100400451025A0620040E0
62654 +:1023F0008F820028944200563042FFFF0A0008DC1A
62655 +:10240000AD02003C952300369524003624020001DD
62656 +:102410003063FFFF000318C2006918219065004077
62657 +:1024200030840007008210040002102700451024A9
62658 +:10243000A0620040AD00003C000000000000000071
62659 +:10244000000000003C02000634420040AF42003071
62660 +:102450000000000000000000000000008F420000AB
62661 +:10246000304200101040FFFD8F860028AF880030FA
62662 +:1024700024C2005624C7003C24C4002824C50032CE
62663 +:1024800024C600360E000856AFA200108FBF0018F9
62664 +:1024900003E0000827BD00208F8300243C060800CD
62665 +:1024A0008CC600E88F82003430633FFF0003198040
62666 +:1024B00000461021004310212403FF803046007F96
62667 +:1024C00000431024AF420028034618213C02000CB0
62668 +:1024D0000062302190C2000D30A500FF00003821BD
62669 +:1024E00034420010A0C2000D8F8900288F8A00247A
62670 +:1024F00095230036000A13823048000324020001AD
62671 +:10250000A4C3000E1102000B2902000210400005B6
62672 +:10251000240200021100000C240300010A0009201B
62673 +:102520000000182111020006000000000A00092026
62674 +:10253000000018218CC2002C0A000920244300014D
62675 +:102540008CC20014244300018CC200180043102BDD
62676 +:1025500050400009240700012402002714A20003B0
62677 +:10256000000000000A00092C240700019522003E0B
62678 +:1025700024420001A522003E000A138230430003DA
62679 +:102580002C62000210400009008028211460000421
62680 +:102590000000000094C200360A00093C3046FFFFEC
62681 +:1025A0008CC600380A00093C008028210000302138
62682 +:1025B0003C04080024844B780A00088900000000CD
62683 +:1025C000274901008D22000C9523000601202021BF
62684 +:1025D000000216023046003F3063FFFF240200274E
62685 +:1025E00000C0282128C7002810C2000EAF83002495
62686 +:1025F00010E00008240200312402002110C200096A
62687 +:102600002402002510C200079382002D0A00095BF6
62688 +:102610000000000010C200059382002D0A00095B33
62689 +:10262000000000000A0008F4000000000A0006266E
62690 +:102630000000000095230006912400058D25000C64
62691 +:102640008D2600108D2700188D28001C8D29002054
62692 +:10265000244200013C010800A4234B7E3C010800F9
62693 +:10266000A0244B7D3C010800AC254B843C010800B4
62694 +:10267000AC264B883C010800AC274B903C0108007D
62695 +:10268000AC284B943C010800AC294B9803E00008AF
62696 +:10269000A382002D8F87002827BDFFC0AFB3003471
62697 +:1026A000AFB20030AFB1002CAFB00028AFBF0038E0
62698 +:1026B0003C0208008C4200D094E3003030B0FFFFB1
62699 +:1026C000005010073045FFFF3063FFFF00C0982126
62700 +:1026D000A7A200103C110800963100C614A3000602
62701 +:1026E0003092FFFF8CE2002424420030AF42003CD5
62702 +:1026F0000A0009948CE2002094E200323042FFFF8D
62703 +:1027000054A2000827A400188CE2002C24420030B8
62704 +:10271000AF42003C8CE20028AF4200380A0009A218
62705 +:102720008F84002827A5001027A60020022038212A
62706 +:102730000E000818A7A000208FA200182442003025
62707 +:10274000AF4200388FA2001CAF42003C8F840028AB
62708 +:102750003C020005AF42003094820034274304005D
62709 +:102760003042FFFF0202102B14400007AF830030FD
62710 +:1027700094820054948300340202102100431023F9
62711 +:102780000A0009B63043FFFF94830054948200345A
62712 +:102790000223182100501023006218233063FFFF2A
62713 +:1027A000948200163042FFFF144300030000000033
62714 +:1027B0000A0009C424030001948200163042FFFF7E
62715 +:1027C0000043102B104000058F82003094820016C9
62716 +:1027D000006210233043FFFF8F820030AC530000B3
62717 +:1027E000AC400004AC520008AC43000C3C020006B4
62718 +:1027F00034420010AF420030000000000000000032
62719 +:10280000000000008F420000304200101040FFFD29
62720 +:10281000001018C2006418219065004032040007BF
62721 +:10282000240200018FBF00388FB300348FB2003014
62722 +:102830008FB1002C8FB000280082100400451025B5
62723 +:1028400027BD004003E00008A062004027BDFFA8AC
62724 +:10285000AFB60050AFB5004CAFB40048AFB30044C2
62725 +:10286000AFB1003CAFBF0054AFB20040AFB00038D2
62726 +:102870008C9000003C0208008C4200E88F860034F7
62727 +:10288000960300022413FF8000C2302130633FFF13
62728 +:102890000003198000C3382100F3102490B2000017
62729 +:1028A000AF42002C9203000230E2007F034230214D
62730 +:1028B0003C02000E00C28821306300C024020040A8
62731 +:1028C0000080A82100A0B021146200260000A021F1
62732 +:1028D0008E3400388E2200181440000224020001B9
62733 +:1028E000AE2200189202000D304200201440001564
62734 +:1028F0008F8200343C0308008C6300DC001238C077
62735 +:10290000001231400043102100C730210046382119
62736 +:1029100030E300073C02008030E6007800C230253A
62737 +:102920000343182100F31024AF4208002463090078
62738 +:10293000AF4608108E2200188C6300080043102157
62739 +:10294000AE2200188E22002C8E2300182442000193
62740 +:102950000062182B1060003D000000000A000A7899
62741 +:1029600000000000920300022402FFC00043102474
62742 +:10297000304200FF1440000524020001AE2200187E
62743 +:10298000962200360A000A613054FFFF8E2200149E
62744 +:1029900024420001AE22001892020000000216003C
62745 +:1029A0000002160304410029000000009602000204
62746 +:1029B00027A4001000802821A7A20016960200027A
62747 +:1029C00024070001000030213042FFFFAF820024C5
62748 +:1029D0000E000889AFA0001C960300023C0408000A
62749 +:1029E0008C8400E88F82003430633FFF000319803D
62750 +:1029F00000441021004310213043007F3C05000CAF
62751 +:102A00000053102403431821AF4200280065182109
62752 +:102A10009062000D001221403042007FA062000D44
62753 +:102A20003C0308008C6300E48F82003400431021D3
62754 +:102A30000044382130E2007F03421021004510217C
62755 +:102A400000F31824AF430028AEA200009222000D2C
62756 +:102A5000304200101040001302A020218F83002874
62757 +:102A60008EA40000028030219462003E2442FFFFC9
62758 +:102A7000A462003E948400029625000E3084FFFF7D
62759 +:102A80000E00097330A5FFFF8F82002894430034A5
62760 +:102A90009622000E1443000302A02021240200010C
62761 +:102AA000A382002C02C028210E0007FE00000000B7
62762 +:102AB0008FBF00548FB600508FB5004C8FB40048C4
62763 +:102AC0008FB300448FB200408FB1003C8FB000380C
62764 +:102AD00003E0000827BD00588F82002827BDFFD0E3
62765 +:102AE000AFB40028AFB20020AFBF002CAFB30024BA
62766 +:102AF000AFB1001CAFB00018904400D0904300D19B
62767 +:102B00000000A021309200FFA3A30010306300FF5B
62768 +:102B10008C5100D88C5300DC1072002B2402000171
62769 +:102B20003C0308008C6300E493A400108F820034FF
62770 +:102B30002406FF800004214000431021004410219E
62771 +:102B40003043007F00461024AF4200280343182181
62772 +:102B50003C02000C006218218C62000427A40014BF
62773 +:102B600027A50010022280210270102304400015C6
62774 +:102B7000AFA300149062000D00C21024304200FF89
62775 +:102B800014400007020088219062000D344200408A
62776 +:102B90000E0007FEA062000D0A000ABD93A20010FD
62777 +:102BA0000E0009E1241400018F830028AC7000D8C6
62778 +:102BB00093A20010A06200D193A200101452FFD87B
62779 +:102BC0000000000024020001168200048FBF002CC8
62780 +:102BD0000E000626000000008FBF002C8FB40028D6
62781 +:102BE0008FB300248FB200208FB1001C8FB000186B
62782 +:102BF00003E0000827BD003027BDFFD8AFB3001C9D
62783 +:102C0000AFB20018AFB10014AFB00010AFBF0020DA
62784 +:102C10000080982100E0802130B1FFFF0E00049376
62785 +:102C200030D200FF000000000000000000000000A3
62786 +:102C30008F820020AC510000AC520004AC5300085D
62787 +:102C4000AC40000CAC400010AC400014AC4000188C
62788 +:102C50003C03080094634B5E02038025AC50001CCB
62789 +:102C6000000000000000000000000000240400013B
62790 +:102C70008FBF00208FB3001C8FB200188FB10014DB
62791 +:102C80008FB000100A0004B827BD002827BDFFE858
62792 +:102C9000AFB00010AFBF001430A5FFFF30C600FF7B
62793 +:102CA0000080802124020C80AF420024000000003C
62794 +:102CB0000000000000000000000000000000000014
62795 +:102CC0000E000ACC000000003C040800248400E050
62796 +:102CD0008C8200002403FF808FBF001402021021A9
62797 +:102CE00000431024AF4200248C8200003C03000A01
62798 +:102CF000020280213210007F035010218FB000109B
62799 +:102D00000043102127BD001803E00008AF8200280F
62800 +:102D100027BDFFE8AFBF00108F4401403C0308000F
62801 +:102D20008C6300E02402FF80AF840034008318210C
62802 +:102D300000621024AF4200243C02000803424021FC
62803 +:102D4000950500023063007F3C02000A034318210E
62804 +:102D50000062182130A5FFFF3402FFFF0000302180
62805 +:102D60003C07602010A20006AF8300282402FFFF6A
62806 +:102D7000A5020002946500D40E000AF130A5FFFF01
62807 +:102D80008FBF001024020C8027BD001803E000084C
62808 +:102D9000AF4200243C020008034240219502000299
62809 +:102DA0003C0A0800954A00C63046FFFF14C00007E1
62810 +:102DB0003402FFFF8F8200288F8400343C0760209C
62811 +:102DC000944500D40A000B5A30A5FFFF10C200241E
62812 +:102DD0008F87002894E2005494E400163045FFFFEA
62813 +:102DE00000A6102300A6182B3089FFFF10600004F6
62814 +:102DF0003044FFFF00C51023012210233044FFFFA1
62815 +:102E0000008A102B1040000C012A1023240200011C
62816 +:102E1000A50200162402FFFFA502000294E500D4DB
62817 +:102E20008F8400340000302130A5FFFF3C07602074
62818 +:102E30000A000AF1000000000044102A10400008B7
62819 +:102E4000000000009502001630420001104000040E
62820 +:102E5000000000009742007E24420014A5020016E4
62821 +:102E600003E00008000000008F84002827BDFFE079
62822 +:102E7000AFBF0018948200349483003E1060001AA3
62823 +:102E80003048FFFF9383002C2402000114620027C6
62824 +:102E90008FBF00188F820028000818C23108000771
62825 +:102EA000006218212447003A244900542444002099
62826 +:102EB000244500302446003490620040304200FF38
62827 +:102EC0000102100730420001104000168FBF0018A9
62828 +:102ED0000E000856AFA900108F82002894420034DB
62829 +:102EE0000A000B733048FFFF94830036948200344D
62830 +:102EF0001043000E8FBF001894820036A482003465
62831 +:102F000094820056A48200548C82002CAC8200244F
62832 +:102F100094820032A48200309482003CA482003A61
62833 +:102F20008FBF00180A000B3327BD002003E0000804
62834 +:102F300027BD002027BDFFE8AFBF00108F4A01006A
62835 +:102F40003C0508008CA500E03C02080090424B8440
62836 +:102F50003C0C0800958C4B7E01452821304B003FEE
62837 +:102F600030A2007F03424021396900323C02000A4E
62838 +:102F70003963003F2C630001010240212D2900012B
62839 +:102F80002402FF8000A2282401234825AF8A0034B0
62840 +:102F900000801821AF450024000030210080282146
62841 +:102FA00024070001AF8800283C04080024844B78E3
62842 +:102FB000AF8C002415200007A380002D24020020E0
62843 +:102FC0005562000F006020213402FFFF5582000C83
62844 +:102FD000006020212402002015620005000000008E
62845 +:102FE0008C6300142402FFFF106200070000000041
62846 +:102FF0000E000889000000000A000BD0000000004D
62847 +:103000000E0008F4016028210E000B68000000008B
62848 +:103010008FBF001024020C8027BD001803E00008B9
62849 +:10302000AF4200243C0208008C4200E027BDFFA014
62850 +:10303000AFB1003C008210212411FF80AFBE0058C8
62851 +:10304000AFB70054AFB20040AFB00038AFBF005CC4
62852 +:10305000AFB60050AFB5004CAFB40048AFB30044BA
62853 +:10306000005110248F4800248F4900288F470028E2
62854 +:10307000AF4200243C0208008C4200E00080902116
62855 +:1030800024060006008210213042007F03421821EE
62856 +:103090003C02000A006280213C02001F3442FF8093
62857 +:1030A00000E2382427A40010260500F00122F024B5
62858 +:1030B0000102B8240E00051DAFA700308FA2001832
62859 +:1030C000AE0200C48FA2001CAE0200C88FA2002472
62860 +:1030D000AE0200CC93A40010920300D12402FF8022
62861 +:1030E0000082102400431025304900FF3083007F08
62862 +:1030F0003122007F0062102A10400004000310C03B
62863 +:1031000001311026304900FF000310C000031940B0
62864 +:10311000006218213C0208008C4200DC920400D2BC
62865 +:10312000024210210043102100511024AF42002818
62866 +:1031300093A300103063007F000310C00003194008
62867 +:10314000006218213C0208008C4200DC024210217F
62868 +:10315000004310213042007F034218213C02000C42
62869 +:10316000006240218FA300142402FFFF1062003090
62870 +:10317000309500FF93A2001195030014304400FF26
62871 +:103180003063FFFF0064182B1060000D000000008A
62872 +:10319000950400148D07001C8D0600183084FFFF75
62873 +:1031A00000442023000421000000102100E4382105
62874 +:1031B00000E4202B00C230210A000C4A00C4302158
62875 +:1031C000950400148D07001C8D0600183084FFFF45
62876 +:1031D000008220230004210000001021008018211B
62877 +:1031E00000C2302300E4202B00C4302300E3382346
62878 +:1031F000AD07001CAD06001893A20011A502001433
62879 +:1032000097A20012A50200168FA20014AD020010B2
62880 +:103210008FA20014AD02000C93A20011A5020020A1
62881 +:1032200097A20012A50200228FA20014AD02002472
62882 +:103230002406FF80024610243256007FAF4200244D
62883 +:10324000035618213C02000A006280218E02004CC5
62884 +:103250008FA200203124007F000428C0AE0200505D
62885 +:103260008FA200200004214000852821AE020070BA
62886 +:1032700093A2001001208821A202008393A20010D3
62887 +:10328000A2020079920200853042003FA20200852E
62888 +:103290003C0208008C4200DC024210210045102153
62889 +:1032A00000461024AF42002C3C0208008C4200E48F
62890 +:1032B0003C0308008C6300DC024210210044102112
62891 +:1032C00000461024AF4200283C0208008C4200E473
62892 +:1032D00002431821006518210242102100441021E8
62893 +:1032E0003042007F3063007F93A50010034220210D
62894 +:1032F000034318213C02000E006240213C02000CF6
62895 +:1033000010B1008C008248213233007F1660001912
62896 +:103310002404FF803C0208008C4200DC02421021A1
62897 +:1033200000441024AF42002C3C0208008C4200E410
62898 +:103330003C0308008C6300DC02421021004410248E
62899 +:10334000AF4200283C0208008C4200E402431821EE
62900 +:103350003063007F024210213042007F034220216F
62901 +:10336000034318213C02000E006240213C02000C85
62902 +:10337000008248219124000D2414FF8000001021B8
62903 +:1033800000942025A124000D950400029505001449
62904 +:103390008D07001C3084FFFF30A5FFFF8D0600184D
62905 +:1033A000008520230004210000E4382100C23021E0
62906 +:1033B00000E4202B00C43021AD07001CAD0600182E
62907 +:1033C00095020002A5020014A50000168D02000857
62908 +:1033D000AD0200108D020008AD02000C9502000243
62909 +:1033E000A5020020A50000228D020008AD020024E5
62910 +:1033F0009122000D30420040104000422622000180
62911 +:103400003C0208008C4200E0A3B300283C10000AF4
62912 +:103410000242102100541024AF4200243C02080054
62913 +:103420008C4200E0A380002C27A4002C0242102133
62914 +:103430003042007F03421821007018218C6200D8AE
62915 +:103440008D26000427A50028AFA9002C00461021D6
62916 +:10345000AC6200D80E0009E1AF83002893A30028D6
62917 +:103460008F8200280E000626A04300D10E000B68B4
62918 +:103470000000000002541024AF4200243C02080067
62919 +:103480008C4200DC00132940001320C000A420213E
62920 +:10349000024210210044102100541024AF42002C9D
62921 +:1034A0003C0208008C4200E43C0308008C6300DC12
62922 +:1034B00003563021024210210045102100541024EF
62923 +:1034C000AF4200283C0208008C4200E4024318216D
62924 +:1034D0000064182102421021004510213042007F73
62925 +:1034E0003063007F03422021034318213C02000E79
62926 +:1034F000006240213C02000C00D080210082482163
62927 +:10350000262200013043007F14750005304400FF7F
62928 +:103510002403FF800223102400431026304400FFC0
62929 +:1035200093A2001000808821250800281444FF760B
62930 +:103530002529002093A400108FA300142402FFFF6C
62931 +:103540001062000A308900FF2482000124830001F8
62932 +:103550003042007F14550005306900FF2403FF80CE
62933 +:103560000083102400431026304900FF92020078A7
62934 +:10357000305300FF11330032012088213C02080043
62935 +:103580008C4200DC3225007F000520C00005294068
62936 +:1035900000A42021024210212406FF8000441021B3
62937 +:1035A00000461024AF42002C3C0308008C6300DC72
62938 +:1035B0003C0208008C4200E4024318210242102120
62939 +:1035C0000045102100641821004610243063007F5C
62940 +:1035D000AF420028034318213C02000E0062402144
62941 +:1035E0003C0208008C4200E48D06000C0100202102
62942 +:1035F00002421021004510213042007F0342182171
62943 +:103600003C02000C0062482110C0000D012028215E
62944 +:103610000E00064A000000002402FF800222182447
62945 +:1036200026240001006228263082007F1455000203
62946 +:10363000308300FF30A300FF1473FFD000608821A7
62947 +:103640008E0300743C027FFF3442FFFF00621824A7
62948 +:10365000AE0300740E00066B02402021AF57002419
62949 +:103660008FA20030AF5E00288FBF005C8FBE005875
62950 +:103670008FB700548FB600508FB5004C8FB4004800
62951 +:103680008FB300448FB200408FB1003C8FB0003840
62952 +:1036900027BD006003E00008AF42002C27BDFFD823
62953 +:1036A000AFB1001CAFBF0020AFB000182751018898
62954 +:1036B000922200032408FF803C03000A3047007F69
62955 +:1036C000A3A700108F4601803C0208008C4200E056
62956 +:1036D000AF86003400C2282100A81024AF42002485
62957 +:1036E0009224000030A2007F0342102100431021E9
62958 +:1036F000AF8200283084007F24020002148200255B
62959 +:10370000000719403C0208008C4200E400C210216E
62960 +:103710000043282130A2007F0342182100A8102472
62961 +:10372000AF4200283C02000C006218219062000D9C
62962 +:10373000AFA3001400481025A062000D8FA3001451
62963 +:103740009062000D304200405040006A8FBF002060
62964 +:103750008F860028A380002C27A400148CC200D8D8
62965 +:103760008C63000427A50010004310210E0009E11E
62966 +:10377000ACC200D893A300108F8200280E0006264A
62967 +:10378000A04300D10E000B68000000000A000E0BE1
62968 +:103790008FBF00200E00062F00C020210E00063D26
62969 +:1037A000000000003C020008034280219223000137
62970 +:1037B0009202007B1443004F8FBF00209222000032
62971 +:1037C0003044007F24020004108200172882000584
62972 +:1037D00010400006240200052402000310820007A6
62973 +:1037E0008FB1001C0A000E0C0000000010820012B5
62974 +:1037F0008FBF00200A000E0C8FB1001C92050083C1
62975 +:10380000920600788E0700748F84003430A500FF84
62976 +:1038100000073E0230C600FF0E00067330E7007F4F
62977 +:103820000A000E0B8FBF00200E000BD78F840034D0
62978 +:103830000A000E0B8FBF002024020C80AF42002430
62979 +:103840009202003E30420040104000200000000084
62980 +:103850009202003E00021600000216030441000618
62981 +:10386000000000008F8400340E0005A024050093A2
62982 +:103870000A000E0B8FBF00209202003F24030018A5
62983 +:10388000304200FF1443000C8F84003424050039BB
62984 +:103890000E000538000030210E0002508F840034E5
62985 +:1038A00024020012A202003F0E0002598F8400344D
62986 +:1038B0000A000E0B8FBF0020240500360E000538CD
62987 +:1038C000000030210A000E0B8FBF00200E000250B6
62988 +:1038D0008F8400349202000534420020A2020005C9
62989 +:1038E0000E0002598F8400340E000FC08F84003404
62990 +:1038F0008FBF00208FB1001C8FB0001824020C80F5
62991 +:1039000027BD002803E00008AF42002427BDFFE8E0
62992 +:10391000AFB00010AFBF001427430100946200084D
62993 +:103920000002140000021403044100020000802180
62994 +:103930002410000194620008304200801040001AF8
62995 +:10394000020010219462000830422000104000164E
62996 +:10395000020010218C6300183C021C2D344219ED2A
62997 +:10396000240600061062000F3C0760213C0208009C
62998 +:103970008C4200D4104000078F8200288F830028DB
62999 +:10398000906200623042000F34420040A062006248
63000 +:103990008F8200288F840034944500D40E000AF1F1
63001 +:1039A00030A5FFFF020010218FBF00148FB0001060
63002 +:1039B00003E0000827BD001827BDFFE0AFB10014E9
63003 +:1039C000AFB00010A380002CAFBF00188F450100DE
63004 +:1039D0003C0308008C6300E02402FF80AF850034C4
63005 +:1039E00000A318213064007F0344202100621824C2
63006 +:1039F0003C02000A00822021AF430024275001002E
63007 +:103A00008E0200148C8300DCAF8400280043102356
63008 +:103A100018400004000088218E0200140E000A8461
63009 +:103A2000AC8200DC9202000B24030002304200FF53
63010 +:103A30001443002F0000000096020008304300FFEE
63011 +:103A40002402008214620005240200840E00093E54
63012 +:103A5000000000000A000E97000000001462000938
63013 +:103A6000240200818F8200288F8400343C0760216B
63014 +:103A7000944500D49206000530A5FFFF0A000E868B
63015 +:103A800030C600FF14620027000000009202000A06
63016 +:103A9000304300FF306200201040000430620040DC
63017 +:103AA0008F8400340A000E82240600401040000477
63018 +:103AB000000316008F8400340A000E8224060041A1
63019 +:103AC00000021603044100178F84003424060042CC
63020 +:103AD0008F8200283C076019944500D430A5FFFF71
63021 +:103AE0000E000AF1000000000A000E97000000001E
63022 +:103AF0009202000B24030016304200FF1043000620
63023 +:103B0000000000009202000B24030017304200FF67
63024 +:103B100014430004000000000E000E11000000001D
63025 +:103B2000004088210E000B68000000009202000A8D
63026 +:103B3000304200081040000624020C808F850028C7
63027 +:103B40003C0400080E0011EE0344202124020C80E6
63028 +:103B5000AF4200248FBF0018022010218FB0001048
63029 +:103B60008FB1001403E0000827BD002027BDFFE847
63030 +:103B7000AFBF0014AFB000108F5000243C0308000A
63031 +:103B80008C6300E08F4501002402FF8000A3182110
63032 +:103B90003064007F03442021006218243C02000AA4
63033 +:103BA00000822021AF850034AF4300249082006260
63034 +:103BB000AF8400283042000F34420050A0820062DF
63035 +:103BC0003C02001F3442FF800E00062602028024C1
63036 +:103BD000AF5000248FBF00148FB0001003E0000826
63037 +:103BE00027BD00183C0208008C4200201040001D38
63038 +:103BF0002745010090A300093C0200080342202150
63039 +:103C000024020018546200033C0200080A000ED887
63040 +:103C10002402000803422021240200161462000539
63041 +:103C20002402001724020012A082003F0A000EE2C4
63042 +:103C300094A700085462000694A700089362000548
63043 +:103C40002403FFFE00431024A362000594A700088C
63044 +:103C500090A6001B8CA4000094A500060A000ACCC4
63045 +:103C600000073C0003E000080000000027440100BA
63046 +:103C700094820008304500FF38A3008238A20084F7
63047 +:103C80002C6300012C420001006218251060000620
63048 +:103C9000240200839382002D1040000D00000000DC
63049 +:103CA0000A000B9B0000000014A2000524A2FF8064
63050 +:103CB0008F4301043C02602003E00008AC43001481
63051 +:103CC000304200FF2C420002104000032402002278
63052 +:103CD0000A000E3C0000000014A2000300000000D7
63053 +:103CE0000A000EA9000000000A000EC70000000034
63054 +:103CF0009363007E9362007A144300090000202140
63055 +:103D00009362000024030050304200FF144300047B
63056 +:103D1000240400019362007E24420001A362007E1D
63057 +:103D200003E00008008010218F4201F80440FFFEEC
63058 +:103D300024020002AF4401C0A34201C43C021000AF
63059 +:103D400003E00008AF4201F827BDFFE8AFBF001055
63060 +:103D50009362003F2403000A304200FF14430046F0
63061 +:103D6000000000008F6300548F62004C1062007DE1
63062 +:103D7000036030219362000024030050304200FFB2
63063 +:103D80001443002F000000008F4401403C02080053
63064 +:103D90008C4200E02403FF800082102100431024A5
63065 +:103DA000AF4200243C0208008C4200E08F650054C2
63066 +:103DB0003C03000A008220213084007F034410214C
63067 +:103DC00000431021AC4501089762003C8F63004C12
63068 +:103DD0003042FFFF0002104000621821AF63005C18
63069 +:103DE0008F6300548F64004C9762003C006418237A
63070 +:103DF0003042FFFF00031843000210400043102A26
63071 +:103E000010400006000000008F6200548F63004CD9
63072 +:103E1000004310230A000F58000210439762003C31
63073 +:103E20003042FFFF00021040ACC2006424020001D7
63074 +:103E3000A0C0007CA0C2008424020C80AF420024F9
63075 +:103E40000E000F0A8F440140104000478FBF001042
63076 +:103E50008F4301408F4201F80440FFFE240200021C
63077 +:103E6000AF4301C0A34201C43C021000AF4201F8BD
63078 +:103E70000A000FA88FBF00109362003F24030010B8
63079 +:103E8000304200FF14430004000000008F44014052
63080 +:103E90000A000F94000028219362003F24030016BB
63081 +:103EA000304200FF1443000424020014A362003FC8
63082 +:103EB0000A000FA2000000008F62004C8F630050C8
63083 +:103EC00000431023044100288FBF0010936200813B
63084 +:103ED00024420001A3620081936200812C4200040D
63085 +:103EE00014400010000000009362003F240300040F
63086 +:103EF000304200FF14430006000000008F440140E0
63087 +:103F00008FBF0010240500930A0005A027BD0018EC
63088 +:103F10008F440140240500938FBF00100A00060F54
63089 +:103F200027BD00188F4401400E0002500000000021
63090 +:103F30008F6200542442FFFFAF6200548F62005032
63091 +:103F40002442FFFFAF6200500E0002598F4401402F
63092 +:103F50008F4401408FBF0010240500040A00025E58
63093 +:103F600027BD00188FBF001003E0000827BD001810
63094 +:103F70008F4201889363007E00021402304400FFE8
63095 +:103F8000306300FF1464000D0000000093620080A5
63096 +:103F9000304200FF1044000900000000A3640080CC
63097 +:103FA0009362000024030050304200FF14430004D9
63098 +:103FB000000000000A0006D78F440180A36400803F
63099 +:103FC00003E000080000000027BDFFE8AFB00010CC
63100 +:103FD000AFBF00149362000524030030304200306C
63101 +:103FE00014430089008080213C0208008C4200209C
63102 +:103FF00010400080020020210E0004930000000009
63103 +:104000008F850020ACB000009362003E9363003FB8
63104 +:10401000304200FF00021200306300FF0043102511
63105 +:10402000ACA2000493620082000216000002160394
63106 +:1040300004410005000000003C0308008C630048B8
63107 +:104040000A000FE6000000009362003E304200408C
63108 +:10405000144000030000182193620081304300FFE8
63109 +:104060009362008200031E00304200FF0002140031
63110 +:1040700000621825ACA300088F620040ACA2000CBF
63111 +:104080008F620048ACA200108F62004CACA20014FA
63112 +:104090008F6200508F63004C0043102304410003E3
63113 +:1040A000000000000A000FFA8F62004C8F6200507F
63114 +:1040B000ACA200183C02080094424B5E3C03C00BCB
63115 +:1040C00000002021004310250E0004B8ACA2001C03
63116 +:1040D0008F6200548F840020AC8200008F620058F1
63117 +:1040E000AC8200048F62005CAC8200088F620060CA
63118 +:1040F0008F43007400431021AC82000C8F62006477
63119 +:10410000AC820010976300689762006A00031C008D
63120 +:104110003042FFFF00621825AC83001493620082D6
63121 +:1041200024030080304200FF14430003000000001D
63122 +:104130000A00102EAC8000188F63000C24020001CE
63123 +:104140001062000E2402FFFF9362003E30420040E6
63124 +:104150001440000A2402FFFF8F63000C8F4200749A
63125 +:10416000006218233C020800006210241440000280
63126 +:10417000000028210060282100051043AC820018AF
63127 +:104180003C02080094424B5E3C03C00C000020211E
63128 +:10419000004310258F8300200E0004B8AC62001C81
63129 +:1041A0008F6200188F8300203C05080094A54B5EA9
63130 +:1041B00024040001AC620000AC6000048F66006C57
63131 +:1041C0003C02400D00A22825AC6600088F6200DC8E
63132 +:1041D000AC62000CAC600010936200050002160097
63133 +:1041E000AC620014AC6000180E0004B8AC65001C92
63134 +:1041F000020020218FBF00148FB00010A3600005C3
63135 +:104200000A00042127BD00188FBF00148FB00010D2
63136 +:1042100003E0000827BD00189742007C30C600FF6D
63137 +:10422000A08600843047FFFF2402000514C2000B63
63138 +:1042300024E3465090A201122C42000710400007D0
63139 +:1042400024E30A0090A30112240200140062100467
63140 +:1042500000E210210A0010663047FFFF3067FFFFC1
63141 +:1042600003E00008A4870014AC87004C8CA201086E
63142 +:104270000080402100A0482100E2102330C600FF4A
63143 +:104280001840000393AA001324E2FFFCACA201082B
63144 +:1042900030C2000110400008000000008D020050F4
63145 +:1042A00000E2102304410013240600058D0200548F
63146 +:1042B00010E20010000000008D02005414E2001A09
63147 +:1042C000000000003C0208008C4200D83042002070
63148 +:1042D0001040000A2402000191030078910200833B
63149 +:1042E000144300062402000101002021012028219E
63150 +:1042F000240600040A00105400000000A1000084FD
63151 +:1043000011400009A50200148F4301008F4201F8FB
63152 +:104310000440FFFE24020002AF4301C0A34201C4D7
63153 +:104320003C021000AF4201F803E00008000000006A
63154 +:1043300027BDFFE88FA90028AFBF001000804021F3
63155 +:1043400000E918231860007330C600FFA080007CCD
63156 +:10435000A08000818CA2010800E210230440004DDF
63157 +:10436000000000008C8200509483003C8C84006428
63158 +:10437000004748233063FFFF012318210083202BCF
63159 +:1043800010800004000000008D0200640A0010B7D5
63160 +:1043900000E210219502003C3042FFFF0122102173
63161 +:1043A00000E21021AD02005C9502003C8D03005C30
63162 +:1043B0003042FFFF0002104000E210210043102BAA
63163 +:1043C00010400003000000000A0010C68D02005CCF
63164 +:1043D0009502003C3042FFFF0002104000E2102135
63165 +:1043E000AD02005CA1000084AD07004C8CA2010866
63166 +:1043F00000E210231840000224E2FFFCACA20108F6
63167 +:1044000030C200011040000A000000008D02005080
63168 +:1044100000E2102304410004010020218D02005419
63169 +:1044200014E20003000000000A0010E82406000562
63170 +:104430008D02005414E200478FBF00103C020800B8
63171 +:104440008C4200D8304200201040000A24020001B3
63172 +:1044500091030078910200831443000624020001B6
63173 +:1044600001002021240600048FBF00100A00105410
63174 +:1044700027BD0018A1000084A50200148F4301008D
63175 +:104480008F4201F80440FFFE240200020A00110DD1
63176 +:10449000000000008C82005C004910230043102BB8
63177 +:1044A00054400001AC87005C9502003C3042FFFFA5
63178 +:1044B0000062102B14400007240200029502003C09
63179 +:1044C0008D03005C3042FFFF00621821AD03005CE9
63180 +:1044D00024020002AD07004CA10200840E000F0A66
63181 +:1044E0008F4401001040001B8FBF00108F4301005C
63182 +:1044F0008F4201F80440FFFE24020002AF4301C0D6
63183 +:10450000A34201C43C021000AF4201F80A0011238B
63184 +:104510008FBF001030C200101040000E8FBF00107F
63185 +:104520008C83005C9482003C006918233042FFFFBA
63186 +:10453000006218213C023FFF3444FFFF0083102B30
63187 +:10454000544000010080182101231021AD02005CBD
63188 +:104550008FBF001003E0000827BD001827BDFFE84B
63189 +:104560008FAA0028AFBF00100080402100EA482336
63190 +:104570001920002130C600FF8C83005C8C8200640F
63191 +:10458000006A18230043102B5040001000691821C6
63192 +:1045900094A2011001221021A4A2011094A20110E2
63193 +:1045A0003042FFFF0043102B1440000A3C023FFF43
63194 +:1045B00094A2011000431023A4A201109482003C95
63195 +:1045C0003042FFFF0A00114200621821A4A001102E
63196 +:1045D0003C023FFF3444FFFF0083102B5440000196
63197 +:1045E0000080182100671021AD02005CA100007C52
63198 +:1045F0000A00118AA100008130C200101040003C66
63199 +:10460000000000008C820050004A1023184000383F
63200 +:10461000000000009082007C24420001A082007C07
63201 +:104620009082007C3C0308008C630024304200FF31
63202 +:104630000043102B1440005C8FBF00108CA20108B7
63203 +:1046400000E2102318400058000000008C83005442
63204 +:104650009482003C006A18233042FFFF0003184395
63205 +:10466000000210400043102A104000050000000026
63206 +:104670008C820054004A10230A001171000210437A
63207 +:104680009482003C3042FFFF00021040AD02006403
63208 +:104690009502003C8D0400649503003C3042FFFF0E
63209 +:1046A00000021040008220213063FFFF00831821A8
63210 +:1046B00001431021AD02005C8D020054ACA2010840
63211 +:1046C00024020002A10200840E000F0A8F440100A0
63212 +:1046D000104000358FBF00108F4301008F4201F85A
63213 +:1046E0000440FFFE240200020A0011B30000000093
63214 +:1046F000AD07004C8CA2010800E210231840000214
63215 +:1047000024E2FFFCACA2010830C200011040000A04
63216 +:10471000000000008D02005000E21023044100045C
63217 +:10472000010020218D02005414E20003000000006B
63218 +:104730000A0011AA240600058D02005414E2001A92
63219 +:104740008FBF00103C0208008C4200D8304200208D
63220 +:104750001040000A240200019103007891020083B6
63221 +:104760001443000624020001010020212406000455
63222 +:104770008FBF00100A00105427BD0018A10000844C
63223 +:10478000A50200148F4301008F4201F80440FFFE90
63224 +:1047900024020002AF4301C0A34201C43C02100046
63225 +:1047A000AF4201F88FBF001003E0000827BD0018DA
63226 +:1047B0008FAA00108C8200500080402130C600FF7C
63227 +:1047C000004A102300A048211840000700E01821EB
63228 +:1047D00024020001A0800084A0A00112A482001481
63229 +:1047E0000A001125AFAA0010A0800081AD07004C7F
63230 +:1047F0008CA2010800E210231840000224E2FFFC12
63231 +:10480000ACA2010830C20001104000080000000006
63232 +:104810008D0200500062102304410013240600059D
63233 +:104820008D02005410620010000000008D02005440
63234 +:1048300014620011000000003C0208008C4200D805
63235 +:10484000304200201040000A240200019103007849
63236 +:10485000910200831443000624020001010020217C
63237 +:1048600001202821240600040A0010540000000042
63238 +:10487000A1000084A502001403E00008000000006D
63239 +:1048800027BDFFE0AFBF0018274201009046000A95
63240 +:104890008C4800148C8B004C9082008430C900FF3F
63241 +:1048A00001681823304A00FF1C60001A2D460006DC
63242 +:1048B000240200010142100410C00016304300031E
63243 +:1048C000012030210100382114600007304C000C19
63244 +:1048D00015800009304200301440000B8FBF0018D3
63245 +:1048E0000A001214000000000E001125AFAB0010EA
63246 +:1048F0000A0012148FBF00180E00109AAFAB001000
63247 +:104900000A0012148FBF0018AFAB00100E0011BACE
63248 +:10491000AFAA00148FBF001803E0000827BD0020D5
63249 +:1049200024020003A08200848C82005403E000086B
63250 +:10493000ACA201083C0200080342182190620081E9
63251 +:10494000240600433C07601924420001A062008154
63252 +:10495000906300813C0208008C4200C0306300FF7D
63253 +:10496000146200102403FF803C0208008C4200E027
63254 +:104970000082102100431024AF4200243C020800B2
63255 +:104980008C4200E03C03000A008210213042007F8C
63256 +:104990000342102100431021944500D40A000AF17B
63257 +:1049A00030A5FFFF03E000080000000027BDFFE086
63258 +:1049B000AFBF0018AFB10014AFB000108F4201803C
63259 +:1049C0000080802100A088210E00121B00402021C1
63260 +:1049D000A20000848E0200548FBF00188FB0001018
63261 +:1049E000AE2201088FB1001403E0000827BD0020AB
63262 +:1049F00027BDFFE03C020008AFB00010AFBF0018B9
63263 +:104A0000AFB10014034280218F5101409203008412
63264 +:104A10008E0400508E02004C14820040306600FF6D
63265 +:104A20003C0208008C4200E02403FF800222102197
63266 +:104A300000431024AF4200243C0208008C4200E0F6
63267 +:104A40009744007C92050081022210213042007FB1
63268 +:104A5000034218213C02000A0062182114A0000B36
63269 +:104A60003084FFFF2402000554C20014248205DCB8
63270 +:104A70009062011224420001A062011224020C8003
63271 +:104A8000AF4200240A00127324020005A060011244
63272 +:104A90002402000514C20009248205DC9202008170
63273 +:104AA0002C4200075040000524820A009203008136
63274 +:104AB0002402001400621004008210213044FFFF21
63275 +:104AC000A60400140E00121B022020219602003CB6
63276 +:104AD0008E03004C022020213042FFFF00021040D4
63277 +:104AE000006218210E000250AE03005C9202007DAD
63278 +:104AF00002202021344200400E000259A202007D13
63279 +:104B00008F4201F80440FFFE24020002AF5101C0B1
63280 +:104B1000A34201C43C021000AF4201F88FBF00184D
63281 +:104B20008FB100148FB0001003E0000827BD0020F3
63282 +:104B300008000ACC08000B1408000B9808000BE4CE
63283 +:104B400008000C200A0000280000000000000000FF
63284 +:104B50000000000D6370362E322E3300000000007E
63285 +:104B60000602030400000000000000000000000036
63286 +:104B70000000000000000000000000000000000035
63287 +:104B80000000000000000000000000000000002005
63288 +:104B90000000000000000000000000000000000015
63289 +:104BA0000000000000000000000000000000000005
63290 +:104BB00000000000000000000000000000000001F4
63291 +:104BC0000000002B000000000000000400030D4066
63292 +:104BD00000000000000000000000000000000000D5
63293 +:104BE00000000000000000001000000300000000B2
63294 +:104BF0000000000D0000000D3C020800244258A4F3
63295 +:104C00003C03080024635F70AC4000000043202B8D
63296 +:104C10001480FFFD244200043C1D080037BD7FFCCA
63297 +:104C200003A0F0213C100800261000A03C1C080046
63298 +:104C3000279C58A40E0001AC000000000000000DED
63299 +:104C400027BDFFE83C096018AFBF00108D2C500055
63300 +:104C5000240DFF7F24080031018D5824356A380C5B
63301 +:104C600024070C003C1A8000AD2A50003C04800A46
63302 +:104C7000AF4800083C1B8008AF4700240E00091510
63303 +:104C8000AF8400100E0008D8000000000E000825B8
63304 +:104C9000000000000E001252000000003C046016EC
63305 +:104CA0008C8500003C06FFFF3C02535300A61824ED
63306 +:104CB0001062004734867C0094C201F2A780002C69
63307 +:104CC00010400003A78000CC38581E1EA798002C67
63308 +:104CD00094C201F810400004978300CC38591E1E7E
63309 +:104CE000A79900CC978300CC2C7F006753E000018C
63310 +:104CF000240300669784002C2C82040114400002D7
63311 +:104D000000602821240404003C0760008CE904387A
63312 +:104D10002403103C3128FFFF1103001F30B9FFFFAF
63313 +:104D200057200010A38000CE24020050A38200CEA2
63314 +:104D3000939F00CE53E0000FA78500CCA78000CC46
63315 +:104D4000978500CC8FBF0010A780002CA78000346F
63316 +:104D5000A78000E63C010800AC25008003E00008C5
63317 +:104D600027BD0018939F00CE57E0FFF5A78000CC29
63318 +:104D7000A78500CC978500CC8FBF0010A784002C9E
63319 +:104D8000A7800034A78000E63C010800AC25008025
63320 +:104D900003E0000827BD0018A38000CE8CCB003CA8
63321 +:104DA000316A00011140000E0000000030A7FFFF33
63322 +:104DB00010E0FFDE240200508CCC00C831860001D8
63323 +:104DC00014C0FFDC939F00CE0A00007A2402005139
63324 +:104DD0008C8F00043C0E60000A00005D01EE302163
63325 +:104DE0008CEF0808240D5708000F740211CD000441
63326 +:104DF00030B8FFFF240500660A00007B240404008D
63327 +:104E00001700FFCC939F00CE0A00007A24020050C6
63328 +:104E10008F8600103089FFFF000939408CC30010D5
63329 +:104E20003C08005000E82025AF4300388CC5001432
63330 +:104E300027420400AF82001CAF45003CAF44003065
63331 +:104E40000000000000000000000000000000000062
63332 +:104E50000000000000000000000000000000000052
63333 +:104E60008F4B0000316A00201140FFFD0000000060
63334 +:104E700003E00008000000008F840010948A001AEC
63335 +:104E80008C8700243149FFFF000940C000E8302131
63336 +:104E9000AF46003C8C8500248F43003C00A31023C8
63337 +:104EA00018400029000000008C8B002025620001C2
63338 +:104EB0003C0D005035AC0008AF420038AF4C00301C
63339 +:104EC00000000000000000000000000000000000E2
63340 +:104ED00000000000000000000000000000000000D2
63341 +:104EE0008F4F000031EE002011C0FFFD00000000D8
63342 +:104EF0008F4A04003C080020AC8A00108F4904044B
63343 +:104F0000AC890014AF4800300000000094860018FF
63344 +:104F10009487001C00C71821A48300189485001AE8
63345 +:104F200024A20001A482001A9498001A9499001EE9
63346 +:104F3000133800030000000003E000080000000038
63347 +:104F400003E00008A480001A8C8200200A0000DC24
63348 +:104F50003C0D00500A0000CD000000003C0308009A
63349 +:104F60008C6300208F82001827BDFFE810620008C4
63350 +:104F7000AFBF00100E000104AF8300183C0308000F
63351 +:104F80008C63002024040001106400048F89001049
63352 +:104F90008FBF001003E0000827BD00188FBF00106E
63353 +:104FA0003C076012A520000A9528000A34E500108D
63354 +:104FB00027BD00183106FFFF03E00008ACA60090F3
63355 +:104FC0003C0208008C42002027BDFFC8AFBF003460
63356 +:104FD000AFBE0030AFB7002CAFB60028AFB500248D
63357 +:104FE000AFB40020AFB3001CAFB20018AFB10014D3
63358 +:104FF00010400050AFB000108F840010948600065F
63359 +:105000009483000A00C3282330B6FFFF12C0004A71
63360 +:105010008FBF003494890018948A000A012A402323
63361 +:105020003102FFFF02C2382B14E0000202C020212F
63362 +:10503000004020212C8C0005158000020080A0215A
63363 +:10504000241400040E0000B3028020218F8700107A
63364 +:1050500002809821AF80001494ED000A028088211C
63365 +:105060001280004E31B2FFFF3C1770003C1540002B
63366 +:105070003C1E60008F8F001C8DEE000001D71824AD
63367 +:10508000507500500220202102A3802B160000350D
63368 +:105090003C182000507800470220202124100001F5
63369 +:1050A0008F83001414600039029158230230F823D2
63370 +:1050B0000250C82133F1FFFF1620FFEE3332FFFF0D
63371 +:1050C0008F8700103C110020AF510030000000001D
63372 +:1050D00094E6000A3C1E601237D5001002662821B3
63373 +:1050E000A4E5000A94E2000A94F2000A94F400187D
63374 +:1050F0003057FFFF1292003BAEB700908CED0014CA
63375 +:105100008CE400100013714001AE4021000E5FC31B
63376 +:10511000010E502B008B4821012A1821ACE8001405
63377 +:10512000ACE3001002D3382330F6FFFF16C0FFB9FE
63378 +:105130008F8400108FBF00348FBE00308FB7002CDB
63379 +:105140008FB600288FB500248FB400208FB3001CC9
63380 +:105150008FB200188FB100148FB0001003E0000868
63381 +:1051600027BD0038107E001B000000001477FFCC24
63382 +:10517000241000010E00159B000000008F83001416
63383 +:105180001060FFCB0230F823029158238F87001064
63384 +:10519000017020210A0001973093FFFF8F830014D4
63385 +:1051A0001460FFCB3C110020AF5100300A000163B6
63386 +:1051B000000000000E00077D024028210A00015770
63387 +:1051C000004080210E00033A024028210A000157C6
63388 +:1051D000004080210E001463022020210A000157A4
63389 +:1051E000004080210E0000CD000000000A0001797F
63390 +:1051F00002D3382327BDFFE8AFB00010AFBF0014C3
63391 +:105200000E00003F000000003C028000345000709F
63392 +:105210000A0001BA8E0600008F4F000039EE00012F
63393 +:1052200031C20001104000248F8600A88E070000C4
63394 +:105230003C0C08008D8C003C3C0908008D2900388E
63395 +:1052400000E66823018D28210000502100AD302B9D
63396 +:10525000012A4021010620213C010800AC25003C28
63397 +:10526000AF8700A83C010800AC2400380E000106FE
63398 +:10527000000000003C0308008C6300701060FFE633
63399 +:10528000006020213C0508008CA500683C06080051
63400 +:105290008CC6006C0E00152A000000003C010800BE
63401 +:1052A000AC2000708F4F000039EE000131C20001C8
63402 +:1052B0001440FFDE8F8600A88E0A00008F8B00A8A6
63403 +:1052C0003C0508008CA5003C3C0408008C84003898
63404 +:1052D000014B482300A938210082182100E9402B06
63405 +:1052E000006810213C010800AC27003C3C0108008C
63406 +:1052F000AC2200388F5F01002419FF0024180C0035
63407 +:1053000003F9202410980012AF840000AF4400205D
63408 +:10531000936D0000240C002031A600FF10CC001279
63409 +:10532000240E005010CE00043C194000AF59013843
63410 +:105330000A0001B3000000000E0011C800000000C8
63411 +:105340003C194000AF5901380A0001B300000000C9
63412 +:105350000E00011F000000003C194000AF59013849
63413 +:105360000A0001B3000000008F58010000802821CE
63414 +:10537000330F00FF01E020210E0002F1AF8F000487
63415 +:105380003C194000AF5901380A0001B30000000089
63416 +:1053900000A4102B2403000110400009000030215C
63417 +:1053A0000005284000A4102B04A0000300031840AF
63418 +:1053B0005440FFFC000528405060000A0004182BF0
63419 +:1053C0000085382B54E000040003184200C3302548
63420 +:1053D00000852023000318421460FFF900052842CD
63421 +:1053E0000004182B03E0000800C310218F4201B80D
63422 +:1053F0000440FFFE00000000AF4401803C031000A9
63423 +:1054000024040040AF450184A3440188A3460189D8
63424 +:10541000A747018A03E00008AF4301B83084FFFFCB
63425 +:105420000080382130A5FFFF000020210A00022A59
63426 +:10543000240600803087FFFF8CA40000240600387B
63427 +:105440000A00022A000028218F8300388F8600304E
63428 +:105450001066000B008040213C07080024E75A1822
63429 +:10546000000328C000A710218C4400002463000121
63430 +:10547000108800053063000F5466FFFA000328C04F
63431 +:1054800003E00008000010213C07080024E75A1C34
63432 +:1054900000A7302103E000088CC200003C0390000C
63433 +:1054A0003462000100822025AF4400208F45002097
63434 +:1054B00004A0FFFE0000000003E000080000000060
63435 +:1054C0003C038000346200010082202503E00008D4
63436 +:1054D000AF44002027BDFFE0AFB100143091FFFFC3
63437 +:1054E000AFB00010AFBF00181220001300A0802141
63438 +:1054F0008CA2000024040002240601401040000F8A
63439 +:10550000004028210E000C5C00000000000010216B
63440 +:10551000AE000000022038218FBF00188FB10014A8
63441 +:105520008FB0001000402021000028210000302111
63442 +:105530000A00022A27BD00208CA200000220382188
63443 +:105540008FBF00188FB100148FB0001000402021D1
63444 +:1055500000002821000030210A00022A27BD002077
63445 +:1055600000A010213087FFFF8CA500048C440000B0
63446 +:105570000A00022A2406000627BDFFE0AFB0001093
63447 +:10558000AFBF0018AFB100149363003E00808021CC
63448 +:105590000080282130620040000020211040000FD0
63449 +:1055A0008E1100000E000851022020219367000098
63450 +:1055B0002404005030E500FF50A400128E0F0000BC
63451 +:1055C000022020218FBF00188FB100148FB000106F
63452 +:1055D000A762013C0A00091127BD00200E000287C6
63453 +:1055E000000000000E0008510220202193670000F7
63454 +:1055F0002404005030E500FF14A4FFF20220202113
63455 +:105600008E0F00003C1008008E1000503C0D000C66
63456 +:10561000240BFF8001F05021314E007F01DA602120
63457 +:10562000018D4021014B4824AF4900280220202150
63458 +:105630008FBF00188FB100148FB00010A50200D6E4
63459 +:1056400027BD00200A000911AF8800D027BDFFE068
63460 +:10565000AFBF0018AFB10014AFB0001093660001E7
63461 +:10566000008080210E00025630D1000493640005B2
63462 +:10567000001029C2A765000034830040A363000521
63463 +:105680000E00025F020020210E00091302002021FB
63464 +:1056900024020001AF62000C02002821A762001062
63465 +:1056A00024040002A762001224060140A76200142D
63466 +:1056B0000E000C5CA76200161620000F8FBF0018AA
63467 +:1056C000978C00343C0B08008D6B00782588FFFF19
63468 +:1056D0003109FFFF256A0001012A382B10E000067E
63469 +:1056E000A78800343C0F6006240E001635ED00102C
63470 +:1056F000ADAE00508FBF00188FB100148FB00010F6
63471 +:1057000003E0000827BD002027BDFFE0AFB1001473
63472 +:10571000AFBF0018AFB0001000A088211080000AB1
63473 +:105720003C03600024020080108200120000000090
63474 +:105730000000000D8FBF00188FB100148FB0001053
63475 +:1057400003E0000827BD00208C682BF80500FFFE51
63476 +:1057500000000000AC712BC08FBF00188FB1001487
63477 +:105760008FB000103C09100027BD002003E00008A6
63478 +:10577000AC692BF80E00025600A0202193650005AD
63479 +:10578000022020210E00025F30B000FF2403003E03
63480 +:105790001603FFE7000000008F4401780480FFFE3D
63481 +:1057A000240700073C061000AF51014002202021D1
63482 +:1057B000A34701448FBF00188FB100148FB00010B1
63483 +:1057C000AF4601780A0002C227BD002027BDFFE8CE
63484 +:1057D000AFBF0014AFB000108F50002000000000D9
63485 +:1057E0000E000913AF440020AF5000208FBF0014FB
63486 +:1057F0008FB0001003E0000827BD00183084FFFFC1
63487 +:10580000008038212406003500A020210A00022A49
63488 +:10581000000028213084FFFF008038212406003654
63489 +:1058200000A020210A00022A0000282127BDFFD065
63490 +:10583000AFB3001C3093FFFFAFB50024AFB2001828
63491 +:10584000AFBF0028AFB40020AFB10014AFB000105C
63492 +:1058500030B5FFFF12600027000090218F90001CE0
63493 +:105860008E0300003C0680002402004000033E023C
63494 +:1058700000032C0230E4007F006688241482001D9F
63495 +:1058800030A500FF8F8300282C68000A510000100B
63496 +:105890008F910014000358803C0C0800258C56940E
63497 +:1058A000016C50218D49000001200008000000001B
63498 +:1058B00002B210213045FFFF0E000236240400849E
63499 +:1058C000162000028F90001CAF8000288F910014DA
63500 +:1058D000260C002026430001018080213072FFFF4A
63501 +:1058E00016200004AF8C001C0253502B1540FFDC27
63502 +:1058F00000000000024010218FBF00288FB5002457
63503 +:105900008FB400208FB3001C8FB200188FB1001429
63504 +:105910008FB0001003E0000827BD0030240E0034D3
63505 +:1059200014AE00F9000000009203000E241F168040
63506 +:105930003C07000CA36300219202000D0347C8211D
63507 +:105940003C066000A3620020961100123C0A7FFF13
63508 +:10595000354CFFFFA771003C960B00102403000597
63509 +:105960003168FFFFAF6800848E05001CAF5F002820
63510 +:105970008F3800008CC4444803057826008F3021FE
63511 +:10598000AF66004C8F69004C24CE00013C057F00BF
63512 +:10599000AF6900508F740050AF740054AF66007050
63513 +:1059A000AF6E00588F6D005824140050AF6D005C2E
63514 +:1059B000A3600023AF6C0064A36300378E02001461
63515 +:1059C000AF6200488F710048AF7100248E0B001841
63516 +:1059D000AF6B006C9208000CA3680036937F003E0A
63517 +:1059E00037F90020A379003E8F78007403058024E6
63518 +:1059F000360F4000AF6F007493640000308900FFE1
63519 +:105A0000513402452404FF803C04080024845A9841
63520 +:105A10000E00028D000000003C1008008E105A9805
63521 +:105A20000E00025602002021240600042407000173
63522 +:105A3000A366007D020020210E00025FA36700051F
63523 +:105A40008F5F017807E0FFFE240B0002AF5001409A
63524 +:105A5000A34B01448F90001C3C081000AF48017814
63525 +:105A60000A000362AF8000282CAD003751A0FF98D8
63526 +:105A70008F9100140005A0803C180800271856BC20
63527 +:105A8000029878218DEE000001C00008000000009F
63528 +:105A90002418000614B80011000000003C0808009B
63529 +:105AA0008D085A9824040005AF4800208E1F001866
63530 +:105AB000AF7F00188F79004CAF79001C8F650050C4
63531 +:105AC000122000C0AF6500700A000362AF84002896
63532 +:105AD0002406000710A60083240300063C050800E6
63533 +:105AE00024A55A980E000264240400818F90001CA3
63534 +:105AF0000011102B0A000362AF8200282407000463
63535 +:105B000014A7FFF6240500503C1808008F185A9877
63536 +:105B1000AF5800208E0F0008AF6F00408E090008BC
63537 +:105B2000AF6900448E14000CAF7400488E0E001054
63538 +:105B3000AF6E004C8E0D0010AF6D00848E0A001405
63539 +:105B4000AF6A00508E0C0018AF6C00548E04001C1D
63540 +:105B5000AF64005893630000306B00FF116501D8FB
63541 +:105B6000000000008F7400488F6900400289702394
63542 +:105B700005C000042404008C1620FFDE240200036C
63543 +:105B8000240400823C05080024A55A980E000287D0
63544 +:105B9000000000008F90001C000010210A0003622A
63545 +:105BA000AF820028240F000514AFFFCC240520008D
63546 +:105BB0003C0708008CE75A98AF4700208E06000487
63547 +:105BC000AF66005C9208000824100008A36800215A
63548 +:105BD0008F9F001C93F90009A37900208F86001C79
63549 +:105BE00090D8000A330400FF10900011000000005C
63550 +:105BF0002885000914A0006924020002240A00205C
63551 +:105C0000108A000B34058000288D002115A00008A3
63552 +:105C100024054000240E0040108E00053C050001C4
63553 +:105C200024140080109400023C050002240540006A
63554 +:105C30008F7800743C19FF00031980240205782531
63555 +:105C4000AF6F007490C4000BA36400818F84001CAC
63556 +:105C50009489000C11200192000000009490000C27
63557 +:105C60002406FFBF24050004A770003C908F000E9F
63558 +:105C7000A36F003E8F84001C9089000FA369003F32
63559 +:105C80008F8B001C8D6E00108F54007401D468231C
63560 +:105C9000AF6D00608D6A0014AF6A0064956C0018E7
63561 +:105CA000A76C00689563001AA763006A8D62001CE8
63562 +:105CB000AF62006C9167000EA367003E9368003EE0
63563 +:105CC0000106F8241220014BA37F003E8F90001C98
63564 +:105CD0000A000362AF8500282407002214A7FF7F73
63565 +:105CE000240300073C0B08008D6B5A981220000C0F
63566 +:105CF000AF4B00200A000362AF830028240C00335E
63567 +:105D000010AC0014240A00283C05080024A55A9869
63568 +:105D10000E00023C240400810A0003EB8F90001C5B
63569 +:105D20003C04080024845A980E00028D00000000F4
63570 +:105D30009363000024110050306200FF10510135C0
63571 +:105D4000000000008F90001C000018210A00036270
63572 +:105D5000AF8300283C0D08008DAD5A9824040081C3
63573 +:105D6000AF4D00203C05080024A55A980E00023CC7
63574 +:105D7000A36A00348F90001C240200090A00036209
63575 +:105D8000AF82002802B288213225FFFF0E000236C2
63576 +:105D9000240400840A0003628F90001C1082FFA478
63577 +:105DA00024050400288B000311600170240C0004FA
63578 +:105DB000240300015483FF9E240540000A00043B95
63579 +:105DC000240501003C04080024845A988F62004C8A
63580 +:105DD0000E00028D8F6300508F90001C0000202168
63581 +:105DE0000A000362AF8400288E1000042404008A95
63582 +:105DF000AF50002093790005333800021700015F8F
63583 +:105E0000020028219368002302002821311F00206E
63584 +:105E100017E0015A2404008D9367003F2406001206
63585 +:105E200030E200FF10460155240400810E000256A6
63586 +:105E30000200202193630023240500040200202196
63587 +:105E4000346B0042A36B00230E00025FA365007D4C
63588 +:105E50008F4401780480FFFE240A0002AF50014005
63589 +:105E6000A34A01448F90001C3C0C1000AF4C0178F9
63590 +:105E70000A0003EC0011102B8E1000042404008A89
63591 +:105E8000AF500020936E000531CD000215A0001622
63592 +:105E900002002821936F003F2414000402002821EF
63593 +:105EA00031E900FF11340010240400810E00025675
63594 +:105EB000020020219362002324080012241FFFFE09
63595 +:105EC00034460020A3660023A368003F93790005B1
63596 +:105ED00002002021033FC0240E00025FA3780005CA
63597 +:105EE00002002821000020210E00033400000000E1
63598 +:105EF0000A0003EB8F90001C8E1000043C03000886
63599 +:105F00000343A021AF500020928B000024050050D5
63600 +:105F1000316400FF10850161240700880200202100
63601 +:105F2000000028210E00022A2406000E928D000097
63602 +:105F3000240EFF800200282101AE8025A2900000DF
63603 +:105F4000240400040E000C5C240600300A0003EB5D
63604 +:105F50008F90001C8E0800043C14080026945A9868
63605 +:105F60003C010800AC285A98AF480020921F00035B
63606 +:105F700033F9000413200002240200122402000658
63607 +:105F8000A362003F920B001B2404FFC03165003F59
63608 +:105F900000A43825A367003E9206000330C200012A
63609 +:105FA00014400132000000008E020008AE8200089A
63610 +:105FB0003C0208008C425AA010400131000249C244
63611 +:105FC000A76900088E14000C240C0001240300149F
63612 +:105FD000AF74002C8E0E0010AF6E0030960D0016C0
63613 +:105FE000A76D0038960A0014A76A003AAF6C000C3F
63614 +:105FF000A76C0010A76C0012A76C0014A76C001609
63615 +:1060000012200136A3630034920F000331F0000226
63616 +:106010002E1100018F90001C262200080A00036246
63617 +:10602000AF8200288E0400043C0E0008034E30218D
63618 +:10603000AF4400208E05000890CD0000240C0050D5
63619 +:1060400031AA00FF114C00862407008824060009AD
63620 +:106050000E00022A000000000A0003EB8F90001CD3
63621 +:106060008E04001C0E00024100000000104000F4ED
63622 +:10607000004050218F89001C240700890140202105
63623 +:106080008D25001C240600010E00022A00000000DD
63624 +:106090000A0003EB8F90001C960D00023C140800D0
63625 +:1060A00026945A9831AA0004514000B83C10600070
63626 +:1060B0008E0E001C3C010800AC2E5A98AF4E0020FA
63627 +:1060C000920700102408001430E200FF144800D6A4
63628 +:1060D00000000000960B00023163000114600165AE
63629 +:1060E000000000008E020004AE8200083C1408008C
63630 +:1060F0008E945AA01280015B000000008F7400741F
63631 +:106100003C0380002404000102835825AF6B007417
63632 +:10611000A3600005AF64000C3C0708008CE75AA0A0
63633 +:106120008F86001CA7640010000711C2A76400122C
63634 +:10613000A7640014A7640016A76200088CC80008B2
63635 +:1061400024040002AF68002C8CC5000CAF65003041
63636 +:1061500090DF0010A37F00348F99001C9330001152
63637 +:10616000A37000358F98001C930F0012A36F0036A8
63638 +:106170008F89001C912E0013A36E00378F90001C96
63639 +:10618000960D0014A76D0038960A0016A76A003A0B
63640 +:106190008E0C0018AF6C00245620FDCCAF84002874
63641 +:1061A0003C05080024A55A980E0002640000202136
63642 +:1061B0008F90001C0A0004A7000020218E1000040C
63643 +:1061C00024070081AF500020936900233134001070
63644 +:1061D000128000170000000002002021000028218A
63645 +:1061E0002406001F0E00022A000000000A0003EB34
63646 +:1061F0008F90001C3C05080024A55A980E000287C9
63647 +:10620000240400828F90001C000028210A000362F1
63648 +:10621000AF8500283C0408008C845A980E0014E8CE
63649 +:10622000000000008F90001C0A000482000018216A
63650 +:106230000E00025602002021937800230200202144
63651 +:10624000370F00100E00025FA36F002300003821FB
63652 +:1062500002002021000028210A0005A82406001FB2
63653 +:10626000920F000C31E90001112000030000000032
63654 +:106270009618000EA4D8002C921F000C33F90002CF
63655 +:1062800013200005000038218E0200149608001229
63656 +:10629000ACC2001CA4C8001A0A0005432406000969
63657 +:1062A0003C05080024A55A980E0002872404008BA0
63658 +:1062B0008F90001C0011282B0A000362AF85002874
63659 +:1062C000AF6000843C0A08008D4A5A983C0D0800D3
63660 +:1062D0008DAD0050240CFF803C02000C014D1821B4
63661 +:1062E000006C2024AF4400288E070014306B007F20
63662 +:1062F000017A282100A2C821AF2700D88E060014F9
63663 +:10630000AF9900D0AF2600DC8E080010251FFFFEDD
63664 +:106310000A000408AF3F01083C0508008CA55A9804
63665 +:106320003C1908008F39005024CCFFFE00B9C02171
63666 +:1063300003047824AF4F00283C1408008E945A9828
63667 +:106340003C0908008D2900500289702131CD007F61
63668 +:1063500001BA502101478021AE0600D8AF9000D08D
63669 +:10636000AE0000DC0A0003B1AE0C0108548CFE3014
63670 +:10637000240540000A00043B240510000E00032EF3
63671 +:10638000000000000A0003EB8F90001C8E0F442CCD
63672 +:106390003C186C62370979703C010800AC205A98AF
63673 +:1063A00015E9000824050140979F00349786002CCA
63674 +:1063B0000280282103E6C82B132000112404009238
63675 +:1063C000240501400E000C7A240400023C01080060
63676 +:1063D000AC225A98AF4200203C0508008CA55A9880
63677 +:1063E00010A00005240400830E00084500000000F2
63678 +:1063F00010400009240400833C05080024A55A9895
63679 +:106400000E000264000000008F90001C0011202B81
63680 +:106410000A000362AF8400280E0008490000000053
63681 +:106420000A00055F8F90001C0E00084D0000000060
63682 +:106430003C05080024A55A980A00062F2404008B66
63683 +:10644000240400040E000C7A240500301440002AB5
63684 +:10645000004050218F89001C240700830140202127
63685 +:106460008D25001C0A000551240600018E04000839
63686 +:106470000E000241000000000A00051BAE82000869
63687 +:106480003C05080024A55A980E00023C240400870D
63688 +:106490008F90001C0A0005360011102B8F830038E6
63689 +:1064A0008F8600301066FE9D000038213C070800F2
63690 +:1064B00024E75A1C000320C0008728218CAC000070
63691 +:1064C00011900061246A00013143000F5466FFFA05
63692 +:1064D000000320C00A0004F6000038213C05080033
63693 +:1064E00024A55A980E000287240400828F90001C75
63694 +:1064F0000A000536000010213C0B0008034B202148
63695 +:106500002403005024070001AF420020A0830000B4
63696 +:10651000A08700018F82001C90480004A08800180A
63697 +:106520008F85001C90A60005A08600198F9F001C77
63698 +:1065300093F90006A099001A8F90001C921800078A
63699 +:10654000A098001B8F94001C928F0008A08F001C45
63700 +:106550008F89001C912E0009A08E001D8F8D001CBC
63701 +:1065600091AC000AA08C001E8F8B001C3C0C080014
63702 +:10657000258C5A1C9163000B3C0B0800256B5A18A4
63703 +:10658000A083001F8F87001C90E8000CA0880020CB
63704 +:106590008F82001C9045000D24024646A0850021F4
63705 +:1065A0008F86001C90DF000EA09F00228F99001C98
63706 +:1065B0009330000FA09000238F98001C93140010BC
63707 +:1065C000A09400248F8F001C91E90011A089002560
63708 +:1065D0008F89001C8F8E00308F900038952D00140D
63709 +:1065E000000E18C025C80001A48D002895270016AC
63710 +:1065F000006C3021006BC821A487002A9525001863
63711 +:106600003108000FA485002CA482002E8D3F001CB1
63712 +:10661000ACCA0000AF88003011100006AF3F000088
63713 +:10662000000038218D25001C014020210A00055161
63714 +:1066300024060001250C00013184000F00003821E0
63715 +:106640000A0006B8AF8400383C07080024E75A184F
63716 +:106650000087302100003821ACA000000A0004F6B9
63717 +:10666000ACC000003C05080024A55A980A00062F7B
63718 +:10667000240400878E0400040E0002410000000084
63719 +:106680000A00056AAE8200083084FFFF30C600FFB2
63720 +:106690008F4201B80440FFFE00064400010430258B
63721 +:1066A0003C07200000C720253C031000AF400180BC
63722 +:1066B000AF450184AF44018803E00008AF4301B84F
63723 +:1066C00027BDFFE8AFB00010AFBF00143C0760006B
63724 +:1066D000240600021080000600A080210010102B6C
63725 +:1066E0008FBF00148FB0001003E0000827BD001812
63726 +:1066F0003C09600EAD2000348CE5201C8F82001C0C
63727 +:106700002408FFFC00A81824ACE3201C0E0006D1CE
63728 +:106710008C45000C0010102B8FBF00148FB00010A0
63729 +:1067200003E0000827BD00183C02600E344701005A
63730 +:1067300024090018274A040000000000000000009F
63731 +:10674000000000003C06005034C30200AF44003893
63732 +:10675000AF45003CAF430030014018218F4B000093
63733 +:10676000316800201100FFFD2406007F2408FFFF90
63734 +:106770008C6C000024C6FFFF24630004ACEC000016
63735 +:1067800014C8FFFB24E70004000000000000000024
63736 +:10679000000000003C0F0020AF4F00300000000060
63737 +:1067A00024AD020001A5702B2529FFFF008E2021BA
63738 +:1067B0001520FFE101A0282103E0000800000000EF
63739 +:1067C00027BDFFE0AFB10014AFBF0018AFB000109D
63740 +:1067D0003C05600E8CA20034008088211440000625
63741 +:1067E0003C0460008C87201C2408FFFC00E8302457
63742 +:1067F00034C30001AC83201C8F8B001C24090001D2
63743 +:10680000ACA90034956900028D6500148D70000CF0
63744 +:106810002D2400818D6700048D660008108000071C
63745 +:106820008D6A00102D2C00041580000E30CE00075C
63746 +:10683000312D000311A0000B000000002404008B88
63747 +:10684000020028210E0006D1240600030011102B9F
63748 +:106850008FBF00188FB100148FB0001003E0000844
63749 +:1068600027BD002015C0FFF62404008B3C03002048
63750 +:10687000AF4300300000000024020001AF8200148A
63751 +:106880000000000000000000000000003C1F01505C
63752 +:10689000013FC825253800033C0F600EAF47003884
63753 +:1068A00000181882AF46003C35E8003CAF59003074
63754 +:1068B000274704008F4400003086002010C0FFFDF1
63755 +:1068C00000000000106000082466FFFF2403FFFFA3
63756 +:1068D0008CEB000024C6FFFF24E70004AD0B000092
63757 +:1068E00014C3FFFB250800043C08600EAD09003806
63758 +:1068F0000000000000000000000000003C07002035
63759 +:10690000AF470030000000000E0006F901402021D2
63760 +:1069100002002821000020210E0006D124060003D9
63761 +:106920000011102B8FBF00188FB100148FB0001012
63762 +:1069300003E0000827BD002027BDFFE0AFB200182C
63763 +:106940003092FFFFAFB10014AFBF001CAFB000101A
63764 +:106950001640000D000088210A0007AA022010211D
63765 +:1069600024050001508500278CE5000C0000000D77
63766 +:10697000262300013071FFFF24E200200232382B71
63767 +:1069800010E00019AF82001C8F8200141440001622
63768 +:106990008F87001C3C0670003C0320008CE5000043
63769 +:1069A00000A62024148300108F84003C00054402BC
63770 +:1069B0003C09800000A980241480FFE9310600FF13
63771 +:1069C0002CCA00095140FFEB262300010006688015
63772 +:1069D0003C0E080025CE579801AE60218D8B00003B
63773 +:1069E0000160000800000000022010218FBF001C81
63774 +:1069F0008FB200188FB100148FB0001003E00008B0
63775 +:106A000027BD00200E0006D1240400841600FFD804
63776 +:106A10008F87001C0A00078BAF80003C90EF0002BC
63777 +:106A200000002021240600090E0006D1000F2E00D0
63778 +:106A30008F87001C0010102B0A00078BAF82003CD0
63779 +:106A4000020028210E0006DF240400018F87001CAD
63780 +:106A50000A00078BAF82003C020028210E0006DFEF
63781 +:106A6000000020210A0007C38F87001C0E00071FAB
63782 +:106A7000020020210A0007C38F87001C30B0FFFFEF
63783 +:106A8000001019C08F5801B80700FFFE3C1F2004FA
63784 +:106A90003C191000AF430180AF400184AF5F018813
63785 +:106AA000AF5901B80A00078C262300013082FFFF8E
63786 +:106AB00014400003000018210004240224030010E5
63787 +:106AC000308500FF14A000053087000F2466000801
63788 +:106AD0000004220230C300FF3087000F14E00005DD
63789 +:106AE000308900032468000400042102310300FF00
63790 +:106AF0003089000315200005388B0001246A00024C
63791 +:106B000000042082314300FF388B00013164000112
63792 +:106B100010800002246C0001318300FF03E00008B4
63793 +:106B200000601021308BFFFF000B394230E600FF80
63794 +:106B30003C09080025295998000640800109602178
63795 +:106B40008D8700003164001F240A0001008A1804A8
63796 +:106B500030A500FF00E3202514A000020003102749
63797 +:106B600000E22024240F000100CF700401096821F5
63798 +:106B7000000E282714800005ADA400008F86000CAD
63799 +:106B800000A6102403E00008AF82000C8F88000CE0
63800 +:106B900001C8102503E00008AF82000C3C06001F6E
63801 +:106BA0003C0360003084FFFF34C5FF8024020020D6
63802 +:106BB000AC602008AC60200CAC602010AC652014E8
63803 +:106BC000AC642018AC62200000000000000000004F
63804 +:106BD00003E000080000000027BDFFE82402FFFFDB
63805 +:106BE000AFBF0010AF82000C000020213C0608005F
63806 +:106BF00024C659982405FFFF248900010004408021
63807 +:106C00003124FFFF010618212C87002014E0FFFA31
63808 +:106C1000AC6500000E0008160000202124020001CF
63809 +:106C20003C04600024050020AC822018AC852000C4
63810 +:106C3000000000000000000000000000244A0001E5
63811 +:106C40003142FFFF2C46040014C0FFF78FBF001035
63812 +:106C500003E0000827BD00188F8300082C620400A1
63813 +:106C600003E00008384200018F830008246200011D
63814 +:106C700003E00008AF8200088F8300082462FFFF52
63815 +:106C800003E00008AF82000827BDFFE0AFB10014A9
63816 +:106C9000AFBF0018AFB000108F6B00303C06600033
63817 +:106CA00000808821ACCB20088F6A002C3C02800039
63818 +:106CB00024030008ACCA200C9769003A9768003892
63819 +:106CC00000092C003107FFFF00A72025ACC42010CD
63820 +:106CD000ACC22014ACC32000000000000000000083
63821 +:106CE000000000003C0360008C6D200031AC000807
63822 +:106CF0001580FFF9000000008C6E201405C00020F4
63823 +:106D0000000000000E0007DA8F84000C00024080B3
63824 +:106D10003C09080025295998010938218CE4000014
63825 +:106D20000E0007DA00028140020220213090FFFFAE
63826 +:106D3000020020210E0007F8000028213C0C8000F2
63827 +:106D4000022C58253210FFFF3C116000240A00205D
63828 +:106D5000AE2B2014AE302018AE2A20000000000018
63829 +:106D60000000000000000000020010218FBF00188A
63830 +:106D70008FB100148FB0001003E0000827BD002081
63831 +:106D80008C6620143C02001F3443FF803C1FFFE848
63832 +:106D900000C3C02437F9080003198021001079C20C
63833 +:106DA0003C0C8000022C582531F0FFFF3C116000A4
63834 +:106DB000240A0020AE2B2014AE302018AE2A20006A
63835 +:106DC0000000000000000000000000000200102190
63836 +:106DD0008FBF00188FB100148FB0001003E00008BF
63837 +:106DE00027BD002027BDFFE8AFB000103402FFFF31
63838 +:106DF0003090FFFFAFBF00141202000602002021F6
63839 +:106E00000E00081600000000020020210E0007F806
63840 +:106E1000240500018F8400088FBF00148FB000107C
63841 +:106E20002483FFFF27BD001803E00008AF8300089C
63842 +:106E3000000439C230E6003F00043B42000718401E
63843 +:106E4000240210002CC4002024C8FFE0AF42002C14
63844 +:106E5000246300011480000330A900FF00071840DC
63845 +:106E6000310600FF0003608024080001019A5821C8
63846 +:106E70003C0A000E00C82804016A382111200005D0
63847 +:106E8000000530278CE900000125302503E00008CB
63848 +:106E9000ACE600008CEE000001C6682403E00008A8
63849 +:106EA000ACED000027BDFFE8AFBF0014AFB000108D
63850 +:106EB0003C0460008C8508083403F00030A2F00028
63851 +:106EC00050430006240200018C8708083404E000C7
63852 +:106ED00030E6F00010C4001E24020002AF82004021
63853 +:106EE0003C1060003C0A0200AE0A0814240910009D
63854 +:106EF0003C08000E8E03440003482021AF49002CBB
63855 +:106F0000240501200E000CC0000030218F830040BA
63856 +:106F1000106000043C021691240B0001106B000E5F
63857 +:106F20003C023D2C344F0090AE0F44088FBF00143C
63858 +:106F30008FB000103C0C6000240E10003C0D0200CD
63859 +:106F400027BD0018AD8E442003E00008AD8D081069
63860 +:106F50000A0008E7AF8000403C0218DA344F009086
63861 +:106F6000AE0F44088FBF00148FB000103C0C6000BF
63862 +:106F7000240E10003C0D020027BD0018AD8E4420E9
63863 +:106F800003E00008AD8D08100A0008BB24050001CD
63864 +:106F90000A0008BB000028213C08080025085DA461
63865 +:106FA0002404FFFF010018212402001E2442FFFFD9
63866 +:106FB000AC6400000441FFFD246300043C070800AA
63867 +:106FC00024E75E208CE5FFFC2404001C240600015D
63868 +:106FD000308A001F0146480424840001000910275C
63869 +:106FE0002C8300201460FFFA00A22824ACE5FFFCEB
63870 +:106FF0003C05666634A4616E3C06080024C65EE06B
63871 +:10700000AF840058AF88009C2404FFFF00C0182103
63872 +:107010002402001F2442FFFFAC6400000441FFFD76
63873 +:10702000246300043C0766663C05080024A55EA0B6
63874 +:10703000AF86004834E6616EAF8600982404FFFFF7
63875 +:1070400000A018212402000F2442FFFFAC640000BE
63876 +:107050000441FFFD246300043C0B66663C06080007
63877 +:1070600024C65E203568616EAF8500A4AF880070CD
63878 +:107070002404FFFF00C018212402001F2442FFFF48
63879 +:10708000AC6400000441FFFD246300043C0D66660F
63880 +:107090003C0A0800254A5F6035AC616EAF860090FF
63881 +:1070A000AF8C005C2404FFFF014018212402000380
63882 +:1070B0002442FFFFAC6400000441FFFD2463000490
63883 +:1070C0003C09080025295F708D27FFFC2404000679
63884 +:1070D000240500013099001F0325C0042484000109
63885 +:1070E000001878272C8E002015C0FFFA00EF3824F6
63886 +:1070F000AD27FFFC3C09666624030400240403DC7E
63887 +:1071000024050200240600663522616E3C08080052
63888 +:1071100025085AA4AF820074AF830044AF83006C8B
63889 +:10712000AF830050AF830084AF8A008CAF840064CB
63890 +:10713000AF85004CAF860054AF840078AF85006007
63891 +:10714000AF86008001001821240200022442FFFFC4
63892 +:10715000AC6000000441FFFD24630004240400032C
63893 +:107160002403000C3C0A0800254A5AB0AF8A006884
63894 +:107170000A00098E2405FFFF000418802484000102
63895 +:10718000006858212C8700C014E0FFFBAD650000AB
63896 +:107190003C0E666635CD616E240C17A024081800DD
63897 +:1071A000AF8D0088AF8C009403E00008AF88007CAE
63898 +:1071B0002484007F000421C200004021000030210F
63899 +:1071C00000003821000028210A0009A5AF8400A092
63900 +:1071D0001060000624E7000100C4302124A500014E
63901 +:1071E0002CC20BF51440FFFA2CA300663C090800E2
63902 +:1071F00025295F6001201821240200032442FFFF9B
63903 +:10720000AC6000000441FFFD2463000410E0001A9C
63904 +:1072100024E3FFFF0003294210A0000A0000202100
63905 +:107220002406FFFF3C03080024635F602484000100
63906 +:107230000085502BAC660000250800011540FFFBBF
63907 +:107240002463000430E2001F10400008000868803A
63908 +:10725000240C0001004C38040008588001692821E2
63909 +:1072600024E6FFFF03E00008ACA6000001A94021CE
63910 +:107270002409FFFFAD09000003E000080000000042
63911 +:10728000AF4400283C04000C034420210005288260
63912 +:107290000A000CC000003021000421803C03600083
63913 +:1072A000AC6410080000000000052980AC65100CDB
63914 +:1072B0000000000003E000088C62100C27BDFFE80E
63915 +:1072C0000080282124040038AFBF00140E0009D527
63916 +:1072D000AFB0001024040E00AF4400283C10000C96
63917 +:1072E00003502021240500100E000CC000003021A6
63918 +:1072F00003501021AC400000AC40000424040038CE
63919 +:107300008FBF00148FB0001024053FFF27BD001869
63920 +:107310000A0009D58C430000000421803C03600072
63921 +:10732000AC641008000000008C62100C03E0000840
63922 +:107330000002118227BDFFC8AFB400208F940068FF
63923 +:10734000AFBE0030AFB7002CAFB600280000B821A8
63924 +:107350000080B021241E00C0AFBF0034AFB50024B0
63925 +:10736000AFB3001CAFB20018AFB10014AFB0001043
63926 +:107370000A000A12AFA5003C504000018F9400683B
63927 +:1073800027DEFFFF13C00028269400048E92000021
63928 +:107390003C03080024635DA01240FFF70283102B1A
63929 +:1073A0003C04080024845AA4028410230002A8C0CC
63930 +:1073B000000098210A000A212411000100118840D0
63931 +:1073C000122000260000000002B380210251282470
63932 +:1073D0000200202110A0FFF9267300010E0009DE33
63933 +:1073E000000000000016684032EC000101AC2021D2
63934 +:1073F0000E0009D5020028218F89009426F700018C
63935 +:107400008FA6003C3AEB0001316A00012528FFFFFE
63936 +:107410000011382702CAB021AF88009416E6FFE7B2
63937 +:1074200002479024AE92000002E010218FBF00348A
63938 +:107430008FBE00308FB7002C8FB600288FB5002488
63939 +:107440008FB400208FB3001C8FB200188FB10014CE
63940 +:107450008FB0001003E0000827BD00383C0E080084
63941 +:1074600025CE5DA0028E102B0A000A0DAE92000000
63942 +:1074700027BDFFD8AFB10014AFB00010AFBF0020E0
63943 +:10748000AFB3001CAFB2001800A0882110A0001FED
63944 +:10749000000480403C13080026735AA40A000A5ACC
63945 +:1074A0002412000112200019261000010E0009F517
63946 +:1074B00002002021000231422444FFA0000618806F
63947 +:1074C0003045001F2C8217A1007318212631FFFFC1
63948 +:1074D0001040FFF400B230048C690000020020214B
63949 +:1074E00024053FFF012640241500FFEE0126382524
63950 +:1074F0000E0009D5AC6700008F8A009426100001A9
63951 +:10750000254700011620FFE9AF8700948FBF0020B8
63952 +:107510008FB3001C8FB200188FB100148FB0001011
63953 +:1075200003E0000827BD00288F85009C00805821BB
63954 +:107530000000402100004821240A001F3C0C0800E4
63955 +:10754000258C5E1C3C0D080025AD5DA48CA60000BA
63956 +:1075500050C000140000402100AD1023000238C0CC
63957 +:10756000240300010A000A930000202115000003F3
63958 +:1075700000E410212448202400004821252900018E
63959 +:10758000512B00132506DFDC106000062484000167
63960 +:1075900000C3702415C0FFF5000318400A000A91CB
63961 +:1075A0000000402110AC002624A300040060282124
63962 +:1075B000254AFFFF1540FFE5AF85009C512B0004D5
63963 +:1075C0002506DFDC0000402103E000080100102157
63964 +:1075D0000006614230C5001F000C50803C070800C7
63965 +:1075E00024E75DA424040001014730211120000F8D
63966 +:1075F00000A420043C05080024A55E20148000059A
63967 +:107600002529FFFF24C6000410C50011000000005A
63968 +:10761000240400018CCF00000004C0270004204097
63969 +:1076200001F868241520FFF5ACCD00008F99007893
63970 +:1076300001001021032B482303E00008AF890078E4
63971 +:107640003C05080024A55DA40A000A9B0000402117
63972 +:107650003C06080024C65DA40A000AB42404000104
63973 +:10766000308800FF240200021102000A24030003F4
63974 +:107670001103005C8F8900A4240400041104005F3E
63975 +:1076800024050005110500670000182103E000082B
63976 +:10769000006010218F8900483C0C0800258C5EE0BA
63977 +:1076A0003C04080024845F60240300201060000F65
63978 +:1076B00000005821240D0002240E00033C0F080096
63979 +:1076C00025EF5EE08D27000014E0000B30F9FFFF8E
63980 +:1076D000252900040124C02B53000001018048210A
63981 +:1076E0002463FFFF5460FFF88D270000016018211C
63982 +:1076F00003E0000800601021132000323C0500FF69
63983 +:1077000030E200FF004030211040004200005021D4
63984 +:1077100024050001000020210005C84000A6C02467
63985 +:1077200017000003332500FF14A0FFFB2484000191
63986 +:10773000012CC023001828C000AA6021008C502111
63987 +:107740003144001F240C0001008C18040003102792
63988 +:1077500000E23024110D0041AD260000110E004C56
63989 +:10776000000A1840110D00368F87006C510E00562C
63990 +:107770008F8C0060240D0004110D005A8F8E008440
63991 +:10778000240E0005150EFFDA01601821240B1430B9
63992 +:1077900011400006000018218F8400A0246300011E
63993 +:1077A000006A402B1500FFFD016458218F8A00807C
63994 +:1077B000AF89008C016018212549FFFF0A000AEB00
63995 +:1077C000AF89008000E52024000736021080FFD03A
63996 +:1077D000240A001800075402314600FF0A000AF389
63997 +:1077E000240A00103C0C0800258C5EA03C04080014
63998 +:1077F00024845EE00A000ADA240300103C0C08002E
63999 +:10780000258C5E203C04080024845EA00A000AD96E
64000 +:107810008F89009000071A02306600FF0A000AF301
64001 +:10782000240A00088F89008C3C0C0800258C5F60BE
64002 +:107830003C04080024845F700A000ADA2403000470
64003 +:10784000000A4080250B003024E6FFFF016018216C
64004 +:10785000AF8900480A000AEBAF86006C000AC982B3
64005 +:10786000001978803C07080024E75EA001E720218A
64006 +:10787000000A18428C8F00003079001F032C380456
64007 +:107880000007C02701F860240A000B08AC8C000038
64008 +:10789000000331420006288000AF28213062001F1B
64009 +:1078A0008CB8000024630001004CC804000321428E
64010 +:1078B000001938270004108003073024004F2021CE
64011 +:1078C0000A000B4CACA60000000A68C025AB0032D1
64012 +:1078D000258AFFFF01601821AF8900A40A000AEB86
64013 +:1078E000AF8A0060254B1030AF89009001601821ED
64014 +:1078F00025C9FFFF0A000AEBAF8900843086000724
64015 +:107900002CC2000610400014000000000006408059
64016 +:107910003C030800246357BC010338218CE40000B9
64017 +:1079200000800008000000002409000310A9000ED8
64018 +:1079300000000000240A000510AA000B000000004F
64019 +:10794000240B000110AB0008000000008F8C00A089
64020 +:1079500010AC00050000000003E00008000010214A
64021 +:107960000A000A7900A020210A000AC700C02021CD
64022 +:1079700027BDFFE8308400FF240300021083000BC2
64023 +:10798000AFBF0010240600031086003A240800044C
64024 +:1079900010880068240E0005108E007F2CAF143074
64025 +:1079A0008FBF001003E0000827BD00182CA2003094
64026 +:1079B0001440FFFC8FBF001024A5FFD0000531C28A
64027 +:1079C000000668803C07080024E75EE001A730213C
64028 +:1079D0008CC900000005288230AC001F240B000178
64029 +:1079E000018B50048F840048012A4025ACC8000058
64030 +:1079F0008C83000050600001AF8600488F98006CB7
64031 +:107A000030AE000124A6FFFF270F000115C00002C1
64032 +:107A1000AF8F006C24A600010006414200082080C0
64033 +:107A2000008718218C79000030C2001F2406000155
64034 +:107A30000046F804033F382410E0FFDA8FBF00103F
64035 +:107A40000005C182001870803C0F080025EF5EA081
64036 +:107A500001CF48218D2B00000005684231A5001F91
64037 +:107A600000A66004016C502527BD001803E0000843
64038 +:107A7000AD2A00002CA7003014E0FFCA8FBF001011
64039 +:107A800030B900071723FFC724A8FFCE00086A02F9
64040 +:107A9000000D60803C0B0800256B5EA0018B30213F
64041 +:107AA0008CC40000000828C230AA001F240800016E
64042 +:107AB000014848048F8200A400891825ACC3000047
64043 +:107AC0008C5F000053E00001AF8600A40005704009
64044 +:107AD000000E7942000F28803C04080024845EE0F8
64045 +:107AE00000A418218C6B000025DF000131CD001FA0
64046 +:107AF000001F514201A86004016C4825000A108053
64047 +:107B0000AC690000004428218CA600008F9800601A
64048 +:107B100033F9001F8FBF00100328380400C77825F1
64049 +:107B2000270E000127BD0018ACAF000003E00008DD
64050 +:107B3000AF8E006024A5EFD02CB804001300FF998D
64051 +:107B40008FBF001000053142000658803C0A080033
64052 +:107B5000254A5E20016A30218CC4000030A3001F3A
64053 +:107B600024090001006910048F9900900082F82513
64054 +:107B7000ACDF00008F27000050E00001AF860090CE
64055 +:107B80008F8D00848FBF001027BD001825AC000129
64056 +:107B900003E00008AF8C008415E0FF828FBF001067
64057 +:107BA0008F8600A0000610400046F821001F21002B
64058 +:107BB00003E4C8210019384024F8143000B8402BE1
64059 +:107BC0001100FF788FBF001024A4EBD00E00021329
64060 +:107BD00000C0282100027942000F70803C0D08008F
64061 +:107BE00025AD5F6001CD20218C8B0000304C001F43
64062 +:107BF00024060001018618048F89008C016350253A
64063 +:107C0000AC8A00008D25000050A00001AF84008CDC
64064 +:107C10008F9800808FBF001027BD00182708000133
64065 +:107C200003E00008AF88008030A5000724030003AC
64066 +:107C300010A3001028A2000414400008240700022A
64067 +:107C40002403000410A300152408000510A8000F49
64068 +:107C50008F8500A003E000080000000014A7FFFDCE
64069 +:107C60000080282114C3FFFB240400020A000B8BB0
64070 +:107C700000000000240900050080282110C9FFFB36
64071 +:107C80002404000303E000080000000014C5FFF115
64072 +:107C9000008028210A000B8B24040005240A00011F
64073 +:107CA0000080282110CAFFF12404000403E000082A
64074 +:107CB0000000000027BDFFE0AFB00010000581C24A
64075 +:107CC0002603FFD024C5003F2C6223D024C6007FAA
64076 +:107CD000AFB20018AFB10014AFBF001C309100FF6D
64077 +:107CE000000691C2000529820200202110400008F0
64078 +:107CF0002403FFFF0E000A4B0000000002002021B9
64079 +:107D0000022028210E000C390240302100001821E9
64080 +:107D10008FBF001C8FB200188FB100148FB00010FD
64081 +:107D20000060102103E0000827BD002027BDFFD818
64082 +:107D300024A2007FAFB3001CAFB20018000299C2AA
64083 +:107D4000309200FF24A3003F02402021026028213E
64084 +:107D5000AFB10014AFB00010AFBF00200E000B6E2B
64085 +:107D60000003898200408021004020210220282138
64086 +:107D700014400009000018218FBF00208FB3001CA1
64087 +:107D80008FB200188FB100148FB000100060102166
64088 +:107D900003E0000827BD00280E0009FC00000000D9
64089 +:107DA00000402821020020211051FFF3001019C0CB
64090 +:107DB0000E000A4B00000000020020210240282192
64091 +:107DC0000E000C39026030218FBF00208FB3001CE1
64092 +:107DD0008FB200188FB100148FB00010000018216E
64093 +:107DE0000060102103E0000827BD00283084FFFF59
64094 +:107DF00030A5FFFF1080000700001821308200012D
64095 +:107E00001040000200042042006518211480FFFB8E
64096 +:107E10000005284003E000080060102110C00007A2
64097 +:107E2000000000008CA2000024C6FFFF24A500046F
64098 +:107E3000AC82000014C0FFFB2484000403E00008AF
64099 +:107E40000000000010A0000824A3FFFFAC86000083
64100 +:107E500000000000000000002402FFFF2463FFFF79
64101 +:107E60001462FFFA2484000403E00008000000000C
64102 +:107E700030A5FFFF8F4201B80440FFFE3C076015AC
64103 +:107E800000A730253C031000AF440180AF400184BF
64104 +:107E9000AF46018803E00008AF4301B88F8500D0EA
64105 +:107EA0002C864000008018218CA700840087102BAE
64106 +:107EB00014400010000000008CA800842D06400033
64107 +:107EC00050C0000F240340008CAA0084008A482B75
64108 +:107ED000512000018CA3008400035A42000B208033
64109 +:107EE0003C05080024A558200085182103E000085F
64110 +:107EF0008C62000014C0FFF4000000002403400066
64111 +:107F000000035A42000B20803C05080024A558209D
64112 +:107F10000085182103E000088C6200008F8300D0E8
64113 +:107F2000906600D024C50001A06500D08F8500D0E8
64114 +:107F3000906400D090A200D210440017000000000E
64115 +:107F4000936C00788F8B00BC318A00FFA16A000C13
64116 +:107F500025490001938700C4312200FF3048007F8B
64117 +:107F60001107000B00026827A36200788F4E01788A
64118 +:107F700005C0FFFE8F9900B0241800023C0F1000CE
64119 +:107F8000AF590140A358014403E00008AF4F017806
64120 +:107F90000A000D0931A20080A0A000D00A000CFF49
64121 +:107FA000000000008F8700D027BDFFC8AFBF0030A2
64122 +:107FB000AFB7002CAFB60028AFB50024AFB4002097
64123 +:107FC000AFB3001CAFB20018AFB10014AFB00010D7
64124 +:107FD00094E300E094E200E2104300D72405FFFFA1
64125 +:107FE0003C047FFF3497FFFF2415FF800A000DF04B
64126 +:107FF0003C16000E108A00D18FBF00308F9100B068
64127 +:108000003C1808008F18005C001230C0001291402C
64128 +:108010000311702101D57824AF4F002C94EC00E2BD
64129 +:1080200031CD007F01BA5821318A7FFF0176482186
64130 +:10803000000A804002091021945300003C08080007
64131 +:108040008D0800580246C02132733FFF001319808B
64132 +:10805000010320210224282130BF007F03FAC82118
64133 +:1080600000B5A024AF54002C0336A0218E87001049
64134 +:108070008E8F003003785821256D008800EF702323
64135 +:10808000240C0002AE8E0010AF8D00ACA16C0088F5
64136 +:10809000976A003C8E8400308F9100AC0E000CD6A5
64137 +:1080A0003150FFFF00024B80020940253C02420094
64138 +:1080B00001022025AE2400048E8300048F8D00ACC5
64139 +:1080C0008E860000240E0008ADA3001CADA600188B
64140 +:1080D000ADA0000CADA00010929F000A33F900FF84
64141 +:1080E000A5B90014968500083C1F000CA5A5001634
64142 +:1080F0009298000A331100FFA5B100209690000865
64143 +:1081000024180005A5B00022ADA00024928F000B1A
64144 +:108110002410C00031E700FFA5A70002A1AE0001B6
64145 +:108120008E8C00308F8B00AC8F8400B0AD6C00085B
64146 +:108130003C0A08008D4A005401444821013540247E
64147 +:10814000AF4800283C0208008C4200540044302113
64148 +:1081500030C3007F007AC821033F282102458821CF
64149 +:10816000AF9100BCAF8500C0A23800008F8A00BC70
64150 +:108170002403FFBF2418FFDF954F000201F03824CD
64151 +:1081800000F37025A54E0002914D000231AC003F76
64152 +:10819000358B0040A14B00028F8600BC8F8900D038
64153 +:1081A000ACC000048D28007C3C098000ACC80008ED
64154 +:1081B00090C4000D3082007FA0C2000D8F8500BCEE
64155 +:1081C00090BF000D03E3C824A0B9000D8F9100BC3F
64156 +:1081D0009233000D02789024A232000D8E9000346C
64157 +:1081E0008F8B00BCAD7000108E87002C8E8F0030FE
64158 +:1081F00000EF7023AD6E0014916D001831AC007F5C
64159 +:10820000A16C00188F9F00BC8E8A00308FE8001888
64160 +:10821000015720240109302400C41025AFE20018C2
64161 +:108220009283000AA3E3001C969900088F8500BC86
64162 +:108230008F9800D0A4B9001E8E9000308E8400303C
64163 +:108240000E0002138F0500848F8500D0000291403C
64164 +:108250000002990090AF00BC0253882100403021F9
64165 +:1082600031E7000210E0000302118021000290803B
64166 +:108270000212802190B900BC3327000410E00002F4
64167 +:108280000006F880021F80218E9800308F8B00BC82
64168 +:1082900024068000330F0003000F702331CD00034C
64169 +:1082A000020D6021AD6C000494A400E294AA00E2E7
64170 +:1082B00094B000E231497FFF2522000130537FFF57
64171 +:1082C0000206182400734025A4A800E294A400E24A
64172 +:1082D0003C1408008E94006030917FFF123400221D
64173 +:1082E000000000000E000CF6000000008F8700D098
64174 +:1082F0000000282194F300E094F000E21213000F34
64175 +:108300008FBF003090E900D090E800D1313200FFFB
64176 +:10831000310400FF0244302B14C0FF36264A00010E
64177 +:1083200090EE00D2264B000131CD00FF008D602180
64178 +:10833000158BFF338F9100B08FBF00308FB7002CAB
64179 +:108340008FB600288FB500248FB400208FB3001C97
64180 +:108350008FB200188FB100148FB0001000A0102150
64181 +:1083600003E0000827BD003894A300E20066402423
64182 +:10837000A4A800E290A400E290B900E2309100FFCE
64183 +:108380000011A1C20014F827001F39C03332007F4A
64184 +:10839000024730250A000DE8A0A600E23084FFFF66
64185 +:1083A00030A5FFFFAF440018AF45001C03E00008F4
64186 +:1083B0008F42001427BDFFB8AFB000208F9000D0CF
64187 +:1083C0003084FFFFAFA40010AFBF0044AFBE004039
64188 +:1083D000AFB7003CAFB60038AFB50034AFB4003033
64189 +:1083E000AFB3002CAFB20028AFB10024A7A0001893
64190 +:1083F000920600D1920500D030C400FF30A300FFE8
64191 +:108400000064102B10400122AFA00014920900D08C
64192 +:108410008FB50010312800FF0088382324F4FFFFB7
64193 +:108420000014882B0015982B02339024524001260B
64194 +:108430008FB40014961E0012961F00108FB7001004
64195 +:1084400003DFC823001714000019C400000224032E
64196 +:108450000018140302E2B02A52C00001004020219B
64197 +:108460000284282B10A0000200801821028018210D
64198 +:1084700000033C0000071C033064FFFF2C8600094A
64199 +:1084800014C000020060B821241700088E0A0008FA
64200 +:10849000001769808E09000C31ABFFFF3C0C001007
64201 +:1084A000016C402527520400AF4A0038AF9200B853
64202 +:1084B000AF49003CAF480030000000000000000061
64203 +:1084C00000000000000000000000000000000000AC
64204 +:1084D00000000000000000008F4F000031EE00207F
64205 +:1084E00011C0FFFD0017982A027110240A000E83A4
64206 +:1084F0000000B02155E001019258000131130080C5
64207 +:10850000126001CF012020219655001232A5FFFFF5
64208 +:108510000E000CCBA7B500188F9000D00291A023BD
64209 +:1085200026CD00018F9100B8000DB4000016B403F1
64210 +:108530002638004002D7582A0014882B2405000151
64211 +:108540000300902101711024AF9800B8AFA500146A
64212 +:10855000104001BC8F8900B03C0C08008D8C005489
64213 +:10856000240BFF80921E00D001895021014B28244A
64214 +:10857000921900D0AF4500288E4700103C08080033
64215 +:108580008D0800583C1808008F18005430E33FFF56
64216 +:108590000003218001043021012658212402FF809C
64217 +:1085A0000162F824920C00D0AF5F002C92480000CA
64218 +:1085B00033D100FF333500FF0309982100117140CA
64219 +:1085C000001578C0326D007F01CF382101BA282113
64220 +:1085D000318300FF3164007F3C0A000C00AA88212F
64221 +:1085E0000367F02100033140009A10213108003F59
64222 +:1085F0003C1F000E00D1C021005F982127D90088C0
64223 +:108600002D150008AF9100C0AF9900ACAF9800BC29
64224 +:10861000AF9300B412A0018A00008821240E00014B
64225 +:10862000010E4004310D005D11A0FFB2310F0002B8
64226 +:108630008E4A00283C0300803C04FFEFAE6A000035
64227 +:108640008E450024A260000A3488FFFFAE65000456
64228 +:108650009247002C3C1FFF9F37FEFFFFA267000CD4
64229 +:108660008E62000C3C180040A267000B00433025CE
64230 +:1086700000C8C824033E88240238A825AE75000C23
64231 +:108680008E490004AE6000183C0F00FFAE69001474
64232 +:108690008E4D002C35EEFFFF8F8B00B001AE6024B5
64233 +:1086A000AE6C00108E470008A660000896450012C8
64234 +:1086B000AE6700208E42000C30B03FFF00105180AA
64235 +:1086C000AE6200248E5E0014014B182130A400011C
64236 +:1086D000AE7E00288E590018000331C2000443808A
64237 +:1086E000AE79002C8E51001C00C8F821A67F001C1A
64238 +:1086F000AE710030965800028E550020A678001EFC
64239 +:10870000AE75003492490033313000045600000544
64240 +:10871000925000008F8C00D08D8B007CAE6B0030AF
64241 +:10872000925000008F8F00BCA1F00000924E0033E9
64242 +:1087300031CD000251A00007925E00018F8900BC7C
64243 +:108740002418FF80913100000311A825A1350000F5
64244 +:10875000925E00018F9900BC2409FFBF240BFFDF4C
64245 +:10876000A33E00018F9500BC92B8000D3311007F2D
64246 +:10877000A2B1000D8F8E00BC91D0000D02097824AB
64247 +:10878000A1CF000D8F8800BC8E6D0014910A000DE2
64248 +:108790002DAC0001000C2940014B382400E51825C0
64249 +:1087A000A103000D964200128F8800BC8F8700D075
64250 +:1087B000A50200028E45000490FF00BC30A4000317
64251 +:1087C0000004302330DE000300BE102133F9000224
64252 +:1087D00017200002244400342444003090E200BCFE
64253 +:1087E00000A2302430DF000417E0000224830004DC
64254 +:1087F000008018218F8F00AC24090002AD03000413
64255 +:10880000A1E90000924E003F8F8D00ACA1AE0001A7
64256 +:108810008F9500AC924C003F8E440004A6AC000241
64257 +:10882000976B003C0E000CD63170FFFF00025380A6
64258 +:10883000020A38253C05420000E51825AEA30004D5
64259 +:108840008F8600AC8E480038ACC800188E440034C7
64260 +:10885000ACC4001CACC0000CACC00010A4C0001420
64261 +:10886000A4C00016A4C00020A4C00022ACC00024F4
64262 +:108870008E6400145080000124040001ACC4000880
64263 +:108880000E000CF6241100010A000E768F9000D025
64264 +:10889000920F00D2920E00D08FB5001031EB00FF86
64265 +:1088A00031CD00FF008D6023016C50212554FFFF66
64266 +:1088B0000014882B0015982B023390241640FEDDFF
64267 +:1088C000000000008FB400148FBF00448FBE004032
64268 +:1088D0003A8200018FB7003C8FB600388FB5003464
64269 +:1088E0008FB400308FB3002C8FB200288FB10024DA
64270 +:1088F0008FB0002003E0000827BD0048331100209E
64271 +:10890000122000EF24150001921E00BC241F00015C
64272 +:108910000000A82133D900011320000DAFBF001CB7
64273 +:108920008E4400148E0800840088102B144000022E
64274 +:10893000008030218E0600848E03006400C3A82BC3
64275 +:1089400016A0000200C020218E0400640080A8212F
64276 +:108950008E4700148E05006400E5302B14C0000221
64277 +:1089600000E020218E0400640095F02313C0000471
64278 +:108970008FAC001C240A0002AFAA001C8FAC001CA4
64279 +:10898000028C582B156000A8000018218E4F00386B
64280 +:108990008E6D000C3C0E0080AE6F00008E4A0034DD
64281 +:1089A0003C10FF9F01AE5825AE6A00049246003F7E
64282 +:1089B000360CFFFF016C38243C0500203C03FFEF20
64283 +:1089C000A266000B00E510253468FFFF8F8700B812
64284 +:1089D0000048F8243C04000803E4C825AE79000CE4
64285 +:1089E0008CF80014AE60001802BE7821AE78001436
64286 +:1089F0008CF10018AE71001C8CE90008AE690024EF
64287 +:108A00008CEE000CAE6F002CAE600028AE6E002025
64288 +:108A1000A6600038A660003A8CED001401B58023F2
64289 +:108A2000021E902312400011AE72001090EA003D29
64290 +:108A30008E6500048E640000000A310000A6C82183
64291 +:108A4000000010210326402B0082F82103E8C021FA
64292 +:108A5000AE790004AE78000090F1003DA271000AEA
64293 +:108A60008F8900B895320006A67200088F9800AC76
64294 +:108A70002419000202A02021A31900009769003CDC
64295 +:108A80008F9200AC0E000CD63131FFFF00027B80CC
64296 +:108A90008F8500B8022F68253C0E420001AE80256C
64297 +:108AA000AE5000048F8400AC8CAC0038AC8C001845
64298 +:108AB0008CAB0034AC8B001CAC80000CAC80001084
64299 +:108AC000A4800014A4800016A4800020A4800022AA
64300 +:108AD000AC80002490A7003FA487000212A00135BB
64301 +:108AE0002403000153C0000290A2003D90A2003E6A
64302 +:108AF00024480001A08800018F9F00ACAFF500085A
64303 +:108B00008F8300D024070034906600BC30C500027B
64304 +:108B100050A00001240700308F9200B88F8A00BC5B
64305 +:108B2000906D00BC924B00002412C00032A50003DF
64306 +:108B3000A14B00008F8600B88F8800BC240200047F
64307 +:108B400090C400010045182330790003A1040001FE
64308 +:108B50008F8A00BC8F9F00B800F53821955800021D
64309 +:108B600097E9001200F9382103128824312F3FFFC2
64310 +:108B7000022F7025A54E00029150000231A800047A
64311 +:108B8000320C003F358B0040A14B000212A00002C6
64312 +:108B90008F8500BC00E838218F8E00D0ACA7000480
64313 +:108BA000240BFFBF8DCD007C2EA400012403FFDF2A
64314 +:108BB000ACAD000890B0000D00044140320C007FC5
64315 +:108BC000A0AC000D8F8600BC90CA000D014B102494
64316 +:108BD000A0C2000D8F8700BC90E5000D00A3F82413
64317 +:108BE00003E8C825A0F9000D8F9100B88F8D00BC57
64318 +:108BF0008E380020ADB800108E290024ADA90014D5
64319 +:108C00008E2F0028ADAF00188E2E002C0E000CF613
64320 +:108C1000ADAE001C8FB0001C240C0002120C00EE44
64321 +:108C20008F9000D08FA3001C006088211460000288
64322 +:108C30000060A8210000A02156A0FE390291A023C7
64323 +:108C40000014882B8FA90010960700103C1E0020EE
64324 +:108C50000136402302C750213112FFFFA60A00103F
64325 +:108C6000AFB20010AF5E0030000000009617001099
64326 +:108C7000961300121277008F000000008E05000C82
64327 +:108C80008E0B00080016698000AD7021000DC7C36F
64328 +:108C900001CDA82B0178782101F56021AE0E000CE2
64329 +:108CA000AE0C00088FB300100013B82B02378024DD
64330 +:108CB0001200FF048F9000D00A000E3C000000005C
64331 +:108CC0008E4D0038A6600008240B0003AE6D000036
64332 +:108CD0008E500034A260000A8F9800B8AE70000475
64333 +:108CE0003C0500809311003FA26B000C8E6F000CBE
64334 +:108CF0003C0EFF9FA271000B01E5102535CCFFFF54
64335 +:108D00003C03FFEF8F9200B8004C30243464FFFF27
64336 +:108D100000C4F824AE7F000C8E590014964800124F
64337 +:108D20008F8A00B0AE7900108E490014AE60001832
64338 +:108D3000AE600020AE690014AE6000248E470018BB
64339 +:108D400031093FFF0009F180AE6700288E4D000811
64340 +:108D500003CA802131180001AE6D00308E4F000C27
64341 +:108D60008F8C00AC001089C200185B80022B282178
64342 +:108D7000240E0002A665001CA6600036AE6F002C13
64343 +:108D8000A18E00009763003C8F8A00AC3C04420037
64344 +:108D90003062FFFF00443025AD4600048F9F00B8CD
64345 +:108DA000240700012411C0008FF30038240600348A
64346 +:108DB000AD5300188FF90034AD59001CAD40000CC4
64347 +:108DC000AD400010A5400014A5400016A5400020AD
64348 +:108DD000A5400022AD400024A5550002A147000196
64349 +:108DE0008F9E00AC8F8800B88F9200BCAFD5000872
64350 +:108DF000910D0000A24D00008F9000B88F8B00BC39
64351 +:108E000092180001A17800018F8400BC94850002B3
64352 +:108E100000B1782401E97025A48E0002908C000234
64353 +:108E20003183003FA08300028F8300D08F8400BC79
64354 +:108E3000906200BC305300025260000124060030F2
64355 +:108E4000AC8600048C6F007C2403FFBF02A0882145
64356 +:108E5000AC8F0008908E000D31CC007FA08C000DEF
64357 +:108E60008F8600BC90C2000D00432024A0C4000DDA
64358 +:108E70008F8900BC913F000D37F90020A139000D0A
64359 +:108E80008F8800B88F9300BC8D070020AE6700105C
64360 +:108E90008D0A0024AE6A00148D1E0028AE7E0018D4
64361 +:108EA0008D12002C0E000CF6AE72001C0A00103D54
64362 +:108EB0008F9000D0960E00148E03000431CCFFFF7B
64363 +:108EC000000C10C000622021AF44003C8E1F000443
64364 +:108ED0008F46003C03E6C8231B20003C0000000036
64365 +:108EE0008E0F000025E200013C05001034B500089B
64366 +:108EF000AF420038AF550030000000000000000015
64367 +:108F00000000000000000000000000000000000061
64368 +:108F100000000000000000008F580000330B00200C
64369 +:108F20001160FFFD000000008F5304003C0D002085
64370 +:108F3000AE1300088F570404AE17000CAF4D00307D
64371 +:108F4000000000003C0608008CC600442416000106
64372 +:108F500010D600BD00000000961F00123C0508005E
64373 +:108F60008CA5004000BFC821A61900129609001464
64374 +:108F700025270001A6070014960A00143144FFFFBC
64375 +:108F80005486FF498FB30010A60000140E000E1681
64376 +:108F900030A5FFFF3C0408008C84002496030012D7
64377 +:108FA0000044102300623023A60600120A00105964
64378 +:108FB0008FB30010A08300018F8200AC2404000155
64379 +:108FC000AC4400080A000FF08F8300D08E0200002E
64380 +:108FD0000A0010EA3C0500108F8200C08FA7001C19
64381 +:108FE000921800D0920B00D0920E00D0331100FFE7
64382 +:108FF000316900FF00117940000928C001E56021B6
64383 +:1090000031C300FF036C50210003314000C2C8216E
64384 +:10901000255F0088AF9F00ACAF9900BCA1470088D6
64385 +:109020009768003C03C020218F9100AC0E000CD645
64386 +:109030003110FFFF00026B80020DC0253C0442008E
64387 +:109040008F8D00B803045825AE2B00048DA900387D
64388 +:109050008F8B00AC0000882100118100AD690018E1
64389 +:109060008DAF00343C087FFF3504FFFFAD6F001C5F
64390 +:1090700091AC003E8D65001C8D660018000C190037
64391 +:10908000000C770200A33821020E102500E3F82B14
64392 +:1090900000C2C821033F5021AD67001CAD6A001813
64393 +:1090A000AD60000CAD60001091B8003E24050005D5
64394 +:1090B00003C45024A578001495A9000403C02021FE
64395 +:1090C000A569001691AF003EA56F002095B1000480
64396 +:1090D000A5710022AD60002491AE003FA56E000294
64397 +:1090E00091B0003E91AC003D01901023244300015B
64398 +:1090F000A16300018F8600AC8F9F00BCACDE00082E
64399 +:10910000A3E500008F9000BC8F9900B82405FFBF35
64400 +:1091100096070002973800120247782433093FFF70
64401 +:1091200001E98825A6110002921200022418FFDF2F
64402 +:10913000324E003F35CD0040A20D00028F8600BCAC
64403 +:109140008F8C00D02412FFFFACC000048D8B007CFC
64404 +:109150003C0C8000ACCB000890C2000D3043007F77
64405 +:10916000A0C3000D8F8700BC90FF000D03E5C8244D
64406 +:10917000A0F9000D8F9100BC9229000D01387824D0
64407 +:10918000A22F000D8F9000BCAE120010AE1500147F
64408 +:10919000920E00182415FF8002AE6825A20D00185B
64409 +:1091A0008F8500BC8F8300B88CAB0018016C102435
64410 +:1091B000004A3025ACA600189068003EA0A8001C0C
64411 +:1091C0008F9F00B88F8700BC8F9800D097F900045C
64412 +:1091D000A4F9001E0E0002138F0500848F8600D0B4
64413 +:1091E000000279400002490090D200BC01E98821C8
64414 +:1091F000004028213255000212A0000303D1202193
64415 +:109200000002A8800095202190CD00BC31B200045E
64416 +:109210001240000333DF0003000540800088202156
64417 +:10922000240600048F9E00BC00DFC8233327000300
64418 +:1092300000875021AFCA00040E000CF6A665003866
64419 +:109240000A0010388F9000D0961E00123C080800CB
64420 +:109250008D080024011E9021A61200120A00105948
64421 +:109260008FB3001027BDFFE03C1808008F18005096
64422 +:10927000AFB00010AFBF0018AFB10014AF8400B0A2
64423 +:1092800093710074030478212410FF8031EE007F75
64424 +:109290003225007F01F0582401DA68213C0C000AD5
64425 +:1092A000A38500C401AC2821AF4B002494A9001071
64426 +:1092B0009768000690A600620080382124020030E2
64427 +:1092C0000109202330C300F0AF8500D010620019DF
64428 +:1092D0003090FFFF90AE0062240DFFF0240A005092
64429 +:1092E00001AE6024318B00FF116A002F00000000E6
64430 +:1092F00016000007241F0C00AF5F00248FB100147C
64431 +:109300008FBF00188FB0001003E0000827BD0020B9
64432 +:109310000E000E1C02002021241F0C00AF5F002451
64433 +:109320008FB100148FBF00188FB0001003E0000849
64434 +:1093300027BD002094A200E094A400E290BF011396
64435 +:10934000008218263079FFFF33E700C014E00009DF
64436 +:109350002F31000116000038000000005620FFE603
64437 +:10936000241F0C000E000D18000000000A0011ED73
64438 +:10937000241F0C001620FFDE000000000E000D1858
64439 +:10938000000000001440FFDC241F0C001600002227
64440 +:109390008F8300D0906901133122003FA062011336
64441 +:1093A0000A0011ED241F0C0094AF00D48F8600D466
64442 +:1093B00000E02821240400050E000C5C31F0FFFFC2
64443 +:1093C0001440000524030003979100E600001821D3
64444 +:1093D0002625FFFFA78500E68F5801B80700FFFE8E
64445 +:1093E0003C196013AF400180241F0C00AF50018472
64446 +:1093F000007938253C101000AF4701888FB1001468
64447 +:10940000AF5001B8AF5F00248FB000108FBF0018BD
64448 +:1094100003E0000827BD00200E000E1C02002021E2
64449 +:109420005040FFB5241F0C008F8300D090690113BA
64450 +:109430000A0012163122003F0E000E1C02002021ED
64451 +:109440001440FFAD241F0C00122000078F8300D0B2
64452 +:10945000906801133106003F34C20040A06201133E
64453 +:109460000A0011ED241F0C000E000D180000000072
64454 +:109470005040FFA1241F0C008F8300D0906801137F
64455 +:109480003106003F0A00124634C20040AF9B00C8BC
64456 +:1094900003E00008AF8000EC3089FFFF0009404284
64457 +:1094A0002D020041000921801440000200095040B3
64458 +:1094B00024080040000830C0000811400046582130
64459 +:1094C000256701A800E2C821272F007F2418FF800C
64460 +:1094D00001F818240064302100CA702125CC00FF57
64461 +:1094E000240DFF00018D202425650088240A0088B2
64462 +:1094F0003C010800AC2A004C3C010800AC2500509F
64463 +:10950000AF8400D43C010800AC2900603C01080095
64464 +:10951000AC2800643C010800AC2700543C01080062
64465 +:10952000AC2300583C010800AC26005C03E00008B6
64466 +:1095300000000000308300FF30C6FFFF30E400FF72
64467 +:109540008F4201B80440FFFE00034C00012438257F
64468 +:109550003C08600000E820253C031000AF45018076
64469 +:10956000AF460184AF44018803E00008AF4301B86F
64470 +:109570008F86001C3C096012352700108CCB00043C
64471 +:109580003C0C600E35850010316A00062D48000144
64472 +:10959000ACE800C48CC40004ACA431808CC20008C8
64473 +:1095A00094C30002ACA2318403E00008A78300E466
64474 +:1095B0003C0308008C6300508F8400E88F86001CF9
64475 +:1095C0002402FF800064C0210302C824AF59002890
64476 +:1095D0008CCD00043305007F00BA78213C0E000CCE
64477 +:1095E00001EE2821ACAD00588CC80008AF8500D032
64478 +:1095F0003C076012ACA8005C8CCC001034E8001072
64479 +:10960000ACAC000C8CCB000CACAB000894AA0014E2
64480 +:109610003C0208008C42004425490001A4A9001422
64481 +:1096200094A400143083FFFF106200178F8400D0D1
64482 +:109630003C0A08008D4A0040A4AA00128CCE0018F3
64483 +:10964000AC8E00248CCD0014AC8D00208CC700188B
64484 +:10965000AC87002C8CCC001424060001AC8C0028B4
64485 +:109660008D0B00BC5166001A8D0200B48D0200B84B
64486 +:10967000A482003A948F003AA48F003C948800D4CE
64487 +:1096800003E000083102FFFF3C0908008D29002497
64488 +:10969000A4A000148F8400D0A4A900128CCE0018BE
64489 +:1096A000AC8E00248CCD0014AC8D00208CC700182B
64490 +:1096B000AC87002C8CCC001424060001AC8C002854
64491 +:1096C0008D0B00BC5566FFEA8D0200B88D0200B418
64492 +:1096D000A482003A948F003AA48F003C948800D46E
64493 +:1096E00003E000083102FFFF8F86001C3C0C0800DD
64494 +:1096F0008D8C0050240BFF808CCD00083C03000CA7
64495 +:10970000000D51C0018A4021010B4824AF8A00E8B6
64496 +:10971000AF49002890C700073105007F00BA10212B
64497 +:109720000043282130E4000410800039AF8500D0C8
64498 +:1097300090CF000731EE000811C000380000000093
64499 +:109740008CD9000C8CC400140324C02B13000030EF
64500 +:10975000000000008CC2000CACA200648CCD00188C
64501 +:109760002402FFF8ACAD00688CCC0010ACAC0080DB
64502 +:109770008CCB000CACAB00848CCA001CACAA007C67
64503 +:1097800090A900BC01224024A0A800BC90C30007FF
64504 +:109790003067000810E000048F8500D090AF00BC57
64505 +:1097A00035EE0001A0AE00BC90D9000733380001AF
64506 +:1097B000130000088F8300D08F8700D0240400346A
64507 +:1097C00090E800BC35030002A0E300BC8F8300D00A
64508 +:1097D000AC6400C090C900073126000210C000052B
64509 +:1097E00000000000906A00BC35420004A06200BC8A
64510 +:1097F0008F8300D09065011330AD003FA06D011341
64511 +:109800008F8C00D0958B00D403E000083162FFFFFD
64512 +:109810008CC200140A001305000000000A001306A1
64513 +:10982000ACA0006427BDFFD8AFB000108F90001C23
64514 +:10983000AFBF0024AFB40020AFB20018AFB1001426
64515 +:10984000AFB3001C9613000E3C07600A3C14600680
64516 +:109850003264FFFF369300100E00125534F40410EA
64517 +:109860008F8400D43C11600E0E00099B363100102D
64518 +:10987000920E00153C0708008CE700603C12601255
64519 +:1098800031CD000FA38D00F08E0E00048E0D000868
64520 +:1098900096080012961F00109619001A9618001EBE
64521 +:1098A000960F001C310CFFFF33EBFFFF332AFFFF45
64522 +:1098B0003309FFFF31E6FFFF3C010800AC2B0040FD
64523 +:1098C0003C010800AC2C00243C010800AC2A0044F8
64524 +:1098D000AE293178AE26317C92020015960300162F
64525 +:1098E00036520010304400FF3065FFFF3C06080090
64526 +:1098F0008CC60064AE243188AE4500B492080014D2
64527 +:1099000096190018241F0001011FC004332FFFFF08
64528 +:109910003C0508008CA50058AE5800B8AE4F00BCFE
64529 +:10992000920C0014AF8E00D8AF8D00DC318B00FF9D
64530 +:10993000AE4B00C0920A0015AE670048AE66004C00
64531 +:10994000314900FFAE4900C8AE65007C3C03080009
64532 +:109950008C6300503C0408008C84004C3C080800D8
64533 +:109960008D0800543C0208008C42005C8FBF00242C
64534 +:10997000AE6300808FB00010AE8300748FB3001C04
64535 +:10998000AE22319CAE4200DCAE2731A0AE2631A41F
64536 +:10999000AE24318CAE233190AE283194AE2531986F
64537 +:1099A000AE870050AE860054AE8500708FB10014B3
64538 +:1099B000AE4700E0AE4600E4AE4400CCAE4300D07B
64539 +:1099C000AE4800D4AE4500D88FB400208FB2001846
64540 +:1099D00003E0000827BD002827BDFFE0AFB1001459
64541 +:1099E000AFBF0018241100010E000845AFB00010F1
64542 +:1099F00010510005978400E6978300CC0083102B5C
64543 +:109A0000144000088F8500D4240700028FBF00187F
64544 +:109A10008FB100148FB0001000E0102103E00008A7
64545 +:109A200027BD00200E000C7A24040005AF8200E858
64546 +:109A30001040FFF6240700020E0008498F90001C1A
64547 +:109A4000979F00E68F9900E88F8D00C827EF0001EF
64548 +:109A5000240E0050AF590020A78F00E6A1AE0000F1
64549 +:109A60003C0C08008D8C00648F8600C8240A80009E
64550 +:109A7000000C5E00ACCB0074A4C0000694C9000AC0
64551 +:109A8000241FFF803C0D000C012AC024A4D8000A2A
64552 +:109A900090C8000A24182000011F1825A0C3000A3E
64553 +:109AA0008F8700C8A0E000788F8500C800003821AB
64554 +:109AB000A0A000833C0208008C4200508F8400E884
64555 +:109AC0000044782101FFC824AF590028960B0002FA
64556 +:109AD00031EE007F01DA6021018D3021A4CB00D46A
64557 +:109AE000960A0002AF8600D03C0E000425492401EE
64558 +:109AF000A4C900E68E080004ACC800048E03000868
64559 +:109B0000ACC30000A4C00010A4C00014A0C000D0CA
64560 +:109B10008F8500D02403FFBFA0A000D13C04080023
64561 +:109B20008C8400648F8200D0A04400D28E1F000C71
64562 +:109B30008F8A00D0978F00E4AD5F001C8E19001053
64563 +:109B400024100030AD590018A5400030A551005434
64564 +:109B5000A5510056A54F0016AD4E0068AD580080C7
64565 +:109B6000AD580084914D006231AC000F358B001070
64566 +:109B7000A14B00628F8600D090C900633128007F1E
64567 +:109B8000A0C800638F8400D02406FFFF9085006387
64568 +:109B900000A31024A08200638F9100D000E0102168
64569 +:109BA000923F00BC37F90001A23900BC8F8A00D077
64570 +:109BB000938F00F0AD580064AD5000C0914E00D3BB
64571 +:109BC000000F690031CC000F018D5825A14B00D347
64572 +:109BD0008F8500D08F8900DCACA900E88F8800D881
64573 +:109BE0008FBF00188FB100148FB0001027BD002068
64574 +:109BF000ACA800ECA4A600D6A4A000E0A4A000E2BB
64575 +:109C000003E000080000000027BDFFE0AFB0001037
64576 +:109C10008F90001CAFB10014AFBF00188E19000464
64577 +:109C20003C1808008F180050240FFF80001989C0CD
64578 +:109C30000238702131CD007F01CF602401BA50215C
64579 +:109C40003C0B000CAF4C0028014B4021950900D47F
64580 +:109C5000950400D68E0700043131FFFFAF8800D095
64581 +:109C60000E000913000721C08E0600048F8300C870
64582 +:109C7000000629C0AF4500209064003E30820040BD
64583 +:109C8000144000068F8400D0341FFFFF948300D659
64584 +:109C90003062FFFF145F000400000000948400D6CF
64585 +:109CA0000E0008A83084FFFF8E050004022030213A
64586 +:109CB0008FBF00188FB100148FB000102404002251
64587 +:109CC00000003821000529C00A00127C27BD0020B1
64588 +:109CD00027BDFFE0AFB100143091FFFFAFB000101F
64589 +:109CE000AFBF00181220001D000080218F86001CCD
64590 +:109CF0008CC500002403000600053F020005140285
64591 +:109D000030E4000714830015304500FF2CA800063E
64592 +:109D10001100004D000558803C0C0800258C57D4DC
64593 +:109D2000016C50218D490000012000080000000056
64594 +:109D30008F8E00EC240D000111CD005900000000B1
64595 +:109D4000260B00013170FFFF24CA00200211202BD6
64596 +:109D5000014030211480FFE6AF8A001C0200102170
64597 +:109D60008FBF00188FB100148FB0001003E00008FF
64598 +:109D700027BD0020938700CE14E00038240400148F
64599 +:109D80000E001338000000008F86001C2402000122
64600 +:109D90000A00147FAF8200EC8F8900EC24080002D7
64601 +:109DA0001128003B2404001300002821000030216A
64602 +:109DB000240700010E00127C000000000A00147F3E
64603 +:109DC0008F86001C8F8700EC2405000214E5FFF647
64604 +:109DD000240400120E0012E9000000008F8500E844
64605 +:109DE00000403021240400120E00127C00003821B3
64606 +:109DF0000A00147F8F86001C8F8300EC241F000351
64607 +:109E0000147FFFD0260B00010E00129B0000000003
64608 +:109E10008F8500E800403021240200022404001055
64609 +:109E200000003821AF8200EC0E00127C0000000020
64610 +:109E30000A00147F8F86001C8F8F00EC240600021E
64611 +:109E400011E6000B0000000024040010000028218F
64612 +:109E5000000030210A00149C240700010000282182
64613 +:109E60000E00127C000030210A00147F8F86001C37
64614 +:109E70000E0013A500000000144000128F99001C72
64615 +:109E80008F86001C240200030A00147FAF8200ECBE
64616 +:109E90000E001431000000000A00147F8F86001CA1
64617 +:109EA0000E00128B000000002402000224040014A3
64618 +:109EB0000000282100003021000038210A0014B9D8
64619 +:109EC000AF8200EC004038212404001097380002D3
64620 +:109ED000000028210E00127C3306FFFF0A00147FC9
64621 +:109EE0008F86001C8F8400C83C077FFF34E6FFFF8D
64622 +:109EF0008C8500742402000100A61824AC83007431
64623 +:109F000003E00008A082000510A000362CA200800B
64624 +:109F1000274A04003C0B000524090080104000077C
64625 +:109F20002408008030A6000F00C540212D030081C9
64626 +:109F30001460000200A0482124080080AF4B0030CC
64627 +:109F400000000000000000000000000011000009F7
64628 +:109F500000003821014030218C8D000024E70004EE
64629 +:109F600000E8602BACCD0000248400041580FFFACB
64630 +:109F700024C60004000000000000000000000000F3
64631 +:109F80003C0E0006010E3825AF47003000000000EF
64632 +:109F900000000000000000008F4F000031E80010BA
64633 +:109FA0001100FFFD000000008F42003C8F43003C89
64634 +:109FB0000049C8210323C02B130000040000000047
64635 +:109FC0008F4C003825860001AF4600388F47003C93
64636 +:109FD00000A9282300E96821AF4D003C14A0FFCE62
64637 +:109FE0002CA2008003E000080000000027BDFFD085
64638 +:109FF0003C020002AFB100143C11000CAF45003828
64639 +:10A00000AFB3001CAF46003C00809821AF42003047
64640 +:10A0100024050088AF44002803512021AFBF002849
64641 +:10A02000AFB50024AFB40020AFB200180E0014F199
64642 +:10A03000AFB000103C1F08008FFF004C3C18080018
64643 +:10A040008F1800642410FF8003F3A82132B9007F29
64644 +:10A0500002B078240018A0C0033A70210018914083
64645 +:10A0600001D12021AF4F00280E0014F10254282105
64646 +:10A070003C0D08008DAD00502405012001B358218E
64647 +:10A08000316C007F01705024019A48210131202158
64648 +:10A090000E0014F1AF4A00283C0808008D08005457
64649 +:10A0A0003C0508008CA500640113382130E6007FD0
64650 +:10A0B00000F0182400DA202100912021AF4300286D
64651 +:10A0C0000E0014F1000529403C0208008C420058A3
64652 +:10A0D0003C1008008E1000601200001C0053882104
64653 +:10A0E0002415FF800A0015743C14000C3226007FF2
64654 +:10A0F0000235182400DA202102402821AF4300282D
64655 +:10A10000009420210E0014F12610FFC01200000F51
64656 +:10A11000023288212E05004110A0FFF42412100005
64657 +:10A120003226007F001091800235182400DA2021A9
64658 +:10A1300002402821AF430028009420210E0014F192
64659 +:10A14000000080211600FFF3023288213C0B08003A
64660 +:10A150008D6B005C240AFF802405000201734021FE
64661 +:10A16000010A4824AF4900283C0408009484006296
64662 +:10A170003110007F021A88213C07000C0E000CAA47
64663 +:10A180000227982100402821026020218FBF00284B
64664 +:10A190008FB500248FB400208FB3001C8FB200183D
64665 +:10A1A0008FB100148FB000100A0014F127BD0030E9
64666 +:10A1B0008F83001C8C62000410400003000000002C
64667 +:10A1C00003E00008000000008C6400108C650008AB
64668 +:10A1D0000A00152A8C66000C000000000000001B1D
64669 +:10A1E0000000000F0000000A000000080000000648
64670 +:10A1F000000000050000000500000004000000044D
64671 +:10A200000000000300000003000000030000000342
64672 +:10A210000000000300000002000000020000000235
64673 +:10A220000000000200000002000000020000000226
64674 +:10A230000000000200000002000000020000000216
64675 +:10A240000000000200000002000000020000000206
64676 +:10A2500000000001000000010000000108000F24C0
64677 +:10A2600008000D6C08000FB80800106008000F4CC3
64678 +:10A2700008000F8C0800119408000D88080011B820
64679 +:10A2800008000DD8080015540800151C08000D889A
64680 +:10A2900008000D8808000D880800124008001240D0
64681 +:10A2A00008000D8808000D88080014E008000D88DB
64682 +:10A2B00008000D8808000D8808000D88080013B4F8
64683 +:10A2C00008000D8808000D8808000D8808000D881A
64684 +:10A2D00008000D8808000D8808000D8808000D880A
64685 +:10A2E00008000D8808000D8808000D8808000D88FA
64686 +:10A2F00008000D8808000D8808000FAC08000D88C4
64687 +:10A3000008000D880800167808000D8808000D88E0
64688 +:10A3100008000D8808000D8808000D8808000D88C9
64689 +:10A3200008000D8808000D8808000D8808000D88B9
64690 +:10A3300008000D8808000D8808000D8808000D88A9
64691 +:10A3400008000D8808000D8808000D88080014100A
64692 +:10A3500008000D8808000D8808001334080012A4B6
64693 +:10A3600008001E2C08001EFC08001F1408001F28EF
64694 +:10A3700008001F3808001E2C08001E2C08001E2C88
64695 +:10A3800008001ED808002E1408002E1C08002DE41A
64696 +:10A3900008002DF008002DFC08002E08080052F4DB
64697 +:10A3A000080052B40800528008005254080052308D
64698 +:10A3B000080051EC0A000C840000000000000000BE
64699 +:10A3C0000000000D727870362E322E33000000002F
64700 +:10A3D000060203030000000000000001000000006E
64701 +:10A3E000000000000000000000000000000000006D
64702 +:10A3F000000000000000000000000000000000005D
64703 +:10A40000000000000000000000000000000000004C
64704 +:10A41000000000000000000000000000000000003C
64705 +:10A42000000000000000000000000000000000002C
64706 +:10A43000000000000000000000000000000000001C
64707 +:10A44000000000000000000000000000000000000C
64708 +:10A4500000000000000000000000000000000000FC
64709 +:10A4600000000000000000000000000000000000EC
64710 +:10A4700000000000000000000000000000000000DC
64711 +:10A4800000000000000000000000000000000000CC
64712 +:10A4900000000000000000000000000000000000BC
64713 +:10A4A00000000000000000000000000000000000AC
64714 +:10A4B000000000000000000000000000000000009C
64715 +:10A4C000000000000000000000000000000000008C
64716 +:10A4D000000000000000000000000000000000007C
64717 +:10A4E000000000000000000000000000000000006C
64718 +:10A4F000000000000000000000000000000000005C
64719 +:10A50000000000000000000000000000000000004B
64720 +:10A51000000000000000000000000000000000003B
64721 +:10A52000000000000000000000000000000000002B
64722 +:10A53000000000000000000000000000000000001B
64723 +:10A54000000000000000000000000000000000000B
64724 +:10A5500000000000000000000000000000000000FB
64725 +:10A5600000000000000000000000000000000000EB
64726 +:10A5700000000000000000000000000000000000DB
64727 +:10A5800000000000000000000000000000000000CB
64728 +:10A5900000000000000000000000000000000000BB
64729 +:10A5A00000000000000000000000000000000000AB
64730 +:10A5B000000000000000000000000000000000009B
64731 +:10A5C000000000000000000000000000000000008B
64732 +:10A5D000000000000000000000000000000000007B
64733 +:10A5E000000000000000000000000000000000006B
64734 +:10A5F000000000000000000000000000000000005B
64735 +:10A60000000000000000000000000000000000004A
64736 +:10A61000000000000000000000000000000000003A
64737 +:10A62000000000000000000000000000000000002A
64738 +:10A63000000000000000000000000000000000001A
64739 +:10A64000000000000000000000000000000000000A
64740 +:10A6500000000000000000000000000000000000FA
64741 +:10A6600000000000000000000000000000000000EA
64742 +:10A6700000000000000000000000000000000000DA
64743 +:10A6800000000000000000000000000000000000CA
64744 +:10A6900000000000000000000000000000000000BA
64745 +:10A6A00000000000000000000000000000000000AA
64746 +:10A6B000000000000000000000000000000000009A
64747 +:10A6C000000000000000000000000000000000008A
64748 +:10A6D000000000000000000000000000000000007A
64749 +:10A6E000000000000000000000000000000000006A
64750 +:10A6F000000000000000000000000000000000005A
64751 +:10A700000000000000000000000000000000000049
64752 +:10A710000000000000000000000000000000000039
64753 +:10A720000000000000000000000000000000000029
64754 +:10A730000000000000000000000000000000000019
64755 +:10A740000000000000000000000000000000000009
64756 +:10A7500000000000000000000000000000000000F9
64757 +:10A7600000000000000000000000000000000000E9
64758 +:10A7700000000000000000000000000000000000D9
64759 +:10A7800000000000000000000000000000000000C9
64760 +:10A7900000000000000000000000000000000000B9
64761 +:10A7A00000000000000000000000000000000000A9
64762 +:10A7B0000000000000000000000000000000000099
64763 +:10A7C0000000000000000000000000000000000089
64764 +:10A7D0000000000000000000000000000000000079
64765 +:10A7E0000000000000000000000000000000000069
64766 +:10A7F0000000000000000000000000000000000059
64767 +:10A800000000000000000000000000000000000048
64768 +:10A810000000000000000000000000000000000038
64769 +:10A820000000000000000000000000000000000028
64770 +:10A830000000000000000000000000000000000018
64771 +:10A840000000000000000000000000000000000008
64772 +:10A8500000000000000000000000000000000000F8
64773 +:10A8600000000000000000000000000000000000E8
64774 +:10A8700000000000000000000000000000000000D8
64775 +:10A8800000000000000000000000000000000000C8
64776 +:10A8900000000000000000000000000000000000B8
64777 +:10A8A00000000000000000000000000000000000A8
64778 +:10A8B0000000000000000000000000000000000098
64779 +:10A8C0000000000000000000000000000000000088
64780 +:10A8D0000000000000000000000000000000000078
64781 +:10A8E0000000000000000000000000000000000068
64782 +:10A8F0000000000000000000000000000000000058
64783 +:10A900000000000000000000000000000000000047
64784 +:10A910000000000000000000000000000000000037
64785 +:10A920000000000000000000000000000000000027
64786 +:10A930000000000000000000000000000000000017
64787 +:10A940000000000000000000000000000000000007
64788 +:10A9500000000000000000000000000000000000F7
64789 +:10A9600000000000000000000000000000000000E7
64790 +:10A9700000000000000000000000000000000000D7
64791 +:10A9800000000000000000000000000000000000C7
64792 +:10A9900000000000000000000000000000000000B7
64793 +:10A9A00000000000000000000000000000000000A7
64794 +:10A9B0000000000000000000000000000000000097
64795 +:10A9C0000000000000000000000000000000000087
64796 +:10A9D0000000000000000000000000000000000077
64797 +:10A9E0000000000000000000000000000000000067
64798 +:10A9F0000000000000000000000000000000000057
64799 +:10AA00000000000000000000000000000000000046
64800 +:10AA10000000000000000000000000000000000036
64801 +:10AA20000000000000000000000000000000000026
64802 +:10AA30000000000000000000000000000000000016
64803 +:10AA40000000000000000000000000000000000006
64804 +:10AA500000000000000000000000000000000000F6
64805 +:10AA600000000000000000000000000000000000E6
64806 +:10AA700000000000000000000000000000000000D6
64807 +:10AA800000000000000000000000000000000000C6
64808 +:10AA900000000000000000000000000000000000B6
64809 +:10AAA00000000000000000000000000000000000A6
64810 +:10AAB0000000000000000000000000000000000096
64811 +:10AAC0000000000000000000000000000000000086
64812 +:10AAD0000000000000000000000000000000000076
64813 +:10AAE0000000000000000000000000000000000066
64814 +:10AAF0000000000000000000000000000000000056
64815 +:10AB00000000000000000000000000000000000045
64816 +:10AB10000000000000000000000000000000000035
64817 +:10AB20000000000000000000000000000000000025
64818 +:10AB30000000000000000000000000000000000015
64819 +:10AB40000000000000000000000000000000000005
64820 +:10AB500000000000000000000000000000000000F5
64821 +:10AB600000000000000000000000000000000000E5
64822 +:10AB700000000000000000000000000000000000D5
64823 +:10AB800000000000000000000000000000000000C5
64824 +:10AB900000000000000000000000000000000000B5
64825 +:10ABA00000000000000000000000000000000000A5
64826 +:10ABB0000000000000000000000000000000000095
64827 +:10ABC0000000000000000000000000000000000085
64828 +:10ABD0000000000000000000000000000000000075
64829 +:10ABE0000000000000000000000000000000000065
64830 +:10ABF0000000000000000000000000000000000055
64831 +:10AC00000000000000000000000000000000000044
64832 +:10AC10000000000000000000000000000000000034
64833 +:10AC20000000000000000000000000000000000024
64834 +:10AC30000000000000000000000000000000000014
64835 +:10AC40000000000000000000000000000000000004
64836 +:10AC500000000000000000000000000000000000F4
64837 +:10AC600000000000000000000000000000000000E4
64838 +:10AC700000000000000000000000000000000000D4
64839 +:10AC800000000000000000000000000000000000C4
64840 +:10AC900000000000000000000000000000000000B4
64841 +:10ACA00000000000000000000000000000000000A4
64842 +:10ACB0000000000000000000000000000000000094
64843 +:10ACC0000000000000000000000000000000000084
64844 +:10ACD0000000000000000000000000000000000074
64845 +:10ACE0000000000000000000000000000000000064
64846 +:10ACF0000000000000000000000000000000000054
64847 +:10AD00000000000000000000000000000000000043
64848 +:10AD10000000000000000000000000000000000033
64849 +:10AD20000000000000000000000000000000000023
64850 +:10AD30000000000000000000000000000000000013
64851 +:10AD40000000000000000000000000000000000003
64852 +:10AD500000000000000000000000000000000000F3
64853 +:10AD600000000000000000000000000000000000E3
64854 +:10AD700000000000000000000000000000000000D3
64855 +:10AD800000000000000000000000000000000000C3
64856 +:10AD900000000000000000000000000000000000B3
64857 +:10ADA00000000000000000000000000000000000A3
64858 +:10ADB0000000000000000000000000000000000093
64859 +:10ADC0000000000000000000000000000000000083
64860 +:10ADD0000000000000000000000000000000000073
64861 +:10ADE0000000000000000000000000000000000063
64862 +:10ADF0000000000000000000000000000000000053
64863 +:10AE00000000000000000000000000000000000042
64864 +:10AE10000000000000000000000000000000000032
64865 +:10AE20000000000000000000000000000000000022
64866 +:10AE30000000000000000000000000000000000012
64867 +:10AE40000000000000000000000000000000000002
64868 +:10AE500000000000000000000000000000000000F2
64869 +:10AE600000000000000000000000000000000000E2
64870 +:10AE700000000000000000000000000000000000D2
64871 +:10AE800000000000000000000000000000000000C2
64872 +:10AE900000000000000000000000000000000000B2
64873 +:10AEA00000000000000000000000000000000000A2
64874 +:10AEB0000000000000000000000000000000000092
64875 +:10AEC0000000000000000000000000000000000082
64876 +:10AED0000000000000000000000000000000000072
64877 +:10AEE0000000000000000000000000000000000062
64878 +:10AEF0000000000000000000000000000000000052
64879 +:10AF00000000000000000000000000000000000041
64880 +:10AF10000000000000000000000000000000000031
64881 +:10AF20000000000000000000000000000000000021
64882 +:10AF30000000000000000000000000000000000011
64883 +:10AF40000000000000000000000000000000000001
64884 +:10AF500000000000000000000000000000000000F1
64885 +:10AF600000000000000000000000000000000000E1
64886 +:10AF700000000000000000000000000000000000D1
64887 +:10AF800000000000000000000000000000000000C1
64888 +:10AF900000000000000000000000000000000000B1
64889 +:10AFA00000000000000000000000000000000000A1
64890 +:10AFB0000000000000000000000000000000000091
64891 +:10AFC0000000000000000000000000000000000081
64892 +:10AFD0000000000000000000000000000000000071
64893 +:10AFE0000000000000000000000000000000000061
64894 +:10AFF0000000000000000000000000000000000051
64895 +:10B000000000000000000000000000000000000040
64896 +:10B010000000000000000000000000000000000030
64897 +:10B020000000000000000000000000000000000020
64898 +:10B030000000000000000000000000000000000010
64899 +:10B040000000000000000000000000000000000000
64900 +:10B0500000000000000000000000000000000000F0
64901 +:10B0600000000000000000000000000000000000E0
64902 +:10B0700000000000000000000000000000000000D0
64903 +:10B0800000000000000000000000000000000000C0
64904 +:10B0900000000000000000000000000000000000B0
64905 +:10B0A00000000000000000000000000000000000A0
64906 +:10B0B0000000000000000000000000000000000090
64907 +:10B0C0000000000000000000000000000000000080
64908 +:10B0D0000000000000000000000000000000000070
64909 +:10B0E0000000000000000000000000000000000060
64910 +:10B0F0000000000000000000000000000000000050
64911 +:10B10000000000000000000000000000000000003F
64912 +:10B11000000000000000000000000000000000002F
64913 +:10B12000000000000000000000000000000000001F
64914 +:10B13000000000000000000000000000000000000F
64915 +:10B1400000000000000000000000000000000000FF
64916 +:10B1500000000000000000000000000000000000EF
64917 +:10B1600000000000000000000000000000000000DF
64918 +:10B1700000000000000000000000000000000000CF
64919 +:10B1800000000000000000000000000000000000BF
64920 +:10B1900000000000000000000000000000000000AF
64921 +:10B1A000000000000000000000000000000000009F
64922 +:10B1B000000000000000000000000000000000008F
64923 +:10B1C000000000000000000000000000000000007F
64924 +:10B1D000000000000000000000000000000000006F
64925 +:10B1E000000000000000000000000000000000005F
64926 +:10B1F000000000000000000000000000000000004F
64927 +:10B20000000000000000000000000000000000003E
64928 +:10B21000000000000000000000000000000000002E
64929 +:10B22000000000000000000000000000000000001E
64930 +:10B23000000000000000000000000000000000000E
64931 +:10B2400000000000000000000000000000000000FE
64932 +:10B2500000000000000000000000000000000000EE
64933 +:10B2600000000000000000000000000000000000DE
64934 +:10B2700000000000000000000000000000000000CE
64935 +:10B2800000000000000000000000000000000000BE
64936 +:10B2900000000000000000000000000000000000AE
64937 +:10B2A000000000000000000000000000000000009E
64938 +:10B2B000000000000000000000000000000000008E
64939 +:10B2C000000000000000000000000000000000007E
64940 +:10B2D000000000000000000000000000000000006E
64941 +:10B2E000000000000000000000000000000000005E
64942 +:10B2F000000000000000000000000000000000004E
64943 +:10B30000000000000000000000000000000000003D
64944 +:10B31000000000000000000000000000000000002D
64945 +:10B32000000000000000000000000000000000001D
64946 +:10B33000000000000000000000000000000000000D
64947 +:10B3400000000000000000000000000000000000FD
64948 +:10B3500000000000000000000000000000000000ED
64949 +:10B3600000000000000000000000000000000000DD
64950 +:10B3700000000000000000000000000000000000CD
64951 +:10B3800000000000000000000000000000000000BD
64952 +:10B3900000000000000000000000000000000000AD
64953 +:10B3A000000000000000000000000000000000009D
64954 +:10B3B000000000000000000000000000000000008D
64955 +:10B3C000000000000000000000000000000000007D
64956 +:10B3D000000000000000000000000000000000006D
64957 +:10B3E000000000000000000000000000000000005D
64958 +:10B3F000000000000000000000000000000000004D
64959 +:10B40000000000000000000000000000000000003C
64960 +:10B41000000000000000000000000000000000002C
64961 +:10B42000000000000000000000000000000000001C
64962 +:10B43000000000000000000000000000000000000C
64963 +:10B4400000000000000000000000000000000000FC
64964 +:10B4500000000000000000000000000000000000EC
64965 +:10B4600000000000000000000000000000000000DC
64966 +:10B4700000000000000000000000000000000000CC
64967 +:10B4800000000000000000000000000000000000BC
64968 +:10B4900000000000000000000000000000000000AC
64969 +:10B4A000000000000000000000000000000000009C
64970 +:10B4B000000000000000000000000000000000008C
64971 +:10B4C000000000000000000000000000000000007C
64972 +:10B4D000000000000000000000000000000000006C
64973 +:10B4E000000000000000000000000000000000005C
64974 +:10B4F000000000000000000000000000000000004C
64975 +:10B50000000000000000000000000000000000003B
64976 +:10B51000000000000000000000000000000000002B
64977 +:10B52000000000000000000000000000000000001B
64978 +:10B53000000000000000000000000000000000000B
64979 +:10B5400000000000000000000000000000000000FB
64980 +:10B5500000000000000000000000000000000000EB
64981 +:10B5600000000000000000000000000000000000DB
64982 +:10B5700000000000000000000000000000000000CB
64983 +:10B5800000000000000000000000000000000000BB
64984 +:10B5900000000000000000000000000000000000AB
64985 +:10B5A000000000000000000000000000000000009B
64986 +:10B5B000000000000000000000000000000000008B
64987 +:10B5C000000000000000000000000000000000007B
64988 +:10B5D000000000000000000000000000000000006B
64989 +:10B5E000000000000000000000000000000000005B
64990 +:10B5F000000000000000000000000000000000004B
64991 +:10B60000000000000000000000000000000000003A
64992 +:10B61000000000000000000000000000000000002A
64993 +:10B62000000000000000000000000000000000001A
64994 +:10B63000000000000000000000000000000000000A
64995 +:10B6400000000000000000000000000000000000FA
64996 +:10B6500000000000000000000000000000000000EA
64997 +:10B6600000000000000000000000000000000000DA
64998 +:10B6700000000000000000000000000000000000CA
64999 +:10B6800000000000000000000000000000000000BA
65000 +:10B6900000000000000000000000000000000000AA
65001 +:10B6A000000000000000000000000000000000009A
65002 +:10B6B000000000000000000000000000000000008A
65003 +:10B6C000000000000000000000000000000000007A
65004 +:10B6D000000000000000000000000000000000006A
65005 +:10B6E000000000000000000000000000000000005A
65006 +:10B6F000000000000000000000000000000000004A
65007 +:10B700000000000000000000000000000000000039
65008 +:10B710000000000000000000000000000000000029
65009 +:10B720000000000000000000000000000000000019
65010 +:10B730000000000000000000000000000000000009
65011 +:10B7400000000000000000000000000000000000F9
65012 +:10B7500000000000000000000000000000000000E9
65013 +:10B7600000000000000000000000000000000000D9
65014 +:10B7700000000000000000000000000000000000C9
65015 +:10B7800000000000000000000000000000000000B9
65016 +:10B7900000000000000000000000000000000000A9
65017 +:10B7A0000000000000000000000000000000000099
65018 +:10B7B0000000000000000000000000000000000089
65019 +:10B7C0000000000000000000000000000000000079
65020 +:10B7D0000000000000000000000000000000000069
65021 +:10B7E0000000000000000000000000000000000059
65022 +:10B7F0000000000000000000000000000000000049
65023 +:10B800000000000000000000000000000000000038
65024 +:10B810000000000000000000000000000000000028
65025 +:10B820000000000000000000000000000000000018
65026 +:10B830000000000000000000000000000000000008
65027 +:10B8400000000000000000000000000000000000F8
65028 +:10B8500000000000000000000000000000000000E8
65029 +:10B8600000000000000000000000000000000000D8
65030 +:10B8700000000000000000000000000000000000C8
65031 +:10B8800000000000000000000000000000000000B8
65032 +:10B8900000000000000000000000000000000000A8
65033 +:10B8A0000000000000000000000000000000000098
65034 +:10B8B0000000000000000000000000000000000088
65035 +:10B8C0000000000000000000000000000000000078
65036 +:10B8D0000000000000000000000000000000000068
65037 +:10B8E0000000000000000000000000000000000058
65038 +:10B8F0000000000000000000000000000000000048
65039 +:10B900000000000000000000000000000000000037
65040 +:10B910000000000000000000000000000000000027
65041 +:10B920000000000000000000000000000000000017
65042 +:10B930000000000000000000000000000000000007
65043 +:10B9400000000000000000000000000000000000F7
65044 +:10B9500000000000000000000000000000000000E7
65045 +:10B9600000000000000000000000000000000000D7
65046 +:10B9700000000000000000000000000000000000C7
65047 +:10B9800000000000000000000000000000000000B7
65048 +:10B9900000000000000000000000000000000000A7
65049 +:10B9A0000000000000000000000000000000000097
65050 +:10B9B0000000000000000000000000000000000087
65051 +:10B9C0000000000000000000000000000000000077
65052 +:10B9D0000000000000000000000000000000000067
65053 +:10B9E0000000000000000000000000000000000057
65054 +:10B9F0000000000000000000000000000000000047
65055 +:10BA00000000000000000000000000000000000036
65056 +:10BA10000000000000000000000000000000000026
65057 +:10BA20000000000000000000000000000000000016
65058 +:10BA30000000000000000000000000000000000006
65059 +:10BA400000000000000000000000000000000000F6
65060 +:10BA500000000000000000000000000000000000E6
65061 +:10BA600000000000000000000000000000000000D6
65062 +:10BA700000000000000000000000000000000000C6
65063 +:10BA800000000000000000000000000000000000B6
65064 +:10BA900000000000000000000000000000000000A6
65065 +:10BAA0000000000000000000000000000000000096
65066 +:10BAB0000000000000000000000000000000000086
65067 +:10BAC0000000000000000000000000000000000076
65068 +:10BAD0000000000000000000000000000000000066
65069 +:10BAE0000000000000000000000000000000000056
65070 +:10BAF0000000000000000000000000000000000046
65071 +:10BB00000000000000000000000000000000000035
65072 +:10BB10000000000000000000000000000000000025
65073 +:10BB20000000000000000000000000000000000015
65074 +:10BB30000000000000000000000000000000000005
65075 +:10BB400000000000000000000000000000000000F5
65076 +:10BB500000000000000000000000000000000000E5
65077 +:10BB600000000000000000000000000000000000D5
65078 +:10BB700000000000000000000000000000000000C5
65079 +:10BB800000000000000000000000000000000000B5
65080 +:10BB900000000000000000000000000000000000A5
65081 +:10BBA0000000000000000000000000000000000095
65082 +:10BBB0000000000000000000000000000000000085
65083 +:10BBC0000000000000000000000000000000000075
65084 +:10BBD0000000000000000000000000000000000065
65085 +:10BBE0000000000000000000000000000000000055
65086 +:10BBF0000000000000000000000000000000000045
65087 +:10BC00000000000000000000000000000000000034
65088 +:10BC10000000000000000000000000000000000024
65089 +:10BC20000000000000000000000000000000000014
65090 +:10BC30000000000000000000000000000000000004
65091 +:10BC400000000000000000000000000000000000F4
65092 +:10BC500000000000000000000000000000000000E4
65093 +:10BC600000000000000000000000000000000000D4
65094 +:10BC700000000000000000000000000000000000C4
65095 +:10BC800000000000000000000000000000000000B4
65096 +:10BC900000000000000000000000000000000000A4
65097 +:10BCA0000000000000000000000000000000000094
65098 +:10BCB0000000000000000000000000000000000084
65099 +:10BCC0000000000000000000000000000000000074
65100 +:10BCD0000000000000000000000000000000000064
65101 +:10BCE0000000000000000000000000000000000054
65102 +:10BCF0000000000000000000000000000000000044
65103 +:10BD00000000000000000000000000000000000033
65104 +:10BD10000000000000000000000000000000000023
65105 +:10BD20000000000000000000000000000000000013
65106 +:10BD30000000000000000000000000000000000003
65107 +:10BD400000000000000000000000000000000000F3
65108 +:10BD500000000000000000000000000000000000E3
65109 +:10BD600000000000000000000000000000000000D3
65110 +:10BD700000000000000000000000000000000000C3
65111 +:10BD800000000000000000000000000000000000B3
65112 +:10BD900000000000000000000000000000000000A3
65113 +:10BDA0000000000000000000000000000000000093
65114 +:10BDB0000000000000000000000000000000000083
65115 +:10BDC0000000000000000000000000000000000073
65116 +:10BDD0000000000000000000000000000000000063
65117 +:10BDE0000000000000000000000000000000000053
65118 +:10BDF0000000000000000000000000000000000043
65119 +:10BE00000000000000000000000000000000000032
65120 +:10BE10000000000000000000000000000000000022
65121 +:10BE20000000000000000000000000000000000012
65122 +:10BE30000000000000000000000000000000000002
65123 +:10BE400000000000000000000000000000000000F2
65124 +:10BE500000000000000000000000000000000000E2
65125 +:10BE600000000000000000000000000000000000D2
65126 +:10BE700000000000000000000000000000000000C2
65127 +:10BE800000000000000000000000000000000000B2
65128 +:10BE900000000000000000000000000000000000A2
65129 +:10BEA0000000000000000000000000000000000092
65130 +:10BEB0000000000000000000000000000000000082
65131 +:10BEC0000000000000000000000000000000000072
65132 +:10BED0000000000000000000000000000000000062
65133 +:10BEE0000000000000000000000000000000000052
65134 +:10BEF0000000000000000000000000000000000042
65135 +:10BF00000000000000000000000000000000000031
65136 +:10BF10000000000000000000000000000000000021
65137 +:10BF20000000000000000000000000000000000011
65138 +:10BF30000000000000000000000000000000000001
65139 +:10BF400000000000000000000000000000000000F1
65140 +:10BF500000000000000000000000000000000000E1
65141 +:10BF600000000000000000000000000000000000D1
65142 +:10BF700000000000000000000000000000000000C1
65143 +:10BF800000000000000000000000000000000000B1
65144 +:10BF900000000000000000000000000000000000A1
65145 +:10BFA0000000000000000000000000000000000091
65146 +:10BFB0000000000000000000000000000000000081
65147 +:10BFC0000000000000000000000000000000000071
65148 +:10BFD0000000000000000000000000000000000061
65149 +:10BFE0000000000000000000000000000000000051
65150 +:10BFF0000000000000000000000000000000000041
65151 +:10C000000000000000000000000000000000000030
65152 +:10C010000000000000000000000000000000000020
65153 +:10C020000000000000000000000000000000000010
65154 +:10C030000000000000000000000000000000000000
65155 +:10C0400000000000000000000000000000000000F0
65156 +:10C0500000000000000000000000000000000000E0
65157 +:10C0600000000000000000000000000000000000D0
65158 +:10C0700000000000000000000000000000000000C0
65159 +:10C0800000000000000000000000000000000000B0
65160 +:10C0900000000000000000000000000000000000A0
65161 +:10C0A0000000000000000000000000000000000090
65162 +:10C0B0000000000000000000000000000000000080
65163 +:10C0C0000000000000000000000000000000000070
65164 +:10C0D0000000000000000000000000000000000060
65165 +:10C0E0000000000000000000000000000000000050
65166 +:10C0F0000000000000000000000000000000000040
65167 +:10C10000000000000000000000000000000000002F
65168 +:10C11000000000000000000000000000000000001F
65169 +:10C12000000000000000000000000000000000000F
65170 +:10C1300000000000000000000000000000000000FF
65171 +:10C1400000000000000000000000000000000000EF
65172 +:10C1500000000000000000000000000000000000DF
65173 +:10C1600000000000000000000000000000000000CF
65174 +:10C1700000000000000000000000000000000000BF
65175 +:10C1800000000000000000000000000000000000AF
65176 +:10C19000000000000000000000000000000000009F
65177 +:10C1A000000000000000000000000000000000008F
65178 +:10C1B000000000000000000000000000000000007F
65179 +:10C1C000000000000000000000000000000000006F
65180 +:10C1D000000000000000000000000000000000005F
65181 +:10C1E000000000000000000000000000000000004F
65182 +:10C1F000000000000000000000000000000000003F
65183 +:10C20000000000000000000000000000000000002E
65184 +:10C21000000000000000000000000000000000001E
65185 +:10C22000000000000000000000000000000000000E
65186 +:10C2300000000000000000000000000000000000FE
65187 +:10C2400000000000000000000000000000000000EE
65188 +:10C2500000000000000000000000000000000000DE
65189 +:10C2600000000000000000000000000000000000CE
65190 +:10C2700000000000000000000000000000000000BE
65191 +:10C2800000000000000000000000000000000000AE
65192 +:10C29000000000000000000000000000000000009E
65193 +:10C2A000000000000000000000000000000000008E
65194 +:10C2B000000000000000000000000000000000007E
65195 +:10C2C000000000000000000000000000000000006E
65196 +:10C2D000000000000000000000000000000000005E
65197 +:10C2E000000000000000000000000000000000004E
65198 +:10C2F000000000000000000000000000000000003E
65199 +:10C30000000000000000000000000000000000002D
65200 +:10C31000000000000000000000000000000000001D
65201 +:10C32000000000000000000000000000000000000D
65202 +:10C3300000000000000000000000000000000000FD
65203 +:10C3400000000000000000000000000000000000ED
65204 +:10C3500000000000000000000000000000000000DD
65205 +:10C3600000000000000000000000000000000000CD
65206 +:10C3700000000000000000000000000000000000BD
65207 +:10C3800000000000000000000000000000000000AD
65208 +:10C39000000000000000000000000000000000009D
65209 +:10C3A000000000000000000000000000000000008D
65210 +:10C3B000000000000000000000000000000000007D
65211 +:10C3C000000000000000000000000000000000006D
65212 +:10C3D000000000000000000000000000000000005D
65213 +:10C3E000000000000000000000000000000000004D
65214 +:10C3F000000000000000000000000000000000003D
65215 +:10C40000000000000000000000000000000000002C
65216 +:10C41000000000000000000000000000000000001C
65217 +:10C42000000000000000000000000000000000000C
65218 +:10C4300000000000000000000000000000000000FC
65219 +:10C4400000000000000000000000000000000000EC
65220 +:10C4500000000000000000000000000000000000DC
65221 +:10C4600000000000000000000000000000000000CC
65222 +:10C4700000000000000000000000000000000000BC
65223 +:10C4800000000000000000000000000000000000AC
65224 +:10C49000000000000000000000000000000000009C
65225 +:10C4A000000000000000000000000000000000008C
65226 +:10C4B000000000000000000000000000000000007C
65227 +:10C4C000000000000000000000000000000000006C
65228 +:10C4D000000000000000000000000000000000005C
65229 +:10C4E000000000000000000000000000000000004C
65230 +:10C4F000000000000000000000000000000000003C
65231 +:10C50000000000000000000000000000000000002B
65232 +:10C51000000000000000000000000000000000001B
65233 +:10C52000000000000000000000000000000000000B
65234 +:10C5300000000000000000000000000000000000FB
65235 +:10C5400000000000000000000000000000000000EB
65236 +:10C5500000000000000000000000000000000000DB
65237 +:10C5600000000000000000000000000000000000CB
65238 +:10C5700000000000000000000000000000000000BB
65239 +:10C5800000000000000000000000000000000000AB
65240 +:10C59000000000000000000000000000000000009B
65241 +:10C5A000000000000000000000000000000000008B
65242 +:10C5B000000000000000000000000000000000007B
65243 +:10C5C000000000000000000000000000000000006B
65244 +:10C5D000000000000000000000000000000000005B
65245 +:10C5E000000000000000000000000000000000004B
65246 +:10C5F000000000000000000000000000000000003B
65247 +:10C60000000000000000000000000000000000002A
65248 +:10C61000000000000000000000000000000000001A
65249 +:10C62000000000000000000000000000000000000A
65250 +:10C6300000000000000000000000000000000000FA
65251 +:10C6400000000000000000000000000000000000EA
65252 +:10C6500000000000000000000000000000000000DA
65253 +:10C6600000000000000000000000000000000000CA
65254 +:10C6700000000000000000000000000000000000BA
65255 +:10C6800000000000000000000000000000000000AA
65256 +:10C69000000000000000000000000000000000009A
65257 +:10C6A000000000000000000000000000000000008A
65258 +:10C6B000000000000000000000000000000000007A
65259 +:10C6C000000000000000000000000000000000006A
65260 +:10C6D000000000000000000000000000000000005A
65261 +:10C6E000000000000000000000000000000000004A
65262 +:10C6F000000000000000000000000000000000003A
65263 +:10C700000000000000000000000000000000000029
65264 +:10C710000000000000000000000000000000000019
65265 +:10C720000000000000000000000000000000000009
65266 +:10C7300000000000000000000000000000000000F9
65267 +:10C7400000000000000000000000000000000000E9
65268 +:10C7500000000000000000000000000000000000D9
65269 +:10C7600000000000000000000000000000000000C9
65270 +:10C7700000000000000000000000000000000000B9
65271 +:10C7800000000000000000000000000000000000A9
65272 +:10C790000000000000000000000000000000000099
65273 +:10C7A0000000000000000000000000000000000089
65274 +:10C7B0000000000000000000000000000000000079
65275 +:10C7C0000000000000000000000000000000000069
65276 +:10C7D0000000000000000000000000000000000059
65277 +:10C7E0000000000000000000000000000000000049
65278 +:10C7F0000000000000000000000000000000000039
65279 +:10C800000000000000000000000000000000000028
65280 +:10C810000000000000000000000000000000000018
65281 +:10C820000000000000000000000000000000000008
65282 +:10C8300000000000000000000000000000000000F8
65283 +:10C8400000000000000000000000000000000000E8
65284 +:10C8500000000000000000000000000000000000D8
65285 +:10C8600000000000000000000000000000000000C8
65286 +:10C8700000000000000000000000000000000000B8
65287 +:10C8800000000000000000000000000000000000A8
65288 +:10C890000000000000000000000000000000000098
65289 +:10C8A0000000000000000000000000000000000088
65290 +:10C8B0000000000000000000000000000000000078
65291 +:10C8C0000000000000000000000000000000000068
65292 +:10C8D0000000000000000000000000000000000058
65293 +:10C8E0000000000000000000000000000000000048
65294 +:10C8F0000000000000000000000000000000000038
65295 +:10C900000000000000000000000000000000000027
65296 +:10C910000000000000000000000000000000000017
65297 +:10C920000000000000000000000000000000000007
65298 +:10C9300000000000000000000000000000000000F7
65299 +:10C9400000000000000000000000000000000000E7
65300 +:10C9500000000000000000000000000000000000D7
65301 +:10C9600000000000000000000000000000000000C7
65302 +:10C9700000000000000000000000000000000000B7
65303 +:10C9800000000000000000000000000000000000A7
65304 +:10C990000000000000000000000000000000000097
65305 +:10C9A0000000000000000000000000000000000087
65306 +:10C9B0000000000000000000000000000000000077
65307 +:10C9C0000000000000000000000000000000000067
65308 +:10C9D0000000000000000000000000000000000057
65309 +:10C9E0000000000000000000000000000000000047
65310 +:10C9F0000000000000000000000000000000000037
65311 +:10CA00000000000000000000000000000000000026
65312 +:10CA10000000000000000000000000000000000016
65313 +:10CA20000000000000000000000000000000000006
65314 +:10CA300000000000000000000000000000000000F6
65315 +:10CA400000000000000000000000000000000000E6
65316 +:10CA500000000000000000000000000000000000D6
65317 +:10CA600000000000000000000000000000000000C6
65318 +:10CA700000000000000000000000000000000000B6
65319 +:10CA800000000000000000000000000000000000A6
65320 +:10CA90000000000000000000000000000000000096
65321 +:10CAA0000000000000000000000000000000000086
65322 +:10CAB0000000000000000000000000000000000076
65323 +:10CAC0000000000000000000000000000000000066
65324 +:10CAD0000000000000000000000000000000000056
65325 +:10CAE0000000000000000000000000000000000046
65326 +:10CAF0000000000000000000000000000000000036
65327 +:10CB00000000000000000000000000000000000025
65328 +:10CB10000000000000000000000000000000000015
65329 +:10CB20000000000000000000000000000000000005
65330 +:10CB300000000000000000000000000000000000F5
65331 +:10CB400000000000000000000000000000000000E5
65332 +:10CB500000000000000000000000000000000000D5
65333 +:10CB600000000000000000000000000000000000C5
65334 +:10CB700000000000000000000000000000000000B5
65335 +:10CB800000000000000000000000000000000000A5
65336 +:10CB90000000000000000000000000000000000095
65337 +:10CBA0000000000000000000000000000000000085
65338 +:10CBB0000000000000000000000000000000000075
65339 +:10CBC0000000000000000000000000000000000065
65340 +:10CBD0000000000000000000000000000000000055
65341 +:10CBE0000000000000000000000000000000000045
65342 +:10CBF0000000000000000000000000000000000035
65343 +:10CC00000000000000000000000000000000000024
65344 +:10CC10000000000000000000000000000000000014
65345 +:10CC20000000000000000000000000000000000004
65346 +:10CC300000000000000000000000000000000000F4
65347 +:10CC400000000000000000000000000000000000E4
65348 +:10CC500000000000000000000000000000000000D4
65349 +:10CC600000000000000000000000000000000000C4
65350 +:10CC700000000000000000000000000000000000B4
65351 +:10CC800000000000000000000000000000000000A4
65352 +:10CC90000000000000000000000000000000000094
65353 +:10CCA0000000000000000000000000000000000084
65354 +:10CCB0000000000000000000000000000000000074
65355 +:10CCC0000000000000000000000000000000000064
65356 +:10CCD0000000000000000000000000000000000054
65357 +:10CCE0000000000000000000000000000000000044
65358 +:10CCF0000000000000000000000000000000000034
65359 +:10CD00000000000000000000000000000000000023
65360 +:10CD10000000000000000000000000000000000013
65361 +:10CD20000000000000000000000000000000000003
65362 +:10CD300000000000000000000000000000000000F3
65363 +:10CD400000000000000000000000000000000000E3
65364 +:10CD500000000000000000000000000000000000D3
65365 +:10CD600000000000000000000000000000000000C3
65366 +:10CD700000000000000000000000000000000000B3
65367 +:10CD800000000000000000000000000000000000A3
65368 +:10CD90000000000000000000000000000000000093
65369 +:10CDA0000000000000000000000000000000000083
65370 +:10CDB0000000000000000000000000000000000073
65371 +:10CDC0000000000000000000000000000000000063
65372 +:10CDD0000000000000000000000000000000000053
65373 +:10CDE0000000000000000000000000000000000043
65374 +:10CDF0000000000000000000000000000000000033
65375 +:10CE00000000000000000000000000000000000022
65376 +:10CE10000000000000000000000000000000000012
65377 +:10CE20000000000000000000000000000000000002
65378 +:10CE300000000000000000000000000000000000F2
65379 +:10CE400000000000000000000000000000000000E2
65380 +:10CE500000000000000000000000000000000000D2
65381 +:10CE600000000000000000000000000000000000C2
65382 +:10CE700000000000000000000000000000000000B2
65383 +:10CE800000000000000000000000000000000000A2
65384 +:10CE90000000000000000000000000000000000092
65385 +:10CEA0000000000000000000000000000000000082
65386 +:10CEB0000000000000000000000000000000000072
65387 +:10CEC0000000000000000000000000000000000062
65388 +:10CED0000000000000000000000000000000000052
65389 +:10CEE0000000000000000000000000000000000042
65390 +:10CEF0000000000000000000000000000000000032
65391 +:10CF00000000000000000000000000000000000021
65392 +:10CF10000000000000000000000000000000000011
65393 +:10CF20000000000000000000000000000000000001
65394 +:10CF300000000000000000000000000000000000F1
65395 +:10CF400000000000000000000000000000000000E1
65396 +:10CF500000000000000000000000000000000000D1
65397 +:10CF600000000000000000000000000000000000C1
65398 +:10CF700000000000000000000000000000000000B1
65399 +:10CF800000000000000000000000000000000000A1
65400 +:10CF90000000000000000000000000000000000091
65401 +:10CFA0000000000000000000000000000000000081
65402 +:10CFB0000000000000000000000000000000000071
65403 +:10CFC0000000000000000000000000000000000061
65404 +:10CFD0000000000000000000000000000000000051
65405 +:10CFE0000000000000000000000000000000000041
65406 +:10CFF0000000000000000000000000000000000031
65407 +:10D000000000000000000000000000000000000020
65408 +:10D010000000000000000000000000000000000010
65409 +:10D020000000000000000000000000000000000000
65410 +:10D0300000000000000000000000000000000000F0
65411 +:10D0400000000000000000000000000000000000E0
65412 +:10D0500000000000000000000000000000000000D0
65413 +:10D0600000000000000000000000000000000000C0
65414 +:10D0700000000000000000000000000000000000B0
65415 +:10D0800000000000000000000000000000000000A0
65416 +:10D090000000000000000000000000000000000090
65417 +:10D0A0000000000000000000000000000000000080
65418 +:10D0B0000000000000000000000000000000000070
65419 +:10D0C0000000000000000000000000000000000060
65420 +:10D0D0000000000000000000000000000000000050
65421 +:10D0E0000000000000000000000000000000000040
65422 +:10D0F0000000000000000000000000000000000030
65423 +:10D10000000000000000000000000000000000001F
65424 +:10D11000000000000000000000000000000000000F
65425 +:10D1200000000000000000000000000000000000FF
65426 +:10D1300000000000000000000000000000000000EF
65427 +:10D1400000000000000000000000000000000000DF
65428 +:10D1500000000000000000000000000000000000CF
65429 +:10D1600000000000000000000000000000000000BF
65430 +:10D1700000000000000000000000000000000000AF
65431 +:10D18000000000000000000000000000000000009F
65432 +:10D19000000000000000000000000000000000008F
65433 +:10D1A000000000000000000000000000000000007F
65434 +:10D1B000000000000000000000000000000000006F
65435 +:10D1C000000000000000000000000000000000005F
65436 +:10D1D000000000000000000000000000000000004F
65437 +:10D1E000000000000000000000000000000000003F
65438 +:10D1F000000000000000000000000000000000002F
65439 +:10D20000000000000000000000000000000000001E
65440 +:10D21000000000000000000000000000000000000E
65441 +:10D2200000000000000000000000000000000000FE
65442 +:10D2300000000000000000000000000000000000EE
65443 +:10D2400000000000000000000000000000000000DE
65444 +:10D2500000000000000000000000000000000000CE
65445 +:10D2600000000000000000000000000000000000BE
65446 +:10D2700000000000000000000000000000000000AE
65447 +:10D28000000000000000000000000000000000009E
65448 +:10D29000000000000000000000000000000000008E
65449 +:10D2A000000000000000000000000000000000007E
65450 +:10D2B000000000000000000000000000000000006E
65451 +:10D2C000000000000000000000000000000000005E
65452 +:10D2D000000000000000000000000000000000004E
65453 +:10D2E000000000000000000000000000000000003E
65454 +:10D2F000000000000000000000000000000000002E
65455 +:10D30000000000000000000000000000000000001D
65456 +:10D31000000000000000000000000000000000000D
65457 +:10D3200000000000000000000000000000000000FD
65458 +:10D3300000000000000000000000000000000000ED
65459 +:10D3400000000000000000000000000000000000DD
65460 +:10D3500000000000000000000000000000000000CD
65461 +:10D3600000000000000000000000000000000000BD
65462 +:10D3700000000000000000000000000000000000AD
65463 +:10D38000000000000000000000000000000000009D
65464 +:10D39000000000000000000000000000000000008D
65465 +:10D3A000000000000000000000000000000000007D
65466 +:10D3B000000000000000000000000000000000006D
65467 +:10D3C000000000000000000000000000000000005D
65468 +:10D3D000000000000000000000000000000000004D
65469 +:10D3E000000000000000000000000000000000003D
65470 +:10D3F000000000000000000000000000000000002D
65471 +:10D40000000000000000000000000000000000001C
65472 +:10D41000000000000000000000000000000000000C
65473 +:10D4200000000000000000000000000000000000FC
65474 +:10D4300000000000000000000000000000000000EC
65475 +:10D4400000000000000000000000000000000000DC
65476 +:10D4500000000000000000000000000000000000CC
65477 +:10D4600000000000000000000000000000000000BC
65478 +:10D4700000000000000000000000000000000000AC
65479 +:10D48000000000000000000000000000000000009C
65480 +:10D49000000000000000000000000000000000008C
65481 +:10D4A000000000000000000000000000000000007C
65482 +:10D4B000000000000000000000000000000000006C
65483 +:10D4C000000000000000000000000000000000005C
65484 +:10D4D000000000000000000000000000000000004C
65485 +:10D4E000000000000000000000000000000000003C
65486 +:10D4F000000000000000000000000000000000002C
65487 +:10D50000000000000000000000000000000000001B
65488 +:10D51000000000000000000000000000000000000B
65489 +:10D5200000000000000000000000000000000000FB
65490 +:10D5300000000000000000000000000000000000EB
65491 +:10D5400000000000000000000000000000000000DB
65492 +:10D5500000000000000000000000000000000000CB
65493 +:10D5600000000000000000000000000000000000BB
65494 +:10D5700000000000000000000000000000000000AB
65495 +:10D58000000000000000000000000000000000009B
65496 +:10D59000000000000000008000000000000000000B
65497 +:10D5A000000000000000000000000000000000007B
65498 +:10D5B00000000000000000000000000A0000000061
65499 +:10D5C0000000000000000000100000030000000048
65500 +:10D5D0000000000D0000000D3C02080024427340D2
65501 +:10D5E0003C030800246377CCAC4000000043202BB0
65502 +:10D5F0001480FFFD244200043C1D080037BD7FFC61
65503 +:10D6000003A0F0213C100800261032103C1C08003A
65504 +:10D61000279C73400E0010FE000000000000000D6B
65505 +:10D6200030A5FFFF30C600FF274301808F4201B8BD
65506 +:10D630000440FFFE24020002AC640000A465000860
65507 +:10D64000A066000AA062000B3C021000AC67001844
65508 +:10D6500003E00008AF4201B83C0360008C624FF861
65509 +:10D660000440FFFE3C020200AC644FC0AC624FC4F9
65510 +:10D670003C02100003E00008AC624FF89482000CFA
65511 +:10D680002486001400A0382100021302000210803A
65512 +:10D690000082402100C8102B1040005700000000FD
65513 +:10D6A00090C300002C6200095040005190C200015C
65514 +:10D6B000000310803C030800246372F00043102133
65515 +:10D6C0008C420000004000080000000090C30001F0
65516 +:10D6D0002402000A1462003A000000000106102330
65517 +:10D6E0002C42000A1440003624C600028CE20000DE
65518 +:10D6F00034420100ACE2000090C2000090C300017F
65519 +:10D7000090C4000290C5000300031C000002160034
65520 +:10D710000043102500042200004410250045102578
65521 +:10D7200024C60004ACE2000490C2000090C30001D3
65522 +:10D7300090C4000290C500030002160000031C0004
65523 +:10D740000043102500042200004410250045102548
65524 +:10D7500024C600040A000CB8ACE2000890C3000123
65525 +:10D76000240200041462001624C6000290C20000C5
65526 +:10D7700090C400018CE30000000212000044102558
65527 +:10D780003463000424C60002ACE2000C0A000CB8AA
65528 +:10D79000ACE3000090C300012402000314620008FF
65529 +:10D7A00024C600028CE2000090C3000024C60001E1
65530 +:10D7B00034420008A0E300100A000CB8ACE20000FC
65531 +:10D7C00003E000082402000190C3000124020002CB
65532 +:10D7D0001062000224C40002010020210A000CB8DB
65533 +:10D7E000008030210A000CB824C6000190C200015C
65534 +:10D7F0000A000CB800C2302103E00008000010212C
65535 +:10D8000027BDFFE8AFBF0014AFB000100E00130239
65536 +:10D8100000808021936200052403FFFE0200202186
65537 +:10D82000004310248FBF00148FB00010A3620005C6
65538 +:10D830000A00130B27BD001827BDFFE8AFB000108A
65539 +:10D84000AFBF00140E000F3C0080802193620000E7
65540 +:10D8500024030050304200FF14430004240201005E
65541 +:10D86000AF4201800A000D3002002021AF4001804C
65542 +:10D87000020020218FBF00148FB000100A000FE7B4
65543 +:10D8800027BD001827BDFF80AFBE0078AFB700747A
65544 +:10D89000AFB20060AFBF007CAFB60070AFB5006C38
65545 +:10D8A000AFB40068AFB30064AFB1005CAFB0005874
65546 +:10D8B0008F5001283C0208008C4231A02403FF80D5
65547 +:10D8C0009365003F0202102100431024AF42002460
65548 +:10D8D0003C0208008C4231A09364000530B200FF86
65549 +:10D8E000020210213042007F034218210004202749
65550 +:10D8F0003C02000A0062182130840001AF8300144A
65551 +:10D900000000F0210000B82114800053AFA00050A7
65552 +:10D9100093430116934401128F450104306300FFC5
65553 +:10D920003C020001308400FF00A2282403431021A0
65554 +:10D9300003441821245640002467400014A001CD60
65555 +:10D940002402000193620000304300FF2402002003
65556 +:10D950001062000524020050106200060000000062
65557 +:10D960000A000D74000000000000000D0A000D7D8B
65558 +:10D97000AFA000303C1E080027DE738C0A000D7D2E
65559 +:10D98000AFA000303C0208008C4200DC24420001C1
65560 +:10D990003C010800AC2200DC0E00139F00000000D8
65561 +:10D9A0000A000F318FBF007C8F4201043C0300202E
65562 +:10D9B00092D3000D004310240002202B00042140CC
65563 +:10D9C000AFA400308F4301043C02004000621824E1
65564 +:10D9D000146000023485004000802821326200205B
65565 +:10D9E000AFA500301440000234A6008000A0302112
65566 +:10D9F00010C0000BAFA6003093C500088F67004C25
65567 +:10DA00000200202100052B0034A5008130A5F08103
65568 +:10DA10000E000C9B30C600FF0A000F2E0000000015
65569 +:10DA20009362003E304200401040000F2402000488
65570 +:10DA300056420007240200120200202100E02821A3
65571 +:10DA40000E0013F702C030210A000F318FBF007C97
65572 +:10DA500016420005000000000E000D2100002021EC
65573 +:10DA60000A000F318FBF007C9743011A96C4000E45
65574 +:10DA700093620035326500043075FFFF00442004D6
65575 +:10DA8000AFA400548ED1000410A000158ED400085D
65576 +:10DA90009362003E3042004010400007000000004A
65577 +:10DAA0000E0013E0022020211040000D00000000B5
65578 +:10DAB0000A000F2E000000008F6200440222102393
65579 +:10DAC0000440016A000000008F6200480222102317
65580 +:10DAD00004410166240400160A000E218FC20004CE
65581 +:10DAE0008F6200480222102304400008000000005A
65582 +:10DAF0003C0208008C423100244200013C01080035
65583 +:10DB0000AC2231000A000F23000000008F620040A9
65584 +:10DB100002221023184000128F8400143C020800D7
65585 +:10DB20008C423100327300FC0000A8212442000125
65586 +:10DB30003C010800AC2231008F6300409482011C3C
65587 +:10DB4000022318233042FFFF0043102A50400010E8
65588 +:10DB50002402000C8F6200400A000DF20222102302
65589 +:10DB60009483011C9762003C0043102B1040000678
65590 +:10DB7000000000009482011C00551023A482011CA7
65591 +:10DB80000A000DF72402000CA480011C2402000CE2
65592 +:10DB9000AFA200308F620040005120231880000D9A
65593 +:10DBA00002A4102A1440012600000000149500066B
65594 +:10DBB00002A410233A620001304200011440012007
65595 +:10DBC0000000000002A41023022488210A000E098C
65596 +:10DBD0003055FFFF00002021326200021040001A81
65597 +:10DBE000326200109362003E30420040504000110B
65598 +:10DBF0008FC200040E00130202002021240200182C
65599 +:10DC0000A362003F936200052403FFFE020020216F
65600 +:10DC1000004310240E00130BA362000524040039F6
65601 +:10DC2000000028210E0013C9240600180A000F3036
65602 +:10DC300024020001240400170040F809000000003D
65603 +:10DC40000A000F302402000110400108000000000B
65604 +:10DC50008F63004C8F620054028210231C4001032A
65605 +:10DC600002831023044200010060A021AFA4001829
65606 +:10DC7000AFB10010AFB50014934201208F65004092
65607 +:10DC80009763003C304200FF034210210044102102
65608 +:10DC90008FA400543063FFFF244240000083182B00
65609 +:10DCA0008FA40030AFA20020AFA50028008320255C
65610 +:10DCB000AFA40030AFA50024AFA0002CAFB4003457
65611 +:10DCC0009362003E30420008504000118FC20000B5
65612 +:10DCD00002C0202127A500380E000CB2AFA00038EA
65613 +:10DCE0005440000B8FC200008FA200383042010068
65614 +:10DCF000504000078FC200008FA3003C8F6200607D
65615 +:10DD00000062102304430001AF6300608FC2000073
65616 +:10DD10000040F80927A400108FA200303042000212
65617 +:10DD200054400001327300FE9362003E30420040D6
65618 +:10DD3000104000378FA200248F6200541682001A10
65619 +:10DD40003262000124020014124200102A4200151F
65620 +:10DD500010400006240200162402000C12420007A4
65621 +:10DD6000326200010A000E7D000000001242000530
65622 +:10DD7000326200010A000E7D000000000A000E78E9
65623 +:10DD80002417000E0A000E78241700100A000E7CDB
65624 +:10DD900024170012936200232403FFBD00431024C4
65625 +:10DDA000A362002332620001104000198FA20024F8
65626 +:10DDB0002402000C1242000E2A42000D1040000600
65627 +:10DDC0002402000E2402000A124200078FA200243F
65628 +:10DDD0000A000E9524420001124200088FA200247E
65629 +:10DDE0000A000E95244200010A000E932417000831
65630 +:10DDF0002402000E16E20002241700162417001059
65631 +:10DE00008FA2002424420001AFA200248FA200248C
65632 +:10DE10008FA300148F76004000431021AF620040B2
65633 +:10DE20008F8200149442011C104000090000000081
65634 +:10DE30008F6200488F6400409763003C00441023C9
65635 +:10DE40003063FFFF0043102A104000088FA20054E7
65636 +:10DE5000936400368F6300403402FFFC008210049C
65637 +:10DE600000621821AF6300488FA200548FA60030D3
65638 +:10DE70000282902130C200081040000E0000000015
65639 +:10DE80008F6200581642000430C600FF9742011A04
65640 +:10DE90005040000134C6001093C500088FA700341D
65641 +:10DEA0000200202100052B0034A500800E000C9BF1
65642 +:10DEB00030A5F0808F620040005610231840001BF0
65643 +:10DEC0008FA200183C0208008C42319830420010AA
65644 +:10DED0001040000D24020001976200681440000AFF
65645 +:10DEE000240200018F8200149442011C1440000699
65646 +:10DEF00024020001A76200689742007A244200646D
65647 +:10DF00000A000EE9A7620012A76200120E001302B7
65648 +:10DF1000020020219362007D2403000102002021E1
65649 +:10DF2000344200010A000EE7AFA300501840000A77
65650 +:10DF3000000000000E001302020020219362007D09
65651 +:10DF40002403000102002021AFA30050344200044A
65652 +:10DF50000E00130BA362007D9362003E304200402E
65653 +:10DF60001440000C326200011040000A0000000062
65654 +:10DF70008F6300408FC20004240400182463000152
65655 +:10DF80000040F809AF6300408FA200300A000F3054
65656 +:10DF9000304200048F620058105200100000000050
65657 +:10DFA0008F620018022210231C4000082404000184
65658 +:10DFB0008F62001816220009000000008F62001C0A
65659 +:10DFC000028210230440000500000000AF720058D8
65660 +:10DFD000AFA40050AF710018AF74001C12E0000B2A
65661 +:10DFE0008FA200500E00130202002021A377003FF1
65662 +:10DFF0000E00130B0200202102E030212404003720
65663 +:10E000000E0013C9000028218FA200501040000309
65664 +:10E01000000000000E000CA90200202112A0000543
65665 +:10E02000000018218FA2003030420004504000113F
65666 +:10E0300000601021240300010A000F30006010214D
65667 +:10E040000E001302020020219362007D02002021B5
65668 +:10E05000344200040E00130BA362007D0E000CA9D5
65669 +:10E06000020020210A000F3024020001AF400044CA
65670 +:10E07000240200018FBF007C8FBE00788FB7007430
65671 +:10E080008FB600708FB5006C8FB400688FB30064DA
65672 +:10E090008FB200608FB1005C8FB0005803E00008C1
65673 +:10E0A00027BD00808F4201B80440FFFE2402080013
65674 +:10E0B000AF4201B803E00008000000003C02000885
65675 +:10E0C00003421021944200483084FFFF2484001250
65676 +:10E0D0003045FFFF10A0001700A4102B10400016C1
65677 +:10E0E00024020003934201202403001AA343018B5E
65678 +:10E0F000304200FF2446FFFE8F82000000A6182B4E
65679 +:10E100003863000100021382004310241040000510
65680 +:10E110008F84000434820001A746019403E00008C4
65681 +:10E12000AF8200042402FFFE0082102403E00008F6
65682 +:10E13000AF8200042402000303E00008A342018B25
65683 +:10E1400027BDFFE0AFB10014AFB00010AFBF0018A3
65684 +:10E1500030B0FFFF30D1FFFF8F4201B80440FFFE17
65685 +:10E1600000000000AF440180AF4400200E000F42C9
65686 +:10E17000020020218F8300008F840004A750019AA1
65687 +:10E18000A750018EA74301908F8300083082800042
65688 +:10E19000AF4301A8A75101881040000E8F820004F0
65689 +:10E1A00093420116304200FC24420004005A102120
65690 +:10E1B0008C4240003042FFFF144000068F82000472
65691 +:10E1C0003C02FFFF34427FFF00821024AF82000434
65692 +:10E1D0008F8200042403BFFF00431024A74201A63E
65693 +:10E1E0009743010C8F42010400031C003042FFFFE3
65694 +:10E1F00000621825AF4301AC3C021000AF4201B8E9
65695 +:10E200008FBF00188FB100148FB0001003E000081A
65696 +:10E2100027BD00208F470070934201128F830000BA
65697 +:10E2200027BDFFF0304200FF00022882306201006B
65698 +:10E23000000030211040004324A40003306240005D
65699 +:10E24000104000103062200000041080005A10219D
65700 +:10E250008C43400024A4000400041080AFA30000FD
65701 +:10E26000005A10218C424000AFA2000493420116D4
65702 +:10E27000304200FC005A10218C4240000A000FC0BE
65703 +:10E28000AFA200081040002F0000302100041080D1
65704 +:10E29000005A10218C43400024A400040004108084
65705 +:10E2A000AFA30000005A10218C424000AFA000082C
65706 +:10E2B000AFA200048FA80008000030210000202138
65707 +:10E2C000240A00083C0908002529010003A41021A4
65708 +:10E2D000148A000300042A001100000A0000000054
65709 +:10E2E00090420000248400012C83000C00A2102125
65710 +:10E2F00000021080004910218C4200001460FFF3DE
65711 +:10E3000000C230263C0408008C8431048F42007027
65712 +:10E310002C83002010600009004738233C030800CC
65713 +:10E32000246331080004108000431021248300017D
65714 +:10E33000AC4700003C010800AC233104AF86000864
65715 +:10E340002406000100C0102103E0000827BD0010D2
65716 +:10E350003C0208008C42003827BDFFD0AFB5002436
65717 +:10E36000AFB40020AFB10014AFBF0028AFB3001CA2
65718 +:10E37000AFB20018AFB00010000088213C150800B3
65719 +:10E3800026B50038144000022454FFFF0000A021ED
65720 +:10E390009742010E8F8400003042FFFF308340001F
65721 +:10E3A0001060000A245200043C0200200082102465
65722 +:10E3B00050400007308280008F8200042403BFFF9A
65723 +:10E3C000008318240A0010103442100030828000AC
65724 +:10E3D0001040000A3C020020008210241040000778
65725 +:10E3E0008F8200043C03FFFF34637FFF0083182407
65726 +:10E3F00034428000AF820004AF8300000E000F980B
65727 +:10E400000000000014400007000000009743011EB8
65728 +:10E410009742011C3063FFFF0002140000621825C0
65729 +:10E42000AF8300089742010C8F4340003045FFFF47
65730 +:10E430003402FFFF14620003000000000A001028ED
65731 +:10E44000241100208F42400030420100544000015E
65732 +:10E45000241100108F8400003082100050400014FE
65733 +:10E4600036310001308200201440000B3C021000C5
65734 +:10E47000008210245040000E363100013C030E0093
65735 +:10E480003C020DFF008318243442FFFF0043102B91
65736 +:10E4900050400007363100013C0208008C42002C3D
65737 +:10E4A000244200013C010800AC22002C363100055A
65738 +:10E4B0003C0608008CC6003454C000238F85000041
65739 +:10E4C0008F820004304240005440001F8F850000BE
65740 +:10E4D0003C021F01008210243C0310005443001A28
65741 +:10E4E0008F85000030A20200144000178F850000C5
65742 +:10E4F0003250FFFF363100028F4201B80440FFFE68
65743 +:10E5000000000000AF400180020020210E000F42F9
65744 +:10E51000AF4000208F8300042402BFFFA750019A60
65745 +:10E52000006218248F820000A750018EA751018835
65746 +:10E53000A74301A6A74201903C021000AF4201B8D8
65747 +:10E540000A0010F5000010213C02100000A2102467
65748 +:10E550001040003A0000000010C0000F0000000052
65749 +:10E5600030A201001040000C3C0302003C020F00EE
65750 +:10E5700000A2102410430008000000008F82000851
65751 +:10E58000005410240055102190420004244200043D
65752 +:10E590000A00109F000221C00000000000051602C2
65753 +:10E5A0003050000F3A0300022E4203EF38420001C0
65754 +:10E5B0002C6300010062182414600073240200011F
65755 +:10E5C0003C0308008C6300D02E06000C386200016A
65756 +:10E5D0002C4200010046102414400015001021C0F8
65757 +:10E5E0002602FFFC2C4200045440001100002021B0
65758 +:10E5F000386200022C420001004610241040000343
65759 +:10E60000000512420A00109F000020210010182B64
65760 +:10E610000043102450400006001021C000002021BB
65761 +:10E620003245FFFF0E000F633226FFFB001021C0B2
65762 +:10E630003245FFFF0A0010F2362600028F424000EA
65763 +:10E640003C0308008C630024304201001040004667
65764 +:10E6500030620001322200043070000D14400002CC
65765 +:10E660002413000424130002000512C238420001E2
65766 +:10E670002E4303EF304200013863000100431025B0
65767 +:10E68000104000033231FFFB2402FFFB0202802412
65768 +:10E6900010C000183202000130A201001040001525
65769 +:10E6A000320200013C020F0000A210243C030200D1
65770 +:10E6B0001043000F8F8200082403FFFE0203802412
65771 +:10E6C00000541024005510219042000402333025DC
65772 +:10E6D0002442000412000002000221C03226FFFF83
65773 +:10E6E0000E000F633245FFFF1200002700001021CB
65774 +:10E6F000320200011040000D320200042402000129
65775 +:10E7000012020002023330253226FFFF00002021D2
65776 +:10E710000E000F633245FFFF2402FFFE0202802439
65777 +:10E7200012000019000010213202000410400016EF
65778 +:10E7300024020001240200041202000202333025E8
65779 +:10E740003226FFFF3245FFFF0E000F632404010055
65780 +:10E750002402FFFB020280241200000B00001021A3
65781 +:10E760000A0010F5240200011040000700001021EB
65782 +:10E770003245FFFF36260002000020210E000F6305
65783 +:10E7800000000000000010218FBF00288FB500247A
65784 +:10E790008FB400208FB3001C8FB200188FB100140B
65785 +:10E7A0008FB0001003E0000827BD003027BDFFD068
65786 +:10E7B000AFB000103C04600CAFBF002CAFB6002817
65787 +:10E7C000AFB50024AFB40020AFB3001CAFB2001847
65788 +:10E7D000AFB100148C8250002403FF7F3C1A8000EC
65789 +:10E7E000004310243442380CAC8250002402000351
65790 +:10E7F0003C106000AF4200088E0208083C1B8008F5
65791 +:10E800003C010800AC2000203042FFF038420010EC
65792 +:10E810002C4200010E001B8DAF8200183C04FFFF4C
65793 +:10E820003C020400348308063442000CAE0219484E
65794 +:10E83000AE03194C3C0560168E0219808CA30000B3
65795 +:10E840003442020000641824AE0219803C02535383
65796 +:10E850001462000334A47C008CA200040050202128
65797 +:10E860008C82007C8C830078AF820010AF83000C18
65798 +:10E870008F55000032A200031040FFFD32A20001BC
65799 +:10E880001040013D32A200028F420128AF42002019
65800 +:10E890008F4201048F430100AF8200000E000F3C45
65801 +:10E8A000AF8300043C0208008C4200C01040000806
65802 +:10E8B0008F8400003C0208008C4200C42442000106
65803 +:10E8C0003C010800AC2200C40A00126900000000EC
65804 +:10E8D0003C020010008210241440010C8F830004BD
65805 +:10E8E0003C0208008C4200203C0308008C63003886
65806 +:10E8F00000008821244200013C010800AC220020D5
65807 +:10E900003C16080026D60038146000022474FFFF6D
65808 +:10E910000000A0219742010E308340003042FFFFEB
65809 +:10E920001060000A245200043C02002000821024DF
65810 +:10E9300050400007308280008F8200042403BFFF14
65811 +:10E94000008318240A0011703442100030828000C5
65812 +:10E950001040000A3C0200200082102410400007F2
65813 +:10E960008F8200043C03FFFF34637FFF0083182481
65814 +:10E9700034428000AF820004AF8300000E000F9885
65815 +:10E980000000000014400007000000009743011E33
65816 +:10E990009742011C3063FFFF00021400006218253B
65817 +:10E9A000AF8300089742010C8F4340003045FFFFC2
65818 +:10E9B0003402FFFF14620003000000000A00118807
65819 +:10E9C000241100208F4240003042010054400001D9
65820 +:10E9D000241100108F840000308210005040001479
65821 +:10E9E00036310001308200201440000B3C02100040
65822 +:10E9F000008210245040000E363100013C030E000E
65823 +:10EA00003C020DFF008318243442FFFF0043102B0B
65824 +:10EA100050400007363100013C0208008C42002CB7
65825 +:10EA2000244200013C010800AC22002C36310005D4
65826 +:10EA30003C0608008CC6003454C000238F850000BB
65827 +:10EA40008F820004304240005440001F8F85000038
65828 +:10EA50003C021F01008210243C0310005443001AA2
65829 +:10EA60008F85000030A20200144000178F8500003F
65830 +:10EA70003250FFFF363100028F4201B80440FFFEE2
65831 +:10EA800000000000AF400180020020210E000F4274
65832 +:10EA9000AF4000208F8300042402BFFFA750019ADB
65833 +:10EAA000006218248F820000A750018EA7510188B0
65834 +:10EAB000A74301A6A74201903C021000AF4201B853
65835 +:10EAC0000A001267000010213C02100000A210246E
65836 +:10EAD0001040003A0000000010C0000F00000000CD
65837 +:10EAE00030A201001040000C3C0302003C020F0069
65838 +:10EAF00000A2102410430008000000008F820008CC
65839 +:10EB000000541024005610219042000424420004B6
65840 +:10EB10000A0011FF000221C00000000000051602DB
65841 +:10EB20003050000F3A0300022E4203EF384200013A
65842 +:10EB30002C63000100621824146000852402000187
65843 +:10EB40003C0308008C6300D02E06000C38620001E4
65844 +:10EB50002C4200010046102414400015001021C072
65845 +:10EB60002602FFFC2C42000454400011000020212A
65846 +:10EB7000386200022C42000100461024504000037D
65847 +:10EB8000000512420A0011FF000020210010182B7E
65848 +:10EB90000043102450400006001021C00000202136
65849 +:10EBA0003245FFFF0E000F633226FFFB001021C02D
65850 +:10EBB0003245FFFF0A001252362600028F42400003
65851 +:10EBC0003C0308008C6300243042010010400046E2
65852 +:10EBD00030620001322200043070000D1440000247
65853 +:10EBE0002413000424130002000512C2384200015D
65854 +:10EBF0002E4303EF3042000138630001004310252B
65855 +:10EC0000104000033231FFFB2402FFFB020280248C
65856 +:10EC100010C000183202000130A20100104000159F
65857 +:10EC2000320200013C020F0000A210243C0302004B
65858 +:10EC30001043000F8F8200082403FFFE020380248C
65859 +:10EC40000054102400561021904200040233302555
65860 +:10EC50002442000412000002000221C03226FFFFFD
65861 +:10EC60000E000F633245FFFF120000390000102133
65862 +:10EC7000320200011040000D3202000424020001A3
65863 +:10EC800012020002023330253226FFFF000020214D
65864 +:10EC90000E000F633245FFFF2402FFFE02028024B4
65865 +:10ECA0001200002B00001021320200041040002846
65866 +:10ECB0002402000124020004120200020233302563
65867 +:10ECC0003226FFFF3245FFFF0E000F6324040100D0
65868 +:10ECD0002402FFFB020280241200001D000010210C
65869 +:10ECE0000A001267240200015040001900001021A0
65870 +:10ECF0003245FFFF36260002000020210E000F6380
65871 +:10ED0000000000000A001267000010212402BFFF6B
65872 +:10ED1000006210241040000800000000240287FF59
65873 +:10ED200000621024144000083C020060008210249D
65874 +:10ED300010400005000000000E000D34000000002F
65875 +:10ED40000A001267000000000E0012C70000000059
65876 +:10ED5000104000063C0240008F4301243C0260202A
65877 +:10ED6000AC430014000000003C024000AF420138F8
65878 +:10ED70000000000032A200021040FEBD00000000B2
65879 +:10ED80008F4201403C044000AF4200208F430148C5
65880 +:10ED90003C02700000621824106400420000000071
65881 +:10EDA0000083102B144000063C0260003C0220004F
65882 +:10EDB000106200073C0240000A0012C3000000007D
65883 +:10EDC0001062003C3C0240000A0012C30000000038
65884 +:10EDD0008F4501408F4601448F42014800021402D2
65885 +:10EDE000304300FF240200041462000A274401801B
65886 +:10EDF0008F4201B80440FFFE2402001CAC850000D5
65887 +:10EE0000A082000B3C021000AF4201B80A0012C3FE
65888 +:10EE10003C0240002402000914620012000616029F
65889 +:10EE2000000229C0AF4500208F4201B80440FFFE18
65890 +:10EE30002402000124030003AF450180A343018B9A
65891 +:10EE4000A740018EA740019AA7400190AF4001A8BA
65892 +:10EE5000A7420188A74201A6AF4001AC3C021000C6
65893 +:10EE6000AF4201B88F4201B80440FFFE000000002D
65894 +:10EE7000AC8500008F42014800021402A482000801
65895 +:10EE800024020002A082000B8F420148A4820010DD
65896 +:10EE90003C021000AC860024AF4201B80A0012C345
65897 +:10EEA0003C0240000E001310000000000A0012C3D4
65898 +:10EEB0003C0240000E001BC2000000003C0240006B
65899 +:10EEC000AF420178000000000A00112F000000008E
65900 +:10EED0008F4201003042003E144000112402000124
65901 +:10EEE000AF4000488F420100304207C0104000058B
65902 +:10EEF00000000000AF40004CAF40005003E00008AD
65903 +:10EF000024020001AF400054AF4000408F42010096
65904 +:10EF10003042380054400001AF4000442402000158
65905 +:10EF200003E00008000000008F4201B80440FFFE2B
65906 +:10EF300024020001AF440180AF400184A74501884D
65907 +:10EF4000A342018A24020002A342018B9742014A94
65908 +:10EF500014C00004A7420190AF4001A40A0012EFC0
65909 +:10EF60003C0210008F420144AF4201A43C02100059
65910 +:10EF7000AF4001A803E00008AF4201B88F4201B8DA
65911 +:10EF80000440FFFE24020002AF440180AF4401842C
65912 +:10EF9000A7450188A342018AA342018B9742014AF7
65913 +:10EFA000A7420190AF4001A48F420144AF4201A8A3
65914 +:10EFB0003C02100003E00008AF4201B83C029000A0
65915 +:10EFC0003442000100822025AF4400208F420020FF
65916 +:10EFD0000440FFFE0000000003E000080000000005
65917 +:10EFE0003C028000344200010082202503E000083A
65918 +:10EFF000AF44002027BDFFE8AFBF0014AFB0001042
65919 +:10F000008F50014093430149934201489344014882
65920 +:10F01000306300FF304200FF00021200006228252A
65921 +:10F020002402001910620076308400802862001AE1
65922 +:10F030001040001C24020020240200081062007707
65923 +:10F04000286200091040000E2402000B2402000177
65924 +:10F0500010620034286200025040000524020006BD
65925 +:10F0600050600034020020210A00139A00000000C2
65926 +:10F0700010620030020020210A00139A00000000F4
65927 +:10F080001062003B2862000C504000022402000E77
65928 +:10F090002402000910620056020020210A00139A7F
65929 +:10F0A0000000000010620056286200211040000F8E
65930 +:10F0B000240200382402001C106200582862001D3F
65931 +:10F0C000104000062402001F2402001B1062004CA6
65932 +:10F0D000000000000A00139A000000001062004ABD
65933 +:10F0E000020020210A00139A00000000106200456F
65934 +:10F0F0002862003910400007240200802462FFCB00
65935 +:10F100002C42000210400045020020210A00139604
65936 +:10F110000000302110620009000000000A00139A6C
65937 +:10F12000000000001480003D020020210A0013901E
65938 +:10F130008FBF00140A001396240600018F4201B805
65939 +:10F140000440FFFE24020002A342018BA745018870
65940 +:10F150009742014AA74201908F420144A74201927F
65941 +:10F160003C021000AF4201B80A00139C8FBF00148C
65942 +:10F170009742014A144000290000000093620005F4
65943 +:10F180003042000414400025000000000E0013026D
65944 +:10F190000200202193620005020020213442000475
65945 +:10F1A0000E00130BA36200059362000530420004B9
65946 +:10F1B00014400002000000000000000D93620000F7
65947 +:10F1C00024030020304200FF14430014000000001C
65948 +:10F1D0008F4201B80440FFFE24020005AF500180B9
65949 +:10F1E000A342018B3C0210000A00139AAF4201B8FF
65950 +:10F1F0008FBF00148FB000100A0012F227BD001854
65951 +:10F200000000000D02002021000030218FBF0014FB
65952 +:10F210008FB000100A0012DD27BD00180000000D9D
65953 +:10F220008FBF00148FB0001003E0000827BD001846
65954 +:10F2300027BDFFE8AFBF00100E000F3C000000002C
65955 +:10F24000AF4001808FBF0010000020210A000FE7AF
65956 +:10F2500027BD00183084FFFF30A5FFFF00001821F4
65957 +:10F260001080000700000000308200011040000202
65958 +:10F2700000042042006518210A0013AB0005284055
65959 +:10F2800003E000080060102110C0000624C6FFFF44
65960 +:10F290008CA2000024A50004AC8200000A0013B573
65961 +:10F2A0002484000403E000080000000010A000080F
65962 +:10F2B00024A3FFFFAC860000000000000000000057
65963 +:10F2C0002402FFFF2463FFFF1462FFFA248400047A
65964 +:10F2D00003E0000800000000308300FF30A500FFBD
65965 +:10F2E00030C600FF274701808F4201B80440FFFE6F
65966 +:10F2F000000000008F42012834634000ACE20000AF
65967 +:10F3000024020001ACE00004A4E30008A0E2000A2B
65968 +:10F3100024020002A0E2000B3C021000A4E5001051
65969 +:10F32000ACE00024ACE00028A4E6001203E00008F2
65970 +:10F33000AF4201B827BDFFE8AFBF00109362003FA6
65971 +:10F3400024030012304200FF1043000D00803021E2
65972 +:10F350008F620044008210230440000A8FBF001017
65973 +:10F360008F620048240400390000282100C21023C5
65974 +:10F3700004410004240600120E0013C9000000001E
65975 +:10F380008FBF00102402000103E0000827BD001811
65976 +:10F3900027BDFFC8AFB20030AFB1002CAFBF003403
65977 +:10F3A000AFB0002890C5000D0080902130A400105F
65978 +:10F3B0001080000B00C088218CC300088F620054AD
65979 +:10F3C0001062000730A20005144000B524040001BB
65980 +:10F3D0000E000D21000020210A0014BB0040202156
65981 +:10F3E00030A200051040000930A30012108000ACCC
65982 +:10F3F000240400018E2300088F620054146200A9C7
65983 +:10F400008FBF00340A00142C240400382402001298
65984 +:10F41000146200A3240400010220202127A500106B
65985 +:10F420000E000CB2AFA000101040001102402021CD
65986 +:10F430008E220008AF620084AF6000400E0013020D
65987 +:10F44000000000009362007D024020213442002031
65988 +:10F450000E00130BA362007D0E000CA902402021B8
65989 +:10F46000240400382405008D0A0014B82406001274
65990 +:10F470009362003E304200081040000F8FA200103F
65991 +:10F4800030420100104000078FA300148F6200601B
65992 +:10F490000062102304430008AF6300600A001441B7
65993 +:10F4A00000000000AF6000609362003E2403FFF79D
65994 +:10F4B00000431024A362003E9362003E30420008E5
65995 +:10F4C000144000022406000300003021936200343F
65996 +:10F4D000936300378F640084304200FF306300FF85
65997 +:10F4E00000661821000318800043282100A4202B67
65998 +:10F4F0001080000B000000009763003C8F620084C6
65999 +:10F500003063FFFF004510230062182B14600004D5
66000 +:10F51000000000008F6200840A00145D0045802313
66001 +:10F520009762003C3050FFFF8FA300103062000450
66002 +:10F5300010400004000628808FA2001C0A001465F9
66003 +:10F540000202102B2E02021850400003240202185F
66004 +:10F550000A00146E020510233063000410600003DB
66005 +:10F56000004510238FA2001C00451023004080217D
66006 +:10F570002C42008054400001241000800E00130231
66007 +:10F580000240202124020001AF62000C9362003E81
66008 +:10F59000001020403042007FA362003E8E22000413
66009 +:10F5A00024420001AF620040A770003C8F6200500F
66010 +:10F5B0009623000E00431021AF6200588F62005066
66011 +:10F5C00000441021AF62005C8E220004AF6200187C
66012 +:10F5D0008E220008AF62001C8FA20010304200088B
66013 +:10F5E0005440000A93A20020A360003693620036C4
66014 +:10F5F0002403FFDFA36200359362003E0043102422
66015 +:10F60000A362003E0A0014988E220008A36200350F
66016 +:10F610008E220008AF62004C8F6200248F6300408E
66017 +:10F6200000431021AF6200489362000024030050A1
66018 +:10F63000304200FF144300122403FF803C02080004
66019 +:10F640008C4231A00242102100431024AF42002816
66020 +:10F650003C0208008C4231A08E2400083C03000CC0
66021 +:10F66000024210213042007F03421021004310214A
66022 +:10F67000AC4400D88E230008AF820014AC4300DCF9
66023 +:10F680000E00130B02402021240400380000282122
66024 +:10F690002406000A0E0013C9000000002404000123
66025 +:10F6A0008FBF00348FB200308FB1002C8FB0002894
66026 +:10F6B0000080102103E0000827BD003827BDFFF8B7
66027 +:10F6C00027420180AFA20000308A00FF8F4201B8BC
66028 +:10F6D0000440FFFE000000008F4601283C020800A5
66029 +:10F6E0008C4231A02403FF80AF86004800C2102165
66030 +:10F6F00000431024AF4200243C0208008C4231A099
66031 +:10F700008FA900008FA8000000C210213042007FA6
66032 +:10F71000034218213C02000A00621821946400D4BC
66033 +:10F720008FA700008FA5000024020002AF83001401
66034 +:10F73000A0A2000B8FA30000354260003084FFFFC1
66035 +:10F74000A4E200083C021000AD260000AD04000455
66036 +:10F75000AC60002427BD0008AF4201B803E00008F8
66037 +:10F76000240200018F88003C938200288F830014BC
66038 +:10F770003C07080024E7779800481023304200FF38
66039 +:10F78000304900FC246500888F860040304A000321
66040 +:10F790001120000900002021248200048CA3000015
66041 +:10F7A000304400FF0089102AACE3000024A50004C7
66042 +:10F7B0001440FFF924E70004114000090000202153
66043 +:10F7C0002482000190A30000304400FF008A102B27
66044 +:10F7D000A0E3000024A500011440FFF924E7000184
66045 +:10F7E00030C20003144000048F85003C3102000346
66046 +:10F7F0001040000D0000000010A0000900002021B2
66047 +:10F800002482000190C30000304400FF0085102BCB
66048 +:10F81000A0E3000024C600011440FFF924E7000122
66049 +:10F8200003E00008000000001100FFFD000020219F
66050 +:10F83000248200048CC30000304400FF0088102B99
66051 +:10F84000ACE3000024C600041440FFF924E70004E0
66052 +:10F8500003E00008000000008F83003C9382002832
66053 +:10F8600030C600FF30A500FF00431023304300FFE7
66054 +:10F870008F820014008038210043102114C0000240
66055 +:10F88000244800880083382130E20003144000053A
66056 +:10F8900030A2000314400003306200031040000D4A
66057 +:10F8A0000000000010A000090000202124820001B7
66058 +:10F8B00090E30000304400FF0085102BA1030000FE
66059 +:10F8C00024E700011440FFF92508000103E00008C7
66060 +:10F8D0000000000010A0FFFD000020212482000491
66061 +:10F8E0008CE30000304400FF0085102BAD030000C6
66062 +:10F8F00024E700041440FFF92508000403E0000891
66063 +:10F90000000000000080482130AAFFFF30C600FF41
66064 +:10F9100030E7FFFF274801808F4201B80440FFFE17
66065 +:10F920008F820048AD0200008F420124AD02000426
66066 +:10F930008D220020A5070008A102000A240200165B
66067 +:10F94000A102000B934301208D2200088D240004A6
66068 +:10F95000306300FF004310219783003A00441021D8
66069 +:10F960008D250024004310233C0308008C6331A044
66070 +:10F970008F840014A502000C246300E82402FFFF1A
66071 +:10F98000A50A000EA5030010A5060012AD0500187B
66072 +:10F99000AD020024948201142403FFF73042FFFFDC
66073 +:10F9A000AD0200288C820118AD02002C3C02100030
66074 +:10F9B000AD000030AF4201B88D220020004310247A
66075 +:10F9C00003E00008AD2200208F82001430E7FFFF23
66076 +:10F9D00000804821904200D330A5FFFF30C600FFD1
66077 +:10F9E0000002110030420F0000E238252748018054
66078 +:10F9F0008F4201B80440FFFE8F820048AD02000034
66079 +:10FA00008F420124AD0200048D220020A5070008CA
66080 +:10FA1000A102000A24020017A102000B9343012057
66081 +:10FA20008D2200088D240004306300FF0043102164
66082 +:10FA30009783003A004410218F8400140043102360
66083 +:10FA40003C0308008C6331A0A502000CA505000E44
66084 +:10FA5000246300E8A5030010A5060012AD00001401
66085 +:10FA60008D220024AD0200188C82005CAD02001CC7
66086 +:10FA70008C820058AD0200202402FFFFAD0200245A
66087 +:10FA8000948200E63042FFFFAD02002894820060BD
66088 +:10FA9000948300BE30427FFF3063FFFF00021200FC
66089 +:10FAA00000431021AD02002C3C021000AD000030DC
66090 +:10FAB000AF4201B8948200BE2403FFF700A21021D8
66091 +:10FAC000A48200BE8D2200200043102403E0000821
66092 +:10FAD000AD220020274301808F4201B80440FFFE81
66093 +:10FAE0008F8200249442001C3042FFFF000211C0AC
66094 +:10FAF000AC62000024020019A062000B3C0210005E
66095 +:10FB0000AC60003003E00008AF4201B88F87002CE2
66096 +:10FB100030C300FF8F4201B80440FFFE8F820048CF
66097 +:10FB200034636000ACA2000093820044A0A20005F0
66098 +:10FB30008CE20010A4A20006A4A300088C8200207E
66099 +:10FB40002403FFF7A0A2000A24020002A0A2000BD7
66100 +:10FB50008CE20000ACA200108CE20004ACA2001405
66101 +:10FB60008CE2001CACA200248CE20020ACA2002895
66102 +:10FB70008CE2002CACA2002C8C820024ACA20018D9
66103 +:10FB80003C021000AF4201B88C82002000431024D8
66104 +:10FB900003E00008AC8200208F86001427BDFFE838
66105 +:10FBA000AFBF0014AFB0001090C20063304200201D
66106 +:10FBB0001040000830A500FF8CC2007C2403FFDF4A
66107 +:10FBC00024420001ACC2007C90C2006300431024B8
66108 +:10FBD000A0C2006310A000238F830014275001806F
66109 +:10FBE000020028210E0015D6240600828F82001400
66110 +:10FBF000904200633042004050400019A38000440E
66111 +:10FC00008F83002C8F4201B80440FFFE8F82004892
66112 +:10FC1000AE02000024026082A60200082402000254
66113 +:10FC2000A202000B8C620008AE0200108C62000C75
66114 +:10FC3000AE0200148C620014AE0200188C62001830
66115 +:10FC4000AE0200248C620024AE0200288C620028E0
66116 +:10FC5000AE02002C3C021000AF4201B8A380004469
66117 +:10FC60008F8300148FBF00148FB000109062006368
66118 +:10FC700027BD00183042007FA06200639782003ADF
66119 +:10FC80008F86003C8F850014938300280046102344
66120 +:10FC9000A782003AA4A000E490A400638F820040F1
66121 +:10FCA000AF83003C2403FFBF0046102100832024C3
66122 +:10FCB000AF820040A0A400638F820014A04000BD6A
66123 +:10FCC0008F82001403E00008A44000BE8F8A001455
66124 +:10FCD00027BDFFE0AFB10014AFB000108F88003C2B
66125 +:10FCE000AFBF00189389001C954200E430D100FF9B
66126 +:10FCF0000109182B0080802130AC00FF3047FFFF46
66127 +:10FD00000000582114600003310600FF012030215B
66128 +:10FD1000010958239783003A0068102B1440003CD7
66129 +:10FD20000000000014680007240200018E02002079
66130 +:10FD30002403FFFB34E7800000431024AE020020C0
66131 +:10FD40002402000134E70880158200053165FFFFB9
66132 +:10FD50000E001554020020210A00169102002021F5
66133 +:10FD60000E001585020020218F8400482743018062
66134 +:10FD70008F4201B80440FFFE24020018AC6400006A
66135 +:10FD8000A062000B8F840014948200E6A46200102D
66136 +:10FD90003C021000AC600030AF4201B894820060B9
66137 +:10FDA00024420001A4820060948200603C030800A9
66138 +:10FDB0008C63318830427FFF5443000F02002021C2
66139 +:10FDC000948200602403800000431024A482006019
66140 +:10FDD0009082006090830060304200FF000211C2F8
66141 +:10FDE00000021027000211C03063007F0062182556
66142 +:10FDF000A083006002002021022028218FBF00186C
66143 +:10FE00008FB100148FB000100A0015F927BD002033
66144 +:10FE1000914200632403FF8000431025A142006348
66145 +:10FE20009782003A3048FFFF110000209383001CA6
66146 +:10FE30008F840014004B1023304600FF948300E4AD
66147 +:10FE40002402EFFF0168282B00621824A48300E439
66148 +:10FE500014A000038E020020010058210000302170
66149 +:10FE60002403FFFB34E7800000431024AE0200208F
66150 +:10FE700024020001158200053165FFFF0E001554B4
66151 +:10FE8000020020210A0016B99783003A0E0015855A
66152 +:10FE9000020020219783003A8F82003CA780003A1D
66153 +:10FEA00000431023AF82003C9383001C8F82001418
66154 +:10FEB0008FBF00188FB100148FB0001027BD002035
66155 +:10FEC00003E00008A04300BD938200442403000126
66156 +:10FED00027BDFFE8004330042C420020AFB00010E3
66157 +:10FEE000AFBF00142410FFFE10400005274501801D
66158 +:10FEF0003C0208008C4231900A0016D600461024BD
66159 +:10FF00003C0208008C423194004610241440000743
66160 +:10FF1000240600848F8300142410FFFF9062006287
66161 +:10FF20003042000F34420040A06200620E0015D63D
66162 +:10FF300000000000020010218FBF00148FB00010DD
66163 +:10FF400003E0000827BD00188F83002427BDFFE0D1
66164 +:10FF5000AFB20018AFB10014AFB00010AFBF001CBB
66165 +:10FF60009062000D00A0902130D100FF3042007F50
66166 +:10FF7000A062000D8F8500148E4300180080802140
66167 +:10FF80008CA2007C146200052402000E90A2006383
66168 +:10FF9000344200200A0016FFA0A200630E0016C51E
66169 +:10FFA000A38200442403FFFF104300472404FFFF03
66170 +:10FFB00052200045000020218E4300003C0200102A
66171 +:10FFC00000621024504000043C020008020020217E
66172 +:10FFD0000A00170E24020015006210245040000988
66173 +:10FFE0008E45000002002021240200140E0016C5D8
66174 +:10FFF000A38200442403FFFF104300332404FFFFC7
66175 +:020000021000EC
66176 +:100000008E4500003C02000200A2102410400016A1
66177 +:100010003C0200048F8600248CC200148CC30010A4
66178 +:100020008CC40014004310230044102B50400005E2
66179 +:10003000020020218E43002C8CC2001010620003AD
66180 +:10004000020020210A00173F240200123C02000493
66181 +:1000500000A210245040001C00002021020020219A
66182 +:100060000A00173F2402001300A2102410400006CB
66183 +:100070008F8300248C620010504000130000202168
66184 +:100080000A001739020020218C6200105040000441
66185 +:100090008E42002C020020210A00173F240200118A
66186 +:1000A00050400009000020210200202124020017F6
66187 +:1000B0000E0016C5A38200442403FFFF1043000274
66188 +:1000C0002404FFFF000020218FBF001C8FB2001806
66189 +:1000D0008FB100148FB000100080102103E00008E1
66190 +:1000E00027BD00208F83001427BDFFD8AFB40020A8
66191 +:1000F000AFB3001CAFB20018AFB10014AFB0001026
66192 +:10010000AFBF0024906200638F91002C2412FFFF88
66193 +:100110003442004092250000A06200638E2200104D
66194 +:100120000080982130B0003F105200060360A021EB
66195 +:100130002402000D0E0016C5A38200441052005484
66196 +:100140002404FFFF8F8300148E2200188C63007C30
66197 +:1001500010430007026020212402000E0E0016C585
66198 +:10016000A38200442403FFFF104300492404FFFF3F
66199 +:1001700024040020120400048F83001490620063A2
66200 +:1001800034420020A06200638F85003410A000205C
66201 +:1001900000000000560400048F8200140260202139
66202 +:1001A0000A0017902402000A9683000A9442006015
66203 +:1001B0003042FFFF144300048F8200202404FFFD1F
66204 +:1001C0000A0017B7AF82003C3C0208008C42318C19
66205 +:1001D0000045102B14400006026020210000282159
66206 +:1001E0000E001646240600010A0017B70000202161
66207 +:1001F0002402002D0E0016C5A38200442403FFFF35
66208 +:10020000104300232404FFFF0A0017B70000202139
66209 +:10021000160400058F8400148E2300142402FFFFAF
66210 +:100220005062001802602021948200602442000184
66211 +:10023000A4820060948200603C0308008C633188D3
66212 +:1002400030427FFF5443000F0260202194820060FF
66213 +:100250002403800000431024A48200609082006088
66214 +:1002600090830060304200FF000211C2000210279C
66215 +:10027000000211C03063007F00621825A083006077
66216 +:10028000026020210E0015F9240500010000202144
66217 +:100290008FBF00248FB400208FB3001C8FB20018D2
66218 +:1002A0008FB100148FB000100080102103E000080F
66219 +:1002B00027BD00288F83001427BDFFE8AFB00010D2
66220 +:1002C000AFBF0014906200638F87002C00808021F4
66221 +:1002D000344200408CE60010A06200633C0308003A
66222 +:1002E0008C6331B030C23FFF0043102B1040004EF2
66223 +:1002F0008F8500302402FF8090A3000D004310245E
66224 +:10030000304200FF504000490200202100061382C5
66225 +:10031000304800032402000255020044020020215C
66226 +:1003200094A2001C8F85001424030023A4A20114AE
66227 +:100330008CE60000000616023042003F1043001019
66228 +:100340003C0300838CE300188CA2007C1062000642
66229 +:100350002402000E0E0016C5A38200442403FFFFF2
66230 +:10036000104300382404FFFF8F8300149062006361
66231 +:1003700034420020A06200630A0017FC8F8300242F
66232 +:1003800000C31024144300078F83002490A200624E
66233 +:100390003042000F34420020A0A20062A38800383F
66234 +:1003A0008F8300249062000D3042007FA062000D18
66235 +:1003B0008F83003410600018020020218F840030E9
66236 +:1003C0008C8200100043102B1040000924020018FA
66237 +:1003D000020020210E0016C5A38200442403FFFF63
66238 +:1003E000104300182404FFFF0A00182400002021F5
66239 +:1003F0008C820010240500010200202100431023FC
66240 +:100400008F830024240600010E001646AC62001003
66241 +:100410000A001824000020210E0015F9240500010F
66242 +:100420000A00182400002021020020212402000DCF
66243 +:100430008FBF00148FB0001027BD00180A0016C52A
66244 +:10044000A38200448FBF00148FB0001000801021E1
66245 +:1004500003E0000827BD001827BDFFC8AFB2002089
66246 +:10046000AFBF0034AFB60030AFB5002CAFB400283A
66247 +:10047000AFB30024AFB1001CAFB000188F46012805
66248 +:100480003C0308008C6331A02402FF80AF86004843
66249 +:1004900000C318213065007F03452821006218241D
66250 +:1004A0003C02000AAF43002400A2282190A200626F
66251 +:1004B00000809021AF850014304200FF000211023D
66252 +:1004C000A382003890A200BC304200021440000217
66253 +:1004D00024030034240300308F820014A3830028F7
66254 +:1004E000938300388C4200C0A3800044AF82003C5C
66255 +:1004F000240200041062031C8F84003C8E4400041C
66256 +:10050000508003198F84003C8E4200103083FFFF1F
66257 +:10051000A784003A106002FFAF8200408F8400146D
66258 +:100520002403FF809082006300621024304200FFA9
66259 +:10053000144002CF9785003A9383003824020002CA
66260 +:1005400030B6FFFF14620005000088219382002866
66261 +:100550002403FFFD0A001B19AF82003C8F82003C80
66262 +:1005600002C2102B144002A18F8400400E0014EC34
66263 +:1005700000000000938300283C040800248477983E
66264 +:10058000240200341462002EAF84002C3C0A0800C0
66265 +:100590008D4A77C82402FFFFAFA2001000803821E7
66266 +:1005A0002405002F3C09080025297398240800FF22
66267 +:1005B0002406FFFF90E2000024A3FFFF00062202B2
66268 +:1005C00000C21026304200FF0002108000491021B6
66269 +:1005D0008C420000306500FF24E7000114A8FFF5FD
66270 +:1005E0000082302600061027AFA20014AFA2001030
66271 +:1005F0000000282127A7001027A6001400C51023FB
66272 +:100600009044000324A2000100A71821304500FFF8
66273 +:100610002CA200041440FFF9A06400008FA2001077
66274 +:100620001142000724020005024020210E0016C5D9
66275 +:10063000A38200442403FFFF104300642404FFFF4F
66276 +:100640003C0208009042779C104000098F82001401
66277 +:10065000024020212402000C0E0016C5A382004493
66278 +:100660002403FFFF104300592404FFFF8F8200146E
66279 +:10067000A380001C3C0308008C63779C8C440080A2
66280 +:100680003C0200FF3442FFFF006218240083202B4D
66281 +:1006900010800008AF83003402402021240200199A
66282 +:1006A0000E0016C5A38200442403FFFF1043004739
66283 +:1006B0002404FFFF8F87003C9782003A8F85003427
66284 +:1006C000AF8700200047202310A0003BA784003AFA
66285 +:1006D0008F86001430A200030002102390C300BCD8
66286 +:1006E0003050000300B0282100031882307300014D
66287 +:1006F0000013108000A228213C0308008C6331A065
66288 +:100700008F8200483084FFFF0085202B004310219A
66289 +:1007100010800011244200888F84002C1082000E6B
66290 +:100720003C033F013C0208008C42779800431024B0
66291 +:100730003C0325001443000630E500FF8C820000D6
66292 +:10074000ACC200888C8200100A0018E9ACC2009884
66293 +:100750000E001529000030219382001C8F850014A3
66294 +:100760008F830040020238218F82003CA387001C47
66295 +:1007700094A400E4006218218F82003434841000B5
66296 +:10078000AF83004000503021A4A400E41260000EAA
66297 +:10079000AF86003C24E20004A382001C94A200E483
66298 +:1007A00024C30004AF83003C34422000A4A200E430
66299 +:1007B0000A001906000020218F820040AF80003C13
66300 +:1007C00000471021AF820040000020212414FFFFC9
66301 +:1007D000109402112403FFFF3C0808008D0877A83D
66302 +:1007E0003C0208008C4231B03C03080090637798CB
66303 +:1007F00031043FFF0082102B1040001B3067003F88
66304 +:100800003C0208008C4231A88F83004800042180FC
66305 +:1008100000621821006418213062007F0342282101
66306 +:100820003C02000C00A228213C020080344200015E
66307 +:100830003066007800C230252402FF800062102458
66308 +:10084000AF42002830640007AF4208048F820014D2
66309 +:100850000344202124840940AF460814AF850024B6
66310 +:10086000AF840030AC4301189383003824020003A6
66311 +:10087000146201CF240200012402002610E201D1FB
66312 +:1008800028E2002710400013240200322402002234
66313 +:1008900010E201CC28E200231040000824020024CA
66314 +:1008A0002402002010E201B82402002110E20147D6
66315 +:1008B000024020210A001AFB2402000B10E201C1B1
66316 +:1008C0002402002510E20010024020210A001AFB39
66317 +:1008D0002402000B10E201AE28E2003310400006B3
66318 +:1008E0002402003F2402003110E2009A024020213D
66319 +:1008F0000A001AFB2402000B10E201A5024020218D
66320 +:100900000A001AFB2402000B8F90002C3C03080005
66321 +:100910008C6331B08F8500308E0400100000A82158
66322 +:100920008CB3001430823FFF0043102B8CB10020A9
66323 +:100930005040018F0240202190A3000D2402FF802F
66324 +:1009400000431024304200FF504001890240202122
66325 +:10095000000413823042000314400185024020212C
66326 +:1009600094A3001C8F8200148E040028A443011459
66327 +:100970008CA20010026218231064000302402021A0
66328 +:100980000A00197C2402001F8F82003400621021AB
66329 +:100990000262102B104000088F83002402402021A7
66330 +:1009A000240200180E0016C5A382004410540174DE
66331 +:1009B0002404FFFF8F8300248F8400348C62001096
66332 +:1009C0000224882100441023AC6200108F8200149E
66333 +:1009D000AC7100208C4200680051102B10400009BF
66334 +:1009E0008F830030024020212402001D0E0016C516
66335 +:1009F000A38200442403FFFF104301612404FFFF8E
66336 +:100A00008F8300308E0200248C6300241043000783
66337 +:100A1000024020212402001C0E0016C5A3820044BF
66338 +:100A20002403FFFF104301562404FFFF8F8400249A
66339 +:100A30008C82002424420001AC8200241233000482
66340 +:100A40008F8200148C4200685622000E8E02000035
66341 +:100A50008E0200003C030080004310241440000D6F
66342 +:100A60002402001A024020210E0016C5A382004471
66343 +:100A70002403FFFF104301422404FFFF0A0019BAB8
66344 +:100A80008E0200143C0300800043102450400003F9
66345 +:100A90008E020014AC8000208E0200142411FFFF8F
66346 +:100AA0001051000E3C0308003C0208008C423190BB
66347 +:100AB000004310242403001B14400007A3830044B8
66348 +:100AC0000E0016C5024020211051012D2404FFFF05
66349 +:100AD0000A0019CB8E030000A38000448E0300009F
66350 +:100AE0003C02000100621024104000123C02008011
66351 +:100AF0000062102414400008024020212402001A41
66352 +:100B00000E0016C5A38200442403FFFF1043011CFE
66353 +:100B10002404FFFF02402021020028210E0016E5D8
66354 +:100B2000240600012403FFFF104301152404FFFFE6
66355 +:100B3000241500018F83002402A0302102402021CF
66356 +:100B40009462003624050001244200010A001ADFE5
66357 +:100B5000A46200368F90002C3C0308008C6331B0F7
66358 +:100B60008E13001032623FFF0043102B10400089AB
66359 +:100B70008F8400302402FF809083000D00431024F6
66360 +:100B8000304200FF104000842402000D0013138245
66361 +:100B900030420003240300011443007F2402000DAF
66362 +:100BA0009082000D30420008544000048F820034CF
66363 +:100BB000024020210A001A102402002450400004A0
66364 +:100BC0008E03000C024020210A001A102402002784
66365 +:100BD0008C82002054620006024020218E0300080F
66366 +:100BE0008C820024506200098E02001402402021F1
66367 +:100BF000240200200E0016C5A38200441054007188
66368 +:100C00002403FFFF0A001A458F8400242411FFFFEC
66369 +:100C1000145100048F860014024020210A001A405B
66370 +:100C2000240200258E0300188CC2007C1062000391
66371 +:100C30002402000E0A001A40024020218E030024E4
66372 +:100C40008C82002810620003240200210A001A404E
66373 +:100C5000024020218E0500288C82002C10A2000367
66374 +:100C60002402001F0A001A40024020218E03002C9B
66375 +:100C700014600003240200230A001A4002402021CD
66376 +:100C80008CC200680043102B104000032402002691
66377 +:100C90000A001A40024020218C82001400651821AD
66378 +:100CA0000043102B104000088F84002402402021B4
66379 +:100CB000240200220E0016C5A382004410510041F8
66380 +:100CC0002403FFFF8F8400242403FFF79082000D8C
66381 +:100CD00000431024A082000D8F8600143C030800FE
66382 +:100CE0008C6331AC8F82004894C400E08F8500246F
66383 +:100CF0000043102130847FFF000420400044102175
66384 +:100D00003043007F034320213C03000E0083202159
66385 +:100D10002403FF8000431024AF42002CA493000062
66386 +:100D20008CA2002824420001ACA200288CA2002C36
66387 +:100D30008E03002C00431021ACA2002C8E02002C4C
66388 +:100D4000ACA200308E020014ACA2003494A2003A8F
66389 +:100D500024420001A4A2003A94C600E03C0208002C
66390 +:100D60008C4231B024C4000130837FFF1462000F35
66391 +:100D700000803021240280000082302430C2FFFF36
66392 +:100D8000000213C2304200FF000210270A001A7E40
66393 +:100D9000000233C02402000D024020210E0016C5BF
66394 +:100DA000A38200440A001A84004018218F82001494
66395 +:100DB00002402021240500010E0015F9A44600E0A0
66396 +:100DC000000018210A001B16006088218F90002C5B
66397 +:100DD0003C0308008C6331B08E05001030A23FFF49
66398 +:100DE0000043102B104000612402FF808F840030EC
66399 +:100DF0009083000D00431024304200FF5040005CFF
66400 +:100E0000024020218F8200341040000B0005138225
66401 +:100E10008F8200149763000A944200603042FFFF03
66402 +:100E200014430005000513828F8200202404FFFD77
66403 +:100E30000A001AF3AF82003C304200031440000E57
66404 +:100E40000000000092020002104000058E03002402
66405 +:100E500050600015920300030A001AAF02402021DF
66406 +:100E60008C82002450620010920300030240202173
66407 +:100E70000A001AB72402000F9082000D30420008C9
66408 +:100E80005440000992030003024020212402001074
66409 +:100E90000E0016C5A38200442403FFFF1043003850
66410 +:100EA0002404FFFF92030003240200025462000C9A
66411 +:100EB000920200038F820034544000099202000322
66412 +:100EC000024020212402002C0E0016C5A3820044FB
66413 +:100ED0002403FFFF1043002A2404FFFF92020003B3
66414 +:100EE0000200282102402021384600102CC60001B3
66415 +:100EF0002C4200010E0016E5004630252410FFFFAD
66416 +:100F00001050001F2404FFFF8F8300341060001373
66417 +:100F1000024020213C0208008C42318C0043102BFF
66418 +:100F200014400007000000000000282124060001F2
66419 +:100F30000E001646000000000A001AF300002021EF
66420 +:100F40002402002D0E0016C5A38200441050000C90
66421 +:100F50002404FFFF0A001AF3000020210E0015F9F7
66422 +:100F6000240500010A001AF300002021024020217C
66423 +:100F70002402000D0E0016C5A3820044004020216B
66424 +:100F80000A001B16008088211514000E00000000C6
66425 +:100F90000E00174C024020210A001B160040882139
66426 +:100FA0000E0016C5A38200440A001B1600408821CB
66427 +:100FB00014620017022018212402002314E2000505
66428 +:100FC0002402000B0E0017C0024020210A001B164D
66429 +:100FD0000040882102402021A38200440E0016C553
66430 +:100FE0002411FFFF0A001B170220182130A500FF63
66431 +:100FF0000E001529240600019783003A8F82003CD9
66432 +:10100000A780003A00431023AF82003C0220182141
66433 +:101010001220003E9782003A2402FFFD5462003EF7
66434 +:101020008E4300208E4200048F830014005610234C
66435 +:10103000AE420004906200633042007FA062006311
66436 +:101040008E4200208F840014A780003A34420002B0
66437 +:10105000AE420020A48000E4908200632403FFBF1E
66438 +:1010600000431024A08200630A001B598E43002015
66439 +:101070009082006300621024304200FF1040002381
66440 +:101080009782003A90820088908300BD2485008872
66441 +:101090003042003F2444FFE02C820020A383001C48
66442 +:1010A00010400019AF85002C2402000100821804B2
66443 +:1010B000306200191440000C3C02800034420002EF
66444 +:1010C000006210241440000B306200201040000F1A
66445 +:1010D0009782003A90A600010240202124050001D9
66446 +:1010E0000A001B5330C60001024020210A001B5297
66447 +:1010F00024050001024020210000282124060001CF
66448 +:101100000E001646000000009782003A1440FD04CD
66449 +:101110008F8400148E4300203062000410400012BF
66450 +:101120008F84003C2402FFFB00621024AE420020AA
66451 +:10113000274301808F4201B80440FFFE8F820048A0
66452 +:10114000AC6200008F420124AC6200042402608380
66453 +:10115000A462000824020002A062000B3C021000FE
66454 +:10116000AF4201B88F84003C8F8300148FBF0034DE
66455 +:101170008FB600308FB5002C8FB400288FB30024B9
66456 +:101180008FB200208FB1001C8FB000182402000124
66457 +:1011900027BD003803E00008AC6400C030A500FFA4
66458 +:1011A0002403000124A900010069102B1040000C49
66459 +:1011B00000004021240A000100A31023004A380443
66460 +:1011C00024630001308200010069302B10400002CE
66461 +:1011D000000420420107402554C0FFF800A310235B
66462 +:1011E00003E00008010010213C020800244260A432
66463 +:1011F0003C010800AC22738C3C02080024425308D6
66464 +:101200003C010800AC2273902402000627BDFFE0D9
66465 +:101210003C010800A02273943C021EDCAFB200180F
66466 +:10122000AFB10014AFBF001CAFB0001034526F411B
66467 +:1012300000008821240500080E001B7A02202021CE
66468 +:10124000001180803C07080024E773980002160014
66469 +:1012500002071821AC6200000000282124A200012E
66470 +:101260003045FFFF8C6200002CA6000804410002FC
66471 +:10127000000220400092202614C0FFF8AC64000059
66472 +:10128000020780218E0400000E001B7A2405002036
66473 +:10129000262300013071FFFF2E2301001460FFE5BB
66474 +:1012A000AE0200008FBF001C8FB200188FB1001477
66475 +:1012B0008FB0001003E0000827BD002027BDFFD835
66476 +:1012C000AFB3001CAFB20018AFBF0020AFB1001425
66477 +:1012D000AFB000108F5101408F48014800089402C0
66478 +:1012E000324300FF311300FF8F4201B80440FFFE7C
66479 +:1012F00027500180AE1100008F420144AE0200046D
66480 +:1013000024020002A6120008A202000B240200140C
66481 +:10131000AE1300241062002528620015104000085A
66482 +:101320002402001524020010106200302402001272
66483 +:10133000106200098FBF00200A001CB58FB3001C8B
66484 +:101340001062007024020022106200378FBF00205C
66485 +:101350000A001CB58FB3001C3C0208008C4231A06F
66486 +:101360002403FF800222102100431024AF420024F6
66487 +:101370003C0208008C4231A0022210213042007F42
66488 +:10138000034218213C02000A00621821166000BCCA
66489 +:10139000AF830014906200623042000F344200308C
66490 +:1013A000A06200620A001CB48FBF00203C046000F1
66491 +:1013B0008C832C083C02F0033442FFFF00621824A7
66492 +:1013C000AC832C083C0208008C4231A08C832C0892
66493 +:1013D000244200740002108200021480006218256A
66494 +:1013E000AC832C080A001CB48FBF00203C0208000C
66495 +:1013F0008C4231A02403FF800222102100431024DC
66496 +:10140000AF4200243C0208008C4231A03C03000A99
66497 +:10141000022210213042007F03421021004310219C
66498 +:101420000A001CB3AF8200143C0208008C4231A0B9
66499 +:101430002405FF800222102100451024AF42002421
66500 +:101440003C0208008C4231A0022210213042007F71
66501 +:10145000034218213C02000A0062182190620063D6
66502 +:1014600000A21024304200FF10400085AF8300141A
66503 +:1014700024620088944300123C0208008C4231A888
66504 +:1014800030633FFF00031980022210210043102126
66505 +:101490003043007F03432021004510243C03000C0F
66506 +:1014A00000832021AF4200289082000D00A210246A
66507 +:1014B000304200FF10400072AF8400249082000D83
66508 +:1014C000304200101440006F8FBF00200E0015C87E
66509 +:1014D000000000008F4201B80440FFFE0000000041
66510 +:1014E000AE1100008F420144AE020004240200024B
66511 +:1014F000A6120008A202000BAE1300240A001CB4BE
66512 +:101500008FBF00202406FF8002261024AF42002057
66513 +:101510003C0208008C4231A031043FFF00042180CE
66514 +:101520000222102100461024AF4200243C03080090
66515 +:101530008C6331A83C0208008C4231A03227007F26
66516 +:101540000223182102221021006418213042007F5A
66517 +:101550003064007F034228213C02000A0066182400
66518 +:1015600000A22821034420213C02000C00822021FB
66519 +:10157000AF4300283C020008034718210062902175
66520 +:10158000AF850014AF8400240E0015C8010080212F
66521 +:101590008F4201B80440FFFE8F8200248F84001424
66522 +:1015A000274501809042000DACB10000A4B00006B8
66523 +:1015B000000216000002160300021027000237C2C4
66524 +:1015C00014C00016248200889442001232033FFFA8
66525 +:1015D00030423FFF14430012240260829083006374
66526 +:1015E0002402FF8000431024304200FF5040000CD2
66527 +:1015F00024026082908200623042000F3442004038
66528 +:10160000A082006224026084A4A200082402000DCB
66529 +:10161000A0A200050A001C9E3C0227002402608252
66530 +:10162000A4A20008A0A000053C02270000061C00A0
66531 +:101630000062182524020002A0A2000BACA3001037
66532 +:10164000ACA00014ACA00024ACA00028ACA0002CDE
66533 +:101650008E42004C8F840024ACA200189083000DB1
66534 +:101660002402FF8000431024304200FF1040000598
66535 +:101670008FBF00209082000D3042007FA082000DBD
66536 +:101680008FBF00208FB3001C8FB200188FB10014E1
66537 +:101690008FB000103C02100027BD002803E00008B6
66538 +:1016A000AF4201B80800343008003430080033A8D5
66539 +:1016B000080033E0080034140800343808003438D7
66540 +:1016C00008003438080033180A0001240000000024
66541 +:1016D000000000000000000D747061362E322E33C1
66542 +:1016E00000000000060203010000000000000000EE
66543 +:1016F00000000000000000000000000000000000EA
66544 +:1017000000000000000000000000000000000000D9
66545 +:1017100000000000000000000000000000000000C9
66546 +:1017200000000000000000000000000000000000B9
66547 +:1017300000000000000000000000000000000000A9
66548 +:101740000000000000000000000000000000000099
66549 +:101750000000000000000000000000001000000376
66550 +:10176000000000000000000D0000000D3C02080019
66551 +:1017700024421C003C03080024632094AC40000079
66552 +:101780000043202B1480FFFD244200043C1D080070
66553 +:1017900037BD2FFC03A0F0213C1008002610049058
66554 +:1017A0003C1C0800279C1C000E00015C000000008F
66555 +:1017B0000000000D3084FFFF308200078F85001885
66556 +:1017C00010400002248300073064FFF800853021B8
66557 +:1017D00030C41FFF03441821247B4000AF85001C48
66558 +:1017E000AF84001803E00008AF4400843084FFFF9A
66559 +:1017F000308200078F8500208F860028104000026D
66560 +:10180000248300073064FFF8008520210086182B10
66561 +:1018100014600002AF8500240086202303442821A1
66562 +:1018200034068000AF840020AF44008000A6202151
66563 +:1018300003E00008AF84003827BDFFD8AFB3001C19
66564 +:10184000AFB20018AFB00010AFBF0024AFB400209B
66565 +:10185000AFB100143C0860088D1450002418FF7FBD
66566 +:101860003C1A8000029898243672380CAD12500051
66567 +:101870008F5100083C07601C3C08600036300001B6
66568 +:10188000AF500008AF800018AF400080AF40008428
66569 +:101890008CE600088D0F08083C0760168CEC0000F1
66570 +:1018A00031EEFFF039CA00103C0DFFFF340B800011
66571 +:1018B0003C030080034B48212D440001018D282466
66572 +:1018C0003C0253533C010800AC230420AF8900388C
66573 +:1018D000AF860028AF840010275B400014A20003ED
66574 +:1018E00034E37C008CF90004032818218C7F007CF1
66575 +:1018F0008C6500783C0280003C0B08008D6B048CEA
66576 +:101900003C0A08008D4A048834520070AF85003CC0
66577 +:10191000AF9F00403C13080026731C440240A021E6
66578 +:101920008E4800008F46000038C30001306400017B
66579 +:1019300010800017AF880034028048218D2F0000EE
66580 +:101940003C0508008CA5045C3C1808008F1804585E
66581 +:1019500001E8102300A280210000C8210202402BD0
66582 +:1019600003198821022838213C010800AC30045CAE
66583 +:101970003C010800AC2704588F4E000039CD00010F
66584 +:1019800031AC00011580FFED01E04021AF8F003444
66585 +:101990008E5100003C0708008CE7045C3C0D0800F9
66586 +:1019A0008DAD04580228802300F0602100007021D2
66587 +:1019B0000190302B01AE1821006620213C01080067
66588 +:1019C000AC2C045C3C010800AC2404588F46010890
66589 +:1019D0008F47010030C92000AF860000AF87000CA0
66590 +:1019E0001120000A00C040213C1808008F18042C68
66591 +:1019F000270800013C010800AC28042C3C184000DA
66592 +:101A0000AF5801380A000196000000009749010410
66593 +:101A100000002821014550213122FFFF0162582199
66594 +:101A20000162F82B015F502130D902003C0108000F
66595 +:101A3000AC2B048C3C010800AC2A0488172000154C
66596 +:101A400024040F0010E400130000000024080D001F
66597 +:101A500010E8023B30CD000611A0FFE93C18400021
66598 +:101A6000936E00002409001031C400F01089027147
66599 +:101A700024020070108202E58F880014250F0001F7
66600 +:101A8000AF8F00143C184000AF5801380A0001968F
66601 +:101A900000000000974C01041180FFD93C18400061
66602 +:101AA00030C34000146000A1000000008F460178A0
66603 +:101AB00004C0FFFE8F87003824100800240F0008A0
66604 +:101AC0008CE30008AF500178A74F0140A7400142C6
66605 +:101AD000974E01048F86000031C9FFFF30CD000111
66606 +:101AE00011A002E1012040212531FFFE241800024F
66607 +:101AF000A75801463228FFFFA75101483C190800AA
66608 +:101B00008F39043C172002D08F8C000C30DF00206E
66609 +:101B100017E00002240400092404000130C20C0074
66610 +:101B2000240504005045000134840004A744014A00
66611 +:101B30003C1108008E3104203C1800483C10000184
66612 +:101B40000238182530CF00020070282511E000046B
66613 +:101B5000000018213C19010000B9282524030001C8
66614 +:101B600030DF000453E00005AF8300083C0600109E
66615 +:101B700000A6282524030001AF830008AF4510000C
66616 +:101B80000000000000000000000000000000000055
66617 +:101B90008F83000810600023000000008F451000B4
66618 +:101BA00004A1FFFE000000001060001E0000000005
66619 +:101BB0008F4410003C0C0020008C102410400019B1
66620 +:101BC0008F8E000031CD000211A000160000000031
66621 +:101BD000974F101415E000130000000097591008EB
66622 +:101BE0003338FFFF271100060011188200033080F0
66623 +:101BF00000C7282132300001322300031200032CD9
66624 +:101C00008CA200000000000D00C7F821AFE2000028
66625 +:101C10003C0508008CA5043024A600013C01080006
66626 +:101C2000AC2604308F6D00003402FFFFAF8D00043E
66627 +:101C30008CEC0000118202A6000020218CED000037
66628 +:101C400031AC01001180028A000000003C02080053
66629 +:101C50008C4204743C0308008C63044C3C1F080055
66630 +:101C60008FFF04703C1808008F1804480048382182
66631 +:101C70000068802100E8282B03E430210208402B73
66632 +:101C80000304882100C57021022878213C01080046
66633 +:101C9000AC30044C3C010800AC2F04483C01080067
66634 +:101CA000AC2704743C010800AC2E04708F8400182B
66635 +:101CB0000120302131290007249F000833F91FFF3C
66636 +:101CC00003594021AF84001CAF990018251B400028
66637 +:101CD000AF590084112000038F83002024C2000725
66638 +:101CE0003046FFF88F84002800C3282100A4302B41
66639 +:101CF00014C00002AF83002400A428230345602100
66640 +:101D0000340D8000018D10213C0F1000AF850020A4
66641 +:101D1000AF820038AF450080AF4F01788F88001444
66642 +:101D2000250F00010A0001EFAF8F00148F62000839
66643 +:101D30008F670000240500300007760231C300F0F1
66644 +:101D4000106500A7240F0040546FFF4C8F880014CB
66645 +:101D50008F4B01780560FFFE0000000030CA0200D2
66646 +:101D600015400003000612820000000D00061282DA
66647 +:101D7000304D0003000D4900012D18210003808023
66648 +:101D8000020D402100086080019380218E1F000019
66649 +:101D900017E00002000000000000000D8F6E00043C
66650 +:101DA00005C202BD92070006920E000592020004D1
66651 +:101DB0003C090001000E18800070F8218FED00181A
66652 +:101DC000277100082448000501A96021000830821D
66653 +:101DD000AFEC0018022020210E00059E26050014FD
66654 +:101DE000920A00068F7900043C0B7FFF000A2080D6
66655 +:101DF000009178218DF800043566FFFF0326282422
66656 +:101E000003053821ADE70004920E0005920D000491
66657 +:101E1000960C0008000E10800051C8218F2300008E
66658 +:101E2000974901043C07FFFF006758243128FFFF52
66659 +:101E3000010DF82103EC50233144FFFF01643025EC
66660 +:101E4000AF260000920300072418000110780275E5
66661 +:101E5000240F0003106F0285000000008E050010A3
66662 +:101E60002419000AA7590140A7450142921800040D
66663 +:101E70008F860000240F0001A7580144A7400146A7
66664 +:101E80009747010430D100023C050041A7470148B3
66665 +:101E900000001821A74F014A1220000330CB000494
66666 +:101EA0003C0501412403000151600005AF83000897
66667 +:101EB0003C06001000A6282524030001AF8300087B
66668 +:101EC000AF4510000000000000000000000000000E
66669 +:101ED000000000008F8A000811400004000000008C
66670 +:101EE0008F4410000481FFFE000000008F6B000093
66671 +:101EF000920800043C1108008E310444AF8B0004AA
66672 +:101F000097590104311800FF3C0E08008DCE0440A3
66673 +:101F10003325FFFF0305382102276021000010212F
66674 +:101F2000250F000A31E8FFFF0187482B01C2682115
66675 +:101F300001A9F821311000073C010800AC2C044431
66676 +:101F40003C010800AC3F0440120000038F8C0018D5
66677 +:101F50002506000730C8FFF8010C682131BF1FFFBC
66678 +:101F6000AF8C001CAF9F0018AF5F00849744010442
66679 +:101F7000035F80213084FFFF308A00071140000397
66680 +:101F8000261B4000248900073124FFF88F8200209F
66681 +:101F90008F850028008220210085702B15C000024B
66682 +:101FA000AF820024008520233C0B08008D6B048C3D
66683 +:101FB0003C0A08008D4A04880344882134038000C9
66684 +:101FC000022310213C0F1000AF840020AF820038A4
66685 +:101FD000AF440080AF4F01780A0002968F8800144A
66686 +:101FE0008F5001780600FFFE30D10200162000035A
66687 +:101FF000000612820000000D00061282305F00030E
66688 +:10200000001F1900007F302100062080009FC8219A
66689 +:1020100000194880013380218E180000130000024F
66690 +:10202000000000000000000D8F6C000C058001FB1B
66691 +:102030008F870038240E0001AE0E00008CE30008EC
66692 +:10204000A20000078F65000400055402314D00FF17
66693 +:1020500025A80005000830822CCB00411560000245
66694 +:10206000A20A00040000000D8F7800043C03FFFF6B
66695 +:1020700000E02821330BFFFF256C000B000C1082C1
66696 +:1020800000022080008748218D3F000026040014B4
66697 +:10209000A618000803E3C8240E00059EAD39000011
66698 +:1020A0008F4F01083C11100001F1382410E001AB02
66699 +:1020B00000000000974D01049208000725AAFFECDC
66700 +:1020C000350600023144FFFFA2060007960600080D
66701 +:1020D0002CC7001354E0000592030007921100077B
66702 +:1020E000362F0001A20F00079203000724180001F9
66703 +:1020F000107801C224090003106901D58F880038C7
66704 +:1021000030CBFFFF257100020011788331E400FF1E
66705 +:1021100000042880A20F000500A848218D2D000092
66706 +:10212000974A01043C0EFFFF01AEF8243143FFFF44
66707 +:10213000006B1023244CFFFE03ECC825AD390000D2
66708 +:10214000920600053C03FFF63462FFFF30D800FF23
66709 +:102150000018388000F08821922F00143C04FF7F83
66710 +:102160003487FFFF31EE000F01C65821316500FFB3
66711 +:1021700000055080015068218DAC00200148F821F5
66712 +:10218000A20B00060182C824AE0C000CAFF9000CB3
66713 +:10219000920900068E11000C032778240009C080E4
66714 +:1021A0000310702195C60026030828210227202449
66715 +:1021B000AE04000CADCF0020ADC60024ACA60010CC
66716 +:1021C0008F8800003C0B08008D6B048C3C0A0800D3
66717 +:1021D0008D4A0488241F001024190002A75F0140C3
66718 +:1021E000A7400142A7400144A7590146974901046D
66719 +:1021F00024070001310600022538FFFEA7580148D8
66720 +:102200003C050009A747014A10C00003000018213F
66721 +:102210003C05010924030001310C00045180000534
66722 +:10222000AF8300083C08001000A828252403000103
66723 +:10223000AF830008AF451000000000000000000060
66724 +:1022400000000000000000009205000424AE00021F
66725 +:1022500031CD0007000D182330620007AE020010D8
66726 +:102260008F90000812000004000000008F4F100043
66727 +:1022700005E1FFFE000000008F7100008F8E001846
66728 +:102280003C0308008C630444AF91000497450104AB
66729 +:1022900025CF001031E61FFF30A2FFFFAF8E001CDC
66730 +:1022A000AF860018AF4600842449FFFE3C0C0800AE
66731 +:1022B0008D8C0440974D010401208021000947C303
66732 +:1022C0000070C02131A9FFFF0310F82B0188C8213D
66733 +:1022D000033F202103463821313100073C0108002B
66734 +:1022E000AC3804443C010800AC2404401220000334
66735 +:1022F00024FB40002527000730E9FFF88F860020E7
66736 +:102300008F8400280126382100E4C02B170000022A
66737 +:10231000AF86002400E438230347202134198000CD
66738 +:10232000009910213C0F1000AF870020AF820038C9
66739 +:10233000AF470080AF4F01780A0002968F880014E3
66740 +:102340009747010410E0FDAE3C1840008F5801781B
66741 +:102350000700FFFE30C5400010A000033C1F00082E
66742 +:102360000000000D3C1F0008AF5F01402410080072
66743 +:102370008F860000AF5001789744010430D90001E6
66744 +:10238000132000ED3086FFFF24CCFFFE240D000259
66745 +:10239000A74D0146A74C01488F9100182408000D55
66746 +:1023A000A748014A8F630000262F000831E21FFF73
66747 +:1023B0000342702130C90007AF830004AF91001CB5
66748 +:1023C000AF82001800C03821AF4200841120000302
66749 +:1023D00025DB400024D800073307FFF88F85002055
66750 +:1023E0008F84002800E5302100C4382B14E000025F
66751 +:1023F000AF85002400C430238F8400140346F821E5
66752 +:10240000340C8000AF86002003EC8021AF460080B2
66753 +:10241000249900013C0610003C184000AF460178AA
66754 +:10242000AF900038AF990014AF5801380A000196F8
66755 +:10243000000000008F630000975101043067FFFF28
66756 +:102440003228FFFF8F4F017805E0FFFE30EC0007D8
66757 +:10245000000CF82333F0000724F9FFFE2404000ADF
66758 +:10246000A7440140A7500142A7590144A740014693
66759 +:10247000A74801488F45010830B800201700000226
66760 +:10248000240300092403000130CD0002A743014AC0
66761 +:102490003C04004111A00003000018213C0401414C
66762 +:1024A0002403000130C9000451200005AF83000857
66763 +:1024B0003C0600100086202524030001AF8300089D
66764 +:1024C000AF44100000000000000000000000000009
66765 +:1024D000000000008F8E000811C000040000000002
66766 +:1024E0008F4210000441FFFE000000008F7F0000BB
66767 +:1024F000276400088F91003CAF9F0004948500087A
66768 +:102500009490000A9499000C30AFFFFF0010C400B3
66769 +:102510003323FFFF11F100A6030320253C0E080022
66770 +:102520008DCE04443C0C08008D8C044000E88821CA
66771 +:102530002626FFFE01C628210000682100A6F82BF0
66772 +:10254000018D2021009F80213C010800AC2504441E
66773 +:102550003C010800AC30044024E200083042FFFF98
66774 +:102560003047000710E000038F830018244F000756
66775 +:1025700031E2FFF83106FFFF30C800070043802139
66776 +:1025800032191FFF0359C021AF83001CAF990018F7
66777 +:10259000271B4000AF590084110000038F8C0020DE
66778 +:1025A00024C5000730A6FFF88F84002800CC28211E
66779 +:1025B00000A4F82B17E00002AF8C002400A428230D
66780 +:1025C000AF850020AF4500803C0408008C840434B3
66781 +:1025D00003454821340E8000012E6821108000053B
66782 +:1025E000AF8D0038939100172406000E12260011BB
66783 +:1025F0002407043F3C021000AF4201788F8800148A
66784 +:10260000250F00010A0001EFAF8F00140E0005C472
66785 +:1026100000E020218F8800143C0B08008D6B048C97
66786 +:102620003C0A08008D4A0488250F00010A0001EFCA
66787 +:10263000AF8F00143C021000A7470148AF42017859
66788 +:102640000A0004CE8F88001424040F001184003D7A
66789 +:1026500030CE002015C0000224030009240300012D
66790 +:102660000A00021AA743014A0A00020DA7400146C8
66791 +:1026700094EF000894F1000A94F0000C8F8C003C59
66792 +:10268000001174003207FFFF31EDFFFF11AC00377E
66793 +:1026900001C720253C1808008F1804443C0F08008F
66794 +:1026A0008DEF0440000080210308682101A8382B29
66795 +:1026B00001F0702101C760213C010800AC2D0444E9
66796 +:1026C0003C010800AC2C04400A00027A8F840018F8
66797 +:1026D0003C0208008C42047C3C0308008C630454D8
66798 +:1026E0003C1F08008FFF04783C1808008F18045026
66799 +:1026F000004838210068802100E8282B03E43021BD
66800 +:102700000208402B0304882100C57021022878218B
66801 +:102710003C010800AC3004543C010800AC2F0450CC
66802 +:102720003C010800AC27047C3C010800AC2E047876
66803 +:102730000A00027A8F840018A74001460A00043577
66804 +:102740008F91001830CD002015A0FFC52403000D87
66805 +:10275000240300050A00021AA743014A974E010408
66806 +:1027600025C5FFF00A00038130A4FFFF8F980040C9
66807 +:102770001498FFC8000010213C0508008CA5046CCB
66808 +:102780003C1F08008FFF046800A8C8210328302BD5
66809 +:1027900003E22021008640213C010800AC39046C92
66810 +:1027A0003C010800AC2804680A00027A8F840018F3
66811 +:1027B0008F8C0040148CFF5900E8C8213C18080099
66812 +:1027C0008F18046C3C1108008E3104682723FFFE2B
66813 +:1027D00003034821000010210123302B0222702125
66814 +:1027E00001C668213C010800AC29046C3C010800CA
66815 +:1027F000AC2D04680A0004A524E200088F88003884
66816 +:102800003C03FFFF8D02000C0043F82403E4C825BD
66817 +:10281000AD19000C0A00038F30CBFFFF0A0003C381
66818 +:10282000AE000000974A0104920400048E26000CBA
66819 +:10283000014458212579FFF200C7C0243325FFFF4A
66820 +:1028400003053825AE27000C0A0002E68E050010AD
66821 +:102850003C0DFFFF8D0A0010014D582401646025D6
66822 +:10286000AD0C00100A00038F30CBFFFF974301042B
66823 +:10287000920E00048E290010006E1021244DFFEEF0
66824 +:102880000127602431A8FFFF0188F825AE3F001022
66825 +:102890000A0002E68E0500108E0F000CAE0000004C
66826 +:1028A00000078880023028210A0002B8ACAF00205F
66827 +:1028B0001460000D3058FFFF3C04FFFF0044682403
66828 +:1028C00001A47026000E602B000D102B004CF82484
66829 +:1028D00013E00002000000000000000D8CAF0000BB
66830 +:1028E0000A00025001E410253B03FFFF0003882B80
66831 +:1028F0000018802B0211202410800002000000002C
66832 +:102900000000000D8CB900000A0002503722FFFFC2
66833 +:102910003084FFFF30A5FFFF108000070000182162
66834 +:10292000308200011040000200042042006518219E
66835 +:102930001480FFFB0005284003E000080060102120
66836 +:1029400010C00007000000008CA2000024C6FFFF9A
66837 +:1029500024A50004AC82000014C0FFFB2484000402
66838 +:1029600003E000080000000010A0000824A3FFFFFF
66839 +:10297000AC86000000000000000000002402FFFF01
66840 +:102980002463FFFF1462FFFA2484000403E00008BC
66841 +:1029900000000000308EFFFF30D8FFFF00057C00F4
66842 +:1029A00001F8602539CDFFFF01AC5021014C582BB7
66843 +:1029B000014B4821000944023127FFFF00E8302184
66844 +:1029C0000006240230C5FFFF00A418213862FFFF73
66845 +:1029D00003E000083042FFFF3C0C08008D8C0484AB
66846 +:1029E000240BFF8027BDFFD001845021014B4824D8
66847 +:1029F000AF4900203C0808008D080484AFB20020D5
66848 +:102A0000AFB00018AFBF0028AFB30024AFB1001CB7
66849 +:102A1000936600040104382130E4007F009A1021FD
66850 +:102A20003C0300080043902130C500200360802152
66851 +:102A30003C080111277B000814A000022646007004
66852 +:102A40002646006C9213000497510104920F000473
66853 +:102A50003267000F322EFFFF31ED004001C72823FF
66854 +:102A600011A0000500004821925900BC3338000431
66855 +:102A70001700009000000000924300BC307F00046B
66856 +:102A800013E0000F0000000010A0000D0000000087
66857 +:102A9000960E0002240AFF8000A7602125CDFFFECC
66858 +:102AA000A74D1016920B0004014B2024308200FF2A
66859 +:102AB00010400085010C40253C0F0400010F40250B
66860 +:102AC0008F5301780660FFFE2404000AA7440140EA
66861 +:102AD000960D00022404000931AC0007000C5823B5
66862 +:102AE000316A0007A74A0142960200022443FFFE12
66863 +:102AF000A7430144A7400146975F0104A75F01482F
66864 +:102B00008F590108333800205300000124040001CC
66865 +:102B1000920F000431EE001015C000023483001043
66866 +:102B200000801821A743014A0000000000000000B7
66867 +:102B30000000000000000000AF481000000000008E
66868 +:102B40000000000000000000000000008F51100095
66869 +:102B50000621FFFE3113FFFF12600003000000009A
66870 +:102B60008F481018ACC8000096030006307FFFFFA6
66871 +:102B700027F900020019988200138880023B302157
66872 +:102B80008CD800001520005700183402920300046E
66873 +:102B90002405FF8000A3F82433F100FF1220002C4D
66874 +:102BA00000000000924700BC30F2000212400028F2
66875 +:102BB00000000000974B100C2562FFFEA742101684
66876 +:102BC000000000003C0A040035490030AF49100005
66877 +:102BD00000000000000000000000000000000000F5
66878 +:102BE0008F4C10000581FFFE000000009749100C7B
66879 +:102BF0008F51101C00C020213127FFFF24F200302C
66880 +:102C0000001218820003288000BBF8213226FFFF43
66881 +:102C1000AFF100000E0005B300112C020013C880B4
66882 +:102C2000033B98218E78000000027400AFB80010BA
66883 +:102C30008FA80010310FFFFFAFAF00108FA400105E
66884 +:102C400001C46825AFAD00108FA60010AE6600006D
66885 +:102C500097730008976D000A9766000C8F8A003CF6
66886 +:102C6000000D5C0030CCFFFF3262FFFF104A0036DF
66887 +:102C7000016C2025960600023C10100024D30008A9
66888 +:102C80000E00013B3264FFFF974C01040E00014926
66889 +:102C90003184FFFFAF5001788FBF00288FB300242D
66890 +:102CA0008FB200208FB1001C8FB0001803E0000825
66891 +:102CB00027BD003010A0FF700000000024A5FFFC1D
66892 +:102CC0000A0005EC240900048CD10000AF51101853
66893 +:102CD0008F5301780660FF7A2404000A0A00060177
66894 +:102CE0000000000000A7C8218F8800388F4E101CFC
66895 +:102CF0000019C0820018788001E82021AC8E000005
66896 +:102D0000000E2C0200C020210E0005B331C6FFFFCB
66897 +:102D1000023B28218CAD000000025400004030210D
66898 +:102D2000AFAD00108FAC0010318BFFFFAFAB0010C8
66899 +:102D30008FA2001001424825AFA900108FA70010F4
66900 +:102D40000A000631ACA700008F8F0040148FFFC926
66901 +:102D50000000000097420104960B00023C050800A9
66902 +:102D60008CA5046C3049FFFF316AFFFF3C1108005D
66903 +:102D70008E310468012A382124F2FFFE00B240217E
66904 +:102D80000012FFC30112C82B023FC02103192021EA
66905 +:102D90003C010800AC28046C3C010800AC24046829
66906 +:102DA0000A00066B0000000000A4102B1040000970
66907 +:102DB000240300010005284000A4102B04A00003F8
66908 +:102DC000000318405440FFFC000528401060000735
66909 +:102DD000000000000085302B14C0000200031842E0
66910 +:102DE000008520231460FFFB0005284203E0000853
66911 +:102DF000008010218F85002C27BDFFE800053027BB
66912 +:102E00002CC300012CA400020083102510400003F5
66913 +:102E1000AFBF00102405007FAF85002C00052827D8
66914 +:102E200030A5FFFF0E000592240426F58F830030A5
66915 +:102E3000240402BD004030210083382B10E000093B
66916 +:102E400024050001000420400083102B04800003AF
66917 +:102E5000000528405440FFFC0004204010A000085A
66918 +:102E600000C350210064402B1500000200052842D9
66919 +:102E70000064182314A0FFFB0004204200C350216B
66920 +:102E80008FBF0010000A4C02312200FF27BD00183E
66921 +:102E9000AF8A002C03E00008AF8900300A00002A46
66922 +:102EA00000000000000000000000000D7478703683
66923 +:102EB0002E322E3300000000060203000000000046
66924 +:102EC000000001360000EA60000000000000000081
66925 +:102ED00000000000000000000000000000000000F2
66926 +:102EE00000000000000000000000000000000000E2
66927 +:102EF00000000000000000000000000000000016BC
66928 +:102F000000000000000000000000000000000000C1
66929 +:102F100000000000000000000000000000000000B1
66930 +:102F200000000000000000000000000000000000A1
66931 +:102F3000000000000000138800000000000005DC15
66932 +:102F4000000000000000000010000003000000006E
66933 +:102F50000000000D0000000D3C02080024423C204F
66934 +:102F60003C03080024633DD4AC4000000043202B08
66935 +:102F70001480FFFD244200043C1D080037BD7FFC87
66936 +:102F800003A0F0213C100800261000A83C1C0800FB
66937 +:102F9000279C3C200E0002BA000000000000000D3B
66938 +:102FA0008F8300383C088000350700708CE50000F6
66939 +:102FB000008330253C02900000C22025AF85003000
66940 +:102FC000AF4400208F4900200520FFFE3C03800015
66941 +:102FD000346200708C4500008F8600303C19080078
66942 +:102FE0008F39007C3C0E08008DCE007800A620238F
66943 +:102FF00003245821000078210164682B01CF60214F
66944 +:10300000018D50213C010800AC2B007C3C010800E4
66945 +:10301000AC2A007803E00008000000000A0000412C
66946 +:10302000240400018F8400383C05800034A2000194
66947 +:103030000082182503E00008AF43002003E00008E9
66948 +:10304000000010213084FFFF30A5FFFF1080000733
66949 +:1030500000001821308200011040000200042042CC
66950 +:10306000006518211480FFFB0005284003E00008DC
66951 +:103070000060102110C00007000000008CA20000BA
66952 +:1030800024C6FFFF24A50004AC82000014C0FFFB8F
66953 +:103090002484000403E000080000000010A00008E1
66954 +:1030A00024A3FFFFAC860000000000000000000029
66955 +:1030B0002402FFFF2463FFFF1462FFFA248400044C
66956 +:1030C00003E0000800000000308AFFFF93A800130F
66957 +:1030D000A74A014497490E1630C600FF3C02100073
66958 +:1030E000A7490146AF450148A3460152A748015AE6
66959 +:1030F000AF4701608FA400188FA30014A7440158A4
66960 +:10310000AF43015403E00008AF42017803E0000838
66961 +:10311000000000003C038000346200708C49000015
66962 +:103120008F8800002484000727BDFFF83084FFF853
66963 +:10313000AF890030974D008A31ACFFFFAFAC000083
66964 +:103140008FAB0000016850232547FFFF30E61FFFCB
66965 +:1031500000C4282B14A0FFF73C0C8000358B0070B6
66966 +:103160008D6A00003C0708008CE700843C060800DC
66967 +:103170008CC6008000081082014918230002788064
66968 +:1031800000E370210000202101C3C82B00C4C0212E
66969 +:1031900001FA4021031948212502400027BD0008FB
66970 +:1031A0003C010800AC2E00843C010800AC290080E2
66971 +:1031B00003E00008000000008F8200002486000762
66972 +:1031C00030C5FFF800A2182130641FFF03E000089B
66973 +:1031D000AF8400008F8700388F8A004027BDFFB87A
66974 +:1031E0008F860044AFB60040AFBF0044AFB5003C8F
66975 +:1031F000AFB40038AFB30034AFB20030AFB1002C81
66976 +:10320000AFB000288F4501048D4900ACAF47008066
66977 +:103210008CC8002000A938230000B021AF480E1050
66978 +:103220008F440E1000004821AF440E148CC20024BD
66979 +:10323000AF420E188F430E18AF430E1C10E001254D
66980 +:103240002D230001936B0008116000D400000000E2
66981 +:10325000976E001031CDFFFF00ED602B158000CF81
66982 +:103260000000000097700010320FFFFFAF4F0E00FC
66983 +:103270008F520000325100081220FFFD00000000B4
66984 +:1032800097540E088F460E043285FFFF30B30001BD
66985 +:1032900012600132000000000000000D30B8A040B4
66986 +:1032A00024150040131500C030A9A0001120012DE5
66987 +:1032B00000000000937F000813E0000800000000F9
66988 +:1032C00097630010306BFFFF00CB402B1100000311
66989 +:1032D00030AC00401180012300000000A785003CB5
66990 +:1032E000AF8600349366000800E02821AFA70020D5
66991 +:1032F00014C0012427B30020AF60000C9782003C6B
66992 +:103300003047400014E00002240300162403000E9E
66993 +:1033100024194007A363000AAF790014938A003E82
66994 +:103320008F740014315800070018AA4002959025A8
66995 +:10333000AF7200149784003C8F700014309100101D
66996 +:1033400002117825AF6F0014978E003C31CD000834
66997 +:1033500011A00147000028218F6700143C021000D3
66998 +:103360003C0C810000E22825AF65001497460E0A48
66999 +:103370002408000E3405FFFC30C3FFFF006C582505
67000 +:10338000AF6B0004A3680002937F000A27E90004E2
67001 +:10339000A369000A9786003C9363000A30CC1F00A3
67002 +:1033A000000C598301634021251F0028A37F0009D9
67003 +:1033B00097490E0CA769001093790009272A00028B
67004 +:1033C000315800070018A82332B10007A371000B81
67005 +:1033D00093740009976400108F910034978F003C1C
67006 +:1033E000329200FF024480210205702131ED00403D
67007 +:1033F00011A0000531C4FFFF0091282B3C12800072
67008 +:1034000010A000140000A0210224382B14E0011B9E
67009 +:103410008FA500208F4D0E14AF4D0E108F420E1C45
67010 +:10342000AF420E18AF440E008F4F000031EE00087F
67011 +:1034300011C0FFFD0000000097540E080080882195
67012 +:1034400000009021A794003C8F500E04241400012A
67013 +:10345000AF900034976400103095FFFF8E68000035
67014 +:103460000111F82317E00009AE7F00008F650014FA
67015 +:103470008F8B004434A60040AF6600148F4C0E10B2
67016 +:10348000AD6C00208F430E18AD63002493670008D5
67017 +:1034900014E000D2000000000E00009E2404001082
67018 +:1034A0008F8900483C08320000402821312600FF67
67019 +:1034B0000006FC0003E8502525390001AF990048BB
67020 +:1034C000AC4A0000937800099370000A330400FFAF
67021 +:1034D00000047400320F00FF01CF6825AC4D0004DA
67022 +:1034E0008F820048064000EAACA20008ACA0000CA5
67023 +:1034F0009783003C306B0008156000022628000608
67024 +:1035000026280002974E0E148F450E1C8F6700046C
67025 +:10351000936D000231C4FFFF31A200FFAFA2001083
67026 +:103520008F6C0014AFA800180E00008BAFAC001415
67027 +:10353000240400100E0000C7000000008E7200007E
67028 +:1035400016400005000000008F6400142405FFBF32
67029 +:1035500000859824AF7300148F79000C033538214F
67030 +:10356000AF67000C9375000816A00008000000006B
67031 +:1035700012800006000000008F7F00143C0BEFFF5C
67032 +:103580003568FFFE03E84824AF690014A3740008FF
67033 +:103590008FA500200A00024602202021AF470E001E
67034 +:1035A0000A0000F5000000008F5901780720FFFE97
67035 +:1035B000241F08008F840000AF5F0178974B008ABA
67036 +:1035C000316AFFFF014448232528FFFF31021FFF16
67037 +:1035D0002C4300081460FFF9000000008F8E0048A3
67038 +:1035E0008F8D003800C048210344202125C60001EA
67039 +:1035F000240C0F00AF86004800E9382324864000E1
67040 +:1036000031CA00FF11AC0005240800019391003E6F
67041 +:103610003230000700107A4035E80001000AAC00A3
67042 +:103620003C18010002B8A025AC9440008F930048DC
67043 +:1036300030B2003630A40008ACD3000410800097EC
67044 +:1036400001123025974E0E0A8F8D00003C0281003A
67045 +:1036500031CCFFFF25AB0008018240253C03100060
67046 +:1036600031651FFF25390006241F000EAF48016099
67047 +:1036700000C33025A75F015AAF850000A759015844
67048 +:1036800014E0000A8F93003824120F0052720002D7
67049 +:103690002416000134C600408F580E108F94004449
67050 +:1036A000AE9800208F550E18AE9500248F450E144D
67051 +:1036B000AF4501448F590E1CAF590148A34A01522E
67052 +:1036C0003C0A1000AF460154AF4A017814E0FEDD19
67053 +:1036D0002D2300010076A025128000178FBF004423
67054 +:1036E0008F84003824160F0010960084000000001C
67055 +:1036F0008F45017804A0FFFE24150F001095006E81
67056 +:10370000000000008F470E14240202403C1F1000EE
67057 +:10371000AF4701448F440E1CAF440148A3400152FF
67058 +:10372000A740015AAF400160A7400158AF42015481
67059 +:10373000AF5F01788FBF00448FB600408FB5003C6B
67060 +:103740008FB400388FB300348FB200308FB1002CAB
67061 +:103750008FB0002803E0000827BD004814C0FED049
67062 +:1037600030B8A0408F420E148F84004400004821DE
67063 +:10377000AC8200208F510E1CAC9100240A00020E76
67064 +:103780002D2300018F910034978A003C3C12800069
67065 +:103790000220A821315800401700FF300000A0216E
67066 +:1037A000976900108F9200343139FFFF13320035D2
67067 +:1037B00000002021008048211480FEA000A03821B4
67068 +:1037C0008F420E148F840044AC8200208F510E1C57
67069 +:1037D000AC9100240A00020E2D230001936A000917
67070 +:1037E0009378000B315000FF330F00FF020F702160
67071 +:1037F00025C2000A3050FFFF0E00009E020020216B
67072 +:103800008F8600483C1F410024CD0001AF8D004849
67073 +:10381000936C000930C600FF00064400318300FFAE
67074 +:10382000246B0002010B4825013FC825AC5900005C
67075 +:103830008F67000C97440E1400F22825AC45000455
67076 +:103840008F450E1C8F670004936A00023084FFFFCF
67077 +:10385000315800FFAFB800108F6F0014AFB10018DF
67078 +:103860000E00008BAFAF00140A0001A60200202159
67079 +:10387000AF6000040A00013EA36000020A00024695
67080 +:1038800000002021000090210A0001702414000192
67081 +:103890003C1280000A000195ACB2000C8F91000030
67082 +:1038A00025240002A744015826300008320F1FFFCC
67083 +:1038B0000A0001F9AF8F0000AF40014C1120002C2D
67084 +:1038C000000000008F590E10AF5901448F430E18AD
67085 +:1038D000240200403C1F1000AF430148A3400152A6
67086 +:1038E000A740015AAF400160A7400158AF420154C0
67087 +:1038F000AF5F01780A0002278FBF00441120000645
67088 +:103900000000000097460E0830CC004015800002F1
67089 +:10391000000000000000000D8F4D017805A0FFFEA3
67090 +:103920000000000097530E103C120500240E2000EA
67091 +:10393000326AFFFF0152C025AF58014C8F4F0E1461
67092 +:103940003C021000AF4F01448F500E1CAF50014895
67093 +:10395000A34001528F840038A740015AAF40016054
67094 +:10396000A7400158AF4E01540A000215AF4201783A
67095 +:103970008F490E14AF4901448F430E1C0A00028E7A
67096 +:10398000240200403C0E20FF27BDFFE03C1A8000CF
67097 +:103990003C0F800835CDFFFDAFBF001CAFB2001853
67098 +:1039A000AFB10014AFB00010AF8F0040AF4D0E00AC
67099 +:1039B0000000000000000000000000000000000007
67100 +:1039C000000000003C0C00FF358BFFFDAF4B0E00EC
67101 +:1039D0003C0660048CC95000240AFF7F3C11600043
67102 +:1039E000012A40243507380CACC750008E24043817
67103 +:1039F00024050009AF4500083083FFFF38622F71AE
67104 +:103A00002450C0B3AF8000480E000068AF800000B3
67105 +:103A100052000001AE20442C0E0004353C11800001
67106 +:103A20000E000ED9363000708F8A00403C1208001C
67107 +:103A300026523C88020088218E0800008F5F00001B
67108 +:103A40003BF900013338000113000017AF88003044
67109 +:103A5000022048218D2700003C0F08008DEF006CEC
67110 +:103A60003C0C08008D8C006800E8C02301F8282178
67111 +:103A70000000682100B8302B018D582101664021DB
67112 +:103A80003C010800AC25006C3C010800AC28006833
67113 +:103A90008F44000038830001306200011440FFEDC4
67114 +:103AA00000E04021AF8700308E0C00003C0508008C
67115 +:103AB0008CA5006C3C0408008C84006801883023CD
67116 +:103AC00000A638210000102100E6402B00821821BA
67117 +:103AD0000068F8213C010800AC27006C3C0108009C
67118 +:103AE000AC3F00688F49010025590088AF99004418
67119 +:103AF000AF890038AF4900208E070000AF87003043
67120 +:103B00008F4D017805A0FFFE000000008E0600002A
67121 +:103B10003C0B08008D6B00743C0408008C84007022
67122 +:103B200000C728230165F8210000102103E5402B80
67123 +:103B30000082382100E8C821240908003C0108005F
67124 +:103B4000AC3F00743C010800AC390070AF4901780B
67125 +:103B500093580108A398003E938F003E31EE000178
67126 +:103B600015C000158F830038240E0D00106E00194B
67127 +:103B7000240F0F00106F001D00000000915900007D
67128 +:103B800024180050332900FF113800043C1F400066
67129 +:103B9000AF5F01380A0002E7000000000E00090EC6
67130 +:103BA000000000008F8A00403C1F4000AF5F0138DA
67131 +:103BB0000A0002E700000000938D003E31AC0006D1
67132 +:103BC000000C51000E0000CE0152D8210A00034320
67133 +:103BD0008F8A00403C1B0800277B3D080E0000CE6A
67134 +:103BE000000000000A0003438F8A00403C1B0800CD
67135 +:103BF000277B3D280E0000CE000000000A00034392
67136 +:103C00008F8A004090AA00018FAB00108CAC00108E
67137 +:103C10003C0300FF8D680004AD6C00208CAD0014E7
67138 +:103C200000E060213462FFFFAD6D00248CA7001816
67139 +:103C30003C09FF000109C024AD6700288CAE001CC0
67140 +:103C40000182C82403197825AD6F0004AD6E002CE5
67141 +:103C50008CAD0008314A00FFAD6D001C94A9000234
67142 +:103C60003128FFFFAD68001090A70000A56000029A
67143 +:103C7000A1600004A167000090A30002306200FF71
67144 +:103C80000002198210600005240500011065000E75
67145 +:103C90000000000003E00008A16A00018CD80028A1
67146 +:103CA000354A0080AD7800188CCF0014AD6F001439
67147 +:103CB0008CCE0030AD6E00088CC4002CA16A0001CF
67148 +:103CC00003E00008AD64000C8CCD001CAD6D001845
67149 +:103CD0008CC90014AD6900148CC80024AD680008BC
67150 +:103CE0008CC70020AD67000C8CC200148C8300646C
67151 +:103CF0000043C82B13200007000000008CC20014F2
67152 +:103D0000144CFFE400000000354A008003E0000886
67153 +:103D1000A16A00018C8200640A000399000000007F
67154 +:103D200090AA000027BDFFF88FA9001CA3AA0000DD
67155 +:103D30008FAE00003C0FFF808FA8001835E2FFFF18
67156 +:103D40008CCD002C01C26024AFAC0000A120000487
67157 +:103D500000E06021A7A000028FB800008D270004BA
67158 +:103D60000188182100A0582100C05021006D28268C
67159 +:103D70003C06FF7F3C0F00FF2CAD000135EEFFFF3E
67160 +:103D800034D9FFFF3C02FF0003193024000D1DC091
67161 +:103D9000010EC82400E2C02400C370250319782551
67162 +:103DA000AD2E0000AD2F00048D450024AFAE000005
67163 +:103DB000AD2500088D4D00202405FFFFAD2D000C22
67164 +:103DC000956800023107FFFFAD27001091660018CB
67165 +:103DD00030C200FF000219C2506000018D4500345E
67166 +:103DE000AD2500148D67000827BD0008AD27001C15
67167 +:103DF0008C8B00CCAD2C0028AD20002CAD2B0024EA
67168 +:103E0000AD20001803E00008AD20002027BDFFE032
67169 +:103E1000AFB20018AFB10014AFB00010AFBF001CBC
67170 +:103E20009098000000C088213C0D00FF330F007FF8
67171 +:103E3000A0CF0000908E000135ACFFFF3C0AFF00D0
67172 +:103E4000A0CE000194A6001EA22000048CAB00149A
67173 +:103E50008E29000400A08021016C2824012A40241E
67174 +:103E60000080902101052025A6260002AE24000432
67175 +:103E700026050020262400080E00007624060002F5
67176 +:103E800092470000260500282624001400071E0083
67177 +:103E90000003160324060004044000032403FFFF6C
67178 +:103EA000965900023323FFFF0E000076AE23001068
67179 +:103EB000262400248FBF001C8FB200188FB100147D
67180 +:103EC0008FB0001024050003000030210A0000809C
67181 +:103ED00027BD002027BDFFD8AFB1001CAFB0001830
67182 +:103EE000AFBF002090A80000240200018FB0003C6A
67183 +:103EF0003103003F00808821106200148FAA00382F
67184 +:103F0000240B0005506B0016AFAA001000A0202162
67185 +:103F100000C028210E0003DC02003021922400BCE6
67186 +:103F2000308300021060000326060030ACC00000A1
67187 +:103F300024C600048FBF00208FB1001C8FB0001872
67188 +:103F400000C0102103E0000827BD002801403821EF
67189 +:103F50000E00035AAFB000100A0004200000000059
67190 +:103F60000E0003A1AFB000140A00042000000000FE
67191 +:103F70003C02000A034218213C04080024843D6CE2
67192 +:103F80002405001A000030210A000080AF8300548D
67193 +:103F90003C038000346200708C48000000A058216F
67194 +:103FA00000C04821308A00FFAF8800308F4401787C
67195 +:103FB0000480FFFE3C0C8000358600708CC500003C
67196 +:103FC0003C0308008C6300743C1808008F180070D4
67197 +:103FD00000A82023006468210000C82101A4782BD8
67198 +:103FE0000319702101CF60213C010800AC2D007441
67199 +:103FF0003C010800AC2C00708F480E14AF480144FF
67200 +:10400000AF47014CA34A0152A74B01589346010800
67201 +:1040100030C5000854A0000135291000934B090059
67202 +:1040200024070050316A00FF11470007000000001C
67203 +:104030008F450E1CAF450148AF4901543C091000A3
67204 +:1040400003E00008AF490178934D010831A800084A
67205 +:104050001100001000000000934F010831EE001025
67206 +:1040600051C00001352900083C04080090843DD06F
67207 +:10407000A34401508F4309A4AF4301488F4209A0D4
67208 +:10408000AF420144AF4901543C09100003E000086D
67209 +:10409000AF4901783C1908008F393D8C333800084E
67210 +:1040A0005700FFF1352900080A00047300000000E2
67211 +:1040B00024070040AF470814AF4008108F4209445E
67212 +:1040C0008F4309508F4409548F45095C8F46094C32
67213 +:1040D000AF820064AF830050AF84004CAF85005CBA
67214 +:1040E00003E00008AF8600609346010930C5007FF9
67215 +:1040F000000518C0000521400083102103E00008DE
67216 +:10410000244200883C09080091293D9124A800021E
67217 +:104110003C05110000093C0000E8302500C51825C9
67218 +:1041200024820008AC83000003E00008AC80000497
67219 +:104130009347010B8F4A002C974F09083C18000E3B
67220 +:104140000358482131EEFFFF000E41C0AF48002C5C
67221 +:1041500097430908952C001A008040212403000190
67222 +:10416000318BFFFFAC8B00008D2D001C00A058216F
67223 +:1041700000C06021AC8D00048D24002030E7004099
67224 +:10418000AD04000891220019304400031083004858
67225 +:104190002885000214A00062240600021086005642
67226 +:1041A00024190003109900660000000010E0003A96
67227 +:1041B000000000003C07080094E73D8624E200016F
67228 +:1041C000934F0934934709219525002A31EE00FFCA
67229 +:1041D000000E488230ED00FF978700580009360036
67230 +:1041E000000D1C003044FFFF00C310250044C02513
67231 +:1041F00000A778213C19400003197025000F4C00DE
67232 +:10420000AD090004AD0E0000934D09203C030006EB
67233 +:1042100025090014000D360000C32025AD04000858
67234 +:104220008F59092C24E5000130A27FFFAD19000C45
67235 +:104230008F580930A782005825020028AD180010B9
67236 +:104240008F4F0938AD0F0014AD2B00048F4E09407D
67237 +:10425000AD2E0008934D09373C05080090A53D9010
67238 +:104260008F4409488F46094031A700FF00EC182110
67239 +:10427000008678230003C7000005CC0003196025E1
67240 +:1042800031E8FFFC01885825AD2B000CAD20001053
67241 +:1042900003E00008AF4A002C3C0D080095AD3D86B8
67242 +:1042A0003C0E080095CE3D800A0004C901AE1021E5
67243 +:1042B0003C05080094A53D8A3C06080094C63D8054
67244 +:1042C0003C18080097183D7C952E002400A6782104
67245 +:1042D00001F86823000E240025A2FFF200821825B1
67246 +:1042E00024190800AD03000CAD190014AD00001036
67247 +:1042F0000A0004C4250800189526002495250028E6
67248 +:104300000006C40000057C00370E810035ED080072
67249 +:10431000AD0E000CAD0D00100A0004C425080014F9
67250 +:104320001480FFA200000000952400240004140063
67251 +:1043300034430800AD03000C0A0004C42508001033
67252 +:104340003C03080094633D8A3C05080094A53D8029
67253 +:104350003C06080094C63D7C953900249538002819
67254 +:10436000006520210086782300196C000018740075
67255 +:1043700025E2FFEE01C2202535A3810024190800A3
67256 +:10438000AD03000CAD040010AD190018AD00001411
67257 +:104390000A0004C42508001C03E00008240201F4FC
67258 +:1043A00027BDFFE8AFB00010AFBF00140E000060E3
67259 +:1043B0000080802124050040AF4508148F83005001
67260 +:1043C0008F84004C8F85005C0070182100641023DE
67261 +:1043D00018400004AF830050AF6300548F66005450
67262 +:1043E000AF86004C1200000C000000008F440074E7
67263 +:1043F000936800813409FA002D07000710E00005DA
67264 +:1044000000891021936C0081240B01F4018B50046E
67265 +:1044100001441021AF62000C8F4E095C01C5682376
67266 +:1044200019A000048FBF00148F4F095CAF8F005C90
67267 +:104430008FBF00148FB000100A00006227BD001863
67268 +:104440008F8400648F8300508F82004CAF640044DF
67269 +:10445000AF63005003E00008AF6200543C038000EB
67270 +:10446000346200708C43000027BDFFF8308700FFE6
67271 +:1044700030A900FF30C800FFAF8300308F440178BF
67272 +:104480000480FFFE3C028000345900708F38000029
67273 +:10449000A3A700033C0708008CE700748FAC000062
67274 +:1044A0003C0608008CC60070030378233C0E7FFF97
67275 +:1044B00000EFC82135CDFFFF00005021018D2824D9
67276 +:1044C00000CA1821000847C0032F202B00A8102580
67277 +:1044D0000064C021AFA200003C010800AC390074A8
67278 +:1044E0003C010800AC380070934F010AA3A0000201
67279 +:1044F0003C0E80FFA3AF00018FAC0000312B007F8A
67280 +:1045000035CDFFFF018D4824000B5600012A4025C0
67281 +:10451000240730002406FF803C05100027BD00085A
67282 +:10452000AF48014CAF470154A7400158A346015280
67283 +:1045300003E00008AF45017827BDFFE8AFBF0014D6
67284 +:10454000AFB000108F6500743C068000309000FF13
67285 +:1045500000A620250E000060AF6400749363000580
67286 +:10456000346200080E000062A362000502002021F0
67287 +:104570008FBF00148FB00010240500052406000131
67288 +:104580000A00057027BD001827BDFFE03C0380002E
67289 +:10459000AFB00010AFBF0018AFB1001434620070AC
67290 +:1045A0008C470000309000FF30A800FFAF8700303C
67291 +:1045B0008F4401780480FFFE3C18800037110070A2
67292 +:1045C0008E2F00003C0D08008DAD00743C0A0800E1
67293 +:1045D0008D4A007001E7702301AE282100005821A8
67294 +:1045E00000AE302B014B4821012638213C01080048
67295 +:1045F000AC250074000088213C010800AC27007045
67296 +:104600001100000F000000008F6200742619FFFFE8
67297 +:104610003208007F0002FE0233E5007F150000062D
67298 +:10462000332200FF2407FF800207202624A3FFFF78
67299 +:1046300000838025320200FF0040802124111008F1
67300 +:104640000E000060000000008F49081831250004AA
67301 +:1046500014A0FFFD3218007F001878C000187140C8
67302 +:1046600001CF682125AC0088AF4C0818274A098083
67303 +:104670008D4B0020AF4B01448D460024AF460148CE
67304 +:10468000A35001500E000062A740015802201021E3
67305 +:104690008FBF00188FB100148FB0001003E0000826
67306 +:1046A00027BD002027BDFFE8308400FFAFBF00100A
67307 +:1046B0000E0005BB30A500FF8F8300508FBF001098
67308 +:1046C000344500402404FF903C02100027BD001830
67309 +:1046D000AF43014CA3440152AF45015403E000082D
67310 +:1046E000AF4201789343093E306200081040000D4C
67311 +:1046F0003C0901013528080AAC8800008F47007486
67312 +:10470000AC8700043C06080090C63D9030C5001000
67313 +:1047100050A00006AC8000088F6A0060AC8A0008D8
67314 +:104720002484000C03E00008008010210A00062207
67315 +:104730002484000C27BDFFE8AFBF0014AFB0001009
67316 +:104740009346093F00A050210005288000853823AA
67317 +:1047500030C200FF240300063C09080095293D866D
67318 +:1047600024E8FFD824050004104300372406000283
67319 +:104770009750093C3C0F020400063400320EFFFF44
67320 +:1047800001CF6825AC8D0000934C093E318B002091
67321 +:104790001160000800000000934309363C02010349
67322 +:1047A000345F0300307900FF033FC0252405000873
67323 +:1047B000AC98000493430934935909210005F88209
67324 +:1047C000306200FF0002C082332F00FF00186E002D
67325 +:1047D000000F740001AE6025018920253C094000CE
67326 +:1047E00000898025ACF0FFD8934309378F4F0948E3
67327 +:1047F0008F580940306200FF004AC821033F7021F2
67328 +:1048000001F86023000E6F0001A650253185FFFCE2
67329 +:10481000001F58800145482501683821AD09002056
67330 +:104820000E00006024F00028240400040E00006242
67331 +:10483000A364003F020010218FBF00148FB000104E
67332 +:1048400003E0000827BD00180A0006352406001200
67333 +:1048500027BDFFD024090010AFB60028AFB5002453
67334 +:10486000AFB40020AFB10014AFB000103C0108009D
67335 +:10487000A0293D90AFBF002CAFB3001CAFB2001811
67336 +:1048800097480908309400FF3C02000E3107FFFFF3
67337 +:10489000000731C0AF46002C974409089344010B30
67338 +:1048A00030B500FF03428021308300300000B0218A
67339 +:1048B0001060012500008821240C00043C01080040
67340 +:1048C000A02C3D90934B093E000B5600000A2E038E
67341 +:1048D00004A0016000000000AF400048934F010BAE
67342 +:1048E00031EE002011C00006000000009358093E80
67343 +:1048F00000189E0000139603064001890000000086
67344 +:104900009344010B30830040106000038F930050EC
67345 +:104910008F8200502453FFFF9347093E30E6000882
67346 +:1049200014C0000224120003000090219619002CEC
67347 +:1049300093580934934F0937A7990058330C00FF57
67348 +:1049400031EE00FF024E6821000D5880016C5021AD
67349 +:10495000015140213C010800A4283D869205001821
67350 +:1049600030A900FF010918213C010800A4233D885B
67351 +:104970009211001816200002000000000000000D37
67352 +:104980003C010800A4233D8A3C010800A4203D808E
67353 +:104990003C010800A4203D7C935F010B3063FFFFC6
67354 +:1049A00033F00040120000022464000A2464000B6B
67355 +:1049B0003091FFFF0E00009E022020219358010B32
67356 +:1049C0003C08080095083D8A0040202100185982C3
67357 +:1049D000316700010E00049A01072821934C010B56
67358 +:1049E0008F4B002C974E09083C0F000E034F4021BF
67359 +:1049F00031CDFFFF000D51C0AF4A002C974309088D
67360 +:104A00009505001A004038212404000130A9FFFF59
67361 +:104A1000AC4900008D06001C00404821318A00404E
67362 +:104A2000AC4600048D020020ACE20008910300199E
67363 +:104A300030630003106400EC28790002172001188D
67364 +:104A4000241000021070010C241F0003107F011EAF
67365 +:104A500000000000114000DE000000003C090800DA
67366 +:104A600095293D8625220001935F0934934E092143
67367 +:104A70009504002A33F900FF0019C08231CF00FFEE
67368 +:104A8000978E005800184600000F6C00010D80251D
67369 +:104A90003045FFFF02051025008E50213C034000E9
67370 +:104AA00000433025000A6400ACEC0004ACE60000D2
67371 +:104AB000935F09203C19000624EC0014001FC60077
67372 +:104AC00003197825ACEF00088F48092C25CD00018B
67373 +:104AD00031A57FFFACE8000C8F500930A785005846
67374 +:104AE00024E80028ACF000108F4409380100802130
67375 +:104AF000ACE40014AD9300048F530940AD9300085B
67376 +:104B0000934A09373C19080093393D908F4309486F
67377 +:104B10008F460940314200FF0052F82100667023A1
67378 +:104B2000001F7F000019C40001F8282531CDFFFCCB
67379 +:104B300000AD2025AD84000CAD800010AF4B002CE3
67380 +:104B4000934B093E317300081260000D3C060101D1
67381 +:104B500034CC080AACEC00288F530074AD13000469
67382 +:104B60003C0B0800916B3D903167001050E0000352
67383 +:104B7000AD0000088F6A0060AD0A00082510000C27
67384 +:104B800012C0003D000000009343093F24160006B8
67385 +:104B900024060004306200FF105600C924070002FA
67386 +:104BA0009758093C3C0F0204330DFFFF01AF40252D
67387 +:104BB000AE0800009345093E30A400201080000894
67388 +:104BC00000000000935309363C0B0103357F0300BE
67389 +:104BD000327900FF033F7025AE0E00042406000862
67390 +:104BE000934F093493480921312AFFFF31ED00FF2B
67391 +:104BF000000D1082310300FF0002B60000032C00FC
67392 +:104C000002C56025018A9825001220803C094000D9
67393 +:104C10000204502302695825AD4BFFD8935F093732
67394 +:104C20008F4F09488F58094033F900FF0332702134
67395 +:104C30000006B08201D668210007440001F828234D
67396 +:104C4000000D1F000068302530A2FFFC2547FFD86B
67397 +:104C500000C260250016808002074821ACEC0020CD
67398 +:104C6000253000280E00006024120004A372003FCB
67399 +:104C70000E000062000000009347010B30F200407C
67400 +:104C8000124000053C1900FF8E180000372EFFFF70
67401 +:104C9000030E3024AE0600000E0000C702202021C3
67402 +:104CA0003C10080092103D90321100031220000FBA
67403 +:104CB00002A028218F89005025330001AF930050B6
67404 +:104CC000AF7300508F6B00540173F8231BE0000298
67405 +:104CD000026020218F640054AF6400548F4C007434
67406 +:104CE000258401F4AF64000C02A028210280202159
67407 +:104CF000A76000680E0005BB3C1410008F850050B3
67408 +:104D000034550006AF45014C8F8A00488FBF002CF8
67409 +:104D10008FB3001C25560001AF9600488FB20018D3
67410 +:104D2000A34A01528FB60028AF5501548FB1001429
67411 +:104D3000AF5401788FB500248FB400208FB00010DD
67412 +:104D400003E0000827BD00309358093E00189E007C
67413 +:104D500000139603064200362411000293440923EF
67414 +:104D6000308300021060FEDD8F8600608F8200506D
67415 +:104D700014C2FEDA000000000E0000600000000017
67416 +:104D80009369003F24070016312800FF1107000C2B
67417 +:104D9000240500083C0C0800918C3D90358B0001E7
67418 +:104DA0003C010800A02B3D90936A003F314300FF77
67419 +:104DB00010650065240D000A106D005E2402000CD1
67420 +:104DC0000E000062000000000A00069000000000D3
67421 +:104DD0003C09080095293D863C0A0800954A3D801B
67422 +:104DE0000A0006F3012A10213C09080095293D8A92
67423 +:104DF0003C04080094843D803C06080094C63D7C39
67424 +:104E000095030024012410210046F8230003CC0060
67425 +:104E100027F0FFF20330C025240F0800ACF8000C87
67426 +:104E2000ACEF0014ACE000100A0006EE24E7001816
67427 +:104E30003C010800A0313D90935F093E241600011B
67428 +:104E400033F900201720FEA5241100080A0006905F
67429 +:104E5000241100048F6E00848F4D094011A0FE9E26
67430 +:104E6000AF8E0050240F00143C010800A02F3D908D
67431 +:104E70000A00068F00000000950E0024950D002802
67432 +:104E8000000E6400000D2C003589810034A6080056
67433 +:104E9000ACE9000CACE600100A0006EE24E70014B2
67434 +:104EA0001460FEEC000000009502002400021C00CB
67435 +:104EB00034640800ACE4000C0A0006EE24E700109D
67436 +:104EC0000A000741240700123C02080094423D8A70
67437 +:104ED0003C06080094C63D803C03080094633D7C7A
67438 +:104EE00095100024951900280046F82103E3C023FB
67439 +:104EF00000106C0000197400270FFFEE01CF282569
67440 +:104F000035AC8100ACEC000CACE5001024070800C7
67441 +:104F1000AD2700182527001C0A0006EEAD2000145E
67442 +:104F20008F7F004CAF7F00548F7900540A000699A0
67443 +:104F3000AF790050A362003F0E0000620000000045
67444 +:104F40000A00069000000000240200140A0008274E
67445 +:104F5000A362003F27BDFFE8308400FFAFBF001011
67446 +:104F60000E0005BB30A500FF9378007E9379007F8B
67447 +:104F7000936E00809368007A332F00FF001866005C
67448 +:104F8000000F6C0031CB00FF018D4825000B520053
67449 +:104F90008FBF0010012A3825310600FF344470000D
67450 +:104FA00000E628252402FF813C03100027BD0018DD
67451 +:104FB000AF45014CAF440154A342015203E0000845
67452 +:104FC000AF43017827BDFFD8AFB20018AFB10014CE
67453 +:104FD000AFB00010AFBF0020AFB3001C9342010977
67454 +:104FE000308600FF30B000FF000618C23204000215
67455 +:104FF0003071000114800005305200FF93670005F6
67456 +:1050000030E5000810A0000D30C80010024020213B
67457 +:105010000E0005A702202821240400018FBF0020D4
67458 +:105020008FB3001C8FB200188FB100148FB0001026
67459 +:105030000080102103E0000827BD00281500003281
67460 +:105040000000000093430109000028213062007F26
67461 +:10505000000220C00002F94003E49821267900886C
67462 +:10506000033B98218E7800248E6F0008130F0046B2
67463 +:10507000000000008F640084241800020004FD82F8
67464 +:1050800033F900031338007C0000000093660083AE
67465 +:10509000934A0109514600043205007C10A00060CB
67466 +:1050A000000000003205007C14A0005302402021C3
67467 +:1050B00016200006320400018E7F00248F5901045F
67468 +:1050C00017F9FFD600002021320400011080000AE9
67469 +:1050D000024020218F4209408F9300641053000644
67470 +:1050E000000000000E00066D022028218F430940B9
67471 +:1050F000AF630044024020210E0006020220282156
67472 +:105100000A000860240400013C0908008D2900649D
67473 +:10511000252600013C010800AC26006416000012A0
67474 +:10512000000000008F6D00843C0E00C001AE6024C2
67475 +:1051300015800005024020210E00082E02202821A3
67476 +:105140000A00086024040001240500040E00057014
67477 +:1051500024060001024020210E00082E02202821F2
67478 +:105160000A000860240400010E000041240400012C
67479 +:10517000936B007D020B50250E000062A36A007D38
67480 +:105180000A0008A38F6D00848F6600748F480104A5
67481 +:105190008E67002400064E021507FFB63126007FF9
67482 +:1051A000936B008326440001308A007F1146004340
67483 +:1051B000316300FF5464FFB08F6400842645000112
67484 +:1051C00030B1007F30A200FF122600042405000148
67485 +:1051D000004090210A00087624110001240FFF806E
67486 +:1051E000024F702401CF9026324200FF00409021F0
67487 +:1051F0000A000876241100010E00066D0220282105
67488 +:10520000321800301300FFAA321000820240202121
67489 +:105210000E0005A7022028210A00086024040001CE
67490 +:105220008F6E00743C0F80002405000301CF902591
67491 +:10523000AF72007493710083240600010E000570A4
67492 +:10524000322400FF0E00004124040001936D007D14
67493 +:10525000020D60250E000062A36C007D3C0B08006F
67494 +:105260008D6B0054257000013C010800AC300054E7
67495 +:105270000A000860240400018F6800743C09800063
67496 +:105280002405000401093825AF6700749363008387
67497 +:10529000240600010E000570306400FF0E0000417E
67498 +:1052A000240400019362007D020298250E00006232
67499 +:1052B000A373007D0A00086024040001324D0080C1
67500 +:1052C00039AC0080546CFF6C8F6400840A0008C9FC
67501 +:1052D0002645000127BDFFC83C0A0008AFBF0030CB
67502 +:1052E000AFB5002CAFB40028AFB30024AFB200209C
67503 +:1052F000AFB1001CAFB00018034AD8212409004008
67504 +:10530000AF490814AF4008108F4209448F43095039
67505 +:105310008F4609548F47095C8F48094C9344010814
67506 +:105320009345010BAF820064308400FF30A500FF7D
67507 +:10533000AF830050AF86004CAF87005C0E00084A78
67508 +:10534000AF8800601440017D8FBF0030A760006807
67509 +:10535000934D0900240B00503C15080026B53D482C
67510 +:1053600031AC00FF3C12080026523D58118B00035F
67511 +:10537000000000000000A8210000902193510109C5
67512 +:105380008F9F005024040010322E007F000E68C052
67513 +:10539000000E6140018D282124B40088AF54081804
67514 +:1053A0008F4901048F4A09A43C0B000E034BC02116
67515 +:1053B000012A10233C010800AC223D6C8F430958A0
67516 +:1053C0003C010800A0243D9097470908007F302346
67517 +:1053D0003C010800AC263D7030E8FFFF0008C9C062
67518 +:1053E0003C010800AC3F3D94AF59002C974209089E
67519 +:1053F0009710002C8EB10000930F001803749821B1
67520 +:10540000A7900058AF9300440220F80931F000FF44
67521 +:10541000304E000215C001B2304F000111E0014FC3
67522 +:10542000000000009343093E3066000814C00002EB
67523 +:10543000241400030000A0218F5809A424130001A4
67524 +:105440003C010800AC383D98934F0934935109371B
67525 +:1054500031EC00FF322E00FF028E6821000D288003
67526 +:1054600000AC5021015058213C010800A42B3D887C
67527 +:105470003C010800A42A3D8693490934312200FFEB
67528 +:1054800002022021249000103C010800A4303D8439
67529 +:10549000240700068F9F00503C010800AC273D8C7C
67530 +:1054A0008F88005C8F59095800008021011F282334
67531 +:1054B00004A00149033F20230480014700A4302BAE
67532 +:1054C00010C00149000000003C010800AC253D70FF
67533 +:1054D0008E4200000040F809000000003043000246
67534 +:1054E000146000F80040882130440001548000100E
67535 +:1054F0008E4200043C0908008D293D743C0AC0001E
67536 +:10550000012A8025AF500E008F45000030AB000807
67537 +:105510001160FFFD00000000974D0E0824100001EF
67538 +:10552000A78D003C8F4C0E04AF8C00348E420004DB
67539 +:105530000040F8090000000002228825322E0002F7
67540 +:1055400015C00180000000003C09080095293D7C41
67541 +:105550003C06080094C63D883C0A0800954A3D7EFA
67542 +:105560003C1908008F393D74012660213C18080061
67543 +:105570008F183D983C03080094633D92018A2021D6
67544 +:105580008F4E09400329F821248F000203E32821CC
67545 +:10559000031968213C010800A42C3D8AAF8E0064E9
67546 +:1055A0003C010800AC2D3D983C010800A4253D803D
67547 +:1055B0000E00009E31E4FFFF8F870048004020214D
67548 +:1055C0003C010800A0273D918E42000824E800011C
67549 +:1055D000AF8800480040F809000000009344010B28
67550 +:1055E0008F4C002C974A09083C0B000E034B4021BE
67551 +:1055F0003149FFFF000919C08F8B0050AF43002CC9
67552 +:10560000974309089506001A00403821308A004067
67553 +:1056100030DFFFFFAC5F00008D19001C0040482107
67554 +:10562000AC5900048D180020AC580008910F0019E7
67555 +:1056300031E30003107300F0000000002862000254
67556 +:105640001440010924050002106500FD240D00032B
67557 +:10565000106D010D00000000114000D90000000095
67558 +:105660003C0A0800954A3D8625420001934D0934C5
67559 +:1056700093580921950E002A31A300FF00032082D0
67560 +:10568000331F00FF9798005800047E00001FCC00D5
67561 +:1056900001F940253049FFFF0109102501D83021CB
67562 +:1056A0003C0540000045502500066C00ACED0004B0
67563 +:1056B000ACEA0000934309203C04000624ED0014EA
67564 +:1056C0000003FE0003E4C825ACF900088F49092C4B
67565 +:1056D000270F000131EE7FFFACE9000C8F48093045
67566 +:1056E000A78E005824E90028ACE800108F4509383F
67567 +:1056F00001204021ACE50014ADAB00048F4209400D
67568 +:10570000ADA20008934B09373C1F080093FF3D9062
67569 +:105710008F4309488F4A0940316600FF00D4202199
67570 +:10572000006A78230004C700001FCC000319282555
67571 +:1057300031EEFFFC00AE1025ADA2000CADA00010B4
67572 +:10574000AF4C002C934C093E318B00085160000F88
67573 +:105750008E58000C3C06010134CA080AACEA002845
67574 +:105760008F4B0074AD2B00043C0C0800918C3D90D5
67575 +:105770003187001050E00003AD2000088F62006008
67576 +:10578000AD2200082528000C8E58000C0300F809F3
67577 +:10579000010020213C19080097393D8A3C1F080070
67578 +:1057A00097FF3D7E033F782125E900020E0000C7E8
67579 +:1057B0003124FFFF3C0E08008DCE3D6C3C080800F4
67580 +:1057C0008D083D7401C828233C010800AC253D6CC0
67581 +:1057D00014A00006000000003C0308008C633D8C10
67582 +:1057E000346400403C010800AC243D8C1200007081
67583 +:1057F0008F8C00448F470E108F900044AE0700201E
67584 +:105800008F4D0E18AE0D00243C10080096103D8000
67585 +:105810000E0000600000000024020040AF420814A7
67586 +:105820008F8600508F8A004C00D01821006A5823C0
67587 +:1058300019600004AF830050AF6300548F650054BB
67588 +:10584000AF85004C1200000C000000008F44007473
67589 +:10585000936800813409FA002D0E000711C000057D
67590 +:1058600000891821937F0081241901F403F9780439
67591 +:1058700001E41821AF63000C8F44095C8F83005C46
67592 +:105880000083C0231B000003000000008F50095C50
67593 +:10589000AF90005C0E000062000000008F8C005092
67594 +:1058A0008E4700103C010800AC2C3D9400E0F80944
67595 +:1058B000000000003C0D08008DAD3D6C55A0FEF5CC
67596 +:1058C000240700068F450024975909088F8B006430
67597 +:1058D0008F9400503C0F001F978200588F86005411
67598 +:1058E0008F93004C3328FFFF35E9FF8000A9502437
67599 +:1058F000000871C032320100AF4E0024A4C2002C57
67600 +:10590000AF4A0024AF6B0044AF740050AF73005433
67601 +:105910001640008032380010570000868EA4000424
67602 +:10592000322300405460001B8EB100088EB0000C82
67603 +:105930000200F809000000008FBF00308FB5002C76
67604 +:105940008FB400288FB300248FB200208FB1001CC9
67605 +:105950008FB0001803E0000827BD00389347010905
67606 +:105960008F8800380007FE0003E8C825AF59008083
67607 +:105970008F5809A08F5309A4AFB80010AF580E1468
67608 +:105980008FB40010AF540E10AF530E1C0A00096202
67609 +:10599000AF530E180220F809000000008EB0000C72
67610 +:1059A0000200F809000000000A000AA88FBF0030BA
67611 +:1059B000A5800020A59300220A000A5BAD93002475
67612 +:1059C0003C09080095293D863C06080094C63D80A8
67613 +:1059D0000A0009F4012610213C010800AC203D70AA
67614 +:1059E0000A00098E8E4200003C010800AC243D7084
67615 +:1059F0000A00098E8E4200003C03080094633D8A31
67616 +:105A00003C04080094843D803C1F080097FF3D7CC7
67617 +:105A1000951800240064C821033F782300186C0007
67618 +:105A200025EEFFF201AE2825AC45000C240208004B
67619 +:105A3000ACE20014ACE000100A0009EF24E7001803
67620 +:105A400095060024950900280006240000091C0082
67621 +:105A5000349F810034790800ACFF000CACF90010D1
67622 +:105A60000A0009EF24E700141460FEFB00000000A8
67623 +:105A70009518002400187C0035EE0800ACEE000CF0
67624 +:105A80000A0009EF24E700103C07080094E73D8076
67625 +:105A90003C04080094843D8A3C03080094633D7CE8
67626 +:105AA00095190024951800280087F82103E378232E
67627 +:105AB0002407080000192C0000186C0025EEFFEEEA
67628 +:105AC00001AE302534A28100AD2700182527001C27
67629 +:105AD000AD22000CAD2600100A0009EFAD20001425
67630 +:105AE00093520109000028210E000602324400FFF3
67631 +:105AF0008FBF00308FB5002C8FB400288FB30024E7
67632 +:105B00008FB200208FB1001C8FB0001803E0000896
67633 +:105B100027BD0038935F010933E400FF0E00066DD6
67634 +:105B200000002821323800105300FF7E322300404D
67635 +:105B30008EA400040080F809000000000A000AA2F8
67636 +:105B4000322300401200FF5F000000008F540E144B
67637 +:105B50008F920044AE5400208F530E1C0A000A8A14
67638 +:105B6000AE5300248F82001C008040213C040100C1
67639 +:105B70009047008530E3002010600009000000001D
67640 +:105B80003C0708008CE73D948F83001800E3202336
67641 +:105B9000048000089389000414E30003010020211D
67642 +:105BA00003E00008008010213C04010003E000082D
67643 +:105BB000008010211120000B006738238F8C0020FB
67644 +:105BC00024090034918B00BC316A0002514000016D
67645 +:105BD0002409003000E9682B15A0FFF10100202105
67646 +:105BE00000E938232419FFFC00B9C02400F9782407
67647 +:105BF00000F8702B15C0FFEA01E8202130C2000335
67648 +:105C00000002182314C00012306900030000302184
67649 +:105C100000A9702101C6682100ED602B1180FFE012
67650 +:105C20003C0401002D2F00010006482B01053821FE
67651 +:105C300001E9302414C0FFDA24E4FFFC2419FFFC3E
67652 +:105C400000B9C0240308202103E0000800801021CF
67653 +:105C50008F8B002024060004916A00BC31440004AC
67654 +:105C60001480FFEC00A970210A000B5E00003021B7
67655 +:105C700027BDFFE8AFBF00108F460100934A01091E
67656 +:105C80003C1F08008FFF00902407FF80314F00FF6A
67657 +:105C900031E8007F0008614003E6C821032CC021E1
67658 +:105CA00027090120012770243C010800A02F3DD0C6
67659 +:105CB000AF4E080C3C0D08008DAD00903C040080F8
67660 +:105CC0003482000301A65821016C182124650120AB
67661 +:105CD00030AA007801424025AF48081C3C1F08004C
67662 +:105CE0008FFF00908F88004003E6C0213319000722
67663 +:105CF00003074824033A7821AF49002825E909C061
67664 +:105D0000952E00023C0D08008DAD008C3C0A080069
67665 +:105D10008D4A009031CC3FFF01A61821000C59801C
67666 +:105D2000006B282100A72024AF44002C95220002FC
67667 +:105D30003C1F08008FFF008C9107008530593FFF02
67668 +:105D400003E678210019C1800146702101F868211D
67669 +:105D500031CC007F31AB007F019A2821017A50219C
67670 +:105D60003C03000C3C04000E00A328210144102138
67671 +:105D700030E6002027470980AF82002CAF88001C46
67672 +:105D8000AF890024AF85002010C00006AF8700282F
67673 +:105D90008D0200508CA4010C0044302318C0007701
67674 +:105DA00000000000910C0085240DFFDF018D3824D8
67675 +:105DB000A10700858F8B001C8F8900248F87002806
67676 +:105DC0008D65004CAF850018912F000D31EE00203D
67677 +:105DD00011C000170000000024090001A38900047D
67678 +:105DE000AF80000C8CE400248F85000C240A00088E
67679 +:105DF000AF800008AF8000103C010800A42A3D7E5F
67680 +:105E00003C010800A4203D920E000B32000030211E
67681 +:105E10008F8500248FBF0010AF82001490A8000D62
67682 +:105E200027BD00180008394203E0000830E20001F5
67683 +:105E3000913F00022418000133F900FF001921826C
67684 +:105E400010980039240800021088005B8F86002C0F
67685 +:105E50008CE5002414A0001B8F9F002091220000DD
67686 +:105E6000240A00053046003F10CA00472404000100
67687 +:105E70008F860008A3840004AF860010AF86000C54
67688 +:105E80008CE400248F85000C240A00083C010800E3
67689 +:105E9000A42A3D7E3C010800A4203D920E000B3256
67690 +:105EA000000000008F8500248FBF0010AF82001417
67691 +:105EB00090A8000D27BD00180008394203E0000833
67692 +:105EC00030E200018CF800088CF900248FEE00C449
67693 +:105ED000A38000048CE40024AF8E000C8F85000C9E
67694 +:105EE0008F86000803197823240A0008AF8F00105A
67695 +:105EF0003C010800A42A3D7E3C010800A4203D92FC
67696 +:105F00000E000B32000000008F8500248FBF0010B0
67697 +:105F1000AF82001490A8000D27BD00180008394278
67698 +:105F200003E0000830E20001912300003062003FEE
67699 +:105F3000104400278F8500208CE400241480002169
67700 +:105F4000000000008D2E00183C187FFF8F85002078
67701 +:105F5000370FFFFF01CF1824AF8300088F9F000881
67702 +:105F60008CA8008403E8C82B1720000203E020213E
67703 +:105F70008CA400840A000BEDAF8400088CA3010CF4
67704 +:105F80000A000BCBAF8300188D2C00188F860008F9
67705 +:105F90003C0D7FFF8F89002035A3FFFF018358242C
67706 +:105FA00024040001AF8B0010AD2000CCA3840004BA
67707 +:105FB0000A000BF9AF86000C8CCA00140A000BED26
67708 +:105FC000AF8A00088CA300C80A000C30AF83000819
67709 +:105FD0008F84002C8CAC00648C8D0014018D582BA8
67710 +:105FE00011600004000000008CA200640A000C3064
67711 +:105FF000AF8200088C8200140A000C30AF820008C7
67712 +:106000008F85000C27BDFFE0AFBF0018AFB10014B3
67713 +:1060100014A00007AFB000108F86002424020005F2
67714 +:1060200090C400003083003F106200B68F840020CF
67715 +:106030008F91000800A080218F8C00283C0508006B
67716 +:106040008CA53D708D8B000431663FFF00C5502B41
67717 +:106050005540000100C02821938D000411A0007359
67718 +:1060600000B0F82B8F98002024040034930F00BC5C
67719 +:1060700031EE000251C000012404003000A4C82BFE
67720 +:10608000172000D10000000000A4282300B0F82B46
67721 +:106090003C010800A4243D7C17E000680200202198
67722 +:1060A0003C0308008C633D6C0083102B54400001BE
67723 +:1060B000008018218F8800243C010800AC233D7427
67724 +:1060C000000048219104000D308300205060000141
67725 +:1060D0008F490E188F8300140123382B10E00059CC
67726 +:1060E000000000003C0408008C843D7400895821A5
67727 +:1060F000006B502B114000560090602B006930233C
67728 +:1061000000C020213C010800AC263D7412000003B1
67729 +:10611000241FFFFC1090008A32270003009FC82430
67730 +:106120003C010800AC393D743C010800A4203D92BC
67731 +:106130008F84000C120400078F830020AF910008A9
67732 +:10614000020020218C7100CCAF90000C26300001A1
67733 +:10615000AC7000CC3C0208008C423D748F8A001069
67734 +:10616000240700180082202301422823AF84000C5A
67735 +:1061700010800002AF850010240700108F86001CDD
67736 +:106180003C010800A0273D902407004090CC0085EA
67737 +:10619000318B00C0116700408F8D001414A00015D2
67738 +:1061A00000002021934A01098F420974314500FF04
67739 +:1061B0000002260224A300013090007F3071007F8E
67740 +:1061C0001230007A2407FF80A0C300833C09080036
67741 +:1061D0008D293D8C8F880024240D0002352C000869
67742 +:1061E0003C010800A02D3DD13C010800AC2C3D8CA9
67743 +:1061F00024040010910E000D31C6002010C00005CF
67744 +:1062000000801821240800013C010800AC283D74DE
67745 +:10621000348300018FBF00188FB100148FB00010BD
67746 +:106220000060102103E0000827BD00203C010800A9
67747 +:10623000A4203D7C13E0FF9A020020210A000C817B
67748 +:1062400000A020213C0408008C843D740090602B49
67749 +:106250001180FFAE000000003C0F080095EF3D7C70
67750 +:1062600001E4702101C6682B11A000072C820004F4
67751 +:106270003C1F60008FF954043338003F1700FFE5DE
67752 +:10628000240300422C8200041040FFA0240300429B
67753 +:106290000A000CDF8FBF0018152DFFC000000000A2
67754 +:1062A0008CDF00743C0380002405FF8003E3C825D5
67755 +:1062B000ACD9007490D80085240E0004240400108A
67756 +:1062C000330F003F01E54025A0C800858F880024DA
67757 +:1062D0003C010800A02E3DD1240300019106000DD1
67758 +:1062E00030C9002015200003000000003C03080016
67759 +:1062F0008C633D743C010800AC233D6C0A000CD655
67760 +:10630000000000008F8700108C88008400E8282B94
67761 +:1063100014A0000200E088218C910084240900016F
67762 +:10632000A38900048F440E18022028210E000B328E
67763 +:1063300002203021022080210A000C67AF82001465
67764 +:1063400000071823306600033C010800A4263D9294
67765 +:10635000122000058F8C0020918B00BC316A000454
67766 +:106360001540001524CD00043C0F080095EF3D9228
67767 +:1063700001E4702100AE302B50C0FF6E8F84000C02
67768 +:106380002C85000514A0FFA32403004230980003CD
67769 +:1063900017000002009818232483FFFC3C0108002A
67770 +:1063A000AC233D740A000CA30000000000A7582491
67771 +:1063B0000A000CCB016718263C010800A42D3D9271
67772 +:1063C0000A000D33000000003C010800AC203D74C1
67773 +:1063D0000A000CDE240300428F83001014600007C3
67774 +:1063E000000010218F88002424050005910600007C
67775 +:1063F00030C400FF108500030000000003E0000827
67776 +:1064000000000000910A0018314900FF000939C25C
67777 +:1064100014E0FFFA8F85001C3C04080094843D7C46
67778 +:106420003C0308008C633D943C1908008F393D748F
67779 +:106430003C0F080095EF3D920064C0218CAD0054E4
67780 +:106440000319702101CF6021018D58231960001DAF
67781 +:1064500000000000910E001C8F8C002C974B0E103A
67782 +:1064600031CD00FF8D850004016D30238D88000043
67783 +:1064700030CEFFFF000E510000AAC82100003821D5
67784 +:1064800001072021032A182B0083C021AD990004A5
67785 +:10649000AD980000918F000A01CF6821A18D000AFC
67786 +:1064A0008F88002C974B0E12A50B0008950A003818
67787 +:1064B00025490001A50900389107000D34E60008C0
67788 +:1064C000A106000D03E000080000000027BDFFE06A
67789 +:1064D000938700048F8F00248FAD00143C0E7FFF44
67790 +:1064E0008F89000C35C8FFFFAFBF001CAFB000188C
67791 +:1064F00001A8182491EA000D000717C03C1FBFFF38
67792 +:10650000006258252D2E00018F90001837F9FFFFEB
67793 +:106510003C1808008F183D943C0F080095EF3D8A09
67794 +:1065200001796824000E47803C07EFFF3C05F0FF2F
67795 +:1065300001A818253149002034E2FFFF34ACFFFFE9
67796 +:106540000310582327A500102406000225EA0002A4
67797 +:1065500000621824008080211520000200004021E4
67798 +:106560008F480E1CA7AA0012056000372407000000
67799 +:1065700030FF00FF001FCF008F8B001C00793825F3
67800 +:10658000AFA70014916F00853C08080091083D9169
67801 +:106590003C18DFFF31EE00C0370AFFFF000E182B5A
67802 +:1065A0003C1F080097FF3D8400EA6824A3A800115F
67803 +:1065B0000003174001A248258FB90010AFA90014AD
67804 +:1065C0003C0A0800914A3D93A7BF00168FA800140B
67805 +:1065D000032CC0243C0B01003C0F0FFF030B1825BC
67806 +:1065E0003147000335EEFFFF010C68240007160059
67807 +:1065F000006EF8243C09700001A2C82503E9582563
67808 +:10660000AFB90014AFAB00100E000076A3A00015C8
67809 +:106610008F8C0024260200089186000D30C40020D3
67810 +:10662000108000068FBF001C3C05080094A53D802B
67811 +:1066300024B0FFFF3C010800A4303D808FB000185B
67812 +:1066400003E0000827BD00208F9800140118502B8C
67813 +:106650005540FFC7240700010A000DB630FF00FFB8
67814 +:106660009382000427BDFFE0AFBF00181040000F69
67815 +:10667000008050218F880024240B00058F8900089A
67816 +:10668000910700008F8400200100282130E3003FA3
67817 +:106690008F86002C106B000800003821AFA9001075
67818 +:1066A0000E00040EAFAA0014A38000048FBF0018D0
67819 +:1066B00003E0000827BD00208D1900183C0F0800DA
67820 +:1066C0008DEF3D748F9800103C027FFF8D08001401
67821 +:1066D000345FFFFF033F682401F8702101AE60239F
67822 +:1066E00001883821AFA900100E00040EAFAA0014D3
67823 +:1066F0000A000E04A38000048F8700243C050800D4
67824 +:1067000094A53D923C0208008C423D8C90E6000D21
67825 +:106710000005240030C300201060002C00444025F8
67826 +:106720008F85001C00006021240B000190A30085D0
67827 +:1067300000004821240A00013C0F800035EE007063
67828 +:106740008DC70000AF8700308F5801780700FFFE2B
67829 +:106750003C038000347900708F3800003C0508004D
67830 +:106760008CA500743C0D08008DAD007003077823E4
67831 +:1067700000AF38210000102100EF302B01A22021B2
67832 +:10678000008618213C010800AC2700743C01080079
67833 +:10679000AC230070AF4B01483C1908008F393D9481
67834 +:1067A000A7490144A74A0146AF59014C3C0B0800D8
67835 +:1067B000916B3D91A34B0152AF4801543C0810002E
67836 +:1067C000A74C015803E00008AF4801788F4B0E1C1E
67837 +:1067D0003C0A08008D4A3D7497490E16974D0E14D9
67838 +:1067E00001456021312AFFFF0A000E2731A9FFFF72
67839 +:1067F0008F8300249064000D308200201040002917
67840 +:10680000000000000000482100005021000040214D
67841 +:106810003C07800034EB00708D670000AF870030CC
67842 +:106820008F4C01780580FFFE3C0D800035AC007078
67843 +:106830008D8B00003C0508008CA500743C0408000A
67844 +:106840008C8400700167302300A67821000010219D
67845 +:1068500001E6C82B0082C021031970213C01080009
67846 +:10686000AC2F00743C010800AC2E0070AF49014809
67847 +:106870003C0D08008DAD3D94A7480144240900401B
67848 +:10688000A74A01463C081000240AFF91AF4D014C75
67849 +:10689000A34A0152AF490154A740015803E0000840
67850 +:1068A000AF4801788F490E1897460E1297450E1083
67851 +:1068B00030CAFFFF0A000E5D30A8FFFF8F8300245F
67852 +:1068C00027BDFFF89064000D308200201040003A90
67853 +:1068D00000000000240B000100004821240A0001F0
67854 +:1068E0003C088000350700708CE30000AF83003067
67855 +:1068F0008F4C01780580FFFE3C0E80003C040800B0
67856 +:1069000090843DD035C700708CEC00003C05080039
67857 +:106910008CA50074A3A400033C1908008F390070F3
67858 +:106920008FAD00000183302300A638210000102124
67859 +:106930000322782100E6C02B01F8602101AE40253A
67860 +:10694000AFA800003C010800AC2700743C0108001F
67861 +:10695000AC2C00709346010A3C04080090843DD1A1
67862 +:10696000A3A00002A3A600018FA300003C0580FFA6
67863 +:106970003099007F34A2FFFF006278240019C6001E
67864 +:1069800001F87025240D3000AF4E014C27BD0008E2
67865 +:10699000AF4D0154A7400158AF4B0148A7490144EE
67866 +:1069A000A74A01463C091000240AFF80A34A01526D
67867 +:1069B00003E00008AF4901788F4B0E1897460E127E
67868 +:1069C00097450E1030CAFFFF0A000E9130A9FFFF55
67869 +:1069D0008F85001C2402008090A40085308300C0B5
67870 +:1069E000106200058F8600208F8800088F87000CBA
67871 +:1069F000ACC800C8ACC700C403E000080000000039
67872 +:106A00003C0A0800254A39543C09080025293A2047
67873 +:106A10003C08080025082DD43C07080024E73B3437
67874 +:106A20003C06080024C637C43C05080024A5353CB4
67875 +:106A30003C040800248431643C0308002463385C6F
67876 +:106A40003C020800244236303C010800AC2A3D508C
67877 +:106A50003C010800AC293D4C3C010800AC283D48F5
67878 +:106A60003C010800AC273D543C010800AC263D64C5
67879 +:106A70003C010800AC253D5C3C010800AC243D58BD
67880 +:106A80003C010800AC233D683C010800AC223D609D
67881 +:086A900003E000080000000013
67882 +:00000001FF
67883 diff --git a/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex b/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex
67884 new file mode 100644
67885 index 0000000..43d7c4f
67886 --- /dev/null
67887 +++ b/firmware/bnx2/bnx2-mips-09-6.2.1b.fw.ihex
67888 @@ -0,0 +1,6496 @@
67889 +:10000000080001180800000000005594000000C816
67890 +:1000100000000000000000000000000008005594EF
67891 +:10002000000000380000565C080000A00800000036
67892 +:100030000000574400005694080059200000008436
67893 +:100040000000ADD808005744000001C00000AE5CBD
67894 +:100050000800321008000000000092580000B01C98
67895 +:10006000000000000000000000000000080092589E
67896 +:100070000000033C000142740800049008000400E2
67897 +:10008000000012FC000145B000000000000000006C
67898 +:1000900000000000080016FC00000004000158AC3D
67899 +:1000A000080000A80800000000003D00000158B052
67900 +:1000B00000000000000000000000000008003D00FB
67901 +:1000C00000000030000195B00A000046000000006A
67902 +:1000D000000000000000000D636F6D362E322E31DF
67903 +:1000E00062000000060201020000000000000003A0
67904 +:1000F000000000C800000032000000030000000003
67905 +:1001000000000000000000000000000000000000EF
67906 +:1001100000000010000001360000EA600000000549
67907 +:1001200000000000000000000000000000000008C7
67908 +:1001300000000000000000000000000000000000BF
67909 +:1001400000000000000000000000000000000000AF
67910 +:10015000000000000000000000000000000000009F
67911 +:10016000000000020000000000000000000000008D
67912 +:10017000000000000000000000000000000000007F
67913 +:10018000000000000000000000000010000000005F
67914 +:10019000000000000000000000000000000000005F
67915 +:1001A000000000000000000000000000000000004F
67916 +:1001B000000000000000000000000000000000003F
67917 +:1001C000000000000000000000000000000000002F
67918 +:1001D000000000000000000000000000000000001F
67919 +:1001E0000000000010000003000000000000000DEF
67920 +:1001F0000000000D3C020800244256083C030800A1
67921 +:1002000024635754AC4000000043202B1480FFFDB2
67922 +:10021000244200043C1D080037BD9FFC03A0F021D0
67923 +:100220003C100800261001183C1C0800279C5608AA
67924 +:100230000E000256000000000000000D27BDFFB4B4
67925 +:10024000AFA10000AFA20004AFA30008AFA4000C50
67926 +:10025000AFA50010AFA60014AFA70018AFA8001CF0
67927 +:10026000AFA90020AFAA0024AFAB0028AFAC002C90
67928 +:10027000AFAD0030AFAE0034AFAF0038AFB8003C28
67929 +:10028000AFB90040AFBC0044AFBF00480E001544FA
67930 +:10029000000000008FBF00488FBC00448FB90040B1
67931 +:1002A0008FB8003C8FAF00388FAE00348FAD003078
67932 +:1002B0008FAC002C8FAB00288FAA00248FA90020C0
67933 +:1002C0008FA8001C8FA700188FA600148FA5001000
67934 +:1002D0008FA4000C8FA300088FA200048FA1000040
67935 +:1002E00027BD004C3C1B60108F7A5030377B502864
67936 +:1002F00003400008AF7A00008F82002427BDFFE092
67937 +:10030000AFB00010AFBF0018AFB100148C42000CAA
67938 +:100310003C1080008E110100104000348FBF001887
67939 +:100320000E000D84000000008F85002024047FFF54
67940 +:100330000091202BACB100008E030104960201084D
67941 +:1003400000031C003042FFFF00621825ACA300042C
67942 +:100350009202010A96030114304200FF3063FFFF4E
67943 +:100360000002140000431025ACA200089603010C03
67944 +:100370009602010E00031C003042FFFF00621825A8
67945 +:10038000ACA3000C960301109602011200031C009E
67946 +:100390003042FFFF00621825ACA300108E02011846
67947 +:1003A000ACA200148E02011CACA20018148000083C
67948 +:1003B0008F820024978200003C0420050044182509
67949 +:1003C00024420001ACA3001C0A0000C6A782000062
67950 +:1003D0003C0340189442001E00431025ACA2001CB0
67951 +:1003E0000E000DB8240400018FBF00188FB1001457
67952 +:1003F0008FB000100000102103E0000827BD00208E
67953 +:100400003C0780008CE202B834E50100044100089A
67954 +:10041000240300013C0208008C42006024420001D9
67955 +:100420003C010800AC22006003E0000800601021DD
67956 +:100430003C0208008C42005C8CA4002094A30016AF
67957 +:100440008CA6000494A5000E24420001ACE40280B6
67958 +:100450002463FFFC3C010800AC22005C3C0210005D
67959 +:10046000A4E30284A4E5028600001821ACE6028819
67960 +:10047000ACE202B803E000080060102127BDFFE0F5
67961 +:100480003C028000AFB0001034420100AFBF001C3E
67962 +:10049000AFB20018AFB100148C43000094450008BF
67963 +:1004A0002462FE002C42038110400003000381C23D
67964 +:1004B0000A00010226100004240201001462000553
67965 +:1004C0003C1180003C02800890420004305000FF44
67966 +:1004D0003C11800036320100964300143202000FB6
67967 +:1004E00000021500004310253C0308008C63004403
67968 +:1004F00030A40004AE220080246300013C01080007
67969 +:10050000AC2300441080000730A200028FBF001C03
67970 +:100510008FB200188FB100148FB000100A0000CE07
67971 +:1005200027BD00201040002D0000182130A20080BF
67972 +:1005300010400005362200708E44001C0E000C672F
67973 +:10054000240500A0362200708C4400008F82000C2D
67974 +:10055000008210232C43012C10600004AF82001095
67975 +:10056000240300010A000145AF84000C8E42000400
67976 +:100570003C036020AF84000CAC6200143C02080015
67977 +:100580008C42005850400015000018218C62000475
67978 +:10059000240301FE304203FF144300100000182121
67979 +:1005A0002E020004104000032E0200080A00014041
67980 +:1005B0000000802114400003000000000A000140F8
67981 +:1005C0002610FFF90000000D2402000202021004B0
67982 +:1005D0003C036000AC626914000018218FBF001C4E
67983 +:1005E0008FB200188FB100148FB00010006010217E
67984 +:1005F00003E0000827BD00203C0480008C8301003C
67985 +:1006000024020100506200033C0280080000000D3B
67986 +:100610003C02800890430004000010213063000F6A
67987 +:1006200000031D0003E00008AC8300800004188074
67988 +:100630002782FF9C00621821000410C00044102390
67989 +:100640008C640000000210C03C030800246356E4E0
67990 +:10065000004310213C038000AC64009003E00008DC
67991 +:10066000AF8200243C0208008C42011410400019A3
67992 +:100670003084400030A2007F000231C03C02020002
67993 +:100680001080001400A218253C026020AC43001426
67994 +:100690003C0408008C8456B83C0308008C630110AD
67995 +:1006A0003C02800024050900AC4500200086202182
67996 +:1006B000246300013C028008AC4400643C01080053
67997 +:1006C000AC2301103C010800AC2456B803E000083C
67998 +:1006D000000000003C02602003E00008AC4500146C
67999 +:1006E00003E000080000102103E0000800001021D2
68000 +:1006F00030A2000810400008240201003C0208005B
68001 +:100700008C42010C244200013C010800AC22010C87
68002 +:1007100003E0000800000000148200080000000050
68003 +:100720003C0208008C4200FC244200013C0108000D
68004 +:10073000AC2200FC0A0001A330A200203C02080009
68005 +:100740008C420084244200013C010800AC22008459
68006 +:1007500030A200201040000830A200103C02080027
68007 +:100760008C420108244200013C010800AC2201082F
68008 +:1007700003E0000800000000104000080000000036
68009 +:100780003C0208008C420104244200013C010800A4
68010 +:10079000AC22010403E00008000000003C02080055
68011 +:1007A0008C420100244200013C010800AC220100FF
68012 +:1007B00003E000080000000027BDFFE0AFB1001417
68013 +:1007C0003C118000AFB20018AFBF001CAFB00010EA
68014 +:1007D0003632010096500008320200041040000733
68015 +:1007E000320300028FBF001C8FB200188FB10014BB
68016 +:1007F0008FB000100A0000CE27BD00201060000B53
68017 +:10080000020028218E2401000E00018A0000000051
68018 +:100810003202008010400003240500A10E000C6786
68019 +:100820008E44001C0A0001E3240200018E2301040F
68020 +:100830008F82000810430006020028218E24010048
68021 +:100840000E00018A000000008E220104AF82000821
68022 +:10085000000010218FBF001C8FB200188FB1001450
68023 +:100860008FB0001003E0000827BD00202C82000498
68024 +:1008700014400002000018212483FFFD240200021E
68025 +:10088000006210043C03600003E00008AC626914DD
68026 +:1008900027BDFFE0AFBF001CAFB20018AFB100141E
68027 +:1008A000AFB000103C048000948201083043700017
68028 +:1008B000240220001062000A2862200154400052E5
68029 +:1008C0008FBF001C24024000106200482402600018
68030 +:1008D0001062004A8FBF001C0A0002518FB200183C
68031 +:1008E00034820100904300098C5000189451000C90
68032 +:1008F000240200091062001C0000902128620009F7
68033 +:10090000144000218F8200242402000A5062001249
68034 +:10091000323100FF2402000B1062000F00000000C3
68035 +:100920002402000C146200188F8200243C0208008C
68036 +:100930008C4256B824030900AC83002000501021DB
68037 +:100940003C038008AC6200643C010800AC2256B84D
68038 +:100950000A0002508FBF001C0E0001E900102602A1
68039 +:100960000A0002308F8200240E0001E900102602E6
68040 +:100970003C0380089462001A8C72000C3042FFFF26
68041 +:10098000020280258F8200248C42000C5040001E01
68042 +:100990008FBF001C0E000D84000000003C02800090
68043 +:1009A00034420100944300088F82002400031C009D
68044 +:1009B0009444001E8F82002000641825AC50000073
68045 +:1009C00024040001AC510004AC520008AC40000CFF
68046 +:1009D000AC400010AC400014AC4000180E000DB844
68047 +:1009E000AC43001C0A0002508FBF001C0E000440E4
68048 +:1009F000000000000A0002508FBF001C0E000C9F78
68049 +:100A0000000000008FBF001C8FB200188FB10014CF
68050 +:100A10008FB000100000102103E0000827BD002067
68051 +:100A200027BDFFD8AFB400203C036010AFBF002447
68052 +:100A3000AFB3001CAFB20018AFB10014AFB00010DC
68053 +:100A40008C6450002402FF7F3C1408002694563822
68054 +:100A5000008220243484380CAC6450003C028000B6
68055 +:100A6000240300370E0014B0AC4300083C07080014
68056 +:100A700024E70618028010212404001D2484FFFFAF
68057 +:100A8000AC4700000481FFFD244200043C02080042
68058 +:100A9000244207C83C010800AC2256403C02080032
68059 +:100AA000244202303C030800246306203C04080072
68060 +:100AB000248403B43C05080024A506F03C06080085
68061 +:100AC00024C62C9C3C010800AC2256803C02080045
68062 +:100AD000244205303C010800AC2756843C01080044
68063 +:100AE000AC2656943C010800AC23569C3C010800FF
68064 +:100AF000AC2456A03C010800AC2556A43C010800DB
68065 +:100B0000AC2256A83C010800AC23563C3C0108002E
68066 +:100B1000AC2456443C010800AC2056603C0108005F
68067 +:100B2000AC2556643C010800AC2056703C0108001E
68068 +:100B3000AC27567C3C010800AC2656903C010800CE
68069 +:100B4000AC2356980E00056E00000000AF80000C2C
68070 +:100B50003C0280008C5300008F8300043C0208009C
68071 +:100B60008C420020106200213262000700008821C0
68072 +:100B70002792FF9C3C100800261056E43C02080017
68073 +:100B80008C42002024050001022518040043202483
68074 +:100B90008F820004004310245044000C26310001D1
68075 +:100BA00010800008AF9000248E4300003C028000BB
68076 +:100BB000AC4300900E000D4BAE05000C0A0002C1C4
68077 +:100BC00026310001AE00000C263100012E22000269
68078 +:100BD000261000381440FFE9265200043C020800A9
68079 +:100BE0008C420020AF820004326200071040FFD91F
68080 +:100BF0003C028000326200011040002D326200028F
68081 +:100C00003C0580008CA2010000002021ACA2002045
68082 +:100C10008CA301042C42078110400008ACA300A85B
68083 +:100C200094A2010824032000304270001443000302
68084 +:100C30003C02800890420005304400FF0E0001593C
68085 +:100C4000000000003C0280009042010B304300FF96
68086 +:100C50002C62001E54400004000310800E00018628
68087 +:100C60000A0002EC00000000005410218C42000039
68088 +:100C70000040F80900000000104000043C02800021
68089 +:100C80008C4301043C026020AC4300143C02080089
68090 +:100C90008C4200343C0440003C03800024420001AC
68091 +:100CA000AC6401383C010800AC220034326200021E
68092 +:100CB00010400010326200043C1080008E0201409F
68093 +:100CC000000020210E000159AE0200200E00038317
68094 +:100CD000000000003C024000AE0201783C02080027
68095 +:100CE0008C420038244200013C010800AC2200384C
68096 +:100CF000326200041040FF973C0280003C108000EC
68097 +:100D00008E020180000020210E000159AE02002059
68098 +:100D10008E03018024020F00546200073C02800809
68099 +:100D20008E0201883C0300E03042FFFF00431025A3
68100 +:100D30000A000328AE020080344200809042000086
68101 +:100D400024030050304200FF14430007000000005D
68102 +:100D50000E000362000000001440000300000000C9
68103 +:100D60000E000971000000003C0208008C42003CAB
68104 +:100D70003C0440003C03800024420001AC6401B804
68105 +:100D80003C010800AC22003C0A0002A33C028000A7
68106 +:100D90003C02900034420001008220253C02800089
68107 +:100DA000AC4400203C0380008C6200200440FFFE25
68108 +:100DB0000000000003E00008000000003C0280008A
68109 +:100DC000344300010083202503E00008AC440020E8
68110 +:100DD00027BDFFE0AFB10014AFB000100080882144
68111 +:100DE000AFBF00180E00033230B000FF8F83FF94B6
68112 +:100DF000022020219062002502028025A07000259B
68113 +:100E00008C7000183C0280000E00033D020280241A
68114 +:100E10001600000B8FBF00183C0480008C8201F884
68115 +:100E20000440FFFE348201C024030002AC510000E4
68116 +:100E3000A04300043C021000AC8201F88FBF0018F0
68117 +:100E40008FB100148FB0001003E0000827BD002010
68118 +:100E500027BDFFE83C028000AFBF00103442018094
68119 +:100E6000944300048C4400083063020010600005C5
68120 +:100E7000000028210E00100C000000000A0003787A
68121 +:100E8000240500013C02FF000480000700821824B2
68122 +:100E90003C02040014620004240500018F82FF94C8
68123 +:100EA00090420008240500018FBF001000A010210F
68124 +:100EB00003E0000827BD00188F82FF982405000179
68125 +:100EC000A040001A3C028000344201400A00034264
68126 +:100ED0008C4400008F85FF9427BDFFE0AFBF001C4E
68127 +:100EE000AFB20018AFB10014AFB0001090A2000074
68128 +:100EF000304400FF38830020388200300003182B74
68129 +:100F00000002102B0062182410600003240200501D
68130 +:100F1000148200A88FBF001C90A20005304200017F
68131 +:100F2000104000A48FBF001C3C02800034420140EE
68132 +:100F3000904200082443FFFF2C6200051040009EF1
68133 +:100F40008FB20018000310803C030800246355ACE6
68134 +:100F5000004310218C420000004000080000000007
68135 +:100F60003C028000345101400E0003328E24000008
68136 +:100F70008F92FF948E2200048E50000C1602000205
68137 +:100F800024020001AE42000C0E00033D8E2400003E
68138 +:100F90008E220004145000068FBF001C8FB2001870
68139 +:100FA0008FB100148FB000100A000F7827BD002009
68140 +:100FB0008E42000C0A000419000000003C0480006E
68141 +:100FC0003482014094A300108C4200043063FFFF80
68142 +:100FD0001443001C0000000024020001A4A2001021
68143 +:100FE0008C8202380441000F3C0380003C02003F29
68144 +:100FF0003448F0003C0760003C06FFC08CE22BBC8C
68145 +:1010000000461824004810240002130200031D8229
68146 +:10101000106200583C0280008C8202380440FFF7C6
68147 +:101020003C038000346201408C44000034620200C2
68148 +:10103000AC4400003C021000AC6202380A00043BE1
68149 +:101040008FBF001C94A200100A00041900000000C9
68150 +:10105000240200201482000F3C0280003C03800028
68151 +:1010600094A20012346301408C6300043042FFFFFD
68152 +:10107000146200050000000024020001A4A2001276
68153 +:101080000A0004028FBF001C94A200120A00041977
68154 +:1010900000000000345101400E0003328E24000095
68155 +:1010A0008F92FF948E230004964200123050FFFF6F
68156 +:1010B0001603000224020001A64200120E00033DA6
68157 +:1010C0008E2400008E220004160200068FBF001C32
68158 +:1010D0008FB200188FB100148FB000100A00037C8B
68159 +:1010E00027BD0020964200120A00041900000000EB
68160 +:1010F0003C03800094A20014346301408C6300041C
68161 +:101100003042FFFF14620008240200018FBF001C60
68162 +:101110008FB200188FB100148FB00010A4A2001479
68163 +:101120000A00146327BD002094A20014144000217B
68164 +:101130008FBF001C0A000435000000003C03800043
68165 +:1011400094A20016346301408C6300043042FFFF18
68166 +:101150001462000D240200018FBF001C8FB2001822
68167 +:101160008FB100148FB00010A4A200160A000B1457
68168 +:1011700027BD00209442007824420004A4A200105D
68169 +:101180000A00043B8FBF001C94A200162403000138
68170 +:101190003042FFFF144300078FBF001C3C020800D1
68171 +:1011A0008C420070244200013C010800AC22007017
68172 +:1011B0008FBF001C8FB200188FB100148FB00010C9
68173 +:1011C00003E0000827BD002027BDFFD8AFB20018FC
68174 +:1011D0008F92FF94AFB10014AFBF0020AFB3001CDB
68175 +:1011E000AFB000103C028000345101008C5001006F
68176 +:1011F0009242000092230009304400FF2402001FA5
68177 +:10120000106200AB28620020104000192402003850
68178 +:101210002862000A1040000D2402000B286200081A
68179 +:101220001040002E8F820024046001042862000216
68180 +:101230001440002A8F820024240200061062002637
68181 +:101240008FBF00200A00055F8FB3001C1062006092
68182 +:101250002862000B144000FA8FBF00202402000E09
68183 +:10126000106200788F8200240A00055F8FB3001C93
68184 +:10127000106200D2286200391040000A2402008067
68185 +:1012800024020036106200E528620037104000C3D7
68186 +:1012900024020035106200D98FBF00200A00055FCC
68187 +:1012A0008FB3001C1062002D2862008110400006E0
68188 +:1012B000240200C824020039106200C98FBF002038
68189 +:1012C0000A00055F8FB3001C106200A28FBF0020D0
68190 +:1012D0000A00055F8FB3001C8F8200248C42000C33
68191 +:1012E000104000D78FBF00200E000D8400000000CA
68192 +:1012F0003C038000346301008C6200008F85002075
68193 +:10130000946700089466000CACA200008C64000492
68194 +:101310008F82002400063400ACA400049448001E10
68195 +:101320008C62001800073C0000E83825ACA20008D9
68196 +:101330008C62001C24040001ACA2000C9062000A24
68197 +:1013400000C23025ACA60010ACA00014ACA0001860
68198 +:10135000ACA7001C0A00051D8FBF00208F8200244F
68199 +:101360008C42000C104000B68FBF00200E000D8490
68200 +:10137000000000008F820024962400089625000CAF
68201 +:101380009443001E000422029626000E8F82002045
68202 +:10139000000426000083202500052C003C0300806B
68203 +:1013A00000A6282500832025AC400000AC400004A6
68204 +:1013B000AC400008AC40000CAC450010AC40001440
68205 +:1013C000AC400018AC44001C0A00051C24040001B9
68206 +:1013D0009622000C14400018000000009242000504
68207 +:1013E0003042001014400014000000000E000332D0
68208 +:1013F0000200202192420005020020213442001008
68209 +:101400000E00033DA242000592420000240300208A
68210 +:10141000304200FF10430089020020218FBF0020CE
68211 +:101420008FB3001C8FB200188FB100148FB0001062
68212 +:101430000A00107527BD00280000000D0A00055E97
68213 +:101440008FBF00208C42000C1040007D8FBF002019
68214 +:101450000E000D84000000008E2200048F84002006
68215 +:101460009623000CAC8200003C0280089445002CBE
68216 +:101470008F82002400031C0030A5FFFF9446001E4D
68217 +:101480003C02400E0065182500C23025AC830004E4
68218 +:10149000AC800008AC80000CAC800010AC80001464
68219 +:1014A000AC800018AC86001C0A00051C2404000156
68220 +:1014B0000E000332020020218F93FF9802002021AA
68221 +:1014C0000E00033DA660000C020020210E00034226
68222 +:1014D000240500018F8200248C42000C104000582B
68223 +:1014E0008FBF00200E000D84000000009622000C2B
68224 +:1014F0008F83002000021400AC700000AC62000476
68225 +:10150000AC6000088E4400388F820024AC64000C6C
68226 +:101510008E46003C9445001E3C02401FAC66001005
68227 +:1015200000A228258E62000424040001AC6200148D
68228 +:10153000AC600018AC65001C8FBF00208FB3001C8E
68229 +:101540008FB200188FB100148FB000100A000DB8D0
68230 +:1015500027BD0028240200201082003A8FB3001C0F
68231 +:101560000E000F5E00000000104000358FBF00200D
68232 +:101570003C0480008C8201F80440FFFE348201C0EC
68233 +:1015800024030002AC500000A04300043C02100001
68234 +:10159000AC8201F80A00055E8FBF00200200202106
68235 +:1015A0008FBF00208FB3001C8FB200188FB10014C2
68236 +:1015B0008FB000100A000EA727BD00289625000C4A
68237 +:1015C000020020218FBF00208FB3001C8FB20018B3
68238 +:1015D0008FB100148FB000100A000ECC27BD002878
68239 +:1015E000020020218FB3001C8FB200188FB10014AD
68240 +:1015F0008FB000100A000EF727BD00289225000DBD
68241 +:10160000020020218FB3001C8FB200188FB100148C
68242 +:101610008FB000100A000F4827BD002802002021CB
68243 +:101620008FBF00208FB3001C8FB200188FB1001441
68244 +:101630008FB000100A000F1F27BD00288FBF0020A9
68245 +:101640008FB3001C8FB200188FB100148FB0001040
68246 +:1016500003E0000827BD00283C0580008CA202782A
68247 +:101660000440FFFE34A2024024030002AC44000008
68248 +:10167000A04300043C02100003E00008ACA2027882
68249 +:10168000A380001803E00008A38000193C03800039
68250 +:101690008C6202780440FFFE8F82001CAC62024024
68251 +:1016A00024020002A06202443C02100003E0000891
68252 +:1016B000AC6202783C02600003E000088C425404F3
68253 +:1016C0009083003024020005008040213063003FF9
68254 +:1016D0000000482114620005000050219082004C57
68255 +:1016E0009483004E304900FF306AFFFFAD00000CCC
68256 +:1016F000AD000010AD000024950200148D05001C03
68257 +:101700008D0400183042FFFF004910230002110031
68258 +:10171000000237C3004038210086202300A2102B8E
68259 +:101720000082202300A72823AD05001CAD0400186B
68260 +:10173000A5090014A5090020A50A001603E0000869
68261 +:10174000A50A002203E000080000000027BDFFD822
68262 +:10175000AFB200183C128008AFB40020AFB3001C39
68263 +:10176000AFB10014AFBF0024AFB00010365101007C
68264 +:101770003C0260008C4254049222000C3C1408008D
68265 +:10178000929400F7304300FF2402000110620032FF
68266 +:101790000080982124020002146200353650008037
68267 +:1017A0000E00143D000000009202004C2403FF8054
68268 +:1017B0003C0480003042007F000211C024420240FD
68269 +:1017C0000262102100431824AC8300949245000863
68270 +:1017D0009204004C3042007F3C03800614850007D1
68271 +:1017E000004380212402FFFFA22200112402FFFFF8
68272 +:1017F000A62200120A0005D22402FFFF9602002052
68273 +:10180000A222001196020022A62200128E020024BB
68274 +:101810003C048008AE2200143485008090A2004C65
68275 +:1018200034830100A06200108CA2003CAC6200185E
68276 +:101830008C820068AC6200F48C820064AC6200F0C0
68277 +:101840008C82006CAC6200F824020001A0A2006847
68278 +:101850000A0005EE3C0480080E001456000000004B
68279 +:1018600036420080A04000680A0005EE3C04800873
68280 +:10187000A2000068A20000690A0006293C02800854
68281 +:10188000348300808C62003834850100AC62006CC7
68282 +:1018900024020001A062006990A200D59083000894
68283 +:1018A000305100FF3072007F12320019001111C058
68284 +:1018B00024420240026210212403FF8000431824C6
68285 +:1018C0003C048000AC8300943042007F3C038006DF
68286 +:1018D000004380218E02000C1040000D02002021E8
68287 +:1018E0000E00057E0000000026220001305100FF9E
68288 +:1018F0009203003C023410260002102B0002102339
68289 +:101900003063007F022288240A0005F8A203003C0D
68290 +:101910003C088008350401008C8200E03507008017
68291 +:10192000ACE2003C8C8200E0AD02000090E5004C8F
68292 +:10193000908600D590E3004C908400D52402FF806F
68293 +:1019400000A228243063007F308400FF00A62825F1
68294 +:101950000064182A1060000230A500FF38A500803E
68295 +:10196000A0E5004CA10500093C0280089043000E50
68296 +:10197000344400803C058000A043000A8C8300189A
68297 +:101980003C027FFF3442FFFF00621824AC83001842
68298 +:101990008CA201F80440FFFE00000000ACB301C0BF
68299 +:1019A0008FBF00248FB400208FB3001C8FB20018AB
68300 +:1019B0008FB100148FB0001024020002A0A201C455
68301 +:1019C00027BD00283C02100003E00008ACA201F88B
68302 +:1019D00090A2000024420001A0A200003C030800E5
68303 +:1019E0008C6300F4304200FF144300020080302179
68304 +:1019F000A0A0000090A200008F84001C000211C073
68305 +:101A00002442024024830040008220212402FF80DF
68306 +:101A1000008220243063007F3C02800A006218218B
68307 +:101A20003C028000AC44002403E00008ACC300008A
68308 +:101A300094820006908300058C85000C8C86001033
68309 +:101A40008C8700188C88001C8C8400203C010800C6
68310 +:101A5000A42256C63C010800A02356C53C0108003C
68311 +:101A6000AC2556CC3C010800AC2656D03C01080001
68312 +:101A7000AC2756D83C010800AC2856DC3C010800D5
68313 +:101A8000AC2456E003E00008000000003C0280089F
68314 +:101A9000344201008C4400343C038000346504006F
68315 +:101AA000AC6400388C420038AF850028AC62003C42
68316 +:101AB0003C020005AC6200300000000000000000A5
68317 +:101AC00003E00008000000003C020006308400FF34
68318 +:101AD000008220253C028000AC4400300000000061
68319 +:101AE00000000000000000003C0380008C62000049
68320 +:101AF000304200101040FFFD3462040003E0000893
68321 +:101B0000AF82002894C200003C080800950800CA73
68322 +:101B100030E7FFFF0080482101021021A4C200002D
68323 +:101B200094C200003042FFFF00E2102B544000013D
68324 +:101B3000A4C7000094A200003C0308008C6300CC02
68325 +:101B400024420001A4A2000094A200003042FFFF42
68326 +:101B5000144300073C0280080107102BA4A00000DA
68327 +:101B60005440000101003821A4C700003C02800855
68328 +:101B7000344601008CC3002894A200003C0480007D
68329 +:101B80003042FFFE000210C000621021AC82003C17
68330 +:101B90008C82003C006218231860000400000000E2
68331 +:101BA0008CC200240A0006BA244200018CC2002420
68332 +:101BB000AC8200383C020050344200103C038000EC
68333 +:101BC000AC620030000000000000000000000000D7
68334 +:101BD0008C620000304200201040FFFD0000000039
68335 +:101BE00094A200003C04800030420001000210C0BA
68336 +:101BF000004410218C430400AD2300008C420404F7
68337 +:101C0000AD2200043C02002003E00008AC8200305A
68338 +:101C100027BDFFE0AFB20018AFB10014AFB00010A5
68339 +:101C2000AFBF001C94C2000000C080213C1208001D
68340 +:101C3000965200C624420001A6020000960300004E
68341 +:101C400094E2000000E03021144300058FB1003021
68342 +:101C50000E00068F024038210A0006F10000000045
68343 +:101C60008C8300048C82000424420040046100073D
68344 +:101C7000AC8200048C8200040440000400000000D8
68345 +:101C80008C82000024420001AC8200009602000019
68346 +:101C90003042FFFF50520001A600000096220000D3
68347 +:101CA00024420001A62200003C02800834420100C8
68348 +:101CB000962300009442003C144300048FBF001C94
68349 +:101CC00024020001A62200008FBF001C8FB2001862
68350 +:101CD0008FB100148FB0001003E0000827BD002072
68351 +:101CE00027BDFFE03C028008AFBF0018344201006E
68352 +:101CF0008C4800343C03800034690400AC68003830
68353 +:101D00008C42003830E700FFAF890028AC62003C0D
68354 +:101D10003C020005AC620030000000000000000042
68355 +:101D200000000000000000000000000000000000B3
68356 +:101D30008C82000C8C82000C97830016AD22000070
68357 +:101D40008C82001000604021AD2200048C820018BB
68358 +:101D5000AD2200088C82001CAD22000C8CA2001465
68359 +:101D6000AD2200108C820020AD220014908200056C
68360 +:101D7000304200FF00021200AD2200188CA20018B1
68361 +:101D8000AD22001C8CA2000CAD2200208CA2001001
68362 +:101D9000AD2200248CA2001CAD2200288CA20020C1
68363 +:101DA000AD22002C3402FFFFAD260030AD20003400
68364 +:101DB000506200013408FFFFAD28003850E00011E8
68365 +:101DC0003C0280083C048008348401009482005066
68366 +:101DD0003042FFFFAD22003C9483004494850044D0
68367 +:101DE000240200013063FFFF000318C200641821C1
68368 +:101DF0009064006430A5000700A210040A00075C8C
68369 +:101E00000044102534420100AD20003C94430044BE
68370 +:101E1000944400443063FFFF000318C2006218219D
68371 +:101E200030840007906500642402000100821004E1
68372 +:101E30000002102700451024A0620064000000008A
68373 +:101E400000000000000000003C0200063442004098
68374 +:101E50003C038000AC620030000000000000000085
68375 +:101E6000000000008C620000304200101040FFFDB6
68376 +:101E70003C06800834C201503463040034C7014A70
68377 +:101E800034C4013434C5014034C60144AFA200104B
68378 +:101E90000E0006D2AF8300288FBF001803E00008B1
68379 +:101EA00027BD00208F8300143C0608008CC600E884
68380 +:101EB0008F82001C30633FFF000319800046102111
68381 +:101EC000004310212403FF80004318243C068000B7
68382 +:101ED000ACC300283042007F3C03800C004330211B
68383 +:101EE00090C2000D30A500FF0000382134420010E0
68384 +:101EF000A0C2000D8F8900143C028008344201000A
68385 +:101F00009443004400091382304800032402000176
68386 +:101F1000A4C3000E1102000B2902000210400005AC
68387 +:101F2000240200021100000C240300010A0007A48F
68388 +:101F30000000182111020006000000000A0007A49A
68389 +:101F4000000018218CC2002C0A0007A424430001C1
68390 +:101F50008CC20014244300018CC200180043102BD3
68391 +:101F60005040000A240700012402002714A20003A5
68392 +:101F70003C0380080A0007B1240700013463010014
68393 +:101F80009462004C24420001A462004C00091382B8
68394 +:101F9000304300032C620002104000090080282119
68395 +:101FA000146000040000000094C200340A0007C15D
68396 +:101FB0003046FFFF8CC600380A0007C10080282188
68397 +:101FC000000030213C040800248456C00A000706A3
68398 +:101FD0000000000027BDFF90AFB60068AFB50064F9
68399 +:101FE000AFB40060AFB3005CAFB20058AFB1005403
68400 +:101FF000AFBF006CAFB000508C9000000080B021EB
68401 +:102000003C0208008C4200E8960400328F83001CDA
68402 +:102010002414FF8030843FFF0062182100042180D7
68403 +:1020200000641821007410243C13800000A090214B
68404 +:1020300090A50000AE620028920400323C02800CA1
68405 +:102040003063007F00628821308400C02402004099
68406 +:10205000148200320000A8218E3500388E2200182C
68407 +:102060001440000224020001AE2200189202003C3B
68408 +:10207000304200201440000E8F83001C000511C068
68409 +:102080002442024000621821306400783C02008043
68410 +:102090000082202500741824AE630800AE64081086
68411 +:1020A0008E2200188E03000800431021AE22001873
68412 +:1020B0008E22002C8E230018244200010062182B6F
68413 +:1020C0001060004300000000924200002442000122
68414 +:1020D000A24200003C0308008C6300F4304200FF81
68415 +:1020E00050430001A2400000924200008F84001C77
68416 +:1020F000000211C024420240248300403063007F6C
68417 +:10210000008220213C02800A0094202400621821D1
68418 +:10211000AE6400240A0008D2AEC30000920300326D
68419 +:102120002402FFC000431024304200FF1440000589
68420 +:1021300024020001AE220018962200340A00084250
68421 +:102140003055FFFF8E22001424420001AE220018F9
68422 +:102150009202003000021600000216030441001C27
68423 +:10216000000000009602003227A400100080282101
68424 +:10217000A7A20016960200320000302124070001B9
68425 +:102180003042FFFFAF8200140E000706AFA0001C14
68426 +:10219000960200328F83001C3C0408008C8400E807
68427 +:1021A00030423FFF000211800064182100621821B4
68428 +:1021B00000741024AE62002C3063007F3C02800E5D
68429 +:1021C000006218219062000D3042007FA062000D75
68430 +:1021D0009222000D304200105040007892420000E0
68431 +:1021E0003C028008344401009482004C8EC30000FD
68432 +:1021F0003C130800967300C62442FFFFA482004CE3
68433 +:10220000946200329623000E3054FFFF3070FFFFBF
68434 +:102210003C0308008C6300D000701807A7A30038A7
68435 +:102220009482003E3063FFFF3042FFFF14620007DC
68436 +:10223000000000008C8200303C038000244200300B
68437 +:10224000AC62003C0A00086A8C82002C9482004038
68438 +:102250003042FFFF5462000927A400408C820038FE
68439 +:102260003C03800024420030AC62003C8C8200348D
68440 +:10227000AC6200380A0008793C03800027A50038CA
68441 +:1022800027A60048026038210E00068FA7A000484C
68442 +:102290008FA300403C02800024630030AC43003830
68443 +:1022A0008FA30044AC43003C3C0380003C0200058B
68444 +:1022B000AC6200303C028008344401009482004249
68445 +:1022C000346304003042FFFF0202102B1440000769
68446 +:1022D000AF8300289482004E9483004202021021B2
68447 +:1022E000004310230A00088F3043FFFF9483004E01
68448 +:1022F00094820042026318210050102300621823C8
68449 +:102300003063FFFF3C028008344401009482003CAB
68450 +:102310003042FFFF14430003000000000A00089F42
68451 +:10232000240300019482003C3042FFFF0062102B26
68452 +:10233000144000058F8200289482003C0062102324
68453 +:102340003043FFFF8F820028AC550000AC400004F2
68454 +:10235000AC540008AC43000C3C02000634420010B0
68455 +:102360003C038000AC620030000000000000000070
68456 +:10237000000000008C620000304200101040FFFDA1
68457 +:102380003C04800834840100001018C20064182145
68458 +:102390009065006432020007240600010046100424
68459 +:1023A00000451025A0620064948300429622000E2E
68460 +:1023B00050430001A386001892420000244200010D
68461 +:1023C000A24200003C0308008C6300F4304200FF8E
68462 +:1023D00050430001A2400000924200008F84001C84
68463 +:1023E000000211C0244202402483004000822021C8
68464 +:1023F0002402FF80008220243063007F3C02800A98
68465 +:10240000006218213C028000AC440024AEC30000EE
68466 +:102410008FBF006C8FB600688FB500648FB400600A
68467 +:102420008FB3005C8FB200588FB100548FB0005052
68468 +:1024300003E0000827BD007027BDFFD8AFB3001C24
68469 +:10244000AFB20018AFB10014AFB00010AFBF0020A2
68470 +:102450000080982100E0802130B1FFFF0E000D8444
68471 +:1024600030D200FF0000000000000000000000006B
68472 +:102470008F8200208F830024AC510000AC520004F6
68473 +:10248000AC530008AC40000CAC400010AC40001451
68474 +:10249000AC4000189463001E02038025AC50001C61
68475 +:1024A0000000000000000000000000002404000103
68476 +:1024B0008FBF00208FB3001C8FB200188FB10014A3
68477 +:1024C0008FB000100A000DB827BD002830A5FFFF0F
68478 +:1024D0000A0008DC30C600FF3C02800834430100DB
68479 +:1024E0009462000E3C080800950800C63046FFFFC5
68480 +:1024F00014C000043402FFFF946500EA0A000929B1
68481 +:102500008F84001C10C20027000000009462004E5F
68482 +:102510009464003C3045FFFF00A6102300A6182B52
68483 +:102520003087FFFF106000043044FFFF00C5102318
68484 +:1025300000E210233044FFFF0088102B1040000EF3
68485 +:1025400000E810233C028008344401002403000109
68486 +:1025500034420080A44300162402FFFFA482000E30
68487 +:10256000948500EA8F84001C0000302130A5FFFF15
68488 +:102570000A0009013C0760200044102A10400009AD
68489 +:102580003C0280083443008094620016304200010F
68490 +:10259000104000043C0280009442007E244200145B
68491 +:1025A000A462001603E000080000000027BDFFE061
68492 +:1025B0003C028008AFBF001CAFB0001834420100DD
68493 +:1025C000944300429442004C104000193068FFFFD1
68494 +:1025D0009383001824020001146200298FBF001C9D
68495 +:1025E0003C06800834D00100000810C200501021C1
68496 +:1025F000904200643103000734C70148304200FFB5
68497 +:10260000006210073042000134C9014E34C4012C6D
68498 +:1026100034C5013E1040001634C601420E0006D2F9
68499 +:10262000AFA90010960200420A0009463048FFFF99
68500 +:102630003C028008344401009483004494820042A8
68501 +:102640001043000F8FBF001C94820044A4820042FC
68502 +:1026500094820050A482004E8C820038AC820030FC
68503 +:1026600094820040A482003E9482004AA4820048E2
68504 +:102670008FBF001C8FB000180A00090427BD00207E
68505 +:102680008FB0001803E0000827BD002027BDFFA081
68506 +:10269000AFB1004C3C118000AFBF0058AFB3005445
68507 +:1026A000AFB20050AFB000483626018890C2000398
68508 +:1026B0003044007FA3A400108E32018090C200003D
68509 +:1026C0003043007F240200031062003BAF92001CE5
68510 +:1026D00028620004104000062402000424020002C4
68511 +:1026E000106200098FBF00580A000B0F8FB300540F
68512 +:1026F0001062004D240200051062014E8FBF005889
68513 +:102700000A000B0F8FB30054000411C002421021C5
68514 +:102710002404FF8024420240004410242643004049
68515 +:10272000AE2200243063007F3C02800A0062182140
68516 +:102730009062003CAFA3003C00441025A062003C26
68517 +:102740008FA3003C9062003C304200401040016C7E
68518 +:102750008FBF00583C108008A3800018361001007D
68519 +:102760008E0200E08C63003427A4003C27A50010F3
68520 +:10277000004310210E0007C3AE0200E093A2001038
68521 +:102780003C038000A20200D58C6202780440FFFE68
68522 +:102790008F82001CAC62024024020002A06202444C
68523 +:1027A0003C021000AC6202780E0009390000000003
68524 +:1027B0000A000B0E8FBF00583C05800890C3000133
68525 +:1027C00090A2000B1443014E8FBF005834A4008028
68526 +:1027D0008C8200189082004C90A200083C0260009D
68527 +:1027E0008C4254048C8300183C027FFF3442FFFF6C
68528 +:1027F000006218243C0208008C4200B4AC8300182C
68529 +:102800003C038000244200013C010800AC2200B4DB
68530 +:102810008C6201F80440FFFE8F82001CAC6201C094
68531 +:102820000A000AD6240200023C10800890C300016E
68532 +:102830009202000B144301328FBF005827A40018E6
68533 +:1028400036050110240600033C0260008C4254044B
68534 +:102850000E000E470000000027A40028360501F0F6
68535 +:102860000E000E47240600038FA200283603010045
68536 +:10287000AE0200648FA2002CAE0200688FA200306E
68537 +:10288000AE02006C93A40018906300D52402FF8070
68538 +:102890000082102400431025304900FF3084007F5F
68539 +:1028A0003122007F0082102A544000013929008023
68540 +:1028B000000411C0244202402403FF800242102180
68541 +:1028C00000431024AE220094264200403042007F94
68542 +:1028D0003C038006004340218FA3001C2402FFFF1D
68543 +:1028E000AFA800403C130800927300F71062003359
68544 +:1028F00093A2001995030014304400FF3063FFFFDA
68545 +:102900000064182B106000100000000095040014F3
68546 +:102910008D07001C8D0600183084FFFF0044202323
68547 +:102920000004210000E438210000102100E4202BE5
68548 +:1029300000C2302100C43021AD07001CAD060018D4
68549 +:102940000A000A2F93A20019950400148D07001C99
68550 +:102950008D0600183084FFFF008220230004210030
68551 +:10296000000010210080182100C2302300E4202B39
68552 +:1029700000C4302300E33823AD07001CAD06001867
68553 +:1029800093A200198FA30040A462001497A2001A1A
68554 +:10299000A46200168FA2001CAC6200108FA2001C63
68555 +:1029A000AC62000C93A20019A462002097A2001A46
68556 +:1029B000A46200228FA2001CAC6200243C048008A8
68557 +:1029C000348300808C6200388FA20020012088218F
68558 +:1029D000AC62003C8FA20020AC82000093A20018E1
68559 +:1029E000A062004C93A20018A0820009A0600068B9
68560 +:1029F00093A20018105100512407FF803229007F54
68561 +:102A0000000911C024420240024210213046007FDA
68562 +:102A10003C03800000471024AC6200943C02800616
68563 +:102A200000C2302190C2003CAFA60040000020212F
68564 +:102A300000471025A0C2003C8FA80040950200026C
68565 +:102A4000950300148D07001C3042FFFF3063FFFF29
68566 +:102A50008D060018004310230002110000E2382107
68567 +:102A600000E2102B00C4302100C23021AD07001C51
68568 +:102A7000AD06001895020002A5020014A50000167C
68569 +:102A80008D020008AD0200108D020008AD02000C9E
68570 +:102A900095020002A5020020A50000228D02000878
68571 +:102AA000AD0200249102003C304200401040001A68
68572 +:102AB000262200013C108008A3A90038A38000183A
68573 +:102AC000361001008E0200E08D03003427A4004080
68574 +:102AD00027A50038004310210E0007C3AE0200E016
68575 +:102AE00093A200383C038000A20200D58C620278D9
68576 +:102AF0000440FFFE8F82001CAC62024024020002F0
68577 +:102B0000A06202443C021000AC6202780E00093957
68578 +:102B100000000000262200013043007F14730004EF
68579 +:102B2000004020212403FF8002231024004320269C
68580 +:102B300093A200180A000A4B309100FF93A40018DA
68581 +:102B40008FA3001C2402FFFF1062000A308900FFDF
68582 +:102B500024820001248300013042007F14530005C9
68583 +:102B6000306900FF2403FF800083102400431026F7
68584 +:102B7000304900FF3C028008904200080120882173
68585 +:102B8000305000FF123000193222007F000211C0C5
68586 +:102B900002421021244202402403FF8000431824F3
68587 +:102BA0003C048000AC8300943042007F3C038006EC
68588 +:102BB000004310218C43000C004020211060000BCA
68589 +:102BC000AFA200400E00057E000000002623000199
68590 +:102BD0002405FF803062007F145300020225202468
68591 +:102BE000008518260A000AAF307100FF3C048008F7
68592 +:102BF000348400808C8300183C027FFF3442FFFF46
68593 +:102C000000621824AC8300183C0380008C6201F839
68594 +:102C10000440FFFE00000000AC7201C0240200026C
68595 +:102C2000A06201C43C021000AC6201F80A000B0E65
68596 +:102C30008FBF00583C04800890C300019082000BB5
68597 +:102C40001443002F8FBF0058349000809202000878
68598 +:102C500030420040104000200000000092020008B6
68599 +:102C60000002160000021603044100050240202164
68600 +:102C70000E000ECC240500930A000B0E8FBF0058E7
68601 +:102C80009202000924030018304200FF1443000D93
68602 +:102C900002402021240500390E000E64000030217E
68603 +:102CA0000E0003328F84001C8F82FF9424030012D5
68604 +:102CB000A04300090E00033D8F84001C0A000B0E88
68605 +:102CC0008FBF0058240500360E000E64000030212E
68606 +:102CD0000A000B0E8FBF00580E0003320240202165
68607 +:102CE000920200058F84001C344200200E00033D38
68608 +:102CF000A20200050E0010758F84001C8FBF0058C3
68609 +:102D00008FB300548FB200508FB1004C8FB0004889
68610 +:102D100003E0000827BD00603C0280083445010044
68611 +:102D20003C0280008C42014094A3000E0000302140
68612 +:102D300000402021AF82001C3063FFFF3402FFFF00
68613 +:102D4000106200063C0760202402FFFFA4A2000ED0
68614 +:102D500094A500EA0A00090130A5FFFF03E000087E
68615 +:102D60000000000027BDFFC83C0280003C06800830
68616 +:102D7000AFB5002CAFB1001CAFBF0030AFB400281E
68617 +:102D8000AFB30024AFB20020AFB00018345101003F
68618 +:102D900034C501008C4301008E2200148CA400E491
68619 +:102DA0000000A821AF83001C0044102318400052EB
68620 +:102DB000A38000188E22001400005021ACA200E471
68621 +:102DC00090C3000890A200D53073007FA3A200102A
68622 +:102DD0008CB200E08CB400E4304200FF1053003BA2
68623 +:102DE00093A200108F83001C2407FF80000211C0F3
68624 +:102DF0000062102124420240246300400047102456
68625 +:102E00003063007F3C0980003C08800A006818217C
68626 +:102E1000AD2200248C62003427A4001427A50010E2
68627 +:102E2000024280210290102304400028AFA3001426
68628 +:102E30009062003C00E21024304200FF1440001970
68629 +:102E4000020090219062003C34420040A062003CAD
68630 +:102E50008F86001C93A3001024C200403042007FE4
68631 +:102E6000004828213C0208008C4200F42463000141
68632 +:102E7000306400FF14820002A3A30010A3A000107E
68633 +:102E800093A20010AFA50014000211C0244202401A
68634 +:102E900000C2102100471024AD2200240A000B4577
68635 +:102EA00093A200100E0007C3000000003C0280083F
68636 +:102EB00034420100AC5000E093A30010240A00014A
68637 +:102EC000A04300D50A000B4593A200102402000184
68638 +:102ED000154200093C0380008C6202780440FFFE2A
68639 +:102EE0008F82001CAC62024024020002A0620244F5
68640 +:102EF0003C021000AC6202789222000B2403000214
68641 +:102F0000304200FF144300720000000096220008C7
68642 +:102F1000304300FF24020082146200402402008437
68643 +:102F20003C028000344901008D22000C95230006EC
68644 +:102F3000000216023063FFFF3045003F24020027E5
68645 +:102F400010A2000FAF83001428A200281040000830
68646 +:102F5000240200312402002110A2000924020025CD
68647 +:102F600010A20007938200190A000BBD00000000A8
68648 +:102F700010A20007938200190A000BBD0000000098
68649 +:102F80000E000777012020210A000C3D0000000000
68650 +:102F90003C0380008C6202780440FFFE8F82001C9C
68651 +:102FA000AC62024024020002A06202443C02100013
68652 +:102FB000AC6202780A000C3D000000009523000678
68653 +:102FC000912400058D25000C8D2600108D270018FA
68654 +:102FD0008D28001C8D290020244200013C0108009E
68655 +:102FE000A42356C63C010800A02456C53C01080095
68656 +:102FF000AC2556CC3C010800AC2656D03C0108005C
68657 +:10300000AC2756D83C010800AC2856DC3C0108002F
68658 +:10301000AC2956E00A000C3DA38200191462000A94
68659 +:10302000240200813C02800834420100944500EAF9
68660 +:10303000922600058F84001C30A5FFFF30C600FFDC
68661 +:103040000A000BFE3C0760211462005C00000000D7
68662 +:103050009222000A304300FF306200201040000737
68663 +:10306000306200403C02800834420100944500EA8E
68664 +:103070008F84001C0A000BFC24060040104000074F
68665 +:10308000000316003C02800834420100944500EA27
68666 +:103090008F84001C0A000BFC24060041000216036A
68667 +:1030A000044100463C02800834420100944500EA95
68668 +:1030B0008F84001C2406004230A5FFFF3C076019E6
68669 +:1030C0000E000901000000000A000C3D0000000095
68670 +:1030D0009222000B24040016304200FF1044000628
68671 +:1030E0003C0680009222000B24030017304200FFB0
68672 +:1030F000144300320000000034C5010090A2000B10
68673 +:10310000304200FF1444000B000080218CA20020FC
68674 +:103110008CA400202403FF800043102400021140EF
68675 +:103120003084007F004410253C032000004310251C
68676 +:10313000ACC2083094A2000800021400000214037C
68677 +:10314000044200012410000194A2000830420080D3
68678 +:103150005040001A0200A82194A20008304220002A
68679 +:10316000504000160200A8218CA300183C021C2D20
68680 +:10317000344219ED106200110200A8213C0208003F
68681 +:103180008C4200D4104000053C0280082403000457
68682 +:1031900034420100A04300FC3C028008344201009C
68683 +:1031A000944500EA8F84001C2406000630A5FFFF2A
68684 +:1031B0000E0009013C0760210200A8210E00093918
68685 +:1031C000000000009222000A304200081040000473
68686 +:1031D00002A010210E0013790000000002A01021AF
68687 +:1031E0008FBF00308FB5002C8FB400288FB3002420
68688 +:1031F0008FB200208FB1001C8FB0001803E00008D0
68689 +:1032000027BD00382402FF80008220243C02900069
68690 +:1032100034420007008220253C028000AC4400209C
68691 +:103220003C0380008C6200200440FFFE0000000090
68692 +:1032300003E00008000000003C0380002402FF803F
68693 +:10324000008220243462000700822025AC64002024
68694 +:103250008C6200200440FFFE0000000003E0000834
68695 +:103260000000000027BDFFD8AFB3001CAFB10014B1
68696 +:10327000AFB00010AFBF0020AFB200183C1180000B
68697 +:103280003C0280088E32002034530100AE2400201E
68698 +:10329000966300EA000514003C074000004738250B
68699 +:1032A00000A08021000030210E0009013065FFFFE1
68700 +:1032B000240200A1160200022402FFFFA2620009FC
68701 +:1032C000AE3200208FBF00208FB3001C8FB20018D9
68702 +:1032D0008FB100148FB0001003E0000827BD002854
68703 +:1032E0003C0280082403000527BDFFE834420100AA
68704 +:1032F000A04300FCAFBF00103C0280008C420100E4
68705 +:10330000240500A1004020210E000C67AF82001CA4
68706 +:103310003C0380008C6202780440FFFE8F82001C18
68707 +:103320008FBF001027BD0018AC62024024020002CB
68708 +:10333000A06202443C021000AC62027803E0000884
68709 +:103340000000000027BDFFE83C068000AFBF001072
68710 +:1033500034C7010094E20008304400FF3883008243
68711 +:10336000388200842C6300012C4200010062182581
68712 +:103370001060002D24020083938200195040003B0E
68713 +:103380008FBF00103C020800904256CC8CC4010054
68714 +:103390003C06080094C656C63045003F38A30032AC
68715 +:1033A00038A2003F2C6300012C4200010062182566
68716 +:1033B000AF84001CAF860014A380001914600007BE
68717 +:1033C00000E020212402002014A2001200000000CE
68718 +:1033D0003402FFFF14C2000F00000000240200208E
68719 +:1033E00014A2000500E028218CE300142402FFFF52
68720 +:1033F0005062000B8FBF00103C040800248456C0AC
68721 +:10340000000030210E000706240700010A000CD638
68722 +:103410008FBF00100E000777000000008FBF001064
68723 +:103420000A00093927BD001814820004240200850F
68724 +:103430008CC501040A000CE1000020211482000662
68725 +:103440002482FF808CC50104240440008FBF00103B
68726 +:103450000A00016727BD0018304200FF2C4200021D
68727 +:1034600010400004240200228FBF00100A000B2726
68728 +:1034700027BD0018148200048F8200248FBF001023
68729 +:103480000A000C8627BD00188C42000C1040001E5C
68730 +:1034900000E0282190E300092402001814620003D0
68731 +:1034A000240200160A000CFC240300081462000722
68732 +:1034B00024020017240300123C02800834420080DA
68733 +:1034C000A04300090A000D0994A7000854620007F0
68734 +:1034D00094A700088F82FF942404FFFE9043000508
68735 +:1034E00000641824A043000594A7000890A6001BC0
68736 +:1034F0008CA4000094A500068FBF001000073C00BC
68737 +:103500000A0008DC27BD00188FBF001003E0000888
68738 +:1035100027BD00188F8500243C04800094A2002A57
68739 +:103520008CA30034000230C02402FFF000C210243B
68740 +:1035300000621821AC83003C8CA200303C03800068
68741 +:10354000AC8200383C02005034420010AC620030C3
68742 +:103550000000000000000000000000008C6200007D
68743 +:10356000304200201040FFFD30C20008104000062D
68744 +:103570003C0280008C620408ACA200208C62040C27
68745 +:103580000A000D34ACA200248C430400ACA300203C
68746 +:103590008C420404ACA200243C0300203C028000C6
68747 +:1035A000AC4300303C0480008C8200300043102487
68748 +:1035B0001440FFFD8F8600243C020040AC820030A6
68749 +:1035C00094C3002A94C2002894C4002C94C5002EF1
68750 +:1035D00024630001004410213064FFFFA4C20028CE
68751 +:1035E00014850002A4C3002AA4C0002A03E0000836
68752 +:1035F000000000008F84002427BDFFE83C05800404
68753 +:1036000024840010AFBF00100E000E472406000AED
68754 +:103610008F840024948200129483002E3042000F85
68755 +:10362000244200030043180424027FFF0043102BB0
68756 +:1036300010400002AC8300000000000D0E000D13CE
68757 +:10364000000000008F8300248FBF001027BD0018EA
68758 +:10365000946200149463001A3042000F00021500B7
68759 +:10366000006218253C02800003E00008AC4300A083
68760 +:103670008F8300243C028004944400069462001A64
68761 +:103680008C650000A4640016004410233042FFFF44
68762 +:103690000045102B03E00008384200018F8400240D
68763 +:1036A0003C0780049486001A8C85000094E2000692
68764 +:1036B000A482001694E3000600C310233042FFFFEB
68765 +:1036C0000045102B384200011440FFF8A483001677
68766 +:1036D00003E00008000000008F8400243C02800406
68767 +:1036E000944200069483001A8C850000A482001680
68768 +:1036F000006210233042FFFF0045102B38420001CA
68769 +:103700005040000D8F850024006030213C0780046C
68770 +:1037100094E20006A482001694E3000600C310237E
68771 +:103720003042FFFF0045102B384200011440FFF8E3
68772 +:10373000A48300168F8500243C03800034620400BB
68773 +:103740008CA40020AF820020AC6400388CA200243E
68774 +:10375000AC62003C3C020005AC62003003E00008B3
68775 +:10376000ACA000048F8400243C0300068C8200047B
68776 +:1037700000021140004310253C038000AC62003081
68777 +:103780000000000000000000000000008C6200004B
68778 +:10379000304200101040FFFD34620400AC80000491
68779 +:1037A00003E00008AF8200208F86002427BDFFE0E1
68780 +:1037B000AFB10014AFB00010AFBF00188CC300044D
68781 +:1037C0008CC500248F820020309000FF94C4001A22
68782 +:1037D00024630001244200202484000124A7002047
68783 +:1037E000ACC30004AF820020A4C4001AACC70024FC
68784 +:1037F00004A100060000882104E2000594C2001A1A
68785 +:103800008CC2002024420001ACC2002094C2001AE5
68786 +:1038100094C300282E040001004310262C4200010E
68787 +:10382000004410245040000594C2001A24020001F4
68788 +:10383000ACC2000894C2001A94C300280010202BC8
68789 +:10384000004310262C4200010044102514400007BC
68790 +:10385000000000008CC20008144000042402001084
68791 +:103860008CC300041462000F8F8500240E000DA786
68792 +:10387000241100018F820024944300289442001AEE
68793 +:1038800014430003000000000E000D1300000000B0
68794 +:10389000160000048F8500240E000D840000000037
68795 +:1038A0008F85002494A2001E94A4001C24420001D1
68796 +:1038B0003043FFFF14640002A4A2001EA4A0001E57
68797 +:1038C0001200000A3C02800494A2001494A3001A7F
68798 +:1038D0003042000F00021500006218253C028000F3
68799 +:1038E000AC4300A00A000E1EACA0000894420006E3
68800 +:1038F00094A3001A8CA40000A4A200160062102356
68801 +:103900003042FFFF0044102B384200011040000DF0
68802 +:1039100002201021006030213C07800494E2000660
68803 +:10392000A4A2001694E3000600C310233042FFFF58
68804 +:103930000044102B384200011440FFF8A4A30016E5
68805 +:10394000022010218FBF00188FB100148FB000101B
68806 +:1039500003E0000827BD002003E00008000000008D
68807 +:103960008F82002C3C03000600021140004310250A
68808 +:103970003C038000AC62003000000000000000004A
68809 +:10398000000000008C620000304200101040FFFD7B
68810 +:1039900034620400AF82002803E00008AF80002CEE
68811 +:1039A00003E000080000102103E000080000000010
68812 +:1039B0003084FFFF30A5FFFF0000182110800007B2
68813 +:1039C000000000003082000110400002000420428C
68814 +:1039D000006518210A000E3D0005284003E000089C
68815 +:1039E0000060102110C0000624C6FFFF8CA200005A
68816 +:1039F00024A50004AC8200000A000E4724840004C1
68817 +:103A000003E000080000000010A0000824A3FFFF4E
68818 +:103A1000AC86000000000000000000002402FFFF50
68819 +:103A20002463FFFF1462FFFA2484000403E000080B
68820 +:103A3000000000003C0280083442008024030001A2
68821 +:103A4000AC43000CA4430010A4430012A443001490
68822 +:103A500003E00008A44300168F82002427BDFFD88E
68823 +:103A6000AFB3001CAFB20018AFB10014AFB000107C
68824 +:103A7000AFBF00208C47000C248200802409FF8007
68825 +:103A80003C08800E3043007F008080213C0A80008B
68826 +:103A9000004920240068182130B100FF30D200FF17
68827 +:103AA00010E000290000982126020100AD44002CFE
68828 +:103AB000004928243042007F004820219062000005
68829 +:103AC00024030050304200FF1443000400000000B3
68830 +:103AD000AD45002C948200EA3053FFFF0E000D84A8
68831 +:103AE000000000008F8200248F83002000112C0032
68832 +:103AF0009442001E001224003484000100A22825F4
68833 +:103B00003C02400000A22825AC7000008FBF0020BE
68834 +:103B1000AC6000048FB20018AC7300088FB10014C1
68835 +:103B2000AC60000C8FB3001CAC6400108FB00010B0
68836 +:103B3000AC60001424040001AC60001827BD00280C
68837 +:103B40000A000DB8AC65001C8FBF00208FB3001CAD
68838 +:103B50008FB200188FB100148FB0001003E000087E
68839 +:103B600027BD00283C06800034C201009043000FAE
68840 +:103B7000240200101062000E2865001110A000073A
68841 +:103B800024020012240200082405003A10620006F4
68842 +:103B90000000302103E0000800000000240500358B
68843 +:103BA0001462FFFC000030210A000E6400000000D7
68844 +:103BB0008CC200748F83FF9424420FA003E000089E
68845 +:103BC000AC62000C27BDFFE8AFBF00100E0003423F
68846 +:103BD000240500013C0480088FBF0010240200016E
68847 +:103BE00034830080A462001227BD00182402000163
68848 +:103BF00003E00008A080001A27BDFFE0AFB2001864
68849 +:103C0000AFB10014AFB00010AFBF001C30B2FFFF67
68850 +:103C10000E000332008088213C028008345000806E
68851 +:103C20009202000924030004304200FF1443000CF8
68852 +:103C30003C028008124000082402000A0E000E5BBD
68853 +:103C400000000000920200052403FFFE0043102440
68854 +:103C5000A202000524020012A20200093C02800810
68855 +:103C600034420080022020210E00033DA0400027A6
68856 +:103C700016400003022020210E000EBF00000000AD
68857 +:103C800002202021324600FF8FBF001C8FB2001897
68858 +:103C90008FB100148FB00010240500380A000E64A4
68859 +:103CA00027BD002027BDFFE0AFBF001CAFB200184A
68860 +:103CB000AFB10014AFB000100E00033200808021BD
68861 +:103CC0000E000E5B000000003C02800834450080BE
68862 +:103CD00090A2000924120018305100FF1232000394
68863 +:103CE0000200202124020012A0A2000990A20005D7
68864 +:103CF0002403FFFE004310240E00033DA0A2000594
68865 +:103D00000200202124050020163200070000302187
68866 +:103D10008FBF001C8FB200188FB100148FB000103D
68867 +:103D20000A00034227BD00208FBF001C8FB200187D
68868 +:103D30008FB100148FB00010240500390A000E6402
68869 +:103D400027BD002027BDFFE83C028000AFB0001077
68870 +:103D5000AFBF0014344201009442000C2405003629
68871 +:103D60000080802114400012304600FF0E00033214
68872 +:103D7000000000003C02800834420080240300124E
68873 +:103D8000A043000990430005346300100E000E5B51
68874 +:103D9000A04300050E00033D020020210200202167
68875 +:103DA0000E000342240500200A000F3C0000000022
68876 +:103DB0000E000E64000000000E00033202002021FD
68877 +:103DC0003C0280089043001B2405FF9F0200202135
68878 +:103DD000006518248FBF00148FB00010A043001B93
68879 +:103DE0000A00033D27BD001827BDFFE0AFBF001844
68880 +:103DF000AFB10014AFB0001030B100FF0E000332BD
68881 +:103E0000008080213C02800824030012344200809C
68882 +:103E10000E000E5BA04300090E00033D02002021AE
68883 +:103E200002002021022030218FBF00188FB1001422
68884 +:103E30008FB00010240500350A000E6427BD002055
68885 +:103E40003C0480089083000E9082000A1443000B0B
68886 +:103E5000000028218F82FF942403005024050001D4
68887 +:103E600090420000304200FF1443000400000000B4
68888 +:103E70009082000E24420001A082000E03E00008A0
68889 +:103E800000A010213C0380008C6201F80440FFFE7A
68890 +:103E900024020002AC6401C0A06201C43C02100014
68891 +:103EA00003E00008AC6201F827BDFFE0AFB20018E4
68892 +:103EB0003C128008AFB10014AFBF001CAFB00010BF
68893 +:103EC00036510080922200092403000A304200FF8C
68894 +:103ED0001443003E000000008E4300048E22003890
68895 +:103EE000506200808FBF001C92220000240300500B
68896 +:103EF000304200FF144300253C0280008C42014008
68897 +:103F00008E4300043642010002202821AC43001CED
68898 +:103F10009622005C8E2300383042FFFF00021040E2
68899 +:103F200000621821AE23001C8E4300048E2400384A
68900 +:103F30009622005C006418233042FFFF0003184300
68901 +:103F4000000210400043102A10400006000000004C
68902 +:103F50008E4200048E230038004310230A000FAA6B
68903 +:103F6000000220439622005C3042FFFF0002204006
68904 +:103F70003C0280083443010034420080ACA4002C91
68905 +:103F8000A040002424020001A062000C0E000F5E7D
68906 +:103F900000000000104000538FBF001C3C02800056
68907 +:103FA0008C4401403C0380008C6201F80440FFFE19
68908 +:103FB00024020002AC6401C0A06201C43C021000F3
68909 +:103FC000AC6201F80A0010078FBF001C92220009A2
68910 +:103FD00024030010304200FF144300043C02800020
68911 +:103FE0008C4401400A000FEE0000282192220009B3
68912 +:103FF00024030016304200FF14430006240200147C
68913 +:10400000A22200093C0280008C4401400A001001F9
68914 +:104010008FBF001C8E2200388E23003C00431023EB
68915 +:10402000044100308FBF001C92220027244200016F
68916 +:10403000A2220027922200272C42000414400016DE
68917 +:104040003C1080009222000924030004304200FF4B
68918 +:10405000144300093C0280008C4401408FBF001CC7
68919 +:104060008FB200188FB100148FB000102405009398
68920 +:104070000A000ECC27BD00208C440140240500938B
68921 +:104080008FBF001C8FB200188FB100148FB00010CA
68922 +:104090000A000F4827BD00208E0401400E000332A5
68923 +:1040A000000000008E4200042442FFFFAE420004E4
68924 +:1040B0008E22003C2442FFFFAE22003C0E00033D56
68925 +:1040C0008E0401408E0401408FBF001C8FB2001887
68926 +:1040D0008FB100148FB00010240500040A000342C1
68927 +:1040E00027BD00208FB200188FB100148FB00010D0
68928 +:1040F00003E0000827BD00203C0680008CC2018838
68929 +:104100003C038008346500809063000E00021402B6
68930 +:10411000304400FF306300FF1464000E3C0280084E
68931 +:1041200090A20026304200FF104400098F82FF94C5
68932 +:10413000A0A400262403005090420000304200FF5B
68933 +:1041400014430006000000000A0005A18CC4018091
68934 +:104150003C02800834420080A044002603E00008AE
68935 +:104160000000000027BDFFE030E700FFAFB20018FD
68936 +:10417000AFBF001CAFB10014AFB0001000809021A1
68937 +:1041800014E0000630C600FF000000000000000D33
68938 +:10419000000000000A001060240001163C038008A3
68939 +:1041A0009062000E304200FF14460023346200800B
68940 +:1041B00090420026304200FF1446001F000000001D
68941 +:1041C0009062000F304200FF1446001B0000000008
68942 +:1041D0009062000A304200FF144600038F90FF9463
68943 +:1041E0000000000D8F90FF948F82FF983C1180009B
68944 +:1041F000AE05003CAC450000A066000A0E0003328C
68945 +:104200008E240100A20000240E00033D8E24010034
68946 +:104210003C0380008C6201F80440FFFE240200028F
68947 +:10422000AC7201C0A06201C43C021000AC6201F893
68948 +:104230000A0010618FBF001C000000000000000D8C
68949 +:10424000000000002400013F8FBF001C8FB2001847
68950 +:104250008FB100148FB0001003E0000827BD0020CC
68951 +:104260008F83FF943C0280008C44010034420100A3
68952 +:104270008C65003C9046001B0A00102724070001B3
68953 +:104280003C0280089043000E9042000A0043102632
68954 +:10429000304200FF03E000080002102B27BDFFE0C2
68955 +:1042A0003C028008AFB10014AFB00010AFBF0018DF
68956 +:1042B0003450008092020005240300303042003068
68957 +:1042C00014430085008088218F8200248C42000CDA
68958 +:1042D000104000828FBF00180E000D840000000007
68959 +:1042E0008F860020ACD100009202000892030009E2
68960 +:1042F000304200FF00021200306300FF004310252F
68961 +:10430000ACC200049202004D000216000002160327
68962 +:1043100004410005000000003C0308008C630048D5
68963 +:104320000A00109F3C1080089202000830420040B2
68964 +:10433000144000030000182192020027304300FFC0
68965 +:104340003C108008361100809222004D00031E00B0
68966 +:10435000304200FF0002140000621825ACC30008C0
68967 +:104360008E2400308F820024ACC4000C8E250034D3
68968 +:104370009443001E3C02C00BACC50010006218251F
68969 +:104380008E22003800002021ACC200148E22003C96
68970 +:10439000ACC200180E000DB8ACC3001C8E020004A5
68971 +:1043A0008F8400203C058000AC8200008E2200201B
68972 +:1043B000AC8200048E22001CAC8200088E220058C1
68973 +:1043C0008CA3007400431021AC82000C8E22002CC0
68974 +:1043D000AC8200108E2200408E23004400021400A4
68975 +:1043E00000431025AC8200149222004D240300806B
68976 +:1043F000304200FF1443000400000000AC800018AD
68977 +:104400000A0010E38F8200248E23000C2402000196
68978 +:104410001062000E2402FFFF92220008304200408A
68979 +:104420001440000A2402FFFF8E23000C8CA20074AB
68980 +:10443000006218233C0208000062102414400002AD
68981 +:10444000000028210060282100051043AC820018DC
68982 +:104450008F820024000020219443001E3C02C00CE7
68983 +:10446000006218258F8200200E000DB8AC43001C9E
68984 +:104470003C038008346201008C4200008F850020DC
68985 +:10448000346300808FBF0018ACA20000ACA0000411
68986 +:104490008C6400488F8200248FB10014ACA4000803
68987 +:1044A000ACA0000CACA00010906300059446001E68
68988 +:1044B0003C02400D00031E0000C23025ACA30014D6
68989 +:1044C0008FB00010ACA0001824040001ACA6001CA2
68990 +:1044D0000A000DB827BD00208FBF00188FB100144F
68991 +:1044E0008FB0001003E0000827BD00203C028000D0
68992 +:1044F0009443007C3C02800834460100308400FF75
68993 +:104500003065FFFF2402000524A34650A0C4000C20
68994 +:104510005482000C3065FFFF90C2000D2C42000752
68995 +:104520001040000724A30A0090C3000D24020014C9
68996 +:104530000062100400A210210A00111F3045FFFF85
68997 +:104540003065FFFF3C0280083442008003E0000831
68998 +:10455000A44500143C03800834680080AD05003891
68999 +:10456000346701008CE2001C308400FF00A210239D
69000 +:104570001840000330C600FF24A2FFFCACE2001C80
69001 +:1045800030820001504000083C0380088D02003C4E
69002 +:1045900000A2102304410012240400058C620004D0
69003 +:1045A00010A2000F3C0380088C62000414A2001EBD
69004 +:1045B000000000003C0208008C4200D8304200207D
69005 +:1045C000104000093C0280083462008090630008BB
69006 +:1045D0009042004C144300043C0280082404000470
69007 +:1045E0000A00110900000000344300803442010039
69008 +:1045F000A040000C24020001A462001410C0000AB4
69009 +:104600003C0280008C4401003C0380008C6201F875
69010 +:104610000440FFFE24020002AC6401C0A06201C499
69011 +:104620003C021000AC6201F803E00008000000004A
69012 +:1046300027BDFFE800A61823AFBF00101860008058
69013 +:10464000308800FF3C02800834470080A0E000244E
69014 +:1046500034440100A0E000278C82001C00A210233B
69015 +:1046600004400056000000008CE2003C94E3005C33
69016 +:104670008CE4002C004530233063FFFF00C3182179
69017 +:104680000083202B1080000400E018218CE2002C15
69018 +:104690000A00117800A2102194E2005C3042FFFF72
69019 +:1046A00000C2102100A21021AC62001C3C02800854
69020 +:1046B000344400809482005C8C83001C3042FFFFF5
69021 +:1046C0000002104000A210210043102B10400004F3
69022 +:1046D000000000008C82001C0A00118B3C06800840
69023 +:1046E0009482005C3042FFFF0002104000A21021C3
69024 +:1046F0003C06800834C3010034C70080AC82001C33
69025 +:10470000A060000CACE500388C62001C00A21023F5
69026 +:104710001840000224A2FFFCAC62001C3102000120
69027 +:10472000104000083C0380088CE2003C00A21023EB
69028 +:1047300004410012240400058CC2000410A20010E1
69029 +:104740008FBF00108C62000414A2004F8FBF0010B6
69030 +:104750003C0208008C4200D8304200201040000A81
69031 +:104760003C02800834620080906300089042004C54
69032 +:10477000144300053C028008240400048FBF00108D
69033 +:104780000A00110927BD001834430080344201009B
69034 +:10479000A040000C24020001A46200143C0280002E
69035 +:1047A0008C4401003C0380008C6201F80440FFFE51
69036 +:1047B000240200020A0011D8000000008CE2001C54
69037 +:1047C000004610230043102B54400001ACE5001CB0
69038 +:1047D00094E2005C3042FFFF0062102B144000079F
69039 +:1047E0002402000294E2005C8CE3001C3042FFFFD4
69040 +:1047F00000621821ACE3001C24020002ACE5003882
69041 +:104800000E000F5EA082000C1040001F8FBF001032
69042 +:104810003C0280008C4401003C0380008C6201F863
69043 +:104820000440FFFE24020002AC6401C0A06201C487
69044 +:104830003C021000AC6201F80A0011F08FBF0010BA
69045 +:1048400031020010104000108FBF00103C028008A1
69046 +:10485000344500808CA3001C94A2005C00661823E1
69047 +:104860003042FFFF006218213C023FFF3444FFFF4B
69048 +:104870000083102B544000010080182100C3102138
69049 +:10488000ACA2001C8FBF001003E0000827BD001879
69050 +:1048900027BDFFE800C0402100A63023AFBF0010B5
69051 +:1048A00018C00026308A00FF3C028008344900808E
69052 +:1048B0008D24001C8D23002C008820230064182BDD
69053 +:1048C0001060000F344701008CE2002000461021E8
69054 +:1048D000ACE200208CE200200044102B1440000BBE
69055 +:1048E0003C023FFF8CE2002000441023ACE2002099
69056 +:1048F0009522005C3042FFFF0A0012100082202146
69057 +:10490000ACE00020008620213C023FFF3443FFFF43
69058 +:104910000064102B54400001006020213C028008FC
69059 +:104920003442008000851821AC43001CA0400024C4
69060 +:10493000A04000270A0012623C03800831420010A8
69061 +:10494000104000433C0380083C06800834C40080CB
69062 +:104950008C82003C004810235840003E34660080A2
69063 +:104960009082002424420001A0820024908200242E
69064 +:104970003C0308008C630024304200FF0043102BEE
69065 +:10498000144000688FBF001034C201008C42001C2C
69066 +:1049900000A2102318400063000000008CC3000434
69067 +:1049A0009482005C006818233042FFFF0003184324
69068 +:1049B000000210400043102A1040000500000000D3
69069 +:1049C0008CC20004004810230A0012450002104364
69070 +:1049D0009482005C3042FFFF000210403C068008D9
69071 +:1049E000AC82002C34C5008094A2005C8CA4002C06
69072 +:1049F00094A3005C3042FFFF00021040008220219F
69073 +:104A00003063FFFF0083202101041021ACA2001CB1
69074 +:104A10008CC2000434C60100ACC2001C2402000297
69075 +:104A20000E000F5EA0C2000C1040003E8FBF0010B1
69076 +:104A30003C0280008C4401003C0380008C6201F841
69077 +:104A40000440FFFE240200020A001292000000004F
69078 +:104A500034660080ACC50038346401008C82001CD0
69079 +:104A600000A210231840000224A2FFFCAC82001C0C
69080 +:104A7000314200015040000A3C0380088CC2003CD7
69081 +:104A800000A2102304430014240400058C620004D7
69082 +:104A900014A200033C0380080A00128424040005C9
69083 +:104AA0008C62000414A2001F8FBF00103C0208009B
69084 +:104AB0008C4200D8304200201040000A3C0280089E
69085 +:104AC00034620080906300089042004C144300055B
69086 +:104AD0003C028008240400048FBF00100A00110962
69087 +:104AE00027BD00183443008034420100A040000C70
69088 +:104AF00024020001A46200143C0280008C440100E6
69089 +:104B00003C0380008C6201F80440FFFE2402000296
69090 +:104B1000AC6401C0A06201C43C021000AC6201F8A8
69091 +:104B20008FBF001003E0000827BD001827BDFFE875
69092 +:104B30003C0A8008AFBF0010354900808D22003C40
69093 +:104B400000C04021308400FF004610231840009D23
69094 +:104B500030E700FF354701002402000100A63023A2
69095 +:104B6000A0E0000CA0E0000DA522001418C0002455
69096 +:104B7000308200108D23001C8D22002C0068182329
69097 +:104B80000043102B1040000F000000008CE20020BA
69098 +:104B900000461021ACE200208CE200200043102BE4
69099 +:104BA0001440000B3C023FFF8CE200200043102326
69100 +:104BB000ACE200209522005C3042FFFF0A0012C1E7
69101 +:104BC00000621821ACE00020006618213C023FFF83
69102 +:104BD0003446FFFF00C3102B5440000100C01821D1
69103 +:104BE0003C0280083442008000651821AC43001C60
69104 +:104BF000A0400024A04000270A00130F3C038008B7
69105 +:104C0000104000403C0380088D22003C00481023E7
69106 +:104C10005840003D34670080912200242442000166
69107 +:104C2000A1220024912200243C0308008C6300246C
69108 +:104C3000304200FF0043102B1440009A8FBF001039
69109 +:104C40008CE2001C00A21023184000960000000017
69110 +:104C50008D4300049522005C006818233042FFFF5A
69111 +:104C600000031843000210400043102A10400005C2
69112 +:104C7000012020218D420004004810230A0012F276
69113 +:104C8000000210439522005C3042FFFF00021040FA
69114 +:104C90003C068008AC82002C34C5008094A2005CE5
69115 +:104CA0008CA4002C94A3005C3042FFFF0002104053
69116 +:104CB000008220213063FFFF0083182101031021AF
69117 +:104CC000ACA2001C8CC2000434C60100ACC2001CA3
69118 +:104CD000240200020E000F5EA0C2000C1040007102
69119 +:104CE0008FBF00103C0280008C4401003C03800018
69120 +:104CF0008C6201F80440FFFE240200020A0013390E
69121 +:104D00000000000034670080ACE500383466010024
69122 +:104D10008CC2001C00A210231840000224A2FFFC39
69123 +:104D2000ACC2001C30820001504000083C038008E7
69124 +:104D30008CE2003C00A2102304430051240400052F
69125 +:104D40008C62000410A2003E3C0380088C620004C8
69126 +:104D500054A200548FBF00103C0208008C4200D8BF
69127 +:104D600030420020104000063C028008346200807F
69128 +:104D7000906300089042004C104300403C028008C1
69129 +:104D80003443008034420100A040000C24020001A2
69130 +:104D9000A46200143C0280008C4401003C038000AB
69131 +:104DA0008C6201F80440FFFE24020002AC6401C0E2
69132 +:104DB000A06201C43C021000AC6201F80A00137743
69133 +:104DC0008FBF001024020005A120002714E2000A72
69134 +:104DD0003C038008354301009062000D2C42000620
69135 +:104DE000504000053C0380089062000D2442000101
69136 +:104DF000A062000D3C03800834670080ACE50038F9
69137 +:104E0000346601008CC2001C00A21023184000026E
69138 +:104E100024A2FFFCACC2001C308200015040000AFA
69139 +:104E20003C0380088CE2003C00A2102304410014E3
69140 +:104E3000240400058C62000414A200033C038008D3
69141 +:104E40000A00136E240400058C62000414A20015ED
69142 +:104E50008FBF00103C0208008C4200D83042002076
69143 +:104E60001040000A3C028008346200809063000811
69144 +:104E70009042004C144300053C02800824040004C6
69145 +:104E80008FBF00100A00110927BD001834430080AD
69146 +:104E900034420100A040000C24020001A46200146E
69147 +:104EA0008FBF001003E0000827BD00183C0B8008EE
69148 +:104EB00027BDFFE83C028000AFBF00103442010074
69149 +:104EC000356A00809044000A356901008C45001461
69150 +:104ED0008D4800389123000C308400FF0105102319
69151 +:104EE0001C4000B3306700FF2CE20006504000B1C8
69152 +:104EF0008FBF00102402000100E2300430C2000322
69153 +:104F00005440000800A8302330C2000C144000A117
69154 +:104F100030C20030144000A38FBF00100A00143BC1
69155 +:104F20000000000018C00024308200108D43001CD7
69156 +:104F30008D42002C006818230043102B1040000FF6
69157 +:104F4000000000008D22002000461021AD2200202C
69158 +:104F50008D2200200043102B1440000B3C023FFF29
69159 +:104F60008D22002000431023AD2200209542005CDA
69160 +:104F70003042FFFF0A0013AF00621821AD2000206D
69161 +:104F8000006618213C023FFF3446FFFF00C3102B90
69162 +:104F90005440000100C018213C02800834420080C7
69163 +:104FA00000651821AC43001CA0400024A04000274D
69164 +:104FB0000A0013FD3C038008104000403C038008B9
69165 +:104FC0008D42003C004810231840003D34670080AB
69166 +:104FD0009142002424420001A14200249142002475
69167 +:104FE0003C0308008C630024304200FF0043102B78
69168 +:104FF000144000708FBF00108D22001C00A21023EF
69169 +:105000001840006C000000008D6300049542005CB5
69170 +:10501000006818233042FFFF0003184300021040CD
69171 +:105020000043102A10400005014020218D62000439
69172 +:10503000004810230A0013E0000210439542005C70
69173 +:105040003042FFFF000210403C068008AC82002C7A
69174 +:1050500034C5008094A2005C8CA4002C94A3005C56
69175 +:105060003042FFFF00021040008220213063FFFF2A
69176 +:105070000083182101031021ACA2001C8CC2000483
69177 +:1050800034C60100ACC2001C240200020E000F5EF8
69178 +:10509000A0C2000C104000478FBF00103C028000EF
69179 +:1050A0008C4401003C0380008C6201F80440FFFE48
69180 +:1050B000240200020A00142D000000003467008062
69181 +:1050C000ACE50038346601008CC2001C00A210233D
69182 +:1050D0001840000224A2FFFCACC2001C3082000178
69183 +:1050E0005040000A3C0380088CE2003C00A21023E0
69184 +:1050F00004430014240400058C62000414A200037D
69185 +:105100003C0380080A00141F240400058C6200047C
69186 +:1051100014A200288FBF00103C0208008C4200D867
69187 +:10512000304200201040000A3C02800834620080B7
69188 +:10513000906300089042004C144300053C02800834
69189 +:10514000240400048FBF00100A00110927BD0018B5
69190 +:105150003443008034420100A040000C24020001CE
69191 +:10516000A46200143C0280008C4401003C038000D7
69192 +:105170008C6201F80440FFFE24020002AC6401C00E
69193 +:10518000A06201C43C021000AC6201F80A00143BAA
69194 +:105190008FBF00108FBF0010010030210A00115A8C
69195 +:1051A00027BD0018010030210A00129927BD001800
69196 +:1051B0008FBF001003E0000827BD00183C038008E3
69197 +:1051C0003464010024020003A082000C8C620004FD
69198 +:1051D00003E00008AC82001C3C05800834A300807A
69199 +:1051E0009062002734A501002406004324420001F8
69200 +:1051F000A0620027906300273C0208008C42004810
69201 +:10520000306300FF146200043C07602194A500EAAB
69202 +:105210000A00090130A5FFFF03E0000800000000BC
69203 +:1052200027BDFFE8AFBF00103C0280000E00144411
69204 +:105230008C4401803C02800834430100A060000CD3
69205 +:105240008C4200048FBF001027BD001803E0000847
69206 +:10525000AC62001C27BDFFE03C028008AFBF001815
69207 +:10526000AFB10014AFB000103445008034460100E7
69208 +:105270003C0880008D09014090C3000C8CA4003CC8
69209 +:105280008CA200381482003B306700FF9502007C3E
69210 +:1052900090A30027146000093045FFFF2402000599
69211 +:1052A00054E200083C04800890C2000D2442000132
69212 +:1052B000A0C2000D0A00147F3C048008A0C0000DAD
69213 +:1052C0003C048008348201009042000C2403000555
69214 +:1052D000304200FF1443000A24A205DC348300801E
69215 +:1052E000906200272C4200075040000524A20A00CB
69216 +:1052F00090630027240200140062100400A2102111
69217 +:105300003C108008361000803045FFFF012020212E
69218 +:105310000E001444A60500149602005C8E030038AB
69219 +:105320003C1180003042FFFF000210400062182153
69220 +:10533000AE03001C0E0003328E24014092020025B1
69221 +:1053400034420040A20200250E00033D8E2401409D
69222 +:105350008E2401403C0380008C6201F80440FFFE73
69223 +:1053600024020002AC6401C0A06201C43C0210002F
69224 +:10537000AC6201F88FBF00188FB100148FB000101D
69225 +:1053800003E0000827BD00203C0360103C02080039
69226 +:1053900024420174AC62502C8C6250003C048000AA
69227 +:1053A00034420080AC6250003C0208002442547C2D
69228 +:1053B0003C010800AC2256003C020800244254384C
69229 +:1053C0003C010800AC2256043C020002AC840008F8
69230 +:1053D000AC82000C03E000082402000100A0302190
69231 +:1053E0003C1C0800279C56083C0200023C050400B7
69232 +:1053F00000852826008220260004102B2CA5000101
69233 +:105400002C840001000210803C0308002463560035
69234 +:105410000085202500431821108000030000102182
69235 +:10542000AC6600002402000103E000080000000058
69236 +:105430003C1C0800279C56083C0200023C05040066
69237 +:1054400000852826008220260004102B2CA50001B0
69238 +:105450002C840001000210803C03080024635600E5
69239 +:105460000085202500431821108000050000102130
69240 +:105470003C02080024425438AC62000024020001BF
69241 +:1054800003E00008000000003C0200023C030400AE
69242 +:1054900000821026008318262C4200012C63000194
69243 +:1054A000004310251040000B000028213C1C080080
69244 +:1054B000279C56083C0380008C62000824050001EC
69245 +:1054C00000431025AC6200088C62000C00441025DB
69246 +:1054D000AC62000C03E0000800A010213C1C080096
69247 +:1054E000279C56083C0580008CA3000C0004202754
69248 +:1054F000240200010064182403E00008ACA3000C9F
69249 +:105500003C020002148200063C0560008CA208D018
69250 +:105510002403FFFE0043102403E00008ACA208D0DF
69251 +:105520003C02040014820005000000008CA208D098
69252 +:105530002403FFFD00431024ACA208D003E00008C0
69253 +:10554000000000003C02601A344200108C430080CE
69254 +:1055500027BDFFF88C440084AFA3000093A3000094
69255 +:10556000240200041462001AAFA4000493A20001F4
69256 +:105570001040000797A300023062FFFC3C0380004C
69257 +:10558000004310218C4200000A001536AFA200042F
69258 +:105590003062FFFC3C03800000431021AC4400005B
69259 +:1055A000A3A000003C0560008CA208D02403FFFEED
69260 +:1055B0003C04601A00431024ACA208D08FA300045E
69261 +:1055C0008FA2000034840010AC830084AC82008081
69262 +:1055D00003E0000827BD000827BDFFE8AFBF0010AB
69263 +:1055E0003C1C0800279C56083C0280008C43000CA1
69264 +:1055F0008C420004004318243C0200021060001496
69265 +:10560000006228243C0204003C04000210A00005B3
69266 +:10561000006210243C0208008C4256000A00155B10
69267 +:1056200000000000104000073C0404003C02080099
69268 +:105630008C4256040040F809000000000A00156082
69269 +:10564000000000000000000D3C1C0800279C5608CC
69270 +:105650008FBF001003E0000827BD0018800802403B
69271 +:1056600080080100800800808008000000000C8095
69272 +:105670000000320008000E9808000EF408000F88A1
69273 +:1056800008001028080010748008010080080080BD
69274 +:10569000800800000A000028000000000000000050
69275 +:1056A0000000000D6370362E322E316200000000C3
69276 +:1056B00006020104000000000000000000000000DD
69277 +:1056C000000000000000000038003C000000000066
69278 +:1056D00000000000000000000000000000000020AA
69279 +:1056E00000000000000000000000000000000000BA
69280 +:1056F00000000000000000000000000000000000AA
69281 +:10570000000000000000000021003800000000013F
69282 +:105710000000002B000000000000000400030D400A
69283 +:105720000000000000000000000000000000000079
69284 +:105730000000000000000000100000030000000056
69285 +:105740000000000D0000000D3C020800244259AC8E
69286 +:105750003C03080024635BF4AC4000000043202BB2
69287 +:105760001480FFFD244200043C1D080037BD9FFC4F
69288 +:1057700003A0F0213C100800261000A03C1C0800EB
69289 +:10578000279C59AC0E0002F6000000000000000D3E
69290 +:1057900027BDFFB4AFA10000AFA20004AFA3000873
69291 +:1057A000AFA4000CAFA50010AFA60014AFA700185F
69292 +:1057B000AFA8001CAFA90020AFAA0024AFAB0028FF
69293 +:1057C000AFAC002CAFAD0030AFAE0034AFAF00389F
69294 +:1057D000AFB8003CAFB90040AFBC0044AFBF004819
69295 +:1057E0000E000820000000008FBF00488FBC00445E
69296 +:1057F0008FB900408FB8003C8FAF00388FAE0034B7
69297 +:105800008FAD00308FAC002C8FAB00288FAA002406
69298 +:105810008FA900208FA8001C8FA700188FA6001446
69299 +:105820008FA500108FA4000C8FA300088FA2000486
69300 +:105830008FA1000027BD004C3C1B60188F7A5030B0
69301 +:10584000377B502803400008AF7A000000A01821E1
69302 +:1058500000801021008028213C0460003C0760008B
69303 +:105860002406000810600006348420788C42000072
69304 +:10587000ACE220088C63000003E00008ACE3200CDD
69305 +:105880000A000F8100000000240300403C02600079
69306 +:1058900003E00008AC4320003C0760008F86000452
69307 +:1058A0008CE520740086102100A2182B14600007DC
69308 +:1058B000000028218F8AFDA024050001A1440013C7
69309 +:1058C0008F89000401244021AF88000403E0000810
69310 +:1058D00000A010218F84FDA08F8500049086001306
69311 +:1058E00030C300FF00A31023AF82000403E00008D0
69312 +:1058F000A08000138F84FDA027BDFFE8AFB000108B
69313 +:10590000AFBF001490890011908700112402002875
69314 +:10591000312800FF3906002830E300FF2485002CE1
69315 +:105920002CD00001106200162484001C0E00006EB2
69316 +:10593000000000008F8FFDA03C05600024020204DF
69317 +:1059400095EE003E95ED003C000E5C0031ACFFFF93
69318 +:10595000016C5025ACAA2010520000012402000462
69319 +:10596000ACA22000000000000000000000000000C9
69320 +:105970008FBF00148FB0001003E0000827BD00188F
69321 +:105980000A0000A6000028218F85FDA027BDFFD8B2
69322 +:10599000AFBF0020AFB3001CAFB20018AFB100140E
69323 +:1059A000AFB000100080982190A4001124B0001C1A
69324 +:1059B00024B1002C308300FF386200280E000090D4
69325 +:1059C0002C5200010E00009800000000020020216F
69326 +:1059D0001240000202202821000028210E00006E43
69327 +:1059E000000000008F8DFDA03C0880003C05600099
69328 +:1059F00095AC003E95AB003C02683025000C4C0095
69329 +:105A0000316AFFFF012A3825ACA7201024020202C8
69330 +:105A1000ACA6201452400001240200028FBF0020D7
69331 +:105A20008FB3001C8FB200188FB100148FB000101C
69332 +:105A300027BD002803E00008ACA2200027BDFFE03E
69333 +:105A4000AFB20018AFB10014AFB00010AFBF001C70
69334 +:105A50003C1160008E2320748F82000430D0FFFF41
69335 +:105A600030F2FFFF1062000C2406008F0E00006E63
69336 +:105A7000000000003C06801F0010440034C5FF00F9
69337 +:105A80000112382524040002AE2720100000302126
69338 +:105A9000AE252014AE2420008FBF001C8FB200184A
69339 +:105AA0008FB100148FB0001000C0102103E0000877
69340 +:105AB00027BD002027BDFFE0AFB0001030D0FFFFB2
69341 +:105AC000AFBF0018AFB100140E00006E30F1FFFF41
69342 +:105AD00000102400009180253C036000AC70201071
69343 +:105AE0008FBF00188FB100148FB000102402000483
69344 +:105AF000AC62200027BD002003E000080000102158
69345 +:105B000027BDFFE03C046018AFBF0018AFB1001420
69346 +:105B1000AFB000108C8850002403FF7F34028071E6
69347 +:105B20000103382434E5380C241F00313C1980006F
69348 +:105B3000AC8550003C11800AAC8253BCAF3F0008DA
69349 +:105B40000E00054CAF9100400E00050A3C116000AC
69350 +:105B50000E00007D000000008E3008083C0F570941
69351 +:105B60002418FFF00218602435EEE00035EDF00057
69352 +:105B7000018E5026018D58262D4600012D69000109
69353 +:105B8000AF86004C0E000D09AF8900503C06601630
69354 +:105B90008CC700003C0860148D0500A03C03FFFF8B
69355 +:105BA00000E320243C02535300052FC2108200550D
69356 +:105BB00034D07C00960201F2A780006C10400003F4
69357 +:105BC000A780007C384B1E1EA78B006C960201F844
69358 +:105BD000104000048F8D0050384C1E1EA78C007C96
69359 +:105BE0008F8D005011A000058F83004C240E0020E3
69360 +:105BF000A78E007CA78E006C8F83004C1060000580
69361 +:105C00009785007C240F0020A78F007CA78F006C55
69362 +:105C10009785007C2CB8008153000001240500808A
69363 +:105C20009784006C2C91040152200001240404008C
69364 +:105C30001060000B3C0260008FBF00188FB1001491
69365 +:105C40008FB0001027BD0020A784006CA785007CC2
69366 +:105C5000A380007EA780007403E00008A780009264
69367 +:105C60008C4704382419103C30FFFFFF13F9000360
69368 +:105C700030A8FFFF1100004624030050A380007EDF
69369 +:105C80009386007E50C00024A785007CA780007CFE
69370 +:105C90009798007CA780006CA7800074A780009272
69371 +:105CA0003C010800AC3800800E00078700000000AF
69372 +:105CB0003C0F60008DED0808240EFFF03C0B600ED9
69373 +:105CC000260C0388356A00100000482100002821B6
69374 +:105CD00001AE20243C105709AF8C0010AF8A004859
69375 +:105CE000AF89001810900023AF8500148FBF0018F3
69376 +:105CF0008FB100148FB0001027BD002003E0000812
69377 +:105D0000AF80005400055080014648218D260004D4
69378 +:105D10000A00014800D180219798007CA784006C7C
69379 +:105D2000A7800074A78000923C010800AC38008076
69380 +:105D30000E000787000000003C0F60008DED080892
69381 +:105D4000240EFFF03C0B600E260C0388356A001011
69382 +:105D5000000048210000282101AE20243C105709F2
69383 +:105D6000AF8C0010AF8A0048AF8900181490FFDF95
69384 +:105D7000AF85001424110001AF9100548FBF0018AB
69385 +:105D80008FB100148FB0001003E0000827BD002081
69386 +:105D90000A00017BA383007E3083FFFF8F880040D1
69387 +:105DA0008F87003C000321403C0580003C020050EE
69388 +:105DB000008248253C0660003C0A010034AC040027
69389 +:105DC0008CCD08E001AA58241160000500000000F5
69390 +:105DD0008CCF08E024E7000101EA7025ACCE08E092
69391 +:105DE0008D19001001805821ACB900388D180014AD
69392 +:105DF000ACB8003CACA9003000000000000000007E
69393 +:105E00000000000000000000000000000000000092
69394 +:105E100000000000000000003C0380008C640000D3
69395 +:105E2000308200201040FFFD3C0F60008DED08E047
69396 +:105E30003C0E010001AE18241460FFE100000000D8
69397 +:105E4000AF87003C03E00008AF8B00588F8500400F
69398 +:105E5000240BFFF03C06800094A7001A8CA90024B4
69399 +:105E600030ECFFFF000C38C000EB5024012A402129
69400 +:105E7000ACC8003C8CA400248CC3003C00831023DD
69401 +:105E800018400033000000008CAD002025A2000166
69402 +:105E90003C0F0050ACC2003835EE00103C068000CC
69403 +:105EA000ACCE003000000000000000000000000048
69404 +:105EB00000000000000000000000000000000000E2
69405 +:105EC000000000003C0480008C9900003338002062
69406 +:105ED0001300FFFD30E20008104000173C0980006D
69407 +:105EE0008C880408ACA800108C83040CACA30014AC
69408 +:105EF0003C1900203C188000AF19003094AE001807
69409 +:105F000094AF001C01CF3021A4A6001894AD001A54
69410 +:105F100025A70001A4A7001A94AB001A94AC001E98
69411 +:105F2000118B00030000000003E0000800000000E7
69412 +:105F300003E00008A4A0001A8D2A0400ACAA0010F7
69413 +:105F40008D240404ACA400140A0002183C1900209B
69414 +:105F50008CA200200A0002003C0F00500A0001EE53
69415 +:105F60000000000027BDFFE8AFBF00100E000232A6
69416 +:105F7000000000008F8900408FBF00103C038000AC
69417 +:105F8000A520000A9528000A9527000427BD0018BF
69418 +:105F90003105FFFF30E6000F0006150000A22025A6
69419 +:105FA00003E00008AC6400803C0508008CA50020DC
69420 +:105FB0008F83000C27BDFFE8AFB00010AFBF001407
69421 +:105FC00010A300100000802124040001020430040A
69422 +:105FD00000A6202400C3102450440006261000010F
69423 +:105FE000001018802787FDA41480000A006718217C
69424 +:105FF000261000012E0900025520FFF38F83000CAC
69425 +:10600000AF85000C8FBF00148FB0001003E00008B4
69426 +:1060100027BD00188C6800003C058000ACA8002457
69427 +:106020000E000234261000013C0508008CA500205B
69428 +:106030000A0002592E0900022405000100851804F7
69429 +:106040003C0408008C84002027BDFFC8AFBF00348B
69430 +:1060500000831024AFBE0030AFB7002CAFB60028CD
69431 +:10606000AFB50024AFB40020AFB3001CAFB200182E
69432 +:10607000AFB1001410400051AFB000108F84004049
69433 +:10608000948700069488000A00E8302330D5FFFF8B
69434 +:1060900012A0004B8FBF0034948B0018948C000A20
69435 +:1060A000016C50233142FFFF02A2482B1520000251
69436 +:1060B00002A02021004020212C8F000515E00002C5
69437 +:1060C00000809821241300040E0001C102602021E9
69438 +:1060D0008F87004002609021AF80004494F4000A52
69439 +:1060E000026080211260004E3291FFFF3C1670006A
69440 +:1060F0003C1440003C1E20003C1760008F99005863
69441 +:106100008F380000031618241074004F0283F82BF8
69442 +:1061100017E0003600000000107E00478F86004424
69443 +:1061200014C0003A2403000102031023022320219B
69444 +:106130003050FFFF1600FFF13091FFFF8F870040C6
69445 +:106140003C1100203C108000AE11003094EB000A9E
69446 +:106150003C178000024B5021A4EA000A94E9000A8F
69447 +:1061600094E800043123FFFF3106000F00062D00E4
69448 +:106170000065F025AEFE008094F3000A94F6001846
69449 +:1061800012D30036001221408CFF00148CF4001052
69450 +:1061900003E468210000C02101A4782B029870213B
69451 +:1061A00001CF6021ACED0014ACEC001002B238233A
69452 +:1061B00030F5FFFF16A0FFB88F8400408FBF00347A
69453 +:1061C0008FBE00308FB7002C8FB600288FB500240B
69454 +:1061D0008FB400208FB3001C8FB200188FB1001451
69455 +:1061E0008FB0001003E0000827BD00381477FFCC03
69456 +:1061F0008F8600440E000EE202002021004018218C
69457 +:106200008F86004410C0FFC9020310230270702360
69458 +:106210008F87004001C368210A0002E431B2FFFF0A
69459 +:106220008F86004414C0FFC93C1100203C10800040
69460 +:106230000A0002AEAE1100300E00046602002021FA
69461 +:106240000A0002DB00401821020020210E0009395B
69462 +:10625000022028210A0002DB004018210E0001EE76
69463 +:10626000000000000A0002C702B2382327BDFFC8A1
69464 +:10627000AFB7002CAFB60028AFB50024AFB40020F4
69465 +:10628000AFB3001CAFB20018AFB10014AFB0001034
69466 +:10629000AFBF00300E00011B241300013C047FFF40
69467 +:1062A0003C0380083C0220003C010800AC20007048
69468 +:1062B0003496FFFF34770080345200033C1512C03F
69469 +:1062C000241400013C1080002411FF800E000245C0
69470 +:1062D000000000008F8700488F8B00188F89001402
69471 +:1062E0008CEA00EC8CE800E8014B302B01092823F4
69472 +:1062F00000A6102314400006014B18231440000E82
69473 +:106300003C05800002A3602B1180000B0000000000
69474 +:106310003C0560008CEE00EC8CED00E88CA4180CC1
69475 +:10632000AF8E001804800053AF8D00148F8F0010C3
69476 +:10633000ADF400003C0580008CBF00003BF900017B
69477 +:10634000333800011700FFE13C0380008C6201003C
69478 +:1063500024060C0010460009000000008C680100B3
69479 +:106360002D043080548000103C0480008C690100B2
69480 +:106370002D2331811060000C3C0480008CAA0100A8
69481 +:1063800011460004000020218CA6010024C5FF81D5
69482 +:1063900030A400FF8E0B01000E000269AE0B00243A
69483 +:1063A0000A00034F3C0480008C8D01002DAC3300AB
69484 +:1063B00011800022000000003C0708008CE70098D4
69485 +:1063C00024EE00013C010800AC2E00983C04800043
69486 +:1063D0008C8201001440000300000000566000148D
69487 +:1063E0003C0440008C9F01008C9801000000982123
69488 +:1063F00003F1C82400193940330F007F00EF7025E6
69489 +:1064000001D26825AC8D08308C8C01008C85010090
69490 +:10641000258B0100017130240006514030A3007F1C
69491 +:106420000143482501324025AC8808303C04400037
69492 +:10643000AE0401380A00030E000000008C99010030
69493 +:10644000240F0020AC99002092F80000330300FFD5
69494 +:10645000106F000C241F0050547FFFDD3C048000AF
69495 +:106460008C8401000E00154E000000000A00034F4E
69496 +:106470003C04800000963824ACA7180C0A000327BF
69497 +:106480008F8F00108C8501000E0008F72404008017
69498 +:106490000A00034F3C04800000A4102B24030001D9
69499 +:1064A00010400009000030210005284000A4102BF6
69500 +:1064B00004A00003000318405440FFFC00052840DE
69501 +:1064C0005060000A0004182B0085382B54E00004AB
69502 +:1064D0000003184200C33025008520230003184222
69503 +:1064E0001460FFF9000528420004182B03E000089F
69504 +:1064F00000C310213084FFFF30C600FF3C0780003E
69505 +:106500008CE201B80440FFFE00064C000124302557
69506 +:106510003C08200000C820253C031000ACE00180AE
69507 +:10652000ACE50184ACE4018803E00008ACE301B809
69508 +:106530003C0660008CC5201C2402FFF03083020062
69509 +:10654000308601001060000E00A2282434A500014E
69510 +:106550003087300010E0000530830C0034A50004C3
69511 +:106560003C04600003E00008AC85201C1060FFFDC7
69512 +:106570003C04600034A5000803E00008AC85201C42
69513 +:1065800054C0FFF334A500020A0003B03087300086
69514 +:1065900027BDFFE8AFB00010AFBF00143C0760009C
69515 +:1065A000240600021080001100A080218F83005873
69516 +:1065B0000E0003A78C6400188F8200580000202171
69517 +:1065C000240600018C45000C0E000398000000001A
69518 +:1065D0001600000224020003000010218FBF0014E7
69519 +:1065E0008FB0001003E0000827BD00188CE8201CC5
69520 +:1065F0002409FFF001092824ACE5201C8F870058EE
69521 +:106600000A0003CD8CE5000C3C02600E00804021A6
69522 +:1066100034460100240900180000000000000000BA
69523 +:10662000000000003C0A00503C0380003547020097
69524 +:10663000AC68003834640400AC65003CAC670030E2
69525 +:106640008C6C0000318B00201160FFFD2407FFFFE0
69526 +:106650002403007F8C8D00002463FFFF248400044A
69527 +:10666000ACCD00001467FFFB24C60004000000004E
69528 +:10667000000000000000000024A402000085282B78
69529 +:106680003C0300203C0E80002529FFFF010540212E
69530 +:10669000ADC300301520FFE00080282103E0000892
69531 +:1066A000000000008F82005827BDFFD8AFB3001C48
69532 +:1066B000AFBF0020AFB20018AFB10014AFB00010F0
69533 +:1066C00094460002008098218C5200182CC300814F
69534 +:1066D0008C4800048C4700088C51000C8C49001039
69535 +:1066E000106000078C4A00142CC4000414800013AE
69536 +:1066F00030EB000730C5000310A0001000000000C0
69537 +:106700002410008B02002021022028210E00039873
69538 +:10671000240600031660000224020003000010217A
69539 +:106720008FBF00208FB3001C8FB200188FB10014F0
69540 +:106730008FB0001003E0000827BD00281560FFF1AE
69541 +:106740002410008B3C0C80003C030020241F00011F
69542 +:10675000AD830030AF9F0044000000000000000047
69543 +:10676000000000002419FFF024D8000F031978243A
69544 +:106770003C1000D0AD88003801F0702524CD000316
69545 +:106780003C08600EAD87003C35850400AD8E0030BE
69546 +:10679000000D38823504003C3C0380008C6B000007
69547 +:1067A000316200201040FFFD0000000010E00008F2
69548 +:1067B00024E3FFFF2407FFFF8CA800002463FFFFF2
69549 +:1067C00024A50004AC8800001467FFFB24840004A7
69550 +:1067D0003C05600EACA60038000000000000000080
69551 +:1067E000000000008F8600543C0400203C0780001D
69552 +:1067F000ACE4003054C000060120202102402021DA
69553 +:106800000E0003A7000080210A00041D02002021C1
69554 +:106810000E0003DD01402821024020210E0003A7C5
69555 +:10682000000080210A00041D0200202127BDFFE096
69556 +:10683000AFB200183092FFFFAFB10014AFBF001C21
69557 +:10684000AFB000101640000D000088210A0004932C
69558 +:106850000220102124050003508500278CE5000C40
69559 +:106860000000000D262800013111FFFF24E2002066
69560 +:106870000232802B12000019AF8200588F82004430
69561 +:10688000144000168F8700583C0670003C0320001F
69562 +:106890008CE5000000A62024148300108F84006083
69563 +:1068A000000544023C09800000A980241480FFE90F
69564 +:1068B000310600FF2CCA000B5140FFEB26280001D7
69565 +:1068C000000668803C0E080025CE575801AE6021B6
69566 +:1068D0008D8B0000016000080000000002201021E4
69567 +:1068E0008FBF001C8FB200188FB100148FB0001042
69568 +:1068F00003E0000827BD00200E0003982404008454
69569 +:106900001600FFD88F8700580A000474AF8000601B
69570 +:10691000020028210E0003BF240400018F870058C5
69571 +:106920000A000474AF820060020028210E0003BF39
69572 +:10693000000020210A0004A38F8700580E000404E1
69573 +:10694000020020218F8700580A000474AF82006083
69574 +:1069500030AFFFFF000F19C03C0480008C9001B8DD
69575 +:106960000600FFFE3C1920043C181000AC83018097
69576 +:10697000AC800184AC990188AC9801B80A00047518
69577 +:106980002628000190E2000390E30002000020218D
69578 +:106990000002FE0000033A0000FF2825240600083C
69579 +:1069A0000E000398000000001600FFDC2402000324
69580 +:1069B0008F870058000010210A000474AF82006025
69581 +:1069C00090E8000200002021240600090A0004C308
69582 +:1069D00000082E0090E4000C240900FF308500FF21
69583 +:1069E00010A900150000302190F9000290F8000372
69584 +:1069F000308F00FF94EB000400196E000018740043
69585 +:106A0000000F62000186202501AE5025014B28258C
69586 +:106A10003084FF8B0A0004C32406000A90E30002BE
69587 +:106A200090FF0004000020210003360000DF28252D
69588 +:106A30000A0004C32406000B0A0004D52406008BB8
69589 +:106A4000000449C23127003F000443423C02800059
69590 +:106A500000082040240316802CE60020AC43002CC4
69591 +:106A600024EAFFE02482000114C0000330A900FFE3
69592 +:106A700000801021314700FF000260803C0D800043
69593 +:106A8000240A0001018D20213C0B000E00EA28049D
69594 +:106A9000008B302111200005000538278CCE000026
69595 +:106AA00001C5382503E00008ACC700008CD8000001
69596 +:106AB0000307782403E00008ACCF000027BDFFE007
69597 +:106AC000AFB10014AFB00010AFBF00183C076000BA
69598 +:106AD0008CE408083402F0003C1160003083F000C0
69599 +:106AE000240501C03C04800E000030211062000625
69600 +:106AF000241000018CEA08083149F0003928E00030
69601 +:106B00000008382B000780403C0D0200AE2D081411
69602 +:106B1000240C16803C0B80008E2744000E000F8B47
69603 +:106B2000AD6C002C120000043C02169124050001FB
69604 +:106B3000120500103C023D2C345800E0AE384408E9
69605 +:106B40003C1108008E31007C8FBF00183C066000AD
69606 +:106B500000118540360F16808FB100148FB00010E1
69607 +:106B60003C0E020027BD0020ACCF442003E000080B
69608 +:106B7000ACCE08103C0218DA345800E0AE384408B5
69609 +:106B80003C1108008E31007C8FBF00183C0660006D
69610 +:106B900000118540360F16808FB100148FB00010A1
69611 +:106BA0003C0E020027BD0020ACCF442003E00008CB
69612 +:106BB000ACCE08100A0004EB240500010A0004EB27
69613 +:106BC0000000282124020400A7820024A780001CC2
69614 +:106BD000000020213C06080024C65A582405FFFF67
69615 +:106BE00024890001000440803124FFFF01061821A0
69616 +:106BF0002C87002014E0FFFAAC6500002404040098
69617 +:106C0000A7840026A780001E000020213C06080063
69618 +:106C100024C65AD82405FFFF248D0001000460809B
69619 +:106C200031A4FFFF018658212C8A00201540FFFA6D
69620 +:106C3000AD650000A7800028A7800020A780002263
69621 +:106C4000000020213C06080024C65B582405FFFFF5
69622 +:106C5000249900010004C0803324FFFF030678213B
69623 +:106C60002C8E000415C0FFFAADE500003C05600065
69624 +:106C70008CA73D002403E08F00E31024344601403C
69625 +:106C800003E00008ACA63D002487007F000731C266
69626 +:106C900024C5FFFF000518C2246400013082FFFFF5
69627 +:106CA000000238C0A78400303C010800AC27003047
69628 +:106CB000AF80002C0000282100002021000030219E
69629 +:106CC0002489000100A728213124FFFF2CA81701E7
69630 +:106CD000110000032C8300801460FFF924C600011A
69631 +:106CE00000C02821AF86002C10C0001DA786002AF6
69632 +:106CF00024CAFFFF000A11423C08080025085B581F
69633 +:106D00001040000A00002021004030212407FFFF2E
69634 +:106D1000248E00010004688031C4FFFF01A86021B7
69635 +:106D20000086582B1560FFFAAD87000030A2001FC7
69636 +:106D30005040000800043080240300010043C804D0
69637 +:106D400000041080004878212738FFFF03E0000886
69638 +:106D5000ADF8000000C820212405FFFFAC8500002D
69639 +:106D600003E000080000000030A5FFFF30C6FFFF71
69640 +:106D700030A8001F0080602130E700FF0005294295
69641 +:106D80000000502110C0001D24090001240B000147
69642 +:106D900025180001010B2004330800FF0126782686
69643 +:106DA000390E00202DED00012DC2000101A2182591
69644 +:106DB0001060000D014450250005C880032C4021BF
69645 +:106DC0000100182110E0000F000A20278D040000A8
69646 +:106DD000008A1825AD03000024AD00010000402109
69647 +:106DE0000000502131A5FFFF252E000131C9FFFF12
69648 +:106DF00000C9102B1040FFE72518000103E0000830
69649 +:106E0000000000008D0A0000014440240A0005D162
69650 +:106E1000AC68000027BDFFE830A5FFFF30C6FFFFCC
69651 +:106E2000AFB00010AFBF001430E7FFFF00005021EB
69652 +:106E30003410FFFF0000602124AF001F00C0482174
69653 +:106E4000241800012419002005E0001601E010219B
69654 +:106E50000002F943019F682A0009702B01AE40240B
69655 +:106E600011000017000C18800064102110E00005CC
69656 +:106E70008C4B000000F840040008382301675824B8
69657 +:106E800000003821154000410000402155600016E7
69658 +:106E90003169FFFF258B0001316CFFFF05E1FFEC3D
69659 +:106EA00001E0102124A2003E0002F943019F682A5C
69660 +:106EB0000009702B01AE40241500FFEB000C188078
69661 +:106EC000154600053402FFFF020028210E0005B51B
69662 +:106ED00000003821020010218FBF00148FB0001075
69663 +:106EE00003E0000827BD00181520000301601821E9
69664 +:106EF000000B1C0224080010306A00FF154000053A
69665 +:106F0000306E000F250D000800031A0231A800FFA3
69666 +:106F1000306E000F15C00005307F000325100004FF
69667 +:106F200000031902320800FF307F000317E000055C
69668 +:106F3000386900012502000200031882304800FF72
69669 +:106F4000386900013123000110600004310300FFA3
69670 +:106F5000250A0001314800FF310300FF000C6940A1
69671 +:106F600001A34021240A000110CAFFD53110FFFF00
69672 +:106F7000246E000131C800FF1119FFC638C9000195
69673 +:106F80002D1F002053E0001C258B0001240D000163
69674 +:106F90000A000648240E002051460017258B0001E8
69675 +:106FA00025090001312800FF2D0900205120001281
69676 +:106FB000258B000125430001010D5004014B1024D5
69677 +:106FC000250900011440FFF4306AFFFF3127FFFF5D
69678 +:106FD00010EE000C2582FFFF304CFFFF0000502117
69679 +:106FE0003410FFFF312800FF2D0900205520FFF24B
69680 +:106FF00025430001258B0001014648260A000602B0
69681 +:10700000316CFFFF00003821000050210A000654B7
69682 +:107010003410FFFF27BDFFD8AFB0001030F0FFFFE6
69683 +:10702000AFB10014001039423211FFE000071080A8
69684 +:10703000AFB3001C00B1282330D3FFFFAFB200185C
69685 +:1070400030A5FFFF00809021026030210044202104
69686 +:10705000AFBF00200E0005E03207001F022288218A
69687 +:107060003403FFFF0240202102002821026030216A
69688 +:1070700000003821104300093231FFFF02201021A7
69689 +:107080008FBF00208FB3001C8FB200188FB1001487
69690 +:107090008FB0001003E0000827BD00280E0005E0B7
69691 +:1070A0000000000000408821022010218FBF002036
69692 +:1070B0008FB3001C8FB200188FB100148FB0001076
69693 +:1070C00003E0000827BD0028000424003C03600002
69694 +:1070D000AC603D0810A00002348210063482101605
69695 +:1070E00003E00008AC623D0427BDFFE0AFB0001034
69696 +:1070F000309000FF2E020006AFBF001810400008BD
69697 +:10710000AFB10014001030803C03080024635784A2
69698 +:1071100000C328218CA400000080000800000000AB
69699 +:10712000000020218FBF00188FB100148FB0001015
69700 +:107130000080102103E0000827BD00209791002A5D
69701 +:1071400016200051000020213C020800904200332C
69702 +:107150000A0006BB00000000978D002615A0003134
69703 +:10716000000020210A0006BB2402000897870024A3
69704 +:1071700014E0001A00001821006020212402000100
69705 +:107180001080FFE98FBF0018000429C2004530219C
69706 +:1071900000A6582B1160FFE43C0880003C0720004B
69707 +:1071A000000569C001A76025AD0C00203C038008E4
69708 +:1071B0002402001F2442FFFFAC6000000441FFFDD9
69709 +:1071C0002463000424A5000100A6702B15C0FFF560
69710 +:1071D000000569C00A0006A58FBF00189787001C2C
69711 +:1071E0003C04080024845A58240504000E0006605C
69712 +:1071F00024060001978B002424440001308AFFFFFD
69713 +:107200002569FFFF2D48040000402821150000409B
69714 +:10721000A789002424AC3800000C19C00A0006B964
69715 +:10722000A780001C9787001E3C04080024845AD8BD
69716 +:10723000240504000E00066024060001979900262C
69717 +:10724000244400013098FFFF272FFFFF2F0E04007A
69718 +:107250000040882115C0002CA78F0026A780001EA3
69719 +:107260003A020003262401003084FFFF0E00068D41
69720 +:107270002C4500010011F8C027F00100001021C0CA
69721 +:107280000A0006BB240200089785002E978700227B
69722 +:107290003C04080024845B580E00066024060001AC
69723 +:1072A0009787002A8F89002C2445000130A8FFFF12
69724 +:1072B00024E3FFFF0109302B0040802114C0001897
69725 +:1072C000A783002AA7800022978500300E000F7543
69726 +:1072D00002002021244A05003144FFFF0E00068DE4
69727 +:1072E000240500013C05080094A500320E000F752E
69728 +:1072F00002002021244521003C0208009042003376
69729 +:107300000A0006BB000521C00A0006F3A784001E80
69730 +:1073100024AC3800000C19C00A0006B9A784001C70
69731 +:107320000A00070DA7850022308400FF27BDFFE873
69732 +:107330002C820006AFBF0014AFB000101040001543
69733 +:1073400000A03821000440803C0308002463579CBF
69734 +:10735000010328218CA40000008000080000000028
69735 +:1073600024CC007F000751C2000C59C23170FFFFCE
69736 +:107370002547C40030E5FFFF2784001C02003021B0
69737 +:107380000E0005B52407000197860028020620217B
69738 +:10739000A78400288FBF00148FB0001003E00008FE
69739 +:1073A00027BD00183C0508008CA50030000779C2F5
69740 +:1073B0000E00038125E4DF003045FFFF3C04080098
69741 +:1073C00024845B58240600010E0005B52407000143
69742 +:1073D000978E002A8FBF00148FB0001025CD0001BA
69743 +:1073E00027BD001803E00008A78D002A0007C9C2C6
69744 +:1073F0002738FF00001878C231F0FFFF3C04080076
69745 +:1074000024845AD802002821240600010E0005B564
69746 +:1074100024070001978D0026260E0100000E84002F
69747 +:1074200025AC00013C0B6000A78C0026AD603D0838
69748 +:1074300036040006000030213C0760008CE23D0469
69749 +:10744000305F000617E0FFFD24C9000100061B00A5
69750 +:10745000312600FF006440252CC50004ACE83D0443
69751 +:1074600014A0FFF68FBF00148FB0001003E00008D7
69752 +:1074700027BD0018000751C22549C8002406000195
69753 +:10748000240700013C04080024845A580E0005B566
69754 +:107490003125FFFF978700248FBF00148FB00010A5
69755 +:1074A00024E6000127BD001803E00008A786002499
69756 +:1074B0003C0660183C090800252900FCACC9502C8A
69757 +:1074C0008CC850003C0580003C020002350700805B
69758 +:1074D000ACC750003C04080024841FE03C030800B3
69759 +:1074E00024631F98ACA50008ACA2000C3C01080066
69760 +:1074F000AC2459A43C010800AC2359A803E00008BF
69761 +:107500002402000100A030213C1C0800279C59AC3B
69762 +:107510003C0C04003C0B0002008B3826008C4026FB
69763 +:107520002CE200010007502B2D050001000A4880C5
69764 +:107530003C030800246359A4004520250123182199
69765 +:107540001080000300001021AC660000240200013E
69766 +:1075500003E00008000000003C1C0800279C59AC18
69767 +:107560003C0B04003C0A0002008A3026008B3826BF
69768 +:107570002CC200010006482B2CE5000100094080C8
69769 +:107580003C030800246359A4004520250103182169
69770 +:1075900010800005000010213C0C0800258C1F986D
69771 +:1075A000AC6C00002402000103E0000800000000B1
69772 +:1075B0003C0900023C080400008830260089382677
69773 +:1075C0002CC30001008028212CE400010083102539
69774 +:1075D0001040000B000030213C1C0800279C59ACD7
69775 +:1075E0003C0A80008D4E00082406000101CA68256F
69776 +:1075F000AD4D00088D4C000C01855825AD4B000C9D
69777 +:1076000003E0000800C010213C1C0800279C59AC76
69778 +:107610003C0580008CA6000C0004202724020001F9
69779 +:1076200000C4182403E00008ACA3000C3C020002D4
69780 +:107630001082000B3C0560003C070400108700032B
69781 +:107640000000000003E00008000000008CA908D042
69782 +:10765000240AFFFD012A402403E00008ACA808D05A
69783 +:107660008CA408D02406FFFE0086182403E000083E
69784 +:10767000ACA308D03C05601A34A600108CC300806F
69785 +:1076800027BDFFF88CC50084AFA3000093A40000C1
69786 +:107690002402001010820003AFA5000403E00008DC
69787 +:1076A00027BD000893A7000114E0001497AC000266
69788 +:1076B00097B800023C0F8000330EFFFC01CF682119
69789 +:1076C000ADA50000A3A000003C0660008CC708D058
69790 +:1076D0002408FFFE3C04601A00E82824ACC508D04A
69791 +:1076E0008FA300048FA200003499001027BD00086A
69792 +:1076F000AF22008003E00008AF2300843C0B800031
69793 +:10770000318AFFFC014B48218D2800000A00080C3B
69794 +:10771000AFA8000427BDFFE8AFBF00103C1C080065
69795 +:10772000279C59AC3C0580008CA4000C8CA2000462
69796 +:107730003C0300020044282410A0000A00A31824DF
69797 +:107740003C0604003C0400021460000900A610245A
69798 +:107750001440000F3C0404000000000D3C1C080015
69799 +:10776000279C59AC8FBF001003E0000827BD00180C
69800 +:107770003C0208008C4259A40040F80900000000B7
69801 +:107780003C1C0800279C59AC0A0008358FBF00102C
69802 +:107790003C0208008C4259A80040F8090000000093
69803 +:1077A0000A00083B000000003C0880008D0201B880
69804 +:1077B0000440FFFE35090180AD2400003C031000A9
69805 +:1077C00024040040AD250004A1240008A1260009DE
69806 +:1077D000A527000A03E00008AD0301B83084FFFFCD
69807 +:1077E0000080382130A5FFFF000020210A00084555
69808 +:1077F000240600803087FFFF8CA400002406003898
69809 +:107800000A000845000028218F8300788F860070C9
69810 +:107810001066000B008040213C07080024E75B68ED
69811 +:10782000000328C000A710218C440000246300013D
69812 +:10783000108800053063000F5466FFFA000328C06B
69813 +:1078400003E00008000010213C07080024E75B6CFF
69814 +:1078500000A7302103E000088CC200003C03900028
69815 +:1078600034620001008220253C038000AC640020CB
69816 +:107870008C65002004A0FFFE0000000003E000086B
69817 +:10788000000000003C0280003443000100832025FA
69818 +:1078900003E00008AC44002027BDFFE0AFB10014B6
69819 +:1078A0003091FFFFAFB00010AFBF001812200013DF
69820 +:1078B00000A080218CA20000240400022406020003
69821 +:1078C0001040000F004028210E0007250000000096
69822 +:1078D00000001021AE000000022038218FBF0018E8
69823 +:1078E0008FB100148FB0001000402021000028212B
69824 +:1078F000000030210A00084527BD00208CA20000AE
69825 +:10790000022038218FBF00188FB100148FB00010F3
69826 +:107910000040202100002821000030210A000845F5
69827 +:1079200027BD002000A010213087FFFF8CA5000498
69828 +:107930008C4400000A000845240600068F83FD9C45
69829 +:1079400027BDFFE8AFBF0014AFB00010906700087C
69830 +:10795000008010210080282130E600400000202116
69831 +:1079600010C000088C5000000E0000BD0200202155
69832 +:10797000020020218FBF00148FB000100A000548BC
69833 +:1079800027BD00180E0008A4000000000E0000BD76
69834 +:1079900002002021020020218FBF00148FB00010B0
69835 +:1079A0000A00054827BD001827BDFFE0AFB0001052
69836 +:1079B0008F90FD9CAFBF001CAFB20018AFB1001498
69837 +:1079C00092060001008088210E00087230D2000467
69838 +:1079D00092040005001129C2A6050000348300406E
69839 +:1079E000A20300050E00087C022020210E00054A9B
69840 +:1079F0000220202124020001AE02000C02202821D6
69841 +:107A0000A602001024040002A602001224060200AE
69842 +:107A1000A60200140E000725A60200161640000F4D
69843 +:107A20008FBF001C978C00743C0B08008D6B007896
69844 +:107A30002588FFFF3109FFFF256A0001012A382B45
69845 +:107A400010E00006A78800743C0F6006240E0016A4
69846 +:107A500035ED0010ADAE00508FBF001C8FB2001886
69847 +:107A60008FB100148FB0001003E0000827BD002084
69848 +:107A700027BDFFE0AFB10014AFBF0018AFB00010DA
69849 +:107A80001080000400A088212402008010820007DA
69850 +:107A9000000000000000000D8FBF00188FB100141F
69851 +:107AA0008FB0001003E0000827BD00200E00087210
69852 +:107AB00000A020218F86FD9C0220202190C500057A
69853 +:107AC0000E00087C30B000FF2403003E1603FFF1D7
69854 +:107AD0003C0680008CC401780480FFFE34C801405D
69855 +:107AE000240900073C071000AD11000002202021EE
69856 +:107AF000A10900048FBF00188FB100148FB00010CF
69857 +:107B0000ACC701780A0008C527BD002027BDFFE0EB
69858 +:107B1000AFB00010AFBF0018AFB100143C10800030
69859 +:107B20008E110020000000000E00054AAE04002067
69860 +:107B3000AE1100208FBF00188FB100148FB000105D
69861 +:107B400003E0000827BD00203084FFFF00803821BB
69862 +:107B50002406003500A020210A0008450000282145
69863 +:107B60003084FFFF008038212406003600A0202149
69864 +:107B70000A0008450000282127BDFFD0AFB500242A
69865 +:107B80003095FFFFAFB60028AFB40020AFBF002C88
69866 +:107B9000AFB3001CAFB20018AFB10014AFB000100B
69867 +:107BA00030B6FFFF12A000270000A0218F920058DE
69868 +:107BB0008E4300003C0680002402004000033E0289
69869 +:107BC00000032C0230E4007F006698241482001D1C
69870 +:107BD00030A500FF8F8300682C68000A1100001098
69871 +:107BE0008F8D0044000358803C0C0800258C57B84A
69872 +:107BF000016C50218D4900000120000800000000A8
69873 +:107C000002D4302130C5FFFF0E0008522404008446
69874 +:107C1000166000028F920058AF8000688F8D00447C
69875 +:107C20002659002026980001032090213314FFFFDD
69876 +:107C300015A00004AF9900580295202B1480FFDC9A
69877 +:107C400000000000028010218FBF002C8FB600289A
69878 +:107C50008FB500248FB400208FB3001C8FB20018A2
69879 +:107C60008FB100148FB0001003E0000827BD003072
69880 +:107C70002407003414A70149000000009247000EB9
69881 +:107C80008F9FFDA08F90FD9C24181600A3E700197C
69882 +:107C90009242000D3C0880003C07800CA3E20018D3
69883 +:107CA000964A00123C0D60003C117FFFA60A005C62
69884 +:107CB000964400103623FFFF240200053099FFFF91
69885 +:107CC000AE1900548E46001CAD1800288CEF000041
69886 +:107CD0008DAE444801E6482601C93021AE06003881
69887 +:107CE0008E05003824CB00013C0E7F00AE05003C21
69888 +:107CF0008E0C003CAFEC0004AE0B00208E13002075
69889 +:107D0000AE13001CA3E0001BAE03002CA3E2001284
69890 +:107D10008E4A001424130050AE0A00348E0400343E
69891 +:107D2000AFE400148E590018AE1900489258000CA8
69892 +:107D3000A218004E920D000835AF0020A20F0008D7
69893 +:107D40008E090018012E282434AC4000AE0C001817
69894 +:107D5000920B0000317200FF1253027F2403FF8058
69895 +:107D60003C04080024845BE80E0008AA0000000020
69896 +:107D70003C1108008E315BE80E00087202202021C1
69897 +:107D80002405000424080001A2050025022020216A
69898 +:107D90000E00087CA20800053C0580008CB001782C
69899 +:107DA0000600FFFE8F92005834AE0140240F0002FF
69900 +:107DB0003C091000ADD10000A1CF0004ACA90178AE
69901 +:107DC0000A000962AF8000682CAD003751A0FF9413
69902 +:107DD0008F8D0044000580803C110800263157E05B
69903 +:107DE000021178218DEE000001C0000800000000A3
69904 +:107DF0002411000414B1008C3C0780003C080800EA
69905 +:107E00008D085BE88F86FD9CACE800208E4500085D
69906 +:107E10008F99FDA0240D0050ACC500308E4C000899
69907 +:107E2000ACCC00508E4B000CACCB00348E43001019
69908 +:107E3000ACC300388E4A0010ACCA00548E42001405
69909 +:107E4000ACC2003C8E5F0018AF3F00048E50001C97
69910 +:107E5000ACD0002090C40000309800FF130D024AFF
69911 +:107E6000000000008CC400348CD00030009030231F
69912 +:107E700004C000F12404008C126000EE2402000310
69913 +:107E80000A000962AF8200682419000514B900666F
69914 +:107E90003C0580003C0808008D085BE88F86FD9C4F
69915 +:107EA000ACA800208E4C00048F8AFDA0240720007F
69916 +:107EB000ACCC001C924B000824120008A14B001906
69917 +:107EC0008F82005890430009A14300188F85005805
69918 +:107ED00090BF000A33E400FF1092001028890009C7
69919 +:107EE000152000BA240E0002240D0020108D000B76
69920 +:107EF000340780002898002117000008240740005C
69921 +:107F000024100040109000053C0700012419008057
69922 +:107F1000109900023C070002240740008CC20018A0
69923 +:107F20003C03FF00004350240147F825ACDF001854
69924 +:107F300090B2000BA0D200278F8300589464000CED
69925 +:107F4000108001FE000000009467000C3C1F8000C0
69926 +:107F50002405FFBFA4C7005C9063000E2407000443
69927 +:107F6000A0C300088F820058904A000FA0CA0009E1
69928 +:107F70008F8900588D3200108FE400740244C823AA
69929 +:107F8000ACD900588D300014ACD0002C95380018B6
69930 +:107F9000330DFFFFACCD00409531001A322FFFFFAB
69931 +:107FA000ACCF00448D2E001CACCE00489128000EB2
69932 +:107FB000A0C8000890CC000801855824126001B6C2
69933 +:107FC000A0CB00088F9200580A000962AF870068B2
69934 +:107FD0002406000614A600143C0E80003C0F080086
69935 +:107FE0008DEF5BE88F85FD98ADCF00208E4900189E
69936 +:107FF0008F86FD9C8F8BFDA0ACA900008CC800383B
69937 +:1080000024040005ACA800048CCC003C1260008164
69938 +:10801000AD6C00000A000962AF84006824110007FB
69939 +:1080200010B1004B240400063C05080024A55BE8C1
69940 +:108030000E000881240400818F9200580013102B39
69941 +:108040000A000962AF820068241F002314BFFFF6F4
69942 +:108050003C0C80003C0508008CA55BE88F8BFDA0E4
69943 +:10806000AD8500208F91FD9C8E4600042564002084
69944 +:1080700026450014AE260028240600030E000F81BA
69945 +:10808000257000308F87005802002021240600034D
69946 +:108090000E000F8124E500083C04080024845BE8FE
69947 +:1080A0000E0008AA0000000092230000240A0050DD
69948 +:1080B000306200FF544AFFE18F9200580E000F6CAF
69949 +:1080C000000000000A000A6A8F920058240800335A
69950 +:1080D00014A800323C0380003C1108008E315BE89C
69951 +:1080E0008F8FFDA0AC7100208E420008240D002867
69952 +:1080F0008F89FD9CADE200308E4A000C24060009F9
69953 +:10810000ADEA00348E5F0010ADFF00388E440014DD
69954 +:10811000ADE400208E590018ADF900248E58001CE3
69955 +:10812000ADF80028A1ED00118E4E00041260003160
69956 +:10813000AD2E00288F9200580A000962AF860068B1
69957 +:10814000240D002214ADFFB8000000002404000735
69958 +:108150003C1008008E105BE83C188000AF10002037
69959 +:108160005660FEAEAF8400683C04080024845BE8DF
69960 +:108170000E0008AA241300508F84FD9C90920000EA
69961 +:10818000325900FF1333014B000000008F9200585A
69962 +:10819000000020210A000962AF8400683C05080045
69963 +:1081A00024A55BE80E000858240400810A000A6A2E
69964 +:1081B0008F92005802D498213265FFFF0E000852BA
69965 +:1081C000240400840A0009628F920058108EFF5325
69966 +:1081D000240704002887000310E00179241100041B
69967 +:1081E000240F0001548FFF4D240740000A000A228B
69968 +:1081F000240701003C05080024A55BE80E0008A444
69969 +:10820000240400828F920058000030210A00096285
69970 +:10821000AF8600683C04080024845BE88CC2003808
69971 +:108220000E0008AA8CC3003C8F9200580A000AC0B6
69972 +:1082300000002021240400823C05080024A55BE8FE
69973 +:108240000E0008A4000000008F92005800001021CA
69974 +:108250000A000962AF8200688E5000048F91FD9C75
69975 +:108260003C078000ACF00020922C00050200282181
69976 +:10827000318B0002156001562404008A8F92FDA004
69977 +:108280002404008D9245001B30A6002014C001502C
69978 +:1082900002002821922E00092408001231C900FF93
69979 +:1082A0001128014B240400810E00087202002021D5
69980 +:1082B0009258001B240F000402002021370D0042B9
69981 +:1082C000A24D001B0E00087CA22F00253C0580005B
69982 +:1082D0008CA401780480FFFE34B90140241F000201
69983 +:1082E000AF300000A33F00048F9200583C101000F4
69984 +:1082F000ACB001780A000A6B0013102B8E500004FA
69985 +:108300008F91FD9C3C038000AC700020922A0005F8
69986 +:108310000200282131420002144000172404008A80
69987 +:10832000922C00092412000402002821318B00FF46
69988 +:1083300011720011240400810E0008720200202135
69989 +:108340008F89FDA0240800122405FFFE912F001B39
69990 +:108350000200202135EE0020A12E001BA2280009DA
69991 +:108360009226000500C538240E00087CA2270005CF
69992 +:1083700002002821000020210E0009330000000027
69993 +:108380000A000A6A8F9200588E4C00043C07800055
69994 +:108390003C10080026105BE8ACEC00203C01080013
69995 +:1083A000AC2C5BE8924B0003317100041220013BBE
69996 +:1083B0008F84FD9C24020006A0820009924F001BBE
69997 +:1083C000240EFFC031E9003F012E4025A08800089F
69998 +:1083D0009245000330A6000114C0013200000000E5
69999 +:1083E0008E420008AE0200083C0208008C425BF09E
70000 +:1083F000104001318F90FDA0000219C28F8DFD9CAD
70001 +:10840000A603000C8E4A000C24180001240400145A
70002 +:10841000AE0A002C8E420010AE02001C965F0016C1
70003 +:10842000A61F003C96590014A619003EADB8000CDA
70004 +:10843000A5B80010A5B80012A5B80014A5B800167C
70005 +:1084400012600144A2040011925100033232000272
70006 +:108450002E5300018F920058266200080A0009621C
70007 +:10846000AF8200688E4400043C1980003C068008FE
70008 +:10847000AF2400208E45000890D80000240D005045
70009 +:10848000331100FF122D009C2407008824060009E8
70010 +:108490000E000845000000000A000A6A8F9200588A
70011 +:1084A0008E5000043C0980003C118008AD30002053
70012 +:1084B0009228000024050050310400FF10850110AF
70013 +:1084C0002407008802002021000028210E00084512
70014 +:1084D0002406000E922D00002418FF80020028219F
70015 +:1084E00001B8802524040004240600300E0007256E
70016 +:1084F000A23000000A000A6A8F9200588E500004D1
70017 +:108500008F91FDA03C028000AC500020923F001BE8
70018 +:1085100033F900101320006C240700810200202191
70019 +:10852000000028212406001F0E000845000000005E
70020 +:108530000A000A6A8F9200588E44001C0E00085DE3
70021 +:1085400000000000104000E3004048218F880058E0
70022 +:1085500024070089012020218D05001C240600012C
70023 +:108560000E000845000000000A000A6A8F920058B9
70024 +:10857000964900023C10080026105BE831280004F0
70025 +:10858000110000973C0460008E4E001C3C0F8000E0
70026 +:10859000ADEE00203C010800AC2E5BE896470002DF
70027 +:1085A00030E40001148000E6000000008E42000468
70028 +:1085B000AE0200083C1008008E105BF0120000ECC8
70029 +:1085C0003C0F80008F92FD9C241000018E4E0018FD
70030 +:1085D0008F8DFDA08F9FFD9801CF4825AE490018D3
70031 +:1085E000A2400005AE50000C3C0808008D085BF06E
70032 +:1085F0008F840058A6500010000839C2A6500012FF
70033 +:10860000A6500014A6500016A5A7000C8C8C0008DC
70034 +:108610008F8B00588F8A0058ADAC002C8D63000CF6
70035 +:1086200024070002ADA3001C91460010A1A6001172
70036 +:108630008F82005890450011A3E500088F990058DB
70037 +:1086400093380012A258004E8F910058922F0013B9
70038 +:10865000A1AF00128F920058964E0014A5AE003CB8
70039 +:1086600096490016A5A9003E8E480018ADA8001432
70040 +:108670005660FD6AAF8700683C05080024A55BE8EA
70041 +:108680000E000881000020218F9200580000382140
70042 +:108690000A000962AF8700683C05080024A55BE872
70043 +:1086A0000E0008A4240400828F9200580A000A4D8C
70044 +:1086B000000038210E000F6C000000008F9200585F
70045 +:1086C0000A000AC0000020210E00087202002021CA
70046 +:1086D0009223001B02002021346A00100E00087C47
70047 +:1086E000A22A001B000038210200202100002821BE
70048 +:1086F0000A000BA52406001F9242000C305F000107
70049 +:1087000013E0000300000000964A000EA4CA002CEB
70050 +:10871000924B000C316300025060000600003821CB
70051 +:108720008E470014964C0012ACC7001CA4CC001A53
70052 +:10873000000038210A000B7F240600093C050800D0
70053 +:1087400024A55BE80E0008A42404008B8F92005837
70054 +:108750000A000A4D0013382B3C0C08008D8C5BE896
70055 +:1087600024DFFFFE25930100326B007F016790211B
70056 +:1087700002638824AD110028AE4600E0AE4000E45C
70057 +:108780000A0009B3AE5F001CACC000543C0D0800E9
70058 +:108790008DAD5BE83C18800C37090100ACED00287A
70059 +:1087A0008E510014AD3100E08E4F0014AD2F00E467
70060 +:1087B0008E4E001025C7FFFE0A0009F4AD27001CED
70061 +:1087C0005491FDD6240740000A000A222407100015
70062 +:1087D0000E00092D000000000A000A6A8F9200585E
70063 +:1087E0008C83442C3C12DEAD3651BEEF3C010800B8
70064 +:1087F000AC205BE810710062000000003C196C6264
70065 +:1088000037387970147800082404000297850074C2
70066 +:108810009782006C2404009200A2F82B13E0001948
70067 +:1088200002002821240400020E00069524050200FF
70068 +:108830003C068000ACC200203C010800AC225BE892
70069 +:108840001040000D8F8C0058240A002824040003D7
70070 +:10885000918B0010316300FF546A00012404000171
70071 +:108860000E0000810000000010400004240400837A
70072 +:108870000A000BC28F920058240400833C050800B4
70073 +:1088800024A55BE80E000881000000008F920058CC
70074 +:108890000013382B0A000962AF8700680A000B49F1
70075 +:1088A000240200128E4400080E00085D0000000043
70076 +:1088B0000A000B55AE0200083C05080024A55BE841
70077 +:1088C0000E000858240400878F9200580A000B728B
70078 +:1088D0000013102B240400040E000695240500301C
70079 +:1088E0001440002A004048218F8800582407008344
70080 +:1088F000012020218D05001C0A000BB32406000175
70081 +:108900008F8300788F8600701066FEEE000038219D
70082 +:108910003C07080024E75B6C000320C00087282187
70083 +:108920008CAE000011D0005D246F000131E3000F18
70084 +:108930005466FFFA000320C00A000B8C00003821A7
70085 +:108940008E4400040E00085D000000000A000BC801
70086 +:10895000AE0200083C05080024A55BE80E0008A450
70087 +:10896000240400828F9200580A000B72000010212C
70088 +:108970003C05080024A55BE80A000C7C2404008761
70089 +:108980008C83442C0A000C5B3C196C628F88005865
70090 +:108990003C0780083C0C8000240B0050240A000196
70091 +:1089A000AD820020A0EB0000A0EA000191030004CA
70092 +:1089B000A0E3001891040005A0E400199106000648
70093 +:1089C0003C04080024845B6CA0E6001A91020007B6
70094 +:1089D0003C06080024C65B68A0E2001B9105000865
70095 +:1089E000A0E5001C911F0009A0FF001D9119000ABD
70096 +:1089F000A0F9001E9118000BA0F8001F9112000CA6
70097 +:108A0000A0F200209111000DA0F100219110000EA4
70098 +:108A1000A0F00022910F000FA0EF0023910E001094
70099 +:108A2000A0EE0024910D0011A0ED0025950C00147E
70100 +:108A3000A4EC0028950B00168F8A00708F920078A6
70101 +:108A4000A4EB002A95030018000A10C02545000178
70102 +:108A5000A4E3002C8D1F001C0044C0210046C82147
70103 +:108A600030A5000FAF3F0000AF09000010B20006B4
70104 +:108A7000AF850070000038218D05001C01202021E9
70105 +:108A80000A000BB32406000124AD000131A7000F3A
70106 +:108A9000AF8700780A000CF9000038213C06080076
70107 +:108AA00024C65B680086902100003821ACA000003D
70108 +:108AB0000A000B8CAE4000003C0482013C036000C5
70109 +:108AC00034820E02AC603D68AF80009803E000087D
70110 +:108AD000AC623D6C27BDFFE8AFB000103090FFFFE7
70111 +:108AE000001018422C620041AFBF00141440000275
70112 +:108AF00024040080240300403C010800AC300060E6
70113 +:108B00003C010800AC2300640E000F7500602821B2
70114 +:108B1000244802BF2409FF8001092824001039805D
70115 +:108B2000001030408FBF00148FB0001000A720212C
70116 +:108B300000861821AF8300803C010800AC25005856
70117 +:108B40003C010800AC24005C03E0000827BD0018CD
70118 +:108B5000308300FF30C6FFFF30E400FF3C08800098
70119 +:108B60008D0201B80440FFFE000354000144382583
70120 +:108B70003C09600000E920253C031000AD050180A0
70121 +:108B8000AD060184AD04018803E00008AD0301B81F
70122 +:108B90008F8500583C0A6012354800108CAC0004E8
70123 +:108BA0003C0D600E35A60010318B00062D690001CA
70124 +:108BB000AD0900C48CA70004ACC731808CA20008AA
70125 +:108BC00094A40002ACC231848CA3001C0460000396
70126 +:108BD000A784009003E00008000000008CAF00189C
70127 +:108BE000ACCF31D08CAE001C03E00008ACCE31D449
70128 +:108BF0008F8500588F87FF288F86FF308CAE00044A
70129 +:108C00003C0F601235E80010ACEE00788CAD000827
70130 +:108C1000ACED007C8CAC0010ACCC004C8CAB000CF0
70131 +:108C2000ACCB004894CA00543C0208008C4200447B
70132 +:108C300025490001A4C9005494C400543083FFFFA7
70133 +:108C400010620017000000003C0208008C42004047
70134 +:108C5000A4C200528CA30018ACE300308CA2001414
70135 +:108C6000ACE2002C8CB90018ACF900388CB80014B8
70136 +:108C700024050001ACF800348D0600BC50C5001975
70137 +:108C80008D0200B48D0200B8A4E2004894E40048CC
70138 +:108C9000A4E4004A94E800EA03E000083102FFFF80
70139 +:108CA0003C0208008C420024A4C00054A4C200521C
70140 +:108CB0008CA30018ACE300308CA20014ACE2002CB2
70141 +:108CC0008CB90018ACF900388CB8001424050001E8
70142 +:108CD000ACF800348D0600BC54C5FFEB8D0200B823
70143 +:108CE0008D0200B4A4E2004894E40048A4E4004AE1
70144 +:108CF00094E800EA03E000083102FFFF8F86005885
70145 +:108D00003C0480008CC900088CC80008000929C0F8
70146 +:108D1000000839C0AC87002090C30007306200040F
70147 +:108D20001040003EAF85009490CB0007316A0008E8
70148 +:108D30001140003D8F87FF2C8CCD000C8CCE001491
70149 +:108D400001AE602B11800036000000008CC2000CC8
70150 +:108D5000ACE200708CCB00188F85FF288F88FF3025
70151 +:108D6000ACEB00748CCA00102402FFF8ACAA00D847
70152 +:108D70008CC9000CAD0900608CC4001CACA400D0F0
70153 +:108D800090E3007C0062C824A0F9007C90D8000722
70154 +:108D9000330F000811E000040000000090ED007C9B
70155 +:108DA00035AC0001A0EC007C90CF000731EE000153
70156 +:108DB00011C000060000000090E3007C241800347D
70157 +:108DC00034790002A0F9007CACB800DC90C2000746
70158 +:108DD0003046000210C000040000000090E8007C53
70159 +:108DE00035040004A0E4007C90ED007D3C0B600E97
70160 +:108DF000356A001031AC003FA0EC007D8D4931D4C4
70161 +:108E00003127000110E00002240E0001A0AE00098D
70162 +:108E100094AF00EA03E0000831E2FFFF8F87FF2CE8
70163 +:108E20000A000DAF8CC200140A000DB0ACE0007057
70164 +:108E30008F8C005827BDFFD8AFB3001CAFB200180D
70165 +:108E4000AFB00010AFBF0020AFB10014918F00157C
70166 +:108E50003C13600E3673001031EB000FA38B009CA7
70167 +:108E60008D8F00048D8B0008959F0012959900103E
70168 +:108E70009584001A9598001E958E001C33EDFFFF17
70169 +:108E8000332AFFFF3089FFFF3308FFFF31C7FFFFA1
70170 +:108E90003C010800AC2D00243C010800AC29004432
70171 +:108EA0003C010800AC2A0040AE683178AE67317CE6
70172 +:108EB00091850015959100163C12601236520010F3
70173 +:108EC00030A200FF3230FFFFAE623188AE5000B4F6
70174 +:108ED00091830014959F0018240600010066C804C1
70175 +:108EE00033F8FFFFAE5900B8AE5800BC918E0014A5
70176 +:108EF000AF8F00843C08600631CD00FFAE4D00C04E
70177 +:108F0000918A00159584000E3C07600A314900FFE4
70178 +:108F1000AF8B00883084FFFFAE4900C835110010C8
70179 +:108F20000E000D1034F004103C0208008C4200606A
70180 +:108F30003C0308008C6300643C0608008CC60058A3
70181 +:108F40003C0508008CA5005C8F8400808FBF00204A
70182 +:108F5000AE23004CAE65319CAE030054AE4500DC40
70183 +:108F6000AE6231A0AE6331A4AE663198AE22004845
70184 +:108F70008FB3001CAE0200508FB10014AE4200E06F
70185 +:108F8000AE4300E4AE4600D88FB000108FB2001898
70186 +:108F90000A00057D27BD0028978500929783007CF5
70187 +:108FA00027BDFFE8AFB0001000A3102BAFBF001427
70188 +:108FB000240400058F900058104000552409000239
70189 +:108FC0000E0006958F850080AF8200942404000374
70190 +:108FD0001040004F240900023C0680000E00008172
70191 +:108FE000ACC2002024070001240820001040004DDE
70192 +:108FF00024040005978E00928F8AFF2C24090050CC
70193 +:1090000025C50001A7850092A14900003C0D08007C
70194 +:109010008DAD0064240380008F84FF28000D66005E
70195 +:10902000AD4C0018A5400006954B000A8F85FF3017
70196 +:109030002402FF8001633024A546000A915F000AE4
70197 +:109040000000482103E2C825A159000AA0A0000899
70198 +:10905000A140004CA08000D5961800029783009094
70199 +:109060003C020004A49800EA960F00022418FFBFF7
70200 +:1090700025EE2401A48E00BE8E0D0004ACAD00448C
70201 +:109080008E0C0008ACAC0040A4A00050A4A000547A
70202 +:109090008E0B000C240C0030AC8B00288E060010C8
70203 +:1090A000AC860024A480003EA487004EA487005014
70204 +:1090B000A483003CAD420074AC8800D8ACA800602A
70205 +:1090C000A08700FC909F00D433F9007FA09900D4C2
70206 +:1090D000909000D402187824A08F00D4914E007C88
70207 +:1090E00035CD0001A14D007C938B009CAD480070F4
70208 +:1090F000AC8C00DCA08B00D68F8800888F87008422
70209 +:10910000AC8800C4AC8700C8A5400078A540007AB0
70210 +:109110008FBF00148FB000100120102103E0000861
70211 +:1091200027BD00188F8500940E0007258F860080CC
70212 +:109130000A000E9F2409000227BDFFE0AFB0001017
70213 +:109140008F900058AFB10014AFBF00188E09000413
70214 +:109150000E00054A000921C08E0800048F84FF28F4
70215 +:109160008F82FF30000839C03C068000ACC7002069
70216 +:10917000948500EA904300131460001C30B1FFFF97
70217 +:109180008F8CFF2C918B0008316A00401540000B3A
70218 +:10919000000000008E0D0004022030218FBF001857
70219 +:1091A0008FB100148FB00010240400220000382179
70220 +:1091B000000D29C00A000D2F27BD00200E000098C9
70221 +:1091C000000000008E0D0004022030218FBF001827
70222 +:1091D0008FB100148FB00010240400220000382149
70223 +:1091E000000D29C00A000D2F27BD00200E000090A1
70224 +:1091F000000000008E0D0004022030218FBF0018F7
70225 +:109200008FB100148FB00010240400220000382118
70226 +:10921000000D29C00A000D2F27BD002027BDFFE04B
70227 +:10922000AFB200183092FFFFAFB00010AFBF001C0C
70228 +:10923000AFB100141240001E000080218F8600583C
70229 +:109240008CC500002403000600053F02000514023F
70230 +:1092500030E4000714830016304500FF2CA80006F8
70231 +:1092600011000040000558803C0C0800258C58BCBB
70232 +:10927000016C50218D490000012000080000000011
70233 +:109280008F8E0098240D000111CD005024020002A1
70234 +:10929000AF820098260900013130FFFF24C800206A
70235 +:1092A0000212202B010030211480FFE5AF88005806
70236 +:1092B000020010218FBF001C8FB200188FB1001464
70237 +:1092C0008FB0001003E0000827BD00209387007EC8
70238 +:1092D00054E00034000030210E000DE700000000D3
70239 +:1092E0008F8600580A000EFF240200018F87009825
70240 +:1092F0002405000210E50031240400130000282199
70241 +:1093000000003021240700010E000D2F0000000096
70242 +:109310000A000F008F8600588F83009824020002F5
70243 +:109320001462FFF6240400120E000D9A00000000E3
70244 +:109330008F85009400403021240400120E000D2F70
70245 +:10934000000038210A000F008F8600588F83009894
70246 +:109350002411000310710029241F0002107FFFCE8A
70247 +:1093600026090001240400100000282100003021FB
70248 +:109370000A000F1D240700018F91009824060002A7
70249 +:109380001626FFF9240400100E000E410000000014
70250 +:10939000144000238F9800588F8600580A000EFF53
70251 +:1093A00024020003240400140E000D2F00002821C5
70252 +:1093B0008F8600580A000EFF240200020E000EA93C
70253 +:1093C000000000000A000F008F8600580E000D3FBD
70254 +:1093D00000000000241900022404001400002821C9
70255 +:1093E0000000302100003821AF9900980E000D2FA9
70256 +:1093F000000000000A000F008F8600580E000D5775
70257 +:10940000000000008F8500942419000200403021E4
70258 +:1094100024040010000038210A000F56AF9900986C
70259 +:109420000040382124040010970F0002000028217A
70260 +:109430000E000D2F31E6FFFF8F8600580A000F0047
70261 +:10944000AF9100988F84FF2C3C077FFF34E6FFFF2D
70262 +:109450008C8500182402000100A61824AC83001893
70263 +:1094600003E00008A08200053084FFFF30A5FFFF65
70264 +:109470001080000700001821308200011040000217
70265 +:1094800000042042006518211480FFFB00052840DD
70266 +:1094900003E000080060102110C000070000000079
70267 +:1094A0008CA2000024C6FFFF24A50004AC820000AB
70268 +:1094B00014C0FFFB2484000403E000080000000047
70269 +:1094C00010A0000824A3FFFFAC86000000000000ED
70270 +:1094D000000000002402FFFF2463FFFF1462FFFA74
70271 +:1094E0002484000403E0000800000000000411C010
70272 +:1094F00003E000082442024027BDFFE8AFB000109F
70273 +:1095000000808021AFBF00140E000F9600A0202124
70274 +:1095100000504821240AFF808FBF00148FB0001034
70275 +:10952000012A30243127007F3C08800A3C042100B6
70276 +:1095300000E8102100C428253C03800027BD001846
70277 +:10954000AC650024AF820038AC400000AC6500245C
70278 +:1095500003E00008AC4000403C0D08008DAD005811
70279 +:1095600000056180240AFF8001A45821016C482174
70280 +:10957000012A30243127007F3C08800C3C04210064
70281 +:1095800000E8102100C428253C038000AC650028B9
70282 +:10959000AF82003403E00008AC40002430A5FFFF98
70283 +:1095A0003C0680008CC201B80440FFFE3C086015F8
70284 +:1095B00000A838253C031000ACC40180ACC0018475
70285 +:1095C000ACC7018803E00008ACC301B83C0D08003B
70286 +:1095D0008DAD005800056180240AFF8001A4582148
70287 +:1095E000016C4021010A4824000931403107007F05
70288 +:1095F00000C728253C04200000A418253C02800058
70289 +:10960000AC43083003E00008AF80003427BDFFE81A
70290 +:10961000AFB0001000808021AFBF00140E000F9685
70291 +:1096200000A0202100504821240BFF80012B502452
70292 +:10963000000A39403128007F3C0620008FBF00140B
70293 +:109640008FB0001000E8282534C2000100A21825C0
70294 +:109650003C04800027BD0018AC83083003E00008FC
70295 +:10966000AF8000383C0580088CA700603C0680086D
70296 +:109670000087102B144000112C8340008CA8006040
70297 +:109680002D0340001060000F240340008CC90060CF
70298 +:109690000089282B14A00002008018218CC30060D0
70299 +:1096A00000035A42000B30803C0A0800254A59202A
70300 +:1096B00000CA202103E000088C8200001460FFF340
70301 +:1096C0002403400000035A42000B30803C0A08008B
70302 +:1096D000254A592000CA202103E000088C8200009E
70303 +:1096E0003C05800890A60008938400AB24C20001CA
70304 +:1096F000304200FF3043007F1064000C0002382726
70305 +:10970000A0A200083C0480008C85017804A0FFFE24
70306 +:109710008F8A00A0240900023C081000AC8A014096
70307 +:10972000A089014403E00008AC8801780A00101BFE
70308 +:1097300030E2008027BDFFD8AFB200188F9200A49E
70309 +:10974000AFBF0020AFB3001CAFB00010AFB100142A
70310 +:109750008F9300348E5900283C1000803C0EFFEFA0
70311 +:10976000AE7900008E580024A260000A35CDFFFFBC
70312 +:10977000AE7800049251002C3C0BFF9F356AFFFF2E
70313 +:10978000A271000C8E6F000C3C080040A271000B0F
70314 +:1097900001F06025018D4824012A382400E8302595
70315 +:1097A000AE66000C8E450004AE6000183C0400FF5D
70316 +:1097B000AE6500148E43002C3482FFFFA6600008C3
70317 +:1097C0000062F824AE7F00108E5900088F9000A030
70318 +:1097D000964E0012AE7900208E51000C31D83FFF1A
70319 +:1097E00000187980AE7100248E4D001401F06021C4
70320 +:1097F00031CB0001AE6D00288E4A0018000C41C22A
70321 +:10980000000B4B80AE6A002C8E46001C01093821EB
70322 +:10981000A667001CAE660030964500028E4400200C
70323 +:10982000A665001EAE64003492430033306200042B
70324 +:1098300054400006924700003C0280083443010077
70325 +:109840008C7F00D0AE7F0030924700008F860038BA
70326 +:10985000A0C700309245003330A4000250800007BA
70327 +:10986000925100018F880038240BFF80910A00304C
70328 +:10987000014B4825A1090030925100018F9000381A
70329 +:10988000240CFFBF2404FFDFA21100318F8D0038AC
70330 +:109890003C1880083711008091AF003C31EE007F0A
70331 +:1098A000A1AE003C8F890038912B003C016C502404
70332 +:1098B000A12A003C8F9F00388E68001493E6003C7C
70333 +:1098C0002D0700010007114000C4282400A218251C
70334 +:1098D000A3E3003C8F87003896590012A4F90032A8
70335 +:1098E0008E450004922E007C30B0000300107823D7
70336 +:1098F00031ED000300AD102131CC000215800002D3
70337 +:1099000024460034244600303C0280083443008062
70338 +:10991000907F007C00BFC824333800041700000289
70339 +:1099200024C2000400C010218F98003824190002BE
70340 +:10993000ACE20034A3190000924F003F8F8E003834
70341 +:109940003C0C8008358B0080A1CF00018F9100383E
70342 +:10995000924D003F8E440004A62D0002956A005CE3
70343 +:109960000E000FF43150FFFF00024B800209382532
70344 +:109970003C08420000E82825AE2500048E4400384B
70345 +:109980008F850038ACA400188E460034ACA6001CAD
70346 +:10999000ACA0000CACA00010A4A00014A4A0001661
70347 +:1099A000A4A00020A4A00022ACA000248E62001479
70348 +:1099B00050400001240200018FBF00208FB3001C23
70349 +:1099C0008FB200188FB100148FB00010ACA2000845
70350 +:1099D0000A00101327BD002827BDFFC83C058008DA
70351 +:1099E00034A40080AFBF0034AFBE0030AFB7002C4E
70352 +:1099F000AFB60028AFB50024AFB40020AFB3001C51
70353 +:109A0000AFB20018AFB10014AFB00010948300786B
70354 +:109A10009482007A104300512405FFFF0080F0215A
70355 +:109A20000A0011230080B821108B004D8FBF003435
70356 +:109A30008F8600A03C1808008F18005C2411FF805E
70357 +:109A40003C1680000306782101F18024AED0002C62
70358 +:109A500096EE007A31EC007F3C0D800E31CB7FFF1B
70359 +:109A6000018D5021000B4840012AA82196A4000036
70360 +:109A70003C0808008D0800582405FF8030953FFF02
70361 +:109A800001061821001539800067C8210325F82434
70362 +:109A90003C02010003E290253338007F3C11800C2A
70363 +:109AA000AED20028031190219250000D320F000415
70364 +:109AB00011E0003702E0982196E3007A96E8007AF8
70365 +:109AC00096E5007A2404800031077FFF24E300013B
70366 +:109AD00030627FFF00A4F82403E2C825A6F9007ACB
70367 +:109AE00096E6007A3C1408008E94006030D67FFF22
70368 +:109AF00012D400C1000000008E5800188F8400A00E
70369 +:109B000002A028212713FFFF0E000FCEAE53002C1A
70370 +:109B100097D5007897D4007A12950010000028217C
70371 +:109B20003C098008352401003C0A8008914800085F
70372 +:109B3000908700D53114007F30E400FF0284302B81
70373 +:109B400014C0FFB9268B0001938E00AB268C000158
70374 +:109B5000008E682115ACFFB78F8600A08FBF003440
70375 +:109B60008FBE00308FB7002C8FB600288FB5002431
70376 +:109B70008FB400208FB3001C8FB200188FB1001477
70377 +:109B80008FB0001000A0102103E0000827BD0038AE
70378 +:109B900000C020210E000F99028028218E4B00105A
70379 +:109BA0008E4C00308F84003824090002016C502351
70380 +:109BB000AE4A0010A089000096E3005C8E4400309D
70381 +:109BC0008F9100380E000FF43070FFFF00024380C9
70382 +:109BD000020838253C02420000E22825AE25000498
70383 +:109BE0008E5F00048F8A00388E590000240B000815
70384 +:109BF000AD5F001CAD590018AD40000CAD40001029
70385 +:109C00009246000A240400052408C00030D000FF5A
70386 +:109C1000A550001496580008A55800169251000A45
70387 +:109C20003C188008322F00FFA54F0020964E0008F8
70388 +:109C300037110100A54E0022AD400024924D000BCB
70389 +:109C400031AC00FFA54C0002A14B00018E49003051
70390 +:109C50008F830038240BFFBFAC690008A06400307C
70391 +:109C60008F9000382403FFDF9607003200E8282495
70392 +:109C700000B51025A6020032921F003233F9003FD2
70393 +:109C800037260040A20600328F8C0038AD800034A9
70394 +:109C90008E2F00D0AD8F0038918E003C3C0F7FFF9F
70395 +:109CA00031CD007FA18D003C8F84003835EEFFFF61
70396 +:109CB000908A003C014B4824A089003C8F850038E5
70397 +:109CC00090A8003C01033824A0A7003C8E42003439
70398 +:109CD0008F9100383C038008AE2200408E59002C42
70399 +:109CE0008E5F0030033F3023AE26004492300048A0
70400 +:109CF0003218007FA23800488F8800388E4D00301F
70401 +:109D00008D0C004801AE582401965024014B482583
70402 +:109D1000AD0900489244000AA104004C964700088F
70403 +:109D20008F850038A4A7004E8E5000308E4400303E
70404 +:109D30000E0003818C65006092F9007C0002F940FE
70405 +:109D4000004028210002110003E2302133360002D6
70406 +:109D500012C00003020680210005B0800216802197
70407 +:109D6000926D007C31B30004126000020005708027
70408 +:109D7000020E80218E4B00308F8800382405800031
70409 +:109D8000316A0003000A4823312400030204182129
70410 +:109D9000AD03003496E4007A96F0007A96F1007AEA
70411 +:109DA00032027FFF2447000130FF7FFF0225C824D5
70412 +:109DB000033F3025A6E6007A96F8007A3C120800A8
70413 +:109DC0008E520060330F7FFF11F200180000000078
70414 +:109DD0008F8400A00E000FCE02A028218F8400A047
70415 +:109DE0000E000FDE028028210E001013000000007C
70416 +:109DF0000A00111F0000000096F1007A022480245E
70417 +:109E0000A6F0007A92EF007A92EB007A31EE00FF32
70418 +:109E1000000E69C2000D6027000C51C03169007F3F
70419 +:109E2000012A20250A001119A2E4007A96E6007A98
70420 +:109E300000C5C024A6F8007A92EF007A92F3007A67
70421 +:109E400031F200FF001271C2000E6827000DB1C090
70422 +:109E5000326C007F01962825A2E5007A0A0011D015
70423 +:109E60008F8400A03C0380003084FFFF30A5FFFFFB
70424 +:109E7000AC640018AC65001C03E000088C620014A0
70425 +:109E800027BDFFA03C068008AFBF005CAFBE0058F6
70426 +:109E9000AFB70054AFB60050AFB5004CAFB40048F8
70427 +:109EA000AFB30044AFB20040AFB1003CAFB0003838
70428 +:109EB00034C80100910500D590C700083084FFFF29
70429 +:109EC00030A500FF30E2007F0045182AAFA4001043
70430 +:109ED000A7A00018A7A0002610600055AFA000148E
70431 +:109EE00090CA00083149007F00A9302324D3FFFF26
70432 +:109EF0000013802B8FB400100014902B02128824C2
70433 +:109F0000522000888FB300143C03800894790052DB
70434 +:109F1000947E00508FB60010033EC0230018BC0092
70435 +:109F2000001714030016FC0002C2A82A16A00002A3
70436 +:109F3000001F2C030040282100133C0000072403CD
70437 +:109F400000A4102A5440000100A020212885000907
70438 +:109F500014A000020080A021241400083C0C8008FA
70439 +:109F60008D860048001459808D88004C3C03800089
70440 +:109F70003169FFFF3C0A0010012A202534710400DA
70441 +:109F8000AC660038AF9100A4AC68003CAC64003013
70442 +:109F900000000000000000000000000000000000C1
70443 +:109FA00000000000000000000000000000000000B1
70444 +:109FB0008C6E000031CD002011A0FFFD0014782A26
70445 +:109FC00001F01024104000390000A8213C16800840
70446 +:109FD00092D700083C1280008E44010032F6007FC8
70447 +:109FE0000E000F9902C028218E3900108E44010006
70448 +:109FF0000000902133373FFF0E000FB102E028210F
70449 +:10A00000923800003302003F2C500008520000102C
70450 +:10A0100000008821000210803C030800246358E4FB
70451 +:10A020000043F8218FFE000003C00008000000007C
70452 +:10A0300090CF0008938C00AB31EE007F00AE682318
70453 +:10A04000018D58210A0012172573FFFF0000882197
70454 +:10A050003C1E80008FC401000E000FCE02E02821BC
70455 +:10A060008FC401000E000FDE02C028211220000F55
70456 +:10A070000013802B8F8B00A426A400010004AC00E9
70457 +:10A08000027298230015AC032578004002B4B02A70
70458 +:10A090000013802B241700010300882102D0102414
70459 +:10A0A000AF9800A41440FFC9AFB700143C07800864
70460 +:10A0B00094E200508FAE00103C05800002A288217F
70461 +:10A0C0003C060020A4F10050ACA6003094F40050EF
70462 +:10A0D00094EF005201D51823306CFFFF11F4001EDD
70463 +:10A0E000AFAC00108CEF004C001561808CF500487F
70464 +:10A0F00001EC28210000202100AC582B02A4C02133
70465 +:10A10000030BB021ACE5004CACF600488FB4001056
70466 +:10A110000014902B021288241620FF7C3C03800838
70467 +:10A120008FB300148FBF005C8FBE00583A620001ED
70468 +:10A130008FB700548FB600508FB5004C8FB40048D5
70469 +:10A140008FB300448FB200408FB1003C8FB0003815
70470 +:10A1500003E0000827BD006094FE00548CF2004428
70471 +:10A1600033C9FFFE0009C8C00259F821ACBF003C4A
70472 +:10A170008CE800448CAD003C010D50231940003B9D
70473 +:10A18000000000008CF7004026E20001ACA200387D
70474 +:10A190003C05005034A700103C038000AC67003041
70475 +:10A1A00000000000000000000000000000000000AF
70476 +:10A1B000000000000000000000000000000000009F
70477 +:10A1C0008C7800003316002012C0FFFD3C1180087F
70478 +:10A1D000962200543C1580003C068008304E000159
70479 +:10A1E000000E18C0007578218DEC04003C070800B3
70480 +:10A1F0008CE700443C040020ACCC00488DF40404FF
70481 +:10A20000240B0001ACD4004C10EB0260AEA4003073
70482 +:10A21000963900523C0508008CA5004000B99021F9
70483 +:10A22000A6320052963F005427ED0001A62D00549F
70484 +:10A230009626005430C4FFFF5487FF2F8FB40010C0
70485 +:10A2400030A5FFFF0E0011F4A62000543C070800C3
70486 +:10A250008CE70024963E00520047B82303D74823DA
70487 +:10A26000A62900520A0012198FB400108CE2004097
70488 +:10A270000A0012BE00000000922400012407000121
70489 +:10A280003085007F14A7001C97AD00268E2B00148C
70490 +:10A29000240CC000316A3FFF01AC48243C06080092
70491 +:10A2A0008CC60060012A402531043FFF0086882BC0
70492 +:10A2B00012200011A7A800263C0508008CA5005814
70493 +:10A2C0008F9100A0000439802402FF8000B1182182
70494 +:10A2D0000067F82103E2F02433F8007F3C1280008D
70495 +:10A2E0003C19800EAE5E002C0319702191D0000D38
70496 +:10A2F000360F0004A1CF000D0E001028241200011B
70497 +:10A30000241100013C1E80008FC401000E000FCEFE
70498 +:10A3100002E028218FC401000E000FDE02C02821B8
70499 +:10A320001620FF558F8B00A40A0012860013802B85
70500 +:10A330008F8600A490C80001310400201080019194
70501 +:10A34000241000013C048008348B0080916A007C5A
70502 +:10A350008F9E0034AFA0002C314900011120000F66
70503 +:10A36000AFB000288CCD00148C8E006001AE602B45
70504 +:10A370001580000201A038218C8700603C188008FD
70505 +:10A38000370300808C70007000F0782B15E000021D
70506 +:10A3900000E020218C640070AFA4002C3C028008F7
70507 +:10A3A000344500808CD200148CBF0070025FC82B33
70508 +:10A3B00017200002024020218CA400708FA7002CDF
70509 +:10A3C0000087182310600003AFA3003024050002AB
70510 +:10A3D000AFA500288FA400280264882B162000BA9D
70511 +:10A3E000000018218CD000388FCE000C3C0F00806C
70512 +:10A3F000AFD000008CCD00343C0CFF9F01CF58251E
70513 +:10A40000AFCD000490CA003F3586FFFF01662024CF
70514 +:10A410003C0900203C08FFEFA3CA000B0089382547
70515 +:10A420003511FFFF00F118243C0500088F8700A4B8
70516 +:10A430000065C825AFD9000C8CE20014AFC000182D
70517 +:10A440008FA60030AFC200148CF800188FB0002C1B
70518 +:10A450003C1FFFFBAFD8001C8CEF000837F2FFFF5A
70519 +:10A4600003326824AFCF00248CEC000C020670216C
70520 +:10A47000AFCD000CA7C00038A7C0003AAFCE002C6B
70521 +:10A48000AFCC0020AFC000288CEA00148FAB002CAA
70522 +:10A49000014B48230126402311000011AFC80010D2
70523 +:10A4A00090EB003D8FC900048FC80000000B5100E5
70524 +:10A4B000012A28210000102100AA882B010218215E
70525 +:10A4C0000071F821AFC50004AFDF000090F2003D3D
70526 +:10A4D000A3D2000A8F9900A497380006A7D80008D5
70527 +:10A4E0008F910038240800023C038008A228000055
70528 +:10A4F0003465008094BF005C8FA4002C33F0FFFF14
70529 +:10A500000E000FF48F9200380002CB808F8500A4DC
70530 +:10A51000021978253C18420001F87025AE4E00045F
70531 +:10A520008F8400388CAD0038AC8D00188CAC0034B2
70532 +:10A53000AC8C001CAC80000CAC800010A48000141B
70533 +:10A54000A4800016A4800020A4800022AC800024F7
70534 +:10A5500090A6003F8FA7002CA486000250E0019235
70535 +:10A56000240700018FA200305040000290A2003D5D
70536 +:10A5700090A2003E244A0001A08A00018F84003886
70537 +:10A580008FA9002CAC8900083C128008364D008051
70538 +:10A5900091AC007C3186000214C000022407003414
70539 +:10A5A000240700308F8500A43C198008373F0080C5
70540 +:10A5B00090B0000093F9007C240E0004A0900030BD
70541 +:10A5C0008F8F00A48FB8002C8F8D003891F200017E
70542 +:10A5D0003304000301C46023A1B200318F8E003820
70543 +:10A5E0008F8600A42402C00095CA003294C90012CC
70544 +:10A5F0008FAB002C0142402431233FFF010388250B
70545 +:10A60000A5D1003291D000323185000300EBF82152
70546 +:10A610003218003F370F0040A1CF00328FA4002C2A
70547 +:10A6200003E5382133280004108000028F850038AC
70548 +:10A6300000E838213C0A8008ACA700343549010005
70549 +:10A640008D2800D08FA3002C2419FFBFACA80038A0
70550 +:10A6500090B1003C2C640001240FFFDF3227007F03
70551 +:10A66000A0A7003C8F98003800049140931F003C45
70552 +:10A6700003F98024A310003C8F8C0038918E003C9D
70553 +:10A6800001CF682401B23025A186003C8F8900A447
70554 +:10A690008F8800388D2B0020AD0B00408D220024C8
70555 +:10A6A000AD0200448D2A0028AD0A00488D23002CFD
70556 +:10A6B0000E001013AD03004C8FB1002824070002D8
70557 +:10A6C000122700118FA300280003282B00058023E8
70558 +:10A6D0000270982400608021006090210A00126FAF
70559 +:10A6E0000010882B962900128F8400A00000902172
70560 +:10A6F0003125FFFFA7A900180E000FC22411000189
70561 +:10A700000A00131D3C1E80003C0B80003C12800898
70562 +:10A710008D640100924900088F92FF340E000F995A
70563 +:10A720003125007F8F9900388FA700288FA4003033
70564 +:10A73000A3270000965F005C33F0FFFF0E000FF4CC
70565 +:10A740008F91003800026B80020D80253C0842008A
70566 +:10A750008F8D00A402085025AE2A00048DA5003874
70567 +:10A760008F8A003800007821000F1100AD450018D5
70568 +:10A770008DB800343C047FFF3488FFFFAD58001CC7
70569 +:10A7800091A6003E8D4C001C8D4900180006190052
70570 +:10A79000000677020183C821004E58250323882B29
70571 +:10A7A000012B382100F1F821AD59001CAD5F0018D4
70572 +:10A7B000AD40000CAD40001091B0003E8FA40030C1
70573 +:10A7C00024090005A550001495A500042419C00013
70574 +:10A7D00000884024A545001691B8003EA5580020E9
70575 +:10A7E00095AF0004A54F0022AD40002491AE003F7C
70576 +:10A7F000A54E000291A6003E91AC003D01861023BB
70577 +:10A80000244B0001A14B00018F9100388FA3003031
70578 +:10A810003C028008344B0100AE230008A22900301E
70579 +:10A820008F8C00388F8700A4959F003294F000121F
70580 +:10A830002407FFBF033FC02432053FFF03057825EF
70581 +:10A84000A58F0032918E00322418FFDF31CD003FFA
70582 +:10A8500035A60040A18600328F910038240DFFFFFD
70583 +:10A86000240CFF80AE2000348D6A00D0AE2A003860
70584 +:10A870009223003C3069007FA229003C8F90003871
70585 +:10A880003C0380009219003C0327F824A21F003CDF
70586 +:10A890008F8E003891C5003C00B87824A1CF003CD1
70587 +:10A8A0008F8A00383C0E8008AD4D00408FA6002CEA
70588 +:10A8B000AD46004491420048004C5825A14B004849
70589 +:10A8C0008F9000388F9900A48E09004801238824B6
70590 +:10A8D00002283825AE070048933F003EA21F004CD7
70591 +:10A8E0008F9800A48F8F003897050004A5E5004ECF
70592 +:10A8F0000E0003818DC500609246007C8FAC003055
70593 +:10A9000000026940000291000040282130CB000283
70594 +:10A9100001B21021156000AA018230213C0E80088E
70595 +:10A9200035C20080904C007C31830004106000032D
70596 +:10A930008FB900300005788000CF3021241F00043B
70597 +:10A940008F910038332D000303ED8023320800037C
70598 +:10A9500000C85021AE2A00343C188000A7C500383A
70599 +:10A960003C0680088F04010090DE00080E000FDE18
70600 +:10A9700033C5007F0E001013000000000A00140D04
70601 +:10A980008FA300288F9800348CC90038241F00033F
70602 +:10A99000A7000008AF0900008CC50034A300000A1E
70603 +:10A9A0008F9900A4AF0500043C080080932D003F60
70604 +:10A9B000A31F000C8F0A000C3C02FF9FA30D000B8D
70605 +:10A9C0000148F0253451FFFF3C12FFEF8F9900A49E
70606 +:10A9D00003D170243646FFFF01C61824AF03000CD4
70607 +:10A9E0008F2C0014972900128F8400A0AF0C001048
70608 +:10A9F0008F2F0014AF000018AF000020AF0F00141D
70609 +:10AA0000AF0000248F270018312F3FFF000F59801F
70610 +:10AA1000AF0700288F2500080164F821312D0001BF
70611 +:10AA2000AF0500308F31000C8F920038001F51C2EB
70612 +:10AA3000000D438001481021241E00023C068008BE
70613 +:10AA4000A702001CA7000034AF11002CA25E00007A
70614 +:10AA500034D20080964E005C8F9900383C0342004F
70615 +:10AA600031CCFFFF01833825AF2700048F8B00A472
70616 +:10AA7000240500012402C0008D640038240700343E
70617 +:10AA8000AF2400188D690034AF29001CAF20000CE2
70618 +:10AA9000AF200010A7200014A7200016A720002038
70619 +:10AAA000A7200022AF200024A7300002A325000128
70620 +:10AAB0008F8800388F9F00A4AD10000893ED000030
70621 +:10AAC000A10D00308F8A00A48F98003891510001A9
70622 +:10AAD000A31100318F8B0038957E003203C27024A1
70623 +:10AAE00001CF6025A56C0032916300323064003FD5
70624 +:10AAF000A16400329249007C3125000214A00002BA
70625 +:10AB00008F840038240700303C198008AC8700345B
70626 +:10AB1000373201008E5F00D0240AFFBF020090216F
70627 +:10AB2000AC9F0038908D003C31A8007FA088003C8D
70628 +:10AB30008F9E003893C2003C004A8824A3D1003C79
70629 +:10AB40008F8300380010882B9066003C34CE0020A4
70630 +:10AB5000A06E003C8F8400A48F9800388C8C00205D
70631 +:10AB6000AF0C00408C8F0024AF0F00448C8700286E
70632 +:10AB7000AF0700488C8B002CAF0B004C0E0010135D
70633 +:10AB80003C1E80000A0012700000000094C80052B1
70634 +:10AB90003C0A08008D4A002401488821A4D10052B3
70635 +:10ABA0000A0012198FB40010A08700018F840038AA
70636 +:10ABB000240B0001AC8B00080A0013BE3C12800875
70637 +:10ABC000000520800A0014A200C4302127BDFFE048
70638 +:10ABD0003C0D8008AFB20018AFB00010AFBF001C32
70639 +:10ABE000AFB1001435B200808E4C001835A80100BA
70640 +:10ABF000964B000695A70050910900FC000C5602E8
70641 +:10AC0000016728233143007F312600FF240200031F
70642 +:10AC1000AF8300A8AF8400A010C2001B30B0FFFFBC
70643 +:10AC2000910600FC2412000530C200FF10520033D0
70644 +:10AC300000000000160000098FBF001C8FB2001832
70645 +:10AC40008FB100148FB00010240D0C003C0C80005C
70646 +:10AC500027BD002003E00008AD8D00240E0011FB8D
70647 +:10AC6000020020218FBF001C8FB200188FB100148A
70648 +:10AC70008FB00010240D0C003C0C800027BD00207C
70649 +:10AC800003E00008AD8D0024965800789651007AB4
70650 +:10AC9000924E007D0238782631E8FFFF31C400C0B3
70651 +:10ACA000148000092D11000116000037000000007B
70652 +:10ACB0005620FFE28FBF001C0E0010D100000000E4
70653 +:10ACC0000A00156A8FBF001C1620FFDA0000000082
70654 +:10ACD0000E0010D1000000001440FFD88FBF001CF0
70655 +:10ACE0001600002200000000925F007D33E2003F6A
70656 +:10ACF000A242007D0A00156A8FBF001C950900EA78
70657 +:10AD00008F86008000802821240400050E0007257E
70658 +:10AD10003130FFFF978300923C0480002465FFFFE1
70659 +:10AD2000A78500928C8A01B80540FFFE0000000054
70660 +:10AD3000AC8001808FBF001CAC9001848FB20018E2
70661 +:10AD40008FB100148FB000103C0760133C0B100053
70662 +:10AD5000240D0C003C0C800027BD0020AC8701882E
70663 +:10AD6000AC8B01B803E00008AD8D00240E0011FB90
70664 +:10AD7000020020215040FFB18FBF001C925F007D78
70665 +:10AD80000A00159733E2003F0E0011FB020020215C
70666 +:10AD90001440FFAA8FBF001C122000070000000013
70667 +:10ADA0009259007D3330003F36020040A242007DC0
70668 +:10ADB0000A00156A8FBF001C0E0010D100000000B1
70669 +:10ADC0005040FF9E8FBF001C9259007D3330003FE2
70670 +:10ADD0000A0015C636020040000000000000001BFB
70671 +:10ADE0000000000F0000000A00000008000000063C
70672 +:10ADF0000000000500000005000000040000000441
70673 +:10AE00000000000300000003000000030000000336
70674 +:10AE10000000000300000002000000020000000229
70675 +:10AE2000000000020000000200000002000000021A
70676 +:10AE3000000000020000000200000002000000020A
70677 +:10AE400000000002000000020000000200000002FA
70678 +:10AE50000000000100000001000000018008010066
70679 +:10AE6000800800808008000000000C000000308096
70680 +:10AE7000080011D00800127C08001294080012A8E3
70681 +:10AE8000080012BC080011D0080011D0080012F010
70682 +:10AE90000800132C080013400800138808001A8CBF
70683 +:10AEA00008001A8C08001AC408001AC408001AD82E
70684 +:10AEB00008001AA808001D0008001CCC08001D5836
70685 +:10AEC00008001D5808001DE008001D108008024001
70686 +:10AED000080027340800256C0800275C080027F4C8
70687 +:10AEE0000800293C0800298808002AAC080029B479
70688 +:10AEF00008002A38080025DC08002EDC08002EA4F3
70689 +:10AF000008002588080025880800258808002B20CF
70690 +:10AF100008002B20080025880800258808002DD06F
70691 +:10AF2000080025880800258808002588080025884D
70692 +:10AF300008002E0C080025880800258808002588B0
70693 +:10AF4000080025880800258808002588080025882D
70694 +:10AF5000080025880800258808002588080025881D
70695 +:10AF6000080025880800258808002588080029A8E9
70696 +:10AF7000080025880800258808002E680800258814
70697 +:10AF800008002588080025880800258808002588ED
70698 +:10AF900008002588080025880800258808002588DD
70699 +:10AFA00008002588080025880800258808002588CD
70700 +:10AFB00008002588080025880800258808002588BD
70701 +:10AFC00008002CF4080025880800258808002C6853
70702 +:10AFD00008002BC408003CE408003CB808003C848E
70703 +:10AFE00008003C5808003C3808003BEC8008010091
70704 +:10AFF00080080080800800008008008008004C6401
70705 +:10B0000008004C9C08004BE408004C6408004C64A9
70706 +:10B01000080049B808004C64080050500A000C842D
70707 +:10B0200000000000000000000000000D7278703683
70708 +:10B030002E322E31620000000602010300000000E3
70709 +:10B0400000000001000000000000000000000000FF
70710 +:10B0500000000000000000000000000000000000F0
70711 +:10B0600000000000000000000000000000000000E0
70712 +:10B0700000000000000000000000000000000000D0
70713 +:10B0800000000000000000000000000000000000C0
70714 +:10B0900000000000000000000000000000000000B0
70715 +:10B0A00000000000000000000000000000000000A0
70716 +:10B0B0000000000000000000000000000000000090
70717 +:10B0C0000000000000000000000000000000000080
70718 +:10B0D0000000000000000000000000000000000070
70719 +:10B0E0000000000000000000000000000000000060
70720 +:10B0F0000000000000000000000000000000000050
70721 +:10B10000000000000000000000000000000000003F
70722 +:10B11000000000000000000000000000000000002F
70723 +:10B12000000000000000000000000000000000001F
70724 +:10B13000000000000000000000000000000000000F
70725 +:10B1400000000000000000000000000000000000FF
70726 +:10B1500000000000000000000000000000000000EF
70727 +:10B1600000000000000000000000000000000000DF
70728 +:10B1700000000000000000000000000000000000CF
70729 +:10B1800000000000000000000000000000000000BF
70730 +:10B1900000000000000000000000000000000000AF
70731 +:10B1A000000000000000000000000000000000009F
70732 +:10B1B000000000000000000000000000000000008F
70733 +:10B1C000000000000000000000000000000000007F
70734 +:10B1D000000000000000000000000000000000006F
70735 +:10B1E000000000000000000000000000000000005F
70736 +:10B1F000000000000000000000000000000000004F
70737 +:10B20000000000000000000000000000000000003E
70738 +:10B21000000000000000000000000000000000002E
70739 +:10B22000000000000000000000000000000000001E
70740 +:10B23000000000000000000000000000000000000E
70741 +:10B2400000000000000000000000000000000000FE
70742 +:10B2500000000000000000000000000000000000EE
70743 +:10B2600000000000000000000000000000000000DE
70744 +:10B2700000000000000000000000000000000000CE
70745 +:10B2800000000000000000000000000000000000BE
70746 +:10B2900000000000000000000000000000000000AE
70747 +:10B2A000000000000000000000000000000000009E
70748 +:10B2B000000000000000000000000000000000008E
70749 +:10B2C000000000000000000000000000000000007E
70750 +:10B2D000000000000000000000000000000000006E
70751 +:10B2E000000000000000000000000000000000005E
70752 +:10B2F000000000000000000000000000000000004E
70753 +:10B30000000000000000000000000000000000003D
70754 +:10B31000000000000000000000000000000000002D
70755 +:10B32000000000000000000000000000000000001D
70756 +:10B33000000000000000000000000000000000000D
70757 +:10B3400000000000000000000000000000000000FD
70758 +:10B3500000000000000000000000000000000000ED
70759 +:10B3600000000000000000000000000000000000DD
70760 +:10B3700000000000000000000000000000000000CD
70761 +:10B3800000000000000000000000000000000000BD
70762 +:10B3900000000000000000000000000000000000AD
70763 +:10B3A000000000000000000000000000000000009D
70764 +:10B3B000000000000000000000000000000000008D
70765 +:10B3C000000000000000000000000000000000007D
70766 +:10B3D000000000000000000000000000000000006D
70767 +:10B3E000000000000000000000000000000000005D
70768 +:10B3F000000000000000000000000000000000004D
70769 +:10B40000000000000000000000000000000000003C
70770 +:10B41000000000000000000000000000000000002C
70771 +:10B42000000000000000000000000000000000001C
70772 +:10B43000000000000000000000000000000000000C
70773 +:10B4400000000000000000000000000000000000FC
70774 +:10B4500000000000000000000000000000000000EC
70775 +:10B4600000000000000000000000000000000000DC
70776 +:10B4700000000000000000000000000000000000CC
70777 +:10B4800000000000000000000000000000000000BC
70778 +:10B4900000000000000000000000000000000000AC
70779 +:10B4A000000000000000000000000000000000009C
70780 +:10B4B000000000000000000000000000000000008C
70781 +:10B4C000000000000000000000000000000000007C
70782 +:10B4D000000000000000000000000000000000006C
70783 +:10B4E000000000000000000000000000000000005C
70784 +:10B4F000000000000000000000000000000000004C
70785 +:10B50000000000000000000000000000000000003B
70786 +:10B51000000000000000000000000000000000002B
70787 +:10B52000000000000000000000000000000000001B
70788 +:10B53000000000000000000000000000000000000B
70789 +:10B5400000000000000000000000000000000000FB
70790 +:10B5500000000000000000000000000000000000EB
70791 +:10B5600000000000000000000000000000000000DB
70792 +:10B5700000000000000000000000000000000000CB
70793 +:10B5800000000000000000000000000000000000BB
70794 +:10B5900000000000000000000000000000000000AB
70795 +:10B5A000000000000000000000000000000000009B
70796 +:10B5B000000000000000000000000000000000008B
70797 +:10B5C000000000000000000000000000000000007B
70798 +:10B5D000000000000000000000000000000000006B
70799 +:10B5E000000000000000000000000000000000005B
70800 +:10B5F000000000000000000000000000000000004B
70801 +:10B60000000000000000000000000000000000003A
70802 +:10B61000000000000000000000000000000000002A
70803 +:10B62000000000000000000000000000000000001A
70804 +:10B63000000000000000000000000000000000000A
70805 +:10B6400000000000000000000000000000000000FA
70806 +:10B6500000000000000000000000000000000000EA
70807 +:10B6600000000000000000000000000000000000DA
70808 +:10B6700000000000000000000000000000000000CA
70809 +:10B6800000000000000000000000000000000000BA
70810 +:10B6900000000000000000000000000000000000AA
70811 +:10B6A000000000000000000000000000000000009A
70812 +:10B6B000000000000000000000000000000000008A
70813 +:10B6C000000000000000000000000000000000007A
70814 +:10B6D000000000000000000000000000000000006A
70815 +:10B6E000000000000000000000000000000000005A
70816 +:10B6F000000000000000000000000000000000004A
70817 +:10B700000000000000000000000000000000000039
70818 +:10B710000000000000000000000000000000000029
70819 +:10B720000000000000000000000000000000000019
70820 +:10B730000000000000000000000000000000000009
70821 +:10B7400000000000000000000000000000000000F9
70822 +:10B7500000000000000000000000000000000000E9
70823 +:10B7600000000000000000000000000000000000D9
70824 +:10B7700000000000000000000000000000000000C9
70825 +:10B7800000000000000000000000000000000000B9
70826 +:10B7900000000000000000000000000000000000A9
70827 +:10B7A0000000000000000000000000000000000099
70828 +:10B7B0000000000000000000000000000000000089
70829 +:10B7C0000000000000000000000000000000000079
70830 +:10B7D0000000000000000000000000000000000069
70831 +:10B7E0000000000000000000000000000000000059
70832 +:10B7F0000000000000000000000000000000000049
70833 +:10B800000000000000000000000000000000000038
70834 +:10B810000000000000000000000000000000000028
70835 +:10B820000000000000000000000000000000000018
70836 +:10B830000000000000000000000000000000000008
70837 +:10B8400000000000000000000000000000000000F8
70838 +:10B8500000000000000000000000000000000000E8
70839 +:10B8600000000000000000000000000000000000D8
70840 +:10B8700000000000000000000000000000000000C8
70841 +:10B8800000000000000000000000000000000000B8
70842 +:10B8900000000000000000000000000000000000A8
70843 +:10B8A0000000000000000000000000000000000098
70844 +:10B8B0000000000000000000000000000000000088
70845 +:10B8C0000000000000000000000000000000000078
70846 +:10B8D0000000000000000000000000000000000068
70847 +:10B8E0000000000000000000000000000000000058
70848 +:10B8F0000000000000000000000000000000000048
70849 +:10B900000000000000000000000000000000000037
70850 +:10B910000000000000000000000000000000000027
70851 +:10B920000000000000000000000000000000000017
70852 +:10B930000000000000000000000000000000000007
70853 +:10B9400000000000000000000000000000000000F7
70854 +:10B9500000000000000000000000000000000000E7
70855 +:10B9600000000000000000000000000000000000D7
70856 +:10B9700000000000000000000000000000000000C7
70857 +:10B9800000000000000000000000000000000000B7
70858 +:10B9900000000000000000000000000000000000A7
70859 +:10B9A0000000000000000000000000000000000097
70860 +:10B9B0000000000000000000000000000000000087
70861 +:10B9C0000000000000000000000000000000000077
70862 +:10B9D0000000000000000000000000000000000067
70863 +:10B9E0000000000000000000000000000000000057
70864 +:10B9F0000000000000000000000000000000000047
70865 +:10BA00000000000000000000000000000000000036
70866 +:10BA10000000000000000000000000000000000026
70867 +:10BA20000000000000000000000000000000000016
70868 +:10BA30000000000000000000000000000000000006
70869 +:10BA400000000000000000000000000000000000F6
70870 +:10BA500000000000000000000000000000000000E6
70871 +:10BA600000000000000000000000000000000000D6
70872 +:10BA700000000000000000000000000000000000C6
70873 +:10BA800000000000000000000000000000000000B6
70874 +:10BA900000000000000000000000000000000000A6
70875 +:10BAA0000000000000000000000000000000000096
70876 +:10BAB0000000000000000000000000000000000086
70877 +:10BAC0000000000000000000000000000000000076
70878 +:10BAD0000000000000000000000000000000000066
70879 +:10BAE0000000000000000000000000000000000056
70880 +:10BAF0000000000000000000000000000000000046
70881 +:10BB00000000000000000000000000000000000035
70882 +:10BB10000000000000000000000000000000000025
70883 +:10BB20000000000000000000000000000000000015
70884 +:10BB30000000000000000000000000000000000005
70885 +:10BB400000000000000000000000000000000000F5
70886 +:10BB500000000000000000000000000000000000E5
70887 +:10BB600000000000000000000000000000000000D5
70888 +:10BB700000000000000000000000000000000000C5
70889 +:10BB800000000000000000000000000000000000B5
70890 +:10BB900000000000000000000000000000000000A5
70891 +:10BBA0000000000000000000000000000000000095
70892 +:10BBB0000000000000000000000000000000000085
70893 +:10BBC0000000000000000000000000000000000075
70894 +:10BBD0000000000000000000000000000000000065
70895 +:10BBE0000000000000000000000000000000000055
70896 +:10BBF0000000000000000000000000000000000045
70897 +:10BC00000000000000000000000000000000000034
70898 +:10BC10000000000000000000000000000000000024
70899 +:10BC20000000000000000000000000000000000014
70900 +:10BC30000000000000000000000000000000000004
70901 +:10BC400000000000000000000000000000000000F4
70902 +:10BC500000000000000000000000000000000000E4
70903 +:10BC600000000000000000000000000000000000D4
70904 +:10BC700000000000000000000000000000000000C4
70905 +:10BC800000000000000000000000000000000000B4
70906 +:10BC900000000000000000000000000000000000A4
70907 +:10BCA0000000000000000000000000000000000094
70908 +:10BCB0000000000000000000000000000000000084
70909 +:10BCC0000000000000000000000000000000000074
70910 +:10BCD0000000000000000000000000000000000064
70911 +:10BCE0000000000000000000000000000000000054
70912 +:10BCF0000000000000000000000000000000000044
70913 +:10BD00000000000000000000000000000000000033
70914 +:10BD10000000000000000000000000000000000023
70915 +:10BD20000000000000000000000000000000000013
70916 +:10BD30000000000000000000000000000000000003
70917 +:10BD400000000000000000000000000000000000F3
70918 +:10BD500000000000000000000000000000000000E3
70919 +:10BD600000000000000000000000000000000000D3
70920 +:10BD700000000000000000000000000000000000C3
70921 +:10BD800000000000000000000000000000000000B3
70922 +:10BD900000000000000000000000000000000000A3
70923 +:10BDA0000000000000000000000000000000000093
70924 +:10BDB0000000000000000000000000000000000083
70925 +:10BDC0000000000000000000000000000000000073
70926 +:10BDD0000000000000000000000000000000000063
70927 +:10BDE0000000000000000000000000000000000053
70928 +:10BDF0000000000000000000000000000000000043
70929 +:10BE00000000000000000000000000000000000032
70930 +:10BE10000000000000000000000000000000000022
70931 +:10BE20000000000000000000000000000000000012
70932 +:10BE30000000000000000000000000000000000002
70933 +:10BE400000000000000000000000000000000000F2
70934 +:10BE500000000000000000000000000000000000E2
70935 +:10BE600000000000000000000000000000000000D2
70936 +:10BE700000000000000000000000000000000000C2
70937 +:10BE800000000000000000000000000000000000B2
70938 +:10BE900000000000000000000000000000000000A2
70939 +:10BEA0000000000000000000000000000000000092
70940 +:10BEB0000000000000000000000000000000000082
70941 +:10BEC0000000000000000000000000000000000072
70942 +:10BED0000000000000000000000000000000000062
70943 +:10BEE0000000000000000000000000000000000052
70944 +:10BEF0000000000000000000000000000000000042
70945 +:10BF00000000000000000000000000000000000031
70946 +:10BF10000000000000000000000000000000000021
70947 +:10BF20000000000000000000000000000000000011
70948 +:10BF30000000000000000000000000000000000001
70949 +:10BF400000000000000000000000000000000000F1
70950 +:10BF500000000000000000000000000000000000E1
70951 +:10BF600000000000000000000000000000000000D1
70952 +:10BF700000000000000000000000000000000000C1
70953 +:10BF800000000000000000000000000000000000B1
70954 +:10BF900000000000000000000000000000000000A1
70955 +:10BFA0000000000000000000000000000000000091
70956 +:10BFB0000000000000000000000000000000000081
70957 +:10BFC0000000000000000000000000000000000071
70958 +:10BFD0000000000000000000000000000000000061
70959 +:10BFE0000000000000000000000000000000000051
70960 +:10BFF0000000000000000000000000000000000041
70961 +:10C000000000000000000000000000000000000030
70962 +:10C010000000000000000000000000000000000020
70963 +:10C020000000000000000000000000000000000010
70964 +:10C030000000000000000000000000000000000000
70965 +:10C0400000000000000000000000000000000000F0
70966 +:10C0500000000000000000000000000000000000E0
70967 +:10C0600000000000000000000000000000000000D0
70968 +:10C0700000000000000000000000000000000000C0
70969 +:10C0800000000000000000000000000000000000B0
70970 +:10C0900000000000000000000000000000000000A0
70971 +:10C0A0000000000000000000000000000000000090
70972 +:10C0B0000000000000000000000000000000000080
70973 +:10C0C0000000000000000000000000000000000070
70974 +:10C0D0000000000000000000000000000000000060
70975 +:10C0E0000000000000000000000000000000000050
70976 +:10C0F0000000000000000000000000000000000040
70977 +:10C10000000000000000000000000000000000002F
70978 +:10C11000000000000000000000000000000000001F
70979 +:10C12000000000000000000000000000000000000F
70980 +:10C1300000000000000000000000000000000000FF
70981 +:10C1400000000000000000000000000000000000EF
70982 +:10C1500000000000000000000000000000000000DF
70983 +:10C1600000000000000000000000000000000000CF
70984 +:10C1700000000000000000000000000000000000BF
70985 +:10C1800000000000000000000000000000000000AF
70986 +:10C19000000000000000000000000000000000009F
70987 +:10C1A000000000000000000000000000000000008F
70988 +:10C1B000000000000000000000000000000000007F
70989 +:10C1C000000000000000000000000000000000006F
70990 +:10C1D000000000000000000000000000000000005F
70991 +:10C1E000000000000000000000000000000000004F
70992 +:10C1F000000000000000000000000000000000003F
70993 +:10C20000000000000000000000000000000000002E
70994 +:10C21000000000000000000000000000000000001E
70995 +:10C22000000000000000000000000000000000000E
70996 +:10C2300000000000000000000000000000000000FE
70997 +:10C2400000000000000000000000000000000000EE
70998 +:10C2500000000000000000000000000000000000DE
70999 +:10C2600000000000000000000000000000000000CE
71000 +:10C2700000000000000000000000000000000000BE
71001 +:10C2800000000000000000000000000000000000AE
71002 +:10C29000000000000000000000000000000000009E
71003 +:10C2A000000000000000000000000000000000008E
71004 +:10C2B000000000000000000000000000000000007E
71005 +:10C2C000000000000000000000000000000000006E
71006 +:10C2D000000000000000000000000000000000005E
71007 +:10C2E000000000000000000000000000000000004E
71008 +:10C2F000000000000000000000000000000000003E
71009 +:10C30000000000000000000000000000000000002D
71010 +:10C31000000000000000000000000000000000001D
71011 +:10C32000000000000000000000000000000000000D
71012 +:10C3300000000000000000000000000000000000FD
71013 +:10C3400000000000000000000000000000000000ED
71014 +:10C3500000000000000000000000000000000000DD
71015 +:10C3600000000000000000000000000000000000CD
71016 +:10C3700000000000000000000000000000000000BD
71017 +:10C3800000000000000000000000000000000000AD
71018 +:10C39000000000000000000000000000000000009D
71019 +:10C3A000000000000000000000000000000000008D
71020 +:10C3B000000000000000000000000000000000007D
71021 +:10C3C000000000000000000000000000000000006D
71022 +:10C3D000000000000000000000000000000000005D
71023 +:10C3E000000000000000000000000000000000004D
71024 +:10C3F000000000000000000000000000000000003D
71025 +:10C40000000000000000000000000000000000002C
71026 +:10C41000000000000000000000000000000000001C
71027 +:10C42000000000000000000000000000000000000C
71028 +:10C4300000000000000000000000000000000000FC
71029 +:10C4400000000000000000000000000000000000EC
71030 +:10C4500000000000000000000000000000000000DC
71031 +:10C4600000000000000000000000000000000000CC
71032 +:10C4700000000000000000000000000000000000BC
71033 +:10C4800000000000000000000000000000000000AC
71034 +:10C49000000000000000000000000000000000009C
71035 +:10C4A000000000000000000000000000000000008C
71036 +:10C4B000000000000000000000000000000000007C
71037 +:10C4C000000000000000000000000000000000006C
71038 +:10C4D000000000000000000000000000000000005C
71039 +:10C4E000000000000000000000000000000000004C
71040 +:10C4F000000000000000000000000000000000003C
71041 +:10C50000000000000000000000000000000000002B
71042 +:10C51000000000000000000000000000000000001B
71043 +:10C52000000000000000000000000000000000000B
71044 +:10C5300000000000000000000000000000000000FB
71045 +:10C5400000000000000000000000000000000000EB
71046 +:10C5500000000000000000000000000000000000DB
71047 +:10C5600000000000000000000000000000000000CB
71048 +:10C5700000000000000000000000000000000000BB
71049 +:10C5800000000000000000000000000000000000AB
71050 +:10C59000000000000000000000000000000000009B
71051 +:10C5A000000000000000000000000000000000008B
71052 +:10C5B000000000000000000000000000000000007B
71053 +:10C5C000000000000000000000000000000000006B
71054 +:10C5D000000000000000000000000000000000005B
71055 +:10C5E000000000000000000000000000000000004B
71056 +:10C5F000000000000000000000000000000000003B
71057 +:10C60000000000000000000000000000000000002A
71058 +:10C61000000000000000000000000000000000001A
71059 +:10C62000000000000000000000000000000000000A
71060 +:10C6300000000000000000000000000000000000FA
71061 +:10C6400000000000000000000000000000000000EA
71062 +:10C6500000000000000000000000000000000000DA
71063 +:10C6600000000000000000000000000000000000CA
71064 +:10C6700000000000000000000000000000000000BA
71065 +:10C6800000000000000000000000000000000000AA
71066 +:10C69000000000000000000000000000000000009A
71067 +:10C6A000000000000000000000000000000000008A
71068 +:10C6B000000000000000000000000000000000007A
71069 +:10C6C000000000000000000000000000000000006A
71070 +:10C6D000000000000000000000000000000000005A
71071 +:10C6E000000000000000000000000000000000004A
71072 +:10C6F000000000000000000000000000000000003A
71073 +:10C700000000000000000000000000000000000029
71074 +:10C710000000000000000000000000000000000019
71075 +:10C720000000000000000000000000000000000009
71076 +:10C7300000000000000000000000000000000000F9
71077 +:10C7400000000000000000000000000000000000E9
71078 +:10C7500000000000000000000000000000000000D9
71079 +:10C7600000000000000000000000000000000000C9
71080 +:10C7700000000000000000000000000000000000B9
71081 +:10C7800000000000000000000000000000000000A9
71082 +:10C790000000000000000000000000000000000099
71083 +:10C7A0000000000000000000000000000000000089
71084 +:10C7B0000000000000000000000000000000000079
71085 +:10C7C0000000000000000000000000000000000069
71086 +:10C7D0000000000000000000000000000000000059
71087 +:10C7E0000000000000000000000000000000000049
71088 +:10C7F0000000000000000000000000000000000039
71089 +:10C800000000000000000000000000000000000028
71090 +:10C810000000000000000000000000000000000018
71091 +:10C820000000000000000000000000000000000008
71092 +:10C8300000000000000000000000000000000000F8
71093 +:10C8400000000000000000000000000000000000E8
71094 +:10C8500000000000000000000000000000000000D8
71095 +:10C8600000000000000000000000000000000000C8
71096 +:10C8700000000000000000000000000000000000B8
71097 +:10C8800000000000000000000000000000000000A8
71098 +:10C890000000000000000000000000000000000098
71099 +:10C8A0000000000000000000000000000000000088
71100 +:10C8B0000000000000000000000000000000000078
71101 +:10C8C0000000000000000000000000000000000068
71102 +:10C8D0000000000000000000000000000000000058
71103 +:10C8E0000000000000000000000000000000000048
71104 +:10C8F0000000000000000000000000000000000038
71105 +:10C900000000000000000000000000000000000027
71106 +:10C910000000000000000000000000000000000017
71107 +:10C920000000000000000000000000000000000007
71108 +:10C9300000000000000000000000000000000000F7
71109 +:10C9400000000000000000000000000000000000E7
71110 +:10C9500000000000000000000000000000000000D7
71111 +:10C9600000000000000000000000000000000000C7
71112 +:10C9700000000000000000000000000000000000B7
71113 +:10C9800000000000000000000000000000000000A7
71114 +:10C990000000000000000000000000000000000097
71115 +:10C9A0000000000000000000000000000000000087
71116 +:10C9B0000000000000000000000000000000000077
71117 +:10C9C0000000000000000000000000000000000067
71118 +:10C9D0000000000000000000000000000000000057
71119 +:10C9E0000000000000000000000000000000000047
71120 +:10C9F0000000000000000000000000000000000037
71121 +:10CA00000000000000000000000000000000000026
71122 +:10CA10000000000000000000000000000000000016
71123 +:10CA20000000000000000000000000000000000006
71124 +:10CA300000000000000000000000000000000000F6
71125 +:10CA400000000000000000000000000000000000E6
71126 +:10CA500000000000000000000000000000000000D6
71127 +:10CA600000000000000000000000000000000000C6
71128 +:10CA700000000000000000000000000000000000B6
71129 +:10CA800000000000000000000000000000000000A6
71130 +:10CA90000000000000000000000000000000000096
71131 +:10CAA0000000000000000000000000000000000086
71132 +:10CAB0000000000000000000000000000000000076
71133 +:10CAC0000000000000000000000000000000000066
71134 +:10CAD0000000000000000000000000000000000056
71135 +:10CAE0000000000000000000000000000000000046
71136 +:10CAF0000000000000000000000000000000000036
71137 +:10CB00000000000000000000000000000000000025
71138 +:10CB10000000000000000000000000000000000015
71139 +:10CB20000000000000000000000000000000000005
71140 +:10CB300000000000000000000000000000000000F5
71141 +:10CB400000000000000000000000000000000000E5
71142 +:10CB500000000000000000000000000000000000D5
71143 +:10CB600000000000000000000000000000000000C5
71144 +:10CB700000000000000000000000000000000000B5
71145 +:10CB800000000000000000000000000000000000A5
71146 +:10CB90000000000000000000000000000000000095
71147 +:10CBA0000000000000000000000000000000000085
71148 +:10CBB0000000000000000000000000000000000075
71149 +:10CBC0000000000000000000000000000000000065
71150 +:10CBD0000000000000000000000000000000000055
71151 +:10CBE0000000000000000000000000000000000045
71152 +:10CBF0000000000000000000000000000000000035
71153 +:10CC00000000000000000000000000000000000024
71154 +:10CC10000000000000000000000000000000000014
71155 +:10CC20000000000000000000000000000000000004
71156 +:10CC300000000000000000000000000000000000F4
71157 +:10CC400000000000000000000000000000000000E4
71158 +:10CC500000000000000000000000000000000000D4
71159 +:10CC600000000000000000000000000000000000C4
71160 +:10CC700000000000000000000000000000000000B4
71161 +:10CC800000000000000000000000000000000000A4
71162 +:10CC90000000000000000000000000000000000094
71163 +:10CCA0000000000000000000000000000000000084
71164 +:10CCB0000000000000000000000000000000000074
71165 +:10CCC0000000000000000000000000000000000064
71166 +:10CCD0000000000000000000000000000000000054
71167 +:10CCE0000000000000000000000000000000000044
71168 +:10CCF0000000000000000000000000000000000034
71169 +:10CD00000000000000000000000000000000000023
71170 +:10CD10000000000000000000000000000000000013
71171 +:10CD20000000000000000000000000000000000003
71172 +:10CD300000000000000000000000000000000000F3
71173 +:10CD400000000000000000000000000000000000E3
71174 +:10CD500000000000000000000000000000000000D3
71175 +:10CD600000000000000000000000000000000000C3
71176 +:10CD700000000000000000000000000000000000B3
71177 +:10CD800000000000000000000000000000000000A3
71178 +:10CD90000000000000000000000000000000000093
71179 +:10CDA0000000000000000000000000000000000083
71180 +:10CDB0000000000000000000000000000000000073
71181 +:10CDC0000000000000000000000000000000000063
71182 +:10CDD0000000000000000000000000000000000053
71183 +:10CDE0000000000000000000000000000000000043
71184 +:10CDF0000000000000000000000000000000000033
71185 +:10CE00000000000000000000000000000000000022
71186 +:10CE10000000000000000000000000000000000012
71187 +:10CE20000000000000000000000000000000000002
71188 +:10CE300000000000000000000000000000000000F2
71189 +:10CE400000000000000000000000000000000000E2
71190 +:10CE500000000000000000000000000000000000D2
71191 +:10CE600000000000000000000000000000000000C2
71192 +:10CE700000000000000000000000000000000000B2
71193 +:10CE800000000000000000000000000000000000A2
71194 +:10CE90000000000000000000000000000000000092
71195 +:10CEA0000000000000000000000000000000000082
71196 +:10CEB0000000000000000000000000000000000072
71197 +:10CEC0000000000000000000000000000000000062
71198 +:10CED0000000000000000000000000000000000052
71199 +:10CEE0000000000000000000000000000000000042
71200 +:10CEF0000000000000000000000000000000000032
71201 +:10CF00000000000000000000000000000000000021
71202 +:10CF10000000000000000000000000000000000011
71203 +:10CF20000000000000000000000000000000000001
71204 +:10CF300000000000000000000000000000000000F1
71205 +:10CF400000000000000000000000000000000000E1
71206 +:10CF500000000000000000000000000000000000D1
71207 +:10CF600000000000000000000000000000000000C1
71208 +:10CF700000000000000000000000000000000000B1
71209 +:10CF800000000000000000000000000000000000A1
71210 +:10CF90000000000000000000000000000000000091
71211 +:10CFA0000000000000000000000000000000000081
71212 +:10CFB0000000000000000000000000000000000071
71213 +:10CFC0000000000000000000000000000000000061
71214 +:10CFD0000000000000000000000000000000000051
71215 +:10CFE0000000000000000000000000000000000041
71216 +:10CFF0000000000000000000000000000000000031
71217 +:10D000000000000000000000000000000000000020
71218 +:10D010000000000000000000000000000000000010
71219 +:10D020000000000000000000000000000000000000
71220 +:10D0300000000000000000000000000000000000F0
71221 +:10D0400000000000000000000000000000000000E0
71222 +:10D0500000000000000000000000000000000000D0
71223 +:10D0600000000000000000000000000000000000C0
71224 +:10D0700000000000000000000000000000000000B0
71225 +:10D0800000000000000000000000000000000000A0
71226 +:10D090000000000000000000000000000000000090
71227 +:10D0A0000000000000000000000000000000000080
71228 +:10D0B0000000000000000000000000000000000070
71229 +:10D0C0000000000000000000000000000000000060
71230 +:10D0D0000000000000000000000000000000000050
71231 +:10D0E0000000000000000000000000000000000040
71232 +:10D0F0000000000000000000000000000000000030
71233 +:10D10000000000000000000000000000000000001F
71234 +:10D11000000000000000000000000000000000000F
71235 +:10D1200000000000000000000000000000000000FF
71236 +:10D1300000000000000000000000000000000000EF
71237 +:10D1400000000000000000000000000000000000DF
71238 +:10D1500000000000000000000000000000000000CF
71239 +:10D1600000000000000000000000000000000000BF
71240 +:10D1700000000000000000000000000000000000AF
71241 +:10D18000000000000000000000000000000000009F
71242 +:10D19000000000000000000000000000000000008F
71243 +:10D1A000000000000000000000000000000000007F
71244 +:10D1B000000000000000000000000000000000006F
71245 +:10D1C000000000000000000000000000000000005F
71246 +:10D1D000000000000000000000000000000000004F
71247 +:10D1E000000000000000000000000000000000003F
71248 +:10D1F000000000000000000000000000000000002F
71249 +:10D20000000000000000000000000000000000001E
71250 +:10D21000000000000000000000000000000000000E
71251 +:10D2200000000000000000000000000000000000FE
71252 +:10D2300000000000000000000000000000000000EE
71253 +:10D2400000000000000000000000000000000000DE
71254 +:10D2500000000000000000000000000000000000CE
71255 +:10D2600000000000000000000000000000000000BE
71256 +:10D2700000000000000000000000000000000000AE
71257 +:10D28000000000000000000000000000000000009E
71258 +:10D29000000000000000000000000000000000008E
71259 +:10D2A000000000000000000000000000000000007E
71260 +:10D2B000000000000000000000000000000000006E
71261 +:10D2C000000000000000000000000000000000005E
71262 +:10D2D000000000000000000000000000000000004E
71263 +:10D2E000000000000000000000000000000000003E
71264 +:10D2F000000000000000000000000000000000002E
71265 +:10D30000000000000000000000000000000000001D
71266 +:10D31000000000000000000000000000000000000D
71267 +:10D3200000000000000000000000000000000000FD
71268 +:10D3300000000000000000000000000000000000ED
71269 +:10D3400000000000000000000000000000000000DD
71270 +:10D3500000000000000000000000000000000000CD
71271 +:10D3600000000000000000000000000000000000BD
71272 +:10D3700000000000000000000000000000000000AD
71273 +:10D38000000000000000000000000000000000009D
71274 +:10D39000000000000000000000000000000000008D
71275 +:10D3A000000000000000000000000000000000007D
71276 +:10D3B000000000000000000000000000000000006D
71277 +:10D3C000000000000000000000000000000000005D
71278 +:10D3D000000000000000000000000000000000004D
71279 +:10D3E000000000000000000000000000000000003D
71280 +:10D3F000000000000000000000000000000000002D
71281 +:10D40000000000000000000000000000000000001C
71282 +:10D41000000000000000000000000000000000000C
71283 +:10D4200000000000000000000000000000000000FC
71284 +:10D4300000000000000000000000000000000000EC
71285 +:10D4400000000000000000000000000000000000DC
71286 +:10D4500000000000000000000000000000000000CC
71287 +:10D4600000000000000000000000000000000000BC
71288 +:10D4700000000000000000000000000000000000AC
71289 +:10D48000000000000000000000000000000000009C
71290 +:10D49000000000000000000000000000000000008C
71291 +:10D4A000000000000000000000000000000000007C
71292 +:10D4B000000000000000000000000000000000006C
71293 +:10D4C000000000000000000000000000000000005C
71294 +:10D4D000000000000000000000000000000000004C
71295 +:10D4E000000000000000000000000000000000003C
71296 +:10D4F000000000000000000000000000000000002C
71297 +:10D50000000000000000000000000000000000001B
71298 +:10D51000000000000000000000000000000000000B
71299 +:10D5200000000000000000000000000000000000FB
71300 +:10D5300000000000000000000000000000000000EB
71301 +:10D5400000000000000000000000000000000000DB
71302 +:10D5500000000000000000000000000000000000CB
71303 +:10D5600000000000000000000000000000000000BB
71304 +:10D5700000000000000000000000000000000000AB
71305 +:10D58000000000000000000000000000000000009B
71306 +:10D59000000000000000000000000000000000008B
71307 +:10D5A000000000000000000000000000000000007B
71308 +:10D5B000000000000000000000000000000000006B
71309 +:10D5C000000000000000000000000000000000005B
71310 +:10D5D000000000000000000000000000000000004B
71311 +:10D5E000000000000000000000000000000000003B
71312 +:10D5F000000000000000000000000000000000002B
71313 +:10D60000000000000000000000000000000000001A
71314 +:10D61000000000000000000000000000000000000A
71315 +:10D6200000000000000000000000000000000000FA
71316 +:10D6300000000000000000000000000000000000EA
71317 +:10D6400000000000000000000000000000000000DA
71318 +:10D6500000000000000000000000000000000000CA
71319 +:10D6600000000000000000000000000000000000BA
71320 +:10D6700000000000000000000000000000000000AA
71321 +:10D68000000000000000000000000000000000009A
71322 +:10D69000000000000000000000000000000000008A
71323 +:10D6A000000000000000000000000000000000007A
71324 +:10D6B000000000000000000000000000000000006A
71325 +:10D6C000000000000000000000000000000000005A
71326 +:10D6D000000000000000000000000000000000004A
71327 +:10D6E000000000000000000000000000000000003A
71328 +:10D6F000000000000000000000000000000000002A
71329 +:10D700000000000000000000000000000000000019
71330 +:10D710000000000000000000000000000000000009
71331 +:10D7200000000000000000000000000000000000F9
71332 +:10D7300000000000000000000000000000000000E9
71333 +:10D7400000000000000000000000000000000000D9
71334 +:10D7500000000000000000000000000000000000C9
71335 +:10D7600000000000000000000000000000000000B9
71336 +:10D7700000000000000000000000000000000000A9
71337 +:10D780000000000000000000000000000000000099
71338 +:10D790000000000000000000000000000000000089
71339 +:10D7A0000000000000000000000000000000000079
71340 +:10D7B0000000000000000000000000000000000069
71341 +:10D7C0000000000000000000000000000000000059
71342 +:10D7D0000000000000000000000000000000000049
71343 +:10D7E0000000000000000000000000000000000039
71344 +:10D7F0000000000000000000000000000000000029
71345 +:10D800000000000000000000000000000000000018
71346 +:10D810000000000000000000000000000000000008
71347 +:10D8200000000000000000000000000000000000F8
71348 +:10D8300000000000000000000000000000000000E8
71349 +:10D8400000000000000000000000000000000000D8
71350 +:10D8500000000000000000000000000000000000C8
71351 +:10D8600000000000000000000000000000000000B8
71352 +:10D8700000000000000000000000000000000000A8
71353 +:10D880000000000000000000000000000000000098
71354 +:10D890000000000000000000000000000000000088
71355 +:10D8A0000000000000000000000000000000000078
71356 +:10D8B0000000000000000000000000000000000068
71357 +:10D8C0000000000000000000000000000000000058
71358 +:10D8D0000000000000000000000000000000000048
71359 +:10D8E0000000000000000000000000000000000038
71360 +:10D8F0000000000000000000000000000000000028
71361 +:10D900000000000000000000000000000000000017
71362 +:10D910000000000000000000000000000000000007
71363 +:10D9200000000000000000000000000000000000F7
71364 +:10D9300000000000000000000000000000000000E7
71365 +:10D9400000000000000000000000000000000000D7
71366 +:10D9500000000000000000000000000000000000C7
71367 +:10D9600000000000000000000000000000000000B7
71368 +:10D9700000000000000000000000000000000000A7
71369 +:10D980000000000000000000000000000000000097
71370 +:10D990000000000000000000000000000000000087
71371 +:10D9A0000000000000000000000000000000000077
71372 +:10D9B0000000000000000000000000000000000067
71373 +:10D9C0000000000000000000000000000000000057
71374 +:10D9D0000000000000000000000000000000000047
71375 +:10D9E0000000000000000000000000000000000037
71376 +:10D9F0000000000000000000000000000000000027
71377 +:10DA00000000000000000000000000000000000016
71378 +:10DA10000000000000000000000000000000000006
71379 +:10DA200000000000000000000000000000000000F6
71380 +:10DA300000000000000000000000000000000000E6
71381 +:10DA400000000000000000000000000000000000D6
71382 +:10DA500000000000000000000000000000000000C6
71383 +:10DA600000000000000000000000000000000000B6
71384 +:10DA700000000000000000000000000000000000A6
71385 +:10DA80000000000000000000000000000000000096
71386 +:10DA90000000000000000000000000000000000086
71387 +:10DAA0000000000000000000000000000000000076
71388 +:10DAB0000000000000000000000000000000000066
71389 +:10DAC0000000000000000000000000000000000056
71390 +:10DAD0000000000000000000000000000000000046
71391 +:10DAE0000000000000000000000000000000000036
71392 +:10DAF0000000000000000000000000000000000026
71393 +:10DB00000000000000000000000000000000000015
71394 +:10DB10000000000000000000000000000000000005
71395 +:10DB200000000000000000000000000000000000F5
71396 +:10DB300000000000000000000000000000000000E5
71397 +:10DB400000000000000000000000000000000000D5
71398 +:10DB500000000000000000000000000000000000C5
71399 +:10DB600000000000000000000000000000000000B5
71400 +:10DB700000000000000000000000000000000000A5
71401 +:10DB80000000000000000000000000000000000095
71402 +:10DB90000000000000000000000000000000000085
71403 +:10DBA0000000000000000000000000000000000075
71404 +:10DBB0000000000000000000000000000000000065
71405 +:10DBC0000000000000000000000000000000000055
71406 +:10DBD0000000000000000000000000000000000045
71407 +:10DBE0000000000000000000000000000000000035
71408 +:10DBF0000000000000000000000000000000000025
71409 +:10DC00000000000000000000000000000000000014
71410 +:10DC10000000000000000000000000000000000004
71411 +:10DC200000000000000000000000000000000000F4
71412 +:10DC300000000000000000000000000000000000E4
71413 +:10DC400000000000000000000000000000000000D4
71414 +:10DC500000000000000000000000000000000000C4
71415 +:10DC600000000000000000000000000000000000B4
71416 +:10DC700000000000000000000000000000000000A4
71417 +:10DC80000000000000000000000000000000000094
71418 +:10DC90000000000000000000000000000000000084
71419 +:10DCA0000000000000000000000000000000000074
71420 +:10DCB0000000000000000000000000000000000064
71421 +:10DCC0000000000000000000000000000000000054
71422 +:10DCD0000000000000000000000000000000000044
71423 +:10DCE0000000000000000000000000000000000034
71424 +:10DCF0000000000000000000000000000000000024
71425 +:10DD00000000000000000000000000000000000013
71426 +:10DD10000000000000000000000000000000000003
71427 +:10DD200000000000000000000000000000000000F3
71428 +:10DD300000000000000000000000000000000000E3
71429 +:10DD400000000000000000000000000000000000D3
71430 +:10DD500000000000000000000000000000000000C3
71431 +:10DD600000000000000000000000000000000000B3
71432 +:10DD700000000000000000000000000000000000A3
71433 +:10DD80000000000000000000000000000000000093
71434 +:10DD90000000000000000000000000000000000083
71435 +:10DDA0000000000000000000000000000000000073
71436 +:10DDB0000000000000000000000000000000000063
71437 +:10DDC0000000000000000000000000000000000053
71438 +:10DDD0000000000000000000000000000000000043
71439 +:10DDE0000000000000000000000000000000000033
71440 +:10DDF0000000000000000000000000000000000023
71441 +:10DE00000000000000000000000000000000000012
71442 +:10DE10000000000000000000000000000000000002
71443 +:10DE200000000000000000000000000000000000F2
71444 +:10DE300000000000000000000000000000000000E2
71445 +:10DE400000000000000000000000000000000000D2
71446 +:10DE500000000000000000000000000000000000C2
71447 +:10DE600000000000000000000000000000000000B2
71448 +:10DE700000000000000000000000000000000000A2
71449 +:10DE80000000000000000000000000000000000092
71450 +:10DE90000000000000000000000000000000000082
71451 +:10DEA0000000000000000000000000000000000072
71452 +:10DEB0000000000000000000000000000000000062
71453 +:10DEC0000000000000000000000000000000000052
71454 +:10DED0000000000000000000000000000000000042
71455 +:10DEE0000000000000000000000000000000000032
71456 +:10DEF0000000000000000000000000000000000022
71457 +:10DF00000000000000000000000000000000000011
71458 +:10DF10000000000000000000000000000000000001
71459 +:10DF200000000000000000000000000000000000F1
71460 +:10DF300000000000000000000000000000000000E1
71461 +:10DF400000000000000000000000000000000000D1
71462 +:10DF500000000000000000000000000000000000C1
71463 +:10DF600000000000000000000000000000000000B1
71464 +:10DF700000000000000000000000000000000000A1
71465 +:10DF80000000000000000000000000000000000091
71466 +:10DF90000000000000000000000000000000000081
71467 +:10DFA0000000000000000000000000000000000071
71468 +:10DFB0000000000000000000000000000000000061
71469 +:10DFC0000000000000000000000000000000000051
71470 +:10DFD0000000000000000000000000000000000041
71471 +:10DFE0000000000000000000000000000000000031
71472 +:10DFF0000000000000000000000000000000000021
71473 +:10E000000000000000000000000000000000000010
71474 +:10E010000000000000000000000000000000000000
71475 +:10E0200000000000000000000000000000000000F0
71476 +:10E0300000000000000000000000000000000000E0
71477 +:10E0400000000000000000000000000000000000D0
71478 +:10E0500000000000000000000000000000000000C0
71479 +:10E0600000000000000000000000000000000000B0
71480 +:10E0700000000000000000000000000000000000A0
71481 +:10E080000000000000000000000000000000000090
71482 +:10E090000000000000000000000000000000000080
71483 +:10E0A0000000000000000000000000000000000070
71484 +:10E0B0000000000000000000000000000000000060
71485 +:10E0C0000000000000000000000000000000000050
71486 +:10E0D0000000000000000000000000000000000040
71487 +:10E0E0000000000000000000000000000000000030
71488 +:10E0F0000000000000000000000000000000000020
71489 +:10E10000000000000000000000000000000000000F
71490 +:10E1100000000000000000000000000000000000FF
71491 +:10E1200000000000000000000000000000000000EF
71492 +:10E1300000000000000000000000000000000000DF
71493 +:10E1400000000000000000000000000000000000CF
71494 +:10E1500000000000000000000000000000000000BF
71495 +:10E1600000000000000000000000000000000000AF
71496 +:10E17000000000000000000000000000000000009F
71497 +:10E18000000000000000000000000000000000008F
71498 +:10E19000000000000000000000000000000000007F
71499 +:10E1A000000000000000000000000000000000006F
71500 +:10E1B000000000000000000000000000000000005F
71501 +:10E1C000000000000000000000000000000000004F
71502 +:10E1D000000000000000000000000000000000003F
71503 +:10E1E000000000000000000000000000000000002F
71504 +:10E1F000000000000000000000000000000000809F
71505 +:10E20000000000000000000000000000000000000E
71506 +:10E2100000000000000000000000000000000000FE
71507 +:10E220000000000A000000000000000000000000E4
71508 +:10E2300010000003000000000000000D0000000DB1
71509 +:10E240003C020801244295C03C030801246397FC6A
71510 +:10E25000AC4000000043202B1480FFFD244200044A
71511 +:10E260003C1D080037BD9FFC03A0F0213C100800B6
71512 +:10E27000261032103C1C0801279C95C00E0012BECF
71513 +:10E28000000000000000000D3C02800030A5FFFFF0
71514 +:10E2900030C600FF344301803C0880008D0901B87E
71515 +:10E2A0000520FFFE00000000AC6400002404000212
71516 +:10E2B000A4650008A066000AA064000BAC67001803
71517 +:10E2C0003C03100003E00008AD0301B83C0560000A
71518 +:10E2D0008CA24FF80440FFFE00000000ACA44FC029
71519 +:10E2E0003C0310003C040200ACA44FC403E000084F
71520 +:10E2F000ACA34FF89486000C00A050212488001491
71521 +:10E3000000062B0200051080004448210109182B4B
71522 +:10E310001060001100000000910300002C6400094F
71523 +:10E320005080000991190001000360803C0D080134
71524 +:10E3300025AD9258018D58218D67000000E000083E
71525 +:10E340000000000091190001011940210109302B42
71526 +:10E3500054C0FFF29103000003E000080000102108
71527 +:10E360000A000CCC25080001910F0001240E000AC0
71528 +:10E3700015EE00400128C8232F38000A1700003D81
71529 +:10E38000250D00028D580000250F0006370E0100F4
71530 +:10E39000AD4E0000910C000291AB000191A400026F
71531 +:10E3A00091A60003000C2E00000B3C0000A71025D6
71532 +:10E3B00000041A000043C8250326C025AD580004F8
71533 +:10E3C000910E000691ED000191E7000291E5000336
71534 +:10E3D000000E5E00000D6400016C30250007220075
71535 +:10E3E00000C41025004518252508000A0A000CCC99
71536 +:10E3F000AD430008910F000125040002240800022B
71537 +:10E4000055E80001012020210A000CCC00804021A9
71538 +:10E41000910C0001240B0003158B00160000000076
71539 +:10E420008D580000910E000225080003370D0008EA
71540 +:10E43000A14E00100A000CCCAD4D00009119000156
71541 +:10E44000240F0004172F000B0000000091070002AA
71542 +:10E45000910400038D43000000072A0000A410254A
71543 +:10E460003466000425080004AD42000C0A000CCC00
71544 +:10E47000AD46000003E000082402000127BDFFE8CC
71545 +:10E48000AFBF0014AFB000100E00164E0080802108
71546 +:10E490003C0480083485008090A600052403FFFE1C
71547 +:10E4A0000200202100C310248FBF00148FB0001081
71548 +:10E4B000A0A200050A00165827BD001827BDFFE8D6
71549 +:10E4C000AFB00010AFBF00140E000FD40080802149
71550 +:10E4D0003C06800834C5008090A40000240200504F
71551 +:10E4E000308300FF106200073C09800002002021F9
71552 +:10E4F0008FBF00148FB00010AD2001800A00108F74
71553 +:10E5000027BD0018240801003C07800002002021DC
71554 +:10E510008FBF00148FB00010ACE801800A00108F8C
71555 +:10E5200027BD001827BDFF783C058008AFBE0080DE
71556 +:10E53000AFB7007CAFB3006CAFB10064AFBF008475
71557 +:10E54000AFB60078AFB50074AFB40070AFB200687A
71558 +:10E55000AFB0006034A600803C0580008CB201287A
71559 +:10E5600090C400098CA701043C020001309100FF17
71560 +:10E5700000E218240000B8210000F021106000071C
71561 +:10E58000000098213C0908008D2931F02413000176
71562 +:10E59000252800013C010800AC2831F0ACA0008423
71563 +:10E5A00090CC0005000C5827316A0001154000721C
71564 +:10E5B000AFA0005090CD00002406002031A400FF41
71565 +:10E5C00010860018240E0050108E009300000000EA
71566 +:10E5D0003C1008008E1000DC260F00013C010800F2
71567 +:10E5E000AC2F00DC0E0016C7000000000040182110
71568 +:10E5F0008FBF00848FBE00808FB7007C8FB60078FD
71569 +:10E600008FB500748FB400708FB3006C8FB2006848
71570 +:10E610008FB100648FB000600060102103E000083B
71571 +:10E6200027BD00880000000D3C1F8000AFA0003017
71572 +:10E6300097E501168FE201043C04002030B9FFFF8A
71573 +:10E64000004438240007182B00033140AFA60030E7
71574 +:10E650008FF5010437F80C003C1600400338802188
71575 +:10E6600002B6A02434C40040128000479215000D69
71576 +:10E6700032A800201500000234860080008030217E
71577 +:10E6800014C0009FAFA600303C0D800835A6008066
71578 +:10E6900090CC0008318B0040516000063C06800899
71579 +:10E6A000240E0004122E00A8240F0012122F003294
71580 +:10E6B0003C06800834C401003C0280009447011AE3
71581 +:10E6C0009619000E909F00088E18000830E3FFFF97
71582 +:10E6D00003F9B00432B40004AFB6005CAFA3005835
71583 +:10E6E0008E1600041280002EAFB8005434C3008090
71584 +:10E6F000906800083105004014A0002500000000CB
71585 +:10E700008C70005002D090230640000500000000ED
71586 +:10E710008C71003402D1A82306A201678EE20008A2
71587 +:10E72000126000063C1280003C1508008EB531F4E2
71588 +:10E7300026B600013C010800AC3631F4AE4000447E
71589 +:10E74000240300018FBF00848FBE00808FB7007C40
71590 +:10E750008FB600788FB500748FB400708FB3006CE3
71591 +:10E760008FB200688FB100648FB00060006010212C
71592 +:10E7700003E0000827BD00880E000D2800002021BE
71593 +:10E780000A000D75004018210A000D9500C02021D7
71594 +:10E790000E00171702C020211440FFE10000000006
71595 +:10E7A0003C0B8008356400808C8A003402CA482300
71596 +:10E7B0000520001D000000003C1E08008FDE310017
71597 +:10E7C00027D700013C010800AC3731001260000679
71598 +:10E7D000024020213C1408008E9431F42690000160
71599 +:10E7E0003C010800AC3031F40E00164E3C1E80088F
71600 +:10E7F00037CD008091B700250240202136EE00047D
71601 +:10E800000E001658A1AE00250E000CAC02402021CF
71602 +:10E810000A000DCA240300013C17080126F796C020
71603 +:10E820000A000D843C1F80008C86003002C66023E5
71604 +:10E830001980000C2419000C908F004F3C14080024
71605 +:10E840008E94310032B500FC35ED0001268E0001BA
71606 +:10E850003C010800AC2E3100A08D004FAFA0005845
71607 +:10E860002419000CAFB900308C9800300316A02397
71608 +:10E870001A80010B8FA300580074F82A17E0FFD309
71609 +:10E88000000000001074002A8FA5005802D4B021A7
71610 +:10E8900000B410233044FFFFAFA4005832A8000298
71611 +:10E8A0001100002E32AB00103C15800836B00080FD
71612 +:10E8B0009216000832D30040526000FB8EE200083E
71613 +:10E8C0000E00164E02402021240A0018A20A000958
71614 +:10E8D000921100052409FFFE024020210229902404
71615 +:10E8E0000E001658A2120005240400390000282149
71616 +:10E8F0000E0016F2240600180A000DCA24030001B7
71617 +:10E9000092FE000C3C0A800835490080001EBB00C6
71618 +:10E910008D27003836F10081024020213225F08118
71619 +:10E920000E000C9B30C600FF0A000DC10000000065
71620 +:10E930003AA7000130E300011460FFA402D4B02123
71621 +:10E940000A000E1D00000000024020210E001734B6
71622 +:10E95000020028210A000D75004018211160FF7087
71623 +:10E960003C0F80083C0D800835EE00808DC40038D7
71624 +:10E970008FA300548DA60004006660231D80FF68ED
71625 +:10E98000000000000064C02307020001AFA400548F
71626 +:10E990003C1F08008FFF31E433F9000113200015FC
71627 +:10E9A0008FAC00583C07800094E3011A10600012FD
71628 +:10E9B0003C0680080E00216A024020213C03080129
71629 +:10E9C000906396F13064000214800145000000005D
71630 +:10E9D000306C0004118000078FAC0058306600FBDB
71631 +:10E9E0003C010801A02696F132B500FCAFA000580A
71632 +:10E9F0008FAC00583C06800834D30080AFB40018B8
71633 +:10EA0000AFB60010AFAC00143C088000950B01209D
71634 +:10EA10008E6F0030966A005C8FA3005C8FBF003061
71635 +:10EA20003169FFFF3144FFFF8FAE005401341021E4
71636 +:10EA3000350540000064382B0045C82103E7C02598
71637 +:10EA4000AFB90020AFAF0028AFB80030AFAF00249F
71638 +:10EA5000AFA0002CAFAE0034926D000831B40008B6
71639 +:10EA6000168000BB020020218EE200040040F8095D
71640 +:10EA700027A400108FAF003031F300025660000170
71641 +:10EA800032B500FE3C048008349F008093F90008F2
71642 +:10EA900033380040530000138FA400248C850004F9
71643 +:10EAA0008FA7005410A700D52404001432B0000131
71644 +:10EAB0001200000C8FA400242414000C1234011A3C
71645 +:10EAC0002A2D000D11A001022413000E240E000AAD
71646 +:10EAD000522E0001241E00088FAF002425E40001FF
71647 +:10EAE000AFA400248FAA00143C0B80083565008079
71648 +:10EAF000008A48218CB10030ACA9003090A4004EAF
71649 +:10EB00008CA700303408FFFF0088180400E3F821C8
71650 +:10EB1000ACBF00348FA600308FB900548FB8005CB2
71651 +:10EB200030C200081040000B033898218CAC002044
71652 +:10EB3000119300D330C600FF92EE000C8FA7003473
71653 +:10EB400002402021000E6B0035B400800E000C9BAB
71654 +:10EB50003285F0803C028008345000808E0F0030F7
71655 +:10EB600001F1302318C00097264800803C070800B8
71656 +:10EB70008CE731E42404FF80010418243118007F5D
71657 +:10EB80003C1F80003C19800430F10001AFE300908D
71658 +:10EB900012200006031928213C030801906396F116
71659 +:10EBA00030690008152000C6306A00F73C10800864
71660 +:10EBB00036040080908C004F318B000115600042BC
71661 +:10EBC000000000003C0608008CC6319830CE0010D2
71662 +:10EBD00051C0004230F9000190AF006B55E0003F9A
71663 +:10EBE00030F9000124180001A0B8006B3C1180002E
71664 +:10EBF0009622007A24470064A48700123C0D800806
71665 +:10EC000035A5008090B40008329000401600000442
71666 +:10EC10003C03800832AE000115C0008B00000000EC
71667 +:10EC2000346400808C86002010D3000A3463010015
71668 +:10EC30008C67000002C7782319E000978FBF00544B
71669 +:10EC4000AC93002024130001AC760000AFB3005059
71670 +:10EC5000AC7F000417C0004E000000008FA90050D8
71671 +:10EC60001520000B000000003C030801906396F1A2
71672 +:10EC7000306A00011140002E8FAB0058306400FE56
71673 +:10EC80003C010801A02496F10A000D75000018212E
71674 +:10EC90000E000CAC024020210A000F1300000000FF
71675 +:10ECA0000A000E200000A0210040F80924040017EB
71676 +:10ECB0000A000DCA240300010040F80924040016CC
71677 +:10ECC0000A000DCA240300019094004F240DFFFE9A
71678 +:10ECD000028D2824A085004F30F900011320000682
71679 +:10ECE0003C0480083C030801906396F1307F0010DB
71680 +:10ECF00017E00051306800EF34900080240A0001D2
71681 +:10ED0000024020210E00164EA60A00129203002592
71682 +:10ED100024090001AFA90050346200010240202103
71683 +:10ED20000E001658A20200250A000EF93C0D8008BC
71684 +:10ED30001160FE83000018218FA5003030AC000464
71685 +:10ED40001180FE2C8FBF00840A000DCB240300012C
71686 +:10ED500027A500380E000CB6AFA000385440FF4382
71687 +:10ED60008EE200048FB40038329001005200FF3F61
71688 +:10ED70008EE200048FA3003C8E6E0058006E682364
71689 +:10ED800005A3FF39AE6300580A000E948EE200041A
71690 +:10ED90000E00164E024020213C038008346800809B
71691 +:10EDA000024020210E001658A11E000903C0302188
71692 +:10EDB000240400370E0016F2000028210A000F116B
71693 +:10EDC0008FA900508FAB00185960FF8D3C0D800853
71694 +:10EDD0000E00164E02402021920C00252405000151
71695 +:10EDE000AFA5005035820004024020210E001658C5
71696 +:10EDF000A20200250A000EF93C0D800812240059D9
71697 +:10EE00002A2300151060004D240900162408000C68
71698 +:10EE10005628FF2732B000013C0A8008914C001BA5
71699 +:10EE20002406FFBD241E000E01865824A14B001BA2
71700 +:10EE30000A000EA532B000013C010801A02896F19D
71701 +:10EE40000A000EF93C0D80088CB500308EFE0008DB
71702 +:10EE50002404001826B6000103C0F809ACB600303F
71703 +:10EE60003C030801906396F13077000116E0FF81C2
71704 +:10EE7000306A00018FB200300A000D753243000481
71705 +:10EE80003C1080009605011A50A0FF2B34C60010DC
71706 +:10EE90000A000EC892EE000C8C6200001456FF6D42
71707 +:10EEA000000000008C7800048FB9005403388823D8
71708 +:10EEB0000621FF638FBF00540A000F0E0000000000
71709 +:10EEC0003C010801A02A96F10A000F3030F9000138
71710 +:10EED0001633FF028FAF00240A000EB0241E00106C
71711 +:10EEE0000E00164E024020213C0B80083568008041
71712 +:10EEF00091090025240A0001AFAA0050353300040F
71713 +:10EF0000024020210E001658A11300253C050801DF
71714 +:10EF100090A596F130A200FD3C010801A02296F1D7
71715 +:10EF20000A000E6D004018212411000E53D1FEEA94
71716 +:10EF3000241E00100A000EAF241E00165629FEDC07
71717 +:10EF400032B000013C0A8008914C001B2406FFBD32
71718 +:10EF5000241E001001865824A14B001B0A000EA598
71719 +:10EF600032B000010A000EA4241E00123C038000EF
71720 +:10EF70008C6201B80440FFFE24040800AC6401B8B0
71721 +:10EF800003E000080000000030A5FFFF30C6FFFFCF
71722 +:10EF90003C0780008CE201B80440FFFE34EA0180A7
71723 +:10EFA000AD440000ACE400203C0480089483004899
71724 +:10EFB0003068FFFF11000016AF88000824AB001274
71725 +:10EFC000010B482B512000133C04800034EF01005A
71726 +:10EFD00095EE00208F890000240D001A31CCFFFF30
71727 +:10EFE00031274000A14D000B10E000362583FFFEC5
71728 +:10EFF0000103C02B170000348F9900048F88000490
71729 +:10F00000A5430014350700010A001003AF87000470
71730 +:10F010003C04800024030003348201808F890000B7
71731 +:10F020008F870004A043000B3C088000350C018052
71732 +:10F03000A585000EA585001A8F85000C30EB800099
71733 +:10F04000A5890010AD850028A58600081160000F75
71734 +:10F050008F85001435190100972A00163158FFFCDE
71735 +:10F06000270F000401E870218DCD400031A6FFFF7D
71736 +:10F0700014C000072403BFFF3C02FFFF34487FFF9A
71737 +:10F0800000E83824AF8700048F8500142403BFFFF5
71738 +:10F090003C04800000E3582434830180A46B0026E4
71739 +:10F0A000AC69002C10A0000300054C02A465001000
71740 +:10F0B000A46900263C071000AC8701B803E00008F3
71741 +:10F0C000000000008F990004240AFFFE032A382460
71742 +:10F0D0000A001003AF87000427BDFFE88FA20028B5
71743 +:10F0E00030A5FFFF30C6FFFFAFBF0010AF87000C99
71744 +:10F0F000AF820014AF8000040E000FDBAF80000071
71745 +:10F100008FBF001027BD001803E00008AF80001477
71746 +:10F110003C06800034C4007034C701008C8A0000B3
71747 +:10F1200090E500128F84000027BDFFF030A300FFA0
71748 +:10F13000000318823082400010400037246500032D
71749 +:10F140000005C8800326C0218F0E4000246F0004F4
71750 +:10F15000000F6880AFAE000001A660218D8B4000DB
71751 +:10F16000AFAB000494E900163128FFFC01063821FA
71752 +:10F170008CE64000AFA600088FA9000800003021EF
71753 +:10F18000000028213C07080024E701000A0010675E
71754 +:10F19000240800089059000024A500012CAC000CA4
71755 +:10F1A0000079C0210018788001E770218DCD000022
71756 +:10F1B0001180000600CD302603A5102114A8FFF50C
71757 +:10F1C00000051A005520FFF4905900003C0480000F
71758 +:10F1D000348700703C0508008CA531048CE30000E6
71759 +:10F1E0002CA2002010400009006A38230005488046
71760 +:10F1F0003C0B0800256B3108012B402124AA00019B
71761 +:10F20000AD0700003C010800AC2A310400C0102109
71762 +:10F2100003E0000827BD0010308220001040000BE2
71763 +:10F2200000055880016648218D24400024680004B0
71764 +:10F2300000083880AFA4000000E618218C6540006B
71765 +:10F24000AFA000080A001057AFA500040000000D91
71766 +:10F250000A0010588FA9000827BDFFE03C07800076
71767 +:10F2600034E60100AFBF001CAFB20018AFB100140C
71768 +:10F27000AFB0001094C5000E8F87000030A4FFFFD0
71769 +:10F280002483000430E2400010400010AF830028C7
71770 +:10F290003C09002000E940241100000D30EC800002
71771 +:10F2A0008F8A0004240BBFFF00EB38243543100085
71772 +:10F2B000AF87000030F220001640000B3C1900041C
71773 +:10F2C000241FFFBF0A0010B7007F102430EC80001D
71774 +:10F2D000158000423C0E002030F220001240FFF862
71775 +:10F2E0008F8300043C19000400F9C0241300FFF5CB
71776 +:10F2F000241FFFBF34620040AF82000430E20100EF
71777 +:10F300001040001130F010008F83002C10600006B8
71778 +:10F310003C0F80003C05002000E52024148000C044
71779 +:10F320003C0800043C0F800035EE010095CD001E26
71780 +:10F3300095CC001C31AAFFFF000C5C00014B482556
71781 +:10F34000AF89000C30F010001200000824110001F9
71782 +:10F3500030F100201620008B3C18100000F890249B
71783 +:10F36000164000823C040C002411000130E801002A
71784 +:10F370001500000B3C0900018F85000430A94000F6
71785 +:10F38000152000073C0900013C0C1F0100EC58242B
71786 +:10F390003C0A1000116A01183C1080003C09000171
71787 +:10F3A00000E9302410C000173C0B10003C18080086
71788 +:10F3B0008F1800243307000214E0014024030001E9
71789 +:10F3C0008FBF001C8FB200188FB100148FB00010D7
71790 +:10F3D0000060102103E0000827BD002000EE682433
71791 +:10F3E00011A0FFBE30F220008F8F00043C11FFFF00
71792 +:10F3F00036307FFF00F0382435E380000A0010A685
71793 +:10F40000AF87000000EB102450400065AF8000245F
71794 +:10F410008F8C002C3C0D0F0000ED18241580008807
71795 +:10F42000AF83001030E8010011000086938F0010B8
71796 +:10F430003C0A0200106A00833C1280003650010032
71797 +:10F44000920500139789002A3626000230AF00FF8C
71798 +:10F4500025EE0004000E19C03C0480008C9801B811
71799 +:10F460000700FFFE34880180AD0300003C198008CE
71800 +:10F47000AC830020973100483225FFFF10A0015CCB
71801 +:10F48000AF8500082523001200A3F82B53E0015993
71802 +:10F490008F850004348D010095AC00202402001AF1
71803 +:10F4A00030E44000318BFFFFA102000B108001927D
71804 +:10F4B0002563FFFE00A3502B154001908F8F0004A1
71805 +:10F4C000A50300148F88000435050001AF850004F2
71806 +:10F4D0003C08800035190180A729000EA729001AD1
71807 +:10F4E0008F89000C30B18000A7270010AF290028B9
71808 +:10F4F000A72600081220000E3C04800035020100FF
71809 +:10F50000944C0016318BFFFC256400040088182100
71810 +:10F510008C7F400033E6FFFF14C000053C048000F0
71811 +:10F520003C0AFFFF354D7FFF00AD2824AF85000466
71812 +:10F53000240EBFFF00AE402434850180A4A800261D
71813 +:10F54000ACA7002C3C071000AC8701B800001821C4
71814 +:10F550008FBF001C8FB200188FB100148FB0001045
71815 +:10F560000060102103E0000827BD00203C020BFFD3
71816 +:10F5700000E41824345FFFFF03E3C82B5320FF7B14
71817 +:10F58000241100013C0608008CC6002C24C5000193
71818 +:10F590003C010800AC25002C0A0010D42411000501
71819 +:10F5A0008F85002410A0002FAF80001090A30000D2
71820 +:10F5B000146000792419000310A0002A30E601002D
71821 +:10F5C00010C000CC8F860010241F000210DF00C97D
71822 +:10F5D0008F8B000C3C0708008CE7003824E4FFFF09
71823 +:10F5E00014E0000201641824000018213C0D0800FA
71824 +:10F5F00025AD0038006D1021904C00048F85002847
71825 +:10F6000025830004000321C030A5FFFF3626000239
71826 +:10F610000E000FDB000000000A00114D0000182151
71827 +:10F6200000E8302414C0FF403C0F80000E00103D65
71828 +:10F63000000000008F8700000A0010CAAF82000C93
71829 +:10F64000938F00103C18080127189640000F90C0B7
71830 +:10F6500002588021AF9000248F85002414A0FFD38E
71831 +:10F66000AF8F00103C0480008C86400030C5010044
71832 +:10F6700010A000BC322300043C0C08008D8C002438
71833 +:10F6800024120004106000C23190000D3C04800080
71834 +:10F690008C8D40003402FFFF11A201003231FFFBCC
71835 +:10F6A0008C884000310A01005540000124110010EF
71836 +:10F6B00030EE080011C000BE2419FFFB8F9800280F
71837 +:10F6C0002F0F03EF51E000010219802430E90100FF
71838 +:10F6D00011200014320800018F87002C14E000FB79
71839 +:10F6E0008F8C000C3C05800034AB0100917F00132F
71840 +:10F6F00033E300FF246A00042403FFFE0203802496
71841 +:10F70000000A21C012000002023230253226FFFF1B
71842 +:10F710000E000FDB9785002A1200FF290000182138
71843 +:10F72000320800011100000D32180004240E0001FF
71844 +:10F73000120E0002023230253226FFFF9785002A82
71845 +:10F740000E000FDB00002021240FFFFE020F80249B
71846 +:10F750001200FF1B00001821321800045300FF188C
71847 +:10F760002403000102323025241200045612000145
71848 +:10F770003226FFFF9785002A0E000FDB24040100CC
71849 +:10F780002419FFFB021988241220FF0D0000182104
71850 +:10F790000A0010E9240300011079009C00003021C8
71851 +:10F7A00090AD00012402000211A200BE30EA004028
71852 +:10F7B00090B90001241800011338007F30E900409F
71853 +:10F7C0008CA600049785002A00C020210E000FDBC4
71854 +:10F7D0003626000200004021010018218FBF001CC6
71855 +:10F7E0008FB200188FB100148FB00010006010218C
71856 +:10F7F00003E0000827BD0020360F010095EE000C45
71857 +:10F8000031CD020015A0FEE63C0900013C1880083D
71858 +:10F81000971200489789002A362600023248FFFFD7
71859 +:10F82000AF8800083C0380008C7101B80620FFFE01
71860 +:10F83000346A0180AD4000001100008E3C0F800052
71861 +:10F84000253F0012011FC82B1320008B240E00033C
71862 +:10F85000346C0100958B00202402001A30E4400033
71863 +:10F860003163FFFFA142000B108000A72463FFFE5D
71864 +:10F870000103682B15A000A52408FFFE34A5000194
71865 +:10F88000A5430014AF8500043C0480002412BFFF90
71866 +:10F8900000B2802434850180A4A9000EA4A9001A16
71867 +:10F8A000A4A60008A4B00026A4A700103C071000DE
71868 +:10F8B000AC8701B80A00114D000018213C038000FC
71869 +:10F8C00034640100949F000E3C1908008F3900D861
71870 +:10F8D0002404008033E5FFFF273100013C010800CC
71871 +:10F8E000AC3100D80E000FDB240600030A00114DD6
71872 +:10F8F00000001821240A000210CA00598F85002830
71873 +:10F900003C0308008C6300D0240E0001106E005EE2
71874 +:10F910002CCF000C24D2FFFC2E5000041600002136
71875 +:10F9200000002021241800021078001B2CD9000CA4
71876 +:10F9300024DFFFF82FE900041520FF330000202109
71877 +:10F9400030EB020051600004000621C054C00022C8
71878 +:10F9500030A5FFFF000621C030A5FFFF0A00117D82
71879 +:10F96000362600023C0908008D29002431300001B0
71880 +:10F970005200FEF7000018219785002A3626000263
71881 +:10F980000E000FDB000020210A00114D000018219D
71882 +:10F990000A00119C241200021320FFE624DFFFF866
71883 +:10F9A0000000202130A5FFFF0A00117D362600024D
71884 +:10F9B0000A0011AC021980245120FF828CA6000499
71885 +:10F9C0003C05080190A5964110A0FF7E2408000187
71886 +:10F9D0000A0011F0010018210E000FDB3226000191
71887 +:10F9E0008F8600108F8500280A00124F000621C064
71888 +:10F9F0008F8500043C18800024120003371001801A
71889 +:10FA0000A212000B0A00112E3C08800090A30001F6
71890 +:10FA1000241100011071FF70240800012409000264
71891 +:10FA20005069000430E60040240800010A0011F08B
71892 +:10FA30000100182150C0FFFD240800013C0C80008B
71893 +:10FA4000358B01009563001094A40002307FFFFF06
71894 +:10FA5000509FFF62010018210A001284240800014F
71895 +:10FA60002CA803EF1100FE56240300010A001239EE
71896 +:10FA700000000000240E000335EA0180A14E000BB7
71897 +:10FA80000A00121C3C04800011E0FFA2000621C005
71898 +:10FA900030A5FFFF0A00117D362600020A0011A5DD
71899 +:10FAA000241100201140FFC63C1280003650010096
71900 +:10FAB000960F001094AE000231E80FFF15C8FFC08A
71901 +:10FAC000000000000A0011E690B900013C060800A1
71902 +:10FAD0008CC6003824C4FFFF14C00002018418241F
71903 +:10FAE000000018213C0D080025AD0038006D1021E4
71904 +:10FAF0000A0011B6904300048F8F0004240EFFFE0D
71905 +:10FB00000A00112C01EE28242408FFFE0A00121A14
71906 +:10FB100000A8282427BDFFC8AFB00010AFBF003435
71907 +:10FB20003C10600CAFBE0030AFB7002CAFB6002861
71908 +:10FB3000AFB50024AFB40020AFB3001CAFB20018C3
71909 +:10FB4000AFB100148E0E5000240FFF7F3C068000E2
71910 +:10FB500001CF682435AC380C240B0003AE0C5000E8
71911 +:10FB6000ACCB00083C010800AC2000200E001819A6
71912 +:10FB7000000000003C0A0010354980513C06601628
71913 +:10FB8000AE09537C8CC700003C0860148D0500A0B2
71914 +:10FB90003C03FFFF00E320243C02535300051FC237
71915 +:10FBA0001482000634C57C000003A08002869821E0
71916 +:10FBB0008E7200043C116000025128218CBF007C31
71917 +:10FBC0008CA200783C1E600037C420203C05080150
71918 +:10FBD00024A59288AF820018AF9F001C0E0016DD8E
71919 +:10FBE0002406000A3C190001273996403C01080010
71920 +:10FBF000AC3931DC0E0020DDAF8000148FD708084F
71921 +:10FC00002418FFF03C15570902F8B02412D502F56C
71922 +:10FC100024040001AF80002C3C1480003697018042
71923 +:10FC20003C1E080127DE9644369301008E900000AA
71924 +:10FC30003205000310A0FFFD3207000110E000882C
71925 +:10FC4000320600028E7100283C048000AE91002034
71926 +:10FC50008E6500048E66000000A0382100C040219F
71927 +:10FC60008C8301B80460FFFE3C0B0010240A0800DE
71928 +:10FC700000AB4824AC8A01B8552000E0240BBFFF3C
71929 +:10FC80009675000E3C1208008E52002030AC4000E9
71930 +:10FC900032AFFFFF264E000125ED00043C010800B5
71931 +:10FCA000AC2E0020118000E8AF8D00283C18002009
71932 +:10FCB00000B8B02412C000E530B980002408BFFFAE
71933 +:10FCC00000A8382434C81000AF87000030E62000B8
71934 +:10FCD00010C000E92409FFBF3C03000400E328240E
71935 +:10FCE00010A00002010910243502004030EA010092
71936 +:10FCF00011400010AF8200048F8B002C11600007B0
71937 +:10FD00003C0D002000ED6024118000043C0F000435
71938 +:10FD100000EF702411C00239000000009668001E38
71939 +:10FD20009678001C3115FFFF0018B40002B690252C
71940 +:10FD3000AF92000C30F910001320001324150001BD
71941 +:10FD400030FF002017E0000A3C04100000E41024FB
71942 +:10FD50001040000D3C0A0C003C090BFF00EA18247F
71943 +:10FD60003525FFFF00A3302B10C0000830ED010047
71944 +:10FD70003C0C08008D8C002C24150005258B0001FF
71945 +:10FD80003C010800AC2B002C30ED010015A0000B4D
71946 +:10FD90003C0500018F85000430AE400055C00007CF
71947 +:10FDA0003C0500013C161F0100F690243C0F10009A
71948 +:10FDB000124F01CE000000003C05000100E5302498
71949 +:10FDC00010C000AF3C0C10003C1F08008FFF002447
71950 +:10FDD00033E90002152000712403000100601021A6
71951 +:10FDE000104000083C0680003C08800035180100E7
71952 +:10FDF0008F0F00243C056020ACAF00140000000011
71953 +:10FE00003C0680003C194000ACD9013800000000DD
71954 +:10FE10005220001332060002262B0140262C0080BF
71955 +:10FE2000240EFF80016E2024018E6824000D1940ED
71956 +:10FE3000318A007F0004A9403172007F3C16200007
71957 +:10FE400036C20002006A482502B2382500E2882541
71958 +:10FE50000122F825ACDF0830ACD1083032060002B0
71959 +:10FE600010C0FF723C188000370501408CA80000CC
71960 +:10FE700024100040AF08002090AF000831E300706C
71961 +:10FE8000107000D428790041532000082405006038
71962 +:10FE9000241100201071000E3C0A40003C09800033
71963 +:10FEA000AD2A01780A001304000000001465FFFB6E
71964 +:10FEB0003C0A40000E001FFA000000003C0A40000F
71965 +:10FEC0003C098000AD2A01780A00130400000000FC
71966 +:10FED00090A90009241F00048CA70000312800FF0E
71967 +:10FEE000111F01B22503FFFA2C7200061240001404
71968 +:10FEF0003C0680008CA9000494A4000A310500FF90
71969 +:10FF000000095E022D6A00083086FFFF15400002DE
71970 +:10FF10002567000424070003240C000910AC01FA33
71971 +:10FF200028AD000A11A001DE2410000A240E0008EA
71972 +:10FF300010AE0028000731C000C038213C06800008
71973 +:10FF40008CD501B806A0FFFE34D20180AE47000078
71974 +:10FF500034CB0140916E0008240300023C0A4000AB
71975 +:10FF600031C400FF00046A0001A86025A64C000807
71976 +:10FF7000A243000B9562000A3C0810003C09800077
71977 +:10FF8000A64200108D670004AE470024ACC801B83B
71978 +:10FF9000AD2A01780A001304000000003C0A80002A
71979 +:10FFA000354401009483000E3C0208008C4200D8C6
71980 +:10FFB000240400803065FFFF245500013C01080047
71981 +:10FFC000AC3500D80E000FDB240600030A001370C6
71982 +:10FFD000000018210009320230D900FF2418000166
71983 +:10FFE0001738FFD5000731C08F910020262200016D
71984 +:10FFF000AF8200200A0013C800C0382100CB2024A3
71985 +:020000021000EC
71986 +:10000000AF85000010800008AF860004240D87FF34
71987 +:1000100000CD6024158000083C0E006000AE302446
71988 +:1000200010C00005000000000E000D42000000009E
71989 +:100030000A001371000000000E0016050000000009
71990 +:100040000A0013710000000030B980005320FF1F28
71991 +:10005000AF8500003C02002000A2F82453E0FF1B03
71992 +:10006000AF8500003C07FFFF34E47FFF00A4382485
71993 +:100070000A00132B34C880000A001334010910242D
71994 +:1000800000EC58245160005AAF8000248F8D002C62
71995 +:100090003C0E0F0000EE182415A00075AF83001071
71996 +:1000A00030EF010011E00073939800103C12020041
71997 +:1000B000107200703C06800034D9010093280013B0
71998 +:1000C0009789002A36A60002311800FF271600047F
71999 +:1000D000001619C03C0480008C8501B804A0FFFE06
72000 +:1000E00034880180AD0300003C158008AC830020FB
72001 +:1000F00096BF004833E5FFFF10A001BCAF850008A4
72002 +:100100002523001200A3102B504001B98F85000455
72003 +:10011000348D010095AC0020240B001A30E440001F
72004 +:10012000318AFFFFA10B000B108001BA2543FFFEAF
72005 +:1001300000A3702B15C001B88F9600048F8F0004A8
72006 +:10014000A503001435E50001AF8500043C088000DC
72007 +:1001500035150180A6A9000EA6A9001A8F89000CEA
72008 +:1001600030BF8000A6A70010AEA90028A6A60008F0
72009 +:1001700013E0000F3C0F8000350C0100958B00163A
72010 +:10018000316AFFFC25440004008818218C6240007D
72011 +:100190003046FFFF14C000072416BFFF3C0EFFFFD0
72012 +:1001A00035CD7FFF00AD2824AF8500043C0F8000D3
72013 +:1001B0002416BFFF00B6902435E50180A4B20026C6
72014 +:1001C000ACA7002C3C071000ADE701B80A00137083
72015 +:1001D000000018210E00165D000000003C0A4000DF
72016 +:1001E0003C098000AD2A01780A00130400000000D9
72017 +:1001F0008F85002410A00027AF80001090A300007E
72018 +:10020000106000742409000310690101000030210E
72019 +:1002100090AE0001240D000211CD014230EF0040EC
72020 +:1002200090A90001241F0001113F000930E20040A5
72021 +:100230008CA600049785002A00C020210E000FDB49
72022 +:1002400036A60002000040210A00137001001821A8
72023 +:100250005040FFF88CA600043C07080190E7964147
72024 +:1002600010E0FFF4240800010A00137001001821B7
72025 +:10027000939800103C1F080127FF96400018C8C043
72026 +:10028000033F4021AF8800248F85002414A0FFDBAA
72027 +:10029000AF9800103C0480008C86400030C50100FF
72028 +:1002A00010A0008732AB00043C0C08008D8C0024A9
72029 +:1002B00024160004156000033192000D241600027C
72030 +:1002C0003C0480008C8E4000340DFFFF11CD0113E3
72031 +:1002D00032B5FFFB8C984000330F010055E0000160
72032 +:1002E0002415001030E80800110000382409FFFB35
72033 +:1002F0008F9F00282FF903EF53200001024990241B
72034 +:1003000030E2010010400014325F00018F87002CA2
72035 +:1003100014E0010E8F8C000C3C0480003486010038
72036 +:1003200090C5001330AA00FF25430004000321C03C
72037 +:100330002419FFFE025990241240000202B6302513
72038 +:1003400032A6FFFF0E000FDB9785002A1240FEA3A6
72039 +:1003500000001821325F000113E0000D3247000455
72040 +:10036000240900011249000202B6302532A6FFFF1F
72041 +:100370009785002A0E000FDB000020212402FFFEDB
72042 +:10038000024290241240FE950000182132470004DA
72043 +:1003900050E0FE922403000102B63025241600042A
72044 +:1003A0005656000132A6FFFF9785002A0E000FDB8C
72045 +:1003B000240401002403FFFB0243A82412A0FE87AB
72046 +:1003C000000018210A001370240300010A0014B968
72047 +:1003D0000249902410A0FFAF30E5010010A00017E3
72048 +:1003E0008F8600102403000210C300148F84000CB9
72049 +:1003F0003C0608008CC6003824CAFFFF14C0000267
72050 +:10040000008A1024000010213C0E080025CE003880
72051 +:10041000004E682191AC00048F850028258B0004D4
72052 +:10042000000B21C030A5FFFF36A600020E000FDB37
72053 +:10043000000000000A00137000001821240F0002C1
72054 +:1004400010CF0088241600013C0308008C6300D004
72055 +:100450001076008D8F85002824D9FFFC2F280004FA
72056 +:100460001500006300002021241F0002107F005DA2
72057 +:100470002CC9000C24C3FFF82C6200041440FFE9CF
72058 +:100480000000202130EA020051400004000621C093
72059 +:1004900054C0000530A5FFFF000621C030A5FFFFB6
72060 +:1004A0000A00150436A600020E000FDB32A600017A
72061 +:1004B0008F8600108F8500280A001520000621C0B5
72062 +:1004C0003C0A08008D4A0024315200015240FE438C
72063 +:1004D000000018219785002A36A600020E000FDBC7
72064 +:1004E000000020210A001370000018219668000CFB
72065 +:1004F000311802005700FE313C0500013C1F800806
72066 +:1005000097F900489789002A36A600023328FFFF92
72067 +:10051000AF8800083C0380008C7501B806A0FFFE80
72068 +:100520003C04800034820180AC400000110000B621
72069 +:1005300024180003252A0012010A182B106000B2AB
72070 +:1005400000000000966F00203C0E8000240D001A71
72071 +:1005500031ECFFFF35CA018030EB4000A14D000BAC
72072 +:10056000116000B02583FFFE0103902B164000AE02
72073 +:100570002416FFFE34A50001A5430014AF85000436
72074 +:100580002419BFFF00B94024A6E9000EA6E9001A0D
72075 +:10059000A6E60008A6E80026A6E700103C07100023
72076 +:1005A000AE8701B80A001370000018213C048000D7
72077 +:1005B0008C8201B80440FFFE349601802415001C93
72078 +:1005C000AEC70000A2D5000B3C071000AC8701B8F5
72079 +:1005D0003C0A40003C098000AD2A01780A0013045F
72080 +:1005E000000000005120FFA424C3FFF800002021D8
72081 +:1005F00030A5FFFF0A00150436A600020E00103DCC
72082 +:10060000000000008F8700000A001346AF82000C34
72083 +:1006100090A30001241500011075FF0B24080001B0
72084 +:10062000240600021066000430E2004024080001A5
72085 +:100630000A001370010018215040FFFD240800013A
72086 +:100640003C0C8000358B0100956A001094A40002D8
72087 +:100650003143FFFF5083FDE1010018210A00158599
72088 +:10066000240800018F8500282CB203EF1240FDDB27
72089 +:10067000240300013C0308008C6300D02416000111
72090 +:100680001476FF7624D9FFFC2CD8000C1300FF72DF
72091 +:10069000000621C030A5FFFF0A00150436A600029F
72092 +:1006A00010B00037240F000B14AFFE23000731C039
72093 +:1006B000312600FF00065600000A4E0305220047BF
72094 +:1006C00030C6007F0006F8C03C16080126D69640CA
72095 +:1006D00003F68021A2000001A20000003C0F600090
72096 +:1006E0008DF918202405000100C588040011302769
72097 +:1006F0000326C024000731C000C03821ADF81820FF
72098 +:100700000A0013C8A60000028F850020000731C030
72099 +:1007100024A2FFFF0A0013F6AF8200200A0014B2E1
72100 +:100720002415002011E0FECC3C1980003728010080
72101 +:100730009518001094B6000233120FFF16D2FEC6B1
72102 +:10074000000000000A00148290A900013C0B080080
72103 +:100750008D6B0038256DFFFF15600002018D1024A0
72104 +:10076000000010213C080800250800380048C0217E
72105 +:10077000930F000425EE00040A0014C5000E21C0EA
72106 +:1007800000065202241F00FF115FFDEB000731C07D
72107 +:10079000000A20C03C0E080125CE9640008EA821FC
72108 +:1007A000009E602100095C02240D00013C076000EE
72109 +:1007B000A2AD0000AD860000A2AB00018CF21820B3
72110 +:1007C00024030001014310040242B025ACF61820B6
72111 +:1007D00000C038210A0013C8A6A900020A0015AA01
72112 +:1007E000AF8000200A0012FFAF84002C8F85000428
72113 +:1007F0003C1980002408000337380180A308000B4F
72114 +:100800000A00144D3C088000A2F8000B0A00155A9B
72115 +:100810002419BFFF8F9600042412FFFE0A00144B18
72116 +:1008200002D228242416FFFE0A00155800B62824F8
72117 +:100830003C038000346401008C85000030A2003E3F
72118 +:100840001440000800000000AC6000488C870000E5
72119 +:1008500030E607C010C0000500000000AC60004C8E
72120 +:10086000AC60005003E0000824020001AC600054BA
72121 +:10087000AC6000408C880000310438001080FFF923
72122 +:10088000000000002402000103E00008AC60004406
72123 +:100890003C0380008C6201B80440FFFE3467018095
72124 +:1008A000ACE4000024080001ACE00004A4E500086A
72125 +:1008B00024050002A0E8000A34640140A0E5000B12
72126 +:1008C0009483000A14C00008A4E30010ACE00024E4
72127 +:1008D0003C07800034E901803C041000AD20002872
72128 +:1008E00003E00008ACE401B88C8600043C0410006E
72129 +:1008F000ACE600243C07800034E90180AD200028EC
72130 +:1009000003E00008ACE401B83C0680008CC201B8EA
72131 +:100910000440FFFE34C7018024090002ACE400005B
72132 +:10092000ACE40004A4E50008A0E9000A34C50140D5
72133 +:10093000A0E9000B94A8000A3C041000A4E80010F1
72134 +:10094000ACE000248CA30004ACE3002803E0000822
72135 +:10095000ACC401B83C039000346200010082202541
72136 +:100960003C038000AC6400208C65002004A0FFFEE6
72137 +:100970000000000003E00008000000003C028000CE
72138 +:10098000344300010083202503E00008AC4400202C
72139 +:1009900027BDFFE03C098000AFBF0018AFB10014D5
72140 +:1009A000AFB00010352801408D10000091040009FF
72141 +:1009B0009107000891050008308400FF30E600FF31
72142 +:1009C00000061A002C820081008330251040002A86
72143 +:1009D00030A50080000460803C0D080125AD92B078
72144 +:1009E000018D58218D6A00000140000800000000C0
72145 +:1009F0003C038000346201409445000A14A0001EAC
72146 +:100A00008F91FCC09227000530E6000414C0001A44
72147 +:100A1000000000000E00164E02002021922A000560
72148 +:100A200002002021354900040E001658A2290005B5
72149 +:100A30009228000531040004148000020000000028
72150 +:100A40000000000D922D0000240B002031AC00FFAF
72151 +:100A5000158B00093C0580008CAE01B805C0FFFE77
72152 +:100A600034B10180AE3000003C0F100024100005AE
72153 +:100A7000A230000BACAF01B80000000D8FBF001812
72154 +:100A80008FB100148FB0001003E0000827BD0020D4
72155 +:100A90000200202100C028218FBF00188FB1001450
72156 +:100AA0008FB00010240600010A00161D27BD00208B
72157 +:100AB0000000000D0200202100C028218FBF001877
72158 +:100AC0008FB100148FB00010000030210A00161DF5
72159 +:100AD00027BD002014A0FFE8000000000200202134
72160 +:100AE0008FBF00188FB100148FB0001000C02821F4
72161 +:100AF0000A00163B27BD00203C0780008CEE01B8A1
72162 +:100B000005C0FFFE34F00180241F0002A21F000B6D
72163 +:100B100034F80140A60600089719000A3C0F10009F
72164 +:100B2000A61900108F110004A6110012ACEF01B835
72165 +:100B30000A0016998FBF001827BDFFE8AFBF00104D
72166 +:100B40000E000FD4000000003C0280008FBF001098
72167 +:100B500000002021AC4001800A00108F27BD001842
72168 +:100B60003084FFFF30A5FFFF108000070000182130
72169 +:100B7000308200011040000200042042006518216C
72170 +:100B80001480FFFB0005284003E0000800601021EE
72171 +:100B900010C00007000000008CA2000024C6FFFF68
72172 +:100BA00024A50004AC82000014C0FFFB24840004D0
72173 +:100BB00003E000080000000010A0000824A3FFFFCD
72174 +:100BC000AC86000000000000000000002402FFFFCF
72175 +:100BD0002463FFFF1462FFFA2484000403E000088A
72176 +:100BE000000000003C03800027BDFFF83462018054
72177 +:100BF000AFA20000308C00FF30AD00FF30CE00FF10
72178 +:100C00003C0B80008D6401B80480FFFE00000000F2
72179 +:100C10008FA900008D6801288FAA00008FA700000F
72180 +:100C20008FA400002405000124020002A085000A10
72181 +:100C30008FA30000359940003C051000A062000B16
72182 +:100C40008FB800008FAC00008FA600008FAF0000AF
72183 +:100C500027BD0008AD280000AD400004AD80002491
72184 +:100C6000ACC00028A4F90008A70D0010A5EE0012E2
72185 +:100C700003E00008AD6501B83C06800827BDFFE829
72186 +:100C800034C50080AFBF001090A7000924020012F5
72187 +:100C900030E300FF1062000B008030218CA8005070
72188 +:100CA00000882023048000088FBF00108CAA003425
72189 +:100CB000240400390000282100CA4823052000052B
72190 +:100CC000240600128FBF00102402000103E0000878
72191 +:100CD00027BD00180E0016F2000000008FBF0010A4
72192 +:100CE0002402000103E0000827BD001827BDFFC84B
72193 +:100CF000AFB20030AFB00028AFBF0034AFB1002CAE
72194 +:100D000000A0802190A5000D30A6001010C000109A
72195 +:100D1000008090213C0280088C4400048E0300086F
72196 +:100D20001064000C30A7000530A6000510C0009329
72197 +:100D3000240400018FBF00348FB200308FB1002C2B
72198 +:100D40008FB000280080102103E0000827BD003884
72199 +:100D500030A7000510E0000F30AB001210C00006F5
72200 +:100D6000240400013C0980088E0800088D25000439
72201 +:100D70005105009C240400388FBF00348FB200302E
72202 +:100D80008FB1002C8FB000280080102103E00008F4
72203 +:100D900027BD0038240A0012156AFFE6240400016A
72204 +:100DA0000200202127A500100E000CB6AFA00010F5
72205 +:100DB0001440007C3C19800837240080909800087B
72206 +:100DC000331100081220000A8FA7001030FF010025
72207 +:100DD00013E000A48FA300148C8600580066102333
72208 +:100DE000044000043C0A8008AC8300588FA7001020
72209 +:100DF0003C0A800835480080910900083124000829
72210 +:100E00001480000224080003000040213C1F8008D9
72211 +:100E100093F1001193F9001237E600808CCC005456
72212 +:100E2000333800FF03087821322D00FF000F708057
72213 +:100E300001AE282100AC582B1160006F00000000AB
72214 +:100E400094CA005C8CC900543144FFFF0125102373
72215 +:100E50000082182B14600068000000008CCB005446
72216 +:100E60000165182330EC00041180006C000830800C
72217 +:100E70008FA8001C0068102B1040006230ED0004A9
72218 +:100E8000006610232C46008010C00002004088211C
72219 +:100E9000241100800E00164E024020213C0D8008D7
72220 +:100EA00035A6008024070001ACC7000C90C80008DC
72221 +:100EB0000011484035A70100310C007FA0CC00088C
72222 +:100EC0008E05000424AB0001ACCB0030A4D1005C43
72223 +:100ED0008CCA003C9602000E01422021ACC40020C6
72224 +:100EE0008CC3003C0069F821ACDF001C8E190004A3
72225 +:100EF000ACF900008E180008ACF800048FB10010A7
72226 +:100F0000322F000855E0004793A60020A0C0004EF5
72227 +:100F100090D8004E2411FFDFA0F8000890CF000801
72228 +:100F200001F17024A0CE00088E0500083C0B80085B
72229 +:100F300035690080AD2500388D6A00148D2200309F
72230 +:100F40002419005001422021AD24003491230000D7
72231 +:100F5000307F00FF13F90036264F01000E001658AF
72232 +:100F60000240202124040038000028210E0016F23F
72233 +:100F70002406000A0A001757240400010E000D2859
72234 +:100F8000000020218FBF00348FB200308FB1002CC1
72235 +:100F90008FB00028004020210080102103E00008CD
72236 +:100FA00027BD00388E0E00083C0F800835F0008009
72237 +:100FB000AE0E005402402021AE0000300E00164E4E
72238 +:100FC00000000000920D00250240202135AC0020D9
72239 +:100FD0000E001658A20C00250E000CAC0240202179
72240 +:100FE000240400382405008D0E0016F22406001299
72241 +:100FF0000A0017572404000194C5005C0A001792E8
72242 +:1010000030A3FFFF2407021811A0FF9E00E6102363
72243 +:101010008FAE001C0A00179A01C610230A0017970A
72244 +:101020002C620218A0E600080A0017C48E0500080A
72245 +:101030002406FF8001E6C0243C118000AE38002861
72246 +:101040008E0D000831E7007F3C0E800C00EE602121
72247 +:10105000AD8D00E08E080008AF8C00380A0017D074
72248 +:10106000AD8800E4AC800058908500082403FFF7A9
72249 +:1010700000A33824A08700080A0017758FA7001066
72250 +:101080003C05080024A560A83C04080024846FF4F3
72251 +:101090003C020800244260B0240300063C01080121
72252 +:1010A000AC2596C03C010801AC2496C43C01080163
72253 +:1010B000AC2296C83C010801A02396CC03E00008AE
72254 +:1010C0000000000003E00008240200013C02800050
72255 +:1010D000308800FF344701803C0680008CC301B893
72256 +:1010E0000460FFFE000000008CC501282418FF806A
72257 +:1010F0003C0D800A24AF010001F8702431EC007F20
72258 +:10110000ACCE0024018D2021ACE50000948B00EAD8
72259 +:101110003509600024080002316AFFFFACEA0004D0
72260 +:1011200024020001A4E90008A0E8000BACE00024C0
72261 +:101130003C071000ACC701B8AF84003803E00008DA
72262 +:10114000AF85006C938800488F8900608F820038DB
72263 +:1011500030C600FF0109382330E900FF01221821C1
72264 +:1011600030A500FF2468008810C000020124382147
72265 +:101170000080382130E400031480000330AA00030B
72266 +:101180001140000D312B000310A0000900001021B8
72267 +:1011900090ED0000244E000131C200FF0045602B9D
72268 +:1011A000A10D000024E700011580FFF925080001CA
72269 +:1011B00003E00008000000001560FFF300000000DD
72270 +:1011C00010A0FFFB000010218CF80000245900043F
72271 +:1011D000332200FF0045782BAD18000024E70004FF
72272 +:1011E00015E0FFF92508000403E0000800000000F6
72273 +:1011F00093850048938800588F8700600004320070
72274 +:101200003103007F00E5102B30C47F001040000F39
72275 +:10121000006428258F8400383C0980008C8A00EC0B
72276 +:10122000AD2A00A43C03800000A35825AC6B00A0AD
72277 +:101230008C6C00A00580FFFE000000008C6D00ACEF
72278 +:10124000AC8D00EC03E000088C6200A80A00188254
72279 +:101250008F840038938800593C0280000080502120
72280 +:10126000310300FEA383005930ABFFFF30CC00FFF9
72281 +:1012700030E7FFFF344801803C0980008D2401B82D
72282 +:101280000480FFFE8F8D006C24180016AD0D000049
72283 +:101290008D2201248F8D0038AD0200048D5900206D
72284 +:1012A000A5070008240201C4A119000AA118000B17
72285 +:1012B000952F01208D4E00088D4700049783005C18
72286 +:1012C0008D59002401CF302100C7282100A32023FD
72287 +:1012D0002418FFFFA504000CA50B000EA5020010AA
72288 +:1012E000A50C0012AD190018AD18002495AF00E848
72289 +:1012F0003C0B10002407FFF731EEFFFFAD0E002876
72290 +:101300008DAC0084AD0C002CAD2B01B88D460020B7
72291 +:1013100000C7282403E00008AD4500208F8800386E
72292 +:101320000080582130E7FFFF910900D63C02800081
72293 +:1013300030A5FFFF312400FF00041A00006750258C
72294 +:1013400030C600FF344701803C0980008D2C01B875
72295 +:101350000580FFFE8F82006C240F0017ACE20000B6
72296 +:101360008D390124ACF900048D780020A4EA00082E
72297 +:10137000241901C4A0F8000AA0EF000B9523012056
72298 +:101380008D6E00088D6D00049784005C01C35021B0
72299 +:10139000014D602101841023A4E2000CA4E5000E9D
72300 +:1013A000A4F90010A4E60012ACE000148D7800242B
72301 +:1013B000240DFFFFACF800188D0F007CACEF001C73
72302 +:1013C0008D0E00783C0F1000ACEE0020ACED002438
72303 +:1013D000950A00BE240DFFF73146FFFFACE600285A
72304 +:1013E000950C00809504008231837FFF0003CA00C2
72305 +:1013F0003082FFFF0322C021ACF8002CAD2F01B8D2
72306 +:10140000950E00828D6A002000AE3021014D282407
72307 +:10141000A506008203E00008AD6500203C028000C4
72308 +:10142000344501803C0480008C8301B80460FFFED9
72309 +:101430008F8A0044240600199549001C3128FFFFBB
72310 +:10144000000839C0ACA70000A0A6000B3C051000A6
72311 +:1014500003E00008AC8501B88F87004C0080402174
72312 +:1014600030C400FF3C0680008CC201B80440FFFE7F
72313 +:101470008F89006C9383006834996000ACA90000E8
72314 +:10148000A0A300058CE20010240F00022403FFF744
72315 +:10149000A4A20006A4B900088D180020A0B8000A74
72316 +:1014A000A0AF000B8CEE0000ACAE00108CED000481
72317 +:1014B000ACAD00148CEC001CACAC00248CEB002018
72318 +:1014C000ACAB00288CEA002C3C071000ACAA002C26
72319 +:1014D0008D090024ACA90018ACC701B88D05002007
72320 +:1014E00000A3202403E00008AD0400208F8600380C
72321 +:1014F00027BDFFE0AFB10014AFBF0018AFB00010C0
72322 +:1015000090C300D430A500FF3062002010400008D6
72323 +:10151000008088218CCB00D02409FFDF256A0001E0
72324 +:10152000ACCA00D090C800D401093824A0C700D4A8
72325 +:1015300014A000403C0C80008F840038908700D4B9
72326 +:101540002418FFBF2406FFEF30E3007FA08300D400
72327 +:10155000979F005C8F8200608F8D003803E2C82364
72328 +:10156000A799005CA5A000BC91AF00D401F870243D
72329 +:10157000A1AE00D48F8C0038A18000D78F8A0038AC
72330 +:10158000A5400082AD4000EC914500D400A658244F
72331 +:10159000A14B00D48F9000348F8400609786005C4C
72332 +:1015A0000204282110C0000FAF850034A38000582A
72333 +:1015B0003C0780008E2C000894ED01208E2B000447
72334 +:1015C000018D5021014B8021020620233086FFFF30
72335 +:1015D00030C8000F3909000131310001162000091F
72336 +:1015E000A3880058938600488FBF00188FB100145D
72337 +:1015F0008FB0001027BD0020AF85006403E0000815
72338 +:10160000AF86006000C870238FBF00189386004823
72339 +:101610008FB100148FB0001034EF0C00010F28219F
72340 +:1016200027BD0020ACEE0084AF85006403E0000815
72341 +:10163000AF86006035900180020028210E00190F4E
72342 +:10164000240600828F840038908600D430C5004084
72343 +:1016500050A0FFBAA38000688F85004C3C06800034
72344 +:101660008CCD01B805A0FFFE8F89006C2408608234
72345 +:1016700024070002AE090000A6080008A207000B1C
72346 +:101680008CA300083C0E1000AE0300108CA2000CCE
72347 +:10169000AE0200148CBF0014AE1F00188CB90018E5
72348 +:1016A000AE1900248CB80024AE1800288CAF002896
72349 +:1016B000AE0F002CACCE01B80A001948A380006818
72350 +:1016C0008F8A003827BDFFE0AFB10014AFB0001023
72351 +:1016D0008F880060AFBF00189389003C954200BC22
72352 +:1016E00030D100FF0109182B0080802130AC00FFB1
72353 +:1016F0003047FFFF0000582114600003310600FF4F
72354 +:1017000001203021010958239783005C0068202BB9
72355 +:101710001480002700000000106800562419000102
72356 +:101720001199006334E708803165FFFF0E0018C08F
72357 +:10173000020020218F83006C3C07800034E601808A
72358 +:101740003C0580008CAB01B80560FFFE240A001840
72359 +:101750008F840038ACC30000A0CA000B948900BE7F
72360 +:101760003C081000A4C90010ACC00030ACA801B8FF
72361 +:101770009482008024430001A4830080949F008011
72362 +:101780003C0608008CC6318833EC7FFF1186005E72
72363 +:101790000000000002002021022028218FBF001835
72364 +:1017A0008FB100148FB000100A00193427BD00203B
72365 +:1017B000914400D42403FF8000838825A15100D4E4
72366 +:1017C0009784005C3088FFFF51000023938C003C1D
72367 +:1017D0008F8500382402EFFF008B782394AE00BC85
72368 +:1017E0000168502B31E900FF01C26824A4AD00BCA0
72369 +:1017F00051400039010058213C1F800037E60100AC
72370 +:101800008CD800043C190001031940245500000144
72371 +:1018100034E740008E0A00202403FFFB241100015E
72372 +:1018200001432024AE0400201191002D34E78000F4
72373 +:1018300002002021012030210E0018C03165FFFF79
72374 +:101840009787005C8F890060A780005C0127802358
72375 +:10185000AF900060938C003C8F8B00388FBF0018D6
72376 +:101860008FB100148FB0001027BD002003E00008E6
72377 +:10187000A16C00D73C0D800035AA01008D48000402
72378 +:101880003C0900010109282454A0000134E740006C
72379 +:101890008E0F00202418FFFB34E7800001F870242D
72380 +:1018A00024190001AE0E00201599FF9F34E708802F
72381 +:1018B000020020210E00188E3165FFFF020020215A
72382 +:1018C000022028218FBF00188FB100148FB00010A4
72383 +:1018D0000A00193427BD00200A0019F7000048212A
72384 +:1018E00002002021012030210E00188E3165FFFFFB
72385 +:1018F0009787005C8F890060A780005C01278023A8
72386 +:101900000A001A0EAF900060948C0080241F8000A3
72387 +:10191000019F3024A4860080908B0080908F0080EF
72388 +:10192000316700FF0007C9C20019C027001871C045
72389 +:1019300031ED007F01AE2825A08500800A0019DF67
72390 +:1019400002002021938500682403000127BDFFE8E1
72391 +:1019500000A330042CA20020AFB00010AFBF0014D1
72392 +:1019600000C01821104000132410FFFE3C0708009F
72393 +:101970008CE7319000E610243C088000350501809A
72394 +:1019800014400005240600848F890038240A0004CE
72395 +:101990002410FFFFA12A00FC0E00190F0000000018
72396 +:1019A000020010218FBF00148FB0001003E0000868
72397 +:1019B00027BD00183C0608008CC631940A001A574F
72398 +:1019C00000C310248F87004427BDFFE0AFB200188A
72399 +:1019D000AFB10014AFB00010AFBF001C30D000FF9B
72400 +:1019E00090E6000D00A088210080902130C5007F86
72401 +:1019F000A0E5000D8F8500388E2300188CA200D042
72402 +:101A00001062002E240A000E0E001A4AA38A0068F3
72403 +:101A10002409FFFF104900222404FFFF5200002088
72404 +:101A2000000020218E2600003C0C001000CC582421
72405 +:101A3000156000393C0E000800CE682455A0003F18
72406 +:101A4000024020213C18000200D880241200001F10
72407 +:101A50003C0A00048F8700448CE200148CE30010E1
72408 +:101A60008CE500140043F82303E5C82B1320000580
72409 +:101A7000024020218E24002C8CF1001010910031A6
72410 +:101A80000240202124020012A38200680E001A4A9C
72411 +:101A90002412FFFF105200022404FFFF0000202147
72412 +:101AA0008FBF001C8FB200188FB100148FB00010D0
72413 +:101AB0000080102103E0000827BD002090A800D47A
72414 +:101AC000350400200A001A80A0A400D400CA4824CB
72415 +:101AD0001520000B8F8B00448F8D00448DAC0010BF
72416 +:101AE0001580000B024020218E2E002C51C0FFECEF
72417 +:101AF00000002021024020210A001A9B2402001726
72418 +:101B00008D66001050C0FFE6000020210240202119
72419 +:101B10000A001A9B24020011024020212402001511
72420 +:101B20000E001A4AA3820068240FFFFF104FFFDC4B
72421 +:101B30002404FFFF0A001A8A8E2600000A001AC138
72422 +:101B4000240200143C08000400C8382450E0FFD4EC
72423 +:101B500000002021024020210A001A9B24020013C9
72424 +:101B60008F85003827BDFFD8AFB3001CAFB2001877
72425 +:101B7000AFB10014AFB00010AFBF002090A700D4E9
72426 +:101B80008F90004C2412FFFF34E2004092060000C8
72427 +:101B9000A0A200D48E0300100080982110720006CD
72428 +:101BA00030D1003F2408000D0E001A4AA3880068B7
72429 +:101BB000105200252404FFFF8F8A00388E09001878
72430 +:101BC0008D4400D01124000702602021240C000E57
72431 +:101BD0000E001A4AA38C0068240BFFFF104B001A5A
72432 +:101BE0002404FFFF24040020122400048F8D0038F9
72433 +:101BF00091AF00D435EE0020A1AE00D48F85005403
72434 +:101C000010A00019000000001224004A8F9800382C
72435 +:101C10008F92FCC0971000809651000A5230004805
72436 +:101C20008F9300403C1F08008FFF318C03E5C82BC9
72437 +:101C30001720001E02602021000028210E0019A993
72438 +:101C400024060001000020218FBF00208FB3001C5C
72439 +:101C50008FB200188FB100148FB0001000801021D7
72440 +:101C600003E0000827BD00285224002A8E05001436
72441 +:101C70008F840038948A008025490001A48900805F
72442 +:101C8000948800803C0208008C42318831077FFF35
72443 +:101C900010E2000E00000000026020210E00193446
72444 +:101CA000240500010A001B0B000020212402002D46
72445 +:101CB0000E001A4AA38200682403FFFF1443FFE1C9
72446 +:101CC0002404FFFF0A001B0C8FBF002094990080A2
72447 +:101CD000241F800024050001033FC024A498008035
72448 +:101CE00090920080908E0080325100FF001181C2DE
72449 +:101CF00000107827000F69C031CC007F018D582576
72450 +:101D0000A08B00800E001934026020210A001B0BFA
72451 +:101D1000000020212406FFFF54A6FFD68F84003840
72452 +:101D2000026020210E001934240500010A001B0B5B
72453 +:101D300000002021026020210A001B252402000A45
72454 +:101D40002404FFFD0A001B0BAF9300608F8800384E
72455 +:101D500027BDFFE8AFB00010AFBF0014910A00D458
72456 +:101D60008F87004C00808021354900408CE60010B0
72457 +:101D7000A10900D43C0208008C4231B030C53FFFBD
72458 +:101D800000A2182B106000078F850050240DFF80E3
72459 +:101D900090AE000D01AE6024318B00FF156000088D
72460 +:101DA0000006C382020020212403000D8FBF00140F
72461 +:101DB0008FB0001027BD00180A001A4AA3830068DC
72462 +:101DC00033060003240F000254CFFFF70200202146
72463 +:101DD00094A2001C8F85003824190023A4A200E8D7
72464 +:101DE0008CE8000000081E02307F003F13F9003528
72465 +:101DF0003C0A00838CE800188CA600D0110600086D
72466 +:101E0000000000002405000E0E001A4AA385006899
72467 +:101E10002407FFFF104700182404FFFF8F850038B8
72468 +:101E200090A900D435240020A0A400D48F8C0044B5
72469 +:101E3000918E000D31CD007FA18D000D8F83005458
72470 +:101E40001060001C020020218F8400508C9800102C
72471 +:101E50000303782B11E0000D241900180200202143
72472 +:101E6000A39900680E001A4A2410FFFF10500002C8
72473 +:101E70002404FFFF000020218FBF00148FB000104A
72474 +:101E80000080102103E0000827BD00188C86001098
72475 +:101E90008F9F00440200202100C31023AFE20010F6
72476 +:101EA000240500010E0019A9240600010A001B9751
72477 +:101EB000000020210E001934240500010A001B97A0
72478 +:101EC00000002021010A5824156AFFD98F8C004494
72479 +:101ED000A0A600FC0A001B84A386005A30A500FFC0
72480 +:101EE0002406000124A9000100C9102B1040000C99
72481 +:101EF00000004021240A000100A61823308B0001B5
72482 +:101F000024C60001006A3804000420421160000267
72483 +:101F100000C9182B010740251460FFF800A61823FC
72484 +:101F200003E000080100102127BDFFD8AFB0001862
72485 +:101F30008F90004CAFB1001CAFBF00202403FFFF07
72486 +:101F40002411002FAFA30010920600002405000802
72487 +:101F500026100001006620260E001BB0308400FF12
72488 +:101F600000021E003C021EDC34466F410A001BD8F2
72489 +:101F70000000102110A00009008018212445000154
72490 +:101F800030A2FFFF2C4500080461FFFA0003204047
72491 +:101F90000086202614A0FFF9008018210E001BB037
72492 +:101FA000240500208FA300102629FFFF313100FFF8
72493 +:101FB00000034202240700FF1627FFE20102182651
72494 +:101FC00000035027AFAA0014AFAA00100000302170
72495 +:101FD00027A8001027A7001400E6782391ED00033E
72496 +:101FE00024CE000100C8602131C600FF2CCB0004C4
72497 +:101FF0001560FFF9A18D00008FA200108FBF002097
72498 +:102000008FB1001C8FB0001803E0000827BD002826
72499 +:1020100027BDFFD0AFB3001CAFB00010AFBF00288A
72500 +:10202000AFB50024AFB40020AFB20018AFB10014B8
72501 +:102030003C0C80008D880128240FFF803C06800A1C
72502 +:1020400025100100250B0080020F68243205007F57
72503 +:10205000016F7024AD8E009000A62821AD8D002464
72504 +:1020600090A600FC3169007F3C0A8004012A1821F7
72505 +:10207000A386005A9067007C00809821AF830030CF
72506 +:1020800030E20002AF88006CAF85003800A0182154
72507 +:10209000144000022404003424040030A3840048C7
72508 +:1020A0008C7200DC30D100FF24040004AF92006089
72509 +:1020B00012240004A38000688E7400041680001EA1
72510 +:1020C0003C0880009386005930C7000110E0000FE3
72511 +:1020D0008F9300608CB000848CA800842404FF805F
72512 +:1020E000020410240002F940310A007F03EA482567
72513 +:1020F0003C0C2000012C902530CD00FE3C038000DC
72514 +:10210000AC720830A38D00598F9300608FBF0028F8
72515 +:102110008FB50024ACB300DC8FB400208FB3001C5B
72516 +:102120008FB200188FB100148FB00010240200018C
72517 +:1021300003E0000827BD00308E7F000895020120D3
72518 +:102140008E67001003E2C8213326FFFF30D8000F4E
72519 +:1021500033150001AF87003416A00058A39800582B
72520 +:1021600035090C000309382100D81823AD03008479
72521 +:10217000AF8700648E6A00043148FFFF1100007EC3
72522 +:10218000A78A005C90AC00D42407FF8000EC3024C8
72523 +:1021900030CB00FF1560004B9786005C938E005A91
72524 +:1021A000240D000230D5FFFF11CD02A20000A021B6
72525 +:1021B0008F85006002A5802B160000BC9388004824
72526 +:1021C0003C11800096240120310400FF1485008812
72527 +:1021D0008F8400648F9800343312000356400085CA
72528 +:1021E00030A500FF8F900064310C00FF24060034FE
72529 +:1021F00011860095AF90004C9204000414800118E1
72530 +:102200008F8E0038A380003C8E0D00048DC800D84E
72531 +:102210003C0600FF34CCFFFF01AC30240106182B34
72532 +:1022200014600120AF8600548F8700609798005C8F
72533 +:10223000AF8700400307402310C000C7A788005C99
72534 +:102240008F91003030C3000300035823922A007C92
72535 +:102250003171000302261021000A20823092000111
72536 +:102260000012488000492821311FFFFF03E5C82BD9
72537 +:10227000132001208F8800388F8500348F880064F8
72538 +:102280001105025A3C0E3F018E0600003C0C250051
72539 +:1022900000CE682411AC01638F84004C30E500FF50
72540 +:1022A0000E00184A000030218F8800388F870060A8
72541 +:1022B0008F8500340A001DB78F8600540A001C5613
72542 +:1022C000AF87006490A400D400E48024320200FFB1
72543 +:1022D000104000169386005990A6008890AE00D753
72544 +:1022E00024A8008830D4003F2686FFE02CD10020AF
72545 +:1022F000A38E003C1220000CAF88004C240B000180
72546 +:1023000000CB20043095001916A0012B3C0680005C
72547 +:1023100034CF0002008FC0241700022E3099002015
72548 +:1023200017200234000000009386005930CB0001D2
72549 +:102330001160000F9788005C8CBF00848CA900841A
72550 +:10234000240AFF8003EA6024000C19403132007F28
72551 +:10235000007238253C0D200000EDC82530D800FE65
72552 +:102360003C0F8000ADF90830A39800599788005CB5
72553 +:102370001500FF84000000008E630020306200041E
72554 +:102380001040FF51938600592404FFFB0064802411
72555 +:102390003C038000AE700020346601808C7301B86D
72556 +:1023A0000660FFFE8F98006C347501003C1400013C
72557 +:1023B000ACD800008C6B012424076085ACCB0004F2
72558 +:1023C0008EAE000401D488245220000124076083CB
72559 +:1023D00024190002A4C700083C0F1000A0D9000B6C
72560 +:1023E0003C068000ACCF01B80A001C2B9386005934
72561 +:1023F00030A500FF0E00184A240600018F88006CEB
72562 +:102400003C05800034A90900250201889388004812
72563 +:10241000304A0007304B00783C0340802407FF809F
72564 +:102420000163C825014980210047F824310C00FFD1
72565 +:1024300024060034ACBF0800AF90004CACB90810C3
72566 +:102440005586FF6E920400048F8400388E11003090
72567 +:10245000908E00D431CD001015A000108F83006045
72568 +:102460002C6F000515E000E400000000909800D4F7
72569 +:102470002465FFFC331200101640000830A400FF52
72570 +:102480008F9F00648F99003413F90004388700018E
72571 +:1024900030E20001144001C8000000000E001BC320
72572 +:1024A000000000000A001DF8000000008F84006496
72573 +:1024B00030C500FF0E00184A24060001939800481A
72574 +:1024C000240B0034130B00A08F8500388F8600602A
72575 +:1024D0009783005C306EFFFF00CE8823AF910060D1
72576 +:1024E000A780005C1280FF90028018212414FFFD59
72577 +:1024F0005474FFA28E6300208E6A00042403FFBF81
72578 +:102500002408FFEF0155F823AE7F000490AC00D4FF
72579 +:102510003189007FA0A900D48E7200208F8F0038EF
72580 +:10252000A780005C364D0002AE6D0020A5E000BC27
72581 +:1025300091E500D400A3C824A1F900D48F950038F8
72582 +:10254000AEA000EC92B800D403085824A2AB00D48B
72583 +:102550000A001CD78F8500388F910034AF8000604F
72584 +:1025600002275821AF8B0034000020212403FFFFF5
72585 +:10257000108301B48F8500388E0C00103C0D0800CC
72586 +:102580008DAD31B09208000031843FFF008D802B6B
72587 +:1025900012000023310D003F3C1908008F3931A88B
72588 +:1025A0008F9F006C000479802408FF80033F202166
72589 +:1025B000008FC821938500590328F8243C06008029
72590 +:1025C0003C0F800034D80001001F91403331007F60
72591 +:1025D0008F8600380251502535EE0940332B0078A4
72592 +:1025E000333000073C0310003C02800C017890253A
72593 +:1025F000020E48210143C0250222382134AE0001D9
72594 +:10260000ADFF0804AF890050ADF20814AF87004455
72595 +:10261000ADFF0028ACD90084ADF80830A38E005976
72596 +:102620009383005A24070003106700272407000142
72597 +:102630001467FFAC8F8500382411002311B1008589
72598 +:1026400000000000240E000B026020210E001A4A38
72599 +:10265000A38E00680040A0210A001D328F8500383B
72600 +:1026600002602021240B000C0E001A4AA38B006884
72601 +:10267000240AFFFF104AFFBD2404FFFF8F8E00389D
72602 +:10268000A380003C8E0D00048DC800D83C0600FFDE
72603 +:1026900034CCFFFF01AC30240106182B1060FEE2A1
72604 +:1026A000AF86005402602021241200190E001A4A3D
72605 +:1026B000A3920068240FFFFF104FFFAC2404FFFF1C
72606 +:1026C0000A001C838F86005425A3FFE02C74002091
72607 +:1026D0001280FFDD240E000B000328803C1108014E
72608 +:1026E000263194B400B148218D2D000001A00008CE
72609 +:1026F000000000008F85003400A710219385003C66
72610 +:10270000AF82003402251821A383003C951F00BC32
72611 +:102710000226282137F91000A51900BC5240FF926B
72612 +:10272000AF850060246A0004A38A003C950900BCC0
72613 +:1027300024A40004AF84006035322000A51200BC40
72614 +:102740000A001D54000020218F8600602CC800055F
72615 +:102750001500FF609783005C3065FFFF00C5C8234C
72616 +:102760002F2F000511E00003306400FF24CDFFFC93
72617 +:1027700031A400FF8F8900648F920034113200046D
72618 +:10278000389F000133EC0001158001380000000083
72619 +:102790008F840038908700D434E60010A08600D4DF
72620 +:1027A0008F8500388F8600609783005CACA000ECBA
72621 +:1027B0000A001D2F306EFFFF8CB500848CB400849E
72622 +:1027C0003C04100002A7302400068940328E007FAE
72623 +:1027D000022E8025020410253C08800024050001FB
72624 +:1027E00002602021240600010E0019A9AD02083064
72625 +:1027F0000A001CC38F8500388C8200EC1222FE7EFA
72626 +:102800000260202124090005A38900680E001A4AED
72627 +:102810002411FFFF1451FE782404FFFF0A001D5508
72628 +:102820002403FFFF8F8F004C8F8800388DF8000045
72629 +:10283000AD1800888DE70010AD0700988F87006005
72630 +:102840000A001DB78F8600542406FFFF118600057D
72631 +:10285000000000000E001B4C026020210A001D8FAA
72632 +:102860000040A0210E001AD1026020210A001D8F15
72633 +:102870000040A0218F90004C3C0208008C4231B0F7
72634 +:102880008E110010322C3FFF0182282B10A0000C6B
72635 +:10289000240BFF808F85005090A3000D01637024EE
72636 +:1028A00031CA00FF1140000702602021001143825D
72637 +:1028B000310600032418000110D8010600000000B2
72638 +:1028C000026020212403000D0E001A4AA383006831
72639 +:1028D000004020218F8500380A001D320080A02191
72640 +:1028E0008F90004C3C0A08008D4A31B08F85005013
72641 +:1028F0008E0400100000A0218CB1001430823FFF34
72642 +:10290000004A602B8CB200205180FFEE0260202133
72643 +:1029100090B8000D240BFF800178702431C300FFB4
72644 +:102920005060FFE80260202100044382310600036A
72645 +:1029300014C0FFE40260202194BF001C8F9900386E
72646 +:102940008E060028A73F00E88CAF0010022F20233E
72647 +:1029500014C4013A026020218F83005400C368210F
72648 +:10296000022D382B14E00136240200188F8A00440F
72649 +:102970008F820030024390218D4B00100163702341
72650 +:10298000AD4E0010AD5200208C4C00740192282BEB
72651 +:1029900014A0015F026020218F8400508E08002463
72652 +:1029A0008C86002411060007026020212419001CD7
72653 +:1029B0000E001A4AA3990068240FFFFF104FFFC5AD
72654 +:1029C0002404FFFF8F8400448C87002424FF00012F
72655 +:1029D000AC9F00241251012F8F8D00308DB10074F7
72656 +:1029E0001232012C3C0B00808E0E000001CB5024D3
72657 +:1029F00015400075000000008E0300142411FFFF35
72658 +:102A0000107100073C0808003C0608008CC6319095
72659 +:102A100000C8C0241300015202602021A380006876
72660 +:102A20008E0300003C19000100792024108000135F
72661 +:102A30003C1F0080007FA02416800009020028218E
72662 +:102A4000026020212411001A0E001A4AA391006886
72663 +:102A50002407FFFF1047FF9F2404FFFF02002821E7
72664 +:102A6000026020210E001A6A240600012410FFFFD4
72665 +:102A70001050FF982404FFFF241400018F8D0044A0
72666 +:102A8000026020210280302195A900342405000134
72667 +:102A9000253200010E0019A9A5B200340000202142
72668 +:102AA0008F8500380A001D320080A0218F90004CD5
72669 +:102AB0003C1408008E9431B08E07001030E53FFFC3
72670 +:102AC00000B4C82B132000618F8600502412FF80B1
72671 +:102AD00090C9000D0249682431A400FF5080005CB9
72672 +:102AE000026020218F8C00541180000700078B8228
72673 +:102AF0008F8500388F82FCC094BF0080944A000A02
72674 +:102B0000515F00F78F8600403227000314E0006415
72675 +:102B100000000000920E000211C000D8000000006A
72676 +:102B20008E0B0024156000D902602021920400035E
72677 +:102B300024190002308500FF14B90005308900FF18
72678 +:102B40008F940054128000EA240D002C308900FF7D
72679 +:102B5000392C00102D8400012D3200010244302553
72680 +:102B6000020028210E001A6A026020212410FFFFB3
72681 +:102B7000105000BF8F8500388F830054106000D341
72682 +:102B8000240500013C0A08008D4A318C0143F82BD2
72683 +:102B900017E000B22402002D02602021000028214D
72684 +:102BA0000E0019A9240600018F85003800001821A5
72685 +:102BB0000A001D320060A0210E0018750000000000
72686 +:102BC0000A001DF800000000AC8000200A001E78FA
72687 +:102BD0008E03001400002821026020210E0019A994
72688 +:102BE000240600010A001CC38F8500380A001DB7A7
72689 +:102BF0008F8800388CAA00848CAC00843C031000C1
72690 +:102C00000147F824001F91403189007F024968255F
72691 +:102C100001A32825ACC50830910700012405000157
72692 +:102C2000026020210E0019A930E600010A001CC331
72693 +:102C30008F850038938F00482403FFFD0A001D3460
72694 +:102C4000AF8F00600A001D342403FFFF02602021C3
72695 +:102C50002410000D0E001A4AA390006800401821AD
72696 +:102C60008F8500380A001D320060A0210E00187503
72697 +:102C7000000000009783005C8F86006000402021E8
72698 +:102C80003070FFFF00D010232C4A00051140FE11C8
72699 +:102C90008F850038ACA400EC0A001D2F306EFFFFBA
72700 +:102CA00090CF000D31E300085460FFA192040003AF
72701 +:102CB00002602021240200100E001A4AA38200683C
72702 +:102CC0002403FFFF5443FF9A920400030A001F12DB
72703 +:102CD0008F85003890A4000D308F000811E000951A
72704 +:102CE0008F990054572000A6026020218E1F000CEF
72705 +:102CF0008CB4002057F40005026020218E0D0008DE
72706 +:102D00008CA7002411A7003A026020212402002091
72707 +:102D1000A38200680E001A4A2412FFFF1052FEED33
72708 +:102D20002404FFFF8F9F00442402FFF73C14800E11
72709 +:102D300093EA000D2419FF803C03800001423824EF
72710 +:102D4000A3E7000D8F9F00303C0908008D2931ACAE
72711 +:102D50008F8C006C97F200788F870044012C302113
72712 +:102D6000324D7FFF000D204000C4782131E5007F07
72713 +:102D700000B4C02101F94024AC68002CA711000068
72714 +:102D80008CEB0028256E0001ACEE00288CEA002CAC
72715 +:102D90008E02002C01426021ACEC002C8E09002C2C
72716 +:102DA000ACE900308E120014ACF2003494ED003A1D
72717 +:102DB00025A40001A4E4003A97E600783C1108003D
72718 +:102DC0008E3131B024C3000130707FFF1211005CDE
72719 +:102DD000006030218F8F0030026020212405000127
72720 +:102DE0000E001934A5E600780A001EA1000020217B
72721 +:102DF0008E0900142412FFFF1132006B8F8A0038F5
72722 +:102E00008E0200188D4C00D0144C00650260202109
72723 +:102E10008E0B00248CAE0028116E005B2402002172
72724 +:102E20000E001A4AA38200681452FFBE2404FFFF5A
72725 +:102E30008F8500380A001D320080A0212402001F67
72726 +:102E40000E001A4AA38200682409FFFF1049FEA160
72727 +:102E50002404FFFF0A001E548F83005402602021C7
72728 +:102E60000E001A4AA38200681450FF508F85003864
72729 +:102E70002403FFFF0A001D320060A0218CD800242B
72730 +:102E80008E0800241118FF29026020210A001F2744
72731 +:102E90002402000F8E0900003C05008001259024CB
72732 +:102EA0001640FF492402001A026020210E001A4A2F
72733 +:102EB000A3820068240CFFFF144CFECF2404FFFF04
72734 +:102EC0008F8500380A001D320080A0210E001934C1
72735 +:102ED000026020218F8500380A001EE500001821BD
72736 +:102EE0002403FFFD0060A0210A001D32AF860060B0
72737 +:102EF000026020210E001A4AA38D00682403FFFF00
72738 +:102F00001043FF588F8500380A001ECC920400033E
72739 +:102F10002418001D0E001A4AA39800682403FFFF1E
72740 +:102F20001443FE9D2404FFFF8F8500380A001D32E4
72741 +:102F30000080A021026020210A001F3D24020024FD
72742 +:102F4000240880000068C024330BFFFF000B73C20D
72743 +:102F500031D000FF001088270A001F6E001133C017
72744 +:102F6000240F001B0E001A4AA38F00681451FEACF8
72745 +:102F70002404FFFF8F8500380A001D320080A02145
72746 +:102F80000A001F3D240200278E0600288CA3002C77
72747 +:102F900010C30008026020210A001F812402001FC4
72748 +:102FA0000A001F812402000E026020210A001F81F6
72749 +:102FB000240200258E04002C1080000D8F8F00301D
72750 +:102FC0008DE800740104C02B5700000C0260202122
72751 +:102FD0008CB900140086A0210334282B10A0FF52C6
72752 +:102FE0008F9F0044026020210A001F8124020022DA
72753 +:102FF000026020210A001F81240200230A001F8191
72754 +:103000002402002627BDFFD8AFB3001CAFB10014C7
72755 +:10301000AFBF0020AFB20018AFB000103C0280007C
72756 +:103020008C5201408C4B01483C048000000B8C0208
72757 +:10303000322300FF317300FF8C8501B804A0FFFE2E
72758 +:1030400034900180AE1200008C8701442464FFF0AC
72759 +:10305000240600022C830013AE070004A61100080A
72760 +:10306000A206000BAE1300241060004F8FBF00209B
72761 +:10307000000448803C0A0801254A9534012A402171
72762 +:103080008D04000000800008000000003C030800E0
72763 +:103090008C6331A831693FFF00099980007280215B
72764 +:1030A000021370212405FF80264D0100264C00806C
72765 +:1030B0003C02800031B1007F3198007F31CA007F2F
72766 +:1030C0003C1F800A3C1980043C0F800C01C5202461
72767 +:1030D00001A5302401853824014F1821AC46002475
72768 +:1030E000023F402103194821AC470090AC4400281E
72769 +:1030F000AF830044AF880038AF8900300E0019005C
72770 +:10310000016080213C0380008C6B01B80560FFFEEC
72771 +:103110008F8700448F8600383465018090E8000D69
72772 +:10312000ACB20000A4B0000600082600000416039C
72773 +:1031300000029027001227C21080008124C200885C
72774 +:10314000241F6082A4BF0008A0A000052402000282
72775 +:10315000A0A2000B8F8B0030000424003C08270045
72776 +:1031600000889025ACB20010ACA00014ACA00024E4
72777 +:10317000ACA00028ACA0002C8D6900382413FF807F
72778 +:10318000ACA9001890E3000D02638024320500FF13
72779 +:1031900010A000058FBF002090ED000D31AC007F26
72780 +:1031A000A0EC000D8FBF00208FB3001C8FB2001861
72781 +:1031B0008FB100148FB000103C0A10003C0E80004C
72782 +:1031C00027BD002803E00008ADCA01B8265F010052
72783 +:1031D0002405FF8033F8007F3C06800003E5782457
72784 +:1031E0003C19800A03192021ACCF0024908E00D412
72785 +:1031F00000AE682431AC00FF11800024AF84003899
72786 +:10320000248E008895CD00123C0C08008D8C31A8CE
72787 +:1032100031AB3FFF01924821000B5180012A402130
72788 +:1032200001052024ACC400283107007F3C06800C37
72789 +:1032300000E620219083000D00A31024304500FFFC
72790 +:1032400010A0FFD8AF8400449098000D330F0010F9
72791 +:1032500015E0FFD58FBF00200E0019000000000010
72792 +:103260003C0380008C7901B80720FFFE00000000BD
72793 +:10327000AE1200008C7F0144AE1F0004A6110008AE
72794 +:1032800024110002A211000BAE1300243C1308010C
72795 +:10329000927396F0327000015200FFC38FBF00207E
72796 +:1032A0000E002146024020210A0020638FBF00202B
72797 +:1032B0003C1260008E452C083C03F0033462FFFF93
72798 +:1032C00000A2F824AE5F2C088E582C083C1901C0CF
72799 +:1032D00003199825AE532C080A0020638FBF0020E5
72800 +:1032E000264D010031AF007F3C10800A240EFF8084
72801 +:1032F00001F0282101AE60243C0B8000AD6C00245D
72802 +:103300001660FFA8AF85003824110003A0B100FCAF
72803 +:103310000A0020638FBF002026480100310A007F89
72804 +:103320003C0B800A2409FF80014B30210109202435
72805 +:103330003C078000ACE400240A002062AF8600381D
72806 +:10334000944E0012320C3FFF31CD3FFF15ACFF7D94
72807 +:10335000241F608290D900D42418FF800319782498
72808 +:1033600031EA00FF1140FF7700000000240700044D
72809 +:10337000A0C700FC8F870044241160842406000D40
72810 +:10338000A4B10008A0A600050A00204D24020002F6
72811 +:103390003C040001248496DC24030014240200FE73
72812 +:1033A0003C010800AC2431EC3C010800AC2331E8BE
72813 +:1033B0003C010801A42296F83C040801248496F8F4
72814 +:1033C0000000182100643021A0C300042463000120
72815 +:1033D0002C6500FF54A0FFFC006430213C0708006E
72816 +:1033E00024E7010003E00008AF87007800A058211F
72817 +:1033F000008048210000102114A00012000050217C
72818 +:103400000A002142000000003C010801A42096F8B7
72819 +:103410003C05080194A596F88F8200783C0C0801C1
72820 +:10342000258C96F800E2182100AC2021014B302BAE
72821 +:10343000A089000400001021A460000810C0003919
72822 +:10344000010048218F8600780009384000E94021BA
72823 +:103450000008388000E6282190A8000B90B9000AE7
72824 +:103460000008204000881021000218800066C0215A
72825 +:10347000A319000A8F85007800E5782191EE000AF3
72826 +:1034800091E6000B000E684001AE6021000C208028
72827 +:1034900000851021A046000B3C030801906396F2C2
72828 +:1034A000106000222462FFFF8F8300383C01080176
72829 +:1034B000A02296F2906C00FF118000040000000032
72830 +:1034C000906E00FF25CDFFFFA06D00FF3C190801A5
72831 +:1034D000973996F8272300013078FFFF2F0F00FF60
72832 +:1034E00011E0FFC9254A00013C010801A42396F818
72833 +:1034F0003C05080194A596F88F8200783C0C0801E1
72834 +:10350000258C96F800E2182100AC2021014B302BCD
72835 +:10351000A089000400001021A460000814C0FFC9A5
72836 +:103520000100482103E000080000000003E000085B
72837 +:103530002402000227BDFFE0248501002407FF804C
72838 +:10354000AFB00010AFBF0018AFB1001400A718242F
72839 +:103550003C10800030A4007F3C06800A00862821B1
72840 +:103560008E110024AE03002490A200FF1440000836
72841 +:10357000AF850038A0A000098FBF0018AE1100244D
72842 +:103580008FB100148FB0001003E0000827BD0020A9
72843 +:1035900090A900FD90A800FF312400FF0E0020F448
72844 +:1035A000310500FF8F8500388FBF0018A0A00009EB
72845 +:1035B000AE1100248FB100148FB0001003E000089A
72846 +:1035C00027BD002027BDFFD0AFB20020AFB1001C47
72847 +:1035D000AFB00018AFBF002CAFB40028AFB30024C9
72848 +:1035E0003C0980009533011635320C00952F011AE5
72849 +:1035F0003271FFFF023280218E08000431EEFFFF9E
72850 +:10360000248B0100010E6821240CFF8025A5FFFFFB
72851 +:10361000016C50243166007F3C07800AAD2A0024EB
72852 +:1036200000C73021AF850074AF8800703C010801ED
72853 +:10363000A02096F190C300090200D02100809821BB
72854 +:10364000306300FF2862000510400048AF86003854
72855 +:10365000286400021480008E24140001240D00054B
72856 +:103660003C010801A02D96D590CC00FD3C0108013D
72857 +:10367000A02096D63C010801A02096D790CB000A46
72858 +:10368000240AFF80318500FF014B4824312700FFC9
72859 +:1036900010E0000C000058213C12800836510080D8
72860 +:1036A0008E2F00308CD0005C01F0702305C0018E9D
72861 +:1036B0008F87007090D4000A3284007FA0C4000A73
72862 +:1036C0008F8600383C118008363000808E0F003025
72863 +:1036D0008F87007000EF702319C000EE000000001B
72864 +:1036E00090D4000924120002328400FF1092024795
72865 +:1036F000000000008CC2005800E2F82327F9FFFF09
72866 +:103700001B2001300000000090C5000924080004BF
72867 +:1037100030A300FF10680057240A00013C01080193
72868 +:10372000A02A96D590C900FF252700013C01080179
72869 +:10373000A02796D43C030801906396D52406000583
72870 +:103740001066006A2C780005130000C40000902168
72871 +:103750000003F8803C0408012484958003E4C82118
72872 +:103760008F25000000A0000800000000241800FFC2
72873 +:103770001078005C0000000090CC000A90CA00099C
72874 +:103780003C080801910896F13187008000EA48253D
72875 +:103790003C010801A02996DC90C500FD3C140801FD
72876 +:1037A000929496F2311100013C010801A02596DDAA
72877 +:1037B00090DF00FE3C010801A03F96DE90D200FFA2
72878 +:1037C0003C010801A03296DF8CD900543C0108016D
72879 +:1037D000AC3996E08CD000583C010801AC3096E43E
72880 +:1037E0008CC3005C3C010801AC3496EC3C01080140
72881 +:1037F000AC2396E8162000088FBF002C8FB4002859
72882 +:103800008FB300248FB200208FB1001C8FB000183E
72883 +:1038100003E0000827BD00303C1180009624010E13
72884 +:103820000E000FD43094FFFF3C0B08018D6B96F413
72885 +:103830000260382102802821AE2B01803C13080150
72886 +:103840008E7396D401602021240600830E00102F71
72887 +:10385000AFB300108FBF002C8FB400288FB30024AB
72888 +:103860008FB200208FB1001C8FB0001803E0000859
72889 +:1038700027BD00303C1808008F1831FC270F0001CD
72890 +:103880003C010800AC2F31FC0A0021D700000000E9
72891 +:103890001474FFB900000000A0C000FF3C05080040
72892 +:1038A0008CA531E43C0308008C6331E03C02080045
72893 +:1038B0008C4232048F99003834A80001241F000282
72894 +:1038C0003C010801AC2396F43C010801A02896F0C5
72895 +:1038D0003C010801A02296F3A33F00090A002190B1
72896 +:1038E0008F8600380E002146000000000A0021D714
72897 +:1038F0008F8600383C1F080193FF96D424190001DD
72898 +:1039000013F902298F8700703C100801921096D895
72899 +:103910003C06080190C696D610C000050200A02102
72900 +:103920003C040801908496D9109001E48F870078B8
72901 +:10393000001088408F9F0078023048210009C8801D
72902 +:10394000033F702195D80008270F0001A5CF00087C
72903 +:103950003C040801908496D93C05080190A596D6B0
72904 +:103960000E0020F4000000008F8700780230202134
72905 +:103970000004308000C720218C8500048F820074F1
72906 +:1039800000A2402305020006AC8200048C8A0000DD
72907 +:103990008F830070014310235C400001AC83000062
72908 +:1039A0008F86003890CB00FF2D6C00025580002DD3
72909 +:1039B000241400010230F821001F40800107282153
72910 +:1039C00090B9000B8CAE00040019C0400319782197
72911 +:1039D000000F1880006710218C4D000001AE882375
72912 +:1039E0002630FFFF5E00001F241400018C440004F9
72913 +:1039F0008CAA0000008A482319200019240E000414
72914 +:103A00003C010801A02E96D590AD000B8CAB0004B4
72915 +:103A1000000D8840022D80210010108000471021E9
72916 +:103A20008C44000401646023058202009443000872
72917 +:103A300090DF00FE90B9000B33E500FF54B900049D
72918 +:103A40000107A021A0D400FE8F8700780107A021E4
72919 +:103A50009284000B0E0020F4240500018F860038AC
72920 +:103A600024140001125400962E500001160000424A
72921 +:103A70003C08FFFF241900021659FF3F0000000018
72922 +:103A8000A0C000FF8F860038A0D200090A0021D70D
72923 +:103A90008F86003890C700092404000230E300FF3D
72924 +:103AA0001064016F24090004106901528F880074AA
72925 +:103AB0008CCE0054010E682325B10001062001754B
72926 +:103AC000241800043C010801A03896D53C010801E7
72927 +:103AD000A02096D490D400FD90D200FF2E4F00027B
72928 +:103AE00015E0FF14328400FF000438408F8900780D
72929 +:103AF00090DF00FF00E41021000220800089C8212F
72930 +:103B00002FE500029324000B14A0FF0A24070002F3
72931 +:103B100000041840006480210010588001692821A9
72932 +:103B20008CAC0004010C50230540FF020000000093
72933 +:103B30003C030801906396D614600005246F0001D1
72934 +:103B40003C010801A02496D93C010801A02796D782
72935 +:103B50003C010801A02F96D690CE00FF24E700017B
72936 +:103B600031CD00FF01A7882B1220FFE990A4000BA4
72937 +:103B70000A0021C6000000003C0508018CA596D46F
72938 +:103B80003C12000400A8F82413F2000624020005E9
72939 +:103B90003C090801912996D5152000022402000352
72940 +:103BA000240200053C010801A02296F190C700FF05
72941 +:103BB00014E0012024020002A0C200090A0021D75B
72942 +:103BC0008F86003890CC00FF1180FEDA240A0001B5
72943 +:103BD0008F8C00748F890078240F00030180682186
72944 +:103BE0001160001E240E0002000540400105A021C6
72945 +:103BF00000142080008990218E51000401918023BF
72946 +:103C00000600FECC000000003C020801904296D65F
72947 +:103C100014400005245800013C010801A02A96D751
72948 +:103C20003C010801A02596D93C010801A03896D690
72949 +:103C300090DF00FF010510210002C88033E500FF7E
72950 +:103C4000254A00010329202100AA402B1500FEB9B6
72951 +:103C50009085000B1560FFE50005404000054040E1
72952 +:103C600001051821000310803C010801A02A96D408
72953 +:103C70003C010801A02596D8004918218C64000455
72954 +:103C800000E4F82327F9FFFF1F20FFE900000000F0
72955 +:103C90008C63000000E358230560013A01A38823E8
72956 +:103CA00010E301170184C0231B00FEA200000000E6
72957 +:103CB0003C010801A02E96D50A002305240B000123
72958 +:103CC000240E0004A0CE00093C0D08008DAD31F893
72959 +:103CD0008F86003825A200013C010800AC2231F893
72960 +:103CE0000A0021D7000000008CD9005C00F9C02335
72961 +:103CF0001F00FE7B000000008CDF005C10FFFF65F2
72962 +:103D00008F8400748CC3005C008340232502000173
72963 +:103D10001C40FF60000000008CC9005C248700018B
72964 +:103D200000E9282B10A0FE943C0D80008DAB01040F
72965 +:103D30003C0C0001016C50241140FE8F2402001045
72966 +:103D40003C010801A02296F10A0021D700000000E2
72967 +:103D50008F9100748F86003826220001ACC2005C6F
72968 +:103D60000A002292241400018F8700382404FF8067
72969 +:103D70000000882190E9000A241400010124302564
72970 +:103D8000A0E6000A3C05080190A596D63C0408016F
72971 +:103D9000908496D90E0020F4000000008F86003831
72972 +:103DA0008F85007890C800FD310700FF0007404074
72973 +:103DB0000107F821001FC0800305C8219323000BD1
72974 +:103DC000A0C300FD8F8500788F8600380305602131
72975 +:103DD000918F000B000F704001CF6821000D808093
72976 +:103DE000020510218C4B0000ACCB00548D840004E4
72977 +:103DF0008F83007400645023194000022482000164
72978 +:103E00002462000101074821ACC2005C0009308037
72979 +:103E100000C5402100E02021240500010E0020F40F
72980 +:103E20009110000B8F86003890C500FF10A0FF0C8A
72981 +:103E3000001070408F85007801D06821000D10803F
72982 +:103E4000004558218D6400008F8C0074018450233C
72983 +:103E50002547000104E0FF02263100013C03080170
72984 +:103E6000906396D62E2F0002247800013C010801B1
72985 +:103E7000A03896D63C010801A03496D711E0FEF890
72986 +:103E8000020038210A002365000740408F84003873
72987 +:103E90008F8300748C85005800A340230502FE9A8E
72988 +:103EA000AC8300580A00223B000000003C070801D8
72989 +:103EB00090E796F2240200FF10E200BE8F860038E1
72990 +:103EC0003C110801963196FA3C030801246396F8E8
72991 +:103ED000262500013230FFFF30ABFFFF02036021D7
72992 +:103EE0002D6A00FF1540008D918700043C010801F8
72993 +:103EF000A42096FA8F88003800074840012728211F
72994 +:103F0000911800FF000530802405000127140001EE
72995 +:103F1000A11400FF3C120801925296F28F8800789B
72996 +:103F20008F8E0070264F000100C820213C0108013F
72997 +:103F3000A02F96F2AC8E00008F8D0074A48500082F
72998 +:103F4000AC8D00043C030801906396D414600077A4
72999 +:103F5000000090213C010801A02596D4A087000B09
73000 +:103F60008F8C007800CC5021A147000A8F82003846
73001 +:103F7000A04700FD8F840038A08700FE8F860038A0
73002 +:103F80008F9F0070ACDF00548F990074ACD900583B
73003 +:103F90008F8D00780127C02100185880016DA02165
73004 +:103FA000928F000A000F704001CF18210003888013
73005 +:103FB000022D8021A207000B8F8600780166602108
73006 +:103FC000918A000B000A1040004A2021000428803A
73007 +:103FD00000A64021A107000A3C07800834E90080C0
73008 +:103FE0008D2200308F860038ACC2005C0A0022921D
73009 +:103FF0002414000190CA00FF1540FEAD8F880074A4
73010 +:10400000A0C400090A0021D78F860038A0C000FD97
73011 +:104010008F98003824060001A30000FE3C0108012F
73012 +:10402000A02696D53C010801A02096D40A0021C6FE
73013 +:104030000000000090CB00FF3C040801908496F340
73014 +:10404000316C00FF0184502B1540000F2402000347
73015 +:1040500024020004A0C200090A0021D78F8600387C
73016 +:1040600090C3000A2410FF8002035824316C00FF23
73017 +:104070001180FDC1000000003C010801A02096D580
73018 +:104080000A0021C600000000A0C200090A0021D7D2
73019 +:104090008F86003890D4000A2412FF8002544824EE
73020 +:1040A000312800FF1500FFF4240200083C0108013C
73021 +:1040B000A02296F10A0021D70000000000108840DD
73022 +:1040C0008F8B0070023018210003688001A7202127
73023 +:1040D000AC8B00008F8A0074240C0001A48C0008B3
73024 +:1040E000AC8A00043C05080190A596D62402000184
73025 +:1040F00010A2FE1E24A5FFFF0A0022519084000B8F
73026 +:104100000184A0231A80FD8B000000003C010801FF
73027 +:10411000A02E96D50A002305240B00013C010801BE
73028 +:10412000A42596FA0A0023B78F880038240B0001D3
73029 +:10413000106B00228F9800388F85003890BF00FFE9
73030 +:1041400033F900FF1079002B000000003C1F08012C
73031 +:1041500093FF96D8001FC840033FC0210018A080DD
73032 +:104160000288782191EE000AA08E000A8F8D0078D7
73033 +:104170003C030801906396D800CD88210A0023DD16
73034 +:10418000A223000B263000010600003101A4902379
73035 +:104190000640002B240200033C010801A02F96D505
73036 +:1041A0000A002305240B00018F8900380A00223BF6
73037 +:1041B000AD2700540A00229124120001931400FD3F
73038 +:1041C000A094000B8F8800388F8F0078910E00FE2E
73039 +:1041D00000CF6821A1AE000A8F910038A22700FD10
73040 +:1041E0008F8300708F900038AE0300540A0023DEE6
73041 +:1041F0008F8D007890B000FEA090000A8F8B003861
73042 +:104200008F8C0078916A00FD00CC1021A04A000B31
73043 +:104210008F840038A08700FE8F8600748F85003859
73044 +:10422000ACA600580A0023DE8F8D007894B80008F1
73045 +:10423000ACA40004030378210A002285A4AF00087F
73046 +:104240003C010801A02296D50A0021C6000000000A
73047 +:1042500090CF0009240D000431EE00FF11CDFD8543
73048 +:10426000240200013C010801A02296D50A0021C6C3
73049 +:1042700000000000080033440800334408003420E4
73050 +:10428000080033F4080033D8080033280800332826
73051 +:10429000080033280800334C8008010080080080A3
73052 +:1042A000800800005F865437E4AC62CC50103A4579
73053 +:1042B00036621985BF14C0E81BC27A1E84F4B55655
73054 +:1042C000094EA6FE7DDA01E7C04D748108005A74DC
73055 +:1042D00008005AB808005A5C08005A5C08005A5C8A
73056 +:1042E00008005A5C08005A7408005A5C08005A5CBE
73057 +:1042F00008005AC008005A5C080059D408005A5CEB
73058 +:1043000008005A5C08005AC008005A5C08005A5C51
73059 +:1043100008005A5C08005A5C08005A5C08005A5CA5
73060 +:1043200008005A5C08005A5C08005A5C08005A5C95
73061 +:1043300008005A9408005A5C08005A9408005A5C15
73062 +:1043400008005A5C08005A5C08005A9808005A9401
73063 +:1043500008005A5C08005A5C08005A5C08005A5C65
73064 +:1043600008005A5C08005A5C08005A5C08005A5C55
73065 +:1043700008005A5C08005A5C08005A5C08005A5C45
73066 +:1043800008005A5C08005A5C08005A5C08005A5C35
73067 +:1043900008005A5C08005A5C08005A5C08005A5C25
73068 +:1043A00008005A9808005A9808005A5C08005A9861
73069 +:1043B00008005A5C08005A5C08005A5C08005A5C05
73070 +:1043C00008005A5C08005A5C08005A5C08005A5CF5
73071 +:1043D00008005A5C08005A5C08005A5C08005A5CE5
73072 +:1043E00008005A5C08005A5C08005A5C08005A5CD5
73073 +:1043F00008005A5C08005A5C08005A5C08005A5CC5
73074 +:1044000008005A5C08005A5C08005A5C08005A5CB4
73075 +:1044100008005A5C08005A5C08005A5C08005A5CA4
73076 +:1044200008005A5C08005A5C08005A5C08005A5C94
73077 +:1044300008005A5C08005A5C08005A5C08005A5C84
73078 +:1044400008005A5C08005A5C08005A5C08005A5C74
73079 +:1044500008005A5C08005A5C08005A5C08005A5C64
73080 +:1044600008005A5C08005A5C08005A5C08005A5C54
73081 +:1044700008005A5C08005A5C08005A5C08005A5C44
73082 +:1044800008005A5C08005A5C08005A5C08005A5C34
73083 +:1044900008005A5C08005A5C08005A5C08005A5C24
73084 +:1044A00008005A5C08005A5C08005A5C08005A5C14
73085 +:1044B00008005A5C08005A5C08005A5C08005A5C04
73086 +:1044C00008005A5C08005A5C08005A5C08005ADC74
73087 +:1044D0000800782C08007A900800783808007628C0
73088 +:1044E00008007838080078C4080078380800762872
73089 +:1044F0000800762808007628080076280800762824
73090 +:104500000800762808007628080076280800762813
73091 +:1045100008007628080078580800784808007628AF
73092 +:1045200008007628080076280800762808007628F3
73093 +:1045300008007628080076280800762808007628E3
73094 +:1045400008007628080076280800762808007848B1
73095 +:10455000080082FC08008188080082C40800818865
73096 +:104560000800829408008070080081880800818813
73097 +:1045700008008188080081880800818808008188F7
73098 +:1045800008008188080081880800818808008188E7
73099 +:104590000800818808008188080081B008008D34F7
73100 +:1045A00008008E9008008E70080088D808008D4C96
73101 +:1045B0000A00012400000000000000000000000DBF
73102 +:1045C000747061362E322E31620000000602010145
73103 +:1045D00000000000000000000000000000000000DB
73104 +:1045E00000000000000000000000000000000000CB
73105 +:1045F00000000000000000000000000000000000BB
73106 +:1046000000000000000000000000000000000000AA
73107 +:10461000000000000000000000000000000000009A
73108 +:10462000000000000000000000000000000000008A
73109 +:10463000000000000000000000000000000000007A
73110 +:104640000000000010000003000000000000000D4A
73111 +:104650000000000D3C020800244217203C03080023
73112 +:1046600024632A10AC4000000043202B1480FFFD7F
73113 +:10467000244200043C1D080037BD2FFC03A0F0219C
73114 +:104680003C100800261004903C1C0800279C1720B2
73115 +:104690000E000262000000000000000D2402FF80F6
73116 +:1046A00027BDFFE000821024AFB00010AF42002011
73117 +:1046B000AFBF0018AFB10014936500043084007FD1
73118 +:1046C000034418213C0200080062182130A5002094
73119 +:1046D000036080213C080111277B000814A0000220
73120 +:1046E0002466005C2466005892020004974301048B
73121 +:1046F000920400043047000F3063FFFF3084004015
73122 +:10470000006728231080000900004821920200055C
73123 +:1047100030420004104000050000000010A000031B
73124 +:104720000000000024A5FFFC2409000492020005FB
73125 +:1047300030420004104000120000000010A00010E1
73126 +:10474000000000009602000200A72021010440257D
73127 +:104750002442FFFEA7421016920300042402FF80A9
73128 +:1047600000431024304200FF104000033C020400CC
73129 +:104770000A000174010240258CC20000AF421018EB
73130 +:104780008F4201780440FFFE2402000AA742014044
73131 +:1047900096020002240400093042000700021023A0
73132 +:1047A00030420007A7420142960200022442FFFE67
73133 +:1047B000A7420144A740014697420104A74201488D
73134 +:1047C0008F420108304200205040000124040001C3
73135 +:1047D00092020004304200101440000234830010A2
73136 +:1047E00000801821A743014A0000000000000000DB
73137 +:1047F0000000000000000000AF48100000000000B2
73138 +:104800000000000000000000000000008F421000C7
73139 +:104810000441FFFE3102FFFF1040000700000000CE
73140 +:1048200092020004304200401440000300000000E7
73141 +:104830008F421018ACC20000960200063042FFFF03
73142 +:10484000244200020002104300021040036288214B
73143 +:10485000962200001120000D3044FFFF00A7102118
73144 +:104860008F8300388F45101C0002108200021080D8
73145 +:1048700000431021AC45000030A6FFFF0E00058D5F
73146 +:1048800000052C0200402021A62200009203000413
73147 +:104890002402FF8000431024304200FF1040001F1C
73148 +:1048A0000000000092020005304200021040001B90
73149 +:1048B000000000009742100C2442FFFEA742101691
73150 +:1048C000000000003C02040034420030AF421000FF
73151 +:1048D00000000000000000000000000000000000D8
73152 +:1048E0008F4210000441FFFE000000009742100CB0
73153 +:1048F0008F45101C3042FFFF24420030000210821E
73154 +:1049000000021080005B1021AC45000030A6FFFFC4
73155 +:104910000E00058D00052C02A62200009604000260
73156 +:10492000248400080E0001E93084FFFF974401044D
73157 +:104930000E0001F73084FFFF8FBF00188FB1001405
73158 +:104940008FB000103C02100027BD002003E00008DB
73159 +:10495000AF4201783084FFFF308200078F8500244A
73160 +:1049600010400002248300073064FFF800A41021E7
73161 +:1049700030421FFF03421821247B4000AF850028EE
73162 +:10498000AF82002403E00008AF4200843084FFFFC0
73163 +:104990003082000F8F85002C8F860034104000027B
73164 +:1049A0002483000F3064FFF000A410210046182B70
73165 +:1049B000AF8500300046202314600002AF82002C37
73166 +:1049C000AF84002C8F82002C340480000342182115
73167 +:1049D00000641821AF83003803E00008AF42008074
73168 +:1049E0008F820014104000088F8200048F82FFDC49
73169 +:1049F000144000058F8200043C02FFBF3442FFFFD9
73170 +:104A0000008220248F82000430430006240200022A
73171 +:104A10001062000F3C0201012C62000350400005AF
73172 +:104A2000240200041060000F3C0200010A00023062
73173 +:104A30000000000010620005240200061462000C51
73174 +:104A40003C0201110A000229008210253C020011DB
73175 +:104A500000821025AF421000240200010A0002303B
73176 +:104A6000AF82000C00821025AF421000AF80000C16
73177 +:104A700000000000000000000000000003E000084B
73178 +:104A8000000000008F82000C1040000400000000B5
73179 +:104A90008F4210000441FFFE0000000003E0000808
73180 +:104AA000000000008F8200102443F800000231C291
73181 +:104AB00024C2FFF02C6303011060000300021042C7
73182 +:104AC0000A000257AC8200008F85001800C5102B29
73183 +:104AD0001440000B0000182100C5102324470001DA
73184 +:104AE0008F82001C00A210212442FFFF0046102BE1
73185 +:104AF000544000042402FFFF0A000257AC87000064
73186 +:104B00002402FFFF0A000260AC8200008C820000D9
73187 +:104B10000002194000621821000318800062182169
73188 +:104B2000000318803C0208002442175C0062182130
73189 +:104B300003E000080060102127BDFFD8AFBF0020B0
73190 +:104B4000AFB1001CAFB000183C0460088C8250006C
73191 +:104B50002403FF7F3C066000004310243442380CDD
73192 +:104B6000AC8250008CC24C1C3C1A80000002160221
73193 +:104B70003042000F10400007AF82001C8CC34C1C59
73194 +:104B80003C02001F3442FC0000621824000319C2DA
73195 +:104B9000AF8300188F420008275B400034420001B9
73196 +:104BA000AF420008AF8000243C02601CAF40008090
73197 +:104BB000AF4000848C4500088CC308083402800094
73198 +:104BC000034220212402FFF0006218243C020080EE
73199 +:104BD0003C010800AC2204203C025709AF84003895
73200 +:104BE00014620004AF850034240200010A0002921E
73201 +:104BF000AF820014AF8000148F42000038420001E1
73202 +:104C0000304200011440FFFC8F8200141040001657
73203 +:104C10000000000097420104104000058F8300004F
73204 +:104C2000146000072462FFFF0A0002A72C62000A3A
73205 +:104C30002C620010504000048F83000024620001A9
73206 +:104C4000AF8200008F8300002C62000A1440000332
73207 +:104C50002C6200070A0002AEAF80FFDC10400002A9
73208 +:104C600024020001AF82FFDC8F4301088F44010062
73209 +:104C700030622000AF83000410400008AF840010B1
73210 +:104C80003C0208008C42042C244200013C01080034
73211 +:104C9000AC22042C0A00058A3C0240003065020068
73212 +:104CA00014A0000324020F001482026024020D00ED
73213 +:104CB00097420104104002C83C02400030624000AC
73214 +:104CC000144000AD8F8200388C4400088F42017878
73215 +:104CD0000440FFFE24020800AF42017824020008CD
73216 +:104CE000A7420140A7400142974201048F8400047B
73217 +:104CF0003051FFFF30820001104000070220802168
73218 +:104D00002623FFFE240200023070FFFFA742014667
73219 +:104D10000A0002DBA7430148A74001463C02080005
73220 +:104D20008C42043C1440000D8F8300103082002020
73221 +:104D30001440000224030009240300010060202124
73222 +:104D40008F830010240209005062000134840004A3
73223 +:104D5000A744014A0A0002F60000000024020F00E6
73224 +:104D60001462000530820020144000062403000D68
73225 +:104D70000A0002F524030005144000022403000980
73226 +:104D800024030001A743014A3C0208008C4204208E
73227 +:104D90003C0400480E00020C004420250E000235A1
73228 +:104DA000000000008F82000C1040003E0000000058
73229 +:104DB0008F4210003C0300200043102410400039B3
73230 +:104DC0008F820004304200021040003600000000D4
73231 +:104DD000974210141440003300000000974210085E
73232 +:104DE0008F8800383042FFFF2442000600021882FC
73233 +:104DF0000003388000E83021304300018CC40000FB
73234 +:104E000010600004304200030000000D0A00033768
73235 +:104E100000E81021544000103084FFFF3C05FFFFE4
73236 +:104E200000852024008518260003182B0004102B71
73237 +:104E300000431024104000050000000000000000A6
73238 +:104E40000000000D00000000240002228CC20000BF
73239 +:104E50000A000336004520253883FFFF0003182B86
73240 +:104E60000004102B00431024104000050000000037
73241 +:104E7000000000000000000D000000002400022BD4
73242 +:104E80008CC200003444FFFF00E81021AC44000055
73243 +:104E90003C0208008C420430244200013C0108001E
73244 +:104EA000AC2204308F6200008F840038AF8200088B
73245 +:104EB0008C8300003402FFFF1462000F00001021F9
73246 +:104EC0003C0508008CA504543C0408008C84045064
73247 +:104ED00000B0282100B0302B008220210086202144
73248 +:104EE0003C010800AC2504543C010800AC240450EB
73249 +:104EF0000A000580240400088C8200003042010072
73250 +:104F00001040000F000010213C0508008CA5044C47
73251 +:104F10003C0408008C84044800B0282100B0302BE9
73252 +:104F200000822021008620213C010800AC25044C91
73253 +:104F30003C010800AC2404480A0005802404000851
73254 +:104F40003C0508008CA504443C0408008C84044003
73255 +:104F500000B0282100B0302B0082202100862021C3
73256 +:104F60003C010800AC2504443C010800AC2404408A
73257 +:104F70000A000580240400088F6200088F62000088
73258 +:104F800000021602304300F02402003010620005D7
73259 +:104F900024020040106200E08F8200200A00058891
73260 +:104FA0002442000114A000050000000000000000E1
73261 +:104FB0000000000D00000000240002568F4201781E
73262 +:104FC0000440FFFE000000000E00023D27A4001078
73263 +:104FD0001440000500408021000000000000000D8A
73264 +:104FE000000000002400025D8E0200001040000559
73265 +:104FF00000000000000000000000000D00000000A4
73266 +:10500000240002608F62000C0443000324020001AC
73267 +:105010000A00042EAE000000AE0200008F820038AD
73268 +:105020008C480008A20000078F65000C8F64000404
73269 +:1050300030A3FFFF0004240200852023308200FFFC
73270 +:105040000043102124420005000230832CC200815D
73271 +:10505000A605000A14400005A20400040000000098
73272 +:105060000000000D00000000240002788F85003849
73273 +:105070000E0005AB260400148F6200048F43010864
73274 +:10508000A60200083C02100000621824106000080C
73275 +:105090000000000097420104920300072442FFEC45
73276 +:1050A000346300023045FFFF0A0003C3A203000778
73277 +:1050B000974201042442FFF03045FFFF96060008A6
73278 +:1050C0002CC200135440000592030007920200070F
73279 +:1050D00034420001A20200079203000724020001EB
73280 +:1050E00010620005240200031062000B8F8200385A
73281 +:1050F0000A0003E030C6FFFF8F8200383C04FFFF48
73282 +:105100008C43000C0064182400651825AC43000C87
73283 +:105110000A0003E030C6FFFF3C04FFFF8C43001091
73284 +:105120000064182400651825AC43001030C6FFFF4A
73285 +:1051300024C2000200021083A20200058F830038FF
73286 +:10514000304200FF00021080004328218CA800009C
73287 +:105150008CA2000024030004000217021443001272
73288 +:1051600000000000974201043C03FFFF01031824E4
73289 +:105170003042FFFF004610232442FFFE006240251C
73290 +:10518000ACA8000092030005306200FF000210800E
73291 +:1051900000501021904200143042000F00431021B3
73292 +:1051A0000A000415A20200068CA400049742010420
73293 +:1051B0009603000A3088FFFF3042FFFF00461023AD
73294 +:1051C0002442FFD60002140001024025ACA80004CE
73295 +:1051D000920200079204000524630028000318834C
73296 +:1051E0000064182134420004A2030006A202000752
73297 +:1051F0008F8200042403FFFB34420002004310248A
73298 +:10520000AF820004920300068F87003800031880E5
73299 +:10521000007010218C4400203C02FFF63442FFFF56
73300 +:105220000082402400671821AE04000CAC68000C1A
73301 +:10523000920500063C03FF7F8E02000C00052880CB
73302 +:1052400000B020213463FFFF01033024948800263E
73303 +:1052500000A7282100431024AE02000CAC860020D9
73304 +:10526000AC880024ACA8001024020010A742014022
73305 +:1052700024020002A7400142A7400144A742014680
73306 +:10528000974201043C0400082442FFFEA742014863
73307 +:10529000240200010E00020CA742014A9603000AF4
73308 +:1052A0009202000400431021244200023042000711
73309 +:1052B00000021023304200070E000235AE0200103B
73310 +:1052C0008F6200003C0308008C6304442404001037
73311 +:1052D000AF820008974201043042FFFF2442FFFEE4
73312 +:1052E00000403821000237C33C0208008C420440D1
73313 +:1052F000006718210067282B004610210045102167
73314 +:105300003C010800AC2304443C010800AC220440EA
73315 +:105310000A0005150000000014A0000500000000B0
73316 +:10532000000000000000000D000000002400030A3F
73317 +:105330008F4201780440FFFE000000000E00023D95
73318 +:1053400027A4001414400005004080210000000044
73319 +:105350000000000D00000000240003118E02000078
73320 +:105360005440000692020007000000000000000DFB
73321 +:10537000000000002400031C9202000730420004D9
73322 +:10538000104000058F8200042403FFFB344200021A
73323 +:1053900000431024AF8200048F620004044300081D
73324 +:1053A00092020007920200068E03000CAE0000007D
73325 +:1053B0000002108000501021AC4300209202000730
73326 +:1053C00030420004544000099602000A920200058F
73327 +:1053D0003C03000100021080005010218C46001890
73328 +:1053E00000C33021AC4600189602000A9206000461
73329 +:1053F000277100080220202100C2302124C60005A8
73330 +:10540000260500140E0005AB00063082920400064B
73331 +:105410008F6500043C027FFF000420800091202162
73332 +:105420008C8300043442FFFF00A228240065182169
73333 +:10543000AC8300049202000792040005920300046A
73334 +:10544000304200041040001496070008308400FF2A
73335 +:1054500000042080009120218C86000497420104E2
73336 +:105460009605000A306300FF3042FFFF0043102121
73337 +:105470000045102130E3FFFF004310232442FFD8F2
73338 +:1054800030C6FFFF0002140000C23025AC860004C5
73339 +:105490000A0004C992030007308500FF0005288038
73340 +:1054A00000B128218CA4000097420104306300FF62
73341 +:1054B0003042FFFF00431021004710233C03FFFF51
73342 +:1054C000008320243042FFFF00822025ACA400008E
73343 +:1054D0009203000724020001106200060000000091
73344 +:1054E0002402000310620011000000000A0004EC16
73345 +:1054F0008E03001097420104920300049605000AEF
73346 +:105500008E24000C00431021004510212442FFF29C
73347 +:105510003C03FFFF008320243042FFFF0082202550
73348 +:10552000AE24000C0A0004EC8E0300109742010424
73349 +:10553000920300049605000A8E24001000431021F7
73350 +:10554000004510212442FFEE3C03FFFF008320248E
73351 +:105550003042FFFF00822025AE2400108E03001091
73352 +:105560002402000AA7420140A74301429603000A11
73353 +:10557000920200043C04004000431021A742014471
73354 +:10558000A740014697420104A742014824020001B6
73355 +:105590000E00020CA742014A0E0002350000000076
73356 +:1055A0008F6200009203000400002021AF820008F7
73357 +:1055B000974201049606000A3042FFFF006218215C
73358 +:1055C000006028213C0308008C6304443C0208006E
73359 +:1055D0008C42044000651821004410210065382BDE
73360 +:1055E000004710213C010800AC2304443C010800A2
73361 +:1055F000AC22044092040004008620212484000A86
73362 +:105600003084FFFF0E0001E9000000009744010410
73363 +:105610003084FFFF0E0001F7000000003C02100084
73364 +:10562000AF4201780A0005878F820020148200278C
73365 +:105630003062000697420104104000673C024000BF
73366 +:105640003062400010400005000000000000000033
73367 +:105650000000000D00000000240004208F420178AB
73368 +:105660000440FFFE24020800AF4201782402000833
73369 +:10567000A7420140A74001428F82000497430104E2
73370 +:1056800030420001104000073070FFFF2603FFFE8C
73371 +:1056900024020002A7420146A74301480A00053F31
73372 +:1056A0002402000DA74001462402000DA742014A32
73373 +:1056B0008F62000024040008AF8200080E0001E998
73374 +:1056C000000000000A0005190200202110400042DD
73375 +:1056D0003C02400093620000304300F024020010BE
73376 +:1056E0001062000524020070106200358F820020D5
73377 +:1056F0000A000588244200018F62000097430104DC
73378 +:105700003050FFFF3071FFFF8F4201780440FFFEF1
73379 +:105710003202000700021023304200072403000A6F
73380 +:105720002604FFFEA7430140A7420142A7440144CB
73381 +:10573000A7400146A75101488F420108304200208E
73382 +:10574000144000022403000924030001A743014A76
73383 +:105750000E00020C3C0400400E0002350000000068
73384 +:105760003C0708008CE70444021110212442FFFE8C
73385 +:105770003C0608008CC604400040182100E3382194
73386 +:10578000000010218F65000000E3402B00C2302193
73387 +:105790002604000800C830213084FFFFAF850008D0
73388 +:1057A0003C010800AC2704443C010800AC2604403E
73389 +:1057B0000E0001E9000000000A0005190220202166
73390 +:1057C0000E00013B000000008F82002024420001F7
73391 +:1057D000AF8200203C024000AF4201380A00029232
73392 +:1057E000000000003084FFFF30C6FFFF00052C00E2
73393 +:1057F00000A628253882FFFF004510210045282BF0
73394 +:105800000045102100021C023042FFFF004310211E
73395 +:1058100000021C023042FFFF004310213842FFFF0C
73396 +:1058200003E000083042FFFF3084FFFF30A5FFFF98
73397 +:1058300000001821108000070000000030820001E5
73398 +:105840001040000200042042006518210A0005A152
73399 +:105850000005284003E000080060102110C0000689
73400 +:1058600024C6FFFF8CA2000024A50004AC82000027
73401 +:105870000A0005AB2484000403E0000800000000D7
73402 +:1058800010A0000824A3FFFFAC8600000000000069
73403 +:10589000000000002402FFFF2463FFFF1462FFFAF0
73404 +:1058A0002484000403E00008000000000000000160
73405 +:1058B0000A00002A00000000000000000000000DA7
73406 +:1058C000747870362E322E3162000000060201001C
73407 +:1058D00000000000000001360000EA600000000047
73408 +:1058E00000000000000000000000000000000000B8
73409 +:1058F00000000000000000000000000000000000A8
73410 +:105900000000000000000000000000000000000097
73411 +:105910000000001600000000000000000000000071
73412 +:105920000000000000000000000000000000000077
73413 +:105930000000000000000000000000000000000067
73414 +:1059400000000000000000000000138800000000BC
73415 +:10595000000005DC00000000000000001000000353
73416 +:10596000000000000000000D0000000D3C020800D7
73417 +:1059700024423D683C0308002463401CAC40000006
73418 +:105980000043202B1480FFFD244200043C1D08002E
73419 +:1059900037BD7FFC03A0F0213C100800261000A8B2
73420 +:1059A0003C1C0800279C3D680E00044E00000000CF
73421 +:1059B0000000000D27BDFFB4AFA10000AFA200049E
73422 +:1059C000AFA30008AFA4000CAFA50010AFA6001451
73423 +:1059D000AFA70018AFA8001CAFA90020AFAA0024F1
73424 +:1059E000AFAB0028AFAC002CAFAD0030AFAE003491
73425 +:1059F000AFAF0038AFB8003CAFB90040AFBC004417
73426 +:105A0000AFBF00480E000591000000008FBF0048A6
73427 +:105A10008FBC00448FB900408FB8003C8FAF003876
73428 +:105A20008FAE00348FAD00308FAC002C8FAB0028D0
73429 +:105A30008FAA00248FA900208FA8001C8FA7001810
73430 +:105A40008FA600148FA500108FA4000C8FA3000850
73431 +:105A50008FA200048FA1000027BD004C3C1B6004F6
73432 +:105A60008F7A5030377B502803400008AF7A00000F
73433 +:105A70008F86003C3C0390003C0280000086282575
73434 +:105A800000A32025AC4400203C0380008C6700204C
73435 +:105A900004E0FFFE0000000003E00008000000003A
73436 +:105AA0000A000070240400018F85003C3C04800043
73437 +:105AB0003483000100A3102503E00008AC8200201D
73438 +:105AC00003E00008000010213084FFFF30A5FFFF35
73439 +:105AD00010800007000018213082000110400002F1
73440 +:105AE00000042042006518211480FFFB00052840B7
73441 +:105AF00003E000080060102110C000070000000053
73442 +:105B00008CA2000024C6FFFF24A50004AC82000084
73443 +:105B100014C0FFFB2484000403E000080000000020
73444 +:105B200010A0000824A3FFFFAC86000000000000C6
73445 +:105B3000000000002402FFFF2463FFFF1462FFFA4D
73446 +:105B40002484000403E000080000000090AA003153
73447 +:105B50008FAB00108CAC00403C0300FF8D6800044C
73448 +:105B6000AD6C00208CAD004400E060213462FFFF8A
73449 +:105B7000AD6D00248CA700483C09FF000109C0243A
73450 +:105B8000AD6700288CAE004C0182C824031978252B
73451 +:105B9000AD6F0004AD6E002C8CAD0038314A00FFB3
73452 +:105BA000AD6D001C94A900323128FFFFAD680010D4
73453 +:105BB00090A70030A5600002A1600004A16700006A
73454 +:105BC00090A30032306200FF0002198210600005CD
73455 +:105BD000240500011065000E0000000003E000082D
73456 +:105BE000A16A00018CD80028354A0080AD780018E1
73457 +:105BF0008CCF0014AD6F00148CCE0030AD6E000859
73458 +:105C00008CC4002CA16A000103E00008AD64000C04
73459 +:105C10008CCD001CAD6D00188CC90014AD6900144A
73460 +:105C20008CC80024AD6800088CC70020AD67000C4C
73461 +:105C30008CC200148C8300700043C82B1320000713
73462 +:105C4000000000008CC20014144CFFE400000000AF
73463 +:105C5000354A008003E00008A16A00018C820070D0
73464 +:105C60000A0000E6000000009089003027BDFFF820
73465 +:105C70008FA8001CA3A900008FA300003C0DFF808B
73466 +:105C800035A2FFFF8CAC002C00625824AFAB0000A3
73467 +:105C9000A100000400C05821A7A000028D06000446
73468 +:105CA00000A048210167C8218FA500000080502175
73469 +:105CB0003C18FF7F032C20263C0E00FF2C8C00019B
73470 +:105CC000370FFFFF35CDFFFF3C02FF0000AFC824B8
73471 +:105CD00000EDC02400C27824000C1DC003236825F9
73472 +:105CE00001F87025AD0D0000AD0E00048D240024D8
73473 +:105CF000AFAD0000AD0400088D2C00202404FFFF90
73474 +:105D0000AD0C000C9547003230E6FFFFAD060010E9
73475 +:105D10009145004830A200FF000219C25060000106
73476 +:105D20008D240034AD0400148D4700388FAA00186C
73477 +:105D300027BD0008AD0B0028AD0A0024AD07001CEC
73478 +:105D4000AD00002CAD00001803E00008AD000020FD
73479 +:105D500027BDFFE0AFB20018AFB10014AFB0001024
73480 +:105D6000AFBF001C9098003000C088213C0D00FFA0
73481 +:105D7000330F007FA0CF0000908E003135ACFFFFC5
73482 +:105D80003C0AFF00A0CE000194A6001EA220000441
73483 +:105D90008CAB00148E29000400A08021016C282403
73484 +:105DA000012A40240080902101052025A62600021A
73485 +:105DB000AE24000426050020262400080E000092D0
73486 +:105DC00024060002924700302605002826240014ED
73487 +:105DD00000071E000003160324060004044000030D
73488 +:105DE0002403FFFF965900323323FFFF0E00009279
73489 +:105DF000AE230010262400248FBF001C8FB2001891
73490 +:105E00008FB100148FB00010240500030000302172
73491 +:105E10000A00009C27BD002027BDFFD8AFB1001CA1
73492 +:105E2000AFB00018AFBF002090A9003024020001DD
73493 +:105E300000E050213123003F00A040218FB00040FE
73494 +:105E40000080882100C04821106200148FA700380C
73495 +:105E5000240B000500A0202100C02821106B001396
73496 +:105E6000020030210E000128000000009225007C75
73497 +:105E700030A400021080000326030030AE00003082
73498 +:105E8000260300348FBF00208FB1001C8FB0001894
73499 +:105E90000060102103E0000827BD00280E0000A7C5
73500 +:105EA000AFB000100A00016F000000008FA3003C9B
73501 +:105EB000010020210120282101403021AFA3001042
73502 +:105EC0000E0000EEAFB000140A00016F00000000E9
73503 +:105ED0003C06800034C20E008C4400108F850044C4
73504 +:105EE000ACA400208C43001803E00008ACA30024FD
73505 +:105EF0003C06800034C20E008C4400148F850044A0
73506 +:105F0000ACA400208C43001C03E00008ACA30024D8
73507 +:105F10009382000C1040001B2483000F2404FFF028
73508 +:105F20000064382410E00019978B00109784000E4D
73509 +:105F30009389000D3C0A601C0A0001AC01644023F7
73510 +:105F400001037021006428231126000231C2FFFFE3
73511 +:105F500030A2FFFF0047302B50C0000E00E4482164
73512 +:105F60008D4D000C31A3FFFF00036400000C2C03D7
73513 +:105F700004A1FFF30000302130637FFF0A0001A479
73514 +:105F80002406000103E00008000000009784000ED2
73515 +:105F900000E448213123FFFF3168FFFF0068382B00
73516 +:105FA00054E0FFF8A783000E938A000D114000050E
73517 +:105FB000240F0001006BC023A380000D03E0000844
73518 +:105FC000A798000E006BC023A38F000D03E000080C
73519 +:105FD000A798000E03E000080000000027BDFFE8BE
73520 +:105FE000AFB000103C10800036030140308BFFFF43
73521 +:105FF00093AA002BAFBF0014A46B000436040E005C
73522 +:106000009488001630C600FF8FA90030A4680006EF
73523 +:10601000AC650008A0660012A46A001AAC670020F4
73524 +:106020008FA5002CA4690018012020210E000198E2
73525 +:10603000AC6500143C021000AE0201788FBF001462
73526 +:106040008FB0001003E0000827BD00188F85000006
73527 +:106050002484000727BDFFF83084FFF83C06800049
73528 +:1060600094CB008A316AFFFFAFAA00008FA900001D
73529 +:10607000012540232507FFFF30E31FFF0064102B9D
73530 +:106080001440FFF700056882000D288034CC4000E2
73531 +:1060900000AC102103E0000827BD00088F8200003B
73532 +:1060A0002486000730C5FFF800A2182130641FFFC6
73533 +:1060B00003E00008AF8400008F87003C8F84004419
73534 +:1060C00027BDFFB0AFB70044AFB40038AFB1002C6C
73535 +:1060D000AFBF0048AFB60040AFB5003CAFB300342F
73536 +:1060E000AFB20030AFB000283C0B80008C8600249B
73537 +:1060F000AD6700808C8A002035670E00356901008D
73538 +:10610000ACEA00108C8800248D2500040000B82122
73539 +:10611000ACE800188CE3001000A688230000A02142
73540 +:10612000ACE300148CE20018ACE2001C122000FE6C
73541 +:1061300000E0B021936C0008118000F40000000022
73542 +:10614000976F001031EEFFFF022E682B15A000EFB5
73543 +:1061500000000000977200103250FFFFAED0000028
73544 +:106160003C0380008C740000329300081260FFFD35
73545 +:106170000000000096D800088EC700043305FFFF1A
73546 +:1061800030B5000112A000E4000000000000000D86
73547 +:1061900030BFA0402419004013F9011B30B4A00007
73548 +:1061A000128000DF000000009373000812600008F6
73549 +:1061B00000000000976D001031ACFFFF00EC202BB9
73550 +:1061C0001080000330AE004011C000D50000000078
73551 +:1061D000A7850040AF87003893630008022028217C
73552 +:1061E000AFB10020146000F527B40020AF60000CB0
73553 +:1061F000978F004031F14000162000022403001662
73554 +:106200002403000E24054007A363000AAF650014B1
73555 +:10621000938A00428F70001431550001001512401E
73556 +:1062200002024825AF690014979F00408F78001440
73557 +:1062300033F9001003194025AF680014979200400D
73558 +:106240003247000810E0016E000000008F67001464
73559 +:106250003C1210003C11800000F27825AF6F001452
73560 +:1062600036230E00946E000A3C0D81002406000EB9
73561 +:1062700031CCFFFF018D2025AF640004A36600022E
73562 +:106280009373000A3406FFFC266B0004A36B000A1C
73563 +:1062900097980040330820001100015F00000000C3
73564 +:1062A0003C05800034A90E00979900409538000CF9
73565 +:1062B00097870040001940423312C00031030003A9
73566 +:1062C00000127B0330F11000006F6825001172038B
73567 +:1062D00001AE6025000C20C0A76400129793004017
73568 +:1062E000936A000A001359823175003C02AA1021FA
73569 +:1062F0002450003CA3700009953F000C33F93FFF88
73570 +:10630000A779001097700012936900090130F821F5
73571 +:1063100027E5000230B900070019C0233308000741
73572 +:10632000A368000B9371000997720012976F001019
73573 +:10633000322700FF8F910038978D004000F218211E
73574 +:10634000006F702101C6602131A6004010C0000519
73575 +:106350003185FFFF00B1102B3C1280001040001768
73576 +:10636000000098210225A82B56A0013E8FA50020F1
73577 +:106370003C048000348A0E008D5300143C068000DB
73578 +:10638000AD5300108D4B001CAD4B0018AD45000007
73579 +:106390008CCD000031AC00081180FFFD34CE0E0022
73580 +:1063A00095C3000800A0882100009021A783004029
73581 +:1063B0008DC6000424130001AF860038976F0010CB
73582 +:1063C00031F5FFFF8E9F000003F1282310A0011F6D
73583 +:1063D000AE85000093620008144000DD000000005C
73584 +:1063E0000E0001E7240400108F900048004028218F
73585 +:1063F0003C023200320600FF000654000142F8253C
73586 +:1064000026090001AF890048ACBF0000937900095C
73587 +:1064100097780012936F000A332800FF3303FFFFC1
73588 +:106420000103382100076C0031EE00FF01AE60254A
73589 +:10643000ACAC00048F840048978B0040316A200088
73590 +:106440001140010AACA4000897640012308BFFFFD2
73591 +:1064500006400108ACAB000C978E004031C5000827
73592 +:1064600014A0000226280006262800023C1F8000F7
73593 +:1064700037E70E0094F900148CE5001C8F670004C8
73594 +:10648000937800023324FFFF330300FFAFA3001013
73595 +:106490008F6F0014AFA800180E0001CBAFAF00142F
73596 +:1064A000240400100E0001FB000000008E9200008A
73597 +:1064B00016400005000000008F7800142403FFBF81
73598 +:1064C0000303A024AF7400148F67000C00F5C821EB
73599 +:1064D000AF79000C9375000816A0000800000000BA
73600 +:1064E00012600006000000008F6800143C0AEFFFF5
73601 +:1064F0003549FFFE0109F824AF7F0014A37300089B
73602 +:106500008FA500200A00034F02202021AED10000F9
73603 +:106510000A00022D3C03800014E0FF1E30BFA040A3
73604 +:106520000E0001900000A0212E9100010237B0253D
73605 +:1065300012C000188FBF00488F87003C24170F003F
73606 +:1065400010F700D43C0680008CD901780720FFFEAC
73607 +:10655000241F0F0010FF00F634CA0E008D560014E1
73608 +:1065600034C7014024080240ACF600048D49001CE9
73609 +:106570003C141000ACE90008A0E00012A4E0001AEE
73610 +:10658000ACE00020A4E00018ACE80014ACD4017822
73611 +:106590008FBF00488FB700448FB600408FB5003CD6
73612 +:1065A0008FB400388FB300348FB200308FB1002C1D
73613 +:1065B0008FB0002803E0000827BD00508F910038FD
73614 +:1065C000978800403C1280000220A821310700403B
73615 +:1065D00014E0FF7C00009821977900108F9200381A
73616 +:1065E0003338FFFF131200A8000020210080A021F3
73617 +:1065F000108000F300A088211620FECE00000000CD
73618 +:106600000A00031F2E9100013C0380008C62017878
73619 +:106610000440FFFE240808008F860000AC68017863
73620 +:106620003C038000946D008A31ACFFFF0186582343
73621 +:10663000256AFFFF31441FFF2C8900081520FFF950
73622 +:10664000000000008F8F0048347040008F83003CB2
73623 +:1066500000E0A021240E0F0025E70001AF870048CD
73624 +:1066600000D03021023488233C08800031F500FF3F
73625 +:10667000106E0005240700019398004233130001B7
73626 +:106680000013924036470001001524003C0A010027
73627 +:10669000008A4825ACC900008F82004830BF003610
73628 +:1066A00030B90008ACC200041320009900FF9825FF
73629 +:1066B00035120E009650000A8F8700003C0F8100B3
73630 +:1066C0003203FFFF24ED000835060140006F60250E
73631 +:1066D0003C0E100031AB1FFF269200062405000E71
73632 +:1066E000ACCC0020026E9825A4C5001AAF8B000028
73633 +:1066F000A4D20018162000083C1080008F89003CAE
73634 +:1067000024020F00512200022417000136730040BA
73635 +:106710000E0001883C10800036060E008CCB001461
73636 +:10672000360A014002402021AD4B00048CC5001CFC
73637 +:10673000AD450008A1550012AD5300140E0001989C
73638 +:106740003C151000AE1501780A000352000000004D
73639 +:10675000936F0009976E0012936D000B31E500FFF7
73640 +:1067600000AE202131AC00FF008C80212602000AFF
73641 +:106770003050FFFF0E0001E7020020218F86004805
73642 +:106780003C0341003C05800024CB0001AF8B004856
73643 +:10679000936A00099769001230C600FF315F00FF5D
73644 +:1067A0003128FFFF03E8382124F900020006C40065
73645 +:1067B0000319782501E37025AC4E00008F6D000CA5
73646 +:1067C00034A40E00948B001401B26025AC4C00047C
73647 +:1067D0008C85001C8F670004936A00023164FFFF00
73648 +:1067E000314900FFAFA900108F680014AFB1001845
73649 +:1067F0000E0001CBAFA800140A0002FD0200202108
73650 +:10680000AF600004A36000029798004033082000A6
73651 +:106810001500FEA300003021A760001297840040FD
73652 +:10682000936B000A3C10800030931F0000135183CB
73653 +:10683000014BA82126A20028A362000936090E00F8
73654 +:10684000953F000C0A000295A77F00108F7000147E
73655 +:10685000360900400E000188AF6900140A0002C921
73656 +:10686000000000000A00034F000020210641FEFA4C
73657 +:10687000ACA0000C8CAC000C3C0D8000018D902570
73658 +:106880000A0002EAACB2000C000090210A0002C526
73659 +:1068900024130001128000073C028000344B0E00DC
73660 +:1068A0009566000830D300401260004900000000E7
73661 +:1068B0003C0680008CD001780600FFFE34C50E0037
73662 +:1068C00094B500103C03050034CC014032B8FFFF02
73663 +:1068D00003039025AD92000C8CAF0014240D200012
73664 +:1068E0003C041000AD8F00048CAE001CAD8E00087F
73665 +:1068F000A1800012A580001AAD800020A58000189C
73666 +:10690000AD8D0014ACC401780A0003263C0680005B
73667 +:106910008F9F0000351801402692000227F90008D9
73668 +:1069200033281FFFA71200180A000391AF88000048
73669 +:106930003C02800034450140ACA0000C1280001BDA
73670 +:1069400034530E0034510E008E370010ACB70004E3
73671 +:106950008E2400183C0B8000ACA400083570014068
73672 +:1069600024040040A20000128FBF0048A600001AB5
73673 +:106970008FB70044AE0000208FB60040A60000187C
73674 +:106980008FB5003CAE0400148FB400388FB30034D0
73675 +:106990008FB200308FB1002C8FB000283C02100065
73676 +:1069A00027BD005003E00008AD6201788E66001438
73677 +:1069B000ACA600048E64001C0A00042A3C0B800074
73678 +:1069C0000E0001902E9100010A0003200237B0252D
73679 +:1069D000000000000000000D00000000240003691A
73680 +:1069E0000A0004013C06800027BDFFD8AFBF00208D
73681 +:1069F0003C0980003C1F20FFAFB200183C0760003C
73682 +:106A000035320E002402001037F9FFFDACE23008E9
73683 +:106A1000AFB3001CAFB10014AFB00010AE5900000E
73684 +:106A20000000000000000000000000000000000066
73685 +:106A3000000000003C1800FF3713FFFDAE530000BC
73686 +:106A40003C0B60048D7050002411FF7F3C0E00024F
73687 +:106A50000211782435EC380C35CD0109ACED4C1819
73688 +:106A6000240A0009AD6C50008CE80438AD2A0008F7
73689 +:106A7000AD2000148CE54C1C3106FFFF38C42F718B
73690 +:106A800000051E023062000F2486C0B310400007CC
73691 +:106A9000AF8200088CE54C1C3C09001F3528FC0027
73692 +:106AA00000A81824000321C2AF8400048CF1080858
73693 +:106AB0003C0F57092412F0000232702435F0001008
73694 +:106AC00001D0602601CF68262DAA00012D8B000180
73695 +:106AD000014B382550E00009A380000C3C1F601CCE
73696 +:106AE0008FF8000824190001A399000C33137C00CF
73697 +:106AF000A7930010A780000EA380000DAF80004870
73698 +:106B000014C00003AF8000003C066000ACC0442C01
73699 +:106B10000E0005B93C1080000E000F1A361101005E
73700 +:106B20003C12080026523DD03C13080026733E500C
73701 +:106B30008E03000038640001308200011440FFFC25
73702 +:106B40003C0B800A8E2600002407FF8024C90240E7
73703 +:106B5000312A007F014B402101272824AE06002066
73704 +:106B6000AF880044AE0500243C048000AF86003CA2
73705 +:106B70008C8C01780580FFFE24180800922F0008F5
73706 +:106B8000AC980178A38F0042938E004231CD000172
73707 +:106B900011A0000F24050D0024DFF8002FF90301D8
73708 +:106BA0001320001C000629C224A4FFF00004104298
73709 +:106BB000000231400E00020200D2D8213C02400007
73710 +:106BC0003C068000ACC201380A0004A000000000AE
73711 +:106BD00010C50023240D0F0010CD00273C1F800896
73712 +:106BE00037F9008093380000240E0050330F00FF67
73713 +:106BF00015EEFFF33C0240000E000A3600000000D4
73714 +:106C00003C0240003C068000ACC201380A0004A0EF
73715 +:106C1000000000008F83000400A3402B1500000B30
73716 +:106C20008F8B0008006B50212547FFFF00E5482BA4
73717 +:106C30001520000600A36023000C19400E0002027C
73718 +:106C40000073D8210A0004C43C0240000000000D7B
73719 +:106C50000E000202000000000A0004C43C024000D2
73720 +:106C60003C1B0800277B3F500E0002020000000082
73721 +:106C70000A0004C43C0240003C1B0800277B3F7014
73722 +:106C80000E000202000000000A0004C43C024000A2
73723 +:106C90003C0660043C09080025290104ACC9502CBD
73724 +:106CA0008CC850003C0580003C0200023507008083
73725 +:106CB000ACC750003C040800248415A43C03080021
73726 +:106CC0002463155CACA50008ACA2000C3C010800D4
73727 +:106CD000AC243D603C010800AC233D6403E00008A7
73728 +:106CE0002402000100A030213C1C0800279C3D68C4
73729 +:106CF0003C0C04003C0B0002008B3826008C402624
73730 +:106D00002CE200010007502B2D050001000A4880ED
73731 +:106D10003C03080024633D60004520250123182121
73732 +:106D20001080000300001021AC6600002402000166
73733 +:106D300003E00008000000003C1C0800279C3D68A0
73734 +:106D40003C0B04003C0A0002008A3026008B3826E7
73735 +:106D50002CC200010006482B2CE5000100094080F0
73736 +:106D60003C03080024633D600045202501031821F1
73737 +:106D700010800005000010213C0C0800258C155CDB
73738 +:106D8000AC6C00002402000103E0000800000000D9
73739 +:106D90003C0900023C08040000883026008938269F
73740 +:106DA0002CC30001008028212CE400010083102561
73741 +:106DB0001040000B000030213C1C0800279C3D685F
73742 +:106DC0003C0A80008D4E00082406000101CA682597
73743 +:106DD000AD4D00088D4C000C01855825AD4B000CC5
73744 +:106DE00003E0000800C010213C1C0800279C3D68FF
73745 +:106DF0003C0580008CA6000C000420272402000122
73746 +:106E000000C4182403E00008ACA3000C3C020002FC
73747 +:106E10001082000B3C0560003C0704001087000353
73748 +:106E20000000000003E00008000000008CA908D06A
73749 +:106E3000240AFFFD012A402403E00008ACA808D082
73750 +:106E40008CA408D02406FFFE0086182403E0000866
73751 +:106E5000ACA308D03C05601A34A600108CC3008097
73752 +:106E600027BDFFF88CC50084AFA3000093A40000E9
73753 +:106E70002402000110820003AFA5000403E0000813
73754 +:106E800027BD000893A7000114E0001497AC00028E
73755 +:106E900097B800023C0F8000330EFFFC01CF682141
73756 +:106EA000ADA50000A3A000003C0660008CC708D080
73757 +:106EB0002408FFFE3C04601A00E82824ACC508D072
73758 +:106EC0008FA300048FA200003499001027BD000892
73759 +:106ED000AF22008003E00008AF2300843C0B800059
73760 +:106EE000318AFFFC014B48218D2800000A00057DF6
73761 +:106EF000AFA8000427BDFFE8AFBF00103C1C08008E
73762 +:106F0000279C3D683C0580008CA4000C8CA20004EA
73763 +:106F10003C0300020044282410A0000A00A3182407
73764 +:106F20003C0604003C0400021460000900A6102482
73765 +:106F30001440000F3C0404000000000D3C1C08003D
73766 +:106F4000279C3D688FBF001003E0000827BD001894
73767 +:106F50003C0208008C423D600040F809000000003F
73768 +:106F60003C1C0800279C3D680A0005A68FBF001046
73769 +:106F70003C0208008C423D640040F809000000001B
73770 +:106F80000A0005AC00000000000411C003E0000886
73771 +:106F9000244202403C04080024843FB42405001A23
73772 +:106FA0000A00009C0000302127BDFFE0AFB00010B8
73773 +:106FB0003C108000AFBF0018AFB1001436110100C3
73774 +:106FC000922200090E0005B63044007F8E3F00007B
73775 +:106FD0008F89003C3C0F008003E26021258800403F
73776 +:106FE0000049F821240DFF80310E00783198007897
73777 +:106FF00035F9000135F100020319382501D1482582
73778 +:10700000010D302403ED5824018D2824240A00406A
73779 +:1070100024040080240300C0AE0B0024AE0008103E
73780 +:10702000AE0A0814AE040818AE03081CAE05080426
73781 +:10703000AE070820AE060808AE0908243609090084
73782 +:107040009539000C3605098033ED007F3338FFFF9A
73783 +:10705000001889C0AE110800AE0F0828952C000C4E
73784 +:107060008FBF00188FB10014318BFFFF000B51C090
73785 +:10707000AE0A002C8CA400508FB000108CA3003CF2
73786 +:107080008D2700048CA8001C8CA600383C0E800ABA
73787 +:1070900001AE102127BD0020AF820044AF84005014
73788 +:1070A000AF830054AF87004CAF88005C03E000085A
73789 +:1070B000AF8600603C09080091293FD924A800024E
73790 +:1070C0003C05110000093C0000E8302500C51825EA
73791 +:1070D00024820008AC83000003E00008AC800004B8
73792 +:1070E0003C098000352309009128010B906A0011AA
73793 +:1070F0002402002800804821314700FF00A07021B1
73794 +:1071000000C068213108004010E20002340C86DD26
73795 +:10711000240C08003C0A800035420A9A944700007B
73796 +:10712000354B0A9C35460AA030F9FFFFAD39000007
73797 +:107130008D780000354B0A8024040001AD3800042E
73798 +:107140008CCF0000AD2F00089165001930A300031B
73799 +:107150001064009028640002148000AF240500022F
73800 +:107160001065009E240F0003106F00B435450AA47B
73801 +:10717000240A0800118A0048000000005100003D68
73802 +:107180003C0B80003C0480003483090090670012AF
73803 +:1071900030E200FF004D7821000FC8802724000155
73804 +:1071A0003C0A8000354F090091E50019354C0980F3
73805 +:1071B0008D87002830A300FF0003150000475825E5
73806 +:1071C0000004C4003C19600001793025370806FF2F
73807 +:1071D000AD260000AD2800048DEA002C25280028EB
73808 +:1071E000AD2A00088DEC0030AD2C000C8DE500348C
73809 +:1071F000AD2500108DE400383C05800034AC093C1E
73810 +:10720000AD2400148DE3001CAD2300188DE7002091
73811 +:10721000AD27001C8DE20024AD2200208DF900284E
73812 +:1072200034A20100AD3900248D830000AD0E0004AE
73813 +:1072300034B90900AD0300008C47000C250200148E
73814 +:10724000AD070008932B00123C04080090843FD83F
73815 +:10725000AD000010317800FF030D302100064F0013
73816 +:1072600000047C00012F702535CDFFFC03E00008F1
73817 +:10727000AD0D000C35780900930600123C0508009E
73818 +:1072800094A53FC830C800FF010D5021000A60805E
73819 +:107290000A00063C018520211500005B000000006B
73820 +:1072A0003C08080095083FCE3C06080094C63FC83D
73821 +:1072B000010610213C0B800035790900933800113C
73822 +:1072C000932A001935660A80330800FF94CF002AFC
73823 +:1072D00000086082314500FF978A0058000C1E00AC
73824 +:1072E000000524003047FFFF006410250047C0253B
73825 +:1072F00001EA30213C0B4000030B402500066400EE
73826 +:10730000AD280000AD2C0004932500183C030006B6
73827 +:107310002528001400053E0000E31025AD220008DA
73828 +:107320008F24002C3C05800034AC093CAD24000CBB
73829 +:107330008F38001C34A20100254F0001AD38001029
73830 +:107340008D830000AD0E000431EB7FFFAD03000024
73831 +:107350008C47000C34B90900A78B0058AD07000812
73832 +:10736000932B00123C04080090843FD8250200149F
73833 +:10737000317800FF030D302100064F0000047C002F
73834 +:10738000012F702535CDFFFCAD00001003E0000893
73835 +:10739000AD0D000C3C02080094423FD23C050800B1
73836 +:1073A00094A53FC835440AA43C07080094E73FC4AD
73837 +:1073B000948B00000045C8210327C023000B1C004C
73838 +:1073C0002706FFF200665025AD2A000CAD20001004
73839 +:1073D000AD2C00140A00063025290018354F0AA4E8
73840 +:1073E00095E50000956400280005140000043C00A9
73841 +:1073F0003459810000EC5825AD39000CAD2B00103C
73842 +:107400000A000630252900143C0C0800958C3FCE5C
73843 +:107410000A000681258200015460FF56240A0800F4
73844 +:1074200035580AA49706000000061C00006C502581
73845 +:10743000AD2A000C0A000630252900103C03080084
73846 +:1074400094633FD23C07080094E73FC83C0F080014
73847 +:1074500095EF3FC494A4000095790028006710219F
73848 +:10746000004F582300041C00001934002578FFEE5B
73849 +:1074700000D87825346A8100AD2A000CAD2F0010A9
73850 +:10748000AD200014AD2C00180A0006302529001C80
73851 +:1074900003E00008240207D027BDFFE0AFB20018C8
73852 +:1074A000AFB10014AFB00010AFBF001C0E00007CE5
73853 +:1074B000008088218F8800548F87004C3C0580080D
73854 +:1074C00034B20080011128213C1080002402008089
73855 +:1074D000240300C000A72023AE0208183C06800841
73856 +:1074E000AE03081C18800004AF850054ACC500042E
73857 +:1074F0008CC90004AF89004C1220000936040980B1
73858 +:107500000E0006F800000000924C00278E0B00745D
73859 +:1075100001825004014B3021AE46000C3604098034
73860 +:107520008C8E001C8F8F005C01CF682319A0000493
73861 +:107530008FBF001C8C90001CAF90005C8FBF001CA4
73862 +:107540008FB200188FB100148FB000100A00007EB7
73863 +:1075500027BD00208F8600508F8300548F82004CFF
73864 +:107560003C05800834A40080AC860050AC83003C0D
73865 +:1075700003E00008ACA200043C0308008C63005444
73866 +:1075800027BDFFF8308400FF2462000130A500FF12
73867 +:107590003C010800AC22005430C600FF3C078000CC
73868 +:1075A0008CE801780500FFFE3C0C7FFFA3A40003DC
73869 +:1075B0008FAA0000358BFFFF014B4824000627C02F
73870 +:1075C00001244025AFA8000034E201009043000AE6
73871 +:1075D000A3A000023C1980FFA3A300018FAF00000D
73872 +:1075E00030AE007F3738FFFF01F86024000E6E00D8
73873 +:1075F0003C0A002034E50140018D58253549200022
73874 +:107600002406FF803C04100027BD0008ACAB000C32
73875 +:10761000ACA90014A4A00018A0A6001203E0000862
73876 +:10762000ACE40178308800FF30A700FF3C03800005
73877 +:107630008C6201780440FFFE3C0C8000358A0A0011
73878 +:107640008D4B00203584014035850980AC8B0004CA
73879 +:107650008D4900240007302B00061540AC89000836
73880 +:10766000A088001090A3004CA083002D03E0000828
73881 +:10767000A480001827BDFFE8308400FFAFBF0010D2
73882 +:107680000E00075D30A500FF8F8300548FBF0010F0
73883 +:107690003C06800034C50140344700402404FF907C
73884 +:1076A0003C02100027BD0018ACA3000CA0A40012DF
73885 +:1076B000ACA7001403E00008ACC2017827BDFFE0CE
73886 +:1076C0003C088008AFBF001CAFB20018AFB1001477
73887 +:1076D000AFB00010351000808E0600183C07800007
73888 +:1076E000309200FF00C72025AE0400180E00007C79
73889 +:1076F00030B100FF92030005346200080E00007EE6
73890 +:10770000A2020005024020210E000771022028215C
73891 +:10771000024020218FBF001C8FB200188FB10014CF
73892 +:107720008FB0001024050005240600010A0007326E
73893 +:1077300027BD00203C05800034A309809066000826
73894 +:1077400030C200081040000F3C0A01013549080A08
73895 +:10775000AC8900008CA80074AC8800043C070800C9
73896 +:1077600090E73FD830E5001050A00008AC8000083A
73897 +:107770003C0D800835AC00808D8B0058AC8B000828
73898 +:107780002484000C03E00008008010210A0007B5E3
73899 +:107790002484000C27BDFFE83C098000AFB0001036
73900 +:1077A000AFBF00143526098090C8000924020006E6
73901 +:1077B00000A05821310300FF3527090000808021F7
73902 +:1077C000240500041062007B2408000294CF005CB2
73903 +:1077D0003C0E020431EDFFFF01AE6025AE0C00004F
73904 +:1077E00090CA00083144002010800008000000000A
73905 +:1077F00090C2004E3C1F010337F90300305800FFD0
73906 +:107800000319302524050008AE06000490F9001184
73907 +:1078100090E6001290E40011333800FF00187082E7
73908 +:1078200030CF00FF01CF5021014B6821308900FF8C
73909 +:1078300031AAFFFF39230028000A60801460002C61
73910 +:10784000020C482390E400123C198000372F0100FD
73911 +:10785000308C00FF018B1821000310800045F821B7
73912 +:10786000001F8400360706FFAD270004373F0900DC
73913 +:1078700093EC001193EE0012372609800005C082B8
73914 +:107880008DE4000C8CC5003431CD00FF01AB10211C
73915 +:107890000058182100A4F8230008840000033F00CA
73916 +:1078A00000F0302533F9FFFF318F00FC00D970253F
73917 +:1078B0000158202101E9682100045080ADAE000C80
73918 +:1078C0000E00007C012A80213C088008240B000463
73919 +:1078D000350500800E00007EA0AB000902001021DB
73920 +:1078E0008FBF00148FB0001003E0000827BD001800
73921 +:1078F00090EC001190E300193C18080097183FCE57
73922 +:10790000318200FF0002F882307000FF001FCE00BD
73923 +:1079100000103C000327302500D870253C0F4000A4
73924 +:1079200001CF68253C198000AD2D0000373F0900CC
73925 +:1079300093EC001193EE0012372F010037260980D7
73926 +:107940000005C0828DE4000C8CC5003431CD00FFF1
73927 +:1079500001AB10210058182100A4F823000884006E
73928 +:1079600000033F0000F0302533F9FFFF318F00FCAA
73929 +:1079700000D970250158202101E9682100045080B8
73930 +:10798000ADAE000C0E00007C012A80213C0880086E
73931 +:10799000240B0004350500800E00007EA0AB00091A
73932 +:1079A000020010218FBF00148FB0001003E0000808
73933 +:1079B00027BD00180A0007C72408001227BDFFD002
73934 +:1079C0003C038000AFB60028AFB50024AFB4002060
73935 +:1079D000AFB10014AFBF002CAFB3001CAFB20018A2
73936 +:1079E000AFB000103467010090E6000B309400FF48
73937 +:1079F00030B500FF30C200300000B02110400099C7
73938 +:107A000000008821346409809088000800082E0056
73939 +:107A100000051E03046000C0240400048F86005487
73940 +:107A20003C010800A0243FD83C0C8000AD800048F9
73941 +:107A30003C048000348E010091CD000B31A5002064
73942 +:107A400010A000073C078000349309809272000860
73943 +:107A50000012860000107E0305E000C43C1F800871
73944 +:107A600034EC0100918A000B34EB09809169000825
73945 +:107A7000314400400004402B3123000800C8982303
73946 +:107A80001460000224120003000090213C108000CA
73947 +:107A900036180A8036040900970E002C90830011D6
73948 +:107AA0009089001293050018307F00FF312800FFF5
73949 +:107AB000024810210002C880930D0018033F78216E
73950 +:107AC00001F1302130B100FF00D11821A78E0058FC
73951 +:107AD0003C010800A4263FCE3C010800A4233FD06F
73952 +:107AE00015A00002000000000000000D920B010B29
73953 +:107AF0003065FFFF3C010800A4233FD2316A0040FB
73954 +:107B00003C010800A4203FC83C010800A4203FC459
73955 +:107B10001140000224A4000A24A4000B3091FFFFAE
73956 +:107B20000E0001E7022020219206010B3C0C080008
73957 +:107B3000958C3FD2004020210006698231A70001C8
73958 +:107B40000E00060101872821004020210260282123
73959 +:107B50000E00060C024030210E0007A1004020213B
73960 +:107B600016C00069004020219212010B32560040DD
73961 +:107B700012C000053C0500FF8C93000034AEFFFFEF
73962 +:107B8000026E8024AC9000000E0001FB0220202138
73963 +:107B90003C0F080091EF3FD831F10003122000168E
73964 +:107BA0003C1380088F8200543C09800835280080EF
73965 +:107BB000245F0001AD1F003C3C0580088CB9000427
73966 +:107BC00003E02021033FC0231B000002AF9F0054AD
73967 +:107BD0008CA400040E0006F8ACA400043C0780004E
73968 +:107BE0008CEB00743C04800834830080004B5021EF
73969 +:107BF000AC6A000C3C1380083670008002802021A3
73970 +:107C000002A02821A200006B0E00075D3C1480003A
73971 +:107C10008F920054368C0140AD92000C8F86004844
73972 +:107C20003C151000344D000624D60001AF960048E4
73973 +:107C30008FBF002CA18600128FB60028AD8D0014D6
73974 +:107C40008FB3001CAE9501788FB200188FB5002459
73975 +:107C50008FB400208FB100148FB0001003E0000833
73976 +:107C600027BD003034640980908F0008000F760033
73977 +:107C7000000E6E0305A00033347F090093F8001B4B
73978 +:107C8000241900103C010800A0393FD8331300022A
73979 +:107C90001260FF678F8600548F8200601446FF6574
73980 +:107CA0003C0480000E00007C000000003C048008C2
73981 +:107CB0003485008090A8000924060016310300FFD7
73982 +:107CC0001066000D0000000090AB00093C070800A2
73983 +:107CD00090E73FD824090008316400FF34EA00012E
73984 +:107CE0003C010800A02A3FD81089002F240C000A6C
73985 +:107CF000108C00282402000C0E00007E0000000002
73986 +:107D00000A0008608F8600540E0007B9024028213F
73987 +:107D10000A0008AE004020213C0B8008356A008034
73988 +:107D20008D4600548CE9000C1120FF3DAF860054B5
73989 +:107D3000240700143C010800A0273FD80A00085F70
73990 +:107D40003C0C800090910008241200023C010800C5
73991 +:107D5000A0323FD8323000201200000B2416000160
73992 +:107D60008F8600540A0008602411000837F800804C
73993 +:107D70008F020038AFE200048FF90004AF19003C15
73994 +:107D80000A00086C3C0780008F8600540A000860D7
73995 +:107D900024110004A0A200090E00007E00000000D3
73996 +:107DA0000A0008608F860054240200140A00093A71
73997 +:107DB000A0A2000927BDFFE8AFB000103C10800072
73998 +:107DC000AFBF001436020100904400090E00075DA9
73999 +:107DD000240500013C0480089099000E3483008043
74000 +:107DE000909F000F906F00269089000A33F800FFE3
74001 +:107DF00000196E000018740031EC00FF01AE502530
74002 +:107E0000000C5A00014B3825312800FF3603014091
74003 +:107E10003445600000E830252402FF813C04100056
74004 +:107E2000AC66000C8FBF0014AC650014A062001299
74005 +:107E3000AE0401788FB0001003E0000827BD0018E1
74006 +:107E400027BDFFE8308400FFAFBF00100E00075DC4
74007 +:107E500030A500FF3C05800034A4014034470040B9
74008 +:107E60002406FF92AC870014A08600128F83005472
74009 +:107E70008FBF00103C02100027BD0018AC83000C1F
74010 +:107E800003E00008ACA2017827BDFFD8AFB0001016
74011 +:107E9000308400FF30B000FF3C058000AFB100141B
74012 +:107EA000AFBF0020AFB3001CAFB20018000410C277
74013 +:107EB00034A60100320300023051000114600007B3
74014 +:107EC00090D200093C098008353300809268000593
74015 +:107ED0003107000810E0000C308A00100240202119
74016 +:107EE0000E00078302202821240200018FBF0020FA
74017 +:107EF0008FB3001C8FB200188FB100148FB0001028
74018 +:107F000003E0000827BD00281540003434A50A000E
74019 +:107F10008CB800248CAF0008130F004B00003821F0
74020 +:107F20003C0D800835B30080926C00682406000286
74021 +:107F3000318B00FF116600843C06800034C20100D2
74022 +:107F40009263004C90590009307F00FF53F9000400
74023 +:107F50003213007C10E00069000000003213007C46
74024 +:107F60005660005C0240202116200009320D0001FD
74025 +:107F70003C0C800035840100358B0A008D6500249F
74026 +:107F80008C86000414A6FFD900001021320D0001D8
74027 +:107F900011A0000E024020213C1880003710010083
74028 +:107FA0008E0F000C8F8E005011EE000800000000B4
74029 +:107FB0000E000843022028218E19000C3C1F800867
74030 +:107FC00037F00080AE190050024020210E000771EA
74031 +:107FD000022028210A00098F240200013C05080024
74032 +:107FE0008CA5006424A400013C010800AC240064BA
74033 +:107FF0001600000D00000000022028210E0007716D
74034 +:1080000002402021926E0068240C000231CD00FF56
74035 +:1080100011AC0022024020210E00094100000000A6
74036 +:108020000A00098F240200010E00007024040001E0
74037 +:10803000926B0025020B30250E00007EA266002503
74038 +:108040000A0009D3022028218E6200188CDF000468
74039 +:108050008CB9002400021E0217F9FFB13065007FC1
74040 +:108060009268004C264400013093007F1265004066
74041 +:10807000310300FF1464FFAB3C0D8008264700016C
74042 +:1080800030F1007F30E200FF1225000B24070001D1
74043 +:10809000004090210A00099C2411000124050004DD
74044 +:1080A0000E000732240600010E0009410000000006
74045 +:1080B0000A00098F240200012405FF8002452024C4
74046 +:1080C00000859026324200FF004090210A00099C62
74047 +:1080D000241100010E00084302202821320700303D
74048 +:1080E00010E0FFA132100082024020210E00078321
74049 +:1080F000022028210A00098F240200018E6900183D
74050 +:108100000240202102202821012640250E0009647A
74051 +:10811000AE6800189264004C240500032406000198
74052 +:108120000E000732308400FF0E00007024040001AE
74053 +:1081300092710025021150250E00007EA26A0025D2
74054 +:108140000A00098F240200018E6F00183C1880007D
74055 +:108150000240202101F87025022028210E0007711D
74056 +:10816000AE6E00189264004C0A000A1B240500043D
74057 +:10817000324A0080394900801469FF6A3C0D80084A
74058 +:108180000A0009F42647000127BDFFC0AFB0001860
74059 +:108190003C108000AFBF0038AFB70034AFB600303E
74060 +:1081A000AFB5002CAFB40028AFB30024AFB20020AD
74061 +:1081B0000E0005BEAFB1001C360201009045000B59
74062 +:1081C0000E00097690440008144000E78FBF003885
74063 +:1081D0003C08800835070080A0E0006B3606098067
74064 +:1081E00090C50000240300503C17080026F73F907C
74065 +:1081F00030A400FF3C13080026733FA01083000347
74066 +:108200003C1080000000B82100009821241F0010BD
74067 +:108210003611010036120A00361509808E580024E6
74068 +:108220008E3400048EAF00208F8C00543C01080077
74069 +:10823000A03F3FD836190A80972B002C8EF60000FD
74070 +:10824000932A00180298702301EC68233C0108006F
74071 +:10825000AC2E3FB43C010800AC2D3FB83C010800F7
74072 +:10826000AC2C3FDCA78B005802C0F809315400FF4A
74073 +:1082700030490002152000E930420001504000C49E
74074 +:108280009227000992A90008312800081500000271
74075 +:10829000241500030000A8213C0A80003543090092
74076 +:1082A00035440A008C8D00249072001190700012E9
74077 +:1082B000907F0011325900FF321100FF02B11021EE
74078 +:1082C0000002C08033EF00FF0319B021028F70213C
74079 +:1082D00002D4602125CB00103C010800A4363FCE1B
74080 +:1082E0003C010800AC2D3FE03C010800A42C3FD02D
74081 +:1082F0003C010800A42B3FCC3556010035540980C1
74082 +:1083000035510E008F8700548F89005C8E850020C8
74083 +:1083100024080006012730233C010800AC283FD484
74084 +:1083200000A7282304C000B50000902104A000B3DA
74085 +:1083300000C5502B114000B5000000003C010800B2
74086 +:10834000AC263FB88E6200000040F8090000000033
74087 +:108350003046000214C0007400408021304B000100
74088 +:10836000556000118E6200043C0D08008DAD3FBCCD
74089 +:108370003C0EC0003C04800001AE6025AE2C000025
74090 +:108380008C980000330F000811E0FFFD0000000092
74091 +:10839000963F000824120001A79F00408E39000478
74092 +:1083A000AF9900388E6200040040F8090000000018
74093 +:1083B0000202802532030002146000B300000000B6
74094 +:1083C0003C09080095293FC43C06080094C63FD0EC
74095 +:1083D0003C0A0800954A3FC63C0708008CE73FBCB2
74096 +:1083E000012670213C0308008C633FE03C08080034
74097 +:1083F00095083FDA01CA20218ED9000C00E9282116
74098 +:10840000249F000200A878210067C02133E4FFFF09
74099 +:10841000AF9900503C010800AC383FE03C01080037
74100 +:10842000A42F3FC83C010800A42E3FD20E0001E754
74101 +:10843000000000008F8D0048004020213C01080012
74102 +:10844000A02D3FD98E62000825AC0001AF8C0048FA
74103 +:108450000040F809000000008F85005402A0302180
74104 +:108460000E00060C004020210E0007A10040202134
74105 +:108470008E6B000C0160F809004020213C0A0800C6
74106 +:10848000954A3FD23C06080094C63FC601464821A3
74107 +:10849000252800020E0001FB3104FFFF3C05080007
74108 +:1084A0008CA53FB43C0708008CE73FBC00A7202305
74109 +:1084B0003C010800AC243FB414800006000000001A
74110 +:1084C0003C0208008C423FD4344B00403C01080081
74111 +:1084D000AC2B3FD4124000438F8E00448E2D0010F1
74112 +:1084E0008F920044AE4D00208E2C0018AE4C00241C
74113 +:1084F0003C04080094843FC80E0006FA0000000007
74114 +:108500008F9F00548E6700103C010800AC3F3FDC99
74115 +:1085100000E0F809000000003C1908008F393FB462
74116 +:108520001720FF798F870054979300583C11800ED5
74117 +:10853000321601000E000729A633002C16C0004594
74118 +:10854000320300105460004C8EE5000432080040F5
74119 +:108550005500001D8EF000088EE4000C0080F80924
74120 +:10856000000000008FBF00388FB700348FB6003096
74121 +:108570008FB5002C8FB400288FB300248FB2002059
74122 +:108580008FB1001C8FB0001803E0000827BD004029
74123 +:108590008F86003C36110E0000072E0000A6202515
74124 +:1085A000AE0400808E4300208E500024AFA3001044
74125 +:1085B000AE2300148FB20010AE320010AE30001C9B
74126 +:1085C0000A000A75AE3000180200F8090000000029
74127 +:1085D0008EE4000C0080F809000000000A000B2E59
74128 +:1085E0008FBF003824180001240F0001A5C000200F
74129 +:1085F000A5D800220A000B10ADCF00243C010800D2
74130 +:10860000AC203FB80A000AA68E6200003C010800B8
74131 +:10861000AC253FB80A000AA68E6200009224000929
74132 +:108620000E000771000028218FBF00388FB700347B
74133 +:108630008FB600308FB5002C8FB400288FB3002484
74134 +:108640008FB200208FB1001C8FB0001803E000082B
74135 +:1086500027BD00403C1480009295010900002821AC
74136 +:108660000E00084332A400FF320300105060FFB830
74137 +:10867000320800408EE5000400A0F8090000000068
74138 +:108680000A000B28320800405240FFA89793005878
74139 +:108690008E3400148F930044AE7400208E35001C7D
74140 +:1086A000AE7500240A000B1F979300588F820014A8
74141 +:1086B0000004218003E00008008210213C078008AC
74142 +:1086C00034E200809043006900804021106000097E
74143 +:1086D0003C0401003C0708008CE73FDC8F8300303E
74144 +:1086E00000E32023048000089389001C14E30003A6
74145 +:1086F0000100202103E00008008010213C0401005B
74146 +:1087000003E00008008010211120000B00673823CF
74147 +:108710003C0D800035AC0980918B007C316A0002F1
74148 +:10872000114000202409003400E9702B15C0FFF12E
74149 +:108730000100202100E938232403FFFC00A3C82402
74150 +:1087400000E3C02400F9782B15E0FFEA030820219C
74151 +:1087500030C400030004102314C000143049000387
74152 +:108760000000302100A9782101E6702100EE682B7D
74153 +:1087700011A0FFE03C0401002D3800010006C82BC9
74154 +:10878000010548210319382414E0FFDA2524FFFCF1
74155 +:108790002402FFFC00A218240068202103E0000846
74156 +:1087A000008010210A000B9E240900303C0C800040
74157 +:1087B0003586098090CB007C316A00041540FFE9C2
74158 +:1087C000240600040A000BAD000030213C03080021
74159 +:1087D0008C63005C8F82001827BDFFE0AFBF0018DC
74160 +:1087E000AFB1001410620005AFB00010000329C043
74161 +:1087F00024A40280AF840014AF8300183C108000D2
74162 +:1088000036020A0094450032361101000E000B7F3B
74163 +:1088100030A43FFF8E240000241FFF803C11008005
74164 +:108820000082C021031F60243309007F000CC9406F
74165 +:1088300003294025330E0078362F00033C0D10002D
74166 +:10884000010D502501CF5825AE0C002836080980AF
74167 +:10885000AE0C080CAE0B082CAE0A08309103006970
74168 +:108860003C06800C0126382110600006AF870034DA
74169 +:108870008D09003C8D03006C0123382318E0008231
74170 +:10888000000000003C0B8008356A00803C1080002E
74171 +:10889000A1400069360609808CC200383C06800081
74172 +:1088A00034C50A0090A8003C310C00201180001A49
74173 +:1088B000AF820030240D00013C0E800035D10A004B
74174 +:1088C000A38D001CAF8000248E2400248F850024FB
74175 +:1088D000240D0008AF800020AF8000283C01080074
74176 +:1088E000A42D3FC63C010800A4203FDA0E000B83F4
74177 +:1088F000000030219228003C8FBF00188FB1001477
74178 +:108900008FB0001000086142AF82002C27BD00200C
74179 +:1089100003E000083182000190B80032240E00010B
74180 +:10892000330F00FF000F2182108E00412419000236
74181 +:108930001099006434C40AC03C03800034640A0007
74182 +:108940008C8F002415E0001E34660900909F0030D3
74183 +:108950002418000533F9003F1338004E24030001AA
74184 +:108960008F860020A383001CAF860028AF860024DA
74185 +:108970003C0E800035D10A008E2400248F8500240F
74186 +:10898000240D00083C010800A42D3FC63C0108004E
74187 +:10899000A4203FDA0E000B83000000009228003C68
74188 +:1089A0008FBF00188FB100148FB000100008614213
74189 +:1089B000AF82002C27BD002003E0000831820001B7
74190 +:1089C0008C8A00088C8B00248CD000643C0E8000C4
74191 +:1089D00035D10A00014B2823AF900024A380001C4E
74192 +:1089E000AF8500288E2400248F8600208F850024E8
74193 +:1089F000240D00083C010800A42D3FC63C010800DE
74194 +:108A0000A4203FDA0E000B83000000009228003CF7
74195 +:108A10008FBF00188FB100148FB0001000086142A2
74196 +:108A2000AF82002C27BD002003E000083182000146
74197 +:108A300090A200303051003F5224002834C50AC0B3
74198 +:108A40008CB000241600002234CB09008CA600480C
74199 +:108A50003C0A7FFF3545FFFF00C510243C0E800017
74200 +:108A6000AF82002035C509008F8800208CAD0060E2
74201 +:108A7000010D602B15800002010020218CA40060F4
74202 +:108A80000A000C22AF8400208D02006C0A000BFC4F
74203 +:108A90003C0680008C8200488F8600203C097FFFC6
74204 +:108AA0003527FFFF004788243C0480082403000189
74205 +:108AB000AF910028AC80006CA383001C0A000C302E
74206 +:108AC000AF8600248C9F00140A000C22AF9F002068
74207 +:108AD0008D6200680A000C6C3C0E800034C4098072
74208 +:108AE0008C8900708CA300140123382B10E0000443
74209 +:108AF000000000008C8200700A000C6C3C0E8000AC
74210 +:108B00008CA200140A000C6C3C0E80008F8500249F
74211 +:108B100027BDFFE0AFBF0018AFB1001414A00008DC
74212 +:108B2000AFB000103C04800034870A0090E60030AB
74213 +:108B30002402000530C3003F106200B934840900EC
74214 +:108B40008F91002000A080213C048000348E0A0018
74215 +:108B50008DCD00043C0608008CC63FB831A73FFF0E
74216 +:108B600000E6602B5580000100E03021938F001C4F
74217 +:108B700011E0007800D0282B349F098093F9007C05
74218 +:108B800033380002130000792403003400C3102B93
74219 +:108B9000144000D90000000000C3302300D0282B6F
74220 +:108BA0003C010800A4233FC414A0006E0200182159
74221 +:108BB0003C0408008C843FB40064402B5500000145
74222 +:108BC000006020213C05800034A90A00912A003C65
74223 +:108BD0003C010800AC243FBC31430020146000037A
74224 +:108BE0000000482134AB0E008D6900188F88002CDE
74225 +:108BF0000128202B1080005F000000003C050800C9
74226 +:108C00008CA53FBC00A96821010D602B1180005C80
74227 +:108C100000B0702B0109382300E028213C01080036
74228 +:108C2000AC273FBC12000003240AFFFC10B0008DEB
74229 +:108C30003224000300AA18243C010800A4203FDAD3
74230 +:108C40003C010800AC233FBC006028218F84002435
74231 +:108C5000120400063C0B80088D6C006C0200202181
74232 +:108C6000AF91002025900001AD70006C8F8D002821
74233 +:108C700000858823AF91002401A52023AF8400281C
74234 +:108C80001220000224070018240700103C18800856
74235 +:108C90003706008090CF00683C010800A0273FD82D
74236 +:108CA0002407000131EE00FF11C70047000000005B
74237 +:108CB00014800018000028213C06800034D109806F
74238 +:108CC00034CD010091A600098E2C001824C40001A7
74239 +:108CD000000C86023205007F308B007F1165007F1B
74240 +:108CE0002407FF803C19800837290080A124004C0C
74241 +:108CF0003C0808008D083FD4241800023C010800FD
74242 +:108D0000A0384019350F00083C010800AC2F3FD4B3
74243 +:108D1000240500103C02800034440A009083003C8B
74244 +:108D2000307F002013E0000500A02021240A00016C
74245 +:108D30003C010800AC2A3FBC34A400018FBF0018DE
74246 +:108D40008FB100148FB000100080102103E00008E4
74247 +:108D500027BD00203C010800A4203FC410A0FF94C0
74248 +:108D6000020018210A000CC000C018210A000CB72C
74249 +:108D7000240300303C0508008CA53FBC00B0702BDC
74250 +:108D800011C0FFA8000000003C19080097393FC43B
74251 +:108D90000325C0210307782B11E000072CAA00044B
74252 +:108DA0003C0360008C625404305F003F17E0FFE337
74253 +:108DB000240400422CAA00041140FF9A240400421B
74254 +:108DC0000A000D248FBF00181528FFB9000000000D
74255 +:108DD0008CCA00183C1F800024020002015F182585
74256 +:108DE000ACC3001837F90A00A0C200689329003C00
74257 +:108DF0002404000400A01021312800203C010800B8
74258 +:108E0000A0244019110000022405001024020001D2
74259 +:108E10003C010800AC223FB40A000D1A3C0280005D
74260 +:108E20008F8800288C8900600109282B14A000027B
74261 +:108E3000010088218C9100603C048000348B0E007E
74262 +:108E40008D640018240A000102202821022030210C
74263 +:108E5000A38A001C0E000B83022080210A000CA6AE
74264 +:108E6000AF82002C00045823122000073164000355
74265 +:108E70003C0E800035C7098090ED007C31AC0004C9
74266 +:108E800015800019248F00043C010800A4243FDA57
74267 +:108E90003C1F080097FF3FDA03E5C82100D9C02B2B
74268 +:108EA0001300FF6B8F8400242CA6000514C0FFA3C1
74269 +:108EB0002404004230A200031440000200A2182340
74270 +:108EC00024A3FFFC3C010800AC233FBC3C0108008C
74271 +:108ED000A4203FDA0A000CE70060282100C77024B4
74272 +:108EE0000A000D0D01C720263C010800A42F3FDA1F
74273 +:108EF0000A000D78000000003C010800AC203FBCD7
74274 +:108F00000A000D23240400428F8300283C058000C2
74275 +:108F100034AA0A00146000060000102191470030B6
74276 +:108F20002406000530E400FF108600030000000066
74277 +:108F300003E0000800000000914B0048316900FF89
74278 +:108F4000000941C21500FFFA3C0680083C040800F5
74279 +:108F500094843FC43C0308008C633FDC3C19080048
74280 +:108F60008F393FBC3C0F080095EF3FDA0064C02109
74281 +:108F70008CCD00040319702101CF602134AB0E00A9
74282 +:108F8000018D282318A0001D00000000914F004C07
74283 +:108F90008F8C0034956D001031EE00FF8D89000438
74284 +:108FA00001AE30238D8A000030CEFFFF000E290075
74285 +:108FB0000125C82100003821014720210325182B55
74286 +:108FC0000083C021AD990004AD980000918F000A84
74287 +:108FD00001CF6821A18D000A956500128F8A0034A7
74288 +:108FE000A5450008954B003825690001A5490038C2
74289 +:108FF0009148000D35070008A147000D03E0000867
74290 +:109000000000000027BDFFD8AFB000189388001CF7
74291 +:109010008FB000143C0A80003C197FFF8F8700242A
74292 +:109020003738FFFFAFBF0020AFB1001C355F0A002B
74293 +:109030000218182493EB003C00087FC03C02BFFFDD
74294 +:10904000006F60252CF000013449FFFF3C1F080031
74295 +:109050008FFF3FDC8F9900303C18080097183FD2F3
74296 +:1090600001897824001047803C07EFFF3C05F0FFA2
74297 +:1090700001E818253C1180003169002034E2FFFF2F
74298 +:1090800034ADFFFF362E098027A50010240600020C
74299 +:1090900003F96023270B0002354A0E0000621824F2
74300 +:1090A0000080802115200002000040218D48001C16
74301 +:1090B000A7AB0012058000392407000030E800FF4C
74302 +:1090C00000083F00006758253C028008AFAB001441
74303 +:1090D000344F008091EA00683C08080091083FD9AD
74304 +:1090E0003C09DFFF352CFFFF000AF82B3C0208008B
74305 +:1090F00094423FCCA3A80011016CC024001FCF40B4
74306 +:10910000031918258FA70010AFA300143C0C08000A
74307 +:10911000918C3FDBA7A200168FAB001400ED482412
74308 +:109120003C0F01003C0A0FFF012FC82531980003B6
74309 +:10913000355FFFFF016D40243C027000033F38247F
74310 +:1091400000181E0000E2482501037825AFAF001487
74311 +:10915000AFA9001091CC007C0E000092A3AC0015CA
74312 +:10916000362D0A0091A6003C30C400201080000675
74313 +:10917000260200083C11080096313FC8262EFFFF4A
74314 +:109180003C010800A42E3FC88FBF00208FB1001CF7
74315 +:109190008FB0001803E0000827BD00288F8B002C3B
74316 +:1091A000010B502B5540FFC5240700010A000E0497
74317 +:1091B00030E800FF9383001C3C02800027BDFFD8ED
74318 +:1091C00034480A0000805021AFBF002034460AC056
74319 +:1091D000010028211060000E3444098091070030FE
74320 +:1091E000240B00058F89002030EC003F118B000B11
74321 +:1091F00000003821AFA900103C0B80088D69006C7D
74322 +:10920000AFAA00180E00015AAFA90014A380001CD9
74323 +:109210008FBF002003E0000827BD00288D1F0048F5
74324 +:109220003C1808008F183FBC8F9900283C027FFF34
74325 +:109230008D0800443443FFFFAFA900103C0B8008A9
74326 +:109240008D69006C03E370240319782101CF682332
74327 +:1092500001A83821AFAA00180E00015AAFA90014C6
74328 +:109260000A000E58A380001C3C05800034A60A00AA
74329 +:1092700090C7003C3C06080094C63FDA3C02080058
74330 +:109280008C423FD430E30020000624001060001E12
74331 +:10929000004438253C0880083505008090A300680C
74332 +:1092A00000004821240800010000282124040001B6
74333 +:1092B0003C0680008CCD017805A0FFFE34CF014034
74334 +:1092C000ADE800083C0208008C423FDCA5E5000444
74335 +:1092D000A5E40006ADE2000C3C04080090843FD9F0
74336 +:1092E0003C03800834790080A1E40012ADE700144B
74337 +:1092F000A5E900189338004C3C0E1000A1F8002D91
74338 +:1093000003E00008ACCE017834A90E008D28001CC3
74339 +:109310003C0C08008D8C3FBC952B0016952A001440
74340 +:10932000018648213164FFFF0A000E803145FFFFAE
74341 +:109330003C04800034830A009065003C30A2002089
74342 +:109340001040001934870E00000040210000382131
74343 +:10935000000020213C0680008CC901780520FFFE1A
74344 +:1093600034CA014034CF010091EB0009AD48000838
74345 +:109370003C0E08008DCE3FDC240DFF91240C0040F4
74346 +:109380003C081000A5440004A5470006AD4E000CA3
74347 +:10939000A14D0012AD4C0014A5400018A14B002DAA
74348 +:1093A00003E00008ACC801788CE8001894E60012CD
74349 +:1093B00094E4001030C7FFFF0A000EA93084FFFFBD
74350 +:1093C0003C04800034830A009065003C30A20020F9
74351 +:1093D0001040002727BDFFF82409000100003821B4
74352 +:1093E000240800013C0680008CCA01780540FFFE7D
74353 +:1093F0003C0280FF34C40100908D00093C0C080041
74354 +:10940000918C4019A3AD00038FAB00003185007F24
74355 +:109410003459FFFF01665025AFAA00009083000A6F
74356 +:10942000A3A0000200057E00A3A300018FB80000E6
74357 +:1094300034CB0140240C30000319702401CF68257F
74358 +:10944000AD6D000C27BD0008AD6C0014A5600018C0
74359 +:10945000AD690008A56700042409FF80A56800061F
74360 +:109460003C081000A169001203E00008ACC80178B4
74361 +:1094700034870E008CE9001894E6001294E4001082
74362 +:1094800030C8FFFF0A000ECD3087FFFF27BDFFE089
74363 +:10949000AFB100143C118000AFB00010AFBF001896
74364 +:1094A00036380A00970F0032363001000E000B7F6D
74365 +:1094B00031E43FFF8E0E0000240DFF803C042000AD
74366 +:1094C00001C25821016D6024000C4940316A007FBF
74367 +:1094D000012A4025010438253C048008AE270830C5
74368 +:1094E0003486008090C500682403000230A200FF8B
74369 +:1094F000104300048F9F00208F990024AC9F0068C8
74370 +:10950000AC9900648FBF00188FB100148FB00010A9
74371 +:1095100003E0000827BD00203C0A0800254A3A80E5
74372 +:109520003C09080025293B103C08080025082F1C91
74373 +:109530003C07080024E73BDC3C06080024C639044D
74374 +:109540003C05080024A536583C0408002484325CFD
74375 +:109550003C030800246339B83C0208002442375415
74376 +:109560003C010800AC2A3F983C010800AC293F941C
74377 +:109570003C010800AC283F903C010800AC273F9C10
74378 +:109580003C010800AC263FAC3C010800AC253FA4E0
74379 +:109590003C010800AC243FA03C010800AC233FB0D4
74380 +:1095A0003C010800AC223FA803E0000800000000D6
74381 +:1095B00080000940800009008008010080080080C8
74382 +:1095C00080080000800E00008008008080080000F5
74383 +:1095D00080000A8080000A00800009808000090065
74384 +:00000001FF
74385 diff --git a/fs/Kconfig.binfmt b/fs/Kconfig.binfmt
74386 index 2d0cbbd..a6d61492 100644
74387 --- a/fs/Kconfig.binfmt
74388 +++ b/fs/Kconfig.binfmt
74389 @@ -103,7 +103,7 @@ config HAVE_AOUT
74390
74391 config BINFMT_AOUT
74392 tristate "Kernel support for a.out and ECOFF binaries"
74393 - depends on HAVE_AOUT
74394 + depends on HAVE_AOUT && BROKEN
74395 ---help---
74396 A.out (Assembler.OUTput) is a set of formats for libraries and
74397 executables used in the earliest versions of UNIX. Linux used
74398 diff --git a/fs/afs/inode.c b/fs/afs/inode.c
74399 index e06f5a2..81d07ac 100644
74400 --- a/fs/afs/inode.c
74401 +++ b/fs/afs/inode.c
74402 @@ -141,7 +141,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
74403 struct afs_vnode *vnode;
74404 struct super_block *sb;
74405 struct inode *inode;
74406 - static atomic_t afs_autocell_ino;
74407 + static atomic_unchecked_t afs_autocell_ino;
74408
74409 _enter("{%x:%u},%*.*s,",
74410 AFS_FS_I(dir)->fid.vid, AFS_FS_I(dir)->fid.vnode,
74411 @@ -154,7 +154,7 @@ struct inode *afs_iget_autocell(struct inode *dir, const char *dev_name,
74412 data.fid.unique = 0;
74413 data.fid.vnode = 0;
74414
74415 - inode = iget5_locked(sb, atomic_inc_return(&afs_autocell_ino),
74416 + inode = iget5_locked(sb, atomic_inc_return_unchecked(&afs_autocell_ino),
74417 afs_iget5_autocell_test, afs_iget5_set,
74418 &data);
74419 if (!inode) {
74420 diff --git a/fs/aio.c b/fs/aio.c
74421 index 480440f..623fd88 100644
74422 --- a/fs/aio.c
74423 +++ b/fs/aio.c
74424 @@ -441,7 +441,7 @@ static int aio_setup_ring(struct kioctx *ctx)
74425 size += sizeof(struct io_event) * nr_events;
74426
74427 nr_pages = PFN_UP(size);
74428 - if (nr_pages < 0)
74429 + if (nr_pages <= 0)
74430 return -EINVAL;
74431
74432 file = aio_private_file(ctx, nr_pages);
74433 diff --git a/fs/attr.c b/fs/attr.c
74434 index 6530ced..4a827e2 100644
74435 --- a/fs/attr.c
74436 +++ b/fs/attr.c
74437 @@ -102,6 +102,7 @@ int inode_newsize_ok(const struct inode *inode, loff_t offset)
74438 unsigned long limit;
74439
74440 limit = rlimit(RLIMIT_FSIZE);
74441 + gr_learn_resource(current, RLIMIT_FSIZE, (unsigned long)offset, 1);
74442 if (limit != RLIM_INFINITY && offset > limit)
74443 goto out_sig;
74444 if (offset > inode->i_sb->s_maxbytes)
74445 diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
74446 index 35b755e..f4b9e0a 100644
74447 --- a/fs/autofs4/waitq.c
74448 +++ b/fs/autofs4/waitq.c
74449 @@ -59,7 +59,7 @@ static int autofs4_write(struct autofs_sb_info *sbi,
74450 {
74451 unsigned long sigpipe, flags;
74452 mm_segment_t fs;
74453 - const char *data = (const char *)addr;
74454 + const char __user *data = (const char __force_user *)addr;
74455 ssize_t wr = 0;
74456
74457 sigpipe = sigismember(&current->pending.signal, SIGPIPE);
74458 @@ -340,6 +340,10 @@ static int validate_request(struct autofs_wait_queue **wait,
74459 return 1;
74460 }
74461
74462 +#ifdef CONFIG_GRKERNSEC_HIDESYM
74463 +static atomic_unchecked_t autofs_dummy_name_id = ATOMIC_INIT(0);
74464 +#endif
74465 +
74466 int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
74467 enum autofs_notify notify)
74468 {
74469 @@ -385,7 +389,12 @@ int autofs4_wait(struct autofs_sb_info *sbi, struct dentry *dentry,
74470
74471 /* If this is a direct mount request create a dummy name */
74472 if (IS_ROOT(dentry) && autofs_type_trigger(sbi->type))
74473 +#ifdef CONFIG_GRKERNSEC_HIDESYM
74474 + /* this name does get written to userland via autofs4_write() */
74475 + qstr.len = sprintf(name, "%08x", atomic_inc_return_unchecked(&autofs_dummy_name_id));
74476 +#else
74477 qstr.len = sprintf(name, "%p", dentry);
74478 +#endif
74479 else {
74480 qstr.len = autofs4_getpath(sbi, dentry, &name);
74481 if (!qstr.len) {
74482 diff --git a/fs/befs/endian.h b/fs/befs/endian.h
74483 index 2722387..56059b5 100644
74484 --- a/fs/befs/endian.h
74485 +++ b/fs/befs/endian.h
74486 @@ -11,7 +11,7 @@
74487
74488 #include <asm/byteorder.h>
74489
74490 -static inline u64
74491 +static inline u64 __intentional_overflow(-1)
74492 fs64_to_cpu(const struct super_block *sb, fs64 n)
74493 {
74494 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
74495 @@ -29,7 +29,7 @@ cpu_to_fs64(const struct super_block *sb, u64 n)
74496 return (__force fs64)cpu_to_be64(n);
74497 }
74498
74499 -static inline u32
74500 +static inline u32 __intentional_overflow(-1)
74501 fs32_to_cpu(const struct super_block *sb, fs32 n)
74502 {
74503 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
74504 @@ -47,7 +47,7 @@ cpu_to_fs32(const struct super_block *sb, u32 n)
74505 return (__force fs32)cpu_to_be32(n);
74506 }
74507
74508 -static inline u16
74509 +static inline u16 __intentional_overflow(-1)
74510 fs16_to_cpu(const struct super_block *sb, fs16 n)
74511 {
74512 if (BEFS_SB(sb)->byte_order == BEFS_BYTESEX_LE)
74513 diff --git a/fs/binfmt_aout.c b/fs/binfmt_aout.c
74514 index 4c55668..eeae150 100644
74515 --- a/fs/binfmt_aout.c
74516 +++ b/fs/binfmt_aout.c
74517 @@ -16,6 +16,7 @@
74518 #include <linux/string.h>
74519 #include <linux/fs.h>
74520 #include <linux/file.h>
74521 +#include <linux/security.h>
74522 #include <linux/stat.h>
74523 #include <linux/fcntl.h>
74524 #include <linux/ptrace.h>
74525 @@ -58,6 +59,8 @@ static int aout_core_dump(struct coredump_params *cprm)
74526 #endif
74527 # define START_STACK(u) ((void __user *)u.start_stack)
74528
74529 + memset(&dump, 0, sizeof(dump));
74530 +
74531 fs = get_fs();
74532 set_fs(KERNEL_DS);
74533 has_dumped = 1;
74534 @@ -68,10 +71,12 @@ static int aout_core_dump(struct coredump_params *cprm)
74535
74536 /* If the size of the dump file exceeds the rlimit, then see what would happen
74537 if we wrote the stack, but not the data area. */
74538 + gr_learn_resource(current, RLIMIT_CORE, (dump.u_dsize + dump.u_ssize+1) * PAGE_SIZE, 1);
74539 if ((dump.u_dsize + dump.u_ssize+1) * PAGE_SIZE > cprm->limit)
74540 dump.u_dsize = 0;
74541
74542 /* Make sure we have enough room to write the stack and data areas. */
74543 + gr_learn_resource(current, RLIMIT_CORE, (dump.u_ssize + 1) * PAGE_SIZE, 1);
74544 if ((dump.u_ssize + 1) * PAGE_SIZE > cprm->limit)
74545 dump.u_ssize = 0;
74546
74547 @@ -232,6 +237,8 @@ static int load_aout_binary(struct linux_binprm * bprm)
74548 rlim = rlimit(RLIMIT_DATA);
74549 if (rlim >= RLIM_INFINITY)
74550 rlim = ~0;
74551 +
74552 + gr_learn_resource(current, RLIMIT_DATA, ex.a_data + ex.a_bss, 1);
74553 if (ex.a_data + ex.a_bss > rlim)
74554 return -ENOMEM;
74555
74556 @@ -261,6 +268,27 @@ static int load_aout_binary(struct linux_binprm * bprm)
74557
74558 install_exec_creds(bprm);
74559
74560 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
74561 + current->mm->pax_flags = 0UL;
74562 +#endif
74563 +
74564 +#ifdef CONFIG_PAX_PAGEEXEC
74565 + if (!(N_FLAGS(ex) & F_PAX_PAGEEXEC)) {
74566 + current->mm->pax_flags |= MF_PAX_PAGEEXEC;
74567 +
74568 +#ifdef CONFIG_PAX_EMUTRAMP
74569 + if (N_FLAGS(ex) & F_PAX_EMUTRAMP)
74570 + current->mm->pax_flags |= MF_PAX_EMUTRAMP;
74571 +#endif
74572 +
74573 +#ifdef CONFIG_PAX_MPROTECT
74574 + if (!(N_FLAGS(ex) & F_PAX_MPROTECT))
74575 + current->mm->pax_flags |= MF_PAX_MPROTECT;
74576 +#endif
74577 +
74578 + }
74579 +#endif
74580 +
74581 if (N_MAGIC(ex) == OMAGIC) {
74582 unsigned long text_addr, map_size;
74583 loff_t pos;
74584 @@ -312,7 +340,7 @@ static int load_aout_binary(struct linux_binprm * bprm)
74585 return error;
74586
74587 error = vm_mmap(bprm->file, N_DATADDR(ex), ex.a_data,
74588 - PROT_READ | PROT_WRITE | PROT_EXEC,
74589 + PROT_READ | PROT_WRITE,
74590 MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE | MAP_EXECUTABLE,
74591 fd_offset + ex.a_text);
74592 if (error != N_DATADDR(ex))
74593 diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
74594 index 6b65996..be797cf 100644
74595 --- a/fs/binfmt_elf.c
74596 +++ b/fs/binfmt_elf.c
74597 @@ -35,6 +35,7 @@
74598 #include <linux/utsname.h>
74599 #include <linux/coredump.h>
74600 #include <linux/sched.h>
74601 +#include <linux/xattr.h>
74602 #include <asm/uaccess.h>
74603 #include <asm/param.h>
74604 #include <asm/page.h>
74605 @@ -66,6 +67,14 @@ static int elf_core_dump(struct coredump_params *cprm);
74606 #define elf_core_dump NULL
74607 #endif
74608
74609 +#ifdef CONFIG_PAX_MPROTECT
74610 +static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags);
74611 +#endif
74612 +
74613 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
74614 +static void elf_handle_mmap(struct file *file);
74615 +#endif
74616 +
74617 #if ELF_EXEC_PAGESIZE > PAGE_SIZE
74618 #define ELF_MIN_ALIGN ELF_EXEC_PAGESIZE
74619 #else
74620 @@ -85,6 +94,15 @@ static struct linux_binfmt elf_format = {
74621 .load_binary = load_elf_binary,
74622 .load_shlib = load_elf_library,
74623 .core_dump = elf_core_dump,
74624 +
74625 +#ifdef CONFIG_PAX_MPROTECT
74626 + .handle_mprotect= elf_handle_mprotect,
74627 +#endif
74628 +
74629 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
74630 + .handle_mmap = elf_handle_mmap,
74631 +#endif
74632 +
74633 .min_coredump = ELF_EXEC_PAGESIZE,
74634 };
74635
74636 @@ -92,6 +110,8 @@ static struct linux_binfmt elf_format = {
74637
74638 static int set_brk(unsigned long start, unsigned long end)
74639 {
74640 + unsigned long e = end;
74641 +
74642 start = ELF_PAGEALIGN(start);
74643 end = ELF_PAGEALIGN(end);
74644 if (end > start) {
74645 @@ -100,7 +120,7 @@ static int set_brk(unsigned long start, unsigned long end)
74646 if (BAD_ADDR(addr))
74647 return addr;
74648 }
74649 - current->mm->start_brk = current->mm->brk = end;
74650 + current->mm->start_brk = current->mm->brk = e;
74651 return 0;
74652 }
74653
74654 @@ -161,12 +181,13 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
74655 elf_addr_t __user *u_rand_bytes;
74656 const char *k_platform = ELF_PLATFORM;
74657 const char *k_base_platform = ELF_BASE_PLATFORM;
74658 - unsigned char k_rand_bytes[16];
74659 + u32 k_rand_bytes[4];
74660 int items;
74661 elf_addr_t *elf_info;
74662 int ei_index = 0;
74663 const struct cred *cred = current_cred();
74664 struct vm_area_struct *vma;
74665 + unsigned long saved_auxv[AT_VECTOR_SIZE];
74666
74667 /*
74668 * In some cases (e.g. Hyper-Threading), we want to avoid L1
74669 @@ -208,8 +229,12 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
74670 * Generate 16 random bytes for userspace PRNG seeding.
74671 */
74672 get_random_bytes(k_rand_bytes, sizeof(k_rand_bytes));
74673 - u_rand_bytes = (elf_addr_t __user *)
74674 - STACK_ALLOC(p, sizeof(k_rand_bytes));
74675 + prandom_seed(k_rand_bytes[0] ^ prandom_u32());
74676 + prandom_seed(k_rand_bytes[1] ^ prandom_u32());
74677 + prandom_seed(k_rand_bytes[2] ^ prandom_u32());
74678 + prandom_seed(k_rand_bytes[3] ^ prandom_u32());
74679 + p = STACK_ROUND(p, sizeof(k_rand_bytes));
74680 + u_rand_bytes = (elf_addr_t __user *) p;
74681 if (__copy_to_user(u_rand_bytes, k_rand_bytes, sizeof(k_rand_bytes)))
74682 return -EFAULT;
74683
74684 @@ -324,9 +349,11 @@ create_elf_tables(struct linux_binprm *bprm, struct elfhdr *exec,
74685 return -EFAULT;
74686 current->mm->env_end = p;
74687
74688 + memcpy(saved_auxv, elf_info, ei_index * sizeof(elf_addr_t));
74689 +
74690 /* Put the elf_info on the stack in the right place. */
74691 sp = (elf_addr_t __user *)envp + 1;
74692 - if (copy_to_user(sp, elf_info, ei_index * sizeof(elf_addr_t)))
74693 + if (copy_to_user(sp, saved_auxv, ei_index * sizeof(elf_addr_t)))
74694 return -EFAULT;
74695 return 0;
74696 }
74697 @@ -515,14 +542,14 @@ static inline int arch_check_elf(struct elfhdr *ehdr, bool has_interp,
74698 an ELF header */
74699
74700 static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
74701 - struct file *interpreter, unsigned long *interp_map_addr,
74702 + struct file *interpreter,
74703 unsigned long no_base, struct elf_phdr *interp_elf_phdata)
74704 {
74705 struct elf_phdr *eppnt;
74706 - unsigned long load_addr = 0;
74707 + unsigned long load_addr = 0, pax_task_size = TASK_SIZE;
74708 int load_addr_set = 0;
74709 unsigned long last_bss = 0, elf_bss = 0;
74710 - unsigned long error = ~0UL;
74711 + unsigned long error = -EINVAL;
74712 unsigned long total_size;
74713 int i;
74714
74715 @@ -542,6 +569,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
74716 goto out;
74717 }
74718
74719 +#ifdef CONFIG_PAX_SEGMEXEC
74720 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC)
74721 + pax_task_size = SEGMEXEC_TASK_SIZE;
74722 +#endif
74723 +
74724 eppnt = interp_elf_phdata;
74725 for (i = 0; i < interp_elf_ex->e_phnum; i++, eppnt++) {
74726 if (eppnt->p_type == PT_LOAD) {
74727 @@ -565,8 +597,6 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
74728 map_addr = elf_map(interpreter, load_addr + vaddr,
74729 eppnt, elf_prot, elf_type, total_size);
74730 total_size = 0;
74731 - if (!*interp_map_addr)
74732 - *interp_map_addr = map_addr;
74733 error = map_addr;
74734 if (BAD_ADDR(map_addr))
74735 goto out;
74736 @@ -585,8 +615,8 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
74737 k = load_addr + eppnt->p_vaddr;
74738 if (BAD_ADDR(k) ||
74739 eppnt->p_filesz > eppnt->p_memsz ||
74740 - eppnt->p_memsz > TASK_SIZE ||
74741 - TASK_SIZE - eppnt->p_memsz < k) {
74742 + eppnt->p_memsz > pax_task_size ||
74743 + pax_task_size - eppnt->p_memsz < k) {
74744 error = -ENOMEM;
74745 goto out;
74746 }
74747 @@ -625,9 +655,11 @@ static unsigned long load_elf_interp(struct elfhdr *interp_elf_ex,
74748 elf_bss = ELF_PAGESTART(elf_bss + ELF_MIN_ALIGN - 1);
74749
74750 /* Map the last of the bss segment */
74751 - error = vm_brk(elf_bss, last_bss - elf_bss);
74752 - if (BAD_ADDR(error))
74753 - goto out;
74754 + if (last_bss > elf_bss) {
74755 + error = vm_brk(elf_bss, last_bss - elf_bss);
74756 + if (BAD_ADDR(error))
74757 + goto out;
74758 + }
74759 }
74760
74761 error = load_addr;
74762 @@ -635,6 +667,336 @@ out:
74763 return error;
74764 }
74765
74766 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
74767 +#ifdef CONFIG_PAX_SOFTMODE
74768 +static unsigned long pax_parse_pt_pax_softmode(const struct elf_phdr * const elf_phdata)
74769 +{
74770 + unsigned long pax_flags = 0UL;
74771 +
74772 +#ifdef CONFIG_PAX_PAGEEXEC
74773 + if (elf_phdata->p_flags & PF_PAGEEXEC)
74774 + pax_flags |= MF_PAX_PAGEEXEC;
74775 +#endif
74776 +
74777 +#ifdef CONFIG_PAX_SEGMEXEC
74778 + if (elf_phdata->p_flags & PF_SEGMEXEC)
74779 + pax_flags |= MF_PAX_SEGMEXEC;
74780 +#endif
74781 +
74782 +#ifdef CONFIG_PAX_EMUTRAMP
74783 + if ((elf_phdata->p_flags & PF_EMUTRAMP) && (pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)))
74784 + pax_flags |= MF_PAX_EMUTRAMP;
74785 +#endif
74786 +
74787 +#ifdef CONFIG_PAX_MPROTECT
74788 + if (elf_phdata->p_flags & PF_MPROTECT)
74789 + pax_flags |= MF_PAX_MPROTECT;
74790 +#endif
74791 +
74792 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
74793 + if (randomize_va_space && (elf_phdata->p_flags & PF_RANDMMAP))
74794 + pax_flags |= MF_PAX_RANDMMAP;
74795 +#endif
74796 +
74797 + return pax_flags;
74798 +}
74799 +#endif
74800 +
74801 +static unsigned long pax_parse_pt_pax_hardmode(const struct elf_phdr * const elf_phdata)
74802 +{
74803 + unsigned long pax_flags = 0UL;
74804 +
74805 +#ifdef CONFIG_PAX_PAGEEXEC
74806 + if (!(elf_phdata->p_flags & PF_NOPAGEEXEC))
74807 + pax_flags |= MF_PAX_PAGEEXEC;
74808 +#endif
74809 +
74810 +#ifdef CONFIG_PAX_SEGMEXEC
74811 + if (!(elf_phdata->p_flags & PF_NOSEGMEXEC))
74812 + pax_flags |= MF_PAX_SEGMEXEC;
74813 +#endif
74814 +
74815 +#ifdef CONFIG_PAX_EMUTRAMP
74816 + if (!(elf_phdata->p_flags & PF_NOEMUTRAMP))
74817 + pax_flags |= MF_PAX_EMUTRAMP;
74818 +#endif
74819 +
74820 +#ifdef CONFIG_PAX_MPROTECT
74821 + if (!(elf_phdata->p_flags & PF_NOMPROTECT))
74822 + pax_flags |= MF_PAX_MPROTECT;
74823 +#endif
74824 +
74825 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
74826 + if (randomize_va_space && !(elf_phdata->p_flags & PF_NORANDMMAP))
74827 + pax_flags |= MF_PAX_RANDMMAP;
74828 +#endif
74829 +
74830 + return pax_flags;
74831 +}
74832 +#endif
74833 +
74834 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
74835 +#ifdef CONFIG_PAX_SOFTMODE
74836 +static unsigned long pax_parse_xattr_pax_softmode(unsigned long pax_flags_softmode)
74837 +{
74838 + unsigned long pax_flags = 0UL;
74839 +
74840 +#ifdef CONFIG_PAX_PAGEEXEC
74841 + if (pax_flags_softmode & MF_PAX_PAGEEXEC)
74842 + pax_flags |= MF_PAX_PAGEEXEC;
74843 +#endif
74844 +
74845 +#ifdef CONFIG_PAX_SEGMEXEC
74846 + if (pax_flags_softmode & MF_PAX_SEGMEXEC)
74847 + pax_flags |= MF_PAX_SEGMEXEC;
74848 +#endif
74849 +
74850 +#ifdef CONFIG_PAX_EMUTRAMP
74851 + if ((pax_flags_softmode & MF_PAX_EMUTRAMP) && (pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)))
74852 + pax_flags |= MF_PAX_EMUTRAMP;
74853 +#endif
74854 +
74855 +#ifdef CONFIG_PAX_MPROTECT
74856 + if (pax_flags_softmode & MF_PAX_MPROTECT)
74857 + pax_flags |= MF_PAX_MPROTECT;
74858 +#endif
74859 +
74860 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
74861 + if (randomize_va_space && (pax_flags_softmode & MF_PAX_RANDMMAP))
74862 + pax_flags |= MF_PAX_RANDMMAP;
74863 +#endif
74864 +
74865 + return pax_flags;
74866 +}
74867 +#endif
74868 +
74869 +static unsigned long pax_parse_xattr_pax_hardmode(unsigned long pax_flags_hardmode)
74870 +{
74871 + unsigned long pax_flags = 0UL;
74872 +
74873 +#ifdef CONFIG_PAX_PAGEEXEC
74874 + if (!(pax_flags_hardmode & MF_PAX_PAGEEXEC))
74875 + pax_flags |= MF_PAX_PAGEEXEC;
74876 +#endif
74877 +
74878 +#ifdef CONFIG_PAX_SEGMEXEC
74879 + if (!(pax_flags_hardmode & MF_PAX_SEGMEXEC))
74880 + pax_flags |= MF_PAX_SEGMEXEC;
74881 +#endif
74882 +
74883 +#ifdef CONFIG_PAX_EMUTRAMP
74884 + if (!(pax_flags_hardmode & MF_PAX_EMUTRAMP))
74885 + pax_flags |= MF_PAX_EMUTRAMP;
74886 +#endif
74887 +
74888 +#ifdef CONFIG_PAX_MPROTECT
74889 + if (!(pax_flags_hardmode & MF_PAX_MPROTECT))
74890 + pax_flags |= MF_PAX_MPROTECT;
74891 +#endif
74892 +
74893 +#if defined(CONFIG_PAX_RANDMMAP) || defined(CONFIG_PAX_RANDUSTACK)
74894 + if (randomize_va_space && !(pax_flags_hardmode & MF_PAX_RANDMMAP))
74895 + pax_flags |= MF_PAX_RANDMMAP;
74896 +#endif
74897 +
74898 + return pax_flags;
74899 +}
74900 +#endif
74901 +
74902 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
74903 +static unsigned long pax_parse_defaults(void)
74904 +{
74905 + unsigned long pax_flags = 0UL;
74906 +
74907 +#ifdef CONFIG_PAX_SOFTMODE
74908 + if (pax_softmode)
74909 + return pax_flags;
74910 +#endif
74911 +
74912 +#ifdef CONFIG_PAX_PAGEEXEC
74913 + pax_flags |= MF_PAX_PAGEEXEC;
74914 +#endif
74915 +
74916 +#ifdef CONFIG_PAX_SEGMEXEC
74917 + pax_flags |= MF_PAX_SEGMEXEC;
74918 +#endif
74919 +
74920 +#ifdef CONFIG_PAX_MPROTECT
74921 + pax_flags |= MF_PAX_MPROTECT;
74922 +#endif
74923 +
74924 +#ifdef CONFIG_PAX_RANDMMAP
74925 + if (randomize_va_space)
74926 + pax_flags |= MF_PAX_RANDMMAP;
74927 +#endif
74928 +
74929 + return pax_flags;
74930 +}
74931 +
74932 +static unsigned long pax_parse_ei_pax(const struct elfhdr * const elf_ex)
74933 +{
74934 + unsigned long pax_flags = PAX_PARSE_FLAGS_FALLBACK;
74935 +
74936 +#ifdef CONFIG_PAX_EI_PAX
74937 +
74938 +#ifdef CONFIG_PAX_SOFTMODE
74939 + if (pax_softmode)
74940 + return pax_flags;
74941 +#endif
74942 +
74943 + pax_flags = 0UL;
74944 +
74945 +#ifdef CONFIG_PAX_PAGEEXEC
74946 + if (!(elf_ex->e_ident[EI_PAX] & EF_PAX_PAGEEXEC))
74947 + pax_flags |= MF_PAX_PAGEEXEC;
74948 +#endif
74949 +
74950 +#ifdef CONFIG_PAX_SEGMEXEC
74951 + if (!(elf_ex->e_ident[EI_PAX] & EF_PAX_SEGMEXEC))
74952 + pax_flags |= MF_PAX_SEGMEXEC;
74953 +#endif
74954 +
74955 +#ifdef CONFIG_PAX_EMUTRAMP
74956 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) && (elf_ex->e_ident[EI_PAX] & EF_PAX_EMUTRAMP))
74957 + pax_flags |= MF_PAX_EMUTRAMP;
74958 +#endif
74959 +
74960 +#ifdef CONFIG_PAX_MPROTECT
74961 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) && !(elf_ex->e_ident[EI_PAX] & EF_PAX_MPROTECT))
74962 + pax_flags |= MF_PAX_MPROTECT;
74963 +#endif
74964 +
74965 +#ifdef CONFIG_PAX_ASLR
74966 + if (randomize_va_space && !(elf_ex->e_ident[EI_PAX] & EF_PAX_RANDMMAP))
74967 + pax_flags |= MF_PAX_RANDMMAP;
74968 +#endif
74969 +
74970 +#endif
74971 +
74972 + return pax_flags;
74973 +
74974 +}
74975 +
74976 +static unsigned long pax_parse_pt_pax(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata)
74977 +{
74978 +
74979 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
74980 + unsigned long i;
74981 +
74982 + for (i = 0UL; i < elf_ex->e_phnum; i++)
74983 + if (elf_phdata[i].p_type == PT_PAX_FLAGS) {
74984 + if (((elf_phdata[i].p_flags & PF_PAGEEXEC) && (elf_phdata[i].p_flags & PF_NOPAGEEXEC)) ||
74985 + ((elf_phdata[i].p_flags & PF_SEGMEXEC) && (elf_phdata[i].p_flags & PF_NOSEGMEXEC)) ||
74986 + ((elf_phdata[i].p_flags & PF_EMUTRAMP) && (elf_phdata[i].p_flags & PF_NOEMUTRAMP)) ||
74987 + ((elf_phdata[i].p_flags & PF_MPROTECT) && (elf_phdata[i].p_flags & PF_NOMPROTECT)) ||
74988 + ((elf_phdata[i].p_flags & PF_RANDMMAP) && (elf_phdata[i].p_flags & PF_NORANDMMAP)))
74989 + return PAX_PARSE_FLAGS_FALLBACK;
74990 +
74991 +#ifdef CONFIG_PAX_SOFTMODE
74992 + if (pax_softmode)
74993 + return pax_parse_pt_pax_softmode(&elf_phdata[i]);
74994 + else
74995 +#endif
74996 +
74997 + return pax_parse_pt_pax_hardmode(&elf_phdata[i]);
74998 + break;
74999 + }
75000 +#endif
75001 +
75002 + return PAX_PARSE_FLAGS_FALLBACK;
75003 +}
75004 +
75005 +static unsigned long pax_parse_xattr_pax(struct file * const file)
75006 +{
75007 +
75008 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
75009 + ssize_t xattr_size, i;
75010 + unsigned char xattr_value[sizeof("pemrs") - 1];
75011 + unsigned long pax_flags_hardmode = 0UL, pax_flags_softmode = 0UL;
75012 +
75013 + xattr_size = pax_getxattr(file->f_path.dentry, xattr_value, sizeof xattr_value);
75014 + if (xattr_size < 0 || xattr_size > sizeof xattr_value)
75015 + return PAX_PARSE_FLAGS_FALLBACK;
75016 +
75017 + for (i = 0; i < xattr_size; i++)
75018 + switch (xattr_value[i]) {
75019 + default:
75020 + return PAX_PARSE_FLAGS_FALLBACK;
75021 +
75022 +#define parse_flag(option1, option2, flag) \
75023 + case option1: \
75024 + if (pax_flags_hardmode & MF_PAX_##flag) \
75025 + return PAX_PARSE_FLAGS_FALLBACK;\
75026 + pax_flags_hardmode |= MF_PAX_##flag; \
75027 + break; \
75028 + case option2: \
75029 + if (pax_flags_softmode & MF_PAX_##flag) \
75030 + return PAX_PARSE_FLAGS_FALLBACK;\
75031 + pax_flags_softmode |= MF_PAX_##flag; \
75032 + break;
75033 +
75034 + parse_flag('p', 'P', PAGEEXEC);
75035 + parse_flag('e', 'E', EMUTRAMP);
75036 + parse_flag('m', 'M', MPROTECT);
75037 + parse_flag('r', 'R', RANDMMAP);
75038 + parse_flag('s', 'S', SEGMEXEC);
75039 +
75040 +#undef parse_flag
75041 + }
75042 +
75043 + if (pax_flags_hardmode & pax_flags_softmode)
75044 + return PAX_PARSE_FLAGS_FALLBACK;
75045 +
75046 +#ifdef CONFIG_PAX_SOFTMODE
75047 + if (pax_softmode)
75048 + return pax_parse_xattr_pax_softmode(pax_flags_softmode);
75049 + else
75050 +#endif
75051 +
75052 + return pax_parse_xattr_pax_hardmode(pax_flags_hardmode);
75053 +#else
75054 + return PAX_PARSE_FLAGS_FALLBACK;
75055 +#endif
75056 +
75057 +}
75058 +
75059 +static long pax_parse_pax_flags(const struct elfhdr * const elf_ex, const struct elf_phdr * const elf_phdata, struct file * const file)
75060 +{
75061 + unsigned long pax_flags, ei_pax_flags, pt_pax_flags, xattr_pax_flags;
75062 +
75063 + pax_flags = pax_parse_defaults();
75064 + ei_pax_flags = pax_parse_ei_pax(elf_ex);
75065 + pt_pax_flags = pax_parse_pt_pax(elf_ex, elf_phdata);
75066 + xattr_pax_flags = pax_parse_xattr_pax(file);
75067 +
75068 + if (pt_pax_flags != PAX_PARSE_FLAGS_FALLBACK &&
75069 + xattr_pax_flags != PAX_PARSE_FLAGS_FALLBACK &&
75070 + pt_pax_flags != xattr_pax_flags)
75071 + return -EINVAL;
75072 + if (xattr_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
75073 + pax_flags = xattr_pax_flags;
75074 + else if (pt_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
75075 + pax_flags = pt_pax_flags;
75076 + else if (ei_pax_flags != PAX_PARSE_FLAGS_FALLBACK)
75077 + pax_flags = ei_pax_flags;
75078 +
75079 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_PAX_SEGMEXEC)
75080 + if ((pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) == (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
75081 + if ((__supported_pte_mask & _PAGE_NX))
75082 + pax_flags &= ~MF_PAX_SEGMEXEC;
75083 + else
75084 + pax_flags &= ~MF_PAX_PAGEEXEC;
75085 + }
75086 +#endif
75087 +
75088 + if (0 > pax_check_flags(&pax_flags))
75089 + return -EINVAL;
75090 +
75091 + current->mm->pax_flags = pax_flags;
75092 + return 0;
75093 +}
75094 +#endif
75095 +
75096 /*
75097 * These are the functions used to load ELF style executables and shared
75098 * libraries. There is no binary dependent code anywhere else.
75099 @@ -648,6 +1010,11 @@ static unsigned long randomize_stack_top(unsigned long stack_top)
75100 {
75101 unsigned long random_variable = 0;
75102
75103 +#ifdef CONFIG_PAX_RANDUSTACK
75104 + if (current->mm->pax_flags & MF_PAX_RANDMMAP)
75105 + return stack_top - current->mm->delta_stack;
75106 +#endif
75107 +
75108 if ((current->flags & PF_RANDOMIZE) &&
75109 !(current->personality & ADDR_NO_RANDOMIZE)) {
75110 random_variable = (unsigned long) get_random_int();
75111 @@ -667,7 +1034,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75112 unsigned long load_addr = 0, load_bias = 0;
75113 int load_addr_set = 0;
75114 char * elf_interpreter = NULL;
75115 - unsigned long error;
75116 + unsigned long error = 0;
75117 struct elf_phdr *elf_ppnt, *elf_phdata, *interp_elf_phdata = NULL;
75118 unsigned long elf_bss, elf_brk;
75119 int retval, i;
75120 @@ -682,6 +1049,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75121 struct elfhdr interp_elf_ex;
75122 } *loc;
75123 struct arch_elf_state arch_state = INIT_ARCH_ELF_STATE;
75124 + unsigned long pax_task_size;
75125
75126 loc = kmalloc(sizeof(*loc), GFP_KERNEL);
75127 if (!loc) {
75128 @@ -759,16 +1127,16 @@ static int load_elf_binary(struct linux_binprm *bprm)
75129 */
75130 would_dump(bprm, interpreter);
75131
75132 - retval = kernel_read(interpreter, 0, bprm->buf,
75133 - BINPRM_BUF_SIZE);
75134 - if (retval != BINPRM_BUF_SIZE) {
75135 - if (retval >= 0)
75136 - retval = -EIO;
75137 - goto out_free_dentry;
75138 - }
75139 -
75140 /* Get the exec headers */
75141 - loc->interp_elf_ex = *((struct elfhdr *)bprm->buf);
75142 + retval = kernel_read(interpreter, 0,
75143 + (void *)&loc->interp_elf_ex,
75144 + sizeof(loc->interp_elf_ex));
75145 + if (retval != sizeof(loc->interp_elf_ex)) {
75146 + if (retval >= 0)
75147 + retval = -EIO;
75148 + goto out_free_dentry;
75149 + }
75150 +
75151 break;
75152 }
75153 elf_ppnt++;
75154 @@ -840,6 +1208,77 @@ static int load_elf_binary(struct linux_binprm *bprm)
75155 /* Do this immediately, since STACK_TOP as used in setup_arg_pages
75156 may depend on the personality. */
75157 SET_PERSONALITY2(loc->elf_ex, &arch_state);
75158 +
75159 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
75160 + current->mm->pax_flags = 0UL;
75161 +#endif
75162 +
75163 +#ifdef CONFIG_PAX_DLRESOLVE
75164 + current->mm->call_dl_resolve = 0UL;
75165 +#endif
75166 +
75167 +#if defined(CONFIG_PPC32) && defined(CONFIG_PAX_EMUSIGRT)
75168 + current->mm->call_syscall = 0UL;
75169 +#endif
75170 +
75171 +#ifdef CONFIG_PAX_ASLR
75172 + current->mm->delta_mmap = 0UL;
75173 + current->mm->delta_stack = 0UL;
75174 +#endif
75175 +
75176 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
75177 + if (0 > pax_parse_pax_flags(&loc->elf_ex, elf_phdata, bprm->file)) {
75178 + retval = -EINVAL;
75179 + goto out_free_dentry;
75180 + }
75181 +#endif
75182 +
75183 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
75184 + pax_set_initial_flags(bprm);
75185 +#elif defined(CONFIG_PAX_HOOK_ACL_FLAGS)
75186 + if (pax_set_initial_flags_func)
75187 + (pax_set_initial_flags_func)(bprm);
75188 +#endif
75189 +
75190 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
75191 + if ((current->mm->pax_flags & MF_PAX_PAGEEXEC) && !(__supported_pte_mask & _PAGE_NX)) {
75192 + current->mm->context.user_cs_limit = PAGE_SIZE;
75193 + current->mm->def_flags |= VM_PAGEEXEC | VM_NOHUGEPAGE;
75194 + }
75195 +#endif
75196 +
75197 +#ifdef CONFIG_PAX_SEGMEXEC
75198 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
75199 + current->mm->context.user_cs_base = SEGMEXEC_TASK_SIZE;
75200 + current->mm->context.user_cs_limit = TASK_SIZE-SEGMEXEC_TASK_SIZE;
75201 + pax_task_size = SEGMEXEC_TASK_SIZE;
75202 + current->mm->def_flags |= VM_NOHUGEPAGE;
75203 + } else
75204 +#endif
75205 +
75206 + pax_task_size = TASK_SIZE;
75207 +
75208 +#if defined(CONFIG_ARCH_TRACK_EXEC_LIMIT) || defined(CONFIG_PAX_SEGMEXEC)
75209 + if (current->mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
75210 + set_user_cs(current->mm->context.user_cs_base, current->mm->context.user_cs_limit, get_cpu());
75211 + put_cpu();
75212 + }
75213 +#endif
75214 +
75215 +#ifdef CONFIG_PAX_ASLR
75216 + if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
75217 + current->mm->delta_mmap = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN)-1)) << PAGE_SHIFT;
75218 + current->mm->delta_stack = (pax_get_random_long() & ((1UL << PAX_DELTA_STACK_LEN)-1)) << PAGE_SHIFT;
75219 + }
75220 +#endif
75221 +
75222 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
75223 + if (current->mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
75224 + executable_stack = EXSTACK_DISABLE_X;
75225 + current->personality &= ~READ_IMPLIES_EXEC;
75226 + } else
75227 +#endif
75228 +
75229 if (elf_read_implies_exec(loc->elf_ex, executable_stack))
75230 current->personality |= READ_IMPLIES_EXEC;
75231
75232 @@ -915,8 +1354,21 @@ static int load_elf_binary(struct linux_binprm *bprm)
75233 if (current->flags & PF_RANDOMIZE)
75234 load_bias += arch_mmap_rnd();
75235 load_bias = ELF_PAGESTART(load_bias);
75236 - total_size = total_mapping_size(elf_phdata,
75237 - loc->elf_ex.e_phnum);
75238 +
75239 +#ifdef CONFIG_PAX_RANDMMAP
75240 + /* PaX: randomize base address at the default exe base if requested */
75241 + if ((current->mm->pax_flags & MF_PAX_RANDMMAP) && elf_interpreter) {
75242 +#ifdef CONFIG_SPARC64
75243 + load_bias = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN) - 1)) << (PAGE_SHIFT+1);
75244 +#else
75245 + load_bias = (pax_get_random_long() & ((1UL << PAX_DELTA_MMAP_LEN) - 1)) << PAGE_SHIFT;
75246 +#endif
75247 + load_bias = ELF_PAGESTART(PAX_ELF_ET_DYN_BASE - vaddr + load_bias);
75248 + elf_flags |= MAP_FIXED;
75249 + }
75250 +#endif
75251 +
75252 + total_size = total_mapping_size(elf_phdata, loc->elf_ex.e_phnum);
75253 if (!total_size) {
75254 retval = -EINVAL;
75255 goto out_free_dentry;
75256 @@ -952,9 +1404,9 @@ static int load_elf_binary(struct linux_binprm *bprm)
75257 * allowed task size. Note that p_filesz must always be
75258 * <= p_memsz so it is only necessary to check p_memsz.
75259 */
75260 - if (BAD_ADDR(k) || elf_ppnt->p_filesz > elf_ppnt->p_memsz ||
75261 - elf_ppnt->p_memsz > TASK_SIZE ||
75262 - TASK_SIZE - elf_ppnt->p_memsz < k) {
75263 + if (k >= pax_task_size || elf_ppnt->p_filesz > elf_ppnt->p_memsz ||
75264 + elf_ppnt->p_memsz > pax_task_size ||
75265 + pax_task_size - elf_ppnt->p_memsz < k) {
75266 /* set_brk can never work. Avoid overflows. */
75267 retval = -EINVAL;
75268 goto out_free_dentry;
75269 @@ -990,16 +1442,43 @@ static int load_elf_binary(struct linux_binprm *bprm)
75270 if (retval)
75271 goto out_free_dentry;
75272 if (likely(elf_bss != elf_brk) && unlikely(padzero(elf_bss))) {
75273 - retval = -EFAULT; /* Nobody gets to see this, but.. */
75274 - goto out_free_dentry;
75275 + /*
75276 + * This bss-zeroing can fail if the ELF
75277 + * file specifies odd protections. So
75278 + * we don't check the return value
75279 + */
75280 }
75281
75282 +#ifdef CONFIG_PAX_RANDMMAP
75283 + if (current->mm->pax_flags & MF_PAX_RANDMMAP) {
75284 + unsigned long start, size, flags;
75285 + vm_flags_t vm_flags;
75286 +
75287 + start = ELF_PAGEALIGN(elf_brk);
75288 + size = PAGE_SIZE + ((pax_get_random_long() & ((1UL << 22) - 1UL)) << 4);
75289 + flags = MAP_FIXED | MAP_PRIVATE;
75290 + vm_flags = VM_DONTEXPAND | VM_DONTDUMP;
75291 +
75292 + down_write(&current->mm->mmap_sem);
75293 + start = get_unmapped_area(NULL, start, PAGE_ALIGN(size), 0, flags);
75294 + retval = -ENOMEM;
75295 + if (!IS_ERR_VALUE(start) && !find_vma_intersection(current->mm, start, start + size + PAGE_SIZE)) {
75296 +// if (current->personality & ADDR_NO_RANDOMIZE)
75297 +// vm_flags |= VM_READ | VM_MAYREAD;
75298 + start = mmap_region(NULL, start, PAGE_ALIGN(size), vm_flags, 0);
75299 + retval = IS_ERR_VALUE(start) ? start : 0;
75300 + }
75301 + up_write(&current->mm->mmap_sem);
75302 + if (retval == 0)
75303 + retval = set_brk(start + size, start + size + PAGE_SIZE);
75304 + if (retval < 0)
75305 + goto out_free_dentry;
75306 + }
75307 +#endif
75308 +
75309 if (elf_interpreter) {
75310 - unsigned long interp_map_addr = 0;
75311 -
75312 elf_entry = load_elf_interp(&loc->interp_elf_ex,
75313 interpreter,
75314 - &interp_map_addr,
75315 load_bias, interp_elf_phdata);
75316 if (!IS_ERR((void *)elf_entry)) {
75317 /*
75318 @@ -1050,6 +1529,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75319 current->mm->end_data = end_data;
75320 current->mm->start_stack = bprm->p;
75321
75322 +#ifndef CONFIG_PAX_RANDMMAP
75323 if ((current->flags & PF_RANDOMIZE) && (randomize_va_space > 1)) {
75324 current->mm->brk = current->mm->start_brk =
75325 arch_randomize_brk(current->mm);
75326 @@ -1057,6 +1537,7 @@ static int load_elf_binary(struct linux_binprm *bprm)
75327 current->brk_randomized = 1;
75328 #endif
75329 }
75330 +#endif
75331
75332 if (current->personality & MMAP_PAGE_ZERO) {
75333 /* Why this, you ask??? Well SVr4 maps page 0 as read-only,
75334 @@ -1225,7 +1706,7 @@ static bool always_dump_vma(struct vm_area_struct *vma)
75335 * Decide what to dump of a segment, part, all or none.
75336 */
75337 static unsigned long vma_dump_size(struct vm_area_struct *vma,
75338 - unsigned long mm_flags)
75339 + unsigned long mm_flags, long signr)
75340 {
75341 #define FILTER(type) (mm_flags & (1UL << MMF_DUMP_##type))
75342
75343 @@ -1263,7 +1744,7 @@ static unsigned long vma_dump_size(struct vm_area_struct *vma,
75344 if (vma->vm_file == NULL)
75345 return 0;
75346
75347 - if (FILTER(MAPPED_PRIVATE))
75348 + if (signr == SIGKILL || FILTER(MAPPED_PRIVATE))
75349 goto whole;
75350
75351 /*
75352 @@ -1363,7 +1844,7 @@ static void fill_elf_header(struct elfhdr *elf, int segs,
75353 return;
75354 }
75355
75356 -static void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, loff_t offset)
75357 +static void fill_elf_note_phdr(struct elf_phdr *phdr, size_t sz, loff_t offset)
75358 {
75359 phdr->p_type = PT_NOTE;
75360 phdr->p_offset = offset;
75361 @@ -1470,9 +1951,9 @@ static void fill_auxv_note(struct memelfnote *note, struct mm_struct *mm)
75362 {
75363 elf_addr_t *auxv = (elf_addr_t *) mm->saved_auxv;
75364 int i = 0;
75365 - do
75366 + do {
75367 i += 2;
75368 - while (auxv[i - 2] != AT_NULL);
75369 + } while (auxv[i - 2] != AT_NULL);
75370 fill_note(note, "CORE", NT_AUXV, i * sizeof(elf_addr_t), auxv);
75371 }
75372
75373 @@ -1481,7 +1962,7 @@ static void fill_siginfo_note(struct memelfnote *note, user_siginfo_t *csigdata,
75374 {
75375 mm_segment_t old_fs = get_fs();
75376 set_fs(KERNEL_DS);
75377 - copy_siginfo_to_user((user_siginfo_t __user *) csigdata, siginfo);
75378 + copy_siginfo_to_user((user_siginfo_t __force_user *) csigdata, siginfo);
75379 set_fs(old_fs);
75380 fill_note(note, "CORE", NT_SIGINFO, sizeof(*csigdata), csigdata);
75381 }
75382 @@ -2201,7 +2682,7 @@ static int elf_core_dump(struct coredump_params *cprm)
75383 vma = next_vma(vma, gate_vma)) {
75384 unsigned long dump_size;
75385
75386 - dump_size = vma_dump_size(vma, cprm->mm_flags);
75387 + dump_size = vma_dump_size(vma, cprm->mm_flags, cprm->siginfo->si_signo);
75388 vma_filesz[i++] = dump_size;
75389 vma_data_size += dump_size;
75390 }
75391 @@ -2309,6 +2790,167 @@ out:
75392
75393 #endif /* CONFIG_ELF_CORE */
75394
75395 +#ifdef CONFIG_PAX_MPROTECT
75396 +/* PaX: non-PIC ELF libraries need relocations on their executable segments
75397 + * therefore we'll grant them VM_MAYWRITE once during their life. Similarly
75398 + * we'll remove VM_MAYWRITE for good on RELRO segments.
75399 + *
75400 + * The checks favour ld-linux.so behaviour which operates on a per ELF segment
75401 + * basis because we want to allow the common case and not the special ones.
75402 + */
75403 +static void elf_handle_mprotect(struct vm_area_struct *vma, unsigned long newflags)
75404 +{
75405 + struct elfhdr elf_h;
75406 + struct elf_phdr elf_p;
75407 + unsigned long i;
75408 + unsigned long oldflags;
75409 + bool is_textrel_rw, is_textrel_rx, is_relro;
75410 +
75411 + if (!(vma->vm_mm->pax_flags & MF_PAX_MPROTECT) || !vma->vm_file)
75412 + return;
75413 +
75414 + oldflags = vma->vm_flags & (VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_EXEC | VM_WRITE | VM_READ);
75415 + newflags &= VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_EXEC | VM_WRITE | VM_READ;
75416 +
75417 +#ifdef CONFIG_PAX_ELFRELOCS
75418 + /* possible TEXTREL */
75419 + is_textrel_rw = !vma->anon_vma && oldflags == (VM_MAYEXEC | VM_MAYREAD | VM_EXEC | VM_READ) && newflags == (VM_WRITE | VM_READ);
75420 + is_textrel_rx = vma->anon_vma && oldflags == (VM_MAYEXEC | VM_MAYWRITE | VM_MAYREAD | VM_WRITE | VM_READ) && newflags == (VM_EXEC | VM_READ);
75421 +#else
75422 + is_textrel_rw = false;
75423 + is_textrel_rx = false;
75424 +#endif
75425 +
75426 + /* possible RELRO */
75427 + is_relro = vma->anon_vma && oldflags == (VM_MAYWRITE | VM_MAYREAD | VM_READ) && newflags == (VM_MAYWRITE | VM_MAYREAD | VM_READ);
75428 +
75429 + if (!is_textrel_rw && !is_textrel_rx && !is_relro)
75430 + return;
75431 +
75432 + if (sizeof(elf_h) != kernel_read(vma->vm_file, 0UL, (char *)&elf_h, sizeof(elf_h)) ||
75433 + memcmp(elf_h.e_ident, ELFMAG, SELFMAG) ||
75434 +
75435 +#ifdef CONFIG_PAX_ETEXECRELOCS
75436 + ((is_textrel_rw || is_textrel_rx) && (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC)) ||
75437 +#else
75438 + ((is_textrel_rw || is_textrel_rx) && elf_h.e_type != ET_DYN) ||
75439 +#endif
75440 +
75441 + (is_relro && (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC)) ||
75442 + !elf_check_arch(&elf_h) ||
75443 + elf_h.e_phentsize != sizeof(struct elf_phdr) ||
75444 + elf_h.e_phnum > 65536UL / sizeof(struct elf_phdr))
75445 + return;
75446 +
75447 + for (i = 0UL; i < elf_h.e_phnum; i++) {
75448 + if (sizeof(elf_p) != kernel_read(vma->vm_file, elf_h.e_phoff + i*sizeof(elf_p), (char *)&elf_p, sizeof(elf_p)))
75449 + return;
75450 + switch (elf_p.p_type) {
75451 + case PT_DYNAMIC:
75452 + if (!is_textrel_rw && !is_textrel_rx)
75453 + continue;
75454 + i = 0UL;
75455 + while ((i+1) * sizeof(elf_dyn) <= elf_p.p_filesz) {
75456 + elf_dyn dyn;
75457 +
75458 + if (sizeof(dyn) != kernel_read(vma->vm_file, elf_p.p_offset + i*sizeof(dyn), (char *)&dyn, sizeof(dyn)))
75459 + break;
75460 + if (dyn.d_tag == DT_NULL)
75461 + break;
75462 + if (dyn.d_tag == DT_TEXTREL || (dyn.d_tag == DT_FLAGS && (dyn.d_un.d_val & DF_TEXTREL))) {
75463 + gr_log_textrel(vma, is_textrel_rw);
75464 + if (is_textrel_rw)
75465 + vma->vm_flags |= VM_MAYWRITE;
75466 + else
75467 + /* PaX: disallow write access after relocs are done, hopefully noone else needs it... */
75468 + vma->vm_flags &= ~VM_MAYWRITE;
75469 + break;
75470 + }
75471 + i++;
75472 + }
75473 + is_textrel_rw = false;
75474 + is_textrel_rx = false;
75475 + continue;
75476 +
75477 + case PT_GNU_RELRO:
75478 + if (!is_relro)
75479 + continue;
75480 + if ((elf_p.p_offset >> PAGE_SHIFT) == vma->vm_pgoff && ELF_PAGEALIGN(elf_p.p_memsz) == vma->vm_end - vma->vm_start)
75481 + vma->vm_flags &= ~VM_MAYWRITE;
75482 + is_relro = false;
75483 + continue;
75484 +
75485 +#ifdef CONFIG_PAX_PT_PAX_FLAGS
75486 + case PT_PAX_FLAGS: {
75487 + const char *msg_mprotect = "", *msg_emutramp = "";
75488 + char *buffer_lib, *buffer_exe;
75489 +
75490 + if (elf_p.p_flags & PF_NOMPROTECT)
75491 + msg_mprotect = "MPROTECT disabled";
75492 +
75493 +#ifdef CONFIG_PAX_EMUTRAMP
75494 + if (!(vma->vm_mm->pax_flags & MF_PAX_EMUTRAMP) && !(elf_p.p_flags & PF_NOEMUTRAMP))
75495 + msg_emutramp = "EMUTRAMP enabled";
75496 +#endif
75497 +
75498 + if (!msg_mprotect[0] && !msg_emutramp[0])
75499 + continue;
75500 +
75501 + if (!printk_ratelimit())
75502 + continue;
75503 +
75504 + buffer_lib = (char *)__get_free_page(GFP_KERNEL);
75505 + buffer_exe = (char *)__get_free_page(GFP_KERNEL);
75506 + if (buffer_lib && buffer_exe) {
75507 + char *path_lib, *path_exe;
75508 +
75509 + path_lib = pax_get_path(&vma->vm_file->f_path, buffer_lib, PAGE_SIZE);
75510 + path_exe = pax_get_path(&vma->vm_mm->exe_file->f_path, buffer_exe, PAGE_SIZE);
75511 +
75512 + pr_info("PAX: %s wants %s%s%s on %s\n", path_lib, msg_mprotect,
75513 + (msg_mprotect[0] && msg_emutramp[0] ? " and " : ""), msg_emutramp, path_exe);
75514 +
75515 + }
75516 + free_page((unsigned long)buffer_exe);
75517 + free_page((unsigned long)buffer_lib);
75518 + continue;
75519 + }
75520 +#endif
75521 +
75522 + }
75523 + }
75524 +}
75525 +#endif
75526 +
75527 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
75528 +
75529 +extern int grsec_enable_log_rwxmaps;
75530 +
75531 +static void elf_handle_mmap(struct file *file)
75532 +{
75533 + struct elfhdr elf_h;
75534 + struct elf_phdr elf_p;
75535 + unsigned long i;
75536 +
75537 + if (!grsec_enable_log_rwxmaps)
75538 + return;
75539 +
75540 + if (sizeof(elf_h) != kernel_read(file, 0UL, (char *)&elf_h, sizeof(elf_h)) ||
75541 + memcmp(elf_h.e_ident, ELFMAG, SELFMAG) ||
75542 + (elf_h.e_type != ET_DYN && elf_h.e_type != ET_EXEC) || !elf_check_arch(&elf_h) ||
75543 + elf_h.e_phentsize != sizeof(struct elf_phdr) ||
75544 + elf_h.e_phnum > 65536UL / sizeof(struct elf_phdr))
75545 + return;
75546 +
75547 + for (i = 0UL; i < elf_h.e_phnum; i++) {
75548 + if (sizeof(elf_p) != kernel_read(file, elf_h.e_phoff + i*sizeof(elf_p), (char *)&elf_p, sizeof(elf_p)))
75549 + return;
75550 + if (elf_p.p_type == PT_GNU_STACK && (elf_p.p_flags & PF_X))
75551 + gr_log_ptgnustack(file);
75552 + }
75553 +}
75554 +#endif
75555 +
75556 static int __init init_elf_binfmt(void)
75557 {
75558 register_binfmt(&elf_format);
75559 diff --git a/fs/binfmt_elf_fdpic.c b/fs/binfmt_elf_fdpic.c
75560 index d3634bf..10fc244 100644
75561 --- a/fs/binfmt_elf_fdpic.c
75562 +++ b/fs/binfmt_elf_fdpic.c
75563 @@ -1296,7 +1296,7 @@ static inline void fill_elf_fdpic_header(struct elfhdr *elf, int segs)
75564 return;
75565 }
75566
75567 -static inline void fill_elf_note_phdr(struct elf_phdr *phdr, int sz, loff_t offset)
75568 +static inline void fill_elf_note_phdr(struct elf_phdr *phdr, size_t sz, loff_t offset)
75569 {
75570 phdr->p_type = PT_NOTE;
75571 phdr->p_offset = offset;
75572 @@ -1667,7 +1667,7 @@ static int elf_fdpic_core_dump(struct coredump_params *cprm)
75573
75574 /* Write notes phdr entry */
75575 {
75576 - int sz = 0;
75577 + size_t sz = 0;
75578
75579 for (i = 0; i < numnote; i++)
75580 sz += notesize(notes + i);
75581 diff --git a/fs/block_dev.c b/fs/block_dev.c
75582 index 1170f8c..2a8acc1 100644
75583 --- a/fs/block_dev.c
75584 +++ b/fs/block_dev.c
75585 @@ -738,7 +738,7 @@ static bool bd_may_claim(struct block_device *bdev, struct block_device *whole,
75586 else if (bdev->bd_contains == bdev)
75587 return true; /* is a whole device which isn't held */
75588
75589 - else if (whole->bd_holder == bd_may_claim)
75590 + else if (whole->bd_holder == (void *)bd_may_claim)
75591 return true; /* is a partition of a device that is being partitioned */
75592 else if (whole->bd_holder != NULL)
75593 return false; /* is a partition of a held device */
75594 diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
75595 index 54114b4..580cfc9 100644
75596 --- a/fs/btrfs/ctree.c
75597 +++ b/fs/btrfs/ctree.c
75598 @@ -1180,9 +1180,12 @@ static noinline int __btrfs_cow_block(struct btrfs_trans_handle *trans,
75599 free_extent_buffer(buf);
75600 add_root_to_dirty_list(root);
75601 } else {
75602 - if (root->root_key.objectid == BTRFS_TREE_RELOC_OBJECTID)
75603 - parent_start = parent->start;
75604 - else
75605 + if (root->root_key.objectid == BTRFS_TREE_RELOC_OBJECTID) {
75606 + if (parent)
75607 + parent_start = parent->start;
75608 + else
75609 + parent_start = 0;
75610 + } else
75611 parent_start = 0;
75612
75613 WARN_ON(trans->transid != btrfs_header_generation(parent));
75614 diff --git a/fs/btrfs/delayed-inode.c b/fs/btrfs/delayed-inode.c
75615 index a2ae427..d028233 100644
75616 --- a/fs/btrfs/delayed-inode.c
75617 +++ b/fs/btrfs/delayed-inode.c
75618 @@ -462,7 +462,7 @@ static int __btrfs_add_delayed_deletion_item(struct btrfs_delayed_node *node,
75619
75620 static void finish_one_item(struct btrfs_delayed_root *delayed_root)
75621 {
75622 - int seq = atomic_inc_return(&delayed_root->items_seq);
75623 + int seq = atomic_inc_return_unchecked(&delayed_root->items_seq);
75624 if ((atomic_dec_return(&delayed_root->items) <
75625 BTRFS_DELAYED_BACKGROUND || seq % BTRFS_DELAYED_BATCH == 0) &&
75626 waitqueue_active(&delayed_root->wait))
75627 @@ -1412,7 +1412,7 @@ void btrfs_assert_delayed_root_empty(struct btrfs_root *root)
75628
75629 static int could_end_wait(struct btrfs_delayed_root *delayed_root, int seq)
75630 {
75631 - int val = atomic_read(&delayed_root->items_seq);
75632 + int val = atomic_read_unchecked(&delayed_root->items_seq);
75633
75634 if (val < seq || val >= seq + BTRFS_DELAYED_BATCH)
75635 return 1;
75636 @@ -1437,7 +1437,7 @@ void btrfs_balance_delayed_items(struct btrfs_root *root)
75637 int seq;
75638 int ret;
75639
75640 - seq = atomic_read(&delayed_root->items_seq);
75641 + seq = atomic_read_unchecked(&delayed_root->items_seq);
75642
75643 ret = btrfs_wq_run_delayed_node(delayed_root, fs_info, 0);
75644 if (ret)
75645 @@ -1690,7 +1690,7 @@ int btrfs_should_delete_dir_index(struct list_head *del_list,
75646 *
75647 */
75648 int btrfs_readdir_delayed_dir_index(struct dir_context *ctx,
75649 - struct list_head *ins_list)
75650 + struct list_head *ins_list, bool *emitted)
75651 {
75652 struct btrfs_dir_item *di;
75653 struct btrfs_delayed_item *curr, *next;
75654 @@ -1734,6 +1734,7 @@ int btrfs_readdir_delayed_dir_index(struct dir_context *ctx,
75655
75656 if (over)
75657 return 1;
75658 + *emitted = true;
75659 }
75660 return 0;
75661 }
75662 diff --git a/fs/btrfs/delayed-inode.h b/fs/btrfs/delayed-inode.h
75663 index f70119f..b7d2bb4 100644
75664 --- a/fs/btrfs/delayed-inode.h
75665 +++ b/fs/btrfs/delayed-inode.h
75666 @@ -43,7 +43,7 @@ struct btrfs_delayed_root {
75667 */
75668 struct list_head prepare_list;
75669 atomic_t items; /* for delayed items */
75670 - atomic_t items_seq; /* for delayed items */
75671 + atomic_unchecked_t items_seq; /* for delayed items */
75672 int nodes; /* for delayed nodes */
75673 wait_queue_head_t wait;
75674 };
75675 @@ -90,7 +90,7 @@ static inline void btrfs_init_delayed_root(
75676 struct btrfs_delayed_root *delayed_root)
75677 {
75678 atomic_set(&delayed_root->items, 0);
75679 - atomic_set(&delayed_root->items_seq, 0);
75680 + atomic_set_unchecked(&delayed_root->items_seq, 0);
75681 delayed_root->nodes = 0;
75682 spin_lock_init(&delayed_root->lock);
75683 init_waitqueue_head(&delayed_root->wait);
75684 @@ -144,7 +144,7 @@ void btrfs_put_delayed_items(struct list_head *ins_list,
75685 int btrfs_should_delete_dir_index(struct list_head *del_list,
75686 u64 index);
75687 int btrfs_readdir_delayed_dir_index(struct dir_context *ctx,
75688 - struct list_head *ins_list);
75689 + struct list_head *ins_list, bool *emitted);
75690
75691 /* for init */
75692 int __init btrfs_delayed_inode_init(void);
75693 diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
75694 index b823fac..c5155de 100644
75695 --- a/fs/btrfs/file.c
75696 +++ b/fs/btrfs/file.c
75697 @@ -1868,8 +1868,13 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
75698 struct btrfs_log_ctx ctx;
75699 int ret = 0;
75700 bool full_sync = 0;
75701 - const u64 len = end - start + 1;
75702 + u64 len;
75703
75704 + /*
75705 + * The range length can be represented by u64, we have to do the typecasts
75706 + * to avoid signed overflow if it's [0, LLONG_MAX] eg. from fsync()
75707 + */
75708 + len = (u64)end - (u64)start + 1;
75709 trace_btrfs_sync_file(file, datasync);
75710
75711 /*
75712 @@ -2057,8 +2062,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
75713 }
75714 }
75715 if (!full_sync) {
75716 - ret = btrfs_wait_ordered_range(inode, start,
75717 - end - start + 1);
75718 + ret = btrfs_wait_ordered_range(inode, start, len);
75719 if (ret) {
75720 btrfs_end_transaction(trans, root);
75721 goto out;
75722 diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
75723 index b54e630..6ecf999 100644
75724 --- a/fs/btrfs/inode.c
75725 +++ b/fs/btrfs/inode.c
75726 @@ -5632,6 +5632,7 @@ static int btrfs_real_readdir(struct file *file, struct dir_context *ctx)
75727 char *name_ptr;
75728 int name_len;
75729 int is_curr = 0; /* ctx->pos points to the current index? */
75730 + bool emitted;
75731
75732 /* FIXME, use a real flag for deciding about the key type */
75733 if (root->fs_info->tree_root == root)
75734 @@ -5660,6 +5661,7 @@ static int btrfs_real_readdir(struct file *file, struct dir_context *ctx)
75735 if (ret < 0)
75736 goto err;
75737
75738 + emitted = false;
75739 while (1) {
75740 leaf = path->nodes[0];
75741 slot = path->slots[0];
75742 @@ -5739,6 +5741,7 @@ skip:
75743
75744 if (over)
75745 goto nopos;
75746 + emitted = true;
75747 di_len = btrfs_dir_name_len(leaf, di) +
75748 btrfs_dir_data_len(leaf, di) + sizeof(*di);
75749 di_cur += di_len;
75750 @@ -5751,11 +5754,20 @@ next:
75751 if (key_type == BTRFS_DIR_INDEX_KEY) {
75752 if (is_curr)
75753 ctx->pos++;
75754 - ret = btrfs_readdir_delayed_dir_index(ctx, &ins_list);
75755 + ret = btrfs_readdir_delayed_dir_index(ctx, &ins_list, &emitted);
75756 if (ret)
75757 goto nopos;
75758 }
75759
75760 + /*
75761 + * If we haven't emitted any dir entry, we must not touch ctx->pos as
75762 + * it was was set to the termination value in previous call. We assume
75763 + * that "." and ".." were emitted if we reach this point and set the
75764 + * termination value as well for an empty directory.
75765 + */
75766 + if (ctx->pos > 2 && !emitted)
75767 + goto nopos;
75768 +
75769 /* Reached end of directory/root. Bump pos past the last item. */
75770 ctx->pos++;
75771
75772 diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c
75773 index cd7ef34..1e31ae3 100644
75774 --- a/fs/btrfs/super.c
75775 +++ b/fs/btrfs/super.c
75776 @@ -265,7 +265,7 @@ void __btrfs_abort_transaction(struct btrfs_trans_handle *trans,
75777 function, line, errstr);
75778 return;
75779 }
75780 - ACCESS_ONCE(trans->transaction->aborted) = errno;
75781 + ACCESS_ONCE_RW(trans->transaction->aborted) = errno;
75782 /* Wake up anybody who may be waiting on this transaction */
75783 wake_up(&root->fs_info->transaction_wait);
75784 wake_up(&root->fs_info->transaction_blocked_wait);
75785 diff --git a/fs/btrfs/sysfs.c b/fs/btrfs/sysfs.c
75786 index 603b0cc..8e3f600 100644
75787 --- a/fs/btrfs/sysfs.c
75788 +++ b/fs/btrfs/sysfs.c
75789 @@ -481,7 +481,7 @@ static int addrm_unknown_feature_attrs(struct btrfs_fs_info *fs_info, bool add)
75790 for (set = 0; set < FEAT_MAX; set++) {
75791 int i;
75792 struct attribute *attrs[2];
75793 - struct attribute_group agroup = {
75794 + attribute_group_no_const agroup = {
75795 .name = "features",
75796 .attrs = attrs,
75797 };
75798 diff --git a/fs/btrfs/tests/free-space-tests.c b/fs/btrfs/tests/free-space-tests.c
75799 index 2299bfd..4098e72 100644
75800 --- a/fs/btrfs/tests/free-space-tests.c
75801 +++ b/fs/btrfs/tests/free-space-tests.c
75802 @@ -463,7 +463,9 @@ test_steal_space_from_bitmap_to_extent(struct btrfs_block_group_cache *cache)
75803 * extent entry.
75804 */
75805 use_bitmap_op = cache->free_space_ctl->op->use_bitmap;
75806 - cache->free_space_ctl->op->use_bitmap = test_use_bitmap;
75807 + pax_open_kernel();
75808 + *(void **)&cache->free_space_ctl->op->use_bitmap = test_use_bitmap;
75809 + pax_close_kernel();
75810
75811 /*
75812 * Extent entry covering free space range [128Mb - 256Kb, 128Mb - 128Kb[
75813 @@ -870,7 +872,9 @@ test_steal_space_from_bitmap_to_extent(struct btrfs_block_group_cache *cache)
75814 if (ret)
75815 return ret;
75816
75817 - cache->free_space_ctl->op->use_bitmap = use_bitmap_op;
75818 + pax_open_kernel();
75819 + *(void **)&cache->free_space_ctl->op->use_bitmap = use_bitmap_op;
75820 + pax_close_kernel();
75821 __btrfs_remove_free_space_cache(cache->free_space_ctl);
75822
75823 return 0;
75824 diff --git a/fs/btrfs/tree-log.h b/fs/btrfs/tree-log.h
75825 index 6916a78..4598936 100644
75826 --- a/fs/btrfs/tree-log.h
75827 +++ b/fs/btrfs/tree-log.h
75828 @@ -45,7 +45,7 @@ static inline void btrfs_init_log_ctx(struct btrfs_log_ctx *ctx)
75829 static inline void btrfs_set_log_full_commit(struct btrfs_fs_info *fs_info,
75830 struct btrfs_trans_handle *trans)
75831 {
75832 - ACCESS_ONCE(fs_info->last_trans_log_full_commit) = trans->transid;
75833 + ACCESS_ONCE_RW(fs_info->last_trans_log_full_commit) = trans->transid;
75834 }
75835
75836 static inline int btrfs_need_log_full_commit(struct btrfs_fs_info *fs_info,
75837 diff --git a/fs/buffer.c b/fs/buffer.c
75838 index 1cf7a53..b49f8c0 100644
75839 --- a/fs/buffer.c
75840 +++ b/fs/buffer.c
75841 @@ -3440,7 +3440,7 @@ void __init buffer_init(void)
75842 bh_cachep = kmem_cache_create("buffer_head",
75843 sizeof(struct buffer_head), 0,
75844 (SLAB_RECLAIM_ACCOUNT|SLAB_PANIC|
75845 - SLAB_MEM_SPREAD),
75846 + SLAB_MEM_SPREAD|SLAB_NO_SANITIZE),
75847 NULL);
75848
75849 /*
75850 diff --git a/fs/cachefiles/bind.c b/fs/cachefiles/bind.c
75851 index 6af790f..ec4c1e6 100644
75852 --- a/fs/cachefiles/bind.c
75853 +++ b/fs/cachefiles/bind.c
75854 @@ -39,13 +39,11 @@ int cachefiles_daemon_bind(struct cachefiles_cache *cache, char *args)
75855 args);
75856
75857 /* start by checking things over */
75858 - ASSERT(cache->fstop_percent >= 0 &&
75859 - cache->fstop_percent < cache->fcull_percent &&
75860 + ASSERT(cache->fstop_percent < cache->fcull_percent &&
75861 cache->fcull_percent < cache->frun_percent &&
75862 cache->frun_percent < 100);
75863
75864 - ASSERT(cache->bstop_percent >= 0 &&
75865 - cache->bstop_percent < cache->bcull_percent &&
75866 + ASSERT(cache->bstop_percent < cache->bcull_percent &&
75867 cache->bcull_percent < cache->brun_percent &&
75868 cache->brun_percent < 100);
75869
75870 diff --git a/fs/cachefiles/daemon.c b/fs/cachefiles/daemon.c
75871 index f601def..b2cf704 100644
75872 --- a/fs/cachefiles/daemon.c
75873 +++ b/fs/cachefiles/daemon.c
75874 @@ -196,7 +196,7 @@ static ssize_t cachefiles_daemon_read(struct file *file, char __user *_buffer,
75875 if (n > buflen)
75876 return -EMSGSIZE;
75877
75878 - if (copy_to_user(_buffer, buffer, n) != 0)
75879 + if (n > sizeof(buffer) || copy_to_user(_buffer, buffer, n) != 0)
75880 return -EFAULT;
75881
75882 return n;
75883 @@ -222,7 +222,7 @@ static ssize_t cachefiles_daemon_write(struct file *file,
75884 if (test_bit(CACHEFILES_DEAD, &cache->flags))
75885 return -EIO;
75886
75887 - if (datalen < 0 || datalen > PAGE_SIZE - 1)
75888 + if (datalen > PAGE_SIZE - 1)
75889 return -EOPNOTSUPP;
75890
75891 /* drag the command string into the kernel so we can parse it */
75892 @@ -385,7 +385,7 @@ static int cachefiles_daemon_fstop(struct cachefiles_cache *cache, char *args)
75893 if (args[0] != '%' || args[1] != '\0')
75894 return -EINVAL;
75895
75896 - if (fstop < 0 || fstop >= cache->fcull_percent)
75897 + if (fstop >= cache->fcull_percent)
75898 return cachefiles_daemon_range_error(cache, args);
75899
75900 cache->fstop_percent = fstop;
75901 @@ -457,7 +457,7 @@ static int cachefiles_daemon_bstop(struct cachefiles_cache *cache, char *args)
75902 if (args[0] != '%' || args[1] != '\0')
75903 return -EINVAL;
75904
75905 - if (bstop < 0 || bstop >= cache->bcull_percent)
75906 + if (bstop >= cache->bcull_percent)
75907 return cachefiles_daemon_range_error(cache, args);
75908
75909 cache->bstop_percent = bstop;
75910 diff --git a/fs/cachefiles/internal.h b/fs/cachefiles/internal.h
75911 index aecd085..3584e2f 100644
75912 --- a/fs/cachefiles/internal.h
75913 +++ b/fs/cachefiles/internal.h
75914 @@ -65,7 +65,7 @@ struct cachefiles_cache {
75915 wait_queue_head_t daemon_pollwq; /* poll waitqueue for daemon */
75916 struct rb_root active_nodes; /* active nodes (can't be culled) */
75917 rwlock_t active_lock; /* lock for active_nodes */
75918 - atomic_t gravecounter; /* graveyard uniquifier */
75919 + atomic_unchecked_t gravecounter; /* graveyard uniquifier */
75920 unsigned frun_percent; /* when to stop culling (% files) */
75921 unsigned fcull_percent; /* when to start culling (% files) */
75922 unsigned fstop_percent; /* when to stop allocating (% files) */
75923 @@ -177,19 +177,19 @@ extern int cachefiles_check_in_use(struct cachefiles_cache *cache,
75924 * proc.c
75925 */
75926 #ifdef CONFIG_CACHEFILES_HISTOGRAM
75927 -extern atomic_t cachefiles_lookup_histogram[HZ];
75928 -extern atomic_t cachefiles_mkdir_histogram[HZ];
75929 -extern atomic_t cachefiles_create_histogram[HZ];
75930 +extern atomic_unchecked_t cachefiles_lookup_histogram[HZ];
75931 +extern atomic_unchecked_t cachefiles_mkdir_histogram[HZ];
75932 +extern atomic_unchecked_t cachefiles_create_histogram[HZ];
75933
75934 extern int __init cachefiles_proc_init(void);
75935 extern void cachefiles_proc_cleanup(void);
75936 static inline
75937 -void cachefiles_hist(atomic_t histogram[], unsigned long start_jif)
75938 +void cachefiles_hist(atomic_unchecked_t histogram[], unsigned long start_jif)
75939 {
75940 unsigned long jif = jiffies - start_jif;
75941 if (jif >= HZ)
75942 jif = HZ - 1;
75943 - atomic_inc(&histogram[jif]);
75944 + atomic_inc_unchecked(&histogram[jif]);
75945 }
75946
75947 #else
75948 diff --git a/fs/cachefiles/namei.c b/fs/cachefiles/namei.c
75949 index fc1056f..501a546 100644
75950 --- a/fs/cachefiles/namei.c
75951 +++ b/fs/cachefiles/namei.c
75952 @@ -312,7 +312,7 @@ try_again:
75953 /* first step is to make up a grave dentry in the graveyard */
75954 sprintf(nbuffer, "%08x%08x",
75955 (uint32_t) get_seconds(),
75956 - (uint32_t) atomic_inc_return(&cache->gravecounter));
75957 + (uint32_t) atomic_inc_return_unchecked(&cache->gravecounter));
75958
75959 /* do the multiway lock magic */
75960 trap = lock_rename(cache->graveyard, dir);
75961 diff --git a/fs/cachefiles/proc.c b/fs/cachefiles/proc.c
75962 index eccd339..4c1d995 100644
75963 --- a/fs/cachefiles/proc.c
75964 +++ b/fs/cachefiles/proc.c
75965 @@ -14,9 +14,9 @@
75966 #include <linux/seq_file.h>
75967 #include "internal.h"
75968
75969 -atomic_t cachefiles_lookup_histogram[HZ];
75970 -atomic_t cachefiles_mkdir_histogram[HZ];
75971 -atomic_t cachefiles_create_histogram[HZ];
75972 +atomic_unchecked_t cachefiles_lookup_histogram[HZ];
75973 +atomic_unchecked_t cachefiles_mkdir_histogram[HZ];
75974 +atomic_unchecked_t cachefiles_create_histogram[HZ];
75975
75976 /*
75977 * display the latency histogram
75978 @@ -35,9 +35,9 @@ static int cachefiles_histogram_show(struct seq_file *m, void *v)
75979 return 0;
75980 default:
75981 index = (unsigned long) v - 3;
75982 - x = atomic_read(&cachefiles_lookup_histogram[index]);
75983 - y = atomic_read(&cachefiles_mkdir_histogram[index]);
75984 - z = atomic_read(&cachefiles_create_histogram[index]);
75985 + x = atomic_read_unchecked(&cachefiles_lookup_histogram[index]);
75986 + y = atomic_read_unchecked(&cachefiles_mkdir_histogram[index]);
75987 + z = atomic_read_unchecked(&cachefiles_create_histogram[index]);
75988 if (x == 0 && y == 0 && z == 0)
75989 return 0;
75990
75991 diff --git a/fs/ceph/dir.c b/fs/ceph/dir.c
75992 index 9314b4e..4a1f602 100644
75993 --- a/fs/ceph/dir.c
75994 +++ b/fs/ceph/dir.c
75995 @@ -214,10 +214,18 @@ static int __dcache_readdir(struct file *file, struct dir_context *ctx,
75996 spin_unlock(&dentry->d_lock);
75997
75998 if (emit_dentry) {
75999 + char d_name[DNAME_INLINE_LEN];
76000 + const unsigned char *name;
76001 +
76002 dout(" %llu (%llu) dentry %p %pd %p\n", di->offset, ctx->pos,
76003 dentry, dentry, d_inode(dentry));
76004 ctx->pos = di->offset;
76005 - if (!dir_emit(ctx, dentry->d_name.name,
76006 + name = dentry->d_name.name;
76007 + if (name == dentry->d_iname) {
76008 + memcpy(d_name, name, dentry->d_name.len);
76009 + name = d_name;
76010 + }
76011 + if (!dir_emit(ctx, name,
76012 dentry->d_name.len,
76013 ceph_translate_ino(dentry->d_sb,
76014 d_inode(dentry)->i_ino),
76015 @@ -259,7 +267,7 @@ static int ceph_readdir(struct file *file, struct dir_context *ctx)
76016 struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
76017 struct ceph_mds_client *mdsc = fsc->mdsc;
76018 unsigned frag = fpos_frag(ctx->pos);
76019 - int off = fpos_off(ctx->pos);
76020 + unsigned int off = fpos_off(ctx->pos);
76021 int err;
76022 u32 ftype;
76023 struct ceph_mds_reply_info_parsed *rinfo;
76024 diff --git a/fs/ceph/super.c b/fs/ceph/super.c
76025 index 7b6bfcb..f8d5416 100644
76026 --- a/fs/ceph/super.c
76027 +++ b/fs/ceph/super.c
76028 @@ -906,7 +906,7 @@ static int ceph_compare_super(struct super_block *sb, void *data)
76029 /*
76030 * construct our own bdi so we can control readahead, etc.
76031 */
76032 -static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
76033 +static atomic_long_unchecked_t bdi_seq = ATOMIC_LONG_INIT(0);
76034
76035 static int ceph_register_bdi(struct super_block *sb,
76036 struct ceph_fs_client *fsc)
76037 @@ -923,7 +923,7 @@ static int ceph_register_bdi(struct super_block *sb,
76038 VM_MAX_READAHEAD * 1024 / PAGE_CACHE_SIZE;
76039
76040 err = bdi_register(&fsc->backing_dev_info, NULL, "ceph-%ld",
76041 - atomic_long_inc_return(&bdi_seq));
76042 + atomic_long_inc_return_unchecked(&bdi_seq));
76043 if (!err)
76044 sb->s_bdi = &fsc->backing_dev_info;
76045 return err;
76046 diff --git a/fs/cifs/cifs_debug.c b/fs/cifs/cifs_debug.c
76047 index 7febcf2..62a5721 100644
76048 --- a/fs/cifs/cifs_debug.c
76049 +++ b/fs/cifs/cifs_debug.c
76050 @@ -269,8 +269,8 @@ static ssize_t cifs_stats_proc_write(struct file *file,
76051
76052 if (strtobool(&c, &bv) == 0) {
76053 #ifdef CONFIG_CIFS_STATS2
76054 - atomic_set(&totBufAllocCount, 0);
76055 - atomic_set(&totSmBufAllocCount, 0);
76056 + atomic_set_unchecked(&totBufAllocCount, 0);
76057 + atomic_set_unchecked(&totSmBufAllocCount, 0);
76058 #endif /* CONFIG_CIFS_STATS2 */
76059 spin_lock(&cifs_tcp_ses_lock);
76060 list_for_each(tmp1, &cifs_tcp_ses_list) {
76061 @@ -283,7 +283,7 @@ static ssize_t cifs_stats_proc_write(struct file *file,
76062 tcon = list_entry(tmp3,
76063 struct cifs_tcon,
76064 tcon_list);
76065 - atomic_set(&tcon->num_smbs_sent, 0);
76066 + atomic_set_unchecked(&tcon->num_smbs_sent, 0);
76067 if (server->ops->clear_stats)
76068 server->ops->clear_stats(tcon);
76069 }
76070 @@ -315,8 +315,8 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
76071 smBufAllocCount.counter, cifs_min_small);
76072 #ifdef CONFIG_CIFS_STATS2
76073 seq_printf(m, "Total Large %d Small %d Allocations\n",
76074 - atomic_read(&totBufAllocCount),
76075 - atomic_read(&totSmBufAllocCount));
76076 + atomic_read_unchecked(&totBufAllocCount),
76077 + atomic_read_unchecked(&totSmBufAllocCount));
76078 #endif /* CONFIG_CIFS_STATS2 */
76079
76080 seq_printf(m, "Operations (MIDs): %d\n", atomic_read(&midCount));
76081 @@ -345,7 +345,7 @@ static int cifs_stats_proc_show(struct seq_file *m, void *v)
76082 if (tcon->need_reconnect)
76083 seq_puts(m, "\tDISCONNECTED ");
76084 seq_printf(m, "\nSMBs: %d",
76085 - atomic_read(&tcon->num_smbs_sent));
76086 + atomic_read_unchecked(&tcon->num_smbs_sent));
76087 if (server->ops->print_stats)
76088 server->ops->print_stats(m, tcon);
76089 }
76090 diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
76091 index 6a1119e..b2f2160 100644
76092 --- a/fs/cifs/cifsfs.c
76093 +++ b/fs/cifs/cifsfs.c
76094 @@ -1082,7 +1082,7 @@ cifs_init_request_bufs(void)
76095 */
76096 cifs_req_cachep = kmem_cache_create("cifs_request",
76097 CIFSMaxBufSize + max_hdr_size, 0,
76098 - SLAB_HWCACHE_ALIGN, NULL);
76099 + SLAB_HWCACHE_ALIGN | SLAB_USERCOPY, NULL);
76100 if (cifs_req_cachep == NULL)
76101 return -ENOMEM;
76102
76103 @@ -1109,7 +1109,7 @@ cifs_init_request_bufs(void)
76104 efficient to alloc 1 per page off the slab compared to 17K (5page)
76105 alloc of large cifs buffers even when page debugging is on */
76106 cifs_sm_req_cachep = kmem_cache_create("cifs_small_rq",
76107 - MAX_CIFS_SMALL_BUFFER_SIZE, 0, SLAB_HWCACHE_ALIGN,
76108 + MAX_CIFS_SMALL_BUFFER_SIZE, 0, SLAB_HWCACHE_ALIGN | SLAB_USERCOPY,
76109 NULL);
76110 if (cifs_sm_req_cachep == NULL) {
76111 mempool_destroy(cifs_req_poolp);
76112 @@ -1194,8 +1194,8 @@ init_cifs(void)
76113 atomic_set(&bufAllocCount, 0);
76114 atomic_set(&smBufAllocCount, 0);
76115 #ifdef CONFIG_CIFS_STATS2
76116 - atomic_set(&totBufAllocCount, 0);
76117 - atomic_set(&totSmBufAllocCount, 0);
76118 + atomic_set_unchecked(&totBufAllocCount, 0);
76119 + atomic_set_unchecked(&totSmBufAllocCount, 0);
76120 #endif /* CONFIG_CIFS_STATS2 */
76121
76122 atomic_set(&midCount, 0);
76123 diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
76124 index b406a32..243eb1c 100644
76125 --- a/fs/cifs/cifsglob.h
76126 +++ b/fs/cifs/cifsglob.h
76127 @@ -832,35 +832,35 @@ struct cifs_tcon {
76128 __u16 Flags; /* optional support bits */
76129 enum statusEnum tidStatus;
76130 #ifdef CONFIG_CIFS_STATS
76131 - atomic_t num_smbs_sent;
76132 + atomic_unchecked_t num_smbs_sent;
76133 union {
76134 struct {
76135 - atomic_t num_writes;
76136 - atomic_t num_reads;
76137 - atomic_t num_flushes;
76138 - atomic_t num_oplock_brks;
76139 - atomic_t num_opens;
76140 - atomic_t num_closes;
76141 - atomic_t num_deletes;
76142 - atomic_t num_mkdirs;
76143 - atomic_t num_posixopens;
76144 - atomic_t num_posixmkdirs;
76145 - atomic_t num_rmdirs;
76146 - atomic_t num_renames;
76147 - atomic_t num_t2renames;
76148 - atomic_t num_ffirst;
76149 - atomic_t num_fnext;
76150 - atomic_t num_fclose;
76151 - atomic_t num_hardlinks;
76152 - atomic_t num_symlinks;
76153 - atomic_t num_locks;
76154 - atomic_t num_acl_get;
76155 - atomic_t num_acl_set;
76156 + atomic_unchecked_t num_writes;
76157 + atomic_unchecked_t num_reads;
76158 + atomic_unchecked_t num_flushes;
76159 + atomic_unchecked_t num_oplock_brks;
76160 + atomic_unchecked_t num_opens;
76161 + atomic_unchecked_t num_closes;
76162 + atomic_unchecked_t num_deletes;
76163 + atomic_unchecked_t num_mkdirs;
76164 + atomic_unchecked_t num_posixopens;
76165 + atomic_unchecked_t num_posixmkdirs;
76166 + atomic_unchecked_t num_rmdirs;
76167 + atomic_unchecked_t num_renames;
76168 + atomic_unchecked_t num_t2renames;
76169 + atomic_unchecked_t num_ffirst;
76170 + atomic_unchecked_t num_fnext;
76171 + atomic_unchecked_t num_fclose;
76172 + atomic_unchecked_t num_hardlinks;
76173 + atomic_unchecked_t num_symlinks;
76174 + atomic_unchecked_t num_locks;
76175 + atomic_unchecked_t num_acl_get;
76176 + atomic_unchecked_t num_acl_set;
76177 } cifs_stats;
76178 #ifdef CONFIG_CIFS_SMB2
76179 struct {
76180 - atomic_t smb2_com_sent[NUMBER_OF_SMB2_COMMANDS];
76181 - atomic_t smb2_com_failed[NUMBER_OF_SMB2_COMMANDS];
76182 + atomic_unchecked_t smb2_com_sent[NUMBER_OF_SMB2_COMMANDS];
76183 + atomic_unchecked_t smb2_com_failed[NUMBER_OF_SMB2_COMMANDS];
76184 } smb2_stats;
76185 #endif /* CONFIG_CIFS_SMB2 */
76186 } stats;
76187 @@ -1207,7 +1207,7 @@ convert_delimiter(char *path, char delim)
76188 }
76189
76190 #ifdef CONFIG_CIFS_STATS
76191 -#define cifs_stats_inc atomic_inc
76192 +#define cifs_stats_inc atomic_inc_unchecked
76193
76194 static inline void cifs_stats_bytes_written(struct cifs_tcon *tcon,
76195 unsigned int bytes)
76196 @@ -1574,8 +1574,8 @@ GLOBAL_EXTERN atomic_t tconInfoReconnectCount;
76197 /* Various Debug counters */
76198 GLOBAL_EXTERN atomic_t bufAllocCount; /* current number allocated */
76199 #ifdef CONFIG_CIFS_STATS2
76200 -GLOBAL_EXTERN atomic_t totBufAllocCount; /* total allocated over all time */
76201 -GLOBAL_EXTERN atomic_t totSmBufAllocCount;
76202 +GLOBAL_EXTERN atomic_unchecked_t totBufAllocCount; /* total allocated over all time */
76203 +GLOBAL_EXTERN atomic_unchecked_t totSmBufAllocCount;
76204 #endif
76205 GLOBAL_EXTERN atomic_t smBufAllocCount;
76206 GLOBAL_EXTERN atomic_t midCount;
76207 diff --git a/fs/cifs/file.c b/fs/cifs/file.c
76208 index 3f50cee..7741620 100644
76209 --- a/fs/cifs/file.c
76210 +++ b/fs/cifs/file.c
76211 @@ -2054,10 +2054,14 @@ static int cifs_writepages(struct address_space *mapping,
76212 index = mapping->writeback_index; /* Start from prev offset */
76213 end = -1;
76214 } else {
76215 - index = wbc->range_start >> PAGE_CACHE_SHIFT;
76216 - end = wbc->range_end >> PAGE_CACHE_SHIFT;
76217 - if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX)
76218 + if (wbc->range_start == 0 && wbc->range_end == LLONG_MAX) {
76219 range_whole = true;
76220 + index = 0;
76221 + end = ULONG_MAX;
76222 + } else {
76223 + index = wbc->range_start >> PAGE_CACHE_SHIFT;
76224 + end = wbc->range_end >> PAGE_CACHE_SHIFT;
76225 + }
76226 scanned = true;
76227 }
76228 server = cifs_sb_master_tcon(cifs_sb)->ses->server;
76229 diff --git a/fs/cifs/misc.c b/fs/cifs/misc.c
76230 index 8442b8b..ea6986f 100644
76231 --- a/fs/cifs/misc.c
76232 +++ b/fs/cifs/misc.c
76233 @@ -170,7 +170,7 @@ cifs_buf_get(void)
76234 memset(ret_buf, 0, buf_size + 3);
76235 atomic_inc(&bufAllocCount);
76236 #ifdef CONFIG_CIFS_STATS2
76237 - atomic_inc(&totBufAllocCount);
76238 + atomic_inc_unchecked(&totBufAllocCount);
76239 #endif /* CONFIG_CIFS_STATS2 */
76240 }
76241
76242 @@ -205,7 +205,7 @@ cifs_small_buf_get(void)
76243 /* memset(ret_buf, 0, sizeof(struct smb_hdr) + 27);*/
76244 atomic_inc(&smBufAllocCount);
76245 #ifdef CONFIG_CIFS_STATS2
76246 - atomic_inc(&totSmBufAllocCount);
76247 + atomic_inc_unchecked(&totSmBufAllocCount);
76248 #endif /* CONFIG_CIFS_STATS2 */
76249
76250 }
76251 diff --git a/fs/cifs/smb1ops.c b/fs/cifs/smb1ops.c
76252 index fc537c2..47d654c 100644
76253 --- a/fs/cifs/smb1ops.c
76254 +++ b/fs/cifs/smb1ops.c
76255 @@ -622,27 +622,27 @@ static void
76256 cifs_clear_stats(struct cifs_tcon *tcon)
76257 {
76258 #ifdef CONFIG_CIFS_STATS
76259 - atomic_set(&tcon->stats.cifs_stats.num_writes, 0);
76260 - atomic_set(&tcon->stats.cifs_stats.num_reads, 0);
76261 - atomic_set(&tcon->stats.cifs_stats.num_flushes, 0);
76262 - atomic_set(&tcon->stats.cifs_stats.num_oplock_brks, 0);
76263 - atomic_set(&tcon->stats.cifs_stats.num_opens, 0);
76264 - atomic_set(&tcon->stats.cifs_stats.num_posixopens, 0);
76265 - atomic_set(&tcon->stats.cifs_stats.num_posixmkdirs, 0);
76266 - atomic_set(&tcon->stats.cifs_stats.num_closes, 0);
76267 - atomic_set(&tcon->stats.cifs_stats.num_deletes, 0);
76268 - atomic_set(&tcon->stats.cifs_stats.num_mkdirs, 0);
76269 - atomic_set(&tcon->stats.cifs_stats.num_rmdirs, 0);
76270 - atomic_set(&tcon->stats.cifs_stats.num_renames, 0);
76271 - atomic_set(&tcon->stats.cifs_stats.num_t2renames, 0);
76272 - atomic_set(&tcon->stats.cifs_stats.num_ffirst, 0);
76273 - atomic_set(&tcon->stats.cifs_stats.num_fnext, 0);
76274 - atomic_set(&tcon->stats.cifs_stats.num_fclose, 0);
76275 - atomic_set(&tcon->stats.cifs_stats.num_hardlinks, 0);
76276 - atomic_set(&tcon->stats.cifs_stats.num_symlinks, 0);
76277 - atomic_set(&tcon->stats.cifs_stats.num_locks, 0);
76278 - atomic_set(&tcon->stats.cifs_stats.num_acl_get, 0);
76279 - atomic_set(&tcon->stats.cifs_stats.num_acl_set, 0);
76280 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_writes, 0);
76281 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_reads, 0);
76282 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_flushes, 0);
76283 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_oplock_brks, 0);
76284 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_opens, 0);
76285 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_posixopens, 0);
76286 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_posixmkdirs, 0);
76287 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_closes, 0);
76288 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_deletes, 0);
76289 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_mkdirs, 0);
76290 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_rmdirs, 0);
76291 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_renames, 0);
76292 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_t2renames, 0);
76293 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_ffirst, 0);
76294 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_fnext, 0);
76295 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_fclose, 0);
76296 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_hardlinks, 0);
76297 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_symlinks, 0);
76298 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_locks, 0);
76299 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_acl_get, 0);
76300 + atomic_set_unchecked(&tcon->stats.cifs_stats.num_acl_set, 0);
76301 #endif
76302 }
76303
76304 @@ -651,36 +651,36 @@ cifs_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
76305 {
76306 #ifdef CONFIG_CIFS_STATS
76307 seq_printf(m, " Oplocks breaks: %d",
76308 - atomic_read(&tcon->stats.cifs_stats.num_oplock_brks));
76309 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_oplock_brks));
76310 seq_printf(m, "\nReads: %d Bytes: %llu",
76311 - atomic_read(&tcon->stats.cifs_stats.num_reads),
76312 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_reads),
76313 (long long)(tcon->bytes_read));
76314 seq_printf(m, "\nWrites: %d Bytes: %llu",
76315 - atomic_read(&tcon->stats.cifs_stats.num_writes),
76316 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_writes),
76317 (long long)(tcon->bytes_written));
76318 seq_printf(m, "\nFlushes: %d",
76319 - atomic_read(&tcon->stats.cifs_stats.num_flushes));
76320 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_flushes));
76321 seq_printf(m, "\nLocks: %d HardLinks: %d Symlinks: %d",
76322 - atomic_read(&tcon->stats.cifs_stats.num_locks),
76323 - atomic_read(&tcon->stats.cifs_stats.num_hardlinks),
76324 - atomic_read(&tcon->stats.cifs_stats.num_symlinks));
76325 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_locks),
76326 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_hardlinks),
76327 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_symlinks));
76328 seq_printf(m, "\nOpens: %d Closes: %d Deletes: %d",
76329 - atomic_read(&tcon->stats.cifs_stats.num_opens),
76330 - atomic_read(&tcon->stats.cifs_stats.num_closes),
76331 - atomic_read(&tcon->stats.cifs_stats.num_deletes));
76332 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_opens),
76333 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_closes),
76334 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_deletes));
76335 seq_printf(m, "\nPosix Opens: %d Posix Mkdirs: %d",
76336 - atomic_read(&tcon->stats.cifs_stats.num_posixopens),
76337 - atomic_read(&tcon->stats.cifs_stats.num_posixmkdirs));
76338 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_posixopens),
76339 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_posixmkdirs));
76340 seq_printf(m, "\nMkdirs: %d Rmdirs: %d",
76341 - atomic_read(&tcon->stats.cifs_stats.num_mkdirs),
76342 - atomic_read(&tcon->stats.cifs_stats.num_rmdirs));
76343 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_mkdirs),
76344 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_rmdirs));
76345 seq_printf(m, "\nRenames: %d T2 Renames %d",
76346 - atomic_read(&tcon->stats.cifs_stats.num_renames),
76347 - atomic_read(&tcon->stats.cifs_stats.num_t2renames));
76348 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_renames),
76349 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_t2renames));
76350 seq_printf(m, "\nFindFirst: %d FNext %d FClose %d",
76351 - atomic_read(&tcon->stats.cifs_stats.num_ffirst),
76352 - atomic_read(&tcon->stats.cifs_stats.num_fnext),
76353 - atomic_read(&tcon->stats.cifs_stats.num_fclose));
76354 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_ffirst),
76355 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_fnext),
76356 + atomic_read_unchecked(&tcon->stats.cifs_stats.num_fclose));
76357 #endif
76358 }
76359
76360 diff --git a/fs/cifs/smb2ops.c b/fs/cifs/smb2ops.c
76361 index 18da19f..38a3a79 100644
76362 --- a/fs/cifs/smb2ops.c
76363 +++ b/fs/cifs/smb2ops.c
76364 @@ -422,8 +422,8 @@ smb2_clear_stats(struct cifs_tcon *tcon)
76365 #ifdef CONFIG_CIFS_STATS
76366 int i;
76367 for (i = 0; i < NUMBER_OF_SMB2_COMMANDS; i++) {
76368 - atomic_set(&tcon->stats.smb2_stats.smb2_com_sent[i], 0);
76369 - atomic_set(&tcon->stats.smb2_stats.smb2_com_failed[i], 0);
76370 + atomic_set_unchecked(&tcon->stats.smb2_stats.smb2_com_sent[i], 0);
76371 + atomic_set_unchecked(&tcon->stats.smb2_stats.smb2_com_failed[i], 0);
76372 }
76373 #endif
76374 }
76375 @@ -463,65 +463,65 @@ static void
76376 smb2_print_stats(struct seq_file *m, struct cifs_tcon *tcon)
76377 {
76378 #ifdef CONFIG_CIFS_STATS
76379 - atomic_t *sent = tcon->stats.smb2_stats.smb2_com_sent;
76380 - atomic_t *failed = tcon->stats.smb2_stats.smb2_com_failed;
76381 + atomic_unchecked_t *sent = tcon->stats.smb2_stats.smb2_com_sent;
76382 + atomic_unchecked_t *failed = tcon->stats.smb2_stats.smb2_com_failed;
76383 seq_printf(m, "\nNegotiates: %d sent %d failed",
76384 - atomic_read(&sent[SMB2_NEGOTIATE_HE]),
76385 - atomic_read(&failed[SMB2_NEGOTIATE_HE]));
76386 + atomic_read_unchecked(&sent[SMB2_NEGOTIATE_HE]),
76387 + atomic_read_unchecked(&failed[SMB2_NEGOTIATE_HE]));
76388 seq_printf(m, "\nSessionSetups: %d sent %d failed",
76389 - atomic_read(&sent[SMB2_SESSION_SETUP_HE]),
76390 - atomic_read(&failed[SMB2_SESSION_SETUP_HE]));
76391 + atomic_read_unchecked(&sent[SMB2_SESSION_SETUP_HE]),
76392 + atomic_read_unchecked(&failed[SMB2_SESSION_SETUP_HE]));
76393 seq_printf(m, "\nLogoffs: %d sent %d failed",
76394 - atomic_read(&sent[SMB2_LOGOFF_HE]),
76395 - atomic_read(&failed[SMB2_LOGOFF_HE]));
76396 + atomic_read_unchecked(&sent[SMB2_LOGOFF_HE]),
76397 + atomic_read_unchecked(&failed[SMB2_LOGOFF_HE]));
76398 seq_printf(m, "\nTreeConnects: %d sent %d failed",
76399 - atomic_read(&sent[SMB2_TREE_CONNECT_HE]),
76400 - atomic_read(&failed[SMB2_TREE_CONNECT_HE]));
76401 + atomic_read_unchecked(&sent[SMB2_TREE_CONNECT_HE]),
76402 + atomic_read_unchecked(&failed[SMB2_TREE_CONNECT_HE]));
76403 seq_printf(m, "\nTreeDisconnects: %d sent %d failed",
76404 - atomic_read(&sent[SMB2_TREE_DISCONNECT_HE]),
76405 - atomic_read(&failed[SMB2_TREE_DISCONNECT_HE]));
76406 + atomic_read_unchecked(&sent[SMB2_TREE_DISCONNECT_HE]),
76407 + atomic_read_unchecked(&failed[SMB2_TREE_DISCONNECT_HE]));
76408 seq_printf(m, "\nCreates: %d sent %d failed",
76409 - atomic_read(&sent[SMB2_CREATE_HE]),
76410 - atomic_read(&failed[SMB2_CREATE_HE]));
76411 + atomic_read_unchecked(&sent[SMB2_CREATE_HE]),
76412 + atomic_read_unchecked(&failed[SMB2_CREATE_HE]));
76413 seq_printf(m, "\nCloses: %d sent %d failed",
76414 - atomic_read(&sent[SMB2_CLOSE_HE]),
76415 - atomic_read(&failed[SMB2_CLOSE_HE]));
76416 + atomic_read_unchecked(&sent[SMB2_CLOSE_HE]),
76417 + atomic_read_unchecked(&failed[SMB2_CLOSE_HE]));
76418 seq_printf(m, "\nFlushes: %d sent %d failed",
76419 - atomic_read(&sent[SMB2_FLUSH_HE]),
76420 - atomic_read(&failed[SMB2_FLUSH_HE]));
76421 + atomic_read_unchecked(&sent[SMB2_FLUSH_HE]),
76422 + atomic_read_unchecked(&failed[SMB2_FLUSH_HE]));
76423 seq_printf(m, "\nReads: %d sent %d failed",
76424 - atomic_read(&sent[SMB2_READ_HE]),
76425 - atomic_read(&failed[SMB2_READ_HE]));
76426 + atomic_read_unchecked(&sent[SMB2_READ_HE]),
76427 + atomic_read_unchecked(&failed[SMB2_READ_HE]));
76428 seq_printf(m, "\nWrites: %d sent %d failed",
76429 - atomic_read(&sent[SMB2_WRITE_HE]),
76430 - atomic_read(&failed[SMB2_WRITE_HE]));
76431 + atomic_read_unchecked(&sent[SMB2_WRITE_HE]),
76432 + atomic_read_unchecked(&failed[SMB2_WRITE_HE]));
76433 seq_printf(m, "\nLocks: %d sent %d failed",
76434 - atomic_read(&sent[SMB2_LOCK_HE]),
76435 - atomic_read(&failed[SMB2_LOCK_HE]));
76436 + atomic_read_unchecked(&sent[SMB2_LOCK_HE]),
76437 + atomic_read_unchecked(&failed[SMB2_LOCK_HE]));
76438 seq_printf(m, "\nIOCTLs: %d sent %d failed",
76439 - atomic_read(&sent[SMB2_IOCTL_HE]),
76440 - atomic_read(&failed[SMB2_IOCTL_HE]));
76441 + atomic_read_unchecked(&sent[SMB2_IOCTL_HE]),
76442 + atomic_read_unchecked(&failed[SMB2_IOCTL_HE]));
76443 seq_printf(m, "\nCancels: %d sent %d failed",
76444 - atomic_read(&sent[SMB2_CANCEL_HE]),
76445 - atomic_read(&failed[SMB2_CANCEL_HE]));
76446 + atomic_read_unchecked(&sent[SMB2_CANCEL_HE]),
76447 + atomic_read_unchecked(&failed[SMB2_CANCEL_HE]));
76448 seq_printf(m, "\nEchos: %d sent %d failed",
76449 - atomic_read(&sent[SMB2_ECHO_HE]),
76450 - atomic_read(&failed[SMB2_ECHO_HE]));
76451 + atomic_read_unchecked(&sent[SMB2_ECHO_HE]),
76452 + atomic_read_unchecked(&failed[SMB2_ECHO_HE]));
76453 seq_printf(m, "\nQueryDirectories: %d sent %d failed",
76454 - atomic_read(&sent[SMB2_QUERY_DIRECTORY_HE]),
76455 - atomic_read(&failed[SMB2_QUERY_DIRECTORY_HE]));
76456 + atomic_read_unchecked(&sent[SMB2_QUERY_DIRECTORY_HE]),
76457 + atomic_read_unchecked(&failed[SMB2_QUERY_DIRECTORY_HE]));
76458 seq_printf(m, "\nChangeNotifies: %d sent %d failed",
76459 - atomic_read(&sent[SMB2_CHANGE_NOTIFY_HE]),
76460 - atomic_read(&failed[SMB2_CHANGE_NOTIFY_HE]));
76461 + atomic_read_unchecked(&sent[SMB2_CHANGE_NOTIFY_HE]),
76462 + atomic_read_unchecked(&failed[SMB2_CHANGE_NOTIFY_HE]));
76463 seq_printf(m, "\nQueryInfos: %d sent %d failed",
76464 - atomic_read(&sent[SMB2_QUERY_INFO_HE]),
76465 - atomic_read(&failed[SMB2_QUERY_INFO_HE]));
76466 + atomic_read_unchecked(&sent[SMB2_QUERY_INFO_HE]),
76467 + atomic_read_unchecked(&failed[SMB2_QUERY_INFO_HE]));
76468 seq_printf(m, "\nSetInfos: %d sent %d failed",
76469 - atomic_read(&sent[SMB2_SET_INFO_HE]),
76470 - atomic_read(&failed[SMB2_SET_INFO_HE]));
76471 + atomic_read_unchecked(&sent[SMB2_SET_INFO_HE]),
76472 + atomic_read_unchecked(&failed[SMB2_SET_INFO_HE]));
76473 seq_printf(m, "\nOplockBreaks: %d sent %d failed",
76474 - atomic_read(&sent[SMB2_OPLOCK_BREAK_HE]),
76475 - atomic_read(&failed[SMB2_OPLOCK_BREAK_HE]));
76476 + atomic_read_unchecked(&sent[SMB2_OPLOCK_BREAK_HE]),
76477 + atomic_read_unchecked(&failed[SMB2_OPLOCK_BREAK_HE]));
76478 #endif
76479 }
76480
76481 diff --git a/fs/cifs/smb2pdu.c b/fs/cifs/smb2pdu.c
76482 index 60dd831..42f911c 100644
76483 --- a/fs/cifs/smb2pdu.c
76484 +++ b/fs/cifs/smb2pdu.c
76485 @@ -2252,8 +2252,7 @@ SMB2_query_directory(const unsigned int xid, struct cifs_tcon *tcon,
76486 default:
76487 cifs_dbg(VFS, "info level %u isn't supported\n",
76488 srch_inf->info_level);
76489 - rc = -EINVAL;
76490 - goto qdir_exit;
76491 + return -EINVAL;
76492 }
76493
76494 req->FileIndex = cpu_to_le32(index);
76495 diff --git a/fs/coda/cache.c b/fs/coda/cache.c
76496 index 5bb630a..043dc70 100644
76497 --- a/fs/coda/cache.c
76498 +++ b/fs/coda/cache.c
76499 @@ -24,7 +24,7 @@
76500 #include "coda_linux.h"
76501 #include "coda_cache.h"
76502
76503 -static atomic_t permission_epoch = ATOMIC_INIT(0);
76504 +static atomic_unchecked_t permission_epoch = ATOMIC_INIT(0);
76505
76506 /* replace or extend an acl cache hit */
76507 void coda_cache_enter(struct inode *inode, int mask)
76508 @@ -32,7 +32,7 @@ void coda_cache_enter(struct inode *inode, int mask)
76509 struct coda_inode_info *cii = ITOC(inode);
76510
76511 spin_lock(&cii->c_lock);
76512 - cii->c_cached_epoch = atomic_read(&permission_epoch);
76513 + cii->c_cached_epoch = atomic_read_unchecked(&permission_epoch);
76514 if (!uid_eq(cii->c_uid, current_fsuid())) {
76515 cii->c_uid = current_fsuid();
76516 cii->c_cached_perm = mask;
76517 @@ -46,14 +46,14 @@ void coda_cache_clear_inode(struct inode *inode)
76518 {
76519 struct coda_inode_info *cii = ITOC(inode);
76520 spin_lock(&cii->c_lock);
76521 - cii->c_cached_epoch = atomic_read(&permission_epoch) - 1;
76522 + cii->c_cached_epoch = atomic_read_unchecked(&permission_epoch) - 1;
76523 spin_unlock(&cii->c_lock);
76524 }
76525
76526 /* remove all acl caches */
76527 void coda_cache_clear_all(struct super_block *sb)
76528 {
76529 - atomic_inc(&permission_epoch);
76530 + atomic_inc_unchecked(&permission_epoch);
76531 }
76532
76533
76534 @@ -66,7 +66,7 @@ int coda_cache_check(struct inode *inode, int mask)
76535 spin_lock(&cii->c_lock);
76536 hit = (mask & cii->c_cached_perm) == mask &&
76537 uid_eq(cii->c_uid, current_fsuid()) &&
76538 - cii->c_cached_epoch == atomic_read(&permission_epoch);
76539 + cii->c_cached_epoch == atomic_read_unchecked(&permission_epoch);
76540 spin_unlock(&cii->c_lock);
76541
76542 return hit;
76543 diff --git a/fs/compat.c b/fs/compat.c
76544 index 6fd272d..dd34ba2 100644
76545 --- a/fs/compat.c
76546 +++ b/fs/compat.c
76547 @@ -54,7 +54,7 @@
76548 #include <asm/ioctls.h>
76549 #include "internal.h"
76550
76551 -int compat_log = 1;
76552 +int compat_log = 0;
76553
76554 int compat_printk(const char *fmt, ...)
76555 {
76556 @@ -512,7 +512,7 @@ COMPAT_SYSCALL_DEFINE2(io_setup, unsigned, nr_reqs, u32 __user *, ctx32p)
76557
76558 set_fs(KERNEL_DS);
76559 /* The __user pointer cast is valid because of the set_fs() */
76560 - ret = sys_io_setup(nr_reqs, (aio_context_t __user *) &ctx64);
76561 + ret = sys_io_setup(nr_reqs, (aio_context_t __force_user *) &ctx64);
76562 set_fs(oldfs);
76563 /* truncating is ok because it's a user address */
76564 if (!ret)
76565 @@ -562,7 +562,7 @@ ssize_t compat_rw_copy_check_uvector(int type,
76566 goto out;
76567
76568 ret = -EINVAL;
76569 - if (nr_segs > UIO_MAXIOV || nr_segs < 0)
76570 + if (nr_segs > UIO_MAXIOV)
76571 goto out;
76572 if (nr_segs > fast_segs) {
76573 ret = -ENOMEM;
76574 @@ -844,6 +844,7 @@ struct compat_old_linux_dirent {
76575 struct compat_readdir_callback {
76576 struct dir_context ctx;
76577 struct compat_old_linux_dirent __user *dirent;
76578 + struct file * file;
76579 int result;
76580 };
76581
76582 @@ -863,6 +864,10 @@ static int compat_fillonedir(struct dir_context *ctx, const char *name,
76583 buf->result = -EOVERFLOW;
76584 return -EOVERFLOW;
76585 }
76586 +
76587 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
76588 + return 0;
76589 +
76590 buf->result++;
76591 dirent = buf->dirent;
76592 if (!access_ok(VERIFY_WRITE, dirent,
76593 @@ -894,6 +899,7 @@ COMPAT_SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
76594 if (!f.file)
76595 return -EBADF;
76596
76597 + buf.file = f.file;
76598 error = iterate_dir(f.file, &buf.ctx);
76599 if (buf.result)
76600 error = buf.result;
76601 @@ -913,6 +919,7 @@ struct compat_getdents_callback {
76602 struct dir_context ctx;
76603 struct compat_linux_dirent __user *current_dir;
76604 struct compat_linux_dirent __user *previous;
76605 + struct file * file;
76606 int count;
76607 int error;
76608 };
76609 @@ -935,6 +942,10 @@ static int compat_filldir(struct dir_context *ctx, const char *name, int namlen,
76610 buf->error = -EOVERFLOW;
76611 return -EOVERFLOW;
76612 }
76613 +
76614 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
76615 + return 0;
76616 +
76617 dirent = buf->previous;
76618 if (dirent) {
76619 if (__put_user(offset, &dirent->d_off))
76620 @@ -980,6 +991,7 @@ COMPAT_SYSCALL_DEFINE3(getdents, unsigned int, fd,
76621 if (!f.file)
76622 return -EBADF;
76623
76624 + buf.file = f.file;
76625 error = iterate_dir(f.file, &buf.ctx);
76626 if (error >= 0)
76627 error = buf.error;
76628 @@ -1000,6 +1012,7 @@ struct compat_getdents_callback64 {
76629 struct dir_context ctx;
76630 struct linux_dirent64 __user *current_dir;
76631 struct linux_dirent64 __user *previous;
76632 + struct file * file;
76633 int count;
76634 int error;
76635 };
76636 @@ -1018,6 +1031,10 @@ static int compat_filldir64(struct dir_context *ctx, const char *name,
76637 buf->error = -EINVAL; /* only used if we fail.. */
76638 if (reclen > buf->count)
76639 return -EINVAL;
76640 +
76641 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
76642 + return 0;
76643 +
76644 dirent = buf->previous;
76645
76646 if (dirent) {
76647 @@ -1067,6 +1084,7 @@ COMPAT_SYSCALL_DEFINE3(getdents64, unsigned int, fd,
76648 if (!f.file)
76649 return -EBADF;
76650
76651 + buf.file = f.file;
76652 error = iterate_dir(f.file, &buf.ctx);
76653 if (error >= 0)
76654 error = buf.error;
76655 diff --git a/fs/compat_binfmt_elf.c b/fs/compat_binfmt_elf.c
76656 index 4d24d17..4f8c09e 100644
76657 --- a/fs/compat_binfmt_elf.c
76658 +++ b/fs/compat_binfmt_elf.c
76659 @@ -30,11 +30,13 @@
76660 #undef elf_phdr
76661 #undef elf_shdr
76662 #undef elf_note
76663 +#undef elf_dyn
76664 #undef elf_addr_t
76665 #define elfhdr elf32_hdr
76666 #define elf_phdr elf32_phdr
76667 #define elf_shdr elf32_shdr
76668 #define elf_note elf32_note
76669 +#define elf_dyn Elf32_Dyn
76670 #define elf_addr_t Elf32_Addr
76671
76672 /*
76673 diff --git a/fs/compat_ioctl.c b/fs/compat_ioctl.c
76674 index 48851f6..6c79d32 100644
76675 --- a/fs/compat_ioctl.c
76676 +++ b/fs/compat_ioctl.c
76677 @@ -622,7 +622,7 @@ static int serial_struct_ioctl(unsigned fd, unsigned cmd,
76678 return -EFAULT;
76679 if (__get_user(udata, &ss32->iomem_base))
76680 return -EFAULT;
76681 - ss.iomem_base = compat_ptr(udata);
76682 + ss.iomem_base = (unsigned char __force_kernel *)compat_ptr(udata);
76683 if (__get_user(ss.iomem_reg_shift, &ss32->iomem_reg_shift) ||
76684 __get_user(ss.port_high, &ss32->port_high))
76685 return -EFAULT;
76686 @@ -704,8 +704,8 @@ static int do_i2c_rdwr_ioctl(unsigned int fd, unsigned int cmd,
76687 for (i = 0; i < nmsgs; i++) {
76688 if (copy_in_user(&tmsgs[i].addr, &umsgs[i].addr, 3*sizeof(u16)))
76689 return -EFAULT;
76690 - if (get_user(datap, &umsgs[i].buf) ||
76691 - put_user(compat_ptr(datap), &tmsgs[i].buf))
76692 + if (get_user(datap, (compat_caddr_t __user *)&umsgs[i].buf) ||
76693 + put_user(compat_ptr(datap), (u8 __user * __user *)&tmsgs[i].buf))
76694 return -EFAULT;
76695 }
76696 return sys_ioctl(fd, cmd, (unsigned long)tdata);
76697 @@ -798,7 +798,7 @@ static int compat_ioctl_preallocate(struct file *file,
76698 copy_in_user(&p->l_len, &p32->l_len, sizeof(s64)) ||
76699 copy_in_user(&p->l_sysid, &p32->l_sysid, sizeof(s32)) ||
76700 copy_in_user(&p->l_pid, &p32->l_pid, sizeof(u32)) ||
76701 - copy_in_user(&p->l_pad, &p32->l_pad, 4*sizeof(u32)))
76702 + copy_in_user(p->l_pad, p32->l_pad, 4*sizeof(u32)))
76703 return -EFAULT;
76704
76705 return ioctl_preallocate(file, p);
76706 @@ -1621,8 +1621,8 @@ COMPAT_SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd,
76707 static int __init init_sys32_ioctl_cmp(const void *p, const void *q)
76708 {
76709 unsigned int a, b;
76710 - a = *(unsigned int *)p;
76711 - b = *(unsigned int *)q;
76712 + a = *(const unsigned int *)p;
76713 + b = *(const unsigned int *)q;
76714 if (a > b)
76715 return 1;
76716 if (a < b)
76717 diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
76718 index c81ce7f..f3de5fd 100644
76719 --- a/fs/configfs/dir.c
76720 +++ b/fs/configfs/dir.c
76721 @@ -1540,7 +1540,8 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
76722 }
76723 for (p = q->next; p != &parent_sd->s_children; p = p->next) {
76724 struct configfs_dirent *next;
76725 - const char *name;
76726 + const unsigned char * name;
76727 + char d_name[sizeof(next->s_dentry->d_iname)];
76728 int len;
76729 struct inode *inode = NULL;
76730
76731 @@ -1549,7 +1550,12 @@ static int configfs_readdir(struct file *file, struct dir_context *ctx)
76732 continue;
76733
76734 name = configfs_get_name(next);
76735 - len = strlen(name);
76736 + if (next->s_dentry && name == next->s_dentry->d_iname) {
76737 + len = next->s_dentry->d_name.len;
76738 + memcpy(d_name, name, len);
76739 + name = d_name;
76740 + } else
76741 + len = strlen(name);
76742
76743 /*
76744 * We'll have a dentry and an inode for
76745 diff --git a/fs/coredump.c b/fs/coredump.c
76746 index a8f7564..3dde349 100644
76747 --- a/fs/coredump.c
76748 +++ b/fs/coredump.c
76749 @@ -457,8 +457,8 @@ static void wait_for_dump_helpers(struct file *file)
76750 struct pipe_inode_info *pipe = file->private_data;
76751
76752 pipe_lock(pipe);
76753 - pipe->readers++;
76754 - pipe->writers--;
76755 + atomic_inc(&pipe->readers);
76756 + atomic_dec(&pipe->writers);
76757 wake_up_interruptible_sync(&pipe->wait);
76758 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
76759 pipe_unlock(pipe);
76760 @@ -467,11 +467,11 @@ static void wait_for_dump_helpers(struct file *file)
76761 * We actually want wait_event_freezable() but then we need
76762 * to clear TIF_SIGPENDING and improve dump_interrupted().
76763 */
76764 - wait_event_interruptible(pipe->wait, pipe->readers == 1);
76765 + wait_event_interruptible(pipe->wait, atomic_read(&pipe->readers) == 1);
76766
76767 pipe_lock(pipe);
76768 - pipe->readers--;
76769 - pipe->writers++;
76770 + atomic_dec(&pipe->readers);
76771 + atomic_inc(&pipe->writers);
76772 pipe_unlock(pipe);
76773 }
76774
76775 @@ -518,7 +518,9 @@ void do_coredump(const siginfo_t *siginfo)
76776 /* require nonrelative corefile path and be extra careful */
76777 bool need_suid_safe = false;
76778 bool core_dumped = false;
76779 - static atomic_t core_dump_count = ATOMIC_INIT(0);
76780 + static atomic_unchecked_t core_dump_count = ATOMIC_INIT(0);
76781 + long signr = siginfo->si_signo;
76782 + int dumpable;
76783 struct coredump_params cprm = {
76784 .siginfo = siginfo,
76785 .regs = signal_pt_regs(),
76786 @@ -531,12 +533,17 @@ void do_coredump(const siginfo_t *siginfo)
76787 .mm_flags = mm->flags,
76788 };
76789
76790 - audit_core_dumps(siginfo->si_signo);
76791 + audit_core_dumps(signr);
76792 +
76793 + dumpable = __get_dumpable(cprm.mm_flags);
76794 +
76795 + if (signr == SIGSEGV || signr == SIGBUS || signr == SIGKILL || signr == SIGILL)
76796 + gr_handle_brute_attach(dumpable);
76797
76798 binfmt = mm->binfmt;
76799 if (!binfmt || !binfmt->core_dump)
76800 goto fail;
76801 - if (!__get_dumpable(cprm.mm_flags))
76802 + if (!dumpable)
76803 goto fail;
76804
76805 cred = prepare_creds();
76806 @@ -554,7 +561,7 @@ void do_coredump(const siginfo_t *siginfo)
76807 need_suid_safe = true;
76808 }
76809
76810 - retval = coredump_wait(siginfo->si_signo, &core_state);
76811 + retval = coredump_wait(signr, &core_state);
76812 if (retval < 0)
76813 goto fail_creds;
76814
76815 @@ -597,7 +604,7 @@ void do_coredump(const siginfo_t *siginfo)
76816 }
76817 cprm.limit = RLIM_INFINITY;
76818
76819 - dump_count = atomic_inc_return(&core_dump_count);
76820 + dump_count = atomic_inc_return_unchecked(&core_dump_count);
76821 if (core_pipe_limit && (core_pipe_limit < dump_count)) {
76822 printk(KERN_WARNING "Pid %d(%s) over core_pipe_limit\n",
76823 task_tgid_vnr(current), current->comm);
76824 @@ -629,6 +636,8 @@ void do_coredump(const siginfo_t *siginfo)
76825 } else {
76826 struct inode *inode;
76827
76828 + gr_learn_resource(current, RLIMIT_CORE, binfmt->min_coredump, 1);
76829 +
76830 if (cprm.limit < binfmt->min_coredump)
76831 goto fail_unlock;
76832
76833 @@ -718,7 +727,7 @@ close_fail:
76834 filp_close(cprm.file, NULL);
76835 fail_dropcount:
76836 if (ispipe)
76837 - atomic_dec(&core_dump_count);
76838 + atomic_dec_unchecked(&core_dump_count);
76839 fail_unlock:
76840 kfree(cn.corename);
76841 coredump_finish(mm, core_dumped);
76842 @@ -739,6 +748,8 @@ int dump_emit(struct coredump_params *cprm, const void *addr, int nr)
76843 struct file *file = cprm->file;
76844 loff_t pos = file->f_pos;
76845 ssize_t n;
76846 +
76847 + gr_learn_resource(current, RLIMIT_CORE, cprm->written + nr, 1);
76848 if (cprm->written + nr > cprm->limit)
76849 return 0;
76850 while (nr) {
76851 diff --git a/fs/dcache.c b/fs/dcache.c
76852 index e3b44ca..e0d94f1 100644
76853 --- a/fs/dcache.c
76854 +++ b/fs/dcache.c
76855 @@ -545,7 +545,7 @@ static void __dentry_kill(struct dentry *dentry)
76856 * dentry_iput drops the locks, at which point nobody (except
76857 * transient RCU lookups) can reach this dentry.
76858 */
76859 - BUG_ON(dentry->d_lockref.count > 0);
76860 + BUG_ON(__lockref_read(&dentry->d_lockref) > 0);
76861 this_cpu_dec(nr_dentry);
76862 if (dentry->d_op && dentry->d_op->d_release)
76863 dentry->d_op->d_release(dentry);
76864 @@ -598,7 +598,7 @@ static inline struct dentry *lock_parent(struct dentry *dentry)
76865 struct dentry *parent = dentry->d_parent;
76866 if (IS_ROOT(dentry))
76867 return NULL;
76868 - if (unlikely(dentry->d_lockref.count < 0))
76869 + if (unlikely(__lockref_read(&dentry->d_lockref) < 0))
76870 return NULL;
76871 if (likely(spin_trylock(&parent->d_lock)))
76872 return parent;
76873 @@ -660,8 +660,8 @@ static inline bool fast_dput(struct dentry *dentry)
76874 */
76875 if (unlikely(ret < 0)) {
76876 spin_lock(&dentry->d_lock);
76877 - if (dentry->d_lockref.count > 1) {
76878 - dentry->d_lockref.count--;
76879 + if (__lockref_read(&dentry->d_lockref) > 1) {
76880 + __lockref_dec(&dentry->d_lockref);
76881 spin_unlock(&dentry->d_lock);
76882 return 1;
76883 }
76884 @@ -716,7 +716,7 @@ static inline bool fast_dput(struct dentry *dentry)
76885 * else could have killed it and marked it dead. Either way, we
76886 * don't need to do anything else.
76887 */
76888 - if (dentry->d_lockref.count) {
76889 + if (__lockref_read(&dentry->d_lockref)) {
76890 spin_unlock(&dentry->d_lock);
76891 return 1;
76892 }
76893 @@ -726,7 +726,7 @@ static inline bool fast_dput(struct dentry *dentry)
76894 * lock, and we just tested that it was zero, so we can just
76895 * set it to 1.
76896 */
76897 - dentry->d_lockref.count = 1;
76898 + __lockref_set(&dentry->d_lockref, 1);
76899 return 0;
76900 }
76901
76902 @@ -788,7 +788,7 @@ repeat:
76903 dentry->d_flags |= DCACHE_REFERENCED;
76904 dentry_lru_add(dentry);
76905
76906 - dentry->d_lockref.count--;
76907 + __lockref_dec(&dentry->d_lockref);
76908 spin_unlock(&dentry->d_lock);
76909 return;
76910
76911 @@ -803,7 +803,7 @@ EXPORT_SYMBOL(dput);
76912 /* This must be called with d_lock held */
76913 static inline void __dget_dlock(struct dentry *dentry)
76914 {
76915 - dentry->d_lockref.count++;
76916 + __lockref_inc(&dentry->d_lockref);
76917 }
76918
76919 static inline void __dget(struct dentry *dentry)
76920 @@ -844,8 +844,8 @@ repeat:
76921 goto repeat;
76922 }
76923 rcu_read_unlock();
76924 - BUG_ON(!ret->d_lockref.count);
76925 - ret->d_lockref.count++;
76926 + BUG_ON(!__lockref_read(&ret->d_lockref));
76927 + __lockref_inc(&ret->d_lockref);
76928 spin_unlock(&ret->d_lock);
76929 return ret;
76930 }
76931 @@ -923,9 +923,9 @@ restart:
76932 spin_lock(&inode->i_lock);
76933 hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) {
76934 spin_lock(&dentry->d_lock);
76935 - if (!dentry->d_lockref.count) {
76936 + if (!__lockref_read(&dentry->d_lockref)) {
76937 struct dentry *parent = lock_parent(dentry);
76938 - if (likely(!dentry->d_lockref.count)) {
76939 + if (likely(!__lockref_read(&dentry->d_lockref))) {
76940 __dentry_kill(dentry);
76941 dput(parent);
76942 goto restart;
76943 @@ -960,7 +960,7 @@ static void shrink_dentry_list(struct list_head *list)
76944 * We found an inuse dentry which was not removed from
76945 * the LRU because of laziness during lookup. Do not free it.
76946 */
76947 - if (dentry->d_lockref.count > 0) {
76948 + if (__lockref_read(&dentry->d_lockref) > 0) {
76949 spin_unlock(&dentry->d_lock);
76950 if (parent)
76951 spin_unlock(&parent->d_lock);
76952 @@ -998,8 +998,8 @@ static void shrink_dentry_list(struct list_head *list)
76953 dentry = parent;
76954 while (dentry && !lockref_put_or_lock(&dentry->d_lockref)) {
76955 parent = lock_parent(dentry);
76956 - if (dentry->d_lockref.count != 1) {
76957 - dentry->d_lockref.count--;
76958 + if (__lockref_read(&dentry->d_lockref) != 1) {
76959 + __lockref_inc(&dentry->d_lockref);
76960 spin_unlock(&dentry->d_lock);
76961 if (parent)
76962 spin_unlock(&parent->d_lock);
76963 @@ -1039,7 +1039,7 @@ static enum lru_status dentry_lru_isolate(struct list_head *item,
76964 * counts, just remove them from the LRU. Otherwise give them
76965 * another pass through the LRU.
76966 */
76967 - if (dentry->d_lockref.count) {
76968 + if (__lockref_read(&dentry->d_lockref)) {
76969 d_lru_isolate(lru, dentry);
76970 spin_unlock(&dentry->d_lock);
76971 return LRU_REMOVED;
76972 @@ -1373,7 +1373,7 @@ static enum d_walk_ret select_collect(void *_data, struct dentry *dentry)
76973 } else {
76974 if (dentry->d_flags & DCACHE_LRU_LIST)
76975 d_lru_del(dentry);
76976 - if (!dentry->d_lockref.count) {
76977 + if (!__lockref_read(&dentry->d_lockref)) {
76978 d_shrink_add(dentry, &data->dispose);
76979 data->found++;
76980 }
76981 @@ -1421,7 +1421,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
76982 return D_WALK_CONTINUE;
76983
76984 /* root with refcount 1 is fine */
76985 - if (dentry == _data && dentry->d_lockref.count == 1)
76986 + if (dentry == _data && __lockref_read(&dentry->d_lockref) == 1)
76987 return D_WALK_CONTINUE;
76988
76989 printk(KERN_ERR "BUG: Dentry %p{i=%lx,n=%pd} "
76990 @@ -1430,7 +1430,7 @@ static enum d_walk_ret umount_check(void *_data, struct dentry *dentry)
76991 dentry->d_inode ?
76992 dentry->d_inode->i_ino : 0UL,
76993 dentry,
76994 - dentry->d_lockref.count,
76995 + __lockref_read(&dentry->d_lockref),
76996 dentry->d_sb->s_type->name,
76997 dentry->d_sb->s_id);
76998 WARN_ON(1);
76999 @@ -1571,7 +1571,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
77000 dentry->d_iname[DNAME_INLINE_LEN-1] = 0;
77001 if (name->len > DNAME_INLINE_LEN-1) {
77002 size_t size = offsetof(struct external_name, name[1]);
77003 - struct external_name *p = kmalloc(size + name->len, GFP_KERNEL);
77004 + struct external_name *p = kmalloc(round_up(size + name->len, sizeof(unsigned long)), GFP_KERNEL);
77005 if (!p) {
77006 kmem_cache_free(dentry_cache, dentry);
77007 return NULL;
77008 @@ -1594,7 +1594,7 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
77009 smp_wmb();
77010 dentry->d_name.name = dname;
77011
77012 - dentry->d_lockref.count = 1;
77013 + __lockref_set(&dentry->d_lockref, 1);
77014 dentry->d_flags = 0;
77015 spin_lock_init(&dentry->d_lock);
77016 seqcount_init(&dentry->d_seq);
77017 @@ -1603,6 +1603,9 @@ struct dentry *__d_alloc(struct super_block *sb, const struct qstr *name)
77018 dentry->d_sb = sb;
77019 dentry->d_op = NULL;
77020 dentry->d_fsdata = NULL;
77021 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
77022 + atomic_set(&dentry->chroot_refcnt, 0);
77023 +#endif
77024 INIT_HLIST_BL_NODE(&dentry->d_hash);
77025 INIT_LIST_HEAD(&dentry->d_lru);
77026 INIT_LIST_HEAD(&dentry->d_subdirs);
77027 @@ -2327,7 +2330,7 @@ struct dentry *__d_lookup(const struct dentry *parent, const struct qstr *name)
77028 goto next;
77029 }
77030
77031 - dentry->d_lockref.count++;
77032 + __lockref_inc(&dentry->d_lockref);
77033 found = dentry;
77034 spin_unlock(&dentry->d_lock);
77035 break;
77036 @@ -2395,7 +2398,7 @@ again:
77037 spin_lock(&dentry->d_lock);
77038 inode = dentry->d_inode;
77039 isdir = S_ISDIR(inode->i_mode);
77040 - if (dentry->d_lockref.count == 1) {
77041 + if (__lockref_read(&dentry->d_lockref) == 1) {
77042 if (!spin_trylock(&inode->i_lock)) {
77043 spin_unlock(&dentry->d_lock);
77044 cpu_relax();
77045 @@ -3344,7 +3347,7 @@ static enum d_walk_ret d_genocide_kill(void *data, struct dentry *dentry)
77046
77047 if (!(dentry->d_flags & DCACHE_GENOCIDE)) {
77048 dentry->d_flags |= DCACHE_GENOCIDE;
77049 - dentry->d_lockref.count--;
77050 + __lockref_dec(&dentry->d_lockref);
77051 }
77052 }
77053 return D_WALK_CONTINUE;
77054 @@ -3452,7 +3455,8 @@ void __init vfs_caches_init_early(void)
77055 void __init vfs_caches_init(void)
77056 {
77057 names_cachep = kmem_cache_create("names_cache", PATH_MAX, 0,
77058 - SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
77059 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_USERCOPY|
77060 + SLAB_NO_SANITIZE, NULL);
77061
77062 dcache_init();
77063 inode_init();
77064 diff --git a/fs/debugfs/inode.c b/fs/debugfs/inode.c
77065 index c711be8..79cf56b 100644
77066 --- a/fs/debugfs/inode.c
77067 +++ b/fs/debugfs/inode.c
77068 @@ -271,8 +271,12 @@ static struct dentry *start_creating(const char *name, struct dentry *parent)
77069 dput(dentry);
77070 dentry = ERR_PTR(-EEXIST);
77071 }
77072 - if (IS_ERR(dentry))
77073 +
77074 + if (IS_ERR(dentry)) {
77075 mutex_unlock(&d_inode(parent)->i_mutex);
77076 + simple_release_fs(&debugfs_mount, &debugfs_mount_count);
77077 + }
77078 +
77079 return dentry;
77080 }
77081
77082 @@ -402,6 +406,10 @@ EXPORT_SYMBOL_GPL(debugfs_create_file_size);
77083 * If debugfs is not enabled in the kernel, the value -%ENODEV will be
77084 * returned.
77085 */
77086 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
77087 +extern int grsec_enable_sysfs_restrict;
77088 +#endif
77089 +
77090 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
77091 {
77092 struct dentry *dentry = start_creating(name, parent);
77093 @@ -414,7 +422,12 @@ struct dentry *debugfs_create_dir(const char *name, struct dentry *parent)
77094 if (unlikely(!inode))
77095 return failed_creating(dentry);
77096
77097 - inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
77098 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
77099 + if (grsec_enable_sysfs_restrict)
77100 + inode->i_mode = S_IFDIR | S_IRWXU;
77101 + else
77102 +#endif
77103 + inode->i_mode = S_IFDIR | S_IRWXU | S_IRUGO | S_IXUGO;
77104 inode->i_op = &simple_dir_inode_operations;
77105 inode->i_fop = &simple_dir_operations;
77106
77107 diff --git a/fs/dlm/lowcomms.c b/fs/dlm/lowcomms.c
77108 index 754fd6c..3b93157 100644
77109 --- a/fs/dlm/lowcomms.c
77110 +++ b/fs/dlm/lowcomms.c
77111 @@ -538,7 +538,7 @@ static void close_connection(struct connection *con, bool and_other)
77112 /* We only send shutdown messages to nodes that are not part of the cluster */
77113 static void sctp_send_shutdown(sctp_assoc_t associd)
77114 {
77115 - static char outcmsg[CMSG_SPACE(sizeof(struct sctp_sndrcvinfo))];
77116 + char outcmsg[CMSG_SPACE(sizeof(struct sctp_sndrcvinfo))] = {};
77117 struct msghdr outmessage;
77118 struct cmsghdr *cmsg;
77119 struct sctp_sndrcvinfo *sinfo;
77120 diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
77121 index 3c4db11..a43976f 100644
77122 --- a/fs/ecryptfs/inode.c
77123 +++ b/fs/ecryptfs/inode.c
77124 @@ -662,7 +662,7 @@ static char *ecryptfs_readlink_lower(struct dentry *dentry, size_t *bufsiz)
77125 old_fs = get_fs();
77126 set_fs(get_ds());
77127 rc = d_inode(lower_dentry)->i_op->readlink(lower_dentry,
77128 - (char __user *)lower_buf,
77129 + (char __force_user *)lower_buf,
77130 PATH_MAX);
77131 set_fs(old_fs);
77132 if (rc < 0)
77133 diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
77134 index e4141f2..d8263e8 100644
77135 --- a/fs/ecryptfs/miscdev.c
77136 +++ b/fs/ecryptfs/miscdev.c
77137 @@ -304,7 +304,7 @@ check_list:
77138 goto out_unlock_msg_ctx;
77139 i = PKT_TYPE_SIZE + PKT_CTR_SIZE;
77140 if (msg_ctx->msg) {
77141 - if (copy_to_user(&buf[i], packet_length, packet_length_size))
77142 + if (packet_length_size > sizeof(packet_length) || copy_to_user(&buf[i], packet_length, packet_length_size))
77143 goto out_unlock_msg_ctx;
77144 i += packet_length_size;
77145 if (copy_to_user(&buf[i], msg_ctx->msg, msg_ctx->msg_size))
77146 diff --git a/fs/exec.c b/fs/exec.c
77147 index 1977c2a..b6b953a 100644
77148 --- a/fs/exec.c
77149 +++ b/fs/exec.c
77150 @@ -56,8 +56,20 @@
77151 #include <linux/pipe_fs_i.h>
77152 #include <linux/oom.h>
77153 #include <linux/compat.h>
77154 +#include <linux/random.h>
77155 +#include <linux/seq_file.h>
77156 +#include <linux/coredump.h>
77157 +#include <linux/mman.h>
77158 +
77159 +#ifdef CONFIG_PAX_REFCOUNT
77160 +#include <linux/kallsyms.h>
77161 +#include <linux/kdebug.h>
77162 +#endif
77163 +
77164 +#include <trace/events/fs.h>
77165
77166 #include <asm/uaccess.h>
77167 +#include <asm/sections.h>
77168 #include <asm/mmu_context.h>
77169 #include <asm/tlb.h>
77170
77171 @@ -66,19 +78,34 @@
77172
77173 #include <trace/events/sched.h>
77174
77175 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
77176 +void __weak pax_set_initial_flags(struct linux_binprm *bprm)
77177 +{
77178 + 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");
77179 +}
77180 +#endif
77181 +
77182 +#ifdef CONFIG_PAX_HOOK_ACL_FLAGS
77183 +void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
77184 +EXPORT_SYMBOL(pax_set_initial_flags_func);
77185 +#endif
77186 +
77187 int suid_dumpable = 0;
77188
77189 static LIST_HEAD(formats);
77190 static DEFINE_RWLOCK(binfmt_lock);
77191
77192 +extern int gr_process_kernel_exec_ban(void);
77193 +extern int gr_process_suid_exec_ban(const struct linux_binprm *bprm);
77194 +
77195 void __register_binfmt(struct linux_binfmt * fmt, int insert)
77196 {
77197 BUG_ON(!fmt);
77198 if (WARN_ON(!fmt->load_binary))
77199 return;
77200 write_lock(&binfmt_lock);
77201 - insert ? list_add(&fmt->lh, &formats) :
77202 - list_add_tail(&fmt->lh, &formats);
77203 + insert ? pax_list_add((struct list_head *)&fmt->lh, &formats) :
77204 + pax_list_add_tail((struct list_head *)&fmt->lh, &formats);
77205 write_unlock(&binfmt_lock);
77206 }
77207
77208 @@ -87,7 +114,7 @@ EXPORT_SYMBOL(__register_binfmt);
77209 void unregister_binfmt(struct linux_binfmt * fmt)
77210 {
77211 write_lock(&binfmt_lock);
77212 - list_del(&fmt->lh);
77213 + pax_list_del((struct list_head *)&fmt->lh);
77214 write_unlock(&binfmt_lock);
77215 }
77216
77217 @@ -183,18 +210,10 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
77218 int write)
77219 {
77220 struct page *page;
77221 - int ret;
77222
77223 -#ifdef CONFIG_STACK_GROWSUP
77224 - if (write) {
77225 - ret = expand_downwards(bprm->vma, pos);
77226 - if (ret < 0)
77227 - return NULL;
77228 - }
77229 -#endif
77230 - ret = get_user_pages(current, bprm->mm, pos,
77231 - 1, write, 1, &page, NULL);
77232 - if (ret <= 0)
77233 + if (0 > expand_downwards(bprm->vma, pos))
77234 + return NULL;
77235 + if (0 >= get_user_pages(current, bprm->mm, pos, 1, write, 1, &page, NULL))
77236 return NULL;
77237
77238 if (write) {
77239 @@ -210,6 +229,17 @@ static struct page *get_arg_page(struct linux_binprm *bprm, unsigned long pos,
77240 if (size <= ARG_MAX)
77241 return page;
77242
77243 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
77244 + // only allow 512KB for argv+env on suid/sgid binaries
77245 + // to prevent easy ASLR exhaustion
77246 + if (((!uid_eq(bprm->cred->euid, current_euid())) ||
77247 + (!gid_eq(bprm->cred->egid, current_egid()))) &&
77248 + (size > (512 * 1024))) {
77249 + put_page(page);
77250 + return NULL;
77251 + }
77252 +#endif
77253 +
77254 /*
77255 * Limit to 1/4-th the stack size for the argv+env strings.
77256 * This ensures that:
77257 @@ -269,6 +299,11 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
77258 vma->vm_end = STACK_TOP_MAX;
77259 vma->vm_start = vma->vm_end - PAGE_SIZE;
77260 vma->vm_flags = VM_SOFTDIRTY | VM_STACK_FLAGS | VM_STACK_INCOMPLETE_SETUP;
77261 +
77262 +#ifdef CONFIG_PAX_SEGMEXEC
77263 + vma->vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
77264 +#endif
77265 +
77266 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
77267 INIT_LIST_HEAD(&vma->anon_vma_chain);
77268
77269 @@ -280,6 +315,12 @@ static int __bprm_mm_init(struct linux_binprm *bprm)
77270 arch_bprm_mm_init(mm, vma);
77271 up_write(&mm->mmap_sem);
77272 bprm->p = vma->vm_end - sizeof(void *);
77273 +
77274 +#ifdef CONFIG_PAX_RANDUSTACK
77275 + if (randomize_va_space)
77276 + bprm->p ^= prandom_u32() & ~PAGE_MASK;
77277 +#endif
77278 +
77279 return 0;
77280 err:
77281 up_write(&mm->mmap_sem);
77282 @@ -396,7 +437,7 @@ struct user_arg_ptr {
77283 } ptr;
77284 };
77285
77286 -static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
77287 +const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
77288 {
77289 const char __user *native;
77290
77291 @@ -405,14 +446,14 @@ static const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr)
77292 compat_uptr_t compat;
77293
77294 if (get_user(compat, argv.ptr.compat + nr))
77295 - return ERR_PTR(-EFAULT);
77296 + return (const char __force_user *)ERR_PTR(-EFAULT);
77297
77298 return compat_ptr(compat);
77299 }
77300 #endif
77301
77302 if (get_user(native, argv.ptr.native + nr))
77303 - return ERR_PTR(-EFAULT);
77304 + return (const char __force_user *)ERR_PTR(-EFAULT);
77305
77306 return native;
77307 }
77308 @@ -431,7 +472,7 @@ static int count(struct user_arg_ptr argv, int max)
77309 if (!p)
77310 break;
77311
77312 - if (IS_ERR(p))
77313 + if (IS_ERR((const char __force_kernel *)p))
77314 return -EFAULT;
77315
77316 if (i >= max)
77317 @@ -466,7 +507,7 @@ static int copy_strings(int argc, struct user_arg_ptr argv,
77318
77319 ret = -EFAULT;
77320 str = get_user_arg_ptr(argv, argc);
77321 - if (IS_ERR(str))
77322 + if (IS_ERR((const char __force_kernel *)str))
77323 goto out;
77324
77325 len = strnlen_user(str, MAX_ARG_STRLEN);
77326 @@ -548,7 +589,7 @@ int copy_strings_kernel(int argc, const char *const *__argv,
77327 int r;
77328 mm_segment_t oldfs = get_fs();
77329 struct user_arg_ptr argv = {
77330 - .ptr.native = (const char __user *const __user *)__argv,
77331 + .ptr.native = (const char __user * const __force_user *)__argv,
77332 };
77333
77334 set_fs(KERNEL_DS);
77335 @@ -583,7 +624,8 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
77336 unsigned long new_end = old_end - shift;
77337 struct mmu_gather tlb;
77338
77339 - BUG_ON(new_start > new_end);
77340 + if (new_start >= new_end || new_start < mmap_min_addr)
77341 + return -ENOMEM;
77342
77343 /*
77344 * ensure there are no vmas between where we want to go
77345 @@ -592,6 +634,10 @@ static int shift_arg_pages(struct vm_area_struct *vma, unsigned long shift)
77346 if (vma != find_vma(mm, new_start))
77347 return -EFAULT;
77348
77349 +#ifdef CONFIG_PAX_SEGMEXEC
77350 + BUG_ON(pax_find_mirror_vma(vma));
77351 +#endif
77352 +
77353 /*
77354 * cover the whole range: [new_start, old_end)
77355 */
77356 @@ -675,10 +721,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
77357 stack_top = arch_align_stack(stack_top);
77358 stack_top = PAGE_ALIGN(stack_top);
77359
77360 - if (unlikely(stack_top < mmap_min_addr) ||
77361 - unlikely(vma->vm_end - vma->vm_start >= stack_top - mmap_min_addr))
77362 - return -ENOMEM;
77363 -
77364 stack_shift = vma->vm_end - stack_top;
77365
77366 bprm->p -= stack_shift;
77367 @@ -690,8 +732,28 @@ int setup_arg_pages(struct linux_binprm *bprm,
77368 bprm->exec -= stack_shift;
77369
77370 down_write(&mm->mmap_sem);
77371 +
77372 + /* Move stack pages down in memory. */
77373 + if (stack_shift) {
77374 + ret = shift_arg_pages(vma, stack_shift);
77375 + if (ret)
77376 + goto out_unlock;
77377 + }
77378 +
77379 vm_flags = VM_STACK_FLAGS;
77380
77381 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
77382 + if (mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
77383 + vm_flags &= ~VM_EXEC;
77384 +
77385 +#ifdef CONFIG_PAX_MPROTECT
77386 + if (mm->pax_flags & MF_PAX_MPROTECT)
77387 + vm_flags &= ~VM_MAYEXEC;
77388 +#endif
77389 +
77390 + }
77391 +#endif
77392 +
77393 /*
77394 * Adjust stack execute permissions; explicitly enable for
77395 * EXSTACK_ENABLE_X, disable for EXSTACK_DISABLE_X and leave alone
77396 @@ -710,13 +772,6 @@ int setup_arg_pages(struct linux_binprm *bprm,
77397 goto out_unlock;
77398 BUG_ON(prev != vma);
77399
77400 - /* Move stack pages down in memory. */
77401 - if (stack_shift) {
77402 - ret = shift_arg_pages(vma, stack_shift);
77403 - if (ret)
77404 - goto out_unlock;
77405 - }
77406 -
77407 /* mprotect_fixup is overkill to remove the temporary stack flags */
77408 vma->vm_flags &= ~VM_STACK_INCOMPLETE_SETUP;
77409
77410 @@ -740,6 +795,27 @@ int setup_arg_pages(struct linux_binprm *bprm,
77411 #endif
77412 current->mm->start_stack = bprm->p;
77413 ret = expand_stack(vma, stack_base);
77414 +
77415 +#if !defined(CONFIG_STACK_GROWSUP) && defined(CONFIG_PAX_RANDMMAP)
77416 + if (!ret && (mm->pax_flags & MF_PAX_RANDMMAP) && STACK_TOP <= 0xFFFFFFFFU && STACK_TOP > vma->vm_end) {
77417 + unsigned long size;
77418 + vm_flags_t vm_flags;
77419 +
77420 + size = STACK_TOP - vma->vm_end;
77421 + vm_flags = VM_NONE | VM_DONTEXPAND | VM_DONTDUMP;
77422 +
77423 + ret = vma->vm_end != mmap_region(NULL, vma->vm_end, size, vm_flags, 0);
77424 +
77425 +#ifdef CONFIG_X86
77426 + if (!ret) {
77427 + size = PAGE_SIZE + mmap_min_addr + ((mm->delta_mmap ^ mm->delta_stack) & (0xFFUL << PAGE_SHIFT));
77428 + ret = 0 != mmap_region(NULL, 0, PAGE_ALIGN(size), vm_flags, 0);
77429 + }
77430 +#endif
77431 +
77432 + }
77433 +#endif
77434 +
77435 if (ret)
77436 ret = -EFAULT;
77437
77438 @@ -784,8 +860,10 @@ static struct file *do_open_execat(int fd, struct filename *name, int flags)
77439 if (err)
77440 goto exit;
77441
77442 - if (name->name[0] != '\0')
77443 + if (name->name[0] != '\0') {
77444 fsnotify_open(file);
77445 + trace_open_exec(name->name);
77446 + }
77447
77448 out:
77449 return file;
77450 @@ -818,7 +896,7 @@ int kernel_read(struct file *file, loff_t offset,
77451 old_fs = get_fs();
77452 set_fs(get_ds());
77453 /* The cast to a user pointer is valid due to the set_fs() */
77454 - result = vfs_read(file, (void __user *)addr, count, &pos);
77455 + result = vfs_read(file, (void __force_user *)addr, count, &pos);
77456 set_fs(old_fs);
77457 return result;
77458 }
77459 @@ -863,6 +941,7 @@ static int exec_mmap(struct mm_struct *mm)
77460 tsk->mm = mm;
77461 tsk->active_mm = mm;
77462 activate_mm(active_mm, mm);
77463 + populate_stack();
77464 tsk->mm->vmacache_seqnum = 0;
77465 vmacache_flush(tsk);
77466 task_unlock(tsk);
77467 @@ -1271,7 +1350,7 @@ static void check_unsafe_exec(struct linux_binprm *bprm)
77468 }
77469 rcu_read_unlock();
77470
77471 - if (p->fs->users > n_fs)
77472 + if (atomic_read(&p->fs->users) > n_fs)
77473 bprm->unsafe |= LSM_UNSAFE_SHARE;
77474 else
77475 p->fs->in_exec = 1;
77476 @@ -1472,6 +1551,31 @@ static int exec_binprm(struct linux_binprm *bprm)
77477 return ret;
77478 }
77479
77480 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
77481 +static DEFINE_PER_CPU(u64, exec_counter);
77482 +static int __init init_exec_counters(void)
77483 +{
77484 + unsigned int cpu;
77485 +
77486 + for_each_possible_cpu(cpu) {
77487 + per_cpu(exec_counter, cpu) = (u64)cpu;
77488 + }
77489 +
77490 + return 0;
77491 +}
77492 +early_initcall(init_exec_counters);
77493 +static inline void increment_exec_counter(void)
77494 +{
77495 + BUILD_BUG_ON(NR_CPUS > (1 << 16));
77496 + current->exec_id = this_cpu_add_return(exec_counter, 1 << 16);
77497 +}
77498 +#else
77499 +static inline void increment_exec_counter(void) {}
77500 +#endif
77501 +
77502 +extern void gr_handle_exec_args(struct linux_binprm *bprm,
77503 + struct user_arg_ptr argv);
77504 +
77505 /*
77506 * sys_execve() executes a new program.
77507 */
77508 @@ -1480,6 +1584,11 @@ static int do_execveat_common(int fd, struct filename *filename,
77509 struct user_arg_ptr envp,
77510 int flags)
77511 {
77512 +#ifdef CONFIG_GRKERNSEC
77513 + struct file *old_exec_file;
77514 + struct acl_subject_label *old_acl;
77515 + struct rlimit old_rlim[RLIM_NLIMITS];
77516 +#endif
77517 char *pathbuf = NULL;
77518 struct linux_binprm *bprm;
77519 struct file *file;
77520 @@ -1489,6 +1598,8 @@ static int do_execveat_common(int fd, struct filename *filename,
77521 if (IS_ERR(filename))
77522 return PTR_ERR(filename);
77523
77524 + gr_learn_resource(current, RLIMIT_NPROC, atomic_read(&current_user()->processes), 1);
77525 +
77526 /*
77527 * We move the actual failure in case of RLIMIT_NPROC excess from
77528 * set*uid() to execve() because too many poorly written programs
77529 @@ -1526,6 +1637,11 @@ static int do_execveat_common(int fd, struct filename *filename,
77530 if (IS_ERR(file))
77531 goto out_unmark;
77532
77533 + if (gr_ptrace_readexec(file, bprm->unsafe)) {
77534 + retval = -EPERM;
77535 + goto out_unmark;
77536 + }
77537 +
77538 sched_exec();
77539
77540 bprm->file = file;
77541 @@ -1552,6 +1668,11 @@ static int do_execveat_common(int fd, struct filename *filename,
77542 }
77543 bprm->interp = bprm->filename;
77544
77545 + if (!gr_acl_handle_execve(file->f_path.dentry, file->f_path.mnt)) {
77546 + retval = -EACCES;
77547 + goto out_unmark;
77548 + }
77549 +
77550 retval = bprm_mm_init(bprm);
77551 if (retval)
77552 goto out_unmark;
77553 @@ -1568,24 +1689,70 @@ static int do_execveat_common(int fd, struct filename *filename,
77554 if (retval < 0)
77555 goto out;
77556
77557 +#ifdef CONFIG_GRKERNSEC
77558 + old_acl = current->acl;
77559 + memcpy(old_rlim, current->signal->rlim, sizeof(old_rlim));
77560 + old_exec_file = current->exec_file;
77561 + get_file(file);
77562 + current->exec_file = file;
77563 +#endif
77564 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
77565 + /* limit suid stack to 8MB
77566 + * we saved the old limits above and will restore them if this exec fails
77567 + */
77568 + if (((!uid_eq(bprm->cred->euid, current_euid())) || (!gid_eq(bprm->cred->egid, current_egid()))) &&
77569 + (old_rlim[RLIMIT_STACK].rlim_cur > (8 * 1024 * 1024)))
77570 + current->signal->rlim[RLIMIT_STACK].rlim_cur = 8 * 1024 * 1024;
77571 +#endif
77572 +
77573 + if (gr_process_kernel_exec_ban() || gr_process_suid_exec_ban(bprm)) {
77574 + retval = -EPERM;
77575 + goto out_fail;
77576 + }
77577 +
77578 + if (!gr_tpe_allow(file)) {
77579 + retval = -EACCES;
77580 + goto out_fail;
77581 + }
77582 +
77583 + if (gr_check_crash_exec(file)) {
77584 + retval = -EACCES;
77585 + goto out_fail;
77586 + }
77587 +
77588 + retval = gr_set_proc_label(file->f_path.dentry, file->f_path.mnt,
77589 + bprm->unsafe);
77590 + if (retval < 0)
77591 + goto out_fail;
77592 +
77593 retval = copy_strings_kernel(1, &bprm->filename, bprm);
77594 if (retval < 0)
77595 - goto out;
77596 + goto out_fail;
77597
77598 bprm->exec = bprm->p;
77599 retval = copy_strings(bprm->envc, envp, bprm);
77600 if (retval < 0)
77601 - goto out;
77602 + goto out_fail;
77603
77604 retval = copy_strings(bprm->argc, argv, bprm);
77605 if (retval < 0)
77606 - goto out;
77607 + goto out_fail;
77608 +
77609 + gr_log_chroot_exec(file->f_path.dentry, file->f_path.mnt);
77610 +
77611 + gr_handle_exec_args(bprm, argv);
77612
77613 retval = exec_binprm(bprm);
77614 if (retval < 0)
77615 - goto out;
77616 + goto out_fail;
77617 +#ifdef CONFIG_GRKERNSEC
77618 + if (old_exec_file)
77619 + fput(old_exec_file);
77620 +#endif
77621
77622 /* execve succeeded */
77623 +
77624 + increment_exec_counter();
77625 current->fs->in_exec = 0;
77626 current->in_execve = 0;
77627 acct_update_integrals(current);
77628 @@ -1597,6 +1764,14 @@ static int do_execveat_common(int fd, struct filename *filename,
77629 put_files_struct(displaced);
77630 return retval;
77631
77632 +out_fail:
77633 +#ifdef CONFIG_GRKERNSEC
77634 + current->acl = old_acl;
77635 + memcpy(current->signal->rlim, old_rlim, sizeof(old_rlim));
77636 + fput(current->exec_file);
77637 + current->exec_file = old_exec_file;
77638 +#endif
77639 +
77640 out:
77641 if (bprm->mm) {
77642 acct_arg_size(bprm, 0);
77643 @@ -1743,3 +1918,324 @@ COMPAT_SYSCALL_DEFINE5(execveat, int, fd,
77644 argv, envp, flags);
77645 }
77646 #endif
77647 +
77648 +int pax_check_flags(unsigned long *flags)
77649 +{
77650 + int retval = 0;
77651 +
77652 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_SEGMEXEC)
77653 + if (*flags & MF_PAX_SEGMEXEC)
77654 + {
77655 + *flags &= ~MF_PAX_SEGMEXEC;
77656 + retval = -EINVAL;
77657 + }
77658 +#endif
77659 +
77660 + if ((*flags & MF_PAX_PAGEEXEC)
77661 +
77662 +#ifdef CONFIG_PAX_PAGEEXEC
77663 + && (*flags & MF_PAX_SEGMEXEC)
77664 +#endif
77665 +
77666 + )
77667 + {
77668 + *flags &= ~MF_PAX_PAGEEXEC;
77669 + retval = -EINVAL;
77670 + }
77671 +
77672 + if ((*flags & MF_PAX_MPROTECT)
77673 +
77674 +#ifdef CONFIG_PAX_MPROTECT
77675 + && !(*flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC))
77676 +#endif
77677 +
77678 + )
77679 + {
77680 + *flags &= ~MF_PAX_MPROTECT;
77681 + retval = -EINVAL;
77682 + }
77683 +
77684 + if ((*flags & MF_PAX_EMUTRAMP)
77685 +
77686 +#ifdef CONFIG_PAX_EMUTRAMP
77687 + && !(*flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC))
77688 +#endif
77689 +
77690 + )
77691 + {
77692 + *flags &= ~MF_PAX_EMUTRAMP;
77693 + retval = -EINVAL;
77694 + }
77695 +
77696 + return retval;
77697 +}
77698 +
77699 +EXPORT_SYMBOL(pax_check_flags);
77700 +
77701 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
77702 +char *pax_get_path(const struct path *path, char *buf, int buflen)
77703 +{
77704 + char *pathname = d_path(path, buf, buflen);
77705 +
77706 + if (IS_ERR(pathname))
77707 + goto toolong;
77708 +
77709 + pathname = mangle_path(buf, pathname, "\t\n\\");
77710 + if (!pathname)
77711 + goto toolong;
77712 +
77713 + *pathname = 0;
77714 + return buf;
77715 +
77716 +toolong:
77717 + return "<path too long>";
77718 +}
77719 +EXPORT_SYMBOL(pax_get_path);
77720 +
77721 +void pax_report_fault(struct pt_regs *regs, void *pc, void *sp)
77722 +{
77723 + struct task_struct *tsk = current;
77724 + struct mm_struct *mm = current->mm;
77725 + char *buffer_exec = (char *)__get_free_page(GFP_KERNEL);
77726 + char *buffer_fault = (char *)__get_free_page(GFP_KERNEL);
77727 + char *path_exec = NULL;
77728 + char *path_fault = NULL;
77729 + unsigned long start = 0UL, end = 0UL, offset = 0UL;
77730 + siginfo_t info = { };
77731 +
77732 + if (buffer_exec && buffer_fault) {
77733 + struct vm_area_struct *vma, *vma_exec = NULL, *vma_fault = NULL;
77734 +
77735 + down_read(&mm->mmap_sem);
77736 + vma = mm->mmap;
77737 + while (vma && (!vma_exec || !vma_fault)) {
77738 + if (vma->vm_file && mm->exe_file == vma->vm_file && (vma->vm_flags & VM_EXEC))
77739 + vma_exec = vma;
77740 + if (vma->vm_start <= (unsigned long)pc && (unsigned long)pc < vma->vm_end)
77741 + vma_fault = vma;
77742 + vma = vma->vm_next;
77743 + }
77744 + if (vma_exec)
77745 + path_exec = pax_get_path(&vma_exec->vm_file->f_path, buffer_exec, PAGE_SIZE);
77746 + if (vma_fault) {
77747 + start = vma_fault->vm_start;
77748 + end = vma_fault->vm_end;
77749 + offset = vma_fault->vm_pgoff << PAGE_SHIFT;
77750 + if (vma_fault->vm_file)
77751 + path_fault = pax_get_path(&vma_fault->vm_file->f_path, buffer_fault, PAGE_SIZE);
77752 + else if ((unsigned long)pc >= mm->start_brk && (unsigned long)pc < mm->brk)
77753 + path_fault = "<heap>";
77754 + else if (vma_fault->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))
77755 + path_fault = "<stack>";
77756 + else
77757 + path_fault = "<anonymous mapping>";
77758 + }
77759 + up_read(&mm->mmap_sem);
77760 + }
77761 + if (tsk->signal->curr_ip)
77762 + printk(KERN_ERR "PAX: From %pI4: execution attempt in: %s, %08lx-%08lx %08lx\n", &tsk->signal->curr_ip, path_fault, start, end, offset);
77763 + else
77764 + printk(KERN_ERR "PAX: execution attempt in: %s, %08lx-%08lx %08lx\n", path_fault, start, end, offset);
77765 + 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),
77766 + from_kuid_munged(&init_user_ns, task_uid(tsk)), from_kuid_munged(&init_user_ns, task_euid(tsk)), pc, sp);
77767 + free_page((unsigned long)buffer_exec);
77768 + free_page((unsigned long)buffer_fault);
77769 + pax_report_insns(regs, pc, sp);
77770 + info.si_signo = SIGKILL;
77771 + info.si_errno = 0;
77772 + info.si_code = SI_KERNEL;
77773 + info.si_pid = 0;
77774 + info.si_uid = 0;
77775 + do_coredump(&info);
77776 +}
77777 +#endif
77778 +
77779 +#ifdef CONFIG_PAX_REFCOUNT
77780 +void pax_report_refcount_overflow(struct pt_regs *regs)
77781 +{
77782 + if (current->signal->curr_ip)
77783 + printk(KERN_EMERG "PAX: From %pI4: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n",
77784 + &current->signal->curr_ip, current->comm, task_pid_nr(current),
77785 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
77786 + else
77787 + printk(KERN_EMERG "PAX: refcount overflow detected in: %s:%d, uid/euid: %u/%u\n", current->comm, task_pid_nr(current),
77788 + from_kuid_munged(&init_user_ns, current_uid()), from_kuid_munged(&init_user_ns, current_euid()));
77789 + print_symbol(KERN_EMERG "PAX: refcount overflow occured at: %s\n", instruction_pointer(regs));
77790 + preempt_disable();
77791 + show_regs(regs);
77792 + preempt_enable();
77793 + force_sig_info(SIGKILL, SEND_SIG_FORCED, current);
77794 +}
77795 +#endif
77796 +
77797 +#ifdef CONFIG_PAX_USERCOPY
77798 +/* 0: not at all, 1: fully, 2: fully inside frame, -1: partially (implies an error) */
77799 +static noinline int check_stack_object(const void *obj, unsigned long len)
77800 +{
77801 + const void * const stack = task_stack_page(current);
77802 + const void * const stackend = stack + THREAD_SIZE;
77803 +
77804 +#if defined(CONFIG_FRAME_POINTER) && defined(CONFIG_X86)
77805 + const void *frame = NULL;
77806 + const void *oldframe;
77807 +#endif
77808 +
77809 + if (obj + len < obj)
77810 + return -1;
77811 +
77812 + if (obj + len <= stack || stackend <= obj)
77813 + return 0;
77814 +
77815 + if (obj < stack || stackend < obj + len)
77816 + return -1;
77817 +
77818 +#if defined(CONFIG_FRAME_POINTER) && defined(CONFIG_X86)
77819 + oldframe = __builtin_frame_address(1);
77820 + if (oldframe)
77821 + frame = __builtin_frame_address(2);
77822 + /*
77823 + low ----------------------------------------------> high
77824 + [saved bp][saved ip][args][local vars][saved bp][saved ip]
77825 + ^----------------^
77826 + allow copies only within here
77827 + */
77828 + while (stack <= frame && frame < stackend) {
77829 + /* if obj + len extends past the last frame, this
77830 + check won't pass and the next frame will be 0,
77831 + causing us to bail out and correctly report
77832 + the copy as invalid
77833 + */
77834 + if (obj + len <= frame)
77835 + return obj >= oldframe + 2 * sizeof(void *) ? 2 : -1;
77836 + oldframe = frame;
77837 + frame = *(const void * const *)frame;
77838 + }
77839 + return -1;
77840 +#else
77841 + return 1;
77842 +#endif
77843 +}
77844 +
77845 +static __noreturn void pax_report_usercopy(const void *ptr, unsigned long len, bool to_user, const char *type)
77846 +{
77847 + if (current->signal->curr_ip)
77848 + printk(KERN_EMERG "PAX: From %pI4: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
77849 + &current->signal->curr_ip, to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len);
77850 + else
77851 + printk(KERN_EMERG "PAX: kernel memory %s attempt detected %s %p (%s) (%lu bytes)\n",
77852 + to_user ? "leak" : "overwrite", to_user ? "from" : "to", ptr, type ? : "unknown", len);
77853 + dump_stack();
77854 + gr_handle_kernel_exploit();
77855 + do_group_exit(SIGKILL);
77856 +}
77857 +#endif
77858 +
77859 +#ifdef CONFIG_PAX_USERCOPY
77860 +
77861 +static inline bool check_kernel_text_object(unsigned long low, unsigned long high)
77862 +{
77863 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
77864 + unsigned long textlow = ktla_ktva((unsigned long)_stext);
77865 +#ifdef CONFIG_MODULES
77866 + unsigned long texthigh = (unsigned long)MODULES_EXEC_VADDR;
77867 +#else
77868 + unsigned long texthigh = ktla_ktva((unsigned long)_etext);
77869 +#endif
77870 +
77871 +#else
77872 + unsigned long textlow = (unsigned long)_stext;
77873 + unsigned long texthigh = (unsigned long)_etext;
77874 +
77875 +#ifdef CONFIG_X86_64
77876 + /* check against linear mapping as well */
77877 + if (high > (unsigned long)__va(__pa(textlow)) &&
77878 + low < (unsigned long)__va(__pa(texthigh)))
77879 + return true;
77880 +#endif
77881 +
77882 +#endif
77883 +
77884 + if (high <= textlow || low >= texthigh)
77885 + return false;
77886 + else
77887 + return true;
77888 +}
77889 +#endif
77890 +
77891 +void __check_object_size(const void *ptr, unsigned long n, bool to_user, bool const_size)
77892 +{
77893 +#ifdef CONFIG_PAX_USERCOPY
77894 + const char *type;
77895 +#endif
77896 +
77897 +#if !defined(CONFIG_STACK_GROWSUP) && !defined(CONFIG_X86_64)
77898 + unsigned long stackstart = (unsigned long)task_stack_page(current);
77899 + unsigned long currentsp = (unsigned long)&stackstart;
77900 + if (unlikely((currentsp < stackstart + 512 ||
77901 + currentsp >= stackstart + THREAD_SIZE) && !in_interrupt()))
77902 + BUG();
77903 +#endif
77904 +
77905 +#ifndef CONFIG_PAX_USERCOPY_DEBUG
77906 + if (const_size)
77907 + return;
77908 +#endif
77909 +
77910 +#ifdef CONFIG_PAX_USERCOPY
77911 + if (!n)
77912 + return;
77913 +
77914 + type = check_heap_object(ptr, n);
77915 + if (!type) {
77916 + int ret = check_stack_object(ptr, n);
77917 + if (ret == 1 || ret == 2)
77918 + return;
77919 + if (ret == 0) {
77920 + if (check_kernel_text_object((unsigned long)ptr, (unsigned long)ptr + n))
77921 + type = "<kernel text>";
77922 + else
77923 + return;
77924 + } else
77925 + type = "<process stack>";
77926 + }
77927 +
77928 + pax_report_usercopy(ptr, n, to_user, type);
77929 +#endif
77930 +
77931 +}
77932 +EXPORT_SYMBOL(__check_object_size);
77933 +
77934 +#ifdef CONFIG_PAX_MEMORY_STACKLEAK
77935 +void __used pax_track_stack(void)
77936 +{
77937 + unsigned long sp = (unsigned long)&sp;
77938 + if (sp < current_thread_info()->lowest_stack &&
77939 + sp >= (unsigned long)task_stack_page(current) + 2 * sizeof(unsigned long))
77940 + current_thread_info()->lowest_stack = sp;
77941 + if (unlikely((sp & ~(THREAD_SIZE - 1)) < (THREAD_SIZE/16)))
77942 + BUG();
77943 +}
77944 +EXPORT_SYMBOL(pax_track_stack);
77945 +#endif
77946 +
77947 +#ifdef CONFIG_PAX_SIZE_OVERFLOW
77948 +
77949 +#ifdef CONFIG_PAX_SIZE_OVERFLOW_DISABLE_KILL
77950 +static DEFINE_RATELIMIT_STATE(size_overflow_ratelimit, 15 * HZ, 3);
77951 +#endif
77952 +
77953 +void __nocapture(1, 3, 4) __used report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
77954 +{
77955 +#ifdef CONFIG_PAX_SIZE_OVERFLOW_DISABLE_KILL
77956 + if (__ratelimit(&size_overflow_ratelimit)) {
77957 + printk(KERN_EMERG "PAX: size overflow detected in function %s %s:%u %s", func, file, line, ssa_name);
77958 + dump_stack();
77959 + }
77960 +#else
77961 + printk(KERN_EMERG "PAX: size overflow detected in function %s %s:%u %s", func, file, line, ssa_name);
77962 + dump_stack();
77963 + do_group_exit(SIGKILL);
77964 +#endif
77965 +}
77966 +EXPORT_SYMBOL(report_size_overflow);
77967 +#endif
77968 diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c
77969 index 9f9992b..8b59411 100644
77970 --- a/fs/ext2/balloc.c
77971 +++ b/fs/ext2/balloc.c
77972 @@ -1184,10 +1184,10 @@ static int ext2_has_free_blocks(struct ext2_sb_info *sbi)
77973
77974 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
77975 root_blocks = le32_to_cpu(sbi->s_es->s_r_blocks_count);
77976 - if (free_blocks < root_blocks + 1 && !capable(CAP_SYS_RESOURCE) &&
77977 + if (free_blocks < root_blocks + 1 &&
77978 !uid_eq(sbi->s_resuid, current_fsuid()) &&
77979 (gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) ||
77980 - !in_group_p (sbi->s_resgid))) {
77981 + !in_group_p (sbi->s_resgid)) && !capable_nolog(CAP_SYS_RESOURCE)) {
77982 return 0;
77983 }
77984 return 1;
77985 diff --git a/fs/ext2/super.c b/fs/ext2/super.c
77986 index 900e19c..f7dc2b8 100644
77987 --- a/fs/ext2/super.c
77988 +++ b/fs/ext2/super.c
77989 @@ -267,10 +267,8 @@ static int ext2_show_options(struct seq_file *seq, struct dentry *root)
77990 #ifdef CONFIG_EXT2_FS_XATTR
77991 if (test_opt(sb, XATTR_USER))
77992 seq_puts(seq, ",user_xattr");
77993 - if (!test_opt(sb, XATTR_USER) &&
77994 - (def_mount_opts & EXT2_DEFM_XATTR_USER)) {
77995 + if (!test_opt(sb, XATTR_USER))
77996 seq_puts(seq, ",nouser_xattr");
77997 - }
77998 #endif
77999
78000 #ifdef CONFIG_EXT2_FS_POSIX_ACL
78001 @@ -856,8 +854,8 @@ static int ext2_fill_super(struct super_block *sb, void *data, int silent)
78002 if (def_mount_opts & EXT2_DEFM_UID16)
78003 set_opt(sbi->s_mount_opt, NO_UID32);
78004 #ifdef CONFIG_EXT2_FS_XATTR
78005 - if (def_mount_opts & EXT2_DEFM_XATTR_USER)
78006 - set_opt(sbi->s_mount_opt, XATTR_USER);
78007 + /* always enable user xattrs */
78008 + set_opt(sbi->s_mount_opt, XATTR_USER);
78009 #endif
78010 #ifdef CONFIG_EXT2_FS_POSIX_ACL
78011 if (def_mount_opts & EXT2_DEFM_ACL)
78012 diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
78013 index 0b6bfd3..93a2964 100644
78014 --- a/fs/ext2/xattr.c
78015 +++ b/fs/ext2/xattr.c
78016 @@ -247,7 +247,7 @@ ext2_xattr_list(struct dentry *dentry, char *buffer, size_t buffer_size)
78017 struct buffer_head *bh = NULL;
78018 struct ext2_xattr_entry *entry;
78019 char *end;
78020 - size_t rest = buffer_size;
78021 + size_t rest = buffer_size, total_size = 0;
78022 int error;
78023
78024 ea_idebug(inode, "buffer=%p, buffer_size=%ld",
78025 @@ -305,9 +305,10 @@ bad_block: ext2_error(inode->i_sb, "ext2_xattr_list",
78026 buffer += size;
78027 }
78028 rest -= size;
78029 + total_size += size;
78030 }
78031 }
78032 - error = buffer_size - rest; /* total size */
78033 + error = total_size;
78034
78035 cleanup:
78036 brelse(bh);
78037 diff --git a/fs/ext3/balloc.c b/fs/ext3/balloc.c
78038 index 158b5d4..2432610 100644
78039 --- a/fs/ext3/balloc.c
78040 +++ b/fs/ext3/balloc.c
78041 @@ -1438,10 +1438,10 @@ static int ext3_has_free_blocks(struct ext3_sb_info *sbi, int use_reservation)
78042
78043 free_blocks = percpu_counter_read_positive(&sbi->s_freeblocks_counter);
78044 root_blocks = le32_to_cpu(sbi->s_es->s_r_blocks_count);
78045 - if (free_blocks < root_blocks + 1 && !capable(CAP_SYS_RESOURCE) &&
78046 + if (free_blocks < root_blocks + 1 &&
78047 !use_reservation && !uid_eq(sbi->s_resuid, current_fsuid()) &&
78048 (gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) ||
78049 - !in_group_p (sbi->s_resgid))) {
78050 + !in_group_p (sbi->s_resgid)) && !capable_nolog(CAP_SYS_RESOURCE)) {
78051 return 0;
78052 }
78053 return 1;
78054 diff --git a/fs/ext3/super.c b/fs/ext3/super.c
78055 index 5ed0044..656e3d2 100644
78056 --- a/fs/ext3/super.c
78057 +++ b/fs/ext3/super.c
78058 @@ -655,10 +655,8 @@ static int ext3_show_options(struct seq_file *seq, struct dentry *root)
78059 #ifdef CONFIG_EXT3_FS_XATTR
78060 if (test_opt(sb, XATTR_USER))
78061 seq_puts(seq, ",user_xattr");
78062 - if (!test_opt(sb, XATTR_USER) &&
78063 - (def_mount_opts & EXT3_DEFM_XATTR_USER)) {
78064 + if (!test_opt(sb, XATTR_USER))
78065 seq_puts(seq, ",nouser_xattr");
78066 - }
78067 #endif
78068 #ifdef CONFIG_EXT3_FS_POSIX_ACL
78069 if (test_opt(sb, POSIX_ACL))
78070 @@ -1760,8 +1758,8 @@ static int ext3_fill_super (struct super_block *sb, void *data, int silent)
78071 if (def_mount_opts & EXT3_DEFM_UID16)
78072 set_opt(sbi->s_mount_opt, NO_UID32);
78073 #ifdef CONFIG_EXT3_FS_XATTR
78074 - if (def_mount_opts & EXT3_DEFM_XATTR_USER)
78075 - set_opt(sbi->s_mount_opt, XATTR_USER);
78076 + /* always enable user xattrs */
78077 + set_opt(sbi->s_mount_opt, XATTR_USER);
78078 #endif
78079 #ifdef CONFIG_EXT3_FS_POSIX_ACL
78080 if (def_mount_opts & EXT3_DEFM_ACL)
78081 diff --git a/fs/ext3/xattr.c b/fs/ext3/xattr.c
78082 index 7cf3650..e3f4a51 100644
78083 --- a/fs/ext3/xattr.c
78084 +++ b/fs/ext3/xattr.c
78085 @@ -330,7 +330,7 @@ static int
78086 ext3_xattr_list_entries(struct dentry *dentry, struct ext3_xattr_entry *entry,
78087 char *buffer, size_t buffer_size)
78088 {
78089 - size_t rest = buffer_size;
78090 + size_t rest = buffer_size, total_size = 0;
78091
78092 for (; !IS_LAST_ENTRY(entry); entry = EXT3_XATTR_NEXT(entry)) {
78093 const struct xattr_handler *handler =
78094 @@ -347,9 +347,10 @@ ext3_xattr_list_entries(struct dentry *dentry, struct ext3_xattr_entry *entry,
78095 buffer += size;
78096 }
78097 rest -= size;
78098 + total_size += size;
78099 }
78100 }
78101 - return buffer_size - rest;
78102 + return total_size;
78103 }
78104
78105 static int
78106 diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
78107 index cd6ea29..1cd2a97 100644
78108 --- a/fs/ext4/balloc.c
78109 +++ b/fs/ext4/balloc.c
78110 @@ -556,8 +556,8 @@ static int ext4_has_free_clusters(struct ext4_sb_info *sbi,
78111 /* Hm, nope. Are (enough) root reserved clusters available? */
78112 if (uid_eq(sbi->s_resuid, current_fsuid()) ||
78113 (!gid_eq(sbi->s_resgid, GLOBAL_ROOT_GID) && in_group_p(sbi->s_resgid)) ||
78114 - capable(CAP_SYS_RESOURCE) ||
78115 - (flags & EXT4_MB_USE_ROOT_BLOCKS)) {
78116 + (flags & EXT4_MB_USE_ROOT_BLOCKS) ||
78117 + capable_nolog(CAP_SYS_RESOURCE)) {
78118
78119 if (free_clusters >= (nclusters + dirty_clusters +
78120 resv_clusters))
78121 diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
78122 index f5e9f04..91296b9 100644
78123 --- a/fs/ext4/ext4.h
78124 +++ b/fs/ext4/ext4.h
78125 @@ -1305,19 +1305,19 @@ struct ext4_sb_info {
78126 unsigned long s_mb_last_start;
78127
78128 /* stats for buddy allocator */
78129 - atomic_t s_bal_reqs; /* number of reqs with len > 1 */
78130 - atomic_t s_bal_success; /* we found long enough chunks */
78131 - atomic_t s_bal_allocated; /* in blocks */
78132 - atomic_t s_bal_ex_scanned; /* total extents scanned */
78133 - atomic_t s_bal_goals; /* goal hits */
78134 - atomic_t s_bal_breaks; /* too long searches */
78135 - atomic_t s_bal_2orders; /* 2^order hits */
78136 + atomic_unchecked_t s_bal_reqs; /* number of reqs with len > 1 */
78137 + atomic_unchecked_t s_bal_success; /* we found long enough chunks */
78138 + atomic_unchecked_t s_bal_allocated; /* in blocks */
78139 + atomic_unchecked_t s_bal_ex_scanned; /* total extents scanned */
78140 + atomic_unchecked_t s_bal_goals; /* goal hits */
78141 + atomic_unchecked_t s_bal_breaks; /* too long searches */
78142 + atomic_unchecked_t s_bal_2orders; /* 2^order hits */
78143 spinlock_t s_bal_lock;
78144 unsigned long s_mb_buddies_generated;
78145 unsigned long long s_mb_generation_time;
78146 - atomic_t s_mb_lost_chunks;
78147 - atomic_t s_mb_preallocated;
78148 - atomic_t s_mb_discarded;
78149 + atomic_unchecked_t s_mb_lost_chunks;
78150 + atomic_unchecked_t s_mb_preallocated;
78151 + atomic_unchecked_t s_mb_discarded;
78152 atomic_t s_lock_busy;
78153
78154 /* locality groups */
78155 diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
78156 index 34b610e..ecc47cb 100644
78157 --- a/fs/ext4/mballoc.c
78158 +++ b/fs/ext4/mballoc.c
78159 @@ -1905,7 +1905,7 @@ void ext4_mb_simple_scan_group(struct ext4_allocation_context *ac,
78160 BUG_ON(ac->ac_b_ex.fe_len != ac->ac_g_ex.fe_len);
78161
78162 if (EXT4_SB(sb)->s_mb_stats)
78163 - atomic_inc(&EXT4_SB(sb)->s_bal_2orders);
78164 + atomic_inc_unchecked(&EXT4_SB(sb)->s_bal_2orders);
78165
78166 break;
78167 }
78168 @@ -2228,7 +2228,7 @@ repeat:
78169 ac->ac_status = AC_STATUS_CONTINUE;
78170 ac->ac_flags |= EXT4_MB_HINT_FIRST;
78171 cr = 3;
78172 - atomic_inc(&sbi->s_mb_lost_chunks);
78173 + atomic_inc_unchecked(&sbi->s_mb_lost_chunks);
78174 goto repeat;
78175 }
78176 }
78177 @@ -2732,25 +2732,25 @@ int ext4_mb_release(struct super_block *sb)
78178 if (sbi->s_mb_stats) {
78179 ext4_msg(sb, KERN_INFO,
78180 "mballoc: %u blocks %u reqs (%u success)",
78181 - atomic_read(&sbi->s_bal_allocated),
78182 - atomic_read(&sbi->s_bal_reqs),
78183 - atomic_read(&sbi->s_bal_success));
78184 + atomic_read_unchecked(&sbi->s_bal_allocated),
78185 + atomic_read_unchecked(&sbi->s_bal_reqs),
78186 + atomic_read_unchecked(&sbi->s_bal_success));
78187 ext4_msg(sb, KERN_INFO,
78188 "mballoc: %u extents scanned, %u goal hits, "
78189 "%u 2^N hits, %u breaks, %u lost",
78190 - atomic_read(&sbi->s_bal_ex_scanned),
78191 - atomic_read(&sbi->s_bal_goals),
78192 - atomic_read(&sbi->s_bal_2orders),
78193 - atomic_read(&sbi->s_bal_breaks),
78194 - atomic_read(&sbi->s_mb_lost_chunks));
78195 + atomic_read_unchecked(&sbi->s_bal_ex_scanned),
78196 + atomic_read_unchecked(&sbi->s_bal_goals),
78197 + atomic_read_unchecked(&sbi->s_bal_2orders),
78198 + atomic_read_unchecked(&sbi->s_bal_breaks),
78199 + atomic_read_unchecked(&sbi->s_mb_lost_chunks));
78200 ext4_msg(sb, KERN_INFO,
78201 "mballoc: %lu generated and it took %Lu",
78202 sbi->s_mb_buddies_generated,
78203 sbi->s_mb_generation_time);
78204 ext4_msg(sb, KERN_INFO,
78205 "mballoc: %u preallocated, %u discarded",
78206 - atomic_read(&sbi->s_mb_preallocated),
78207 - atomic_read(&sbi->s_mb_discarded));
78208 + atomic_read_unchecked(&sbi->s_mb_preallocated),
78209 + atomic_read_unchecked(&sbi->s_mb_discarded));
78210 }
78211
78212 free_percpu(sbi->s_locality_groups);
78213 @@ -3206,16 +3206,16 @@ static void ext4_mb_collect_stats(struct ext4_allocation_context *ac)
78214 struct ext4_sb_info *sbi = EXT4_SB(ac->ac_sb);
78215
78216 if (sbi->s_mb_stats && ac->ac_g_ex.fe_len > 1) {
78217 - atomic_inc(&sbi->s_bal_reqs);
78218 - atomic_add(ac->ac_b_ex.fe_len, &sbi->s_bal_allocated);
78219 + atomic_inc_unchecked(&sbi->s_bal_reqs);
78220 + atomic_add_unchecked(ac->ac_b_ex.fe_len, &sbi->s_bal_allocated);
78221 if (ac->ac_b_ex.fe_len >= ac->ac_o_ex.fe_len)
78222 - atomic_inc(&sbi->s_bal_success);
78223 - atomic_add(ac->ac_found, &sbi->s_bal_ex_scanned);
78224 + atomic_inc_unchecked(&sbi->s_bal_success);
78225 + atomic_add_unchecked(ac->ac_found, &sbi->s_bal_ex_scanned);
78226 if (ac->ac_g_ex.fe_start == ac->ac_b_ex.fe_start &&
78227 ac->ac_g_ex.fe_group == ac->ac_b_ex.fe_group)
78228 - atomic_inc(&sbi->s_bal_goals);
78229 + atomic_inc_unchecked(&sbi->s_bal_goals);
78230 if (ac->ac_found > sbi->s_mb_max_to_scan)
78231 - atomic_inc(&sbi->s_bal_breaks);
78232 + atomic_inc_unchecked(&sbi->s_bal_breaks);
78233 }
78234
78235 if (ac->ac_op == EXT4_MB_HISTORY_ALLOC)
78236 @@ -3642,7 +3642,7 @@ ext4_mb_new_inode_pa(struct ext4_allocation_context *ac)
78237 trace_ext4_mb_new_inode_pa(ac, pa);
78238
78239 ext4_mb_use_inode_pa(ac, pa);
78240 - atomic_add(pa->pa_free, &sbi->s_mb_preallocated);
78241 + atomic_add_unchecked(pa->pa_free, &sbi->s_mb_preallocated);
78242
78243 ei = EXT4_I(ac->ac_inode);
78244 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
78245 @@ -3702,7 +3702,7 @@ ext4_mb_new_group_pa(struct ext4_allocation_context *ac)
78246 trace_ext4_mb_new_group_pa(ac, pa);
78247
78248 ext4_mb_use_group_pa(ac, pa);
78249 - atomic_add(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
78250 + atomic_add_unchecked(pa->pa_free, &EXT4_SB(sb)->s_mb_preallocated);
78251
78252 grp = ext4_get_group_info(sb, ac->ac_b_ex.fe_group);
78253 lg = ac->ac_lg;
78254 @@ -3791,7 +3791,7 @@ ext4_mb_release_inode_pa(struct ext4_buddy *e4b, struct buffer_head *bitmap_bh,
78255 * from the bitmap and continue.
78256 */
78257 }
78258 - atomic_add(free, &sbi->s_mb_discarded);
78259 + atomic_add_unchecked(free, &sbi->s_mb_discarded);
78260
78261 return err;
78262 }
78263 @@ -3809,7 +3809,7 @@ ext4_mb_release_group_pa(struct ext4_buddy *e4b,
78264 ext4_get_group_no_and_offset(sb, pa->pa_pstart, &group, &bit);
78265 BUG_ON(group != e4b->bd_group && pa->pa_len != 0);
78266 mb_free_blocks(pa->pa_inode, e4b, bit, pa->pa_len);
78267 - atomic_add(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded);
78268 + atomic_add_unchecked(pa->pa_len, &EXT4_SB(sb)->s_mb_discarded);
78269 trace_ext4_mballoc_discard(sb, NULL, group, bit, pa->pa_len);
78270
78271 return 0;
78272 diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c
78273 index 8313ca3..8a37d08 100644
78274 --- a/fs/ext4/mmp.c
78275 +++ b/fs/ext4/mmp.c
78276 @@ -111,7 +111,7 @@ static int read_mmp_block(struct super_block *sb, struct buffer_head **bh,
78277 void __dump_mmp_msg(struct super_block *sb, struct mmp_struct *mmp,
78278 const char *function, unsigned int line, const char *msg)
78279 {
78280 - __ext4_warning(sb, function, line, msg);
78281 + __ext4_warning(sb, function, line, "%s", msg);
78282 __ext4_warning(sb, function, line,
78283 "MMP failure info: last update time: %llu, last update "
78284 "node: %s, last update device: %s\n",
78285 diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
78286 index cf0c472..ddf284d 100644
78287 --- a/fs/ext4/resize.c
78288 +++ b/fs/ext4/resize.c
78289 @@ -413,7 +413,7 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
78290
78291 ext4_debug("mark blocks [%llu/%u] used\n", block, count);
78292 for (count2 = count; count > 0; count -= count2, block += count2) {
78293 - ext4_fsblk_t start;
78294 + ext4_fsblk_t start, diff;
78295 struct buffer_head *bh;
78296 ext4_group_t group;
78297 int err;
78298 @@ -422,10 +422,6 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
78299 start = ext4_group_first_block_no(sb, group);
78300 group -= flex_gd->groups[0].group;
78301
78302 - count2 = EXT4_BLOCKS_PER_GROUP(sb) - (block - start);
78303 - if (count2 > count)
78304 - count2 = count;
78305 -
78306 if (flex_gd->bg_flags[group] & EXT4_BG_BLOCK_UNINIT) {
78307 BUG_ON(flex_gd->count > 1);
78308 continue;
78309 @@ -443,9 +439,15 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
78310 err = ext4_journal_get_write_access(handle, bh);
78311 if (err)
78312 return err;
78313 +
78314 + diff = block - start;
78315 + count2 = EXT4_BLOCKS_PER_GROUP(sb) - diff;
78316 + if (count2 > count)
78317 + count2 = count;
78318 +
78319 ext4_debug("mark block bitmap %#04llx (+%llu/%u)\n", block,
78320 - block - start, count2);
78321 - ext4_set_bits(bh->b_data, block - start, count2);
78322 + diff, count2);
78323 + ext4_set_bits(bh->b_data, diff, count2);
78324
78325 err = ext4_handle_dirty_metadata(handle, NULL, bh);
78326 if (unlikely(err))
78327 diff --git a/fs/ext4/super.c b/fs/ext4/super.c
78328 index a5e8c74..a7711a8 100644
78329 --- a/fs/ext4/super.c
78330 +++ b/fs/ext4/super.c
78331 @@ -1274,7 +1274,7 @@ static ext4_fsblk_t get_sb_block(void **data)
78332 }
78333
78334 #define DEFAULT_JOURNAL_IOPRIO (IOPRIO_PRIO_VALUE(IOPRIO_CLASS_BE, 3))
78335 -static char deprecated_msg[] = "Mount option \"%s\" will be removed by %s\n"
78336 +static const char deprecated_msg[] = "Mount option \"%s\" will be removed by %s\n"
78337 "Contact linux-ext4@vger.kernel.org if you think we should keep it.\n";
78338
78339 #ifdef CONFIG_QUOTA
78340 @@ -2484,7 +2484,7 @@ struct ext4_attr {
78341 int offset;
78342 int deprecated_val;
78343 } u;
78344 -};
78345 +} __do_const;
78346
78347 static int parse_strtoull(const char *buf,
78348 unsigned long long max, unsigned long long *value)
78349 diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
78350 index 16e28c0..728c282 100644
78351 --- a/fs/ext4/xattr.c
78352 +++ b/fs/ext4/xattr.c
78353 @@ -398,7 +398,7 @@ static int
78354 ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
78355 char *buffer, size_t buffer_size)
78356 {
78357 - size_t rest = buffer_size;
78358 + size_t rest = buffer_size, total_size = 0;
78359
78360 for (; !IS_LAST_ENTRY(entry); entry = EXT4_XATTR_NEXT(entry)) {
78361 const struct xattr_handler *handler =
78362 @@ -415,9 +415,10 @@ ext4_xattr_list_entries(struct dentry *dentry, struct ext4_xattr_entry *entry,
78363 buffer += size;
78364 }
78365 rest -= size;
78366 + total_size += size;
78367 }
78368 }
78369 - return buffer_size - rest;
78370 + return total_size;
78371 }
78372
78373 static int
78374 diff --git a/fs/fcntl.c b/fs/fcntl.c
78375 index ee85cd4..9dd0d20 100644
78376 --- a/fs/fcntl.c
78377 +++ b/fs/fcntl.c
78378 @@ -102,6 +102,10 @@ void __f_setown(struct file *filp, struct pid *pid, enum pid_type type,
78379 int force)
78380 {
78381 security_file_set_fowner(filp);
78382 + if (gr_handle_chroot_fowner(pid, type))
78383 + return;
78384 + if (gr_check_protected_task_fowner(pid, type))
78385 + return;
78386 f_modown(filp, pid, type, force);
78387 }
78388 EXPORT_SYMBOL(__f_setown);
78389 diff --git a/fs/fhandle.c b/fs/fhandle.c
78390 index d59712d..2281df9 100644
78391 --- a/fs/fhandle.c
78392 +++ b/fs/fhandle.c
78393 @@ -8,6 +8,7 @@
78394 #include <linux/fs_struct.h>
78395 #include <linux/fsnotify.h>
78396 #include <linux/personality.h>
78397 +#include <linux/grsecurity.h>
78398 #include <asm/uaccess.h>
78399 #include "internal.h"
78400 #include "mount.h"
78401 @@ -67,8 +68,7 @@ static long do_sys_name_to_handle(struct path *path,
78402 } else
78403 retval = 0;
78404 /* copy the mount id */
78405 - if (copy_to_user(mnt_id, &real_mount(path->mnt)->mnt_id,
78406 - sizeof(*mnt_id)) ||
78407 + if (put_user(real_mount(path->mnt)->mnt_id, mnt_id) ||
78408 copy_to_user(ufh, handle,
78409 sizeof(struct file_handle) + handle_bytes))
78410 retval = -EFAULT;
78411 @@ -175,7 +175,7 @@ static int handle_to_path(int mountdirfd, struct file_handle __user *ufh,
78412 * the directory. Ideally we would like CAP_DAC_SEARCH.
78413 * But we don't have that
78414 */
78415 - if (!capable(CAP_DAC_READ_SEARCH)) {
78416 + if (!capable(CAP_DAC_READ_SEARCH) || !gr_chroot_fhandle()) {
78417 retval = -EPERM;
78418 goto out_err;
78419 }
78420 diff --git a/fs/file.c b/fs/file.c
78421 index 6c672ad..bf787b0 100644
78422 --- a/fs/file.c
78423 +++ b/fs/file.c
78424 @@ -16,6 +16,7 @@
78425 #include <linux/slab.h>
78426 #include <linux/vmalloc.h>
78427 #include <linux/file.h>
78428 +#include <linux/security.h>
78429 #include <linux/fdtable.h>
78430 #include <linux/bitops.h>
78431 #include <linux/interrupt.h>
78432 @@ -139,7 +140,7 @@ out:
78433 * Return <0 error code on error; 1 on successful completion.
78434 * The files->file_lock should be held on entry, and will be held on exit.
78435 */
78436 -static int expand_fdtable(struct files_struct *files, int nr)
78437 +static int expand_fdtable(struct files_struct *files, unsigned int nr)
78438 __releases(files->file_lock)
78439 __acquires(files->file_lock)
78440 {
78441 @@ -184,7 +185,7 @@ static int expand_fdtable(struct files_struct *files, int nr)
78442 * expanded and execution may have blocked.
78443 * The files->file_lock should be held on entry, and will be held on exit.
78444 */
78445 -static int expand_files(struct files_struct *files, int nr)
78446 +static int expand_files(struct files_struct *files, unsigned int nr)
78447 __releases(files->file_lock)
78448 __acquires(files->file_lock)
78449 {
78450 @@ -834,6 +835,7 @@ int replace_fd(unsigned fd, struct file *file, unsigned flags)
78451 if (!file)
78452 return __close_fd(files, fd);
78453
78454 + gr_learn_resource(current, RLIMIT_NOFILE, fd, 0);
78455 if (fd >= rlimit(RLIMIT_NOFILE))
78456 return -EBADF;
78457
78458 @@ -860,6 +862,7 @@ SYSCALL_DEFINE3(dup3, unsigned int, oldfd, unsigned int, newfd, int, flags)
78459 if (unlikely(oldfd == newfd))
78460 return -EINVAL;
78461
78462 + gr_learn_resource(current, RLIMIT_NOFILE, newfd, 0);
78463 if (newfd >= rlimit(RLIMIT_NOFILE))
78464 return -EBADF;
78465
78466 @@ -915,6 +918,7 @@ SYSCALL_DEFINE1(dup, unsigned int, fildes)
78467 int f_dupfd(unsigned int from, struct file *file, unsigned flags)
78468 {
78469 int err;
78470 + gr_learn_resource(current, RLIMIT_NOFILE, from, 0);
78471 if (from >= rlimit(RLIMIT_NOFILE))
78472 return -EINVAL;
78473 err = alloc_fd(from, flags);
78474 diff --git a/fs/filesystems.c b/fs/filesystems.c
78475 index 5797d45..7d7d79a 100644
78476 --- a/fs/filesystems.c
78477 +++ b/fs/filesystems.c
78478 @@ -275,7 +275,11 @@ struct file_system_type *get_fs_type(const char *name)
78479 int len = dot ? dot - name : strlen(name);
78480
78481 fs = __get_fs_type(name, len);
78482 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
78483 + if (!fs && (___request_module(true, "grsec_modharden_fs", "fs-%.*s", len, name) == 0))
78484 +#else
78485 if (!fs && (request_module("fs-%.*s", len, name) == 0))
78486 +#endif
78487 fs = __get_fs_type(name, len);
78488
78489 if (dot && fs && !(fs->fs_flags & FS_HAS_SUBTYPE)) {
78490 diff --git a/fs/fs_struct.c b/fs/fs_struct.c
78491 index 7dca743..1ff87ae 100644
78492 --- a/fs/fs_struct.c
78493 +++ b/fs/fs_struct.c
78494 @@ -4,6 +4,7 @@
78495 #include <linux/path.h>
78496 #include <linux/slab.h>
78497 #include <linux/fs_struct.h>
78498 +#include <linux/grsecurity.h>
78499 #include "internal.h"
78500
78501 /*
78502 @@ -15,14 +16,18 @@ void set_fs_root(struct fs_struct *fs, const struct path *path)
78503 struct path old_root;
78504
78505 path_get(path);
78506 + gr_inc_chroot_refcnts(path->dentry, path->mnt);
78507 spin_lock(&fs->lock);
78508 write_seqcount_begin(&fs->seq);
78509 old_root = fs->root;
78510 fs->root = *path;
78511 + gr_set_chroot_entries(current, path);
78512 write_seqcount_end(&fs->seq);
78513 spin_unlock(&fs->lock);
78514 - if (old_root.dentry)
78515 + if (old_root.dentry) {
78516 + gr_dec_chroot_refcnts(old_root.dentry, old_root.mnt);
78517 path_put(&old_root);
78518 + }
78519 }
78520
78521 /*
78522 @@ -67,6 +72,10 @@ void chroot_fs_refs(const struct path *old_root, const struct path *new_root)
78523 int hits = 0;
78524 spin_lock(&fs->lock);
78525 write_seqcount_begin(&fs->seq);
78526 + /* this root replacement is only done by pivot_root,
78527 + leave grsec's chroot tagging alone for this task
78528 + so that a pivoted root isn't treated as a chroot
78529 + */
78530 hits += replace_path(&fs->root, old_root, new_root);
78531 hits += replace_path(&fs->pwd, old_root, new_root);
78532 write_seqcount_end(&fs->seq);
78533 @@ -85,6 +94,7 @@ void chroot_fs_refs(const struct path *old_root, const struct path *new_root)
78534
78535 void free_fs_struct(struct fs_struct *fs)
78536 {
78537 + gr_dec_chroot_refcnts(fs->root.dentry, fs->root.mnt);
78538 path_put(&fs->root);
78539 path_put(&fs->pwd);
78540 kmem_cache_free(fs_cachep, fs);
78541 @@ -99,7 +109,8 @@ void exit_fs(struct task_struct *tsk)
78542 task_lock(tsk);
78543 spin_lock(&fs->lock);
78544 tsk->fs = NULL;
78545 - kill = !--fs->users;
78546 + gr_clear_chroot_entries(tsk);
78547 + kill = !atomic_dec_return(&fs->users);
78548 spin_unlock(&fs->lock);
78549 task_unlock(tsk);
78550 if (kill)
78551 @@ -112,7 +123,7 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
78552 struct fs_struct *fs = kmem_cache_alloc(fs_cachep, GFP_KERNEL);
78553 /* We don't need to lock fs - think why ;-) */
78554 if (fs) {
78555 - fs->users = 1;
78556 + atomic_set(&fs->users, 1);
78557 fs->in_exec = 0;
78558 spin_lock_init(&fs->lock);
78559 seqcount_init(&fs->seq);
78560 @@ -121,9 +132,13 @@ struct fs_struct *copy_fs_struct(struct fs_struct *old)
78561 spin_lock(&old->lock);
78562 fs->root = old->root;
78563 path_get(&fs->root);
78564 + /* instead of calling gr_set_chroot_entries here,
78565 + we call it from every caller of this function
78566 + */
78567 fs->pwd = old->pwd;
78568 path_get(&fs->pwd);
78569 spin_unlock(&old->lock);
78570 + gr_inc_chroot_refcnts(fs->root.dentry, fs->root.mnt);
78571 }
78572 return fs;
78573 }
78574 @@ -139,8 +154,9 @@ int unshare_fs_struct(void)
78575
78576 task_lock(current);
78577 spin_lock(&fs->lock);
78578 - kill = !--fs->users;
78579 + kill = !atomic_dec_return(&fs->users);
78580 current->fs = new_fs;
78581 + gr_set_chroot_entries(current, &new_fs->root);
78582 spin_unlock(&fs->lock);
78583 task_unlock(current);
78584
78585 @@ -153,13 +169,13 @@ EXPORT_SYMBOL_GPL(unshare_fs_struct);
78586
78587 int current_umask(void)
78588 {
78589 - return current->fs->umask;
78590 + return current->fs->umask | gr_acl_umask();
78591 }
78592 EXPORT_SYMBOL(current_umask);
78593
78594 /* to be mentioned only in INIT_TASK */
78595 struct fs_struct init_fs = {
78596 - .users = 1,
78597 + .users = ATOMIC_INIT(1),
78598 .lock = __SPIN_LOCK_UNLOCKED(init_fs.lock),
78599 .seq = SEQCNT_ZERO(init_fs.seq),
78600 .umask = 0022,
78601 diff --git a/fs/fscache/cookie.c b/fs/fscache/cookie.c
78602 index d403c69..30be0a9 100644
78603 --- a/fs/fscache/cookie.c
78604 +++ b/fs/fscache/cookie.c
78605 @@ -19,7 +19,7 @@
78606
78607 struct kmem_cache *fscache_cookie_jar;
78608
78609 -static atomic_t fscache_object_debug_id = ATOMIC_INIT(0);
78610 +static atomic_unchecked_t fscache_object_debug_id = ATOMIC_INIT(0);
78611
78612 static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie);
78613 static int fscache_alloc_object(struct fscache_cache *cache,
78614 @@ -69,11 +69,11 @@ struct fscache_cookie *__fscache_acquire_cookie(
78615 parent ? (char *) parent->def->name : "<no-parent>",
78616 def->name, netfs_data, enable);
78617
78618 - fscache_stat(&fscache_n_acquires);
78619 + fscache_stat_unchecked(&fscache_n_acquires);
78620
78621 /* if there's no parent cookie, then we don't create one here either */
78622 if (!parent) {
78623 - fscache_stat(&fscache_n_acquires_null);
78624 + fscache_stat_unchecked(&fscache_n_acquires_null);
78625 _leave(" [no parent]");
78626 return NULL;
78627 }
78628 @@ -88,7 +88,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
78629 /* allocate and initialise a cookie */
78630 cookie = kmem_cache_alloc(fscache_cookie_jar, GFP_KERNEL);
78631 if (!cookie) {
78632 - fscache_stat(&fscache_n_acquires_oom);
78633 + fscache_stat_unchecked(&fscache_n_acquires_oom);
78634 _leave(" [ENOMEM]");
78635 return NULL;
78636 }
78637 @@ -115,13 +115,13 @@ struct fscache_cookie *__fscache_acquire_cookie(
78638
78639 switch (cookie->def->type) {
78640 case FSCACHE_COOKIE_TYPE_INDEX:
78641 - fscache_stat(&fscache_n_cookie_index);
78642 + fscache_stat_unchecked(&fscache_n_cookie_index);
78643 break;
78644 case FSCACHE_COOKIE_TYPE_DATAFILE:
78645 - fscache_stat(&fscache_n_cookie_data);
78646 + fscache_stat_unchecked(&fscache_n_cookie_data);
78647 break;
78648 default:
78649 - fscache_stat(&fscache_n_cookie_special);
78650 + fscache_stat_unchecked(&fscache_n_cookie_special);
78651 break;
78652 }
78653
78654 @@ -135,7 +135,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
78655 } else {
78656 atomic_dec(&parent->n_children);
78657 __fscache_cookie_put(cookie);
78658 - fscache_stat(&fscache_n_acquires_nobufs);
78659 + fscache_stat_unchecked(&fscache_n_acquires_nobufs);
78660 _leave(" = NULL");
78661 return NULL;
78662 }
78663 @@ -144,7 +144,7 @@ struct fscache_cookie *__fscache_acquire_cookie(
78664 }
78665 }
78666
78667 - fscache_stat(&fscache_n_acquires_ok);
78668 + fscache_stat_unchecked(&fscache_n_acquires_ok);
78669 _leave(" = %p", cookie);
78670 return cookie;
78671 }
78672 @@ -213,7 +213,7 @@ static int fscache_acquire_non_index_cookie(struct fscache_cookie *cookie)
78673 cache = fscache_select_cache_for_object(cookie->parent);
78674 if (!cache) {
78675 up_read(&fscache_addremove_sem);
78676 - fscache_stat(&fscache_n_acquires_no_cache);
78677 + fscache_stat_unchecked(&fscache_n_acquires_no_cache);
78678 _leave(" = -ENOMEDIUM [no cache]");
78679 return -ENOMEDIUM;
78680 }
78681 @@ -297,14 +297,14 @@ static int fscache_alloc_object(struct fscache_cache *cache,
78682 object = cache->ops->alloc_object(cache, cookie);
78683 fscache_stat_d(&fscache_n_cop_alloc_object);
78684 if (IS_ERR(object)) {
78685 - fscache_stat(&fscache_n_object_no_alloc);
78686 + fscache_stat_unchecked(&fscache_n_object_no_alloc);
78687 ret = PTR_ERR(object);
78688 goto error;
78689 }
78690
78691 - fscache_stat(&fscache_n_object_alloc);
78692 + fscache_stat_unchecked(&fscache_n_object_alloc);
78693
78694 - object->debug_id = atomic_inc_return(&fscache_object_debug_id);
78695 + object->debug_id = atomic_inc_return_unchecked(&fscache_object_debug_id);
78696
78697 _debug("ALLOC OBJ%x: %s {%lx}",
78698 object->debug_id, cookie->def->name, object->events);
78699 @@ -419,7 +419,7 @@ void __fscache_invalidate(struct fscache_cookie *cookie)
78700
78701 _enter("{%s}", cookie->def->name);
78702
78703 - fscache_stat(&fscache_n_invalidates);
78704 + fscache_stat_unchecked(&fscache_n_invalidates);
78705
78706 /* Only permit invalidation of data files. Invalidating an index will
78707 * require the caller to release all its attachments to the tree rooted
78708 @@ -477,10 +477,10 @@ void __fscache_update_cookie(struct fscache_cookie *cookie)
78709 {
78710 struct fscache_object *object;
78711
78712 - fscache_stat(&fscache_n_updates);
78713 + fscache_stat_unchecked(&fscache_n_updates);
78714
78715 if (!cookie) {
78716 - fscache_stat(&fscache_n_updates_null);
78717 + fscache_stat_unchecked(&fscache_n_updates_null);
78718 _leave(" [no cookie]");
78719 return;
78720 }
78721 @@ -581,12 +581,12 @@ EXPORT_SYMBOL(__fscache_disable_cookie);
78722 */
78723 void __fscache_relinquish_cookie(struct fscache_cookie *cookie, bool retire)
78724 {
78725 - fscache_stat(&fscache_n_relinquishes);
78726 + fscache_stat_unchecked(&fscache_n_relinquishes);
78727 if (retire)
78728 - fscache_stat(&fscache_n_relinquishes_retire);
78729 + fscache_stat_unchecked(&fscache_n_relinquishes_retire);
78730
78731 if (!cookie) {
78732 - fscache_stat(&fscache_n_relinquishes_null);
78733 + fscache_stat_unchecked(&fscache_n_relinquishes_null);
78734 _leave(" [no cookie]");
78735 return;
78736 }
78737 @@ -687,7 +687,7 @@ int __fscache_check_consistency(struct fscache_cookie *cookie)
78738 if (test_bit(FSCACHE_IOERROR, &object->cache->flags))
78739 goto inconsistent;
78740
78741 - op->debug_id = atomic_inc_return(&fscache_op_debug_id);
78742 + op->debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
78743
78744 __fscache_use_cookie(cookie);
78745 if (fscache_submit_op(object, op) < 0)
78746 diff --git a/fs/fscache/internal.h b/fs/fscache/internal.h
78747 index 97ec451..f722cee 100644
78748 --- a/fs/fscache/internal.h
78749 +++ b/fs/fscache/internal.h
78750 @@ -136,8 +136,8 @@ extern void fscache_operation_gc(struct work_struct *);
78751 extern int fscache_wait_for_deferred_lookup(struct fscache_cookie *);
78752 extern int fscache_wait_for_operation_activation(struct fscache_object *,
78753 struct fscache_operation *,
78754 - atomic_t *,
78755 - atomic_t *);
78756 + atomic_unchecked_t *,
78757 + atomic_unchecked_t *);
78758 extern void fscache_invalidate_writes(struct fscache_cookie *);
78759
78760 /*
78761 @@ -155,102 +155,102 @@ extern void fscache_proc_cleanup(void);
78762 * stats.c
78763 */
78764 #ifdef CONFIG_FSCACHE_STATS
78765 -extern atomic_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
78766 -extern atomic_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
78767 +extern atomic_unchecked_t fscache_n_ops_processed[FSCACHE_MAX_THREADS];
78768 +extern atomic_unchecked_t fscache_n_objs_processed[FSCACHE_MAX_THREADS];
78769
78770 -extern atomic_t fscache_n_op_pend;
78771 -extern atomic_t fscache_n_op_run;
78772 -extern atomic_t fscache_n_op_enqueue;
78773 -extern atomic_t fscache_n_op_deferred_release;
78774 -extern atomic_t fscache_n_op_initialised;
78775 -extern atomic_t fscache_n_op_release;
78776 -extern atomic_t fscache_n_op_gc;
78777 -extern atomic_t fscache_n_op_cancelled;
78778 -extern atomic_t fscache_n_op_rejected;
78779 +extern atomic_unchecked_t fscache_n_op_pend;
78780 +extern atomic_unchecked_t fscache_n_op_run;
78781 +extern atomic_unchecked_t fscache_n_op_enqueue;
78782 +extern atomic_unchecked_t fscache_n_op_deferred_release;
78783 +extern atomic_unchecked_t fscache_n_op_initialised;
78784 +extern atomic_unchecked_t fscache_n_op_release;
78785 +extern atomic_unchecked_t fscache_n_op_gc;
78786 +extern atomic_unchecked_t fscache_n_op_cancelled;
78787 +extern atomic_unchecked_t fscache_n_op_rejected;
78788
78789 -extern atomic_t fscache_n_attr_changed;
78790 -extern atomic_t fscache_n_attr_changed_ok;
78791 -extern atomic_t fscache_n_attr_changed_nobufs;
78792 -extern atomic_t fscache_n_attr_changed_nomem;
78793 -extern atomic_t fscache_n_attr_changed_calls;
78794 +extern atomic_unchecked_t fscache_n_attr_changed;
78795 +extern atomic_unchecked_t fscache_n_attr_changed_ok;
78796 +extern atomic_unchecked_t fscache_n_attr_changed_nobufs;
78797 +extern atomic_unchecked_t fscache_n_attr_changed_nomem;
78798 +extern atomic_unchecked_t fscache_n_attr_changed_calls;
78799
78800 -extern atomic_t fscache_n_allocs;
78801 -extern atomic_t fscache_n_allocs_ok;
78802 -extern atomic_t fscache_n_allocs_wait;
78803 -extern atomic_t fscache_n_allocs_nobufs;
78804 -extern atomic_t fscache_n_allocs_intr;
78805 -extern atomic_t fscache_n_allocs_object_dead;
78806 -extern atomic_t fscache_n_alloc_ops;
78807 -extern atomic_t fscache_n_alloc_op_waits;
78808 +extern atomic_unchecked_t fscache_n_allocs;
78809 +extern atomic_unchecked_t fscache_n_allocs_ok;
78810 +extern atomic_unchecked_t fscache_n_allocs_wait;
78811 +extern atomic_unchecked_t fscache_n_allocs_nobufs;
78812 +extern atomic_unchecked_t fscache_n_allocs_intr;
78813 +extern atomic_unchecked_t fscache_n_allocs_object_dead;
78814 +extern atomic_unchecked_t fscache_n_alloc_ops;
78815 +extern atomic_unchecked_t fscache_n_alloc_op_waits;
78816
78817 -extern atomic_t fscache_n_retrievals;
78818 -extern atomic_t fscache_n_retrievals_ok;
78819 -extern atomic_t fscache_n_retrievals_wait;
78820 -extern atomic_t fscache_n_retrievals_nodata;
78821 -extern atomic_t fscache_n_retrievals_nobufs;
78822 -extern atomic_t fscache_n_retrievals_intr;
78823 -extern atomic_t fscache_n_retrievals_nomem;
78824 -extern atomic_t fscache_n_retrievals_object_dead;
78825 -extern atomic_t fscache_n_retrieval_ops;
78826 -extern atomic_t fscache_n_retrieval_op_waits;
78827 +extern atomic_unchecked_t fscache_n_retrievals;
78828 +extern atomic_unchecked_t fscache_n_retrievals_ok;
78829 +extern atomic_unchecked_t fscache_n_retrievals_wait;
78830 +extern atomic_unchecked_t fscache_n_retrievals_nodata;
78831 +extern atomic_unchecked_t fscache_n_retrievals_nobufs;
78832 +extern atomic_unchecked_t fscache_n_retrievals_intr;
78833 +extern atomic_unchecked_t fscache_n_retrievals_nomem;
78834 +extern atomic_unchecked_t fscache_n_retrievals_object_dead;
78835 +extern atomic_unchecked_t fscache_n_retrieval_ops;
78836 +extern atomic_unchecked_t fscache_n_retrieval_op_waits;
78837
78838 -extern atomic_t fscache_n_stores;
78839 -extern atomic_t fscache_n_stores_ok;
78840 -extern atomic_t fscache_n_stores_again;
78841 -extern atomic_t fscache_n_stores_nobufs;
78842 -extern atomic_t fscache_n_stores_oom;
78843 -extern atomic_t fscache_n_store_ops;
78844 -extern atomic_t fscache_n_store_calls;
78845 -extern atomic_t fscache_n_store_pages;
78846 -extern atomic_t fscache_n_store_radix_deletes;
78847 -extern atomic_t fscache_n_store_pages_over_limit;
78848 +extern atomic_unchecked_t fscache_n_stores;
78849 +extern atomic_unchecked_t fscache_n_stores_ok;
78850 +extern atomic_unchecked_t fscache_n_stores_again;
78851 +extern atomic_unchecked_t fscache_n_stores_nobufs;
78852 +extern atomic_unchecked_t fscache_n_stores_oom;
78853 +extern atomic_unchecked_t fscache_n_store_ops;
78854 +extern atomic_unchecked_t fscache_n_store_calls;
78855 +extern atomic_unchecked_t fscache_n_store_pages;
78856 +extern atomic_unchecked_t fscache_n_store_radix_deletes;
78857 +extern atomic_unchecked_t fscache_n_store_pages_over_limit;
78858
78859 -extern atomic_t fscache_n_store_vmscan_not_storing;
78860 -extern atomic_t fscache_n_store_vmscan_gone;
78861 -extern atomic_t fscache_n_store_vmscan_busy;
78862 -extern atomic_t fscache_n_store_vmscan_cancelled;
78863 -extern atomic_t fscache_n_store_vmscan_wait;
78864 +extern atomic_unchecked_t fscache_n_store_vmscan_not_storing;
78865 +extern atomic_unchecked_t fscache_n_store_vmscan_gone;
78866 +extern atomic_unchecked_t fscache_n_store_vmscan_busy;
78867 +extern atomic_unchecked_t fscache_n_store_vmscan_cancelled;
78868 +extern atomic_unchecked_t fscache_n_store_vmscan_wait;
78869
78870 -extern atomic_t fscache_n_marks;
78871 -extern atomic_t fscache_n_uncaches;
78872 +extern atomic_unchecked_t fscache_n_marks;
78873 +extern atomic_unchecked_t fscache_n_uncaches;
78874
78875 -extern atomic_t fscache_n_acquires;
78876 -extern atomic_t fscache_n_acquires_null;
78877 -extern atomic_t fscache_n_acquires_no_cache;
78878 -extern atomic_t fscache_n_acquires_ok;
78879 -extern atomic_t fscache_n_acquires_nobufs;
78880 -extern atomic_t fscache_n_acquires_oom;
78881 +extern atomic_unchecked_t fscache_n_acquires;
78882 +extern atomic_unchecked_t fscache_n_acquires_null;
78883 +extern atomic_unchecked_t fscache_n_acquires_no_cache;
78884 +extern atomic_unchecked_t fscache_n_acquires_ok;
78885 +extern atomic_unchecked_t fscache_n_acquires_nobufs;
78886 +extern atomic_unchecked_t fscache_n_acquires_oom;
78887
78888 -extern atomic_t fscache_n_invalidates;
78889 -extern atomic_t fscache_n_invalidates_run;
78890 +extern atomic_unchecked_t fscache_n_invalidates;
78891 +extern atomic_unchecked_t fscache_n_invalidates_run;
78892
78893 -extern atomic_t fscache_n_updates;
78894 -extern atomic_t fscache_n_updates_null;
78895 -extern atomic_t fscache_n_updates_run;
78896 +extern atomic_unchecked_t fscache_n_updates;
78897 +extern atomic_unchecked_t fscache_n_updates_null;
78898 +extern atomic_unchecked_t fscache_n_updates_run;
78899
78900 -extern atomic_t fscache_n_relinquishes;
78901 -extern atomic_t fscache_n_relinquishes_null;
78902 -extern atomic_t fscache_n_relinquishes_waitcrt;
78903 -extern atomic_t fscache_n_relinquishes_retire;
78904 +extern atomic_unchecked_t fscache_n_relinquishes;
78905 +extern atomic_unchecked_t fscache_n_relinquishes_null;
78906 +extern atomic_unchecked_t fscache_n_relinquishes_waitcrt;
78907 +extern atomic_unchecked_t fscache_n_relinquishes_retire;
78908
78909 -extern atomic_t fscache_n_cookie_index;
78910 -extern atomic_t fscache_n_cookie_data;
78911 -extern atomic_t fscache_n_cookie_special;
78912 +extern atomic_unchecked_t fscache_n_cookie_index;
78913 +extern atomic_unchecked_t fscache_n_cookie_data;
78914 +extern atomic_unchecked_t fscache_n_cookie_special;
78915
78916 -extern atomic_t fscache_n_object_alloc;
78917 -extern atomic_t fscache_n_object_no_alloc;
78918 -extern atomic_t fscache_n_object_lookups;
78919 -extern atomic_t fscache_n_object_lookups_negative;
78920 -extern atomic_t fscache_n_object_lookups_positive;
78921 -extern atomic_t fscache_n_object_lookups_timed_out;
78922 -extern atomic_t fscache_n_object_created;
78923 -extern atomic_t fscache_n_object_avail;
78924 -extern atomic_t fscache_n_object_dead;
78925 +extern atomic_unchecked_t fscache_n_object_alloc;
78926 +extern atomic_unchecked_t fscache_n_object_no_alloc;
78927 +extern atomic_unchecked_t fscache_n_object_lookups;
78928 +extern atomic_unchecked_t fscache_n_object_lookups_negative;
78929 +extern atomic_unchecked_t fscache_n_object_lookups_positive;
78930 +extern atomic_unchecked_t fscache_n_object_lookups_timed_out;
78931 +extern atomic_unchecked_t fscache_n_object_created;
78932 +extern atomic_unchecked_t fscache_n_object_avail;
78933 +extern atomic_unchecked_t fscache_n_object_dead;
78934
78935 -extern atomic_t fscache_n_checkaux_none;
78936 -extern atomic_t fscache_n_checkaux_okay;
78937 -extern atomic_t fscache_n_checkaux_update;
78938 -extern atomic_t fscache_n_checkaux_obsolete;
78939 +extern atomic_unchecked_t fscache_n_checkaux_none;
78940 +extern atomic_unchecked_t fscache_n_checkaux_okay;
78941 +extern atomic_unchecked_t fscache_n_checkaux_update;
78942 +extern atomic_unchecked_t fscache_n_checkaux_obsolete;
78943
78944 extern atomic_t fscache_n_cop_alloc_object;
78945 extern atomic_t fscache_n_cop_lookup_object;
78946 @@ -280,6 +280,11 @@ static inline void fscache_stat(atomic_t *stat)
78947 atomic_inc(stat);
78948 }
78949
78950 +static inline void fscache_stat_unchecked(atomic_unchecked_t *stat)
78951 +{
78952 + atomic_inc_unchecked(stat);
78953 +}
78954 +
78955 static inline void fscache_stat_d(atomic_t *stat)
78956 {
78957 atomic_dec(stat);
78958 @@ -292,6 +297,7 @@ extern const struct file_operations fscache_stats_fops;
78959
78960 #define __fscache_stat(stat) (NULL)
78961 #define fscache_stat(stat) do {} while (0)
78962 +#define fscache_stat_unchecked(stat) do {} while (0)
78963 #define fscache_stat_d(stat) do {} while (0)
78964 #endif
78965
78966 diff --git a/fs/fscache/object.c b/fs/fscache/object.c
78967 index 9e792e3..6b2affb 100644
78968 --- a/fs/fscache/object.c
78969 +++ b/fs/fscache/object.c
78970 @@ -465,7 +465,7 @@ static const struct fscache_state *fscache_look_up_object(struct fscache_object
78971 _debug("LOOKUP \"%s\" in \"%s\"",
78972 cookie->def->name, object->cache->tag->name);
78973
78974 - fscache_stat(&fscache_n_object_lookups);
78975 + fscache_stat_unchecked(&fscache_n_object_lookups);
78976 fscache_stat(&fscache_n_cop_lookup_object);
78977 ret = object->cache->ops->lookup_object(object);
78978 fscache_stat_d(&fscache_n_cop_lookup_object);
78979 @@ -475,7 +475,7 @@ static const struct fscache_state *fscache_look_up_object(struct fscache_object
78980 if (ret == -ETIMEDOUT) {
78981 /* probably stuck behind another object, so move this one to
78982 * the back of the queue */
78983 - fscache_stat(&fscache_n_object_lookups_timed_out);
78984 + fscache_stat_unchecked(&fscache_n_object_lookups_timed_out);
78985 _leave(" [timeout]");
78986 return NO_TRANSIT;
78987 }
78988 @@ -503,7 +503,7 @@ void fscache_object_lookup_negative(struct fscache_object *object)
78989 _enter("{OBJ%x,%s}", object->debug_id, object->state->name);
78990
78991 if (!test_and_set_bit(FSCACHE_OBJECT_IS_LOOKED_UP, &object->flags)) {
78992 - fscache_stat(&fscache_n_object_lookups_negative);
78993 + fscache_stat_unchecked(&fscache_n_object_lookups_negative);
78994
78995 /* Allow write requests to begin stacking up and read requests to begin
78996 * returning ENODATA.
78997 @@ -538,7 +538,7 @@ void fscache_obtained_object(struct fscache_object *object)
78998 /* if we were still looking up, then we must have a positive lookup
78999 * result, in which case there may be data available */
79000 if (!test_and_set_bit(FSCACHE_OBJECT_IS_LOOKED_UP, &object->flags)) {
79001 - fscache_stat(&fscache_n_object_lookups_positive);
79002 + fscache_stat_unchecked(&fscache_n_object_lookups_positive);
79003
79004 /* We do (presumably) have data */
79005 clear_bit_unlock(FSCACHE_COOKIE_NO_DATA_YET, &cookie->flags);
79006 @@ -550,7 +550,7 @@ void fscache_obtained_object(struct fscache_object *object)
79007 clear_bit_unlock(FSCACHE_COOKIE_LOOKING_UP, &cookie->flags);
79008 wake_up_bit(&cookie->flags, FSCACHE_COOKIE_LOOKING_UP);
79009 } else {
79010 - fscache_stat(&fscache_n_object_created);
79011 + fscache_stat_unchecked(&fscache_n_object_created);
79012 }
79013
79014 set_bit(FSCACHE_OBJECT_IS_AVAILABLE, &object->flags);
79015 @@ -586,7 +586,7 @@ static const struct fscache_state *fscache_object_available(struct fscache_objec
79016 fscache_stat_d(&fscache_n_cop_lookup_complete);
79017
79018 fscache_hist(fscache_obj_instantiate_histogram, object->lookup_jif);
79019 - fscache_stat(&fscache_n_object_avail);
79020 + fscache_stat_unchecked(&fscache_n_object_avail);
79021
79022 _leave("");
79023 return transit_to(JUMPSTART_DEPS);
79024 @@ -735,7 +735,7 @@ static const struct fscache_state *fscache_drop_object(struct fscache_object *ob
79025
79026 /* this just shifts the object release to the work processor */
79027 fscache_put_object(object);
79028 - fscache_stat(&fscache_n_object_dead);
79029 + fscache_stat_unchecked(&fscache_n_object_dead);
79030
79031 _leave("");
79032 return transit_to(OBJECT_DEAD);
79033 @@ -900,7 +900,7 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
79034 enum fscache_checkaux result;
79035
79036 if (!object->cookie->def->check_aux) {
79037 - fscache_stat(&fscache_n_checkaux_none);
79038 + fscache_stat_unchecked(&fscache_n_checkaux_none);
79039 return FSCACHE_CHECKAUX_OKAY;
79040 }
79041
79042 @@ -909,17 +909,17 @@ enum fscache_checkaux fscache_check_aux(struct fscache_object *object,
79043 switch (result) {
79044 /* entry okay as is */
79045 case FSCACHE_CHECKAUX_OKAY:
79046 - fscache_stat(&fscache_n_checkaux_okay);
79047 + fscache_stat_unchecked(&fscache_n_checkaux_okay);
79048 break;
79049
79050 /* entry requires update */
79051 case FSCACHE_CHECKAUX_NEEDS_UPDATE:
79052 - fscache_stat(&fscache_n_checkaux_update);
79053 + fscache_stat_unchecked(&fscache_n_checkaux_update);
79054 break;
79055
79056 /* entry requires deletion */
79057 case FSCACHE_CHECKAUX_OBSOLETE:
79058 - fscache_stat(&fscache_n_checkaux_obsolete);
79059 + fscache_stat_unchecked(&fscache_n_checkaux_obsolete);
79060 break;
79061
79062 default:
79063 @@ -1007,7 +1007,7 @@ static const struct fscache_state *fscache_invalidate_object(struct fscache_obje
79064 {
79065 const struct fscache_state *s;
79066
79067 - fscache_stat(&fscache_n_invalidates_run);
79068 + fscache_stat_unchecked(&fscache_n_invalidates_run);
79069 fscache_stat(&fscache_n_cop_invalidate_object);
79070 s = _fscache_invalidate_object(object, event);
79071 fscache_stat_d(&fscache_n_cop_invalidate_object);
79072 @@ -1022,7 +1022,7 @@ static const struct fscache_state *fscache_update_object(struct fscache_object *
79073 {
79074 _enter("{OBJ%x},%d", object->debug_id, event);
79075
79076 - fscache_stat(&fscache_n_updates_run);
79077 + fscache_stat_unchecked(&fscache_n_updates_run);
79078 fscache_stat(&fscache_n_cop_update_object);
79079 object->cache->ops->update_object(object);
79080 fscache_stat_d(&fscache_n_cop_update_object);
79081 diff --git a/fs/fscache/operation.c b/fs/fscache/operation.c
79082 index de67745..6a3a9b6 100644
79083 --- a/fs/fscache/operation.c
79084 +++ b/fs/fscache/operation.c
79085 @@ -17,7 +17,7 @@
79086 #include <linux/slab.h>
79087 #include "internal.h"
79088
79089 -atomic_t fscache_op_debug_id;
79090 +atomic_unchecked_t fscache_op_debug_id;
79091 EXPORT_SYMBOL(fscache_op_debug_id);
79092
79093 static void fscache_operation_dummy_cancel(struct fscache_operation *op)
79094 @@ -40,12 +40,12 @@ void fscache_operation_init(struct fscache_operation *op,
79095 INIT_WORK(&op->work, fscache_op_work_func);
79096 atomic_set(&op->usage, 1);
79097 op->state = FSCACHE_OP_ST_INITIALISED;
79098 - op->debug_id = atomic_inc_return(&fscache_op_debug_id);
79099 + op->debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
79100 op->processor = processor;
79101 op->cancel = cancel ?: fscache_operation_dummy_cancel;
79102 op->release = release;
79103 INIT_LIST_HEAD(&op->pend_link);
79104 - fscache_stat(&fscache_n_op_initialised);
79105 + fscache_stat_unchecked(&fscache_n_op_initialised);
79106 }
79107 EXPORT_SYMBOL(fscache_operation_init);
79108
79109 @@ -68,7 +68,7 @@ void fscache_enqueue_operation(struct fscache_operation *op)
79110 ASSERTCMP(atomic_read(&op->usage), >, 0);
79111 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_IN_PROGRESS);
79112
79113 - fscache_stat(&fscache_n_op_enqueue);
79114 + fscache_stat_unchecked(&fscache_n_op_enqueue);
79115 switch (op->flags & FSCACHE_OP_TYPE) {
79116 case FSCACHE_OP_ASYNC:
79117 _debug("queue async");
79118 @@ -101,7 +101,7 @@ static void fscache_run_op(struct fscache_object *object,
79119 wake_up_bit(&op->flags, FSCACHE_OP_WAITING);
79120 if (op->processor)
79121 fscache_enqueue_operation(op);
79122 - fscache_stat(&fscache_n_op_run);
79123 + fscache_stat_unchecked(&fscache_n_op_run);
79124 }
79125
79126 /*
79127 @@ -169,7 +169,7 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
79128 op->state = FSCACHE_OP_ST_PENDING;
79129 flags = READ_ONCE(object->flags);
79130 if (unlikely(!(flags & BIT(FSCACHE_OBJECT_IS_LIVE)))) {
79131 - fscache_stat(&fscache_n_op_rejected);
79132 + fscache_stat_unchecked(&fscache_n_op_rejected);
79133 op->cancel(op);
79134 op->state = FSCACHE_OP_ST_CANCELLED;
79135 ret = -ENOBUFS;
79136 @@ -185,11 +185,11 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
79137 if (object->n_in_progress > 0) {
79138 atomic_inc(&op->usage);
79139 list_add_tail(&op->pend_link, &object->pending_ops);
79140 - fscache_stat(&fscache_n_op_pend);
79141 + fscache_stat_unchecked(&fscache_n_op_pend);
79142 } else if (!list_empty(&object->pending_ops)) {
79143 atomic_inc(&op->usage);
79144 list_add_tail(&op->pend_link, &object->pending_ops);
79145 - fscache_stat(&fscache_n_op_pend);
79146 + fscache_stat_unchecked(&fscache_n_op_pend);
79147 fscache_start_operations(object);
79148 } else {
79149 ASSERTCMP(object->n_in_progress, ==, 0);
79150 @@ -205,7 +205,7 @@ int fscache_submit_exclusive_op(struct fscache_object *object,
79151 object->n_exclusive++; /* reads and writes must wait */
79152 atomic_inc(&op->usage);
79153 list_add_tail(&op->pend_link, &object->pending_ops);
79154 - fscache_stat(&fscache_n_op_pend);
79155 + fscache_stat_unchecked(&fscache_n_op_pend);
79156 ret = 0;
79157 } else if (flags & BIT(FSCACHE_OBJECT_KILLED_BY_CACHE)) {
79158 op->cancel(op);
79159 @@ -254,7 +254,7 @@ int fscache_submit_op(struct fscache_object *object,
79160 op->state = FSCACHE_OP_ST_PENDING;
79161 flags = READ_ONCE(object->flags);
79162 if (unlikely(!(flags & BIT(FSCACHE_OBJECT_IS_LIVE)))) {
79163 - fscache_stat(&fscache_n_op_rejected);
79164 + fscache_stat_unchecked(&fscache_n_op_rejected);
79165 op->cancel(op);
79166 op->state = FSCACHE_OP_ST_CANCELLED;
79167 ret = -ENOBUFS;
79168 @@ -269,11 +269,11 @@ int fscache_submit_op(struct fscache_object *object,
79169 if (object->n_exclusive > 0) {
79170 atomic_inc(&op->usage);
79171 list_add_tail(&op->pend_link, &object->pending_ops);
79172 - fscache_stat(&fscache_n_op_pend);
79173 + fscache_stat_unchecked(&fscache_n_op_pend);
79174 } else if (!list_empty(&object->pending_ops)) {
79175 atomic_inc(&op->usage);
79176 list_add_tail(&op->pend_link, &object->pending_ops);
79177 - fscache_stat(&fscache_n_op_pend);
79178 + fscache_stat_unchecked(&fscache_n_op_pend);
79179 fscache_start_operations(object);
79180 } else {
79181 ASSERTCMP(object->n_exclusive, ==, 0);
79182 @@ -285,7 +285,7 @@ int fscache_submit_op(struct fscache_object *object,
79183 object->n_ops++;
79184 atomic_inc(&op->usage);
79185 list_add_tail(&op->pend_link, &object->pending_ops);
79186 - fscache_stat(&fscache_n_op_pend);
79187 + fscache_stat_unchecked(&fscache_n_op_pend);
79188 ret = 0;
79189 } else if (flags & BIT(FSCACHE_OBJECT_KILLED_BY_CACHE)) {
79190 op->cancel(op);
79191 @@ -369,7 +369,7 @@ int fscache_cancel_op(struct fscache_operation *op,
79192 list_del_init(&op->pend_link);
79193 put = true;
79194
79195 - fscache_stat(&fscache_n_op_cancelled);
79196 + fscache_stat_unchecked(&fscache_n_op_cancelled);
79197 op->cancel(op);
79198 op->state = FSCACHE_OP_ST_CANCELLED;
79199 if (test_bit(FSCACHE_OP_EXCLUSIVE, &op->flags))
79200 @@ -385,7 +385,7 @@ int fscache_cancel_op(struct fscache_operation *op,
79201 if (object->n_in_progress == 0)
79202 fscache_start_operations(object);
79203
79204 - fscache_stat(&fscache_n_op_cancelled);
79205 + fscache_stat_unchecked(&fscache_n_op_cancelled);
79206 op->cancel(op);
79207 op->state = FSCACHE_OP_ST_CANCELLED;
79208 if (test_bit(FSCACHE_OP_EXCLUSIVE, &op->flags))
79209 @@ -416,7 +416,7 @@ void fscache_cancel_all_ops(struct fscache_object *object)
79210 while (!list_empty(&object->pending_ops)) {
79211 op = list_entry(object->pending_ops.next,
79212 struct fscache_operation, pend_link);
79213 - fscache_stat(&fscache_n_op_cancelled);
79214 + fscache_stat_unchecked(&fscache_n_op_cancelled);
79215 list_del_init(&op->pend_link);
79216
79217 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_PENDING);
79218 @@ -493,7 +493,7 @@ void fscache_put_operation(struct fscache_operation *op)
79219 op->state != FSCACHE_OP_ST_COMPLETE,
79220 op->state, ==, FSCACHE_OP_ST_CANCELLED);
79221
79222 - fscache_stat(&fscache_n_op_release);
79223 + fscache_stat_unchecked(&fscache_n_op_release);
79224
79225 if (op->release) {
79226 op->release(op);
79227 @@ -513,7 +513,7 @@ void fscache_put_operation(struct fscache_operation *op)
79228 * lock, and defer it otherwise */
79229 if (!spin_trylock(&object->lock)) {
79230 _debug("defer put");
79231 - fscache_stat(&fscache_n_op_deferred_release);
79232 + fscache_stat_unchecked(&fscache_n_op_deferred_release);
79233
79234 cache = object->cache;
79235 spin_lock(&cache->op_gc_list_lock);
79236 @@ -567,7 +567,7 @@ void fscache_operation_gc(struct work_struct *work)
79237
79238 _debug("GC DEFERRED REL OBJ%x OP%x",
79239 object->debug_id, op->debug_id);
79240 - fscache_stat(&fscache_n_op_gc);
79241 + fscache_stat_unchecked(&fscache_n_op_gc);
79242
79243 ASSERTCMP(atomic_read(&op->usage), ==, 0);
79244 ASSERTCMP(op->state, ==, FSCACHE_OP_ST_DEAD);
79245 diff --git a/fs/fscache/page.c b/fs/fscache/page.c
79246 index 483bbc6..ba36737 100644
79247 --- a/fs/fscache/page.c
79248 +++ b/fs/fscache/page.c
79249 @@ -74,7 +74,7 @@ try_again:
79250 val = radix_tree_lookup(&cookie->stores, page->index);
79251 if (!val) {
79252 rcu_read_unlock();
79253 - fscache_stat(&fscache_n_store_vmscan_not_storing);
79254 + fscache_stat_unchecked(&fscache_n_store_vmscan_not_storing);
79255 __fscache_uncache_page(cookie, page);
79256 return true;
79257 }
79258 @@ -104,11 +104,11 @@ try_again:
79259 spin_unlock(&cookie->stores_lock);
79260
79261 if (xpage) {
79262 - fscache_stat(&fscache_n_store_vmscan_cancelled);
79263 - fscache_stat(&fscache_n_store_radix_deletes);
79264 + fscache_stat_unchecked(&fscache_n_store_vmscan_cancelled);
79265 + fscache_stat_unchecked(&fscache_n_store_radix_deletes);
79266 ASSERTCMP(xpage, ==, page);
79267 } else {
79268 - fscache_stat(&fscache_n_store_vmscan_gone);
79269 + fscache_stat_unchecked(&fscache_n_store_vmscan_gone);
79270 }
79271
79272 wake_up_bit(&cookie->flags, 0);
79273 @@ -123,11 +123,11 @@ page_busy:
79274 * sleeping on memory allocation, so we may need to impose a timeout
79275 * too. */
79276 if (!(gfp & __GFP_WAIT) || !(gfp & __GFP_FS)) {
79277 - fscache_stat(&fscache_n_store_vmscan_busy);
79278 + fscache_stat_unchecked(&fscache_n_store_vmscan_busy);
79279 return false;
79280 }
79281
79282 - fscache_stat(&fscache_n_store_vmscan_wait);
79283 + fscache_stat_unchecked(&fscache_n_store_vmscan_wait);
79284 if (!release_page_wait_timeout(cookie, page))
79285 _debug("fscache writeout timeout page: %p{%lx}",
79286 page, page->index);
79287 @@ -156,7 +156,7 @@ static void fscache_end_page_write(struct fscache_object *object,
79288 FSCACHE_COOKIE_STORING_TAG);
79289 if (!radix_tree_tag_get(&cookie->stores, page->index,
79290 FSCACHE_COOKIE_PENDING_TAG)) {
79291 - fscache_stat(&fscache_n_store_radix_deletes);
79292 + fscache_stat_unchecked(&fscache_n_store_radix_deletes);
79293 xpage = radix_tree_delete(&cookie->stores, page->index);
79294 }
79295 spin_unlock(&cookie->stores_lock);
79296 @@ -177,7 +177,7 @@ static void fscache_attr_changed_op(struct fscache_operation *op)
79297
79298 _enter("{OBJ%x OP%x}", object->debug_id, op->debug_id);
79299
79300 - fscache_stat(&fscache_n_attr_changed_calls);
79301 + fscache_stat_unchecked(&fscache_n_attr_changed_calls);
79302
79303 if (fscache_object_is_active(object)) {
79304 fscache_stat(&fscache_n_cop_attr_changed);
79305 @@ -204,11 +204,11 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
79306
79307 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
79308
79309 - fscache_stat(&fscache_n_attr_changed);
79310 + fscache_stat_unchecked(&fscache_n_attr_changed);
79311
79312 op = kzalloc(sizeof(*op), GFP_KERNEL);
79313 if (!op) {
79314 - fscache_stat(&fscache_n_attr_changed_nomem);
79315 + fscache_stat_unchecked(&fscache_n_attr_changed_nomem);
79316 _leave(" = -ENOMEM");
79317 return -ENOMEM;
79318 }
79319 @@ -230,7 +230,7 @@ int __fscache_attr_changed(struct fscache_cookie *cookie)
79320 if (fscache_submit_exclusive_op(object, op) < 0)
79321 goto nobufs_dec;
79322 spin_unlock(&cookie->lock);
79323 - fscache_stat(&fscache_n_attr_changed_ok);
79324 + fscache_stat_unchecked(&fscache_n_attr_changed_ok);
79325 fscache_put_operation(op);
79326 _leave(" = 0");
79327 return 0;
79328 @@ -242,7 +242,7 @@ nobufs:
79329 fscache_put_operation(op);
79330 if (wake_cookie)
79331 __fscache_wake_unused_cookie(cookie);
79332 - fscache_stat(&fscache_n_attr_changed_nobufs);
79333 + fscache_stat_unchecked(&fscache_n_attr_changed_nobufs);
79334 _leave(" = %d", -ENOBUFS);
79335 return -ENOBUFS;
79336 }
79337 @@ -293,7 +293,7 @@ static struct fscache_retrieval *fscache_alloc_retrieval(
79338 /* allocate a retrieval operation and attempt to submit it */
79339 op = kzalloc(sizeof(*op), GFP_NOIO);
79340 if (!op) {
79341 - fscache_stat(&fscache_n_retrievals_nomem);
79342 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
79343 return NULL;
79344 }
79345
79346 @@ -332,12 +332,12 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
79347 return 0;
79348 }
79349
79350 - fscache_stat(&fscache_n_retrievals_wait);
79351 + fscache_stat_unchecked(&fscache_n_retrievals_wait);
79352
79353 jif = jiffies;
79354 if (wait_on_bit(&cookie->flags, FSCACHE_COOKIE_LOOKING_UP,
79355 TASK_INTERRUPTIBLE) != 0) {
79356 - fscache_stat(&fscache_n_retrievals_intr);
79357 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
79358 _leave(" = -ERESTARTSYS");
79359 return -ERESTARTSYS;
79360 }
79361 @@ -355,8 +355,8 @@ int fscache_wait_for_deferred_lookup(struct fscache_cookie *cookie)
79362 */
79363 int fscache_wait_for_operation_activation(struct fscache_object *object,
79364 struct fscache_operation *op,
79365 - atomic_t *stat_op_waits,
79366 - atomic_t *stat_object_dead)
79367 + atomic_unchecked_t *stat_op_waits,
79368 + atomic_unchecked_t *stat_object_dead)
79369 {
79370 int ret;
79371
79372 @@ -365,7 +365,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
79373
79374 _debug(">>> WT");
79375 if (stat_op_waits)
79376 - fscache_stat(stat_op_waits);
79377 + fscache_stat_unchecked(stat_op_waits);
79378 if (wait_on_bit(&op->flags, FSCACHE_OP_WAITING,
79379 TASK_INTERRUPTIBLE) != 0) {
79380 ret = fscache_cancel_op(op, false);
79381 @@ -382,7 +382,7 @@ int fscache_wait_for_operation_activation(struct fscache_object *object,
79382 check_if_dead:
79383 if (op->state == FSCACHE_OP_ST_CANCELLED) {
79384 if (stat_object_dead)
79385 - fscache_stat(stat_object_dead);
79386 + fscache_stat_unchecked(stat_object_dead);
79387 _leave(" = -ENOBUFS [cancelled]");
79388 return -ENOBUFS;
79389 }
79390 @@ -391,7 +391,7 @@ check_if_dead:
79391 enum fscache_operation_state state = op->state;
79392 fscache_cancel_op(op, true);
79393 if (stat_object_dead)
79394 - fscache_stat(stat_object_dead);
79395 + fscache_stat_unchecked(stat_object_dead);
79396 _leave(" = -ENOBUFS [obj dead %d]", state);
79397 return -ENOBUFS;
79398 }
79399 @@ -420,7 +420,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
79400
79401 _enter("%p,%p,,,", cookie, page);
79402
79403 - fscache_stat(&fscache_n_retrievals);
79404 + fscache_stat_unchecked(&fscache_n_retrievals);
79405
79406 if (hlist_empty(&cookie->backing_objects))
79407 goto nobufs;
79408 @@ -462,7 +462,7 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
79409 goto nobufs_unlock_dec;
79410 spin_unlock(&cookie->lock);
79411
79412 - fscache_stat(&fscache_n_retrieval_ops);
79413 + fscache_stat_unchecked(&fscache_n_retrieval_ops);
79414
79415 /* we wait for the operation to become active, and then process it
79416 * *here*, in this thread, and not in the thread pool */
79417 @@ -488,15 +488,15 @@ int __fscache_read_or_alloc_page(struct fscache_cookie *cookie,
79418
79419 error:
79420 if (ret == -ENOMEM)
79421 - fscache_stat(&fscache_n_retrievals_nomem);
79422 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
79423 else if (ret == -ERESTARTSYS)
79424 - fscache_stat(&fscache_n_retrievals_intr);
79425 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
79426 else if (ret == -ENODATA)
79427 - fscache_stat(&fscache_n_retrievals_nodata);
79428 + fscache_stat_unchecked(&fscache_n_retrievals_nodata);
79429 else if (ret < 0)
79430 - fscache_stat(&fscache_n_retrievals_nobufs);
79431 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
79432 else
79433 - fscache_stat(&fscache_n_retrievals_ok);
79434 + fscache_stat_unchecked(&fscache_n_retrievals_ok);
79435
79436 fscache_put_retrieval(op);
79437 _leave(" = %d", ret);
79438 @@ -511,7 +511,7 @@ nobufs_unlock:
79439 __fscache_wake_unused_cookie(cookie);
79440 fscache_put_retrieval(op);
79441 nobufs:
79442 - fscache_stat(&fscache_n_retrievals_nobufs);
79443 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
79444 _leave(" = -ENOBUFS");
79445 return -ENOBUFS;
79446 }
79447 @@ -550,7 +550,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
79448
79449 _enter("%p,,%d,,,", cookie, *nr_pages);
79450
79451 - fscache_stat(&fscache_n_retrievals);
79452 + fscache_stat_unchecked(&fscache_n_retrievals);
79453
79454 if (hlist_empty(&cookie->backing_objects))
79455 goto nobufs;
79456 @@ -588,7 +588,7 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
79457 goto nobufs_unlock_dec;
79458 spin_unlock(&cookie->lock);
79459
79460 - fscache_stat(&fscache_n_retrieval_ops);
79461 + fscache_stat_unchecked(&fscache_n_retrieval_ops);
79462
79463 /* we wait for the operation to become active, and then process it
79464 * *here*, in this thread, and not in the thread pool */
79465 @@ -614,15 +614,15 @@ int __fscache_read_or_alloc_pages(struct fscache_cookie *cookie,
79466
79467 error:
79468 if (ret == -ENOMEM)
79469 - fscache_stat(&fscache_n_retrievals_nomem);
79470 + fscache_stat_unchecked(&fscache_n_retrievals_nomem);
79471 else if (ret == -ERESTARTSYS)
79472 - fscache_stat(&fscache_n_retrievals_intr);
79473 + fscache_stat_unchecked(&fscache_n_retrievals_intr);
79474 else if (ret == -ENODATA)
79475 - fscache_stat(&fscache_n_retrievals_nodata);
79476 + fscache_stat_unchecked(&fscache_n_retrievals_nodata);
79477 else if (ret < 0)
79478 - fscache_stat(&fscache_n_retrievals_nobufs);
79479 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
79480 else
79481 - fscache_stat(&fscache_n_retrievals_ok);
79482 + fscache_stat_unchecked(&fscache_n_retrievals_ok);
79483
79484 fscache_put_retrieval(op);
79485 _leave(" = %d", ret);
79486 @@ -637,7 +637,7 @@ nobufs_unlock:
79487 if (wake_cookie)
79488 __fscache_wake_unused_cookie(cookie);
79489 nobufs:
79490 - fscache_stat(&fscache_n_retrievals_nobufs);
79491 + fscache_stat_unchecked(&fscache_n_retrievals_nobufs);
79492 _leave(" = -ENOBUFS");
79493 return -ENOBUFS;
79494 }
79495 @@ -662,7 +662,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
79496
79497 _enter("%p,%p,,,", cookie, page);
79498
79499 - fscache_stat(&fscache_n_allocs);
79500 + fscache_stat_unchecked(&fscache_n_allocs);
79501
79502 if (hlist_empty(&cookie->backing_objects))
79503 goto nobufs;
79504 @@ -696,7 +696,7 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
79505 goto nobufs_unlock_dec;
79506 spin_unlock(&cookie->lock);
79507
79508 - fscache_stat(&fscache_n_alloc_ops);
79509 + fscache_stat_unchecked(&fscache_n_alloc_ops);
79510
79511 ret = fscache_wait_for_operation_activation(
79512 object, &op->op,
79513 @@ -712,11 +712,11 @@ int __fscache_alloc_page(struct fscache_cookie *cookie,
79514
79515 error:
79516 if (ret == -ERESTARTSYS)
79517 - fscache_stat(&fscache_n_allocs_intr);
79518 + fscache_stat_unchecked(&fscache_n_allocs_intr);
79519 else if (ret < 0)
79520 - fscache_stat(&fscache_n_allocs_nobufs);
79521 + fscache_stat_unchecked(&fscache_n_allocs_nobufs);
79522 else
79523 - fscache_stat(&fscache_n_allocs_ok);
79524 + fscache_stat_unchecked(&fscache_n_allocs_ok);
79525
79526 fscache_put_retrieval(op);
79527 _leave(" = %d", ret);
79528 @@ -730,7 +730,7 @@ nobufs_unlock:
79529 if (wake_cookie)
79530 __fscache_wake_unused_cookie(cookie);
79531 nobufs:
79532 - fscache_stat(&fscache_n_allocs_nobufs);
79533 + fscache_stat_unchecked(&fscache_n_allocs_nobufs);
79534 _leave(" = -ENOBUFS");
79535 return -ENOBUFS;
79536 }
79537 @@ -806,7 +806,7 @@ static void fscache_write_op(struct fscache_operation *_op)
79538
79539 spin_lock(&cookie->stores_lock);
79540
79541 - fscache_stat(&fscache_n_store_calls);
79542 + fscache_stat_unchecked(&fscache_n_store_calls);
79543
79544 /* find a page to store */
79545 page = NULL;
79546 @@ -817,7 +817,7 @@ static void fscache_write_op(struct fscache_operation *_op)
79547 page = results[0];
79548 _debug("gang %d [%lx]", n, page->index);
79549 if (page->index > op->store_limit) {
79550 - fscache_stat(&fscache_n_store_pages_over_limit);
79551 + fscache_stat_unchecked(&fscache_n_store_pages_over_limit);
79552 goto superseded;
79553 }
79554
79555 @@ -829,7 +829,7 @@ static void fscache_write_op(struct fscache_operation *_op)
79556 spin_unlock(&cookie->stores_lock);
79557 spin_unlock(&object->lock);
79558
79559 - fscache_stat(&fscache_n_store_pages);
79560 + fscache_stat_unchecked(&fscache_n_store_pages);
79561 fscache_stat(&fscache_n_cop_write_page);
79562 ret = object->cache->ops->write_page(op, page);
79563 fscache_stat_d(&fscache_n_cop_write_page);
79564 @@ -933,7 +933,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
79565 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
79566 ASSERT(PageFsCache(page));
79567
79568 - fscache_stat(&fscache_n_stores);
79569 + fscache_stat_unchecked(&fscache_n_stores);
79570
79571 if (test_bit(FSCACHE_COOKIE_INVALIDATING, &cookie->flags)) {
79572 _leave(" = -ENOBUFS [invalidating]");
79573 @@ -992,7 +992,7 @@ int __fscache_write_page(struct fscache_cookie *cookie,
79574 spin_unlock(&cookie->stores_lock);
79575 spin_unlock(&object->lock);
79576
79577 - op->op.debug_id = atomic_inc_return(&fscache_op_debug_id);
79578 + op->op.debug_id = atomic_inc_return_unchecked(&fscache_op_debug_id);
79579 op->store_limit = object->store_limit;
79580
79581 __fscache_use_cookie(cookie);
79582 @@ -1001,8 +1001,8 @@ int __fscache_write_page(struct fscache_cookie *cookie,
79583
79584 spin_unlock(&cookie->lock);
79585 radix_tree_preload_end();
79586 - fscache_stat(&fscache_n_store_ops);
79587 - fscache_stat(&fscache_n_stores_ok);
79588 + fscache_stat_unchecked(&fscache_n_store_ops);
79589 + fscache_stat_unchecked(&fscache_n_stores_ok);
79590
79591 /* the work queue now carries its own ref on the object */
79592 fscache_put_operation(&op->op);
79593 @@ -1010,14 +1010,14 @@ int __fscache_write_page(struct fscache_cookie *cookie,
79594 return 0;
79595
79596 already_queued:
79597 - fscache_stat(&fscache_n_stores_again);
79598 + fscache_stat_unchecked(&fscache_n_stores_again);
79599 already_pending:
79600 spin_unlock(&cookie->stores_lock);
79601 spin_unlock(&object->lock);
79602 spin_unlock(&cookie->lock);
79603 radix_tree_preload_end();
79604 fscache_put_operation(&op->op);
79605 - fscache_stat(&fscache_n_stores_ok);
79606 + fscache_stat_unchecked(&fscache_n_stores_ok);
79607 _leave(" = 0");
79608 return 0;
79609
79610 @@ -1039,14 +1039,14 @@ nobufs:
79611 fscache_put_operation(&op->op);
79612 if (wake_cookie)
79613 __fscache_wake_unused_cookie(cookie);
79614 - fscache_stat(&fscache_n_stores_nobufs);
79615 + fscache_stat_unchecked(&fscache_n_stores_nobufs);
79616 _leave(" = -ENOBUFS");
79617 return -ENOBUFS;
79618
79619 nomem_free:
79620 fscache_put_operation(&op->op);
79621 nomem:
79622 - fscache_stat(&fscache_n_stores_oom);
79623 + fscache_stat_unchecked(&fscache_n_stores_oom);
79624 _leave(" = -ENOMEM");
79625 return -ENOMEM;
79626 }
79627 @@ -1064,7 +1064,7 @@ void __fscache_uncache_page(struct fscache_cookie *cookie, struct page *page)
79628 ASSERTCMP(cookie->def->type, !=, FSCACHE_COOKIE_TYPE_INDEX);
79629 ASSERTCMP(page, !=, NULL);
79630
79631 - fscache_stat(&fscache_n_uncaches);
79632 + fscache_stat_unchecked(&fscache_n_uncaches);
79633
79634 /* cache withdrawal may beat us to it */
79635 if (!PageFsCache(page))
79636 @@ -1115,7 +1115,7 @@ void fscache_mark_page_cached(struct fscache_retrieval *op, struct page *page)
79637 struct fscache_cookie *cookie = op->op.object->cookie;
79638
79639 #ifdef CONFIG_FSCACHE_STATS
79640 - atomic_inc(&fscache_n_marks);
79641 + atomic_inc_unchecked(&fscache_n_marks);
79642 #endif
79643
79644 _debug("- mark %p{%lx}", page, page->index);
79645 diff --git a/fs/fscache/stats.c b/fs/fscache/stats.c
79646 index 7cfa0aa..d5ef97b7 100644
79647 --- a/fs/fscache/stats.c
79648 +++ b/fs/fscache/stats.c
79649 @@ -18,100 +18,100 @@
79650 /*
79651 * operation counters
79652 */
79653 -atomic_t fscache_n_op_pend;
79654 -atomic_t fscache_n_op_run;
79655 -atomic_t fscache_n_op_enqueue;
79656 -atomic_t fscache_n_op_requeue;
79657 -atomic_t fscache_n_op_deferred_release;
79658 -atomic_t fscache_n_op_initialised;
79659 -atomic_t fscache_n_op_release;
79660 -atomic_t fscache_n_op_gc;
79661 -atomic_t fscache_n_op_cancelled;
79662 -atomic_t fscache_n_op_rejected;
79663 +atomic_unchecked_t fscache_n_op_pend;
79664 +atomic_unchecked_t fscache_n_op_run;
79665 +atomic_unchecked_t fscache_n_op_enqueue;
79666 +atomic_unchecked_t fscache_n_op_requeue;
79667 +atomic_unchecked_t fscache_n_op_deferred_release;
79668 +atomic_unchecked_t fscache_n_op_initialised;
79669 +atomic_unchecked_t fscache_n_op_release;
79670 +atomic_unchecked_t fscache_n_op_gc;
79671 +atomic_unchecked_t fscache_n_op_cancelled;
79672 +atomic_unchecked_t fscache_n_op_rejected;
79673
79674 -atomic_t fscache_n_attr_changed;
79675 -atomic_t fscache_n_attr_changed_ok;
79676 -atomic_t fscache_n_attr_changed_nobufs;
79677 -atomic_t fscache_n_attr_changed_nomem;
79678 -atomic_t fscache_n_attr_changed_calls;
79679 +atomic_unchecked_t fscache_n_attr_changed;
79680 +atomic_unchecked_t fscache_n_attr_changed_ok;
79681 +atomic_unchecked_t fscache_n_attr_changed_nobufs;
79682 +atomic_unchecked_t fscache_n_attr_changed_nomem;
79683 +atomic_unchecked_t fscache_n_attr_changed_calls;
79684
79685 -atomic_t fscache_n_allocs;
79686 -atomic_t fscache_n_allocs_ok;
79687 -atomic_t fscache_n_allocs_wait;
79688 -atomic_t fscache_n_allocs_nobufs;
79689 -atomic_t fscache_n_allocs_intr;
79690 -atomic_t fscache_n_allocs_object_dead;
79691 -atomic_t fscache_n_alloc_ops;
79692 -atomic_t fscache_n_alloc_op_waits;
79693 +atomic_unchecked_t fscache_n_allocs;
79694 +atomic_unchecked_t fscache_n_allocs_ok;
79695 +atomic_unchecked_t fscache_n_allocs_wait;
79696 +atomic_unchecked_t fscache_n_allocs_nobufs;
79697 +atomic_unchecked_t fscache_n_allocs_intr;
79698 +atomic_unchecked_t fscache_n_allocs_object_dead;
79699 +atomic_unchecked_t fscache_n_alloc_ops;
79700 +atomic_unchecked_t fscache_n_alloc_op_waits;
79701
79702 -atomic_t fscache_n_retrievals;
79703 -atomic_t fscache_n_retrievals_ok;
79704 -atomic_t fscache_n_retrievals_wait;
79705 -atomic_t fscache_n_retrievals_nodata;
79706 -atomic_t fscache_n_retrievals_nobufs;
79707 -atomic_t fscache_n_retrievals_intr;
79708 -atomic_t fscache_n_retrievals_nomem;
79709 -atomic_t fscache_n_retrievals_object_dead;
79710 -atomic_t fscache_n_retrieval_ops;
79711 -atomic_t fscache_n_retrieval_op_waits;
79712 +atomic_unchecked_t fscache_n_retrievals;
79713 +atomic_unchecked_t fscache_n_retrievals_ok;
79714 +atomic_unchecked_t fscache_n_retrievals_wait;
79715 +atomic_unchecked_t fscache_n_retrievals_nodata;
79716 +atomic_unchecked_t fscache_n_retrievals_nobufs;
79717 +atomic_unchecked_t fscache_n_retrievals_intr;
79718 +atomic_unchecked_t fscache_n_retrievals_nomem;
79719 +atomic_unchecked_t fscache_n_retrievals_object_dead;
79720 +atomic_unchecked_t fscache_n_retrieval_ops;
79721 +atomic_unchecked_t fscache_n_retrieval_op_waits;
79722
79723 -atomic_t fscache_n_stores;
79724 -atomic_t fscache_n_stores_ok;
79725 -atomic_t fscache_n_stores_again;
79726 -atomic_t fscache_n_stores_nobufs;
79727 -atomic_t fscache_n_stores_oom;
79728 -atomic_t fscache_n_store_ops;
79729 -atomic_t fscache_n_store_calls;
79730 -atomic_t fscache_n_store_pages;
79731 -atomic_t fscache_n_store_radix_deletes;
79732 -atomic_t fscache_n_store_pages_over_limit;
79733 +atomic_unchecked_t fscache_n_stores;
79734 +atomic_unchecked_t fscache_n_stores_ok;
79735 +atomic_unchecked_t fscache_n_stores_again;
79736 +atomic_unchecked_t fscache_n_stores_nobufs;
79737 +atomic_unchecked_t fscache_n_stores_oom;
79738 +atomic_unchecked_t fscache_n_store_ops;
79739 +atomic_unchecked_t fscache_n_store_calls;
79740 +atomic_unchecked_t fscache_n_store_pages;
79741 +atomic_unchecked_t fscache_n_store_radix_deletes;
79742 +atomic_unchecked_t fscache_n_store_pages_over_limit;
79743
79744 -atomic_t fscache_n_store_vmscan_not_storing;
79745 -atomic_t fscache_n_store_vmscan_gone;
79746 -atomic_t fscache_n_store_vmscan_busy;
79747 -atomic_t fscache_n_store_vmscan_cancelled;
79748 -atomic_t fscache_n_store_vmscan_wait;
79749 +atomic_unchecked_t fscache_n_store_vmscan_not_storing;
79750 +atomic_unchecked_t fscache_n_store_vmscan_gone;
79751 +atomic_unchecked_t fscache_n_store_vmscan_busy;
79752 +atomic_unchecked_t fscache_n_store_vmscan_cancelled;
79753 +atomic_unchecked_t fscache_n_store_vmscan_wait;
79754
79755 -atomic_t fscache_n_marks;
79756 -atomic_t fscache_n_uncaches;
79757 +atomic_unchecked_t fscache_n_marks;
79758 +atomic_unchecked_t fscache_n_uncaches;
79759
79760 -atomic_t fscache_n_acquires;
79761 -atomic_t fscache_n_acquires_null;
79762 -atomic_t fscache_n_acquires_no_cache;
79763 -atomic_t fscache_n_acquires_ok;
79764 -atomic_t fscache_n_acquires_nobufs;
79765 -atomic_t fscache_n_acquires_oom;
79766 +atomic_unchecked_t fscache_n_acquires;
79767 +atomic_unchecked_t fscache_n_acquires_null;
79768 +atomic_unchecked_t fscache_n_acquires_no_cache;
79769 +atomic_unchecked_t fscache_n_acquires_ok;
79770 +atomic_unchecked_t fscache_n_acquires_nobufs;
79771 +atomic_unchecked_t fscache_n_acquires_oom;
79772
79773 -atomic_t fscache_n_invalidates;
79774 -atomic_t fscache_n_invalidates_run;
79775 +atomic_unchecked_t fscache_n_invalidates;
79776 +atomic_unchecked_t fscache_n_invalidates_run;
79777
79778 -atomic_t fscache_n_updates;
79779 -atomic_t fscache_n_updates_null;
79780 -atomic_t fscache_n_updates_run;
79781 +atomic_unchecked_t fscache_n_updates;
79782 +atomic_unchecked_t fscache_n_updates_null;
79783 +atomic_unchecked_t fscache_n_updates_run;
79784
79785 -atomic_t fscache_n_relinquishes;
79786 -atomic_t fscache_n_relinquishes_null;
79787 -atomic_t fscache_n_relinquishes_waitcrt;
79788 -atomic_t fscache_n_relinquishes_retire;
79789 +atomic_unchecked_t fscache_n_relinquishes;
79790 +atomic_unchecked_t fscache_n_relinquishes_null;
79791 +atomic_unchecked_t fscache_n_relinquishes_waitcrt;
79792 +atomic_unchecked_t fscache_n_relinquishes_retire;
79793
79794 -atomic_t fscache_n_cookie_index;
79795 -atomic_t fscache_n_cookie_data;
79796 -atomic_t fscache_n_cookie_special;
79797 +atomic_unchecked_t fscache_n_cookie_index;
79798 +atomic_unchecked_t fscache_n_cookie_data;
79799 +atomic_unchecked_t fscache_n_cookie_special;
79800
79801 -atomic_t fscache_n_object_alloc;
79802 -atomic_t fscache_n_object_no_alloc;
79803 -atomic_t fscache_n_object_lookups;
79804 -atomic_t fscache_n_object_lookups_negative;
79805 -atomic_t fscache_n_object_lookups_positive;
79806 -atomic_t fscache_n_object_lookups_timed_out;
79807 -atomic_t fscache_n_object_created;
79808 -atomic_t fscache_n_object_avail;
79809 -atomic_t fscache_n_object_dead;
79810 +atomic_unchecked_t fscache_n_object_alloc;
79811 +atomic_unchecked_t fscache_n_object_no_alloc;
79812 +atomic_unchecked_t fscache_n_object_lookups;
79813 +atomic_unchecked_t fscache_n_object_lookups_negative;
79814 +atomic_unchecked_t fscache_n_object_lookups_positive;
79815 +atomic_unchecked_t fscache_n_object_lookups_timed_out;
79816 +atomic_unchecked_t fscache_n_object_created;
79817 +atomic_unchecked_t fscache_n_object_avail;
79818 +atomic_unchecked_t fscache_n_object_dead;
79819
79820 -atomic_t fscache_n_checkaux_none;
79821 -atomic_t fscache_n_checkaux_okay;
79822 -atomic_t fscache_n_checkaux_update;
79823 -atomic_t fscache_n_checkaux_obsolete;
79824 +atomic_unchecked_t fscache_n_checkaux_none;
79825 +atomic_unchecked_t fscache_n_checkaux_okay;
79826 +atomic_unchecked_t fscache_n_checkaux_update;
79827 +atomic_unchecked_t fscache_n_checkaux_obsolete;
79828
79829 atomic_t fscache_n_cop_alloc_object;
79830 atomic_t fscache_n_cop_lookup_object;
79831 @@ -144,119 +144,119 @@ static int fscache_stats_show(struct seq_file *m, void *v)
79832 seq_puts(m, "FS-Cache statistics\n");
79833
79834 seq_printf(m, "Cookies: idx=%u dat=%u spc=%u\n",
79835 - atomic_read(&fscache_n_cookie_index),
79836 - atomic_read(&fscache_n_cookie_data),
79837 - atomic_read(&fscache_n_cookie_special));
79838 + atomic_read_unchecked(&fscache_n_cookie_index),
79839 + atomic_read_unchecked(&fscache_n_cookie_data),
79840 + atomic_read_unchecked(&fscache_n_cookie_special));
79841
79842 seq_printf(m, "Objects: alc=%u nal=%u avl=%u ded=%u\n",
79843 - atomic_read(&fscache_n_object_alloc),
79844 - atomic_read(&fscache_n_object_no_alloc),
79845 - atomic_read(&fscache_n_object_avail),
79846 - atomic_read(&fscache_n_object_dead));
79847 + atomic_read_unchecked(&fscache_n_object_alloc),
79848 + atomic_read_unchecked(&fscache_n_object_no_alloc),
79849 + atomic_read_unchecked(&fscache_n_object_avail),
79850 + atomic_read_unchecked(&fscache_n_object_dead));
79851 seq_printf(m, "ChkAux : non=%u ok=%u upd=%u obs=%u\n",
79852 - atomic_read(&fscache_n_checkaux_none),
79853 - atomic_read(&fscache_n_checkaux_okay),
79854 - atomic_read(&fscache_n_checkaux_update),
79855 - atomic_read(&fscache_n_checkaux_obsolete));
79856 + atomic_read_unchecked(&fscache_n_checkaux_none),
79857 + atomic_read_unchecked(&fscache_n_checkaux_okay),
79858 + atomic_read_unchecked(&fscache_n_checkaux_update),
79859 + atomic_read_unchecked(&fscache_n_checkaux_obsolete));
79860
79861 seq_printf(m, "Pages : mrk=%u unc=%u\n",
79862 - atomic_read(&fscache_n_marks),
79863 - atomic_read(&fscache_n_uncaches));
79864 + atomic_read_unchecked(&fscache_n_marks),
79865 + atomic_read_unchecked(&fscache_n_uncaches));
79866
79867 seq_printf(m, "Acquire: n=%u nul=%u noc=%u ok=%u nbf=%u"
79868 " oom=%u\n",
79869 - atomic_read(&fscache_n_acquires),
79870 - atomic_read(&fscache_n_acquires_null),
79871 - atomic_read(&fscache_n_acquires_no_cache),
79872 - atomic_read(&fscache_n_acquires_ok),
79873 - atomic_read(&fscache_n_acquires_nobufs),
79874 - atomic_read(&fscache_n_acquires_oom));
79875 + atomic_read_unchecked(&fscache_n_acquires),
79876 + atomic_read_unchecked(&fscache_n_acquires_null),
79877 + atomic_read_unchecked(&fscache_n_acquires_no_cache),
79878 + atomic_read_unchecked(&fscache_n_acquires_ok),
79879 + atomic_read_unchecked(&fscache_n_acquires_nobufs),
79880 + atomic_read_unchecked(&fscache_n_acquires_oom));
79881
79882 seq_printf(m, "Lookups: n=%u neg=%u pos=%u crt=%u tmo=%u\n",
79883 - atomic_read(&fscache_n_object_lookups),
79884 - atomic_read(&fscache_n_object_lookups_negative),
79885 - atomic_read(&fscache_n_object_lookups_positive),
79886 - atomic_read(&fscache_n_object_created),
79887 - atomic_read(&fscache_n_object_lookups_timed_out));
79888 + atomic_read_unchecked(&fscache_n_object_lookups),
79889 + atomic_read_unchecked(&fscache_n_object_lookups_negative),
79890 + atomic_read_unchecked(&fscache_n_object_lookups_positive),
79891 + atomic_read_unchecked(&fscache_n_object_created),
79892 + atomic_read_unchecked(&fscache_n_object_lookups_timed_out));
79893
79894 seq_printf(m, "Invals : n=%u run=%u\n",
79895 - atomic_read(&fscache_n_invalidates),
79896 - atomic_read(&fscache_n_invalidates_run));
79897 + atomic_read_unchecked(&fscache_n_invalidates),
79898 + atomic_read_unchecked(&fscache_n_invalidates_run));
79899
79900 seq_printf(m, "Updates: n=%u nul=%u run=%u\n",
79901 - atomic_read(&fscache_n_updates),
79902 - atomic_read(&fscache_n_updates_null),
79903 - atomic_read(&fscache_n_updates_run));
79904 + atomic_read_unchecked(&fscache_n_updates),
79905 + atomic_read_unchecked(&fscache_n_updates_null),
79906 + atomic_read_unchecked(&fscache_n_updates_run));
79907
79908 seq_printf(m, "Relinqs: n=%u nul=%u wcr=%u rtr=%u\n",
79909 - atomic_read(&fscache_n_relinquishes),
79910 - atomic_read(&fscache_n_relinquishes_null),
79911 - atomic_read(&fscache_n_relinquishes_waitcrt),
79912 - atomic_read(&fscache_n_relinquishes_retire));
79913 + atomic_read_unchecked(&fscache_n_relinquishes),
79914 + atomic_read_unchecked(&fscache_n_relinquishes_null),
79915 + atomic_read_unchecked(&fscache_n_relinquishes_waitcrt),
79916 + atomic_read_unchecked(&fscache_n_relinquishes_retire));
79917
79918 seq_printf(m, "AttrChg: n=%u ok=%u nbf=%u oom=%u run=%u\n",
79919 - atomic_read(&fscache_n_attr_changed),
79920 - atomic_read(&fscache_n_attr_changed_ok),
79921 - atomic_read(&fscache_n_attr_changed_nobufs),
79922 - atomic_read(&fscache_n_attr_changed_nomem),
79923 - atomic_read(&fscache_n_attr_changed_calls));
79924 + atomic_read_unchecked(&fscache_n_attr_changed),
79925 + atomic_read_unchecked(&fscache_n_attr_changed_ok),
79926 + atomic_read_unchecked(&fscache_n_attr_changed_nobufs),
79927 + atomic_read_unchecked(&fscache_n_attr_changed_nomem),
79928 + atomic_read_unchecked(&fscache_n_attr_changed_calls));
79929
79930 seq_printf(m, "Allocs : n=%u ok=%u wt=%u nbf=%u int=%u\n",
79931 - atomic_read(&fscache_n_allocs),
79932 - atomic_read(&fscache_n_allocs_ok),
79933 - atomic_read(&fscache_n_allocs_wait),
79934 - atomic_read(&fscache_n_allocs_nobufs),
79935 - atomic_read(&fscache_n_allocs_intr));
79936 + atomic_read_unchecked(&fscache_n_allocs),
79937 + atomic_read_unchecked(&fscache_n_allocs_ok),
79938 + atomic_read_unchecked(&fscache_n_allocs_wait),
79939 + atomic_read_unchecked(&fscache_n_allocs_nobufs),
79940 + atomic_read_unchecked(&fscache_n_allocs_intr));
79941 seq_printf(m, "Allocs : ops=%u owt=%u abt=%u\n",
79942 - atomic_read(&fscache_n_alloc_ops),
79943 - atomic_read(&fscache_n_alloc_op_waits),
79944 - atomic_read(&fscache_n_allocs_object_dead));
79945 + atomic_read_unchecked(&fscache_n_alloc_ops),
79946 + atomic_read_unchecked(&fscache_n_alloc_op_waits),
79947 + atomic_read_unchecked(&fscache_n_allocs_object_dead));
79948
79949 seq_printf(m, "Retrvls: n=%u ok=%u wt=%u nod=%u nbf=%u"
79950 " int=%u oom=%u\n",
79951 - atomic_read(&fscache_n_retrievals),
79952 - atomic_read(&fscache_n_retrievals_ok),
79953 - atomic_read(&fscache_n_retrievals_wait),
79954 - atomic_read(&fscache_n_retrievals_nodata),
79955 - atomic_read(&fscache_n_retrievals_nobufs),
79956 - atomic_read(&fscache_n_retrievals_intr),
79957 - atomic_read(&fscache_n_retrievals_nomem));
79958 + atomic_read_unchecked(&fscache_n_retrievals),
79959 + atomic_read_unchecked(&fscache_n_retrievals_ok),
79960 + atomic_read_unchecked(&fscache_n_retrievals_wait),
79961 + atomic_read_unchecked(&fscache_n_retrievals_nodata),
79962 + atomic_read_unchecked(&fscache_n_retrievals_nobufs),
79963 + atomic_read_unchecked(&fscache_n_retrievals_intr),
79964 + atomic_read_unchecked(&fscache_n_retrievals_nomem));
79965 seq_printf(m, "Retrvls: ops=%u owt=%u abt=%u\n",
79966 - atomic_read(&fscache_n_retrieval_ops),
79967 - atomic_read(&fscache_n_retrieval_op_waits),
79968 - atomic_read(&fscache_n_retrievals_object_dead));
79969 + atomic_read_unchecked(&fscache_n_retrieval_ops),
79970 + atomic_read_unchecked(&fscache_n_retrieval_op_waits),
79971 + atomic_read_unchecked(&fscache_n_retrievals_object_dead));
79972
79973 seq_printf(m, "Stores : n=%u ok=%u agn=%u nbf=%u oom=%u\n",
79974 - atomic_read(&fscache_n_stores),
79975 - atomic_read(&fscache_n_stores_ok),
79976 - atomic_read(&fscache_n_stores_again),
79977 - atomic_read(&fscache_n_stores_nobufs),
79978 - atomic_read(&fscache_n_stores_oom));
79979 + atomic_read_unchecked(&fscache_n_stores),
79980 + atomic_read_unchecked(&fscache_n_stores_ok),
79981 + atomic_read_unchecked(&fscache_n_stores_again),
79982 + atomic_read_unchecked(&fscache_n_stores_nobufs),
79983 + atomic_read_unchecked(&fscache_n_stores_oom));
79984 seq_printf(m, "Stores : ops=%u run=%u pgs=%u rxd=%u olm=%u\n",
79985 - atomic_read(&fscache_n_store_ops),
79986 - atomic_read(&fscache_n_store_calls),
79987 - atomic_read(&fscache_n_store_pages),
79988 - atomic_read(&fscache_n_store_radix_deletes),
79989 - atomic_read(&fscache_n_store_pages_over_limit));
79990 + atomic_read_unchecked(&fscache_n_store_ops),
79991 + atomic_read_unchecked(&fscache_n_store_calls),
79992 + atomic_read_unchecked(&fscache_n_store_pages),
79993 + atomic_read_unchecked(&fscache_n_store_radix_deletes),
79994 + atomic_read_unchecked(&fscache_n_store_pages_over_limit));
79995
79996 seq_printf(m, "VmScan : nos=%u gon=%u bsy=%u can=%u wt=%u\n",
79997 - atomic_read(&fscache_n_store_vmscan_not_storing),
79998 - atomic_read(&fscache_n_store_vmscan_gone),
79999 - atomic_read(&fscache_n_store_vmscan_busy),
80000 - atomic_read(&fscache_n_store_vmscan_cancelled),
80001 - atomic_read(&fscache_n_store_vmscan_wait));
80002 + atomic_read_unchecked(&fscache_n_store_vmscan_not_storing),
80003 + atomic_read_unchecked(&fscache_n_store_vmscan_gone),
80004 + atomic_read_unchecked(&fscache_n_store_vmscan_busy),
80005 + atomic_read_unchecked(&fscache_n_store_vmscan_cancelled),
80006 + atomic_read_unchecked(&fscache_n_store_vmscan_wait));
80007
80008 seq_printf(m, "Ops : pend=%u run=%u enq=%u can=%u rej=%u\n",
80009 - atomic_read(&fscache_n_op_pend),
80010 - atomic_read(&fscache_n_op_run),
80011 - atomic_read(&fscache_n_op_enqueue),
80012 - atomic_read(&fscache_n_op_cancelled),
80013 - atomic_read(&fscache_n_op_rejected));
80014 + atomic_read_unchecked(&fscache_n_op_pend),
80015 + atomic_read_unchecked(&fscache_n_op_run),
80016 + atomic_read_unchecked(&fscache_n_op_enqueue),
80017 + atomic_read_unchecked(&fscache_n_op_cancelled),
80018 + atomic_read_unchecked(&fscache_n_op_rejected));
80019 seq_printf(m, "Ops : ini=%u dfr=%u rel=%u gc=%u\n",
80020 - atomic_read(&fscache_n_op_initialised),
80021 - atomic_read(&fscache_n_op_deferred_release),
80022 - atomic_read(&fscache_n_op_release),
80023 - atomic_read(&fscache_n_op_gc));
80024 + atomic_read_unchecked(&fscache_n_op_initialised),
80025 + atomic_read_unchecked(&fscache_n_op_deferred_release),
80026 + atomic_read_unchecked(&fscache_n_op_release),
80027 + atomic_read_unchecked(&fscache_n_op_gc));
80028
80029 seq_printf(m, "CacheOp: alo=%d luo=%d luc=%d gro=%d\n",
80030 atomic_read(&fscache_n_cop_alloc_object),
80031 diff --git a/fs/fuse/cuse.c b/fs/fuse/cuse.c
80032 index eae2c11..b277a45 100644
80033 --- a/fs/fuse/cuse.c
80034 +++ b/fs/fuse/cuse.c
80035 @@ -609,10 +609,12 @@ static int __init cuse_init(void)
80036 INIT_LIST_HEAD(&cuse_conntbl[i]);
80037
80038 /* inherit and extend fuse_dev_operations */
80039 - cuse_channel_fops = fuse_dev_operations;
80040 - cuse_channel_fops.owner = THIS_MODULE;
80041 - cuse_channel_fops.open = cuse_channel_open;
80042 - cuse_channel_fops.release = cuse_channel_release;
80043 + pax_open_kernel();
80044 + memcpy((void *)&cuse_channel_fops, &fuse_dev_operations, sizeof(fuse_dev_operations));
80045 + *(void **)&cuse_channel_fops.owner = THIS_MODULE;
80046 + *(void **)&cuse_channel_fops.open = cuse_channel_open;
80047 + *(void **)&cuse_channel_fops.release = cuse_channel_release;
80048 + pax_close_kernel();
80049
80050 cuse_class = class_create(THIS_MODULE, "cuse");
80051 if (IS_ERR(cuse_class))
80052 diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
80053 index ebb5e37..beae05b 100644
80054 --- a/fs/fuse/dev.c
80055 +++ b/fs/fuse/dev.c
80056 @@ -1390,7 +1390,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
80057 ret = 0;
80058 pipe_lock(pipe);
80059
80060 - if (!pipe->readers) {
80061 + if (!atomic_read(&pipe->readers)) {
80062 send_sig(SIGPIPE, current, 0);
80063 if (!ret)
80064 ret = -EPIPE;
80065 @@ -1419,7 +1419,7 @@ static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
80066 page_nr++;
80067 ret += buf->len;
80068
80069 - if (pipe->files)
80070 + if (atomic_read(&pipe->files))
80071 do_wakeup = 1;
80072 }
80073
80074 diff --git a/fs/gfs2/glock.c b/fs/gfs2/glock.c
80075 index a38e38f..6dbdcf6 100644
80076 --- a/fs/gfs2/glock.c
80077 +++ b/fs/gfs2/glock.c
80078 @@ -385,9 +385,9 @@ static void state_change(struct gfs2_glock *gl, unsigned int new_state)
80079 if (held1 != held2) {
80080 GLOCK_BUG_ON(gl, __lockref_is_dead(&gl->gl_lockref));
80081 if (held2)
80082 - gl->gl_lockref.count++;
80083 + __lockref_inc(&gl->gl_lockref);
80084 else
80085 - gl->gl_lockref.count--;
80086 + __lockref_dec(&gl->gl_lockref);
80087 }
80088 if (held1 && held2 && list_empty(&gl->gl_holders))
80089 clear_bit(GLF_QUEUED, &gl->gl_flags);
80090 @@ -614,9 +614,9 @@ out:
80091 out_sched:
80092 clear_bit(GLF_LOCK, &gl->gl_flags);
80093 smp_mb__after_atomic();
80094 - gl->gl_lockref.count++;
80095 + __lockref_inc(&gl->gl_lockref);
80096 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
80097 - gl->gl_lockref.count--;
80098 + __lockref_dec(&gl->gl_lockref);
80099 return;
80100
80101 out_unlock:
80102 @@ -742,7 +742,7 @@ int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number,
80103 gl->gl_sbd = sdp;
80104 gl->gl_flags = 0;
80105 gl->gl_name = name;
80106 - gl->gl_lockref.count = 1;
80107 + __lockref_set(&gl->gl_lockref, 1);
80108 gl->gl_state = LM_ST_UNLOCKED;
80109 gl->gl_target = LM_ST_UNLOCKED;
80110 gl->gl_demote_state = LM_ST_EXCLUSIVE;
80111 @@ -1020,9 +1020,9 @@ int gfs2_glock_nq(struct gfs2_holder *gh)
80112 if (unlikely((LM_FLAG_NOEXP & gh->gh_flags) &&
80113 test_and_clear_bit(GLF_FROZEN, &gl->gl_flags))) {
80114 set_bit(GLF_REPLY_PENDING, &gl->gl_flags);
80115 - gl->gl_lockref.count++;
80116 + __lockref_inc(&gl->gl_lockref);
80117 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
80118 - gl->gl_lockref.count--;
80119 + __lockref_dec(&gl->gl_lockref);
80120 }
80121 run_queue(gl, 1);
80122 spin_unlock(&gl->gl_spin);
80123 @@ -1326,7 +1326,7 @@ void gfs2_glock_complete(struct gfs2_glock *gl, int ret)
80124 }
80125 }
80126
80127 - gl->gl_lockref.count++;
80128 + __lockref_inc(&gl->gl_lockref);
80129 set_bit(GLF_REPLY_PENDING, &gl->gl_flags);
80130 spin_unlock(&gl->gl_spin);
80131
80132 @@ -1385,12 +1385,12 @@ add_back_to_lru:
80133 goto add_back_to_lru;
80134 }
80135 clear_bit(GLF_LRU, &gl->gl_flags);
80136 - gl->gl_lockref.count++;
80137 + __lockref_inc(&gl->gl_lockref);
80138 if (demote_ok(gl))
80139 handle_callback(gl, LM_ST_UNLOCKED, 0, false);
80140 WARN_ON(!test_and_clear_bit(GLF_LOCK, &gl->gl_flags));
80141 if (queue_delayed_work(glock_workqueue, &gl->gl_work, 0) == 0)
80142 - gl->gl_lockref.count--;
80143 + __lockref_dec(&gl->gl_lockref);
80144 spin_unlock(&gl->gl_spin);
80145 cond_resched_lock(&lru_lock);
80146 }
80147 @@ -1720,7 +1720,7 @@ void gfs2_dump_glock(struct seq_file *seq, const struct gfs2_glock *gl)
80148 state2str(gl->gl_demote_state), dtime,
80149 atomic_read(&gl->gl_ail_count),
80150 atomic_read(&gl->gl_revokes),
80151 - (int)gl->gl_lockref.count, gl->gl_hold_time);
80152 + __lockref_read(&gl->gl_lockref), gl->gl_hold_time);
80153
80154 list_for_each_entry(gh, &gl->gl_holders, gh_list)
80155 dump_holder(seq, gh);
80156 diff --git a/fs/gfs2/glops.c b/fs/gfs2/glops.c
80157 index fa3fa5e..9fe2272 100644
80158 --- a/fs/gfs2/glops.c
80159 +++ b/fs/gfs2/glops.c
80160 @@ -552,9 +552,9 @@ static void iopen_go_callback(struct gfs2_glock *gl, bool remote)
80161
80162 if (gl->gl_demote_state == LM_ST_UNLOCKED &&
80163 gl->gl_state == LM_ST_SHARED && ip) {
80164 - gl->gl_lockref.count++;
80165 + __lockref_inc(&gl->gl_lockref);
80166 if (queue_work(gfs2_delete_workqueue, &gl->gl_delete) == 0)
80167 - gl->gl_lockref.count--;
80168 + __lockref_dec(&gl->gl_lockref);
80169 }
80170 }
80171
80172 diff --git a/fs/gfs2/quota.c b/fs/gfs2/quota.c
80173 index 9b61f92..ab84778 100644
80174 --- a/fs/gfs2/quota.c
80175 +++ b/fs/gfs2/quota.c
80176 @@ -154,7 +154,7 @@ static enum lru_status gfs2_qd_isolate(struct list_head *item,
80177 if (!spin_trylock(&qd->qd_lockref.lock))
80178 return LRU_SKIP;
80179
80180 - if (qd->qd_lockref.count == 0) {
80181 + if (__lockref_read(&qd->qd_lockref) == 0) {
80182 lockref_mark_dead(&qd->qd_lockref);
80183 list_lru_isolate_move(lru, &qd->qd_lru, dispose);
80184 }
80185 @@ -221,7 +221,7 @@ static struct gfs2_quota_data *qd_alloc(unsigned hash, struct gfs2_sbd *sdp, str
80186 return NULL;
80187
80188 qd->qd_sbd = sdp;
80189 - qd->qd_lockref.count = 1;
80190 + __lockref_set(&qd->qd_lockref, 1);
80191 spin_lock_init(&qd->qd_lockref.lock);
80192 qd->qd_id = qid;
80193 qd->qd_slot = -1;
80194 @@ -312,7 +312,7 @@ static void qd_put(struct gfs2_quota_data *qd)
80195 if (lockref_put_or_lock(&qd->qd_lockref))
80196 return;
80197
80198 - qd->qd_lockref.count = 0;
80199 + __lockref_set(&qd->qd_lockref, 0);
80200 list_lru_add(&gfs2_qd_lru, &qd->qd_lru);
80201 spin_unlock(&qd->qd_lockref.lock);
80202
80203 diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
80204 index 973c24c..a3cbeb3 100644
80205 --- a/fs/hugetlbfs/inode.c
80206 +++ b/fs/hugetlbfs/inode.c
80207 @@ -150,6 +150,7 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
80208 struct mm_struct *mm = current->mm;
80209 struct vm_area_struct *vma;
80210 struct hstate *h = hstate_file(file);
80211 + unsigned long offset = gr_rand_threadstack_offset(mm, file, flags);
80212 struct vm_unmapped_area_info info;
80213
80214 if (len & ~huge_page_mask(h))
80215 @@ -163,17 +164,26 @@ hugetlb_get_unmapped_area(struct file *file, unsigned long addr,
80216 return addr;
80217 }
80218
80219 +#ifdef CONFIG_PAX_RANDMMAP
80220 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
80221 +#endif
80222 +
80223 if (addr) {
80224 addr = ALIGN(addr, huge_page_size(h));
80225 vma = find_vma(mm, addr);
80226 - if (TASK_SIZE - len >= addr &&
80227 - (!vma || addr + len <= vma->vm_start))
80228 + if (TASK_SIZE - len >= addr && check_heap_stack_gap(vma, addr, len, offset))
80229 return addr;
80230 }
80231
80232 info.flags = 0;
80233 info.length = len;
80234 info.low_limit = TASK_UNMAPPED_BASE;
80235 +
80236 +#ifdef CONFIG_PAX_RANDMMAP
80237 + if (mm->pax_flags & MF_PAX_RANDMMAP)
80238 + info.low_limit += mm->delta_mmap;
80239 +#endif
80240 +
80241 info.high_limit = TASK_SIZE;
80242 info.align_mask = PAGE_MASK & ~huge_page_mask(h);
80243 info.align_offset = 0;
80244 @@ -938,7 +948,7 @@ static struct file_system_type hugetlbfs_fs_type = {
80245 };
80246 MODULE_ALIAS_FS("hugetlbfs");
80247
80248 -static struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
80249 +struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
80250
80251 static int can_do_hugetlb_shm(void)
80252 {
80253 diff --git a/fs/inode.c b/fs/inode.c
80254 index d30640f..9d909a7 100644
80255 --- a/fs/inode.c
80256 +++ b/fs/inode.c
80257 @@ -832,19 +832,19 @@ unsigned int get_next_ino(void)
80258 unsigned int *p = &get_cpu_var(last_ino);
80259 unsigned int res = *p;
80260
80261 +start:
80262 +
80263 #ifdef CONFIG_SMP
80264 if (unlikely((res & (LAST_INO_BATCH-1)) == 0)) {
80265 - static atomic_t shared_last_ino;
80266 - int next = atomic_add_return(LAST_INO_BATCH, &shared_last_ino);
80267 + static atomic_unchecked_t shared_last_ino;
80268 + int next = atomic_add_return_unchecked(LAST_INO_BATCH, &shared_last_ino);
80269
80270 res = next - LAST_INO_BATCH;
80271 }
80272 #endif
80273
80274 - res++;
80275 - /* get_next_ino should not provide a 0 inode number */
80276 - if (unlikely(!res))
80277 - res++;
80278 + if (unlikely(!++res))
80279 + goto start; /* never zero */
80280 *p = res;
80281 put_cpu_var(last_ino);
80282 return res;
80283 diff --git a/fs/jffs2/erase.c b/fs/jffs2/erase.c
80284 index 4a6cf28..d3a29d3 100644
80285 --- a/fs/jffs2/erase.c
80286 +++ b/fs/jffs2/erase.c
80287 @@ -452,7 +452,8 @@ static void jffs2_mark_erased_block(struct jffs2_sb_info *c, struct jffs2_eraseb
80288 struct jffs2_unknown_node marker = {
80289 .magic = cpu_to_je16(JFFS2_MAGIC_BITMASK),
80290 .nodetype = cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
80291 - .totlen = cpu_to_je32(c->cleanmarker_size)
80292 + .totlen = cpu_to_je32(c->cleanmarker_size),
80293 + .hdr_crc = cpu_to_je32(0)
80294 };
80295
80296 jffs2_prealloc_raw_node_refs(c, jeb, 1);
80297 diff --git a/fs/jffs2/wbuf.c b/fs/jffs2/wbuf.c
80298 index 09ed551..45684f8 100644
80299 --- a/fs/jffs2/wbuf.c
80300 +++ b/fs/jffs2/wbuf.c
80301 @@ -1023,7 +1023,8 @@ static const struct jffs2_unknown_node oob_cleanmarker =
80302 {
80303 .magic = constant_cpu_to_je16(JFFS2_MAGIC_BITMASK),
80304 .nodetype = constant_cpu_to_je16(JFFS2_NODETYPE_CLEANMARKER),
80305 - .totlen = constant_cpu_to_je32(8)
80306 + .totlen = constant_cpu_to_je32(8),
80307 + .hdr_crc = constant_cpu_to_je32(0)
80308 };
80309
80310 /*
80311 diff --git a/fs/jfs/super.c b/fs/jfs/super.c
80312 index 4cd9798..8dfe86a 100644
80313 --- a/fs/jfs/super.c
80314 +++ b/fs/jfs/super.c
80315 @@ -901,7 +901,7 @@ static int __init init_jfs_fs(void)
80316
80317 jfs_inode_cachep =
80318 kmem_cache_create("jfs_ip", sizeof(struct jfs_inode_info), 0,
80319 - SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD,
80320 + SLAB_RECLAIM_ACCOUNT|SLAB_MEM_SPREAD|SLAB_USERCOPY,
80321 init_once);
80322 if (jfs_inode_cachep == NULL)
80323 return -ENOMEM;
80324 diff --git a/fs/kernfs/dir.c b/fs/kernfs/dir.c
80325 index 2d48d28..82eddad 100644
80326 --- a/fs/kernfs/dir.c
80327 +++ b/fs/kernfs/dir.c
80328 @@ -182,7 +182,7 @@ struct kernfs_node *kernfs_get_parent(struct kernfs_node *kn)
80329 *
80330 * Returns 31 bit hash of ns + name (so it fits in an off_t )
80331 */
80332 -static unsigned int kernfs_name_hash(const char *name, const void *ns)
80333 +static unsigned int kernfs_name_hash(const unsigned char *name, const void *ns)
80334 {
80335 unsigned long hash = init_name_hash();
80336 unsigned int len = strlen(name);
80337 @@ -873,6 +873,12 @@ static int kernfs_iop_mkdir(struct inode *dir, struct dentry *dentry,
80338 ret = scops->mkdir(parent, dentry->d_name.name, mode);
80339
80340 kernfs_put_active(parent);
80341 +
80342 + if (!ret) {
80343 + struct dentry *dentry_ret = kernfs_iop_lookup(dir, dentry, 0);
80344 + ret = PTR_ERR_OR_ZERO(dentry_ret);
80345 + }
80346 +
80347 return ret;
80348 }
80349
80350 diff --git a/fs/kernfs/file.c b/fs/kernfs/file.c
80351 index 7247252..c73808e 100644
80352 --- a/fs/kernfs/file.c
80353 +++ b/fs/kernfs/file.c
80354 @@ -34,7 +34,7 @@ static DEFINE_MUTEX(kernfs_open_file_mutex);
80355
80356 struct kernfs_open_node {
80357 atomic_t refcnt;
80358 - atomic_t event;
80359 + atomic_unchecked_t event;
80360 wait_queue_head_t poll;
80361 struct list_head files; /* goes through kernfs_open_file.list */
80362 };
80363 @@ -163,7 +163,7 @@ static int kernfs_seq_show(struct seq_file *sf, void *v)
80364 {
80365 struct kernfs_open_file *of = sf->private;
80366
80367 - of->event = atomic_read(&of->kn->attr.open->event);
80368 + of->event = atomic_read_unchecked(&of->kn->attr.open->event);
80369
80370 return of->kn->attr.ops->seq_show(sf, v);
80371 }
80372 @@ -207,7 +207,7 @@ static ssize_t kernfs_file_direct_read(struct kernfs_open_file *of,
80373 goto out_free;
80374 }
80375
80376 - of->event = atomic_read(&of->kn->attr.open->event);
80377 + of->event = atomic_read_unchecked(&of->kn->attr.open->event);
80378 ops = kernfs_ops(of->kn);
80379 if (ops->read)
80380 len = ops->read(of, buf, len, *ppos);
80381 @@ -272,7 +272,7 @@ static ssize_t kernfs_fop_write(struct file *file, const char __user *user_buf,
80382 {
80383 struct kernfs_open_file *of = kernfs_of(file);
80384 const struct kernfs_ops *ops;
80385 - size_t len;
80386 + ssize_t len;
80387 char *buf;
80388
80389 if (of->atomic_write_len) {
80390 @@ -385,12 +385,12 @@ static int kernfs_vma_page_mkwrite(struct vm_area_struct *vma,
80391 return ret;
80392 }
80393
80394 -static int kernfs_vma_access(struct vm_area_struct *vma, unsigned long addr,
80395 - void *buf, int len, int write)
80396 +static ssize_t kernfs_vma_access(struct vm_area_struct *vma, unsigned long addr,
80397 + void *buf, size_t len, int write)
80398 {
80399 struct file *file = vma->vm_file;
80400 struct kernfs_open_file *of = kernfs_of(file);
80401 - int ret;
80402 + ssize_t ret;
80403
80404 if (!of->vm_ops)
80405 return -EINVAL;
80406 @@ -569,7 +569,7 @@ static int kernfs_get_open_node(struct kernfs_node *kn,
80407 return -ENOMEM;
80408
80409 atomic_set(&new_on->refcnt, 0);
80410 - atomic_set(&new_on->event, 1);
80411 + atomic_set_unchecked(&new_on->event, 1);
80412 init_waitqueue_head(&new_on->poll);
80413 INIT_LIST_HEAD(&new_on->files);
80414 goto retry;
80415 @@ -792,7 +792,7 @@ static unsigned int kernfs_fop_poll(struct file *filp, poll_table *wait)
80416
80417 kernfs_put_active(kn);
80418
80419 - if (of->event != atomic_read(&on->event))
80420 + if (of->event != atomic_read_unchecked(&on->event))
80421 goto trigger;
80422
80423 return DEFAULT_POLLMASK;
80424 @@ -823,7 +823,7 @@ repeat:
80425
80426 on = kn->attr.open;
80427 if (on) {
80428 - atomic_inc(&on->event);
80429 + atomic_inc_unchecked(&on->event);
80430 wake_up_interruptible(&on->poll);
80431 }
80432
80433 diff --git a/fs/libfs.c b/fs/libfs.c
80434 index c7cbfb0..fc3636d4 100644
80435 --- a/fs/libfs.c
80436 +++ b/fs/libfs.c
80437 @@ -155,6 +155,9 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
80438
80439 for (p = q->next; p != &dentry->d_subdirs; p = p->next) {
80440 struct dentry *next = list_entry(p, struct dentry, d_child);
80441 + char d_name[sizeof(next->d_iname)];
80442 + const unsigned char *name;
80443 +
80444 spin_lock_nested(&next->d_lock, DENTRY_D_LOCK_NESTED);
80445 if (!simple_positive(next)) {
80446 spin_unlock(&next->d_lock);
80447 @@ -163,7 +166,12 @@ int dcache_readdir(struct file *file, struct dir_context *ctx)
80448
80449 spin_unlock(&next->d_lock);
80450 spin_unlock(&dentry->d_lock);
80451 - if (!dir_emit(ctx, next->d_name.name, next->d_name.len,
80452 + name = next->d_name.name;
80453 + if (name == next->d_iname) {
80454 + memcpy(d_name, name, next->d_name.len);
80455 + name = d_name;
80456 + }
80457 + if (!dir_emit(ctx, name, next->d_name.len,
80458 d_inode(next)->i_ino, dt_type(d_inode(next))))
80459 return 0;
80460 spin_lock(&dentry->d_lock);
80461 diff --git a/fs/lockd/clntproc.c b/fs/lockd/clntproc.c
80462 index acd3947..1f896e2 100644
80463 --- a/fs/lockd/clntproc.c
80464 +++ b/fs/lockd/clntproc.c
80465 @@ -36,11 +36,11 @@ static const struct rpc_call_ops nlmclnt_cancel_ops;
80466 /*
80467 * Cookie counter for NLM requests
80468 */
80469 -static atomic_t nlm_cookie = ATOMIC_INIT(0x1234);
80470 +static atomic_unchecked_t nlm_cookie = ATOMIC_INIT(0x1234);
80471
80472 void nlmclnt_next_cookie(struct nlm_cookie *c)
80473 {
80474 - u32 cookie = atomic_inc_return(&nlm_cookie);
80475 + u32 cookie = atomic_inc_return_unchecked(&nlm_cookie);
80476
80477 memcpy(c->data, &cookie, 4);
80478 c->len=4;
80479 diff --git a/fs/mount.h b/fs/mount.h
80480 index 14db05d..687f6d8 100644
80481 --- a/fs/mount.h
80482 +++ b/fs/mount.h
80483 @@ -13,7 +13,7 @@ struct mnt_namespace {
80484 u64 seq; /* Sequence number to prevent loops */
80485 wait_queue_head_t poll;
80486 u64 event;
80487 -};
80488 +} __randomize_layout;
80489
80490 struct mnt_pcp {
80491 int mnt_count;
80492 @@ -65,7 +65,7 @@ struct mount {
80493 struct hlist_head mnt_pins;
80494 struct fs_pin mnt_umount;
80495 struct dentry *mnt_ex_mountpoint;
80496 -};
80497 +} __randomize_layout;
80498
80499 #define MNT_NS_INTERNAL ERR_PTR(-EINVAL) /* distinct from any mnt_namespace */
80500
80501 diff --git a/fs/namei.c b/fs/namei.c
80502 index 36df481..c3045fd 100644
80503 --- a/fs/namei.c
80504 +++ b/fs/namei.c
80505 @@ -336,17 +336,32 @@ int generic_permission(struct inode *inode, int mask)
80506 if (ret != -EACCES)
80507 return ret;
80508
80509 +#ifdef CONFIG_GRKERNSEC
80510 + /* we'll block if we have to log due to a denied capability use */
80511 + if (mask & MAY_NOT_BLOCK)
80512 + return -ECHILD;
80513 +#endif
80514 +
80515 if (S_ISDIR(inode->i_mode)) {
80516 /* DACs are overridable for directories */
80517 - if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
80518 - return 0;
80519 if (!(mask & MAY_WRITE))
80520 - if (capable_wrt_inode_uidgid(inode,
80521 - CAP_DAC_READ_SEARCH))
80522 + if (capable_wrt_inode_uidgid_nolog(inode, CAP_DAC_OVERRIDE) ||
80523 + capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
80524 return 0;
80525 + if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
80526 + return 0;
80527 return -EACCES;
80528 }
80529 /*
80530 + * Searching includes executable on directories, else just read.
80531 + */
80532 + mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
80533 + if (mask == MAY_READ)
80534 + if (capable_wrt_inode_uidgid_nolog(inode, CAP_DAC_OVERRIDE) ||
80535 + capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
80536 + return 0;
80537 +
80538 + /*
80539 * Read/write DACs are always overridable.
80540 * Executable DACs are overridable when there is
80541 * at least one exec bit set.
80542 @@ -355,14 +370,6 @@ int generic_permission(struct inode *inode, int mask)
80543 if (capable_wrt_inode_uidgid(inode, CAP_DAC_OVERRIDE))
80544 return 0;
80545
80546 - /*
80547 - * Searching includes executable on directories, else just read.
80548 - */
80549 - mask &= MAY_READ | MAY_WRITE | MAY_EXEC;
80550 - if (mask == MAY_READ)
80551 - if (capable_wrt_inode_uidgid(inode, CAP_DAC_READ_SEARCH))
80552 - return 0;
80553 -
80554 return -EACCES;
80555 }
80556 EXPORT_SYMBOL(generic_permission);
80557 @@ -514,12 +521,35 @@ struct nameidata {
80558 struct nameidata *saved;
80559 unsigned root_seq;
80560 int dfd;
80561 -};
80562 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80563 + struct path *symlinkown_stack;
80564 + struct path symlinkown_internal[EMBEDDED_LEVELS];
80565 + unsigned symlinkown_depth;
80566 + int symlinkown_enabled;
80567 +#endif
80568 +} __randomize_layout;
80569 +
80570 +static int gr_handle_nameidata_symlinkowner(const struct nameidata *nd, const struct inode *target)
80571 +{
80572 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80573 + int i;
80574 +
80575 + for (i = 0; i < nd->symlinkown_depth; i++) {
80576 + if (gr_handle_symlink_owner(&nd->symlinkown_stack[i], target))
80577 + return -EACCES;
80578 + }
80579 +#endif
80580 + return 0;
80581 +}
80582
80583 static void set_nameidata(struct nameidata *p, int dfd, struct filename *name)
80584 {
80585 struct nameidata *old = current->nameidata;
80586 p->stack = p->internal;
80587 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80588 + p->symlinkown_stack = p->symlinkown_internal;
80589 + p->symlinkown_enabled = -1;
80590 +#endif
80591 p->dfd = dfd;
80592 p->name = name;
80593 p->total_link_count = old ? old->total_link_count : 0;
80594 @@ -538,6 +568,12 @@ static void restore_nameidata(void)
80595 kfree(now->stack);
80596 now->stack = now->internal;
80597 }
80598 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80599 + if (now->symlinkown_stack != now->symlinkown_internal) {
80600 + kfree(now->symlinkown_stack);
80601 + now->symlinkown_stack = now->symlinkown_internal;
80602 + }
80603 +#endif
80604 }
80605
80606 static int __nd_alloc_stack(struct nameidata *nd)
80607 @@ -557,9 +593,29 @@ static int __nd_alloc_stack(struct nameidata *nd)
80608 }
80609 memcpy(p, nd->internal, sizeof(nd->internal));
80610 nd->stack = p;
80611 +
80612 return 0;
80613 }
80614
80615 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80616 +static int nd_alloc_symlinkown_stack(struct nameidata *nd)
80617 +{
80618 + struct path *p;
80619 +
80620 + if (likely(nd->symlinkown_depth != EMBEDDED_LEVELS))
80621 + return 0;
80622 + if (nd->symlinkown_stack != nd->symlinkown_internal)
80623 + return 0;
80624 +
80625 + p = kmalloc(MAXSYMLINKS * sizeof(struct path), GFP_KERNEL);
80626 + if (unlikely(!p))
80627 + return -ENOMEM;
80628 + memcpy(p, nd->symlinkown_internal, sizeof(nd->symlinkown_internal));
80629 + nd->symlinkown_stack = p;
80630 + return 0;
80631 +}
80632 +#endif
80633 +
80634 /**
80635 * path_connected - Verify that a path->dentry is below path->mnt.mnt_root
80636 * @path: nameidate to verify
80637 @@ -580,6 +636,11 @@ static bool path_connected(const struct path *path)
80638
80639 static inline int nd_alloc_stack(struct nameidata *nd)
80640 {
80641 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80642 + if (nd->flags & LOOKUP_RCU)
80643 + return -ECHILD;
80644 +#endif
80645 +
80646 if (likely(nd->depth != EMBEDDED_LEVELS))
80647 return 0;
80648 if (likely(nd->stack != nd->internal))
80649 @@ -608,6 +669,14 @@ static void terminate_walk(struct nameidata *nd)
80650 path_put(&nd->path);
80651 for (i = 0; i < nd->depth; i++)
80652 path_put(&nd->stack[i].link);
80653 +
80654 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80655 + /* we'll only ever set our values in ref-walk mode */
80656 + for (i = 0; i < nd->symlinkown_depth; i++)
80657 + path_put(&nd->symlinkown_stack[i]);
80658 + nd->symlinkown_depth = 0;
80659 +#endif
80660 +
80661 if (nd->root.mnt && !(nd->flags & LOOKUP_ROOT)) {
80662 path_put(&nd->root);
80663 nd->root.mnt = NULL;
80664 @@ -1004,6 +1073,9 @@ const char *get_link(struct nameidata *nd)
80665 if (unlikely(error))
80666 return ERR_PTR(error);
80667
80668 + if (gr_handle_follow_link(dentry, last->link.mnt))
80669 + return ERR_PTR(-EACCES);
80670 +
80671 nd->last_type = LAST_BIND;
80672 res = inode->i_link;
80673 if (!res) {
80674 @@ -1692,6 +1764,23 @@ static int pick_link(struct nameidata *nd, struct path *link,
80675 }
80676 }
80677
80678 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80679 + if (unlikely(nd->symlinkown_enabled == -1))
80680 + nd->symlinkown_enabled = gr_get_symlinkown_enabled();
80681 + if (nd->symlinkown_enabled && gr_is_global_nonroot(inode->i_uid)) {
80682 + struct path *symlinkownlast;
80683 + error = nd_alloc_symlinkown_stack(nd);
80684 + if (unlikely(error)) {
80685 + path_put(link);
80686 + return error;
80687 + }
80688 + symlinkownlast = nd->symlinkown_stack + nd->symlinkown_depth++;
80689 + symlinkownlast->dentry = link->dentry;
80690 + symlinkownlast->mnt = link->mnt;
80691 + path_get(symlinkownlast);
80692 + }
80693 +#endif
80694 +
80695 last = nd->stack + nd->depth++;
80696 last->link = *link;
80697 last->cookie = NULL;
80698 @@ -1831,7 +1920,7 @@ EXPORT_SYMBOL(full_name_hash);
80699 static inline u64 hash_name(const char *name)
80700 {
80701 unsigned long a, b, adata, bdata, mask, hash, len;
80702 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
80703 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
80704
80705 hash = a = 0;
80706 len = -sizeof(unsigned long);
80707 @@ -2000,6 +2089,9 @@ static const char *path_init(struct nameidata *nd, unsigned flags)
80708 nd->flags = flags | LOOKUP_JUMPED | LOOKUP_PARENT;
80709 nd->depth = 0;
80710 nd->total_link_count = 0;
80711 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
80712 + nd->symlinkown_depth = 0;
80713 +#endif
80714 if (flags & LOOKUP_ROOT) {
80715 struct dentry *root = nd->root.dentry;
80716 struct inode *inode = root->d_inode;
80717 @@ -2137,6 +2229,11 @@ static int path_lookupat(struct nameidata *nd, unsigned flags, struct path *path
80718 if (!err)
80719 err = complete_walk(nd);
80720
80721 + if (!err && !(nd->flags & LOOKUP_PARENT)) {
80722 + if (!gr_acl_handle_hidden_file(nd->path.dentry, nd->path.mnt))
80723 + err = -ENOENT;
80724 + }
80725 +
80726 if (!err && nd->flags & LOOKUP_DIRECTORY)
80727 if (!d_can_lookup(nd->path.dentry))
80728 err = -ENOTDIR;
80729 @@ -2185,6 +2282,10 @@ static int path_parentat(struct nameidata *nd, unsigned flags,
80730 err = link_path_walk(s, nd);
80731 if (!err)
80732 err = complete_walk(nd);
80733 +
80734 + if (!err && gr_handle_nameidata_symlinkowner(nd, nd->inode))
80735 + err = -EACCES;
80736 +
80737 if (!err) {
80738 *parent = nd->path;
80739 nd->path.mnt = NULL;
80740 @@ -2716,6 +2817,13 @@ static int may_open(struct path *path, int acc_mode, int flag)
80741 if (flag & O_NOATIME && !inode_owner_or_capable(inode))
80742 return -EPERM;
80743
80744 + if (gr_handle_rofs_blockwrite(dentry, path->mnt, acc_mode))
80745 + return -EPERM;
80746 + if (gr_handle_rawio(inode))
80747 + return -EPERM;
80748 + if (!gr_acl_handle_open(dentry, path->mnt, acc_mode))
80749 + return -EACCES;
80750 +
80751 return 0;
80752 }
80753
80754 @@ -2982,6 +3090,18 @@ static int lookup_open(struct nameidata *nd, struct path *path,
80755 /* Negative dentry, just create the file */
80756 if (!dentry->d_inode && (op->open_flag & O_CREAT)) {
80757 umode_t mode = op->mode;
80758 +
80759 +
80760 + if (gr_handle_nameidata_symlinkowner(nd, dir_inode)) {
80761 + error = -EACCES;
80762 + goto out_dput;
80763 + }
80764 +
80765 + if (!gr_acl_handle_creat(dentry, dir, nd->path.mnt, op->open_flag, op->acc_mode, mode)) {
80766 + error = -EACCES;
80767 + goto out_dput;
80768 + }
80769 +
80770 if (!IS_POSIXACL(dir->d_inode))
80771 mode &= ~current_umask();
80772 /*
80773 @@ -3003,6 +3123,8 @@ static int lookup_open(struct nameidata *nd, struct path *path,
80774 nd->flags & LOOKUP_EXCL);
80775 if (error)
80776 goto out_dput;
80777 + else
80778 + gr_handle_create(dentry, nd->path.mnt);
80779 }
80780 out_no_open:
80781 path->dentry = dentry;
80782 @@ -3066,6 +3188,9 @@ static int do_last(struct nameidata *nd,
80783 if (error)
80784 return error;
80785
80786 + if (!gr_acl_handle_hidden_file(dir, nd->path.mnt))
80787 + return -ENOENT;
80788 +
80789 audit_inode(nd->name, dir, LOOKUP_PARENT);
80790 /* trailing slashes? */
80791 if (unlikely(nd->last.name[nd->last.len]))
80792 @@ -3108,11 +3233,24 @@ retry_lookup:
80793 goto finish_open_created;
80794 }
80795
80796 + if (!gr_acl_handle_hidden_file(path.dentry, nd->path.mnt)) {
80797 + path_to_nameidata(&path, nd);
80798 + return -ENOENT;
80799 + }
80800 +
80801 /*
80802 * create/update audit record if it already exists.
80803 */
80804 - if (d_is_positive(path.dentry))
80805 + if (d_is_positive(path.dentry)) {
80806 + /* only check if O_CREAT is specified, all other checks need to go
80807 + into may_open */
80808 + if (gr_handle_fifo(path.dentry, path.mnt, dir, open_flag, acc_mode)) {
80809 + path_to_nameidata(&path, nd);
80810 + return -EACCES;
80811 + }
80812 +
80813 audit_inode(nd->name, path.dentry, 0);
80814 + }
80815
80816 /*
80817 * If atomic_open() acquired write access it is dropped now due to
80818 @@ -3148,6 +3286,11 @@ finish_lookup:
80819 if (unlikely(error))
80820 return error;
80821
80822 + if (gr_handle_nameidata_symlinkowner(nd, inode)) {
80823 + path_to_nameidata(&path, nd);
80824 + return -EACCES;
80825 + }
80826 +
80827 if (unlikely(d_is_symlink(path.dentry)) && !(open_flag & O_PATH)) {
80828 path_to_nameidata(&path, nd);
80829 return -ELOOP;
80830 @@ -3170,6 +3313,12 @@ finish_open:
80831 path_put(&save_parent);
80832 return error;
80833 }
80834 +
80835 + if (!gr_acl_handle_hidden_file(nd->path.dentry, nd->path.mnt)) {
80836 + error = -ENOENT;
80837 + goto out;
80838 + }
80839 +
80840 audit_inode(nd->name, nd->path.dentry, 0);
80841 error = -EISDIR;
80842 if ((open_flag & O_CREAT) && d_is_dir(nd->path.dentry))
80843 @@ -3436,9 +3585,11 @@ static struct dentry *filename_create(int dfd, struct filename *name,
80844 goto unlock;
80845
80846 error = -EEXIST;
80847 - if (d_is_positive(dentry))
80848 + if (d_is_positive(dentry)) {
80849 + if (!gr_acl_handle_hidden_file(dentry, path->mnt))
80850 + error = -ENOENT;
80851 goto fail;
80852 -
80853 + }
80854 /*
80855 * Special case - lookup gave negative, but... we had foo/bar/
80856 * From the vfs_mknod() POV we just have a negative dentry -
80857 @@ -3492,6 +3643,20 @@ inline struct dentry *user_path_create(int dfd, const char __user *pathname,
80858 }
80859 EXPORT_SYMBOL(user_path_create);
80860
80861 +static struct dentry *user_path_create_with_name(int dfd, const char __user *pathname, struct path *path, struct filename **to, unsigned int lookup_flags)
80862 +{
80863 + struct filename *tmp = getname(pathname);
80864 + struct dentry *res;
80865 + if (IS_ERR(tmp))
80866 + return ERR_CAST(tmp);
80867 + res = kern_path_create(dfd, tmp->name, path, lookup_flags);
80868 + if (IS_ERR(res))
80869 + putname(tmp);
80870 + else
80871 + *to = tmp;
80872 + return res;
80873 +}
80874 +
80875 int vfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, dev_t dev)
80876 {
80877 int error = may_create(dir, dentry);
80878 @@ -3555,6 +3720,17 @@ retry:
80879
80880 if (!IS_POSIXACL(path.dentry->d_inode))
80881 mode &= ~current_umask();
80882 +
80883 + if (gr_handle_chroot_mknod(dentry, path.mnt, mode)) {
80884 + error = -EPERM;
80885 + goto out;
80886 + }
80887 +
80888 + if (!gr_acl_handle_mknod(dentry, path.dentry, path.mnt, mode)) {
80889 + error = -EACCES;
80890 + goto out;
80891 + }
80892 +
80893 error = security_path_mknod(&path, dentry, mode, dev);
80894 if (error)
80895 goto out;
80896 @@ -3570,6 +3746,8 @@ retry:
80897 error = vfs_mknod(path.dentry->d_inode,dentry,mode,0);
80898 break;
80899 }
80900 + if (!error)
80901 + gr_handle_create(dentry, path.mnt);
80902 out:
80903 done_path_create(&path, dentry);
80904 if (retry_estale(error, lookup_flags)) {
80905 @@ -3624,9 +3802,16 @@ retry:
80906
80907 if (!IS_POSIXACL(path.dentry->d_inode))
80908 mode &= ~current_umask();
80909 + if (!gr_acl_handle_mkdir(dentry, path.dentry, path.mnt)) {
80910 + error = -EACCES;
80911 + goto out;
80912 + }
80913 error = security_path_mkdir(&path, dentry, mode);
80914 if (!error)
80915 error = vfs_mkdir(path.dentry->d_inode, dentry, mode);
80916 + if (!error)
80917 + gr_handle_create(dentry, path.mnt);
80918 +out:
80919 done_path_create(&path, dentry);
80920 if (retry_estale(error, lookup_flags)) {
80921 lookup_flags |= LOOKUP_REVAL;
80922 @@ -3659,7 +3844,7 @@ void dentry_unhash(struct dentry *dentry)
80923 {
80924 shrink_dcache_parent(dentry);
80925 spin_lock(&dentry->d_lock);
80926 - if (dentry->d_lockref.count == 1)
80927 + if (__lockref_read(&dentry->d_lockref) == 1)
80928 __d_drop(dentry);
80929 spin_unlock(&dentry->d_lock);
80930 }
80931 @@ -3712,6 +3897,8 @@ static long do_rmdir(int dfd, const char __user *pathname)
80932 struct path path;
80933 struct qstr last;
80934 int type;
80935 + u64 saved_ino = 0;
80936 + dev_t saved_dev = 0;
80937 unsigned int lookup_flags = 0;
80938 retry:
80939 name = user_path_parent(dfd, pathname,
80940 @@ -3744,10 +3931,20 @@ retry:
80941 error = -ENOENT;
80942 goto exit3;
80943 }
80944 + saved_ino = gr_get_ino_from_dentry(dentry);
80945 + saved_dev = gr_get_dev_from_dentry(dentry);
80946 +
80947 + if (!gr_acl_handle_rmdir(dentry, path.mnt)) {
80948 + error = -EACCES;
80949 + goto exit3;
80950 + }
80951 +
80952 error = security_path_rmdir(&path, dentry);
80953 if (error)
80954 goto exit3;
80955 error = vfs_rmdir(path.dentry->d_inode, dentry);
80956 + if (!error && (saved_dev || saved_ino))
80957 + gr_handle_delete(saved_ino, saved_dev);
80958 exit3:
80959 dput(dentry);
80960 exit2:
80961 @@ -3842,6 +4039,8 @@ static long do_unlinkat(int dfd, const char __user *pathname)
80962 int type;
80963 struct inode *inode = NULL;
80964 struct inode *delegated_inode = NULL;
80965 + u64 saved_ino = 0;
80966 + dev_t saved_dev = 0;
80967 unsigned int lookup_flags = 0;
80968 retry:
80969 name = user_path_parent(dfd, pathname,
80970 @@ -3868,10 +4067,21 @@ retry_deleg:
80971 if (d_is_negative(dentry))
80972 goto slashes;
80973 ihold(inode);
80974 + if (inode->i_nlink <= 1) {
80975 + saved_ino = gr_get_ino_from_dentry(dentry);
80976 + saved_dev = gr_get_dev_from_dentry(dentry);
80977 + }
80978 + if (!gr_acl_handle_unlink(dentry, path.mnt)) {
80979 + error = -EACCES;
80980 + goto exit2;
80981 + }
80982 +
80983 error = security_path_unlink(&path, dentry);
80984 if (error)
80985 goto exit2;
80986 error = vfs_unlink(path.dentry->d_inode, dentry, &delegated_inode);
80987 + if (!error && (saved_ino || saved_dev))
80988 + gr_handle_delete(saved_ino, saved_dev);
80989 exit2:
80990 dput(dentry);
80991 }
80992 @@ -3960,9 +4170,17 @@ retry:
80993 if (IS_ERR(dentry))
80994 goto out_putname;
80995
80996 + if (!gr_acl_handle_symlink(dentry, path.dentry, path.mnt, from)) {
80997 + error = -EACCES;
80998 + goto out;
80999 + }
81000 +
81001 error = security_path_symlink(&path, dentry, from->name);
81002 if (!error)
81003 error = vfs_symlink(path.dentry->d_inode, dentry, from->name);
81004 + if (!error)
81005 + gr_handle_create(dentry, path.mnt);
81006 +out:
81007 done_path_create(&path, dentry);
81008 if (retry_estale(error, lookup_flags)) {
81009 lookup_flags |= LOOKUP_REVAL;
81010 @@ -4066,6 +4284,7 @@ SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
81011 struct dentry *new_dentry;
81012 struct path old_path, new_path;
81013 struct inode *delegated_inode = NULL;
81014 + struct filename *to = NULL;
81015 int how = 0;
81016 int error;
81017
81018 @@ -4089,7 +4308,7 @@ retry:
81019 if (error)
81020 return error;
81021
81022 - new_dentry = user_path_create(newdfd, newname, &new_path,
81023 + new_dentry = user_path_create_with_name(newdfd, newname, &new_path, &to,
81024 (how & LOOKUP_REVAL));
81025 error = PTR_ERR(new_dentry);
81026 if (IS_ERR(new_dentry))
81027 @@ -4101,11 +4320,26 @@ retry:
81028 error = may_linkat(&old_path);
81029 if (unlikely(error))
81030 goto out_dput;
81031 +
81032 + if (gr_handle_hardlink(old_path.dentry, old_path.mnt, to)) {
81033 + error = -EACCES;
81034 + goto out_dput;
81035 + }
81036 +
81037 + if (!gr_acl_handle_link(new_dentry, new_path.dentry, new_path.mnt,
81038 + old_path.dentry, old_path.mnt, to)) {
81039 + error = -EACCES;
81040 + goto out_dput;
81041 + }
81042 +
81043 error = security_path_link(old_path.dentry, &new_path, new_dentry);
81044 if (error)
81045 goto out_dput;
81046 error = vfs_link(old_path.dentry, new_path.dentry->d_inode, new_dentry, &delegated_inode);
81047 + if (!error)
81048 + gr_handle_create(new_dentry, new_path.mnt);
81049 out_dput:
81050 + putname(to);
81051 done_path_create(&new_path, new_dentry);
81052 if (delegated_inode) {
81053 error = break_deleg_wait(&delegated_inode);
81054 @@ -4420,6 +4654,20 @@ retry_deleg:
81055 if (new_dentry == trap)
81056 goto exit5;
81057
81058 + if (gr_bad_chroot_rename(old_dentry, old_path.mnt, new_dentry, new_path.mnt)) {
81059 + /* use EXDEV error to cause 'mv' to switch to an alternative
81060 + * method for usability
81061 + */
81062 + error = -EXDEV;
81063 + goto exit5;
81064 + }
81065 +
81066 + error = gr_acl_handle_rename(new_dentry, new_path.dentry, new_path.mnt,
81067 + old_dentry, d_backing_inode(old_path.dentry), old_path.mnt,
81068 + to, flags);
81069 + if (error)
81070 + goto exit5;
81071 +
81072 error = security_path_rename(&old_path, old_dentry,
81073 &new_path, new_dentry, flags);
81074 if (error)
81075 @@ -4427,6 +4675,9 @@ retry_deleg:
81076 error = vfs_rename(old_path.dentry->d_inode, old_dentry,
81077 new_path.dentry->d_inode, new_dentry,
81078 &delegated_inode, flags);
81079 + if (!error)
81080 + gr_handle_rename(d_backing_inode(old_path.dentry), d_backing_inode(new_path.dentry), old_dentry,
81081 + new_dentry, old_path.mnt, d_is_positive(new_dentry) ? 1 : 0, flags);
81082 exit5:
81083 dput(new_dentry);
81084 exit4:
81085 @@ -4483,14 +4734,24 @@ EXPORT_SYMBOL(vfs_whiteout);
81086
81087 int readlink_copy(char __user *buffer, int buflen, const char *link)
81088 {
81089 + char tmpbuf[64];
81090 + const char *newlink;
81091 int len = PTR_ERR(link);
81092 +
81093 if (IS_ERR(link))
81094 goto out;
81095
81096 len = strlen(link);
81097 if (len > (unsigned) buflen)
81098 len = buflen;
81099 - if (copy_to_user(buffer, link, len))
81100 +
81101 + if (len < sizeof(tmpbuf)) {
81102 + memcpy(tmpbuf, link, len);
81103 + newlink = tmpbuf;
81104 + } else
81105 + newlink = link;
81106 +
81107 + if (copy_to_user(buffer, newlink, len))
81108 len = -EFAULT;
81109 out:
81110 return len;
81111 diff --git a/fs/namespace.c b/fs/namespace.c
81112 index 2b8aa15..3230081 100644
81113 --- a/fs/namespace.c
81114 +++ b/fs/namespace.c
81115 @@ -1516,6 +1516,9 @@ static int do_umount(struct mount *mnt, int flags)
81116 if (!(sb->s_flags & MS_RDONLY))
81117 retval = do_remount_sb(sb, MS_RDONLY, NULL, 0);
81118 up_write(&sb->s_umount);
81119 +
81120 + gr_log_remount(mnt->mnt_devname, retval);
81121 +
81122 return retval;
81123 }
81124
81125 @@ -1538,6 +1541,9 @@ static int do_umount(struct mount *mnt, int flags)
81126 }
81127 unlock_mount_hash();
81128 namespace_unlock();
81129 +
81130 + gr_log_unmount(mnt->mnt_devname, retval);
81131 +
81132 return retval;
81133 }
81134
81135 @@ -1592,7 +1598,7 @@ static inline bool may_mount(void)
81136 * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
81137 */
81138
81139 -SYSCALL_DEFINE2(umount, char __user *, name, int, flags)
81140 +SYSCALL_DEFINE2(umount, const char __user *, name, int, flags)
81141 {
81142 struct path path;
81143 struct mount *mnt;
81144 @@ -1637,7 +1643,7 @@ out:
81145 /*
81146 * The 2.0 compatible umount. No flags.
81147 */
81148 -SYSCALL_DEFINE1(oldumount, char __user *, name)
81149 +SYSCALL_DEFINE1(oldumount, const char __user *, name)
81150 {
81151 return sys_umount(name, 0);
81152 }
81153 @@ -2712,6 +2718,16 @@ long do_mount(const char *dev_name, const char __user *dir_name,
81154 MS_NOATIME | MS_NODIRATIME | MS_RELATIME| MS_KERNMOUNT |
81155 MS_STRICTATIME);
81156
81157 + if (gr_handle_rofs_mount(path.dentry, path.mnt, mnt_flags)) {
81158 + retval = -EPERM;
81159 + goto dput_out;
81160 + }
81161 +
81162 + if (gr_handle_chroot_mount(path.dentry, path.mnt, dev_name)) {
81163 + retval = -EPERM;
81164 + goto dput_out;
81165 + }
81166 +
81167 if (flags & MS_REMOUNT)
81168 retval = do_remount(&path, flags & ~MS_REMOUNT, mnt_flags,
81169 data_page);
81170 @@ -2725,7 +2741,10 @@ long do_mount(const char *dev_name, const char __user *dir_name,
81171 retval = do_new_mount(&path, type_page, flags, mnt_flags,
81172 dev_name, data_page);
81173 dput_out:
81174 + gr_log_mount(dev_name, &path, retval);
81175 +
81176 path_put(&path);
81177 +
81178 return retval;
81179 }
81180
81181 @@ -2743,7 +2762,7 @@ static void free_mnt_ns(struct mnt_namespace *ns)
81182 * number incrementing at 10Ghz will take 12,427 years to wrap which
81183 * is effectively never, so we can ignore the possibility.
81184 */
81185 -static atomic64_t mnt_ns_seq = ATOMIC64_INIT(1);
81186 +static atomic64_unchecked_t mnt_ns_seq = ATOMIC64_INIT(1);
81187
81188 static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
81189 {
81190 @@ -2759,7 +2778,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
81191 return ERR_PTR(ret);
81192 }
81193 new_ns->ns.ops = &mntns_operations;
81194 - new_ns->seq = atomic64_add_return(1, &mnt_ns_seq);
81195 + new_ns->seq = atomic64_add_return_unchecked(1, &mnt_ns_seq);
81196 atomic_set(&new_ns->count, 1);
81197 new_ns->root = NULL;
81198 INIT_LIST_HEAD(&new_ns->list);
81199 @@ -2769,7 +2788,7 @@ static struct mnt_namespace *alloc_mnt_ns(struct user_namespace *user_ns)
81200 return new_ns;
81201 }
81202
81203 -struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
81204 +__latent_entropy struct mnt_namespace *copy_mnt_ns(unsigned long flags, struct mnt_namespace *ns,
81205 struct user_namespace *user_ns, struct fs_struct *new_fs)
81206 {
81207 struct mnt_namespace *new_ns;
81208 @@ -2890,8 +2909,8 @@ struct dentry *mount_subtree(struct vfsmount *mnt, const char *name)
81209 }
81210 EXPORT_SYMBOL(mount_subtree);
81211
81212 -SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name,
81213 - char __user *, type, unsigned long, flags, void __user *, data)
81214 +SYSCALL_DEFINE5(mount, const char __user *, dev_name, const char __user *, dir_name,
81215 + const char __user *, type, unsigned long, flags, void __user *, data)
81216 {
81217 int ret;
81218 char *kernel_type;
81219 @@ -2997,6 +3016,11 @@ SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
81220 if (error)
81221 goto out2;
81222
81223 + if (gr_handle_chroot_pivot()) {
81224 + error = -EPERM;
81225 + goto out2;
81226 + }
81227 +
81228 get_fs_root(current->fs, &root);
81229 old_mp = lock_mount(&old);
81230 error = PTR_ERR(old_mp);
81231 @@ -3298,7 +3322,7 @@ static int mntns_install(struct nsproxy *nsproxy, struct ns_common *ns)
81232 !ns_capable(current_user_ns(), CAP_SYS_ADMIN))
81233 return -EPERM;
81234
81235 - if (fs->users != 1)
81236 + if (atomic_read(&fs->users) != 1)
81237 return -EINVAL;
81238
81239 get_mnt_ns(mnt_ns);
81240 diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
81241 index 6b1697a..6d5787c 100644
81242 --- a/fs/nfs/callback_xdr.c
81243 +++ b/fs/nfs/callback_xdr.c
81244 @@ -51,7 +51,7 @@ struct callback_op {
81245 callback_decode_arg_t decode_args;
81246 callback_encode_res_t encode_res;
81247 long res_maxsize;
81248 -};
81249 +} __do_const;
81250
81251 static struct callback_op callback_ops[];
81252
81253 diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c
81254 index 4afbe13..a6a26ce 100644
81255 --- a/fs/nfs/inode.c
81256 +++ b/fs/nfs/inode.c
81257 @@ -1273,16 +1273,16 @@ static int nfs_check_inode_attributes(struct inode *inode, struct nfs_fattr *fat
81258 return 0;
81259 }
81260
81261 -static atomic_long_t nfs_attr_generation_counter;
81262 +static atomic_long_unchecked_t nfs_attr_generation_counter;
81263
81264 static unsigned long nfs_read_attr_generation_counter(void)
81265 {
81266 - return atomic_long_read(&nfs_attr_generation_counter);
81267 + return atomic_long_read_unchecked(&nfs_attr_generation_counter);
81268 }
81269
81270 unsigned long nfs_inc_attr_generation_counter(void)
81271 {
81272 - return atomic_long_inc_return(&nfs_attr_generation_counter);
81273 + return atomic_long_inc_return_unchecked(&nfs_attr_generation_counter);
81274 }
81275 EXPORT_SYMBOL_GPL(nfs_inc_attr_generation_counter);
81276
81277 diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
81278 index 90cfda7..e4b50df 100644
81279 --- a/fs/nfsd/nfs4proc.c
81280 +++ b/fs/nfsd/nfs4proc.c
81281 @@ -1487,7 +1487,7 @@ struct nfsd4_operation {
81282 nfsd4op_rsize op_rsize_bop;
81283 stateid_getter op_get_currentstateid;
81284 stateid_setter op_set_currentstateid;
81285 -};
81286 +} __do_const;
81287
81288 static struct nfsd4_operation nfsd4_ops[];
81289
81290 diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
81291 index b81f725..8e36601 100644
81292 --- a/fs/nfsd/nfs4xdr.c
81293 +++ b/fs/nfsd/nfs4xdr.c
81294 @@ -1704,7 +1704,7 @@ nfsd4_decode_notsupp(struct nfsd4_compoundargs *argp, void *p)
81295
81296 typedef __be32(*nfsd4_dec)(struct nfsd4_compoundargs *argp, void *);
81297
81298 -static nfsd4_dec nfsd4_dec_ops[] = {
81299 +static const nfsd4_dec nfsd4_dec_ops[] = {
81300 [OP_ACCESS] = (nfsd4_dec)nfsd4_decode_access,
81301 [OP_CLOSE] = (nfsd4_dec)nfsd4_decode_close,
81302 [OP_COMMIT] = (nfsd4_dec)nfsd4_decode_commit,
81303 diff --git a/fs/nfsd/nfscache.c b/fs/nfsd/nfscache.c
81304 index 46ec934..f384e41 100644
81305 --- a/fs/nfsd/nfscache.c
81306 +++ b/fs/nfsd/nfscache.c
81307 @@ -541,7 +541,7 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
81308 struct kvec *resv = &rqstp->rq_res.head[0], *cachv;
81309 u32 hash;
81310 struct nfsd_drc_bucket *b;
81311 - int len;
81312 + long len;
81313 size_t bufsize = 0;
81314
81315 if (!rp)
81316 @@ -550,11 +550,14 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
81317 hash = nfsd_cache_hash(rp->c_xid);
81318 b = &drc_hashtbl[hash];
81319
81320 - len = resv->iov_len - ((char*)statp - (char*)resv->iov_base);
81321 - len >>= 2;
81322 + if (statp) {
81323 + len = (char*)statp - (char*)resv->iov_base;
81324 + len = resv->iov_len - len;
81325 + len >>= 2;
81326 + }
81327
81328 /* Don't cache excessive amounts of data and XDR failures */
81329 - if (!statp || len > (256 >> 2)) {
81330 + if (!statp || len > (256 >> 2) || len < 0) {
81331 nfsd_reply_cache_free(b, rp);
81332 return;
81333 }
81334 @@ -562,7 +565,7 @@ nfsd_cache_update(struct svc_rqst *rqstp, int cachetype, __be32 *statp)
81335 switch (cachetype) {
81336 case RC_REPLSTAT:
81337 if (len != 1)
81338 - printk("nfsd: RC_REPLSTAT/reply len %d!\n",len);
81339 + printk("nfsd: RC_REPLSTAT/reply len %ld!\n",len);
81340 rp->c_replstat = *statp;
81341 break;
81342 case RC_REPLBUFF:
81343 diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
81344 index b5e077a..50cf549 100644
81345 --- a/fs/nfsd/vfs.c
81346 +++ b/fs/nfsd/vfs.c
81347 @@ -855,7 +855,7 @@ __be32 nfsd_readv(struct file *file, loff_t offset, struct kvec *vec, int vlen,
81348
81349 oldfs = get_fs();
81350 set_fs(KERNEL_DS);
81351 - host_err = vfs_readv(file, (struct iovec __user *)vec, vlen, &offset);
81352 + host_err = vfs_readv(file, (struct iovec __force_user *)vec, vlen, &offset);
81353 set_fs(oldfs);
81354 return nfsd_finish_read(file, count, host_err);
81355 }
81356 @@ -942,7 +942,7 @@ nfsd_vfs_write(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file *file,
81357
81358 /* Write the data. */
81359 oldfs = get_fs(); set_fs(KERNEL_DS);
81360 - host_err = vfs_writev(file, (struct iovec __user *)vec, vlen, &pos);
81361 + host_err = vfs_writev(file, (struct iovec __force_user *)vec, vlen, &pos);
81362 set_fs(oldfs);
81363 if (host_err < 0)
81364 goto out_nfserr;
81365 @@ -1455,7 +1455,7 @@ nfsd_readlink(struct svc_rqst *rqstp, struct svc_fh *fhp, char *buf, int *lenp)
81366 */
81367
81368 oldfs = get_fs(); set_fs(KERNEL_DS);
81369 - host_err = inode->i_op->readlink(path.dentry, (char __user *)buf, *lenp);
81370 + host_err = inode->i_op->readlink(path.dentry, (char __force_user *)buf, *lenp);
81371 set_fs(oldfs);
81372
81373 if (host_err < 0)
81374 diff --git a/fs/nls/nls_base.c b/fs/nls/nls_base.c
81375 index 52ccd34..7a6b202 100644
81376 --- a/fs/nls/nls_base.c
81377 +++ b/fs/nls/nls_base.c
81378 @@ -234,21 +234,25 @@ EXPORT_SYMBOL(utf16s_to_utf8s);
81379
81380 int __register_nls(struct nls_table *nls, struct module *owner)
81381 {
81382 - struct nls_table ** tmp = &tables;
81383 + struct nls_table *tmp = tables;
81384
81385 if (nls->next)
81386 return -EBUSY;
81387
81388 - nls->owner = owner;
81389 + pax_open_kernel();
81390 + *(void **)&nls->owner = owner;
81391 + pax_close_kernel();
81392 spin_lock(&nls_lock);
81393 - while (*tmp) {
81394 - if (nls == *tmp) {
81395 + while (tmp) {
81396 + if (nls == tmp) {
81397 spin_unlock(&nls_lock);
81398 return -EBUSY;
81399 }
81400 - tmp = &(*tmp)->next;
81401 + tmp = tmp->next;
81402 }
81403 - nls->next = tables;
81404 + pax_open_kernel();
81405 + *(struct nls_table **)&nls->next = tables;
81406 + pax_close_kernel();
81407 tables = nls;
81408 spin_unlock(&nls_lock);
81409 return 0;
81410 @@ -257,12 +261,14 @@ EXPORT_SYMBOL(__register_nls);
81411
81412 int unregister_nls(struct nls_table * nls)
81413 {
81414 - struct nls_table ** tmp = &tables;
81415 + struct nls_table * const * tmp = &tables;
81416
81417 spin_lock(&nls_lock);
81418 while (*tmp) {
81419 if (nls == *tmp) {
81420 - *tmp = nls->next;
81421 + pax_open_kernel();
81422 + *(struct nls_table **)tmp = nls->next;
81423 + pax_close_kernel();
81424 spin_unlock(&nls_lock);
81425 return 0;
81426 }
81427 @@ -272,7 +278,7 @@ int unregister_nls(struct nls_table * nls)
81428 return -EINVAL;
81429 }
81430
81431 -static struct nls_table *find_nls(char *charset)
81432 +static struct nls_table *find_nls(const char *charset)
81433 {
81434 struct nls_table *nls;
81435 spin_lock(&nls_lock);
81436 @@ -288,7 +294,7 @@ static struct nls_table *find_nls(char *charset)
81437 return nls;
81438 }
81439
81440 -struct nls_table *load_nls(char *charset)
81441 +struct nls_table *load_nls(const char *charset)
81442 {
81443 return try_then_request_module(find_nls(charset), "nls_%s", charset);
81444 }
81445 diff --git a/fs/nls/nls_euc-jp.c b/fs/nls/nls_euc-jp.c
81446 index 162b3f1..6076a7c 100644
81447 --- a/fs/nls/nls_euc-jp.c
81448 +++ b/fs/nls/nls_euc-jp.c
81449 @@ -560,8 +560,10 @@ static int __init init_nls_euc_jp(void)
81450 p_nls = load_nls("cp932");
81451
81452 if (p_nls) {
81453 - table.charset2upper = p_nls->charset2upper;
81454 - table.charset2lower = p_nls->charset2lower;
81455 + pax_open_kernel();
81456 + *(const unsigned char **)&table.charset2upper = p_nls->charset2upper;
81457 + *(const unsigned char **)&table.charset2lower = p_nls->charset2lower;
81458 + pax_close_kernel();
81459 return register_nls(&table);
81460 }
81461
81462 diff --git a/fs/nls/nls_koi8-ru.c b/fs/nls/nls_koi8-ru.c
81463 index a80a741..7b96e1b 100644
81464 --- a/fs/nls/nls_koi8-ru.c
81465 +++ b/fs/nls/nls_koi8-ru.c
81466 @@ -62,8 +62,10 @@ static int __init init_nls_koi8_ru(void)
81467 p_nls = load_nls("koi8-u");
81468
81469 if (p_nls) {
81470 - table.charset2upper = p_nls->charset2upper;
81471 - table.charset2lower = p_nls->charset2lower;
81472 + pax_open_kernel();
81473 + *(const unsigned char **)&table.charset2upper = p_nls->charset2upper;
81474 + *(const unsigned char **)&table.charset2lower = p_nls->charset2lower;
81475 + pax_close_kernel();
81476 return register_nls(&table);
81477 }
81478
81479 diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
81480 index cf27550..6c70f29d 100644
81481 --- a/fs/notify/fanotify/fanotify_user.c
81482 +++ b/fs/notify/fanotify/fanotify_user.c
81483 @@ -216,8 +216,8 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
81484
81485 fd = fanotify_event_metadata.fd;
81486 ret = -EFAULT;
81487 - if (copy_to_user(buf, &fanotify_event_metadata,
81488 - fanotify_event_metadata.event_len))
81489 + if (fanotify_event_metadata.event_len > sizeof fanotify_event_metadata ||
81490 + copy_to_user(buf, &fanotify_event_metadata, fanotify_event_metadata.event_len))
81491 goto out_close_fd;
81492
81493 #ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
81494 diff --git a/fs/notify/notification.c b/fs/notify/notification.c
81495 index a95d8e0..a91a5fd 100644
81496 --- a/fs/notify/notification.c
81497 +++ b/fs/notify/notification.c
81498 @@ -48,7 +48,7 @@
81499 #include <linux/fsnotify_backend.h>
81500 #include "fsnotify.h"
81501
81502 -static atomic_t fsnotify_sync_cookie = ATOMIC_INIT(0);
81503 +static atomic_unchecked_t fsnotify_sync_cookie = ATOMIC_INIT(0);
81504
81505 /**
81506 * fsnotify_get_cookie - return a unique cookie for use in synchronizing events.
81507 @@ -56,7 +56,7 @@ static atomic_t fsnotify_sync_cookie = ATOMIC_INIT(0);
81508 */
81509 u32 fsnotify_get_cookie(void)
81510 {
81511 - return atomic_inc_return(&fsnotify_sync_cookie);
81512 + return atomic_inc_return_unchecked(&fsnotify_sync_cookie);
81513 }
81514 EXPORT_SYMBOL_GPL(fsnotify_get_cookie);
81515
81516 diff --git a/fs/ntfs/dir.c b/fs/ntfs/dir.c
81517 index 9e38daf..5727cae 100644
81518 --- a/fs/ntfs/dir.c
81519 +++ b/fs/ntfs/dir.c
81520 @@ -1310,7 +1310,7 @@ find_next_index_buffer:
81521 ia = (INDEX_ALLOCATION*)(kaddr + (ia_pos & ~PAGE_CACHE_MASK &
81522 ~(s64)(ndir->itype.index.block_size - 1)));
81523 /* Bounds checks. */
81524 - if (unlikely((u8*)ia < kaddr || (u8*)ia > kaddr + PAGE_CACHE_SIZE)) {
81525 + if (unlikely(!kaddr || (u8*)ia < kaddr || (u8*)ia > kaddr + PAGE_CACHE_SIZE)) {
81526 ntfs_error(sb, "Out of bounds check failed. Corrupt directory "
81527 "inode 0x%lx or driver bug.", vdir->i_ino);
81528 goto err_out;
81529 diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
81530 index 9e1e112..241a52a 100644
81531 --- a/fs/ntfs/super.c
81532 +++ b/fs/ntfs/super.c
81533 @@ -688,7 +688,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
81534 if (!silent)
81535 ntfs_error(sb, "Primary boot sector is invalid.");
81536 } else if (!silent)
81537 - ntfs_error(sb, read_err_str, "primary");
81538 + ntfs_error(sb, read_err_str, "%s", "primary");
81539 if (!(NTFS_SB(sb)->on_errors & ON_ERRORS_RECOVER)) {
81540 if (bh_primary)
81541 brelse(bh_primary);
81542 @@ -704,7 +704,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
81543 goto hotfix_primary_boot_sector;
81544 brelse(bh_backup);
81545 } else if (!silent)
81546 - ntfs_error(sb, read_err_str, "backup");
81547 + ntfs_error(sb, read_err_str, "%s", "backup");
81548 /* Try to read NT3.51- backup boot sector. */
81549 if ((bh_backup = sb_bread(sb, nr_blocks >> 1))) {
81550 if (is_boot_sector_ntfs(sb, (NTFS_BOOT_SECTOR*)
81551 @@ -715,7 +715,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
81552 "sector.");
81553 brelse(bh_backup);
81554 } else if (!silent)
81555 - ntfs_error(sb, read_err_str, "backup");
81556 + ntfs_error(sb, read_err_str, "%s", "backup");
81557 /* We failed. Cleanup and return. */
81558 if (bh_primary)
81559 brelse(bh_primary);
81560 diff --git a/fs/ocfs2/localalloc.c b/fs/ocfs2/localalloc.c
81561 index 857bbbc..3c47d15 100644
81562 --- a/fs/ocfs2/localalloc.c
81563 +++ b/fs/ocfs2/localalloc.c
81564 @@ -1320,7 +1320,7 @@ static int ocfs2_local_alloc_slide_window(struct ocfs2_super *osb,
81565 goto bail;
81566 }
81567
81568 - atomic_inc(&osb->alloc_stats.moves);
81569 + atomic_inc_unchecked(&osb->alloc_stats.moves);
81570
81571 bail:
81572 if (handle)
81573 diff --git a/fs/ocfs2/ocfs2.h b/fs/ocfs2/ocfs2.h
81574 index 690ddc6..f2d4c4d 100644
81575 --- a/fs/ocfs2/ocfs2.h
81576 +++ b/fs/ocfs2/ocfs2.h
81577 @@ -247,11 +247,11 @@ enum ocfs2_vol_state
81578
81579 struct ocfs2_alloc_stats
81580 {
81581 - atomic_t moves;
81582 - atomic_t local_data;
81583 - atomic_t bitmap_data;
81584 - atomic_t bg_allocs;
81585 - atomic_t bg_extends;
81586 + atomic_unchecked_t moves;
81587 + atomic_unchecked_t local_data;
81588 + atomic_unchecked_t bitmap_data;
81589 + atomic_unchecked_t bg_allocs;
81590 + atomic_unchecked_t bg_extends;
81591 };
81592
81593 enum ocfs2_local_alloc_state
81594 diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
81595 index 4479029..5de740b 100644
81596 --- a/fs/ocfs2/suballoc.c
81597 +++ b/fs/ocfs2/suballoc.c
81598 @@ -867,7 +867,7 @@ static int ocfs2_reserve_suballoc_bits(struct ocfs2_super *osb,
81599 mlog_errno(status);
81600 goto bail;
81601 }
81602 - atomic_inc(&osb->alloc_stats.bg_extends);
81603 + atomic_inc_unchecked(&osb->alloc_stats.bg_extends);
81604
81605 /* You should never ask for this much metadata */
81606 BUG_ON(bits_wanted >
81607 @@ -2014,7 +2014,7 @@ int ocfs2_claim_metadata(handle_t *handle,
81608 mlog_errno(status);
81609 goto bail;
81610 }
81611 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81612 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81613
81614 *suballoc_loc = res.sr_bg_blkno;
81615 *suballoc_bit_start = res.sr_bit_offset;
81616 @@ -2180,7 +2180,7 @@ int ocfs2_claim_new_inode_at_loc(handle_t *handle,
81617 trace_ocfs2_claim_new_inode_at_loc((unsigned long long)di_blkno,
81618 res->sr_bits);
81619
81620 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81621 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81622
81623 BUG_ON(res->sr_bits != 1);
81624
81625 @@ -2222,7 +2222,7 @@ int ocfs2_claim_new_inode(handle_t *handle,
81626 mlog_errno(status);
81627 goto bail;
81628 }
81629 - atomic_inc(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81630 + atomic_inc_unchecked(&OCFS2_SB(ac->ac_inode->i_sb)->alloc_stats.bg_allocs);
81631
81632 BUG_ON(res.sr_bits != 1);
81633
81634 @@ -2326,7 +2326,7 @@ int __ocfs2_claim_clusters(handle_t *handle,
81635 cluster_start,
81636 num_clusters);
81637 if (!status)
81638 - atomic_inc(&osb->alloc_stats.local_data);
81639 + atomic_inc_unchecked(&osb->alloc_stats.local_data);
81640 } else {
81641 if (min_clusters > (osb->bitmap_cpg - 1)) {
81642 /* The only paths asking for contiguousness
81643 @@ -2352,7 +2352,7 @@ int __ocfs2_claim_clusters(handle_t *handle,
81644 ocfs2_desc_bitmap_to_cluster_off(ac->ac_inode,
81645 res.sr_bg_blkno,
81646 res.sr_bit_offset);
81647 - atomic_inc(&osb->alloc_stats.bitmap_data);
81648 + atomic_inc_unchecked(&osb->alloc_stats.bitmap_data);
81649 *num_clusters = res.sr_bits;
81650 }
81651 }
81652 diff --git a/fs/ocfs2/super.c b/fs/ocfs2/super.c
81653 index a482e31..81b251d 100644
81654 --- a/fs/ocfs2/super.c
81655 +++ b/fs/ocfs2/super.c
81656 @@ -308,11 +308,11 @@ static int ocfs2_osb_dump(struct ocfs2_super *osb, char *buf, int len)
81657 "%10s => GlobalAllocs: %d LocalAllocs: %d "
81658 "SubAllocs: %d LAWinMoves: %d SAExtends: %d\n",
81659 "Stats",
81660 - atomic_read(&osb->alloc_stats.bitmap_data),
81661 - atomic_read(&osb->alloc_stats.local_data),
81662 - atomic_read(&osb->alloc_stats.bg_allocs),
81663 - atomic_read(&osb->alloc_stats.moves),
81664 - atomic_read(&osb->alloc_stats.bg_extends));
81665 + atomic_read_unchecked(&osb->alloc_stats.bitmap_data),
81666 + atomic_read_unchecked(&osb->alloc_stats.local_data),
81667 + atomic_read_unchecked(&osb->alloc_stats.bg_allocs),
81668 + atomic_read_unchecked(&osb->alloc_stats.moves),
81669 + atomic_read_unchecked(&osb->alloc_stats.bg_extends));
81670
81671 out += snprintf(buf + out, len - out,
81672 "%10s => State: %u Descriptor: %llu Size: %u bits "
81673 @@ -2095,11 +2095,11 @@ static int ocfs2_initialize_super(struct super_block *sb,
81674
81675 mutex_init(&osb->system_file_mutex);
81676
81677 - atomic_set(&osb->alloc_stats.moves, 0);
81678 - atomic_set(&osb->alloc_stats.local_data, 0);
81679 - atomic_set(&osb->alloc_stats.bitmap_data, 0);
81680 - atomic_set(&osb->alloc_stats.bg_allocs, 0);
81681 - atomic_set(&osb->alloc_stats.bg_extends, 0);
81682 + atomic_set_unchecked(&osb->alloc_stats.moves, 0);
81683 + atomic_set_unchecked(&osb->alloc_stats.local_data, 0);
81684 + atomic_set_unchecked(&osb->alloc_stats.bitmap_data, 0);
81685 + atomic_set_unchecked(&osb->alloc_stats.bg_allocs, 0);
81686 + atomic_set_unchecked(&osb->alloc_stats.bg_extends, 0);
81687
81688 /* Copy the blockcheck stats from the superblock probe */
81689 osb->osb_ecc_stats = *stats;
81690 diff --git a/fs/open.c b/fs/open.c
81691 index e33dab2..cdbdad9 100644
81692 --- a/fs/open.c
81693 +++ b/fs/open.c
81694 @@ -32,6 +32,8 @@
81695 #include <linux/dnotify.h>
81696 #include <linux/compat.h>
81697
81698 +#define CREATE_TRACE_POINTS
81699 +#include <trace/events/fs.h>
81700 #include "internal.h"
81701
81702 int do_truncate(struct dentry *dentry, loff_t length, unsigned int time_attrs,
81703 @@ -105,6 +107,8 @@ long vfs_truncate(struct path *path, loff_t length)
81704 error = locks_verify_truncate(inode, NULL, length);
81705 if (!error)
81706 error = security_path_truncate(path);
81707 + if (!error && !gr_acl_handle_truncate(path->dentry, path->mnt))
81708 + error = -EACCES;
81709 if (!error)
81710 error = do_truncate(path->dentry, length, 0, NULL);
81711
81712 @@ -189,6 +193,8 @@ static long do_sys_ftruncate(unsigned int fd, loff_t length, int small)
81713 error = locks_verify_truncate(inode, f.file, length);
81714 if (!error)
81715 error = security_path_truncate(&f.file->f_path);
81716 + if (!error && !gr_acl_handle_truncate(f.file->f_path.dentry, f.file->f_path.mnt))
81717 + error = -EACCES;
81718 if (!error)
81719 error = do_truncate(dentry, length, ATTR_MTIME|ATTR_CTIME, f.file);
81720 sb_end_write(inode->i_sb);
81721 @@ -398,6 +404,9 @@ retry:
81722 if (__mnt_is_readonly(path.mnt))
81723 res = -EROFS;
81724
81725 + if (!res && !gr_acl_handle_access(path.dentry, path.mnt, mode))
81726 + res = -EACCES;
81727 +
81728 out_path_release:
81729 path_put(&path);
81730 if (retry_estale(res, lookup_flags)) {
81731 @@ -429,6 +438,8 @@ retry:
81732 if (error)
81733 goto dput_and_out;
81734
81735 + gr_log_chdir(path.dentry, path.mnt);
81736 +
81737 set_fs_pwd(current->fs, &path);
81738
81739 dput_and_out:
81740 @@ -458,6 +469,13 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
81741 goto out_putf;
81742
81743 error = inode_permission(inode, MAY_EXEC | MAY_CHDIR);
81744 +
81745 + if (!error && !gr_chroot_fchdir(f.file->f_path.dentry, f.file->f_path.mnt))
81746 + error = -EPERM;
81747 +
81748 + if (!error)
81749 + gr_log_chdir(f.file->f_path.dentry, f.file->f_path.mnt);
81750 +
81751 if (!error)
81752 set_fs_pwd(current->fs, &f.file->f_path);
81753 out_putf:
81754 @@ -487,7 +505,13 @@ retry:
81755 if (error)
81756 goto dput_and_out;
81757
81758 + if (gr_handle_chroot_chroot(path.dentry, path.mnt))
81759 + goto dput_and_out;
81760 +
81761 set_fs_root(current->fs, &path);
81762 +
81763 + gr_handle_chroot_chdir(&path);
81764 +
81765 error = 0;
81766 dput_and_out:
81767 path_put(&path);
81768 @@ -511,6 +535,16 @@ static int chmod_common(struct path *path, umode_t mode)
81769 return error;
81770 retry_deleg:
81771 mutex_lock(&inode->i_mutex);
81772 +
81773 + if (!gr_acl_handle_chmod(path->dentry, path->mnt, &mode)) {
81774 + error = -EACCES;
81775 + goto out_unlock;
81776 + }
81777 + if (gr_handle_chroot_chmod(path->dentry, path->mnt, mode)) {
81778 + error = -EACCES;
81779 + goto out_unlock;
81780 + }
81781 +
81782 error = security_path_chmod(path, mode);
81783 if (error)
81784 goto out_unlock;
81785 @@ -576,6 +610,9 @@ static int chown_common(struct path *path, uid_t user, gid_t group)
81786 uid = make_kuid(current_user_ns(), user);
81787 gid = make_kgid(current_user_ns(), group);
81788
81789 + if (!gr_acl_handle_chown(path->dentry, path->mnt))
81790 + return -EACCES;
81791 +
81792 retry_deleg:
81793 newattrs.ia_valid = ATTR_CTIME;
81794 if (user != (uid_t) -1) {
81795 @@ -1029,6 +1066,7 @@ long do_sys_open(int dfd, const char __user *filename, int flags, umode_t mode)
81796 } else {
81797 fsnotify_open(f);
81798 fd_install(fd, f);
81799 + trace_do_sys_open(tmp->name, flags, mode);
81800 }
81801 }
81802 putname(tmp);
81803 diff --git a/fs/overlayfs/inode.c b/fs/overlayfs/inode.c
81804 index ec0c2a0..f9b5b82 100644
81805 --- a/fs/overlayfs/inode.c
81806 +++ b/fs/overlayfs/inode.c
81807 @@ -346,6 +346,9 @@ struct inode *ovl_d_select_inode(struct dentry *dentry, unsigned file_flags)
81808 if (d_is_dir(dentry))
81809 return d_backing_inode(dentry);
81810
81811 + if (d_is_dir(dentry))
81812 + return d_backing_inode(dentry);
81813 +
81814 type = ovl_path_real(dentry, &realpath);
81815 if (ovl_open_need_copy_up(file_flags, type, realpath.dentry)) {
81816 err = ovl_want_write(dentry);
81817 diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c
81818 index e38ee0f..6fc10e4 100644
81819 --- a/fs/overlayfs/super.c
81820 +++ b/fs/overlayfs/super.c
81821 @@ -172,7 +172,7 @@ void ovl_path_lower(struct dentry *dentry, struct path *path)
81822 {
81823 struct ovl_entry *oe = dentry->d_fsdata;
81824
81825 - *path = oe->numlower ? oe->lowerstack[0] : (struct path) { NULL, NULL };
81826 + *path = oe->numlower ? oe->lowerstack[0] : (struct path) { .dentry = NULL, .mnt = NULL };
81827 }
81828
81829 int ovl_want_write(struct dentry *dentry)
81830 @@ -880,8 +880,8 @@ static unsigned int ovl_split_lowerdirs(char *str)
81831
81832 static int ovl_fill_super(struct super_block *sb, void *data, int silent)
81833 {
81834 - struct path upperpath = { NULL, NULL };
81835 - struct path workpath = { NULL, NULL };
81836 + struct path upperpath = { .dentry = NULL, .mnt = NULL };
81837 + struct path workpath = { .dentry = NULL, .mnt = NULL };
81838 struct dentry *root_dentry;
81839 struct ovl_entry *oe;
81840 struct ovl_fs *ufs;
81841 diff --git a/fs/pipe.c b/fs/pipe.c
81842 index 8865f79..bd2c79b 100644
81843 --- a/fs/pipe.c
81844 +++ b/fs/pipe.c
81845 @@ -36,7 +36,7 @@ unsigned int pipe_max_size = 1048576;
81846 /*
81847 * Minimum pipe size, as required by POSIX
81848 */
81849 -unsigned int pipe_min_size = PAGE_SIZE;
81850 +unsigned int pipe_min_size __read_only = PAGE_SIZE;
81851
81852 /*
81853 * We use a start+len construction, which provides full use of the
81854 @@ -55,7 +55,7 @@ unsigned int pipe_min_size = PAGE_SIZE;
81855
81856 static void pipe_lock_nested(struct pipe_inode_info *pipe, int subclass)
81857 {
81858 - if (pipe->files)
81859 + if (atomic_read(&pipe->files))
81860 mutex_lock_nested(&pipe->mutex, subclass);
81861 }
81862
81863 @@ -70,7 +70,7 @@ EXPORT_SYMBOL(pipe_lock);
81864
81865 void pipe_unlock(struct pipe_inode_info *pipe)
81866 {
81867 - if (pipe->files)
81868 + if (atomic_read(&pipe->files))
81869 mutex_unlock(&pipe->mutex);
81870 }
81871 EXPORT_SYMBOL(pipe_unlock);
81872 @@ -291,9 +291,9 @@ pipe_read(struct kiocb *iocb, struct iov_iter *to)
81873 }
81874 if (bufs) /* More to do? */
81875 continue;
81876 - if (!pipe->writers)
81877 + if (!atomic_read(&pipe->writers))
81878 break;
81879 - if (!pipe->waiting_writers) {
81880 + if (!atomic_read(&pipe->waiting_writers)) {
81881 /* syscall merging: Usually we must not sleep
81882 * if O_NONBLOCK is set, or if we got some data.
81883 * But if a writer sleeps in kernel space, then
81884 @@ -350,7 +350,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
81885
81886 __pipe_lock(pipe);
81887
81888 - if (!pipe->readers) {
81889 + if (!atomic_read(&pipe->readers)) {
81890 send_sig(SIGPIPE, current, 0);
81891 ret = -EPIPE;
81892 goto out;
81893 @@ -386,7 +386,7 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
81894 for (;;) {
81895 int bufs;
81896
81897 - if (!pipe->readers) {
81898 + if (!atomic_read(&pipe->readers)) {
81899 send_sig(SIGPIPE, current, 0);
81900 if (!ret)
81901 ret = -EPIPE;
81902 @@ -454,9 +454,9 @@ pipe_write(struct kiocb *iocb, struct iov_iter *from)
81903 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
81904 do_wakeup = 0;
81905 }
81906 - pipe->waiting_writers++;
81907 + atomic_inc(&pipe->waiting_writers);
81908 pipe_wait(pipe);
81909 - pipe->waiting_writers--;
81910 + atomic_dec(&pipe->waiting_writers);
81911 }
81912 out:
81913 __pipe_unlock(pipe);
81914 @@ -511,7 +511,7 @@ pipe_poll(struct file *filp, poll_table *wait)
81915 mask = 0;
81916 if (filp->f_mode & FMODE_READ) {
81917 mask = (nrbufs > 0) ? POLLIN | POLLRDNORM : 0;
81918 - if (!pipe->writers && filp->f_version != pipe->w_counter)
81919 + if (!atomic_read(&pipe->writers) && filp->f_version != pipe->w_counter)
81920 mask |= POLLHUP;
81921 }
81922
81923 @@ -521,7 +521,7 @@ pipe_poll(struct file *filp, poll_table *wait)
81924 * Most Unices do not set POLLERR for FIFOs but on Linux they
81925 * behave exactly like pipes for poll().
81926 */
81927 - if (!pipe->readers)
81928 + if (!atomic_read(&pipe->readers))
81929 mask |= POLLERR;
81930 }
81931
81932 @@ -533,7 +533,7 @@ static void put_pipe_info(struct inode *inode, struct pipe_inode_info *pipe)
81933 int kill = 0;
81934
81935 spin_lock(&inode->i_lock);
81936 - if (!--pipe->files) {
81937 + if (atomic_dec_and_test(&pipe->files)) {
81938 inode->i_pipe = NULL;
81939 kill = 1;
81940 }
81941 @@ -550,11 +550,11 @@ pipe_release(struct inode *inode, struct file *file)
81942
81943 __pipe_lock(pipe);
81944 if (file->f_mode & FMODE_READ)
81945 - pipe->readers--;
81946 + atomic_dec(&pipe->readers);
81947 if (file->f_mode & FMODE_WRITE)
81948 - pipe->writers--;
81949 + atomic_dec(&pipe->writers);
81950
81951 - if (pipe->readers || pipe->writers) {
81952 + if (atomic_read(&pipe->readers) || atomic_read(&pipe->writers)) {
81953 wake_up_interruptible_sync_poll(&pipe->wait, POLLIN | POLLOUT | POLLRDNORM | POLLWRNORM | POLLERR | POLLHUP);
81954 kill_fasync(&pipe->fasync_readers, SIGIO, POLL_IN);
81955 kill_fasync(&pipe->fasync_writers, SIGIO, POLL_OUT);
81956 @@ -619,7 +619,7 @@ void free_pipe_info(struct pipe_inode_info *pipe)
81957 kfree(pipe);
81958 }
81959
81960 -static struct vfsmount *pipe_mnt __read_mostly;
81961 +struct vfsmount *pipe_mnt __read_mostly;
81962
81963 /*
81964 * pipefs_dname() is called from d_path().
81965 @@ -649,8 +649,9 @@ static struct inode * get_pipe_inode(void)
81966 goto fail_iput;
81967
81968 inode->i_pipe = pipe;
81969 - pipe->files = 2;
81970 - pipe->readers = pipe->writers = 1;
81971 + atomic_set(&pipe->files, 2);
81972 + atomic_set(&pipe->readers, 1);
81973 + atomic_set(&pipe->writers, 1);
81974 inode->i_fop = &pipefifo_fops;
81975
81976 /*
81977 @@ -829,17 +830,17 @@ static int fifo_open(struct inode *inode, struct file *filp)
81978 spin_lock(&inode->i_lock);
81979 if (inode->i_pipe) {
81980 pipe = inode->i_pipe;
81981 - pipe->files++;
81982 + atomic_inc(&pipe->files);
81983 spin_unlock(&inode->i_lock);
81984 } else {
81985 spin_unlock(&inode->i_lock);
81986 pipe = alloc_pipe_info();
81987 if (!pipe)
81988 return -ENOMEM;
81989 - pipe->files = 1;
81990 + atomic_set(&pipe->files, 1);
81991 spin_lock(&inode->i_lock);
81992 if (unlikely(inode->i_pipe)) {
81993 - inode->i_pipe->files++;
81994 + atomic_inc(&inode->i_pipe->files);
81995 spin_unlock(&inode->i_lock);
81996 free_pipe_info(pipe);
81997 pipe = inode->i_pipe;
81998 @@ -864,10 +865,10 @@ static int fifo_open(struct inode *inode, struct file *filp)
81999 * opened, even when there is no process writing the FIFO.
82000 */
82001 pipe->r_counter++;
82002 - if (pipe->readers++ == 0)
82003 + if (atomic_inc_return(&pipe->readers) == 1)
82004 wake_up_partner(pipe);
82005
82006 - if (!is_pipe && !pipe->writers) {
82007 + if (!is_pipe && !atomic_read(&pipe->writers)) {
82008 if ((filp->f_flags & O_NONBLOCK)) {
82009 /* suppress POLLHUP until we have
82010 * seen a writer */
82011 @@ -886,14 +887,14 @@ static int fifo_open(struct inode *inode, struct file *filp)
82012 * errno=ENXIO when there is no process reading the FIFO.
82013 */
82014 ret = -ENXIO;
82015 - if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !pipe->readers)
82016 + if (!is_pipe && (filp->f_flags & O_NONBLOCK) && !atomic_read(&pipe->readers))
82017 goto err;
82018
82019 pipe->w_counter++;
82020 - if (!pipe->writers++)
82021 + if (atomic_inc_return(&pipe->writers) == 1)
82022 wake_up_partner(pipe);
82023
82024 - if (!is_pipe && !pipe->readers) {
82025 + if (!is_pipe && !atomic_read(&pipe->readers)) {
82026 if (wait_for_partner(pipe, &pipe->r_counter))
82027 goto err_wr;
82028 }
82029 @@ -907,11 +908,11 @@ static int fifo_open(struct inode *inode, struct file *filp)
82030 * the process can at least talk to itself.
82031 */
82032
82033 - pipe->readers++;
82034 - pipe->writers++;
82035 + atomic_inc(&pipe->readers);
82036 + atomic_inc(&pipe->writers);
82037 pipe->r_counter++;
82038 pipe->w_counter++;
82039 - if (pipe->readers == 1 || pipe->writers == 1)
82040 + if (atomic_read(&pipe->readers) == 1 || atomic_read(&pipe->writers) == 1)
82041 wake_up_partner(pipe);
82042 break;
82043
82044 @@ -925,13 +926,13 @@ static int fifo_open(struct inode *inode, struct file *filp)
82045 return 0;
82046
82047 err_rd:
82048 - if (!--pipe->readers)
82049 + if (atomic_dec_and_test(&pipe->readers))
82050 wake_up_interruptible(&pipe->wait);
82051 ret = -ERESTARTSYS;
82052 goto err;
82053
82054 err_wr:
82055 - if (!--pipe->writers)
82056 + if (atomic_dec_and_test(&pipe->writers))
82057 wake_up_interruptible(&pipe->wait);
82058 ret = -ERESTARTSYS;
82059 goto err;
82060 @@ -1007,7 +1008,7 @@ static long pipe_set_size(struct pipe_inode_info *pipe, unsigned long nr_pages)
82061 * Currently we rely on the pipe array holding a power-of-2 number
82062 * of pages.
82063 */
82064 -static inline unsigned int round_pipe_size(unsigned int size)
82065 +static inline unsigned long round_pipe_size(unsigned long size)
82066 {
82067 unsigned long nr_pages;
82068
82069 @@ -1055,13 +1056,16 @@ long pipe_fcntl(struct file *file, unsigned int cmd, unsigned long arg)
82070
82071 switch (cmd) {
82072 case F_SETPIPE_SZ: {
82073 - unsigned int size, nr_pages;
82074 + unsigned long size, nr_pages;
82075 +
82076 + ret = -EINVAL;
82077 + if (arg < pipe_min_size)
82078 + goto out;
82079
82080 size = round_pipe_size(arg);
82081 nr_pages = size >> PAGE_SHIFT;
82082
82083 - ret = -EINVAL;
82084 - if (!nr_pages)
82085 + if (size < pipe_min_size)
82086 goto out;
82087
82088 if (!capable(CAP_SYS_RESOURCE) && size > pipe_max_size) {
82089 diff --git a/fs/posix_acl.c b/fs/posix_acl.c
82090 index 4fb17de..13d8c0f 100644
82091 --- a/fs/posix_acl.c
82092 +++ b/fs/posix_acl.c
82093 @@ -20,6 +20,7 @@
82094 #include <linux/xattr.h>
82095 #include <linux/export.h>
82096 #include <linux/user_namespace.h>
82097 +#include <linux/grsecurity.h>
82098
82099 struct posix_acl **acl_by_type(struct inode *inode, int type)
82100 {
82101 @@ -277,7 +278,7 @@ posix_acl_equiv_mode(const struct posix_acl *acl, umode_t *mode_p)
82102 }
82103 }
82104 if (mode_p)
82105 - *mode_p = (*mode_p & ~S_IRWXUGO) | mode;
82106 + *mode_p = ((*mode_p & ~S_IRWXUGO) | mode) & ~gr_acl_umask();
82107 return not_equiv;
82108 }
82109 EXPORT_SYMBOL(posix_acl_equiv_mode);
82110 @@ -427,7 +428,7 @@ static int posix_acl_create_masq(struct posix_acl *acl, umode_t *mode_p)
82111 mode &= (group_obj->e_perm << 3) | ~S_IRWXG;
82112 }
82113
82114 - *mode_p = (*mode_p & ~S_IRWXUGO) | mode;
82115 + *mode_p = ((*mode_p & ~S_IRWXUGO) | mode) & ~gr_acl_umask();
82116 return not_equiv;
82117 }
82118
82119 @@ -485,6 +486,8 @@ __posix_acl_create(struct posix_acl **acl, gfp_t gfp, umode_t *mode_p)
82120 struct posix_acl *clone = posix_acl_clone(*acl, gfp);
82121 int err = -ENOMEM;
82122 if (clone) {
82123 + *mode_p &= ~gr_acl_umask();
82124 +
82125 err = posix_acl_create_masq(clone, mode_p);
82126 if (err < 0) {
82127 posix_acl_release(clone);
82128 @@ -657,11 +660,12 @@ struct posix_acl *
82129 posix_acl_from_xattr(struct user_namespace *user_ns,
82130 const void *value, size_t size)
82131 {
82132 - posix_acl_xattr_header *header = (posix_acl_xattr_header *)value;
82133 - posix_acl_xattr_entry *entry = (posix_acl_xattr_entry *)(header+1), *end;
82134 + const posix_acl_xattr_header *header = (const posix_acl_xattr_header *)value;
82135 + const posix_acl_xattr_entry *entry = (const posix_acl_xattr_entry *)(header+1), *end;
82136 int count;
82137 struct posix_acl *acl;
82138 struct posix_acl_entry *acl_e;
82139 + umode_t umask = gr_acl_umask();
82140
82141 if (!value)
82142 return NULL;
82143 @@ -687,12 +691,18 @@ posix_acl_from_xattr(struct user_namespace *user_ns,
82144
82145 switch(acl_e->e_tag) {
82146 case ACL_USER_OBJ:
82147 + acl_e->e_perm &= ~((umask & S_IRWXU) >> 6);
82148 + break;
82149 case ACL_GROUP_OBJ:
82150 case ACL_MASK:
82151 + acl_e->e_perm &= ~((umask & S_IRWXG) >> 3);
82152 + break;
82153 case ACL_OTHER:
82154 + acl_e->e_perm &= ~(umask & S_IRWXO);
82155 break;
82156
82157 case ACL_USER:
82158 + acl_e->e_perm &= ~((umask & S_IRWXU) >> 6);
82159 acl_e->e_uid =
82160 make_kuid(user_ns,
82161 le32_to_cpu(entry->e_id));
82162 @@ -700,6 +710,7 @@ posix_acl_from_xattr(struct user_namespace *user_ns,
82163 goto fail;
82164 break;
82165 case ACL_GROUP:
82166 + acl_e->e_perm &= ~((umask & S_IRWXG) >> 3);
82167 acl_e->e_gid =
82168 make_kgid(user_ns,
82169 le32_to_cpu(entry->e_id));
82170 diff --git a/fs/proc/Kconfig b/fs/proc/Kconfig
82171 index 1ade120..a86f1a2 100644
82172 --- a/fs/proc/Kconfig
82173 +++ b/fs/proc/Kconfig
82174 @@ -30,7 +30,7 @@ config PROC_FS
82175
82176 config PROC_KCORE
82177 bool "/proc/kcore support" if !ARM
82178 - depends on PROC_FS && MMU
82179 + depends on PROC_FS && MMU && !GRKERNSEC_PROC_ADD
82180 help
82181 Provides a virtual ELF core file of the live kernel. This can
82182 be read with gdb and other ELF tools. No modifications can be
82183 @@ -38,8 +38,8 @@ config PROC_KCORE
82184
82185 config PROC_VMCORE
82186 bool "/proc/vmcore support"
82187 - depends on PROC_FS && CRASH_DUMP
82188 - default y
82189 + depends on PROC_FS && CRASH_DUMP && !GRKERNSEC
82190 + default n
82191 help
82192 Exports the dump image of crashed kernel in ELF format.
82193
82194 @@ -63,8 +63,8 @@ config PROC_SYSCTL
82195 limited in memory.
82196
82197 config PROC_PAGE_MONITOR
82198 - default y
82199 - depends on PROC_FS && MMU
82200 + default n
82201 + depends on PROC_FS && MMU && !GRKERNSEC
82202 bool "Enable /proc page monitoring" if EXPERT
82203 help
82204 Various /proc files exist to monitor process memory utilization:
82205 diff --git a/fs/proc/array.c b/fs/proc/array.c
82206 index ce065cf..8974fed 100644
82207 --- a/fs/proc/array.c
82208 +++ b/fs/proc/array.c
82209 @@ -60,6 +60,7 @@
82210 #include <linux/tty.h>
82211 #include <linux/string.h>
82212 #include <linux/mman.h>
82213 +#include <linux/grsecurity.h>
82214 #include <linux/proc_fs.h>
82215 #include <linux/ioport.h>
82216 #include <linux/uaccess.h>
82217 @@ -348,6 +349,21 @@ static void task_cpus_allowed(struct seq_file *m, struct task_struct *task)
82218 cpumask_pr_args(&task->cpus_allowed));
82219 }
82220
82221 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
82222 +static inline void task_pax(struct seq_file *m, struct task_struct *p)
82223 +{
82224 + if (p->mm)
82225 + seq_printf(m, "PaX:\t%c%c%c%c%c\n",
82226 + p->mm->pax_flags & MF_PAX_PAGEEXEC ? 'P' : 'p',
82227 + p->mm->pax_flags & MF_PAX_EMUTRAMP ? 'E' : 'e',
82228 + p->mm->pax_flags & MF_PAX_MPROTECT ? 'M' : 'm',
82229 + p->mm->pax_flags & MF_PAX_RANDMMAP ? 'R' : 'r',
82230 + p->mm->pax_flags & MF_PAX_SEGMEXEC ? 'S' : 's');
82231 + else
82232 + seq_printf(m, "PaX:\t-----\n");
82233 +}
82234 +#endif
82235 +
82236 int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
82237 struct pid *pid, struct task_struct *task)
82238 {
82239 @@ -366,9 +382,24 @@ int proc_pid_status(struct seq_file *m, struct pid_namespace *ns,
82240 task_cpus_allowed(m, task);
82241 cpuset_task_status_allowed(m, task);
82242 task_context_switch_counts(m, task);
82243 +
82244 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
82245 + task_pax(m, task);
82246 +#endif
82247 +
82248 +#if defined(CONFIG_GRKERNSEC) && !defined(CONFIG_GRKERNSEC_NO_RBAC)
82249 + task_grsec_rbac(m, task);
82250 +#endif
82251 +
82252 return 0;
82253 }
82254
82255 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82256 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
82257 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
82258 + _mm->pax_flags & MF_PAX_SEGMEXEC))
82259 +#endif
82260 +
82261 static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82262 struct pid *pid, struct task_struct *task, int whole)
82263 {
82264 @@ -390,6 +421,13 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82265 char tcomm[sizeof(task->comm)];
82266 unsigned long flags;
82267
82268 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82269 + if (current->exec_id != m->exec_id) {
82270 + gr_log_badprocpid("stat");
82271 + return 0;
82272 + }
82273 +#endif
82274 +
82275 state = *get_task_state(task);
82276 vsize = eip = esp = 0;
82277 permitted = ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT);
82278 @@ -460,6 +498,19 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82279 gtime = task_gtime(task);
82280 }
82281
82282 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82283 + if (PAX_RAND_FLAGS(mm)) {
82284 + eip = 0;
82285 + esp = 0;
82286 + wchan = 0;
82287 + }
82288 +#endif
82289 +#ifdef CONFIG_GRKERNSEC_HIDESYM
82290 + wchan = 0;
82291 + eip =0;
82292 + esp =0;
82293 +#endif
82294 +
82295 /* scale priority and nice values from timeslices to -20..20 */
82296 /* to make it look like a "normal" Unix priority/nice value */
82297 priority = task_prio(task);
82298 @@ -491,9 +542,15 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82299 seq_put_decimal_ull(m, ' ', vsize);
82300 seq_put_decimal_ull(m, ' ', mm ? get_mm_rss(mm) : 0);
82301 seq_put_decimal_ull(m, ' ', rsslim);
82302 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82303 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->start_code : 1) : 0));
82304 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 1 : (mm ? (permitted ? mm->end_code : 1) : 0));
82305 + seq_put_decimal_ull(m, ' ', PAX_RAND_FLAGS(mm) ? 0 : ((permitted && mm) ? mm->start_stack : 0));
82306 +#else
82307 seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->start_code : 1) : 0);
82308 seq_put_decimal_ull(m, ' ', mm ? (permitted ? mm->end_code : 1) : 0);
82309 seq_put_decimal_ull(m, ' ', (permitted && mm) ? mm->start_stack : 0);
82310 +#endif
82311 seq_put_decimal_ull(m, ' ', esp);
82312 seq_put_decimal_ull(m, ' ', eip);
82313 /* The signal information here is obsolete.
82314 @@ -515,7 +572,11 @@ static int do_task_stat(struct seq_file *m, struct pid_namespace *ns,
82315 seq_put_decimal_ull(m, ' ', cputime_to_clock_t(gtime));
82316 seq_put_decimal_ll(m, ' ', cputime_to_clock_t(cgtime));
82317
82318 - if (mm && permitted) {
82319 + if (mm && permitted
82320 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82321 + && !PAX_RAND_FLAGS(mm)
82322 +#endif
82323 + ) {
82324 seq_put_decimal_ull(m, ' ', mm->start_data);
82325 seq_put_decimal_ull(m, ' ', mm->end_data);
82326 seq_put_decimal_ull(m, ' ', mm->start_brk);
82327 @@ -553,8 +614,15 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
82328 struct pid *pid, struct task_struct *task)
82329 {
82330 unsigned long size = 0, resident = 0, shared = 0, text = 0, data = 0;
82331 - struct mm_struct *mm = get_task_mm(task);
82332 + struct mm_struct *mm;
82333
82334 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82335 + if (current->exec_id != m->exec_id) {
82336 + gr_log_badprocpid("statm");
82337 + return 0;
82338 + }
82339 +#endif
82340 + mm = get_task_mm(task);
82341 if (mm) {
82342 size = task_statm(mm, &shared, &text, &data, &resident);
82343 mmput(mm);
82344 @@ -577,6 +645,20 @@ int proc_pid_statm(struct seq_file *m, struct pid_namespace *ns,
82345 return 0;
82346 }
82347
82348 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
82349 +int proc_pid_ipaddr(struct seq_file *m, struct pid_namespace *ns, struct pid *pid, struct task_struct *task)
82350 +{
82351 + unsigned long flags;
82352 + u32 curr_ip = 0;
82353 +
82354 + if (lock_task_sighand(task, &flags)) {
82355 + curr_ip = task->signal->curr_ip;
82356 + unlock_task_sighand(task, &flags);
82357 + }
82358 + return seq_printf(m, "%pI4\n", &curr_ip);
82359 +}
82360 +#endif
82361 +
82362 #ifdef CONFIG_PROC_CHILDREN
82363 static struct pid *
82364 get_children_pid(struct inode *inode, struct pid *pid_prev, loff_t pos)
82365 diff --git a/fs/proc/base.c b/fs/proc/base.c
82366 index aa50d1a..7a62b7a 100644
82367 --- a/fs/proc/base.c
82368 +++ b/fs/proc/base.c
82369 @@ -113,6 +113,14 @@ struct pid_entry {
82370 union proc_op op;
82371 };
82372
82373 +struct getdents_callback {
82374 + struct linux_dirent __user * current_dir;
82375 + struct linux_dirent __user * previous;
82376 + struct file * file;
82377 + int count;
82378 + int error;
82379 +};
82380 +
82381 #define NOD(NAME, MODE, IOP, FOP, OP) { \
82382 .name = (NAME), \
82383 .len = sizeof(NAME) - 1, \
82384 @@ -224,6 +232,11 @@ static ssize_t proc_pid_cmdline_read(struct file *file, char __user *buf,
82385 goto out_mmput;
82386 }
82387
82388 + if (gr_acl_handle_procpidmem(tsk)) {
82389 + rv = 0;
82390 + goto out_mmput;
82391 + }
82392 +
82393 page = (char *)__get_free_page(GFP_TEMPORARY);
82394 if (!page) {
82395 rv = -ENOMEM;
82396 @@ -400,12 +413,28 @@ static const struct file_operations proc_pid_cmdline_ops = {
82397 .llseek = generic_file_llseek,
82398 };
82399
82400 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82401 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
82402 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
82403 + _mm->pax_flags & MF_PAX_SEGMEXEC))
82404 +#endif
82405 +
82406 static int proc_pid_auxv(struct seq_file *m, struct pid_namespace *ns,
82407 struct pid *pid, struct task_struct *task)
82408 {
82409 struct mm_struct *mm = mm_access(task, PTRACE_MODE_READ);
82410 if (mm && !IS_ERR(mm)) {
82411 unsigned int nwords = 0;
82412 +
82413 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82414 + /* allow if we're currently ptracing this task */
82415 + if (PAX_RAND_FLAGS(mm) &&
82416 + (!(task->ptrace & PT_PTRACED) || (task->parent != current))) {
82417 + mmput(mm);
82418 + return 0;
82419 + }
82420 +#endif
82421 +
82422 do {
82423 nwords += 2;
82424 } while (mm->saved_auxv[nwords - 2] != 0); /* AT_NULL */
82425 @@ -417,7 +446,7 @@ static int proc_pid_auxv(struct seq_file *m, struct pid_namespace *ns,
82426 }
82427
82428
82429 -#ifdef CONFIG_KALLSYMS
82430 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
82431 /*
82432 * Provides a wchan file via kallsyms in a proper one-value-per-file format.
82433 * Returns the resolved symbol. If that fails, simply return the address.
82434 @@ -459,7 +488,7 @@ static void unlock_trace(struct task_struct *task)
82435 mutex_unlock(&task->signal->cred_guard_mutex);
82436 }
82437
82438 -#ifdef CONFIG_STACKTRACE
82439 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
82440
82441 #define MAX_STACK_TRACE_DEPTH 64
82442
82443 @@ -657,7 +686,7 @@ static int proc_pid_limits(struct seq_file *m, struct pid_namespace *ns,
82444 return 0;
82445 }
82446
82447 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
82448 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
82449 static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
82450 struct pid *pid, struct task_struct *task)
82451 {
82452 @@ -690,7 +719,7 @@ static int proc_pid_syscall(struct seq_file *m, struct pid_namespace *ns,
82453 /************************************************************************/
82454
82455 /* permission checks */
82456 -static int proc_fd_access_allowed(struct inode *inode)
82457 +static int proc_fd_access_allowed(struct inode *inode, unsigned int log)
82458 {
82459 struct task_struct *task;
82460 int allowed = 0;
82461 @@ -700,7 +729,10 @@ static int proc_fd_access_allowed(struct inode *inode)
82462 */
82463 task = get_proc_task(inode);
82464 if (task) {
82465 - allowed = ptrace_may_access(task, PTRACE_MODE_READ);
82466 + if (log)
82467 + allowed = ptrace_may_access(task, PTRACE_MODE_READ);
82468 + else
82469 + allowed = ptrace_may_access(task, PTRACE_MODE_READ | PTRACE_MODE_NOAUDIT);
82470 put_task_struct(task);
82471 }
82472 return allowed;
82473 @@ -731,10 +763,35 @@ static bool has_pid_permissions(struct pid_namespace *pid,
82474 struct task_struct *task,
82475 int hide_pid_min)
82476 {
82477 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
82478 + return false;
82479 +
82480 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
82481 + rcu_read_lock();
82482 + {
82483 + const struct cred *tmpcred = current_cred();
82484 + const struct cred *cred = __task_cred(task);
82485 +
82486 + if (uid_eq(tmpcred->uid, GLOBAL_ROOT_UID) || uid_eq(tmpcred->uid, cred->uid)
82487 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
82488 + || in_group_p(grsec_proc_gid)
82489 +#endif
82490 + ) {
82491 + rcu_read_unlock();
82492 + return true;
82493 + }
82494 + }
82495 + rcu_read_unlock();
82496 +
82497 + if (!pid->hide_pid)
82498 + return false;
82499 +#endif
82500 +
82501 if (pid->hide_pid < hide_pid_min)
82502 return true;
82503 if (in_group_p(pid->pid_gid))
82504 return true;
82505 +
82506 return ptrace_may_access(task, PTRACE_MODE_READ);
82507 }
82508
82509 @@ -752,7 +809,11 @@ static int proc_pid_permission(struct inode *inode, int mask)
82510 put_task_struct(task);
82511
82512 if (!has_perms) {
82513 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
82514 + {
82515 +#else
82516 if (pid->hide_pid == 2) {
82517 +#endif
82518 /*
82519 * Let's make getdents(), stat(), and open()
82520 * consistent with each other. If a process
82521 @@ -813,6 +874,10 @@ struct mm_struct *proc_mem_open(struct inode *inode, unsigned int mode)
82522
82523 if (task) {
82524 mm = mm_access(task, mode);
82525 + if (!IS_ERR_OR_NULL(mm) && gr_acl_handle_procpidmem(task)) {
82526 + mmput(mm);
82527 + mm = ERR_PTR(-EPERM);
82528 + }
82529 put_task_struct(task);
82530
82531 if (!IS_ERR_OR_NULL(mm)) {
82532 @@ -834,6 +899,11 @@ static int __mem_open(struct inode *inode, struct file *file, unsigned int mode)
82533 return PTR_ERR(mm);
82534
82535 file->private_data = mm;
82536 +
82537 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82538 + file->f_version = current->exec_id;
82539 +#endif
82540 +
82541 return 0;
82542 }
82543
82544 @@ -855,6 +925,17 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
82545 ssize_t copied;
82546 char *page;
82547
82548 +#ifdef CONFIG_GRKERNSEC
82549 + if (write)
82550 + return -EPERM;
82551 +#endif
82552 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82553 + if (file->f_version != current->exec_id) {
82554 + gr_log_badprocpid("mem");
82555 + return 0;
82556 + }
82557 +#endif
82558 +
82559 if (!mm)
82560 return 0;
82561
82562 @@ -867,7 +948,7 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
82563 goto free;
82564
82565 while (count > 0) {
82566 - int this_len = min_t(int, count, PAGE_SIZE);
82567 + ssize_t this_len = min_t(ssize_t, count, PAGE_SIZE);
82568
82569 if (write && copy_from_user(page, buf, this_len)) {
82570 copied = -EFAULT;
82571 @@ -959,6 +1040,13 @@ static ssize_t environ_read(struct file *file, char __user *buf,
82572 if (!mm)
82573 return 0;
82574
82575 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
82576 + if (file->f_version != current->exec_id) {
82577 + gr_log_badprocpid("environ");
82578 + return 0;
82579 + }
82580 +#endif
82581 +
82582 page = (char *)__get_free_page(GFP_TEMPORARY);
82583 if (!page)
82584 return -ENOMEM;
82585 @@ -968,7 +1056,7 @@ static ssize_t environ_read(struct file *file, char __user *buf,
82586 goto free;
82587 while (count > 0) {
82588 size_t this_len, max_len;
82589 - int retval;
82590 + ssize_t retval;
82591
82592 if (src >= (mm->env_end - mm->env_start))
82593 break;
82594 @@ -1582,7 +1670,7 @@ static const char *proc_pid_follow_link(struct dentry *dentry, void **cookie)
82595 int error = -EACCES;
82596
82597 /* Are we allowed to snoop on the tasks file descriptors? */
82598 - if (!proc_fd_access_allowed(inode))
82599 + if (!proc_fd_access_allowed(inode, 0))
82600 goto out;
82601
82602 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
82603 @@ -1626,8 +1714,18 @@ static int proc_pid_readlink(struct dentry * dentry, char __user * buffer, int b
82604 struct path path;
82605
82606 /* Are we allowed to snoop on the tasks file descriptors? */
82607 - if (!proc_fd_access_allowed(inode))
82608 - goto out;
82609 + /* logging this is needed for learning on chromium to work properly,
82610 + but we don't want to flood the logs from 'ps' which does a readlink
82611 + on /proc/fd/2 of tasks in the listing, nor do we want 'ps' to learn
82612 + CAP_SYS_PTRACE as it's not necessary for its basic functionality
82613 + */
82614 + if (dentry->d_name.name[0] == '2' && dentry->d_name.name[1] == '\0') {
82615 + if (!proc_fd_access_allowed(inode,0))
82616 + goto out;
82617 + } else {
82618 + if (!proc_fd_access_allowed(inode,1))
82619 + goto out;
82620 + }
82621
82622 error = PROC_I(inode)->op.proc_get_link(dentry, &path);
82623 if (error)
82624 @@ -1677,7 +1775,11 @@ struct inode *proc_pid_make_inode(struct super_block * sb, struct task_struct *t
82625 rcu_read_lock();
82626 cred = __task_cred(task);
82627 inode->i_uid = cred->euid;
82628 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
82629 + inode->i_gid = grsec_proc_gid;
82630 +#else
82631 inode->i_gid = cred->egid;
82632 +#endif
82633 rcu_read_unlock();
82634 }
82635 security_task_to_inode(task, inode);
82636 @@ -1713,10 +1815,19 @@ int pid_getattr(struct vfsmount *mnt, struct dentry *dentry, struct kstat *stat)
82637 return -ENOENT;
82638 }
82639 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
82640 +#ifdef CONFIG_GRKERNSEC_PROC_USER
82641 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IXUSR)) ||
82642 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
82643 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP)) ||
82644 +#endif
82645 task_dumpable(task)) {
82646 cred = __task_cred(task);
82647 stat->uid = cred->euid;
82648 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
82649 + stat->gid = grsec_proc_gid;
82650 +#else
82651 stat->gid = cred->egid;
82652 +#endif
82653 }
82654 }
82655 rcu_read_unlock();
82656 @@ -1754,11 +1865,20 @@ int pid_revalidate(struct dentry *dentry, unsigned int flags)
82657
82658 if (task) {
82659 if ((inode->i_mode == (S_IFDIR|S_IRUGO|S_IXUGO)) ||
82660 +#ifdef CONFIG_GRKERNSEC_PROC_USER
82661 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IXUSR)) ||
82662 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
82663 + (inode->i_mode == (S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP)) ||
82664 +#endif
82665 task_dumpable(task)) {
82666 rcu_read_lock();
82667 cred = __task_cred(task);
82668 inode->i_uid = cred->euid;
82669 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
82670 + inode->i_gid = grsec_proc_gid;
82671 +#else
82672 inode->i_gid = cred->egid;
82673 +#endif
82674 rcu_read_unlock();
82675 } else {
82676 inode->i_uid = GLOBAL_ROOT_UID;
82677 @@ -2290,6 +2410,9 @@ static struct dentry *proc_pident_lookup(struct inode *dir,
82678 if (!task)
82679 goto out_no_task;
82680
82681 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
82682 + goto out;
82683 +
82684 /*
82685 * Yes, it does not scale. And it should not. Don't add
82686 * new entries into /proc/<tgid>/ without very good reasons.
82687 @@ -2320,6 +2443,9 @@ static int proc_pident_readdir(struct file *file, struct dir_context *ctx,
82688 if (!task)
82689 return -ENOENT;
82690
82691 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
82692 + goto out;
82693 +
82694 if (!dir_emit_dots(file, ctx))
82695 goto out;
82696
82697 @@ -2764,7 +2890,7 @@ static const struct pid_entry tgid_base_stuff[] = {
82698 REG("autogroup", S_IRUGO|S_IWUSR, proc_pid_sched_autogroup_operations),
82699 #endif
82700 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
82701 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
82702 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
82703 ONE("syscall", S_IRUSR, proc_pid_syscall),
82704 #endif
82705 REG("cmdline", S_IRUGO, proc_pid_cmdline_ops),
82706 @@ -2789,10 +2915,10 @@ static const struct pid_entry tgid_base_stuff[] = {
82707 #ifdef CONFIG_SECURITY
82708 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
82709 #endif
82710 -#ifdef CONFIG_KALLSYMS
82711 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
82712 ONE("wchan", S_IRUGO, proc_pid_wchan),
82713 #endif
82714 -#ifdef CONFIG_STACKTRACE
82715 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
82716 ONE("stack", S_IRUSR, proc_pid_stack),
82717 #endif
82718 #ifdef CONFIG_SCHED_INFO
82719 @@ -2826,6 +2952,9 @@ static const struct pid_entry tgid_base_stuff[] = {
82720 #ifdef CONFIG_HARDWALL
82721 ONE("hardwall", S_IRUGO, proc_pid_hardwall),
82722 #endif
82723 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
82724 + ONE("ipaddr", S_IRUSR, proc_pid_ipaddr),
82725 +#endif
82726 #ifdef CONFIG_USER_NS
82727 REG("uid_map", S_IRUGO|S_IWUSR, proc_uid_map_operations),
82728 REG("gid_map", S_IRUGO|S_IWUSR, proc_gid_map_operations),
82729 @@ -2958,7 +3087,14 @@ static int proc_pid_instantiate(struct inode *dir,
82730 if (!inode)
82731 goto out;
82732
82733 +#ifdef CONFIG_GRKERNSEC_PROC_USER
82734 + inode->i_mode = S_IFDIR|S_IRUSR|S_IXUSR;
82735 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
82736 + inode->i_gid = grsec_proc_gid;
82737 + inode->i_mode = S_IFDIR|S_IRUSR|S_IRGRP|S_IXUSR|S_IXGRP;
82738 +#else
82739 inode->i_mode = S_IFDIR|S_IRUGO|S_IXUGO;
82740 +#endif
82741 inode->i_op = &proc_tgid_base_inode_operations;
82742 inode->i_fop = &proc_tgid_base_operations;
82743 inode->i_flags|=S_IMMUTABLE;
82744 @@ -2996,7 +3132,11 @@ struct dentry *proc_pid_lookup(struct inode *dir, struct dentry * dentry, unsign
82745 if (!task)
82746 goto out;
82747
82748 + if (gr_pid_is_chrooted(task) || gr_check_hidden_task(task))
82749 + goto out_put_task;
82750 +
82751 result = proc_pid_instantiate(dir, dentry, task, NULL);
82752 +out_put_task:
82753 put_task_struct(task);
82754 out:
82755 return ERR_PTR(result);
82756 @@ -3110,7 +3250,7 @@ static const struct pid_entry tid_base_stuff[] = {
82757 REG("sched", S_IRUGO|S_IWUSR, proc_pid_sched_operations),
82758 #endif
82759 REG("comm", S_IRUGO|S_IWUSR, proc_pid_set_comm_operations),
82760 -#ifdef CONFIG_HAVE_ARCH_TRACEHOOK
82761 +#if defined(CONFIG_HAVE_ARCH_TRACEHOOK) && !defined(CONFIG_GRKERNSEC_PROC_MEMMAP)
82762 ONE("syscall", S_IRUSR, proc_pid_syscall),
82763 #endif
82764 REG("cmdline", S_IRUGO, proc_pid_cmdline_ops),
82765 @@ -3137,10 +3277,10 @@ static const struct pid_entry tid_base_stuff[] = {
82766 #ifdef CONFIG_SECURITY
82767 DIR("attr", S_IRUGO|S_IXUGO, proc_attr_dir_inode_operations, proc_attr_dir_operations),
82768 #endif
82769 -#ifdef CONFIG_KALLSYMS
82770 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
82771 ONE("wchan", S_IRUGO, proc_pid_wchan),
82772 #endif
82773 -#ifdef CONFIG_STACKTRACE
82774 +#if defined(CONFIG_STACKTRACE) && !defined(CONFIG_GRKERNSEC_HIDESYM)
82775 ONE("stack", S_IRUSR, proc_pid_stack),
82776 #endif
82777 #ifdef CONFIG_SCHED_INFO
82778 diff --git a/fs/proc/cmdline.c b/fs/proc/cmdline.c
82779 index cbd82df..c0407d2 100644
82780 --- a/fs/proc/cmdline.c
82781 +++ b/fs/proc/cmdline.c
82782 @@ -23,7 +23,11 @@ static const struct file_operations cmdline_proc_fops = {
82783
82784 static int __init proc_cmdline_init(void)
82785 {
82786 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
82787 + proc_create_grsec("cmdline", 0, NULL, &cmdline_proc_fops);
82788 +#else
82789 proc_create("cmdline", 0, NULL, &cmdline_proc_fops);
82790 +#endif
82791 return 0;
82792 }
82793 fs_initcall(proc_cmdline_init);
82794 diff --git a/fs/proc/devices.c b/fs/proc/devices.c
82795 index 50493ed..248166b 100644
82796 --- a/fs/proc/devices.c
82797 +++ b/fs/proc/devices.c
82798 @@ -64,7 +64,11 @@ static const struct file_operations proc_devinfo_operations = {
82799
82800 static int __init proc_devices_init(void)
82801 {
82802 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
82803 + proc_create_grsec("devices", 0, NULL, &proc_devinfo_operations);
82804 +#else
82805 proc_create("devices", 0, NULL, &proc_devinfo_operations);
82806 +#endif
82807 return 0;
82808 }
82809 fs_initcall(proc_devices_init);
82810 diff --git a/fs/proc/fd.c b/fs/proc/fd.c
82811 index 6e5fcd0..06ea074 100644
82812 --- a/fs/proc/fd.c
82813 +++ b/fs/proc/fd.c
82814 @@ -27,7 +27,8 @@ static int seq_show(struct seq_file *m, void *v)
82815 if (!task)
82816 return -ENOENT;
82817
82818 - files = get_files_struct(task);
82819 + if (!gr_acl_handle_procpidmem(task))
82820 + files = get_files_struct(task);
82821 put_task_struct(task);
82822
82823 if (files) {
82824 @@ -291,11 +292,21 @@ static struct dentry *proc_lookupfd(struct inode *dir, struct dentry *dentry,
82825 */
82826 int proc_fd_permission(struct inode *inode, int mask)
82827 {
82828 + struct task_struct *task;
82829 int rv = generic_permission(inode, mask);
82830 - if (rv == 0)
82831 - return 0;
82832 +
82833 if (task_tgid(current) == proc_pid(inode))
82834 rv = 0;
82835 +
82836 + task = get_proc_task(inode);
82837 + if (task == NULL)
82838 + return rv;
82839 +
82840 + if (gr_acl_handle_procpidmem(task))
82841 + rv = -EACCES;
82842 +
82843 + put_task_struct(task);
82844 +
82845 return rv;
82846 }
82847
82848 diff --git a/fs/proc/generic.c b/fs/proc/generic.c
82849 index e5dee5c..dafe21b 100644
82850 --- a/fs/proc/generic.c
82851 +++ b/fs/proc/generic.c
82852 @@ -22,6 +22,7 @@
82853 #include <linux/bitops.h>
82854 #include <linux/spinlock.h>
82855 #include <linux/completion.h>
82856 +#include <linux/grsecurity.h>
82857 #include <asm/uaccess.h>
82858
82859 #include "internal.h"
82860 @@ -253,6 +254,15 @@ struct dentry *proc_lookup(struct inode *dir, struct dentry *dentry,
82861 return proc_lookup_de(PDE(dir), dir, dentry);
82862 }
82863
82864 +struct dentry *proc_lookup_restrict(struct inode *dir, struct dentry *dentry,
82865 + unsigned int flags)
82866 +{
82867 + if (gr_proc_is_restricted())
82868 + return ERR_PTR(-EACCES);
82869 +
82870 + return proc_lookup_de(PDE(dir), dir, dentry);
82871 +}
82872 +
82873 /*
82874 * This returns non-zero if at EOF, so that the /proc
82875 * root directory can use this and check if it should
82876 @@ -310,6 +320,16 @@ int proc_readdir(struct file *file, struct dir_context *ctx)
82877 return proc_readdir_de(PDE(inode), file, ctx);
82878 }
82879
82880 +int proc_readdir_restrict(struct file *file, struct dir_context *ctx)
82881 +{
82882 + struct inode *inode = file_inode(file);
82883 +
82884 + if (gr_proc_is_restricted())
82885 + return -EACCES;
82886 +
82887 + return proc_readdir_de(PDE(inode), file, ctx);
82888 +}
82889 +
82890 /*
82891 * These are the generic /proc directory operations. They
82892 * use the in-memory "struct proc_dir_entry" tree to parse
82893 @@ -321,6 +341,12 @@ static const struct file_operations proc_dir_operations = {
82894 .iterate = proc_readdir,
82895 };
82896
82897 +static const struct file_operations proc_dir_restricted_operations = {
82898 + .llseek = generic_file_llseek,
82899 + .read = generic_read_dir,
82900 + .iterate = proc_readdir_restrict,
82901 +};
82902 +
82903 /*
82904 * proc directories can do almost nothing..
82905 */
82906 @@ -330,6 +356,12 @@ static const struct inode_operations proc_dir_inode_operations = {
82907 .setattr = proc_notify_change,
82908 };
82909
82910 +static const struct inode_operations proc_dir_restricted_inode_operations = {
82911 + .lookup = proc_lookup_restrict,
82912 + .getattr = proc_getattr,
82913 + .setattr = proc_notify_change,
82914 +};
82915 +
82916 static int proc_register(struct proc_dir_entry * dir, struct proc_dir_entry * dp)
82917 {
82918 int ret;
82919 @@ -445,6 +477,31 @@ struct proc_dir_entry *proc_mkdir_data(const char *name, umode_t mode,
82920 }
82921 EXPORT_SYMBOL_GPL(proc_mkdir_data);
82922
82923 +struct proc_dir_entry *proc_mkdir_data_restrict(const char *name, umode_t mode,
82924 + struct proc_dir_entry *parent, void *data)
82925 +{
82926 + struct proc_dir_entry *ent;
82927 +
82928 + if (mode == 0)
82929 + mode = S_IRUGO | S_IXUGO;
82930 +
82931 + ent = __proc_create(&parent, name, S_IFDIR | mode, 2);
82932 + if (ent) {
82933 + ent->data = data;
82934 + ent->restricted = 1;
82935 + ent->proc_fops = &proc_dir_restricted_operations;
82936 + ent->proc_iops = &proc_dir_restricted_inode_operations;
82937 + parent->nlink++;
82938 + if (proc_register(parent, ent) < 0) {
82939 + kfree(ent);
82940 + parent->nlink--;
82941 + ent = NULL;
82942 + }
82943 + }
82944 + return ent;
82945 +}
82946 +EXPORT_SYMBOL_GPL(proc_mkdir_data_restrict);
82947 +
82948 struct proc_dir_entry *proc_mkdir_mode(const char *name, umode_t mode,
82949 struct proc_dir_entry *parent)
82950 {
82951 @@ -459,6 +516,13 @@ struct proc_dir_entry *proc_mkdir(const char *name,
82952 }
82953 EXPORT_SYMBOL(proc_mkdir);
82954
82955 +struct proc_dir_entry *proc_mkdir_restrict(const char *name,
82956 + struct proc_dir_entry *parent)
82957 +{
82958 + return proc_mkdir_data_restrict(name, 0, parent, NULL);
82959 +}
82960 +EXPORT_SYMBOL(proc_mkdir_restrict);
82961 +
82962 struct proc_dir_entry *proc_create_mount_point(const char *name)
82963 {
82964 umode_t mode = S_IFDIR | S_IRUGO | S_IXUGO;
82965 diff --git a/fs/proc/inode.c b/fs/proc/inode.c
82966 index bd95b9f..a64a773 100644
82967 --- a/fs/proc/inode.c
82968 +++ b/fs/proc/inode.c
82969 @@ -23,11 +23,17 @@
82970 #include <linux/slab.h>
82971 #include <linux/mount.h>
82972 #include <linux/magic.h>
82973 +#include <linux/grsecurity.h>
82974
82975 #include <asm/uaccess.h>
82976
82977 #include "internal.h"
82978
82979 +#ifdef CONFIG_PROC_SYSCTL
82980 +extern const struct inode_operations proc_sys_inode_operations;
82981 +extern const struct inode_operations proc_sys_dir_operations;
82982 +#endif
82983 +
82984 static void proc_evict_inode(struct inode *inode)
82985 {
82986 struct proc_dir_entry *de;
82987 @@ -48,6 +54,13 @@ static void proc_evict_inode(struct inode *inode)
82988 RCU_INIT_POINTER(PROC_I(inode)->sysctl, NULL);
82989 sysctl_head_put(head);
82990 }
82991 +
82992 +#ifdef CONFIG_PROC_SYSCTL
82993 + if (inode->i_op == &proc_sys_inode_operations ||
82994 + inode->i_op == &proc_sys_dir_operations)
82995 + gr_handle_delete(inode->i_ino, inode->i_sb->s_dev);
82996 +#endif
82997 +
82998 }
82999
83000 static struct kmem_cache * proc_inode_cachep;
83001 @@ -429,7 +442,11 @@ struct inode *proc_get_inode(struct super_block *sb, struct proc_dir_entry *de)
83002 if (de->mode) {
83003 inode->i_mode = de->mode;
83004 inode->i_uid = de->uid;
83005 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83006 + inode->i_gid = grsec_proc_gid;
83007 +#else
83008 inode->i_gid = de->gid;
83009 +#endif
83010 }
83011 if (de->size)
83012 inode->i_size = de->size;
83013 diff --git a/fs/proc/internal.h b/fs/proc/internal.h
83014 index aa27810..9f2d3b2 100644
83015 --- a/fs/proc/internal.h
83016 +++ b/fs/proc/internal.h
83017 @@ -47,9 +47,10 @@ struct proc_dir_entry {
83018 struct completion *pde_unload_completion;
83019 struct list_head pde_openers; /* who did ->open, but not ->release */
83020 spinlock_t pde_unload_lock; /* proc_fops checks and pde_users bumps */
83021 + u8 restricted; /* a directory in /proc/net that should be restricted via GRKERNSEC_PROC */
83022 u8 namelen;
83023 char name[];
83024 -};
83025 +} __randomize_layout;
83026
83027 union proc_op {
83028 int (*proc_get_link)(struct dentry *, struct path *);
83029 @@ -67,7 +68,7 @@ struct proc_inode {
83030 struct ctl_table *sysctl_entry;
83031 const struct proc_ns_operations *ns_ops;
83032 struct inode vfs_inode;
83033 -};
83034 +} __randomize_layout;
83035
83036 /*
83037 * General functions
83038 @@ -155,6 +156,10 @@ extern int proc_pid_status(struct seq_file *, struct pid_namespace *,
83039 struct pid *, struct task_struct *);
83040 extern int proc_pid_statm(struct seq_file *, struct pid_namespace *,
83041 struct pid *, struct task_struct *);
83042 +#ifdef CONFIG_GRKERNSEC_PROC_IPADDR
83043 +extern int proc_pid_ipaddr(struct seq_file *, struct pid_namespace *,
83044 + struct pid *, struct task_struct *);
83045 +#endif
83046
83047 /*
83048 * base.c
83049 @@ -179,9 +184,11 @@ extern bool proc_fill_cache(struct file *, struct dir_context *, const char *, i
83050 * generic.c
83051 */
83052 extern struct dentry *proc_lookup(struct inode *, struct dentry *, unsigned int);
83053 +extern struct dentry *proc_lookup_restrict(struct inode *, struct dentry *, unsigned int);
83054 extern struct dentry *proc_lookup_de(struct proc_dir_entry *, struct inode *,
83055 struct dentry *);
83056 extern int proc_readdir(struct file *, struct dir_context *);
83057 +extern int proc_readdir_restrict(struct file *, struct dir_context *);
83058 extern int proc_readdir_de(struct proc_dir_entry *, struct file *, struct dir_context *);
83059
83060 static inline struct proc_dir_entry *pde_get(struct proc_dir_entry *pde)
83061 diff --git a/fs/proc/interrupts.c b/fs/proc/interrupts.c
83062 index a352d57..cb94a5c 100644
83063 --- a/fs/proc/interrupts.c
83064 +++ b/fs/proc/interrupts.c
83065 @@ -47,7 +47,11 @@ static const struct file_operations proc_interrupts_operations = {
83066
83067 static int __init proc_interrupts_init(void)
83068 {
83069 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83070 + proc_create_grsec("interrupts", 0, NULL, &proc_interrupts_operations);
83071 +#else
83072 proc_create("interrupts", 0, NULL, &proc_interrupts_operations);
83073 +#endif
83074 return 0;
83075 }
83076 fs_initcall(proc_interrupts_init);
83077 diff --git a/fs/proc/kcore.c b/fs/proc/kcore.c
83078 index 92e6726..a600d4fa 100644
83079 --- a/fs/proc/kcore.c
83080 +++ b/fs/proc/kcore.c
83081 @@ -483,9 +483,10 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
83082 * the addresses in the elf_phdr on our list.
83083 */
83084 start = kc_offset_to_vaddr(*fpos - elf_buflen);
83085 - if ((tsz = (PAGE_SIZE - (start & ~PAGE_MASK))) > buflen)
83086 + tsz = PAGE_SIZE - (start & ~PAGE_MASK);
83087 + if (tsz > buflen)
83088 tsz = buflen;
83089 -
83090 +
83091 while (buflen) {
83092 struct kcore_list *m;
83093
83094 @@ -515,19 +516,20 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
83095 } else {
83096 if (kern_addr_valid(start)) {
83097 unsigned long n;
83098 + char *elf_buf;
83099 + mm_segment_t oldfs;
83100
83101 - n = copy_to_user(buffer, (char *)start, tsz);
83102 - /*
83103 - * We cannot distinguish between fault on source
83104 - * and fault on destination. When this happens
83105 - * we clear too and hope it will trigger the
83106 - * EFAULT again.
83107 - */
83108 - if (n) {
83109 - if (clear_user(buffer + tsz - n,
83110 - n))
83111 - return -EFAULT;
83112 - }
83113 + elf_buf = kzalloc(tsz, GFP_KERNEL);
83114 + if (!elf_buf)
83115 + return -ENOMEM;
83116 + oldfs = get_fs();
83117 + set_fs(KERNEL_DS);
83118 + n = __copy_from_user(elf_buf, (const void __user *)start, tsz);
83119 + set_fs(oldfs);
83120 + n = copy_to_user(buffer, elf_buf, tsz);
83121 + kfree(elf_buf);
83122 + if (n)
83123 + return -EFAULT;
83124 } else {
83125 if (clear_user(buffer, tsz))
83126 return -EFAULT;
83127 @@ -547,6 +549,9 @@ read_kcore(struct file *file, char __user *buffer, size_t buflen, loff_t *fpos)
83128
83129 static int open_kcore(struct inode *inode, struct file *filp)
83130 {
83131 +#if defined(CONFIG_GRKERNSEC_PROC_ADD) || defined(CONFIG_GRKERNSEC_HIDESYM)
83132 + return -EPERM;
83133 +#endif
83134 if (!capable(CAP_SYS_RAWIO))
83135 return -EPERM;
83136 if (kcore_need_update)
83137 @@ -580,7 +585,7 @@ static int __meminit kcore_callback(struct notifier_block *self,
83138 return NOTIFY_OK;
83139 }
83140
83141 -static struct notifier_block kcore_callback_nb __meminitdata = {
83142 +static struct notifier_block kcore_callback_nb __meminitconst = {
83143 .notifier_call = kcore_callback,
83144 .priority = 0,
83145 };
83146 diff --git a/fs/proc/meminfo.c b/fs/proc/meminfo.c
83147 index d3ebf2e..abe1823 100644
83148 --- a/fs/proc/meminfo.c
83149 +++ b/fs/proc/meminfo.c
83150 @@ -27,7 +27,6 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
83151 {
83152 struct sysinfo i;
83153 unsigned long committed;
83154 - struct vmalloc_info vmi;
83155 long cached;
83156 long available;
83157 unsigned long pagecache;
83158 @@ -49,8 +48,6 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
83159 if (cached < 0)
83160 cached = 0;
83161
83162 - get_vmalloc_info(&vmi);
83163 -
83164 for (lru = LRU_BASE; lru < NR_LRU_LISTS; lru++)
83165 pages[lru] = global_page_state(NR_LRU_BASE + lru);
83166
83167 @@ -191,10 +188,10 @@ static int meminfo_proc_show(struct seq_file *m, void *v)
83168 K(vm_commit_limit()),
83169 K(committed),
83170 (unsigned long)VMALLOC_TOTAL >> 10,
83171 - vmi.used >> 10,
83172 - vmi.largest_chunk >> 10
83173 + 0ul, // used to be vmalloc 'used'
83174 + 0ul // used to be vmalloc 'largest_chunk'
83175 #ifdef CONFIG_MEMORY_FAILURE
83176 - , atomic_long_read(&num_poisoned_pages) << (PAGE_SHIFT - 10)
83177 + , atomic_long_read_unchecked(&num_poisoned_pages) << (PAGE_SHIFT - 10)
83178 #endif
83179 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
83180 , K(global_page_state(NR_ANON_TRANSPARENT_HUGEPAGES) *
83181 diff --git a/fs/proc/nommu.c b/fs/proc/nommu.c
83182 index f8595e8..e0d13cbd 100644
83183 --- a/fs/proc/nommu.c
83184 +++ b/fs/proc/nommu.c
83185 @@ -64,7 +64,7 @@ static int nommu_region_show(struct seq_file *m, struct vm_region *region)
83186
83187 if (file) {
83188 seq_pad(m, ' ');
83189 - seq_file_path(m, file, "");
83190 + seq_file_path(m, file, "\n\\");
83191 }
83192
83193 seq_putc(m, '\n');
83194 diff --git a/fs/proc/proc_net.c b/fs/proc/proc_net.c
83195 index 350984a..0fb02a9 100644
83196 --- a/fs/proc/proc_net.c
83197 +++ b/fs/proc/proc_net.c
83198 @@ -23,9 +23,27 @@
83199 #include <linux/nsproxy.h>
83200 #include <net/net_namespace.h>
83201 #include <linux/seq_file.h>
83202 +#include <linux/grsecurity.h>
83203
83204 #include "internal.h"
83205
83206 +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
83207 +static struct seq_operations *ipv6_seq_ops_addr;
83208 +
83209 +void register_ipv6_seq_ops_addr(struct seq_operations *addr)
83210 +{
83211 + ipv6_seq_ops_addr = addr;
83212 +}
83213 +
83214 +void unregister_ipv6_seq_ops_addr(void)
83215 +{
83216 + ipv6_seq_ops_addr = NULL;
83217 +}
83218 +
83219 +EXPORT_SYMBOL_GPL(register_ipv6_seq_ops_addr);
83220 +EXPORT_SYMBOL_GPL(unregister_ipv6_seq_ops_addr);
83221 +#endif
83222 +
83223 static inline struct net *PDE_NET(struct proc_dir_entry *pde)
83224 {
83225 return pde->parent->data;
83226 @@ -36,6 +54,8 @@ static struct net *get_proc_net(const struct inode *inode)
83227 return maybe_get_net(PDE_NET(PDE(inode)));
83228 }
83229
83230 +extern const struct seq_operations dev_seq_ops;
83231 +
83232 int seq_open_net(struct inode *ino, struct file *f,
83233 const struct seq_operations *ops, int size)
83234 {
83235 @@ -44,6 +64,14 @@ int seq_open_net(struct inode *ino, struct file *f,
83236
83237 BUG_ON(size < sizeof(*p));
83238
83239 + /* only permit access to /proc/net/dev */
83240 + if (
83241 +#if defined(CONFIG_IPV6) || defined(CONFIG_IPV6_MODULE)
83242 + ops != ipv6_seq_ops_addr &&
83243 +#endif
83244 + ops != &dev_seq_ops && gr_proc_is_restricted())
83245 + return -EACCES;
83246 +
83247 net = get_proc_net(ino);
83248 if (net == NULL)
83249 return -ENXIO;
83250 @@ -66,6 +94,9 @@ int single_open_net(struct inode *inode, struct file *file,
83251 int err;
83252 struct net *net;
83253
83254 + if (gr_proc_is_restricted())
83255 + return -EACCES;
83256 +
83257 err = -ENXIO;
83258 net = get_proc_net(inode);
83259 if (net == NULL)
83260 diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
83261 index fdda62e..cd7c75f 100644
83262 --- a/fs/proc/proc_sysctl.c
83263 +++ b/fs/proc/proc_sysctl.c
83264 @@ -11,13 +11,21 @@
83265 #include <linux/namei.h>
83266 #include <linux/mm.h>
83267 #include <linux/module.h>
83268 +#include <linux/nsproxy.h>
83269 +#ifdef CONFIG_GRKERNSEC
83270 +#include <net/net_namespace.h>
83271 +#endif
83272 #include "internal.h"
83273
83274 +extern int gr_handle_chroot_sysctl(const int op);
83275 +extern int gr_handle_sysctl_mod(const char *dirname, const char *name,
83276 + const int op);
83277 +
83278 static const struct dentry_operations proc_sys_dentry_operations;
83279 static const struct file_operations proc_sys_file_operations;
83280 -static const struct inode_operations proc_sys_inode_operations;
83281 +const struct inode_operations proc_sys_inode_operations;
83282 static const struct file_operations proc_sys_dir_file_operations;
83283 -static const struct inode_operations proc_sys_dir_operations;
83284 +const struct inode_operations proc_sys_dir_operations;
83285
83286 /* Support for permanently empty directories */
83287
83288 @@ -32,13 +40,17 @@ static bool is_empty_dir(struct ctl_table_header *head)
83289
83290 static void set_empty_dir(struct ctl_dir *dir)
83291 {
83292 - dir->header.ctl_table[0].child = sysctl_mount_point;
83293 + pax_open_kernel();
83294 + *(const void **)&dir->header.ctl_table[0].child = sysctl_mount_point;
83295 + pax_close_kernel();
83296 }
83297
83298 static void clear_empty_dir(struct ctl_dir *dir)
83299
83300 {
83301 - dir->header.ctl_table[0].child = NULL;
83302 + pax_open_kernel();
83303 + *(void **)&dir->header.ctl_table[0].child = NULL;
83304 + pax_close_kernel();
83305 }
83306
83307 void proc_sys_poll_notify(struct ctl_table_poll *poll)
83308 @@ -504,6 +516,9 @@ static struct dentry *proc_sys_lookup(struct inode *dir, struct dentry *dentry,
83309
83310 err = NULL;
83311 d_set_d_op(dentry, &proc_sys_dentry_operations);
83312 +
83313 + gr_handle_proc_create(dentry, inode);
83314 +
83315 d_add(dentry, inode);
83316
83317 out:
83318 @@ -519,6 +534,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
83319 struct inode *inode = file_inode(filp);
83320 struct ctl_table_header *head = grab_header(inode);
83321 struct ctl_table *table = PROC_I(inode)->sysctl_entry;
83322 + int op = write ? MAY_WRITE : MAY_READ;
83323 ssize_t error;
83324 size_t res;
83325
83326 @@ -530,7 +546,7 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
83327 * and won't be until we finish.
83328 */
83329 error = -EPERM;
83330 - if (sysctl_perm(head, table, write ? MAY_WRITE : MAY_READ))
83331 + if (sysctl_perm(head, table, op))
83332 goto out;
83333
83334 /* if that can happen at all, it should be -EINVAL, not -EISDIR */
83335 @@ -538,6 +554,27 @@ static ssize_t proc_sys_call_handler(struct file *filp, void __user *buf,
83336 if (!table->proc_handler)
83337 goto out;
83338
83339 +#ifdef CONFIG_GRKERNSEC
83340 + error = -EPERM;
83341 + if (gr_handle_chroot_sysctl(op))
83342 + goto out;
83343 + dget(filp->f_path.dentry);
83344 + if (gr_handle_sysctl_mod(filp->f_path.dentry->d_parent->d_name.name, table->procname, op)) {
83345 + dput(filp->f_path.dentry);
83346 + goto out;
83347 + }
83348 + dput(filp->f_path.dentry);
83349 + if (!gr_acl_handle_open(filp->f_path.dentry, filp->f_path.mnt, op))
83350 + goto out;
83351 + if (write) {
83352 + if (current->nsproxy->net_ns != table->extra2) {
83353 + if (!capable(CAP_SYS_ADMIN))
83354 + goto out;
83355 + } else if (!ns_capable(current->nsproxy->net_ns->user_ns, CAP_NET_ADMIN))
83356 + goto out;
83357 + }
83358 +#endif
83359 +
83360 /* careful: calling conventions are nasty here */
83361 res = count;
83362 error = table->proc_handler(table, write, buf, &res, ppos);
83363 @@ -635,6 +672,9 @@ static bool proc_sys_fill_cache(struct file *file,
83364 return false;
83365 } else {
83366 d_set_d_op(child, &proc_sys_dentry_operations);
83367 +
83368 + gr_handle_proc_create(child, inode);
83369 +
83370 d_add(child, inode);
83371 }
83372 } else {
83373 @@ -678,6 +718,9 @@ static int scan(struct ctl_table_header *head, struct ctl_table *table,
83374 if ((*pos)++ < ctx->pos)
83375 return true;
83376
83377 + if (!gr_acl_handle_hidden_file(file->f_path.dentry, file->f_path.mnt))
83378 + return 0;
83379 +
83380 if (unlikely(S_ISLNK(table->mode)))
83381 res = proc_sys_link_fill_cache(file, ctx, head, table);
83382 else
83383 @@ -771,6 +814,9 @@ static int proc_sys_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
83384 if (IS_ERR(head))
83385 return PTR_ERR(head);
83386
83387 + if (table && !gr_acl_handle_hidden_file(dentry, mnt))
83388 + return -ENOENT;
83389 +
83390 generic_fillattr(inode, stat);
83391 if (table)
83392 stat->mode = (stat->mode & S_IFMT) | table->mode;
83393 @@ -793,13 +839,13 @@ static const struct file_operations proc_sys_dir_file_operations = {
83394 .llseek = generic_file_llseek,
83395 };
83396
83397 -static const struct inode_operations proc_sys_inode_operations = {
83398 +const struct inode_operations proc_sys_inode_operations = {
83399 .permission = proc_sys_permission,
83400 .setattr = proc_sys_setattr,
83401 .getattr = proc_sys_getattr,
83402 };
83403
83404 -static const struct inode_operations proc_sys_dir_operations = {
83405 +const struct inode_operations proc_sys_dir_operations = {
83406 .lookup = proc_sys_lookup,
83407 .permission = proc_sys_permission,
83408 .setattr = proc_sys_setattr,
83409 @@ -876,7 +922,7 @@ static struct ctl_dir *find_subdir(struct ctl_dir *dir,
83410 static struct ctl_dir *new_dir(struct ctl_table_set *set,
83411 const char *name, int namelen)
83412 {
83413 - struct ctl_table *table;
83414 + ctl_table_no_const *table;
83415 struct ctl_dir *new;
83416 struct ctl_node *node;
83417 char *new_name;
83418 @@ -888,7 +934,7 @@ static struct ctl_dir *new_dir(struct ctl_table_set *set,
83419 return NULL;
83420
83421 node = (struct ctl_node *)(new + 1);
83422 - table = (struct ctl_table *)(node + 1);
83423 + table = (ctl_table_no_const *)(node + 1);
83424 new_name = (char *)(table + 2);
83425 memcpy(new_name, name, namelen);
83426 new_name[namelen] = '\0';
83427 @@ -1057,7 +1103,8 @@ static int sysctl_check_table(const char *path, struct ctl_table *table)
83428 static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table *table,
83429 struct ctl_table_root *link_root)
83430 {
83431 - struct ctl_table *link_table, *entry, *link;
83432 + ctl_table_no_const *link_table, *link;
83433 + struct ctl_table *entry;
83434 struct ctl_table_header *links;
83435 struct ctl_node *node;
83436 char *link_name;
83437 @@ -1080,7 +1127,7 @@ static struct ctl_table_header *new_links(struct ctl_dir *dir, struct ctl_table
83438 return NULL;
83439
83440 node = (struct ctl_node *)(links + 1);
83441 - link_table = (struct ctl_table *)(node + nr_entries);
83442 + link_table = (ctl_table_no_const *)(node + nr_entries);
83443 link_name = (char *)&link_table[nr_entries + 1];
83444
83445 for (link = link_table, entry = table; entry->procname; link++, entry++) {
83446 @@ -1328,8 +1375,8 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
83447 struct ctl_table_header ***subheader, struct ctl_table_set *set,
83448 struct ctl_table *table)
83449 {
83450 - struct ctl_table *ctl_table_arg = NULL;
83451 - struct ctl_table *entry, *files;
83452 + ctl_table_no_const *ctl_table_arg = NULL, *files = NULL;
83453 + struct ctl_table *entry;
83454 int nr_files = 0;
83455 int nr_dirs = 0;
83456 int err = -ENOMEM;
83457 @@ -1341,10 +1388,9 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
83458 nr_files++;
83459 }
83460
83461 - files = table;
83462 /* If there are mixed files and directories we need a new table */
83463 if (nr_dirs && nr_files) {
83464 - struct ctl_table *new;
83465 + ctl_table_no_const *new;
83466 files = kzalloc(sizeof(struct ctl_table) * (nr_files + 1),
83467 GFP_KERNEL);
83468 if (!files)
83469 @@ -1362,7 +1408,7 @@ static int register_leaf_sysctl_tables(const char *path, char *pos,
83470 /* Register everything except a directory full of subdirectories */
83471 if (nr_files || !nr_dirs) {
83472 struct ctl_table_header *header;
83473 - header = __register_sysctl_table(set, path, files);
83474 + header = __register_sysctl_table(set, path, files ? files : table);
83475 if (!header) {
83476 kfree(ctl_table_arg);
83477 goto out;
83478 diff --git a/fs/proc/root.c b/fs/proc/root.c
83479 index 68feb0f..2c04780 100644
83480 --- a/fs/proc/root.c
83481 +++ b/fs/proc/root.c
83482 @@ -185,7 +185,15 @@ void __init proc_root_init(void)
83483 proc_create_mount_point("openprom");
83484 #endif
83485 proc_tty_init();
83486 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83487 +#ifdef CONFIG_GRKERNSEC_PROC_USER
83488 + proc_mkdir_mode("bus", S_IRUSR | S_IXUSR, NULL);
83489 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83490 + proc_mkdir_mode("bus", S_IRUSR | S_IXUSR | S_IRGRP | S_IXGRP, NULL);
83491 +#endif
83492 +#else
83493 proc_mkdir("bus", NULL);
83494 +#endif
83495 proc_sys_init();
83496 }
83497
83498 diff --git a/fs/proc/stat.c b/fs/proc/stat.c
83499 index 510413eb..34d9a8c 100644
83500 --- a/fs/proc/stat.c
83501 +++ b/fs/proc/stat.c
83502 @@ -11,6 +11,7 @@
83503 #include <linux/irqnr.h>
83504 #include <linux/cputime.h>
83505 #include <linux/tick.h>
83506 +#include <linux/grsecurity.h>
83507
83508 #ifndef arch_irq_stat_cpu
83509 #define arch_irq_stat_cpu(cpu) 0
83510 @@ -87,6 +88,18 @@ static int show_stat(struct seq_file *p, void *v)
83511 u64 sum_softirq = 0;
83512 unsigned int per_softirq_sums[NR_SOFTIRQS] = {0};
83513 struct timespec boottime;
83514 + int unrestricted = 1;
83515 +
83516 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
83517 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
83518 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)
83519 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
83520 + && !in_group_p(grsec_proc_gid)
83521 +#endif
83522 + )
83523 + unrestricted = 0;
83524 +#endif
83525 +#endif
83526
83527 user = nice = system = idle = iowait =
83528 irq = softirq = steal = 0;
83529 @@ -99,23 +112,25 @@ static int show_stat(struct seq_file *p, void *v)
83530 nice += kcpustat_cpu(i).cpustat[CPUTIME_NICE];
83531 system += kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
83532 idle += get_idle_time(i);
83533 - iowait += get_iowait_time(i);
83534 - irq += kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
83535 - softirq += kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
83536 - steal += kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
83537 - guest += kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
83538 - guest_nice += kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
83539 - sum += kstat_cpu_irqs_sum(i);
83540 - sum += arch_irq_stat_cpu(i);
83541 + if (unrestricted) {
83542 + iowait += get_iowait_time(i);
83543 + irq += kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
83544 + softirq += kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
83545 + steal += kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
83546 + guest += kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
83547 + guest_nice += kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
83548 + sum += kstat_cpu_irqs_sum(i);
83549 + sum += arch_irq_stat_cpu(i);
83550 + for (j = 0; j < NR_SOFTIRQS; j++) {
83551 + unsigned int softirq_stat = kstat_softirqs_cpu(j, i);
83552
83553 - for (j = 0; j < NR_SOFTIRQS; j++) {
83554 - unsigned int softirq_stat = kstat_softirqs_cpu(j, i);
83555 -
83556 - per_softirq_sums[j] += softirq_stat;
83557 - sum_softirq += softirq_stat;
83558 + per_softirq_sums[j] += softirq_stat;
83559 + sum_softirq += softirq_stat;
83560 + }
83561 }
83562 }
83563 - sum += arch_irq_stat();
83564 + if (unrestricted)
83565 + sum += arch_irq_stat();
83566
83567 seq_puts(p, "cpu ");
83568 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(user));
83569 @@ -136,12 +151,14 @@ static int show_stat(struct seq_file *p, void *v)
83570 nice = kcpustat_cpu(i).cpustat[CPUTIME_NICE];
83571 system = kcpustat_cpu(i).cpustat[CPUTIME_SYSTEM];
83572 idle = get_idle_time(i);
83573 - iowait = get_iowait_time(i);
83574 - irq = kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
83575 - softirq = kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
83576 - steal = kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
83577 - guest = kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
83578 - guest_nice = kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
83579 + if (unrestricted) {
83580 + iowait = get_iowait_time(i);
83581 + irq = kcpustat_cpu(i).cpustat[CPUTIME_IRQ];
83582 + softirq = kcpustat_cpu(i).cpustat[CPUTIME_SOFTIRQ];
83583 + steal = kcpustat_cpu(i).cpustat[CPUTIME_STEAL];
83584 + guest = kcpustat_cpu(i).cpustat[CPUTIME_GUEST];
83585 + guest_nice = kcpustat_cpu(i).cpustat[CPUTIME_GUEST_NICE];
83586 + }
83587 seq_printf(p, "cpu%d", i);
83588 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(user));
83589 seq_put_decimal_ull(p, ' ', cputime64_to_clock_t(nice));
83590 @@ -159,7 +176,7 @@ static int show_stat(struct seq_file *p, void *v)
83591
83592 /* sum again ? it could be updated? */
83593 for_each_irq_nr(j)
83594 - seq_put_decimal_ull(p, ' ', kstat_irqs_usr(j));
83595 + seq_put_decimal_ull(p, ' ', unrestricted ? kstat_irqs_usr(j) : 0ULL);
83596
83597 seq_printf(p,
83598 "\nctxt %llu\n"
83599 @@ -167,11 +184,11 @@ static int show_stat(struct seq_file *p, void *v)
83600 "processes %lu\n"
83601 "procs_running %lu\n"
83602 "procs_blocked %lu\n",
83603 - nr_context_switches(),
83604 + unrestricted ? nr_context_switches() : 0ULL,
83605 (unsigned long)jif,
83606 - total_forks,
83607 - nr_running(),
83608 - nr_iowait());
83609 + unrestricted ? total_forks : 0UL,
83610 + unrestricted ? nr_running() : 0UL,
83611 + unrestricted ? nr_iowait() : 0UL);
83612
83613 seq_printf(p, "softirq %llu", (unsigned long long)sum_softirq);
83614
83615 diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
83616 index ca1e091..a048795 100644
83617 --- a/fs/proc/task_mmu.c
83618 +++ b/fs/proc/task_mmu.c
83619 @@ -13,12 +13,19 @@
83620 #include <linux/swap.h>
83621 #include <linux/swapops.h>
83622 #include <linux/mmu_notifier.h>
83623 +#include <linux/grsecurity.h>
83624
83625 #include <asm/elf.h>
83626 #include <asm/uaccess.h>
83627 #include <asm/tlbflush.h>
83628 #include "internal.h"
83629
83630 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83631 +#define PAX_RAND_FLAGS(_mm) (_mm != NULL && _mm != current->mm && \
83632 + (_mm->pax_flags & MF_PAX_RANDMMAP || \
83633 + _mm->pax_flags & MF_PAX_SEGMEXEC))
83634 +#endif
83635 +
83636 void task_mem(struct seq_file *m, struct mm_struct *mm)
83637 {
83638 unsigned long data, text, lib, swap, ptes, pmds;
83639 @@ -57,8 +64,13 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
83640 "VmLib:\t%8lu kB\n"
83641 "VmPTE:\t%8lu kB\n"
83642 "VmPMD:\t%8lu kB\n"
83643 - "VmSwap:\t%8lu kB\n",
83644 - hiwater_vm << (PAGE_SHIFT-10),
83645 + "VmSwap:\t%8lu kB\n"
83646 +
83647 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
83648 + "CsBase:\t%8lx\nCsLim:\t%8lx\n"
83649 +#endif
83650 +
83651 + ,hiwater_vm << (PAGE_SHIFT-10),
83652 total_vm << (PAGE_SHIFT-10),
83653 mm->locked_vm << (PAGE_SHIFT-10),
83654 mm->pinned_vm << (PAGE_SHIFT-10),
83655 @@ -68,7 +80,19 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
83656 mm->stack_vm << (PAGE_SHIFT-10), text, lib,
83657 ptes >> 10,
83658 pmds >> 10,
83659 - swap << (PAGE_SHIFT-10));
83660 + swap << (PAGE_SHIFT-10)
83661 +
83662 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
83663 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83664 + , PAX_RAND_FLAGS(mm) ? 0 : mm->context.user_cs_base
83665 + , PAX_RAND_FLAGS(mm) ? 0 : mm->context.user_cs_limit
83666 +#else
83667 + , mm->context.user_cs_base
83668 + , mm->context.user_cs_limit
83669 +#endif
83670 +#endif
83671 +
83672 + );
83673 }
83674
83675 unsigned long task_vsize(struct mm_struct *mm)
83676 @@ -285,13 +309,13 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
83677 pgoff = ((loff_t)vma->vm_pgoff) << PAGE_SHIFT;
83678 }
83679
83680 - /* We don't show the stack guard page in /proc/maps */
83681 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83682 + start = PAX_RAND_FLAGS(mm) ? 0UL : vma->vm_start;
83683 + end = PAX_RAND_FLAGS(mm) ? 0UL : vma->vm_end;
83684 +#else
83685 start = vma->vm_start;
83686 - if (stack_guard_page_start(vma, start))
83687 - start += PAGE_SIZE;
83688 end = vma->vm_end;
83689 - if (stack_guard_page_end(vma, end))
83690 - end -= PAGE_SIZE;
83691 +#endif
83692
83693 seq_setwidth(m, 25 + sizeof(void *) * 6 - 1);
83694 seq_printf(m, "%08lx-%08lx %c%c%c%c %08llx %02x:%02x %lu ",
83695 @@ -301,7 +325,11 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
83696 flags & VM_WRITE ? 'w' : '-',
83697 flags & VM_EXEC ? 'x' : '-',
83698 flags & VM_MAYSHARE ? 's' : 'p',
83699 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83700 + PAX_RAND_FLAGS(mm) ? 0UL : pgoff,
83701 +#else
83702 pgoff,
83703 +#endif
83704 MAJOR(dev), MINOR(dev), ino);
83705
83706 /*
83707 @@ -310,7 +338,7 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
83708 */
83709 if (file) {
83710 seq_pad(m, ' ');
83711 - seq_file_path(m, file, "\n");
83712 + seq_file_path(m, file, "\n\\");
83713 goto done;
83714 }
83715
83716 @@ -341,8 +369,9 @@ show_map_vma(struct seq_file *m, struct vm_area_struct *vma, int is_pid)
83717 * Thread stack in /proc/PID/task/TID/maps or
83718 * the main process stack.
83719 */
83720 - if (!is_pid || (vma->vm_start <= mm->start_stack &&
83721 - vma->vm_end >= mm->start_stack)) {
83722 + if (!is_pid || (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP)) ||
83723 + (vma->vm_start <= mm->start_stack &&
83724 + vma->vm_end >= mm->start_stack)) {
83725 name = "[stack]";
83726 } else {
83727 /* Thread stack in /proc/PID/maps */
83728 @@ -362,6 +391,12 @@ done:
83729
83730 static int show_map(struct seq_file *m, void *v, int is_pid)
83731 {
83732 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83733 + if (current->exec_id != m->exec_id) {
83734 + gr_log_badprocpid("maps");
83735 + return 0;
83736 + }
83737 +#endif
83738 show_map_vma(m, v, is_pid);
83739 m_cache_vma(m, v);
83740 return 0;
83741 @@ -620,9 +655,18 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
83742 .private = &mss,
83743 };
83744
83745 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83746 + if (current->exec_id != m->exec_id) {
83747 + gr_log_badprocpid("smaps");
83748 + return 0;
83749 + }
83750 +#endif
83751 memset(&mss, 0, sizeof mss);
83752 - /* mmap_sem is held in m_start */
83753 - walk_page_vma(vma, &smaps_walk);
83754 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83755 + if (!PAX_RAND_FLAGS(vma->vm_mm))
83756 +#endif
83757 + /* mmap_sem is held in m_start */
83758 + walk_page_vma(vma, &smaps_walk);
83759
83760 show_map_vma(m, vma, is_pid);
83761
83762 @@ -641,7 +685,11 @@ static int show_smap(struct seq_file *m, void *v, int is_pid)
83763 "KernelPageSize: %8lu kB\n"
83764 "MMUPageSize: %8lu kB\n"
83765 "Locked: %8lu kB\n",
83766 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83767 + PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : (vma->vm_end - vma->vm_start) >> 10,
83768 +#else
83769 (vma->vm_end - vma->vm_start) >> 10,
83770 +#endif
83771 mss.resident >> 10,
83772 (unsigned long)(mss.pss >> (10 + PSS_SHIFT)),
83773 mss.shared_clean >> 10,
83774 @@ -1491,6 +1539,13 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
83775 char buffer[64];
83776 int nid;
83777
83778 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83779 + if (current->exec_id != m->exec_id) {
83780 + gr_log_badprocpid("numa_maps");
83781 + return 0;
83782 + }
83783 +#endif
83784 +
83785 if (!mm)
83786 return 0;
83787
83788 @@ -1505,11 +1560,15 @@ static int show_numa_map(struct seq_file *m, void *v, int is_pid)
83789 mpol_to_str(buffer, sizeof(buffer), proc_priv->task_mempolicy);
83790 }
83791
83792 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
83793 + seq_printf(m, "%08lx %s", PAX_RAND_FLAGS(vma->vm_mm) ? 0UL : vma->vm_start, buffer);
83794 +#else
83795 seq_printf(m, "%08lx %s", vma->vm_start, buffer);
83796 +#endif
83797
83798 if (file) {
83799 seq_puts(m, " file=");
83800 - seq_file_path(m, file, "\n\t= ");
83801 + seq_file_path(m, file, "\n\t\\= ");
83802 } else if (vma->vm_start <= mm->brk && vma->vm_end >= mm->start_brk) {
83803 seq_puts(m, " heap");
83804 } else {
83805 diff --git a/fs/proc/task_nommu.c b/fs/proc/task_nommu.c
83806 index e0d64c9..c44c96e 100644
83807 --- a/fs/proc/task_nommu.c
83808 +++ b/fs/proc/task_nommu.c
83809 @@ -51,7 +51,7 @@ void task_mem(struct seq_file *m, struct mm_struct *mm)
83810 else
83811 bytes += kobjsize(mm);
83812
83813 - if (current->fs && current->fs->users > 1)
83814 + if (current->fs && atomic_read(&current->fs->users) > 1)
83815 sbytes += kobjsize(current->fs);
83816 else
83817 bytes += kobjsize(current->fs);
83818 @@ -180,7 +180,7 @@ static int nommu_vma_show(struct seq_file *m, struct vm_area_struct *vma,
83819
83820 if (file) {
83821 seq_pad(m, ' ');
83822 - seq_file_path(m, file, "");
83823 + seq_file_path(m, file, "\n\\");
83824 } else if (mm) {
83825 pid_t tid = pid_of_stack(priv, vma, is_pid);
83826
83827 diff --git a/fs/proc/vmcore.c b/fs/proc/vmcore.c
83828 index 4e61388..1a2523d 100644
83829 --- a/fs/proc/vmcore.c
83830 +++ b/fs/proc/vmcore.c
83831 @@ -105,9 +105,13 @@ static ssize_t read_from_oldmem(char *buf, size_t count,
83832 nr_bytes = count;
83833
83834 /* If pfn is not ram, return zeros for sparse dump files */
83835 - if (pfn_is_ram(pfn) == 0)
83836 - memset(buf, 0, nr_bytes);
83837 - else {
83838 + if (pfn_is_ram(pfn) == 0) {
83839 + if (userbuf) {
83840 + if (clear_user((char __force_user *)buf, nr_bytes))
83841 + return -EFAULT;
83842 + } else
83843 + memset(buf, 0, nr_bytes);
83844 + } else {
83845 tmp = copy_oldmem_page(pfn, buf, nr_bytes,
83846 offset, userbuf);
83847 if (tmp < 0)
83848 @@ -170,7 +174,7 @@ int __weak remap_oldmem_pfn_range(struct vm_area_struct *vma,
83849 static int copy_to(void *target, void *src, size_t size, int userbuf)
83850 {
83851 if (userbuf) {
83852 - if (copy_to_user((char __user *) target, src, size))
83853 + if (copy_to_user((char __force_user *) target, src, size))
83854 return -EFAULT;
83855 } else {
83856 memcpy(target, src, size);
83857 @@ -233,7 +237,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
83858 if (*fpos < m->offset + m->size) {
83859 tsz = min_t(size_t, m->offset + m->size - *fpos, buflen);
83860 start = m->paddr + *fpos - m->offset;
83861 - tmp = read_from_oldmem(buffer, tsz, &start, userbuf);
83862 + tmp = read_from_oldmem((char __force_kernel *)buffer, tsz, &start, userbuf);
83863 if (tmp < 0)
83864 return tmp;
83865 buflen -= tsz;
83866 @@ -253,7 +257,7 @@ static ssize_t __read_vmcore(char *buffer, size_t buflen, loff_t *fpos,
83867 static ssize_t read_vmcore(struct file *file, char __user *buffer,
83868 size_t buflen, loff_t *fpos)
83869 {
83870 - return __read_vmcore((__force char *) buffer, buflen, fpos, 1);
83871 + return __read_vmcore((__force_kernel char *) buffer, buflen, fpos, 1);
83872 }
83873
83874 /*
83875 diff --git a/fs/qnx6/qnx6.h b/fs/qnx6/qnx6.h
83876 index d3fb2b6..43a8140 100644
83877 --- a/fs/qnx6/qnx6.h
83878 +++ b/fs/qnx6/qnx6.h
83879 @@ -74,7 +74,7 @@ enum {
83880 BYTESEX_BE,
83881 };
83882
83883 -static inline __u64 fs64_to_cpu(struct qnx6_sb_info *sbi, __fs64 n)
83884 +static inline __u64 __intentional_overflow(-1) fs64_to_cpu(struct qnx6_sb_info *sbi, __fs64 n)
83885 {
83886 if (sbi->s_bytesex == BYTESEX_LE)
83887 return le64_to_cpu((__force __le64)n);
83888 @@ -90,7 +90,7 @@ static inline __fs64 cpu_to_fs64(struct qnx6_sb_info *sbi, __u64 n)
83889 return (__force __fs64)cpu_to_be64(n);
83890 }
83891
83892 -static inline __u32 fs32_to_cpu(struct qnx6_sb_info *sbi, __fs32 n)
83893 +static inline __u32 __intentional_overflow(-1) fs32_to_cpu(struct qnx6_sb_info *sbi, __fs32 n)
83894 {
83895 if (sbi->s_bytesex == BYTESEX_LE)
83896 return le32_to_cpu((__force __le32)n);
83897 diff --git a/fs/quota/netlink.c b/fs/quota/netlink.c
83898 index bb2869f..d34ada8 100644
83899 --- a/fs/quota/netlink.c
83900 +++ b/fs/quota/netlink.c
83901 @@ -44,7 +44,7 @@ static struct genl_family quota_genl_family = {
83902 void quota_send_warning(struct kqid qid, dev_t dev,
83903 const char warntype)
83904 {
83905 - static atomic_t seq;
83906 + static atomic_unchecked_t seq;
83907 struct sk_buff *skb;
83908 void *msg_head;
83909 int ret;
83910 @@ -60,7 +60,7 @@ void quota_send_warning(struct kqid qid, dev_t dev,
83911 "VFS: Not enough memory to send quota warning.\n");
83912 return;
83913 }
83914 - msg_head = genlmsg_put(skb, 0, atomic_add_return(1, &seq),
83915 + msg_head = genlmsg_put(skb, 0, atomic_add_return_unchecked(1, &seq),
83916 &quota_genl_family, 0, QUOTA_NL_C_WARNING);
83917 if (!msg_head) {
83918 printk(KERN_ERR
83919 diff --git a/fs/read_write.c b/fs/read_write.c
83920 index 819ef3f..f07222d 100644
83921 --- a/fs/read_write.c
83922 +++ b/fs/read_write.c
83923 @@ -505,7 +505,7 @@ ssize_t __kernel_write(struct file *file, const char *buf, size_t count, loff_t
83924
83925 old_fs = get_fs();
83926 set_fs(get_ds());
83927 - p = (__force const char __user *)buf;
83928 + p = (const char __force_user *)buf;
83929 if (count > MAX_RW_COUNT)
83930 count = MAX_RW_COUNT;
83931 ret = __vfs_write(file, p, count, pos);
83932 diff --git a/fs/readdir.c b/fs/readdir.c
83933 index ced6791..936687b 100644
83934 --- a/fs/readdir.c
83935 +++ b/fs/readdir.c
83936 @@ -18,6 +18,7 @@
83937 #include <linux/security.h>
83938 #include <linux/syscalls.h>
83939 #include <linux/unistd.h>
83940 +#include <linux/namei.h>
83941
83942 #include <asm/uaccess.h>
83943
83944 @@ -71,6 +72,7 @@ struct old_linux_dirent {
83945 struct readdir_callback {
83946 struct dir_context ctx;
83947 struct old_linux_dirent __user * dirent;
83948 + struct file * file;
83949 int result;
83950 };
83951
83952 @@ -89,6 +91,10 @@ static int fillonedir(struct dir_context *ctx, const char *name, int namlen,
83953 buf->result = -EOVERFLOW;
83954 return -EOVERFLOW;
83955 }
83956 +
83957 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
83958 + return 0;
83959 +
83960 buf->result++;
83961 dirent = buf->dirent;
83962 if (!access_ok(VERIFY_WRITE, dirent,
83963 @@ -120,6 +126,7 @@ SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
83964 if (!f.file)
83965 return -EBADF;
83966
83967 + buf.file = f.file;
83968 error = iterate_dir(f.file, &buf.ctx);
83969 if (buf.result)
83970 error = buf.result;
83971 @@ -145,6 +152,7 @@ struct getdents_callback {
83972 struct dir_context ctx;
83973 struct linux_dirent __user * current_dir;
83974 struct linux_dirent __user * previous;
83975 + struct file * file;
83976 int count;
83977 int error;
83978 };
83979 @@ -167,6 +175,10 @@ static int filldir(struct dir_context *ctx, const char *name, int namlen,
83980 buf->error = -EOVERFLOW;
83981 return -EOVERFLOW;
83982 }
83983 +
83984 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
83985 + return 0;
83986 +
83987 dirent = buf->previous;
83988 if (dirent) {
83989 if (__put_user(offset, &dirent->d_off))
83990 @@ -212,6 +224,7 @@ SYSCALL_DEFINE3(getdents, unsigned int, fd,
83991 if (!f.file)
83992 return -EBADF;
83993
83994 + buf.file = f.file;
83995 error = iterate_dir(f.file, &buf.ctx);
83996 if (error >= 0)
83997 error = buf.error;
83998 @@ -230,6 +243,7 @@ struct getdents_callback64 {
83999 struct dir_context ctx;
84000 struct linux_dirent64 __user * current_dir;
84001 struct linux_dirent64 __user * previous;
84002 + struct file *file;
84003 int count;
84004 int error;
84005 };
84006 @@ -246,6 +260,10 @@ static int filldir64(struct dir_context *ctx, const char *name, int namlen,
84007 buf->error = -EINVAL; /* only used if we fail.. */
84008 if (reclen > buf->count)
84009 return -EINVAL;
84010 +
84011 + if (!gr_acl_handle_filldir(buf->file, name, namlen, ino))
84012 + return 0;
84013 +
84014 dirent = buf->previous;
84015 if (dirent) {
84016 if (__put_user(offset, &dirent->d_off))
84017 @@ -293,6 +311,7 @@ SYSCALL_DEFINE3(getdents64, unsigned int, fd,
84018 if (!f.file)
84019 return -EBADF;
84020
84021 + buf.file = f.file;
84022 error = iterate_dir(f.file, &buf.ctx);
84023 if (error >= 0)
84024 error = buf.error;
84025 diff --git a/fs/reiserfs/do_balan.c b/fs/reiserfs/do_balan.c
84026 index 9c02d96..6562c10 100644
84027 --- a/fs/reiserfs/do_balan.c
84028 +++ b/fs/reiserfs/do_balan.c
84029 @@ -1887,7 +1887,7 @@ void do_balance(struct tree_balance *tb, struct item_head *ih,
84030 return;
84031 }
84032
84033 - atomic_inc(&fs_generation(tb->tb_sb));
84034 + atomic_inc_unchecked(&fs_generation(tb->tb_sb));
84035 do_balance_starts(tb);
84036
84037 /*
84038 diff --git a/fs/reiserfs/item_ops.c b/fs/reiserfs/item_ops.c
84039 index aca73dd..e3c558d 100644
84040 --- a/fs/reiserfs/item_ops.c
84041 +++ b/fs/reiserfs/item_ops.c
84042 @@ -724,18 +724,18 @@ static void errcatch_print_vi(struct virtual_item *vi)
84043 }
84044
84045 static struct item_operations errcatch_ops = {
84046 - errcatch_bytes_number,
84047 - errcatch_decrement_key,
84048 - errcatch_is_left_mergeable,
84049 - errcatch_print_item,
84050 - errcatch_check_item,
84051 + .bytes_number = errcatch_bytes_number,
84052 + .decrement_key = errcatch_decrement_key,
84053 + .is_left_mergeable = errcatch_is_left_mergeable,
84054 + .print_item = errcatch_print_item,
84055 + .check_item = errcatch_check_item,
84056
84057 - errcatch_create_vi,
84058 - errcatch_check_left,
84059 - errcatch_check_right,
84060 - errcatch_part_size,
84061 - errcatch_unit_num,
84062 - errcatch_print_vi
84063 + .create_vi = errcatch_create_vi,
84064 + .check_left = errcatch_check_left,
84065 + .check_right = errcatch_check_right,
84066 + .part_size = errcatch_part_size,
84067 + .unit_num = errcatch_unit_num,
84068 + .print_vi = errcatch_print_vi
84069 };
84070
84071 #if ! (TYPE_STAT_DATA == 0 && TYPE_INDIRECT == 1 && TYPE_DIRECT == 2 && TYPE_DIRENTRY == 3)
84072 diff --git a/fs/reiserfs/procfs.c b/fs/reiserfs/procfs.c
84073 index 621b9f3..af527fd 100644
84074 --- a/fs/reiserfs/procfs.c
84075 +++ b/fs/reiserfs/procfs.c
84076 @@ -114,7 +114,7 @@ static int show_super(struct seq_file *m, void *unused)
84077 "SMALL_TAILS " : "NO_TAILS ",
84078 replay_only(sb) ? "REPLAY_ONLY " : "",
84079 convert_reiserfs(sb) ? "CONV " : "",
84080 - atomic_read(&r->s_generation_counter),
84081 + atomic_read_unchecked(&r->s_generation_counter),
84082 SF(s_disk_reads), SF(s_disk_writes), SF(s_fix_nodes),
84083 SF(s_do_balance), SF(s_unneeded_left_neighbor),
84084 SF(s_good_search_by_key_reada), SF(s_bmaps),
84085 diff --git a/fs/reiserfs/reiserfs.h b/fs/reiserfs/reiserfs.h
84086 index 2adcde1..7d27bc8 100644
84087 --- a/fs/reiserfs/reiserfs.h
84088 +++ b/fs/reiserfs/reiserfs.h
84089 @@ -580,7 +580,7 @@ struct reiserfs_sb_info {
84090 /* Comment? -Hans */
84091 wait_queue_head_t s_wait;
84092 /* increased by one every time the tree gets re-balanced */
84093 - atomic_t s_generation_counter;
84094 + atomic_unchecked_t s_generation_counter;
84095
84096 /* File system properties. Currently holds on-disk FS format */
84097 unsigned long s_properties;
84098 @@ -2300,7 +2300,7 @@ static inline loff_t max_reiserfs_offset(struct inode *inode)
84099 #define REISERFS_USER_MEM 1 /* user memory mode */
84100
84101 #define fs_generation(s) (REISERFS_SB(s)->s_generation_counter)
84102 -#define get_generation(s) atomic_read (&fs_generation(s))
84103 +#define get_generation(s) atomic_read_unchecked (&fs_generation(s))
84104 #define FILESYSTEM_CHANGED_TB(tb) (get_generation((tb)->tb_sb) != (tb)->fs_gen)
84105 #define __fs_changed(gen,s) (gen != get_generation (s))
84106 #define fs_changed(gen,s) \
84107 diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
84108 index 4a62fe8..5dc2f5f 100644
84109 --- a/fs/reiserfs/super.c
84110 +++ b/fs/reiserfs/super.c
84111 @@ -1870,6 +1870,10 @@ static int reiserfs_fill_super(struct super_block *s, void *data, int silent)
84112 sbi->s_mount_opt |= (1 << REISERFS_SMALLTAIL);
84113 sbi->s_mount_opt |= (1 << REISERFS_ERROR_RO);
84114 sbi->s_mount_opt |= (1 << REISERFS_BARRIER_FLUSH);
84115 +#ifdef CONFIG_REISERFS_FS_XATTR
84116 + /* turn on user xattrs by default */
84117 + sbi->s_mount_opt |= (1 << REISERFS_XATTRS_USER);
84118 +#endif
84119 /* no preallocation minimum, be smart in reiserfs_file_write instead */
84120 sbi->s_alloc_options.preallocmin = 0;
84121 /* Preallocate by 16 blocks (17-1) at once */
84122 diff --git a/fs/select.c b/fs/select.c
84123 index 0155473..29d751f 100644
84124 --- a/fs/select.c
84125 +++ b/fs/select.c
84126 @@ -20,6 +20,7 @@
84127 #include <linux/export.h>
84128 #include <linux/slab.h>
84129 #include <linux/poll.h>
84130 +#include <linux/security.h>
84131 #include <linux/personality.h> /* for STICKY_TIMEOUTS */
84132 #include <linux/file.h>
84133 #include <linux/fdtable.h>
84134 @@ -880,6 +881,7 @@ int do_sys_poll(struct pollfd __user *ufds, unsigned int nfds,
84135 struct poll_list *walk = head;
84136 unsigned long todo = nfds;
84137
84138 + gr_learn_resource(current, RLIMIT_NOFILE, nfds, 1);
84139 if (nfds > rlimit(RLIMIT_NOFILE))
84140 return -EINVAL;
84141
84142 diff --git a/fs/seq_file.c b/fs/seq_file.c
84143 index ce9e39f..5c5a436 100644
84144 --- a/fs/seq_file.c
84145 +++ b/fs/seq_file.c
84146 @@ -12,6 +12,8 @@
84147 #include <linux/slab.h>
84148 #include <linux/cred.h>
84149 #include <linux/mm.h>
84150 +#include <linux/sched.h>
84151 +#include <linux/grsecurity.h>
84152
84153 #include <asm/uaccess.h>
84154 #include <asm/page.h>
84155 @@ -29,9 +31,9 @@ static void *seq_buf_alloc(unsigned long size)
84156 * __GFP_NORETRY to avoid oom-killings with high-order allocations -
84157 * it's better to fall back to vmalloc() than to kill things.
84158 */
84159 - buf = kmalloc(size, GFP_KERNEL | __GFP_NORETRY | __GFP_NOWARN);
84160 + buf = kmalloc(size, GFP_KERNEL | GFP_USERCOPY | __GFP_NORETRY | __GFP_NOWARN);
84161 if (!buf && size > PAGE_SIZE)
84162 - buf = vmalloc(size);
84163 + buf = vmalloc_usercopy(size);
84164 return buf;
84165 }
84166
84167 @@ -68,6 +70,9 @@ int seq_open(struct file *file, const struct seq_operations *op)
84168 #ifdef CONFIG_USER_NS
84169 p->user_ns = file->f_cred->user_ns;
84170 #endif
84171 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
84172 + p->exec_id = current->exec_id;
84173 +#endif
84174
84175 /*
84176 * Wrappers around seq_open(e.g. swaps_open) need to be
84177 @@ -90,6 +95,16 @@ int seq_open(struct file *file, const struct seq_operations *op)
84178 }
84179 EXPORT_SYMBOL(seq_open);
84180
84181 +
84182 +int seq_open_restrict(struct file *file, const struct seq_operations *op)
84183 +{
84184 + if (gr_proc_is_restricted())
84185 + return -EACCES;
84186 +
84187 + return seq_open(file, op);
84188 +}
84189 +EXPORT_SYMBOL(seq_open_restrict);
84190 +
84191 static int traverse(struct seq_file *m, loff_t offset)
84192 {
84193 loff_t pos = 0, index;
84194 @@ -161,7 +176,7 @@ Eoverflow:
84195 ssize_t seq_read(struct file *file, char __user *buf, size_t size, loff_t *ppos)
84196 {
84197 struct seq_file *m = file->private_data;
84198 - size_t copied = 0;
84199 + ssize_t copied = 0;
84200 loff_t pos;
84201 size_t n;
84202 void *p;
84203 @@ -575,7 +590,7 @@ static void single_stop(struct seq_file *p, void *v)
84204 int single_open(struct file *file, int (*show)(struct seq_file *, void *),
84205 void *data)
84206 {
84207 - struct seq_operations *op = kmalloc(sizeof(*op), GFP_KERNEL);
84208 + seq_operations_no_const *op = kzalloc(sizeof(*op), GFP_KERNEL);
84209 int res = -ENOMEM;
84210
84211 if (op) {
84212 @@ -611,6 +626,17 @@ int single_open_size(struct file *file, int (*show)(struct seq_file *, void *),
84213 }
84214 EXPORT_SYMBOL(single_open_size);
84215
84216 +int single_open_restrict(struct file *file, int (*show)(struct seq_file *, void *),
84217 + void *data)
84218 +{
84219 + if (gr_proc_is_restricted())
84220 + return -EACCES;
84221 +
84222 + return single_open(file, show, data);
84223 +}
84224 +EXPORT_SYMBOL(single_open_restrict);
84225 +
84226 +
84227 int single_release(struct inode *inode, struct file *file)
84228 {
84229 const struct seq_operations *op = ((struct seq_file *)file->private_data)->op;
84230 diff --git a/fs/splice.c b/fs/splice.c
84231 index 5fc1e50..6ae8957 100644
84232 --- a/fs/splice.c
84233 +++ b/fs/splice.c
84234 @@ -192,7 +192,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
84235 pipe_lock(pipe);
84236
84237 for (;;) {
84238 - if (!pipe->readers) {
84239 + if (!atomic_read(&pipe->readers)) {
84240 send_sig(SIGPIPE, current, 0);
84241 if (!ret)
84242 ret = -EPIPE;
84243 @@ -215,7 +215,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
84244 page_nr++;
84245 ret += buf->len;
84246
84247 - if (pipe->files)
84248 + if (atomic_read(&pipe->files))
84249 do_wakeup = 1;
84250
84251 if (!--spd->nr_pages)
84252 @@ -246,9 +246,9 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,
84253 do_wakeup = 0;
84254 }
84255
84256 - pipe->waiting_writers++;
84257 + atomic_inc(&pipe->waiting_writers);
84258 pipe_wait(pipe);
84259 - pipe->waiting_writers--;
84260 + atomic_dec(&pipe->waiting_writers);
84261 }
84262
84263 pipe_unlock(pipe);
84264 @@ -579,7 +579,7 @@ static ssize_t kernel_readv(struct file *file, const struct iovec *vec,
84265 old_fs = get_fs();
84266 set_fs(get_ds());
84267 /* The cast to a user pointer is valid due to the set_fs() */
84268 - res = vfs_readv(file, (const struct iovec __user *)vec, vlen, &pos);
84269 + res = vfs_readv(file, (const struct iovec __force_user *)vec, vlen, &pos);
84270 set_fs(old_fs);
84271
84272 return res;
84273 @@ -594,7 +594,7 @@ ssize_t kernel_write(struct file *file, const char *buf, size_t count,
84274 old_fs = get_fs();
84275 set_fs(get_ds());
84276 /* The cast to a user pointer is valid due to the set_fs() */
84277 - res = vfs_write(file, (__force const char __user *)buf, count, &pos);
84278 + res = vfs_write(file, (const char __force_user *)buf, count, &pos);
84279 set_fs(old_fs);
84280
84281 return res;
84282 @@ -647,7 +647,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
84283 goto err;
84284
84285 this_len = min_t(size_t, len, PAGE_CACHE_SIZE - offset);
84286 - vec[i].iov_base = (void __user *) page_address(page);
84287 + vec[i].iov_base = (void __force_user *) page_address(page);
84288 vec[i].iov_len = this_len;
84289 spd.pages[i] = page;
84290 spd.nr_pages++;
84291 @@ -786,7 +786,7 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
84292 ops->release(pipe, buf);
84293 pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
84294 pipe->nrbufs--;
84295 - if (pipe->files)
84296 + if (atomic_read(&pipe->files))
84297 sd->need_wakeup = true;
84298 }
84299
84300 @@ -810,10 +810,10 @@ static int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_des
84301 static int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd)
84302 {
84303 while (!pipe->nrbufs) {
84304 - if (!pipe->writers)
84305 + if (!atomic_read(&pipe->writers))
84306 return 0;
84307
84308 - if (!pipe->waiting_writers && sd->num_spliced)
84309 + if (!atomic_read(&pipe->waiting_writers) && sd->num_spliced)
84310 return 0;
84311
84312 if (sd->flags & SPLICE_F_NONBLOCK)
84313 @@ -1028,7 +1028,7 @@ iter_file_splice_write(struct pipe_inode_info *pipe, struct file *out,
84314 ops->release(pipe, buf);
84315 pipe->curbuf = (pipe->curbuf + 1) & (pipe->buffers - 1);
84316 pipe->nrbufs--;
84317 - if (pipe->files)
84318 + if (atomic_read(&pipe->files))
84319 sd.need_wakeup = true;
84320 } else {
84321 buf->offset += ret;
84322 @@ -1188,7 +1188,7 @@ ssize_t splice_direct_to_actor(struct file *in, struct splice_desc *sd,
84323 * out of the pipe right after the splice_to_pipe(). So set
84324 * PIPE_READERS appropriately.
84325 */
84326 - pipe->readers = 1;
84327 + atomic_set(&pipe->readers, 1);
84328
84329 current->splice_pipe = pipe;
84330 }
84331 @@ -1495,6 +1495,7 @@ static int get_iovec_page_array(const struct iovec __user *iov,
84332
84333 partial[buffers].offset = off;
84334 partial[buffers].len = plen;
84335 + partial[buffers].private = 0;
84336
84337 off = 0;
84338 len -= plen;
84339 @@ -1726,9 +1727,9 @@ static int ipipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
84340 ret = -ERESTARTSYS;
84341 break;
84342 }
84343 - if (!pipe->writers)
84344 + if (!atomic_read(&pipe->writers))
84345 break;
84346 - if (!pipe->waiting_writers) {
84347 + if (!atomic_read(&pipe->waiting_writers)) {
84348 if (flags & SPLICE_F_NONBLOCK) {
84349 ret = -EAGAIN;
84350 break;
84351 @@ -1760,7 +1761,7 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
84352 pipe_lock(pipe);
84353
84354 while (pipe->nrbufs >= pipe->buffers) {
84355 - if (!pipe->readers) {
84356 + if (!atomic_read(&pipe->readers)) {
84357 send_sig(SIGPIPE, current, 0);
84358 ret = -EPIPE;
84359 break;
84360 @@ -1773,9 +1774,9 @@ static int opipe_prep(struct pipe_inode_info *pipe, unsigned int flags)
84361 ret = -ERESTARTSYS;
84362 break;
84363 }
84364 - pipe->waiting_writers++;
84365 + atomic_inc(&pipe->waiting_writers);
84366 pipe_wait(pipe);
84367 - pipe->waiting_writers--;
84368 + atomic_dec(&pipe->waiting_writers);
84369 }
84370
84371 pipe_unlock(pipe);
84372 @@ -1811,14 +1812,14 @@ retry:
84373 pipe_double_lock(ipipe, opipe);
84374
84375 do {
84376 - if (!opipe->readers) {
84377 + if (!atomic_read(&opipe->readers)) {
84378 send_sig(SIGPIPE, current, 0);
84379 if (!ret)
84380 ret = -EPIPE;
84381 break;
84382 }
84383
84384 - if (!ipipe->nrbufs && !ipipe->writers)
84385 + if (!ipipe->nrbufs && !atomic_read(&ipipe->writers))
84386 break;
84387
84388 /*
84389 @@ -1915,7 +1916,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
84390 pipe_double_lock(ipipe, opipe);
84391
84392 do {
84393 - if (!opipe->readers) {
84394 + if (!atomic_read(&opipe->readers)) {
84395 send_sig(SIGPIPE, current, 0);
84396 if (!ret)
84397 ret = -EPIPE;
84398 @@ -1960,7 +1961,7 @@ static int link_pipe(struct pipe_inode_info *ipipe,
84399 * return EAGAIN if we have the potential of some data in the
84400 * future, otherwise just return 0
84401 */
84402 - if (!ret && ipipe->waiting_writers && (flags & SPLICE_F_NONBLOCK))
84403 + if (!ret && atomic_read(&ipipe->waiting_writers) && (flags & SPLICE_F_NONBLOCK))
84404 ret = -EAGAIN;
84405
84406 pipe_unlock(ipipe);
84407 diff --git a/fs/squashfs/xattr.c b/fs/squashfs/xattr.c
84408 index e5e0ddf..09598c4 100644
84409 --- a/fs/squashfs/xattr.c
84410 +++ b/fs/squashfs/xattr.c
84411 @@ -46,8 +46,8 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
84412 + msblk->xattr_table;
84413 int offset = SQUASHFS_XATTR_OFFSET(squashfs_i(inode)->xattr);
84414 int count = squashfs_i(inode)->xattr_count;
84415 - size_t rest = buffer_size;
84416 - int err;
84417 + size_t used = 0;
84418 + ssize_t err;
84419
84420 /* check that the file system has xattrs */
84421 if (msblk->xattr_id_table == NULL)
84422 @@ -68,11 +68,11 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
84423 name_size = le16_to_cpu(entry.size);
84424 handler = squashfs_xattr_handler(le16_to_cpu(entry.type));
84425 if (handler)
84426 - prefix_size = handler->list(d, buffer, rest, NULL,
84427 + prefix_size = handler->list(d, buffer, buffer ? buffer_size - used : 0, NULL,
84428 name_size, handler->flags);
84429 if (prefix_size) {
84430 if (buffer) {
84431 - if (prefix_size + name_size + 1 > rest) {
84432 + if (prefix_size + name_size + 1 > buffer_size - used) {
84433 err = -ERANGE;
84434 goto failed;
84435 }
84436 @@ -86,7 +86,7 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
84437 buffer[name_size] = '\0';
84438 buffer += name_size + 1;
84439 }
84440 - rest -= prefix_size + name_size + 1;
84441 + used += prefix_size + name_size + 1;
84442 } else {
84443 /* no handler or insuffficient privileges, so skip */
84444 err = squashfs_read_metadata(sb, NULL, &start,
84445 @@ -107,7 +107,7 @@ ssize_t squashfs_listxattr(struct dentry *d, char *buffer,
84446 if (err < 0)
84447 goto failed;
84448 }
84449 - err = buffer_size - rest;
84450 + err = used;
84451
84452 failed:
84453 return err;
84454 diff --git a/fs/stat.c b/fs/stat.c
84455 index cccc1aa..7fe8951 100644
84456 --- a/fs/stat.c
84457 +++ b/fs/stat.c
84458 @@ -28,8 +28,13 @@ void generic_fillattr(struct inode *inode, struct kstat *stat)
84459 stat->gid = inode->i_gid;
84460 stat->rdev = inode->i_rdev;
84461 stat->size = i_size_read(inode);
84462 - stat->atime = inode->i_atime;
84463 - stat->mtime = inode->i_mtime;
84464 + if (is_sidechannel_device(inode) && !capable_nolog(CAP_MKNOD)) {
84465 + stat->atime = inode->i_ctime;
84466 + stat->mtime = inode->i_ctime;
84467 + } else {
84468 + stat->atime = inode->i_atime;
84469 + stat->mtime = inode->i_mtime;
84470 + }
84471 stat->ctime = inode->i_ctime;
84472 stat->blksize = (1 << inode->i_blkbits);
84473 stat->blocks = inode->i_blocks;
84474 @@ -52,9 +57,16 @@ EXPORT_SYMBOL(generic_fillattr);
84475 int vfs_getattr_nosec(struct path *path, struct kstat *stat)
84476 {
84477 struct inode *inode = d_backing_inode(path->dentry);
84478 + int retval;
84479
84480 - if (inode->i_op->getattr)
84481 - return inode->i_op->getattr(path->mnt, path->dentry, stat);
84482 + if (inode->i_op->getattr) {
84483 + retval = inode->i_op->getattr(path->mnt, path->dentry, stat);
84484 + if (!retval && is_sidechannel_device(inode) && !capable_nolog(CAP_MKNOD)) {
84485 + stat->atime = stat->ctime;
84486 + stat->mtime = stat->ctime;
84487 + }
84488 + return retval;
84489 + }
84490
84491 generic_fillattr(inode, stat);
84492 return 0;
84493 diff --git a/fs/sysfs/dir.c b/fs/sysfs/dir.c
84494 index 94374e4..b5da3a1 100644
84495 --- a/fs/sysfs/dir.c
84496 +++ b/fs/sysfs/dir.c
84497 @@ -33,6 +33,10 @@ void sysfs_warn_dup(struct kernfs_node *parent, const char *name)
84498 kfree(buf);
84499 }
84500
84501 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
84502 +extern int grsec_enable_sysfs_restrict;
84503 +#endif
84504 +
84505 /**
84506 * sysfs_create_dir_ns - create a directory for an object with a namespace tag
84507 * @kobj: object we're creating directory for
84508 @@ -41,9 +45,16 @@ void sysfs_warn_dup(struct kernfs_node *parent, const char *name)
84509 int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
84510 {
84511 struct kernfs_node *parent, *kn;
84512 + const char *name;
84513 + umode_t mode = S_IRWXU | S_IRUGO | S_IXUGO;
84514 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
84515 + const char *parent_name;
84516 +#endif
84517
84518 BUG_ON(!kobj);
84519
84520 + name = kobject_name(kobj);
84521 +
84522 if (kobj->parent)
84523 parent = kobj->parent->sd;
84524 else
84525 @@ -52,11 +63,24 @@ int sysfs_create_dir_ns(struct kobject *kobj, const void *ns)
84526 if (!parent)
84527 return -ENOENT;
84528
84529 - kn = kernfs_create_dir_ns(parent, kobject_name(kobj),
84530 - S_IRWXU | S_IRUGO | S_IXUGO, kobj, ns);
84531 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
84532 + parent_name = parent->name;
84533 + mode = S_IRWXU;
84534 +
84535 + if ((!strcmp(parent_name, "") && (!strcmp(name, "devices") || !strcmp(name, "fs"))) ||
84536 + (!strcmp(parent_name, "devices") && !strcmp(name, "system")) ||
84537 + (!strcmp(parent_name, "fs") && (!strcmp(name, "selinux") || !strcmp(name, "fuse") || !strcmp(name, "ecryptfs"))) ||
84538 + (!strcmp(parent_name, "system") && !strcmp(name, "cpu")))
84539 + mode = S_IRWXU | S_IRUGO | S_IXUGO;
84540 + if (!grsec_enable_sysfs_restrict)
84541 + mode = S_IRWXU | S_IRUGO | S_IXUGO;
84542 +#endif
84543 +
84544 + kn = kernfs_create_dir_ns(parent, name,
84545 + mode, kobj, ns);
84546 if (IS_ERR(kn)) {
84547 if (PTR_ERR(kn) == -EEXIST)
84548 - sysfs_warn_dup(parent, kobject_name(kobj));
84549 + sysfs_warn_dup(parent, name);
84550 return PTR_ERR(kn);
84551 }
84552
84553 diff --git a/fs/sysv/sysv.h b/fs/sysv/sysv.h
84554 index 6c21228..9afd5fe 100644
84555 --- a/fs/sysv/sysv.h
84556 +++ b/fs/sysv/sysv.h
84557 @@ -187,7 +187,7 @@ static inline u32 PDP_swab(u32 x)
84558 #endif
84559 }
84560
84561 -static inline __u32 fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n)
84562 +static inline __u32 __intentional_overflow(-1) fs32_to_cpu(struct sysv_sb_info *sbi, __fs32 n)
84563 {
84564 if (sbi->s_bytesex == BYTESEX_PDP)
84565 return PDP_swab((__force __u32)n);
84566 diff --git a/fs/tracefs/inode.c b/fs/tracefs/inode.c
84567 index cbc8d5d..56d2600 100644
84568 --- a/fs/tracefs/inode.c
84569 +++ b/fs/tracefs/inode.c
84570 @@ -53,7 +53,7 @@ static const struct file_operations tracefs_file_operations = {
84571 static struct tracefs_dir_ops {
84572 int (*mkdir)(const char *name);
84573 int (*rmdir)(const char *name);
84574 -} tracefs_ops;
84575 +} __no_const tracefs_ops __read_only;
84576
84577 static char *get_dname(struct dentry *dentry)
84578 {
84579 @@ -490,8 +490,10 @@ struct dentry *tracefs_create_instance_dir(const char *name, struct dentry *pare
84580 if (!dentry)
84581 return NULL;
84582
84583 - tracefs_ops.mkdir = mkdir;
84584 - tracefs_ops.rmdir = rmdir;
84585 + pax_open_kernel();
84586 + *(void **)&tracefs_ops.mkdir = mkdir;
84587 + *(void **)&tracefs_ops.rmdir = rmdir;
84588 + pax_close_kernel();
84589
84590 return dentry;
84591 }
84592 diff --git a/fs/udf/misc.c b/fs/udf/misc.c
84593 index 71d1c25..084e2ad 100644
84594 --- a/fs/udf/misc.c
84595 +++ b/fs/udf/misc.c
84596 @@ -288,7 +288,7 @@ void udf_new_tag(char *data, uint16_t ident, uint16_t version, uint16_t snum,
84597
84598 u8 udf_tag_checksum(const struct tag *t)
84599 {
84600 - u8 *data = (u8 *)t;
84601 + const u8 *data = (const u8 *)t;
84602 u8 checksum = 0;
84603 int i;
84604 for (i = 0; i < sizeof(struct tag); ++i)
84605 diff --git a/fs/ufs/swab.h b/fs/ufs/swab.h
84606 index 8d974c4..b82f6ec 100644
84607 --- a/fs/ufs/swab.h
84608 +++ b/fs/ufs/swab.h
84609 @@ -22,7 +22,7 @@ enum {
84610 BYTESEX_BE
84611 };
84612
84613 -static inline u64
84614 +static inline u64 __intentional_overflow(-1)
84615 fs64_to_cpu(struct super_block *sbp, __fs64 n)
84616 {
84617 if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE)
84618 @@ -40,7 +40,7 @@ cpu_to_fs64(struct super_block *sbp, u64 n)
84619 return (__force __fs64)cpu_to_be64(n);
84620 }
84621
84622 -static inline u32
84623 +static inline u32 __intentional_overflow(-1)
84624 fs32_to_cpu(struct super_block *sbp, __fs32 n)
84625 {
84626 if (UFS_SB(sbp)->s_bytesex == BYTESEX_LE)
84627 diff --git a/fs/utimes.c b/fs/utimes.c
84628 index aa138d6..5f3a811 100644
84629 --- a/fs/utimes.c
84630 +++ b/fs/utimes.c
84631 @@ -1,6 +1,7 @@
84632 #include <linux/compiler.h>
84633 #include <linux/file.h>
84634 #include <linux/fs.h>
84635 +#include <linux/security.h>
84636 #include <linux/linkage.h>
84637 #include <linux/mount.h>
84638 #include <linux/namei.h>
84639 @@ -103,6 +104,12 @@ static int utimes_common(struct path *path, struct timespec *times)
84640 }
84641 }
84642 retry_deleg:
84643 +
84644 + if (!gr_acl_handle_utime(path->dentry, path->mnt)) {
84645 + error = -EACCES;
84646 + goto mnt_drop_write_and_out;
84647 + }
84648 +
84649 mutex_lock(&inode->i_mutex);
84650 error = notify_change(path->dentry, &newattrs, &delegated_inode);
84651 mutex_unlock(&inode->i_mutex);
84652 diff --git a/fs/xattr.c b/fs/xattr.c
84653 index 072fee1..9e497b0 100644
84654 --- a/fs/xattr.c
84655 +++ b/fs/xattr.c
84656 @@ -227,6 +227,27 @@ int vfs_xattr_cmp(struct dentry *dentry, const char *xattr_name,
84657 return rc;
84658 }
84659
84660 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
84661 +ssize_t
84662 +pax_getxattr(struct dentry *dentry, void *value, size_t size)
84663 +{
84664 + struct inode *inode = dentry->d_inode;
84665 + ssize_t error;
84666 +
84667 + error = inode_permission(inode, MAY_EXEC);
84668 + if (error)
84669 + return error;
84670 +
84671 + if (inode->i_op->getxattr)
84672 + error = inode->i_op->getxattr(dentry, XATTR_NAME_PAX_FLAGS, value, size);
84673 + else
84674 + error = -EOPNOTSUPP;
84675 +
84676 + return error;
84677 +}
84678 +EXPORT_SYMBOL(pax_getxattr);
84679 +#endif
84680 +
84681 ssize_t
84682 vfs_getxattr(struct dentry *dentry, const char *name, void *value, size_t size)
84683 {
84684 @@ -319,7 +340,7 @@ EXPORT_SYMBOL_GPL(vfs_removexattr);
84685 * Extended attribute SET operations
84686 */
84687 static long
84688 -setxattr(struct dentry *d, const char __user *name, const void __user *value,
84689 +setxattr(struct path *path, const char __user *name, const void __user *value,
84690 size_t size, int flags)
84691 {
84692 int error;
84693 @@ -355,7 +376,12 @@ setxattr(struct dentry *d, const char __user *name, const void __user *value,
84694 posix_acl_fix_xattr_from_user(kvalue, size);
84695 }
84696
84697 - error = vfs_setxattr(d, kname, kvalue, size, flags);
84698 + if (!gr_acl_handle_setxattr(path->dentry, path->mnt)) {
84699 + error = -EACCES;
84700 + goto out;
84701 + }
84702 +
84703 + error = vfs_setxattr(path->dentry, kname, kvalue, size, flags);
84704 out:
84705 if (vvalue)
84706 vfree(vvalue);
84707 @@ -376,7 +402,7 @@ retry:
84708 return error;
84709 error = mnt_want_write(path.mnt);
84710 if (!error) {
84711 - error = setxattr(path.dentry, name, value, size, flags);
84712 + error = setxattr(&path, name, value, size, flags);
84713 mnt_drop_write(path.mnt);
84714 }
84715 path_put(&path);
84716 @@ -412,7 +438,7 @@ SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name,
84717 audit_file(f.file);
84718 error = mnt_want_write_file(f.file);
84719 if (!error) {
84720 - error = setxattr(f.file->f_path.dentry, name, value, size, flags);
84721 + error = setxattr(&f.file->f_path, name, value, size, flags);
84722 mnt_drop_write_file(f.file);
84723 }
84724 fdput(f);
84725 @@ -598,7 +624,7 @@ SYSCALL_DEFINE3(flistxattr, int, fd, char __user *, list, size_t, size)
84726 * Extended attribute REMOVE operations
84727 */
84728 static long
84729 -removexattr(struct dentry *d, const char __user *name)
84730 +removexattr(struct path *path, const char __user *name)
84731 {
84732 int error;
84733 char kname[XATTR_NAME_MAX + 1];
84734 @@ -609,7 +635,10 @@ removexattr(struct dentry *d, const char __user *name)
84735 if (error < 0)
84736 return error;
84737
84738 - return vfs_removexattr(d, kname);
84739 + if (!gr_acl_handle_removexattr(path->dentry, path->mnt))
84740 + return -EACCES;
84741 +
84742 + return vfs_removexattr(path->dentry, kname);
84743 }
84744
84745 static int path_removexattr(const char __user *pathname,
84746 @@ -623,7 +652,7 @@ retry:
84747 return error;
84748 error = mnt_want_write(path.mnt);
84749 if (!error) {
84750 - error = removexattr(path.dentry, name);
84751 + error = removexattr(&path, name);
84752 mnt_drop_write(path.mnt);
84753 }
84754 path_put(&path);
84755 @@ -649,14 +678,16 @@ SYSCALL_DEFINE2(lremovexattr, const char __user *, pathname,
84756 SYSCALL_DEFINE2(fremovexattr, int, fd, const char __user *, name)
84757 {
84758 struct fd f = fdget(fd);
84759 + struct path *path;
84760 int error = -EBADF;
84761
84762 if (!f.file)
84763 return error;
84764 + path = &f.file->f_path;
84765 audit_file(f.file);
84766 error = mnt_want_write_file(f.file);
84767 if (!error) {
84768 - error = removexattr(f.file->f_path.dentry, name);
84769 + error = removexattr(path, name);
84770 mnt_drop_write_file(f.file);
84771 }
84772 fdput(f);
84773 diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
84774 index 63e05b6..249b043 100644
84775 --- a/fs/xfs/libxfs/xfs_bmap.c
84776 +++ b/fs/xfs/libxfs/xfs_bmap.c
84777 @@ -554,7 +554,7 @@ xfs_bmap_validate_ret(
84778
84779 #else
84780 #define xfs_bmap_check_leaf_extents(cur, ip, whichfork) do { } while (0)
84781 -#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap)
84782 +#define xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap) do { } while (0)
84783 #endif /* DEBUG */
84784
84785 /*
84786 diff --git a/fs/xfs/xfs_dir2_readdir.c b/fs/xfs/xfs_dir2_readdir.c
84787 index 098cd78..724d3f8 100644
84788 --- a/fs/xfs/xfs_dir2_readdir.c
84789 +++ b/fs/xfs/xfs_dir2_readdir.c
84790 @@ -140,7 +140,12 @@ xfs_dir2_sf_getdents(
84791 ino = dp->d_ops->sf_get_ino(sfp, sfep);
84792 filetype = dp->d_ops->sf_get_ftype(sfep);
84793 ctx->pos = off & 0x7fffffff;
84794 - if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
84795 + if (dp->i_df.if_u1.if_data == dp->i_df.if_u2.if_inline_data) {
84796 + char name[sfep->namelen];
84797 + memcpy(name, sfep->name, sfep->namelen);
84798 + if (!dir_emit(ctx, name, sfep->namelen, ino, xfs_dir3_get_dtype(dp->i_mount, filetype)))
84799 + return 0;
84800 + } else if (!dir_emit(ctx, (char *)sfep->name, sfep->namelen, ino,
84801 xfs_dir3_get_dtype(dp->i_mount, filetype)))
84802 return 0;
84803 sfep = dp->d_ops->sf_nextentry(sfp, sfep);
84804 diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
84805 index ea7d85a..6d4b24b 100644
84806 --- a/fs/xfs/xfs_ioctl.c
84807 +++ b/fs/xfs/xfs_ioctl.c
84808 @@ -120,7 +120,7 @@ xfs_find_handle(
84809 }
84810
84811 error = -EFAULT;
84812 - if (copy_to_user(hreq->ohandle, &handle, hsize) ||
84813 + if (hsize > sizeof handle || copy_to_user(hreq->ohandle, &handle, hsize) ||
84814 copy_to_user(hreq->ohandlen, &hsize, sizeof(__s32)))
84815 goto out_put;
84816
84817 diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
84818 index 85f883d..db6eecc 100644
84819 --- a/fs/xfs/xfs_linux.h
84820 +++ b/fs/xfs/xfs_linux.h
84821 @@ -211,7 +211,7 @@ static inline kgid_t xfs_gid_to_kgid(__uint32_t gid)
84822 * of the compiler which do not like us using do_div in the middle
84823 * of large functions.
84824 */
84825 -static inline __u32 xfs_do_div(void *a, __u32 b, int n)
84826 +static inline __u32 __intentional_overflow(-1) xfs_do_div(void *a, __u32 b, int n)
84827 {
84828 __u32 mod;
84829
84830 @@ -267,7 +267,7 @@ static inline __u32 xfs_do_mod(void *a, __u32 b, int n)
84831 return 0;
84832 }
84833 #else
84834 -static inline __u32 xfs_do_div(void *a, __u32 b, int n)
84835 +static inline __u32 __intentional_overflow(-1) xfs_do_div(void *a, __u32 b, int n)
84836 {
84837 __u32 mod;
84838
84839 diff --git a/grsecurity/Kconfig b/grsecurity/Kconfig
84840 new file mode 100644
84841 index 0000000..31f8fe4
84842 --- /dev/null
84843 +++ b/grsecurity/Kconfig
84844 @@ -0,0 +1,1182 @@
84845 +#
84846 +# grecurity configuration
84847 +#
84848 +menu "Memory Protections"
84849 +depends on GRKERNSEC
84850 +
84851 +config GRKERNSEC_KMEM
84852 + bool "Deny reading/writing to /dev/kmem, /dev/mem, and /dev/port"
84853 + default y if GRKERNSEC_CONFIG_AUTO
84854 + select STRICT_DEVMEM if (X86 || ARM || TILE || S390)
84855 + help
84856 + If you say Y here, /dev/kmem and /dev/mem won't be allowed to
84857 + be written to or read from to modify or leak the contents of the running
84858 + kernel. /dev/port will also not be allowed to be opened, writing to
84859 + /dev/cpu/*/msr will be prevented, and support for kexec will be removed.
84860 + If you have module support disabled, enabling this will close up several
84861 + ways that are currently used to insert malicious code into the running
84862 + kernel.
84863 +
84864 + Even with this feature enabled, we still highly recommend that
84865 + you use the RBAC system, as it is still possible for an attacker to
84866 + modify the running kernel through other more obscure methods.
84867 +
84868 + It is highly recommended that you say Y here if you meet all the
84869 + conditions above.
84870 +
84871 +config GRKERNSEC_VM86
84872 + bool "Restrict VM86 mode"
84873 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
84874 + depends on X86_32
84875 +
84876 + help
84877 + If you say Y here, only processes with CAP_SYS_RAWIO will be able to
84878 + make use of a special execution mode on 32bit x86 processors called
84879 + Virtual 8086 (VM86) mode. XFree86 may need vm86 mode for certain
84880 + video cards and will still work with this option enabled. The purpose
84881 + of the option is to prevent exploitation of emulation errors in
84882 + virtualization of vm86 mode like the one discovered in VMWare in 2009.
84883 + Nearly all users should be able to enable this option.
84884 +
84885 +config GRKERNSEC_IO
84886 + bool "Disable privileged I/O"
84887 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
84888 + depends on X86
84889 + select RTC_CLASS
84890 + select RTC_INTF_DEV
84891 + select RTC_DRV_CMOS
84892 +
84893 + help
84894 + If you say Y here, all ioperm and iopl calls will return an error.
84895 + Ioperm and iopl can be used to modify the running kernel.
84896 + Unfortunately, some programs need this access to operate properly,
84897 + the most notable of which are XFree86 and hwclock. hwclock can be
84898 + remedied by having RTC support in the kernel, so real-time
84899 + clock support is enabled if this option is enabled, to ensure
84900 + that hwclock operates correctly. If hwclock still does not work,
84901 + either update udev or symlink /dev/rtc to /dev/rtc0.
84902 +
84903 + If you're using XFree86 or a version of Xorg from 2012 or earlier,
84904 + you may not be able to boot into a graphical environment with this
84905 + option enabled. In this case, you should use the RBAC system instead.
84906 +
84907 +config GRKERNSEC_BPF_HARDEN
84908 + bool "Harden BPF interpreter"
84909 + default y if GRKERNSEC_CONFIG_AUTO
84910 + help
84911 + Unlike previous versions of grsecurity that hardened both the BPF
84912 + interpreted code against corruption at rest as well as the JIT code
84913 + against JIT-spray attacks and attacker-controlled immediate values
84914 + for ROP, this feature will enforce disabling of the new eBPF JIT engine
84915 + and will ensure the interpreted code is read-only at rest. This feature
84916 + may be removed at a later time when eBPF stabilizes to entirely revert
84917 + back to the more secure pre-3.16 BPF interpreter/JIT.
84918 +
84919 + If you're using KERNEXEC, it's recommended that you enable this option
84920 + to supplement the hardening of the kernel.
84921 +
84922 +config GRKERNSEC_PERF_HARDEN
84923 + bool "Disable unprivileged PERF_EVENTS usage by default"
84924 + default y if GRKERNSEC_CONFIG_AUTO
84925 + depends on PERF_EVENTS
84926 + help
84927 + If you say Y here, the range of acceptable values for the
84928 + /proc/sys/kernel/perf_event_paranoid sysctl will be expanded to allow and
84929 + default to a new value: 3. When the sysctl is set to this value, no
84930 + unprivileged use of the PERF_EVENTS syscall interface will be permitted.
84931 +
84932 + Though PERF_EVENTS can be used legitimately for performance monitoring
84933 + and low-level application profiling, it is forced on regardless of
84934 + configuration, has been at fault for several vulnerabilities, and
84935 + creates new opportunities for side channels and other information leaks.
84936 +
84937 + This feature puts PERF_EVENTS into a secure default state and permits
84938 + the administrator to change out of it temporarily if unprivileged
84939 + application profiling is needed.
84940 +
84941 +config GRKERNSEC_RAND_THREADSTACK
84942 + bool "Insert random gaps between thread stacks"
84943 + default y if GRKERNSEC_CONFIG_AUTO
84944 + depends on PAX_RANDMMAP && !PPC
84945 + help
84946 + If you say Y here, a random-sized gap will be enforced between allocated
84947 + thread stacks. Glibc's NPTL and other threading libraries that
84948 + pass MAP_STACK to the kernel for thread stack allocation are supported.
84949 + The implementation currently provides 8 bits of entropy for the gap.
84950 +
84951 + Many distributions do not compile threaded remote services with the
84952 + -fstack-check argument to GCC, causing the variable-sized stack-based
84953 + allocator, alloca(), to not probe the stack on allocation. This
84954 + permits an unbounded alloca() to skip over any guard page and potentially
84955 + modify another thread's stack reliably. An enforced random gap
84956 + reduces the reliability of such an attack and increases the chance
84957 + that such a read/write to another thread's stack instead lands in
84958 + an unmapped area, causing a crash and triggering grsecurity's
84959 + anti-bruteforcing logic.
84960 +
84961 +config GRKERNSEC_PROC_MEMMAP
84962 + bool "Harden ASLR against information leaks and entropy reduction"
84963 + default y if (GRKERNSEC_CONFIG_AUTO || PAX_NOEXEC || PAX_ASLR)
84964 + depends on PAX_NOEXEC || PAX_ASLR
84965 + help
84966 + If you say Y here, the /proc/<pid>/maps and /proc/<pid>/stat files will
84967 + give no information about the addresses of its mappings if
84968 + PaX features that rely on random addresses are enabled on the task.
84969 + In addition to sanitizing this information and disabling other
84970 + dangerous sources of information, this option causes reads of sensitive
84971 + /proc/<pid> entries where the file descriptor was opened in a different
84972 + task than the one performing the read. Such attempts are logged.
84973 + This option also limits argv/env strings for suid/sgid binaries
84974 + to 512KB to prevent a complete exhaustion of the stack entropy provided
84975 + by ASLR. Finally, it places an 8MB stack resource limit on suid/sgid
84976 + binaries to prevent alternative mmap layouts from being abused.
84977 +
84978 + If you use PaX it is essential that you say Y here as it closes up
84979 + several holes that make full ASLR useless locally.
84980 +
84981 +
84982 +config GRKERNSEC_KSTACKOVERFLOW
84983 + bool "Prevent kernel stack overflows"
84984 + default y if GRKERNSEC_CONFIG_AUTO
84985 + depends on !IA64 && 64BIT
84986 + help
84987 + If you say Y here, the kernel's process stacks will be allocated
84988 + with vmalloc instead of the kernel's default allocator. This
84989 + introduces guard pages that in combination with the alloca checking
84990 + of the STACKLEAK feature prevents all forms of kernel process stack
84991 + overflow abuse. Note that this is different from kernel stack
84992 + buffer overflows.
84993 +
84994 +config GRKERNSEC_BRUTE
84995 + bool "Deter exploit bruteforcing"
84996 + default y if GRKERNSEC_CONFIG_AUTO
84997 + help
84998 + If you say Y here, attempts to bruteforce exploits against forking
84999 + daemons such as apache or sshd, as well as against suid/sgid binaries
85000 + will be deterred. When a child of a forking daemon is killed by PaX
85001 + or crashes due to an illegal instruction or other suspicious signal,
85002 + the parent process will be delayed 30 seconds upon every subsequent
85003 + fork until the administrator is able to assess the situation and
85004 + restart the daemon.
85005 + In the suid/sgid case, the attempt is logged, the user has all their
85006 + existing instances of the suid/sgid binary terminated and will
85007 + be unable to execute any suid/sgid binaries for 15 minutes.
85008 +
85009 + It is recommended that you also enable signal logging in the auditing
85010 + section so that logs are generated when a process triggers a suspicious
85011 + signal.
85012 + If the sysctl option is enabled, a sysctl option with name
85013 + "deter_bruteforce" is created.
85014 +
85015 +config GRKERNSEC_MODHARDEN
85016 + bool "Harden module auto-loading"
85017 + default y if GRKERNSEC_CONFIG_AUTO
85018 + depends on MODULES
85019 + help
85020 + If you say Y here, module auto-loading in response to use of some
85021 + feature implemented by an unloaded module will be restricted to
85022 + root users. Enabling this option helps defend against attacks
85023 + by unprivileged users who abuse the auto-loading behavior to
85024 + cause a vulnerable module to load that is then exploited.
85025 +
85026 + If this option prevents a legitimate use of auto-loading for a
85027 + non-root user, the administrator can execute modprobe manually
85028 + with the exact name of the module mentioned in the alert log.
85029 + Alternatively, the administrator can add the module to the list
85030 + of modules loaded at boot by modifying init scripts.
85031 +
85032 + Modification of init scripts will most likely be needed on
85033 + Ubuntu servers with encrypted home directory support enabled,
85034 + as the first non-root user logging in will cause the ecb(aes),
85035 + ecb(aes)-all, cbc(aes), and cbc(aes)-all modules to be loaded.
85036 +
85037 +config GRKERNSEC_HIDESYM
85038 + bool "Hide kernel symbols"
85039 + default y if GRKERNSEC_CONFIG_AUTO
85040 + select PAX_USERCOPY_SLABS
85041 + help
85042 + If you say Y here, getting information on loaded modules, and
85043 + displaying all kernel symbols through a syscall will be restricted
85044 + to users with CAP_SYS_MODULE. For software compatibility reasons,
85045 + /proc/kallsyms will be restricted to the root user. The RBAC
85046 + system can hide that entry even from root.
85047 +
85048 + This option also prevents leaking of kernel addresses through
85049 + several /proc entries.
85050 +
85051 + Note that this option is only effective provided the following
85052 + conditions are met:
85053 + 1) The kernel using grsecurity is not precompiled by some distribution
85054 + 2) You have also enabled GRKERNSEC_DMESG
85055 + 3) You are using the RBAC system and hiding other files such as your
85056 + kernel image and System.map. Alternatively, enabling this option
85057 + causes the permissions on /boot, /lib/modules, and the kernel
85058 + source directory to change at compile time to prevent
85059 + reading by non-root users.
85060 + If the above conditions are met, this option will aid in providing a
85061 + useful protection against local kernel exploitation of overflows
85062 + and arbitrary read/write vulnerabilities.
85063 +
85064 + It is highly recommended that you enable GRKERNSEC_PERF_HARDEN
85065 + in addition to this feature.
85066 +
85067 +config GRKERNSEC_RANDSTRUCT
85068 + bool "Randomize layout of sensitive kernel structures"
85069 + default y if GRKERNSEC_CONFIG_AUTO
85070 + select GRKERNSEC_HIDESYM
85071 + select MODVERSIONS if MODULES
85072 + help
85073 + If you say Y here, the layouts of a number of sensitive kernel
85074 + structures (task, fs, cred, etc) and all structures composed entirely
85075 + of function pointers (aka "ops" structs) will be randomized at compile-time.
85076 + This can introduce the requirement of an additional infoleak
85077 + vulnerability for exploits targeting these structure types.
85078 +
85079 + Enabling this feature will introduce some performance impact, slightly
85080 + increase memory usage, and prevent the use of forensic tools like
85081 + Volatility against the system (unless the kernel source tree isn't
85082 + cleaned after kernel installation).
85083 +
85084 + The seed used for compilation is located at tools/gcc/randomize_layout_seed.h.
85085 + It remains after a make clean to allow for external modules to be compiled
85086 + with the existing seed and will be removed by a make mrproper or
85087 + make distclean.
85088 +
85089 + Note that the implementation requires gcc 4.6.4. or newer. You may need
85090 + to install the supporting headers explicitly in addition to the normal
85091 + gcc package.
85092 +
85093 +config GRKERNSEC_RANDSTRUCT_PERFORMANCE
85094 + bool "Use cacheline-aware structure randomization"
85095 + depends on GRKERNSEC_RANDSTRUCT
85096 + default y if GRKERNSEC_CONFIG_PRIORITY_PERF
85097 + help
85098 + If you say Y here, the RANDSTRUCT randomization will make a best effort
85099 + at restricting randomization to cacheline-sized groups of elements. It
85100 + will further not randomize bitfields in structures. This reduces the
85101 + performance hit of RANDSTRUCT at the cost of weakened randomization.
85102 +
85103 +config GRKERNSEC_KERN_LOCKOUT
85104 + bool "Active kernel exploit response"
85105 + default y if GRKERNSEC_CONFIG_AUTO
85106 + depends on X86 || ARM || PPC || SPARC
85107 + help
85108 + If you say Y here, when a PaX alert is triggered due to suspicious
85109 + activity in the kernel (from KERNEXEC/UDEREF/USERCOPY)
85110 + or an OOPS occurs due to bad memory accesses, instead of just
85111 + terminating the offending process (and potentially allowing
85112 + a subsequent exploit from the same user), we will take one of two
85113 + actions:
85114 + If the user was root, we will panic the system
85115 + If the user was non-root, we will log the attempt, terminate
85116 + all processes owned by the user, then prevent them from creating
85117 + any new processes until the system is restarted
85118 + This deters repeated kernel exploitation/bruteforcing attempts
85119 + and is useful for later forensics.
85120 +
85121 +config GRKERNSEC_OLD_ARM_USERLAND
85122 + bool "Old ARM userland compatibility"
85123 + depends on ARM && (CPU_V6 || CPU_V6K || CPU_V7)
85124 + help
85125 + If you say Y here, stubs of executable code to perform such operations
85126 + as "compare-exchange" will be placed at fixed locations in the ARM vector
85127 + table. This is unfortunately needed for old ARM userland meant to run
85128 + across a wide range of processors. Without this option enabled,
85129 + the get_tls and data memory barrier stubs will be emulated by the kernel,
85130 + which is enough for Linaro userlands or other userlands designed for v6
85131 + and newer ARM CPUs. It's recommended that you try without this option enabled
85132 + first, and only enable it if your userland does not boot (it will likely fail
85133 + at init time).
85134 +
85135 +endmenu
85136 +menu "Role Based Access Control Options"
85137 +depends on GRKERNSEC
85138 +
85139 +config GRKERNSEC_RBAC_DEBUG
85140 + bool
85141 +
85142 +config GRKERNSEC_NO_RBAC
85143 + bool "Disable RBAC system"
85144 + help
85145 + If you say Y here, the /dev/grsec device will be removed from the kernel,
85146 + preventing the RBAC system from being enabled. You should only say Y
85147 + here if you have no intention of using the RBAC system, so as to prevent
85148 + an attacker with root access from misusing the RBAC system to hide files
85149 + and processes when loadable module support and /dev/[k]mem have been
85150 + locked down.
85151 +
85152 +config GRKERNSEC_ACL_HIDEKERN
85153 + bool "Hide kernel processes"
85154 + help
85155 + If you say Y here, all kernel threads will be hidden to all
85156 + processes but those whose subject has the "view hidden processes"
85157 + flag.
85158 +
85159 +config GRKERNSEC_ACL_MAXTRIES
85160 + int "Maximum tries before password lockout"
85161 + default 3
85162 + help
85163 + This option enforces the maximum number of times a user can attempt
85164 + to authorize themselves with the grsecurity RBAC system before being
85165 + denied the ability to attempt authorization again for a specified time.
85166 + The lower the number, the harder it will be to brute-force a password.
85167 +
85168 +config GRKERNSEC_ACL_TIMEOUT
85169 + int "Time to wait after max password tries, in seconds"
85170 + default 30
85171 + help
85172 + This option specifies the time the user must wait after attempting to
85173 + authorize to the RBAC system with the maximum number of invalid
85174 + passwords. The higher the number, the harder it will be to brute-force
85175 + a password.
85176 +
85177 +endmenu
85178 +menu "Filesystem Protections"
85179 +depends on GRKERNSEC
85180 +
85181 +config GRKERNSEC_PROC
85182 + bool "Proc restrictions"
85183 + default y if GRKERNSEC_CONFIG_AUTO
85184 + help
85185 + If you say Y here, the permissions of the /proc filesystem
85186 + will be altered to enhance system security and privacy. You MUST
85187 + choose either a user only restriction or a user and group restriction.
85188 + Depending upon the option you choose, you can either restrict users to
85189 + see only the processes they themselves run, or choose a group that can
85190 + view all processes and files normally restricted to root if you choose
85191 + the "restrict to user only" option. NOTE: If you're running identd or
85192 + ntpd as a non-root user, you will have to run it as the group you
85193 + specify here.
85194 +
85195 +config GRKERNSEC_PROC_USER
85196 + bool "Restrict /proc to user only"
85197 + depends on GRKERNSEC_PROC
85198 + help
85199 + If you say Y here, non-root users will only be able to view their own
85200 + processes, and restricts them from viewing network-related information,
85201 + and viewing kernel symbol and module information.
85202 +
85203 +config GRKERNSEC_PROC_USERGROUP
85204 + bool "Allow special group"
85205 + default y if GRKERNSEC_CONFIG_AUTO
85206 + depends on GRKERNSEC_PROC && !GRKERNSEC_PROC_USER
85207 + help
85208 + If you say Y here, you will be able to select a group that will be
85209 + able to view all processes and network-related information. If you've
85210 + enabled GRKERNSEC_HIDESYM, kernel and symbol information may still
85211 + remain hidden. This option is useful if you want to run identd as
85212 + a non-root user. The group you select may also be chosen at boot time
85213 + via "grsec_proc_gid=" on the kernel commandline.
85214 +
85215 +config GRKERNSEC_PROC_GID
85216 + int "GID for special group"
85217 + depends on GRKERNSEC_PROC_USERGROUP
85218 + default 1001
85219 +
85220 +config GRKERNSEC_PROC_ADD
85221 + bool "Additional restrictions"
85222 + default y if GRKERNSEC_CONFIG_AUTO
85223 + depends on GRKERNSEC_PROC_USER || GRKERNSEC_PROC_USERGROUP
85224 + help
85225 + If you say Y here, additional restrictions will be placed on
85226 + /proc that keep normal users from viewing device information and
85227 + slabinfo information that could be useful for exploits.
85228 +
85229 +config GRKERNSEC_LINK
85230 + bool "Linking restrictions"
85231 + default y if GRKERNSEC_CONFIG_AUTO
85232 + help
85233 + If you say Y here, /tmp race exploits will be prevented, since users
85234 + will no longer be able to follow symlinks owned by other users in
85235 + world-writable +t directories (e.g. /tmp), unless the owner of the
85236 + symlink is the owner of the directory. users will also not be
85237 + able to hardlink to files they do not own. If the sysctl option is
85238 + enabled, a sysctl option with name "linking_restrictions" is created.
85239 +
85240 +config GRKERNSEC_SYMLINKOWN
85241 + bool "Kernel-enforced SymlinksIfOwnerMatch"
85242 + default y if GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER
85243 + help
85244 + Apache's SymlinksIfOwnerMatch option has an inherent race condition
85245 + that prevents it from being used as a security feature. As Apache
85246 + verifies the symlink by performing a stat() against the target of
85247 + the symlink before it is followed, an attacker can setup a symlink
85248 + to point to a same-owned file, then replace the symlink with one
85249 + that targets another user's file just after Apache "validates" the
85250 + symlink -- a classic TOCTOU race. If you say Y here, a complete,
85251 + race-free replacement for Apache's "SymlinksIfOwnerMatch" option
85252 + will be in place for the group you specify. If the sysctl option
85253 + is enabled, a sysctl option with name "enforce_symlinksifowner" is
85254 + created.
85255 +
85256 +config GRKERNSEC_SYMLINKOWN_GID
85257 + int "GID for users with kernel-enforced SymlinksIfOwnerMatch"
85258 + depends on GRKERNSEC_SYMLINKOWN
85259 + default 1006
85260 + help
85261 + Setting this GID determines what group kernel-enforced
85262 + SymlinksIfOwnerMatch will be enabled for. If the sysctl option
85263 + is enabled, a sysctl option with name "symlinkown_gid" is created.
85264 +
85265 +config GRKERNSEC_FIFO
85266 + bool "FIFO restrictions"
85267 + default y if GRKERNSEC_CONFIG_AUTO
85268 + help
85269 + If you say Y here, users will not be able to write to FIFOs they don't
85270 + own in world-writable +t directories (e.g. /tmp), unless the owner of
85271 + the FIFO is the same owner of the directory it's held in. If the sysctl
85272 + option is enabled, a sysctl option with name "fifo_restrictions" is
85273 + created.
85274 +
85275 +config GRKERNSEC_SYSFS_RESTRICT
85276 + bool "Sysfs/debugfs restriction"
85277 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER)
85278 + depends on SYSFS
85279 + help
85280 + If you say Y here, sysfs (the pseudo-filesystem mounted at /sys) and
85281 + any filesystem normally mounted under it (e.g. debugfs) will be
85282 + mostly accessible only by root. These filesystems generally provide access
85283 + to hardware and debug information that isn't appropriate for unprivileged
85284 + users of the system. Sysfs and debugfs have also become a large source
85285 + of new vulnerabilities, ranging from infoleaks to local compromise.
85286 + There has been very little oversight with an eye toward security involved
85287 + in adding new exporters of information to these filesystems, so their
85288 + use is discouraged.
85289 + For reasons of compatibility, a few directories have been whitelisted
85290 + for access by non-root users:
85291 + /sys/fs/selinux
85292 + /sys/fs/fuse
85293 + /sys/devices/system/cpu
85294 +
85295 +config GRKERNSEC_ROFS
85296 + bool "Runtime read-only mount protection"
85297 + depends on SYSCTL
85298 + help
85299 + If you say Y here, a sysctl option with name "romount_protect" will
85300 + be created. By setting this option to 1 at runtime, filesystems
85301 + will be protected in the following ways:
85302 + * No new writable mounts will be allowed
85303 + * Existing read-only mounts won't be able to be remounted read/write
85304 + * Write operations will be denied on all block devices
85305 + This option acts independently of grsec_lock: once it is set to 1,
85306 + it cannot be turned off. Therefore, please be mindful of the resulting
85307 + behavior if this option is enabled in an init script on a read-only
85308 + filesystem.
85309 + Also be aware that as with other root-focused features, GRKERNSEC_KMEM
85310 + and GRKERNSEC_IO should be enabled and module loading disabled via
85311 + config or at runtime.
85312 + This feature is mainly intended for secure embedded systems.
85313 +
85314 +
85315 +config GRKERNSEC_DEVICE_SIDECHANNEL
85316 + bool "Eliminate stat/notify-based device sidechannels"
85317 + default y if GRKERNSEC_CONFIG_AUTO
85318 + help
85319 + If you say Y here, timing analyses on block or character
85320 + devices like /dev/ptmx using stat or inotify/dnotify/fanotify
85321 + will be thwarted for unprivileged users. If a process without
85322 + CAP_MKNOD stats such a device, the last access and last modify times
85323 + will match the device's create time. No access or modify events
85324 + will be triggered through inotify/dnotify/fanotify for such devices.
85325 + This feature will prevent attacks that may at a minimum
85326 + allow an attacker to determine the administrator's password length.
85327 +
85328 +config GRKERNSEC_CHROOT
85329 + bool "Chroot jail restrictions"
85330 + default y if GRKERNSEC_CONFIG_AUTO
85331 + help
85332 + If you say Y here, you will be able to choose several options that will
85333 + make breaking out of a chrooted jail much more difficult. If you
85334 + encounter no software incompatibilities with the following options, it
85335 + is recommended that you enable each one.
85336 +
85337 + Note that the chroot restrictions are not intended to apply to "chroots"
85338 + to directories that are simple bind mounts of the global root filesystem.
85339 + For several other reasons, a user shouldn't expect any significant
85340 + security by performing such a chroot.
85341 +
85342 +config GRKERNSEC_CHROOT_MOUNT
85343 + bool "Deny mounts"
85344 + default y if GRKERNSEC_CONFIG_AUTO
85345 + depends on GRKERNSEC_CHROOT
85346 + help
85347 + If you say Y here, processes inside a chroot will not be able to
85348 + mount or remount filesystems. If the sysctl option is enabled, a
85349 + sysctl option with name "chroot_deny_mount" is created.
85350 +
85351 +config GRKERNSEC_CHROOT_DOUBLE
85352 + bool "Deny double-chroots"
85353 + default y if GRKERNSEC_CONFIG_AUTO
85354 + depends on GRKERNSEC_CHROOT
85355 + help
85356 + If you say Y here, processes inside a chroot will not be able to chroot
85357 + again outside the chroot. This is a widely used method of breaking
85358 + out of a chroot jail and should not be allowed. If the sysctl
85359 + option is enabled, a sysctl option with name
85360 + "chroot_deny_chroot" is created.
85361 +
85362 +config GRKERNSEC_CHROOT_PIVOT
85363 + bool "Deny pivot_root in chroot"
85364 + default y if GRKERNSEC_CONFIG_AUTO
85365 + depends on GRKERNSEC_CHROOT
85366 + help
85367 + If you say Y here, processes inside a chroot will not be able to use
85368 + a function called pivot_root() that was introduced in Linux 2.3.41. It
85369 + works similar to chroot in that it changes the root filesystem. This
85370 + function could be misused in a chrooted process to attempt to break out
85371 + of the chroot, and therefore should not be allowed. If the sysctl
85372 + option is enabled, a sysctl option with name "chroot_deny_pivot" is
85373 + created.
85374 +
85375 +config GRKERNSEC_CHROOT_CHDIR
85376 + bool "Enforce chdir(\"/\") on all chroots"
85377 + default y if GRKERNSEC_CONFIG_AUTO
85378 + depends on GRKERNSEC_CHROOT
85379 + help
85380 + If you say Y here, the current working directory of all newly-chrooted
85381 + applications will be set to the the root directory of the chroot.
85382 + The man page on chroot(2) states:
85383 + Note that this call does not change the current working
85384 + directory, so that `.' can be outside the tree rooted at
85385 + `/'. In particular, the super-user can escape from a
85386 + `chroot jail' by doing `mkdir foo; chroot foo; cd ..'.
85387 +
85388 + It is recommended that you say Y here, since it's not known to break
85389 + any software. If the sysctl option is enabled, a sysctl option with
85390 + name "chroot_enforce_chdir" is created.
85391 +
85392 +config GRKERNSEC_CHROOT_CHMOD
85393 + bool "Deny (f)chmod +s"
85394 + default y if GRKERNSEC_CONFIG_AUTO
85395 + depends on GRKERNSEC_CHROOT
85396 + help
85397 + If you say Y here, processes inside a chroot will not be able to chmod
85398 + or fchmod files to make them have suid or sgid bits. This protects
85399 + against another published method of breaking a chroot. If the sysctl
85400 + option is enabled, a sysctl option with name "chroot_deny_chmod" is
85401 + created.
85402 +
85403 +config GRKERNSEC_CHROOT_FCHDIR
85404 + bool "Deny fchdir and fhandle out of chroot"
85405 + default y if GRKERNSEC_CONFIG_AUTO
85406 + depends on GRKERNSEC_CHROOT
85407 + help
85408 + If you say Y here, a well-known method of breaking chroots by fchdir'ing
85409 + to a file descriptor of the chrooting process that points to a directory
85410 + outside the filesystem will be stopped. Additionally, this option prevents
85411 + use of the recently-created syscall for opening files by a guessable "file
85412 + handle" inside a chroot. If the sysctl option is enabled, a sysctl option
85413 + with name "chroot_deny_fchdir" is created.
85414 +
85415 +config GRKERNSEC_CHROOT_MKNOD
85416 + bool "Deny mknod"
85417 + default y if GRKERNSEC_CONFIG_AUTO
85418 + depends on GRKERNSEC_CHROOT
85419 + help
85420 + If you say Y here, processes inside a chroot will not be allowed to
85421 + mknod. The problem with using mknod inside a chroot is that it
85422 + would allow an attacker to create a device entry that is the same
85423 + as one on the physical root of your system, which could range from
85424 + anything from the console device to a device for your harddrive (which
85425 + they could then use to wipe the drive or steal data). It is recommended
85426 + that you say Y here, unless you run into software incompatibilities.
85427 + If the sysctl option is enabled, a sysctl option with name
85428 + "chroot_deny_mknod" is created.
85429 +
85430 +config GRKERNSEC_CHROOT_SHMAT
85431 + bool "Deny shmat() out of chroot"
85432 + default y if GRKERNSEC_CONFIG_AUTO
85433 + depends on GRKERNSEC_CHROOT
85434 + help
85435 + If you say Y here, processes inside a chroot will not be able to attach
85436 + to shared memory segments that were created outside of the chroot jail.
85437 + It is recommended that you say Y here. If the sysctl option is enabled,
85438 + a sysctl option with name "chroot_deny_shmat" is created.
85439 +
85440 +config GRKERNSEC_CHROOT_UNIX
85441 + bool "Deny access to abstract AF_UNIX sockets out of chroot"
85442 + default y if GRKERNSEC_CONFIG_AUTO
85443 + depends on GRKERNSEC_CHROOT
85444 + help
85445 + If you say Y here, processes inside a chroot will not be able to
85446 + connect to abstract (meaning not belonging to a filesystem) Unix
85447 + domain sockets that were bound outside of a chroot. It is recommended
85448 + that you say Y here. If the sysctl option is enabled, a sysctl option
85449 + with name "chroot_deny_unix" is created.
85450 +
85451 +config GRKERNSEC_CHROOT_FINDTASK
85452 + bool "Protect outside processes"
85453 + default y if GRKERNSEC_CONFIG_AUTO
85454 + depends on GRKERNSEC_CHROOT
85455 + help
85456 + If you say Y here, processes inside a chroot will not be able to
85457 + kill, send signals with fcntl, ptrace, capget, getpgid, setpgid,
85458 + getsid, or view any process outside of the chroot. If the sysctl
85459 + option is enabled, a sysctl option with name "chroot_findtask" is
85460 + created.
85461 +
85462 +config GRKERNSEC_CHROOT_NICE
85463 + bool "Restrict priority changes"
85464 + default y if GRKERNSEC_CONFIG_AUTO
85465 + depends on GRKERNSEC_CHROOT
85466 + help
85467 + If you say Y here, processes inside a chroot will not be able to raise
85468 + the priority of processes in the chroot, or alter the priority of
85469 + processes outside the chroot. This provides more security than simply
85470 + removing CAP_SYS_NICE from the process' capability set. If the
85471 + sysctl option is enabled, a sysctl option with name "chroot_restrict_nice"
85472 + is created.
85473 +
85474 +config GRKERNSEC_CHROOT_SYSCTL
85475 + bool "Deny sysctl writes"
85476 + default y if GRKERNSEC_CONFIG_AUTO
85477 + depends on GRKERNSEC_CHROOT
85478 + help
85479 + If you say Y here, an attacker in a chroot will not be able to
85480 + write to sysctl entries, either by sysctl(2) or through a /proc
85481 + interface. It is strongly recommended that you say Y here. If the
85482 + sysctl option is enabled, a sysctl option with name
85483 + "chroot_deny_sysctl" is created.
85484 +
85485 +config GRKERNSEC_CHROOT_RENAME
85486 + bool "Deny bad renames"
85487 + default y if GRKERNSEC_CONFIG_AUTO
85488 + depends on GRKERNSEC_CHROOT
85489 + help
85490 + If you say Y here, an attacker in a chroot will not be able to
85491 + abuse the ability to create double chroots to break out of the
85492 + chroot by exploiting a race condition between a rename of a directory
85493 + within a chroot against an open of a symlink with relative path
85494 + components. This feature will likewise prevent an accomplice outside
85495 + a chroot from enabling a user inside the chroot to break out and make
85496 + use of their credentials on the global filesystem. Enabling this
85497 + feature is essential to prevent root users from breaking out of a
85498 + chroot. If the sysctl option is enabled, a sysctl option with name
85499 + "chroot_deny_bad_rename" is created.
85500 +
85501 +config GRKERNSEC_CHROOT_CAPS
85502 + bool "Capability restrictions"
85503 + default y if GRKERNSEC_CONFIG_AUTO
85504 + depends on GRKERNSEC_CHROOT
85505 + help
85506 + If you say Y here, the capabilities on all processes within a
85507 + chroot jail will be lowered to stop module insertion, raw i/o,
85508 + system and net admin tasks, rebooting the system, modifying immutable
85509 + files, modifying IPC owned by another, and changing the system time.
85510 + This is left an option because it can break some apps. Disable this
85511 + if your chrooted apps are having problems performing those kinds of
85512 + tasks. If the sysctl option is enabled, a sysctl option with
85513 + name "chroot_caps" is created.
85514 +
85515 +config GRKERNSEC_CHROOT_INITRD
85516 + bool "Exempt initrd tasks from restrictions"
85517 + default y if GRKERNSEC_CONFIG_AUTO
85518 + depends on GRKERNSEC_CHROOT && BLK_DEV_INITRD
85519 + help
85520 + If you say Y here, tasks started prior to init will be exempted from
85521 + grsecurity's chroot restrictions. This option is mainly meant to
85522 + resolve Plymouth's performing privileged operations unnecessarily
85523 + in a chroot.
85524 +
85525 +endmenu
85526 +menu "Kernel Auditing"
85527 +depends on GRKERNSEC
85528 +
85529 +config GRKERNSEC_AUDIT_GROUP
85530 + bool "Single group for auditing"
85531 + help
85532 + If you say Y here, the exec and chdir logging features will only operate
85533 + on a group you specify. This option is recommended if you only want to
85534 + watch certain users instead of having a large amount of logs from the
85535 + entire system. If the sysctl option is enabled, a sysctl option with
85536 + name "audit_group" is created.
85537 +
85538 +config GRKERNSEC_AUDIT_GID
85539 + int "GID for auditing"
85540 + depends on GRKERNSEC_AUDIT_GROUP
85541 + default 1007
85542 +
85543 +config GRKERNSEC_EXECLOG
85544 + bool "Exec logging"
85545 + help
85546 + If you say Y here, all execve() calls will be logged (since the
85547 + other exec*() calls are frontends to execve(), all execution
85548 + will be logged). Useful for shell-servers that like to keep track
85549 + of their users. If the sysctl option is enabled, a sysctl option with
85550 + name "exec_logging" is created.
85551 + WARNING: This option when enabled will produce a LOT of logs, especially
85552 + on an active system.
85553 +
85554 +config GRKERNSEC_RESLOG
85555 + bool "Resource logging"
85556 + default y if GRKERNSEC_CONFIG_AUTO
85557 + help
85558 + If you say Y here, all attempts to overstep resource limits will
85559 + be logged with the resource name, the requested size, and the current
85560 + limit. It is highly recommended that you say Y here. If the sysctl
85561 + option is enabled, a sysctl option with name "resource_logging" is
85562 + created. If the RBAC system is enabled, the sysctl value is ignored.
85563 +
85564 +config GRKERNSEC_CHROOT_EXECLOG
85565 + bool "Log execs within chroot"
85566 + help
85567 + If you say Y here, all executions inside a chroot jail will be logged
85568 + to syslog. This can cause a large amount of logs if certain
85569 + applications (eg. djb's daemontools) are installed on the system, and
85570 + is therefore left as an option. If the sysctl option is enabled, a
85571 + sysctl option with name "chroot_execlog" is created.
85572 +
85573 +config GRKERNSEC_AUDIT_PTRACE
85574 + bool "Ptrace logging"
85575 + help
85576 + If you say Y here, all attempts to attach to a process via ptrace
85577 + will be logged. If the sysctl option is enabled, a sysctl option
85578 + with name "audit_ptrace" is created.
85579 +
85580 +config GRKERNSEC_AUDIT_CHDIR
85581 + bool "Chdir logging"
85582 + help
85583 + If you say Y here, all chdir() calls will be logged. If the sysctl
85584 + option is enabled, a sysctl option with name "audit_chdir" is created.
85585 +
85586 +config GRKERNSEC_AUDIT_MOUNT
85587 + bool "(Un)Mount logging"
85588 + help
85589 + If you say Y here, all mounts and unmounts will be logged. If the
85590 + sysctl option is enabled, a sysctl option with name "audit_mount" is
85591 + created.
85592 +
85593 +config GRKERNSEC_SIGNAL
85594 + bool "Signal logging"
85595 + default y if GRKERNSEC_CONFIG_AUTO
85596 + help
85597 + If you say Y here, certain important signals will be logged, such as
85598 + SIGSEGV, which will as a result inform you of when a error in a program
85599 + occurred, which in some cases could mean a possible exploit attempt.
85600 + If the sysctl option is enabled, a sysctl option with name
85601 + "signal_logging" is created.
85602 +
85603 +config GRKERNSEC_FORKFAIL
85604 + bool "Fork failure logging"
85605 + help
85606 + If you say Y here, all failed fork() attempts will be logged.
85607 + This could suggest a fork bomb, or someone attempting to overstep
85608 + their process limit. If the sysctl option is enabled, a sysctl option
85609 + with name "forkfail_logging" is created.
85610 +
85611 +config GRKERNSEC_TIME
85612 + bool "Time change logging"
85613 + default y if GRKERNSEC_CONFIG_AUTO
85614 + help
85615 + If you say Y here, any changes of the system clock will be logged.
85616 + If the sysctl option is enabled, a sysctl option with name
85617 + "timechange_logging" is created.
85618 +
85619 +config GRKERNSEC_PROC_IPADDR
85620 + bool "/proc/<pid>/ipaddr support"
85621 + default y if GRKERNSEC_CONFIG_AUTO
85622 + help
85623 + If you say Y here, a new entry will be added to each /proc/<pid>
85624 + directory that contains the IP address of the person using the task.
85625 + The IP is carried across local TCP and AF_UNIX stream sockets.
85626 + This information can be useful for IDS/IPSes to perform remote response
85627 + to a local attack. The entry is readable by only the owner of the
85628 + process (and root if he has CAP_DAC_OVERRIDE, which can be removed via
85629 + the RBAC system), and thus does not create privacy concerns.
85630 +
85631 +config GRKERNSEC_RWXMAP_LOG
85632 + bool 'Denied RWX mmap/mprotect logging'
85633 + default y if GRKERNSEC_CONFIG_AUTO
85634 + depends on PAX_MPROTECT && !PAX_EMUPLT && !PAX_EMUSIGRT
85635 + help
85636 + If you say Y here, calls to mmap() and mprotect() with explicit
85637 + usage of PROT_WRITE and PROT_EXEC together will be logged when
85638 + denied by the PAX_MPROTECT feature. This feature will also
85639 + log other problematic scenarios that can occur when PAX_MPROTECT
85640 + is enabled on a binary, like textrels and PT_GNU_STACK. If the
85641 + sysctl option is enabled, a sysctl option with name "rwxmap_logging"
85642 + is created.
85643 +
85644 +endmenu
85645 +
85646 +menu "Executable Protections"
85647 +depends on GRKERNSEC
85648 +
85649 +config GRKERNSEC_DMESG
85650 + bool "Dmesg(8) restriction"
85651 + default y if GRKERNSEC_CONFIG_AUTO
85652 + help
85653 + If you say Y here, non-root users will not be able to use dmesg(8)
85654 + to view the contents of the kernel's circular log buffer.
85655 + The kernel's log buffer often contains kernel addresses and other
85656 + identifying information useful to an attacker in fingerprinting a
85657 + system for a targeted exploit.
85658 + If the sysctl option is enabled, a sysctl option with name "dmesg" is
85659 + created.
85660 +
85661 +config GRKERNSEC_HARDEN_PTRACE
85662 + bool "Deter ptrace-based process snooping"
85663 + default y if GRKERNSEC_CONFIG_AUTO
85664 + help
85665 + If you say Y here, TTY sniffers and other malicious monitoring
85666 + programs implemented through ptrace will be defeated. If you
85667 + have been using the RBAC system, this option has already been
85668 + enabled for several years for all users, with the ability to make
85669 + fine-grained exceptions.
85670 +
85671 + This option only affects the ability of non-root users to ptrace
85672 + processes that are not a descendent of the ptracing process.
85673 + This means that strace ./binary and gdb ./binary will still work,
85674 + but attaching to arbitrary processes will not. If the sysctl
85675 + option is enabled, a sysctl option with name "harden_ptrace" is
85676 + created.
85677 +
85678 +config GRKERNSEC_PTRACE_READEXEC
85679 + bool "Require read access to ptrace sensitive binaries"
85680 + default y if GRKERNSEC_CONFIG_AUTO
85681 + help
85682 + If you say Y here, unprivileged users will not be able to ptrace unreadable
85683 + binaries. This option is useful in environments that
85684 + remove the read bits (e.g. file mode 4711) from suid binaries to
85685 + prevent infoleaking of their contents. This option adds
85686 + consistency to the use of that file mode, as the binary could normally
85687 + be read out when run without privileges while ptracing.
85688 +
85689 + If the sysctl option is enabled, a sysctl option with name "ptrace_readexec"
85690 + is created.
85691 +
85692 +config GRKERNSEC_SETXID
85693 + bool "Enforce consistent multithreaded privileges"
85694 + default y if GRKERNSEC_CONFIG_AUTO
85695 + depends on (X86 || SPARC64 || PPC || ARM || MIPS)
85696 + help
85697 + If you say Y here, a change from a root uid to a non-root uid
85698 + in a multithreaded application will cause the resulting uids,
85699 + gids, supplementary groups, and capabilities in that thread
85700 + to be propagated to the other threads of the process. In most
85701 + cases this is unnecessary, as glibc will emulate this behavior
85702 + on behalf of the application. Other libcs do not act in the
85703 + same way, allowing the other threads of the process to continue
85704 + running with root privileges. If the sysctl option is enabled,
85705 + a sysctl option with name "consistent_setxid" is created.
85706 +
85707 +config GRKERNSEC_HARDEN_IPC
85708 + bool "Disallow access to overly-permissive IPC objects"
85709 + default y if GRKERNSEC_CONFIG_AUTO
85710 + depends on SYSVIPC
85711 + help
85712 + If you say Y here, access to overly-permissive IPC objects (shared
85713 + memory, message queues, and semaphores) will be denied for processes
85714 + given the following criteria beyond normal permission checks:
85715 + 1) If the IPC object is world-accessible and the euid doesn't match
85716 + that of the creator or current uid for the IPC object
85717 + 2) If the IPC object is group-accessible and the egid doesn't
85718 + match that of the creator or current gid for the IPC object
85719 + It's a common error to grant too much permission to these objects,
85720 + with impact ranging from denial of service and information leaking to
85721 + privilege escalation. This feature was developed in response to
85722 + research by Tim Brown:
85723 + http://labs.portcullis.co.uk/whitepapers/memory-squatting-attacks-on-system-v-shared-memory/
85724 + who found hundreds of such insecure usages. Processes with
85725 + CAP_IPC_OWNER are still permitted to access these IPC objects.
85726 + If the sysctl option is enabled, a sysctl option with name
85727 + "harden_ipc" is created.
85728 +
85729 +config GRKERNSEC_TPE
85730 + bool "Trusted Path Execution (TPE)"
85731 + default y if GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_SERVER
85732 + help
85733 + If you say Y here, you will be able to choose a gid to add to the
85734 + supplementary groups of users you want to mark as "untrusted."
85735 + These users will not be able to execute any files that are not in
85736 + root-owned directories writable only by root. If the sysctl option
85737 + is enabled, a sysctl option with name "tpe" is created.
85738 +
85739 +config GRKERNSEC_TPE_ALL
85740 + bool "Partially restrict all non-root users"
85741 + depends on GRKERNSEC_TPE
85742 + help
85743 + If you say Y here, all non-root users will be covered under
85744 + a weaker TPE restriction. This is separate from, and in addition to,
85745 + the main TPE options that you have selected elsewhere. Thus, if a
85746 + "trusted" GID is chosen, this restriction applies to even that GID.
85747 + Under this restriction, all non-root users will only be allowed to
85748 + execute files in directories they own that are not group or
85749 + world-writable, or in directories owned by root and writable only by
85750 + root. If the sysctl option is enabled, a sysctl option with name
85751 + "tpe_restrict_all" is created.
85752 +
85753 +config GRKERNSEC_TPE_INVERT
85754 + bool "Invert GID option"
85755 + depends on GRKERNSEC_TPE
85756 + help
85757 + If you say Y here, the group you specify in the TPE configuration will
85758 + decide what group TPE restrictions will be *disabled* for. This
85759 + option is useful if you want TPE restrictions to be applied to most
85760 + users on the system. If the sysctl option is enabled, a sysctl option
85761 + with name "tpe_invert" is created. Unlike other sysctl options, this
85762 + entry will default to on for backward-compatibility.
85763 +
85764 +config GRKERNSEC_TPE_GID
85765 + int
85766 + default GRKERNSEC_TPE_UNTRUSTED_GID if (GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT)
85767 + default GRKERNSEC_TPE_TRUSTED_GID if (GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT)
85768 +
85769 +config GRKERNSEC_TPE_UNTRUSTED_GID
85770 + int "GID for TPE-untrusted users"
85771 + depends on GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT
85772 + default 1005
85773 + help
85774 + Setting this GID determines what group TPE restrictions will be
85775 + *enabled* for. If the sysctl option is enabled, a sysctl option
85776 + with name "tpe_gid" is created.
85777 +
85778 +config GRKERNSEC_TPE_TRUSTED_GID
85779 + int "GID for TPE-trusted users"
85780 + depends on GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT
85781 + default 1005
85782 + help
85783 + Setting this GID determines what group TPE restrictions will be
85784 + *disabled* for. If the sysctl option is enabled, a sysctl option
85785 + with name "tpe_gid" is created.
85786 +
85787 +endmenu
85788 +menu "Network Protections"
85789 +depends on GRKERNSEC
85790 +
85791 +config GRKERNSEC_BLACKHOLE
85792 + bool "TCP/UDP blackhole and LAST_ACK DoS prevention"
85793 + default y if GRKERNSEC_CONFIG_AUTO
85794 + depends on NET
85795 + help
85796 + If you say Y here, neither TCP resets nor ICMP
85797 + destination-unreachable packets will be sent in response to packets
85798 + sent to ports for which no associated listening process exists.
85799 + It will also prevent the sending of ICMP protocol unreachable packets
85800 + in response to packets with unknown protocols.
85801 + This feature supports both IPV4 and IPV6 and exempts the
85802 + loopback interface from blackholing. Enabling this feature
85803 + makes a host more resilient to DoS attacks and reduces network
85804 + visibility against scanners.
85805 +
85806 + The blackhole feature as-implemented is equivalent to the FreeBSD
85807 + blackhole feature, as it prevents RST responses to all packets, not
85808 + just SYNs. Under most application behavior this causes no
85809 + problems, but applications (like haproxy) may not close certain
85810 + connections in a way that cleanly terminates them on the remote
85811 + end, leaving the remote host in LAST_ACK state. Because of this
85812 + side-effect and to prevent intentional LAST_ACK DoSes, this
85813 + feature also adds automatic mitigation against such attacks.
85814 + The mitigation drastically reduces the amount of time a socket
85815 + can spend in LAST_ACK state. If you're using haproxy and not
85816 + all servers it connects to have this option enabled, consider
85817 + disabling this feature on the haproxy host.
85818 +
85819 + If the sysctl option is enabled, two sysctl options with names
85820 + "ip_blackhole" and "lastack_retries" will be created.
85821 + While "ip_blackhole" takes the standard zero/non-zero on/off
85822 + toggle, "lastack_retries" uses the same kinds of values as
85823 + "tcp_retries1" and "tcp_retries2". The default value of 4
85824 + prevents a socket from lasting more than 45 seconds in LAST_ACK
85825 + state.
85826 +
85827 +config GRKERNSEC_NO_SIMULT_CONNECT
85828 + bool "Disable TCP Simultaneous Connect"
85829 + default y if GRKERNSEC_CONFIG_AUTO
85830 + depends on NET
85831 + help
85832 + If you say Y here, a feature by Willy Tarreau will be enabled that
85833 + removes a weakness in Linux's strict implementation of TCP that
85834 + allows two clients to connect to each other without either entering
85835 + a listening state. The weakness allows an attacker to easily prevent
85836 + a client from connecting to a known server provided the source port
85837 + for the connection is guessed correctly.
85838 +
85839 + As the weakness could be used to prevent an antivirus or IPS from
85840 + fetching updates, or prevent an SSL gateway from fetching a CRL,
85841 + it should be eliminated by enabling this option. Though Linux is
85842 + one of few operating systems supporting simultaneous connect, it
85843 + has no legitimate use in practice and is rarely supported by firewalls.
85844 +
85845 +config GRKERNSEC_SOCKET
85846 + bool "Socket restrictions"
85847 + depends on NET
85848 + help
85849 + If you say Y here, you will be able to choose from several options.
85850 + If you assign a GID on your system and add it to the supplementary
85851 + groups of users you want to restrict socket access to, this patch
85852 + will perform up to three things, based on the option(s) you choose.
85853 +
85854 +config GRKERNSEC_SOCKET_ALL
85855 + bool "Deny any sockets to group"
85856 + depends on GRKERNSEC_SOCKET
85857 + help
85858 + If you say Y here, you will be able to choose a GID of whose users will
85859 + be unable to connect to other hosts from your machine or run server
85860 + applications from your machine. If the sysctl option is enabled, a
85861 + sysctl option with name "socket_all" is created.
85862 +
85863 +config GRKERNSEC_SOCKET_ALL_GID
85864 + int "GID to deny all sockets for"
85865 + depends on GRKERNSEC_SOCKET_ALL
85866 + default 1004
85867 + help
85868 + Here you can choose the GID to disable socket access for. Remember to
85869 + add the users you want socket access disabled for to the GID
85870 + specified here. If the sysctl option is enabled, a sysctl option
85871 + with name "socket_all_gid" is created.
85872 +
85873 +config GRKERNSEC_SOCKET_CLIENT
85874 + bool "Deny client sockets to group"
85875 + depends on GRKERNSEC_SOCKET
85876 + help
85877 + If you say Y here, you will be able to choose a GID of whose users will
85878 + be unable to connect to other hosts from your machine, but will be
85879 + able to run servers. If this option is enabled, all users in the group
85880 + you specify will have to use passive mode when initiating ftp transfers
85881 + from the shell on your machine. If the sysctl option is enabled, a
85882 + sysctl option with name "socket_client" is created.
85883 +
85884 +config GRKERNSEC_SOCKET_CLIENT_GID
85885 + int "GID to deny client sockets for"
85886 + depends on GRKERNSEC_SOCKET_CLIENT
85887 + default 1003
85888 + help
85889 + Here you can choose the GID to disable client socket access for.
85890 + Remember to add the users you want client socket access disabled for to
85891 + the GID specified here. If the sysctl option is enabled, a sysctl
85892 + option with name "socket_client_gid" is created.
85893 +
85894 +config GRKERNSEC_SOCKET_SERVER
85895 + bool "Deny server sockets to group"
85896 + depends on GRKERNSEC_SOCKET
85897 + help
85898 + If you say Y here, you will be able to choose a GID of whose users will
85899 + be unable to run server applications from your machine. If the sysctl
85900 + option is enabled, a sysctl option with name "socket_server" is created.
85901 +
85902 +config GRKERNSEC_SOCKET_SERVER_GID
85903 + int "GID to deny server sockets for"
85904 + depends on GRKERNSEC_SOCKET_SERVER
85905 + default 1002
85906 + help
85907 + Here you can choose the GID to disable server socket access for.
85908 + Remember to add the users you want server socket access disabled for to
85909 + the GID specified here. If the sysctl option is enabled, a sysctl
85910 + option with name "socket_server_gid" is created.
85911 +
85912 +endmenu
85913 +
85914 +menu "Physical Protections"
85915 +depends on GRKERNSEC
85916 +
85917 +config GRKERNSEC_DENYUSB
85918 + bool "Deny new USB connections after toggle"
85919 + default y if GRKERNSEC_CONFIG_AUTO
85920 + depends on SYSCTL && USB_SUPPORT
85921 + help
85922 + If you say Y here, a new sysctl option with name "deny_new_usb"
85923 + will be created. Setting its value to 1 will prevent any new
85924 + USB devices from being recognized by the OS. Any attempted USB
85925 + device insertion will be logged. This option is intended to be
85926 + used against custom USB devices designed to exploit vulnerabilities
85927 + in various USB device drivers.
85928 +
85929 + For greatest effectiveness, this sysctl should be set after any
85930 + relevant init scripts. This option is safe to enable in distros
85931 + as each user can choose whether or not to toggle the sysctl.
85932 +
85933 +config GRKERNSEC_DENYUSB_FORCE
85934 + bool "Reject all USB devices not connected at boot"
85935 + select USB
85936 + depends on GRKERNSEC_DENYUSB
85937 + help
85938 + If you say Y here, a variant of GRKERNSEC_DENYUSB will be enabled
85939 + that doesn't involve a sysctl entry. This option should only be
85940 + enabled if you're sure you want to deny all new USB connections
85941 + at runtime and don't want to modify init scripts. This should not
85942 + be enabled by distros. It forces the core USB code to be built
85943 + into the kernel image so that all devices connected at boot time
85944 + can be recognized and new USB device connections can be prevented
85945 + prior to init running.
85946 +
85947 +endmenu
85948 +
85949 +menu "Sysctl Support"
85950 +depends on GRKERNSEC && SYSCTL
85951 +
85952 +config GRKERNSEC_SYSCTL
85953 + bool "Sysctl support"
85954 + default y if GRKERNSEC_CONFIG_AUTO
85955 + help
85956 + If you say Y here, you will be able to change the options that
85957 + grsecurity runs with at bootup, without having to recompile your
85958 + kernel. You can echo values to files in /proc/sys/kernel/grsecurity
85959 + to enable (1) or disable (0) various features. All the sysctl entries
85960 + are mutable until the "grsec_lock" entry is set to a non-zero value.
85961 + All features enabled in the kernel configuration are disabled at boot
85962 + if you do not say Y to the "Turn on features by default" option.
85963 + All options should be set at startup, and the grsec_lock entry should
85964 + be set to a non-zero value after all the options are set.
85965 + *THIS IS EXTREMELY IMPORTANT*
85966 +
85967 +config GRKERNSEC_SYSCTL_DISTRO
85968 + bool "Extra sysctl support for distro makers (READ HELP)"
85969 + depends on GRKERNSEC_SYSCTL && GRKERNSEC_IO
85970 + help
85971 + If you say Y here, additional sysctl options will be created
85972 + for features that affect processes running as root. Therefore,
85973 + it is critical when using this option that the grsec_lock entry be
85974 + enabled after boot. Only distros with prebuilt kernel packages
85975 + with this option enabled that can ensure grsec_lock is enabled
85976 + after boot should use this option.
85977 + *Failure to set grsec_lock after boot makes all grsec features
85978 + this option covers useless*
85979 +
85980 + Currently this option creates the following sysctl entries:
85981 + "Disable Privileged I/O": "disable_priv_io"
85982 +
85983 +config GRKERNSEC_SYSCTL_ON
85984 + bool "Turn on features by default"
85985 + default y if GRKERNSEC_CONFIG_AUTO
85986 + depends on GRKERNSEC_SYSCTL
85987 + help
85988 + If you say Y here, instead of having all features enabled in the
85989 + kernel configuration disabled at boot time, the features will be
85990 + enabled at boot time. It is recommended you say Y here unless
85991 + there is some reason you would want all sysctl-tunable features to
85992 + be disabled by default. As mentioned elsewhere, it is important
85993 + to enable the grsec_lock entry once you have finished modifying
85994 + the sysctl entries.
85995 +
85996 +endmenu
85997 +menu "Logging Options"
85998 +depends on GRKERNSEC
85999 +
86000 +config GRKERNSEC_FLOODTIME
86001 + int "Seconds in between log messages (minimum)"
86002 + default 10
86003 + help
86004 + This option allows you to enforce the number of seconds between
86005 + grsecurity log messages. The default should be suitable for most
86006 + people, however, if you choose to change it, choose a value small enough
86007 + to allow informative logs to be produced, but large enough to
86008 + prevent flooding.
86009 +
86010 + Setting both this value and GRKERNSEC_FLOODBURST to 0 will disable
86011 + any rate limiting on grsecurity log messages.
86012 +
86013 +config GRKERNSEC_FLOODBURST
86014 + int "Number of messages in a burst (maximum)"
86015 + default 6
86016 + help
86017 + This option allows you to choose the maximum number of messages allowed
86018 + within the flood time interval you chose in a separate option. The
86019 + default should be suitable for most people, however if you find that
86020 + many of your logs are being interpreted as flooding, you may want to
86021 + raise this value.
86022 +
86023 + Setting both this value and GRKERNSEC_FLOODTIME to 0 will disable
86024 + any rate limiting on grsecurity log messages.
86025 +
86026 +endmenu
86027 diff --git a/grsecurity/Makefile b/grsecurity/Makefile
86028 new file mode 100644
86029 index 0000000..30ababb
86030 --- /dev/null
86031 +++ b/grsecurity/Makefile
86032 @@ -0,0 +1,54 @@
86033 +# grsecurity – access control and security hardening for Linux
86034 +# All code in this directory and various hooks located throughout the Linux kernel are
86035 +# Copyright (C) 2001-2014 Bradley Spengler, Open Source Security, Inc.
86036 +# http://www.grsecurity.net spender@grsecurity.net
86037 +#
86038 +# This program is free software; you can redistribute it and/or
86039 +# modify it under the terms of the GNU General Public License version 2
86040 +# as published by the Free Software Foundation.
86041 +#
86042 +# This program is distributed in the hope that it will be useful,
86043 +# but WITHOUT ANY WARRANTY; without even the implied warranty of
86044 +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
86045 +# GNU General Public License for more details.
86046 +#
86047 +# You should have received a copy of the GNU General Public License
86048 +# along with this program; if not, write to the Free Software
86049 +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
86050 +
86051 +KBUILD_CFLAGS += -Werror
86052 +
86053 +obj-y = grsec_chdir.o grsec_chroot.o grsec_exec.o grsec_fifo.o grsec_fork.o \
86054 + grsec_mount.o grsec_sig.o grsec_sysctl.o \
86055 + grsec_time.o grsec_tpe.o grsec_link.o grsec_pax.o grsec_ptrace.o \
86056 + grsec_usb.o grsec_ipc.o grsec_proc.o
86057 +
86058 +obj-$(CONFIG_GRKERNSEC) += grsec_init.o grsum.o gracl.o gracl_segv.o \
86059 + gracl_cap.o gracl_alloc.o gracl_shm.o grsec_mem.o gracl_fs.o \
86060 + gracl_learn.o grsec_log.o gracl_policy.o
86061 +ifdef CONFIG_COMPAT
86062 +obj-$(CONFIG_GRKERNSEC) += gracl_compat.o
86063 +endif
86064 +
86065 +obj-$(CONFIG_GRKERNSEC_RESLOG) += gracl_res.o
86066 +
86067 +ifdef CONFIG_NET
86068 +obj-y += grsec_sock.o
86069 +obj-$(CONFIG_GRKERNSEC) += gracl_ip.o
86070 +endif
86071 +
86072 +ifndef CONFIG_GRKERNSEC
86073 +obj-y += grsec_disabled.o
86074 +endif
86075 +
86076 +ifdef CONFIG_GRKERNSEC_HIDESYM
86077 +extra-y := grsec_hidesym.o
86078 +$(obj)/grsec_hidesym.o:
86079 + @-chmod -f 500 /boot
86080 + @-chmod -f 500 /lib/modules
86081 + @-chmod -f 500 /lib64/modules
86082 + @-chmod -f 500 /lib32/modules
86083 + @-chmod -f 700 .
86084 + @-chmod -f 700 $(objtree)
86085 + @echo ' grsec: protected kernel image paths'
86086 +endif
86087 diff --git a/grsecurity/gracl.c b/grsecurity/gracl.c
86088 new file mode 100644
86089 index 0000000..7ad630a
86090 --- /dev/null
86091 +++ b/grsecurity/gracl.c
86092 @@ -0,0 +1,2757 @@
86093 +#include <linux/kernel.h>
86094 +#include <linux/module.h>
86095 +#include <linux/sched.h>
86096 +#include <linux/mm.h>
86097 +#include <linux/file.h>
86098 +#include <linux/fs.h>
86099 +#include <linux/namei.h>
86100 +#include <linux/mount.h>
86101 +#include <linux/tty.h>
86102 +#include <linux/proc_fs.h>
86103 +#include <linux/lglock.h>
86104 +#include <linux/slab.h>
86105 +#include <linux/vmalloc.h>
86106 +#include <linux/types.h>
86107 +#include <linux/sysctl.h>
86108 +#include <linux/netdevice.h>
86109 +#include <linux/ptrace.h>
86110 +#include <linux/gracl.h>
86111 +#include <linux/gralloc.h>
86112 +#include <linux/security.h>
86113 +#include <linux/grinternal.h>
86114 +#include <linux/pid_namespace.h>
86115 +#include <linux/stop_machine.h>
86116 +#include <linux/fdtable.h>
86117 +#include <linux/percpu.h>
86118 +#include <linux/lglock.h>
86119 +#include <linux/hugetlb.h>
86120 +#include <linux/posix-timers.h>
86121 +#include <linux/prefetch.h>
86122 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
86123 +#include <linux/magic.h>
86124 +#include <linux/pagemap.h>
86125 +#include "../fs/btrfs/async-thread.h"
86126 +#include "../fs/btrfs/ctree.h"
86127 +#include "../fs/btrfs/btrfs_inode.h"
86128 +#endif
86129 +#include "../fs/mount.h"
86130 +
86131 +#include <asm/uaccess.h>
86132 +#include <asm/errno.h>
86133 +#include <asm/mman.h>
86134 +
86135 +#define FOR_EACH_ROLE_START(role) \
86136 + role = running_polstate.role_list; \
86137 + while (role) {
86138 +
86139 +#define FOR_EACH_ROLE_END(role) \
86140 + role = role->prev; \
86141 + }
86142 +
86143 +extern struct path gr_real_root;
86144 +
86145 +static struct gr_policy_state running_polstate;
86146 +struct gr_policy_state *polstate = &running_polstate;
86147 +extern struct gr_alloc_state *current_alloc_state;
86148 +
86149 +extern char *gr_shared_page[4];
86150 +DEFINE_RWLOCK(gr_inode_lock);
86151 +
86152 +static unsigned int gr_status __read_only = GR_STATUS_INIT;
86153 +
86154 +#ifdef CONFIG_NET
86155 +extern struct vfsmount *sock_mnt;
86156 +#endif
86157 +
86158 +extern struct vfsmount *pipe_mnt;
86159 +extern struct vfsmount *shm_mnt;
86160 +
86161 +#ifdef CONFIG_HUGETLBFS
86162 +extern struct vfsmount *hugetlbfs_vfsmount[HUGE_MAX_HSTATE];
86163 +#endif
86164 +
86165 +extern u16 acl_sp_role_value;
86166 +extern struct acl_object_label *fakefs_obj_rw;
86167 +extern struct acl_object_label *fakefs_obj_rwx;
86168 +
86169 +int gr_acl_is_enabled(void)
86170 +{
86171 + return (gr_status & GR_READY);
86172 +}
86173 +
86174 +void gr_enable_rbac_system(void)
86175 +{
86176 + pax_open_kernel();
86177 + gr_status |= GR_READY;
86178 + pax_close_kernel();
86179 +}
86180 +
86181 +int gr_rbac_disable(void *unused)
86182 +{
86183 + pax_open_kernel();
86184 + gr_status &= ~GR_READY;
86185 + pax_close_kernel();
86186 +
86187 + return 0;
86188 +}
86189 +
86190 +static inline dev_t __get_dev(const struct dentry *dentry)
86191 +{
86192 + struct dentry *ldentry = d_backing_dentry((struct dentry *)dentry);
86193 +
86194 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
86195 + if (ldentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
86196 + return BTRFS_I(d_inode(ldentry))->root->anon_dev;
86197 + else
86198 +#endif
86199 + return d_inode(ldentry)->i_sb->s_dev;
86200 +}
86201 +
86202 +static inline u64 __get_ino(const struct dentry *dentry)
86203 +{
86204 + struct dentry *ldentry = d_backing_dentry((struct dentry *)dentry);
86205 +
86206 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
86207 + if (ldentry->d_sb->s_magic == BTRFS_SUPER_MAGIC)
86208 + return btrfs_ino(d_inode(dentry));
86209 + else
86210 +#endif
86211 + return d_inode(ldentry)->i_ino;
86212 +}
86213 +
86214 +dev_t gr_get_dev_from_dentry(struct dentry *dentry)
86215 +{
86216 + return __get_dev(dentry);
86217 +}
86218 +
86219 +u64 gr_get_ino_from_dentry(struct dentry *dentry)
86220 +{
86221 + return __get_ino(dentry);
86222 +}
86223 +
86224 +static char gr_task_roletype_to_char(struct task_struct *task)
86225 +{
86226 + switch (task->role->roletype &
86227 + (GR_ROLE_DEFAULT | GR_ROLE_USER | GR_ROLE_GROUP |
86228 + GR_ROLE_SPECIAL)) {
86229 + case GR_ROLE_DEFAULT:
86230 + return 'D';
86231 + case GR_ROLE_USER:
86232 + return 'U';
86233 + case GR_ROLE_GROUP:
86234 + return 'G';
86235 + case GR_ROLE_SPECIAL:
86236 + return 'S';
86237 + }
86238 +
86239 + return 'X';
86240 +}
86241 +
86242 +char gr_roletype_to_char(void)
86243 +{
86244 + return gr_task_roletype_to_char(current);
86245 +}
86246 +
86247 +int
86248 +gr_acl_tpe_check(void)
86249 +{
86250 + if (unlikely(!(gr_status & GR_READY)))
86251 + return 0;
86252 + if (current->role->roletype & GR_ROLE_TPE)
86253 + return 1;
86254 + else
86255 + return 0;
86256 +}
86257 +
86258 +int
86259 +gr_handle_rawio(const struct inode *inode)
86260 +{
86261 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
86262 + if (inode && (S_ISBLK(inode->i_mode) || (S_ISCHR(inode->i_mode) && imajor(inode) == RAW_MAJOR)) &&
86263 + grsec_enable_chroot_caps && proc_is_chrooted(current) &&
86264 + !capable(CAP_SYS_RAWIO))
86265 + return 1;
86266 +#endif
86267 + return 0;
86268 +}
86269 +
86270 +int
86271 +gr_streq(const char *a, const char *b, const unsigned int lena, const unsigned int lenb)
86272 +{
86273 + if (likely(lena != lenb))
86274 + return 0;
86275 +
86276 + return !memcmp(a, b, lena);
86277 +}
86278 +
86279 +static int prepend(char **buffer, int *buflen, const char *str, int namelen)
86280 +{
86281 + *buflen -= namelen;
86282 + if (*buflen < 0)
86283 + return -ENAMETOOLONG;
86284 + *buffer -= namelen;
86285 + memcpy(*buffer, str, namelen);
86286 + return 0;
86287 +}
86288 +
86289 +static int prepend_name(char **buffer, int *buflen, struct qstr *name)
86290 +{
86291 + return prepend(buffer, buflen, name->name, name->len);
86292 +}
86293 +
86294 +static int prepend_path(const struct path *path, struct path *root,
86295 + char **buffer, int *buflen)
86296 +{
86297 + struct dentry *dentry = path->dentry;
86298 + struct vfsmount *vfsmnt = path->mnt;
86299 + struct mount *mnt = real_mount(vfsmnt);
86300 + bool slash = false;
86301 + int error = 0;
86302 +
86303 + while (dentry != root->dentry || vfsmnt != root->mnt) {
86304 + struct dentry * parent;
86305 +
86306 + if (dentry == vfsmnt->mnt_root || IS_ROOT(dentry)) {
86307 + /* Global root? */
86308 + if (!mnt_has_parent(mnt)) {
86309 + goto out;
86310 + }
86311 + dentry = mnt->mnt_mountpoint;
86312 + mnt = mnt->mnt_parent;
86313 + vfsmnt = &mnt->mnt;
86314 + continue;
86315 + }
86316 + parent = dentry->d_parent;
86317 + prefetch(parent);
86318 + spin_lock(&dentry->d_lock);
86319 + error = prepend_name(buffer, buflen, &dentry->d_name);
86320 + spin_unlock(&dentry->d_lock);
86321 + if (!error)
86322 + error = prepend(buffer, buflen, "/", 1);
86323 + if (error)
86324 + break;
86325 +
86326 + slash = true;
86327 + dentry = parent;
86328 + }
86329 +
86330 +out:
86331 + if (!error && !slash)
86332 + error = prepend(buffer, buflen, "/", 1);
86333 +
86334 + return error;
86335 +}
86336 +
86337 +/* this must be called with mount_lock and rename_lock held */
86338 +
86339 +static char *__our_d_path(const struct path *path, struct path *root,
86340 + char *buf, int buflen)
86341 +{
86342 + char *res = buf + buflen;
86343 + int error;
86344 +
86345 + prepend(&res, &buflen, "\0", 1);
86346 + error = prepend_path(path, root, &res, &buflen);
86347 + if (error)
86348 + return ERR_PTR(error);
86349 +
86350 + return res;
86351 +}
86352 +
86353 +static char *
86354 +gen_full_path(struct path *path, struct path *root, char *buf, int buflen)
86355 +{
86356 + char *retval;
86357 +
86358 + retval = __our_d_path(path, root, buf, buflen);
86359 + if (unlikely(IS_ERR(retval)))
86360 + retval = strcpy(buf, "<path too long>");
86361 + else if (unlikely(retval[1] == '/' && retval[2] == '\0'))
86362 + retval[1] = '\0';
86363 +
86364 + return retval;
86365 +}
86366 +
86367 +static char *
86368 +__d_real_path(const struct dentry *dentry, const struct vfsmount *vfsmnt,
86369 + char *buf, int buflen)
86370 +{
86371 + struct path path;
86372 + char *res;
86373 +
86374 + path.dentry = (struct dentry *)dentry;
86375 + path.mnt = (struct vfsmount *)vfsmnt;
86376 +
86377 + /* we can use gr_real_root.dentry, gr_real_root.mnt, because this is only called
86378 + by the RBAC system */
86379 + res = gen_full_path(&path, &gr_real_root, buf, buflen);
86380 +
86381 + return res;
86382 +}
86383 +
86384 +static char *
86385 +d_real_path(const struct dentry *dentry, const struct vfsmount *vfsmnt,
86386 + char *buf, int buflen)
86387 +{
86388 + char *res;
86389 + struct path path;
86390 + struct path root;
86391 + struct task_struct *reaper = init_pid_ns.child_reaper;
86392 +
86393 + path.dentry = (struct dentry *)dentry;
86394 + path.mnt = (struct vfsmount *)vfsmnt;
86395 +
86396 + /* we can't use gr_real_root.dentry, gr_real_root.mnt, because they belong only to the RBAC system */
86397 + get_fs_root(reaper->fs, &root);
86398 +
86399 + read_seqlock_excl(&mount_lock);
86400 + write_seqlock(&rename_lock);
86401 + res = gen_full_path(&path, &root, buf, buflen);
86402 + write_sequnlock(&rename_lock);
86403 + read_sequnlock_excl(&mount_lock);
86404 +
86405 + path_put(&root);
86406 + return res;
86407 +}
86408 +
86409 +char *
86410 +gr_to_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt)
86411 +{
86412 + char *ret;
86413 + read_seqlock_excl(&mount_lock);
86414 + write_seqlock(&rename_lock);
86415 + ret = __d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0],smp_processor_id()),
86416 + PAGE_SIZE);
86417 + write_sequnlock(&rename_lock);
86418 + read_sequnlock_excl(&mount_lock);
86419 + return ret;
86420 +}
86421 +
86422 +static char *
86423 +gr_to_proc_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt)
86424 +{
86425 + char *ret;
86426 + char *buf;
86427 + int buflen;
86428 +
86429 + read_seqlock_excl(&mount_lock);
86430 + write_seqlock(&rename_lock);
86431 + buf = per_cpu_ptr(gr_shared_page[0], smp_processor_id());
86432 + ret = __d_real_path(dentry, mnt, buf, PAGE_SIZE - 6);
86433 + buflen = (int)(ret - buf);
86434 + if (buflen >= 5)
86435 + prepend(&ret, &buflen, "/proc", 5);
86436 + else
86437 + ret = strcpy(buf, "<path too long>");
86438 + write_sequnlock(&rename_lock);
86439 + read_sequnlock_excl(&mount_lock);
86440 + return ret;
86441 +}
86442 +
86443 +char *
86444 +gr_to_filename_nolock(const struct dentry *dentry, const struct vfsmount *mnt)
86445 +{
86446 + return __d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0],smp_processor_id()),
86447 + PAGE_SIZE);
86448 +}
86449 +
86450 +char *
86451 +gr_to_filename(const struct dentry *dentry, const struct vfsmount *mnt)
86452 +{
86453 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0], smp_processor_id()),
86454 + PAGE_SIZE);
86455 +}
86456 +
86457 +char *
86458 +gr_to_filename1(const struct dentry *dentry, const struct vfsmount *mnt)
86459 +{
86460 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[1], smp_processor_id()),
86461 + PAGE_SIZE);
86462 +}
86463 +
86464 +char *
86465 +gr_to_filename2(const struct dentry *dentry, const struct vfsmount *mnt)
86466 +{
86467 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[2], smp_processor_id()),
86468 + PAGE_SIZE);
86469 +}
86470 +
86471 +char *
86472 +gr_to_filename3(const struct dentry *dentry, const struct vfsmount *mnt)
86473 +{
86474 + return d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[3], smp_processor_id()),
86475 + PAGE_SIZE);
86476 +}
86477 +
86478 +__u32
86479 +to_gr_audit(const __u32 reqmode)
86480 +{
86481 + /* masks off auditable permission flags, then shifts them to create
86482 + auditing flags, and adds the special case of append auditing if
86483 + we're requesting write */
86484 + return (((reqmode & ~GR_AUDITS) << 10) | ((reqmode & GR_WRITE) ? GR_AUDIT_APPEND : 0));
86485 +}
86486 +
86487 +struct acl_role_label *
86488 +__lookup_acl_role_label(const struct gr_policy_state *state, const struct task_struct *task, const uid_t uid,
86489 + const gid_t gid)
86490 +{
86491 + unsigned int index = gr_rhash(uid, GR_ROLE_USER, state->acl_role_set.r_size);
86492 + struct acl_role_label *match;
86493 + struct role_allowed_ip *ipp;
86494 + unsigned int x;
86495 + u32 curr_ip = task->signal->saved_ip;
86496 +
86497 + match = state->acl_role_set.r_hash[index];
86498 +
86499 + while (match) {
86500 + if ((match->roletype & (GR_ROLE_DOMAIN | GR_ROLE_USER)) == (GR_ROLE_DOMAIN | GR_ROLE_USER)) {
86501 + for (x = 0; x < match->domain_child_num; x++) {
86502 + if (match->domain_children[x] == uid)
86503 + goto found;
86504 + }
86505 + } else if (match->uidgid == uid && match->roletype & GR_ROLE_USER)
86506 + break;
86507 + match = match->next;
86508 + }
86509 +found:
86510 + if (match == NULL) {
86511 + try_group:
86512 + index = gr_rhash(gid, GR_ROLE_GROUP, state->acl_role_set.r_size);
86513 + match = state->acl_role_set.r_hash[index];
86514 +
86515 + while (match) {
86516 + if ((match->roletype & (GR_ROLE_DOMAIN | GR_ROLE_GROUP)) == (GR_ROLE_DOMAIN | GR_ROLE_GROUP)) {
86517 + for (x = 0; x < match->domain_child_num; x++) {
86518 + if (match->domain_children[x] == gid)
86519 + goto found2;
86520 + }
86521 + } else if (match->uidgid == gid && match->roletype & GR_ROLE_GROUP)
86522 + break;
86523 + match = match->next;
86524 + }
86525 +found2:
86526 + if (match == NULL)
86527 + match = state->default_role;
86528 + if (match->allowed_ips == NULL)
86529 + return match;
86530 + else {
86531 + for (ipp = match->allowed_ips; ipp; ipp = ipp->next) {
86532 + if (likely
86533 + ((ntohl(curr_ip) & ipp->netmask) ==
86534 + (ntohl(ipp->addr) & ipp->netmask)))
86535 + return match;
86536 + }
86537 + match = state->default_role;
86538 + }
86539 + } else if (match->allowed_ips == NULL) {
86540 + return match;
86541 + } else {
86542 + for (ipp = match->allowed_ips; ipp; ipp = ipp->next) {
86543 + if (likely
86544 + ((ntohl(curr_ip) & ipp->netmask) ==
86545 + (ntohl(ipp->addr) & ipp->netmask)))
86546 + return match;
86547 + }
86548 + goto try_group;
86549 + }
86550 +
86551 + return match;
86552 +}
86553 +
86554 +static struct acl_role_label *
86555 +lookup_acl_role_label(const struct task_struct *task, const uid_t uid,
86556 + const gid_t gid)
86557 +{
86558 + return __lookup_acl_role_label(&running_polstate, task, uid, gid);
86559 +}
86560 +
86561 +struct acl_subject_label *
86562 +lookup_acl_subj_label(const u64 ino, const dev_t dev,
86563 + const struct acl_role_label *role)
86564 +{
86565 + unsigned int index = gr_fhash(ino, dev, role->subj_hash_size);
86566 + struct acl_subject_label *match;
86567 +
86568 + match = role->subj_hash[index];
86569 +
86570 + while (match && (match->inode != ino || match->device != dev ||
86571 + (match->mode & GR_DELETED))) {
86572 + match = match->next;
86573 + }
86574 +
86575 + if (match && !(match->mode & GR_DELETED))
86576 + return match;
86577 + else
86578 + return NULL;
86579 +}
86580 +
86581 +struct acl_subject_label *
86582 +lookup_acl_subj_label_deleted(const u64 ino, const dev_t dev,
86583 + const struct acl_role_label *role)
86584 +{
86585 + unsigned int index = gr_fhash(ino, dev, role->subj_hash_size);
86586 + struct acl_subject_label *match;
86587 +
86588 + match = role->subj_hash[index];
86589 +
86590 + while (match && (match->inode != ino || match->device != dev ||
86591 + !(match->mode & GR_DELETED))) {
86592 + match = match->next;
86593 + }
86594 +
86595 + if (match && (match->mode & GR_DELETED))
86596 + return match;
86597 + else
86598 + return NULL;
86599 +}
86600 +
86601 +static struct acl_object_label *
86602 +lookup_acl_obj_label(const u64 ino, const dev_t dev,
86603 + const struct acl_subject_label *subj)
86604 +{
86605 + unsigned int index = gr_fhash(ino, dev, subj->obj_hash_size);
86606 + struct acl_object_label *match;
86607 +
86608 + match = subj->obj_hash[index];
86609 +
86610 + while (match && (match->inode != ino || match->device != dev ||
86611 + (match->mode & GR_DELETED))) {
86612 + match = match->next;
86613 + }
86614 +
86615 + if (match && !(match->mode & GR_DELETED))
86616 + return match;
86617 + else
86618 + return NULL;
86619 +}
86620 +
86621 +static struct acl_object_label *
86622 +lookup_acl_obj_label_create(const u64 ino, const dev_t dev,
86623 + const struct acl_subject_label *subj)
86624 +{
86625 + unsigned int index = gr_fhash(ino, dev, subj->obj_hash_size);
86626 + struct acl_object_label *match;
86627 +
86628 + match = subj->obj_hash[index];
86629 +
86630 + while (match && (match->inode != ino || match->device != dev ||
86631 + !(match->mode & GR_DELETED))) {
86632 + match = match->next;
86633 + }
86634 +
86635 + if (match && (match->mode & GR_DELETED))
86636 + return match;
86637 +
86638 + match = subj->obj_hash[index];
86639 +
86640 + while (match && (match->inode != ino || match->device != dev ||
86641 + (match->mode & GR_DELETED))) {
86642 + match = match->next;
86643 + }
86644 +
86645 + if (match && !(match->mode & GR_DELETED))
86646 + return match;
86647 + else
86648 + return NULL;
86649 +}
86650 +
86651 +struct name_entry *
86652 +__lookup_name_entry(const struct gr_policy_state *state, const char *name)
86653 +{
86654 + unsigned int len = strlen(name);
86655 + unsigned int key = full_name_hash(name, len);
86656 + unsigned int index = key % state->name_set.n_size;
86657 + struct name_entry *match;
86658 +
86659 + match = state->name_set.n_hash[index];
86660 +
86661 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len)))
86662 + match = match->next;
86663 +
86664 + return match;
86665 +}
86666 +
86667 +static struct name_entry *
86668 +lookup_name_entry(const char *name)
86669 +{
86670 + return __lookup_name_entry(&running_polstate, name);
86671 +}
86672 +
86673 +static struct name_entry *
86674 +lookup_name_entry_create(const char *name)
86675 +{
86676 + unsigned int len = strlen(name);
86677 + unsigned int key = full_name_hash(name, len);
86678 + unsigned int index = key % running_polstate.name_set.n_size;
86679 + struct name_entry *match;
86680 +
86681 + match = running_polstate.name_set.n_hash[index];
86682 +
86683 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len) ||
86684 + !match->deleted))
86685 + match = match->next;
86686 +
86687 + if (match && match->deleted)
86688 + return match;
86689 +
86690 + match = running_polstate.name_set.n_hash[index];
86691 +
86692 + while (match && (match->key != key || !gr_streq(match->name, name, match->len, len) ||
86693 + match->deleted))
86694 + match = match->next;
86695 +
86696 + if (match && !match->deleted)
86697 + return match;
86698 + else
86699 + return NULL;
86700 +}
86701 +
86702 +static struct inodev_entry *
86703 +lookup_inodev_entry(const u64 ino, const dev_t dev)
86704 +{
86705 + unsigned int index = gr_fhash(ino, dev, running_polstate.inodev_set.i_size);
86706 + struct inodev_entry *match;
86707 +
86708 + match = running_polstate.inodev_set.i_hash[index];
86709 +
86710 + while (match && (match->nentry->inode != ino || match->nentry->device != dev))
86711 + match = match->next;
86712 +
86713 + return match;
86714 +}
86715 +
86716 +void
86717 +__insert_inodev_entry(const struct gr_policy_state *state, struct inodev_entry *entry)
86718 +{
86719 + unsigned int index = gr_fhash(entry->nentry->inode, entry->nentry->device,
86720 + state->inodev_set.i_size);
86721 + struct inodev_entry **curr;
86722 +
86723 + entry->prev = NULL;
86724 +
86725 + curr = &state->inodev_set.i_hash[index];
86726 + if (*curr != NULL)
86727 + (*curr)->prev = entry;
86728 +
86729 + entry->next = *curr;
86730 + *curr = entry;
86731 +
86732 + return;
86733 +}
86734 +
86735 +static void
86736 +insert_inodev_entry(struct inodev_entry *entry)
86737 +{
86738 + __insert_inodev_entry(&running_polstate, entry);
86739 +}
86740 +
86741 +void
86742 +insert_acl_obj_label(struct acl_object_label *obj,
86743 + struct acl_subject_label *subj)
86744 +{
86745 + unsigned int index =
86746 + gr_fhash(obj->inode, obj->device, subj->obj_hash_size);
86747 + struct acl_object_label **curr;
86748 +
86749 + obj->prev = NULL;
86750 +
86751 + curr = &subj->obj_hash[index];
86752 + if (*curr != NULL)
86753 + (*curr)->prev = obj;
86754 +
86755 + obj->next = *curr;
86756 + *curr = obj;
86757 +
86758 + return;
86759 +}
86760 +
86761 +void
86762 +insert_acl_subj_label(struct acl_subject_label *obj,
86763 + struct acl_role_label *role)
86764 +{
86765 + unsigned int index = gr_fhash(obj->inode, obj->device, role->subj_hash_size);
86766 + struct acl_subject_label **curr;
86767 +
86768 + obj->prev = NULL;
86769 +
86770 + curr = &role->subj_hash[index];
86771 + if (*curr != NULL)
86772 + (*curr)->prev = obj;
86773 +
86774 + obj->next = *curr;
86775 + *curr = obj;
86776 +
86777 + return;
86778 +}
86779 +
86780 +/* derived from glibc fnmatch() 0: match, 1: no match*/
86781 +
86782 +static int
86783 +glob_match(const char *p, const char *n)
86784 +{
86785 + char c;
86786 +
86787 + while ((c = *p++) != '\0') {
86788 + switch (c) {
86789 + case '?':
86790 + if (*n == '\0')
86791 + return 1;
86792 + else if (*n == '/')
86793 + return 1;
86794 + break;
86795 + case '\\':
86796 + if (*n != c)
86797 + return 1;
86798 + break;
86799 + case '*':
86800 + for (c = *p++; c == '?' || c == '*'; c = *p++) {
86801 + if (*n == '/')
86802 + return 1;
86803 + else if (c == '?') {
86804 + if (*n == '\0')
86805 + return 1;
86806 + else
86807 + ++n;
86808 + }
86809 + }
86810 + if (c == '\0') {
86811 + return 0;
86812 + } else {
86813 + const char *endp;
86814 +
86815 + if ((endp = strchr(n, '/')) == NULL)
86816 + endp = n + strlen(n);
86817 +
86818 + if (c == '[') {
86819 + for (--p; n < endp; ++n)
86820 + if (!glob_match(p, n))
86821 + return 0;
86822 + } else if (c == '/') {
86823 + while (*n != '\0' && *n != '/')
86824 + ++n;
86825 + if (*n == '/' && !glob_match(p, n + 1))
86826 + return 0;
86827 + } else {
86828 + for (--p; n < endp; ++n)
86829 + if (*n == c && !glob_match(p, n))
86830 + return 0;
86831 + }
86832 +
86833 + return 1;
86834 + }
86835 + case '[':
86836 + {
86837 + int not;
86838 + char cold;
86839 +
86840 + if (*n == '\0' || *n == '/')
86841 + return 1;
86842 +
86843 + not = (*p == '!' || *p == '^');
86844 + if (not)
86845 + ++p;
86846 +
86847 + c = *p++;
86848 + for (;;) {
86849 + unsigned char fn = (unsigned char)*n;
86850 +
86851 + if (c == '\0')
86852 + return 1;
86853 + else {
86854 + if (c == fn)
86855 + goto matched;
86856 + cold = c;
86857 + c = *p++;
86858 +
86859 + if (c == '-' && *p != ']') {
86860 + unsigned char cend = *p++;
86861 +
86862 + if (cend == '\0')
86863 + return 1;
86864 +
86865 + if (cold <= fn && fn <= cend)
86866 + goto matched;
86867 +
86868 + c = *p++;
86869 + }
86870 + }
86871 +
86872 + if (c == ']')
86873 + break;
86874 + }
86875 + if (!not)
86876 + return 1;
86877 + break;
86878 + matched:
86879 + while (c != ']') {
86880 + if (c == '\0')
86881 + return 1;
86882 +
86883 + c = *p++;
86884 + }
86885 + if (not)
86886 + return 1;
86887 + }
86888 + break;
86889 + default:
86890 + if (c != *n)
86891 + return 1;
86892 + }
86893 +
86894 + ++n;
86895 + }
86896 +
86897 + if (*n == '\0')
86898 + return 0;
86899 +
86900 + if (*n == '/')
86901 + return 0;
86902 +
86903 + return 1;
86904 +}
86905 +
86906 +static struct acl_object_label *
86907 +chk_glob_label(struct acl_object_label *globbed,
86908 + const struct dentry *dentry, const struct vfsmount *mnt, char **path)
86909 +{
86910 + struct acl_object_label *tmp;
86911 +
86912 + if (*path == NULL)
86913 + *path = gr_to_filename_nolock(dentry, mnt);
86914 +
86915 + tmp = globbed;
86916 +
86917 + while (tmp) {
86918 + if (!glob_match(tmp->filename, *path))
86919 + return tmp;
86920 + tmp = tmp->next;
86921 + }
86922 +
86923 + return NULL;
86924 +}
86925 +
86926 +static struct acl_object_label *
86927 +__full_lookup(const struct dentry *orig_dentry, const struct vfsmount *orig_mnt,
86928 + const u64 curr_ino, const dev_t curr_dev,
86929 + const struct acl_subject_label *subj, char **path, const int checkglob)
86930 +{
86931 + struct acl_subject_label *tmpsubj;
86932 + struct acl_object_label *retval;
86933 + struct acl_object_label *retval2;
86934 +
86935 + tmpsubj = (struct acl_subject_label *) subj;
86936 + read_lock(&gr_inode_lock);
86937 + do {
86938 + retval = lookup_acl_obj_label(curr_ino, curr_dev, tmpsubj);
86939 + if (retval) {
86940 + if (checkglob && retval->globbed) {
86941 + retval2 = chk_glob_label(retval->globbed, orig_dentry, orig_mnt, path);
86942 + if (retval2)
86943 + retval = retval2;
86944 + }
86945 + break;
86946 + }
86947 + } while ((tmpsubj = tmpsubj->parent_subject));
86948 + read_unlock(&gr_inode_lock);
86949 +
86950 + return retval;
86951 +}
86952 +
86953 +static struct acl_object_label *
86954 +full_lookup(const struct dentry *orig_dentry, const struct vfsmount *orig_mnt,
86955 + struct dentry *curr_dentry,
86956 + const struct acl_subject_label *subj, char **path, const int checkglob)
86957 +{
86958 + int newglob = checkglob;
86959 + u64 inode;
86960 + dev_t device;
86961 +
86962 + /* if we aren't checking a subdirectory of the original path yet, don't do glob checking
86963 + as we don't want a / * rule to match instead of the / object
86964 + don't do this for create lookups that call this function though, since they're looking up
86965 + on the parent and thus need globbing checks on all paths
86966 + */
86967 + if (orig_dentry == curr_dentry && newglob != GR_CREATE_GLOB)
86968 + newglob = GR_NO_GLOB;
86969 +
86970 + spin_lock(&curr_dentry->d_lock);
86971 + inode = __get_ino(curr_dentry);
86972 + device = __get_dev(curr_dentry);
86973 + spin_unlock(&curr_dentry->d_lock);
86974 +
86975 + return __full_lookup(orig_dentry, orig_mnt, inode, device, subj, path, newglob);
86976 +}
86977 +
86978 +#ifdef CONFIG_HUGETLBFS
86979 +static inline bool
86980 +is_hugetlbfs_mnt(const struct vfsmount *mnt)
86981 +{
86982 + int i;
86983 + for (i = 0; i < HUGE_MAX_HSTATE; i++) {
86984 + if (unlikely(hugetlbfs_vfsmount[i] == mnt))
86985 + return true;
86986 + }
86987 +
86988 + return false;
86989 +}
86990 +#endif
86991 +
86992 +static struct acl_object_label *
86993 +__chk_obj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
86994 + const struct acl_subject_label *subj, char *path, const int checkglob)
86995 +{
86996 + struct dentry *dentry = (struct dentry *) l_dentry;
86997 + struct vfsmount *mnt = (struct vfsmount *) l_mnt;
86998 + struct inode * inode = d_backing_inode(dentry);
86999 + struct mount *real_mnt = real_mount(mnt);
87000 + struct acl_object_label *retval;
87001 + struct dentry *parent;
87002 +
87003 + read_seqlock_excl(&mount_lock);
87004 + write_seqlock(&rename_lock);
87005 +
87006 + if (unlikely((mnt == shm_mnt && inode->i_nlink == 0) || mnt == pipe_mnt ||
87007 +#ifdef CONFIG_NET
87008 + mnt == sock_mnt ||
87009 +#endif
87010 +#ifdef CONFIG_HUGETLBFS
87011 + (is_hugetlbfs_mnt(mnt) && inode->i_nlink == 0) ||
87012 +#endif
87013 + /* ignore Eric Biederman */
87014 + IS_PRIVATE(inode))) {
87015 + retval = (subj->mode & GR_SHMEXEC) ? fakefs_obj_rwx : fakefs_obj_rw;
87016 + goto out;
87017 + }
87018 +
87019 + for (;;) {
87020 + if (dentry == gr_real_root.dentry && mnt == gr_real_root.mnt)
87021 + break;
87022 +
87023 + if (dentry == mnt->mnt_root || IS_ROOT(dentry)) {
87024 + if (!mnt_has_parent(real_mnt))
87025 + break;
87026 +
87027 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
87028 + if (retval != NULL)
87029 + goto out;
87030 +
87031 + dentry = real_mnt->mnt_mountpoint;
87032 + real_mnt = real_mnt->mnt_parent;
87033 + mnt = &real_mnt->mnt;
87034 + continue;
87035 + }
87036 +
87037 + parent = dentry->d_parent;
87038 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
87039 + if (retval != NULL)
87040 + goto out;
87041 +
87042 + dentry = parent;
87043 + }
87044 +
87045 + retval = full_lookup(l_dentry, l_mnt, dentry, subj, &path, checkglob);
87046 +
87047 + /* gr_real_root is pinned so we don't have to hold a reference */
87048 + if (retval == NULL)
87049 + retval = full_lookup(l_dentry, l_mnt, gr_real_root.dentry, subj, &path, checkglob);
87050 +out:
87051 + write_sequnlock(&rename_lock);
87052 + read_sequnlock_excl(&mount_lock);
87053 +
87054 + BUG_ON(retval == NULL);
87055 +
87056 + return retval;
87057 +}
87058 +
87059 +static struct acl_object_label *
87060 +chk_obj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87061 + const struct acl_subject_label *subj)
87062 +{
87063 + char *path = NULL;
87064 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_REG_GLOB);
87065 +}
87066 +
87067 +static struct acl_object_label *
87068 +chk_obj_label_noglob(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87069 + const struct acl_subject_label *subj)
87070 +{
87071 + char *path = NULL;
87072 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_NO_GLOB);
87073 +}
87074 +
87075 +static struct acl_object_label *
87076 +chk_obj_create_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87077 + const struct acl_subject_label *subj, char *path)
87078 +{
87079 + return __chk_obj_label(l_dentry, l_mnt, subj, path, GR_CREATE_GLOB);
87080 +}
87081 +
87082 +struct acl_subject_label *
87083 +chk_subj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt,
87084 + const struct acl_role_label *role)
87085 +{
87086 + struct dentry *dentry = (struct dentry *) l_dentry;
87087 + struct vfsmount *mnt = (struct vfsmount *) l_mnt;
87088 + struct mount *real_mnt = real_mount(mnt);
87089 + struct acl_subject_label *retval;
87090 + struct dentry *parent;
87091 +
87092 + read_seqlock_excl(&mount_lock);
87093 + write_seqlock(&rename_lock);
87094 +
87095 + for (;;) {
87096 + if (dentry == gr_real_root.dentry && mnt == gr_real_root.mnt)
87097 + break;
87098 + if (dentry == mnt->mnt_root || IS_ROOT(dentry)) {
87099 + if (!mnt_has_parent(real_mnt))
87100 + break;
87101 +
87102 + spin_lock(&dentry->d_lock);
87103 + read_lock(&gr_inode_lock);
87104 + retval =
87105 + lookup_acl_subj_label(__get_ino(dentry),
87106 + __get_dev(dentry), role);
87107 + read_unlock(&gr_inode_lock);
87108 + spin_unlock(&dentry->d_lock);
87109 + if (retval != NULL)
87110 + goto out;
87111 +
87112 + dentry = real_mnt->mnt_mountpoint;
87113 + real_mnt = real_mnt->mnt_parent;
87114 + mnt = &real_mnt->mnt;
87115 + continue;
87116 + }
87117 +
87118 + spin_lock(&dentry->d_lock);
87119 + read_lock(&gr_inode_lock);
87120 + retval = lookup_acl_subj_label(__get_ino(dentry),
87121 + __get_dev(dentry), role);
87122 + read_unlock(&gr_inode_lock);
87123 + parent = dentry->d_parent;
87124 + spin_unlock(&dentry->d_lock);
87125 +
87126 + if (retval != NULL)
87127 + goto out;
87128 +
87129 + dentry = parent;
87130 + }
87131 +
87132 + spin_lock(&dentry->d_lock);
87133 + read_lock(&gr_inode_lock);
87134 + retval = lookup_acl_subj_label(__get_ino(dentry),
87135 + __get_dev(dentry), role);
87136 + read_unlock(&gr_inode_lock);
87137 + spin_unlock(&dentry->d_lock);
87138 +
87139 + if (unlikely(retval == NULL)) {
87140 + /* gr_real_root is pinned, we don't need to hold a reference */
87141 + read_lock(&gr_inode_lock);
87142 + retval = lookup_acl_subj_label(__get_ino(gr_real_root.dentry),
87143 + __get_dev(gr_real_root.dentry), role);
87144 + read_unlock(&gr_inode_lock);
87145 + }
87146 +out:
87147 + write_sequnlock(&rename_lock);
87148 + read_sequnlock_excl(&mount_lock);
87149 +
87150 + BUG_ON(retval == NULL);
87151 +
87152 + return retval;
87153 +}
87154 +
87155 +void
87156 +assign_special_role(const char *rolename)
87157 +{
87158 + struct acl_object_label *obj;
87159 + struct acl_role_label *r;
87160 + struct acl_role_label *assigned = NULL;
87161 + struct task_struct *tsk;
87162 + struct file *filp;
87163 +
87164 + FOR_EACH_ROLE_START(r)
87165 + if (!strcmp(rolename, r->rolename) &&
87166 + (r->roletype & GR_ROLE_SPECIAL)) {
87167 + assigned = r;
87168 + break;
87169 + }
87170 + FOR_EACH_ROLE_END(r)
87171 +
87172 + if (!assigned)
87173 + return;
87174 +
87175 + read_lock(&tasklist_lock);
87176 + read_lock(&grsec_exec_file_lock);
87177 +
87178 + tsk = current->real_parent;
87179 + if (tsk == NULL)
87180 + goto out_unlock;
87181 +
87182 + filp = tsk->exec_file;
87183 + if (filp == NULL)
87184 + goto out_unlock;
87185 +
87186 + tsk->is_writable = 0;
87187 + tsk->inherited = 0;
87188 +
87189 + tsk->acl_sp_role = 1;
87190 + tsk->acl_role_id = ++acl_sp_role_value;
87191 + tsk->role = assigned;
87192 + tsk->acl = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, tsk->role);
87193 +
87194 + /* ignore additional mmap checks for processes that are writable
87195 + by the default ACL */
87196 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, running_polstate.default_role->root_label);
87197 + if (unlikely(obj->mode & GR_WRITE))
87198 + tsk->is_writable = 1;
87199 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, tsk->role->root_label);
87200 + if (unlikely(obj->mode & GR_WRITE))
87201 + tsk->is_writable = 1;
87202 +
87203 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
87204 + printk(KERN_ALERT "Assigning special role:%s subject:%s to process (%s:%d)\n", tsk->role->rolename,
87205 + tsk->acl->filename, tsk->comm, task_pid_nr(tsk));
87206 +#endif
87207 +
87208 +out_unlock:
87209 + read_unlock(&grsec_exec_file_lock);
87210 + read_unlock(&tasklist_lock);
87211 + return;
87212 +}
87213 +
87214 +
87215 +static void
87216 +gr_log_learn(const struct dentry *dentry, const struct vfsmount *mnt, const __u32 mode)
87217 +{
87218 + struct task_struct *task = current;
87219 + const struct cred *cred = current_cred();
87220 +
87221 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename, task->role->roletype,
87222 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
87223 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
87224 + 1UL, 1UL, gr_to_filename(dentry, mnt), (unsigned long) mode, &task->signal->saved_ip);
87225 +
87226 + return;
87227 +}
87228 +
87229 +static void
87230 +gr_log_learn_uid_change(const kuid_t real, const kuid_t effective, const kuid_t fs)
87231 +{
87232 + struct task_struct *task = current;
87233 + const struct cred *cred = current_cred();
87234 +
87235 + security_learn(GR_ID_LEARN_MSG, task->role->rolename, task->role->roletype,
87236 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
87237 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
87238 + 'u', GR_GLOBAL_UID(real), GR_GLOBAL_UID(effective), GR_GLOBAL_UID(fs), &task->signal->saved_ip);
87239 +
87240 + return;
87241 +}
87242 +
87243 +static void
87244 +gr_log_learn_gid_change(const kgid_t real, const kgid_t effective, const kgid_t fs)
87245 +{
87246 + struct task_struct *task = current;
87247 + const struct cred *cred = current_cred();
87248 +
87249 + security_learn(GR_ID_LEARN_MSG, task->role->rolename, task->role->roletype,
87250 + GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), task->exec_file ? gr_to_filename1(task->exec_file->f_path.dentry,
87251 + task->exec_file->f_path.mnt) : task->acl->filename, task->acl->filename,
87252 + 'g', GR_GLOBAL_GID(real), GR_GLOBAL_GID(effective), GR_GLOBAL_GID(fs), &task->signal->saved_ip);
87253 +
87254 + return;
87255 +}
87256 +
87257 +static void
87258 +gr_set_proc_res(struct task_struct *task)
87259 +{
87260 + struct acl_subject_label *proc;
87261 + unsigned short i;
87262 +
87263 + proc = task->acl;
87264 +
87265 + if (proc->mode & (GR_LEARN | GR_INHERITLEARN))
87266 + return;
87267 +
87268 + for (i = 0; i < RLIM_NLIMITS; i++) {
87269 + unsigned long rlim_cur, rlim_max;
87270 +
87271 + if (!(proc->resmask & (1U << i)))
87272 + continue;
87273 +
87274 + rlim_cur = proc->res[i].rlim_cur;
87275 + rlim_max = proc->res[i].rlim_max;
87276 +
87277 + if (i == RLIMIT_NOFILE) {
87278 + unsigned long saved_sysctl_nr_open = sysctl_nr_open;
87279 + if (rlim_cur > saved_sysctl_nr_open)
87280 + rlim_cur = saved_sysctl_nr_open;
87281 + if (rlim_max > saved_sysctl_nr_open)
87282 + rlim_max = saved_sysctl_nr_open;
87283 + }
87284 +
87285 + task->signal->rlim[i].rlim_cur = rlim_cur;
87286 + task->signal->rlim[i].rlim_max = rlim_max;
87287 +
87288 + if (i == RLIMIT_CPU)
87289 + update_rlimit_cpu(task, rlim_cur);
87290 + }
87291 +
87292 + return;
87293 +}
87294 +
87295 +/* both of the below must be called with
87296 + rcu_read_lock();
87297 + read_lock(&tasklist_lock);
87298 + read_lock(&grsec_exec_file_lock);
87299 + except in the case of gr_set_role_label() (for __gr_get_subject_for_task)
87300 +*/
87301 +
87302 +struct acl_subject_label *__gr_get_subject_for_task(const struct gr_policy_state *state, struct task_struct *task, const char *filename, int fallback)
87303 +{
87304 + char *tmpname;
87305 + struct acl_subject_label *tmpsubj;
87306 + struct file *filp;
87307 + struct name_entry *nmatch;
87308 +
87309 + filp = task->exec_file;
87310 + if (filp == NULL)
87311 + return NULL;
87312 +
87313 + /* the following is to apply the correct subject
87314 + on binaries running when the RBAC system
87315 + is enabled, when the binaries have been
87316 + replaced or deleted since their execution
87317 + -----
87318 + when the RBAC system starts, the inode/dev
87319 + from exec_file will be one the RBAC system
87320 + is unaware of. It only knows the inode/dev
87321 + of the present file on disk, or the absence
87322 + of it.
87323 + */
87324 +
87325 + if (filename)
87326 + nmatch = __lookup_name_entry(state, filename);
87327 + else {
87328 + preempt_disable();
87329 + tmpname = gr_to_filename_rbac(filp->f_path.dentry, filp->f_path.mnt);
87330 +
87331 + nmatch = __lookup_name_entry(state, tmpname);
87332 + preempt_enable();
87333 + }
87334 + tmpsubj = NULL;
87335 + if (nmatch) {
87336 + if (nmatch->deleted)
87337 + tmpsubj = lookup_acl_subj_label_deleted(nmatch->inode, nmatch->device, task->role);
87338 + else
87339 + tmpsubj = lookup_acl_subj_label(nmatch->inode, nmatch->device, task->role);
87340 + }
87341 + /* this also works for the reload case -- if we don't match a potentially inherited subject
87342 + then we fall back to a normal lookup based on the binary's ino/dev
87343 + */
87344 + if (tmpsubj == NULL && fallback)
87345 + tmpsubj = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, task->role);
87346 +
87347 + return tmpsubj;
87348 +}
87349 +
87350 +static struct acl_subject_label *gr_get_subject_for_task(struct task_struct *task, const char *filename, int fallback)
87351 +{
87352 + return __gr_get_subject_for_task(&running_polstate, task, filename, fallback);
87353 +}
87354 +
87355 +void __gr_apply_subject_to_task(const struct gr_policy_state *state, struct task_struct *task, struct acl_subject_label *subj)
87356 +{
87357 + struct acl_object_label *obj;
87358 + struct file *filp;
87359 +
87360 + filp = task->exec_file;
87361 +
87362 + task->acl = subj;
87363 + task->is_writable = 0;
87364 + /* ignore additional mmap checks for processes that are writable
87365 + by the default ACL */
87366 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, state->default_role->root_label);
87367 + if (unlikely(obj->mode & GR_WRITE))
87368 + task->is_writable = 1;
87369 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, task->role->root_label);
87370 + if (unlikely(obj->mode & GR_WRITE))
87371 + task->is_writable = 1;
87372 +
87373 + gr_set_proc_res(task);
87374 +
87375 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
87376 + 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);
87377 +#endif
87378 +}
87379 +
87380 +static void gr_apply_subject_to_task(struct task_struct *task, struct acl_subject_label *subj)
87381 +{
87382 + __gr_apply_subject_to_task(&running_polstate, task, subj);
87383 +}
87384 +
87385 +__u32
87386 +gr_search_file(const struct dentry * dentry, const __u32 mode,
87387 + const struct vfsmount * mnt)
87388 +{
87389 + __u32 retval = mode;
87390 + struct acl_subject_label *curracl;
87391 + struct acl_object_label *currobj;
87392 +
87393 + if (unlikely(!(gr_status & GR_READY)))
87394 + return (mode & ~GR_AUDITS);
87395 +
87396 + curracl = current->acl;
87397 +
87398 + currobj = chk_obj_label(dentry, mnt, curracl);
87399 + retval = currobj->mode & mode;
87400 +
87401 + /* if we're opening a specified transfer file for writing
87402 + (e.g. /dev/initctl), then transfer our role to init
87403 + */
87404 + if (unlikely(currobj->mode & GR_INIT_TRANSFER && retval & GR_WRITE &&
87405 + current->role->roletype & GR_ROLE_PERSIST)) {
87406 + struct task_struct *task = init_pid_ns.child_reaper;
87407 +
87408 + if (task->role != current->role) {
87409 + struct acl_subject_label *subj;
87410 +
87411 + task->acl_sp_role = 0;
87412 + task->acl_role_id = current->acl_role_id;
87413 + task->role = current->role;
87414 + rcu_read_lock();
87415 + read_lock(&grsec_exec_file_lock);
87416 + subj = gr_get_subject_for_task(task, NULL, 1);
87417 + gr_apply_subject_to_task(task, subj);
87418 + read_unlock(&grsec_exec_file_lock);
87419 + rcu_read_unlock();
87420 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_INIT_TRANSFER_MSG);
87421 + }
87422 + }
87423 +
87424 + if (unlikely
87425 + ((curracl->mode & (GR_LEARN | GR_INHERITLEARN)) && !(mode & GR_NOPTRACE)
87426 + && (retval != (mode & ~(GR_AUDITS | GR_SUPPRESS))))) {
87427 + __u32 new_mode = mode;
87428 +
87429 + new_mode &= ~(GR_AUDITS | GR_SUPPRESS);
87430 +
87431 + retval = new_mode;
87432 +
87433 + if (new_mode & GR_EXEC && curracl->mode & GR_INHERITLEARN)
87434 + new_mode |= GR_INHERIT;
87435 +
87436 + if (!(mode & GR_NOLEARN))
87437 + gr_log_learn(dentry, mnt, new_mode);
87438 + }
87439 +
87440 + return retval;
87441 +}
87442 +
87443 +struct acl_object_label *gr_get_create_object(const struct dentry *new_dentry,
87444 + const struct dentry *parent,
87445 + const struct vfsmount *mnt)
87446 +{
87447 + struct name_entry *match;
87448 + struct acl_object_label *matchpo;
87449 + struct acl_subject_label *curracl;
87450 + char *path;
87451 +
87452 + if (unlikely(!(gr_status & GR_READY)))
87453 + return NULL;
87454 +
87455 + preempt_disable();
87456 + path = gr_to_filename_rbac(new_dentry, mnt);
87457 + match = lookup_name_entry_create(path);
87458 +
87459 + curracl = current->acl;
87460 +
87461 + if (match) {
87462 + read_lock(&gr_inode_lock);
87463 + matchpo = lookup_acl_obj_label_create(match->inode, match->device, curracl);
87464 + read_unlock(&gr_inode_lock);
87465 +
87466 + if (matchpo) {
87467 + preempt_enable();
87468 + return matchpo;
87469 + }
87470 + }
87471 +
87472 + // lookup parent
87473 +
87474 + matchpo = chk_obj_create_label(parent, mnt, curracl, path);
87475 +
87476 + preempt_enable();
87477 + return matchpo;
87478 +}
87479 +
87480 +__u32
87481 +gr_check_create(const struct dentry * new_dentry, const struct dentry * parent,
87482 + const struct vfsmount * mnt, const __u32 mode)
87483 +{
87484 + struct acl_object_label *matchpo;
87485 + __u32 retval;
87486 +
87487 + if (unlikely(!(gr_status & GR_READY)))
87488 + return (mode & ~GR_AUDITS);
87489 +
87490 + matchpo = gr_get_create_object(new_dentry, parent, mnt);
87491 +
87492 + retval = matchpo->mode & mode;
87493 +
87494 + if ((retval != (mode & ~(GR_AUDITS | GR_SUPPRESS)))
87495 + && (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))) {
87496 + __u32 new_mode = mode;
87497 +
87498 + new_mode &= ~(GR_AUDITS | GR_SUPPRESS);
87499 +
87500 + gr_log_learn(new_dentry, mnt, new_mode);
87501 + return new_mode;
87502 + }
87503 +
87504 + return retval;
87505 +}
87506 +
87507 +__u32
87508 +gr_check_link(const struct dentry * new_dentry,
87509 + const struct dentry * parent_dentry,
87510 + const struct vfsmount * parent_mnt,
87511 + const struct dentry * old_dentry, const struct vfsmount * old_mnt)
87512 +{
87513 + struct acl_object_label *obj;
87514 + __u32 oldmode, newmode;
87515 + __u32 needmode;
87516 + __u32 checkmodes = GR_FIND | GR_APPEND | GR_WRITE | GR_EXEC | GR_SETID | GR_READ |
87517 + GR_DELETE | GR_INHERIT;
87518 +
87519 + if (unlikely(!(gr_status & GR_READY)))
87520 + return (GR_CREATE | GR_LINK);
87521 +
87522 + obj = chk_obj_label(old_dentry, old_mnt, current->acl);
87523 + oldmode = obj->mode;
87524 +
87525 + obj = gr_get_create_object(new_dentry, parent_dentry, parent_mnt);
87526 + newmode = obj->mode;
87527 +
87528 + needmode = newmode & checkmodes;
87529 +
87530 + // old name for hardlink must have at least the permissions of the new name
87531 + if ((oldmode & needmode) != needmode)
87532 + goto bad;
87533 +
87534 + // if old name had restrictions/auditing, make sure the new name does as well
87535 + needmode = oldmode & (GR_NOPTRACE | GR_PTRACERD | GR_INHERIT | GR_AUDITS);
87536 +
87537 + // don't allow hardlinking of suid/sgid/fcapped files without permission
87538 + if (is_privileged_binary(old_dentry))
87539 + needmode |= GR_SETID;
87540 +
87541 + if ((newmode & needmode) != needmode)
87542 + goto bad;
87543 +
87544 + // enforce minimum permissions
87545 + if ((newmode & (GR_CREATE | GR_LINK)) == (GR_CREATE | GR_LINK))
87546 + return newmode;
87547 +bad:
87548 + needmode = oldmode;
87549 + if (is_privileged_binary(old_dentry))
87550 + needmode |= GR_SETID;
87551 +
87552 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN)) {
87553 + gr_log_learn(old_dentry, old_mnt, needmode | GR_CREATE | GR_LINK);
87554 + return (GR_CREATE | GR_LINK);
87555 + } else if (newmode & GR_SUPPRESS)
87556 + return GR_SUPPRESS;
87557 + else
87558 + return 0;
87559 +}
87560 +
87561 +int
87562 +gr_check_hidden_task(const struct task_struct *task)
87563 +{
87564 + if (unlikely(!(gr_status & GR_READY)))
87565 + return 0;
87566 +
87567 + if (!(task->acl->mode & GR_PROCFIND) && !(current->acl->mode & GR_VIEW))
87568 + return 1;
87569 +
87570 + return 0;
87571 +}
87572 +
87573 +int
87574 +gr_check_protected_task(const struct task_struct *task)
87575 +{
87576 + if (unlikely(!(gr_status & GR_READY) || !task))
87577 + return 0;
87578 +
87579 + if ((task->acl->mode & GR_PROTECTED) && !(current->acl->mode & GR_KILL) &&
87580 + task->acl != current->acl)
87581 + return 1;
87582 +
87583 + return 0;
87584 +}
87585 +
87586 +int
87587 +gr_check_protected_task_fowner(struct pid *pid, enum pid_type type)
87588 +{
87589 + struct task_struct *p;
87590 + int ret = 0;
87591 +
87592 + if (unlikely(!(gr_status & GR_READY) || !pid))
87593 + return ret;
87594 +
87595 + read_lock(&tasklist_lock);
87596 + do_each_pid_task(pid, type, p) {
87597 + if ((p->acl->mode & GR_PROTECTED) && !(current->acl->mode & GR_KILL) &&
87598 + p->acl != current->acl) {
87599 + ret = 1;
87600 + goto out;
87601 + }
87602 + } while_each_pid_task(pid, type, p);
87603 +out:
87604 + read_unlock(&tasklist_lock);
87605 +
87606 + return ret;
87607 +}
87608 +
87609 +void
87610 +gr_copy_label(struct task_struct *tsk)
87611 +{
87612 + struct task_struct *p = current;
87613 +
87614 + tsk->inherited = p->inherited;
87615 + tsk->acl_sp_role = 0;
87616 + tsk->acl_role_id = p->acl_role_id;
87617 + tsk->acl = p->acl;
87618 + tsk->role = p->role;
87619 + tsk->signal->used_accept = 0;
87620 + tsk->signal->curr_ip = p->signal->curr_ip;
87621 + tsk->signal->saved_ip = p->signal->saved_ip;
87622 + if (p->exec_file)
87623 + get_file(p->exec_file);
87624 + tsk->exec_file = p->exec_file;
87625 + tsk->is_writable = p->is_writable;
87626 + if (unlikely(p->signal->used_accept)) {
87627 + p->signal->curr_ip = 0;
87628 + p->signal->saved_ip = 0;
87629 + }
87630 +
87631 + return;
87632 +}
87633 +
87634 +extern int gr_process_kernel_setuid_ban(struct user_struct *user);
87635 +
87636 +int
87637 +gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs)
87638 +{
87639 + unsigned int i;
87640 + __u16 num;
87641 + uid_t *uidlist;
87642 + uid_t curuid;
87643 + int realok = 0;
87644 + int effectiveok = 0;
87645 + int fsok = 0;
87646 + uid_t globalreal, globaleffective, globalfs;
87647 +
87648 +#if defined(CONFIG_GRKERNSEC_KERN_LOCKOUT)
87649 + struct user_struct *user;
87650 +
87651 + if (!uid_valid(real))
87652 + goto skipit;
87653 +
87654 + /* find user based on global namespace */
87655 +
87656 + globalreal = GR_GLOBAL_UID(real);
87657 +
87658 + user = find_user(make_kuid(&init_user_ns, globalreal));
87659 + if (user == NULL)
87660 + goto skipit;
87661 +
87662 + if (gr_process_kernel_setuid_ban(user)) {
87663 + /* for find_user */
87664 + free_uid(user);
87665 + return 1;
87666 + }
87667 +
87668 + /* for find_user */
87669 + free_uid(user);
87670 +
87671 +skipit:
87672 +#endif
87673 +
87674 + if (unlikely(!(gr_status & GR_READY)))
87675 + return 0;
87676 +
87677 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))
87678 + gr_log_learn_uid_change(real, effective, fs);
87679 +
87680 + num = current->acl->user_trans_num;
87681 + uidlist = current->acl->user_transitions;
87682 +
87683 + if (uidlist == NULL)
87684 + return 0;
87685 +
87686 + if (!uid_valid(real)) {
87687 + realok = 1;
87688 + globalreal = (uid_t)-1;
87689 + } else {
87690 + globalreal = GR_GLOBAL_UID(real);
87691 + }
87692 + if (!uid_valid(effective)) {
87693 + effectiveok = 1;
87694 + globaleffective = (uid_t)-1;
87695 + } else {
87696 + globaleffective = GR_GLOBAL_UID(effective);
87697 + }
87698 + if (!uid_valid(fs)) {
87699 + fsok = 1;
87700 + globalfs = (uid_t)-1;
87701 + } else {
87702 + globalfs = GR_GLOBAL_UID(fs);
87703 + }
87704 +
87705 + if (current->acl->user_trans_type & GR_ID_ALLOW) {
87706 + for (i = 0; i < num; i++) {
87707 + curuid = uidlist[i];
87708 + if (globalreal == curuid)
87709 + realok = 1;
87710 + if (globaleffective == curuid)
87711 + effectiveok = 1;
87712 + if (globalfs == curuid)
87713 + fsok = 1;
87714 + }
87715 + } else if (current->acl->user_trans_type & GR_ID_DENY) {
87716 + for (i = 0; i < num; i++) {
87717 + curuid = uidlist[i];
87718 + if (globalreal == curuid)
87719 + break;
87720 + if (globaleffective == curuid)
87721 + break;
87722 + if (globalfs == curuid)
87723 + break;
87724 + }
87725 + /* not in deny list */
87726 + if (i == num) {
87727 + realok = 1;
87728 + effectiveok = 1;
87729 + fsok = 1;
87730 + }
87731 + }
87732 +
87733 + if (realok && effectiveok && fsok)
87734 + return 0;
87735 + else {
87736 + gr_log_int(GR_DONT_AUDIT, GR_USRCHANGE_ACL_MSG, realok ? (effectiveok ? (fsok ? 0 : globalfs) : globaleffective) : globalreal);
87737 + return 1;
87738 + }
87739 +}
87740 +
87741 +int
87742 +gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs)
87743 +{
87744 + unsigned int i;
87745 + __u16 num;
87746 + gid_t *gidlist;
87747 + gid_t curgid;
87748 + int realok = 0;
87749 + int effectiveok = 0;
87750 + int fsok = 0;
87751 + gid_t globalreal, globaleffective, globalfs;
87752 +
87753 + if (unlikely(!(gr_status & GR_READY)))
87754 + return 0;
87755 +
87756 + if (current->acl->mode & (GR_LEARN | GR_INHERITLEARN))
87757 + gr_log_learn_gid_change(real, effective, fs);
87758 +
87759 + num = current->acl->group_trans_num;
87760 + gidlist = current->acl->group_transitions;
87761 +
87762 + if (gidlist == NULL)
87763 + return 0;
87764 +
87765 + if (!gid_valid(real)) {
87766 + realok = 1;
87767 + globalreal = (gid_t)-1;
87768 + } else {
87769 + globalreal = GR_GLOBAL_GID(real);
87770 + }
87771 + if (!gid_valid(effective)) {
87772 + effectiveok = 1;
87773 + globaleffective = (gid_t)-1;
87774 + } else {
87775 + globaleffective = GR_GLOBAL_GID(effective);
87776 + }
87777 + if (!gid_valid(fs)) {
87778 + fsok = 1;
87779 + globalfs = (gid_t)-1;
87780 + } else {
87781 + globalfs = GR_GLOBAL_GID(fs);
87782 + }
87783 +
87784 + if (current->acl->group_trans_type & GR_ID_ALLOW) {
87785 + for (i = 0; i < num; i++) {
87786 + curgid = gidlist[i];
87787 + if (globalreal == curgid)
87788 + realok = 1;
87789 + if (globaleffective == curgid)
87790 + effectiveok = 1;
87791 + if (globalfs == curgid)
87792 + fsok = 1;
87793 + }
87794 + } else if (current->acl->group_trans_type & GR_ID_DENY) {
87795 + for (i = 0; i < num; i++) {
87796 + curgid = gidlist[i];
87797 + if (globalreal == curgid)
87798 + break;
87799 + if (globaleffective == curgid)
87800 + break;
87801 + if (globalfs == curgid)
87802 + break;
87803 + }
87804 + /* not in deny list */
87805 + if (i == num) {
87806 + realok = 1;
87807 + effectiveok = 1;
87808 + fsok = 1;
87809 + }
87810 + }
87811 +
87812 + if (realok && effectiveok && fsok)
87813 + return 0;
87814 + else {
87815 + gr_log_int(GR_DONT_AUDIT, GR_GRPCHANGE_ACL_MSG, realok ? (effectiveok ? (fsok ? 0 : globalfs) : globaleffective) : globalreal);
87816 + return 1;
87817 + }
87818 +}
87819 +
87820 +extern int gr_acl_is_capable(const int cap);
87821 +
87822 +void
87823 +gr_set_role_label(struct task_struct *task, const kuid_t kuid, const kgid_t kgid)
87824 +{
87825 + struct acl_role_label *role = task->role;
87826 + struct acl_role_label *origrole = role;
87827 + struct acl_subject_label *subj = NULL;
87828 + struct acl_object_label *obj;
87829 + struct file *filp;
87830 + uid_t uid;
87831 + gid_t gid;
87832 +
87833 + if (unlikely(!(gr_status & GR_READY)))
87834 + return;
87835 +
87836 + uid = GR_GLOBAL_UID(kuid);
87837 + gid = GR_GLOBAL_GID(kgid);
87838 +
87839 + filp = task->exec_file;
87840 +
87841 + /* kernel process, we'll give them the kernel role */
87842 + if (unlikely(!filp)) {
87843 + task->role = running_polstate.kernel_role;
87844 + task->acl = running_polstate.kernel_role->root_label;
87845 + return;
87846 + } else if (!task->role || !(task->role->roletype & GR_ROLE_SPECIAL)) {
87847 + /* save the current ip at time of role lookup so that the proper
87848 + IP will be learned for role_allowed_ip */
87849 + task->signal->saved_ip = task->signal->curr_ip;
87850 + role = lookup_acl_role_label(task, uid, gid);
87851 + }
87852 +
87853 + /* don't change the role if we're not a privileged process */
87854 + if (role && task->role != role &&
87855 + (((role->roletype & GR_ROLE_USER) && !gr_acl_is_capable(CAP_SETUID)) ||
87856 + ((role->roletype & GR_ROLE_GROUP) && !gr_acl_is_capable(CAP_SETGID))))
87857 + return;
87858 +
87859 + task->role = role;
87860 +
87861 + if (task->inherited) {
87862 + /* if we reached our subject through inheritance, then first see
87863 + if there's a subject of the same name in the new role that has
87864 + an object that would result in the same inherited subject
87865 + */
87866 + subj = gr_get_subject_for_task(task, task->acl->filename, 0);
87867 + if (subj) {
87868 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, subj);
87869 + if (!(obj->mode & GR_INHERIT))
87870 + subj = NULL;
87871 + }
87872 +
87873 + }
87874 + if (subj == NULL) {
87875 + /* otherwise:
87876 + perform subject lookup in possibly new role
87877 + we can use this result below in the case where role == task->role
87878 + */
87879 + subj = chk_subj_label(filp->f_path.dentry, filp->f_path.mnt, role);
87880 + }
87881 +
87882 + /* if we changed uid/gid, but result in the same role
87883 + and are using inheritance, don't lose the inherited subject
87884 + if current subject is other than what normal lookup
87885 + would result in, we arrived via inheritance, don't
87886 + lose subject
87887 + */
87888 + if (role != origrole || (!(task->acl->mode & GR_INHERITLEARN) &&
87889 + (subj == task->acl)))
87890 + task->acl = subj;
87891 +
87892 + /* leave task->inherited unaffected */
87893 +
87894 + task->is_writable = 0;
87895 +
87896 + /* ignore additional mmap checks for processes that are writable
87897 + by the default ACL */
87898 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, running_polstate.default_role->root_label);
87899 + if (unlikely(obj->mode & GR_WRITE))
87900 + task->is_writable = 1;
87901 + obj = chk_obj_label(filp->f_path.dentry, filp->f_path.mnt, task->role->root_label);
87902 + if (unlikely(obj->mode & GR_WRITE))
87903 + task->is_writable = 1;
87904 +
87905 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
87906 + 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);
87907 +#endif
87908 +
87909 + gr_set_proc_res(task);
87910 +
87911 + return;
87912 +}
87913 +
87914 +int
87915 +gr_set_proc_label(const struct dentry *dentry, const struct vfsmount *mnt,
87916 + const int unsafe_flags)
87917 +{
87918 + struct task_struct *task = current;
87919 + struct acl_subject_label *newacl;
87920 + struct acl_object_label *obj;
87921 + __u32 retmode;
87922 +
87923 + if (unlikely(!(gr_status & GR_READY)))
87924 + return 0;
87925 +
87926 + newacl = chk_subj_label(dentry, mnt, task->role);
87927 +
87928 + /* special handling for if we did an strace -f -p <pid> from an admin role, where pid then
87929 + did an exec
87930 + */
87931 + rcu_read_lock();
87932 + read_lock(&tasklist_lock);
87933 + if (task->ptrace && task->parent && ((task->parent->role->roletype & GR_ROLE_GOD) ||
87934 + (task->parent->acl->mode & GR_POVERRIDE))) {
87935 + read_unlock(&tasklist_lock);
87936 + rcu_read_unlock();
87937 + goto skip_check;
87938 + }
87939 + read_unlock(&tasklist_lock);
87940 + rcu_read_unlock();
87941 +
87942 + if (unsafe_flags && !(task->acl->mode & GR_POVERRIDE) && (task->acl != newacl) &&
87943 + !(task->role->roletype & GR_ROLE_GOD) &&
87944 + !gr_search_file(dentry, GR_PTRACERD, mnt) &&
87945 + !(task->acl->mode & (GR_LEARN | GR_INHERITLEARN))) {
87946 + if (unsafe_flags & LSM_UNSAFE_SHARE)
87947 + gr_log_fs_generic(GR_DONT_AUDIT, GR_UNSAFESHARE_EXEC_ACL_MSG, dentry, mnt);
87948 + else
87949 + gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_EXEC_ACL_MSG, dentry, mnt);
87950 + return -EACCES;
87951 + }
87952 +
87953 +skip_check:
87954 +
87955 + obj = chk_obj_label(dentry, mnt, task->acl);
87956 + retmode = obj->mode & (GR_INHERIT | GR_AUDIT_INHERIT);
87957 +
87958 + if (!(task->acl->mode & GR_INHERITLEARN) &&
87959 + ((newacl->mode & GR_LEARN) || !(retmode & GR_INHERIT))) {
87960 + if (obj->nested)
87961 + task->acl = obj->nested;
87962 + else
87963 + task->acl = newacl;
87964 + task->inherited = 0;
87965 + } else {
87966 + task->inherited = 1;
87967 + if (retmode & GR_INHERIT && retmode & GR_AUDIT_INHERIT)
87968 + gr_log_str_fs(GR_DO_AUDIT, GR_INHERIT_ACL_MSG, task->acl->filename, dentry, mnt);
87969 + }
87970 +
87971 + task->is_writable = 0;
87972 +
87973 + /* ignore additional mmap checks for processes that are writable
87974 + by the default ACL */
87975 + obj = chk_obj_label(dentry, mnt, running_polstate.default_role->root_label);
87976 + if (unlikely(obj->mode & GR_WRITE))
87977 + task->is_writable = 1;
87978 + obj = chk_obj_label(dentry, mnt, task->role->root_label);
87979 + if (unlikely(obj->mode & GR_WRITE))
87980 + task->is_writable = 1;
87981 +
87982 + gr_set_proc_res(task);
87983 +
87984 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
87985 + 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);
87986 +#endif
87987 + return 0;
87988 +}
87989 +
87990 +/* always called with valid inodev ptr */
87991 +static void
87992 +do_handle_delete(struct inodev_entry *inodev, const u64 ino, const dev_t dev)
87993 +{
87994 + struct acl_object_label *matchpo;
87995 + struct acl_subject_label *matchps;
87996 + struct acl_subject_label *subj;
87997 + struct acl_role_label *role;
87998 + unsigned int x;
87999 +
88000 + FOR_EACH_ROLE_START(role)
88001 + FOR_EACH_SUBJECT_START(role, subj, x)
88002 + if ((matchpo = lookup_acl_obj_label(ino, dev, subj)) != NULL)
88003 + matchpo->mode |= GR_DELETED;
88004 + FOR_EACH_SUBJECT_END(subj,x)
88005 + FOR_EACH_NESTED_SUBJECT_START(role, subj)
88006 + /* nested subjects aren't in the role's subj_hash table */
88007 + if ((matchpo = lookup_acl_obj_label(ino, dev, subj)) != NULL)
88008 + matchpo->mode |= GR_DELETED;
88009 + FOR_EACH_NESTED_SUBJECT_END(subj)
88010 + if ((matchps = lookup_acl_subj_label(ino, dev, role)) != NULL)
88011 + matchps->mode |= GR_DELETED;
88012 + FOR_EACH_ROLE_END(role)
88013 +
88014 + inodev->nentry->deleted = 1;
88015 +
88016 + return;
88017 +}
88018 +
88019 +void
88020 +gr_handle_delete(const u64 ino, const dev_t dev)
88021 +{
88022 + struct inodev_entry *inodev;
88023 +
88024 + if (unlikely(!(gr_status & GR_READY)))
88025 + return;
88026 +
88027 + write_lock(&gr_inode_lock);
88028 + inodev = lookup_inodev_entry(ino, dev);
88029 + if (inodev != NULL)
88030 + do_handle_delete(inodev, ino, dev);
88031 + write_unlock(&gr_inode_lock);
88032 +
88033 + return;
88034 +}
88035 +
88036 +static void
88037 +update_acl_obj_label(const u64 oldinode, const dev_t olddevice,
88038 + const u64 newinode, const dev_t newdevice,
88039 + struct acl_subject_label *subj)
88040 +{
88041 + unsigned int index = gr_fhash(oldinode, olddevice, subj->obj_hash_size);
88042 + struct acl_object_label *match;
88043 +
88044 + match = subj->obj_hash[index];
88045 +
88046 + while (match && (match->inode != oldinode ||
88047 + match->device != olddevice ||
88048 + !(match->mode & GR_DELETED)))
88049 + match = match->next;
88050 +
88051 + if (match && (match->inode == oldinode)
88052 + && (match->device == olddevice)
88053 + && (match->mode & GR_DELETED)) {
88054 + if (match->prev == NULL) {
88055 + subj->obj_hash[index] = match->next;
88056 + if (match->next != NULL)
88057 + match->next->prev = NULL;
88058 + } else {
88059 + match->prev->next = match->next;
88060 + if (match->next != NULL)
88061 + match->next->prev = match->prev;
88062 + }
88063 + match->prev = NULL;
88064 + match->next = NULL;
88065 + match->inode = newinode;
88066 + match->device = newdevice;
88067 + match->mode &= ~GR_DELETED;
88068 +
88069 + insert_acl_obj_label(match, subj);
88070 + }
88071 +
88072 + return;
88073 +}
88074 +
88075 +static void
88076 +update_acl_subj_label(const u64 oldinode, const dev_t olddevice,
88077 + const u64 newinode, const dev_t newdevice,
88078 + struct acl_role_label *role)
88079 +{
88080 + unsigned int index = gr_fhash(oldinode, olddevice, role->subj_hash_size);
88081 + struct acl_subject_label *match;
88082 +
88083 + match = role->subj_hash[index];
88084 +
88085 + while (match && (match->inode != oldinode ||
88086 + match->device != olddevice ||
88087 + !(match->mode & GR_DELETED)))
88088 + match = match->next;
88089 +
88090 + if (match && (match->inode == oldinode)
88091 + && (match->device == olddevice)
88092 + && (match->mode & GR_DELETED)) {
88093 + if (match->prev == NULL) {
88094 + role->subj_hash[index] = match->next;
88095 + if (match->next != NULL)
88096 + match->next->prev = NULL;
88097 + } else {
88098 + match->prev->next = match->next;
88099 + if (match->next != NULL)
88100 + match->next->prev = match->prev;
88101 + }
88102 + match->prev = NULL;
88103 + match->next = NULL;
88104 + match->inode = newinode;
88105 + match->device = newdevice;
88106 + match->mode &= ~GR_DELETED;
88107 +
88108 + insert_acl_subj_label(match, role);
88109 + }
88110 +
88111 + return;
88112 +}
88113 +
88114 +static void
88115 +update_inodev_entry(const u64 oldinode, const dev_t olddevice,
88116 + const u64 newinode, const dev_t newdevice)
88117 +{
88118 + unsigned int index = gr_fhash(oldinode, olddevice, running_polstate.inodev_set.i_size);
88119 + struct inodev_entry *match;
88120 +
88121 + match = running_polstate.inodev_set.i_hash[index];
88122 +
88123 + while (match && (match->nentry->inode != oldinode ||
88124 + match->nentry->device != olddevice || !match->nentry->deleted))
88125 + match = match->next;
88126 +
88127 + if (match && (match->nentry->inode == oldinode)
88128 + && (match->nentry->device == olddevice) &&
88129 + match->nentry->deleted) {
88130 + if (match->prev == NULL) {
88131 + running_polstate.inodev_set.i_hash[index] = match->next;
88132 + if (match->next != NULL)
88133 + match->next->prev = NULL;
88134 + } else {
88135 + match->prev->next = match->next;
88136 + if (match->next != NULL)
88137 + match->next->prev = match->prev;
88138 + }
88139 + match->prev = NULL;
88140 + match->next = NULL;
88141 + match->nentry->inode = newinode;
88142 + match->nentry->device = newdevice;
88143 + match->nentry->deleted = 0;
88144 +
88145 + insert_inodev_entry(match);
88146 + }
88147 +
88148 + return;
88149 +}
88150 +
88151 +static void
88152 +__do_handle_create(const struct name_entry *matchn, u64 ino, dev_t dev)
88153 +{
88154 + struct acl_subject_label *subj;
88155 + struct acl_role_label *role;
88156 + unsigned int x;
88157 +
88158 + FOR_EACH_ROLE_START(role)
88159 + update_acl_subj_label(matchn->inode, matchn->device, ino, dev, role);
88160 +
88161 + FOR_EACH_NESTED_SUBJECT_START(role, subj)
88162 + if ((subj->inode == ino) && (subj->device == dev)) {
88163 + subj->inode = ino;
88164 + subj->device = dev;
88165 + }
88166 + /* nested subjects aren't in the role's subj_hash table */
88167 + update_acl_obj_label(matchn->inode, matchn->device,
88168 + ino, dev, subj);
88169 + FOR_EACH_NESTED_SUBJECT_END(subj)
88170 + FOR_EACH_SUBJECT_START(role, subj, x)
88171 + update_acl_obj_label(matchn->inode, matchn->device,
88172 + ino, dev, subj);
88173 + FOR_EACH_SUBJECT_END(subj,x)
88174 + FOR_EACH_ROLE_END(role)
88175 +
88176 + update_inodev_entry(matchn->inode, matchn->device, ino, dev);
88177 +
88178 + return;
88179 +}
88180 +
88181 +static void
88182 +do_handle_create(const struct name_entry *matchn, const struct dentry *dentry,
88183 + const struct vfsmount *mnt)
88184 +{
88185 + u64 ino = __get_ino(dentry);
88186 + dev_t dev = __get_dev(dentry);
88187 +
88188 + __do_handle_create(matchn, ino, dev);
88189 +
88190 + return;
88191 +}
88192 +
88193 +void
88194 +gr_handle_create(const struct dentry *dentry, const struct vfsmount *mnt)
88195 +{
88196 + struct name_entry *matchn;
88197 +
88198 + if (unlikely(!(gr_status & GR_READY)))
88199 + return;
88200 +
88201 + preempt_disable();
88202 + matchn = lookup_name_entry(gr_to_filename_rbac(dentry, mnt));
88203 +
88204 + if (unlikely((unsigned long)matchn)) {
88205 + write_lock(&gr_inode_lock);
88206 + do_handle_create(matchn, dentry, mnt);
88207 + write_unlock(&gr_inode_lock);
88208 + }
88209 + preempt_enable();
88210 +
88211 + return;
88212 +}
88213 +
88214 +void
88215 +gr_handle_proc_create(const struct dentry *dentry, const struct inode *inode)
88216 +{
88217 + struct name_entry *matchn;
88218 +
88219 + if (unlikely(!(gr_status & GR_READY)))
88220 + return;
88221 +
88222 + preempt_disable();
88223 + matchn = lookup_name_entry(gr_to_proc_filename_rbac(dentry, init_pid_ns.proc_mnt));
88224 +
88225 + if (unlikely((unsigned long)matchn)) {
88226 + write_lock(&gr_inode_lock);
88227 + __do_handle_create(matchn, inode->i_ino, inode->i_sb->s_dev);
88228 + write_unlock(&gr_inode_lock);
88229 + }
88230 + preempt_enable();
88231 +
88232 + return;
88233 +}
88234 +
88235 +void
88236 +gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
88237 + struct dentry *old_dentry,
88238 + struct dentry *new_dentry,
88239 + struct vfsmount *mnt, const __u8 replace, unsigned int flags)
88240 +{
88241 + struct name_entry *matchn;
88242 + struct name_entry *matchn2 = NULL;
88243 + struct inodev_entry *inodev;
88244 + struct inode *inode = d_backing_inode(new_dentry);
88245 + struct inode *old_inode = d_backing_inode(old_dentry);
88246 + u64 old_ino = __get_ino(old_dentry);
88247 + dev_t old_dev = __get_dev(old_dentry);
88248 + unsigned int exchange = flags & RENAME_EXCHANGE;
88249 +
88250 + /* vfs_rename swaps the name and parent link for old_dentry and
88251 + new_dentry
88252 + at this point, old_dentry has the new name, parent link, and inode
88253 + for the renamed file
88254 + if a file is being replaced by a rename, new_dentry has the inode
88255 + and name for the replaced file
88256 + */
88257 +
88258 + if (unlikely(!(gr_status & GR_READY)))
88259 + return;
88260 +
88261 + preempt_disable();
88262 + matchn = lookup_name_entry(gr_to_filename_rbac(old_dentry, mnt));
88263 +
88264 + /* exchange cases:
88265 + a filename exists for the source, but not dest
88266 + do a recreate on source
88267 + a filename exists for the dest, but not source
88268 + do a recreate on dest
88269 + a filename exists for both source and dest
88270 + delete source and dest, then create source and dest
88271 + a filename exists for neither source nor dest
88272 + no updates needed
88273 +
88274 + the name entry lookups get us the old inode/dev associated with
88275 + each name, so do the deletes first (if possible) so that when
88276 + we do the create, we pick up on the right entries
88277 + */
88278 +
88279 + if (exchange)
88280 + matchn2 = lookup_name_entry(gr_to_filename_rbac(new_dentry, mnt));
88281 +
88282 + /* we wouldn't have to check d_inode if it weren't for
88283 + NFS silly-renaming
88284 + */
88285 +
88286 + write_lock(&gr_inode_lock);
88287 + if (unlikely((replace || exchange) && inode)) {
88288 + u64 new_ino = __get_ino(new_dentry);
88289 + dev_t new_dev = __get_dev(new_dentry);
88290 +
88291 + inodev = lookup_inodev_entry(new_ino, new_dev);
88292 + if (inodev != NULL && ((inode->i_nlink <= 1) || d_is_dir(new_dentry)))
88293 + do_handle_delete(inodev, new_ino, new_dev);
88294 + }
88295 +
88296 + inodev = lookup_inodev_entry(old_ino, old_dev);
88297 + if (inodev != NULL && ((old_inode->i_nlink <= 1) || d_is_dir(old_dentry)))
88298 + do_handle_delete(inodev, old_ino, old_dev);
88299 +
88300 + if (unlikely(matchn != NULL))
88301 + do_handle_create(matchn, old_dentry, mnt);
88302 +
88303 + if (unlikely(matchn2 != NULL))
88304 + do_handle_create(matchn2, new_dentry, mnt);
88305 +
88306 + write_unlock(&gr_inode_lock);
88307 + preempt_enable();
88308 +
88309 + return;
88310 +}
88311 +
88312 +#if defined(CONFIG_GRKERNSEC_RESLOG) || !defined(CONFIG_GRKERNSEC_NO_RBAC)
88313 +static const unsigned long res_learn_bumps[GR_NLIMITS] = {
88314 + [RLIMIT_CPU] = GR_RLIM_CPU_BUMP,
88315 + [RLIMIT_FSIZE] = GR_RLIM_FSIZE_BUMP,
88316 + [RLIMIT_DATA] = GR_RLIM_DATA_BUMP,
88317 + [RLIMIT_STACK] = GR_RLIM_STACK_BUMP,
88318 + [RLIMIT_CORE] = GR_RLIM_CORE_BUMP,
88319 + [RLIMIT_RSS] = GR_RLIM_RSS_BUMP,
88320 + [RLIMIT_NPROC] = GR_RLIM_NPROC_BUMP,
88321 + [RLIMIT_NOFILE] = GR_RLIM_NOFILE_BUMP,
88322 + [RLIMIT_MEMLOCK] = GR_RLIM_MEMLOCK_BUMP,
88323 + [RLIMIT_AS] = GR_RLIM_AS_BUMP,
88324 + [RLIMIT_LOCKS] = GR_RLIM_LOCKS_BUMP,
88325 + [RLIMIT_SIGPENDING] = GR_RLIM_SIGPENDING_BUMP,
88326 + [RLIMIT_MSGQUEUE] = GR_RLIM_MSGQUEUE_BUMP,
88327 + [RLIMIT_NICE] = GR_RLIM_NICE_BUMP,
88328 + [RLIMIT_RTPRIO] = GR_RLIM_RTPRIO_BUMP,
88329 + [RLIMIT_RTTIME] = GR_RLIM_RTTIME_BUMP
88330 +};
88331 +
88332 +void
88333 +gr_learn_resource(const struct task_struct *task,
88334 + const int res, const unsigned long wanted, const int gt)
88335 +{
88336 + struct acl_subject_label *acl;
88337 + const struct cred *cred;
88338 +
88339 + if (unlikely((gr_status & GR_READY) &&
88340 + task->acl && (task->acl->mode & (GR_LEARN | GR_INHERITLEARN))))
88341 + goto skip_reslog;
88342 +
88343 + gr_log_resource(task, res, wanted, gt);
88344 +skip_reslog:
88345 +
88346 + if (unlikely(!(gr_status & GR_READY) || !wanted || res >= GR_NLIMITS))
88347 + return;
88348 +
88349 + acl = task->acl;
88350 +
88351 + if (likely(!acl || !(acl->mode & (GR_LEARN | GR_INHERITLEARN)) ||
88352 + !(acl->resmask & (1U << (unsigned short) res))))
88353 + return;
88354 +
88355 + if (wanted >= acl->res[res].rlim_cur) {
88356 + unsigned long res_add;
88357 +
88358 + res_add = wanted + res_learn_bumps[res];
88359 +
88360 + acl->res[res].rlim_cur = res_add;
88361 +
88362 + if (wanted > acl->res[res].rlim_max)
88363 + acl->res[res].rlim_max = res_add;
88364 +
88365 + /* only log the subject filename, since resource logging is supported for
88366 + single-subject learning only */
88367 + rcu_read_lock();
88368 + cred = __task_cred(task);
88369 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename,
88370 + task->role->roletype, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid), acl->filename,
88371 + acl->filename, acl->res[res].rlim_cur, acl->res[res].rlim_max,
88372 + "", (unsigned long) res, &task->signal->saved_ip);
88373 + rcu_read_unlock();
88374 + }
88375 +
88376 + return;
88377 +}
88378 +EXPORT_SYMBOL_GPL(gr_learn_resource);
88379 +#endif
88380 +
88381 +#if defined(CONFIG_PAX_HAVE_ACL_FLAGS) && (defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR))
88382 +void
88383 +pax_set_initial_flags(struct linux_binprm *bprm)
88384 +{
88385 + struct task_struct *task = current;
88386 + struct acl_subject_label *proc;
88387 + unsigned long flags;
88388 +
88389 + if (unlikely(!(gr_status & GR_READY)))
88390 + return;
88391 +
88392 + flags = pax_get_flags(task);
88393 +
88394 + proc = task->acl;
88395 +
88396 + if (proc->pax_flags & GR_PAX_DISABLE_PAGEEXEC)
88397 + flags &= ~MF_PAX_PAGEEXEC;
88398 + if (proc->pax_flags & GR_PAX_DISABLE_SEGMEXEC)
88399 + flags &= ~MF_PAX_SEGMEXEC;
88400 + if (proc->pax_flags & GR_PAX_DISABLE_RANDMMAP)
88401 + flags &= ~MF_PAX_RANDMMAP;
88402 + if (proc->pax_flags & GR_PAX_DISABLE_EMUTRAMP)
88403 + flags &= ~MF_PAX_EMUTRAMP;
88404 + if (proc->pax_flags & GR_PAX_DISABLE_MPROTECT)
88405 + flags &= ~MF_PAX_MPROTECT;
88406 +
88407 + if (proc->pax_flags & GR_PAX_ENABLE_PAGEEXEC)
88408 + flags |= MF_PAX_PAGEEXEC;
88409 + if (proc->pax_flags & GR_PAX_ENABLE_SEGMEXEC)
88410 + flags |= MF_PAX_SEGMEXEC;
88411 + if (proc->pax_flags & GR_PAX_ENABLE_RANDMMAP)
88412 + flags |= MF_PAX_RANDMMAP;
88413 + if (proc->pax_flags & GR_PAX_ENABLE_EMUTRAMP)
88414 + flags |= MF_PAX_EMUTRAMP;
88415 + if (proc->pax_flags & GR_PAX_ENABLE_MPROTECT)
88416 + flags |= MF_PAX_MPROTECT;
88417 +
88418 + pax_set_flags(task, flags);
88419 +
88420 + return;
88421 +}
88422 +#endif
88423 +
88424 +int
88425 +gr_handle_proc_ptrace(struct task_struct *task)
88426 +{
88427 + struct file *filp;
88428 + struct task_struct *tmp = task;
88429 + struct task_struct *curtemp = current;
88430 + __u32 retmode;
88431 +
88432 +#ifndef CONFIG_GRKERNSEC_HARDEN_PTRACE
88433 + if (unlikely(!(gr_status & GR_READY)))
88434 + return 0;
88435 +#endif
88436 +
88437 + read_lock(&tasklist_lock);
88438 + read_lock(&grsec_exec_file_lock);
88439 + filp = task->exec_file;
88440 +
88441 + while (task_pid_nr(tmp) > 0) {
88442 + if (tmp == curtemp)
88443 + break;
88444 + tmp = tmp->real_parent;
88445 + }
88446 +
88447 + if (!filp || (task_pid_nr(tmp) == 0 && ((grsec_enable_harden_ptrace && gr_is_global_nonroot(current_uid()) && !(gr_status & GR_READY)) ||
88448 + ((gr_status & GR_READY) && !(current->acl->mode & GR_RELAXPTRACE))))) {
88449 + read_unlock(&grsec_exec_file_lock);
88450 + read_unlock(&tasklist_lock);
88451 + return 1;
88452 + }
88453 +
88454 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
88455 + if (!(gr_status & GR_READY)) {
88456 + read_unlock(&grsec_exec_file_lock);
88457 + read_unlock(&tasklist_lock);
88458 + return 0;
88459 + }
88460 +#endif
88461 +
88462 + retmode = gr_search_file(filp->f_path.dentry, GR_NOPTRACE, filp->f_path.mnt);
88463 + read_unlock(&grsec_exec_file_lock);
88464 + read_unlock(&tasklist_lock);
88465 +
88466 + if (retmode & GR_NOPTRACE)
88467 + return 1;
88468 +
88469 + if (!(current->acl->mode & GR_POVERRIDE) && !(current->role->roletype & GR_ROLE_GOD)
88470 + && (current->acl != task->acl || (current->acl != current->role->root_label
88471 + && task_pid_nr(current) != task_pid_nr(task))))
88472 + return 1;
88473 +
88474 + return 0;
88475 +}
88476 +
88477 +void task_grsec_rbac(struct seq_file *m, struct task_struct *p)
88478 +{
88479 + if (unlikely(!(gr_status & GR_READY)))
88480 + return;
88481 +
88482 + if (!(current->role->roletype & GR_ROLE_GOD))
88483 + return;
88484 +
88485 + seq_printf(m, "RBAC:\t%.64s:%c:%.950s\n",
88486 + p->role->rolename, gr_task_roletype_to_char(p),
88487 + p->acl->filename);
88488 +}
88489 +
88490 +int
88491 +gr_handle_ptrace(struct task_struct *task, const long request)
88492 +{
88493 + struct task_struct *tmp = task;
88494 + struct task_struct *curtemp = current;
88495 + __u32 retmode;
88496 +
88497 +#ifndef CONFIG_GRKERNSEC_HARDEN_PTRACE
88498 + if (unlikely(!(gr_status & GR_READY)))
88499 + return 0;
88500 +#endif
88501 + if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
88502 + read_lock(&tasklist_lock);
88503 + while (task_pid_nr(tmp) > 0) {
88504 + if (tmp == curtemp)
88505 + break;
88506 + tmp = tmp->real_parent;
88507 + }
88508 +
88509 + if (task_pid_nr(tmp) == 0 && ((grsec_enable_harden_ptrace && gr_is_global_nonroot(current_uid()) && !(gr_status & GR_READY)) ||
88510 + ((gr_status & GR_READY) && !(current->acl->mode & GR_RELAXPTRACE)))) {
88511 + read_unlock(&tasklist_lock);
88512 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
88513 + return 1;
88514 + }
88515 + read_unlock(&tasklist_lock);
88516 + }
88517 +
88518 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
88519 + if (!(gr_status & GR_READY))
88520 + return 0;
88521 +#endif
88522 +
88523 + read_lock(&grsec_exec_file_lock);
88524 + if (unlikely(!task->exec_file)) {
88525 + read_unlock(&grsec_exec_file_lock);
88526 + return 0;
88527 + }
88528 +
88529 + retmode = gr_search_file(task->exec_file->f_path.dentry, GR_PTRACERD | GR_NOPTRACE, task->exec_file->f_path.mnt);
88530 + read_unlock(&grsec_exec_file_lock);
88531 +
88532 + if (retmode & GR_NOPTRACE) {
88533 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
88534 + return 1;
88535 + }
88536 +
88537 + if (retmode & GR_PTRACERD) {
88538 + switch (request) {
88539 + case PTRACE_SEIZE:
88540 + case PTRACE_POKETEXT:
88541 + case PTRACE_POKEDATA:
88542 + case PTRACE_POKEUSR:
88543 +#if !defined(CONFIG_PPC32) && !defined(CONFIG_PPC64) && !defined(CONFIG_PARISC) && !defined(CONFIG_ALPHA) && !defined(CONFIG_IA64)
88544 + case PTRACE_SETREGS:
88545 + case PTRACE_SETFPREGS:
88546 +#endif
88547 +#ifdef CONFIG_X86
88548 + case PTRACE_SETFPXREGS:
88549 +#endif
88550 +#ifdef CONFIG_ALTIVEC
88551 + case PTRACE_SETVRREGS:
88552 +#endif
88553 + return 1;
88554 + default:
88555 + return 0;
88556 + }
88557 + } else if (!(current->acl->mode & GR_POVERRIDE) &&
88558 + !(current->role->roletype & GR_ROLE_GOD) &&
88559 + (current->acl != task->acl)) {
88560 + gr_log_ptrace(GR_DONT_AUDIT, GR_PTRACE_ACL_MSG, task);
88561 + return 1;
88562 + }
88563 +
88564 + return 0;
88565 +}
88566 +
88567 +static int is_writable_mmap(const struct file *filp)
88568 +{
88569 + struct task_struct *task = current;
88570 + struct acl_object_label *obj, *obj2;
88571 + struct dentry *dentry = filp->f_path.dentry;
88572 + struct vfsmount *mnt = filp->f_path.mnt;
88573 + struct inode *inode = d_backing_inode(dentry);
88574 +
88575 + if (gr_status & GR_READY && !(task->acl->mode & GR_OVERRIDE) &&
88576 + !task->is_writable && d_is_reg(dentry) && (mnt != shm_mnt || (inode->i_nlink > 0))) {
88577 + obj = chk_obj_label(dentry, mnt, running_polstate.default_role->root_label);
88578 + obj2 = chk_obj_label(dentry, mnt, task->role->root_label);
88579 + if (unlikely((obj->mode & GR_WRITE) || (obj2->mode & GR_WRITE))) {
88580 + gr_log_fs_generic(GR_DONT_AUDIT, GR_WRITLIB_ACL_MSG, dentry, mnt);
88581 + return 1;
88582 + }
88583 + }
88584 + return 0;
88585 +}
88586 +
88587 +int
88588 +gr_acl_handle_mmap(const struct file *file, const unsigned long prot)
88589 +{
88590 + __u32 mode;
88591 +
88592 + if (unlikely(!file || !(prot & PROT_EXEC)))
88593 + return 1;
88594 +
88595 + if (is_writable_mmap(file))
88596 + return 0;
88597 +
88598 + mode =
88599 + gr_search_file(file->f_path.dentry,
88600 + GR_EXEC | GR_AUDIT_EXEC | GR_SUPPRESS,
88601 + file->f_path.mnt);
88602 +
88603 + if (!gr_tpe_allow(file))
88604 + return 0;
88605 +
88606 + if (unlikely(!(mode & GR_EXEC) && !(mode & GR_SUPPRESS))) {
88607 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_MMAP_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
88608 + return 0;
88609 + } else if (unlikely(!(mode & GR_EXEC))) {
88610 + return 0;
88611 + } else if (unlikely(mode & GR_EXEC && mode & GR_AUDIT_EXEC)) {
88612 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_MMAP_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
88613 + return 1;
88614 + }
88615 +
88616 + return 1;
88617 +}
88618 +
88619 +int
88620 +gr_acl_handle_mprotect(const struct file *file, const unsigned long prot)
88621 +{
88622 + __u32 mode;
88623 +
88624 + if (unlikely(!file || !(prot & PROT_EXEC)))
88625 + return 1;
88626 +
88627 + if (is_writable_mmap(file))
88628 + return 0;
88629 +
88630 + mode =
88631 + gr_search_file(file->f_path.dentry,
88632 + GR_EXEC | GR_AUDIT_EXEC | GR_SUPPRESS,
88633 + file->f_path.mnt);
88634 +
88635 + if (!gr_tpe_allow(file))
88636 + return 0;
88637 +
88638 + if (unlikely(!(mode & GR_EXEC) && !(mode & GR_SUPPRESS))) {
88639 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_MPROTECT_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
88640 + return 0;
88641 + } else if (unlikely(!(mode & GR_EXEC))) {
88642 + return 0;
88643 + } else if (unlikely(mode & GR_EXEC && mode & GR_AUDIT_EXEC)) {
88644 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_MPROTECT_ACL_MSG, file->f_path.dentry, file->f_path.mnt);
88645 + return 1;
88646 + }
88647 +
88648 + return 1;
88649 +}
88650 +
88651 +void
88652 +gr_acl_handle_psacct(struct task_struct *task, const long code)
88653 +{
88654 + unsigned long runtime, cputime;
88655 + cputime_t utime, stime;
88656 + unsigned int wday, cday;
88657 + __u8 whr, chr;
88658 + __u8 wmin, cmin;
88659 + __u8 wsec, csec;
88660 + struct timespec curtime, starttime;
88661 +
88662 + if (unlikely(!(gr_status & GR_READY) || !task->acl ||
88663 + !(task->acl->mode & GR_PROCACCT)))
88664 + return;
88665 +
88666 + curtime = ns_to_timespec(ktime_get_ns());
88667 + starttime = ns_to_timespec(task->start_time);
88668 + runtime = curtime.tv_sec - starttime.tv_sec;
88669 + wday = runtime / (60 * 60 * 24);
88670 + runtime -= wday * (60 * 60 * 24);
88671 + whr = runtime / (60 * 60);
88672 + runtime -= whr * (60 * 60);
88673 + wmin = runtime / 60;
88674 + runtime -= wmin * 60;
88675 + wsec = runtime;
88676 +
88677 + task_cputime(task, &utime, &stime);
88678 + cputime = cputime_to_secs(utime + stime);
88679 + cday = cputime / (60 * 60 * 24);
88680 + cputime -= cday * (60 * 60 * 24);
88681 + chr = cputime / (60 * 60);
88682 + cputime -= chr * (60 * 60);
88683 + cmin = cputime / 60;
88684 + cputime -= cmin * 60;
88685 + csec = cputime;
88686 +
88687 + gr_log_procacct(GR_DO_AUDIT, GR_ACL_PROCACCT_MSG, task, wday, whr, wmin, wsec, cday, chr, cmin, csec, code);
88688 +
88689 + return;
88690 +}
88691 +
88692 +#ifdef CONFIG_TASKSTATS
88693 +int gr_is_taskstats_denied(int pid)
88694 +{
88695 + struct task_struct *task;
88696 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
88697 + const struct cred *cred;
88698 +#endif
88699 + int ret = 0;
88700 +
88701 + /* restrict taskstats viewing to un-chrooted root users
88702 + who have the 'view' subject flag if the RBAC system is enabled
88703 + */
88704 +
88705 + rcu_read_lock();
88706 + read_lock(&tasklist_lock);
88707 + task = find_task_by_vpid(pid);
88708 + if (task) {
88709 +#ifdef CONFIG_GRKERNSEC_CHROOT
88710 + if (proc_is_chrooted(task))
88711 + ret = -EACCES;
88712 +#endif
88713 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
88714 + cred = __task_cred(task);
88715 +#ifdef CONFIG_GRKERNSEC_PROC_USER
88716 + if (gr_is_global_nonroot(cred->uid))
88717 + ret = -EACCES;
88718 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
88719 + if (gr_is_global_nonroot(cred->uid) && !groups_search(cred->group_info, grsec_proc_gid))
88720 + ret = -EACCES;
88721 +#endif
88722 +#endif
88723 + if (gr_status & GR_READY) {
88724 + if (!(task->acl->mode & GR_VIEW))
88725 + ret = -EACCES;
88726 + }
88727 + } else
88728 + ret = -ENOENT;
88729 +
88730 + read_unlock(&tasklist_lock);
88731 + rcu_read_unlock();
88732 +
88733 + return ret;
88734 +}
88735 +#endif
88736 +
88737 +/* AUXV entries are filled via a descendant of search_binary_handler
88738 + after we've already applied the subject for the target
88739 +*/
88740 +int gr_acl_enable_at_secure(void)
88741 +{
88742 + if (unlikely(!(gr_status & GR_READY)))
88743 + return 0;
88744 +
88745 + if (current->acl->mode & GR_ATSECURE)
88746 + return 1;
88747 +
88748 + return 0;
88749 +}
88750 +
88751 +int gr_acl_handle_filldir(const struct file *file, const char *name, const unsigned int namelen, const u64 ino)
88752 +{
88753 + struct task_struct *task = current;
88754 + struct dentry *dentry = file->f_path.dentry;
88755 + struct vfsmount *mnt = file->f_path.mnt;
88756 + struct acl_object_label *obj, *tmp;
88757 + struct acl_subject_label *subj;
88758 + unsigned int bufsize;
88759 + int is_not_root;
88760 + char *path;
88761 + dev_t dev = __get_dev(dentry);
88762 +
88763 + if (unlikely(!(gr_status & GR_READY)))
88764 + return 1;
88765 +
88766 + if (task->acl->mode & (GR_LEARN | GR_INHERITLEARN))
88767 + return 1;
88768 +
88769 + /* ignore Eric Biederman */
88770 + if (IS_PRIVATE(d_backing_inode(dentry)))
88771 + return 1;
88772 +
88773 + subj = task->acl;
88774 + read_lock(&gr_inode_lock);
88775 + do {
88776 + obj = lookup_acl_obj_label(ino, dev, subj);
88777 + if (obj != NULL) {
88778 + read_unlock(&gr_inode_lock);
88779 + return (obj->mode & GR_FIND) ? 1 : 0;
88780 + }
88781 + } while ((subj = subj->parent_subject));
88782 + read_unlock(&gr_inode_lock);
88783 +
88784 + /* this is purely an optimization since we're looking for an object
88785 + for the directory we're doing a readdir on
88786 + if it's possible for any globbed object to match the entry we're
88787 + filling into the directory, then the object we find here will be
88788 + an anchor point with attached globbed objects
88789 + */
88790 + obj = chk_obj_label_noglob(dentry, mnt, task->acl);
88791 + if (obj->globbed == NULL)
88792 + return (obj->mode & GR_FIND) ? 1 : 0;
88793 +
88794 + is_not_root = ((obj->filename[0] == '/') &&
88795 + (obj->filename[1] == '\0')) ? 0 : 1;
88796 + bufsize = PAGE_SIZE - namelen - is_not_root;
88797 +
88798 + /* check bufsize > PAGE_SIZE || bufsize == 0 */
88799 + if (unlikely((bufsize - 1) > (PAGE_SIZE - 1)))
88800 + return 1;
88801 +
88802 + preempt_disable();
88803 + path = d_real_path(dentry, mnt, per_cpu_ptr(gr_shared_page[0], smp_processor_id()),
88804 + bufsize);
88805 +
88806 + bufsize = strlen(path);
88807 +
88808 + /* if base is "/", don't append an additional slash */
88809 + if (is_not_root)
88810 + *(path + bufsize) = '/';
88811 + memcpy(path + bufsize + is_not_root, name, namelen);
88812 + *(path + bufsize + namelen + is_not_root) = '\0';
88813 +
88814 + tmp = obj->globbed;
88815 + while (tmp) {
88816 + if (!glob_match(tmp->filename, path)) {
88817 + preempt_enable();
88818 + return (tmp->mode & GR_FIND) ? 1 : 0;
88819 + }
88820 + tmp = tmp->next;
88821 + }
88822 + preempt_enable();
88823 + return (obj->mode & GR_FIND) ? 1 : 0;
88824 +}
88825 +
88826 +void gr_put_exec_file(struct task_struct *task)
88827 +{
88828 + struct file *filp;
88829 +
88830 + write_lock(&grsec_exec_file_lock);
88831 + filp = task->exec_file;
88832 + task->exec_file = NULL;
88833 + write_unlock(&grsec_exec_file_lock);
88834 +
88835 + if (filp)
88836 + fput(filp);
88837 +
88838 + return;
88839 +}
88840 +
88841 +
88842 +#ifdef CONFIG_NETFILTER_XT_MATCH_GRADM_MODULE
88843 +EXPORT_SYMBOL_GPL(gr_acl_is_enabled);
88844 +#endif
88845 +#ifdef CONFIG_SECURITY
88846 +EXPORT_SYMBOL_GPL(gr_check_user_change);
88847 +EXPORT_SYMBOL_GPL(gr_check_group_change);
88848 +#endif
88849 +
88850 diff --git a/grsecurity/gracl_alloc.c b/grsecurity/gracl_alloc.c
88851 new file mode 100644
88852 index 0000000..9adc75c
88853 --- /dev/null
88854 +++ b/grsecurity/gracl_alloc.c
88855 @@ -0,0 +1,105 @@
88856 +#include <linux/kernel.h>
88857 +#include <linux/mm.h>
88858 +#include <linux/slab.h>
88859 +#include <linux/vmalloc.h>
88860 +#include <linux/gracl.h>
88861 +#include <linux/grsecurity.h>
88862 +
88863 +static struct gr_alloc_state __current_alloc_state = { 1, 1, NULL };
88864 +struct gr_alloc_state *current_alloc_state = &__current_alloc_state;
88865 +
88866 +static int
88867 +alloc_pop(void)
88868 +{
88869 + if (current_alloc_state->alloc_stack_next == 1)
88870 + return 0;
88871 +
88872 + kfree(current_alloc_state->alloc_stack[current_alloc_state->alloc_stack_next - 2]);
88873 +
88874 + current_alloc_state->alloc_stack_next--;
88875 +
88876 + return 1;
88877 +}
88878 +
88879 +static int
88880 +alloc_push(void *buf)
88881 +{
88882 + if (current_alloc_state->alloc_stack_next >= current_alloc_state->alloc_stack_size)
88883 + return 1;
88884 +
88885 + current_alloc_state->alloc_stack[current_alloc_state->alloc_stack_next - 1] = buf;
88886 +
88887 + current_alloc_state->alloc_stack_next++;
88888 +
88889 + return 0;
88890 +}
88891 +
88892 +void *
88893 +acl_alloc(unsigned long len)
88894 +{
88895 + void *ret = NULL;
88896 +
88897 + if (!len || len > PAGE_SIZE)
88898 + goto out;
88899 +
88900 + ret = kmalloc(len, GFP_KERNEL);
88901 +
88902 + if (ret) {
88903 + if (alloc_push(ret)) {
88904 + kfree(ret);
88905 + ret = NULL;
88906 + }
88907 + }
88908 +
88909 +out:
88910 + return ret;
88911 +}
88912 +
88913 +void *
88914 +acl_alloc_num(unsigned long num, unsigned long len)
88915 +{
88916 + if (!len || (num > (PAGE_SIZE / len)))
88917 + return NULL;
88918 +
88919 + return acl_alloc(num * len);
88920 +}
88921 +
88922 +void
88923 +acl_free_all(void)
88924 +{
88925 + if (!current_alloc_state->alloc_stack)
88926 + return;
88927 +
88928 + while (alloc_pop()) ;
88929 +
88930 + if (current_alloc_state->alloc_stack) {
88931 + if ((current_alloc_state->alloc_stack_size * sizeof (void *)) <= PAGE_SIZE)
88932 + kfree(current_alloc_state->alloc_stack);
88933 + else
88934 + vfree(current_alloc_state->alloc_stack);
88935 + }
88936 +
88937 + current_alloc_state->alloc_stack = NULL;
88938 + current_alloc_state->alloc_stack_size = 1;
88939 + current_alloc_state->alloc_stack_next = 1;
88940 +
88941 + return;
88942 +}
88943 +
88944 +int
88945 +acl_alloc_stack_init(unsigned long size)
88946 +{
88947 + if ((size * sizeof (void *)) <= PAGE_SIZE)
88948 + current_alloc_state->alloc_stack =
88949 + (void **) kmalloc(size * sizeof (void *), GFP_KERNEL);
88950 + else
88951 + current_alloc_state->alloc_stack = (void **) vmalloc(size * sizeof (void *));
88952 +
88953 + current_alloc_state->alloc_stack_size = size;
88954 + current_alloc_state->alloc_stack_next = 1;
88955 +
88956 + if (!current_alloc_state->alloc_stack)
88957 + return 0;
88958 + else
88959 + return 1;
88960 +}
88961 diff --git a/grsecurity/gracl_cap.c b/grsecurity/gracl_cap.c
88962 new file mode 100644
88963 index 0000000..1a94c11
88964 --- /dev/null
88965 +++ b/grsecurity/gracl_cap.c
88966 @@ -0,0 +1,127 @@
88967 +#include <linux/kernel.h>
88968 +#include <linux/module.h>
88969 +#include <linux/sched.h>
88970 +#include <linux/gracl.h>
88971 +#include <linux/grsecurity.h>
88972 +#include <linux/grinternal.h>
88973 +
88974 +extern const char *captab_log[];
88975 +extern int captab_log_entries;
88976 +
88977 +int gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap)
88978 +{
88979 + struct acl_subject_label *curracl;
88980 +
88981 + if (!gr_acl_is_enabled())
88982 + return 1;
88983 +
88984 + curracl = task->acl;
88985 +
88986 + if (curracl->mode & (GR_LEARN | GR_INHERITLEARN)) {
88987 + security_learn(GR_LEARN_AUDIT_MSG, task->role->rolename,
88988 + task->role->roletype, GR_GLOBAL_UID(cred->uid),
88989 + GR_GLOBAL_GID(cred->gid), task->exec_file ?
88990 + gr_to_filename(task->exec_file->f_path.dentry,
88991 + task->exec_file->f_path.mnt) : curracl->filename,
88992 + curracl->filename, 0UL,
88993 + 0UL, "", (unsigned long) cap, &task->signal->saved_ip);
88994 + return 1;
88995 + }
88996 +
88997 + return 0;
88998 +}
88999 +
89000 +int gr_task_acl_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
89001 +{
89002 + struct acl_subject_label *curracl;
89003 + kernel_cap_t cap_drop = __cap_empty_set, cap_mask = __cap_empty_set;
89004 + kernel_cap_t cap_audit = __cap_empty_set;
89005 +
89006 + if (!gr_acl_is_enabled())
89007 + return 1;
89008 +
89009 + curracl = task->acl;
89010 +
89011 + cap_drop = curracl->cap_lower;
89012 + cap_mask = curracl->cap_mask;
89013 + cap_audit = curracl->cap_invert_audit;
89014 +
89015 + while ((curracl = curracl->parent_subject)) {
89016 + /* if the cap isn't specified in the current computed mask but is specified in the
89017 + current level subject, and is lowered in the current level subject, then add
89018 + it to the set of dropped capabilities
89019 + otherwise, add the current level subject's mask to the current computed mask
89020 + */
89021 + if (!cap_raised(cap_mask, cap) && cap_raised(curracl->cap_mask, cap)) {
89022 + cap_raise(cap_mask, cap);
89023 + if (cap_raised(curracl->cap_lower, cap))
89024 + cap_raise(cap_drop, cap);
89025 + if (cap_raised(curracl->cap_invert_audit, cap))
89026 + cap_raise(cap_audit, cap);
89027 + }
89028 + }
89029 +
89030 + if (!cap_raised(cap_drop, cap)) {
89031 + if (cap_raised(cap_audit, cap))
89032 + gr_log_cap(GR_DO_AUDIT, GR_CAP_ACL_MSG2, task, captab_log[cap]);
89033 + return 1;
89034 + }
89035 +
89036 + /* only learn the capability use if the process has the capability in the
89037 + general case, the two uses in sys.c of gr_learn_cap are an exception
89038 + to this rule to ensure any role transition involves what the full-learned
89039 + policy believes in a privileged process
89040 + */
89041 + if (cap_raised(cred->cap_effective, cap) && gr_learn_cap(task, cred, cap))
89042 + return 1;
89043 +
89044 + if ((cap >= 0) && (cap < captab_log_entries) && cap_raised(cred->cap_effective, cap) && !cap_raised(cap_audit, cap))
89045 + gr_log_cap(GR_DONT_AUDIT, GR_CAP_ACL_MSG, task, captab_log[cap]);
89046 +
89047 + return 0;
89048 +}
89049 +
89050 +int
89051 +gr_acl_is_capable(const int cap)
89052 +{
89053 + return gr_task_acl_is_capable(current, current_cred(), cap);
89054 +}
89055 +
89056 +int gr_task_acl_is_capable_nolog(const struct task_struct *task, const int cap)
89057 +{
89058 + struct acl_subject_label *curracl;
89059 + kernel_cap_t cap_drop = __cap_empty_set, cap_mask = __cap_empty_set;
89060 +
89061 + if (!gr_acl_is_enabled())
89062 + return 1;
89063 +
89064 + curracl = task->acl;
89065 +
89066 + cap_drop = curracl->cap_lower;
89067 + cap_mask = curracl->cap_mask;
89068 +
89069 + while ((curracl = curracl->parent_subject)) {
89070 + /* if the cap isn't specified in the current computed mask but is specified in the
89071 + current level subject, and is lowered in the current level subject, then add
89072 + it to the set of dropped capabilities
89073 + otherwise, add the current level subject's mask to the current computed mask
89074 + */
89075 + if (!cap_raised(cap_mask, cap) && cap_raised(curracl->cap_mask, cap)) {
89076 + cap_raise(cap_mask, cap);
89077 + if (cap_raised(curracl->cap_lower, cap))
89078 + cap_raise(cap_drop, cap);
89079 + }
89080 + }
89081 +
89082 + if (!cap_raised(cap_drop, cap))
89083 + return 1;
89084 +
89085 + return 0;
89086 +}
89087 +
89088 +int
89089 +gr_acl_is_capable_nolog(const int cap)
89090 +{
89091 + return gr_task_acl_is_capable_nolog(current, cap);
89092 +}
89093 +
89094 diff --git a/grsecurity/gracl_compat.c b/grsecurity/gracl_compat.c
89095 new file mode 100644
89096 index 0000000..a43dd06
89097 --- /dev/null
89098 +++ b/grsecurity/gracl_compat.c
89099 @@ -0,0 +1,269 @@
89100 +#include <linux/kernel.h>
89101 +#include <linux/gracl.h>
89102 +#include <linux/compat.h>
89103 +#include <linux/gracl_compat.h>
89104 +
89105 +#include <asm/uaccess.h>
89106 +
89107 +int copy_gr_arg_wrapper_compat(const char *buf, struct gr_arg_wrapper *uwrap)
89108 +{
89109 + struct gr_arg_wrapper_compat uwrapcompat;
89110 +
89111 + if (copy_from_user(&uwrapcompat, buf, sizeof(uwrapcompat)))
89112 + return -EFAULT;
89113 +
89114 + if ((uwrapcompat.version != GRSECURITY_VERSION) ||
89115 + (uwrapcompat.size != sizeof(struct gr_arg_compat)))
89116 + return -EINVAL;
89117 +
89118 + uwrap->arg = compat_ptr(uwrapcompat.arg);
89119 + uwrap->version = uwrapcompat.version;
89120 + uwrap->size = sizeof(struct gr_arg);
89121 +
89122 + return 0;
89123 +}
89124 +
89125 +int copy_gr_arg_compat(const struct gr_arg __user *buf, struct gr_arg *arg)
89126 +{
89127 + struct gr_arg_compat argcompat;
89128 +
89129 + if (copy_from_user(&argcompat, buf, sizeof(argcompat)))
89130 + return -EFAULT;
89131 +
89132 + arg->role_db.r_table = compat_ptr(argcompat.role_db.r_table);
89133 + arg->role_db.num_pointers = argcompat.role_db.num_pointers;
89134 + arg->role_db.num_roles = argcompat.role_db.num_roles;
89135 + arg->role_db.num_domain_children = argcompat.role_db.num_domain_children;
89136 + arg->role_db.num_subjects = argcompat.role_db.num_subjects;
89137 + arg->role_db.num_objects = argcompat.role_db.num_objects;
89138 +
89139 + memcpy(&arg->pw, &argcompat.pw, sizeof(arg->pw));
89140 + memcpy(&arg->salt, &argcompat.salt, sizeof(arg->salt));
89141 + memcpy(&arg->sum, &argcompat.sum, sizeof(arg->sum));
89142 + memcpy(&arg->sp_role, &argcompat.sp_role, sizeof(arg->sp_role));
89143 + arg->sprole_pws = compat_ptr(argcompat.sprole_pws);
89144 + arg->segv_device = argcompat.segv_device;
89145 + arg->segv_inode = argcompat.segv_inode;
89146 + arg->segv_uid = argcompat.segv_uid;
89147 + arg->num_sprole_pws = argcompat.num_sprole_pws;
89148 + arg->mode = argcompat.mode;
89149 +
89150 + return 0;
89151 +}
89152 +
89153 +int copy_acl_object_label_compat(struct acl_object_label *obj, const struct acl_object_label *userp)
89154 +{
89155 + struct acl_object_label_compat objcompat;
89156 +
89157 + if (copy_from_user(&objcompat, userp, sizeof(objcompat)))
89158 + return -EFAULT;
89159 +
89160 + obj->filename = compat_ptr(objcompat.filename);
89161 + obj->inode = objcompat.inode;
89162 + obj->device = objcompat.device;
89163 + obj->mode = objcompat.mode;
89164 +
89165 + obj->nested = compat_ptr(objcompat.nested);
89166 + obj->globbed = compat_ptr(objcompat.globbed);
89167 +
89168 + obj->prev = compat_ptr(objcompat.prev);
89169 + obj->next = compat_ptr(objcompat.next);
89170 +
89171 + return 0;
89172 +}
89173 +
89174 +int copy_acl_subject_label_compat(struct acl_subject_label *subj, const struct acl_subject_label *userp)
89175 +{
89176 + unsigned int i;
89177 + struct acl_subject_label_compat subjcompat;
89178 +
89179 + if (copy_from_user(&subjcompat, userp, sizeof(subjcompat)))
89180 + return -EFAULT;
89181 +
89182 + subj->filename = compat_ptr(subjcompat.filename);
89183 + subj->inode = subjcompat.inode;
89184 + subj->device = subjcompat.device;
89185 + subj->mode = subjcompat.mode;
89186 + subj->cap_mask = subjcompat.cap_mask;
89187 + subj->cap_lower = subjcompat.cap_lower;
89188 + subj->cap_invert_audit = subjcompat.cap_invert_audit;
89189 +
89190 + for (i = 0; i < GR_NLIMITS; i++) {
89191 + if (subjcompat.res[i].rlim_cur == COMPAT_RLIM_INFINITY)
89192 + subj->res[i].rlim_cur = RLIM_INFINITY;
89193 + else
89194 + subj->res[i].rlim_cur = subjcompat.res[i].rlim_cur;
89195 + if (subjcompat.res[i].rlim_max == COMPAT_RLIM_INFINITY)
89196 + subj->res[i].rlim_max = RLIM_INFINITY;
89197 + else
89198 + subj->res[i].rlim_max = subjcompat.res[i].rlim_max;
89199 + }
89200 + subj->resmask = subjcompat.resmask;
89201 +
89202 + subj->user_trans_type = subjcompat.user_trans_type;
89203 + subj->group_trans_type = subjcompat.group_trans_type;
89204 + subj->user_transitions = compat_ptr(subjcompat.user_transitions);
89205 + subj->group_transitions = compat_ptr(subjcompat.group_transitions);
89206 + subj->user_trans_num = subjcompat.user_trans_num;
89207 + subj->group_trans_num = subjcompat.group_trans_num;
89208 +
89209 + memcpy(&subj->sock_families, &subjcompat.sock_families, sizeof(subj->sock_families));
89210 + memcpy(&subj->ip_proto, &subjcompat.ip_proto, sizeof(subj->ip_proto));
89211 + subj->ip_type = subjcompat.ip_type;
89212 + subj->ips = compat_ptr(subjcompat.ips);
89213 + subj->ip_num = subjcompat.ip_num;
89214 + subj->inaddr_any_override = subjcompat.inaddr_any_override;
89215 +
89216 + subj->crashes = subjcompat.crashes;
89217 + subj->expires = subjcompat.expires;
89218 +
89219 + subj->parent_subject = compat_ptr(subjcompat.parent_subject);
89220 + subj->hash = compat_ptr(subjcompat.hash);
89221 + subj->prev = compat_ptr(subjcompat.prev);
89222 + subj->next = compat_ptr(subjcompat.next);
89223 +
89224 + subj->obj_hash = compat_ptr(subjcompat.obj_hash);
89225 + subj->obj_hash_size = subjcompat.obj_hash_size;
89226 + subj->pax_flags = subjcompat.pax_flags;
89227 +
89228 + return 0;
89229 +}
89230 +
89231 +int copy_acl_role_label_compat(struct acl_role_label *role, const struct acl_role_label *userp)
89232 +{
89233 + struct acl_role_label_compat rolecompat;
89234 +
89235 + if (copy_from_user(&rolecompat, userp, sizeof(rolecompat)))
89236 + return -EFAULT;
89237 +
89238 + role->rolename = compat_ptr(rolecompat.rolename);
89239 + role->uidgid = rolecompat.uidgid;
89240 + role->roletype = rolecompat.roletype;
89241 +
89242 + role->auth_attempts = rolecompat.auth_attempts;
89243 + role->expires = rolecompat.expires;
89244 +
89245 + role->root_label = compat_ptr(rolecompat.root_label);
89246 + role->hash = compat_ptr(rolecompat.hash);
89247 +
89248 + role->prev = compat_ptr(rolecompat.prev);
89249 + role->next = compat_ptr(rolecompat.next);
89250 +
89251 + role->transitions = compat_ptr(rolecompat.transitions);
89252 + role->allowed_ips = compat_ptr(rolecompat.allowed_ips);
89253 + role->domain_children = compat_ptr(rolecompat.domain_children);
89254 + role->domain_child_num = rolecompat.domain_child_num;
89255 +
89256 + role->umask = rolecompat.umask;
89257 +
89258 + role->subj_hash = compat_ptr(rolecompat.subj_hash);
89259 + role->subj_hash_size = rolecompat.subj_hash_size;
89260 +
89261 + return 0;
89262 +}
89263 +
89264 +int copy_role_allowed_ip_compat(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp)
89265 +{
89266 + struct role_allowed_ip_compat roleip_compat;
89267 +
89268 + if (copy_from_user(&roleip_compat, userp, sizeof(roleip_compat)))
89269 + return -EFAULT;
89270 +
89271 + roleip->addr = roleip_compat.addr;
89272 + roleip->netmask = roleip_compat.netmask;
89273 +
89274 + roleip->prev = compat_ptr(roleip_compat.prev);
89275 + roleip->next = compat_ptr(roleip_compat.next);
89276 +
89277 + return 0;
89278 +}
89279 +
89280 +int copy_role_transition_compat(struct role_transition *trans, const struct role_transition *userp)
89281 +{
89282 + struct role_transition_compat trans_compat;
89283 +
89284 + if (copy_from_user(&trans_compat, userp, sizeof(trans_compat)))
89285 + return -EFAULT;
89286 +
89287 + trans->rolename = compat_ptr(trans_compat.rolename);
89288 +
89289 + trans->prev = compat_ptr(trans_compat.prev);
89290 + trans->next = compat_ptr(trans_compat.next);
89291 +
89292 + return 0;
89293 +
89294 +}
89295 +
89296 +int copy_gr_hash_struct_compat(struct gr_hash_struct *hash, const struct gr_hash_struct *userp)
89297 +{
89298 + struct gr_hash_struct_compat hash_compat;
89299 +
89300 + if (copy_from_user(&hash_compat, userp, sizeof(hash_compat)))
89301 + return -EFAULT;
89302 +
89303 + hash->table = compat_ptr(hash_compat.table);
89304 + hash->nametable = compat_ptr(hash_compat.nametable);
89305 + hash->first = compat_ptr(hash_compat.first);
89306 +
89307 + hash->table_size = hash_compat.table_size;
89308 + hash->used_size = hash_compat.used_size;
89309 +
89310 + hash->type = hash_compat.type;
89311 +
89312 + return 0;
89313 +}
89314 +
89315 +int copy_pointer_from_array_compat(void *ptr, unsigned long idx, const void *userp)
89316 +{
89317 + compat_uptr_t ptrcompat;
89318 +
89319 + if (copy_from_user(&ptrcompat, userp + (idx * sizeof(ptrcompat)), sizeof(ptrcompat)))
89320 + return -EFAULT;
89321 +
89322 + *(void **)ptr = compat_ptr(ptrcompat);
89323 +
89324 + return 0;
89325 +}
89326 +
89327 +int copy_acl_ip_label_compat(struct acl_ip_label *ip, const struct acl_ip_label *userp)
89328 +{
89329 + struct acl_ip_label_compat ip_compat;
89330 +
89331 + if (copy_from_user(&ip_compat, userp, sizeof(ip_compat)))
89332 + return -EFAULT;
89333 +
89334 + ip->iface = compat_ptr(ip_compat.iface);
89335 + ip->addr = ip_compat.addr;
89336 + ip->netmask = ip_compat.netmask;
89337 + ip->low = ip_compat.low;
89338 + ip->high = ip_compat.high;
89339 + ip->mode = ip_compat.mode;
89340 + ip->type = ip_compat.type;
89341 +
89342 + memcpy(&ip->proto, &ip_compat.proto, sizeof(ip->proto));
89343 +
89344 + ip->prev = compat_ptr(ip_compat.prev);
89345 + ip->next = compat_ptr(ip_compat.next);
89346 +
89347 + return 0;
89348 +}
89349 +
89350 +int copy_sprole_pw_compat(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp)
89351 +{
89352 + struct sprole_pw_compat pw_compat;
89353 +
89354 + if (copy_from_user(&pw_compat, (const void *)userp + (sizeof(pw_compat) * idx), sizeof(pw_compat)))
89355 + return -EFAULT;
89356 +
89357 + pw->rolename = compat_ptr(pw_compat.rolename);
89358 + memcpy(&pw->salt, pw_compat.salt, sizeof(pw->salt));
89359 + memcpy(&pw->sum, pw_compat.sum, sizeof(pw->sum));
89360 +
89361 + return 0;
89362 +}
89363 +
89364 +size_t get_gr_arg_wrapper_size_compat(void)
89365 +{
89366 + return sizeof(struct gr_arg_wrapper_compat);
89367 +}
89368 +
89369 diff --git a/grsecurity/gracl_fs.c b/grsecurity/gracl_fs.c
89370 new file mode 100644
89371 index 0000000..fce7f71
89372 --- /dev/null
89373 +++ b/grsecurity/gracl_fs.c
89374 @@ -0,0 +1,448 @@
89375 +#include <linux/kernel.h>
89376 +#include <linux/sched.h>
89377 +#include <linux/types.h>
89378 +#include <linux/fs.h>
89379 +#include <linux/file.h>
89380 +#include <linux/stat.h>
89381 +#include <linux/grsecurity.h>
89382 +#include <linux/grinternal.h>
89383 +#include <linux/gracl.h>
89384 +
89385 +umode_t
89386 +gr_acl_umask(void)
89387 +{
89388 + if (unlikely(!gr_acl_is_enabled()))
89389 + return 0;
89390 +
89391 + return current->role->umask;
89392 +}
89393 +
89394 +__u32
89395 +gr_acl_handle_hidden_file(const struct dentry * dentry,
89396 + const struct vfsmount * mnt)
89397 +{
89398 + __u32 mode;
89399 +
89400 + if (unlikely(d_is_negative(dentry)))
89401 + return GR_FIND;
89402 +
89403 + mode =
89404 + gr_search_file(dentry, GR_FIND | GR_AUDIT_FIND | GR_SUPPRESS, mnt);
89405 +
89406 + if (unlikely(mode & GR_FIND && mode & GR_AUDIT_FIND)) {
89407 + gr_log_fs_rbac_generic(GR_DO_AUDIT, GR_HIDDEN_ACL_MSG, dentry, mnt);
89408 + return mode;
89409 + } else if (unlikely(!(mode & GR_FIND) && !(mode & GR_SUPPRESS))) {
89410 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, GR_HIDDEN_ACL_MSG, dentry, mnt);
89411 + return 0;
89412 + } else if (unlikely(!(mode & GR_FIND)))
89413 + return 0;
89414 +
89415 + return GR_FIND;
89416 +}
89417 +
89418 +__u32
89419 +gr_acl_handle_open(const struct dentry * dentry, const struct vfsmount * mnt,
89420 + int acc_mode)
89421 +{
89422 + __u32 reqmode = GR_FIND;
89423 + __u32 mode;
89424 +
89425 + if (unlikely(d_is_negative(dentry)))
89426 + return reqmode;
89427 +
89428 + if (acc_mode & MAY_APPEND)
89429 + reqmode |= GR_APPEND;
89430 + else if (acc_mode & MAY_WRITE)
89431 + reqmode |= GR_WRITE;
89432 + if ((acc_mode & MAY_READ) && !d_is_dir(dentry))
89433 + reqmode |= GR_READ;
89434 +
89435 + mode =
89436 + gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS,
89437 + mnt);
89438 +
89439 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
89440 + gr_log_fs_rbac_mode2(GR_DO_AUDIT, GR_OPEN_ACL_MSG, dentry, mnt,
89441 + reqmode & GR_READ ? " reading" : "",
89442 + reqmode & GR_WRITE ? " writing" : reqmode &
89443 + GR_APPEND ? " appending" : "");
89444 + return reqmode;
89445 + } else
89446 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
89447 + {
89448 + gr_log_fs_rbac_mode2(GR_DONT_AUDIT, GR_OPEN_ACL_MSG, dentry, mnt,
89449 + reqmode & GR_READ ? " reading" : "",
89450 + reqmode & GR_WRITE ? " writing" : reqmode &
89451 + GR_APPEND ? " appending" : "");
89452 + return 0;
89453 + } else if (unlikely((mode & reqmode) != reqmode))
89454 + return 0;
89455 +
89456 + return reqmode;
89457 +}
89458 +
89459 +__u32
89460 +gr_acl_handle_creat(const struct dentry * dentry,
89461 + const struct dentry * p_dentry,
89462 + const struct vfsmount * p_mnt, int open_flags, int acc_mode,
89463 + const int imode)
89464 +{
89465 + __u32 reqmode = GR_WRITE | GR_CREATE;
89466 + __u32 mode;
89467 +
89468 + if (acc_mode & MAY_APPEND)
89469 + reqmode |= GR_APPEND;
89470 + // if a directory was required or the directory already exists, then
89471 + // don't count this open as a read
89472 + if ((acc_mode & MAY_READ) &&
89473 + !((open_flags & O_DIRECTORY) || d_is_dir(dentry)))
89474 + reqmode |= GR_READ;
89475 + if ((open_flags & O_CREAT) &&
89476 + ((imode & S_ISUID) || ((imode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))
89477 + reqmode |= GR_SETID;
89478 +
89479 + mode =
89480 + gr_check_create(dentry, p_dentry, p_mnt,
89481 + reqmode | to_gr_audit(reqmode) | GR_SUPPRESS);
89482 +
89483 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
89484 + gr_log_fs_rbac_mode2(GR_DO_AUDIT, GR_CREATE_ACL_MSG, dentry, p_mnt,
89485 + reqmode & GR_READ ? " reading" : "",
89486 + reqmode & GR_WRITE ? " writing" : reqmode &
89487 + GR_APPEND ? " appending" : "");
89488 + return reqmode;
89489 + } else
89490 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
89491 + {
89492 + gr_log_fs_rbac_mode2(GR_DONT_AUDIT, GR_CREATE_ACL_MSG, dentry, p_mnt,
89493 + reqmode & GR_READ ? " reading" : "",
89494 + reqmode & GR_WRITE ? " writing" : reqmode &
89495 + GR_APPEND ? " appending" : "");
89496 + return 0;
89497 + } else if (unlikely((mode & reqmode) != reqmode))
89498 + return 0;
89499 +
89500 + return reqmode;
89501 +}
89502 +
89503 +__u32
89504 +gr_acl_handle_access(const struct dentry * dentry, const struct vfsmount * mnt,
89505 + const int fmode)
89506 +{
89507 + __u32 mode, reqmode = GR_FIND;
89508 +
89509 + if ((fmode & S_IXOTH) && !d_is_dir(dentry))
89510 + reqmode |= GR_EXEC;
89511 + if (fmode & S_IWOTH)
89512 + reqmode |= GR_WRITE;
89513 + if (fmode & S_IROTH)
89514 + reqmode |= GR_READ;
89515 +
89516 + mode =
89517 + gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS,
89518 + mnt);
89519 +
89520 + if (unlikely(((mode & reqmode) == reqmode) && mode & GR_AUDITS)) {
89521 + gr_log_fs_rbac_mode3(GR_DO_AUDIT, GR_ACCESS_ACL_MSG, dentry, mnt,
89522 + reqmode & GR_READ ? " reading" : "",
89523 + reqmode & GR_WRITE ? " writing" : "",
89524 + reqmode & GR_EXEC ? " executing" : "");
89525 + return reqmode;
89526 + } else
89527 + if (unlikely((mode & reqmode) != reqmode && !(mode & GR_SUPPRESS)))
89528 + {
89529 + gr_log_fs_rbac_mode3(GR_DONT_AUDIT, GR_ACCESS_ACL_MSG, dentry, mnt,
89530 + reqmode & GR_READ ? " reading" : "",
89531 + reqmode & GR_WRITE ? " writing" : "",
89532 + reqmode & GR_EXEC ? " executing" : "");
89533 + return 0;
89534 + } else if (unlikely((mode & reqmode) != reqmode))
89535 + return 0;
89536 +
89537 + return reqmode;
89538 +}
89539 +
89540 +static __u32 generic_fs_handler(const struct dentry *dentry, const struct vfsmount *mnt, __u32 reqmode, const char *fmt)
89541 +{
89542 + __u32 mode;
89543 +
89544 + mode = gr_search_file(dentry, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS, mnt);
89545 +
89546 + if (unlikely(((mode & (reqmode)) == (reqmode)) && mode & GR_AUDITS)) {
89547 + gr_log_fs_rbac_generic(GR_DO_AUDIT, fmt, dentry, mnt);
89548 + return mode;
89549 + } else if (unlikely((mode & (reqmode)) != (reqmode) && !(mode & GR_SUPPRESS))) {
89550 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, fmt, dentry, mnt);
89551 + return 0;
89552 + } else if (unlikely((mode & (reqmode)) != (reqmode)))
89553 + return 0;
89554 +
89555 + return (reqmode);
89556 +}
89557 +
89558 +__u32
89559 +gr_acl_handle_rmdir(const struct dentry * dentry, const struct vfsmount * mnt)
89560 +{
89561 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_DELETE , GR_RMDIR_ACL_MSG);
89562 +}
89563 +
89564 +__u32
89565 +gr_acl_handle_unlink(const struct dentry *dentry, const struct vfsmount *mnt)
89566 +{
89567 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_DELETE , GR_UNLINK_ACL_MSG);
89568 +}
89569 +
89570 +__u32
89571 +gr_acl_handle_truncate(const struct dentry *dentry, const struct vfsmount *mnt)
89572 +{
89573 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_TRUNCATE_ACL_MSG);
89574 +}
89575 +
89576 +__u32
89577 +gr_acl_handle_utime(const struct dentry *dentry, const struct vfsmount *mnt)
89578 +{
89579 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_ATIME_ACL_MSG);
89580 +}
89581 +
89582 +__u32
89583 +gr_acl_handle_chmod(const struct dentry *dentry, const struct vfsmount *mnt,
89584 + umode_t *modeptr)
89585 +{
89586 + umode_t mode;
89587 + struct inode *inode = d_backing_inode(dentry);
89588 +
89589 + *modeptr &= ~gr_acl_umask();
89590 + mode = *modeptr;
89591 +
89592 + if (unlikely(inode && S_ISSOCK(inode->i_mode)))
89593 + return 1;
89594 +
89595 + if (unlikely(!d_is_dir(dentry) &&
89596 + ((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))) {
89597 + return generic_fs_handler(dentry, mnt, GR_WRITE | GR_SETID,
89598 + GR_CHMOD_ACL_MSG);
89599 + } else {
89600 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_CHMOD_ACL_MSG);
89601 + }
89602 +}
89603 +
89604 +__u32
89605 +gr_acl_handle_chown(const struct dentry *dentry, const struct vfsmount *mnt)
89606 +{
89607 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_CHOWN_ACL_MSG);
89608 +}
89609 +
89610 +__u32
89611 +gr_acl_handle_setxattr(const struct dentry *dentry, const struct vfsmount *mnt)
89612 +{
89613 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_SETXATTR_ACL_MSG);
89614 +}
89615 +
89616 +__u32
89617 +gr_acl_handle_removexattr(const struct dentry *dentry, const struct vfsmount *mnt)
89618 +{
89619 + return generic_fs_handler(dentry, mnt, GR_WRITE, GR_REMOVEXATTR_ACL_MSG);
89620 +}
89621 +
89622 +__u32
89623 +gr_acl_handle_execve(const struct dentry *dentry, const struct vfsmount *mnt)
89624 +{
89625 + return generic_fs_handler(dentry, mnt, GR_EXEC, GR_EXEC_ACL_MSG);
89626 +}
89627 +
89628 +__u32
89629 +gr_acl_handle_unix(const struct dentry *dentry, const struct vfsmount *mnt)
89630 +{
89631 + return generic_fs_handler(dentry, mnt, GR_READ | GR_WRITE,
89632 + GR_UNIXCONNECT_ACL_MSG);
89633 +}
89634 +
89635 +/* hardlinks require at minimum create and link permission,
89636 + any additional privilege required is based on the
89637 + privilege of the file being linked to
89638 +*/
89639 +__u32
89640 +gr_acl_handle_link(const struct dentry * new_dentry,
89641 + const struct dentry * parent_dentry,
89642 + const struct vfsmount * parent_mnt,
89643 + const struct dentry * old_dentry,
89644 + const struct vfsmount * old_mnt, const struct filename *to)
89645 +{
89646 + __u32 mode;
89647 + __u32 needmode = GR_CREATE | GR_LINK;
89648 + __u32 needaudit = GR_AUDIT_CREATE | GR_AUDIT_LINK;
89649 +
89650 + mode =
89651 + gr_check_link(new_dentry, parent_dentry, parent_mnt, old_dentry,
89652 + old_mnt);
89653 +
89654 + if (unlikely(((mode & needmode) == needmode) && (mode & needaudit))) {
89655 + gr_log_fs_rbac_str(GR_DO_AUDIT, GR_LINK_ACL_MSG, old_dentry, old_mnt, to->name);
89656 + return mode;
89657 + } else if (unlikely(((mode & needmode) != needmode) && !(mode & GR_SUPPRESS))) {
89658 + gr_log_fs_rbac_str(GR_DONT_AUDIT, GR_LINK_ACL_MSG, old_dentry, old_mnt, to->name);
89659 + return 0;
89660 + } else if (unlikely((mode & needmode) != needmode))
89661 + return 0;
89662 +
89663 + return 1;
89664 +}
89665 +
89666 +__u32
89667 +gr_acl_handle_symlink(const struct dentry * new_dentry,
89668 + const struct dentry * parent_dentry,
89669 + const struct vfsmount * parent_mnt, const struct filename *from)
89670 +{
89671 + __u32 needmode = GR_WRITE | GR_CREATE;
89672 + __u32 mode;
89673 +
89674 + mode =
89675 + gr_check_create(new_dentry, parent_dentry, parent_mnt,
89676 + GR_CREATE | GR_AUDIT_CREATE |
89677 + GR_WRITE | GR_AUDIT_WRITE | GR_SUPPRESS);
89678 +
89679 + if (unlikely(mode & GR_WRITE && mode & GR_AUDITS)) {
89680 + gr_log_fs_str_rbac(GR_DO_AUDIT, GR_SYMLINK_ACL_MSG, from->name, new_dentry, parent_mnt);
89681 + return mode;
89682 + } else if (unlikely(((mode & needmode) != needmode) && !(mode & GR_SUPPRESS))) {
89683 + gr_log_fs_str_rbac(GR_DONT_AUDIT, GR_SYMLINK_ACL_MSG, from->name, new_dentry, parent_mnt);
89684 + return 0;
89685 + } else if (unlikely((mode & needmode) != needmode))
89686 + return 0;
89687 +
89688 + return (GR_WRITE | GR_CREATE);
89689 +}
89690 +
89691 +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)
89692 +{
89693 + __u32 mode;
89694 +
89695 + mode = gr_check_create(new_dentry, parent_dentry, parent_mnt, reqmode | to_gr_audit(reqmode) | GR_SUPPRESS);
89696 +
89697 + if (unlikely(((mode & (reqmode)) == (reqmode)) && mode & GR_AUDITS)) {
89698 + gr_log_fs_rbac_generic(GR_DO_AUDIT, fmt, new_dentry, parent_mnt);
89699 + return mode;
89700 + } else if (unlikely((mode & (reqmode)) != (reqmode) && !(mode & GR_SUPPRESS))) {
89701 + gr_log_fs_rbac_generic(GR_DONT_AUDIT, fmt, new_dentry, parent_mnt);
89702 + return 0;
89703 + } else if (unlikely((mode & (reqmode)) != (reqmode)))
89704 + return 0;
89705 +
89706 + return (reqmode);
89707 +}
89708 +
89709 +__u32
89710 +gr_acl_handle_mknod(const struct dentry * new_dentry,
89711 + const struct dentry * parent_dentry,
89712 + const struct vfsmount * parent_mnt,
89713 + const int mode)
89714 +{
89715 + __u32 reqmode = GR_WRITE | GR_CREATE;
89716 + if (unlikely((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))))
89717 + reqmode |= GR_SETID;
89718 +
89719 + return generic_fs_create_handler(new_dentry, parent_dentry, parent_mnt,
89720 + reqmode, GR_MKNOD_ACL_MSG);
89721 +}
89722 +
89723 +__u32
89724 +gr_acl_handle_mkdir(const struct dentry *new_dentry,
89725 + const struct dentry *parent_dentry,
89726 + const struct vfsmount *parent_mnt)
89727 +{
89728 + return generic_fs_create_handler(new_dentry, parent_dentry, parent_mnt,
89729 + GR_WRITE | GR_CREATE, GR_MKDIR_ACL_MSG);
89730 +}
89731 +
89732 +#define RENAME_CHECK_SUCCESS(old, new) \
89733 + (((old & (GR_WRITE | GR_READ)) == (GR_WRITE | GR_READ)) && \
89734 + ((new & (GR_WRITE | GR_READ)) == (GR_WRITE | GR_READ)))
89735 +
89736 +int
89737 +gr_acl_handle_rename(struct dentry *new_dentry,
89738 + struct dentry *parent_dentry,
89739 + const struct vfsmount *parent_mnt,
89740 + struct dentry *old_dentry,
89741 + struct inode *old_parent_inode,
89742 + struct vfsmount *old_mnt, const struct filename *newname, unsigned int flags)
89743 +{
89744 + __u32 comp1, comp2;
89745 + int error = 0;
89746 +
89747 + if (unlikely(!gr_acl_is_enabled()))
89748 + return 0;
89749 +
89750 + if (flags & RENAME_EXCHANGE) {
89751 + comp1 = gr_search_file(new_dentry, GR_READ | GR_WRITE |
89752 + GR_AUDIT_READ | GR_AUDIT_WRITE |
89753 + GR_SUPPRESS, parent_mnt);
89754 + comp2 =
89755 + gr_search_file(old_dentry,
89756 + GR_READ | GR_WRITE | GR_AUDIT_READ |
89757 + GR_AUDIT_WRITE | GR_SUPPRESS, old_mnt);
89758 + } else if (d_is_negative(new_dentry)) {
89759 + comp1 = gr_check_create(new_dentry, parent_dentry, parent_mnt,
89760 + GR_READ | GR_WRITE | GR_CREATE | GR_AUDIT_READ |
89761 + GR_AUDIT_WRITE | GR_AUDIT_CREATE | GR_SUPPRESS);
89762 + comp2 = gr_search_file(old_dentry, GR_READ | GR_WRITE |
89763 + GR_DELETE | GR_AUDIT_DELETE |
89764 + GR_AUDIT_READ | GR_AUDIT_WRITE |
89765 + GR_SUPPRESS, old_mnt);
89766 + } else {
89767 + comp1 = gr_search_file(new_dentry, GR_READ | GR_WRITE |
89768 + GR_CREATE | GR_DELETE |
89769 + GR_AUDIT_CREATE | GR_AUDIT_DELETE |
89770 + GR_AUDIT_READ | GR_AUDIT_WRITE |
89771 + GR_SUPPRESS, parent_mnt);
89772 + comp2 =
89773 + gr_search_file(old_dentry,
89774 + GR_READ | GR_WRITE | GR_AUDIT_READ |
89775 + GR_DELETE | GR_AUDIT_DELETE |
89776 + GR_AUDIT_WRITE | GR_SUPPRESS, old_mnt);
89777 + }
89778 +
89779 + if (RENAME_CHECK_SUCCESS(comp1, comp2) &&
89780 + ((comp1 & GR_AUDITS) || (comp2 & GR_AUDITS)))
89781 + gr_log_fs_rbac_str(GR_DO_AUDIT, GR_RENAME_ACL_MSG, old_dentry, old_mnt, newname->name);
89782 + else if (!RENAME_CHECK_SUCCESS(comp1, comp2) && !(comp1 & GR_SUPPRESS)
89783 + && !(comp2 & GR_SUPPRESS)) {
89784 + gr_log_fs_rbac_str(GR_DONT_AUDIT, GR_RENAME_ACL_MSG, old_dentry, old_mnt, newname->name);
89785 + error = -EACCES;
89786 + } else if (unlikely(!RENAME_CHECK_SUCCESS(comp1, comp2)))
89787 + error = -EACCES;
89788 +
89789 + return error;
89790 +}
89791 +
89792 +void
89793 +gr_acl_handle_exit(void)
89794 +{
89795 + u16 id;
89796 + char *rolename;
89797 +
89798 + if (unlikely(current->acl_sp_role && gr_acl_is_enabled() &&
89799 + !(current->role->roletype & GR_ROLE_PERSIST))) {
89800 + id = current->acl_role_id;
89801 + rolename = current->role->rolename;
89802 + gr_set_acls(1);
89803 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_SPROLEL_ACL_MSG, rolename, id);
89804 + }
89805 +
89806 + gr_put_exec_file(current);
89807 + return;
89808 +}
89809 +
89810 +int
89811 +gr_acl_handle_procpidmem(const struct task_struct *task)
89812 +{
89813 + if (unlikely(!gr_acl_is_enabled()))
89814 + return 0;
89815 +
89816 + if (task != current && (task->acl->mode & GR_PROTPROCFD) &&
89817 + !(current->acl->mode & GR_POVERRIDE) &&
89818 + !(current->role->roletype & GR_ROLE_GOD))
89819 + return -EACCES;
89820 +
89821 + return 0;
89822 +}
89823 diff --git a/grsecurity/gracl_ip.c b/grsecurity/gracl_ip.c
89824 new file mode 100644
89825 index 0000000..ed6ee43
89826 --- /dev/null
89827 +++ b/grsecurity/gracl_ip.c
89828 @@ -0,0 +1,386 @@
89829 +#include <linux/kernel.h>
89830 +#include <asm/uaccess.h>
89831 +#include <asm/errno.h>
89832 +#include <net/sock.h>
89833 +#include <linux/file.h>
89834 +#include <linux/fs.h>
89835 +#include <linux/net.h>
89836 +#include <linux/in.h>
89837 +#include <linux/skbuff.h>
89838 +#include <linux/ip.h>
89839 +#include <linux/udp.h>
89840 +#include <linux/types.h>
89841 +#include <linux/sched.h>
89842 +#include <linux/netdevice.h>
89843 +#include <linux/inetdevice.h>
89844 +#include <linux/gracl.h>
89845 +#include <linux/grsecurity.h>
89846 +#include <linux/grinternal.h>
89847 +
89848 +#define GR_BIND 0x01
89849 +#define GR_CONNECT 0x02
89850 +#define GR_INVERT 0x04
89851 +#define GR_BINDOVERRIDE 0x08
89852 +#define GR_CONNECTOVERRIDE 0x10
89853 +#define GR_SOCK_FAMILY 0x20
89854 +
89855 +static const char * gr_protocols[IPPROTO_MAX] = {
89856 + "ip", "icmp", "igmp", "ggp", "ipencap", "st", "tcp", "cbt",
89857 + "egp", "igp", "bbn-rcc", "nvp", "pup", "argus", "emcon", "xnet",
89858 + "chaos", "udp", "mux", "dcn", "hmp", "prm", "xns-idp", "trunk-1",
89859 + "trunk-2", "leaf-1", "leaf-2", "rdp", "irtp", "iso-tp4", "netblt", "mfe-nsp",
89860 + "merit-inp", "sep", "3pc", "idpr", "xtp", "ddp", "idpr-cmtp", "tp++",
89861 + "il", "ipv6", "sdrp", "ipv6-route", "ipv6-frag", "idrp", "rsvp", "gre",
89862 + "mhrp", "bna", "ipv6-crypt", "ipv6-auth", "i-nlsp", "swipe", "narp", "mobile",
89863 + "tlsp", "skip", "ipv6-icmp", "ipv6-nonxt", "ipv6-opts", "unknown:61", "cftp", "unknown:63",
89864 + "sat-expak", "kryptolan", "rvd", "ippc", "unknown:68", "sat-mon", "visa", "ipcv",
89865 + "cpnx", "cphb", "wsn", "pvp", "br-sat-mon", "sun-nd", "wb-mon", "wb-expak",
89866 + "iso-ip", "vmtp", "secure-vmtp", "vines", "ttp", "nfsnet-igp", "dgp", "tcf",
89867 + "eigrp", "ospf", "sprite-rpc", "larp", "mtp", "ax.25", "ipip", "micp",
89868 + "scc-sp", "etherip", "encap", "unknown:99", "gmtp", "ifmp", "pnni", "pim",
89869 + "aris", "scps", "qnx", "a/n", "ipcomp", "snp", "compaq-peer", "ipx-in-ip",
89870 + "vrrp", "pgm", "unknown:114", "l2tp", "ddx", "iatp", "stp", "srp",
89871 + "uti", "smp", "sm", "ptp", "isis", "fire", "crtp", "crdup",
89872 + "sscopmce", "iplt", "sps", "pipe", "sctp", "fc", "unkown:134", "unknown:135",
89873 + "unknown:136", "unknown:137", "unknown:138", "unknown:139", "unknown:140", "unknown:141", "unknown:142", "unknown:143",
89874 + "unknown:144", "unknown:145", "unknown:146", "unknown:147", "unknown:148", "unknown:149", "unknown:150", "unknown:151",
89875 + "unknown:152", "unknown:153", "unknown:154", "unknown:155", "unknown:156", "unknown:157", "unknown:158", "unknown:159",
89876 + "unknown:160", "unknown:161", "unknown:162", "unknown:163", "unknown:164", "unknown:165", "unknown:166", "unknown:167",
89877 + "unknown:168", "unknown:169", "unknown:170", "unknown:171", "unknown:172", "unknown:173", "unknown:174", "unknown:175",
89878 + "unknown:176", "unknown:177", "unknown:178", "unknown:179", "unknown:180", "unknown:181", "unknown:182", "unknown:183",
89879 + "unknown:184", "unknown:185", "unknown:186", "unknown:187", "unknown:188", "unknown:189", "unknown:190", "unknown:191",
89880 + "unknown:192", "unknown:193", "unknown:194", "unknown:195", "unknown:196", "unknown:197", "unknown:198", "unknown:199",
89881 + "unknown:200", "unknown:201", "unknown:202", "unknown:203", "unknown:204", "unknown:205", "unknown:206", "unknown:207",
89882 + "unknown:208", "unknown:209", "unknown:210", "unknown:211", "unknown:212", "unknown:213", "unknown:214", "unknown:215",
89883 + "unknown:216", "unknown:217", "unknown:218", "unknown:219", "unknown:220", "unknown:221", "unknown:222", "unknown:223",
89884 + "unknown:224", "unknown:225", "unknown:226", "unknown:227", "unknown:228", "unknown:229", "unknown:230", "unknown:231",
89885 + "unknown:232", "unknown:233", "unknown:234", "unknown:235", "unknown:236", "unknown:237", "unknown:238", "unknown:239",
89886 + "unknown:240", "unknown:241", "unknown:242", "unknown:243", "unknown:244", "unknown:245", "unknown:246", "unknown:247",
89887 + "unknown:248", "unknown:249", "unknown:250", "unknown:251", "unknown:252", "unknown:253", "unknown:254", "unknown:255",
89888 + };
89889 +
89890 +static const char * gr_socktypes[SOCK_MAX] = {
89891 + "unknown:0", "stream", "dgram", "raw", "rdm", "seqpacket", "unknown:6",
89892 + "unknown:7", "unknown:8", "unknown:9", "packet"
89893 + };
89894 +
89895 +static const char * gr_sockfamilies[AF_MAX+1] = {
89896 + "unspec", "unix", "inet", "ax25", "ipx", "appletalk", "netrom", "bridge", "atmpvc", "x25",
89897 + "inet6", "rose", "decnet", "netbeui", "security", "key", "netlink", "packet", "ash",
89898 + "econet", "atmsvc", "rds", "sna", "irda", "ppox", "wanpipe", "llc", "fam_27", "fam_28",
89899 + "tipc", "bluetooth", "iucv", "rxrpc", "isdn", "phonet", "ieee802154", "ciaf", "alg", "nfc", "vsock"
89900 + };
89901 +
89902 +const char *
89903 +gr_proto_to_name(unsigned char proto)
89904 +{
89905 + return gr_protocols[proto];
89906 +}
89907 +
89908 +const char *
89909 +gr_socktype_to_name(unsigned char type)
89910 +{
89911 + return gr_socktypes[type];
89912 +}
89913 +
89914 +const char *
89915 +gr_sockfamily_to_name(unsigned char family)
89916 +{
89917 + return gr_sockfamilies[family];
89918 +}
89919 +
89920 +extern const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
89921 +
89922 +int
89923 +gr_search_socket(const int domain, const int type, const int protocol)
89924 +{
89925 + struct acl_subject_label *curr;
89926 + const struct cred *cred = current_cred();
89927 +
89928 + if (unlikely(!gr_acl_is_enabled()))
89929 + goto exit;
89930 +
89931 + if ((domain < 0) || (type < 0) || (protocol < 0) ||
89932 + (domain >= AF_MAX) || (type >= SOCK_MAX) || (protocol >= IPPROTO_MAX))
89933 + goto exit; // let the kernel handle it
89934 +
89935 + curr = current->acl;
89936 +
89937 + if (curr->sock_families[domain / 32] & (1U << (domain % 32))) {
89938 + /* the family is allowed, if this is PF_INET allow it only if
89939 + the extra sock type/protocol checks pass */
89940 + if (domain == PF_INET)
89941 + goto inet_check;
89942 + goto exit;
89943 + } else {
89944 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
89945 + __u32 fakeip = 0;
89946 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
89947 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
89948 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
89949 + gr_to_filename(current->exec_file->f_path.dentry,
89950 + current->exec_file->f_path.mnt) :
89951 + curr->filename, curr->filename,
89952 + &fakeip, domain, 0, 0, GR_SOCK_FAMILY,
89953 + &current->signal->saved_ip);
89954 + goto exit;
89955 + }
89956 + goto exit_fail;
89957 + }
89958 +
89959 +inet_check:
89960 + /* the rest of this checking is for IPv4 only */
89961 + if (!curr->ips)
89962 + goto exit;
89963 +
89964 + if ((curr->ip_type & (1U << type)) &&
89965 + (curr->ip_proto[protocol / 32] & (1U << (protocol % 32))))
89966 + goto exit;
89967 +
89968 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
89969 + /* we don't place acls on raw sockets , and sometimes
89970 + dgram/ip sockets are opened for ioctl and not
89971 + bind/connect, so we'll fake a bind learn log */
89972 + if (type == SOCK_RAW || type == SOCK_PACKET) {
89973 + __u32 fakeip = 0;
89974 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
89975 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
89976 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
89977 + gr_to_filename(current->exec_file->f_path.dentry,
89978 + current->exec_file->f_path.mnt) :
89979 + curr->filename, curr->filename,
89980 + &fakeip, 0, type,
89981 + protocol, GR_CONNECT, &current->signal->saved_ip);
89982 + } else if ((type == SOCK_DGRAM) && (protocol == IPPROTO_IP)) {
89983 + __u32 fakeip = 0;
89984 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
89985 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
89986 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
89987 + gr_to_filename(current->exec_file->f_path.dentry,
89988 + current->exec_file->f_path.mnt) :
89989 + curr->filename, curr->filename,
89990 + &fakeip, 0, type,
89991 + protocol, GR_BIND, &current->signal->saved_ip);
89992 + }
89993 + /* we'll log when they use connect or bind */
89994 + goto exit;
89995 + }
89996 +
89997 +exit_fail:
89998 + if (domain == PF_INET)
89999 + gr_log_str3(GR_DONT_AUDIT, GR_SOCK_MSG, gr_sockfamily_to_name(domain),
90000 + gr_socktype_to_name(type), gr_proto_to_name(protocol));
90001 + else if (rcu_access_pointer(net_families[domain]) != NULL)
90002 + gr_log_str2_int(GR_DONT_AUDIT, GR_SOCK_NOINET_MSG, gr_sockfamily_to_name(domain),
90003 + gr_socktype_to_name(type), protocol);
90004 +
90005 + return 0;
90006 +exit:
90007 + return 1;
90008 +}
90009 +
90010 +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)
90011 +{
90012 + if ((ip->mode & mode) &&
90013 + (ip_port >= ip->low) &&
90014 + (ip_port <= ip->high) &&
90015 + ((ntohl(ip_addr) & our_netmask) ==
90016 + (ntohl(our_addr) & our_netmask))
90017 + && (ip->proto[protocol / 32] & (1U << (protocol % 32)))
90018 + && (ip->type & (1U << type))) {
90019 + if (ip->mode & GR_INVERT)
90020 + return 2; // specifically denied
90021 + else
90022 + return 1; // allowed
90023 + }
90024 +
90025 + return 0; // not specifically allowed, may continue parsing
90026 +}
90027 +
90028 +static int
90029 +gr_search_connectbind(const int full_mode, struct sock *sk,
90030 + struct sockaddr_in *addr, const int type)
90031 +{
90032 + char iface[IFNAMSIZ] = {0};
90033 + struct acl_subject_label *curr;
90034 + struct acl_ip_label *ip;
90035 + struct inet_sock *isk;
90036 + struct net_device *dev;
90037 + struct in_device *idev;
90038 + unsigned long i;
90039 + int ret;
90040 + int mode = full_mode & (GR_BIND | GR_CONNECT);
90041 + __u32 ip_addr = 0;
90042 + __u32 our_addr;
90043 + __u32 our_netmask;
90044 + char *p;
90045 + __u16 ip_port = 0;
90046 + const struct cred *cred = current_cred();
90047 +
90048 + if (unlikely(!gr_acl_is_enabled() || sk->sk_family != PF_INET))
90049 + return 0;
90050 +
90051 + curr = current->acl;
90052 + isk = inet_sk(sk);
90053 +
90054 + /* INADDR_ANY overriding for binds, inaddr_any_override is already in network order */
90055 + if ((full_mode & GR_BINDOVERRIDE) && addr->sin_addr.s_addr == htonl(INADDR_ANY) && curr->inaddr_any_override != 0)
90056 + addr->sin_addr.s_addr = curr->inaddr_any_override;
90057 + if ((full_mode & GR_CONNECT) && isk->inet_saddr == htonl(INADDR_ANY) && curr->inaddr_any_override != 0) {
90058 + struct sockaddr_in saddr;
90059 + int err;
90060 +
90061 + saddr.sin_family = AF_INET;
90062 + saddr.sin_addr.s_addr = curr->inaddr_any_override;
90063 + saddr.sin_port = isk->inet_sport;
90064 +
90065 + err = security_socket_bind(sk->sk_socket, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in));
90066 + if (err)
90067 + return err;
90068 +
90069 + err = sk->sk_socket->ops->bind(sk->sk_socket, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in));
90070 + if (err)
90071 + return err;
90072 + }
90073 +
90074 + if (!curr->ips)
90075 + return 0;
90076 +
90077 + ip_addr = addr->sin_addr.s_addr;
90078 + ip_port = ntohs(addr->sin_port);
90079 +
90080 + if (curr->mode & (GR_LEARN | GR_INHERITLEARN)) {
90081 + security_learn(GR_IP_LEARN_MSG, current->role->rolename,
90082 + current->role->roletype, GR_GLOBAL_UID(cred->uid),
90083 + GR_GLOBAL_GID(cred->gid), current->exec_file ?
90084 + gr_to_filename(current->exec_file->f_path.dentry,
90085 + current->exec_file->f_path.mnt) :
90086 + curr->filename, curr->filename,
90087 + &ip_addr, ip_port, type,
90088 + sk->sk_protocol, mode, &current->signal->saved_ip);
90089 + return 0;
90090 + }
90091 +
90092 + for (i = 0; i < curr->ip_num; i++) {
90093 + ip = *(curr->ips + i);
90094 + if (ip->iface != NULL) {
90095 + strncpy(iface, ip->iface, IFNAMSIZ - 1);
90096 + p = strchr(iface, ':');
90097 + if (p != NULL)
90098 + *p = '\0';
90099 + dev = dev_get_by_name(sock_net(sk), iface);
90100 + if (dev == NULL)
90101 + continue;
90102 + idev = in_dev_get(dev);
90103 + if (idev == NULL) {
90104 + dev_put(dev);
90105 + continue;
90106 + }
90107 + rcu_read_lock();
90108 + for_ifa(idev) {
90109 + if (!strcmp(ip->iface, ifa->ifa_label)) {
90110 + our_addr = ifa->ifa_address;
90111 + our_netmask = 0xffffffff;
90112 + ret = check_ip_policy(ip, ip_addr, ip_port, sk->sk_protocol, mode, type, our_addr, our_netmask);
90113 + if (ret == 1) {
90114 + rcu_read_unlock();
90115 + in_dev_put(idev);
90116 + dev_put(dev);
90117 + return 0;
90118 + } else if (ret == 2) {
90119 + rcu_read_unlock();
90120 + in_dev_put(idev);
90121 + dev_put(dev);
90122 + goto denied;
90123 + }
90124 + }
90125 + } endfor_ifa(idev);
90126 + rcu_read_unlock();
90127 + in_dev_put(idev);
90128 + dev_put(dev);
90129 + } else {
90130 + our_addr = ip->addr;
90131 + our_netmask = ip->netmask;
90132 + ret = check_ip_policy(ip, ip_addr, ip_port, sk->sk_protocol, mode, type, our_addr, our_netmask);
90133 + if (ret == 1)
90134 + return 0;
90135 + else if (ret == 2)
90136 + goto denied;
90137 + }
90138 + }
90139 +
90140 +denied:
90141 + if (mode == GR_BIND)
90142 + 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));
90143 + else if (mode == GR_CONNECT)
90144 + 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));
90145 +
90146 + return -EACCES;
90147 +}
90148 +
90149 +int
90150 +gr_search_connect(struct socket *sock, struct sockaddr_in *addr)
90151 +{
90152 + /* always allow disconnection of dgram sockets with connect */
90153 + if (addr->sin_family == AF_UNSPEC)
90154 + return 0;
90155 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sock->sk, addr, sock->type);
90156 +}
90157 +
90158 +int
90159 +gr_search_bind(struct socket *sock, struct sockaddr_in *addr)
90160 +{
90161 + return gr_search_connectbind(GR_BIND | GR_BINDOVERRIDE, sock->sk, addr, sock->type);
90162 +}
90163 +
90164 +int gr_search_listen(struct socket *sock)
90165 +{
90166 + struct sock *sk = sock->sk;
90167 + struct sockaddr_in addr;
90168 +
90169 + addr.sin_addr.s_addr = inet_sk(sk)->inet_saddr;
90170 + addr.sin_port = inet_sk(sk)->inet_sport;
90171 +
90172 + return gr_search_connectbind(GR_BIND | GR_CONNECTOVERRIDE, sock->sk, &addr, sock->type);
90173 +}
90174 +
90175 +int gr_search_accept(struct socket *sock)
90176 +{
90177 + struct sock *sk = sock->sk;
90178 + struct sockaddr_in addr;
90179 +
90180 + addr.sin_addr.s_addr = inet_sk(sk)->inet_saddr;
90181 + addr.sin_port = inet_sk(sk)->inet_sport;
90182 +
90183 + return gr_search_connectbind(GR_BIND | GR_CONNECTOVERRIDE, sock->sk, &addr, sock->type);
90184 +}
90185 +
90186 +int
90187 +gr_search_udp_sendmsg(struct sock *sk, struct sockaddr_in *addr)
90188 +{
90189 + if (addr)
90190 + return gr_search_connectbind(GR_CONNECT, sk, addr, SOCK_DGRAM);
90191 + else {
90192 + struct sockaddr_in sin;
90193 + const struct inet_sock *inet = inet_sk(sk);
90194 +
90195 + sin.sin_addr.s_addr = inet->inet_daddr;
90196 + sin.sin_port = inet->inet_dport;
90197 +
90198 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
90199 + }
90200 +}
90201 +
90202 +int
90203 +gr_search_udp_recvmsg(struct sock *sk, const struct sk_buff *skb)
90204 +{
90205 + struct sockaddr_in sin;
90206 +
90207 + if (unlikely(skb->len < sizeof (struct udphdr)))
90208 + return 0; // skip this packet
90209 +
90210 + sin.sin_addr.s_addr = ip_hdr(skb)->saddr;
90211 + sin.sin_port = udp_hdr(skb)->source;
90212 +
90213 + return gr_search_connectbind(GR_CONNECT | GR_CONNECTOVERRIDE, sk, &sin, SOCK_DGRAM);
90214 +}
90215 diff --git a/grsecurity/gracl_learn.c b/grsecurity/gracl_learn.c
90216 new file mode 100644
90217 index 0000000..25f54ef
90218 --- /dev/null
90219 +++ b/grsecurity/gracl_learn.c
90220 @@ -0,0 +1,207 @@
90221 +#include <linux/kernel.h>
90222 +#include <linux/mm.h>
90223 +#include <linux/sched.h>
90224 +#include <linux/poll.h>
90225 +#include <linux/string.h>
90226 +#include <linux/file.h>
90227 +#include <linux/types.h>
90228 +#include <linux/vmalloc.h>
90229 +#include <linux/grinternal.h>
90230 +
90231 +extern ssize_t write_grsec_handler(struct file * file, const char __user * buf,
90232 + size_t count, loff_t *ppos);
90233 +extern int gr_acl_is_enabled(void);
90234 +
90235 +static DECLARE_WAIT_QUEUE_HEAD(learn_wait);
90236 +static int gr_learn_attached;
90237 +
90238 +/* use a 512k buffer */
90239 +#define LEARN_BUFFER_SIZE (512 * 1024)
90240 +
90241 +static DEFINE_SPINLOCK(gr_learn_lock);
90242 +static DEFINE_MUTEX(gr_learn_user_mutex);
90243 +
90244 +/* we need to maintain two buffers, so that the kernel context of grlearn
90245 + uses a semaphore around the userspace copying, and the other kernel contexts
90246 + use a spinlock when copying into the buffer, since they cannot sleep
90247 +*/
90248 +static char *learn_buffer;
90249 +static char *learn_buffer_user;
90250 +static int learn_buffer_len;
90251 +static int learn_buffer_user_len;
90252 +
90253 +static ssize_t
90254 +read_learn(struct file *file, char __user * buf, size_t count, loff_t * ppos)
90255 +{
90256 + DECLARE_WAITQUEUE(wait, current);
90257 + ssize_t retval = 0;
90258 +
90259 + add_wait_queue(&learn_wait, &wait);
90260 + set_current_state(TASK_INTERRUPTIBLE);
90261 + do {
90262 + mutex_lock(&gr_learn_user_mutex);
90263 + spin_lock(&gr_learn_lock);
90264 + if (learn_buffer_len)
90265 + break;
90266 + spin_unlock(&gr_learn_lock);
90267 + mutex_unlock(&gr_learn_user_mutex);
90268 + if (file->f_flags & O_NONBLOCK) {
90269 + retval = -EAGAIN;
90270 + goto out;
90271 + }
90272 + if (signal_pending(current)) {
90273 + retval = -ERESTARTSYS;
90274 + goto out;
90275 + }
90276 +
90277 + schedule();
90278 + } while (1);
90279 +
90280 + memcpy(learn_buffer_user, learn_buffer, learn_buffer_len);
90281 + learn_buffer_user_len = learn_buffer_len;
90282 + retval = learn_buffer_len;
90283 + learn_buffer_len = 0;
90284 +
90285 + spin_unlock(&gr_learn_lock);
90286 +
90287 + if (copy_to_user(buf, learn_buffer_user, learn_buffer_user_len))
90288 + retval = -EFAULT;
90289 +
90290 + mutex_unlock(&gr_learn_user_mutex);
90291 +out:
90292 + set_current_state(TASK_RUNNING);
90293 + remove_wait_queue(&learn_wait, &wait);
90294 + return retval;
90295 +}
90296 +
90297 +static unsigned int
90298 +poll_learn(struct file * file, poll_table * wait)
90299 +{
90300 + poll_wait(file, &learn_wait, wait);
90301 +
90302 + if (learn_buffer_len)
90303 + return (POLLIN | POLLRDNORM);
90304 +
90305 + return 0;
90306 +}
90307 +
90308 +void
90309 +gr_clear_learn_entries(void)
90310 +{
90311 + char *tmp;
90312 +
90313 + mutex_lock(&gr_learn_user_mutex);
90314 + spin_lock(&gr_learn_lock);
90315 + tmp = learn_buffer;
90316 + learn_buffer = NULL;
90317 + spin_unlock(&gr_learn_lock);
90318 + if (tmp)
90319 + vfree(tmp);
90320 + if (learn_buffer_user != NULL) {
90321 + vfree(learn_buffer_user);
90322 + learn_buffer_user = NULL;
90323 + }
90324 + learn_buffer_len = 0;
90325 + mutex_unlock(&gr_learn_user_mutex);
90326 +
90327 + return;
90328 +}
90329 +
90330 +void
90331 +gr_add_learn_entry(const char *fmt, ...)
90332 +{
90333 + va_list args;
90334 + unsigned int len;
90335 +
90336 + if (!gr_learn_attached)
90337 + return;
90338 +
90339 + spin_lock(&gr_learn_lock);
90340 +
90341 + /* leave a gap at the end so we know when it's "full" but don't have to
90342 + compute the exact length of the string we're trying to append
90343 + */
90344 + if (learn_buffer_len > LEARN_BUFFER_SIZE - 16384) {
90345 + spin_unlock(&gr_learn_lock);
90346 + wake_up_interruptible(&learn_wait);
90347 + return;
90348 + }
90349 + if (learn_buffer == NULL) {
90350 + spin_unlock(&gr_learn_lock);
90351 + return;
90352 + }
90353 +
90354 + va_start(args, fmt);
90355 + len = vsnprintf(learn_buffer + learn_buffer_len, LEARN_BUFFER_SIZE - learn_buffer_len, fmt, args);
90356 + va_end(args);
90357 +
90358 + learn_buffer_len += len + 1;
90359 +
90360 + spin_unlock(&gr_learn_lock);
90361 + wake_up_interruptible(&learn_wait);
90362 +
90363 + return;
90364 +}
90365 +
90366 +static int
90367 +open_learn(struct inode *inode, struct file *file)
90368 +{
90369 + if (file->f_mode & FMODE_READ && gr_learn_attached)
90370 + return -EBUSY;
90371 + if (file->f_mode & FMODE_READ) {
90372 + int retval = 0;
90373 + mutex_lock(&gr_learn_user_mutex);
90374 + if (learn_buffer == NULL)
90375 + learn_buffer = vmalloc(LEARN_BUFFER_SIZE);
90376 + if (learn_buffer_user == NULL)
90377 + learn_buffer_user = vmalloc(LEARN_BUFFER_SIZE);
90378 + if (learn_buffer == NULL) {
90379 + retval = -ENOMEM;
90380 + goto out_error;
90381 + }
90382 + if (learn_buffer_user == NULL) {
90383 + retval = -ENOMEM;
90384 + goto out_error;
90385 + }
90386 + learn_buffer_len = 0;
90387 + learn_buffer_user_len = 0;
90388 + gr_learn_attached = 1;
90389 +out_error:
90390 + mutex_unlock(&gr_learn_user_mutex);
90391 + return retval;
90392 + }
90393 + return 0;
90394 +}
90395 +
90396 +static int
90397 +close_learn(struct inode *inode, struct file *file)
90398 +{
90399 + if (file->f_mode & FMODE_READ) {
90400 + char *tmp = NULL;
90401 + mutex_lock(&gr_learn_user_mutex);
90402 + spin_lock(&gr_learn_lock);
90403 + tmp = learn_buffer;
90404 + learn_buffer = NULL;
90405 + spin_unlock(&gr_learn_lock);
90406 + if (tmp)
90407 + vfree(tmp);
90408 + if (learn_buffer_user != NULL) {
90409 + vfree(learn_buffer_user);
90410 + learn_buffer_user = NULL;
90411 + }
90412 + learn_buffer_len = 0;
90413 + learn_buffer_user_len = 0;
90414 + gr_learn_attached = 0;
90415 + mutex_unlock(&gr_learn_user_mutex);
90416 + }
90417 +
90418 + return 0;
90419 +}
90420 +
90421 +const struct file_operations grsec_fops = {
90422 + .read = read_learn,
90423 + .write = write_grsec_handler,
90424 + .open = open_learn,
90425 + .release = close_learn,
90426 + .poll = poll_learn,
90427 +};
90428 diff --git a/grsecurity/gracl_policy.c b/grsecurity/gracl_policy.c
90429 new file mode 100644
90430 index 0000000..0773423
90431 --- /dev/null
90432 +++ b/grsecurity/gracl_policy.c
90433 @@ -0,0 +1,1786 @@
90434 +#include <linux/kernel.h>
90435 +#include <linux/module.h>
90436 +#include <linux/sched.h>
90437 +#include <linux/mm.h>
90438 +#include <linux/file.h>
90439 +#include <linux/fs.h>
90440 +#include <linux/namei.h>
90441 +#include <linux/mount.h>
90442 +#include <linux/tty.h>
90443 +#include <linux/proc_fs.h>
90444 +#include <linux/lglock.h>
90445 +#include <linux/slab.h>
90446 +#include <linux/vmalloc.h>
90447 +#include <linux/types.h>
90448 +#include <linux/sysctl.h>
90449 +#include <linux/netdevice.h>
90450 +#include <linux/ptrace.h>
90451 +#include <linux/gracl.h>
90452 +#include <linux/gralloc.h>
90453 +#include <linux/security.h>
90454 +#include <linux/grinternal.h>
90455 +#include <linux/pid_namespace.h>
90456 +#include <linux/stop_machine.h>
90457 +#include <linux/fdtable.h>
90458 +#include <linux/percpu.h>
90459 +#include <linux/lglock.h>
90460 +#include <linux/hugetlb.h>
90461 +#include <linux/posix-timers.h>
90462 +#include "../fs/mount.h"
90463 +
90464 +#include <asm/uaccess.h>
90465 +#include <asm/errno.h>
90466 +#include <asm/mman.h>
90467 +
90468 +extern struct gr_policy_state *polstate;
90469 +
90470 +#define FOR_EACH_ROLE_START(role) \
90471 + role = polstate->role_list; \
90472 + while (role) {
90473 +
90474 +#define FOR_EACH_ROLE_END(role) \
90475 + role = role->prev; \
90476 + }
90477 +
90478 +struct path gr_real_root;
90479 +
90480 +extern struct gr_alloc_state *current_alloc_state;
90481 +
90482 +u16 acl_sp_role_value;
90483 +
90484 +static DEFINE_MUTEX(gr_dev_mutex);
90485 +
90486 +extern int chkpw(struct gr_arg *entry, unsigned char *salt, unsigned char *sum);
90487 +extern void gr_clear_learn_entries(void);
90488 +
90489 +struct gr_arg *gr_usermode __read_only;
90490 +unsigned char *gr_system_salt __read_only;
90491 +unsigned char *gr_system_sum __read_only;
90492 +
90493 +static unsigned int gr_auth_attempts = 0;
90494 +static unsigned long gr_auth_expires = 0UL;
90495 +
90496 +struct acl_object_label *fakefs_obj_rw;
90497 +struct acl_object_label *fakefs_obj_rwx;
90498 +
90499 +extern int gr_init_uidset(void);
90500 +extern void gr_free_uidset(void);
90501 +extern void gr_remove_uid(uid_t uid);
90502 +extern int gr_find_uid(uid_t uid);
90503 +
90504 +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);
90505 +extern void __gr_apply_subject_to_task(struct gr_policy_state *state, struct task_struct *task, struct acl_subject_label *subj);
90506 +extern int gr_streq(const char *a, const char *b, const unsigned int lena, const unsigned int lenb);
90507 +extern void __insert_inodev_entry(const struct gr_policy_state *state, struct inodev_entry *entry);
90508 +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);
90509 +extern void insert_acl_obj_label(struct acl_object_label *obj, struct acl_subject_label *subj);
90510 +extern void insert_acl_subj_label(struct acl_subject_label *obj, struct acl_role_label *role);
90511 +extern struct name_entry * __lookup_name_entry(const struct gr_policy_state *state, const char *name);
90512 +extern char *gr_to_filename_rbac(const struct dentry *dentry, const struct vfsmount *mnt);
90513 +extern struct acl_subject_label *lookup_acl_subj_label(const u64 ino, const dev_t dev, const struct acl_role_label *role);
90514 +extern struct acl_subject_label *lookup_acl_subj_label_deleted(const u64 ino, const dev_t dev, const struct acl_role_label *role);
90515 +extern void assign_special_role(const char *rolename);
90516 +extern struct acl_subject_label *chk_subj_label(const struct dentry *l_dentry, const struct vfsmount *l_mnt, const struct acl_role_label *role);
90517 +extern int gr_rbac_disable(void *unused);
90518 +extern void gr_enable_rbac_system(void);
90519 +
90520 +static int copy_acl_object_label_normal(struct acl_object_label *obj, const struct acl_object_label *userp)
90521 +{
90522 + if (copy_from_user(obj, userp, sizeof(struct acl_object_label)))
90523 + return -EFAULT;
90524 +
90525 + return 0;
90526 +}
90527 +
90528 +static int copy_acl_ip_label_normal(struct acl_ip_label *ip, const struct acl_ip_label *userp)
90529 +{
90530 + if (copy_from_user(ip, userp, sizeof(struct acl_ip_label)))
90531 + return -EFAULT;
90532 +
90533 + return 0;
90534 +}
90535 +
90536 +static int copy_acl_subject_label_normal(struct acl_subject_label *subj, const struct acl_subject_label *userp)
90537 +{
90538 + if (copy_from_user(subj, userp, sizeof(struct acl_subject_label)))
90539 + return -EFAULT;
90540 +
90541 + return 0;
90542 +}
90543 +
90544 +static int copy_acl_role_label_normal(struct acl_role_label *role, const struct acl_role_label *userp)
90545 +{
90546 + if (copy_from_user(role, userp, sizeof(struct acl_role_label)))
90547 + return -EFAULT;
90548 +
90549 + return 0;
90550 +}
90551 +
90552 +static int copy_role_allowed_ip_normal(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp)
90553 +{
90554 + if (copy_from_user(roleip, userp, sizeof(struct role_allowed_ip)))
90555 + return -EFAULT;
90556 +
90557 + return 0;
90558 +}
90559 +
90560 +static int copy_sprole_pw_normal(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp)
90561 +{
90562 + if (copy_from_user(pw, userp + idx, sizeof(struct sprole_pw)))
90563 + return -EFAULT;
90564 +
90565 + return 0;
90566 +}
90567 +
90568 +static int copy_gr_hash_struct_normal(struct gr_hash_struct *hash, const struct gr_hash_struct *userp)
90569 +{
90570 + if (copy_from_user(hash, userp, sizeof(struct gr_hash_struct)))
90571 + return -EFAULT;
90572 +
90573 + return 0;
90574 +}
90575 +
90576 +static int copy_role_transition_normal(struct role_transition *trans, const struct role_transition *userp)
90577 +{
90578 + if (copy_from_user(trans, userp, sizeof(struct role_transition)))
90579 + return -EFAULT;
90580 +
90581 + return 0;
90582 +}
90583 +
90584 +int copy_pointer_from_array_normal(void *ptr, unsigned long idx, const void *userp)
90585 +{
90586 + if (copy_from_user(ptr, userp + (idx * sizeof(void *)), sizeof(void *)))
90587 + return -EFAULT;
90588 +
90589 + return 0;
90590 +}
90591 +
90592 +static int copy_gr_arg_wrapper_normal(const char __user *buf, struct gr_arg_wrapper *uwrap)
90593 +{
90594 + if (copy_from_user(uwrap, buf, sizeof (struct gr_arg_wrapper)))
90595 + return -EFAULT;
90596 +
90597 + if ((uwrap->version != GRSECURITY_VERSION) ||
90598 + (uwrap->size != sizeof(struct gr_arg)))
90599 + return -EINVAL;
90600 +
90601 + return 0;
90602 +}
90603 +
90604 +static int copy_gr_arg_normal(const struct gr_arg __user *buf, struct gr_arg *arg)
90605 +{
90606 + if (copy_from_user(arg, buf, sizeof (struct gr_arg)))
90607 + return -EFAULT;
90608 +
90609 + return 0;
90610 +}
90611 +
90612 +static size_t get_gr_arg_wrapper_size_normal(void)
90613 +{
90614 + return sizeof(struct gr_arg_wrapper);
90615 +}
90616 +
90617 +#ifdef CONFIG_COMPAT
90618 +extern int copy_gr_arg_wrapper_compat(const char *buf, struct gr_arg_wrapper *uwrap);
90619 +extern int copy_gr_arg_compat(const struct gr_arg __user *buf, struct gr_arg *arg);
90620 +extern int copy_acl_object_label_compat(struct acl_object_label *obj, const struct acl_object_label *userp);
90621 +extern int copy_acl_subject_label_compat(struct acl_subject_label *subj, const struct acl_subject_label *userp);
90622 +extern int copy_acl_role_label_compat(struct acl_role_label *role, const struct acl_role_label *userp);
90623 +extern int copy_role_allowed_ip_compat(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp);
90624 +extern int copy_role_transition_compat(struct role_transition *trans, const struct role_transition *userp);
90625 +extern int copy_gr_hash_struct_compat(struct gr_hash_struct *hash, const struct gr_hash_struct *userp);
90626 +extern int copy_pointer_from_array_compat(void *ptr, unsigned long idx, const void *userp);
90627 +extern int copy_acl_ip_label_compat(struct acl_ip_label *ip, const struct acl_ip_label *userp);
90628 +extern int copy_sprole_pw_compat(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp);
90629 +extern size_t get_gr_arg_wrapper_size_compat(void);
90630 +
90631 +int (* copy_gr_arg_wrapper)(const char *buf, struct gr_arg_wrapper *uwrap) __read_only;
90632 +int (* copy_gr_arg)(const struct gr_arg *buf, struct gr_arg *arg) __read_only;
90633 +int (* copy_acl_object_label)(struct acl_object_label *obj, const struct acl_object_label *userp) __read_only;
90634 +int (* copy_acl_subject_label)(struct acl_subject_label *subj, const struct acl_subject_label *userp) __read_only;
90635 +int (* copy_acl_role_label)(struct acl_role_label *role, const struct acl_role_label *userp) __read_only;
90636 +int (* copy_acl_ip_label)(struct acl_ip_label *ip, const struct acl_ip_label *userp) __read_only;
90637 +int (* copy_pointer_from_array)(void *ptr, unsigned long idx, const void *userp) __read_only;
90638 +int (* copy_sprole_pw)(struct sprole_pw *pw, unsigned long idx, const struct sprole_pw *userp) __read_only;
90639 +int (* copy_gr_hash_struct)(struct gr_hash_struct *hash, const struct gr_hash_struct *userp) __read_only;
90640 +int (* copy_role_transition)(struct role_transition *trans, const struct role_transition *userp) __read_only;
90641 +int (* copy_role_allowed_ip)(struct role_allowed_ip *roleip, const struct role_allowed_ip *userp) __read_only;
90642 +size_t (* get_gr_arg_wrapper_size)(void) __read_only;
90643 +
90644 +#else
90645 +#define copy_gr_arg_wrapper copy_gr_arg_wrapper_normal
90646 +#define copy_gr_arg copy_gr_arg_normal
90647 +#define copy_gr_hash_struct copy_gr_hash_struct_normal
90648 +#define copy_acl_object_label copy_acl_object_label_normal
90649 +#define copy_acl_subject_label copy_acl_subject_label_normal
90650 +#define copy_acl_role_label copy_acl_role_label_normal
90651 +#define copy_acl_ip_label copy_acl_ip_label_normal
90652 +#define copy_pointer_from_array copy_pointer_from_array_normal
90653 +#define copy_sprole_pw copy_sprole_pw_normal
90654 +#define copy_role_transition copy_role_transition_normal
90655 +#define copy_role_allowed_ip copy_role_allowed_ip_normal
90656 +#define get_gr_arg_wrapper_size get_gr_arg_wrapper_size_normal
90657 +#endif
90658 +
90659 +static struct acl_subject_label *
90660 +lookup_subject_map(const struct acl_subject_label *userp)
90661 +{
90662 + unsigned int index = gr_shash(userp, polstate->subj_map_set.s_size);
90663 + struct subject_map *match;
90664 +
90665 + match = polstate->subj_map_set.s_hash[index];
90666 +
90667 + while (match && match->user != userp)
90668 + match = match->next;
90669 +
90670 + if (match != NULL)
90671 + return match->kernel;
90672 + else
90673 + return NULL;
90674 +}
90675 +
90676 +static void
90677 +insert_subj_map_entry(struct subject_map *subjmap)
90678 +{
90679 + unsigned int index = gr_shash(subjmap->user, polstate->subj_map_set.s_size);
90680 + struct subject_map **curr;
90681 +
90682 + subjmap->prev = NULL;
90683 +
90684 + curr = &polstate->subj_map_set.s_hash[index];
90685 + if (*curr != NULL)
90686 + (*curr)->prev = subjmap;
90687 +
90688 + subjmap->next = *curr;
90689 + *curr = subjmap;
90690 +
90691 + return;
90692 +}
90693 +
90694 +static void
90695 +__insert_acl_role_label(struct acl_role_label *role, uid_t uidgid)
90696 +{
90697 + unsigned int index =
90698 + gr_rhash(uidgid, role->roletype & (GR_ROLE_USER | GR_ROLE_GROUP), polstate->acl_role_set.r_size);
90699 + struct acl_role_label **curr;
90700 + struct acl_role_label *tmp, *tmp2;
90701 +
90702 + curr = &polstate->acl_role_set.r_hash[index];
90703 +
90704 + /* simple case, slot is empty, just set it to our role */
90705 + if (*curr == NULL) {
90706 + *curr = role;
90707 + } else {
90708 + /* example:
90709 + 1 -> 2 -> 3 (adding 2 -> 3 to here)
90710 + 2 -> 3
90711 + */
90712 + /* first check to see if we can already be reached via this slot */
90713 + tmp = *curr;
90714 + while (tmp && tmp != role)
90715 + tmp = tmp->next;
90716 + if (tmp == role) {
90717 + /* we don't need to add ourselves to this slot's chain */
90718 + return;
90719 + }
90720 + /* we need to add ourselves to this chain, two cases */
90721 + if (role->next == NULL) {
90722 + /* simple case, append the current chain to our role */
90723 + role->next = *curr;
90724 + *curr = role;
90725 + } else {
90726 + /* 1 -> 2 -> 3 -> 4
90727 + 2 -> 3 -> 4
90728 + 3 -> 4 (adding 1 -> 2 -> 3 -> 4 to here)
90729 + */
90730 + /* trickier case: walk our role's chain until we find
90731 + the role for the start of the current slot's chain */
90732 + tmp = role;
90733 + tmp2 = *curr;
90734 + while (tmp->next && tmp->next != tmp2)
90735 + tmp = tmp->next;
90736 + if (tmp->next == tmp2) {
90737 + /* from example above, we found 3, so just
90738 + replace this slot's chain with ours */
90739 + *curr = role;
90740 + } else {
90741 + /* we didn't find a subset of our role's chain
90742 + in the current slot's chain, so append their
90743 + chain to ours, and set us as the first role in
90744 + the slot's chain
90745 +
90746 + we could fold this case with the case above,
90747 + but making it explicit for clarity
90748 + */
90749 + tmp->next = tmp2;
90750 + *curr = role;
90751 + }
90752 + }
90753 + }
90754 +
90755 + return;
90756 +}
90757 +
90758 +static void
90759 +insert_acl_role_label(struct acl_role_label *role)
90760 +{
90761 + int i;
90762 +
90763 + if (polstate->role_list == NULL) {
90764 + polstate->role_list = role;
90765 + role->prev = NULL;
90766 + } else {
90767 + role->prev = polstate->role_list;
90768 + polstate->role_list = role;
90769 + }
90770 +
90771 + /* used for hash chains */
90772 + role->next = NULL;
90773 +
90774 + if (role->roletype & GR_ROLE_DOMAIN) {
90775 + for (i = 0; i < role->domain_child_num; i++)
90776 + __insert_acl_role_label(role, role->domain_children[i]);
90777 + } else
90778 + __insert_acl_role_label(role, role->uidgid);
90779 +}
90780 +
90781 +static int
90782 +insert_name_entry(char *name, const u64 inode, const dev_t device, __u8 deleted)
90783 +{
90784 + struct name_entry **curr, *nentry;
90785 + struct inodev_entry *ientry;
90786 + unsigned int len = strlen(name);
90787 + unsigned int key = full_name_hash(name, len);
90788 + unsigned int index = key % polstate->name_set.n_size;
90789 +
90790 + curr = &polstate->name_set.n_hash[index];
90791 +
90792 + while (*curr && ((*curr)->key != key || !gr_streq((*curr)->name, name, (*curr)->len, len)))
90793 + curr = &((*curr)->next);
90794 +
90795 + if (*curr != NULL)
90796 + return 1;
90797 +
90798 + nentry = acl_alloc(sizeof (struct name_entry));
90799 + if (nentry == NULL)
90800 + return 0;
90801 + ientry = acl_alloc(sizeof (struct inodev_entry));
90802 + if (ientry == NULL)
90803 + return 0;
90804 + ientry->nentry = nentry;
90805 +
90806 + nentry->key = key;
90807 + nentry->name = name;
90808 + nentry->inode = inode;
90809 + nentry->device = device;
90810 + nentry->len = len;
90811 + nentry->deleted = deleted;
90812 +
90813 + nentry->prev = NULL;
90814 + curr = &polstate->name_set.n_hash[index];
90815 + if (*curr != NULL)
90816 + (*curr)->prev = nentry;
90817 + nentry->next = *curr;
90818 + *curr = nentry;
90819 +
90820 + /* insert us into the table searchable by inode/dev */
90821 + __insert_inodev_entry(polstate, ientry);
90822 +
90823 + return 1;
90824 +}
90825 +
90826 +/* allocating chained hash tables, so optimal size is where lambda ~ 1 */
90827 +
90828 +static void *
90829 +create_table(__u32 * len, int elementsize)
90830 +{
90831 + unsigned int table_sizes[] = {
90832 + 7, 13, 31, 61, 127, 251, 509, 1021, 2039, 4093, 8191, 16381,
90833 + 32749, 65521, 131071, 262139, 524287, 1048573, 2097143,
90834 + 4194301, 8388593, 16777213, 33554393, 67108859
90835 + };
90836 + void *newtable = NULL;
90837 + unsigned int pwr = 0;
90838 +
90839 + while ((pwr < ((sizeof (table_sizes) / sizeof (table_sizes[0])) - 1)) &&
90840 + table_sizes[pwr] <= *len)
90841 + pwr++;
90842 +
90843 + if (table_sizes[pwr] <= *len || (table_sizes[pwr] > ULONG_MAX / elementsize))
90844 + return newtable;
90845 +
90846 + if ((table_sizes[pwr] * elementsize) <= PAGE_SIZE)
90847 + newtable =
90848 + kmalloc(table_sizes[pwr] * elementsize, GFP_KERNEL);
90849 + else
90850 + newtable = vmalloc(table_sizes[pwr] * elementsize);
90851 +
90852 + *len = table_sizes[pwr];
90853 +
90854 + return newtable;
90855 +}
90856 +
90857 +static int
90858 +init_variables(const struct gr_arg *arg, bool reload)
90859 +{
90860 + struct task_struct *reaper = init_pid_ns.child_reaper;
90861 + unsigned int stacksize;
90862 +
90863 + polstate->subj_map_set.s_size = arg->role_db.num_subjects;
90864 + polstate->acl_role_set.r_size = arg->role_db.num_roles + arg->role_db.num_domain_children;
90865 + polstate->name_set.n_size = arg->role_db.num_objects;
90866 + polstate->inodev_set.i_size = arg->role_db.num_objects;
90867 +
90868 + if (!polstate->subj_map_set.s_size || !polstate->acl_role_set.r_size ||
90869 + !polstate->name_set.n_size || !polstate->inodev_set.i_size)
90870 + return 1;
90871 +
90872 + if (!reload) {
90873 + if (!gr_init_uidset())
90874 + return 1;
90875 + }
90876 +
90877 + /* set up the stack that holds allocation info */
90878 +
90879 + stacksize = arg->role_db.num_pointers + 5;
90880 +
90881 + if (!acl_alloc_stack_init(stacksize))
90882 + return 1;
90883 +
90884 + if (!reload) {
90885 + /* grab reference for the real root dentry and vfsmount */
90886 + get_fs_root(reaper->fs, &gr_real_root);
90887 +
90888 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
90889 + 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));
90890 +#endif
90891 +
90892 + fakefs_obj_rw = kzalloc(sizeof(struct acl_object_label), GFP_KERNEL);
90893 + if (fakefs_obj_rw == NULL)
90894 + return 1;
90895 + fakefs_obj_rw->mode = GR_FIND | GR_READ | GR_WRITE;
90896 +
90897 + fakefs_obj_rwx = kzalloc(sizeof(struct acl_object_label), GFP_KERNEL);
90898 + if (fakefs_obj_rwx == NULL)
90899 + return 1;
90900 + fakefs_obj_rwx->mode = GR_FIND | GR_READ | GR_WRITE | GR_EXEC;
90901 + }
90902 +
90903 + polstate->subj_map_set.s_hash =
90904 + (struct subject_map **) create_table(&polstate->subj_map_set.s_size, sizeof(void *));
90905 + polstate->acl_role_set.r_hash =
90906 + (struct acl_role_label **) create_table(&polstate->acl_role_set.r_size, sizeof(void *));
90907 + polstate->name_set.n_hash = (struct name_entry **) create_table(&polstate->name_set.n_size, sizeof(void *));
90908 + polstate->inodev_set.i_hash =
90909 + (struct inodev_entry **) create_table(&polstate->inodev_set.i_size, sizeof(void *));
90910 +
90911 + if (!polstate->subj_map_set.s_hash || !polstate->acl_role_set.r_hash ||
90912 + !polstate->name_set.n_hash || !polstate->inodev_set.i_hash)
90913 + return 1;
90914 +
90915 + memset(polstate->subj_map_set.s_hash, 0,
90916 + sizeof(struct subject_map *) * polstate->subj_map_set.s_size);
90917 + memset(polstate->acl_role_set.r_hash, 0,
90918 + sizeof (struct acl_role_label *) * polstate->acl_role_set.r_size);
90919 + memset(polstate->name_set.n_hash, 0,
90920 + sizeof (struct name_entry *) * polstate->name_set.n_size);
90921 + memset(polstate->inodev_set.i_hash, 0,
90922 + sizeof (struct inodev_entry *) * polstate->inodev_set.i_size);
90923 +
90924 + return 0;
90925 +}
90926 +
90927 +/* free information not needed after startup
90928 + currently contains user->kernel pointer mappings for subjects
90929 +*/
90930 +
90931 +static void
90932 +free_init_variables(void)
90933 +{
90934 + __u32 i;
90935 +
90936 + if (polstate->subj_map_set.s_hash) {
90937 + for (i = 0; i < polstate->subj_map_set.s_size; i++) {
90938 + if (polstate->subj_map_set.s_hash[i]) {
90939 + kfree(polstate->subj_map_set.s_hash[i]);
90940 + polstate->subj_map_set.s_hash[i] = NULL;
90941 + }
90942 + }
90943 +
90944 + if ((polstate->subj_map_set.s_size * sizeof (struct subject_map *)) <=
90945 + PAGE_SIZE)
90946 + kfree(polstate->subj_map_set.s_hash);
90947 + else
90948 + vfree(polstate->subj_map_set.s_hash);
90949 + }
90950 +
90951 + return;
90952 +}
90953 +
90954 +static void
90955 +free_variables(bool reload)
90956 +{
90957 + struct acl_subject_label *s;
90958 + struct acl_role_label *r;
90959 + struct task_struct *task, *task2;
90960 + unsigned int x;
90961 +
90962 + if (!reload) {
90963 + gr_clear_learn_entries();
90964 +
90965 + read_lock(&tasklist_lock);
90966 + do_each_thread(task2, task) {
90967 + task->acl_sp_role = 0;
90968 + task->acl_role_id = 0;
90969 + task->inherited = 0;
90970 + task->acl = NULL;
90971 + task->role = NULL;
90972 + } while_each_thread(task2, task);
90973 + read_unlock(&tasklist_lock);
90974 +
90975 + kfree(fakefs_obj_rw);
90976 + fakefs_obj_rw = NULL;
90977 + kfree(fakefs_obj_rwx);
90978 + fakefs_obj_rwx = NULL;
90979 +
90980 + /* release the reference to the real root dentry and vfsmount */
90981 + path_put(&gr_real_root);
90982 + memset(&gr_real_root, 0, sizeof(gr_real_root));
90983 + }
90984 +
90985 + /* free all object hash tables */
90986 +
90987 + FOR_EACH_ROLE_START(r)
90988 + if (r->subj_hash == NULL)
90989 + goto next_role;
90990 + FOR_EACH_SUBJECT_START(r, s, x)
90991 + if (s->obj_hash == NULL)
90992 + break;
90993 + if ((s->obj_hash_size * sizeof (struct acl_object_label *)) <= PAGE_SIZE)
90994 + kfree(s->obj_hash);
90995 + else
90996 + vfree(s->obj_hash);
90997 + FOR_EACH_SUBJECT_END(s, x)
90998 + FOR_EACH_NESTED_SUBJECT_START(r, s)
90999 + if (s->obj_hash == NULL)
91000 + break;
91001 + if ((s->obj_hash_size * sizeof (struct acl_object_label *)) <= PAGE_SIZE)
91002 + kfree(s->obj_hash);
91003 + else
91004 + vfree(s->obj_hash);
91005 + FOR_EACH_NESTED_SUBJECT_END(s)
91006 + if ((r->subj_hash_size * sizeof (struct acl_subject_label *)) <= PAGE_SIZE)
91007 + kfree(r->subj_hash);
91008 + else
91009 + vfree(r->subj_hash);
91010 + r->subj_hash = NULL;
91011 +next_role:
91012 + FOR_EACH_ROLE_END(r)
91013 +
91014 + acl_free_all();
91015 +
91016 + if (polstate->acl_role_set.r_hash) {
91017 + if ((polstate->acl_role_set.r_size * sizeof (struct acl_role_label *)) <=
91018 + PAGE_SIZE)
91019 + kfree(polstate->acl_role_set.r_hash);
91020 + else
91021 + vfree(polstate->acl_role_set.r_hash);
91022 + }
91023 + if (polstate->name_set.n_hash) {
91024 + if ((polstate->name_set.n_size * sizeof (struct name_entry *)) <=
91025 + PAGE_SIZE)
91026 + kfree(polstate->name_set.n_hash);
91027 + else
91028 + vfree(polstate->name_set.n_hash);
91029 + }
91030 +
91031 + if (polstate->inodev_set.i_hash) {
91032 + if ((polstate->inodev_set.i_size * sizeof (struct inodev_entry *)) <=
91033 + PAGE_SIZE)
91034 + kfree(polstate->inodev_set.i_hash);
91035 + else
91036 + vfree(polstate->inodev_set.i_hash);
91037 + }
91038 +
91039 + if (!reload)
91040 + gr_free_uidset();
91041 +
91042 + memset(&polstate->name_set, 0, sizeof (struct name_db));
91043 + memset(&polstate->inodev_set, 0, sizeof (struct inodev_db));
91044 + memset(&polstate->acl_role_set, 0, sizeof (struct acl_role_db));
91045 + memset(&polstate->subj_map_set, 0, sizeof (struct acl_subj_map_db));
91046 +
91047 + polstate->default_role = NULL;
91048 + polstate->kernel_role = NULL;
91049 + polstate->role_list = NULL;
91050 +
91051 + return;
91052 +}
91053 +
91054 +static struct acl_subject_label *
91055 +do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied);
91056 +
91057 +static int alloc_and_copy_string(char **name, unsigned int maxlen)
91058 +{
91059 + unsigned int len = strnlen_user(*name, maxlen);
91060 + char *tmp;
91061 +
91062 + if (!len || len >= maxlen)
91063 + return -EINVAL;
91064 +
91065 + if ((tmp = (char *) acl_alloc(len)) == NULL)
91066 + return -ENOMEM;
91067 +
91068 + if (copy_from_user(tmp, *name, len))
91069 + return -EFAULT;
91070 +
91071 + tmp[len-1] = '\0';
91072 + *name = tmp;
91073 +
91074 + return 0;
91075 +}
91076 +
91077 +static int
91078 +copy_user_glob(struct acl_object_label *obj)
91079 +{
91080 + struct acl_object_label *g_tmp, **guser;
91081 + int error;
91082 +
91083 + if (obj->globbed == NULL)
91084 + return 0;
91085 +
91086 + guser = &obj->globbed;
91087 + while (*guser) {
91088 + g_tmp = (struct acl_object_label *)
91089 + acl_alloc(sizeof (struct acl_object_label));
91090 + if (g_tmp == NULL)
91091 + return -ENOMEM;
91092 +
91093 + if (copy_acl_object_label(g_tmp, *guser))
91094 + return -EFAULT;
91095 +
91096 + error = alloc_and_copy_string(&g_tmp->filename, PATH_MAX);
91097 + if (error)
91098 + return error;
91099 +
91100 + *guser = g_tmp;
91101 + guser = &(g_tmp->next);
91102 + }
91103 +
91104 + return 0;
91105 +}
91106 +
91107 +static int
91108 +copy_user_objs(struct acl_object_label *userp, struct acl_subject_label *subj,
91109 + struct acl_role_label *role)
91110 +{
91111 + struct acl_object_label *o_tmp;
91112 + int ret;
91113 +
91114 + while (userp) {
91115 + if ((o_tmp = (struct acl_object_label *)
91116 + acl_alloc(sizeof (struct acl_object_label))) == NULL)
91117 + return -ENOMEM;
91118 +
91119 + if (copy_acl_object_label(o_tmp, userp))
91120 + return -EFAULT;
91121 +
91122 + userp = o_tmp->prev;
91123 +
91124 + ret = alloc_and_copy_string(&o_tmp->filename, PATH_MAX);
91125 + if (ret)
91126 + return ret;
91127 +
91128 + insert_acl_obj_label(o_tmp, subj);
91129 + if (!insert_name_entry(o_tmp->filename, o_tmp->inode,
91130 + o_tmp->device, (o_tmp->mode & GR_DELETED) ? 1 : 0))
91131 + return -ENOMEM;
91132 +
91133 + ret = copy_user_glob(o_tmp);
91134 + if (ret)
91135 + return ret;
91136 +
91137 + if (o_tmp->nested) {
91138 + int already_copied;
91139 +
91140 + o_tmp->nested = do_copy_user_subj(o_tmp->nested, role, &already_copied);
91141 + if (IS_ERR(o_tmp->nested))
91142 + return PTR_ERR(o_tmp->nested);
91143 +
91144 + /* insert into nested subject list if we haven't copied this one yet
91145 + to prevent duplicate entries */
91146 + if (!already_copied) {
91147 + o_tmp->nested->next = role->hash->first;
91148 + role->hash->first = o_tmp->nested;
91149 + }
91150 + }
91151 + }
91152 +
91153 + return 0;
91154 +}
91155 +
91156 +static __u32
91157 +count_user_subjs(struct acl_subject_label *userp)
91158 +{
91159 + struct acl_subject_label s_tmp;
91160 + __u32 num = 0;
91161 +
91162 + while (userp) {
91163 + if (copy_acl_subject_label(&s_tmp, userp))
91164 + break;
91165 +
91166 + userp = s_tmp.prev;
91167 + }
91168 +
91169 + return num;
91170 +}
91171 +
91172 +static int
91173 +copy_user_allowedips(struct acl_role_label *rolep)
91174 +{
91175 + struct role_allowed_ip *ruserip, *rtmp = NULL, *rlast;
91176 +
91177 + ruserip = rolep->allowed_ips;
91178 +
91179 + while (ruserip) {
91180 + rlast = rtmp;
91181 +
91182 + if ((rtmp = (struct role_allowed_ip *)
91183 + acl_alloc(sizeof (struct role_allowed_ip))) == NULL)
91184 + return -ENOMEM;
91185 +
91186 + if (copy_role_allowed_ip(rtmp, ruserip))
91187 + return -EFAULT;
91188 +
91189 + ruserip = rtmp->prev;
91190 +
91191 + if (!rlast) {
91192 + rtmp->prev = NULL;
91193 + rolep->allowed_ips = rtmp;
91194 + } else {
91195 + rlast->next = rtmp;
91196 + rtmp->prev = rlast;
91197 + }
91198 +
91199 + if (!ruserip)
91200 + rtmp->next = NULL;
91201 + }
91202 +
91203 + return 0;
91204 +}
91205 +
91206 +static int
91207 +copy_user_transitions(struct acl_role_label *rolep)
91208 +{
91209 + struct role_transition *rusertp, *rtmp = NULL, *rlast;
91210 + int error;
91211 +
91212 + rusertp = rolep->transitions;
91213 +
91214 + while (rusertp) {
91215 + rlast = rtmp;
91216 +
91217 + if ((rtmp = (struct role_transition *)
91218 + acl_alloc(sizeof (struct role_transition))) == NULL)
91219 + return -ENOMEM;
91220 +
91221 + if (copy_role_transition(rtmp, rusertp))
91222 + return -EFAULT;
91223 +
91224 + rusertp = rtmp->prev;
91225 +
91226 + error = alloc_and_copy_string(&rtmp->rolename, GR_SPROLE_LEN);
91227 + if (error)
91228 + return error;
91229 +
91230 + if (!rlast) {
91231 + rtmp->prev = NULL;
91232 + rolep->transitions = rtmp;
91233 + } else {
91234 + rlast->next = rtmp;
91235 + rtmp->prev = rlast;
91236 + }
91237 +
91238 + if (!rusertp)
91239 + rtmp->next = NULL;
91240 + }
91241 +
91242 + return 0;
91243 +}
91244 +
91245 +static __u32 count_user_objs(const struct acl_object_label __user *userp)
91246 +{
91247 + struct acl_object_label o_tmp;
91248 + __u32 num = 0;
91249 +
91250 + while (userp) {
91251 + if (copy_acl_object_label(&o_tmp, userp))
91252 + break;
91253 +
91254 + userp = o_tmp.prev;
91255 + num++;
91256 + }
91257 +
91258 + return num;
91259 +}
91260 +
91261 +static struct acl_subject_label *
91262 +do_copy_user_subj(struct acl_subject_label *userp, struct acl_role_label *role, int *already_copied)
91263 +{
91264 + struct acl_subject_label *s_tmp = NULL, *s_tmp2;
91265 + __u32 num_objs;
91266 + struct acl_ip_label **i_tmp, *i_utmp2;
91267 + struct gr_hash_struct ghash;
91268 + struct subject_map *subjmap;
91269 + unsigned int i_num;
91270 + int err;
91271 +
91272 + if (already_copied != NULL)
91273 + *already_copied = 0;
91274 +
91275 + s_tmp = lookup_subject_map(userp);
91276 +
91277 + /* we've already copied this subject into the kernel, just return
91278 + the reference to it, and don't copy it over again
91279 + */
91280 + if (s_tmp) {
91281 + if (already_copied != NULL)
91282 + *already_copied = 1;
91283 + return(s_tmp);
91284 + }
91285 +
91286 + if ((s_tmp = (struct acl_subject_label *)
91287 + acl_alloc(sizeof (struct acl_subject_label))) == NULL)
91288 + return ERR_PTR(-ENOMEM);
91289 +
91290 + subjmap = (struct subject_map *)kmalloc(sizeof (struct subject_map), GFP_KERNEL);
91291 + if (subjmap == NULL)
91292 + return ERR_PTR(-ENOMEM);
91293 +
91294 + subjmap->user = userp;
91295 + subjmap->kernel = s_tmp;
91296 + insert_subj_map_entry(subjmap);
91297 +
91298 + if (copy_acl_subject_label(s_tmp, userp))
91299 + return ERR_PTR(-EFAULT);
91300 +
91301 + err = alloc_and_copy_string(&s_tmp->filename, PATH_MAX);
91302 + if (err)
91303 + return ERR_PTR(err);
91304 +
91305 + if (!strcmp(s_tmp->filename, "/"))
91306 + role->root_label = s_tmp;
91307 +
91308 + if (copy_gr_hash_struct(&ghash, s_tmp->hash))
91309 + return ERR_PTR(-EFAULT);
91310 +
91311 + /* copy user and group transition tables */
91312 +
91313 + if (s_tmp->user_trans_num) {
91314 + uid_t *uidlist;
91315 +
91316 + uidlist = (uid_t *)acl_alloc_num(s_tmp->user_trans_num, sizeof(uid_t));
91317 + if (uidlist == NULL)
91318 + return ERR_PTR(-ENOMEM);
91319 + if (copy_from_user(uidlist, s_tmp->user_transitions, s_tmp->user_trans_num * sizeof(uid_t)))
91320 + return ERR_PTR(-EFAULT);
91321 +
91322 + s_tmp->user_transitions = uidlist;
91323 + }
91324 +
91325 + if (s_tmp->group_trans_num) {
91326 + gid_t *gidlist;
91327 +
91328 + gidlist = (gid_t *)acl_alloc_num(s_tmp->group_trans_num, sizeof(gid_t));
91329 + if (gidlist == NULL)
91330 + return ERR_PTR(-ENOMEM);
91331 + if (copy_from_user(gidlist, s_tmp->group_transitions, s_tmp->group_trans_num * sizeof(gid_t)))
91332 + return ERR_PTR(-EFAULT);
91333 +
91334 + s_tmp->group_transitions = gidlist;
91335 + }
91336 +
91337 + /* set up object hash table */
91338 + num_objs = count_user_objs(ghash.first);
91339 +
91340 + s_tmp->obj_hash_size = num_objs;
91341 + s_tmp->obj_hash =
91342 + (struct acl_object_label **)
91343 + create_table(&(s_tmp->obj_hash_size), sizeof(void *));
91344 +
91345 + if (!s_tmp->obj_hash)
91346 + return ERR_PTR(-ENOMEM);
91347 +
91348 + memset(s_tmp->obj_hash, 0,
91349 + s_tmp->obj_hash_size *
91350 + sizeof (struct acl_object_label *));
91351 +
91352 + /* add in objects */
91353 + err = copy_user_objs(ghash.first, s_tmp, role);
91354 +
91355 + if (err)
91356 + return ERR_PTR(err);
91357 +
91358 + /* set pointer for parent subject */
91359 + if (s_tmp->parent_subject) {
91360 + s_tmp2 = do_copy_user_subj(s_tmp->parent_subject, role, NULL);
91361 +
91362 + if (IS_ERR(s_tmp2))
91363 + return s_tmp2;
91364 +
91365 + s_tmp->parent_subject = s_tmp2;
91366 + }
91367 +
91368 + /* add in ip acls */
91369 +
91370 + if (!s_tmp->ip_num) {
91371 + s_tmp->ips = NULL;
91372 + goto insert;
91373 + }
91374 +
91375 + i_tmp =
91376 + (struct acl_ip_label **) acl_alloc_num(s_tmp->ip_num,
91377 + sizeof (struct acl_ip_label *));
91378 +
91379 + if (!i_tmp)
91380 + return ERR_PTR(-ENOMEM);
91381 +
91382 + for (i_num = 0; i_num < s_tmp->ip_num; i_num++) {
91383 + *(i_tmp + i_num) =
91384 + (struct acl_ip_label *)
91385 + acl_alloc(sizeof (struct acl_ip_label));
91386 + if (!*(i_tmp + i_num))
91387 + return ERR_PTR(-ENOMEM);
91388 +
91389 + if (copy_pointer_from_array(&i_utmp2, i_num, s_tmp->ips))
91390 + return ERR_PTR(-EFAULT);
91391 +
91392 + if (copy_acl_ip_label(*(i_tmp + i_num), i_utmp2))
91393 + return ERR_PTR(-EFAULT);
91394 +
91395 + if ((*(i_tmp + i_num))->iface == NULL)
91396 + continue;
91397 +
91398 + err = alloc_and_copy_string(&(*(i_tmp + i_num))->iface, IFNAMSIZ);
91399 + if (err)
91400 + return ERR_PTR(err);
91401 + }
91402 +
91403 + s_tmp->ips = i_tmp;
91404 +
91405 +insert:
91406 + if (!insert_name_entry(s_tmp->filename, s_tmp->inode,
91407 + s_tmp->device, (s_tmp->mode & GR_DELETED) ? 1 : 0))
91408 + return ERR_PTR(-ENOMEM);
91409 +
91410 + return s_tmp;
91411 +}
91412 +
91413 +static int
91414 +copy_user_subjs(struct acl_subject_label *userp, struct acl_role_label *role)
91415 +{
91416 + struct acl_subject_label s_pre;
91417 + struct acl_subject_label * ret;
91418 + int err;
91419 +
91420 + while (userp) {
91421 + if (copy_acl_subject_label(&s_pre, userp))
91422 + return -EFAULT;
91423 +
91424 + ret = do_copy_user_subj(userp, role, NULL);
91425 +
91426 + err = PTR_ERR(ret);
91427 + if (IS_ERR(ret))
91428 + return err;
91429 +
91430 + insert_acl_subj_label(ret, role);
91431 +
91432 + userp = s_pre.prev;
91433 + }
91434 +
91435 + return 0;
91436 +}
91437 +
91438 +static int
91439 +copy_user_acl(struct gr_arg *arg)
91440 +{
91441 + struct acl_role_label *r_tmp = NULL, **r_utmp, *r_utmp2;
91442 + struct acl_subject_label *subj_list;
91443 + struct sprole_pw *sptmp;
91444 + struct gr_hash_struct *ghash;
91445 + uid_t *domainlist;
91446 + unsigned int r_num;
91447 + int err = 0;
91448 + __u16 i;
91449 + __u32 num_subjs;
91450 +
91451 + /* we need a default and kernel role */
91452 + if (arg->role_db.num_roles < 2)
91453 + return -EINVAL;
91454 +
91455 + /* copy special role authentication info from userspace */
91456 +
91457 + polstate->num_sprole_pws = arg->num_sprole_pws;
91458 + polstate->acl_special_roles = (struct sprole_pw **) acl_alloc_num(polstate->num_sprole_pws, sizeof(struct sprole_pw *));
91459 +
91460 + if (!polstate->acl_special_roles && polstate->num_sprole_pws)
91461 + return -ENOMEM;
91462 +
91463 + for (i = 0; i < polstate->num_sprole_pws; i++) {
91464 + sptmp = (struct sprole_pw *) acl_alloc(sizeof(struct sprole_pw));
91465 + if (!sptmp)
91466 + return -ENOMEM;
91467 + if (copy_sprole_pw(sptmp, i, arg->sprole_pws))
91468 + return -EFAULT;
91469 +
91470 + err = alloc_and_copy_string((char **)&sptmp->rolename, GR_SPROLE_LEN);
91471 + if (err)
91472 + return err;
91473 +
91474 +#ifdef CONFIG_GRKERNSEC_RBAC_DEBUG
91475 + printk(KERN_ALERT "Copying special role %s\n", sptmp->rolename);
91476 +#endif
91477 +
91478 + polstate->acl_special_roles[i] = sptmp;
91479 + }
91480 +
91481 + r_utmp = (struct acl_role_label **) arg->role_db.r_table;
91482 +
91483 + for (r_num = 0; r_num < arg->role_db.num_roles; r_num++) {
91484 + r_tmp = acl_alloc(sizeof (struct acl_role_label));
91485 +
91486 + if (!r_tmp)
91487 + return -ENOMEM;
91488 +
91489 + if (copy_pointer_from_array(&r_utmp2, r_num, r_utmp))
91490 + return -EFAULT;
91491 +
91492 + if (copy_acl_role_label(r_tmp, r_utmp2))
91493 + return -EFAULT;
91494 +
91495 + err = alloc_and_copy_string(&r_tmp->rolename, GR_SPROLE_LEN);
91496 + if (err)
91497 + return err;
91498 +
91499 + if (!strcmp(r_tmp->rolename, "default")
91500 + && (r_tmp->roletype & GR_ROLE_DEFAULT)) {
91501 + polstate->default_role = r_tmp;
91502 + } else if (!strcmp(r_tmp->rolename, ":::kernel:::")) {
91503 + polstate->kernel_role = r_tmp;
91504 + }
91505 +
91506 + if ((ghash = (struct gr_hash_struct *) acl_alloc(sizeof(struct gr_hash_struct))) == NULL)
91507 + return -ENOMEM;
91508 +
91509 + if (copy_gr_hash_struct(ghash, r_tmp->hash))
91510 + return -EFAULT;
91511 +
91512 + r_tmp->hash = ghash;
91513 +
91514 + num_subjs = count_user_subjs(r_tmp->hash->first);
91515 +
91516 + r_tmp->subj_hash_size = num_subjs;
91517 + r_tmp->subj_hash =
91518 + (struct acl_subject_label **)
91519 + create_table(&(r_tmp->subj_hash_size), sizeof(void *));
91520 +
91521 + if (!r_tmp->subj_hash)
91522 + return -ENOMEM;
91523 +
91524 + err = copy_user_allowedips(r_tmp);
91525 + if (err)
91526 + return err;
91527 +
91528 + /* copy domain info */
91529 + if (r_tmp->domain_children != NULL) {
91530 + domainlist = acl_alloc_num(r_tmp->domain_child_num, sizeof(uid_t));
91531 + if (domainlist == NULL)
91532 + return -ENOMEM;
91533 +
91534 + if (copy_from_user(domainlist, r_tmp->domain_children, r_tmp->domain_child_num * sizeof(uid_t)))
91535 + return -EFAULT;
91536 +
91537 + r_tmp->domain_children = domainlist;
91538 + }
91539 +
91540 + err = copy_user_transitions(r_tmp);
91541 + if (err)
91542 + return err;
91543 +
91544 + memset(r_tmp->subj_hash, 0,
91545 + r_tmp->subj_hash_size *
91546 + sizeof (struct acl_subject_label *));
91547 +
91548 + /* acquire the list of subjects, then NULL out
91549 + the list prior to parsing the subjects for this role,
91550 + as during this parsing the list is replaced with a list
91551 + of *nested* subjects for the role
91552 + */
91553 + subj_list = r_tmp->hash->first;
91554 +
91555 + /* set nested subject list to null */
91556 + r_tmp->hash->first = NULL;
91557 +
91558 + err = copy_user_subjs(subj_list, r_tmp);
91559 +
91560 + if (err)
91561 + return err;
91562 +
91563 + insert_acl_role_label(r_tmp);
91564 + }
91565 +
91566 + if (polstate->default_role == NULL || polstate->kernel_role == NULL)
91567 + return -EINVAL;
91568 +
91569 + return err;
91570 +}
91571 +
91572 +static int gracl_reload_apply_policies(void *reload)
91573 +{
91574 + struct gr_reload_state *reload_state = (struct gr_reload_state *)reload;
91575 + struct task_struct *task, *task2;
91576 + struct acl_role_label *role, *rtmp;
91577 + struct acl_subject_label *subj;
91578 + const struct cred *cred;
91579 + int role_applied;
91580 + int ret = 0;
91581 +
91582 + memcpy(&reload_state->oldpolicy, reload_state->oldpolicy_ptr, sizeof(struct gr_policy_state));
91583 + memcpy(&reload_state->oldalloc, reload_state->oldalloc_ptr, sizeof(struct gr_alloc_state));
91584 +
91585 + /* first make sure we'll be able to apply the new policy cleanly */
91586 + do_each_thread(task2, task) {
91587 + if (task->exec_file == NULL)
91588 + continue;
91589 + role_applied = 0;
91590 + if (!reload_state->oldmode && task->role->roletype & GR_ROLE_SPECIAL) {
91591 + /* preserve special roles */
91592 + FOR_EACH_ROLE_START(role)
91593 + if ((role->roletype & GR_ROLE_SPECIAL) && !strcmp(task->role->rolename, role->rolename)) {
91594 + rtmp = task->role;
91595 + task->role = role;
91596 + role_applied = 1;
91597 + break;
91598 + }
91599 + FOR_EACH_ROLE_END(role)
91600 + }
91601 + if (!role_applied) {
91602 + cred = __task_cred(task);
91603 + rtmp = task->role;
91604 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
91605 + }
91606 + /* this handles non-nested inherited subjects, nested subjects will still
91607 + be dropped currently */
91608 + subj = __gr_get_subject_for_task(polstate, task, task->acl->filename, 1);
91609 + task->tmpacl = __gr_get_subject_for_task(polstate, task, NULL, 1);
91610 + /* change the role back so that we've made no modifications to the policy */
91611 + task->role = rtmp;
91612 +
91613 + if (subj == NULL || task->tmpacl == NULL) {
91614 + ret = -EINVAL;
91615 + goto out;
91616 + }
91617 + } while_each_thread(task2, task);
91618 +
91619 + /* now actually apply the policy */
91620 +
91621 + do_each_thread(task2, task) {
91622 + if (task->exec_file) {
91623 + role_applied = 0;
91624 + if (!reload_state->oldmode && task->role->roletype & GR_ROLE_SPECIAL) {
91625 + /* preserve special roles */
91626 + FOR_EACH_ROLE_START(role)
91627 + if ((role->roletype & GR_ROLE_SPECIAL) && !strcmp(task->role->rolename, role->rolename)) {
91628 + task->role = role;
91629 + role_applied = 1;
91630 + break;
91631 + }
91632 + FOR_EACH_ROLE_END(role)
91633 + }
91634 + if (!role_applied) {
91635 + cred = __task_cred(task);
91636 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
91637 + }
91638 + /* this handles non-nested inherited subjects, nested subjects will still
91639 + be dropped currently */
91640 + if (!reload_state->oldmode && task->inherited)
91641 + subj = __gr_get_subject_for_task(polstate, task, task->acl->filename, 1);
91642 + else {
91643 + /* looked up and tagged to the task previously */
91644 + subj = task->tmpacl;
91645 + }
91646 + /* subj will be non-null */
91647 + __gr_apply_subject_to_task(polstate, task, subj);
91648 + if (reload_state->oldmode) {
91649 + task->acl_role_id = 0;
91650 + task->acl_sp_role = 0;
91651 + task->inherited = 0;
91652 + }
91653 + } else {
91654 + // it's a kernel process
91655 + task->role = polstate->kernel_role;
91656 + task->acl = polstate->kernel_role->root_label;
91657 +#ifdef CONFIG_GRKERNSEC_ACL_HIDEKERN
91658 + task->acl->mode &= ~GR_PROCFIND;
91659 +#endif
91660 + }
91661 + } while_each_thread(task2, task);
91662 +
91663 + memcpy(reload_state->oldpolicy_ptr, &reload_state->newpolicy, sizeof(struct gr_policy_state));
91664 + memcpy(reload_state->oldalloc_ptr, &reload_state->newalloc, sizeof(struct gr_alloc_state));
91665 +
91666 +out:
91667 +
91668 + return ret;
91669 +}
91670 +
91671 +static int gracl_reload(struct gr_arg *args, unsigned char oldmode)
91672 +{
91673 + struct gr_reload_state new_reload_state = { };
91674 + int err;
91675 +
91676 + new_reload_state.oldpolicy_ptr = polstate;
91677 + new_reload_state.oldalloc_ptr = current_alloc_state;
91678 + new_reload_state.oldmode = oldmode;
91679 +
91680 + current_alloc_state = &new_reload_state.newalloc;
91681 + polstate = &new_reload_state.newpolicy;
91682 +
91683 + /* everything relevant is now saved off, copy in the new policy */
91684 + if (init_variables(args, true)) {
91685 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_INITF_ACL_MSG, GR_VERSION);
91686 + err = -ENOMEM;
91687 + goto error;
91688 + }
91689 +
91690 + err = copy_user_acl(args);
91691 + free_init_variables();
91692 + if (err)
91693 + goto error;
91694 + /* the new policy is copied in, with the old policy available via saved_state
91695 + first go through applying roles, making sure to preserve special roles
91696 + then apply new subjects, making sure to preserve inherited and nested subjects,
91697 + though currently only inherited subjects will be preserved
91698 + */
91699 + err = stop_machine(gracl_reload_apply_policies, &new_reload_state, NULL);
91700 + if (err)
91701 + goto error;
91702 +
91703 + /* we've now applied the new policy, so restore the old policy state to free it */
91704 + polstate = &new_reload_state.oldpolicy;
91705 + current_alloc_state = &new_reload_state.oldalloc;
91706 + free_variables(true);
91707 +
91708 + /* oldpolicy/oldalloc_ptr point to the new policy/alloc states as they were copied
91709 + to running_polstate/current_alloc_state inside stop_machine
91710 + */
91711 + err = 0;
91712 + goto out;
91713 +error:
91714 + /* on error of loading the new policy, we'll just keep the previous
91715 + policy set around
91716 + */
91717 + free_variables(true);
91718 +
91719 + /* doesn't affect runtime, but maintains consistent state */
91720 +out:
91721 + polstate = new_reload_state.oldpolicy_ptr;
91722 + current_alloc_state = new_reload_state.oldalloc_ptr;
91723 +
91724 + return err;
91725 +}
91726 +
91727 +static int
91728 +gracl_init(struct gr_arg *args)
91729 +{
91730 + int error = 0;
91731 +
91732 + memcpy(gr_system_salt, args->salt, GR_SALT_LEN);
91733 + memcpy(gr_system_sum, args->sum, GR_SHA_LEN);
91734 +
91735 + if (init_variables(args, false)) {
91736 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_INITF_ACL_MSG, GR_VERSION);
91737 + error = -ENOMEM;
91738 + goto out;
91739 + }
91740 +
91741 + error = copy_user_acl(args);
91742 + free_init_variables();
91743 + if (error)
91744 + goto out;
91745 +
91746 + error = gr_set_acls(0);
91747 + if (error)
91748 + goto out;
91749 +
91750 + gr_enable_rbac_system();
91751 +
91752 + return 0;
91753 +
91754 +out:
91755 + free_variables(false);
91756 + return error;
91757 +}
91758 +
91759 +static int
91760 +lookup_special_role_auth(__u16 mode, const char *rolename, unsigned char **salt,
91761 + unsigned char **sum)
91762 +{
91763 + struct acl_role_label *r;
91764 + struct role_allowed_ip *ipp;
91765 + struct role_transition *trans;
91766 + unsigned int i;
91767 + int found = 0;
91768 + u32 curr_ip = current->signal->curr_ip;
91769 +
91770 + current->signal->saved_ip = curr_ip;
91771 +
91772 + /* check transition table */
91773 +
91774 + for (trans = current->role->transitions; trans; trans = trans->next) {
91775 + if (!strcmp(rolename, trans->rolename)) {
91776 + found = 1;
91777 + break;
91778 + }
91779 + }
91780 +
91781 + if (!found)
91782 + return 0;
91783 +
91784 + /* handle special roles that do not require authentication
91785 + and check ip */
91786 +
91787 + FOR_EACH_ROLE_START(r)
91788 + if (!strcmp(rolename, r->rolename) &&
91789 + (r->roletype & GR_ROLE_SPECIAL)) {
91790 + found = 0;
91791 + if (r->allowed_ips != NULL) {
91792 + for (ipp = r->allowed_ips; ipp; ipp = ipp->next) {
91793 + if ((ntohl(curr_ip) & ipp->netmask) ==
91794 + (ntohl(ipp->addr) & ipp->netmask))
91795 + found = 1;
91796 + }
91797 + } else
91798 + found = 2;
91799 + if (!found)
91800 + return 0;
91801 +
91802 + if (((mode == GR_SPROLE) && (r->roletype & GR_ROLE_NOPW)) ||
91803 + ((mode == GR_SPROLEPAM) && (r->roletype & GR_ROLE_PAM))) {
91804 + *salt = NULL;
91805 + *sum = NULL;
91806 + return 1;
91807 + }
91808 + }
91809 + FOR_EACH_ROLE_END(r)
91810 +
91811 + for (i = 0; i < polstate->num_sprole_pws; i++) {
91812 + if (!strcmp(rolename, polstate->acl_special_roles[i]->rolename)) {
91813 + *salt = polstate->acl_special_roles[i]->salt;
91814 + *sum = polstate->acl_special_roles[i]->sum;
91815 + return 1;
91816 + }
91817 + }
91818 +
91819 + return 0;
91820 +}
91821 +
91822 +int gr_check_secure_terminal(struct task_struct *task)
91823 +{
91824 + struct task_struct *p, *p2, *p3;
91825 + struct files_struct *files;
91826 + struct fdtable *fdt;
91827 + struct file *our_file = NULL, *file;
91828 + struct inode *our_inode = NULL;
91829 + int i;
91830 +
91831 + if (task->signal->tty == NULL)
91832 + return 1;
91833 +
91834 + files = get_files_struct(task);
91835 + if (files != NULL) {
91836 + rcu_read_lock();
91837 + fdt = files_fdtable(files);
91838 + for (i=0; i < fdt->max_fds; i++) {
91839 + file = fcheck_files(files, i);
91840 + if (file && (our_file == NULL) && (file->private_data == task->signal->tty)) {
91841 + get_file(file);
91842 + our_file = file;
91843 + }
91844 + }
91845 + rcu_read_unlock();
91846 + put_files_struct(files);
91847 + }
91848 +
91849 + if (our_file == NULL)
91850 + return 1;
91851 +
91852 + our_inode = d_backing_inode(our_file->f_path.dentry);
91853 +
91854 + read_lock(&tasklist_lock);
91855 + do_each_thread(p2, p) {
91856 + files = get_files_struct(p);
91857 + if (files == NULL ||
91858 + (p->signal && p->signal->tty == task->signal->tty)) {
91859 + if (files != NULL)
91860 + put_files_struct(files);
91861 + continue;
91862 + }
91863 + rcu_read_lock();
91864 + fdt = files_fdtable(files);
91865 + for (i=0; i < fdt->max_fds; i++) {
91866 + struct inode *inode = NULL;
91867 + file = fcheck_files(files, i);
91868 + if (file)
91869 + inode = d_backing_inode(file->f_path.dentry);
91870 + if (inode && S_ISCHR(inode->i_mode) && inode->i_rdev == our_inode->i_rdev) {
91871 + p3 = task;
91872 + while (task_pid_nr(p3) > 0) {
91873 + if (p3 == p)
91874 + break;
91875 + p3 = p3->real_parent;
91876 + }
91877 + if (p3 == p)
91878 + break;
91879 + gr_log_ttysniff(GR_DONT_AUDIT_GOOD, GR_TTYSNIFF_ACL_MSG, p);
91880 + gr_handle_alertkill(p);
91881 + rcu_read_unlock();
91882 + put_files_struct(files);
91883 + read_unlock(&tasklist_lock);
91884 + fput(our_file);
91885 + return 0;
91886 + }
91887 + }
91888 + rcu_read_unlock();
91889 + put_files_struct(files);
91890 + } while_each_thread(p2, p);
91891 + read_unlock(&tasklist_lock);
91892 +
91893 + fput(our_file);
91894 + return 1;
91895 +}
91896 +
91897 +ssize_t
91898 +write_grsec_handler(struct file *file, const char __user * buf, size_t count, loff_t *ppos)
91899 +{
91900 + struct gr_arg_wrapper uwrap;
91901 + unsigned char *sprole_salt = NULL;
91902 + unsigned char *sprole_sum = NULL;
91903 + int error = 0;
91904 + int error2 = 0;
91905 + size_t req_count = 0;
91906 + unsigned char oldmode = 0;
91907 +
91908 + mutex_lock(&gr_dev_mutex);
91909 +
91910 + if (gr_acl_is_enabled() && !(current->acl->mode & GR_KERNELAUTH)) {
91911 + error = -EPERM;
91912 + goto out;
91913 + }
91914 +
91915 +#ifdef CONFIG_COMPAT
91916 + pax_open_kernel();
91917 + if (is_compat_task()) {
91918 + copy_gr_arg_wrapper = &copy_gr_arg_wrapper_compat;
91919 + copy_gr_arg = &copy_gr_arg_compat;
91920 + copy_acl_object_label = &copy_acl_object_label_compat;
91921 + copy_acl_subject_label = &copy_acl_subject_label_compat;
91922 + copy_acl_role_label = &copy_acl_role_label_compat;
91923 + copy_acl_ip_label = &copy_acl_ip_label_compat;
91924 + copy_role_allowed_ip = &copy_role_allowed_ip_compat;
91925 + copy_role_transition = &copy_role_transition_compat;
91926 + copy_sprole_pw = &copy_sprole_pw_compat;
91927 + copy_gr_hash_struct = &copy_gr_hash_struct_compat;
91928 + copy_pointer_from_array = &copy_pointer_from_array_compat;
91929 + get_gr_arg_wrapper_size = &get_gr_arg_wrapper_size_compat;
91930 + } else {
91931 + copy_gr_arg_wrapper = &copy_gr_arg_wrapper_normal;
91932 + copy_gr_arg = &copy_gr_arg_normal;
91933 + copy_acl_object_label = &copy_acl_object_label_normal;
91934 + copy_acl_subject_label = &copy_acl_subject_label_normal;
91935 + copy_acl_role_label = &copy_acl_role_label_normal;
91936 + copy_acl_ip_label = &copy_acl_ip_label_normal;
91937 + copy_role_allowed_ip = &copy_role_allowed_ip_normal;
91938 + copy_role_transition = &copy_role_transition_normal;
91939 + copy_sprole_pw = &copy_sprole_pw_normal;
91940 + copy_gr_hash_struct = &copy_gr_hash_struct_normal;
91941 + copy_pointer_from_array = &copy_pointer_from_array_normal;
91942 + get_gr_arg_wrapper_size = &get_gr_arg_wrapper_size_normal;
91943 + }
91944 + pax_close_kernel();
91945 +#endif
91946 +
91947 + req_count = get_gr_arg_wrapper_size();
91948 +
91949 + if (count != req_count) {
91950 + gr_log_int_int(GR_DONT_AUDIT_GOOD, GR_DEV_ACL_MSG, (int)count, (int)req_count);
91951 + error = -EINVAL;
91952 + goto out;
91953 + }
91954 +
91955 +
91956 + if (gr_auth_expires && time_after_eq(get_seconds(), gr_auth_expires)) {
91957 + gr_auth_expires = 0;
91958 + gr_auth_attempts = 0;
91959 + }
91960 +
91961 + error = copy_gr_arg_wrapper(buf, &uwrap);
91962 + if (error)
91963 + goto out;
91964 +
91965 + error = copy_gr_arg(uwrap.arg, gr_usermode);
91966 + if (error)
91967 + goto out;
91968 +
91969 + if (gr_usermode->mode != GR_SPROLE && gr_usermode->mode != GR_SPROLEPAM &&
91970 + gr_auth_attempts >= CONFIG_GRKERNSEC_ACL_MAXTRIES &&
91971 + time_after(gr_auth_expires, get_seconds())) {
91972 + error = -EBUSY;
91973 + goto out;
91974 + }
91975 +
91976 + /* if non-root trying to do anything other than use a special role,
91977 + do not attempt authentication, do not count towards authentication
91978 + locking
91979 + */
91980 +
91981 + if (gr_usermode->mode != GR_SPROLE && gr_usermode->mode != GR_STATUS &&
91982 + gr_usermode->mode != GR_UNSPROLE && gr_usermode->mode != GR_SPROLEPAM &&
91983 + gr_is_global_nonroot(current_uid())) {
91984 + error = -EPERM;
91985 + goto out;
91986 + }
91987 +
91988 + /* ensure pw and special role name are null terminated */
91989 +
91990 + gr_usermode->pw[GR_PW_LEN - 1] = '\0';
91991 + gr_usermode->sp_role[GR_SPROLE_LEN - 1] = '\0';
91992 +
91993 + /* Okay.
91994 + * We have our enough of the argument structure..(we have yet
91995 + * to copy_from_user the tables themselves) . Copy the tables
91996 + * only if we need them, i.e. for loading operations. */
91997 +
91998 + switch (gr_usermode->mode) {
91999 + case GR_STATUS:
92000 + if (gr_acl_is_enabled()) {
92001 + error = 1;
92002 + if (!gr_check_secure_terminal(current))
92003 + error = 3;
92004 + } else
92005 + error = 2;
92006 + goto out;
92007 + case GR_SHUTDOWN:
92008 + if (gr_acl_is_enabled() && !(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
92009 + stop_machine(gr_rbac_disable, NULL, NULL);
92010 + free_variables(false);
92011 + memset(gr_usermode, 0, sizeof(struct gr_arg));
92012 + memset(gr_system_salt, 0, GR_SALT_LEN);
92013 + memset(gr_system_sum, 0, GR_SHA_LEN);
92014 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTS_ACL_MSG);
92015 + } else if (gr_acl_is_enabled()) {
92016 + gr_log_noargs(GR_DONT_AUDIT, GR_SHUTF_ACL_MSG);
92017 + error = -EPERM;
92018 + } else {
92019 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SHUTI_ACL_MSG);
92020 + error = -EAGAIN;
92021 + }
92022 + break;
92023 + case GR_ENABLE:
92024 + if (!gr_acl_is_enabled() && !(error2 = gracl_init(gr_usermode)))
92025 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_ENABLE_ACL_MSG, GR_VERSION);
92026 + else {
92027 + if (gr_acl_is_enabled())
92028 + error = -EAGAIN;
92029 + else
92030 + error = error2;
92031 + gr_log_str(GR_DONT_AUDIT, GR_ENABLEF_ACL_MSG, GR_VERSION);
92032 + }
92033 + break;
92034 + case GR_OLDRELOAD:
92035 + oldmode = 1;
92036 + case GR_RELOAD:
92037 + if (!gr_acl_is_enabled()) {
92038 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_RELOADI_ACL_MSG, GR_VERSION);
92039 + error = -EAGAIN;
92040 + } else if (!(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
92041 + error2 = gracl_reload(gr_usermode, oldmode);
92042 + if (!error2)
92043 + gr_log_str(GR_DONT_AUDIT_GOOD, GR_RELOAD_ACL_MSG, GR_VERSION);
92044 + else {
92045 + gr_log_str(GR_DONT_AUDIT, GR_RELOADF_ACL_MSG, GR_VERSION);
92046 + error = error2;
92047 + }
92048 + } else {
92049 + gr_log_str(GR_DONT_AUDIT, GR_RELOADF_ACL_MSG, GR_VERSION);
92050 + error = -EPERM;
92051 + }
92052 + break;
92053 + case GR_SEGVMOD:
92054 + if (unlikely(!gr_acl_is_enabled())) {
92055 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SEGVMODI_ACL_MSG);
92056 + error = -EAGAIN;
92057 + break;
92058 + }
92059 +
92060 + if (!(chkpw(gr_usermode, gr_system_salt, gr_system_sum))) {
92061 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SEGVMODS_ACL_MSG);
92062 + if (gr_usermode->segv_device && gr_usermode->segv_inode) {
92063 + struct acl_subject_label *segvacl;
92064 + segvacl =
92065 + lookup_acl_subj_label(gr_usermode->segv_inode,
92066 + gr_usermode->segv_device,
92067 + current->role);
92068 + if (segvacl) {
92069 + segvacl->crashes = 0;
92070 + segvacl->expires = 0;
92071 + }
92072 + } else if (gr_find_uid(gr_usermode->segv_uid) >= 0) {
92073 + gr_remove_uid(gr_usermode->segv_uid);
92074 + }
92075 + } else {
92076 + gr_log_noargs(GR_DONT_AUDIT, GR_SEGVMODF_ACL_MSG);
92077 + error = -EPERM;
92078 + }
92079 + break;
92080 + case GR_SPROLE:
92081 + case GR_SPROLEPAM:
92082 + if (unlikely(!gr_acl_is_enabled())) {
92083 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_SPROLEI_ACL_MSG);
92084 + error = -EAGAIN;
92085 + break;
92086 + }
92087 +
92088 + if (current->role->expires && time_after_eq(get_seconds(), current->role->expires)) {
92089 + current->role->expires = 0;
92090 + current->role->auth_attempts = 0;
92091 + }
92092 +
92093 + if (current->role->auth_attempts >= CONFIG_GRKERNSEC_ACL_MAXTRIES &&
92094 + time_after(current->role->expires, get_seconds())) {
92095 + error = -EBUSY;
92096 + goto out;
92097 + }
92098 +
92099 + if (lookup_special_role_auth
92100 + (gr_usermode->mode, gr_usermode->sp_role, &sprole_salt, &sprole_sum)
92101 + && ((!sprole_salt && !sprole_sum)
92102 + || !(chkpw(gr_usermode, sprole_salt, sprole_sum)))) {
92103 + char *p = "";
92104 + assign_special_role(gr_usermode->sp_role);
92105 + read_lock(&tasklist_lock);
92106 + if (current->real_parent)
92107 + p = current->real_parent->role->rolename;
92108 + read_unlock(&tasklist_lock);
92109 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_SPROLES_ACL_MSG,
92110 + p, acl_sp_role_value);
92111 + } else {
92112 + gr_log_str(GR_DONT_AUDIT, GR_SPROLEF_ACL_MSG, gr_usermode->sp_role);
92113 + error = -EPERM;
92114 + if(!(current->role->auth_attempts++))
92115 + current->role->expires = get_seconds() + CONFIG_GRKERNSEC_ACL_TIMEOUT;
92116 +
92117 + goto out;
92118 + }
92119 + break;
92120 + case GR_UNSPROLE:
92121 + if (unlikely(!gr_acl_is_enabled())) {
92122 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_UNSPROLEI_ACL_MSG);
92123 + error = -EAGAIN;
92124 + break;
92125 + }
92126 +
92127 + if (current->role->roletype & GR_ROLE_SPECIAL) {
92128 + char *p = "";
92129 + int i = 0;
92130 +
92131 + read_lock(&tasklist_lock);
92132 + if (current->real_parent) {
92133 + p = current->real_parent->role->rolename;
92134 + i = current->real_parent->acl_role_id;
92135 + }
92136 + read_unlock(&tasklist_lock);
92137 +
92138 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_UNSPROLES_ACL_MSG, p, i);
92139 + gr_set_acls(1);
92140 + } else {
92141 + error = -EPERM;
92142 + goto out;
92143 + }
92144 + break;
92145 + default:
92146 + gr_log_int(GR_DONT_AUDIT, GR_INVMODE_ACL_MSG, gr_usermode->mode);
92147 + error = -EINVAL;
92148 + break;
92149 + }
92150 +
92151 + if (error != -EPERM)
92152 + goto out;
92153 +
92154 + if(!(gr_auth_attempts++))
92155 + gr_auth_expires = get_seconds() + CONFIG_GRKERNSEC_ACL_TIMEOUT;
92156 +
92157 + out:
92158 + mutex_unlock(&gr_dev_mutex);
92159 +
92160 + if (!error)
92161 + error = req_count;
92162 +
92163 + return error;
92164 +}
92165 +
92166 +int
92167 +gr_set_acls(const int type)
92168 +{
92169 + struct task_struct *task, *task2;
92170 + struct acl_role_label *role = current->role;
92171 + struct acl_subject_label *subj;
92172 + __u16 acl_role_id = current->acl_role_id;
92173 + const struct cred *cred;
92174 + int ret;
92175 +
92176 + rcu_read_lock();
92177 + read_lock(&tasklist_lock);
92178 + read_lock(&grsec_exec_file_lock);
92179 + do_each_thread(task2, task) {
92180 + /* check to see if we're called from the exit handler,
92181 + if so, only replace ACLs that have inherited the admin
92182 + ACL */
92183 +
92184 + if (type && (task->role != role ||
92185 + task->acl_role_id != acl_role_id))
92186 + continue;
92187 +
92188 + task->acl_role_id = 0;
92189 + task->acl_sp_role = 0;
92190 + task->inherited = 0;
92191 +
92192 + if (task->exec_file) {
92193 + cred = __task_cred(task);
92194 + task->role = __lookup_acl_role_label(polstate, task, GR_GLOBAL_UID(cred->uid), GR_GLOBAL_GID(cred->gid));
92195 + subj = __gr_get_subject_for_task(polstate, task, NULL, 1);
92196 + if (subj == NULL) {
92197 + ret = -EINVAL;
92198 + read_unlock(&grsec_exec_file_lock);
92199 + read_unlock(&tasklist_lock);
92200 + rcu_read_unlock();
92201 + gr_log_str_int(GR_DONT_AUDIT_GOOD, GR_DEFACL_MSG, task->comm, task_pid_nr(task));
92202 + return ret;
92203 + }
92204 + __gr_apply_subject_to_task(polstate, task, subj);
92205 + } else {
92206 + // it's a kernel process
92207 + task->role = polstate->kernel_role;
92208 + task->acl = polstate->kernel_role->root_label;
92209 +#ifdef CONFIG_GRKERNSEC_ACL_HIDEKERN
92210 + task->acl->mode &= ~GR_PROCFIND;
92211 +#endif
92212 + }
92213 + } while_each_thread(task2, task);
92214 + read_unlock(&grsec_exec_file_lock);
92215 + read_unlock(&tasklist_lock);
92216 + rcu_read_unlock();
92217 +
92218 + return 0;
92219 +}
92220 diff --git a/grsecurity/gracl_res.c b/grsecurity/gracl_res.c
92221 new file mode 100644
92222 index 0000000..39645c9
92223 --- /dev/null
92224 +++ b/grsecurity/gracl_res.c
92225 @@ -0,0 +1,68 @@
92226 +#include <linux/kernel.h>
92227 +#include <linux/sched.h>
92228 +#include <linux/gracl.h>
92229 +#include <linux/grinternal.h>
92230 +
92231 +static const char *restab_log[] = {
92232 + [RLIMIT_CPU] = "RLIMIT_CPU",
92233 + [RLIMIT_FSIZE] = "RLIMIT_FSIZE",
92234 + [RLIMIT_DATA] = "RLIMIT_DATA",
92235 + [RLIMIT_STACK] = "RLIMIT_STACK",
92236 + [RLIMIT_CORE] = "RLIMIT_CORE",
92237 + [RLIMIT_RSS] = "RLIMIT_RSS",
92238 + [RLIMIT_NPROC] = "RLIMIT_NPROC",
92239 + [RLIMIT_NOFILE] = "RLIMIT_NOFILE",
92240 + [RLIMIT_MEMLOCK] = "RLIMIT_MEMLOCK",
92241 + [RLIMIT_AS] = "RLIMIT_AS",
92242 + [RLIMIT_LOCKS] = "RLIMIT_LOCKS",
92243 + [RLIMIT_SIGPENDING] = "RLIMIT_SIGPENDING",
92244 + [RLIMIT_MSGQUEUE] = "RLIMIT_MSGQUEUE",
92245 + [RLIMIT_NICE] = "RLIMIT_NICE",
92246 + [RLIMIT_RTPRIO] = "RLIMIT_RTPRIO",
92247 + [RLIMIT_RTTIME] = "RLIMIT_RTTIME",
92248 + [GR_CRASH_RES] = "RLIMIT_CRASH"
92249 +};
92250 +
92251 +void
92252 +gr_log_resource(const struct task_struct *task,
92253 + const int res, const unsigned long wanted, const int gt)
92254 +{
92255 + const struct cred *cred;
92256 + unsigned long rlim;
92257 +
92258 + if (!gr_acl_is_enabled() && !grsec_resource_logging)
92259 + return;
92260 +
92261 + // not yet supported resource
92262 + if (unlikely(!restab_log[res]))
92263 + return;
92264 +
92265 + if (res == RLIMIT_CPU || res == RLIMIT_RTTIME)
92266 + rlim = task_rlimit_max(task, res);
92267 + else
92268 + rlim = task_rlimit(task, res);
92269 +
92270 + if (likely((rlim == RLIM_INFINITY) || (gt && wanted <= rlim) || (!gt && wanted < rlim)))
92271 + return;
92272 +
92273 + rcu_read_lock();
92274 + cred = __task_cred(task);
92275 +
92276 + if (res == RLIMIT_NPROC &&
92277 + (cap_raised(cred->cap_effective, CAP_SYS_ADMIN) ||
92278 + cap_raised(cred->cap_effective, CAP_SYS_RESOURCE)))
92279 + goto out_rcu_unlock;
92280 + else if (res == RLIMIT_MEMLOCK &&
92281 + cap_raised(cred->cap_effective, CAP_IPC_LOCK))
92282 + goto out_rcu_unlock;
92283 + else if (res == RLIMIT_NICE && cap_raised(cred->cap_effective, CAP_SYS_NICE))
92284 + goto out_rcu_unlock;
92285 + rcu_read_unlock();
92286 +
92287 + gr_log_res_ulong2_str(GR_DONT_AUDIT, GR_RESOURCE_MSG, task, wanted, restab_log[res], rlim);
92288 +
92289 + return;
92290 +out_rcu_unlock:
92291 + rcu_read_unlock();
92292 + return;
92293 +}
92294 diff --git a/grsecurity/gracl_segv.c b/grsecurity/gracl_segv.c
92295 new file mode 100644
92296 index 0000000..21646aa
92297 --- /dev/null
92298 +++ b/grsecurity/gracl_segv.c
92299 @@ -0,0 +1,304 @@
92300 +#include <linux/kernel.h>
92301 +#include <linux/mm.h>
92302 +#include <asm/uaccess.h>
92303 +#include <asm/errno.h>
92304 +#include <asm/mman.h>
92305 +#include <net/sock.h>
92306 +#include <linux/file.h>
92307 +#include <linux/fs.h>
92308 +#include <linux/net.h>
92309 +#include <linux/in.h>
92310 +#include <linux/slab.h>
92311 +#include <linux/types.h>
92312 +#include <linux/sched.h>
92313 +#include <linux/timer.h>
92314 +#include <linux/gracl.h>
92315 +#include <linux/grsecurity.h>
92316 +#include <linux/grinternal.h>
92317 +#if defined(CONFIG_BTRFS_FS) || defined(CONFIG_BTRFS_FS_MODULE)
92318 +#include <linux/magic.h>
92319 +#include <linux/pagemap.h>
92320 +#include "../fs/btrfs/async-thread.h"
92321 +#include "../fs/btrfs/ctree.h"
92322 +#include "../fs/btrfs/btrfs_inode.h"
92323 +#endif
92324 +
92325 +static struct crash_uid *uid_set;
92326 +static unsigned short uid_used;
92327 +static DEFINE_SPINLOCK(gr_uid_lock);
92328 +extern rwlock_t gr_inode_lock;
92329 +extern struct acl_subject_label *
92330 + lookup_acl_subj_label(const u64 inode, const dev_t dev,
92331 + struct acl_role_label *role);
92332 +
92333 +int
92334 +gr_init_uidset(void)
92335 +{
92336 + uid_set =
92337 + kmalloc(GR_UIDTABLE_MAX * sizeof (struct crash_uid), GFP_KERNEL);
92338 + uid_used = 0;
92339 +
92340 + return uid_set ? 1 : 0;
92341 +}
92342 +
92343 +void
92344 +gr_free_uidset(void)
92345 +{
92346 + if (uid_set) {
92347 + struct crash_uid *tmpset;
92348 + spin_lock(&gr_uid_lock);
92349 + tmpset = uid_set;
92350 + uid_set = NULL;
92351 + uid_used = 0;
92352 + spin_unlock(&gr_uid_lock);
92353 + if (tmpset)
92354 + kfree(tmpset);
92355 + }
92356 +
92357 + return;
92358 +}
92359 +
92360 +int
92361 +gr_find_uid(const uid_t uid)
92362 +{
92363 + struct crash_uid *tmp = uid_set;
92364 + uid_t buid;
92365 + int low = 0, high = uid_used - 1, mid;
92366 +
92367 + while (high >= low) {
92368 + mid = (low + high) >> 1;
92369 + buid = tmp[mid].uid;
92370 + if (buid == uid)
92371 + return mid;
92372 + if (buid > uid)
92373 + high = mid - 1;
92374 + if (buid < uid)
92375 + low = mid + 1;
92376 + }
92377 +
92378 + return -1;
92379 +}
92380 +
92381 +static void
92382 +gr_insertsort(void)
92383 +{
92384 + unsigned short i, j;
92385 + struct crash_uid index;
92386 +
92387 + for (i = 1; i < uid_used; i++) {
92388 + index = uid_set[i];
92389 + j = i;
92390 + while ((j > 0) && uid_set[j - 1].uid > index.uid) {
92391 + uid_set[j] = uid_set[j - 1];
92392 + j--;
92393 + }
92394 + uid_set[j] = index;
92395 + }
92396 +
92397 + return;
92398 +}
92399 +
92400 +static void
92401 +gr_insert_uid(const kuid_t kuid, const unsigned long expires)
92402 +{
92403 + int loc;
92404 + uid_t uid = GR_GLOBAL_UID(kuid);
92405 +
92406 + if (uid_used == GR_UIDTABLE_MAX)
92407 + return;
92408 +
92409 + loc = gr_find_uid(uid);
92410 +
92411 + if (loc >= 0) {
92412 + uid_set[loc].expires = expires;
92413 + return;
92414 + }
92415 +
92416 + uid_set[uid_used].uid = uid;
92417 + uid_set[uid_used].expires = expires;
92418 + uid_used++;
92419 +
92420 + gr_insertsort();
92421 +
92422 + return;
92423 +}
92424 +
92425 +void
92426 +gr_remove_uid(const unsigned short loc)
92427 +{
92428 + unsigned short i;
92429 +
92430 + for (i = loc + 1; i < uid_used; i++)
92431 + uid_set[i - 1] = uid_set[i];
92432 +
92433 + uid_used--;
92434 +
92435 + return;
92436 +}
92437 +
92438 +int
92439 +gr_check_crash_uid(const kuid_t kuid)
92440 +{
92441 + int loc;
92442 + int ret = 0;
92443 + uid_t uid;
92444 +
92445 + if (unlikely(!gr_acl_is_enabled()))
92446 + return 0;
92447 +
92448 + uid = GR_GLOBAL_UID(kuid);
92449 +
92450 + spin_lock(&gr_uid_lock);
92451 + loc = gr_find_uid(uid);
92452 +
92453 + if (loc < 0)
92454 + goto out_unlock;
92455 +
92456 + if (time_before_eq(uid_set[loc].expires, get_seconds()))
92457 + gr_remove_uid(loc);
92458 + else
92459 + ret = 1;
92460 +
92461 +out_unlock:
92462 + spin_unlock(&gr_uid_lock);
92463 + return ret;
92464 +}
92465 +
92466 +static int
92467 +proc_is_setxid(const struct cred *cred)
92468 +{
92469 + if (!uid_eq(cred->uid, cred->euid) || !uid_eq(cred->uid, cred->suid) ||
92470 + !uid_eq(cred->uid, cred->fsuid))
92471 + return 1;
92472 + if (!gid_eq(cred->gid, cred->egid) || !gid_eq(cred->gid, cred->sgid) ||
92473 + !gid_eq(cred->gid, cred->fsgid))
92474 + return 1;
92475 +
92476 + return 0;
92477 +}
92478 +
92479 +extern int gr_fake_force_sig(int sig, struct task_struct *t);
92480 +
92481 +void
92482 +gr_handle_crash(struct task_struct *task, const int sig)
92483 +{
92484 + struct acl_subject_label *curr;
92485 + struct task_struct *tsk, *tsk2;
92486 + const struct cred *cred;
92487 + const struct cred *cred2;
92488 +
92489 + if (sig != SIGSEGV && sig != SIGKILL && sig != SIGBUS && sig != SIGILL)
92490 + return;
92491 +
92492 + if (unlikely(!gr_acl_is_enabled()))
92493 + return;
92494 +
92495 + curr = task->acl;
92496 +
92497 + if (!(curr->resmask & (1U << GR_CRASH_RES)))
92498 + return;
92499 +
92500 + if (time_before_eq(curr->expires, get_seconds())) {
92501 + curr->expires = 0;
92502 + curr->crashes = 0;
92503 + }
92504 +
92505 + curr->crashes++;
92506 +
92507 + if (!curr->expires)
92508 + curr->expires = get_seconds() + curr->res[GR_CRASH_RES].rlim_max;
92509 +
92510 + if ((curr->crashes >= curr->res[GR_CRASH_RES].rlim_cur) &&
92511 + time_after(curr->expires, get_seconds())) {
92512 + rcu_read_lock();
92513 + cred = __task_cred(task);
92514 + if (gr_is_global_nonroot(cred->uid) && proc_is_setxid(cred)) {
92515 + gr_log_crash1(GR_DONT_AUDIT, GR_SEGVSTART_ACL_MSG, task, curr->res[GR_CRASH_RES].rlim_max);
92516 + spin_lock(&gr_uid_lock);
92517 + gr_insert_uid(cred->uid, curr->expires);
92518 + spin_unlock(&gr_uid_lock);
92519 + curr->expires = 0;
92520 + curr->crashes = 0;
92521 + read_lock(&tasklist_lock);
92522 + do_each_thread(tsk2, tsk) {
92523 + cred2 = __task_cred(tsk);
92524 + if (tsk != task && uid_eq(cred2->uid, cred->uid))
92525 + gr_fake_force_sig(SIGKILL, tsk);
92526 + } while_each_thread(tsk2, tsk);
92527 + read_unlock(&tasklist_lock);
92528 + } else {
92529 + gr_log_crash2(GR_DONT_AUDIT, GR_SEGVNOSUID_ACL_MSG, task, curr->res[GR_CRASH_RES].rlim_max);
92530 + read_lock(&tasklist_lock);
92531 + read_lock(&grsec_exec_file_lock);
92532 + do_each_thread(tsk2, tsk) {
92533 + if (likely(tsk != task)) {
92534 + // if this thread has the same subject as the one that triggered
92535 + // RES_CRASH and it's the same binary, kill it
92536 + if (tsk->acl == task->acl && gr_is_same_file(tsk->exec_file, task->exec_file))
92537 + gr_fake_force_sig(SIGKILL, tsk);
92538 + }
92539 + } while_each_thread(tsk2, tsk);
92540 + read_unlock(&grsec_exec_file_lock);
92541 + read_unlock(&tasklist_lock);
92542 + }
92543 + rcu_read_unlock();
92544 + }
92545 +
92546 + return;
92547 +}
92548 +
92549 +int
92550 +gr_check_crash_exec(const struct file *filp)
92551 +{
92552 + struct acl_subject_label *curr;
92553 + struct dentry *dentry;
92554 +
92555 + if (unlikely(!gr_acl_is_enabled()))
92556 + return 0;
92557 +
92558 + read_lock(&gr_inode_lock);
92559 + dentry = filp->f_path.dentry;
92560 + curr = lookup_acl_subj_label(gr_get_ino_from_dentry(dentry), gr_get_dev_from_dentry(dentry),
92561 + current->role);
92562 + read_unlock(&gr_inode_lock);
92563 +
92564 + if (!curr || !(curr->resmask & (1U << GR_CRASH_RES)) ||
92565 + (!curr->crashes && !curr->expires))
92566 + return 0;
92567 +
92568 + if ((curr->crashes >= curr->res[GR_CRASH_RES].rlim_cur) &&
92569 + time_after(curr->expires, get_seconds()))
92570 + return 1;
92571 + else if (time_before_eq(curr->expires, get_seconds())) {
92572 + curr->crashes = 0;
92573 + curr->expires = 0;
92574 + }
92575 +
92576 + return 0;
92577 +}
92578 +
92579 +void
92580 +gr_handle_alertkill(struct task_struct *task)
92581 +{
92582 + struct acl_subject_label *curracl;
92583 + __u32 curr_ip;
92584 + struct task_struct *p, *p2;
92585 +
92586 + if (unlikely(!gr_acl_is_enabled()))
92587 + return;
92588 +
92589 + curracl = task->acl;
92590 + curr_ip = task->signal->curr_ip;
92591 +
92592 + if ((curracl->mode & GR_KILLIPPROC) && curr_ip) {
92593 + read_lock(&tasklist_lock);
92594 + do_each_thread(p2, p) {
92595 + if (p->signal->curr_ip == curr_ip)
92596 + gr_fake_force_sig(SIGKILL, p);
92597 + } while_each_thread(p2, p);
92598 + read_unlock(&tasklist_lock);
92599 + } else if (curracl->mode & GR_KILLPROC)
92600 + gr_fake_force_sig(SIGKILL, task);
92601 +
92602 + return;
92603 +}
92604 diff --git a/grsecurity/gracl_shm.c b/grsecurity/gracl_shm.c
92605 new file mode 100644
92606 index 0000000..6b0c9cc
92607 --- /dev/null
92608 +++ b/grsecurity/gracl_shm.c
92609 @@ -0,0 +1,40 @@
92610 +#include <linux/kernel.h>
92611 +#include <linux/mm.h>
92612 +#include <linux/sched.h>
92613 +#include <linux/file.h>
92614 +#include <linux/ipc.h>
92615 +#include <linux/gracl.h>
92616 +#include <linux/grsecurity.h>
92617 +#include <linux/grinternal.h>
92618 +
92619 +int
92620 +gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
92621 + const u64 shm_createtime, const kuid_t cuid, const int shmid)
92622 +{
92623 + struct task_struct *task;
92624 +
92625 + if (!gr_acl_is_enabled())
92626 + return 1;
92627 +
92628 + rcu_read_lock();
92629 + read_lock(&tasklist_lock);
92630 +
92631 + task = find_task_by_vpid(shm_cprid);
92632 +
92633 + if (unlikely(!task))
92634 + task = find_task_by_vpid(shm_lapid);
92635 +
92636 + if (unlikely(task && (time_before_eq64(task->start_time, shm_createtime) ||
92637 + (task_pid_nr(task) == shm_lapid)) &&
92638 + (task->acl->mode & GR_PROTSHM) &&
92639 + (task->acl != current->acl))) {
92640 + read_unlock(&tasklist_lock);
92641 + rcu_read_unlock();
92642 + gr_log_int3(GR_DONT_AUDIT, GR_SHMAT_ACL_MSG, GR_GLOBAL_UID(cuid), shm_cprid, shmid);
92643 + return 0;
92644 + }
92645 + read_unlock(&tasklist_lock);
92646 + rcu_read_unlock();
92647 +
92648 + return 1;
92649 +}
92650 diff --git a/grsecurity/grsec_chdir.c b/grsecurity/grsec_chdir.c
92651 new file mode 100644
92652 index 0000000..bc0be01
92653 --- /dev/null
92654 +++ b/grsecurity/grsec_chdir.c
92655 @@ -0,0 +1,19 @@
92656 +#include <linux/kernel.h>
92657 +#include <linux/sched.h>
92658 +#include <linux/fs.h>
92659 +#include <linux/file.h>
92660 +#include <linux/grsecurity.h>
92661 +#include <linux/grinternal.h>
92662 +
92663 +void
92664 +gr_log_chdir(const struct dentry *dentry, const struct vfsmount *mnt)
92665 +{
92666 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
92667 + if ((grsec_enable_chdir && grsec_enable_group &&
92668 + in_group_p(grsec_audit_gid)) || (grsec_enable_chdir &&
92669 + !grsec_enable_group)) {
92670 + gr_log_fs_generic(GR_DO_AUDIT, GR_CHDIR_AUDIT_MSG, dentry, mnt);
92671 + }
92672 +#endif
92673 + return;
92674 +}
92675 diff --git a/grsecurity/grsec_chroot.c b/grsecurity/grsec_chroot.c
92676 new file mode 100644
92677 index 0000000..652ab45
92678 --- /dev/null
92679 +++ b/grsecurity/grsec_chroot.c
92680 @@ -0,0 +1,467 @@
92681 +#include <linux/kernel.h>
92682 +#include <linux/module.h>
92683 +#include <linux/sched.h>
92684 +#include <linux/file.h>
92685 +#include <linux/fs.h>
92686 +#include <linux/mount.h>
92687 +#include <linux/types.h>
92688 +#include "../fs/mount.h"
92689 +#include <linux/grsecurity.h>
92690 +#include <linux/grinternal.h>
92691 +
92692 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
92693 +int gr_init_ran;
92694 +#endif
92695 +
92696 +void gr_inc_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt)
92697 +{
92698 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
92699 + struct dentry *tmpd = dentry;
92700 +
92701 + read_seqlock_excl(&mount_lock);
92702 + write_seqlock(&rename_lock);
92703 +
92704 + while (tmpd != mnt->mnt_root) {
92705 + atomic_inc(&tmpd->chroot_refcnt);
92706 + tmpd = tmpd->d_parent;
92707 + }
92708 + atomic_inc(&tmpd->chroot_refcnt);
92709 +
92710 + write_sequnlock(&rename_lock);
92711 + read_sequnlock_excl(&mount_lock);
92712 +#endif
92713 +}
92714 +
92715 +void gr_dec_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt)
92716 +{
92717 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
92718 + struct dentry *tmpd = dentry;
92719 +
92720 + read_seqlock_excl(&mount_lock);
92721 + write_seqlock(&rename_lock);
92722 +
92723 + while (tmpd != mnt->mnt_root) {
92724 + atomic_dec(&tmpd->chroot_refcnt);
92725 + tmpd = tmpd->d_parent;
92726 + }
92727 + atomic_dec(&tmpd->chroot_refcnt);
92728 +
92729 + write_sequnlock(&rename_lock);
92730 + read_sequnlock_excl(&mount_lock);
92731 +#endif
92732 +}
92733 +
92734 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
92735 +static struct dentry *get_closest_chroot(struct dentry *dentry)
92736 +{
92737 + write_seqlock(&rename_lock);
92738 + do {
92739 + if (atomic_read(&dentry->chroot_refcnt)) {
92740 + write_sequnlock(&rename_lock);
92741 + return dentry;
92742 + }
92743 + dentry = dentry->d_parent;
92744 + } while (!IS_ROOT(dentry));
92745 + write_sequnlock(&rename_lock);
92746 + return NULL;
92747 +}
92748 +#endif
92749 +
92750 +int gr_bad_chroot_rename(struct dentry *olddentry, struct vfsmount *oldmnt,
92751 + struct dentry *newdentry, struct vfsmount *newmnt)
92752 +{
92753 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
92754 + struct dentry *chroot;
92755 +
92756 + if (unlikely(!grsec_enable_chroot_rename))
92757 + return 0;
92758 +
92759 + if (likely(!proc_is_chrooted(current) && gr_is_global_root(current_uid())))
92760 + return 0;
92761 +
92762 + chroot = get_closest_chroot(olddentry);
92763 +
92764 + if (chroot == NULL)
92765 + return 0;
92766 +
92767 + if (is_subdir(newdentry, chroot))
92768 + return 0;
92769 +
92770 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_RENAME_MSG, olddentry, oldmnt);
92771 +
92772 + return 1;
92773 +#else
92774 + return 0;
92775 +#endif
92776 +}
92777 +
92778 +void gr_set_chroot_entries(struct task_struct *task, const struct path *path)
92779 +{
92780 +#ifdef CONFIG_GRKERNSEC
92781 + if (task_pid_nr(task) > 1 && path->dentry != init_task.fs->root.dentry &&
92782 + path->dentry != task->nsproxy->mnt_ns->root->mnt.mnt_root
92783 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
92784 + && gr_init_ran
92785 +#endif
92786 + )
92787 + task->gr_is_chrooted = 1;
92788 + else {
92789 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
92790 + if (task_pid_nr(task) == 1 && !gr_init_ran)
92791 + gr_init_ran = 1;
92792 +#endif
92793 + task->gr_is_chrooted = 0;
92794 + }
92795 +
92796 + task->gr_chroot_dentry = path->dentry;
92797 +#endif
92798 + return;
92799 +}
92800 +
92801 +void gr_clear_chroot_entries(struct task_struct *task)
92802 +{
92803 +#ifdef CONFIG_GRKERNSEC
92804 + task->gr_is_chrooted = 0;
92805 + task->gr_chroot_dentry = NULL;
92806 +#endif
92807 + return;
92808 +}
92809 +
92810 +int
92811 +gr_handle_chroot_unix(const pid_t pid)
92812 +{
92813 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
92814 + struct task_struct *p;
92815 +
92816 + if (unlikely(!grsec_enable_chroot_unix))
92817 + return 1;
92818 +
92819 + if (likely(!proc_is_chrooted(current)))
92820 + return 1;
92821 +
92822 + rcu_read_lock();
92823 + read_lock(&tasklist_lock);
92824 + p = find_task_by_vpid_unrestricted(pid);
92825 + if (unlikely(p && !have_same_root(current, p))) {
92826 + read_unlock(&tasklist_lock);
92827 + rcu_read_unlock();
92828 + gr_log_noargs(GR_DONT_AUDIT, GR_UNIX_CHROOT_MSG);
92829 + return 0;
92830 + }
92831 + read_unlock(&tasklist_lock);
92832 + rcu_read_unlock();
92833 +#endif
92834 + return 1;
92835 +}
92836 +
92837 +int
92838 +gr_handle_chroot_nice(void)
92839 +{
92840 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
92841 + if (grsec_enable_chroot_nice && proc_is_chrooted(current)) {
92842 + gr_log_noargs(GR_DONT_AUDIT, GR_NICE_CHROOT_MSG);
92843 + return -EPERM;
92844 + }
92845 +#endif
92846 + return 0;
92847 +}
92848 +
92849 +int
92850 +gr_handle_chroot_setpriority(struct task_struct *p, const int niceval)
92851 +{
92852 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
92853 + if (grsec_enable_chroot_nice && (niceval < task_nice(p))
92854 + && proc_is_chrooted(current)) {
92855 + gr_log_str_int(GR_DONT_AUDIT, GR_PRIORITY_CHROOT_MSG, p->comm, task_pid_nr(p));
92856 + return -EACCES;
92857 + }
92858 +#endif
92859 + return 0;
92860 +}
92861 +
92862 +int
92863 +gr_handle_chroot_fowner(struct pid *pid, enum pid_type type)
92864 +{
92865 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
92866 + struct task_struct *p;
92867 + int ret = 0;
92868 + if (!grsec_enable_chroot_findtask || !proc_is_chrooted(current) || !pid)
92869 + return ret;
92870 +
92871 + read_lock(&tasklist_lock);
92872 + do_each_pid_task(pid, type, p) {
92873 + if (!have_same_root(current, p)) {
92874 + ret = 1;
92875 + goto out;
92876 + }
92877 + } while_each_pid_task(pid, type, p);
92878 +out:
92879 + read_unlock(&tasklist_lock);
92880 + return ret;
92881 +#endif
92882 + return 0;
92883 +}
92884 +
92885 +int
92886 +gr_pid_is_chrooted(struct task_struct *p)
92887 +{
92888 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
92889 + if (!grsec_enable_chroot_findtask || !proc_is_chrooted(current) || p == NULL)
92890 + return 0;
92891 +
92892 + if ((p->exit_state & (EXIT_ZOMBIE | EXIT_DEAD)) ||
92893 + !have_same_root(current, p)) {
92894 + return 1;
92895 + }
92896 +#endif
92897 + return 0;
92898 +}
92899 +
92900 +EXPORT_SYMBOL_GPL(gr_pid_is_chrooted);
92901 +
92902 +#if defined(CONFIG_GRKERNSEC_CHROOT_DOUBLE) || defined(CONFIG_GRKERNSEC_CHROOT_FCHDIR)
92903 +int gr_is_outside_chroot(const struct dentry *u_dentry, const struct vfsmount *u_mnt)
92904 +{
92905 + struct path path, currentroot;
92906 + int ret = 0;
92907 +
92908 + path.dentry = (struct dentry *)u_dentry;
92909 + path.mnt = (struct vfsmount *)u_mnt;
92910 + get_fs_root(current->fs, &currentroot);
92911 + if (path_is_under(&path, &currentroot))
92912 + ret = 1;
92913 + path_put(&currentroot);
92914 +
92915 + return ret;
92916 +}
92917 +#endif
92918 +
92919 +int
92920 +gr_chroot_fchdir(struct dentry *u_dentry, struct vfsmount *u_mnt)
92921 +{
92922 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
92923 + if (!grsec_enable_chroot_fchdir)
92924 + return 1;
92925 +
92926 + if (!proc_is_chrooted(current))
92927 + return 1;
92928 + else if (!gr_is_outside_chroot(u_dentry, u_mnt)) {
92929 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_FCHDIR_MSG, u_dentry, u_mnt);
92930 + return 0;
92931 + }
92932 +#endif
92933 + return 1;
92934 +}
92935 +
92936 +int
92937 +gr_chroot_fhandle(void)
92938 +{
92939 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
92940 + if (!grsec_enable_chroot_fchdir)
92941 + return 1;
92942 +
92943 + if (!proc_is_chrooted(current))
92944 + return 1;
92945 + else {
92946 + gr_log_noargs(GR_DONT_AUDIT, GR_CHROOT_FHANDLE_MSG);
92947 + return 0;
92948 + }
92949 +#endif
92950 + return 1;
92951 +}
92952 +
92953 +int
92954 +gr_chroot_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
92955 + const u64 shm_createtime)
92956 +{
92957 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
92958 + struct task_struct *p;
92959 +
92960 + if (unlikely(!grsec_enable_chroot_shmat))
92961 + return 1;
92962 +
92963 + if (likely(!proc_is_chrooted(current)))
92964 + return 1;
92965 +
92966 + rcu_read_lock();
92967 + read_lock(&tasklist_lock);
92968 +
92969 + if ((p = find_task_by_vpid_unrestricted(shm_cprid))) {
92970 + if (time_before_eq64(p->start_time, shm_createtime)) {
92971 + if (have_same_root(current, p)) {
92972 + goto allow;
92973 + } else {
92974 + read_unlock(&tasklist_lock);
92975 + rcu_read_unlock();
92976 + gr_log_noargs(GR_DONT_AUDIT, GR_SHMAT_CHROOT_MSG);
92977 + return 0;
92978 + }
92979 + }
92980 + /* creator exited, pid reuse, fall through to next check */
92981 + }
92982 + if ((p = find_task_by_vpid_unrestricted(shm_lapid))) {
92983 + if (unlikely(!have_same_root(current, p))) {
92984 + read_unlock(&tasklist_lock);
92985 + rcu_read_unlock();
92986 + gr_log_noargs(GR_DONT_AUDIT, GR_SHMAT_CHROOT_MSG);
92987 + return 0;
92988 + }
92989 + }
92990 +
92991 +allow:
92992 + read_unlock(&tasklist_lock);
92993 + rcu_read_unlock();
92994 +#endif
92995 + return 1;
92996 +}
92997 +
92998 +void
92999 +gr_log_chroot_exec(const struct dentry *dentry, const struct vfsmount *mnt)
93000 +{
93001 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
93002 + if (grsec_enable_chroot_execlog && proc_is_chrooted(current))
93003 + gr_log_fs_generic(GR_DO_AUDIT, GR_EXEC_CHROOT_MSG, dentry, mnt);
93004 +#endif
93005 + return;
93006 +}
93007 +
93008 +int
93009 +gr_handle_chroot_mknod(const struct dentry *dentry,
93010 + const struct vfsmount *mnt, const int mode)
93011 +{
93012 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
93013 + if (grsec_enable_chroot_mknod && !S_ISFIFO(mode) && !S_ISREG(mode) &&
93014 + proc_is_chrooted(current)) {
93015 + gr_log_fs_generic(GR_DONT_AUDIT, GR_MKNOD_CHROOT_MSG, dentry, mnt);
93016 + return -EPERM;
93017 + }
93018 +#endif
93019 + return 0;
93020 +}
93021 +
93022 +int
93023 +gr_handle_chroot_mount(const struct dentry *dentry,
93024 + const struct vfsmount *mnt, const char *dev_name)
93025 +{
93026 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
93027 + if (grsec_enable_chroot_mount && proc_is_chrooted(current)) {
93028 + gr_log_str_fs(GR_DONT_AUDIT, GR_MOUNT_CHROOT_MSG, dev_name ? dev_name : "none", dentry, mnt);
93029 + return -EPERM;
93030 + }
93031 +#endif
93032 + return 0;
93033 +}
93034 +
93035 +int
93036 +gr_handle_chroot_pivot(void)
93037 +{
93038 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
93039 + if (grsec_enable_chroot_pivot && proc_is_chrooted(current)) {
93040 + gr_log_noargs(GR_DONT_AUDIT, GR_PIVOT_CHROOT_MSG);
93041 + return -EPERM;
93042 + }
93043 +#endif
93044 + return 0;
93045 +}
93046 +
93047 +int
93048 +gr_handle_chroot_chroot(const struct dentry *dentry, const struct vfsmount *mnt)
93049 +{
93050 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
93051 + if (grsec_enable_chroot_double && proc_is_chrooted(current) &&
93052 + !gr_is_outside_chroot(dentry, mnt)) {
93053 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHROOT_CHROOT_MSG, dentry, mnt);
93054 + return -EPERM;
93055 + }
93056 +#endif
93057 + return 0;
93058 +}
93059 +
93060 +extern const char *captab_log[];
93061 +extern int captab_log_entries;
93062 +
93063 +int
93064 +gr_task_chroot_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
93065 +{
93066 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93067 + if (grsec_enable_chroot_caps && proc_is_chrooted(task)) {
93068 + kernel_cap_t chroot_caps = GR_CHROOT_CAPS;
93069 + if (cap_raised(chroot_caps, cap)) {
93070 + if (cap_raised(cred->cap_effective, cap) && cap < captab_log_entries) {
93071 + gr_log_cap(GR_DONT_AUDIT, GR_CAP_CHROOT_MSG, task, captab_log[cap]);
93072 + }
93073 + return 0;
93074 + }
93075 + }
93076 +#endif
93077 + return 1;
93078 +}
93079 +
93080 +int
93081 +gr_chroot_is_capable(const int cap)
93082 +{
93083 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93084 + return gr_task_chroot_is_capable(current, current_cred(), cap);
93085 +#endif
93086 + return 1;
93087 +}
93088 +
93089 +int
93090 +gr_task_chroot_is_capable_nolog(const struct task_struct *task, const int cap)
93091 +{
93092 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93093 + if (grsec_enable_chroot_caps && proc_is_chrooted(task)) {
93094 + kernel_cap_t chroot_caps = GR_CHROOT_CAPS;
93095 + if (cap_raised(chroot_caps, cap)) {
93096 + return 0;
93097 + }
93098 + }
93099 +#endif
93100 + return 1;
93101 +}
93102 +
93103 +int
93104 +gr_chroot_is_capable_nolog(const int cap)
93105 +{
93106 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
93107 + return gr_task_chroot_is_capable_nolog(current, cap);
93108 +#endif
93109 + return 1;
93110 +}
93111 +
93112 +int
93113 +gr_handle_chroot_sysctl(const int op)
93114 +{
93115 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
93116 + if (grsec_enable_chroot_sysctl && (op & MAY_WRITE) &&
93117 + proc_is_chrooted(current))
93118 + return -EACCES;
93119 +#endif
93120 + return 0;
93121 +}
93122 +
93123 +void
93124 +gr_handle_chroot_chdir(const struct path *path)
93125 +{
93126 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
93127 + if (grsec_enable_chroot_chdir)
93128 + set_fs_pwd(current->fs, path);
93129 +#endif
93130 + return;
93131 +}
93132 +
93133 +int
93134 +gr_handle_chroot_chmod(const struct dentry *dentry,
93135 + const struct vfsmount *mnt, const int mode)
93136 +{
93137 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
93138 + /* allow chmod +s on directories, but not files */
93139 + if (grsec_enable_chroot_chmod && !d_is_dir(dentry) &&
93140 + ((mode & S_ISUID) || ((mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))) &&
93141 + proc_is_chrooted(current)) {
93142 + gr_log_fs_generic(GR_DONT_AUDIT, GR_CHMOD_CHROOT_MSG, dentry, mnt);
93143 + return -EPERM;
93144 + }
93145 +#endif
93146 + return 0;
93147 +}
93148 diff --git a/grsecurity/grsec_disabled.c b/grsecurity/grsec_disabled.c
93149 new file mode 100644
93150 index 0000000..e723c08
93151 --- /dev/null
93152 +++ b/grsecurity/grsec_disabled.c
93153 @@ -0,0 +1,445 @@
93154 +#include <linux/kernel.h>
93155 +#include <linux/module.h>
93156 +#include <linux/sched.h>
93157 +#include <linux/file.h>
93158 +#include <linux/fs.h>
93159 +#include <linux/kdev_t.h>
93160 +#include <linux/net.h>
93161 +#include <linux/in.h>
93162 +#include <linux/ip.h>
93163 +#include <linux/skbuff.h>
93164 +#include <linux/sysctl.h>
93165 +
93166 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
93167 +void
93168 +pax_set_initial_flags(struct linux_binprm *bprm)
93169 +{
93170 + return;
93171 +}
93172 +#endif
93173 +
93174 +#ifdef CONFIG_SYSCTL
93175 +__u32
93176 +gr_handle_sysctl(const struct ctl_table * table, const int op)
93177 +{
93178 + return 0;
93179 +}
93180 +#endif
93181 +
93182 +#ifdef CONFIG_TASKSTATS
93183 +int gr_is_taskstats_denied(int pid)
93184 +{
93185 + return 0;
93186 +}
93187 +#endif
93188 +
93189 +int
93190 +gr_acl_is_enabled(void)
93191 +{
93192 + return 0;
93193 +}
93194 +
93195 +int
93196 +gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap)
93197 +{
93198 + return 0;
93199 +}
93200 +
93201 +void
93202 +gr_handle_proc_create(const struct dentry *dentry, const struct inode *inode)
93203 +{
93204 + return;
93205 +}
93206 +
93207 +int
93208 +gr_handle_rawio(const struct inode *inode)
93209 +{
93210 + return 0;
93211 +}
93212 +
93213 +void
93214 +gr_acl_handle_psacct(struct task_struct *task, const long code)
93215 +{
93216 + return;
93217 +}
93218 +
93219 +int
93220 +gr_handle_ptrace(struct task_struct *task, const long request)
93221 +{
93222 + return 0;
93223 +}
93224 +
93225 +int
93226 +gr_handle_proc_ptrace(struct task_struct *task)
93227 +{
93228 + return 0;
93229 +}
93230 +
93231 +int
93232 +gr_set_acls(const int type)
93233 +{
93234 + return 0;
93235 +}
93236 +
93237 +int
93238 +gr_check_hidden_task(const struct task_struct *tsk)
93239 +{
93240 + return 0;
93241 +}
93242 +
93243 +int
93244 +gr_check_protected_task(const struct task_struct *task)
93245 +{
93246 + return 0;
93247 +}
93248 +
93249 +int
93250 +gr_check_protected_task_fowner(struct pid *pid, enum pid_type type)
93251 +{
93252 + return 0;
93253 +}
93254 +
93255 +void
93256 +gr_copy_label(struct task_struct *tsk)
93257 +{
93258 + return;
93259 +}
93260 +
93261 +void
93262 +gr_set_pax_flags(struct task_struct *task)
93263 +{
93264 + return;
93265 +}
93266 +
93267 +int
93268 +gr_set_proc_label(const struct dentry *dentry, const struct vfsmount *mnt,
93269 + const int unsafe_share)
93270 +{
93271 + return 0;
93272 +}
93273 +
93274 +void
93275 +gr_handle_delete(const u64 ino, const dev_t dev)
93276 +{
93277 + return;
93278 +}
93279 +
93280 +void
93281 +gr_handle_create(const struct dentry *dentry, const struct vfsmount *mnt)
93282 +{
93283 + return;
93284 +}
93285 +
93286 +void
93287 +gr_handle_crash(struct task_struct *task, const int sig)
93288 +{
93289 + return;
93290 +}
93291 +
93292 +int
93293 +gr_check_crash_exec(const struct file *filp)
93294 +{
93295 + return 0;
93296 +}
93297 +
93298 +int
93299 +gr_check_crash_uid(const kuid_t uid)
93300 +{
93301 + return 0;
93302 +}
93303 +
93304 +void
93305 +gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
93306 + struct dentry *old_dentry,
93307 + struct dentry *new_dentry,
93308 + struct vfsmount *mnt, const __u8 replace, unsigned int flags)
93309 +{
93310 + return;
93311 +}
93312 +
93313 +int
93314 +gr_search_socket(const int family, const int type, const int protocol)
93315 +{
93316 + return 1;
93317 +}
93318 +
93319 +int
93320 +gr_search_connectbind(const int mode, const struct socket *sock,
93321 + const struct sockaddr_in *addr)
93322 +{
93323 + return 0;
93324 +}
93325 +
93326 +void
93327 +gr_handle_alertkill(struct task_struct *task)
93328 +{
93329 + return;
93330 +}
93331 +
93332 +__u32
93333 +gr_acl_handle_execve(const struct dentry * dentry, const struct vfsmount * mnt)
93334 +{
93335 + return 1;
93336 +}
93337 +
93338 +__u32
93339 +gr_acl_handle_hidden_file(const struct dentry * dentry,
93340 + const struct vfsmount * mnt)
93341 +{
93342 + return 1;
93343 +}
93344 +
93345 +__u32
93346 +gr_acl_handle_open(const struct dentry * dentry, const struct vfsmount * mnt,
93347 + int acc_mode)
93348 +{
93349 + return 1;
93350 +}
93351 +
93352 +__u32
93353 +gr_acl_handle_rmdir(const struct dentry * dentry, const struct vfsmount * mnt)
93354 +{
93355 + return 1;
93356 +}
93357 +
93358 +__u32
93359 +gr_acl_handle_unlink(const struct dentry * dentry, const struct vfsmount * mnt)
93360 +{
93361 + return 1;
93362 +}
93363 +
93364 +int
93365 +gr_acl_handle_mmap(const struct file *file, const unsigned long prot,
93366 + unsigned int *vm_flags)
93367 +{
93368 + return 1;
93369 +}
93370 +
93371 +__u32
93372 +gr_acl_handle_truncate(const struct dentry * dentry,
93373 + const struct vfsmount * mnt)
93374 +{
93375 + return 1;
93376 +}
93377 +
93378 +__u32
93379 +gr_acl_handle_utime(const struct dentry * dentry, const struct vfsmount * mnt)
93380 +{
93381 + return 1;
93382 +}
93383 +
93384 +__u32
93385 +gr_acl_handle_access(const struct dentry * dentry,
93386 + const struct vfsmount * mnt, const int fmode)
93387 +{
93388 + return 1;
93389 +}
93390 +
93391 +__u32
93392 +gr_acl_handle_chmod(const struct dentry * dentry, const struct vfsmount * mnt,
93393 + umode_t *mode)
93394 +{
93395 + return 1;
93396 +}
93397 +
93398 +__u32
93399 +gr_acl_handle_chown(const struct dentry * dentry, const struct vfsmount * mnt)
93400 +{
93401 + return 1;
93402 +}
93403 +
93404 +__u32
93405 +gr_acl_handle_setxattr(const struct dentry * dentry, const struct vfsmount * mnt)
93406 +{
93407 + return 1;
93408 +}
93409 +
93410 +__u32
93411 +gr_acl_handle_removexattr(const struct dentry * dentry, const struct vfsmount * mnt)
93412 +{
93413 + return 1;
93414 +}
93415 +
93416 +void
93417 +grsecurity_init(void)
93418 +{
93419 + return;
93420 +}
93421 +
93422 +umode_t gr_acl_umask(void)
93423 +{
93424 + return 0;
93425 +}
93426 +
93427 +__u32
93428 +gr_acl_handle_mknod(const struct dentry * new_dentry,
93429 + const struct dentry * parent_dentry,
93430 + const struct vfsmount * parent_mnt,
93431 + const int mode)
93432 +{
93433 + return 1;
93434 +}
93435 +
93436 +__u32
93437 +gr_acl_handle_mkdir(const struct dentry * new_dentry,
93438 + const struct dentry * parent_dentry,
93439 + const struct vfsmount * parent_mnt)
93440 +{
93441 + return 1;
93442 +}
93443 +
93444 +__u32
93445 +gr_acl_handle_symlink(const struct dentry * new_dentry,
93446 + const struct dentry * parent_dentry,
93447 + const struct vfsmount * parent_mnt, const struct filename *from)
93448 +{
93449 + return 1;
93450 +}
93451 +
93452 +__u32
93453 +gr_acl_handle_link(const struct dentry * new_dentry,
93454 + const struct dentry * parent_dentry,
93455 + const struct vfsmount * parent_mnt,
93456 + const struct dentry * old_dentry,
93457 + const struct vfsmount * old_mnt, const struct filename *to)
93458 +{
93459 + return 1;
93460 +}
93461 +
93462 +int
93463 +gr_acl_handle_rename(const struct dentry *new_dentry,
93464 + const struct dentry *parent_dentry,
93465 + const struct vfsmount *parent_mnt,
93466 + const struct dentry *old_dentry,
93467 + const struct inode *old_parent_inode,
93468 + const struct vfsmount *old_mnt, const struct filename *newname,
93469 + unsigned int flags)
93470 +{
93471 + return 0;
93472 +}
93473 +
93474 +int
93475 +gr_acl_handle_filldir(const struct file *file, const char *name,
93476 + const int namelen, const u64 ino)
93477 +{
93478 + return 1;
93479 +}
93480 +
93481 +int
93482 +gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
93483 + const u64 shm_createtime, const kuid_t cuid, const int shmid)
93484 +{
93485 + return 1;
93486 +}
93487 +
93488 +int
93489 +gr_search_bind(const struct socket *sock, const struct sockaddr_in *addr)
93490 +{
93491 + return 0;
93492 +}
93493 +
93494 +int
93495 +gr_search_accept(const struct socket *sock)
93496 +{
93497 + return 0;
93498 +}
93499 +
93500 +int
93501 +gr_search_listen(const struct socket *sock)
93502 +{
93503 + return 0;
93504 +}
93505 +
93506 +int
93507 +gr_search_connect(const struct socket *sock, const struct sockaddr_in *addr)
93508 +{
93509 + return 0;
93510 +}
93511 +
93512 +__u32
93513 +gr_acl_handle_unix(const struct dentry * dentry, const struct vfsmount * mnt)
93514 +{
93515 + return 1;
93516 +}
93517 +
93518 +__u32
93519 +gr_acl_handle_creat(const struct dentry * dentry,
93520 + const struct dentry * p_dentry,
93521 + const struct vfsmount * p_mnt, int open_flags, int acc_mode,
93522 + const int imode)
93523 +{
93524 + return 1;
93525 +}
93526 +
93527 +void
93528 +gr_acl_handle_exit(void)
93529 +{
93530 + return;
93531 +}
93532 +
93533 +int
93534 +gr_acl_handle_mprotect(const struct file *file, const unsigned long prot)
93535 +{
93536 + return 1;
93537 +}
93538 +
93539 +void
93540 +gr_set_role_label(const kuid_t uid, const kgid_t gid)
93541 +{
93542 + return;
93543 +}
93544 +
93545 +int
93546 +gr_acl_handle_procpidmem(const struct task_struct *task)
93547 +{
93548 + return 0;
93549 +}
93550 +
93551 +int
93552 +gr_search_udp_recvmsg(const struct sock *sk, const struct sk_buff *skb)
93553 +{
93554 + return 0;
93555 +}
93556 +
93557 +int
93558 +gr_search_udp_sendmsg(const struct sock *sk, const struct sockaddr_in *addr)
93559 +{
93560 + return 0;
93561 +}
93562 +
93563 +int
93564 +gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs)
93565 +{
93566 + return 0;
93567 +}
93568 +
93569 +int
93570 +gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs)
93571 +{
93572 + return 0;
93573 +}
93574 +
93575 +int gr_acl_enable_at_secure(void)
93576 +{
93577 + return 0;
93578 +}
93579 +
93580 +dev_t gr_get_dev_from_dentry(struct dentry *dentry)
93581 +{
93582 + return d_backing_inode(dentry)->i_sb->s_dev;
93583 +}
93584 +
93585 +u64 gr_get_ino_from_dentry(struct dentry *dentry)
93586 +{
93587 + return d_backing_inode(dentry)->i_ino;
93588 +}
93589 +
93590 +void gr_put_exec_file(struct task_struct *task)
93591 +{
93592 + return;
93593 +}
93594 +
93595 +#ifdef CONFIG_SECURITY
93596 +EXPORT_SYMBOL_GPL(gr_check_user_change);
93597 +EXPORT_SYMBOL_GPL(gr_check_group_change);
93598 +#endif
93599 diff --git a/grsecurity/grsec_exec.c b/grsecurity/grsec_exec.c
93600 new file mode 100644
93601 index 0000000..fb7531e
93602 --- /dev/null
93603 +++ b/grsecurity/grsec_exec.c
93604 @@ -0,0 +1,189 @@
93605 +#include <linux/kernel.h>
93606 +#include <linux/sched.h>
93607 +#include <linux/file.h>
93608 +#include <linux/binfmts.h>
93609 +#include <linux/fs.h>
93610 +#include <linux/types.h>
93611 +#include <linux/grdefs.h>
93612 +#include <linux/grsecurity.h>
93613 +#include <linux/grinternal.h>
93614 +#include <linux/capability.h>
93615 +#include <linux/module.h>
93616 +#include <linux/compat.h>
93617 +
93618 +#include <asm/uaccess.h>
93619 +
93620 +#ifdef CONFIG_GRKERNSEC_EXECLOG
93621 +static char gr_exec_arg_buf[132];
93622 +static DEFINE_MUTEX(gr_exec_arg_mutex);
93623 +#endif
93624 +
93625 +struct user_arg_ptr {
93626 +#ifdef CONFIG_COMPAT
93627 + bool is_compat;
93628 +#endif
93629 + union {
93630 + const char __user *const __user *native;
93631 +#ifdef CONFIG_COMPAT
93632 + const compat_uptr_t __user *compat;
93633 +#endif
93634 + } ptr;
93635 +};
93636 +
93637 +extern const char __user *get_user_arg_ptr(struct user_arg_ptr argv, int nr);
93638 +
93639 +void
93640 +gr_handle_exec_args(struct linux_binprm *bprm, struct user_arg_ptr argv)
93641 +{
93642 +#ifdef CONFIG_GRKERNSEC_EXECLOG
93643 + char *grarg = gr_exec_arg_buf;
93644 + unsigned int i, x, execlen = 0;
93645 + char c;
93646 +
93647 + if (!((grsec_enable_execlog && grsec_enable_group &&
93648 + in_group_p(grsec_audit_gid))
93649 + || (grsec_enable_execlog && !grsec_enable_group)))
93650 + return;
93651 +
93652 + mutex_lock(&gr_exec_arg_mutex);
93653 + memset(grarg, 0, sizeof(gr_exec_arg_buf));
93654 +
93655 + for (i = 0; i < bprm->argc && execlen < 128; i++) {
93656 + const char __user *p;
93657 + unsigned int len;
93658 +
93659 + p = get_user_arg_ptr(argv, i);
93660 + if (IS_ERR(p))
93661 + goto log;
93662 +
93663 + len = strnlen_user(p, 128 - execlen);
93664 + if (len > 128 - execlen)
93665 + len = 128 - execlen;
93666 + else if (len > 0)
93667 + len--;
93668 + if (copy_from_user(grarg + execlen, p, len))
93669 + goto log;
93670 +
93671 + /* rewrite unprintable characters */
93672 + for (x = 0; x < len; x++) {
93673 + c = *(grarg + execlen + x);
93674 + if (c < 32 || c > 126)
93675 + *(grarg + execlen + x) = ' ';
93676 + }
93677 +
93678 + execlen += len;
93679 + *(grarg + execlen) = ' ';
93680 + *(grarg + execlen + 1) = '\0';
93681 + execlen++;
93682 + }
93683 +
93684 + log:
93685 + gr_log_fs_str(GR_DO_AUDIT, GR_EXEC_AUDIT_MSG, bprm->file->f_path.dentry,
93686 + bprm->file->f_path.mnt, grarg);
93687 + mutex_unlock(&gr_exec_arg_mutex);
93688 +#endif
93689 + return;
93690 +}
93691 +
93692 +#ifdef CONFIG_GRKERNSEC
93693 +extern int gr_acl_is_capable(const int cap);
93694 +extern int gr_acl_is_capable_nolog(const int cap);
93695 +extern int gr_task_acl_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
93696 +extern int gr_task_acl_is_capable_nolog(const struct task_struct *task, const int cap);
93697 +extern int gr_chroot_is_capable(const int cap);
93698 +extern int gr_chroot_is_capable_nolog(const int cap);
93699 +extern int gr_task_chroot_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
93700 +extern int gr_task_chroot_is_capable_nolog(const struct task_struct *task, const int cap);
93701 +#endif
93702 +
93703 +const char *captab_log[] = {
93704 + "CAP_CHOWN",
93705 + "CAP_DAC_OVERRIDE",
93706 + "CAP_DAC_READ_SEARCH",
93707 + "CAP_FOWNER",
93708 + "CAP_FSETID",
93709 + "CAP_KILL",
93710 + "CAP_SETGID",
93711 + "CAP_SETUID",
93712 + "CAP_SETPCAP",
93713 + "CAP_LINUX_IMMUTABLE",
93714 + "CAP_NET_BIND_SERVICE",
93715 + "CAP_NET_BROADCAST",
93716 + "CAP_NET_ADMIN",
93717 + "CAP_NET_RAW",
93718 + "CAP_IPC_LOCK",
93719 + "CAP_IPC_OWNER",
93720 + "CAP_SYS_MODULE",
93721 + "CAP_SYS_RAWIO",
93722 + "CAP_SYS_CHROOT",
93723 + "CAP_SYS_PTRACE",
93724 + "CAP_SYS_PACCT",
93725 + "CAP_SYS_ADMIN",
93726 + "CAP_SYS_BOOT",
93727 + "CAP_SYS_NICE",
93728 + "CAP_SYS_RESOURCE",
93729 + "CAP_SYS_TIME",
93730 + "CAP_SYS_TTY_CONFIG",
93731 + "CAP_MKNOD",
93732 + "CAP_LEASE",
93733 + "CAP_AUDIT_WRITE",
93734 + "CAP_AUDIT_CONTROL",
93735 + "CAP_SETFCAP",
93736 + "CAP_MAC_OVERRIDE",
93737 + "CAP_MAC_ADMIN",
93738 + "CAP_SYSLOG",
93739 + "CAP_WAKE_ALARM",
93740 + "CAP_BLOCK_SUSPEND",
93741 + "CAP_AUDIT_READ"
93742 +};
93743 +
93744 +int captab_log_entries = sizeof(captab_log)/sizeof(captab_log[0]);
93745 +
93746 +int gr_is_capable(const int cap)
93747 +{
93748 +#ifdef CONFIG_GRKERNSEC
93749 + if (gr_acl_is_capable(cap) && gr_chroot_is_capable(cap))
93750 + return 1;
93751 + return 0;
93752 +#else
93753 + return 1;
93754 +#endif
93755 +}
93756 +
93757 +int gr_task_is_capable(const struct task_struct *task, const struct cred *cred, const int cap)
93758 +{
93759 +#ifdef CONFIG_GRKERNSEC
93760 + if (gr_task_acl_is_capable(task, cred, cap) && gr_task_chroot_is_capable(task, cred, cap))
93761 + return 1;
93762 + return 0;
93763 +#else
93764 + return 1;
93765 +#endif
93766 +}
93767 +
93768 +int gr_is_capable_nolog(const int cap)
93769 +{
93770 +#ifdef CONFIG_GRKERNSEC
93771 + if (gr_acl_is_capable_nolog(cap) && gr_chroot_is_capable_nolog(cap))
93772 + return 1;
93773 + return 0;
93774 +#else
93775 + return 1;
93776 +#endif
93777 +}
93778 +
93779 +int gr_task_is_capable_nolog(const struct task_struct *task, const int cap)
93780 +{
93781 +#ifdef CONFIG_GRKERNSEC
93782 + if (gr_task_acl_is_capable_nolog(task, cap) && gr_task_chroot_is_capable_nolog(task, cap))
93783 + return 1;
93784 + return 0;
93785 +#else
93786 + return 1;
93787 +#endif
93788 +}
93789 +
93790 +EXPORT_SYMBOL_GPL(gr_is_capable);
93791 +EXPORT_SYMBOL_GPL(gr_is_capable_nolog);
93792 +EXPORT_SYMBOL_GPL(gr_task_is_capable);
93793 +EXPORT_SYMBOL_GPL(gr_task_is_capable_nolog);
93794 diff --git a/grsecurity/grsec_fifo.c b/grsecurity/grsec_fifo.c
93795 new file mode 100644
93796 index 0000000..cdec49b
93797 --- /dev/null
93798 +++ b/grsecurity/grsec_fifo.c
93799 @@ -0,0 +1,26 @@
93800 +#include <linux/kernel.h>
93801 +#include <linux/sched.h>
93802 +#include <linux/fs.h>
93803 +#include <linux/file.h>
93804 +#include <linux/grinternal.h>
93805 +
93806 +int
93807 +gr_handle_fifo(const struct dentry *dentry, const struct vfsmount *mnt,
93808 + const struct dentry *dir, const int flag, const int acc_mode)
93809 +{
93810 +#ifdef CONFIG_GRKERNSEC_FIFO
93811 + const struct cred *cred = current_cred();
93812 + struct inode *inode = d_backing_inode(dentry);
93813 + struct inode *dir_inode = d_backing_inode(dir);
93814 +
93815 + if (grsec_enable_fifo && S_ISFIFO(inode->i_mode) &&
93816 + !(flag & O_EXCL) && (dir_inode->i_mode & S_ISVTX) &&
93817 + !uid_eq(inode->i_uid, dir_inode->i_uid) &&
93818 + !uid_eq(cred->fsuid, inode->i_uid)) {
93819 + if (!inode_permission(inode, acc_mode))
93820 + gr_log_fs_int2(GR_DONT_AUDIT, GR_FIFO_MSG, dentry, mnt, GR_GLOBAL_UID(inode->i_uid), GR_GLOBAL_GID(inode->i_gid));
93821 + return -EACCES;
93822 + }
93823 +#endif
93824 + return 0;
93825 +}
93826 diff --git a/grsecurity/grsec_fork.c b/grsecurity/grsec_fork.c
93827 new file mode 100644
93828 index 0000000..8ca18bf
93829 --- /dev/null
93830 +++ b/grsecurity/grsec_fork.c
93831 @@ -0,0 +1,23 @@
93832 +#include <linux/kernel.h>
93833 +#include <linux/sched.h>
93834 +#include <linux/grsecurity.h>
93835 +#include <linux/grinternal.h>
93836 +#include <linux/errno.h>
93837 +
93838 +void
93839 +gr_log_forkfail(const int retval)
93840 +{
93841 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
93842 + if (grsec_enable_forkfail && (retval == -EAGAIN || retval == -ENOMEM)) {
93843 + switch (retval) {
93844 + case -EAGAIN:
93845 + gr_log_str(GR_DONT_AUDIT, GR_FAILFORK_MSG, "EAGAIN");
93846 + break;
93847 + case -ENOMEM:
93848 + gr_log_str(GR_DONT_AUDIT, GR_FAILFORK_MSG, "ENOMEM");
93849 + break;
93850 + }
93851 + }
93852 +#endif
93853 + return;
93854 +}
93855 diff --git a/grsecurity/grsec_init.c b/grsecurity/grsec_init.c
93856 new file mode 100644
93857 index 0000000..a364c58
93858 --- /dev/null
93859 +++ b/grsecurity/grsec_init.c
93860 @@ -0,0 +1,290 @@
93861 +#include <linux/kernel.h>
93862 +#include <linux/sched.h>
93863 +#include <linux/mm.h>
93864 +#include <linux/gracl.h>
93865 +#include <linux/slab.h>
93866 +#include <linux/vmalloc.h>
93867 +#include <linux/percpu.h>
93868 +#include <linux/module.h>
93869 +
93870 +int grsec_enable_ptrace_readexec __read_only;
93871 +int grsec_enable_setxid __read_only;
93872 +int grsec_enable_symlinkown __read_only;
93873 +kgid_t grsec_symlinkown_gid __read_only;
93874 +int grsec_enable_brute __read_only;
93875 +int grsec_enable_link __read_only;
93876 +int grsec_enable_dmesg __read_only;
93877 +int grsec_enable_harden_ptrace __read_only;
93878 +int grsec_enable_harden_ipc __read_only;
93879 +int grsec_enable_fifo __read_only;
93880 +int grsec_enable_execlog __read_only;
93881 +int grsec_enable_signal __read_only;
93882 +int grsec_enable_forkfail __read_only;
93883 +int grsec_enable_audit_ptrace __read_only;
93884 +int grsec_enable_time __read_only;
93885 +int grsec_enable_group __read_only;
93886 +kgid_t grsec_audit_gid __read_only;
93887 +int grsec_enable_chdir __read_only;
93888 +int grsec_enable_mount __read_only;
93889 +int grsec_enable_rofs __read_only;
93890 +int grsec_deny_new_usb __read_only;
93891 +int grsec_enable_chroot_findtask __read_only;
93892 +int grsec_enable_chroot_mount __read_only;
93893 +int grsec_enable_chroot_shmat __read_only;
93894 +int grsec_enable_chroot_fchdir __read_only;
93895 +int grsec_enable_chroot_double __read_only;
93896 +int grsec_enable_chroot_pivot __read_only;
93897 +int grsec_enable_chroot_chdir __read_only;
93898 +int grsec_enable_chroot_chmod __read_only;
93899 +int grsec_enable_chroot_mknod __read_only;
93900 +int grsec_enable_chroot_nice __read_only;
93901 +int grsec_enable_chroot_execlog __read_only;
93902 +int grsec_enable_chroot_caps __read_only;
93903 +int grsec_enable_chroot_rename __read_only;
93904 +int grsec_enable_chroot_sysctl __read_only;
93905 +int grsec_enable_chroot_unix __read_only;
93906 +int grsec_enable_tpe __read_only;
93907 +kgid_t grsec_tpe_gid __read_only;
93908 +int grsec_enable_blackhole __read_only;
93909 +#ifdef CONFIG_IPV6_MODULE
93910 +EXPORT_SYMBOL_GPL(grsec_enable_blackhole);
93911 +#endif
93912 +int grsec_lastack_retries __read_only;
93913 +int grsec_enable_tpe_all __read_only;
93914 +int grsec_enable_tpe_invert __read_only;
93915 +int grsec_enable_socket_all __read_only;
93916 +kgid_t grsec_socket_all_gid __read_only;
93917 +int grsec_enable_socket_client __read_only;
93918 +kgid_t grsec_socket_client_gid __read_only;
93919 +int grsec_enable_socket_server __read_only;
93920 +kgid_t grsec_socket_server_gid __read_only;
93921 +int grsec_resource_logging __read_only;
93922 +int grsec_disable_privio __read_only;
93923 +int grsec_enable_log_rwxmaps __read_only;
93924 +int grsec_lock __read_only;
93925 +
93926 +DEFINE_SPINLOCK(grsec_alert_lock);
93927 +unsigned long grsec_alert_wtime = 0;
93928 +unsigned long grsec_alert_fyet = 0;
93929 +
93930 +DEFINE_SPINLOCK(grsec_audit_lock);
93931 +
93932 +DEFINE_RWLOCK(grsec_exec_file_lock);
93933 +
93934 +char *gr_shared_page[4];
93935 +
93936 +char *gr_alert_log_fmt;
93937 +char *gr_audit_log_fmt;
93938 +char *gr_alert_log_buf;
93939 +char *gr_audit_log_buf;
93940 +
93941 +extern struct gr_arg *gr_usermode;
93942 +extern unsigned char *gr_system_salt;
93943 +extern unsigned char *gr_system_sum;
93944 +
93945 +void __init
93946 +grsecurity_init(void)
93947 +{
93948 + int j;
93949 + /* create the per-cpu shared pages */
93950 +
93951 +#ifdef CONFIG_X86
93952 + memset((char *)(0x41a + PAGE_OFFSET), 0, 36);
93953 +#endif
93954 +
93955 + for (j = 0; j < 4; j++) {
93956 + gr_shared_page[j] = (char *)__alloc_percpu(PAGE_SIZE, __alignof__(unsigned long long));
93957 + if (gr_shared_page[j] == NULL) {
93958 + panic("Unable to allocate grsecurity shared page");
93959 + return;
93960 + }
93961 + }
93962 +
93963 + /* allocate log buffers */
93964 + gr_alert_log_fmt = kmalloc(512, GFP_KERNEL);
93965 + if (!gr_alert_log_fmt) {
93966 + panic("Unable to allocate grsecurity alert log format buffer");
93967 + return;
93968 + }
93969 + gr_audit_log_fmt = kmalloc(512, GFP_KERNEL);
93970 + if (!gr_audit_log_fmt) {
93971 + panic("Unable to allocate grsecurity audit log format buffer");
93972 + return;
93973 + }
93974 + gr_alert_log_buf = (char *) get_zeroed_page(GFP_KERNEL);
93975 + if (!gr_alert_log_buf) {
93976 + panic("Unable to allocate grsecurity alert log buffer");
93977 + return;
93978 + }
93979 + gr_audit_log_buf = (char *) get_zeroed_page(GFP_KERNEL);
93980 + if (!gr_audit_log_buf) {
93981 + panic("Unable to allocate grsecurity audit log buffer");
93982 + return;
93983 + }
93984 +
93985 + /* allocate memory for authentication structure */
93986 + gr_usermode = kmalloc(sizeof(struct gr_arg), GFP_KERNEL);
93987 + gr_system_salt = kmalloc(GR_SALT_LEN, GFP_KERNEL);
93988 + gr_system_sum = kmalloc(GR_SHA_LEN, GFP_KERNEL);
93989 +
93990 + if (!gr_usermode || !gr_system_salt || !gr_system_sum) {
93991 + panic("Unable to allocate grsecurity authentication structure");
93992 + return;
93993 + }
93994 +
93995 +#ifdef CONFIG_GRKERNSEC_IO
93996 +#if !defined(CONFIG_GRKERNSEC_SYSCTL_DISTRO)
93997 + grsec_disable_privio = 1;
93998 +#elif defined(CONFIG_GRKERNSEC_SYSCTL_ON)
93999 + grsec_disable_privio = 1;
94000 +#else
94001 + grsec_disable_privio = 0;
94002 +#endif
94003 +#endif
94004 +
94005 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
94006 + /* for backward compatibility, tpe_invert always defaults to on if
94007 + enabled in the kernel
94008 + */
94009 + grsec_enable_tpe_invert = 1;
94010 +#endif
94011 +
94012 +#if !defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_SYSCTL_ON)
94013 +#ifndef CONFIG_GRKERNSEC_SYSCTL
94014 + grsec_lock = 1;
94015 +#endif
94016 +
94017 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
94018 + grsec_enable_log_rwxmaps = 1;
94019 +#endif
94020 +#ifdef CONFIG_GRKERNSEC_AUDIT_GROUP
94021 + grsec_enable_group = 1;
94022 + grsec_audit_gid = KGIDT_INIT(CONFIG_GRKERNSEC_AUDIT_GID);
94023 +#endif
94024 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
94025 + grsec_enable_ptrace_readexec = 1;
94026 +#endif
94027 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
94028 + grsec_enable_chdir = 1;
94029 +#endif
94030 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
94031 + grsec_enable_harden_ptrace = 1;
94032 +#endif
94033 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
94034 + grsec_enable_harden_ipc = 1;
94035 +#endif
94036 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
94037 + grsec_enable_mount = 1;
94038 +#endif
94039 +#ifdef CONFIG_GRKERNSEC_LINK
94040 + grsec_enable_link = 1;
94041 +#endif
94042 +#ifdef CONFIG_GRKERNSEC_BRUTE
94043 + grsec_enable_brute = 1;
94044 +#endif
94045 +#ifdef CONFIG_GRKERNSEC_DMESG
94046 + grsec_enable_dmesg = 1;
94047 +#endif
94048 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
94049 + grsec_enable_blackhole = 1;
94050 + grsec_lastack_retries = 4;
94051 +#endif
94052 +#ifdef CONFIG_GRKERNSEC_FIFO
94053 + grsec_enable_fifo = 1;
94054 +#endif
94055 +#ifdef CONFIG_GRKERNSEC_EXECLOG
94056 + grsec_enable_execlog = 1;
94057 +#endif
94058 +#ifdef CONFIG_GRKERNSEC_SETXID
94059 + grsec_enable_setxid = 1;
94060 +#endif
94061 +#ifdef CONFIG_GRKERNSEC_SIGNAL
94062 + grsec_enable_signal = 1;
94063 +#endif
94064 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
94065 + grsec_enable_forkfail = 1;
94066 +#endif
94067 +#ifdef CONFIG_GRKERNSEC_TIME
94068 + grsec_enable_time = 1;
94069 +#endif
94070 +#ifdef CONFIG_GRKERNSEC_RESLOG
94071 + grsec_resource_logging = 1;
94072 +#endif
94073 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
94074 + grsec_enable_chroot_findtask = 1;
94075 +#endif
94076 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
94077 + grsec_enable_chroot_unix = 1;
94078 +#endif
94079 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
94080 + grsec_enable_chroot_mount = 1;
94081 +#endif
94082 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
94083 + grsec_enable_chroot_fchdir = 1;
94084 +#endif
94085 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
94086 + grsec_enable_chroot_shmat = 1;
94087 +#endif
94088 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
94089 + grsec_enable_audit_ptrace = 1;
94090 +#endif
94091 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
94092 + grsec_enable_chroot_double = 1;
94093 +#endif
94094 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
94095 + grsec_enable_chroot_pivot = 1;
94096 +#endif
94097 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
94098 + grsec_enable_chroot_chdir = 1;
94099 +#endif
94100 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
94101 + grsec_enable_chroot_chmod = 1;
94102 +#endif
94103 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
94104 + grsec_enable_chroot_mknod = 1;
94105 +#endif
94106 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
94107 + grsec_enable_chroot_nice = 1;
94108 +#endif
94109 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
94110 + grsec_enable_chroot_execlog = 1;
94111 +#endif
94112 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
94113 + grsec_enable_chroot_caps = 1;
94114 +#endif
94115 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
94116 + grsec_enable_chroot_rename = 1;
94117 +#endif
94118 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
94119 + grsec_enable_chroot_sysctl = 1;
94120 +#endif
94121 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
94122 + grsec_enable_symlinkown = 1;
94123 + grsec_symlinkown_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SYMLINKOWN_GID);
94124 +#endif
94125 +#ifdef CONFIG_GRKERNSEC_TPE
94126 + grsec_enable_tpe = 1;
94127 + grsec_tpe_gid = KGIDT_INIT(CONFIG_GRKERNSEC_TPE_GID);
94128 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
94129 + grsec_enable_tpe_all = 1;
94130 +#endif
94131 +#endif
94132 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
94133 + grsec_enable_socket_all = 1;
94134 + grsec_socket_all_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_ALL_GID);
94135 +#endif
94136 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
94137 + grsec_enable_socket_client = 1;
94138 + grsec_socket_client_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_CLIENT_GID);
94139 +#endif
94140 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
94141 + grsec_enable_socket_server = 1;
94142 + grsec_socket_server_gid = KGIDT_INIT(CONFIG_GRKERNSEC_SOCKET_SERVER_GID);
94143 +#endif
94144 +#endif
94145 +#ifdef CONFIG_GRKERNSEC_DENYUSB_FORCE
94146 + grsec_deny_new_usb = 1;
94147 +#endif
94148 +
94149 + return;
94150 +}
94151 diff --git a/grsecurity/grsec_ipc.c b/grsecurity/grsec_ipc.c
94152 new file mode 100644
94153 index 0000000..1773300
94154 --- /dev/null
94155 +++ b/grsecurity/grsec_ipc.c
94156 @@ -0,0 +1,48 @@
94157 +#include <linux/kernel.h>
94158 +#include <linux/mm.h>
94159 +#include <linux/sched.h>
94160 +#include <linux/file.h>
94161 +#include <linux/ipc.h>
94162 +#include <linux/ipc_namespace.h>
94163 +#include <linux/grsecurity.h>
94164 +#include <linux/grinternal.h>
94165 +
94166 +int
94167 +gr_ipc_permitted(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, int requested_mode, int granted_mode)
94168 +{
94169 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
94170 + int write;
94171 + int orig_granted_mode;
94172 + kuid_t euid;
94173 + kgid_t egid;
94174 +
94175 + if (!grsec_enable_harden_ipc)
94176 + return 1;
94177 +
94178 + euid = current_euid();
94179 + egid = current_egid();
94180 +
94181 + write = requested_mode & 00002;
94182 + orig_granted_mode = ipcp->mode;
94183 +
94184 + if (uid_eq(euid, ipcp->cuid) || uid_eq(euid, ipcp->uid))
94185 + orig_granted_mode >>= 6;
94186 + else {
94187 + /* if likely wrong permissions, lock to user */
94188 + if (orig_granted_mode & 0007)
94189 + orig_granted_mode = 0;
94190 + /* otherwise do a egid-only check */
94191 + else if (gid_eq(egid, ipcp->cgid) || gid_eq(egid, ipcp->gid))
94192 + orig_granted_mode >>= 3;
94193 + /* otherwise, no access */
94194 + else
94195 + orig_granted_mode = 0;
94196 + }
94197 + if (!(requested_mode & ~granted_mode & 0007) && (requested_mode & ~orig_granted_mode & 0007) &&
94198 + !ns_capable_nolog(ns->user_ns, CAP_IPC_OWNER)) {
94199 + gr_log_str_int(GR_DONT_AUDIT, GR_IPC_DENIED_MSG, write ? "write" : "read", GR_GLOBAL_UID(ipcp->cuid));
94200 + return 0;
94201 + }
94202 +#endif
94203 + return 1;
94204 +}
94205 diff --git a/grsecurity/grsec_link.c b/grsecurity/grsec_link.c
94206 new file mode 100644
94207 index 0000000..84c44a0
94208 --- /dev/null
94209 +++ b/grsecurity/grsec_link.c
94210 @@ -0,0 +1,65 @@
94211 +#include <linux/kernel.h>
94212 +#include <linux/sched.h>
94213 +#include <linux/fs.h>
94214 +#include <linux/file.h>
94215 +#include <linux/grinternal.h>
94216 +
94217 +int gr_get_symlinkown_enabled(void)
94218 +{
94219 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
94220 + if (grsec_enable_symlinkown && in_group_p(grsec_symlinkown_gid))
94221 + return 1;
94222 +#endif
94223 + return 0;
94224 +}
94225 +
94226 +int gr_handle_symlink_owner(const struct path *link, const struct inode *target)
94227 +{
94228 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
94229 + const struct inode *link_inode = d_backing_inode(link->dentry);
94230 +
94231 + if (target && !uid_eq(link_inode->i_uid, target->i_uid)) {
94232 + 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));
94233 + return 1;
94234 + }
94235 +#endif
94236 + return 0;
94237 +}
94238 +
94239 +int
94240 +gr_handle_follow_link(const struct dentry *dentry, const struct vfsmount *mnt)
94241 +{
94242 +#ifdef CONFIG_GRKERNSEC_LINK
94243 + struct inode *inode = d_backing_inode(dentry);
94244 + struct inode *parent = d_backing_inode(dentry->d_parent);
94245 + const struct cred *cred = current_cred();
94246 +
94247 + if (grsec_enable_link && d_is_symlink(dentry) &&
94248 + (parent->i_mode & S_ISVTX) && !uid_eq(parent->i_uid, inode->i_uid) &&
94249 + (parent->i_mode & S_IWOTH) && !uid_eq(cred->fsuid, inode->i_uid)) {
94250 + gr_log_fs_int2(GR_DONT_AUDIT, GR_SYMLINK_MSG, dentry, mnt, GR_GLOBAL_UID(inode->i_uid), GR_GLOBAL_GID(inode->i_gid));
94251 + return -EACCES;
94252 + }
94253 +#endif
94254 + return 0;
94255 +}
94256 +
94257 +int
94258 +gr_handle_hardlink(const struct dentry *dentry,
94259 + const struct vfsmount *mnt,
94260 + const struct filename *to)
94261 +{
94262 +#ifdef CONFIG_GRKERNSEC_LINK
94263 + struct inode *inode = d_backing_inode(dentry);
94264 + const struct cred *cred = current_cred();
94265 +
94266 + if (grsec_enable_link && !uid_eq(cred->fsuid, inode->i_uid) &&
94267 + (!d_is_reg(dentry) || is_privileged_binary(dentry) ||
94268 + (inode_permission(inode, MAY_READ | MAY_WRITE))) &&
94269 + !capable(CAP_FOWNER) && gr_is_global_nonroot(cred->uid)) {
94270 + 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);
94271 + return -EPERM;
94272 + }
94273 +#endif
94274 + return 0;
94275 +}
94276 diff --git a/grsecurity/grsec_log.c b/grsecurity/grsec_log.c
94277 new file mode 100644
94278 index 0000000..a24b338
94279 --- /dev/null
94280 +++ b/grsecurity/grsec_log.c
94281 @@ -0,0 +1,340 @@
94282 +#include <linux/kernel.h>
94283 +#include <linux/sched.h>
94284 +#include <linux/file.h>
94285 +#include <linux/tty.h>
94286 +#include <linux/fs.h>
94287 +#include <linux/mm.h>
94288 +#include <linux/grinternal.h>
94289 +
94290 +#ifdef CONFIG_TREE_PREEMPT_RCU
94291 +#define DISABLE_PREEMPT() preempt_disable()
94292 +#define ENABLE_PREEMPT() preempt_enable()
94293 +#else
94294 +#define DISABLE_PREEMPT()
94295 +#define ENABLE_PREEMPT()
94296 +#endif
94297 +
94298 +#define BEGIN_LOCKS(x) \
94299 + DISABLE_PREEMPT(); \
94300 + rcu_read_lock(); \
94301 + read_lock(&tasklist_lock); \
94302 + read_lock(&grsec_exec_file_lock); \
94303 + if (x != GR_DO_AUDIT) \
94304 + spin_lock(&grsec_alert_lock); \
94305 + else \
94306 + spin_lock(&grsec_audit_lock)
94307 +
94308 +#define END_LOCKS(x) \
94309 + if (x != GR_DO_AUDIT) \
94310 + spin_unlock(&grsec_alert_lock); \
94311 + else \
94312 + spin_unlock(&grsec_audit_lock); \
94313 + read_unlock(&grsec_exec_file_lock); \
94314 + read_unlock(&tasklist_lock); \
94315 + rcu_read_unlock(); \
94316 + ENABLE_PREEMPT(); \
94317 + if (x == GR_DONT_AUDIT) \
94318 + gr_handle_alertkill(current)
94319 +
94320 +enum {
94321 + FLOODING,
94322 + NO_FLOODING
94323 +};
94324 +
94325 +extern char *gr_alert_log_fmt;
94326 +extern char *gr_audit_log_fmt;
94327 +extern char *gr_alert_log_buf;
94328 +extern char *gr_audit_log_buf;
94329 +
94330 +static int gr_log_start(int audit)
94331 +{
94332 + char *loglevel = (audit == GR_DO_AUDIT) ? KERN_INFO : KERN_ALERT;
94333 + char *fmt = (audit == GR_DO_AUDIT) ? gr_audit_log_fmt : gr_alert_log_fmt;
94334 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
94335 +#if (CONFIG_GRKERNSEC_FLOODTIME > 0 && CONFIG_GRKERNSEC_FLOODBURST > 0)
94336 + unsigned long curr_secs = get_seconds();
94337 +
94338 + if (audit == GR_DO_AUDIT)
94339 + goto set_fmt;
94340 +
94341 + if (!grsec_alert_wtime || time_after(curr_secs, grsec_alert_wtime + CONFIG_GRKERNSEC_FLOODTIME)) {
94342 + grsec_alert_wtime = curr_secs;
94343 + grsec_alert_fyet = 0;
94344 + } else if (time_before_eq(curr_secs, grsec_alert_wtime + CONFIG_GRKERNSEC_FLOODTIME)
94345 + && (grsec_alert_fyet < CONFIG_GRKERNSEC_FLOODBURST)) {
94346 + grsec_alert_fyet++;
94347 + } else if (grsec_alert_fyet == CONFIG_GRKERNSEC_FLOODBURST) {
94348 + grsec_alert_wtime = curr_secs;
94349 + grsec_alert_fyet++;
94350 + printk(KERN_ALERT "grsec: more alerts, logging disabled for %d seconds\n", CONFIG_GRKERNSEC_FLOODTIME);
94351 + return FLOODING;
94352 + }
94353 + else return FLOODING;
94354 +
94355 +set_fmt:
94356 +#endif
94357 + memset(buf, 0, PAGE_SIZE);
94358 + if (current->signal->curr_ip && gr_acl_is_enabled()) {
94359 + sprintf(fmt, "%s%s", loglevel, "grsec: From %pI4: (%.64s:%c:%.950s) ");
94360 + snprintf(buf, PAGE_SIZE - 1, fmt, &current->signal->curr_ip, current->role->rolename, gr_roletype_to_char(), current->acl->filename);
94361 + } else if (current->signal->curr_ip) {
94362 + sprintf(fmt, "%s%s", loglevel, "grsec: From %pI4: ");
94363 + snprintf(buf, PAGE_SIZE - 1, fmt, &current->signal->curr_ip);
94364 + } else if (gr_acl_is_enabled()) {
94365 + sprintf(fmt, "%s%s", loglevel, "grsec: (%.64s:%c:%.950s) ");
94366 + snprintf(buf, PAGE_SIZE - 1, fmt, current->role->rolename, gr_roletype_to_char(), current->acl->filename);
94367 + } else {
94368 + sprintf(fmt, "%s%s", loglevel, "grsec: ");
94369 + strcpy(buf, fmt);
94370 + }
94371 +
94372 + return NO_FLOODING;
94373 +}
94374 +
94375 +static void gr_log_middle(int audit, const char *msg, va_list ap)
94376 + __attribute__ ((format (printf, 2, 0)));
94377 +
94378 +static void gr_log_middle(int audit, const char *msg, va_list ap)
94379 +{
94380 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
94381 + unsigned int len = strlen(buf);
94382 +
94383 + vsnprintf(buf + len, PAGE_SIZE - len - 1, msg, ap);
94384 +
94385 + return;
94386 +}
94387 +
94388 +static void gr_log_middle_varargs(int audit, const char *msg, ...)
94389 + __attribute__ ((format (printf, 2, 3)));
94390 +
94391 +static void gr_log_middle_varargs(int audit, const char *msg, ...)
94392 +{
94393 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
94394 + unsigned int len = strlen(buf);
94395 + va_list ap;
94396 +
94397 + va_start(ap, msg);
94398 + vsnprintf(buf + len, PAGE_SIZE - len - 1, msg, ap);
94399 + va_end(ap);
94400 +
94401 + return;
94402 +}
94403 +
94404 +static void gr_log_end(int audit, int append_default)
94405 +{
94406 + char *buf = (audit == GR_DO_AUDIT) ? gr_audit_log_buf : gr_alert_log_buf;
94407 + if (append_default) {
94408 + struct task_struct *task = current;
94409 + struct task_struct *parent = task->real_parent;
94410 + const struct cred *cred = __task_cred(task);
94411 + const struct cred *pcred = __task_cred(parent);
94412 + unsigned int len = strlen(buf);
94413 +
94414 + 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));
94415 + }
94416 +
94417 + printk("%s\n", buf);
94418 +
94419 + return;
94420 +}
94421 +
94422 +void gr_log_varargs(int audit, const char *msg, int argtypes, ...)
94423 +{
94424 + int logtype;
94425 + char *result = (audit == GR_DO_AUDIT) ? "successful" : "denied";
94426 + char *str1 = NULL, *str2 = NULL, *str3 = NULL;
94427 + void *voidptr = NULL;
94428 + int num1 = 0, num2 = 0;
94429 + unsigned long ulong1 = 0, ulong2 = 0;
94430 + struct dentry *dentry = NULL;
94431 + struct vfsmount *mnt = NULL;
94432 + struct file *file = NULL;
94433 + struct task_struct *task = NULL;
94434 + struct vm_area_struct *vma = NULL;
94435 + const struct cred *cred, *pcred;
94436 + va_list ap;
94437 +
94438 + BEGIN_LOCKS(audit);
94439 + logtype = gr_log_start(audit);
94440 + if (logtype == FLOODING) {
94441 + END_LOCKS(audit);
94442 + return;
94443 + }
94444 + va_start(ap, argtypes);
94445 + switch (argtypes) {
94446 + case GR_TTYSNIFF:
94447 + task = va_arg(ap, struct task_struct *);
94448 + 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));
94449 + break;
94450 + case GR_SYSCTL_HIDDEN:
94451 + str1 = va_arg(ap, char *);
94452 + gr_log_middle_varargs(audit, msg, result, str1);
94453 + break;
94454 + case GR_RBAC:
94455 + dentry = va_arg(ap, struct dentry *);
94456 + mnt = va_arg(ap, struct vfsmount *);
94457 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt));
94458 + break;
94459 + case GR_RBAC_STR:
94460 + dentry = va_arg(ap, struct dentry *);
94461 + mnt = va_arg(ap, struct vfsmount *);
94462 + str1 = va_arg(ap, char *);
94463 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1);
94464 + break;
94465 + case GR_STR_RBAC:
94466 + str1 = va_arg(ap, char *);
94467 + dentry = va_arg(ap, struct dentry *);
94468 + mnt = va_arg(ap, struct vfsmount *);
94469 + gr_log_middle_varargs(audit, msg, result, str1, gr_to_filename(dentry, mnt));
94470 + break;
94471 + case GR_RBAC_MODE2:
94472 + dentry = va_arg(ap, struct dentry *);
94473 + mnt = va_arg(ap, struct vfsmount *);
94474 + str1 = va_arg(ap, char *);
94475 + str2 = va_arg(ap, char *);
94476 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1, str2);
94477 + break;
94478 + case GR_RBAC_MODE3:
94479 + dentry = va_arg(ap, struct dentry *);
94480 + mnt = va_arg(ap, struct vfsmount *);
94481 + str1 = va_arg(ap, char *);
94482 + str2 = va_arg(ap, char *);
94483 + str3 = va_arg(ap, char *);
94484 + gr_log_middle_varargs(audit, msg, result, gr_to_filename(dentry, mnt), str1, str2, str3);
94485 + break;
94486 + case GR_FILENAME:
94487 + dentry = va_arg(ap, struct dentry *);
94488 + mnt = va_arg(ap, struct vfsmount *);
94489 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt));
94490 + break;
94491 + case GR_STR_FILENAME:
94492 + str1 = va_arg(ap, char *);
94493 + dentry = va_arg(ap, struct dentry *);
94494 + mnt = va_arg(ap, struct vfsmount *);
94495 + gr_log_middle_varargs(audit, msg, str1, gr_to_filename(dentry, mnt));
94496 + break;
94497 + case GR_FILENAME_STR:
94498 + dentry = va_arg(ap, struct dentry *);
94499 + mnt = va_arg(ap, struct vfsmount *);
94500 + str1 = va_arg(ap, char *);
94501 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), str1);
94502 + break;
94503 + case GR_FILENAME_TWO_INT:
94504 + dentry = va_arg(ap, struct dentry *);
94505 + mnt = va_arg(ap, struct vfsmount *);
94506 + num1 = va_arg(ap, int);
94507 + num2 = va_arg(ap, int);
94508 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), num1, num2);
94509 + break;
94510 + case GR_FILENAME_TWO_INT_STR:
94511 + dentry = va_arg(ap, struct dentry *);
94512 + mnt = va_arg(ap, struct vfsmount *);
94513 + num1 = va_arg(ap, int);
94514 + num2 = va_arg(ap, int);
94515 + str1 = va_arg(ap, char *);
94516 + gr_log_middle_varargs(audit, msg, gr_to_filename(dentry, mnt), num1, num2, str1);
94517 + break;
94518 + case GR_TEXTREL:
94519 + str1 = va_arg(ap, char *);
94520 + file = va_arg(ap, struct file *);
94521 + ulong1 = va_arg(ap, unsigned long);
94522 + ulong2 = va_arg(ap, unsigned long);
94523 + gr_log_middle_varargs(audit, msg, str1, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>", ulong1, ulong2);
94524 + break;
94525 + case GR_PTRACE:
94526 + task = va_arg(ap, struct task_struct *);
94527 + 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));
94528 + break;
94529 + case GR_RESOURCE:
94530 + task = va_arg(ap, struct task_struct *);
94531 + cred = __task_cred(task);
94532 + pcred = __task_cred(task->real_parent);
94533 + ulong1 = va_arg(ap, unsigned long);
94534 + str1 = va_arg(ap, char *);
94535 + ulong2 = va_arg(ap, unsigned long);
94536 + 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));
94537 + break;
94538 + case GR_CAP:
94539 + task = va_arg(ap, struct task_struct *);
94540 + cred = __task_cred(task);
94541 + pcred = __task_cred(task->real_parent);
94542 + str1 = va_arg(ap, char *);
94543 + 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));
94544 + break;
94545 + case GR_SIG:
94546 + str1 = va_arg(ap, char *);
94547 + voidptr = va_arg(ap, void *);
94548 + gr_log_middle_varargs(audit, msg, str1, voidptr);
94549 + break;
94550 + case GR_SIG2:
94551 + task = va_arg(ap, struct task_struct *);
94552 + cred = __task_cred(task);
94553 + pcred = __task_cred(task->real_parent);
94554 + num1 = va_arg(ap, int);
94555 + 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));
94556 + break;
94557 + case GR_CRASH1:
94558 + task = va_arg(ap, struct task_struct *);
94559 + cred = __task_cred(task);
94560 + pcred = __task_cred(task->real_parent);
94561 + ulong1 = va_arg(ap, unsigned long);
94562 + 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);
94563 + break;
94564 + case GR_CRASH2:
94565 + task = va_arg(ap, struct task_struct *);
94566 + cred = __task_cred(task);
94567 + pcred = __task_cred(task->real_parent);
94568 + ulong1 = va_arg(ap, unsigned long);
94569 + 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);
94570 + break;
94571 + case GR_RWXMAP:
94572 + file = va_arg(ap, struct file *);
94573 + gr_log_middle_varargs(audit, msg, file ? gr_to_filename(file->f_path.dentry, file->f_path.mnt) : "<anonymous mapping>");
94574 + break;
94575 + case GR_RWXMAPVMA:
94576 + vma = va_arg(ap, struct vm_area_struct *);
94577 + if (vma->vm_file)
94578 + str1 = gr_to_filename(vma->vm_file->f_path.dentry, vma->vm_file->f_path.mnt);
94579 + else if (vma->vm_flags & (VM_GROWSDOWN | VM_GROWSUP))
94580 + str1 = "<stack>";
94581 + else if (vma->vm_start <= current->mm->brk &&
94582 + vma->vm_end >= current->mm->start_brk)
94583 + str1 = "<heap>";
94584 + else
94585 + str1 = "<anonymous mapping>";
94586 + gr_log_middle_varargs(audit, msg, str1);
94587 + break;
94588 + case GR_PSACCT:
94589 + {
94590 + unsigned int wday, cday;
94591 + __u8 whr, chr;
94592 + __u8 wmin, cmin;
94593 + __u8 wsec, csec;
94594 +
94595 + task = va_arg(ap, struct task_struct *);
94596 + wday = va_arg(ap, unsigned int);
94597 + cday = va_arg(ap, unsigned int);
94598 + whr = va_arg(ap, int);
94599 + chr = va_arg(ap, int);
94600 + wmin = va_arg(ap, int);
94601 + cmin = va_arg(ap, int);
94602 + wsec = va_arg(ap, int);
94603 + csec = va_arg(ap, int);
94604 + ulong1 = va_arg(ap, unsigned long);
94605 + cred = __task_cred(task);
94606 + pcred = __task_cred(task->real_parent);
94607 +
94608 + 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));
94609 + }
94610 + break;
94611 + default:
94612 + gr_log_middle(audit, msg, ap);
94613 + }
94614 + va_end(ap);
94615 + // these don't need DEFAULTSECARGS printed on the end
94616 + if (argtypes == GR_CRASH1 || argtypes == GR_CRASH2)
94617 + gr_log_end(audit, 0);
94618 + else
94619 + gr_log_end(audit, 1);
94620 + END_LOCKS(audit);
94621 +}
94622 diff --git a/grsecurity/grsec_mem.c b/grsecurity/grsec_mem.c
94623 new file mode 100644
94624 index 0000000..0e39d8c
94625 --- /dev/null
94626 +++ b/grsecurity/grsec_mem.c
94627 @@ -0,0 +1,48 @@
94628 +#include <linux/kernel.h>
94629 +#include <linux/sched.h>
94630 +#include <linux/mm.h>
94631 +#include <linux/mman.h>
94632 +#include <linux/module.h>
94633 +#include <linux/grinternal.h>
94634 +
94635 +void gr_handle_msr_write(void)
94636 +{
94637 + gr_log_noargs(GR_DONT_AUDIT, GR_MSRWRITE_MSG);
94638 + return;
94639 +}
94640 +EXPORT_SYMBOL_GPL(gr_handle_msr_write);
94641 +
94642 +void
94643 +gr_handle_ioperm(void)
94644 +{
94645 + gr_log_noargs(GR_DONT_AUDIT, GR_IOPERM_MSG);
94646 + return;
94647 +}
94648 +
94649 +void
94650 +gr_handle_iopl(void)
94651 +{
94652 + gr_log_noargs(GR_DONT_AUDIT, GR_IOPL_MSG);
94653 + return;
94654 +}
94655 +
94656 +void
94657 +gr_handle_mem_readwrite(u64 from, u64 to)
94658 +{
94659 + gr_log_two_u64(GR_DONT_AUDIT, GR_MEM_READWRITE_MSG, from, to);
94660 + return;
94661 +}
94662 +
94663 +void
94664 +gr_handle_vm86(void)
94665 +{
94666 + gr_log_noargs(GR_DONT_AUDIT, GR_VM86_MSG);
94667 + return;
94668 +}
94669 +
94670 +void
94671 +gr_log_badprocpid(const char *entry)
94672 +{
94673 + gr_log_str(GR_DONT_AUDIT, GR_BADPROCPID_MSG, entry);
94674 + return;
94675 +}
94676 diff --git a/grsecurity/grsec_mount.c b/grsecurity/grsec_mount.c
94677 new file mode 100644
94678 index 0000000..fe02bf4
94679 --- /dev/null
94680 +++ b/grsecurity/grsec_mount.c
94681 @@ -0,0 +1,65 @@
94682 +#include <linux/kernel.h>
94683 +#include <linux/sched.h>
94684 +#include <linux/mount.h>
94685 +#include <linux/major.h>
94686 +#include <linux/grsecurity.h>
94687 +#include <linux/grinternal.h>
94688 +
94689 +void
94690 +gr_log_remount(const char *devname, const int retval)
94691 +{
94692 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
94693 + if (grsec_enable_mount && (retval >= 0))
94694 + gr_log_str(GR_DO_AUDIT, GR_REMOUNT_AUDIT_MSG, devname ? devname : "none");
94695 +#endif
94696 + return;
94697 +}
94698 +
94699 +void
94700 +gr_log_unmount(const char *devname, const int retval)
94701 +{
94702 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
94703 + if (grsec_enable_mount && (retval >= 0))
94704 + gr_log_str(GR_DO_AUDIT, GR_UNMOUNT_AUDIT_MSG, devname ? devname : "none");
94705 +#endif
94706 + return;
94707 +}
94708 +
94709 +void
94710 +gr_log_mount(const char *from, struct path *to, const int retval)
94711 +{
94712 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
94713 + if (grsec_enable_mount && (retval >= 0))
94714 + gr_log_str_fs(GR_DO_AUDIT, GR_MOUNT_AUDIT_MSG, from ? from : "none", to->dentry, to->mnt);
94715 +#endif
94716 + return;
94717 +}
94718 +
94719 +int
94720 +gr_handle_rofs_mount(struct dentry *dentry, struct vfsmount *mnt, int mnt_flags)
94721 +{
94722 +#ifdef CONFIG_GRKERNSEC_ROFS
94723 + if (grsec_enable_rofs && !(mnt_flags & MNT_READONLY)) {
94724 + gr_log_fs_generic(GR_DO_AUDIT, GR_ROFS_MOUNT_MSG, dentry, mnt);
94725 + return -EPERM;
94726 + } else
94727 + return 0;
94728 +#endif
94729 + return 0;
94730 +}
94731 +
94732 +int
94733 +gr_handle_rofs_blockwrite(struct dentry *dentry, struct vfsmount *mnt, int acc_mode)
94734 +{
94735 +#ifdef CONFIG_GRKERNSEC_ROFS
94736 + struct inode *inode = d_backing_inode(dentry);
94737 +
94738 + if (grsec_enable_rofs && (acc_mode & MAY_WRITE) &&
94739 + inode && (S_ISBLK(inode->i_mode) || (S_ISCHR(inode->i_mode) && imajor(inode) == RAW_MAJOR))) {
94740 + gr_log_fs_generic(GR_DO_AUDIT, GR_ROFS_BLOCKWRITE_MSG, dentry, mnt);
94741 + return -EPERM;
94742 + } else
94743 + return 0;
94744 +#endif
94745 + return 0;
94746 +}
94747 diff --git a/grsecurity/grsec_pax.c b/grsecurity/grsec_pax.c
94748 new file mode 100644
94749 index 0000000..2ad7b96
94750 --- /dev/null
94751 +++ b/grsecurity/grsec_pax.c
94752 @@ -0,0 +1,47 @@
94753 +#include <linux/kernel.h>
94754 +#include <linux/sched.h>
94755 +#include <linux/mm.h>
94756 +#include <linux/file.h>
94757 +#include <linux/grinternal.h>
94758 +#include <linux/grsecurity.h>
94759 +
94760 +void
94761 +gr_log_textrel(struct vm_area_struct * vma, bool is_textrel_rw)
94762 +{
94763 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
94764 + if (grsec_enable_log_rwxmaps)
94765 + gr_log_textrel_ulong_ulong(GR_DONT_AUDIT, GR_TEXTREL_AUDIT_MSG,
94766 + is_textrel_rw ? "executable to writable" : "writable to executable",
94767 + vma->vm_file, vma->vm_start, vma->vm_pgoff);
94768 +#endif
94769 + return;
94770 +}
94771 +
94772 +void gr_log_ptgnustack(struct file *file)
94773 +{
94774 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
94775 + if (grsec_enable_log_rwxmaps)
94776 + gr_log_rwxmap(GR_DONT_AUDIT, GR_PTGNUSTACK_MSG, file);
94777 +#endif
94778 + return;
94779 +}
94780 +
94781 +void
94782 +gr_log_rwxmmap(struct file *file)
94783 +{
94784 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
94785 + if (grsec_enable_log_rwxmaps)
94786 + gr_log_rwxmap(GR_DONT_AUDIT, GR_RWXMMAP_MSG, file);
94787 +#endif
94788 + return;
94789 +}
94790 +
94791 +void
94792 +gr_log_rwxmprotect(struct vm_area_struct *vma)
94793 +{
94794 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
94795 + if (grsec_enable_log_rwxmaps)
94796 + gr_log_rwxmap_vma(GR_DONT_AUDIT, GR_RWXMPROTECT_MSG, vma);
94797 +#endif
94798 + return;
94799 +}
94800 diff --git a/grsecurity/grsec_proc.c b/grsecurity/grsec_proc.c
94801 new file mode 100644
94802 index 0000000..2005a3a
94803 --- /dev/null
94804 +++ b/grsecurity/grsec_proc.c
94805 @@ -0,0 +1,20 @@
94806 +#include <linux/kernel.h>
94807 +#include <linux/sched.h>
94808 +#include <linux/grsecurity.h>
94809 +#include <linux/grinternal.h>
94810 +
94811 +int gr_proc_is_restricted(void)
94812 +{
94813 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
94814 + const struct cred *cred = current_cred();
94815 +#endif
94816 +
94817 +#ifdef CONFIG_GRKERNSEC_PROC_USER
94818 + if (!uid_eq(cred->fsuid, GLOBAL_ROOT_UID))
94819 + return -EACCES;
94820 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
94821 + if (!uid_eq(cred->fsuid, GLOBAL_ROOT_UID) && !in_group_p(grsec_proc_gid))
94822 + return -EACCES;
94823 +#endif
94824 + return 0;
94825 +}
94826 diff --git a/grsecurity/grsec_ptrace.c b/grsecurity/grsec_ptrace.c
94827 new file mode 100644
94828 index 0000000..304c518
94829 --- /dev/null
94830 +++ b/grsecurity/grsec_ptrace.c
94831 @@ -0,0 +1,30 @@
94832 +#include <linux/kernel.h>
94833 +#include <linux/sched.h>
94834 +#include <linux/grinternal.h>
94835 +#include <linux/security.h>
94836 +
94837 +void
94838 +gr_audit_ptrace(struct task_struct *task)
94839 +{
94840 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
94841 + if (grsec_enable_audit_ptrace)
94842 + gr_log_ptrace(GR_DO_AUDIT, GR_PTRACE_AUDIT_MSG, task);
94843 +#endif
94844 + return;
94845 +}
94846 +
94847 +int
94848 +gr_ptrace_readexec(struct file *file, int unsafe_flags)
94849 +{
94850 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
94851 + const struct dentry *dentry = file->f_path.dentry;
94852 + const struct vfsmount *mnt = file->f_path.mnt;
94853 +
94854 + if (grsec_enable_ptrace_readexec && (unsafe_flags & LSM_UNSAFE_PTRACE) &&
94855 + (inode_permission(d_backing_inode(dentry), MAY_READ) || !gr_acl_handle_open(dentry, mnt, MAY_READ))) {
94856 + gr_log_fs_generic(GR_DONT_AUDIT, GR_PTRACE_READEXEC_MSG, dentry, mnt);
94857 + return -EACCES;
94858 + }
94859 +#endif
94860 + return 0;
94861 +}
94862 diff --git a/grsecurity/grsec_sig.c b/grsecurity/grsec_sig.c
94863 new file mode 100644
94864 index 0000000..3860c7e
94865 --- /dev/null
94866 +++ b/grsecurity/grsec_sig.c
94867 @@ -0,0 +1,236 @@
94868 +#include <linux/kernel.h>
94869 +#include <linux/sched.h>
94870 +#include <linux/fs.h>
94871 +#include <linux/delay.h>
94872 +#include <linux/grsecurity.h>
94873 +#include <linux/grinternal.h>
94874 +#include <linux/hardirq.h>
94875 +
94876 +char *signames[] = {
94877 + [SIGSEGV] = "Segmentation fault",
94878 + [SIGILL] = "Illegal instruction",
94879 + [SIGABRT] = "Abort",
94880 + [SIGBUS] = "Invalid alignment/Bus error"
94881 +};
94882 +
94883 +void
94884 +gr_log_signal(const int sig, const void *addr, const struct task_struct *t)
94885 +{
94886 +#ifdef CONFIG_GRKERNSEC_SIGNAL
94887 + if (grsec_enable_signal && ((sig == SIGSEGV) || (sig == SIGILL) ||
94888 + (sig == SIGABRT) || (sig == SIGBUS))) {
94889 + if (task_pid_nr(t) == task_pid_nr(current)) {
94890 + gr_log_sig_addr(GR_DONT_AUDIT_GOOD, GR_UNISIGLOG_MSG, signames[sig], addr);
94891 + } else {
94892 + gr_log_sig_task(GR_DONT_AUDIT_GOOD, GR_DUALSIGLOG_MSG, t, sig);
94893 + }
94894 + }
94895 +#endif
94896 + return;
94897 +}
94898 +
94899 +int
94900 +gr_handle_signal(const struct task_struct *p, const int sig)
94901 +{
94902 +#ifdef CONFIG_GRKERNSEC
94903 + /* ignore the 0 signal for protected task checks */
94904 + if (task_pid_nr(current) > 1 && sig && gr_check_protected_task(p)) {
94905 + gr_log_sig_task(GR_DONT_AUDIT, GR_SIG_ACL_MSG, p, sig);
94906 + return -EPERM;
94907 + } else if (gr_pid_is_chrooted((struct task_struct *)p)) {
94908 + return -EPERM;
94909 + }
94910 +#endif
94911 + return 0;
94912 +}
94913 +
94914 +#ifdef CONFIG_GRKERNSEC
94915 +extern int specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t);
94916 +
94917 +int gr_fake_force_sig(int sig, struct task_struct *t)
94918 +{
94919 + unsigned long int flags;
94920 + int ret, blocked, ignored;
94921 + struct k_sigaction *action;
94922 +
94923 + spin_lock_irqsave(&t->sighand->siglock, flags);
94924 + action = &t->sighand->action[sig-1];
94925 + ignored = action->sa.sa_handler == SIG_IGN;
94926 + blocked = sigismember(&t->blocked, sig);
94927 + if (blocked || ignored) {
94928 + action->sa.sa_handler = SIG_DFL;
94929 + if (blocked) {
94930 + sigdelset(&t->blocked, sig);
94931 + recalc_sigpending_and_wake(t);
94932 + }
94933 + }
94934 + if (action->sa.sa_handler == SIG_DFL)
94935 + t->signal->flags &= ~SIGNAL_UNKILLABLE;
94936 + ret = specific_send_sig_info(sig, SEND_SIG_PRIV, t);
94937 +
94938 + spin_unlock_irqrestore(&t->sighand->siglock, flags);
94939 +
94940 + return ret;
94941 +}
94942 +#endif
94943 +
94944 +#define GR_USER_BAN_TIME (15 * 60)
94945 +#define GR_DAEMON_BRUTE_TIME (30 * 60)
94946 +
94947 +void gr_handle_brute_attach(int dumpable)
94948 +{
94949 +#ifdef CONFIG_GRKERNSEC_BRUTE
94950 + struct task_struct *p = current;
94951 + kuid_t uid = GLOBAL_ROOT_UID;
94952 + int daemon = 0;
94953 +
94954 + if (!grsec_enable_brute)
94955 + return;
94956 +
94957 + rcu_read_lock();
94958 + read_lock(&tasklist_lock);
94959 + read_lock(&grsec_exec_file_lock);
94960 + if (p->real_parent && gr_is_same_file(p->real_parent->exec_file, p->exec_file)) {
94961 + p->real_parent->brute_expires = get_seconds() + GR_DAEMON_BRUTE_TIME;
94962 + p->real_parent->brute = 1;
94963 + daemon = 1;
94964 + } else {
94965 + const struct cred *cred = __task_cred(p), *cred2;
94966 + struct task_struct *tsk, *tsk2;
94967 +
94968 + if (dumpable != SUID_DUMP_USER && gr_is_global_nonroot(cred->uid)) {
94969 + struct user_struct *user;
94970 +
94971 + uid = cred->uid;
94972 +
94973 + /* this is put upon execution past expiration */
94974 + user = find_user(uid);
94975 + if (user == NULL)
94976 + goto unlock;
94977 + user->suid_banned = 1;
94978 + user->suid_ban_expires = get_seconds() + GR_USER_BAN_TIME;
94979 + if (user->suid_ban_expires == ~0UL)
94980 + user->suid_ban_expires--;
94981 +
94982 + /* only kill other threads of the same binary, from the same user */
94983 + do_each_thread(tsk2, tsk) {
94984 + cred2 = __task_cred(tsk);
94985 + if (tsk != p && uid_eq(cred2->uid, uid) && gr_is_same_file(tsk->exec_file, p->exec_file))
94986 + gr_fake_force_sig(SIGKILL, tsk);
94987 + } while_each_thread(tsk2, tsk);
94988 + }
94989 + }
94990 +unlock:
94991 + read_unlock(&grsec_exec_file_lock);
94992 + read_unlock(&tasklist_lock);
94993 + rcu_read_unlock();
94994 +
94995 + if (gr_is_global_nonroot(uid))
94996 + 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);
94997 + else if (daemon)
94998 + gr_log_noargs(GR_DONT_AUDIT, GR_BRUTE_DAEMON_MSG);
94999 +
95000 +#endif
95001 + return;
95002 +}
95003 +
95004 +void gr_handle_brute_check(void)
95005 +{
95006 +#ifdef CONFIG_GRKERNSEC_BRUTE
95007 + struct task_struct *p = current;
95008 +
95009 + if (unlikely(p->brute)) {
95010 + if (!grsec_enable_brute)
95011 + p->brute = 0;
95012 + else if (time_before(get_seconds(), p->brute_expires))
95013 + msleep(30 * 1000);
95014 + }
95015 +#endif
95016 + return;
95017 +}
95018 +
95019 +void gr_handle_kernel_exploit(void)
95020 +{
95021 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
95022 + const struct cred *cred;
95023 + struct task_struct *tsk, *tsk2;
95024 + struct user_struct *user;
95025 + kuid_t uid;
95026 +
95027 + if (in_irq() || in_serving_softirq() || in_nmi())
95028 + panic("grsec: halting the system due to suspicious kernel crash caused in interrupt context");
95029 +
95030 + uid = current_uid();
95031 +
95032 + if (gr_is_global_root(uid))
95033 + panic("grsec: halting the system due to suspicious kernel crash caused by root");
95034 + else {
95035 + /* kill all the processes of this user, hold a reference
95036 + to their creds struct, and prevent them from creating
95037 + another process until system reset
95038 + */
95039 + printk(KERN_ALERT "grsec: banning user with uid %u until system restart for suspicious kernel crash\n",
95040 + GR_GLOBAL_UID(uid));
95041 + /* we intentionally leak this ref */
95042 + user = get_uid(current->cred->user);
95043 + if (user)
95044 + user->kernel_banned = 1;
95045 +
95046 + /* kill all processes of this user */
95047 + read_lock(&tasklist_lock);
95048 + do_each_thread(tsk2, tsk) {
95049 + cred = __task_cred(tsk);
95050 + if (uid_eq(cred->uid, uid))
95051 + gr_fake_force_sig(SIGKILL, tsk);
95052 + } while_each_thread(tsk2, tsk);
95053 + read_unlock(&tasklist_lock);
95054 + }
95055 +#endif
95056 +}
95057 +
95058 +#ifdef CONFIG_GRKERNSEC_BRUTE
95059 +static bool suid_ban_expired(struct user_struct *user)
95060 +{
95061 + if (user->suid_ban_expires != ~0UL && time_after_eq(get_seconds(), user->suid_ban_expires)) {
95062 + user->suid_banned = 0;
95063 + user->suid_ban_expires = 0;
95064 + free_uid(user);
95065 + return true;
95066 + }
95067 +
95068 + return false;
95069 +}
95070 +#endif
95071 +
95072 +int gr_process_kernel_exec_ban(void)
95073 +{
95074 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
95075 + if (unlikely(current->cred->user->kernel_banned))
95076 + return -EPERM;
95077 +#endif
95078 + return 0;
95079 +}
95080 +
95081 +int gr_process_kernel_setuid_ban(struct user_struct *user)
95082 +{
95083 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
95084 + if (unlikely(user->kernel_banned))
95085 + gr_fake_force_sig(SIGKILL, current);
95086 +#endif
95087 + return 0;
95088 +}
95089 +
95090 +int gr_process_suid_exec_ban(const struct linux_binprm *bprm)
95091 +{
95092 +#ifdef CONFIG_GRKERNSEC_BRUTE
95093 + struct user_struct *user = current->cred->user;
95094 + if (unlikely(user->suid_banned)) {
95095 + if (suid_ban_expired(user))
95096 + return 0;
95097 + /* disallow execution of suid binaries only */
95098 + else if (!uid_eq(bprm->cred->euid, current->cred->uid))
95099 + return -EPERM;
95100 + }
95101 +#endif
95102 + return 0;
95103 +}
95104 diff --git a/grsecurity/grsec_sock.c b/grsecurity/grsec_sock.c
95105 new file mode 100644
95106 index 0000000..a523bd2
95107 --- /dev/null
95108 +++ b/grsecurity/grsec_sock.c
95109 @@ -0,0 +1,244 @@
95110 +#include <linux/kernel.h>
95111 +#include <linux/module.h>
95112 +#include <linux/sched.h>
95113 +#include <linux/file.h>
95114 +#include <linux/net.h>
95115 +#include <linux/in.h>
95116 +#include <linux/ip.h>
95117 +#include <net/sock.h>
95118 +#include <net/inet_sock.h>
95119 +#include <linux/grsecurity.h>
95120 +#include <linux/grinternal.h>
95121 +#include <linux/gracl.h>
95122 +
95123 +extern int gr_search_udp_recvmsg(const struct sock *sk, const struct sk_buff *skb);
95124 +extern int gr_search_udp_sendmsg(const struct sock *sk, const struct sockaddr_in *addr);
95125 +
95126 +EXPORT_SYMBOL_GPL(gr_search_udp_recvmsg);
95127 +EXPORT_SYMBOL_GPL(gr_search_udp_sendmsg);
95128 +
95129 +#ifdef CONFIG_UNIX_MODULE
95130 +EXPORT_SYMBOL_GPL(gr_acl_handle_unix);
95131 +EXPORT_SYMBOL_GPL(gr_acl_handle_mknod);
95132 +EXPORT_SYMBOL_GPL(gr_handle_chroot_unix);
95133 +EXPORT_SYMBOL_GPL(gr_handle_create);
95134 +#endif
95135 +
95136 +#ifdef CONFIG_GRKERNSEC
95137 +#define gr_conn_table_size 32749
95138 +struct conn_table_entry {
95139 + struct conn_table_entry *next;
95140 + struct signal_struct *sig;
95141 +};
95142 +
95143 +struct conn_table_entry *gr_conn_table[gr_conn_table_size];
95144 +DEFINE_SPINLOCK(gr_conn_table_lock);
95145 +
95146 +extern const char * gr_socktype_to_name(unsigned char type);
95147 +extern const char * gr_proto_to_name(unsigned char proto);
95148 +extern const char * gr_sockfamily_to_name(unsigned char family);
95149 +
95150 +static int
95151 +conn_hash(__u32 saddr, __u32 daddr, __u16 sport, __u16 dport, unsigned int size)
95152 +{
95153 + return ((daddr + saddr + (sport << 8) + (dport << 16)) % size);
95154 +}
95155 +
95156 +static int
95157 +conn_match(const struct signal_struct *sig, __u32 saddr, __u32 daddr,
95158 + __u16 sport, __u16 dport)
95159 +{
95160 + if (unlikely(sig->gr_saddr == saddr && sig->gr_daddr == daddr &&
95161 + sig->gr_sport == sport && sig->gr_dport == dport))
95162 + return 1;
95163 + else
95164 + return 0;
95165 +}
95166 +
95167 +static void gr_add_to_task_ip_table_nolock(struct signal_struct *sig, struct conn_table_entry *newent)
95168 +{
95169 + struct conn_table_entry **match;
95170 + unsigned int index;
95171 +
95172 + index = conn_hash(sig->gr_saddr, sig->gr_daddr,
95173 + sig->gr_sport, sig->gr_dport,
95174 + gr_conn_table_size);
95175 +
95176 + newent->sig = sig;
95177 +
95178 + match = &gr_conn_table[index];
95179 + newent->next = *match;
95180 + *match = newent;
95181 +
95182 + return;
95183 +}
95184 +
95185 +static void gr_del_task_from_ip_table_nolock(struct signal_struct *sig)
95186 +{
95187 + struct conn_table_entry *match, *last = NULL;
95188 + unsigned int index;
95189 +
95190 + index = conn_hash(sig->gr_saddr, sig->gr_daddr,
95191 + sig->gr_sport, sig->gr_dport,
95192 + gr_conn_table_size);
95193 +
95194 + match = gr_conn_table[index];
95195 + while (match && !conn_match(match->sig,
95196 + sig->gr_saddr, sig->gr_daddr, sig->gr_sport,
95197 + sig->gr_dport)) {
95198 + last = match;
95199 + match = match->next;
95200 + }
95201 +
95202 + if (match) {
95203 + if (last)
95204 + last->next = match->next;
95205 + else
95206 + gr_conn_table[index] = NULL;
95207 + kfree(match);
95208 + }
95209 +
95210 + return;
95211 +}
95212 +
95213 +static struct signal_struct * gr_lookup_task_ip_table(__u32 saddr, __u32 daddr,
95214 + __u16 sport, __u16 dport)
95215 +{
95216 + struct conn_table_entry *match;
95217 + unsigned int index;
95218 +
95219 + index = conn_hash(saddr, daddr, sport, dport, gr_conn_table_size);
95220 +
95221 + match = gr_conn_table[index];
95222 + while (match && !conn_match(match->sig, saddr, daddr, sport, dport))
95223 + match = match->next;
95224 +
95225 + if (match)
95226 + return match->sig;
95227 + else
95228 + return NULL;
95229 +}
95230 +
95231 +#endif
95232 +
95233 +void gr_update_task_in_ip_table(const struct inet_sock *inet)
95234 +{
95235 +#ifdef CONFIG_GRKERNSEC
95236 + struct signal_struct *sig = current->signal;
95237 + struct conn_table_entry *newent;
95238 +
95239 + newent = kmalloc(sizeof(struct conn_table_entry), GFP_ATOMIC);
95240 + if (newent == NULL)
95241 + return;
95242 + /* no bh lock needed since we are called with bh disabled */
95243 + spin_lock(&gr_conn_table_lock);
95244 + gr_del_task_from_ip_table_nolock(sig);
95245 + sig->gr_saddr = inet->inet_rcv_saddr;
95246 + sig->gr_daddr = inet->inet_daddr;
95247 + sig->gr_sport = inet->inet_sport;
95248 + sig->gr_dport = inet->inet_dport;
95249 + gr_add_to_task_ip_table_nolock(sig, newent);
95250 + spin_unlock(&gr_conn_table_lock);
95251 +#endif
95252 + return;
95253 +}
95254 +
95255 +void gr_del_task_from_ip_table(struct task_struct *task)
95256 +{
95257 +#ifdef CONFIG_GRKERNSEC
95258 + spin_lock_bh(&gr_conn_table_lock);
95259 + gr_del_task_from_ip_table_nolock(task->signal);
95260 + spin_unlock_bh(&gr_conn_table_lock);
95261 +#endif
95262 + return;
95263 +}
95264 +
95265 +void
95266 +gr_attach_curr_ip(const struct sock *sk)
95267 +{
95268 +#ifdef CONFIG_GRKERNSEC
95269 + struct signal_struct *p, *set;
95270 + const struct inet_sock *inet = inet_sk(sk);
95271 +
95272 + if (unlikely(sk->sk_protocol != IPPROTO_TCP))
95273 + return;
95274 +
95275 + set = current->signal;
95276 +
95277 + spin_lock_bh(&gr_conn_table_lock);
95278 + p = gr_lookup_task_ip_table(inet->inet_daddr, inet->inet_rcv_saddr,
95279 + inet->inet_dport, inet->inet_sport);
95280 + if (unlikely(p != NULL)) {
95281 + set->curr_ip = p->curr_ip;
95282 + set->used_accept = 1;
95283 + gr_del_task_from_ip_table_nolock(p);
95284 + spin_unlock_bh(&gr_conn_table_lock);
95285 + return;
95286 + }
95287 + spin_unlock_bh(&gr_conn_table_lock);
95288 +
95289 + set->curr_ip = inet->inet_daddr;
95290 + set->used_accept = 1;
95291 +#endif
95292 + return;
95293 +}
95294 +
95295 +int
95296 +gr_handle_sock_all(const int family, const int type, const int protocol)
95297 +{
95298 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
95299 + if (grsec_enable_socket_all && in_group_p(grsec_socket_all_gid) &&
95300 + (family != AF_UNIX)) {
95301 + if (family == AF_INET)
95302 + gr_log_str3(GR_DONT_AUDIT, GR_SOCK_MSG, gr_sockfamily_to_name(family), gr_socktype_to_name(type), gr_proto_to_name(protocol));
95303 + else
95304 + gr_log_str2_int(GR_DONT_AUDIT, GR_SOCK_NOINET_MSG, gr_sockfamily_to_name(family), gr_socktype_to_name(type), protocol);
95305 + return -EACCES;
95306 + }
95307 +#endif
95308 + return 0;
95309 +}
95310 +
95311 +int
95312 +gr_handle_sock_server(const struct sockaddr *sck)
95313 +{
95314 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
95315 + if (grsec_enable_socket_server &&
95316 + in_group_p(grsec_socket_server_gid) &&
95317 + sck && (sck->sa_family != AF_UNIX) &&
95318 + (sck->sa_family != AF_LOCAL)) {
95319 + gr_log_noargs(GR_DONT_AUDIT, GR_BIND_MSG);
95320 + return -EACCES;
95321 + }
95322 +#endif
95323 + return 0;
95324 +}
95325 +
95326 +int
95327 +gr_handle_sock_server_other(const struct sock *sck)
95328 +{
95329 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
95330 + if (grsec_enable_socket_server &&
95331 + in_group_p(grsec_socket_server_gid) &&
95332 + sck && (sck->sk_family != AF_UNIX) &&
95333 + (sck->sk_family != AF_LOCAL)) {
95334 + gr_log_noargs(GR_DONT_AUDIT, GR_BIND_MSG);
95335 + return -EACCES;
95336 + }
95337 +#endif
95338 + return 0;
95339 +}
95340 +
95341 +int
95342 +gr_handle_sock_client(const struct sockaddr *sck)
95343 +{
95344 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
95345 + if (grsec_enable_socket_client && in_group_p(grsec_socket_client_gid) &&
95346 + sck && (sck->sa_family != AF_UNIX) &&
95347 + (sck->sa_family != AF_LOCAL)) {
95348 + gr_log_noargs(GR_DONT_AUDIT, GR_CONNECT_MSG);
95349 + return -EACCES;
95350 + }
95351 +#endif
95352 + return 0;
95353 +}
95354 diff --git a/grsecurity/grsec_sysctl.c b/grsecurity/grsec_sysctl.c
95355 new file mode 100644
95356 index 0000000..aaec43c
95357 --- /dev/null
95358 +++ b/grsecurity/grsec_sysctl.c
95359 @@ -0,0 +1,488 @@
95360 +#include <linux/kernel.h>
95361 +#include <linux/sched.h>
95362 +#include <linux/sysctl.h>
95363 +#include <linux/grsecurity.h>
95364 +#include <linux/grinternal.h>
95365 +
95366 +int
95367 +gr_handle_sysctl_mod(const char *dirname, const char *name, const int op)
95368 +{
95369 +#ifdef CONFIG_GRKERNSEC_SYSCTL
95370 + if (dirname == NULL || name == NULL)
95371 + return 0;
95372 + if (!strcmp(dirname, "grsecurity") && grsec_lock && (op & MAY_WRITE)) {
95373 + gr_log_str(GR_DONT_AUDIT, GR_SYSCTL_MSG, name);
95374 + return -EACCES;
95375 + }
95376 +#endif
95377 + return 0;
95378 +}
95379 +
95380 +#if defined(CONFIG_GRKERNSEC_ROFS) || defined(CONFIG_GRKERNSEC_DENYUSB)
95381 +static int __maybe_unused __read_only one = 1;
95382 +#endif
95383 +
95384 +#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_ROFS) || \
95385 + defined(CONFIG_GRKERNSEC_DENYUSB)
95386 +struct ctl_table grsecurity_table[] = {
95387 +#ifdef CONFIG_GRKERNSEC_SYSCTL
95388 +#ifdef CONFIG_GRKERNSEC_SYSCTL_DISTRO
95389 +#ifdef CONFIG_GRKERNSEC_IO
95390 + {
95391 + .procname = "disable_priv_io",
95392 + .data = &grsec_disable_privio,
95393 + .maxlen = sizeof(int),
95394 + .mode = 0600,
95395 + .proc_handler = &proc_dointvec_secure,
95396 + },
95397 +#endif
95398 +#endif
95399 +#ifdef CONFIG_GRKERNSEC_LINK
95400 + {
95401 + .procname = "linking_restrictions",
95402 + .data = &grsec_enable_link,
95403 + .maxlen = sizeof(int),
95404 + .mode = 0600,
95405 + .proc_handler = &proc_dointvec_secure,
95406 + },
95407 +#endif
95408 +#ifdef CONFIG_GRKERNSEC_SYMLINKOWN
95409 + {
95410 + .procname = "enforce_symlinksifowner",
95411 + .data = &grsec_enable_symlinkown,
95412 + .maxlen = sizeof(int),
95413 + .mode = 0600,
95414 + .proc_handler = &proc_dointvec_secure,
95415 + },
95416 + {
95417 + .procname = "symlinkown_gid",
95418 + .data = &grsec_symlinkown_gid,
95419 + .maxlen = sizeof(int),
95420 + .mode = 0600,
95421 + .proc_handler = &proc_dointvec_secure,
95422 + },
95423 +#endif
95424 +#ifdef CONFIG_GRKERNSEC_BRUTE
95425 + {
95426 + .procname = "deter_bruteforce",
95427 + .data = &grsec_enable_brute,
95428 + .maxlen = sizeof(int),
95429 + .mode = 0600,
95430 + .proc_handler = &proc_dointvec_secure,
95431 + },
95432 +#endif
95433 +#ifdef CONFIG_GRKERNSEC_FIFO
95434 + {
95435 + .procname = "fifo_restrictions",
95436 + .data = &grsec_enable_fifo,
95437 + .maxlen = sizeof(int),
95438 + .mode = 0600,
95439 + .proc_handler = &proc_dointvec_secure,
95440 + },
95441 +#endif
95442 +#ifdef CONFIG_GRKERNSEC_PTRACE_READEXEC
95443 + {
95444 + .procname = "ptrace_readexec",
95445 + .data = &grsec_enable_ptrace_readexec,
95446 + .maxlen = sizeof(int),
95447 + .mode = 0600,
95448 + .proc_handler = &proc_dointvec_secure,
95449 + },
95450 +#endif
95451 +#ifdef CONFIG_GRKERNSEC_SETXID
95452 + {
95453 + .procname = "consistent_setxid",
95454 + .data = &grsec_enable_setxid,
95455 + .maxlen = sizeof(int),
95456 + .mode = 0600,
95457 + .proc_handler = &proc_dointvec_secure,
95458 + },
95459 +#endif
95460 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
95461 + {
95462 + .procname = "ip_blackhole",
95463 + .data = &grsec_enable_blackhole,
95464 + .maxlen = sizeof(int),
95465 + .mode = 0600,
95466 + .proc_handler = &proc_dointvec_secure,
95467 + },
95468 + {
95469 + .procname = "lastack_retries",
95470 + .data = &grsec_lastack_retries,
95471 + .maxlen = sizeof(int),
95472 + .mode = 0600,
95473 + .proc_handler = &proc_dointvec_secure,
95474 + },
95475 +#endif
95476 +#ifdef CONFIG_GRKERNSEC_EXECLOG
95477 + {
95478 + .procname = "exec_logging",
95479 + .data = &grsec_enable_execlog,
95480 + .maxlen = sizeof(int),
95481 + .mode = 0600,
95482 + .proc_handler = &proc_dointvec_secure,
95483 + },
95484 +#endif
95485 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
95486 + {
95487 + .procname = "rwxmap_logging",
95488 + .data = &grsec_enable_log_rwxmaps,
95489 + .maxlen = sizeof(int),
95490 + .mode = 0600,
95491 + .proc_handler = &proc_dointvec_secure,
95492 + },
95493 +#endif
95494 +#ifdef CONFIG_GRKERNSEC_SIGNAL
95495 + {
95496 + .procname = "signal_logging",
95497 + .data = &grsec_enable_signal,
95498 + .maxlen = sizeof(int),
95499 + .mode = 0600,
95500 + .proc_handler = &proc_dointvec_secure,
95501 + },
95502 +#endif
95503 +#ifdef CONFIG_GRKERNSEC_FORKFAIL
95504 + {
95505 + .procname = "forkfail_logging",
95506 + .data = &grsec_enable_forkfail,
95507 + .maxlen = sizeof(int),
95508 + .mode = 0600,
95509 + .proc_handler = &proc_dointvec_secure,
95510 + },
95511 +#endif
95512 +#ifdef CONFIG_GRKERNSEC_TIME
95513 + {
95514 + .procname = "timechange_logging",
95515 + .data = &grsec_enable_time,
95516 + .maxlen = sizeof(int),
95517 + .mode = 0600,
95518 + .proc_handler = &proc_dointvec_secure,
95519 + },
95520 +#endif
95521 +#ifdef CONFIG_GRKERNSEC_CHROOT_SHMAT
95522 + {
95523 + .procname = "chroot_deny_shmat",
95524 + .data = &grsec_enable_chroot_shmat,
95525 + .maxlen = sizeof(int),
95526 + .mode = 0600,
95527 + .proc_handler = &proc_dointvec_secure,
95528 + },
95529 +#endif
95530 +#ifdef CONFIG_GRKERNSEC_CHROOT_UNIX
95531 + {
95532 + .procname = "chroot_deny_unix",
95533 + .data = &grsec_enable_chroot_unix,
95534 + .maxlen = sizeof(int),
95535 + .mode = 0600,
95536 + .proc_handler = &proc_dointvec_secure,
95537 + },
95538 +#endif
95539 +#ifdef CONFIG_GRKERNSEC_CHROOT_MOUNT
95540 + {
95541 + .procname = "chroot_deny_mount",
95542 + .data = &grsec_enable_chroot_mount,
95543 + .maxlen = sizeof(int),
95544 + .mode = 0600,
95545 + .proc_handler = &proc_dointvec_secure,
95546 + },
95547 +#endif
95548 +#ifdef CONFIG_GRKERNSEC_CHROOT_FCHDIR
95549 + {
95550 + .procname = "chroot_deny_fchdir",
95551 + .data = &grsec_enable_chroot_fchdir,
95552 + .maxlen = sizeof(int),
95553 + .mode = 0600,
95554 + .proc_handler = &proc_dointvec_secure,
95555 + },
95556 +#endif
95557 +#ifdef CONFIG_GRKERNSEC_CHROOT_DOUBLE
95558 + {
95559 + .procname = "chroot_deny_chroot",
95560 + .data = &grsec_enable_chroot_double,
95561 + .maxlen = sizeof(int),
95562 + .mode = 0600,
95563 + .proc_handler = &proc_dointvec_secure,
95564 + },
95565 +#endif
95566 +#ifdef CONFIG_GRKERNSEC_CHROOT_PIVOT
95567 + {
95568 + .procname = "chroot_deny_pivot",
95569 + .data = &grsec_enable_chroot_pivot,
95570 + .maxlen = sizeof(int),
95571 + .mode = 0600,
95572 + .proc_handler = &proc_dointvec_secure,
95573 + },
95574 +#endif
95575 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHDIR
95576 + {
95577 + .procname = "chroot_enforce_chdir",
95578 + .data = &grsec_enable_chroot_chdir,
95579 + .maxlen = sizeof(int),
95580 + .mode = 0600,
95581 + .proc_handler = &proc_dointvec_secure,
95582 + },
95583 +#endif
95584 +#ifdef CONFIG_GRKERNSEC_CHROOT_CHMOD
95585 + {
95586 + .procname = "chroot_deny_chmod",
95587 + .data = &grsec_enable_chroot_chmod,
95588 + .maxlen = sizeof(int),
95589 + .mode = 0600,
95590 + .proc_handler = &proc_dointvec_secure,
95591 + },
95592 +#endif
95593 +#ifdef CONFIG_GRKERNSEC_CHROOT_MKNOD
95594 + {
95595 + .procname = "chroot_deny_mknod",
95596 + .data = &grsec_enable_chroot_mknod,
95597 + .maxlen = sizeof(int),
95598 + .mode = 0600,
95599 + .proc_handler = &proc_dointvec_secure,
95600 + },
95601 +#endif
95602 +#ifdef CONFIG_GRKERNSEC_CHROOT_NICE
95603 + {
95604 + .procname = "chroot_restrict_nice",
95605 + .data = &grsec_enable_chroot_nice,
95606 + .maxlen = sizeof(int),
95607 + .mode = 0600,
95608 + .proc_handler = &proc_dointvec_secure,
95609 + },
95610 +#endif
95611 +#ifdef CONFIG_GRKERNSEC_CHROOT_EXECLOG
95612 + {
95613 + .procname = "chroot_execlog",
95614 + .data = &grsec_enable_chroot_execlog,
95615 + .maxlen = sizeof(int),
95616 + .mode = 0600,
95617 + .proc_handler = &proc_dointvec_secure,
95618 + },
95619 +#endif
95620 +#ifdef CONFIG_GRKERNSEC_CHROOT_CAPS
95621 + {
95622 + .procname = "chroot_caps",
95623 + .data = &grsec_enable_chroot_caps,
95624 + .maxlen = sizeof(int),
95625 + .mode = 0600,
95626 + .proc_handler = &proc_dointvec_secure,
95627 + },
95628 +#endif
95629 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
95630 + {
95631 + .procname = "chroot_deny_bad_rename",
95632 + .data = &grsec_enable_chroot_rename,
95633 + .maxlen = sizeof(int),
95634 + .mode = 0600,
95635 + .proc_handler = &proc_dointvec_secure,
95636 + },
95637 +#endif
95638 +#ifdef CONFIG_GRKERNSEC_CHROOT_SYSCTL
95639 + {
95640 + .procname = "chroot_deny_sysctl",
95641 + .data = &grsec_enable_chroot_sysctl,
95642 + .maxlen = sizeof(int),
95643 + .mode = 0600,
95644 + .proc_handler = &proc_dointvec_secure,
95645 + },
95646 +#endif
95647 +#ifdef CONFIG_GRKERNSEC_TPE
95648 + {
95649 + .procname = "tpe",
95650 + .data = &grsec_enable_tpe,
95651 + .maxlen = sizeof(int),
95652 + .mode = 0600,
95653 + .proc_handler = &proc_dointvec_secure,
95654 + },
95655 + {
95656 + .procname = "tpe_gid",
95657 + .data = &grsec_tpe_gid,
95658 + .maxlen = sizeof(int),
95659 + .mode = 0600,
95660 + .proc_handler = &proc_dointvec_secure,
95661 + },
95662 +#endif
95663 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
95664 + {
95665 + .procname = "tpe_invert",
95666 + .data = &grsec_enable_tpe_invert,
95667 + .maxlen = sizeof(int),
95668 + .mode = 0600,
95669 + .proc_handler = &proc_dointvec_secure,
95670 + },
95671 +#endif
95672 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
95673 + {
95674 + .procname = "tpe_restrict_all",
95675 + .data = &grsec_enable_tpe_all,
95676 + .maxlen = sizeof(int),
95677 + .mode = 0600,
95678 + .proc_handler = &proc_dointvec_secure,
95679 + },
95680 +#endif
95681 +#ifdef CONFIG_GRKERNSEC_SOCKET_ALL
95682 + {
95683 + .procname = "socket_all",
95684 + .data = &grsec_enable_socket_all,
95685 + .maxlen = sizeof(int),
95686 + .mode = 0600,
95687 + .proc_handler = &proc_dointvec_secure,
95688 + },
95689 + {
95690 + .procname = "socket_all_gid",
95691 + .data = &grsec_socket_all_gid,
95692 + .maxlen = sizeof(int),
95693 + .mode = 0600,
95694 + .proc_handler = &proc_dointvec_secure,
95695 + },
95696 +#endif
95697 +#ifdef CONFIG_GRKERNSEC_SOCKET_CLIENT
95698 + {
95699 + .procname = "socket_client",
95700 + .data = &grsec_enable_socket_client,
95701 + .maxlen = sizeof(int),
95702 + .mode = 0600,
95703 + .proc_handler = &proc_dointvec_secure,
95704 + },
95705 + {
95706 + .procname = "socket_client_gid",
95707 + .data = &grsec_socket_client_gid,
95708 + .maxlen = sizeof(int),
95709 + .mode = 0600,
95710 + .proc_handler = &proc_dointvec_secure,
95711 + },
95712 +#endif
95713 +#ifdef CONFIG_GRKERNSEC_SOCKET_SERVER
95714 + {
95715 + .procname = "socket_server",
95716 + .data = &grsec_enable_socket_server,
95717 + .maxlen = sizeof(int),
95718 + .mode = 0600,
95719 + .proc_handler = &proc_dointvec_secure,
95720 + },
95721 + {
95722 + .procname = "socket_server_gid",
95723 + .data = &grsec_socket_server_gid,
95724 + .maxlen = sizeof(int),
95725 + .mode = 0600,
95726 + .proc_handler = &proc_dointvec_secure,
95727 + },
95728 +#endif
95729 +#ifdef CONFIG_GRKERNSEC_AUDIT_GROUP
95730 + {
95731 + .procname = "audit_group",
95732 + .data = &grsec_enable_group,
95733 + .maxlen = sizeof(int),
95734 + .mode = 0600,
95735 + .proc_handler = &proc_dointvec_secure,
95736 + },
95737 + {
95738 + .procname = "audit_gid",
95739 + .data = &grsec_audit_gid,
95740 + .maxlen = sizeof(int),
95741 + .mode = 0600,
95742 + .proc_handler = &proc_dointvec_secure,
95743 + },
95744 +#endif
95745 +#ifdef CONFIG_GRKERNSEC_AUDIT_CHDIR
95746 + {
95747 + .procname = "audit_chdir",
95748 + .data = &grsec_enable_chdir,
95749 + .maxlen = sizeof(int),
95750 + .mode = 0600,
95751 + .proc_handler = &proc_dointvec_secure,
95752 + },
95753 +#endif
95754 +#ifdef CONFIG_GRKERNSEC_AUDIT_MOUNT
95755 + {
95756 + .procname = "audit_mount",
95757 + .data = &grsec_enable_mount,
95758 + .maxlen = sizeof(int),
95759 + .mode = 0600,
95760 + .proc_handler = &proc_dointvec_secure,
95761 + },
95762 +#endif
95763 +#ifdef CONFIG_GRKERNSEC_DMESG
95764 + {
95765 + .procname = "dmesg",
95766 + .data = &grsec_enable_dmesg,
95767 + .maxlen = sizeof(int),
95768 + .mode = 0600,
95769 + .proc_handler = &proc_dointvec_secure,
95770 + },
95771 +#endif
95772 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
95773 + {
95774 + .procname = "chroot_findtask",
95775 + .data = &grsec_enable_chroot_findtask,
95776 + .maxlen = sizeof(int),
95777 + .mode = 0600,
95778 + .proc_handler = &proc_dointvec_secure,
95779 + },
95780 +#endif
95781 +#ifdef CONFIG_GRKERNSEC_RESLOG
95782 + {
95783 + .procname = "resource_logging",
95784 + .data = &grsec_resource_logging,
95785 + .maxlen = sizeof(int),
95786 + .mode = 0600,
95787 + .proc_handler = &proc_dointvec_secure,
95788 + },
95789 +#endif
95790 +#ifdef CONFIG_GRKERNSEC_AUDIT_PTRACE
95791 + {
95792 + .procname = "audit_ptrace",
95793 + .data = &grsec_enable_audit_ptrace,
95794 + .maxlen = sizeof(int),
95795 + .mode = 0600,
95796 + .proc_handler = &proc_dointvec_secure,
95797 + },
95798 +#endif
95799 +#ifdef CONFIG_GRKERNSEC_HARDEN_PTRACE
95800 + {
95801 + .procname = "harden_ptrace",
95802 + .data = &grsec_enable_harden_ptrace,
95803 + .maxlen = sizeof(int),
95804 + .mode = 0600,
95805 + .proc_handler = &proc_dointvec_secure,
95806 + },
95807 +#endif
95808 +#ifdef CONFIG_GRKERNSEC_HARDEN_IPC
95809 + {
95810 + .procname = "harden_ipc",
95811 + .data = &grsec_enable_harden_ipc,
95812 + .maxlen = sizeof(int),
95813 + .mode = 0600,
95814 + .proc_handler = &proc_dointvec_secure,
95815 + },
95816 +#endif
95817 + {
95818 + .procname = "grsec_lock",
95819 + .data = &grsec_lock,
95820 + .maxlen = sizeof(int),
95821 + .mode = 0600,
95822 + .proc_handler = &proc_dointvec_secure,
95823 + },
95824 +#endif
95825 +#ifdef CONFIG_GRKERNSEC_ROFS
95826 + {
95827 + .procname = "romount_protect",
95828 + .data = &grsec_enable_rofs,
95829 + .maxlen = sizeof(int),
95830 + .mode = 0600,
95831 + .proc_handler = &proc_dointvec_minmax_secure,
95832 + .extra1 = &one,
95833 + .extra2 = &one,
95834 + },
95835 +#endif
95836 +#if defined(CONFIG_GRKERNSEC_DENYUSB) && !defined(CONFIG_GRKERNSEC_DENYUSB_FORCE)
95837 + {
95838 + .procname = "deny_new_usb",
95839 + .data = &grsec_deny_new_usb,
95840 + .maxlen = sizeof(int),
95841 + .mode = 0600,
95842 + .proc_handler = &proc_dointvec_secure,
95843 + },
95844 +#endif
95845 + { }
95846 +};
95847 +#endif
95848 diff --git a/grsecurity/grsec_time.c b/grsecurity/grsec_time.c
95849 new file mode 100644
95850 index 0000000..61b514e
95851 --- /dev/null
95852 +++ b/grsecurity/grsec_time.c
95853 @@ -0,0 +1,16 @@
95854 +#include <linux/kernel.h>
95855 +#include <linux/sched.h>
95856 +#include <linux/grinternal.h>
95857 +#include <linux/module.h>
95858 +
95859 +void
95860 +gr_log_timechange(void)
95861 +{
95862 +#ifdef CONFIG_GRKERNSEC_TIME
95863 + if (grsec_enable_time)
95864 + gr_log_noargs(GR_DONT_AUDIT_GOOD, GR_TIME_MSG);
95865 +#endif
95866 + return;
95867 +}
95868 +
95869 +EXPORT_SYMBOL_GPL(gr_log_timechange);
95870 diff --git a/grsecurity/grsec_tpe.c b/grsecurity/grsec_tpe.c
95871 new file mode 100644
95872 index 0000000..9786671
95873 --- /dev/null
95874 +++ b/grsecurity/grsec_tpe.c
95875 @@ -0,0 +1,78 @@
95876 +#include <linux/kernel.h>
95877 +#include <linux/sched.h>
95878 +#include <linux/file.h>
95879 +#include <linux/fs.h>
95880 +#include <linux/grinternal.h>
95881 +
95882 +extern int gr_acl_tpe_check(void);
95883 +
95884 +int
95885 +gr_tpe_allow(const struct file *file)
95886 +{
95887 +#ifdef CONFIG_GRKERNSEC
95888 + struct inode *inode = d_backing_inode(file->f_path.dentry->d_parent);
95889 + struct inode *file_inode = d_backing_inode(file->f_path.dentry);
95890 + const struct cred *cred = current_cred();
95891 + char *msg = NULL;
95892 + char *msg2 = NULL;
95893 +
95894 + // never restrict root
95895 + if (gr_is_global_root(cred->uid))
95896 + return 1;
95897 +
95898 + if (grsec_enable_tpe) {
95899 +#ifdef CONFIG_GRKERNSEC_TPE_INVERT
95900 + if (grsec_enable_tpe_invert && !in_group_p(grsec_tpe_gid))
95901 + msg = "not being in trusted group";
95902 + else if (!grsec_enable_tpe_invert && in_group_p(grsec_tpe_gid))
95903 + msg = "being in untrusted group";
95904 +#else
95905 + if (in_group_p(grsec_tpe_gid))
95906 + msg = "being in untrusted group";
95907 +#endif
95908 + }
95909 + if (!msg && gr_acl_tpe_check())
95910 + msg = "being in untrusted role";
95911 +
95912 + // not in any affected group/role
95913 + if (!msg)
95914 + goto next_check;
95915 +
95916 + if (gr_is_global_nonroot(inode->i_uid))
95917 + msg2 = "file in non-root-owned directory";
95918 + else if (inode->i_mode & S_IWOTH)
95919 + msg2 = "file in world-writable directory";
95920 + else if (inode->i_mode & S_IWGRP)
95921 + msg2 = "file in group-writable directory";
95922 + else if (file_inode->i_mode & S_IWOTH)
95923 + msg2 = "file is world-writable";
95924 +
95925 + if (msg && msg2) {
95926 + char fullmsg[70] = {0};
95927 + snprintf(fullmsg, sizeof(fullmsg)-1, "%s and %s", msg, msg2);
95928 + gr_log_str_fs(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, fullmsg, file->f_path.dentry, file->f_path.mnt);
95929 + return 0;
95930 + }
95931 + msg = NULL;
95932 +next_check:
95933 +#ifdef CONFIG_GRKERNSEC_TPE_ALL
95934 + if (!grsec_enable_tpe || !grsec_enable_tpe_all)
95935 + return 1;
95936 +
95937 + if (gr_is_global_nonroot(inode->i_uid) && !uid_eq(inode->i_uid, cred->uid))
95938 + msg = "directory not owned by user";
95939 + else if (inode->i_mode & S_IWOTH)
95940 + msg = "file in world-writable directory";
95941 + else if (inode->i_mode & S_IWGRP)
95942 + msg = "file in group-writable directory";
95943 + else if (file_inode->i_mode & S_IWOTH)
95944 + msg = "file is world-writable";
95945 +
95946 + if (msg) {
95947 + gr_log_str_fs(GR_DONT_AUDIT, GR_EXEC_TPE_MSG, msg, file->f_path.dentry, file->f_path.mnt);
95948 + return 0;
95949 + }
95950 +#endif
95951 +#endif
95952 + return 1;
95953 +}
95954 diff --git a/grsecurity/grsec_usb.c b/grsecurity/grsec_usb.c
95955 new file mode 100644
95956 index 0000000..ae02d8e
95957 --- /dev/null
95958 +++ b/grsecurity/grsec_usb.c
95959 @@ -0,0 +1,15 @@
95960 +#include <linux/kernel.h>
95961 +#include <linux/grinternal.h>
95962 +#include <linux/module.h>
95963 +
95964 +int gr_handle_new_usb(void)
95965 +{
95966 +#ifdef CONFIG_GRKERNSEC_DENYUSB
95967 + if (grsec_deny_new_usb) {
95968 + printk(KERN_ALERT "grsec: denied insert of new USB device\n");
95969 + return 1;
95970 + }
95971 +#endif
95972 + return 0;
95973 +}
95974 +EXPORT_SYMBOL_GPL(gr_handle_new_usb);
95975 diff --git a/grsecurity/grsum.c b/grsecurity/grsum.c
95976 new file mode 100644
95977 index 0000000..158b330
95978 --- /dev/null
95979 +++ b/grsecurity/grsum.c
95980 @@ -0,0 +1,64 @@
95981 +#include <linux/err.h>
95982 +#include <linux/kernel.h>
95983 +#include <linux/sched.h>
95984 +#include <linux/mm.h>
95985 +#include <linux/scatterlist.h>
95986 +#include <linux/crypto.h>
95987 +#include <linux/gracl.h>
95988 +
95989 +
95990 +#if !defined(CONFIG_CRYPTO) || defined(CONFIG_CRYPTO_MODULE) || !defined(CONFIG_CRYPTO_SHA256) || defined(CONFIG_CRYPTO_SHA256_MODULE)
95991 +#error "crypto and sha256 must be built into the kernel"
95992 +#endif
95993 +
95994 +int
95995 +chkpw(struct gr_arg *entry, unsigned char *salt, unsigned char *sum)
95996 +{
95997 + struct crypto_hash *tfm;
95998 + struct hash_desc desc;
95999 + struct scatterlist sg[2];
96000 + unsigned char temp_sum[GR_SHA_LEN] __attribute__((aligned(__alignof__(unsigned long))));
96001 + unsigned long *tmpsumptr = (unsigned long *)temp_sum;
96002 + unsigned long *sumptr = (unsigned long *)sum;
96003 + int cryptres;
96004 + int retval = 1;
96005 + volatile int mismatched = 0;
96006 + volatile int dummy = 0;
96007 + unsigned int i;
96008 +
96009 + tfm = crypto_alloc_hash("sha256", 0, CRYPTO_ALG_ASYNC);
96010 + if (IS_ERR(tfm)) {
96011 + /* should never happen, since sha256 should be built in */
96012 + memset(entry->pw, 0, GR_PW_LEN);
96013 + return 1;
96014 + }
96015 +
96016 + sg_init_table(sg, 2);
96017 + sg_set_buf(&sg[0], salt, GR_SALT_LEN);
96018 + sg_set_buf(&sg[1], entry->pw, strlen(entry->pw));
96019 +
96020 + desc.tfm = tfm;
96021 + desc.flags = 0;
96022 +
96023 + cryptres = crypto_hash_digest(&desc, sg, GR_SALT_LEN + strlen(entry->pw),
96024 + temp_sum);
96025 +
96026 + memset(entry->pw, 0, GR_PW_LEN);
96027 +
96028 + if (cryptres)
96029 + goto out;
96030 +
96031 + for (i = 0; i < GR_SHA_LEN/sizeof(tmpsumptr[0]); i++)
96032 + if (sumptr[i] != tmpsumptr[i])
96033 + mismatched = 1;
96034 + else
96035 + dummy = 1; // waste a cycle
96036 +
96037 + if (!mismatched)
96038 + retval = dummy - 1;
96039 +
96040 +out:
96041 + crypto_free_hash(tfm);
96042 +
96043 + return retval;
96044 +}
96045 diff --git a/include/asm-generic/4level-fixup.h b/include/asm-generic/4level-fixup.h
96046 index 5bdab6b..9ae82fe 100644
96047 --- a/include/asm-generic/4level-fixup.h
96048 +++ b/include/asm-generic/4level-fixup.h
96049 @@ -14,8 +14,10 @@
96050 #define pmd_alloc(mm, pud, address) \
96051 ((unlikely(pgd_none(*(pud))) && __pmd_alloc(mm, pud, address))? \
96052 NULL: pmd_offset(pud, address))
96053 +#define pmd_alloc_kernel(mm, pud, address) pmd_alloc((mm), (pud), (address))
96054
96055 #define pud_alloc(mm, pgd, address) (pgd)
96056 +#define pud_alloc_kernel(mm, pgd, address) pud_alloc((mm), (pgd), (address))
96057 #define pud_offset(pgd, start) (pgd)
96058 #define pud_none(pud) 0
96059 #define pud_bad(pud) 0
96060 diff --git a/include/asm-generic/atomic-long.h b/include/asm-generic/atomic-long.h
96061 index b7babf0..1e4b4f1 100644
96062 --- a/include/asm-generic/atomic-long.h
96063 +++ b/include/asm-generic/atomic-long.h
96064 @@ -22,6 +22,12 @@
96065
96066 typedef atomic64_t atomic_long_t;
96067
96068 +#ifdef CONFIG_PAX_REFCOUNT
96069 +typedef atomic64_unchecked_t atomic_long_unchecked_t;
96070 +#else
96071 +typedef atomic64_t atomic_long_unchecked_t;
96072 +#endif
96073 +
96074 #define ATOMIC_LONG_INIT(i) ATOMIC64_INIT(i)
96075
96076 static inline long atomic_long_read(atomic_long_t *l)
96077 @@ -31,6 +37,15 @@ static inline long atomic_long_read(atomic_long_t *l)
96078 return (long)atomic64_read(v);
96079 }
96080
96081 +#ifdef CONFIG_PAX_REFCOUNT
96082 +static inline long atomic_long_read_unchecked(atomic_long_unchecked_t *l)
96083 +{
96084 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96085 +
96086 + return (long)atomic64_read_unchecked(v);
96087 +}
96088 +#endif
96089 +
96090 static inline void atomic_long_set(atomic_long_t *l, long i)
96091 {
96092 atomic64_t *v = (atomic64_t *)l;
96093 @@ -38,6 +53,15 @@ static inline void atomic_long_set(atomic_long_t *l, long i)
96094 atomic64_set(v, i);
96095 }
96096
96097 +#ifdef CONFIG_PAX_REFCOUNT
96098 +static inline void atomic_long_set_unchecked(atomic_long_unchecked_t *l, long i)
96099 +{
96100 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96101 +
96102 + atomic64_set_unchecked(v, i);
96103 +}
96104 +#endif
96105 +
96106 static inline void atomic_long_inc(atomic_long_t *l)
96107 {
96108 atomic64_t *v = (atomic64_t *)l;
96109 @@ -45,6 +69,15 @@ static inline void atomic_long_inc(atomic_long_t *l)
96110 atomic64_inc(v);
96111 }
96112
96113 +#ifdef CONFIG_PAX_REFCOUNT
96114 +static inline void atomic_long_inc_unchecked(atomic_long_unchecked_t *l)
96115 +{
96116 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96117 +
96118 + atomic64_inc_unchecked(v);
96119 +}
96120 +#endif
96121 +
96122 static inline void atomic_long_dec(atomic_long_t *l)
96123 {
96124 atomic64_t *v = (atomic64_t *)l;
96125 @@ -52,6 +85,15 @@ static inline void atomic_long_dec(atomic_long_t *l)
96126 atomic64_dec(v);
96127 }
96128
96129 +#ifdef CONFIG_PAX_REFCOUNT
96130 +static inline void atomic_long_dec_unchecked(atomic_long_unchecked_t *l)
96131 +{
96132 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96133 +
96134 + atomic64_dec_unchecked(v);
96135 +}
96136 +#endif
96137 +
96138 static inline void atomic_long_add(long i, atomic_long_t *l)
96139 {
96140 atomic64_t *v = (atomic64_t *)l;
96141 @@ -59,6 +101,15 @@ static inline void atomic_long_add(long i, atomic_long_t *l)
96142 atomic64_add(i, v);
96143 }
96144
96145 +#ifdef CONFIG_PAX_REFCOUNT
96146 +static inline void atomic_long_add_unchecked(long i, atomic_long_unchecked_t *l)
96147 +{
96148 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96149 +
96150 + atomic64_add_unchecked(i, v);
96151 +}
96152 +#endif
96153 +
96154 static inline void atomic_long_sub(long i, atomic_long_t *l)
96155 {
96156 atomic64_t *v = (atomic64_t *)l;
96157 @@ -66,6 +117,15 @@ static inline void atomic_long_sub(long i, atomic_long_t *l)
96158 atomic64_sub(i, v);
96159 }
96160
96161 +#ifdef CONFIG_PAX_REFCOUNT
96162 +static inline void atomic_long_sub_unchecked(long i, atomic_long_unchecked_t *l)
96163 +{
96164 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96165 +
96166 + atomic64_sub_unchecked(i, v);
96167 +}
96168 +#endif
96169 +
96170 static inline int atomic_long_sub_and_test(long i, atomic_long_t *l)
96171 {
96172 atomic64_t *v = (atomic64_t *)l;
96173 @@ -94,13 +154,22 @@ static inline int atomic_long_add_negative(long i, atomic_long_t *l)
96174 return atomic64_add_negative(i, v);
96175 }
96176
96177 -static inline long atomic_long_add_return(long i, atomic_long_t *l)
96178 +static inline long __intentional_overflow(-1) atomic_long_add_return(long i, atomic_long_t *l)
96179 {
96180 atomic64_t *v = (atomic64_t *)l;
96181
96182 return (long)atomic64_add_return(i, v);
96183 }
96184
96185 +#ifdef CONFIG_PAX_REFCOUNT
96186 +static inline long atomic_long_add_return_unchecked(long i, atomic_long_unchecked_t *l)
96187 +{
96188 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96189 +
96190 + return (long)atomic64_add_return_unchecked(i, v);
96191 +}
96192 +#endif
96193 +
96194 static inline long atomic_long_sub_return(long i, atomic_long_t *l)
96195 {
96196 atomic64_t *v = (atomic64_t *)l;
96197 @@ -115,6 +184,15 @@ static inline long atomic_long_inc_return(atomic_long_t *l)
96198 return (long)atomic64_inc_return(v);
96199 }
96200
96201 +#ifdef CONFIG_PAX_REFCOUNT
96202 +static inline long atomic_long_inc_return_unchecked(atomic_long_unchecked_t *l)
96203 +{
96204 + atomic64_unchecked_t *v = (atomic64_unchecked_t *)l;
96205 +
96206 + return (long)atomic64_inc_return_unchecked(v);
96207 +}
96208 +#endif
96209 +
96210 static inline long atomic_long_dec_return(atomic_long_t *l)
96211 {
96212 atomic64_t *v = (atomic64_t *)l;
96213 @@ -140,6 +218,12 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
96214
96215 typedef atomic_t atomic_long_t;
96216
96217 +#ifdef CONFIG_PAX_REFCOUNT
96218 +typedef atomic_unchecked_t atomic_long_unchecked_t;
96219 +#else
96220 +typedef atomic_t atomic_long_unchecked_t;
96221 +#endif
96222 +
96223 #define ATOMIC_LONG_INIT(i) ATOMIC_INIT(i)
96224 static inline long atomic_long_read(atomic_long_t *l)
96225 {
96226 @@ -148,6 +232,15 @@ static inline long atomic_long_read(atomic_long_t *l)
96227 return (long)atomic_read(v);
96228 }
96229
96230 +#ifdef CONFIG_PAX_REFCOUNT
96231 +static inline long atomic_long_read_unchecked(atomic_long_unchecked_t *l)
96232 +{
96233 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96234 +
96235 + return (long)atomic_read_unchecked(v);
96236 +}
96237 +#endif
96238 +
96239 static inline void atomic_long_set(atomic_long_t *l, long i)
96240 {
96241 atomic_t *v = (atomic_t *)l;
96242 @@ -155,6 +248,15 @@ static inline void atomic_long_set(atomic_long_t *l, long i)
96243 atomic_set(v, i);
96244 }
96245
96246 +#ifdef CONFIG_PAX_REFCOUNT
96247 +static inline void atomic_long_set_unchecked(atomic_long_unchecked_t *l, long i)
96248 +{
96249 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96250 +
96251 + atomic_set_unchecked(v, i);
96252 +}
96253 +#endif
96254 +
96255 static inline void atomic_long_inc(atomic_long_t *l)
96256 {
96257 atomic_t *v = (atomic_t *)l;
96258 @@ -162,6 +264,15 @@ static inline void atomic_long_inc(atomic_long_t *l)
96259 atomic_inc(v);
96260 }
96261
96262 +#ifdef CONFIG_PAX_REFCOUNT
96263 +static inline void atomic_long_inc_unchecked(atomic_long_unchecked_t *l)
96264 +{
96265 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96266 +
96267 + atomic_inc_unchecked(v);
96268 +}
96269 +#endif
96270 +
96271 static inline void atomic_long_dec(atomic_long_t *l)
96272 {
96273 atomic_t *v = (atomic_t *)l;
96274 @@ -169,6 +280,15 @@ static inline void atomic_long_dec(atomic_long_t *l)
96275 atomic_dec(v);
96276 }
96277
96278 +#ifdef CONFIG_PAX_REFCOUNT
96279 +static inline void atomic_long_dec_unchecked(atomic_long_unchecked_t *l)
96280 +{
96281 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96282 +
96283 + atomic_dec_unchecked(v);
96284 +}
96285 +#endif
96286 +
96287 static inline void atomic_long_add(long i, atomic_long_t *l)
96288 {
96289 atomic_t *v = (atomic_t *)l;
96290 @@ -176,6 +296,15 @@ static inline void atomic_long_add(long i, atomic_long_t *l)
96291 atomic_add(i, v);
96292 }
96293
96294 +#ifdef CONFIG_PAX_REFCOUNT
96295 +static inline void atomic_long_add_unchecked(long i, atomic_long_unchecked_t *l)
96296 +{
96297 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96298 +
96299 + atomic_add_unchecked(i, v);
96300 +}
96301 +#endif
96302 +
96303 static inline void atomic_long_sub(long i, atomic_long_t *l)
96304 {
96305 atomic_t *v = (atomic_t *)l;
96306 @@ -183,6 +312,15 @@ static inline void atomic_long_sub(long i, atomic_long_t *l)
96307 atomic_sub(i, v);
96308 }
96309
96310 +#ifdef CONFIG_PAX_REFCOUNT
96311 +static inline void atomic_long_sub_unchecked(long i, atomic_long_unchecked_t *l)
96312 +{
96313 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96314 +
96315 + atomic_sub_unchecked(i, v);
96316 +}
96317 +#endif
96318 +
96319 static inline int atomic_long_sub_and_test(long i, atomic_long_t *l)
96320 {
96321 atomic_t *v = (atomic_t *)l;
96322 @@ -211,13 +349,23 @@ static inline int atomic_long_add_negative(long i, atomic_long_t *l)
96323 return atomic_add_negative(i, v);
96324 }
96325
96326 -static inline long atomic_long_add_return(long i, atomic_long_t *l)
96327 +static inline long __intentional_overflow(-1) atomic_long_add_return(long i, atomic_long_t *l)
96328 {
96329 atomic_t *v = (atomic_t *)l;
96330
96331 return (long)atomic_add_return(i, v);
96332 }
96333
96334 +#ifdef CONFIG_PAX_REFCOUNT
96335 +static inline long atomic_long_add_return_unchecked(long i, atomic_long_unchecked_t *l)
96336 +{
96337 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96338 +
96339 + return (long)atomic_add_return_unchecked(i, v);
96340 +}
96341 +
96342 +#endif
96343 +
96344 static inline long atomic_long_sub_return(long i, atomic_long_t *l)
96345 {
96346 atomic_t *v = (atomic_t *)l;
96347 @@ -232,6 +380,15 @@ static inline long atomic_long_inc_return(atomic_long_t *l)
96348 return (long)atomic_inc_return(v);
96349 }
96350
96351 +#ifdef CONFIG_PAX_REFCOUNT
96352 +static inline long atomic_long_inc_return_unchecked(atomic_long_unchecked_t *l)
96353 +{
96354 + atomic_unchecked_t *v = (atomic_unchecked_t *)l;
96355 +
96356 + return (long)atomic_inc_return_unchecked(v);
96357 +}
96358 +#endif
96359 +
96360 static inline long atomic_long_dec_return(atomic_long_t *l)
96361 {
96362 atomic_t *v = (atomic_t *)l;
96363 @@ -255,4 +412,57 @@ static inline long atomic_long_add_unless(atomic_long_t *l, long a, long u)
96364
96365 #endif /* BITS_PER_LONG == 64 */
96366
96367 +#ifdef CONFIG_PAX_REFCOUNT
96368 +static inline void pax_refcount_needs_these_functions(void)
96369 +{
96370 + atomic_read_unchecked((atomic_unchecked_t *)NULL);
96371 + atomic_set_unchecked((atomic_unchecked_t *)NULL, 0);
96372 + atomic_add_unchecked(0, (atomic_unchecked_t *)NULL);
96373 + atomic_sub_unchecked(0, (atomic_unchecked_t *)NULL);
96374 + atomic_inc_unchecked((atomic_unchecked_t *)NULL);
96375 + (void)atomic_inc_and_test_unchecked((atomic_unchecked_t *)NULL);
96376 + atomic_inc_return_unchecked((atomic_unchecked_t *)NULL);
96377 + atomic_add_return_unchecked(0, (atomic_unchecked_t *)NULL);
96378 + atomic_dec_unchecked((atomic_unchecked_t *)NULL);
96379 + atomic_cmpxchg_unchecked((atomic_unchecked_t *)NULL, 0, 0);
96380 + (void)atomic_xchg_unchecked((atomic_unchecked_t *)NULL, 0);
96381 +#ifdef CONFIG_X86
96382 + atomic_clear_mask_unchecked(0, NULL);
96383 + atomic_set_mask_unchecked(0, NULL);
96384 +#endif
96385 +
96386 + atomic_long_read_unchecked((atomic_long_unchecked_t *)NULL);
96387 + atomic_long_set_unchecked((atomic_long_unchecked_t *)NULL, 0);
96388 + atomic_long_add_unchecked(0, (atomic_long_unchecked_t *)NULL);
96389 + atomic_long_sub_unchecked(0, (atomic_long_unchecked_t *)NULL);
96390 + atomic_long_inc_unchecked((atomic_long_unchecked_t *)NULL);
96391 + atomic_long_add_return_unchecked(0, (atomic_long_unchecked_t *)NULL);
96392 + atomic_long_inc_return_unchecked((atomic_long_unchecked_t *)NULL);
96393 + atomic_long_dec_unchecked((atomic_long_unchecked_t *)NULL);
96394 +}
96395 +#else
96396 +#define atomic_read_unchecked(v) atomic_read(v)
96397 +#define atomic_set_unchecked(v, i) atomic_set((v), (i))
96398 +#define atomic_add_unchecked(i, v) atomic_add((i), (v))
96399 +#define atomic_sub_unchecked(i, v) atomic_sub((i), (v))
96400 +#define atomic_inc_unchecked(v) atomic_inc(v)
96401 +#define atomic_inc_and_test_unchecked(v) atomic_inc_and_test(v)
96402 +#define atomic_inc_return_unchecked(v) atomic_inc_return(v)
96403 +#define atomic_add_return_unchecked(i, v) atomic_add_return((i), (v))
96404 +#define atomic_dec_unchecked(v) atomic_dec(v)
96405 +#define atomic_cmpxchg_unchecked(v, o, n) atomic_cmpxchg((v), (o), (n))
96406 +#define atomic_xchg_unchecked(v, i) atomic_xchg((v), (i))
96407 +#define atomic_clear_mask_unchecked(mask, v) atomic_clear_mask((mask), (v))
96408 +#define atomic_set_mask_unchecked(mask, v) atomic_set_mask((mask), (v))
96409 +
96410 +#define atomic_long_read_unchecked(v) atomic_long_read(v)
96411 +#define atomic_long_set_unchecked(v, i) atomic_long_set((v), (i))
96412 +#define atomic_long_add_unchecked(i, v) atomic_long_add((i), (v))
96413 +#define atomic_long_sub_unchecked(i, v) atomic_long_sub((i), (v))
96414 +#define atomic_long_inc_unchecked(v) atomic_long_inc(v)
96415 +#define atomic_long_add_return_unchecked(i, v) atomic_long_add_return((i), (v))
96416 +#define atomic_long_inc_return_unchecked(v) atomic_long_inc_return(v)
96417 +#define atomic_long_dec_unchecked(v) atomic_long_dec(v)
96418 +#endif
96419 +
96420 #endif /* _ASM_GENERIC_ATOMIC_LONG_H */
96421 diff --git a/include/asm-generic/atomic64.h b/include/asm-generic/atomic64.h
96422 index 30ad9c8..c70c170 100644
96423 --- a/include/asm-generic/atomic64.h
96424 +++ b/include/asm-generic/atomic64.h
96425 @@ -16,6 +16,8 @@ typedef struct {
96426 long long counter;
96427 } atomic64_t;
96428
96429 +typedef atomic64_t atomic64_unchecked_t;
96430 +
96431 #define ATOMIC64_INIT(i) { (i) }
96432
96433 extern long long atomic64_read(const atomic64_t *v);
96434 @@ -51,4 +53,14 @@ extern int atomic64_add_unless(atomic64_t *v, long long a, long long u);
96435 #define atomic64_dec_and_test(v) (atomic64_dec_return((v)) == 0)
96436 #define atomic64_inc_not_zero(v) atomic64_add_unless((v), 1LL, 0LL)
96437
96438 +#define atomic64_read_unchecked(v) atomic64_read(v)
96439 +#define atomic64_set_unchecked(v, i) atomic64_set((v), (i))
96440 +#define atomic64_add_unchecked(a, v) atomic64_add((a), (v))
96441 +#define atomic64_add_return_unchecked(a, v) atomic64_add_return((a), (v))
96442 +#define atomic64_sub_unchecked(a, v) atomic64_sub((a), (v))
96443 +#define atomic64_inc_unchecked(v) atomic64_inc(v)
96444 +#define atomic64_inc_return_unchecked(v) atomic64_inc_return(v)
96445 +#define atomic64_dec_unchecked(v) atomic64_dec(v)
96446 +#define atomic64_cmpxchg_unchecked(v, o, n) atomic64_cmpxchg((v), (o), (n))
96447 +
96448 #endif /* _ASM_GENERIC_ATOMIC64_H */
96449 diff --git a/include/asm-generic/barrier.h b/include/asm-generic/barrier.h
96450 index 55e3abc..104e2a1 100644
96451 --- a/include/asm-generic/barrier.h
96452 +++ b/include/asm-generic/barrier.h
96453 @@ -108,7 +108,7 @@
96454 do { \
96455 compiletime_assert_atomic_type(*p); \
96456 smp_mb(); \
96457 - ACCESS_ONCE(*p) = (v); \
96458 + ACCESS_ONCE_RW(*p) = (v); \
96459 } while (0)
96460
96461 #define smp_load_acquire(p) \
96462 diff --git a/include/asm-generic/bitops/__fls.h b/include/asm-generic/bitops/__fls.h
96463 index a60a7cc..0fe12f2 100644
96464 --- a/include/asm-generic/bitops/__fls.h
96465 +++ b/include/asm-generic/bitops/__fls.h
96466 @@ -9,7 +9,7 @@
96467 *
96468 * Undefined if no set bit exists, so code should check against 0 first.
96469 */
96470 -static __always_inline unsigned long __fls(unsigned long word)
96471 +static __always_inline unsigned long __intentional_overflow(-1) __fls(unsigned long word)
96472 {
96473 int num = BITS_PER_LONG - 1;
96474
96475 diff --git a/include/asm-generic/bitops/fls.h b/include/asm-generic/bitops/fls.h
96476 index 0576d1f..dad6c71 100644
96477 --- a/include/asm-generic/bitops/fls.h
96478 +++ b/include/asm-generic/bitops/fls.h
96479 @@ -9,7 +9,7 @@
96480 * Note fls(0) = 0, fls(1) = 1, fls(0x80000000) = 32.
96481 */
96482
96483 -static __always_inline int fls(int x)
96484 +static __always_inline int __intentional_overflow(-1) fls(int x)
96485 {
96486 int r = 32;
96487
96488 diff --git a/include/asm-generic/bitops/fls64.h b/include/asm-generic/bitops/fls64.h
96489 index b097cf8..3d40e14 100644
96490 --- a/include/asm-generic/bitops/fls64.h
96491 +++ b/include/asm-generic/bitops/fls64.h
96492 @@ -15,7 +15,7 @@
96493 * at position 64.
96494 */
96495 #if BITS_PER_LONG == 32
96496 -static __always_inline int fls64(__u64 x)
96497 +static __always_inline int __intentional_overflow(-1) fls64(__u64 x)
96498 {
96499 __u32 h = x >> 32;
96500 if (h)
96501 @@ -23,7 +23,7 @@ static __always_inline int fls64(__u64 x)
96502 return fls(x);
96503 }
96504 #elif BITS_PER_LONG == 64
96505 -static __always_inline int fls64(__u64 x)
96506 +static __always_inline int __intentional_overflow(-1) fls64(__u64 x)
96507 {
96508 if (x == 0)
96509 return 0;
96510 diff --git a/include/asm-generic/bug.h b/include/asm-generic/bug.h
96511 index 630dd23..8c1dcb6b 100644
96512 --- a/include/asm-generic/bug.h
96513 +++ b/include/asm-generic/bug.h
96514 @@ -62,13 +62,13 @@ struct bug_entry {
96515 * to provide better diagnostics.
96516 */
96517 #ifndef __WARN_TAINT
96518 -extern __printf(3, 4)
96519 +extern __printf(3, 4) __nocapture(1, 3, 4)
96520 void warn_slowpath_fmt(const char *file, const int line,
96521 const char *fmt, ...);
96522 -extern __printf(4, 5)
96523 +extern __printf(4, 5) __nocapture(1, 4, 5)
96524 void warn_slowpath_fmt_taint(const char *file, const int line, unsigned taint,
96525 const char *fmt, ...);
96526 -extern void warn_slowpath_null(const char *file, const int line);
96527 +extern __nocapture(1) void warn_slowpath_null(const char *file, const int line);
96528 #define WANT_WARN_ON_SLOWPATH
96529 #define __WARN() warn_slowpath_null(__FILE__, __LINE__)
96530 #define __WARN_printf(arg...) warn_slowpath_fmt(__FILE__, __LINE__, arg)
96531 diff --git a/include/asm-generic/cache.h b/include/asm-generic/cache.h
96532 index 1bfcfe5..e04c5c9 100644
96533 --- a/include/asm-generic/cache.h
96534 +++ b/include/asm-generic/cache.h
96535 @@ -6,7 +6,7 @@
96536 * cache lines need to provide their own cache.h.
96537 */
96538
96539 -#define L1_CACHE_SHIFT 5
96540 -#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
96541 +#define L1_CACHE_SHIFT 5UL
96542 +#define L1_CACHE_BYTES (1UL << L1_CACHE_SHIFT)
96543
96544 #endif /* __ASM_GENERIC_CACHE_H */
96545 diff --git a/include/asm-generic/emergency-restart.h b/include/asm-generic/emergency-restart.h
96546 index 0d68a1e..b74a761 100644
96547 --- a/include/asm-generic/emergency-restart.h
96548 +++ b/include/asm-generic/emergency-restart.h
96549 @@ -1,7 +1,7 @@
96550 #ifndef _ASM_GENERIC_EMERGENCY_RESTART_H
96551 #define _ASM_GENERIC_EMERGENCY_RESTART_H
96552
96553 -static inline void machine_emergency_restart(void)
96554 +static inline __noreturn void machine_emergency_restart(void)
96555 {
96556 machine_restart(NULL);
96557 }
96558 diff --git a/include/asm-generic/kmap_types.h b/include/asm-generic/kmap_types.h
96559 index 90f99c7..00ce236 100644
96560 --- a/include/asm-generic/kmap_types.h
96561 +++ b/include/asm-generic/kmap_types.h
96562 @@ -2,9 +2,9 @@
96563 #define _ASM_GENERIC_KMAP_TYPES_H
96564
96565 #ifdef __WITH_KM_FENCE
96566 -# define KM_TYPE_NR 41
96567 +# define KM_TYPE_NR 42
96568 #else
96569 -# define KM_TYPE_NR 20
96570 +# define KM_TYPE_NR 21
96571 #endif
96572
96573 #endif
96574 diff --git a/include/asm-generic/local.h b/include/asm-generic/local.h
96575 index 9ceb03b..62b0b8f 100644
96576 --- a/include/asm-generic/local.h
96577 +++ b/include/asm-generic/local.h
96578 @@ -23,24 +23,37 @@ typedef struct
96579 atomic_long_t a;
96580 } local_t;
96581
96582 +typedef struct {
96583 + atomic_long_unchecked_t a;
96584 +} local_unchecked_t;
96585 +
96586 #define LOCAL_INIT(i) { ATOMIC_LONG_INIT(i) }
96587
96588 #define local_read(l) atomic_long_read(&(l)->a)
96589 +#define local_read_unchecked(l) atomic_long_read_unchecked(&(l)->a)
96590 #define local_set(l,i) atomic_long_set((&(l)->a),(i))
96591 +#define local_set_unchecked(l,i) atomic_long_set_unchecked((&(l)->a),(i))
96592 #define local_inc(l) atomic_long_inc(&(l)->a)
96593 +#define local_inc_unchecked(l) atomic_long_inc_unchecked(&(l)->a)
96594 #define local_dec(l) atomic_long_dec(&(l)->a)
96595 +#define local_dec_unchecked(l) atomic_long_dec_unchecked(&(l)->a)
96596 #define local_add(i,l) atomic_long_add((i),(&(l)->a))
96597 +#define local_add_unchecked(i,l) atomic_long_add_unchecked((i),(&(l)->a))
96598 #define local_sub(i,l) atomic_long_sub((i),(&(l)->a))
96599 +#define local_sub_unchecked(i,l) atomic_long_sub_unchecked((i),(&(l)->a))
96600
96601 #define local_sub_and_test(i, l) atomic_long_sub_and_test((i), (&(l)->a))
96602 #define local_dec_and_test(l) atomic_long_dec_and_test(&(l)->a)
96603 #define local_inc_and_test(l) atomic_long_inc_and_test(&(l)->a)
96604 #define local_add_negative(i, l) atomic_long_add_negative((i), (&(l)->a))
96605 #define local_add_return(i, l) atomic_long_add_return((i), (&(l)->a))
96606 +#define local_add_return_unchecked(i, l) atomic_long_add_return_unchecked((i), (&(l)->a))
96607 #define local_sub_return(i, l) atomic_long_sub_return((i), (&(l)->a))
96608 #define local_inc_return(l) atomic_long_inc_return(&(l)->a)
96609 +#define local_dec_return(l) atomic_long_dec_return(&(l)->a)
96610
96611 #define local_cmpxchg(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
96612 +#define local_cmpxchg_unchecked(l, o, n) atomic_long_cmpxchg((&(l)->a), (o), (n))
96613 #define local_xchg(l, n) atomic_long_xchg((&(l)->a), (n))
96614 #define local_add_unless(l, _a, u) atomic_long_add_unless((&(l)->a), (_a), (u))
96615 #define local_inc_not_zero(l) atomic_long_inc_not_zero(&(l)->a)
96616 diff --git a/include/asm-generic/pgtable-nopmd.h b/include/asm-generic/pgtable-nopmd.h
96617 index 725612b..9cc513a 100644
96618 --- a/include/asm-generic/pgtable-nopmd.h
96619 +++ b/include/asm-generic/pgtable-nopmd.h
96620 @@ -1,14 +1,19 @@
96621 #ifndef _PGTABLE_NOPMD_H
96622 #define _PGTABLE_NOPMD_H
96623
96624 -#ifndef __ASSEMBLY__
96625 -
96626 #include <asm-generic/pgtable-nopud.h>
96627
96628 -struct mm_struct;
96629 -
96630 #define __PAGETABLE_PMD_FOLDED
96631
96632 +#define PMD_SHIFT PUD_SHIFT
96633 +#define PTRS_PER_PMD 1
96634 +#define PMD_SIZE (_AC(1,UL) << PMD_SHIFT)
96635 +#define PMD_MASK (~(PMD_SIZE-1))
96636 +
96637 +#ifndef __ASSEMBLY__
96638 +
96639 +struct mm_struct;
96640 +
96641 /*
96642 * Having the pmd type consist of a pud gets the size right, and allows
96643 * us to conceptually access the pud entry that this pmd is folded into
96644 @@ -16,11 +21,6 @@ struct mm_struct;
96645 */
96646 typedef struct { pud_t pud; } pmd_t;
96647
96648 -#define PMD_SHIFT PUD_SHIFT
96649 -#define PTRS_PER_PMD 1
96650 -#define PMD_SIZE (1UL << PMD_SHIFT)
96651 -#define PMD_MASK (~(PMD_SIZE-1))
96652 -
96653 /*
96654 * The "pud_xxx()" functions here are trivial for a folded two-level
96655 * setup: the pmd is never bad, and a pmd always exists (as it's folded
96656 diff --git a/include/asm-generic/pgtable-nopud.h b/include/asm-generic/pgtable-nopud.h
96657 index 810431d..0ec4804f 100644
96658 --- a/include/asm-generic/pgtable-nopud.h
96659 +++ b/include/asm-generic/pgtable-nopud.h
96660 @@ -1,10 +1,15 @@
96661 #ifndef _PGTABLE_NOPUD_H
96662 #define _PGTABLE_NOPUD_H
96663
96664 -#ifndef __ASSEMBLY__
96665 -
96666 #define __PAGETABLE_PUD_FOLDED
96667
96668 +#define PUD_SHIFT PGDIR_SHIFT
96669 +#define PTRS_PER_PUD 1
96670 +#define PUD_SIZE (_AC(1,UL) << PUD_SHIFT)
96671 +#define PUD_MASK (~(PUD_SIZE-1))
96672 +
96673 +#ifndef __ASSEMBLY__
96674 +
96675 /*
96676 * Having the pud type consist of a pgd gets the size right, and allows
96677 * us to conceptually access the pgd entry that this pud is folded into
96678 @@ -12,11 +17,6 @@
96679 */
96680 typedef struct { pgd_t pgd; } pud_t;
96681
96682 -#define PUD_SHIFT PGDIR_SHIFT
96683 -#define PTRS_PER_PUD 1
96684 -#define PUD_SIZE (1UL << PUD_SHIFT)
96685 -#define PUD_MASK (~(PUD_SIZE-1))
96686 -
96687 /*
96688 * The "pgd_xxx()" functions here are trivial for a folded two-level
96689 * setup: the pud is never bad, and a pud always exists (as it's folded
96690 @@ -29,6 +29,7 @@ static inline void pgd_clear(pgd_t *pgd) { }
96691 #define pud_ERROR(pud) (pgd_ERROR((pud).pgd))
96692
96693 #define pgd_populate(mm, pgd, pud) do { } while (0)
96694 +#define pgd_populate_kernel(mm, pgd, pud) do { } while (0)
96695 /*
96696 * (puds are folded into pgds so this doesn't get actually called,
96697 * but the define is needed for a generic inline function.)
96698 diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
96699 index 29c57b2..da571a2 100644
96700 --- a/include/asm-generic/pgtable.h
96701 +++ b/include/asm-generic/pgtable.h
96702 @@ -715,6 +715,22 @@ static inline int pmd_protnone(pmd_t pmd)
96703 }
96704 #endif /* CONFIG_NUMA_BALANCING */
96705
96706 +#ifndef __HAVE_ARCH_PAX_OPEN_KERNEL
96707 +#ifdef CONFIG_PAX_KERNEXEC
96708 +#error KERNEXEC requires pax_open_kernel
96709 +#else
96710 +static inline unsigned long pax_open_kernel(void) { return 0; }
96711 +#endif
96712 +#endif
96713 +
96714 +#ifndef __HAVE_ARCH_PAX_CLOSE_KERNEL
96715 +#ifdef CONFIG_PAX_KERNEXEC
96716 +#error KERNEXEC requires pax_close_kernel
96717 +#else
96718 +static inline unsigned long pax_close_kernel(void) { return 0; }
96719 +#endif
96720 +#endif
96721 +
96722 #endif /* CONFIG_MMU */
96723
96724 #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
96725 diff --git a/include/asm-generic/sections.h b/include/asm-generic/sections.h
96726 index b58fd66..6cfae67 100644
96727 --- a/include/asm-generic/sections.h
96728 +++ b/include/asm-generic/sections.h
96729 @@ -30,6 +30,7 @@ extern char _data[], _sdata[], _edata[];
96730 extern char __bss_start[], __bss_stop[];
96731 extern char __init_begin[], __init_end[];
96732 extern char _sinittext[], _einittext[];
96733 +extern char _sinitdata[], _einitdata[];
96734 extern char _end[];
96735 extern char __per_cpu_load[], __per_cpu_start[], __per_cpu_end[];
96736 extern char __kprobes_text_start[], __kprobes_text_end[];
96737 diff --git a/include/asm-generic/uaccess.h b/include/asm-generic/uaccess.h
96738 index 72d8803..cb9749c 100644
96739 --- a/include/asm-generic/uaccess.h
96740 +++ b/include/asm-generic/uaccess.h
96741 @@ -343,4 +343,20 @@ clear_user(void __user *to, unsigned long n)
96742 return __clear_user(to, n);
96743 }
96744
96745 +#ifndef __HAVE_ARCH_PAX_OPEN_USERLAND
96746 +#ifdef CONFIG_PAX_MEMORY_UDEREF
96747 +#error UDEREF requires pax_open_userland
96748 +#else
96749 +static inline unsigned long pax_open_userland(void) { return 0; }
96750 +#endif
96751 +#endif
96752 +
96753 +#ifndef __HAVE_ARCH_PAX_CLOSE_USERLAND
96754 +#ifdef CONFIG_PAX_MEMORY_UDEREF
96755 +#error UDEREF requires pax_close_userland
96756 +#else
96757 +static inline unsigned long pax_close_userland(void) { return 0; }
96758 +#endif
96759 +#endif
96760 +
96761 #endif /* __ASM_GENERIC_UACCESS_H */
96762 diff --git a/include/asm-generic/vmlinux.lds.h b/include/asm-generic/vmlinux.lds.h
96763 index 8bd374d..2665ce3 100644
96764 --- a/include/asm-generic/vmlinux.lds.h
96765 +++ b/include/asm-generic/vmlinux.lds.h
96766 @@ -246,6 +246,7 @@
96767 .rodata : AT(ADDR(.rodata) - LOAD_OFFSET) { \
96768 VMLINUX_SYMBOL(__start_rodata) = .; \
96769 *(.rodata) *(.rodata.*) \
96770 + *(.data..read_only) \
96771 *(__vermagic) /* Kernel version magic */ \
96772 . = ALIGN(8); \
96773 VMLINUX_SYMBOL(__start___tracepoints_ptrs) = .; \
96774 @@ -504,6 +505,7 @@
96775 KERNEL_CTORS() \
96776 MCOUNT_REC() \
96777 *(.init.rodata) \
96778 + *(.init.rodata.*) \
96779 FTRACE_EVENTS() \
96780 TRACE_SYSCALLS() \
96781 KPROBE_BLACKLIST() \
96782 @@ -525,6 +527,8 @@
96783
96784 #define EXIT_DATA \
96785 *(.exit.data) \
96786 + *(.exit.rodata) \
96787 + *(.exit.rodata.*) \
96788 MEM_DISCARD(exit.data) \
96789 MEM_DISCARD(exit.rodata)
96790
96791 @@ -741,17 +745,18 @@
96792 * section in the linker script will go there too. @phdr should have
96793 * a leading colon.
96794 *
96795 - * Note that this macros defines __per_cpu_load as an absolute symbol.
96796 + * Note that this macros defines per_cpu_load as an absolute symbol.
96797 * If there is no need to put the percpu section at a predetermined
96798 * address, use PERCPU_SECTION.
96799 */
96800 #define PERCPU_VADDR(cacheline, vaddr, phdr) \
96801 - VMLINUX_SYMBOL(__per_cpu_load) = .; \
96802 - .data..percpu vaddr : AT(VMLINUX_SYMBOL(__per_cpu_load) \
96803 + per_cpu_load = .; \
96804 + .data..percpu vaddr : AT(VMLINUX_SYMBOL(per_cpu_load) \
96805 - LOAD_OFFSET) { \
96806 + VMLINUX_SYMBOL(__per_cpu_load) = . + per_cpu_load; \
96807 PERCPU_INPUT(cacheline) \
96808 } phdr \
96809 - . = VMLINUX_SYMBOL(__per_cpu_load) + SIZEOF(.data..percpu);
96810 + . = VMLINUX_SYMBOL(per_cpu_load) + SIZEOF(.data..percpu);
96811
96812 /**
96813 * PERCPU_SECTION - define output section for percpu area, simple version
96814 @@ -813,12 +818,14 @@
96815
96816 #define INIT_DATA_SECTION(initsetup_align) \
96817 .init.data : AT(ADDR(.init.data) - LOAD_OFFSET) { \
96818 + VMLINUX_SYMBOL(_sinitdata) = .; \
96819 INIT_DATA \
96820 INIT_SETUP(initsetup_align) \
96821 INIT_CALLS \
96822 CON_INITCALL \
96823 SECURITY_INITCALL \
96824 INIT_RAM_FS \
96825 + VMLINUX_SYMBOL(_einitdata) = .; \
96826 }
96827
96828 #define BSS_SECTION(sbss_align, bss_align, stop_align) \
96829 diff --git a/include/crypto/algapi.h b/include/crypto/algapi.h
96830 index d4ebf6e..ca4bd35 100644
96831 --- a/include/crypto/algapi.h
96832 +++ b/include/crypto/algapi.h
96833 @@ -35,7 +35,7 @@ struct crypto_type {
96834 unsigned int maskclear;
96835 unsigned int maskset;
96836 unsigned int tfmsize;
96837 -};
96838 +} __do_const;
96839
96840 struct crypto_instance {
96841 struct crypto_alg alg;
96842 diff --git a/include/drm/drmP.h b/include/drm/drmP.h
96843 index 5aa5197..e4ca348 100644
96844 --- a/include/drm/drmP.h
96845 +++ b/include/drm/drmP.h
96846 @@ -59,6 +59,7 @@
96847
96848 #include <asm/mman.h>
96849 #include <asm/pgalloc.h>
96850 +#include <asm/local.h>
96851 #include <asm/uaccess.h>
96852
96853 #include <uapi/drm/drm.h>
96854 @@ -137,17 +138,18 @@ void drm_err(const char *format, ...);
96855 /*@{*/
96856
96857 /* driver capabilities and requirements mask */
96858 -#define DRIVER_USE_AGP 0x1
96859 -#define DRIVER_PCI_DMA 0x8
96860 -#define DRIVER_SG 0x10
96861 -#define DRIVER_HAVE_DMA 0x20
96862 -#define DRIVER_HAVE_IRQ 0x40
96863 -#define DRIVER_IRQ_SHARED 0x80
96864 -#define DRIVER_GEM 0x1000
96865 -#define DRIVER_MODESET 0x2000
96866 -#define DRIVER_PRIME 0x4000
96867 -#define DRIVER_RENDER 0x8000
96868 -#define DRIVER_ATOMIC 0x10000
96869 +#define DRIVER_USE_AGP 0x1
96870 +#define DRIVER_PCI_DMA 0x8
96871 +#define DRIVER_SG 0x10
96872 +#define DRIVER_HAVE_DMA 0x20
96873 +#define DRIVER_HAVE_IRQ 0x40
96874 +#define DRIVER_IRQ_SHARED 0x80
96875 +#define DRIVER_GEM 0x1000
96876 +#define DRIVER_MODESET 0x2000
96877 +#define DRIVER_PRIME 0x4000
96878 +#define DRIVER_RENDER 0x8000
96879 +#define DRIVER_ATOMIC 0x10000
96880 +#define DRIVER_KMS_LEGACY_CONTEXT 0x20000
96881
96882 /***********************************************************************/
96883 /** \name Macros to make printk easier */
96884 @@ -233,10 +235,12 @@ void drm_err(const char *format, ...);
96885 * \param cmd command.
96886 * \param arg argument.
96887 */
96888 -typedef int drm_ioctl_t(struct drm_device *dev, void *data,
96889 +typedef int (* const drm_ioctl_t)(struct drm_device *dev, void *data,
96890 + struct drm_file *file_priv);
96891 +typedef int (* drm_ioctl_no_const_t)(struct drm_device *dev, void *data,
96892 struct drm_file *file_priv);
96893
96894 -typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
96895 +typedef int (* const drm_ioctl_compat_t)(struct file *filp, unsigned int cmd,
96896 unsigned long arg);
96897
96898 #define DRM_IOCTL_NR(n) _IOC_NR(n)
96899 @@ -252,9 +256,9 @@ typedef int drm_ioctl_compat_t(struct file *filp, unsigned int cmd,
96900 struct drm_ioctl_desc {
96901 unsigned int cmd;
96902 int flags;
96903 - drm_ioctl_t *func;
96904 + drm_ioctl_t func;
96905 const char *name;
96906 -};
96907 +} __do_const;
96908
96909 /**
96910 * Creates a driver or general drm_ioctl_desc array entry for the given
96911 @@ -647,7 +651,8 @@ struct drm_info_list {
96912 int (*show)(struct seq_file*, void*); /** show callback */
96913 u32 driver_features; /**< Required driver features for this entry */
96914 void *data;
96915 -};
96916 +} __do_const;
96917 +typedef struct drm_info_list __no_const drm_info_list_no_const;
96918
96919 /**
96920 * debugfs node structure. This structure represents a debugfs file.
96921 @@ -735,7 +740,7 @@ struct drm_device {
96922
96923 /** \name Usage Counters */
96924 /*@{ */
96925 - int open_count; /**< Outstanding files open, protected by drm_global_mutex. */
96926 + local_t open_count; /**< Outstanding files open, protected by drm_global_mutex. */
96927 spinlock_t buf_lock; /**< For drm_device::buf_use and a few other things. */
96928 int buf_use; /**< Buffers in use -- cannot alloc */
96929 atomic_t buf_alloc; /**< Buffer allocation in progress */
96930 diff --git a/include/drm/drm_crtc_helper.h b/include/drm/drm_crtc_helper.h
96931 index 918aa68..f162a8a 100644
96932 --- a/include/drm/drm_crtc_helper.h
96933 +++ b/include/drm/drm_crtc_helper.h
96934 @@ -161,7 +161,7 @@ struct drm_encoder_helper_funcs {
96935 int (*atomic_check)(struct drm_encoder *encoder,
96936 struct drm_crtc_state *crtc_state,
96937 struct drm_connector_state *conn_state);
96938 -};
96939 +} __no_const;
96940
96941 /**
96942 * struct drm_connector_helper_funcs - helper operations for connectors
96943 diff --git a/include/drm/drm_mm.h b/include/drm/drm_mm.h
96944 index 0de6290..2a2c125 100644
96945 --- a/include/drm/drm_mm.h
96946 +++ b/include/drm/drm_mm.h
96947 @@ -297,7 +297,7 @@ void drm_mm_remove_node(struct drm_mm_node *node);
96948 void drm_mm_replace_node(struct drm_mm_node *old, struct drm_mm_node *new);
96949 void drm_mm_init(struct drm_mm *mm,
96950 u64 start,
96951 - u64 size);
96952 + u64 size) __intentional_overflow(3);
96953 void drm_mm_takedown(struct drm_mm *mm);
96954 bool drm_mm_clean(struct drm_mm *mm);
96955
96956 diff --git a/include/drm/i915_pciids.h b/include/drm/i915_pciids.h
96957 index 17c4456..da0c5eb 100644
96958 --- a/include/drm/i915_pciids.h
96959 +++ b/include/drm/i915_pciids.h
96960 @@ -37,7 +37,7 @@
96961 */
96962 #define INTEL_VGA_DEVICE(id, info) { \
96963 0x8086, id, \
96964 - ~0, ~0, \
96965 + PCI_ANY_ID, PCI_ANY_ID, \
96966 0x030000, 0xff0000, \
96967 (unsigned long) info }
96968
96969 diff --git a/include/drm/intel-gtt.h b/include/drm/intel-gtt.h
96970 index b08bdad..21e6054 100644
96971 --- a/include/drm/intel-gtt.h
96972 +++ b/include/drm/intel-gtt.h
96973 @@ -3,8 +3,8 @@
96974 #ifndef _DRM_INTEL_GTT_H
96975 #define _DRM_INTEL_GTT_H
96976
96977 -void intel_gtt_get(size_t *gtt_total, size_t *stolen_size,
96978 - phys_addr_t *mappable_base, unsigned long *mappable_end);
96979 +void intel_gtt_get(uint64_t *gtt_total, uint64_t *stolen_size,
96980 + uint64_t *mappable_base, uint64_t *mappable_end);
96981
96982 int intel_gmch_probe(struct pci_dev *bridge_pdev, struct pci_dev *gpu_pdev,
96983 struct agp_bridge_data *bridge);
96984 diff --git a/include/drm/ttm/ttm_memory.h b/include/drm/ttm/ttm_memory.h
96985 index 72dcbe8..8db58d7 100644
96986 --- a/include/drm/ttm/ttm_memory.h
96987 +++ b/include/drm/ttm/ttm_memory.h
96988 @@ -48,7 +48,7 @@
96989
96990 struct ttm_mem_shrink {
96991 int (*do_shrink) (struct ttm_mem_shrink *);
96992 -};
96993 +} __no_const;
96994
96995 /**
96996 * struct ttm_mem_global - Global memory accounting structure.
96997 diff --git a/include/drm/ttm/ttm_page_alloc.h b/include/drm/ttm/ttm_page_alloc.h
96998 index 49a8284..9643967 100644
96999 --- a/include/drm/ttm/ttm_page_alloc.h
97000 +++ b/include/drm/ttm/ttm_page_alloc.h
97001 @@ -80,6 +80,7 @@ void ttm_dma_page_alloc_fini(void);
97002 */
97003 extern int ttm_dma_page_alloc_debugfs(struct seq_file *m, void *data);
97004
97005 +struct device;
97006 extern int ttm_dma_populate(struct ttm_dma_tt *ttm_dma, struct device *dev);
97007 extern void ttm_dma_unpopulate(struct ttm_dma_tt *ttm_dma, struct device *dev);
97008
97009 diff --git a/include/keys/asymmetric-subtype.h b/include/keys/asymmetric-subtype.h
97010 index 4b840e8..155d235 100644
97011 --- a/include/keys/asymmetric-subtype.h
97012 +++ b/include/keys/asymmetric-subtype.h
97013 @@ -37,7 +37,7 @@ struct asymmetric_key_subtype {
97014 /* Verify the signature on a key of this subtype (optional) */
97015 int (*verify_signature)(const struct key *key,
97016 const struct public_key_signature *sig);
97017 -};
97018 +} __do_const;
97019
97020 /**
97021 * asymmetric_key_subtype - Get the subtype from an asymmetric key
97022 diff --git a/include/linux/atmdev.h b/include/linux/atmdev.h
97023 index c1da539..1dcec55 100644
97024 --- a/include/linux/atmdev.h
97025 +++ b/include/linux/atmdev.h
97026 @@ -28,7 +28,7 @@ struct compat_atm_iobuf {
97027 #endif
97028
97029 struct k_atm_aal_stats {
97030 -#define __HANDLE_ITEM(i) atomic_t i
97031 +#define __HANDLE_ITEM(i) atomic_unchecked_t i
97032 __AAL_STAT_ITEMS
97033 #undef __HANDLE_ITEM
97034 };
97035 @@ -200,7 +200,7 @@ struct atmdev_ops { /* only send is required */
97036 int (*change_qos)(struct atm_vcc *vcc,struct atm_qos *qos,int flags);
97037 int (*proc_read)(struct atm_dev *dev,loff_t *pos,char *page);
97038 struct module *owner;
97039 -};
97040 +} __do_const ;
97041
97042 struct atmphy_ops {
97043 int (*start)(struct atm_dev *dev);
97044 diff --git a/include/linux/atomic.h b/include/linux/atomic.h
97045 index 5b08a85..60922fb 100644
97046 --- a/include/linux/atomic.h
97047 +++ b/include/linux/atomic.h
97048 @@ -12,7 +12,7 @@
97049 * Atomically adds @a to @v, so long as @v was not already @u.
97050 * Returns non-zero if @v was not @u, and zero otherwise.
97051 */
97052 -static inline int atomic_add_unless(atomic_t *v, int a, int u)
97053 +static inline int __intentional_overflow(-1) atomic_add_unless(atomic_t *v, int a, int u)
97054 {
97055 return __atomic_add_unless(v, a, u) != u;
97056 }
97057 diff --git a/include/linux/audit.h b/include/linux/audit.h
97058 index c2e7e3a..8bfc0e1 100644
97059 --- a/include/linux/audit.h
97060 +++ b/include/linux/audit.h
97061 @@ -223,7 +223,7 @@ static inline void audit_ptrace(struct task_struct *t)
97062 extern unsigned int audit_serial(void);
97063 extern int auditsc_get_stamp(struct audit_context *ctx,
97064 struct timespec *t, unsigned int *serial);
97065 -extern int audit_set_loginuid(kuid_t loginuid);
97066 +extern int __intentional_overflow(-1) audit_set_loginuid(kuid_t loginuid);
97067
97068 static inline kuid_t audit_get_loginuid(struct task_struct *tsk)
97069 {
97070 diff --git a/include/linux/binfmts.h b/include/linux/binfmts.h
97071 index 576e463..28fd926 100644
97072 --- a/include/linux/binfmts.h
97073 +++ b/include/linux/binfmts.h
97074 @@ -44,7 +44,7 @@ struct linux_binprm {
97075 unsigned interp_flags;
97076 unsigned interp_data;
97077 unsigned long loader, exec;
97078 -};
97079 +} __randomize_layout;
97080
97081 #define BINPRM_FLAGS_ENFORCE_NONDUMP_BIT 0
97082 #define BINPRM_FLAGS_ENFORCE_NONDUMP (1 << BINPRM_FLAGS_ENFORCE_NONDUMP_BIT)
97083 @@ -77,8 +77,10 @@ struct linux_binfmt {
97084 int (*load_binary)(struct linux_binprm *);
97085 int (*load_shlib)(struct file *);
97086 int (*core_dump)(struct coredump_params *cprm);
97087 + void (*handle_mprotect)(struct vm_area_struct *vma, unsigned long newflags);
97088 + void (*handle_mmap)(struct file *);
97089 unsigned long min_coredump; /* minimal dump size */
97090 -};
97091 +} __do_const __randomize_layout;
97092
97093 extern void __register_binfmt(struct linux_binfmt *fmt, int insert);
97094
97095 diff --git a/include/linux/bitmap.h b/include/linux/bitmap.h
97096 index ea17cca..dd56e56 100644
97097 --- a/include/linux/bitmap.h
97098 +++ b/include/linux/bitmap.h
97099 @@ -295,7 +295,7 @@ static inline int bitmap_full(const unsigned long *src, unsigned int nbits)
97100 return find_first_zero_bit(src, nbits) == nbits;
97101 }
97102
97103 -static inline int bitmap_weight(const unsigned long *src, unsigned int nbits)
97104 +static inline int __intentional_overflow(-1) bitmap_weight(const unsigned long *src, unsigned int nbits)
97105 {
97106 if (small_const_nbits(nbits))
97107 return hweight_long(*src & BITMAP_LAST_WORD_MASK(nbits));
97108 diff --git a/include/linux/bitops.h b/include/linux/bitops.h
97109 index 297f5bd..5892caa 100644
97110 --- a/include/linux/bitops.h
97111 +++ b/include/linux/bitops.h
97112 @@ -75,7 +75,7 @@ static __inline__ int get_count_order(unsigned int count)
97113 return order;
97114 }
97115
97116 -static inline unsigned long hweight_long(unsigned long w)
97117 +static inline unsigned long __intentional_overflow(-1) hweight_long(unsigned long w)
97118 {
97119 return sizeof(w) == 4 ? hweight32(w) : hweight64(w);
97120 }
97121 @@ -105,7 +105,7 @@ static inline __u64 ror64(__u64 word, unsigned int shift)
97122 * @word: value to rotate
97123 * @shift: bits to roll
97124 */
97125 -static inline __u32 rol32(__u32 word, unsigned int shift)
97126 +static inline __u32 __intentional_overflow(-1) rol32(__u32 word, unsigned int shift)
97127 {
97128 return (word << shift) | (word >> (32 - shift));
97129 }
97130 @@ -115,7 +115,7 @@ static inline __u32 rol32(__u32 word, unsigned int shift)
97131 * @word: value to rotate
97132 * @shift: bits to roll
97133 */
97134 -static inline __u32 ror32(__u32 word, unsigned int shift)
97135 +static inline __u32 __intentional_overflow(-1) ror32(__u32 word, unsigned int shift)
97136 {
97137 return (word >> shift) | (word << (32 - shift));
97138 }
97139 @@ -171,7 +171,7 @@ static inline __s32 sign_extend32(__u32 value, int index)
97140 return (__s32)(value << shift) >> shift;
97141 }
97142
97143 -static inline unsigned fls_long(unsigned long l)
97144 +static inline unsigned __intentional_overflow(-1) fls_long(unsigned long l)
97145 {
97146 if (sizeof(l) == 4)
97147 return fls(l);
97148 diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
97149 index d4068c1..77159a1 100644
97150 --- a/include/linux/blkdev.h
97151 +++ b/include/linux/blkdev.h
97152 @@ -1567,7 +1567,7 @@ struct block_device_operations {
97153 /* this callback is with swap_lock and sometimes page table lock held */
97154 void (*swap_slot_free_notify) (struct block_device *, unsigned long);
97155 struct module *owner;
97156 -};
97157 +} __do_const;
97158
97159 extern int __blkdev_driver_ioctl(struct block_device *, fmode_t, unsigned int,
97160 unsigned long);
97161 diff --git a/include/linux/blktrace_api.h b/include/linux/blktrace_api.h
97162 index afc1343..9735539 100644
97163 --- a/include/linux/blktrace_api.h
97164 +++ b/include/linux/blktrace_api.h
97165 @@ -25,7 +25,7 @@ struct blk_trace {
97166 struct dentry *dropped_file;
97167 struct dentry *msg_file;
97168 struct list_head running_list;
97169 - atomic_t dropped;
97170 + atomic_unchecked_t dropped;
97171 };
97172
97173 extern int blk_trace_ioctl(struct block_device *, unsigned, char __user *);
97174 diff --git a/include/linux/cache.h b/include/linux/cache.h
97175 index 17e7e82..1d7da26 100644
97176 --- a/include/linux/cache.h
97177 +++ b/include/linux/cache.h
97178 @@ -16,6 +16,14 @@
97179 #define __read_mostly
97180 #endif
97181
97182 +#ifndef __read_only
97183 +#ifdef CONFIG_PAX_KERNEXEC
97184 +#error KERNEXEC requires __read_only
97185 +#else
97186 +#define __read_only __read_mostly
97187 +#endif
97188 +#endif
97189 +
97190 #ifndef ____cacheline_aligned
97191 #define ____cacheline_aligned __attribute__((__aligned__(SMP_CACHE_BYTES)))
97192 #endif
97193 diff --git a/include/linux/capability.h b/include/linux/capability.h
97194 index af9f0b9..71a5e5c 100644
97195 --- a/include/linux/capability.h
97196 +++ b/include/linux/capability.h
97197 @@ -237,15 +237,28 @@ static inline bool capable(int cap)
97198 {
97199 return true;
97200 }
97201 +static inline bool capable_nolog(int cap)
97202 +{
97203 + return true;
97204 +}
97205 static inline bool ns_capable(struct user_namespace *ns, int cap)
97206 {
97207 return true;
97208 }
97209 +static inline bool ns_capable_nolog(struct user_namespace *ns, int cap)
97210 +{
97211 + return true;
97212 +}
97213 #endif /* CONFIG_MULTIUSER */
97214 extern bool capable_wrt_inode_uidgid(const struct inode *inode, int cap);
97215 +extern bool capable_wrt_inode_uidgid_nolog(const struct inode *inode, int cap);
97216 extern bool file_ns_capable(const struct file *file, struct user_namespace *ns, int cap);
97217 +extern bool capable_nolog(int cap);
97218 +extern bool ns_capable_nolog(struct user_namespace *ns, int cap);
97219
97220 /* audit system wants to get cap info from files as well */
97221 extern int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data *cpu_caps);
97222
97223 +extern int is_privileged_binary(const struct dentry *dentry);
97224 +
97225 #endif /* !_LINUX_CAPABILITY_H */
97226 diff --git a/include/linux/cdrom.h b/include/linux/cdrom.h
97227 index 8609d57..86e4d79 100644
97228 --- a/include/linux/cdrom.h
97229 +++ b/include/linux/cdrom.h
97230 @@ -87,7 +87,6 @@ struct cdrom_device_ops {
97231
97232 /* driver specifications */
97233 const int capability; /* capability flags */
97234 - int n_minors; /* number of active minor devices */
97235 /* handle uniform packets for scsi type devices (scsi,atapi) */
97236 int (*generic_packet) (struct cdrom_device_info *,
97237 struct packet_command *);
97238 diff --git a/include/linux/cleancache.h b/include/linux/cleancache.h
97239 index bda5ec0b4..51d8ea1 100644
97240 --- a/include/linux/cleancache.h
97241 +++ b/include/linux/cleancache.h
97242 @@ -35,7 +35,7 @@ struct cleancache_ops {
97243 void (*invalidate_page)(int, struct cleancache_filekey, pgoff_t);
97244 void (*invalidate_inode)(int, struct cleancache_filekey);
97245 void (*invalidate_fs)(int);
97246 -};
97247 +} __no_const;
97248
97249 extern int cleancache_register_ops(struct cleancache_ops *ops);
97250 extern void __cleancache_init_fs(struct super_block *);
97251 diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
97252 index 78842f4..7e7f81f 100644
97253 --- a/include/linux/clk-provider.h
97254 +++ b/include/linux/clk-provider.h
97255 @@ -196,6 +196,7 @@ struct clk_ops {
97256 void (*init)(struct clk_hw *hw);
97257 int (*debug_init)(struct clk_hw *hw, struct dentry *dentry);
97258 };
97259 +typedef struct clk_ops __no_const clk_ops_no_const;
97260
97261 /**
97262 * struct clk_init_data - holds init data that's common to all clocks and is
97263 diff --git a/include/linux/compat.h b/include/linux/compat.h
97264 index a76c917..63b52db 100644
97265 --- a/include/linux/compat.h
97266 +++ b/include/linux/compat.h
97267 @@ -316,7 +316,7 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
97268 compat_size_t __user *len_ptr);
97269
97270 asmlinkage long compat_sys_ipc(u32, int, int, u32, compat_uptr_t, u32);
97271 -asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg);
97272 +asmlinkage long compat_sys_shmat(int shmid, compat_uptr_t shmaddr, int shmflg) __intentional_overflow(0);
97273 asmlinkage long compat_sys_semctl(int semid, int semnum, int cmd, int arg);
97274 asmlinkage long compat_sys_msgsnd(int msqid, compat_uptr_t msgp,
97275 compat_ssize_t msgsz, int msgflg);
97276 @@ -325,7 +325,7 @@ asmlinkage long compat_sys_msgrcv(int msqid, compat_uptr_t msgp,
97277 long compat_sys_msgctl(int first, int second, void __user *uptr);
97278 long compat_sys_shmctl(int first, int second, void __user *uptr);
97279 long compat_sys_semtimedop(int semid, struct sembuf __user *tsems,
97280 - unsigned nsems, const struct compat_timespec __user *timeout);
97281 + compat_long_t nsems, const struct compat_timespec __user *timeout);
97282 asmlinkage long compat_sys_keyctl(u32 option,
97283 u32 arg2, u32 arg3, u32 arg4, u32 arg5);
97284 asmlinkage long compat_sys_ustat(unsigned dev, struct compat_ustat __user *u32);
97285 @@ -439,7 +439,7 @@ extern int compat_ptrace_request(struct task_struct *child,
97286 extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
97287 compat_ulong_t addr, compat_ulong_t data);
97288 asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
97289 - compat_long_t addr, compat_long_t data);
97290 + compat_ulong_t addr, compat_ulong_t data);
97291
97292 asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t);
97293 /*
97294 diff --git a/include/linux/compiler-gcc.h b/include/linux/compiler-gcc.h
97295 index dfaa7b3..58cebfb 100644
97296 --- a/include/linux/compiler-gcc.h
97297 +++ b/include/linux/compiler-gcc.h
97298 @@ -116,8 +116,8 @@
97299 */
97300 #define __pure __attribute__((pure))
97301 #define __aligned(x) __attribute__((aligned(x)))
97302 -#define __printf(a, b) __attribute__((format(printf, a, b)))
97303 -#define __scanf(a, b) __attribute__((format(scanf, a, b)))
97304 +#define __printf(a, b) __attribute__((format(printf, a, b))) __nocapture(a, b)
97305 +#define __scanf(a, b) __attribute__((format(scanf, a, b))) __nocapture(a, b)
97306 #define __attribute_const__ __attribute__((__const__))
97307 #define __maybe_unused __attribute__((unused))
97308 #define __always_unused __attribute__((unused))
97309 @@ -184,9 +184,38 @@
97310 # define __compiletime_warning(message) __attribute__((warning(message)))
97311 # define __compiletime_error(message) __attribute__((error(message)))
97312 #endif /* __CHECKER__ */
97313 +
97314 +#define __alloc_size(...) __attribute((alloc_size(__VA_ARGS__)))
97315 +#define __bos(ptr, arg) __builtin_object_size((ptr), (arg))
97316 +#define __bos0(ptr) __bos((ptr), 0)
97317 +#define __bos1(ptr) __bos((ptr), 1)
97318 #endif /* GCC_VERSION >= 40300 */
97319
97320 #if GCC_VERSION >= 40500
97321 +
97322 +#ifdef RANDSTRUCT_PLUGIN
97323 +#define __randomize_layout __attribute__((randomize_layout))
97324 +#define __no_randomize_layout __attribute__((no_randomize_layout))
97325 +#endif
97326 +
97327 +#ifdef CONSTIFY_PLUGIN
97328 +#define __no_const __attribute__((no_const))
97329 +#define __do_const __attribute__((do_const))
97330 +#endif
97331 +
97332 +#ifdef SIZE_OVERFLOW_PLUGIN
97333 +#define __size_overflow(...) __attribute__((size_overflow(__VA_ARGS__)))
97334 +#define __intentional_overflow(...) __attribute__((intentional_overflow(__VA_ARGS__)))
97335 +#endif
97336 +
97337 +#ifdef LATENT_ENTROPY_PLUGIN
97338 +#define __latent_entropy __attribute__((latent_entropy))
97339 +#endif
97340 +
97341 +#ifdef INITIFY_PLUGIN
97342 +#define __nocapture(...) __attribute__((nocapture(__VA_ARGS__)))
97343 +#endif
97344 +
97345 /*
97346 * Mark a position in code as unreachable. This can be used to
97347 * suppress control flow warnings after asm blocks that transfer
97348 diff --git a/include/linux/compiler.h b/include/linux/compiler.h
97349 index e08a6ae..2e5e776 100644
97350 --- a/include/linux/compiler.h
97351 +++ b/include/linux/compiler.h
97352 @@ -5,11 +5,14 @@
97353
97354 #ifdef __CHECKER__
97355 # define __user __attribute__((noderef, address_space(1)))
97356 +# define __force_user __force __user
97357 # define __kernel __attribute__((address_space(0)))
97358 +# define __force_kernel __force __kernel
97359 # define __safe __attribute__((safe))
97360 # define __force __attribute__((force))
97361 # define __nocast __attribute__((nocast))
97362 # define __iomem __attribute__((noderef, address_space(2)))
97363 +# define __force_iomem __force __iomem
97364 # define __must_hold(x) __attribute__((context(x,1,1)))
97365 # define __acquires(x) __attribute__((context(x,0,1)))
97366 # define __releases(x) __attribute__((context(x,1,0)))
97367 @@ -17,21 +20,39 @@
97368 # define __release(x) __context__(x,-1)
97369 # define __cond_lock(x,c) ((c) ? ({ __acquire(x); 1; }) : 0)
97370 # define __percpu __attribute__((noderef, address_space(3)))
97371 +# define __force_percpu __force __percpu
97372 # define __pmem __attribute__((noderef, address_space(5)))
97373 +# define __force_pmem __force __pmem
97374 #ifdef CONFIG_SPARSE_RCU_POINTER
97375 # define __rcu __attribute__((noderef, address_space(4)))
97376 +# define __force_rcu __force __rcu
97377 #else
97378 # define __rcu
97379 +# define __force_rcu
97380 #endif
97381 extern void __chk_user_ptr(const volatile void __user *);
97382 extern void __chk_io_ptr(const volatile void __iomem *);
97383 #else
97384 -# define __user
97385 -# define __kernel
97386 +# ifdef CHECKER_PLUGIN
97387 +//# define __user
97388 +//# define __force_user
97389 +//# define __kernel
97390 +//# define __force_kernel
97391 +# else
97392 +# ifdef STRUCTLEAK_PLUGIN
97393 +# define __user __attribute__((user))
97394 +# else
97395 +# define __user
97396 +# endif
97397 +# define __force_user
97398 +# define __kernel
97399 +# define __force_kernel
97400 +# endif
97401 # define __safe
97402 # define __force
97403 # define __nocast
97404 # define __iomem
97405 +# define __force_iomem
97406 # define __chk_user_ptr(x) (void)0
97407 # define __chk_io_ptr(x) (void)0
97408 # define __builtin_warning(x, y...) (1)
97409 @@ -42,8 +63,11 @@ extern void __chk_io_ptr(const volatile void __iomem *);
97410 # define __release(x) (void)0
97411 # define __cond_lock(x,c) (c)
97412 # define __percpu
97413 +# define __force_percpu
97414 # define __rcu
97415 +# define __force_rcu
97416 # define __pmem
97417 +# define __force_pmem
97418 #endif
97419
97420 /* Indirect macros required for expanded argument pasting, eg. __LINE__. */
97421 @@ -201,27 +225,27 @@ void ftrace_likely_update(struct ftrace_branch_data *f, int val, int expect);
97422 static __always_inline void __read_once_size(const volatile void *p, void *res, int size)
97423 {
97424 switch (size) {
97425 - case 1: *(__u8 *)res = *(volatile __u8 *)p; break;
97426 - case 2: *(__u16 *)res = *(volatile __u16 *)p; break;
97427 - case 4: *(__u32 *)res = *(volatile __u32 *)p; break;
97428 - case 8: *(__u64 *)res = *(volatile __u64 *)p; break;
97429 + case 1: *(__u8 *)res = *(const volatile __u8 *)p; break;
97430 + case 2: *(__u16 *)res = *(const volatile __u16 *)p; break;
97431 + case 4: *(__u32 *)res = *(const volatile __u32 *)p; break;
97432 + case 8: *(__u64 *)res = *(const volatile __u64 *)p; break;
97433 default:
97434 barrier();
97435 - __builtin_memcpy((void *)res, (const void *)p, size);
97436 + __builtin_memcpy(res, (const void *)p, size);
97437 barrier();
97438 }
97439 }
97440
97441 -static __always_inline void __write_once_size(volatile void *p, void *res, int size)
97442 +static __always_inline void __write_once_size(volatile void *p, const void *res, int size)
97443 {
97444 switch (size) {
97445 - case 1: *(volatile __u8 *)p = *(__u8 *)res; break;
97446 - case 2: *(volatile __u16 *)p = *(__u16 *)res; break;
97447 - case 4: *(volatile __u32 *)p = *(__u32 *)res; break;
97448 - case 8: *(volatile __u64 *)p = *(__u64 *)res; break;
97449 + case 1: *(volatile __u8 *)p = *(const __u8 *)res; break;
97450 + case 2: *(volatile __u16 *)p = *(const __u16 *)res; break;
97451 + case 4: *(volatile __u32 *)p = *(const __u32 *)res; break;
97452 + case 8: *(volatile __u64 *)p = *(const __u64 *)res; break;
97453 default:
97454 barrier();
97455 - __builtin_memcpy((void *)p, (const void *)res, size);
97456 + __builtin_memcpy((void *)p, res, size);
97457 barrier();
97458 }
97459 }
97460 @@ -370,6 +394,38 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
97461 # define __attribute_const__ /* unimplemented */
97462 #endif
97463
97464 +#ifndef __randomize_layout
97465 +# define __randomize_layout
97466 +#endif
97467 +
97468 +#ifndef __no_randomize_layout
97469 +# define __no_randomize_layout
97470 +#endif
97471 +
97472 +#ifndef __no_const
97473 +# define __no_const
97474 +#endif
97475 +
97476 +#ifndef __do_const
97477 +# define __do_const
97478 +#endif
97479 +
97480 +#ifndef __size_overflow
97481 +# define __size_overflow(...)
97482 +#endif
97483 +
97484 +#ifndef __intentional_overflow
97485 +# define __intentional_overflow(...)
97486 +#endif
97487 +
97488 +#ifndef __latent_entropy
97489 +# define __latent_entropy
97490 +#endif
97491 +
97492 +#ifndef __nocapture
97493 +# define __nocapture(...)
97494 +#endif
97495 +
97496 /*
97497 * Tell gcc if a function is cold. The compiler will assume any path
97498 * directly leading to the call is unlikely.
97499 @@ -379,6 +435,22 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
97500 #define __cold
97501 #endif
97502
97503 +#ifndef __alloc_size
97504 +#define __alloc_size(...)
97505 +#endif
97506 +
97507 +#ifndef __bos
97508 +#define __bos(ptr, arg)
97509 +#endif
97510 +
97511 +#ifndef __bos0
97512 +#define __bos0(ptr)
97513 +#endif
97514 +
97515 +#ifndef __bos1
97516 +#define __bos1(ptr)
97517 +#endif
97518 +
97519 /* Simple shorthand for a section definition */
97520 #ifndef __section
97521 # define __section(S) __attribute__ ((__section__(#S)))
97522 @@ -393,6 +465,8 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
97523 # define __same_type(a, b) __builtin_types_compatible_p(typeof(a), typeof(b))
97524 #endif
97525
97526 +#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))
97527 +
97528 /* Is this type a native word size -- useful for atomic operations */
97529 #ifndef __native_word
97530 # define __native_word(t) (sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || sizeof(t) == sizeof(int) || sizeof(t) == sizeof(long))
97531 @@ -472,8 +546,9 @@ static __always_inline void __write_once_size(volatile void *p, void *res, int s
97532 */
97533 #define __ACCESS_ONCE(x) ({ \
97534 __maybe_unused typeof(x) __var = (__force typeof(x)) 0; \
97535 - (volatile typeof(x) *)&(x); })
97536 + (volatile const typeof(x) *)&(x); })
97537 #define ACCESS_ONCE(x) (*__ACCESS_ONCE(x))
97538 +#define ACCESS_ONCE_RW(x) (*(volatile typeof(x) *)&(x))
97539
97540 /**
97541 * lockless_dereference() - safely load a pointer for later dereference
97542 diff --git a/include/linux/configfs.h b/include/linux/configfs.h
97543 index 63a36e8..26b0825 100644
97544 --- a/include/linux/configfs.h
97545 +++ b/include/linux/configfs.h
97546 @@ -125,7 +125,7 @@ struct configfs_attribute {
97547 const char *ca_name;
97548 struct module *ca_owner;
97549 umode_t ca_mode;
97550 -};
97551 +} __do_const;
97552
97553 /*
97554 * Users often need to create attribute structures for their configurable
97555 diff --git a/include/linux/cpufreq.h b/include/linux/cpufreq.h
97556 index bde1e56..168de74 100644
97557 --- a/include/linux/cpufreq.h
97558 +++ b/include/linux/cpufreq.h
97559 @@ -211,6 +211,7 @@ struct global_attr {
97560 ssize_t (*store)(struct kobject *a, struct attribute *b,
97561 const char *c, size_t count);
97562 };
97563 +typedef struct global_attr __no_const global_attr_no_const;
97564
97565 #define define_one_global_ro(_name) \
97566 static struct global_attr _name = \
97567 @@ -282,7 +283,7 @@ struct cpufreq_driver {
97568 bool boost_supported;
97569 bool boost_enabled;
97570 int (*set_boost)(int state);
97571 -};
97572 +} __do_const;
97573
97574 /* flags */
97575 #define CPUFREQ_STICKY (1 << 0) /* driver isn't removed even if
97576 diff --git a/include/linux/cpuidle.h b/include/linux/cpuidle.h
97577 index d075d34..3b6734a 100644
97578 --- a/include/linux/cpuidle.h
97579 +++ b/include/linux/cpuidle.h
97580 @@ -59,7 +59,8 @@ struct cpuidle_state {
97581 void (*enter_freeze) (struct cpuidle_device *dev,
97582 struct cpuidle_driver *drv,
97583 int index);
97584 -};
97585 +} __do_const;
97586 +typedef struct cpuidle_state __no_const cpuidle_state_no_const;
97587
97588 /* Idle State Flags */
97589 #define CPUIDLE_FLAG_COUPLED (0x02) /* state applies to multiple cpus */
97590 @@ -235,7 +236,7 @@ struct cpuidle_governor {
97591 void (*reflect) (struct cpuidle_device *dev, int index);
97592
97593 struct module *owner;
97594 -};
97595 +} __do_const;
97596
97597 #ifdef CONFIG_CPU_IDLE
97598 extern int cpuidle_register_governor(struct cpuidle_governor *gov);
97599 diff --git a/include/linux/cpumask.h b/include/linux/cpumask.h
97600 index 59915ea..81ebec0 100644
97601 --- a/include/linux/cpumask.h
97602 +++ b/include/linux/cpumask.h
97603 @@ -127,17 +127,17 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
97604 }
97605
97606 /* Valid inputs for n are -1 and 0. */
97607 -static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
97608 +static inline unsigned int __intentional_overflow(-1) cpumask_next(int n, const struct cpumask *srcp)
97609 {
97610 return n+1;
97611 }
97612
97613 -static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
97614 +static inline unsigned int __intentional_overflow(-1) cpumask_next_zero(int n, const struct cpumask *srcp)
97615 {
97616 return n+1;
97617 }
97618
97619 -static inline unsigned int cpumask_next_and(int n,
97620 +static inline unsigned int __intentional_overflow(-1) cpumask_next_and(int n,
97621 const struct cpumask *srcp,
97622 const struct cpumask *andp)
97623 {
97624 @@ -181,7 +181,7 @@ static inline unsigned int cpumask_first(const struct cpumask *srcp)
97625 *
97626 * Returns >= nr_cpu_ids if no further cpus set.
97627 */
97628 -static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
97629 +static inline unsigned int __intentional_overflow(-1) cpumask_next(int n, const struct cpumask *srcp)
97630 {
97631 /* -1 is a legal arg here. */
97632 if (n != -1)
97633 @@ -196,7 +196,7 @@ static inline unsigned int cpumask_next(int n, const struct cpumask *srcp)
97634 *
97635 * Returns >= nr_cpu_ids if no further cpus unset.
97636 */
97637 -static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
97638 +static inline unsigned int __intentional_overflow(-1) cpumask_next_zero(int n, const struct cpumask *srcp)
97639 {
97640 /* -1 is a legal arg here. */
97641 if (n != -1)
97642 @@ -204,7 +204,7 @@ static inline unsigned int cpumask_next_zero(int n, const struct cpumask *srcp)
97643 return find_next_zero_bit(cpumask_bits(srcp), nr_cpumask_bits, n+1);
97644 }
97645
97646 -int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *);
97647 +int cpumask_next_and(int n, const struct cpumask *, const struct cpumask *) __intentional_overflow(-1);
97648 int cpumask_any_but(const struct cpumask *mask, unsigned int cpu);
97649 unsigned int cpumask_local_spread(unsigned int i, int node);
97650
97651 @@ -471,7 +471,7 @@ static inline bool cpumask_full(const struct cpumask *srcp)
97652 * cpumask_weight - Count of bits in *srcp
97653 * @srcp: the cpumask to count bits (< nr_cpu_ids) in.
97654 */
97655 -static inline unsigned int cpumask_weight(const struct cpumask *srcp)
97656 +static inline unsigned int __intentional_overflow(-1) cpumask_weight(const struct cpumask *srcp)
97657 {
97658 return bitmap_weight(cpumask_bits(srcp), nr_cpumask_bits);
97659 }
97660 diff --git a/include/linux/cred.h b/include/linux/cred.h
97661 index 8b6c083..51cb9f5 100644
97662 --- a/include/linux/cred.h
97663 +++ b/include/linux/cred.h
97664 @@ -35,7 +35,7 @@ struct group_info {
97665 int nblocks;
97666 kgid_t small_block[NGROUPS_SMALL];
97667 kgid_t *blocks[0];
97668 -};
97669 +} __randomize_layout;
97670
97671 /**
97672 * get_group_info - Get a reference to a group info structure
97673 @@ -152,7 +152,7 @@ struct cred {
97674 struct user_namespace *user_ns; /* user_ns the caps and keyrings are relative to. */
97675 struct group_info *group_info; /* supplementary groups for euid/fsgid */
97676 struct rcu_head rcu; /* RCU deletion hook */
97677 -};
97678 +} __randomize_layout;
97679
97680 extern void __put_cred(struct cred *);
97681 extern void exit_creds(struct task_struct *);
97682 @@ -210,6 +210,9 @@ static inline void validate_creds_for_do_exit(struct task_struct *tsk)
97683 static inline void validate_process_creds(void)
97684 {
97685 }
97686 +static inline void validate_task_creds(struct task_struct *task)
97687 +{
97688 +}
97689 #endif
97690
97691 /**
97692 @@ -347,6 +350,7 @@ static inline void put_cred(const struct cred *_cred)
97693
97694 #define task_uid(task) (task_cred_xxx((task), uid))
97695 #define task_euid(task) (task_cred_xxx((task), euid))
97696 +#define task_securebits(task) (task_cred_xxx((task), securebits))
97697
97698 #define current_cred_xxx(xxx) \
97699 ({ \
97700 diff --git a/include/linux/crypto.h b/include/linux/crypto.h
97701 index 81ef938..9ec0fdb 100644
97702 --- a/include/linux/crypto.h
97703 +++ b/include/linux/crypto.h
97704 @@ -569,7 +569,7 @@ struct cipher_tfm {
97705 const u8 *key, unsigned int keylen);
97706 void (*cit_encrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
97707 void (*cit_decrypt_one)(struct crypto_tfm *tfm, u8 *dst, const u8 *src);
97708 -};
97709 +} __no_const;
97710
97711 struct hash_tfm {
97712 int (*init)(struct hash_desc *desc);
97713 @@ -590,7 +590,7 @@ struct compress_tfm {
97714 int (*cot_decompress)(struct crypto_tfm *tfm,
97715 const u8 *src, unsigned int slen,
97716 u8 *dst, unsigned int *dlen);
97717 -};
97718 +} __no_const;
97719
97720 #define crt_ablkcipher crt_u.ablkcipher
97721 #define crt_blkcipher crt_u.blkcipher
97722 diff --git a/include/linux/ctype.h b/include/linux/ctype.h
97723 index 653589e..4ef254a 100644
97724 --- a/include/linux/ctype.h
97725 +++ b/include/linux/ctype.h
97726 @@ -56,7 +56,7 @@ static inline unsigned char __toupper(unsigned char c)
97727 * Fast implementation of tolower() for internal usage. Do not use in your
97728 * code.
97729 */
97730 -static inline char _tolower(const char c)
97731 +static inline unsigned char _tolower(const unsigned char c)
97732 {
97733 return c | 0x20;
97734 }
97735 diff --git a/include/linux/dcache.h b/include/linux/dcache.h
97736 index d67ae11..9ec20d2 100644
97737 --- a/include/linux/dcache.h
97738 +++ b/include/linux/dcache.h
97739 @@ -123,6 +123,9 @@ struct dentry {
97740 unsigned long d_time; /* used by d_revalidate */
97741 void *d_fsdata; /* fs-specific data */
97742
97743 +#ifdef CONFIG_GRKERNSEC_CHROOT_RENAME
97744 + atomic_t chroot_refcnt; /* tracks use of directory in chroot */
97745 +#endif
97746 struct list_head d_lru; /* LRU list */
97747 struct list_head d_child; /* child of parent list */
97748 struct list_head d_subdirs; /* our children */
97749 @@ -133,7 +136,7 @@ struct dentry {
97750 struct hlist_node d_alias; /* inode alias list */
97751 struct rcu_head d_rcu;
97752 } d_u;
97753 -};
97754 +} __randomize_layout;
97755
97756 /*
97757 * dentry->d_lock spinlock nesting subclasses:
97758 @@ -321,7 +324,7 @@ extern struct dentry *__d_lookup_rcu(const struct dentry *parent,
97759
97760 static inline unsigned d_count(const struct dentry *dentry)
97761 {
97762 - return dentry->d_lockref.count;
97763 + return __lockref_read(&dentry->d_lockref);
97764 }
97765
97766 /*
97767 @@ -350,7 +353,7 @@ extern char *dentry_path(struct dentry *, char *, int);
97768 static inline struct dentry *dget_dlock(struct dentry *dentry)
97769 {
97770 if (dentry)
97771 - dentry->d_lockref.count++;
97772 + __lockref_inc(&dentry->d_lockref);
97773 return dentry;
97774 }
97775
97776 diff --git a/include/linux/decompress/mm.h b/include/linux/decompress/mm.h
97777 index 7925bf0..d5143d2 100644
97778 --- a/include/linux/decompress/mm.h
97779 +++ b/include/linux/decompress/mm.h
97780 @@ -77,7 +77,7 @@ static void free(void *where)
97781 * warnings when not needed (indeed large_malloc / large_free are not
97782 * needed by inflate */
97783
97784 -#define malloc(a) kmalloc(a, GFP_KERNEL)
97785 +#define malloc(a) kmalloc((a), GFP_KERNEL)
97786 #define free(a) kfree(a)
97787
97788 #define large_malloc(a) vmalloc(a)
97789 diff --git a/include/linux/devfreq.h b/include/linux/devfreq.h
97790 index ce447f0..83c66bd 100644
97791 --- a/include/linux/devfreq.h
97792 +++ b/include/linux/devfreq.h
97793 @@ -114,7 +114,7 @@ struct devfreq_governor {
97794 int (*get_target_freq)(struct devfreq *this, unsigned long *freq);
97795 int (*event_handler)(struct devfreq *devfreq,
97796 unsigned int event, void *data);
97797 -};
97798 +} __do_const;
97799
97800 /**
97801 * struct devfreq - Device devfreq structure
97802 diff --git a/include/linux/device.h b/include/linux/device.h
97803 index a2b4ea7..b07dddd 100644
97804 --- a/include/linux/device.h
97805 +++ b/include/linux/device.h
97806 @@ -342,7 +342,7 @@ struct subsys_interface {
97807 struct list_head node;
97808 int (*add_dev)(struct device *dev, struct subsys_interface *sif);
97809 int (*remove_dev)(struct device *dev, struct subsys_interface *sif);
97810 -};
97811 +} __do_const;
97812
97813 int subsys_interface_register(struct subsys_interface *sif);
97814 void subsys_interface_unregister(struct subsys_interface *sif);
97815 @@ -538,7 +538,7 @@ struct device_type {
97816 void (*release)(struct device *dev);
97817
97818 const struct dev_pm_ops *pm;
97819 -};
97820 +} __do_const;
97821
97822 /* interface for exporting device attributes */
97823 struct device_attribute {
97824 @@ -548,11 +548,12 @@ struct device_attribute {
97825 ssize_t (*store)(struct device *dev, struct device_attribute *attr,
97826 const char *buf, size_t count);
97827 };
97828 +typedef struct device_attribute __no_const device_attribute_no_const;
97829
97830 struct dev_ext_attribute {
97831 struct device_attribute attr;
97832 void *var;
97833 -};
97834 +} __do_const;
97835
97836 ssize_t device_show_ulong(struct device *dev, struct device_attribute *attr,
97837 char *buf);
97838 diff --git a/include/linux/dma-mapping.h b/include/linux/dma-mapping.h
97839 index ac07ff0..edff186 100644
97840 --- a/include/linux/dma-mapping.h
97841 +++ b/include/linux/dma-mapping.h
97842 @@ -64,7 +64,7 @@ struct dma_map_ops {
97843 u64 (*get_required_mask)(struct device *dev);
97844 #endif
97845 int is_phys;
97846 -};
97847 +} __do_const;
97848
97849 #define DMA_BIT_MASK(n) (((n) == 64) ? ~0ULL : ((1ULL<<(n))-1))
97850
97851 diff --git a/include/linux/efi.h b/include/linux/efi.h
97852 index 85ef051..2714c3b 100644
97853 --- a/include/linux/efi.h
97854 +++ b/include/linux/efi.h
97855 @@ -1073,6 +1073,7 @@ struct efivar_operations {
97856 efi_set_variable_nonblocking_t *set_variable_nonblocking;
97857 efi_query_variable_store_t *query_variable_store;
97858 };
97859 +typedef struct efivar_operations __no_const efivar_operations_no_const;
97860
97861 struct efivars {
97862 /*
97863 diff --git a/include/linux/elf.h b/include/linux/elf.h
97864 index 20fa8d8..3d0dd18 100644
97865 --- a/include/linux/elf.h
97866 +++ b/include/linux/elf.h
97867 @@ -29,6 +29,7 @@ extern Elf32_Dyn _DYNAMIC [];
97868 #define elf_note elf32_note
97869 #define elf_addr_t Elf32_Off
97870 #define Elf_Half Elf32_Half
97871 +#define elf_dyn Elf32_Dyn
97872
97873 #else
97874
97875 @@ -39,6 +40,7 @@ extern Elf64_Dyn _DYNAMIC [];
97876 #define elf_note elf64_note
97877 #define elf_addr_t Elf64_Off
97878 #define Elf_Half Elf64_Half
97879 +#define elf_dyn Elf64_Dyn
97880
97881 #endif
97882
97883 diff --git a/include/linux/err.h b/include/linux/err.h
97884 index a729120..6ede2c9 100644
97885 --- a/include/linux/err.h
97886 +++ b/include/linux/err.h
97887 @@ -20,12 +20,12 @@
97888
97889 #define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
97890
97891 -static inline void * __must_check ERR_PTR(long error)
97892 +static inline void * __must_check __intentional_overflow(-1) ERR_PTR(long error)
97893 {
97894 return (void *) error;
97895 }
97896
97897 -static inline long __must_check PTR_ERR(__force const void *ptr)
97898 +static inline long __must_check __intentional_overflow(-1) PTR_ERR(__force const void *ptr)
97899 {
97900 return (long) ptr;
97901 }
97902 diff --git a/include/linux/extcon.h b/include/linux/extcon.h
97903 index b16d929..d389bf1 100644
97904 --- a/include/linux/extcon.h
97905 +++ b/include/linux/extcon.h
97906 @@ -120,7 +120,7 @@ struct extcon_dev {
97907 /* /sys/class/extcon/.../mutually_exclusive/... */
97908 struct attribute_group attr_g_muex;
97909 struct attribute **attrs_muex;
97910 - struct device_attribute *d_attrs_muex;
97911 + device_attribute_no_const *d_attrs_muex;
97912 };
97913
97914 /**
97915 diff --git a/include/linux/fb.h b/include/linux/fb.h
97916 index 043f328..180ccbf 100644
97917 --- a/include/linux/fb.h
97918 +++ b/include/linux/fb.h
97919 @@ -305,7 +305,8 @@ struct fb_ops {
97920 /* called at KDB enter and leave time to prepare the console */
97921 int (*fb_debug_enter)(struct fb_info *info);
97922 int (*fb_debug_leave)(struct fb_info *info);
97923 -};
97924 +} __do_const;
97925 +typedef struct fb_ops __no_const fb_ops_no_const;
97926
97927 #ifdef CONFIG_FB_TILEBLITTING
97928 #define FB_TILE_CURSOR_NONE 0
97929 diff --git a/include/linux/fdtable.h b/include/linux/fdtable.h
97930 index fbb8874..15c61e7 100644
97931 --- a/include/linux/fdtable.h
97932 +++ b/include/linux/fdtable.h
97933 @@ -103,7 +103,7 @@ struct files_struct *get_files_struct(struct task_struct *);
97934 void put_files_struct(struct files_struct *fs);
97935 void reset_files_struct(struct files_struct *);
97936 int unshare_files(struct files_struct **);
97937 -struct files_struct *dup_fd(struct files_struct *, int *);
97938 +struct files_struct *dup_fd(struct files_struct *, int *) __latent_entropy;
97939 void do_close_on_exec(struct files_struct *);
97940 int iterate_fd(struct files_struct *, unsigned,
97941 int (*)(const void *, struct file *, unsigned),
97942 diff --git a/include/linux/fs.h b/include/linux/fs.h
97943 index 84b783f..b31767d 100644
97944 --- a/include/linux/fs.h
97945 +++ b/include/linux/fs.h
97946 @@ -439,7 +439,7 @@ struct address_space {
97947 spinlock_t private_lock; /* for use by the address_space */
97948 struct list_head private_list; /* ditto */
97949 void *private_data; /* ditto */
97950 -} __attribute__((aligned(sizeof(long))));
97951 +} __attribute__((aligned(sizeof(long)))) __randomize_layout;
97952 /*
97953 * On most architectures that alignment is already the case; but
97954 * must be enforced here for CRIS, to let the least significant bit
97955 @@ -482,7 +482,7 @@ struct block_device {
97956 int bd_fsfreeze_count;
97957 /* Mutex for freeze */
97958 struct mutex bd_fsfreeze_mutex;
97959 -};
97960 +} __randomize_layout;
97961
97962 /*
97963 * Radix-tree tags, for tagging dirty and writeback pages within the pagecache
97964 @@ -677,7 +677,7 @@ struct inode {
97965 #endif
97966
97967 void *i_private; /* fs or device private pointer */
97968 -};
97969 +} __randomize_layout;
97970
97971 static inline int inode_unhashed(struct inode *inode)
97972 {
97973 @@ -872,7 +872,7 @@ struct file {
97974 struct list_head f_tfile_llink;
97975 #endif /* #ifdef CONFIG_EPOLL */
97976 struct address_space *f_mapping;
97977 -} __attribute__((aligned(4))); /* lest something weird decides that 2 is OK */
97978 +} __attribute__((aligned(4))) __randomize_layout; /* lest something weird decides that 2 is OK */
97979
97980 struct file_handle {
97981 __u32 handle_bytes;
97982 @@ -1001,7 +1001,7 @@ struct file_lock {
97983 int state; /* state of grant or error if -ve */
97984 } afs;
97985 } fl_u;
97986 -};
97987 +} __randomize_layout;
97988
97989 struct file_lock_context {
97990 spinlock_t flc_lock;
97991 @@ -1380,7 +1380,7 @@ struct super_block {
97992 * Indicates how deep in a filesystem stack this SB is
97993 */
97994 int s_stack_depth;
97995 -};
97996 +} __randomize_layout;
97997
97998 extern struct timespec current_fs_time(struct super_block *sb);
97999
98000 @@ -1632,7 +1632,8 @@ struct file_operations {
98001 #ifndef CONFIG_MMU
98002 unsigned (*mmap_capabilities)(struct file *);
98003 #endif
98004 -};
98005 +} __do_const __randomize_layout;
98006 +typedef struct file_operations __no_const file_operations_no_const;
98007
98008 struct inode_operations {
98009 struct dentry * (*lookup) (struct inode *,struct dentry *, unsigned int);
98010 @@ -2341,7 +2342,7 @@ extern int register_chrdev_region(dev_t, unsigned, const char *);
98011 extern int __register_chrdev(unsigned int major, unsigned int baseminor,
98012 unsigned int count, const char *name,
98013 const struct file_operations *fops);
98014 -extern void __unregister_chrdev(unsigned int major, unsigned int baseminor,
98015 +extern __nocapture(4) void __unregister_chrdev(unsigned int major, unsigned int baseminor,
98016 unsigned int count, const char *name);
98017 extern void unregister_chrdev_region(dev_t, unsigned);
98018 extern void chrdev_show(struct seq_file *,off_t);
98019 @@ -3041,4 +3042,14 @@ static inline bool dir_relax(struct inode *inode)
98020 return !IS_DEADDIR(inode);
98021 }
98022
98023 +static inline bool is_sidechannel_device(const struct inode *inode)
98024 +{
98025 +#ifdef CONFIG_GRKERNSEC_DEVICE_SIDECHANNEL
98026 + umode_t mode = inode->i_mode;
98027 + return ((S_ISCHR(mode) || S_ISBLK(mode)) && (mode & (S_IROTH | S_IWOTH)));
98028 +#else
98029 + return false;
98030 +#endif
98031 +}
98032 +
98033 #endif /* _LINUX_FS_H */
98034 diff --git a/include/linux/fs_struct.h b/include/linux/fs_struct.h
98035 index 0efc3e6..fd23610 100644
98036 --- a/include/linux/fs_struct.h
98037 +++ b/include/linux/fs_struct.h
98038 @@ -6,13 +6,13 @@
98039 #include <linux/seqlock.h>
98040
98041 struct fs_struct {
98042 - int users;
98043 + atomic_t users;
98044 spinlock_t lock;
98045 seqcount_t seq;
98046 int umask;
98047 int in_exec;
98048 struct path root, pwd;
98049 -};
98050 +} __randomize_layout;
98051
98052 extern struct kmem_cache *fs_cachep;
98053
98054 diff --git a/include/linux/fscache-cache.h b/include/linux/fscache-cache.h
98055 index 604e152..5954d0d 100644
98056 --- a/include/linux/fscache-cache.h
98057 +++ b/include/linux/fscache-cache.h
98058 @@ -117,7 +117,7 @@ struct fscache_operation {
98059 fscache_operation_release_t release;
98060 };
98061
98062 -extern atomic_t fscache_op_debug_id;
98063 +extern atomic_unchecked_t fscache_op_debug_id;
98064 extern void fscache_op_work_func(struct work_struct *work);
98065
98066 extern void fscache_enqueue_operation(struct fscache_operation *);
98067 diff --git a/include/linux/fscache.h b/include/linux/fscache.h
98068 index 115bb81..e7b812b 100644
98069 --- a/include/linux/fscache.h
98070 +++ b/include/linux/fscache.h
98071 @@ -152,7 +152,7 @@ struct fscache_cookie_def {
98072 * - this is mandatory for any object that may have data
98073 */
98074 void (*now_uncached)(void *cookie_netfs_data);
98075 -};
98076 +} __do_const;
98077
98078 /*
98079 * fscache cached network filesystem type
98080 diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h
98081 index 7ee1774..72505b8 100644
98082 --- a/include/linux/fsnotify.h
98083 +++ b/include/linux/fsnotify.h
98084 @@ -197,6 +197,9 @@ static inline void fsnotify_access(struct file *file)
98085 struct inode *inode = file_inode(file);
98086 __u32 mask = FS_ACCESS;
98087
98088 + if (is_sidechannel_device(inode))
98089 + return;
98090 +
98091 if (S_ISDIR(inode->i_mode))
98092 mask |= FS_ISDIR;
98093
98094 @@ -215,6 +218,9 @@ static inline void fsnotify_modify(struct file *file)
98095 struct inode *inode = file_inode(file);
98096 __u32 mask = FS_MODIFY;
98097
98098 + if (is_sidechannel_device(inode))
98099 + return;
98100 +
98101 if (S_ISDIR(inode->i_mode))
98102 mask |= FS_ISDIR;
98103
98104 @@ -317,7 +323,7 @@ static inline void fsnotify_change(struct dentry *dentry, unsigned int ia_valid)
98105 */
98106 static inline const unsigned char *fsnotify_oldname_init(const unsigned char *name)
98107 {
98108 - return kstrdup(name, GFP_KERNEL);
98109 + return (const unsigned char *)kstrdup((const char *)name, GFP_KERNEL);
98110 }
98111
98112 /*
98113 diff --git a/include/linux/genhd.h b/include/linux/genhd.h
98114 index ec274e0..e678159 100644
98115 --- a/include/linux/genhd.h
98116 +++ b/include/linux/genhd.h
98117 @@ -194,7 +194,7 @@ struct gendisk {
98118 struct kobject *slave_dir;
98119
98120 struct timer_rand_state *random;
98121 - atomic_t sync_io; /* RAID */
98122 + atomic_unchecked_t sync_io; /* RAID */
98123 struct disk_events *ev;
98124 #ifdef CONFIG_BLK_DEV_INTEGRITY
98125 struct blk_integrity *integrity;
98126 @@ -435,7 +435,7 @@ extern void disk_flush_events(struct gendisk *disk, unsigned int mask);
98127 extern unsigned int disk_clear_events(struct gendisk *disk, unsigned int mask);
98128
98129 /* drivers/char/random.c */
98130 -extern void add_disk_randomness(struct gendisk *disk);
98131 +extern void add_disk_randomness(struct gendisk *disk) __latent_entropy;
98132 extern void rand_initialize_disk(struct gendisk *disk);
98133
98134 static inline sector_t get_start_sect(struct block_device *bdev)
98135 diff --git a/include/linux/genl_magic_func.h b/include/linux/genl_magic_func.h
98136 index 667c311..abac2a7 100644
98137 --- a/include/linux/genl_magic_func.h
98138 +++ b/include/linux/genl_magic_func.h
98139 @@ -246,7 +246,7 @@ const char *CONCAT_(GENL_MAGIC_FAMILY, _genl_cmd_to_str)(__u8 cmd)
98140 },
98141
98142 #define ZZZ_genl_ops CONCAT_(GENL_MAGIC_FAMILY, _genl_ops)
98143 -static struct genl_ops ZZZ_genl_ops[] __read_mostly = {
98144 +static struct genl_ops ZZZ_genl_ops[] = {
98145 #include GENL_MAGIC_INCLUDE_FILE
98146 };
98147
98148 diff --git a/include/linux/gfp.h b/include/linux/gfp.h
98149 index ad35f30..30b1916 100644
98150 --- a/include/linux/gfp.h
98151 +++ b/include/linux/gfp.h
98152 @@ -35,6 +35,13 @@ struct vm_area_struct;
98153 #define ___GFP_NO_KSWAPD 0x400000u
98154 #define ___GFP_OTHER_NODE 0x800000u
98155 #define ___GFP_WRITE 0x1000000u
98156 +
98157 +#ifdef CONFIG_PAX_USERCOPY_SLABS
98158 +#define ___GFP_USERCOPY 0x2000000u
98159 +#else
98160 +#define ___GFP_USERCOPY 0
98161 +#endif
98162 +
98163 /* If the above are modified, __GFP_BITS_SHIFT may need updating */
98164
98165 /*
98166 @@ -94,6 +101,7 @@ struct vm_area_struct;
98167 #define __GFP_NO_KSWAPD ((__force gfp_t)___GFP_NO_KSWAPD)
98168 #define __GFP_OTHER_NODE ((__force gfp_t)___GFP_OTHER_NODE) /* On behalf of other node */
98169 #define __GFP_WRITE ((__force gfp_t)___GFP_WRITE) /* Allocator intends to dirty page */
98170 +#define __GFP_USERCOPY ((__force gfp_t)___GFP_USERCOPY)/* Allocator intends to copy page to/from userland */
98171
98172 /*
98173 * This may seem redundant, but it's a way of annotating false positives vs.
98174 @@ -101,7 +109,7 @@ struct vm_area_struct;
98175 */
98176 #define __GFP_NOTRACK_FALSE_POSITIVE (__GFP_NOTRACK)
98177
98178 -#define __GFP_BITS_SHIFT 25 /* Room for N __GFP_FOO bits */
98179 +#define __GFP_BITS_SHIFT 26 /* Room for N __GFP_FOO bits */
98180 #define __GFP_BITS_MASK ((__force gfp_t)((1 << __GFP_BITS_SHIFT) - 1))
98181
98182 /* This equals 0, but use constants in case they ever change */
98183 @@ -146,6 +154,8 @@ struct vm_area_struct;
98184 /* 4GB DMA on some platforms */
98185 #define GFP_DMA32 __GFP_DMA32
98186
98187 +#define GFP_USERCOPY __GFP_USERCOPY
98188 +
98189 /* Convert GFP flags to their corresponding migrate type */
98190 static inline int gfpflags_to_migratetype(const gfp_t gfp_flags)
98191 {
98192 diff --git a/include/linux/gracl.h b/include/linux/gracl.h
98193 new file mode 100644
98194 index 0000000..91858e4
98195 --- /dev/null
98196 +++ b/include/linux/gracl.h
98197 @@ -0,0 +1,342 @@
98198 +#ifndef GR_ACL_H
98199 +#define GR_ACL_H
98200 +
98201 +#include <linux/grdefs.h>
98202 +#include <linux/resource.h>
98203 +#include <linux/capability.h>
98204 +#include <linux/dcache.h>
98205 +#include <asm/resource.h>
98206 +
98207 +/* Major status information */
98208 +
98209 +#define GR_VERSION "grsecurity 3.1"
98210 +#define GRSECURITY_VERSION 0x3100
98211 +
98212 +enum {
98213 + GR_SHUTDOWN = 0,
98214 + GR_ENABLE = 1,
98215 + GR_SPROLE = 2,
98216 + GR_OLDRELOAD = 3,
98217 + GR_SEGVMOD = 4,
98218 + GR_STATUS = 5,
98219 + GR_UNSPROLE = 6,
98220 + GR_PASSSET = 7,
98221 + GR_SPROLEPAM = 8,
98222 + GR_RELOAD = 9,
98223 +};
98224 +
98225 +/* Password setup definitions
98226 + * kernel/grhash.c */
98227 +enum {
98228 + GR_PW_LEN = 128,
98229 + GR_SALT_LEN = 16,
98230 + GR_SHA_LEN = 32,
98231 +};
98232 +
98233 +enum {
98234 + GR_SPROLE_LEN = 64,
98235 +};
98236 +
98237 +enum {
98238 + GR_NO_GLOB = 0,
98239 + GR_REG_GLOB,
98240 + GR_CREATE_GLOB
98241 +};
98242 +
98243 +#define GR_NLIMITS 32
98244 +
98245 +/* Begin Data Structures */
98246 +
98247 +struct sprole_pw {
98248 + unsigned char *rolename;
98249 + unsigned char salt[GR_SALT_LEN];
98250 + unsigned char sum[GR_SHA_LEN]; /* 256-bit SHA hash of the password */
98251 +};
98252 +
98253 +struct name_entry {
98254 + __u32 key;
98255 + u64 inode;
98256 + dev_t device;
98257 + char *name;
98258 + __u16 len;
98259 + __u8 deleted;
98260 + struct name_entry *prev;
98261 + struct name_entry *next;
98262 +};
98263 +
98264 +struct inodev_entry {
98265 + struct name_entry *nentry;
98266 + struct inodev_entry *prev;
98267 + struct inodev_entry *next;
98268 +};
98269 +
98270 +struct acl_role_db {
98271 + struct acl_role_label **r_hash;
98272 + __u32 r_size;
98273 +};
98274 +
98275 +struct inodev_db {
98276 + struct inodev_entry **i_hash;
98277 + __u32 i_size;
98278 +};
98279 +
98280 +struct name_db {
98281 + struct name_entry **n_hash;
98282 + __u32 n_size;
98283 +};
98284 +
98285 +struct crash_uid {
98286 + uid_t uid;
98287 + unsigned long expires;
98288 +};
98289 +
98290 +struct gr_hash_struct {
98291 + void **table;
98292 + void **nametable;
98293 + void *first;
98294 + __u32 table_size;
98295 + __u32 used_size;
98296 + int type;
98297 +};
98298 +
98299 +/* Userspace Grsecurity ACL data structures */
98300 +
98301 +struct acl_subject_label {
98302 + char *filename;
98303 + u64 inode;
98304 + dev_t device;
98305 + __u32 mode;
98306 + kernel_cap_t cap_mask;
98307 + kernel_cap_t cap_lower;
98308 + kernel_cap_t cap_invert_audit;
98309 +
98310 + struct rlimit res[GR_NLIMITS];
98311 + __u32 resmask;
98312 +
98313 + __u8 user_trans_type;
98314 + __u8 group_trans_type;
98315 + uid_t *user_transitions;
98316 + gid_t *group_transitions;
98317 + __u16 user_trans_num;
98318 + __u16 group_trans_num;
98319 +
98320 + __u32 sock_families[2];
98321 + __u32 ip_proto[8];
98322 + __u32 ip_type;
98323 + struct acl_ip_label **ips;
98324 + __u32 ip_num;
98325 + __u32 inaddr_any_override;
98326 +
98327 + __u32 crashes;
98328 + unsigned long expires;
98329 +
98330 + struct acl_subject_label *parent_subject;
98331 + struct gr_hash_struct *hash;
98332 + struct acl_subject_label *prev;
98333 + struct acl_subject_label *next;
98334 +
98335 + struct acl_object_label **obj_hash;
98336 + __u32 obj_hash_size;
98337 + __u16 pax_flags;
98338 +};
98339 +
98340 +struct role_allowed_ip {
98341 + __u32 addr;
98342 + __u32 netmask;
98343 +
98344 + struct role_allowed_ip *prev;
98345 + struct role_allowed_ip *next;
98346 +};
98347 +
98348 +struct role_transition {
98349 + char *rolename;
98350 +
98351 + struct role_transition *prev;
98352 + struct role_transition *next;
98353 +};
98354 +
98355 +struct acl_role_label {
98356 + char *rolename;
98357 + uid_t uidgid;
98358 + __u16 roletype;
98359 +
98360 + __u16 auth_attempts;
98361 + unsigned long expires;
98362 +
98363 + struct acl_subject_label *root_label;
98364 + struct gr_hash_struct *hash;
98365 +
98366 + struct acl_role_label *prev;
98367 + struct acl_role_label *next;
98368 +
98369 + struct role_transition *transitions;
98370 + struct role_allowed_ip *allowed_ips;
98371 + uid_t *domain_children;
98372 + __u16 domain_child_num;
98373 +
98374 + umode_t umask;
98375 +
98376 + struct acl_subject_label **subj_hash;
98377 + __u32 subj_hash_size;
98378 +};
98379 +
98380 +struct user_acl_role_db {
98381 + struct acl_role_label **r_table;
98382 + __u32 num_pointers; /* Number of allocations to track */
98383 + __u32 num_roles; /* Number of roles */
98384 + __u32 num_domain_children; /* Number of domain children */
98385 + __u32 num_subjects; /* Number of subjects */
98386 + __u32 num_objects; /* Number of objects */
98387 +};
98388 +
98389 +struct acl_object_label {
98390 + char *filename;
98391 + u64 inode;
98392 + dev_t device;
98393 + __u32 mode;
98394 +
98395 + struct acl_subject_label *nested;
98396 + struct acl_object_label *globbed;
98397 +
98398 + /* next two structures not used */
98399 +
98400 + struct acl_object_label *prev;
98401 + struct acl_object_label *next;
98402 +};
98403 +
98404 +struct acl_ip_label {
98405 + char *iface;
98406 + __u32 addr;
98407 + __u32 netmask;
98408 + __u16 low, high;
98409 + __u8 mode;
98410 + __u32 type;
98411 + __u32 proto[8];
98412 +
98413 + /* next two structures not used */
98414 +
98415 + struct acl_ip_label *prev;
98416 + struct acl_ip_label *next;
98417 +};
98418 +
98419 +struct gr_arg {
98420 + struct user_acl_role_db role_db;
98421 + unsigned char pw[GR_PW_LEN];
98422 + unsigned char salt[GR_SALT_LEN];
98423 + unsigned char sum[GR_SHA_LEN];
98424 + unsigned char sp_role[GR_SPROLE_LEN];
98425 + struct sprole_pw *sprole_pws;
98426 + dev_t segv_device;
98427 + u64 segv_inode;
98428 + uid_t segv_uid;
98429 + __u16 num_sprole_pws;
98430 + __u16 mode;
98431 +};
98432 +
98433 +struct gr_arg_wrapper {
98434 + struct gr_arg *arg;
98435 + __u32 version;
98436 + __u32 size;
98437 +};
98438 +
98439 +struct subject_map {
98440 + struct acl_subject_label *user;
98441 + struct acl_subject_label *kernel;
98442 + struct subject_map *prev;
98443 + struct subject_map *next;
98444 +};
98445 +
98446 +struct acl_subj_map_db {
98447 + struct subject_map **s_hash;
98448 + __u32 s_size;
98449 +};
98450 +
98451 +struct gr_policy_state {
98452 + struct sprole_pw **acl_special_roles;
98453 + __u16 num_sprole_pws;
98454 + struct acl_role_label *kernel_role;
98455 + struct acl_role_label *role_list;
98456 + struct acl_role_label *default_role;
98457 + struct acl_role_db acl_role_set;
98458 + struct acl_subj_map_db subj_map_set;
98459 + struct name_db name_set;
98460 + struct inodev_db inodev_set;
98461 +};
98462 +
98463 +struct gr_alloc_state {
98464 + unsigned long alloc_stack_next;
98465 + unsigned long alloc_stack_size;
98466 + void **alloc_stack;
98467 +};
98468 +
98469 +struct gr_reload_state {
98470 + struct gr_policy_state oldpolicy;
98471 + struct gr_alloc_state oldalloc;
98472 + struct gr_policy_state newpolicy;
98473 + struct gr_alloc_state newalloc;
98474 + struct gr_policy_state *oldpolicy_ptr;
98475 + struct gr_alloc_state *oldalloc_ptr;
98476 + unsigned char oldmode;
98477 +};
98478 +
98479 +/* End Data Structures Section */
98480 +
98481 +/* Hash functions generated by empirical testing by Brad Spengler
98482 + Makes good use of the low bits of the inode. Generally 0-1 times
98483 + in loop for successful match. 0-3 for unsuccessful match.
98484 + Shift/add algorithm with modulus of table size and an XOR*/
98485 +
98486 +static __inline__ unsigned int
98487 +gr_rhash(const uid_t uid, const __u16 type, const unsigned int sz)
98488 +{
98489 + return ((((uid + type) << (16 + type)) ^ uid) % sz);
98490 +}
98491 +
98492 + static __inline__ unsigned int
98493 +gr_shash(const struct acl_subject_label *userp, const unsigned int sz)
98494 +{
98495 + return ((const unsigned long)userp % sz);
98496 +}
98497 +
98498 +static __inline__ unsigned int
98499 +gr_fhash(const u64 ino, const dev_t dev, const unsigned int sz)
98500 +{
98501 + unsigned int rem;
98502 + div_u64_rem((ino + dev) ^ ((ino << 13) + (ino << 23) + (dev << 9)), sz, &rem);
98503 + return rem;
98504 +}
98505 +
98506 +static __inline__ unsigned int
98507 +gr_nhash(const char *name, const __u16 len, const unsigned int sz)
98508 +{
98509 + return full_name_hash((const unsigned char *)name, len) % sz;
98510 +}
98511 +
98512 +#define FOR_EACH_SUBJECT_START(role,subj,iter) \
98513 + subj = NULL; \
98514 + iter = 0; \
98515 + while (iter < role->subj_hash_size) { \
98516 + if (subj == NULL) \
98517 + subj = role->subj_hash[iter]; \
98518 + if (subj == NULL) { \
98519 + iter++; \
98520 + continue; \
98521 + }
98522 +
98523 +#define FOR_EACH_SUBJECT_END(subj,iter) \
98524 + subj = subj->next; \
98525 + if (subj == NULL) \
98526 + iter++; \
98527 + }
98528 +
98529 +
98530 +#define FOR_EACH_NESTED_SUBJECT_START(role,subj) \
98531 + subj = role->hash->first; \
98532 + while (subj != NULL) {
98533 +
98534 +#define FOR_EACH_NESTED_SUBJECT_END(subj) \
98535 + subj = subj->next; \
98536 + }
98537 +
98538 +#endif
98539 +
98540 diff --git a/include/linux/gracl_compat.h b/include/linux/gracl_compat.h
98541 new file mode 100644
98542 index 0000000..af64092
98543 --- /dev/null
98544 +++ b/include/linux/gracl_compat.h
98545 @@ -0,0 +1,156 @@
98546 +#ifndef GR_ACL_COMPAT_H
98547 +#define GR_ACL_COMPAT_H
98548 +
98549 +#include <linux/resource.h>
98550 +#include <asm/resource.h>
98551 +
98552 +struct sprole_pw_compat {
98553 + compat_uptr_t rolename;
98554 + unsigned char salt[GR_SALT_LEN];
98555 + unsigned char sum[GR_SHA_LEN];
98556 +};
98557 +
98558 +struct gr_hash_struct_compat {
98559 + compat_uptr_t table;
98560 + compat_uptr_t nametable;
98561 + compat_uptr_t first;
98562 + __u32 table_size;
98563 + __u32 used_size;
98564 + int type;
98565 +};
98566 +
98567 +struct acl_subject_label_compat {
98568 + compat_uptr_t filename;
98569 + compat_u64 inode;
98570 + __u32 device;
98571 + __u32 mode;
98572 + kernel_cap_t cap_mask;
98573 + kernel_cap_t cap_lower;
98574 + kernel_cap_t cap_invert_audit;
98575 +
98576 + struct compat_rlimit res[GR_NLIMITS];
98577 + __u32 resmask;
98578 +
98579 + __u8 user_trans_type;
98580 + __u8 group_trans_type;
98581 + compat_uptr_t user_transitions;
98582 + compat_uptr_t group_transitions;
98583 + __u16 user_trans_num;
98584 + __u16 group_trans_num;
98585 +
98586 + __u32 sock_families[2];
98587 + __u32 ip_proto[8];
98588 + __u32 ip_type;
98589 + compat_uptr_t ips;
98590 + __u32 ip_num;
98591 + __u32 inaddr_any_override;
98592 +
98593 + __u32 crashes;
98594 + compat_ulong_t expires;
98595 +
98596 + compat_uptr_t parent_subject;
98597 + compat_uptr_t hash;
98598 + compat_uptr_t prev;
98599 + compat_uptr_t next;
98600 +
98601 + compat_uptr_t obj_hash;
98602 + __u32 obj_hash_size;
98603 + __u16 pax_flags;
98604 +};
98605 +
98606 +struct role_allowed_ip_compat {
98607 + __u32 addr;
98608 + __u32 netmask;
98609 +
98610 + compat_uptr_t prev;
98611 + compat_uptr_t next;
98612 +};
98613 +
98614 +struct role_transition_compat {
98615 + compat_uptr_t rolename;
98616 +
98617 + compat_uptr_t prev;
98618 + compat_uptr_t next;
98619 +};
98620 +
98621 +struct acl_role_label_compat {
98622 + compat_uptr_t rolename;
98623 + uid_t uidgid;
98624 + __u16 roletype;
98625 +
98626 + __u16 auth_attempts;
98627 + compat_ulong_t expires;
98628 +
98629 + compat_uptr_t root_label;
98630 + compat_uptr_t hash;
98631 +
98632 + compat_uptr_t prev;
98633 + compat_uptr_t next;
98634 +
98635 + compat_uptr_t transitions;
98636 + compat_uptr_t allowed_ips;
98637 + compat_uptr_t domain_children;
98638 + __u16 domain_child_num;
98639 +
98640 + umode_t umask;
98641 +
98642 + compat_uptr_t subj_hash;
98643 + __u32 subj_hash_size;
98644 +};
98645 +
98646 +struct user_acl_role_db_compat {
98647 + compat_uptr_t r_table;
98648 + __u32 num_pointers;
98649 + __u32 num_roles;
98650 + __u32 num_domain_children;
98651 + __u32 num_subjects;
98652 + __u32 num_objects;
98653 +};
98654 +
98655 +struct acl_object_label_compat {
98656 + compat_uptr_t filename;
98657 + compat_u64 inode;
98658 + __u32 device;
98659 + __u32 mode;
98660 +
98661 + compat_uptr_t nested;
98662 + compat_uptr_t globbed;
98663 +
98664 + compat_uptr_t prev;
98665 + compat_uptr_t next;
98666 +};
98667 +
98668 +struct acl_ip_label_compat {
98669 + compat_uptr_t iface;
98670 + __u32 addr;
98671 + __u32 netmask;
98672 + __u16 low, high;
98673 + __u8 mode;
98674 + __u32 type;
98675 + __u32 proto[8];
98676 +
98677 + compat_uptr_t prev;
98678 + compat_uptr_t next;
98679 +};
98680 +
98681 +struct gr_arg_compat {
98682 + struct user_acl_role_db_compat role_db;
98683 + unsigned char pw[GR_PW_LEN];
98684 + unsigned char salt[GR_SALT_LEN];
98685 + unsigned char sum[GR_SHA_LEN];
98686 + unsigned char sp_role[GR_SPROLE_LEN];
98687 + compat_uptr_t sprole_pws;
98688 + __u32 segv_device;
98689 + compat_u64 segv_inode;
98690 + uid_t segv_uid;
98691 + __u16 num_sprole_pws;
98692 + __u16 mode;
98693 +};
98694 +
98695 +struct gr_arg_wrapper_compat {
98696 + compat_uptr_t arg;
98697 + __u32 version;
98698 + __u32 size;
98699 +};
98700 +
98701 +#endif
98702 diff --git a/include/linux/gralloc.h b/include/linux/gralloc.h
98703 new file mode 100644
98704 index 0000000..323ecf2
98705 --- /dev/null
98706 +++ b/include/linux/gralloc.h
98707 @@ -0,0 +1,9 @@
98708 +#ifndef __GRALLOC_H
98709 +#define __GRALLOC_H
98710 +
98711 +void acl_free_all(void);
98712 +int acl_alloc_stack_init(unsigned long size);
98713 +void *acl_alloc(unsigned long len);
98714 +void *acl_alloc_num(unsigned long num, unsigned long len);
98715 +
98716 +#endif
98717 diff --git a/include/linux/grdefs.h b/include/linux/grdefs.h
98718 new file mode 100644
98719 index 0000000..be66033
98720 --- /dev/null
98721 +++ b/include/linux/grdefs.h
98722 @@ -0,0 +1,140 @@
98723 +#ifndef GRDEFS_H
98724 +#define GRDEFS_H
98725 +
98726 +/* Begin grsecurity status declarations */
98727 +
98728 +enum {
98729 + GR_READY = 0x01,
98730 + GR_STATUS_INIT = 0x00 // disabled state
98731 +};
98732 +
98733 +/* Begin ACL declarations */
98734 +
98735 +/* Role flags */
98736 +
98737 +enum {
98738 + GR_ROLE_USER = 0x0001,
98739 + GR_ROLE_GROUP = 0x0002,
98740 + GR_ROLE_DEFAULT = 0x0004,
98741 + GR_ROLE_SPECIAL = 0x0008,
98742 + GR_ROLE_AUTH = 0x0010,
98743 + GR_ROLE_NOPW = 0x0020,
98744 + GR_ROLE_GOD = 0x0040,
98745 + GR_ROLE_LEARN = 0x0080,
98746 + GR_ROLE_TPE = 0x0100,
98747 + GR_ROLE_DOMAIN = 0x0200,
98748 + GR_ROLE_PAM = 0x0400,
98749 + GR_ROLE_PERSIST = 0x0800
98750 +};
98751 +
98752 +/* ACL Subject and Object mode flags */
98753 +enum {
98754 + GR_DELETED = 0x80000000
98755 +};
98756 +
98757 +/* ACL Object-only mode flags */
98758 +enum {
98759 + GR_READ = 0x00000001,
98760 + GR_APPEND = 0x00000002,
98761 + GR_WRITE = 0x00000004,
98762 + GR_EXEC = 0x00000008,
98763 + GR_FIND = 0x00000010,
98764 + GR_INHERIT = 0x00000020,
98765 + GR_SETID = 0x00000040,
98766 + GR_CREATE = 0x00000080,
98767 + GR_DELETE = 0x00000100,
98768 + GR_LINK = 0x00000200,
98769 + GR_AUDIT_READ = 0x00000400,
98770 + GR_AUDIT_APPEND = 0x00000800,
98771 + GR_AUDIT_WRITE = 0x00001000,
98772 + GR_AUDIT_EXEC = 0x00002000,
98773 + GR_AUDIT_FIND = 0x00004000,
98774 + GR_AUDIT_INHERIT= 0x00008000,
98775 + GR_AUDIT_SETID = 0x00010000,
98776 + GR_AUDIT_CREATE = 0x00020000,
98777 + GR_AUDIT_DELETE = 0x00040000,
98778 + GR_AUDIT_LINK = 0x00080000,
98779 + GR_PTRACERD = 0x00100000,
98780 + GR_NOPTRACE = 0x00200000,
98781 + GR_SUPPRESS = 0x00400000,
98782 + GR_NOLEARN = 0x00800000,
98783 + GR_INIT_TRANSFER= 0x01000000
98784 +};
98785 +
98786 +#define GR_AUDITS (GR_AUDIT_READ | GR_AUDIT_WRITE | GR_AUDIT_APPEND | GR_AUDIT_EXEC | \
98787 + GR_AUDIT_FIND | GR_AUDIT_INHERIT | GR_AUDIT_SETID | \
98788 + GR_AUDIT_CREATE | GR_AUDIT_DELETE | GR_AUDIT_LINK)
98789 +
98790 +/* ACL subject-only mode flags */
98791 +enum {
98792 + GR_KILL = 0x00000001,
98793 + GR_VIEW = 0x00000002,
98794 + GR_PROTECTED = 0x00000004,
98795 + GR_LEARN = 0x00000008,
98796 + GR_OVERRIDE = 0x00000010,
98797 + /* just a placeholder, this mode is only used in userspace */
98798 + GR_DUMMY = 0x00000020,
98799 + GR_PROTSHM = 0x00000040,
98800 + GR_KILLPROC = 0x00000080,
98801 + GR_KILLIPPROC = 0x00000100,
98802 + /* just a placeholder, this mode is only used in userspace */
98803 + GR_NOTROJAN = 0x00000200,
98804 + GR_PROTPROCFD = 0x00000400,
98805 + GR_PROCACCT = 0x00000800,
98806 + GR_RELAXPTRACE = 0x00001000,
98807 + //GR_NESTED = 0x00002000,
98808 + GR_INHERITLEARN = 0x00004000,
98809 + GR_PROCFIND = 0x00008000,
98810 + GR_POVERRIDE = 0x00010000,
98811 + GR_KERNELAUTH = 0x00020000,
98812 + GR_ATSECURE = 0x00040000,
98813 + GR_SHMEXEC = 0x00080000
98814 +};
98815 +
98816 +enum {
98817 + GR_PAX_ENABLE_SEGMEXEC = 0x0001,
98818 + GR_PAX_ENABLE_PAGEEXEC = 0x0002,
98819 + GR_PAX_ENABLE_MPROTECT = 0x0004,
98820 + GR_PAX_ENABLE_RANDMMAP = 0x0008,
98821 + GR_PAX_ENABLE_EMUTRAMP = 0x0010,
98822 + GR_PAX_DISABLE_SEGMEXEC = 0x0100,
98823 + GR_PAX_DISABLE_PAGEEXEC = 0x0200,
98824 + GR_PAX_DISABLE_MPROTECT = 0x0400,
98825 + GR_PAX_DISABLE_RANDMMAP = 0x0800,
98826 + GR_PAX_DISABLE_EMUTRAMP = 0x1000,
98827 +};
98828 +
98829 +enum {
98830 + GR_ID_USER = 0x01,
98831 + GR_ID_GROUP = 0x02,
98832 +};
98833 +
98834 +enum {
98835 + GR_ID_ALLOW = 0x01,
98836 + GR_ID_DENY = 0x02,
98837 +};
98838 +
98839 +#define GR_CRASH_RES 31
98840 +#define GR_UIDTABLE_MAX 500
98841 +
98842 +/* begin resource learning section */
98843 +enum {
98844 + GR_RLIM_CPU_BUMP = 60,
98845 + GR_RLIM_FSIZE_BUMP = 50000,
98846 + GR_RLIM_DATA_BUMP = 10000,
98847 + GR_RLIM_STACK_BUMP = 1000,
98848 + GR_RLIM_CORE_BUMP = 10000,
98849 + GR_RLIM_RSS_BUMP = 500000,
98850 + GR_RLIM_NPROC_BUMP = 1,
98851 + GR_RLIM_NOFILE_BUMP = 5,
98852 + GR_RLIM_MEMLOCK_BUMP = 50000,
98853 + GR_RLIM_AS_BUMP = 500000,
98854 + GR_RLIM_LOCKS_BUMP = 2,
98855 + GR_RLIM_SIGPENDING_BUMP = 5,
98856 + GR_RLIM_MSGQUEUE_BUMP = 10000,
98857 + GR_RLIM_NICE_BUMP = 1,
98858 + GR_RLIM_RTPRIO_BUMP = 1,
98859 + GR_RLIM_RTTIME_BUMP = 1000000
98860 +};
98861 +
98862 +#endif
98863 diff --git a/include/linux/grinternal.h b/include/linux/grinternal.h
98864 new file mode 100644
98865 index 0000000..6245f9e
98866 --- /dev/null
98867 +++ b/include/linux/grinternal.h
98868 @@ -0,0 +1,230 @@
98869 +#ifndef __GRINTERNAL_H
98870 +#define __GRINTERNAL_H
98871 +
98872 +#ifdef CONFIG_GRKERNSEC
98873 +
98874 +#include <linux/fs.h>
98875 +#include <linux/mnt_namespace.h>
98876 +#include <linux/nsproxy.h>
98877 +#include <linux/gracl.h>
98878 +#include <linux/grdefs.h>
98879 +#include <linux/grmsg.h>
98880 +
98881 +void gr_add_learn_entry(const char *fmt, ...)
98882 + __attribute__ ((format (printf, 1, 2)));
98883 +__u32 gr_search_file(const struct dentry *dentry, const __u32 mode,
98884 + const struct vfsmount *mnt);
98885 +__u32 gr_check_create(const struct dentry *new_dentry,
98886 + const struct dentry *parent,
98887 + const struct vfsmount *mnt, const __u32 mode);
98888 +int gr_check_protected_task(const struct task_struct *task);
98889 +__u32 to_gr_audit(const __u32 reqmode);
98890 +int gr_set_acls(const int type);
98891 +int gr_acl_is_enabled(void);
98892 +char gr_roletype_to_char(void);
98893 +
98894 +void gr_handle_alertkill(struct task_struct *task);
98895 +char *gr_to_filename(const struct dentry *dentry,
98896 + const struct vfsmount *mnt);
98897 +char *gr_to_filename1(const struct dentry *dentry,
98898 + const struct vfsmount *mnt);
98899 +char *gr_to_filename2(const struct dentry *dentry,
98900 + const struct vfsmount *mnt);
98901 +char *gr_to_filename3(const struct dentry *dentry,
98902 + const struct vfsmount *mnt);
98903 +
98904 +extern int grsec_enable_ptrace_readexec;
98905 +extern int grsec_enable_harden_ptrace;
98906 +extern int grsec_enable_link;
98907 +extern int grsec_enable_fifo;
98908 +extern int grsec_enable_execve;
98909 +extern int grsec_enable_shm;
98910 +extern int grsec_enable_execlog;
98911 +extern int grsec_enable_signal;
98912 +extern int grsec_enable_audit_ptrace;
98913 +extern int grsec_enable_forkfail;
98914 +extern int grsec_enable_time;
98915 +extern int grsec_enable_rofs;
98916 +extern int grsec_deny_new_usb;
98917 +extern int grsec_enable_chroot_shmat;
98918 +extern int grsec_enable_chroot_mount;
98919 +extern int grsec_enable_chroot_double;
98920 +extern int grsec_enable_chroot_pivot;
98921 +extern int grsec_enable_chroot_chdir;
98922 +extern int grsec_enable_chroot_chmod;
98923 +extern int grsec_enable_chroot_mknod;
98924 +extern int grsec_enable_chroot_fchdir;
98925 +extern int grsec_enable_chroot_nice;
98926 +extern int grsec_enable_chroot_execlog;
98927 +extern int grsec_enable_chroot_caps;
98928 +extern int grsec_enable_chroot_rename;
98929 +extern int grsec_enable_chroot_sysctl;
98930 +extern int grsec_enable_chroot_unix;
98931 +extern int grsec_enable_symlinkown;
98932 +extern kgid_t grsec_symlinkown_gid;
98933 +extern int grsec_enable_tpe;
98934 +extern kgid_t grsec_tpe_gid;
98935 +extern int grsec_enable_tpe_all;
98936 +extern int grsec_enable_tpe_invert;
98937 +extern int grsec_enable_socket_all;
98938 +extern kgid_t grsec_socket_all_gid;
98939 +extern int grsec_enable_socket_client;
98940 +extern kgid_t grsec_socket_client_gid;
98941 +extern int grsec_enable_socket_server;
98942 +extern kgid_t grsec_socket_server_gid;
98943 +extern kgid_t grsec_audit_gid;
98944 +extern int grsec_enable_group;
98945 +extern int grsec_enable_log_rwxmaps;
98946 +extern int grsec_enable_mount;
98947 +extern int grsec_enable_chdir;
98948 +extern int grsec_resource_logging;
98949 +extern int grsec_enable_blackhole;
98950 +extern int grsec_lastack_retries;
98951 +extern int grsec_enable_brute;
98952 +extern int grsec_enable_harden_ipc;
98953 +extern int grsec_lock;
98954 +
98955 +extern spinlock_t grsec_alert_lock;
98956 +extern unsigned long grsec_alert_wtime;
98957 +extern unsigned long grsec_alert_fyet;
98958 +
98959 +extern spinlock_t grsec_audit_lock;
98960 +
98961 +extern rwlock_t grsec_exec_file_lock;
98962 +
98963 +#define gr_task_fullpath(tsk) ((tsk)->exec_file ? \
98964 + gr_to_filename2((tsk)->exec_file->f_path.dentry, \
98965 + (tsk)->exec_file->f_path.mnt) : "/")
98966 +
98967 +#define gr_parent_task_fullpath(tsk) ((tsk)->real_parent->exec_file ? \
98968 + gr_to_filename3((tsk)->real_parent->exec_file->f_path.dentry, \
98969 + (tsk)->real_parent->exec_file->f_path.mnt) : "/")
98970 +
98971 +#define gr_task_fullpath0(tsk) ((tsk)->exec_file ? \
98972 + gr_to_filename((tsk)->exec_file->f_path.dentry, \
98973 + (tsk)->exec_file->f_path.mnt) : "/")
98974 +
98975 +#define gr_parent_task_fullpath0(tsk) ((tsk)->real_parent->exec_file ? \
98976 + gr_to_filename1((tsk)->real_parent->exec_file->f_path.dentry, \
98977 + (tsk)->real_parent->exec_file->f_path.mnt) : "/")
98978 +
98979 +#define proc_is_chrooted(tsk_a) ((tsk_a)->gr_is_chrooted)
98980 +
98981 +#define have_same_root(tsk_a,tsk_b) ((tsk_a)->gr_chroot_dentry == (tsk_b)->gr_chroot_dentry)
98982 +
98983 +static inline bool gr_is_same_file(const struct file *file1, const struct file *file2)
98984 +{
98985 + if (file1 && file2) {
98986 + const struct inode *inode1 = file1->f_path.dentry->d_inode;
98987 + const struct inode *inode2 = file2->f_path.dentry->d_inode;
98988 + if (inode1->i_ino == inode2->i_ino && inode1->i_sb->s_dev == inode2->i_sb->s_dev)
98989 + return true;
98990 + }
98991 +
98992 + return false;
98993 +}
98994 +
98995 +#define GR_CHROOT_CAPS {{ \
98996 + CAP_TO_MASK(CAP_LINUX_IMMUTABLE) | CAP_TO_MASK(CAP_NET_ADMIN) | \
98997 + CAP_TO_MASK(CAP_SYS_MODULE) | CAP_TO_MASK(CAP_SYS_RAWIO) | \
98998 + CAP_TO_MASK(CAP_SYS_PACCT) | CAP_TO_MASK(CAP_SYS_ADMIN) | \
98999 + CAP_TO_MASK(CAP_SYS_BOOT) | CAP_TO_MASK(CAP_SYS_TIME) | \
99000 + CAP_TO_MASK(CAP_NET_RAW) | CAP_TO_MASK(CAP_SYS_TTY_CONFIG) | \
99001 + CAP_TO_MASK(CAP_IPC_OWNER) | CAP_TO_MASK(CAP_SETFCAP), \
99002 + CAP_TO_MASK(CAP_SYSLOG) | CAP_TO_MASK(CAP_MAC_ADMIN) }}
99003 +
99004 +#define security_learn(normal_msg,args...) \
99005 +({ \
99006 + read_lock(&grsec_exec_file_lock); \
99007 + gr_add_learn_entry(normal_msg "\n", ## args); \
99008 + read_unlock(&grsec_exec_file_lock); \
99009 +})
99010 +
99011 +enum {
99012 + GR_DO_AUDIT,
99013 + GR_DONT_AUDIT,
99014 + /* used for non-audit messages that we shouldn't kill the task on */
99015 + GR_DONT_AUDIT_GOOD
99016 +};
99017 +
99018 +enum {
99019 + GR_TTYSNIFF,
99020 + GR_RBAC,
99021 + GR_RBAC_STR,
99022 + GR_STR_RBAC,
99023 + GR_RBAC_MODE2,
99024 + GR_RBAC_MODE3,
99025 + GR_FILENAME,
99026 + GR_SYSCTL_HIDDEN,
99027 + GR_NOARGS,
99028 + GR_ONE_INT,
99029 + GR_ONE_INT_TWO_STR,
99030 + GR_ONE_STR,
99031 + GR_STR_INT,
99032 + GR_TWO_STR_INT,
99033 + GR_TWO_INT,
99034 + GR_TWO_U64,
99035 + GR_THREE_INT,
99036 + GR_FIVE_INT_TWO_STR,
99037 + GR_TWO_STR,
99038 + GR_THREE_STR,
99039 + GR_FOUR_STR,
99040 + GR_STR_FILENAME,
99041 + GR_FILENAME_STR,
99042 + GR_FILENAME_TWO_INT,
99043 + GR_FILENAME_TWO_INT_STR,
99044 + GR_TEXTREL,
99045 + GR_PTRACE,
99046 + GR_RESOURCE,
99047 + GR_CAP,
99048 + GR_SIG,
99049 + GR_SIG2,
99050 + GR_CRASH1,
99051 + GR_CRASH2,
99052 + GR_PSACCT,
99053 + GR_RWXMAP,
99054 + GR_RWXMAPVMA
99055 +};
99056 +
99057 +#define gr_log_hidden_sysctl(audit, msg, str) gr_log_varargs(audit, msg, GR_SYSCTL_HIDDEN, str)
99058 +#define gr_log_ttysniff(audit, msg, task) gr_log_varargs(audit, msg, GR_TTYSNIFF, task)
99059 +#define gr_log_fs_rbac_generic(audit, msg, dentry, mnt) gr_log_varargs(audit, msg, GR_RBAC, dentry, mnt)
99060 +#define gr_log_fs_rbac_str(audit, msg, dentry, mnt, str) gr_log_varargs(audit, msg, GR_RBAC_STR, dentry, mnt, str)
99061 +#define gr_log_fs_str_rbac(audit, msg, str, dentry, mnt) gr_log_varargs(audit, msg, GR_STR_RBAC, str, dentry, mnt)
99062 +#define gr_log_fs_rbac_mode2(audit, msg, dentry, mnt, str1, str2) gr_log_varargs(audit, msg, GR_RBAC_MODE2, dentry, mnt, str1, str2)
99063 +#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)
99064 +#define gr_log_fs_generic(audit, msg, dentry, mnt) gr_log_varargs(audit, msg, GR_FILENAME, dentry, mnt)
99065 +#define gr_log_noargs(audit, msg) gr_log_varargs(audit, msg, GR_NOARGS)
99066 +#define gr_log_int(audit, msg, num) gr_log_varargs(audit, msg, GR_ONE_INT, num)
99067 +#define gr_log_int_str2(audit, msg, num, str1, str2) gr_log_varargs(audit, msg, GR_ONE_INT_TWO_STR, num, str1, str2)
99068 +#define gr_log_str(audit, msg, str) gr_log_varargs(audit, msg, GR_ONE_STR, str)
99069 +#define gr_log_str_int(audit, msg, str, num) gr_log_varargs(audit, msg, GR_STR_INT, str, num)
99070 +#define gr_log_int_int(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_INT, num1, num2)
99071 +#define gr_log_two_u64(audit, msg, num1, num2) gr_log_varargs(audit, msg, GR_TWO_U64, num1, num2)
99072 +#define gr_log_int3(audit, msg, num1, num2, num3) gr_log_varargs(audit, msg, GR_THREE_INT, num1, num2, num3)
99073 +#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)
99074 +#define gr_log_str_str(audit, msg, str1, str2) gr_log_varargs(audit, msg, GR_TWO_STR, str1, str2)
99075 +#define gr_log_str2_int(audit, msg, str1, str2, num) gr_log_varargs(audit, msg, GR_TWO_STR_INT, str1, str2, num)
99076 +#define gr_log_str3(audit, msg, str1, str2, str3) gr_log_varargs(audit, msg, GR_THREE_STR, str1, str2, str3)
99077 +#define gr_log_str4(audit, msg, str1, str2, str3, str4) gr_log_varargs(audit, msg, GR_FOUR_STR, str1, str2, str3, str4)
99078 +#define gr_log_str_fs(audit, msg, str, dentry, mnt) gr_log_varargs(audit, msg, GR_STR_FILENAME, str, dentry, mnt)
99079 +#define gr_log_fs_str(audit, msg, dentry, mnt, str) gr_log_varargs(audit, msg, GR_FILENAME_STR, dentry, mnt, str)
99080 +#define gr_log_fs_int2(audit, msg, dentry, mnt, num1, num2) gr_log_varargs(audit, msg, GR_FILENAME_TWO_INT, dentry, mnt, num1, num2)
99081 +#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)
99082 +#define gr_log_textrel_ulong_ulong(audit, msg, str, file, ulong1, ulong2) gr_log_varargs(audit, msg, GR_TEXTREL, str, file, ulong1, ulong2)
99083 +#define gr_log_ptrace(audit, msg, task) gr_log_varargs(audit, msg, GR_PTRACE, task)
99084 +#define gr_log_res_ulong2_str(audit, msg, task, ulong1, str, ulong2) gr_log_varargs(audit, msg, GR_RESOURCE, task, ulong1, str, ulong2)
99085 +#define gr_log_cap(audit, msg, task, str) gr_log_varargs(audit, msg, GR_CAP, task, str)
99086 +#define gr_log_sig_addr(audit, msg, str, addr) gr_log_varargs(audit, msg, GR_SIG, str, addr)
99087 +#define gr_log_sig_task(audit, msg, task, num) gr_log_varargs(audit, msg, GR_SIG2, task, num)
99088 +#define gr_log_crash1(audit, msg, task, ulong) gr_log_varargs(audit, msg, GR_CRASH1, task, ulong)
99089 +#define gr_log_crash2(audit, msg, task, ulong1) gr_log_varargs(audit, msg, GR_CRASH2, task, ulong1)
99090 +#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)
99091 +#define gr_log_rwxmap(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAP, str)
99092 +#define gr_log_rwxmap_vma(audit, msg, str) gr_log_varargs(audit, msg, GR_RWXMAPVMA, str)
99093 +
99094 +void gr_log_varargs(int audit, const char *msg, int argtypes, ...);
99095 +
99096 +#endif
99097 +
99098 +#endif
99099 diff --git a/include/linux/grmsg.h b/include/linux/grmsg.h
99100 new file mode 100644
99101 index 0000000..3092b3c
99102 --- /dev/null
99103 +++ b/include/linux/grmsg.h
99104 @@ -0,0 +1,118 @@
99105 +#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"
99106 +#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"
99107 +#define GR_PTRACE_ACL_MSG "denied ptrace of %.950s(%.16s:%d) by "
99108 +#define GR_STOPMOD_MSG "denied modification of module state by "
99109 +#define GR_ROFS_BLOCKWRITE_MSG "denied write to block device %.950s by "
99110 +#define GR_ROFS_MOUNT_MSG "denied writable mount of %.950s by "
99111 +#define GR_IOPERM_MSG "denied use of ioperm() by "
99112 +#define GR_IOPL_MSG "denied use of iopl() by "
99113 +#define GR_SHMAT_ACL_MSG "denied attach of shared memory of UID %u, PID %d, ID %u by "
99114 +#define GR_UNIX_CHROOT_MSG "denied connect() to abstract AF_UNIX socket outside of chroot by "
99115 +#define GR_SHMAT_CHROOT_MSG "denied attach of shared memory outside of chroot by "
99116 +#define GR_MEM_READWRITE_MSG "denied access of range %Lx -> %Lx in /dev/mem by "
99117 +#define GR_SYMLINK_MSG "not following symlink %.950s owned by %d.%d by "
99118 +#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"
99119 +#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"
99120 +#define GR_HIDDEN_ACL_MSG "%s access to hidden file %.950s by "
99121 +#define GR_OPEN_ACL_MSG "%s open of %.950s for%s%s by "
99122 +#define GR_CREATE_ACL_MSG "%s create of %.950s for%s%s by "
99123 +#define GR_FIFO_MSG "denied writing FIFO %.950s of %d.%d by "
99124 +#define GR_MKNOD_CHROOT_MSG "denied mknod of %.950s from chroot by "
99125 +#define GR_MKNOD_ACL_MSG "%s mknod of %.950s by "
99126 +#define GR_UNIXCONNECT_ACL_MSG "%s connect() to the unix domain socket %.950s by "
99127 +#define GR_TTYSNIFF_ACL_MSG "terminal being sniffed by IP:%pI4 %.480s[%.16s:%d], parent %.480s[%.16s:%d] against "
99128 +#define GR_MKDIR_ACL_MSG "%s mkdir of %.950s by "
99129 +#define GR_RMDIR_ACL_MSG "%s rmdir of %.950s by "
99130 +#define GR_UNLINK_ACL_MSG "%s unlink of %.950s by "
99131 +#define GR_SYMLINK_ACL_MSG "%s symlink from %.480s to %.480s by "
99132 +#define GR_HARDLINK_MSG "denied hardlink of %.930s (owned by %d.%d) to %.30s for "
99133 +#define GR_LINK_ACL_MSG "%s link of %.480s to %.480s by "
99134 +#define GR_INHERIT_ACL_MSG "successful inherit of %.480s's ACL for %.480s by "
99135 +#define GR_RENAME_ACL_MSG "%s rename of %.480s to %.480s by "
99136 +#define GR_UNSAFESHARE_EXEC_ACL_MSG "denied exec with cloned fs of %.950s by "
99137 +#define GR_PTRACE_EXEC_ACL_MSG "denied ptrace of %.950s by "
99138 +#define GR_EXEC_ACL_MSG "%s execution of %.950s by "
99139 +#define GR_EXEC_TPE_MSG "denied untrusted exec (due to %.70s) of %.950s by "
99140 +#define GR_SEGVSTART_ACL_MSG "possible exploit bruteforcing on " DEFAULTSECMSG " banning uid %u from login for %lu seconds"
99141 +#define GR_SEGVNOSUID_ACL_MSG "possible exploit bruteforcing on " DEFAULTSECMSG " banning execution for %lu seconds"
99142 +#define GR_MOUNT_CHROOT_MSG "denied mount of %.256s as %.930s from chroot by "
99143 +#define GR_PIVOT_CHROOT_MSG "denied pivot_root from chroot by "
99144 +#define GR_TRUNCATE_ACL_MSG "%s truncate of %.950s by "
99145 +#define GR_ATIME_ACL_MSG "%s access time change of %.950s by "
99146 +#define GR_ACCESS_ACL_MSG "%s access of %.950s for%s%s%s by "
99147 +#define GR_CHROOT_CHROOT_MSG "denied double chroot to %.950s by "
99148 +#define GR_CHROOT_RENAME_MSG "denied bad rename of %.950s out of a chroot by "
99149 +#define GR_CHMOD_CHROOT_MSG "denied chmod +s of %.950s by "
99150 +#define GR_CHMOD_ACL_MSG "%s chmod of %.950s by "
99151 +#define GR_CHROOT_FCHDIR_MSG "denied fchdir outside of chroot to %.950s by "
99152 +#define GR_CHROOT_FHANDLE_MSG "denied use of file handles inside chroot by "
99153 +#define GR_CHOWN_ACL_MSG "%s chown of %.950s by "
99154 +#define GR_SETXATTR_ACL_MSG "%s setting extended attribute of %.950s by "
99155 +#define GR_REMOVEXATTR_ACL_MSG "%s removing extended attribute of %.950s by "
99156 +#define GR_WRITLIB_ACL_MSG "denied load of writable library %.950s by "
99157 +#define GR_INITF_ACL_MSG "init_variables() failed %s by "
99158 +#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"
99159 +#define GR_DEV_ACL_MSG "/dev/grsec: %d bytes sent %d required, being fed garbage by "
99160 +#define GR_SHUTS_ACL_MSG "shutdown auth success for "
99161 +#define GR_SHUTF_ACL_MSG "shutdown auth failure for "
99162 +#define GR_SHUTI_ACL_MSG "ignoring shutdown for disabled RBAC system for "
99163 +#define GR_SEGVMODS_ACL_MSG "segvmod auth success for "
99164 +#define GR_SEGVMODF_ACL_MSG "segvmod auth failure for "
99165 +#define GR_SEGVMODI_ACL_MSG "ignoring segvmod for disabled RBAC system for "
99166 +#define GR_ENABLE_ACL_MSG "%s RBAC system loaded by "
99167 +#define GR_ENABLEF_ACL_MSG "unable to load %s for "
99168 +#define GR_RELOADI_ACL_MSG "ignoring reload request for disabled RBAC system"
99169 +#define GR_RELOAD_ACL_MSG "%s RBAC system reloaded by "
99170 +#define GR_RELOADF_ACL_MSG "failed reload of %s for "
99171 +#define GR_SPROLEI_ACL_MSG "ignoring change to special role for disabled RBAC system for "
99172 +#define GR_SPROLES_ACL_MSG "successful change to special role %s (id %d) by "
99173 +#define GR_SPROLEL_ACL_MSG "special role %s (id %d) exited by "
99174 +#define GR_SPROLEF_ACL_MSG "special role %s failure for "
99175 +#define GR_UNSPROLEI_ACL_MSG "ignoring unauth of special role for disabled RBAC system for "
99176 +#define GR_UNSPROLES_ACL_MSG "successful unauth of special role %s (id %d) by "
99177 +#define GR_INVMODE_ACL_MSG "invalid mode %d by "
99178 +#define GR_PRIORITY_CHROOT_MSG "denied priority change of process (%.16s:%d) by "
99179 +#define GR_FAILFORK_MSG "failed fork with errno %s by "
99180 +#define GR_NICE_CHROOT_MSG "denied priority change by "
99181 +#define GR_UNISIGLOG_MSG "%.32s occurred at %p in "
99182 +#define GR_DUALSIGLOG_MSG "signal %d sent to " DEFAULTSECMSG " by "
99183 +#define GR_SIG_ACL_MSG "denied send of signal %d to protected task " DEFAULTSECMSG " by "
99184 +#define GR_SYSCTL_MSG "denied modification of grsecurity sysctl value : %.32s by "
99185 +#define GR_SYSCTL_ACL_MSG "%s sysctl of %.950s for%s%s by "
99186 +#define GR_TIME_MSG "time set by "
99187 +#define GR_DEFACL_MSG "fatal: unable to find subject for (%.16s:%d), loaded by "
99188 +#define GR_MMAP_ACL_MSG "%s executable mmap of %.950s by "
99189 +#define GR_MPROTECT_ACL_MSG "%s executable mprotect of %.950s by "
99190 +#define GR_SOCK_MSG "denied socket(%.16s,%.16s,%.16s) by "
99191 +#define GR_SOCK_NOINET_MSG "denied socket(%.16s,%.16s,%d) by "
99192 +#define GR_BIND_MSG "denied bind() by "
99193 +#define GR_CONNECT_MSG "denied connect() by "
99194 +#define GR_BIND_ACL_MSG "denied bind() to %pI4 port %u sock type %.16s protocol %.16s by "
99195 +#define GR_CONNECT_ACL_MSG "denied connect() to %pI4 port %u sock type %.16s protocol %.16s by "
99196 +#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"
99197 +#define GR_EXEC_CHROOT_MSG "exec of %.980s within chroot by process "
99198 +#define GR_CAP_ACL_MSG "use of %s denied for "
99199 +#define GR_CAP_CHROOT_MSG "use of %s in chroot denied for "
99200 +#define GR_CAP_ACL_MSG2 "use of %s permitted for "
99201 +#define GR_USRCHANGE_ACL_MSG "change to uid %u denied for "
99202 +#define GR_GRPCHANGE_ACL_MSG "change to gid %u denied for "
99203 +#define GR_REMOUNT_AUDIT_MSG "remount of %.256s by "
99204 +#define GR_UNMOUNT_AUDIT_MSG "unmount of %.256s by "
99205 +#define GR_MOUNT_AUDIT_MSG "mount of %.256s to %.256s by "
99206 +#define GR_CHDIR_AUDIT_MSG "chdir to %.980s by "
99207 +#define GR_EXEC_AUDIT_MSG "exec of %.930s (%.128s) by "
99208 +#define GR_RESOURCE_MSG "denied resource overstep by requesting %lu for %.16s against limit %lu for "
99209 +#define GR_RWXMMAP_MSG "denied RWX mmap of %.950s by "
99210 +#define GR_RWXMPROTECT_MSG "denied RWX mprotect of %.950s by "
99211 +#define GR_TEXTREL_AUDIT_MSG "allowed %s text relocation transition in %.950s, VMA:0x%08lx 0x%08lx by "
99212 +#define GR_PTGNUSTACK_MSG "denied marking stack executable as requested by PT_GNU_STACK marking in %.950s by "
99213 +#define GR_VM86_MSG "denied use of vm86 by "
99214 +#define GR_PTRACE_AUDIT_MSG "process %.950s(%.16s:%d) attached to via ptrace by "
99215 +#define GR_PTRACE_READEXEC_MSG "denied ptrace of unreadable binary %.950s by "
99216 +#define GR_INIT_TRANSFER_MSG "persistent special role transferred privilege to init by "
99217 +#define GR_BADPROCPID_MSG "denied read of sensitive /proc/pid/%s entry via fd passed across exec by "
99218 +#define GR_SYMLINKOWNER_MSG "denied following symlink %.950s since symlink owner %u does not match target owner %u, by "
99219 +#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 "
99220 +#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 "
99221 +#define GR_IPC_DENIED_MSG "denied %s of overly-permissive IPC object with creator uid %u by "
99222 +#define GR_MSRWRITE_MSG "denied write to CPU MSR by "
99223 diff --git a/include/linux/grsecurity.h b/include/linux/grsecurity.h
99224 new file mode 100644
99225 index 0000000..0ea4a82
99226 --- /dev/null
99227 +++ b/include/linux/grsecurity.h
99228 @@ -0,0 +1,255 @@
99229 +#ifndef GR_SECURITY_H
99230 +#define GR_SECURITY_H
99231 +#include <linux/fs.h>
99232 +#include <linux/fs_struct.h>
99233 +#include <linux/binfmts.h>
99234 +#include <linux/gracl.h>
99235 +
99236 +/* notify of brain-dead configs */
99237 +#if defined(CONFIG_DEBUG_FS) && defined(CONFIG_GRKERNSEC_KMEM)
99238 +#error "CONFIG_DEBUG_FS being enabled is a security risk when CONFIG_GRKERNSEC_KMEM is enabled"
99239 +#endif
99240 +#if defined(CONFIG_PROC_PAGE_MONITOR) && defined(CONFIG_GRKERNSEC)
99241 +#error "CONFIG_PROC_PAGE_MONITOR is a security risk"
99242 +#endif
99243 +#if defined(CONFIG_GRKERNSEC_PROC_USER) && defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
99244 +#error "CONFIG_GRKERNSEC_PROC_USER and CONFIG_GRKERNSEC_PROC_USERGROUP cannot both be enabled."
99245 +#endif
99246 +#if defined(CONFIG_GRKERNSEC_PROC) && !defined(CONFIG_GRKERNSEC_PROC_USER) && !defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
99247 +#error "CONFIG_GRKERNSEC_PROC enabled, but neither CONFIG_GRKERNSEC_PROC_USER nor CONFIG_GRKERNSEC_PROC_USERGROUP enabled"
99248 +#endif
99249 +#if defined(CONFIG_PAX_NOEXEC) && !defined(CONFIG_PAX_PAGEEXEC) && !defined(CONFIG_PAX_SEGMEXEC) && !defined(CONFIG_PAX_KERNEXEC)
99250 +#error "CONFIG_PAX_NOEXEC enabled, but PAGEEXEC, SEGMEXEC, and KERNEXEC are disabled."
99251 +#endif
99252 +#if defined(CONFIG_PAX_ASLR) && !defined(CONFIG_PAX_RANDKSTACK) && !defined(CONFIG_PAX_RANDUSTACK) && !defined(CONFIG_PAX_RANDMMAP)
99253 +#error "CONFIG_PAX_ASLR enabled, but RANDKSTACK, RANDUSTACK, and RANDMMAP are disabled."
99254 +#endif
99255 +#if defined(CONFIG_PAX) && !defined(CONFIG_PAX_NOEXEC) && !defined(CONFIG_PAX_ASLR)
99256 +#error "CONFIG_PAX enabled, but no PaX options are enabled."
99257 +#endif
99258 +
99259 +int gr_handle_new_usb(void);
99260 +
99261 +void gr_handle_brute_attach(int dumpable);
99262 +void gr_handle_brute_check(void);
99263 +void gr_handle_kernel_exploit(void);
99264 +
99265 +char gr_roletype_to_char(void);
99266 +
99267 +int gr_proc_is_restricted(void);
99268 +
99269 +int gr_acl_enable_at_secure(void);
99270 +
99271 +int gr_check_user_change(kuid_t real, kuid_t effective, kuid_t fs);
99272 +int gr_check_group_change(kgid_t real, kgid_t effective, kgid_t fs);
99273 +
99274 +int gr_learn_cap(const struct task_struct *task, const struct cred *cred, const int cap);
99275 +
99276 +void gr_del_task_from_ip_table(struct task_struct *p);
99277 +
99278 +int gr_pid_is_chrooted(struct task_struct *p);
99279 +int gr_handle_chroot_fowner(struct pid *pid, enum pid_type type);
99280 +int gr_handle_chroot_nice(void);
99281 +int gr_handle_chroot_sysctl(const int op);
99282 +int gr_handle_chroot_setpriority(struct task_struct *p,
99283 + const int niceval);
99284 +int gr_chroot_fchdir(struct dentry *u_dentry, struct vfsmount *u_mnt);
99285 +int gr_chroot_fhandle(void);
99286 +int gr_handle_chroot_chroot(const struct dentry *dentry,
99287 + const struct vfsmount *mnt);
99288 +void gr_handle_chroot_chdir(const struct path *path);
99289 +int gr_handle_chroot_chmod(const struct dentry *dentry,
99290 + const struct vfsmount *mnt, const int mode);
99291 +int gr_handle_chroot_mknod(const struct dentry *dentry,
99292 + const struct vfsmount *mnt, const int mode);
99293 +int gr_handle_chroot_mount(const struct dentry *dentry,
99294 + const struct vfsmount *mnt,
99295 + const char *dev_name);
99296 +int gr_handle_chroot_pivot(void);
99297 +int gr_handle_chroot_unix(const pid_t pid);
99298 +
99299 +int gr_handle_rawio(const struct inode *inode);
99300 +
99301 +void gr_handle_ioperm(void);
99302 +void gr_handle_iopl(void);
99303 +void gr_handle_msr_write(void);
99304 +
99305 +umode_t gr_acl_umask(void);
99306 +
99307 +int gr_tpe_allow(const struct file *file);
99308 +
99309 +void gr_set_chroot_entries(struct task_struct *task, const struct path *path);
99310 +void gr_clear_chroot_entries(struct task_struct *task);
99311 +
99312 +void gr_log_forkfail(const int retval);
99313 +void gr_log_timechange(void);
99314 +void gr_log_signal(const int sig, const void *addr, const struct task_struct *t);
99315 +void gr_log_chdir(const struct dentry *dentry,
99316 + const struct vfsmount *mnt);
99317 +void gr_log_chroot_exec(const struct dentry *dentry,
99318 + const struct vfsmount *mnt);
99319 +void gr_log_remount(const char *devname, const int retval);
99320 +void gr_log_unmount(const char *devname, const int retval);
99321 +void gr_log_mount(const char *from, struct path *to, const int retval);
99322 +void gr_log_textrel(struct vm_area_struct *vma, bool is_textrel_rw);
99323 +void gr_log_ptgnustack(struct file *file);
99324 +void gr_log_rwxmmap(struct file *file);
99325 +void gr_log_rwxmprotect(struct vm_area_struct *vma);
99326 +
99327 +int gr_handle_follow_link(const struct dentry *dentry,
99328 + const struct vfsmount *mnt);
99329 +int gr_handle_fifo(const struct dentry *dentry,
99330 + const struct vfsmount *mnt,
99331 + const struct dentry *dir, const int flag,
99332 + const int acc_mode);
99333 +int gr_handle_hardlink(const struct dentry *dentry,
99334 + const struct vfsmount *mnt,
99335 + const struct filename *to);
99336 +
99337 +int gr_is_capable(const int cap);
99338 +int gr_is_capable_nolog(const int cap);
99339 +int gr_task_is_capable(const struct task_struct *task, const struct cred *cred, const int cap);
99340 +int gr_task_is_capable_nolog(const struct task_struct *task, const int cap);
99341 +
99342 +void gr_copy_label(struct task_struct *tsk);
99343 +void gr_handle_crash(struct task_struct *task, const int sig);
99344 +int gr_handle_signal(const struct task_struct *p, const int sig);
99345 +int gr_check_crash_uid(const kuid_t uid);
99346 +int gr_check_protected_task(const struct task_struct *task);
99347 +int gr_check_protected_task_fowner(struct pid *pid, enum pid_type type);
99348 +int gr_acl_handle_mmap(const struct file *file,
99349 + const unsigned long prot);
99350 +int gr_acl_handle_mprotect(const struct file *file,
99351 + const unsigned long prot);
99352 +int gr_check_hidden_task(const struct task_struct *tsk);
99353 +__u32 gr_acl_handle_truncate(const struct dentry *dentry,
99354 + const struct vfsmount *mnt);
99355 +__u32 gr_acl_handle_utime(const struct dentry *dentry,
99356 + const struct vfsmount *mnt);
99357 +__u32 gr_acl_handle_access(const struct dentry *dentry,
99358 + const struct vfsmount *mnt, const int fmode);
99359 +__u32 gr_acl_handle_chmod(const struct dentry *dentry,
99360 + const struct vfsmount *mnt, umode_t *mode);
99361 +__u32 gr_acl_handle_chown(const struct dentry *dentry,
99362 + const struct vfsmount *mnt);
99363 +__u32 gr_acl_handle_setxattr(const struct dentry *dentry,
99364 + const struct vfsmount *mnt);
99365 +__u32 gr_acl_handle_removexattr(const struct dentry *dentry,
99366 + const struct vfsmount *mnt);
99367 +int gr_handle_ptrace(struct task_struct *task, const long request);
99368 +int gr_handle_proc_ptrace(struct task_struct *task);
99369 +__u32 gr_acl_handle_execve(const struct dentry *dentry,
99370 + const struct vfsmount *mnt);
99371 +int gr_check_crash_exec(const struct file *filp);
99372 +int gr_acl_is_enabled(void);
99373 +void gr_set_role_label(struct task_struct *task, const kuid_t uid,
99374 + const kgid_t gid);
99375 +int gr_set_proc_label(const struct dentry *dentry,
99376 + const struct vfsmount *mnt,
99377 + const int unsafe_flags);
99378 +__u32 gr_acl_handle_hidden_file(const struct dentry *dentry,
99379 + const struct vfsmount *mnt);
99380 +__u32 gr_acl_handle_open(const struct dentry *dentry,
99381 + const struct vfsmount *mnt, int acc_mode);
99382 +__u32 gr_acl_handle_creat(const struct dentry *dentry,
99383 + const struct dentry *p_dentry,
99384 + const struct vfsmount *p_mnt,
99385 + int open_flags, int acc_mode, const int imode);
99386 +void gr_handle_create(const struct dentry *dentry,
99387 + const struct vfsmount *mnt);
99388 +void gr_handle_proc_create(const struct dentry *dentry,
99389 + const struct inode *inode);
99390 +__u32 gr_acl_handle_mknod(const struct dentry *new_dentry,
99391 + const struct dentry *parent_dentry,
99392 + const struct vfsmount *parent_mnt,
99393 + const int mode);
99394 +__u32 gr_acl_handle_mkdir(const struct dentry *new_dentry,
99395 + const struct dentry *parent_dentry,
99396 + const struct vfsmount *parent_mnt);
99397 +__u32 gr_acl_handle_rmdir(const struct dentry *dentry,
99398 + const struct vfsmount *mnt);
99399 +void gr_handle_delete(const u64 ino, const dev_t dev);
99400 +__u32 gr_acl_handle_unlink(const struct dentry *dentry,
99401 + const struct vfsmount *mnt);
99402 +__u32 gr_acl_handle_symlink(const struct dentry *new_dentry,
99403 + const struct dentry *parent_dentry,
99404 + const struct vfsmount *parent_mnt,
99405 + const struct filename *from);
99406 +__u32 gr_acl_handle_link(const struct dentry *new_dentry,
99407 + const struct dentry *parent_dentry,
99408 + const struct vfsmount *parent_mnt,
99409 + const struct dentry *old_dentry,
99410 + const struct vfsmount *old_mnt, const struct filename *to);
99411 +int gr_handle_symlink_owner(const struct path *link, const struct inode *target);
99412 +int gr_acl_handle_rename(struct dentry *new_dentry,
99413 + struct dentry *parent_dentry,
99414 + const struct vfsmount *parent_mnt,
99415 + struct dentry *old_dentry,
99416 + struct inode *old_parent_inode,
99417 + struct vfsmount *old_mnt, const struct filename *newname, unsigned int flags);
99418 +void gr_handle_rename(struct inode *old_dir, struct inode *new_dir,
99419 + struct dentry *old_dentry,
99420 + struct dentry *new_dentry,
99421 + struct vfsmount *mnt, const __u8 replace, unsigned int flags);
99422 +__u32 gr_check_link(const struct dentry *new_dentry,
99423 + const struct dentry *parent_dentry,
99424 + const struct vfsmount *parent_mnt,
99425 + const struct dentry *old_dentry,
99426 + const struct vfsmount *old_mnt);
99427 +int gr_acl_handle_filldir(const struct file *file, const char *name,
99428 + const unsigned int namelen, const u64 ino);
99429 +
99430 +__u32 gr_acl_handle_unix(const struct dentry *dentry,
99431 + const struct vfsmount *mnt);
99432 +void gr_acl_handle_exit(void);
99433 +void gr_acl_handle_psacct(struct task_struct *task, const long code);
99434 +int gr_acl_handle_procpidmem(const struct task_struct *task);
99435 +int gr_handle_rofs_mount(struct dentry *dentry, struct vfsmount *mnt, int mnt_flags);
99436 +int gr_handle_rofs_blockwrite(struct dentry *dentry, struct vfsmount *mnt, int acc_mode);
99437 +void gr_audit_ptrace(struct task_struct *task);
99438 +dev_t gr_get_dev_from_dentry(struct dentry *dentry);
99439 +u64 gr_get_ino_from_dentry(struct dentry *dentry);
99440 +void gr_put_exec_file(struct task_struct *task);
99441 +
99442 +int gr_get_symlinkown_enabled(void);
99443 +
99444 +int gr_ptrace_readexec(struct file *file, int unsafe_flags);
99445 +
99446 +void gr_inc_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt);
99447 +void gr_dec_chroot_refcnts(struct dentry *dentry, struct vfsmount *mnt);
99448 +int gr_bad_chroot_rename(struct dentry *olddentry, struct vfsmount *oldmnt,
99449 + struct dentry *newdentry, struct vfsmount *newmnt);
99450 +
99451 +#ifdef CONFIG_GRKERNSEC_RESLOG
99452 +extern void gr_log_resource(const struct task_struct *task, const int res,
99453 + const unsigned long wanted, const int gt);
99454 +#else
99455 +static inline void gr_log_resource(const struct task_struct *task, const int res,
99456 + const unsigned long wanted, const int gt)
99457 +{
99458 +}
99459 +#endif
99460 +
99461 +#ifdef CONFIG_GRKERNSEC
99462 +void task_grsec_rbac(struct seq_file *m, struct task_struct *p);
99463 +void gr_handle_vm86(void);
99464 +void gr_handle_mem_readwrite(u64 from, u64 to);
99465 +
99466 +void gr_log_badprocpid(const char *entry);
99467 +
99468 +extern int grsec_enable_dmesg;
99469 +extern int grsec_disable_privio;
99470 +
99471 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
99472 +extern kgid_t grsec_proc_gid;
99473 +#endif
99474 +
99475 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
99476 +extern int grsec_enable_chroot_findtask;
99477 +#endif
99478 +#ifdef CONFIG_GRKERNSEC_SETXID
99479 +extern int grsec_enable_setxid;
99480 +#endif
99481 +#endif
99482 +
99483 +#endif
99484 diff --git a/include/linux/grsock.h b/include/linux/grsock.h
99485 new file mode 100644
99486 index 0000000..e7ffaaf
99487 --- /dev/null
99488 +++ b/include/linux/grsock.h
99489 @@ -0,0 +1,19 @@
99490 +#ifndef __GRSOCK_H
99491 +#define __GRSOCK_H
99492 +
99493 +extern void gr_attach_curr_ip(const struct sock *sk);
99494 +extern int gr_handle_sock_all(const int family, const int type,
99495 + const int protocol);
99496 +extern int gr_handle_sock_server(const struct sockaddr *sck);
99497 +extern int gr_handle_sock_server_other(const struct sock *sck);
99498 +extern int gr_handle_sock_client(const struct sockaddr *sck);
99499 +extern int gr_search_connect(struct socket * sock,
99500 + struct sockaddr_in * addr);
99501 +extern int gr_search_bind(struct socket * sock,
99502 + struct sockaddr_in * addr);
99503 +extern int gr_search_listen(struct socket * sock);
99504 +extern int gr_search_accept(struct socket * sock);
99505 +extern int gr_search_socket(const int domain, const int type,
99506 + const int protocol);
99507 +
99508 +#endif
99509 diff --git a/include/linux/highmem.h b/include/linux/highmem.h
99510 index 6aefcd0..98b81dc 100644
99511 --- a/include/linux/highmem.h
99512 +++ b/include/linux/highmem.h
99513 @@ -191,6 +191,18 @@ static inline void clear_highpage(struct page *page)
99514 kunmap_atomic(kaddr);
99515 }
99516
99517 +static inline void sanitize_highpage(struct page *page)
99518 +{
99519 + void *kaddr;
99520 + unsigned long flags;
99521 +
99522 + local_irq_save(flags);
99523 + kaddr = kmap_atomic(page);
99524 + clear_page(kaddr);
99525 + kunmap_atomic(kaddr);
99526 + local_irq_restore(flags);
99527 +}
99528 +
99529 static inline void zero_user_segments(struct page *page,
99530 unsigned start1, unsigned end1,
99531 unsigned start2, unsigned end2)
99532 diff --git a/include/linux/hwmon-sysfs.h b/include/linux/hwmon-sysfs.h
99533 index 1c7b89a..7dda400 100644
99534 --- a/include/linux/hwmon-sysfs.h
99535 +++ b/include/linux/hwmon-sysfs.h
99536 @@ -25,7 +25,8 @@
99537 struct sensor_device_attribute{
99538 struct device_attribute dev_attr;
99539 int index;
99540 -};
99541 +} __do_const;
99542 +typedef struct sensor_device_attribute __no_const sensor_device_attribute_no_const;
99543 #define to_sensor_dev_attr(_dev_attr) \
99544 container_of(_dev_attr, struct sensor_device_attribute, dev_attr)
99545
99546 @@ -41,7 +42,8 @@ struct sensor_device_attribute_2 {
99547 struct device_attribute dev_attr;
99548 u8 index;
99549 u8 nr;
99550 -};
99551 +} __do_const;
99552 +typedef struct sensor_device_attribute_2 __no_const sensor_device_attribute_2_no_const;
99553 #define to_sensor_dev_attr_2(_dev_attr) \
99554 container_of(_dev_attr, struct sensor_device_attribute_2, dev_attr)
99555
99556 diff --git a/include/linux/i2c.h b/include/linux/i2c.h
99557 index e83a738..8b323fa 100644
99558 --- a/include/linux/i2c.h
99559 +++ b/include/linux/i2c.h
99560 @@ -409,6 +409,7 @@ struct i2c_algorithm {
99561 int (*unreg_slave)(struct i2c_client *client);
99562 #endif
99563 };
99564 +typedef struct i2c_algorithm __no_const i2c_algorithm_no_const;
99565
99566 /**
99567 * struct i2c_bus_recovery_info - I2C bus recovery information
99568 diff --git a/include/linux/if_pppox.h b/include/linux/if_pppox.h
99569 index b49cf92..0c29072 100644
99570 --- a/include/linux/if_pppox.h
99571 +++ b/include/linux/if_pppox.h
99572 @@ -78,7 +78,7 @@ struct pppox_proto {
99573 int (*ioctl)(struct socket *sock, unsigned int cmd,
99574 unsigned long arg);
99575 struct module *owner;
99576 -};
99577 +} __do_const;
99578
99579 extern int register_pppox_proto(int proto_num, const struct pppox_proto *pp);
99580 extern void unregister_pppox_proto(int proto_num);
99581 diff --git a/include/linux/init.h b/include/linux/init.h
99582 index b449f37..61005b3 100644
99583 --- a/include/linux/init.h
99584 +++ b/include/linux/init.h
99585 @@ -37,9 +37,17 @@
99586 * section.
99587 */
99588
99589 +#define add_init_latent_entropy __latent_entropy
99590 +
99591 +#ifdef CONFIG_MEMORY_HOTPLUG
99592 +#define add_meminit_latent_entropy
99593 +#else
99594 +#define add_meminit_latent_entropy __latent_entropy
99595 +#endif
99596 +
99597 /* These are for everybody (although not all archs will actually
99598 discard it in modules) */
99599 -#define __init __section(.init.text) __cold notrace
99600 +#define __init __section(.init.text) __cold notrace add_init_latent_entropy
99601 #define __initdata __section(.init.data)
99602 #define __initconst __constsection(.init.rodata)
99603 #define __exitdata __section(.exit.data)
99604 @@ -92,7 +100,7 @@
99605 #define __exit __section(.exit.text) __exitused __cold notrace
99606
99607 /* Used for MEMORY_HOTPLUG */
99608 -#define __meminit __section(.meminit.text) __cold notrace
99609 +#define __meminit __section(.meminit.text) __cold notrace add_meminit_latent_entropy
99610 #define __meminitdata __section(.meminit.data)
99611 #define __meminitconst __constsection(.meminit.rodata)
99612 #define __memexit __section(.memexit.text) __exitused __cold notrace
99613 diff --git a/include/linux/init_task.h b/include/linux/init_task.h
99614 index bb9b075..ecac42c 100644
99615 --- a/include/linux/init_task.h
99616 +++ b/include/linux/init_task.h
99617 @@ -157,6 +157,12 @@ extern struct task_group root_task_group;
99618
99619 #define INIT_TASK_COMM "swapper"
99620
99621 +#ifdef CONFIG_X86
99622 +#define INIT_TASK_THREAD_INFO .tinfo = INIT_THREAD_INFO,
99623 +#else
99624 +#define INIT_TASK_THREAD_INFO
99625 +#endif
99626 +
99627 #ifdef CONFIG_RT_MUTEXES
99628 # define INIT_RT_MUTEXES(tsk) \
99629 .pi_waiters = RB_ROOT, \
99630 @@ -223,6 +229,7 @@ extern struct task_group root_task_group;
99631 RCU_POINTER_INITIALIZER(cred, &init_cred), \
99632 .comm = INIT_TASK_COMM, \
99633 .thread = INIT_THREAD, \
99634 + INIT_TASK_THREAD_INFO \
99635 .fs = &init_fs, \
99636 .files = &init_files, \
99637 .signal = &init_signals, \
99638 diff --git a/include/linux/interrupt.h b/include/linux/interrupt.h
99639 index be7e75c..09bec77 100644
99640 --- a/include/linux/interrupt.h
99641 +++ b/include/linux/interrupt.h
99642 @@ -433,8 +433,8 @@ extern const char * const softirq_to_name[NR_SOFTIRQS];
99643
99644 struct softirq_action
99645 {
99646 - void (*action)(struct softirq_action *);
99647 -};
99648 + void (*action)(void);
99649 +} __no_const;
99650
99651 asmlinkage void do_softirq(void);
99652 asmlinkage void __do_softirq(void);
99653 @@ -448,7 +448,7 @@ static inline void do_softirq_own_stack(void)
99654 }
99655 #endif
99656
99657 -extern void open_softirq(int nr, void (*action)(struct softirq_action *));
99658 +extern void open_softirq(int nr, void (*action)(void));
99659 extern void softirq_init(void);
99660 extern void __raise_softirq_irqoff(unsigned int nr);
99661
99662 diff --git a/include/linux/iommu.h b/include/linux/iommu.h
99663 index f9c1b6d..db7d6f5 100644
99664 --- a/include/linux/iommu.h
99665 +++ b/include/linux/iommu.h
99666 @@ -192,7 +192,7 @@ struct iommu_ops {
99667
99668 unsigned long pgsize_bitmap;
99669 void *priv;
99670 -};
99671 +} __do_const;
99672
99673 #define IOMMU_GROUP_NOTIFY_ADD_DEVICE 1 /* Device added */
99674 #define IOMMU_GROUP_NOTIFY_DEL_DEVICE 2 /* Pre Device removed */
99675 diff --git a/include/linux/ioport.h b/include/linux/ioport.h
99676 index 388e3ae..d7e45a1 100644
99677 --- a/include/linux/ioport.h
99678 +++ b/include/linux/ioport.h
99679 @@ -161,7 +161,7 @@ struct resource *lookup_resource(struct resource *root, resource_size_t start);
99680 int adjust_resource(struct resource *res, resource_size_t start,
99681 resource_size_t size);
99682 resource_size_t resource_alignment(struct resource *res);
99683 -static inline resource_size_t resource_size(const struct resource *res)
99684 +static inline resource_size_t __intentional_overflow(-1) resource_size(const struct resource *res)
99685 {
99686 return res->end - res->start + 1;
99687 }
99688 diff --git a/include/linux/ipc.h b/include/linux/ipc.h
99689 index 9d84942..12d5bdf 100644
99690 --- a/include/linux/ipc.h
99691 +++ b/include/linux/ipc.h
99692 @@ -19,8 +19,8 @@ struct kern_ipc_perm
99693 kuid_t cuid;
99694 kgid_t cgid;
99695 umode_t mode;
99696 - unsigned long seq;
99697 + unsigned long seq __intentional_overflow(-1);
99698 void *security;
99699 -};
99700 +} __randomize_layout;
99701
99702 #endif /* _LINUX_IPC_H */
99703 diff --git a/include/linux/ipc_namespace.h b/include/linux/ipc_namespace.h
99704 index 1eee6bc..9cf4912 100644
99705 --- a/include/linux/ipc_namespace.h
99706 +++ b/include/linux/ipc_namespace.h
99707 @@ -60,7 +60,7 @@ struct ipc_namespace {
99708 struct user_namespace *user_ns;
99709
99710 struct ns_common ns;
99711 -};
99712 +} __randomize_layout;
99713
99714 extern struct ipc_namespace init_ipc_ns;
99715 extern atomic_t nr_ipc_ns;
99716 diff --git a/include/linux/irq.h b/include/linux/irq.h
99717 index 51744bc..e902653 100644
99718 --- a/include/linux/irq.h
99719 +++ b/include/linux/irq.h
99720 @@ -383,7 +383,10 @@ struct irq_chip {
99721 int (*irq_set_vcpu_affinity)(struct irq_data *data, void *vcpu_info);
99722
99723 unsigned long flags;
99724 -};
99725 +} __do_const;
99726 +#ifndef _LINUX_IRQDOMAIN_H
99727 +typedef struct irq_chip __no_const irq_chip_no_const;
99728 +#endif
99729
99730 /*
99731 * irq_chip specific flags
99732 diff --git a/include/linux/irqdesc.h b/include/linux/irqdesc.h
99733 index fcea4e4..cff381d 100644
99734 --- a/include/linux/irqdesc.h
99735 +++ b/include/linux/irqdesc.h
99736 @@ -59,7 +59,7 @@ struct irq_desc {
99737 unsigned int irq_count; /* For detecting broken IRQs */
99738 unsigned long last_unhandled; /* Aging timer for unhandled count */
99739 unsigned int irqs_unhandled;
99740 - atomic_t threads_handled;
99741 + atomic_unchecked_t threads_handled;
99742 int threads_handled_last;
99743 raw_spinlock_t lock;
99744 struct cpumask *percpu_enabled;
99745 diff --git a/include/linux/irqdomain.h b/include/linux/irqdomain.h
99746 index 744ac0e..382b1a6 100644
99747 --- a/include/linux/irqdomain.h
99748 +++ b/include/linux/irqdomain.h
99749 @@ -40,6 +40,9 @@ struct device_node;
99750 struct irq_domain;
99751 struct of_device_id;
99752 struct irq_chip;
99753 +#ifndef _LINUX_IRQ_H
99754 +typedef struct irq_chip __no_const irq_chip_no_const;
99755 +#endif
99756 struct irq_data;
99757
99758 /* Number of irqs reserved for a legacy isa controller */
99759 diff --git a/include/linux/jiffies.h b/include/linux/jiffies.h
99760 index 535fd3b..e5c356e 100644
99761 --- a/include/linux/jiffies.h
99762 +++ b/include/linux/jiffies.h
99763 @@ -284,19 +284,19 @@ extern unsigned long preset_lpj;
99764 extern unsigned int jiffies_to_msecs(const unsigned long j);
99765 extern unsigned int jiffies_to_usecs(const unsigned long j);
99766
99767 -static inline u64 jiffies_to_nsecs(const unsigned long j)
99768 +static inline u64 __intentional_overflow(-1) jiffies_to_nsecs(const unsigned long j)
99769 {
99770 return (u64)jiffies_to_usecs(j) * NSEC_PER_USEC;
99771 }
99772
99773 -extern unsigned long __msecs_to_jiffies(const unsigned int m);
99774 +extern unsigned long __msecs_to_jiffies(const unsigned int m) __intentional_overflow(-1);
99775 #if HZ <= MSEC_PER_SEC && !(MSEC_PER_SEC % HZ)
99776 /*
99777 * HZ is equal to or smaller than 1000, and 1000 is a nice round
99778 * multiple of HZ, divide with the factor between them, but round
99779 * upwards:
99780 */
99781 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
99782 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
99783 {
99784 return (m + (MSEC_PER_SEC / HZ) - 1) / (MSEC_PER_SEC / HZ);
99785 }
99786 @@ -307,7 +307,7 @@ static inline unsigned long _msecs_to_jiffies(const unsigned int m)
99787 *
99788 * But first make sure the multiplication result cannot overflow:
99789 */
99790 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
99791 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
99792 {
99793 if (m > jiffies_to_msecs(MAX_JIFFY_OFFSET))
99794 return MAX_JIFFY_OFFSET;
99795 @@ -318,7 +318,7 @@ static inline unsigned long _msecs_to_jiffies(const unsigned int m)
99796 * Generic case - multiply, round and divide. But first check that if
99797 * we are doing a net multiplication, that we wouldn't overflow:
99798 */
99799 -static inline unsigned long _msecs_to_jiffies(const unsigned int m)
99800 +static inline unsigned long __intentional_overflow(-1) _msecs_to_jiffies(const unsigned int m)
99801 {
99802 if (HZ > MSEC_PER_SEC && m > jiffies_to_msecs(MAX_JIFFY_OFFSET))
99803 return MAX_JIFFY_OFFSET;
99804 @@ -362,21 +362,19 @@ static inline unsigned long msecs_to_jiffies(const unsigned int m)
99805 }
99806 }
99807
99808 -extern unsigned long __usecs_to_jiffies(const unsigned int u);
99809 +extern unsigned long __usecs_to_jiffies(const unsigned int u) __intentional_overflow(-1);
99810 #if HZ <= USEC_PER_SEC && !(USEC_PER_SEC % HZ)
99811 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
99812 +static inline unsigned long __intentional_overflow(-1) _usecs_to_jiffies(const unsigned int u)
99813 {
99814 return (u + (USEC_PER_SEC / HZ) - 1) / (USEC_PER_SEC / HZ);
99815 }
99816 #elif HZ > USEC_PER_SEC && !(HZ % USEC_PER_SEC)
99817 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
99818 +static inline unsigned long __intentional_overflow(-1) _usecs_to_jiffies(const unsigned int u)
99819 {
99820 return u * (HZ / USEC_PER_SEC);
99821 }
99822 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
99823 -{
99824 #else
99825 -static inline unsigned long _usecs_to_jiffies(const unsigned int u)
99826 +static inline unsigned long __intentional_overflow(-1) _usecs_to_jiffies(const unsigned int u)
99827 {
99828 return (USEC_TO_HZ_MUL32 * u + USEC_TO_HZ_ADJ32)
99829 >> USEC_TO_HZ_SHR32;
99830 diff --git a/include/linux/kallsyms.h b/include/linux/kallsyms.h
99831 index 6883e19..e854fcb 100644
99832 --- a/include/linux/kallsyms.h
99833 +++ b/include/linux/kallsyms.h
99834 @@ -15,7 +15,8 @@
99835
99836 struct module;
99837
99838 -#ifdef CONFIG_KALLSYMS
99839 +#if !defined(__INCLUDED_BY_HIDESYM) || !defined(CONFIG_KALLSYMS)
99840 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
99841 /* Lookup the address for a symbol. Returns 0 if not found. */
99842 unsigned long kallsyms_lookup_name(const char *name);
99843
99844 @@ -106,6 +107,21 @@ static inline int lookup_symbol_attrs(unsigned long addr, unsigned long *size, u
99845 /* Stupid that this does nothing, but I didn't create this mess. */
99846 #define __print_symbol(fmt, addr)
99847 #endif /*CONFIG_KALLSYMS*/
99848 +#else /* when included by kallsyms.c, vsnprintf.c, kprobes.c, or
99849 + arch/x86/kernel/dumpstack.c, with HIDESYM enabled */
99850 +extern unsigned long kallsyms_lookup_name(const char *name);
99851 +extern void __print_symbol(const char *fmt, unsigned long address);
99852 +extern int sprint_backtrace(char *buffer, unsigned long address);
99853 +extern int sprint_symbol(char *buffer, unsigned long address);
99854 +extern int sprint_symbol_no_offset(char *buffer, unsigned long address);
99855 +const char *kallsyms_lookup(unsigned long addr,
99856 + unsigned long *symbolsize,
99857 + unsigned long *offset,
99858 + char **modname, char *namebuf);
99859 +extern int kallsyms_lookup_size_offset(unsigned long addr,
99860 + unsigned long *symbolsize,
99861 + unsigned long *offset);
99862 +#endif
99863
99864 /* This macro allows us to keep printk typechecking */
99865 static __printf(1, 2)
99866 diff --git a/include/linux/key-type.h b/include/linux/key-type.h
99867 index ff9f1d3..6712be5 100644
99868 --- a/include/linux/key-type.h
99869 +++ b/include/linux/key-type.h
99870 @@ -152,7 +152,7 @@ struct key_type {
99871 /* internal fields */
99872 struct list_head link; /* link in types list */
99873 struct lock_class_key lock_class; /* key->sem lock class */
99874 -};
99875 +} __do_const;
99876
99877 extern struct key_type key_type_keyring;
99878
99879 diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
99880 index e465bb1..19f605fd 100644
99881 --- a/include/linux/kgdb.h
99882 +++ b/include/linux/kgdb.h
99883 @@ -52,7 +52,7 @@ extern int kgdb_connected;
99884 extern int kgdb_io_module_registered;
99885
99886 extern atomic_t kgdb_setting_breakpoint;
99887 -extern atomic_t kgdb_cpu_doing_single_step;
99888 +extern atomic_unchecked_t kgdb_cpu_doing_single_step;
99889
99890 extern struct task_struct *kgdb_usethread;
99891 extern struct task_struct *kgdb_contthread;
99892 @@ -254,7 +254,7 @@ struct kgdb_arch {
99893 void (*correct_hw_break)(void);
99894
99895 void (*enable_nmi)(bool on);
99896 -};
99897 +} __do_const;
99898
99899 /**
99900 * struct kgdb_io - Describe the interface for an I/O driver to talk with KGDB.
99901 @@ -279,7 +279,7 @@ struct kgdb_io {
99902 void (*pre_exception) (void);
99903 void (*post_exception) (void);
99904 int is_console;
99905 -};
99906 +} __do_const;
99907
99908 extern struct kgdb_arch arch_kgdb_ops;
99909
99910 diff --git a/include/linux/kmemleak.h b/include/linux/kmemleak.h
99911 index d0a1f99..0bd8b7c 100644
99912 --- a/include/linux/kmemleak.h
99913 +++ b/include/linux/kmemleak.h
99914 @@ -27,7 +27,7 @@
99915
99916 extern void kmemleak_init(void) __ref;
99917 extern void kmemleak_alloc(const void *ptr, size_t size, int min_count,
99918 - gfp_t gfp) __ref;
99919 + gfp_t gfp) __ref __size_overflow(2);
99920 extern void kmemleak_alloc_percpu(const void __percpu *ptr, size_t size,
99921 gfp_t gfp) __ref;
99922 extern void kmemleak_free(const void *ptr) __ref;
99923 @@ -63,7 +63,7 @@ static inline void kmemleak_erase(void **ptr)
99924 static inline void kmemleak_init(void)
99925 {
99926 }
99927 -static inline void kmemleak_alloc(const void *ptr, size_t size, int min_count,
99928 +static inline void __size_overflow(2) kmemleak_alloc(const void *ptr, size_t size, int min_count,
99929 gfp_t gfp)
99930 {
99931 }
99932 diff --git a/include/linux/kmod.h b/include/linux/kmod.h
99933 index 0555cc6..40116ce 100644
99934 --- a/include/linux/kmod.h
99935 +++ b/include/linux/kmod.h
99936 @@ -34,6 +34,8 @@ extern char modprobe_path[]; /* for sysctl */
99937 * usually useless though. */
99938 extern __printf(2, 3)
99939 int __request_module(bool wait, const char *name, ...);
99940 +extern __printf(3, 4)
99941 +int ___request_module(bool wait, char *param_name, const char *name, ...);
99942 #define request_module(mod...) __request_module(true, mod)
99943 #define request_module_nowait(mod...) __request_module(false, mod)
99944 #define try_then_request_module(x, mod...) \
99945 @@ -57,6 +59,9 @@ struct subprocess_info {
99946 struct work_struct work;
99947 struct completion *complete;
99948 char *path;
99949 +#ifdef CONFIG_GRKERNSEC
99950 + char *origpath;
99951 +#endif
99952 char **argv;
99953 char **envp;
99954 int wait;
99955 diff --git a/include/linux/kobject.h b/include/linux/kobject.h
99956 index 637f670..3d69945 100644
99957 --- a/include/linux/kobject.h
99958 +++ b/include/linux/kobject.h
99959 @@ -119,7 +119,7 @@ struct kobj_type {
99960 struct attribute **default_attrs;
99961 const struct kobj_ns_type_operations *(*child_ns_type)(struct kobject *kobj);
99962 const void *(*namespace)(struct kobject *kobj);
99963 -};
99964 +} __do_const;
99965
99966 struct kobj_uevent_env {
99967 char *argv[3];
99968 @@ -143,6 +143,7 @@ struct kobj_attribute {
99969 ssize_t (*store)(struct kobject *kobj, struct kobj_attribute *attr,
99970 const char *buf, size_t count);
99971 };
99972 +typedef struct kobj_attribute __no_const kobj_attribute_no_const;
99973
99974 extern const struct sysfs_ops kobj_sysfs_ops;
99975
99976 @@ -170,7 +171,7 @@ struct kset {
99977 spinlock_t list_lock;
99978 struct kobject kobj;
99979 const struct kset_uevent_ops *uevent_ops;
99980 -};
99981 +} __randomize_layout;
99982
99983 extern void kset_init(struct kset *kset);
99984 extern int __must_check kset_register(struct kset *kset);
99985 diff --git a/include/linux/kobject_ns.h b/include/linux/kobject_ns.h
99986 index df32d25..fb52e27 100644
99987 --- a/include/linux/kobject_ns.h
99988 +++ b/include/linux/kobject_ns.h
99989 @@ -44,7 +44,7 @@ struct kobj_ns_type_operations {
99990 const void *(*netlink_ns)(struct sock *sk);
99991 const void *(*initial_ns)(void);
99992 void (*drop_ns)(void *);
99993 -};
99994 +} __do_const;
99995
99996 int kobj_ns_type_register(const struct kobj_ns_type_operations *ops);
99997 int kobj_ns_type_registered(enum kobj_ns_type type);
99998 diff --git a/include/linux/kref.h b/include/linux/kref.h
99999 index 484604d..0f6c5b6 100644
100000 --- a/include/linux/kref.h
100001 +++ b/include/linux/kref.h
100002 @@ -68,7 +68,7 @@ static inline void kref_get(struct kref *kref)
100003 static inline int kref_sub(struct kref *kref, unsigned int count,
100004 void (*release)(struct kref *kref))
100005 {
100006 - WARN_ON(release == NULL);
100007 + BUG_ON(release == NULL);
100008
100009 if (atomic_sub_and_test((int) count, &kref->refcount)) {
100010 release(kref);
100011 diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
100012 index 05e99b8..484b1f97 100644
100013 --- a/include/linux/kvm_host.h
100014 +++ b/include/linux/kvm_host.h
100015 @@ -468,7 +468,7 @@ static inline void kvm_irqfd_exit(void)
100016 {
100017 }
100018 #endif
100019 -int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
100020 +int kvm_init(const void *opaque, unsigned vcpu_size, unsigned vcpu_align,
100021 struct module *module);
100022 void kvm_exit(void);
100023
100024 @@ -678,7 +678,7 @@ int kvm_arch_vcpu_ioctl_set_guest_debug(struct kvm_vcpu *vcpu,
100025 struct kvm_guest_debug *dbg);
100026 int kvm_arch_vcpu_ioctl_run(struct kvm_vcpu *vcpu, struct kvm_run *kvm_run);
100027
100028 -int kvm_arch_init(void *opaque);
100029 +int kvm_arch_init(const void *opaque);
100030 void kvm_arch_exit(void);
100031
100032 int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu);
100033 diff --git a/include/linux/libata.h b/include/linux/libata.h
100034 index c9cfbcd..46986db 100644
100035 --- a/include/linux/libata.h
100036 +++ b/include/linux/libata.h
100037 @@ -990,7 +990,7 @@ struct ata_port_operations {
100038 * fields must be pointers.
100039 */
100040 const struct ata_port_operations *inherits;
100041 -};
100042 +} __do_const;
100043
100044 struct ata_port_info {
100045 unsigned long flags;
100046 diff --git a/include/linux/linkage.h b/include/linux/linkage.h
100047 index a6a42dd..6c5ebce 100644
100048 --- a/include/linux/linkage.h
100049 +++ b/include/linux/linkage.h
100050 @@ -36,6 +36,7 @@
100051 #endif
100052
100053 #define __page_aligned_data __section(.data..page_aligned) __aligned(PAGE_SIZE)
100054 +#define __page_aligned_rodata __read_only __aligned(PAGE_SIZE)
100055 #define __page_aligned_bss __section(.bss..page_aligned) __aligned(PAGE_SIZE)
100056
100057 /*
100058 diff --git a/include/linux/list.h b/include/linux/list.h
100059 index feb773c..98f3075 100644
100060 --- a/include/linux/list.h
100061 +++ b/include/linux/list.h
100062 @@ -113,6 +113,19 @@ extern void __list_del_entry(struct list_head *entry);
100063 extern void list_del(struct list_head *entry);
100064 #endif
100065
100066 +extern void __pax_list_add(struct list_head *new,
100067 + struct list_head *prev,
100068 + struct list_head *next);
100069 +static inline void pax_list_add(struct list_head *new, struct list_head *head)
100070 +{
100071 + __pax_list_add(new, head, head->next);
100072 +}
100073 +static inline void pax_list_add_tail(struct list_head *new, struct list_head *head)
100074 +{
100075 + __pax_list_add(new, head->prev, head);
100076 +}
100077 +extern void pax_list_del(struct list_head *entry);
100078 +
100079 /**
100080 * list_replace - replace old entry by new one
100081 * @old : the element to be replaced
100082 @@ -146,6 +159,8 @@ static inline void list_del_init(struct list_head *entry)
100083 INIT_LIST_HEAD(entry);
100084 }
100085
100086 +extern void pax_list_del_init(struct list_head *entry);
100087 +
100088 /**
100089 * list_move - delete from one list and add as another's head
100090 * @list: the entry to move
100091 diff --git a/include/linux/lockref.h b/include/linux/lockref.h
100092 index b10b122..d37b3de 100644
100093 --- a/include/linux/lockref.h
100094 +++ b/include/linux/lockref.h
100095 @@ -28,7 +28,7 @@ struct lockref {
100096 #endif
100097 struct {
100098 spinlock_t lock;
100099 - int count;
100100 + atomic_t count;
100101 };
100102 };
100103 };
100104 @@ -43,9 +43,29 @@ extern void lockref_mark_dead(struct lockref *);
100105 extern int lockref_get_not_dead(struct lockref *);
100106
100107 /* Must be called under spinlock for reliable results */
100108 -static inline int __lockref_is_dead(const struct lockref *l)
100109 +static inline int __lockref_is_dead(const struct lockref *lockref)
100110 {
100111 - return ((int)l->count < 0);
100112 + return atomic_read(&lockref->count) < 0;
100113 +}
100114 +
100115 +static inline int __lockref_read(const struct lockref *lockref)
100116 +{
100117 + return atomic_read(&lockref->count);
100118 +}
100119 +
100120 +static inline void __lockref_set(struct lockref *lockref, int count)
100121 +{
100122 + atomic_set(&lockref->count, count);
100123 +}
100124 +
100125 +static inline void __lockref_inc(struct lockref *lockref)
100126 +{
100127 + atomic_inc(&lockref->count);
100128 +}
100129 +
100130 +static inline void __lockref_dec(struct lockref *lockref)
100131 +{
100132 + atomic_dec(&lockref->count);
100133 }
100134
100135 #endif /* __LINUX_LOCKREF_H */
100136 diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
100137 index 9429f05..a5d5425 100644
100138 --- a/include/linux/lsm_hooks.h
100139 +++ b/include/linux/lsm_hooks.h
100140 @@ -1824,7 +1824,7 @@ struct security_hook_heads {
100141 struct list_head audit_rule_match;
100142 struct list_head audit_rule_free;
100143 #endif /* CONFIG_AUDIT */
100144 -};
100145 +} __randomize_layout;
100146
100147 /*
100148 * Security module hook list structure.
100149 @@ -1834,7 +1834,7 @@ struct security_hook_list {
100150 struct list_head list;
100151 struct list_head *head;
100152 union security_list_options hook;
100153 -};
100154 +} __randomize_layout;
100155
100156 /*
100157 * Initializing a security_hook_list structure takes
100158 diff --git a/include/linux/math64.h b/include/linux/math64.h
100159 index c45c089..298841c 100644
100160 --- a/include/linux/math64.h
100161 +++ b/include/linux/math64.h
100162 @@ -15,7 +15,7 @@
100163 * This is commonly provided by 32bit archs to provide an optimized 64bit
100164 * divide.
100165 */
100166 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100167 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100168 {
100169 *remainder = dividend % divisor;
100170 return dividend / divisor;
100171 @@ -42,7 +42,7 @@ static inline u64 div64_u64_rem(u64 dividend, u64 divisor, u64 *remainder)
100172 /**
100173 * div64_u64 - unsigned 64bit divide with 64bit divisor
100174 */
100175 -static inline u64 div64_u64(u64 dividend, u64 divisor)
100176 +static inline u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor)
100177 {
100178 return dividend / divisor;
100179 }
100180 @@ -61,7 +61,7 @@ static inline s64 div64_s64(s64 dividend, s64 divisor)
100181 #define div64_ul(x, y) div_u64((x), (y))
100182
100183 #ifndef div_u64_rem
100184 -static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100185 +static inline u64 __intentional_overflow(-1) div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
100186 {
100187 *remainder = do_div(dividend, divisor);
100188 return dividend;
100189 @@ -77,7 +77,7 @@ extern u64 div64_u64_rem(u64 dividend, u64 divisor, u64 *remainder);
100190 #endif
100191
100192 #ifndef div64_u64
100193 -extern u64 div64_u64(u64 dividend, u64 divisor);
100194 +extern u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor);
100195 #endif
100196
100197 #ifndef div64_s64
100198 @@ -94,7 +94,7 @@ extern s64 div64_s64(s64 dividend, s64 divisor);
100199 * divide.
100200 */
100201 #ifndef div_u64
100202 -static inline u64 div_u64(u64 dividend, u32 divisor)
100203 +static inline u64 __intentional_overflow(-1) div_u64(u64 dividend, u32 divisor)
100204 {
100205 u32 remainder;
100206 return div_u64_rem(dividend, divisor, &remainder);
100207 diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h
100208 index 3d385c8..deacb6a 100644
100209 --- a/include/linux/mempolicy.h
100210 +++ b/include/linux/mempolicy.h
100211 @@ -91,6 +91,10 @@ static inline struct mempolicy *mpol_dup(struct mempolicy *pol)
100212 }
100213
100214 #define vma_policy(vma) ((vma)->vm_policy)
100215 +static inline void set_vma_policy(struct vm_area_struct *vma, struct mempolicy *pol)
100216 +{
100217 + vma->vm_policy = pol;
100218 +}
100219
100220 static inline void mpol_get(struct mempolicy *pol)
100221 {
100222 @@ -229,6 +233,9 @@ static inline void mpol_free_shared_policy(struct shared_policy *p)
100223 }
100224
100225 #define vma_policy(vma) NULL
100226 +static inline void set_vma_policy(struct vm_area_struct *vma, struct mempolicy *pol)
100227 +{
100228 +}
100229
100230 static inline int
100231 vma_dup_policy(struct vm_area_struct *src, struct vm_area_struct *dst)
100232 diff --git a/include/linux/mm.h b/include/linux/mm.h
100233 index 2b05068..c58989c 100644
100234 --- a/include/linux/mm.h
100235 +++ b/include/linux/mm.h
100236 @@ -136,6 +136,11 @@ extern unsigned int kobjsize(const void *objp);
100237
100238 #define VM_DONTCOPY 0x00020000 /* Do not copy this vma on fork */
100239 #define VM_DONTEXPAND 0x00040000 /* Cannot expand with mremap() */
100240 +
100241 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
100242 +#define VM_PAGEEXEC 0x00080000 /* vma->vm_page_prot needs special handling */
100243 +#endif
100244 +
100245 #define VM_ACCOUNT 0x00100000 /* Is a VM accounted object */
100246 #define VM_NORESERVE 0x00200000 /* should the VM suppress accounting */
100247 #define VM_HUGETLB 0x00400000 /* Huge TLB Page VM */
100248 @@ -258,8 +263,8 @@ struct vm_operations_struct {
100249 /* called by access_process_vm when get_user_pages() fails, typically
100250 * for use by special VMAs that can switch between memory and hardware
100251 */
100252 - int (*access)(struct vm_area_struct *vma, unsigned long addr,
100253 - void *buf, int len, int write);
100254 + ssize_t (*access)(struct vm_area_struct *vma, unsigned long addr,
100255 + void *buf, size_t len, int write);
100256
100257 /* Called by the /proc/PID/maps code to ask the vma whether it
100258 * has a special name. Returning non-NULL will also cause this
100259 @@ -297,6 +302,7 @@ struct vm_operations_struct {
100260 struct page *(*find_special_page)(struct vm_area_struct *vma,
100261 unsigned long addr);
100262 };
100263 +typedef struct vm_operations_struct __no_const vm_operations_struct_no_const;
100264
100265 struct mmu_gather;
100266 struct inode;
100267 @@ -1181,8 +1187,8 @@ int follow_pfn(struct vm_area_struct *vma, unsigned long address,
100268 unsigned long *pfn);
100269 int follow_phys(struct vm_area_struct *vma, unsigned long address,
100270 unsigned int flags, unsigned long *prot, resource_size_t *phys);
100271 -int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
100272 - void *buf, int len, int write);
100273 +ssize_t generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
100274 + void *buf, size_t len, int write);
100275
100276 static inline void unmap_shared_mapping_range(struct address_space *mapping,
100277 loff_t const holebegin, loff_t const holelen)
100278 @@ -1222,9 +1228,9 @@ static inline int fixup_user_fault(struct task_struct *tsk,
100279 }
100280 #endif
100281
100282 -extern int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write);
100283 -extern int access_remote_vm(struct mm_struct *mm, unsigned long addr,
100284 - void *buf, int len, int write);
100285 +extern ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, size_t len, int write);
100286 +extern ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
100287 + void *buf, size_t len, int write);
100288
100289 long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
100290 unsigned long start, unsigned long nr_pages,
100291 @@ -1272,34 +1278,6 @@ int clear_page_dirty_for_io(struct page *page);
100292
100293 int get_cmdline(struct task_struct *task, char *buffer, int buflen);
100294
100295 -/* Is the vma a continuation of the stack vma above it? */
100296 -static inline int vma_growsdown(struct vm_area_struct *vma, unsigned long addr)
100297 -{
100298 - return vma && (vma->vm_end == addr) && (vma->vm_flags & VM_GROWSDOWN);
100299 -}
100300 -
100301 -static inline int stack_guard_page_start(struct vm_area_struct *vma,
100302 - unsigned long addr)
100303 -{
100304 - return (vma->vm_flags & VM_GROWSDOWN) &&
100305 - (vma->vm_start == addr) &&
100306 - !vma_growsdown(vma->vm_prev, addr);
100307 -}
100308 -
100309 -/* Is the vma a continuation of the stack vma below it? */
100310 -static inline int vma_growsup(struct vm_area_struct *vma, unsigned long addr)
100311 -{
100312 - return vma && (vma->vm_start == addr) && (vma->vm_flags & VM_GROWSUP);
100313 -}
100314 -
100315 -static inline int stack_guard_page_end(struct vm_area_struct *vma,
100316 - unsigned long addr)
100317 -{
100318 - return (vma->vm_flags & VM_GROWSUP) &&
100319 - (vma->vm_end == addr) &&
100320 - !vma_growsup(vma->vm_next, addr);
100321 -}
100322 -
100323 extern struct task_struct *task_of_stack(struct task_struct *task,
100324 struct vm_area_struct *vma, bool in_group);
100325
100326 @@ -1422,8 +1400,15 @@ static inline int __pud_alloc(struct mm_struct *mm, pgd_t *pgd,
100327 {
100328 return 0;
100329 }
100330 +
100331 +static inline int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd,
100332 + unsigned long address)
100333 +{
100334 + return 0;
100335 +}
100336 #else
100337 int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
100338 +int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address);
100339 #endif
100340
100341 #if defined(__PAGETABLE_PMD_FOLDED) || !defined(CONFIG_MMU)
100342 @@ -1433,6 +1418,12 @@ static inline int __pmd_alloc(struct mm_struct *mm, pud_t *pud,
100343 return 0;
100344 }
100345
100346 +static inline int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud,
100347 + unsigned long address)
100348 +{
100349 + return 0;
100350 +}
100351 +
100352 static inline void mm_nr_pmds_init(struct mm_struct *mm) {}
100353
100354 static inline unsigned long mm_nr_pmds(struct mm_struct *mm)
100355 @@ -1445,6 +1436,7 @@ static inline void mm_dec_nr_pmds(struct mm_struct *mm) {}
100356
100357 #else
100358 int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address);
100359 +int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address);
100360
100361 static inline void mm_nr_pmds_init(struct mm_struct *mm)
100362 {
100363 @@ -1482,11 +1474,23 @@ static inline pud_t *pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long a
100364 NULL: pud_offset(pgd, address);
100365 }
100366
100367 +static inline pud_t *pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
100368 +{
100369 + return (unlikely(pgd_none(*pgd)) && __pud_alloc_kernel(mm, pgd, address))?
100370 + NULL: pud_offset(pgd, address);
100371 +}
100372 +
100373 static inline pmd_t *pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
100374 {
100375 return (unlikely(pud_none(*pud)) && __pmd_alloc(mm, pud, address))?
100376 NULL: pmd_offset(pud, address);
100377 }
100378 +
100379 +static inline pmd_t *pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address)
100380 +{
100381 + return (unlikely(pud_none(*pud)) && __pmd_alloc_kernel(mm, pud, address))?
100382 + NULL: pmd_offset(pud, address);
100383 +}
100384 #endif /* CONFIG_MMU && !__ARCH_HAS_4LEVEL_HACK */
100385
100386 #if USE_SPLIT_PTE_PTLOCKS
100387 @@ -1867,12 +1871,23 @@ extern struct vm_area_struct *copy_vma(struct vm_area_struct **,
100388 bool *need_rmap_locks);
100389 extern void exit_mmap(struct mm_struct *);
100390
100391 +#if defined(CONFIG_GRKERNSEC) && (defined(CONFIG_GRKERNSEC_RESLOG) || !defined(CONFIG_GRKERNSEC_NO_RBAC))
100392 +extern void gr_learn_resource(const struct task_struct *task, const int res,
100393 + const unsigned long wanted, const int gt);
100394 +#else
100395 +static inline void gr_learn_resource(const struct task_struct *task, const int res,
100396 + const unsigned long wanted, const int gt)
100397 +{
100398 +}
100399 +#endif
100400 +
100401 static inline int check_data_rlimit(unsigned long rlim,
100402 unsigned long new,
100403 unsigned long start,
100404 unsigned long end_data,
100405 unsigned long start_data)
100406 {
100407 + gr_learn_resource(current, RLIMIT_DATA, (new - start) + (end_data - start_data), 1);
100408 if (rlim < RLIM_INFINITY) {
100409 if (((new - start) + (end_data - start_data)) > rlim)
100410 return -ENOSPC;
100411 @@ -1905,6 +1920,7 @@ extern unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
100412 unsigned long len, unsigned long prot, unsigned long flags,
100413 unsigned long pgoff, unsigned long *populate);
100414 extern int do_munmap(struct mm_struct *, unsigned long, size_t);
100415 +extern int __do_munmap(struct mm_struct *, unsigned long, size_t);
100416
100417 #ifdef CONFIG_MMU
100418 extern int __mm_populate(unsigned long addr, unsigned long len,
100419 @@ -1933,10 +1949,11 @@ struct vm_unmapped_area_info {
100420 unsigned long high_limit;
100421 unsigned long align_mask;
100422 unsigned long align_offset;
100423 + unsigned long threadstack_offset;
100424 };
100425
100426 -extern unsigned long unmapped_area(struct vm_unmapped_area_info *info);
100427 -extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
100428 +extern unsigned long unmapped_area(const struct vm_unmapped_area_info *info);
100429 +extern unsigned long unmapped_area_topdown(const struct vm_unmapped_area_info *info);
100430
100431 /*
100432 * Search for an unmapped address range.
100433 @@ -1948,7 +1965,7 @@ extern unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info);
100434 * - satisfies (begin_addr & align_mask) == (align_offset & align_mask)
100435 */
100436 static inline unsigned long
100437 -vm_unmapped_area(struct vm_unmapped_area_info *info)
100438 +vm_unmapped_area(const struct vm_unmapped_area_info *info)
100439 {
100440 if (info->flags & VM_UNMAPPED_AREA_TOPDOWN)
100441 return unmapped_area_topdown(info);
100442 @@ -2010,6 +2027,10 @@ extern struct vm_area_struct * find_vma(struct mm_struct * mm, unsigned long add
100443 extern struct vm_area_struct * find_vma_prev(struct mm_struct * mm, unsigned long addr,
100444 struct vm_area_struct **pprev);
100445
100446 +extern struct vm_area_struct *pax_find_mirror_vma(struct vm_area_struct *vma);
100447 +extern __must_check long pax_mirror_vma(struct vm_area_struct *vma_m, struct vm_area_struct *vma);
100448 +extern void pax_mirror_file_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl);
100449 +
100450 /* Look up the first VMA which intersects the interval start_addr..end_addr-1,
100451 NULL if none. Assume start_addr < end_addr. */
100452 static inline struct vm_area_struct * find_vma_intersection(struct mm_struct * mm, unsigned long start_addr, unsigned long end_addr)
100453 @@ -2039,10 +2060,10 @@ static inline struct vm_area_struct *find_exact_vma(struct mm_struct *mm,
100454 }
100455
100456 #ifdef CONFIG_MMU
100457 -pgprot_t vm_get_page_prot(unsigned long vm_flags);
100458 +pgprot_t vm_get_page_prot(vm_flags_t vm_flags);
100459 void vma_set_page_prot(struct vm_area_struct *vma);
100460 #else
100461 -static inline pgprot_t vm_get_page_prot(unsigned long vm_flags)
100462 +static inline pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
100463 {
100464 return __pgprot(0);
100465 }
100466 @@ -2104,6 +2125,11 @@ void vm_stat_account(struct mm_struct *, unsigned long, struct file *, long);
100467 static inline void vm_stat_account(struct mm_struct *mm,
100468 unsigned long flags, struct file *file, long pages)
100469 {
100470 +
100471 +#ifdef CONFIG_PAX_RANDMMAP
100472 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
100473 +#endif
100474 +
100475 mm->total_vm += pages;
100476 }
100477 #endif /* CONFIG_PROC_FS */
100478 @@ -2207,7 +2233,7 @@ extern int get_hwpoison_page(struct page *page);
100479 extern int sysctl_memory_failure_early_kill;
100480 extern int sysctl_memory_failure_recovery;
100481 extern void shake_page(struct page *p, int access);
100482 -extern atomic_long_t num_poisoned_pages;
100483 +extern atomic_long_unchecked_t num_poisoned_pages;
100484 extern int soft_offline_page(struct page *page, int flags);
100485
100486
100487 @@ -2292,5 +2318,11 @@ void __init setup_nr_node_ids(void);
100488 static inline void setup_nr_node_ids(void) {}
100489 #endif
100490
100491 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
100492 +extern void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot);
100493 +#else
100494 +static inline void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot) {}
100495 +#endif
100496 +
100497 #endif /* __KERNEL__ */
100498 #endif /* _LINUX_MM_H */
100499 diff --git a/include/linux/mm_types.h b/include/linux/mm_types.h
100500 index 1554957..0973bc5 100644
100501 --- a/include/linux/mm_types.h
100502 +++ b/include/linux/mm_types.h
100503 @@ -322,7 +322,9 @@ struct vm_area_struct {
100504 #ifdef CONFIG_NUMA
100505 struct mempolicy *vm_policy; /* NUMA policy for the VMA */
100506 #endif
100507 -};
100508 +
100509 + struct vm_area_struct *vm_mirror;/* PaX: mirror vma or NULL */
100510 +} __randomize_layout;
100511
100512 struct core_thread {
100513 struct task_struct *task;
100514 @@ -475,7 +477,25 @@ struct mm_struct {
100515 /* address of the bounds directory */
100516 void __user *bd_addr;
100517 #endif
100518 -};
100519 +
100520 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
100521 + unsigned long pax_flags;
100522 +#endif
100523 +
100524 +#ifdef CONFIG_PAX_DLRESOLVE
100525 + unsigned long call_dl_resolve;
100526 +#endif
100527 +
100528 +#if defined(CONFIG_PPC32) && defined(CONFIG_PAX_EMUSIGRT)
100529 + unsigned long call_syscall;
100530 +#endif
100531 +
100532 +#ifdef CONFIG_PAX_ASLR
100533 + unsigned long delta_mmap; /* randomized offset */
100534 + unsigned long delta_stack; /* randomized offset */
100535 +#endif
100536 +
100537 +} __randomize_layout;
100538
100539 static inline void mm_init_cpumask(struct mm_struct *mm)
100540 {
100541 diff --git a/include/linux/mmiotrace.h b/include/linux/mmiotrace.h
100542 index 3ba327a..85cd5ce 100644
100543 --- a/include/linux/mmiotrace.h
100544 +++ b/include/linux/mmiotrace.h
100545 @@ -46,7 +46,7 @@ extern int kmmio_handler(struct pt_regs *regs, unsigned long addr);
100546 /* Called from ioremap.c */
100547 extern void mmiotrace_ioremap(resource_size_t offset, unsigned long size,
100548 void __iomem *addr);
100549 -extern void mmiotrace_iounmap(volatile void __iomem *addr);
100550 +extern void mmiotrace_iounmap(const volatile void __iomem *addr);
100551
100552 /* For anyone to insert markers. Remember trailing newline. */
100553 extern __printf(1, 2) int mmiotrace_printk(const char *fmt, ...);
100554 @@ -66,7 +66,7 @@ static inline void mmiotrace_ioremap(resource_size_t offset,
100555 {
100556 }
100557
100558 -static inline void mmiotrace_iounmap(volatile void __iomem *addr)
100559 +static inline void mmiotrace_iounmap(const volatile void __iomem *addr)
100560 {
100561 }
100562
100563 diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
100564 index 754c259..7b65ac6 100644
100565 --- a/include/linux/mmzone.h
100566 +++ b/include/linux/mmzone.h
100567 @@ -526,7 +526,7 @@ struct zone {
100568
100569 ZONE_PADDING(_pad3_)
100570 /* Zone statistics */
100571 - atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
100572 + atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
100573 } ____cacheline_internodealigned_in_smp;
100574
100575 enum zone_flags {
100576 diff --git a/include/linux/mod_devicetable.h b/include/linux/mod_devicetable.h
100577 index 34f25b7..0586069 100644
100578 --- a/include/linux/mod_devicetable.h
100579 +++ b/include/linux/mod_devicetable.h
100580 @@ -139,7 +139,7 @@ struct usb_device_id {
100581 #define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200
100582 #define USB_DEVICE_ID_MATCH_INT_NUMBER 0x0400
100583
100584 -#define HID_ANY_ID (~0)
100585 +#define HID_ANY_ID (~0U)
100586 #define HID_BUS_ANY 0xffff
100587 #define HID_GROUP_ANY 0x0000
100588
100589 @@ -472,7 +472,7 @@ struct dmi_system_id {
100590 const char *ident;
100591 struct dmi_strmatch matches[4];
100592 void *driver_data;
100593 -};
100594 +} __do_const;
100595 /*
100596 * struct dmi_device_id appears during expansion of
100597 * "MODULE_DEVICE_TABLE(dmi, x)". Compiler doesn't look inside it
100598 diff --git a/include/linux/module.h b/include/linux/module.h
100599 index 3a19c79..dea8c47 100644
100600 --- a/include/linux/module.h
100601 +++ b/include/linux/module.h
100602 @@ -19,9 +19,11 @@
100603 #include <linux/jump_label.h>
100604 #include <linux/export.h>
100605 #include <linux/rbtree_latch.h>
100606 +#include <linux/fs.h>
100607
100608 #include <linux/percpu.h>
100609 #include <asm/module.h>
100610 +#include <asm/pgtable.h>
100611
100612 /* In stripped ARM and x86-64 modules, ~ is surprisingly rare. */
100613 #define MODULE_SIG_STRING "~Module signature appended~\n"
100614 @@ -44,7 +46,7 @@ struct module_kobject {
100615 struct kobject *drivers_dir;
100616 struct module_param_attrs *mp;
100617 struct completion *kobj_completion;
100618 -};
100619 +} __randomize_layout;
100620
100621 struct module_attribute {
100622 struct attribute attr;
100623 @@ -56,12 +58,13 @@ struct module_attribute {
100624 int (*test)(struct module *);
100625 void (*free)(struct module *);
100626 };
100627 +typedef struct module_attribute __no_const module_attribute_no_const;
100628
100629 struct module_version_attribute {
100630 struct module_attribute mattr;
100631 const char *module_name;
100632 const char *version;
100633 -} __attribute__ ((__aligned__(sizeof(void *))));
100634 +} __do_const __attribute__ ((__aligned__(sizeof(void *))));
100635
100636 extern ssize_t __modver_version_show(struct module_attribute *,
100637 struct module_kobject *, char *);
100638 @@ -313,7 +316,7 @@ struct module {
100639
100640 /* Sysfs stuff. */
100641 struct module_kobject mkobj;
100642 - struct module_attribute *modinfo_attrs;
100643 + module_attribute_no_const *modinfo_attrs;
100644 const char *version;
100645 const char *srcversion;
100646 struct kobject *holders_dir;
100647 @@ -370,20 +373,21 @@ struct module {
100648 * If this is non-NULL, vfree() after init() returns.
100649 *
100650 * Cacheline align here, such that:
100651 - * module_init, module_core, init_size, core_size,
100652 + * module_init_*, module_core_*, init_size_*, core_size_*,
100653 * init_text_size, core_text_size and mtn_core::{mod,node[0]}
100654 * are on the same cacheline.
100655 */
100656 - void *module_init ____cacheline_aligned;
100657 + void *module_init_rw ____cacheline_aligned;
100658 + void *module_init_rx;
100659
100660 /* Here is the actual code + data, vfree'd on unload. */
100661 - void *module_core;
100662 + void *module_core_rx, *module_core_rw;
100663
100664 /* Here are the sizes of the init and core sections */
100665 - unsigned int init_size, core_size;
100666 + unsigned int init_size_rw, core_size_rw;
100667
100668 /* The size of the executable code in each section. */
100669 - unsigned int init_text_size, core_text_size;
100670 + unsigned int init_size_rx, core_size_rx;
100671
100672 #ifdef CONFIG_MODULES_TREE_LOOKUP
100673 /*
100674 @@ -391,13 +395,12 @@ struct module {
100675 * above entries such that a regular lookup will only touch one
100676 * cacheline.
100677 */
100678 - struct mod_tree_node mtn_core;
100679 - struct mod_tree_node mtn_init;
100680 + struct mod_tree_node mtn_core_rw;
100681 + struct mod_tree_node mtn_core_rx;
100682 + struct mod_tree_node mtn_init_rw;
100683 + struct mod_tree_node mtn_init_rx;
100684 #endif
100685
100686 - /* Size of RO sections of the module (text+rodata) */
100687 - unsigned int init_ro_size, core_ro_size;
100688 -
100689 /* Arch-specific module values */
100690 struct mod_arch_specific arch;
100691
100692 @@ -454,6 +457,10 @@ struct module {
100693 unsigned int num_trace_events;
100694 struct trace_enum_map **trace_enums;
100695 unsigned int num_trace_enums;
100696 + struct file_operations trace_id;
100697 + struct file_operations trace_enable;
100698 + struct file_operations trace_format;
100699 + struct file_operations trace_filter;
100700 #endif
100701 #ifdef CONFIG_FTRACE_MCOUNT_RECORD
100702 unsigned int num_ftrace_callsites;
100703 @@ -481,7 +488,8 @@ struct module {
100704 ctor_fn_t *ctors;
100705 unsigned int num_ctors;
100706 #endif
100707 -} ____cacheline_aligned;
100708 +} ____cacheline_aligned __randomize_layout;
100709 +
100710 #ifndef MODULE_ARCH_INIT
100711 #define MODULE_ARCH_INIT {}
100712 #endif
100713 @@ -502,18 +510,48 @@ bool is_module_address(unsigned long addr);
100714 bool is_module_percpu_address(unsigned long addr);
100715 bool is_module_text_address(unsigned long addr);
100716
100717 +static inline int within_module_range(unsigned long addr, void *start, unsigned long size)
100718 +{
100719 +
100720 +#ifdef CONFIG_PAX_KERNEXEC
100721 + if (ktla_ktva(addr) >= (unsigned long)start &&
100722 + ktla_ktva(addr) < (unsigned long)start + size)
100723 + return 1;
100724 +#endif
100725 +
100726 + return ((void *)addr >= start && (void *)addr < start + size);
100727 +}
100728 +
100729 +static inline int within_module_core_rx(unsigned long addr, const struct module *mod)
100730 +{
100731 + return within_module_range(addr, mod->module_core_rx, mod->core_size_rx);
100732 +}
100733 +
100734 +static inline int within_module_core_rw(unsigned long addr, const struct module *mod)
100735 +{
100736 + return within_module_range(addr, mod->module_core_rw, mod->core_size_rw);
100737 +}
100738 +
100739 +static inline int within_module_init_rx(unsigned long addr, const struct module *mod)
100740 +{
100741 + return within_module_range(addr, mod->module_init_rx, mod->init_size_rx);
100742 +}
100743 +
100744 +static inline int within_module_init_rw(unsigned long addr, const struct module *mod)
100745 +{
100746 + return within_module_range(addr, mod->module_init_rw, mod->init_size_rw);
100747 +}
100748 +
100749 static inline bool within_module_core(unsigned long addr,
100750 const struct module *mod)
100751 {
100752 - return (unsigned long)mod->module_core <= addr &&
100753 - addr < (unsigned long)mod->module_core + mod->core_size;
100754 + return within_module_core_rx(addr, mod) || within_module_core_rw(addr, mod);
100755 }
100756
100757 static inline bool within_module_init(unsigned long addr,
100758 const struct module *mod)
100759 {
100760 - return (unsigned long)mod->module_init <= addr &&
100761 - addr < (unsigned long)mod->module_init + mod->init_size;
100762 + return within_module_init_rx(addr, mod) || within_module_init_rw(addr, mod);
100763 }
100764
100765 static inline bool within_module(unsigned long addr, const struct module *mod)
100766 diff --git a/include/linux/moduleloader.h b/include/linux/moduleloader.h
100767 index 4d0cb9b..3169ac7 100644
100768 --- a/include/linux/moduleloader.h
100769 +++ b/include/linux/moduleloader.h
100770 @@ -25,9 +25,21 @@ unsigned int arch_mod_section_prepend(struct module *mod, unsigned int section);
100771 sections. Returns NULL on failure. */
100772 void *module_alloc(unsigned long size);
100773
100774 +#ifdef CONFIG_PAX_KERNEXEC
100775 +void *module_alloc_exec(unsigned long size);
100776 +#else
100777 +#define module_alloc_exec(x) module_alloc(x)
100778 +#endif
100779 +
100780 /* Free memory returned from module_alloc. */
100781 void module_memfree(void *module_region);
100782
100783 +#ifdef CONFIG_PAX_KERNEXEC
100784 +void module_memfree_exec(void *module_region);
100785 +#else
100786 +#define module_memfree_exec(x) module_memfree((x))
100787 +#endif
100788 +
100789 /*
100790 * Apply the given relocation to the (simplified) ELF. Return -error
100791 * or 0.
100792 @@ -45,8 +57,10 @@ static inline int apply_relocate(Elf_Shdr *sechdrs,
100793 unsigned int relsec,
100794 struct module *me)
100795 {
100796 +#ifdef CONFIG_MODULES
100797 printk(KERN_ERR "module %s: REL relocation unsupported\n",
100798 module_name(me));
100799 +#endif
100800 return -ENOEXEC;
100801 }
100802 #endif
100803 @@ -68,8 +82,10 @@ static inline int apply_relocate_add(Elf_Shdr *sechdrs,
100804 unsigned int relsec,
100805 struct module *me)
100806 {
100807 +#ifdef CONFIG_MODULES
100808 printk(KERN_ERR "module %s: REL relocation unsupported\n",
100809 module_name(me));
100810 +#endif
100811 return -ENOEXEC;
100812 }
100813 #endif
100814 diff --git a/include/linux/moduleparam.h b/include/linux/moduleparam.h
100815 index c12f214..3ef907f 100644
100816 --- a/include/linux/moduleparam.h
100817 +++ b/include/linux/moduleparam.h
100818 @@ -289,7 +289,7 @@ static inline void kernel_param_unlock(struct module *mod)
100819 * @len is usually just sizeof(string).
100820 */
100821 #define module_param_string(name, string, len, perm) \
100822 - static const struct kparam_string __param_string_##name \
100823 + static const struct kparam_string __param_string_##name __used \
100824 = { len, string }; \
100825 __module_param_call(MODULE_PARAM_PREFIX, name, \
100826 &param_ops_string, \
100827 @@ -440,7 +440,7 @@ extern int param_set_bint(const char *val, const struct kernel_param *kp);
100828 */
100829 #define module_param_array_named(name, array, type, nump, perm) \
100830 param_check_##type(name, &(array)[0]); \
100831 - static const struct kparam_array __param_arr_##name \
100832 + static const struct kparam_array __param_arr_##name __used \
100833 = { .max = ARRAY_SIZE(array), .num = nump, \
100834 .ops = &param_ops_##type, \
100835 .elemsize = sizeof(array[0]), .elem = array }; \
100836 diff --git a/include/linux/mount.h b/include/linux/mount.h
100837 index f822c3c..958ca0a 100644
100838 --- a/include/linux/mount.h
100839 +++ b/include/linux/mount.h
100840 @@ -67,7 +67,7 @@ struct vfsmount {
100841 struct dentry *mnt_root; /* root of the mounted tree */
100842 struct super_block *mnt_sb; /* pointer to superblock */
100843 int mnt_flags;
100844 -};
100845 +} __randomize_layout;
100846
100847 struct file; /* forward dec */
100848 struct path;
100849 diff --git a/include/linux/msg.h b/include/linux/msg.h
100850 index f3f302f..a001305 100644
100851 --- a/include/linux/msg.h
100852 +++ b/include/linux/msg.h
100853 @@ -29,7 +29,7 @@ struct msg_queue {
100854 struct list_head q_messages;
100855 struct list_head q_receivers;
100856 struct list_head q_senders;
100857 -};
100858 +} __randomize_layout;
100859
100860 /* Helper routines for sys_msgsnd and sys_msgrcv */
100861 extern long do_msgsnd(int msqid, long mtype, void __user *mtext,
100862 diff --git a/include/linux/net.h b/include/linux/net.h
100863 index 04aa068..8a24df5 100644
100864 --- a/include/linux/net.h
100865 +++ b/include/linux/net.h
100866 @@ -189,7 +189,7 @@ struct net_proto_family {
100867 int (*create)(struct net *net, struct socket *sock,
100868 int protocol, int kern);
100869 struct module *owner;
100870 -};
100871 +} __do_const;
100872
100873 struct iovec;
100874 struct kvec;
100875 diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
100876 index e20979d..3c7827b 100644
100877 --- a/include/linux/netdevice.h
100878 +++ b/include/linux/netdevice.h
100879 @@ -1212,6 +1212,7 @@ struct net_device_ops {
100880 u32 maxrate);
100881 int (*ndo_get_iflink)(const struct net_device *dev);
100882 };
100883 +typedef struct net_device_ops __no_const net_device_ops_no_const;
100884
100885 /**
100886 * enum net_device_priv_flags - &struct net_device priv_flags
100887 @@ -1519,7 +1520,7 @@ struct net_device {
100888 unsigned long base_addr;
100889 int irq;
100890
100891 - atomic_t carrier_changes;
100892 + atomic_unchecked_t carrier_changes;
100893
100894 /*
100895 * Some hardware also needs these fields (state,dev_list,
100896 @@ -1558,8 +1559,8 @@ struct net_device {
100897
100898 struct net_device_stats stats;
100899
100900 - atomic_long_t rx_dropped;
100901 - atomic_long_t tx_dropped;
100902 + atomic_long_unchecked_t rx_dropped;
100903 + atomic_long_unchecked_t tx_dropped;
100904
100905 #ifdef CONFIG_WIRELESS_EXT
100906 const struct iw_handler_def * wireless_handlers;
100907 diff --git a/include/linux/netfilter.h b/include/linux/netfilter.h
100908 index 00050df..0bc7081 100644
100909 --- a/include/linux/netfilter.h
100910 +++ b/include/linux/netfilter.h
100911 @@ -115,7 +115,7 @@ struct nf_sockopt_ops {
100912 #endif
100913 /* Use the module struct to lock set/get code in place */
100914 struct module *owner;
100915 -};
100916 +} __do_const;
100917
100918 /* Function to register/unregister hook points. */
100919 int nf_register_hook(struct nf_hook_ops *reg);
100920 diff --git a/include/linux/netfilter/nfnetlink.h b/include/linux/netfilter/nfnetlink.h
100921 index e955d47..04a5338 100644
100922 --- a/include/linux/netfilter/nfnetlink.h
100923 +++ b/include/linux/netfilter/nfnetlink.h
100924 @@ -19,7 +19,7 @@ struct nfnl_callback {
100925 const struct nlattr * const cda[]);
100926 const struct nla_policy *policy; /* netlink attribute policy */
100927 const u_int16_t attr_count; /* number of nlattr's */
100928 -};
100929 +} __do_const;
100930
100931 struct nfnetlink_subsystem {
100932 const char *name;
100933 diff --git a/include/linux/netfilter/xt_gradm.h b/include/linux/netfilter/xt_gradm.h
100934 new file mode 100644
100935 index 0000000..33f4af8
100936 --- /dev/null
100937 +++ b/include/linux/netfilter/xt_gradm.h
100938 @@ -0,0 +1,9 @@
100939 +#ifndef _LINUX_NETFILTER_XT_GRADM_H
100940 +#define _LINUX_NETFILTER_XT_GRADM_H 1
100941 +
100942 +struct xt_gradm_mtinfo {
100943 + __u16 flags;
100944 + __u16 invflags;
100945 +};
100946 +
100947 +#endif
100948 diff --git a/include/linux/nls.h b/include/linux/nls.h
100949 index 520681b..2b7fabb 100644
100950 --- a/include/linux/nls.h
100951 +++ b/include/linux/nls.h
100952 @@ -31,7 +31,7 @@ struct nls_table {
100953 const unsigned char *charset2upper;
100954 struct module *owner;
100955 struct nls_table *next;
100956 -};
100957 +} __do_const;
100958
100959 /* this value hold the maximum octet of charset */
100960 #define NLS_MAX_CHARSET_SIZE 6 /* for UTF-8 */
100961 @@ -46,7 +46,7 @@ enum utf16_endian {
100962 /* nls_base.c */
100963 extern int __register_nls(struct nls_table *, struct module *);
100964 extern int unregister_nls(struct nls_table *);
100965 -extern struct nls_table *load_nls(char *);
100966 +extern struct nls_table *load_nls(const char *);
100967 extern void unload_nls(struct nls_table *);
100968 extern struct nls_table *load_nls_default(void);
100969 #define register_nls(nls) __register_nls((nls), THIS_MODULE)
100970 diff --git a/include/linux/notifier.h b/include/linux/notifier.h
100971 index d14a4c3..a078786 100644
100972 --- a/include/linux/notifier.h
100973 +++ b/include/linux/notifier.h
100974 @@ -54,7 +54,8 @@ struct notifier_block {
100975 notifier_fn_t notifier_call;
100976 struct notifier_block __rcu *next;
100977 int priority;
100978 -};
100979 +} __do_const;
100980 +typedef struct notifier_block __no_const notifier_block_no_const;
100981
100982 struct atomic_notifier_head {
100983 spinlock_t lock;
100984 diff --git a/include/linux/oprofile.h b/include/linux/oprofile.h
100985 index b2a0f15..4d7da32 100644
100986 --- a/include/linux/oprofile.h
100987 +++ b/include/linux/oprofile.h
100988 @@ -138,9 +138,9 @@ int oprofilefs_create_ulong(struct dentry * root,
100989 int oprofilefs_create_ro_ulong(struct dentry * root,
100990 char const * name, ulong * val);
100991
100992 -/** Create a file for read-only access to an atomic_t. */
100993 +/** Create a file for read-only access to an atomic_unchecked_t. */
100994 int oprofilefs_create_ro_atomic(struct dentry * root,
100995 - char const * name, atomic_t * val);
100996 + char const * name, atomic_unchecked_t * val);
100997
100998 /** create a directory */
100999 struct dentry *oprofilefs_mkdir(struct dentry *parent, char const *name);
101000 diff --git a/include/linux/padata.h b/include/linux/padata.h
101001 index 4386946..f50c615 100644
101002 --- a/include/linux/padata.h
101003 +++ b/include/linux/padata.h
101004 @@ -129,7 +129,7 @@ struct parallel_data {
101005 struct padata_serial_queue __percpu *squeue;
101006 atomic_t reorder_objects;
101007 atomic_t refcnt;
101008 - atomic_t seq_nr;
101009 + atomic_unchecked_t seq_nr;
101010 struct padata_cpumask cpumask;
101011 spinlock_t lock ____cacheline_aligned;
101012 unsigned int processed;
101013 diff --git a/include/linux/path.h b/include/linux/path.h
101014 index d137218..be0c176 100644
101015 --- a/include/linux/path.h
101016 +++ b/include/linux/path.h
101017 @@ -1,13 +1,15 @@
101018 #ifndef _LINUX_PATH_H
101019 #define _LINUX_PATH_H
101020
101021 +#include <linux/compiler.h>
101022 +
101023 struct dentry;
101024 struct vfsmount;
101025
101026 struct path {
101027 struct vfsmount *mnt;
101028 struct dentry *dentry;
101029 -};
101030 +} __randomize_layout;
101031
101032 extern void path_get(const struct path *);
101033 extern void path_put(const struct path *);
101034 diff --git a/include/linux/pci_hotplug.h b/include/linux/pci_hotplug.h
101035 index 8c78950..0d74ed9 100644
101036 --- a/include/linux/pci_hotplug.h
101037 +++ b/include/linux/pci_hotplug.h
101038 @@ -71,7 +71,8 @@ struct hotplug_slot_ops {
101039 int (*get_latch_status) (struct hotplug_slot *slot, u8 *value);
101040 int (*get_adapter_status) (struct hotplug_slot *slot, u8 *value);
101041 int (*reset_slot) (struct hotplug_slot *slot, int probe);
101042 -};
101043 +} __do_const;
101044 +typedef struct hotplug_slot_ops __no_const hotplug_slot_ops_no_const;
101045
101046 /**
101047 * struct hotplug_slot_info - used to notify the hotplug pci core of the state of the slot
101048 diff --git a/include/linux/percpu.h b/include/linux/percpu.h
101049 index caebf2a..4c3ae9d 100644
101050 --- a/include/linux/percpu.h
101051 +++ b/include/linux/percpu.h
101052 @@ -34,7 +34,7 @@
101053 * preallocate for this. Keep PERCPU_DYNAMIC_RESERVE equal to or
101054 * larger than PERCPU_DYNAMIC_EARLY_SIZE.
101055 */
101056 -#define PERCPU_DYNAMIC_EARLY_SLOTS 128
101057 +#define PERCPU_DYNAMIC_EARLY_SLOTS 256
101058 #define PERCPU_DYNAMIC_EARLY_SIZE (12 << 10)
101059
101060 /*
101061 diff --git a/include/linux/perf_event.h b/include/linux/perf_event.h
101062 index 2027809..c9cd38e 100644
101063 --- a/include/linux/perf_event.h
101064 +++ b/include/linux/perf_event.h
101065 @@ -384,8 +384,8 @@ struct perf_event {
101066
101067 enum perf_event_active_state state;
101068 unsigned int attach_state;
101069 - local64_t count;
101070 - atomic64_t child_count;
101071 + local64_t count; /* PaX: fix it one day */
101072 + atomic64_unchecked_t child_count;
101073
101074 /*
101075 * These are the total time in nanoseconds that the event
101076 @@ -436,8 +436,8 @@ struct perf_event {
101077 * These accumulate total time (in nanoseconds) that children
101078 * events have been enabled and running, respectively.
101079 */
101080 - atomic64_t child_total_time_enabled;
101081 - atomic64_t child_total_time_running;
101082 + atomic64_unchecked_t child_total_time_enabled;
101083 + atomic64_unchecked_t child_total_time_running;
101084
101085 /*
101086 * Protect attach/detach and child_list:
101087 @@ -859,7 +859,7 @@ static inline void perf_event_task_sched_out(struct task_struct *prev,
101088
101089 static inline u64 __perf_event_count(struct perf_event *event)
101090 {
101091 - return local64_read(&event->count) + atomic64_read(&event->child_count);
101092 + return local64_read(&event->count) + atomic64_read_unchecked(&event->child_count);
101093 }
101094
101095 extern void perf_event_mmap(struct vm_area_struct *vma);
101096 @@ -883,7 +883,7 @@ static inline void perf_callchain_store(struct perf_callchain_entry *entry, u64
101097 entry->ip[entry->nr++] = ip;
101098 }
101099
101100 -extern int sysctl_perf_event_paranoid;
101101 +extern int sysctl_perf_event_legitimately_concerned;
101102 extern int sysctl_perf_event_mlock;
101103 extern int sysctl_perf_event_sample_rate;
101104 extern int sysctl_perf_cpu_time_max_percent;
101105 @@ -898,19 +898,24 @@ extern int perf_cpu_time_max_percent_handler(struct ctl_table *table, int write,
101106 loff_t *ppos);
101107
101108
101109 +static inline bool perf_paranoid_any(void)
101110 +{
101111 + return sysctl_perf_event_legitimately_concerned > 2;
101112 +}
101113 +
101114 static inline bool perf_paranoid_tracepoint_raw(void)
101115 {
101116 - return sysctl_perf_event_paranoid > -1;
101117 + return sysctl_perf_event_legitimately_concerned > -1;
101118 }
101119
101120 static inline bool perf_paranoid_cpu(void)
101121 {
101122 - return sysctl_perf_event_paranoid > 0;
101123 + return sysctl_perf_event_legitimately_concerned > 0;
101124 }
101125
101126 static inline bool perf_paranoid_kernel(void)
101127 {
101128 - return sysctl_perf_event_paranoid > 1;
101129 + return sysctl_perf_event_legitimately_concerned > 1;
101130 }
101131
101132 extern void perf_event_init(void);
101133 @@ -1066,7 +1071,7 @@ struct perf_pmu_events_attr {
101134 struct device_attribute attr;
101135 u64 id;
101136 const char *event_str;
101137 -};
101138 +} __do_const;
101139
101140 ssize_t perf_event_sysfs_show(struct device *dev, struct device_attribute *attr,
101141 char *page);
101142 diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h
101143 index 918b117..7af374b7 100644
101144 --- a/include/linux/pid_namespace.h
101145 +++ b/include/linux/pid_namespace.h
101146 @@ -45,7 +45,7 @@ struct pid_namespace {
101147 int hide_pid;
101148 int reboot; /* group exit code if this pidns was rebooted */
101149 struct ns_common ns;
101150 -};
101151 +} __randomize_layout;
101152
101153 extern struct pid_namespace init_pid_ns;
101154
101155 diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
101156 index eb8b8ac..62649e1 100644
101157 --- a/include/linux/pipe_fs_i.h
101158 +++ b/include/linux/pipe_fs_i.h
101159 @@ -47,10 +47,10 @@ struct pipe_inode_info {
101160 struct mutex mutex;
101161 wait_queue_head_t wait;
101162 unsigned int nrbufs, curbuf, buffers;
101163 - unsigned int readers;
101164 - unsigned int writers;
101165 - unsigned int files;
101166 - unsigned int waiting_writers;
101167 + atomic_t readers;
101168 + atomic_t writers;
101169 + atomic_t files;
101170 + atomic_t waiting_writers;
101171 unsigned int r_counter;
101172 unsigned int w_counter;
101173 struct page *tmp_page;
101174 diff --git a/include/linux/pm.h b/include/linux/pm.h
101175 index 35d599e..c604209 100644
101176 --- a/include/linux/pm.h
101177 +++ b/include/linux/pm.h
101178 @@ -630,6 +630,7 @@ struct dev_pm_domain {
101179 void (*sync)(struct device *dev);
101180 void (*dismiss)(struct device *dev);
101181 };
101182 +typedef struct dev_pm_domain __no_const dev_pm_domain_no_const;
101183
101184 /*
101185 * The PM_EVENT_ messages are also used by drivers implementing the legacy
101186 diff --git a/include/linux/pm_domain.h b/include/linux/pm_domain.h
101187 index 681ccb0..a90e0b7 100644
101188 --- a/include/linux/pm_domain.h
101189 +++ b/include/linux/pm_domain.h
101190 @@ -39,11 +39,11 @@ struct gpd_dev_ops {
101191 int (*save_state)(struct device *dev);
101192 int (*restore_state)(struct device *dev);
101193 bool (*active_wakeup)(struct device *dev);
101194 -};
101195 +} __no_const;
101196
101197 struct gpd_cpuidle_data {
101198 unsigned int saved_exit_latency;
101199 - struct cpuidle_state *idle_state;
101200 + cpuidle_state_no_const *idle_state;
101201 };
101202
101203 struct generic_pm_domain {
101204 diff --git a/include/linux/pm_runtime.h b/include/linux/pm_runtime.h
101205 index 30e84d4..22278b4 100644
101206 --- a/include/linux/pm_runtime.h
101207 +++ b/include/linux/pm_runtime.h
101208 @@ -115,7 +115,7 @@ static inline bool pm_runtime_callbacks_present(struct device *dev)
101209
101210 static inline void pm_runtime_mark_last_busy(struct device *dev)
101211 {
101212 - ACCESS_ONCE(dev->power.last_busy) = jiffies;
101213 + ACCESS_ONCE_RW(dev->power.last_busy) = jiffies;
101214 }
101215
101216 static inline bool pm_runtime_is_irq_safe(struct device *dev)
101217 diff --git a/include/linux/pnp.h b/include/linux/pnp.h
101218 index 5df733b..d55f252 100644
101219 --- a/include/linux/pnp.h
101220 +++ b/include/linux/pnp.h
101221 @@ -298,7 +298,7 @@ static inline void pnp_set_drvdata(struct pnp_dev *pdev, void *data)
101222 struct pnp_fixup {
101223 char id[7];
101224 void (*quirk_function) (struct pnp_dev * dev); /* fixup function */
101225 -};
101226 +} __do_const;
101227
101228 /* config parameters */
101229 #define PNP_CONFIG_NORMAL 0x0001
101230 diff --git a/include/linux/poison.h b/include/linux/poison.h
101231 index 2110a81..13a11bb 100644
101232 --- a/include/linux/poison.h
101233 +++ b/include/linux/poison.h
101234 @@ -19,8 +19,8 @@
101235 * under normal circumstances, used to verify that nobody uses
101236 * non-initialized list entries.
101237 */
101238 -#define LIST_POISON1 ((void *) 0x00100100 + POISON_POINTER_DELTA)
101239 -#define LIST_POISON2 ((void *) 0x00200200 + POISON_POINTER_DELTA)
101240 +#define LIST_POISON1 ((void *) (long)0xFFFFFF01)
101241 +#define LIST_POISON2 ((void *) (long)0xFFFFFF02)
101242
101243 /********** include/linux/timer.h **********/
101244 /*
101245 diff --git a/include/linux/power/smartreflex.h b/include/linux/power/smartreflex.h
101246 index d8b187c3..9a9257a 100644
101247 --- a/include/linux/power/smartreflex.h
101248 +++ b/include/linux/power/smartreflex.h
101249 @@ -238,7 +238,7 @@ struct omap_sr_class_data {
101250 int (*notify)(struct omap_sr *sr, u32 status);
101251 u8 notify_flags;
101252 u8 class_type;
101253 -};
101254 +} __do_const;
101255
101256 /**
101257 * struct omap_sr_nvalue_table - Smartreflex n-target value info
101258 diff --git a/include/linux/ppp-comp.h b/include/linux/ppp-comp.h
101259 index 4ea1d37..80f4b33 100644
101260 --- a/include/linux/ppp-comp.h
101261 +++ b/include/linux/ppp-comp.h
101262 @@ -84,7 +84,7 @@ struct compressor {
101263 struct module *owner;
101264 /* Extra skb space needed by the compressor algorithm */
101265 unsigned int comp_extra;
101266 -};
101267 +} __do_const;
101268
101269 /*
101270 * The return value from decompress routine is the length of the
101271 diff --git a/include/linux/preempt.h b/include/linux/preempt.h
101272 index bea8dd8..534a23d 100644
101273 --- a/include/linux/preempt.h
101274 +++ b/include/linux/preempt.h
101275 @@ -140,11 +140,16 @@ extern void preempt_count_sub(int val);
101276 #define preempt_count_dec_and_test() __preempt_count_dec_and_test()
101277 #endif
101278
101279 +#define raw_preempt_count_add(val) __preempt_count_add(val)
101280 +#define raw_preempt_count_sub(val) __preempt_count_sub(val)
101281 +
101282 #define __preempt_count_inc() __preempt_count_add(1)
101283 #define __preempt_count_dec() __preempt_count_sub(1)
101284
101285 #define preempt_count_inc() preempt_count_add(1)
101286 +#define raw_preempt_count_inc() raw_preempt_count_add(1)
101287 #define preempt_count_dec() preempt_count_sub(1)
101288 +#define raw_preempt_count_dec() raw_preempt_count_sub(1)
101289
101290 #define preempt_active_enter() \
101291 do { \
101292 @@ -166,6 +171,12 @@ do { \
101293 barrier(); \
101294 } while (0)
101295
101296 +#define raw_preempt_disable() \
101297 +do { \
101298 + raw_preempt_count_inc(); \
101299 + barrier(); \
101300 +} while (0)
101301 +
101302 #define sched_preempt_enable_no_resched() \
101303 do { \
101304 barrier(); \
101305 @@ -174,6 +185,12 @@ do { \
101306
101307 #define preempt_enable_no_resched() sched_preempt_enable_no_resched()
101308
101309 +#define raw_preempt_enable_no_resched() \
101310 +do { \
101311 + barrier(); \
101312 + raw_preempt_count_dec(); \
101313 +} while (0)
101314 +
101315 #define preemptible() (preempt_count() == 0 && !irqs_disabled())
101316
101317 #ifdef CONFIG_PREEMPT
101318 @@ -234,8 +251,10 @@ do { \
101319 * region.
101320 */
101321 #define preempt_disable() barrier()
101322 +#define raw_preempt_disable() barrier()
101323 #define sched_preempt_enable_no_resched() barrier()
101324 #define preempt_enable_no_resched() barrier()
101325 +#define raw_preempt_enable_no_resched() barrier()
101326 #define preempt_enable() barrier()
101327 #define preempt_check_resched() do { } while (0)
101328
101329 @@ -250,11 +269,13 @@ do { \
101330 /*
101331 * Modules have no business playing preemption tricks.
101332 */
101333 +#ifndef CONFIG_PAX_KERNEXEC
101334 #undef sched_preempt_enable_no_resched
101335 #undef preempt_enable_no_resched
101336 #undef preempt_enable_no_resched_notrace
101337 #undef preempt_check_resched
101338 #endif
101339 +#endif
101340
101341 #define preempt_set_need_resched() \
101342 do { \
101343 diff --git a/include/linux/printk.h b/include/linux/printk.h
101344 index a6298b2..57fe982 100644
101345 --- a/include/linux/printk.h
101346 +++ b/include/linux/printk.h
101347 @@ -123,6 +123,7 @@ void early_printk(const char *s, ...) { }
101348 #endif
101349
101350 typedef __printf(1, 0) int (*printk_func_t)(const char *fmt, va_list args);
101351 +extern int kptr_restrict;
101352
101353 #ifdef CONFIG_PRINTK
101354 asmlinkage __printf(5, 0)
101355 @@ -158,7 +159,6 @@ extern bool printk_timed_ratelimit(unsigned long *caller_jiffies,
101356
101357 extern int printk_delay_msec;
101358 extern int dmesg_restrict;
101359 -extern int kptr_restrict;
101360
101361 extern void wake_up_klogd(void);
101362
101363 diff --git a/include/linux/proc_fs.h b/include/linux/proc_fs.h
101364 index b97bf2e..f14c92d4 100644
101365 --- a/include/linux/proc_fs.h
101366 +++ b/include/linux/proc_fs.h
101367 @@ -17,8 +17,11 @@ extern void proc_flush_task(struct task_struct *);
101368 extern struct proc_dir_entry *proc_symlink(const char *,
101369 struct proc_dir_entry *, const char *);
101370 extern struct proc_dir_entry *proc_mkdir(const char *, struct proc_dir_entry *);
101371 +extern struct proc_dir_entry *proc_mkdir_restrict(const char *, struct proc_dir_entry *);
101372 extern struct proc_dir_entry *proc_mkdir_data(const char *, umode_t,
101373 struct proc_dir_entry *, void *);
101374 +extern struct proc_dir_entry *proc_mkdir_data_restrict(const char *, umode_t,
101375 + struct proc_dir_entry *, void *);
101376 extern struct proc_dir_entry *proc_mkdir_mode(const char *, umode_t,
101377 struct proc_dir_entry *);
101378
101379 @@ -34,6 +37,19 @@ static inline struct proc_dir_entry *proc_create(
101380 return proc_create_data(name, mode, parent, proc_fops, NULL);
101381 }
101382
101383 +static inline struct proc_dir_entry *proc_create_grsec(const char *name, umode_t mode,
101384 + struct proc_dir_entry *parent, const struct file_operations *proc_fops)
101385 +{
101386 +#ifdef CONFIG_GRKERNSEC_PROC_USER
101387 + return proc_create_data(name, S_IRUSR, parent, proc_fops, NULL);
101388 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
101389 + return proc_create_data(name, S_IRUSR | S_IRGRP, parent, proc_fops, NULL);
101390 +#else
101391 + return proc_create_data(name, mode, parent, proc_fops, NULL);
101392 +#endif
101393 +}
101394 +
101395 +
101396 extern void proc_set_size(struct proc_dir_entry *, loff_t);
101397 extern void proc_set_user(struct proc_dir_entry *, kuid_t, kgid_t);
101398 extern void *PDE_DATA(const struct inode *);
101399 @@ -56,8 +72,12 @@ static inline struct proc_dir_entry *proc_symlink(const char *name,
101400 struct proc_dir_entry *parent,const char *dest) { return NULL;}
101401 static inline struct proc_dir_entry *proc_mkdir(const char *name,
101402 struct proc_dir_entry *parent) {return NULL;}
101403 +static inline struct proc_dir_entry *proc_mkdir_restrict(const char *name,
101404 + struct proc_dir_entry *parent) { return NULL; }
101405 static inline struct proc_dir_entry *proc_mkdir_data(const char *name,
101406 umode_t mode, struct proc_dir_entry *parent, void *data) { return NULL; }
101407 +static inline struct proc_dir_entry *proc_mkdir_data_restrict(const char *name,
101408 + umode_t mode, struct proc_dir_entry *parent, void *data) { return NULL; }
101409 static inline struct proc_dir_entry *proc_mkdir_mode(const char *name,
101410 umode_t mode, struct proc_dir_entry *parent) { return NULL; }
101411 #define proc_create(name, mode, parent, proc_fops) ({NULL;})
101412 @@ -79,7 +99,7 @@ struct net;
101413 static inline struct proc_dir_entry *proc_net_mkdir(
101414 struct net *net, const char *name, struct proc_dir_entry *parent)
101415 {
101416 - return proc_mkdir_data(name, 0, parent, net);
101417 + return proc_mkdir_data_restrict(name, 0, parent, net);
101418 }
101419
101420 #endif /* _LINUX_PROC_FS_H */
101421 diff --git a/include/linux/proc_ns.h b/include/linux/proc_ns.h
101422 index 42dfc61..8113a99 100644
101423 --- a/include/linux/proc_ns.h
101424 +++ b/include/linux/proc_ns.h
101425 @@ -16,7 +16,7 @@ struct proc_ns_operations {
101426 struct ns_common *(*get)(struct task_struct *task);
101427 void (*put)(struct ns_common *ns);
101428 int (*install)(struct nsproxy *nsproxy, struct ns_common *ns);
101429 -};
101430 +} __do_const __randomize_layout;
101431
101432 extern const struct proc_ns_operations netns_operations;
101433 extern const struct proc_ns_operations utsns_operations;
101434 diff --git a/include/linux/quota.h b/include/linux/quota.h
101435 index b2505ac..5f7ab55 100644
101436 --- a/include/linux/quota.h
101437 +++ b/include/linux/quota.h
101438 @@ -76,7 +76,7 @@ struct kqid { /* Type in which we store the quota identifier */
101439
101440 extern bool qid_eq(struct kqid left, struct kqid right);
101441 extern bool qid_lt(struct kqid left, struct kqid right);
101442 -extern qid_t from_kqid(struct user_namespace *to, struct kqid qid);
101443 +extern qid_t from_kqid(struct user_namespace *to, struct kqid qid) __intentional_overflow(-1);
101444 extern qid_t from_kqid_munged(struct user_namespace *to, struct kqid qid);
101445 extern bool qid_valid(struct kqid qid);
101446
101447 diff --git a/include/linux/random.h b/include/linux/random.h
101448 index e651874..a872186 100644
101449 --- a/include/linux/random.h
101450 +++ b/include/linux/random.h
101451 @@ -16,9 +16,19 @@ struct random_ready_callback {
101452 };
101453
101454 extern void add_device_randomness(const void *, unsigned int);
101455 +
101456 +static inline void add_latent_entropy(void)
101457 +{
101458 +
101459 +#ifdef LATENT_ENTROPY_PLUGIN
101460 + add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
101461 +#endif
101462 +
101463 +}
101464 +
101465 extern void add_input_randomness(unsigned int type, unsigned int code,
101466 - unsigned int value);
101467 -extern void add_interrupt_randomness(int irq, int irq_flags);
101468 + unsigned int value) __latent_entropy;
101469 +extern void add_interrupt_randomness(int irq, int irq_flags) __latent_entropy;
101470
101471 extern void get_random_bytes(void *buf, int nbytes);
101472 extern int add_random_ready_callback(struct random_ready_callback *rdy);
101473 @@ -46,6 +56,11 @@ struct rnd_state {
101474 u32 prandom_u32_state(struct rnd_state *state);
101475 void prandom_bytes_state(struct rnd_state *state, void *buf, size_t nbytes);
101476
101477 +static inline unsigned long __intentional_overflow(-1) pax_get_random_long(void)
101478 +{
101479 + return prandom_u32() + (sizeof(long) > 4 ? (unsigned long)prandom_u32() << 32 : 0);
101480 +}
101481 +
101482 /**
101483 * prandom_u32_max - returns a pseudo-random number in interval [0, ep_ro)
101484 * @ep_ro: right open interval endpoint
101485 @@ -58,7 +73,7 @@ void prandom_bytes_state(struct rnd_state *state, void *buf, size_t nbytes);
101486 *
101487 * Returns: pseudo-random number in interval [0, ep_ro)
101488 */
101489 -static inline u32 prandom_u32_max(u32 ep_ro)
101490 +static inline u32 __intentional_overflow(-1) prandom_u32_max(u32 ep_ro)
101491 {
101492 return (u32)(((u64) prandom_u32() * ep_ro) >> 32);
101493 }
101494 diff --git a/include/linux/rbtree_augmented.h b/include/linux/rbtree_augmented.h
101495 index 14d7b83..a1edf56 100644
101496 --- a/include/linux/rbtree_augmented.h
101497 +++ b/include/linux/rbtree_augmented.h
101498 @@ -90,7 +90,9 @@ rbname ## _rotate(struct rb_node *rb_old, struct rb_node *rb_new) \
101499 old->rbaugmented = rbcompute(old); \
101500 } \
101501 rbstatic const struct rb_augment_callbacks rbname = { \
101502 - rbname ## _propagate, rbname ## _copy, rbname ## _rotate \
101503 + .propagate = rbname ## _propagate, \
101504 + .copy = rbname ## _copy, \
101505 + .rotate = rbname ## _rotate \
101506 };
101507
101508
101509 diff --git a/include/linux/rculist.h b/include/linux/rculist.h
101510 index 17c6b1f..a65e3f8 100644
101511 --- a/include/linux/rculist.h
101512 +++ b/include/linux/rculist.h
101513 @@ -59,6 +59,9 @@ void __list_add_rcu(struct list_head *new,
101514 struct list_head *prev, struct list_head *next);
101515 #endif
101516
101517 +void __pax_list_add_rcu(struct list_head *new,
101518 + struct list_head *prev, struct list_head *next);
101519 +
101520 /**
101521 * list_add_rcu - add a new entry to rcu-protected list
101522 * @new: new entry to be added
101523 @@ -80,6 +83,11 @@ static inline void list_add_rcu(struct list_head *new, struct list_head *head)
101524 __list_add_rcu(new, head, head->next);
101525 }
101526
101527 +static inline void pax_list_add_rcu(struct list_head *new, struct list_head *head)
101528 +{
101529 + __pax_list_add_rcu(new, head, head->next);
101530 +}
101531 +
101532 /**
101533 * list_add_tail_rcu - add a new entry to rcu-protected list
101534 * @new: new entry to be added
101535 @@ -102,6 +110,12 @@ static inline void list_add_tail_rcu(struct list_head *new,
101536 __list_add_rcu(new, head->prev, head);
101537 }
101538
101539 +static inline void pax_list_add_tail_rcu(struct list_head *new,
101540 + struct list_head *head)
101541 +{
101542 + __pax_list_add_rcu(new, head->prev, head);
101543 +}
101544 +
101545 /**
101546 * list_del_rcu - deletes entry from list without re-initialization
101547 * @entry: the element to delete from the list.
101548 @@ -132,6 +146,8 @@ static inline void list_del_rcu(struct list_head *entry)
101549 entry->prev = LIST_POISON2;
101550 }
101551
101552 +extern void pax_list_del_rcu(struct list_head *entry);
101553 +
101554 /**
101555 * hlist_del_init_rcu - deletes entry from hash list with re-initialization
101556 * @n: the element to delete from the hash list.
101557 diff --git a/include/linux/reboot.h b/include/linux/reboot.h
101558 index a7ff409..03e2fa8 100644
101559 --- a/include/linux/reboot.h
101560 +++ b/include/linux/reboot.h
101561 @@ -47,9 +47,9 @@ extern void do_kernel_restart(char *cmd);
101562 */
101563
101564 extern void migrate_to_reboot_cpu(void);
101565 -extern void machine_restart(char *cmd);
101566 -extern void machine_halt(void);
101567 -extern void machine_power_off(void);
101568 +extern void machine_restart(char *cmd) __noreturn;
101569 +extern void machine_halt(void) __noreturn;
101570 +extern void machine_power_off(void) __noreturn;
101571
101572 extern void machine_shutdown(void);
101573 struct pt_regs;
101574 @@ -60,9 +60,9 @@ extern void machine_crash_shutdown(struct pt_regs *);
101575 */
101576
101577 extern void kernel_restart_prepare(char *cmd);
101578 -extern void kernel_restart(char *cmd);
101579 -extern void kernel_halt(void);
101580 -extern void kernel_power_off(void);
101581 +extern void kernel_restart(char *cmd) __noreturn;
101582 +extern void kernel_halt(void) __noreturn;
101583 +extern void kernel_power_off(void) __noreturn;
101584
101585 extern int C_A_D; /* for sysctl */
101586 void ctrl_alt_del(void);
101587 @@ -77,7 +77,7 @@ extern void orderly_reboot(void);
101588 * Emergency restart, callable from an interrupt handler.
101589 */
101590
101591 -extern void emergency_restart(void);
101592 +extern void emergency_restart(void) __noreturn;
101593 #include <asm/emergency-restart.h>
101594
101595 #endif /* _LINUX_REBOOT_H */
101596 diff --git a/include/linux/regset.h b/include/linux/regset.h
101597 index 8e0c9fe..ac4d221 100644
101598 --- a/include/linux/regset.h
101599 +++ b/include/linux/regset.h
101600 @@ -161,7 +161,8 @@ struct user_regset {
101601 unsigned int align;
101602 unsigned int bias;
101603 unsigned int core_note_type;
101604 -};
101605 +} __do_const;
101606 +typedef struct user_regset __no_const user_regset_no_const;
101607
101608 /**
101609 * struct user_regset_view - available regsets
101610 diff --git a/include/linux/relay.h b/include/linux/relay.h
101611 index d7c8359..818daf5 100644
101612 --- a/include/linux/relay.h
101613 +++ b/include/linux/relay.h
101614 @@ -157,7 +157,7 @@ struct rchan_callbacks
101615 * The callback should return 0 if successful, negative if not.
101616 */
101617 int (*remove_buf_file)(struct dentry *dentry);
101618 -};
101619 +} __no_const;
101620
101621 /*
101622 * CONFIG_RELAY kernel API, kernel/relay.c
101623 diff --git a/include/linux/rio.h b/include/linux/rio.h
101624 index cde976e..ebd6033 100644
101625 --- a/include/linux/rio.h
101626 +++ b/include/linux/rio.h
101627 @@ -358,7 +358,7 @@ struct rio_ops {
101628 int (*map_inb)(struct rio_mport *mport, dma_addr_t lstart,
101629 u64 rstart, u32 size, u32 flags);
101630 void (*unmap_inb)(struct rio_mport *mport, dma_addr_t lstart);
101631 -};
101632 +} __no_const;
101633
101634 #define RIO_RESOURCE_MEM 0x00000100
101635 #define RIO_RESOURCE_DOORBELL 0x00000200
101636 diff --git a/include/linux/rmap.h b/include/linux/rmap.h
101637 index c89c53a..aa0a65a 100644
101638 --- a/include/linux/rmap.h
101639 +++ b/include/linux/rmap.h
101640 @@ -146,8 +146,8 @@ static inline void anon_vma_unlock_read(struct anon_vma *anon_vma)
101641 void anon_vma_init(void); /* create anon_vma_cachep */
101642 int anon_vma_prepare(struct vm_area_struct *);
101643 void unlink_anon_vmas(struct vm_area_struct *);
101644 -int anon_vma_clone(struct vm_area_struct *, struct vm_area_struct *);
101645 -int anon_vma_fork(struct vm_area_struct *, struct vm_area_struct *);
101646 +int anon_vma_clone(struct vm_area_struct *, const struct vm_area_struct *);
101647 +int anon_vma_fork(struct vm_area_struct *, const struct vm_area_struct *);
101648
101649 static inline void anon_vma_merge(struct vm_area_struct *vma,
101650 struct vm_area_struct *next)
101651 diff --git a/include/linux/scatterlist.h b/include/linux/scatterlist.h
101652 index 9b1ef0c..9fa3feb 100644
101653 --- a/include/linux/scatterlist.h
101654 +++ b/include/linux/scatterlist.h
101655 @@ -1,6 +1,7 @@
101656 #ifndef _LINUX_SCATTERLIST_H
101657 #define _LINUX_SCATTERLIST_H
101658
101659 +#include <linux/sched.h>
101660 #include <linux/string.h>
101661 #include <linux/types.h>
101662 #include <linux/bug.h>
101663 @@ -136,10 +137,17 @@ static inline struct page *sg_page(struct scatterlist *sg)
101664 static inline void sg_set_buf(struct scatterlist *sg, const void *buf,
101665 unsigned int buflen)
101666 {
101667 + const void *realbuf = buf;
101668 +
101669 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
101670 + if (object_starts_on_stack(buf))
101671 + realbuf = buf - current->stack + current->lowmem_stack;
101672 +#endif
101673 +
101674 #ifdef CONFIG_DEBUG_SG
101675 - BUG_ON(!virt_addr_valid(buf));
101676 + BUG_ON(!virt_addr_valid(realbuf));
101677 #endif
101678 - sg_set_page(sg, virt_to_page(buf), buflen, offset_in_page(buf));
101679 + sg_set_page(sg, virt_to_page(realbuf), buflen, offset_in_page(realbuf));
101680 }
101681
101682 /*
101683 diff --git a/include/linux/sched.h b/include/linux/sched.h
101684 index bfca8aa..ac50d1b 100644
101685 --- a/include/linux/sched.h
101686 +++ b/include/linux/sched.h
101687 @@ -7,7 +7,7 @@
101688
101689
101690 struct sched_param {
101691 - int sched_priority;
101692 + unsigned int sched_priority;
101693 };
101694
101695 #include <asm/param.h> /* for HZ */
101696 @@ -134,6 +134,7 @@ struct perf_event_context;
101697 struct blk_plug;
101698 struct filename;
101699 struct nameidata;
101700 +struct linux_binprm;
101701
101702 #define VMACACHE_BITS 2
101703 #define VMACACHE_SIZE (1U << VMACACHE_BITS)
101704 @@ -436,6 +437,19 @@ struct nsproxy;
101705 struct user_namespace;
101706
101707 #ifdef CONFIG_MMU
101708 +
101709 +#ifdef CONFIG_GRKERNSEC_RAND_THREADSTACK
101710 +extern unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags);
101711 +#else
101712 +static inline unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags)
101713 +{
101714 + return 0;
101715 +}
101716 +#endif
101717 +
101718 +extern bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset);
101719 +extern unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset);
101720 +
101721 extern void arch_pick_mmap_layout(struct mm_struct *mm);
101722 extern unsigned long
101723 arch_get_unmapped_area(struct file *, unsigned long, unsigned long,
101724 @@ -749,6 +763,17 @@ struct signal_struct {
101725 #ifdef CONFIG_TASKSTATS
101726 struct taskstats *stats;
101727 #endif
101728 +
101729 +#ifdef CONFIG_GRKERNSEC
101730 + u32 curr_ip;
101731 + u32 saved_ip;
101732 + u32 gr_saddr;
101733 + u32 gr_daddr;
101734 + u16 gr_sport;
101735 + u16 gr_dport;
101736 + u8 used_accept:1;
101737 +#endif
101738 +
101739 #ifdef CONFIG_AUDIT
101740 unsigned audit_tty;
101741 unsigned audit_tty_log_passwd;
101742 @@ -775,7 +800,7 @@ struct signal_struct {
101743 struct mutex cred_guard_mutex; /* guard against foreign influences on
101744 * credential calculations
101745 * (notably. ptrace) */
101746 -};
101747 +} __randomize_layout;
101748
101749 /*
101750 * Bits in flags field of signal_struct.
101751 @@ -828,6 +853,14 @@ struct user_struct {
101752 struct key *session_keyring; /* UID's default session keyring */
101753 #endif
101754
101755 +#ifdef CONFIG_GRKERNSEC_KERN_LOCKOUT
101756 + unsigned char kernel_banned;
101757 +#endif
101758 +#ifdef CONFIG_GRKERNSEC_BRUTE
101759 + unsigned char suid_banned;
101760 + unsigned long suid_ban_expires;
101761 +#endif
101762 +
101763 /* Hash table maintenance information */
101764 struct hlist_node uidhash_node;
101765 kuid_t uid;
101766 @@ -835,7 +868,7 @@ struct user_struct {
101767 #ifdef CONFIG_PERF_EVENTS
101768 atomic_long_t locked_vm;
101769 #endif
101770 -};
101771 +} __randomize_layout;
101772
101773 extern int uids_sysfs_init(void);
101774
101775 @@ -1356,6 +1389,9 @@ enum perf_event_task_context {
101776 struct task_struct {
101777 volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */
101778 void *stack;
101779 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
101780 + void *lowmem_stack;
101781 +#endif
101782 atomic_t usage;
101783 unsigned int flags; /* per process flags, defined below */
101784 unsigned int ptrace;
101785 @@ -1488,8 +1524,8 @@ struct task_struct {
101786 struct list_head thread_node;
101787
101788 struct completion *vfork_done; /* for vfork() */
101789 - int __user *set_child_tid; /* CLONE_CHILD_SETTID */
101790 - int __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
101791 + pid_t __user *set_child_tid; /* CLONE_CHILD_SETTID */
101792 + pid_t __user *clear_child_tid; /* CLONE_CHILD_CLEARTID */
101793
101794 cputime_t utime, stime, utimescaled, stimescaled;
101795 cputime_t gtime;
101796 @@ -1514,11 +1550,6 @@ struct task_struct {
101797 struct task_cputime cputime_expires;
101798 struct list_head cpu_timers[3];
101799
101800 -/* process credentials */
101801 - const struct cred __rcu *real_cred; /* objective and real subjective task
101802 - * credentials (COW) */
101803 - const struct cred __rcu *cred; /* effective (overridable) subjective task
101804 - * credentials (COW) */
101805 char comm[TASK_COMM_LEN]; /* executable name excluding path
101806 - access with [gs]et_task_comm (which lock
101807 it with task_lock())
101808 @@ -1534,6 +1565,8 @@ struct task_struct {
101809 /* hung task detection */
101810 unsigned long last_switch_count;
101811 #endif
101812 +/* CPU-specific state of this task */
101813 + struct thread_struct thread;
101814 /* filesystem information */
101815 struct fs_struct *fs;
101816 /* open file information */
101817 @@ -1610,6 +1643,10 @@ struct task_struct {
101818 gfp_t lockdep_reclaim_gfp;
101819 #endif
101820
101821 +/* process credentials */
101822 + const struct cred __rcu *real_cred; /* objective and real subjective task
101823 + * credentials (COW) */
101824 +
101825 /* journalling filesystem info */
101826 void *journal_info;
101827
101828 @@ -1648,6 +1685,10 @@ struct task_struct {
101829 /* cg_list protected by css_set_lock and tsk->alloc_lock */
101830 struct list_head cg_list;
101831 #endif
101832 +
101833 + const struct cred __rcu *cred; /* effective (overridable) subjective task
101834 + * credentials (COW) */
101835 +
101836 #ifdef CONFIG_FUTEX
101837 struct robust_list_head __user *robust_list;
101838 #ifdef CONFIG_COMPAT
101839 @@ -1759,7 +1800,7 @@ struct task_struct {
101840 * Number of functions that haven't been traced
101841 * because of depth overrun.
101842 */
101843 - atomic_t trace_overrun;
101844 + atomic_unchecked_t trace_overrun;
101845 /* Pause for the tracing */
101846 atomic_t tracing_graph_pause;
101847 #endif
101848 @@ -1788,22 +1829,89 @@ struct task_struct {
101849 unsigned long task_state_change;
101850 #endif
101851 int pagefault_disabled;
101852 -/* CPU-specific state of this task */
101853 - struct thread_struct thread;
101854 -/*
101855 - * WARNING: on x86, 'thread_struct' contains a variable-sized
101856 - * structure. It *MUST* be at the end of 'task_struct'.
101857 - *
101858 - * Do not put anything below here!
101859 - */
101860 -};
101861 +
101862 +#ifdef CONFIG_GRKERNSEC
101863 + /* grsecurity */
101864 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
101865 + u64 exec_id;
101866 +#endif
101867 +#ifdef CONFIG_GRKERNSEC_SETXID
101868 + const struct cred *delayed_cred;
101869 +#endif
101870 + struct dentry *gr_chroot_dentry;
101871 + struct acl_subject_label *acl;
101872 + struct acl_subject_label *tmpacl;
101873 + struct acl_role_label *role;
101874 + struct file *exec_file;
101875 + unsigned long brute_expires;
101876 + u16 acl_role_id;
101877 + u8 inherited;
101878 + /* is this the task that authenticated to the special role */
101879 + u8 acl_sp_role;
101880 + u8 is_writable;
101881 + u8 brute;
101882 + u8 gr_is_chrooted;
101883 +#endif
101884 +
101885 +/* thread_info moved to task_struct */
101886 +#ifdef CONFIG_X86
101887 + struct thread_info tinfo;
101888 +#endif
101889 +} __randomize_layout;
101890
101891 #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
101892 -extern int arch_task_struct_size __read_mostly;
101893 +extern size_t arch_task_struct_size __read_mostly;
101894 #else
101895 # define arch_task_struct_size (sizeof(struct task_struct))
101896 #endif
101897
101898 +#define MF_PAX_PAGEEXEC 0x01000000 /* Paging based non-executable pages */
101899 +#define MF_PAX_EMUTRAMP 0x02000000 /* Emulate trampolines */
101900 +#define MF_PAX_MPROTECT 0x04000000 /* Restrict mprotect() */
101901 +#define MF_PAX_RANDMMAP 0x08000000 /* Randomize mmap() base */
101902 +/*#define MF_PAX_RANDEXEC 0x10000000*/ /* Randomize ET_EXEC base */
101903 +#define MF_PAX_SEGMEXEC 0x20000000 /* Segmentation based non-executable pages */
101904 +
101905 +#ifdef CONFIG_PAX_SOFTMODE
101906 +extern int pax_softmode;
101907 +#endif
101908 +
101909 +extern int pax_check_flags(unsigned long *);
101910 +#define PAX_PARSE_FLAGS_FALLBACK (~0UL)
101911 +
101912 +/* if tsk != current then task_lock must be held on it */
101913 +#if defined(CONFIG_PAX_NOEXEC) || defined(CONFIG_PAX_ASLR)
101914 +static inline unsigned long pax_get_flags(struct task_struct *tsk)
101915 +{
101916 + if (likely(tsk->mm))
101917 + return tsk->mm->pax_flags;
101918 + else
101919 + return 0UL;
101920 +}
101921 +
101922 +/* if tsk != current then task_lock must be held on it */
101923 +static inline long pax_set_flags(struct task_struct *tsk, unsigned long flags)
101924 +{
101925 + if (likely(tsk->mm)) {
101926 + tsk->mm->pax_flags = flags;
101927 + return 0;
101928 + }
101929 + return -EINVAL;
101930 +}
101931 +#endif
101932 +
101933 +#ifdef CONFIG_PAX_HAVE_ACL_FLAGS
101934 +extern void pax_set_initial_flags(struct linux_binprm *bprm);
101935 +#elif defined(CONFIG_PAX_HOOK_ACL_FLAGS)
101936 +extern void (*pax_set_initial_flags_func)(struct linux_binprm *bprm);
101937 +#endif
101938 +
101939 +struct path;
101940 +extern char *pax_get_path(const struct path *path, char *buf, int buflen);
101941 +extern void pax_report_fault(struct pt_regs *regs, void *pc, void *sp);
101942 +extern void pax_report_insns(struct pt_regs *regs, void *pc, void *sp);
101943 +extern void pax_report_refcount_overflow(struct pt_regs *regs);
101944 +
101945 /* Future-safe accessor for struct task_struct's cpus_allowed. */
101946 #define tsk_cpus_allowed(tsk) (&(tsk)->cpus_allowed)
101947
101948 @@ -1885,7 +1993,7 @@ struct pid_namespace;
101949 pid_t __task_pid_nr_ns(struct task_struct *task, enum pid_type type,
101950 struct pid_namespace *ns);
101951
101952 -static inline pid_t task_pid_nr(struct task_struct *tsk)
101953 +static inline pid_t task_pid_nr(const struct task_struct *tsk)
101954 {
101955 return tsk->pid;
101956 }
101957 @@ -2253,6 +2361,25 @@ extern u64 sched_clock_cpu(int cpu);
101958
101959 extern void sched_clock_init(void);
101960
101961 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
101962 +static inline void populate_stack(void)
101963 +{
101964 + struct task_struct *curtask = current;
101965 + int c;
101966 + int *ptr = curtask->stack;
101967 + int *end = curtask->stack + THREAD_SIZE;
101968 +
101969 + while (ptr < end) {
101970 + c = *(volatile int *)ptr;
101971 + ptr += PAGE_SIZE/sizeof(int);
101972 + }
101973 +}
101974 +#else
101975 +static inline void populate_stack(void)
101976 +{
101977 +}
101978 +#endif
101979 +
101980 #ifndef CONFIG_HAVE_UNSTABLE_SCHED_CLOCK
101981 static inline void sched_clock_tick(void)
101982 {
101983 @@ -2381,7 +2508,9 @@ extern void set_curr_task(int cpu, struct task_struct *p);
101984 void yield(void);
101985
101986 union thread_union {
101987 +#ifndef CONFIG_X86
101988 struct thread_info thread_info;
101989 +#endif
101990 unsigned long stack[THREAD_SIZE/sizeof(long)];
101991 };
101992
101993 @@ -2414,6 +2543,7 @@ extern struct pid_namespace init_pid_ns;
101994 */
101995
101996 extern struct task_struct *find_task_by_vpid(pid_t nr);
101997 +extern struct task_struct *find_task_by_vpid_unrestricted(pid_t nr);
101998 extern struct task_struct *find_task_by_pid_ns(pid_t nr,
101999 struct pid_namespace *ns);
102000
102001 @@ -2591,7 +2721,7 @@ extern void __cleanup_sighand(struct sighand_struct *);
102002 extern void exit_itimers(struct signal_struct *);
102003 extern void flush_itimer_signals(void);
102004
102005 -extern void do_group_exit(int);
102006 +extern __noreturn void do_group_exit(int);
102007
102008 extern int do_execve(struct filename *,
102009 const char __user * const __user *,
102010 @@ -2796,9 +2926,9 @@ static inline unsigned long *end_of_stack(struct task_struct *p)
102011 #define task_stack_end_corrupted(task) \
102012 (*(end_of_stack(task)) != STACK_END_MAGIC)
102013
102014 -static inline int object_is_on_stack(void *obj)
102015 +static inline int object_starts_on_stack(const void *obj)
102016 {
102017 - void *stack = task_stack_page(current);
102018 + const void *stack = task_stack_page(current);
102019
102020 return (obj >= stack) && (obj < (stack + THREAD_SIZE));
102021 }
102022 diff --git a/include/linux/sched/sysctl.h b/include/linux/sched/sysctl.h
102023 index c9e4731..c716293 100644
102024 --- a/include/linux/sched/sysctl.h
102025 +++ b/include/linux/sched/sysctl.h
102026 @@ -34,6 +34,7 @@ enum { sysctl_hung_task_timeout_secs = 0 };
102027 #define DEFAULT_MAX_MAP_COUNT (USHRT_MAX - MAPCOUNT_ELF_CORE_MARGIN)
102028
102029 extern int sysctl_max_map_count;
102030 +extern unsigned long sysctl_heap_stack_gap;
102031
102032 extern unsigned int sysctl_sched_latency;
102033 extern unsigned int sysctl_sched_min_granularity;
102034 diff --git a/include/linux/security.h b/include/linux/security.h
102035 index 2f4c1f7..5bc05d7 100644
102036 --- a/include/linux/security.h
102037 +++ b/include/linux/security.h
102038 @@ -28,6 +28,7 @@
102039 #include <linux/err.h>
102040 #include <linux/string.h>
102041 #include <linux/mm.h>
102042 +#include <linux/grsecurity.h>
102043
102044 struct linux_binprm;
102045 struct cred;
102046 diff --git a/include/linux/sem.h b/include/linux/sem.h
102047 index 976ce3a..db62f3f 100644
102048 --- a/include/linux/sem.h
102049 +++ b/include/linux/sem.h
102050 @@ -21,7 +21,7 @@ struct sem_array {
102051 struct list_head list_id; /* undo requests on this array */
102052 int sem_nsems; /* no. of semaphores in array */
102053 int complex_count; /* pending complex operations */
102054 -};
102055 +} __randomize_layout;
102056
102057 #ifdef CONFIG_SYSVIPC
102058
102059 diff --git a/include/linux/semaphore.h b/include/linux/semaphore.h
102060 index dc368b8..e895209 100644
102061 --- a/include/linux/semaphore.h
102062 +++ b/include/linux/semaphore.h
102063 @@ -37,7 +37,7 @@ static inline void sema_init(struct semaphore *sem, int val)
102064 }
102065
102066 extern void down(struct semaphore *sem);
102067 -extern int __must_check down_interruptible(struct semaphore *sem);
102068 +extern int __must_check down_interruptible(struct semaphore *sem) __intentional_overflow(-1);
102069 extern int __must_check down_killable(struct semaphore *sem);
102070 extern int __must_check down_trylock(struct semaphore *sem);
102071 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
102072 diff --git a/include/linux/seq_file.h b/include/linux/seq_file.h
102073 index d4c7271..abf5706 100644
102074 --- a/include/linux/seq_file.h
102075 +++ b/include/linux/seq_file.h
102076 @@ -27,6 +27,9 @@ struct seq_file {
102077 struct mutex lock;
102078 const struct seq_operations *op;
102079 int poll_event;
102080 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
102081 + u64 exec_id;
102082 +#endif
102083 #ifdef CONFIG_USER_NS
102084 struct user_namespace *user_ns;
102085 #endif
102086 @@ -39,6 +42,7 @@ struct seq_operations {
102087 void * (*next) (struct seq_file *m, void *v, loff_t *pos);
102088 int (*show) (struct seq_file *m, void *v);
102089 };
102090 +typedef struct seq_operations __no_const seq_operations_no_const;
102091
102092 #define SEQ_SKIP 1
102093
102094 @@ -111,6 +115,7 @@ void seq_pad(struct seq_file *m, char c);
102095
102096 char *mangle_path(char *s, const char *p, const char *esc);
102097 int seq_open(struct file *, const struct seq_operations *);
102098 +int seq_open_restrict(struct file *, const struct seq_operations *);
102099 ssize_t seq_read(struct file *, char __user *, size_t, loff_t *);
102100 loff_t seq_lseek(struct file *, loff_t, int);
102101 int seq_release(struct inode *, struct file *);
102102 @@ -129,6 +134,7 @@ int seq_path_root(struct seq_file *m, const struct path *path,
102103 const struct path *root, const char *esc);
102104
102105 int single_open(struct file *, int (*)(struct seq_file *, void *), void *);
102106 +int single_open_restrict(struct file *, int (*)(struct seq_file *, void *), void *);
102107 int single_open_size(struct file *, int (*)(struct seq_file *, void *), void *, size_t);
102108 int single_release(struct inode *, struct file *);
102109 void *__seq_open_private(struct file *, const struct seq_operations *, int);
102110 diff --git a/include/linux/shm.h b/include/linux/shm.h
102111 index 6fb8016..2cf60e7 100644
102112 --- a/include/linux/shm.h
102113 +++ b/include/linux/shm.h
102114 @@ -22,7 +22,11 @@ struct shmid_kernel /* private to the kernel */
102115 /* The task created the shm object. NULL if the task is dead. */
102116 struct task_struct *shm_creator;
102117 struct list_head shm_clist; /* list by creator */
102118 -};
102119 +#ifdef CONFIG_GRKERNSEC
102120 + u64 shm_createtime;
102121 + pid_t shm_lapid;
102122 +#endif
102123 +} __randomize_layout;
102124
102125 /* shm_mode upper byte flags */
102126 #define SHM_DEST 01000 /* segment will be destroyed on last detach */
102127 diff --git a/include/linux/signal.h b/include/linux/signal.h
102128 index ab1e039..ad4229e 100644
102129 --- a/include/linux/signal.h
102130 +++ b/include/linux/signal.h
102131 @@ -289,7 +289,7 @@ static inline void allow_signal(int sig)
102132 * know it'll be handled, so that they don't get converted to
102133 * SIGKILL or just silently dropped.
102134 */
102135 - kernel_sigaction(sig, (__force __sighandler_t)2);
102136 + kernel_sigaction(sig, (__force_user __sighandler_t)2);
102137 }
102138
102139 static inline void disallow_signal(int sig)
102140 diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
102141 index 2751588..dc96c12 100644
102142 --- a/include/linux/skbuff.h
102143 +++ b/include/linux/skbuff.h
102144 @@ -784,7 +784,7 @@ struct sk_buff *__alloc_skb(unsigned int size, gfp_t priority, int flags,
102145 int node);
102146 struct sk_buff *__build_skb(void *data, unsigned int frag_size);
102147 struct sk_buff *build_skb(void *data, unsigned int frag_size);
102148 -static inline struct sk_buff *alloc_skb(unsigned int size,
102149 +static inline struct sk_buff * __intentional_overflow(0) alloc_skb(unsigned int size,
102150 gfp_t priority)
102151 {
102152 return __alloc_skb(size, priority, 0, NUMA_NO_NODE);
102153 @@ -1964,7 +1964,7 @@ static inline int skb_checksum_start_offset(const struct sk_buff *skb)
102154 return skb->csum_start - skb_headroom(skb);
102155 }
102156
102157 -static inline int skb_transport_offset(const struct sk_buff *skb)
102158 +static inline int __intentional_overflow(0) skb_transport_offset(const struct sk_buff *skb)
102159 {
102160 return skb_transport_header(skb) - skb->data;
102161 }
102162 @@ -1979,7 +1979,7 @@ static inline u32 skb_inner_network_header_len(const struct sk_buff *skb)
102163 return skb->inner_transport_header - skb->inner_network_header;
102164 }
102165
102166 -static inline int skb_network_offset(const struct sk_buff *skb)
102167 +static inline int __intentional_overflow(0) skb_network_offset(const struct sk_buff *skb)
102168 {
102169 return skb_network_header(skb) - skb->data;
102170 }
102171 @@ -2039,7 +2039,7 @@ static inline int pskb_network_may_pull(struct sk_buff *skb, unsigned int len)
102172 * NET_IP_ALIGN(2) + ethernet_header(14) + IP_header(20/40) + ports(8)
102173 */
102174 #ifndef NET_SKB_PAD
102175 -#define NET_SKB_PAD max(32, L1_CACHE_BYTES)
102176 +#define NET_SKB_PAD max(_AC(32,UL), L1_CACHE_BYTES)
102177 #endif
102178
102179 int ___pskb_trim(struct sk_buff *skb, unsigned int len);
102180 @@ -2685,9 +2685,9 @@ struct sk_buff *skb_recv_datagram(struct sock *sk, unsigned flags, int noblock,
102181 int *err);
102182 unsigned int datagram_poll(struct file *file, struct socket *sock,
102183 struct poll_table_struct *wait);
102184 -int skb_copy_datagram_iter(const struct sk_buff *from, int offset,
102185 +int __intentional_overflow(0) skb_copy_datagram_iter(const struct sk_buff *from, int offset,
102186 struct iov_iter *to, int size);
102187 -static inline int skb_copy_datagram_msg(const struct sk_buff *from, int offset,
102188 +static inline int __intentional_overflow(2,4) skb_copy_datagram_msg(const struct sk_buff *from, int offset,
102189 struct msghdr *msg, int size)
102190 {
102191 return skb_copy_datagram_iter(from, offset, &msg->msg_iter, size);
102192 @@ -3216,6 +3216,9 @@ static inline void nf_reset(struct sk_buff *skb)
102193 nf_bridge_put(skb->nf_bridge);
102194 skb->nf_bridge = NULL;
102195 #endif
102196 +#if IS_ENABLED(CONFIG_NETFILTER_XT_TARGET_TRACE)
102197 + skb->nf_trace = 0;
102198 +#endif
102199 }
102200
102201 static inline void nf_reset_trace(struct sk_buff *skb)
102202 diff --git a/include/linux/slab.h b/include/linux/slab.h
102203 index a99f0e5..4efa730 100644
102204 --- a/include/linux/slab.h
102205 +++ b/include/linux/slab.h
102206 @@ -15,14 +15,29 @@
102207 #include <linux/types.h>
102208 #include <linux/workqueue.h>
102209
102210 +#include <linux/err.h>
102211
102212 /*
102213 * Flags to pass to kmem_cache_create().
102214 * The ones marked DEBUG are only valid if CONFIG_DEBUG_SLAB is set.
102215 */
102216 #define SLAB_DEBUG_FREE 0x00000100UL /* DEBUG: Perform (expensive) checks on free */
102217 +
102218 +#ifdef CONFIG_PAX_USERCOPY_SLABS
102219 +#define SLAB_USERCOPY 0x00000200UL /* PaX: Allow copying objs to/from userland */
102220 +#else
102221 +#define SLAB_USERCOPY 0x00000000UL
102222 +#endif
102223 +
102224 #define SLAB_RED_ZONE 0x00000400UL /* DEBUG: Red zone objs in a cache */
102225 #define SLAB_POISON 0x00000800UL /* DEBUG: Poison objects */
102226 +
102227 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
102228 +#define SLAB_NO_SANITIZE 0x00001000UL /* PaX: Do not sanitize objs on free */
102229 +#else
102230 +#define SLAB_NO_SANITIZE 0x00000000UL
102231 +#endif
102232 +
102233 #define SLAB_HWCACHE_ALIGN 0x00002000UL /* Align objs on cache lines */
102234 #define SLAB_CACHE_DMA 0x00004000UL /* Use GFP_DMA memory */
102235 #define SLAB_STORE_USER 0x00010000UL /* DEBUG: Store the last owner for bug hunting */
102236 @@ -98,10 +113,13 @@
102237 * ZERO_SIZE_PTR can be passed to kfree though in the same way that NULL can.
102238 * Both make kfree a no-op.
102239 */
102240 -#define ZERO_SIZE_PTR ((void *)16)
102241 +#define ZERO_SIZE_PTR \
102242 +({ \
102243 + BUILD_BUG_ON(!(MAX_ERRNO & ~PAGE_MASK));\
102244 + (void *)(-MAX_ERRNO-1L); \
102245 +})
102246
102247 -#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) <= \
102248 - (unsigned long)ZERO_SIZE_PTR)
102249 +#define ZERO_OR_NULL_PTR(x) ((unsigned long)(x) - 1 >= (unsigned long)ZERO_SIZE_PTR - 1)
102250
102251 #include <linux/kmemleak.h>
102252 #include <linux/kasan.h>
102253 @@ -143,6 +161,8 @@ void * __must_check krealloc(const void *, size_t, gfp_t);
102254 void kfree(const void *);
102255 void kzfree(const void *);
102256 size_t ksize(const void *);
102257 +const char *check_heap_object(const void *ptr, unsigned long n);
102258 +bool is_usercopy_object(const void *ptr);
102259
102260 /*
102261 * Some archs want to perform DMA into kmalloc caches and need a guaranteed
102262 @@ -235,6 +255,10 @@ extern struct kmem_cache *kmalloc_caches[KMALLOC_SHIFT_HIGH + 1];
102263 extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
102264 #endif
102265
102266 +#ifdef CONFIG_PAX_USERCOPY_SLABS
102267 +extern struct kmem_cache *kmalloc_usercopy_caches[KMALLOC_SHIFT_HIGH + 1];
102268 +#endif
102269 +
102270 /*
102271 * Figure out which kmalloc slab an allocation of a certain size
102272 * belongs to.
102273 @@ -243,7 +267,7 @@ extern struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
102274 * 2 = 129 .. 192 bytes
102275 * n = 2^(n-1)+1 .. 2^n
102276 */
102277 -static __always_inline int kmalloc_index(size_t size)
102278 +static __always_inline __size_overflow(1) int kmalloc_index(size_t size)
102279 {
102280 if (!size)
102281 return 0;
102282 @@ -286,15 +310,15 @@ static __always_inline int kmalloc_index(size_t size)
102283 }
102284 #endif /* !CONFIG_SLOB */
102285
102286 -void *__kmalloc(size_t size, gfp_t flags);
102287 +void *__kmalloc(size_t size, gfp_t flags) __alloc_size(1) __size_overflow(1);
102288 void *kmem_cache_alloc(struct kmem_cache *, gfp_t flags);
102289 void kmem_cache_free(struct kmem_cache *, void *);
102290
102291 #ifdef CONFIG_NUMA
102292 -void *__kmalloc_node(size_t size, gfp_t flags, int node);
102293 +void *__kmalloc_node(size_t size, gfp_t flags, int node) __alloc_size(1) __size_overflow(1);
102294 void *kmem_cache_alloc_node(struct kmem_cache *, gfp_t flags, int node);
102295 #else
102296 -static __always_inline void *__kmalloc_node(size_t size, gfp_t flags, int node)
102297 +static __always_inline void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
102298 {
102299 return __kmalloc(size, flags);
102300 }
102301 diff --git a/include/linux/slab_def.h b/include/linux/slab_def.h
102302 index 33d0490..70a6313 100644
102303 --- a/include/linux/slab_def.h
102304 +++ b/include/linux/slab_def.h
102305 @@ -40,7 +40,7 @@ struct kmem_cache {
102306 /* 4) cache creation/removal */
102307 const char *name;
102308 struct list_head list;
102309 - int refcount;
102310 + atomic_t refcount;
102311 int object_size;
102312 int align;
102313
102314 @@ -56,10 +56,14 @@ struct kmem_cache {
102315 unsigned long node_allocs;
102316 unsigned long node_frees;
102317 unsigned long node_overflow;
102318 - atomic_t allochit;
102319 - atomic_t allocmiss;
102320 - atomic_t freehit;
102321 - atomic_t freemiss;
102322 + atomic_unchecked_t allochit;
102323 + atomic_unchecked_t allocmiss;
102324 + atomic_unchecked_t freehit;
102325 + atomic_unchecked_t freemiss;
102326 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
102327 + atomic_unchecked_t sanitized;
102328 + atomic_unchecked_t not_sanitized;
102329 +#endif
102330
102331 /*
102332 * If debugging is enabled, then the allocator can add additional
102333 diff --git a/include/linux/slub_def.h b/include/linux/slub_def.h
102334 index 3388511..6252f90 100644
102335 --- a/include/linux/slub_def.h
102336 +++ b/include/linux/slub_def.h
102337 @@ -74,7 +74,7 @@ struct kmem_cache {
102338 struct kmem_cache_order_objects max;
102339 struct kmem_cache_order_objects min;
102340 gfp_t allocflags; /* gfp flags to use on each alloc */
102341 - int refcount; /* Refcount for slab cache destroy */
102342 + atomic_t refcount; /* Refcount for slab cache destroy */
102343 void (*ctor)(void *);
102344 int inuse; /* Offset to metadata */
102345 int align; /* Alignment */
102346 diff --git a/include/linux/smp.h b/include/linux/smp.h
102347 index c441407..f487b83 100644
102348 --- a/include/linux/smp.h
102349 +++ b/include/linux/smp.h
102350 @@ -183,7 +183,9 @@ static inline void smp_init(void) { }
102351 #endif
102352
102353 #define get_cpu() ({ preempt_disable(); smp_processor_id(); })
102354 +#define raw_get_cpu() ({ raw_preempt_disable(); raw_smp_processor_id(); })
102355 #define put_cpu() preempt_enable()
102356 +#define raw_put_cpu_no_resched() raw_preempt_enable_no_resched()
102357
102358 /*
102359 * Callback to arch code if there's nosmp or maxcpus=0 on the
102360 diff --git a/include/linux/sock_diag.h b/include/linux/sock_diag.h
102361 index fddebc6..6f0ae39 100644
102362 --- a/include/linux/sock_diag.h
102363 +++ b/include/linux/sock_diag.h
102364 @@ -15,7 +15,7 @@ struct sock_diag_handler {
102365 __u8 family;
102366 int (*dump)(struct sk_buff *skb, struct nlmsghdr *nlh);
102367 int (*get_info)(struct sk_buff *skb, struct sock *sk);
102368 -};
102369 +} __do_const;
102370
102371 int sock_diag_register(const struct sock_diag_handler *h);
102372 void sock_diag_unregister(const struct sock_diag_handler *h);
102373 diff --git a/include/linux/sonet.h b/include/linux/sonet.h
102374 index 680f9a3..f13aeb0 100644
102375 --- a/include/linux/sonet.h
102376 +++ b/include/linux/sonet.h
102377 @@ -7,7 +7,7 @@
102378 #include <uapi/linux/sonet.h>
102379
102380 struct k_sonet_stats {
102381 -#define __HANDLE_ITEM(i) atomic_t i
102382 +#define __HANDLE_ITEM(i) atomic_unchecked_t i
102383 __SONET_ITEMS
102384 #undef __HANDLE_ITEM
102385 };
102386 diff --git a/include/linux/sunrpc/addr.h b/include/linux/sunrpc/addr.h
102387 index 07d8e53..dc934c9 100644
102388 --- a/include/linux/sunrpc/addr.h
102389 +++ b/include/linux/sunrpc/addr.h
102390 @@ -23,9 +23,9 @@ static inline unsigned short rpc_get_port(const struct sockaddr *sap)
102391 {
102392 switch (sap->sa_family) {
102393 case AF_INET:
102394 - return ntohs(((struct sockaddr_in *)sap)->sin_port);
102395 + return ntohs(((const struct sockaddr_in *)sap)->sin_port);
102396 case AF_INET6:
102397 - return ntohs(((struct sockaddr_in6 *)sap)->sin6_port);
102398 + return ntohs(((const struct sockaddr_in6 *)sap)->sin6_port);
102399 }
102400 return 0;
102401 }
102402 @@ -58,7 +58,7 @@ static inline bool __rpc_cmp_addr4(const struct sockaddr *sap1,
102403 static inline bool __rpc_copy_addr4(struct sockaddr *dst,
102404 const struct sockaddr *src)
102405 {
102406 - const struct sockaddr_in *ssin = (struct sockaddr_in *) src;
102407 + const struct sockaddr_in *ssin = (const struct sockaddr_in *) src;
102408 struct sockaddr_in *dsin = (struct sockaddr_in *) dst;
102409
102410 dsin->sin_family = ssin->sin_family;
102411 @@ -164,7 +164,7 @@ static inline u32 rpc_get_scope_id(const struct sockaddr *sa)
102412 if (sa->sa_family != AF_INET6)
102413 return 0;
102414
102415 - return ((struct sockaddr_in6 *) sa)->sin6_scope_id;
102416 + return ((const struct sockaddr_in6 *) sa)->sin6_scope_id;
102417 }
102418
102419 #endif /* _LINUX_SUNRPC_ADDR_H */
102420 diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h
102421 index 131032f..5f9378a 100644
102422 --- a/include/linux/sunrpc/clnt.h
102423 +++ b/include/linux/sunrpc/clnt.h
102424 @@ -101,7 +101,7 @@ struct rpc_procinfo {
102425 unsigned int p_timer; /* Which RTT timer to use */
102426 u32 p_statidx; /* Which procedure to account */
102427 const char * p_name; /* name of procedure */
102428 -};
102429 +} __do_const;
102430
102431 #ifdef __KERNEL__
102432
102433 diff --git a/include/linux/sunrpc/svc.h b/include/linux/sunrpc/svc.h
102434 index fae6fb9..023fbcd 100644
102435 --- a/include/linux/sunrpc/svc.h
102436 +++ b/include/linux/sunrpc/svc.h
102437 @@ -420,7 +420,7 @@ struct svc_procedure {
102438 unsigned int pc_count; /* call count */
102439 unsigned int pc_cachetype; /* cache info (NFS) */
102440 unsigned int pc_xdrressize; /* maximum size of XDR reply */
102441 -};
102442 +} __do_const;
102443
102444 /*
102445 * Function prototypes.
102446 diff --git a/include/linux/sunrpc/svc_rdma.h b/include/linux/sunrpc/svc_rdma.h
102447 index 4929a8a..b8f29e9 100644
102448 --- a/include/linux/sunrpc/svc_rdma.h
102449 +++ b/include/linux/sunrpc/svc_rdma.h
102450 @@ -53,15 +53,15 @@ extern unsigned int svcrdma_ord;
102451 extern unsigned int svcrdma_max_requests;
102452 extern unsigned int svcrdma_max_req_size;
102453
102454 -extern atomic_t rdma_stat_recv;
102455 -extern atomic_t rdma_stat_read;
102456 -extern atomic_t rdma_stat_write;
102457 -extern atomic_t rdma_stat_sq_starve;
102458 -extern atomic_t rdma_stat_rq_starve;
102459 -extern atomic_t rdma_stat_rq_poll;
102460 -extern atomic_t rdma_stat_rq_prod;
102461 -extern atomic_t rdma_stat_sq_poll;
102462 -extern atomic_t rdma_stat_sq_prod;
102463 +extern atomic_unchecked_t rdma_stat_recv;
102464 +extern atomic_unchecked_t rdma_stat_read;
102465 +extern atomic_unchecked_t rdma_stat_write;
102466 +extern atomic_unchecked_t rdma_stat_sq_starve;
102467 +extern atomic_unchecked_t rdma_stat_rq_starve;
102468 +extern atomic_unchecked_t rdma_stat_rq_poll;
102469 +extern atomic_unchecked_t rdma_stat_rq_prod;
102470 +extern atomic_unchecked_t rdma_stat_sq_poll;
102471 +extern atomic_unchecked_t rdma_stat_sq_prod;
102472
102473 /*
102474 * Contexts are built when an RDMA request is created and are a
102475 diff --git a/include/linux/sunrpc/svcauth.h b/include/linux/sunrpc/svcauth.h
102476 index 8d71d65..f79586e 100644
102477 --- a/include/linux/sunrpc/svcauth.h
102478 +++ b/include/linux/sunrpc/svcauth.h
102479 @@ -120,7 +120,7 @@ struct auth_ops {
102480 int (*release)(struct svc_rqst *rq);
102481 void (*domain_release)(struct auth_domain *);
102482 int (*set_client)(struct svc_rqst *rq);
102483 -};
102484 +} __do_const;
102485
102486 #define SVC_GARBAGE 1
102487 #define SVC_SYSERR 2
102488 diff --git a/include/linux/swiotlb.h b/include/linux/swiotlb.h
102489 index e7a018e..49f8b17 100644
102490 --- a/include/linux/swiotlb.h
102491 +++ b/include/linux/swiotlb.h
102492 @@ -60,7 +60,8 @@ extern void
102493
102494 extern void
102495 swiotlb_free_coherent(struct device *hwdev, size_t size,
102496 - void *vaddr, dma_addr_t dma_handle);
102497 + void *vaddr, dma_addr_t dma_handle,
102498 + struct dma_attrs *attrs);
102499
102500 extern dma_addr_t swiotlb_map_page(struct device *dev, struct page *page,
102501 unsigned long offset, size_t size,
102502 diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
102503 index b45c45b..a6ae64c 100644
102504 --- a/include/linux/syscalls.h
102505 +++ b/include/linux/syscalls.h
102506 @@ -102,7 +102,12 @@ union bpf_attr;
102507 #define __TYPE_IS_L(t) (__same_type((t)0, 0L))
102508 #define __TYPE_IS_UL(t) (__same_type((t)0, 0UL))
102509 #define __TYPE_IS_LL(t) (__same_type((t)0, 0LL) || __same_type((t)0, 0ULL))
102510 -#define __SC_LONG(t, a) __typeof(__builtin_choose_expr(__TYPE_IS_LL(t), 0LL, 0L)) a
102511 +#define __SC_LONG(t, a) __typeof__( \
102512 + __builtin_choose_expr( \
102513 + sizeof(t) > sizeof(int), \
102514 + (t) 0, \
102515 + __builtin_choose_expr(__type_is_unsigned(t), 0UL, 0L) \
102516 + )) a
102517 #define __SC_CAST(t, a) (t) a
102518 #define __SC_ARGS(t, a) a
102519 #define __SC_TEST(t, a) (void)BUILD_BUG_ON_ZERO(!__TYPE_IS_LL(t) && sizeof(t) > sizeof(long))
102520 @@ -384,11 +389,11 @@ asmlinkage long sys_sync(void);
102521 asmlinkage long sys_fsync(unsigned int fd);
102522 asmlinkage long sys_fdatasync(unsigned int fd);
102523 asmlinkage long sys_bdflush(int func, long data);
102524 -asmlinkage long sys_mount(char __user *dev_name, char __user *dir_name,
102525 - char __user *type, unsigned long flags,
102526 +asmlinkage long sys_mount(const char __user *dev_name, const char __user *dir_name,
102527 + const char __user *type, unsigned long flags,
102528 void __user *data);
102529 -asmlinkage long sys_umount(char __user *name, int flags);
102530 -asmlinkage long sys_oldumount(char __user *name);
102531 +asmlinkage long sys_umount(const char __user *name, int flags);
102532 +asmlinkage long sys_oldumount(const char __user *name);
102533 asmlinkage long sys_truncate(const char __user *path, long length);
102534 asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length);
102535 asmlinkage long sys_stat(const char __user *filename,
102536 @@ -604,7 +609,7 @@ asmlinkage long sys_getsockname(int, struct sockaddr __user *, int __user *);
102537 asmlinkage long sys_getpeername(int, struct sockaddr __user *, int __user *);
102538 asmlinkage long sys_send(int, void __user *, size_t, unsigned);
102539 asmlinkage long sys_sendto(int, void __user *, size_t, unsigned,
102540 - struct sockaddr __user *, int);
102541 + struct sockaddr __user *, int) __intentional_overflow(0);
102542 asmlinkage long sys_sendmsg(int fd, struct user_msghdr __user *msg, unsigned flags);
102543 asmlinkage long sys_sendmmsg(int fd, struct mmsghdr __user *msg,
102544 unsigned int vlen, unsigned flags);
102545 @@ -663,10 +668,10 @@ asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf);
102546
102547 asmlinkage long sys_semget(key_t key, int nsems, int semflg);
102548 asmlinkage long sys_semop(int semid, struct sembuf __user *sops,
102549 - unsigned nsops);
102550 + long nsops);
102551 asmlinkage long sys_semctl(int semid, int semnum, int cmd, unsigned long arg);
102552 asmlinkage long sys_semtimedop(int semid, struct sembuf __user *sops,
102553 - unsigned nsops,
102554 + long nsops,
102555 const struct timespec __user *timeout);
102556 asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg);
102557 asmlinkage long sys_shmget(key_t key, size_t size, int flag);
102558 diff --git a/include/linux/syscore_ops.h b/include/linux/syscore_ops.h
102559 index 27b3b0b..e093dd9 100644
102560 --- a/include/linux/syscore_ops.h
102561 +++ b/include/linux/syscore_ops.h
102562 @@ -16,7 +16,7 @@ struct syscore_ops {
102563 int (*suspend)(void);
102564 void (*resume)(void);
102565 void (*shutdown)(void);
102566 -};
102567 +} __do_const;
102568
102569 extern void register_syscore_ops(struct syscore_ops *ops);
102570 extern void unregister_syscore_ops(struct syscore_ops *ops);
102571 diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
102572 index fa7bc29..0d96561 100644
102573 --- a/include/linux/sysctl.h
102574 +++ b/include/linux/sysctl.h
102575 @@ -39,10 +39,16 @@ typedef int proc_handler (struct ctl_table *ctl, int write,
102576
102577 extern int proc_dostring(struct ctl_table *, int,
102578 void __user *, size_t *, loff_t *);
102579 +extern int proc_dostring_modpriv(struct ctl_table *, int,
102580 + void __user *, size_t *, loff_t *);
102581 extern int proc_dointvec(struct ctl_table *, int,
102582 void __user *, size_t *, loff_t *);
102583 +extern int proc_dointvec_secure(struct ctl_table *, int,
102584 + void __user *, size_t *, loff_t *);
102585 extern int proc_dointvec_minmax(struct ctl_table *, int,
102586 void __user *, size_t *, loff_t *);
102587 +extern int proc_dointvec_minmax_secure(struct ctl_table *, int,
102588 + void __user *, size_t *, loff_t *);
102589 extern int proc_dointvec_jiffies(struct ctl_table *, int,
102590 void __user *, size_t *, loff_t *);
102591 extern int proc_dointvec_userhz_jiffies(struct ctl_table *, int,
102592 @@ -113,7 +119,8 @@ struct ctl_table
102593 struct ctl_table_poll *poll;
102594 void *extra1;
102595 void *extra2;
102596 -};
102597 +} __do_const __randomize_layout;
102598 +typedef struct ctl_table __no_const ctl_table_no_const;
102599
102600 struct ctl_node {
102601 struct rb_node node;
102602 diff --git a/include/linux/sysfs.h b/include/linux/sysfs.h
102603 index 9f65758..487a6f1 100644
102604 --- a/include/linux/sysfs.h
102605 +++ b/include/linux/sysfs.h
102606 @@ -34,7 +34,8 @@ struct attribute {
102607 struct lock_class_key *key;
102608 struct lock_class_key skey;
102609 #endif
102610 -};
102611 +} __do_const;
102612 +typedef struct attribute __no_const attribute_no_const;
102613
102614 /**
102615 * sysfs_attr_init - initialize a dynamically allocated sysfs attribute
102616 @@ -78,7 +79,8 @@ struct attribute_group {
102617 struct attribute *, int);
102618 struct attribute **attrs;
102619 struct bin_attribute **bin_attrs;
102620 -};
102621 +} __do_const;
102622 +typedef struct attribute_group __no_const attribute_group_no_const;
102623
102624 /**
102625 * Use these macros to make defining attributes easier. See include/linux/device.h
102626 @@ -152,7 +154,8 @@ struct bin_attribute {
102627 char *, loff_t, size_t);
102628 int (*mmap)(struct file *, struct kobject *, struct bin_attribute *attr,
102629 struct vm_area_struct *vma);
102630 -};
102631 +} __do_const;
102632 +typedef struct bin_attribute __no_const bin_attribute_no_const;
102633
102634 /**
102635 * sysfs_bin_attr_init - initialize a dynamically allocated bin_attribute
102636 diff --git a/include/linux/sysrq.h b/include/linux/sysrq.h
102637 index 387fa7d..3fcde6b 100644
102638 --- a/include/linux/sysrq.h
102639 +++ b/include/linux/sysrq.h
102640 @@ -16,6 +16,7 @@
102641
102642 #include <linux/errno.h>
102643 #include <linux/types.h>
102644 +#include <linux/compiler.h>
102645
102646 /* Possible values of bitmask for enabling sysrq functions */
102647 /* 0x0001 is reserved for enable everything */
102648 @@ -33,7 +34,7 @@ struct sysrq_key_op {
102649 char *help_msg;
102650 char *action_msg;
102651 int enable_mask;
102652 -};
102653 +} __do_const;
102654
102655 #ifdef CONFIG_MAGIC_SYSRQ
102656
102657 diff --git a/include/linux/tcp.h b/include/linux/tcp.h
102658 index 48c3696..e7a7ba6 100644
102659 --- a/include/linux/tcp.h
102660 +++ b/include/linux/tcp.h
102661 @@ -63,13 +63,13 @@ struct tcp_fastopen_cookie {
102662
102663 /* This defines a selective acknowledgement block. */
102664 struct tcp_sack_block_wire {
102665 - __be32 start_seq;
102666 - __be32 end_seq;
102667 + __be32 start_seq __intentional_overflow(-1);
102668 + __be32 end_seq __intentional_overflow(-1);
102669 };
102670
102671 struct tcp_sack_block {
102672 - u32 start_seq;
102673 - u32 end_seq;
102674 + u32 start_seq __intentional_overflow(-1);
102675 + u32 end_seq __intentional_overflow(-1);
102676 };
102677
102678 /*These are used to set the sack_ok field in struct tcp_options_received */
102679 @@ -153,7 +153,7 @@ struct tcp_sock {
102680 * total number of segments in.
102681 */
102682 u32 rcv_nxt; /* What we want to receive next */
102683 - u32 copied_seq; /* Head of yet unread data */
102684 + u32 copied_seq __intentional_overflow(-1); /* Head of yet unread data */
102685 u32 rcv_wup; /* rcv_nxt on last window update sent */
102686 u32 snd_nxt; /* Next sequence we send */
102687 u32 segs_out; /* RFC4898 tcpEStatsPerfSegsOut
102688 @@ -248,7 +248,7 @@ struct tcp_sock {
102689 u32 prr_out; /* Total number of pkts sent during Recovery. */
102690
102691 u32 rcv_wnd; /* Current receiver window */
102692 - u32 write_seq; /* Tail(+1) of data held in tcp send buffer */
102693 + u32 write_seq __intentional_overflow(-1); /* Tail(+1) of data held in tcp send buffer */
102694 u32 notsent_lowat; /* TCP_NOTSENT_LOWAT */
102695 u32 pushed_seq; /* Last pushed seq, required to talk to windows */
102696 u32 lost_out; /* Lost packets */
102697 @@ -291,7 +291,7 @@ struct tcp_sock {
102698 int undo_retrans; /* number of undoable retransmissions. */
102699 u32 total_retrans; /* Total retransmits for entire connection */
102700
102701 - u32 urg_seq; /* Seq of received urgent pointer */
102702 + u32 urg_seq __intentional_overflow(-1); /* Seq of received urgent pointer */
102703 unsigned int keepalive_time; /* time before keep alive takes place */
102704 unsigned int keepalive_intvl; /* time interval between keep alive probes */
102705
102706 diff --git a/include/linux/thread_info.h b/include/linux/thread_info.h
102707 index ff307b5..f1a4468 100644
102708 --- a/include/linux/thread_info.h
102709 +++ b/include/linux/thread_info.h
102710 @@ -145,6 +145,13 @@ static inline bool test_and_clear_restore_sigmask(void)
102711 #error "no set_restore_sigmask() provided and default one won't work"
102712 #endif
102713
102714 +extern void __check_object_size(const void *ptr, unsigned long n, bool to_user, bool const_size);
102715 +
102716 +static inline void check_object_size(const void *ptr, unsigned long n, bool to_user)
102717 +{
102718 + __check_object_size(ptr, n, to_user, __builtin_constant_p(n));
102719 +}
102720 +
102721 #endif /* __KERNEL__ */
102722
102723 #endif /* _LINUX_THREAD_INFO_H */
102724 diff --git a/include/linux/tty.h b/include/linux/tty.h
102725 index ad6c891..93a8f45 100644
102726 --- a/include/linux/tty.h
102727 +++ b/include/linux/tty.h
102728 @@ -225,7 +225,7 @@ struct tty_port {
102729 const struct tty_port_operations *ops; /* Port operations */
102730 spinlock_t lock; /* Lock protecting tty field */
102731 int blocked_open; /* Waiting to open */
102732 - int count; /* Usage count */
102733 + atomic_t count; /* Usage count */
102734 wait_queue_head_t open_wait; /* Open waiters */
102735 wait_queue_head_t close_wait; /* Close waiters */
102736 wait_queue_head_t delta_msr_wait; /* Modem status change */
102737 @@ -313,7 +313,7 @@ struct tty_struct {
102738 /* If the tty has a pending do_SAK, queue it here - akpm */
102739 struct work_struct SAK_work;
102740 struct tty_port *port;
102741 -};
102742 +} __randomize_layout;
102743
102744 /* Each of a tty's open files has private_data pointing to tty_file_private */
102745 struct tty_file_private {
102746 @@ -573,7 +573,7 @@ extern int tty_port_open(struct tty_port *port,
102747 struct tty_struct *tty, struct file *filp);
102748 static inline int tty_port_users(struct tty_port *port)
102749 {
102750 - return port->count + port->blocked_open;
102751 + return atomic_read(&port->count) + port->blocked_open;
102752 }
102753
102754 extern int tty_register_ldisc(int disc, struct tty_ldisc_ops *new_ldisc);
102755 diff --git a/include/linux/tty_driver.h b/include/linux/tty_driver.h
102756 index 92e337c..f46757b 100644
102757 --- a/include/linux/tty_driver.h
102758 +++ b/include/linux/tty_driver.h
102759 @@ -291,7 +291,7 @@ struct tty_operations {
102760 void (*poll_put_char)(struct tty_driver *driver, int line, char ch);
102761 #endif
102762 const struct file_operations *proc_fops;
102763 -};
102764 +} __do_const __randomize_layout;
102765
102766 struct tty_driver {
102767 int magic; /* magic number for this structure */
102768 @@ -325,7 +325,7 @@ struct tty_driver {
102769
102770 const struct tty_operations *ops;
102771 struct list_head tty_drivers;
102772 -};
102773 +} __randomize_layout;
102774
102775 extern struct list_head tty_drivers;
102776
102777 diff --git a/include/linux/tty_ldisc.h b/include/linux/tty_ldisc.h
102778 index 00c9d68..bc0188b 100644
102779 --- a/include/linux/tty_ldisc.h
102780 +++ b/include/linux/tty_ldisc.h
102781 @@ -215,7 +215,7 @@ struct tty_ldisc_ops {
102782
102783 struct module *owner;
102784
102785 - int refcount;
102786 + atomic_t refcount;
102787 };
102788
102789 struct tty_ldisc {
102790 diff --git a/include/linux/types.h b/include/linux/types.h
102791 index 8715287..1be77ee 100644
102792 --- a/include/linux/types.h
102793 +++ b/include/linux/types.h
102794 @@ -176,10 +176,26 @@ typedef struct {
102795 int counter;
102796 } atomic_t;
102797
102798 +#ifdef CONFIG_PAX_REFCOUNT
102799 +typedef struct {
102800 + int counter;
102801 +} atomic_unchecked_t;
102802 +#else
102803 +typedef atomic_t atomic_unchecked_t;
102804 +#endif
102805 +
102806 #ifdef CONFIG_64BIT
102807 typedef struct {
102808 long counter;
102809 } atomic64_t;
102810 +
102811 +#ifdef CONFIG_PAX_REFCOUNT
102812 +typedef struct {
102813 + long counter;
102814 +} atomic64_unchecked_t;
102815 +#else
102816 +typedef atomic64_t atomic64_unchecked_t;
102817 +#endif
102818 #endif
102819
102820 struct list_head {
102821 diff --git a/include/linux/uaccess.h b/include/linux/uaccess.h
102822 index ae572c1..73bd4ec 100644
102823 --- a/include/linux/uaccess.h
102824 +++ b/include/linux/uaccess.h
102825 @@ -97,11 +97,11 @@ static inline unsigned long __copy_from_user_nocache(void *to,
102826 long ret; \
102827 mm_segment_t old_fs = get_fs(); \
102828 \
102829 - set_fs(KERNEL_DS); \
102830 pagefault_disable(); \
102831 - ret = __copy_from_user_inatomic(&(retval), (__force typeof(retval) __user *)(addr), sizeof(retval)); \
102832 - pagefault_enable(); \
102833 + set_fs(KERNEL_DS); \
102834 + ret = __copy_from_user_inatomic(&(retval), (typeof(retval) __force_user *)(addr), sizeof(retval)); \
102835 set_fs(old_fs); \
102836 + pagefault_enable(); \
102837 ret; \
102838 })
102839
102840 diff --git a/include/linux/uidgid.h b/include/linux/uidgid.h
102841 index 0383552..a0125dd 100644
102842 --- a/include/linux/uidgid.h
102843 +++ b/include/linux/uidgid.h
102844 @@ -187,4 +187,9 @@ static inline bool kgid_has_mapping(struct user_namespace *ns, kgid_t gid)
102845
102846 #endif /* CONFIG_USER_NS */
102847
102848 +#define GR_GLOBAL_UID(x) from_kuid_munged(&init_user_ns, (x))
102849 +#define GR_GLOBAL_GID(x) from_kgid_munged(&init_user_ns, (x))
102850 +#define gr_is_global_root(x) uid_eq((x), GLOBAL_ROOT_UID)
102851 +#define gr_is_global_nonroot(x) (!uid_eq((x), GLOBAL_ROOT_UID))
102852 +
102853 #endif /* _LINUX_UIDGID_H */
102854 diff --git a/include/linux/uio_driver.h b/include/linux/uio_driver.h
102855 index 32c0e83..671eb35 100644
102856 --- a/include/linux/uio_driver.h
102857 +++ b/include/linux/uio_driver.h
102858 @@ -67,7 +67,7 @@ struct uio_device {
102859 struct module *owner;
102860 struct device *dev;
102861 int minor;
102862 - atomic_t event;
102863 + atomic_unchecked_t event;
102864 struct fasync_struct *async_queue;
102865 wait_queue_head_t wait;
102866 struct uio_info *info;
102867 diff --git a/include/linux/unaligned/access_ok.h b/include/linux/unaligned/access_ok.h
102868 index 99c1b4d..562e6f3 100644
102869 --- a/include/linux/unaligned/access_ok.h
102870 +++ b/include/linux/unaligned/access_ok.h
102871 @@ -4,34 +4,34 @@
102872 #include <linux/kernel.h>
102873 #include <asm/byteorder.h>
102874
102875 -static inline u16 get_unaligned_le16(const void *p)
102876 +static inline u16 __intentional_overflow(-1) get_unaligned_le16(const void *p)
102877 {
102878 - return le16_to_cpup((__le16 *)p);
102879 + return le16_to_cpup((const __le16 *)p);
102880 }
102881
102882 -static inline u32 get_unaligned_le32(const void *p)
102883 +static inline u32 __intentional_overflow(-1) get_unaligned_le32(const void *p)
102884 {
102885 - return le32_to_cpup((__le32 *)p);
102886 + return le32_to_cpup((const __le32 *)p);
102887 }
102888
102889 -static inline u64 get_unaligned_le64(const void *p)
102890 +static inline u64 __intentional_overflow(-1) get_unaligned_le64(const void *p)
102891 {
102892 - return le64_to_cpup((__le64 *)p);
102893 + return le64_to_cpup((const __le64 *)p);
102894 }
102895
102896 -static inline u16 get_unaligned_be16(const void *p)
102897 +static inline u16 __intentional_overflow(-1) get_unaligned_be16(const void *p)
102898 {
102899 - return be16_to_cpup((__be16 *)p);
102900 + return be16_to_cpup((const __be16 *)p);
102901 }
102902
102903 -static inline u32 get_unaligned_be32(const void *p)
102904 +static inline u32 __intentional_overflow(-1) get_unaligned_be32(const void *p)
102905 {
102906 - return be32_to_cpup((__be32 *)p);
102907 + return be32_to_cpup((const __be32 *)p);
102908 }
102909
102910 -static inline u64 get_unaligned_be64(const void *p)
102911 +static inline u64 __intentional_overflow(-1) get_unaligned_be64(const void *p)
102912 {
102913 - return be64_to_cpup((__be64 *)p);
102914 + return be64_to_cpup((const __be64 *)p);
102915 }
102916
102917 static inline void put_unaligned_le16(u16 val, void *p)
102918 diff --git a/include/linux/usb.h b/include/linux/usb.h
102919 index 447fe29..07a9cf0 100644
102920 --- a/include/linux/usb.h
102921 +++ b/include/linux/usb.h
102922 @@ -363,7 +363,7 @@ struct usb_bus {
102923 * with the URB_SHORT_NOT_OK flag set.
102924 */
102925 unsigned no_sg_constraint:1; /* no sg constraint */
102926 - unsigned sg_tablesize; /* 0 or largest number of sg list entries */
102927 + unsigned short sg_tablesize; /* 0 or largest number of sg list entries */
102928
102929 int devnum_next; /* Next open device number in
102930 * round-robin allocation */
102931 @@ -592,7 +592,7 @@ struct usb_device {
102932 int maxchild;
102933
102934 u32 quirks;
102935 - atomic_t urbnum;
102936 + atomic_unchecked_t urbnum;
102937
102938 unsigned long active_duration;
102939
102940 @@ -1785,10 +1785,10 @@ void usb_sg_wait(struct usb_sg_request *io);
102941
102942 /* NOTE: these are not the standard USB_ENDPOINT_XFER_* values!! */
102943 /* (yet ... they're the values used by usbfs) */
102944 -#define PIPE_ISOCHRONOUS 0
102945 -#define PIPE_INTERRUPT 1
102946 -#define PIPE_CONTROL 2
102947 -#define PIPE_BULK 3
102948 +#define PIPE_ISOCHRONOUS 0U
102949 +#define PIPE_INTERRUPT 1U
102950 +#define PIPE_CONTROL 2U
102951 +#define PIPE_BULK 3U
102952
102953 #define usb_pipein(pipe) ((pipe) & USB_DIR_IN)
102954 #define usb_pipeout(pipe) (!usb_pipein(pipe))
102955 diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
102956 index c9aa779..46d6f69 100644
102957 --- a/include/linux/usb/hcd.h
102958 +++ b/include/linux/usb/hcd.h
102959 @@ -23,6 +23,7 @@
102960
102961 #include <linux/rwsem.h>
102962 #include <linux/interrupt.h>
102963 +#include <scsi/scsi_host.h>
102964
102965 #define MAX_TOPO_LEVEL 6
102966
102967 diff --git a/include/linux/usb/renesas_usbhs.h b/include/linux/usb/renesas_usbhs.h
102968 index 3dd5a78..ed69d7b 100644
102969 --- a/include/linux/usb/renesas_usbhs.h
102970 +++ b/include/linux/usb/renesas_usbhs.h
102971 @@ -39,7 +39,7 @@ enum {
102972 */
102973 struct renesas_usbhs_driver_callback {
102974 int (*notify_hotplug)(struct platform_device *pdev);
102975 -};
102976 +} __no_const;
102977
102978 /*
102979 * callback functions for platform
102980 diff --git a/include/linux/user_namespace.h b/include/linux/user_namespace.h
102981 index 8297e5b..0dfae27 100644
102982 --- a/include/linux/user_namespace.h
102983 +++ b/include/linux/user_namespace.h
102984 @@ -39,7 +39,7 @@ struct user_namespace {
102985 struct key *persistent_keyring_register;
102986 struct rw_semaphore persistent_keyring_register_sem;
102987 #endif
102988 -};
102989 +} __randomize_layout;
102990
102991 extern struct user_namespace init_user_ns;
102992
102993 diff --git a/include/linux/utsname.h b/include/linux/utsname.h
102994 index 5093f58..c103e58 100644
102995 --- a/include/linux/utsname.h
102996 +++ b/include/linux/utsname.h
102997 @@ -25,7 +25,7 @@ struct uts_namespace {
102998 struct new_utsname name;
102999 struct user_namespace *user_ns;
103000 struct ns_common ns;
103001 -};
103002 +} __randomize_layout;
103003 extern struct uts_namespace init_uts_ns;
103004
103005 #ifdef CONFIG_UTS_NS
103006 diff --git a/include/linux/vermagic.h b/include/linux/vermagic.h
103007 index 6f8fbcf..4efc177 100644
103008 --- a/include/linux/vermagic.h
103009 +++ b/include/linux/vermagic.h
103010 @@ -25,9 +25,42 @@
103011 #define MODULE_ARCH_VERMAGIC ""
103012 #endif
103013
103014 +#ifdef CONFIG_PAX_REFCOUNT
103015 +#define MODULE_PAX_REFCOUNT "REFCOUNT "
103016 +#else
103017 +#define MODULE_PAX_REFCOUNT ""
103018 +#endif
103019 +
103020 +#ifdef CONSTIFY_PLUGIN
103021 +#define MODULE_CONSTIFY_PLUGIN "CONSTIFY_PLUGIN "
103022 +#else
103023 +#define MODULE_CONSTIFY_PLUGIN ""
103024 +#endif
103025 +
103026 +#ifdef STACKLEAK_PLUGIN
103027 +#define MODULE_STACKLEAK_PLUGIN "STACKLEAK_PLUGIN "
103028 +#else
103029 +#define MODULE_STACKLEAK_PLUGIN ""
103030 +#endif
103031 +
103032 +#ifdef RANDSTRUCT_PLUGIN
103033 +#include <generated/randomize_layout_hash.h>
103034 +#define MODULE_RANDSTRUCT_PLUGIN "RANDSTRUCT_PLUGIN_" RANDSTRUCT_HASHED_SEED
103035 +#else
103036 +#define MODULE_RANDSTRUCT_PLUGIN
103037 +#endif
103038 +
103039 +#ifdef CONFIG_GRKERNSEC
103040 +#define MODULE_GRSEC "GRSEC "
103041 +#else
103042 +#define MODULE_GRSEC ""
103043 +#endif
103044 +
103045 #define VERMAGIC_STRING \
103046 UTS_RELEASE " " \
103047 MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
103048 MODULE_VERMAGIC_MODULE_UNLOAD MODULE_VERMAGIC_MODVERSIONS \
103049 - MODULE_ARCH_VERMAGIC
103050 + MODULE_ARCH_VERMAGIC \
103051 + MODULE_PAX_REFCOUNT MODULE_CONSTIFY_PLUGIN MODULE_STACKLEAK_PLUGIN \
103052 + MODULE_GRSEC MODULE_RANDSTRUCT_PLUGIN
103053
103054 diff --git a/include/linux/vga_switcheroo.h b/include/linux/vga_switcheroo.h
103055 index b483abd..af305ad 100644
103056 --- a/include/linux/vga_switcheroo.h
103057 +++ b/include/linux/vga_switcheroo.h
103058 @@ -63,9 +63,9 @@ int vga_switcheroo_get_client_state(struct pci_dev *dev);
103059
103060 void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic);
103061
103062 -int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain);
103063 +int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain);
103064 void vga_switcheroo_fini_domain_pm_ops(struct device *dev);
103065 -int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain);
103066 +int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain);
103067 #else
103068
103069 static inline void vga_switcheroo_unregister_client(struct pci_dev *dev) {}
103070 @@ -82,9 +82,9 @@ static inline int vga_switcheroo_get_client_state(struct pci_dev *dev) { return
103071
103072 static inline void vga_switcheroo_set_dynamic_switch(struct pci_dev *pdev, enum vga_switcheroo_state dynamic) {}
103073
103074 -static inline int vga_switcheroo_init_domain_pm_ops(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
103075 +static inline int vga_switcheroo_init_domain_pm_ops(struct device *dev, dev_pm_domain_no_const *domain) { return -EINVAL; }
103076 static inline void vga_switcheroo_fini_domain_pm_ops(struct device *dev) {}
103077 -static inline int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, struct dev_pm_domain *domain) { return -EINVAL; }
103078 +static inline int vga_switcheroo_init_domain_pm_optimus_hdmi_audio(struct device *dev, dev_pm_domain_no_const *domain) { return -EINVAL; }
103079
103080 #endif
103081 #endif /* _LINUX_VGA_SWITCHEROO_H_ */
103082 diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h
103083 index 0ec5983..66d8171 100644
103084 --- a/include/linux/vmalloc.h
103085 +++ b/include/linux/vmalloc.h
103086 @@ -18,6 +18,14 @@ struct vm_area_struct; /* vma defining user mapping in mm_types.h */
103087 #define VM_UNINITIALIZED 0x00000020 /* vm_struct is not fully initialized */
103088 #define VM_NO_GUARD 0x00000040 /* don't add guard page */
103089 #define VM_KASAN 0x00000080 /* has allocated kasan shadow memory */
103090 +
103091 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
103092 +#define VM_KERNEXEC 0x00000100 /* allocate from executable kernel memory range */
103093 +#endif
103094 +
103095 +#define VM_USERCOPY 0x00000200 /* allocation intended for copies to userland */
103096 +
103097 +
103098 /* bits [20..32] reserved for arch specific ioremap internals */
103099
103100 /*
103101 @@ -67,6 +75,7 @@ static inline void vmalloc_init(void)
103102 #endif
103103
103104 extern void *vmalloc(unsigned long size);
103105 +extern void *vmalloc_usercopy(unsigned long size);
103106 extern void *vzalloc(unsigned long size);
103107 extern void *vmalloc_user(unsigned long size);
103108 extern void *vmalloc_node(unsigned long size, int node);
103109 @@ -86,6 +95,10 @@ extern void *vmap(struct page **pages, unsigned int count,
103110 unsigned long flags, pgprot_t prot);
103111 extern void vunmap(const void *addr);
103112
103113 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
103114 +extern void unmap_process_stacks(struct task_struct *task);
103115 +#endif
103116 +
103117 extern int remap_vmalloc_range_partial(struct vm_area_struct *vma,
103118 unsigned long uaddr, void *kaddr,
103119 unsigned long size);
103120 @@ -150,7 +163,7 @@ extern void free_vm_area(struct vm_struct *area);
103121
103122 /* for /dev/kmem */
103123 extern long vread(char *buf, char *addr, unsigned long count);
103124 -extern long vwrite(char *buf, char *addr, unsigned long count);
103125 +extern long vwrite(char *buf, char *addr, unsigned long count) __size_overflow(3);
103126
103127 /*
103128 * Internals. Dont't use..
103129 @@ -182,22 +195,10 @@ pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms)
103130 # endif
103131 #endif
103132
103133 -struct vmalloc_info {
103134 - unsigned long used;
103135 - unsigned long largest_chunk;
103136 -};
103137 -
103138 #ifdef CONFIG_MMU
103139 #define VMALLOC_TOTAL (VMALLOC_END - VMALLOC_START)
103140 -extern void get_vmalloc_info(struct vmalloc_info *vmi);
103141 #else
103142 -
103143 #define VMALLOC_TOTAL 0UL
103144 -#define get_vmalloc_info(vmi) \
103145 -do { \
103146 - (vmi)->used = 0; \
103147 - (vmi)->largest_chunk = 0; \
103148 -} while (0)
103149 #endif
103150
103151 #endif /* _LINUX_VMALLOC_H */
103152 diff --git a/include/linux/vmstat.h b/include/linux/vmstat.h
103153 index 82e7db7..f8ce3d0 100644
103154 --- a/include/linux/vmstat.h
103155 +++ b/include/linux/vmstat.h
103156 @@ -108,18 +108,18 @@ static inline void vm_events_fold_cpu(int cpu)
103157 /*
103158 * Zone based page accounting with per cpu differentials.
103159 */
103160 -extern atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
103161 +extern atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS];
103162
103163 static inline void zone_page_state_add(long x, struct zone *zone,
103164 enum zone_stat_item item)
103165 {
103166 - atomic_long_add(x, &zone->vm_stat[item]);
103167 - atomic_long_add(x, &vm_stat[item]);
103168 + atomic_long_add_unchecked(x, &zone->vm_stat[item]);
103169 + atomic_long_add_unchecked(x, &vm_stat[item]);
103170 }
103171
103172 -static inline unsigned long global_page_state(enum zone_stat_item item)
103173 +static inline unsigned long __intentional_overflow(-1) global_page_state(enum zone_stat_item item)
103174 {
103175 - long x = atomic_long_read(&vm_stat[item]);
103176 + long x = atomic_long_read_unchecked(&vm_stat[item]);
103177 #ifdef CONFIG_SMP
103178 if (x < 0)
103179 x = 0;
103180 @@ -127,10 +127,10 @@ static inline unsigned long global_page_state(enum zone_stat_item item)
103181 return x;
103182 }
103183
103184 -static inline unsigned long zone_page_state(struct zone *zone,
103185 +static inline unsigned long __intentional_overflow(-1) zone_page_state(struct zone *zone,
103186 enum zone_stat_item item)
103187 {
103188 - long x = atomic_long_read(&zone->vm_stat[item]);
103189 + long x = atomic_long_read_unchecked(&zone->vm_stat[item]);
103190 #ifdef CONFIG_SMP
103191 if (x < 0)
103192 x = 0;
103193 @@ -147,7 +147,7 @@ static inline unsigned long zone_page_state(struct zone *zone,
103194 static inline unsigned long zone_page_state_snapshot(struct zone *zone,
103195 enum zone_stat_item item)
103196 {
103197 - long x = atomic_long_read(&zone->vm_stat[item]);
103198 + long x = atomic_long_read_unchecked(&zone->vm_stat[item]);
103199
103200 #ifdef CONFIG_SMP
103201 int cpu;
103202 @@ -234,14 +234,14 @@ static inline void __mod_zone_page_state(struct zone *zone,
103203
103204 static inline void __inc_zone_state(struct zone *zone, enum zone_stat_item item)
103205 {
103206 - atomic_long_inc(&zone->vm_stat[item]);
103207 - atomic_long_inc(&vm_stat[item]);
103208 + atomic_long_inc_unchecked(&zone->vm_stat[item]);
103209 + atomic_long_inc_unchecked(&vm_stat[item]);
103210 }
103211
103212 static inline void __dec_zone_state(struct zone *zone, enum zone_stat_item item)
103213 {
103214 - atomic_long_dec(&zone->vm_stat[item]);
103215 - atomic_long_dec(&vm_stat[item]);
103216 + atomic_long_dec_unchecked(&zone->vm_stat[item]);
103217 + atomic_long_dec_unchecked(&vm_stat[item]);
103218 }
103219
103220 static inline void __inc_zone_page_state(struct page *page,
103221 diff --git a/include/linux/xattr.h b/include/linux/xattr.h
103222 index 91b0a68..0e9adf6 100644
103223 --- a/include/linux/xattr.h
103224 +++ b/include/linux/xattr.h
103225 @@ -28,7 +28,7 @@ struct xattr_handler {
103226 size_t size, int handler_flags);
103227 int (*set)(struct dentry *dentry, const char *name, const void *buffer,
103228 size_t size, int flags, int handler_flags);
103229 -};
103230 +} __do_const;
103231
103232 struct xattr {
103233 const char *name;
103234 @@ -37,6 +37,9 @@ struct xattr {
103235 };
103236
103237 ssize_t xattr_getsecurity(struct inode *, const char *, void *, size_t);
103238 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
103239 +ssize_t pax_getxattr(struct dentry *, void *, size_t);
103240 +#endif
103241 ssize_t vfs_getxattr(struct dentry *, const char *, void *, size_t);
103242 ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size);
103243 int __vfs_setxattr_noperm(struct dentry *, const char *, const void *, size_t, int);
103244 diff --git a/include/linux/zlib.h b/include/linux/zlib.h
103245 index 92dbbd3..13ab0b3 100644
103246 --- a/include/linux/zlib.h
103247 +++ b/include/linux/zlib.h
103248 @@ -31,6 +31,7 @@
103249 #define _ZLIB_H
103250
103251 #include <linux/zconf.h>
103252 +#include <linux/compiler.h>
103253
103254 /* zlib deflate based on ZLIB_VERSION "1.1.3" */
103255 /* zlib inflate based on ZLIB_VERSION "1.2.3" */
103256 @@ -179,7 +180,7 @@ typedef z_stream *z_streamp;
103257
103258 /* basic functions */
103259
103260 -extern int zlib_deflate_workspacesize (int windowBits, int memLevel);
103261 +extern int zlib_deflate_workspacesize (int windowBits, int memLevel) __intentional_overflow(0);
103262 /*
103263 Returns the number of bytes that needs to be allocated for a per-
103264 stream workspace with the specified parameters. A pointer to this
103265 diff --git a/include/media/v4l2-dev.h b/include/media/v4l2-dev.h
103266 index acbcd2f..c3abe84 100644
103267 --- a/include/media/v4l2-dev.h
103268 +++ b/include/media/v4l2-dev.h
103269 @@ -74,7 +74,7 @@ struct v4l2_file_operations {
103270 int (*mmap) (struct file *, struct vm_area_struct *);
103271 int (*open) (struct file *);
103272 int (*release) (struct file *);
103273 -};
103274 +} __do_const;
103275
103276 /*
103277 * Newer version of video_device, handled by videodev2.c
103278 diff --git a/include/media/v4l2-device.h b/include/media/v4l2-device.h
103279 index 9c58157..d86ebf5 100644
103280 --- a/include/media/v4l2-device.h
103281 +++ b/include/media/v4l2-device.h
103282 @@ -93,7 +93,7 @@ int __must_check v4l2_device_register(struct device *dev, struct v4l2_device *v4
103283 this function returns 0. If the name ends with a digit (e.g. cx18),
103284 then the name will be set to cx18-0 since cx180 looks really odd. */
103285 int v4l2_device_set_name(struct v4l2_device *v4l2_dev, const char *basename,
103286 - atomic_t *instance);
103287 + atomic_unchecked_t *instance);
103288
103289 /* Set v4l2_dev->dev to NULL. Call when the USB parent disconnects.
103290 Since the parent disappears this ensures that v4l2_dev doesn't have an
103291 diff --git a/include/net/9p/transport.h b/include/net/9p/transport.h
103292 index 5122b5e..598b440 100644
103293 --- a/include/net/9p/transport.h
103294 +++ b/include/net/9p/transport.h
103295 @@ -62,7 +62,7 @@ struct p9_trans_module {
103296 int (*cancelled)(struct p9_client *, struct p9_req_t *req);
103297 int (*zc_request)(struct p9_client *, struct p9_req_t *,
103298 struct iov_iter *, struct iov_iter *, int , int, int);
103299 -};
103300 +} __do_const;
103301
103302 void v9fs_register_trans(struct p9_trans_module *m);
103303 void v9fs_unregister_trans(struct p9_trans_module *m);
103304 diff --git a/include/net/af_unix.h b/include/net/af_unix.h
103305 index cb1b9bb..56b3ee0 100644
103306 --- a/include/net/af_unix.h
103307 +++ b/include/net/af_unix.h
103308 @@ -36,7 +36,7 @@ struct unix_skb_parms {
103309 u32 secid; /* Security ID */
103310 #endif
103311 u32 consumed;
103312 -};
103313 +} __randomize_layout;
103314
103315 #define UNIXCB(skb) (*(struct unix_skb_parms *)&((skb)->cb))
103316
103317 diff --git a/include/net/bluetooth/l2cap.h b/include/net/bluetooth/l2cap.h
103318 index 2239a37..a83461f 100644
103319 --- a/include/net/bluetooth/l2cap.h
103320 +++ b/include/net/bluetooth/l2cap.h
103321 @@ -609,7 +609,7 @@ struct l2cap_ops {
103322 struct sk_buff *(*alloc_skb) (struct l2cap_chan *chan,
103323 unsigned long hdr_len,
103324 unsigned long len, int nb);
103325 -};
103326 +} __do_const;
103327
103328 struct l2cap_conn {
103329 struct hci_conn *hcon;
103330 diff --git a/include/net/bonding.h b/include/net/bonding.h
103331 index 20defc0..3072903 100644
103332 --- a/include/net/bonding.h
103333 +++ b/include/net/bonding.h
103334 @@ -661,7 +661,7 @@ extern struct rtnl_link_ops bond_link_ops;
103335
103336 static inline void bond_tx_drop(struct net_device *dev, struct sk_buff *skb)
103337 {
103338 - atomic_long_inc(&dev->tx_dropped);
103339 + atomic_long_inc_unchecked(&dev->tx_dropped);
103340 dev_kfree_skb_any(skb);
103341 }
103342
103343 diff --git a/include/net/caif/cfctrl.h b/include/net/caif/cfctrl.h
103344 index f2ae33d..c457cf0 100644
103345 --- a/include/net/caif/cfctrl.h
103346 +++ b/include/net/caif/cfctrl.h
103347 @@ -52,7 +52,7 @@ struct cfctrl_rsp {
103348 void (*radioset_rsp)(void);
103349 void (*reject_rsp)(struct cflayer *layer, u8 linkid,
103350 struct cflayer *client_layer);
103351 -};
103352 +} __no_const;
103353
103354 /* Link Setup Parameters for CAIF-Links. */
103355 struct cfctrl_link_param {
103356 @@ -101,8 +101,8 @@ struct cfctrl_request_info {
103357 struct cfctrl {
103358 struct cfsrvl serv;
103359 struct cfctrl_rsp res;
103360 - atomic_t req_seq_no;
103361 - atomic_t rsp_seq_no;
103362 + atomic_unchecked_t req_seq_no;
103363 + atomic_unchecked_t rsp_seq_no;
103364 struct list_head list;
103365 /* Protects from simultaneous access to first_req list */
103366 spinlock_t info_list_lock;
103367 diff --git a/include/net/flow.h b/include/net/flow.h
103368 index 8109a15..504466d 100644
103369 --- a/include/net/flow.h
103370 +++ b/include/net/flow.h
103371 @@ -231,6 +231,6 @@ void flow_cache_fini(struct net *net);
103372
103373 void flow_cache_flush(struct net *net);
103374 void flow_cache_flush_deferred(struct net *net);
103375 -extern atomic_t flow_cache_genid;
103376 +extern atomic_unchecked_t flow_cache_genid;
103377
103378 #endif
103379 diff --git a/include/net/genetlink.h b/include/net/genetlink.h
103380 index a9af1cc..1f3fa7b 100644
103381 --- a/include/net/genetlink.h
103382 +++ b/include/net/genetlink.h
103383 @@ -128,7 +128,7 @@ struct genl_ops {
103384 u8 cmd;
103385 u8 internal_flags;
103386 u8 flags;
103387 -};
103388 +} __do_const;
103389
103390 int __genl_register_family(struct genl_family *family);
103391
103392 diff --git a/include/net/gro_cells.h b/include/net/gro_cells.h
103393 index 0f712c0..cd762c4 100644
103394 --- a/include/net/gro_cells.h
103395 +++ b/include/net/gro_cells.h
103396 @@ -27,7 +27,7 @@ static inline void gro_cells_receive(struct gro_cells *gcells, struct sk_buff *s
103397 cell = this_cpu_ptr(gcells->cells);
103398
103399 if (skb_queue_len(&cell->napi_skbs) > netdev_max_backlog) {
103400 - atomic_long_inc(&dev->rx_dropped);
103401 + atomic_long_inc_unchecked(&dev->rx_dropped);
103402 kfree_skb(skb);
103403 return;
103404 }
103405 diff --git a/include/net/inet_connection_sock.h b/include/net/inet_connection_sock.h
103406 index 0320bbb..938789c 100644
103407 --- a/include/net/inet_connection_sock.h
103408 +++ b/include/net/inet_connection_sock.h
103409 @@ -63,7 +63,7 @@ struct inet_connection_sock_af_ops {
103410 int (*bind_conflict)(const struct sock *sk,
103411 const struct inet_bind_bucket *tb, bool relax);
103412 void (*mtu_reduced)(struct sock *sk);
103413 -};
103414 +} __do_const;
103415
103416 /** inet_connection_sock - INET connection oriented sock
103417 *
103418 diff --git a/include/net/inet_sock.h b/include/net/inet_sock.h
103419 index 47eb67b..0e733b2 100644
103420 --- a/include/net/inet_sock.h
103421 +++ b/include/net/inet_sock.h
103422 @@ -43,7 +43,7 @@
103423 struct ip_options {
103424 __be32 faddr;
103425 __be32 nexthop;
103426 - unsigned char optlen;
103427 + unsigned char optlen __intentional_overflow(0);
103428 unsigned char srr;
103429 unsigned char rr;
103430 unsigned char ts;
103431 diff --git a/include/net/inetpeer.h b/include/net/inetpeer.h
103432 index d5332dd..10a5c3c 100644
103433 --- a/include/net/inetpeer.h
103434 +++ b/include/net/inetpeer.h
103435 @@ -48,7 +48,7 @@ struct inet_peer {
103436 */
103437 union {
103438 struct {
103439 - atomic_t rid; /* Frag reception counter */
103440 + atomic_unchecked_t rid; /* Frag reception counter */
103441 };
103442 struct rcu_head rcu;
103443 struct inet_peer *gc_next;
103444 diff --git a/include/net/ip.h b/include/net/ip.h
103445 index d5fe9f2..8da10ed 100644
103446 --- a/include/net/ip.h
103447 +++ b/include/net/ip.h
103448 @@ -319,7 +319,7 @@ static inline unsigned int ip_skb_dst_mtu(const struct sk_buff *skb)
103449 }
103450 }
103451
103452 -u32 ip_idents_reserve(u32 hash, int segs);
103453 +u32 ip_idents_reserve(u32 hash, int segs) __intentional_overflow(-1);
103454 void __ip_select_ident(struct net *net, struct iphdr *iph, int segs);
103455
103456 static inline void ip_select_ident_segs(struct net *net, struct sk_buff *skb,
103457 diff --git a/include/net/ip_fib.h b/include/net/ip_fib.h
103458 index 5fa643b..d871e20 100644
103459 --- a/include/net/ip_fib.h
103460 +++ b/include/net/ip_fib.h
103461 @@ -170,7 +170,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh);
103462
103463 #define FIB_RES_SADDR(net, res) \
103464 ((FIB_RES_NH(res).nh_saddr_genid == \
103465 - atomic_read(&(net)->ipv4.dev_addr_genid)) ? \
103466 + atomic_read_unchecked(&(net)->ipv4.dev_addr_genid)) ? \
103467 FIB_RES_NH(res).nh_saddr : \
103468 fib_info_update_nh_saddr((net), &FIB_RES_NH(res)))
103469 #define FIB_RES_GW(res) (FIB_RES_NH(res).nh_gw)
103470 diff --git a/include/net/ip_vs.h b/include/net/ip_vs.h
103471 index 4e3731e..a242e28 100644
103472 --- a/include/net/ip_vs.h
103473 +++ b/include/net/ip_vs.h
103474 @@ -551,7 +551,7 @@ struct ip_vs_conn {
103475 struct ip_vs_conn *control; /* Master control connection */
103476 atomic_t n_control; /* Number of controlled ones */
103477 struct ip_vs_dest *dest; /* real server */
103478 - atomic_t in_pkts; /* incoming packet counter */
103479 + atomic_unchecked_t in_pkts; /* incoming packet counter */
103480
103481 /* Packet transmitter for different forwarding methods. If it
103482 * mangles the packet, it must return NF_DROP or better NF_STOLEN,
103483 @@ -699,7 +699,7 @@ struct ip_vs_dest {
103484 __be16 port; /* port number of the server */
103485 union nf_inet_addr addr; /* IP address of the server */
103486 volatile unsigned int flags; /* dest status flags */
103487 - atomic_t conn_flags; /* flags to copy to conn */
103488 + atomic_unchecked_t conn_flags; /* flags to copy to conn */
103489 atomic_t weight; /* server weight */
103490
103491 atomic_t refcnt; /* reference counter */
103492 @@ -946,11 +946,11 @@ struct netns_ipvs {
103493 /* ip_vs_lblc */
103494 int sysctl_lblc_expiration;
103495 struct ctl_table_header *lblc_ctl_header;
103496 - struct ctl_table *lblc_ctl_table;
103497 + ctl_table_no_const *lblc_ctl_table;
103498 /* ip_vs_lblcr */
103499 int sysctl_lblcr_expiration;
103500 struct ctl_table_header *lblcr_ctl_header;
103501 - struct ctl_table *lblcr_ctl_table;
103502 + ctl_table_no_const *lblcr_ctl_table;
103503 /* ip_vs_est */
103504 struct list_head est_list; /* estimator list */
103505 spinlock_t est_lock;
103506 diff --git a/include/net/irda/ircomm_tty.h b/include/net/irda/ircomm_tty.h
103507 index 8d4f588..2e37ad2 100644
103508 --- a/include/net/irda/ircomm_tty.h
103509 +++ b/include/net/irda/ircomm_tty.h
103510 @@ -33,6 +33,7 @@
103511 #include <linux/termios.h>
103512 #include <linux/timer.h>
103513 #include <linux/tty.h> /* struct tty_struct */
103514 +#include <asm/local.h>
103515
103516 #include <net/irda/irias_object.h>
103517 #include <net/irda/ircomm_core.h>
103518 diff --git a/include/net/iucv/af_iucv.h b/include/net/iucv/af_iucv.h
103519 index 714cc9a..ea05f3e 100644
103520 --- a/include/net/iucv/af_iucv.h
103521 +++ b/include/net/iucv/af_iucv.h
103522 @@ -149,7 +149,7 @@ struct iucv_skb_cb {
103523 struct iucv_sock_list {
103524 struct hlist_head head;
103525 rwlock_t lock;
103526 - atomic_t autobind_name;
103527 + atomic_unchecked_t autobind_name;
103528 };
103529
103530 unsigned int iucv_sock_poll(struct file *file, struct socket *sock,
103531 diff --git a/include/net/llc_c_ac.h b/include/net/llc_c_ac.h
103532 index f3be818..bf46196 100644
103533 --- a/include/net/llc_c_ac.h
103534 +++ b/include/net/llc_c_ac.h
103535 @@ -87,7 +87,7 @@
103536 #define LLC_CONN_AC_STOP_SENDACK_TMR 70
103537 #define LLC_CONN_AC_START_SENDACK_TMR_IF_NOT_RUNNING 71
103538
103539 -typedef int (*llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
103540 +typedef int (* const llc_conn_action_t)(struct sock *sk, struct sk_buff *skb);
103541
103542 int llc_conn_ac_clear_remote_busy(struct sock *sk, struct sk_buff *skb);
103543 int llc_conn_ac_conn_ind(struct sock *sk, struct sk_buff *skb);
103544 diff --git a/include/net/llc_c_ev.h b/include/net/llc_c_ev.h
103545 index 3948cf1..83b28c4 100644
103546 --- a/include/net/llc_c_ev.h
103547 +++ b/include/net/llc_c_ev.h
103548 @@ -125,8 +125,8 @@ static __inline__ struct llc_conn_state_ev *llc_conn_ev(struct sk_buff *skb)
103549 return (struct llc_conn_state_ev *)skb->cb;
103550 }
103551
103552 -typedef int (*llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
103553 -typedef int (*llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
103554 +typedef int (* const llc_conn_ev_t)(struct sock *sk, struct sk_buff *skb);
103555 +typedef int (* const llc_conn_ev_qfyr_t)(struct sock *sk, struct sk_buff *skb);
103556
103557 int llc_conn_ev_conn_req(struct sock *sk, struct sk_buff *skb);
103558 int llc_conn_ev_data_req(struct sock *sk, struct sk_buff *skb);
103559 diff --git a/include/net/llc_c_st.h b/include/net/llc_c_st.h
103560 index 48f3f89..0e92c50 100644
103561 --- a/include/net/llc_c_st.h
103562 +++ b/include/net/llc_c_st.h
103563 @@ -37,7 +37,7 @@ struct llc_conn_state_trans {
103564 u8 next_state;
103565 const llc_conn_ev_qfyr_t *ev_qualifiers;
103566 const llc_conn_action_t *ev_actions;
103567 -};
103568 +} __do_const;
103569
103570 struct llc_conn_state {
103571 u8 current_state;
103572 diff --git a/include/net/llc_s_ac.h b/include/net/llc_s_ac.h
103573 index a61b98c..aade1eb 100644
103574 --- a/include/net/llc_s_ac.h
103575 +++ b/include/net/llc_s_ac.h
103576 @@ -23,7 +23,7 @@
103577 #define SAP_ACT_TEST_IND 9
103578
103579 /* All action functions must look like this */
103580 -typedef int (*llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
103581 +typedef int (* const llc_sap_action_t)(struct llc_sap *sap, struct sk_buff *skb);
103582
103583 int llc_sap_action_unitdata_ind(struct llc_sap *sap, struct sk_buff *skb);
103584 int llc_sap_action_send_ui(struct llc_sap *sap, struct sk_buff *skb);
103585 diff --git a/include/net/llc_s_st.h b/include/net/llc_s_st.h
103586 index c4359e2..76dbc4a 100644
103587 --- a/include/net/llc_s_st.h
103588 +++ b/include/net/llc_s_st.h
103589 @@ -20,7 +20,7 @@ struct llc_sap_state_trans {
103590 llc_sap_ev_t ev;
103591 u8 next_state;
103592 const llc_sap_action_t *ev_actions;
103593 -};
103594 +} __do_const;
103595
103596 struct llc_sap_state {
103597 u8 curr_state;
103598 diff --git a/include/net/mac80211.h b/include/net/mac80211.h
103599 index 6b1077c..7b72f67 100644
103600 --- a/include/net/mac80211.h
103601 +++ b/include/net/mac80211.h
103602 @@ -5106,7 +5106,7 @@ struct ieee80211_tx_rate_control {
103603 struct sk_buff *skb;
103604 struct ieee80211_tx_rate reported_rate;
103605 bool rts, short_preamble;
103606 - u8 max_rate_idx;
103607 + s8 max_rate_idx;
103608 u32 rate_idx_mask;
103609 u8 *rate_idx_mcs_mask;
103610 bool bss;
103611 @@ -5143,7 +5143,7 @@ struct rate_control_ops {
103612 void (*remove_sta_debugfs)(void *priv, void *priv_sta);
103613
103614 u32 (*get_expected_throughput)(void *priv_sta);
103615 -};
103616 +} __do_const;
103617
103618 static inline int rate_supported(struct ieee80211_sta *sta,
103619 enum ieee80211_band band,
103620 diff --git a/include/net/neighbour.h b/include/net/neighbour.h
103621 index bd33e66..6508d00 100644
103622 --- a/include/net/neighbour.h
103623 +++ b/include/net/neighbour.h
103624 @@ -162,7 +162,7 @@ struct neigh_ops {
103625 void (*error_report)(struct neighbour *, struct sk_buff *);
103626 int (*output)(struct neighbour *, struct sk_buff *);
103627 int (*connected_output)(struct neighbour *, struct sk_buff *);
103628 -};
103629 +} __do_const;
103630
103631 struct pneigh_entry {
103632 struct pneigh_entry *next;
103633 @@ -216,7 +216,7 @@ struct neigh_table {
103634 struct neigh_statistics __percpu *stats;
103635 struct neigh_hash_table __rcu *nht;
103636 struct pneigh_entry **phash_buckets;
103637 -};
103638 +} __randomize_layout;
103639
103640 enum {
103641 NEIGH_ARP_TABLE = 0,
103642 diff --git a/include/net/net_namespace.h b/include/net/net_namespace.h
103643 index e951453..0685f5b 100644
103644 --- a/include/net/net_namespace.h
103645 +++ b/include/net/net_namespace.h
103646 @@ -53,7 +53,7 @@ struct net {
103647 */
103648 spinlock_t rules_mod_lock;
103649
103650 - atomic64_t cookie_gen;
103651 + atomic64_unchecked_t cookie_gen;
103652
103653 struct list_head list; /* list of network namespaces */
103654 struct list_head cleanup_list; /* namespaces on death row */
103655 @@ -135,8 +135,8 @@ struct net {
103656 struct netns_mpls mpls;
103657 #endif
103658 struct sock *diag_nlsk;
103659 - atomic_t fnhe_genid;
103660 -};
103661 + atomic_unchecked_t fnhe_genid;
103662 +} __randomize_layout;
103663
103664 #include <linux/seq_file_net.h>
103665
103666 @@ -271,7 +271,11 @@ static inline struct net *read_pnet(const possible_net_t *pnet)
103667 #define __net_init __init
103668 #define __net_exit __exit_refok
103669 #define __net_initdata __initdata
103670 +#ifdef CONSTIFY_PLUGIN
103671 #define __net_initconst __initconst
103672 +#else
103673 +#define __net_initconst __initdata
103674 +#endif
103675 #endif
103676
103677 int peernet2id_alloc(struct net *net, struct net *peer);
103678 @@ -286,7 +290,7 @@ struct pernet_operations {
103679 void (*exit_batch)(struct list_head *net_exit_list);
103680 int *id;
103681 size_t size;
103682 -};
103683 +} __do_const;
103684
103685 /*
103686 * Use these carefully. If you implement a network device and it
103687 @@ -334,12 +338,12 @@ static inline void unregister_net_sysctl_table(struct ctl_table_header *header)
103688
103689 static inline int rt_genid_ipv4(struct net *net)
103690 {
103691 - return atomic_read(&net->ipv4.rt_genid);
103692 + return atomic_read_unchecked(&net->ipv4.rt_genid);
103693 }
103694
103695 static inline void rt_genid_bump_ipv4(struct net *net)
103696 {
103697 - atomic_inc(&net->ipv4.rt_genid);
103698 + atomic_inc_unchecked(&net->ipv4.rt_genid);
103699 }
103700
103701 extern void (*__fib6_flush_trees)(struct net *net);
103702 @@ -366,12 +370,12 @@ static inline void rt_genid_bump_all(struct net *net)
103703
103704 static inline int fnhe_genid(struct net *net)
103705 {
103706 - return atomic_read(&net->fnhe_genid);
103707 + return atomic_read_unchecked(&net->fnhe_genid);
103708 }
103709
103710 static inline void fnhe_genid_bump(struct net *net)
103711 {
103712 - atomic_inc(&net->fnhe_genid);
103713 + atomic_inc_unchecked(&net->fnhe_genid);
103714 }
103715
103716 #endif /* __NET_NET_NAMESPACE_H */
103717 diff --git a/include/net/netlink.h b/include/net/netlink.h
103718 index 2a5dbcc..8243656 100644
103719 --- a/include/net/netlink.h
103720 +++ b/include/net/netlink.h
103721 @@ -521,7 +521,7 @@ static inline void nlmsg_trim(struct sk_buff *skb, const void *mark)
103722 {
103723 if (mark) {
103724 WARN_ON((unsigned char *) mark < skb->data);
103725 - skb_trim(skb, (unsigned char *) mark - skb->data);
103726 + skb_trim(skb, (const unsigned char *) mark - skb->data);
103727 }
103728 }
103729
103730 diff --git a/include/net/netns/conntrack.h b/include/net/netns/conntrack.h
103731 index 723b61c..4386367 100644
103732 --- a/include/net/netns/conntrack.h
103733 +++ b/include/net/netns/conntrack.h
103734 @@ -14,10 +14,10 @@ struct nf_conntrack_ecache;
103735 struct nf_proto_net {
103736 #ifdef CONFIG_SYSCTL
103737 struct ctl_table_header *ctl_table_header;
103738 - struct ctl_table *ctl_table;
103739 + ctl_table_no_const *ctl_table;
103740 #ifdef CONFIG_NF_CONNTRACK_PROC_COMPAT
103741 struct ctl_table_header *ctl_compat_header;
103742 - struct ctl_table *ctl_compat_table;
103743 + ctl_table_no_const *ctl_compat_table;
103744 #endif
103745 #endif
103746 unsigned int users;
103747 @@ -60,7 +60,7 @@ struct nf_ip_net {
103748 struct nf_icmp_net icmpv6;
103749 #if defined(CONFIG_SYSCTL) && defined(CONFIG_NF_CONNTRACK_PROC_COMPAT)
103750 struct ctl_table_header *ctl_table_header;
103751 - struct ctl_table *ctl_table;
103752 + ctl_table_no_const *ctl_table;
103753 #endif
103754 };
103755
103756 diff --git a/include/net/netns/ipv4.h b/include/net/netns/ipv4.h
103757 index c68926b..106c147 100644
103758 --- a/include/net/netns/ipv4.h
103759 +++ b/include/net/netns/ipv4.h
103760 @@ -93,7 +93,7 @@ struct netns_ipv4 {
103761
103762 struct ping_group_range ping_group_range;
103763
103764 - atomic_t dev_addr_genid;
103765 + atomic_unchecked_t dev_addr_genid;
103766
103767 #ifdef CONFIG_SYSCTL
103768 unsigned long *sysctl_local_reserved_ports;
103769 @@ -107,6 +107,6 @@ struct netns_ipv4 {
103770 struct fib_rules_ops *mr_rules_ops;
103771 #endif
103772 #endif
103773 - atomic_t rt_genid;
103774 + atomic_unchecked_t rt_genid;
103775 };
103776 #endif
103777 diff --git a/include/net/netns/ipv6.h b/include/net/netns/ipv6.h
103778 index 8d93544..05c3e89 100644
103779 --- a/include/net/netns/ipv6.h
103780 +++ b/include/net/netns/ipv6.h
103781 @@ -79,8 +79,8 @@ struct netns_ipv6 {
103782 struct fib_rules_ops *mr6_rules_ops;
103783 #endif
103784 #endif
103785 - atomic_t dev_addr_genid;
103786 - atomic_t fib6_sernum;
103787 + atomic_unchecked_t dev_addr_genid;
103788 + atomic_unchecked_t fib6_sernum;
103789 };
103790
103791 #if IS_ENABLED(CONFIG_NF_DEFRAG_IPV6)
103792 diff --git a/include/net/netns/xfrm.h b/include/net/netns/xfrm.h
103793 index 730d82a..045f2c4 100644
103794 --- a/include/net/netns/xfrm.h
103795 +++ b/include/net/netns/xfrm.h
103796 @@ -78,7 +78,7 @@ struct netns_xfrm {
103797
103798 /* flow cache part */
103799 struct flow_cache flow_cache_global;
103800 - atomic_t flow_cache_genid;
103801 + atomic_unchecked_t flow_cache_genid;
103802 struct list_head flow_cache_gc_list;
103803 spinlock_t flow_cache_gc_lock;
103804 struct work_struct flow_cache_gc_work;
103805 diff --git a/include/net/ping.h b/include/net/ping.h
103806 index ac80cb4..ec1ed09 100644
103807 --- a/include/net/ping.h
103808 +++ b/include/net/ping.h
103809 @@ -54,7 +54,7 @@ struct ping_iter_state {
103810
103811 extern struct proto ping_prot;
103812 #if IS_ENABLED(CONFIG_IPV6)
103813 -extern struct pingv6_ops pingv6_ops;
103814 +extern struct pingv6_ops *pingv6_ops;
103815 #endif
103816
103817 struct pingfakehdr {
103818 diff --git a/include/net/protocol.h b/include/net/protocol.h
103819 index d6fcc1f..ca277058 100644
103820 --- a/include/net/protocol.h
103821 +++ b/include/net/protocol.h
103822 @@ -49,7 +49,7 @@ struct net_protocol {
103823 * socket lookup?
103824 */
103825 icmp_strict_tag_validation:1;
103826 -};
103827 +} __do_const;
103828
103829 #if IS_ENABLED(CONFIG_IPV6)
103830 struct inet6_protocol {
103831 @@ -62,7 +62,7 @@ struct inet6_protocol {
103832 u8 type, u8 code, int offset,
103833 __be32 info);
103834 unsigned int flags; /* INET6_PROTO_xxx */
103835 -};
103836 +} __do_const;
103837
103838 #define INET6_PROTO_NOPOLICY 0x1
103839 #define INET6_PROTO_FINAL 0x2
103840 diff --git a/include/net/rtnetlink.h b/include/net/rtnetlink.h
103841 index 343d922..7959cde 100644
103842 --- a/include/net/rtnetlink.h
103843 +++ b/include/net/rtnetlink.h
103844 @@ -95,7 +95,7 @@ struct rtnl_link_ops {
103845 const struct net_device *dev,
103846 const struct net_device *slave_dev);
103847 struct net *(*get_link_net)(const struct net_device *dev);
103848 -};
103849 +} __do_const;
103850
103851 int __rtnl_link_register(struct rtnl_link_ops *ops);
103852 void __rtnl_link_unregister(struct rtnl_link_ops *ops);
103853 diff --git a/include/net/sctp/checksum.h b/include/net/sctp/checksum.h
103854 index 4a5b9a3..ca27d73 100644
103855 --- a/include/net/sctp/checksum.h
103856 +++ b/include/net/sctp/checksum.h
103857 @@ -61,8 +61,8 @@ static inline __le32 sctp_compute_cksum(const struct sk_buff *skb,
103858 unsigned int offset)
103859 {
103860 struct sctphdr *sh = sctp_hdr(skb);
103861 - __le32 ret, old = sh->checksum;
103862 - const struct skb_checksum_ops ops = {
103863 + __le32 ret, old = sh->checksum;
103864 + static const struct skb_checksum_ops ops = {
103865 .update = sctp_csum_update,
103866 .combine = sctp_csum_combine,
103867 };
103868 diff --git a/include/net/sctp/sm.h b/include/net/sctp/sm.h
103869 index 487ef34..d457f98 100644
103870 --- a/include/net/sctp/sm.h
103871 +++ b/include/net/sctp/sm.h
103872 @@ -80,7 +80,7 @@ typedef void (sctp_timer_event_t) (unsigned long);
103873 typedef struct {
103874 sctp_state_fn_t *fn;
103875 const char *name;
103876 -} sctp_sm_table_entry_t;
103877 +} __do_const sctp_sm_table_entry_t;
103878
103879 /* A naming convention of "sctp_sf_xxx" applies to all the state functions
103880 * currently in use.
103881 @@ -292,7 +292,7 @@ __u32 sctp_generate_tag(const struct sctp_endpoint *);
103882 __u32 sctp_generate_tsn(const struct sctp_endpoint *);
103883
103884 /* Extern declarations for major data structures. */
103885 -extern sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES];
103886 +extern sctp_timer_event_t * const sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES];
103887
103888
103889 /* Get the size of a DATA chunk payload. */
103890 diff --git a/include/net/sctp/structs.h b/include/net/sctp/structs.h
103891 index 495c87e..5b327ff 100644
103892 --- a/include/net/sctp/structs.h
103893 +++ b/include/net/sctp/structs.h
103894 @@ -513,7 +513,7 @@ struct sctp_pf {
103895 void (*to_sk_saddr)(union sctp_addr *, struct sock *sk);
103896 void (*to_sk_daddr)(union sctp_addr *, struct sock *sk);
103897 struct sctp_af *af;
103898 -};
103899 +} __do_const;
103900
103901
103902 /* Structure to track chunk fragments that have been acked, but peer
103903 diff --git a/include/net/sock.h b/include/net/sock.h
103904 index 4ca4c3f..1573f47 100644
103905 --- a/include/net/sock.h
103906 +++ b/include/net/sock.h
103907 @@ -198,7 +198,7 @@ struct sock_common {
103908 struct in6_addr skc_v6_rcv_saddr;
103909 #endif
103910
103911 - atomic64_t skc_cookie;
103912 + atomic64_unchecked_t skc_cookie;
103913
103914 /*
103915 * fields between dontcopy_begin/dontcopy_end
103916 @@ -364,7 +364,7 @@ struct sock {
103917 unsigned int sk_napi_id;
103918 unsigned int sk_ll_usec;
103919 #endif
103920 - atomic_t sk_drops;
103921 + atomic_unchecked_t sk_drops;
103922 int sk_rcvbuf;
103923
103924 struct sk_filter __rcu *sk_filter;
103925 @@ -1046,7 +1046,7 @@ struct proto {
103926 void (*destroy_cgroup)(struct mem_cgroup *memcg);
103927 struct cg_proto *(*proto_cgroup)(struct mem_cgroup *memcg);
103928 #endif
103929 -};
103930 +} __randomize_layout;
103931
103932 /*
103933 * Bits in struct cg_proto.flags
103934 @@ -1219,7 +1219,7 @@ static inline void memcg_memory_allocated_sub(struct cg_proto *prot,
103935 page_counter_uncharge(&prot->memory_allocated, amt);
103936 }
103937
103938 -static inline long
103939 +static inline long __intentional_overflow(-1)
103940 sk_memory_allocated(const struct sock *sk)
103941 {
103942 struct proto *prot = sk->sk_prot;
103943 @@ -1784,7 +1784,7 @@ static inline void sk_nocaps_add(struct sock *sk, netdev_features_t flags)
103944 }
103945
103946 static inline int skb_do_copy_data_nocache(struct sock *sk, struct sk_buff *skb,
103947 - struct iov_iter *from, char *to,
103948 + struct iov_iter *from, unsigned char *to,
103949 int copy, int offset)
103950 {
103951 if (skb->ip_summed == CHECKSUM_NONE) {
103952 @@ -2031,7 +2031,7 @@ static inline void sk_stream_moderate_sndbuf(struct sock *sk)
103953 }
103954 }
103955
103956 -struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp,
103957 +struct sk_buff * __intentional_overflow(0) sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp,
103958 bool force_schedule);
103959
103960 /**
103961 @@ -2107,7 +2107,7 @@ struct sock_skb_cb {
103962 static inline void
103963 sock_skb_set_dropcount(const struct sock *sk, struct sk_buff *skb)
103964 {
103965 - SOCK_SKB_CB(skb)->dropcount = atomic_read(&sk->sk_drops);
103966 + SOCK_SKB_CB(skb)->dropcount = atomic_read_unchecked(&sk->sk_drops);
103967 }
103968
103969 void __sock_recv_timestamp(struct msghdr *msg, struct sock *sk,
103970 diff --git a/include/net/tcp.h b/include/net/tcp.h
103971 index 950cfec..0bf9d85 100644
103972 --- a/include/net/tcp.h
103973 +++ b/include/net/tcp.h
103974 @@ -546,7 +546,7 @@ void tcp_retransmit_timer(struct sock *sk);
103975 void tcp_xmit_retransmit_queue(struct sock *);
103976 void tcp_simple_retransmit(struct sock *);
103977 int tcp_trim_head(struct sock *, struct sk_buff *, u32);
103978 -int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int, gfp_t);
103979 +int tcp_fragment(struct sock *, struct sk_buff *, u32, unsigned int, gfp_t) __intentional_overflow(3);
103980
103981 void tcp_send_probe0(struct sock *);
103982 void tcp_send_partial(struct sock *);
103983 @@ -724,8 +724,8 @@ static inline u32 tcp_skb_timestamp(const struct sk_buff *skb)
103984 * If this grows please adjust skbuff.h:skbuff->cb[xxx] size appropriately.
103985 */
103986 struct tcp_skb_cb {
103987 - __u32 seq; /* Starting sequence number */
103988 - __u32 end_seq; /* SEQ + FIN + SYN + datalen */
103989 + __u32 seq __intentional_overflow(-1); /* Starting sequence number */
103990 + __u32 end_seq __intentional_overflow(-1); /* SEQ + FIN + SYN + datalen */
103991 union {
103992 /* Note : tcp_tw_isn is used in input path only
103993 * (isn chosen by tcp_timewait_state_process())
103994 @@ -753,7 +753,7 @@ struct tcp_skb_cb {
103995
103996 __u8 ip_dsfield; /* IPv4 tos or IPv6 dsfield */
103997 /* 1 byte hole */
103998 - __u32 ack_seq; /* Sequence number ACK'd */
103999 + __u32 ack_seq __intentional_overflow(-1); /* Sequence number ACK'd */
104000 union {
104001 struct inet_skb_parm h4;
104002 #if IS_ENABLED(CONFIG_IPV6)
104003 diff --git a/include/net/xfrm.h b/include/net/xfrm.h
104004 index f0ee97e..73e2b5a 100644
104005 --- a/include/net/xfrm.h
104006 +++ b/include/net/xfrm.h
104007 @@ -284,7 +284,6 @@ struct xfrm_dst;
104008 struct xfrm_policy_afinfo {
104009 unsigned short family;
104010 struct dst_ops *dst_ops;
104011 - void (*garbage_collect)(struct net *net);
104012 struct dst_entry *(*dst_lookup)(struct net *net, int tos,
104013 const xfrm_address_t *saddr,
104014 const xfrm_address_t *daddr);
104015 @@ -302,7 +301,7 @@ struct xfrm_policy_afinfo {
104016 struct net_device *dev,
104017 const struct flowi *fl);
104018 struct dst_entry *(*blackhole_route)(struct net *net, struct dst_entry *orig);
104019 -};
104020 +} __do_const;
104021
104022 int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo);
104023 int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo);
104024 @@ -341,7 +340,7 @@ struct xfrm_state_afinfo {
104025 int (*transport_finish)(struct sk_buff *skb,
104026 int async);
104027 void (*local_error)(struct sk_buff *skb, u32 mtu);
104028 -};
104029 +} __do_const;
104030
104031 int xfrm_state_register_afinfo(struct xfrm_state_afinfo *afinfo);
104032 int xfrm_state_unregister_afinfo(struct xfrm_state_afinfo *afinfo);
104033 @@ -436,7 +435,7 @@ struct xfrm_mode {
104034 struct module *owner;
104035 unsigned int encap;
104036 int flags;
104037 -};
104038 +} __do_const;
104039
104040 /* Flags for xfrm_mode. */
104041 enum {
104042 @@ -531,7 +530,7 @@ struct xfrm_policy {
104043 struct timer_list timer;
104044
104045 struct flow_cache_object flo;
104046 - atomic_t genid;
104047 + atomic_unchecked_t genid;
104048 u32 priority;
104049 u32 index;
104050 struct xfrm_mark mark;
104051 @@ -1164,6 +1163,7 @@ static inline void xfrm_sk_free_policy(struct sock *sk)
104052 }
104053
104054 void xfrm_garbage_collect(struct net *net);
104055 +void xfrm_garbage_collect_deferred(struct net *net);
104056
104057 #else
104058
104059 @@ -1202,6 +1202,9 @@ static inline int xfrm6_policy_check_reverse(struct sock *sk, int dir,
104060 static inline void xfrm_garbage_collect(struct net *net)
104061 {
104062 }
104063 +static inline void xfrm_garbage_collect_deferred(struct net *net)
104064 +{
104065 +}
104066 #endif
104067
104068 static __inline__
104069 diff --git a/include/rdma/iw_cm.h b/include/rdma/iw_cm.h
104070 index 036bd27..c0d7f17 100644
104071 --- a/include/rdma/iw_cm.h
104072 +++ b/include/rdma/iw_cm.h
104073 @@ -123,7 +123,7 @@ struct iw_cm_verbs {
104074 int backlog);
104075
104076 int (*destroy_listen)(struct iw_cm_id *cm_id);
104077 -};
104078 +} __no_const;
104079
104080 /**
104081 * iw_create_cm_id - Create an IW CM identifier.
104082 diff --git a/include/scsi/libfc.h b/include/scsi/libfc.h
104083 index 93d14da..734b3d8 100644
104084 --- a/include/scsi/libfc.h
104085 +++ b/include/scsi/libfc.h
104086 @@ -771,6 +771,7 @@ struct libfc_function_template {
104087 */
104088 void (*disc_stop_final) (struct fc_lport *);
104089 };
104090 +typedef struct libfc_function_template __no_const libfc_function_template_no_const;
104091
104092 /**
104093 * struct fc_disc - Discovery context
104094 @@ -875,7 +876,7 @@ struct fc_lport {
104095 struct fc_vport *vport;
104096
104097 /* Operational Information */
104098 - struct libfc_function_template tt;
104099 + libfc_function_template_no_const tt;
104100 u8 link_up;
104101 u8 qfull;
104102 enum fc_lport_state state;
104103 diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h
104104 index ae84b22..7954097 100644
104105 --- a/include/scsi/scsi_device.h
104106 +++ b/include/scsi/scsi_device.h
104107 @@ -185,9 +185,9 @@ struct scsi_device {
104108 unsigned int max_device_blocked; /* what device_blocked counts down from */
104109 #define SCSI_DEFAULT_DEVICE_BLOCKED 3
104110
104111 - atomic_t iorequest_cnt;
104112 - atomic_t iodone_cnt;
104113 - atomic_t ioerr_cnt;
104114 + atomic_unchecked_t iorequest_cnt;
104115 + atomic_unchecked_t iodone_cnt;
104116 + atomic_unchecked_t ioerr_cnt;
104117
104118 struct device sdev_gendev,
104119 sdev_dev;
104120 diff --git a/include/scsi/scsi_driver.h b/include/scsi/scsi_driver.h
104121 index 891a658..fcd68df 100644
104122 --- a/include/scsi/scsi_driver.h
104123 +++ b/include/scsi/scsi_driver.h
104124 @@ -14,7 +14,7 @@ struct scsi_driver {
104125 void (*rescan)(struct device *);
104126 int (*init_command)(struct scsi_cmnd *);
104127 void (*uninit_command)(struct scsi_cmnd *);
104128 - int (*done)(struct scsi_cmnd *);
104129 + unsigned int (*done)(struct scsi_cmnd *);
104130 int (*eh_action)(struct scsi_cmnd *, int);
104131 };
104132 #define to_scsi_driver(drv) \
104133 diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h
104134 index 784bc2c..855a04c 100644
104135 --- a/include/scsi/scsi_transport_fc.h
104136 +++ b/include/scsi/scsi_transport_fc.h
104137 @@ -757,7 +757,8 @@ struct fc_function_template {
104138 unsigned long show_host_system_hostname:1;
104139
104140 unsigned long disable_target_scan:1;
104141 -};
104142 +} __do_const;
104143 +typedef struct fc_function_template __no_const fc_function_template_no_const;
104144
104145
104146 /**
104147 diff --git a/include/scsi/sg.h b/include/scsi/sg.h
104148 index 3afec70..b196b43 100644
104149 --- a/include/scsi/sg.h
104150 +++ b/include/scsi/sg.h
104151 @@ -52,7 +52,7 @@ typedef struct sg_io_hdr
104152 or scatter gather list */
104153 unsigned char __user *cmdp; /* [i], [*i] points to command to perform */
104154 void __user *sbp; /* [i], [*o] points to sense_buffer memory */
104155 - unsigned int timeout; /* [i] MAX_UINT->no timeout (unit: millisec) */
104156 + unsigned int timeout __intentional_overflow(-1); /* [i] MAX_UINT->no timeout (unit: millisec) */
104157 unsigned int flags; /* [i] 0 -> default, see SG_FLAG... */
104158 int pack_id; /* [i->o] unused internally (normally) */
104159 void __user * usr_ptr; /* [i->o] unused internally */
104160 diff --git a/include/sound/compress_driver.h b/include/sound/compress_driver.h
104161 index fa1d055..3647940 100644
104162 --- a/include/sound/compress_driver.h
104163 +++ b/include/sound/compress_driver.h
104164 @@ -130,7 +130,7 @@ struct snd_compr_ops {
104165 struct snd_compr_caps *caps);
104166 int (*get_codec_caps) (struct snd_compr_stream *stream,
104167 struct snd_compr_codec_caps *codec);
104168 -};
104169 +} __no_const;
104170
104171 /**
104172 * struct snd_compr: Compressed device
104173 diff --git a/include/sound/soc.h b/include/sound/soc.h
104174 index 334d0d2..a4327ba 100644
104175 --- a/include/sound/soc.h
104176 +++ b/include/sound/soc.h
104177 @@ -885,7 +885,7 @@ struct snd_soc_codec_driver {
104178 enum snd_soc_dapm_type, int);
104179
104180 bool ignore_pmdown_time; /* Doesn't benefit from pmdown delay */
104181 -};
104182 +} __do_const;
104183
104184 /* SoC platform interface */
104185 struct snd_soc_platform_driver {
104186 @@ -912,7 +912,7 @@ struct snd_soc_platform_driver {
104187 const struct snd_compr_ops *compr_ops;
104188
104189 int (*bespoke_trigger)(struct snd_pcm_substream *, int);
104190 -};
104191 +} __do_const;
104192
104193 struct snd_soc_dai_link_component {
104194 const char *name;
104195 diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
104196 index 17ae2d6..2c06382 100644
104197 --- a/include/target/target_core_base.h
104198 +++ b/include/target/target_core_base.h
104199 @@ -751,7 +751,7 @@ struct se_device {
104200 atomic_long_t write_bytes;
104201 /* Active commands on this virtual SE device */
104202 atomic_t simple_cmds;
104203 - atomic_t dev_ordered_id;
104204 + atomic_unchecked_t dev_ordered_id;
104205 atomic_t dev_ordered_sync;
104206 atomic_t dev_qf_count;
104207 u32 export_count;
104208 diff --git a/include/trace/events/fs.h b/include/trace/events/fs.h
104209 new file mode 100644
104210 index 0000000..fb634b7
104211 --- /dev/null
104212 +++ b/include/trace/events/fs.h
104213 @@ -0,0 +1,53 @@
104214 +#undef TRACE_SYSTEM
104215 +#define TRACE_SYSTEM fs
104216 +
104217 +#if !defined(_TRACE_FS_H) || defined(TRACE_HEADER_MULTI_READ)
104218 +#define _TRACE_FS_H
104219 +
104220 +#include <linux/fs.h>
104221 +#include <linux/tracepoint.h>
104222 +
104223 +TRACE_EVENT(do_sys_open,
104224 +
104225 + TP_PROTO(const char *filename, int flags, int mode),
104226 +
104227 + TP_ARGS(filename, flags, mode),
104228 +
104229 + TP_STRUCT__entry(
104230 + __string( filename, filename )
104231 + __field( int, flags )
104232 + __field( int, mode )
104233 + ),
104234 +
104235 + TP_fast_assign(
104236 + __assign_str(filename, filename);
104237 + __entry->flags = flags;
104238 + __entry->mode = mode;
104239 + ),
104240 +
104241 + TP_printk("\"%s\" %x %o",
104242 + __get_str(filename), __entry->flags, __entry->mode)
104243 +);
104244 +
104245 +TRACE_EVENT(open_exec,
104246 +
104247 + TP_PROTO(const char *filename),
104248 +
104249 + TP_ARGS(filename),
104250 +
104251 + TP_STRUCT__entry(
104252 + __string( filename, filename )
104253 + ),
104254 +
104255 + TP_fast_assign(
104256 + __assign_str(filename, filename);
104257 + ),
104258 +
104259 + TP_printk("\"%s\"",
104260 + __get_str(filename))
104261 +);
104262 +
104263 +#endif /* _TRACE_FS_H */
104264 +
104265 +/* This part must be outside protection */
104266 +#include <trace/define_trace.h>
104267 diff --git a/include/trace/events/irq.h b/include/trace/events/irq.h
104268 index ff8f6c0..6b6bae3 100644
104269 --- a/include/trace/events/irq.h
104270 +++ b/include/trace/events/irq.h
104271 @@ -51,7 +51,7 @@ SOFTIRQ_NAME_LIST
104272 */
104273 TRACE_EVENT(irq_handler_entry,
104274
104275 - TP_PROTO(int irq, struct irqaction *action),
104276 + TP_PROTO(int irq, const struct irqaction *action),
104277
104278 TP_ARGS(irq, action),
104279
104280 @@ -81,7 +81,7 @@ TRACE_EVENT(irq_handler_entry,
104281 */
104282 TRACE_EVENT(irq_handler_exit,
104283
104284 - TP_PROTO(int irq, struct irqaction *action, int ret),
104285 + TP_PROTO(int irq, const struct irqaction *action, int ret),
104286
104287 TP_ARGS(irq, action, ret),
104288
104289 diff --git a/include/uapi/drm/i915_drm.h b/include/uapi/drm/i915_drm.h
104290 index db809b7..05a44aa 100644
104291 --- a/include/uapi/drm/i915_drm.h
104292 +++ b/include/uapi/drm/i915_drm.h
104293 @@ -354,6 +354,7 @@ typedef struct drm_i915_irq_wait {
104294 #define I915_PARAM_REVISION 32
104295 #define I915_PARAM_SUBSLICE_TOTAL 33
104296 #define I915_PARAM_EU_TOTAL 34
104297 +#define I915_PARAM_HAS_LEGACY_CONTEXT 35
104298
104299 typedef struct drm_i915_getparam {
104300 int param;
104301 diff --git a/include/uapi/linux/a.out.h b/include/uapi/linux/a.out.h
104302 index 7caf44c..23c6f27 100644
104303 --- a/include/uapi/linux/a.out.h
104304 +++ b/include/uapi/linux/a.out.h
104305 @@ -39,6 +39,14 @@ enum machine_type {
104306 M_MIPS2 = 152 /* MIPS R6000/R4000 binary */
104307 };
104308
104309 +/* Constants for the N_FLAGS field */
104310 +#define F_PAX_PAGEEXEC 1 /* Paging based non-executable pages */
104311 +#define F_PAX_EMUTRAMP 2 /* Emulate trampolines */
104312 +#define F_PAX_MPROTECT 4 /* Restrict mprotect() */
104313 +#define F_PAX_RANDMMAP 8 /* Randomize mmap() base */
104314 +/*#define F_PAX_RANDEXEC 16*/ /* Randomize ET_EXEC base */
104315 +#define F_PAX_SEGMEXEC 32 /* Segmentation based non-executable pages */
104316 +
104317 #if !defined (N_MAGIC)
104318 #define N_MAGIC(exec) ((exec).a_info & 0xffff)
104319 #endif
104320 diff --git a/include/uapi/linux/bcache.h b/include/uapi/linux/bcache.h
104321 index 22b6ad3..aeba37e 100644
104322 --- a/include/uapi/linux/bcache.h
104323 +++ b/include/uapi/linux/bcache.h
104324 @@ -5,6 +5,7 @@
104325 * Bcache on disk data structures
104326 */
104327
104328 +#include <linux/compiler.h>
104329 #include <asm/types.h>
104330
104331 #define BITMASK(name, type, field, offset, size) \
104332 @@ -20,8 +21,8 @@ static inline void SET_##name(type *k, __u64 v) \
104333 /* Btree keys - all units are in sectors */
104334
104335 struct bkey {
104336 - __u64 high;
104337 - __u64 low;
104338 + __u64 high __intentional_overflow(-1);
104339 + __u64 low __intentional_overflow(-1);
104340 __u64 ptr[];
104341 };
104342
104343 diff --git a/include/uapi/linux/byteorder/little_endian.h b/include/uapi/linux/byteorder/little_endian.h
104344 index d876736..ccce5c0 100644
104345 --- a/include/uapi/linux/byteorder/little_endian.h
104346 +++ b/include/uapi/linux/byteorder/little_endian.h
104347 @@ -42,51 +42,51 @@
104348
104349 static inline __le64 __cpu_to_le64p(const __u64 *p)
104350 {
104351 - return (__force __le64)*p;
104352 + return (__force const __le64)*p;
104353 }
104354 -static inline __u64 __le64_to_cpup(const __le64 *p)
104355 +static inline __u64 __intentional_overflow(-1) __le64_to_cpup(const __le64 *p)
104356 {
104357 - return (__force __u64)*p;
104358 + return (__force const __u64)*p;
104359 }
104360 static inline __le32 __cpu_to_le32p(const __u32 *p)
104361 {
104362 - return (__force __le32)*p;
104363 + return (__force const __le32)*p;
104364 }
104365 static inline __u32 __le32_to_cpup(const __le32 *p)
104366 {
104367 - return (__force __u32)*p;
104368 + return (__force const __u32)*p;
104369 }
104370 static inline __le16 __cpu_to_le16p(const __u16 *p)
104371 {
104372 - return (__force __le16)*p;
104373 + return (__force const __le16)*p;
104374 }
104375 static inline __u16 __le16_to_cpup(const __le16 *p)
104376 {
104377 - return (__force __u16)*p;
104378 + return (__force const __u16)*p;
104379 }
104380 static inline __be64 __cpu_to_be64p(const __u64 *p)
104381 {
104382 - return (__force __be64)__swab64p(p);
104383 + return (__force const __be64)__swab64p(p);
104384 }
104385 static inline __u64 __be64_to_cpup(const __be64 *p)
104386 {
104387 - return __swab64p((__u64 *)p);
104388 + return __swab64p((const __u64 *)p);
104389 }
104390 static inline __be32 __cpu_to_be32p(const __u32 *p)
104391 {
104392 - return (__force __be32)__swab32p(p);
104393 + return (__force const __be32)__swab32p(p);
104394 }
104395 -static inline __u32 __be32_to_cpup(const __be32 *p)
104396 +static inline __u32 __intentional_overflow(-1) __be32_to_cpup(const __be32 *p)
104397 {
104398 - return __swab32p((__u32 *)p);
104399 + return __swab32p((const __u32 *)p);
104400 }
104401 static inline __be16 __cpu_to_be16p(const __u16 *p)
104402 {
104403 - return (__force __be16)__swab16p(p);
104404 + return (__force const __be16)__swab16p(p);
104405 }
104406 static inline __u16 __be16_to_cpup(const __be16 *p)
104407 {
104408 - return __swab16p((__u16 *)p);
104409 + return __swab16p((const __u16 *)p);
104410 }
104411 #define __cpu_to_le64s(x) do { (void)(x); } while (0)
104412 #define __le64_to_cpus(x) do { (void)(x); } while (0)
104413 diff --git a/include/uapi/linux/connector.h b/include/uapi/linux/connector.h
104414 index 4cb2835..cfbc4e2 100644
104415 --- a/include/uapi/linux/connector.h
104416 +++ b/include/uapi/linux/connector.h
104417 @@ -69,7 +69,7 @@ struct cb_id {
104418 struct cn_msg {
104419 struct cb_id id;
104420
104421 - __u32 seq;
104422 + __u32 seq __intentional_overflow(-1);
104423 __u32 ack;
104424
104425 __u16 len; /* Length of the following data */
104426 diff --git a/include/uapi/linux/elf.h b/include/uapi/linux/elf.h
104427 index 71e1d0e..6cc9caf 100644
104428 --- a/include/uapi/linux/elf.h
104429 +++ b/include/uapi/linux/elf.h
104430 @@ -37,6 +37,17 @@ typedef __s64 Elf64_Sxword;
104431 #define PT_GNU_EH_FRAME 0x6474e550
104432
104433 #define PT_GNU_STACK (PT_LOOS + 0x474e551)
104434 +#define PT_GNU_RELRO (PT_LOOS + 0x474e552)
104435 +
104436 +#define PT_PAX_FLAGS (PT_LOOS + 0x5041580)
104437 +
104438 +/* Constants for the e_flags field */
104439 +#define EF_PAX_PAGEEXEC 1 /* Paging based non-executable pages */
104440 +#define EF_PAX_EMUTRAMP 2 /* Emulate trampolines */
104441 +#define EF_PAX_MPROTECT 4 /* Restrict mprotect() */
104442 +#define EF_PAX_RANDMMAP 8 /* Randomize mmap() base */
104443 +/*#define EF_PAX_RANDEXEC 16*/ /* Randomize ET_EXEC base */
104444 +#define EF_PAX_SEGMEXEC 32 /* Segmentation based non-executable pages */
104445
104446 /*
104447 * Extended Numbering
104448 @@ -94,6 +105,8 @@ typedef __s64 Elf64_Sxword;
104449 #define DT_DEBUG 21
104450 #define DT_TEXTREL 22
104451 #define DT_JMPREL 23
104452 +#define DT_FLAGS 30
104453 + #define DF_TEXTREL 0x00000004
104454 #define DT_ENCODING 32
104455 #define OLD_DT_LOOS 0x60000000
104456 #define DT_LOOS 0x6000000d
104457 @@ -240,6 +253,19 @@ typedef struct elf64_hdr {
104458 #define PF_W 0x2
104459 #define PF_X 0x1
104460
104461 +#define PF_PAGEEXEC (1U << 4) /* Enable PAGEEXEC */
104462 +#define PF_NOPAGEEXEC (1U << 5) /* Disable PAGEEXEC */
104463 +#define PF_SEGMEXEC (1U << 6) /* Enable SEGMEXEC */
104464 +#define PF_NOSEGMEXEC (1U << 7) /* Disable SEGMEXEC */
104465 +#define PF_MPROTECT (1U << 8) /* Enable MPROTECT */
104466 +#define PF_NOMPROTECT (1U << 9) /* Disable MPROTECT */
104467 +/*#define PF_RANDEXEC (1U << 10)*/ /* Enable RANDEXEC */
104468 +/*#define PF_NORANDEXEC (1U << 11)*/ /* Disable RANDEXEC */
104469 +#define PF_EMUTRAMP (1U << 12) /* Enable EMUTRAMP */
104470 +#define PF_NOEMUTRAMP (1U << 13) /* Disable EMUTRAMP */
104471 +#define PF_RANDMMAP (1U << 14) /* Enable RANDMMAP */
104472 +#define PF_NORANDMMAP (1U << 15) /* Disable RANDMMAP */
104473 +
104474 typedef struct elf32_phdr{
104475 Elf32_Word p_type;
104476 Elf32_Off p_offset;
104477 @@ -332,6 +358,8 @@ typedef struct elf64_shdr {
104478 #define EI_OSABI 7
104479 #define EI_PAD 8
104480
104481 +#define EI_PAX 14
104482 +
104483 #define ELFMAG0 0x7f /* EI_MAG */
104484 #define ELFMAG1 'E'
104485 #define ELFMAG2 'L'
104486 diff --git a/include/uapi/linux/personality.h b/include/uapi/linux/personality.h
104487 index aa169c4..6a2771d 100644
104488 --- a/include/uapi/linux/personality.h
104489 +++ b/include/uapi/linux/personality.h
104490 @@ -30,6 +30,7 @@ enum {
104491 #define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC | \
104492 ADDR_NO_RANDOMIZE | \
104493 ADDR_COMPAT_LAYOUT | \
104494 + ADDR_LIMIT_3GB | \
104495 MMAP_PAGE_ZERO)
104496
104497 /*
104498 diff --git a/include/uapi/linux/screen_info.h b/include/uapi/linux/screen_info.h
104499 index 7530e74..e714828 100644
104500 --- a/include/uapi/linux/screen_info.h
104501 +++ b/include/uapi/linux/screen_info.h
104502 @@ -43,7 +43,8 @@ struct screen_info {
104503 __u16 pages; /* 0x32 */
104504 __u16 vesa_attributes; /* 0x34 */
104505 __u32 capabilities; /* 0x36 */
104506 - __u8 _reserved[6]; /* 0x3a */
104507 + __u16 vesapm_size; /* 0x3a */
104508 + __u8 _reserved[4]; /* 0x3c */
104509 } __attribute__((packed));
104510
104511 #define VIDEO_TYPE_MDA 0x10 /* Monochrome Text Display */
104512 diff --git a/include/uapi/linux/swab.h b/include/uapi/linux/swab.h
104513 index 0e011eb..82681b1 100644
104514 --- a/include/uapi/linux/swab.h
104515 +++ b/include/uapi/linux/swab.h
104516 @@ -43,7 +43,7 @@
104517 * ___swab16, ___swab32, ___swab64, ___swahw32, ___swahb32
104518 */
104519
104520 -static inline __attribute_const__ __u16 __fswab16(__u16 val)
104521 +static inline __intentional_overflow(-1) __attribute_const__ __u16 __fswab16(__u16 val)
104522 {
104523 #ifdef __HAVE_BUILTIN_BSWAP16__
104524 return __builtin_bswap16(val);
104525 @@ -54,7 +54,7 @@ static inline __attribute_const__ __u16 __fswab16(__u16 val)
104526 #endif
104527 }
104528
104529 -static inline __attribute_const__ __u32 __fswab32(__u32 val)
104530 +static inline __intentional_overflow(-1) __attribute_const__ __u32 __fswab32(__u32 val)
104531 {
104532 #ifdef __HAVE_BUILTIN_BSWAP32__
104533 return __builtin_bswap32(val);
104534 @@ -65,7 +65,7 @@ static inline __attribute_const__ __u32 __fswab32(__u32 val)
104535 #endif
104536 }
104537
104538 -static inline __attribute_const__ __u64 __fswab64(__u64 val)
104539 +static inline __intentional_overflow(-1) __attribute_const__ __u64 __fswab64(__u64 val)
104540 {
104541 #ifdef __HAVE_BUILTIN_BSWAP64__
104542 return __builtin_bswap64(val);
104543 diff --git a/include/uapi/linux/xattr.h b/include/uapi/linux/xattr.h
104544 index 1590c49..5eab462 100644
104545 --- a/include/uapi/linux/xattr.h
104546 +++ b/include/uapi/linux/xattr.h
104547 @@ -73,5 +73,9 @@
104548 #define XATTR_POSIX_ACL_DEFAULT "posix_acl_default"
104549 #define XATTR_NAME_POSIX_ACL_DEFAULT XATTR_SYSTEM_PREFIX XATTR_POSIX_ACL_DEFAULT
104550
104551 +/* User namespace */
104552 +#define XATTR_PAX_PREFIX XATTR_USER_PREFIX "pax."
104553 +#define XATTR_PAX_FLAGS_SUFFIX "flags"
104554 +#define XATTR_NAME_PAX_FLAGS XATTR_PAX_PREFIX XATTR_PAX_FLAGS_SUFFIX
104555
104556 #endif /* _UAPI_LINUX_XATTR_H */
104557 diff --git a/include/video/udlfb.h b/include/video/udlfb.h
104558 index f9466fa..f4e2b81 100644
104559 --- a/include/video/udlfb.h
104560 +++ b/include/video/udlfb.h
104561 @@ -53,10 +53,10 @@ struct dlfb_data {
104562 u32 pseudo_palette[256];
104563 int blank_mode; /*one of FB_BLANK_ */
104564 /* blit-only rendering path metrics, exposed through sysfs */
104565 - atomic_t bytes_rendered; /* raw pixel-bytes driver asked to render */
104566 - atomic_t bytes_identical; /* saved effort with backbuffer comparison */
104567 - atomic_t bytes_sent; /* to usb, after compression including overhead */
104568 - atomic_t cpu_kcycles_used; /* transpired during pixel processing */
104569 + atomic_unchecked_t bytes_rendered; /* raw pixel-bytes driver asked to render */
104570 + atomic_unchecked_t bytes_identical; /* saved effort with backbuffer comparison */
104571 + atomic_unchecked_t bytes_sent; /* to usb, after compression including overhead */
104572 + atomic_unchecked_t cpu_kcycles_used; /* transpired during pixel processing */
104573 };
104574
104575 #define NR_USB_REQUEST_I2C_SUB_IO 0x02
104576 diff --git a/include/video/uvesafb.h b/include/video/uvesafb.h
104577 index 30f5362..8ed8ac9 100644
104578 --- a/include/video/uvesafb.h
104579 +++ b/include/video/uvesafb.h
104580 @@ -122,6 +122,7 @@ struct uvesafb_par {
104581 u8 ypan; /* 0 - nothing, 1 - ypan, 2 - ywrap */
104582 u8 pmi_setpal; /* PMI for palette changes */
104583 u16 *pmi_base; /* protected mode interface location */
104584 + u8 *pmi_code; /* protected mode code location */
104585 void *pmi_start;
104586 void *pmi_pal;
104587 u8 *vbe_state_orig; /*
104588 diff --git a/init/Kconfig b/init/Kconfig
104589 index af09b4f..5ee6e6a 100644
104590 --- a/init/Kconfig
104591 +++ b/init/Kconfig
104592 @@ -642,6 +642,7 @@ config RCU_FAST_NO_HZ
104593 config TREE_RCU_TRACE
104594 def_bool RCU_TRACE && ( TREE_RCU || PREEMPT_RCU )
104595 select DEBUG_FS
104596 + depends on !GRKERNSEC_KMEM
104597 help
104598 This option provides tracing for the TREE_RCU and
104599 PREEMPT_RCU implementations, permitting Makefile to
104600 @@ -1139,6 +1140,7 @@ endif # CGROUPS
104601 config CHECKPOINT_RESTORE
104602 bool "Checkpoint/restore support" if EXPERT
104603 select PROC_CHILDREN
104604 + depends on !GRKERNSEC
104605 default n
104606 help
104607 Enables additional kernel features in a sake of checkpoint/restore.
104608 @@ -1664,7 +1666,7 @@ config SLUB_DEBUG
104609
104610 config COMPAT_BRK
104611 bool "Disable heap randomization"
104612 - default y
104613 + default n
104614 help
104615 Randomizing heap placement makes heap exploits harder, but it
104616 also breaks ancient binaries (including anything libc5 based).
104617 @@ -1994,7 +1996,7 @@ config INIT_ALL_POSSIBLE
104618 config STOP_MACHINE
104619 bool
104620 default y
104621 - depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU
104622 + depends on (SMP && MODULE_UNLOAD) || HOTPLUG_CPU || GRKERNSEC
104623 help
104624 Need stop_machine() primitive.
104625
104626 diff --git a/init/Makefile b/init/Makefile
104627 index 7bc47ee..6da2dc7 100644
104628 --- a/init/Makefile
104629 +++ b/init/Makefile
104630 @@ -2,6 +2,9 @@
104631 # Makefile for the linux kernel.
104632 #
104633
104634 +ccflags-y := $(GCC_PLUGINS_CFLAGS)
104635 +asflags-y := $(GCC_PLUGINS_AFLAGS)
104636 +
104637 obj-y := main.o version.o mounts.o
104638 ifneq ($(CONFIG_BLK_DEV_INITRD),y)
104639 obj-y += noinitramfs.o
104640 diff --git a/init/do_mounts.c b/init/do_mounts.c
104641 index dea5de9..bbdbb5f 100644
104642 --- a/init/do_mounts.c
104643 +++ b/init/do_mounts.c
104644 @@ -363,11 +363,11 @@ static void __init get_fs_names(char *page)
104645 static int __init do_mount_root(char *name, char *fs, int flags, void *data)
104646 {
104647 struct super_block *s;
104648 - int err = sys_mount(name, "/root", fs, flags, data);
104649 + int err = sys_mount((char __force_user *)name, (char __force_user *)"/root", (char __force_user *)fs, flags, (void __force_user *)data);
104650 if (err)
104651 return err;
104652
104653 - sys_chdir("/root");
104654 + sys_chdir((const char __force_user *)"/root");
104655 s = current->fs->pwd.dentry->d_sb;
104656 ROOT_DEV = s->s_dev;
104657 printk(KERN_INFO
104658 @@ -490,18 +490,18 @@ void __init change_floppy(char *fmt, ...)
104659 va_start(args, fmt);
104660 vsprintf(buf, fmt, args);
104661 va_end(args);
104662 - fd = sys_open("/dev/root", O_RDWR | O_NDELAY, 0);
104663 + fd = sys_open((char __user *)"/dev/root", O_RDWR | O_NDELAY, 0);
104664 if (fd >= 0) {
104665 sys_ioctl(fd, FDEJECT, 0);
104666 sys_close(fd);
104667 }
104668 printk(KERN_NOTICE "VFS: Insert %s and press ENTER\n", buf);
104669 - fd = sys_open("/dev/console", O_RDWR, 0);
104670 + fd = sys_open((__force const char __user *)"/dev/console", O_RDWR, 0);
104671 if (fd >= 0) {
104672 sys_ioctl(fd, TCGETS, (long)&termios);
104673 termios.c_lflag &= ~ICANON;
104674 sys_ioctl(fd, TCSETSF, (long)&termios);
104675 - sys_read(fd, &c, 1);
104676 + sys_read(fd, (char __user *)&c, 1);
104677 termios.c_lflag |= ICANON;
104678 sys_ioctl(fd, TCSETSF, (long)&termios);
104679 sys_close(fd);
104680 @@ -600,8 +600,8 @@ void __init prepare_namespace(void)
104681 mount_root();
104682 out:
104683 devtmpfs_mount("dev");
104684 - sys_mount(".", "/", NULL, MS_MOVE, NULL);
104685 - sys_chroot(".");
104686 + sys_mount((char __force_user *)".", (char __force_user *)"/", NULL, MS_MOVE, NULL);
104687 + sys_chroot((const char __force_user *)".");
104688 }
104689
104690 static bool is_tmpfs;
104691 diff --git a/init/do_mounts.h b/init/do_mounts.h
104692 index f5b978a..69dbfe8 100644
104693 --- a/init/do_mounts.h
104694 +++ b/init/do_mounts.h
104695 @@ -15,15 +15,15 @@ extern int root_mountflags;
104696
104697 static inline int create_dev(char *name, dev_t dev)
104698 {
104699 - sys_unlink(name);
104700 - return sys_mknod(name, S_IFBLK|0600, new_encode_dev(dev));
104701 + sys_unlink((char __force_user *)name);
104702 + return sys_mknod((char __force_user *)name, S_IFBLK|0600, new_encode_dev(dev));
104703 }
104704
104705 #if BITS_PER_LONG == 32
104706 static inline u32 bstat(char *name)
104707 {
104708 struct stat64 stat;
104709 - if (sys_stat64(name, &stat) != 0)
104710 + if (sys_stat64((char __force_user *)name, (struct stat64 __force_user *)&stat) != 0)
104711 return 0;
104712 if (!S_ISBLK(stat.st_mode))
104713 return 0;
104714 @@ -35,7 +35,7 @@ static inline u32 bstat(char *name)
104715 static inline u32 bstat(char *name)
104716 {
104717 struct stat stat;
104718 - if (sys_newstat(name, &stat) != 0)
104719 + if (sys_newstat((const char __force_user *)name, (struct stat __force_user *)&stat) != 0)
104720 return 0;
104721 if (!S_ISBLK(stat.st_mode))
104722 return 0;
104723 diff --git a/init/do_mounts_initrd.c b/init/do_mounts_initrd.c
104724 index 3e0878e..8a9d7a0 100644
104725 --- a/init/do_mounts_initrd.c
104726 +++ b/init/do_mounts_initrd.c
104727 @@ -37,13 +37,13 @@ static int init_linuxrc(struct subprocess_info *info, struct cred *new)
104728 {
104729 sys_unshare(CLONE_FS | CLONE_FILES);
104730 /* stdin/stdout/stderr for /linuxrc */
104731 - sys_open("/dev/console", O_RDWR, 0);
104732 + sys_open((const char __force_user *)"/dev/console", O_RDWR, 0);
104733 sys_dup(0);
104734 sys_dup(0);
104735 /* move initrd over / and chdir/chroot in initrd root */
104736 - sys_chdir("/root");
104737 - sys_mount(".", "/", NULL, MS_MOVE, NULL);
104738 - sys_chroot(".");
104739 + sys_chdir((const char __force_user *)"/root");
104740 + sys_mount((char __force_user *)".", (char __force_user *)"/", NULL, MS_MOVE, NULL);
104741 + sys_chroot((const char __force_user *)".");
104742 sys_setsid();
104743 return 0;
104744 }
104745 @@ -59,8 +59,8 @@ static void __init handle_initrd(void)
104746 create_dev("/dev/root.old", Root_RAM0);
104747 /* mount initrd on rootfs' /root */
104748 mount_block_root("/dev/root.old", root_mountflags & ~MS_RDONLY);
104749 - sys_mkdir("/old", 0700);
104750 - sys_chdir("/old");
104751 + sys_mkdir((const char __force_user *)"/old", 0700);
104752 + sys_chdir((const char __force_user *)"/old");
104753
104754 /* try loading default modules from initrd */
104755 load_default_modules();
104756 @@ -80,31 +80,31 @@ static void __init handle_initrd(void)
104757 current->flags &= ~PF_FREEZER_SKIP;
104758
104759 /* move initrd to rootfs' /old */
104760 - sys_mount("..", ".", NULL, MS_MOVE, NULL);
104761 + sys_mount((char __force_user *)"..", (char __force_user *)".", NULL, MS_MOVE, NULL);
104762 /* switch root and cwd back to / of rootfs */
104763 - sys_chroot("..");
104764 + sys_chroot((const char __force_user *)"..");
104765
104766 if (new_decode_dev(real_root_dev) == Root_RAM0) {
104767 - sys_chdir("/old");
104768 + sys_chdir((const char __force_user *)"/old");
104769 return;
104770 }
104771
104772 - sys_chdir("/");
104773 + sys_chdir((const char __force_user *)"/");
104774 ROOT_DEV = new_decode_dev(real_root_dev);
104775 mount_root();
104776
104777 printk(KERN_NOTICE "Trying to move old root to /initrd ... ");
104778 - error = sys_mount("/old", "/root/initrd", NULL, MS_MOVE, NULL);
104779 + error = sys_mount((char __force_user *)"/old", (char __force_user *)"/root/initrd", NULL, MS_MOVE, NULL);
104780 if (!error)
104781 printk("okay\n");
104782 else {
104783 - int fd = sys_open("/dev/root.old", O_RDWR, 0);
104784 + int fd = sys_open((const char __force_user *)"/dev/root.old", O_RDWR, 0);
104785 if (error == -ENOENT)
104786 printk("/initrd does not exist. Ignored.\n");
104787 else
104788 printk("failed\n");
104789 printk(KERN_NOTICE "Unmounting old root\n");
104790 - sys_umount("/old", MNT_DETACH);
104791 + sys_umount((char __force_user *)"/old", MNT_DETACH);
104792 printk(KERN_NOTICE "Trying to free ramdisk memory ... ");
104793 if (fd < 0) {
104794 error = fd;
104795 @@ -127,11 +127,11 @@ int __init initrd_load(void)
104796 * mounted in the normal path.
104797 */
104798 if (rd_load_image("/initrd.image") && ROOT_DEV != Root_RAM0) {
104799 - sys_unlink("/initrd.image");
104800 + sys_unlink((const char __force_user *)"/initrd.image");
104801 handle_initrd();
104802 return 1;
104803 }
104804 }
104805 - sys_unlink("/initrd.image");
104806 + sys_unlink((const char __force_user *)"/initrd.image");
104807 return 0;
104808 }
104809 diff --git a/init/do_mounts_md.c b/init/do_mounts_md.c
104810 index 8cb6db5..d729f50 100644
104811 --- a/init/do_mounts_md.c
104812 +++ b/init/do_mounts_md.c
104813 @@ -180,7 +180,7 @@ static void __init md_setup_drive(void)
104814 partitioned ? "_d" : "", minor,
104815 md_setup_args[ent].device_names);
104816
104817 - fd = sys_open(name, 0, 0);
104818 + fd = sys_open((char __force_user *)name, 0, 0);
104819 if (fd < 0) {
104820 printk(KERN_ERR "md: open failed - cannot start "
104821 "array %s\n", name);
104822 @@ -243,7 +243,7 @@ static void __init md_setup_drive(void)
104823 * array without it
104824 */
104825 sys_close(fd);
104826 - fd = sys_open(name, 0, 0);
104827 + fd = sys_open((char __force_user *)name, 0, 0);
104828 sys_ioctl(fd, BLKRRPART, 0);
104829 }
104830 sys_close(fd);
104831 @@ -293,7 +293,7 @@ static void __init autodetect_raid(void)
104832
104833 wait_for_device_probe();
104834
104835 - fd = sys_open("/dev/md0", 0, 0);
104836 + fd = sys_open((const char __force_user *) "/dev/md0", 0, 0);
104837 if (fd >= 0) {
104838 sys_ioctl(fd, RAID_AUTORUN, raid_autopart);
104839 sys_close(fd);
104840 diff --git a/init/init_task.c b/init/init_task.c
104841 index ba0a7f36..2bcf1d5 100644
104842 --- a/init/init_task.c
104843 +++ b/init/init_task.c
104844 @@ -22,5 +22,9 @@ EXPORT_SYMBOL(init_task);
104845 * Initial thread structure. Alignment of this is handled by a special
104846 * linker map entry.
104847 */
104848 +#ifdef CONFIG_X86
104849 +union thread_union init_thread_union __init_task_data;
104850 +#else
104851 union thread_union init_thread_union __init_task_data =
104852 { INIT_THREAD_INFO(init_task) };
104853 +#endif
104854 diff --git a/init/initramfs.c b/init/initramfs.c
104855 index ad1bd77..dca2c1b 100644
104856 --- a/init/initramfs.c
104857 +++ b/init/initramfs.c
104858 @@ -25,7 +25,7 @@ static ssize_t __init xwrite(int fd, const char *p, size_t count)
104859
104860 /* sys_write only can write MAX_RW_COUNT aka 2G-4K bytes at most */
104861 while (count) {
104862 - ssize_t rv = sys_write(fd, p, count);
104863 + ssize_t rv = sys_write(fd, (char __force_user *)p, count);
104864
104865 if (rv < 0) {
104866 if (rv == -EINTR || rv == -EAGAIN)
104867 @@ -107,7 +107,7 @@ static void __init free_hash(void)
104868 }
104869 }
104870
104871 -static long __init do_utime(char *filename, time_t mtime)
104872 +static long __init do_utime(char __force_user *filename, time_t mtime)
104873 {
104874 struct timespec t[2];
104875
104876 @@ -142,7 +142,7 @@ static void __init dir_utime(void)
104877 struct dir_entry *de, *tmp;
104878 list_for_each_entry_safe(de, tmp, &dir_list, list) {
104879 list_del(&de->list);
104880 - do_utime(de->name, de->mtime);
104881 + do_utime((char __force_user *)de->name, de->mtime);
104882 kfree(de->name);
104883 kfree(de);
104884 }
104885 @@ -304,7 +304,7 @@ static int __init maybe_link(void)
104886 if (nlink >= 2) {
104887 char *old = find_link(major, minor, ino, mode, collected);
104888 if (old)
104889 - return (sys_link(old, collected) < 0) ? -1 : 1;
104890 + return (sys_link((char __force_user *)old, (char __force_user *)collected) < 0) ? -1 : 1;
104891 }
104892 return 0;
104893 }
104894 @@ -313,11 +313,11 @@ static void __init clean_path(char *path, umode_t fmode)
104895 {
104896 struct stat st;
104897
104898 - if (!sys_newlstat(path, &st) && (st.st_mode ^ fmode) & S_IFMT) {
104899 + if (!sys_newlstat((char __force_user *)path, (struct stat __force_user *)&st) && (st.st_mode ^ fmode) & S_IFMT) {
104900 if (S_ISDIR(st.st_mode))
104901 - sys_rmdir(path);
104902 + sys_rmdir((char __force_user *)path);
104903 else
104904 - sys_unlink(path);
104905 + sys_unlink((char __force_user *)path);
104906 }
104907 }
104908
104909 @@ -338,7 +338,7 @@ static int __init do_name(void)
104910 int openflags = O_WRONLY|O_CREAT;
104911 if (ml != 1)
104912 openflags |= O_TRUNC;
104913 - wfd = sys_open(collected, openflags, mode);
104914 + wfd = sys_open((char __force_user *)collected, openflags, mode);
104915
104916 if (wfd >= 0) {
104917 sys_fchown(wfd, uid, gid);
104918 @@ -350,17 +350,17 @@ static int __init do_name(void)
104919 }
104920 }
104921 } else if (S_ISDIR(mode)) {
104922 - sys_mkdir(collected, mode);
104923 - sys_chown(collected, uid, gid);
104924 - sys_chmod(collected, mode);
104925 + sys_mkdir((char __force_user *)collected, mode);
104926 + sys_chown((char __force_user *)collected, uid, gid);
104927 + sys_chmod((char __force_user *)collected, mode);
104928 dir_add(collected, mtime);
104929 } else if (S_ISBLK(mode) || S_ISCHR(mode) ||
104930 S_ISFIFO(mode) || S_ISSOCK(mode)) {
104931 if (maybe_link() == 0) {
104932 - sys_mknod(collected, mode, rdev);
104933 - sys_chown(collected, uid, gid);
104934 - sys_chmod(collected, mode);
104935 - do_utime(collected, mtime);
104936 + sys_mknod((char __force_user *)collected, mode, rdev);
104937 + sys_chown((char __force_user *)collected, uid, gid);
104938 + sys_chmod((char __force_user *)collected, mode);
104939 + do_utime((char __force_user *)collected, mtime);
104940 }
104941 }
104942 return 0;
104943 @@ -372,7 +372,7 @@ static int __init do_copy(void)
104944 if (xwrite(wfd, victim, body_len) != body_len)
104945 error("write error");
104946 sys_close(wfd);
104947 - do_utime(vcollected, mtime);
104948 + do_utime((char __force_user *)vcollected, mtime);
104949 kfree(vcollected);
104950 eat(body_len);
104951 state = SkipIt;
104952 @@ -390,9 +390,9 @@ static int __init do_symlink(void)
104953 {
104954 collected[N_ALIGN(name_len) + body_len] = '\0';
104955 clean_path(collected, 0);
104956 - sys_symlink(collected + N_ALIGN(name_len), collected);
104957 - sys_lchown(collected, uid, gid);
104958 - do_utime(collected, mtime);
104959 + sys_symlink((char __force_user *)collected + N_ALIGN(name_len), (char __force_user *)collected);
104960 + sys_lchown((char __force_user *)collected, uid, gid);
104961 + do_utime((char __force_user *)collected, mtime);
104962 state = SkipIt;
104963 next_state = Reset;
104964 return 0;
104965 diff --git a/init/main.c b/init/main.c
104966 index 5650655..937d1b1 100644
104967 --- a/init/main.c
104968 +++ b/init/main.c
104969 @@ -97,6 +97,8 @@ extern void radix_tree_init(void);
104970 static inline void mark_rodata_ro(void) { }
104971 #endif
104972
104973 +extern void grsecurity_init(void);
104974 +
104975 /*
104976 * Debug helper: via this flag we know that we are in 'early bootup code'
104977 * where only the boot processor is running with IRQ disabled. This means
104978 @@ -158,6 +160,37 @@ static int __init set_reset_devices(char *str)
104979
104980 __setup("reset_devices", set_reset_devices);
104981
104982 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
104983 +kgid_t grsec_proc_gid = KGIDT_INIT(CONFIG_GRKERNSEC_PROC_GID);
104984 +static int __init setup_grsec_proc_gid(char *str)
104985 +{
104986 + grsec_proc_gid = KGIDT_INIT(simple_strtol(str, NULL, 0));
104987 + return 1;
104988 +}
104989 +__setup("grsec_proc_gid=", setup_grsec_proc_gid);
104990 +#endif
104991 +#ifdef CONFIG_GRKERNSEC_SYSFS_RESTRICT
104992 +int grsec_enable_sysfs_restrict = 1;
104993 +static int __init setup_grsec_sysfs_restrict(char *str)
104994 +{
104995 + if (!simple_strtol(str, NULL, 0))
104996 + grsec_enable_sysfs_restrict = 0;
104997 + return 1;
104998 +}
104999 +__setup("grsec_sysfs_restrict", setup_grsec_sysfs_restrict);
105000 +#endif
105001 +
105002 +#ifdef CONFIG_PAX_SOFTMODE
105003 +int pax_softmode;
105004 +
105005 +static int __init setup_pax_softmode(char *str)
105006 +{
105007 + get_option(&str, &pax_softmode);
105008 + return 1;
105009 +}
105010 +__setup("pax_softmode=", setup_pax_softmode);
105011 +#endif
105012 +
105013 static const char *argv_init[MAX_INIT_ARGS+2] = { "init", NULL, };
105014 const char *envp_init[MAX_INIT_ENVS+2] = { "HOME=/", "TERM=linux", NULL, };
105015 static const char *panic_later, *panic_param;
105016 @@ -731,7 +764,7 @@ static bool __init_or_module initcall_blacklisted(initcall_t fn)
105017 struct blacklist_entry *entry;
105018 char *fn_name;
105019
105020 - fn_name = kasprintf(GFP_KERNEL, "%pf", fn);
105021 + fn_name = kasprintf(GFP_KERNEL, "%pX", fn);
105022 if (!fn_name)
105023 return false;
105024
105025 @@ -783,7 +816,7 @@ int __init_or_module do_one_initcall(initcall_t fn)
105026 {
105027 int count = preempt_count();
105028 int ret;
105029 - char msgbuf[64];
105030 + const char *msg1 = "", *msg2 = "";
105031
105032 if (initcall_blacklisted(fn))
105033 return -EPERM;
105034 @@ -793,18 +826,17 @@ int __init_or_module do_one_initcall(initcall_t fn)
105035 else
105036 ret = fn();
105037
105038 - msgbuf[0] = 0;
105039 -
105040 if (preempt_count() != count) {
105041 - sprintf(msgbuf, "preemption imbalance ");
105042 + msg1 = " preemption imbalance";
105043 preempt_count_set(count);
105044 }
105045 if (irqs_disabled()) {
105046 - strlcat(msgbuf, "disabled interrupts ", sizeof(msgbuf));
105047 + msg2 = " disabled interrupts";
105048 local_irq_enable();
105049 }
105050 - WARN(msgbuf[0], "initcall %pF returned with %s\n", fn, msgbuf);
105051 + WARN(*msg1 || *msg2, "initcall %pF returned with%s%s\n", fn, msg1, msg2);
105052
105053 + add_latent_entropy();
105054 return ret;
105055 }
105056
105057 @@ -910,8 +942,8 @@ static int run_init_process(const char *init_filename)
105058 {
105059 argv_init[0] = init_filename;
105060 return do_execve(getname_kernel(init_filename),
105061 - (const char __user *const __user *)argv_init,
105062 - (const char __user *const __user *)envp_init);
105063 + (const char __user *const __force_user *)argv_init,
105064 + (const char __user *const __force_user *)envp_init);
105065 }
105066
105067 static int try_to_run_init_process(const char *init_filename)
105068 @@ -928,6 +960,10 @@ static int try_to_run_init_process(const char *init_filename)
105069 return ret;
105070 }
105071
105072 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
105073 +extern int gr_init_ran;
105074 +#endif
105075 +
105076 static noinline void __init kernel_init_freeable(void);
105077
105078 static int __ref kernel_init(void *unused)
105079 @@ -952,6 +988,11 @@ static int __ref kernel_init(void *unused)
105080 ramdisk_execute_command, ret);
105081 }
105082
105083 +#ifdef CONFIG_GRKERNSEC_CHROOT_INITRD
105084 + /* if no initrd was used, be extra sure we enforce chroot restrictions */
105085 + gr_init_ran = 1;
105086 +#endif
105087 +
105088 /*
105089 * We try each of these until one succeeds.
105090 *
105091 @@ -1009,7 +1050,7 @@ static noinline void __init kernel_init_freeable(void)
105092 do_basic_setup();
105093
105094 /* Open the /dev/console on the rootfs, this should never fail */
105095 - if (sys_open((const char __user *) "/dev/console", O_RDWR, 0) < 0)
105096 + if (sys_open((const char __force_user *) "/dev/console", O_RDWR, 0) < 0)
105097 pr_err("Warning: unable to open an initial console.\n");
105098
105099 (void) sys_dup(0);
105100 @@ -1022,11 +1063,13 @@ static noinline void __init kernel_init_freeable(void)
105101 if (!ramdisk_execute_command)
105102 ramdisk_execute_command = "/init";
105103
105104 - if (sys_access((const char __user *) ramdisk_execute_command, 0) != 0) {
105105 + if (sys_access((const char __force_user *) ramdisk_execute_command, 0) != 0) {
105106 ramdisk_execute_command = NULL;
105107 prepare_namespace();
105108 }
105109
105110 + grsecurity_init();
105111 +
105112 /*
105113 * Ok, we have completed the initial bootup, and
105114 * we're essentially up and running. Get rid of the
105115 diff --git a/ipc/compat.c b/ipc/compat.c
105116 index 9b3c85f..5266b0f 100644
105117 --- a/ipc/compat.c
105118 +++ b/ipc/compat.c
105119 @@ -396,7 +396,7 @@ COMPAT_SYSCALL_DEFINE6(ipc, u32, call, int, first, int, second,
105120 COMPAT_SHMLBA);
105121 if (err < 0)
105122 return err;
105123 - return put_user(raddr, (compat_ulong_t *)compat_ptr(third));
105124 + return put_user(raddr, (compat_ulong_t __user *)compat_ptr(third));
105125 }
105126 case SHMDT:
105127 return sys_shmdt(compat_ptr(ptr));
105128 @@ -747,7 +747,7 @@ COMPAT_SYSCALL_DEFINE3(shmctl, int, first, int, second, void __user *, uptr)
105129 }
105130
105131 COMPAT_SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsems,
105132 - unsigned, nsops,
105133 + compat_long_t, nsops,
105134 const struct compat_timespec __user *, timeout)
105135 {
105136 struct timespec __user *ts64;
105137 diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c
105138 index 8ad93c2..efd80f8 100644
105139 --- a/ipc/ipc_sysctl.c
105140 +++ b/ipc/ipc_sysctl.c
105141 @@ -30,7 +30,7 @@ static void *get_ipc(struct ctl_table *table)
105142 static int proc_ipc_dointvec(struct ctl_table *table, int write,
105143 void __user *buffer, size_t *lenp, loff_t *ppos)
105144 {
105145 - struct ctl_table ipc_table;
105146 + ctl_table_no_const ipc_table;
105147
105148 memcpy(&ipc_table, table, sizeof(ipc_table));
105149 ipc_table.data = get_ipc(table);
105150 @@ -41,7 +41,7 @@ static int proc_ipc_dointvec(struct ctl_table *table, int write,
105151 static int proc_ipc_dointvec_minmax(struct ctl_table *table, int write,
105152 void __user *buffer, size_t *lenp, loff_t *ppos)
105153 {
105154 - struct ctl_table ipc_table;
105155 + ctl_table_no_const ipc_table;
105156
105157 memcpy(&ipc_table, table, sizeof(ipc_table));
105158 ipc_table.data = get_ipc(table);
105159 @@ -65,7 +65,7 @@ static int proc_ipc_dointvec_minmax_orphans(struct ctl_table *table, int write,
105160 static int proc_ipc_doulongvec_minmax(struct ctl_table *table, int write,
105161 void __user *buffer, size_t *lenp, loff_t *ppos)
105162 {
105163 - struct ctl_table ipc_table;
105164 + ctl_table_no_const ipc_table;
105165 memcpy(&ipc_table, table, sizeof(ipc_table));
105166 ipc_table.data = get_ipc(table);
105167
105168 @@ -76,7 +76,7 @@ static int proc_ipc_doulongvec_minmax(struct ctl_table *table, int write,
105169 static int proc_ipc_auto_msgmni(struct ctl_table *table, int write,
105170 void __user *buffer, size_t *lenp, loff_t *ppos)
105171 {
105172 - struct ctl_table ipc_table;
105173 + ctl_table_no_const ipc_table;
105174 int dummy = 0;
105175
105176 memcpy(&ipc_table, table, sizeof(ipc_table));
105177 diff --git a/ipc/mq_sysctl.c b/ipc/mq_sysctl.c
105178 index 68d4e95..1477ded 100644
105179 --- a/ipc/mq_sysctl.c
105180 +++ b/ipc/mq_sysctl.c
105181 @@ -25,7 +25,7 @@ static void *get_mq(struct ctl_table *table)
105182 static int proc_mq_dointvec(struct ctl_table *table, int write,
105183 void __user *buffer, size_t *lenp, loff_t *ppos)
105184 {
105185 - struct ctl_table mq_table;
105186 + ctl_table_no_const mq_table;
105187 memcpy(&mq_table, table, sizeof(mq_table));
105188 mq_table.data = get_mq(table);
105189
105190 @@ -35,7 +35,7 @@ static int proc_mq_dointvec(struct ctl_table *table, int write,
105191 static int proc_mq_dointvec_minmax(struct ctl_table *table, int write,
105192 void __user *buffer, size_t *lenp, loff_t *ppos)
105193 {
105194 - struct ctl_table mq_table;
105195 + ctl_table_no_const mq_table;
105196 memcpy(&mq_table, table, sizeof(mq_table));
105197 mq_table.data = get_mq(table);
105198
105199 diff --git a/ipc/mqueue.c b/ipc/mqueue.c
105200 index 161a180..be31d93 100644
105201 --- a/ipc/mqueue.c
105202 +++ b/ipc/mqueue.c
105203 @@ -274,6 +274,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
105204 mq_bytes = mq_treesize + (info->attr.mq_maxmsg *
105205 info->attr.mq_msgsize);
105206
105207 + gr_learn_resource(current, RLIMIT_MSGQUEUE, u->mq_bytes + mq_bytes, 1);
105208 spin_lock(&mq_lock);
105209 if (u->mq_bytes + mq_bytes < u->mq_bytes ||
105210 u->mq_bytes + mq_bytes > rlimit(RLIMIT_MSGQUEUE)) {
105211 diff --git a/ipc/msg.c b/ipc/msg.c
105212 index 1471db9..dbdcf7f 100644
105213 --- a/ipc/msg.c
105214 +++ b/ipc/msg.c
105215 @@ -1041,7 +1041,8 @@ void msg_exit_ns(struct ipc_namespace *ns)
105216 static int sysvipc_msg_proc_show(struct seq_file *s, void *it)
105217 {
105218 struct user_namespace *user_ns = seq_user_ns(s);
105219 - struct msg_queue *msq = it;
105220 + struct kern_ipc_perm *perm = it;
105221 + struct msg_queue *msq = container_of(perm, struct msg_queue, q_perm);
105222
105223 seq_printf(s,
105224 "%10d %10d %4o %10lu %10lu %5u %5u %5u %5u %5u %5u %10lu %10lu %10lu\n",
105225 diff --git a/ipc/sem.c b/ipc/sem.c
105226 index b471e5a..cb0c603 100644
105227 --- a/ipc/sem.c
105228 +++ b/ipc/sem.c
105229 @@ -1790,7 +1790,7 @@ static int get_queue_result(struct sem_queue *q)
105230 }
105231
105232 SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsops,
105233 - unsigned, nsops, const struct timespec __user *, timeout)
105234 + long, nsops, const struct timespec __user *, timeout)
105235 {
105236 int error = -EINVAL;
105237 struct sem_array *sma;
105238 @@ -2025,7 +2025,7 @@ out_free:
105239 }
105240
105241 SYSCALL_DEFINE3(semop, int, semid, struct sembuf __user *, tsops,
105242 - unsigned, nsops)
105243 + long, nsops)
105244 {
105245 return sys_semtimedop(semid, tsops, nsops, NULL);
105246 }
105247 @@ -2180,7 +2180,8 @@ void exit_sem(struct task_struct *tsk)
105248 static int sysvipc_sem_proc_show(struct seq_file *s, void *it)
105249 {
105250 struct user_namespace *user_ns = seq_user_ns(s);
105251 - struct sem_array *sma = it;
105252 + struct kern_ipc_perm *perm = it;
105253 + struct sem_array *sma = container_of(perm, struct sem_array, sem_perm);
105254 time_t sem_otime;
105255
105256 /*
105257 diff --git a/ipc/shm.c b/ipc/shm.c
105258 index 0e61fd4..38b0991 100644
105259 --- a/ipc/shm.c
105260 +++ b/ipc/shm.c
105261 @@ -72,6 +72,14 @@ static void shm_destroy(struct ipc_namespace *ns, struct shmid_kernel *shp);
105262 static int sysvipc_shm_proc_show(struct seq_file *s, void *it);
105263 #endif
105264
105265 +#ifdef CONFIG_GRKERNSEC
105266 +extern int gr_handle_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
105267 + const u64 shm_createtime, const kuid_t cuid,
105268 + const int shmid);
105269 +extern int gr_chroot_shmat(const pid_t shm_cprid, const pid_t shm_lapid,
105270 + const u64 shm_createtime);
105271 +#endif
105272 +
105273 void shm_init_ns(struct ipc_namespace *ns)
105274 {
105275 ns->shm_ctlmax = SHMMAX;
105276 @@ -555,6 +563,9 @@ static int newseg(struct ipc_namespace *ns, struct ipc_params *params)
105277 shp->shm_lprid = 0;
105278 shp->shm_atim = shp->shm_dtim = 0;
105279 shp->shm_ctim = get_seconds();
105280 +#ifdef CONFIG_GRKERNSEC
105281 + shp->shm_createtime = ktime_get_ns();
105282 +#endif
105283 shp->shm_segsz = size;
105284 shp->shm_nattch = 0;
105285 shp->shm_file = file;
105286 @@ -1098,6 +1109,12 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
105287 f_mode = FMODE_READ | FMODE_WRITE;
105288 }
105289 if (shmflg & SHM_EXEC) {
105290 +
105291 +#ifdef CONFIG_PAX_MPROTECT
105292 + if (current->mm->pax_flags & MF_PAX_MPROTECT)
105293 + goto out;
105294 +#endif
105295 +
105296 prot |= PROT_EXEC;
105297 acc_mode |= S_IXUGO;
105298 }
105299 @@ -1122,6 +1139,15 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
105300 if (err)
105301 goto out_unlock;
105302
105303 +#ifdef CONFIG_GRKERNSEC
105304 + if (!gr_handle_shmat(shp->shm_cprid, shp->shm_lapid, shp->shm_createtime,
105305 + shp->shm_perm.cuid, shmid) ||
105306 + !gr_chroot_shmat(shp->shm_cprid, shp->shm_lapid, shp->shm_createtime)) {
105307 + err = -EACCES;
105308 + goto out_unlock;
105309 + }
105310 +#endif
105311 +
105312 ipc_lock_object(&shp->shm_perm);
105313
105314 /* check if shm_destroy() is tearing down shp */
105315 @@ -1134,6 +1160,9 @@ long do_shmat(int shmid, char __user *shmaddr, int shmflg, ulong *raddr,
105316 path = shp->shm_file->f_path;
105317 path_get(&path);
105318 shp->shm_nattch++;
105319 +#ifdef CONFIG_GRKERNSEC
105320 + shp->shm_lapid = current->pid;
105321 +#endif
105322 size = i_size_read(d_inode(path.dentry));
105323 ipc_unlock_object(&shp->shm_perm);
105324 rcu_read_unlock();
105325 @@ -1332,7 +1361,8 @@ SYSCALL_DEFINE1(shmdt, char __user *, shmaddr)
105326 static int sysvipc_shm_proc_show(struct seq_file *s, void *it)
105327 {
105328 struct user_namespace *user_ns = seq_user_ns(s);
105329 - struct shmid_kernel *shp = it;
105330 + struct kern_ipc_perm *perm = it;
105331 + struct shmid_kernel *shp = container_of(perm, struct shmid_kernel, shm_perm);
105332 unsigned long rss = 0, swp = 0;
105333
105334 shm_add_rss_swap(shp, &rss, &swp);
105335 diff --git a/ipc/util.c b/ipc/util.c
105336 index 0f401d9..049b0ff 100644
105337 --- a/ipc/util.c
105338 +++ b/ipc/util.c
105339 @@ -71,6 +71,8 @@ struct ipc_proc_iface {
105340 int (*show)(struct seq_file *, void *);
105341 };
105342
105343 +extern int gr_ipc_permitted(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, int requested_mode, int granted_mode);
105344 +
105345 /**
105346 * ipc_init - initialise ipc subsystem
105347 *
105348 @@ -494,6 +496,10 @@ int ipcperms(struct ipc_namespace *ns, struct kern_ipc_perm *ipcp, short flag)
105349 granted_mode >>= 6;
105350 else if (in_group_p(ipcp->cgid) || in_group_p(ipcp->gid))
105351 granted_mode >>= 3;
105352 +
105353 + if (!gr_ipc_permitted(ns, ipcp, requested_mode, granted_mode))
105354 + return -1;
105355 +
105356 /* is there some bit set in requested_mode but not in granted_mode? */
105357 if ((requested_mode & ~granted_mode & 0007) &&
105358 !ns_capable(ns->user_ns, CAP_IPC_OWNER))
105359 diff --git a/kernel/audit.c b/kernel/audit.c
105360 index f9e6065..3fcb6ab 100644
105361 --- a/kernel/audit.c
105362 +++ b/kernel/audit.c
105363 @@ -124,7 +124,7 @@ u32 audit_sig_sid = 0;
105364 3) suppressed due to audit_rate_limit
105365 4) suppressed due to audit_backlog_limit
105366 */
105367 -static atomic_t audit_lost = ATOMIC_INIT(0);
105368 +static atomic_unchecked_t audit_lost = ATOMIC_INIT(0);
105369
105370 /* The netlink socket. */
105371 static struct sock *audit_sock;
105372 @@ -258,7 +258,7 @@ void audit_log_lost(const char *message)
105373 unsigned long now;
105374 int print;
105375
105376 - atomic_inc(&audit_lost);
105377 + atomic_inc_unchecked(&audit_lost);
105378
105379 print = (audit_failure == AUDIT_FAIL_PANIC || !audit_rate_limit);
105380
105381 @@ -275,7 +275,7 @@ void audit_log_lost(const char *message)
105382 if (print) {
105383 if (printk_ratelimit())
105384 pr_warn("audit_lost=%u audit_rate_limit=%u audit_backlog_limit=%u\n",
105385 - atomic_read(&audit_lost),
105386 + atomic_read_unchecked(&audit_lost),
105387 audit_rate_limit,
105388 audit_backlog_limit);
105389 audit_panic(message);
105390 @@ -833,7 +833,7 @@ static int audit_receive_msg(struct sk_buff *skb, struct nlmsghdr *nlh)
105391 s.pid = audit_pid;
105392 s.rate_limit = audit_rate_limit;
105393 s.backlog_limit = audit_backlog_limit;
105394 - s.lost = atomic_read(&audit_lost);
105395 + s.lost = atomic_read_unchecked(&audit_lost);
105396 s.backlog = skb_queue_len(&audit_skb_queue);
105397 s.feature_bitmap = AUDIT_FEATURE_BITMAP_ALL;
105398 s.backlog_wait_time = audit_backlog_wait_time_master;
105399 diff --git a/kernel/auditsc.c b/kernel/auditsc.c
105400 index e85bdfd..441a638 100644
105401 --- a/kernel/auditsc.c
105402 +++ b/kernel/auditsc.c
105403 @@ -1021,7 +1021,7 @@ static int audit_log_single_execve_arg(struct audit_context *context,
105404 * for strings that are too long, we should not have created
105405 * any.
105406 */
105407 - if (WARN_ON_ONCE(len < 0 || len > MAX_ARG_STRLEN - 1)) {
105408 + if (WARN_ON_ONCE(len > MAX_ARG_STRLEN - 1)) {
105409 send_sig(SIGKILL, current, 0);
105410 return -1;
105411 }
105412 @@ -1952,7 +1952,7 @@ int auditsc_get_stamp(struct audit_context *ctx,
105413 }
105414
105415 /* global counter which is incremented every time something logs in */
105416 -static atomic_t session_id = ATOMIC_INIT(0);
105417 +static atomic_unchecked_t session_id = ATOMIC_INIT(0);
105418
105419 static int audit_set_loginuid_perm(kuid_t loginuid)
105420 {
105421 @@ -2019,7 +2019,7 @@ int audit_set_loginuid(kuid_t loginuid)
105422
105423 /* are we setting or clearing? */
105424 if (uid_valid(loginuid))
105425 - sessionid = (unsigned int)atomic_inc_return(&session_id);
105426 + sessionid = (unsigned int)atomic_inc_return_unchecked(&session_id);
105427
105428 task->sessionid = sessionid;
105429 task->loginuid = loginuid;
105430 diff --git a/kernel/bpf/core.c b/kernel/bpf/core.c
105431 index c5bedc8..6ec8715 100644
105432 --- a/kernel/bpf/core.c
105433 +++ b/kernel/bpf/core.c
105434 @@ -145,14 +145,17 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr,
105435 * random section of illegal instructions.
105436 */
105437 size = round_up(proglen + sizeof(*hdr) + 128, PAGE_SIZE);
105438 - hdr = module_alloc(size);
105439 + hdr = module_alloc_exec(size);
105440 if (hdr == NULL)
105441 return NULL;
105442
105443 /* Fill space with illegal/arch-dep instructions. */
105444 bpf_fill_ill_insns(hdr, size);
105445
105446 + pax_open_kernel();
105447 hdr->pages = size / PAGE_SIZE;
105448 + pax_close_kernel();
105449 +
105450 hole = min_t(unsigned int, size - (proglen + sizeof(*hdr)),
105451 PAGE_SIZE - sizeof(*hdr));
105452 start = (prandom_u32() % hole) & ~(alignment - 1);
105453 @@ -165,7 +168,7 @@ bpf_jit_binary_alloc(unsigned int proglen, u8 **image_ptr,
105454
105455 void bpf_jit_binary_free(struct bpf_binary_header *hdr)
105456 {
105457 - module_memfree(hdr);
105458 + module_memfree_exec(hdr);
105459 }
105460 #endif /* CONFIG_BPF_JIT */
105461
105462 diff --git a/kernel/bpf/syscall.c b/kernel/bpf/syscall.c
105463 index a1b14d1..7dce5d9 100644
105464 --- a/kernel/bpf/syscall.c
105465 +++ b/kernel/bpf/syscall.c
105466 @@ -592,11 +592,15 @@ SYSCALL_DEFINE3(bpf, int, cmd, union bpf_attr __user *, uattr, unsigned int, siz
105467 int err;
105468
105469 /* the syscall is limited to root temporarily. This restriction will be
105470 - * lifted when security audit is clean. Note that eBPF+tracing must have
105471 - * this restriction, since it may pass kernel data to user space
105472 + * lifted by upstream when a half-assed security audit is clean. Note
105473 + * that eBPF+tracing must have this restriction, since it may pass
105474 + * kernel data to user space
105475 */
105476 if (!capable(CAP_SYS_ADMIN))
105477 return -EPERM;
105478 +#ifdef CONFIG_GRKERNSEC
105479 + return -EPERM;
105480 +#endif
105481
105482 if (!access_ok(VERIFY_READ, uattr, 1))
105483 return -EFAULT;
105484 diff --git a/kernel/capability.c b/kernel/capability.c
105485 index 45432b5..988f1e4 100644
105486 --- a/kernel/capability.c
105487 +++ b/kernel/capability.c
105488 @@ -193,6 +193,9 @@ SYSCALL_DEFINE2(capget, cap_user_header_t, header, cap_user_data_t, dataptr)
105489 * before modification is attempted and the application
105490 * fails.
105491 */
105492 + if (tocopy > ARRAY_SIZE(kdata))
105493 + return -EFAULT;
105494 +
105495 if (copy_to_user(dataptr, kdata, tocopy
105496 * sizeof(struct __user_cap_data_struct))) {
105497 return -EFAULT;
105498 @@ -298,10 +301,11 @@ bool has_ns_capability(struct task_struct *t,
105499 int ret;
105500
105501 rcu_read_lock();
105502 - ret = security_capable(__task_cred(t), ns, cap);
105503 + ret = security_capable(__task_cred(t), ns, cap) == 0 &&
105504 + gr_task_is_capable(t, __task_cred(t), cap);
105505 rcu_read_unlock();
105506
105507 - return (ret == 0);
105508 + return ret;
105509 }
105510
105511 /**
105512 @@ -338,10 +342,10 @@ bool has_ns_capability_noaudit(struct task_struct *t,
105513 int ret;
105514
105515 rcu_read_lock();
105516 - ret = security_capable_noaudit(__task_cred(t), ns, cap);
105517 + ret = security_capable_noaudit(__task_cred(t), ns, cap) == 0 && gr_task_is_capable_nolog(t, cap);
105518 rcu_read_unlock();
105519
105520 - return (ret == 0);
105521 + return ret;
105522 }
105523
105524 /**
105525 @@ -379,7 +383,7 @@ bool ns_capable(struct user_namespace *ns, int cap)
105526 BUG();
105527 }
105528
105529 - if (security_capable(current_cred(), ns, cap) == 0) {
105530 + if (security_capable(current_cred(), ns, cap) == 0 && gr_is_capable(cap)) {
105531 current->flags |= PF_SUPERPRIV;
105532 return true;
105533 }
105534 @@ -387,6 +391,20 @@ bool ns_capable(struct user_namespace *ns, int cap)
105535 }
105536 EXPORT_SYMBOL(ns_capable);
105537
105538 +bool ns_capable_nolog(struct user_namespace *ns, int cap)
105539 +{
105540 + if (unlikely(!cap_valid(cap))) {
105541 + pr_crit("capable_nolog() called with invalid cap=%u\n", cap);
105542 + BUG();
105543 + }
105544 +
105545 + if (security_capable_noaudit(current_cred(), ns, cap) == 0 && gr_is_capable_nolog(cap)) {
105546 + current->flags |= PF_SUPERPRIV;
105547 + return true;
105548 + }
105549 + return false;
105550 +}
105551 +EXPORT_SYMBOL(ns_capable_nolog);
105552
105553 /**
105554 * capable - Determine if the current task has a superior capability in effect
105555 @@ -403,6 +421,13 @@ bool capable(int cap)
105556 return ns_capable(&init_user_ns, cap);
105557 }
105558 EXPORT_SYMBOL(capable);
105559 +
105560 +bool capable_nolog(int cap)
105561 +{
105562 + return ns_capable_nolog(&init_user_ns, cap);
105563 +}
105564 +EXPORT_SYMBOL(capable_nolog);
105565 +
105566 #endif /* CONFIG_MULTIUSER */
105567
105568 /**
105569 @@ -447,3 +472,12 @@ bool capable_wrt_inode_uidgid(const struct inode *inode, int cap)
105570 kgid_has_mapping(ns, inode->i_gid);
105571 }
105572 EXPORT_SYMBOL(capable_wrt_inode_uidgid);
105573 +
105574 +bool capable_wrt_inode_uidgid_nolog(const struct inode *inode, int cap)
105575 +{
105576 + struct user_namespace *ns = current_user_ns();
105577 +
105578 + return ns_capable_nolog(ns, cap) && kuid_has_mapping(ns, inode->i_uid) &&
105579 + kgid_has_mapping(ns, inode->i_gid);
105580 +}
105581 +EXPORT_SYMBOL(capable_wrt_inode_uidgid_nolog);
105582 diff --git a/kernel/cgroup.c b/kernel/cgroup.c
105583 index fe6f855..7dba913 100644
105584 --- a/kernel/cgroup.c
105585 +++ b/kernel/cgroup.c
105586 @@ -5425,6 +5425,9 @@ static void cgroup_release_agent(struct work_struct *work)
105587 if (!pathbuf || !agentbuf)
105588 goto out;
105589
105590 + if (agentbuf[0] == '\0')
105591 + goto out;
105592 +
105593 path = cgroup_path(cgrp, pathbuf, PATH_MAX);
105594 if (!path)
105595 goto out;
105596 @@ -5610,7 +5613,7 @@ static int cgroup_css_links_read(struct seq_file *seq, void *v)
105597 struct task_struct *task;
105598 int count = 0;
105599
105600 - seq_printf(seq, "css_set %p\n", cset);
105601 + seq_printf(seq, "css_set %pK\n", cset);
105602
105603 list_for_each_entry(task, &cset->tasks, cg_list) {
105604 if (count++ > MAX_TASKS_SHOWN_PER_CSS)
105605 diff --git a/kernel/compat.c b/kernel/compat.c
105606 index 333d364..762ec00 100644
105607 --- a/kernel/compat.c
105608 +++ b/kernel/compat.c
105609 @@ -13,6 +13,7 @@
105610
105611 #include <linux/linkage.h>
105612 #include <linux/compat.h>
105613 +#include <linux/module.h>
105614 #include <linux/errno.h>
105615 #include <linux/time.h>
105616 #include <linux/signal.h>
105617 @@ -220,7 +221,7 @@ static long compat_nanosleep_restart(struct restart_block *restart)
105618 mm_segment_t oldfs;
105619 long ret;
105620
105621 - restart->nanosleep.rmtp = (struct timespec __user *) &rmt;
105622 + restart->nanosleep.rmtp = (struct timespec __force_user *) &rmt;
105623 oldfs = get_fs();
105624 set_fs(KERNEL_DS);
105625 ret = hrtimer_nanosleep_restart(restart);
105626 @@ -252,7 +253,7 @@ COMPAT_SYSCALL_DEFINE2(nanosleep, struct compat_timespec __user *, rqtp,
105627 oldfs = get_fs();
105628 set_fs(KERNEL_DS);
105629 ret = hrtimer_nanosleep(&tu,
105630 - rmtp ? (struct timespec __user *)&rmt : NULL,
105631 + rmtp ? (struct timespec __force_user *)&rmt : NULL,
105632 HRTIMER_MODE_REL, CLOCK_MONOTONIC);
105633 set_fs(oldfs);
105634
105635 @@ -378,7 +379,7 @@ COMPAT_SYSCALL_DEFINE1(sigpending, compat_old_sigset_t __user *, set)
105636 mm_segment_t old_fs = get_fs();
105637
105638 set_fs(KERNEL_DS);
105639 - ret = sys_sigpending((old_sigset_t __user *) &s);
105640 + ret = sys_sigpending((old_sigset_t __force_user *) &s);
105641 set_fs(old_fs);
105642 if (ret == 0)
105643 ret = put_user(s, set);
105644 @@ -468,7 +469,7 @@ COMPAT_SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource,
105645 mm_segment_t old_fs = get_fs();
105646
105647 set_fs(KERNEL_DS);
105648 - ret = sys_old_getrlimit(resource, (struct rlimit __user *)&r);
105649 + ret = sys_old_getrlimit(resource, (struct rlimit __force_user *)&r);
105650 set_fs(old_fs);
105651
105652 if (!ret) {
105653 @@ -550,8 +551,8 @@ COMPAT_SYSCALL_DEFINE4(wait4,
105654 set_fs (KERNEL_DS);
105655 ret = sys_wait4(pid,
105656 (stat_addr ?
105657 - (unsigned int __user *) &status : NULL),
105658 - options, (struct rusage __user *) &r);
105659 + (unsigned int __force_user *) &status : NULL),
105660 + options, (struct rusage __force_user *) &r);
105661 set_fs (old_fs);
105662
105663 if (ret > 0) {
105664 @@ -577,8 +578,8 @@ COMPAT_SYSCALL_DEFINE5(waitid,
105665 memset(&info, 0, sizeof(info));
105666
105667 set_fs(KERNEL_DS);
105668 - ret = sys_waitid(which, pid, (siginfo_t __user *)&info, options,
105669 - uru ? (struct rusage __user *)&ru : NULL);
105670 + ret = sys_waitid(which, pid, (siginfo_t __force_user *)&info, options,
105671 + uru ? (struct rusage __force_user *)&ru : NULL);
105672 set_fs(old_fs);
105673
105674 if ((ret < 0) || (info.si_signo == 0))
105675 @@ -712,8 +713,8 @@ COMPAT_SYSCALL_DEFINE4(timer_settime, timer_t, timer_id, int, flags,
105676 oldfs = get_fs();
105677 set_fs(KERNEL_DS);
105678 err = sys_timer_settime(timer_id, flags,
105679 - (struct itimerspec __user *) &newts,
105680 - (struct itimerspec __user *) &oldts);
105681 + (struct itimerspec __force_user *) &newts,
105682 + (struct itimerspec __force_user *) &oldts);
105683 set_fs(oldfs);
105684 if (!err && old && put_compat_itimerspec(old, &oldts))
105685 return -EFAULT;
105686 @@ -730,7 +731,7 @@ COMPAT_SYSCALL_DEFINE2(timer_gettime, timer_t, timer_id,
105687 oldfs = get_fs();
105688 set_fs(KERNEL_DS);
105689 err = sys_timer_gettime(timer_id,
105690 - (struct itimerspec __user *) &ts);
105691 + (struct itimerspec __force_user *) &ts);
105692 set_fs(oldfs);
105693 if (!err && put_compat_itimerspec(setting, &ts))
105694 return -EFAULT;
105695 @@ -749,7 +750,7 @@ COMPAT_SYSCALL_DEFINE2(clock_settime, clockid_t, which_clock,
105696 oldfs = get_fs();
105697 set_fs(KERNEL_DS);
105698 err = sys_clock_settime(which_clock,
105699 - (struct timespec __user *) &ts);
105700 + (struct timespec __force_user *) &ts);
105701 set_fs(oldfs);
105702 return err;
105703 }
105704 @@ -764,7 +765,7 @@ COMPAT_SYSCALL_DEFINE2(clock_gettime, clockid_t, which_clock,
105705 oldfs = get_fs();
105706 set_fs(KERNEL_DS);
105707 err = sys_clock_gettime(which_clock,
105708 - (struct timespec __user *) &ts);
105709 + (struct timespec __force_user *) &ts);
105710 set_fs(oldfs);
105711 if (!err && compat_put_timespec(&ts, tp))
105712 return -EFAULT;
105713 @@ -784,7 +785,7 @@ COMPAT_SYSCALL_DEFINE2(clock_adjtime, clockid_t, which_clock,
105714
105715 oldfs = get_fs();
105716 set_fs(KERNEL_DS);
105717 - ret = sys_clock_adjtime(which_clock, (struct timex __user *) &txc);
105718 + ret = sys_clock_adjtime(which_clock, (struct timex __force_user *) &txc);
105719 set_fs(oldfs);
105720
105721 err = compat_put_timex(utp, &txc);
105722 @@ -804,7 +805,7 @@ COMPAT_SYSCALL_DEFINE2(clock_getres, clockid_t, which_clock,
105723 oldfs = get_fs();
105724 set_fs(KERNEL_DS);
105725 err = sys_clock_getres(which_clock,
105726 - (struct timespec __user *) &ts);
105727 + (struct timespec __force_user *) &ts);
105728 set_fs(oldfs);
105729 if (!err && tp && compat_put_timespec(&ts, tp))
105730 return -EFAULT;
105731 @@ -818,7 +819,7 @@ static long compat_clock_nanosleep_restart(struct restart_block *restart)
105732 struct timespec tu;
105733 struct compat_timespec __user *rmtp = restart->nanosleep.compat_rmtp;
105734
105735 - restart->nanosleep.rmtp = (struct timespec __user *) &tu;
105736 + restart->nanosleep.rmtp = (struct timespec __force_user *) &tu;
105737 oldfs = get_fs();
105738 set_fs(KERNEL_DS);
105739 err = clock_nanosleep_restart(restart);
105740 @@ -850,8 +851,8 @@ COMPAT_SYSCALL_DEFINE4(clock_nanosleep, clockid_t, which_clock, int, flags,
105741 oldfs = get_fs();
105742 set_fs(KERNEL_DS);
105743 err = sys_clock_nanosleep(which_clock, flags,
105744 - (struct timespec __user *) &in,
105745 - (struct timespec __user *) &out);
105746 + (struct timespec __force_user *) &in,
105747 + (struct timespec __force_user *) &out);
105748 set_fs(oldfs);
105749
105750 if ((err == -ERESTART_RESTARTBLOCK) && rmtp &&
105751 @@ -1147,7 +1148,7 @@ COMPAT_SYSCALL_DEFINE2(sched_rr_get_interval,
105752 mm_segment_t old_fs = get_fs();
105753
105754 set_fs(KERNEL_DS);
105755 - ret = sys_sched_rr_get_interval(pid, (struct timespec __user *)&t);
105756 + ret = sys_sched_rr_get_interval(pid, (struct timespec __force_user *)&t);
105757 set_fs(old_fs);
105758 if (compat_put_timespec(&t, interval))
105759 return -EFAULT;
105760 diff --git a/kernel/configs.c b/kernel/configs.c
105761 index c18b1f1..b9a0132 100644
105762 --- a/kernel/configs.c
105763 +++ b/kernel/configs.c
105764 @@ -74,8 +74,19 @@ static int __init ikconfig_init(void)
105765 struct proc_dir_entry *entry;
105766
105767 /* create the current config file */
105768 +#if defined(CONFIG_GRKERNSEC_PROC_ADD) || defined(CONFIG_GRKERNSEC_HIDESYM)
105769 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_HIDESYM)
105770 + entry = proc_create("config.gz", S_IFREG | S_IRUSR, NULL,
105771 + &ikconfig_file_ops);
105772 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
105773 + entry = proc_create("config.gz", S_IFREG | S_IRUSR | S_IRGRP, NULL,
105774 + &ikconfig_file_ops);
105775 +#endif
105776 +#else
105777 entry = proc_create("config.gz", S_IFREG | S_IRUGO, NULL,
105778 &ikconfig_file_ops);
105779 +#endif
105780 +
105781 if (!entry)
105782 return -ENOMEM;
105783
105784 diff --git a/kernel/cred.c b/kernel/cred.c
105785 index ec1c076..7da8a0e 100644
105786 --- a/kernel/cred.c
105787 +++ b/kernel/cred.c
105788 @@ -167,6 +167,15 @@ void exit_creds(struct task_struct *tsk)
105789 validate_creds(cred);
105790 alter_cred_subscribers(cred, -1);
105791 put_cred(cred);
105792 +
105793 +#ifdef CONFIG_GRKERNSEC_SETXID
105794 + cred = (struct cred *) tsk->delayed_cred;
105795 + if (cred != NULL) {
105796 + tsk->delayed_cred = NULL;
105797 + validate_creds(cred);
105798 + put_cred(cred);
105799 + }
105800 +#endif
105801 }
105802
105803 /**
105804 @@ -414,7 +423,7 @@ static bool cred_cap_issubset(const struct cred *set, const struct cred *subset)
105805 * Always returns 0 thus allowing this function to be tail-called at the end
105806 * of, say, sys_setgid().
105807 */
105808 -int commit_creds(struct cred *new)
105809 +static int __commit_creds(struct cred *new)
105810 {
105811 struct task_struct *task = current;
105812 const struct cred *old = task->real_cred;
105813 @@ -433,6 +442,8 @@ int commit_creds(struct cred *new)
105814
105815 get_cred(new); /* we will require a ref for the subj creds too */
105816
105817 + gr_set_role_label(task, new->uid, new->gid);
105818 +
105819 /* dumpability changes */
105820 if (!uid_eq(old->euid, new->euid) ||
105821 !gid_eq(old->egid, new->egid) ||
105822 @@ -482,6 +493,105 @@ int commit_creds(struct cred *new)
105823 put_cred(old);
105824 return 0;
105825 }
105826 +#ifdef CONFIG_GRKERNSEC_SETXID
105827 +extern int set_user(struct cred *new);
105828 +
105829 +void gr_delayed_cred_worker(void)
105830 +{
105831 + const struct cred *new = current->delayed_cred;
105832 + struct cred *ncred;
105833 +
105834 + current->delayed_cred = NULL;
105835 +
105836 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID) && new != NULL) {
105837 + // from doing get_cred on it when queueing this
105838 + put_cred(new);
105839 + return;
105840 + } else if (new == NULL)
105841 + return;
105842 +
105843 + ncred = prepare_creds();
105844 + if (!ncred)
105845 + goto die;
105846 + // uids
105847 + ncred->uid = new->uid;
105848 + ncred->euid = new->euid;
105849 + ncred->suid = new->suid;
105850 + ncred->fsuid = new->fsuid;
105851 + // gids
105852 + ncred->gid = new->gid;
105853 + ncred->egid = new->egid;
105854 + ncred->sgid = new->sgid;
105855 + ncred->fsgid = new->fsgid;
105856 + // groups
105857 + set_groups(ncred, new->group_info);
105858 + // caps
105859 + ncred->securebits = new->securebits;
105860 + ncred->cap_inheritable = new->cap_inheritable;
105861 + ncred->cap_permitted = new->cap_permitted;
105862 + ncred->cap_effective = new->cap_effective;
105863 + ncred->cap_bset = new->cap_bset;
105864 +
105865 + if (set_user(ncred)) {
105866 + abort_creds(ncred);
105867 + goto die;
105868 + }
105869 +
105870 + // from doing get_cred on it when queueing this
105871 + put_cred(new);
105872 +
105873 + __commit_creds(ncred);
105874 + return;
105875 +die:
105876 + // from doing get_cred on it when queueing this
105877 + put_cred(new);
105878 + do_group_exit(SIGKILL);
105879 +}
105880 +#endif
105881 +
105882 +int commit_creds(struct cred *new)
105883 +{
105884 +#ifdef CONFIG_GRKERNSEC_SETXID
105885 + int ret;
105886 + int schedule_it = 0;
105887 + struct task_struct *t;
105888 + unsigned oldsecurebits = current_cred()->securebits;
105889 +
105890 + /* we won't get called with tasklist_lock held for writing
105891 + and interrupts disabled as the cred struct in that case is
105892 + init_cred
105893 + */
105894 + if (grsec_enable_setxid && !current_is_single_threaded() &&
105895 + uid_eq(current_uid(), GLOBAL_ROOT_UID) &&
105896 + !uid_eq(new->uid, GLOBAL_ROOT_UID)) {
105897 + schedule_it = 1;
105898 + }
105899 + ret = __commit_creds(new);
105900 + if (schedule_it) {
105901 + rcu_read_lock();
105902 + read_lock(&tasklist_lock);
105903 + for (t = next_thread(current); t != current;
105904 + t = next_thread(t)) {
105905 + /* we'll check if the thread has uid 0 in
105906 + * the delayed worker routine
105907 + */
105908 + if (task_securebits(t) == oldsecurebits &&
105909 + t->delayed_cred == NULL) {
105910 + t->delayed_cred = get_cred(new);
105911 + set_tsk_thread_flag(t, TIF_GRSEC_SETXID);
105912 + set_tsk_need_resched(t);
105913 + }
105914 + }
105915 + read_unlock(&tasklist_lock);
105916 + rcu_read_unlock();
105917 + }
105918 +
105919 + return ret;
105920 +#else
105921 + return __commit_creds(new);
105922 +#endif
105923 +}
105924 +
105925 EXPORT_SYMBOL(commit_creds);
105926
105927 /**
105928 diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
105929 index 0874e2e..5b32cc9 100644
105930 --- a/kernel/debug/debug_core.c
105931 +++ b/kernel/debug/debug_core.c
105932 @@ -127,7 +127,7 @@ static DEFINE_RAW_SPINLOCK(dbg_slave_lock);
105933 */
105934 static atomic_t masters_in_kgdb;
105935 static atomic_t slaves_in_kgdb;
105936 -static atomic_t kgdb_break_tasklet_var;
105937 +static atomic_unchecked_t kgdb_break_tasklet_var;
105938 atomic_t kgdb_setting_breakpoint;
105939
105940 struct task_struct *kgdb_usethread;
105941 @@ -137,7 +137,7 @@ int kgdb_single_step;
105942 static pid_t kgdb_sstep_pid;
105943
105944 /* to keep track of the CPU which is doing the single stepping*/
105945 -atomic_t kgdb_cpu_doing_single_step = ATOMIC_INIT(-1);
105946 +atomic_unchecked_t kgdb_cpu_doing_single_step = ATOMIC_INIT(-1);
105947
105948 /*
105949 * If you are debugging a problem where roundup (the collection of
105950 @@ -552,7 +552,7 @@ return_normal:
105951 * kernel will only try for the value of sstep_tries before
105952 * giving up and continuing on.
105953 */
105954 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1 &&
105955 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1 &&
105956 (kgdb_info[cpu].task &&
105957 kgdb_info[cpu].task->pid != kgdb_sstep_pid) && --sstep_tries) {
105958 atomic_set(&kgdb_active, -1);
105959 @@ -654,8 +654,8 @@ cpu_master_loop:
105960 }
105961
105962 kgdb_restore:
105963 - if (atomic_read(&kgdb_cpu_doing_single_step) != -1) {
105964 - int sstep_cpu = atomic_read(&kgdb_cpu_doing_single_step);
105965 + if (atomic_read_unchecked(&kgdb_cpu_doing_single_step) != -1) {
105966 + int sstep_cpu = atomic_read_unchecked(&kgdb_cpu_doing_single_step);
105967 if (kgdb_info[sstep_cpu].task)
105968 kgdb_sstep_pid = kgdb_info[sstep_cpu].task->pid;
105969 else
105970 @@ -949,18 +949,18 @@ static void kgdb_unregister_callbacks(void)
105971 static void kgdb_tasklet_bpt(unsigned long ing)
105972 {
105973 kgdb_breakpoint();
105974 - atomic_set(&kgdb_break_tasklet_var, 0);
105975 + atomic_set_unchecked(&kgdb_break_tasklet_var, 0);
105976 }
105977
105978 static DECLARE_TASKLET(kgdb_tasklet_breakpoint, kgdb_tasklet_bpt, 0);
105979
105980 void kgdb_schedule_breakpoint(void)
105981 {
105982 - if (atomic_read(&kgdb_break_tasklet_var) ||
105983 + if (atomic_read_unchecked(&kgdb_break_tasklet_var) ||
105984 atomic_read(&kgdb_active) != -1 ||
105985 atomic_read(&kgdb_setting_breakpoint))
105986 return;
105987 - atomic_inc(&kgdb_break_tasklet_var);
105988 + atomic_inc_unchecked(&kgdb_break_tasklet_var);
105989 tasklet_schedule(&kgdb_tasklet_breakpoint);
105990 }
105991 EXPORT_SYMBOL_GPL(kgdb_schedule_breakpoint);
105992 diff --git a/kernel/debug/kdb/kdb_main.c b/kernel/debug/kdb/kdb_main.c
105993 index 41213454..861e178 100644
105994 --- a/kernel/debug/kdb/kdb_main.c
105995 +++ b/kernel/debug/kdb/kdb_main.c
105996 @@ -2021,7 +2021,7 @@ static int kdb_lsmod(int argc, const char **argv)
105997 continue;
105998
105999 kdb_printf("%-20s%8u 0x%p ", mod->name,
106000 - mod->core_size, (void *)mod);
106001 + mod->core_size_rx + mod->core_size_rw, (void *)mod);
106002 #ifdef CONFIG_MODULE_UNLOAD
106003 kdb_printf("%4d ", module_refcount(mod));
106004 #endif
106005 @@ -2031,7 +2031,7 @@ static int kdb_lsmod(int argc, const char **argv)
106006 kdb_printf(" (Loading)");
106007 else
106008 kdb_printf(" (Live)");
106009 - kdb_printf(" 0x%p", mod->module_core);
106010 + kdb_printf(" 0x%p 0x%p", mod->module_core_rx, mod->module_core_rw);
106011
106012 #ifdef CONFIG_MODULE_UNLOAD
106013 {
106014 diff --git a/kernel/events/core.c b/kernel/events/core.c
106015 index e6feb51..470c853 100644
106016 --- a/kernel/events/core.c
106017 +++ b/kernel/events/core.c
106018 @@ -174,8 +174,15 @@ static struct srcu_struct pmus_srcu;
106019 * 0 - disallow raw tracepoint access for unpriv
106020 * 1 - disallow cpu events for unpriv
106021 * 2 - disallow kernel profiling for unpriv
106022 + * 3 - disallow all unpriv perf event use
106023 */
106024 -int sysctl_perf_event_paranoid __read_mostly = 1;
106025 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
106026 +int sysctl_perf_event_legitimately_concerned __read_only = 3;
106027 +#elif defined(CONFIG_GRKERNSEC_HIDESYM)
106028 +int sysctl_perf_event_legitimately_concerned __read_only = 2;
106029 +#else
106030 +int sysctl_perf_event_legitimately_concerned __read_only = 1;
106031 +#endif
106032
106033 /* Minimum for 512 kiB + 1 user control page */
106034 int sysctl_perf_event_mlock __read_mostly = 512 + (PAGE_SIZE / 1024); /* 'free' kiB per user */
106035 @@ -201,7 +208,7 @@ void update_perf_cpu_limits(void)
106036
106037 tmp *= sysctl_perf_cpu_time_max_percent;
106038 do_div(tmp, 100);
106039 - ACCESS_ONCE(perf_sample_allowed_ns) = tmp;
106040 + ACCESS_ONCE_RW(perf_sample_allowed_ns) = tmp;
106041 }
106042
106043 static int perf_rotate_context(struct perf_cpu_context *cpuctx);
106044 @@ -307,7 +314,7 @@ void perf_sample_event_took(u64 sample_len_ns)
106045 }
106046 }
106047
106048 -static atomic64_t perf_event_id;
106049 +static atomic64_unchecked_t perf_event_id;
106050
106051 static void cpu_ctx_sched_out(struct perf_cpu_context *cpuctx,
106052 enum event_type_t event_type);
106053 @@ -3753,9 +3760,9 @@ u64 perf_event_read_value(struct perf_event *event, u64 *enabled, u64 *running)
106054 mutex_lock(&event->child_mutex);
106055 total += perf_event_read(event);
106056 *enabled += event->total_time_enabled +
106057 - atomic64_read(&event->child_total_time_enabled);
106058 + atomic64_read_unchecked(&event->child_total_time_enabled);
106059 *running += event->total_time_running +
106060 - atomic64_read(&event->child_total_time_running);
106061 + atomic64_read_unchecked(&event->child_total_time_running);
106062
106063 list_for_each_entry(child, &event->child_list, child_list) {
106064 total += perf_event_read(child);
106065 @@ -4285,10 +4292,10 @@ void perf_event_update_userpage(struct perf_event *event)
106066 userpg->offset -= local64_read(&event->hw.prev_count);
106067
106068 userpg->time_enabled = enabled +
106069 - atomic64_read(&event->child_total_time_enabled);
106070 + atomic64_read_unchecked(&event->child_total_time_enabled);
106071
106072 userpg->time_running = running +
106073 - atomic64_read(&event->child_total_time_running);
106074 + atomic64_read_unchecked(&event->child_total_time_running);
106075
106076 arch_perf_update_userpage(event, userpg, now);
106077
106078 @@ -4963,7 +4970,7 @@ perf_output_sample_ustack(struct perf_output_handle *handle, u64 dump_size,
106079
106080 /* Data. */
106081 sp = perf_user_stack_pointer(regs);
106082 - rem = __output_copy_user(handle, (void *) sp, dump_size);
106083 + rem = __output_copy_user(handle, (void __user *) sp, dump_size);
106084 dyn_size = dump_size - rem;
106085
106086 perf_output_skip(handle, rem);
106087 @@ -5054,11 +5061,11 @@ static void perf_output_read_one(struct perf_output_handle *handle,
106088 values[n++] = perf_event_count(event);
106089 if (read_format & PERF_FORMAT_TOTAL_TIME_ENABLED) {
106090 values[n++] = enabled +
106091 - atomic64_read(&event->child_total_time_enabled);
106092 + atomic64_read_unchecked(&event->child_total_time_enabled);
106093 }
106094 if (read_format & PERF_FORMAT_TOTAL_TIME_RUNNING) {
106095 values[n++] = running +
106096 - atomic64_read(&event->child_total_time_running);
106097 + atomic64_read_unchecked(&event->child_total_time_running);
106098 }
106099 if (read_format & PERF_FORMAT_ID)
106100 values[n++] = primary_event_id(event);
106101 @@ -7588,7 +7595,7 @@ perf_event_alloc(struct perf_event_attr *attr, int cpu,
106102 event->parent = parent_event;
106103
106104 event->ns = get_pid_ns(task_active_pid_ns(current));
106105 - event->id = atomic64_inc_return(&perf_event_id);
106106 + event->id = atomic64_inc_return_unchecked(&perf_event_id);
106107
106108 event->state = PERF_EVENT_STATE_INACTIVE;
106109
106110 @@ -7947,6 +7954,11 @@ SYSCALL_DEFINE5(perf_event_open,
106111 if (flags & ~PERF_FLAG_ALL)
106112 return -EINVAL;
106113
106114 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
106115 + if (perf_paranoid_any() && !capable(CAP_SYS_ADMIN))
106116 + return -EACCES;
106117 +#endif
106118 +
106119 err = perf_copy_attr(attr_uptr, &attr);
106120 if (err)
106121 return err;
106122 @@ -8395,10 +8407,10 @@ static void sync_child_event(struct perf_event *child_event,
106123 /*
106124 * Add back the child's count to the parent's count:
106125 */
106126 - atomic64_add(child_val, &parent_event->child_count);
106127 - atomic64_add(child_event->total_time_enabled,
106128 + atomic64_add_unchecked(child_val, &parent_event->child_count);
106129 + atomic64_add_unchecked(child_event->total_time_enabled,
106130 &parent_event->child_total_time_enabled);
106131 - atomic64_add(child_event->total_time_running,
106132 + atomic64_add_unchecked(child_event->total_time_running,
106133 &parent_event->child_total_time_running);
106134
106135 /*
106136 diff --git a/kernel/events/internal.h b/kernel/events/internal.h
106137 index 2bbad9c..056f20c 100644
106138 --- a/kernel/events/internal.h
106139 +++ b/kernel/events/internal.h
106140 @@ -115,10 +115,10 @@ static inline unsigned long perf_aux_size(struct ring_buffer *rb)
106141 return rb->aux_nr_pages << PAGE_SHIFT;
106142 }
106143
106144 -#define DEFINE_OUTPUT_COPY(func_name, memcpy_func) \
106145 +#define DEFINE_OUTPUT_COPY(func_name, memcpy_func, user) \
106146 static inline unsigned long \
106147 func_name(struct perf_output_handle *handle, \
106148 - const void *buf, unsigned long len) \
106149 + const void user *buf, unsigned long len) \
106150 { \
106151 unsigned long size, written; \
106152 \
106153 @@ -151,7 +151,7 @@ memcpy_common(void *dst, const void *src, unsigned long n)
106154 return 0;
106155 }
106156
106157 -DEFINE_OUTPUT_COPY(__output_copy, memcpy_common)
106158 +DEFINE_OUTPUT_COPY(__output_copy, memcpy_common, )
106159
106160 static inline unsigned long
106161 memcpy_skip(void *dst, const void *src, unsigned long n)
106162 @@ -159,7 +159,7 @@ memcpy_skip(void *dst, const void *src, unsigned long n)
106163 return 0;
106164 }
106165
106166 -DEFINE_OUTPUT_COPY(__output_skip, memcpy_skip)
106167 +DEFINE_OUTPUT_COPY(__output_skip, memcpy_skip, )
106168
106169 #ifndef arch_perf_out_copy_user
106170 #define arch_perf_out_copy_user arch_perf_out_copy_user
106171 @@ -177,7 +177,7 @@ arch_perf_out_copy_user(void *dst, const void *src, unsigned long n)
106172 }
106173 #endif
106174
106175 -DEFINE_OUTPUT_COPY(__output_copy_user, arch_perf_out_copy_user)
106176 +DEFINE_OUTPUT_COPY(__output_copy_user, arch_perf_out_copy_user, __user)
106177
106178 /* Callchain handling */
106179 extern struct perf_callchain_entry *
106180 diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c
106181 index cb346f2..e4dc317 100644
106182 --- a/kernel/events/uprobes.c
106183 +++ b/kernel/events/uprobes.c
106184 @@ -1670,7 +1670,7 @@ static int is_trap_at_addr(struct mm_struct *mm, unsigned long vaddr)
106185 {
106186 struct page *page;
106187 uprobe_opcode_t opcode;
106188 - int result;
106189 + long result;
106190
106191 pagefault_disable();
106192 result = __copy_from_user_inatomic(&opcode, (void __user*)vaddr,
106193 diff --git a/kernel/exit.c b/kernel/exit.c
106194 index 031325e..c6342c4 100644
106195 --- a/kernel/exit.c
106196 +++ b/kernel/exit.c
106197 @@ -171,6 +171,10 @@ void release_task(struct task_struct *p)
106198 struct task_struct *leader;
106199 int zap_leader;
106200 repeat:
106201 +#ifdef CONFIG_NET
106202 + gr_del_task_from_ip_table(p);
106203 +#endif
106204 +
106205 /* don't need to get the RCU readlock here - the process is dead and
106206 * can't be modifying its own credentials. But shut RCU-lockdep up */
106207 rcu_read_lock();
106208 @@ -656,6 +660,8 @@ void do_exit(long code)
106209 int group_dead;
106210 TASKS_RCU(int tasks_rcu_i);
106211
106212 + set_fs(USER_DS);
106213 +
106214 profile_task_exit(tsk);
106215
106216 WARN_ON(blk_needs_flush_plug(tsk));
106217 @@ -672,7 +678,6 @@ void do_exit(long code)
106218 * mm_release()->clear_child_tid() from writing to a user-controlled
106219 * kernel address.
106220 */
106221 - set_fs(USER_DS);
106222
106223 ptrace_event(PTRACE_EVENT_EXIT, code);
106224
106225 @@ -730,6 +735,9 @@ void do_exit(long code)
106226 tsk->exit_code = code;
106227 taskstats_exit(tsk, group_dead);
106228
106229 + gr_acl_handle_psacct(tsk, code);
106230 + gr_acl_handle_exit();
106231 +
106232 exit_mm(tsk);
106233
106234 if (group_dead)
106235 @@ -847,7 +855,7 @@ SYSCALL_DEFINE1(exit, int, error_code)
106236 * Take down every thread in the group. This is called by fatal signals
106237 * as well as by sys_exit_group (below).
106238 */
106239 -void
106240 +__noreturn void
106241 do_group_exit(int exit_code)
106242 {
106243 struct signal_struct *sig = current->signal;
106244 diff --git a/kernel/fork.c b/kernel/fork.c
106245 index e769c8c..9fa1de5 100644
106246 --- a/kernel/fork.c
106247 +++ b/kernel/fork.c
106248 @@ -188,12 +188,54 @@ static void free_thread_info(struct thread_info *ti)
106249 void thread_info_cache_init(void)
106250 {
106251 thread_info_cache = kmem_cache_create("thread_info", THREAD_SIZE,
106252 - THREAD_SIZE, 0, NULL);
106253 + THREAD_SIZE, SLAB_USERCOPY, NULL);
106254 BUG_ON(thread_info_cache == NULL);
106255 }
106256 # endif
106257 #endif
106258
106259 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
106260 +static inline struct thread_info *gr_alloc_thread_info_node(struct task_struct *tsk,
106261 + int node, void **lowmem_stack)
106262 +{
106263 + struct page *pages[THREAD_SIZE / PAGE_SIZE];
106264 + void *ret = NULL;
106265 + unsigned int i;
106266 +
106267 + *lowmem_stack = alloc_thread_info_node(tsk, node);
106268 + if (*lowmem_stack == NULL)
106269 + goto out;
106270 +
106271 + for (i = 0; i < THREAD_SIZE / PAGE_SIZE; i++)
106272 + pages[i] = virt_to_page(*lowmem_stack + (i * PAGE_SIZE));
106273 +
106274 + /* use VM_IOREMAP to gain THREAD_SIZE alignment */
106275 + ret = vmap(pages, THREAD_SIZE / PAGE_SIZE, VM_IOREMAP, PAGE_KERNEL);
106276 + if (ret == NULL) {
106277 + free_thread_info(*lowmem_stack);
106278 + *lowmem_stack = NULL;
106279 + }
106280 +
106281 +out:
106282 + return ret;
106283 +}
106284 +
106285 +static inline void gr_free_thread_info(struct task_struct *tsk, struct thread_info *ti)
106286 +{
106287 + unmap_process_stacks(tsk);
106288 +}
106289 +#else
106290 +static inline struct thread_info *gr_alloc_thread_info_node(struct task_struct *tsk,
106291 + int node, void **lowmem_stack)
106292 +{
106293 + return alloc_thread_info_node(tsk, node);
106294 +}
106295 +static inline void gr_free_thread_info(struct task_struct *tsk, struct thread_info *ti)
106296 +{
106297 + free_thread_info(ti);
106298 +}
106299 +#endif
106300 +
106301 /* SLAB cache for signal_struct structures (tsk->signal) */
106302 static struct kmem_cache *signal_cachep;
106303
106304 @@ -212,18 +254,22 @@ struct kmem_cache *vm_area_cachep;
106305 /* SLAB cache for mm_struct structures (tsk->mm) */
106306 static struct kmem_cache *mm_cachep;
106307
106308 -static void account_kernel_stack(struct thread_info *ti, int account)
106309 +static void account_kernel_stack(struct task_struct *tsk, struct thread_info *ti, int account)
106310 {
106311 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
106312 + struct zone *zone = page_zone(virt_to_page(tsk->lowmem_stack));
106313 +#else
106314 struct zone *zone = page_zone(virt_to_page(ti));
106315 +#endif
106316
106317 mod_zone_page_state(zone, NR_KERNEL_STACK, account);
106318 }
106319
106320 void free_task(struct task_struct *tsk)
106321 {
106322 - account_kernel_stack(tsk->stack, -1);
106323 + account_kernel_stack(tsk, tsk->stack, -1);
106324 arch_release_thread_info(tsk->stack);
106325 - free_thread_info(tsk->stack);
106326 + gr_free_thread_info(tsk, tsk->stack);
106327 rt_mutex_debug_task_free(tsk);
106328 ftrace_graph_exit_task(tsk);
106329 put_seccomp_filter(tsk);
106330 @@ -289,7 +335,7 @@ static void set_max_threads(unsigned int max_threads_suggested)
106331
106332 #ifdef CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT
106333 /* Initialized by the architecture: */
106334 -int arch_task_struct_size __read_mostly;
106335 +size_t arch_task_struct_size __read_mostly;
106336 #endif
106337
106338 void __init fork_init(void)
106339 @@ -334,6 +380,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
106340 {
106341 struct task_struct *tsk;
106342 struct thread_info *ti;
106343 + void *lowmem_stack;
106344 int node = tsk_fork_get_node(orig);
106345 int err;
106346
106347 @@ -341,7 +388,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
106348 if (!tsk)
106349 return NULL;
106350
106351 - ti = alloc_thread_info_node(tsk, node);
106352 + ti = gr_alloc_thread_info_node(tsk, node, &lowmem_stack);
106353 if (!ti)
106354 goto free_tsk;
106355
106356 @@ -350,6 +397,9 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
106357 goto free_ti;
106358
106359 tsk->stack = ti;
106360 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
106361 + tsk->lowmem_stack = lowmem_stack;
106362 +#endif
106363 #ifdef CONFIG_SECCOMP
106364 /*
106365 * We must handle setting up seccomp filters once we're under
106366 @@ -366,7 +416,7 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
106367 set_task_stack_end_magic(tsk);
106368
106369 #ifdef CONFIG_CC_STACKPROTECTOR
106370 - tsk->stack_canary = get_random_int();
106371 + tsk->stack_canary = pax_get_random_long();
106372 #endif
106373
106374 /*
106375 @@ -380,24 +430,89 @@ static struct task_struct *dup_task_struct(struct task_struct *orig)
106376 tsk->splice_pipe = NULL;
106377 tsk->task_frag.page = NULL;
106378
106379 - account_kernel_stack(ti, 1);
106380 + account_kernel_stack(tsk, ti, 1);
106381
106382 return tsk;
106383
106384 free_ti:
106385 - free_thread_info(ti);
106386 + gr_free_thread_info(tsk, ti);
106387 free_tsk:
106388 free_task_struct(tsk);
106389 return NULL;
106390 }
106391
106392 #ifdef CONFIG_MMU
106393 -static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
106394 +static struct vm_area_struct *dup_vma(struct mm_struct *mm, struct mm_struct *oldmm, struct vm_area_struct *mpnt)
106395 +{
106396 + struct vm_area_struct *tmp;
106397 + unsigned long charge;
106398 + struct file *file;
106399 + int retval;
106400 +
106401 + charge = 0;
106402 + if (mpnt->vm_flags & VM_ACCOUNT) {
106403 + unsigned long len = vma_pages(mpnt);
106404 +
106405 + if (security_vm_enough_memory_mm(oldmm, len)) /* sic */
106406 + goto fail_nomem;
106407 + charge = len;
106408 + }
106409 + tmp = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
106410 + if (!tmp)
106411 + goto fail_nomem;
106412 + *tmp = *mpnt;
106413 + tmp->vm_mm = mm;
106414 + INIT_LIST_HEAD(&tmp->anon_vma_chain);
106415 + retval = vma_dup_policy(mpnt, tmp);
106416 + if (retval)
106417 + goto fail_nomem_policy;
106418 + if (anon_vma_fork(tmp, mpnt))
106419 + goto fail_nomem_anon_vma_fork;
106420 + tmp->vm_flags &= ~VM_LOCKED;
106421 + tmp->vm_next = tmp->vm_prev = NULL;
106422 + tmp->vm_mirror = NULL;
106423 + file = tmp->vm_file;
106424 + if (file) {
106425 + struct inode *inode = file_inode(file);
106426 + struct address_space *mapping = file->f_mapping;
106427 +
106428 + get_file(file);
106429 + if (tmp->vm_flags & VM_DENYWRITE)
106430 + atomic_dec(&inode->i_writecount);
106431 + i_mmap_lock_write(mapping);
106432 + if (tmp->vm_flags & VM_SHARED)
106433 + atomic_inc(&mapping->i_mmap_writable);
106434 + flush_dcache_mmap_lock(mapping);
106435 + /* insert tmp into the share list, just after mpnt */
106436 + vma_interval_tree_insert_after(tmp, mpnt, &mapping->i_mmap);
106437 + flush_dcache_mmap_unlock(mapping);
106438 + i_mmap_unlock_write(mapping);
106439 + }
106440 +
106441 + /*
106442 + * Clear hugetlb-related page reserves for children. This only
106443 + * affects MAP_PRIVATE mappings. Faults generated by the child
106444 + * are not guaranteed to succeed, even if read-only
106445 + */
106446 + if (is_vm_hugetlb_page(tmp))
106447 + reset_vma_resv_huge_pages(tmp);
106448 +
106449 + return tmp;
106450 +
106451 +fail_nomem_anon_vma_fork:
106452 + mpol_put(vma_policy(tmp));
106453 +fail_nomem_policy:
106454 + kmem_cache_free(vm_area_cachep, tmp);
106455 +fail_nomem:
106456 + vm_unacct_memory(charge);
106457 + return NULL;
106458 +}
106459 +
106460 +static __latent_entropy int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
106461 {
106462 struct vm_area_struct *mpnt, *tmp, *prev, **pprev;
106463 struct rb_node **rb_link, *rb_parent;
106464 int retval;
106465 - unsigned long charge;
106466
106467 uprobe_start_dup_mmap();
106468 down_write(&oldmm->mmap_sem);
106469 @@ -428,51 +543,15 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
106470
106471 prev = NULL;
106472 for (mpnt = oldmm->mmap; mpnt; mpnt = mpnt->vm_next) {
106473 - struct file *file;
106474 -
106475 if (mpnt->vm_flags & VM_DONTCOPY) {
106476 vm_stat_account(mm, mpnt->vm_flags, mpnt->vm_file,
106477 -vma_pages(mpnt));
106478 continue;
106479 }
106480 - charge = 0;
106481 - if (mpnt->vm_flags & VM_ACCOUNT) {
106482 - unsigned long len = vma_pages(mpnt);
106483 -
106484 - if (security_vm_enough_memory_mm(oldmm, len)) /* sic */
106485 - goto fail_nomem;
106486 - charge = len;
106487 - }
106488 - tmp = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
106489 - if (!tmp)
106490 - goto fail_nomem;
106491 - *tmp = *mpnt;
106492 - INIT_LIST_HEAD(&tmp->anon_vma_chain);
106493 - retval = vma_dup_policy(mpnt, tmp);
106494 - if (retval)
106495 - goto fail_nomem_policy;
106496 - tmp->vm_mm = mm;
106497 - if (anon_vma_fork(tmp, mpnt))
106498 - goto fail_nomem_anon_vma_fork;
106499 - tmp->vm_flags &= ~VM_LOCKED;
106500 - tmp->vm_next = tmp->vm_prev = NULL;
106501 - file = tmp->vm_file;
106502 - if (file) {
106503 - struct inode *inode = file_inode(file);
106504 - struct address_space *mapping = file->f_mapping;
106505 -
106506 - get_file(file);
106507 - if (tmp->vm_flags & VM_DENYWRITE)
106508 - atomic_dec(&inode->i_writecount);
106509 - i_mmap_lock_write(mapping);
106510 - if (tmp->vm_flags & VM_SHARED)
106511 - atomic_inc(&mapping->i_mmap_writable);
106512 - flush_dcache_mmap_lock(mapping);
106513 - /* insert tmp into the share list, just after mpnt */
106514 - vma_interval_tree_insert_after(tmp, mpnt,
106515 - &mapping->i_mmap);
106516 - flush_dcache_mmap_unlock(mapping);
106517 - i_mmap_unlock_write(mapping);
106518 + tmp = dup_vma(mm, oldmm, mpnt);
106519 + if (!tmp) {
106520 + retval = -ENOMEM;
106521 + goto out;
106522 }
106523
106524 /*
106525 @@ -504,6 +583,31 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
106526 if (retval)
106527 goto out;
106528 }
106529 +
106530 +#ifdef CONFIG_PAX_SEGMEXEC
106531 + if (oldmm->pax_flags & MF_PAX_SEGMEXEC) {
106532 + struct vm_area_struct *mpnt_m;
106533 +
106534 + for (mpnt = oldmm->mmap, mpnt_m = mm->mmap; mpnt; mpnt = mpnt->vm_next, mpnt_m = mpnt_m->vm_next) {
106535 + BUG_ON(!mpnt_m || mpnt_m->vm_mirror || mpnt->vm_mm != oldmm || mpnt_m->vm_mm != mm);
106536 +
106537 + if (!mpnt->vm_mirror)
106538 + continue;
106539 +
106540 + if (mpnt->vm_end <= SEGMEXEC_TASK_SIZE) {
106541 + BUG_ON(mpnt->vm_mirror->vm_mirror != mpnt);
106542 + mpnt->vm_mirror = mpnt_m;
106543 + } else {
106544 + BUG_ON(mpnt->vm_mirror->vm_mirror == mpnt || mpnt->vm_mirror->vm_mirror->vm_mm != mm);
106545 + mpnt_m->vm_mirror = mpnt->vm_mirror->vm_mirror;
106546 + mpnt_m->vm_mirror->vm_mirror = mpnt_m;
106547 + mpnt->vm_mirror->vm_mirror = mpnt;
106548 + }
106549 + }
106550 + BUG_ON(mpnt_m);
106551 + }
106552 +#endif
106553 +
106554 /* a new mm has just been created */
106555 arch_dup_mmap(oldmm, mm);
106556 retval = 0;
106557 @@ -513,14 +617,6 @@ out:
106558 up_write(&oldmm->mmap_sem);
106559 uprobe_end_dup_mmap();
106560 return retval;
106561 -fail_nomem_anon_vma_fork:
106562 - mpol_put(vma_policy(tmp));
106563 -fail_nomem_policy:
106564 - kmem_cache_free(vm_area_cachep, tmp);
106565 -fail_nomem:
106566 - retval = -ENOMEM;
106567 - vm_unacct_memory(charge);
106568 - goto out;
106569 }
106570
106571 static inline int mm_alloc_pgd(struct mm_struct *mm)
106572 @@ -795,8 +891,8 @@ struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
106573 return ERR_PTR(err);
106574
106575 mm = get_task_mm(task);
106576 - if (mm && mm != current->mm &&
106577 - !ptrace_may_access(task, mode)) {
106578 + if (mm && ((mm != current->mm && !ptrace_may_access(task, mode)) ||
106579 + (mode == PTRACE_MODE_ATTACH && (gr_handle_proc_ptrace(task) || gr_acl_handle_procpidmem(task))))) {
106580 mmput(mm);
106581 mm = ERR_PTR(-EACCES);
106582 }
106583 @@ -997,13 +1093,20 @@ static int copy_fs(unsigned long clone_flags, struct task_struct *tsk)
106584 spin_unlock(&fs->lock);
106585 return -EAGAIN;
106586 }
106587 - fs->users++;
106588 + atomic_inc(&fs->users);
106589 spin_unlock(&fs->lock);
106590 return 0;
106591 }
106592 tsk->fs = copy_fs_struct(fs);
106593 if (!tsk->fs)
106594 return -ENOMEM;
106595 + /* Carry through gr_chroot_dentry and is_chrooted instead
106596 + of recomputing it here. Already copied when the task struct
106597 + is duplicated. This allows pivot_root to not be treated as
106598 + a chroot
106599 + */
106600 + //gr_set_chroot_entries(tsk, &tsk->fs->root);
106601 +
106602 return 0;
106603 }
106604
106605 @@ -1238,7 +1341,7 @@ init_task_pid(struct task_struct *task, enum pid_type type, struct pid *pid)
106606 * parts of the process environment (as per the clone
106607 * flags). The actual kick-off is left to the caller.
106608 */
106609 -static struct task_struct *copy_process(unsigned long clone_flags,
106610 +static __latent_entropy struct task_struct *copy_process(unsigned long clone_flags,
106611 unsigned long stack_start,
106612 unsigned long stack_size,
106613 int __user *child_tidptr,
106614 @@ -1310,6 +1413,9 @@ static struct task_struct *copy_process(unsigned long clone_flags,
106615 DEBUG_LOCKS_WARN_ON(!p->softirqs_enabled);
106616 #endif
106617 retval = -EAGAIN;
106618 +
106619 + gr_learn_resource(p, RLIMIT_NPROC, atomic_read(&p->real_cred->user->processes), 0);
106620 +
106621 if (atomic_read(&p->real_cred->user->processes) >=
106622 task_rlimit(p, RLIMIT_NPROC)) {
106623 if (p->real_cred->user != INIT_USER &&
106624 @@ -1560,6 +1666,11 @@ static struct task_struct *copy_process(unsigned long clone_flags,
106625 goto bad_fork_free_pid;
106626 }
106627
106628 + /* synchronizes with gr_set_acls()
106629 + we need to call this past the point of no return for fork()
106630 + */
106631 + gr_copy_label(p);
106632 +
106633 if (likely(p->pid)) {
106634 ptrace_init_task(p, (clone_flags & CLONE_PTRACE) || trace);
106635
106636 @@ -1649,6 +1760,8 @@ bad_fork_cleanup_count:
106637 bad_fork_free:
106638 free_task(p);
106639 fork_out:
106640 + gr_log_forkfail(retval);
106641 +
106642 return ERR_PTR(retval);
106643 }
106644
106645 @@ -1711,6 +1824,7 @@ long _do_fork(unsigned long clone_flags,
106646
106647 p = copy_process(clone_flags, stack_start, stack_size,
106648 child_tidptr, NULL, trace, tls);
106649 + add_latent_entropy();
106650 /*
106651 * Do this prior waking up the new thread - the thread pointer
106652 * might get invalid after that point, if the thread exits quickly.
106653 @@ -1727,6 +1841,8 @@ long _do_fork(unsigned long clone_flags,
106654 if (clone_flags & CLONE_PARENT_SETTID)
106655 put_user(nr, parent_tidptr);
106656
106657 + gr_handle_brute_check();
106658 +
106659 if (clone_flags & CLONE_VFORK) {
106660 p->vfork_done = &vfork;
106661 init_completion(&vfork);
106662 @@ -1859,7 +1975,7 @@ void __init proc_caches_init(void)
106663 mm_cachep = kmem_cache_create("mm_struct",
106664 sizeof(struct mm_struct), ARCH_MIN_MMSTRUCT_ALIGN,
106665 SLAB_HWCACHE_ALIGN|SLAB_PANIC|SLAB_NOTRACK, NULL);
106666 - vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC);
106667 + vm_area_cachep = KMEM_CACHE(vm_area_struct, SLAB_PANIC | SLAB_NO_SANITIZE);
106668 mmap_init();
106669 nsproxy_cache_init();
106670 }
106671 @@ -1907,7 +2023,7 @@ static int unshare_fs(unsigned long unshare_flags, struct fs_struct **new_fsp)
106672 return 0;
106673
106674 /* don't need lock here; in the worst case we'll do useless copy */
106675 - if (fs->users == 1)
106676 + if (atomic_read(&fs->users) == 1)
106677 return 0;
106678
106679 *new_fsp = copy_fs_struct(fs);
106680 @@ -2019,7 +2135,8 @@ SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
106681 fs = current->fs;
106682 spin_lock(&fs->lock);
106683 current->fs = new_fs;
106684 - if (--fs->users)
106685 + gr_set_chroot_entries(current, &current->fs->root);
106686 + if (atomic_dec_return(&fs->users))
106687 new_fs = NULL;
106688 else
106689 new_fs = fs;
106690 @@ -2083,7 +2200,7 @@ int unshare_files(struct files_struct **displaced)
106691 int sysctl_max_threads(struct ctl_table *table, int write,
106692 void __user *buffer, size_t *lenp, loff_t *ppos)
106693 {
106694 - struct ctl_table t;
106695 + ctl_table_no_const t;
106696 int ret;
106697 int threads = max_threads;
106698 int min = MIN_THREADS;
106699 diff --git a/kernel/futex.c b/kernel/futex.c
106700 index c4a182f..e789324 100644
106701 --- a/kernel/futex.c
106702 +++ b/kernel/futex.c
106703 @@ -201,7 +201,7 @@ struct futex_pi_state {
106704 atomic_t refcount;
106705
106706 union futex_key key;
106707 -};
106708 +} __randomize_layout;
106709
106710 /**
106711 * struct futex_q - The hashed futex queue entry, one per waiting task
106712 @@ -235,7 +235,7 @@ struct futex_q {
106713 struct rt_mutex_waiter *rt_waiter;
106714 union futex_key *requeue_pi_key;
106715 u32 bitset;
106716 -};
106717 +} __randomize_layout;
106718
106719 static const struct futex_q futex_q_init = {
106720 /* list gets initialized in queue_me()*/
106721 @@ -402,6 +402,11 @@ get_futex_key(u32 __user *uaddr, int fshared, union futex_key *key, int rw)
106722 struct page *page, *page_head;
106723 int err, ro = 0;
106724
106725 +#ifdef CONFIG_PAX_SEGMEXEC
106726 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && address >= SEGMEXEC_TASK_SIZE)
106727 + return -EFAULT;
106728 +#endif
106729 +
106730 /*
106731 * The futex address must be "naturally" aligned.
106732 */
106733 @@ -601,7 +606,7 @@ static int cmpxchg_futex_value_locked(u32 *curval, u32 __user *uaddr,
106734
106735 static int get_futex_value_locked(u32 *dest, u32 __user *from)
106736 {
106737 - int ret;
106738 + unsigned long ret;
106739
106740 pagefault_disable();
106741 ret = __copy_from_user_inatomic(dest, from, sizeof(u32));
106742 @@ -3030,6 +3035,7 @@ static void __init futex_detect_cmpxchg(void)
106743 {
106744 #ifndef CONFIG_HAVE_FUTEX_CMPXCHG
106745 u32 curval;
106746 + mm_segment_t oldfs;
106747
106748 /*
106749 * This will fail and we want it. Some arch implementations do
106750 @@ -3041,8 +3047,11 @@ static void __init futex_detect_cmpxchg(void)
106751 * implementation, the non-functional ones will return
106752 * -ENOSYS.
106753 */
106754 + oldfs = get_fs();
106755 + set_fs(USER_DS);
106756 if (cmpxchg_futex_value_locked(&curval, NULL, 0, 0) == -EFAULT)
106757 futex_cmpxchg_enabled = 1;
106758 + set_fs(oldfs);
106759 #endif
106760 }
106761
106762 diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
106763 index 55c8c93..9ba7ad6 100644
106764 --- a/kernel/futex_compat.c
106765 +++ b/kernel/futex_compat.c
106766 @@ -32,7 +32,7 @@ fetch_robust_entry(compat_uptr_t *uentry, struct robust_list __user **entry,
106767 return 0;
106768 }
106769
106770 -static void __user *futex_uaddr(struct robust_list __user *entry,
106771 +static void __user __intentional_overflow(-1) *futex_uaddr(struct robust_list __user *entry,
106772 compat_long_t futex_offset)
106773 {
106774 compat_uptr_t base = ptr_to_compat(entry);
106775 diff --git a/kernel/gcov/base.c b/kernel/gcov/base.c
106776 index 7080ae1..c9b3761 100644
106777 --- a/kernel/gcov/base.c
106778 +++ b/kernel/gcov/base.c
106779 @@ -123,11 +123,6 @@ void gcov_enable_events(void)
106780 }
106781
106782 #ifdef CONFIG_MODULES
106783 -static inline int within(void *addr, void *start, unsigned long size)
106784 -{
106785 - return ((addr >= start) && (addr < start + size));
106786 -}
106787 -
106788 /* Update list and generate events when modules are unloaded. */
106789 static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
106790 void *data)
106791 @@ -142,7 +137,7 @@ static int gcov_module_notifier(struct notifier_block *nb, unsigned long event,
106792
106793 /* Remove entries located in module from linked list. */
106794 while ((info = gcov_info_next(info))) {
106795 - if (within(info, mod->module_core, mod->core_size)) {
106796 + if (within_module_core_rw((unsigned long)info, mod)) {
106797 gcov_info_unlink(prev, info);
106798 if (gcov_events_enabled)
106799 gcov_event(GCOV_REMOVE, info);
106800 diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
106801 index f974485..c5b8afd 100644
106802 --- a/kernel/irq/manage.c
106803 +++ b/kernel/irq/manage.c
106804 @@ -937,7 +937,7 @@ static int irq_thread(void *data)
106805
106806 action_ret = handler_fn(desc, action);
106807 if (action_ret == IRQ_HANDLED)
106808 - atomic_inc(&desc->threads_handled);
106809 + atomic_inc_unchecked(&desc->threads_handled);
106810
106811 wake_threads_waitq(desc);
106812 }
106813 diff --git a/kernel/irq/msi.c b/kernel/irq/msi.c
106814 index 7bf1f1b..d73e508 100644
106815 --- a/kernel/irq/msi.c
106816 +++ b/kernel/irq/msi.c
106817 @@ -195,16 +195,18 @@ static void msi_domain_update_dom_ops(struct msi_domain_info *info)
106818 return;
106819 }
106820
106821 + pax_open_kernel();
106822 if (ops->get_hwirq == NULL)
106823 - ops->get_hwirq = msi_domain_ops_default.get_hwirq;
106824 + *(void **)&ops->get_hwirq = msi_domain_ops_default.get_hwirq;
106825 if (ops->msi_init == NULL)
106826 - ops->msi_init = msi_domain_ops_default.msi_init;
106827 + *(void **)&ops->msi_init = msi_domain_ops_default.msi_init;
106828 if (ops->msi_check == NULL)
106829 - ops->msi_check = msi_domain_ops_default.msi_check;
106830 + *(void **)&ops->msi_check = msi_domain_ops_default.msi_check;
106831 if (ops->msi_prepare == NULL)
106832 - ops->msi_prepare = msi_domain_ops_default.msi_prepare;
106833 + *(void **)&ops->msi_prepare = msi_domain_ops_default.msi_prepare;
106834 if (ops->set_desc == NULL)
106835 - ops->set_desc = msi_domain_ops_default.set_desc;
106836 + *(void **)&ops->set_desc = msi_domain_ops_default.set_desc;
106837 + pax_close_kernel();
106838 }
106839
106840 static void msi_domain_update_chip_ops(struct msi_domain_info *info)
106841 @@ -212,12 +214,14 @@ static void msi_domain_update_chip_ops(struct msi_domain_info *info)
106842 struct irq_chip *chip = info->chip;
106843
106844 BUG_ON(!chip);
106845 + pax_open_kernel();
106846 if (!chip->irq_mask)
106847 - chip->irq_mask = pci_msi_mask_irq;
106848 + *(void **)&chip->irq_mask = pci_msi_mask_irq;
106849 if (!chip->irq_unmask)
106850 - chip->irq_unmask = pci_msi_unmask_irq;
106851 + *(void **)&chip->irq_unmask = pci_msi_unmask_irq;
106852 if (!chip->irq_set_affinity)
106853 - chip->irq_set_affinity = msi_domain_set_affinity;
106854 + *(void **)&chip->irq_set_affinity = msi_domain_set_affinity;
106855 + pax_close_kernel();
106856 }
106857
106858 /**
106859 diff --git a/kernel/irq/spurious.c b/kernel/irq/spurious.c
106860 index e2514b0..de3dfe0 100644
106861 --- a/kernel/irq/spurious.c
106862 +++ b/kernel/irq/spurious.c
106863 @@ -337,7 +337,7 @@ void note_interrupt(unsigned int irq, struct irq_desc *desc,
106864 * count. We just care about the count being
106865 * different than the one we saw before.
106866 */
106867 - handled = atomic_read(&desc->threads_handled);
106868 + handled = atomic_read_unchecked(&desc->threads_handled);
106869 handled |= SPURIOUS_DEFERRED;
106870 if (handled != desc->threads_handled_last) {
106871 action_ret = IRQ_HANDLED;
106872 diff --git a/kernel/jump_label.c b/kernel/jump_label.c
106873 index 52ebaca..ec6f5cb 100644
106874 --- a/kernel/jump_label.c
106875 +++ b/kernel/jump_label.c
106876 @@ -14,6 +14,7 @@
106877 #include <linux/err.h>
106878 #include <linux/static_key.h>
106879 #include <linux/jump_label_ratelimit.h>
106880 +#include <linux/mm.h>
106881
106882 #ifdef HAVE_JUMP_LABEL
106883
106884 @@ -51,7 +52,9 @@ jump_label_sort_entries(struct jump_entry *start, struct jump_entry *stop)
106885
106886 size = (((unsigned long)stop - (unsigned long)start)
106887 / sizeof(struct jump_entry));
106888 + pax_open_kernel();
106889 sort(start, size, sizeof(struct jump_entry), jump_label_cmp, NULL);
106890 + pax_close_kernel();
106891 }
106892
106893 static void jump_label_update(struct static_key *key, int enable);
106894 @@ -363,10 +366,12 @@ static void jump_label_invalidate_module_init(struct module *mod)
106895 struct jump_entry *iter_stop = iter_start + mod->num_jump_entries;
106896 struct jump_entry *iter;
106897
106898 + pax_open_kernel();
106899 for (iter = iter_start; iter < iter_stop; iter++) {
106900 if (within_module_init(iter->code, mod))
106901 iter->code = 0;
106902 }
106903 + pax_close_kernel();
106904 }
106905
106906 static int
106907 diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
106908 index 5c5987f..bc502b0 100644
106909 --- a/kernel/kallsyms.c
106910 +++ b/kernel/kallsyms.c
106911 @@ -11,6 +11,9 @@
106912 * Changed the compression method from stem compression to "table lookup"
106913 * compression (see scripts/kallsyms.c for a more complete description)
106914 */
106915 +#ifdef CONFIG_GRKERNSEC_HIDESYM
106916 +#define __INCLUDED_BY_HIDESYM 1
106917 +#endif
106918 #include <linux/kallsyms.h>
106919 #include <linux/module.h>
106920 #include <linux/init.h>
106921 @@ -54,12 +57,33 @@ extern const unsigned long kallsyms_markers[] __weak;
106922
106923 static inline int is_kernel_inittext(unsigned long addr)
106924 {
106925 + if (system_state != SYSTEM_BOOTING)
106926 + return 0;
106927 +
106928 if (addr >= (unsigned long)_sinittext
106929 && addr <= (unsigned long)_einittext)
106930 return 1;
106931 return 0;
106932 }
106933
106934 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
106935 +#ifdef CONFIG_MODULES
106936 +static inline int is_module_text(unsigned long addr)
106937 +{
106938 + if ((unsigned long)MODULES_EXEC_VADDR <= addr && addr <= (unsigned long)MODULES_EXEC_END)
106939 + return 1;
106940 +
106941 + addr = ktla_ktva(addr);
106942 + return (unsigned long)MODULES_EXEC_VADDR <= addr && addr <= (unsigned long)MODULES_EXEC_END;
106943 +}
106944 +#else
106945 +static inline int is_module_text(unsigned long addr)
106946 +{
106947 + return 0;
106948 +}
106949 +#endif
106950 +#endif
106951 +
106952 static inline int is_kernel_text(unsigned long addr)
106953 {
106954 if ((addr >= (unsigned long)_stext && addr <= (unsigned long)_etext) ||
106955 @@ -70,13 +94,28 @@ static inline int is_kernel_text(unsigned long addr)
106956
106957 static inline int is_kernel(unsigned long addr)
106958 {
106959 +
106960 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
106961 + if (is_kernel_text(addr) || is_kernel_inittext(addr))
106962 + return 1;
106963 +
106964 + if (ktla_ktva((unsigned long)_text) <= addr && addr < (unsigned long)_end)
106965 +#else
106966 if (addr >= (unsigned long)_stext && addr <= (unsigned long)_end)
106967 +#endif
106968 +
106969 return 1;
106970 return in_gate_area_no_mm(addr);
106971 }
106972
106973 static int is_ksym_addr(unsigned long addr)
106974 {
106975 +
106976 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
106977 + if (is_module_text(addr))
106978 + return 0;
106979 +#endif
106980 +
106981 if (all_var)
106982 return is_kernel(addr);
106983
106984 @@ -481,7 +520,6 @@ static unsigned long get_ksymbol_core(struct kallsym_iter *iter)
106985
106986 static void reset_iter(struct kallsym_iter *iter, loff_t new_pos)
106987 {
106988 - iter->name[0] = '\0';
106989 iter->nameoff = get_symbol_offset(new_pos);
106990 iter->pos = new_pos;
106991 }
106992 @@ -529,6 +567,11 @@ static int s_show(struct seq_file *m, void *p)
106993 {
106994 struct kallsym_iter *iter = m->private;
106995
106996 +#ifdef CONFIG_GRKERNSEC_HIDESYM
106997 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID))
106998 + return 0;
106999 +#endif
107000 +
107001 /* Some debugging symbols have no name. Ignore them. */
107002 if (!iter->name[0])
107003 return 0;
107004 @@ -542,6 +585,7 @@ static int s_show(struct seq_file *m, void *p)
107005 */
107006 type = iter->exported ? toupper(iter->type) :
107007 tolower(iter->type);
107008 +
107009 seq_printf(m, "%pK %c %s\t[%s]\n", (void *)iter->value,
107010 type, iter->name, iter->module_name);
107011 } else
107012 diff --git a/kernel/kcmp.c b/kernel/kcmp.c
107013 index 0aa69ea..a7fcafb 100644
107014 --- a/kernel/kcmp.c
107015 +++ b/kernel/kcmp.c
107016 @@ -100,6 +100,10 @@ SYSCALL_DEFINE5(kcmp, pid_t, pid1, pid_t, pid2, int, type,
107017 struct task_struct *task1, *task2;
107018 int ret;
107019
107020 +#ifdef CONFIG_GRKERNSEC
107021 + return -ENOSYS;
107022 +#endif
107023 +
107024 rcu_read_lock();
107025
107026 /*
107027 diff --git a/kernel/kexec.c b/kernel/kexec.c
107028 index a785c10..6dbb06f 100644
107029 --- a/kernel/kexec.c
107030 +++ b/kernel/kexec.c
107031 @@ -1243,7 +1243,7 @@ static int kimage_load_segment(struct kimage *image,
107032 */
107033 struct kimage *kexec_image;
107034 struct kimage *kexec_crash_image;
107035 -int kexec_load_disabled;
107036 +int kexec_load_disabled __read_only;
107037
107038 static DEFINE_MUTEX(kexec_mutex);
107039
107040 @@ -1359,7 +1359,8 @@ COMPAT_SYSCALL_DEFINE4(kexec_load, compat_ulong_t, entry,
107041 compat_ulong_t, flags)
107042 {
107043 struct compat_kexec_segment in;
107044 - struct kexec_segment out, __user *ksegments;
107045 + struct kexec_segment out;
107046 + struct kexec_segment __user *ksegments;
107047 unsigned long i, result;
107048
107049 /* Don't allow clients that don't understand the native
107050 diff --git a/kernel/kmod.c b/kernel/kmod.c
107051 index 2777f40..a689506 100644
107052 --- a/kernel/kmod.c
107053 +++ b/kernel/kmod.c
107054 @@ -68,7 +68,7 @@ static void free_modprobe_argv(struct subprocess_info *info)
107055 kfree(info->argv);
107056 }
107057
107058 -static int call_modprobe(char *module_name, int wait)
107059 +static int call_modprobe(char *module_name, char *module_param, int wait)
107060 {
107061 struct subprocess_info *info;
107062 static char *envp[] = {
107063 @@ -78,7 +78,7 @@ static int call_modprobe(char *module_name, int wait)
107064 NULL
107065 };
107066
107067 - char **argv = kmalloc(sizeof(char *[5]), GFP_KERNEL);
107068 + char **argv = kmalloc(sizeof(char *[6]), GFP_KERNEL);
107069 if (!argv)
107070 goto out;
107071
107072 @@ -90,7 +90,8 @@ static int call_modprobe(char *module_name, int wait)
107073 argv[1] = "-q";
107074 argv[2] = "--";
107075 argv[3] = module_name; /* check free_modprobe_argv() */
107076 - argv[4] = NULL;
107077 + argv[4] = module_param;
107078 + argv[5] = NULL;
107079
107080 info = call_usermodehelper_setup(modprobe_path, argv, envp, GFP_KERNEL,
107081 NULL, free_modprobe_argv, NULL);
107082 @@ -122,9 +123,8 @@ out:
107083 * If module auto-loading support is disabled then this function
107084 * becomes a no-operation.
107085 */
107086 -int __request_module(bool wait, const char *fmt, ...)
107087 +static int ____request_module(bool wait, char *module_param, const char *fmt, va_list ap)
107088 {
107089 - va_list args;
107090 char module_name[MODULE_NAME_LEN];
107091 unsigned int max_modprobes;
107092 int ret;
107093 @@ -143,9 +143,7 @@ int __request_module(bool wait, const char *fmt, ...)
107094 if (!modprobe_path[0])
107095 return 0;
107096
107097 - va_start(args, fmt);
107098 - ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, args);
107099 - va_end(args);
107100 + ret = vsnprintf(module_name, MODULE_NAME_LEN, fmt, ap);
107101 if (ret >= MODULE_NAME_LEN)
107102 return -ENAMETOOLONG;
107103
107104 @@ -153,6 +151,20 @@ int __request_module(bool wait, const char *fmt, ...)
107105 if (ret)
107106 return ret;
107107
107108 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
107109 + if (uid_eq(current_uid(), GLOBAL_ROOT_UID)) {
107110 + /* hack to workaround consolekit/udisks stupidity */
107111 + read_lock(&tasklist_lock);
107112 + if (!strcmp(current->comm, "mount") &&
107113 + current->real_parent && !strncmp(current->real_parent->comm, "udisk", 5)) {
107114 + read_unlock(&tasklist_lock);
107115 + printk(KERN_ALERT "grsec: denied attempt to auto-load fs module %.64s by udisks\n", module_name);
107116 + return -EPERM;
107117 + }
107118 + read_unlock(&tasklist_lock);
107119 + }
107120 +#endif
107121 +
107122 /* If modprobe needs a service that is in a module, we get a recursive
107123 * loop. Limit the number of running kmod threads to max_threads/2 or
107124 * MAX_KMOD_CONCURRENT, whichever is the smaller. A cleaner method
107125 @@ -181,16 +193,61 @@ int __request_module(bool wait, const char *fmt, ...)
107126
107127 trace_module_request(module_name, wait, _RET_IP_);
107128
107129 - ret = call_modprobe(module_name, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC);
107130 + ret = call_modprobe(module_name, module_param, wait ? UMH_WAIT_PROC : UMH_WAIT_EXEC);
107131
107132 atomic_dec(&kmod_concurrent);
107133 return ret;
107134 }
107135 +
107136 +int ___request_module(bool wait, char *module_param, const char *fmt, ...)
107137 +{
107138 + va_list args;
107139 + int ret;
107140 +
107141 + va_start(args, fmt);
107142 + ret = ____request_module(wait, module_param, fmt, args);
107143 + va_end(args);
107144 +
107145 + return ret;
107146 +}
107147 +
107148 +int __request_module(bool wait, const char *fmt, ...)
107149 +{
107150 + va_list args;
107151 + int ret;
107152 +
107153 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
107154 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)) {
107155 + char module_param[MODULE_NAME_LEN];
107156 +
107157 + memset(module_param, 0, sizeof(module_param));
107158 +
107159 + snprintf(module_param, sizeof(module_param) - 1, "grsec_modharden_normal%u_", GR_GLOBAL_UID(current_uid()));
107160 +
107161 + va_start(args, fmt);
107162 + ret = ____request_module(wait, module_param, fmt, args);
107163 + va_end(args);
107164 +
107165 + return ret;
107166 + }
107167 +#endif
107168 +
107169 + va_start(args, fmt);
107170 + ret = ____request_module(wait, NULL, fmt, args);
107171 + va_end(args);
107172 +
107173 + return ret;
107174 +}
107175 +
107176 EXPORT_SYMBOL(__request_module);
107177 #endif /* CONFIG_MODULES */
107178
107179 static void call_usermodehelper_freeinfo(struct subprocess_info *info)
107180 {
107181 +#ifdef CONFIG_GRKERNSEC
107182 + kfree(info->path);
107183 + info->path = info->origpath;
107184 +#endif
107185 if (info->cleanup)
107186 (*info->cleanup)(info);
107187 kfree(info);
107188 @@ -232,6 +289,21 @@ static int ____call_usermodehelper(void *data)
107189 */
107190 set_user_nice(current, 0);
107191
107192 +#ifdef CONFIG_GRKERNSEC
107193 + /* this is race-free as far as userland is concerned as we copied
107194 + out the path to be used prior to this point and are now operating
107195 + on that copy
107196 + */
107197 + if ((strncmp(sub_info->path, "/sbin/", 6) && strncmp(sub_info->path, "/usr/lib/", 9) &&
107198 + strncmp(sub_info->path, "/lib/", 5) && strncmp(sub_info->path, "/lib64/", 7) &&
107199 + strncmp(sub_info->path, "/usr/libexec/", 13) && strncmp(sub_info->path, "/usr/bin/", 9) &&
107200 + strcmp(sub_info->path, "/usr/share/apport/apport")) || strstr(sub_info->path, "..")) {
107201 + printk(KERN_ALERT "grsec: denied exec of usermode helper binary %.950s located outside of permitted system paths\n", sub_info->path);
107202 + retval = -EPERM;
107203 + goto out;
107204 + }
107205 +#endif
107206 +
107207 retval = -ENOMEM;
107208 new = prepare_kernel_cred(current);
107209 if (!new)
107210 @@ -254,8 +326,8 @@ static int ____call_usermodehelper(void *data)
107211 commit_creds(new);
107212
107213 retval = do_execve(getname_kernel(sub_info->path),
107214 - (const char __user *const __user *)sub_info->argv,
107215 - (const char __user *const __user *)sub_info->envp);
107216 + (const char __user *const __force_user *)sub_info->argv,
107217 + (const char __user *const __force_user *)sub_info->envp);
107218 out:
107219 sub_info->retval = retval;
107220 /* wait_for_helper() will call umh_complete if UHM_WAIT_PROC. */
107221 @@ -288,7 +360,7 @@ static int wait_for_helper(void *data)
107222 *
107223 * Thus the __user pointer cast is valid here.
107224 */
107225 - sys_wait4(pid, (int __user *)&ret, 0, NULL);
107226 + sys_wait4(pid, (int __force_user *)&ret, 0, NULL);
107227
107228 /*
107229 * If ret is 0, either ____call_usermodehelper failed and the
107230 @@ -510,7 +582,12 @@ struct subprocess_info *call_usermodehelper_setup(char *path, char **argv,
107231 goto out;
107232
107233 INIT_WORK(&sub_info->work, __call_usermodehelper);
107234 +#ifdef CONFIG_GRKERNSEC
107235 + sub_info->origpath = path;
107236 + sub_info->path = kstrdup(path, gfp_mask);
107237 +#else
107238 sub_info->path = path;
107239 +#endif
107240 sub_info->argv = argv;
107241 sub_info->envp = envp;
107242
107243 @@ -612,7 +689,7 @@ EXPORT_SYMBOL(call_usermodehelper);
107244 static int proc_cap_handler(struct ctl_table *table, int write,
107245 void __user *buffer, size_t *lenp, loff_t *ppos)
107246 {
107247 - struct ctl_table t;
107248 + ctl_table_no_const t;
107249 unsigned long cap_array[_KERNEL_CAPABILITY_U32S];
107250 kernel_cap_t new_cap;
107251 int err, i;
107252 diff --git a/kernel/kprobes.c b/kernel/kprobes.c
107253 index c90e417..e6c515d 100644
107254 --- a/kernel/kprobes.c
107255 +++ b/kernel/kprobes.c
107256 @@ -31,6 +31,9 @@
107257 * <jkenisto@us.ibm.com> and Prasanna S Panchamukhi
107258 * <prasanna@in.ibm.com> added function-return probes.
107259 */
107260 +#ifdef CONFIG_GRKERNSEC_HIDESYM
107261 +#define __INCLUDED_BY_HIDESYM 1
107262 +#endif
107263 #include <linux/kprobes.h>
107264 #include <linux/hash.h>
107265 #include <linux/init.h>
107266 @@ -122,12 +125,12 @@ enum kprobe_slot_state {
107267
107268 static void *alloc_insn_page(void)
107269 {
107270 - return module_alloc(PAGE_SIZE);
107271 + return module_alloc_exec(PAGE_SIZE);
107272 }
107273
107274 static void free_insn_page(void *page)
107275 {
107276 - module_memfree(page);
107277 + module_memfree_exec(page);
107278 }
107279
107280 struct kprobe_insn_cache kprobe_insn_slots = {
107281 @@ -2198,11 +2201,11 @@ static void report_probe(struct seq_file *pi, struct kprobe *p,
107282 kprobe_type = "k";
107283
107284 if (sym)
107285 - seq_printf(pi, "%p %s %s+0x%x %s ",
107286 + seq_printf(pi, "%pK %s %s+0x%x %s ",
107287 p->addr, kprobe_type, sym, offset,
107288 (modname ? modname : " "));
107289 else
107290 - seq_printf(pi, "%p %s %p ",
107291 + seq_printf(pi, "%pK %s %pK ",
107292 p->addr, kprobe_type, p->addr);
107293
107294 if (!pp)
107295 diff --git a/kernel/ksysfs.c b/kernel/ksysfs.c
107296 index 6683cce..daf8999 100644
107297 --- a/kernel/ksysfs.c
107298 +++ b/kernel/ksysfs.c
107299 @@ -50,6 +50,8 @@ static ssize_t uevent_helper_store(struct kobject *kobj,
107300 {
107301 if (count+1 > UEVENT_HELPER_PATH_LEN)
107302 return -ENOENT;
107303 + if (!capable(CAP_SYS_ADMIN))
107304 + return -EPERM;
107305 memcpy(uevent_helper, buf, count);
107306 uevent_helper[count] = '\0';
107307 if (count && uevent_helper[count-1] == '\n')
107308 @@ -176,7 +178,7 @@ static ssize_t notes_read(struct file *filp, struct kobject *kobj,
107309 return count;
107310 }
107311
107312 -static struct bin_attribute notes_attr = {
107313 +static bin_attribute_no_const notes_attr __read_only = {
107314 .attr = {
107315 .name = "notes",
107316 .mode = S_IRUGO,
107317 diff --git a/kernel/locking/lockdep.c b/kernel/locking/lockdep.c
107318 index 8acfbf7..0c5a34a 100644
107319 --- a/kernel/locking/lockdep.c
107320 +++ b/kernel/locking/lockdep.c
107321 @@ -613,6 +613,10 @@ static int static_obj(void *obj)
107322 end = (unsigned long) &_end,
107323 addr = (unsigned long) obj;
107324
107325 +#ifdef CONFIG_PAX_KERNEXEC
107326 + start = ktla_ktva(start);
107327 +#endif
107328 +
107329 /*
107330 * static variable?
107331 */
107332 @@ -757,6 +761,7 @@ register_lock_class(struct lockdep_map *lock, unsigned int subclass, int force)
107333 if (!static_obj(lock->key)) {
107334 debug_locks_off();
107335 printk("INFO: trying to register non-static key.\n");
107336 + printk("lock:%pS key:%pS.\n", lock, lock->key);
107337 printk("the code is fine but needs lockdep annotation.\n");
107338 printk("turning off the locking correctness validator.\n");
107339 dump_stack();
107340 @@ -3102,7 +3107,7 @@ static int __lock_acquire(struct lockdep_map *lock, unsigned int subclass,
107341 if (!class)
107342 return 0;
107343 }
107344 - atomic_inc((atomic_t *)&class->ops);
107345 + atomic_long_inc_unchecked((atomic_long_unchecked_t *)&class->ops);
107346 if (very_verbose(class)) {
107347 printk("\nacquire class [%p] %s", class->key, class->name);
107348 if (class->name_version > 1)
107349 diff --git a/kernel/locking/lockdep_proc.c b/kernel/locking/lockdep_proc.c
107350 index d83d798..ea3120d 100644
107351 --- a/kernel/locking/lockdep_proc.c
107352 +++ b/kernel/locking/lockdep_proc.c
107353 @@ -65,7 +65,7 @@ static int l_show(struct seq_file *m, void *v)
107354 return 0;
107355 }
107356
107357 - seq_printf(m, "%p", class->key);
107358 + seq_printf(m, "%pK", class->key);
107359 #ifdef CONFIG_DEBUG_LOCKDEP
107360 seq_printf(m, " OPS:%8ld", class->ops);
107361 #endif
107362 @@ -83,7 +83,7 @@ static int l_show(struct seq_file *m, void *v)
107363
107364 list_for_each_entry(entry, &class->locks_after, entry) {
107365 if (entry->distance == 1) {
107366 - seq_printf(m, " -> [%p] ", entry->class->key);
107367 + seq_printf(m, " -> [%pK] ", entry->class->key);
107368 print_name(m, entry->class);
107369 seq_puts(m, "\n");
107370 }
107371 @@ -152,7 +152,7 @@ static int lc_show(struct seq_file *m, void *v)
107372 if (!class->key)
107373 continue;
107374
107375 - seq_printf(m, "[%p] ", class->key);
107376 + seq_printf(m, "[%pK] ", class->key);
107377 print_name(m, class);
107378 seq_puts(m, "\n");
107379 }
107380 @@ -508,7 +508,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
107381 if (!i)
107382 seq_line(m, '-', 40-namelen, namelen);
107383
107384 - snprintf(ip, sizeof(ip), "[<%p>]",
107385 + snprintf(ip, sizeof(ip), "[<%pK>]",
107386 (void *)class->contention_point[i]);
107387 seq_printf(m, "%40s %14lu %29s %pS\n",
107388 name, stats->contention_point[i],
107389 @@ -523,7 +523,7 @@ static void seq_stats(struct seq_file *m, struct lock_stat_data *data)
107390 if (!i)
107391 seq_line(m, '-', 40-namelen, namelen);
107392
107393 - snprintf(ip, sizeof(ip), "[<%p>]",
107394 + snprintf(ip, sizeof(ip), "[<%pK>]",
107395 (void *)class->contending_point[i]);
107396 seq_printf(m, "%40s %14lu %29s %pS\n",
107397 name, stats->contending_point[i],
107398 diff --git a/kernel/locking/mutex-debug.c b/kernel/locking/mutex-debug.c
107399 index 3ef3736..9c951fa 100644
107400 --- a/kernel/locking/mutex-debug.c
107401 +++ b/kernel/locking/mutex-debug.c
107402 @@ -49,21 +49,21 @@ void debug_mutex_free_waiter(struct mutex_waiter *waiter)
107403 }
107404
107405 void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter,
107406 - struct thread_info *ti)
107407 + struct task_struct *task)
107408 {
107409 SMP_DEBUG_LOCKS_WARN_ON(!spin_is_locked(&lock->wait_lock));
107410
107411 /* Mark the current thread as blocked on the lock: */
107412 - ti->task->blocked_on = waiter;
107413 + task->blocked_on = waiter;
107414 }
107415
107416 void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
107417 - struct thread_info *ti)
107418 + struct task_struct *task)
107419 {
107420 DEBUG_LOCKS_WARN_ON(list_empty(&waiter->list));
107421 - DEBUG_LOCKS_WARN_ON(waiter->task != ti->task);
107422 - DEBUG_LOCKS_WARN_ON(ti->task->blocked_on != waiter);
107423 - ti->task->blocked_on = NULL;
107424 + DEBUG_LOCKS_WARN_ON(waiter->task != task);
107425 + DEBUG_LOCKS_WARN_ON(task->blocked_on != waiter);
107426 + task->blocked_on = NULL;
107427
107428 list_del_init(&waiter->list);
107429 waiter->task = NULL;
107430 diff --git a/kernel/locking/mutex-debug.h b/kernel/locking/mutex-debug.h
107431 index 0799fd3..d06ae3b 100644
107432 --- a/kernel/locking/mutex-debug.h
107433 +++ b/kernel/locking/mutex-debug.h
107434 @@ -20,9 +20,9 @@ extern void debug_mutex_wake_waiter(struct mutex *lock,
107435 extern void debug_mutex_free_waiter(struct mutex_waiter *waiter);
107436 extern void debug_mutex_add_waiter(struct mutex *lock,
107437 struct mutex_waiter *waiter,
107438 - struct thread_info *ti);
107439 + struct task_struct *task);
107440 extern void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter,
107441 - struct thread_info *ti);
107442 + struct task_struct *task);
107443 extern void debug_mutex_unlock(struct mutex *lock);
107444 extern void debug_mutex_init(struct mutex *lock, const char *name,
107445 struct lock_class_key *key);
107446 diff --git a/kernel/locking/mutex.c b/kernel/locking/mutex.c
107447 index 4cccea6..4382db9 100644
107448 --- a/kernel/locking/mutex.c
107449 +++ b/kernel/locking/mutex.c
107450 @@ -533,7 +533,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
107451 goto skip_wait;
107452
107453 debug_mutex_lock_common(lock, &waiter);
107454 - debug_mutex_add_waiter(lock, &waiter, task_thread_info(task));
107455 + debug_mutex_add_waiter(lock, &waiter, task);
107456
107457 /* add waiting tasks to the end of the waitqueue (FIFO): */
107458 list_add_tail(&waiter.list, &lock->wait_list);
107459 @@ -580,7 +580,7 @@ __mutex_lock_common(struct mutex *lock, long state, unsigned int subclass,
107460 }
107461 __set_task_state(task, TASK_RUNNING);
107462
107463 - mutex_remove_waiter(lock, &waiter, current_thread_info());
107464 + mutex_remove_waiter(lock, &waiter, task);
107465 /* set it to 0 if there are no waiters left: */
107466 if (likely(list_empty(&lock->wait_list)))
107467 atomic_set(&lock->count, 0);
107468 @@ -601,7 +601,7 @@ skip_wait:
107469 return 0;
107470
107471 err:
107472 - mutex_remove_waiter(lock, &waiter, task_thread_info(task));
107473 + mutex_remove_waiter(lock, &waiter, task);
107474 spin_unlock_mutex(&lock->wait_lock, flags);
107475 debug_mutex_free_waiter(&waiter);
107476 mutex_release(&lock->dep_map, 1, ip);
107477 diff --git a/kernel/locking/rtmutex-tester.c b/kernel/locking/rtmutex-tester.c
107478 index 1d96dd0..994ff19 100644
107479 --- a/kernel/locking/rtmutex-tester.c
107480 +++ b/kernel/locking/rtmutex-tester.c
107481 @@ -22,7 +22,7 @@
107482 #define MAX_RT_TEST_MUTEXES 8
107483
107484 static spinlock_t rttest_lock;
107485 -static atomic_t rttest_event;
107486 +static atomic_unchecked_t rttest_event;
107487
107488 struct test_thread_data {
107489 int opcode;
107490 @@ -63,7 +63,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
107491
107492 case RTTEST_LOCKCONT:
107493 td->mutexes[td->opdata] = 1;
107494 - td->event = atomic_add_return(1, &rttest_event);
107495 + td->event = atomic_add_return_unchecked(1, &rttest_event);
107496 return 0;
107497
107498 case RTTEST_RESET:
107499 @@ -76,7 +76,7 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
107500 return 0;
107501
107502 case RTTEST_RESETEVENT:
107503 - atomic_set(&rttest_event, 0);
107504 + atomic_set_unchecked(&rttest_event, 0);
107505 return 0;
107506
107507 default:
107508 @@ -93,9 +93,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
107509 return ret;
107510
107511 td->mutexes[id] = 1;
107512 - td->event = atomic_add_return(1, &rttest_event);
107513 + td->event = atomic_add_return_unchecked(1, &rttest_event);
107514 rt_mutex_lock(&mutexes[id]);
107515 - td->event = atomic_add_return(1, &rttest_event);
107516 + td->event = atomic_add_return_unchecked(1, &rttest_event);
107517 td->mutexes[id] = 4;
107518 return 0;
107519
107520 @@ -106,9 +106,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
107521 return ret;
107522
107523 td->mutexes[id] = 1;
107524 - td->event = atomic_add_return(1, &rttest_event);
107525 + td->event = atomic_add_return_unchecked(1, &rttest_event);
107526 ret = rt_mutex_lock_interruptible(&mutexes[id], 0);
107527 - td->event = atomic_add_return(1, &rttest_event);
107528 + td->event = atomic_add_return_unchecked(1, &rttest_event);
107529 td->mutexes[id] = ret ? 0 : 4;
107530 return ret ? -EINTR : 0;
107531
107532 @@ -117,9 +117,9 @@ static int handle_op(struct test_thread_data *td, int lockwakeup)
107533 if (id < 0 || id >= MAX_RT_TEST_MUTEXES || td->mutexes[id] != 4)
107534 return ret;
107535
107536 - td->event = atomic_add_return(1, &rttest_event);
107537 + td->event = atomic_add_return_unchecked(1, &rttest_event);
107538 rt_mutex_unlock(&mutexes[id]);
107539 - td->event = atomic_add_return(1, &rttest_event);
107540 + td->event = atomic_add_return_unchecked(1, &rttest_event);
107541 td->mutexes[id] = 0;
107542 return 0;
107543
107544 @@ -166,7 +166,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
107545 break;
107546
107547 td->mutexes[dat] = 2;
107548 - td->event = atomic_add_return(1, &rttest_event);
107549 + td->event = atomic_add_return_unchecked(1, &rttest_event);
107550 break;
107551
107552 default:
107553 @@ -186,7 +186,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
107554 return;
107555
107556 td->mutexes[dat] = 3;
107557 - td->event = atomic_add_return(1, &rttest_event);
107558 + td->event = atomic_add_return_unchecked(1, &rttest_event);
107559 break;
107560
107561 case RTTEST_LOCKNOWAIT:
107562 @@ -198,7 +198,7 @@ void schedule_rt_mutex_test(struct rt_mutex *mutex)
107563 return;
107564
107565 td->mutexes[dat] = 1;
107566 - td->event = atomic_add_return(1, &rttest_event);
107567 + td->event = atomic_add_return_unchecked(1, &rttest_event);
107568 return;
107569
107570 default:
107571 diff --git a/kernel/module.c b/kernel/module.c
107572 index 8f051a1..07da01a 100644
107573 --- a/kernel/module.c
107574 +++ b/kernel/module.c
107575 @@ -59,6 +59,7 @@
107576 #include <linux/jump_label.h>
107577 #include <linux/pfn.h>
107578 #include <linux/bsearch.h>
107579 +#include <linux/grsecurity.h>
107580 #include <uapi/linux/module.h>
107581 #include "module-internal.h"
107582
107583 @@ -108,7 +109,7 @@ static LIST_HEAD(modules);
107584 * Use a latched RB-tree for __module_address(); this allows us to use
107585 * RCU-sched lookups of the address from any context.
107586 *
107587 - * Because modules have two address ranges: init and core, we need two
107588 + * Because modules have four address ranges: init_{rw,rx} and core_{rw,rx}, we need four
107589 * latch_tree_nodes entries. Therefore we need the back-pointer from
107590 * mod_tree_node.
107591 *
107592 @@ -125,10 +126,14 @@ static __always_inline unsigned long __mod_tree_val(struct latch_tree_node *n)
107593 struct mod_tree_node *mtn = container_of(n, struct mod_tree_node, node);
107594 struct module *mod = mtn->mod;
107595
107596 - if (unlikely(mtn == &mod->mtn_init))
107597 - return (unsigned long)mod->module_init;
107598 + if (unlikely(mtn == &mod->mtn_init_rw))
107599 + return (unsigned long)mod->module_init_rw;
107600 + if (unlikely(mtn == &mod->mtn_init_rx))
107601 + return (unsigned long)mod->module_init_rx;
107602
107603 - return (unsigned long)mod->module_core;
107604 + if (unlikely(mtn == &mod->mtn_core_rw))
107605 + return (unsigned long)mod->module_core_rw;
107606 + return (unsigned long)mod->module_core_rx;
107607 }
107608
107609 static __always_inline unsigned long __mod_tree_size(struct latch_tree_node *n)
107610 @@ -136,10 +141,14 @@ static __always_inline unsigned long __mod_tree_size(struct latch_tree_node *n)
107611 struct mod_tree_node *mtn = container_of(n, struct mod_tree_node, node);
107612 struct module *mod = mtn->mod;
107613
107614 - if (unlikely(mtn == &mod->mtn_init))
107615 - return (unsigned long)mod->init_size;
107616 + if (unlikely(mtn == &mod->mtn_init_rw))
107617 + return (unsigned long)mod->init_size_rw;
107618 + if (unlikely(mtn == &mod->mtn_init_rx))
107619 + return (unsigned long)mod->init_size_rx;
107620
107621 - return (unsigned long)mod->core_size;
107622 + if (unlikely(mtn == &mod->mtn_core_rw))
107623 + return (unsigned long)mod->core_size_rw;
107624 + return (unsigned long)mod->core_size_rx;
107625 }
107626
107627 static __always_inline bool
107628 @@ -172,14 +181,19 @@ static const struct latch_tree_ops mod_tree_ops = {
107629
107630 static struct mod_tree_root {
107631 struct latch_tree_root root;
107632 - unsigned long addr_min;
107633 - unsigned long addr_max;
107634 + unsigned long addr_min_rw;
107635 + unsigned long addr_min_rx;
107636 + unsigned long addr_max_rw;
107637 + unsigned long addr_max_rx;
107638 } mod_tree __cacheline_aligned = {
107639 - .addr_min = -1UL,
107640 + .addr_min_rw = -1UL,
107641 + .addr_min_rx = -1UL,
107642 };
107643
107644 -#define module_addr_min mod_tree.addr_min
107645 -#define module_addr_max mod_tree.addr_max
107646 +#define module_addr_min_rw mod_tree.addr_min_rw
107647 +#define module_addr_min_rx mod_tree.addr_min_rx
107648 +#define module_addr_max_rw mod_tree.addr_max_rw
107649 +#define module_addr_max_rx mod_tree.addr_max_rx
107650
107651 static noinline void __mod_tree_insert(struct mod_tree_node *node)
107652 {
107653 @@ -197,23 +211,31 @@ static void __mod_tree_remove(struct mod_tree_node *node)
107654 */
107655 static void mod_tree_insert(struct module *mod)
107656 {
107657 - mod->mtn_core.mod = mod;
107658 - mod->mtn_init.mod = mod;
107659 + mod->mtn_core_rw.mod = mod;
107660 + mod->mtn_core_rx.mod = mod;
107661 + mod->mtn_init_rw.mod = mod;
107662 + mod->mtn_init_rx.mod = mod;
107663
107664 - __mod_tree_insert(&mod->mtn_core);
107665 - if (mod->init_size)
107666 - __mod_tree_insert(&mod->mtn_init);
107667 + __mod_tree_insert(&mod->mtn_core_rw);
107668 + __mod_tree_insert(&mod->mtn_core_rx);
107669 + if (mod->init_size_rw)
107670 + __mod_tree_insert(&mod->mtn_init_rw);
107671 + if (mod->init_size_rx)
107672 + __mod_tree_insert(&mod->mtn_init_rx);
107673 }
107674
107675 static void mod_tree_remove_init(struct module *mod)
107676 {
107677 - if (mod->init_size)
107678 - __mod_tree_remove(&mod->mtn_init);
107679 + if (mod->init_size_rw)
107680 + __mod_tree_remove(&mod->mtn_init_rw);
107681 + if (mod->init_size_rx)
107682 + __mod_tree_remove(&mod->mtn_init_rx);
107683 }
107684
107685 static void mod_tree_remove(struct module *mod)
107686 {
107687 - __mod_tree_remove(&mod->mtn_core);
107688 + __mod_tree_remove(&mod->mtn_core_rw);
107689 + __mod_tree_remove(&mod->mtn_core_rx);
107690 mod_tree_remove_init(mod);
107691 }
107692
107693 @@ -230,7 +252,8 @@ static struct module *mod_find(unsigned long addr)
107694
107695 #else /* MODULES_TREE_LOOKUP */
107696
107697 -static unsigned long module_addr_min = -1UL, module_addr_max = 0;
107698 +static unsigned long module_addr_min_rw = -1UL, module_addr_max_rw = 0;
107699 +static unsigned long module_addr_min_rx = -1UL, module_addr_max_rx = 0;
107700
107701 static void mod_tree_insert(struct module *mod) { }
107702 static void mod_tree_remove_init(struct module *mod) { }
107703 @@ -254,22 +277,36 @@ static struct module *mod_find(unsigned long addr)
107704 * Bounds of module text, for speeding up __module_address.
107705 * Protected by module_mutex.
107706 */
107707 -static void __mod_update_bounds(void *base, unsigned int size)
107708 +static void __mod_update_bounds_rw(void *base, unsigned int size)
107709 {
107710 unsigned long min = (unsigned long)base;
107711 unsigned long max = min + size;
107712
107713 - if (min < module_addr_min)
107714 - module_addr_min = min;
107715 - if (max > module_addr_max)
107716 - module_addr_max = max;
107717 + if (min < module_addr_min_rw)
107718 + module_addr_min_rw = min;
107719 + if (max > module_addr_max_rw)
107720 + module_addr_max_rw = max;
107721 +}
107722 +
107723 +static void __mod_update_bounds_rx(void *base, unsigned int size)
107724 +{
107725 + unsigned long min = (unsigned long)base;
107726 + unsigned long max = min + size;
107727 +
107728 + if (min < module_addr_min_rx)
107729 + module_addr_min_rx = min;
107730 + if (max > module_addr_max_rx)
107731 + module_addr_max_rx = max;
107732 }
107733
107734 static void mod_update_bounds(struct module *mod)
107735 {
107736 - __mod_update_bounds(mod->module_core, mod->core_size);
107737 - if (mod->init_size)
107738 - __mod_update_bounds(mod->module_init, mod->init_size);
107739 + __mod_update_bounds_rw(mod->module_core_rw, mod->core_size_rw);
107740 + __mod_update_bounds_rx(mod->module_core_rx, mod->core_size_rx);
107741 + if (mod->init_size_rw)
107742 + __mod_update_bounds_rw(mod->module_init_rw, mod->init_size_rw);
107743 + if (mod->init_size_rx)
107744 + __mod_update_bounds_rx(mod->module_init_rx, mod->init_size_rx);
107745 }
107746
107747 #ifdef CONFIG_KGDB_KDB
107748 @@ -298,7 +335,7 @@ module_param(sig_enforce, bool_enable_only, 0644);
107749 #endif /* !CONFIG_MODULE_SIG_FORCE */
107750
107751 /* Block module loading/unloading? */
107752 -int modules_disabled = 0;
107753 +int modules_disabled __read_only = 0;
107754 core_param(nomodule, modules_disabled, bint, 0);
107755
107756 /* Waiting for a module to finish initializing? */
107757 @@ -473,7 +510,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
107758 return true;
107759
107760 list_for_each_entry_rcu(mod, &modules, list) {
107761 - struct symsearch arr[] = {
107762 + struct symsearch modarr[] = {
107763 { mod->syms, mod->syms + mod->num_syms, mod->crcs,
107764 NOT_GPL_ONLY, false },
107765 { mod->gpl_syms, mod->gpl_syms + mod->num_gpl_syms,
107766 @@ -498,7 +535,7 @@ bool each_symbol_section(bool (*fn)(const struct symsearch *arr,
107767 if (mod->state == MODULE_STATE_UNFORMED)
107768 continue;
107769
107770 - if (each_symbol_in_section(arr, ARRAY_SIZE(arr), mod, fn, data))
107771 + if (each_symbol_in_section(modarr, ARRAY_SIZE(modarr), mod, fn, data))
107772 return true;
107773 }
107774 return false;
107775 @@ -644,7 +681,7 @@ static int percpu_modalloc(struct module *mod, struct load_info *info)
107776 if (!pcpusec->sh_size)
107777 return 0;
107778
107779 - if (align > PAGE_SIZE) {
107780 + if (align-1 >= PAGE_SIZE) {
107781 pr_warn("%s: per-cpu alignment %li > %li\n",
107782 mod->name, align, PAGE_SIZE);
107783 align = PAGE_SIZE;
107784 @@ -1214,7 +1251,7 @@ struct module_attribute module_uevent =
107785 static ssize_t show_coresize(struct module_attribute *mattr,
107786 struct module_kobject *mk, char *buffer)
107787 {
107788 - return sprintf(buffer, "%u\n", mk->mod->core_size);
107789 + return sprintf(buffer, "%u\n", mk->mod->core_size_rx + mk->mod->core_size_rw);
107790 }
107791
107792 static struct module_attribute modinfo_coresize =
107793 @@ -1223,7 +1260,7 @@ static struct module_attribute modinfo_coresize =
107794 static ssize_t show_initsize(struct module_attribute *mattr,
107795 struct module_kobject *mk, char *buffer)
107796 {
107797 - return sprintf(buffer, "%u\n", mk->mod->init_size);
107798 + return sprintf(buffer, "%u\n", mk->mod->init_size_rx + mk->mod->init_size_rw);
107799 }
107800
107801 static struct module_attribute modinfo_initsize =
107802 @@ -1315,12 +1352,29 @@ static int check_version(Elf_Shdr *sechdrs,
107803 goto bad_version;
107804 }
107805
107806 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
107807 + /*
107808 + * avoid potentially printing jibberish on attempted load
107809 + * of a module randomized with a different seed
107810 + */
107811 + pr_warn("no symbol version for %s\n", symname);
107812 +#else
107813 pr_warn("%s: no symbol version for %s\n", mod->name, symname);
107814 +#endif
107815 return 0;
107816
107817 bad_version:
107818 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
107819 + /*
107820 + * avoid potentially printing jibberish on attempted load
107821 + * of a module randomized with a different seed
107822 + */
107823 + pr_warn("attempted module disagrees about version of symbol %s\n",
107824 + symname);
107825 +#else
107826 pr_warn("%s: disagrees about version of symbol %s\n",
107827 mod->name, symname);
107828 +#endif
107829 return 0;
107830 }
107831
107832 @@ -1448,7 +1502,7 @@ resolve_symbol_wait(struct module *mod,
107833 */
107834 #ifdef CONFIG_SYSFS
107835
107836 -#ifdef CONFIG_KALLSYMS
107837 +#if defined(CONFIG_KALLSYMS) && !defined(CONFIG_GRKERNSEC_HIDESYM)
107838 static inline bool sect_empty(const Elf_Shdr *sect)
107839 {
107840 return !(sect->sh_flags & SHF_ALLOC) || sect->sh_size == 0;
107841 @@ -1586,7 +1640,7 @@ static void add_notes_attrs(struct module *mod, const struct load_info *info)
107842 {
107843 unsigned int notes, loaded, i;
107844 struct module_notes_attrs *notes_attrs;
107845 - struct bin_attribute *nattr;
107846 + bin_attribute_no_const *nattr;
107847
107848 /* failed to create section attributes, so can't create notes */
107849 if (!mod->sect_attrs)
107850 @@ -1698,7 +1752,7 @@ static void del_usage_links(struct module *mod)
107851 static int module_add_modinfo_attrs(struct module *mod)
107852 {
107853 struct module_attribute *attr;
107854 - struct module_attribute *temp_attr;
107855 + module_attribute_no_const *temp_attr;
107856 int error = 0;
107857 int i;
107858
107859 @@ -1915,21 +1969,21 @@ static void set_section_ro_nx(void *base,
107860
107861 static void unset_module_core_ro_nx(struct module *mod)
107862 {
107863 - set_page_attributes(mod->module_core + mod->core_text_size,
107864 - mod->module_core + mod->core_size,
107865 + set_page_attributes(mod->module_core_rw,
107866 + mod->module_core_rw + mod->core_size_rw,
107867 set_memory_x);
107868 - set_page_attributes(mod->module_core,
107869 - mod->module_core + mod->core_ro_size,
107870 + set_page_attributes(mod->module_core_rx,
107871 + mod->module_core_rx + mod->core_size_rx,
107872 set_memory_rw);
107873 }
107874
107875 static void unset_module_init_ro_nx(struct module *mod)
107876 {
107877 - set_page_attributes(mod->module_init + mod->init_text_size,
107878 - mod->module_init + mod->init_size,
107879 + set_page_attributes(mod->module_init_rw,
107880 + mod->module_init_rw + mod->init_size_rw,
107881 set_memory_x);
107882 - set_page_attributes(mod->module_init,
107883 - mod->module_init + mod->init_ro_size,
107884 + set_page_attributes(mod->module_init_rx,
107885 + mod->module_init_rx + mod->init_size_rx,
107886 set_memory_rw);
107887 }
107888
107889 @@ -1942,14 +1996,14 @@ void set_all_modules_text_rw(void)
107890 list_for_each_entry_rcu(mod, &modules, list) {
107891 if (mod->state == MODULE_STATE_UNFORMED)
107892 continue;
107893 - if ((mod->module_core) && (mod->core_text_size)) {
107894 - set_page_attributes(mod->module_core,
107895 - mod->module_core + mod->core_text_size,
107896 + if ((mod->module_core_rx) && (mod->core_size_rx)) {
107897 + set_page_attributes(mod->module_core_rx,
107898 + mod->module_core_rx + mod->core_size_rx,
107899 set_memory_rw);
107900 }
107901 - if ((mod->module_init) && (mod->init_text_size)) {
107902 - set_page_attributes(mod->module_init,
107903 - mod->module_init + mod->init_text_size,
107904 + if ((mod->module_init_rx) && (mod->init_size_rx)) {
107905 + set_page_attributes(mod->module_init_rx,
107906 + mod->module_init_rx + mod->init_size_rx,
107907 set_memory_rw);
107908 }
107909 }
107910 @@ -1965,14 +2019,14 @@ void set_all_modules_text_ro(void)
107911 list_for_each_entry_rcu(mod, &modules, list) {
107912 if (mod->state == MODULE_STATE_UNFORMED)
107913 continue;
107914 - if ((mod->module_core) && (mod->core_text_size)) {
107915 - set_page_attributes(mod->module_core,
107916 - mod->module_core + mod->core_text_size,
107917 + if ((mod->module_core_rx) && (mod->core_size_rx)) {
107918 + set_page_attributes(mod->module_core_rx,
107919 + mod->module_core_rx + mod->core_size_rx,
107920 set_memory_ro);
107921 }
107922 - if ((mod->module_init) && (mod->init_text_size)) {
107923 - set_page_attributes(mod->module_init,
107924 - mod->module_init + mod->init_text_size,
107925 + if ((mod->module_init_rx) && (mod->init_size_rx)) {
107926 + set_page_attributes(mod->module_init_rx,
107927 + mod->module_init_rx + mod->init_size_rx,
107928 set_memory_ro);
107929 }
107930 }
107931 @@ -1981,7 +2035,15 @@ void set_all_modules_text_ro(void)
107932 #else
107933 static inline void set_section_ro_nx(void *base, unsigned long text_size, unsigned long ro_size, unsigned long total_size) { }
107934 static void unset_module_core_ro_nx(struct module *mod) { }
107935 -static void unset_module_init_ro_nx(struct module *mod) { }
107936 +static void unset_module_init_ro_nx(struct module *mod)
107937 +{
107938 +
107939 +#ifdef CONFIG_PAX_KERNEXEC
107940 + set_memory_nx((unsigned long)mod->module_init_rx, PFN_UP(mod->init_size_rx));
107941 + set_memory_rw((unsigned long)mod->module_init_rx, PFN_UP(mod->init_size_rx));
107942 +#endif
107943 +
107944 +}
107945 #endif
107946
107947 void __weak module_memfree(void *module_region)
107948 @@ -2036,16 +2098,19 @@ static void free_module(struct module *mod)
107949 /* This may be NULL, but that's OK */
107950 unset_module_init_ro_nx(mod);
107951 module_arch_freeing_init(mod);
107952 - module_memfree(mod->module_init);
107953 + module_memfree(mod->module_init_rw);
107954 + module_memfree_exec(mod->module_init_rx);
107955 kfree(mod->args);
107956 percpu_modfree(mod);
107957
107958 /* Free lock-classes; relies on the preceding sync_rcu(). */
107959 - lockdep_free_key_range(mod->module_core, mod->core_size);
107960 + lockdep_free_key_range(mod->module_core_rx, mod->core_size_rx);
107961 + lockdep_free_key_range(mod->module_core_rw, mod->core_size_rw);
107962
107963 /* Finally, free the core (containing the module structure) */
107964 unset_module_core_ro_nx(mod);
107965 - module_memfree(mod->module_core);
107966 + module_memfree_exec(mod->module_core_rx);
107967 + module_memfree(mod->module_core_rw);
107968
107969 #ifdef CONFIG_MPU
107970 update_protections(current->mm);
107971 @@ -2114,9 +2179,31 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
107972 int ret = 0;
107973 const struct kernel_symbol *ksym;
107974
107975 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
107976 + int is_fs_load = 0;
107977 + int register_filesystem_found = 0;
107978 + char *p;
107979 +
107980 + p = strstr(mod->args, "grsec_modharden_fs");
107981 + if (p) {
107982 + char *endptr = p + sizeof("grsec_modharden_fs") - 1;
107983 + /* copy \0 as well */
107984 + memmove(p, endptr, strlen(mod->args) - (unsigned int)(endptr - mod->args) + 1);
107985 + is_fs_load = 1;
107986 + }
107987 +#endif
107988 +
107989 for (i = 1; i < symsec->sh_size / sizeof(Elf_Sym); i++) {
107990 const char *name = info->strtab + sym[i].st_name;
107991
107992 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
107993 + /* it's a real shame this will never get ripped and copied
107994 + upstream! ;(
107995 + */
107996 + if (is_fs_load && !strcmp(name, "register_filesystem"))
107997 + register_filesystem_found = 1;
107998 +#endif
107999 +
108000 switch (sym[i].st_shndx) {
108001 case SHN_COMMON:
108002 /* Ignore common symbols */
108003 @@ -2141,7 +2228,9 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
108004 ksym = resolve_symbol_wait(mod, info, name);
108005 /* Ok if resolved. */
108006 if (ksym && !IS_ERR(ksym)) {
108007 + pax_open_kernel();
108008 sym[i].st_value = ksym->value;
108009 + pax_close_kernel();
108010 break;
108011 }
108012
108013 @@ -2160,11 +2249,20 @@ static int simplify_symbols(struct module *mod, const struct load_info *info)
108014 secbase = (unsigned long)mod_percpu(mod);
108015 else
108016 secbase = info->sechdrs[sym[i].st_shndx].sh_addr;
108017 + pax_open_kernel();
108018 sym[i].st_value += secbase;
108019 + pax_close_kernel();
108020 break;
108021 }
108022 }
108023
108024 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
108025 + if (is_fs_load && !register_filesystem_found) {
108026 + printk(KERN_ALERT "grsec: Denied attempt to load non-fs module %.64s through mount\n", mod->name);
108027 + ret = -EPERM;
108028 + }
108029 +#endif
108030 +
108031 return ret;
108032 }
108033
108034 @@ -2248,22 +2346,12 @@ static void layout_sections(struct module *mod, struct load_info *info)
108035 || s->sh_entsize != ~0UL
108036 || strstarts(sname, ".init"))
108037 continue;
108038 - s->sh_entsize = get_offset(mod, &mod->core_size, s, i);
108039 + if ((s->sh_flags & SHF_WRITE) || !(s->sh_flags & SHF_ALLOC))
108040 + s->sh_entsize = get_offset(mod, &mod->core_size_rw, s, i);
108041 + else
108042 + s->sh_entsize = get_offset(mod, &mod->core_size_rx, s, i);
108043 pr_debug("\t%s\n", sname);
108044 }
108045 - switch (m) {
108046 - case 0: /* executable */
108047 - mod->core_size = debug_align(mod->core_size);
108048 - mod->core_text_size = mod->core_size;
108049 - break;
108050 - case 1: /* RO: text and ro-data */
108051 - mod->core_size = debug_align(mod->core_size);
108052 - mod->core_ro_size = mod->core_size;
108053 - break;
108054 - case 3: /* whole core */
108055 - mod->core_size = debug_align(mod->core_size);
108056 - break;
108057 - }
108058 }
108059
108060 pr_debug("Init section allocation order:\n");
108061 @@ -2277,23 +2365,13 @@ static void layout_sections(struct module *mod, struct load_info *info)
108062 || s->sh_entsize != ~0UL
108063 || !strstarts(sname, ".init"))
108064 continue;
108065 - s->sh_entsize = (get_offset(mod, &mod->init_size, s, i)
108066 - | INIT_OFFSET_MASK);
108067 + if ((s->sh_flags & SHF_WRITE) || !(s->sh_flags & SHF_ALLOC))
108068 + s->sh_entsize = get_offset(mod, &mod->init_size_rw, s, i);
108069 + else
108070 + s->sh_entsize = get_offset(mod, &mod->init_size_rx, s, i);
108071 + s->sh_entsize |= INIT_OFFSET_MASK;
108072 pr_debug("\t%s\n", sname);
108073 }
108074 - switch (m) {
108075 - case 0: /* executable */
108076 - mod->init_size = debug_align(mod->init_size);
108077 - mod->init_text_size = mod->init_size;
108078 - break;
108079 - case 1: /* RO: text and ro-data */
108080 - mod->init_size = debug_align(mod->init_size);
108081 - mod->init_ro_size = mod->init_size;
108082 - break;
108083 - case 3: /* whole init */
108084 - mod->init_size = debug_align(mod->init_size);
108085 - break;
108086 - }
108087 }
108088 }
108089
108090 @@ -2466,7 +2544,7 @@ static void layout_symtab(struct module *mod, struct load_info *info)
108091
108092 /* Put symbol section at end of init part of module. */
108093 symsect->sh_flags |= SHF_ALLOC;
108094 - symsect->sh_entsize = get_offset(mod, &mod->init_size, symsect,
108095 + symsect->sh_entsize = get_offset(mod, &mod->init_size_rx, symsect,
108096 info->index.sym) | INIT_OFFSET_MASK;
108097 pr_debug("\t%s\n", info->secstrings + symsect->sh_name);
108098
108099 @@ -2483,16 +2561,16 @@ static void layout_symtab(struct module *mod, struct load_info *info)
108100 }
108101
108102 /* Append room for core symbols at end of core part. */
108103 - info->symoffs = ALIGN(mod->core_size, symsect->sh_addralign ?: 1);
108104 - info->stroffs = mod->core_size = info->symoffs + ndst * sizeof(Elf_Sym);
108105 - mod->core_size += strtab_size;
108106 - mod->core_size = debug_align(mod->core_size);
108107 + info->symoffs = ALIGN(mod->core_size_rx, symsect->sh_addralign ?: 1);
108108 + info->stroffs = mod->core_size_rx = info->symoffs + ndst * sizeof(Elf_Sym);
108109 + mod->core_size_rx += strtab_size;
108110 + mod->core_size_rx = debug_align(mod->core_size_rx);
108111
108112 /* Put string table section at end of init part of module. */
108113 strsect->sh_flags |= SHF_ALLOC;
108114 - strsect->sh_entsize = get_offset(mod, &mod->init_size, strsect,
108115 + strsect->sh_entsize = get_offset(mod, &mod->init_size_rx, strsect,
108116 info->index.str) | INIT_OFFSET_MASK;
108117 - mod->init_size = debug_align(mod->init_size);
108118 + mod->init_size_rx = debug_align(mod->init_size_rx);
108119 pr_debug("\t%s\n", info->secstrings + strsect->sh_name);
108120 }
108121
108122 @@ -2509,12 +2587,14 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
108123 /* Make sure we get permanent strtab: don't use info->strtab. */
108124 mod->strtab = (void *)info->sechdrs[info->index.str].sh_addr;
108125
108126 + pax_open_kernel();
108127 +
108128 /* Set types up while we still have access to sections. */
108129 for (i = 0; i < mod->num_symtab; i++)
108130 mod->symtab[i].st_info = elf_type(&mod->symtab[i], info);
108131
108132 - mod->core_symtab = dst = mod->module_core + info->symoffs;
108133 - mod->core_strtab = s = mod->module_core + info->stroffs;
108134 + mod->core_symtab = dst = mod->module_core_rx + info->symoffs;
108135 + mod->core_strtab = s = mod->module_core_rx + info->stroffs;
108136 src = mod->symtab;
108137 for (ndst = i = 0; i < mod->num_symtab; i++) {
108138 if (i == 0 ||
108139 @@ -2526,6 +2606,8 @@ static void add_kallsyms(struct module *mod, const struct load_info *info)
108140 }
108141 }
108142 mod->core_num_syms = ndst;
108143 +
108144 + pax_close_kernel();
108145 }
108146 #else
108147 static inline void layout_symtab(struct module *mod, struct load_info *info)
108148 @@ -2825,7 +2907,15 @@ static struct module *setup_load_info(struct load_info *info, int flags)
108149 mod = (void *)info->sechdrs[info->index.mod].sh_addr;
108150
108151 if (info->index.sym == 0) {
108152 +#ifdef CONFIG_GRKERNSEC_RANDSTRUCT
108153 + /*
108154 + * avoid potentially printing jibberish on attempted load
108155 + * of a module randomized with a different seed
108156 + */
108157 + pr_warn("module has no symbols (stripped?)\n");
108158 +#else
108159 pr_warn("%s: module has no symbols (stripped?)\n", mod->name);
108160 +#endif
108161 return ERR_PTR(-ENOEXEC);
108162 }
108163
108164 @@ -2841,8 +2931,14 @@ static struct module *setup_load_info(struct load_info *info, int flags)
108165 static int check_modinfo(struct module *mod, struct load_info *info, int flags)
108166 {
108167 const char *modmagic = get_modinfo(info, "vermagic");
108168 + const char *license = get_modinfo(info, "license");
108169 int err;
108170
108171 +#ifdef CONFIG_PAX_KERNEXEC_PLUGIN_METHOD_OR
108172 + if (!license || !license_is_gpl_compatible(license))
108173 + return -ENOEXEC;
108174 +#endif
108175 +
108176 if (flags & MODULE_INIT_IGNORE_VERMAGIC)
108177 modmagic = NULL;
108178
108179 @@ -2867,7 +2963,7 @@ static int check_modinfo(struct module *mod, struct load_info *info, int flags)
108180 }
108181
108182 /* Set up license info based on the info section */
108183 - set_license(mod, get_modinfo(info, "license"));
108184 + set_license(mod, license);
108185
108186 return 0;
108187 }
108188 @@ -2964,7 +3060,7 @@ static int move_module(struct module *mod, struct load_info *info)
108189 void *ptr;
108190
108191 /* Do the allocs. */
108192 - ptr = module_alloc(mod->core_size);
108193 + ptr = module_alloc(mod->core_size_rw);
108194 /*
108195 * The pointer to this block is stored in the module structure
108196 * which is inside the block. Just mark it as not being a
108197 @@ -2974,11 +3070,11 @@ static int move_module(struct module *mod, struct load_info *info)
108198 if (!ptr)
108199 return -ENOMEM;
108200
108201 - memset(ptr, 0, mod->core_size);
108202 - mod->module_core = ptr;
108203 + memset(ptr, 0, mod->core_size_rw);
108204 + mod->module_core_rw = ptr;
108205
108206 - if (mod->init_size) {
108207 - ptr = module_alloc(mod->init_size);
108208 + if (mod->init_size_rw) {
108209 + ptr = module_alloc(mod->init_size_rw);
108210 /*
108211 * The pointer to this block is stored in the module structure
108212 * which is inside the block. This block doesn't need to be
108213 @@ -2987,13 +3083,45 @@ static int move_module(struct module *mod, struct load_info *info)
108214 */
108215 kmemleak_ignore(ptr);
108216 if (!ptr) {
108217 - module_memfree(mod->module_core);
108218 + module_memfree(mod->module_core_rw);
108219 return -ENOMEM;
108220 }
108221 - memset(ptr, 0, mod->init_size);
108222 - mod->module_init = ptr;
108223 + memset(ptr, 0, mod->init_size_rw);
108224 + mod->module_init_rw = ptr;
108225 } else
108226 - mod->module_init = NULL;
108227 + mod->module_init_rw = NULL;
108228 +
108229 + ptr = module_alloc_exec(mod->core_size_rx);
108230 + kmemleak_not_leak(ptr);
108231 + if (!ptr) {
108232 + if (mod->module_init_rw)
108233 + module_memfree(mod->module_init_rw);
108234 + module_memfree(mod->module_core_rw);
108235 + return -ENOMEM;
108236 + }
108237 +
108238 + pax_open_kernel();
108239 + memset(ptr, 0, mod->core_size_rx);
108240 + pax_close_kernel();
108241 + mod->module_core_rx = ptr;
108242 +
108243 + if (mod->init_size_rx) {
108244 + ptr = module_alloc_exec(mod->init_size_rx);
108245 + kmemleak_ignore(ptr);
108246 + if (!ptr && mod->init_size_rx) {
108247 + module_memfree_exec(mod->module_core_rx);
108248 + if (mod->module_init_rw)
108249 + module_memfree(mod->module_init_rw);
108250 + module_memfree(mod->module_core_rw);
108251 + return -ENOMEM;
108252 + }
108253 +
108254 + pax_open_kernel();
108255 + memset(ptr, 0, mod->init_size_rx);
108256 + pax_close_kernel();
108257 + mod->module_init_rx = ptr;
108258 + } else
108259 + mod->module_init_rx = NULL;
108260
108261 /* Transfer each section which specifies SHF_ALLOC */
108262 pr_debug("final section addresses:\n");
108263 @@ -3004,16 +3132,45 @@ static int move_module(struct module *mod, struct load_info *info)
108264 if (!(shdr->sh_flags & SHF_ALLOC))
108265 continue;
108266
108267 - if (shdr->sh_entsize & INIT_OFFSET_MASK)
108268 - dest = mod->module_init
108269 - + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
108270 - else
108271 - dest = mod->module_core + shdr->sh_entsize;
108272 + if (shdr->sh_entsize & INIT_OFFSET_MASK) {
108273 + if ((shdr->sh_flags & SHF_WRITE) || !(shdr->sh_flags & SHF_ALLOC))
108274 + dest = mod->module_init_rw
108275 + + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
108276 + else
108277 + dest = mod->module_init_rx
108278 + + (shdr->sh_entsize & ~INIT_OFFSET_MASK);
108279 + } else {
108280 + if ((shdr->sh_flags & SHF_WRITE) || !(shdr->sh_flags & SHF_ALLOC))
108281 + dest = mod->module_core_rw + shdr->sh_entsize;
108282 + else
108283 + dest = mod->module_core_rx + shdr->sh_entsize;
108284 + }
108285 +
108286 + if (shdr->sh_type != SHT_NOBITS) {
108287 +
108288 +#ifdef CONFIG_PAX_KERNEXEC
108289 +#ifdef CONFIG_X86_64
108290 + if ((shdr->sh_flags & SHF_WRITE) && (shdr->sh_flags & SHF_EXECINSTR))
108291 + set_memory_x((unsigned long)dest, (shdr->sh_size + PAGE_SIZE) >> PAGE_SHIFT);
108292 +#endif
108293 + if (!(shdr->sh_flags & SHF_WRITE) && (shdr->sh_flags & SHF_ALLOC)) {
108294 + pax_open_kernel();
108295 + memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
108296 + pax_close_kernel();
108297 + } else
108298 +#endif
108299
108300 - if (shdr->sh_type != SHT_NOBITS)
108301 memcpy(dest, (void *)shdr->sh_addr, shdr->sh_size);
108302 + }
108303 /* Update sh_addr to point to copy in image. */
108304 - shdr->sh_addr = (unsigned long)dest;
108305 +
108306 +#ifdef CONFIG_PAX_KERNEXEC
108307 + if (shdr->sh_flags & SHF_EXECINSTR)
108308 + shdr->sh_addr = ktva_ktla((unsigned long)dest);
108309 + else
108310 +#endif
108311 +
108312 + shdr->sh_addr = (unsigned long)dest;
108313 pr_debug("\t0x%lx %s\n",
108314 (long)shdr->sh_addr, info->secstrings + shdr->sh_name);
108315 }
108316 @@ -3070,12 +3227,12 @@ static void flush_module_icache(const struct module *mod)
108317 * Do it before processing of module parameters, so the module
108318 * can provide parameter accessor functions of its own.
108319 */
108320 - if (mod->module_init)
108321 - flush_icache_range((unsigned long)mod->module_init,
108322 - (unsigned long)mod->module_init
108323 - + mod->init_size);
108324 - flush_icache_range((unsigned long)mod->module_core,
108325 - (unsigned long)mod->module_core + mod->core_size);
108326 + if (mod->module_init_rx)
108327 + flush_icache_range((unsigned long)mod->module_init_rx,
108328 + (unsigned long)mod->module_init_rx
108329 + + mod->init_size_rx);
108330 + flush_icache_range((unsigned long)mod->module_core_rx,
108331 + (unsigned long)mod->module_core_rx + mod->core_size_rx);
108332
108333 set_fs(old_fs);
108334 }
108335 @@ -3133,8 +3290,10 @@ static void module_deallocate(struct module *mod, struct load_info *info)
108336 {
108337 percpu_modfree(mod);
108338 module_arch_freeing_init(mod);
108339 - module_memfree(mod->module_init);
108340 - module_memfree(mod->module_core);
108341 + module_memfree_exec(mod->module_init_rx);
108342 + module_memfree_exec(mod->module_core_rx);
108343 + module_memfree(mod->module_init_rw);
108344 + module_memfree(mod->module_core_rw);
108345 }
108346
108347 int __weak module_finalize(const Elf_Ehdr *hdr,
108348 @@ -3147,7 +3306,9 @@ int __weak module_finalize(const Elf_Ehdr *hdr,
108349 static int post_relocation(struct module *mod, const struct load_info *info)
108350 {
108351 /* Sort exception table now relocations are done. */
108352 + pax_open_kernel();
108353 sort_extable(mod->extable, mod->extable + mod->num_exentries);
108354 + pax_close_kernel();
108355
108356 /* Copy relocated percpu area over. */
108357 percpu_modcopy(mod, (void *)info->sechdrs[info->index.pcpu].sh_addr,
108358 @@ -3195,13 +3356,15 @@ static void do_mod_ctors(struct module *mod)
108359 /* For freeing module_init on success, in case kallsyms traversing */
108360 struct mod_initfree {
108361 struct rcu_head rcu;
108362 - void *module_init;
108363 + void *module_init_rw;
108364 + void *module_init_rx;
108365 };
108366
108367 static void do_free_init(struct rcu_head *head)
108368 {
108369 struct mod_initfree *m = container_of(head, struct mod_initfree, rcu);
108370 - module_memfree(m->module_init);
108371 + module_memfree(m->module_init_rw);
108372 + module_memfree_exec(m->module_init_rx);
108373 kfree(m);
108374 }
108375
108376 @@ -3221,7 +3384,8 @@ static noinline int do_init_module(struct module *mod)
108377 ret = -ENOMEM;
108378 goto fail;
108379 }
108380 - freeinit->module_init = mod->module_init;
108381 + freeinit->module_init_rw = mod->module_init_rw;
108382 + freeinit->module_init_rx = mod->module_init_rx;
108383
108384 /*
108385 * We want to find out whether @mod uses async during init. Clear
108386 @@ -3281,10 +3445,10 @@ static noinline int do_init_module(struct module *mod)
108387 mod_tree_remove_init(mod);
108388 unset_module_init_ro_nx(mod);
108389 module_arch_freeing_init(mod);
108390 - mod->module_init = NULL;
108391 - mod->init_size = 0;
108392 - mod->init_ro_size = 0;
108393 - mod->init_text_size = 0;
108394 + mod->module_init_rw = NULL;
108395 + mod->module_init_rx = NULL;
108396 + mod->init_size_rw = 0;
108397 + mod->init_size_rx = 0;
108398 /*
108399 * We want to free module_init, but be aware that kallsyms may be
108400 * walking this with preempt disabled. In all the failure paths, we
108401 @@ -3374,16 +3538,16 @@ static int complete_formation(struct module *mod, struct load_info *info)
108402 module_bug_finalize(info->hdr, info->sechdrs, mod);
108403
108404 /* Set RO and NX regions for core */
108405 - set_section_ro_nx(mod->module_core,
108406 - mod->core_text_size,
108407 - mod->core_ro_size,
108408 - mod->core_size);
108409 + set_section_ro_nx(mod->module_core_rx,
108410 + mod->core_size_rx,
108411 + mod->core_size_rx,
108412 + mod->core_size_rx);
108413
108414 /* Set RO and NX regions for init */
108415 - set_section_ro_nx(mod->module_init,
108416 - mod->init_text_size,
108417 - mod->init_ro_size,
108418 - mod->init_size);
108419 + set_section_ro_nx(mod->module_init_rx,
108420 + mod->init_size_rx,
108421 + mod->init_size_rx,
108422 + mod->init_size_rx);
108423
108424 /* Mark state as coming so strong_try_module_get() ignores us,
108425 * but kallsyms etc. can see us. */
108426 @@ -3478,9 +3642,38 @@ static int load_module(struct load_info *info, const char __user *uargs,
108427 if (err)
108428 goto free_unload;
108429
108430 + /* Now copy in args */
108431 + mod->args = strndup_user(uargs, ~0UL >> 1);
108432 + if (IS_ERR(mod->args)) {
108433 + err = PTR_ERR(mod->args);
108434 + goto free_unload;
108435 + }
108436 +
108437 /* Set up MODINFO_ATTR fields */
108438 setup_modinfo(mod, info);
108439
108440 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
108441 + {
108442 + char *p, *p2;
108443 +
108444 + if (strstr(mod->args, "grsec_modharden_netdev")) {
108445 + 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);
108446 + err = -EPERM;
108447 + goto free_modinfo;
108448 + } else if ((p = strstr(mod->args, "grsec_modharden_normal"))) {
108449 + p += sizeof("grsec_modharden_normal") - 1;
108450 + p2 = strstr(p, "_");
108451 + if (p2) {
108452 + *p2 = '\0';
108453 + printk(KERN_ALERT "grsec: denied kernel module auto-load of %.64s by uid %.9s\n", mod->name, p);
108454 + *p2 = '_';
108455 + }
108456 + err = -EPERM;
108457 + goto free_modinfo;
108458 + }
108459 + }
108460 +#endif
108461 +
108462 /* Fix up syms, so that st_value is a pointer to location. */
108463 err = simplify_symbols(mod, info);
108464 if (err < 0)
108465 @@ -3496,13 +3689,6 @@ static int load_module(struct load_info *info, const char __user *uargs,
108466
108467 flush_module_icache(mod);
108468
108469 - /* Now copy in args */
108470 - mod->args = strndup_user(uargs, ~0UL >> 1);
108471 - if (IS_ERR(mod->args)) {
108472 - err = PTR_ERR(mod->args);
108473 - goto free_arch_cleanup;
108474 - }
108475 -
108476 dynamic_debug_setup(info->debug, info->num_debug);
108477
108478 /* Ftrace init must be called in the MODULE_STATE_UNFORMED state */
108479 @@ -3554,11 +3740,10 @@ static int load_module(struct load_info *info, const char __user *uargs,
108480 ddebug_cleanup:
108481 dynamic_debug_remove(info->debug);
108482 synchronize_sched();
108483 - kfree(mod->args);
108484 - free_arch_cleanup:
108485 module_arch_cleanup(mod);
108486 free_modinfo:
108487 free_modinfo(mod);
108488 + kfree(mod->args);
108489 free_unload:
108490 module_unload_free(mod);
108491 unlink_mod:
108492 @@ -3572,7 +3757,8 @@ static int load_module(struct load_info *info, const char __user *uargs,
108493 mutex_unlock(&module_mutex);
108494 free_module:
108495 /* Free lock-classes; relies on the preceding sync_rcu() */
108496 - lockdep_free_key_range(mod->module_core, mod->core_size);
108497 + lockdep_free_key_range(mod->module_core_rx, mod->core_size_rx);
108498 + lockdep_free_key_range(mod->module_core_rw, mod->core_size_rw);
108499
108500 module_deallocate(mod, info);
108501 free_copy:
108502 @@ -3649,10 +3835,16 @@ static const char *get_ksymbol(struct module *mod,
108503 unsigned long nextval;
108504
108505 /* At worse, next value is at end of module */
108506 - if (within_module_init(addr, mod))
108507 - nextval = (unsigned long)mod->module_init+mod->init_text_size;
108508 + if (within_module_init_rx(addr, mod))
108509 + nextval = (unsigned long)mod->module_init_rx+mod->init_size_rx;
108510 + else if (within_module_init_rw(addr, mod))
108511 + nextval = (unsigned long)mod->module_init_rw+mod->init_size_rw;
108512 + else if (within_module_core_rx(addr, mod))
108513 + nextval = (unsigned long)mod->module_core_rx+mod->core_size_rx;
108514 + else if (within_module_core_rw(addr, mod))
108515 + nextval = (unsigned long)mod->module_core_rw+mod->core_size_rw;
108516 else
108517 - nextval = (unsigned long)mod->module_core+mod->core_text_size;
108518 + return NULL;
108519
108520 /* Scan for closest preceding symbol, and next symbol. (ELF
108521 starts real symbols at 1). */
108522 @@ -3899,7 +4091,7 @@ static int m_show(struct seq_file *m, void *p)
108523 return 0;
108524
108525 seq_printf(m, "%s %u",
108526 - mod->name, mod->init_size + mod->core_size);
108527 + mod->name, mod->init_size_rx + mod->init_size_rw + mod->core_size_rx + mod->core_size_rw);
108528 print_unload_info(m, mod);
108529
108530 /* Informative for users. */
108531 @@ -3908,7 +4100,7 @@ static int m_show(struct seq_file *m, void *p)
108532 mod->state == MODULE_STATE_COMING ? "Loading" :
108533 "Live");
108534 /* Used by oprofile and other similar tools. */
108535 - seq_printf(m, " 0x%pK", mod->module_core);
108536 + seq_printf(m, " 0x%pK 0x%pK", mod->module_core_rx, mod->module_core_rw);
108537
108538 /* Taints info */
108539 if (mod->taints)
108540 @@ -3944,7 +4136,17 @@ static const struct file_operations proc_modules_operations = {
108541
108542 static int __init proc_modules_init(void)
108543 {
108544 +#ifndef CONFIG_GRKERNSEC_HIDESYM
108545 +#ifdef CONFIG_GRKERNSEC_PROC_USER
108546 + proc_create("modules", S_IRUSR, NULL, &proc_modules_operations);
108547 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
108548 + proc_create("modules", S_IRUSR | S_IRGRP, NULL, &proc_modules_operations);
108549 +#else
108550 proc_create("modules", 0, NULL, &proc_modules_operations);
108551 +#endif
108552 +#else
108553 + proc_create("modules", S_IRUSR, NULL, &proc_modules_operations);
108554 +#endif
108555 return 0;
108556 }
108557 module_init(proc_modules_init);
108558 @@ -4005,7 +4207,8 @@ struct module *__module_address(unsigned long addr)
108559 {
108560 struct module *mod;
108561
108562 - if (addr < module_addr_min || addr > module_addr_max)
108563 + if ((addr < module_addr_min_rx || addr > module_addr_max_rx) &&
108564 + (addr < module_addr_min_rw || addr > module_addr_max_rw))
108565 return NULL;
108566
108567 module_assert_mutex_or_preempt();
108568 @@ -4048,11 +4251,20 @@ bool is_module_text_address(unsigned long addr)
108569 */
108570 struct module *__module_text_address(unsigned long addr)
108571 {
108572 - struct module *mod = __module_address(addr);
108573 + struct module *mod;
108574 +
108575 +#ifdef CONFIG_X86_32
108576 + addr = ktla_ktva(addr);
108577 +#endif
108578 +
108579 + if (addr < module_addr_min_rx || addr > module_addr_max_rx)
108580 + return NULL;
108581 +
108582 + mod = __module_address(addr);
108583 +
108584 if (mod) {
108585 /* Make sure it's within the text section. */
108586 - if (!within(addr, mod->module_init, mod->init_text_size)
108587 - && !within(addr, mod->module_core, mod->core_text_size))
108588 + if (!within_module_init_rx(addr, mod) && !within_module_core_rx(addr, mod))
108589 mod = NULL;
108590 }
108591 return mod;
108592 diff --git a/kernel/notifier.c b/kernel/notifier.c
108593 index ae9fc7c..5085fbf 100644
108594 --- a/kernel/notifier.c
108595 +++ b/kernel/notifier.c
108596 @@ -5,6 +5,7 @@
108597 #include <linux/rcupdate.h>
108598 #include <linux/vmalloc.h>
108599 #include <linux/reboot.h>
108600 +#include <linux/mm.h>
108601
108602 /*
108603 * Notifier list for kernel code which wants to be called
108604 @@ -24,10 +25,12 @@ static int notifier_chain_register(struct notifier_block **nl,
108605 while ((*nl) != NULL) {
108606 if (n->priority > (*nl)->priority)
108607 break;
108608 - nl = &((*nl)->next);
108609 + nl = (struct notifier_block **)&((*nl)->next);
108610 }
108611 - n->next = *nl;
108612 + pax_open_kernel();
108613 + *(const void **)&n->next = *nl;
108614 rcu_assign_pointer(*nl, n);
108615 + pax_close_kernel();
108616 return 0;
108617 }
108618
108619 @@ -39,10 +42,12 @@ static int notifier_chain_cond_register(struct notifier_block **nl,
108620 return 0;
108621 if (n->priority > (*nl)->priority)
108622 break;
108623 - nl = &((*nl)->next);
108624 + nl = (struct notifier_block **)&((*nl)->next);
108625 }
108626 - n->next = *nl;
108627 + pax_open_kernel();
108628 + *(const void **)&n->next = *nl;
108629 rcu_assign_pointer(*nl, n);
108630 + pax_close_kernel();
108631 return 0;
108632 }
108633
108634 @@ -51,10 +56,12 @@ static int notifier_chain_unregister(struct notifier_block **nl,
108635 {
108636 while ((*nl) != NULL) {
108637 if ((*nl) == n) {
108638 + pax_open_kernel();
108639 rcu_assign_pointer(*nl, n->next);
108640 + pax_close_kernel();
108641 return 0;
108642 }
108643 - nl = &((*nl)->next);
108644 + nl = (struct notifier_block **)&((*nl)->next);
108645 }
108646 return -ENOENT;
108647 }
108648 diff --git a/kernel/padata.c b/kernel/padata.c
108649 index b38bea9..91acfbe 100644
108650 --- a/kernel/padata.c
108651 +++ b/kernel/padata.c
108652 @@ -54,7 +54,7 @@ static int padata_cpu_hash(struct parallel_data *pd)
108653 * seq_nr mod. number of cpus in use.
108654 */
108655
108656 - seq_nr = atomic_inc_return(&pd->seq_nr);
108657 + seq_nr = atomic_inc_return_unchecked(&pd->seq_nr);
108658 cpu_index = seq_nr % cpumask_weight(pd->cpumask.pcpu);
108659
108660 return padata_index_to_cpu(pd, cpu_index);
108661 @@ -428,7 +428,7 @@ static struct parallel_data *padata_alloc_pd(struct padata_instance *pinst,
108662 padata_init_pqueues(pd);
108663 padata_init_squeues(pd);
108664 setup_timer(&pd->timer, padata_reorder_timer, (unsigned long)pd);
108665 - atomic_set(&pd->seq_nr, -1);
108666 + atomic_set_unchecked(&pd->seq_nr, -1);
108667 atomic_set(&pd->reorder_objects, 0);
108668 atomic_set(&pd->refcnt, 0);
108669 pd->pinst = pinst;
108670 diff --git a/kernel/panic.c b/kernel/panic.c
108671 index 04e91ff..2419384 100644
108672 --- a/kernel/panic.c
108673 +++ b/kernel/panic.c
108674 @@ -54,7 +54,7 @@ EXPORT_SYMBOL(panic_blink);
108675 /*
108676 * Stop ourself in panic -- architecture code may override this
108677 */
108678 -void __weak panic_smp_self_stop(void)
108679 +void __weak __noreturn panic_smp_self_stop(void)
108680 {
108681 while (1)
108682 cpu_relax();
108683 @@ -426,7 +426,7 @@ static void warn_slowpath_common(const char *file, int line, void *caller,
108684 disable_trace_on_warning();
108685
108686 pr_warn("------------[ cut here ]------------\n");
108687 - pr_warn("WARNING: CPU: %d PID: %d at %s:%d %pS()\n",
108688 + pr_warn("WARNING: CPU: %d PID: %d at %s:%d %pA()\n",
108689 raw_smp_processor_id(), current->pid, file, line, caller);
108690
108691 if (args)
108692 @@ -491,7 +491,8 @@ EXPORT_SYMBOL(warn_slowpath_null);
108693 */
108694 __visible void __stack_chk_fail(void)
108695 {
108696 - panic("stack-protector: Kernel stack is corrupted in: %p\n",
108697 + dump_stack();
108698 + panic("stack-protector: Kernel stack is corrupted in: %pA\n",
108699 __builtin_return_address(0));
108700 }
108701 EXPORT_SYMBOL(__stack_chk_fail);
108702 diff --git a/kernel/pid.c b/kernel/pid.c
108703 index 4fd07d5..02bce4f 100644
108704 --- a/kernel/pid.c
108705 +++ b/kernel/pid.c
108706 @@ -33,6 +33,7 @@
108707 #include <linux/rculist.h>
108708 #include <linux/bootmem.h>
108709 #include <linux/hash.h>
108710 +#include <linux/security.h>
108711 #include <linux/pid_namespace.h>
108712 #include <linux/init_task.h>
108713 #include <linux/syscalls.h>
108714 @@ -47,7 +48,7 @@ struct pid init_struct_pid = INIT_STRUCT_PID;
108715
108716 int pid_max = PID_MAX_DEFAULT;
108717
108718 -#define RESERVED_PIDS 300
108719 +#define RESERVED_PIDS 500
108720
108721 int pid_max_min = RESERVED_PIDS + 1;
108722 int pid_max_max = PID_MAX_LIMIT;
108723 @@ -451,10 +452,18 @@ EXPORT_SYMBOL(pid_task);
108724 */
108725 struct task_struct *find_task_by_pid_ns(pid_t nr, struct pid_namespace *ns)
108726 {
108727 + struct task_struct *task;
108728 +
108729 rcu_lockdep_assert(rcu_read_lock_held(),
108730 "find_task_by_pid_ns() needs rcu_read_lock()"
108731 " protection");
108732 - return pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
108733 +
108734 + task = pid_task(find_pid_ns(nr, ns), PIDTYPE_PID);
108735 +
108736 + if (gr_pid_is_chrooted(task))
108737 + return NULL;
108738 +
108739 + return task;
108740 }
108741
108742 struct task_struct *find_task_by_vpid(pid_t vnr)
108743 @@ -462,6 +471,14 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
108744 return find_task_by_pid_ns(vnr, task_active_pid_ns(current));
108745 }
108746
108747 +struct task_struct *find_task_by_vpid_unrestricted(pid_t vnr)
108748 +{
108749 + rcu_lockdep_assert(rcu_read_lock_held(),
108750 + "find_task_by_pid_ns() needs rcu_read_lock()"
108751 + " protection");
108752 + return pid_task(find_pid_ns(vnr, task_active_pid_ns(current)), PIDTYPE_PID);
108753 +}
108754 +
108755 struct pid *get_task_pid(struct task_struct *task, enum pid_type type)
108756 {
108757 struct pid *pid;
108758 diff --git a/kernel/pid_namespace.c b/kernel/pid_namespace.c
108759 index a65ba13..f600dbb 100644
108760 --- a/kernel/pid_namespace.c
108761 +++ b/kernel/pid_namespace.c
108762 @@ -274,7 +274,7 @@ static int pid_ns_ctl_handler(struct ctl_table *table, int write,
108763 void __user *buffer, size_t *lenp, loff_t *ppos)
108764 {
108765 struct pid_namespace *pid_ns = task_active_pid_ns(current);
108766 - struct ctl_table tmp = *table;
108767 + ctl_table_no_const tmp = *table;
108768
108769 if (write && !ns_capable(pid_ns->user_ns, CAP_SYS_ADMIN))
108770 return -EPERM;
108771 diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
108772 index 9e30231..75a6d97 100644
108773 --- a/kernel/power/Kconfig
108774 +++ b/kernel/power/Kconfig
108775 @@ -24,6 +24,8 @@ config HIBERNATE_CALLBACKS
108776 config HIBERNATION
108777 bool "Hibernation (aka 'suspend to disk')"
108778 depends on SWAP && ARCH_HIBERNATION_POSSIBLE
108779 + depends on !GRKERNSEC_KMEM
108780 + depends on !PAX_MEMORY_SANITIZE
108781 select HIBERNATE_CALLBACKS
108782 select LZO_COMPRESS
108783 select LZO_DECOMPRESS
108784 diff --git a/kernel/power/process.c b/kernel/power/process.c
108785 index 564f786..361a18e 100644
108786 --- a/kernel/power/process.c
108787 +++ b/kernel/power/process.c
108788 @@ -35,6 +35,7 @@ static int try_to_freeze_tasks(bool user_only)
108789 unsigned int elapsed_msecs;
108790 bool wakeup = false;
108791 int sleep_usecs = USEC_PER_MSEC;
108792 + bool timedout = false;
108793
108794 do_gettimeofday(&start);
108795
108796 @@ -45,13 +46,20 @@ static int try_to_freeze_tasks(bool user_only)
108797
108798 while (true) {
108799 todo = 0;
108800 + if (time_after(jiffies, end_time))
108801 + timedout = true;
108802 read_lock(&tasklist_lock);
108803 for_each_process_thread(g, p) {
108804 if (p == current || !freeze_task(p))
108805 continue;
108806
108807 - if (!freezer_should_skip(p))
108808 + if (!freezer_should_skip(p)) {
108809 todo++;
108810 + if (timedout) {
108811 + printk(KERN_ERR "Task refusing to freeze:\n");
108812 + sched_show_task(p);
108813 + }
108814 + }
108815 }
108816 read_unlock(&tasklist_lock);
108817
108818 @@ -60,7 +68,7 @@ static int try_to_freeze_tasks(bool user_only)
108819 todo += wq_busy;
108820 }
108821
108822 - if (!todo || time_after(jiffies, end_time))
108823 + if (!todo || timedout)
108824 break;
108825
108826 if (pm_wakeup_pending()) {
108827 diff --git a/kernel/printk/printk.c b/kernel/printk/printk.c
108828 index cf8c242..84e7843 100644
108829 --- a/kernel/printk/printk.c
108830 +++ b/kernel/printk/printk.c
108831 @@ -475,7 +475,7 @@ static int log_store(int facility, int level,
108832 return msg->text_len;
108833 }
108834
108835 -int dmesg_restrict = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT);
108836 +int dmesg_restrict __read_only = IS_ENABLED(CONFIG_SECURITY_DMESG_RESTRICT);
108837
108838 static int syslog_action_restricted(int type)
108839 {
108840 @@ -498,6 +498,11 @@ int check_syslog_permissions(int type, int source)
108841 if (source == SYSLOG_FROM_PROC && type != SYSLOG_ACTION_OPEN)
108842 goto ok;
108843
108844 +#ifdef CONFIG_GRKERNSEC_DMESG
108845 + if (grsec_enable_dmesg && !capable(CAP_SYSLOG) && !capable_nolog(CAP_SYS_ADMIN))
108846 + return -EPERM;
108847 +#endif
108848 +
108849 if (syslog_action_restricted(type)) {
108850 if (capable(CAP_SYSLOG))
108851 goto ok;
108852 diff --git a/kernel/profile.c b/kernel/profile.c
108853 index a7bcd28..5b368fa 100644
108854 --- a/kernel/profile.c
108855 +++ b/kernel/profile.c
108856 @@ -37,7 +37,7 @@ struct profile_hit {
108857 #define NR_PROFILE_HIT (PAGE_SIZE/sizeof(struct profile_hit))
108858 #define NR_PROFILE_GRP (NR_PROFILE_HIT/PROFILE_GRPSZ)
108859
108860 -static atomic_t *prof_buffer;
108861 +static atomic_unchecked_t *prof_buffer;
108862 static unsigned long prof_len, prof_shift;
108863
108864 int prof_on __read_mostly;
108865 @@ -256,7 +256,7 @@ static void profile_flip_buffers(void)
108866 hits[i].pc = 0;
108867 continue;
108868 }
108869 - atomic_add(hits[i].hits, &prof_buffer[hits[i].pc]);
108870 + atomic_add_unchecked(hits[i].hits, &prof_buffer[hits[i].pc]);
108871 hits[i].hits = hits[i].pc = 0;
108872 }
108873 }
108874 @@ -317,9 +317,9 @@ static void do_profile_hits(int type, void *__pc, unsigned int nr_hits)
108875 * Add the current hit(s) and flush the write-queue out
108876 * to the global buffer:
108877 */
108878 - atomic_add(nr_hits, &prof_buffer[pc]);
108879 + atomic_add_unchecked(nr_hits, &prof_buffer[pc]);
108880 for (i = 0; i < NR_PROFILE_HIT; ++i) {
108881 - atomic_add(hits[i].hits, &prof_buffer[hits[i].pc]);
108882 + atomic_add_unchecked(hits[i].hits, &prof_buffer[hits[i].pc]);
108883 hits[i].pc = hits[i].hits = 0;
108884 }
108885 out:
108886 @@ -394,7 +394,7 @@ static void do_profile_hits(int type, void *__pc, unsigned int nr_hits)
108887 {
108888 unsigned long pc;
108889 pc = ((unsigned long)__pc - (unsigned long)_stext) >> prof_shift;
108890 - atomic_add(nr_hits, &prof_buffer[min(pc, prof_len - 1)]);
108891 + atomic_add_unchecked(nr_hits, &prof_buffer[min(pc, prof_len - 1)]);
108892 }
108893 #endif /* !CONFIG_SMP */
108894
108895 @@ -489,7 +489,7 @@ read_profile(struct file *file, char __user *buf, size_t count, loff_t *ppos)
108896 return -EFAULT;
108897 buf++; p++; count--; read++;
108898 }
108899 - pnt = (char *)prof_buffer + p - sizeof(atomic_t);
108900 + pnt = (char *)prof_buffer + p - sizeof(atomic_unchecked_t);
108901 if (copy_to_user(buf, (void *)pnt, count))
108902 return -EFAULT;
108903 read += count;
108904 @@ -520,7 +520,7 @@ static ssize_t write_profile(struct file *file, const char __user *buf,
108905 }
108906 #endif
108907 profile_discard_flip_buffers();
108908 - memset(prof_buffer, 0, prof_len * sizeof(atomic_t));
108909 + memset(prof_buffer, 0, prof_len * sizeof(atomic_unchecked_t));
108910 return count;
108911 }
108912
108913 diff --git a/kernel/ptrace.c b/kernel/ptrace.c
108914 index c8e0e05..2be5614 100644
108915 --- a/kernel/ptrace.c
108916 +++ b/kernel/ptrace.c
108917 @@ -321,7 +321,7 @@ static int ptrace_attach(struct task_struct *task, long request,
108918 if (seize)
108919 flags |= PT_SEIZED;
108920 rcu_read_lock();
108921 - if (ns_capable(__task_cred(task)->user_ns, CAP_SYS_PTRACE))
108922 + if (ns_capable_nolog(__task_cred(task)->user_ns, CAP_SYS_PTRACE))
108923 flags |= PT_PTRACE_CAP;
108924 rcu_read_unlock();
108925 task->ptrace = flags;
108926 @@ -514,7 +514,7 @@ int ptrace_readdata(struct task_struct *tsk, unsigned long src, char __user *dst
108927 break;
108928 return -EIO;
108929 }
108930 - if (copy_to_user(dst, buf, retval))
108931 + if (retval > sizeof(buf) || copy_to_user(dst, buf, retval))
108932 return -EFAULT;
108933 copied += retval;
108934 src += retval;
108935 @@ -802,7 +802,7 @@ int ptrace_request(struct task_struct *child, long request,
108936 bool seized = child->ptrace & PT_SEIZED;
108937 int ret = -EIO;
108938 siginfo_t siginfo, *si;
108939 - void __user *datavp = (void __user *) data;
108940 + void __user *datavp = (__force void __user *) data;
108941 unsigned long __user *datalp = datavp;
108942 unsigned long flags;
108943
108944 @@ -1048,14 +1048,21 @@ SYSCALL_DEFINE4(ptrace, long, request, long, pid, unsigned long, addr,
108945 goto out;
108946 }
108947
108948 + if (gr_handle_ptrace(child, request)) {
108949 + ret = -EPERM;
108950 + goto out_put_task_struct;
108951 + }
108952 +
108953 if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
108954 ret = ptrace_attach(child, request, addr, data);
108955 /*
108956 * Some architectures need to do book-keeping after
108957 * a ptrace attach.
108958 */
108959 - if (!ret)
108960 + if (!ret) {
108961 arch_ptrace_attach(child);
108962 + gr_audit_ptrace(child);
108963 + }
108964 goto out_put_task_struct;
108965 }
108966
108967 @@ -1083,7 +1090,7 @@ int generic_ptrace_peekdata(struct task_struct *tsk, unsigned long addr,
108968 copied = access_process_vm(tsk, addr, &tmp, sizeof(tmp), 0);
108969 if (copied != sizeof(tmp))
108970 return -EIO;
108971 - return put_user(tmp, (unsigned long __user *)data);
108972 + return put_user(tmp, (__force unsigned long __user *)data);
108973 }
108974
108975 int generic_ptrace_pokedata(struct task_struct *tsk, unsigned long addr,
108976 @@ -1176,7 +1183,7 @@ int compat_ptrace_request(struct task_struct *child, compat_long_t request,
108977 }
108978
108979 COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
108980 - compat_long_t, addr, compat_long_t, data)
108981 + compat_ulong_t, addr, compat_ulong_t, data)
108982 {
108983 struct task_struct *child;
108984 long ret;
108985 @@ -1192,14 +1199,21 @@ COMPAT_SYSCALL_DEFINE4(ptrace, compat_long_t, request, compat_long_t, pid,
108986 goto out;
108987 }
108988
108989 + if (gr_handle_ptrace(child, request)) {
108990 + ret = -EPERM;
108991 + goto out_put_task_struct;
108992 + }
108993 +
108994 if (request == PTRACE_ATTACH || request == PTRACE_SEIZE) {
108995 ret = ptrace_attach(child, request, addr, data);
108996 /*
108997 * Some architectures need to do book-keeping after
108998 * a ptrace attach.
108999 */
109000 - if (!ret)
109001 + if (!ret) {
109002 arch_ptrace_attach(child);
109003 + gr_audit_ptrace(child);
109004 + }
109005 goto out_put_task_struct;
109006 }
109007
109008 diff --git a/kernel/rcu/rcutorture.c b/kernel/rcu/rcutorture.c
109009 index 59e32684..d2eb3d9 100644
109010 --- a/kernel/rcu/rcutorture.c
109011 +++ b/kernel/rcu/rcutorture.c
109012 @@ -134,12 +134,12 @@ static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1],
109013 rcu_torture_count) = { 0 };
109014 static DEFINE_PER_CPU(long [RCU_TORTURE_PIPE_LEN + 1],
109015 rcu_torture_batch) = { 0 };
109016 -static atomic_t rcu_torture_wcount[RCU_TORTURE_PIPE_LEN + 1];
109017 -static atomic_t n_rcu_torture_alloc;
109018 -static atomic_t n_rcu_torture_alloc_fail;
109019 -static atomic_t n_rcu_torture_free;
109020 -static atomic_t n_rcu_torture_mberror;
109021 -static atomic_t n_rcu_torture_error;
109022 +static atomic_unchecked_t rcu_torture_wcount[RCU_TORTURE_PIPE_LEN + 1];
109023 +static atomic_unchecked_t n_rcu_torture_alloc;
109024 +static atomic_unchecked_t n_rcu_torture_alloc_fail;
109025 +static atomic_unchecked_t n_rcu_torture_free;
109026 +static atomic_unchecked_t n_rcu_torture_mberror;
109027 +static atomic_unchecked_t n_rcu_torture_error;
109028 static long n_rcu_torture_barrier_error;
109029 static long n_rcu_torture_boost_ktrerror;
109030 static long n_rcu_torture_boost_rterror;
109031 @@ -148,7 +148,7 @@ static long n_rcu_torture_boosts;
109032 static long n_rcu_torture_timers;
109033 static long n_barrier_attempts;
109034 static long n_barrier_successes;
109035 -static atomic_long_t n_cbfloods;
109036 +static atomic_long_unchecked_t n_cbfloods;
109037 static struct list_head rcu_torture_removed;
109038
109039 static int rcu_torture_writer_state;
109040 @@ -211,11 +211,11 @@ rcu_torture_alloc(void)
109041
109042 spin_lock_bh(&rcu_torture_lock);
109043 if (list_empty(&rcu_torture_freelist)) {
109044 - atomic_inc(&n_rcu_torture_alloc_fail);
109045 + atomic_inc_unchecked(&n_rcu_torture_alloc_fail);
109046 spin_unlock_bh(&rcu_torture_lock);
109047 return NULL;
109048 }
109049 - atomic_inc(&n_rcu_torture_alloc);
109050 + atomic_inc_unchecked(&n_rcu_torture_alloc);
109051 p = rcu_torture_freelist.next;
109052 list_del_init(p);
109053 spin_unlock_bh(&rcu_torture_lock);
109054 @@ -228,7 +228,7 @@ rcu_torture_alloc(void)
109055 static void
109056 rcu_torture_free(struct rcu_torture *p)
109057 {
109058 - atomic_inc(&n_rcu_torture_free);
109059 + atomic_inc_unchecked(&n_rcu_torture_free);
109060 spin_lock_bh(&rcu_torture_lock);
109061 list_add_tail(&p->rtort_free, &rcu_torture_freelist);
109062 spin_unlock_bh(&rcu_torture_lock);
109063 @@ -309,7 +309,7 @@ rcu_torture_pipe_update_one(struct rcu_torture *rp)
109064 i = rp->rtort_pipe_count;
109065 if (i > RCU_TORTURE_PIPE_LEN)
109066 i = RCU_TORTURE_PIPE_LEN;
109067 - atomic_inc(&rcu_torture_wcount[i]);
109068 + atomic_inc_unchecked(&rcu_torture_wcount[i]);
109069 if (++rp->rtort_pipe_count >= RCU_TORTURE_PIPE_LEN) {
109070 rp->rtort_mbtest = 0;
109071 return true;
109072 @@ -830,7 +830,7 @@ rcu_torture_cbflood(void *arg)
109073 VERBOSE_TOROUT_STRING("rcu_torture_cbflood task started");
109074 do {
109075 schedule_timeout_interruptible(cbflood_inter_holdoff);
109076 - atomic_long_inc(&n_cbfloods);
109077 + atomic_long_inc_unchecked(&n_cbfloods);
109078 WARN_ON(signal_pending(current));
109079 for (i = 0; i < cbflood_n_burst; i++) {
109080 for (j = 0; j < cbflood_n_per_burst; j++) {
109081 @@ -957,7 +957,7 @@ rcu_torture_writer(void *arg)
109082 i = old_rp->rtort_pipe_count;
109083 if (i > RCU_TORTURE_PIPE_LEN)
109084 i = RCU_TORTURE_PIPE_LEN;
109085 - atomic_inc(&rcu_torture_wcount[i]);
109086 + atomic_inc_unchecked(&rcu_torture_wcount[i]);
109087 old_rp->rtort_pipe_count++;
109088 switch (synctype[torture_random(&rand) % nsynctypes]) {
109089 case RTWS_DEF_FREE:
109090 @@ -1095,7 +1095,7 @@ static void rcu_torture_timer(unsigned long unused)
109091 return;
109092 }
109093 if (p->rtort_mbtest == 0)
109094 - atomic_inc(&n_rcu_torture_mberror);
109095 + atomic_inc_unchecked(&n_rcu_torture_mberror);
109096 spin_lock(&rand_lock);
109097 cur_ops->read_delay(&rand);
109098 n_rcu_torture_timers++;
109099 @@ -1170,7 +1170,7 @@ rcu_torture_reader(void *arg)
109100 continue;
109101 }
109102 if (p->rtort_mbtest == 0)
109103 - atomic_inc(&n_rcu_torture_mberror);
109104 + atomic_inc_unchecked(&n_rcu_torture_mberror);
109105 cur_ops->read_delay(&rand);
109106 preempt_disable();
109107 pipe_count = p->rtort_pipe_count;
109108 @@ -1239,11 +1239,11 @@ rcu_torture_stats_print(void)
109109 rcu_torture_current,
109110 rcu_torture_current_version,
109111 list_empty(&rcu_torture_freelist),
109112 - atomic_read(&n_rcu_torture_alloc),
109113 - atomic_read(&n_rcu_torture_alloc_fail),
109114 - atomic_read(&n_rcu_torture_free));
109115 + atomic_read_unchecked(&n_rcu_torture_alloc),
109116 + atomic_read_unchecked(&n_rcu_torture_alloc_fail),
109117 + atomic_read_unchecked(&n_rcu_torture_free));
109118 pr_cont("rtmbe: %d rtbke: %ld rtbre: %ld ",
109119 - atomic_read(&n_rcu_torture_mberror),
109120 + atomic_read_unchecked(&n_rcu_torture_mberror),
109121 n_rcu_torture_boost_ktrerror,
109122 n_rcu_torture_boost_rterror);
109123 pr_cont("rtbf: %ld rtb: %ld nt: %ld ",
109124 @@ -1255,17 +1255,17 @@ rcu_torture_stats_print(void)
109125 n_barrier_successes,
109126 n_barrier_attempts,
109127 n_rcu_torture_barrier_error);
109128 - pr_cont("cbflood: %ld\n", atomic_long_read(&n_cbfloods));
109129 + pr_cont("cbflood: %ld\n", atomic_long_read_unchecked(&n_cbfloods));
109130
109131 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
109132 - if (atomic_read(&n_rcu_torture_mberror) != 0 ||
109133 + if (atomic_read_unchecked(&n_rcu_torture_mberror) != 0 ||
109134 n_rcu_torture_barrier_error != 0 ||
109135 n_rcu_torture_boost_ktrerror != 0 ||
109136 n_rcu_torture_boost_rterror != 0 ||
109137 n_rcu_torture_boost_failure != 0 ||
109138 i > 1) {
109139 pr_cont("%s", "!!! ");
109140 - atomic_inc(&n_rcu_torture_error);
109141 + atomic_inc_unchecked(&n_rcu_torture_error);
109142 WARN_ON_ONCE(1);
109143 }
109144 pr_cont("Reader Pipe: ");
109145 @@ -1282,7 +1282,7 @@ rcu_torture_stats_print(void)
109146 pr_alert("%s%s ", torture_type, TORTURE_FLAG);
109147 pr_cont("Free-Block Circulation: ");
109148 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
109149 - pr_cont(" %d", atomic_read(&rcu_torture_wcount[i]));
109150 + pr_cont(" %d", atomic_read_unchecked(&rcu_torture_wcount[i]));
109151 }
109152 pr_cont("\n");
109153
109154 @@ -1636,7 +1636,7 @@ rcu_torture_cleanup(void)
109155
109156 rcu_torture_stats_print(); /* -After- the stats thread is stopped! */
109157
109158 - if (atomic_read(&n_rcu_torture_error) || n_rcu_torture_barrier_error)
109159 + if (atomic_read_unchecked(&n_rcu_torture_error) || n_rcu_torture_barrier_error)
109160 rcu_torture_print_module_parms(cur_ops, "End of test: FAILURE");
109161 else if (torture_onoff_failures())
109162 rcu_torture_print_module_parms(cur_ops,
109163 @@ -1761,18 +1761,18 @@ rcu_torture_init(void)
109164
109165 rcu_torture_current = NULL;
109166 rcu_torture_current_version = 0;
109167 - atomic_set(&n_rcu_torture_alloc, 0);
109168 - atomic_set(&n_rcu_torture_alloc_fail, 0);
109169 - atomic_set(&n_rcu_torture_free, 0);
109170 - atomic_set(&n_rcu_torture_mberror, 0);
109171 - atomic_set(&n_rcu_torture_error, 0);
109172 + atomic_set_unchecked(&n_rcu_torture_alloc, 0);
109173 + atomic_set_unchecked(&n_rcu_torture_alloc_fail, 0);
109174 + atomic_set_unchecked(&n_rcu_torture_free, 0);
109175 + atomic_set_unchecked(&n_rcu_torture_mberror, 0);
109176 + atomic_set_unchecked(&n_rcu_torture_error, 0);
109177 n_rcu_torture_barrier_error = 0;
109178 n_rcu_torture_boost_ktrerror = 0;
109179 n_rcu_torture_boost_rterror = 0;
109180 n_rcu_torture_boost_failure = 0;
109181 n_rcu_torture_boosts = 0;
109182 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++)
109183 - atomic_set(&rcu_torture_wcount[i], 0);
109184 + atomic_set_unchecked(&rcu_torture_wcount[i], 0);
109185 for_each_possible_cpu(cpu) {
109186 for (i = 0; i < RCU_TORTURE_PIPE_LEN + 1; i++) {
109187 per_cpu(rcu_torture_count, cpu)[i] = 0;
109188 diff --git a/kernel/rcu/tiny.c b/kernel/rcu/tiny.c
109189 index c291bd6..8a01679 100644
109190 --- a/kernel/rcu/tiny.c
109191 +++ b/kernel/rcu/tiny.c
109192 @@ -42,7 +42,7 @@
109193 /* Forward declarations for tiny_plugin.h. */
109194 struct rcu_ctrlblk;
109195 static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp);
109196 -static void rcu_process_callbacks(struct softirq_action *unused);
109197 +static void rcu_process_callbacks(void);
109198 static void __call_rcu(struct rcu_head *head,
109199 void (*func)(struct rcu_head *rcu),
109200 struct rcu_ctrlblk *rcp);
109201 @@ -170,7 +170,7 @@ static void __rcu_process_callbacks(struct rcu_ctrlblk *rcp)
109202 false));
109203 }
109204
109205 -static void rcu_process_callbacks(struct softirq_action *unused)
109206 +static __latent_entropy void rcu_process_callbacks(void)
109207 {
109208 __rcu_process_callbacks(&rcu_sched_ctrlblk);
109209 __rcu_process_callbacks(&rcu_bh_ctrlblk);
109210 diff --git a/kernel/rcu/tree.c b/kernel/rcu/tree.c
109211 index 65137bc..775d7ad 100644
109212 --- a/kernel/rcu/tree.c
109213 +++ b/kernel/rcu/tree.c
109214 @@ -326,7 +326,7 @@ static void rcu_momentary_dyntick_idle(void)
109215 */
109216 rdtp = this_cpu_ptr(&rcu_dynticks);
109217 smp_mb__before_atomic(); /* Earlier stuff before QS. */
109218 - atomic_add(2, &rdtp->dynticks); /* QS. */
109219 + atomic_add_unchecked(2, &rdtp->dynticks); /* QS. */
109220 smp_mb__after_atomic(); /* Later stuff after QS. */
109221 break;
109222 }
109223 @@ -639,10 +639,10 @@ static void rcu_eqs_enter_common(long long oldval, bool user)
109224 rcu_prepare_for_idle();
109225 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
109226 smp_mb__before_atomic(); /* See above. */
109227 - atomic_inc(&rdtp->dynticks);
109228 + atomic_inc_unchecked(&rdtp->dynticks);
109229 smp_mb__after_atomic(); /* Force ordering with next sojourn. */
109230 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
109231 - atomic_read(&rdtp->dynticks) & 0x1);
109232 + atomic_read_unchecked(&rdtp->dynticks) & 0x1);
109233 rcu_dynticks_task_enter();
109234
109235 /*
109236 @@ -765,11 +765,11 @@ static void rcu_eqs_exit_common(long long oldval, int user)
109237
109238 rcu_dynticks_task_exit();
109239 smp_mb__before_atomic(); /* Force ordering w/previous sojourn. */
109240 - atomic_inc(&rdtp->dynticks);
109241 + atomic_inc_unchecked(&rdtp->dynticks);
109242 /* CPUs seeing atomic_inc() must see later RCU read-side crit sects */
109243 smp_mb__after_atomic(); /* See above. */
109244 WARN_ON_ONCE(IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
109245 - !(atomic_read(&rdtp->dynticks) & 0x1));
109246 + !(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
109247 rcu_cleanup_after_idle();
109248 trace_rcu_dyntick(TPS("End"), oldval, rdtp->dynticks_nesting);
109249 if (IS_ENABLED(CONFIG_RCU_EQS_DEBUG) &&
109250 @@ -905,12 +905,12 @@ void rcu_nmi_enter(void)
109251 * to be in the outermost NMI handler that interrupted an RCU-idle
109252 * period (observation due to Andy Lutomirski).
109253 */
109254 - if (!(atomic_read(&rdtp->dynticks) & 0x1)) {
109255 + if (!(atomic_read_unchecked(&rdtp->dynticks) & 0x1)) {
109256 smp_mb__before_atomic(); /* Force delay from prior write. */
109257 - atomic_inc(&rdtp->dynticks);
109258 + atomic_inc_unchecked(&rdtp->dynticks);
109259 /* atomic_inc() before later RCU read-side crit sects */
109260 smp_mb__after_atomic(); /* See above. */
109261 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1));
109262 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
109263 incby = 1;
109264 }
109265 rdtp->dynticks_nmi_nesting += incby;
109266 @@ -935,7 +935,7 @@ void rcu_nmi_exit(void)
109267 * to us!)
109268 */
109269 WARN_ON_ONCE(rdtp->dynticks_nmi_nesting <= 0);
109270 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks) & 0x1));
109271 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks) & 0x1));
109272
109273 /*
109274 * If the nesting level is not 1, the CPU wasn't RCU-idle, so
109275 @@ -950,9 +950,9 @@ void rcu_nmi_exit(void)
109276 rdtp->dynticks_nmi_nesting = 0;
109277 /* CPUs seeing atomic_inc() must see prior RCU read-side crit sects */
109278 smp_mb__before_atomic(); /* See above. */
109279 - atomic_inc(&rdtp->dynticks);
109280 + atomic_inc_unchecked(&rdtp->dynticks);
109281 smp_mb__after_atomic(); /* Force delay to next write. */
109282 - WARN_ON_ONCE(atomic_read(&rdtp->dynticks) & 0x1);
109283 + WARN_ON_ONCE(atomic_read_unchecked(&rdtp->dynticks) & 0x1);
109284 }
109285
109286 /**
109287 @@ -965,7 +965,7 @@ void rcu_nmi_exit(void)
109288 */
109289 bool notrace __rcu_is_watching(void)
109290 {
109291 - return atomic_read(this_cpu_ptr(&rcu_dynticks.dynticks)) & 0x1;
109292 + return atomic_read_unchecked(this_cpu_ptr(&rcu_dynticks.dynticks)) & 0x1;
109293 }
109294
109295 /**
109296 @@ -1048,7 +1048,7 @@ static int rcu_is_cpu_rrupt_from_idle(void)
109297 static int dyntick_save_progress_counter(struct rcu_data *rdp,
109298 bool *isidle, unsigned long *maxj)
109299 {
109300 - rdp->dynticks_snap = atomic_add_return(0, &rdp->dynticks->dynticks);
109301 + rdp->dynticks_snap = atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
109302 rcu_sysidle_check_cpu(rdp, isidle, maxj);
109303 if ((rdp->dynticks_snap & 0x1) == 0) {
109304 trace_rcu_fqs(rdp->rsp->name, rdp->gpnum, rdp->cpu, TPS("dti"));
109305 @@ -1074,7 +1074,7 @@ static int rcu_implicit_dynticks_qs(struct rcu_data *rdp,
109306 int *rcrmp;
109307 unsigned int snap;
109308
109309 - curr = (unsigned int)atomic_add_return(0, &rdp->dynticks->dynticks);
109310 + curr = (unsigned int)atomic_add_return_unchecked(0, &rdp->dynticks->dynticks);
109311 snap = (unsigned int)rdp->dynticks_snap;
109312
109313 /*
109314 @@ -2895,7 +2895,7 @@ __rcu_process_callbacks(struct rcu_state *rsp)
109315 /*
109316 * Do RCU core processing for the current CPU.
109317 */
109318 -static void rcu_process_callbacks(struct softirq_action *unused)
109319 +static void rcu_process_callbacks(void)
109320 {
109321 struct rcu_state *rsp;
109322
109323 @@ -3319,11 +3319,11 @@ void synchronize_sched_expedited(void)
109324 * counter wrap on a 32-bit system. Quite a few more CPUs would of
109325 * course be required on a 64-bit system.
109326 */
109327 - if (ULONG_CMP_GE((ulong)atomic_long_read(&rsp->expedited_start),
109328 + if (ULONG_CMP_GE((ulong)atomic_long_read_unchecked(&rsp->expedited_start),
109329 (ulong)atomic_long_read(&rsp->expedited_done) +
109330 ULONG_MAX / 8)) {
109331 wait_rcu_gp(call_rcu_sched);
109332 - atomic_long_inc(&rsp->expedited_wrap);
109333 + atomic_long_inc_return_unchecked(&rsp->expedited_wrap);
109334 return;
109335 }
109336
109337 @@ -3331,12 +3331,12 @@ void synchronize_sched_expedited(void)
109338 * Take a ticket. Note that atomic_inc_return() implies a
109339 * full memory barrier.
109340 */
109341 - snap = atomic_long_inc_return(&rsp->expedited_start);
109342 + snap = atomic_long_inc_return_unchecked(&rsp->expedited_start);
109343 firstsnap = snap;
109344 if (!try_get_online_cpus()) {
109345 /* CPU hotplug operation in flight, fall back to normal GP. */
109346 wait_rcu_gp(call_rcu_sched);
109347 - atomic_long_inc(&rsp->expedited_normal);
109348 + atomic_long_inc_unchecked(&rsp->expedited_normal);
109349 return;
109350 }
109351 WARN_ON_ONCE(cpu_is_offline(raw_smp_processor_id()));
109352 @@ -3349,7 +3349,7 @@ void synchronize_sched_expedited(void)
109353 for_each_cpu(cpu, cm) {
109354 struct rcu_dynticks *rdtp = &per_cpu(rcu_dynticks, cpu);
109355
109356 - if (!(atomic_add_return(0, &rdtp->dynticks) & 0x1))
109357 + if (!(atomic_add_return_unchecked(0, &rdtp->dynticks) & 0x1))
109358 cpumask_clear_cpu(cpu, cm);
109359 }
109360 if (cpumask_weight(cm) == 0)
109361 @@ -3364,14 +3364,14 @@ void synchronize_sched_expedited(void)
109362 synchronize_sched_expedited_cpu_stop,
109363 NULL) == -EAGAIN) {
109364 put_online_cpus();
109365 - atomic_long_inc(&rsp->expedited_tryfail);
109366 + atomic_long_inc_unchecked(&rsp->expedited_tryfail);
109367
109368 /* Check to see if someone else did our work for us. */
109369 s = atomic_long_read(&rsp->expedited_done);
109370 if (ULONG_CMP_GE((ulong)s, (ulong)firstsnap)) {
109371 /* ensure test happens before caller kfree */
109372 smp_mb__before_atomic(); /* ^^^ */
109373 - atomic_long_inc(&rsp->expedited_workdone1);
109374 + atomic_long_inc_unchecked(&rsp->expedited_workdone1);
109375 free_cpumask_var(cm);
109376 return;
109377 }
109378 @@ -3381,7 +3381,7 @@ void synchronize_sched_expedited(void)
109379 udelay(trycount * num_online_cpus());
109380 } else {
109381 wait_rcu_gp(call_rcu_sched);
109382 - atomic_long_inc(&rsp->expedited_normal);
109383 + atomic_long_inc_unchecked(&rsp->expedited_normal);
109384 free_cpumask_var(cm);
109385 return;
109386 }
109387 @@ -3391,7 +3391,7 @@ void synchronize_sched_expedited(void)
109388 if (ULONG_CMP_GE((ulong)s, (ulong)firstsnap)) {
109389 /* ensure test happens before caller kfree */
109390 smp_mb__before_atomic(); /* ^^^ */
109391 - atomic_long_inc(&rsp->expedited_workdone2);
109392 + atomic_long_inc_unchecked(&rsp->expedited_workdone2);
109393 free_cpumask_var(cm);
109394 return;
109395 }
109396 @@ -3406,14 +3406,14 @@ void synchronize_sched_expedited(void)
109397 if (!try_get_online_cpus()) {
109398 /* CPU hotplug operation in flight, use normal GP. */
109399 wait_rcu_gp(call_rcu_sched);
109400 - atomic_long_inc(&rsp->expedited_normal);
109401 + atomic_long_inc_unchecked(&rsp->expedited_normal);
109402 free_cpumask_var(cm);
109403 return;
109404 }
109405 - snap = atomic_long_read(&rsp->expedited_start);
109406 + snap = atomic_long_read_unchecked(&rsp->expedited_start);
109407 smp_mb(); /* ensure read is before try_stop_cpus(). */
109408 }
109409 - atomic_long_inc(&rsp->expedited_stoppedcpus);
109410 + atomic_long_inc_unchecked(&rsp->expedited_stoppedcpus);
109411
109412 all_cpus_idle:
109413 free_cpumask_var(cm);
109414 @@ -3425,16 +3425,16 @@ all_cpus_idle:
109415 * than we did already did their update.
109416 */
109417 do {
109418 - atomic_long_inc(&rsp->expedited_done_tries);
109419 + atomic_long_inc_unchecked(&rsp->expedited_done_tries);
109420 s = atomic_long_read(&rsp->expedited_done);
109421 if (ULONG_CMP_GE((ulong)s, (ulong)snap)) {
109422 /* ensure test happens before caller kfree */
109423 smp_mb__before_atomic(); /* ^^^ */
109424 - atomic_long_inc(&rsp->expedited_done_lost);
109425 + atomic_long_inc_unchecked(&rsp->expedited_done_lost);
109426 break;
109427 }
109428 } while (atomic_long_cmpxchg(&rsp->expedited_done, s, snap) != s);
109429 - atomic_long_inc(&rsp->expedited_done_exit);
109430 + atomic_long_inc_unchecked(&rsp->expedited_done_exit);
109431
109432 put_online_cpus();
109433 }
109434 @@ -3767,7 +3767,7 @@ rcu_boot_init_percpu_data(int cpu, struct rcu_state *rsp)
109435 rdp->grpmask = 1UL << (cpu - rdp->mynode->grplo);
109436 rdp->dynticks = &per_cpu(rcu_dynticks, cpu);
109437 WARN_ON_ONCE(rdp->dynticks->dynticks_nesting != DYNTICK_TASK_EXIT_IDLE);
109438 - WARN_ON_ONCE(atomic_read(&rdp->dynticks->dynticks) != 1);
109439 + WARN_ON_ONCE(atomic_read_unchecked(&rdp->dynticks->dynticks) != 1);
109440 rdp->cpu = cpu;
109441 rdp->rsp = rsp;
109442 rcu_boot_init_nocb_percpu_data(rdp);
109443 @@ -3798,8 +3798,8 @@ rcu_init_percpu_data(int cpu, struct rcu_state *rsp)
109444 init_callback_list(rdp); /* Re-enable callbacks on this CPU. */
109445 rdp->dynticks->dynticks_nesting = DYNTICK_TASK_EXIT_IDLE;
109446 rcu_sysidle_init_percpu_data(rdp->dynticks);
109447 - atomic_set(&rdp->dynticks->dynticks,
109448 - (atomic_read(&rdp->dynticks->dynticks) & ~0x1) + 1);
109449 + atomic_set_unchecked(&rdp->dynticks->dynticks,
109450 + (atomic_read_unchecked(&rdp->dynticks->dynticks) & ~0x1) + 1);
109451 raw_spin_unlock(&rnp->lock); /* irqs remain disabled. */
109452
109453 /*
109454 diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h
109455 index 4adb7ca..20910e6 100644
109456 --- a/kernel/rcu/tree.h
109457 +++ b/kernel/rcu/tree.h
109458 @@ -108,11 +108,11 @@ struct rcu_dynticks {
109459 long long dynticks_nesting; /* Track irq/process nesting level. */
109460 /* Process level is worth LLONG_MAX/2. */
109461 int dynticks_nmi_nesting; /* Track NMI nesting level. */
109462 - atomic_t dynticks; /* Even value for idle, else odd. */
109463 + atomic_unchecked_t dynticks;/* Even value for idle, else odd. */
109464 #ifdef CONFIG_NO_HZ_FULL_SYSIDLE
109465 long long dynticks_idle_nesting;
109466 /* irq/process nesting level from idle. */
109467 - atomic_t dynticks_idle; /* Even value for idle, else odd. */
109468 + atomic_unchecked_t dynticks_idle;/* Even value for idle, else odd. */
109469 /* "Idle" excludes userspace execution. */
109470 unsigned long dynticks_idle_jiffies;
109471 /* End of last non-NMI non-idle period. */
109472 @@ -483,17 +483,17 @@ struct rcu_state {
109473 /* _rcu_barrier(). */
109474 /* End of fields guarded by barrier_mutex. */
109475
109476 - atomic_long_t expedited_start; /* Starting ticket. */
109477 - atomic_long_t expedited_done; /* Done ticket. */
109478 - atomic_long_t expedited_wrap; /* # near-wrap incidents. */
109479 - atomic_long_t expedited_tryfail; /* # acquisition failures. */
109480 - atomic_long_t expedited_workdone1; /* # done by others #1. */
109481 - atomic_long_t expedited_workdone2; /* # done by others #2. */
109482 - atomic_long_t expedited_normal; /* # fallbacks to normal. */
109483 - atomic_long_t expedited_stoppedcpus; /* # successful stop_cpus. */
109484 - atomic_long_t expedited_done_tries; /* # tries to update _done. */
109485 - atomic_long_t expedited_done_lost; /* # times beaten to _done. */
109486 - atomic_long_t expedited_done_exit; /* # times exited _done loop. */
109487 + atomic_long_unchecked_t expedited_start; /* Starting ticket. */
109488 + atomic_long_t expedited_done; /* Done ticket. */
109489 + atomic_long_unchecked_t expedited_wrap; /* # near-wrap incidents. */
109490 + atomic_long_unchecked_t expedited_tryfail; /* # acquisition failures. */
109491 + atomic_long_unchecked_t expedited_workdone1; /* # done by others #1. */
109492 + atomic_long_unchecked_t expedited_workdone2; /* # done by others #2. */
109493 + atomic_long_unchecked_t expedited_normal; /* # fallbacks to normal. */
109494 + atomic_long_unchecked_t expedited_stoppedcpus; /* # successful stop_cpus. */
109495 + atomic_long_unchecked_t expedited_done_tries; /* # tries to update _done. */
109496 + atomic_long_unchecked_t expedited_done_lost; /* # times beaten to _done. */
109497 + atomic_long_unchecked_t expedited_done_exit; /* # times exited _done loop. */
109498
109499 unsigned long jiffies_force_qs; /* Time at which to invoke */
109500 /* force_quiescent_state(). */
109501 diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h
109502 index 013485f..2e678db 100644
109503 --- a/kernel/rcu/tree_plugin.h
109504 +++ b/kernel/rcu/tree_plugin.h
109505 @@ -1294,7 +1294,7 @@ static void rcu_boost_kthread_setaffinity(struct rcu_node *rnp, int outgoingcpu)
109506 free_cpumask_var(cm);
109507 }
109508
109509 -static struct smp_hotplug_thread rcu_cpu_thread_spec = {
109510 +static struct smp_hotplug_thread rcu_cpu_thread_spec __read_only = {
109511 .store = &rcu_cpu_kthread_task,
109512 .thread_should_run = rcu_cpu_kthread_should_run,
109513 .thread_fn = rcu_cpu_kthread,
109514 @@ -1767,7 +1767,7 @@ static void print_cpu_stall_info(struct rcu_state *rsp, int cpu)
109515 print_cpu_stall_fast_no_hz(fast_no_hz, cpu);
109516 pr_err("\t%d: (%lu %s) idle=%03x/%llx/%d softirq=%u/%u fqs=%ld %s\n",
109517 cpu, ticks_value, ticks_title,
109518 - atomic_read(&rdtp->dynticks) & 0xfff,
109519 + atomic_read_unchecked(&rdtp->dynticks) & 0xfff,
109520 rdtp->dynticks_nesting, rdtp->dynticks_nmi_nesting,
109521 rdp->softirq_snap, kstat_softirqs_cpu(RCU_SOFTIRQ, cpu),
109522 READ_ONCE(rsp->n_force_qs) - rsp->n_force_qs_gpstart,
109523 @@ -2675,9 +2675,9 @@ static void rcu_sysidle_enter(int irq)
109524 j = jiffies;
109525 WRITE_ONCE(rdtp->dynticks_idle_jiffies, j);
109526 smp_mb__before_atomic();
109527 - atomic_inc(&rdtp->dynticks_idle);
109528 + atomic_inc_unchecked(&rdtp->dynticks_idle);
109529 smp_mb__after_atomic();
109530 - WARN_ON_ONCE(atomic_read(&rdtp->dynticks_idle) & 0x1);
109531 + WARN_ON_ONCE(atomic_read_unchecked(&rdtp->dynticks_idle) & 0x1);
109532 }
109533
109534 /*
109535 @@ -2748,9 +2748,9 @@ static void rcu_sysidle_exit(int irq)
109536
109537 /* Record end of idle period. */
109538 smp_mb__before_atomic();
109539 - atomic_inc(&rdtp->dynticks_idle);
109540 + atomic_inc_unchecked(&rdtp->dynticks_idle);
109541 smp_mb__after_atomic();
109542 - WARN_ON_ONCE(!(atomic_read(&rdtp->dynticks_idle) & 0x1));
109543 + WARN_ON_ONCE(!(atomic_read_unchecked(&rdtp->dynticks_idle) & 0x1));
109544
109545 /*
109546 * If we are the timekeeping CPU, we are permitted to be non-idle
109547 @@ -2796,7 +2796,7 @@ static void rcu_sysidle_check_cpu(struct rcu_data *rdp, bool *isidle,
109548 WARN_ON_ONCE(smp_processor_id() != tick_do_timer_cpu);
109549
109550 /* Pick up current idle and NMI-nesting counter and check. */
109551 - cur = atomic_read(&rdtp->dynticks_idle);
109552 + cur = atomic_read_unchecked(&rdtp->dynticks_idle);
109553 if (cur & 0x1) {
109554 *isidle = false; /* We are not idle! */
109555 return;
109556 diff --git a/kernel/rcu/tree_trace.c b/kernel/rcu/tree_trace.c
109557 index 3ea7ffc..cb06f2d 100644
109558 --- a/kernel/rcu/tree_trace.c
109559 +++ b/kernel/rcu/tree_trace.c
109560 @@ -125,7 +125,7 @@ static void print_one_rcu_data(struct seq_file *m, struct rcu_data *rdp)
109561 rdp->rcu_qs_ctr_snap == per_cpu(rcu_qs_ctr, rdp->cpu),
109562 rdp->qs_pending);
109563 seq_printf(m, " dt=%d/%llx/%d df=%lu",
109564 - atomic_read(&rdp->dynticks->dynticks),
109565 + atomic_read_unchecked(&rdp->dynticks->dynticks),
109566 rdp->dynticks->dynticks_nesting,
109567 rdp->dynticks->dynticks_nmi_nesting,
109568 rdp->dynticks_fqs);
109569 @@ -186,17 +186,17 @@ static int show_rcuexp(struct seq_file *m, void *v)
109570 struct rcu_state *rsp = (struct rcu_state *)m->private;
109571
109572 seq_printf(m, "s=%lu d=%lu w=%lu tf=%lu wd1=%lu wd2=%lu n=%lu sc=%lu dt=%lu dl=%lu dx=%lu\n",
109573 - atomic_long_read(&rsp->expedited_start),
109574 + atomic_long_read_unchecked(&rsp->expedited_start),
109575 atomic_long_read(&rsp->expedited_done),
109576 - atomic_long_read(&rsp->expedited_wrap),
109577 - atomic_long_read(&rsp->expedited_tryfail),
109578 - atomic_long_read(&rsp->expedited_workdone1),
109579 - atomic_long_read(&rsp->expedited_workdone2),
109580 - atomic_long_read(&rsp->expedited_normal),
109581 - atomic_long_read(&rsp->expedited_stoppedcpus),
109582 - atomic_long_read(&rsp->expedited_done_tries),
109583 - atomic_long_read(&rsp->expedited_done_lost),
109584 - atomic_long_read(&rsp->expedited_done_exit));
109585 + atomic_long_read_unchecked(&rsp->expedited_wrap),
109586 + atomic_long_read_unchecked(&rsp->expedited_tryfail),
109587 + atomic_long_read_unchecked(&rsp->expedited_workdone1),
109588 + atomic_long_read_unchecked(&rsp->expedited_workdone2),
109589 + atomic_long_read_unchecked(&rsp->expedited_normal),
109590 + atomic_long_read_unchecked(&rsp->expedited_stoppedcpus),
109591 + atomic_long_read_unchecked(&rsp->expedited_done_tries),
109592 + atomic_long_read_unchecked(&rsp->expedited_done_lost),
109593 + atomic_long_read_unchecked(&rsp->expedited_done_exit));
109594 return 0;
109595 }
109596
109597 diff --git a/kernel/resource.c b/kernel/resource.c
109598 index fed052a..ad13346 100644
109599 --- a/kernel/resource.c
109600 +++ b/kernel/resource.c
109601 @@ -162,8 +162,18 @@ static const struct file_operations proc_iomem_operations = {
109602
109603 static int __init ioresources_init(void)
109604 {
109605 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
109606 +#ifdef CONFIG_GRKERNSEC_PROC_USER
109607 + proc_create("ioports", S_IRUSR, NULL, &proc_ioports_operations);
109608 + proc_create("iomem", S_IRUSR, NULL, &proc_iomem_operations);
109609 +#elif defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
109610 + proc_create("ioports", S_IRUSR | S_IRGRP, NULL, &proc_ioports_operations);
109611 + proc_create("iomem", S_IRUSR | S_IRGRP, NULL, &proc_iomem_operations);
109612 +#endif
109613 +#else
109614 proc_create("ioports", 0, NULL, &proc_ioports_operations);
109615 proc_create("iomem", 0, NULL, &proc_iomem_operations);
109616 +#endif
109617 return 0;
109618 }
109619 __initcall(ioresources_init);
109620 diff --git a/kernel/sched/auto_group.c b/kernel/sched/auto_group.c
109621 index 750ed60..eb01466 100644
109622 --- a/kernel/sched/auto_group.c
109623 +++ b/kernel/sched/auto_group.c
109624 @@ -9,7 +9,7 @@
109625
109626 unsigned int __read_mostly sysctl_sched_autogroup_enabled = 1;
109627 static struct autogroup autogroup_default;
109628 -static atomic_t autogroup_seq_nr;
109629 +static atomic_unchecked_t autogroup_seq_nr;
109630
109631 void __init autogroup_init(struct task_struct *init_task)
109632 {
109633 @@ -77,7 +77,7 @@ static inline struct autogroup *autogroup_create(void)
109634
109635 kref_init(&ag->kref);
109636 init_rwsem(&ag->lock);
109637 - ag->id = atomic_inc_return(&autogroup_seq_nr);
109638 + ag->id = atomic_inc_return_unchecked(&autogroup_seq_nr);
109639 ag->tg = tg;
109640 #ifdef CONFIG_RT_GROUP_SCHED
109641 /*
109642 diff --git a/kernel/sched/core.c b/kernel/sched/core.c
109643 index 6776631..45eb6ee 100644
109644 --- a/kernel/sched/core.c
109645 +++ b/kernel/sched/core.c
109646 @@ -2080,7 +2080,7 @@ void set_numabalancing_state(bool enabled)
109647 int sysctl_numa_balancing(struct ctl_table *table, int write,
109648 void __user *buffer, size_t *lenp, loff_t *ppos)
109649 {
109650 - struct ctl_table t;
109651 + ctl_table_no_const t;
109652 int err;
109653 int state = numabalancing_enabled;
109654
109655 @@ -2573,8 +2573,10 @@ context_switch(struct rq *rq, struct task_struct *prev,
109656 next->active_mm = oldmm;
109657 atomic_inc(&oldmm->mm_count);
109658 enter_lazy_tlb(oldmm, next);
109659 - } else
109660 + } else {
109661 switch_mm(oldmm, mm, next);
109662 + populate_stack();
109663 + }
109664
109665 if (!prev->mm) {
109666 prev->active_mm = NULL;
109667 @@ -3393,6 +3395,8 @@ int can_nice(const struct task_struct *p, const int nice)
109668 /* convert nice value [19,-20] to rlimit style value [1,40] */
109669 int nice_rlim = nice_to_rlimit(nice);
109670
109671 + gr_learn_resource(p, RLIMIT_NICE, nice_rlim, 1);
109672 +
109673 return (nice_rlim <= task_rlimit(p, RLIMIT_NICE) ||
109674 capable(CAP_SYS_NICE));
109675 }
109676 @@ -3419,7 +3423,8 @@ SYSCALL_DEFINE1(nice, int, increment)
109677 nice = task_nice(current) + increment;
109678
109679 nice = clamp_val(nice, MIN_NICE, MAX_NICE);
109680 - if (increment < 0 && !can_nice(current, nice))
109681 + if (increment < 0 && (!can_nice(current, nice) ||
109682 + gr_handle_chroot_nice()))
109683 return -EPERM;
109684
109685 retval = security_task_setnice(current, nice);
109686 @@ -3731,6 +3736,7 @@ recheck:
109687 if (policy != p->policy && !rlim_rtprio)
109688 return -EPERM;
109689
109690 + gr_learn_resource(p, RLIMIT_RTPRIO, attr->sched_priority, 1);
109691 /* can't increase priority */
109692 if (attr->sched_priority > p->rt_priority &&
109693 attr->sched_priority > rlim_rtprio)
109694 @@ -5055,6 +5061,7 @@ void idle_task_exit(void)
109695
109696 if (mm != &init_mm) {
109697 switch_mm(mm, &init_mm, current);
109698 + populate_stack();
109699 finish_arch_post_lock_switch();
109700 }
109701 mmdrop(mm);
109702 @@ -5157,7 +5164,7 @@ static void migrate_tasks(struct rq *dead_rq)
109703
109704 #if defined(CONFIG_SCHED_DEBUG) && defined(CONFIG_SYSCTL)
109705
109706 -static struct ctl_table sd_ctl_dir[] = {
109707 +static ctl_table_no_const sd_ctl_dir[] __read_only = {
109708 {
109709 .procname = "sched_domain",
109710 .mode = 0555,
109711 @@ -5174,17 +5181,17 @@ static struct ctl_table sd_ctl_root[] = {
109712 {}
109713 };
109714
109715 -static struct ctl_table *sd_alloc_ctl_entry(int n)
109716 +static ctl_table_no_const *sd_alloc_ctl_entry(int n)
109717 {
109718 - struct ctl_table *entry =
109719 + ctl_table_no_const *entry =
109720 kcalloc(n, sizeof(struct ctl_table), GFP_KERNEL);
109721
109722 return entry;
109723 }
109724
109725 -static void sd_free_ctl_entry(struct ctl_table **tablep)
109726 +static void sd_free_ctl_entry(ctl_table_no_const *tablep)
109727 {
109728 - struct ctl_table *entry;
109729 + ctl_table_no_const *entry;
109730
109731 /*
109732 * In the intermediate directories, both the child directory and
109733 @@ -5192,22 +5199,25 @@ static void sd_free_ctl_entry(struct ctl_table **tablep)
109734 * will always be set. In the lowest directory the names are
109735 * static strings and all have proc handlers.
109736 */
109737 - for (entry = *tablep; entry->mode; entry++) {
109738 - if (entry->child)
109739 - sd_free_ctl_entry(&entry->child);
109740 + for (entry = tablep; entry->mode; entry++) {
109741 + if (entry->child) {
109742 + sd_free_ctl_entry(entry->child);
109743 + pax_open_kernel();
109744 + entry->child = NULL;
109745 + pax_close_kernel();
109746 + }
109747 if (entry->proc_handler == NULL)
109748 kfree(entry->procname);
109749 }
109750
109751 - kfree(*tablep);
109752 - *tablep = NULL;
109753 + kfree(tablep);
109754 }
109755
109756 static int min_load_idx = 0;
109757 static int max_load_idx = CPU_LOAD_IDX_MAX-1;
109758
109759 static void
109760 -set_table_entry(struct ctl_table *entry,
109761 +set_table_entry(ctl_table_no_const *entry,
109762 const char *procname, void *data, int maxlen,
109763 umode_t mode, proc_handler *proc_handler,
109764 bool load_idx)
109765 @@ -5227,7 +5237,7 @@ set_table_entry(struct ctl_table *entry,
109766 static struct ctl_table *
109767 sd_alloc_ctl_domain_table(struct sched_domain *sd)
109768 {
109769 - struct ctl_table *table = sd_alloc_ctl_entry(14);
109770 + ctl_table_no_const *table = sd_alloc_ctl_entry(14);
109771
109772 if (table == NULL)
109773 return NULL;
109774 @@ -5265,9 +5275,9 @@ sd_alloc_ctl_domain_table(struct sched_domain *sd)
109775 return table;
109776 }
109777
109778 -static struct ctl_table *sd_alloc_ctl_cpu_table(int cpu)
109779 +static ctl_table_no_const *sd_alloc_ctl_cpu_table(int cpu)
109780 {
109781 - struct ctl_table *entry, *table;
109782 + ctl_table_no_const *entry, *table;
109783 struct sched_domain *sd;
109784 int domain_num = 0, i;
109785 char buf[32];
109786 @@ -5294,11 +5304,13 @@ static struct ctl_table_header *sd_sysctl_header;
109787 static void register_sched_domain_sysctl(void)
109788 {
109789 int i, cpu_num = num_possible_cpus();
109790 - struct ctl_table *entry = sd_alloc_ctl_entry(cpu_num + 1);
109791 + ctl_table_no_const *entry = sd_alloc_ctl_entry(cpu_num + 1);
109792 char buf[32];
109793
109794 WARN_ON(sd_ctl_dir[0].child);
109795 + pax_open_kernel();
109796 sd_ctl_dir[0].child = entry;
109797 + pax_close_kernel();
109798
109799 if (entry == NULL)
109800 return;
109801 @@ -5321,8 +5333,12 @@ static void unregister_sched_domain_sysctl(void)
109802 if (sd_sysctl_header)
109803 unregister_sysctl_table(sd_sysctl_header);
109804 sd_sysctl_header = NULL;
109805 - if (sd_ctl_dir[0].child)
109806 - sd_free_ctl_entry(&sd_ctl_dir[0].child);
109807 + if (sd_ctl_dir[0].child) {
109808 + sd_free_ctl_entry(sd_ctl_dir[0].child);
109809 + pax_open_kernel();
109810 + sd_ctl_dir[0].child = NULL;
109811 + pax_close_kernel();
109812 + }
109813 }
109814 #else
109815 static void register_sched_domain_sysctl(void)
109816 diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c
109817 index d113c3b..91a6fcc 100644
109818 --- a/kernel/sched/fair.c
109819 +++ b/kernel/sched/fair.c
109820 @@ -7958,7 +7958,7 @@ static void nohz_idle_balance(struct rq *this_rq, enum cpu_idle_type idle) { }
109821 * run_rebalance_domains is triggered when needed from the scheduler tick.
109822 * Also triggered for nohz idle balancing (with nohz_balancing_kick set).
109823 */
109824 -static void run_rebalance_domains(struct softirq_action *h)
109825 +static __latent_entropy void run_rebalance_domains(void)
109826 {
109827 struct rq *this_rq = this_rq();
109828 enum cpu_idle_type idle = this_rq->idle_balance ?
109829 diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
109830 index 08ab96b..82ab34c 100644
109831 --- a/kernel/sched/sched.h
109832 +++ b/kernel/sched/sched.h
109833 @@ -1242,7 +1242,7 @@ struct sched_class {
109834 #ifdef CONFIG_FAIR_GROUP_SCHED
109835 void (*task_move_group) (struct task_struct *p, int on_rq);
109836 #endif
109837 -};
109838 +} __do_const;
109839
109840 static inline void put_prev_task(struct rq *rq, struct task_struct *prev)
109841 {
109842 diff --git a/kernel/signal.c b/kernel/signal.c
109843 index 0f6bbbe..d77d2c3 100644
109844 --- a/kernel/signal.c
109845 +++ b/kernel/signal.c
109846 @@ -53,12 +53,12 @@ static struct kmem_cache *sigqueue_cachep;
109847
109848 int print_fatal_signals __read_mostly;
109849
109850 -static void __user *sig_handler(struct task_struct *t, int sig)
109851 +static __sighandler_t sig_handler(struct task_struct *t, int sig)
109852 {
109853 return t->sighand->action[sig - 1].sa.sa_handler;
109854 }
109855
109856 -static int sig_handler_ignored(void __user *handler, int sig)
109857 +static int sig_handler_ignored(__sighandler_t handler, int sig)
109858 {
109859 /* Is it explicitly or implicitly ignored? */
109860 return handler == SIG_IGN ||
109861 @@ -67,7 +67,7 @@ static int sig_handler_ignored(void __user *handler, int sig)
109862
109863 static int sig_task_ignored(struct task_struct *t, int sig, bool force)
109864 {
109865 - void __user *handler;
109866 + __sighandler_t handler;
109867
109868 handler = sig_handler(t, sig);
109869
109870 @@ -372,6 +372,9 @@ __sigqueue_alloc(int sig, struct task_struct *t, gfp_t flags, int override_rlimi
109871 atomic_inc(&user->sigpending);
109872 rcu_read_unlock();
109873
109874 + if (!override_rlimit)
109875 + gr_learn_resource(t, RLIMIT_SIGPENDING, atomic_read(&user->sigpending), 1);
109876 +
109877 if (override_rlimit ||
109878 atomic_read(&user->sigpending) <=
109879 task_rlimit(t, RLIMIT_SIGPENDING)) {
109880 @@ -494,7 +497,7 @@ flush_signal_handlers(struct task_struct *t, int force_default)
109881
109882 int unhandled_signal(struct task_struct *tsk, int sig)
109883 {
109884 - void __user *handler = tsk->sighand->action[sig-1].sa.sa_handler;
109885 + __sighandler_t handler = tsk->sighand->action[sig-1].sa.sa_handler;
109886 if (is_global_init(tsk))
109887 return 1;
109888 if (handler != SIG_IGN && handler != SIG_DFL)
109889 @@ -788,6 +791,13 @@ static int check_kill_permission(int sig, struct siginfo *info,
109890 }
109891 }
109892
109893 + /* allow glibc communication via tgkill to other threads in our
109894 + thread group */
109895 + if ((info == SEND_SIG_NOINFO || info->si_code != SI_TKILL ||
109896 + sig != (SIGRTMIN+1) || task_tgid_vnr(t) != info->si_pid)
109897 + && gr_handle_signal(t, sig))
109898 + return -EPERM;
109899 +
109900 return security_task_kill(t, info, sig, 0);
109901 }
109902
109903 @@ -1171,7 +1181,7 @@ __group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
109904 return send_signal(sig, info, p, 1);
109905 }
109906
109907 -static int
109908 +int
109909 specific_send_sig_info(int sig, struct siginfo *info, struct task_struct *t)
109910 {
109911 return send_signal(sig, info, t, 0);
109912 @@ -1208,6 +1218,7 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
109913 unsigned long int flags;
109914 int ret, blocked, ignored;
109915 struct k_sigaction *action;
109916 + int is_unhandled = 0;
109917
109918 spin_lock_irqsave(&t->sighand->siglock, flags);
109919 action = &t->sighand->action[sig-1];
109920 @@ -1222,9 +1233,18 @@ force_sig_info(int sig, struct siginfo *info, struct task_struct *t)
109921 }
109922 if (action->sa.sa_handler == SIG_DFL)
109923 t->signal->flags &= ~SIGNAL_UNKILLABLE;
109924 + if (action->sa.sa_handler == SIG_IGN || action->sa.sa_handler == SIG_DFL)
109925 + is_unhandled = 1;
109926 ret = specific_send_sig_info(sig, info, t);
109927 spin_unlock_irqrestore(&t->sighand->siglock, flags);
109928
109929 + /* only deal with unhandled signals, java etc trigger SIGSEGV during
109930 + normal operation */
109931 + if (is_unhandled) {
109932 + gr_log_signal(sig, !is_si_special(info) ? info->si_addr : NULL, t);
109933 + gr_handle_crash(t, sig);
109934 + }
109935 +
109936 return ret;
109937 }
109938
109939 @@ -1305,8 +1325,11 @@ int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p)
109940 ret = check_kill_permission(sig, info, p);
109941 rcu_read_unlock();
109942
109943 - if (!ret && sig)
109944 + if (!ret && sig) {
109945 ret = do_send_sig_info(sig, info, p, true);
109946 + if (!ret)
109947 + gr_log_signal(sig, !is_si_special(info) ? info->si_addr : NULL, p);
109948 + }
109949
109950 return ret;
109951 }
109952 @@ -2913,7 +2936,15 @@ do_send_specific(pid_t tgid, pid_t pid, int sig, struct siginfo *info)
109953 int error = -ESRCH;
109954
109955 rcu_read_lock();
109956 - p = find_task_by_vpid(pid);
109957 +#ifdef CONFIG_GRKERNSEC_CHROOT_FINDTASK
109958 + /* allow glibc communication via tgkill to other threads in our
109959 + thread group */
109960 + if (grsec_enable_chroot_findtask && info->si_code == SI_TKILL &&
109961 + sig == (SIGRTMIN+1) && tgid == info->si_pid)
109962 + p = find_task_by_vpid_unrestricted(pid);
109963 + else
109964 +#endif
109965 + p = find_task_by_vpid(pid);
109966 if (p && (tgid <= 0 || task_tgid_vnr(p) == tgid)) {
109967 error = check_kill_permission(sig, info, p);
109968 /*
109969 @@ -3242,8 +3273,8 @@ COMPAT_SYSCALL_DEFINE2(sigaltstack,
109970 }
109971 seg = get_fs();
109972 set_fs(KERNEL_DS);
109973 - ret = do_sigaltstack((stack_t __force __user *) (uss_ptr ? &uss : NULL),
109974 - (stack_t __force __user *) &uoss,
109975 + ret = do_sigaltstack((stack_t __force_user *) (uss_ptr ? &uss : NULL),
109976 + (stack_t __force_user *) &uoss,
109977 compat_user_stack_pointer());
109978 set_fs(seg);
109979 if (ret >= 0 && uoss_ptr) {
109980 diff --git a/kernel/smpboot.c b/kernel/smpboot.c
109981 index 7c434c3..155d90a 100644
109982 --- a/kernel/smpboot.c
109983 +++ b/kernel/smpboot.c
109984 @@ -305,7 +305,7 @@ int smpboot_register_percpu_thread(struct smp_hotplug_thread *plug_thread)
109985 }
109986 smpboot_unpark_thread(plug_thread, cpu);
109987 }
109988 - list_add(&plug_thread->list, &hotplug_threads);
109989 + pax_list_add(&plug_thread->list, &hotplug_threads);
109990 out:
109991 mutex_unlock(&smpboot_threads_lock);
109992 put_online_cpus();
109993 @@ -323,7 +323,7 @@ void smpboot_unregister_percpu_thread(struct smp_hotplug_thread *plug_thread)
109994 {
109995 get_online_cpus();
109996 mutex_lock(&smpboot_threads_lock);
109997 - list_del(&plug_thread->list);
109998 + pax_list_del(&plug_thread->list);
109999 smpboot_destroy_threads(plug_thread);
110000 mutex_unlock(&smpboot_threads_lock);
110001 put_online_cpus();
110002 diff --git a/kernel/softirq.c b/kernel/softirq.c
110003 index 479e443..66d845e1 100644
110004 --- a/kernel/softirq.c
110005 +++ b/kernel/softirq.c
110006 @@ -53,7 +53,7 @@ irq_cpustat_t irq_stat[NR_CPUS] ____cacheline_aligned;
110007 EXPORT_SYMBOL(irq_stat);
110008 #endif
110009
110010 -static struct softirq_action softirq_vec[NR_SOFTIRQS] __cacheline_aligned_in_smp;
110011 +static struct softirq_action softirq_vec[NR_SOFTIRQS] __read_only __aligned(PAGE_SIZE);
110012
110013 DEFINE_PER_CPU(struct task_struct *, ksoftirqd);
110014
110015 @@ -270,7 +270,7 @@ restart:
110016 kstat_incr_softirqs_this_cpu(vec_nr);
110017
110018 trace_softirq_entry(vec_nr);
110019 - h->action(h);
110020 + h->action();
110021 trace_softirq_exit(vec_nr);
110022 if (unlikely(prev_count != preempt_count())) {
110023 pr_err("huh, entered softirq %u %s %p with preempt_count %08x, exited with %08x?\n",
110024 @@ -430,7 +430,7 @@ void __raise_softirq_irqoff(unsigned int nr)
110025 or_softirq_pending(1UL << nr);
110026 }
110027
110028 -void open_softirq(int nr, void (*action)(struct softirq_action *))
110029 +void __init open_softirq(int nr, void (*action)(void))
110030 {
110031 softirq_vec[nr].action = action;
110032 }
110033 @@ -482,7 +482,7 @@ void __tasklet_hi_schedule_first(struct tasklet_struct *t)
110034 }
110035 EXPORT_SYMBOL(__tasklet_hi_schedule_first);
110036
110037 -static void tasklet_action(struct softirq_action *a)
110038 +static void tasklet_action(void)
110039 {
110040 struct tasklet_struct *list;
110041
110042 @@ -518,7 +518,7 @@ static void tasklet_action(struct softirq_action *a)
110043 }
110044 }
110045
110046 -static void tasklet_hi_action(struct softirq_action *a)
110047 +static __latent_entropy void tasklet_hi_action(void)
110048 {
110049 struct tasklet_struct *list;
110050
110051 @@ -744,7 +744,7 @@ static struct notifier_block cpu_nfb = {
110052 .notifier_call = cpu_callback
110053 };
110054
110055 -static struct smp_hotplug_thread softirq_threads = {
110056 +static struct smp_hotplug_thread softirq_threads __read_only = {
110057 .store = &ksoftirqd,
110058 .thread_should_run = ksoftirqd_should_run,
110059 .thread_fn = run_ksoftirqd,
110060 diff --git a/kernel/sys.c b/kernel/sys.c
110061 index 259fda2..e824a93 100644
110062 --- a/kernel/sys.c
110063 +++ b/kernel/sys.c
110064 @@ -160,6 +160,12 @@ static int set_one_prio(struct task_struct *p, int niceval, int error)
110065 error = -EACCES;
110066 goto out;
110067 }
110068 +
110069 + if (gr_handle_chroot_setpriority(p, niceval)) {
110070 + error = -EACCES;
110071 + goto out;
110072 + }
110073 +
110074 no_nice = security_task_setnice(p, niceval);
110075 if (no_nice) {
110076 error = no_nice;
110077 @@ -366,6 +372,20 @@ SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
110078 goto error;
110079 }
110080
110081 + if (gr_check_group_change(new->gid, new->egid, INVALID_GID))
110082 + goto error;
110083 +
110084 + if (!gid_eq(new->gid, old->gid)) {
110085 + /* make sure we generate a learn log for what will
110086 + end up being a role transition after a full-learning
110087 + policy is generated
110088 + CAP_SETGID is required to perform a transition
110089 + we may not log a CAP_SETGID check above, e.g.
110090 + in the case where new rgid = old egid
110091 + */
110092 + gr_learn_cap(current, new, CAP_SETGID);
110093 + }
110094 +
110095 if (rgid != (gid_t) -1 ||
110096 (egid != (gid_t) -1 && !gid_eq(kegid, old->gid)))
110097 new->sgid = new->egid;
110098 @@ -401,6 +421,10 @@ SYSCALL_DEFINE1(setgid, gid_t, gid)
110099 old = current_cred();
110100
110101 retval = -EPERM;
110102 +
110103 + if (gr_check_group_change(kgid, kgid, kgid))
110104 + goto error;
110105 +
110106 if (ns_capable(old->user_ns, CAP_SETGID))
110107 new->gid = new->egid = new->sgid = new->fsgid = kgid;
110108 else if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->sgid))
110109 @@ -418,7 +442,7 @@ error:
110110 /*
110111 * change the user struct in a credentials set to match the new UID
110112 */
110113 -static int set_user(struct cred *new)
110114 +int set_user(struct cred *new)
110115 {
110116 struct user_struct *new_user;
110117
110118 @@ -498,7 +522,18 @@ SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
110119 goto error;
110120 }
110121
110122 + if (gr_check_user_change(new->uid, new->euid, INVALID_UID))
110123 + goto error;
110124 +
110125 if (!uid_eq(new->uid, old->uid)) {
110126 + /* make sure we generate a learn log for what will
110127 + end up being a role transition after a full-learning
110128 + policy is generated
110129 + CAP_SETUID is required to perform a transition
110130 + we may not log a CAP_SETUID check above, e.g.
110131 + in the case where new ruid = old euid
110132 + */
110133 + gr_learn_cap(current, new, CAP_SETUID);
110134 retval = set_user(new);
110135 if (retval < 0)
110136 goto error;
110137 @@ -548,6 +583,12 @@ SYSCALL_DEFINE1(setuid, uid_t, uid)
110138 old = current_cred();
110139
110140 retval = -EPERM;
110141 +
110142 + if (gr_check_crash_uid(kuid))
110143 + goto error;
110144 + if (gr_check_user_change(kuid, kuid, kuid))
110145 + goto error;
110146 +
110147 if (ns_capable(old->user_ns, CAP_SETUID)) {
110148 new->suid = new->uid = kuid;
110149 if (!uid_eq(kuid, old->uid)) {
110150 @@ -617,6 +658,9 @@ SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
110151 goto error;
110152 }
110153
110154 + if (gr_check_user_change(kruid, keuid, INVALID_UID))
110155 + goto error;
110156 +
110157 if (ruid != (uid_t) -1) {
110158 new->uid = kruid;
110159 if (!uid_eq(kruid, old->uid)) {
110160 @@ -701,6 +745,9 @@ SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
110161 goto error;
110162 }
110163
110164 + if (gr_check_group_change(krgid, kegid, INVALID_GID))
110165 + goto error;
110166 +
110167 if (rgid != (gid_t) -1)
110168 new->gid = krgid;
110169 if (egid != (gid_t) -1)
110170 @@ -765,12 +812,16 @@ SYSCALL_DEFINE1(setfsuid, uid_t, uid)
110171 uid_eq(kuid, old->suid) || uid_eq(kuid, old->fsuid) ||
110172 ns_capable(old->user_ns, CAP_SETUID)) {
110173 if (!uid_eq(kuid, old->fsuid)) {
110174 + if (gr_check_user_change(INVALID_UID, INVALID_UID, kuid))
110175 + goto error;
110176 +
110177 new->fsuid = kuid;
110178 if (security_task_fix_setuid(new, old, LSM_SETID_FS) == 0)
110179 goto change_okay;
110180 }
110181 }
110182
110183 +error:
110184 abort_creds(new);
110185 return old_fsuid;
110186
110187 @@ -803,12 +854,16 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
110188 if (gid_eq(kgid, old->gid) || gid_eq(kgid, old->egid) ||
110189 gid_eq(kgid, old->sgid) || gid_eq(kgid, old->fsgid) ||
110190 ns_capable(old->user_ns, CAP_SETGID)) {
110191 + if (gr_check_group_change(INVALID_GID, INVALID_GID, kgid))
110192 + goto error;
110193 +
110194 if (!gid_eq(kgid, old->fsgid)) {
110195 new->fsgid = kgid;
110196 goto change_okay;
110197 }
110198 }
110199
110200 +error:
110201 abort_creds(new);
110202 return old_fsgid;
110203
110204 @@ -1187,19 +1242,19 @@ SYSCALL_DEFINE1(olduname, struct oldold_utsname __user *, name)
110205 return -EFAULT;
110206
110207 down_read(&uts_sem);
110208 - error = __copy_to_user(&name->sysname, &utsname()->sysname,
110209 + error = __copy_to_user(name->sysname, &utsname()->sysname,
110210 __OLD_UTS_LEN);
110211 error |= __put_user(0, name->sysname + __OLD_UTS_LEN);
110212 - error |= __copy_to_user(&name->nodename, &utsname()->nodename,
110213 + error |= __copy_to_user(name->nodename, &utsname()->nodename,
110214 __OLD_UTS_LEN);
110215 error |= __put_user(0, name->nodename + __OLD_UTS_LEN);
110216 - error |= __copy_to_user(&name->release, &utsname()->release,
110217 + error |= __copy_to_user(name->release, &utsname()->release,
110218 __OLD_UTS_LEN);
110219 error |= __put_user(0, name->release + __OLD_UTS_LEN);
110220 - error |= __copy_to_user(&name->version, &utsname()->version,
110221 + error |= __copy_to_user(name->version, &utsname()->version,
110222 __OLD_UTS_LEN);
110223 error |= __put_user(0, name->version + __OLD_UTS_LEN);
110224 - error |= __copy_to_user(&name->machine, &utsname()->machine,
110225 + error |= __copy_to_user(name->machine, &utsname()->machine,
110226 __OLD_UTS_LEN);
110227 error |= __put_user(0, name->machine + __OLD_UTS_LEN);
110228 up_read(&uts_sem);
110229 @@ -1400,6 +1455,13 @@ int do_prlimit(struct task_struct *tsk, unsigned int resource,
110230 */
110231 new_rlim->rlim_cur = 1;
110232 }
110233 + /* Handle the case where a fork and setuid occur and then RLIMIT_NPROC
110234 + is changed to a lower value. Since tasks can be created by the same
110235 + user in between this limit change and an execve by this task, force
110236 + a recheck only for this task by setting PF_NPROC_EXCEEDED
110237 + */
110238 + if (resource == RLIMIT_NPROC && tsk->real_cred->user != INIT_USER)
110239 + tsk->flags |= PF_NPROC_EXCEEDED;
110240 }
110241 if (!retval) {
110242 if (old_rlim)
110243 diff --git a/kernel/sysctl.c b/kernel/sysctl.c
110244 index 19b62b5..74cc287 100644
110245 --- a/kernel/sysctl.c
110246 +++ b/kernel/sysctl.c
110247 @@ -94,7 +94,6 @@
110248 #endif
110249
110250 #if defined(CONFIG_SYSCTL)
110251 -
110252 /* External variables not in a header file. */
110253 extern int suid_dumpable;
110254 #ifdef CONFIG_COREDUMP
110255 @@ -111,22 +110,24 @@ extern int sysctl_nr_open_min, sysctl_nr_open_max;
110256 #ifndef CONFIG_MMU
110257 extern int sysctl_nr_trim_pages;
110258 #endif
110259 +extern int sysctl_modify_ldt;
110260
110261 /* Constants used for minimum and maximum */
110262 #ifdef CONFIG_LOCKUP_DETECTOR
110263 -static int sixty = 60;
110264 +static int sixty __read_only = 60;
110265 #endif
110266
110267 -static int __maybe_unused neg_one = -1;
110268 +static int __maybe_unused neg_one __read_only = -1;
110269
110270 -static int zero;
110271 -static int __maybe_unused one = 1;
110272 -static int __maybe_unused two = 2;
110273 -static int __maybe_unused four = 4;
110274 -static unsigned long one_ul = 1;
110275 -static int one_hundred = 100;
110276 +static int zero __read_only = 0;
110277 +static int __maybe_unused one __read_only = 1;
110278 +static int __maybe_unused two __read_only = 2;
110279 +static int __maybe_unused three __read_only = 3;
110280 +static int __maybe_unused four __read_only = 4;
110281 +static unsigned long one_ul __read_only = 1;
110282 +static int one_hundred __read_only = 100;
110283 #ifdef CONFIG_PRINTK
110284 -static int ten_thousand = 10000;
110285 +static int ten_thousand __read_only = 10000;
110286 #endif
110287
110288 /* this is needed for the proc_doulongvec_minmax of vm_dirty_bytes */
110289 @@ -180,10 +181,8 @@ static int proc_taint(struct ctl_table *table, int write,
110290 void __user *buffer, size_t *lenp, loff_t *ppos);
110291 #endif
110292
110293 -#ifdef CONFIG_PRINTK
110294 -static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
110295 +static int proc_dointvec_minmax_secure_sysadmin(struct ctl_table *table, int write,
110296 void __user *buffer, size_t *lenp, loff_t *ppos);
110297 -#endif
110298
110299 static int proc_dointvec_minmax_coredump(struct ctl_table *table, int write,
110300 void __user *buffer, size_t *lenp, loff_t *ppos);
110301 @@ -214,6 +213,8 @@ static int sysrq_sysctl_handler(struct ctl_table *table, int write,
110302
110303 #endif
110304
110305 +extern struct ctl_table grsecurity_table[];
110306 +
110307 static struct ctl_table kern_table[];
110308 static struct ctl_table vm_table[];
110309 static struct ctl_table fs_table[];
110310 @@ -228,6 +229,20 @@ extern struct ctl_table epoll_table[];
110311 int sysctl_legacy_va_layout;
110312 #endif
110313
110314 +#ifdef CONFIG_PAX_SOFTMODE
110315 +static struct ctl_table pax_table[] = {
110316 + {
110317 + .procname = "softmode",
110318 + .data = &pax_softmode,
110319 + .maxlen = sizeof(unsigned int),
110320 + .mode = 0600,
110321 + .proc_handler = &proc_dointvec,
110322 + },
110323 +
110324 + { }
110325 +};
110326 +#endif
110327 +
110328 /* The default sysctl tables: */
110329
110330 static struct ctl_table sysctl_base_table[] = {
110331 @@ -276,6 +291,22 @@ static int max_extfrag_threshold = 1000;
110332 #endif
110333
110334 static struct ctl_table kern_table[] = {
110335 +#if defined(CONFIG_GRKERNSEC_SYSCTL) || defined(CONFIG_GRKERNSEC_ROFS)
110336 + {
110337 + .procname = "grsecurity",
110338 + .mode = 0500,
110339 + .child = grsecurity_table,
110340 + },
110341 +#endif
110342 +
110343 +#ifdef CONFIG_PAX_SOFTMODE
110344 + {
110345 + .procname = "pax",
110346 + .mode = 0500,
110347 + .child = pax_table,
110348 + },
110349 +#endif
110350 +
110351 {
110352 .procname = "sched_child_runs_first",
110353 .data = &sysctl_sched_child_runs_first,
110354 @@ -628,7 +659,7 @@ static struct ctl_table kern_table[] = {
110355 .maxlen = sizeof(int),
110356 .mode = 0644,
110357 /* only handle a transition from default "0" to "1" */
110358 - .proc_handler = proc_dointvec_minmax,
110359 + .proc_handler = proc_dointvec_minmax_secure,
110360 .extra1 = &one,
110361 .extra2 = &one,
110362 },
110363 @@ -639,7 +670,7 @@ static struct ctl_table kern_table[] = {
110364 .data = &modprobe_path,
110365 .maxlen = KMOD_PATH_LEN,
110366 .mode = 0644,
110367 - .proc_handler = proc_dostring,
110368 + .proc_handler = proc_dostring_modpriv,
110369 },
110370 {
110371 .procname = "modules_disabled",
110372 @@ -647,7 +678,7 @@ static struct ctl_table kern_table[] = {
110373 .maxlen = sizeof(int),
110374 .mode = 0644,
110375 /* only handle a transition from default "0" to "1" */
110376 - .proc_handler = proc_dointvec_minmax,
110377 + .proc_handler = proc_dointvec_minmax_secure,
110378 .extra1 = &one,
110379 .extra2 = &one,
110380 },
110381 @@ -802,20 +833,24 @@ static struct ctl_table kern_table[] = {
110382 .data = &dmesg_restrict,
110383 .maxlen = sizeof(int),
110384 .mode = 0644,
110385 - .proc_handler = proc_dointvec_minmax_sysadmin,
110386 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
110387 .extra1 = &zero,
110388 .extra2 = &one,
110389 },
110390 +#endif
110391 {
110392 .procname = "kptr_restrict",
110393 .data = &kptr_restrict,
110394 .maxlen = sizeof(int),
110395 .mode = 0644,
110396 - .proc_handler = proc_dointvec_minmax_sysadmin,
110397 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
110398 +#ifdef CONFIG_GRKERNSEC_HIDESYM
110399 + .extra1 = &two,
110400 +#else
110401 .extra1 = &zero,
110402 +#endif
110403 .extra2 = &two,
110404 },
110405 -#endif
110406 {
110407 .procname = "ngroups_max",
110408 .data = &ngroups_max,
110409 @@ -960,6 +995,15 @@ static struct ctl_table kern_table[] = {
110410 .mode = 0644,
110411 .proc_handler = proc_dointvec,
110412 },
110413 + {
110414 + .procname = "modify_ldt",
110415 + .data = &sysctl_modify_ldt,
110416 + .maxlen = sizeof(int),
110417 + .mode = 0644,
110418 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
110419 + .extra1 = &zero,
110420 + .extra2 = &one,
110421 + },
110422 #endif
110423 #if defined(CONFIG_MMU)
110424 {
110425 @@ -1082,10 +1126,17 @@ static struct ctl_table kern_table[] = {
110426 */
110427 {
110428 .procname = "perf_event_paranoid",
110429 - .data = &sysctl_perf_event_paranoid,
110430 - .maxlen = sizeof(sysctl_perf_event_paranoid),
110431 + .data = &sysctl_perf_event_legitimately_concerned,
110432 + .maxlen = sizeof(sysctl_perf_event_legitimately_concerned),
110433 .mode = 0644,
110434 - .proc_handler = proc_dointvec,
110435 + /* go ahead, be a hero */
110436 + .proc_handler = proc_dointvec_minmax_secure_sysadmin,
110437 + .extra1 = &neg_one,
110438 +#ifdef CONFIG_GRKERNSEC_PERF_HARDEN
110439 + .extra2 = &three,
110440 +#else
110441 + .extra2 = &two,
110442 +#endif
110443 },
110444 {
110445 .procname = "perf_event_mlock_kb",
110446 @@ -1376,6 +1427,13 @@ static struct ctl_table vm_table[] = {
110447 .proc_handler = proc_dointvec_minmax,
110448 .extra1 = &zero,
110449 },
110450 + {
110451 + .procname = "heap_stack_gap",
110452 + .data = &sysctl_heap_stack_gap,
110453 + .maxlen = sizeof(sysctl_heap_stack_gap),
110454 + .mode = 0644,
110455 + .proc_handler = proc_doulongvec_minmax,
110456 + },
110457 #else
110458 {
110459 .procname = "nr_trim_pages",
110460 @@ -1852,6 +1910,16 @@ int proc_dostring(struct ctl_table *table, int write,
110461 (char __user *)buffer, lenp, ppos);
110462 }
110463
110464 +int proc_dostring_modpriv(struct ctl_table *table, int write,
110465 + void __user *buffer, size_t *lenp, loff_t *ppos)
110466 +{
110467 + if (write && !capable(CAP_SYS_MODULE))
110468 + return -EPERM;
110469 +
110470 + return _proc_do_string(table->data, table->maxlen, write,
110471 + buffer, lenp, ppos);
110472 +}
110473 +
110474 static size_t proc_skip_spaces(char **buf)
110475 {
110476 size_t ret;
110477 @@ -1957,6 +2025,8 @@ static int proc_put_long(void __user **buf, size_t *size, unsigned long val,
110478 len = strlen(tmp);
110479 if (len > *size)
110480 len = *size;
110481 + if (len > sizeof(tmp))
110482 + len = sizeof(tmp);
110483 if (copy_to_user(*buf, tmp, len))
110484 return -EFAULT;
110485 *size -= len;
110486 @@ -1995,7 +2065,7 @@ static int do_proc_dointvec_conv(bool *negp, unsigned long *lvalp,
110487 int val = *valp;
110488 if (val < 0) {
110489 *negp = true;
110490 - *lvalp = (unsigned long)-val;
110491 + *lvalp = -(unsigned long)val;
110492 } else {
110493 *negp = false;
110494 *lvalp = (unsigned long)val;
110495 @@ -2135,6 +2205,44 @@ int proc_dointvec(struct ctl_table *table, int write,
110496 NULL,NULL);
110497 }
110498
110499 +static int do_proc_dointvec_conv_secure(bool *negp, unsigned long *lvalp,
110500 + int *valp,
110501 + int write, void *data)
110502 +{
110503 + if (write) {
110504 + if (*negp) {
110505 + if (*lvalp > (unsigned long) INT_MAX + 1)
110506 + return -EINVAL;
110507 + pax_open_kernel();
110508 + *valp = -*lvalp;
110509 + pax_close_kernel();
110510 + } else {
110511 + if (*lvalp > (unsigned long) INT_MAX)
110512 + return -EINVAL;
110513 + pax_open_kernel();
110514 + *valp = *lvalp;
110515 + pax_close_kernel();
110516 + }
110517 + } else {
110518 + int val = *valp;
110519 + if (val < 0) {
110520 + *negp = true;
110521 + *lvalp = -(unsigned long)val;
110522 + } else {
110523 + *negp = false;
110524 + *lvalp = (unsigned long)val;
110525 + }
110526 + }
110527 + return 0;
110528 +}
110529 +
110530 +int proc_dointvec_secure(struct ctl_table *table, int write,
110531 + void __user *buffer, size_t *lenp, loff_t *ppos)
110532 +{
110533 + return do_proc_dointvec(table,write,buffer,lenp,ppos,
110534 + do_proc_dointvec_conv_secure,NULL);
110535 +}
110536 +
110537 /*
110538 * Taint values can only be increased
110539 * This means we can safely use a temporary.
110540 @@ -2142,7 +2250,7 @@ int proc_dointvec(struct ctl_table *table, int write,
110541 static int proc_taint(struct ctl_table *table, int write,
110542 void __user *buffer, size_t *lenp, loff_t *ppos)
110543 {
110544 - struct ctl_table t;
110545 + ctl_table_no_const t;
110546 unsigned long tmptaint = get_taint();
110547 int err;
110548
110549 @@ -2170,16 +2278,14 @@ static int proc_taint(struct ctl_table *table, int write,
110550 return err;
110551 }
110552
110553 -#ifdef CONFIG_PRINTK
110554 -static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
110555 +static int proc_dointvec_minmax_secure_sysadmin(struct ctl_table *table, int write,
110556 void __user *buffer, size_t *lenp, loff_t *ppos)
110557 {
110558 if (write && !capable(CAP_SYS_ADMIN))
110559 return -EPERM;
110560
110561 - return proc_dointvec_minmax(table, write, buffer, lenp, ppos);
110562 + return proc_dointvec_minmax_secure(table, write, buffer, lenp, ppos);
110563 }
110564 -#endif
110565
110566 struct do_proc_dointvec_minmax_conv_param {
110567 int *min;
110568 @@ -2201,7 +2307,33 @@ static int do_proc_dointvec_minmax_conv(bool *negp, unsigned long *lvalp,
110569 int val = *valp;
110570 if (val < 0) {
110571 *negp = true;
110572 - *lvalp = (unsigned long)-val;
110573 + *lvalp = -(unsigned long)val;
110574 + } else {
110575 + *negp = false;
110576 + *lvalp = (unsigned long)val;
110577 + }
110578 + }
110579 + return 0;
110580 +}
110581 +
110582 +static int do_proc_dointvec_minmax_conv_secure(bool *negp, unsigned long *lvalp,
110583 + int *valp,
110584 + int write, void *data)
110585 +{
110586 + struct do_proc_dointvec_minmax_conv_param *param = data;
110587 + if (write) {
110588 + int val = *negp ? -*lvalp : *lvalp;
110589 + if ((param->min && *param->min > val) ||
110590 + (param->max && *param->max < val))
110591 + return -EINVAL;
110592 + pax_open_kernel();
110593 + *valp = val;
110594 + pax_close_kernel();
110595 + } else {
110596 + int val = *valp;
110597 + if (val < 0) {
110598 + *negp = true;
110599 + *lvalp = -(unsigned long)val;
110600 } else {
110601 *negp = false;
110602 *lvalp = (unsigned long)val;
110603 @@ -2237,6 +2369,17 @@ int proc_dointvec_minmax(struct ctl_table *table, int write,
110604 do_proc_dointvec_minmax_conv, &param);
110605 }
110606
110607 +int proc_dointvec_minmax_secure(struct ctl_table *table, int write,
110608 + void __user *buffer, size_t *lenp, loff_t *ppos)
110609 +{
110610 + struct do_proc_dointvec_minmax_conv_param param = {
110611 + .min = (int *) table->extra1,
110612 + .max = (int *) table->extra2,
110613 + };
110614 + return do_proc_dointvec(table, write, buffer, lenp, ppos,
110615 + do_proc_dointvec_minmax_conv_secure, &param);
110616 +}
110617 +
110618 static void validate_coredump_safety(void)
110619 {
110620 #ifdef CONFIG_COREDUMP
110621 @@ -2436,7 +2579,7 @@ static int do_proc_dointvec_jiffies_conv(bool *negp, unsigned long *lvalp,
110622 unsigned long lval;
110623 if (val < 0) {
110624 *negp = true;
110625 - lval = (unsigned long)-val;
110626 + lval = -(unsigned long)val;
110627 } else {
110628 *negp = false;
110629 lval = (unsigned long)val;
110630 @@ -2459,7 +2602,7 @@ static int do_proc_dointvec_userhz_jiffies_conv(bool *negp, unsigned long *lvalp
110631 unsigned long lval;
110632 if (val < 0) {
110633 *negp = true;
110634 - lval = (unsigned long)-val;
110635 + lval = -(unsigned long)val;
110636 } else {
110637 *negp = false;
110638 lval = (unsigned long)val;
110639 @@ -2484,7 +2627,7 @@ static int do_proc_dointvec_ms_jiffies_conv(bool *negp, unsigned long *lvalp,
110640 unsigned long lval;
110641 if (val < 0) {
110642 *negp = true;
110643 - lval = (unsigned long)-val;
110644 + lval = -(unsigned long)val;
110645 } else {
110646 *negp = false;
110647 lval = (unsigned long)val;
110648 @@ -2739,6 +2882,12 @@ int proc_dostring(struct ctl_table *table, int write,
110649 return -ENOSYS;
110650 }
110651
110652 +int proc_dostring_modpriv(struct ctl_table *table, int write,
110653 + void __user *buffer, size_t *lenp, loff_t *ppos)
110654 +{
110655 + return -ENOSYS;
110656 +}
110657 +
110658 int proc_dointvec(struct ctl_table *table, int write,
110659 void __user *buffer, size_t *lenp, loff_t *ppos)
110660 {
110661 @@ -2795,5 +2944,6 @@ EXPORT_SYMBOL(proc_dointvec_minmax);
110662 EXPORT_SYMBOL(proc_dointvec_userhz_jiffies);
110663 EXPORT_SYMBOL(proc_dointvec_ms_jiffies);
110664 EXPORT_SYMBOL(proc_dostring);
110665 +EXPORT_SYMBOL(proc_dostring_modpriv);
110666 EXPORT_SYMBOL(proc_doulongvec_minmax);
110667 EXPORT_SYMBOL(proc_doulongvec_ms_jiffies_minmax);
110668 diff --git a/kernel/taskstats.c b/kernel/taskstats.c
110669 index 21f82c2..c1984e5 100644
110670 --- a/kernel/taskstats.c
110671 +++ b/kernel/taskstats.c
110672 @@ -28,9 +28,12 @@
110673 #include <linux/fs.h>
110674 #include <linux/file.h>
110675 #include <linux/pid_namespace.h>
110676 +#include <linux/grsecurity.h>
110677 #include <net/genetlink.h>
110678 #include <linux/atomic.h>
110679
110680 +extern int gr_is_taskstats_denied(int pid);
110681 +
110682 /*
110683 * Maximum length of a cpumask that can be specified in
110684 * the TASKSTATS_CMD_ATTR_REGISTER/DEREGISTER_CPUMASK attribute
110685 @@ -567,6 +570,9 @@ err:
110686
110687 static int taskstats_user_cmd(struct sk_buff *skb, struct genl_info *info)
110688 {
110689 + if (gr_is_taskstats_denied(current->pid))
110690 + return -EACCES;
110691 +
110692 if (info->attrs[TASKSTATS_CMD_ATTR_REGISTER_CPUMASK])
110693 return cmd_attr_register_cpumask(info);
110694 else if (info->attrs[TASKSTATS_CMD_ATTR_DEREGISTER_CPUMASK])
110695 diff --git a/kernel/time/alarmtimer.c b/kernel/time/alarmtimer.c
110696 index 7fbba635..7cc64ae 100644
110697 --- a/kernel/time/alarmtimer.c
110698 +++ b/kernel/time/alarmtimer.c
110699 @@ -820,7 +820,7 @@ static int __init alarmtimer_init(void)
110700 struct platform_device *pdev;
110701 int error = 0;
110702 int i;
110703 - struct k_clock alarm_clock = {
110704 + static struct k_clock alarm_clock = {
110705 .clock_getres = alarm_clock_getres,
110706 .clock_get = alarm_clock_get,
110707 .timer_create = alarm_timer_create,
110708 diff --git a/kernel/time/posix-cpu-timers.c b/kernel/time/posix-cpu-timers.c
110709 index 892e3da..cb71aa5 100644
110710 --- a/kernel/time/posix-cpu-timers.c
110711 +++ b/kernel/time/posix-cpu-timers.c
110712 @@ -1470,14 +1470,14 @@ struct k_clock clock_posix_cpu = {
110713
110714 static __init int init_posix_cpu_timers(void)
110715 {
110716 - struct k_clock process = {
110717 + static struct k_clock process = {
110718 .clock_getres = process_cpu_clock_getres,
110719 .clock_get = process_cpu_clock_get,
110720 .timer_create = process_cpu_timer_create,
110721 .nsleep = process_cpu_nsleep,
110722 .nsleep_restart = process_cpu_nsleep_restart,
110723 };
110724 - struct k_clock thread = {
110725 + static struct k_clock thread = {
110726 .clock_getres = thread_cpu_clock_getres,
110727 .clock_get = thread_cpu_clock_get,
110728 .timer_create = thread_cpu_timer_create,
110729 diff --git a/kernel/time/posix-timers.c b/kernel/time/posix-timers.c
110730 index 31d11ac..5a3bb13 100644
110731 --- a/kernel/time/posix-timers.c
110732 +++ b/kernel/time/posix-timers.c
110733 @@ -43,6 +43,7 @@
110734 #include <linux/hash.h>
110735 #include <linux/posix-clock.h>
110736 #include <linux/posix-timers.h>
110737 +#include <linux/grsecurity.h>
110738 #include <linux/syscalls.h>
110739 #include <linux/wait.h>
110740 #include <linux/workqueue.h>
110741 @@ -124,7 +125,7 @@ static DEFINE_SPINLOCK(hash_lock);
110742 * which we beg off on and pass to do_sys_settimeofday().
110743 */
110744
110745 -static struct k_clock posix_clocks[MAX_CLOCKS];
110746 +static struct k_clock *posix_clocks[MAX_CLOCKS];
110747
110748 /*
110749 * These ones are defined below.
110750 @@ -284,7 +285,7 @@ static int posix_get_hrtimer_res(clockid_t which_clock, struct timespec *tp)
110751 */
110752 static __init int init_posix_timers(void)
110753 {
110754 - struct k_clock clock_realtime = {
110755 + static struct k_clock clock_realtime = {
110756 .clock_getres = posix_get_hrtimer_res,
110757 .clock_get = posix_clock_realtime_get,
110758 .clock_set = posix_clock_realtime_set,
110759 @@ -296,7 +297,7 @@ static __init int init_posix_timers(void)
110760 .timer_get = common_timer_get,
110761 .timer_del = common_timer_del,
110762 };
110763 - struct k_clock clock_monotonic = {
110764 + static struct k_clock clock_monotonic = {
110765 .clock_getres = posix_get_hrtimer_res,
110766 .clock_get = posix_ktime_get_ts,
110767 .nsleep = common_nsleep,
110768 @@ -306,19 +307,19 @@ static __init int init_posix_timers(void)
110769 .timer_get = common_timer_get,
110770 .timer_del = common_timer_del,
110771 };
110772 - struct k_clock clock_monotonic_raw = {
110773 + static struct k_clock clock_monotonic_raw = {
110774 .clock_getres = posix_get_hrtimer_res,
110775 .clock_get = posix_get_monotonic_raw,
110776 };
110777 - struct k_clock clock_realtime_coarse = {
110778 + static struct k_clock clock_realtime_coarse = {
110779 .clock_getres = posix_get_coarse_res,
110780 .clock_get = posix_get_realtime_coarse,
110781 };
110782 - struct k_clock clock_monotonic_coarse = {
110783 + static struct k_clock clock_monotonic_coarse = {
110784 .clock_getres = posix_get_coarse_res,
110785 .clock_get = posix_get_monotonic_coarse,
110786 };
110787 - struct k_clock clock_tai = {
110788 + static struct k_clock clock_tai = {
110789 .clock_getres = posix_get_hrtimer_res,
110790 .clock_get = posix_get_tai,
110791 .nsleep = common_nsleep,
110792 @@ -328,7 +329,7 @@ static __init int init_posix_timers(void)
110793 .timer_get = common_timer_get,
110794 .timer_del = common_timer_del,
110795 };
110796 - struct k_clock clock_boottime = {
110797 + static struct k_clock clock_boottime = {
110798 .clock_getres = posix_get_hrtimer_res,
110799 .clock_get = posix_get_boottime,
110800 .nsleep = common_nsleep,
110801 @@ -540,7 +541,7 @@ void posix_timers_register_clock(const clockid_t clock_id,
110802 return;
110803 }
110804
110805 - posix_clocks[clock_id] = *new_clock;
110806 + posix_clocks[clock_id] = new_clock;
110807 }
110808 EXPORT_SYMBOL_GPL(posix_timers_register_clock);
110809
110810 @@ -586,9 +587,9 @@ static struct k_clock *clockid_to_kclock(const clockid_t id)
110811 return (id & CLOCKFD_MASK) == CLOCKFD ?
110812 &clock_posix_dynamic : &clock_posix_cpu;
110813
110814 - if (id >= MAX_CLOCKS || !posix_clocks[id].clock_getres)
110815 + if (id >= MAX_CLOCKS || !posix_clocks[id] || !posix_clocks[id]->clock_getres)
110816 return NULL;
110817 - return &posix_clocks[id];
110818 + return posix_clocks[id];
110819 }
110820
110821 static int common_timer_create(struct k_itimer *new_timer)
110822 @@ -606,7 +607,7 @@ SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,
110823 struct k_clock *kc = clockid_to_kclock(which_clock);
110824 struct k_itimer *new_timer;
110825 int error, new_timer_id;
110826 - sigevent_t event;
110827 + sigevent_t event = { };
110828 int it_id_set = IT_ID_NOT_SET;
110829
110830 if (!kc)
110831 @@ -1021,6 +1022,13 @@ SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock,
110832 if (copy_from_user(&new_tp, tp, sizeof (*tp)))
110833 return -EFAULT;
110834
110835 + /* only the CLOCK_REALTIME clock can be set, all other clocks
110836 + have their clock_set fptr set to a nosettime dummy function
110837 + CLOCK_REALTIME has a NULL clock_set fptr which causes it to
110838 + call common_clock_set, which calls do_sys_settimeofday, which
110839 + we hook
110840 + */
110841 +
110842 return kc->clock_set(which_clock, &new_tp);
110843 }
110844
110845 diff --git a/kernel/time/time.c b/kernel/time/time.c
110846 index 85d5bb1..aeca463 100644
110847 --- a/kernel/time/time.c
110848 +++ b/kernel/time/time.c
110849 @@ -177,6 +177,11 @@ int do_sys_settimeofday(const struct timespec *tv, const struct timezone *tz)
110850 if (tz->tz_minuteswest > 15*60 || tz->tz_minuteswest < -15*60)
110851 return -EINVAL;
110852
110853 + /* we log in do_settimeofday called below, so don't log twice
110854 + */
110855 + if (!tv)
110856 + gr_log_timechange();
110857 +
110858 sys_tz = *tz;
110859 update_vsyscall_tz();
110860 if (firsttime) {
110861 diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
110862 index 3688f1e..3dfea48 100644
110863 --- a/kernel/time/timekeeping.c
110864 +++ b/kernel/time/timekeeping.c
110865 @@ -15,6 +15,7 @@
110866 #include <linux/init.h>
110867 #include <linux/mm.h>
110868 #include <linux/sched.h>
110869 +#include <linux/grsecurity.h>
110870 #include <linux/syscore_ops.h>
110871 #include <linux/clocksource.h>
110872 #include <linux/jiffies.h>
110873 @@ -915,6 +916,8 @@ int do_settimeofday64(const struct timespec64 *ts)
110874 if (!timespec64_valid_strict(ts))
110875 return -EINVAL;
110876
110877 + gr_log_timechange();
110878 +
110879 raw_spin_lock_irqsave(&timekeeper_lock, flags);
110880 write_seqcount_begin(&tk_core.seq);
110881
110882 diff --git a/kernel/time/timer.c b/kernel/time/timer.c
110883 index 84190f0..6f4ccad 100644
110884 --- a/kernel/time/timer.c
110885 +++ b/kernel/time/timer.c
110886 @@ -1406,7 +1406,7 @@ void update_process_times(int user_tick)
110887 /*
110888 * This function runs timers and the timer-tq in bottom half context.
110889 */
110890 -static void run_timer_softirq(struct softirq_action *h)
110891 +static __latent_entropy void run_timer_softirq(void)
110892 {
110893 struct tvec_base *base = this_cpu_ptr(&tvec_bases);
110894
110895 diff --git a/kernel/time/timer_list.c b/kernel/time/timer_list.c
110896 index a4536e1..5d8774c 100644
110897 --- a/kernel/time/timer_list.c
110898 +++ b/kernel/time/timer_list.c
110899 @@ -50,12 +50,16 @@ static void SEQ_printf(struct seq_file *m, const char *fmt, ...)
110900
110901 static void print_name_offset(struct seq_file *m, void *sym)
110902 {
110903 +#ifdef CONFIG_GRKERNSEC_HIDESYM
110904 + SEQ_printf(m, "<%p>", NULL);
110905 +#else
110906 char symname[KSYM_NAME_LEN];
110907
110908 if (lookup_symbol_name((unsigned long)sym, symname) < 0)
110909 SEQ_printf(m, "<%pK>", sym);
110910 else
110911 SEQ_printf(m, "%s", symname);
110912 +#endif
110913 }
110914
110915 static void
110916 @@ -124,11 +128,14 @@ next_one:
110917 static void
110918 print_base(struct seq_file *m, struct hrtimer_clock_base *base, u64 now)
110919 {
110920 +#ifdef CONFIG_GRKERNSEC_HIDESYM
110921 + SEQ_printf(m, " .base: %p\n", NULL);
110922 +#else
110923 SEQ_printf(m, " .base: %pK\n", base);
110924 +#endif
110925 SEQ_printf(m, " .index: %d\n", base->index);
110926
110927 SEQ_printf(m, " .resolution: %u nsecs\n", (unsigned) hrtimer_resolution);
110928 -
110929 SEQ_printf(m, " .get_time: ");
110930 print_name_offset(m, base->get_time);
110931 SEQ_printf(m, "\n");
110932 @@ -399,7 +406,11 @@ static int __init init_timer_list_procfs(void)
110933 {
110934 struct proc_dir_entry *pe;
110935
110936 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
110937 + pe = proc_create("timer_list", 0400, NULL, &timer_list_fops);
110938 +#else
110939 pe = proc_create("timer_list", 0444, NULL, &timer_list_fops);
110940 +#endif
110941 if (!pe)
110942 return -ENOMEM;
110943 return 0;
110944 diff --git a/kernel/time/timer_stats.c b/kernel/time/timer_stats.c
110945 index 1adecb4..b4fb631 100644
110946 --- a/kernel/time/timer_stats.c
110947 +++ b/kernel/time/timer_stats.c
110948 @@ -116,7 +116,7 @@ static ktime_t time_start, time_stop;
110949 static unsigned long nr_entries;
110950 static struct entry entries[MAX_ENTRIES];
110951
110952 -static atomic_t overflow_count;
110953 +static atomic_unchecked_t overflow_count;
110954
110955 /*
110956 * The entries are in a hash-table, for fast lookup:
110957 @@ -140,7 +140,7 @@ static void reset_entries(void)
110958 nr_entries = 0;
110959 memset(entries, 0, sizeof(entries));
110960 memset(tstat_hash_table, 0, sizeof(tstat_hash_table));
110961 - atomic_set(&overflow_count, 0);
110962 + atomic_set_unchecked(&overflow_count, 0);
110963 }
110964
110965 static struct entry *alloc_entry(void)
110966 @@ -261,7 +261,7 @@ void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
110967 if (likely(entry))
110968 entry->count++;
110969 else
110970 - atomic_inc(&overflow_count);
110971 + atomic_inc_unchecked(&overflow_count);
110972
110973 out_unlock:
110974 raw_spin_unlock_irqrestore(lock, flags);
110975 @@ -269,12 +269,16 @@ void timer_stats_update_stats(void *timer, pid_t pid, void *startf,
110976
110977 static void print_name_offset(struct seq_file *m, unsigned long addr)
110978 {
110979 +#ifdef CONFIG_GRKERNSEC_HIDESYM
110980 + seq_printf(m, "<%p>", NULL);
110981 +#else
110982 char symname[KSYM_NAME_LEN];
110983
110984 if (lookup_symbol_name(addr, symname) < 0)
110985 - seq_printf(m, "<%p>", (void *)addr);
110986 + seq_printf(m, "<%pK>", (void *)addr);
110987 else
110988 seq_printf(m, "%s", symname);
110989 +#endif
110990 }
110991
110992 static int tstats_show(struct seq_file *m, void *v)
110993 @@ -300,8 +304,8 @@ static int tstats_show(struct seq_file *m, void *v)
110994
110995 seq_puts(m, "Timer Stats Version: v0.3\n");
110996 seq_printf(m, "Sample period: %ld.%03ld s\n", period.tv_sec, ms);
110997 - if (atomic_read(&overflow_count))
110998 - seq_printf(m, "Overflow: %d entries\n", atomic_read(&overflow_count));
110999 + if (atomic_read_unchecked(&overflow_count))
111000 + seq_printf(m, "Overflow: %d entries\n", atomic_read_unchecked(&overflow_count));
111001 seq_printf(m, "Collection: %s\n", timer_stats_active ? "active" : "inactive");
111002
111003 for (i = 0; i < nr_entries; i++) {
111004 @@ -417,7 +421,11 @@ static int __init init_tstats_procfs(void)
111005 {
111006 struct proc_dir_entry *pe;
111007
111008 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
111009 + pe = proc_create("timer_stats", 0600, NULL, &tstats_fops);
111010 +#else
111011 pe = proc_create("timer_stats", 0644, NULL, &tstats_fops);
111012 +#endif
111013 if (!pe)
111014 return -ENOMEM;
111015 return 0;
111016 diff --git a/kernel/trace/Kconfig b/kernel/trace/Kconfig
111017 index 3b9a48a..6125816 100644
111018 --- a/kernel/trace/Kconfig
111019 +++ b/kernel/trace/Kconfig
111020 @@ -120,6 +120,7 @@ config TRACING_SUPPORT
111021 # irqflags tracing for your architecture.
111022 depends on TRACE_IRQFLAGS_SUPPORT || PPC32
111023 depends on STACKTRACE_SUPPORT
111024 + depends on !GRKERNSEC_KMEM
111025 default y
111026
111027 if TRACING_SUPPORT
111028 @@ -378,6 +379,7 @@ config BLK_DEV_IO_TRACE
111029 depends on BLOCK
111030 select RELAY
111031 select DEBUG_FS
111032 + depends on !GRKERNSEC_KMEM
111033 select TRACEPOINTS
111034 select GENERIC_TRACER
111035 select STACKTRACE
111036 diff --git a/kernel/trace/blktrace.c b/kernel/trace/blktrace.c
111037 index b3e6b39..719099b 100644
111038 --- a/kernel/trace/blktrace.c
111039 +++ b/kernel/trace/blktrace.c
111040 @@ -328,7 +328,7 @@ static ssize_t blk_dropped_read(struct file *filp, char __user *buffer,
111041 struct blk_trace *bt = filp->private_data;
111042 char buf[16];
111043
111044 - snprintf(buf, sizeof(buf), "%u\n", atomic_read(&bt->dropped));
111045 + snprintf(buf, sizeof(buf), "%u\n", atomic_read_unchecked(&bt->dropped));
111046
111047 return simple_read_from_buffer(buffer, count, ppos, buf, strlen(buf));
111048 }
111049 @@ -386,7 +386,7 @@ static int blk_subbuf_start_callback(struct rchan_buf *buf, void *subbuf,
111050 return 1;
111051
111052 bt = buf->chan->private_data;
111053 - atomic_inc(&bt->dropped);
111054 + atomic_inc_unchecked(&bt->dropped);
111055 return 0;
111056 }
111057
111058 @@ -485,7 +485,7 @@ int do_blk_trace_setup(struct request_queue *q, char *name, dev_t dev,
111059
111060 bt->dir = dir;
111061 bt->dev = dev;
111062 - atomic_set(&bt->dropped, 0);
111063 + atomic_set_unchecked(&bt->dropped, 0);
111064 INIT_LIST_HEAD(&bt->running_list);
111065
111066 ret = -EIO;
111067 diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
111068 index eb11011..43adc29 100644
111069 --- a/kernel/trace/ftrace.c
111070 +++ b/kernel/trace/ftrace.c
111071 @@ -2413,12 +2413,17 @@ ftrace_code_disable(struct module *mod, struct dyn_ftrace *rec)
111072 if (unlikely(ftrace_disabled))
111073 return 0;
111074
111075 + ret = ftrace_arch_code_modify_prepare();
111076 + FTRACE_WARN_ON(ret);
111077 + if (ret)
111078 + return 0;
111079 +
111080 ret = ftrace_make_nop(mod, rec, MCOUNT_ADDR);
111081 + FTRACE_WARN_ON(ftrace_arch_code_modify_post_process());
111082 if (ret) {
111083 ftrace_bug(ret, rec);
111084 - return 0;
111085 }
111086 - return 1;
111087 + return ret ? 0 : 1;
111088 }
111089
111090 /*
111091 @@ -4807,8 +4812,10 @@ static int ftrace_process_locs(struct module *mod,
111092 if (!count)
111093 return 0;
111094
111095 + pax_open_kernel();
111096 sort(start, count, sizeof(*start),
111097 ftrace_cmp_ips, ftrace_swap_ips);
111098 + pax_close_kernel();
111099
111100 start_pg = ftrace_allocate_pages(count);
111101 if (!start_pg)
111102 @@ -5675,7 +5682,7 @@ static int alloc_retstack_tasklist(struct ftrace_ret_stack **ret_stack_list)
111103
111104 if (t->ret_stack == NULL) {
111105 atomic_set(&t->tracing_graph_pause, 0);
111106 - atomic_set(&t->trace_overrun, 0);
111107 + atomic_set_unchecked(&t->trace_overrun, 0);
111108 t->curr_ret_stack = -1;
111109 /* Make sure the tasks see the -1 first: */
111110 smp_wmb();
111111 @@ -5898,7 +5905,7 @@ static void
111112 graph_init_task(struct task_struct *t, struct ftrace_ret_stack *ret_stack)
111113 {
111114 atomic_set(&t->tracing_graph_pause, 0);
111115 - atomic_set(&t->trace_overrun, 0);
111116 + atomic_set_unchecked(&t->trace_overrun, 0);
111117 t->ftrace_timestamp = 0;
111118 /* make curr_ret_stack visible before we add the ret_stack */
111119 smp_wmb();
111120 diff --git a/kernel/trace/ring_buffer.c b/kernel/trace/ring_buffer.c
111121 index 6260717..b9bd83c 100644
111122 --- a/kernel/trace/ring_buffer.c
111123 +++ b/kernel/trace/ring_buffer.c
111124 @@ -296,9 +296,9 @@ struct buffer_data_page {
111125 */
111126 struct buffer_page {
111127 struct list_head list; /* list of buffer pages */
111128 - local_t write; /* index for next write */
111129 + local_unchecked_t write; /* index for next write */
111130 unsigned read; /* index for next read */
111131 - local_t entries; /* entries on this page */
111132 + local_unchecked_t entries; /* entries on this page */
111133 unsigned long real_end; /* real end of data */
111134 struct buffer_data_page *page; /* Actual data page */
111135 };
111136 @@ -437,11 +437,11 @@ struct ring_buffer_per_cpu {
111137 unsigned long last_overrun;
111138 local_t entries_bytes;
111139 local_t entries;
111140 - local_t overrun;
111141 - local_t commit_overrun;
111142 - local_t dropped_events;
111143 + local_unchecked_t overrun;
111144 + local_unchecked_t commit_overrun;
111145 + local_unchecked_t dropped_events;
111146 local_t committing;
111147 - local_t commits;
111148 + local_unchecked_t commits;
111149 unsigned long read;
111150 unsigned long read_bytes;
111151 u64 write_stamp;
111152 @@ -1011,8 +1011,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer,
111153 *
111154 * We add a counter to the write field to denote this.
111155 */
111156 - old_write = local_add_return(RB_WRITE_INTCNT, &next_page->write);
111157 - old_entries = local_add_return(RB_WRITE_INTCNT, &next_page->entries);
111158 + old_write = local_add_return_unchecked(RB_WRITE_INTCNT, &next_page->write);
111159 + old_entries = local_add_return_unchecked(RB_WRITE_INTCNT, &next_page->entries);
111160
111161 /*
111162 * Just make sure we have seen our old_write and synchronize
111163 @@ -1040,8 +1040,8 @@ static int rb_tail_page_update(struct ring_buffer_per_cpu *cpu_buffer,
111164 * cmpxchg to only update if an interrupt did not already
111165 * do it for us. If the cmpxchg fails, we don't care.
111166 */
111167 - (void)local_cmpxchg(&next_page->write, old_write, val);
111168 - (void)local_cmpxchg(&next_page->entries, old_entries, eval);
111169 + (void)local_cmpxchg_unchecked(&next_page->write, old_write, val);
111170 + (void)local_cmpxchg_unchecked(&next_page->entries, old_entries, eval);
111171
111172 /*
111173 * No need to worry about races with clearing out the commit.
111174 @@ -1409,12 +1409,12 @@ static void rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer);
111175
111176 static inline unsigned long rb_page_entries(struct buffer_page *bpage)
111177 {
111178 - return local_read(&bpage->entries) & RB_WRITE_MASK;
111179 + return local_read_unchecked(&bpage->entries) & RB_WRITE_MASK;
111180 }
111181
111182 static inline unsigned long rb_page_write(struct buffer_page *bpage)
111183 {
111184 - return local_read(&bpage->write) & RB_WRITE_MASK;
111185 + return local_read_unchecked(&bpage->write) & RB_WRITE_MASK;
111186 }
111187
111188 static int
111189 @@ -1509,7 +1509,7 @@ rb_remove_pages(struct ring_buffer_per_cpu *cpu_buffer, unsigned int nr_pages)
111190 * bytes consumed in ring buffer from here.
111191 * Increment overrun to account for the lost events.
111192 */
111193 - local_add(page_entries, &cpu_buffer->overrun);
111194 + local_add_unchecked(page_entries, &cpu_buffer->overrun);
111195 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes);
111196 }
111197
111198 @@ -2071,7 +2071,7 @@ rb_handle_head_page(struct ring_buffer_per_cpu *cpu_buffer,
111199 * it is our responsibility to update
111200 * the counters.
111201 */
111202 - local_add(entries, &cpu_buffer->overrun);
111203 + local_add_unchecked(entries, &cpu_buffer->overrun);
111204 local_sub(BUF_PAGE_SIZE, &cpu_buffer->entries_bytes);
111205
111206 /*
111207 @@ -2221,7 +2221,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
111208 if (tail == BUF_PAGE_SIZE)
111209 tail_page->real_end = 0;
111210
111211 - local_sub(length, &tail_page->write);
111212 + local_sub_unchecked(length, &tail_page->write);
111213 return;
111214 }
111215
111216 @@ -2256,7 +2256,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
111217 rb_event_set_padding(event);
111218
111219 /* Set the write back to the previous setting */
111220 - local_sub(length, &tail_page->write);
111221 + local_sub_unchecked(length, &tail_page->write);
111222 return;
111223 }
111224
111225 @@ -2268,7 +2268,7 @@ rb_reset_tail(struct ring_buffer_per_cpu *cpu_buffer,
111226
111227 /* Set write to end of buffer */
111228 length = (tail + length) - BUF_PAGE_SIZE;
111229 - local_sub(length, &tail_page->write);
111230 + local_sub_unchecked(length, &tail_page->write);
111231 }
111232
111233 /*
111234 @@ -2294,7 +2294,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
111235 * about it.
111236 */
111237 if (unlikely(next_page == commit_page)) {
111238 - local_inc(&cpu_buffer->commit_overrun);
111239 + local_inc_unchecked(&cpu_buffer->commit_overrun);
111240 goto out_reset;
111241 }
111242
111243 @@ -2324,7 +2324,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
111244 * this is easy, just stop here.
111245 */
111246 if (!(buffer->flags & RB_FL_OVERWRITE)) {
111247 - local_inc(&cpu_buffer->dropped_events);
111248 + local_inc_unchecked(&cpu_buffer->dropped_events);
111249 goto out_reset;
111250 }
111251
111252 @@ -2350,7 +2350,7 @@ rb_move_tail(struct ring_buffer_per_cpu *cpu_buffer,
111253 cpu_buffer->tail_page) &&
111254 (cpu_buffer->commit_page ==
111255 cpu_buffer->reader_page))) {
111256 - local_inc(&cpu_buffer->commit_overrun);
111257 + local_inc_unchecked(&cpu_buffer->commit_overrun);
111258 goto out_reset;
111259 }
111260 }
111261 @@ -2398,7 +2398,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer,
111262 length += RB_LEN_TIME_EXTEND;
111263
111264 tail_page = cpu_buffer->tail_page;
111265 - write = local_add_return(length, &tail_page->write);
111266 + write = local_add_return_unchecked(length, &tail_page->write);
111267
111268 /* set write to only the index of the write */
111269 write &= RB_WRITE_MASK;
111270 @@ -2422,7 +2422,7 @@ __rb_reserve_next(struct ring_buffer_per_cpu *cpu_buffer,
111271 kmemcheck_annotate_bitfield(event, bitfield);
111272 rb_update_event(cpu_buffer, event, length, add_timestamp, delta);
111273
111274 - local_inc(&tail_page->entries);
111275 + local_inc_unchecked(&tail_page->entries);
111276
111277 /*
111278 * If this is the first commit on the page, then update
111279 @@ -2455,7 +2455,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
111280
111281 if (bpage->page == (void *)addr && rb_page_write(bpage) == old_index) {
111282 unsigned long write_mask =
111283 - local_read(&bpage->write) & ~RB_WRITE_MASK;
111284 + local_read_unchecked(&bpage->write) & ~RB_WRITE_MASK;
111285 unsigned long event_length = rb_event_length(event);
111286 /*
111287 * This is on the tail page. It is possible that
111288 @@ -2465,7 +2465,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
111289 */
111290 old_index += write_mask;
111291 new_index += write_mask;
111292 - index = local_cmpxchg(&bpage->write, old_index, new_index);
111293 + index = local_cmpxchg_unchecked(&bpage->write, old_index, new_index);
111294 if (index == old_index) {
111295 /* update counters */
111296 local_sub(event_length, &cpu_buffer->entries_bytes);
111297 @@ -2480,7 +2480,7 @@ rb_try_to_discard(struct ring_buffer_per_cpu *cpu_buffer,
111298 static void rb_start_commit(struct ring_buffer_per_cpu *cpu_buffer)
111299 {
111300 local_inc(&cpu_buffer->committing);
111301 - local_inc(&cpu_buffer->commits);
111302 + local_inc_unchecked(&cpu_buffer->commits);
111303 }
111304
111305 static inline void rb_end_commit(struct ring_buffer_per_cpu *cpu_buffer)
111306 @@ -2492,7 +2492,7 @@ static inline void rb_end_commit(struct ring_buffer_per_cpu *cpu_buffer)
111307 return;
111308
111309 again:
111310 - commits = local_read(&cpu_buffer->commits);
111311 + commits = local_read_unchecked(&cpu_buffer->commits);
111312 /* synchronize with interrupts */
111313 barrier();
111314 if (local_read(&cpu_buffer->committing) == 1)
111315 @@ -2508,7 +2508,7 @@ static inline void rb_end_commit(struct ring_buffer_per_cpu *cpu_buffer)
111316 * updating of the commit page and the clearing of the
111317 * committing counter.
111318 */
111319 - if (unlikely(local_read(&cpu_buffer->commits) != commits) &&
111320 + if (unlikely(local_read_unchecked(&cpu_buffer->commits) != commits) &&
111321 !local_read(&cpu_buffer->committing)) {
111322 local_inc(&cpu_buffer->committing);
111323 goto again;
111324 @@ -2538,7 +2538,7 @@ rb_reserve_next_event(struct ring_buffer *buffer,
111325 barrier();
111326 if (unlikely(ACCESS_ONCE(cpu_buffer->buffer) != buffer)) {
111327 local_dec(&cpu_buffer->committing);
111328 - local_dec(&cpu_buffer->commits);
111329 + local_dec_unchecked(&cpu_buffer->commits);
111330 return NULL;
111331 }
111332 #endif
111333 @@ -2852,7 +2852,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
111334
111335 /* Do the likely case first */
111336 if (likely(bpage->page == (void *)addr)) {
111337 - local_dec(&bpage->entries);
111338 + local_dec_unchecked(&bpage->entries);
111339 return;
111340 }
111341
111342 @@ -2864,7 +2864,7 @@ rb_decrement_entry(struct ring_buffer_per_cpu *cpu_buffer,
111343 start = bpage;
111344 do {
111345 if (bpage->page == (void *)addr) {
111346 - local_dec(&bpage->entries);
111347 + local_dec_unchecked(&bpage->entries);
111348 return;
111349 }
111350 rb_inc_page(cpu_buffer, &bpage);
111351 @@ -3152,7 +3152,7 @@ static inline unsigned long
111352 rb_num_of_entries(struct ring_buffer_per_cpu *cpu_buffer)
111353 {
111354 return local_read(&cpu_buffer->entries) -
111355 - (local_read(&cpu_buffer->overrun) + cpu_buffer->read);
111356 + (local_read_unchecked(&cpu_buffer->overrun) + cpu_buffer->read);
111357 }
111358
111359 /**
111360 @@ -3241,7 +3241,7 @@ unsigned long ring_buffer_overrun_cpu(struct ring_buffer *buffer, int cpu)
111361 return 0;
111362
111363 cpu_buffer = buffer->buffers[cpu];
111364 - ret = local_read(&cpu_buffer->overrun);
111365 + ret = local_read_unchecked(&cpu_buffer->overrun);
111366
111367 return ret;
111368 }
111369 @@ -3264,7 +3264,7 @@ ring_buffer_commit_overrun_cpu(struct ring_buffer *buffer, int cpu)
111370 return 0;
111371
111372 cpu_buffer = buffer->buffers[cpu];
111373 - ret = local_read(&cpu_buffer->commit_overrun);
111374 + ret = local_read_unchecked(&cpu_buffer->commit_overrun);
111375
111376 return ret;
111377 }
111378 @@ -3286,7 +3286,7 @@ ring_buffer_dropped_events_cpu(struct ring_buffer *buffer, int cpu)
111379 return 0;
111380
111381 cpu_buffer = buffer->buffers[cpu];
111382 - ret = local_read(&cpu_buffer->dropped_events);
111383 + ret = local_read_unchecked(&cpu_buffer->dropped_events);
111384
111385 return ret;
111386 }
111387 @@ -3349,7 +3349,7 @@ unsigned long ring_buffer_overruns(struct ring_buffer *buffer)
111388 /* if you care about this being correct, lock the buffer */
111389 for_each_buffer_cpu(buffer, cpu) {
111390 cpu_buffer = buffer->buffers[cpu];
111391 - overruns += local_read(&cpu_buffer->overrun);
111392 + overruns += local_read_unchecked(&cpu_buffer->overrun);
111393 }
111394
111395 return overruns;
111396 @@ -3520,8 +3520,8 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
111397 /*
111398 * Reset the reader page to size zero.
111399 */
111400 - local_set(&cpu_buffer->reader_page->write, 0);
111401 - local_set(&cpu_buffer->reader_page->entries, 0);
111402 + local_set_unchecked(&cpu_buffer->reader_page->write, 0);
111403 + local_set_unchecked(&cpu_buffer->reader_page->entries, 0);
111404 local_set(&cpu_buffer->reader_page->page->commit, 0);
111405 cpu_buffer->reader_page->real_end = 0;
111406
111407 @@ -3555,7 +3555,7 @@ rb_get_reader_page(struct ring_buffer_per_cpu *cpu_buffer)
111408 * want to compare with the last_overrun.
111409 */
111410 smp_mb();
111411 - overwrite = local_read(&(cpu_buffer->overrun));
111412 + overwrite = local_read_unchecked(&(cpu_buffer->overrun));
111413
111414 /*
111415 * Here's the tricky part.
111416 @@ -4137,8 +4137,8 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
111417
111418 cpu_buffer->head_page
111419 = list_entry(cpu_buffer->pages, struct buffer_page, list);
111420 - local_set(&cpu_buffer->head_page->write, 0);
111421 - local_set(&cpu_buffer->head_page->entries, 0);
111422 + local_set_unchecked(&cpu_buffer->head_page->write, 0);
111423 + local_set_unchecked(&cpu_buffer->head_page->entries, 0);
111424 local_set(&cpu_buffer->head_page->page->commit, 0);
111425
111426 cpu_buffer->head_page->read = 0;
111427 @@ -4148,18 +4148,18 @@ rb_reset_cpu(struct ring_buffer_per_cpu *cpu_buffer)
111428
111429 INIT_LIST_HEAD(&cpu_buffer->reader_page->list);
111430 INIT_LIST_HEAD(&cpu_buffer->new_pages);
111431 - local_set(&cpu_buffer->reader_page->write, 0);
111432 - local_set(&cpu_buffer->reader_page->entries, 0);
111433 + local_set_unchecked(&cpu_buffer->reader_page->write, 0);
111434 + local_set_unchecked(&cpu_buffer->reader_page->entries, 0);
111435 local_set(&cpu_buffer->reader_page->page->commit, 0);
111436 cpu_buffer->reader_page->read = 0;
111437
111438 local_set(&cpu_buffer->entries_bytes, 0);
111439 - local_set(&cpu_buffer->overrun, 0);
111440 - local_set(&cpu_buffer->commit_overrun, 0);
111441 - local_set(&cpu_buffer->dropped_events, 0);
111442 + local_set_unchecked(&cpu_buffer->overrun, 0);
111443 + local_set_unchecked(&cpu_buffer->commit_overrun, 0);
111444 + local_set_unchecked(&cpu_buffer->dropped_events, 0);
111445 local_set(&cpu_buffer->entries, 0);
111446 local_set(&cpu_buffer->committing, 0);
111447 - local_set(&cpu_buffer->commits, 0);
111448 + local_set_unchecked(&cpu_buffer->commits, 0);
111449 cpu_buffer->read = 0;
111450 cpu_buffer->read_bytes = 0;
111451
111452 @@ -4549,8 +4549,8 @@ int ring_buffer_read_page(struct ring_buffer *buffer,
111453 rb_init_page(bpage);
111454 bpage = reader->page;
111455 reader->page = *data_page;
111456 - local_set(&reader->write, 0);
111457 - local_set(&reader->entries, 0);
111458 + local_set_unchecked(&reader->write, 0);
111459 + local_set_unchecked(&reader->entries, 0);
111460 reader->read = 0;
111461 *data_page = bpage;
111462
111463 diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
111464 index abcbf7f..ef8b6fe 100644
111465 --- a/kernel/trace/trace.c
111466 +++ b/kernel/trace/trace.c
111467 @@ -3539,7 +3539,7 @@ int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set)
111468 return 0;
111469 }
111470
111471 -int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled)
111472 +int set_tracer_flag(struct trace_array *tr, unsigned long mask, int enabled)
111473 {
111474 /* do nothing if flag is already set */
111475 if (!!(trace_flags & mask) == !!enabled)
111476 diff --git a/kernel/trace/trace.h b/kernel/trace/trace.h
111477 index 74bde81..f9abfd4 100644
111478 --- a/kernel/trace/trace.h
111479 +++ b/kernel/trace/trace.h
111480 @@ -1272,7 +1272,7 @@ extern const char *__stop___tracepoint_str[];
111481 void trace_printk_init_buffers(void);
111482 void trace_printk_start_comm(void);
111483 int trace_keep_overwrite(struct tracer *tracer, u32 mask, int set);
111484 -int set_tracer_flag(struct trace_array *tr, unsigned int mask, int enabled);
111485 +int set_tracer_flag(struct trace_array *tr, unsigned long mask, int enabled);
111486
111487 /*
111488 * Normal trace_printk() and friends allocates special buffers
111489 diff --git a/kernel/trace/trace_clock.c b/kernel/trace/trace_clock.c
111490 index 0f06532..247c8e7 100644
111491 --- a/kernel/trace/trace_clock.c
111492 +++ b/kernel/trace/trace_clock.c
111493 @@ -127,7 +127,7 @@ u64 notrace trace_clock_global(void)
111494 }
111495 EXPORT_SYMBOL_GPL(trace_clock_global);
111496
111497 -static atomic64_t trace_counter;
111498 +static atomic64_unchecked_t trace_counter;
111499
111500 /*
111501 * trace_clock_counter(): simply an atomic counter.
111502 @@ -136,5 +136,5 @@ static atomic64_t trace_counter;
111503 */
111504 u64 notrace trace_clock_counter(void)
111505 {
111506 - return atomic64_add_return(1, &trace_counter);
111507 + return atomic64_inc_return_unchecked(&trace_counter);
111508 }
111509 diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
111510 index 404a372..d9e5547 100644
111511 --- a/kernel/trace/trace_events.c
111512 +++ b/kernel/trace/trace_events.c
111513 @@ -1887,7 +1887,6 @@ __trace_early_add_new_event(struct trace_event_call *call,
111514 return 0;
111515 }
111516
111517 -struct ftrace_module_file_ops;
111518 static void __add_event_to_tracers(struct trace_event_call *call);
111519
111520 /* Add an additional event_call dynamically */
111521 diff --git a/kernel/trace/trace_functions_graph.c b/kernel/trace/trace_functions_graph.c
111522 index 8968bf7..e6623fc 100644
111523 --- a/kernel/trace/trace_functions_graph.c
111524 +++ b/kernel/trace/trace_functions_graph.c
111525 @@ -132,7 +132,7 @@ ftrace_push_return_trace(unsigned long ret, unsigned long func, int *depth,
111526
111527 /* The return trace stack is full */
111528 if (current->curr_ret_stack == FTRACE_RETFUNC_DEPTH - 1) {
111529 - atomic_inc(&current->trace_overrun);
111530 + atomic_inc_unchecked(&current->trace_overrun);
111531 return -EBUSY;
111532 }
111533
111534 @@ -229,7 +229,7 @@ ftrace_pop_return_trace(struct ftrace_graph_ret *trace, unsigned long *ret,
111535 *ret = current->ret_stack[index].ret;
111536 trace->func = current->ret_stack[index].func;
111537 trace->calltime = current->ret_stack[index].calltime;
111538 - trace->overrun = atomic_read(&current->trace_overrun);
111539 + trace->overrun = atomic_read_unchecked(&current->trace_overrun);
111540 trace->depth = index;
111541 }
111542
111543 diff --git a/kernel/trace/trace_mmiotrace.c b/kernel/trace/trace_mmiotrace.c
111544 index 638e110..99b73b2 100644
111545 --- a/kernel/trace/trace_mmiotrace.c
111546 +++ b/kernel/trace/trace_mmiotrace.c
111547 @@ -24,7 +24,7 @@ struct header_iter {
111548 static struct trace_array *mmio_trace_array;
111549 static bool overrun_detected;
111550 static unsigned long prev_overruns;
111551 -static atomic_t dropped_count;
111552 +static atomic_unchecked_t dropped_count;
111553
111554 static void mmio_reset_data(struct trace_array *tr)
111555 {
111556 @@ -124,7 +124,7 @@ static void mmio_close(struct trace_iterator *iter)
111557
111558 static unsigned long count_overruns(struct trace_iterator *iter)
111559 {
111560 - unsigned long cnt = atomic_xchg(&dropped_count, 0);
111561 + unsigned long cnt = atomic_xchg_unchecked(&dropped_count, 0);
111562 unsigned long over = ring_buffer_overruns(iter->trace_buffer->buffer);
111563
111564 if (over > prev_overruns)
111565 @@ -307,7 +307,7 @@ static void __trace_mmiotrace_rw(struct trace_array *tr,
111566 event = trace_buffer_lock_reserve(buffer, TRACE_MMIO_RW,
111567 sizeof(*entry), 0, pc);
111568 if (!event) {
111569 - atomic_inc(&dropped_count);
111570 + atomic_inc_unchecked(&dropped_count);
111571 return;
111572 }
111573 entry = ring_buffer_event_data(event);
111574 @@ -337,7 +337,7 @@ static void __trace_mmiotrace_map(struct trace_array *tr,
111575 event = trace_buffer_lock_reserve(buffer, TRACE_MMIO_MAP,
111576 sizeof(*entry), 0, pc);
111577 if (!event) {
111578 - atomic_inc(&dropped_count);
111579 + atomic_inc_unchecked(&dropped_count);
111580 return;
111581 }
111582 entry = ring_buffer_event_data(event);
111583 diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
111584 index dfab253..8e9b477 100644
111585 --- a/kernel/trace/trace_output.c
111586 +++ b/kernel/trace/trace_output.c
111587 @@ -752,14 +752,16 @@ int register_trace_event(struct trace_event *event)
111588 goto out;
111589 }
111590
111591 + pax_open_kernel();
111592 if (event->funcs->trace == NULL)
111593 - event->funcs->trace = trace_nop_print;
111594 + *(void **)&event->funcs->trace = trace_nop_print;
111595 if (event->funcs->raw == NULL)
111596 - event->funcs->raw = trace_nop_print;
111597 + *(void **)&event->funcs->raw = trace_nop_print;
111598 if (event->funcs->hex == NULL)
111599 - event->funcs->hex = trace_nop_print;
111600 + *(void **)&event->funcs->hex = trace_nop_print;
111601 if (event->funcs->binary == NULL)
111602 - event->funcs->binary = trace_nop_print;
111603 + *(void **)&event->funcs->binary = trace_nop_print;
111604 + pax_close_kernel();
111605
111606 key = event->type & (EVENT_HASHSIZE - 1);
111607
111608 diff --git a/kernel/trace/trace_seq.c b/kernel/trace/trace_seq.c
111609 index e694c9f..6775a38 100644
111610 --- a/kernel/trace/trace_seq.c
111611 +++ b/kernel/trace/trace_seq.c
111612 @@ -337,7 +337,7 @@ int trace_seq_path(struct trace_seq *s, const struct path *path)
111613 return 0;
111614 }
111615
111616 - seq_buf_path(&s->seq, path, "\n");
111617 + seq_buf_path(&s->seq, path, "\n\\");
111618
111619 if (unlikely(seq_buf_has_overflowed(&s->seq))) {
111620 s->seq.len = save_len;
111621 diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c
111622 index 9696901..e0b7372 100644
111623 --- a/kernel/trace/trace_stack.c
111624 +++ b/kernel/trace/trace_stack.c
111625 @@ -88,7 +88,7 @@ check_stack(unsigned long ip, unsigned long *stack)
111626 return;
111627
111628 /* we do not handle interrupt stacks yet */
111629 - if (!object_is_on_stack(stack))
111630 + if (!object_starts_on_stack(stack))
111631 return;
111632
111633 local_irq_save(flags);
111634 diff --git a/kernel/trace/trace_syscalls.c b/kernel/trace/trace_syscalls.c
111635 index 7d567a4..407a28d 100644
111636 --- a/kernel/trace/trace_syscalls.c
111637 +++ b/kernel/trace/trace_syscalls.c
111638 @@ -590,6 +590,8 @@ static int perf_sysenter_enable(struct trace_event_call *call)
111639 int num;
111640
111641 num = ((struct syscall_metadata *)call->data)->syscall_nr;
111642 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
111643 + return -EINVAL;
111644
111645 mutex_lock(&syscall_trace_lock);
111646 if (!sys_perf_refcount_enter)
111647 @@ -610,6 +612,8 @@ static void perf_sysenter_disable(struct trace_event_call *call)
111648 int num;
111649
111650 num = ((struct syscall_metadata *)call->data)->syscall_nr;
111651 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
111652 + return;
111653
111654 mutex_lock(&syscall_trace_lock);
111655 sys_perf_refcount_enter--;
111656 @@ -662,6 +666,8 @@ static int perf_sysexit_enable(struct trace_event_call *call)
111657 int num;
111658
111659 num = ((struct syscall_metadata *)call->data)->syscall_nr;
111660 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
111661 + return -EINVAL;
111662
111663 mutex_lock(&syscall_trace_lock);
111664 if (!sys_perf_refcount_exit)
111665 @@ -682,6 +688,8 @@ static void perf_sysexit_disable(struct trace_event_call *call)
111666 int num;
111667
111668 num = ((struct syscall_metadata *)call->data)->syscall_nr;
111669 + if (WARN_ON_ONCE(num < 0 || num >= NR_syscalls))
111670 + return;
111671
111672 mutex_lock(&syscall_trace_lock);
111673 sys_perf_refcount_exit--;
111674 diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c
111675 index 4109f83..fe1f830 100644
111676 --- a/kernel/user_namespace.c
111677 +++ b/kernel/user_namespace.c
111678 @@ -83,6 +83,21 @@ int create_user_ns(struct cred *new)
111679 !kgid_has_mapping(parent_ns, group))
111680 return -EPERM;
111681
111682 +#ifdef CONFIG_GRKERNSEC
111683 + /*
111684 + * This doesn't really inspire confidence:
111685 + * http://marc.info/?l=linux-kernel&m=135543612731939&w=2
111686 + * http://marc.info/?l=linux-kernel&m=135545831607095&w=2
111687 + * Increases kernel attack surface in areas developers
111688 + * previously cared little about ("low importance due
111689 + * to requiring "root" capability")
111690 + * To be removed when this code receives *proper* review
111691 + */
111692 + if (!capable(CAP_SYS_ADMIN) || !capable(CAP_SETUID) ||
111693 + !capable(CAP_SETGID))
111694 + return -EPERM;
111695 +#endif
111696 +
111697 ns = kmem_cache_zalloc(user_ns_cachep, GFP_KERNEL);
111698 if (!ns)
111699 return -ENOMEM;
111700 @@ -980,7 +995,7 @@ static int userns_install(struct nsproxy *nsproxy, struct ns_common *ns)
111701 if (atomic_read(&current->mm->mm_users) > 1)
111702 return -EINVAL;
111703
111704 - if (current->fs->users != 1)
111705 + if (atomic_read(&current->fs->users) != 1)
111706 return -EINVAL;
111707
111708 if (!ns_capable(user_ns, CAP_SYS_ADMIN))
111709 diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c
111710 index c8eac43..4b5f08f 100644
111711 --- a/kernel/utsname_sysctl.c
111712 +++ b/kernel/utsname_sysctl.c
111713 @@ -47,7 +47,7 @@ static void put_uts(struct ctl_table *table, int write, void *which)
111714 static int proc_do_uts_string(struct ctl_table *table, int write,
111715 void __user *buffer, size_t *lenp, loff_t *ppos)
111716 {
111717 - struct ctl_table uts_table;
111718 + ctl_table_no_const uts_table;
111719 int r;
111720 memcpy(&uts_table, table, sizeof(uts_table));
111721 uts_table.data = get_uts(table, write);
111722 diff --git a/kernel/watchdog.c b/kernel/watchdog.c
111723 index a6ffa43..e48103b 100644
111724 --- a/kernel/watchdog.c
111725 +++ b/kernel/watchdog.c
111726 @@ -655,7 +655,7 @@ void watchdog_nmi_enable_all(void) {}
111727 void watchdog_nmi_disable_all(void) {}
111728 #endif /* CONFIG_HARDLOCKUP_DETECTOR */
111729
111730 -static struct smp_hotplug_thread watchdog_threads = {
111731 +static struct smp_hotplug_thread watchdog_threads __read_only = {
111732 .store = &softlockup_watchdog,
111733 .thread_should_run = watchdog_should_run,
111734 .thread_fn = watchdog,
111735 diff --git a/kernel/workqueue.c b/kernel/workqueue.c
111736 index 1de0f5fab..dbf1ec6 100644
111737 --- a/kernel/workqueue.c
111738 +++ b/kernel/workqueue.c
111739 @@ -4452,7 +4452,7 @@ static void rebind_workers(struct worker_pool *pool)
111740 WARN_ON_ONCE(!(worker_flags & WORKER_UNBOUND));
111741 worker_flags |= WORKER_REBOUND;
111742 worker_flags &= ~WORKER_UNBOUND;
111743 - ACCESS_ONCE(worker->flags) = worker_flags;
111744 + ACCESS_ONCE_RW(worker->flags) = worker_flags;
111745 }
111746
111747 spin_unlock_irq(&pool->lock);
111748 diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
111749 index e2894b2..23751b3 100644
111750 --- a/lib/Kconfig.debug
111751 +++ b/lib/Kconfig.debug
111752 @@ -242,6 +242,7 @@ config PAGE_OWNER
111753 bool "Track page owner"
111754 depends on DEBUG_KERNEL && STACKTRACE_SUPPORT
111755 select DEBUG_FS
111756 + depends on !GRKERNSEC_KMEM
111757 select STACKTRACE
111758 select PAGE_EXTENSION
111759 help
111760 @@ -256,6 +257,7 @@ config PAGE_OWNER
111761
111762 config DEBUG_FS
111763 bool "Debug Filesystem"
111764 + depends on !GRKERNSEC_KMEM
111765 help
111766 debugfs is a virtual file system that kernel developers use to put
111767 debugging files into. Enable this option to be able to read and
111768 @@ -488,6 +490,7 @@ config DEBUG_KMEMLEAK
111769 bool "Kernel memory leak detector"
111770 depends on DEBUG_KERNEL && HAVE_DEBUG_KMEMLEAK
111771 select DEBUG_FS
111772 + depends on !GRKERNSEC_KMEM
111773 select STACKTRACE if STACKTRACE_SUPPORT
111774 select KALLSYMS
111775 select CRC32
111776 @@ -941,7 +944,7 @@ config DEBUG_MUTEXES
111777
111778 config DEBUG_WW_MUTEX_SLOWPATH
111779 bool "Wait/wound mutex debugging: Slowpath testing"
111780 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
111781 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
111782 select DEBUG_LOCK_ALLOC
111783 select DEBUG_SPINLOCK
111784 select DEBUG_MUTEXES
111785 @@ -958,7 +961,7 @@ config DEBUG_WW_MUTEX_SLOWPATH
111786
111787 config DEBUG_LOCK_ALLOC
111788 bool "Lock debugging: detect incorrect freeing of live locks"
111789 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
111790 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
111791 select DEBUG_SPINLOCK
111792 select DEBUG_MUTEXES
111793 select LOCKDEP
111794 @@ -972,7 +975,7 @@ config DEBUG_LOCK_ALLOC
111795
111796 config PROVE_LOCKING
111797 bool "Lock debugging: prove locking correctness"
111798 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
111799 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
111800 select LOCKDEP
111801 select DEBUG_SPINLOCK
111802 select DEBUG_MUTEXES
111803 @@ -1023,7 +1026,7 @@ config LOCKDEP
111804
111805 config LOCK_STAT
111806 bool "Lock usage statistics"
111807 - depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT
111808 + depends on DEBUG_KERNEL && TRACE_IRQFLAGS_SUPPORT && STACKTRACE_SUPPORT && LOCKDEP_SUPPORT && !PAX_CONSTIFY_PLUGIN
111809 select LOCKDEP
111810 select DEBUG_SPINLOCK
111811 select DEBUG_MUTEXES
111812 @@ -1422,6 +1425,7 @@ config NOTIFIER_ERROR_INJECTION
111813 tristate "Notifier error injection"
111814 depends on DEBUG_KERNEL
111815 select DEBUG_FS
111816 + depends on !GRKERNSEC_KMEM
111817 help
111818 This option provides the ability to inject artificial errors to
111819 specified notifier chain callbacks. It is useful to test the error
111820 @@ -1534,6 +1538,7 @@ config FAIL_IO_TIMEOUT
111821 config FAIL_MMC_REQUEST
111822 bool "Fault-injection capability for MMC IO"
111823 select DEBUG_FS
111824 + depends on !GRKERNSEC_KMEM
111825 depends on FAULT_INJECTION && MMC
111826 help
111827 Provide fault-injection capability for MMC IO.
111828 @@ -1563,6 +1568,7 @@ config LATENCYTOP
111829 depends on DEBUG_KERNEL
111830 depends on STACKTRACE_SUPPORT
111831 depends on PROC_FS
111832 + depends on !GRKERNSEC_HIDESYM
111833 select FRAME_POINTER if !MIPS && !PPC && !S390 && !MICROBLAZE && !ARM_UNWIND && !ARC
111834 select KALLSYMS
111835 select KALLSYMS_ALL
111836 @@ -1579,7 +1585,7 @@ config ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
111837 config DEBUG_STRICT_USER_COPY_CHECKS
111838 bool "Strict user copy size checks"
111839 depends on ARCH_HAS_DEBUG_STRICT_USER_COPY_CHECKS
111840 - depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING
111841 + depends on DEBUG_KERNEL && !TRACE_BRANCH_PROFILING && !PAX_SIZE_OVERFLOW
111842 help
111843 Enabling this option turns a certain set of sanity checks for user
111844 copy operations into compile time failures.
111845 @@ -1710,7 +1716,7 @@ endmenu # runtime tests
111846
111847 config PROVIDE_OHCI1394_DMA_INIT
111848 bool "Remote debugging over FireWire early on boot"
111849 - depends on PCI && X86
111850 + depends on PCI && X86 && !GRKERNSEC
111851 help
111852 If you want to debug problems which hang or crash the kernel early
111853 on boot and the crashing machine has a FireWire port, you can use
111854 diff --git a/lib/Makefile b/lib/Makefile
111855 index 6897b52..466bda9 100644
111856 --- a/lib/Makefile
111857 +++ b/lib/Makefile
111858 @@ -62,7 +62,7 @@ obj-$(CONFIG_BTREE) += btree.o
111859 obj-$(CONFIG_INTERVAL_TREE) += interval_tree.o
111860 obj-$(CONFIG_ASSOCIATIVE_ARRAY) += assoc_array.o
111861 obj-$(CONFIG_DEBUG_PREEMPT) += smp_processor_id.o
111862 -obj-$(CONFIG_DEBUG_LIST) += list_debug.o
111863 +obj-y += list_debug.o
111864 obj-$(CONFIG_DEBUG_OBJECTS) += debugobjects.o
111865
111866 ifneq ($(CONFIG_HAVE_DEC_LOCK),y)
111867 diff --git a/lib/average.c b/lib/average.c
111868 index 114d1be..ab0350c 100644
111869 --- a/lib/average.c
111870 +++ b/lib/average.c
111871 @@ -55,7 +55,7 @@ struct ewma *ewma_add(struct ewma *avg, unsigned long val)
111872 {
111873 unsigned long internal = ACCESS_ONCE(avg->internal);
111874
111875 - ACCESS_ONCE(avg->internal) = internal ?
111876 + ACCESS_ONCE_RW(avg->internal) = internal ?
111877 (((internal << avg->weight) - internal) +
111878 (val << avg->factor)) >> avg->weight :
111879 (val << avg->factor);
111880 diff --git a/lib/bitmap.c b/lib/bitmap.c
111881 index a578a01..2198e50 100644
111882 --- a/lib/bitmap.c
111883 +++ b/lib/bitmap.c
111884 @@ -361,7 +361,7 @@ int __bitmap_parse(const char *buf, unsigned int buflen,
111885 {
111886 int c, old_c, totaldigits, ndigits, nchunks, nbits;
111887 u32 chunk;
111888 - const char __user __force *ubuf = (const char __user __force *)buf;
111889 + const char __user *ubuf = (const char __force_user *)buf;
111890
111891 bitmap_zero(maskp, nmaskbits);
111892
111893 @@ -446,7 +446,7 @@ int bitmap_parse_user(const char __user *ubuf,
111894 {
111895 if (!access_ok(VERIFY_READ, ubuf, ulen))
111896 return -EFAULT;
111897 - return __bitmap_parse((const char __force *)ubuf,
111898 + return __bitmap_parse((const char __force_kernel *)ubuf,
111899 ulen, 1, maskp, nmaskbits);
111900
111901 }
111902 @@ -506,7 +506,7 @@ static int __bitmap_parselist(const char *buf, unsigned int buflen,
111903 {
111904 unsigned a, b;
111905 int c, old_c, totaldigits;
111906 - const char __user __force *ubuf = (const char __user __force *)buf;
111907 + const char __user *ubuf = (const char __force_user *)buf;
111908 int at_start, in_range;
111909
111910 totaldigits = c = 0;
111911 @@ -602,7 +602,7 @@ int bitmap_parselist_user(const char __user *ubuf,
111912 {
111913 if (!access_ok(VERIFY_READ, ubuf, ulen))
111914 return -EFAULT;
111915 - return __bitmap_parselist((const char __force *)ubuf,
111916 + return __bitmap_parselist((const char __force_kernel *)ubuf,
111917 ulen, 1, maskp, nmaskbits);
111918 }
111919 EXPORT_SYMBOL(bitmap_parselist_user);
111920 diff --git a/lib/bug.c b/lib/bug.c
111921 index cff145f..724a0b8 100644
111922 --- a/lib/bug.c
111923 +++ b/lib/bug.c
111924 @@ -148,6 +148,8 @@ enum bug_trap_type report_bug(unsigned long bugaddr, struct pt_regs *regs)
111925 return BUG_TRAP_TYPE_NONE;
111926
111927 bug = find_bug(bugaddr);
111928 + if (!bug)
111929 + return BUG_TRAP_TYPE_NONE;
111930
111931 file = NULL;
111932 line = 0;
111933 diff --git a/lib/debugobjects.c b/lib/debugobjects.c
111934 index 547f7f9..a6d4ba0 100644
111935 --- a/lib/debugobjects.c
111936 +++ b/lib/debugobjects.c
111937 @@ -289,7 +289,7 @@ static void debug_object_is_on_stack(void *addr, int onstack)
111938 if (limit > 4)
111939 return;
111940
111941 - is_on_stack = object_is_on_stack(addr);
111942 + is_on_stack = object_starts_on_stack(addr);
111943 if (is_on_stack == onstack)
111944 return;
111945
111946 diff --git a/lib/decompress_bunzip2.c b/lib/decompress_bunzip2.c
111947 index 0234361..41a411c 100644
111948 --- a/lib/decompress_bunzip2.c
111949 +++ b/lib/decompress_bunzip2.c
111950 @@ -665,7 +665,8 @@ static int INIT start_bunzip(struct bunzip_data **bdp, void *inbuf, long len,
111951
111952 /* Fourth byte (ascii '1'-'9'), indicates block size in units of 100k of
111953 uncompressed data. Allocate intermediate buffer for block. */
111954 - bd->dbufSize = 100000*(i-BZh0);
111955 + i -= BZh0;
111956 + bd->dbufSize = 100000 * i;
111957
111958 bd->dbuf = large_malloc(bd->dbufSize * sizeof(int));
111959 if (!bd->dbuf)
111960 diff --git a/lib/decompress_unlzma.c b/lib/decompress_unlzma.c
111961 index decb646..8d6441a 100644
111962 --- a/lib/decompress_unlzma.c
111963 +++ b/lib/decompress_unlzma.c
111964 @@ -39,10 +39,10 @@
111965
111966 #define MIN(a, b) (((a) < (b)) ? (a) : (b))
111967
111968 -static long long INIT read_int(unsigned char *ptr, int size)
111969 +static unsigned long long INIT read_int(unsigned char *ptr, int size)
111970 {
111971 int i;
111972 - long long ret = 0;
111973 + unsigned long long ret = 0;
111974
111975 for (i = 0; i < size; i++)
111976 ret = (ret << 8) | ptr[size-i-1];
111977 diff --git a/lib/div64.c b/lib/div64.c
111978 index 19ea7ed..20cac21 100644
111979 --- a/lib/div64.c
111980 +++ b/lib/div64.c
111981 @@ -59,7 +59,7 @@ uint32_t __attribute__((weak)) __div64_32(uint64_t *n, uint32_t base)
111982 EXPORT_SYMBOL(__div64_32);
111983
111984 #ifndef div_s64_rem
111985 -s64 div_s64_rem(s64 dividend, s32 divisor, s32 *remainder)
111986 +s64 __intentional_overflow(-1) div_s64_rem(s64 dividend, s32 divisor, s32 *remainder)
111987 {
111988 u64 quotient;
111989
111990 @@ -130,7 +130,7 @@ EXPORT_SYMBOL(div64_u64_rem);
111991 * 'http://www.hackersdelight.org/hdcodetxt/divDouble.c.txt'
111992 */
111993 #ifndef div64_u64
111994 -u64 div64_u64(u64 dividend, u64 divisor)
111995 +u64 __intentional_overflow(-1) div64_u64(u64 dividend, u64 divisor)
111996 {
111997 u32 high = divisor >> 32;
111998 u64 quot;
111999 diff --git a/lib/dma-debug.c b/lib/dma-debug.c
112000 index dace71f..13da37b 100644
112001 --- a/lib/dma-debug.c
112002 +++ b/lib/dma-debug.c
112003 @@ -982,7 +982,7 @@ static int dma_debug_device_change(struct notifier_block *nb, unsigned long acti
112004
112005 void dma_debug_add_bus(struct bus_type *bus)
112006 {
112007 - struct notifier_block *nb;
112008 + notifier_block_no_const *nb;
112009
112010 if (dma_debug_disabled())
112011 return;
112012 @@ -1164,7 +1164,7 @@ static void check_unmap(struct dma_debug_entry *ref)
112013
112014 static void check_for_stack(struct device *dev, void *addr)
112015 {
112016 - if (object_is_on_stack(addr))
112017 + if (object_starts_on_stack(addr))
112018 err_printk(dev, NULL, "DMA-API: device driver maps memory from "
112019 "stack [addr=%p]\n", addr);
112020 }
112021 diff --git a/lib/inflate.c b/lib/inflate.c
112022 index 013a761..c28f3fc 100644
112023 --- a/lib/inflate.c
112024 +++ b/lib/inflate.c
112025 @@ -269,7 +269,7 @@ static void free(void *where)
112026 malloc_ptr = free_mem_ptr;
112027 }
112028 #else
112029 -#define malloc(a) kmalloc(a, GFP_KERNEL)
112030 +#define malloc(a) kmalloc((a), GFP_KERNEL)
112031 #define free(a) kfree(a)
112032 #endif
112033
112034 diff --git a/lib/ioremap.c b/lib/ioremap.c
112035 index 86c8911..f5bfc34 100644
112036 --- a/lib/ioremap.c
112037 +++ b/lib/ioremap.c
112038 @@ -75,7 +75,7 @@ static inline int ioremap_pmd_range(pud_t *pud, unsigned long addr,
112039 unsigned long next;
112040
112041 phys_addr -= addr;
112042 - pmd = pmd_alloc(&init_mm, pud, addr);
112043 + pmd = pmd_alloc_kernel(&init_mm, pud, addr);
112044 if (!pmd)
112045 return -ENOMEM;
112046 do {
112047 @@ -101,7 +101,7 @@ static inline int ioremap_pud_range(pgd_t *pgd, unsigned long addr,
112048 unsigned long next;
112049
112050 phys_addr -= addr;
112051 - pud = pud_alloc(&init_mm, pgd, addr);
112052 + pud = pud_alloc_kernel(&init_mm, pgd, addr);
112053 if (!pud)
112054 return -ENOMEM;
112055 do {
112056 diff --git a/lib/is_single_threaded.c b/lib/is_single_threaded.c
112057 index bd2bea9..6b3c95e 100644
112058 --- a/lib/is_single_threaded.c
112059 +++ b/lib/is_single_threaded.c
112060 @@ -22,6 +22,9 @@ bool current_is_single_threaded(void)
112061 struct task_struct *p, *t;
112062 bool ret;
112063
112064 + if (!mm)
112065 + return true;
112066 +
112067 if (atomic_read(&task->signal->live) != 1)
112068 return false;
112069
112070 diff --git a/lib/kobject.c b/lib/kobject.c
112071 index 3e3a5c3..4a12109 100644
112072 --- a/lib/kobject.c
112073 +++ b/lib/kobject.c
112074 @@ -935,9 +935,9 @@ EXPORT_SYMBOL_GPL(kset_create_and_add);
112075
112076
112077 static DEFINE_SPINLOCK(kobj_ns_type_lock);
112078 -static const struct kobj_ns_type_operations *kobj_ns_ops_tbl[KOBJ_NS_TYPES];
112079 +static const struct kobj_ns_type_operations *kobj_ns_ops_tbl[KOBJ_NS_TYPES] __read_only;
112080
112081 -int kobj_ns_type_register(const struct kobj_ns_type_operations *ops)
112082 +int __init kobj_ns_type_register(const struct kobj_ns_type_operations *ops)
112083 {
112084 enum kobj_ns_type type = ops->type;
112085 int error;
112086 diff --git a/lib/list_debug.c b/lib/list_debug.c
112087 index c24c2f7..f0296f4 100644
112088 --- a/lib/list_debug.c
112089 +++ b/lib/list_debug.c
112090 @@ -11,7 +11,9 @@
112091 #include <linux/bug.h>
112092 #include <linux/kernel.h>
112093 #include <linux/rculist.h>
112094 +#include <linux/mm.h>
112095
112096 +#ifdef CONFIG_DEBUG_LIST
112097 /*
112098 * Insert a new entry between two known consecutive entries.
112099 *
112100 @@ -19,21 +21,40 @@
112101 * the prev/next entries already!
112102 */
112103
112104 +static bool __list_add_debug(struct list_head *new,
112105 + struct list_head *prev,
112106 + struct list_head *next)
112107 +{
112108 + if (unlikely(next->prev != prev)) {
112109 + printk(KERN_ERR "list_add corruption. next->prev should be "
112110 + "prev (%p), but was %p. (next=%p).\n",
112111 + prev, next->prev, next);
112112 + BUG();
112113 + return false;
112114 + }
112115 + if (unlikely(prev->next != next)) {
112116 + printk(KERN_ERR "list_add corruption. prev->next should be "
112117 + "next (%p), but was %p. (prev=%p).\n",
112118 + next, prev->next, prev);
112119 + BUG();
112120 + return false;
112121 + }
112122 + if (unlikely(new == prev || new == next)) {
112123 + printk(KERN_ERR "list_add double add: new=%p, prev=%p, next=%p.\n",
112124 + new, prev, next);
112125 + BUG();
112126 + return false;
112127 + }
112128 + return true;
112129 +}
112130 +
112131 void __list_add(struct list_head *new,
112132 - struct list_head *prev,
112133 - struct list_head *next)
112134 + struct list_head *prev,
112135 + struct list_head *next)
112136 {
112137 - WARN(next->prev != prev,
112138 - "list_add corruption. next->prev should be "
112139 - "prev (%p), but was %p. (next=%p).\n",
112140 - prev, next->prev, next);
112141 - WARN(prev->next != next,
112142 - "list_add corruption. prev->next should be "
112143 - "next (%p), but was %p. (prev=%p).\n",
112144 - next, prev->next, prev);
112145 - WARN(new == prev || new == next,
112146 - "list_add double add: new=%p, prev=%p, next=%p.\n",
112147 - new, prev, next);
112148 + if (!__list_add_debug(new, prev, next))
112149 + return;
112150 +
112151 next->prev = new;
112152 new->next = next;
112153 new->prev = prev;
112154 @@ -41,28 +62,46 @@ void __list_add(struct list_head *new,
112155 }
112156 EXPORT_SYMBOL(__list_add);
112157
112158 -void __list_del_entry(struct list_head *entry)
112159 +static bool __list_del_entry_debug(struct list_head *entry)
112160 {
112161 struct list_head *prev, *next;
112162
112163 prev = entry->prev;
112164 next = entry->next;
112165
112166 - if (WARN(next == LIST_POISON1,
112167 - "list_del corruption, %p->next is LIST_POISON1 (%p)\n",
112168 - entry, LIST_POISON1) ||
112169 - WARN(prev == LIST_POISON2,
112170 - "list_del corruption, %p->prev is LIST_POISON2 (%p)\n",
112171 - entry, LIST_POISON2) ||
112172 - WARN(prev->next != entry,
112173 - "list_del corruption. prev->next should be %p, "
112174 - "but was %p\n", entry, prev->next) ||
112175 - WARN(next->prev != entry,
112176 - "list_del corruption. next->prev should be %p, "
112177 - "but was %p\n", entry, next->prev))
112178 + if (unlikely(next == LIST_POISON1)) {
112179 + printk(KERN_ERR "list_del corruption, %p->next is LIST_POISON1 (%p)\n",
112180 + entry, LIST_POISON1);
112181 + BUG();
112182 + return false;
112183 + }
112184 + if (unlikely(prev == LIST_POISON2)) {
112185 + printk(KERN_ERR "list_del corruption, %p->prev is LIST_POISON2 (%p)\n",
112186 + entry, LIST_POISON2);
112187 + BUG();
112188 + return false;
112189 + }
112190 + if (unlikely(entry->prev->next != entry)) {
112191 + printk(KERN_ERR "list_del corruption. prev->next should be %p, "
112192 + "but was %p\n", entry, prev->next);
112193 + BUG();
112194 + return false;
112195 + }
112196 + if (unlikely(entry->next->prev != entry)) {
112197 + printk(KERN_ERR "list_del corruption. next->prev should be %p, "
112198 + "but was %p\n", entry, next->prev);
112199 + BUG();
112200 + return false;
112201 + }
112202 + return true;
112203 +}
112204 +
112205 +void __list_del_entry(struct list_head *entry)
112206 +{
112207 + if (!__list_del_entry_debug(entry))
112208 return;
112209
112210 - __list_del(prev, next);
112211 + __list_del(entry->prev, entry->next);
112212 }
112213 EXPORT_SYMBOL(__list_del_entry);
112214
112215 @@ -86,15 +125,85 @@ EXPORT_SYMBOL(list_del);
112216 void __list_add_rcu(struct list_head *new,
112217 struct list_head *prev, struct list_head *next)
112218 {
112219 - WARN(next->prev != prev,
112220 - "list_add_rcu corruption. next->prev should be prev (%p), but was %p. (next=%p).\n",
112221 - prev, next->prev, next);
112222 - WARN(prev->next != next,
112223 - "list_add_rcu corruption. prev->next should be next (%p), but was %p. (prev=%p).\n",
112224 - next, prev->next, prev);
112225 + if (!__list_add_debug(new, prev, next))
112226 + return;
112227 +
112228 new->next = next;
112229 new->prev = prev;
112230 rcu_assign_pointer(list_next_rcu(prev), new);
112231 next->prev = new;
112232 }
112233 EXPORT_SYMBOL(__list_add_rcu);
112234 +#endif
112235 +
112236 +void __pax_list_add(struct list_head *new, struct list_head *prev, struct list_head *next)
112237 +{
112238 +#ifdef CONFIG_DEBUG_LIST
112239 + if (!__list_add_debug(new, prev, next))
112240 + return;
112241 +#endif
112242 +
112243 + pax_open_kernel();
112244 + next->prev = new;
112245 + new->next = next;
112246 + new->prev = prev;
112247 + prev->next = new;
112248 + pax_close_kernel();
112249 +}
112250 +EXPORT_SYMBOL(__pax_list_add);
112251 +
112252 +void pax_list_del(struct list_head *entry)
112253 +{
112254 +#ifdef CONFIG_DEBUG_LIST
112255 + if (!__list_del_entry_debug(entry))
112256 + return;
112257 +#endif
112258 +
112259 + pax_open_kernel();
112260 + __list_del(entry->prev, entry->next);
112261 + entry->next = LIST_POISON1;
112262 + entry->prev = LIST_POISON2;
112263 + pax_close_kernel();
112264 +}
112265 +EXPORT_SYMBOL(pax_list_del);
112266 +
112267 +void pax_list_del_init(struct list_head *entry)
112268 +{
112269 + pax_open_kernel();
112270 + __list_del(entry->prev, entry->next);
112271 + INIT_LIST_HEAD(entry);
112272 + pax_close_kernel();
112273 +}
112274 +EXPORT_SYMBOL(pax_list_del_init);
112275 +
112276 +void __pax_list_add_rcu(struct list_head *new,
112277 + struct list_head *prev, struct list_head *next)
112278 +{
112279 +#ifdef CONFIG_DEBUG_LIST
112280 + if (!__list_add_debug(new, prev, next))
112281 + return;
112282 +#endif
112283 +
112284 + pax_open_kernel();
112285 + new->next = next;
112286 + new->prev = prev;
112287 + rcu_assign_pointer(list_next_rcu(prev), new);
112288 + next->prev = new;
112289 + pax_close_kernel();
112290 +}
112291 +EXPORT_SYMBOL(__pax_list_add_rcu);
112292 +
112293 +void pax_list_del_rcu(struct list_head *entry)
112294 +{
112295 +#ifdef CONFIG_DEBUG_LIST
112296 + if (!__list_del_entry_debug(entry))
112297 + return;
112298 +#endif
112299 +
112300 + pax_open_kernel();
112301 + __list_del(entry->prev, entry->next);
112302 + entry->next = LIST_POISON1;
112303 + entry->prev = LIST_POISON2;
112304 + pax_close_kernel();
112305 +}
112306 +EXPORT_SYMBOL(pax_list_del_rcu);
112307 diff --git a/lib/lockref.c b/lib/lockref.c
112308 index 494994b..65caf94 100644
112309 --- a/lib/lockref.c
112310 +++ b/lib/lockref.c
112311 @@ -48,13 +48,13 @@
112312 void lockref_get(struct lockref *lockref)
112313 {
112314 CMPXCHG_LOOP(
112315 - new.count++;
112316 + __lockref_inc(&new);
112317 ,
112318 return;
112319 );
112320
112321 spin_lock(&lockref->lock);
112322 - lockref->count++;
112323 + __lockref_inc(lockref);
112324 spin_unlock(&lockref->lock);
112325 }
112326 EXPORT_SYMBOL(lockref_get);
112327 @@ -69,8 +69,8 @@ int lockref_get_not_zero(struct lockref *lockref)
112328 int retval;
112329
112330 CMPXCHG_LOOP(
112331 - new.count++;
112332 - if (old.count <= 0)
112333 + __lockref_inc(&new);
112334 + if (__lockref_read(&old) <= 0)
112335 return 0;
112336 ,
112337 return 1;
112338 @@ -78,8 +78,8 @@ int lockref_get_not_zero(struct lockref *lockref)
112339
112340 spin_lock(&lockref->lock);
112341 retval = 0;
112342 - if (lockref->count > 0) {
112343 - lockref->count++;
112344 + if (__lockref_read(lockref) > 0) {
112345 + __lockref_inc(lockref);
112346 retval = 1;
112347 }
112348 spin_unlock(&lockref->lock);
112349 @@ -96,17 +96,17 @@ EXPORT_SYMBOL(lockref_get_not_zero);
112350 int lockref_get_or_lock(struct lockref *lockref)
112351 {
112352 CMPXCHG_LOOP(
112353 - new.count++;
112354 - if (old.count <= 0)
112355 + __lockref_inc(&new);
112356 + if (__lockref_read(&old) <= 0)
112357 break;
112358 ,
112359 return 1;
112360 );
112361
112362 spin_lock(&lockref->lock);
112363 - if (lockref->count <= 0)
112364 + if (__lockref_read(lockref) <= 0)
112365 return 0;
112366 - lockref->count++;
112367 + __lockref_inc(lockref);
112368 spin_unlock(&lockref->lock);
112369 return 1;
112370 }
112371 @@ -122,11 +122,11 @@ EXPORT_SYMBOL(lockref_get_or_lock);
112372 int lockref_put_return(struct lockref *lockref)
112373 {
112374 CMPXCHG_LOOP(
112375 - new.count--;
112376 - if (old.count <= 0)
112377 + __lockref_dec(&new);
112378 + if (__lockref_read(&old) <= 0)
112379 return -1;
112380 ,
112381 - return new.count;
112382 + return __lockref_read(&new);
112383 );
112384 return -1;
112385 }
112386 @@ -140,17 +140,17 @@ EXPORT_SYMBOL(lockref_put_return);
112387 int lockref_put_or_lock(struct lockref *lockref)
112388 {
112389 CMPXCHG_LOOP(
112390 - new.count--;
112391 - if (old.count <= 1)
112392 + __lockref_dec(&new);
112393 + if (__lockref_read(&old) <= 1)
112394 break;
112395 ,
112396 return 1;
112397 );
112398
112399 spin_lock(&lockref->lock);
112400 - if (lockref->count <= 1)
112401 + if (__lockref_read(lockref) <= 1)
112402 return 0;
112403 - lockref->count--;
112404 + __lockref_dec(lockref);
112405 spin_unlock(&lockref->lock);
112406 return 1;
112407 }
112408 @@ -163,7 +163,7 @@ EXPORT_SYMBOL(lockref_put_or_lock);
112409 void lockref_mark_dead(struct lockref *lockref)
112410 {
112411 assert_spin_locked(&lockref->lock);
112412 - lockref->count = -128;
112413 + __lockref_set(lockref, -128);
112414 }
112415 EXPORT_SYMBOL(lockref_mark_dead);
112416
112417 @@ -177,8 +177,8 @@ int lockref_get_not_dead(struct lockref *lockref)
112418 int retval;
112419
112420 CMPXCHG_LOOP(
112421 - new.count++;
112422 - if (old.count < 0)
112423 + __lockref_inc(&new);
112424 + if (__lockref_read(&old) < 0)
112425 return 0;
112426 ,
112427 return 1;
112428 @@ -186,8 +186,8 @@ int lockref_get_not_dead(struct lockref *lockref)
112429
112430 spin_lock(&lockref->lock);
112431 retval = 0;
112432 - if (lockref->count >= 0) {
112433 - lockref->count++;
112434 + if (__lockref_read(lockref) >= 0) {
112435 + __lockref_inc(lockref);
112436 retval = 1;
112437 }
112438 spin_unlock(&lockref->lock);
112439 diff --git a/lib/nlattr.c b/lib/nlattr.c
112440 index f5907d2..36072be 100644
112441 --- a/lib/nlattr.c
112442 +++ b/lib/nlattr.c
112443 @@ -278,6 +278,8 @@ int nla_memcpy(void *dest, const struct nlattr *src, int count)
112444 {
112445 int minlen = min_t(int, count, nla_len(src));
112446
112447 + BUG_ON(minlen < 0);
112448 +
112449 memcpy(dest, nla_data(src), minlen);
112450 if (count > minlen)
112451 memset(dest + minlen, 0, count - minlen);
112452 diff --git a/lib/percpu-refcount.c b/lib/percpu-refcount.c
112453 index 6111bcb..02e816b 100644
112454 --- a/lib/percpu-refcount.c
112455 +++ b/lib/percpu-refcount.c
112456 @@ -31,7 +31,7 @@
112457 * atomic_long_t can't hit 0 before we've added up all the percpu refs.
112458 */
112459
112460 -#define PERCPU_COUNT_BIAS (1LU << (BITS_PER_LONG - 1))
112461 +#define PERCPU_COUNT_BIAS (1LU << (BITS_PER_LONG - 2))
112462
112463 static DECLARE_WAIT_QUEUE_HEAD(percpu_ref_switch_waitq);
112464
112465 diff --git a/lib/radix-tree.c b/lib/radix-tree.c
112466 index f9ebe1c..e985666 100644
112467 --- a/lib/radix-tree.c
112468 +++ b/lib/radix-tree.c
112469 @@ -68,7 +68,7 @@ struct radix_tree_preload {
112470 /* nodes->private_data points to next preallocated node */
112471 struct radix_tree_node *nodes;
112472 };
112473 -static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads) = { 0, };
112474 +static DEFINE_PER_CPU(struct radix_tree_preload, radix_tree_preloads);
112475
112476 static inline void *ptr_to_indirect(void *ptr)
112477 {
112478 diff --git a/lib/random32.c b/lib/random32.c
112479 index 0bee183..526f12f 100644
112480 --- a/lib/random32.c
112481 +++ b/lib/random32.c
112482 @@ -47,7 +47,7 @@ static inline void prandom_state_selftest(void)
112483 }
112484 #endif
112485
112486 -static DEFINE_PER_CPU(struct rnd_state, net_rand_state);
112487 +static DEFINE_PER_CPU(struct rnd_state, net_rand_state) __latent_entropy;
112488
112489 /**
112490 * prandom_u32_state - seeded pseudo-random number generator.
112491 diff --git a/lib/rbtree.c b/lib/rbtree.c
112492 index 1356454..70ce6c6 100644
112493 --- a/lib/rbtree.c
112494 +++ b/lib/rbtree.c
112495 @@ -412,7 +412,9 @@ static inline void dummy_copy(struct rb_node *old, struct rb_node *new) {}
112496 static inline void dummy_rotate(struct rb_node *old, struct rb_node *new) {}
112497
112498 static const struct rb_augment_callbacks dummy_callbacks = {
112499 - dummy_propagate, dummy_copy, dummy_rotate
112500 + .propagate = dummy_propagate,
112501 + .copy = dummy_copy,
112502 + .rotate = dummy_rotate
112503 };
112504
112505 void rb_insert_color(struct rb_node *node, struct rb_root *root)
112506 diff --git a/lib/show_mem.c b/lib/show_mem.c
112507 index adc98e18..0ce83c2 100644
112508 --- a/lib/show_mem.c
112509 +++ b/lib/show_mem.c
112510 @@ -49,6 +49,6 @@ void show_mem(unsigned int filter)
112511 quicklist_total_size());
112512 #endif
112513 #ifdef CONFIG_MEMORY_FAILURE
112514 - printk("%lu pages hwpoisoned\n", atomic_long_read(&num_poisoned_pages));
112515 + printk("%lu pages hwpoisoned\n", atomic_long_read_unchecked(&num_poisoned_pages));
112516 #endif
112517 }
112518 diff --git a/lib/strncpy_from_user.c b/lib/strncpy_from_user.c
112519 index e0af6ff..fcc9f15 100644
112520 --- a/lib/strncpy_from_user.c
112521 +++ b/lib/strncpy_from_user.c
112522 @@ -22,7 +22,7 @@
112523 */
112524 static inline long do_strncpy_from_user(char *dst, const char __user *src, long count, unsigned long max)
112525 {
112526 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
112527 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
112528 long res = 0;
112529
112530 /*
112531 diff --git a/lib/strnlen_user.c b/lib/strnlen_user.c
112532 index 3a5f2b3..102f1ff 100644
112533 --- a/lib/strnlen_user.c
112534 +++ b/lib/strnlen_user.c
112535 @@ -26,7 +26,7 @@
112536 */
112537 static inline long do_strnlen_user(const char __user *src, unsigned long count, unsigned long max)
112538 {
112539 - const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
112540 + static const struct word_at_a_time constants = WORD_AT_A_TIME_CONSTANTS;
112541 long align, res = 0;
112542 unsigned long c;
112543
112544 diff --git a/lib/swiotlb.c b/lib/swiotlb.c
112545 index 76f29ec..1a5316f 100644
112546 --- a/lib/swiotlb.c
112547 +++ b/lib/swiotlb.c
112548 @@ -690,7 +690,7 @@ EXPORT_SYMBOL(swiotlb_alloc_coherent);
112549
112550 void
112551 swiotlb_free_coherent(struct device *hwdev, size_t size, void *vaddr,
112552 - dma_addr_t dev_addr)
112553 + dma_addr_t dev_addr, struct dma_attrs *attrs)
112554 {
112555 phys_addr_t paddr = dma_to_phys(hwdev, dev_addr);
112556
112557 diff --git a/lib/usercopy.c b/lib/usercopy.c
112558 index 4f5b1dd..7cab418 100644
112559 --- a/lib/usercopy.c
112560 +++ b/lib/usercopy.c
112561 @@ -7,3 +7,9 @@ void copy_from_user_overflow(void)
112562 WARN(1, "Buffer overflow detected!\n");
112563 }
112564 EXPORT_SYMBOL(copy_from_user_overflow);
112565 +
112566 +void copy_to_user_overflow(void)
112567 +{
112568 + WARN(1, "Buffer overflow detected!\n");
112569 +}
112570 +EXPORT_SYMBOL(copy_to_user_overflow);
112571 diff --git a/lib/vsprintf.c b/lib/vsprintf.c
112572 index da39c60..ac91239 100644
112573 --- a/lib/vsprintf.c
112574 +++ b/lib/vsprintf.c
112575 @@ -16,6 +16,9 @@
112576 * - scnprintf and vscnprintf
112577 */
112578
112579 +#ifdef CONFIG_GRKERNSEC_HIDESYM
112580 +#define __INCLUDED_BY_HIDESYM 1
112581 +#endif
112582 #include <stdarg.h>
112583 #include <linux/clk-provider.h>
112584 #include <linux/module.h> /* for KSYM_SYMBOL_LEN */
112585 @@ -628,7 +631,7 @@ char *symbol_string(char *buf, char *end, void *ptr,
112586 #ifdef CONFIG_KALLSYMS
112587 if (*fmt == 'B')
112588 sprint_backtrace(sym, value);
112589 - else if (*fmt != 'f' && *fmt != 's')
112590 + else if (*fmt != 'f' && *fmt != 's' && *fmt != 'X')
112591 sprint_symbol(sym, value);
112592 else
112593 sprint_symbol_no_offset(sym, value);
112594 @@ -1360,7 +1363,11 @@ char *clock(char *buf, char *end, struct clk *clk, struct printf_spec spec,
112595 }
112596 }
112597
112598 -int kptr_restrict __read_mostly;
112599 +#ifdef CONFIG_GRKERNSEC_HIDESYM
112600 +int kptr_restrict __read_only = 2;
112601 +#else
112602 +int kptr_restrict __read_only;
112603 +#endif
112604
112605 /*
112606 * Show a '%p' thing. A kernel extension is that the '%p' is followed
112607 @@ -1371,8 +1378,10 @@ int kptr_restrict __read_mostly;
112608 *
112609 * - 'F' For symbolic function descriptor pointers with offset
112610 * - 'f' For simple symbolic function names without offset
112611 + * - 'X' For simple symbolic function names without offset approved for use with GRKERNSEC_HIDESYM
112612 * - 'S' For symbolic direct pointers with offset
112613 * - 's' For symbolic direct pointers without offset
112614 + * - 'A' For symbolic direct pointers with offset approved for use with GRKERNSEC_HIDESYM
112615 * - '[FfSs]R' as above with __builtin_extract_return_addr() translation
112616 * - 'B' For backtraced symbolic direct pointers with offset
112617 * - 'R' For decoded struct resource, e.g., [mem 0x0-0x1f 64bit pref]
112618 @@ -1460,12 +1469,12 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
112619
112620 if (!ptr && *fmt != 'K') {
112621 /*
112622 - * Print (null) with the same width as a pointer so it makes
112623 + * Print (nil) with the same width as a pointer so it makes
112624 * tabular output look nice.
112625 */
112626 if (spec.field_width == -1)
112627 spec.field_width = default_width;
112628 - return string(buf, end, "(null)", spec);
112629 + return string(buf, end, "(nil)", spec);
112630 }
112631
112632 switch (*fmt) {
112633 @@ -1475,6 +1484,14 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
112634 /* Fallthrough */
112635 case 'S':
112636 case 's':
112637 +#ifdef CONFIG_GRKERNSEC_HIDESYM
112638 + break;
112639 +#else
112640 + return symbol_string(buf, end, ptr, spec, fmt);
112641 +#endif
112642 + case 'X':
112643 + ptr = dereference_function_descriptor(ptr);
112644 + case 'A':
112645 case 'B':
112646 return symbol_string(buf, end, ptr, spec, fmt);
112647 case 'R':
112648 @@ -1539,6 +1556,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
112649 va_end(va);
112650 return buf;
112651 }
112652 + case 'P':
112653 + break;
112654 case 'K':
112655 /*
112656 * %pK cannot be used in IRQ context because its test
112657 @@ -1598,6 +1617,22 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
112658 ((const struct file *)ptr)->f_path.dentry,
112659 spec, fmt);
112660 }
112661 +
112662 +#ifdef CONFIG_GRKERNSEC_HIDESYM
112663 + /* 'P' = approved pointers to copy to userland,
112664 + as in the /proc/kallsyms case, as we make it display nothing
112665 + for non-root users, and the real contents for root users
112666 + 'X' = approved simple symbols
112667 + Also ignore 'K' pointers, since we force their NULLing for non-root users
112668 + above
112669 + */
112670 + if ((unsigned long)ptr > TASK_SIZE && *fmt != 'P' && *fmt != 'X' && *fmt != 'K' && is_usercopy_object(buf)) {
112671 + printk(KERN_ALERT "grsec: kernel infoleak detected! Please report this log to spender@grsecurity.net.\n");
112672 + dump_stack();
112673 + ptr = NULL;
112674 + }
112675 +#endif
112676 +
112677 spec.flags |= SMALL;
112678 if (spec.field_width == -1) {
112679 spec.field_width = default_width;
112680 @@ -2296,11 +2331,11 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
112681 typeof(type) value; \
112682 if (sizeof(type) == 8) { \
112683 args = PTR_ALIGN(args, sizeof(u32)); \
112684 - *(u32 *)&value = *(u32 *)args; \
112685 - *((u32 *)&value + 1) = *(u32 *)(args + 4); \
112686 + *(u32 *)&value = *(const u32 *)args; \
112687 + *((u32 *)&value + 1) = *(const u32 *)(args + 4); \
112688 } else { \
112689 args = PTR_ALIGN(args, sizeof(type)); \
112690 - value = *(typeof(type) *)args; \
112691 + value = *(const typeof(type) *)args; \
112692 } \
112693 args += sizeof(type); \
112694 value; \
112695 @@ -2363,7 +2398,7 @@ int bstr_printf(char *buf, size_t size, const char *fmt, const u32 *bin_buf)
112696 case FORMAT_TYPE_STR: {
112697 const char *str_arg = args;
112698 args += strlen(str_arg) + 1;
112699 - str = string(str, end, (char *)str_arg, spec);
112700 + str = string(str, end, str_arg, spec);
112701 break;
112702 }
112703
112704 diff --git a/localversion-grsec b/localversion-grsec
112705 new file mode 100644
112706 index 0000000..7cd6065
112707 --- /dev/null
112708 +++ b/localversion-grsec
112709 @@ -0,0 +1 @@
112710 +-grsec
112711 diff --git a/mm/Kconfig b/mm/Kconfig
112712 index e79de2b..fba3116 100644
112713 --- a/mm/Kconfig
112714 +++ b/mm/Kconfig
112715 @@ -342,10 +342,11 @@ config KSM
112716 root has set /sys/kernel/mm/ksm/run to 1 (if CONFIG_SYSFS is set).
112717
112718 config DEFAULT_MMAP_MIN_ADDR
112719 - int "Low address space to protect from user allocation"
112720 + int "Low address space to protect from user allocation"
112721 depends on MMU
112722 - default 4096
112723 - help
112724 + default 32768 if ALPHA || ARM || PARISC || SPARC32
112725 + default 65536
112726 + help
112727 This is the portion of low virtual memory which should be protected
112728 from userspace allocation. Keeping a user from writing to low pages
112729 can help reduce the impact of kernel NULL pointer bugs.
112730 @@ -377,8 +378,9 @@ config MEMORY_FAILURE
112731
112732 config HWPOISON_INJECT
112733 tristate "HWPoison pages injector"
112734 - depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS
112735 + depends on MEMORY_FAILURE && DEBUG_KERNEL && PROC_FS && !GRKERNSEC
112736 select PROC_PAGE_MONITOR
112737 + depends on !GRKERNSEC
112738
112739 config NOMMU_INITIAL_TRIM_EXCESS
112740 int "Turn on mmap() excess space trimming before booting"
112741 @@ -539,6 +541,7 @@ config MEM_SOFT_DIRTY
112742 bool "Track memory changes"
112743 depends on CHECKPOINT_RESTORE && HAVE_ARCH_SOFT_DIRTY && PROC_FS
112744 select PROC_PAGE_MONITOR
112745 + depends on !GRKERNSEC
112746 help
112747 This option enables memory changes tracking by introducing a
112748 soft-dirty bit on pte-s. This bit it set when someone writes
112749 @@ -613,6 +616,7 @@ config ZSMALLOC_STAT
112750 bool "Export zsmalloc statistics"
112751 depends on ZSMALLOC
112752 select DEBUG_FS
112753 + depends on !GRKERNSEC_KMEM
112754 help
112755 This option enables code in the zsmalloc to collect various
112756 statistics about whats happening in zsmalloc and exports that
112757 diff --git a/mm/Kconfig.debug b/mm/Kconfig.debug
112758 index 957d3da..1d34e20 100644
112759 --- a/mm/Kconfig.debug
112760 +++ b/mm/Kconfig.debug
112761 @@ -10,6 +10,7 @@ config PAGE_EXTENSION
112762 config DEBUG_PAGEALLOC
112763 bool "Debug page memory allocations"
112764 depends on DEBUG_KERNEL
112765 + depends on !PAX_MEMORY_SANITIZE
112766 depends on !HIBERNATION || ARCH_SUPPORTS_DEBUG_PAGEALLOC && !PPC && !SPARC
112767 depends on !KMEMCHECK
112768 select PAGE_EXTENSION
112769 diff --git a/mm/backing-dev.c b/mm/backing-dev.c
112770 index dc07d88..3929c29 100644
112771 --- a/mm/backing-dev.c
112772 +++ b/mm/backing-dev.c
112773 @@ -12,7 +12,7 @@
112774 #include <linux/device.h>
112775 #include <trace/events/writeback.h>
112776
112777 -static atomic_long_t bdi_seq = ATOMIC_LONG_INIT(0);
112778 +static atomic_long_unchecked_t bdi_seq = ATOMIC_LONG_INIT(0);
112779
112780 struct backing_dev_info noop_backing_dev_info = {
112781 .name = "noop",
112782 @@ -865,7 +865,7 @@ int bdi_setup_and_register(struct backing_dev_info *bdi, char *name)
112783 return err;
112784
112785 err = bdi_register(bdi, NULL, "%.28s-%ld", name,
112786 - atomic_long_inc_return(&bdi_seq));
112787 + atomic_long_inc_return_unchecked(&bdi_seq));
112788 if (err) {
112789 bdi_destroy(bdi);
112790 return err;
112791 diff --git a/mm/dmapool.c b/mm/dmapool.c
112792 index fd5fe43..39ea317 100644
112793 --- a/mm/dmapool.c
112794 +++ b/mm/dmapool.c
112795 @@ -386,7 +386,7 @@ static struct dma_page *pool_find_page(struct dma_pool *pool, dma_addr_t dma)
112796 list_for_each_entry(page, &pool->page_list, page_list) {
112797 if (dma < page->dma)
112798 continue;
112799 - if (dma < (page->dma + pool->allocation))
112800 + if ((dma - page->dma) < pool->allocation)
112801 return page;
112802 }
112803 return NULL;
112804 diff --git a/mm/filemap.c b/mm/filemap.c
112805 index 3fd68ee..3d8d6de 100644
112806 --- a/mm/filemap.c
112807 +++ b/mm/filemap.c
112808 @@ -2122,7 +2122,7 @@ int generic_file_mmap(struct file * file, struct vm_area_struct * vma)
112809 struct address_space *mapping = file->f_mapping;
112810
112811 if (!mapping->a_ops->readpage)
112812 - return -ENOEXEC;
112813 + return -ENODEV;
112814 file_accessed(file);
112815 vma->vm_ops = &generic_file_vm_ops;
112816 return 0;
112817 @@ -2303,6 +2303,7 @@ inline ssize_t generic_write_checks(struct kiocb *iocb, struct iov_iter *from)
112818 pos = iocb->ki_pos;
112819
112820 if (limit != RLIM_INFINITY) {
112821 + gr_learn_resource(current, RLIMIT_FSIZE, iocb->ki_pos, 0);
112822 if (iocb->ki_pos >= limit) {
112823 send_sig(SIGXFSZ, current, 0);
112824 return -EFBIG;
112825 diff --git a/mm/gup.c b/mm/gup.c
112826 index 6297f6b..7652403 100644
112827 --- a/mm/gup.c
112828 +++ b/mm/gup.c
112829 @@ -265,11 +265,6 @@ static int faultin_page(struct task_struct *tsk, struct vm_area_struct *vma,
112830 unsigned int fault_flags = 0;
112831 int ret;
112832
112833 - /* For mm_populate(), just skip the stack guard page. */
112834 - if ((*flags & FOLL_POPULATE) &&
112835 - (stack_guard_page_start(vma, address) ||
112836 - stack_guard_page_end(vma, address + PAGE_SIZE)))
112837 - return -ENOENT;
112838 if (*flags & FOLL_WRITE)
112839 fault_flags |= FAULT_FLAG_WRITE;
112840 if (nonblocking)
112841 @@ -435,14 +430,14 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
112842 if (!(gup_flags & FOLL_FORCE))
112843 gup_flags |= FOLL_NUMA;
112844
112845 - do {
112846 + while (nr_pages) {
112847 struct page *page;
112848 unsigned int foll_flags = gup_flags;
112849 unsigned int page_increm;
112850
112851 /* first iteration or cross vma bound */
112852 if (!vma || start >= vma->vm_end) {
112853 - vma = find_extend_vma(mm, start);
112854 + vma = find_vma(mm, start);
112855 if (!vma && in_gate_area(mm, start)) {
112856 int ret;
112857 ret = get_gate_page(mm, start & PAGE_MASK,
112858 @@ -454,7 +449,7 @@ long __get_user_pages(struct task_struct *tsk, struct mm_struct *mm,
112859 goto next_page;
112860 }
112861
112862 - if (!vma || check_vma_flags(vma, gup_flags))
112863 + if (!vma || start < vma->vm_start || check_vma_flags(vma, gup_flags))
112864 return i ? : -EFAULT;
112865 if (is_vm_hugetlb_page(vma)) {
112866 i = follow_hugetlb_page(mm, vma, pages, vmas,
112867 @@ -509,7 +504,7 @@ next_page:
112868 i += page_increm;
112869 start += page_increm * PAGE_SIZE;
112870 nr_pages -= page_increm;
112871 - } while (nr_pages);
112872 + }
112873 return i;
112874 }
112875 EXPORT_SYMBOL(__get_user_pages);
112876 diff --git a/mm/highmem.c b/mm/highmem.c
112877 index 123bcd3..c2c85db 100644
112878 --- a/mm/highmem.c
112879 +++ b/mm/highmem.c
112880 @@ -195,8 +195,9 @@ static void flush_all_zero_pkmaps(void)
112881 * So no dangers, even with speculative execution.
112882 */
112883 page = pte_page(pkmap_page_table[i]);
112884 + pax_open_kernel();
112885 pte_clear(&init_mm, PKMAP_ADDR(i), &pkmap_page_table[i]);
112886 -
112887 + pax_close_kernel();
112888 set_page_address(page, NULL);
112889 need_flush = 1;
112890 }
112891 @@ -259,8 +260,11 @@ start:
112892 }
112893 }
112894 vaddr = PKMAP_ADDR(last_pkmap_nr);
112895 +
112896 + pax_open_kernel();
112897 set_pte_at(&init_mm, vaddr,
112898 &(pkmap_page_table[last_pkmap_nr]), mk_pte(page, kmap_prot));
112899 + pax_close_kernel();
112900
112901 pkmap_count[last_pkmap_nr] = 1;
112902 set_page_address(page, (void *)vaddr);
112903 diff --git a/mm/hugetlb.c b/mm/hugetlb.c
112904 index 62c1ec5..ec431dc 100644
112905 --- a/mm/hugetlb.c
112906 +++ b/mm/hugetlb.c
112907 @@ -2442,6 +2442,7 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
112908 struct ctl_table *table, int write,
112909 void __user *buffer, size_t *length, loff_t *ppos)
112910 {
112911 + ctl_table_no_const t;
112912 struct hstate *h = &default_hstate;
112913 unsigned long tmp = h->max_huge_pages;
112914 int ret;
112915 @@ -2449,9 +2450,10 @@ static int hugetlb_sysctl_handler_common(bool obey_mempolicy,
112916 if (!hugepages_supported())
112917 return -ENOTSUPP;
112918
112919 - table->data = &tmp;
112920 - table->maxlen = sizeof(unsigned long);
112921 - ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
112922 + t = *table;
112923 + t.data = &tmp;
112924 + t.maxlen = sizeof(unsigned long);
112925 + ret = proc_doulongvec_minmax(&t, write, buffer, length, ppos);
112926 if (ret)
112927 goto out;
112928
112929 @@ -2486,6 +2488,7 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
112930 struct hstate *h = &default_hstate;
112931 unsigned long tmp;
112932 int ret;
112933 + ctl_table_no_const hugetlb_table;
112934
112935 if (!hugepages_supported())
112936 return -ENOTSUPP;
112937 @@ -2495,9 +2498,10 @@ int hugetlb_overcommit_handler(struct ctl_table *table, int write,
112938 if (write && hstate_is_gigantic(h))
112939 return -EINVAL;
112940
112941 - table->data = &tmp;
112942 - table->maxlen = sizeof(unsigned long);
112943 - ret = proc_doulongvec_minmax(table, write, buffer, length, ppos);
112944 + hugetlb_table = *table;
112945 + hugetlb_table.data = &tmp;
112946 + hugetlb_table.maxlen = sizeof(unsigned long);
112947 + ret = proc_doulongvec_minmax(&hugetlb_table, write, buffer, length, ppos);
112948 if (ret)
112949 goto out;
112950
112951 @@ -2995,6 +2999,27 @@ static void unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
112952 i_mmap_unlock_write(mapping);
112953 }
112954
112955 +#ifdef CONFIG_PAX_SEGMEXEC
112956 +static void pax_mirror_huge_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m)
112957 +{
112958 + struct mm_struct *mm = vma->vm_mm;
112959 + struct vm_area_struct *vma_m;
112960 + unsigned long address_m;
112961 + pte_t *ptep_m;
112962 +
112963 + vma_m = pax_find_mirror_vma(vma);
112964 + if (!vma_m)
112965 + return;
112966 +
112967 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
112968 + address_m = address + SEGMEXEC_TASK_SIZE;
112969 + ptep_m = huge_pte_offset(mm, address_m & HPAGE_MASK);
112970 + get_page(page_m);
112971 + hugepage_add_anon_rmap(page_m, vma_m, address_m);
112972 + set_huge_pte_at(mm, address_m, ptep_m, make_huge_pte(vma_m, page_m, 0));
112973 +}
112974 +#endif
112975 +
112976 /*
112977 * Hugetlb_cow() should be called with page lock of the original hugepage held.
112978 * Called with hugetlb_instantiation_mutex held and pte_page locked so we
112979 @@ -3108,6 +3133,11 @@ retry_avoidcopy:
112980 make_huge_pte(vma, new_page, 1));
112981 page_remove_rmap(old_page);
112982 hugepage_add_new_anon_rmap(new_page, vma, address);
112983 +
112984 +#ifdef CONFIG_PAX_SEGMEXEC
112985 + pax_mirror_huge_pte(vma, address, new_page);
112986 +#endif
112987 +
112988 /* Make the old page be freed below */
112989 new_page = old_page;
112990 }
112991 @@ -3269,6 +3299,10 @@ retry:
112992 && (vma->vm_flags & VM_SHARED)));
112993 set_huge_pte_at(mm, address, ptep, new_pte);
112994
112995 +#ifdef CONFIG_PAX_SEGMEXEC
112996 + pax_mirror_huge_pte(vma, address, page);
112997 +#endif
112998 +
112999 if ((flags & FAULT_FLAG_WRITE) && !(vma->vm_flags & VM_SHARED)) {
113000 /* Optimization, do the COW without a second fault */
113001 ret = hugetlb_cow(mm, vma, address, ptep, new_pte, page, ptl);
113002 @@ -3336,6 +3370,10 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
113003 struct address_space *mapping;
113004 int need_wait_lock = 0;
113005
113006 +#ifdef CONFIG_PAX_SEGMEXEC
113007 + struct vm_area_struct *vma_m;
113008 +#endif
113009 +
113010 address &= huge_page_mask(h);
113011
113012 ptep = huge_pte_offset(mm, address);
113013 @@ -3349,6 +3387,26 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
113014 VM_FAULT_SET_HINDEX(hstate_index(h));
113015 }
113016
113017 +#ifdef CONFIG_PAX_SEGMEXEC
113018 + vma_m = pax_find_mirror_vma(vma);
113019 + if (vma_m) {
113020 + unsigned long address_m;
113021 +
113022 + if (vma->vm_start > vma_m->vm_start) {
113023 + address_m = address;
113024 + address -= SEGMEXEC_TASK_SIZE;
113025 + vma = vma_m;
113026 + h = hstate_vma(vma);
113027 + } else
113028 + address_m = address + SEGMEXEC_TASK_SIZE;
113029 +
113030 + if (!huge_pte_alloc(mm, address_m, huge_page_size(h)))
113031 + return VM_FAULT_OOM;
113032 + address_m &= HPAGE_MASK;
113033 + unmap_hugepage_range(vma, address_m, address_m + HPAGE_SIZE, NULL);
113034 + }
113035 +#endif
113036 +
113037 ptep = huge_pte_alloc(mm, address, huge_page_size(h));
113038 if (!ptep)
113039 return VM_FAULT_OOM;
113040 diff --git a/mm/internal.h b/mm/internal.h
113041 index 36b23f1..673a6c7 100644
113042 --- a/mm/internal.h
113043 +++ b/mm/internal.h
113044 @@ -157,6 +157,7 @@ __find_buddy_index(unsigned long page_idx, unsigned int order)
113045 extern int __isolate_free_page(struct page *page, unsigned int order);
113046 extern void __free_pages_bootmem(struct page *page, unsigned long pfn,
113047 unsigned int order);
113048 +extern void free_compound_page(struct page *page);
113049 extern void prep_compound_page(struct page *page, unsigned long order);
113050 #ifdef CONFIG_MEMORY_FAILURE
113051 extern bool is_free_buddy_page(struct page *page);
113052 diff --git a/mm/kmemleak.c b/mm/kmemleak.c
113053 index cf79f11..254224e 100644
113054 --- a/mm/kmemleak.c
113055 +++ b/mm/kmemleak.c
113056 @@ -375,7 +375,7 @@ static void print_unreferenced(struct seq_file *seq,
113057
113058 for (i = 0; i < object->trace_len; i++) {
113059 void *ptr = (void *)object->trace[i];
113060 - seq_printf(seq, " [<%p>] %pS\n", ptr, ptr);
113061 + seq_printf(seq, " [<%pP>] %pA\n", ptr, ptr);
113062 }
113063 }
113064
113065 @@ -1966,7 +1966,7 @@ static int __init kmemleak_late_init(void)
113066 return -ENOMEM;
113067 }
113068
113069 - dentry = debugfs_create_file("kmemleak", S_IRUGO, NULL, NULL,
113070 + dentry = debugfs_create_file("kmemleak", S_IRUSR, NULL, NULL,
113071 &kmemleak_fops);
113072 if (!dentry)
113073 pr_warning("Failed to create the debugfs kmemleak file\n");
113074 diff --git a/mm/maccess.c b/mm/maccess.c
113075 index d53adf9..03a24bf 100644
113076 --- a/mm/maccess.c
113077 +++ b/mm/maccess.c
113078 @@ -26,7 +26,7 @@ long __probe_kernel_read(void *dst, const void *src, size_t size)
113079 set_fs(KERNEL_DS);
113080 pagefault_disable();
113081 ret = __copy_from_user_inatomic(dst,
113082 - (__force const void __user *)src, size);
113083 + (const void __force_user *)src, size);
113084 pagefault_enable();
113085 set_fs(old_fs);
113086
113087 @@ -53,7 +53,7 @@ long __probe_kernel_write(void *dst, const void *src, size_t size)
113088
113089 set_fs(KERNEL_DS);
113090 pagefault_disable();
113091 - ret = __copy_to_user_inatomic((__force void __user *)dst, src, size);
113092 + ret = __copy_to_user_inatomic((void __force_user *)dst, src, size);
113093 pagefault_enable();
113094 set_fs(old_fs);
113095
113096 diff --git a/mm/madvise.c b/mm/madvise.c
113097 index 64bb8a2..68e4be5 100644
113098 --- a/mm/madvise.c
113099 +++ b/mm/madvise.c
113100 @@ -52,6 +52,10 @@ static long madvise_behavior(struct vm_area_struct *vma,
113101 pgoff_t pgoff;
113102 unsigned long new_flags = vma->vm_flags;
113103
113104 +#ifdef CONFIG_PAX_SEGMEXEC
113105 + struct vm_area_struct *vma_m;
113106 +#endif
113107 +
113108 switch (behavior) {
113109 case MADV_NORMAL:
113110 new_flags = new_flags & ~VM_RAND_READ & ~VM_SEQ_READ;
113111 @@ -127,6 +131,13 @@ success:
113112 /*
113113 * vm_flags is protected by the mmap_sem held in write mode.
113114 */
113115 +
113116 +#ifdef CONFIG_PAX_SEGMEXEC
113117 + vma_m = pax_find_mirror_vma(vma);
113118 + if (vma_m)
113119 + vma_m->vm_flags = new_flags & ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT);
113120 +#endif
113121 +
113122 vma->vm_flags = new_flags;
113123
113124 out:
113125 @@ -278,11 +289,27 @@ static long madvise_dontneed(struct vm_area_struct *vma,
113126 struct vm_area_struct **prev,
113127 unsigned long start, unsigned long end)
113128 {
113129 +
113130 +#ifdef CONFIG_PAX_SEGMEXEC
113131 + struct vm_area_struct *vma_m;
113132 +#endif
113133 +
113134 *prev = vma;
113135 if (vma->vm_flags & (VM_LOCKED|VM_HUGETLB|VM_PFNMAP))
113136 return -EINVAL;
113137
113138 zap_page_range(vma, start, end - start, NULL);
113139 +
113140 +#ifdef CONFIG_PAX_SEGMEXEC
113141 + vma_m = pax_find_mirror_vma(vma);
113142 + if (vma_m) {
113143 + if (vma_m->vm_flags & (VM_LOCKED|VM_HUGETLB|VM_PFNMAP))
113144 + return -EINVAL;
113145 +
113146 + zap_page_range(vma_m, start + SEGMEXEC_TASK_SIZE, end - start, NULL);
113147 + }
113148 +#endif
113149 +
113150 return 0;
113151 }
113152
113153 @@ -485,6 +512,16 @@ SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior)
113154 if (end < start)
113155 return error;
113156
113157 +#ifdef CONFIG_PAX_SEGMEXEC
113158 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
113159 + if (end > SEGMEXEC_TASK_SIZE)
113160 + return error;
113161 + } else
113162 +#endif
113163 +
113164 + if (end > TASK_SIZE)
113165 + return error;
113166 +
113167 error = 0;
113168 if (end == start)
113169 return error;
113170 diff --git a/mm/memory-failure.c b/mm/memory-failure.c
113171 index 1f4446a..47abb4e 100644
113172 --- a/mm/memory-failure.c
113173 +++ b/mm/memory-failure.c
113174 @@ -63,7 +63,7 @@ int sysctl_memory_failure_early_kill __read_mostly = 0;
113175
113176 int sysctl_memory_failure_recovery __read_mostly = 1;
113177
113178 -atomic_long_t num_poisoned_pages __read_mostly = ATOMIC_LONG_INIT(0);
113179 +atomic_long_unchecked_t num_poisoned_pages __read_mostly = ATOMIC_LONG_INIT(0);
113180
113181 #if defined(CONFIG_HWPOISON_INJECT) || defined(CONFIG_HWPOISON_INJECT_MODULE)
113182
113183 @@ -200,7 +200,7 @@ static int kill_proc(struct task_struct *t, unsigned long addr, int trapno,
113184 pfn, t->comm, t->pid);
113185 si.si_signo = SIGBUS;
113186 si.si_errno = 0;
113187 - si.si_addr = (void *)addr;
113188 + si.si_addr = (void __user *)addr;
113189 #ifdef __ARCH_SI_TRAPNO
113190 si.si_trapno = trapno;
113191 #endif
113192 @@ -797,7 +797,7 @@ static struct page_state {
113193 unsigned long res;
113194 enum mf_action_page_type type;
113195 int (*action)(struct page *p, unsigned long pfn);
113196 -} error_states[] = {
113197 +} __do_const error_states[] = {
113198 { reserved, reserved, MF_MSG_KERNEL, me_kernel },
113199 /*
113200 * free pages are specially detected outside this table:
113201 @@ -1100,7 +1100,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
113202 nr_pages = 1 << compound_order(hpage);
113203 else /* normal page or thp */
113204 nr_pages = 1;
113205 - atomic_long_add(nr_pages, &num_poisoned_pages);
113206 + atomic_long_add_unchecked(nr_pages, &num_poisoned_pages);
113207
113208 /*
113209 * We need/can do nothing about count=0 pages.
113210 @@ -1128,7 +1128,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
113211 if (PageHWPoison(hpage)) {
113212 if ((hwpoison_filter(p) && TestClearPageHWPoison(p))
113213 || (p != hpage && TestSetPageHWPoison(hpage))) {
113214 - atomic_long_sub(nr_pages, &num_poisoned_pages);
113215 + atomic_long_sub_unchecked(nr_pages, &num_poisoned_pages);
113216 unlock_page(hpage);
113217 return 0;
113218 }
113219 @@ -1152,7 +1152,7 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
113220 else
113221 pr_err("MCE: %#lx: thp split failed\n", pfn);
113222 if (TestClearPageHWPoison(p))
113223 - atomic_long_sub(nr_pages, &num_poisoned_pages);
113224 + atomic_long_sub_unchecked(nr_pages, &num_poisoned_pages);
113225 put_page(p);
113226 if (p != hpage)
113227 put_page(hpage);
113228 @@ -1214,14 +1214,14 @@ int memory_failure(unsigned long pfn, int trapno, int flags)
113229 */
113230 if (!PageHWPoison(p)) {
113231 printk(KERN_ERR "MCE %#lx: just unpoisoned\n", pfn);
113232 - atomic_long_sub(nr_pages, &num_poisoned_pages);
113233 + atomic_long_sub_unchecked(nr_pages, &num_poisoned_pages);
113234 unlock_page(hpage);
113235 put_page(hpage);
113236 return 0;
113237 }
113238 if (hwpoison_filter(p)) {
113239 if (TestClearPageHWPoison(p))
113240 - atomic_long_sub(nr_pages, &num_poisoned_pages);
113241 + atomic_long_sub_unchecked(nr_pages, &num_poisoned_pages);
113242 unlock_page(hpage);
113243 put_page(hpage);
113244 return 0;
113245 @@ -1450,7 +1450,7 @@ int unpoison_memory(unsigned long pfn)
113246 return 0;
113247 }
113248 if (TestClearPageHWPoison(p))
113249 - atomic_long_dec(&num_poisoned_pages);
113250 + atomic_long_dec_unchecked(&num_poisoned_pages);
113251 pr_info("MCE: Software-unpoisoned free page %#lx\n", pfn);
113252 return 0;
113253 }
113254 @@ -1464,7 +1464,7 @@ int unpoison_memory(unsigned long pfn)
113255 */
113256 if (TestClearPageHWPoison(page)) {
113257 pr_info("MCE: Software-unpoisoned page %#lx\n", pfn);
113258 - atomic_long_sub(nr_pages, &num_poisoned_pages);
113259 + atomic_long_sub_unchecked(nr_pages, &num_poisoned_pages);
113260 freeit = 1;
113261 if (PageHuge(page))
113262 clear_page_hwpoison_huge_page(page);
113263 @@ -1600,11 +1600,11 @@ static int soft_offline_huge_page(struct page *page, int flags)
113264 if (PageHuge(page)) {
113265 set_page_hwpoison_huge_page(hpage);
113266 dequeue_hwpoisoned_huge_page(hpage);
113267 - atomic_long_add(1 << compound_order(hpage),
113268 + atomic_long_add_unchecked(1 << compound_order(hpage),
113269 &num_poisoned_pages);
113270 } else {
113271 SetPageHWPoison(page);
113272 - atomic_long_inc(&num_poisoned_pages);
113273 + atomic_long_inc_unchecked(&num_poisoned_pages);
113274 }
113275 }
113276 return ret;
113277 @@ -1643,7 +1643,7 @@ static int __soft_offline_page(struct page *page, int flags)
113278 put_page(page);
113279 pr_info("soft_offline: %#lx: invalidated\n", pfn);
113280 SetPageHWPoison(page);
113281 - atomic_long_inc(&num_poisoned_pages);
113282 + atomic_long_inc_unchecked(&num_poisoned_pages);
113283 return 0;
113284 }
113285
113286 @@ -1664,7 +1664,7 @@ static int __soft_offline_page(struct page *page, int flags)
113287 page_is_file_cache(page));
113288 list_add(&page->lru, &pagelist);
113289 if (!TestSetPageHWPoison(page))
113290 - atomic_long_inc(&num_poisoned_pages);
113291 + atomic_long_inc_unchecked(&num_poisoned_pages);
113292 ret = migrate_pages(&pagelist, new_page, NULL, MPOL_MF_MOVE_ALL,
113293 MIGRATE_SYNC, MR_MEMORY_FAILURE);
113294 if (ret) {
113295 @@ -1680,7 +1680,7 @@ static int __soft_offline_page(struct page *page, int flags)
113296 if (ret > 0)
113297 ret = -EIO;
113298 if (TestClearPageHWPoison(page))
113299 - atomic_long_dec(&num_poisoned_pages);
113300 + atomic_long_dec_unchecked(&num_poisoned_pages);
113301 }
113302 } else {
113303 pr_info("soft offline: %#lx: isolation failed: %d, page count %d, type %lx\n",
113304 @@ -1742,11 +1742,11 @@ int soft_offline_page(struct page *page, int flags)
113305 if (PageHuge(page)) {
113306 set_page_hwpoison_huge_page(hpage);
113307 if (!dequeue_hwpoisoned_huge_page(hpage))
113308 - atomic_long_add(1 << compound_order(hpage),
113309 + atomic_long_add_unchecked(1 << compound_order(hpage),
113310 &num_poisoned_pages);
113311 } else {
113312 if (!TestSetPageHWPoison(page))
113313 - atomic_long_inc(&num_poisoned_pages);
113314 + atomic_long_inc_unchecked(&num_poisoned_pages);
113315 }
113316 }
113317 return ret;
113318 diff --git a/mm/memory.c b/mm/memory.c
113319 index 388dcf9..82aa351 100644
113320 --- a/mm/memory.c
113321 +++ b/mm/memory.c
113322 @@ -414,6 +414,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
113323 free_pte_range(tlb, pmd, addr);
113324 } while (pmd++, addr = next, addr != end);
113325
113326 +#if !defined(CONFIG_X86_32) || !defined(CONFIG_PAX_PER_CPU_PGD)
113327 start &= PUD_MASK;
113328 if (start < floor)
113329 return;
113330 @@ -429,6 +430,7 @@ static inline void free_pmd_range(struct mmu_gather *tlb, pud_t *pud,
113331 pud_clear(pud);
113332 pmd_free_tlb(tlb, pmd, start);
113333 mm_dec_nr_pmds(tlb->mm);
113334 +#endif
113335 }
113336
113337 static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
113338 @@ -448,6 +450,7 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
113339 free_pmd_range(tlb, pud, addr, next, floor, ceiling);
113340 } while (pud++, addr = next, addr != end);
113341
113342 +#if !defined(CONFIG_X86_64) || !defined(CONFIG_PAX_PER_CPU_PGD)
113343 start &= PGDIR_MASK;
113344 if (start < floor)
113345 return;
113346 @@ -462,6 +465,8 @@ static inline void free_pud_range(struct mmu_gather *tlb, pgd_t *pgd,
113347 pud = pud_offset(pgd, start);
113348 pgd_clear(pgd);
113349 pud_free_tlb(tlb, pud, start);
113350 +#endif
113351 +
113352 }
113353
113354 /*
113355 @@ -690,7 +695,7 @@ static void print_bad_pte(struct vm_area_struct *vma, unsigned long addr,
113356 /*
113357 * Choose text because data symbols depend on CONFIG_KALLSYMS_ALL=y
113358 */
113359 - pr_alert("file:%pD fault:%pf mmap:%pf readpage:%pf\n",
113360 + pr_alert("file:%pD fault:%pX mmap:%pX readpage:%pX\n",
113361 vma->vm_file,
113362 vma->vm_ops ? vma->vm_ops->fault : NULL,
113363 vma->vm_file ? vma->vm_file->f_op->mmap : NULL,
113364 @@ -1463,6 +1468,10 @@ static int insert_page(struct vm_area_struct *vma, unsigned long addr,
113365 page_add_file_rmap(page);
113366 set_pte_at(mm, addr, pte, mk_pte(page, prot));
113367
113368 +#ifdef CONFIG_PAX_SEGMEXEC
113369 + pax_mirror_file_pte(vma, addr, page, ptl);
113370 +#endif
113371 +
113372 retval = 0;
113373 pte_unmap_unlock(pte, ptl);
113374 return retval;
113375 @@ -1507,9 +1516,21 @@ int vm_insert_page(struct vm_area_struct *vma, unsigned long addr,
113376 if (!page_count(page))
113377 return -EINVAL;
113378 if (!(vma->vm_flags & VM_MIXEDMAP)) {
113379 +
113380 +#ifdef CONFIG_PAX_SEGMEXEC
113381 + struct vm_area_struct *vma_m;
113382 +#endif
113383 +
113384 BUG_ON(down_read_trylock(&vma->vm_mm->mmap_sem));
113385 BUG_ON(vma->vm_flags & VM_PFNMAP);
113386 vma->vm_flags |= VM_MIXEDMAP;
113387 +
113388 +#ifdef CONFIG_PAX_SEGMEXEC
113389 + vma_m = pax_find_mirror_vma(vma);
113390 + if (vma_m)
113391 + vma_m->vm_flags |= VM_MIXEDMAP;
113392 +#endif
113393 +
113394 }
113395 return insert_page(vma, addr, page, vma->vm_page_prot);
113396 }
113397 @@ -1592,6 +1613,7 @@ int vm_insert_mixed(struct vm_area_struct *vma, unsigned long addr,
113398 unsigned long pfn)
113399 {
113400 BUG_ON(!(vma->vm_flags & VM_MIXEDMAP));
113401 + BUG_ON(vma->vm_mirror);
113402
113403 if (addr < vma->vm_start || addr >= vma->vm_end)
113404 return -EFAULT;
113405 @@ -1839,7 +1861,9 @@ static int apply_to_pmd_range(struct mm_struct *mm, pud_t *pud,
113406
113407 BUG_ON(pud_huge(*pud));
113408
113409 - pmd = pmd_alloc(mm, pud, addr);
113410 + pmd = (mm == &init_mm) ?
113411 + pmd_alloc_kernel(mm, pud, addr) :
113412 + pmd_alloc(mm, pud, addr);
113413 if (!pmd)
113414 return -ENOMEM;
113415 do {
113416 @@ -1859,7 +1883,9 @@ static int apply_to_pud_range(struct mm_struct *mm, pgd_t *pgd,
113417 unsigned long next;
113418 int err;
113419
113420 - pud = pud_alloc(mm, pgd, addr);
113421 + pud = (mm == &init_mm) ?
113422 + pud_alloc_kernel(mm, pgd, addr) :
113423 + pud_alloc(mm, pgd, addr);
113424 if (!pud)
113425 return -ENOMEM;
113426 do {
113427 @@ -2040,6 +2066,196 @@ static inline int wp_page_reuse(struct mm_struct *mm,
113428 return VM_FAULT_WRITE;
113429 }
113430
113431 +#ifdef CONFIG_PAX_SEGMEXEC
113432 +static void pax_unmap_mirror_pte(struct vm_area_struct *vma, unsigned long address, pmd_t *pmd)
113433 +{
113434 + struct mm_struct *mm = vma->vm_mm;
113435 + spinlock_t *ptl;
113436 + pte_t *pte, entry;
113437 +
113438 + pte = pte_offset_map_lock(mm, pmd, address, &ptl);
113439 + entry = *pte;
113440 + if (pte_none(entry))
113441 + ;
113442 + else if (!pte_present(entry)) {
113443 + swp_entry_t swapentry;
113444 +
113445 + swapentry = pte_to_swp_entry(entry);
113446 + if (!non_swap_entry(swapentry))
113447 + dec_mm_counter_fast(mm, MM_SWAPENTS);
113448 + else if (is_migration_entry(swapentry)) {
113449 + if (PageAnon(migration_entry_to_page(swapentry)))
113450 + dec_mm_counter_fast(mm, MM_ANONPAGES);
113451 + else
113452 + dec_mm_counter_fast(mm, MM_FILEPAGES);
113453 + }
113454 + free_swap_and_cache(swapentry);
113455 + pte_clear_not_present_full(mm, address, pte, 0);
113456 + } else {
113457 + struct page *page;
113458 +
113459 + flush_cache_page(vma, address, pte_pfn(entry));
113460 + entry = ptep_clear_flush(vma, address, pte);
113461 + BUG_ON(pte_dirty(entry));
113462 + page = vm_normal_page(vma, address, entry);
113463 + if (page) {
113464 + update_hiwater_rss(mm);
113465 + if (PageAnon(page))
113466 + dec_mm_counter_fast(mm, MM_ANONPAGES);
113467 + else
113468 + dec_mm_counter_fast(mm, MM_FILEPAGES);
113469 + page_remove_rmap(page);
113470 + page_cache_release(page);
113471 + }
113472 + }
113473 + pte_unmap_unlock(pte, ptl);
113474 +}
113475 +
113476 +/* PaX: if vma is mirrored, synchronize the mirror's PTE
113477 + *
113478 + * the ptl of the lower mapped page is held on entry and is not released on exit
113479 + * or inside to ensure atomic changes to the PTE states (swapout, mremap, munmap, etc)
113480 + */
113481 +static void pax_mirror_anon_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl)
113482 +{
113483 + struct mm_struct *mm = vma->vm_mm;
113484 + unsigned long address_m;
113485 + spinlock_t *ptl_m;
113486 + struct vm_area_struct *vma_m;
113487 + pmd_t *pmd_m;
113488 + pte_t *pte_m, entry_m;
113489 +
113490 + BUG_ON(!page_m || !PageAnon(page_m));
113491 +
113492 + vma_m = pax_find_mirror_vma(vma);
113493 + if (!vma_m)
113494 + return;
113495 +
113496 + BUG_ON(!PageLocked(page_m));
113497 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
113498 + address_m = address + SEGMEXEC_TASK_SIZE;
113499 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
113500 + pte_m = pte_offset_map(pmd_m, address_m);
113501 + ptl_m = pte_lockptr(mm, pmd_m);
113502 + if (ptl != ptl_m) {
113503 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
113504 + if (!pte_none(*pte_m))
113505 + goto out;
113506 + }
113507 +
113508 + entry_m = pfn_pte(page_to_pfn(page_m), vma_m->vm_page_prot);
113509 + page_cache_get(page_m);
113510 + page_add_anon_rmap(page_m, vma_m, address_m);
113511 + inc_mm_counter_fast(mm, MM_ANONPAGES);
113512 + set_pte_at(mm, address_m, pte_m, entry_m);
113513 + update_mmu_cache(vma_m, address_m, pte_m);
113514 +out:
113515 + if (ptl != ptl_m)
113516 + spin_unlock(ptl_m);
113517 + pte_unmap(pte_m);
113518 + unlock_page(page_m);
113519 +}
113520 +
113521 +void pax_mirror_file_pte(struct vm_area_struct *vma, unsigned long address, struct page *page_m, spinlock_t *ptl)
113522 +{
113523 + struct mm_struct *mm = vma->vm_mm;
113524 + unsigned long address_m;
113525 + spinlock_t *ptl_m;
113526 + struct vm_area_struct *vma_m;
113527 + pmd_t *pmd_m;
113528 + pte_t *pte_m, entry_m;
113529 +
113530 + BUG_ON(!page_m || PageAnon(page_m));
113531 +
113532 + vma_m = pax_find_mirror_vma(vma);
113533 + if (!vma_m)
113534 + return;
113535 +
113536 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
113537 + address_m = address + SEGMEXEC_TASK_SIZE;
113538 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
113539 + pte_m = pte_offset_map(pmd_m, address_m);
113540 + ptl_m = pte_lockptr(mm, pmd_m);
113541 + if (ptl != ptl_m) {
113542 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
113543 + if (!pte_none(*pte_m))
113544 + goto out;
113545 + }
113546 +
113547 + entry_m = pfn_pte(page_to_pfn(page_m), vma_m->vm_page_prot);
113548 + page_cache_get(page_m);
113549 + page_add_file_rmap(page_m);
113550 + inc_mm_counter_fast(mm, MM_FILEPAGES);
113551 + set_pte_at(mm, address_m, pte_m, entry_m);
113552 + update_mmu_cache(vma_m, address_m, pte_m);
113553 +out:
113554 + if (ptl != ptl_m)
113555 + spin_unlock(ptl_m);
113556 + pte_unmap(pte_m);
113557 +}
113558 +
113559 +static void pax_mirror_pfn_pte(struct vm_area_struct *vma, unsigned long address, unsigned long pfn_m, spinlock_t *ptl)
113560 +{
113561 + struct mm_struct *mm = vma->vm_mm;
113562 + unsigned long address_m;
113563 + spinlock_t *ptl_m;
113564 + struct vm_area_struct *vma_m;
113565 + pmd_t *pmd_m;
113566 + pte_t *pte_m, entry_m;
113567 +
113568 + vma_m = pax_find_mirror_vma(vma);
113569 + if (!vma_m)
113570 + return;
113571 +
113572 + BUG_ON(address >= SEGMEXEC_TASK_SIZE);
113573 + address_m = address + SEGMEXEC_TASK_SIZE;
113574 + pmd_m = pmd_offset(pud_offset(pgd_offset(mm, address_m), address_m), address_m);
113575 + pte_m = pte_offset_map(pmd_m, address_m);
113576 + ptl_m = pte_lockptr(mm, pmd_m);
113577 + if (ptl != ptl_m) {
113578 + spin_lock_nested(ptl_m, SINGLE_DEPTH_NESTING);
113579 + if (!pte_none(*pte_m))
113580 + goto out;
113581 + }
113582 +
113583 + entry_m = pfn_pte(pfn_m, vma_m->vm_page_prot);
113584 + set_pte_at(mm, address_m, pte_m, entry_m);
113585 +out:
113586 + if (ptl != ptl_m)
113587 + spin_unlock(ptl_m);
113588 + pte_unmap(pte_m);
113589 +}
113590 +
113591 +static void pax_mirror_pte(struct vm_area_struct *vma, unsigned long address, pte_t *pte, pmd_t *pmd, spinlock_t *ptl)
113592 +{
113593 + struct page *page_m;
113594 + pte_t entry;
113595 +
113596 + if (!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC))
113597 + goto out;
113598 +
113599 + entry = *pte;
113600 + page_m = vm_normal_page(vma, address, entry);
113601 + if (!page_m)
113602 + pax_mirror_pfn_pte(vma, address, pte_pfn(entry), ptl);
113603 + else if (PageAnon(page_m)) {
113604 + if (pax_find_mirror_vma(vma)) {
113605 + pte_unmap_unlock(pte, ptl);
113606 + lock_page(page_m);
113607 + pte = pte_offset_map_lock(vma->vm_mm, pmd, address, &ptl);
113608 + if (pte_same(entry, *pte))
113609 + pax_mirror_anon_pte(vma, address, page_m, ptl);
113610 + else
113611 + unlock_page(page_m);
113612 + }
113613 + } else
113614 + pax_mirror_file_pte(vma, address, page_m, ptl);
113615 +
113616 +out:
113617 + pte_unmap_unlock(pte, ptl);
113618 +}
113619 +#endif
113620 +
113621 /*
113622 * Handle the case of a page which we actually need to copy to a new page.
113623 *
113624 @@ -2094,6 +2310,12 @@ static int wp_page_copy(struct mm_struct *mm, struct vm_area_struct *vma,
113625 */
113626 page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
113627 if (likely(pte_same(*page_table, orig_pte))) {
113628 +
113629 +#ifdef CONFIG_PAX_SEGMEXEC
113630 + if (pax_find_mirror_vma(vma))
113631 + BUG_ON(!trylock_page(new_page));
113632 +#endif
113633 +
113634 if (old_page) {
113635 if (!PageAnon(old_page)) {
113636 dec_mm_counter_fast(mm, MM_FILEPAGES);
113637 @@ -2148,6 +2370,10 @@ static int wp_page_copy(struct mm_struct *mm, struct vm_area_struct *vma,
113638 page_remove_rmap(old_page);
113639 }
113640
113641 +#ifdef CONFIG_PAX_SEGMEXEC
113642 + pax_mirror_anon_pte(vma, address, new_page, ptl);
113643 +#endif
113644 +
113645 /* Free the old page.. */
113646 new_page = old_page;
113647 page_copied = 1;
113648 @@ -2579,6 +2805,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
113649 swap_free(entry);
113650 if (vm_swap_full() || (vma->vm_flags & VM_LOCKED) || PageMlocked(page))
113651 try_to_free_swap(page);
113652 +
113653 +#ifdef CONFIG_PAX_SEGMEXEC
113654 + if ((flags & FAULT_FLAG_WRITE) || !pax_find_mirror_vma(vma))
113655 +#endif
113656 +
113657 unlock_page(page);
113658 if (page != swapcache) {
113659 /*
113660 @@ -2602,6 +2833,11 @@ static int do_swap_page(struct mm_struct *mm, struct vm_area_struct *vma,
113661
113662 /* No need to invalidate - it was non-present before */
113663 update_mmu_cache(vma, address, page_table);
113664 +
113665 +#ifdef CONFIG_PAX_SEGMEXEC
113666 + pax_mirror_anon_pte(vma, address, page, ptl);
113667 +#endif
113668 +
113669 unlock:
113670 pte_unmap_unlock(page_table, ptl);
113671 out:
113672 @@ -2621,40 +2857,6 @@ out_release:
113673 }
113674
113675 /*
113676 - * This is like a special single-page "expand_{down|up}wards()",
113677 - * except we must first make sure that 'address{-|+}PAGE_SIZE'
113678 - * doesn't hit another vma.
113679 - */
113680 -static inline int check_stack_guard_page(struct vm_area_struct *vma, unsigned long address)
113681 -{
113682 - address &= PAGE_MASK;
113683 - if ((vma->vm_flags & VM_GROWSDOWN) && address == vma->vm_start) {
113684 - struct vm_area_struct *prev = vma->vm_prev;
113685 -
113686 - /*
113687 - * Is there a mapping abutting this one below?
113688 - *
113689 - * That's only ok if it's the same stack mapping
113690 - * that has gotten split..
113691 - */
113692 - if (prev && prev->vm_end == address)
113693 - return prev->vm_flags & VM_GROWSDOWN ? 0 : -ENOMEM;
113694 -
113695 - return expand_downwards(vma, address - PAGE_SIZE);
113696 - }
113697 - if ((vma->vm_flags & VM_GROWSUP) && address + PAGE_SIZE == vma->vm_end) {
113698 - struct vm_area_struct *next = vma->vm_next;
113699 -
113700 - /* As VM_GROWSDOWN but s/below/above/ */
113701 - if (next && next->vm_start == address + PAGE_SIZE)
113702 - return next->vm_flags & VM_GROWSUP ? 0 : -ENOMEM;
113703 -
113704 - return expand_upwards(vma, address + PAGE_SIZE);
113705 - }
113706 - return 0;
113707 -}
113708 -
113709 -/*
113710 * We enter with non-exclusive mmap_sem (to exclude vma changes,
113711 * but allow concurrent faults), and pte mapped but not yet locked.
113712 * We return with mmap_sem still held, but pte unmapped and unlocked.
113713 @@ -2664,31 +2866,29 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
113714 unsigned int flags)
113715 {
113716 struct mem_cgroup *memcg;
113717 - struct page *page;
113718 + struct page *page = NULL;
113719 spinlock_t *ptl;
113720 pte_t entry;
113721
113722 - pte_unmap(page_table);
113723 -
113724 /* File mapping without ->vm_ops ? */
113725 - if (vma->vm_flags & VM_SHARED)
113726 + if (vma->vm_flags & VM_SHARED) {
113727 + pte_unmap(page_table);
113728 return VM_FAULT_SIGBUS;
113729 + }
113730
113731 - /* Check if we need to add a guard page to the stack */
113732 - if (check_stack_guard_page(vma, address) < 0)
113733 - return VM_FAULT_SIGSEGV;
113734 -
113735 - /* Use the zero-page for reads */
113736 if (!(flags & FAULT_FLAG_WRITE) && !mm_forbids_zeropage(mm)) {
113737 entry = pte_mkspecial(pfn_pte(my_zero_pfn(address),
113738 vma->vm_page_prot));
113739 - page_table = pte_offset_map_lock(mm, pmd, address, &ptl);
113740 + ptl = pte_lockptr(mm, pmd);
113741 + spin_lock(ptl);
113742 if (!pte_none(*page_table))
113743 goto unlock;
113744 goto setpte;
113745 }
113746
113747 /* Allocate our own private page. */
113748 + pte_unmap(page_table);
113749 +
113750 if (unlikely(anon_vma_prepare(vma)))
113751 goto oom;
113752 page = alloc_zeroed_user_highpage_movable(vma, address);
113753 @@ -2713,6 +2913,11 @@ static int do_anonymous_page(struct mm_struct *mm, struct vm_area_struct *vma,
113754 if (!pte_none(*page_table))
113755 goto release;
113756
113757 +#ifdef CONFIG_PAX_SEGMEXEC
113758 + if (pax_find_mirror_vma(vma))
113759 + BUG_ON(!trylock_page(page));
113760 +#endif
113761 +
113762 inc_mm_counter_fast(mm, MM_ANONPAGES);
113763 page_add_new_anon_rmap(page, vma, address);
113764 mem_cgroup_commit_charge(page, memcg, false);
113765 @@ -2722,6 +2927,12 @@ setpte:
113766
113767 /* No need to invalidate - it was non-present before */
113768 update_mmu_cache(vma, address, page_table);
113769 +
113770 +#ifdef CONFIG_PAX_SEGMEXEC
113771 + if (page)
113772 + pax_mirror_anon_pte(vma, address, page, ptl);
113773 +#endif
113774 +
113775 unlock:
113776 pte_unmap_unlock(page_table, ptl);
113777 return 0;
113778 @@ -2954,6 +3165,11 @@ static int do_read_fault(struct mm_struct *mm, struct vm_area_struct *vma,
113779 return ret;
113780 }
113781 do_set_pte(vma, address, fault_page, pte, false, false);
113782 +
113783 +#ifdef CONFIG_PAX_SEGMEXEC
113784 + pax_mirror_file_pte(vma, address, fault_page, ptl);
113785 +#endif
113786 +
113787 unlock_page(fault_page);
113788 unlock_out:
113789 pte_unmap_unlock(pte, ptl);
113790 @@ -3005,7 +3221,18 @@ static int do_cow_fault(struct mm_struct *mm, struct vm_area_struct *vma,
113791 }
113792 goto uncharge_out;
113793 }
113794 +
113795 +#ifdef CONFIG_PAX_SEGMEXEC
113796 + if (pax_find_mirror_vma(vma))
113797 + BUG_ON(!trylock_page(new_page));
113798 +#endif
113799 +
113800 do_set_pte(vma, address, new_page, pte, true, true);
113801 +
113802 +#ifdef CONFIG_PAX_SEGMEXEC
113803 + pax_mirror_anon_pte(vma, address, new_page, ptl);
113804 +#endif
113805 +
113806 mem_cgroup_commit_charge(new_page, memcg, false);
113807 lru_cache_add_active_or_unevictable(new_page, vma);
113808 pte_unmap_unlock(pte, ptl);
113809 @@ -3063,6 +3290,11 @@ static int do_shared_fault(struct mm_struct *mm, struct vm_area_struct *vma,
113810 return ret;
113811 }
113812 do_set_pte(vma, address, fault_page, pte, true, false);
113813 +
113814 +#ifdef CONFIG_PAX_SEGMEXEC
113815 + pax_mirror_file_pte(vma, address, fault_page, ptl);
113816 +#endif
113817 +
113818 pte_unmap_unlock(pte, ptl);
113819
113820 if (set_page_dirty(fault_page))
113821 @@ -3288,6 +3520,12 @@ static int handle_pte_fault(struct mm_struct *mm,
113822 if (flags & FAULT_FLAG_WRITE)
113823 flush_tlb_fix_spurious_fault(vma, address);
113824 }
113825 +
113826 +#ifdef CONFIG_PAX_SEGMEXEC
113827 + pax_mirror_pte(vma, address, pte, pmd, ptl);
113828 + return 0;
113829 +#endif
113830 +
113831 unlock:
113832 pte_unmap_unlock(pte, ptl);
113833 return 0;
113834 @@ -3307,9 +3545,41 @@ static int __handle_mm_fault(struct mm_struct *mm, struct vm_area_struct *vma,
113835 pmd_t *pmd;
113836 pte_t *pte;
113837
113838 +#ifdef CONFIG_PAX_SEGMEXEC
113839 + struct vm_area_struct *vma_m;
113840 +#endif
113841 +
113842 if (unlikely(is_vm_hugetlb_page(vma)))
113843 return hugetlb_fault(mm, vma, address, flags);
113844
113845 +#ifdef CONFIG_PAX_SEGMEXEC
113846 + vma_m = pax_find_mirror_vma(vma);
113847 + if (vma_m) {
113848 + unsigned long address_m;
113849 + pgd_t *pgd_m;
113850 + pud_t *pud_m;
113851 + pmd_t *pmd_m;
113852 +
113853 + if (vma->vm_start > vma_m->vm_start) {
113854 + address_m = address;
113855 + address -= SEGMEXEC_TASK_SIZE;
113856 + vma = vma_m;
113857 + } else
113858 + address_m = address + SEGMEXEC_TASK_SIZE;
113859 +
113860 + pgd_m = pgd_offset(mm, address_m);
113861 + pud_m = pud_alloc(mm, pgd_m, address_m);
113862 + if (!pud_m)
113863 + return VM_FAULT_OOM;
113864 + pmd_m = pmd_alloc(mm, pud_m, address_m);
113865 + if (!pmd_m)
113866 + return VM_FAULT_OOM;
113867 + if (!pmd_present(*pmd_m) && __pte_alloc(mm, vma_m, pmd_m, address_m))
113868 + return VM_FAULT_OOM;
113869 + pax_unmap_mirror_pte(vma_m, address_m, pmd_m);
113870 + }
113871 +#endif
113872 +
113873 pgd = pgd_offset(mm, address);
113874 pud = pud_alloc(mm, pgd, address);
113875 if (!pud)
113876 @@ -3444,6 +3714,23 @@ int __pud_alloc(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
113877 spin_unlock(&mm->page_table_lock);
113878 return 0;
113879 }
113880 +
113881 +int __pud_alloc_kernel(struct mm_struct *mm, pgd_t *pgd, unsigned long address)
113882 +{
113883 + pud_t *new = pud_alloc_one(mm, address);
113884 + if (!new)
113885 + return -ENOMEM;
113886 +
113887 + smp_wmb(); /* See comment in __pte_alloc */
113888 +
113889 + spin_lock(&mm->page_table_lock);
113890 + if (pgd_present(*pgd)) /* Another has populated it */
113891 + pud_free(mm, new);
113892 + else
113893 + pgd_populate_kernel(mm, pgd, new);
113894 + spin_unlock(&mm->page_table_lock);
113895 + return 0;
113896 +}
113897 #endif /* __PAGETABLE_PUD_FOLDED */
113898
113899 #ifndef __PAGETABLE_PMD_FOLDED
113900 @@ -3476,6 +3763,32 @@ int __pmd_alloc(struct mm_struct *mm, pud_t *pud, unsigned long address)
113901 spin_unlock(&mm->page_table_lock);
113902 return 0;
113903 }
113904 +
113905 +int __pmd_alloc_kernel(struct mm_struct *mm, pud_t *pud, unsigned long address)
113906 +{
113907 + pmd_t *new = pmd_alloc_one(mm, address);
113908 + if (!new)
113909 + return -ENOMEM;
113910 +
113911 + smp_wmb(); /* See comment in __pte_alloc */
113912 +
113913 + spin_lock(&mm->page_table_lock);
113914 +#ifndef __ARCH_HAS_4LEVEL_HACK
113915 + if (!pud_present(*pud)) {
113916 + mm_inc_nr_pmds(mm);
113917 + pud_populate_kernel(mm, pud, new);
113918 + } else /* Another has populated it */
113919 + pmd_free(mm, new);
113920 +#else
113921 + if (!pgd_present(*pud)) {
113922 + mm_inc_nr_pmds(mm);
113923 + pgd_populate_kernel(mm, pud, new);
113924 + } else /* Another has populated it */
113925 + pmd_free(mm, new);
113926 +#endif /* __ARCH_HAS_4LEVEL_HACK */
113927 + spin_unlock(&mm->page_table_lock);
113928 + return 0;
113929 +}
113930 #endif /* __PAGETABLE_PMD_FOLDED */
113931
113932 static int __follow_pte(struct mm_struct *mm, unsigned long address,
113933 @@ -3585,8 +3898,8 @@ out:
113934 return ret;
113935 }
113936
113937 -int generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
113938 - void *buf, int len, int write)
113939 +ssize_t generic_access_phys(struct vm_area_struct *vma, unsigned long addr,
113940 + void *buf, size_t len, int write)
113941 {
113942 resource_size_t phys_addr;
113943 unsigned long prot = 0;
113944 @@ -3612,8 +3925,8 @@ EXPORT_SYMBOL_GPL(generic_access_phys);
113945 * Access another process' address space as given in mm. If non-NULL, use the
113946 * given task for page fault accounting.
113947 */
113948 -static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
113949 - unsigned long addr, void *buf, int len, int write)
113950 +static ssize_t __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
113951 + unsigned long addr, void *buf, size_t len, int write)
113952 {
113953 struct vm_area_struct *vma;
113954 void *old_buf = buf;
113955 @@ -3621,7 +3934,7 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
113956 down_read(&mm->mmap_sem);
113957 /* ignore errors, just check how much was successfully transferred */
113958 while (len) {
113959 - int bytes, ret, offset;
113960 + ssize_t bytes, ret, offset;
113961 void *maddr;
113962 struct page *page = NULL;
113963
113964 @@ -3682,8 +3995,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
113965 *
113966 * The caller must hold a reference on @mm.
113967 */
113968 -int access_remote_vm(struct mm_struct *mm, unsigned long addr,
113969 - void *buf, int len, int write)
113970 +ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
113971 + void *buf, size_t len, int write)
113972 {
113973 return __access_remote_vm(NULL, mm, addr, buf, len, write);
113974 }
113975 @@ -3693,11 +4006,11 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
113976 * Source/target buffer must be kernel space,
113977 * Do not walk the page table directly, use get_user_pages
113978 */
113979 -int access_process_vm(struct task_struct *tsk, unsigned long addr,
113980 - void *buf, int len, int write)
113981 +ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr,
113982 + void *buf, size_t len, int write)
113983 {
113984 struct mm_struct *mm;
113985 - int ret;
113986 + ssize_t ret;
113987
113988 mm = get_task_mm(tsk);
113989 if (!mm)
113990 diff --git a/mm/mempolicy.c b/mm/mempolicy.c
113991 index 99d4c1d..a577817 100644
113992 --- a/mm/mempolicy.c
113993 +++ b/mm/mempolicy.c
113994 @@ -703,6 +703,10 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
113995 unsigned long vmstart;
113996 unsigned long vmend;
113997
113998 +#ifdef CONFIG_PAX_SEGMEXEC
113999 + struct vm_area_struct *vma_m;
114000 +#endif
114001 +
114002 vma = find_vma(mm, start);
114003 if (!vma || vma->vm_start > start)
114004 return -EFAULT;
114005 @@ -746,6 +750,16 @@ static int mbind_range(struct mm_struct *mm, unsigned long start,
114006 err = vma_replace_policy(vma, new_pol);
114007 if (err)
114008 goto out;
114009 +
114010 +#ifdef CONFIG_PAX_SEGMEXEC
114011 + vma_m = pax_find_mirror_vma(vma);
114012 + if (vma_m) {
114013 + err = vma_replace_policy(vma_m, new_pol);
114014 + if (err)
114015 + goto out;
114016 + }
114017 +#endif
114018 +
114019 }
114020
114021 out:
114022 @@ -1161,6 +1175,17 @@ static long do_mbind(unsigned long start, unsigned long len,
114023
114024 if (end < start)
114025 return -EINVAL;
114026 +
114027 +#ifdef CONFIG_PAX_SEGMEXEC
114028 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
114029 + if (end > SEGMEXEC_TASK_SIZE)
114030 + return -EINVAL;
114031 + } else
114032 +#endif
114033 +
114034 + if (end > TASK_SIZE)
114035 + return -EINVAL;
114036 +
114037 if (end == start)
114038 return 0;
114039
114040 @@ -1386,8 +1411,7 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
114041 */
114042 tcred = __task_cred(task);
114043 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
114044 - !uid_eq(cred->uid, tcred->suid) && !uid_eq(cred->uid, tcred->uid) &&
114045 - !capable(CAP_SYS_NICE)) {
114046 + !uid_eq(cred->uid, tcred->suid) && !capable(CAP_SYS_NICE)) {
114047 rcu_read_unlock();
114048 err = -EPERM;
114049 goto out_put;
114050 @@ -1418,6 +1442,15 @@ SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
114051 goto out;
114052 }
114053
114054 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
114055 + if (mm != current->mm &&
114056 + (mm->pax_flags & MF_PAX_RANDMMAP || mm->pax_flags & MF_PAX_SEGMEXEC)) {
114057 + mmput(mm);
114058 + err = -EPERM;
114059 + goto out;
114060 + }
114061 +#endif
114062 +
114063 err = do_migrate_pages(mm, old, new,
114064 capable(CAP_SYS_NICE) ? MPOL_MF_MOVE_ALL : MPOL_MF_MOVE);
114065
114066 diff --git a/mm/migrate.c b/mm/migrate.c
114067 index fcb6204..b3f1a44 100644
114068 --- a/mm/migrate.c
114069 +++ b/mm/migrate.c
114070 @@ -1501,8 +1501,7 @@ SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
114071 */
114072 tcred = __task_cred(task);
114073 if (!uid_eq(cred->euid, tcred->suid) && !uid_eq(cred->euid, tcred->uid) &&
114074 - !uid_eq(cred->uid, tcred->suid) && !uid_eq(cred->uid, tcred->uid) &&
114075 - !capable(CAP_SYS_NICE)) {
114076 + !uid_eq(cred->uid, tcred->suid) && !capable(CAP_SYS_NICE)) {
114077 rcu_read_unlock();
114078 err = -EPERM;
114079 goto out;
114080 diff --git a/mm/mlock.c b/mm/mlock.c
114081 index 6fd2cf1..cbae765 100644
114082 --- a/mm/mlock.c
114083 +++ b/mm/mlock.c
114084 @@ -14,6 +14,7 @@
114085 #include <linux/pagevec.h>
114086 #include <linux/mempolicy.h>
114087 #include <linux/syscalls.h>
114088 +#include <linux/security.h>
114089 #include <linux/sched.h>
114090 #include <linux/export.h>
114091 #include <linux/rmap.h>
114092 @@ -557,7 +558,7 @@ static int do_mlock(unsigned long start, size_t len, int on)
114093 {
114094 unsigned long nstart, end, tmp;
114095 struct vm_area_struct * vma, * prev;
114096 - int error;
114097 + int error = 0;
114098
114099 VM_BUG_ON(start & ~PAGE_MASK);
114100 VM_BUG_ON(len != PAGE_ALIGN(len));
114101 @@ -566,6 +567,9 @@ static int do_mlock(unsigned long start, size_t len, int on)
114102 return -EINVAL;
114103 if (end == start)
114104 return 0;
114105 + if (end > TASK_SIZE)
114106 + return -EINVAL;
114107 +
114108 vma = find_vma(current->mm, start);
114109 if (!vma || vma->vm_start > start)
114110 return -ENOMEM;
114111 @@ -577,6 +581,11 @@ static int do_mlock(unsigned long start, size_t len, int on)
114112 for (nstart = start ; ; ) {
114113 vm_flags_t newflags;
114114
114115 +#ifdef CONFIG_PAX_SEGMEXEC
114116 + if ((current->mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE))
114117 + break;
114118 +#endif
114119 +
114120 /* Here we know that vma->vm_start <= nstart < vma->vm_end. */
114121
114122 newflags = vma->vm_flags & ~VM_LOCKED;
114123 @@ -627,6 +636,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
114124 locked += current->mm->locked_vm;
114125
114126 /* check against resource limits */
114127 + gr_learn_resource(current, RLIMIT_MEMLOCK, (current->mm->locked_vm << PAGE_SHIFT) + len, 1);
114128 if ((locked <= lock_limit) || capable(CAP_IPC_LOCK))
114129 error = do_mlock(start, len, 1);
114130
114131 @@ -668,6 +678,11 @@ static int do_mlockall(int flags)
114132 for (vma = current->mm->mmap; vma ; vma = prev->vm_next) {
114133 vm_flags_t newflags;
114134
114135 +#ifdef CONFIG_PAX_SEGMEXEC
114136 + if ((current->mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE))
114137 + break;
114138 +#endif
114139 +
114140 newflags = vma->vm_flags & ~VM_LOCKED;
114141 if (flags & MCL_CURRENT)
114142 newflags |= VM_LOCKED;
114143 @@ -699,8 +714,10 @@ SYSCALL_DEFINE1(mlockall, int, flags)
114144 lock_limit >>= PAGE_SHIFT;
114145
114146 ret = -ENOMEM;
114147 +
114148 + gr_learn_resource(current, RLIMIT_MEMLOCK, current->mm->total_vm << PAGE_SHIFT, 1);
114149 +
114150 down_write(&current->mm->mmap_sem);
114151 -
114152 if (!(flags & MCL_CURRENT) || (current->mm->total_vm <= lock_limit) ||
114153 capable(CAP_IPC_LOCK))
114154 ret = do_mlockall(flags);
114155 diff --git a/mm/mm_init.c b/mm/mm_init.c
114156 index fdadf91..5f527d1 100644
114157 --- a/mm/mm_init.c
114158 +++ b/mm/mm_init.c
114159 @@ -170,7 +170,7 @@ static int __meminit mm_compute_batch_notifier(struct notifier_block *self,
114160 return NOTIFY_OK;
114161 }
114162
114163 -static struct notifier_block compute_batch_nb __meminitdata = {
114164 +static struct notifier_block compute_batch_nb __meminitconst = {
114165 .notifier_call = mm_compute_batch_notifier,
114166 .priority = IPC_CALLBACK_PRI, /* use lowest priority */
114167 };
114168 diff --git a/mm/mmap.c b/mm/mmap.c
114169 index aa632ad..13456342 100644
114170 --- a/mm/mmap.c
114171 +++ b/mm/mmap.c
114172 @@ -41,6 +41,7 @@
114173 #include <linux/notifier.h>
114174 #include <linux/memory.h>
114175 #include <linux/printk.h>
114176 +#include <linux/random.h>
114177
114178 #include <asm/uaccess.h>
114179 #include <asm/cacheflush.h>
114180 @@ -57,6 +58,16 @@
114181 #define arch_rebalance_pgtables(addr, len) (addr)
114182 #endif
114183
114184 +static inline void verify_mm_writelocked(struct mm_struct *mm)
114185 +{
114186 +#if defined(CONFIG_DEBUG_VM) || defined(CONFIG_PAX)
114187 + if (unlikely(down_read_trylock(&mm->mmap_sem))) {
114188 + up_read(&mm->mmap_sem);
114189 + BUG();
114190 + }
114191 +#endif
114192 +}
114193 +
114194 static void unmap_region(struct mm_struct *mm,
114195 struct vm_area_struct *vma, struct vm_area_struct *prev,
114196 unsigned long start, unsigned long end);
114197 @@ -76,16 +87,25 @@ static void unmap_region(struct mm_struct *mm,
114198 * x: (no) no x: (no) yes x: (no) yes x: (yes) yes
114199 *
114200 */
114201 -pgprot_t protection_map[16] = {
114202 +pgprot_t protection_map[16] __read_only = {
114203 __P000, __P001, __P010, __P011, __P100, __P101, __P110, __P111,
114204 __S000, __S001, __S010, __S011, __S100, __S101, __S110, __S111
114205 };
114206
114207 -pgprot_t vm_get_page_prot(unsigned long vm_flags)
114208 +pgprot_t vm_get_page_prot(vm_flags_t vm_flags)
114209 {
114210 - return __pgprot(pgprot_val(protection_map[vm_flags &
114211 + pgprot_t prot = __pgprot(pgprot_val(protection_map[vm_flags &
114212 (VM_READ|VM_WRITE|VM_EXEC|VM_SHARED)]) |
114213 pgprot_val(arch_vm_get_page_prot(vm_flags)));
114214 +
114215 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
114216 + if (!(__supported_pte_mask & _PAGE_NX) &&
114217 + (vm_flags & (VM_PAGEEXEC | VM_EXEC)) == VM_PAGEEXEC &&
114218 + (vm_flags & (VM_READ | VM_WRITE)))
114219 + prot = __pgprot(pte_val(pte_exprotect(__pte(pgprot_val(prot)))));
114220 +#endif
114221 +
114222 + return prot;
114223 }
114224 EXPORT_SYMBOL(vm_get_page_prot);
114225
114226 @@ -114,6 +134,7 @@ unsigned long sysctl_overcommit_kbytes __read_mostly;
114227 int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
114228 unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */
114229 unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */
114230 +unsigned long sysctl_heap_stack_gap __read_mostly = 64*1024;
114231 /*
114232 * Make sure vm_committed_as in one cacheline and not cacheline shared with
114233 * other variables. It can be updated by several CPUs frequently.
114234 @@ -271,6 +292,7 @@ static struct vm_area_struct *remove_vma(struct vm_area_struct *vma)
114235 struct vm_area_struct *next = vma->vm_next;
114236
114237 might_sleep();
114238 + BUG_ON(vma->vm_mirror);
114239 if (vma->vm_ops && vma->vm_ops->close)
114240 vma->vm_ops->close(vma);
114241 if (vma->vm_file)
114242 @@ -284,6 +306,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len);
114243
114244 SYSCALL_DEFINE1(brk, unsigned long, brk)
114245 {
114246 + unsigned long rlim;
114247 unsigned long retval;
114248 unsigned long newbrk, oldbrk;
114249 struct mm_struct *mm = current->mm;
114250 @@ -314,7 +337,13 @@ SYSCALL_DEFINE1(brk, unsigned long, brk)
114251 * segment grow beyond its set limit the in case where the limit is
114252 * not page aligned -Ram Gupta
114253 */
114254 - if (check_data_rlimit(rlimit(RLIMIT_DATA), brk, mm->start_brk,
114255 + rlim = rlimit(RLIMIT_DATA);
114256 +#ifdef CONFIG_GRKERNSEC_PROC_MEMMAP
114257 + /* force a minimum 16MB brk heap on setuid/setgid binaries */
114258 + if (rlim < PAGE_SIZE && (get_dumpable(mm) != SUID_DUMP_USER) && gr_is_global_nonroot(current_uid()))
114259 + rlim = 4096 * PAGE_SIZE;
114260 +#endif
114261 + if (check_data_rlimit(rlim, brk, mm->start_brk,
114262 mm->end_data, mm->start_data))
114263 goto out;
114264
114265 @@ -967,6 +996,12 @@ static int
114266 can_vma_merge_before(struct vm_area_struct *vma, unsigned long vm_flags,
114267 struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff)
114268 {
114269 +
114270 +#ifdef CONFIG_PAX_SEGMEXEC
114271 + if ((vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_start == SEGMEXEC_TASK_SIZE)
114272 + return 0;
114273 +#endif
114274 +
114275 if (is_mergeable_vma(vma, file, vm_flags) &&
114276 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
114277 if (vma->vm_pgoff == vm_pgoff)
114278 @@ -986,6 +1021,12 @@ static int
114279 can_vma_merge_after(struct vm_area_struct *vma, unsigned long vm_flags,
114280 struct anon_vma *anon_vma, struct file *file, pgoff_t vm_pgoff)
114281 {
114282 +
114283 +#ifdef CONFIG_PAX_SEGMEXEC
114284 + if ((vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) && vma->vm_end == SEGMEXEC_TASK_SIZE)
114285 + return 0;
114286 +#endif
114287 +
114288 if (is_mergeable_vma(vma, file, vm_flags) &&
114289 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) {
114290 pgoff_t vm_pglen;
114291 @@ -1035,6 +1076,13 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
114292 struct vm_area_struct *area, *next;
114293 int err;
114294
114295 +#ifdef CONFIG_PAX_SEGMEXEC
114296 + unsigned long addr_m = addr + SEGMEXEC_TASK_SIZE, end_m = end + SEGMEXEC_TASK_SIZE;
114297 + struct vm_area_struct *area_m = NULL, *next_m = NULL, *prev_m = NULL;
114298 +
114299 + BUG_ON((mm->pax_flags & MF_PAX_SEGMEXEC) && SEGMEXEC_TASK_SIZE < end);
114300 +#endif
114301 +
114302 /*
114303 * We later require that vma->vm_flags == vm_flags,
114304 * so this tests vma->vm_flags & VM_SPECIAL, too.
114305 @@ -1050,6 +1098,15 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
114306 if (next && next->vm_end == end) /* cases 6, 7, 8 */
114307 next = next->vm_next;
114308
114309 +#ifdef CONFIG_PAX_SEGMEXEC
114310 + if (prev)
114311 + prev_m = pax_find_mirror_vma(prev);
114312 + if (area)
114313 + area_m = pax_find_mirror_vma(area);
114314 + if (next)
114315 + next_m = pax_find_mirror_vma(next);
114316 +#endif
114317 +
114318 /*
114319 * Can it merge with the predecessor?
114320 */
114321 @@ -1069,9 +1126,24 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
114322 /* cases 1, 6 */
114323 err = vma_adjust(prev, prev->vm_start,
114324 next->vm_end, prev->vm_pgoff, NULL);
114325 - } else /* cases 2, 5, 7 */
114326 +
114327 +#ifdef CONFIG_PAX_SEGMEXEC
114328 + if (!err && prev_m)
114329 + err = vma_adjust(prev_m, prev_m->vm_start,
114330 + next_m->vm_end, prev_m->vm_pgoff, NULL);
114331 +#endif
114332 +
114333 + } else { /* cases 2, 5, 7 */
114334 err = vma_adjust(prev, prev->vm_start,
114335 end, prev->vm_pgoff, NULL);
114336 +
114337 +#ifdef CONFIG_PAX_SEGMEXEC
114338 + if (!err && prev_m)
114339 + err = vma_adjust(prev_m, prev_m->vm_start,
114340 + end_m, prev_m->vm_pgoff, NULL);
114341 +#endif
114342 +
114343 + }
114344 if (err)
114345 return NULL;
114346 khugepaged_enter_vma_merge(prev, vm_flags);
114347 @@ -1085,12 +1157,27 @@ struct vm_area_struct *vma_merge(struct mm_struct *mm,
114348 mpol_equal(policy, vma_policy(next)) &&
114349 can_vma_merge_before(next, vm_flags,
114350 anon_vma, file, pgoff+pglen)) {
114351 - if (prev && addr < prev->vm_end) /* case 4 */
114352 + if (prev && addr < prev->vm_end) { /* case 4 */
114353 err = vma_adjust(prev, prev->vm_start,
114354 addr, prev->vm_pgoff, NULL);
114355 - else /* cases 3, 8 */
114356 +
114357 +#ifdef CONFIG_PAX_SEGMEXEC
114358 + if (!err && prev_m)
114359 + err = vma_adjust(prev_m, prev_m->vm_start,
114360 + addr_m, prev_m->vm_pgoff, NULL);
114361 +#endif
114362 +
114363 + } else { /* cases 3, 8 */
114364 err = vma_adjust(area, addr, next->vm_end,
114365 next->vm_pgoff - pglen, NULL);
114366 +
114367 +#ifdef CONFIG_PAX_SEGMEXEC
114368 + if (!err && area_m)
114369 + err = vma_adjust(area_m, addr_m, next_m->vm_end,
114370 + next_m->vm_pgoff - pglen, NULL);
114371 +#endif
114372 +
114373 + }
114374 if (err)
114375 return NULL;
114376 khugepaged_enter_vma_merge(area, vm_flags);
114377 @@ -1199,8 +1286,10 @@ none:
114378 void vm_stat_account(struct mm_struct *mm, unsigned long flags,
114379 struct file *file, long pages)
114380 {
114381 - const unsigned long stack_flags
114382 - = VM_STACK_FLAGS & (VM_GROWSUP|VM_GROWSDOWN);
114383 +
114384 +#ifdef CONFIG_PAX_RANDMMAP
114385 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
114386 +#endif
114387
114388 mm->total_vm += pages;
114389
114390 @@ -1208,7 +1297,7 @@ void vm_stat_account(struct mm_struct *mm, unsigned long flags,
114391 mm->shared_vm += pages;
114392 if ((flags & (VM_EXEC|VM_WRITE)) == VM_EXEC)
114393 mm->exec_vm += pages;
114394 - } else if (flags & stack_flags)
114395 + } else if (flags & (VM_GROWSUP|VM_GROWSDOWN))
114396 mm->stack_vm += pages;
114397 }
114398 #endif /* CONFIG_PROC_FS */
114399 @@ -1238,6 +1327,7 @@ static inline int mlock_future_check(struct mm_struct *mm,
114400 locked += mm->locked_vm;
114401 lock_limit = rlimit(RLIMIT_MEMLOCK);
114402 lock_limit >>= PAGE_SHIFT;
114403 + gr_learn_resource(current, RLIMIT_MEMLOCK, locked << PAGE_SHIFT, 1);
114404 if (locked > lock_limit && !capable(CAP_IPC_LOCK))
114405 return -EAGAIN;
114406 }
114407 @@ -1267,7 +1357,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
114408 * (the exception is when the underlying filesystem is noexec
114409 * mounted, in which case we dont add PROT_EXEC.)
114410 */
114411 - if ((prot & PROT_READ) && (current->personality & READ_IMPLIES_EXEC))
114412 + if ((prot & (PROT_READ | PROT_WRITE)) && (current->personality & READ_IMPLIES_EXEC))
114413 if (!(file && (file->f_path.mnt->mnt_flags & MNT_NOEXEC)))
114414 prot |= PROT_EXEC;
114415
114416 @@ -1290,7 +1380,7 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
114417 /* Obtain the address to map to. we verify (or select) it and ensure
114418 * that it represents a valid section of the address space.
114419 */
114420 - addr = get_unmapped_area(file, addr, len, pgoff, flags);
114421 + addr = get_unmapped_area(file, addr, len, pgoff, flags | ((prot & PROT_EXEC) ? MAP_EXECUTABLE : 0));
114422 if (addr & ~PAGE_MASK)
114423 return addr;
114424
114425 @@ -1301,6 +1391,43 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
114426 vm_flags = calc_vm_prot_bits(prot) | calc_vm_flag_bits(flags) |
114427 mm->def_flags | VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC;
114428
114429 +#ifdef CONFIG_PAX_MPROTECT
114430 + if (mm->pax_flags & MF_PAX_MPROTECT) {
114431 +
114432 +#ifdef CONFIG_GRKERNSEC_RWXMAP_LOG
114433 + if (file && !pgoff && (vm_flags & VM_EXEC) && mm->binfmt &&
114434 + mm->binfmt->handle_mmap)
114435 + mm->binfmt->handle_mmap(file);
114436 +#endif
114437 +
114438 +#ifndef CONFIG_PAX_MPROTECT_COMPAT
114439 + if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC)) {
114440 + gr_log_rwxmmap(file);
114441 +
114442 +#ifdef CONFIG_PAX_EMUPLT
114443 + vm_flags &= ~VM_EXEC;
114444 +#else
114445 + return -EPERM;
114446 +#endif
114447 +
114448 + }
114449 +
114450 + if (!(vm_flags & VM_EXEC))
114451 + vm_flags &= ~VM_MAYEXEC;
114452 +#else
114453 + if ((vm_flags & (VM_WRITE | VM_EXEC)) != VM_EXEC)
114454 + vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
114455 +#endif
114456 + else
114457 + vm_flags &= ~VM_MAYWRITE;
114458 + }
114459 +#endif
114460 +
114461 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
114462 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && file)
114463 + vm_flags &= ~VM_PAGEEXEC;
114464 +#endif
114465 +
114466 if (flags & MAP_LOCKED)
114467 if (!can_do_mlock())
114468 return -EPERM;
114469 @@ -1388,6 +1515,9 @@ unsigned long do_mmap_pgoff(struct file *file, unsigned long addr,
114470 vm_flags |= VM_NORESERVE;
114471 }
114472
114473 + if (!gr_acl_handle_mmap(file, prot))
114474 + return -EACCES;
114475 +
114476 addr = mmap_region(file, addr, len, vm_flags, pgoff);
114477 if (!IS_ERR_VALUE(addr) &&
114478 ((vm_flags & VM_LOCKED) ||
114479 @@ -1481,7 +1611,7 @@ int vma_wants_writenotify(struct vm_area_struct *vma)
114480 vm_flags_t vm_flags = vma->vm_flags;
114481
114482 /* If it was private or non-writable, the write bit is already clear */
114483 - if ((vm_flags & (VM_WRITE|VM_SHARED)) != ((VM_WRITE|VM_SHARED)))
114484 + if ((vm_flags & (VM_WRITE|VM_SHARED)) != (VM_WRITE|VM_SHARED))
114485 return 0;
114486
114487 /* The backer wishes to know when pages are first written to? */
114488 @@ -1532,7 +1662,22 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
114489 struct rb_node **rb_link, *rb_parent;
114490 unsigned long charged = 0;
114491
114492 +#ifdef CONFIG_PAX_SEGMEXEC
114493 + struct vm_area_struct *vma_m = NULL;
114494 +#endif
114495 +
114496 + /*
114497 + * mm->mmap_sem is required to protect against another thread
114498 + * changing the mappings in case we sleep.
114499 + */
114500 + verify_mm_writelocked(mm);
114501 +
114502 /* Check against address space limit. */
114503 +
114504 +#ifdef CONFIG_PAX_RANDMMAP
114505 + if (!(mm->pax_flags & MF_PAX_RANDMMAP) || (vm_flags & (VM_MAYREAD | VM_MAYWRITE | VM_MAYEXEC)))
114506 +#endif
114507 +
114508 if (!may_expand_vm(mm, len >> PAGE_SHIFT)) {
114509 unsigned long nr_pages;
114510
114511 @@ -1555,6 +1700,7 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
114512 &rb_parent)) {
114513 if (do_munmap(mm, addr, len))
114514 return -ENOMEM;
114515 + BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
114516 }
114517
114518 /*
114519 @@ -1586,6 +1732,16 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
114520 goto unacct_error;
114521 }
114522
114523 +#ifdef CONFIG_PAX_SEGMEXEC
114524 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vm_flags & VM_EXEC)) {
114525 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
114526 + if (!vma_m) {
114527 + error = -ENOMEM;
114528 + goto free_vma;
114529 + }
114530 + }
114531 +#endif
114532 +
114533 vma->vm_mm = mm;
114534 vma->vm_start = addr;
114535 vma->vm_end = addr + len;
114536 @@ -1616,6 +1772,13 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
114537 if (error)
114538 goto unmap_and_free_vma;
114539
114540 +#if defined(CONFIG_PAX_PAGEEXEC) && defined(CONFIG_X86_32)
114541 + if ((mm->pax_flags & MF_PAX_PAGEEXEC) && !(vma->vm_flags & VM_SPECIAL)) {
114542 + vma->vm_flags |= VM_PAGEEXEC;
114543 + vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
114544 + }
114545 +#endif
114546 +
114547 /* Can addr have changed??
114548 *
114549 * Answer: Yes, several device drivers can do it in their
114550 @@ -1634,6 +1797,12 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
114551 }
114552
114553 vma_link(mm, vma, prev, rb_link, rb_parent);
114554 +
114555 +#ifdef CONFIG_PAX_SEGMEXEC
114556 + if (vma_m)
114557 + BUG_ON(pax_mirror_vma(vma_m, vma));
114558 +#endif
114559 +
114560 /* Once vma denies write, undo our temporary denial count */
114561 if (file) {
114562 if (vm_flags & VM_SHARED)
114563 @@ -1646,6 +1815,7 @@ out:
114564 perf_event_mmap(vma);
114565
114566 vm_stat_account(mm, vm_flags, file, len >> PAGE_SHIFT);
114567 + track_exec_limit(mm, addr, addr + len, vm_flags);
114568 if (vm_flags & VM_LOCKED) {
114569 if (!((vm_flags & VM_SPECIAL) || is_vm_hugetlb_page(vma) ||
114570 vma == get_gate_vma(current->mm)))
114571 @@ -1683,6 +1853,12 @@ allow_write_and_free_vma:
114572 if (vm_flags & VM_DENYWRITE)
114573 allow_write_access(file);
114574 free_vma:
114575 +
114576 +#ifdef CONFIG_PAX_SEGMEXEC
114577 + if (vma_m)
114578 + kmem_cache_free(vm_area_cachep, vma_m);
114579 +#endif
114580 +
114581 kmem_cache_free(vm_area_cachep, vma);
114582 unacct_error:
114583 if (charged)
114584 @@ -1690,7 +1866,63 @@ unacct_error:
114585 return error;
114586 }
114587
114588 -unsigned long unmapped_area(struct vm_unmapped_area_info *info)
114589 +#ifdef CONFIG_GRKERNSEC_RAND_THREADSTACK
114590 +unsigned long gr_rand_threadstack_offset(const struct mm_struct *mm, const struct file *filp, unsigned long flags)
114591 +{
114592 + if ((mm->pax_flags & MF_PAX_RANDMMAP) && !filp && (flags & MAP_STACK))
114593 + return ((prandom_u32() & 0xFF) + 1) << PAGE_SHIFT;
114594 +
114595 + return 0;
114596 +}
114597 +#endif
114598 +
114599 +bool check_heap_stack_gap(const struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long offset)
114600 +{
114601 + if (!vma) {
114602 +#ifdef CONFIG_STACK_GROWSUP
114603 + if (addr > sysctl_heap_stack_gap)
114604 + vma = find_vma(current->mm, addr - sysctl_heap_stack_gap);
114605 + else
114606 + vma = find_vma(current->mm, 0);
114607 + if (vma && (vma->vm_flags & VM_GROWSUP))
114608 + return false;
114609 +#endif
114610 + return true;
114611 + }
114612 +
114613 + if (addr + len > vma->vm_start)
114614 + return false;
114615 +
114616 + if (vma->vm_flags & VM_GROWSDOWN)
114617 + return sysctl_heap_stack_gap <= vma->vm_start - addr - len;
114618 +#ifdef CONFIG_STACK_GROWSUP
114619 + else if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP))
114620 + return addr - vma->vm_prev->vm_end >= sysctl_heap_stack_gap;
114621 +#endif
114622 + else if (offset)
114623 + return offset <= vma->vm_start - addr - len;
114624 +
114625 + return true;
114626 +}
114627 +
114628 +unsigned long skip_heap_stack_gap(const struct vm_area_struct *vma, unsigned long len, unsigned long offset)
114629 +{
114630 + if (vma->vm_start < len)
114631 + return -ENOMEM;
114632 +
114633 + if (!(vma->vm_flags & VM_GROWSDOWN)) {
114634 + if (offset <= vma->vm_start - len)
114635 + return vma->vm_start - len - offset;
114636 + else
114637 + return -ENOMEM;
114638 + }
114639 +
114640 + if (sysctl_heap_stack_gap <= vma->vm_start - len)
114641 + return vma->vm_start - len - sysctl_heap_stack_gap;
114642 + return -ENOMEM;
114643 +}
114644 +
114645 +unsigned long unmapped_area(const struct vm_unmapped_area_info *info)
114646 {
114647 /*
114648 * We implement the search by looking for an rbtree node that
114649 @@ -1738,11 +1970,29 @@ unsigned long unmapped_area(struct vm_unmapped_area_info *info)
114650 }
114651 }
114652
114653 - gap_start = vma->vm_prev ? vma->vm_prev->vm_end : 0;
114654 + gap_start = vma->vm_prev ? vma->vm_prev->vm_end: 0;
114655 check_current:
114656 /* Check if current node has a suitable gap */
114657 if (gap_start > high_limit)
114658 return -ENOMEM;
114659 +
114660 + if (gap_end - gap_start > info->threadstack_offset)
114661 + gap_start += info->threadstack_offset;
114662 + else
114663 + gap_start = gap_end;
114664 +
114665 + if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP)) {
114666 + if (gap_end - gap_start > sysctl_heap_stack_gap)
114667 + gap_start += sysctl_heap_stack_gap;
114668 + else
114669 + gap_start = gap_end;
114670 + }
114671 + if (vma->vm_flags & VM_GROWSDOWN) {
114672 + if (gap_end - gap_start > sysctl_heap_stack_gap)
114673 + gap_end -= sysctl_heap_stack_gap;
114674 + else
114675 + gap_end = gap_start;
114676 + }
114677 if (gap_end >= low_limit && gap_end - gap_start >= length)
114678 goto found;
114679
114680 @@ -1792,7 +2042,7 @@ found:
114681 return gap_start;
114682 }
114683
114684 -unsigned long unmapped_area_topdown(struct vm_unmapped_area_info *info)
114685 +unsigned long unmapped_area_topdown(const struct vm_unmapped_area_info *info)
114686 {
114687 struct mm_struct *mm = current->mm;
114688 struct vm_area_struct *vma;
114689 @@ -1846,6 +2096,24 @@ check_current:
114690 gap_end = vma->vm_start;
114691 if (gap_end < low_limit)
114692 return -ENOMEM;
114693 +
114694 + if (gap_end - gap_start > info->threadstack_offset)
114695 + gap_end -= info->threadstack_offset;
114696 + else
114697 + gap_end = gap_start;
114698 +
114699 + if (vma->vm_prev && (vma->vm_prev->vm_flags & VM_GROWSUP)) {
114700 + if (gap_end - gap_start > sysctl_heap_stack_gap)
114701 + gap_start += sysctl_heap_stack_gap;
114702 + else
114703 + gap_start = gap_end;
114704 + }
114705 + if (vma->vm_flags & VM_GROWSDOWN) {
114706 + if (gap_end - gap_start > sysctl_heap_stack_gap)
114707 + gap_end -= sysctl_heap_stack_gap;
114708 + else
114709 + gap_end = gap_start;
114710 + }
114711 if (gap_start <= high_limit && gap_end - gap_start >= length)
114712 goto found;
114713
114714 @@ -1909,6 +2177,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
114715 struct mm_struct *mm = current->mm;
114716 struct vm_area_struct *vma;
114717 struct vm_unmapped_area_info info;
114718 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
114719
114720 if (len > TASK_SIZE - mmap_min_addr)
114721 return -ENOMEM;
114722 @@ -1916,11 +2185,15 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
114723 if (flags & MAP_FIXED)
114724 return addr;
114725
114726 +#ifdef CONFIG_PAX_RANDMMAP
114727 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
114728 +#endif
114729 +
114730 if (addr) {
114731 addr = PAGE_ALIGN(addr);
114732 vma = find_vma(mm, addr);
114733 if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
114734 - (!vma || addr + len <= vma->vm_start))
114735 + check_heap_stack_gap(vma, addr, len, offset))
114736 return addr;
114737 }
114738
114739 @@ -1929,6 +2202,7 @@ arch_get_unmapped_area(struct file *filp, unsigned long addr,
114740 info.low_limit = mm->mmap_base;
114741 info.high_limit = TASK_SIZE;
114742 info.align_mask = 0;
114743 + info.threadstack_offset = offset;
114744 return vm_unmapped_area(&info);
114745 }
114746 #endif
114747 @@ -1947,6 +2221,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
114748 struct mm_struct *mm = current->mm;
114749 unsigned long addr = addr0;
114750 struct vm_unmapped_area_info info;
114751 + unsigned long offset = gr_rand_threadstack_offset(mm, filp, flags);
114752
114753 /* requested length too big for entire address space */
114754 if (len > TASK_SIZE - mmap_min_addr)
114755 @@ -1955,12 +2230,16 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
114756 if (flags & MAP_FIXED)
114757 return addr;
114758
114759 +#ifdef CONFIG_PAX_RANDMMAP
114760 + if (!(mm->pax_flags & MF_PAX_RANDMMAP))
114761 +#endif
114762 +
114763 /* requesting a specific address */
114764 if (addr) {
114765 addr = PAGE_ALIGN(addr);
114766 vma = find_vma(mm, addr);
114767 if (TASK_SIZE - len >= addr && addr >= mmap_min_addr &&
114768 - (!vma || addr + len <= vma->vm_start))
114769 + check_heap_stack_gap(vma, addr, len, offset))
114770 return addr;
114771 }
114772
114773 @@ -1969,6 +2248,7 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
114774 info.low_limit = max(PAGE_SIZE, mmap_min_addr);
114775 info.high_limit = mm->mmap_base;
114776 info.align_mask = 0;
114777 + info.threadstack_offset = offset;
114778 addr = vm_unmapped_area(&info);
114779
114780 /*
114781 @@ -1981,6 +2261,12 @@ arch_get_unmapped_area_topdown(struct file *filp, const unsigned long addr0,
114782 VM_BUG_ON(addr != -ENOMEM);
114783 info.flags = 0;
114784 info.low_limit = TASK_UNMAPPED_BASE;
114785 +
114786 +#ifdef CONFIG_PAX_RANDMMAP
114787 + if (mm->pax_flags & MF_PAX_RANDMMAP)
114788 + info.low_limit += mm->delta_mmap;
114789 +#endif
114790 +
114791 info.high_limit = TASK_SIZE;
114792 addr = vm_unmapped_area(&info);
114793 }
114794 @@ -2081,6 +2367,28 @@ find_vma_prev(struct mm_struct *mm, unsigned long addr,
114795 return vma;
114796 }
114797
114798 +#ifdef CONFIG_PAX_SEGMEXEC
114799 +struct vm_area_struct *pax_find_mirror_vma(struct vm_area_struct *vma)
114800 +{
114801 + struct vm_area_struct *vma_m;
114802 +
114803 + BUG_ON(!vma || vma->vm_start >= vma->vm_end);
114804 + if (!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) || !(vma->vm_flags & VM_EXEC)) {
114805 + BUG_ON(vma->vm_mirror);
114806 + return NULL;
114807 + }
114808 + BUG_ON(vma->vm_start < SEGMEXEC_TASK_SIZE && SEGMEXEC_TASK_SIZE < vma->vm_end);
114809 + vma_m = vma->vm_mirror;
114810 + BUG_ON(!vma_m || vma_m->vm_mirror != vma);
114811 + BUG_ON(vma->vm_file != vma_m->vm_file);
114812 + BUG_ON(vma->vm_end - vma->vm_start != vma_m->vm_end - vma_m->vm_start);
114813 + BUG_ON(vma->vm_pgoff != vma_m->vm_pgoff);
114814 + BUG_ON(vma->anon_vma != vma_m->anon_vma && vma->anon_vma->root != vma_m->anon_vma->root);
114815 + BUG_ON((vma->vm_flags ^ vma_m->vm_flags) & ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT | VM_LOCKED));
114816 + return vma_m;
114817 +}
114818 +#endif
114819 +
114820 /*
114821 * Verify that the stack growth is acceptable and
114822 * update accounting. This is shared with both the
114823 @@ -2098,8 +2406,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
114824
114825 /* Stack limit test */
114826 actual_size = size;
114827 - if (size && (vma->vm_flags & (VM_GROWSUP | VM_GROWSDOWN)))
114828 - actual_size -= PAGE_SIZE;
114829 + gr_learn_resource(current, RLIMIT_STACK, actual_size, 1);
114830 if (actual_size > READ_ONCE(rlim[RLIMIT_STACK].rlim_cur))
114831 return -ENOMEM;
114832
114833 @@ -2110,6 +2417,7 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
114834 locked = mm->locked_vm + grow;
114835 limit = READ_ONCE(rlim[RLIMIT_MEMLOCK].rlim_cur);
114836 limit >>= PAGE_SHIFT;
114837 + gr_learn_resource(current, RLIMIT_MEMLOCK, locked << PAGE_SHIFT, 1);
114838 if (locked > limit && !capable(CAP_IPC_LOCK))
114839 return -ENOMEM;
114840 }
114841 @@ -2139,37 +2447,48 @@ static int acct_stack_growth(struct vm_area_struct *vma, unsigned long size, uns
114842 * PA-RISC uses this for its stack; IA64 for its Register Backing Store.
114843 * vma is the last one with address > vma->vm_end. Have to extend vma.
114844 */
114845 +#ifndef CONFIG_IA64
114846 +static
114847 +#endif
114848 int expand_upwards(struct vm_area_struct *vma, unsigned long address)
114849 {
114850 int error;
114851 + bool locknext;
114852
114853 if (!(vma->vm_flags & VM_GROWSUP))
114854 return -EFAULT;
114855
114856 + /* Also guard against wrapping around to address 0. */
114857 + if (address < PAGE_ALIGN(address+1))
114858 + address = PAGE_ALIGN(address+1);
114859 + else
114860 + return -ENOMEM;
114861 +
114862 /*
114863 * We must make sure the anon_vma is allocated
114864 * so that the anon_vma locking is not a noop.
114865 */
114866 if (unlikely(anon_vma_prepare(vma)))
114867 return -ENOMEM;
114868 + locknext = vma->vm_next && (vma->vm_next->vm_flags & VM_GROWSDOWN);
114869 + if (locknext && anon_vma_prepare(vma->vm_next))
114870 + return -ENOMEM;
114871 vma_lock_anon_vma(vma);
114872 + if (locknext)
114873 + vma_lock_anon_vma(vma->vm_next);
114874
114875 /*
114876 * vma->vm_start/vm_end cannot change under us because the caller
114877 * is required to hold the mmap_sem in read mode. We need the
114878 - * anon_vma lock to serialize against concurrent expand_stacks.
114879 - * Also guard against wrapping around to address 0.
114880 + * anon_vma locks to serialize against concurrent expand_stacks
114881 + * and expand_upwards.
114882 */
114883 - if (address < PAGE_ALIGN(address+4))
114884 - address = PAGE_ALIGN(address+4);
114885 - else {
114886 - vma_unlock_anon_vma(vma);
114887 - return -ENOMEM;
114888 - }
114889 error = 0;
114890
114891 /* Somebody else might have raced and expanded it already */
114892 - if (address > vma->vm_end) {
114893 + 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)
114894 + error = -ENOMEM;
114895 + else if (address > vma->vm_end && (!locknext || vma->vm_next->vm_start >= address)) {
114896 unsigned long size, grow;
114897
114898 size = address - vma->vm_start;
114899 @@ -2204,6 +2523,8 @@ int expand_upwards(struct vm_area_struct *vma, unsigned long address)
114900 }
114901 }
114902 }
114903 + if (locknext)
114904 + vma_unlock_anon_vma(vma->vm_next);
114905 vma_unlock_anon_vma(vma);
114906 khugepaged_enter_vma_merge(vma, vma->vm_flags);
114907 validate_mm(vma->vm_mm);
114908 @@ -2218,6 +2539,8 @@ int expand_downwards(struct vm_area_struct *vma,
114909 unsigned long address)
114910 {
114911 int error;
114912 + bool lockprev = false;
114913 + struct vm_area_struct *prev;
114914
114915 /*
114916 * We must make sure the anon_vma is allocated
114917 @@ -2231,6 +2554,15 @@ int expand_downwards(struct vm_area_struct *vma,
114918 if (error)
114919 return error;
114920
114921 + prev = vma->vm_prev;
114922 +#if defined(CONFIG_STACK_GROWSUP) || defined(CONFIG_IA64)
114923 + lockprev = prev && (prev->vm_flags & VM_GROWSUP);
114924 +#endif
114925 + if (lockprev && anon_vma_prepare(prev))
114926 + return -ENOMEM;
114927 + if (lockprev)
114928 + vma_lock_anon_vma(prev);
114929 +
114930 vma_lock_anon_vma(vma);
114931
114932 /*
114933 @@ -2240,9 +2572,17 @@ int expand_downwards(struct vm_area_struct *vma,
114934 */
114935
114936 /* Somebody else might have raced and expanded it already */
114937 - if (address < vma->vm_start) {
114938 + if (prev && (prev->vm_flags & (VM_READ | VM_WRITE | VM_EXEC)) && address - prev->vm_end < sysctl_heap_stack_gap)
114939 + error = -ENOMEM;
114940 + else if (address < vma->vm_start && (!lockprev || prev->vm_end <= address)) {
114941 unsigned long size, grow;
114942
114943 +#ifdef CONFIG_PAX_SEGMEXEC
114944 + struct vm_area_struct *vma_m;
114945 +
114946 + vma_m = pax_find_mirror_vma(vma);
114947 +#endif
114948 +
114949 size = vma->vm_end - address;
114950 grow = (vma->vm_start - address) >> PAGE_SHIFT;
114951
114952 @@ -2267,13 +2607,27 @@ int expand_downwards(struct vm_area_struct *vma,
114953 vma->vm_pgoff -= grow;
114954 anon_vma_interval_tree_post_update_vma(vma);
114955 vma_gap_update(vma);
114956 +
114957 +#ifdef CONFIG_PAX_SEGMEXEC
114958 + if (vma_m) {
114959 + anon_vma_interval_tree_pre_update_vma(vma_m);
114960 + vma_m->vm_start -= grow << PAGE_SHIFT;
114961 + vma_m->vm_pgoff -= grow;
114962 + anon_vma_interval_tree_post_update_vma(vma_m);
114963 + vma_gap_update(vma_m);
114964 + }
114965 +#endif
114966 +
114967 spin_unlock(&vma->vm_mm->page_table_lock);
114968
114969 + track_exec_limit(vma->vm_mm, vma->vm_start, vma->vm_end, vma->vm_flags);
114970 perf_event_mmap(vma);
114971 }
114972 }
114973 }
114974 vma_unlock_anon_vma(vma);
114975 + if (lockprev)
114976 + vma_unlock_anon_vma(prev);
114977 khugepaged_enter_vma_merge(vma, vma->vm_flags);
114978 validate_mm(vma->vm_mm);
114979 return error;
114980 @@ -2373,6 +2727,13 @@ static void remove_vma_list(struct mm_struct *mm, struct vm_area_struct *vma)
114981 do {
114982 long nrpages = vma_pages(vma);
114983
114984 +#ifdef CONFIG_PAX_SEGMEXEC
114985 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_start >= SEGMEXEC_TASK_SIZE)) {
114986 + vma = remove_vma(vma);
114987 + continue;
114988 + }
114989 +#endif
114990 +
114991 if (vma->vm_flags & VM_ACCOUNT)
114992 nr_accounted += nrpages;
114993 vm_stat_account(mm, vma->vm_flags, vma->vm_file, -nrpages);
114994 @@ -2417,6 +2778,16 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
114995 insertion_point = (prev ? &prev->vm_next : &mm->mmap);
114996 vma->vm_prev = NULL;
114997 do {
114998 +
114999 +#ifdef CONFIG_PAX_SEGMEXEC
115000 + if (vma->vm_mirror) {
115001 + BUG_ON(!vma->vm_mirror->vm_mirror || vma->vm_mirror->vm_mirror != vma);
115002 + vma->vm_mirror->vm_mirror = NULL;
115003 + vma->vm_mirror->vm_flags &= ~VM_EXEC;
115004 + vma->vm_mirror = NULL;
115005 + }
115006 +#endif
115007 +
115008 vma_rb_erase(vma, &mm->mm_rb);
115009 mm->map_count--;
115010 tail_vma = vma;
115011 @@ -2444,14 +2815,33 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115012 struct vm_area_struct *new;
115013 int err = -ENOMEM;
115014
115015 +#ifdef CONFIG_PAX_SEGMEXEC
115016 + struct vm_area_struct *vma_m, *new_m = NULL;
115017 + unsigned long addr_m = addr + SEGMEXEC_TASK_SIZE;
115018 +#endif
115019 +
115020 if (is_vm_hugetlb_page(vma) && (addr &
115021 ~(huge_page_mask(hstate_vma(vma)))))
115022 return -EINVAL;
115023
115024 +#ifdef CONFIG_PAX_SEGMEXEC
115025 + vma_m = pax_find_mirror_vma(vma);
115026 +#endif
115027 +
115028 new = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
115029 if (!new)
115030 goto out_err;
115031
115032 +#ifdef CONFIG_PAX_SEGMEXEC
115033 + if (vma_m) {
115034 + new_m = kmem_cache_alloc(vm_area_cachep, GFP_KERNEL);
115035 + if (!new_m) {
115036 + kmem_cache_free(vm_area_cachep, new);
115037 + goto out_err;
115038 + }
115039 + }
115040 +#endif
115041 +
115042 /* most fields are the same, copy all, and then fixup */
115043 *new = *vma;
115044
115045 @@ -2464,6 +2854,22 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115046 new->vm_pgoff += ((addr - vma->vm_start) >> PAGE_SHIFT);
115047 }
115048
115049 +#ifdef CONFIG_PAX_SEGMEXEC
115050 + if (vma_m) {
115051 + *new_m = *vma_m;
115052 + INIT_LIST_HEAD(&new_m->anon_vma_chain);
115053 + new_m->vm_mirror = new;
115054 + new->vm_mirror = new_m;
115055 +
115056 + if (new_below)
115057 + new_m->vm_end = addr_m;
115058 + else {
115059 + new_m->vm_start = addr_m;
115060 + new_m->vm_pgoff += ((addr_m - vma_m->vm_start) >> PAGE_SHIFT);
115061 + }
115062 + }
115063 +#endif
115064 +
115065 err = vma_dup_policy(vma, new);
115066 if (err)
115067 goto out_free_vma;
115068 @@ -2484,6 +2890,38 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115069 else
115070 err = vma_adjust(vma, vma->vm_start, addr, vma->vm_pgoff, new);
115071
115072 +#ifdef CONFIG_PAX_SEGMEXEC
115073 + if (!err && vma_m) {
115074 + struct mempolicy *pol = vma_policy(new);
115075 +
115076 + if (anon_vma_clone(new_m, vma_m))
115077 + goto out_free_mpol;
115078 +
115079 + mpol_get(pol);
115080 + set_vma_policy(new_m, pol);
115081 +
115082 + if (new_m->vm_file)
115083 + get_file(new_m->vm_file);
115084 +
115085 + if (new_m->vm_ops && new_m->vm_ops->open)
115086 + new_m->vm_ops->open(new_m);
115087 +
115088 + if (new_below)
115089 + err = vma_adjust(vma_m, addr_m, vma_m->vm_end, vma_m->vm_pgoff +
115090 + ((addr_m - new_m->vm_start) >> PAGE_SHIFT), new_m);
115091 + else
115092 + err = vma_adjust(vma_m, vma_m->vm_start, addr_m, vma_m->vm_pgoff, new_m);
115093 +
115094 + if (err) {
115095 + if (new_m->vm_ops && new_m->vm_ops->close)
115096 + new_m->vm_ops->close(new_m);
115097 + if (new_m->vm_file)
115098 + fput(new_m->vm_file);
115099 + mpol_put(pol);
115100 + }
115101 + }
115102 +#endif
115103 +
115104 /* Success. */
115105 if (!err)
115106 return 0;
115107 @@ -2493,10 +2931,18 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115108 new->vm_ops->close(new);
115109 if (new->vm_file)
115110 fput(new->vm_file);
115111 - unlink_anon_vmas(new);
115112 out_free_mpol:
115113 mpol_put(vma_policy(new));
115114 out_free_vma:
115115 +
115116 +#ifdef CONFIG_PAX_SEGMEXEC
115117 + if (new_m) {
115118 + unlink_anon_vmas(new_m);
115119 + kmem_cache_free(vm_area_cachep, new_m);
115120 + }
115121 +#endif
115122 +
115123 + unlink_anon_vmas(new);
115124 kmem_cache_free(vm_area_cachep, new);
115125 out_err:
115126 return err;
115127 @@ -2509,6 +2955,15 @@ static int __split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115128 int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115129 unsigned long addr, int new_below)
115130 {
115131 +
115132 +#ifdef CONFIG_PAX_SEGMEXEC
115133 + if (mm->pax_flags & MF_PAX_SEGMEXEC) {
115134 + BUG_ON(vma->vm_end > SEGMEXEC_TASK_SIZE);
115135 + if (mm->map_count >= sysctl_max_map_count-1)
115136 + return -ENOMEM;
115137 + } else
115138 +#endif
115139 +
115140 if (mm->map_count >= sysctl_max_map_count)
115141 return -ENOMEM;
115142
115143 @@ -2520,11 +2975,30 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115144 * work. This now handles partial unmappings.
115145 * Jeremy Fitzhardinge <jeremy@goop.org>
115146 */
115147 +#ifdef CONFIG_PAX_SEGMEXEC
115148 int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
115149 {
115150 + int ret = __do_munmap(mm, start, len);
115151 + if (ret || !(mm->pax_flags & MF_PAX_SEGMEXEC))
115152 + return ret;
115153 +
115154 + return __do_munmap(mm, start + SEGMEXEC_TASK_SIZE, len);
115155 +}
115156 +
115157 +int __do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
115158 +#else
115159 +int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
115160 +#endif
115161 +{
115162 unsigned long end;
115163 struct vm_area_struct *vma, *prev, *last;
115164
115165 + /*
115166 + * mm->mmap_sem is required to protect against another thread
115167 + * changing the mappings in case we sleep.
115168 + */
115169 + verify_mm_writelocked(mm);
115170 +
115171 if ((start & ~PAGE_MASK) || start > TASK_SIZE || len > TASK_SIZE-start)
115172 return -EINVAL;
115173
115174 @@ -2602,6 +3076,8 @@ int do_munmap(struct mm_struct *mm, unsigned long start, size_t len)
115175 /* Fix up all other VM information */
115176 remove_vma_list(mm, vma);
115177
115178 + track_exec_limit(mm, start, end, 0UL);
115179 +
115180 return 0;
115181 }
115182
115183 @@ -2610,6 +3086,13 @@ int vm_munmap(unsigned long start, size_t len)
115184 int ret;
115185 struct mm_struct *mm = current->mm;
115186
115187 +
115188 +#ifdef CONFIG_PAX_SEGMEXEC
115189 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) &&
115190 + (len > SEGMEXEC_TASK_SIZE || start > SEGMEXEC_TASK_SIZE-len))
115191 + return -EINVAL;
115192 +#endif
115193 +
115194 down_write(&mm->mmap_sem);
115195 ret = do_munmap(mm, start, len);
115196 up_write(&mm->mmap_sem);
115197 @@ -2656,6 +3139,11 @@ SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
115198 down_write(&mm->mmap_sem);
115199 vma = find_vma(mm, start);
115200
115201 +#ifdef CONFIG_PAX_SEGMEXEC
115202 + if (vma && (mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_flags & VM_MAYEXEC))
115203 + goto out;
115204 +#endif
115205 +
115206 if (!vma || !(vma->vm_flags & VM_SHARED))
115207 goto out;
115208
115209 @@ -2692,16 +3180,6 @@ out:
115210 return ret;
115211 }
115212
115213 -static inline void verify_mm_writelocked(struct mm_struct *mm)
115214 -{
115215 -#ifdef CONFIG_DEBUG_VM
115216 - if (unlikely(down_read_trylock(&mm->mmap_sem))) {
115217 - WARN_ON(1);
115218 - up_read(&mm->mmap_sem);
115219 - }
115220 -#endif
115221 -}
115222 -
115223 /*
115224 * this is really a simplified "do_mmap". it only handles
115225 * anonymous maps. eventually we may be able to do some
115226 @@ -2715,6 +3193,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
115227 struct rb_node **rb_link, *rb_parent;
115228 pgoff_t pgoff = addr >> PAGE_SHIFT;
115229 int error;
115230 + unsigned long charged;
115231
115232 len = PAGE_ALIGN(len);
115233 if (!len)
115234 @@ -2722,10 +3201,24 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
115235
115236 flags = VM_DATA_DEFAULT_FLAGS | VM_ACCOUNT | mm->def_flags;
115237
115238 +#if defined(CONFIG_PAX_PAGEEXEC) || defined(CONFIG_PAX_SEGMEXEC)
115239 + if (mm->pax_flags & (MF_PAX_PAGEEXEC | MF_PAX_SEGMEXEC)) {
115240 + flags &= ~VM_EXEC;
115241 +
115242 +#ifdef CONFIG_PAX_MPROTECT
115243 + if (mm->pax_flags & MF_PAX_MPROTECT)
115244 + flags &= ~VM_MAYEXEC;
115245 +#endif
115246 +
115247 + }
115248 +#endif
115249 +
115250 error = get_unmapped_area(NULL, addr, len, 0, MAP_FIXED);
115251 if (error & ~PAGE_MASK)
115252 return error;
115253
115254 + charged = len >> PAGE_SHIFT;
115255 +
115256 error = mlock_future_check(mm, mm->def_flags, len);
115257 if (error)
115258 return error;
115259 @@ -2743,16 +3236,17 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
115260 &rb_parent)) {
115261 if (do_munmap(mm, addr, len))
115262 return -ENOMEM;
115263 + BUG_ON(find_vma_links(mm, addr, addr + len, &prev, &rb_link, &rb_parent));
115264 }
115265
115266 /* Check against address space limits *after* clearing old maps... */
115267 - if (!may_expand_vm(mm, len >> PAGE_SHIFT))
115268 + if (!may_expand_vm(mm, charged))
115269 return -ENOMEM;
115270
115271 if (mm->map_count > sysctl_max_map_count)
115272 return -ENOMEM;
115273
115274 - if (security_vm_enough_memory_mm(mm, len >> PAGE_SHIFT))
115275 + if (security_vm_enough_memory_mm(mm, charged))
115276 return -ENOMEM;
115277
115278 /* Can we just expand an old private anonymous mapping? */
115279 @@ -2766,7 +3260,7 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
115280 */
115281 vma = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
115282 if (!vma) {
115283 - vm_unacct_memory(len >> PAGE_SHIFT);
115284 + vm_unacct_memory(charged);
115285 return -ENOMEM;
115286 }
115287
115288 @@ -2780,10 +3274,11 @@ static unsigned long do_brk(unsigned long addr, unsigned long len)
115289 vma_link(mm, vma, prev, rb_link, rb_parent);
115290 out:
115291 perf_event_mmap(vma);
115292 - mm->total_vm += len >> PAGE_SHIFT;
115293 + mm->total_vm += charged;
115294 if (flags & VM_LOCKED)
115295 - mm->locked_vm += (len >> PAGE_SHIFT);
115296 + mm->locked_vm += charged;
115297 vma->vm_flags |= VM_SOFTDIRTY;
115298 + track_exec_limit(mm, addr, addr + len, flags);
115299 return addr;
115300 }
115301
115302 @@ -2845,6 +3340,7 @@ void exit_mmap(struct mm_struct *mm)
115303 while (vma) {
115304 if (vma->vm_flags & VM_ACCOUNT)
115305 nr_accounted += vma_pages(vma);
115306 + vma->vm_mirror = NULL;
115307 vma = remove_vma(vma);
115308 }
115309 vm_unacct_memory(nr_accounted);
115310 @@ -2859,6 +3355,13 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
115311 struct vm_area_struct *prev;
115312 struct rb_node **rb_link, *rb_parent;
115313
115314 +#ifdef CONFIG_PAX_SEGMEXEC
115315 + struct vm_area_struct *vma_m = NULL;
115316 +#endif
115317 +
115318 + if (security_mmap_addr(vma->vm_start))
115319 + return -EPERM;
115320 +
115321 /*
115322 * The vm_pgoff of a purely anonymous vma should be irrelevant
115323 * until its first write fault, when page's anon_vma and index
115324 @@ -2882,7 +3385,21 @@ int insert_vm_struct(struct mm_struct *mm, struct vm_area_struct *vma)
115325 security_vm_enough_memory_mm(mm, vma_pages(vma)))
115326 return -ENOMEM;
115327
115328 +#ifdef CONFIG_PAX_SEGMEXEC
115329 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (vma->vm_flags & VM_EXEC)) {
115330 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
115331 + if (!vma_m)
115332 + return -ENOMEM;
115333 + }
115334 +#endif
115335 +
115336 vma_link(mm, vma, prev, rb_link, rb_parent);
115337 +
115338 +#ifdef CONFIG_PAX_SEGMEXEC
115339 + if (vma_m)
115340 + BUG_ON(pax_mirror_vma(vma_m, vma));
115341 +#endif
115342 +
115343 return 0;
115344 }
115345
115346 @@ -2901,6 +3418,8 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
115347 struct rb_node **rb_link, *rb_parent;
115348 bool faulted_in_anon_vma = true;
115349
115350 + BUG_ON(vma->vm_mirror);
115351 +
115352 /*
115353 * If anonymous vma has not yet been faulted, update new pgoff
115354 * to match new location, to increase its chance of merging.
115355 @@ -2965,6 +3484,39 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
115356 return NULL;
115357 }
115358
115359 +#ifdef CONFIG_PAX_SEGMEXEC
115360 +long pax_mirror_vma(struct vm_area_struct *vma_m, struct vm_area_struct *vma)
115361 +{
115362 + struct vm_area_struct *prev_m;
115363 + struct rb_node **rb_link_m, *rb_parent_m;
115364 + struct mempolicy *pol_m;
115365 +
115366 + BUG_ON(!(vma->vm_mm->pax_flags & MF_PAX_SEGMEXEC) || !(vma->vm_flags & VM_EXEC));
115367 + BUG_ON(vma->vm_mirror || vma_m->vm_mirror);
115368 + BUG_ON(!mpol_equal(vma_policy(vma), vma_policy(vma_m)));
115369 + *vma_m = *vma;
115370 + INIT_LIST_HEAD(&vma_m->anon_vma_chain);
115371 + if (anon_vma_clone(vma_m, vma))
115372 + return -ENOMEM;
115373 + pol_m = vma_policy(vma_m);
115374 + mpol_get(pol_m);
115375 + set_vma_policy(vma_m, pol_m);
115376 + vma_m->vm_start += SEGMEXEC_TASK_SIZE;
115377 + vma_m->vm_end += SEGMEXEC_TASK_SIZE;
115378 + vma_m->vm_flags &= ~(VM_WRITE | VM_MAYWRITE | VM_ACCOUNT | VM_LOCKED);
115379 + vma_m->vm_page_prot = vm_get_page_prot(vma_m->vm_flags);
115380 + if (vma_m->vm_file)
115381 + get_file(vma_m->vm_file);
115382 + if (vma_m->vm_ops && vma_m->vm_ops->open)
115383 + vma_m->vm_ops->open(vma_m);
115384 + BUG_ON(find_vma_links(vma->vm_mm, vma_m->vm_start, vma_m->vm_end, &prev_m, &rb_link_m, &rb_parent_m));
115385 + vma_link(vma->vm_mm, vma_m, prev_m, rb_link_m, rb_parent_m);
115386 + vma_m->vm_mirror = vma;
115387 + vma->vm_mirror = vma_m;
115388 + return 0;
115389 +}
115390 +#endif
115391 +
115392 /*
115393 * Return true if the calling process may expand its vm space by the passed
115394 * number of pages
115395 @@ -2976,6 +3528,7 @@ int may_expand_vm(struct mm_struct *mm, unsigned long npages)
115396
115397 lim = rlimit(RLIMIT_AS) >> PAGE_SHIFT;
115398
115399 + gr_learn_resource(current, RLIMIT_AS, (cur + npages) << PAGE_SHIFT, 1);
115400 if (cur + npages > lim)
115401 return 0;
115402 return 1;
115403 @@ -3058,6 +3611,22 @@ static struct vm_area_struct *__install_special_mapping(
115404 vma->vm_start = addr;
115405 vma->vm_end = addr + len;
115406
115407 +#ifdef CONFIG_PAX_MPROTECT
115408 + if (mm->pax_flags & MF_PAX_MPROTECT) {
115409 +#ifndef CONFIG_PAX_MPROTECT_COMPAT
115410 + if ((vm_flags & (VM_WRITE | VM_EXEC)) == (VM_WRITE | VM_EXEC))
115411 + return ERR_PTR(-EPERM);
115412 + if (!(vm_flags & VM_EXEC))
115413 + vm_flags &= ~VM_MAYEXEC;
115414 +#else
115415 + if ((vm_flags & (VM_WRITE | VM_EXEC)) != VM_EXEC)
115416 + vm_flags &= ~(VM_EXEC | VM_MAYEXEC);
115417 +#endif
115418 + else
115419 + vm_flags &= ~VM_MAYWRITE;
115420 + }
115421 +#endif
115422 +
115423 vma->vm_flags = vm_flags | mm->def_flags | VM_DONTEXPAND | VM_SOFTDIRTY;
115424 vma->vm_page_prot = vm_get_page_prot(vma->vm_flags);
115425
115426 diff --git a/mm/mprotect.c b/mm/mprotect.c
115427 index e7d6f11..6116007 100644
115428 --- a/mm/mprotect.c
115429 +++ b/mm/mprotect.c
115430 @@ -24,10 +24,18 @@
115431 #include <linux/migrate.h>
115432 #include <linux/perf_event.h>
115433 #include <linux/ksm.h>
115434 +#include <linux/sched/sysctl.h>
115435 +
115436 +#ifdef CONFIG_PAX_MPROTECT
115437 +#include <linux/elf.h>
115438 +#include <linux/binfmts.h>
115439 +#endif
115440 +
115441 #include <asm/uaccess.h>
115442 #include <asm/pgtable.h>
115443 #include <asm/cacheflush.h>
115444 #include <asm/tlbflush.h>
115445 +#include <asm/mmu_context.h>
115446
115447 #include "internal.h"
115448
115449 @@ -254,6 +262,48 @@ unsigned long change_protection(struct vm_area_struct *vma, unsigned long start,
115450 return pages;
115451 }
115452
115453 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
115454 +/* called while holding the mmap semaphor for writing except stack expansion */
115455 +void track_exec_limit(struct mm_struct *mm, unsigned long start, unsigned long end, unsigned long prot)
115456 +{
115457 + unsigned long oldlimit, newlimit = 0UL;
115458 +
115459 + if (!(mm->pax_flags & MF_PAX_PAGEEXEC) || (__supported_pte_mask & _PAGE_NX))
115460 + return;
115461 +
115462 + spin_lock(&mm->page_table_lock);
115463 + oldlimit = mm->context.user_cs_limit;
115464 + if ((prot & VM_EXEC) && oldlimit < end)
115465 + /* USER_CS limit moved up */
115466 + newlimit = end;
115467 + else if (!(prot & VM_EXEC) && start < oldlimit && oldlimit <= end)
115468 + /* USER_CS limit moved down */
115469 + newlimit = start;
115470 +
115471 + if (newlimit) {
115472 + mm->context.user_cs_limit = newlimit;
115473 +
115474 +#ifdef CONFIG_SMP
115475 + wmb();
115476 + cpumask_clear(&mm->context.cpu_user_cs_mask);
115477 + cpumask_set_cpu(smp_processor_id(), &mm->context.cpu_user_cs_mask);
115478 +#endif
115479 +
115480 + set_user_cs(mm->context.user_cs_base, mm->context.user_cs_limit, smp_processor_id());
115481 + }
115482 + spin_unlock(&mm->page_table_lock);
115483 + if (newlimit == end) {
115484 + struct vm_area_struct *vma = find_vma(mm, oldlimit);
115485 +
115486 + for (; vma && vma->vm_start < end; vma = vma->vm_next)
115487 + if (is_vm_hugetlb_page(vma))
115488 + hugetlb_change_protection(vma, vma->vm_start, vma->vm_end, vma->vm_page_prot);
115489 + else
115490 + change_protection(vma, vma->vm_start, vma->vm_end, vma->vm_page_prot, vma_wants_writenotify(vma), 0);
115491 + }
115492 +}
115493 +#endif
115494 +
115495 int
115496 mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
115497 unsigned long start, unsigned long end, unsigned long newflags)
115498 @@ -266,11 +316,29 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
115499 int error;
115500 int dirty_accountable = 0;
115501
115502 +#ifdef CONFIG_PAX_SEGMEXEC
115503 + struct vm_area_struct *vma_m = NULL;
115504 + unsigned long start_m, end_m;
115505 +
115506 + start_m = start + SEGMEXEC_TASK_SIZE;
115507 + end_m = end + SEGMEXEC_TASK_SIZE;
115508 +#endif
115509 +
115510 if (newflags == oldflags) {
115511 *pprev = vma;
115512 return 0;
115513 }
115514
115515 + if (newflags & (VM_READ | VM_WRITE | VM_EXEC)) {
115516 + struct vm_area_struct *prev = vma->vm_prev, *next = vma->vm_next;
115517 +
115518 + if (next && (next->vm_flags & VM_GROWSDOWN) && sysctl_heap_stack_gap > next->vm_start - end)
115519 + return -ENOMEM;
115520 +
115521 + if (prev && (prev->vm_flags & VM_GROWSUP) && sysctl_heap_stack_gap > start - prev->vm_end)
115522 + return -ENOMEM;
115523 + }
115524 +
115525 /*
115526 * If we make a private mapping writable we increase our commit;
115527 * but (without finer accounting) cannot reduce our commit if we
115528 @@ -287,6 +355,42 @@ mprotect_fixup(struct vm_area_struct *vma, struct vm_area_struct **pprev,
115529 }
115530 }
115531
115532 +#ifdef CONFIG_PAX_SEGMEXEC
115533 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && ((oldflags ^ newflags) & VM_EXEC)) {
115534 + if (start != vma->vm_start) {
115535 + error = split_vma(mm, vma, start, 1);
115536 + if (error)
115537 + goto fail;
115538 + BUG_ON(!*pprev || (*pprev)->vm_next == vma);
115539 + *pprev = (*pprev)->vm_next;
115540 + }
115541 +
115542 + if (end != vma->vm_end) {
115543 + error = split_vma(mm, vma, end, 0);
115544 + if (error)
115545 + goto fail;
115546 + }
115547 +
115548 + if (pax_find_mirror_vma(vma)) {
115549 + error = __do_munmap(mm, start_m, end_m - start_m);
115550 + if (error)
115551 + goto fail;
115552 + } else {
115553 + vma_m = kmem_cache_zalloc(vm_area_cachep, GFP_KERNEL);
115554 + if (!vma_m) {
115555 + error = -ENOMEM;
115556 + goto fail;
115557 + }
115558 + vma->vm_flags = newflags;
115559 + error = pax_mirror_vma(vma_m, vma);
115560 + if (error) {
115561 + vma->vm_flags = oldflags;
115562 + goto fail;
115563 + }
115564 + }
115565 + }
115566 +#endif
115567 +
115568 /*
115569 * First try to merge with previous and/or next vma.
115570 */
115571 @@ -317,7 +421,19 @@ success:
115572 * vm_flags and vm_page_prot are protected by the mmap_sem
115573 * held in write mode.
115574 */
115575 +
115576 +#ifdef CONFIG_PAX_SEGMEXEC
115577 + if ((mm->pax_flags & MF_PAX_SEGMEXEC) && (newflags & VM_EXEC) && ((vma->vm_flags ^ newflags) & VM_READ))
115578 + pax_find_mirror_vma(vma)->vm_flags ^= VM_READ;
115579 +#endif
115580 +
115581 vma->vm_flags = newflags;
115582 +
115583 +#ifdef CONFIG_PAX_MPROTECT
115584 + if (mm->binfmt && mm->binfmt->handle_mprotect)
115585 + mm->binfmt->handle_mprotect(vma, newflags);
115586 +#endif
115587 +
115588 dirty_accountable = vma_wants_writenotify(vma);
115589 vma_set_page_prot(vma);
115590
115591 @@ -362,6 +478,17 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
115592 end = start + len;
115593 if (end <= start)
115594 return -ENOMEM;
115595 +
115596 +#ifdef CONFIG_PAX_SEGMEXEC
115597 + if (current->mm->pax_flags & MF_PAX_SEGMEXEC) {
115598 + if (end > SEGMEXEC_TASK_SIZE)
115599 + return -EINVAL;
115600 + } else
115601 +#endif
115602 +
115603 + if (end > TASK_SIZE)
115604 + return -EINVAL;
115605 +
115606 if (!arch_validate_prot(prot))
115607 return -EINVAL;
115608
115609 @@ -369,7 +496,7 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
115610 /*
115611 * Does the application expect PROT_READ to imply PROT_EXEC:
115612 */
115613 - if ((prot & PROT_READ) && (current->personality & READ_IMPLIES_EXEC))
115614 + if ((prot & (PROT_READ | PROT_WRITE)) && (current->personality & READ_IMPLIES_EXEC))
115615 prot |= PROT_EXEC;
115616
115617 vm_flags = calc_vm_prot_bits(prot);
115618 @@ -401,6 +528,11 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
115619 if (start > vma->vm_start)
115620 prev = vma;
115621
115622 +#ifdef CONFIG_PAX_MPROTECT
115623 + if (current->mm->binfmt && current->mm->binfmt->handle_mprotect)
115624 + current->mm->binfmt->handle_mprotect(vma, vm_flags);
115625 +#endif
115626 +
115627 for (nstart = start ; ; ) {
115628 unsigned long newflags;
115629
115630 @@ -411,6 +543,14 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
115631
115632 /* newflags >> 4 shift VM_MAY% in place of VM_% */
115633 if ((newflags & ~(newflags >> 4)) & (VM_READ | VM_WRITE | VM_EXEC)) {
115634 + if (prot & (PROT_WRITE | PROT_EXEC))
115635 + gr_log_rwxmprotect(vma);
115636 +
115637 + error = -EACCES;
115638 + goto out;
115639 + }
115640 +
115641 + if (!gr_acl_handle_mprotect(vma->vm_file, prot)) {
115642 error = -EACCES;
115643 goto out;
115644 }
115645 @@ -425,6 +565,9 @@ SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
115646 error = mprotect_fixup(vma, &prev, nstart, tmp, newflags);
115647 if (error)
115648 goto out;
115649 +
115650 + track_exec_limit(current->mm, nstart, tmp, vm_flags);
115651 +
115652 nstart = tmp;
115653
115654 if (nstart < prev->vm_end)
115655 diff --git a/mm/mremap.c b/mm/mremap.c
115656 index a7c93ec..69c2949 100644
115657 --- a/mm/mremap.c
115658 +++ b/mm/mremap.c
115659 @@ -143,6 +143,12 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd,
115660 continue;
115661 pte = ptep_get_and_clear(mm, old_addr, old_pte);
115662 pte = move_pte(pte, new_vma->vm_page_prot, old_addr, new_addr);
115663 +
115664 +#ifdef CONFIG_ARCH_TRACK_EXEC_LIMIT
115665 + if (!(__supported_pte_mask & _PAGE_NX) && pte_present(pte) && (new_vma->vm_flags & (VM_PAGEEXEC | VM_EXEC)) == VM_PAGEEXEC)
115666 + pte = pte_exprotect(pte);
115667 +#endif
115668 +
115669 pte = move_soft_dirty_pte(pte);
115670 set_pte_at(mm, new_addr, new_pte, pte);
115671 }
115672 @@ -355,6 +361,11 @@ static struct vm_area_struct *vma_to_resize(unsigned long addr,
115673 if (is_vm_hugetlb_page(vma))
115674 return ERR_PTR(-EINVAL);
115675
115676 +#ifdef CONFIG_PAX_SEGMEXEC
115677 + if (pax_find_mirror_vma(vma))
115678 + return ERR_PTR(-EINVAL);
115679 +#endif
115680 +
115681 /* We can't remap across vm area boundaries */
115682 if (old_len > vma->vm_end - addr)
115683 return ERR_PTR(-EFAULT);
115684 @@ -401,20 +412,25 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
115685 unsigned long ret = -EINVAL;
115686 unsigned long charged = 0;
115687 unsigned long map_flags;
115688 + unsigned long pax_task_size = TASK_SIZE;
115689
115690 if (new_addr & ~PAGE_MASK)
115691 goto out;
115692
115693 - if (new_len > TASK_SIZE || new_addr > TASK_SIZE - new_len)
115694 +#ifdef CONFIG_PAX_SEGMEXEC
115695 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
115696 + pax_task_size = SEGMEXEC_TASK_SIZE;
115697 +#endif
115698 +
115699 + pax_task_size -= PAGE_SIZE;
115700 +
115701 + if (new_len > TASK_SIZE || new_addr > pax_task_size - new_len)
115702 goto out;
115703
115704 /* Check if the location we're moving into overlaps the
115705 * old location at all, and fail if it does.
115706 */
115707 - if ((new_addr <= addr) && (new_addr+new_len) > addr)
115708 - goto out;
115709 -
115710 - if ((addr <= new_addr) && (addr+old_len) > new_addr)
115711 + if (addr + old_len > new_addr && new_addr + new_len > addr)
115712 goto out;
115713
115714 ret = do_munmap(mm, new_addr, new_len);
115715 @@ -483,6 +499,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
115716 unsigned long ret = -EINVAL;
115717 unsigned long charged = 0;
115718 bool locked = false;
115719 + unsigned long pax_task_size = TASK_SIZE;
115720
115721 if (flags & ~(MREMAP_FIXED | MREMAP_MAYMOVE))
115722 return ret;
115723 @@ -504,6 +521,17 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
115724 if (!new_len)
115725 return ret;
115726
115727 +#ifdef CONFIG_PAX_SEGMEXEC
115728 + if (mm->pax_flags & MF_PAX_SEGMEXEC)
115729 + pax_task_size = SEGMEXEC_TASK_SIZE;
115730 +#endif
115731 +
115732 + pax_task_size -= PAGE_SIZE;
115733 +
115734 + if (new_len > pax_task_size || addr > pax_task_size-new_len ||
115735 + old_len > pax_task_size || addr > pax_task_size-old_len)
115736 + return ret;
115737 +
115738 down_write(&current->mm->mmap_sem);
115739
115740 if (flags & MREMAP_FIXED) {
115741 @@ -554,6 +582,7 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
115742 new_addr = addr;
115743 }
115744 ret = addr;
115745 + track_exec_limit(vma->vm_mm, vma->vm_start, addr + new_len, vma->vm_flags);
115746 goto out;
115747 }
115748 }
115749 @@ -577,7 +606,12 @@ SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
115750 goto out;
115751 }
115752
115753 + map_flags = vma->vm_flags;
115754 ret = move_vma(vma, addr, old_len, new_len, new_addr, &locked);
115755 + if (!(ret & ~PAGE_MASK)) {
115756 + track_exec_limit(current->mm, addr, addr + old_len, 0UL);
115757 + track_exec_limit(current->mm, new_addr, new_addr + new_len, map_flags);
115758 + }
115759 }
115760 out:
115761 if (ret & ~PAGE_MASK)
115762 diff --git a/mm/nommu.c b/mm/nommu.c
115763 index 58ea364..7b01d28 100644
115764 --- a/mm/nommu.c
115765 +++ b/mm/nommu.c
115766 @@ -56,7 +56,6 @@ int sysctl_max_map_count = DEFAULT_MAX_MAP_COUNT;
115767 int sysctl_nr_trim_pages = CONFIG_NOMMU_INITIAL_TRIM_EXCESS;
115768 unsigned long sysctl_user_reserve_kbytes __read_mostly = 1UL << 17; /* 128MB */
115769 unsigned long sysctl_admin_reserve_kbytes __read_mostly = 1UL << 13; /* 8MB */
115770 -int heap_stack_gap = 0;
115771
115772 atomic_long_t mmap_pages_allocated;
115773
115774 @@ -863,15 +862,6 @@ struct vm_area_struct *find_vma(struct mm_struct *mm, unsigned long addr)
115775 EXPORT_SYMBOL(find_vma);
115776
115777 /*
115778 - * find a VMA
115779 - * - we don't extend stack VMAs under NOMMU conditions
115780 - */
115781 -struct vm_area_struct *find_extend_vma(struct mm_struct *mm, unsigned long addr)
115782 -{
115783 - return find_vma(mm, addr);
115784 -}
115785 -
115786 -/*
115787 * expand a stack to a given address
115788 * - not supported under NOMMU conditions
115789 */
115790 @@ -1535,6 +1525,7 @@ int split_vma(struct mm_struct *mm, struct vm_area_struct *vma,
115791
115792 /* most fields are the same, copy all, and then fixup */
115793 *new = *vma;
115794 + INIT_LIST_HEAD(&new->anon_vma_chain);
115795 *region = *vma->vm_region;
115796 new->vm_region = region;
115797
115798 @@ -1935,8 +1926,8 @@ void filemap_map_pages(struct vm_area_struct *vma, struct vm_fault *vmf)
115799 }
115800 EXPORT_SYMBOL(filemap_map_pages);
115801
115802 -static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
115803 - unsigned long addr, void *buf, int len, int write)
115804 +static ssize_t __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
115805 + unsigned long addr, void *buf, size_t len, int write)
115806 {
115807 struct vm_area_struct *vma;
115808
115809 @@ -1977,8 +1968,8 @@ static int __access_remote_vm(struct task_struct *tsk, struct mm_struct *mm,
115810 *
115811 * The caller must hold a reference on @mm.
115812 */
115813 -int access_remote_vm(struct mm_struct *mm, unsigned long addr,
115814 - void *buf, int len, int write)
115815 +ssize_t access_remote_vm(struct mm_struct *mm, unsigned long addr,
115816 + void *buf, size_t len, int write)
115817 {
115818 return __access_remote_vm(NULL, mm, addr, buf, len, write);
115819 }
115820 @@ -1987,7 +1978,7 @@ int access_remote_vm(struct mm_struct *mm, unsigned long addr,
115821 * Access another process' address space.
115822 * - source/target buffer must be kernel space
115823 */
115824 -int access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, int len, int write)
115825 +ssize_t access_process_vm(struct task_struct *tsk, unsigned long addr, void *buf, size_t len, int write)
115826 {
115827 struct mm_struct *mm;
115828
115829 diff --git a/mm/page-writeback.c b/mm/page-writeback.c
115830 index 5cccc12..1872e56 100644
115831 --- a/mm/page-writeback.c
115832 +++ b/mm/page-writeback.c
115833 @@ -852,7 +852,7 @@ static long long pos_ratio_polynom(unsigned long setpoint,
115834 * card's wb_dirty may rush to many times higher than wb_setpoint.
115835 * - the wb dirty thresh drops quickly due to change of JBOD workload
115836 */
115837 -static void wb_position_ratio(struct dirty_throttle_control *dtc)
115838 +static void __intentional_overflow(-1) wb_position_ratio(struct dirty_throttle_control *dtc)
115839 {
115840 struct bdi_writeback *wb = dtc->wb;
115841 unsigned long write_bw = wb->avg_write_bandwidth;
115842 diff --git a/mm/page_alloc.c b/mm/page_alloc.c
115843 index 5b5240b..2bc0996 100644
115844 --- a/mm/page_alloc.c
115845 +++ b/mm/page_alloc.c
115846 @@ -62,6 +62,7 @@
115847 #include <linux/sched/rt.h>
115848 #include <linux/page_owner.h>
115849 #include <linux/kthread.h>
115850 +#include <linux/random.h>
115851
115852 #include <asm/sections.h>
115853 #include <asm/tlbflush.h>
115854 @@ -427,7 +428,7 @@ out:
115855 * This usage means that zero-order pages may not be compound.
115856 */
115857
115858 -static void free_compound_page(struct page *page)
115859 +void free_compound_page(struct page *page)
115860 {
115861 __free_pages_ok(page, compound_order(page));
115862 }
115863 @@ -536,7 +537,7 @@ static inline void clear_page_guard(struct zone *zone, struct page *page,
115864 __mod_zone_freepage_state(zone, (1 << order), migratetype);
115865 }
115866 #else
115867 -struct page_ext_operations debug_guardpage_ops = { NULL, };
115868 +struct page_ext_operations debug_guardpage_ops = { .need = NULL, .init = NULL };
115869 static inline void set_page_guard(struct zone *zone, struct page *page,
115870 unsigned int order, int migratetype) {}
115871 static inline void clear_page_guard(struct zone *zone, struct page *page,
115872 @@ -908,6 +909,10 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
115873 bool compound = PageCompound(page);
115874 int i, bad = 0;
115875
115876 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
115877 + unsigned long index = 1UL << order;
115878 +#endif
115879 +
115880 VM_BUG_ON_PAGE(PageTail(page), page);
115881 VM_BUG_ON_PAGE(compound && compound_order(page) != order, page);
115882
115883 @@ -934,6 +939,12 @@ static bool free_pages_prepare(struct page *page, unsigned int order)
115884 debug_check_no_obj_freed(page_address(page),
115885 PAGE_SIZE << order);
115886 }
115887 +
115888 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
115889 + for (; index; --index)
115890 + sanitize_highpage(page + index - 1);
115891 +#endif
115892 +
115893 arch_free_page(page, order);
115894 kernel_map_pages(page, 1 << order, 0);
115895
115896 @@ -957,6 +968,20 @@ static void __free_pages_ok(struct page *page, unsigned int order)
115897 local_irq_restore(flags);
115898 }
115899
115900 +#ifdef CONFIG_PAX_LATENT_ENTROPY
115901 +bool __meminitdata extra_latent_entropy;
115902 +
115903 +static int __init setup_pax_extra_latent_entropy(char *str)
115904 +{
115905 + extra_latent_entropy = true;
115906 + return 0;
115907 +}
115908 +early_param("pax_extra_latent_entropy", setup_pax_extra_latent_entropy);
115909 +
115910 +volatile u64 latent_entropy __latent_entropy;
115911 +EXPORT_SYMBOL(latent_entropy);
115912 +#endif
115913 +
115914 static void __init __free_pages_boot_core(struct page *page,
115915 unsigned long pfn, unsigned int order)
115916 {
115917 @@ -973,6 +998,19 @@ static void __init __free_pages_boot_core(struct page *page,
115918 __ClearPageReserved(p);
115919 set_page_count(p, 0);
115920
115921 +#ifdef CONFIG_PAX_LATENT_ENTROPY
115922 + if (extra_latent_entropy && !PageHighMem(page) && page_to_pfn(page) < 0x100000) {
115923 + u64 hash = 0;
115924 + size_t index, end = PAGE_SIZE * nr_pages / sizeof hash;
115925 + const u64 *data = lowmem_page_address(page);
115926 +
115927 + for (index = 0; index < end; index++)
115928 + hash ^= hash + data[index];
115929 + latent_entropy ^= hash;
115930 + add_device_randomness((const void *)&latent_entropy, sizeof(latent_entropy));
115931 + }
115932 +#endif
115933 +
115934 page_zone(page)->managed_pages += nr_pages;
115935 set_page_refcounted(page);
115936 __free_pages(page, order);
115937 @@ -1029,7 +1067,6 @@ static inline bool __meminit meminit_pfn_in_nid(unsigned long pfn, int node,
115938 }
115939 #endif
115940
115941 -
115942 void __init __free_pages_bootmem(struct page *page, unsigned long pfn,
115943 unsigned int order)
115944 {
115945 @@ -1333,9 +1370,11 @@ static int prep_new_page(struct page *page, unsigned int order, gfp_t gfp_flags,
115946 kernel_map_pages(page, 1 << order, 1);
115947 kasan_alloc_pages(page, order);
115948
115949 +#ifndef CONFIG_PAX_MEMORY_SANITIZE
115950 if (gfp_flags & __GFP_ZERO)
115951 for (i = 0; i < (1 << order); i++)
115952 clear_highpage(page + i);
115953 +#endif
115954
115955 if (order && (gfp_flags & __GFP_COMP))
115956 prep_compound_page(page, order);
115957 @@ -2116,7 +2155,7 @@ struct page *buffered_rmqueue(struct zone *preferred_zone,
115958 }
115959
115960 __mod_zone_page_state(zone, NR_ALLOC_BATCH, -(1 << order));
115961 - if (atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]) <= 0 &&
115962 + if (atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]) <= 0 &&
115963 !test_bit(ZONE_FAIR_DEPLETED, &zone->flags))
115964 set_bit(ZONE_FAIR_DEPLETED, &zone->flags);
115965
115966 @@ -2435,7 +2474,7 @@ static void reset_alloc_batches(struct zone *preferred_zone)
115967 do {
115968 mod_zone_page_state(zone, NR_ALLOC_BATCH,
115969 high_wmark_pages(zone) - low_wmark_pages(zone) -
115970 - atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]));
115971 + atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]));
115972 clear_bit(ZONE_FAIR_DEPLETED, &zone->flags);
115973 } while (zone++ != preferred_zone);
115974 }
115975 @@ -6184,7 +6223,7 @@ static void __setup_per_zone_wmarks(void)
115976
115977 __mod_zone_page_state(zone, NR_ALLOC_BATCH,
115978 high_wmark_pages(zone) - low_wmark_pages(zone) -
115979 - atomic_long_read(&zone->vm_stat[NR_ALLOC_BATCH]));
115980 + atomic_long_read_unchecked(&zone->vm_stat[NR_ALLOC_BATCH]));
115981
115982 setup_zone_migrate_reserve(zone);
115983 spin_unlock_irqrestore(&zone->lock, flags);
115984 diff --git a/mm/percpu.c b/mm/percpu.c
115985 index 2dd7448..9bb6305 100644
115986 --- a/mm/percpu.c
115987 +++ b/mm/percpu.c
115988 @@ -131,7 +131,7 @@ static unsigned int pcpu_low_unit_cpu __read_mostly;
115989 static unsigned int pcpu_high_unit_cpu __read_mostly;
115990
115991 /* the address of the first chunk which starts with the kernel static area */
115992 -void *pcpu_base_addr __read_mostly;
115993 +void *pcpu_base_addr __read_only;
115994 EXPORT_SYMBOL_GPL(pcpu_base_addr);
115995
115996 static const int *pcpu_unit_map __read_mostly; /* cpu -> unit */
115997 diff --git a/mm/process_vm_access.c b/mm/process_vm_access.c
115998 index e88d071..d80e01a 100644
115999 --- a/mm/process_vm_access.c
116000 +++ b/mm/process_vm_access.c
116001 @@ -13,6 +13,7 @@
116002 #include <linux/uio.h>
116003 #include <linux/sched.h>
116004 #include <linux/highmem.h>
116005 +#include <linux/security.h>
116006 #include <linux/ptrace.h>
116007 #include <linux/slab.h>
116008 #include <linux/syscalls.h>
116009 @@ -154,19 +155,19 @@ static ssize_t process_vm_rw_core(pid_t pid, struct iov_iter *iter,
116010 ssize_t iov_len;
116011 size_t total_len = iov_iter_count(iter);
116012
116013 + return -ENOSYS; // PaX: until properly audited
116014 +
116015 /*
116016 * Work out how many pages of struct pages we're going to need
116017 * when eventually calling get_user_pages
116018 */
116019 for (i = 0; i < riovcnt; i++) {
116020 iov_len = rvec[i].iov_len;
116021 - if (iov_len > 0) {
116022 - nr_pages_iov = ((unsigned long)rvec[i].iov_base
116023 - + iov_len)
116024 - / PAGE_SIZE - (unsigned long)rvec[i].iov_base
116025 - / PAGE_SIZE + 1;
116026 - nr_pages = max(nr_pages, nr_pages_iov);
116027 - }
116028 + if (iov_len <= 0)
116029 + continue;
116030 + nr_pages_iov = ((unsigned long)rvec[i].iov_base + iov_len) / PAGE_SIZE -
116031 + (unsigned long)rvec[i].iov_base / PAGE_SIZE + 1;
116032 + nr_pages = max(nr_pages, nr_pages_iov);
116033 }
116034
116035 if (nr_pages == 0)
116036 @@ -194,6 +195,11 @@ static ssize_t process_vm_rw_core(pid_t pid, struct iov_iter *iter,
116037 goto free_proc_pages;
116038 }
116039
116040 + if (gr_handle_ptrace(task, vm_write ? PTRACE_POKETEXT : PTRACE_ATTACH)) {
116041 + rc = -EPERM;
116042 + goto put_task_struct;
116043 + }
116044 +
116045 mm = mm_access(task, PTRACE_MODE_ATTACH);
116046 if (!mm || IS_ERR(mm)) {
116047 rc = IS_ERR(mm) ? PTR_ERR(mm) : -ESRCH;
116048 diff --git a/mm/rmap.c b/mm/rmap.c
116049 index 171b687..1a4b7e8 100644
116050 --- a/mm/rmap.c
116051 +++ b/mm/rmap.c
116052 @@ -168,6 +168,10 @@ int anon_vma_prepare(struct vm_area_struct *vma)
116053 struct anon_vma *anon_vma = vma->anon_vma;
116054 struct anon_vma_chain *avc;
116055
116056 +#ifdef CONFIG_PAX_SEGMEXEC
116057 + struct anon_vma_chain *avc_m = NULL;
116058 +#endif
116059 +
116060 might_sleep();
116061 if (unlikely(!anon_vma)) {
116062 struct mm_struct *mm = vma->vm_mm;
116063 @@ -177,6 +181,12 @@ int anon_vma_prepare(struct vm_area_struct *vma)
116064 if (!avc)
116065 goto out_enomem;
116066
116067 +#ifdef CONFIG_PAX_SEGMEXEC
116068 + avc_m = anon_vma_chain_alloc(GFP_KERNEL);
116069 + if (!avc_m)
116070 + goto out_enomem_free_avc;
116071 +#endif
116072 +
116073 anon_vma = find_mergeable_anon_vma(vma);
116074 allocated = NULL;
116075 if (!anon_vma) {
116076 @@ -190,6 +200,19 @@ int anon_vma_prepare(struct vm_area_struct *vma)
116077 /* page_table_lock to protect against threads */
116078 spin_lock(&mm->page_table_lock);
116079 if (likely(!vma->anon_vma)) {
116080 +
116081 +#ifdef CONFIG_PAX_SEGMEXEC
116082 + struct vm_area_struct *vma_m = pax_find_mirror_vma(vma);
116083 +
116084 + if (vma_m) {
116085 + BUG_ON(vma_m->anon_vma);
116086 + vma_m->anon_vma = anon_vma;
116087 + anon_vma_chain_link(vma_m, avc_m, anon_vma);
116088 + anon_vma->degree++;
116089 + avc_m = NULL;
116090 + }
116091 +#endif
116092 +
116093 vma->anon_vma = anon_vma;
116094 anon_vma_chain_link(vma, avc, anon_vma);
116095 /* vma reference or self-parent link for new root */
116096 @@ -202,12 +225,24 @@ int anon_vma_prepare(struct vm_area_struct *vma)
116097
116098 if (unlikely(allocated))
116099 put_anon_vma(allocated);
116100 +
116101 +#ifdef CONFIG_PAX_SEGMEXEC
116102 + if (unlikely(avc_m))
116103 + anon_vma_chain_free(avc_m);
116104 +#endif
116105 +
116106 if (unlikely(avc))
116107 anon_vma_chain_free(avc);
116108 }
116109 return 0;
116110
116111 out_enomem_free_avc:
116112 +
116113 +#ifdef CONFIG_PAX_SEGMEXEC
116114 + if (avc_m)
116115 + anon_vma_chain_free(avc_m);
116116 +#endif
116117 +
116118 anon_vma_chain_free(avc);
116119 out_enomem:
116120 return -ENOMEM;
116121 @@ -251,7 +286,7 @@ static inline void unlock_anon_vma_root(struct anon_vma *root)
116122 * good chance of avoiding scanning the whole hierarchy when it searches where
116123 * page is mapped.
116124 */
116125 -int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src)
116126 +int anon_vma_clone(struct vm_area_struct *dst, const struct vm_area_struct *src)
116127 {
116128 struct anon_vma_chain *avc, *pavc;
116129 struct anon_vma *root = NULL;
116130 @@ -305,7 +340,7 @@ int anon_vma_clone(struct vm_area_struct *dst, struct vm_area_struct *src)
116131 * the corresponding VMA in the parent process is attached to.
116132 * Returns 0 on success, non-zero on failure.
116133 */
116134 -int anon_vma_fork(struct vm_area_struct *vma, struct vm_area_struct *pvma)
116135 +int anon_vma_fork(struct vm_area_struct *vma, const struct vm_area_struct *pvma)
116136 {
116137 struct anon_vma_chain *avc;
116138 struct anon_vma *anon_vma;
116139 @@ -425,8 +460,10 @@ static void anon_vma_ctor(void *data)
116140 void __init anon_vma_init(void)
116141 {
116142 anon_vma_cachep = kmem_cache_create("anon_vma", sizeof(struct anon_vma),
116143 - 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC, anon_vma_ctor);
116144 - anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain, SLAB_PANIC);
116145 + 0, SLAB_DESTROY_BY_RCU|SLAB_PANIC|SLAB_NO_SANITIZE,
116146 + anon_vma_ctor);
116147 + anon_vma_chain_cachep = KMEM_CACHE(anon_vma_chain,
116148 + SLAB_PANIC|SLAB_NO_SANITIZE);
116149 }
116150
116151 /*
116152 diff --git a/mm/shmem.c b/mm/shmem.c
116153 index dbe0c1e..22c16c7 100644
116154 --- a/mm/shmem.c
116155 +++ b/mm/shmem.c
116156 @@ -33,7 +33,7 @@
116157 #include <linux/swap.h>
116158 #include <linux/uio.h>
116159
116160 -static struct vfsmount *shm_mnt;
116161 +struct vfsmount *shm_mnt;
116162
116163 #ifdef CONFIG_SHMEM
116164 /*
116165 @@ -80,7 +80,7 @@ static struct vfsmount *shm_mnt;
116166 #define BOGO_DIRENT_SIZE 20
116167
116168 /* Symlink up to this size is kmalloc'ed instead of using a swappable page */
116169 -#define SHORT_SYMLINK_LEN 128
116170 +#define SHORT_SYMLINK_LEN 64
116171
116172 /*
116173 * shmem_fallocate communicates with shmem_fault or shmem_writepage via
116174 @@ -2549,6 +2549,11 @@ static const struct xattr_handler *shmem_xattr_handlers[] = {
116175 static int shmem_xattr_validate(const char *name)
116176 {
116177 struct { const char *prefix; size_t len; } arr[] = {
116178 +
116179 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
116180 + { XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN},
116181 +#endif
116182 +
116183 { XATTR_SECURITY_PREFIX, XATTR_SECURITY_PREFIX_LEN },
116184 { XATTR_TRUSTED_PREFIX, XATTR_TRUSTED_PREFIX_LEN }
116185 };
116186 @@ -2604,6 +2609,15 @@ static int shmem_setxattr(struct dentry *dentry, const char *name,
116187 if (err)
116188 return err;
116189
116190 +#ifdef CONFIG_PAX_XATTR_PAX_FLAGS
116191 + if (!strncmp(name, XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN)) {
116192 + if (strcmp(name, XATTR_NAME_PAX_FLAGS))
116193 + return -EOPNOTSUPP;
116194 + if (size > 8)
116195 + return -EINVAL;
116196 + }
116197 +#endif
116198 +
116199 return simple_xattr_set(&info->xattrs, name, value, size, flags);
116200 }
116201
116202 @@ -2987,8 +3001,7 @@ int shmem_fill_super(struct super_block *sb, void *data, int silent)
116203 int err = -ENOMEM;
116204
116205 /* Round up to L1_CACHE_BYTES to resist false sharing */
116206 - sbinfo = kzalloc(max((int)sizeof(struct shmem_sb_info),
116207 - L1_CACHE_BYTES), GFP_KERNEL);
116208 + sbinfo = kzalloc(max(sizeof(struct shmem_sb_info), L1_CACHE_BYTES), GFP_KERNEL);
116209 if (!sbinfo)
116210 return -ENOMEM;
116211
116212 diff --git a/mm/slab.c b/mm/slab.c
116213 index ae36028..eb6af9e 100644
116214 --- a/mm/slab.c
116215 +++ b/mm/slab.c
116216 @@ -116,6 +116,7 @@
116217 #include <linux/kmemcheck.h>
116218 #include <linux/memory.h>
116219 #include <linux/prefetch.h>
116220 +#include <linux/vmalloc.h>
116221
116222 #include <net/sock.h>
116223
116224 @@ -314,10 +315,12 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
116225 if ((x)->max_freeable < i) \
116226 (x)->max_freeable = i; \
116227 } while (0)
116228 -#define STATS_INC_ALLOCHIT(x) atomic_inc(&(x)->allochit)
116229 -#define STATS_INC_ALLOCMISS(x) atomic_inc(&(x)->allocmiss)
116230 -#define STATS_INC_FREEHIT(x) atomic_inc(&(x)->freehit)
116231 -#define STATS_INC_FREEMISS(x) atomic_inc(&(x)->freemiss)
116232 +#define STATS_INC_ALLOCHIT(x) atomic_inc_unchecked(&(x)->allochit)
116233 +#define STATS_INC_ALLOCMISS(x) atomic_inc_unchecked(&(x)->allocmiss)
116234 +#define STATS_INC_FREEHIT(x) atomic_inc_unchecked(&(x)->freehit)
116235 +#define STATS_INC_FREEMISS(x) atomic_inc_unchecked(&(x)->freemiss)
116236 +#define STATS_INC_SANITIZED(x) atomic_inc_unchecked(&(x)->sanitized)
116237 +#define STATS_INC_NOT_SANITIZED(x) atomic_inc_unchecked(&(x)->not_sanitized)
116238 #else
116239 #define STATS_INC_ACTIVE(x) do { } while (0)
116240 #define STATS_DEC_ACTIVE(x) do { } while (0)
116241 @@ -334,6 +337,8 @@ static void kmem_cache_node_init(struct kmem_cache_node *parent)
116242 #define STATS_INC_ALLOCMISS(x) do { } while (0)
116243 #define STATS_INC_FREEHIT(x) do { } while (0)
116244 #define STATS_INC_FREEMISS(x) do { } while (0)
116245 +#define STATS_INC_SANITIZED(x) do { } while (0)
116246 +#define STATS_INC_NOT_SANITIZED(x) do { } while (0)
116247 #endif
116248
116249 #if DEBUG
116250 @@ -450,7 +455,7 @@ static inline void *index_to_obj(struct kmem_cache *cache, struct page *page,
116251 * reciprocal_divide(offset, cache->reciprocal_buffer_size)
116252 */
116253 static inline unsigned int obj_to_index(const struct kmem_cache *cache,
116254 - const struct page *page, void *obj)
116255 + const struct page *page, const void *obj)
116256 {
116257 u32 offset = (obj - page->s_mem);
116258 return reciprocal_divide(offset, cache->reciprocal_buffer_size);
116259 @@ -1452,7 +1457,7 @@ void __init kmem_cache_init(void)
116260 * structures first. Without this, further allocations will bug.
116261 */
116262 kmalloc_caches[INDEX_NODE] = create_kmalloc_cache("kmalloc-node",
116263 - kmalloc_size(INDEX_NODE), ARCH_KMALLOC_FLAGS);
116264 + kmalloc_size(INDEX_NODE), SLAB_USERCOPY | ARCH_KMALLOC_FLAGS);
116265 slab_state = PARTIAL_NODE;
116266 setup_kmalloc_cache_index_table();
116267
116268 @@ -2074,7 +2079,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
116269
116270 cachep = find_mergeable(size, align, flags, name, ctor);
116271 if (cachep) {
116272 - cachep->refcount++;
116273 + atomic_inc(&cachep->refcount);
116274
116275 /*
116276 * Adjust the object sizes so that we clear
116277 @@ -3379,6 +3384,20 @@ static inline void __cache_free(struct kmem_cache *cachep, void *objp,
116278 struct array_cache *ac = cpu_cache_get(cachep);
116279
116280 check_irq_off();
116281 +
116282 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
116283 + if (cachep->flags & (SLAB_POISON | SLAB_NO_SANITIZE))
116284 + STATS_INC_NOT_SANITIZED(cachep);
116285 + else {
116286 + memset(objp, PAX_MEMORY_SANITIZE_VALUE, cachep->object_size);
116287 +
116288 + if (cachep->ctor)
116289 + cachep->ctor(objp);
116290 +
116291 + STATS_INC_SANITIZED(cachep);
116292 + }
116293 +#endif
116294 +
116295 kmemleak_free_recursive(objp, cachep->flags);
116296 objp = cache_free_debugcheck(cachep, objp, caller);
116297
116298 @@ -3491,7 +3510,7 @@ __do_kmalloc_node(size_t size, gfp_t flags, int node, unsigned long caller)
116299 return kmem_cache_alloc_node_trace(cachep, flags, node, size);
116300 }
116301
116302 -void *__kmalloc_node(size_t size, gfp_t flags, int node)
116303 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
116304 {
116305 return __do_kmalloc_node(size, flags, node, _RET_IP_);
116306 }
116307 @@ -3511,7 +3530,7 @@ EXPORT_SYMBOL(__kmalloc_node_track_caller);
116308 * @flags: the type of memory to allocate (see kmalloc).
116309 * @caller: function caller for debug tracking of the caller
116310 */
116311 -static __always_inline void *__do_kmalloc(size_t size, gfp_t flags,
116312 +static __always_inline void * __size_overflow(1) __do_kmalloc(size_t size, gfp_t flags,
116313 unsigned long caller)
116314 {
116315 struct kmem_cache *cachep;
116316 @@ -3584,6 +3603,7 @@ void kfree(const void *objp)
116317
116318 if (unlikely(ZERO_OR_NULL_PTR(objp)))
116319 return;
116320 + VM_BUG_ON(!virt_addr_valid(objp));
116321 local_irq_save(flags);
116322 kfree_debugcheck(objp);
116323 c = virt_to_cache(objp);
116324 @@ -4003,14 +4023,22 @@ void slabinfo_show_stats(struct seq_file *m, struct kmem_cache *cachep)
116325 }
116326 /* cpu stats */
116327 {
116328 - unsigned long allochit = atomic_read(&cachep->allochit);
116329 - unsigned long allocmiss = atomic_read(&cachep->allocmiss);
116330 - unsigned long freehit = atomic_read(&cachep->freehit);
116331 - unsigned long freemiss = atomic_read(&cachep->freemiss);
116332 + unsigned long allochit = atomic_read_unchecked(&cachep->allochit);
116333 + unsigned long allocmiss = atomic_read_unchecked(&cachep->allocmiss);
116334 + unsigned long freehit = atomic_read_unchecked(&cachep->freehit);
116335 + unsigned long freemiss = atomic_read_unchecked(&cachep->freemiss);
116336
116337 seq_printf(m, " : cpustat %6lu %6lu %6lu %6lu",
116338 allochit, allocmiss, freehit, freemiss);
116339 }
116340 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
116341 + {
116342 + unsigned long sanitized = atomic_read_unchecked(&cachep->sanitized);
116343 + unsigned long not_sanitized = atomic_read_unchecked(&cachep->not_sanitized);
116344 +
116345 + seq_printf(m, " : pax %6lu %6lu", sanitized, not_sanitized);
116346 + }
116347 +#endif
116348 #endif
116349 }
116350
116351 @@ -4218,13 +4246,80 @@ static const struct file_operations proc_slabstats_operations = {
116352 static int __init slab_proc_init(void)
116353 {
116354 #ifdef CONFIG_DEBUG_SLAB_LEAK
116355 - proc_create("slab_allocators", 0, NULL, &proc_slabstats_operations);
116356 + proc_create("slab_allocators", S_IRUSR, NULL, &proc_slabstats_operations);
116357 #endif
116358 return 0;
116359 }
116360 module_init(slab_proc_init);
116361 #endif
116362
116363 +bool is_usercopy_object(const void *ptr)
116364 +{
116365 + struct page *page;
116366 + struct kmem_cache *cachep;
116367 +
116368 + if (ZERO_OR_NULL_PTR(ptr))
116369 + return false;
116370 +
116371 + if (!slab_is_available())
116372 + return false;
116373 +
116374 + if (is_vmalloc_addr(ptr)
116375 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
116376 + && !object_starts_on_stack(ptr)
116377 +#endif
116378 + ) {
116379 + struct vm_struct *vm = find_vm_area(ptr);
116380 + if (vm && (vm->flags & VM_USERCOPY))
116381 + return true;
116382 + return false;
116383 + }
116384 +
116385 + if (!virt_addr_valid(ptr))
116386 + return false;
116387 +
116388 + page = virt_to_head_page(ptr);
116389 +
116390 + if (!PageSlab(page))
116391 + return false;
116392 +
116393 + cachep = page->slab_cache;
116394 + return cachep->flags & SLAB_USERCOPY;
116395 +}
116396 +
116397 +#ifdef CONFIG_PAX_USERCOPY
116398 +const char *check_heap_object(const void *ptr, unsigned long n)
116399 +{
116400 + struct page *page;
116401 + struct kmem_cache *cachep;
116402 + unsigned int objnr;
116403 + unsigned long offset;
116404 +
116405 + if (ZERO_OR_NULL_PTR(ptr))
116406 + return "<null>";
116407 +
116408 + if (!virt_addr_valid(ptr))
116409 + return NULL;
116410 +
116411 + page = virt_to_head_page(ptr);
116412 +
116413 + if (!PageSlab(page))
116414 + return NULL;
116415 +
116416 + cachep = page->slab_cache;
116417 + if (!(cachep->flags & SLAB_USERCOPY))
116418 + return cachep->name;
116419 +
116420 + objnr = obj_to_index(cachep, page, ptr);
116421 + BUG_ON(objnr >= cachep->num);
116422 + offset = ptr - index_to_obj(cachep, page, objnr) - obj_offset(cachep);
116423 + if (offset <= cachep->object_size && n <= cachep->object_size - offset)
116424 + return NULL;
116425 +
116426 + return cachep->name;
116427 +}
116428 +#endif
116429 +
116430 /**
116431 * ksize - get the actual amount of memory allocated for a given object
116432 * @objp: Pointer to the object
116433 diff --git a/mm/slab.h b/mm/slab.h
116434 index 8da63e4..50c423b 100644
116435 --- a/mm/slab.h
116436 +++ b/mm/slab.h
116437 @@ -22,7 +22,7 @@ struct kmem_cache {
116438 unsigned int align; /* Alignment as calculated */
116439 unsigned long flags; /* Active flags on the slab */
116440 const char *name; /* Slab name for sysfs */
116441 - int refcount; /* Use counter */
116442 + atomic_t refcount; /* Use counter */
116443 void (*ctor)(void *); /* Called on object slot creation */
116444 struct list_head list; /* List of all slab caches on the system */
116445 };
116446 @@ -66,6 +66,20 @@ extern struct list_head slab_caches;
116447 /* The slab cache that manages slab cache information */
116448 extern struct kmem_cache *kmem_cache;
116449
116450 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
116451 +#ifdef CONFIG_X86_64
116452 +#define PAX_MEMORY_SANITIZE_VALUE '\xfe'
116453 +#else
116454 +#define PAX_MEMORY_SANITIZE_VALUE '\xff'
116455 +#endif
116456 +enum pax_sanitize_mode {
116457 + PAX_SANITIZE_SLAB_OFF = 0,
116458 + PAX_SANITIZE_SLAB_FAST,
116459 + PAX_SANITIZE_SLAB_FULL,
116460 +};
116461 +extern enum pax_sanitize_mode pax_sanitize_slab;
116462 +#endif
116463 +
116464 unsigned long calculate_alignment(unsigned long flags,
116465 unsigned long align, unsigned long size);
116466
116467 @@ -115,7 +129,8 @@ static inline unsigned long kmem_cache_flags(unsigned long object_size,
116468
116469 /* Legal flag mask for kmem_cache_create(), for various configurations */
116470 #define SLAB_CORE_FLAGS (SLAB_HWCACHE_ALIGN | SLAB_CACHE_DMA | SLAB_PANIC | \
116471 - SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS )
116472 + SLAB_DESTROY_BY_RCU | SLAB_DEBUG_OBJECTS | \
116473 + SLAB_USERCOPY | SLAB_NO_SANITIZE)
116474
116475 #if defined(CONFIG_DEBUG_SLAB)
116476 #define SLAB_DEBUG_FLAGS (SLAB_RED_ZONE | SLAB_POISON | SLAB_STORE_USER)
116477 @@ -316,6 +331,9 @@ static inline struct kmem_cache *cache_from_obj(struct kmem_cache *s, void *x)
116478 return s;
116479
116480 page = virt_to_head_page(x);
116481 +
116482 + BUG_ON(!PageSlab(page));
116483 +
116484 cachep = page->slab_cache;
116485 if (slab_equal_or_root(cachep, s))
116486 return cachep;
116487 diff --git a/mm/slab_common.c b/mm/slab_common.c
116488 index 8683110..916e2c5 100644
116489 --- a/mm/slab_common.c
116490 +++ b/mm/slab_common.c
116491 @@ -25,11 +25,35 @@
116492
116493 #include "slab.h"
116494
116495 -enum slab_state slab_state;
116496 +enum slab_state slab_state __read_only;
116497 LIST_HEAD(slab_caches);
116498 DEFINE_MUTEX(slab_mutex);
116499 struct kmem_cache *kmem_cache;
116500
116501 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
116502 +enum pax_sanitize_mode pax_sanitize_slab __read_only = PAX_SANITIZE_SLAB_FAST;
116503 +static int __init pax_sanitize_slab_setup(char *str)
116504 +{
116505 + if (!str)
116506 + return 0;
116507 +
116508 + if (!strcmp(str, "0") || !strcmp(str, "off")) {
116509 + pr_info("PaX slab sanitization: %s\n", "disabled");
116510 + pax_sanitize_slab = PAX_SANITIZE_SLAB_OFF;
116511 + } else if (!strcmp(str, "1") || !strcmp(str, "fast")) {
116512 + pr_info("PaX slab sanitization: %s\n", "fast");
116513 + pax_sanitize_slab = PAX_SANITIZE_SLAB_FAST;
116514 + } else if (!strcmp(str, "full")) {
116515 + pr_info("PaX slab sanitization: %s\n", "full");
116516 + pax_sanitize_slab = PAX_SANITIZE_SLAB_FULL;
116517 + } else
116518 + pr_err("PaX slab sanitization: unsupported option '%s'\n", str);
116519 +
116520 + return 0;
116521 +}
116522 +early_param("pax_sanitize_slab", pax_sanitize_slab_setup);
116523 +#endif
116524 +
116525 /*
116526 * Set of flags that will prevent slab merging
116527 */
116528 @@ -43,7 +67,7 @@ struct kmem_cache *kmem_cache;
116529 * Merge control. If this is set then no merging of slab caches will occur.
116530 * (Could be removed. This was introduced to pacify the merge skeptics.)
116531 */
116532 -static int slab_nomerge;
116533 +static int slab_nomerge = 1;
116534
116535 static int __init setup_slab_nomerge(char *str)
116536 {
116537 @@ -216,7 +240,7 @@ int slab_unmergeable(struct kmem_cache *s)
116538 /*
116539 * We may have set a slab to be unmergeable during bootstrap.
116540 */
116541 - if (s->refcount < 0)
116542 + if (atomic_read(&s->refcount) < 0)
116543 return 1;
116544
116545 return 0;
116546 @@ -320,7 +344,7 @@ do_kmem_cache_create(const char *name, size_t object_size, size_t size,
116547 if (err)
116548 goto out_free_cache;
116549
116550 - s->refcount = 1;
116551 + atomic_set(&s->refcount, 1);
116552 list_add(&s->list, &slab_caches);
116553 out:
116554 if (err)
116555 @@ -385,6 +409,13 @@ kmem_cache_create(const char *name, size_t size, size_t align,
116556 */
116557 flags &= CACHE_CREATE_MASK;
116558
116559 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
116560 + if (pax_sanitize_slab == PAX_SANITIZE_SLAB_OFF || (flags & SLAB_DESTROY_BY_RCU))
116561 + flags |= SLAB_NO_SANITIZE;
116562 + else if (pax_sanitize_slab == PAX_SANITIZE_SLAB_FULL)
116563 + flags &= ~SLAB_NO_SANITIZE;
116564 +#endif
116565 +
116566 s = __kmem_cache_alias(name, size, align, flags, ctor);
116567 if (s)
116568 goto out_unlock;
116569 @@ -455,7 +486,7 @@ static void do_kmem_cache_release(struct list_head *release,
116570 rcu_barrier();
116571
116572 list_for_each_entry_safe(s, s2, release, list) {
116573 -#ifdef SLAB_SUPPORTS_SYSFS
116574 +#if defined(SLAB_SUPPORTS_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
116575 sysfs_slab_remove(s);
116576 #else
116577 slab_kmem_cache_release(s);
116578 @@ -624,8 +655,7 @@ void kmem_cache_destroy(struct kmem_cache *s)
116579
116580 mutex_lock(&slab_mutex);
116581
116582 - s->refcount--;
116583 - if (s->refcount)
116584 + if (!atomic_dec_and_test(&s->refcount))
116585 goto out_unlock;
116586
116587 for_each_memcg_cache_safe(c, c2, s) {
116588 @@ -690,7 +720,7 @@ void __init create_boot_cache(struct kmem_cache *s, const char *name, size_t siz
116589 panic("Creation of kmalloc slab %s size=%zu failed. Reason %d\n",
116590 name, size, err);
116591
116592 - s->refcount = -1; /* Exempt from merging for now */
116593 + atomic_set(&s->refcount, -1); /* Exempt from merging for now */
116594 }
116595
116596 struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
116597 @@ -703,7 +733,7 @@ struct kmem_cache *__init create_kmalloc_cache(const char *name, size_t size,
116598
116599 create_boot_cache(s, name, size, flags);
116600 list_add(&s->list, &slab_caches);
116601 - s->refcount = 1;
116602 + atomic_set(&s->refcount, 1);
116603 return s;
116604 }
116605
116606 @@ -715,6 +745,11 @@ struct kmem_cache *kmalloc_dma_caches[KMALLOC_SHIFT_HIGH + 1];
116607 EXPORT_SYMBOL(kmalloc_dma_caches);
116608 #endif
116609
116610 +#ifdef CONFIG_PAX_USERCOPY_SLABS
116611 +struct kmem_cache *kmalloc_usercopy_caches[KMALLOC_SHIFT_HIGH + 1];
116612 +EXPORT_SYMBOL(kmalloc_usercopy_caches);
116613 +#endif
116614 +
116615 /*
116616 * Conversion table for small slabs sizes / 8 to the index in the
116617 * kmalloc array. This is necessary for slabs < 192 since we have non power
116618 @@ -779,6 +814,13 @@ struct kmem_cache *kmalloc_slab(size_t size, gfp_t flags)
116619 return kmalloc_dma_caches[index];
116620
116621 #endif
116622 +
116623 +#ifdef CONFIG_PAX_USERCOPY_SLABS
116624 + if (unlikely((flags & GFP_USERCOPY)))
116625 + return kmalloc_usercopy_caches[index];
116626 +
116627 +#endif
116628 +
116629 return kmalloc_caches[index];
116630 }
116631
116632 @@ -871,7 +913,7 @@ void __init create_kmalloc_caches(unsigned long flags)
116633
116634 for (i = KMALLOC_SHIFT_LOW; i <= KMALLOC_SHIFT_HIGH; i++) {
116635 if (!kmalloc_caches[i])
116636 - new_kmalloc_cache(i, flags);
116637 + new_kmalloc_cache(i, SLAB_USERCOPY | flags);
116638
116639 /*
116640 * Caches that are not of the two-to-the-power-of size.
116641 @@ -879,9 +921,9 @@ void __init create_kmalloc_caches(unsigned long flags)
116642 * earlier power of two caches
116643 */
116644 if (KMALLOC_MIN_SIZE <= 32 && !kmalloc_caches[1] && i == 6)
116645 - new_kmalloc_cache(1, flags);
116646 + new_kmalloc_cache(1, SLAB_USERCOPY | flags);
116647 if (KMALLOC_MIN_SIZE <= 64 && !kmalloc_caches[2] && i == 7)
116648 - new_kmalloc_cache(2, flags);
116649 + new_kmalloc_cache(2, SLAB_USERCOPY | flags);
116650 }
116651
116652 /* Kmalloc array is now usable */
116653 @@ -902,6 +944,23 @@ void __init create_kmalloc_caches(unsigned long flags)
116654 }
116655 }
116656 #endif
116657 +
116658 +#ifdef CONFIG_PAX_USERCOPY_SLABS
116659 + for (i = 0; i <= KMALLOC_SHIFT_HIGH; i++) {
116660 + struct kmem_cache *s = kmalloc_caches[i];
116661 +
116662 + if (s) {
116663 + int size = kmalloc_size(i);
116664 + char *n = kasprintf(GFP_NOWAIT,
116665 + "usercopy-kmalloc-%d", size);
116666 +
116667 + BUG_ON(!n);
116668 + kmalloc_usercopy_caches[i] = create_kmalloc_cache(n,
116669 + size, SLAB_USERCOPY | flags);
116670 + }
116671 + }
116672 +#endif
116673 +
116674 }
116675 #endif /* !CONFIG_SLOB */
116676
116677 @@ -961,6 +1020,9 @@ static void print_slabinfo_header(struct seq_file *m)
116678 seq_puts(m, " : globalstat <listallocs> <maxobjs> <grown> <reaped> "
116679 "<error> <maxfreeable> <nodeallocs> <remotefrees> <alienoverflow>");
116680 seq_puts(m, " : cpustat <allochit> <allocmiss> <freehit> <freemiss>");
116681 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
116682 + seq_puts(m, " : pax <sanitized> <not_sanitized>");
116683 +#endif
116684 #endif
116685 seq_putc(m, '\n');
116686 }
116687 @@ -1090,7 +1152,7 @@ static int __init slab_proc_init(void)
116688 module_init(slab_proc_init);
116689 #endif /* CONFIG_SLABINFO */
116690
116691 -static __always_inline void *__do_krealloc(const void *p, size_t new_size,
116692 +static __always_inline void * __size_overflow(2) __do_krealloc(const void *p, size_t new_size,
116693 gfp_t flags)
116694 {
116695 void *ret;
116696 diff --git a/mm/slob.c b/mm/slob.c
116697 index 4765f65..5dec45e 100644
116698 --- a/mm/slob.c
116699 +++ b/mm/slob.c
116700 @@ -67,6 +67,7 @@
116701 #include <linux/rcupdate.h>
116702 #include <linux/list.h>
116703 #include <linux/kmemleak.h>
116704 +#include <linux/vmalloc.h>
116705
116706 #include <trace/events/kmem.h>
116707
116708 @@ -157,7 +158,7 @@ static void set_slob(slob_t *s, slobidx_t size, slob_t *next)
116709 /*
116710 * Return the size of a slob block.
116711 */
116712 -static slobidx_t slob_units(slob_t *s)
116713 +static slobidx_t slob_units(const slob_t *s)
116714 {
116715 if (s->units > 0)
116716 return s->units;
116717 @@ -167,7 +168,7 @@ static slobidx_t slob_units(slob_t *s)
116718 /*
116719 * Return the next free slob block pointer after this one.
116720 */
116721 -static slob_t *slob_next(slob_t *s)
116722 +static slob_t *slob_next(const slob_t *s)
116723 {
116724 slob_t *base = (slob_t *)((unsigned long)s & PAGE_MASK);
116725 slobidx_t next;
116726 @@ -182,14 +183,14 @@ static slob_t *slob_next(slob_t *s)
116727 /*
116728 * Returns true if s is the last free block in its page.
116729 */
116730 -static int slob_last(slob_t *s)
116731 +static int slob_last(const slob_t *s)
116732 {
116733 return !((unsigned long)slob_next(s) & ~PAGE_MASK);
116734 }
116735
116736 -static void *slob_new_pages(gfp_t gfp, int order, int node)
116737 +static struct page *slob_new_pages(gfp_t gfp, unsigned int order, int node)
116738 {
116739 - void *page;
116740 + struct page *page;
116741
116742 #ifdef CONFIG_NUMA
116743 if (node != NUMA_NO_NODE)
116744 @@ -201,14 +202,18 @@ static void *slob_new_pages(gfp_t gfp, int order, int node)
116745 if (!page)
116746 return NULL;
116747
116748 - return page_address(page);
116749 + __SetPageSlab(page);
116750 + return page;
116751 }
116752
116753 -static void slob_free_pages(void *b, int order)
116754 +static void slob_free_pages(struct page *sp, int order)
116755 {
116756 if (current->reclaim_state)
116757 current->reclaim_state->reclaimed_slab += 1 << order;
116758 - free_pages((unsigned long)b, order);
116759 + __ClearPageSlab(sp);
116760 + page_mapcount_reset(sp);
116761 + sp->private = 0;
116762 + __free_pages(sp, order);
116763 }
116764
116765 /*
116766 @@ -313,15 +318,15 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
116767
116768 /* Not enough space: must allocate a new page */
116769 if (!b) {
116770 - b = slob_new_pages(gfp & ~__GFP_ZERO, 0, node);
116771 - if (!b)
116772 + sp = slob_new_pages(gfp & ~__GFP_ZERO, 0, node);
116773 + if (!sp)
116774 return NULL;
116775 - sp = virt_to_page(b);
116776 - __SetPageSlab(sp);
116777 + b = page_address(sp);
116778
116779 spin_lock_irqsave(&slob_lock, flags);
116780 sp->units = SLOB_UNITS(PAGE_SIZE);
116781 sp->freelist = b;
116782 + sp->private = 0;
116783 INIT_LIST_HEAD(&sp->lru);
116784 set_slob(b, SLOB_UNITS(PAGE_SIZE), b + SLOB_UNITS(PAGE_SIZE));
116785 set_slob_page_free(sp, slob_list);
116786 @@ -337,7 +342,7 @@ static void *slob_alloc(size_t size, gfp_t gfp, int align, int node)
116787 /*
116788 * slob_free: entry point into the slob allocator.
116789 */
116790 -static void slob_free(void *block, int size)
116791 +static void slob_free(struct kmem_cache *c, void *block, int size)
116792 {
116793 struct page *sp;
116794 slob_t *prev, *next, *b = (slob_t *)block;
116795 @@ -359,12 +364,15 @@ static void slob_free(void *block, int size)
116796 if (slob_page_free(sp))
116797 clear_slob_page_free(sp);
116798 spin_unlock_irqrestore(&slob_lock, flags);
116799 - __ClearPageSlab(sp);
116800 - page_mapcount_reset(sp);
116801 - slob_free_pages(b, 0);
116802 + slob_free_pages(sp, 0);
116803 return;
116804 }
116805
116806 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
116807 + if (pax_sanitize_slab && !(c && (c->flags & SLAB_NO_SANITIZE)))
116808 + memset(block, PAX_MEMORY_SANITIZE_VALUE, size);
116809 +#endif
116810 +
116811 if (!slob_page_free(sp)) {
116812 /* This slob page is about to become partially free. Easy! */
116813 sp->units = units;
116814 @@ -424,11 +432,10 @@ out:
116815 */
116816
116817 static __always_inline void *
116818 -__do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
116819 +__do_kmalloc_node_align(size_t size, gfp_t gfp, int node, unsigned long caller, int align)
116820 {
116821 - unsigned int *m;
116822 - int align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
116823 - void *ret;
116824 + slob_t *m;
116825 + void *ret = NULL;
116826
116827 gfp &= gfp_allowed_mask;
116828
116829 @@ -442,27 +449,45 @@ __do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
116830
116831 if (!m)
116832 return NULL;
116833 - *m = size;
116834 + BUILD_BUG_ON(ARCH_KMALLOC_MINALIGN < 2 * SLOB_UNIT);
116835 + BUILD_BUG_ON(ARCH_SLAB_MINALIGN < 2 * SLOB_UNIT);
116836 + m[0].units = size;
116837 + m[1].units = align;
116838 ret = (void *)m + align;
116839
116840 trace_kmalloc_node(caller, ret,
116841 size, size + align, gfp, node);
116842 } else {
116843 unsigned int order = get_order(size);
116844 + struct page *page;
116845
116846 if (likely(order))
116847 gfp |= __GFP_COMP;
116848 - ret = slob_new_pages(gfp, order, node);
116849 + page = slob_new_pages(gfp, order, node);
116850 + if (page) {
116851 + ret = page_address(page);
116852 + page->private = size;
116853 + }
116854
116855 trace_kmalloc_node(caller, ret,
116856 size, PAGE_SIZE << order, gfp, node);
116857 }
116858
116859 - kmemleak_alloc(ret, size, 1, gfp);
116860 return ret;
116861 }
116862
116863 -void *__kmalloc(size_t size, gfp_t gfp)
116864 +static __always_inline void *
116865 +__do_kmalloc_node(size_t size, gfp_t gfp, int node, unsigned long caller)
116866 +{
116867 + int align = max(ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
116868 + void *ret = __do_kmalloc_node_align(size, gfp, node, caller, align);
116869 +
116870 + if (!ZERO_OR_NULL_PTR(ret))
116871 + kmemleak_alloc(ret, size, 1, gfp);
116872 + return ret;
116873 +}
116874 +
116875 +void * __size_overflow(1) __kmalloc(size_t size, gfp_t gfp)
116876 {
116877 return __do_kmalloc_node(size, gfp, NUMA_NO_NODE, _RET_IP_);
116878 }
116879 @@ -491,34 +516,123 @@ void kfree(const void *block)
116880 return;
116881 kmemleak_free(block);
116882
116883 + VM_BUG_ON(!virt_addr_valid(block));
116884 sp = virt_to_page(block);
116885 - if (PageSlab(sp)) {
116886 + VM_BUG_ON(!PageSlab(sp));
116887 + if (!sp->private) {
116888 int align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
116889 - unsigned int *m = (unsigned int *)(block - align);
116890 - slob_free(m, *m + align);
116891 - } else
116892 + slob_t *m = (slob_t *)(block - align);
116893 + slob_free(NULL, m, m[0].units + align);
116894 + } else {
116895 + __ClearPageSlab(sp);
116896 + page_mapcount_reset(sp);
116897 + sp->private = 0;
116898 __free_pages(sp, compound_order(sp));
116899 + }
116900 }
116901 EXPORT_SYMBOL(kfree);
116902
116903 +bool is_usercopy_object(const void *ptr)
116904 +{
116905 + if (!slab_is_available())
116906 + return false;
116907 +
116908 + if (is_vmalloc_addr(ptr)
116909 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
116910 + && !object_starts_on_stack(ptr)
116911 +#endif
116912 + ) {
116913 + struct vm_struct *vm = find_vm_area(ptr);
116914 + if (vm && (vm->flags & VM_USERCOPY))
116915 + return true;
116916 + return false;
116917 + }
116918 +
116919 + // PAX: TODO
116920 +
116921 + return false;
116922 +}
116923 +
116924 +#ifdef CONFIG_PAX_USERCOPY
116925 +const char *check_heap_object(const void *ptr, unsigned long n)
116926 +{
116927 + struct page *page;
116928 + const slob_t *free;
116929 + const void *base;
116930 + unsigned long flags;
116931 +
116932 + if (ZERO_OR_NULL_PTR(ptr))
116933 + return "<null>";
116934 +
116935 + if (!virt_addr_valid(ptr))
116936 + return NULL;
116937 +
116938 + page = virt_to_head_page(ptr);
116939 + if (!PageSlab(page))
116940 + return NULL;
116941 +
116942 + if (page->private) {
116943 + base = page;
116944 + if (base <= ptr && n <= page->private - (ptr - base))
116945 + return NULL;
116946 + return "<slob>";
116947 + }
116948 +
116949 + /* some tricky double walking to find the chunk */
116950 + spin_lock_irqsave(&slob_lock, flags);
116951 + base = (void *)((unsigned long)ptr & PAGE_MASK);
116952 + free = page->freelist;
116953 +
116954 + while (!slob_last(free) && (void *)free <= ptr) {
116955 + base = free + slob_units(free);
116956 + free = slob_next(free);
116957 + }
116958 +
116959 + while (base < (void *)free) {
116960 + slobidx_t m = ((slob_t *)base)[0].units, align = ((slob_t *)base)[1].units;
116961 + int size = SLOB_UNIT * SLOB_UNITS(m + align);
116962 + int offset;
116963 +
116964 + if (ptr < base + align)
116965 + break;
116966 +
116967 + offset = ptr - base - align;
116968 + if (offset >= m) {
116969 + base += size;
116970 + continue;
116971 + }
116972 +
116973 + if (n > m - offset)
116974 + break;
116975 +
116976 + spin_unlock_irqrestore(&slob_lock, flags);
116977 + return NULL;
116978 + }
116979 +
116980 + spin_unlock_irqrestore(&slob_lock, flags);
116981 + return "<slob>";
116982 +}
116983 +#endif
116984 +
116985 /* can't use ksize for kmem_cache_alloc memory, only kmalloc */
116986 size_t ksize(const void *block)
116987 {
116988 struct page *sp;
116989 int align;
116990 - unsigned int *m;
116991 + slob_t *m;
116992
116993 BUG_ON(!block);
116994 if (unlikely(block == ZERO_SIZE_PTR))
116995 return 0;
116996
116997 sp = virt_to_page(block);
116998 - if (unlikely(!PageSlab(sp)))
116999 - return PAGE_SIZE << compound_order(sp);
117000 + VM_BUG_ON(!PageSlab(sp));
117001 + if (sp->private)
117002 + return sp->private;
117003
117004 align = max_t(size_t, ARCH_KMALLOC_MINALIGN, ARCH_SLAB_MINALIGN);
117005 - m = (unsigned int *)(block - align);
117006 - return SLOB_UNITS(*m) * SLOB_UNIT;
117007 + m = (slob_t *)(block - align);
117008 + return SLOB_UNITS(m[0].units) * SLOB_UNIT;
117009 }
117010 EXPORT_SYMBOL(ksize);
117011
117012 @@ -534,23 +648,33 @@ int __kmem_cache_create(struct kmem_cache *c, unsigned long flags)
117013
117014 static void *slob_alloc_node(struct kmem_cache *c, gfp_t flags, int node)
117015 {
117016 - void *b;
117017 + void *b = NULL;
117018
117019 flags &= gfp_allowed_mask;
117020
117021 lockdep_trace_alloc(flags);
117022
117023 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117024 + b = __do_kmalloc_node_align(c->size, flags, node, _RET_IP_, c->align);
117025 +#else
117026 if (c->size < PAGE_SIZE) {
117027 b = slob_alloc(c->size, flags, c->align, node);
117028 trace_kmem_cache_alloc_node(_RET_IP_, b, c->object_size,
117029 SLOB_UNITS(c->size) * SLOB_UNIT,
117030 flags, node);
117031 } else {
117032 - b = slob_new_pages(flags, get_order(c->size), node);
117033 + struct page *sp;
117034 +
117035 + sp = slob_new_pages(flags, get_order(c->size), node);
117036 + if (sp) {
117037 + b = page_address(sp);
117038 + sp->private = c->size;
117039 + }
117040 trace_kmem_cache_alloc_node(_RET_IP_, b, c->object_size,
117041 PAGE_SIZE << get_order(c->size),
117042 flags, node);
117043 }
117044 +#endif
117045
117046 if (b && c->ctor)
117047 c->ctor(b);
117048 @@ -566,7 +690,7 @@ void *kmem_cache_alloc(struct kmem_cache *cachep, gfp_t flags)
117049 EXPORT_SYMBOL(kmem_cache_alloc);
117050
117051 #ifdef CONFIG_NUMA
117052 -void *__kmalloc_node(size_t size, gfp_t gfp, int node)
117053 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t gfp, int node)
117054 {
117055 return __do_kmalloc_node(size, gfp, node, _RET_IP_);
117056 }
117057 @@ -579,12 +703,16 @@ void *kmem_cache_alloc_node(struct kmem_cache *cachep, gfp_t gfp, int node)
117058 EXPORT_SYMBOL(kmem_cache_alloc_node);
117059 #endif
117060
117061 -static void __kmem_cache_free(void *b, int size)
117062 +static void __kmem_cache_free(struct kmem_cache *c, void *b, int size)
117063 {
117064 - if (size < PAGE_SIZE)
117065 - slob_free(b, size);
117066 + struct page *sp;
117067 +
117068 + sp = virt_to_page(b);
117069 + BUG_ON(!PageSlab(sp));
117070 + if (!sp->private)
117071 + slob_free(c, b, size);
117072 else
117073 - slob_free_pages(b, get_order(size));
117074 + slob_free_pages(sp, get_order(size));
117075 }
117076
117077 static void kmem_rcu_free(struct rcu_head *head)
117078 @@ -592,22 +720,36 @@ static void kmem_rcu_free(struct rcu_head *head)
117079 struct slob_rcu *slob_rcu = (struct slob_rcu *)head;
117080 void *b = (void *)slob_rcu - (slob_rcu->size - sizeof(struct slob_rcu));
117081
117082 - __kmem_cache_free(b, slob_rcu->size);
117083 + __kmem_cache_free(NULL, b, slob_rcu->size);
117084 }
117085
117086 void kmem_cache_free(struct kmem_cache *c, void *b)
117087 {
117088 + int size = c->size;
117089 +
117090 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117091 + if (size + c->align < PAGE_SIZE) {
117092 + size += c->align;
117093 + b -= c->align;
117094 + }
117095 +#endif
117096 +
117097 kmemleak_free_recursive(b, c->flags);
117098 if (unlikely(c->flags & SLAB_DESTROY_BY_RCU)) {
117099 struct slob_rcu *slob_rcu;
117100 - slob_rcu = b + (c->size - sizeof(struct slob_rcu));
117101 - slob_rcu->size = c->size;
117102 + slob_rcu = b + (size - sizeof(struct slob_rcu));
117103 + slob_rcu->size = size;
117104 call_rcu(&slob_rcu->head, kmem_rcu_free);
117105 } else {
117106 - __kmem_cache_free(b, c->size);
117107 + __kmem_cache_free(c, b, size);
117108 }
117109
117110 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117111 + trace_kfree(_RET_IP_, b);
117112 +#else
117113 trace_kmem_cache_free(_RET_IP_, b);
117114 +#endif
117115 +
117116 }
117117 EXPORT_SYMBOL(kmem_cache_free);
117118
117119 diff --git a/mm/slub.c b/mm/slub.c
117120 index f68c0e5..eb77178 100644
117121 --- a/mm/slub.c
117122 +++ b/mm/slub.c
117123 @@ -34,6 +34,7 @@
117124 #include <linux/stacktrace.h>
117125 #include <linux/prefetch.h>
117126 #include <linux/memcontrol.h>
117127 +#include <linux/vmalloc.h>
117128
117129 #include <trace/events/kmem.h>
117130
117131 @@ -198,7 +199,7 @@ struct track {
117132
117133 enum track_item { TRACK_ALLOC, TRACK_FREE };
117134
117135 -#ifdef CONFIG_SYSFS
117136 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
117137 static int sysfs_slab_add(struct kmem_cache *);
117138 static int sysfs_slab_alias(struct kmem_cache *, const char *);
117139 static void memcg_propagate_slab_attrs(struct kmem_cache *s);
117140 @@ -556,7 +557,7 @@ static void print_track(const char *s, struct track *t)
117141 if (!t->addr)
117142 return;
117143
117144 - pr_err("INFO: %s in %pS age=%lu cpu=%u pid=%d\n",
117145 + pr_err("INFO: %s in %pA age=%lu cpu=%u pid=%d\n",
117146 s, (void *)t->addr, jiffies - t->when, t->cpu, t->pid);
117147 #ifdef CONFIG_STACKTRACE
117148 {
117149 @@ -2707,6 +2708,14 @@ static __always_inline void slab_free(struct kmem_cache *s,
117150
117151 slab_free_hook(s, x);
117152
117153 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117154 + if (!(s->flags & SLAB_NO_SANITIZE)) {
117155 + memset(x, PAX_MEMORY_SANITIZE_VALUE, s->object_size);
117156 + if (s->ctor)
117157 + s->ctor(x);
117158 + }
117159 +#endif
117160 +
117161 redo:
117162 /*
117163 * Determine the currently cpus per cpu slab.
117164 @@ -3048,6 +3057,9 @@ static int calculate_sizes(struct kmem_cache *s, int forced_order)
117165 s->inuse = size;
117166
117167 if (((flags & (SLAB_DESTROY_BY_RCU | SLAB_POISON)) ||
117168 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117169 + (!(flags & SLAB_NO_SANITIZE)) ||
117170 +#endif
117171 s->ctor)) {
117172 /*
117173 * Relocate free pointer after the object if it is not
117174 @@ -3302,7 +3314,7 @@ static int __init setup_slub_min_objects(char *str)
117175
117176 __setup("slub_min_objects=", setup_slub_min_objects);
117177
117178 -void *__kmalloc(size_t size, gfp_t flags)
117179 +void * __size_overflow(1) __kmalloc(size_t size, gfp_t flags)
117180 {
117181 struct kmem_cache *s;
117182 void *ret;
117183 @@ -3340,7 +3352,7 @@ static void *kmalloc_large_node(size_t size, gfp_t flags, int node)
117184 return ptr;
117185 }
117186
117187 -void *__kmalloc_node(size_t size, gfp_t flags, int node)
117188 +void * __size_overflow(1) __kmalloc_node(size_t size, gfp_t flags, int node)
117189 {
117190 struct kmem_cache *s;
117191 void *ret;
117192 @@ -3388,6 +3400,70 @@ static size_t __ksize(const void *object)
117193 return slab_ksize(page->slab_cache);
117194 }
117195
117196 +bool is_usercopy_object(const void *ptr)
117197 +{
117198 + struct page *page;
117199 + struct kmem_cache *s;
117200 +
117201 + if (ZERO_OR_NULL_PTR(ptr))
117202 + return false;
117203 +
117204 + if (!slab_is_available())
117205 + return false;
117206 +
117207 + if (is_vmalloc_addr(ptr)
117208 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
117209 + && !object_starts_on_stack(ptr)
117210 +#endif
117211 + ) {
117212 + struct vm_struct *vm = find_vm_area(ptr);
117213 + if (vm && (vm->flags & VM_USERCOPY))
117214 + return true;
117215 + return false;
117216 + }
117217 +
117218 + if (!virt_addr_valid(ptr))
117219 + return false;
117220 +
117221 + page = virt_to_head_page(ptr);
117222 +
117223 + if (!PageSlab(page))
117224 + return false;
117225 +
117226 + s = page->slab_cache;
117227 + return s->flags & SLAB_USERCOPY;
117228 +}
117229 +
117230 +#ifdef CONFIG_PAX_USERCOPY
117231 +const char *check_heap_object(const void *ptr, unsigned long n)
117232 +{
117233 + struct page *page;
117234 + struct kmem_cache *s;
117235 + unsigned long offset;
117236 +
117237 + if (ZERO_OR_NULL_PTR(ptr))
117238 + return "<null>";
117239 +
117240 + if (!virt_addr_valid(ptr))
117241 + return NULL;
117242 +
117243 + page = virt_to_head_page(ptr);
117244 +
117245 + if (!PageSlab(page))
117246 + return NULL;
117247 +
117248 + s = page->slab_cache;
117249 + if (!(s->flags & SLAB_USERCOPY))
117250 + return s->name;
117251 +
117252 + offset = (ptr - page_address(page)) % s->size;
117253 + if (offset <= s->object_size && n <= s->object_size - offset)
117254 + return NULL;
117255 +
117256 + return s->name;
117257 +}
117258 +#endif
117259 +
117260 size_t ksize(const void *object)
117261 {
117262 size_t size = __ksize(object);
117263 @@ -3408,6 +3484,7 @@ void kfree(const void *x)
117264 if (unlikely(ZERO_OR_NULL_PTR(x)))
117265 return;
117266
117267 + VM_BUG_ON(!virt_addr_valid(x));
117268 page = virt_to_head_page(x);
117269 if (unlikely(!PageSlab(page))) {
117270 BUG_ON(!PageCompound(page));
117271 @@ -3725,7 +3802,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
117272
117273 s = find_mergeable(size, align, flags, name, ctor);
117274 if (s) {
117275 - s->refcount++;
117276 + atomic_inc(&s->refcount);
117277
117278 /*
117279 * Adjust the object sizes so that we clear
117280 @@ -3741,7 +3818,7 @@ __kmem_cache_alias(const char *name, size_t size, size_t align,
117281 }
117282
117283 if (sysfs_slab_alias(s, name)) {
117284 - s->refcount--;
117285 + atomic_dec(&s->refcount);
117286 s = NULL;
117287 }
117288 }
117289 @@ -3858,7 +3935,7 @@ void *__kmalloc_node_track_caller(size_t size, gfp_t gfpflags,
117290 }
117291 #endif
117292
117293 -#ifdef CONFIG_SYSFS
117294 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
117295 static int count_inuse(struct page *page)
117296 {
117297 return page->inuse;
117298 @@ -4139,7 +4216,11 @@ static int list_locations(struct kmem_cache *s, char *buf,
117299 len += sprintf(buf + len, "%7ld ", l->count);
117300
117301 if (l->addr)
117302 +#ifdef CONFIG_GRKERNSEC_HIDESYM
117303 + len += sprintf(buf + len, "%pS", NULL);
117304 +#else
117305 len += sprintf(buf + len, "%pS", (void *)l->addr);
117306 +#endif
117307 else
117308 len += sprintf(buf + len, "<not-available>");
117309
117310 @@ -4237,12 +4318,12 @@ static void __init resiliency_test(void)
117311 validate_slab_cache(kmalloc_caches[9]);
117312 }
117313 #else
117314 -#ifdef CONFIG_SYSFS
117315 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
117316 static void resiliency_test(void) {};
117317 #endif
117318 #endif
117319
117320 -#ifdef CONFIG_SYSFS
117321 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
117322 enum slab_stat_type {
117323 SL_ALL, /* All slabs */
117324 SL_PARTIAL, /* Only partially allocated slabs */
117325 @@ -4479,13 +4560,17 @@ static ssize_t ctor_show(struct kmem_cache *s, char *buf)
117326 {
117327 if (!s->ctor)
117328 return 0;
117329 +#ifdef CONFIG_GRKERNSEC_HIDESYM
117330 + return sprintf(buf, "%pS\n", NULL);
117331 +#else
117332 return sprintf(buf, "%pS\n", s->ctor);
117333 +#endif
117334 }
117335 SLAB_ATTR_RO(ctor);
117336
117337 static ssize_t aliases_show(struct kmem_cache *s, char *buf)
117338 {
117339 - return sprintf(buf, "%d\n", s->refcount < 0 ? 0 : s->refcount - 1);
117340 + return sprintf(buf, "%d\n", atomic_read(&s->refcount) < 0 ? 0 : atomic_read(&s->refcount) - 1);
117341 }
117342 SLAB_ATTR_RO(aliases);
117343
117344 @@ -4573,6 +4658,22 @@ static ssize_t cache_dma_show(struct kmem_cache *s, char *buf)
117345 SLAB_ATTR_RO(cache_dma);
117346 #endif
117347
117348 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117349 +static ssize_t usercopy_show(struct kmem_cache *s, char *buf)
117350 +{
117351 + return sprintf(buf, "%d\n", !!(s->flags & SLAB_USERCOPY));
117352 +}
117353 +SLAB_ATTR_RO(usercopy);
117354 +#endif
117355 +
117356 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117357 +static ssize_t sanitize_show(struct kmem_cache *s, char *buf)
117358 +{
117359 + return sprintf(buf, "%d\n", !(s->flags & SLAB_NO_SANITIZE));
117360 +}
117361 +SLAB_ATTR_RO(sanitize);
117362 +#endif
117363 +
117364 static ssize_t destroy_by_rcu_show(struct kmem_cache *s, char *buf)
117365 {
117366 return sprintf(buf, "%d\n", !!(s->flags & SLAB_DESTROY_BY_RCU));
117367 @@ -4628,7 +4729,7 @@ static ssize_t trace_store(struct kmem_cache *s, const char *buf,
117368 * as well as cause other issues like converting a mergeable
117369 * cache into an umergeable one.
117370 */
117371 - if (s->refcount > 1)
117372 + if (atomic_read(&s->refcount) > 1)
117373 return -EINVAL;
117374
117375 s->flags &= ~SLAB_TRACE;
117376 @@ -4748,7 +4849,7 @@ static ssize_t failslab_show(struct kmem_cache *s, char *buf)
117377 static ssize_t failslab_store(struct kmem_cache *s, const char *buf,
117378 size_t length)
117379 {
117380 - if (s->refcount > 1)
117381 + if (atomic_read(&s->refcount) > 1)
117382 return -EINVAL;
117383
117384 s->flags &= ~SLAB_FAILSLAB;
117385 @@ -4915,6 +5016,12 @@ static struct attribute *slab_attrs[] = {
117386 #ifdef CONFIG_ZONE_DMA
117387 &cache_dma_attr.attr,
117388 #endif
117389 +#ifdef CONFIG_PAX_USERCOPY_SLABS
117390 + &usercopy_attr.attr,
117391 +#endif
117392 +#ifdef CONFIG_PAX_MEMORY_SANITIZE
117393 + &sanitize_attr.attr,
117394 +#endif
117395 #ifdef CONFIG_NUMA
117396 &remote_node_defrag_ratio_attr.attr,
117397 #endif
117398 @@ -5156,6 +5263,7 @@ static char *create_unique_id(struct kmem_cache *s)
117399 return name;
117400 }
117401
117402 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
117403 static int sysfs_slab_add(struct kmem_cache *s)
117404 {
117405 int err;
117406 @@ -5229,6 +5337,7 @@ void sysfs_slab_remove(struct kmem_cache *s)
117407 kobject_del(&s->kobj);
117408 kobject_put(&s->kobj);
117409 }
117410 +#endif
117411
117412 /*
117413 * Need to buffer aliases during bootup until sysfs becomes
117414 @@ -5242,6 +5351,7 @@ struct saved_alias {
117415
117416 static struct saved_alias *alias_list;
117417
117418 +#if defined(CONFIG_SYSFS) && !defined(CONFIG_GRKERNSEC_PROC_ADD)
117419 static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
117420 {
117421 struct saved_alias *al;
117422 @@ -5264,6 +5374,7 @@ static int sysfs_slab_alias(struct kmem_cache *s, const char *name)
117423 alias_list = al;
117424 return 0;
117425 }
117426 +#endif
117427
117428 static int __init slab_sysfs_init(void)
117429 {
117430 diff --git a/mm/sparse-vmemmap.c b/mm/sparse-vmemmap.c
117431 index 4cba9c2..b4f9fcc 100644
117432 --- a/mm/sparse-vmemmap.c
117433 +++ b/mm/sparse-vmemmap.c
117434 @@ -131,7 +131,7 @@ pud_t * __meminit vmemmap_pud_populate(pgd_t *pgd, unsigned long addr, int node)
117435 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
117436 if (!p)
117437 return NULL;
117438 - pud_populate(&init_mm, pud, p);
117439 + pud_populate_kernel(&init_mm, pud, p);
117440 }
117441 return pud;
117442 }
117443 @@ -143,7 +143,7 @@ pgd_t * __meminit vmemmap_pgd_populate(unsigned long addr, int node)
117444 void *p = vmemmap_alloc_block(PAGE_SIZE, node);
117445 if (!p)
117446 return NULL;
117447 - pgd_populate(&init_mm, pgd, p);
117448 + pgd_populate_kernel(&init_mm, pgd, p);
117449 }
117450 return pgd;
117451 }
117452 diff --git a/mm/sparse.c b/mm/sparse.c
117453 index d1b48b6..6e8590e 100644
117454 --- a/mm/sparse.c
117455 +++ b/mm/sparse.c
117456 @@ -750,7 +750,7 @@ static void clear_hwpoisoned_pages(struct page *memmap, int nr_pages)
117457
117458 for (i = 0; i < PAGES_PER_SECTION; i++) {
117459 if (PageHWPoison(&memmap[i])) {
117460 - atomic_long_sub(1, &num_poisoned_pages);
117461 + atomic_long_sub_unchecked(1, &num_poisoned_pages);
117462 ClearPageHWPoison(&memmap[i]);
117463 }
117464 }
117465 diff --git a/mm/swap.c b/mm/swap.c
117466 index a3a0a2f..915d436 100644
117467 --- a/mm/swap.c
117468 +++ b/mm/swap.c
117469 @@ -85,6 +85,8 @@ static void __put_compound_page(struct page *page)
117470 if (!PageHuge(page))
117471 __page_cache_release(page);
117472 dtor = get_compound_page_dtor(page);
117473 + if (!PageHuge(page))
117474 + BUG_ON(dtor != free_compound_page);
117475 (*dtor)(page);
117476 }
117477
117478 diff --git a/mm/swapfile.c b/mm/swapfile.c
117479 index 41e4581..6c452c9 100644
117480 --- a/mm/swapfile.c
117481 +++ b/mm/swapfile.c
117482 @@ -84,7 +84,7 @@ static DEFINE_MUTEX(swapon_mutex);
117483
117484 static DECLARE_WAIT_QUEUE_HEAD(proc_poll_wait);
117485 /* Activity counter to indicate that a swapon or swapoff has occurred */
117486 -static atomic_t proc_poll_event = ATOMIC_INIT(0);
117487 +static atomic_unchecked_t proc_poll_event = ATOMIC_INIT(0);
117488
117489 static inline unsigned char swap_count(unsigned char ent)
117490 {
117491 @@ -1944,7 +1944,7 @@ SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
117492 spin_unlock(&swap_lock);
117493
117494 err = 0;
117495 - atomic_inc(&proc_poll_event);
117496 + atomic_inc_unchecked(&proc_poll_event);
117497 wake_up_interruptible(&proc_poll_wait);
117498
117499 out_dput:
117500 @@ -1961,8 +1961,8 @@ static unsigned swaps_poll(struct file *file, poll_table *wait)
117501
117502 poll_wait(file, &proc_poll_wait, wait);
117503
117504 - if (seq->poll_event != atomic_read(&proc_poll_event)) {
117505 - seq->poll_event = atomic_read(&proc_poll_event);
117506 + if (seq->poll_event != atomic_read_unchecked(&proc_poll_event)) {
117507 + seq->poll_event = atomic_read_unchecked(&proc_poll_event);
117508 return POLLIN | POLLRDNORM | POLLERR | POLLPRI;
117509 }
117510
117511 @@ -2060,7 +2060,7 @@ static int swaps_open(struct inode *inode, struct file *file)
117512 return ret;
117513
117514 seq = file->private_data;
117515 - seq->poll_event = atomic_read(&proc_poll_event);
117516 + seq->poll_event = atomic_read_unchecked(&proc_poll_event);
117517 return 0;
117518 }
117519
117520 @@ -2520,7 +2520,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
117521 (frontswap_map) ? "FS" : "");
117522
117523 mutex_unlock(&swapon_mutex);
117524 - atomic_inc(&proc_poll_event);
117525 + atomic_inc_unchecked(&proc_poll_event);
117526 wake_up_interruptible(&proc_poll_wait);
117527
117528 if (S_ISREG(inode->i_mode))
117529 diff --git a/mm/util.c b/mm/util.c
117530 index 68ff8a5..40c7a70 100644
117531 --- a/mm/util.c
117532 +++ b/mm/util.c
117533 @@ -233,6 +233,12 @@ struct task_struct *task_of_stack(struct task_struct *task,
117534 void arch_pick_mmap_layout(struct mm_struct *mm)
117535 {
117536 mm->mmap_base = TASK_UNMAPPED_BASE;
117537 +
117538 +#ifdef CONFIG_PAX_RANDMMAP
117539 + if (mm->pax_flags & MF_PAX_RANDMMAP)
117540 + mm->mmap_base += mm->delta_mmap;
117541 +#endif
117542 +
117543 mm->get_unmapped_area = arch_get_unmapped_area;
117544 }
117545 #endif
117546 @@ -434,6 +440,9 @@ int get_cmdline(struct task_struct *task, char *buffer, int buflen)
117547 if (!mm->arg_end)
117548 goto out_mm; /* Shh! No looking before we're done */
117549
117550 + if (gr_acl_handle_procpidmem(task))
117551 + goto out_mm;
117552 +
117553 len = mm->arg_end - mm->arg_start;
117554
117555 if (len > buflen)
117556 diff --git a/mm/vmalloc.c b/mm/vmalloc.c
117557 index 2faaa29..7ac7a6d 100644
117558 --- a/mm/vmalloc.c
117559 +++ b/mm/vmalloc.c
117560 @@ -40,20 +40,65 @@ struct vfree_deferred {
117561 struct work_struct wq;
117562 };
117563 static DEFINE_PER_CPU(struct vfree_deferred, vfree_deferred);
117564 +static DEFINE_PER_CPU(struct vfree_deferred, vunmap_deferred);
117565 +
117566 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
117567 +struct stack_deferred_llist {
117568 + struct llist_head list;
117569 + void *stack;
117570 + void *lowmem_stack;
117571 +};
117572 +
117573 +struct stack_deferred {
117574 + struct stack_deferred_llist list;
117575 + struct work_struct wq;
117576 +};
117577 +
117578 +static DEFINE_PER_CPU(struct stack_deferred, stack_deferred);
117579 +#endif
117580
117581 static void __vunmap(const void *, int);
117582
117583 -static void free_work(struct work_struct *w)
117584 +static void vfree_work(struct work_struct *w)
117585 {
117586 struct vfree_deferred *p = container_of(w, struct vfree_deferred, wq);
117587 struct llist_node *llnode = llist_del_all(&p->list);
117588 while (llnode) {
117589 - void *p = llnode;
117590 + void *x = llnode;
117591 llnode = llist_next(llnode);
117592 - __vunmap(p, 1);
117593 + __vunmap(x, 1);
117594 }
117595 }
117596
117597 +static void vunmap_work(struct work_struct *w)
117598 +{
117599 + struct vfree_deferred *p = container_of(w, struct vfree_deferred, wq);
117600 + struct llist_node *llnode = llist_del_all(&p->list);
117601 + while (llnode) {
117602 + void *x = llnode;
117603 + llnode = llist_next(llnode);
117604 + __vunmap(x, 0);
117605 + }
117606 +}
117607 +
117608 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
117609 +static void unmap_work(struct work_struct *w)
117610 +{
117611 + struct stack_deferred *p = container_of(w, struct stack_deferred, wq);
117612 + struct llist_node *llnode = llist_del_all(&p->list.list);
117613 + while (llnode) {
117614 + struct stack_deferred_llist *x =
117615 + llist_entry((struct llist_head *)llnode,
117616 + struct stack_deferred_llist, list);
117617 + void *stack = ACCESS_ONCE(x->stack);
117618 + void *lowmem_stack = ACCESS_ONCE(x->lowmem_stack);
117619 + llnode = llist_next(llnode);
117620 + __vunmap(stack, 0);
117621 + free_kmem_pages((unsigned long)lowmem_stack, THREAD_SIZE_ORDER);
117622 + }
117623 +}
117624 +#endif
117625 +
117626 /*** Page table manipulation functions ***/
117627
117628 static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
117629 @@ -61,10 +106,23 @@ static void vunmap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end)
117630 pte_t *pte;
117631
117632 pte = pte_offset_kernel(pmd, addr);
117633 + pax_open_kernel();
117634 do {
117635 - pte_t ptent = ptep_get_and_clear(&init_mm, addr, pte);
117636 - WARN_ON(!pte_none(ptent) && !pte_present(ptent));
117637 +
117638 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
117639 + if ((unsigned long)MODULES_EXEC_VADDR <= addr && addr < (unsigned long)MODULES_EXEC_END) {
117640 + BUG_ON(!pte_exec(*pte));
117641 + set_pte_at(&init_mm, addr, pte, pfn_pte(__pa(addr) >> PAGE_SHIFT, PAGE_KERNEL_EXEC));
117642 + continue;
117643 + }
117644 +#endif
117645 +
117646 + {
117647 + pte_t ptent = ptep_get_and_clear(&init_mm, addr, pte);
117648 + WARN_ON(!pte_none(ptent) && !pte_present(ptent));
117649 + }
117650 } while (pte++, addr += PAGE_SIZE, addr != end);
117651 + pax_close_kernel();
117652 }
117653
117654 static void vunmap_pmd_range(pud_t *pud, unsigned long addr, unsigned long end)
117655 @@ -127,16 +185,29 @@ static int vmap_pte_range(pmd_t *pmd, unsigned long addr,
117656 pte = pte_alloc_kernel(pmd, addr);
117657 if (!pte)
117658 return -ENOMEM;
117659 +
117660 + pax_open_kernel();
117661 do {
117662 struct page *page = pages[*nr];
117663
117664 - if (WARN_ON(!pte_none(*pte)))
117665 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
117666 + if (pgprot_val(prot) & _PAGE_NX)
117667 +#endif
117668 +
117669 + if (!pte_none(*pte)) {
117670 + pax_close_kernel();
117671 + WARN_ON(1);
117672 return -EBUSY;
117673 - if (WARN_ON(!page))
117674 + }
117675 + if (!page) {
117676 + pax_close_kernel();
117677 + WARN_ON(1);
117678 return -ENOMEM;
117679 + }
117680 set_pte_at(&init_mm, addr, pte, mk_pte(page, prot));
117681 (*nr)++;
117682 } while (pte++, addr += PAGE_SIZE, addr != end);
117683 + pax_close_kernel();
117684 return 0;
117685 }
117686
117687 @@ -146,7 +217,7 @@ static int vmap_pmd_range(pud_t *pud, unsigned long addr,
117688 pmd_t *pmd;
117689 unsigned long next;
117690
117691 - pmd = pmd_alloc(&init_mm, pud, addr);
117692 + pmd = pmd_alloc_kernel(&init_mm, pud, addr);
117693 if (!pmd)
117694 return -ENOMEM;
117695 do {
117696 @@ -163,7 +234,7 @@ static int vmap_pud_range(pgd_t *pgd, unsigned long addr,
117697 pud_t *pud;
117698 unsigned long next;
117699
117700 - pud = pud_alloc(&init_mm, pgd, addr);
117701 + pud = pud_alloc_kernel(&init_mm, pgd, addr);
117702 if (!pud)
117703 return -ENOMEM;
117704 do {
117705 @@ -223,6 +294,12 @@ int is_vmalloc_or_module_addr(const void *x)
117706 if (addr >= MODULES_VADDR && addr < MODULES_END)
117707 return 1;
117708 #endif
117709 +
117710 +#if defined(CONFIG_X86_32) && defined(CONFIG_PAX_KERNEXEC)
117711 + if (x >= (const void *)MODULES_EXEC_VADDR && x < (const void *)MODULES_EXEC_END)
117712 + return 1;
117713 +#endif
117714 +
117715 return is_vmalloc_addr(x);
117716 }
117717
117718 @@ -243,8 +320,14 @@ struct page *vmalloc_to_page(const void *vmalloc_addr)
117719
117720 if (!pgd_none(*pgd)) {
117721 pud_t *pud = pud_offset(pgd, addr);
117722 +#ifdef CONFIG_X86
117723 + if (!pud_large(*pud))
117724 +#endif
117725 if (!pud_none(*pud)) {
117726 pmd_t *pmd = pmd_offset(pud, addr);
117727 +#ifdef CONFIG_X86
117728 + if (!pmd_large(*pmd))
117729 +#endif
117730 if (!pmd_none(*pmd)) {
117731 pte_t *ptep, pte;
117732
117733 @@ -346,7 +429,7 @@ static void purge_vmap_area_lazy(void);
117734 * Allocate a region of KVA of the specified size and alignment, within the
117735 * vstart and vend.
117736 */
117737 -static struct vmap_area *alloc_vmap_area(unsigned long size,
117738 +static struct vmap_area * __size_overflow(1) alloc_vmap_area(unsigned long size,
117739 unsigned long align,
117740 unsigned long vstart, unsigned long vend,
117741 int node, gfp_t gfp_mask)
117742 @@ -1202,13 +1285,27 @@ void __init vmalloc_init(void)
117743 for_each_possible_cpu(i) {
117744 struct vmap_block_queue *vbq;
117745 struct vfree_deferred *p;
117746 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
117747 + struct stack_deferred *p2;
117748 +#endif
117749
117750 vbq = &per_cpu(vmap_block_queue, i);
117751 spin_lock_init(&vbq->lock);
117752 INIT_LIST_HEAD(&vbq->free);
117753 +
117754 p = &per_cpu(vfree_deferred, i);
117755 init_llist_head(&p->list);
117756 - INIT_WORK(&p->wq, free_work);
117757 + INIT_WORK(&p->wq, vfree_work);
117758 +
117759 + p = &per_cpu(vunmap_deferred, i);
117760 + init_llist_head(&p->list);
117761 + INIT_WORK(&p->wq, vunmap_work);
117762 +
117763 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
117764 + p2 = &per_cpu(stack_deferred, i);
117765 + init_llist_head(&p2->list.list);
117766 + INIT_WORK(&p2->wq, unmap_work);
117767 +#endif
117768 }
117769
117770 /* Import existing vmlist entries. */
117771 @@ -1333,6 +1430,16 @@ static struct vm_struct *__get_vm_area_node(unsigned long size,
117772 struct vm_struct *area;
117773
117774 BUG_ON(in_interrupt());
117775 +
117776 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
117777 + if (flags & VM_KERNEXEC) {
117778 + if (start != VMALLOC_START || end != VMALLOC_END)
117779 + return NULL;
117780 + start = (unsigned long)MODULES_EXEC_VADDR;
117781 + end = (unsigned long)MODULES_EXEC_END;
117782 + }
117783 +#endif
117784 +
117785 if (flags & VM_IOREMAP)
117786 align = 1ul << clamp_t(int, fls_long(size),
117787 PAGE_SHIFT, IOREMAP_MAX_ORDER);
117788 @@ -1531,13 +1638,36 @@ EXPORT_SYMBOL(vfree);
117789 */
117790 void vunmap(const void *addr)
117791 {
117792 - BUG_ON(in_interrupt());
117793 - might_sleep();
117794 - if (addr)
117795 + if (!addr)
117796 + return;
117797 + if (unlikely(in_interrupt())) {
117798 + struct vfree_deferred *p = this_cpu_ptr(&vunmap_deferred);
117799 + if (llist_add((struct llist_node *)addr, &p->list))
117800 + schedule_work(&p->wq);
117801 + } else {
117802 + might_sleep();
117803 __vunmap(addr, 0);
117804 + }
117805 }
117806 EXPORT_SYMBOL(vunmap);
117807
117808 +#ifdef CONFIG_GRKERNSEC_KSTACKOVERFLOW
117809 +void unmap_process_stacks(struct task_struct *task)
117810 +{
117811 + if (unlikely(in_interrupt())) {
117812 + struct stack_deferred *p = this_cpu_ptr(&stack_deferred);
117813 + struct stack_deferred_llist *list = task->stack;
117814 + list->stack = task->stack;
117815 + list->lowmem_stack = task->lowmem_stack;
117816 + if (llist_add((struct llist_node *)&list->list, &p->list.list))
117817 + schedule_work(&p->wq);
117818 + } else {
117819 + __vunmap(task->stack, 0);
117820 + free_kmem_pages((unsigned long)task->lowmem_stack, THREAD_SIZE_ORDER);
117821 + }
117822 +}
117823 +#endif
117824 +
117825 /**
117826 * vmap - map an array of pages into virtually contiguous space
117827 * @pages: array of page pointers
117828 @@ -1558,6 +1688,11 @@ void *vmap(struct page **pages, unsigned int count,
117829 if (count > totalram_pages)
117830 return NULL;
117831
117832 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
117833 + if (!(pgprot_val(prot) & _PAGE_NX))
117834 + flags |= VM_KERNEXEC;
117835 +#endif
117836 +
117837 area = get_vm_area_caller((count << PAGE_SHIFT), flags,
117838 __builtin_return_address(0));
117839 if (!area)
117840 @@ -1662,6 +1797,14 @@ void *__vmalloc_node_range(unsigned long size, unsigned long align,
117841 if (!size || (size >> PAGE_SHIFT) > totalram_pages)
117842 goto fail;
117843
117844 +#if defined(CONFIG_X86) && defined(CONFIG_PAX_KERNEXEC)
117845 + if (!(pgprot_val(prot) & _PAGE_NX)) {
117846 + vm_flags |= VM_KERNEXEC;
117847 + start = VMALLOC_START;
117848 + end = VMALLOC_END;
117849 + }
117850 +#endif
117851 +
117852 area = __get_vm_area_node(size, align, VM_ALLOC | VM_UNINITIALIZED |
117853 vm_flags, start, end, node, gfp_mask, caller);
117854 if (!area)
117855 @@ -1715,6 +1858,14 @@ static void *__vmalloc_node(unsigned long size, unsigned long align,
117856 gfp_mask, prot, 0, node, caller);
117857 }
117858
117859 +void *vmalloc_usercopy(unsigned long size)
117860 +{
117861 + return __vmalloc_node_range(size, 1, VMALLOC_START, VMALLOC_END,
117862 + GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL,
117863 + VM_USERCOPY, NUMA_NO_NODE,
117864 + __builtin_return_address(0));
117865 +}
117866 +
117867 void *__vmalloc(unsigned long size, gfp_t gfp_mask, pgprot_t prot)
117868 {
117869 return __vmalloc_node(size, 1, gfp_mask, prot, NUMA_NO_NODE,
117870 @@ -1838,10 +1989,9 @@ EXPORT_SYMBOL(vzalloc_node);
117871 * For tight control over page level allocator and protection flags
117872 * use __vmalloc() instead.
117873 */
117874 -
117875 void *vmalloc_exec(unsigned long size)
117876 {
117877 - return __vmalloc_node(size, 1, GFP_KERNEL | __GFP_HIGHMEM, PAGE_KERNEL_EXEC,
117878 + return __vmalloc_node(size, 1, GFP_KERNEL | __GFP_HIGHMEM | __GFP_ZERO, PAGE_KERNEL_EXEC,
117879 NUMA_NO_NODE, __builtin_return_address(0));
117880 }
117881
117882 @@ -2148,6 +2298,8 @@ int remap_vmalloc_range_partial(struct vm_area_struct *vma, unsigned long uaddr,
117883 {
117884 struct vm_struct *area;
117885
117886 + BUG_ON(vma->vm_mirror);
117887 +
117888 size = PAGE_ALIGN(size);
117889
117890 if (!PAGE_ALIGNED(uaddr) || !PAGE_ALIGNED(kaddr))
117891 @@ -2630,7 +2782,11 @@ static int s_show(struct seq_file *m, void *p)
117892 v->addr, v->addr + v->size, v->size);
117893
117894 if (v->caller)
117895 +#ifdef CONFIG_GRKERNSEC_HIDESYM
117896 + seq_printf(m, " %pK", v->caller);
117897 +#else
117898 seq_printf(m, " %pS", v->caller);
117899 +#endif
117900
117901 if (v->nr_pages)
117902 seq_printf(m, " pages=%d", v->nr_pages);
117903 @@ -2688,52 +2844,5 @@ static int __init proc_vmalloc_init(void)
117904 }
117905 module_init(proc_vmalloc_init);
117906
117907 -void get_vmalloc_info(struct vmalloc_info *vmi)
117908 -{
117909 - struct vmap_area *va;
117910 - unsigned long free_area_size;
117911 - unsigned long prev_end;
117912 -
117913 - vmi->used = 0;
117914 - vmi->largest_chunk = 0;
117915 -
117916 - prev_end = VMALLOC_START;
117917 -
117918 - rcu_read_lock();
117919 -
117920 - if (list_empty(&vmap_area_list)) {
117921 - vmi->largest_chunk = VMALLOC_TOTAL;
117922 - goto out;
117923 - }
117924 -
117925 - list_for_each_entry_rcu(va, &vmap_area_list, list) {
117926 - unsigned long addr = va->va_start;
117927 -
117928 - /*
117929 - * Some archs keep another range for modules in vmalloc space
117930 - */
117931 - if (addr < VMALLOC_START)
117932 - continue;
117933 - if (addr >= VMALLOC_END)
117934 - break;
117935 -
117936 - if (va->flags & (VM_LAZY_FREE | VM_LAZY_FREEING))
117937 - continue;
117938 -
117939 - vmi->used += (va->va_end - va->va_start);
117940 -
117941 - free_area_size = addr - prev_end;
117942 - if (vmi->largest_chunk < free_area_size)
117943 - vmi->largest_chunk = free_area_size;
117944 -
117945 - prev_end = va->va_end;
117946 - }
117947 -
117948 - if (VMALLOC_END - prev_end > vmi->largest_chunk)
117949 - vmi->largest_chunk = VMALLOC_END - prev_end;
117950 -
117951 -out:
117952 - rcu_read_unlock();
117953 -}
117954 #endif
117955
117956 diff --git a/mm/vmstat.c b/mm/vmstat.c
117957 index 4f5cd97..9fb715a 100644
117958 --- a/mm/vmstat.c
117959 +++ b/mm/vmstat.c
117960 @@ -27,6 +27,7 @@
117961 #include <linux/mm_inline.h>
117962 #include <linux/page_ext.h>
117963 #include <linux/page_owner.h>
117964 +#include <linux/grsecurity.h>
117965
117966 #include "internal.h"
117967
117968 @@ -86,7 +87,7 @@ void vm_events_fold_cpu(int cpu)
117969 *
117970 * vm_stat contains the global counters
117971 */
117972 -atomic_long_t vm_stat[NR_VM_ZONE_STAT_ITEMS] __cacheline_aligned_in_smp;
117973 +atomic_long_unchecked_t vm_stat[NR_VM_ZONE_STAT_ITEMS] __cacheline_aligned_in_smp;
117974 EXPORT_SYMBOL(vm_stat);
117975
117976 #ifdef CONFIG_SMP
117977 @@ -438,7 +439,7 @@ static int fold_diff(int *diff)
117978
117979 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
117980 if (diff[i]) {
117981 - atomic_long_add(diff[i], &vm_stat[i]);
117982 + atomic_long_add_unchecked(diff[i], &vm_stat[i]);
117983 changes++;
117984 }
117985 return changes;
117986 @@ -476,7 +477,7 @@ static int refresh_cpu_vm_stats(void)
117987 v = this_cpu_xchg(p->vm_stat_diff[i], 0);
117988 if (v) {
117989
117990 - atomic_long_add(v, &zone->vm_stat[i]);
117991 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
117992 global_diff[i] += v;
117993 #ifdef CONFIG_NUMA
117994 /* 3 seconds idle till flush */
117995 @@ -540,7 +541,7 @@ void cpu_vm_stats_fold(int cpu)
117996
117997 v = p->vm_stat_diff[i];
117998 p->vm_stat_diff[i] = 0;
117999 - atomic_long_add(v, &zone->vm_stat[i]);
118000 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
118001 global_diff[i] += v;
118002 }
118003 }
118004 @@ -560,8 +561,8 @@ void drain_zonestat(struct zone *zone, struct per_cpu_pageset *pset)
118005 if (pset->vm_stat_diff[i]) {
118006 int v = pset->vm_stat_diff[i];
118007 pset->vm_stat_diff[i] = 0;
118008 - atomic_long_add(v, &zone->vm_stat[i]);
118009 - atomic_long_add(v, &vm_stat[i]);
118010 + atomic_long_add_unchecked(v, &zone->vm_stat[i]);
118011 + atomic_long_add_unchecked(v, &vm_stat[i]);
118012 }
118013 }
118014 #endif
118015 @@ -1293,10 +1294,22 @@ static void *vmstat_start(struct seq_file *m, loff_t *pos)
118016 stat_items_size += sizeof(struct vm_event_state);
118017 #endif
118018
118019 - v = kmalloc(stat_items_size, GFP_KERNEL);
118020 + v = kzalloc(stat_items_size, GFP_KERNEL);
118021 m->private = v;
118022 if (!v)
118023 return ERR_PTR(-ENOMEM);
118024 +
118025 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
118026 +#if defined(CONFIG_GRKERNSEC_PROC_USER) || defined(CONFIG_GRKERNSEC_PROC_USERGROUP)
118027 + if (!uid_eq(current_uid(), GLOBAL_ROOT_UID)
118028 +#ifdef CONFIG_GRKERNSEC_PROC_USERGROUP
118029 + && !in_group_p(grsec_proc_gid)
118030 +#endif
118031 + )
118032 + return (unsigned long *)m->private + *pos;
118033 +#endif
118034 +#endif
118035 +
118036 for (i = 0; i < NR_VM_ZONE_STAT_ITEMS; i++)
118037 v[i] = global_page_state(i);
118038 v += NR_VM_ZONE_STAT_ITEMS;
118039 @@ -1528,10 +1541,16 @@ static int __init setup_vmstat(void)
118040 cpu_notifier_register_done();
118041 #endif
118042 #ifdef CONFIG_PROC_FS
118043 - proc_create("buddyinfo", S_IRUGO, NULL, &fragmentation_file_operations);
118044 - proc_create("pagetypeinfo", S_IRUGO, NULL, &pagetypeinfo_file_ops);
118045 - proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations);
118046 - proc_create("zoneinfo", S_IRUGO, NULL, &proc_zoneinfo_file_operations);
118047 + {
118048 + mode_t gr_mode = S_IRUGO;
118049 +#ifdef CONFIG_GRKERNSEC_PROC_ADD
118050 + gr_mode = S_IRUSR;
118051 +#endif
118052 + proc_create("buddyinfo", gr_mode, NULL, &fragmentation_file_operations);
118053 + proc_create("pagetypeinfo", gr_mode, NULL, &pagetypeinfo_file_ops);
118054 + proc_create("vmstat", S_IRUGO, NULL, &proc_vmstat_file_operations);
118055 + proc_create("zoneinfo", gr_mode, NULL, &proc_zoneinfo_file_operations);
118056 + }
118057 #endif
118058 return 0;
118059 }
118060 diff --git a/net/8021q/vlan.c b/net/8021q/vlan.c
118061 index d2cd9de..501c186 100644
118062 --- a/net/8021q/vlan.c
118063 +++ b/net/8021q/vlan.c
118064 @@ -491,7 +491,7 @@ out:
118065 return NOTIFY_DONE;
118066 }
118067
118068 -static struct notifier_block vlan_notifier_block __read_mostly = {
118069 +static struct notifier_block vlan_notifier_block = {
118070 .notifier_call = vlan_device_event,
118071 };
118072
118073 @@ -566,8 +566,7 @@ static int vlan_ioctl_handler(struct net *net, void __user *arg)
118074 err = -EPERM;
118075 if (!ns_capable(net->user_ns, CAP_NET_ADMIN))
118076 break;
118077 - if ((args.u.name_type >= 0) &&
118078 - (args.u.name_type < VLAN_NAME_TYPE_HIGHEST)) {
118079 + if (args.u.name_type < VLAN_NAME_TYPE_HIGHEST) {
118080 struct vlan_net *vn;
118081
118082 vn = net_generic(net, vlan_net_id);
118083 diff --git a/net/8021q/vlan_netlink.c b/net/8021q/vlan_netlink.c
118084 index c92b52f..006c052 100644
118085 --- a/net/8021q/vlan_netlink.c
118086 +++ b/net/8021q/vlan_netlink.c
118087 @@ -245,7 +245,7 @@ static struct net *vlan_get_link_net(const struct net_device *dev)
118088 return dev_net(real_dev);
118089 }
118090
118091 -struct rtnl_link_ops vlan_link_ops __read_mostly = {
118092 +struct rtnl_link_ops vlan_link_ops = {
118093 .kind = "vlan",
118094 .maxtype = IFLA_VLAN_MAX,
118095 .policy = vlan_policy,
118096 diff --git a/net/9p/mod.c b/net/9p/mod.c
118097 index 6ab36ae..6f1841b 100644
118098 --- a/net/9p/mod.c
118099 +++ b/net/9p/mod.c
118100 @@ -84,7 +84,7 @@ static LIST_HEAD(v9fs_trans_list);
118101 void v9fs_register_trans(struct p9_trans_module *m)
118102 {
118103 spin_lock(&v9fs_trans_lock);
118104 - list_add_tail(&m->list, &v9fs_trans_list);
118105 + pax_list_add_tail((struct list_head *)&m->list, &v9fs_trans_list);
118106 spin_unlock(&v9fs_trans_lock);
118107 }
118108 EXPORT_SYMBOL(v9fs_register_trans);
118109 @@ -97,7 +97,7 @@ EXPORT_SYMBOL(v9fs_register_trans);
118110 void v9fs_unregister_trans(struct p9_trans_module *m)
118111 {
118112 spin_lock(&v9fs_trans_lock);
118113 - list_del_init(&m->list);
118114 + pax_list_del_init((struct list_head *)&m->list);
118115 spin_unlock(&v9fs_trans_lock);
118116 }
118117 EXPORT_SYMBOL(v9fs_unregister_trans);
118118 diff --git a/net/9p/trans_fd.c b/net/9p/trans_fd.c
118119 index bced8c0..ef253b7 100644
118120 --- a/net/9p/trans_fd.c
118121 +++ b/net/9p/trans_fd.c
118122 @@ -428,7 +428,7 @@ static int p9_fd_write(struct p9_client *client, void *v, int len)
118123 oldfs = get_fs();
118124 set_fs(get_ds());
118125 /* The cast to a user pointer is valid due to the set_fs() */
118126 - ret = vfs_write(ts->wr, (__force void __user *)v, len, &ts->wr->f_pos);
118127 + ret = vfs_write(ts->wr, (void __force_user *)v, len, &ts->wr->f_pos);
118128 set_fs(oldfs);
118129
118130 if (ret <= 0 && ret != -ERESTARTSYS && ret != -EAGAIN)
118131 diff --git a/net/appletalk/atalk_proc.c b/net/appletalk/atalk_proc.c
118132 index af46bc4..f9adfcd 100644
118133 --- a/net/appletalk/atalk_proc.c
118134 +++ b/net/appletalk/atalk_proc.c
118135 @@ -256,7 +256,7 @@ int __init atalk_proc_init(void)
118136 struct proc_dir_entry *p;
118137 int rc = -ENOMEM;
118138
118139 - atalk_proc_dir = proc_mkdir("atalk", init_net.proc_net);
118140 + atalk_proc_dir = proc_mkdir_restrict("atalk", init_net.proc_net);
118141 if (!atalk_proc_dir)
118142 goto out;
118143
118144 diff --git a/net/atm/atm_misc.c b/net/atm/atm_misc.c
118145 index 876fbe8..8bbea9f 100644
118146 --- a/net/atm/atm_misc.c
118147 +++ b/net/atm/atm_misc.c
118148 @@ -17,7 +17,7 @@ int atm_charge(struct atm_vcc *vcc, int truesize)
118149 if (atomic_read(&sk_atm(vcc)->sk_rmem_alloc) <= sk_atm(vcc)->sk_rcvbuf)
118150 return 1;
118151 atm_return(vcc, truesize);
118152 - atomic_inc(&vcc->stats->rx_drop);
118153 + atomic_inc_unchecked(&vcc->stats->rx_drop);
118154 return 0;
118155 }
118156 EXPORT_SYMBOL(atm_charge);
118157 @@ -39,7 +39,7 @@ struct sk_buff *atm_alloc_charge(struct atm_vcc *vcc, int pdu_size,
118158 }
118159 }
118160 atm_return(vcc, guess);
118161 - atomic_inc(&vcc->stats->rx_drop);
118162 + atomic_inc_unchecked(&vcc->stats->rx_drop);
118163 return NULL;
118164 }
118165 EXPORT_SYMBOL(atm_alloc_charge);
118166 @@ -86,7 +86,7 @@ EXPORT_SYMBOL(atm_pcr_goal);
118167
118168 void sonet_copy_stats(struct k_sonet_stats *from, struct sonet_stats *to)
118169 {
118170 -#define __HANDLE_ITEM(i) to->i = atomic_read(&from->i)
118171 +#define __HANDLE_ITEM(i) to->i = atomic_read_unchecked(&from->i)
118172 __SONET_ITEMS
118173 #undef __HANDLE_ITEM
118174 }
118175 @@ -94,7 +94,7 @@ EXPORT_SYMBOL(sonet_copy_stats);
118176
118177 void sonet_subtract_stats(struct k_sonet_stats *from, struct sonet_stats *to)
118178 {
118179 -#define __HANDLE_ITEM(i) atomic_sub(to->i, &from->i)
118180 +#define __HANDLE_ITEM(i) atomic_sub_unchecked(to->i,&from->i)
118181 __SONET_ITEMS
118182 #undef __HANDLE_ITEM
118183 }
118184 diff --git a/net/atm/lec.c b/net/atm/lec.c
118185 index cd3b379..977a3c9 100644
118186 --- a/net/atm/lec.c
118187 +++ b/net/atm/lec.c
118188 @@ -111,9 +111,9 @@ static inline void lec_arp_put(struct lec_arp_table *entry)
118189 }
118190
118191 static struct lane2_ops lane2_ops = {
118192 - lane2_resolve, /* resolve, spec 3.1.3 */
118193 - lane2_associate_req, /* associate_req, spec 3.1.4 */
118194 - NULL /* associate indicator, spec 3.1.5 */
118195 + .resolve = lane2_resolve,
118196 + .associate_req = lane2_associate_req,
118197 + .associate_indicator = NULL
118198 };
118199
118200 static unsigned char bus_mac[ETH_ALEN] = { 0xff, 0xff, 0xff, 0xff, 0xff, 0xff };
118201 diff --git a/net/atm/lec.h b/net/atm/lec.h
118202 index 4149db1..f2ab682 100644
118203 --- a/net/atm/lec.h
118204 +++ b/net/atm/lec.h
118205 @@ -48,7 +48,7 @@ struct lane2_ops {
118206 const u8 *tlvs, u32 sizeoftlvs);
118207 void (*associate_indicator) (struct net_device *dev, const u8 *mac_addr,
118208 const u8 *tlvs, u32 sizeoftlvs);
118209 -};
118210 +} __no_const;
118211
118212 /*
118213 * ATM LAN Emulation supports both LLC & Dix Ethernet EtherType
118214 diff --git a/net/atm/mpoa_caches.c b/net/atm/mpoa_caches.c
118215 index d1b2d9a..d549f7f 100644
118216 --- a/net/atm/mpoa_caches.c
118217 +++ b/net/atm/mpoa_caches.c
118218 @@ -535,30 +535,30 @@ static void eg_destroy_cache(struct mpoa_client *mpc)
118219
118220
118221 static struct in_cache_ops ingress_ops = {
118222 - in_cache_add_entry, /* add_entry */
118223 - in_cache_get, /* get */
118224 - in_cache_get_with_mask, /* get_with_mask */
118225 - in_cache_get_by_vcc, /* get_by_vcc */
118226 - in_cache_put, /* put */
118227 - in_cache_remove_entry, /* remove_entry */
118228 - cache_hit, /* cache_hit */
118229 - clear_count_and_expired, /* clear_count */
118230 - check_resolving_entries, /* check_resolving */
118231 - refresh_entries, /* refresh */
118232 - in_destroy_cache /* destroy_cache */
118233 + .add_entry = in_cache_add_entry,
118234 + .get = in_cache_get,
118235 + .get_with_mask = in_cache_get_with_mask,
118236 + .get_by_vcc = in_cache_get_by_vcc,
118237 + .put = in_cache_put,
118238 + .remove_entry = in_cache_remove_entry,
118239 + .cache_hit = cache_hit,
118240 + .clear_count = clear_count_and_expired,
118241 + .check_resolving = check_resolving_entries,
118242 + .refresh = refresh_entries,
118243 + .destroy_cache = in_destroy_cache
118244 };
118245
118246 static struct eg_cache_ops egress_ops = {
118247 - eg_cache_add_entry, /* add_entry */
118248 - eg_cache_get_by_cache_id, /* get_by_cache_id */
118249 - eg_cache_get_by_tag, /* get_by_tag */
118250 - eg_cache_get_by_vcc, /* get_by_vcc */
118251 - eg_cache_get_by_src_ip, /* get_by_src_ip */
118252 - eg_cache_put, /* put */
118253 - eg_cache_remove_entry, /* remove_entry */
118254 - update_eg_cache_entry, /* update */
118255 - clear_expired, /* clear_expired */
118256 - eg_destroy_cache /* destroy_cache */
118257 + .add_entry = eg_cache_add_entry,
118258 + .get_by_cache_id = eg_cache_get_by_cache_id,
118259 + .get_by_tag = eg_cache_get_by_tag,
118260 + .get_by_vcc = eg_cache_get_by_vcc,
118261 + .get_by_src_ip = eg_cache_get_by_src_ip,
118262 + .put = eg_cache_put,
118263 + .remove_entry = eg_cache_remove_entry,
118264 + .update = update_eg_cache_entry,
118265 + .clear_expired = clear_expired,
118266 + .destroy_cache = eg_destroy_cache
118267 };
118268
118269
118270 diff --git a/net/atm/proc.c b/net/atm/proc.c
118271 index bbb6461..cf04016 100644
118272 --- a/net/atm/proc.c
118273 +++ b/net/atm/proc.c
118274 @@ -45,9 +45,9 @@ static void add_stats(struct seq_file *seq, const char *aal,
118275 const struct k_atm_aal_stats *stats)
118276 {
118277 seq_printf(seq, "%s ( %d %d %d %d %d )", aal,
118278 - atomic_read(&stats->tx), atomic_read(&stats->tx_err),
118279 - atomic_read(&stats->rx), atomic_read(&stats->rx_err),
118280 - atomic_read(&stats->rx_drop));
118281 + atomic_read_unchecked(&stats->tx),atomic_read_unchecked(&stats->tx_err),
118282 + atomic_read_unchecked(&stats->rx),atomic_read_unchecked(&stats->rx_err),
118283 + atomic_read_unchecked(&stats->rx_drop));
118284 }
118285
118286 static void atm_dev_info(struct seq_file *seq, const struct atm_dev *dev)
118287 diff --git a/net/atm/resources.c b/net/atm/resources.c
118288 index 0447d5d..3cf4728 100644
118289 --- a/net/atm/resources.c
118290 +++ b/net/atm/resources.c
118291 @@ -160,7 +160,7 @@ EXPORT_SYMBOL(atm_dev_deregister);
118292 static void copy_aal_stats(struct k_atm_aal_stats *from,
118293 struct atm_aal_stats *to)
118294 {
118295 -#define __HANDLE_ITEM(i) to->i = atomic_read(&from->i)
118296 +#define __HANDLE_ITEM(i) to->i = atomic_read_unchecked(&from->i)
118297 __AAL_STAT_ITEMS
118298 #undef __HANDLE_ITEM
118299 }
118300 @@ -168,7 +168,7 @@ static void copy_aal_stats(struct k_atm_aal_stats *from,
118301 static void subtract_aal_stats(struct k_atm_aal_stats *from,
118302 struct atm_aal_stats *to)
118303 {
118304 -#define __HANDLE_ITEM(i) atomic_sub(to->i, &from->i)
118305 +#define __HANDLE_ITEM(i) atomic_sub_unchecked(to->i, &from->i)
118306 __AAL_STAT_ITEMS
118307 #undef __HANDLE_ITEM
118308 }
118309 diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c
118310 index 919a5ce..cc6b444 100644
118311 --- a/net/ax25/sysctl_net_ax25.c
118312 +++ b/net/ax25/sysctl_net_ax25.c
118313 @@ -152,7 +152,7 @@ int ax25_register_dev_sysctl(ax25_dev *ax25_dev)
118314 {
118315 char path[sizeof("net/ax25/") + IFNAMSIZ];
118316 int k;
118317 - struct ctl_table *table;
118318 + ctl_table_no_const *table;
118319
118320 table = kmemdup(ax25_param_table, sizeof(ax25_param_table), GFP_KERNEL);
118321 if (!table)
118322 diff --git a/net/batman-adv/bat_iv_ogm.c b/net/batman-adv/bat_iv_ogm.c
118323 index 753383c..32d12d9 100644
118324 --- a/net/batman-adv/bat_iv_ogm.c
118325 +++ b/net/batman-adv/bat_iv_ogm.c
118326 @@ -343,7 +343,7 @@ static int batadv_iv_ogm_iface_enable(struct batadv_hard_iface *hard_iface)
118327
118328 /* randomize initial seqno to avoid collision */
118329 get_random_bytes(&random_seqno, sizeof(random_seqno));
118330 - atomic_set(&hard_iface->bat_iv.ogm_seqno, random_seqno);
118331 + atomic_set_unchecked(&hard_iface->bat_iv.ogm_seqno, random_seqno);
118332
118333 hard_iface->bat_iv.ogm_buff_len = BATADV_OGM_HLEN;
118334 ogm_buff = kmalloc(hard_iface->bat_iv.ogm_buff_len, GFP_ATOMIC);
118335 @@ -947,9 +947,9 @@ static void batadv_iv_ogm_schedule(struct batadv_hard_iface *hard_iface)
118336 batadv_ogm_packet->tvlv_len = htons(tvlv_len);
118337
118338 /* change sequence number to network order */
118339 - seqno = (uint32_t)atomic_read(&hard_iface->bat_iv.ogm_seqno);
118340 + seqno = (uint32_t)atomic_read_unchecked(&hard_iface->bat_iv.ogm_seqno);
118341 batadv_ogm_packet->seqno = htonl(seqno);
118342 - atomic_inc(&hard_iface->bat_iv.ogm_seqno);
118343 + atomic_inc_unchecked(&hard_iface->bat_iv.ogm_seqno);
118344
118345 batadv_iv_ogm_slide_own_bcast_window(hard_iface);
118346
118347 @@ -1626,7 +1626,7 @@ static void batadv_iv_ogm_process(const struct sk_buff *skb, int ogm_offset,
118348 return;
118349
118350 /* could be changed by schedule_own_packet() */
118351 - if_incoming_seqno = atomic_read(&if_incoming->bat_iv.ogm_seqno);
118352 + if_incoming_seqno = atomic_read_unchecked(&if_incoming->bat_iv.ogm_seqno);
118353
118354 if (ogm_packet->flags & BATADV_DIRECTLINK)
118355 has_directlink_flag = true;
118356 diff --git a/net/batman-adv/fragmentation.c b/net/batman-adv/fragmentation.c
118357 index c0f0d01..725928a 100644
118358 --- a/net/batman-adv/fragmentation.c
118359 +++ b/net/batman-adv/fragmentation.c
118360 @@ -465,7 +465,7 @@ bool batadv_frag_send_packet(struct sk_buff *skb,
118361 frag_header.packet_type = BATADV_UNICAST_FRAG;
118362 frag_header.version = BATADV_COMPAT_VERSION;
118363 frag_header.ttl = BATADV_TTL;
118364 - frag_header.seqno = htons(atomic_inc_return(&bat_priv->frag_seqno));
118365 + frag_header.seqno = htons(atomic_inc_return_unchecked(&bat_priv->frag_seqno));
118366 frag_header.reserved = 0;
118367 frag_header.no = 0;
118368 frag_header.total_size = htons(skb->len);
118369 diff --git a/net/batman-adv/soft-interface.c b/net/batman-adv/soft-interface.c
118370 index 51cda3a..a5db59e 100644
118371 --- a/net/batman-adv/soft-interface.c
118372 +++ b/net/batman-adv/soft-interface.c
118373 @@ -330,7 +330,7 @@ send:
118374 primary_if->net_dev->dev_addr);
118375
118376 /* set broadcast sequence number */
118377 - seqno = atomic_inc_return(&bat_priv->bcast_seqno);
118378 + seqno = atomic_inc_return_unchecked(&bat_priv->bcast_seqno);
118379 bcast_packet->seqno = htonl(seqno);
118380
118381 batadv_add_bcast_packet_to_list(bat_priv, skb, brd_delay);
118382 @@ -798,7 +798,7 @@ static int batadv_softif_init_late(struct net_device *dev)
118383 atomic_set(&bat_priv->batman_queue_left, BATADV_BATMAN_QUEUE_LEN);
118384
118385 atomic_set(&bat_priv->mesh_state, BATADV_MESH_INACTIVE);
118386 - atomic_set(&bat_priv->bcast_seqno, 1);
118387 + atomic_set_unchecked(&bat_priv->bcast_seqno, 1);
118388 atomic_set(&bat_priv->tt.vn, 0);
118389 atomic_set(&bat_priv->tt.local_changes, 0);
118390 atomic_set(&bat_priv->tt.ogm_append_cnt, 0);
118391 @@ -812,7 +812,7 @@ static int batadv_softif_init_late(struct net_device *dev)
118392
118393 /* randomize initial seqno to avoid collision */
118394 get_random_bytes(&random_seqno, sizeof(random_seqno));
118395 - atomic_set(&bat_priv->frag_seqno, random_seqno);
118396 + atomic_set_unchecked(&bat_priv->frag_seqno, random_seqno);
118397
118398 bat_priv->primary_if = NULL;
118399 bat_priv->num_ifaces = 0;
118400 @@ -1020,7 +1020,7 @@ int batadv_softif_is_valid(const struct net_device *net_dev)
118401 return 0;
118402 }
118403
118404 -struct rtnl_link_ops batadv_link_ops __read_mostly = {
118405 +struct rtnl_link_ops batadv_link_ops = {
118406 .kind = "batadv",
118407 .priv_size = sizeof(struct batadv_priv),
118408 .setup = batadv_softif_init_early,
118409 diff --git a/net/batman-adv/types.h b/net/batman-adv/types.h
118410 index 55610a8..aba2ae8 100644
118411 --- a/net/batman-adv/types.h
118412 +++ b/net/batman-adv/types.h
118413 @@ -81,7 +81,7 @@ enum batadv_dhcp_recipient {
118414 struct batadv_hard_iface_bat_iv {
118415 unsigned char *ogm_buff;
118416 int ogm_buff_len;
118417 - atomic_t ogm_seqno;
118418 + atomic_unchecked_t ogm_seqno;
118419 };
118420
118421 /**
118422 @@ -786,7 +786,7 @@ struct batadv_priv {
118423 atomic_t bonding;
118424 atomic_t fragmentation;
118425 atomic_t packet_size_max;
118426 - atomic_t frag_seqno;
118427 + atomic_unchecked_t frag_seqno;
118428 #ifdef CONFIG_BATMAN_ADV_BLA
118429 atomic_t bridge_loop_avoidance;
118430 #endif
118431 @@ -805,7 +805,7 @@ struct batadv_priv {
118432 #endif
118433 uint32_t isolation_mark;
118434 uint32_t isolation_mark_mask;
118435 - atomic_t bcast_seqno;
118436 + atomic_unchecked_t bcast_seqno;
118437 atomic_t bcast_queue_left;
118438 atomic_t batman_queue_left;
118439 char num_ifaces;
118440 diff --git a/net/bluetooth/hci_sock.c b/net/bluetooth/hci_sock.c
118441 index f2d30d1..0573933 100644
118442 --- a/net/bluetooth/hci_sock.c
118443 +++ b/net/bluetooth/hci_sock.c
118444 @@ -1253,7 +1253,7 @@ static int hci_sock_setsockopt(struct socket *sock, int level, int optname,
118445 uf.event_mask[1] = *((u32 *) f->event_mask + 1);
118446 }
118447
118448 - len = min_t(unsigned int, len, sizeof(uf));
118449 + len = min((size_t)len, sizeof(uf));
118450 if (copy_from_user(&uf, optval, len)) {
118451 err = -EFAULT;
118452 break;
118453 diff --git a/net/bluetooth/l2cap_core.c b/net/bluetooth/l2cap_core.c
118454 index 45fffa4..c5ad848 100644
118455 --- a/net/bluetooth/l2cap_core.c
118456 +++ b/net/bluetooth/l2cap_core.c
118457 @@ -3537,8 +3537,10 @@ static int l2cap_parse_conf_rsp(struct l2cap_chan *chan, void *rsp, int len,
118458 break;
118459
118460 case L2CAP_CONF_RFC:
118461 - if (olen == sizeof(rfc))
118462 - memcpy(&rfc, (void *)val, olen);
118463 + if (olen != sizeof(rfc))
118464 + break;
118465 +
118466 + memcpy(&rfc, (void *)val, olen);
118467
118468 if (test_bit(CONF_STATE2_DEVICE, &chan->conf_state) &&
118469 rfc.mode != chan->mode)
118470 diff --git a/net/bluetooth/l2cap_sock.c b/net/bluetooth/l2cap_sock.c
118471 index 2442877..24ddcd1 100644
118472 --- a/net/bluetooth/l2cap_sock.c
118473 +++ b/net/bluetooth/l2cap_sock.c
118474 @@ -633,7 +633,8 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
118475 struct sock *sk = sock->sk;
118476 struct l2cap_chan *chan = l2cap_pi(sk)->chan;
118477 struct l2cap_options opts;
118478 - int len, err = 0;
118479 + int err = 0;
118480 + size_t len = optlen;
118481 u32 opt;
118482
118483 BT_DBG("sk %p", sk);
118484 @@ -660,7 +661,7 @@ static int l2cap_sock_setsockopt_old(struct socket *sock, int optname,
118485 opts.max_tx = chan->max_tx;
118486 opts.txwin_size = chan->tx_win;
118487
118488 - len = min_t(unsigned int, sizeof(opts), optlen);
118489 + len = min(sizeof(opts), len);
118490 if (copy_from_user((char *) &opts, optval, len)) {
118491 err = -EFAULT;
118492 break;
118493 @@ -747,7 +748,8 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
118494 struct bt_security sec;
118495 struct bt_power pwr;
118496 struct l2cap_conn *conn;
118497 - int len, err = 0;
118498 + int err = 0;
118499 + size_t len = optlen;
118500 u32 opt;
118501
118502 BT_DBG("sk %p", sk);
118503 @@ -771,7 +773,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
118504
118505 sec.level = BT_SECURITY_LOW;
118506
118507 - len = min_t(unsigned int, sizeof(sec), optlen);
118508 + len = min(sizeof(sec), len);
118509 if (copy_from_user((char *) &sec, optval, len)) {
118510 err = -EFAULT;
118511 break;
118512 @@ -867,7 +869,7 @@ static int l2cap_sock_setsockopt(struct socket *sock, int level, int optname,
118513
118514 pwr.force_active = BT_POWER_FORCE_ACTIVE_ON;
118515
118516 - len = min_t(unsigned int, sizeof(pwr), optlen);
118517 + len = min(sizeof(pwr), len);
118518 if (copy_from_user((char *) &pwr, optval, len)) {
118519 err = -EFAULT;
118520 break;
118521 diff --git a/net/bluetooth/rfcomm/sock.c b/net/bluetooth/rfcomm/sock.c
118522 index 7511df7..a670df3 100644
118523 --- a/net/bluetooth/rfcomm/sock.c
118524 +++ b/net/bluetooth/rfcomm/sock.c
118525 @@ -690,7 +690,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
118526 struct sock *sk = sock->sk;
118527 struct bt_security sec;
118528 int err = 0;
118529 - size_t len;
118530 + size_t len = optlen;
118531 u32 opt;
118532
118533 BT_DBG("sk %p", sk);
118534 @@ -712,7 +712,7 @@ static int rfcomm_sock_setsockopt(struct socket *sock, int level, int optname, c
118535
118536 sec.level = BT_SECURITY_LOW;
118537
118538 - len = min_t(unsigned int, sizeof(sec), optlen);
118539 + len = min(sizeof(sec), len);
118540 if (copy_from_user((char *) &sec, optval, len)) {
118541 err = -EFAULT;
118542 break;
118543 diff --git a/net/bluetooth/rfcomm/tty.c b/net/bluetooth/rfcomm/tty.c
118544 index 8e385a0..a5bdd8e 100644
118545 --- a/net/bluetooth/rfcomm/tty.c
118546 +++ b/net/bluetooth/rfcomm/tty.c
118547 @@ -752,7 +752,7 @@ static int rfcomm_tty_open(struct tty_struct *tty, struct file *filp)
118548 BT_DBG("tty %p id %d", tty, tty->index);
118549
118550 BT_DBG("dev %p dst %pMR channel %d opened %d", dev, &dev->dst,
118551 - dev->channel, dev->port.count);
118552 + dev->channel, atomic_read(&dev->port.count));
118553
118554 err = tty_port_open(&dev->port, tty, filp);
118555 if (err)
118556 @@ -775,7 +775,7 @@ static void rfcomm_tty_close(struct tty_struct *tty, struct file *filp)
118557 struct rfcomm_dev *dev = (struct rfcomm_dev *) tty->driver_data;
118558
118559 BT_DBG("tty %p dev %p dlc %p opened %d", tty, dev, dev->dlc,
118560 - dev->port.count);
118561 + atomic_read(&dev->port.count));
118562
118563 tty_port_close(&dev->port, tty, filp);
118564 }
118565 diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
118566 index 4d74a06..f37f9c2 100644
118567 --- a/net/bridge/br_netlink.c
118568 +++ b/net/bridge/br_netlink.c
118569 @@ -835,7 +835,7 @@ static struct rtnl_af_ops br_af_ops __read_mostly = {
118570 .get_link_af_size = br_get_link_af_size,
118571 };
118572
118573 -struct rtnl_link_ops br_link_ops __read_mostly = {
118574 +struct rtnl_link_ops br_link_ops = {
118575 .kind = "bridge",
118576 .priv_size = sizeof(struct net_bridge),
118577 .setup = br_dev_setup,
118578 diff --git a/net/bridge/netfilter/ebtables.c b/net/bridge/netfilter/ebtables.c
118579 index 18ca4b2..7e8d731 100644
118580 --- a/net/bridge/netfilter/ebtables.c
118581 +++ b/net/bridge/netfilter/ebtables.c
118582 @@ -1533,7 +1533,7 @@ static int do_ebt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
118583 tmp.valid_hooks = t->table->valid_hooks;
118584 }
118585 mutex_unlock(&ebt_mutex);
118586 - if (copy_to_user(user, &tmp, *len) != 0) {
118587 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
118588 BUGPRINT("c2u Didn't work\n");
118589 ret = -EFAULT;
118590 break;
118591 @@ -2339,7 +2339,7 @@ static int compat_do_ebt_get_ctl(struct sock *sk, int cmd,
118592 goto out;
118593 tmp.valid_hooks = t->valid_hooks;
118594
118595 - if (copy_to_user(user, &tmp, *len) != 0) {
118596 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
118597 ret = -EFAULT;
118598 break;
118599 }
118600 @@ -2350,7 +2350,7 @@ static int compat_do_ebt_get_ctl(struct sock *sk, int cmd,
118601 tmp.entries_size = t->table->entries_size;
118602 tmp.valid_hooks = t->table->valid_hooks;
118603
118604 - if (copy_to_user(user, &tmp, *len) != 0) {
118605 + if (*len > sizeof(tmp) || copy_to_user(user, &tmp, *len) != 0) {
118606 ret = -EFAULT;
118607 break;
118608 }
118609 diff --git a/net/caif/cfctrl.c b/net/caif/cfctrl.c
118610 index f5afda1..dcf770a 100644
118611 --- a/net/caif/cfctrl.c
118612 +++ b/net/caif/cfctrl.c
118613 @@ -10,6 +10,7 @@
118614 #include <linux/spinlock.h>
118615 #include <linux/slab.h>
118616 #include <linux/pkt_sched.h>
118617 +#include <linux/sched.h>
118618 #include <net/caif/caif_layer.h>
118619 #include <net/caif/cfpkt.h>
118620 #include <net/caif/cfctrl.h>
118621 @@ -43,8 +44,8 @@ struct cflayer *cfctrl_create(void)
118622 memset(&dev_info, 0, sizeof(dev_info));
118623 dev_info.id = 0xff;
118624 cfsrvl_init(&this->serv, 0, &dev_info, false);
118625 - atomic_set(&this->req_seq_no, 1);
118626 - atomic_set(&this->rsp_seq_no, 1);
118627 + atomic_set_unchecked(&this->req_seq_no, 1);
118628 + atomic_set_unchecked(&this->rsp_seq_no, 1);
118629 this->serv.layer.receive = cfctrl_recv;
118630 sprintf(this->serv.layer.name, "ctrl");
118631 this->serv.layer.ctrlcmd = cfctrl_ctrlcmd;
118632 @@ -130,8 +131,8 @@ static void cfctrl_insert_req(struct cfctrl *ctrl,
118633 struct cfctrl_request_info *req)
118634 {
118635 spin_lock_bh(&ctrl->info_list_lock);
118636 - atomic_inc(&ctrl->req_seq_no);
118637 - req->sequence_no = atomic_read(&ctrl->req_seq_no);
118638 + atomic_inc_unchecked(&ctrl->req_seq_no);
118639 + req->sequence_no = atomic_read_unchecked(&ctrl->req_seq_no);
118640 list_add_tail(&req->list, &ctrl->list);
118641 spin_unlock_bh(&ctrl->info_list_lock);
118642 }
118643 @@ -149,7 +150,7 @@ static struct cfctrl_request_info *cfctrl_remove_req(struct cfctrl *ctrl,
118644 if (p != first)
118645 pr_warn("Requests are not received in order\n");
118646
118647 - atomic_set(&ctrl->rsp_seq_no,
118648 + atomic_set_unchecked(&ctrl->rsp_seq_no,
118649 p->sequence_no);
118650 list_del(&p->list);
118651 goto out;
118652 diff --git a/net/caif/chnl_net.c b/net/caif/chnl_net.c
118653 index 67a4a36..8d28068 100644
118654 --- a/net/caif/chnl_net.c
118655 +++ b/net/caif/chnl_net.c
118656 @@ -515,7 +515,7 @@ static const struct nla_policy ipcaif_policy[IFLA_CAIF_MAX + 1] = {
118657 };
118658
118659
118660 -static struct rtnl_link_ops ipcaif_link_ops __read_mostly = {
118661 +static struct rtnl_link_ops ipcaif_link_ops = {
118662 .kind = "caif",
118663 .priv_size = sizeof(struct chnl_net),
118664 .setup = ipcaif_net_setup,
118665 diff --git a/net/can/af_can.c b/net/can/af_can.c
118666 index 166d436..2920816 100644
118667 --- a/net/can/af_can.c
118668 +++ b/net/can/af_can.c
118669 @@ -890,7 +890,7 @@ static const struct net_proto_family can_family_ops = {
118670 };
118671
118672 /* notifier block for netdevice event */
118673 -static struct notifier_block can_netdev_notifier __read_mostly = {
118674 +static struct notifier_block can_netdev_notifier = {
118675 .notifier_call = can_notifier,
118676 };
118677
118678 diff --git a/net/can/bcm.c b/net/can/bcm.c
118679 index a1ba687..aafaec5 100644
118680 --- a/net/can/bcm.c
118681 +++ b/net/can/bcm.c
118682 @@ -1620,7 +1620,7 @@ static int __init bcm_module_init(void)
118683 }
118684
118685 /* create /proc/net/can-bcm directory */
118686 - proc_dir = proc_mkdir("can-bcm", init_net.proc_net);
118687 + proc_dir = proc_mkdir_restrict("can-bcm", init_net.proc_net);
118688 return 0;
118689 }
118690
118691 diff --git a/net/can/gw.c b/net/can/gw.c
118692 index 4551687..4e82e9b 100644
118693 --- a/net/can/gw.c
118694 +++ b/net/can/gw.c
118695 @@ -80,7 +80,6 @@ MODULE_PARM_DESC(max_hops,
118696 "default: " __stringify(CGW_DEFAULT_HOPS) ")");
118697
118698 static HLIST_HEAD(cgw_list);
118699 -static struct notifier_block notifier;
118700
118701 static struct kmem_cache *cgw_cache __read_mostly;
118702
118703 @@ -992,6 +991,10 @@ static int cgw_remove_job(struct sk_buff *skb, struct nlmsghdr *nlh)
118704 return err;
118705 }
118706
118707 +static struct notifier_block notifier = {
118708 + .notifier_call = cgw_notifier
118709 +};
118710 +
118711 static __init int cgw_module_init(void)
118712 {
118713 /* sanitize given module parameter */
118714 @@ -1007,7 +1010,6 @@ static __init int cgw_module_init(void)
118715 return -ENOMEM;
118716
118717 /* set notifier */
118718 - notifier.notifier_call = cgw_notifier;
118719 register_netdevice_notifier(&notifier);
118720
118721 if (__rtnl_register(PF_CAN, RTM_GETROUTE, NULL, cgw_dump_jobs, NULL)) {
118722 diff --git a/net/can/proc.c b/net/can/proc.c
118723 index 1a19b98..df2b4ec 100644
118724 --- a/net/can/proc.c
118725 +++ b/net/can/proc.c
118726 @@ -514,7 +514,7 @@ static void can_remove_proc_readentry(const char *name)
118727 void can_init_proc(void)
118728 {
118729 /* create /proc/net/can directory */
118730 - can_dir = proc_mkdir("can", init_net.proc_net);
118731 + can_dir = proc_mkdir_restrict("can", init_net.proc_net);
118732
118733 if (!can_dir) {
118734 printk(KERN_INFO "can: failed to create /proc/net/can . "
118735 diff --git a/net/ceph/messenger.c b/net/ceph/messenger.c
118736 index e3be1d2..254c555 100644
118737 --- a/net/ceph/messenger.c
118738 +++ b/net/ceph/messenger.c
118739 @@ -189,7 +189,7 @@ static void con_fault(struct ceph_connection *con);
118740 #define MAX_ADDR_STR_LEN 64 /* 54 is enough */
118741
118742 static char addr_str[ADDR_STR_COUNT][MAX_ADDR_STR_LEN];
118743 -static atomic_t addr_str_seq = ATOMIC_INIT(0);
118744 +static atomic_unchecked_t addr_str_seq = ATOMIC_INIT(0);
118745
118746 static struct page *zero_page; /* used in certain error cases */
118747
118748 @@ -200,7 +200,7 @@ const char *ceph_pr_addr(const struct sockaddr_storage *ss)
118749 struct sockaddr_in *in4 = (struct sockaddr_in *) ss;
118750 struct sockaddr_in6 *in6 = (struct sockaddr_in6 *) ss;
118751
118752 - i = atomic_inc_return(&addr_str_seq) & ADDR_STR_COUNT_MASK;
118753 + i = atomic_inc_return_unchecked(&addr_str_seq) & ADDR_STR_COUNT_MASK;
118754 s = addr_str[i];
118755
118756 switch (ss->ss_family) {
118757 diff --git a/net/compat.c b/net/compat.c
118758 index 5cfd26a..7e43828 100644
118759 --- a/net/compat.c
118760 +++ b/net/compat.c
118761 @@ -98,20 +98,20 @@ int get_compat_msghdr(struct msghdr *kmsg,
118762
118763 #define CMSG_COMPAT_FIRSTHDR(msg) \
118764 (((msg)->msg_controllen) >= sizeof(struct compat_cmsghdr) ? \
118765 - (struct compat_cmsghdr __user *)((msg)->msg_control) : \
118766 + (struct compat_cmsghdr __force_user *)((msg)->msg_control) : \
118767 (struct compat_cmsghdr __user *)NULL)
118768
118769 #define CMSG_COMPAT_OK(ucmlen, ucmsg, mhdr) \
118770 ((ucmlen) >= sizeof(struct compat_cmsghdr) && \
118771 (ucmlen) <= (unsigned long) \
118772 ((mhdr)->msg_controllen - \
118773 - ((char *)(ucmsg) - (char *)(mhdr)->msg_control)))
118774 + ((char __force_kernel *)(ucmsg) - (char *)(mhdr)->msg_control)))
118775
118776 static inline struct compat_cmsghdr __user *cmsg_compat_nxthdr(struct msghdr *msg,
118777 struct compat_cmsghdr __user *cmsg, int cmsg_len)
118778 {
118779 char __user *ptr = (char __user *)cmsg + CMSG_COMPAT_ALIGN(cmsg_len);
118780 - if ((unsigned long)(ptr + 1 - (char __user *)msg->msg_control) >
118781 + if ((unsigned long)(ptr + 1 - (char __force_user *)msg->msg_control) >
118782 msg->msg_controllen)
118783 return NULL;
118784 return (struct compat_cmsghdr __user *)ptr;
118785 @@ -201,7 +201,7 @@ Efault:
118786
118787 int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *data)
118788 {
118789 - struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control;
118790 + struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __force_user *) kmsg->msg_control;
118791 struct compat_cmsghdr cmhdr;
118792 struct compat_timeval ctv;
118793 struct compat_timespec cts[3];
118794 @@ -257,7 +257,7 @@ int put_cmsg_compat(struct msghdr *kmsg, int level, int type, int len, void *dat
118795
118796 void scm_detach_fds_compat(struct msghdr *kmsg, struct scm_cookie *scm)
118797 {
118798 - struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __user *) kmsg->msg_control;
118799 + struct compat_cmsghdr __user *cm = (struct compat_cmsghdr __force_user *) kmsg->msg_control;
118800 int fdmax = (kmsg->msg_controllen - sizeof(struct compat_cmsghdr)) / sizeof(int);
118801 int fdnum = scm->fp->count;
118802 struct file **fp = scm->fp->fp;
118803 @@ -345,7 +345,7 @@ static int do_set_sock_timeout(struct socket *sock, int level,
118804 return -EFAULT;
118805 old_fs = get_fs();
118806 set_fs(KERNEL_DS);
118807 - err = sock_setsockopt(sock, level, optname, (char *)&ktime, sizeof(ktime));
118808 + err = sock_setsockopt(sock, level, optname, (char __force_user *)&ktime, sizeof(ktime));
118809 set_fs(old_fs);
118810
118811 return err;
118812 @@ -406,7 +406,7 @@ static int do_get_sock_timeout(struct socket *sock, int level, int optname,
118813 len = sizeof(ktime);
118814 old_fs = get_fs();
118815 set_fs(KERNEL_DS);
118816 - err = sock_getsockopt(sock, level, optname, (char *) &ktime, &len);
118817 + err = sock_getsockopt(sock, level, optname, (char __force_user *) &ktime, (int __force_user *)&len);
118818 set_fs(old_fs);
118819
118820 if (!err) {
118821 @@ -549,7 +549,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
118822 case MCAST_JOIN_GROUP:
118823 case MCAST_LEAVE_GROUP:
118824 {
118825 - struct compat_group_req __user *gr32 = (void *)optval;
118826 + struct compat_group_req __user *gr32 = (void __user *)optval;
118827 struct group_req __user *kgr =
118828 compat_alloc_user_space(sizeof(struct group_req));
118829 u32 interface;
118830 @@ -570,7 +570,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
118831 case MCAST_BLOCK_SOURCE:
118832 case MCAST_UNBLOCK_SOURCE:
118833 {
118834 - struct compat_group_source_req __user *gsr32 = (void *)optval;
118835 + struct compat_group_source_req __user *gsr32 = (void __user *)optval;
118836 struct group_source_req __user *kgsr = compat_alloc_user_space(
118837 sizeof(struct group_source_req));
118838 u32 interface;
118839 @@ -591,7 +591,7 @@ int compat_mc_setsockopt(struct sock *sock, int level, int optname,
118840 }
118841 case MCAST_MSFILTER:
118842 {
118843 - struct compat_group_filter __user *gf32 = (void *)optval;
118844 + struct compat_group_filter __user *gf32 = (void __user *)optval;
118845 struct group_filter __user *kgf;
118846 u32 interface, fmode, numsrc;
118847
118848 @@ -629,7 +629,7 @@ int compat_mc_getsockopt(struct sock *sock, int level, int optname,
118849 char __user *optval, int __user *optlen,
118850 int (*getsockopt)(struct sock *, int, int, char __user *, int __user *))
118851 {
118852 - struct compat_group_filter __user *gf32 = (void *)optval;
118853 + struct compat_group_filter __user *gf32 = (void __user *)optval;
118854 struct group_filter __user *kgf;
118855 int __user *koptlen;
118856 u32 interface, fmode, numsrc;
118857 @@ -773,7 +773,7 @@ COMPAT_SYSCALL_DEFINE2(socketcall, int, call, u32 __user *, args)
118858
118859 if (call < SYS_SOCKET || call > SYS_SENDMMSG)
118860 return -EINVAL;
118861 - if (copy_from_user(a, args, nas[call]))
118862 + if (nas[call] > sizeof a || copy_from_user(a, args, nas[call]))
118863 return -EFAULT;
118864 a0 = a[0];
118865 a1 = a[1];
118866 diff --git a/net/core/datagram.c b/net/core/datagram.c
118867 index 617088a..0364f4f 100644
118868 --- a/net/core/datagram.c
118869 +++ b/net/core/datagram.c
118870 @@ -338,7 +338,7 @@ int skb_kill_datagram(struct sock *sk, struct sk_buff *skb, unsigned int flags)
118871 }
118872
118873 kfree_skb(skb);
118874 - atomic_inc(&sk->sk_drops);
118875 + atomic_inc_unchecked(&sk->sk_drops);
118876 sk_mem_reclaim_partial(sk);
118877
118878 return err;
118879 diff --git a/net/core/dev.c b/net/core/dev.c
118880 index a8e4dd4..aab06f7 100644
118881 --- a/net/core/dev.c
118882 +++ b/net/core/dev.c
118883 @@ -1721,7 +1721,7 @@ int __dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
118884 {
118885 if (skb_orphan_frags(skb, GFP_ATOMIC) ||
118886 unlikely(!is_skb_forwardable(dev, skb))) {
118887 - atomic_long_inc(&dev->rx_dropped);
118888 + atomic_long_inc_unchecked(&dev->rx_dropped);
118889 kfree_skb(skb);
118890 return NET_RX_DROP;
118891 }
118892 @@ -3125,7 +3125,7 @@ recursion_alert:
118893 drop:
118894 rcu_read_unlock_bh();
118895
118896 - atomic_long_inc(&dev->tx_dropped);
118897 + atomic_long_inc_unchecked(&dev->tx_dropped);
118898 kfree_skb_list(skb);
118899 return rc;
118900 out:
118901 @@ -3477,7 +3477,7 @@ drop:
118902
118903 local_irq_restore(flags);
118904
118905 - atomic_long_inc(&skb->dev->rx_dropped);
118906 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
118907 kfree_skb(skb);
118908 return NET_RX_DROP;
118909 }
118910 @@ -3554,7 +3554,7 @@ int netif_rx_ni(struct sk_buff *skb)
118911 }
118912 EXPORT_SYMBOL(netif_rx_ni);
118913
118914 -static void net_tx_action(struct softirq_action *h)
118915 +static __latent_entropy void net_tx_action(void)
118916 {
118917 struct softnet_data *sd = this_cpu_ptr(&softnet_data);
118918
118919 @@ -3892,7 +3892,7 @@ ncls:
118920 ret = pt_prev->func(skb, skb->dev, pt_prev, orig_dev);
118921 } else {
118922 drop:
118923 - atomic_long_inc(&skb->dev->rx_dropped);
118924 + atomic_long_inc_unchecked(&skb->dev->rx_dropped);
118925 kfree_skb(skb);
118926 /* Jamal, now you will not able to escape explaining
118927 * me how you were going to use this. :-)
118928 @@ -4783,7 +4783,7 @@ out_unlock:
118929 return work;
118930 }
118931
118932 -static void net_rx_action(struct softirq_action *h)
118933 +static __latent_entropy void net_rx_action(void)
118934 {
118935 struct softnet_data *sd = this_cpu_ptr(&softnet_data);
118936 unsigned long time_limit = jiffies + 2;
118937 @@ -6843,8 +6843,8 @@ struct rtnl_link_stats64 *dev_get_stats(struct net_device *dev,
118938 } else {
118939 netdev_stats_to_stats64(storage, &dev->stats);
118940 }
118941 - storage->rx_dropped += atomic_long_read(&dev->rx_dropped);
118942 - storage->tx_dropped += atomic_long_read(&dev->tx_dropped);
118943 + storage->rx_dropped += atomic_long_read_unchecked(&dev->rx_dropped);
118944 + storage->tx_dropped += atomic_long_read_unchecked(&dev->tx_dropped);
118945 return storage;
118946 }
118947 EXPORT_SYMBOL(dev_get_stats);
118948 diff --git a/net/core/dev_ioctl.c b/net/core/dev_ioctl.c
118949 index b94b1d2..da3ed7c 100644
118950 --- a/net/core/dev_ioctl.c
118951 +++ b/net/core/dev_ioctl.c
118952 @@ -368,8 +368,13 @@ void dev_load(struct net *net, const char *name)
118953 no_module = !dev;
118954 if (no_module && capable(CAP_NET_ADMIN))
118955 no_module = request_module("netdev-%s", name);
118956 - if (no_module && capable(CAP_SYS_MODULE))
118957 + if (no_module && capable(CAP_SYS_MODULE)) {
118958 +#ifdef CONFIG_GRKERNSEC_MODHARDEN
118959 + ___request_module(true, "grsec_modharden_netdev", "%s", name);
118960 +#else
118961 request_module("%s", name);
118962 +#endif
118963 + }
118964 }
118965 EXPORT_SYMBOL(dev_load);
118966
118967 diff --git a/net/core/filter.c b/net/core/filter.c
118968 index 8dcdd86..a809731 100644
118969 --- a/net/core/filter.c
118970 +++ b/net/core/filter.c
118971 @@ -582,7 +582,11 @@ do_pass:
118972
118973 /* Unknown instruction. */
118974 default:
118975 - goto err;
118976 + WARN(1, KERN_ALERT "Unknown sock filter code:%u jt:%u tf:%u k:%u\n",
118977 + fp->code, fp->jt, fp->jf, fp->k);
118978 + kfree(addrs);
118979 + BUG();
118980 + return -EINVAL;
118981 }
118982
118983 insn++;
118984 @@ -626,7 +630,7 @@ static int check_load_and_stores(const struct sock_filter *filter, int flen)
118985 u16 *masks, memvalid = 0; /* One bit per cell, 16 cells */
118986 int pc, ret = 0;
118987
118988 - BUILD_BUG_ON(BPF_MEMWORDS > 16);
118989 + BUILD_BUG_ON(BPF_MEMWORDS != 16);
118990
118991 masks = kmalloc_array(flen, sizeof(*masks), GFP_KERNEL);
118992 if (!masks)
118993 @@ -1055,7 +1059,7 @@ int bpf_prog_create(struct bpf_prog **pfp, struct sock_fprog_kern *fprog)
118994 if (!fp)
118995 return -ENOMEM;
118996
118997 - memcpy(fp->insns, fprog->filter, fsize);
118998 + memcpy(fp->insns, (void __force_kernel *)fprog->filter, fsize);
118999
119000 fp->len = fprog->len;
119001 /* Since unattached filters are not copied back to user
119002 diff --git a/net/core/flow.c b/net/core/flow.c
119003 index 1033725..340f65d 100644
119004 --- a/net/core/flow.c
119005 +++ b/net/core/flow.c
119006 @@ -65,7 +65,7 @@ static void flow_cache_new_hashrnd(unsigned long arg)
119007 static int flow_entry_valid(struct flow_cache_entry *fle,
119008 struct netns_xfrm *xfrm)
119009 {
119010 - if (atomic_read(&xfrm->flow_cache_genid) != fle->genid)
119011 + if (atomic_read_unchecked(&xfrm->flow_cache_genid) != fle->genid)
119012 return 0;
119013 if (fle->object && !fle->object->ops->check(fle->object))
119014 return 0;
119015 @@ -242,7 +242,7 @@ flow_cache_lookup(struct net *net, const struct flowi *key, u16 family, u8 dir,
119016 hlist_add_head(&fle->u.hlist, &fcp->hash_table[hash]);
119017 fcp->hash_count++;
119018 }
119019 - } else if (likely(fle->genid == atomic_read(&net->xfrm.flow_cache_genid))) {
119020 + } else if (likely(fle->genid == atomic_read_unchecked(&net->xfrm.flow_cache_genid))) {
119021 flo = fle->object;
119022 if (!flo)
119023 goto ret_object;
119024 @@ -263,7 +263,7 @@ nocache:
119025 }
119026 flo = resolver(net, key, family, dir, flo, ctx);
119027 if (fle) {
119028 - fle->genid = atomic_read(&net->xfrm.flow_cache_genid);
119029 + fle->genid = atomic_read_unchecked(&net->xfrm.flow_cache_genid);
119030 if (!IS_ERR(flo))
119031 fle->object = flo;
119032 else
119033 diff --git a/net/core/neighbour.c b/net/core/neighbour.c
119034 index 84195da..035c7a7 100644
119035 --- a/net/core/neighbour.c
119036 +++ b/net/core/neighbour.c
119037 @@ -2821,7 +2821,7 @@ static int proc_unres_qlen(struct ctl_table *ctl, int write,
119038 void __user *buffer, size_t *lenp, loff_t *ppos)
119039 {
119040 int size, ret;
119041 - struct ctl_table tmp = *ctl;
119042 + ctl_table_no_const tmp = *ctl;
119043
119044 tmp.extra1 = &zero;
119045 tmp.extra2 = &unres_qlen_max;
119046 @@ -2883,7 +2883,7 @@ static int neigh_proc_dointvec_zero_intmax(struct ctl_table *ctl, int write,
119047 void __user *buffer,
119048 size_t *lenp, loff_t *ppos)
119049 {
119050 - struct ctl_table tmp = *ctl;
119051 + ctl_table_no_const tmp = *ctl;
119052 int ret;
119053
119054 tmp.extra1 = &zero;
119055 diff --git a/net/core/net-procfs.c b/net/core/net-procfs.c
119056 index 2bf8329..2eb1423 100644
119057 --- a/net/core/net-procfs.c
119058 +++ b/net/core/net-procfs.c
119059 @@ -79,7 +79,13 @@ static void dev_seq_printf_stats(struct seq_file *seq, struct net_device *dev)
119060 struct rtnl_link_stats64 temp;
119061 const struct rtnl_link_stats64 *stats = dev_get_stats(dev, &temp);
119062
119063 - seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
119064 + if (gr_proc_is_restricted())
119065 + seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
119066 + "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
119067 + dev->name, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL,
119068 + 0ULL, 0ULL, 0ULL, 0ULL, 0ULL, 0ULL);
119069 + else
119070 + seq_printf(seq, "%6s: %7llu %7llu %4llu %4llu %4llu %5llu %10llu %9llu "
119071 "%8llu %7llu %4llu %4llu %4llu %5llu %7llu %10llu\n",
119072 dev->name, stats->rx_bytes, stats->rx_packets,
119073 stats->rx_errors,
119074 @@ -166,7 +172,7 @@ static int softnet_seq_show(struct seq_file *seq, void *v)
119075 return 0;
119076 }
119077
119078 -static const struct seq_operations dev_seq_ops = {
119079 +const struct seq_operations dev_seq_ops = {
119080 .start = dev_seq_start,
119081 .next = dev_seq_next,
119082 .stop = dev_seq_stop,
119083 @@ -196,7 +202,7 @@ static const struct seq_operations softnet_seq_ops = {
119084
119085 static int softnet_seq_open(struct inode *inode, struct file *file)
119086 {
119087 - return seq_open(file, &softnet_seq_ops);
119088 + return seq_open_restrict(file, &softnet_seq_ops);
119089 }
119090
119091 static const struct file_operations softnet_seq_fops = {
119092 @@ -283,8 +289,13 @@ static int ptype_seq_show(struct seq_file *seq, void *v)
119093 else
119094 seq_printf(seq, "%04x", ntohs(pt->type));
119095
119096 +#ifdef CONFIG_GRKERNSEC_HIDESYM
119097 + seq_printf(seq, " %-8s %pf\n",
119098 + pt->dev ? pt->dev->name : "", NULL);
119099 +#else
119100 seq_printf(seq, " %-8s %pf\n",
119101 pt->dev ? pt->dev->name : "", pt->func);
119102 +#endif
119103 }
119104
119105 return 0;
119106 diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
119107 index 18b34d7..faecc1d 100644
119108 --- a/net/core/net-sysfs.c
119109 +++ b/net/core/net-sysfs.c
119110 @@ -288,7 +288,7 @@ static ssize_t carrier_changes_show(struct device *dev,
119111 {
119112 struct net_device *netdev = to_net_dev(dev);
119113 return sprintf(buf, fmt_dec,
119114 - atomic_read(&netdev->carrier_changes));
119115 + atomic_read_unchecked(&netdev->carrier_changes));
119116 }
119117 static DEVICE_ATTR_RO(carrier_changes);
119118
119119 diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
119120 index 2c2eb1b..a53be3e 100644
119121 --- a/net/core/net_namespace.c
119122 +++ b/net/core/net_namespace.c
119123 @@ -775,7 +775,7 @@ static int __register_pernet_operations(struct list_head *list,
119124 int error;
119125 LIST_HEAD(net_exit_list);
119126
119127 - list_add_tail(&ops->list, list);
119128 + pax_list_add_tail((struct list_head *)&ops->list, list);
119129 if (ops->init || (ops->id && ops->size)) {
119130 for_each_net(net) {
119131 error = ops_init(ops, net);
119132 @@ -788,7 +788,7 @@ static int __register_pernet_operations(struct list_head *list,
119133
119134 out_undo:
119135 /* If I have an error cleanup all namespaces I initialized */
119136 - list_del(&ops->list);
119137 + pax_list_del((struct list_head *)&ops->list);
119138 ops_exit_list(ops, &net_exit_list);
119139 ops_free_list(ops, &net_exit_list);
119140 return error;
119141 @@ -799,7 +799,7 @@ static void __unregister_pernet_operations(struct pernet_operations *ops)
119142 struct net *net;
119143 LIST_HEAD(net_exit_list);
119144
119145 - list_del(&ops->list);
119146 + pax_list_del((struct list_head *)&ops->list);
119147 for_each_net(net)
119148 list_add_tail(&net->exit_list, &net_exit_list);
119149 ops_exit_list(ops, &net_exit_list);
119150 @@ -933,7 +933,7 @@ int register_pernet_device(struct pernet_operations *ops)
119151 mutex_lock(&net_mutex);
119152 error = register_pernet_operations(&pernet_list, ops);
119153 if (!error && (first_device == &pernet_list))
119154 - first_device = &ops->list;
119155 + first_device = (struct list_head *)&ops->list;
119156 mutex_unlock(&net_mutex);
119157 return error;
119158 }
119159 diff --git a/net/core/netpoll.c b/net/core/netpoll.c
119160 index c126a87..10ad89d 100644
119161 --- a/net/core/netpoll.c
119162 +++ b/net/core/netpoll.c
119163 @@ -377,7 +377,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
119164 struct udphdr *udph;
119165 struct iphdr *iph;
119166 struct ethhdr *eth;
119167 - static atomic_t ip_ident;
119168 + static atomic_unchecked_t ip_ident;
119169 struct ipv6hdr *ip6h;
119170
119171 udp_len = len + sizeof(*udph);
119172 @@ -448,7 +448,7 @@ void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
119173 put_unaligned(0x45, (unsigned char *)iph);
119174 iph->tos = 0;
119175 put_unaligned(htons(ip_len), &(iph->tot_len));
119176 - iph->id = htons(atomic_inc_return(&ip_ident));
119177 + iph->id = htons(atomic_inc_return_unchecked(&ip_ident));
119178 iph->frag_off = 0;
119179 iph->ttl = 64;
119180 iph->protocol = IPPROTO_UDP;
119181 diff --git a/net/core/pktgen.c b/net/core/pktgen.c
119182 index 1cbd209..9553598 100644
119183 --- a/net/core/pktgen.c
119184 +++ b/net/core/pktgen.c
119185 @@ -3828,7 +3828,7 @@ static int __net_init pg_net_init(struct net *net)
119186 pn->net = net;
119187 INIT_LIST_HEAD(&pn->pktgen_threads);
119188 pn->pktgen_exiting = false;
119189 - pn->proc_dir = proc_mkdir(PG_PROC_DIR, pn->net->proc_net);
119190 + pn->proc_dir = proc_mkdir_restrict(PG_PROC_DIR, pn->net->proc_net);
119191 if (!pn->proc_dir) {
119192 pr_warn("cannot create /proc/net/%s\n", PG_PROC_DIR);
119193 return -ENODEV;
119194 diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
119195 index 0861018..1fd388b 100644
119196 --- a/net/core/rtnetlink.c
119197 +++ b/net/core/rtnetlink.c
119198 @@ -61,7 +61,7 @@ struct rtnl_link {
119199 rtnl_doit_func doit;
119200 rtnl_dumpit_func dumpit;
119201 rtnl_calcit_func calcit;
119202 -};
119203 +} __no_const;
119204
119205 static DEFINE_MUTEX(rtnl_mutex);
119206
119207 @@ -307,10 +307,13 @@ int __rtnl_link_register(struct rtnl_link_ops *ops)
119208 * to use the ops for creating device. So do not
119209 * fill up dellink as well. That disables rtnl_dellink.
119210 */
119211 - if (ops->setup && !ops->dellink)
119212 - ops->dellink = unregister_netdevice_queue;
119213 + if (ops->setup && !ops->dellink) {
119214 + pax_open_kernel();
119215 + *(void **)&ops->dellink = unregister_netdevice_queue;
119216 + pax_close_kernel();
119217 + }
119218
119219 - list_add_tail(&ops->list, &link_ops);
119220 + pax_list_add_tail((struct list_head *)&ops->list, &link_ops);
119221 return 0;
119222 }
119223 EXPORT_SYMBOL_GPL(__rtnl_link_register);
119224 @@ -357,7 +360,7 @@ void __rtnl_link_unregister(struct rtnl_link_ops *ops)
119225 for_each_net(net) {
119226 __rtnl_kill_links(net, ops);
119227 }
119228 - list_del(&ops->list);
119229 + pax_list_del((struct list_head *)&ops->list);
119230 }
119231 EXPORT_SYMBOL_GPL(__rtnl_link_unregister);
119232
119233 @@ -1082,7 +1085,7 @@ static int rtnl_fill_ifinfo(struct sk_buff *skb, struct net_device *dev,
119234 (dev->ifalias &&
119235 nla_put_string(skb, IFLA_IFALIAS, dev->ifalias)) ||
119236 nla_put_u32(skb, IFLA_CARRIER_CHANGES,
119237 - atomic_read(&dev->carrier_changes)))
119238 + atomic_read_unchecked(&dev->carrier_changes)))
119239 goto nla_put_failure;
119240
119241 if (1) {
119242 diff --git a/net/core/scm.c b/net/core/scm.c
119243 index 3b6899b..20d20e7 100644
119244 --- a/net/core/scm.c
119245 +++ b/net/core/scm.c
119246 @@ -209,9 +209,9 @@ EXPORT_SYMBOL(__scm_send);
119247 int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
119248 {
119249 struct cmsghdr __user *cm
119250 - = (__force struct cmsghdr __user *)msg->msg_control;
119251 + = (struct cmsghdr __force_user *)msg->msg_control;
119252 struct cmsghdr cmhdr;
119253 - int cmlen = CMSG_LEN(len);
119254 + size_t cmlen = CMSG_LEN(len);
119255 int err;
119256
119257 if (MSG_CMSG_COMPAT & msg->msg_flags)
119258 @@ -232,7 +232,7 @@ int put_cmsg(struct msghdr * msg, int level, int type, int len, void *data)
119259 err = -EFAULT;
119260 if (copy_to_user(cm, &cmhdr, sizeof cmhdr))
119261 goto out;
119262 - if (copy_to_user(CMSG_DATA(cm), data, cmlen - sizeof(struct cmsghdr)))
119263 + if (copy_to_user((void __force_user *)CMSG_DATA((void __force_kernel *)cm), data, cmlen - sizeof(struct cmsghdr)))
119264 goto out;
119265 cmlen = CMSG_SPACE(len);
119266 if (msg->msg_controllen < cmlen)
119267 @@ -248,7 +248,7 @@ EXPORT_SYMBOL(put_cmsg);
119268 void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
119269 {
119270 struct cmsghdr __user *cm
119271 - = (__force struct cmsghdr __user*)msg->msg_control;
119272 + = (struct cmsghdr __force_user *)msg->msg_control;
119273
119274 int fdmax = 0;
119275 int fdnum = scm->fp->count;
119276 @@ -268,7 +268,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
119277 if (fdnum < fdmax)
119278 fdmax = fdnum;
119279
119280 - for (i=0, cmfptr=(__force int __user *)CMSG_DATA(cm); i<fdmax;
119281 + for (i=0, cmfptr=(int __force_user *)CMSG_DATA((void __force_kernel *)cm); i<fdmax;
119282 i++, cmfptr++)
119283 {
119284 struct socket *sock;
119285 @@ -297,7 +297,7 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
119286
119287 if (i > 0)
119288 {
119289 - int cmlen = CMSG_LEN(i*sizeof(int));
119290 + size_t cmlen = CMSG_LEN(i*sizeof(int));
119291 err = put_user(SOL_SOCKET, &cm->cmsg_level);
119292 if (!err)
119293 err = put_user(SCM_RIGHTS, &cm->cmsg_type);
119294 @@ -305,6 +305,8 @@ void scm_detach_fds(struct msghdr *msg, struct scm_cookie *scm)
119295 err = put_user(cmlen, &cm->cmsg_len);
119296 if (!err) {
119297 cmlen = CMSG_SPACE(i*sizeof(int));
119298 + if (msg->msg_controllen < cmlen)
119299 + cmlen = msg->msg_controllen;
119300 msg->msg_control += cmlen;
119301 msg->msg_controllen -= cmlen;
119302 }
119303 diff --git a/net/core/skbuff.c b/net/core/skbuff.c
119304 index 7bfa187..032715a 100644
119305 --- a/net/core/skbuff.c
119306 +++ b/net/core/skbuff.c
119307 @@ -2103,7 +2103,7 @@ EXPORT_SYMBOL(__skb_checksum);
119308 __wsum skb_checksum(const struct sk_buff *skb, int offset,
119309 int len, __wsum csum)
119310 {
119311 - const struct skb_checksum_ops ops = {
119312 + static const struct skb_checksum_ops ops = {
119313 .update = csum_partial_ext,
119314 .combine = csum_block_add_ext,
119315 };
119316 @@ -3318,12 +3318,14 @@ void __init skb_init(void)
119317 skbuff_head_cache = kmem_cache_create("skbuff_head_cache",
119318 sizeof(struct sk_buff),
119319 0,
119320 - SLAB_HWCACHE_ALIGN|SLAB_PANIC,
119321 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|
119322 + SLAB_NO_SANITIZE,
119323 NULL);
119324 skbuff_fclone_cache = kmem_cache_create("skbuff_fclone_cache",
119325 sizeof(struct sk_buff_fclones),
119326 0,
119327 - SLAB_HWCACHE_ALIGN|SLAB_PANIC,
119328 + SLAB_HWCACHE_ALIGN|SLAB_PANIC|
119329 + SLAB_NO_SANITIZE,
119330 NULL);
119331 }
119332
119333 diff --git a/net/core/sock.c b/net/core/sock.c
119334 index 193901d..33094ab 100644
119335 --- a/net/core/sock.c
119336 +++ b/net/core/sock.c
119337 @@ -441,7 +441,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
119338 struct sk_buff_head *list = &sk->sk_receive_queue;
119339
119340 if (atomic_read(&sk->sk_rmem_alloc) >= sk->sk_rcvbuf) {
119341 - atomic_inc(&sk->sk_drops);
119342 + atomic_inc_unchecked(&sk->sk_drops);
119343 trace_sock_rcvqueue_full(sk, skb);
119344 return -ENOMEM;
119345 }
119346 @@ -451,7 +451,7 @@ int sock_queue_rcv_skb(struct sock *sk, struct sk_buff *skb)
119347 return err;
119348
119349 if (!sk_rmem_schedule(sk, skb, skb->truesize)) {
119350 - atomic_inc(&sk->sk_drops);
119351 + atomic_inc_unchecked(&sk->sk_drops);
119352 return -ENOBUFS;
119353 }
119354
119355 @@ -484,7 +484,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
119356 skb->dev = NULL;
119357
119358 if (sk_rcvqueues_full(sk, sk->sk_rcvbuf)) {
119359 - atomic_inc(&sk->sk_drops);
119360 + atomic_inc_unchecked(&sk->sk_drops);
119361 goto discard_and_relse;
119362 }
119363 if (nested)
119364 @@ -502,7 +502,7 @@ int sk_receive_skb(struct sock *sk, struct sk_buff *skb, const int nested)
119365 mutex_release(&sk->sk_lock.dep_map, 1, _RET_IP_);
119366 } else if (sk_add_backlog(sk, skb, sk->sk_rcvbuf)) {
119367 bh_unlock_sock(sk);
119368 - atomic_inc(&sk->sk_drops);
119369 + atomic_inc_unchecked(&sk->sk_drops);
119370 goto discard_and_relse;
119371 }
119372
119373 @@ -908,6 +908,7 @@ set_rcvbuf:
119374 }
119375 break;
119376
119377 +#ifndef GRKERNSEC_BPF_HARDEN
119378 case SO_ATTACH_BPF:
119379 ret = -EINVAL;
119380 if (optlen == sizeof(u32)) {
119381 @@ -920,7 +921,7 @@ set_rcvbuf:
119382 ret = sk_attach_bpf(ufd, sk);
119383 }
119384 break;
119385 -
119386 +#endif
119387 case SO_DETACH_FILTER:
119388 ret = sk_detach_filter(sk);
119389 break;
119390 @@ -1022,12 +1023,12 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
119391 struct timeval tm;
119392 } v;
119393
119394 - int lv = sizeof(int);
119395 - int len;
119396 + unsigned int lv = sizeof(int);
119397 + unsigned int len;
119398
119399 if (get_user(len, optlen))
119400 return -EFAULT;
119401 - if (len < 0)
119402 + if (len > INT_MAX)
119403 return -EINVAL;
119404
119405 memset(&v, 0, sizeof(v));
119406 @@ -1165,11 +1166,11 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
119407
119408 case SO_PEERNAME:
119409 {
119410 - char address[128];
119411 + char address[_K_SS_MAXSIZE];
119412
119413 if (sock->ops->getname(sock, (struct sockaddr *)address, &lv, 2))
119414 return -ENOTCONN;
119415 - if (lv < len)
119416 + if (lv < len || sizeof address < len)
119417 return -EINVAL;
119418 if (copy_to_user(optval, address, len))
119419 return -EFAULT;
119420 @@ -1257,7 +1258,7 @@ int sock_getsockopt(struct socket *sock, int level, int optname,
119421
119422 if (len > lv)
119423 len = lv;
119424 - if (copy_to_user(optval, &v, len))
119425 + if (len > sizeof(v) || copy_to_user(optval, &v, len))
119426 return -EFAULT;
119427 lenout:
119428 if (put_user(len, optlen))
119429 @@ -1550,7 +1551,7 @@ struct sock *sk_clone_lock(const struct sock *sk, const gfp_t priority)
119430 newsk->sk_err = 0;
119431 newsk->sk_priority = 0;
119432 newsk->sk_incoming_cpu = raw_smp_processor_id();
119433 - atomic64_set(&newsk->sk_cookie, 0);
119434 + atomic64_set_unchecked(&newsk->sk_cookie, 0);
119435 /*
119436 * Before updating sk_refcnt, we must commit prior changes to memory
119437 * (Documentation/RCU/rculist_nulls.txt for details)
119438 @@ -2359,7 +2360,7 @@ void sock_init_data(struct socket *sock, struct sock *sk)
119439 */
119440 smp_wmb();
119441 atomic_set(&sk->sk_refcnt, 1);
119442 - atomic_set(&sk->sk_drops, 0);
119443 + atomic_set_unchecked(&sk->sk_drops, 0);
119444 }
119445 EXPORT_SYMBOL(sock_init_data);
119446
119447 @@ -2487,6 +2488,7 @@ void sock_enable_timestamp(struct sock *sk, int flag)
119448 int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
119449 int level, int type)
119450 {
119451 + struct sock_extended_err ee;
119452 struct sock_exterr_skb *serr;
119453 struct sk_buff *skb;
119454 int copied, err;
119455 @@ -2508,7 +2510,8 @@ int sock_recv_errqueue(struct sock *sk, struct msghdr *msg, int len,
119456 sock_recv_timestamp(msg, sk, skb);
119457
119458 serr = SKB_EXT_ERR(skb);
119459 - put_cmsg(msg, level, type, sizeof(serr->ee), &serr->ee);
119460 + ee = serr->ee;
119461 + put_cmsg(msg, level, type, sizeof ee, &ee);
119462
119463 msg->msg_flags |= MSG_ERRQUEUE;
119464 err = copied;
119465 diff --git a/net/core/sock_diag.c b/net/core/sock_diag.c
119466 index 817622f..2577b26 100644
119467 --- a/net/core/sock_diag.c
119468 +++ b/net/core/sock_diag.c
119469 @@ -12,7 +12,7 @@
119470 #include <linux/inet_diag.h>
119471 #include <linux/sock_diag.h>
119472
119473 -static const struct sock_diag_handler *sock_diag_handlers[AF_MAX];
119474 +static const struct sock_diag_handler *sock_diag_handlers[AF_MAX] __read_only;
119475 static int (*inet_rcv_compat)(struct sk_buff *skb, struct nlmsghdr *nlh);
119476 static DEFINE_MUTEX(sock_diag_table_mutex);
119477 static struct workqueue_struct *broadcast_wq;
119478 @@ -20,12 +20,12 @@ static struct workqueue_struct *broadcast_wq;
119479 static u64 sock_gen_cookie(struct sock *sk)
119480 {
119481 while (1) {
119482 - u64 res = atomic64_read(&sk->sk_cookie);
119483 + u64 res = atomic64_read_unchecked(&sk->sk_cookie);
119484
119485 if (res)
119486 return res;
119487 - res = atomic64_inc_return(&sock_net(sk)->cookie_gen);
119488 - atomic64_cmpxchg(&sk->sk_cookie, 0, res);
119489 + res = atomic64_inc_return_unchecked(&sock_net(sk)->cookie_gen);
119490 + atomic64_cmpxchg_unchecked(&sk->sk_cookie, 0, res);
119491 }
119492 }
119493
119494 @@ -190,8 +190,11 @@ int sock_diag_register(const struct sock_diag_handler *hndl)
119495 mutex_lock(&sock_diag_table_mutex);
119496 if (sock_diag_handlers[hndl->family])
119497 err = -EBUSY;
119498 - else
119499 + else {
119500 + pax_open_kernel();
119501 sock_diag_handlers[hndl->family] = hndl;
119502 + pax_close_kernel();
119503 + }
119504 mutex_unlock(&sock_diag_table_mutex);
119505
119506 return err;
119507 @@ -207,7 +210,9 @@ void sock_diag_unregister(const struct sock_diag_handler *hnld)
119508
119509 mutex_lock(&sock_diag_table_mutex);
119510 BUG_ON(sock_diag_handlers[family] != hnld);
119511 + pax_open_kernel();
119512 sock_diag_handlers[family] = NULL;
119513 + pax_close_kernel();
119514 mutex_unlock(&sock_diag_table_mutex);
119515 }
119516 EXPORT_SYMBOL_GPL(sock_diag_unregister);
119517 diff --git a/net/core/sysctl_net_core.c b/net/core/sysctl_net_core.c
119518 index 95b6139..3048623 100644
119519 --- a/net/core/sysctl_net_core.c
119520 +++ b/net/core/sysctl_net_core.c
119521 @@ -35,7 +35,7 @@ static int rps_sock_flow_sysctl(struct ctl_table *table, int write,
119522 {
119523 unsigned int orig_size, size;
119524 int ret, i;
119525 - struct ctl_table tmp = {
119526 + ctl_table_no_const tmp = {
119527 .data = &size,
119528 .maxlen = sizeof(size),
119529 .mode = table->mode
119530 @@ -203,7 +203,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
119531 void __user *buffer, size_t *lenp, loff_t *ppos)
119532 {
119533 char id[IFNAMSIZ];
119534 - struct ctl_table tbl = {
119535 + ctl_table_no_const tbl = {
119536 .data = id,
119537 .maxlen = IFNAMSIZ,
119538 };
119539 @@ -221,7 +221,7 @@ static int set_default_qdisc(struct ctl_table *table, int write,
119540 static int proc_do_rss_key(struct ctl_table *table, int write,
119541 void __user *buffer, size_t *lenp, loff_t *ppos)
119542 {
119543 - struct ctl_table fake_table;
119544 + ctl_table_no_const fake_table;
119545 char buf[NETDEV_RSS_KEY_LEN * 3];
119546
119547 snprintf(buf, sizeof(buf), "%*phC", NETDEV_RSS_KEY_LEN, netdev_rss_key);
119548 @@ -285,7 +285,7 @@ static struct ctl_table net_core_table[] = {
119549 .mode = 0444,
119550 .proc_handler = proc_do_rss_key,
119551 },
119552 -#ifdef CONFIG_BPF_JIT
119553 +#if defined(CONFIG_BPF_JIT) && !defined(CONFIG_GRKERNSEC_BPF_HARDEN)
119554 {
119555 .procname = "bpf_jit_enable",
119556 .data = &bpf_jit_enable,
119557 @@ -409,13 +409,12 @@ static struct ctl_table netns_core_table[] = {
119558
119559 static __net_init int sysctl_core_net_init(struct net *net)
119560 {
119561 - struct ctl_table *tbl;
119562 + ctl_table_no_const *tbl = NULL;
119563
119564 net->core.sysctl_somaxconn = SOMAXCONN;
119565
119566 - tbl = netns_core_table;
119567 if (!net_eq(net, &init_net)) {
119568 - tbl = kmemdup(tbl, sizeof(netns_core_table), GFP_KERNEL);
119569 + tbl = kmemdup(netns_core_table, sizeof(netns_core_table), GFP_KERNEL);
119570 if (tbl == NULL)
119571 goto err_dup;
119572
119573 @@ -425,17 +424,16 @@ static __net_init int sysctl_core_net_init(struct net *net)
119574 if (net->user_ns != &init_user_ns) {
119575 tbl[0].procname = NULL;
119576 }
119577 - }
119578 -
119579 - net->core.sysctl_hdr = register_net_sysctl(net, "net/core", tbl);
119580 + net->core.sysctl_hdr = register_net_sysctl(net, "net/core", tbl);
119581 + } else
119582 + net->core.sysctl_hdr = register_net_sysctl(net, "net/core", netns_core_table);
119583 if (net->core.sysctl_hdr == NULL)
119584 goto err_reg;
119585
119586 return 0;
119587
119588 err_reg:
119589 - if (tbl != netns_core_table)
119590 - kfree(tbl);
119591 + kfree(tbl);
119592 err_dup:
119593 return -ENOMEM;
119594 }
119595 @@ -450,7 +448,7 @@ static __net_exit void sysctl_core_net_exit(struct net *net)
119596 kfree(tbl);
119597 }
119598
119599 -static __net_initdata struct pernet_operations sysctl_core_ops = {
119600 +static __net_initconst struct pernet_operations sysctl_core_ops = {
119601 .init = sysctl_core_net_init,
119602 .exit = sysctl_core_net_exit,
119603 };
119604 diff --git a/net/decnet/af_decnet.c b/net/decnet/af_decnet.c
119605 index 675cf94..9279a75 100644
119606 --- a/net/decnet/af_decnet.c
119607 +++ b/net/decnet/af_decnet.c
119608 @@ -466,6 +466,7 @@ static struct proto dn_proto = {
119609 .sysctl_rmem = sysctl_decnet_rmem,
119610 .max_header = DN_MAX_NSP_DATA_HEADER + 64,
119611 .obj_size = sizeof(struct dn_sock),
119612 + .slab_flags = SLAB_USERCOPY,
119613 };
119614
119615 static struct sock *dn_alloc_sock(struct net *net, struct socket *sock, gfp_t gfp, int kern)
119616 diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
119617 index b2c26b0..41f803e 100644
119618 --- a/net/decnet/dn_dev.c
119619 +++ b/net/decnet/dn_dev.c
119620 @@ -201,7 +201,7 @@ static struct dn_dev_sysctl_table {
119621 .extra1 = &min_t3,
119622 .extra2 = &max_t3
119623 },
119624 - {0}
119625 + { }
119626 },
119627 };
119628
119629 diff --git a/net/decnet/sysctl_net_decnet.c b/net/decnet/sysctl_net_decnet.c
119630 index 5325b54..a0d4d69 100644
119631 --- a/net/decnet/sysctl_net_decnet.c
119632 +++ b/net/decnet/sysctl_net_decnet.c
119633 @@ -174,7 +174,7 @@ static int dn_node_address_handler(struct ctl_table *table, int write,
119634
119635 if (len > *lenp) len = *lenp;
119636
119637 - if (copy_to_user(buffer, addr, len))
119638 + if (len > sizeof addr || copy_to_user(buffer, addr, len))
119639 return -EFAULT;
119640
119641 *lenp = len;
119642 @@ -237,7 +237,7 @@ static int dn_def_dev_handler(struct ctl_table *table, int write,
119643
119644 if (len > *lenp) len = *lenp;
119645
119646 - if (copy_to_user(buffer, devname, len))
119647 + if (len > sizeof devname || copy_to_user(buffer, devname, len))
119648 return -EFAULT;
119649
119650 *lenp = len;
119651 diff --git a/net/dsa/dsa.c b/net/dsa/dsa.c
119652 index b445d49..13e8538 100644
119653 --- a/net/dsa/dsa.c
119654 +++ b/net/dsa/dsa.c
119655 @@ -851,7 +851,7 @@ static struct packet_type dsa_pack_type __read_mostly = {
119656 .func = dsa_switch_rcv,
119657 };
119658
119659 -static struct notifier_block dsa_netdevice_nb __read_mostly = {
119660 +static struct notifier_block dsa_netdevice_nb = {
119661 .notifier_call = dsa_slave_netdevice_event,
119662 };
119663
119664 diff --git a/net/hsr/hsr_netlink.c b/net/hsr/hsr_netlink.c
119665 index a2c7e4c..3dc9f67 100644
119666 --- a/net/hsr/hsr_netlink.c
119667 +++ b/net/hsr/hsr_netlink.c
119668 @@ -102,7 +102,7 @@ nla_put_failure:
119669 return -EMSGSIZE;
119670 }
119671
119672 -static struct rtnl_link_ops hsr_link_ops __read_mostly = {
119673 +static struct rtnl_link_ops hsr_link_ops = {
119674 .kind = "hsr",
119675 .maxtype = IFLA_HSR_MAX,
119676 .policy = hsr_policy,
119677 diff --git a/net/ieee802154/6lowpan/core.c b/net/ieee802154/6lowpan/core.c
119678 index f20a387..2058892 100644
119679 --- a/net/ieee802154/6lowpan/core.c
119680 +++ b/net/ieee802154/6lowpan/core.c
119681 @@ -191,7 +191,7 @@ static void lowpan_dellink(struct net_device *dev, struct list_head *head)
119682 dev_put(real_dev);
119683 }
119684
119685 -static struct rtnl_link_ops lowpan_link_ops __read_mostly = {
119686 +static struct rtnl_link_ops lowpan_link_ops = {
119687 .kind = "lowpan",
119688 .priv_size = sizeof(struct lowpan_dev_info),
119689 .setup = lowpan_setup,
119690 diff --git a/net/ieee802154/6lowpan/reassembly.c b/net/ieee802154/6lowpan/reassembly.c
119691 index 214d44a..dcb7f86 100644
119692 --- a/net/ieee802154/6lowpan/reassembly.c
119693 +++ b/net/ieee802154/6lowpan/reassembly.c
119694 @@ -435,14 +435,13 @@ static struct ctl_table lowpan_frags_ctl_table[] = {
119695
119696 static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
119697 {
119698 - struct ctl_table *table;
119699 + ctl_table_no_const *table = NULL;
119700 struct ctl_table_header *hdr;
119701 struct netns_ieee802154_lowpan *ieee802154_lowpan =
119702 net_ieee802154_lowpan(net);
119703
119704 - table = lowpan_frags_ns_ctl_table;
119705 if (!net_eq(net, &init_net)) {
119706 - table = kmemdup(table, sizeof(lowpan_frags_ns_ctl_table),
119707 + table = kmemdup(lowpan_frags_ns_ctl_table, sizeof(lowpan_frags_ns_ctl_table),
119708 GFP_KERNEL);
119709 if (table == NULL)
119710 goto err_alloc;
119711 @@ -457,9 +456,9 @@ static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
119712 /* Don't export sysctls to unprivileged users */
119713 if (net->user_ns != &init_user_ns)
119714 table[0].procname = NULL;
119715 - }
119716 -
119717 - hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", table);
119718 + hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", table);
119719 + } else
119720 + hdr = register_net_sysctl(net, "net/ieee802154/6lowpan", lowpan_frags_ns_ctl_table);
119721 if (hdr == NULL)
119722 goto err_reg;
119723
119724 @@ -467,8 +466,7 @@ static int __net_init lowpan_frags_ns_sysctl_register(struct net *net)
119725 return 0;
119726
119727 err_reg:
119728 - if (!net_eq(net, &init_net))
119729 - kfree(table);
119730 + kfree(table);
119731 err_alloc:
119732 return -ENOMEM;
119733 }
119734 diff --git a/net/ipv4/af_inet.c b/net/ipv4/af_inet.c
119735 index 9532ee8..020410a 100644
119736 --- a/net/ipv4/af_inet.c
119737 +++ b/net/ipv4/af_inet.c
119738 @@ -1392,7 +1392,7 @@ int inet_recv_error(struct sock *sk, struct msghdr *msg, int len, int *addr_len)
119739 return ip_recv_error(sk, msg, len, addr_len);
119740 #if IS_ENABLED(CONFIG_IPV6)
119741 if (sk->sk_family == AF_INET6)
119742 - return pingv6_ops.ipv6_recv_error(sk, msg, len, addr_len);
119743 + return pingv6_ops->ipv6_recv_error(sk, msg, len, addr_len);
119744 #endif
119745 return -EINVAL;
119746 }
119747 diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
119748 index 2d9cb17..20ae904 100644
119749 --- a/net/ipv4/devinet.c
119750 +++ b/net/ipv4/devinet.c
119751 @@ -69,7 +69,8 @@
119752
119753 static struct ipv4_devconf ipv4_devconf = {
119754 .data = {
119755 - [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 1,
119756 + [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 0,
119757 + [IPV4_DEVCONF_RP_FILTER - 1] = 1,
119758 [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1,
119759 [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1,
119760 [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1,
119761 @@ -80,7 +81,8 @@ static struct ipv4_devconf ipv4_devconf = {
119762
119763 static struct ipv4_devconf ipv4_devconf_dflt = {
119764 .data = {
119765 - [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 1,
119766 + [IPV4_DEVCONF_ACCEPT_REDIRECTS - 1] = 0,
119767 + [IPV4_DEVCONF_RP_FILTER - 1] = 1,
119768 [IPV4_DEVCONF_SEND_REDIRECTS - 1] = 1,
119769 [IPV4_DEVCONF_SECURE_REDIRECTS - 1] = 1,
119770 [IPV4_DEVCONF_SHARED_MEDIA - 1] = 1,
119771 @@ -1579,7 +1581,7 @@ static int inet_dump_ifaddr(struct sk_buff *skb, struct netlink_callback *cb)
119772 idx = 0;
119773 head = &net->dev_index_head[h];
119774 rcu_read_lock();
119775 - cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^
119776 + cb->seq = atomic_read_unchecked(&net->ipv4.dev_addr_genid) ^
119777 net->dev_base_seq;
119778 hlist_for_each_entry_rcu(dev, head, index_hlist) {
119779 if (idx < s_idx)
119780 @@ -1905,7 +1907,7 @@ static int inet_netconf_dump_devconf(struct sk_buff *skb,
119781 idx = 0;
119782 head = &net->dev_index_head[h];
119783 rcu_read_lock();
119784 - cb->seq = atomic_read(&net->ipv4.dev_addr_genid) ^
119785 + cb->seq = atomic_read_unchecked(&net->ipv4.dev_addr_genid) ^
119786 net->dev_base_seq;
119787 hlist_for_each_entry_rcu(dev, head, index_hlist) {
119788 if (idx < s_idx)
119789 @@ -2146,7 +2148,7 @@ static int ipv4_doint_and_flush(struct ctl_table *ctl, int write,
119790 #define DEVINET_SYSCTL_FLUSHING_ENTRY(attr, name) \
119791 DEVINET_SYSCTL_COMPLEX_ENTRY(attr, name, ipv4_doint_and_flush)
119792
119793 -static struct devinet_sysctl_table {
119794 +static const struct devinet_sysctl_table {
119795 struct ctl_table_header *sysctl_header;
119796 struct ctl_table devinet_vars[__IPV4_DEVCONF_MAX];
119797 } devinet_sysctl = {
119798 @@ -2280,7 +2282,7 @@ static __net_init int devinet_init_net(struct net *net)
119799 int err;
119800 struct ipv4_devconf *all, *dflt;
119801 #ifdef CONFIG_SYSCTL
119802 - struct ctl_table *tbl = ctl_forward_entry;
119803 + ctl_table_no_const *tbl = NULL;
119804 struct ctl_table_header *forw_hdr;
119805 #endif
119806
119807 @@ -2298,7 +2300,7 @@ static __net_init int devinet_init_net(struct net *net)
119808 goto err_alloc_dflt;
119809
119810 #ifdef CONFIG_SYSCTL
119811 - tbl = kmemdup(tbl, sizeof(ctl_forward_entry), GFP_KERNEL);
119812 + tbl = kmemdup(ctl_forward_entry, sizeof(ctl_forward_entry), GFP_KERNEL);
119813 if (!tbl)
119814 goto err_alloc_ctl;
119815
119816 @@ -2318,7 +2320,10 @@ static __net_init int devinet_init_net(struct net *net)
119817 goto err_reg_dflt;
119818
119819 err = -ENOMEM;
119820 - forw_hdr = register_net_sysctl(net, "net/ipv4", tbl);
119821 + if (!net_eq(net, &init_net))
119822 + forw_hdr = register_net_sysctl(net, "net/ipv4", tbl);
119823 + else
119824 + forw_hdr = register_net_sysctl(net, "net/ipv4", ctl_forward_entry);
119825 if (!forw_hdr)
119826 goto err_reg_ctl;
119827 net->ipv4.forw_hdr = forw_hdr;
119828 @@ -2334,8 +2339,7 @@ err_reg_ctl:
119829 err_reg_dflt:
119830 __devinet_sysctl_unregister(all);
119831 err_reg_all:
119832 - if (tbl != ctl_forward_entry)
119833 - kfree(tbl);
119834 + kfree(tbl);
119835 err_alloc_ctl:
119836 #endif
119837 if (dflt != &ipv4_devconf_dflt)
119838 diff --git a/net/ipv4/fib_frontend.c b/net/ipv4/fib_frontend.c
119839 index 6bbc549..28d74951 100644
119840 --- a/net/ipv4/fib_frontend.c
119841 +++ b/net/ipv4/fib_frontend.c
119842 @@ -1083,12 +1083,12 @@ static int fib_inetaddr_event(struct notifier_block *this, unsigned long event,
119843 #ifdef CONFIG_IP_ROUTE_MULTIPATH
119844 fib_sync_up(dev, RTNH_F_DEAD);
119845 #endif
119846 - atomic_inc(&net->ipv4.dev_addr_genid);
119847 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
119848 rt_cache_flush(dev_net(dev));
119849 break;
119850 case NETDEV_DOWN:
119851 fib_del_ifaddr(ifa, NULL);
119852 - atomic_inc(&net->ipv4.dev_addr_genid);
119853 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
119854 if (!ifa->ifa_dev->ifa_list) {
119855 /* Last address was deleted from this interface.
119856 * Disable IP.
119857 @@ -1127,7 +1127,7 @@ static int fib_netdev_event(struct notifier_block *this, unsigned long event, vo
119858 #ifdef CONFIG_IP_ROUTE_MULTIPATH
119859 fib_sync_up(dev, RTNH_F_DEAD);
119860 #endif
119861 - atomic_inc(&net->ipv4.dev_addr_genid);
119862 + atomic_inc_unchecked(&net->ipv4.dev_addr_genid);
119863 rt_cache_flush(net);
119864 break;
119865 case NETDEV_DOWN:
119866 diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
119867 index 3a06586..1020c5b 100644
119868 --- a/net/ipv4/fib_semantics.c
119869 +++ b/net/ipv4/fib_semantics.c
119870 @@ -755,7 +755,7 @@ __be32 fib_info_update_nh_saddr(struct net *net, struct fib_nh *nh)
119871 nh->nh_saddr = inet_select_addr(nh->nh_dev,
119872 nh->nh_gw,
119873 nh->nh_parent->fib_scope);
119874 - nh->nh_saddr_genid = atomic_read(&net->ipv4.dev_addr_genid);
119875 + nh->nh_saddr_genid = atomic_read_unchecked(&net->ipv4.dev_addr_genid);
119876
119877 return nh->nh_saddr;
119878 }
119879 diff --git a/net/ipv4/inet_connection_sock.c b/net/ipv4/inet_connection_sock.c
119880 index 61b45a1..2970363 100644
119881 --- a/net/ipv4/inet_connection_sock.c
119882 +++ b/net/ipv4/inet_connection_sock.c
119883 @@ -729,8 +729,8 @@ struct sock *inet_csk_clone_lock(const struct sock *sk,
119884 newsk->sk_write_space = sk_stream_write_space;
119885
119886 newsk->sk_mark = inet_rsk(req)->ir_mark;
119887 - atomic64_set(&newsk->sk_cookie,
119888 - atomic64_read(&inet_rsk(req)->ir_cookie));
119889 + atomic64_set_unchecked(&newsk->sk_cookie,
119890 + atomic64_read_unchecked(&inet_rsk(req)->ir_cookie));
119891
119892 newicsk->icsk_retransmits = 0;
119893 newicsk->icsk_backoff = 0;
119894 diff --git a/net/ipv4/inet_hashtables.c b/net/ipv4/inet_hashtables.c
119895 index 0cb9165..8589720 100644
119896 --- a/net/ipv4/inet_hashtables.c
119897 +++ b/net/ipv4/inet_hashtables.c
119898 @@ -19,6 +19,7 @@
119899 #include <linux/slab.h>
119900 #include <linux/wait.h>
119901 #include <linux/vmalloc.h>
119902 +#include <linux/security.h>
119903
119904 #include <net/inet_connection_sock.h>
119905 #include <net/inet_hashtables.h>
119906 @@ -54,6 +55,8 @@ u32 sk_ehashfn(const struct sock *sk)
119907 sk->sk_daddr, sk->sk_dport);
119908 }
119909
119910 +extern void gr_update_task_in_ip_table(const struct inet_sock *inet);
119911 +
119912 /*
119913 * Allocate and initialize a new local port bind bucket.
119914 * The bindhash mutex for snum's hash chain must be held here.
119915 @@ -566,6 +569,8 @@ ok:
119916 twrefcnt += inet_twsk_bind_unhash(tw, hinfo);
119917 spin_unlock(&head->lock);
119918
119919 + gr_update_task_in_ip_table(inet_sk(sk));
119920 +
119921 if (tw) {
119922 inet_twsk_deschedule(tw);
119923 while (twrefcnt) {
119924 diff --git a/net/ipv4/inet_timewait_sock.c b/net/ipv4/inet_timewait_sock.c
119925 index 2ffbd16..6e94995 100644
119926 --- a/net/ipv4/inet_timewait_sock.c
119927 +++ b/net/ipv4/inet_timewait_sock.c
119928 @@ -214,7 +214,7 @@ struct inet_timewait_sock *inet_twsk_alloc(const struct sock *sk,
119929 tw->tw_ipv6only = 0;
119930 tw->tw_transparent = inet->transparent;
119931 tw->tw_prot = sk->sk_prot_creator;
119932 - atomic64_set(&tw->tw_cookie, atomic64_read(&sk->sk_cookie));
119933 + atomic64_set_unchecked(&tw->tw_cookie, atomic64_read_unchecked(&sk->sk_cookie));
119934 twsk_net_set(tw, sock_net(sk));
119935 setup_timer(&tw->tw_timer, tw_timer_handler, (unsigned long)tw);
119936 /*
119937 diff --git a/net/ipv4/inetpeer.c b/net/ipv4/inetpeer.c
119938 index 241afd7..31b95d5 100644
119939 --- a/net/ipv4/inetpeer.c
119940 +++ b/net/ipv4/inetpeer.c
119941 @@ -461,7 +461,7 @@ relookup:
119942 if (p) {
119943 p->daddr = *daddr;
119944 atomic_set(&p->refcnt, 1);
119945 - atomic_set(&p->rid, 0);
119946 + atomic_set_unchecked(&p->rid, 0);
119947 p->metrics[RTAX_LOCK-1] = INETPEER_METRICS_NEW;
119948 p->rate_tokens = 0;
119949 /* 60*HZ is arbitrary, but chosen enough high so that the first
119950 diff --git a/net/ipv4/ip_fragment.c b/net/ipv4/ip_fragment.c
119951 index 921138f..1e011ff 100644
119952 --- a/net/ipv4/ip_fragment.c
119953 +++ b/net/ipv4/ip_fragment.c
119954 @@ -276,7 +276,7 @@ static int ip_frag_too_far(struct ipq *qp)
119955 return 0;
119956
119957 start = qp->rid;
119958 - end = atomic_inc_return(&peer->rid);
119959 + end = atomic_inc_return_unchecked(&peer->rid);
119960 qp->rid = end;
119961
119962 rc = qp->q.fragments && (end - start) > max;
119963 @@ -780,12 +780,11 @@ static struct ctl_table ip4_frags_ctl_table[] = {
119964
119965 static int __net_init ip4_frags_ns_ctl_register(struct net *net)
119966 {
119967 - struct ctl_table *table;
119968 + ctl_table_no_const *table = NULL;
119969 struct ctl_table_header *hdr;
119970
119971 - table = ip4_frags_ns_ctl_table;
119972 if (!net_eq(net, &init_net)) {
119973 - table = kmemdup(table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL);
119974 + table = kmemdup(ip4_frags_ns_ctl_table, sizeof(ip4_frags_ns_ctl_table), GFP_KERNEL);
119975 if (!table)
119976 goto err_alloc;
119977
119978 @@ -799,9 +798,10 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
119979 /* Don't export sysctls to unprivileged users */
119980 if (net->user_ns != &init_user_ns)
119981 table[0].procname = NULL;
119982 - }
119983 + hdr = register_net_sysctl(net, "net/ipv4", table);
119984 + } else
119985 + hdr = register_net_sysctl(net, "net/ipv4", ip4_frags_ns_ctl_table);
119986
119987 - hdr = register_net_sysctl(net, "net/ipv4", table);
119988 if (!hdr)
119989 goto err_reg;
119990
119991 @@ -809,8 +809,7 @@ static int __net_init ip4_frags_ns_ctl_register(struct net *net)
119992 return 0;
119993
119994 err_reg:
119995 - if (!net_eq(net, &init_net))
119996 - kfree(table);
119997 + kfree(table);
119998 err_alloc:
119999 return -ENOMEM;
120000 }
120001 diff --git a/net/ipv4/ip_gre.c b/net/ipv4/ip_gre.c
120002 index 5fd7064..d13d75f 100644
120003 --- a/net/ipv4/ip_gre.c
120004 +++ b/net/ipv4/ip_gre.c
120005 @@ -115,7 +115,7 @@ static bool log_ecn_error = true;
120006 module_param(log_ecn_error, bool, 0644);
120007 MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
120008
120009 -static struct rtnl_link_ops ipgre_link_ops __read_mostly;
120010 +static struct rtnl_link_ops ipgre_link_ops;
120011 static int ipgre_tunnel_init(struct net_device *dev);
120012
120013 static int ipgre_net_id __read_mostly;
120014 @@ -819,7 +819,7 @@ static const struct nla_policy ipgre_policy[IFLA_GRE_MAX + 1] = {
120015 [IFLA_GRE_ENCAP_DPORT] = { .type = NLA_U16 },
120016 };
120017
120018 -static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
120019 +static struct rtnl_link_ops ipgre_link_ops = {
120020 .kind = "gre",
120021 .maxtype = IFLA_GRE_MAX,
120022 .policy = ipgre_policy,
120023 @@ -834,7 +834,7 @@ static struct rtnl_link_ops ipgre_link_ops __read_mostly = {
120024 .get_link_net = ip_tunnel_get_link_net,
120025 };
120026
120027 -static struct rtnl_link_ops ipgre_tap_ops __read_mostly = {
120028 +static struct rtnl_link_ops ipgre_tap_ops = {
120029 .kind = "gretap",
120030 .maxtype = IFLA_GRE_MAX,
120031 .policy = ipgre_policy,
120032 diff --git a/net/ipv4/ip_input.c b/net/ipv4/ip_input.c
120033 index 2db4c87..4db9282 100644
120034 --- a/net/ipv4/ip_input.c
120035 +++ b/net/ipv4/ip_input.c
120036 @@ -147,6 +147,10 @@
120037 #include <linux/mroute.h>
120038 #include <linux/netlink.h>
120039
120040 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120041 +extern int grsec_enable_blackhole;
120042 +#endif
120043 +
120044 /*
120045 * Process Router Attention IP option (RFC 2113)
120046 */
120047 @@ -223,6 +227,9 @@ static int ip_local_deliver_finish(struct sock *sk, struct sk_buff *skb)
120048 if (!raw) {
120049 if (xfrm4_policy_check(NULL, XFRM_POLICY_IN, skb)) {
120050 IP_INC_STATS_BH(net, IPSTATS_MIB_INUNKNOWNPROTOS);
120051 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120052 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
120053 +#endif
120054 icmp_send(skb, ICMP_DEST_UNREACH,
120055 ICMP_PROT_UNREACH, 0);
120056 }
120057 diff --git a/net/ipv4/ip_sockglue.c b/net/ipv4/ip_sockglue.c
120058 index c3c359a..504edc6 100644
120059 --- a/net/ipv4/ip_sockglue.c
120060 +++ b/net/ipv4/ip_sockglue.c
120061 @@ -1295,7 +1295,8 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
120062 len = min_t(unsigned int, len, opt->optlen);
120063 if (put_user(len, optlen))
120064 return -EFAULT;
120065 - if (copy_to_user(optval, opt->__data, len))
120066 + if ((len > (sizeof(optbuf) - sizeof(struct ip_options))) ||
120067 + copy_to_user(optval, opt->__data, len))
120068 return -EFAULT;
120069 return 0;
120070 }
120071 @@ -1432,7 +1433,7 @@ static int do_ip_getsockopt(struct sock *sk, int level, int optname,
120072 if (sk->sk_type != SOCK_STREAM)
120073 return -ENOPROTOOPT;
120074
120075 - msg.msg_control = (__force void *) optval;
120076 + msg.msg_control = (__force_kernel void *) optval;
120077 msg.msg_controllen = len;
120078 msg.msg_flags = flags;
120079
120080 diff --git a/net/ipv4/ip_vti.c b/net/ipv4/ip_vti.c
120081 index 0c15208..a3a76c5 100644
120082 --- a/net/ipv4/ip_vti.c
120083 +++ b/net/ipv4/ip_vti.c
120084 @@ -45,7 +45,7 @@
120085 #include <net/net_namespace.h>
120086 #include <net/netns/generic.h>
120087
120088 -static struct rtnl_link_ops vti_link_ops __read_mostly;
120089 +static struct rtnl_link_ops vti_link_ops;
120090
120091 static int vti_net_id __read_mostly;
120092 static int vti_tunnel_init(struct net_device *dev);
120093 @@ -525,7 +525,7 @@ static const struct nla_policy vti_policy[IFLA_VTI_MAX + 1] = {
120094 [IFLA_VTI_REMOTE] = { .len = FIELD_SIZEOF(struct iphdr, daddr) },
120095 };
120096
120097 -static struct rtnl_link_ops vti_link_ops __read_mostly = {
120098 +static struct rtnl_link_ops vti_link_ops = {
120099 .kind = "vti",
120100 .maxtype = IFLA_VTI_MAX,
120101 .policy = vti_policy,
120102 diff --git a/net/ipv4/ipconfig.c b/net/ipv4/ipconfig.c
120103 index 8e7328c..9bd7ed3 100644
120104 --- a/net/ipv4/ipconfig.c
120105 +++ b/net/ipv4/ipconfig.c
120106 @@ -333,7 +333,7 @@ static int __init ic_devinet_ioctl(unsigned int cmd, struct ifreq *arg)
120107
120108 mm_segment_t oldfs = get_fs();
120109 set_fs(get_ds());
120110 - res = devinet_ioctl(&init_net, cmd, (struct ifreq __user *) arg);
120111 + res = devinet_ioctl(&init_net, cmd, (struct ifreq __force_user *) arg);
120112 set_fs(oldfs);
120113 return res;
120114 }
120115 @@ -344,7 +344,7 @@ static int __init ic_dev_ioctl(unsigned int cmd, struct ifreq *arg)
120116
120117 mm_segment_t oldfs = get_fs();
120118 set_fs(get_ds());
120119 - res = dev_ioctl(&init_net, cmd, (struct ifreq __user *) arg);
120120 + res = dev_ioctl(&init_net, cmd, (struct ifreq __force_user *) arg);
120121 set_fs(oldfs);
120122 return res;
120123 }
120124 @@ -355,7 +355,7 @@ static int __init ic_route_ioctl(unsigned int cmd, struct rtentry *arg)
120125
120126 mm_segment_t oldfs = get_fs();
120127 set_fs(get_ds());
120128 - res = ip_rt_ioctl(&init_net, cmd, (void __user *) arg);
120129 + res = ip_rt_ioctl(&init_net, cmd, (void __force_user *) arg);
120130 set_fs(oldfs);
120131 return res;
120132 }
120133 diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
120134 index 254238d..82c19a2 100644
120135 --- a/net/ipv4/ipip.c
120136 +++ b/net/ipv4/ipip.c
120137 @@ -124,7 +124,7 @@ MODULE_PARM_DESC(log_ecn_error, "Log packets received with corrupted ECN");
120138 static int ipip_net_id __read_mostly;
120139
120140 static int ipip_tunnel_init(struct net_device *dev);
120141 -static struct rtnl_link_ops ipip_link_ops __read_mostly;
120142 +static struct rtnl_link_ops ipip_link_ops;
120143
120144 static int ipip_err(struct sk_buff *skb, u32 info)
120145 {
120146 @@ -488,7 +488,7 @@ static const struct nla_policy ipip_policy[IFLA_IPTUN_MAX + 1] = {
120147 [IFLA_IPTUN_ENCAP_DPORT] = { .type = NLA_U16 },
120148 };
120149
120150 -static struct rtnl_link_ops ipip_link_ops __read_mostly = {
120151 +static struct rtnl_link_ops ipip_link_ops = {
120152 .kind = "ipip",
120153 .maxtype = IFLA_IPTUN_MAX,
120154 .policy = ipip_policy,
120155 diff --git a/net/ipv4/netfilter/arp_tables.c b/net/ipv4/netfilter/arp_tables.c
120156 index 92305a1..0a5b349 100644
120157 --- a/net/ipv4/netfilter/arp_tables.c
120158 +++ b/net/ipv4/netfilter/arp_tables.c
120159 @@ -896,14 +896,14 @@ static int compat_table_info(const struct xt_table_info *info,
120160 #endif
120161
120162 static int get_info(struct net *net, void __user *user,
120163 - const int *len, int compat)
120164 + int len, int compat)
120165 {
120166 char name[XT_TABLE_MAXNAMELEN];
120167 struct xt_table *t;
120168 int ret;
120169
120170 - if (*len != sizeof(struct arpt_getinfo)) {
120171 - duprintf("length %u != %Zu\n", *len,
120172 + if (len != sizeof(struct arpt_getinfo)) {
120173 + duprintf("length %u != %Zu\n", len,
120174 sizeof(struct arpt_getinfo));
120175 return -EINVAL;
120176 }
120177 @@ -940,7 +940,7 @@ static int get_info(struct net *net, void __user *user,
120178 info.size = private->size;
120179 strcpy(info.name, name);
120180
120181 - if (copy_to_user(user, &info, *len) != 0)
120182 + if (copy_to_user(user, &info, len) != 0)
120183 ret = -EFAULT;
120184 else
120185 ret = 0;
120186 @@ -1705,7 +1705,7 @@ static int compat_do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user,
120187
120188 switch (cmd) {
120189 case ARPT_SO_GET_INFO:
120190 - ret = get_info(sock_net(sk), user, len, 1);
120191 + ret = get_info(sock_net(sk), user, *len, 1);
120192 break;
120193 case ARPT_SO_GET_ENTRIES:
120194 ret = compat_get_entries(sock_net(sk), user, len);
120195 @@ -1750,7 +1750,7 @@ static int do_arpt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len
120196
120197 switch (cmd) {
120198 case ARPT_SO_GET_INFO:
120199 - ret = get_info(sock_net(sk), user, len, 0);
120200 + ret = get_info(sock_net(sk), user, *len, 0);
120201 break;
120202
120203 case ARPT_SO_GET_ENTRIES:
120204 diff --git a/net/ipv4/netfilter/ip_tables.c b/net/ipv4/netfilter/ip_tables.c
120205 index 6c72fbb..ce47b05 100644
120206 --- a/net/ipv4/netfilter/ip_tables.c
120207 +++ b/net/ipv4/netfilter/ip_tables.c
120208 @@ -1073,14 +1073,14 @@ static int compat_table_info(const struct xt_table_info *info,
120209 #endif
120210
120211 static int get_info(struct net *net, void __user *user,
120212 - const int *len, int compat)
120213 + int len, int compat)
120214 {
120215 char name[XT_TABLE_MAXNAMELEN];
120216 struct xt_table *t;
120217 int ret;
120218
120219 - if (*len != sizeof(struct ipt_getinfo)) {
120220 - duprintf("length %u != %zu\n", *len,
120221 + if (len != sizeof(struct ipt_getinfo)) {
120222 + duprintf("length %u != %zu\n", len,
120223 sizeof(struct ipt_getinfo));
120224 return -EINVAL;
120225 }
120226 @@ -1117,7 +1117,7 @@ static int get_info(struct net *net, void __user *user,
120227 info.size = private->size;
120228 strcpy(info.name, name);
120229
120230 - if (copy_to_user(user, &info, *len) != 0)
120231 + if (copy_to_user(user, &info, len) != 0)
120232 ret = -EFAULT;
120233 else
120234 ret = 0;
120235 @@ -1968,7 +1968,7 @@ compat_do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
120236
120237 switch (cmd) {
120238 case IPT_SO_GET_INFO:
120239 - ret = get_info(sock_net(sk), user, len, 1);
120240 + ret = get_info(sock_net(sk), user, *len, 1);
120241 break;
120242 case IPT_SO_GET_ENTRIES:
120243 ret = compat_get_entries(sock_net(sk), user, len);
120244 @@ -2015,7 +2015,7 @@ do_ipt_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
120245
120246 switch (cmd) {
120247 case IPT_SO_GET_INFO:
120248 - ret = get_info(sock_net(sk), user, len, 0);
120249 + ret = get_info(sock_net(sk), user, *len, 0);
120250 break;
120251
120252 case IPT_SO_GET_ENTRIES:
120253 diff --git a/net/ipv4/netfilter/ipt_CLUSTERIP.c b/net/ipv4/netfilter/ipt_CLUSTERIP.c
120254 index 45cb16a..cef4ecd 100644
120255 --- a/net/ipv4/netfilter/ipt_CLUSTERIP.c
120256 +++ b/net/ipv4/netfilter/ipt_CLUSTERIP.c
120257 @@ -730,7 +730,7 @@ static int clusterip_net_init(struct net *net)
120258 spin_lock_init(&cn->lock);
120259
120260 #ifdef CONFIG_PROC_FS
120261 - cn->procdir = proc_mkdir("ipt_CLUSTERIP", net->proc_net);
120262 + cn->procdir = proc_mkdir_restrict("ipt_CLUSTERIP", net->proc_net);
120263 if (!cn->procdir) {
120264 pr_err("Unable to proc dir entry\n");
120265 return -ENOMEM;
120266 diff --git a/net/ipv4/netfilter/nf_nat_pptp.c b/net/ipv4/netfilter/nf_nat_pptp.c
120267 index 657d230..b3ca21b 100644
120268 --- a/net/ipv4/netfilter/nf_nat_pptp.c
120269 +++ b/net/ipv4/netfilter/nf_nat_pptp.c
120270 @@ -45,7 +45,7 @@ static void pptp_nat_expected(struct nf_conn *ct,
120271 struct net *net = nf_ct_net(ct);
120272 const struct nf_conn *master = ct->master;
120273 struct nf_conntrack_expect *other_exp;
120274 - struct nf_conntrack_tuple t;
120275 + struct nf_conntrack_tuple t = {};
120276 const struct nf_ct_pptp_master *ct_pptp_info;
120277 const struct nf_nat_pptp *nat_pptp_info;
120278 struct nf_nat_range range;
120279 diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c
120280 index 05ff44b..da00000 100644
120281 --- a/net/ipv4/ping.c
120282 +++ b/net/ipv4/ping.c
120283 @@ -59,7 +59,7 @@ struct ping_table {
120284 };
120285
120286 static struct ping_table ping_table;
120287 -struct pingv6_ops pingv6_ops;
120288 +struct pingv6_ops *pingv6_ops;
120289 EXPORT_SYMBOL_GPL(pingv6_ops);
120290
120291 static u16 ping_port_rover;
120292 @@ -359,7 +359,7 @@ static int ping_check_bind_addr(struct sock *sk, struct inet_sock *isk,
120293 return -ENODEV;
120294 }
120295 }
120296 - has_addr = pingv6_ops.ipv6_chk_addr(net, &addr->sin6_addr, dev,
120297 + has_addr = pingv6_ops->ipv6_chk_addr(net, &addr->sin6_addr, dev,
120298 scoped);
120299 rcu_read_unlock();
120300
120301 @@ -567,7 +567,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
120302 }
120303 #if IS_ENABLED(CONFIG_IPV6)
120304 } else if (skb->protocol == htons(ETH_P_IPV6)) {
120305 - harderr = pingv6_ops.icmpv6_err_convert(type, code, &err);
120306 + harderr = pingv6_ops->icmpv6_err_convert(type, code, &err);
120307 #endif
120308 }
120309
120310 @@ -585,7 +585,7 @@ void ping_err(struct sk_buff *skb, int offset, u32 info)
120311 info, (u8 *)icmph);
120312 #if IS_ENABLED(CONFIG_IPV6)
120313 } else if (family == AF_INET6) {
120314 - pingv6_ops.ipv6_icmp_error(sk, skb, err, 0,
120315 + pingv6_ops->ipv6_icmp_error(sk, skb, err, 0,
120316 info, (u8 *)icmph);
120317 #endif
120318 }
120319 @@ -918,10 +918,10 @@ int ping_recvmsg(struct sock *sk, struct msghdr *msg, size_t len, int noblock,
120320 }
120321
120322 if (inet6_sk(sk)->rxopt.all)
120323 - pingv6_ops.ip6_datagram_recv_common_ctl(sk, msg, skb);
120324 + pingv6_ops->ip6_datagram_recv_common_ctl(sk, msg, skb);
120325 if (skb->protocol == htons(ETH_P_IPV6) &&
120326 inet6_sk(sk)->rxopt.all)
120327 - pingv6_ops.ip6_datagram_recv_specific_ctl(sk, msg, skb);
120328 + pingv6_ops->ip6_datagram_recv_specific_ctl(sk, msg, skb);
120329 else if (skb->protocol == htons(ETH_P_IP) && isk->cmsg_flags)
120330 ip_cmsg_recv(msg, skb);
120331 #endif
120332 @@ -1116,7 +1116,7 @@ static void ping_v4_format_sock(struct sock *sp, struct seq_file *f,
120333 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
120334 0, sock_i_ino(sp),
120335 atomic_read(&sp->sk_refcnt), sp,
120336 - atomic_read(&sp->sk_drops));
120337 + atomic_read_unchecked(&sp->sk_drops));
120338 }
120339
120340 static int ping_v4_seq_show(struct seq_file *seq, void *v)
120341 diff --git a/net/ipv4/raw.c b/net/ipv4/raw.c
120342 index 561cd4b..a32a155 100644
120343 --- a/net/ipv4/raw.c
120344 +++ b/net/ipv4/raw.c
120345 @@ -323,7 +323,7 @@ static int raw_rcv_skb(struct sock *sk, struct sk_buff *skb)
120346 int raw_rcv(struct sock *sk, struct sk_buff *skb)
120347 {
120348 if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb)) {
120349 - atomic_inc(&sk->sk_drops);
120350 + atomic_inc_unchecked(&sk->sk_drops);
120351 kfree_skb(skb);
120352 return NET_RX_DROP;
120353 }
120354 @@ -771,16 +771,20 @@ static int raw_init(struct sock *sk)
120355
120356 static int raw_seticmpfilter(struct sock *sk, char __user *optval, int optlen)
120357 {
120358 + struct icmp_filter filter;
120359 +
120360 if (optlen > sizeof(struct icmp_filter))
120361 optlen = sizeof(struct icmp_filter);
120362 - if (copy_from_user(&raw_sk(sk)->filter, optval, optlen))
120363 + if (copy_from_user(&filter, optval, optlen))
120364 return -EFAULT;
120365 + raw_sk(sk)->filter = filter;
120366 return 0;
120367 }
120368
120369 static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *optlen)
120370 {
120371 int len, ret = -EFAULT;
120372 + struct icmp_filter filter;
120373
120374 if (get_user(len, optlen))
120375 goto out;
120376 @@ -790,8 +794,8 @@ static int raw_geticmpfilter(struct sock *sk, char __user *optval, int __user *o
120377 if (len > sizeof(struct icmp_filter))
120378 len = sizeof(struct icmp_filter);
120379 ret = -EFAULT;
120380 - if (put_user(len, optlen) ||
120381 - copy_to_user(optval, &raw_sk(sk)->filter, len))
120382 + filter = raw_sk(sk)->filter;
120383 + if (put_user(len, optlen) || len > sizeof filter || copy_to_user(optval, &filter, len))
120384 goto out;
120385 ret = 0;
120386 out: return ret;
120387 @@ -1020,7 +1024,7 @@ static void raw_sock_seq_show(struct seq_file *seq, struct sock *sp, int i)
120388 0, 0L, 0,
120389 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sp)),
120390 0, sock_i_ino(sp),
120391 - atomic_read(&sp->sk_refcnt), sp, atomic_read(&sp->sk_drops));
120392 + atomic_read(&sp->sk_refcnt), sp, atomic_read_unchecked(&sp->sk_drops));
120393 }
120394
120395 static int raw_seq_show(struct seq_file *seq, void *v)
120396 diff --git a/net/ipv4/route.c b/net/ipv4/route.c
120397 index e681b85..8a43a65 100644
120398 --- a/net/ipv4/route.c
120399 +++ b/net/ipv4/route.c
120400 @@ -227,7 +227,7 @@ static const struct seq_operations rt_cache_seq_ops = {
120401
120402 static int rt_cache_seq_open(struct inode *inode, struct file *file)
120403 {
120404 - return seq_open(file, &rt_cache_seq_ops);
120405 + return seq_open_restrict(file, &rt_cache_seq_ops);
120406 }
120407
120408 static const struct file_operations rt_cache_seq_fops = {
120409 @@ -318,7 +318,7 @@ static const struct seq_operations rt_cpu_seq_ops = {
120410
120411 static int rt_cpu_seq_open(struct inode *inode, struct file *file)
120412 {
120413 - return seq_open(file, &rt_cpu_seq_ops);
120414 + return seq_open_restrict(file, &rt_cpu_seq_ops);
120415 }
120416
120417 static const struct file_operations rt_cpu_seq_fops = {
120418 @@ -356,7 +356,7 @@ static int rt_acct_proc_show(struct seq_file *m, void *v)
120419
120420 static int rt_acct_proc_open(struct inode *inode, struct file *file)
120421 {
120422 - return single_open(file, rt_acct_proc_show, NULL);
120423 + return single_open_restrict(file, rt_acct_proc_show, NULL);
120424 }
120425
120426 static const struct file_operations rt_acct_proc_fops = {
120427 @@ -458,7 +458,7 @@ static struct neighbour *ipv4_neigh_lookup(const struct dst_entry *dst,
120428
120429 #define IP_IDENTS_SZ 2048u
120430
120431 -static atomic_t *ip_idents __read_mostly;
120432 +static atomic_unchecked_t ip_idents[IP_IDENTS_SZ] __read_mostly;
120433 static u32 *ip_tstamps __read_mostly;
120434
120435 /* In order to protect privacy, we add a perturbation to identifiers
120436 @@ -468,7 +468,7 @@ static u32 *ip_tstamps __read_mostly;
120437 u32 ip_idents_reserve(u32 hash, int segs)
120438 {
120439 u32 *p_tstamp = ip_tstamps + hash % IP_IDENTS_SZ;
120440 - atomic_t *p_id = ip_idents + hash % IP_IDENTS_SZ;
120441 + atomic_unchecked_t *p_id = ip_idents + hash % IP_IDENTS_SZ;
120442 u32 old = ACCESS_ONCE(*p_tstamp);
120443 u32 now = (u32)jiffies;
120444 u32 delta = 0;
120445 @@ -476,7 +476,7 @@ u32 ip_idents_reserve(u32 hash, int segs)
120446 if (old != now && cmpxchg(p_tstamp, old, now) == old)
120447 delta = prandom_u32_max(now - old);
120448
120449 - return atomic_add_return(segs + delta, p_id) - segs;
120450 + return atomic_add_return_unchecked(segs + delta, p_id) - segs;
120451 }
120452 EXPORT_SYMBOL(ip_idents_reserve);
120453
120454 @@ -2640,34 +2640,34 @@ static struct ctl_table ipv4_route_flush_table[] = {
120455 .maxlen = sizeof(int),
120456 .mode = 0200,
120457 .proc_handler = ipv4_sysctl_rtcache_flush,
120458 + .extra1 = &init_net,
120459 },
120460 { },
120461 };
120462
120463 static __net_init int sysctl_route_net_init(struct net *net)
120464 {
120465 - struct ctl_table *tbl;
120466 + ctl_table_no_const *tbl = NULL;
120467
120468 - tbl = ipv4_route_flush_table;
120469 if (!net_eq(net, &init_net)) {
120470 - tbl = kmemdup(tbl, sizeof(ipv4_route_flush_table), GFP_KERNEL);
120471 + tbl = kmemdup(ipv4_route_flush_table, sizeof(ipv4_route_flush_table), GFP_KERNEL);
120472 if (!tbl)
120473 goto err_dup;
120474
120475 /* Don't export sysctls to unprivileged users */
120476 if (net->user_ns != &init_user_ns)
120477 tbl[0].procname = NULL;
120478 - }
120479 - tbl[0].extra1 = net;
120480 + tbl[0].extra1 = net;
120481 + net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", tbl);
120482 + } else
120483 + net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", ipv4_route_flush_table);
120484
120485 - net->ipv4.route_hdr = register_net_sysctl(net, "net/ipv4/route", tbl);
120486 if (!net->ipv4.route_hdr)
120487 goto err_reg;
120488 return 0;
120489
120490 err_reg:
120491 - if (tbl != ipv4_route_flush_table)
120492 - kfree(tbl);
120493 + kfree(tbl);
120494 err_dup:
120495 return -ENOMEM;
120496 }
120497 @@ -2690,8 +2690,8 @@ static __net_initdata struct pernet_operations sysctl_route_ops = {
120498
120499 static __net_init int rt_genid_init(struct net *net)
120500 {
120501 - atomic_set(&net->ipv4.rt_genid, 0);
120502 - atomic_set(&net->fnhe_genid, 0);
120503 + atomic_set_unchecked(&net->ipv4.rt_genid, 0);
120504 + atomic_set_unchecked(&net->fnhe_genid, 0);
120505 get_random_bytes(&net->ipv4.dev_addr_genid,
120506 sizeof(net->ipv4.dev_addr_genid));
120507 return 0;
120508 @@ -2735,11 +2735,7 @@ int __init ip_rt_init(void)
120509 int rc = 0;
120510 int cpu;
120511
120512 - ip_idents = kmalloc(IP_IDENTS_SZ * sizeof(*ip_idents), GFP_KERNEL);
120513 - if (!ip_idents)
120514 - panic("IP: failed to allocate ip_idents\n");
120515 -
120516 - prandom_bytes(ip_idents, IP_IDENTS_SZ * sizeof(*ip_idents));
120517 + prandom_bytes(ip_idents, sizeof(ip_idents));
120518
120519 ip_tstamps = kcalloc(IP_IDENTS_SZ, sizeof(*ip_tstamps), GFP_KERNEL);
120520 if (!ip_tstamps)
120521 diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
120522 index 0330ab2..4745d2c 100644
120523 --- a/net/ipv4/sysctl_net_ipv4.c
120524 +++ b/net/ipv4/sysctl_net_ipv4.c
120525 @@ -66,7 +66,7 @@ static int ipv4_local_port_range(struct ctl_table *table, int write,
120526 container_of(table->data, struct net, ipv4.ip_local_ports.range);
120527 int ret;
120528 int range[2];
120529 - struct ctl_table tmp = {
120530 + ctl_table_no_const tmp = {
120531 .data = &range,
120532 .maxlen = sizeof(range),
120533 .mode = table->mode,
120534 @@ -124,7 +124,7 @@ static int ipv4_ping_group_range(struct ctl_table *table, int write,
120535 int ret;
120536 gid_t urange[2];
120537 kgid_t low, high;
120538 - struct ctl_table tmp = {
120539 + ctl_table_no_const tmp = {
120540 .data = &urange,
120541 .maxlen = sizeof(urange),
120542 .mode = table->mode,
120543 @@ -155,7 +155,7 @@ static int proc_tcp_congestion_control(struct ctl_table *ctl, int write,
120544 void __user *buffer, size_t *lenp, loff_t *ppos)
120545 {
120546 char val[TCP_CA_NAME_MAX];
120547 - struct ctl_table tbl = {
120548 + ctl_table_no_const tbl = {
120549 .data = val,
120550 .maxlen = TCP_CA_NAME_MAX,
120551 };
120552 @@ -174,7 +174,7 @@ static int proc_tcp_available_congestion_control(struct ctl_table *ctl,
120553 void __user *buffer, size_t *lenp,
120554 loff_t *ppos)
120555 {
120556 - struct ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX, };
120557 + ctl_table_no_const tbl = { .maxlen = TCP_CA_BUF_MAX, };
120558 int ret;
120559
120560 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
120561 @@ -191,7 +191,7 @@ static int proc_allowed_congestion_control(struct ctl_table *ctl,
120562 void __user *buffer, size_t *lenp,
120563 loff_t *ppos)
120564 {
120565 - struct ctl_table tbl = { .maxlen = TCP_CA_BUF_MAX };
120566 + ctl_table_no_const tbl = { .maxlen = TCP_CA_BUF_MAX };
120567 int ret;
120568
120569 tbl.data = kmalloc(tbl.maxlen, GFP_USER);
120570 @@ -210,7 +210,7 @@ static int proc_tcp_fastopen_key(struct ctl_table *ctl, int write,
120571 void __user *buffer, size_t *lenp,
120572 loff_t *ppos)
120573 {
120574 - struct ctl_table tbl = { .maxlen = (TCP_FASTOPEN_KEY_LENGTH * 2 + 10) };
120575 + ctl_table_no_const tbl = { .maxlen = (TCP_FASTOPEN_KEY_LENGTH * 2 + 10) };
120576 struct tcp_fastopen_context *ctxt;
120577 int ret;
120578 u32 user_key[4]; /* 16 bytes, matching TCP_FASTOPEN_KEY_LENGTH */
120579 @@ -915,13 +915,12 @@ static struct ctl_table ipv4_net_table[] = {
120580
120581 static __net_init int ipv4_sysctl_init_net(struct net *net)
120582 {
120583 - struct ctl_table *table;
120584 + ctl_table_no_const *table = NULL;
120585
120586 - table = ipv4_net_table;
120587 if (!net_eq(net, &init_net)) {
120588 int i;
120589
120590 - table = kmemdup(table, sizeof(ipv4_net_table), GFP_KERNEL);
120591 + table = kmemdup(ipv4_net_table, sizeof(ipv4_net_table), GFP_KERNEL);
120592 if (!table)
120593 goto err_alloc;
120594
120595 @@ -930,7 +929,10 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
120596 table[i].data += (void *)net - (void *)&init_net;
120597 }
120598
120599 - net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", table);
120600 + if (!net_eq(net, &init_net))
120601 + net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", table);
120602 + else
120603 + net->ipv4.ipv4_hdr = register_net_sysctl(net, "net/ipv4", ipv4_net_table);
120604 if (!net->ipv4.ipv4_hdr)
120605 goto err_reg;
120606
120607 diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
120608 index 728f5b3..dc51cbe 100644
120609 --- a/net/ipv4/tcp_input.c
120610 +++ b/net/ipv4/tcp_input.c
120611 @@ -767,7 +767,7 @@ static void tcp_update_pacing_rate(struct sock *sk)
120612 * without any lock. We want to make sure compiler wont store
120613 * intermediate values in this location.
120614 */
120615 - ACCESS_ONCE(sk->sk_pacing_rate) = min_t(u64, rate,
120616 + ACCESS_ONCE_RW(sk->sk_pacing_rate) = min_t(u64, rate,
120617 sk->sk_max_pacing_rate);
120618 }
120619
120620 @@ -4608,7 +4608,7 @@ static struct sk_buff *tcp_collapse_one(struct sock *sk, struct sk_buff *skb,
120621 * simplifies code)
120622 */
120623 static void
120624 -tcp_collapse(struct sock *sk, struct sk_buff_head *list,
120625 +__intentional_overflow(5,6) tcp_collapse(struct sock *sk, struct sk_buff_head *list,
120626 struct sk_buff *head, struct sk_buff *tail,
120627 u32 start, u32 end)
120628 {
120629 @@ -5603,6 +5603,7 @@ discard:
120630 tcp_paws_reject(&tp->rx_opt, 0))
120631 goto discard_and_undo;
120632
120633 +#ifndef CONFIG_GRKERNSEC_NO_SIMULT_CONNECT
120634 if (th->syn) {
120635 /* We see SYN without ACK. It is attempt of
120636 * simultaneous connect with crossed SYNs.
120637 @@ -5653,6 +5654,7 @@ discard:
120638 goto discard;
120639 #endif
120640 }
120641 +#endif
120642 /* "fifth, if neither of the SYN or RST bits is set then
120643 * drop the segment and return."
120644 */
120645 @@ -5699,7 +5701,7 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
120646 goto discard;
120647
120648 if (th->syn) {
120649 - if (th->fin)
120650 + if (th->fin || th->urg || th->psh)
120651 goto discard;
120652 if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
120653 return 1;
120654 @@ -6026,7 +6028,7 @@ struct request_sock *inet_reqsk_alloc(const struct request_sock_ops *ops,
120655
120656 kmemcheck_annotate_bitfield(ireq, flags);
120657 ireq->opt = NULL;
120658 - atomic64_set(&ireq->ir_cookie, 0);
120659 + atomic64_set_unchecked(&ireq->ir_cookie, 0);
120660 ireq->ireq_state = TCP_NEW_SYN_RECV;
120661 write_pnet(&ireq->ireq_net, sock_net(sk_listener));
120662 ireq->ireq_family = sk_listener->sk_family;
120663 diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
120664 index 0ea2e1c..a4d1c48 100644
120665 --- a/net/ipv4/tcp_ipv4.c
120666 +++ b/net/ipv4/tcp_ipv4.c
120667 @@ -89,6 +89,10 @@ int sysctl_tcp_tw_reuse __read_mostly;
120668 int sysctl_tcp_low_latency __read_mostly;
120669 EXPORT_SYMBOL(sysctl_tcp_low_latency);
120670
120671 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120672 +extern int grsec_enable_blackhole;
120673 +#endif
120674 +
120675 #ifdef CONFIG_TCP_MD5SIG
120676 static int tcp_v4_md5_hash_hdr(char *md5_hash, const struct tcp_md5sig_key *key,
120677 __be32 daddr, __be32 saddr, const struct tcphdr *th);
120678 @@ -1427,6 +1431,9 @@ int tcp_v4_do_rcv(struct sock *sk, struct sk_buff *skb)
120679 return 0;
120680
120681 reset:
120682 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120683 + if (!grsec_enable_blackhole)
120684 +#endif
120685 tcp_v4_send_reset(rsk, skb);
120686 discard:
120687 kfree_skb(skb);
120688 @@ -1591,12 +1598,19 @@ int tcp_v4_rcv(struct sk_buff *skb)
120689 TCP_SKB_CB(skb)->sacked = 0;
120690
120691 sk = __inet_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest);
120692 - if (!sk)
120693 + if (!sk) {
120694 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120695 + ret = 1;
120696 +#endif
120697 goto no_tcp_socket;
120698 -
120699 + }
120700 process:
120701 - if (sk->sk_state == TCP_TIME_WAIT)
120702 + if (sk->sk_state == TCP_TIME_WAIT) {
120703 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120704 + ret = 2;
120705 +#endif
120706 goto do_time_wait;
120707 + }
120708
120709 if (unlikely(iph->ttl < inet_sk(sk)->min_ttl)) {
120710 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
120711 @@ -1653,6 +1667,10 @@ csum_error:
120712 bad_packet:
120713 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
120714 } else {
120715 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120716 + if (!grsec_enable_blackhole || (ret == 1 &&
120717 + (skb->dev->flags & IFF_LOOPBACK)))
120718 +#endif
120719 tcp_v4_send_reset(NULL, skb);
120720 }
120721
120722 diff --git a/net/ipv4/tcp_minisocks.c b/net/ipv4/tcp_minisocks.c
120723 index 4bc00cb..d024adf 100644
120724 --- a/net/ipv4/tcp_minisocks.c
120725 +++ b/net/ipv4/tcp_minisocks.c
120726 @@ -27,6 +27,10 @@
120727 #include <net/inet_common.h>
120728 #include <net/xfrm.h>
120729
120730 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120731 +extern int grsec_enable_blackhole;
120732 +#endif
120733 +
120734 int sysctl_tcp_syncookies __read_mostly = 1;
120735 EXPORT_SYMBOL(sysctl_tcp_syncookies);
120736
120737 @@ -782,7 +786,10 @@ embryonic_reset:
120738 * avoid becoming vulnerable to outside attack aiming at
120739 * resetting legit local connections.
120740 */
120741 - req->rsk_ops->send_reset(sk, skb);
120742 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120743 + if (!grsec_enable_blackhole)
120744 +#endif
120745 + req->rsk_ops->send_reset(sk, skb);
120746 } else if (fastopen) { /* received a valid RST pkt */
120747 reqsk_fastopen_remove(sk, req, true);
120748 tcp_reset(sk);
120749 diff --git a/net/ipv4/tcp_probe.c b/net/ipv4/tcp_probe.c
120750 index ebf5ff5..4d1ff32 100644
120751 --- a/net/ipv4/tcp_probe.c
120752 +++ b/net/ipv4/tcp_probe.c
120753 @@ -236,7 +236,7 @@ static ssize_t tcpprobe_read(struct file *file, char __user *buf,
120754 if (cnt + width >= len)
120755 break;
120756
120757 - if (copy_to_user(buf + cnt, tbuf, width))
120758 + if (width > sizeof tbuf || copy_to_user(buf + cnt, tbuf, width))
120759 return -EFAULT;
120760 cnt += width;
120761 }
120762 diff --git a/net/ipv4/tcp_timer.c b/net/ipv4/tcp_timer.c
120763 index 5b752f5..9594bb2 100644
120764 --- a/net/ipv4/tcp_timer.c
120765 +++ b/net/ipv4/tcp_timer.c
120766 @@ -22,6 +22,10 @@
120767 #include <linux/gfp.h>
120768 #include <net/tcp.h>
120769
120770 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120771 +extern int grsec_lastack_retries;
120772 +#endif
120773 +
120774 int sysctl_tcp_syn_retries __read_mostly = TCP_SYN_RETRIES;
120775 int sysctl_tcp_synack_retries __read_mostly = TCP_SYNACK_RETRIES;
120776 int sysctl_tcp_keepalive_time __read_mostly = TCP_KEEPALIVE_TIME;
120777 @@ -195,6 +199,13 @@ static int tcp_write_timeout(struct sock *sk)
120778 }
120779 }
120780
120781 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120782 + if ((sk->sk_state == TCP_LAST_ACK) &&
120783 + (grsec_lastack_retries > 0) &&
120784 + (grsec_lastack_retries < retry_until))
120785 + retry_until = grsec_lastack_retries;
120786 +#endif
120787 +
120788 if (retransmits_timed_out(sk, retry_until,
120789 syn_set ? 0 : icsk->icsk_user_timeout, syn_set)) {
120790 /* Has it gone just too far? */
120791 diff --git a/net/ipv4/udp.c b/net/ipv4/udp.c
120792 index 1b8c5ba..e1f0542 100644
120793 --- a/net/ipv4/udp.c
120794 +++ b/net/ipv4/udp.c
120795 @@ -87,6 +87,7 @@
120796 #include <linux/types.h>
120797 #include <linux/fcntl.h>
120798 #include <linux/module.h>
120799 +#include <linux/security.h>
120800 #include <linux/socket.h>
120801 #include <linux/sockios.h>
120802 #include <linux/igmp.h>
120803 @@ -115,6 +116,10 @@
120804 #include <net/busy_poll.h>
120805 #include "udp_impl.h"
120806
120807 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120808 +extern int grsec_enable_blackhole;
120809 +#endif
120810 +
120811 struct udp_table udp_table __read_mostly;
120812 EXPORT_SYMBOL(udp_table);
120813
120814 @@ -608,6 +613,9 @@ static inline bool __udp_is_mcast_sock(struct net *net, struct sock *sk,
120815 return true;
120816 }
120817
120818 +extern int gr_search_udp_recvmsg(struct sock *sk, const struct sk_buff *skb);
120819 +extern int gr_search_udp_sendmsg(struct sock *sk, struct sockaddr_in *addr);
120820 +
120821 /*
120822 * This routine is called by the ICMP module when it gets some
120823 * sort of error condition. If err < 0 then the socket should
120824 @@ -944,9 +952,18 @@ int udp_sendmsg(struct sock *sk, struct msghdr *msg, size_t len)
120825 dport = usin->sin_port;
120826 if (dport == 0)
120827 return -EINVAL;
120828 +
120829 + err = gr_search_udp_sendmsg(sk, usin);
120830 + if (err)
120831 + return err;
120832 } else {
120833 if (sk->sk_state != TCP_ESTABLISHED)
120834 return -EDESTADDRREQ;
120835 +
120836 + err = gr_search_udp_sendmsg(sk, NULL);
120837 + if (err)
120838 + return err;
120839 +
120840 daddr = inet->inet_daddr;
120841 dport = inet->inet_dport;
120842 /* Open fast path for connected socket.
120843 @@ -1193,7 +1210,7 @@ static unsigned int first_packet_length(struct sock *sk)
120844 IS_UDPLITE(sk));
120845 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
120846 IS_UDPLITE(sk));
120847 - atomic_inc(&sk->sk_drops);
120848 + atomic_inc_unchecked(&sk->sk_drops);
120849 __skb_unlink(skb, rcvq);
120850 __skb_queue_tail(&list_kill, skb);
120851 }
120852 @@ -1273,6 +1290,10 @@ try_again:
120853 if (!skb)
120854 goto out;
120855
120856 + err = gr_search_udp_recvmsg(sk, skb);
120857 + if (err)
120858 + goto out_free;
120859 +
120860 ulen = skb->len - sizeof(struct udphdr);
120861 copied = len;
120862 if (copied > ulen)
120863 @@ -1305,7 +1326,7 @@ try_again:
120864 if (unlikely(err)) {
120865 trace_kfree_skb(skb, udp_recvmsg);
120866 if (!peeked) {
120867 - atomic_inc(&sk->sk_drops);
120868 + atomic_inc_unchecked(&sk->sk_drops);
120869 UDP_INC_STATS_USER(sock_net(sk),
120870 UDP_MIB_INERRORS, is_udplite);
120871 }
120872 @@ -1599,7 +1620,7 @@ csum_error:
120873 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
120874 drop:
120875 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
120876 - atomic_inc(&sk->sk_drops);
120877 + atomic_inc_unchecked(&sk->sk_drops);
120878 kfree_skb(skb);
120879 return -1;
120880 }
120881 @@ -1617,7 +1638,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
120882 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
120883
120884 if (!skb1) {
120885 - atomic_inc(&sk->sk_drops);
120886 + atomic_inc_unchecked(&sk->sk_drops);
120887 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
120888 IS_UDPLITE(sk));
120889 UDP_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
120890 @@ -1823,6 +1844,9 @@ int __udp4_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
120891 goto csum_error;
120892
120893 UDP_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
120894 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
120895 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
120896 +#endif
120897 icmp_send(skb, ICMP_DEST_UNREACH, ICMP_PORT_UNREACH, 0);
120898
120899 /*
120900 @@ -2427,7 +2451,7 @@ static void udp4_format_sock(struct sock *sp, struct seq_file *f,
120901 from_kuid_munged(seq_user_ns(f), sock_i_uid(sp)),
120902 0, sock_i_ino(sp),
120903 atomic_read(&sp->sk_refcnt), sp,
120904 - atomic_read(&sp->sk_drops));
120905 + atomic_read_unchecked(&sp->sk_drops));
120906 }
120907
120908 int udp4_seq_show(struct seq_file *seq, void *v)
120909 diff --git a/net/ipv4/xfrm4_policy.c b/net/ipv4/xfrm4_policy.c
120910 index bff6974..c63736c 100644
120911 --- a/net/ipv4/xfrm4_policy.c
120912 +++ b/net/ipv4/xfrm4_policy.c
120913 @@ -186,11 +186,11 @@ _decode_session4(struct sk_buff *skb, struct flowi *fl, int reverse)
120914 fl4->flowi4_tos = iph->tos;
120915 }
120916
120917 -static inline int xfrm4_garbage_collect(struct dst_ops *ops)
120918 +static int xfrm4_garbage_collect(struct dst_ops *ops)
120919 {
120920 struct net *net = container_of(ops, struct net, xfrm.xfrm4_dst_ops);
120921
120922 - xfrm4_policy_afinfo.garbage_collect(net);
120923 + xfrm_garbage_collect_deferred(net);
120924 return (dst_entries_get_slow(ops) > ops->gc_thresh * 2);
120925 }
120926
120927 @@ -268,19 +268,18 @@ static struct ctl_table xfrm4_policy_table[] = {
120928
120929 static int __net_init xfrm4_net_init(struct net *net)
120930 {
120931 - struct ctl_table *table;
120932 + ctl_table_no_const *table = NULL;
120933 struct ctl_table_header *hdr;
120934
120935 - table = xfrm4_policy_table;
120936 if (!net_eq(net, &init_net)) {
120937 - table = kmemdup(table, sizeof(xfrm4_policy_table), GFP_KERNEL);
120938 + table = kmemdup(xfrm4_policy_table, sizeof(xfrm4_policy_table), GFP_KERNEL);
120939 if (!table)
120940 goto err_alloc;
120941
120942 table[0].data = &net->xfrm.xfrm4_dst_ops.gc_thresh;
120943 - }
120944 -
120945 - hdr = register_net_sysctl(net, "net/ipv4", table);
120946 + hdr = register_net_sysctl(net, "net/ipv4", table);
120947 + } else
120948 + hdr = register_net_sysctl(net, "net/ipv4", xfrm4_policy_table);
120949 if (!hdr)
120950 goto err_reg;
120951
120952 @@ -288,8 +287,7 @@ static int __net_init xfrm4_net_init(struct net *net)
120953 return 0;
120954
120955 err_reg:
120956 - if (!net_eq(net, &init_net))
120957 - kfree(table);
120958 + kfree(table);
120959 err_alloc:
120960 return -ENOMEM;
120961 }
120962 diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
120963 index 21c2c81..373c1ba 100644
120964 --- a/net/ipv6/addrconf.c
120965 +++ b/net/ipv6/addrconf.c
120966 @@ -178,7 +178,7 @@ static struct ipv6_devconf ipv6_devconf __read_mostly = {
120967 .hop_limit = IPV6_DEFAULT_HOPLIMIT,
120968 .mtu6 = IPV6_MIN_MTU,
120969 .accept_ra = 1,
120970 - .accept_redirects = 1,
120971 + .accept_redirects = 0,
120972 .autoconf = 1,
120973 .force_mld_version = 0,
120974 .mldv1_unsolicited_report_interval = 10 * HZ,
120975 @@ -219,7 +219,7 @@ static struct ipv6_devconf ipv6_devconf_dflt __read_mostly = {
120976 .hop_limit = IPV6_DEFAULT_HOPLIMIT,
120977 .mtu6 = IPV6_MIN_MTU,
120978 .accept_ra = 1,
120979 - .accept_redirects = 1,
120980 + .accept_redirects = 0,
120981 .autoconf = 1,
120982 .force_mld_version = 0,
120983 .mldv1_unsolicited_report_interval = 10 * HZ,
120984 @@ -620,7 +620,7 @@ static int inet6_netconf_dump_devconf(struct sk_buff *skb,
120985 idx = 0;
120986 head = &net->dev_index_head[h];
120987 rcu_read_lock();
120988 - cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^
120989 + cb->seq = atomic_read_unchecked(&net->ipv6.dev_addr_genid) ^
120990 net->dev_base_seq;
120991 hlist_for_each_entry_rcu(dev, head, index_hlist) {
120992 if (idx < s_idx)
120993 @@ -2508,7 +2508,7 @@ int addrconf_set_dstaddr(struct net *net, void __user *arg)
120994 p.iph.ihl = 5;
120995 p.iph.protocol = IPPROTO_IPV6;
120996 p.iph.ttl = 64;
120997 - ifr.ifr_ifru.ifru_data = (__force void __user *)&p;
120998 + ifr.ifr_ifru.ifru_data = (void __force_user *)&p;
120999
121000 if (ops->ndo_do_ioctl) {
121001 mm_segment_t oldfs = get_fs();
121002 @@ -3774,16 +3774,23 @@ static const struct file_operations if6_fops = {
121003 .release = seq_release_net,
121004 };
121005
121006 +extern void register_ipv6_seq_ops_addr(struct seq_operations *addr);
121007 +extern void unregister_ipv6_seq_ops_addr(void);
121008 +
121009 static int __net_init if6_proc_net_init(struct net *net)
121010 {
121011 - if (!proc_create("if_inet6", S_IRUGO, net->proc_net, &if6_fops))
121012 + register_ipv6_seq_ops_addr(&if6_seq_ops);
121013 + if (!proc_create("if_inet6", S_IRUGO, net->proc_net, &if6_fops)) {
121014 + unregister_ipv6_seq_ops_addr();
121015 return -ENOMEM;
121016 + }
121017 return 0;
121018 }
121019
121020 static void __net_exit if6_proc_net_exit(struct net *net)
121021 {
121022 remove_proc_entry("if_inet6", net->proc_net);
121023 + unregister_ipv6_seq_ops_addr();
121024 }
121025
121026 static struct pernet_operations if6_proc_net_ops = {
121027 @@ -4402,7 +4409,7 @@ static int inet6_dump_addr(struct sk_buff *skb, struct netlink_callback *cb,
121028 s_ip_idx = ip_idx = cb->args[2];
121029
121030 rcu_read_lock();
121031 - cb->seq = atomic_read(&net->ipv6.dev_addr_genid) ^ net->dev_base_seq;
121032 + cb->seq = atomic_read_unchecked(&net->ipv6.dev_addr_genid) ^ net->dev_base_seq;
121033 for (h = s_h; h < NETDEV_HASHENTRIES; h++, s_idx = 0) {
121034 idx = 0;
121035 head = &net->dev_index_head[h];
121036 @@ -5059,7 +5066,7 @@ static void __ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
121037 rt_genid_bump_ipv6(net);
121038 break;
121039 }
121040 - atomic_inc(&net->ipv6.dev_addr_genid);
121041 + atomic_inc_unchecked(&net->ipv6.dev_addr_genid);
121042 }
121043
121044 static void ipv6_ifa_notify(int event, struct inet6_ifaddr *ifp)
121045 @@ -5079,7 +5086,7 @@ int addrconf_sysctl_forward(struct ctl_table *ctl, int write,
121046 int *valp = ctl->data;
121047 int val = *valp;
121048 loff_t pos = *ppos;
121049 - struct ctl_table lctl;
121050 + ctl_table_no_const lctl;
121051 int ret;
121052
121053 /*
121054 @@ -5104,7 +5111,7 @@ int addrconf_sysctl_mtu(struct ctl_table *ctl, int write,
121055 {
121056 struct inet6_dev *idev = ctl->extra1;
121057 int min_mtu = IPV6_MIN_MTU;
121058 - struct ctl_table lctl;
121059 + ctl_table_no_const lctl;
121060
121061 lctl = *ctl;
121062 lctl.extra1 = &min_mtu;
121063 @@ -5179,7 +5186,7 @@ int addrconf_sysctl_disable(struct ctl_table *ctl, int write,
121064 int *valp = ctl->data;
121065 int val = *valp;
121066 loff_t pos = *ppos;
121067 - struct ctl_table lctl;
121068 + ctl_table_no_const lctl;
121069 int ret;
121070
121071 /*
121072 @@ -5244,7 +5251,7 @@ static int addrconf_sysctl_stable_secret(struct ctl_table *ctl, int write,
121073 int err;
121074 struct in6_addr addr;
121075 char str[IPV6_MAX_STRLEN];
121076 - struct ctl_table lctl = *ctl;
121077 + ctl_table_no_const lctl = *ctl;
121078 struct net *net = ctl->extra2;
121079 struct ipv6_stable_secret *secret = ctl->data;
121080
121081 diff --git a/net/ipv6/af_inet6.c b/net/ipv6/af_inet6.c
121082 index 7de52b6..ce7fb94 100644
121083 --- a/net/ipv6/af_inet6.c
121084 +++ b/net/ipv6/af_inet6.c
121085 @@ -770,7 +770,7 @@ static int __net_init inet6_net_init(struct net *net)
121086 net->ipv6.sysctl.idgen_retries = 3;
121087 net->ipv6.sysctl.idgen_delay = 1 * HZ;
121088 net->ipv6.sysctl.flowlabel_state_ranges = 1;
121089 - atomic_set(&net->ipv6.fib6_sernum, 1);
121090 + atomic_set_unchecked(&net->ipv6.fib6_sernum, 1);
121091
121092 err = ipv6_init_mibs(net);
121093 if (err)
121094 diff --git a/net/ipv6/datagram.c b/net/ipv6/datagram.c
121095 index b10a889..e881e1f 100644
121096 --- a/net/ipv6/datagram.c
121097 +++ b/net/ipv6/datagram.c
121098 @@ -977,5 +977,5 @@ void ip6_dgram_sock_seq_show(struct seq_file *seq, struct sock *sp,
121099 0,
121100 sock_i_ino(sp),
121101 atomic_read(&sp->sk_refcnt), sp,
121102 - atomic_read(&sp->sk_drops));
121103 + atomic_read_unchecked(&sp->sk_drops));
121104 }
121105 diff --git a/net/ipv6/icmp.c b/net/ipv6/icmp.c
121106 index 713d743..8eec687 100644
121107 --- a/net/ipv6/icmp.c
121108 +++ b/net/ipv6/icmp.c
121109 @@ -1004,7 +1004,7 @@ static struct ctl_table ipv6_icmp_table_template[] = {
121110
121111 struct ctl_table * __net_init ipv6_icmp_sysctl_init(struct net *net)
121112 {
121113 - struct ctl_table *table;
121114 + ctl_table_no_const *table;
121115
121116 table = kmemdup(ipv6_icmp_table_template,
121117 sizeof(ipv6_icmp_table_template),
121118 diff --git a/net/ipv6/ip6_fib.c b/net/ipv6/ip6_fib.c
121119 index 548c623..bc8ec4f 100644
121120 --- a/net/ipv6/ip6_fib.c
121121 +++ b/net/ipv6/ip6_fib.c
121122 @@ -99,9 +99,9 @@ static int fib6_new_sernum(struct net *net)
121123 int new, old;
121124
121125 do {
121126 - old = atomic_read(&net->ipv6.fib6_sernum);
121127 + old = atomic_read_unchecked(&net->ipv6.fib6_sernum);
121128 new = old < INT_MAX ? old + 1 : 1;
121129 - } while (atomic_cmpxchg(&net->ipv6.fib6_sernum,
121130 + } while (atomic_cmpxchg_unchecked(&net->ipv6.fib6_sernum,
121131 old, new) != old);
121132 return new;
121133 }
121134 diff --git a/net/ipv6/ip6_gre.c b/net/ipv6/ip6_gre.c
121135 index 69f4f68..1f97524 100644
121136 --- a/net/ipv6/ip6_gre.c
121137 +++ b/net/ipv6/ip6_gre.c
121138 @@ -71,8 +71,8 @@ struct ip6gre_net {
121139 struct net_device *fb_tunnel_dev;
121140 };
121141
121142 -static struct rtnl_link_ops ip6gre_link_ops __read_mostly;
121143 -static struct rtnl_link_ops ip6gre_tap_ops __read_mostly;
121144 +static struct rtnl_link_ops ip6gre_link_ops;
121145 +static struct rtnl_link_ops ip6gre_tap_ops;
121146 static int ip6gre_tunnel_init(struct net_device *dev);
121147 static void ip6gre_tunnel_setup(struct net_device *dev);
121148 static void ip6gre_tunnel_link(struct ip6gre_net *ign, struct ip6_tnl *t);
121149 @@ -1281,7 +1281,7 @@ static void ip6gre_fb_tunnel_init(struct net_device *dev)
121150 }
121151
121152
121153 -static struct inet6_protocol ip6gre_protocol __read_mostly = {
121154 +static struct inet6_protocol ip6gre_protocol = {
121155 .handler = ip6gre_rcv,
121156 .err_handler = ip6gre_err,
121157 .flags = INET6_PROTO_NOPOLICY|INET6_PROTO_FINAL,
121158 @@ -1640,7 +1640,7 @@ static const struct nla_policy ip6gre_policy[IFLA_GRE_MAX + 1] = {
121159 [IFLA_GRE_FLAGS] = { .type = NLA_U32 },
121160 };
121161
121162 -static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
121163 +static struct rtnl_link_ops ip6gre_link_ops = {
121164 .kind = "ip6gre",
121165 .maxtype = IFLA_GRE_MAX,
121166 .policy = ip6gre_policy,
121167 @@ -1655,7 +1655,7 @@ static struct rtnl_link_ops ip6gre_link_ops __read_mostly = {
121168 .get_link_net = ip6_tnl_get_link_net,
121169 };
121170
121171 -static struct rtnl_link_ops ip6gre_tap_ops __read_mostly = {
121172 +static struct rtnl_link_ops ip6gre_tap_ops = {
121173 .kind = "ip6gretap",
121174 .maxtype = IFLA_GRE_MAX,
121175 .policy = ip6gre_policy,
121176 diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
121177 index d5f7716..7da025a 100644
121178 --- a/net/ipv6/ip6_output.c
121179 +++ b/net/ipv6/ip6_output.c
121180 @@ -581,6 +581,8 @@ int ip6_fragment(struct sock *sk, struct sk_buff *skb,
121181 if (np->frag_size)
121182 mtu = np->frag_size;
121183 }
121184 + if (mtu < hlen + sizeof(struct frag_hdr) + 8)
121185 + goto fail_toobig;
121186 mtu -= hlen + sizeof(struct frag_hdr);
121187
121188 frag_id = ipv6_select_ident(net, &ipv6_hdr(skb)->daddr,
121189 diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
121190 index 2e67b66..b816b34 100644
121191 --- a/net/ipv6/ip6_tunnel.c
121192 +++ b/net/ipv6/ip6_tunnel.c
121193 @@ -80,7 +80,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
121194
121195 static int ip6_tnl_dev_init(struct net_device *dev);
121196 static void ip6_tnl_dev_setup(struct net_device *dev);
121197 -static struct rtnl_link_ops ip6_link_ops __read_mostly;
121198 +static struct rtnl_link_ops ip6_link_ops;
121199
121200 static int ip6_tnl_net_id __read_mostly;
121201 struct ip6_tnl_net {
121202 @@ -1776,7 +1776,7 @@ static const struct nla_policy ip6_tnl_policy[IFLA_IPTUN_MAX + 1] = {
121203 [IFLA_IPTUN_PROTO] = { .type = NLA_U8 },
121204 };
121205
121206 -static struct rtnl_link_ops ip6_link_ops __read_mostly = {
121207 +static struct rtnl_link_ops ip6_link_ops = {
121208 .kind = "ip6tnl",
121209 .maxtype = IFLA_IPTUN_MAX,
121210 .policy = ip6_tnl_policy,
121211 diff --git a/net/ipv6/ip6_vti.c b/net/ipv6/ip6_vti.c
121212 index 0224c03..c5ec3d9 100644
121213 --- a/net/ipv6/ip6_vti.c
121214 +++ b/net/ipv6/ip6_vti.c
121215 @@ -62,7 +62,7 @@ static u32 HASH(const struct in6_addr *addr1, const struct in6_addr *addr2)
121216
121217 static int vti6_dev_init(struct net_device *dev);
121218 static void vti6_dev_setup(struct net_device *dev);
121219 -static struct rtnl_link_ops vti6_link_ops __read_mostly;
121220 +static struct rtnl_link_ops vti6_link_ops;
121221
121222 static int vti6_net_id __read_mostly;
121223 struct vti6_net {
121224 @@ -1019,7 +1019,7 @@ static const struct nla_policy vti6_policy[IFLA_VTI_MAX + 1] = {
121225 [IFLA_VTI_OKEY] = { .type = NLA_U32 },
121226 };
121227
121228 -static struct rtnl_link_ops vti6_link_ops __read_mostly = {
121229 +static struct rtnl_link_ops vti6_link_ops = {
121230 .kind = "vti6",
121231 .maxtype = IFLA_VTI_MAX,
121232 .policy = vti6_policy,
121233 diff --git a/net/ipv6/ipv6_sockglue.c b/net/ipv6/ipv6_sockglue.c
121234 index 63e6956..ebbbcf6 100644
121235 --- a/net/ipv6/ipv6_sockglue.c
121236 +++ b/net/ipv6/ipv6_sockglue.c
121237 @@ -1015,7 +1015,7 @@ static int do_ipv6_getsockopt(struct sock *sk, int level, int optname,
121238 if (sk->sk_type != SOCK_STREAM)
121239 return -ENOPROTOOPT;
121240
121241 - msg.msg_control = optval;
121242 + msg.msg_control = (void __force_kernel *)optval;
121243 msg.msg_controllen = len;
121244 msg.msg_flags = flags;
121245
121246 diff --git a/net/ipv6/netfilter/ip6_tables.c b/net/ipv6/netfilter/ip6_tables.c
121247 index 3c35ced..2e6882f 100644
121248 --- a/net/ipv6/netfilter/ip6_tables.c
121249 +++ b/net/ipv6/netfilter/ip6_tables.c
121250 @@ -1086,14 +1086,14 @@ static int compat_table_info(const struct xt_table_info *info,
121251 #endif
121252
121253 static int get_info(struct net *net, void __user *user,
121254 - const int *len, int compat)
121255 + int len, int compat)
121256 {
121257 char name[XT_TABLE_MAXNAMELEN];
121258 struct xt_table *t;
121259 int ret;
121260
121261 - if (*len != sizeof(struct ip6t_getinfo)) {
121262 - duprintf("length %u != %zu\n", *len,
121263 + if (len != sizeof(struct ip6t_getinfo)) {
121264 + duprintf("length %u != %zu\n", len,
121265 sizeof(struct ip6t_getinfo));
121266 return -EINVAL;
121267 }
121268 @@ -1130,7 +1130,7 @@ static int get_info(struct net *net, void __user *user,
121269 info.size = private->size;
121270 strcpy(info.name, name);
121271
121272 - if (copy_to_user(user, &info, *len) != 0)
121273 + if (copy_to_user(user, &info, len) != 0)
121274 ret = -EFAULT;
121275 else
121276 ret = 0;
121277 @@ -1978,7 +1978,7 @@ compat_do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
121278
121279 switch (cmd) {
121280 case IP6T_SO_GET_INFO:
121281 - ret = get_info(sock_net(sk), user, len, 1);
121282 + ret = get_info(sock_net(sk), user, *len, 1);
121283 break;
121284 case IP6T_SO_GET_ENTRIES:
121285 ret = compat_get_entries(sock_net(sk), user, len);
121286 @@ -2025,7 +2025,7 @@ do_ip6t_get_ctl(struct sock *sk, int cmd, void __user *user, int *len)
121287
121288 switch (cmd) {
121289 case IP6T_SO_GET_INFO:
121290 - ret = get_info(sock_net(sk), user, len, 0);
121291 + ret = get_info(sock_net(sk), user, *len, 0);
121292 break;
121293
121294 case IP6T_SO_GET_ENTRIES:
121295 diff --git a/net/ipv6/netfilter/nf_conntrack_reasm.c b/net/ipv6/netfilter/nf_conntrack_reasm.c
121296 index 6d02498..55e564f 100644
121297 --- a/net/ipv6/netfilter/nf_conntrack_reasm.c
121298 +++ b/net/ipv6/netfilter/nf_conntrack_reasm.c
121299 @@ -96,12 +96,11 @@ static struct ctl_table nf_ct_frag6_sysctl_table[] = {
121300
121301 static int nf_ct_frag6_sysctl_register(struct net *net)
121302 {
121303 - struct ctl_table *table;
121304 + ctl_table_no_const *table = NULL;
121305 struct ctl_table_header *hdr;
121306
121307 - table = nf_ct_frag6_sysctl_table;
121308 if (!net_eq(net, &init_net)) {
121309 - table = kmemdup(table, sizeof(nf_ct_frag6_sysctl_table),
121310 + table = kmemdup(nf_ct_frag6_sysctl_table, sizeof(nf_ct_frag6_sysctl_table),
121311 GFP_KERNEL);
121312 if (table == NULL)
121313 goto err_alloc;
121314 @@ -112,9 +111,9 @@ static int nf_ct_frag6_sysctl_register(struct net *net)
121315 table[2].data = &net->nf_frag.frags.high_thresh;
121316 table[2].extra1 = &net->nf_frag.frags.low_thresh;
121317 table[2].extra2 = &init_net.nf_frag.frags.high_thresh;
121318 - }
121319 -
121320 - hdr = register_net_sysctl(net, "net/netfilter", table);
121321 + hdr = register_net_sysctl(net, "net/netfilter", table);
121322 + } else
121323 + hdr = register_net_sysctl(net, "net/netfilter", nf_ct_frag6_sysctl_table);
121324 if (hdr == NULL)
121325 goto err_reg;
121326
121327 @@ -122,8 +121,7 @@ static int nf_ct_frag6_sysctl_register(struct net *net)
121328 return 0;
121329
121330 err_reg:
121331 - if (!net_eq(net, &init_net))
121332 - kfree(table);
121333 + kfree(table);
121334 err_alloc:
121335 return -ENOMEM;
121336 }
121337 diff --git a/net/ipv6/ping.c b/net/ipv6/ping.c
121338 index 263a516..692f738 100644
121339 --- a/net/ipv6/ping.c
121340 +++ b/net/ipv6/ping.c
121341 @@ -240,6 +240,24 @@ static struct pernet_operations ping_v6_net_ops = {
121342 };
121343 #endif
121344
121345 +static struct pingv6_ops real_pingv6_ops = {
121346 + .ipv6_recv_error = ipv6_recv_error,
121347 + .ip6_datagram_recv_common_ctl = ip6_datagram_recv_common_ctl,
121348 + .ip6_datagram_recv_specific_ctl = ip6_datagram_recv_specific_ctl,
121349 + .icmpv6_err_convert = icmpv6_err_convert,
121350 + .ipv6_icmp_error = ipv6_icmp_error,
121351 + .ipv6_chk_addr = ipv6_chk_addr,
121352 +};
121353 +
121354 +static struct pingv6_ops dummy_pingv6_ops = {
121355 + .ipv6_recv_error = dummy_ipv6_recv_error,
121356 + .ip6_datagram_recv_common_ctl = dummy_ip6_datagram_recv_ctl,
121357 + .ip6_datagram_recv_specific_ctl = dummy_ip6_datagram_recv_ctl,
121358 + .icmpv6_err_convert = dummy_icmpv6_err_convert,
121359 + .ipv6_icmp_error = dummy_ipv6_icmp_error,
121360 + .ipv6_chk_addr = dummy_ipv6_chk_addr,
121361 +};
121362 +
121363 int __init pingv6_init(void)
121364 {
121365 #ifdef CONFIG_PROC_FS
121366 @@ -247,13 +265,7 @@ int __init pingv6_init(void)
121367 if (ret)
121368 return ret;
121369 #endif
121370 - pingv6_ops.ipv6_recv_error = ipv6_recv_error;
121371 - pingv6_ops.ip6_datagram_recv_common_ctl = ip6_datagram_recv_common_ctl;
121372 - pingv6_ops.ip6_datagram_recv_specific_ctl =
121373 - ip6_datagram_recv_specific_ctl;
121374 - pingv6_ops.icmpv6_err_convert = icmpv6_err_convert;
121375 - pingv6_ops.ipv6_icmp_error = ipv6_icmp_error;
121376 - pingv6_ops.ipv6_chk_addr = ipv6_chk_addr;
121377 + pingv6_ops = &real_pingv6_ops;
121378 return inet6_register_protosw(&pingv6_protosw);
121379 }
121380
121381 @@ -262,14 +274,9 @@ int __init pingv6_init(void)
121382 */
121383 void pingv6_exit(void)
121384 {
121385 - pingv6_ops.ipv6_recv_error = dummy_ipv6_recv_error;
121386 - pingv6_ops.ip6_datagram_recv_common_ctl = dummy_ip6_datagram_recv_ctl;
121387 - pingv6_ops.ip6_datagram_recv_specific_ctl = dummy_ip6_datagram_recv_ctl;
121388 - pingv6_ops.icmpv6_err_convert = dummy_icmpv6_err_convert;
121389 - pingv6_ops.ipv6_icmp_error = dummy_ipv6_icmp_error;
121390 - pingv6_ops.ipv6_chk_addr = dummy_ipv6_chk_addr;
121391 #ifdef CONFIG_PROC_FS
121392 unregister_pernet_subsys(&ping_v6_net_ops);
121393 #endif
121394 + pingv6_ops = &dummy_pingv6_ops;
121395 inet6_unregister_protosw(&pingv6_protosw);
121396 }
121397 diff --git a/net/ipv6/proc.c b/net/ipv6/proc.c
121398 index 679253d0..70b653c 100644
121399 --- a/net/ipv6/proc.c
121400 +++ b/net/ipv6/proc.c
121401 @@ -310,7 +310,7 @@ static int __net_init ipv6_proc_init_net(struct net *net)
121402 if (!proc_create("snmp6", S_IRUGO, net->proc_net, &snmp6_seq_fops))
121403 goto proc_snmp6_fail;
121404
121405 - net->mib.proc_net_devsnmp6 = proc_mkdir("dev_snmp6", net->proc_net);
121406 + net->mib.proc_net_devsnmp6 = proc_mkdir_restrict("dev_snmp6", net->proc_net);
121407 if (!net->mib.proc_net_devsnmp6)
121408 goto proc_dev_snmp6_fail;
121409 return 0;
121410 diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
121411 index ca4700c..e44c0f9 100644
121412 --- a/net/ipv6/raw.c
121413 +++ b/net/ipv6/raw.c
121414 @@ -388,7 +388,7 @@ static inline int rawv6_rcv_skb(struct sock *sk, struct sk_buff *skb)
121415 {
121416 if ((raw6_sk(sk)->checksum || rcu_access_pointer(sk->sk_filter)) &&
121417 skb_checksum_complete(skb)) {
121418 - atomic_inc(&sk->sk_drops);
121419 + atomic_inc_unchecked(&sk->sk_drops);
121420 kfree_skb(skb);
121421 return NET_RX_DROP;
121422 }
121423 @@ -416,7 +416,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
121424 struct raw6_sock *rp = raw6_sk(sk);
121425
121426 if (!xfrm6_policy_check(sk, XFRM_POLICY_IN, skb)) {
121427 - atomic_inc(&sk->sk_drops);
121428 + atomic_inc_unchecked(&sk->sk_drops);
121429 kfree_skb(skb);
121430 return NET_RX_DROP;
121431 }
121432 @@ -440,7 +440,7 @@ int rawv6_rcv(struct sock *sk, struct sk_buff *skb)
121433
121434 if (inet->hdrincl) {
121435 if (skb_checksum_complete(skb)) {
121436 - atomic_inc(&sk->sk_drops);
121437 + atomic_inc_unchecked(&sk->sk_drops);
121438 kfree_skb(skb);
121439 return NET_RX_DROP;
121440 }
121441 @@ -608,7 +608,7 @@ out:
121442 return err;
121443 }
121444
121445 -static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, int length,
121446 +static int rawv6_send_hdrinc(struct sock *sk, struct msghdr *msg, unsigned int length,
121447 struct flowi6 *fl6, struct dst_entry **dstp,
121448 unsigned int flags)
121449 {
121450 @@ -916,12 +916,15 @@ do_confirm:
121451 static int rawv6_seticmpfilter(struct sock *sk, int level, int optname,
121452 char __user *optval, int optlen)
121453 {
121454 + struct icmp6_filter filter;
121455 +
121456 switch (optname) {
121457 case ICMPV6_FILTER:
121458 if (optlen > sizeof(struct icmp6_filter))
121459 optlen = sizeof(struct icmp6_filter);
121460 - if (copy_from_user(&raw6_sk(sk)->filter, optval, optlen))
121461 + if (copy_from_user(&filter, optval, optlen))
121462 return -EFAULT;
121463 + raw6_sk(sk)->filter = filter;
121464 return 0;
121465 default:
121466 return -ENOPROTOOPT;
121467 @@ -934,6 +937,7 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
121468 char __user *optval, int __user *optlen)
121469 {
121470 int len;
121471 + struct icmp6_filter filter;
121472
121473 switch (optname) {
121474 case ICMPV6_FILTER:
121475 @@ -945,7 +949,8 @@ static int rawv6_geticmpfilter(struct sock *sk, int level, int optname,
121476 len = sizeof(struct icmp6_filter);
121477 if (put_user(len, optlen))
121478 return -EFAULT;
121479 - if (copy_to_user(optval, &raw6_sk(sk)->filter, len))
121480 + filter = raw6_sk(sk)->filter;
121481 + if (len > sizeof filter || copy_to_user(optval, &filter, len))
121482 return -EFAULT;
121483 return 0;
121484 default:
121485 diff --git a/net/ipv6/reassembly.c b/net/ipv6/reassembly.c
121486 index f1159bb..0db5dad 100644
121487 --- a/net/ipv6/reassembly.c
121488 +++ b/net/ipv6/reassembly.c
121489 @@ -626,12 +626,11 @@ static struct ctl_table ip6_frags_ctl_table[] = {
121490
121491 static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
121492 {
121493 - struct ctl_table *table;
121494 + ctl_table_no_const *table = NULL;
121495 struct ctl_table_header *hdr;
121496
121497 - table = ip6_frags_ns_ctl_table;
121498 if (!net_eq(net, &init_net)) {
121499 - table = kmemdup(table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL);
121500 + table = kmemdup(ip6_frags_ns_ctl_table, sizeof(ip6_frags_ns_ctl_table), GFP_KERNEL);
121501 if (!table)
121502 goto err_alloc;
121503
121504 @@ -645,9 +644,10 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
121505 /* Don't export sysctls to unprivileged users */
121506 if (net->user_ns != &init_user_ns)
121507 table[0].procname = NULL;
121508 - }
121509 + hdr = register_net_sysctl(net, "net/ipv6", table);
121510 + } else
121511 + hdr = register_net_sysctl(net, "net/ipv6", ip6_frags_ns_ctl_table);
121512
121513 - hdr = register_net_sysctl(net, "net/ipv6", table);
121514 if (!hdr)
121515 goto err_reg;
121516
121517 @@ -655,8 +655,7 @@ static int __net_init ip6_frags_ns_sysctl_register(struct net *net)
121518 return 0;
121519
121520 err_reg:
121521 - if (!net_eq(net, &init_net))
121522 - kfree(table);
121523 + kfree(table);
121524 err_alloc:
121525 return -ENOMEM;
121526 }
121527 diff --git a/net/ipv6/route.c b/net/ipv6/route.c
121528 index dd6ebba..69d56e8 100644
121529 --- a/net/ipv6/route.c
121530 +++ b/net/ipv6/route.c
121531 @@ -3432,7 +3432,7 @@ struct ctl_table ipv6_route_table_template[] = {
121532
121533 struct ctl_table * __net_init ipv6_route_sysctl_init(struct net *net)
121534 {
121535 - struct ctl_table *table;
121536 + ctl_table_no_const *table;
121537
121538 table = kmemdup(ipv6_route_table_template,
121539 sizeof(ipv6_route_table_template),
121540 diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
121541 index ac35a28..070cc8c 100644
121542 --- a/net/ipv6/sit.c
121543 +++ b/net/ipv6/sit.c
121544 @@ -74,7 +74,7 @@ static void ipip6_tunnel_setup(struct net_device *dev);
121545 static void ipip6_dev_free(struct net_device *dev);
121546 static bool check_6rd(struct ip_tunnel *tunnel, const struct in6_addr *v6dst,
121547 __be32 *v4dst);
121548 -static struct rtnl_link_ops sit_link_ops __read_mostly;
121549 +static struct rtnl_link_ops sit_link_ops;
121550
121551 static int sit_net_id __read_mostly;
121552 struct sit_net {
121553 @@ -1749,7 +1749,7 @@ static void ipip6_dellink(struct net_device *dev, struct list_head *head)
121554 unregister_netdevice_queue(dev, head);
121555 }
121556
121557 -static struct rtnl_link_ops sit_link_ops __read_mostly = {
121558 +static struct rtnl_link_ops sit_link_ops = {
121559 .kind = "sit",
121560 .maxtype = IFLA_IPTUN_MAX,
121561 .policy = ipip6_policy,
121562 diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c
121563 index 4e705ad..9ba8db8 100644
121564 --- a/net/ipv6/sysctl_net_ipv6.c
121565 +++ b/net/ipv6/sysctl_net_ipv6.c
121566 @@ -99,7 +99,7 @@ static struct ctl_table ipv6_rotable[] = {
121567
121568 static int __net_init ipv6_sysctl_net_init(struct net *net)
121569 {
121570 - struct ctl_table *ipv6_table;
121571 + ctl_table_no_const *ipv6_table;
121572 struct ctl_table *ipv6_route_table;
121573 struct ctl_table *ipv6_icmp_table;
121574 int err;
121575 diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
121576 index 7a6cea5..1a99e26 100644
121577 --- a/net/ipv6/tcp_ipv6.c
121578 +++ b/net/ipv6/tcp_ipv6.c
121579 @@ -103,6 +103,10 @@ static void inet6_sk_rx_dst_set(struct sock *sk, const struct sk_buff *skb)
121580 }
121581 }
121582
121583 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121584 +extern int grsec_enable_blackhole;
121585 +#endif
121586 +
121587 static __u32 tcp_v6_init_sequence(const struct sk_buff *skb)
121588 {
121589 return secure_tcpv6_sequence_number(ipv6_hdr(skb)->daddr.s6_addr32,
121590 @@ -1280,6 +1284,9 @@ static int tcp_v6_do_rcv(struct sock *sk, struct sk_buff *skb)
121591 return 0;
121592
121593 reset:
121594 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121595 + if (!grsec_enable_blackhole)
121596 +#endif
121597 tcp_v6_send_reset(sk, skb);
121598 discard:
121599 if (opt_skb)
121600 @@ -1389,12 +1396,20 @@ static int tcp_v6_rcv(struct sk_buff *skb)
121601
121602 sk = __inet6_lookup_skb(&tcp_hashinfo, skb, th->source, th->dest,
121603 inet6_iif(skb));
121604 - if (!sk)
121605 + if (!sk) {
121606 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121607 + ret = 1;
121608 +#endif
121609 goto no_tcp_socket;
121610 + }
121611
121612 process:
121613 - if (sk->sk_state == TCP_TIME_WAIT)
121614 + if (sk->sk_state == TCP_TIME_WAIT) {
121615 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121616 + ret = 2;
121617 +#endif
121618 goto do_time_wait;
121619 + }
121620
121621 if (hdr->hop_limit < inet6_sk(sk)->min_hopcount) {
121622 NET_INC_STATS_BH(net, LINUX_MIB_TCPMINTTLDROP);
121623 @@ -1446,6 +1461,10 @@ csum_error:
121624 bad_packet:
121625 TCP_INC_STATS_BH(net, TCP_MIB_INERRS);
121626 } else {
121627 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121628 + if (!grsec_enable_blackhole || (ret == 1 &&
121629 + (skb->dev->flags & IFF_LOOPBACK)))
121630 +#endif
121631 tcp_v6_send_reset(NULL, skb);
121632 }
121633
121634 diff --git a/net/ipv6/udp.c b/net/ipv6/udp.c
121635 index e51fc3e..8f04229 100644
121636 --- a/net/ipv6/udp.c
121637 +++ b/net/ipv6/udp.c
121638 @@ -76,6 +76,10 @@ static u32 udp6_ehashfn(const struct net *net,
121639 udp_ipv6_hash_secret + net_hash_mix(net));
121640 }
121641
121642 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121643 +extern int grsec_enable_blackhole;
121644 +#endif
121645 +
121646 int ipv6_rcv_saddr_equal(const struct sock *sk, const struct sock *sk2)
121647 {
121648 const struct in6_addr *sk2_rcv_saddr6 = inet6_rcv_saddr(sk2);
121649 @@ -445,7 +449,7 @@ try_again:
121650 if (unlikely(err)) {
121651 trace_kfree_skb(skb, udpv6_recvmsg);
121652 if (!peeked) {
121653 - atomic_inc(&sk->sk_drops);
121654 + atomic_inc_unchecked(&sk->sk_drops);
121655 if (is_udp4)
121656 UDP_INC_STATS_USER(sock_net(sk),
121657 UDP_MIB_INERRORS,
121658 @@ -709,7 +713,7 @@ csum_error:
121659 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_CSUMERRORS, is_udplite);
121660 drop:
121661 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS, is_udplite);
121662 - atomic_inc(&sk->sk_drops);
121663 + atomic_inc_unchecked(&sk->sk_drops);
121664 kfree_skb(skb);
121665 return -1;
121666 }
121667 @@ -750,7 +754,7 @@ static void flush_stack(struct sock **stack, unsigned int count,
121668 if (likely(!skb1))
121669 skb1 = (i == final) ? skb : skb_clone(skb, GFP_ATOMIC);
121670 if (!skb1) {
121671 - atomic_inc(&sk->sk_drops);
121672 + atomic_inc_unchecked(&sk->sk_drops);
121673 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_RCVBUFERRORS,
121674 IS_UDPLITE(sk));
121675 UDP6_INC_STATS_BH(sock_net(sk), UDP_MIB_INERRORS,
121676 @@ -934,6 +938,9 @@ int __udp6_lib_rcv(struct sk_buff *skb, struct udp_table *udptable,
121677 goto csum_error;
121678
121679 UDP6_INC_STATS_BH(net, UDP_MIB_NOPORTS, proto == IPPROTO_UDPLITE);
121680 +#ifdef CONFIG_GRKERNSEC_BLACKHOLE
121681 + if (!grsec_enable_blackhole || (skb->dev->flags & IFF_LOOPBACK))
121682 +#endif
121683 icmpv6_send(skb, ICMPV6_DEST_UNREACH, ICMPV6_PORT_UNREACH, 0);
121684
121685 kfree_skb(skb);
121686 diff --git a/net/ipv6/xfrm6_policy.c b/net/ipv6/xfrm6_policy.c
121687 index ed0583c..606962a 100644
121688 --- a/net/ipv6/xfrm6_policy.c
121689 +++ b/net/ipv6/xfrm6_policy.c
121690 @@ -174,7 +174,8 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
121691 return;
121692
121693 case IPPROTO_ICMPV6:
121694 - if (!onlyproto && pskb_may_pull(skb, nh + offset + 2 - skb->data)) {
121695 + if (!onlyproto && (nh + offset + 2 < skb->data ||
121696 + pskb_may_pull(skb, nh + offset + 2 - skb->data))) {
121697 u8 *icmp;
121698
121699 nh = skb_network_header(skb);
121700 @@ -188,7 +189,8 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
121701 #if IS_ENABLED(CONFIG_IPV6_MIP6)
121702 case IPPROTO_MH:
121703 offset += ipv6_optlen(exthdr);
121704 - if (!onlyproto && pskb_may_pull(skb, nh + offset + 3 - skb->data)) {
121705 + if (!onlyproto && (nh + offset + 3 < skb->data ||
121706 + pskb_may_pull(skb, nh + offset + 3 - skb->data))) {
121707 struct ip6_mh *mh;
121708
121709 nh = skb_network_header(skb);
121710 @@ -211,11 +213,11 @@ _decode_session6(struct sk_buff *skb, struct flowi *fl, int reverse)
121711 }
121712 }
121713
121714 -static inline int xfrm6_garbage_collect(struct dst_ops *ops)
121715 +static int xfrm6_garbage_collect(struct dst_ops *ops)
121716 {
121717 struct net *net = container_of(ops, struct net, xfrm.xfrm6_dst_ops);
121718
121719 - xfrm6_policy_afinfo.garbage_collect(net);
121720 + xfrm_garbage_collect_deferred(net);
121721 return dst_entries_get_fast(ops) > ops->gc_thresh * 2;
121722 }
121723
121724 @@ -322,19 +324,19 @@ static struct ctl_table xfrm6_policy_table[] = {
121725
121726 static int __net_init xfrm6_net_init(struct net *net)
121727 {
121728 - struct ctl_table *table;
121729 + ctl_table_no_const *table = NULL;
121730 struct ctl_table_header *hdr;
121731
121732 - table = xfrm6_policy_table;
121733 if (!net_eq(net, &init_net)) {
121734 - table = kmemdup(table, sizeof(xfrm6_policy_table), GFP_KERNEL);
121735 + table = kmemdup(xfrm6_policy_table, sizeof(xfrm6_policy_table), GFP_KERNEL);
121736 if (!table)
121737 goto err_alloc;
121738
121739 table[0].data = &net->xfrm.xfrm6_dst_ops.gc_thresh;
121740 - }
121741 + hdr = register_net_sysctl(net, "net/ipv6", table);
121742 + } else
121743 + hdr = register_net_sysctl(net, "net/ipv6", xfrm6_policy_table);
121744
121745 - hdr = register_net_sysctl(net, "net/ipv6", table);
121746 if (!hdr)
121747 goto err_reg;
121748
121749 @@ -342,8 +344,7 @@ static int __net_init xfrm6_net_init(struct net *net)
121750 return 0;
121751
121752 err_reg:
121753 - if (!net_eq(net, &init_net))
121754 - kfree(table);
121755 + kfree(table);
121756 err_alloc:
121757 return -ENOMEM;
121758 }
121759 diff --git a/net/ipx/ipx_proc.c b/net/ipx/ipx_proc.c
121760 index c1d247e..9e5949d 100644
121761 --- a/net/ipx/ipx_proc.c
121762 +++ b/net/ipx/ipx_proc.c
121763 @@ -289,7 +289,7 @@ int __init ipx_proc_init(void)
121764 struct proc_dir_entry *p;
121765 int rc = -ENOMEM;
121766
121767 - ipx_proc_dir = proc_mkdir("ipx", init_net.proc_net);
121768 + ipx_proc_dir = proc_mkdir_restrict("ipx", init_net.proc_net);
121769
121770 if (!ipx_proc_dir)
121771 goto out;
121772 diff --git a/net/irda/ircomm/ircomm_tty.c b/net/irda/ircomm/ircomm_tty.c
121773 index 683346d..cb0e12d 100644
121774 --- a/net/irda/ircomm/ircomm_tty.c
121775 +++ b/net/irda/ircomm/ircomm_tty.c
121776 @@ -310,10 +310,10 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
121777 add_wait_queue(&port->open_wait, &wait);
121778
121779 pr_debug("%s(%d):block_til_ready before block on %s open_count=%d\n",
121780 - __FILE__, __LINE__, tty->driver->name, port->count);
121781 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
121782
121783 spin_lock_irqsave(&port->lock, flags);
121784 - port->count--;
121785 + atomic_dec(&port->count);
121786 port->blocked_open++;
121787 spin_unlock_irqrestore(&port->lock, flags);
121788
121789 @@ -348,7 +348,7 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
121790 }
121791
121792 pr_debug("%s(%d):block_til_ready blocking on %s open_count=%d\n",
121793 - __FILE__, __LINE__, tty->driver->name, port->count);
121794 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
121795
121796 schedule();
121797 }
121798 @@ -358,12 +358,12 @@ static int ircomm_tty_block_til_ready(struct ircomm_tty_cb *self,
121799
121800 spin_lock_irqsave(&port->lock, flags);
121801 if (!tty_hung_up_p(filp))
121802 - port->count++;
121803 + atomic_inc(&port->count);
121804 port->blocked_open--;
121805 spin_unlock_irqrestore(&port->lock, flags);
121806
121807 pr_debug("%s(%d):block_til_ready after blocking on %s open_count=%d\n",
121808 - __FILE__, __LINE__, tty->driver->name, port->count);
121809 + __FILE__, __LINE__, tty->driver->name, atomic_read(&port->count));
121810
121811 if (!retval)
121812 port->flags |= ASYNC_NORMAL_ACTIVE;
121813 @@ -433,12 +433,12 @@ static int ircomm_tty_open(struct tty_struct *tty, struct file *filp)
121814
121815 /* ++ is not atomic, so this should be protected - Jean II */
121816 spin_lock_irqsave(&self->port.lock, flags);
121817 - self->port.count++;
121818 + atomic_inc(&self->port.count);
121819 spin_unlock_irqrestore(&self->port.lock, flags);
121820 tty_port_tty_set(&self->port, tty);
121821
121822 pr_debug("%s(), %s%d, count = %d\n", __func__ , tty->driver->name,
121823 - self->line, self->port.count);
121824 + self->line, atomic_read(&self->port.count));
121825
121826 /* Not really used by us, but lets do it anyway */
121827 self->port.low_latency = (self->port.flags & ASYNC_LOW_LATENCY) ? 1 : 0;
121828 @@ -961,7 +961,7 @@ static void ircomm_tty_hangup(struct tty_struct *tty)
121829 tty_kref_put(port->tty);
121830 }
121831 port->tty = NULL;
121832 - port->count = 0;
121833 + atomic_set(&port->count, 0);
121834 spin_unlock_irqrestore(&port->lock, flags);
121835
121836 wake_up_interruptible(&port->open_wait);
121837 @@ -1308,7 +1308,7 @@ static void ircomm_tty_line_info(struct ircomm_tty_cb *self, struct seq_file *m)
121838 seq_putc(m, '\n');
121839
121840 seq_printf(m, "Role: %s\n", self->client ? "client" : "server");
121841 - seq_printf(m, "Open count: %d\n", self->port.count);
121842 + seq_printf(m, "Open count: %d\n", atomic_read(&self->port.count));
121843 seq_printf(m, "Max data size: %d\n", self->max_data_size);
121844 seq_printf(m, "Max header size: %d\n", self->max_header_size);
121845
121846 diff --git a/net/irda/irlmp.c b/net/irda/irlmp.c
121847 index a26c401..4396459 100644
121848 --- a/net/irda/irlmp.c
121849 +++ b/net/irda/irlmp.c
121850 @@ -1839,7 +1839,7 @@ static void *irlmp_seq_hb_idx(struct irlmp_iter_state *iter, loff_t *off)
121851 for (element = hashbin_get_first(iter->hashbin);
121852 element != NULL;
121853 element = hashbin_get_next(iter->hashbin)) {
121854 - if (!off || *off-- == 0) {
121855 + if (!off || (*off)-- == 0) {
121856 /* NB: hashbin left locked */
121857 return element;
121858 }
121859 diff --git a/net/irda/irproc.c b/net/irda/irproc.c
121860 index b9ac598..f88cc56 100644
121861 --- a/net/irda/irproc.c
121862 +++ b/net/irda/irproc.c
121863 @@ -66,7 +66,7 @@ void __init irda_proc_register(void)
121864 {
121865 int i;
121866
121867 - proc_irda = proc_mkdir("irda", init_net.proc_net);
121868 + proc_irda = proc_mkdir_restrict("irda", init_net.proc_net);
121869 if (proc_irda == NULL)
121870 return;
121871
121872 diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
121873 index 918151c..5bbe95a 100644
121874 --- a/net/iucv/af_iucv.c
121875 +++ b/net/iucv/af_iucv.c
121876 @@ -686,10 +686,10 @@ static void __iucv_auto_name(struct iucv_sock *iucv)
121877 {
121878 char name[12];
121879
121880 - sprintf(name, "%08x", atomic_inc_return(&iucv_sk_list.autobind_name));
121881 + sprintf(name, "%08x", atomic_inc_return_unchecked(&iucv_sk_list.autobind_name));
121882 while (__iucv_get_sock_by_name(name)) {
121883 sprintf(name, "%08x",
121884 - atomic_inc_return(&iucv_sk_list.autobind_name));
121885 + atomic_inc_return_unchecked(&iucv_sk_list.autobind_name));
121886 }
121887 memcpy(iucv->src_name, name, 8);
121888 }
121889 diff --git a/net/iucv/iucv.c b/net/iucv/iucv.c
121890 index 2a6a1fd..6c112b0 100644
121891 --- a/net/iucv/iucv.c
121892 +++ b/net/iucv/iucv.c
121893 @@ -702,7 +702,7 @@ static int iucv_cpu_notify(struct notifier_block *self,
121894 return NOTIFY_OK;
121895 }
121896
121897 -static struct notifier_block __refdata iucv_cpu_notifier = {
121898 +static struct notifier_block iucv_cpu_notifier = {
121899 .notifier_call = iucv_cpu_notify,
121900 };
121901
121902 diff --git a/net/key/af_key.c b/net/key/af_key.c
121903 index 83a7068..facf2f0 100644
121904 --- a/net/key/af_key.c
121905 +++ b/net/key/af_key.c
121906 @@ -3050,10 +3050,10 @@ static int pfkey_send_policy_notify(struct xfrm_policy *xp, int dir, const struc
121907 static u32 get_acqseq(void)
121908 {
121909 u32 res;
121910 - static atomic_t acqseq;
121911 + static atomic_unchecked_t acqseq;
121912
121913 do {
121914 - res = atomic_inc_return(&acqseq);
121915 + res = atomic_inc_return_unchecked(&acqseq);
121916 } while (!res);
121917 return res;
121918 }
121919 diff --git a/net/l2tp/l2tp_eth.c b/net/l2tp/l2tp_eth.c
121920 index 4b55287..bd247f7 100644
121921 --- a/net/l2tp/l2tp_eth.c
121922 +++ b/net/l2tp/l2tp_eth.c
121923 @@ -42,12 +42,12 @@ struct l2tp_eth {
121924 struct sock *tunnel_sock;
121925 struct l2tp_session *session;
121926 struct list_head list;
121927 - atomic_long_t tx_bytes;
121928 - atomic_long_t tx_packets;
121929 - atomic_long_t tx_dropped;
121930 - atomic_long_t rx_bytes;
121931 - atomic_long_t rx_packets;
121932 - atomic_long_t rx_errors;
121933 + atomic_long_unchecked_t tx_bytes;
121934 + atomic_long_unchecked_t tx_packets;
121935 + atomic_long_unchecked_t tx_dropped;
121936 + atomic_long_unchecked_t rx_bytes;
121937 + atomic_long_unchecked_t rx_packets;
121938 + atomic_long_unchecked_t rx_errors;
121939 };
121940
121941 /* via l2tp_session_priv() */
121942 @@ -98,10 +98,10 @@ static int l2tp_eth_dev_xmit(struct sk_buff *skb, struct net_device *dev)
121943 int ret = l2tp_xmit_skb(session, skb, session->hdr_len);
121944
121945 if (likely(ret == NET_XMIT_SUCCESS)) {
121946 - atomic_long_add(len, &priv->tx_bytes);
121947 - atomic_long_inc(&priv->tx_packets);
121948 + atomic_long_add_unchecked(len, &priv->tx_bytes);
121949 + atomic_long_inc_unchecked(&priv->tx_packets);
121950 } else {
121951 - atomic_long_inc(&priv->tx_dropped);
121952 + atomic_long_inc_unchecked(&priv->tx_dropped);
121953 }
121954 return NETDEV_TX_OK;
121955 }
121956 @@ -111,12 +111,12 @@ static struct rtnl_link_stats64 *l2tp_eth_get_stats64(struct net_device *dev,
121957 {
121958 struct l2tp_eth *priv = netdev_priv(dev);
121959
121960 - stats->tx_bytes = atomic_long_read(&priv->tx_bytes);
121961 - stats->tx_packets = atomic_long_read(&priv->tx_packets);
121962 - stats->tx_dropped = atomic_long_read(&priv->tx_dropped);
121963 - stats->rx_bytes = atomic_long_read(&priv->rx_bytes);
121964 - stats->rx_packets = atomic_long_read(&priv->rx_packets);
121965 - stats->rx_errors = atomic_long_read(&priv->rx_errors);
121966 + stats->tx_bytes = atomic_long_read_unchecked(&priv->tx_bytes);
121967 + stats->tx_packets = atomic_long_read_unchecked(&priv->tx_packets);
121968 + stats->tx_dropped = atomic_long_read_unchecked(&priv->tx_dropped);
121969 + stats->rx_bytes = atomic_long_read_unchecked(&priv->rx_bytes);
121970 + stats->rx_packets = atomic_long_read_unchecked(&priv->rx_packets);
121971 + stats->rx_errors = atomic_long_read_unchecked(&priv->rx_errors);
121972 return stats;
121973 }
121974
121975 @@ -167,15 +167,15 @@ static void l2tp_eth_dev_recv(struct l2tp_session *session, struct sk_buff *skb,
121976 nf_reset(skb);
121977
121978 if (dev_forward_skb(dev, skb) == NET_RX_SUCCESS) {
121979 - atomic_long_inc(&priv->rx_packets);
121980 - atomic_long_add(data_len, &priv->rx_bytes);
121981 + atomic_long_inc_unchecked(&priv->rx_packets);
121982 + atomic_long_add_unchecked(data_len, &priv->rx_bytes);
121983 } else {
121984 - atomic_long_inc(&priv->rx_errors);
121985 + atomic_long_inc_unchecked(&priv->rx_errors);
121986 }
121987 return;
121988
121989 error:
121990 - atomic_long_inc(&priv->rx_errors);
121991 + atomic_long_inc_unchecked(&priv->rx_errors);
121992 kfree_skb(skb);
121993 }
121994
121995 diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
121996 index 7964993..2c48a3a 100644
121997 --- a/net/l2tp/l2tp_ip.c
121998 +++ b/net/l2tp/l2tp_ip.c
121999 @@ -608,7 +608,7 @@ static struct inet_protosw l2tp_ip_protosw = {
122000 .ops = &l2tp_ip_ops,
122001 };
122002
122003 -static struct net_protocol l2tp_ip_protocol __read_mostly = {
122004 +static const struct net_protocol l2tp_ip_protocol = {
122005 .handler = l2tp_ip_recv,
122006 .netns_ok = 1,
122007 };
122008 diff --git a/net/l2tp/l2tp_ip6.c b/net/l2tp/l2tp_ip6.c
122009 index d1ded37..c0d1e49 100644
122010 --- a/net/l2tp/l2tp_ip6.c
122011 +++ b/net/l2tp/l2tp_ip6.c
122012 @@ -755,7 +755,7 @@ static struct inet_protosw l2tp_ip6_protosw = {
122013 .ops = &l2tp_ip6_ops,
122014 };
122015
122016 -static struct inet6_protocol l2tp_ip6_protocol __read_mostly = {
122017 +static const struct inet6_protocol l2tp_ip6_protocol = {
122018 .handler = l2tp_ip6_recv,
122019 };
122020
122021 diff --git a/net/llc/llc_proc.c b/net/llc/llc_proc.c
122022 index 1a3c7e0..80f8b0c 100644
122023 --- a/net/llc/llc_proc.c
122024 +++ b/net/llc/llc_proc.c
122025 @@ -247,7 +247,7 @@ int __init llc_proc_init(void)
122026 int rc = -ENOMEM;
122027 struct proc_dir_entry *p;
122028
122029 - llc_proc_dir = proc_mkdir("llc", init_net.proc_net);
122030 + llc_proc_dir = proc_mkdir_restrict("llc", init_net.proc_net);
122031 if (!llc_proc_dir)
122032 goto out;
122033
122034 diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
122035 index bf7023f..86a5bc6 100644
122036 --- a/net/mac80211/cfg.c
122037 +++ b/net/mac80211/cfg.c
122038 @@ -580,7 +580,7 @@ static int ieee80211_set_monitor_channel(struct wiphy *wiphy,
122039 ret = ieee80211_vif_use_channel(sdata, chandef,
122040 IEEE80211_CHANCTX_EXCLUSIVE);
122041 }
122042 - } else if (local->open_count == local->monitors) {
122043 + } else if (local_read(&local->open_count) == local->monitors) {
122044 local->_oper_chandef = *chandef;
122045 ieee80211_hw_config(local, 0);
122046 }
122047 @@ -3488,7 +3488,7 @@ static void ieee80211_mgmt_frame_register(struct wiphy *wiphy,
122048 else
122049 local->probe_req_reg--;
122050
122051 - if (!local->open_count)
122052 + if (!local_read(&local->open_count))
122053 break;
122054
122055 ieee80211_queue_work(&local->hw, &local->reconfig_filter);
122056 @@ -3637,8 +3637,8 @@ static int ieee80211_cfg_get_channel(struct wiphy *wiphy,
122057 if (chanctx_conf) {
122058 *chandef = sdata->vif.bss_conf.chandef;
122059 ret = 0;
122060 - } else if (local->open_count > 0 &&
122061 - local->open_count == local->monitors &&
122062 + } else if (local_read(&local->open_count) > 0 &&
122063 + local_read(&local->open_count) == local->monitors &&
122064 sdata->vif.type == NL80211_IFTYPE_MONITOR) {
122065 if (local->use_chanctx)
122066 *chandef = local->monitor_chandef;
122067 diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
122068 index b12f615..a264a60 100644
122069 --- a/net/mac80211/ieee80211_i.h
122070 +++ b/net/mac80211/ieee80211_i.h
122071 @@ -30,6 +30,7 @@
122072 #include <net/ieee80211_radiotap.h>
122073 #include <net/cfg80211.h>
122074 #include <net/mac80211.h>
122075 +#include <asm/local.h>
122076 #include "key.h"
122077 #include "sta_info.h"
122078 #include "debug.h"
122079 @@ -1112,7 +1113,7 @@ struct ieee80211_local {
122080 /* also used to protect ampdu_ac_queue and amdpu_ac_stop_refcnt */
122081 spinlock_t queue_stop_reason_lock;
122082
122083 - int open_count;
122084 + local_t open_count;
122085 int monitors, cooked_mntrs;
122086 /* number of interfaces with corresponding FIF_ flags */
122087 int fif_fcsfail, fif_plcpfail, fif_control, fif_other_bss, fif_pspoll,
122088 diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
122089 index 553ac6d..d2480da 100644
122090 --- a/net/mac80211/iface.c
122091 +++ b/net/mac80211/iface.c
122092 @@ -550,7 +550,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
122093 break;
122094 }
122095
122096 - if (local->open_count == 0) {
122097 + if (local_read(&local->open_count) == 0) {
122098 res = drv_start(local);
122099 if (res)
122100 goto err_del_bss;
122101 @@ -597,7 +597,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
122102 res = drv_add_interface(local, sdata);
122103 if (res)
122104 goto err_stop;
122105 - } else if (local->monitors == 0 && local->open_count == 0) {
122106 + } else if (local->monitors == 0 && local_read(&local->open_count) == 0) {
122107 res = ieee80211_add_virtual_monitor(local);
122108 if (res)
122109 goto err_stop;
122110 @@ -704,7 +704,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
122111 atomic_inc(&local->iff_allmultis);
122112
122113 if (coming_up)
122114 - local->open_count++;
122115 + local_inc(&local->open_count);
122116
122117 if (hw_reconf_flags)
122118 ieee80211_hw_config(local, hw_reconf_flags);
122119 @@ -742,7 +742,7 @@ int ieee80211_do_open(struct wireless_dev *wdev, bool coming_up)
122120 err_del_interface:
122121 drv_remove_interface(local, sdata);
122122 err_stop:
122123 - if (!local->open_count)
122124 + if (!local_read(&local->open_count))
122125 drv_stop(local);
122126 err_del_bss:
122127 sdata->bss = NULL;
122128 @@ -909,7 +909,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
122129 }
122130
122131 if (going_down)
122132 - local->open_count--;
122133 + local_dec(&local->open_count);
122134
122135 switch (sdata->vif.type) {
122136 case NL80211_IFTYPE_AP_VLAN:
122137 @@ -978,7 +978,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
122138 atomic_set(&sdata->txqs_len[txqi->txq.ac], 0);
122139 }
122140
122141 - if (local->open_count == 0)
122142 + if (local_read(&local->open_count) == 0)
122143 ieee80211_clear_tx_pending(local);
122144
122145 /*
122146 @@ -1021,7 +1021,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
122147 if (cancel_scan)
122148 flush_delayed_work(&local->scan_work);
122149
122150 - if (local->open_count == 0) {
122151 + if (local_read(&local->open_count) == 0) {
122152 ieee80211_stop_device(local);
122153
122154 /* no reconfiguring after stop! */
122155 @@ -1032,7 +1032,7 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
122156 ieee80211_configure_filter(local);
122157 ieee80211_hw_config(local, hw_reconf_flags);
122158
122159 - if (local->monitors == local->open_count)
122160 + if (local->monitors == local_read(&local->open_count))
122161 ieee80211_add_virtual_monitor(local);
122162 }
122163
122164 @@ -1884,8 +1884,8 @@ void ieee80211_remove_interfaces(struct ieee80211_local *local)
122165 */
122166 cfg80211_shutdown_all_interfaces(local->hw.wiphy);
122167
122168 - WARN(local->open_count, "%s: open count remains %d\n",
122169 - wiphy_name(local->hw.wiphy), local->open_count);
122170 + WARN(local_read(&local->open_count), "%s: open count remains %ld\n",
122171 + wiphy_name(local->hw.wiphy), local_read(&local->open_count));
122172
122173 mutex_lock(&local->iflist_mtx);
122174 list_for_each_entry_safe(sdata, tmp, &local->interfaces, list) {
122175 diff --git a/net/mac80211/main.c b/net/mac80211/main.c
122176 index 3c63468..b5c285f 100644
122177 --- a/net/mac80211/main.c
122178 +++ b/net/mac80211/main.c
122179 @@ -172,7 +172,7 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
122180 changed &= ~(IEEE80211_CONF_CHANGE_CHANNEL |
122181 IEEE80211_CONF_CHANGE_POWER);
122182
122183 - if (changed && local->open_count) {
122184 + if (changed && local_read(&local->open_count)) {
122185 ret = drv_config(local, changed);
122186 /*
122187 * Goal:
122188 diff --git a/net/mac80211/pm.c b/net/mac80211/pm.c
122189 index b676b9f..395dd95 100644
122190 --- a/net/mac80211/pm.c
122191 +++ b/net/mac80211/pm.c
122192 @@ -12,7 +12,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
122193 struct ieee80211_sub_if_data *sdata;
122194 struct sta_info *sta;
122195
122196 - if (!local->open_count)
122197 + if (!local_read(&local->open_count))
122198 goto suspend;
122199
122200 ieee80211_scan_cancel(local);
122201 @@ -166,7 +166,7 @@ int __ieee80211_suspend(struct ieee80211_hw *hw, struct cfg80211_wowlan *wowlan)
122202 WARN_ON(!list_empty(&local->chanctx_list));
122203
122204 /* stop hardware - this must stop RX */
122205 - if (local->open_count)
122206 + if (local_read(&local->open_count))
122207 ieee80211_stop_device(local);
122208
122209 suspend:
122210 diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
122211 index fda33f9..0e7d4c0 100644
122212 --- a/net/mac80211/rate.c
122213 +++ b/net/mac80211/rate.c
122214 @@ -730,7 +730,7 @@ int ieee80211_init_rate_ctrl_alg(struct ieee80211_local *local,
122215
122216 ASSERT_RTNL();
122217
122218 - if (local->open_count)
122219 + if (local_read(&local->open_count))
122220 return -EBUSY;
122221
122222 if (ieee80211_hw_check(&local->hw, HAS_RATE_CONTROL)) {
122223 diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
122224 index 666ddac..0cad93b 100644
122225 --- a/net/mac80211/sta_info.c
122226 +++ b/net/mac80211/sta_info.c
122227 @@ -341,7 +341,7 @@ struct sta_info *sta_info_alloc(struct ieee80211_sub_if_data *sdata,
122228 int size = sizeof(struct txq_info) +
122229 ALIGN(hw->txq_data_size, sizeof(void *));
122230
122231 - txq_data = kcalloc(ARRAY_SIZE(sta->sta.txq), size, gfp);
122232 + txq_data = kcalloc(size, ARRAY_SIZE(sta->sta.txq), gfp);
122233 if (!txq_data)
122234 goto free;
122235
122236 diff --git a/net/mac80211/util.c b/net/mac80211/util.c
122237 index 43e5aad..d117c3a 100644
122238 --- a/net/mac80211/util.c
122239 +++ b/net/mac80211/util.c
122240 @@ -1761,7 +1761,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
122241 bool sched_scan_stopped = false;
122242
122243 /* nothing to do if HW shouldn't run */
122244 - if (!local->open_count)
122245 + if (!local_read(&local->open_count))
122246 goto wake_up;
122247
122248 #ifdef CONFIG_PM
122249 @@ -2033,7 +2033,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
122250 local->in_reconfig = false;
122251 barrier();
122252
122253 - if (local->monitors == local->open_count && local->monitors > 0)
122254 + if (local->monitors == local_read(&local->open_count) && local->monitors > 0)
122255 ieee80211_add_virtual_monitor(local);
122256
122257 /*
122258 @@ -2088,7 +2088,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
122259 * If this is for hw restart things are still running.
122260 * We may want to change that later, however.
122261 */
122262 - if (local->open_count && (!local->suspended || reconfig_due_to_wowlan))
122263 + if (local_read(&local->open_count) && (!local->suspended || reconfig_due_to_wowlan))
122264 drv_reconfig_complete(local, IEEE80211_RECONFIG_TYPE_RESTART);
122265
122266 if (!local->suspended)
122267 @@ -2112,7 +2112,7 @@ int ieee80211_reconfig(struct ieee80211_local *local)
122268 flush_delayed_work(&local->scan_work);
122269 }
122270
122271 - if (local->open_count && !reconfig_due_to_wowlan)
122272 + if (local_read(&local->open_count) && !reconfig_due_to_wowlan)
122273 drv_reconfig_complete(local, IEEE80211_RECONFIG_TYPE_SUSPEND);
122274
122275 list_for_each_entry(sdata, &local->interfaces, list) {
122276 diff --git a/net/mpls/af_mpls.c b/net/mpls/af_mpls.c
122277 index 1f93a59..96faa29 100644
122278 --- a/net/mpls/af_mpls.c
122279 +++ b/net/mpls/af_mpls.c
122280 @@ -456,7 +456,7 @@ static int mpls_dev_sysctl_register(struct net_device *dev,
122281 struct mpls_dev *mdev)
122282 {
122283 char path[sizeof("net/mpls/conf/") + IFNAMSIZ];
122284 - struct ctl_table *table;
122285 + ctl_table_no_const *table;
122286 int i;
122287
122288 table = kmemdup(&mpls_dev_table, sizeof(mpls_dev_table), GFP_KERNEL);
122289 @@ -1025,7 +1025,7 @@ static int mpls_platform_labels(struct ctl_table *table, int write,
122290 struct net *net = table->data;
122291 int platform_labels = net->mpls.platform_labels;
122292 int ret;
122293 - struct ctl_table tmp = {
122294 + ctl_table_no_const tmp = {
122295 .procname = table->procname,
122296 .data = &platform_labels,
122297 .maxlen = sizeof(int),
122298 @@ -1055,7 +1055,7 @@ static const struct ctl_table mpls_table[] = {
122299
122300 static int mpls_net_init(struct net *net)
122301 {
122302 - struct ctl_table *table;
122303 + ctl_table_no_const *table;
122304
122305 net->mpls.platform_labels = 0;
122306 net->mpls.platform_label = NULL;
122307 diff --git a/net/netfilter/Kconfig b/net/netfilter/Kconfig
122308 index 6eae69a..ccccba8 100644
122309 --- a/net/netfilter/Kconfig
122310 +++ b/net/netfilter/Kconfig
122311 @@ -1125,6 +1125,16 @@ config NETFILTER_XT_MATCH_ESP
122312
122313 To compile it as a module, choose M here. If unsure, say N.
122314
122315 +config NETFILTER_XT_MATCH_GRADM
122316 + tristate '"gradm" match support'
122317 + depends on NETFILTER_XTABLES && NETFILTER_ADVANCED
122318 + depends on GRKERNSEC && !GRKERNSEC_NO_RBAC
122319 + ---help---
122320 + The gradm match allows to match on grsecurity RBAC being enabled.
122321 + It is useful when iptables rules are applied early on bootup to
122322 + prevent connections to the machine (except from a trusted host)
122323 + while the RBAC system is disabled.
122324 +
122325 config NETFILTER_XT_MATCH_HASHLIMIT
122326 tristate '"hashlimit" match support'
122327 depends on IP6_NF_IPTABLES || IP6_NF_IPTABLES=n
122328 diff --git a/net/netfilter/Makefile b/net/netfilter/Makefile
122329 index 70d026d..c400590 100644
122330 --- a/net/netfilter/Makefile
122331 +++ b/net/netfilter/Makefile
122332 @@ -140,6 +140,7 @@ obj-$(CONFIG_NETFILTER_XT_MATCH_DEVGROUP) += xt_devgroup.o
122333 obj-$(CONFIG_NETFILTER_XT_MATCH_DSCP) += xt_dscp.o
122334 obj-$(CONFIG_NETFILTER_XT_MATCH_ECN) += xt_ecn.o
122335 obj-$(CONFIG_NETFILTER_XT_MATCH_ESP) += xt_esp.o
122336 +obj-$(CONFIG_NETFILTER_XT_MATCH_GRADM) += xt_gradm.o
122337 obj-$(CONFIG_NETFILTER_XT_MATCH_HASHLIMIT) += xt_hashlimit.o
122338 obj-$(CONFIG_NETFILTER_XT_MATCH_HELPER) += xt_helper.o
122339 obj-$(CONFIG_NETFILTER_XT_MATCH_HL) += xt_hl.o
122340 diff --git a/net/netfilter/ipset/ip_set_core.c b/net/netfilter/ipset/ip_set_core.c
122341 index 338b404..839dcb0 100644
122342 --- a/net/netfilter/ipset/ip_set_core.c
122343 +++ b/net/netfilter/ipset/ip_set_core.c
122344 @@ -1998,7 +1998,7 @@ done:
122345 return ret;
122346 }
122347
122348 -static struct nf_sockopt_ops so_set __read_mostly = {
122349 +static struct nf_sockopt_ops so_set = {
122350 .pf = PF_INET,
122351 .get_optmin = SO_IP_SET,
122352 .get_optmax = SO_IP_SET + 1,
122353 diff --git a/net/netfilter/ipvs/ip_vs_conn.c b/net/netfilter/ipvs/ip_vs_conn.c
122354 index b0f7b62..0541842 100644
122355 --- a/net/netfilter/ipvs/ip_vs_conn.c
122356 +++ b/net/netfilter/ipvs/ip_vs_conn.c
122357 @@ -572,7 +572,7 @@ ip_vs_bind_dest(struct ip_vs_conn *cp, struct ip_vs_dest *dest)
122358 /* Increase the refcnt counter of the dest */
122359 ip_vs_dest_hold(dest);
122360
122361 - conn_flags = atomic_read(&dest->conn_flags);
122362 + conn_flags = atomic_read_unchecked(&dest->conn_flags);
122363 if (cp->protocol != IPPROTO_UDP)
122364 conn_flags &= ~IP_VS_CONN_F_ONE_PACKET;
122365 flags = cp->flags;
122366 @@ -922,7 +922,7 @@ ip_vs_conn_new(const struct ip_vs_conn_param *p, int dest_af,
122367
122368 cp->control = NULL;
122369 atomic_set(&cp->n_control, 0);
122370 - atomic_set(&cp->in_pkts, 0);
122371 + atomic_set_unchecked(&cp->in_pkts, 0);
122372
122373 cp->packet_xmit = NULL;
122374 cp->app = NULL;
122375 @@ -1229,7 +1229,7 @@ static inline int todrop_entry(struct ip_vs_conn *cp)
122376
122377 /* Don't drop the entry if its number of incoming packets is not
122378 located in [0, 8] */
122379 - i = atomic_read(&cp->in_pkts);
122380 + i = atomic_read_unchecked(&cp->in_pkts);
122381 if (i > 8 || i < 0) return 0;
122382
122383 if (!todrop_rate[i]) return 0;
122384 diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
122385 index 38fbc19..4272cb4 100644
122386 --- a/net/netfilter/ipvs/ip_vs_core.c
122387 +++ b/net/netfilter/ipvs/ip_vs_core.c
122388 @@ -586,7 +586,7 @@ int ip_vs_leave(struct ip_vs_service *svc, struct sk_buff *skb,
122389 ret = cp->packet_xmit(skb, cp, pd->pp, iph);
122390 /* do not touch skb anymore */
122391
122392 - atomic_inc(&cp->in_pkts);
122393 + atomic_inc_unchecked(&cp->in_pkts);
122394 ip_vs_conn_put(cp);
122395 return ret;
122396 }
122397 @@ -1762,7 +1762,7 @@ ip_vs_in(unsigned int hooknum, struct sk_buff *skb, int af)
122398 if (cp->flags & IP_VS_CONN_F_ONE_PACKET)
122399 pkts = sysctl_sync_threshold(ipvs);
122400 else
122401 - pkts = atomic_add_return(1, &cp->in_pkts);
122402 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
122403
122404 if (ipvs->sync_state & IP_VS_STATE_MASTER)
122405 ip_vs_sync_conn(net, cp, pkts);
122406 diff --git a/net/netfilter/ipvs/ip_vs_ctl.c b/net/netfilter/ipvs/ip_vs_ctl.c
122407 index 24c5542..e9fd3e5 100644
122408 --- a/net/netfilter/ipvs/ip_vs_ctl.c
122409 +++ b/net/netfilter/ipvs/ip_vs_ctl.c
122410 @@ -814,7 +814,7 @@ __ip_vs_update_dest(struct ip_vs_service *svc, struct ip_vs_dest *dest,
122411 */
122412 ip_vs_rs_hash(ipvs, dest);
122413 }
122414 - atomic_set(&dest->conn_flags, conn_flags);
122415 + atomic_set_unchecked(&dest->conn_flags, conn_flags);
122416
122417 /* bind the service */
122418 old_svc = rcu_dereference_protected(dest->svc, 1);
122419 @@ -1694,7 +1694,7 @@ proc_do_sync_ports(struct ctl_table *table, int write,
122420 * align with netns init in ip_vs_control_net_init()
122421 */
122422
122423 -static struct ctl_table vs_vars[] = {
122424 +static ctl_table_no_const vs_vars[] __read_only = {
122425 {
122426 .procname = "amemthresh",
122427 .maxlen = sizeof(int),
122428 @@ -2036,7 +2036,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
122429 " %-7s %-6d %-10d %-10d\n",
122430 &dest->addr.in6,
122431 ntohs(dest->port),
122432 - ip_vs_fwd_name(atomic_read(&dest->conn_flags)),
122433 + ip_vs_fwd_name(atomic_read_unchecked(&dest->conn_flags)),
122434 atomic_read(&dest->weight),
122435 atomic_read(&dest->activeconns),
122436 atomic_read(&dest->inactconns));
122437 @@ -2047,7 +2047,7 @@ static int ip_vs_info_seq_show(struct seq_file *seq, void *v)
122438 "%-7s %-6d %-10d %-10d\n",
122439 ntohl(dest->addr.ip),
122440 ntohs(dest->port),
122441 - ip_vs_fwd_name(atomic_read(&dest->conn_flags)),
122442 + ip_vs_fwd_name(atomic_read_unchecked(&dest->conn_flags)),
122443 atomic_read(&dest->weight),
122444 atomic_read(&dest->activeconns),
122445 atomic_read(&dest->inactconns));
122446 @@ -2546,7 +2546,7 @@ __ip_vs_get_dest_entries(struct net *net, const struct ip_vs_get_dests *get,
122447
122448 entry.addr = dest->addr.ip;
122449 entry.port = dest->port;
122450 - entry.conn_flags = atomic_read(&dest->conn_flags);
122451 + entry.conn_flags = atomic_read_unchecked(&dest->conn_flags);
122452 entry.weight = atomic_read(&dest->weight);
122453 entry.u_threshold = dest->u_threshold;
122454 entry.l_threshold = dest->l_threshold;
122455 @@ -3121,7 +3121,7 @@ static int ip_vs_genl_fill_dest(struct sk_buff *skb, struct ip_vs_dest *dest)
122456 if (nla_put(skb, IPVS_DEST_ATTR_ADDR, sizeof(dest->addr), &dest->addr) ||
122457 nla_put_be16(skb, IPVS_DEST_ATTR_PORT, dest->port) ||
122458 nla_put_u32(skb, IPVS_DEST_ATTR_FWD_METHOD,
122459 - (atomic_read(&dest->conn_flags) &
122460 + (atomic_read_unchecked(&dest->conn_flags) &
122461 IP_VS_CONN_F_FWD_MASK)) ||
122462 nla_put_u32(skb, IPVS_DEST_ATTR_WEIGHT,
122463 atomic_read(&dest->weight)) ||
122464 @@ -3759,7 +3759,7 @@ static int __net_init ip_vs_control_net_init_sysctl(struct net *net)
122465 {
122466 int idx;
122467 struct netns_ipvs *ipvs = net_ipvs(net);
122468 - struct ctl_table *tbl;
122469 + ctl_table_no_const *tbl;
122470
122471 atomic_set(&ipvs->dropentry, 0);
122472 spin_lock_init(&ipvs->dropentry_lock);
122473 diff --git a/net/netfilter/ipvs/ip_vs_lblc.c b/net/netfilter/ipvs/ip_vs_lblc.c
122474 index 127f140..553d652 100644
122475 --- a/net/netfilter/ipvs/ip_vs_lblc.c
122476 +++ b/net/netfilter/ipvs/ip_vs_lblc.c
122477 @@ -118,7 +118,7 @@ struct ip_vs_lblc_table {
122478 * IPVS LBLC sysctl table
122479 */
122480 #ifdef CONFIG_SYSCTL
122481 -static struct ctl_table vs_vars_table[] = {
122482 +static ctl_table_no_const vs_vars_table[] __read_only = {
122483 {
122484 .procname = "lblc_expiration",
122485 .data = NULL,
122486 diff --git a/net/netfilter/ipvs/ip_vs_lblcr.c b/net/netfilter/ipvs/ip_vs_lblcr.c
122487 index 2229d2d..b32b785 100644
122488 --- a/net/netfilter/ipvs/ip_vs_lblcr.c
122489 +++ b/net/netfilter/ipvs/ip_vs_lblcr.c
122490 @@ -289,7 +289,7 @@ struct ip_vs_lblcr_table {
122491 * IPVS LBLCR sysctl table
122492 */
122493
122494 -static struct ctl_table vs_vars_table[] = {
122495 +static ctl_table_no_const vs_vars_table[] __read_only = {
122496 {
122497 .procname = "lblcr_expiration",
122498 .data = NULL,
122499 diff --git a/net/netfilter/ipvs/ip_vs_sync.c b/net/netfilter/ipvs/ip_vs_sync.c
122500 index d99ad93..09bd6dc 100644
122501 --- a/net/netfilter/ipvs/ip_vs_sync.c
122502 +++ b/net/netfilter/ipvs/ip_vs_sync.c
122503 @@ -609,7 +609,7 @@ static void ip_vs_sync_conn_v0(struct net *net, struct ip_vs_conn *cp,
122504 cp = cp->control;
122505 if (cp) {
122506 if (cp->flags & IP_VS_CONN_F_TEMPLATE)
122507 - pkts = atomic_add_return(1, &cp->in_pkts);
122508 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
122509 else
122510 pkts = sysctl_sync_threshold(ipvs);
122511 ip_vs_sync_conn(net, cp, pkts);
122512 @@ -771,7 +771,7 @@ control:
122513 if (!cp)
122514 return;
122515 if (cp->flags & IP_VS_CONN_F_TEMPLATE)
122516 - pkts = atomic_add_return(1, &cp->in_pkts);
122517 + pkts = atomic_add_return_unchecked(1, &cp->in_pkts);
122518 else
122519 pkts = sysctl_sync_threshold(ipvs);
122520 goto sloop;
122521 @@ -919,7 +919,7 @@ static void ip_vs_proc_conn(struct net *net, struct ip_vs_conn_param *param,
122522
122523 if (opt)
122524 memcpy(&cp->in_seq, opt, sizeof(*opt));
122525 - atomic_set(&cp->in_pkts, sysctl_sync_threshold(ipvs));
122526 + atomic_set_unchecked(&cp->in_pkts, sysctl_sync_threshold(ipvs));
122527 cp->state = state;
122528 cp->old_state = cp->state;
122529 /*
122530 diff --git a/net/netfilter/ipvs/ip_vs_xmit.c b/net/netfilter/ipvs/ip_vs_xmit.c
122531 index 258a0b0..2082f50 100644
122532 --- a/net/netfilter/ipvs/ip_vs_xmit.c
122533 +++ b/net/netfilter/ipvs/ip_vs_xmit.c
122534 @@ -1259,7 +1259,7 @@ ip_vs_icmp_xmit(struct sk_buff *skb, struct ip_vs_conn *cp,
122535 else
122536 rc = NF_ACCEPT;
122537 /* do not touch skb anymore */
122538 - atomic_inc(&cp->in_pkts);
122539 + atomic_inc_unchecked(&cp->in_pkts);
122540 goto out;
122541 }
122542
122543 @@ -1352,7 +1352,7 @@ ip_vs_icmp_xmit_v6(struct sk_buff *skb, struct ip_vs_conn *cp,
122544 else
122545 rc = NF_ACCEPT;
122546 /* do not touch skb anymore */
122547 - atomic_inc(&cp->in_pkts);
122548 + atomic_inc_unchecked(&cp->in_pkts);
122549 goto out;
122550 }
122551
122552 diff --git a/net/netfilter/nf_conntrack_acct.c b/net/netfilter/nf_conntrack_acct.c
122553 index 45da11a..ef3e5dc 100644
122554 --- a/net/netfilter/nf_conntrack_acct.c
122555 +++ b/net/netfilter/nf_conntrack_acct.c
122556 @@ -64,7 +64,7 @@ static struct nf_ct_ext_type acct_extend __read_mostly = {
122557 #ifdef CONFIG_SYSCTL
122558 static int nf_conntrack_acct_init_sysctl(struct net *net)
122559 {
122560 - struct ctl_table *table;
122561 + ctl_table_no_const *table;
122562
122563 table = kmemdup(acct_sysctl_table, sizeof(acct_sysctl_table),
122564 GFP_KERNEL);
122565 diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
122566 index 0625a42..b2c15f4 100644
122567 --- a/net/netfilter/nf_conntrack_core.c
122568 +++ b/net/netfilter/nf_conntrack_core.c
122569 @@ -1754,6 +1754,10 @@ void nf_conntrack_init_end(void)
122570 #define DYING_NULLS_VAL ((1<<30)+1)
122571 #define TEMPLATE_NULLS_VAL ((1<<30)+2)
122572
122573 +#ifdef CONFIG_GRKERNSEC_HIDESYM
122574 +static atomic_unchecked_t conntrack_cache_id = ATOMIC_INIT(0);
122575 +#endif
122576 +
122577 int nf_conntrack_init_net(struct net *net)
122578 {
122579 int ret = -ENOMEM;
122580 @@ -1778,7 +1782,11 @@ int nf_conntrack_init_net(struct net *net)
122581 if (!net->ct.stat)
122582 goto err_pcpu_lists;
122583
122584 +#ifdef CONFIG_GRKERNSEC_HIDESYM
122585 + net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%08x", atomic_inc_return_unchecked(&conntrack_cache_id));
122586 +#else
122587 net->ct.slabname = kasprintf(GFP_KERNEL, "nf_conntrack_%p", net);
122588 +#endif
122589 if (!net->ct.slabname)
122590 goto err_slabname;
122591
122592 diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
122593 index 4e78c57..ec8fb74 100644
122594 --- a/net/netfilter/nf_conntrack_ecache.c
122595 +++ b/net/netfilter/nf_conntrack_ecache.c
122596 @@ -264,7 +264,7 @@ static struct nf_ct_ext_type event_extend __read_mostly = {
122597 #ifdef CONFIG_SYSCTL
122598 static int nf_conntrack_event_init_sysctl(struct net *net)
122599 {
122600 - struct ctl_table *table;
122601 + ctl_table_no_const *table;
122602
122603 table = kmemdup(event_sysctl_table, sizeof(event_sysctl_table),
122604 GFP_KERNEL);
122605 diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
122606 index bd9d315..989947e 100644
122607 --- a/net/netfilter/nf_conntrack_helper.c
122608 +++ b/net/netfilter/nf_conntrack_helper.c
122609 @@ -57,7 +57,7 @@ static struct ctl_table helper_sysctl_table[] = {
122610
122611 static int nf_conntrack_helper_init_sysctl(struct net *net)
122612 {
122613 - struct ctl_table *table;
122614 + ctl_table_no_const *table;
122615
122616 table = kmemdup(helper_sysctl_table, sizeof(helper_sysctl_table),
122617 GFP_KERNEL);
122618 diff --git a/net/netfilter/nf_conntrack_proto.c b/net/netfilter/nf_conntrack_proto.c
122619 index b65d586..beec902 100644
122620 --- a/net/netfilter/nf_conntrack_proto.c
122621 +++ b/net/netfilter/nf_conntrack_proto.c
122622 @@ -52,7 +52,7 @@ nf_ct_register_sysctl(struct net *net,
122623
122624 static void
122625 nf_ct_unregister_sysctl(struct ctl_table_header **header,
122626 - struct ctl_table **table,
122627 + ctl_table_no_const **table,
122628 unsigned int users)
122629 {
122630 if (users > 0)
122631 diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
122632 index fc823fa..8311af3 100644
122633 --- a/net/netfilter/nf_conntrack_standalone.c
122634 +++ b/net/netfilter/nf_conntrack_standalone.c
122635 @@ -468,7 +468,7 @@ static struct ctl_table nf_ct_netfilter_table[] = {
122636
122637 static int nf_conntrack_standalone_init_sysctl(struct net *net)
122638 {
122639 - struct ctl_table *table;
122640 + ctl_table_no_const *table;
122641
122642 table = kmemdup(nf_ct_sysctl_table, sizeof(nf_ct_sysctl_table),
122643 GFP_KERNEL);
122644 diff --git a/net/netfilter/nf_conntrack_timestamp.c b/net/netfilter/nf_conntrack_timestamp.c
122645 index 7a394df..bd91a8a 100644
122646 --- a/net/netfilter/nf_conntrack_timestamp.c
122647 +++ b/net/netfilter/nf_conntrack_timestamp.c
122648 @@ -42,7 +42,7 @@ static struct nf_ct_ext_type tstamp_extend __read_mostly = {
122649 #ifdef CONFIG_SYSCTL
122650 static int nf_conntrack_tstamp_init_sysctl(struct net *net)
122651 {
122652 - struct ctl_table *table;
122653 + ctl_table_no_const *table;
122654
122655 table = kmemdup(tstamp_sysctl_table, sizeof(tstamp_sysctl_table),
122656 GFP_KERNEL);
122657 diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
122658 index a5d41df..1ff49be 100644
122659 --- a/net/netfilter/nf_log.c
122660 +++ b/net/netfilter/nf_log.c
122661 @@ -391,7 +391,7 @@ static const struct file_operations nflog_file_ops = {
122662
122663 #ifdef CONFIG_SYSCTL
122664 static char nf_log_sysctl_fnames[NFPROTO_NUMPROTO-NFPROTO_UNSPEC][3];
122665 -static struct ctl_table nf_log_sysctl_table[NFPROTO_NUMPROTO+1];
122666 +static ctl_table_no_const nf_log_sysctl_table[NFPROTO_NUMPROTO+1] __read_only;
122667
122668 static int nf_log_proc_dostring(struct ctl_table *table, int write,
122669 void __user *buffer, size_t *lenp, loff_t *ppos)
122670 @@ -422,13 +422,15 @@ static int nf_log_proc_dostring(struct ctl_table *table, int write,
122671 rcu_assign_pointer(net->nf.nf_loggers[tindex], logger);
122672 mutex_unlock(&nf_log_mutex);
122673 } else {
122674 + ctl_table_no_const nf_log_table = *table;
122675 +
122676 mutex_lock(&nf_log_mutex);
122677 logger = nft_log_dereference(net->nf.nf_loggers[tindex]);
122678 if (!logger)
122679 - table->data = "NONE";
122680 + nf_log_table.data = "NONE";
122681 else
122682 - table->data = logger->name;
122683 - r = proc_dostring(table, write, buffer, lenp, ppos);
122684 + nf_log_table.data = logger->name;
122685 + r = proc_dostring(&nf_log_table, write, buffer, lenp, ppos);
122686 mutex_unlock(&nf_log_mutex);
122687 }
122688
122689 diff --git a/net/netfilter/nf_sockopt.c b/net/netfilter/nf_sockopt.c
122690 index c68c1e5..8b5d670 100644
122691 --- a/net/netfilter/nf_sockopt.c
122692 +++ b/net/netfilter/nf_sockopt.c
122693 @@ -43,7 +43,7 @@ int nf_register_sockopt(struct nf_sockopt_ops *reg)
122694 }
122695 }
122696
122697 - list_add(&reg->list, &nf_sockopts);
122698 + pax_list_add((struct list_head *)&reg->list, &nf_sockopts);
122699 out:
122700 mutex_unlock(&nf_sockopt_mutex);
122701 return ret;
122702 @@ -53,7 +53,7 @@ EXPORT_SYMBOL(nf_register_sockopt);
122703 void nf_unregister_sockopt(struct nf_sockopt_ops *reg)
122704 {
122705 mutex_lock(&nf_sockopt_mutex);
122706 - list_del(&reg->list);
122707 + pax_list_del((struct list_head *)&reg->list);
122708 mutex_unlock(&nf_sockopt_mutex);
122709 }
122710 EXPORT_SYMBOL(nf_unregister_sockopt);
122711 diff --git a/net/netfilter/nfnetlink_log.c b/net/netfilter/nfnetlink_log.c
122712 index 4670821..a6c3c47d 100644
122713 --- a/net/netfilter/nfnetlink_log.c
122714 +++ b/net/netfilter/nfnetlink_log.c
122715 @@ -84,7 +84,7 @@ static int nfnl_log_net_id __read_mostly;
122716 struct nfnl_log_net {
122717 spinlock_t instances_lock;
122718 struct hlist_head instance_table[INSTANCE_BUCKETS];
122719 - atomic_t global_seq;
122720 + atomic_unchecked_t global_seq;
122721 };
122722
122723 static struct nfnl_log_net *nfnl_log_pernet(struct net *net)
122724 @@ -572,7 +572,7 @@ __build_packet_message(struct nfnl_log_net *log,
122725 /* global sequence number */
122726 if ((inst->flags & NFULNL_CFG_F_SEQ_GLOBAL) &&
122727 nla_put_be32(inst->skb, NFULA_SEQ_GLOBAL,
122728 - htonl(atomic_inc_return(&log->global_seq))))
122729 + htonl(atomic_inc_return_unchecked(&log->global_seq))))
122730 goto nla_put_failure;
122731
122732 if (data_len) {
122733 diff --git a/net/netfilter/nft_compat.c b/net/netfilter/nft_compat.c
122734 index 9c8fab0..5080c7c 100644
122735 --- a/net/netfilter/nft_compat.c
122736 +++ b/net/netfilter/nft_compat.c
122737 @@ -322,14 +322,7 @@ static void nft_match_eval(const struct nft_expr *expr,
122738 return;
122739 }
122740
122741 - switch (ret ? 1 : 0) {
122742 - case 1:
122743 - regs->verdict.code = NFT_CONTINUE;
122744 - break;
122745 - case 0:
122746 - regs->verdict.code = NFT_BREAK;
122747 - break;
122748 - }
122749 + regs->verdict.code = ret ? NFT_CONTINUE : NFT_BREAK;
122750 }
122751
122752 static const struct nla_policy nft_match_policy[NFTA_MATCH_MAX + 1] = {
122753 diff --git a/net/netfilter/xt_gradm.c b/net/netfilter/xt_gradm.c
122754 new file mode 100644
122755 index 0000000..c566332
122756 --- /dev/null
122757 +++ b/net/netfilter/xt_gradm.c
122758 @@ -0,0 +1,51 @@
122759 +/*
122760 + * gradm match for netfilter
122761 + * Copyright © Zbigniew Krzystolik, 2010
122762 + *
122763 + * This program is free software; you can redistribute it and/or modify
122764 + * it under the terms of the GNU General Public License; either version
122765 + * 2 or 3 as published by the Free Software Foundation.
122766 + */
122767 +#include <linux/module.h>
122768 +#include <linux/moduleparam.h>
122769 +#include <linux/skbuff.h>
122770 +#include <linux/netfilter/x_tables.h>
122771 +#include <linux/grsecurity.h>
122772 +#include <linux/netfilter/xt_gradm.h>
122773 +
122774 +static bool
122775 +gradm_mt(const struct sk_buff *skb, struct xt_action_param *par)
122776 +{
122777 + const struct xt_gradm_mtinfo *info = par->matchinfo;
122778 + bool retval = false;
122779 + if (gr_acl_is_enabled())
122780 + retval = true;
122781 + return retval ^ info->invflags;
122782 +}
122783 +
122784 +static struct xt_match gradm_mt_reg __read_mostly = {
122785 + .name = "gradm",
122786 + .revision = 0,
122787 + .family = NFPROTO_UNSPEC,
122788 + .match = gradm_mt,
122789 + .matchsize = XT_ALIGN(sizeof(struct xt_gradm_mtinfo)),
122790 + .me = THIS_MODULE,
122791 +};
122792 +
122793 +static int __init gradm_mt_init(void)
122794 +{
122795 + return xt_register_match(&gradm_mt_reg);
122796 +}
122797 +
122798 +static void __exit gradm_mt_exit(void)
122799 +{
122800 + xt_unregister_match(&gradm_mt_reg);
122801 +}
122802 +
122803 +module_init(gradm_mt_init);
122804 +module_exit(gradm_mt_exit);
122805 +MODULE_AUTHOR("Zbigniew Krzystolik <zbyniu@destrukcja.pl>");
122806 +MODULE_DESCRIPTION("Xtables: Grsecurity RBAC match");
122807 +MODULE_LICENSE("GPL");
122808 +MODULE_ALIAS("ipt_gradm");
122809 +MODULE_ALIAS("ip6t_gradm");
122810 diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c
122811 index 1786968..1ec6dac 100644
122812 --- a/net/netfilter/xt_hashlimit.c
122813 +++ b/net/netfilter/xt_hashlimit.c
122814 @@ -869,11 +869,11 @@ static int __net_init hashlimit_proc_net_init(struct net *net)
122815 {
122816 struct hashlimit_net *hashlimit_net = hashlimit_pernet(net);
122817
122818 - hashlimit_net->ipt_hashlimit = proc_mkdir("ipt_hashlimit", net->proc_net);
122819 + hashlimit_net->ipt_hashlimit = proc_mkdir_restrict("ipt_hashlimit", net->proc_net);
122820 if (!hashlimit_net->ipt_hashlimit)
122821 return -ENOMEM;
122822 #if IS_ENABLED(CONFIG_IP6_NF_IPTABLES)
122823 - hashlimit_net->ip6t_hashlimit = proc_mkdir("ip6t_hashlimit", net->proc_net);
122824 + hashlimit_net->ip6t_hashlimit = proc_mkdir_restrict("ip6t_hashlimit", net->proc_net);
122825 if (!hashlimit_net->ip6t_hashlimit) {
122826 remove_proc_entry("ipt_hashlimit", net->proc_net);
122827 return -ENOMEM;
122828 diff --git a/net/netfilter/xt_recent.c b/net/netfilter/xt_recent.c
122829 index 45e1b30..a764f94 100644
122830 --- a/net/netfilter/xt_recent.c
122831 +++ b/net/netfilter/xt_recent.c
122832 @@ -642,7 +642,7 @@ static int __net_init recent_proc_net_init(struct net *net)
122833 {
122834 struct recent_net *recent_net = recent_pernet(net);
122835
122836 - recent_net->xt_recent = proc_mkdir("xt_recent", net->proc_net);
122837 + recent_net->xt_recent = proc_mkdir_restrict("xt_recent", net->proc_net);
122838 if (!recent_net->xt_recent)
122839 return -ENOMEM;
122840 return 0;
122841 diff --git a/net/netfilter/xt_statistic.c b/net/netfilter/xt_statistic.c
122842 index 11de55e..f25e448 100644
122843 --- a/net/netfilter/xt_statistic.c
122844 +++ b/net/netfilter/xt_statistic.c
122845 @@ -19,7 +19,7 @@
122846 #include <linux/module.h>
122847
122848 struct xt_statistic_priv {
122849 - atomic_t count;
122850 + atomic_unchecked_t count;
122851 } ____cacheline_aligned_in_smp;
122852
122853 MODULE_LICENSE("GPL");
122854 @@ -42,9 +42,9 @@ statistic_mt(const struct sk_buff *skb, struct xt_action_param *par)
122855 break;
122856 case XT_STATISTIC_MODE_NTH:
122857 do {
122858 - oval = atomic_read(&info->master->count);
122859 + oval = atomic_read_unchecked(&info->master->count);
122860 nval = (oval == info->u.nth.every) ? 0 : oval + 1;
122861 - } while (atomic_cmpxchg(&info->master->count, oval, nval) != oval);
122862 + } while (atomic_cmpxchg_unchecked(&info->master->count, oval, nval) != oval);
122863 if (nval == 0)
122864 ret = !ret;
122865 break;
122866 @@ -64,7 +64,7 @@ static int statistic_mt_check(const struct xt_mtchk_param *par)
122867 info->master = kzalloc(sizeof(*info->master), GFP_KERNEL);
122868 if (info->master == NULL)
122869 return -ENOMEM;
122870 - atomic_set(&info->master->count, info->u.nth.count);
122871 + atomic_set_unchecked(&info->master->count, info->u.nth.count);
122872
122873 return 0;
122874 }
122875 diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
122876 index a133d16..fafee70 100644
122877 --- a/net/netlink/af_netlink.c
122878 +++ b/net/netlink/af_netlink.c
122879 @@ -286,7 +286,7 @@ static void netlink_overrun(struct sock *sk)
122880 sk->sk_error_report(sk);
122881 }
122882 }
122883 - atomic_inc(&sk->sk_drops);
122884 + atomic_inc_unchecked(&sk->sk_drops);
122885 }
122886
122887 static void netlink_rcv_wake(struct sock *sk)
122888 @@ -3145,7 +3145,7 @@ static int netlink_seq_show(struct seq_file *seq, void *v)
122889 sk_wmem_alloc_get(s),
122890 nlk->cb_running,
122891 atomic_read(&s->sk_refcnt),
122892 - atomic_read(&s->sk_drops),
122893 + atomic_read_unchecked(&s->sk_drops),
122894 sock_i_ino(s)
122895 );
122896
122897 diff --git a/net/openvswitch/vport-internal_dev.c b/net/openvswitch/vport-internal_dev.c
122898 index 6a55f71..e88c937 100644
122899 --- a/net/openvswitch/vport-internal_dev.c
122900 +++ b/net/openvswitch/vport-internal_dev.c
122901 @@ -124,7 +124,7 @@ static const struct net_device_ops internal_dev_netdev_ops = {
122902 .ndo_get_stats64 = internal_dev_get_stats,
122903 };
122904
122905 -static struct rtnl_link_ops internal_dev_link_ops __read_mostly = {
122906 +static struct rtnl_link_ops internal_dev_link_ops = {
122907 .kind = "openvswitch",
122908 };
122909
122910 diff --git a/net/openvswitch/vport.c b/net/openvswitch/vport.c
122911 index 067a3ff..9ecc05c 100644
122912 --- a/net/openvswitch/vport.c
122913 +++ b/net/openvswitch/vport.c
122914 @@ -303,10 +303,10 @@ void ovs_vport_get_stats(struct vport *vport, struct ovs_vport_stats *stats)
122915 * netdev-stats can be directly read over netlink-ioctl.
122916 */
122917
122918 - stats->rx_errors = atomic_long_read(&vport->err_stats.rx_errors);
122919 - stats->tx_errors = atomic_long_read(&vport->err_stats.tx_errors);
122920 - stats->tx_dropped = atomic_long_read(&vport->err_stats.tx_dropped);
122921 - stats->rx_dropped = atomic_long_read(&vport->err_stats.rx_dropped);
122922 + stats->rx_errors = atomic_long_read_unchecked(&vport->err_stats.rx_errors);
122923 + stats->tx_errors = atomic_long_read_unchecked(&vport->err_stats.tx_errors);
122924 + stats->tx_dropped = atomic_long_read_unchecked(&vport->err_stats.tx_dropped);
122925 + stats->rx_dropped = atomic_long_read_unchecked(&vport->err_stats.rx_dropped);
122926
122927 for_each_possible_cpu(i) {
122928 const struct pcpu_sw_netstats *percpu_stats;
122929 @@ -538,19 +538,19 @@ static void ovs_vport_record_error(struct vport *vport,
122930 {
122931 switch (err_type) {
122932 case VPORT_E_RX_DROPPED:
122933 - atomic_long_inc(&vport->err_stats.rx_dropped);
122934 + atomic_long_inc_unchecked(&vport->err_stats.rx_dropped);
122935 break;
122936
122937 case VPORT_E_RX_ERROR:
122938 - atomic_long_inc(&vport->err_stats.rx_errors);
122939 + atomic_long_inc_unchecked(&vport->err_stats.rx_errors);
122940 break;
122941
122942 case VPORT_E_TX_DROPPED:
122943 - atomic_long_inc(&vport->err_stats.tx_dropped);
122944 + atomic_long_inc_unchecked(&vport->err_stats.tx_dropped);
122945 break;
122946
122947 case VPORT_E_TX_ERROR:
122948 - atomic_long_inc(&vport->err_stats.tx_errors);
122949 + atomic_long_inc_unchecked(&vport->err_stats.tx_errors);
122950 break;
122951 }
122952
122953 diff --git a/net/openvswitch/vport.h b/net/openvswitch/vport.h
122954 index bc85331..0d3dce0 100644
122955 --- a/net/openvswitch/vport.h
122956 +++ b/net/openvswitch/vport.h
122957 @@ -71,10 +71,10 @@ int ovs_vport_get_egress_tun_info(struct vport *vport, struct sk_buff *skb,
122958 /* The following definitions are for implementers of vport devices: */
122959
122960 struct vport_err_stats {
122961 - atomic_long_t rx_dropped;
122962 - atomic_long_t rx_errors;
122963 - atomic_long_t tx_dropped;
122964 - atomic_long_t tx_errors;
122965 + atomic_long_unchecked_t rx_dropped;
122966 + atomic_long_unchecked_t rx_errors;
122967 + atomic_long_unchecked_t tx_dropped;
122968 + atomic_long_unchecked_t tx_errors;
122969 };
122970 /**
122971 * struct vport_portids - array of netlink portids of a vport.
122972 diff --git a/net/packet/af_packet.c b/net/packet/af_packet.c
122973 index 7851b12..b665c0c 100644
122974 --- a/net/packet/af_packet.c
122975 +++ b/net/packet/af_packet.c
122976 @@ -277,7 +277,7 @@ static int packet_direct_xmit(struct sk_buff *skb)
122977
122978 return ret;
122979 drop:
122980 - atomic_long_inc(&dev->tx_dropped);
122981 + atomic_long_inc_unchecked(&dev->tx_dropped);
122982 kfree_skb(skb);
122983 return NET_XMIT_DROP;
122984 }
122985 @@ -1946,7 +1946,7 @@ static int packet_rcv(struct sk_buff *skb, struct net_device *dev,
122986 drop_n_acct:
122987 spin_lock(&sk->sk_receive_queue.lock);
122988 po->stats.stats1.tp_drops++;
122989 - atomic_inc(&sk->sk_drops);
122990 + atomic_inc_unchecked(&sk->sk_drops);
122991 spin_unlock(&sk->sk_receive_queue.lock);
122992
122993 drop_n_restore:
122994 @@ -3616,7 +3616,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
122995 case PACKET_HDRLEN:
122996 if (len > sizeof(int))
122997 len = sizeof(int);
122998 - if (copy_from_user(&val, optval, len))
122999 + if (len > sizeof(val) || copy_from_user(&val, optval, len))
123000 return -EFAULT;
123001 switch (val) {
123002 case TPACKET_V1:
123003 @@ -3671,7 +3671,7 @@ static int packet_getsockopt(struct socket *sock, int level, int optname,
123004 len = lv;
123005 if (put_user(len, optlen))
123006 return -EFAULT;
123007 - if (copy_to_user(optval, data, len))
123008 + if (len > sizeof(st) || copy_to_user(optval, data, len))
123009 return -EFAULT;
123010 return 0;
123011 }
123012 diff --git a/net/phonet/pep.c b/net/phonet/pep.c
123013 index 850a86c..8884a37 100644
123014 --- a/net/phonet/pep.c
123015 +++ b/net/phonet/pep.c
123016 @@ -388,7 +388,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
123017
123018 case PNS_PEP_CTRL_REQ:
123019 if (skb_queue_len(&pn->ctrlreq_queue) >= PNPIPE_CTRLREQ_MAX) {
123020 - atomic_inc(&sk->sk_drops);
123021 + atomic_inc_unchecked(&sk->sk_drops);
123022 break;
123023 }
123024 __skb_pull(skb, 4);
123025 @@ -409,7 +409,7 @@ static int pipe_do_rcv(struct sock *sk, struct sk_buff *skb)
123026 }
123027
123028 if (pn->rx_credits == 0) {
123029 - atomic_inc(&sk->sk_drops);
123030 + atomic_inc_unchecked(&sk->sk_drops);
123031 err = -ENOBUFS;
123032 break;
123033 }
123034 @@ -579,7 +579,7 @@ static int pipe_handler_do_rcv(struct sock *sk, struct sk_buff *skb)
123035 }
123036
123037 if (pn->rx_credits == 0) {
123038 - atomic_inc(&sk->sk_drops);
123039 + atomic_inc_unchecked(&sk->sk_drops);
123040 err = NET_RX_DROP;
123041 break;
123042 }
123043 diff --git a/net/phonet/socket.c b/net/phonet/socket.c
123044 index d575ef4..1dedc31 100644
123045 --- a/net/phonet/socket.c
123046 +++ b/net/phonet/socket.c
123047 @@ -611,7 +611,7 @@ static int pn_sock_seq_show(struct seq_file *seq, void *v)
123048 from_kuid_munged(seq_user_ns(seq), sock_i_uid(sk)),
123049 sock_i_ino(sk),
123050 atomic_read(&sk->sk_refcnt), sk,
123051 - atomic_read(&sk->sk_drops));
123052 + atomic_read_unchecked(&sk->sk_drops));
123053 }
123054 seq_pad(seq, '\n');
123055 return 0;
123056 diff --git a/net/phonet/sysctl.c b/net/phonet/sysctl.c
123057 index c02a8c4..3c5b600 100644
123058 --- a/net/phonet/sysctl.c
123059 +++ b/net/phonet/sysctl.c
123060 @@ -67,7 +67,7 @@ static int proc_local_port_range(struct ctl_table *table, int write,
123061 {
123062 int ret;
123063 int range[2] = {local_port_range[0], local_port_range[1]};
123064 - struct ctl_table tmp = {
123065 + ctl_table_no_const tmp = {
123066 .data = &range,
123067 .maxlen = sizeof(range),
123068 .mode = table->mode,
123069 diff --git a/net/rds/cong.c b/net/rds/cong.c
123070 index e6144b8..4f9fda6 100644
123071 --- a/net/rds/cong.c
123072 +++ b/net/rds/cong.c
123073 @@ -78,7 +78,7 @@
123074 * finds that the saved generation number is smaller than the global generation
123075 * number, it wakes up the process.
123076 */
123077 -static atomic_t rds_cong_generation = ATOMIC_INIT(0);
123078 +static atomic_unchecked_t rds_cong_generation = ATOMIC_INIT(0);
123079
123080 /*
123081 * Congestion monitoring
123082 @@ -247,7 +247,7 @@ void rds_cong_map_updated(struct rds_cong_map *map, uint64_t portmask)
123083 rdsdebug("waking map %p for %pI4\n",
123084 map, &map->m_addr);
123085 rds_stats_inc(s_cong_update_received);
123086 - atomic_inc(&rds_cong_generation);
123087 + atomic_inc_unchecked(&rds_cong_generation);
123088 if (waitqueue_active(&map->m_waitq))
123089 wake_up(&map->m_waitq);
123090 if (waitqueue_active(&rds_poll_waitq))
123091 @@ -273,7 +273,7 @@ EXPORT_SYMBOL_GPL(rds_cong_map_updated);
123092
123093 int rds_cong_updated_since(unsigned long *recent)
123094 {
123095 - unsigned long gen = atomic_read(&rds_cong_generation);
123096 + unsigned long gen = atomic_read_unchecked(&rds_cong_generation);
123097
123098 if (likely(*recent == gen))
123099 return 0;
123100 diff --git a/net/rds/ib.h b/net/rds/ib.h
123101 index 86d88ec..b5461c2 100644
123102 --- a/net/rds/ib.h
123103 +++ b/net/rds/ib.h
123104 @@ -128,7 +128,7 @@ struct rds_ib_connection {
123105 /* sending acks */
123106 unsigned long i_ack_flags;
123107 #ifdef KERNEL_HAS_ATOMIC64
123108 - atomic64_t i_ack_next; /* next ACK to send */
123109 + atomic64_unchecked_t i_ack_next; /* next ACK to send */
123110 #else
123111 spinlock_t i_ack_lock; /* protect i_ack_next */
123112 u64 i_ack_next; /* next ACK to send */
123113 diff --git a/net/rds/ib_cm.c b/net/rds/ib_cm.c
123114 index 0da2a45..388ae0b 100644
123115 --- a/net/rds/ib_cm.c
123116 +++ b/net/rds/ib_cm.c
123117 @@ -699,7 +699,7 @@ void rds_ib_conn_shutdown(struct rds_connection *conn)
123118 /* Clear the ACK state */
123119 clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags);
123120 #ifdef KERNEL_HAS_ATOMIC64
123121 - atomic64_set(&ic->i_ack_next, 0);
123122 + atomic64_set_unchecked(&ic->i_ack_next, 0);
123123 #else
123124 ic->i_ack_next = 0;
123125 #endif
123126 diff --git a/net/rds/ib_recv.c b/net/rds/ib_recv.c
123127 index cac5b45..9a6f263 100644
123128 --- a/net/rds/ib_recv.c
123129 +++ b/net/rds/ib_recv.c
123130 @@ -581,7 +581,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
123131 static void rds_ib_set_ack(struct rds_ib_connection *ic, u64 seq,
123132 int ack_required)
123133 {
123134 - atomic64_set(&ic->i_ack_next, seq);
123135 + atomic64_set_unchecked(&ic->i_ack_next, seq);
123136 if (ack_required) {
123137 smp_mb__before_atomic();
123138 set_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
123139 @@ -593,7 +593,7 @@ static u64 rds_ib_get_ack(struct rds_ib_connection *ic)
123140 clear_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
123141 smp_mb__after_atomic();
123142
123143 - return atomic64_read(&ic->i_ack_next);
123144 + return atomic64_read_unchecked(&ic->i_ack_next);
123145 }
123146 #endif
123147
123148 diff --git a/net/rds/iw.h b/net/rds/iw.h
123149 index cbe6674..dc9eb89 100644
123150 --- a/net/rds/iw.h
123151 +++ b/net/rds/iw.h
123152 @@ -134,7 +134,7 @@ struct rds_iw_connection {
123153 /* sending acks */
123154 unsigned long i_ack_flags;
123155 #ifdef KERNEL_HAS_ATOMIC64
123156 - atomic64_t i_ack_next; /* next ACK to send */
123157 + atomic64_unchecked_t i_ack_next; /* next ACK to send */
123158 #else
123159 spinlock_t i_ack_lock; /* protect i_ack_next */
123160 u64 i_ack_next; /* next ACK to send */
123161 diff --git a/net/rds/iw_cm.c b/net/rds/iw_cm.c
123162 index 8f486fa..7849d8c 100644
123163 --- a/net/rds/iw_cm.c
123164 +++ b/net/rds/iw_cm.c
123165 @@ -666,7 +666,7 @@ void rds_iw_conn_shutdown(struct rds_connection *conn)
123166 /* Clear the ACK state */
123167 clear_bit(IB_ACK_IN_FLIGHT, &ic->i_ack_flags);
123168 #ifdef KERNEL_HAS_ATOMIC64
123169 - atomic64_set(&ic->i_ack_next, 0);
123170 + atomic64_set_unchecked(&ic->i_ack_next, 0);
123171 #else
123172 ic->i_ack_next = 0;
123173 #endif
123174 diff --git a/net/rds/iw_recv.c b/net/rds/iw_recv.c
123175 index a66d179..cf1e258 100644
123176 --- a/net/rds/iw_recv.c
123177 +++ b/net/rds/iw_recv.c
123178 @@ -412,7 +412,7 @@ static u64 rds_iw_get_ack(struct rds_iw_connection *ic)
123179 static void rds_iw_set_ack(struct rds_iw_connection *ic, u64 seq,
123180 int ack_required)
123181 {
123182 - atomic64_set(&ic->i_ack_next, seq);
123183 + atomic64_set_unchecked(&ic->i_ack_next, seq);
123184 if (ack_required) {
123185 smp_mb__before_atomic();
123186 set_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
123187 @@ -424,7 +424,7 @@ static u64 rds_iw_get_ack(struct rds_iw_connection *ic)
123188 clear_bit(IB_ACK_REQUESTED, &ic->i_ack_flags);
123189 smp_mb__after_atomic();
123190
123191 - return atomic64_read(&ic->i_ack_next);
123192 + return atomic64_read_unchecked(&ic->i_ack_next);
123193 }
123194 #endif
123195
123196 diff --git a/net/rds/rds.h b/net/rds/rds.h
123197 index 2260c1e4..4ea4a57 100644
123198 --- a/net/rds/rds.h
123199 +++ b/net/rds/rds.h
123200 @@ -446,7 +446,7 @@ struct rds_transport {
123201 void (*sync_mr)(void *trans_private, int direction);
123202 void (*free_mr)(void *trans_private, int invalidate);
123203 void (*flush_mrs)(void);
123204 -};
123205 +} __do_const;
123206
123207 struct rds_sock {
123208 struct sock rs_sk;
123209 diff --git a/net/rds/tcp.c b/net/rds/tcp.c
123210 index edac9ef..16bcb98 100644
123211 --- a/net/rds/tcp.c
123212 +++ b/net/rds/tcp.c
123213 @@ -59,7 +59,7 @@ void rds_tcp_nonagle(struct socket *sock)
123214 int val = 1;
123215
123216 set_fs(KERNEL_DS);
123217 - sock->ops->setsockopt(sock, SOL_TCP, TCP_NODELAY, (char __user *)&val,
123218 + sock->ops->setsockopt(sock, SOL_TCP, TCP_NODELAY, (char __force_user *)&val,
123219 sizeof(val));
123220 set_fs(oldfs);
123221 }
123222 diff --git a/net/rds/tcp_send.c b/net/rds/tcp_send.c
123223 index 53b17ca..45463e7 100644
123224 --- a/net/rds/tcp_send.c
123225 +++ b/net/rds/tcp_send.c
123226 @@ -43,7 +43,7 @@ static void rds_tcp_cork(struct socket *sock, int val)
123227
123228 oldfs = get_fs();
123229 set_fs(KERNEL_DS);
123230 - sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, (char __user *)&val,
123231 + sock->ops->setsockopt(sock, SOL_TCP, TCP_CORK, (char __force_user *)&val,
123232 sizeof(val));
123233 set_fs(oldfs);
123234 }
123235 diff --git a/net/rxrpc/af_rxrpc.c b/net/rxrpc/af_rxrpc.c
123236 index 25d60ed..ec9ae2c 100644
123237 --- a/net/rxrpc/af_rxrpc.c
123238 +++ b/net/rxrpc/af_rxrpc.c
123239 @@ -40,7 +40,7 @@ static const struct proto_ops rxrpc_rpc_ops;
123240 __be32 rxrpc_epoch;
123241
123242 /* current debugging ID */
123243 -atomic_t rxrpc_debug_id;
123244 +atomic_unchecked_t rxrpc_debug_id;
123245
123246 /* count of skbs currently in use */
123247 atomic_t rxrpc_n_skbs;
123248 diff --git a/net/rxrpc/ar-ack.c b/net/rxrpc/ar-ack.c
123249 index e0547f5..a171f7a 100644
123250 --- a/net/rxrpc/ar-ack.c
123251 +++ b/net/rxrpc/ar-ack.c
123252 @@ -224,7 +224,7 @@ static void rxrpc_resend(struct rxrpc_call *call)
123253
123254 _enter("{%d,%d,%d,%d},",
123255 call->acks_hard, call->acks_unacked,
123256 - atomic_read(&call->sequence),
123257 + atomic_read_unchecked(&call->sequence),
123258 CIRC_CNT(call->acks_head, call->acks_tail, call->acks_winsz));
123259
123260 stop = false;
123261 @@ -248,7 +248,7 @@ static void rxrpc_resend(struct rxrpc_call *call)
123262
123263 /* each Tx packet has a new serial number */
123264 sp->hdr.serial =
123265 - htonl(atomic_inc_return(&call->conn->serial));
123266 + htonl(atomic_inc_return_unchecked(&call->conn->serial));
123267
123268 hdr = (struct rxrpc_header *) txb->head;
123269 hdr->serial = sp->hdr.serial;
123270 @@ -452,7 +452,7 @@ static void rxrpc_rotate_tx_window(struct rxrpc_call *call, u32 hard)
123271 */
123272 static void rxrpc_clear_tx_window(struct rxrpc_call *call)
123273 {
123274 - rxrpc_rotate_tx_window(call, atomic_read(&call->sequence));
123275 + rxrpc_rotate_tx_window(call, atomic_read_unchecked(&call->sequence));
123276 }
123277
123278 /*
123279 @@ -678,7 +678,7 @@ process_further:
123280
123281 latest = ntohl(sp->hdr.serial);
123282 hard = ntohl(ack.firstPacket);
123283 - tx = atomic_read(&call->sequence);
123284 + tx = atomic_read_unchecked(&call->sequence);
123285
123286 _proto("Rx ACK %%%u { m=%hu f=#%u p=#%u s=%%%u r=%s n=%u }",
123287 latest,
123288 @@ -1210,7 +1210,7 @@ void rxrpc_process_call(struct work_struct *work)
123289 goto maybe_reschedule;
123290
123291 send_ACK_with_skew:
123292 - ack.maxSkew = htons(atomic_read(&call->conn->hi_serial) -
123293 + ack.maxSkew = htons(atomic_read_unchecked(&call->conn->hi_serial) -
123294 ntohl(ack.serial));
123295 send_ACK:
123296 mtu = call->conn->trans->peer->if_mtu;
123297 @@ -1222,7 +1222,7 @@ send_ACK:
123298 ackinfo.rxMTU = htonl(rxrpc_rx_mtu);
123299 ackinfo.jumbo_max = htonl(rxrpc_rx_jumbo_max);
123300
123301 - hdr.serial = htonl(atomic_inc_return(&call->conn->serial));
123302 + hdr.serial = htonl(atomic_inc_return_unchecked(&call->conn->serial));
123303 _proto("Tx ACK %%%u { m=%hu f=#%u p=#%u s=%%%u r=%s n=%u }",
123304 ntohl(hdr.serial),
123305 ntohs(ack.maxSkew),
123306 @@ -1240,7 +1240,7 @@ send_ACK:
123307 send_message:
123308 _debug("send message");
123309
123310 - hdr.serial = htonl(atomic_inc_return(&call->conn->serial));
123311 + hdr.serial = htonl(atomic_inc_return_unchecked(&call->conn->serial));
123312 _proto("Tx %s %%%u", rxrpc_pkts[hdr.type], ntohl(hdr.serial));
123313 send_message_2:
123314
123315 diff --git a/net/rxrpc/ar-call.c b/net/rxrpc/ar-call.c
123316 index a9e05db..194e793 100644
123317 --- a/net/rxrpc/ar-call.c
123318 +++ b/net/rxrpc/ar-call.c
123319 @@ -232,7 +232,7 @@ static struct rxrpc_call *rxrpc_alloc_call(gfp_t gfp)
123320 spin_lock_init(&call->lock);
123321 rwlock_init(&call->state_lock);
123322 atomic_set(&call->usage, 1);
123323 - call->debug_id = atomic_inc_return(&rxrpc_debug_id);
123324 + call->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
123325 call->state = RXRPC_CALL_CLIENT_SEND_REQUEST;
123326
123327 memset(&call->sock_node, 0xed, sizeof(call->sock_node));
123328 diff --git a/net/rxrpc/ar-connection.c b/net/rxrpc/ar-connection.c
123329 index 6631f4f..bfdf056 100644
123330 --- a/net/rxrpc/ar-connection.c
123331 +++ b/net/rxrpc/ar-connection.c
123332 @@ -210,7 +210,7 @@ static struct rxrpc_connection *rxrpc_alloc_connection(gfp_t gfp)
123333 rwlock_init(&conn->lock);
123334 spin_lock_init(&conn->state_lock);
123335 atomic_set(&conn->usage, 1);
123336 - conn->debug_id = atomic_inc_return(&rxrpc_debug_id);
123337 + conn->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
123338 conn->avail_calls = RXRPC_MAXCALLS;
123339 conn->size_align = 4;
123340 conn->header_size = sizeof(struct rxrpc_header);
123341 diff --git a/net/rxrpc/ar-connevent.c b/net/rxrpc/ar-connevent.c
123342 index e7ed43a..6afa140 100644
123343 --- a/net/rxrpc/ar-connevent.c
123344 +++ b/net/rxrpc/ar-connevent.c
123345 @@ -109,7 +109,7 @@ static int rxrpc_abort_connection(struct rxrpc_connection *conn,
123346
123347 len = iov[0].iov_len + iov[1].iov_len;
123348
123349 - hdr.serial = htonl(atomic_inc_return(&conn->serial));
123350 + hdr.serial = htonl(atomic_inc_return_unchecked(&conn->serial));
123351 _proto("Tx CONN ABORT %%%u { %d }", ntohl(hdr.serial), abort_code);
123352
123353 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len);
123354 diff --git a/net/rxrpc/ar-input.c b/net/rxrpc/ar-input.c
123355 index 4505a69..fe73096 100644
123356 --- a/net/rxrpc/ar-input.c
123357 +++ b/net/rxrpc/ar-input.c
123358 @@ -331,9 +331,9 @@ void rxrpc_fast_process_packet(struct rxrpc_call *call, struct sk_buff *skb)
123359 /* track the latest serial number on this connection for ACK packet
123360 * information */
123361 serial = ntohl(sp->hdr.serial);
123362 - hi_serial = atomic_read(&call->conn->hi_serial);
123363 + hi_serial = atomic_read_unchecked(&call->conn->hi_serial);
123364 while (serial > hi_serial)
123365 - hi_serial = atomic_cmpxchg(&call->conn->hi_serial, hi_serial,
123366 + hi_serial = atomic_cmpxchg_unchecked(&call->conn->hi_serial, hi_serial,
123367 serial);
123368
123369 /* request ACK generation for any ACK or DATA packet that requests
123370 diff --git a/net/rxrpc/ar-internal.h b/net/rxrpc/ar-internal.h
123371 index aef1bd2..97736c3 100644
123372 --- a/net/rxrpc/ar-internal.h
123373 +++ b/net/rxrpc/ar-internal.h
123374 @@ -274,8 +274,8 @@ struct rxrpc_connection {
123375 int error; /* error code for local abort */
123376 int debug_id; /* debug ID for printks */
123377 unsigned int call_counter; /* call ID counter */
123378 - atomic_t serial; /* packet serial number counter */
123379 - atomic_t hi_serial; /* highest serial number received */
123380 + atomic_unchecked_t serial; /* packet serial number counter */
123381 + atomic_unchecked_t hi_serial; /* highest serial number received */
123382 u8 avail_calls; /* number of calls available */
123383 u8 size_align; /* data size alignment (for security) */
123384 u8 header_size; /* rxrpc + security header size */
123385 @@ -348,7 +348,7 @@ struct rxrpc_call {
123386 spinlock_t lock;
123387 rwlock_t state_lock; /* lock for state transition */
123388 atomic_t usage;
123389 - atomic_t sequence; /* Tx data packet sequence counter */
123390 + atomic_unchecked_t sequence; /* Tx data packet sequence counter */
123391 u32 abort_code; /* local/remote abort code */
123392 enum { /* current state of call */
123393 RXRPC_CALL_CLIENT_SEND_REQUEST, /* - client sending request phase */
123394 @@ -433,7 +433,7 @@ static inline void rxrpc_abort_call(struct rxrpc_call *call, u32 abort_code)
123395 */
123396 extern atomic_t rxrpc_n_skbs;
123397 extern __be32 rxrpc_epoch;
123398 -extern atomic_t rxrpc_debug_id;
123399 +extern atomic_unchecked_t rxrpc_debug_id;
123400 extern struct workqueue_struct *rxrpc_workqueue;
123401
123402 /*
123403 diff --git a/net/rxrpc/ar-local.c b/net/rxrpc/ar-local.c
123404 index 78483b4..b1c0e1e 100644
123405 --- a/net/rxrpc/ar-local.c
123406 +++ b/net/rxrpc/ar-local.c
123407 @@ -53,7 +53,7 @@ struct rxrpc_local *rxrpc_alloc_local(struct sockaddr_rxrpc *srx)
123408 spin_lock_init(&local->lock);
123409 rwlock_init(&local->services_lock);
123410 atomic_set(&local->usage, 1);
123411 - local->debug_id = atomic_inc_return(&rxrpc_debug_id);
123412 + local->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
123413 memcpy(&local->srx, srx, sizeof(*srx));
123414 }
123415
123416 diff --git a/net/rxrpc/ar-output.c b/net/rxrpc/ar-output.c
123417 index c004280..ab1ed5a 100644
123418 --- a/net/rxrpc/ar-output.c
123419 +++ b/net/rxrpc/ar-output.c
123420 @@ -648,14 +648,14 @@ static int rxrpc_send_data(struct rxrpc_sock *rx,
123421 memset(skb_put(skb, pad), 0, pad);
123422 }
123423
123424 - seq = atomic_inc_return(&call->sequence);
123425 + seq = atomic_inc_return_unchecked(&call->sequence);
123426
123427 sp->hdr.epoch = conn->epoch;
123428 sp->hdr.cid = call->cid;
123429 sp->hdr.callNumber = call->call_id;
123430 sp->hdr.seq = htonl(seq);
123431 sp->hdr.serial =
123432 - htonl(atomic_inc_return(&conn->serial));
123433 + htonl(atomic_inc_return_unchecked(&conn->serial));
123434 sp->hdr.type = RXRPC_PACKET_TYPE_DATA;
123435 sp->hdr.userStatus = 0;
123436 sp->hdr.securityIndex = conn->security_ix;
123437 diff --git a/net/rxrpc/ar-peer.c b/net/rxrpc/ar-peer.c
123438 index bebaa43..2644591 100644
123439 --- a/net/rxrpc/ar-peer.c
123440 +++ b/net/rxrpc/ar-peer.c
123441 @@ -72,7 +72,7 @@ static struct rxrpc_peer *rxrpc_alloc_peer(struct sockaddr_rxrpc *srx,
123442 INIT_LIST_HEAD(&peer->error_targets);
123443 spin_lock_init(&peer->lock);
123444 atomic_set(&peer->usage, 1);
123445 - peer->debug_id = atomic_inc_return(&rxrpc_debug_id);
123446 + peer->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
123447 memcpy(&peer->srx, srx, sizeof(*srx));
123448
123449 rxrpc_assess_MTU_size(peer);
123450 diff --git a/net/rxrpc/ar-proc.c b/net/rxrpc/ar-proc.c
123451 index 38047f7..9f48511 100644
123452 --- a/net/rxrpc/ar-proc.c
123453 +++ b/net/rxrpc/ar-proc.c
123454 @@ -164,8 +164,8 @@ static int rxrpc_connection_seq_show(struct seq_file *seq, void *v)
123455 atomic_read(&conn->usage),
123456 rxrpc_conn_states[conn->state],
123457 key_serial(conn->key),
123458 - atomic_read(&conn->serial),
123459 - atomic_read(&conn->hi_serial));
123460 + atomic_read_unchecked(&conn->serial),
123461 + atomic_read_unchecked(&conn->hi_serial));
123462
123463 return 0;
123464 }
123465 diff --git a/net/rxrpc/ar-transport.c b/net/rxrpc/ar-transport.c
123466 index 1976dec..aa70be5 100644
123467 --- a/net/rxrpc/ar-transport.c
123468 +++ b/net/rxrpc/ar-transport.c
123469 @@ -51,7 +51,7 @@ static struct rxrpc_transport *rxrpc_alloc_transport(struct rxrpc_local *local,
123470 spin_lock_init(&trans->client_lock);
123471 rwlock_init(&trans->conn_lock);
123472 atomic_set(&trans->usage, 1);
123473 - trans->debug_id = atomic_inc_return(&rxrpc_debug_id);
123474 + trans->debug_id = atomic_inc_return_unchecked(&rxrpc_debug_id);
123475
123476 if (peer->srx.transport.family == AF_INET) {
123477 switch (peer->srx.transport_type) {
123478 diff --git a/net/rxrpc/rxkad.c b/net/rxrpc/rxkad.c
123479 index f226709..0e735a8 100644
123480 --- a/net/rxrpc/rxkad.c
123481 +++ b/net/rxrpc/rxkad.c
123482 @@ -610,7 +610,7 @@ static int rxkad_issue_challenge(struct rxrpc_connection *conn)
123483
123484 len = iov[0].iov_len + iov[1].iov_len;
123485
123486 - hdr.serial = htonl(atomic_inc_return(&conn->serial));
123487 + hdr.serial = htonl(atomic_inc_return_unchecked(&conn->serial));
123488 _proto("Tx CHALLENGE %%%u", ntohl(hdr.serial));
123489
123490 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 2, len);
123491 @@ -660,7 +660,7 @@ static int rxkad_send_response(struct rxrpc_connection *conn,
123492
123493 len = iov[0].iov_len + iov[1].iov_len + iov[2].iov_len;
123494
123495 - hdr->serial = htonl(atomic_inc_return(&conn->serial));
123496 + hdr->serial = htonl(atomic_inc_return_unchecked(&conn->serial));
123497 _proto("Tx RESPONSE %%%u", ntohl(hdr->serial));
123498
123499 ret = kernel_sendmsg(conn->trans->local->socket, &msg, iov, 3, len);
123500 diff --git a/net/sched/sch_generic.c b/net/sched/sch_generic.c
123501 index 6efca30..1259f82 100644
123502 --- a/net/sched/sch_generic.c
123503 +++ b/net/sched/sch_generic.c
123504 @@ -349,7 +349,7 @@ void netif_carrier_on(struct net_device *dev)
123505 if (test_and_clear_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
123506 if (dev->reg_state == NETREG_UNINITIALIZED)
123507 return;
123508 - atomic_inc(&dev->carrier_changes);
123509 + atomic_inc_unchecked(&dev->carrier_changes);
123510 linkwatch_fire_event(dev);
123511 if (netif_running(dev))
123512 __netdev_watchdog_up(dev);
123513 @@ -368,7 +368,7 @@ void netif_carrier_off(struct net_device *dev)
123514 if (!test_and_set_bit(__LINK_STATE_NOCARRIER, &dev->state)) {
123515 if (dev->reg_state == NETREG_UNINITIALIZED)
123516 return;
123517 - atomic_inc(&dev->carrier_changes);
123518 + atomic_inc_unchecked(&dev->carrier_changes);
123519 linkwatch_fire_event(dev);
123520 }
123521 }
123522 diff --git a/net/sctp/ipv6.c b/net/sctp/ipv6.c
123523 index e917d27..13e2a4c 100644
123524 --- a/net/sctp/ipv6.c
123525 +++ b/net/sctp/ipv6.c
123526 @@ -973,7 +973,7 @@ static const struct inet6_protocol sctpv6_protocol = {
123527 .flags = INET6_PROTO_NOPOLICY | INET6_PROTO_FINAL,
123528 };
123529
123530 -static struct sctp_af sctp_af_inet6 = {
123531 +static struct sctp_af sctp_af_inet6 __read_only = {
123532 .sa_family = AF_INET6,
123533 .sctp_xmit = sctp_v6_xmit,
123534 .setsockopt = ipv6_setsockopt,
123535 @@ -1003,7 +1003,7 @@ static struct sctp_af sctp_af_inet6 = {
123536 #endif
123537 };
123538
123539 -static struct sctp_pf sctp_pf_inet6 = {
123540 +static struct sctp_pf sctp_pf_inet6 __read_only = {
123541 .event_msgname = sctp_inet6_event_msgname,
123542 .skb_msgname = sctp_inet6_skb_msgname,
123543 .af_supported = sctp_inet6_af_supported,
123544 @@ -1030,7 +1030,7 @@ void sctp_v6_pf_init(void)
123545
123546 void sctp_v6_pf_exit(void)
123547 {
123548 - list_del(&sctp_af_inet6.list);
123549 + pax_list_del(&sctp_af_inet6.list);
123550 }
123551
123552 /* Initialize IPv6 support and register with socket layer. */
123553 diff --git a/net/sctp/protocol.c b/net/sctp/protocol.c
123554 index 3ac604f..e1b6dec 100644
123555 --- a/net/sctp/protocol.c
123556 +++ b/net/sctp/protocol.c
123557 @@ -836,8 +836,10 @@ int sctp_register_af(struct sctp_af *af)
123558 return 0;
123559 }
123560
123561 + pax_open_kernel();
123562 INIT_LIST_HEAD(&af->list);
123563 - list_add_tail(&af->list, &sctp_address_families);
123564 + pax_close_kernel();
123565 + pax_list_add_tail(&af->list, &sctp_address_families);
123566 return 1;
123567 }
123568
123569 @@ -967,7 +969,7 @@ static inline int sctp_v4_xmit(struct sk_buff *skb,
123570
123571 static struct sctp_af sctp_af_inet;
123572
123573 -static struct sctp_pf sctp_pf_inet = {
123574 +static struct sctp_pf sctp_pf_inet __read_only = {
123575 .event_msgname = sctp_inet_event_msgname,
123576 .skb_msgname = sctp_inet_skb_msgname,
123577 .af_supported = sctp_inet_af_supported,
123578 @@ -1039,7 +1041,7 @@ static const struct net_protocol sctp_protocol = {
123579 };
123580
123581 /* IPv4 address related functions. */
123582 -static struct sctp_af sctp_af_inet = {
123583 +static struct sctp_af sctp_af_inet __read_only = {
123584 .sa_family = AF_INET,
123585 .sctp_xmit = sctp_v4_xmit,
123586 .setsockopt = ip_setsockopt,
123587 @@ -1123,7 +1125,7 @@ static void sctp_v4_pf_init(void)
123588
123589 static void sctp_v4_pf_exit(void)
123590 {
123591 - list_del(&sctp_af_inet.list);
123592 + pax_list_del(&sctp_af_inet.list);
123593 }
123594
123595 static int sctp_v4_protosw_init(void)
123596 diff --git a/net/sctp/sm_sideeffect.c b/net/sctp/sm_sideeffect.c
123597 index 85e6f03..d41c1ad 100644
123598 --- a/net/sctp/sm_sideeffect.c
123599 +++ b/net/sctp/sm_sideeffect.c
123600 @@ -439,7 +439,7 @@ static void sctp_generate_sack_event(unsigned long data)
123601 sctp_generate_timeout_event(asoc, SCTP_EVENT_TIMEOUT_SACK);
123602 }
123603
123604 -sctp_timer_event_t *sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = {
123605 +sctp_timer_event_t * const sctp_timer_events[SCTP_NUM_TIMEOUT_TYPES] = {
123606 NULL,
123607 sctp_generate_t1_cookie_event,
123608 sctp_generate_t1_init_event,
123609 diff --git a/net/sctp/socket.c b/net/sctp/socket.c
123610 index 17bef01..46f1473 100644
123611 --- a/net/sctp/socket.c
123612 +++ b/net/sctp/socket.c
123613 @@ -2194,11 +2194,13 @@ static int sctp_setsockopt_events(struct sock *sk, char __user *optval,
123614 {
123615 struct sctp_association *asoc;
123616 struct sctp_ulpevent *event;
123617 + struct sctp_event_subscribe subscribe;
123618
123619 if (optlen > sizeof(struct sctp_event_subscribe))
123620 return -EINVAL;
123621 - if (copy_from_user(&sctp_sk(sk)->subscribe, optval, optlen))
123622 + if (copy_from_user(&subscribe, optval, optlen))
123623 return -EFAULT;
123624 + sctp_sk(sk)->subscribe = subscribe;
123625
123626 /* At the time when a user app subscribes to SCTP_SENDER_DRY_EVENT,
123627 * if there is no data to be sent or retransmit, the stack will
123628 @@ -4373,13 +4375,16 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
123629 static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
123630 int __user *optlen)
123631 {
123632 + struct sctp_event_subscribe subscribe;
123633 +
123634 if (len <= 0)
123635 return -EINVAL;
123636 if (len > sizeof(struct sctp_event_subscribe))
123637 len = sizeof(struct sctp_event_subscribe);
123638 if (put_user(len, optlen))
123639 return -EFAULT;
123640 - if (copy_to_user(optval, &sctp_sk(sk)->subscribe, len))
123641 + subscribe = sctp_sk(sk)->subscribe;
123642 + if (copy_to_user(optval, &subscribe, len))
123643 return -EFAULT;
123644 return 0;
123645 }
123646 @@ -4397,6 +4402,8 @@ static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
123647 */
123648 static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optval, int __user *optlen)
123649 {
123650 + __u32 autoclose;
123651 +
123652 /* Applicable to UDP-style socket only */
123653 if (sctp_style(sk, TCP))
123654 return -EOPNOTSUPP;
123655 @@ -4405,7 +4412,8 @@ static int sctp_getsockopt_autoclose(struct sock *sk, int len, char __user *optv
123656 len = sizeof(int);
123657 if (put_user(len, optlen))
123658 return -EFAULT;
123659 - if (copy_to_user(optval, &sctp_sk(sk)->autoclose, sizeof(int)))
123660 + autoclose = sctp_sk(sk)->autoclose;
123661 + if (copy_to_user(optval, &autoclose, sizeof(int)))
123662 return -EFAULT;
123663 return 0;
123664 }
123665 @@ -4779,12 +4787,15 @@ static int sctp_getsockopt_delayed_ack(struct sock *sk, int len,
123666 */
123667 static int sctp_getsockopt_initmsg(struct sock *sk, int len, char __user *optval, int __user *optlen)
123668 {
123669 + struct sctp_initmsg initmsg;
123670 +
123671 if (len < sizeof(struct sctp_initmsg))
123672 return -EINVAL;
123673 len = sizeof(struct sctp_initmsg);
123674 if (put_user(len, optlen))
123675 return -EFAULT;
123676 - if (copy_to_user(optval, &sctp_sk(sk)->initmsg, len))
123677 + initmsg = sctp_sk(sk)->initmsg;
123678 + if (copy_to_user(optval, &initmsg, len))
123679 return -EFAULT;
123680 return 0;
123681 }
123682 @@ -4825,6 +4836,8 @@ static int sctp_getsockopt_peer_addrs(struct sock *sk, int len,
123683 ->addr_to_user(sp, &temp);
123684 if (space_left < addrlen)
123685 return -ENOMEM;
123686 + if (addrlen > sizeof(temp) || addrlen < 0)
123687 + return -EFAULT;
123688 if (copy_to_user(to, &temp, addrlen))
123689 return -EFAULT;
123690 to += addrlen;
123691 diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c
123692 index 26d50c5..dfae665 100644
123693 --- a/net/sctp/sysctl.c
123694 +++ b/net/sctp/sysctl.c
123695 @@ -317,7 +317,7 @@ static int proc_sctp_do_hmac_alg(struct ctl_table *ctl, int write,
123696 loff_t *ppos)
123697 {
123698 struct net *net = current->nsproxy->net_ns;
123699 - struct ctl_table tbl;
123700 + ctl_table_no_const tbl;
123701 bool changed = false;
123702 char *none = "none";
123703 char tmp[8];
123704 @@ -365,7 +365,7 @@ static int proc_sctp_do_rto_min(struct ctl_table *ctl, int write,
123705 struct net *net = current->nsproxy->net_ns;
123706 unsigned int min = *(unsigned int *) ctl->extra1;
123707 unsigned int max = *(unsigned int *) ctl->extra2;
123708 - struct ctl_table tbl;
123709 + ctl_table_no_const tbl;
123710 int ret, new_value;
123711
123712 memset(&tbl, 0, sizeof(struct ctl_table));
123713 @@ -394,7 +394,7 @@ static int proc_sctp_do_rto_max(struct ctl_table *ctl, int write,
123714 struct net *net = current->nsproxy->net_ns;
123715 unsigned int min = *(unsigned int *) ctl->extra1;
123716 unsigned int max = *(unsigned int *) ctl->extra2;
123717 - struct ctl_table tbl;
123718 + ctl_table_no_const tbl;
123719 int ret, new_value;
123720
123721 memset(&tbl, 0, sizeof(struct ctl_table));
123722 @@ -432,7 +432,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
123723 loff_t *ppos)
123724 {
123725 struct net *net = current->nsproxy->net_ns;
123726 - struct ctl_table tbl;
123727 + ctl_table_no_const tbl;
123728 int new_value, ret;
123729
123730 memset(&tbl, 0, sizeof(struct ctl_table));
123731 @@ -459,7 +459,7 @@ static int proc_sctp_do_auth(struct ctl_table *ctl, int write,
123732
123733 int sctp_sysctl_net_register(struct net *net)
123734 {
123735 - struct ctl_table *table;
123736 + ctl_table_no_const *table;
123737 int i;
123738
123739 table = kmemdup(sctp_net_table, sizeof(sctp_net_table), GFP_KERNEL);
123740 diff --git a/net/socket.c b/net/socket.c
123741 index 9963a0b..77c79d6 100644
123742 --- a/net/socket.c
123743 +++ b/net/socket.c
123744 @@ -89,6 +89,7 @@
123745 #include <linux/magic.h>
123746 #include <linux/slab.h>
123747 #include <linux/xattr.h>
123748 +#include <linux/in.h>
123749
123750 #include <asm/uaccess.h>
123751 #include <asm/unistd.h>
123752 @@ -107,6 +108,7 @@
123753 #include <linux/atalk.h>
123754 #include <net/busy_poll.h>
123755 #include <linux/errqueue.h>
123756 +#include <linux/grsock.h>
123757
123758 #ifdef CONFIG_NET_RX_BUSY_POLL
123759 unsigned int sysctl_net_busy_read __read_mostly;
123760 @@ -160,7 +162,7 @@ static const struct file_operations socket_file_ops = {
123761 */
123762
123763 static DEFINE_SPINLOCK(net_family_lock);
123764 -static const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
123765 +const struct net_proto_family __rcu *net_families[NPROTO] __read_mostly;
123766
123767 /*
123768 * Statistics counters of the socket lists
123769 @@ -326,7 +328,7 @@ static struct dentry *sockfs_mount(struct file_system_type *fs_type,
123770 &sockfs_dentry_operations, SOCKFS_MAGIC);
123771 }
123772
123773 -static struct vfsmount *sock_mnt __read_mostly;
123774 +struct vfsmount *sock_mnt __read_mostly;
123775
123776 static struct file_system_type sock_fs_type = {
123777 .name = "sockfs",
123778 @@ -1105,6 +1107,8 @@ int __sock_create(struct net *net, int family, int type, int protocol,
123779 return -EAFNOSUPPORT;
123780 if (type < 0 || type >= SOCK_MAX)
123781 return -EINVAL;
123782 + if (protocol < 0)
123783 + return -EINVAL;
123784
123785 /* Compatibility.
123786
123787 @@ -1125,6 +1129,20 @@ int __sock_create(struct net *net, int family, int type, int protocol,
123788 if (err)
123789 return err;
123790
123791 + if(!kern && !gr_search_socket(family, type, protocol)) {
123792 + if (rcu_access_pointer(net_families[family]) == NULL)
123793 + return -EAFNOSUPPORT;
123794 + else
123795 + return -EACCES;
123796 + }
123797 +
123798 + if (!kern && gr_handle_sock_all(family, type, protocol)) {
123799 + if (rcu_access_pointer(net_families[family]) == NULL)
123800 + return -EAFNOSUPPORT;
123801 + else
123802 + return -EACCES;
123803 + }
123804 +
123805 /*
123806 * Allocate the socket and allow the family to set things up. if
123807 * the protocol is 0, the family is instructed to select an appropriate
123808 @@ -1376,6 +1394,14 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
123809 if (sock) {
123810 err = move_addr_to_kernel(umyaddr, addrlen, &address);
123811 if (err >= 0) {
123812 + if (gr_handle_sock_server((struct sockaddr *)&address)) {
123813 + err = -EACCES;
123814 + goto error;
123815 + }
123816 + err = gr_search_bind(sock, (struct sockaddr_in *)&address);
123817 + if (err)
123818 + goto error;
123819 +
123820 err = security_socket_bind(sock,
123821 (struct sockaddr *)&address,
123822 addrlen);
123823 @@ -1384,6 +1410,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
123824 (struct sockaddr *)
123825 &address, addrlen);
123826 }
123827 +error:
123828 fput_light(sock->file, fput_needed);
123829 }
123830 return err;
123831 @@ -1407,10 +1434,20 @@ SYSCALL_DEFINE2(listen, int, fd, int, backlog)
123832 if ((unsigned int)backlog > somaxconn)
123833 backlog = somaxconn;
123834
123835 + if (gr_handle_sock_server_other(sock->sk)) {
123836 + err = -EPERM;
123837 + goto error;
123838 + }
123839 +
123840 + err = gr_search_listen(sock);
123841 + if (err)
123842 + goto error;
123843 +
123844 err = security_socket_listen(sock, backlog);
123845 if (!err)
123846 err = sock->ops->listen(sock, backlog);
123847
123848 +error:
123849 fput_light(sock->file, fput_needed);
123850 }
123851 return err;
123852 @@ -1454,6 +1491,18 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
123853 newsock->type = sock->type;
123854 newsock->ops = sock->ops;
123855
123856 + if (gr_handle_sock_server_other(sock->sk)) {
123857 + err = -EPERM;
123858 + sock_release(newsock);
123859 + goto out_put;
123860 + }
123861 +
123862 + err = gr_search_accept(sock);
123863 + if (err) {
123864 + sock_release(newsock);
123865 + goto out_put;
123866 + }
123867 +
123868 /*
123869 * We don't need try_module_get here, as the listening socket (sock)
123870 * has the protocol module (sock->ops->owner) held.
123871 @@ -1499,6 +1548,8 @@ SYSCALL_DEFINE4(accept4, int, fd, struct sockaddr __user *, upeer_sockaddr,
123872 fd_install(newfd, newfile);
123873 err = newfd;
123874
123875 + gr_attach_curr_ip(newsock->sk);
123876 +
123877 out_put:
123878 fput_light(sock->file, fput_needed);
123879 out:
123880 @@ -1531,6 +1582,7 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
123881 int, addrlen)
123882 {
123883 struct socket *sock;
123884 + struct sockaddr *sck;
123885 struct sockaddr_storage address;
123886 int err, fput_needed;
123887
123888 @@ -1541,6 +1593,17 @@ SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
123889 if (err < 0)
123890 goto out_put;
123891
123892 + sck = (struct sockaddr *)&address;
123893 +
123894 + if (gr_handle_sock_client(sck)) {
123895 + err = -EACCES;
123896 + goto out_put;
123897 + }
123898 +
123899 + err = gr_search_connect(sock, (struct sockaddr_in *)sck);
123900 + if (err)
123901 + goto out_put;
123902 +
123903 err =
123904 security_socket_connect(sock, (struct sockaddr *)&address, addrlen);
123905 if (err)
123906 @@ -1622,6 +1685,8 @@ SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
123907 * the protocol.
123908 */
123909
123910 +asmlinkage long sys_sendto(int, void __user *, size_t, unsigned, struct sockaddr __user *, int);
123911 +
123912 SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len,
123913 unsigned int, flags, struct sockaddr __user *, addr,
123914 int, addr_len)
123915 @@ -1685,7 +1750,7 @@ SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
123916 struct socket *sock;
123917 struct iovec iov;
123918 struct msghdr msg;
123919 - struct sockaddr_storage address;
123920 + struct sockaddr_storage address = { };
123921 int err, err2;
123922 int fput_needed;
123923
123924 @@ -1927,7 +1992,7 @@ static int ___sys_sendmsg(struct socket *sock, struct user_msghdr __user *msg,
123925 * checking falls down on this.
123926 */
123927 if (copy_from_user(ctl_buf,
123928 - (void __user __force *)msg_sys->msg_control,
123929 + (void __force_user *)msg_sys->msg_control,
123930 ctl_len))
123931 goto out_freectl;
123932 msg_sys->msg_control = ctl_buf;
123933 @@ -2077,7 +2142,7 @@ static int ___sys_recvmsg(struct socket *sock, struct user_msghdr __user *msg,
123934 ssize_t err;
123935
123936 /* kernel mode address */
123937 - struct sockaddr_storage addr;
123938 + struct sockaddr_storage addr = { };
123939
123940 /* user mode address pointers */
123941 struct sockaddr __user *uaddr;
123942 @@ -2722,7 +2787,7 @@ static int ethtool_ioctl(struct net *net, struct compat_ifreq __user *ifr32)
123943 ifr = compat_alloc_user_space(buf_size);
123944 rxnfc = (void __user *)ifr + ALIGN(sizeof(struct ifreq), 8);
123945
123946 - if (copy_in_user(&ifr->ifr_name, &ifr32->ifr_name, IFNAMSIZ))
123947 + if (copy_in_user(ifr->ifr_name, ifr32->ifr_name, IFNAMSIZ))
123948 return -EFAULT;
123949
123950 if (put_user(convert_in ? rxnfc : compat_ptr(data),
123951 @@ -2833,7 +2898,7 @@ static int bond_ioctl(struct net *net, unsigned int cmd,
123952 old_fs = get_fs();
123953 set_fs(KERNEL_DS);
123954 err = dev_ioctl(net, cmd,
123955 - (struct ifreq __user __force *) &kifr);
123956 + (struct ifreq __force_user *) &kifr);
123957 set_fs(old_fs);
123958
123959 return err;
123960 @@ -2926,7 +2991,7 @@ static int compat_sioc_ifmap(struct net *net, unsigned int cmd,
123961
123962 old_fs = get_fs();
123963 set_fs(KERNEL_DS);
123964 - err = dev_ioctl(net, cmd, (void __user __force *)&ifr);
123965 + err = dev_ioctl(net, cmd, (void __force_user *)&ifr);
123966 set_fs(old_fs);
123967
123968 if (cmd == SIOCGIFMAP && !err) {
123969 @@ -3010,7 +3075,7 @@ static int routing_ioctl(struct net *net, struct socket *sock,
123970 ret |= get_user(rtdev, &(ur4->rt_dev));
123971 if (rtdev) {
123972 ret |= copy_from_user(devname, compat_ptr(rtdev), 15);
123973 - r4.rt_dev = (char __user __force *)devname;
123974 + r4.rt_dev = (char __force_user *)devname;
123975 devname[15] = 0;
123976 } else
123977 r4.rt_dev = NULL;
123978 @@ -3237,8 +3302,8 @@ int kernel_getsockopt(struct socket *sock, int level, int optname,
123979 int __user *uoptlen;
123980 int err;
123981
123982 - uoptval = (char __user __force *) optval;
123983 - uoptlen = (int __user __force *) optlen;
123984 + uoptval = (char __force_user *) optval;
123985 + uoptlen = (int __force_user *) optlen;
123986
123987 set_fs(KERNEL_DS);
123988 if (level == SOL_SOCKET)
123989 @@ -3258,7 +3323,7 @@ int kernel_setsockopt(struct socket *sock, int level, int optname,
123990 char __user *uoptval;
123991 int err;
123992
123993 - uoptval = (char __user __force *) optval;
123994 + uoptval = (char __force_user *) optval;
123995
123996 set_fs(KERNEL_DS);
123997 if (level == SOL_SOCKET)
123998 diff --git a/net/sunrpc/Kconfig b/net/sunrpc/Kconfig
123999 index 04ce2c0..b1dd1bd 100644
124000 --- a/net/sunrpc/Kconfig
124001 +++ b/net/sunrpc/Kconfig
124002 @@ -38,6 +38,7 @@ config SUNRPC_DEBUG
124003 bool "RPC: Enable dprintk debugging"
124004 depends on SUNRPC && SYSCTL
124005 select DEBUG_FS
124006 + depends on !GRKERNSEC_KMEM
124007 help
124008 This option enables a sysctl-based debugging interface
124009 that is be used by the 'rpcdebug' utility to turn on or off
124010 diff --git a/net/sunrpc/auth_gss/svcauth_gss.c b/net/sunrpc/auth_gss/svcauth_gss.c
124011 index 1095be9..815d777 100644
124012 --- a/net/sunrpc/auth_gss/svcauth_gss.c
124013 +++ b/net/sunrpc/auth_gss/svcauth_gss.c
124014 @@ -1142,7 +1142,7 @@ static int gss_proxy_save_rsc(struct cache_detail *cd,
124015 uint64_t *handle)
124016 {
124017 struct rsc rsci, *rscp = NULL;
124018 - static atomic64_t ctxhctr;
124019 + static atomic64_unchecked_t ctxhctr = ATOMIC64_INIT(0);
124020 long long ctxh;
124021 struct gss_api_mech *gm = NULL;
124022 time_t expiry;
124023 @@ -1153,7 +1153,7 @@ static int gss_proxy_save_rsc(struct cache_detail *cd,
124024 status = -ENOMEM;
124025 /* the handle needs to be just a unique id,
124026 * use a static counter */
124027 - ctxh = atomic64_inc_return(&ctxhctr);
124028 + ctxh = atomic64_inc_return_unchecked(&ctxhctr);
124029
124030 /* make a copy for the caller */
124031 *handle = ctxh;
124032 diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
124033 index 2928aff..6f9efeb 100644
124034 --- a/net/sunrpc/cache.c
124035 +++ b/net/sunrpc/cache.c
124036 @@ -1597,7 +1597,7 @@ static int create_cache_proc_entries(struct cache_detail *cd, struct net *net)
124037 struct sunrpc_net *sn;
124038
124039 sn = net_generic(net, sunrpc_net_id);
124040 - cd->u.procfs.proc_ent = proc_mkdir(cd->name, sn->proc_net_rpc);
124041 + cd->u.procfs.proc_ent = proc_mkdir_restrict(cd->name, sn->proc_net_rpc);
124042 if (cd->u.procfs.proc_ent == NULL)
124043 goto out_nomem;
124044 cd->u.procfs.channel_ent = NULL;
124045 diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
124046 index 23608eb..f2b5208 100644
124047 --- a/net/sunrpc/clnt.c
124048 +++ b/net/sunrpc/clnt.c
124049 @@ -1428,7 +1428,9 @@ call_start(struct rpc_task *task)
124050 (RPC_IS_ASYNC(task) ? "async" : "sync"));
124051
124052 /* Increment call count */
124053 - task->tk_msg.rpc_proc->p_count++;
124054 + pax_open_kernel();
124055 + (*(unsigned int *)&task->tk_msg.rpc_proc->p_count)++;
124056 + pax_close_kernel();
124057 clnt->cl_stats->rpccnt++;
124058 task->tk_action = call_reserve;
124059 }
124060 diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
124061 index 337ca85..42feae8 100644
124062 --- a/net/sunrpc/sched.c
124063 +++ b/net/sunrpc/sched.c
124064 @@ -261,9 +261,9 @@ static int rpc_wait_bit_killable(struct wait_bit_key *key)
124065 #if IS_ENABLED(CONFIG_SUNRPC_DEBUG) || IS_ENABLED(CONFIG_TRACEPOINTS)
124066 static void rpc_task_set_debuginfo(struct rpc_task *task)
124067 {
124068 - static atomic_t rpc_pid;
124069 + static atomic_unchecked_t rpc_pid;
124070
124071 - task->tk_pid = atomic_inc_return(&rpc_pid);
124072 + task->tk_pid = atomic_inc_return_unchecked(&rpc_pid);
124073 }
124074 #else
124075 static inline void rpc_task_set_debuginfo(struct rpc_task *task)
124076 diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c
124077 index 2ecb994..5afb49f 100644
124078 --- a/net/sunrpc/stats.c
124079 +++ b/net/sunrpc/stats.c
124080 @@ -290,7 +290,7 @@ int rpc_proc_init(struct net *net)
124081
124082 dprintk("RPC: registering /proc/net/rpc\n");
124083 sn = net_generic(net, sunrpc_net_id);
124084 - sn->proc_net_rpc = proc_mkdir("rpc", net->proc_net);
124085 + sn->proc_net_rpc = proc_mkdir_restrict("rpc", net->proc_net);
124086 if (sn->proc_net_rpc == NULL)
124087 return -ENOMEM;
124088
124089 diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
124090 index 5a16d8d..bafbc6f 100644
124091 --- a/net/sunrpc/svc.c
124092 +++ b/net/sunrpc/svc.c
124093 @@ -1169,7 +1169,9 @@ svc_process_common(struct svc_rqst *rqstp, struct kvec *argv, struct kvec *resv)
124094 svc_putnl(resv, RPC_SUCCESS);
124095
124096 /* Bump per-procedure stats counter */
124097 - procp->pc_count++;
124098 + pax_open_kernel();
124099 + (*(unsigned int *)&procp->pc_count)++;
124100 + pax_close_kernel();
124101
124102 /* Initialize storage for argp and resp */
124103 memset(rqstp->rq_argp, 0, procp->pc_argsize);
124104 diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c
124105 index 621ca7b..78bf76b 100644
124106 --- a/net/sunrpc/svcauth_unix.c
124107 +++ b/net/sunrpc/svcauth_unix.c
124108 @@ -470,7 +470,7 @@ static void unix_gid_request(struct cache_detail *cd,
124109 (*bpp)[-1] = '\n';
124110 }
124111
124112 -static struct unix_gid *unix_gid_lookup(struct cache_detail *cd, kuid_t uid);
124113 +static struct unix_gid * __intentional_overflow(-1) unix_gid_lookup(struct cache_detail *cd, kuid_t uid);
124114
124115 static int unix_gid_parse(struct cache_detail *cd,
124116 char *mesg, int mlen)
124117 diff --git a/net/sunrpc/xprtrdma/svc_rdma.c b/net/sunrpc/xprtrdma/svc_rdma.c
124118 index 2cd252f..eefac51 100644
124119 --- a/net/sunrpc/xprtrdma/svc_rdma.c
124120 +++ b/net/sunrpc/xprtrdma/svc_rdma.c
124121 @@ -61,15 +61,15 @@ unsigned int svcrdma_max_req_size = RPCRDMA_MAX_REQ_SIZE;
124122 static unsigned int min_max_inline = 4096;
124123 static unsigned int max_max_inline = 65536;
124124
124125 -atomic_t rdma_stat_recv;
124126 -atomic_t rdma_stat_read;
124127 -atomic_t rdma_stat_write;
124128 -atomic_t rdma_stat_sq_starve;
124129 -atomic_t rdma_stat_rq_starve;
124130 -atomic_t rdma_stat_rq_poll;
124131 -atomic_t rdma_stat_rq_prod;
124132 -atomic_t rdma_stat_sq_poll;
124133 -atomic_t rdma_stat_sq_prod;
124134 +atomic_unchecked_t rdma_stat_recv;
124135 +atomic_unchecked_t rdma_stat_read;
124136 +atomic_unchecked_t rdma_stat_write;
124137 +atomic_unchecked_t rdma_stat_sq_starve;
124138 +atomic_unchecked_t rdma_stat_rq_starve;
124139 +atomic_unchecked_t rdma_stat_rq_poll;
124140 +atomic_unchecked_t rdma_stat_rq_prod;
124141 +atomic_unchecked_t rdma_stat_sq_poll;
124142 +atomic_unchecked_t rdma_stat_sq_prod;
124143
124144 /* Temporary NFS request map and context caches */
124145 struct kmem_cache *svc_rdma_map_cachep;
124146 @@ -109,7 +109,7 @@ static int read_reset_stat(struct ctl_table *table, int write,
124147 len -= *ppos;
124148 if (len > *lenp)
124149 len = *lenp;
124150 - if (len && copy_to_user(buffer, str_buf, len))
124151 + if (len > sizeof str_buf || (len && copy_to_user(buffer, str_buf, len)))
124152 return -EFAULT;
124153 *lenp = len;
124154 *ppos += len;
124155 @@ -150,63 +150,63 @@ static struct ctl_table svcrdma_parm_table[] = {
124156 {
124157 .procname = "rdma_stat_read",
124158 .data = &rdma_stat_read,
124159 - .maxlen = sizeof(atomic_t),
124160 + .maxlen = sizeof(atomic_unchecked_t),
124161 .mode = 0644,
124162 .proc_handler = read_reset_stat,
124163 },
124164 {
124165 .procname = "rdma_stat_recv",
124166 .data = &rdma_stat_recv,
124167 - .maxlen = sizeof(atomic_t),
124168 + .maxlen = sizeof(atomic_unchecked_t),
124169 .mode = 0644,
124170 .proc_handler = read_reset_stat,
124171 },
124172 {
124173 .procname = "rdma_stat_write",
124174 .data = &rdma_stat_write,
124175 - .maxlen = sizeof(atomic_t),
124176 + .maxlen = sizeof(atomic_unchecked_t),
124177 .mode = 0644,
124178 .proc_handler = read_reset_stat,
124179 },
124180 {
124181 .procname = "rdma_stat_sq_starve",
124182 .data = &rdma_stat_sq_starve,
124183 - .maxlen = sizeof(atomic_t),
124184 + .maxlen = sizeof(atomic_unchecked_t),
124185 .mode = 0644,
124186 .proc_handler = read_reset_stat,
124187 },
124188 {
124189 .procname = "rdma_stat_rq_starve",
124190 .data = &rdma_stat_rq_starve,
124191 - .maxlen = sizeof(atomic_t),
124192 + .maxlen = sizeof(atomic_unchecked_t),
124193 .mode = 0644,
124194 .proc_handler = read_reset_stat,
124195 },
124196 {
124197 .procname = "rdma_stat_rq_poll",
124198 .data = &rdma_stat_rq_poll,
124199 - .maxlen = sizeof(atomic_t),
124200 + .maxlen = sizeof(atomic_unchecked_t),
124201 .mode = 0644,
124202 .proc_handler = read_reset_stat,
124203 },
124204 {
124205 .procname = "rdma_stat_rq_prod",
124206 .data = &rdma_stat_rq_prod,
124207 - .maxlen = sizeof(atomic_t),
124208 + .maxlen = sizeof(atomic_unchecked_t),
124209 .mode = 0644,
124210 .proc_handler = read_reset_stat,
124211 },
124212 {
124213 .procname = "rdma_stat_sq_poll",
124214 .data = &rdma_stat_sq_poll,
124215 - .maxlen = sizeof(atomic_t),
124216 + .maxlen = sizeof(atomic_unchecked_t),
124217 .mode = 0644,
124218 .proc_handler = read_reset_stat,
124219 },
124220 {
124221 .procname = "rdma_stat_sq_prod",
124222 .data = &rdma_stat_sq_prod,
124223 - .maxlen = sizeof(atomic_t),
124224 + .maxlen = sizeof(atomic_unchecked_t),
124225 .mode = 0644,
124226 .proc_handler = read_reset_stat,
124227 },
124228 diff --git a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
124229 index 96d886a..35a2137 100644
124230 --- a/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
124231 +++ b/net/sunrpc/xprtrdma/svc_rdma_recvfrom.c
124232 @@ -210,7 +210,7 @@ int rdma_read_chunk_lcl(struct svcxprt_rdma *xprt,
124233 *page_no = pg_no;
124234 *page_offset = pg_off;
124235 ret = read;
124236 - atomic_inc(&rdma_stat_read);
124237 + atomic_inc_unchecked(&rdma_stat_read);
124238 return ret;
124239 err:
124240 svc_rdma_unmap_dma(ctxt);
124241 @@ -347,7 +347,7 @@ int rdma_read_chunk_frmr(struct svcxprt_rdma *xprt,
124242 *page_no = pg_no;
124243 *page_offset = pg_off;
124244 ret = read;
124245 - atomic_inc(&rdma_stat_read);
124246 + atomic_inc_unchecked(&rdma_stat_read);
124247 return ret;
124248 err:
124249 svc_rdma_unmap_dma(ctxt);
124250 @@ -601,7 +601,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
124251 dto_q);
124252 list_del_init(&ctxt->dto_q);
124253 } else {
124254 - atomic_inc(&rdma_stat_rq_starve);
124255 + atomic_inc_unchecked(&rdma_stat_rq_starve);
124256 clear_bit(XPT_DATA, &xprt->xpt_flags);
124257 ctxt = NULL;
124258 }
124259 @@ -619,7 +619,7 @@ int svc_rdma_recvfrom(struct svc_rqst *rqstp)
124260 }
124261 dprintk("svcrdma: processing ctxt=%p on xprt=%p, rqstp=%p, status=%d\n",
124262 ctxt, rdma_xprt, rqstp, ctxt->wc_status);
124263 - atomic_inc(&rdma_stat_recv);
124264 + atomic_inc_unchecked(&rdma_stat_recv);
124265
124266 /* Build up the XDR from the receive buffers. */
124267 rdma_build_arg_xdr(rqstp, ctxt, ctxt->byte_len);
124268 diff --git a/net/sunrpc/xprtrdma/svc_rdma_sendto.c b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
124269 index 95412ab..29e8f37 100644
124270 --- a/net/sunrpc/xprtrdma/svc_rdma_sendto.c
124271 +++ b/net/sunrpc/xprtrdma/svc_rdma_sendto.c
124272 @@ -218,7 +218,7 @@ static int send_write(struct svcxprt_rdma *xprt, struct svc_rqst *rqstp,
124273 write_wr.wr.rdma.remote_addr = to;
124274
124275 /* Post It */
124276 - atomic_inc(&rdma_stat_write);
124277 + atomic_inc_unchecked(&rdma_stat_write);
124278 if (svc_rdma_send(xprt, &write_wr))
124279 goto err;
124280 return write_len - bc;
124281 diff --git a/net/sunrpc/xprtrdma/svc_rdma_transport.c b/net/sunrpc/xprtrdma/svc_rdma_transport.c
124282 index 48f6de9..e89176b 100644
124283 --- a/net/sunrpc/xprtrdma/svc_rdma_transport.c
124284 +++ b/net/sunrpc/xprtrdma/svc_rdma_transport.c
124285 @@ -288,7 +288,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
124286 return;
124287
124288 ib_req_notify_cq(xprt->sc_rq_cq, IB_CQ_NEXT_COMP);
124289 - atomic_inc(&rdma_stat_rq_poll);
124290 + atomic_inc_unchecked(&rdma_stat_rq_poll);
124291
124292 while ((ret = ib_poll_cq(xprt->sc_rq_cq, 1, &wc)) > 0) {
124293 ctxt = (struct svc_rdma_op_ctxt *)(unsigned long)wc.wr_id;
124294 @@ -310,7 +310,7 @@ static void rq_cq_reap(struct svcxprt_rdma *xprt)
124295 }
124296
124297 if (ctxt)
124298 - atomic_inc(&rdma_stat_rq_prod);
124299 + atomic_inc_unchecked(&rdma_stat_rq_prod);
124300
124301 set_bit(XPT_DATA, &xprt->sc_xprt.xpt_flags);
124302 /*
124303 @@ -389,7 +389,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
124304 return;
124305
124306 ib_req_notify_cq(xprt->sc_sq_cq, IB_CQ_NEXT_COMP);
124307 - atomic_inc(&rdma_stat_sq_poll);
124308 + atomic_inc_unchecked(&rdma_stat_sq_poll);
124309 while ((ret = ib_poll_cq(cq, ARRAY_SIZE(wc_a), wc_a)) > 0) {
124310 int i;
124311
124312 @@ -418,7 +418,7 @@ static void sq_cq_reap(struct svcxprt_rdma *xprt)
124313 }
124314
124315 if (ctxt)
124316 - atomic_inc(&rdma_stat_sq_prod);
124317 + atomic_inc_unchecked(&rdma_stat_sq_prod);
124318 }
124319
124320 static void sq_comp_handler(struct ib_cq *cq, void *cq_context)
124321 @@ -1254,7 +1254,7 @@ int svc_rdma_send(struct svcxprt_rdma *xprt, struct ib_send_wr *wr)
124322 spin_lock_bh(&xprt->sc_lock);
124323 if (xprt->sc_sq_depth < atomic_read(&xprt->sc_sq_count) + wr_count) {
124324 spin_unlock_bh(&xprt->sc_lock);
124325 - atomic_inc(&rdma_stat_sq_starve);
124326 + atomic_inc_unchecked(&rdma_stat_sq_starve);
124327
124328 /* See if we can opportunistically reap SQ WR to make room */
124329 sq_cq_reap(xprt);
124330 diff --git a/net/sysctl_net.c b/net/sysctl_net.c
124331 index e7000be..e3b0ba7 100644
124332 --- a/net/sysctl_net.c
124333 +++ b/net/sysctl_net.c
124334 @@ -46,7 +46,7 @@ static int net_ctl_permissions(struct ctl_table_header *head,
124335 kgid_t root_gid = make_kgid(net->user_ns, 0);
124336
124337 /* Allow network administrator to have same access as root. */
124338 - if (ns_capable(net->user_ns, CAP_NET_ADMIN) ||
124339 + if (ns_capable_nolog(net->user_ns, CAP_NET_ADMIN) ||
124340 uid_eq(root_uid, current_euid())) {
124341 int mode = (table->mode >> 6) & 7;
124342 return (mode << 6) | (mode << 3) | mode;
124343 diff --git a/net/tipc/netlink_compat.c b/net/tipc/netlink_compat.c
124344 index 53e0fee..ed24ca6 100644
124345 --- a/net/tipc/netlink_compat.c
124346 +++ b/net/tipc/netlink_compat.c
124347 @@ -65,13 +65,13 @@ struct tipc_nl_compat_cmd_dump {
124348 int (*header)(struct tipc_nl_compat_msg *);
124349 int (*dumpit)(struct sk_buff *, struct netlink_callback *);
124350 int (*format)(struct tipc_nl_compat_msg *msg, struct nlattr **attrs);
124351 -};
124352 +} __no_const;
124353
124354 struct tipc_nl_compat_cmd_doit {
124355 int (*doit)(struct sk_buff *skb, struct genl_info *info);
124356 int (*transcode)(struct tipc_nl_compat_cmd_doit *cmd,
124357 struct sk_buff *skb, struct tipc_nl_compat_msg *msg);
124358 -};
124359 +} __no_const;
124360
124361 static int tipc_skb_tailroom(struct sk_buff *skb)
124362 {
124363 @@ -836,7 +836,10 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock)
124364 void *hdr;
124365 struct nlattr *nest;
124366 struct sk_buff *args;
124367 - struct tipc_nl_compat_cmd_dump dump;
124368 + static struct tipc_nl_compat_cmd_dump dump = {
124369 + .dumpit = tipc_nl_publ_dump,
124370 + .format = __tipc_nl_compat_publ_dump,
124371 + };
124372
124373 args = nlmsg_new(NLMSG_GOODSIZE, GFP_KERNEL);
124374 if (!args)
124375 @@ -859,9 +862,6 @@ static int tipc_nl_compat_publ_dump(struct tipc_nl_compat_msg *msg, u32 sock)
124376 nla_nest_end(args, nest);
124377 genlmsg_end(args, hdr);
124378
124379 - dump.dumpit = tipc_nl_publ_dump;
124380 - dump.format = __tipc_nl_compat_publ_dump;
124381 -
124382 err = __tipc_nl_compat_dumpit(&dump, msg, args);
124383
124384 kfree_skb(args);
124385 diff --git a/net/tipc/subscr.c b/net/tipc/subscr.c
124386 index 350cca3..a108fc5 100644
124387 --- a/net/tipc/subscr.c
124388 +++ b/net/tipc/subscr.c
124389 @@ -75,7 +75,7 @@ static void tipc_subscrp_send_event(struct tipc_subscription *sub,
124390 struct tipc_subscriber *subscriber = sub->subscriber;
124391 struct kvec msg_sect;
124392
124393 - msg_sect.iov_base = (void *)&sub->evt;
124394 + msg_sect.iov_base = &sub->evt;
124395 msg_sect.iov_len = sizeof(struct tipc_event);
124396 sub->evt.event = htohl(event, sub->swap);
124397 sub->evt.found_lower = htohl(found_lower, sub->swap);
124398 diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
124399 index 94f6582..b71ef93 100644
124400 --- a/net/unix/af_unix.c
124401 +++ b/net/unix/af_unix.c
124402 @@ -802,6 +802,12 @@ static struct sock *unix_find_other(struct net *net,
124403 err = -ECONNREFUSED;
124404 if (!S_ISSOCK(inode->i_mode))
124405 goto put_fail;
124406 +
124407 + if (!gr_acl_handle_unix(path.dentry, path.mnt)) {
124408 + err = -EACCES;
124409 + goto put_fail;
124410 + }
124411 +
124412 u = unix_find_socket_byinode(inode);
124413 if (!u)
124414 goto put_fail;
124415 @@ -822,6 +828,13 @@ static struct sock *unix_find_other(struct net *net,
124416 if (u) {
124417 struct dentry *dentry;
124418 dentry = unix_sk(u)->path.dentry;
124419 +
124420 + if (!gr_handle_chroot_unix(pid_vnr(u->sk_peer_pid))) {
124421 + err = -EPERM;
124422 + sock_put(u);
124423 + goto fail;
124424 + }
124425 +
124426 if (dentry)
124427 touch_atime(&unix_sk(u)->path);
124428 } else
124429 @@ -855,12 +868,18 @@ static int unix_mknod(const char *sun_path, umode_t mode, struct path *res)
124430 */
124431 err = security_path_mknod(&path, dentry, mode, 0);
124432 if (!err) {
124433 + if (!gr_acl_handle_mknod(dentry, path.dentry, path.mnt, mode)) {
124434 + err = -EACCES;
124435 + goto out;
124436 + }
124437 err = vfs_mknod(d_inode(path.dentry), dentry, mode, 0);
124438 if (!err) {
124439 res->mnt = mntget(path.mnt);
124440 res->dentry = dget(dentry);
124441 + gr_handle_create(dentry, path.mnt);
124442 }
124443 }
124444 +out:
124445 done_path_create(&path, dentry);
124446 return err;
124447 }
124448 @@ -2455,11 +2474,14 @@ static unsigned int unix_dgram_poll(struct file *file, struct socket *sock,
124449 writable = unix_writable(sk);
124450 other = unix_peer_get(sk);
124451 if (other) {
124452 - if (unix_peer(other) != sk) {
124453 + unix_state_lock(other);
124454 + if (!sock_flag(other, SOCK_DEAD) && unix_peer(other) != sk) {
124455 + unix_state_unlock(other);
124456 sock_poll_wait(file, &unix_sk(other)->peer_wait, wait);
124457 if (unix_recvq_full(other))
124458 writable = 0;
124459 - }
124460 + } else
124461 + unix_state_unlock(other);
124462 sock_put(other);
124463 }
124464
124465 @@ -2556,9 +2578,13 @@ static int unix_seq_show(struct seq_file *seq, void *v)
124466 seq_puts(seq, "Num RefCount Protocol Flags Type St "
124467 "Inode Path\n");
124468 else {
124469 - struct sock *s = v;
124470 + struct sock *s = v, *peer;
124471 struct unix_sock *u = unix_sk(s);
124472 unix_state_lock(s);
124473 + peer = unix_peer(s);
124474 + unix_state_unlock(s);
124475 +
124476 + unix_state_double_lock(s, peer);
124477
124478 seq_printf(seq, "%pK: %08X %08X %08X %04X %02X %5lu",
124479 s,
124480 @@ -2583,10 +2609,29 @@ static int unix_seq_show(struct seq_file *seq, void *v)
124481 seq_putc(seq, '@');
124482 i++;
124483 }
124484 - for ( ; i < len; i++)
124485 - seq_putc(seq, u->addr->name->sun_path[i]);
124486 - }
124487 - unix_state_unlock(s);
124488 + for ( ; i < len; i++) {
124489 + char c = u->addr->name->sun_path[i];
124490 + switch (c) {
124491 + case '\n':
124492 + seq_putc(seq, '\\');
124493 + seq_putc(seq, 'n');
124494 + break;
124495 + case '\t':
124496 + seq_putc(seq, '\\');
124497 + seq_putc(seq, 't');
124498 + break;
124499 + case '\\':
124500 + seq_putc(seq, '\\');
124501 + seq_putc(seq, '\\');
124502 + break;
124503 + default:
124504 + seq_putc(seq, c);
124505 + }
124506 + }
124507 + } else if (peer)
124508 + seq_printf(seq, " P%lu", sock_i_ino(peer));
124509 +
124510 + unix_state_double_unlock(s, peer);
124511 seq_putc(seq, '\n');
124512 }
124513
124514 diff --git a/net/unix/sysctl_net_unix.c b/net/unix/sysctl_net_unix.c
124515 index b3d5150..ff3a837 100644
124516 --- a/net/unix/sysctl_net_unix.c
124517 +++ b/net/unix/sysctl_net_unix.c
124518 @@ -28,7 +28,7 @@ static struct ctl_table unix_table[] = {
124519
124520 int __net_init unix_sysctl_register(struct net *net)
124521 {
124522 - struct ctl_table *table;
124523 + ctl_table_no_const *table;
124524
124525 table = kmemdup(unix_table, sizeof(unix_table), GFP_KERNEL);
124526 if (table == NULL)
124527 diff --git a/net/vmw_vsock/vmci_transport_notify.c b/net/vmw_vsock/vmci_transport_notify.c
124528 index 9b7f207..2596621 100644
124529 --- a/net/vmw_vsock/vmci_transport_notify.c
124530 +++ b/net/vmw_vsock/vmci_transport_notify.c
124531 @@ -662,19 +662,19 @@ static void vmci_transport_notify_pkt_process_negotiate(struct sock *sk)
124532
124533 /* Socket control packet based operations. */
124534 struct vmci_transport_notify_ops vmci_transport_notify_pkt_ops = {
124535 - vmci_transport_notify_pkt_socket_init,
124536 - vmci_transport_notify_pkt_socket_destruct,
124537 - vmci_transport_notify_pkt_poll_in,
124538 - vmci_transport_notify_pkt_poll_out,
124539 - vmci_transport_notify_pkt_handle_pkt,
124540 - vmci_transport_notify_pkt_recv_init,
124541 - vmci_transport_notify_pkt_recv_pre_block,
124542 - vmci_transport_notify_pkt_recv_pre_dequeue,
124543 - vmci_transport_notify_pkt_recv_post_dequeue,
124544 - vmci_transport_notify_pkt_send_init,
124545 - vmci_transport_notify_pkt_send_pre_block,
124546 - vmci_transport_notify_pkt_send_pre_enqueue,
124547 - vmci_transport_notify_pkt_send_post_enqueue,
124548 - vmci_transport_notify_pkt_process_request,
124549 - vmci_transport_notify_pkt_process_negotiate,
124550 + .socket_init = vmci_transport_notify_pkt_socket_init,
124551 + .socket_destruct = vmci_transport_notify_pkt_socket_destruct,
124552 + .poll_in = vmci_transport_notify_pkt_poll_in,
124553 + .poll_out = vmci_transport_notify_pkt_poll_out,
124554 + .handle_notify_pkt = vmci_transport_notify_pkt_handle_pkt,
124555 + .recv_init = vmci_transport_notify_pkt_recv_init,
124556 + .recv_pre_block = vmci_transport_notify_pkt_recv_pre_block,
124557 + .recv_pre_dequeue = vmci_transport_notify_pkt_recv_pre_dequeue,
124558 + .recv_post_dequeue = vmci_transport_notify_pkt_recv_post_dequeue,
124559 + .send_init = vmci_transport_notify_pkt_send_init,
124560 + .send_pre_block = vmci_transport_notify_pkt_send_pre_block,
124561 + .send_pre_enqueue = vmci_transport_notify_pkt_send_pre_enqueue,
124562 + .send_post_enqueue = vmci_transport_notify_pkt_send_post_enqueue,
124563 + .process_request = vmci_transport_notify_pkt_process_request,
124564 + .process_negotiate = vmci_transport_notify_pkt_process_negotiate,
124565 };
124566 diff --git a/net/vmw_vsock/vmci_transport_notify_qstate.c b/net/vmw_vsock/vmci_transport_notify_qstate.c
124567 index dc9c792..3089de0 100644
124568 --- a/net/vmw_vsock/vmci_transport_notify_qstate.c
124569 +++ b/net/vmw_vsock/vmci_transport_notify_qstate.c
124570 @@ -420,19 +420,19 @@ vmci_transport_notify_pkt_send_pre_enqueue(
124571
124572 /* Socket always on control packet based operations. */
124573 struct vmci_transport_notify_ops vmci_transport_notify_pkt_q_state_ops = {
124574 - vmci_transport_notify_pkt_socket_init,
124575 - vmci_transport_notify_pkt_socket_destruct,
124576 - vmci_transport_notify_pkt_poll_in,
124577 - vmci_transport_notify_pkt_poll_out,
124578 - vmci_transport_notify_pkt_handle_pkt,
124579 - vmci_transport_notify_pkt_recv_init,
124580 - vmci_transport_notify_pkt_recv_pre_block,
124581 - vmci_transport_notify_pkt_recv_pre_dequeue,
124582 - vmci_transport_notify_pkt_recv_post_dequeue,
124583 - vmci_transport_notify_pkt_send_init,
124584 - vmci_transport_notify_pkt_send_pre_block,
124585 - vmci_transport_notify_pkt_send_pre_enqueue,
124586 - vmci_transport_notify_pkt_send_post_enqueue,
124587 - vmci_transport_notify_pkt_process_request,
124588 - vmci_transport_notify_pkt_process_negotiate,
124589 + .socket_init = vmci_transport_notify_pkt_socket_init,
124590 + .socket_destruct = vmci_transport_notify_pkt_socket_destruct,
124591 + .poll_in = vmci_transport_notify_pkt_poll_in,
124592 + .poll_out = vmci_transport_notify_pkt_poll_out,
124593 + .handle_notify_pkt = vmci_transport_notify_pkt_handle_pkt,
124594 + .recv_init = vmci_transport_notify_pkt_recv_init,
124595 + .recv_pre_block = vmci_transport_notify_pkt_recv_pre_block,
124596 + .recv_pre_dequeue = vmci_transport_notify_pkt_recv_pre_dequeue,
124597 + .recv_post_dequeue = vmci_transport_notify_pkt_recv_post_dequeue,
124598 + .send_init = vmci_transport_notify_pkt_send_init,
124599 + .send_pre_block = vmci_transport_notify_pkt_send_pre_block,
124600 + .send_pre_enqueue = vmci_transport_notify_pkt_send_pre_enqueue,
124601 + .send_post_enqueue = vmci_transport_notify_pkt_send_post_enqueue,
124602 + .process_request = vmci_transport_notify_pkt_process_request,
124603 + .process_negotiate = vmci_transport_notify_pkt_process_negotiate,
124604 };
124605 diff --git a/net/wireless/wext-core.c b/net/wireless/wext-core.c
124606 index c8717c1..08539f5 100644
124607 --- a/net/wireless/wext-core.c
124608 +++ b/net/wireless/wext-core.c
124609 @@ -748,8 +748,7 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
124610 */
124611
124612 /* Support for very large requests */
124613 - if ((descr->flags & IW_DESCR_FLAG_NOMAX) &&
124614 - (user_length > descr->max_tokens)) {
124615 + if (user_length > descr->max_tokens) {
124616 /* Allow userspace to GET more than max so
124617 * we can support any size GET requests.
124618 * There is still a limit : -ENOMEM.
124619 @@ -788,22 +787,6 @@ static int ioctl_standard_iw_point(struct iw_point *iwp, unsigned int cmd,
124620 }
124621 }
124622
124623 - if (IW_IS_GET(cmd) && !(descr->flags & IW_DESCR_FLAG_NOMAX)) {
124624 - /*
124625 - * If this is a GET, but not NOMAX, it means that the extra
124626 - * data is not bounded by userspace, but by max_tokens. Thus
124627 - * set the length to max_tokens. This matches the extra data
124628 - * allocation.
124629 - * The driver should fill it with the number of tokens it
124630 - * provided, and it may check iwp->length rather than having
124631 - * knowledge of max_tokens. If the driver doesn't change the
124632 - * iwp->length, this ioctl just copies back max_token tokens
124633 - * filled with zeroes. Hopefully the driver isn't claiming
124634 - * them to be valid data.
124635 - */
124636 - iwp->length = descr->max_tokens;
124637 - }
124638 -
124639 err = handler(dev, info, (union iwreq_data *) iwp, extra);
124640
124641 iwp->length += essid_compat;
124642 diff --git a/net/x25/sysctl_net_x25.c b/net/x25/sysctl_net_x25.c
124643 index 4323952..a06dfe1 100644
124644 --- a/net/x25/sysctl_net_x25.c
124645 +++ b/net/x25/sysctl_net_x25.c
124646 @@ -70,7 +70,7 @@ static struct ctl_table x25_table[] = {
124647 .mode = 0644,
124648 .proc_handler = proc_dointvec,
124649 },
124650 - { 0, },
124651 + { },
124652 };
124653
124654 void __init x25_register_sysctl(void)
124655 diff --git a/net/x25/x25_proc.c b/net/x25/x25_proc.c
124656 index 0917f04..f4e3d8c 100644
124657 --- a/net/x25/x25_proc.c
124658 +++ b/net/x25/x25_proc.c
124659 @@ -209,7 +209,7 @@ static const struct file_operations x25_seq_forward_fops = {
124660
124661 int __init x25_proc_init(void)
124662 {
124663 - if (!proc_mkdir("x25", init_net.proc_net))
124664 + if (!proc_mkdir_restrict("x25", init_net.proc_net))
124665 return -ENOMEM;
124666
124667 if (!proc_create("x25/route", S_IRUGO, init_net.proc_net,
124668 diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
124669 index 18cead7..1cf90dc 100644
124670 --- a/net/xfrm/xfrm_policy.c
124671 +++ b/net/xfrm/xfrm_policy.c
124672 @@ -323,7 +323,7 @@ static void xfrm_policy_kill(struct xfrm_policy *policy)
124673 {
124674 policy->walk.dead = 1;
124675
124676 - atomic_inc(&policy->genid);
124677 + atomic_inc_unchecked(&policy->genid);
124678
124679 if (del_timer(&policy->polq.hold_timer))
124680 xfrm_pol_put(policy);
124681 @@ -773,7 +773,7 @@ int xfrm_policy_insert(int dir, struct xfrm_policy *policy, int excl)
124682 else
124683 hlist_add_head(&policy->bydst, chain);
124684 __xfrm_policy_link(policy, dir);
124685 - atomic_inc(&net->xfrm.flow_cache_genid);
124686 + atomic_inc_unchecked(&net->xfrm.flow_cache_genid);
124687
124688 /* After previous checking, family can either be AF_INET or AF_INET6 */
124689 if (policy->family == AF_INET)
124690 @@ -1874,7 +1874,7 @@ xfrm_resolve_and_create_bundle(struct xfrm_policy **pols, int num_pols,
124691
124692 xdst->num_pols = num_pols;
124693 memcpy(xdst->pols, pols, sizeof(struct xfrm_policy *) * num_pols);
124694 - xdst->policy_genid = atomic_read(&pols[0]->genid);
124695 + xdst->policy_genid = atomic_read_unchecked(&pols[0]->genid);
124696
124697 return xdst;
124698 }
124699 @@ -2687,10 +2687,11 @@ void xfrm_garbage_collect(struct net *net)
124700 }
124701 EXPORT_SYMBOL(xfrm_garbage_collect);
124702
124703 -static void xfrm_garbage_collect_deferred(struct net *net)
124704 +void xfrm_garbage_collect_deferred(struct net *net)
124705 {
124706 flow_cache_flush_deferred(net);
124707 }
124708 +EXPORT_SYMBOL(xfrm_garbage_collect_deferred);
124709
124710 static void xfrm_init_pmtu(struct dst_entry *dst)
124711 {
124712 @@ -2740,7 +2741,7 @@ static int xfrm_bundle_ok(struct xfrm_dst *first)
124713 if (xdst->xfrm_genid != dst->xfrm->genid)
124714 return 0;
124715 if (xdst->num_pols > 0 &&
124716 - xdst->policy_genid != atomic_read(&xdst->pols[0]->genid))
124717 + xdst->policy_genid != atomic_read_unchecked(&xdst->pols[0]->genid))
124718 return 0;
124719
124720 mtu = dst_mtu(dst->child);
124721 @@ -2828,8 +2829,6 @@ int xfrm_policy_register_afinfo(struct xfrm_policy_afinfo *afinfo)
124722 dst_ops->link_failure = xfrm_link_failure;
124723 if (likely(dst_ops->neigh_lookup == NULL))
124724 dst_ops->neigh_lookup = xfrm_neigh_lookup;
124725 - if (likely(afinfo->garbage_collect == NULL))
124726 - afinfo->garbage_collect = xfrm_garbage_collect_deferred;
124727 rcu_assign_pointer(xfrm_policy_afinfo[afinfo->family], afinfo);
124728 }
124729 spin_unlock(&xfrm_policy_afinfo_lock);
124730 @@ -2883,7 +2882,6 @@ int xfrm_policy_unregister_afinfo(struct xfrm_policy_afinfo *afinfo)
124731 dst_ops->check = NULL;
124732 dst_ops->negative_advice = NULL;
124733 dst_ops->link_failure = NULL;
124734 - afinfo->garbage_collect = NULL;
124735 }
124736 return err;
124737 }
124738 @@ -3281,7 +3279,7 @@ static int xfrm_policy_migrate(struct xfrm_policy *pol,
124739 sizeof(pol->xfrm_vec[i].saddr));
124740 pol->xfrm_vec[i].encap_family = mp->new_family;
124741 /* flush bundles */
124742 - atomic_inc(&pol->genid);
124743 + atomic_inc_unchecked(&pol->genid);
124744 }
124745 }
124746
124747 diff --git a/net/xfrm/xfrm_state.c b/net/xfrm/xfrm_state.c
124748 index 9895a8c..e1f3bfb 100644
124749 --- a/net/xfrm/xfrm_state.c
124750 +++ b/net/xfrm/xfrm_state.c
124751 @@ -166,12 +166,14 @@ int xfrm_register_type(const struct xfrm_type *type, unsigned short family)
124752
124753 if (unlikely(afinfo == NULL))
124754 return -EAFNOSUPPORT;
124755 - typemap = afinfo->type_map;
124756 + typemap = (const struct xfrm_type **)afinfo->type_map;
124757 spin_lock_bh(&xfrm_type_lock);
124758
124759 - if (likely(typemap[type->proto] == NULL))
124760 + if (likely(typemap[type->proto] == NULL)) {
124761 + pax_open_kernel();
124762 typemap[type->proto] = type;
124763 - else
124764 + pax_close_kernel();
124765 + } else
124766 err = -EEXIST;
124767 spin_unlock_bh(&xfrm_type_lock);
124768 xfrm_state_put_afinfo(afinfo);
124769 @@ -187,13 +189,16 @@ int xfrm_unregister_type(const struct xfrm_type *type, unsigned short family)
124770
124771 if (unlikely(afinfo == NULL))
124772 return -EAFNOSUPPORT;
124773 - typemap = afinfo->type_map;
124774 + typemap = (const struct xfrm_type **)afinfo->type_map;
124775 spin_lock_bh(&xfrm_type_lock);
124776
124777 if (unlikely(typemap[type->proto] != type))
124778 err = -ENOENT;
124779 - else
124780 + else {
124781 + pax_open_kernel();
124782 typemap[type->proto] = NULL;
124783 + pax_close_kernel();
124784 + }
124785 spin_unlock_bh(&xfrm_type_lock);
124786 xfrm_state_put_afinfo(afinfo);
124787 return err;
124788 @@ -203,7 +208,6 @@ EXPORT_SYMBOL(xfrm_unregister_type);
124789 static const struct xfrm_type *xfrm_get_type(u8 proto, unsigned short family)
124790 {
124791 struct xfrm_state_afinfo *afinfo;
124792 - const struct xfrm_type **typemap;
124793 const struct xfrm_type *type;
124794 int modload_attempted = 0;
124795
124796 @@ -211,9 +215,8 @@ retry:
124797 afinfo = xfrm_state_get_afinfo(family);
124798 if (unlikely(afinfo == NULL))
124799 return NULL;
124800 - typemap = afinfo->type_map;
124801
124802 - type = typemap[proto];
124803 + type = afinfo->type_map[proto];
124804 if (unlikely(type && !try_module_get(type->owner)))
124805 type = NULL;
124806 if (!type && !modload_attempted) {
124807 @@ -247,7 +250,7 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family)
124808 return -EAFNOSUPPORT;
124809
124810 err = -EEXIST;
124811 - modemap = afinfo->mode_map;
124812 + modemap = (struct xfrm_mode **)afinfo->mode_map;
124813 spin_lock_bh(&xfrm_mode_lock);
124814 if (modemap[mode->encap])
124815 goto out;
124816 @@ -256,8 +259,10 @@ int xfrm_register_mode(struct xfrm_mode *mode, int family)
124817 if (!try_module_get(afinfo->owner))
124818 goto out;
124819
124820 - mode->afinfo = afinfo;
124821 + pax_open_kernel();
124822 + *(const void **)&mode->afinfo = afinfo;
124823 modemap[mode->encap] = mode;
124824 + pax_close_kernel();
124825 err = 0;
124826
124827 out:
124828 @@ -281,10 +286,12 @@ int xfrm_unregister_mode(struct xfrm_mode *mode, int family)
124829 return -EAFNOSUPPORT;
124830
124831 err = -ENOENT;
124832 - modemap = afinfo->mode_map;
124833 + modemap = (struct xfrm_mode **)afinfo->mode_map;
124834 spin_lock_bh(&xfrm_mode_lock);
124835 if (likely(modemap[mode->encap] == mode)) {
124836 + pax_open_kernel();
124837 modemap[mode->encap] = NULL;
124838 + pax_close_kernel();
124839 module_put(mode->afinfo->owner);
124840 err = 0;
124841 }
124842 @@ -1505,10 +1512,10 @@ EXPORT_SYMBOL(xfrm_find_acq_byseq);
124843 u32 xfrm_get_acqseq(void)
124844 {
124845 u32 res;
124846 - static atomic_t acqseq;
124847 + static atomic_unchecked_t acqseq;
124848
124849 do {
124850 - res = atomic_inc_return(&acqseq);
124851 + res = atomic_inc_return_unchecked(&acqseq);
124852 } while (!res);
124853
124854 return res;
124855 diff --git a/net/xfrm/xfrm_sysctl.c b/net/xfrm/xfrm_sysctl.c
124856 index 05a6e3d..6716ec9 100644
124857 --- a/net/xfrm/xfrm_sysctl.c
124858 +++ b/net/xfrm/xfrm_sysctl.c
124859 @@ -42,7 +42,7 @@ static struct ctl_table xfrm_table[] = {
124860
124861 int __net_init xfrm_sysctl_init(struct net *net)
124862 {
124863 - struct ctl_table *table;
124864 + ctl_table_no_const *table;
124865
124866 __xfrm_sysctl_init(net);
124867
124868 diff --git a/scripts/Kbuild.include b/scripts/Kbuild.include
124869 index d3437b8..6c3becb 100644
124870 --- a/scripts/Kbuild.include
124871 +++ b/scripts/Kbuild.include
124872 @@ -142,7 +142,7 @@ cc-ifversion = $(shell [ $(cc-version) $(1) $(2) ] && echo $(3) || echo $(4))
124873 # cc-ldoption
124874 # Usage: ldflags += $(call cc-ldoption, -Wl$(comma)--hash-style=both)
124875 cc-ldoption = $(call try-run,\
124876 - $(CC) $(1) -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
124877 + $(CC) $(1) -Wl,-r -nostdlib -x c /dev/null -o "$$TMP",$(1),$(2))
124878
124879 # ld-option
124880 # Usage: LDFLAGS += $(call ld-option, -X)
124881 diff --git a/scripts/Makefile.build b/scripts/Makefile.build
124882 index 01df30a..b687dbf 100644
124883 --- a/scripts/Makefile.build
124884 +++ b/scripts/Makefile.build
124885 @@ -60,7 +60,7 @@ endif
124886 endif
124887
124888 # Do not include host rules unless needed
124889 -ifneq ($(hostprogs-y)$(hostprogs-m),)
124890 +ifneq ($(hostprogs-y)$(hostprogs-m)$(hostlibs-y)$(hostlibs-m)$(hostcxxlibs-y)$(hostcxxlibs-m),)
124891 include scripts/Makefile.host
124892 endif
124893
124894 diff --git a/scripts/Makefile.clean b/scripts/Makefile.clean
124895 index 55c96cb..e4e88ab 100644
124896 --- a/scripts/Makefile.clean
124897 +++ b/scripts/Makefile.clean
124898 @@ -38,7 +38,8 @@ subdir-ymn := $(addprefix $(obj)/,$(subdir-ymn))
124899 __clean-files := $(extra-y) $(extra-m) $(extra-) \
124900 $(always) $(targets) $(clean-files) \
124901 $(host-progs) \
124902 - $(hostprogs-y) $(hostprogs-m) $(hostprogs-)
124903 + $(hostprogs-y) $(hostprogs-m) $(hostprogs-) \
124904 + $(hostlibs-y) $(hostlibs-m) $(hostlibs-)
124905
124906 __clean-files := $(filter-out $(no-clean-files), $(__clean-files))
124907
124908 diff --git a/scripts/Makefile.host b/scripts/Makefile.host
124909 index 133edfa..c9aa07f 100644
124910 --- a/scripts/Makefile.host
124911 +++ b/scripts/Makefile.host
124912 @@ -20,7 +20,19 @@
124913 # Will compile qconf as a C++ program, and menu as a C program.
124914 # They are linked as C++ code to the executable qconf
124915
124916 +# hostprogs-y := conf
124917 +# conf-objs := conf.o libkconfig.so
124918 +# libkconfig-objs := expr.o type.o
124919 +# Will create a shared library named libkconfig.so that consists of
124920 +# expr.o and type.o (they are both compiled as C code and the object files
124921 +# are made as position independent code).
124922 +# conf.c is compiled as a C program, and conf.o is linked together with
124923 +# libkconfig.so as the executable conf.
124924 +# Note: Shared libraries consisting of C++ files are not supported
124925 +
124926 __hostprogs := $(sort $(hostprogs-y) $(hostprogs-m))
124927 +__hostlibs := $(sort $(hostlibs-y) $(hostlibs-m))
124928 +__hostcxxlibs := $(sort $(hostcxxlibs-y) $(hostcxxlibs-m))
124929
124930 # C code
124931 # Executables compiled from a single .c file
124932 @@ -42,6 +54,19 @@ host-cxxmulti := $(foreach m,$(__hostprogs),$(if $($(m)-cxxobjs),$(m)))
124933 # C++ Object (.o) files compiled from .cc files
124934 host-cxxobjs := $(sort $(foreach m,$(host-cxxmulti),$($(m)-cxxobjs)))
124935
124936 +# Shared libaries (only .c supported)
124937 +# Shared libraries (.so) - all .so files referenced in "xxx-objs"
124938 +host-cshlib := $(sort $(filter %.so, $(host-cobjs)))
124939 +host-cshlib += $(sort $(filter %.so, $(__hostlibs)))
124940 +host-cxxshlib := $(sort $(filter %.so, $(__hostcxxlibs)))
124941 +# Remove .so files from "xxx-objs"
124942 +host-cobjs := $(filter-out %.so,$(host-cobjs))
124943 +host-cxxobjs := $(filter-out %.so,$(host-cxxobjs))
124944 +
124945 +# Object (.o) files used by the shared libaries
124946 +host-cshobjs := $(sort $(foreach m,$(host-cshlib),$($(m:.so=-objs))))
124947 +host-cxxshobjs := $(sort $(foreach m,$(host-cxxshlib),$($(m:.so=-objs))))
124948 +
124949 # output directory for programs/.o files
124950 # hostprogs-y := tools/build may have been specified.
124951 # Retrieve also directory of .o files from prog-objs or prog-cxxobjs notation
124952 @@ -56,6 +81,10 @@ host-cmulti := $(addprefix $(obj)/,$(host-cmulti))
124953 host-cobjs := $(addprefix $(obj)/,$(host-cobjs))
124954 host-cxxmulti := $(addprefix $(obj)/,$(host-cxxmulti))
124955 host-cxxobjs := $(addprefix $(obj)/,$(host-cxxobjs))
124956 +host-cshlib := $(addprefix $(obj)/,$(host-cshlib))
124957 +host-cxxshlib := $(addprefix $(obj)/,$(host-cxxshlib))
124958 +host-cshobjs := $(addprefix $(obj)/,$(host-cshobjs))
124959 +host-cxxshobjs := $(addprefix $(obj)/,$(host-cxxshobjs))
124960 host-objdirs := $(addprefix $(obj)/,$(host-objdirs))
124961
124962 obj-dirs += $(host-objdirs)
124963 @@ -124,5 +153,37 @@ quiet_cmd_host-cxxobjs = HOSTCXX $@
124964 $(host-cxxobjs): $(obj)/%.o: $(src)/%.cc FORCE
124965 $(call if_changed_dep,host-cxxobjs)
124966
124967 +# Compile .c file, create position independent .o file
124968 +# host-cshobjs -> .o
124969 +quiet_cmd_host-cshobjs = HOSTCC -fPIC $@
124970 + cmd_host-cshobjs = $(HOSTCC) $(hostc_flags) -fPIC -c -o $@ $<
124971 +$(host-cshobjs): $(obj)/%.o: $(src)/%.c FORCE
124972 + $(call if_changed_dep,host-cshobjs)
124973 +
124974 +# Compile .c file, create position independent .o file
124975 +# host-cxxshobjs -> .o
124976 +quiet_cmd_host-cxxshobjs = HOSTCXX -fPIC $@
124977 + cmd_host-cxxshobjs = $(HOSTCXX) $(hostcxx_flags) -fPIC -c -o $@ $<
124978 +$(host-cxxshobjs): $(obj)/%.o: $(src)/%.c FORCE
124979 + $(call if_changed_dep,host-cxxshobjs)
124980 +
124981 +# Link a shared library, based on position independent .o files
124982 +# *.o -> .so shared library (host-cshlib)
124983 +quiet_cmd_host-cshlib = HOSTLLD -shared $@
124984 + cmd_host-cshlib = $(HOSTCC) $(HOSTLDFLAGS) -shared -o $@ \
124985 + $(addprefix $(obj)/,$($(@F:.so=-objs))) \
124986 + $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
124987 +$(host-cshlib): $(obj)/%: $(host-cshobjs) FORCE
124988 + $(call if_changed,host-cshlib)
124989 +
124990 +# Link a shared library, based on position independent .o files
124991 +# *.o -> .so shared library (host-cxxshlib)
124992 +quiet_cmd_host-cxxshlib = HOSTLLD -shared $@
124993 + cmd_host-cxxshlib = $(HOSTCXX) $(HOSTLDFLAGS) -shared -o $@ \
124994 + $(addprefix $(obj)/,$($(@F:.so=-objs))) \
124995 + $(HOST_LOADLIBES) $(HOSTLOADLIBES_$(@F))
124996 +$(host-cxxshlib): $(obj)/%: $(host-cxxshobjs) FORCE
124997 + $(call if_changed,host-cxxshlib)
124998 +
124999 targets += $(host-csingle) $(host-cmulti) $(host-cobjs)\
125000 - $(host-cxxmulti) $(host-cxxobjs)
125001 + $(host-cxxmulti) $(host-cxxobjs) $(host-cshlib) $(host-cshobjs) $(host-cxxshlib) $(host-cxxshobjs)
125002 diff --git a/scripts/basic/fixdep.c b/scripts/basic/fixdep.c
125003 index b304068..462d24e 100644
125004 --- a/scripts/basic/fixdep.c
125005 +++ b/scripts/basic/fixdep.c
125006 @@ -161,7 +161,7 @@ static unsigned int strhash(const char *str, unsigned int sz)
125007 /*
125008 * Lookup a value in the configuration string.
125009 */
125010 -static int is_defined_config(const char *name, int len, unsigned int hash)
125011 +static int is_defined_config(const char *name, unsigned int len, unsigned int hash)
125012 {
125013 struct item *aux;
125014
125015 @@ -211,10 +211,10 @@ static void clear_config(void)
125016 /*
125017 * Record the use of a CONFIG_* word.
125018 */
125019 -static void use_config(const char *m, int slen)
125020 +static void use_config(const char *m, unsigned int slen)
125021 {
125022 unsigned int hash = strhash(m, slen);
125023 - int c, i;
125024 + unsigned int c, i;
125025
125026 if (is_defined_config(m, slen, hash))
125027 return;
125028 @@ -235,9 +235,9 @@ static void use_config(const char *m, int slen)
125029
125030 static void parse_config_file(const char *map, size_t len)
125031 {
125032 - const int *end = (const int *) (map + len);
125033 + const unsigned int *end = (const unsigned int *) (map + len);
125034 /* start at +1, so that p can never be < map */
125035 - const int *m = (const int *) map + 1;
125036 + const unsigned int *m = (const unsigned int *) map + 1;
125037 const char *p, *q;
125038
125039 for (; m < end; m++) {
125040 @@ -435,7 +435,7 @@ static void print_deps(void)
125041 static void traps(void)
125042 {
125043 static char test[] __attribute__((aligned(sizeof(int)))) = "CONF";
125044 - int *p = (int *)test;
125045 + unsigned int *p = (unsigned int *)test;
125046
125047 if (*p != INT_CONF) {
125048 fprintf(stderr, "fixdep: sizeof(int) != 4 or wrong endianness? %#x\n",
125049 diff --git a/scripts/dtc/checks.c b/scripts/dtc/checks.c
125050 index e81a8c74..a615ad7 100644
125051 --- a/scripts/dtc/checks.c
125052 +++ b/scripts/dtc/checks.c
125053 @@ -277,7 +277,7 @@ NODE_ERROR(duplicate_property_names, NULL);
125054 static void check_node_name_chars(struct check *c, struct node *dt,
125055 struct node *node)
125056 {
125057 - int n = strspn(node->name, c->data);
125058 + size_t n = strspn(node->name, c->data);
125059
125060 if (n < strlen(node->name))
125061 FAIL(c, "Bad character '%c' in node %s",
125062 @@ -297,7 +297,7 @@ NODE_ERROR(node_name_format, NULL, &node_name_chars);
125063 static void check_property_name_chars(struct check *c, struct node *dt,
125064 struct node *node, struct property *prop)
125065 {
125066 - int n = strspn(prop->name, c->data);
125067 + size_t n = strspn(prop->name, c->data);
125068
125069 if (n < strlen(prop->name))
125070 FAIL(c, "Bad character '%c' in property name \"%s\", node %s",
125071 @@ -399,7 +399,7 @@ static void check_explicit_phandles(struct check *c, struct node *root,
125072
125073 phandle = propval_cell(prop);
125074
125075 - if ((phandle == 0) || (phandle == -1)) {
125076 + if ((phandle == 0) || (phandle == ~0U)) {
125077 FAIL(c, "%s has bad value (0x%x) in %s property",
125078 node->fullpath, phandle, prop->name);
125079 return;
125080 @@ -462,7 +462,7 @@ static void fixup_phandle_references(struct check *c, struct node *dt,
125081 cell_t phandle;
125082
125083 for_each_marker_of_type(m, REF_PHANDLE) {
125084 - assert(m->offset + sizeof(cell_t) <= prop->val.len);
125085 + assert(m->offset + (int)sizeof(cell_t) <= prop->val.len);
125086
125087 refnode = get_node_by_ref(dt, m->ref);
125088 if (! refnode) {
125089 @@ -688,7 +688,7 @@ static void enable_warning_error(struct check *c, bool warn, bool error)
125090
125091 static void disable_warning_error(struct check *c, bool warn, bool error)
125092 {
125093 - int i;
125094 + size_t i;
125095
125096 /* Lowering level, also lower it for things this is the prereq
125097 * for */
125098 @@ -709,7 +709,7 @@ static void disable_warning_error(struct check *c, bool warn, bool error)
125099
125100 void parse_checks_option(bool warn, bool error, const char *arg)
125101 {
125102 - int i;
125103 + size_t i;
125104 const char *name = arg;
125105 bool enable = true;
125106
125107 @@ -737,7 +737,7 @@ void parse_checks_option(bool warn, bool error, const char *arg)
125108 void process_checks(bool force, struct boot_info *bi)
125109 {
125110 struct node *dt = bi->dt;
125111 - int i;
125112 + size_t i;
125113 int error = 0;
125114
125115 for (i = 0; i < ARRAY_SIZE(check_table); i++) {
125116 diff --git a/scripts/dtc/data.c b/scripts/dtc/data.c
125117 index 8cae237..dcdab66 100644
125118 --- a/scripts/dtc/data.c
125119 +++ b/scripts/dtc/data.c
125120 @@ -94,10 +94,10 @@ struct data data_copy_file(FILE *f, size_t maxlen)
125121 {
125122 struct data d = empty_data;
125123
125124 - while (!feof(f) && (d.len < maxlen)) {
125125 + while (!feof(f) && ((size_t)d.len < maxlen)) {
125126 size_t chunksize, ret;
125127
125128 - if (maxlen == -1)
125129 + if (maxlen == ~0UL)
125130 chunksize = 4096;
125131 else
125132 chunksize = maxlen - d.len;
125133 @@ -108,7 +108,7 @@ struct data data_copy_file(FILE *f, size_t maxlen)
125134 if (ferror(f))
125135 die("Error reading file into data: %s", strerror(errno));
125136
125137 - if (d.len + ret < d.len)
125138 + if (d.len + ret < (size_t)d.len)
125139 die("Overflow reading file into data\n");
125140
125141 d.len += ret;
125142 diff --git a/scripts/dtc/flattree.c b/scripts/dtc/flattree.c
125143 index bd99fa2..e04d08d 100644
125144 --- a/scripts/dtc/flattree.c
125145 +++ b/scripts/dtc/flattree.c
125146 @@ -178,7 +178,7 @@ static void asm_emit_data(void *e, struct data d)
125147 for_each_marker_of_type(m, LABEL)
125148 emit_offset_label(f, m->ref, m->offset);
125149
125150 - while ((d.len - off) >= sizeof(uint32_t)) {
125151 + while ((d.len - off) >= (int)sizeof(uint32_t)) {
125152 asm_emit_cell(e, fdt32_to_cpu(*((uint32_t *)(d.val+off))));
125153 off += sizeof(uint32_t);
125154 }
125155 @@ -369,7 +369,7 @@ static void make_fdt_header(struct fdt_header *fdt,
125156 void dt_to_blob(FILE *f, struct boot_info *bi, int version)
125157 {
125158 struct version_info *vi = NULL;
125159 - int i;
125160 + size_t i;
125161 struct data blob = empty_data;
125162 struct data reservebuf = empty_data;
125163 struct data dtbuf = empty_data;
125164 @@ -463,7 +463,7 @@ static void dump_stringtable_asm(FILE *f, struct data strbuf)
125165 void dt_to_asm(FILE *f, struct boot_info *bi, int version)
125166 {
125167 struct version_info *vi = NULL;
125168 - int i;
125169 + size_t i;
125170 struct data strbuf = empty_data;
125171 struct reserve_info *re;
125172 const char *symprefix = "dt";
125173 @@ -543,7 +543,7 @@ void dt_to_asm(FILE *f, struct boot_info *bi, int version)
125174 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size >> 32));
125175 ASM_EMIT_BELONG(f, "0x%08x", (unsigned int)(re->re.size & 0xffffffff));
125176 }
125177 - for (i = 0; i < reservenum; i++) {
125178 + for (i = 0; i < (size_t)reservenum; i++) {
125179 fprintf(f, "\t.long\t0, 0\n\t.long\t0, 0\n");
125180 }
125181
125182 diff --git a/scripts/dtc/livetree.c b/scripts/dtc/livetree.c
125183 index e229b84..7141e8e 100644
125184 --- a/scripts/dtc/livetree.c
125185 +++ b/scripts/dtc/livetree.c
125186 @@ -492,7 +492,7 @@ struct node *get_node_by_phandle(struct node *tree, cell_t phandle)
125187 {
125188 struct node *child, *node;
125189
125190 - assert((phandle != 0) && (phandle != -1));
125191 + assert((phandle != 0) && (phandle != ~0U));
125192
125193 if (tree->phandle == phandle) {
125194 if (tree->deleted)
125195 @@ -523,7 +523,7 @@ cell_t get_node_phandle(struct node *root, struct node *node)
125196 {
125197 static cell_t phandle = 1; /* FIXME: ick, static local */
125198
125199 - if ((node->phandle != 0) && (node->phandle != -1))
125200 + if ((node->phandle != 0) && (node->phandle != ~0U))
125201 return node->phandle;
125202
125203 while (get_node_by_phandle(root, phandle))
125204 diff --git a/scripts/gcc-plugin.sh b/scripts/gcc-plugin.sh
125205 new file mode 100644
125206 index 0000000..eaa4fce
125207 --- /dev/null
125208 +++ b/scripts/gcc-plugin.sh
125209 @@ -0,0 +1,51 @@
125210 +#!/bin/sh
125211 +srctree=$(dirname "$0")
125212 +gccplugins_dir=$($3 -print-file-name=plugin)
125213 +plugincc=$($1 -E -x c++ - -o /dev/null -I"${srctree}"/../tools/gcc -I"${gccplugins_dir}"/include 2>&1 <<EOF
125214 +#include "gcc-common.h"
125215 +#if BUILDING_GCC_VERSION >= 4008 || defined(ENABLE_BUILD_WITH_CXX)
125216 +#warning $2 CXX
125217 +#else
125218 +#warning $1 CC
125219 +#endif
125220 +EOF
125221 +)
125222 +
125223 +if [ $? -ne 0 ]
125224 +then
125225 + exit 1
125226 +fi
125227 +
125228 +case "$plugincc" in
125229 + *"$1 CC"*)
125230 + echo "$1"
125231 + exit 0
125232 + ;;
125233 +
125234 + *"$2 CXX"*)
125235 + # the c++ compiler needs another test, see below
125236 + ;;
125237 +
125238 + *)
125239 + exit 1
125240 + ;;
125241 +esac
125242 +
125243 +# we need a c++ compiler that supports the designated initializer GNU extension
125244 +plugincc=$($2 -c -x c++ -std=gnu++98 - -fsyntax-only -I"${srctree}"/../tools/gcc -I"${gccplugins_dir}"/include 2>&1 <<EOF
125245 +#include "gcc-common.h"
125246 +class test {
125247 +public:
125248 + int test;
125249 +} test = {
125250 + .test = 1
125251 +};
125252 +EOF
125253 +)
125254 +
125255 +if [ $? -eq 0 ]
125256 +then
125257 + echo "$2"
125258 + exit 0
125259 +fi
125260 +exit 1
125261 diff --git a/scripts/headers_install.sh b/scripts/headers_install.sh
125262 index fdebd66..a349e33 100755
125263 --- a/scripts/headers_install.sh
125264 +++ b/scripts/headers_install.sh
125265 @@ -32,6 +32,7 @@ do
125266 FILE="$(basename "$i")"
125267 sed -r \
125268 -e 's/([ \t(])(__user|__force|__iomem)[ \t]/\1/g' \
125269 + -e 's/__intentional_overflow\([- \t,0-9]*\)//g' \
125270 -e 's/__attribute_const__([ \t]|$)/\1/g' \
125271 -e 's@^#include <linux/compiler.h>@@' \
125272 -e 's/(^|[^a-zA-Z0-9])__packed([^a-zA-Z0-9_]|$)/\1__attribute__((packed))\2/g' \
125273 diff --git a/scripts/kallsyms.c b/scripts/kallsyms.c
125274 index 8fa81e8..a9ac144 100644
125275 --- a/scripts/kallsyms.c
125276 +++ b/scripts/kallsyms.c
125277 @@ -89,7 +89,7 @@ static inline int is_arm_mapping_symbol(const char *str)
125278 }
125279
125280 static int check_symbol_range(const char *sym, unsigned long long addr,
125281 - struct addr_range *ranges, int entries)
125282 + struct addr_range *ranges, size_t entries)
125283 {
125284 size_t i;
125285 struct addr_range *ar;
125286 @@ -178,7 +178,7 @@ static int read_symbol(FILE *in, struct sym_entry *s)
125287 }
125288
125289 static int symbol_in_range(struct sym_entry *s, struct addr_range *ranges,
125290 - int entries)
125291 + size_t entries)
125292 {
125293 size_t i;
125294 struct addr_range *ar;
125295 diff --git a/scripts/kconfig/lkc.h b/scripts/kconfig/lkc.h
125296 index 91ca126..5f7cad6 100644
125297 --- a/scripts/kconfig/lkc.h
125298 +++ b/scripts/kconfig/lkc.h
125299 @@ -108,7 +108,8 @@ void menu_add_expr(enum prop_type type, struct expr *expr, struct expr *dep);
125300 void menu_add_symbol(enum prop_type type, struct symbol *sym, struct expr *dep);
125301 void menu_add_option(int token, char *arg);
125302 void menu_finalize(struct menu *parent);
125303 -void menu_set_type(int type);
125304 +enum symbol_type;
125305 +void menu_set_type(enum symbol_type type);
125306
125307 /* util.c */
125308 struct file *file_lookup(const char *name);
125309 @@ -123,7 +124,7 @@ struct gstr {
125310 * when max_width is not zero long lines in string s (if any) get
125311 * wrapped not to exceed the max_width value
125312 */
125313 - int max_width;
125314 + size_t max_width;
125315 };
125316 struct gstr str_new(void);
125317 void str_free(struct gstr *gs);
125318 diff --git a/scripts/kconfig/menu.c b/scripts/kconfig/menu.c
125319 index b05cc3d..72fb2a8 100644
125320 --- a/scripts/kconfig/menu.c
125321 +++ b/scripts/kconfig/menu.c
125322 @@ -109,7 +109,7 @@ void menu_add_dep(struct expr *dep)
125323 current_entry->dep = expr_alloc_and(current_entry->dep, menu_check_dep(dep));
125324 }
125325
125326 -void menu_set_type(int type)
125327 +void menu_set_type(enum symbol_type type)
125328 {
125329 struct symbol *sym = current_entry->sym;
125330
125331 diff --git a/scripts/kconfig/symbol.c b/scripts/kconfig/symbol.c
125332 index 70c5ee1..3126ab6 100644
125333 --- a/scripts/kconfig/symbol.c
125334 +++ b/scripts/kconfig/symbol.c
125335 @@ -957,7 +957,7 @@ const char *sym_escape_string_value(const char *in)
125336
125337 struct sym_match {
125338 struct symbol *sym;
125339 - off_t so, eo;
125340 + regoff_t so, eo;
125341 };
125342
125343 /* Compare matched symbols as thus:
125344 @@ -979,8 +979,8 @@ static int sym_rel_comp(const void *sym1, const void *sym2)
125345 * exactly; if this is the case, we can't decide which comes first,
125346 * and we fallback to sorting alphabetically.
125347 */
125348 - exact1 = (s1->eo - s1->so) == strlen(s1->sym->name);
125349 - exact2 = (s2->eo - s2->so) == strlen(s2->sym->name);
125350 + exact1 = (s1->eo - s1->so) == (long)strlen(s1->sym->name);
125351 + exact2 = (s2->eo - s2->so) == (long)strlen(s2->sym->name);
125352 if (exact1 && !exact2)
125353 return -1;
125354 if (!exact1 && exact2)
125355 diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh
125356 index 1a10d8a..843fdce 100755
125357 --- a/scripts/link-vmlinux.sh
125358 +++ b/scripts/link-vmlinux.sh
125359 @@ -179,7 +179,7 @@ else
125360 fi;
125361
125362 # final build of init/
125363 -${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init
125364 +${MAKE} -f "${srctree}/scripts/Makefile.build" obj=init GCC_PLUGINS_CFLAGS="${GCC_PLUGINS_CFLAGS}" GCC_PLUGINS_AFLAGS="${GCC_PLUGINS_AFLAGS}"
125365
125366 kallsymso=""
125367 kallsyms_vmlinux=""
125368 diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
125369 index 5f20882..d914642 100644
125370 --- a/scripts/mod/file2alias.c
125371 +++ b/scripts/mod/file2alias.c
125372 @@ -154,7 +154,7 @@ static void device_id_check(const char *modname, const char *device_id,
125373 unsigned long size, unsigned long id_size,
125374 void *symval)
125375 {
125376 - int i;
125377 + unsigned int i;
125378
125379 if (size % id_size || size < id_size) {
125380 fatal("%s: sizeof(struct %s_device_id)=%lu is not a modulo "
125381 @@ -183,7 +183,7 @@ static void device_id_check(const char *modname, const char *device_id,
125382 /* USB is special because the bcdDevice can be matched against a numeric range */
125383 /* Looks like "usb:vNpNdNdcNdscNdpNicNiscNipNinN" */
125384 static void do_usb_entry(void *symval,
125385 - unsigned int bcdDevice_initial, int bcdDevice_initial_digits,
125386 + unsigned int bcdDevice_initial, unsigned int bcdDevice_initial_digits,
125387 unsigned char range_lo, unsigned char range_hi,
125388 unsigned char max, struct module *mod)
125389 {
125390 @@ -293,7 +293,7 @@ static void do_usb_entry_multi(void *symval, struct module *mod)
125391 {
125392 unsigned int devlo, devhi;
125393 unsigned char chi, clo, max;
125394 - int ndigits;
125395 + unsigned int ndigits;
125396
125397 DEF_FIELD(symval, usb_device_id, match_flags);
125398 DEF_FIELD(symval, usb_device_id, idVendor);
125399 @@ -574,7 +574,7 @@ static void do_pnp_device_entry(void *symval, unsigned long size,
125400 for (i = 0; i < count; i++) {
125401 DEF_FIELD_ADDR(symval + i*id_size, pnp_device_id, id);
125402 char acpi_id[sizeof(*id)];
125403 - int j;
125404 + unsigned int j;
125405
125406 buf_printf(&mod->dev_table_buf,
125407 "MODULE_ALIAS(\"pnp:d%s*\");\n", *id);
125408 @@ -603,7 +603,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
125409
125410 for (j = 0; j < PNP_MAX_DEVICES; j++) {
125411 const char *id = (char *)(*devs)[j].id;
125412 - int i2, j2;
125413 + unsigned int i2, j2;
125414 int dup = 0;
125415
125416 if (!id[0])
125417 @@ -629,7 +629,7 @@ static void do_pnp_card_entries(void *symval, unsigned long size,
125418 /* add an individual alias for every device entry */
125419 if (!dup) {
125420 char acpi_id[PNP_ID_LEN];
125421 - int k;
125422 + unsigned int k;
125423
125424 buf_printf(&mod->dev_table_buf,
125425 "MODULE_ALIAS(\"pnp:d%s*\");\n", id);
125426 @@ -979,7 +979,7 @@ static void dmi_ascii_filter(char *d, const char *s)
125427 static int do_dmi_entry(const char *filename, void *symval,
125428 char *alias)
125429 {
125430 - int i, j;
125431 + unsigned int i, j;
125432 DEF_FIELD_ADDR(symval, dmi_system_id, matches);
125433 sprintf(alias, "dmi*");
125434
125435 diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
125436 index 12d3db3..be51548 100644
125437 --- a/scripts/mod/modpost.c
125438 +++ b/scripts/mod/modpost.c
125439 @@ -943,6 +943,7 @@ enum mismatch {
125440 ANY_EXIT_TO_ANY_INIT,
125441 EXPORT_TO_INIT_EXIT,
125442 EXTABLE_TO_NON_TEXT,
125443 + DATA_TO_TEXT
125444 };
125445
125446 /**
125447 @@ -1069,6 +1070,12 @@ static const struct sectioncheck sectioncheck[] = {
125448 .good_tosec = {ALL_TEXT_SECTIONS , NULL},
125449 .mismatch = EXTABLE_TO_NON_TEXT,
125450 .handler = extable_mismatch_handler,
125451 +},
125452 +/* Do not reference code from writable data */
125453 +{
125454 + .fromsec = { DATA_SECTIONS, NULL },
125455 + .bad_tosec = { ALL_TEXT_SECTIONS, NULL },
125456 + .mismatch = DATA_TO_TEXT
125457 }
125458 };
125459
125460 @@ -1218,10 +1225,10 @@ static Elf_Sym *find_elf_symbol(struct elf_info *elf, Elf64_Sword addr,
125461 continue;
125462 if (ELF_ST_TYPE(sym->st_info) == STT_SECTION)
125463 continue;
125464 - if (sym->st_value == addr)
125465 - return sym;
125466 /* Find a symbol nearby - addr are maybe negative */
125467 d = sym->st_value - addr;
125468 + if (d == 0)
125469 + return sym;
125470 if (d < 0)
125471 d = addr - sym->st_value;
125472 if (d < distance) {
125473 @@ -1504,6 +1511,14 @@ static void report_sec_mismatch(const char *modname,
125474 fatal("There's a special handler for this mismatch type, "
125475 "we should never get here.");
125476 break;
125477 + case DATA_TO_TEXT:
125478 +#if 0
125479 + fprintf(stderr,
125480 + "The %s %s:%s references\n"
125481 + "the %s %s:%s%s\n",
125482 + from, fromsec, fromsym, to, tosec, tosym, to_p);
125483 +#endif
125484 + break;
125485 }
125486 fprintf(stderr, "\n");
125487 }
125488 @@ -1893,7 +1908,7 @@ static void section_rel(const char *modname, struct elf_info *elf,
125489 static void check_sec_ref(struct module *mod, const char *modname,
125490 struct elf_info *elf)
125491 {
125492 - int i;
125493 + unsigned int i;
125494 Elf_Shdr *sechdrs = elf->sechdrs;
125495
125496 /* Walk through all sections */
125497 @@ -2024,7 +2039,7 @@ void __attribute__((format(printf, 2, 3))) buf_printf(struct buffer *buf,
125498 va_end(ap);
125499 }
125500
125501 -void buf_write(struct buffer *buf, const char *s, int len)
125502 +void buf_write(struct buffer *buf, const char *s, unsigned int len)
125503 {
125504 if (buf->size - buf->pos < len) {
125505 buf->size += len + SZ;
125506 @@ -2243,7 +2258,7 @@ static void write_if_changed(struct buffer *b, const char *fname)
125507 if (fstat(fileno(file), &st) < 0)
125508 goto close_write;
125509
125510 - if (st.st_size != b->pos)
125511 + if (st.st_size != (off_t)b->pos)
125512 goto close_write;
125513
125514 tmp = NOFAIL(malloc(b->pos));
125515 diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
125516 index 168b43d..77914bf 100644
125517 --- a/scripts/mod/modpost.h
125518 +++ b/scripts/mod/modpost.h
125519 @@ -92,15 +92,15 @@ void *do_nofail(void *ptr, const char *expr);
125520
125521 struct buffer {
125522 char *p;
125523 - int pos;
125524 - int size;
125525 + unsigned int pos;
125526 + unsigned int size;
125527 };
125528
125529 void __attribute__((format(printf, 2, 3)))
125530 buf_printf(struct buffer *buf, const char *fmt, ...);
125531
125532 void
125533 -buf_write(struct buffer *buf, const char *s, int len);
125534 +buf_write(struct buffer *buf, const char *s, unsigned int len);
125535
125536 struct module {
125537 struct module *next;
125538 diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c
125539 index 944418d..15291e4 100644
125540 --- a/scripts/mod/sumversion.c
125541 +++ b/scripts/mod/sumversion.c
125542 @@ -470,7 +470,7 @@ static void write_version(const char *filename, const char *sum,
125543 goto out;
125544 }
125545
125546 - if (write(fd, sum, strlen(sum)+1) != strlen(sum)+1) {
125547 + if (write(fd, sum, strlen(sum)+1) != (ssize_t)strlen(sum)+1) {
125548 warn("writing sum in %s failed: %s\n",
125549 filename, strerror(errno));
125550 goto out;
125551 diff --git a/scripts/module-common.lds b/scripts/module-common.lds
125552 index 73a2c7d..df11b31 100644
125553 --- a/scripts/module-common.lds
125554 +++ b/scripts/module-common.lds
125555 @@ -6,6 +6,10 @@
125556 SECTIONS {
125557 /DISCARD/ : { *(.discard) }
125558
125559 + .rodata 0: {
125560 + *(.rodata) *(.rodata.*)
125561 + *(.data..read_only)
125562 + }
125563 __ksymtab 0 : { *(SORT(___ksymtab+*)) }
125564 __ksymtab_gpl 0 : { *(SORT(___ksymtab_gpl+*)) }
125565 __ksymtab_unused 0 : { *(SORT(___ksymtab_unused+*)) }
125566 diff --git a/scripts/package/Makefile b/scripts/package/Makefile
125567 index 99ca6e7..3a1a1a1 100644
125568 --- a/scripts/package/Makefile
125569 +++ b/scripts/package/Makefile
125570 @@ -46,7 +46,7 @@ rpm-pkg rpm: FORCE
125571 ln -sf $(srctree) $(KERNELPATH)
125572 $(CONFIG_SHELL) $(MKSPEC) >$(objtree)/kernel.spec
125573 $(CONFIG_SHELL) $(srctree)/scripts/setlocalversion --save-scmversion
125574 - tar -cz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(TAR_CONTENT)
125575 + tar --owner=root --group=root -cz $(RCS_TAR_IGNORE) -f $(KERNELPATH).tar.gz $(TAR_CONTENT)
125576 rm $(KERNELPATH)
125577 rm -f $(objtree)/.scmversion
125578 $(CONFIG_SHELL) $(srctree)/scripts/mkversion > $(objtree)/.tmp_version
125579 diff --git a/scripts/package/builddeb b/scripts/package/builddeb
125580 index 88dbf23..c8c6e81 100755
125581 --- a/scripts/package/builddeb
125582 +++ b/scripts/package/builddeb
125583 @@ -304,6 +304,7 @@ fi
125584 (cd $srctree; find arch/$SRCARCH -name module.lds -o -name Kbuild.platforms -o -name Platform) >> "$objtree/debian/hdrsrcfiles"
125585 (cd $srctree; find $(find arch/$SRCARCH -name include -o -name scripts -type d) -type f) >> "$objtree/debian/hdrsrcfiles"
125586 (cd $objtree; find arch/$SRCARCH/include Module.symvers include scripts -type f) >> "$objtree/debian/hdrobjfiles"
125587 +(cd $objtree; find tools/gcc -name \*.so -o -name gcc-common.h >> "$objtree/debian/hdrobjfiles")
125588 destdir=$kernel_headers_dir/usr/src/linux-headers-$version
125589 mkdir -p "$destdir"
125590 (cd $srctree; tar -c -f - -T -) < "$objtree/debian/hdrsrcfiles" | (cd $destdir; tar -xf -)
125591 diff --git a/scripts/package/mkspec b/scripts/package/mkspec
125592 index d9ab94b..827332f 100755
125593 --- a/scripts/package/mkspec
125594 +++ b/scripts/package/mkspec
125595 @@ -122,30 +122,41 @@ echo 'rm -f $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE/{build,source}"
125596 echo "mkdir -p "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE"
125597 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\""
125598 echo "tar "'$EXCLUDES'" -cf- . | (cd "'$RPM_BUILD_ROOT'"/usr/src/kernels/$KERNELRELEASE;tar xvf -)"
125599 -echo 'cd $RPM_BUILD_ROOT'"/lib/modules/$KERNELRELEASE"
125600 -echo "ln -sf /usr/src/kernels/$KERNELRELEASE build"
125601 -echo "ln -sf /usr/src/kernels/$KERNELRELEASE source"
125602 fi
125603
125604 echo ""
125605 echo "%clean"
125606 echo 'rm -rf $RPM_BUILD_ROOT'
125607 echo ""
125608 +echo "%pre"
125609 +echo 'chmod -f 0500 /boot'
125610 +echo 'if [ -d /lib/modules ]; then'
125611 +echo 'chmod -f 0500 /lib/modules'
125612 +echo 'fi'
125613 +echo 'if [ -d /lib32/modules ]; then'
125614 +echo 'chmod -f 0500 /lib32/modules'
125615 +echo 'fi'
125616 +echo 'if [ -d /lib64/modules ]; then'
125617 +echo 'chmod -f 0500 /lib64/modules'
125618 +echo 'fi'
125619 +echo ""
125620 +echo "%post devel"
125621 +echo "ln -sf /usr/src/kernels/$KERNELRELEASE /lib/modules/$KERNELRELEASE/build"
125622 +echo "ln -sf /usr/src/kernels/$KERNELRELEASE /lib/modules/$KERNELRELEASE/source"
125623 +echo ""
125624 echo "%post"
125625 -echo "if [ -x /sbin/installkernel -a -r /boot/vmlinuz-$KERNELRELEASE -a -r /boot/System.map-$KERNELRELEASE ]; then"
125626 -echo "cp /boot/vmlinuz-$KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm"
125627 -echo "cp /boot/System.map-$KERNELRELEASE /boot/System.map-$KERNELRELEASE-rpm"
125628 -echo "rm -f /boot/vmlinuz-$KERNELRELEASE /boot/System.map-$KERNELRELEASE"
125629 -echo "/sbin/installkernel $KERNELRELEASE /boot/vmlinuz-$KERNELRELEASE-rpm /boot/System.map-$KERNELRELEASE-rpm"
125630 -echo "rm -f /boot/vmlinuz-$KERNELRELEASE-rpm /boot/System.map-$KERNELRELEASE-rpm"
125631 +echo "if [ -x /sbin/dracut ]; then"
125632 +echo '/sbin/new-kernel-pkg --dracut --mkinitrd --depmod --install --make-default '"$KERNELRELEASE"' || exit $?'
125633 +echo "else"
125634 +echo '/sbin/new-kernel-pkg --mkinitrd --depmod --install --make-default '"$KERNELRELEASE"' || exit $?'
125635 echo "fi"
125636 echo ""
125637 echo "%files"
125638 -echo '%defattr (-, root, root)'
125639 +echo '%defattr (400, root, root, 500)'
125640 echo "%dir /lib/modules"
125641 -echo "/lib/modules/$KERNELRELEASE"
125642 echo "%exclude /lib/modules/$KERNELRELEASE/build"
125643 echo "%exclude /lib/modules/$KERNELRELEASE/source"
125644 +echo "/lib/modules/$KERNELRELEASE"
125645 echo "/lib/firmware/$KERNELRELEASE"
125646 echo "/boot/*"
125647 echo ""
125648 @@ -155,9 +166,11 @@ echo "/usr/include"
125649 echo ""
125650 if ! $PREBUILT; then
125651 echo "%files devel"
125652 -echo '%defattr (-, root, root)'
125653 +echo '%defattr (400, root, root, 500)'
125654 +echo "%dir /lib/modules/$KERNELRELEASE"
125655 echo "/usr/src/kernels/$KERNELRELEASE"
125656 -echo "/lib/modules/$KERNELRELEASE/build"
125657 -echo "/lib/modules/$KERNELRELEASE/source"
125658 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/recordmcount"
125659 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/basic/fixdep"
125660 +echo "%attr (500, root, root) /usr/src/kernels/$KERNELRELEASE/scripts/mod/modpost"
125661 echo ""
125662 fi
125663 diff --git a/scripts/pnmtologo.c b/scripts/pnmtologo.c
125664 index 4718d78..9220d58 100644
125665 --- a/scripts/pnmtologo.c
125666 +++ b/scripts/pnmtologo.c
125667 @@ -244,14 +244,14 @@ static void write_header(void)
125668 fprintf(out, " * Linux logo %s\n", logoname);
125669 fputs(" */\n\n", out);
125670 fputs("#include <linux/linux_logo.h>\n\n", out);
125671 - fprintf(out, "static unsigned char %s_data[] __initdata = {\n",
125672 + fprintf(out, "static unsigned char %s_data[] = {\n",
125673 logoname);
125674 }
125675
125676 static void write_footer(void)
125677 {
125678 fputs("\n};\n\n", out);
125679 - fprintf(out, "const struct linux_logo %s __initconst = {\n", logoname);
125680 + fprintf(out, "const struct linux_logo %s = {\n", logoname);
125681 fprintf(out, "\t.type\t\t= %s,\n", logo_types[logo_type]);
125682 fprintf(out, "\t.width\t\t= %d,\n", logo_width);
125683 fprintf(out, "\t.height\t\t= %d,\n", logo_height);
125684 @@ -381,7 +381,7 @@ static void write_logo_clut224(void)
125685 fputs("\n};\n\n", out);
125686
125687 /* write logo clut */
125688 - fprintf(out, "static unsigned char %s_clut[] __initdata = {\n",
125689 + fprintf(out, "static unsigned char %s_clut[] = {\n",
125690 logoname);
125691 write_hex_cnt = 0;
125692 for (i = 0; i < logo_clutsize; i++) {
125693 diff --git a/scripts/sortextable.h b/scripts/sortextable.h
125694 index ba87004..3f4852c 100644
125695 --- a/scripts/sortextable.h
125696 +++ b/scripts/sortextable.h
125697 @@ -108,9 +108,9 @@ do_func(Elf_Ehdr *ehdr, char const *const fname, table_sort_t custom_sort)
125698 const char *secstrtab;
125699 const char *strtab;
125700 char *extab_image;
125701 - int extab_index = 0;
125702 - int i;
125703 - int idx;
125704 + unsigned int extab_index = 0;
125705 + unsigned int i;
125706 + unsigned int idx;
125707 unsigned int num_sections;
125708 unsigned int secindex_strings;
125709
125710 diff --git a/scripts/tags.sh b/scripts/tags.sh
125711 index c0a932d..817c587 100755
125712 --- a/scripts/tags.sh
125713 +++ b/scripts/tags.sh
125714 @@ -26,7 +26,7 @@ else
125715 fi
125716
125717 # ignore userspace tools
125718 -ignore="$ignore ( -path ${tree}tools ) -prune -o"
125719 +ignore="$ignore ( -path \"${tree}tools/[^g]*\" ) -prune -o"
125720
125721 # Find all available archs
125722 find_all_archs()
125723 diff --git a/security/Kconfig b/security/Kconfig
125724 index bf4ec46..faa8418 100644
125725 --- a/security/Kconfig
125726 +++ b/security/Kconfig
125727 @@ -4,6 +4,985 @@
125728
125729 menu "Security options"
125730
125731 +menu "Grsecurity"
125732 +
125733 + config ARCH_TRACK_EXEC_LIMIT
125734 + bool
125735 +
125736 + config PAX_KERNEXEC_PLUGIN
125737 + bool
125738 +
125739 + config PAX_PER_CPU_PGD
125740 + bool
125741 +
125742 + config TASK_SIZE_MAX_SHIFT
125743 + int
125744 + depends on X86_64
125745 + default 47 if !PAX_PER_CPU_PGD
125746 + default 42 if PAX_PER_CPU_PGD
125747 +
125748 + config PAX_ENABLE_PAE
125749 + bool
125750 + default y if (X86_32 && (MPENTIUM4 || MK8 || MPSC || MCORE2 || MATOM))
125751 +
125752 + config PAX_USERCOPY_SLABS
125753 + bool
125754 +
125755 +config GRKERNSEC
125756 + bool "Grsecurity"
125757 + select CRYPTO
125758 + select CRYPTO_SHA256
125759 + select PROC_FS
125760 + select STOP_MACHINE
125761 + select TTY
125762 + select DEBUG_KERNEL
125763 + select DEBUG_LIST
125764 + select MULTIUSER
125765 + help
125766 + If you say Y here, you will be able to configure many features
125767 + that will enhance the security of your system. It is highly
125768 + recommended that you say Y here and read through the help
125769 + for each option so that you fully understand the features and
125770 + can evaluate their usefulness for your machine.
125771 +
125772 +choice
125773 + prompt "Configuration Method"
125774 + depends on GRKERNSEC
125775 + default GRKERNSEC_CONFIG_CUSTOM
125776 + help
125777 +
125778 +config GRKERNSEC_CONFIG_AUTO
125779 + bool "Automatic"
125780 + help
125781 + If you choose this configuration method, you'll be able to answer a small
125782 + number of simple questions about how you plan to use this kernel.
125783 + The settings of grsecurity and PaX will be automatically configured for
125784 + the highest commonly-used settings within the provided constraints.
125785 +
125786 + If you require additional configuration, custom changes can still be made
125787 + from the "custom configuration" menu.
125788 +
125789 +config GRKERNSEC_CONFIG_CUSTOM
125790 + bool "Custom"
125791 + help
125792 + If you choose this configuration method, you'll be able to configure all
125793 + grsecurity and PaX settings manually. Via this method, no options are
125794 + automatically enabled.
125795 +
125796 + Take note that if menuconfig is exited with this configuration method
125797 + chosen, you will not be able to use the automatic configuration methods
125798 + without starting again with a kernel configuration with no grsecurity
125799 + or PaX options specified inside.
125800 +
125801 +endchoice
125802 +
125803 +choice
125804 + prompt "Usage Type"
125805 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
125806 + default GRKERNSEC_CONFIG_SERVER
125807 + help
125808 +
125809 +config GRKERNSEC_CONFIG_SERVER
125810 + bool "Server"
125811 + help
125812 + Choose this option if you plan to use this kernel on a server.
125813 +
125814 +config GRKERNSEC_CONFIG_DESKTOP
125815 + bool "Desktop"
125816 + help
125817 + Choose this option if you plan to use this kernel on a desktop.
125818 +
125819 +endchoice
125820 +
125821 +choice
125822 + prompt "Virtualization Type"
125823 + depends on (GRKERNSEC && X86 && GRKERNSEC_CONFIG_AUTO)
125824 + default GRKERNSEC_CONFIG_VIRT_NONE
125825 + help
125826 +
125827 +config GRKERNSEC_CONFIG_VIRT_NONE
125828 + bool "None"
125829 + help
125830 + Choose this option if this kernel will be run on bare metal.
125831 +
125832 +config GRKERNSEC_CONFIG_VIRT_GUEST
125833 + bool "Guest"
125834 + help
125835 + Choose this option if this kernel will be run as a VM guest.
125836 +
125837 +config GRKERNSEC_CONFIG_VIRT_HOST
125838 + bool "Host"
125839 + help
125840 + Choose this option if this kernel will be run as a VM host.
125841 +
125842 +endchoice
125843 +
125844 +choice
125845 + prompt "Virtualization Hardware"
125846 + depends on (GRKERNSEC && X86 && GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_GUEST || GRKERNSEC_CONFIG_VIRT_HOST))
125847 + help
125848 +
125849 +config GRKERNSEC_CONFIG_VIRT_EPT
125850 + bool "EPT/RVI Processor Support"
125851 + depends on X86
125852 + help
125853 + Choose this option if your CPU supports the EPT or RVI features of 2nd-gen
125854 + hardware virtualization. This allows for additional kernel hardening protections
125855 + to operate without additional performance impact.
125856 +
125857 + To see if your Intel processor supports EPT, see:
125858 + http://ark.intel.com/Products/VirtualizationTechnology
125859 + (Most Core i3/5/7 support EPT)
125860 +
125861 + To see if your AMD processor supports RVI, see:
125862 + http://support.amd.com/us/kbarticles/Pages/GPU120AMDRVICPUsHyperVWin8.aspx
125863 +
125864 +config GRKERNSEC_CONFIG_VIRT_SOFT
125865 + bool "First-gen/No Hardware Virtualization"
125866 + help
125867 + Choose this option if you use an Atom/Pentium/Core 2 processor that either doesn't
125868 + support hardware virtualization or doesn't support the EPT/RVI extensions.
125869 +
125870 +endchoice
125871 +
125872 +choice
125873 + prompt "Virtualization Software"
125874 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO && (GRKERNSEC_CONFIG_VIRT_GUEST || GRKERNSEC_CONFIG_VIRT_HOST))
125875 + help
125876 +
125877 +config GRKERNSEC_CONFIG_VIRT_XEN
125878 + bool "Xen"
125879 + help
125880 + Choose this option if this kernel is running as a Xen guest or host.
125881 +
125882 +config GRKERNSEC_CONFIG_VIRT_VMWARE
125883 + bool "VMWare"
125884 + help
125885 + Choose this option if this kernel is running as a VMWare guest or host.
125886 +
125887 +config GRKERNSEC_CONFIG_VIRT_KVM
125888 + bool "KVM"
125889 + help
125890 + Choose this option if this kernel is running as a KVM guest or host.
125891 +
125892 +config GRKERNSEC_CONFIG_VIRT_VIRTUALBOX
125893 + bool "VirtualBox"
125894 + help
125895 + Choose this option if this kernel is running as a VirtualBox guest or host.
125896 +
125897 +config GRKERNSEC_CONFIG_VIRT_HYPERV
125898 + bool "Hyper-V"
125899 + help
125900 + Choose this option if this kernel is running as a Hyper-V guest.
125901 +
125902 +endchoice
125903 +
125904 +choice
125905 + prompt "Required Priorities"
125906 + depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
125907 + default GRKERNSEC_CONFIG_PRIORITY_PERF
125908 + help
125909 +
125910 +config GRKERNSEC_CONFIG_PRIORITY_PERF
125911 + bool "Performance"
125912 + help
125913 + Choose this option if performance is of highest priority for this deployment
125914 + of grsecurity. Features like UDEREF on a 64bit kernel, kernel stack clearing,
125915 + clearing of structures intended for userland, and freed memory sanitizing will
125916 + be disabled.
125917 +
125918 +config GRKERNSEC_CONFIG_PRIORITY_SECURITY
125919 + bool "Security"
125920 + help
125921 + Choose this option if security is of highest priority for this deployment of
125922 + grsecurity. UDEREF, kernel stack clearing, clearing of structures intended
125923 + for userland, and freed memory sanitizing will be enabled for this kernel.
125924 + In a worst-case scenario, these features can introduce a 20% performance hit
125925 + (UDEREF on x64 contributing half of this hit).
125926 +
125927 +endchoice
125928 +
125929 +menu "Default Special Groups"
125930 +depends on (GRKERNSEC && GRKERNSEC_CONFIG_AUTO)
125931 +
125932 +config GRKERNSEC_PROC_GID
125933 + int "GID exempted from /proc restrictions"
125934 + default 1001
125935 + help
125936 + Setting this GID determines which group will be exempted from
125937 + grsecurity's /proc restrictions, allowing users of the specified
125938 + group to view network statistics and the existence of other users'
125939 + processes on the system. This GID may also be chosen at boot time
125940 + via "grsec_proc_gid=" on the kernel commandline.
125941 +
125942 +config GRKERNSEC_TPE_UNTRUSTED_GID
125943 + int "GID for TPE-untrusted users"
125944 + depends on GRKERNSEC_CONFIG_SERVER && GRKERNSEC_TPE && !GRKERNSEC_TPE_INVERT
125945 + default 1005
125946 + help
125947 + Setting this GID determines which group untrusted users should
125948 + be added to. These users will be placed under grsecurity's Trusted Path
125949 + Execution mechanism, preventing them from executing their own binaries.
125950 + The users will only be able to execute binaries in directories owned and
125951 + writable only by the root user. If the sysctl option is enabled, a sysctl
125952 + option with name "tpe_gid" is created.
125953 +
125954 +config GRKERNSEC_TPE_TRUSTED_GID
125955 + int "GID for TPE-trusted users"
125956 + depends on GRKERNSEC_CONFIG_SERVER && GRKERNSEC_TPE && GRKERNSEC_TPE_INVERT
125957 + default 1005
125958 + help
125959 + Setting this GID determines what group TPE restrictions will be
125960 + *disabled* for. If the sysctl option is enabled, a sysctl option
125961 + with name "tpe_gid" is created.
125962 +
125963 +config GRKERNSEC_SYMLINKOWN_GID
125964 + int "GID for users with kernel-enforced SymlinksIfOwnerMatch"
125965 + depends on GRKERNSEC_CONFIG_SERVER
125966 + default 1006
125967 + help
125968 + Setting this GID determines what group kernel-enforced
125969 + SymlinksIfOwnerMatch will be enabled for. If the sysctl option
125970 + is enabled, a sysctl option with name "symlinkown_gid" is created.
125971 +
125972 +
125973 +endmenu
125974 +
125975 +menu "Customize Configuration"
125976 +depends on GRKERNSEC
125977 +
125978 +menu "PaX"
125979 +
125980 +config PAX
125981 + bool "Enable various PaX features"
125982 + default y if GRKERNSEC_CONFIG_AUTO
125983 + depends on GRKERNSEC && (ALPHA || ARM || AVR32 || IA64 || MIPS || PARISC || PPC || SPARC || X86)
125984 + help
125985 + This allows you to enable various PaX features. PaX adds
125986 + intrusion prevention mechanisms to the kernel that reduce
125987 + the risks posed by exploitable memory corruption bugs.
125988 +
125989 +menu "PaX Control"
125990 + depends on PAX
125991 +
125992 +config PAX_SOFTMODE
125993 + bool 'Support soft mode'
125994 + help
125995 + Enabling this option will allow you to run PaX in soft mode, that
125996 + is, PaX features will not be enforced by default, only on executables
125997 + marked explicitly. You must also enable PT_PAX_FLAGS or XATTR_PAX_FLAGS
125998 + support as they are the only way to mark executables for soft mode use.
125999 +
126000 + Soft mode can be activated by using the "pax_softmode=1" kernel command
126001 + line option on boot. Furthermore you can control various PaX features
126002 + at runtime via the entries in /proc/sys/kernel/pax.
126003 +
126004 +config PAX_EI_PAX
126005 + bool 'Use legacy ELF header marking'
126006 + default y if GRKERNSEC_CONFIG_AUTO
126007 + help
126008 + Enabling this option will allow you to control PaX features on
126009 + a per executable basis via the 'chpax' utility available at
126010 + http://pax.grsecurity.net/. The control flags will be read from
126011 + an otherwise reserved part of the ELF header. This marking has
126012 + numerous drawbacks (no support for soft-mode, toolchain does not
126013 + know about the non-standard use of the ELF header) therefore it
126014 + has been deprecated in favour of PT_PAX_FLAGS and XATTR_PAX_FLAGS
126015 + support.
126016 +
126017 + Note that if you enable PT_PAX_FLAGS or XATTR_PAX_FLAGS marking
126018 + support as well, they will override the legacy EI_PAX marks.
126019 +
126020 + If you enable none of the marking options then all applications
126021 + will run with PaX enabled on them by default.
126022 +
126023 +config PAX_PT_PAX_FLAGS
126024 + bool 'Use ELF program header marking'
126025 + default y if GRKERNSEC_CONFIG_AUTO
126026 + help
126027 + Enabling this option will allow you to control PaX features on
126028 + a per executable basis via the 'paxctl' utility available at
126029 + http://pax.grsecurity.net/. The control flags will be read from
126030 + a PaX specific ELF program header (PT_PAX_FLAGS). This marking
126031 + has the benefits of supporting both soft mode and being fully
126032 + integrated into the toolchain (the binutils patch is available
126033 + from http://pax.grsecurity.net).
126034 +
126035 + Note that if you enable the legacy EI_PAX marking support as well,
126036 + the EI_PAX marks will be overridden by the PT_PAX_FLAGS marks.
126037 +
126038 + If you enable both PT_PAX_FLAGS and XATTR_PAX_FLAGS support then you
126039 + must make sure that the marks are the same if a binary has both marks.
126040 +
126041 + If you enable none of the marking options then all applications
126042 + will run with PaX enabled on them by default.
126043 +
126044 +config PAX_XATTR_PAX_FLAGS
126045 + bool 'Use filesystem extended attributes marking'
126046 + default y if GRKERNSEC_CONFIG_AUTO
126047 + select CIFS_XATTR if CIFS
126048 + select EXT2_FS_XATTR if EXT2_FS
126049 + select EXT3_FS_XATTR if EXT3_FS
126050 + select F2FS_FS_XATTR if F2FS_FS
126051 + select JFFS2_FS_XATTR if JFFS2_FS
126052 + select REISERFS_FS_XATTR if REISERFS_FS
126053 + select SQUASHFS_XATTR if SQUASHFS
126054 + select TMPFS_XATTR if TMPFS
126055 + help
126056 + Enabling this option will allow you to control PaX features on
126057 + a per executable basis via the 'setfattr' utility. The control
126058 + flags will be read from the user.pax.flags extended attribute of
126059 + the file. This marking has the benefit of supporting binary-only
126060 + applications that self-check themselves (e.g., skype) and would
126061 + not tolerate chpax/paxctl changes. The main drawback is that
126062 + extended attributes are not supported by some filesystems (e.g.,
126063 + isofs, udf, vfat) so copying files through such filesystems will
126064 + lose the extended attributes and these PaX markings.
126065 +
126066 + Note that if you enable the legacy EI_PAX marking support as well,
126067 + the EI_PAX marks will be overridden by the XATTR_PAX_FLAGS marks.
126068 +
126069 + If you enable both PT_PAX_FLAGS and XATTR_PAX_FLAGS support then you
126070 + must make sure that the marks are the same if a binary has both marks.
126071 +
126072 + If you enable none of the marking options then all applications
126073 + will run with PaX enabled on them by default.
126074 +
126075 +choice
126076 + prompt 'MAC system integration'
126077 + default PAX_HAVE_ACL_FLAGS
126078 + help
126079 + Mandatory Access Control systems have the option of controlling
126080 + PaX flags on a per executable basis, choose the method supported
126081 + by your particular system.
126082 +
126083 + - "none": if your MAC system does not interact with PaX,
126084 + - "direct": if your MAC system defines pax_set_initial_flags() itself,
126085 + - "hook": if your MAC system uses the pax_set_initial_flags_func callback.
126086 +
126087 + NOTE: this option is for developers/integrators only.
126088 +
126089 + config PAX_NO_ACL_FLAGS
126090 + bool 'none'
126091 +
126092 + config PAX_HAVE_ACL_FLAGS
126093 + bool 'direct'
126094 +
126095 + config PAX_HOOK_ACL_FLAGS
126096 + bool 'hook'
126097 +endchoice
126098 +
126099 +endmenu
126100 +
126101 +menu "Non-executable pages"
126102 + depends on PAX
126103 +
126104 +config PAX_NOEXEC
126105 + bool "Enforce non-executable pages"
126106 + default y if GRKERNSEC_CONFIG_AUTO
126107 + depends on ALPHA || (ARM && (CPU_V6 || CPU_V6K || CPU_V7)) || IA64 || MIPS || PARISC || PPC || S390 || SPARC || X86
126108 + help
126109 + By design some architectures do not allow for protecting memory
126110 + pages against execution or even if they do, Linux does not make
126111 + use of this feature. In practice this means that if a page is
126112 + readable (such as the stack or heap) it is also executable.
126113 +
126114 + There is a well known exploit technique that makes use of this
126115 + fact and a common programming mistake where an attacker can
126116 + introduce code of his choice somewhere in the attacked program's
126117 + memory (typically the stack or the heap) and then execute it.
126118 +
126119 + If the attacked program was running with different (typically
126120 + higher) privileges than that of the attacker, then he can elevate
126121 + his own privilege level (e.g. get a root shell, write to files for
126122 + which he does not have write access to, etc).
126123 +
126124 + Enabling this option will let you choose from various features
126125 + that prevent the injection and execution of 'foreign' code in
126126 + a program.
126127 +
126128 + This will also break programs that rely on the old behaviour and
126129 + expect that dynamically allocated memory via the malloc() family
126130 + of functions is executable (which it is not). Notable examples
126131 + are the XFree86 4.x server, the java runtime and wine.
126132 +
126133 +config PAX_PAGEEXEC
126134 + bool "Paging based non-executable pages"
126135 + default y if GRKERNSEC_CONFIG_AUTO
126136 + 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)
126137 + select ARCH_TRACK_EXEC_LIMIT if X86_32
126138 + help
126139 + This implementation is based on the paging feature of the CPU.
126140 + On i386 without hardware non-executable bit support there is a
126141 + variable but usually low performance impact, however on Intel's
126142 + P4 core based CPUs it is very high so you should not enable this
126143 + for kernels meant to be used on such CPUs.
126144 +
126145 + On alpha, avr32, ia64, parisc, sparc, sparc64, x86_64 and i386
126146 + with hardware non-executable bit support there is no performance
126147 + impact, on ppc the impact is negligible.
126148 +
126149 + Note that several architectures require various emulations due to
126150 + badly designed userland ABIs, this will cause a performance impact
126151 + but will disappear as soon as userland is fixed. For example, ppc
126152 + userland MUST have been built with secure-plt by a recent toolchain.
126153 +
126154 +config PAX_SEGMEXEC
126155 + bool "Segmentation based non-executable pages"
126156 + default y if GRKERNSEC_CONFIG_AUTO
126157 + depends on PAX_NOEXEC && X86_32
126158 + help
126159 + This implementation is based on the segmentation feature of the
126160 + CPU and has a very small performance impact, however applications
126161 + will be limited to a 1.5 GB address space instead of the normal
126162 + 3 GB.
126163 +
126164 +config PAX_EMUTRAMP
126165 + bool "Emulate trampolines"
126166 + default y if PARISC || GRKERNSEC_CONFIG_AUTO
126167 + depends on (PAX_PAGEEXEC || PAX_SEGMEXEC) && (PARISC || X86)
126168 + help
126169 + There are some programs and libraries that for one reason or
126170 + another attempt to execute special small code snippets from
126171 + non-executable memory pages. Most notable examples are the
126172 + signal handler return code generated by the kernel itself and
126173 + the GCC trampolines.
126174 +
126175 + If you enabled CONFIG_PAX_PAGEEXEC or CONFIG_PAX_SEGMEXEC then
126176 + such programs will no longer work under your kernel.
126177 +
126178 + As a remedy you can say Y here and use the 'chpax' or 'paxctl'
126179 + utilities to enable trampoline emulation for the affected programs
126180 + yet still have the protection provided by the non-executable pages.
126181 +
126182 + On parisc you MUST enable this option and EMUSIGRT as well, otherwise
126183 + your system will not even boot.
126184 +
126185 + Alternatively you can say N here and use the 'chpax' or 'paxctl'
126186 + utilities to disable CONFIG_PAX_PAGEEXEC and CONFIG_PAX_SEGMEXEC
126187 + for the affected files.
126188 +
126189 + NOTE: enabling this feature *may* open up a loophole in the
126190 + protection provided by non-executable pages that an attacker
126191 + could abuse. Therefore the best solution is to not have any
126192 + files on your system that would require this option. This can
126193 + be achieved by not using libc5 (which relies on the kernel
126194 + signal handler return code) and not using or rewriting programs
126195 + that make use of the nested function implementation of GCC.
126196 + Skilled users can just fix GCC itself so that it implements
126197 + nested function calls in a way that does not interfere with PaX.
126198 +
126199 +config PAX_EMUSIGRT
126200 + bool "Automatically emulate sigreturn trampolines"
126201 + depends on PAX_EMUTRAMP && PARISC
126202 + default y
126203 + help
126204 + Enabling this option will have the kernel automatically detect
126205 + and emulate signal return trampolines executing on the stack
126206 + that would otherwise lead to task termination.
126207 +
126208 + This solution is intended as a temporary one for users with
126209 + legacy versions of libc (libc5, glibc 2.0, uClibc before 0.9.17,
126210 + Modula-3 runtime, etc) or executables linked to such, basically
126211 + everything that does not specify its own SA_RESTORER function in
126212 + normal executable memory like glibc 2.1+ does.
126213 +
126214 + On parisc you MUST enable this option, otherwise your system will
126215 + not even boot.
126216 +
126217 + NOTE: this feature cannot be disabled on a per executable basis
126218 + and since it *does* open up a loophole in the protection provided
126219 + by non-executable pages, the best solution is to not have any
126220 + files on your system that would require this option.
126221 +
126222 +config PAX_MPROTECT
126223 + bool "Restrict mprotect()"
126224 + default y if GRKERNSEC_CONFIG_AUTO
126225 + depends on (PAX_PAGEEXEC || PAX_SEGMEXEC)
126226 + help
126227 + Enabling this option will prevent programs from
126228 + - changing the executable status of memory pages that were
126229 + not originally created as executable,
126230 + - making read-only executable pages writable again,
126231 + - creating executable pages from anonymous memory,
126232 + - making read-only-after-relocations (RELRO) data pages writable again.
126233 +
126234 + You should say Y here to complete the protection provided by
126235 + the enforcement of non-executable pages.
126236 +
126237 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control
126238 + this feature on a per file basis.
126239 +
126240 +config PAX_MPROTECT_COMPAT
126241 + bool "Use legacy/compat protection demoting (read help)"
126242 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_DESKTOP)
126243 + depends on PAX_MPROTECT
126244 + help
126245 + The current implementation of PAX_MPROTECT denies RWX allocations/mprotects
126246 + by sending the proper error code to the application. For some broken
126247 + userland, this can cause problems with Python or other applications. The
126248 + current implementation however allows for applications like clamav to
126249 + detect if JIT compilation/execution is allowed and to fall back gracefully
126250 + to an interpreter-based mode if it does not. While we encourage everyone
126251 + to use the current implementation as-is and push upstream to fix broken
126252 + userland (note that the RWX logging option can assist with this), in some
126253 + environments this may not be possible. Having to disable MPROTECT
126254 + completely on certain binaries reduces the security benefit of PaX,
126255 + so this option is provided for those environments to revert to the old
126256 + behavior.
126257 +
126258 +config PAX_ELFRELOCS
126259 + bool "Allow ELF text relocations (read help)"
126260 + depends on PAX_MPROTECT
126261 + default n
126262 + help
126263 + Non-executable pages and mprotect() restrictions are effective
126264 + in preventing the introduction of new executable code into an
126265 + attacked task's address space. There remain only two venues
126266 + for this kind of attack: if the attacker can execute already
126267 + existing code in the attacked task then he can either have it
126268 + create and mmap() a file containing his code or have it mmap()
126269 + an already existing ELF library that does not have position
126270 + independent code in it and use mprotect() on it to make it
126271 + writable and copy his code there. While protecting against
126272 + the former approach is beyond PaX, the latter can be prevented
126273 + by having only PIC ELF libraries on one's system (which do not
126274 + need to relocate their code). If you are sure this is your case,
126275 + as is the case with all modern Linux distributions, then leave
126276 + this option disabled. You should say 'n' here.
126277 +
126278 +config PAX_ETEXECRELOCS
126279 + bool "Allow ELF ET_EXEC text relocations"
126280 + depends on PAX_MPROTECT && (ALPHA || IA64 || PARISC)
126281 + select PAX_ELFRELOCS
126282 + default y
126283 + help
126284 + On some architectures there are incorrectly created applications
126285 + that require text relocations and would not work without enabling
126286 + this option. If you are an alpha, ia64 or parisc user, you should
126287 + enable this option and disable it once you have made sure that
126288 + none of your applications need it.
126289 +
126290 +config PAX_EMUPLT
126291 + bool "Automatically emulate ELF PLT"
126292 + depends on PAX_MPROTECT && (ALPHA || PARISC || SPARC)
126293 + default y
126294 + help
126295 + Enabling this option will have the kernel automatically detect
126296 + and emulate the Procedure Linkage Table entries in ELF files.
126297 + On some architectures such entries are in writable memory, and
126298 + become non-executable leading to task termination. Therefore
126299 + it is mandatory that you enable this option on alpha, parisc,
126300 + sparc and sparc64, otherwise your system would not even boot.
126301 +
126302 + NOTE: this feature *does* open up a loophole in the protection
126303 + provided by the non-executable pages, therefore the proper
126304 + solution is to modify the toolchain to produce a PLT that does
126305 + not need to be writable.
126306 +
126307 +config PAX_DLRESOLVE
126308 + bool 'Emulate old glibc resolver stub'
126309 + depends on PAX_EMUPLT && SPARC
126310 + default n
126311 + help
126312 + This option is needed if userland has an old glibc (before 2.4)
126313 + that puts a 'save' instruction into the runtime generated resolver
126314 + stub that needs special emulation.
126315 +
126316 +config PAX_KERNEXEC
126317 + bool "Enforce non-executable kernel pages"
126318 + 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))
126319 + depends on (X86 || (ARM && (CPU_V6 || CPU_V6K || CPU_V7) && !(ARM_LPAE && MODULES))) && !XEN
126320 + select PAX_PER_CPU_PGD if X86_64 || (X86_32 && X86_PAE)
126321 + select PAX_KERNEXEC_PLUGIN if X86_64
126322 + select ARM_KERNMEM_PERMS if ARM
126323 + help
126324 + This is the kernel land equivalent of PAGEEXEC and MPROTECT,
126325 + that is, enabling this option will make it harder to inject
126326 + and execute 'foreign' code in kernel memory itself.
126327 +
126328 + Note that on amd64, CONFIG_EFI enabled with "efi=old_map" on
126329 + the kernel command-line will result in an RWX physical map.
126330 +
126331 + Likewise, the EFI runtime services are necessarily mapped as
126332 + RWX. If CONFIG_EFI is enabled on an EFI-capable system, it
126333 + is recommended that you boot with "noefi" on the kernel
126334 + command-line if possible to eliminate the mapping.
126335 +
126336 +choice
126337 + prompt "Return Address Instrumentation Method"
126338 + default PAX_KERNEXEC_PLUGIN_METHOD_BTS
126339 + depends on PAX_KERNEXEC_PLUGIN
126340 + help
126341 + Select the method used to instrument function pointer dereferences.
126342 + Note that binary modules cannot be instrumented by this approach.
126343 +
126344 + Note that the implementation requires a gcc with plugin support,
126345 + i.e., gcc 4.5 or newer. You may need to install the supporting
126346 + headers explicitly in addition to the normal gcc package.
126347 +
126348 + config PAX_KERNEXEC_PLUGIN_METHOD_BTS
126349 + bool "bts"
126350 + help
126351 + This method is compatible with binary only modules but has
126352 + a higher runtime overhead.
126353 +
126354 + config PAX_KERNEXEC_PLUGIN_METHOD_OR
126355 + bool "or"
126356 + depends on !PARAVIRT
126357 + help
126358 + This method is incompatible with binary only modules but has
126359 + a lower runtime overhead.
126360 +endchoice
126361 +
126362 +config PAX_KERNEXEC_PLUGIN_METHOD
126363 + string
126364 + default "bts" if PAX_KERNEXEC_PLUGIN_METHOD_BTS
126365 + default "or" if PAX_KERNEXEC_PLUGIN_METHOD_OR
126366 + default ""
126367 +
126368 +config PAX_KERNEXEC_MODULE_TEXT
126369 + int "Minimum amount of memory reserved for module code"
126370 + default "8" if (!GRKERNSEC_CONFIG_AUTO || GRKERNSEC_CONFIG_SERVER)
126371 + default "12" if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_DESKTOP)
126372 + depends on PAX_KERNEXEC && X86_32
126373 + help
126374 + Due to implementation details the kernel must reserve a fixed
126375 + amount of memory for runtime allocated code (such as modules)
126376 + at compile time that cannot be changed at runtime. Here you
126377 + can specify the minimum amount in MB that will be reserved.
126378 + Due to the same implementation details this size will always
126379 + be rounded up to the next 2/4 MB boundary (depends on PAE) so
126380 + the actually available memory for runtime allocated code will
126381 + usually be more than this minimum.
126382 +
126383 + The default 4 MB should be enough for most users but if you have
126384 + an excessive number of modules (e.g., most distribution configs
126385 + compile many drivers as modules) or use huge modules such as
126386 + nvidia's kernel driver, you will need to adjust this amount.
126387 + A good rule of thumb is to look at your currently loaded kernel
126388 + modules and add up their sizes.
126389 +
126390 +endmenu
126391 +
126392 +menu "Address Space Layout Randomization"
126393 + depends on PAX
126394 +
126395 +config PAX_ASLR
126396 + bool "Address Space Layout Randomization"
126397 + default y if GRKERNSEC_CONFIG_AUTO
126398 + help
126399 + Many if not most exploit techniques rely on the knowledge of
126400 + certain addresses in the attacked program. The following options
126401 + will allow the kernel to apply a certain amount of randomization
126402 + to specific parts of the program thereby forcing an attacker to
126403 + guess them in most cases. Any failed guess will most likely crash
126404 + the attacked program which allows the kernel to detect such attempts
126405 + and react on them. PaX itself provides no reaction mechanisms,
126406 + instead it is strongly encouraged that you make use of grsecurity's
126407 + (http://www.grsecurity.net/) built-in crash detection features or
126408 + develop one yourself.
126409 +
126410 + By saying Y here you can choose to randomize the following areas:
126411 + - top of the task's kernel stack
126412 + - top of the task's userland stack
126413 + - base address for mmap() requests that do not specify one
126414 + (this includes all libraries)
126415 + - base address of the main executable
126416 +
126417 + It is strongly recommended to say Y here as address space layout
126418 + randomization has negligible impact on performance yet it provides
126419 + a very effective protection.
126420 +
126421 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control
126422 + this feature on a per file basis.
126423 +
126424 +config PAX_RANDKSTACK
126425 + bool "Randomize kernel stack base"
126426 + default y if GRKERNSEC_CONFIG_AUTO && !(GRKERNSEC_CONFIG_VIRT_HOST && GRKERNSEC_CONFIG_VIRT_VIRTUALBOX)
126427 + depends on X86_TSC && X86
126428 + help
126429 + By saying Y here the kernel will randomize every task's kernel
126430 + stack on every system call. This will not only force an attacker
126431 + to guess it but also prevent him from making use of possible
126432 + leaked information about it.
126433 +
126434 + Since the kernel stack is a rather scarce resource, randomization
126435 + may cause unexpected stack overflows, therefore you should very
126436 + carefully test your system. Note that once enabled in the kernel
126437 + configuration, this feature cannot be disabled on a per file basis.
126438 +
126439 +config PAX_RANDUSTACK
126440 + bool
126441 +
126442 +config PAX_RANDMMAP
126443 + bool "Randomize user stack and mmap() bases"
126444 + default y if GRKERNSEC_CONFIG_AUTO
126445 + depends on PAX_ASLR
126446 + select PAX_RANDUSTACK
126447 + help
126448 + By saying Y here the kernel will randomize every task's userland
126449 + stack and use a randomized base address for mmap() requests that
126450 + do not specify one themselves.
126451 +
126452 + The stack randomization is done in two steps where the second
126453 + one may apply a big amount of shift to the top of the stack and
126454 + cause problems for programs that want to use lots of memory (more
126455 + than 2.5 GB if SEGMEXEC is not active, or 1.25 GB when it is).
126456 +
126457 + As a result of mmap randomization all dynamically loaded libraries
126458 + will appear at random addresses and therefore be harder to exploit
126459 + by a technique where an attacker attempts to execute library code
126460 + for his purposes (e.g. spawn a shell from an exploited program that
126461 + is running at an elevated privilege level).
126462 +
126463 + Furthermore, if a program is relinked as a dynamic ELF file, its
126464 + base address will be randomized as well, completing the full
126465 + randomization of the address space layout. Attacking such programs
126466 + becomes a guess game. You can find an example of doing this at
126467 + http://pax.grsecurity.net/et_dyn.tar.gz and practical samples at
126468 + http://www.grsecurity.net/grsec-gcc-specs.tar.gz .
126469 +
126470 + NOTE: you can use the 'chpax' or 'paxctl' utilities to control this
126471 + feature on a per file basis.
126472 +
126473 +endmenu
126474 +
126475 +menu "Miscellaneous hardening features"
126476 +
126477 +config PAX_MEMORY_SANITIZE
126478 + bool "Sanitize all freed memory"
126479 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
126480 + help
126481 + By saying Y here the kernel will erase memory pages and slab objects
126482 + as soon as they are freed. This in turn reduces the lifetime of data
126483 + stored in them, making it less likely that sensitive information such
126484 + as passwords, cryptographic secrets, etc stay in memory for too long.
126485 +
126486 + This is especially useful for programs whose runtime is short, long
126487 + lived processes and the kernel itself benefit from this as long as
126488 + they ensure timely freeing of memory that may hold sensitive
126489 + information.
126490 +
126491 + A nice side effect of the sanitization of slab objects is the
126492 + reduction of possible info leaks caused by padding bytes within the
126493 + leaky structures. Use-after-free bugs for structures containing
126494 + pointers can also be detected as dereferencing the sanitized pointer
126495 + will generate an access violation.
126496 +
126497 + The tradeoff is performance impact, on a single CPU system kernel
126498 + compilation sees a 3% slowdown, other systems and workloads may vary
126499 + and you are advised to test this feature on your expected workload
126500 + before deploying it.
126501 +
126502 + The slab sanitization feature excludes a few slab caches per default
126503 + for performance reasons. To extend the feature to cover those as
126504 + well, pass "pax_sanitize_slab=full" as kernel command line parameter.
126505 +
126506 + To reduce the performance penalty by sanitizing pages only, albeit
126507 + limiting the effectiveness of this feature at the same time, slab
126508 + sanitization can be disabled with the kernel command line parameter
126509 + "pax_sanitize_slab=off".
126510 +
126511 + Note that this feature does not protect data stored in live pages,
126512 + e.g., process memory swapped to disk may stay there for a long time.
126513 +
126514 +config PAX_MEMORY_STACKLEAK
126515 + bool "Sanitize kernel stack"
126516 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
126517 + depends on X86
126518 + help
126519 + By saying Y here the kernel will erase the kernel stack before it
126520 + returns from a system call. This in turn reduces the information
126521 + that a kernel stack leak bug can reveal.
126522 +
126523 + Note that such a bug can still leak information that was put on
126524 + the stack by the current system call (the one eventually triggering
126525 + the bug) but traces of earlier system calls on the kernel stack
126526 + cannot leak anymore.
126527 +
126528 + The tradeoff is performance impact: on a single CPU system kernel
126529 + compilation sees a 1% slowdown, other systems and workloads may vary
126530 + and you are advised to test this feature on your expected workload
126531 + before deploying it.
126532 +
126533 + Note that the full feature requires a gcc with plugin support,
126534 + i.e., gcc 4.5 or newer. You may need to install the supporting
126535 + headers explicitly in addition to the normal gcc package. Using
126536 + older gcc versions means that functions with large enough stack
126537 + frames may leave uninitialized memory behind that may be exposed
126538 + to a later syscall leaking the stack.
126539 +
126540 +config PAX_MEMORY_STRUCTLEAK
126541 + bool "Forcibly initialize local variables copied to userland"
126542 + default y if (GRKERNSEC_CONFIG_AUTO && GRKERNSEC_CONFIG_PRIORITY_SECURITY)
126543 + help
126544 + By saying Y here the kernel will zero initialize some local
126545 + variables that are going to be copied to userland. This in
126546 + turn prevents unintended information leakage from the kernel
126547 + stack should later code forget to explicitly set all parts of
126548 + the copied variable.
126549 +
126550 + The tradeoff is less performance impact than PAX_MEMORY_STACKLEAK
126551 + at a much smaller coverage.
126552 +
126553 + Note that the implementation requires a gcc with plugin support,
126554 + i.e., gcc 4.5 or newer. You may need to install the supporting
126555 + headers explicitly in addition to the normal gcc package.
126556 +
126557 +config PAX_MEMORY_UDEREF
126558 + bool "Prevent invalid userland pointer dereference"
126559 + 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)
126560 + depends on (X86 || (ARM && (CPU_V6 || CPU_V6K || CPU_V7) && !ARM_LPAE)) && !UML_X86 && !XEN
126561 + select PAX_PER_CPU_PGD if X86_64
126562 + help
126563 + By saying Y here the kernel will be prevented from dereferencing
126564 + userland pointers in contexts where the kernel expects only kernel
126565 + pointers. This is both a useful runtime debugging feature and a
126566 + security measure that prevents exploiting a class of kernel bugs.
126567 +
126568 + The tradeoff is that some virtualization solutions may experience
126569 + a huge slowdown and therefore you should not enable this feature
126570 + for kernels meant to run in such environments. Whether a given VM
126571 + solution is affected or not is best determined by simply trying it
126572 + out, the performance impact will be obvious right on boot as this
126573 + mechanism engages from very early on. A good rule of thumb is that
126574 + VMs running on CPUs without hardware virtualization support (i.e.,
126575 + the majority of IA-32 CPUs) will likely experience the slowdown.
126576 +
126577 + On X86_64 the kernel will make use of PCID support when available
126578 + (Intel's Westmere, Sandy Bridge, etc) for better security (default)
126579 + or performance impact. Pass pax_weakuderef on the kernel command
126580 + line to choose the latter.
126581 +
126582 +config PAX_REFCOUNT
126583 + bool "Prevent various kernel object reference counter overflows"
126584 + default y if GRKERNSEC_CONFIG_AUTO
126585 + depends on GRKERNSEC && ((ARM && (CPU_V6 || CPU_V6K || CPU_V7)) || MIPS || PPC || SPARC64 || X86)
126586 + help
126587 + By saying Y here the kernel will detect and prevent overflowing
126588 + various (but not all) kinds of object reference counters. Such
126589 + overflows can normally occur due to bugs only and are often, if
126590 + not always, exploitable.
126591 +
126592 + The tradeoff is that data structures protected by an overflowed
126593 + refcount will never be freed and therefore will leak memory. Note
126594 + that this leak also happens even without this protection but in
126595 + that case the overflow can eventually trigger the freeing of the
126596 + data structure while it is still being used elsewhere, resulting
126597 + in the exploitable situation that this feature prevents.
126598 +
126599 + Since this has a negligible performance impact, you should enable
126600 + this feature.
126601 +
126602 +config PAX_CONSTIFY_PLUGIN
126603 + bool "Automatically constify eligible structures"
126604 + default y
126605 + depends on !UML && PAX_KERNEXEC
126606 + help
126607 + By saying Y here the compiler will automatically constify a class
126608 + of types that contain only function pointers. This reduces the
126609 + kernel's attack surface and also produces a better memory layout.
126610 +
126611 + Note that the implementation requires a gcc with plugin support,
126612 + i.e., gcc 4.5 or newer. You may need to install the supporting
126613 + headers explicitly in addition to the normal gcc package.
126614 +
126615 + Note that if some code really has to modify constified variables
126616 + then the source code will have to be patched to allow it. Examples
126617 + can be found in PaX itself (the no_const attribute) and for some
126618 + out-of-tree modules at http://www.grsecurity.net/~paxguy1/ .
126619 +
126620 +config PAX_USERCOPY
126621 + bool "Harden heap object copies between kernel and userland"
126622 + default y if GRKERNSEC_CONFIG_AUTO
126623 + depends on ARM || IA64 || PPC || SPARC || X86
126624 + depends on GRKERNSEC && (SLAB || SLUB || SLOB)
126625 + select PAX_USERCOPY_SLABS
126626 + help
126627 + By saying Y here the kernel will enforce the size of heap objects
126628 + when they are copied in either direction between the kernel and
126629 + userland, even if only a part of the heap object is copied.
126630 +
126631 + Specifically, this checking prevents information leaking from the
126632 + kernel heap during kernel to userland copies (if the kernel heap
126633 + object is otherwise fully initialized) and prevents kernel heap
126634 + overflows during userland to kernel copies.
126635 +
126636 + Note that the current implementation provides the strictest bounds
126637 + checks for the SLUB allocator.
126638 +
126639 + Enabling this option also enables per-slab cache protection against
126640 + data in a given cache being copied into/out of via userland
126641 + accessors. Though the whitelist of regions will be reduced over
126642 + time, it notably protects important data structures like task structs.
126643 +
126644 + If frame pointers are enabled on x86, this option will also restrict
126645 + copies into and out of the kernel stack to local variables within a
126646 + single frame.
126647 +
126648 + Since this has a negligible performance impact, you should enable
126649 + this feature.
126650 +
126651 +config PAX_USERCOPY_DEBUG
126652 + bool
126653 + depends on X86 && PAX_USERCOPY
126654 + default n
126655 +
126656 +config PAX_SIZE_OVERFLOW
126657 + bool "Prevent various integer overflows in function size parameters"
126658 + default y if GRKERNSEC_CONFIG_AUTO
126659 + help
126660 + By saying Y here the kernel recomputes expressions of function
126661 + arguments marked by a size_overflow attribute with double integer
126662 + precision (DImode/TImode for 32/64 bit integer types).
126663 +
126664 + The recomputed argument is checked against TYPE_MAX and an event
126665 + is logged on overflow and the triggering process is killed.
126666 +
126667 + Homepage: https://github.com/ephox-gcc-plugins
126668 +
126669 + Note that the implementation requires a gcc with plugin support,
126670 + i.e., gcc 4.5 or newer. You may need to install the supporting
126671 + headers explicitly in addition to the normal gcc package.
126672 +
126673 +config PAX_SIZE_OVERFLOW_DISABLE_KILL
126674 + bool "Do not kill process on overflow detection"
126675 + default n
126676 + depends on PAX_SIZE_OVERFLOW
126677 +
126678 +config PAX_LATENT_ENTROPY
126679 + bool "Generate some entropy during boot and runtime"
126680 + default y if GRKERNSEC_CONFIG_AUTO
126681 + help
126682 + By saying Y here the kernel will instrument some kernel code to
126683 + extract some entropy from both original and artificially created
126684 + program state. This will help especially embedded systems where
126685 + there is little 'natural' source of entropy normally. The cost
126686 + is some slowdown of the boot process and fork and irq processing.
126687 +
126688 + When pax_extra_latent_entropy is passed on the kernel command line,
126689 + entropy will be extracted from up to the first 4GB of RAM while the
126690 + runtime memory allocator is being initialized. This costs even more
126691 + slowdown of the boot process.
126692 +
126693 + Note that the implementation requires a gcc with plugin support,
126694 + i.e., gcc 4.5 or newer. You may need to install the supporting
126695 + headers explicitly in addition to the normal gcc package.
126696 +
126697 + Note that entropy extracted this way is not cryptographically
126698 + secure!
126699 +
126700 +endmenu
126701 +
126702 +endmenu
126703 +
126704 +source grsecurity/Kconfig
126705 +
126706 +endmenu
126707 +
126708 +endmenu
126709 +
126710 source security/keys/Kconfig
126711
126712 config SECURITY_DMESG_RESTRICT
126713 @@ -104,7 +1083,7 @@ config INTEL_TXT
126714 config LSM_MMAP_MIN_ADDR
126715 int "Low address space for LSM to protect from user allocation"
126716 depends on SECURITY && SECURITY_SELINUX
126717 - default 32768 if ARM || (ARM64 && COMPAT)
126718 + default 32768 if ALPHA || ARM || (ARM64 && COMPAT) || PARISC || SPARC32
126719 default 65536
126720 help
126721 This is the portion of low virtual memory which should be protected
126722 diff --git a/security/apparmor/file.c b/security/apparmor/file.c
126723 index 913f377..6e392d5 100644
126724 --- a/security/apparmor/file.c
126725 +++ b/security/apparmor/file.c
126726 @@ -348,8 +348,8 @@ static inline bool xindex_is_subset(u32 link, u32 target)
126727 int aa_path_link(struct aa_profile *profile, struct dentry *old_dentry,
126728 struct path *new_dir, struct dentry *new_dentry)
126729 {
126730 - struct path link = { new_dir->mnt, new_dentry };
126731 - struct path target = { new_dir->mnt, old_dentry };
126732 + struct path link = { .mnt = new_dir->mnt, .dentry = new_dentry };
126733 + struct path target = { .mnt = new_dir->mnt, .dentry = old_dentry };
126734 struct path_cond cond = {
126735 d_backing_inode(old_dentry)->i_uid,
126736 d_backing_inode(old_dentry)->i_mode
126737 diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
126738 index dec607c..2f291ad9 100644
126739 --- a/security/apparmor/lsm.c
126740 +++ b/security/apparmor/lsm.c
126741 @@ -176,7 +176,7 @@ static int common_perm_dir_dentry(int op, struct path *dir,
126742 struct dentry *dentry, u32 mask,
126743 struct path_cond *cond)
126744 {
126745 - struct path path = { dir->mnt, dentry };
126746 + struct path path = { .mnt = dir->mnt, .dentry = dentry };
126747
126748 return common_perm(op, &path, mask, cond);
126749 }
126750 @@ -193,7 +193,7 @@ static int common_perm_dir_dentry(int op, struct path *dir,
126751 static int common_perm_mnt_dentry(int op, struct vfsmount *mnt,
126752 struct dentry *dentry, u32 mask)
126753 {
126754 - struct path path = { mnt, dentry };
126755 + struct path path = { .mnt = mnt, .dentry = dentry };
126756 struct path_cond cond = { d_backing_inode(dentry)->i_uid,
126757 d_backing_inode(dentry)->i_mode
126758 };
126759 @@ -315,8 +315,8 @@ static int apparmor_path_rename(struct path *old_dir, struct dentry *old_dentry,
126760
126761 profile = aa_current_profile();
126762 if (!unconfined(profile)) {
126763 - struct path old_path = { old_dir->mnt, old_dentry };
126764 - struct path new_path = { new_dir->mnt, new_dentry };
126765 + struct path old_path = { .mnt = old_dir->mnt, .dentry = old_dentry };
126766 + struct path new_path = { .mnt = new_dir->mnt, .dentry = new_dentry };
126767 struct path_cond cond = { d_backing_inode(old_dentry)->i_uid,
126768 d_backing_inode(old_dentry)->i_mode
126769 };
126770 diff --git a/security/commoncap.c b/security/commoncap.c
126771 index d103f5a4..3f7369a 100644
126772 --- a/security/commoncap.c
126773 +++ b/security/commoncap.c
126774 @@ -422,6 +422,32 @@ int get_vfs_caps_from_disk(const struct dentry *dentry, struct cpu_vfs_cap_data
126775 return 0;
126776 }
126777
126778 +/* returns:
126779 + 1 for suid privilege
126780 + 2 for sgid privilege
126781 + 3 for fscap privilege
126782 +*/
126783 +int is_privileged_binary(const struct dentry *dentry)
126784 +{
126785 + struct cpu_vfs_cap_data capdata;
126786 + struct inode *inode = dentry->d_inode;
126787 +
126788 + if (!inode || S_ISDIR(inode->i_mode))
126789 + return 0;
126790 +
126791 + if (inode->i_mode & S_ISUID)
126792 + return 1;
126793 + if ((inode->i_mode & (S_ISGID | S_IXGRP)) == (S_ISGID | S_IXGRP))
126794 + return 2;
126795 +
126796 + if (!get_vfs_caps_from_disk(dentry, &capdata)) {
126797 + if (!cap_isclear(capdata.inheritable) || !cap_isclear(capdata.permitted))
126798 + return 3;
126799 + }
126800 +
126801 + return 0;
126802 +}
126803 +
126804 /*
126805 * Attempt to get the on-exec apply capability sets for an executable file from
126806 * its xattrs and, if present, apply them to the proposed credentials being
126807 @@ -586,6 +612,9 @@ int cap_bprm_secureexec(struct linux_binprm *bprm)
126808 const struct cred *cred = current_cred();
126809 kuid_t root_uid = make_kuid(cred->user_ns, 0);
126810
126811 + if (gr_acl_enable_at_secure())
126812 + return 1;
126813 +
126814 if (!uid_eq(cred->uid, root_uid)) {
126815 if (bprm->cap_effective)
126816 return 1;
126817 diff --git a/security/integrity/ima/ima.h b/security/integrity/ima/ima.h
126818 index e2a60c3..2e41dd3 100644
126819 --- a/security/integrity/ima/ima.h
126820 +++ b/security/integrity/ima/ima.h
126821 @@ -125,8 +125,8 @@ int ima_init_template(void);
126822 extern spinlock_t ima_queue_lock;
126823
126824 struct ima_h_table {
126825 - atomic_long_t len; /* number of stored measurements in the list */
126826 - atomic_long_t violations;
126827 + atomic_long_unchecked_t len; /* number of stored measurements in the list */
126828 + atomic_long_unchecked_t violations;
126829 struct hlist_head queue[IMA_MEASURE_HTABLE_SIZE];
126830 };
126831 extern struct ima_h_table ima_htable;
126832 diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c
126833 index 1d950fb..a8f4eab 100644
126834 --- a/security/integrity/ima/ima_api.c
126835 +++ b/security/integrity/ima/ima_api.c
126836 @@ -137,7 +137,7 @@ void ima_add_violation(struct file *file, const unsigned char *filename,
126837 int result;
126838
126839 /* can overflow, only indicator */
126840 - atomic_long_inc(&ima_htable.violations);
126841 + atomic_long_inc_unchecked(&ima_htable.violations);
126842
126843 result = ima_alloc_init_template(&event_data, &entry);
126844 if (result < 0) {
126845 diff --git a/security/integrity/ima/ima_fs.c b/security/integrity/ima/ima_fs.c
126846 index 816d175..20079ae 100644
126847 --- a/security/integrity/ima/ima_fs.c
126848 +++ b/security/integrity/ima/ima_fs.c
126849 @@ -28,12 +28,12 @@
126850 static int valid_policy = 1;
126851 #define TMPBUFLEN 12
126852 static ssize_t ima_show_htable_value(char __user *buf, size_t count,
126853 - loff_t *ppos, atomic_long_t *val)
126854 + loff_t *ppos, atomic_long_unchecked_t *val)
126855 {
126856 char tmpbuf[TMPBUFLEN];
126857 ssize_t len;
126858
126859 - len = scnprintf(tmpbuf, TMPBUFLEN, "%li\n", atomic_long_read(val));
126860 + len = scnprintf(tmpbuf, TMPBUFLEN, "%li\n", atomic_long_read_unchecked(val));
126861 return simple_read_from_buffer(buf, count, ppos, tmpbuf, len);
126862 }
126863
126864 diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
126865 index 552705d..9920f4fb 100644
126866 --- a/security/integrity/ima/ima_queue.c
126867 +++ b/security/integrity/ima/ima_queue.c
126868 @@ -83,7 +83,7 @@ static int ima_add_digest_entry(struct ima_template_entry *entry)
126869 INIT_LIST_HEAD(&qe->later);
126870 list_add_tail_rcu(&qe->later, &ima_measurements);
126871
126872 - atomic_long_inc(&ima_htable.len);
126873 + atomic_long_inc_unchecked(&ima_htable.len);
126874 key = ima_hash_key(entry->digest);
126875 hlist_add_head_rcu(&qe->hnext, &ima_htable.queue[key]);
126876 return 0;
126877 diff --git a/security/keys/key.c b/security/keys/key.c
126878 index aee2ec5..c276071 100644
126879 --- a/security/keys/key.c
126880 +++ b/security/keys/key.c
126881 @@ -283,7 +283,7 @@ struct key *key_alloc(struct key_type *type, const char *desc,
126882
126883 atomic_set(&key->usage, 1);
126884 init_rwsem(&key->sem);
126885 - lockdep_set_class(&key->sem, &type->lock_class);
126886 + lockdep_set_class(&key->sem, (struct lock_class_key *)&type->lock_class);
126887 key->index_key.type = type;
126888 key->user = user;
126889 key->quotalen = quotalen;
126890 @@ -1073,7 +1073,9 @@ int register_key_type(struct key_type *ktype)
126891 struct key_type *p;
126892 int ret;
126893
126894 - memset(&ktype->lock_class, 0, sizeof(ktype->lock_class));
126895 + pax_open_kernel();
126896 + memset((void *)&ktype->lock_class, 0, sizeof(ktype->lock_class));
126897 + pax_close_kernel();
126898
126899 ret = -EEXIST;
126900 down_write(&key_types_sem);
126901 @@ -1085,7 +1087,7 @@ int register_key_type(struct key_type *ktype)
126902 }
126903
126904 /* store the type */
126905 - list_add(&ktype->link, &key_types_list);
126906 + pax_list_add((struct list_head *)&ktype->link, &key_types_list);
126907
126908 pr_notice("Key type %s registered\n", ktype->name);
126909 ret = 0;
126910 @@ -1107,7 +1109,7 @@ EXPORT_SYMBOL(register_key_type);
126911 void unregister_key_type(struct key_type *ktype)
126912 {
126913 down_write(&key_types_sem);
126914 - list_del_init(&ktype->link);
126915 + pax_list_del_init((struct list_head *)&ktype->link);
126916 downgrade_write(&key_types_sem);
126917 key_gc_keytype(ktype);
126918 pr_notice("Key type %s unregistered\n", ktype->name);
126919 @@ -1125,10 +1127,10 @@ void __init key_init(void)
126920 0, SLAB_HWCACHE_ALIGN|SLAB_PANIC, NULL);
126921
126922 /* add the special key types */
126923 - list_add_tail(&key_type_keyring.link, &key_types_list);
126924 - list_add_tail(&key_type_dead.link, &key_types_list);
126925 - list_add_tail(&key_type_user.link, &key_types_list);
126926 - list_add_tail(&key_type_logon.link, &key_types_list);
126927 + pax_list_add_tail((struct list_head *)&key_type_keyring.link, &key_types_list);
126928 + pax_list_add_tail((struct list_head *)&key_type_dead.link, &key_types_list);
126929 + pax_list_add_tail((struct list_head *)&key_type_user.link, &key_types_list);
126930 + pax_list_add_tail((struct list_head *)&key_type_logon.link, &key_types_list);
126931
126932 /* record the root user tracking */
126933 rb_link_node(&root_key_user.node,
126934 diff --git a/security/keys/request_key.c b/security/keys/request_key.c
126935 index 486ef6f..0d62531 100644
126936 --- a/security/keys/request_key.c
126937 +++ b/security/keys/request_key.c
126938 @@ -440,6 +440,9 @@ static struct key *construct_key_and_link(struct keyring_search_context *ctx,
126939
126940 kenter("");
126941
126942 + if (ctx->index_key.type == &key_type_keyring)
126943 + return ERR_PTR(-EPERM);
126944 +
126945 user = key_user_lookup(current_fsuid());
126946 if (!user)
126947 return ERR_PTR(-ENOMEM);
126948 diff --git a/security/min_addr.c b/security/min_addr.c
126949 index f728728..6457a0c 100644
126950 --- a/security/min_addr.c
126951 +++ b/security/min_addr.c
126952 @@ -14,6 +14,7 @@ unsigned long dac_mmap_min_addr = CONFIG_DEFAULT_MMAP_MIN_ADDR;
126953 */
126954 static void update_mmap_min_addr(void)
126955 {
126956 +#ifndef SPARC
126957 #ifdef CONFIG_LSM_MMAP_MIN_ADDR
126958 if (dac_mmap_min_addr > CONFIG_LSM_MMAP_MIN_ADDR)
126959 mmap_min_addr = dac_mmap_min_addr;
126960 @@ -22,6 +23,7 @@ static void update_mmap_min_addr(void)
126961 #else
126962 mmap_min_addr = dac_mmap_min_addr;
126963 #endif
126964 +#endif
126965 }
126966
126967 /*
126968 diff --git a/security/selinux/avc.c b/security/selinux/avc.c
126969 index 0b122b1..d9f9568 100644
126970 --- a/security/selinux/avc.c
126971 +++ b/security/selinux/avc.c
126972 @@ -59,7 +59,7 @@ struct avc_node {
126973 struct avc_cache {
126974 struct hlist_head slots[AVC_CACHE_SLOTS]; /* head for avc_node->list */
126975 spinlock_t slots_lock[AVC_CACHE_SLOTS]; /* lock for writes */
126976 - atomic_t lru_hint; /* LRU hint for reclaim scan */
126977 + atomic_unchecked_t lru_hint; /* LRU hint for reclaim scan */
126978 atomic_t active_nodes;
126979 u32 latest_notif; /* latest revocation notification */
126980 };
126981 @@ -167,7 +167,7 @@ void __init avc_init(void)
126982 spin_lock_init(&avc_cache.slots_lock[i]);
126983 }
126984 atomic_set(&avc_cache.active_nodes, 0);
126985 - atomic_set(&avc_cache.lru_hint, 0);
126986 + atomic_set_unchecked(&avc_cache.lru_hint, 0);
126987
126988 avc_node_cachep = kmem_cache_create("avc_node", sizeof(struct avc_node),
126989 0, SLAB_PANIC, NULL);
126990 @@ -242,7 +242,7 @@ static inline int avc_reclaim_node(void)
126991 spinlock_t *lock;
126992
126993 for (try = 0, ecx = 0; try < AVC_CACHE_SLOTS; try++) {
126994 - hvalue = atomic_inc_return(&avc_cache.lru_hint) & (AVC_CACHE_SLOTS - 1);
126995 + hvalue = atomic_inc_return_unchecked(&avc_cache.lru_hint) & (AVC_CACHE_SLOTS - 1);
126996 head = &avc_cache.slots[hvalue];
126997 lock = &avc_cache.slots_lock[hvalue];
126998
126999 diff --git a/security/selinux/include/xfrm.h b/security/selinux/include/xfrm.h
127000 index 1450f85..a91e0bc 100644
127001 --- a/security/selinux/include/xfrm.h
127002 +++ b/security/selinux/include/xfrm.h
127003 @@ -48,7 +48,7 @@ static inline void selinux_xfrm_notify_policyload(void)
127004
127005 rtnl_lock();
127006 for_each_net(net) {
127007 - atomic_inc(&net->xfrm.flow_cache_genid);
127008 + atomic_inc_unchecked(&net->xfrm.flow_cache_genid);
127009 rt_genid_bump_all(net);
127010 }
127011 rtnl_unlock();
127012 diff --git a/security/tomoyo/file.c b/security/tomoyo/file.c
127013 index 2367b10..a0c3c51 100644
127014 --- a/security/tomoyo/file.c
127015 +++ b/security/tomoyo/file.c
127016 @@ -692,7 +692,7 @@ int tomoyo_path_number_perm(const u8 type, struct path *path,
127017 {
127018 struct tomoyo_request_info r;
127019 struct tomoyo_obj_info obj = {
127020 - .path1 = *path,
127021 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
127022 };
127023 int error = -ENOMEM;
127024 struct tomoyo_path_info buf;
127025 @@ -740,7 +740,7 @@ int tomoyo_check_open_permission(struct tomoyo_domain_info *domain,
127026 struct tomoyo_path_info buf;
127027 struct tomoyo_request_info r;
127028 struct tomoyo_obj_info obj = {
127029 - .path1 = *path,
127030 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
127031 };
127032 int idx;
127033
127034 @@ -786,7 +786,7 @@ int tomoyo_path_perm(const u8 operation, const struct path *path, const char *ta
127035 {
127036 struct tomoyo_request_info r;
127037 struct tomoyo_obj_info obj = {
127038 - .path1 = *path,
127039 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
127040 };
127041 int error;
127042 struct tomoyo_path_info buf;
127043 @@ -843,7 +843,7 @@ int tomoyo_mkdev_perm(const u8 operation, struct path *path,
127044 {
127045 struct tomoyo_request_info r;
127046 struct tomoyo_obj_info obj = {
127047 - .path1 = *path,
127048 + .path1 = { .mnt = path->mnt, .dentry = path->dentry },
127049 };
127050 int error = -ENOMEM;
127051 struct tomoyo_path_info buf;
127052 @@ -890,8 +890,8 @@ int tomoyo_path2_perm(const u8 operation, struct path *path1,
127053 struct tomoyo_path_info buf2;
127054 struct tomoyo_request_info r;
127055 struct tomoyo_obj_info obj = {
127056 - .path1 = *path1,
127057 - .path2 = *path2,
127058 + .path1 = { .mnt = path1->mnt, .dentry = path1->dentry },
127059 + .path2 = { .mnt = path2->mnt, .dentry = path2->dentry }
127060 };
127061 int idx;
127062
127063 diff --git a/security/tomoyo/mount.c b/security/tomoyo/mount.c
127064 index 390c646..f2f8db3 100644
127065 --- a/security/tomoyo/mount.c
127066 +++ b/security/tomoyo/mount.c
127067 @@ -118,6 +118,10 @@ static int tomoyo_mount_acl(struct tomoyo_request_info *r,
127068 type == tomoyo_mounts[TOMOYO_MOUNT_MOVE]) {
127069 need_dev = -1; /* dev_name is a directory */
127070 } else {
127071 + if (!capable(CAP_SYS_ADMIN)) {
127072 + error = -EPERM;
127073 + goto out;
127074 + }
127075 fstype = get_fs_type(type);
127076 if (!fstype) {
127077 error = -ENODEV;
127078 diff --git a/security/tomoyo/tomoyo.c b/security/tomoyo/tomoyo.c
127079 index cbf3df4..22b11df 100644
127080 --- a/security/tomoyo/tomoyo.c
127081 +++ b/security/tomoyo/tomoyo.c
127082 @@ -165,7 +165,7 @@ static int tomoyo_path_truncate(struct path *path)
127083 */
127084 static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
127085 {
127086 - struct path path = { parent->mnt, dentry };
127087 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
127088 return tomoyo_path_perm(TOMOYO_TYPE_UNLINK, &path, NULL);
127089 }
127090
127091 @@ -181,7 +181,7 @@ static int tomoyo_path_unlink(struct path *parent, struct dentry *dentry)
127092 static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
127093 umode_t mode)
127094 {
127095 - struct path path = { parent->mnt, dentry };
127096 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
127097 return tomoyo_path_number_perm(TOMOYO_TYPE_MKDIR, &path,
127098 mode & S_IALLUGO);
127099 }
127100 @@ -196,7 +196,7 @@ static int tomoyo_path_mkdir(struct path *parent, struct dentry *dentry,
127101 */
127102 static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
127103 {
127104 - struct path path = { parent->mnt, dentry };
127105 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
127106 return tomoyo_path_perm(TOMOYO_TYPE_RMDIR, &path, NULL);
127107 }
127108
127109 @@ -212,7 +212,7 @@ static int tomoyo_path_rmdir(struct path *parent, struct dentry *dentry)
127110 static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
127111 const char *old_name)
127112 {
127113 - struct path path = { parent->mnt, dentry };
127114 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
127115 return tomoyo_path_perm(TOMOYO_TYPE_SYMLINK, &path, old_name);
127116 }
127117
127118 @@ -229,7 +229,7 @@ static int tomoyo_path_symlink(struct path *parent, struct dentry *dentry,
127119 static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
127120 umode_t mode, unsigned int dev)
127121 {
127122 - struct path path = { parent->mnt, dentry };
127123 + struct path path = { .mnt = parent->mnt, .dentry = dentry };
127124 int type = TOMOYO_TYPE_CREATE;
127125 const unsigned int perm = mode & S_IALLUGO;
127126
127127 @@ -268,8 +268,8 @@ static int tomoyo_path_mknod(struct path *parent, struct dentry *dentry,
127128 static int tomoyo_path_link(struct dentry *old_dentry, struct path *new_dir,
127129 struct dentry *new_dentry)
127130 {
127131 - struct path path1 = { new_dir->mnt, old_dentry };
127132 - struct path path2 = { new_dir->mnt, new_dentry };
127133 + struct path path1 = { .mnt = new_dir->mnt, .dentry = old_dentry };
127134 + struct path path2 = { .mnt = new_dir->mnt, .dentry = new_dentry };
127135 return tomoyo_path2_perm(TOMOYO_TYPE_LINK, &path1, &path2);
127136 }
127137
127138 @@ -288,8 +288,8 @@ static int tomoyo_path_rename(struct path *old_parent,
127139 struct path *new_parent,
127140 struct dentry *new_dentry)
127141 {
127142 - struct path path1 = { old_parent->mnt, old_dentry };
127143 - struct path path2 = { new_parent->mnt, new_dentry };
127144 + struct path path1 = { .mnt = old_parent->mnt, .dentry = old_dentry };
127145 + struct path path2 = { .mnt = new_parent->mnt, .dentry = new_dentry };
127146 return tomoyo_path2_perm(TOMOYO_TYPE_RENAME, &path1, &path2);
127147 }
127148
127149 @@ -417,7 +417,7 @@ static int tomoyo_sb_mount(const char *dev_name, struct path *path,
127150 */
127151 static int tomoyo_sb_umount(struct vfsmount *mnt, int flags)
127152 {
127153 - struct path path = { mnt, mnt->mnt_root };
127154 + struct path path = { .mnt = mnt, .dentry = mnt->mnt_root };
127155 return tomoyo_path_perm(TOMOYO_TYPE_UMOUNT, &path, NULL);
127156 }
127157
127158 diff --git a/security/yama/Kconfig b/security/yama/Kconfig
127159 index 3123e1d..951f48d 100644
127160 --- a/security/yama/Kconfig
127161 +++ b/security/yama/Kconfig
127162 @@ -1,6 +1,6 @@
127163 config SECURITY_YAMA
127164 bool "Yama support"
127165 - depends on SECURITY
127166 + depends on SECURITY && !GRKERNSEC
127167 default n
127168 help
127169 This selects Yama, which extends DAC support with additional
127170 diff --git a/security/yama/yama_lsm.c b/security/yama/yama_lsm.c
127171 index 5ebb896..68147a2 100644
127172 --- a/security/yama/yama_lsm.c
127173 +++ b/security/yama/yama_lsm.c
127174 @@ -362,7 +362,7 @@ void __init yama_add_hooks(void)
127175 static int yama_dointvec_minmax(struct ctl_table *table, int write,
127176 void __user *buffer, size_t *lenp, loff_t *ppos)
127177 {
127178 - struct ctl_table table_copy;
127179 + ctl_table_no_const table_copy;
127180
127181 if (write && !capable(CAP_SYS_PTRACE))
127182 return -EPERM;
127183 diff --git a/sound/aoa/codecs/onyx.c b/sound/aoa/codecs/onyx.c
127184 index 23c371e..da7c25e 100644
127185 --- a/sound/aoa/codecs/onyx.c
127186 +++ b/sound/aoa/codecs/onyx.c
127187 @@ -54,7 +54,7 @@ struct onyx {
127188 spdif_locked:1,
127189 analog_locked:1,
127190 original_mute:2;
127191 - int open_count;
127192 + local_t open_count;
127193 struct codec_info *codec_info;
127194
127195 /* mutex serializes concurrent access to the device
127196 @@ -747,7 +747,7 @@ static int onyx_open(struct codec_info_item *cii,
127197 struct onyx *onyx = cii->codec_data;
127198
127199 mutex_lock(&onyx->mutex);
127200 - onyx->open_count++;
127201 + local_inc(&onyx->open_count);
127202 mutex_unlock(&onyx->mutex);
127203
127204 return 0;
127205 @@ -759,8 +759,7 @@ static int onyx_close(struct codec_info_item *cii,
127206 struct onyx *onyx = cii->codec_data;
127207
127208 mutex_lock(&onyx->mutex);
127209 - onyx->open_count--;
127210 - if (!onyx->open_count)
127211 + if (local_dec_and_test(&onyx->open_count))
127212 onyx->spdif_locked = onyx->analog_locked = 0;
127213 mutex_unlock(&onyx->mutex);
127214
127215 diff --git a/sound/aoa/codecs/onyx.h b/sound/aoa/codecs/onyx.h
127216 index ffd2025..df062c9 100644
127217 --- a/sound/aoa/codecs/onyx.h
127218 +++ b/sound/aoa/codecs/onyx.h
127219 @@ -11,6 +11,7 @@
127220 #include <linux/i2c.h>
127221 #include <asm/pmac_low_i2c.h>
127222 #include <asm/prom.h>
127223 +#include <asm/local.h>
127224
127225 /* PCM3052 register definitions */
127226
127227 diff --git a/sound/core/oss/pcm_oss.c b/sound/core/oss/pcm_oss.c
127228 index 58550cc..4687a93 100644
127229 --- a/sound/core/oss/pcm_oss.c
127230 +++ b/sound/core/oss/pcm_oss.c
127231 @@ -1189,10 +1189,10 @@ snd_pcm_sframes_t snd_pcm_oss_write3(struct snd_pcm_substream *substream, const
127232 if (in_kernel) {
127233 mm_segment_t fs;
127234 fs = snd_enter_user();
127235 - ret = snd_pcm_lib_write(substream, (void __force __user *)ptr, frames);
127236 + ret = snd_pcm_lib_write(substream, (void __force_user *)ptr, frames);
127237 snd_leave_user(fs);
127238 } else {
127239 - ret = snd_pcm_lib_write(substream, (void __force __user *)ptr, frames);
127240 + ret = snd_pcm_lib_write(substream, (void __force_user *)ptr, frames);
127241 }
127242 if (ret != -EPIPE && ret != -ESTRPIPE)
127243 break;
127244 @@ -1232,10 +1232,10 @@ snd_pcm_sframes_t snd_pcm_oss_read3(struct snd_pcm_substream *substream, char *p
127245 if (in_kernel) {
127246 mm_segment_t fs;
127247 fs = snd_enter_user();
127248 - ret = snd_pcm_lib_read(substream, (void __force __user *)ptr, frames);
127249 + ret = snd_pcm_lib_read(substream, (void __force_user *)ptr, frames);
127250 snd_leave_user(fs);
127251 } else {
127252 - ret = snd_pcm_lib_read(substream, (void __force __user *)ptr, frames);
127253 + ret = snd_pcm_lib_read(substream, (void __force_user *)ptr, frames);
127254 }
127255 if (ret == -EPIPE) {
127256 if (runtime->status->state == SNDRV_PCM_STATE_DRAINING) {
127257 @@ -1331,7 +1331,7 @@ static ssize_t snd_pcm_oss_write2(struct snd_pcm_substream *substream, const cha
127258 struct snd_pcm_plugin_channel *channels;
127259 size_t oss_frame_bytes = (runtime->oss.plugin_first->src_width * runtime->oss.plugin_first->src_format.channels) / 8;
127260 if (!in_kernel) {
127261 - if (copy_from_user(runtime->oss.buffer, (const char __force __user *)buf, bytes))
127262 + if (copy_from_user(runtime->oss.buffer, (const char __force_user *)buf, bytes))
127263 return -EFAULT;
127264 buf = runtime->oss.buffer;
127265 }
127266 @@ -1401,7 +1401,7 @@ static ssize_t snd_pcm_oss_write1(struct snd_pcm_substream *substream, const cha
127267 }
127268 } else {
127269 tmp = snd_pcm_oss_write2(substream,
127270 - (const char __force *)buf,
127271 + (const char __force_kernel *)buf,
127272 runtime->oss.period_bytes, 0);
127273 if (tmp <= 0)
127274 goto err;
127275 @@ -1427,7 +1427,7 @@ static ssize_t snd_pcm_oss_read2(struct snd_pcm_substream *substream, char *buf,
127276 struct snd_pcm_runtime *runtime = substream->runtime;
127277 snd_pcm_sframes_t frames, frames1;
127278 #ifdef CONFIG_SND_PCM_OSS_PLUGINS
127279 - char __user *final_dst = (char __force __user *)buf;
127280 + char __user *final_dst = (char __force_user *)buf;
127281 if (runtime->oss.plugin_first) {
127282 struct snd_pcm_plugin_channel *channels;
127283 size_t oss_frame_bytes = (runtime->oss.plugin_last->dst_width * runtime->oss.plugin_last->dst_format.channels) / 8;
127284 @@ -1489,7 +1489,7 @@ static ssize_t snd_pcm_oss_read1(struct snd_pcm_substream *substream, char __use
127285 xfer += tmp;
127286 runtime->oss.buffer_used -= tmp;
127287 } else {
127288 - tmp = snd_pcm_oss_read2(substream, (char __force *)buf,
127289 + tmp = snd_pcm_oss_read2(substream, (char __force_kernel *)buf,
127290 runtime->oss.period_bytes, 0);
127291 if (tmp <= 0)
127292 goto err;
127293 @@ -1658,7 +1658,7 @@ static int snd_pcm_oss_sync(struct snd_pcm_oss_file *pcm_oss_file)
127294 size1);
127295 size1 /= runtime->channels; /* frames */
127296 fs = snd_enter_user();
127297 - snd_pcm_lib_write(substream, (void __force __user *)runtime->oss.buffer, size1);
127298 + snd_pcm_lib_write(substream, (void __force_user *)runtime->oss.buffer, size1);
127299 snd_leave_user(fs);
127300 }
127301 } else if (runtime->access == SNDRV_PCM_ACCESS_RW_NONINTERLEAVED) {
127302 diff --git a/sound/core/pcm_compat.c b/sound/core/pcm_compat.c
127303 index b48b434..e2ba787 100644
127304 --- a/sound/core/pcm_compat.c
127305 +++ b/sound/core/pcm_compat.c
127306 @@ -31,7 +31,7 @@ static int snd_pcm_ioctl_delay_compat(struct snd_pcm_substream *substream,
127307 int err;
127308
127309 fs = snd_enter_user();
127310 - err = snd_pcm_delay(substream, &delay);
127311 + err = snd_pcm_delay(substream, (snd_pcm_sframes_t __force_user *)&delay);
127312 snd_leave_user(fs);
127313 if (err < 0)
127314 return err;
127315 diff --git a/sound/core/pcm_native.c b/sound/core/pcm_native.c
127316 index 75888dd..c940854 100644
127317 --- a/sound/core/pcm_native.c
127318 +++ b/sound/core/pcm_native.c
127319 @@ -3004,11 +3004,11 @@ int snd_pcm_kernel_ioctl(struct snd_pcm_substream *substream,
127320 switch (substream->stream) {
127321 case SNDRV_PCM_STREAM_PLAYBACK:
127322 result = snd_pcm_playback_ioctl1(NULL, substream, cmd,
127323 - (void __user *)arg);
127324 + (void __force_user *)arg);
127325 break;
127326 case SNDRV_PCM_STREAM_CAPTURE:
127327 result = snd_pcm_capture_ioctl1(NULL, substream, cmd,
127328 - (void __user *)arg);
127329 + (void __force_user *)arg);
127330 break;
127331 default:
127332 result = -EINVAL;
127333 diff --git a/sound/core/sound.c b/sound/core/sound.c
127334 index 175f9e4..3518d31 100644
127335 --- a/sound/core/sound.c
127336 +++ b/sound/core/sound.c
127337 @@ -86,7 +86,7 @@ static void snd_request_other(int minor)
127338 case SNDRV_MINOR_TIMER: str = "snd-timer"; break;
127339 default: return;
127340 }
127341 - request_module(str);
127342 + request_module("%s", str);
127343 }
127344
127345 #endif /* modular kernel */
127346 diff --git a/sound/drivers/mts64.c b/sound/drivers/mts64.c
127347 index 2a008a9..a1efb3f 100644
127348 --- a/sound/drivers/mts64.c
127349 +++ b/sound/drivers/mts64.c
127350 @@ -29,6 +29,7 @@
127351 #include <sound/initval.h>
127352 #include <sound/rawmidi.h>
127353 #include <sound/control.h>
127354 +#include <asm/local.h>
127355
127356 #define CARD_NAME "Miditerminal 4140"
127357 #define DRIVER_NAME "MTS64"
127358 @@ -67,7 +68,7 @@ struct mts64 {
127359 struct pardevice *pardev;
127360 int pardev_claimed;
127361
127362 - int open_count;
127363 + local_t open_count;
127364 int current_midi_output_port;
127365 int current_midi_input_port;
127366 u8 mode[MTS64_NUM_INPUT_PORTS];
127367 @@ -687,7 +688,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
127368 {
127369 struct mts64 *mts = substream->rmidi->private_data;
127370
127371 - if (mts->open_count == 0) {
127372 + if (local_read(&mts->open_count) == 0) {
127373 /* We don't need a spinlock here, because this is just called
127374 if the device has not been opened before.
127375 So there aren't any IRQs from the device */
127376 @@ -695,7 +696,7 @@ static int snd_mts64_rawmidi_open(struct snd_rawmidi_substream *substream)
127377
127378 msleep(50);
127379 }
127380 - ++(mts->open_count);
127381 + local_inc(&mts->open_count);
127382
127383 return 0;
127384 }
127385 @@ -705,8 +706,7 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
127386 struct mts64 *mts = substream->rmidi->private_data;
127387 unsigned long flags;
127388
127389 - --(mts->open_count);
127390 - if (mts->open_count == 0) {
127391 + if (local_dec_return(&mts->open_count) == 0) {
127392 /* We need the spinlock_irqsave here because we can still
127393 have IRQs at this point */
127394 spin_lock_irqsave(&mts->lock, flags);
127395 @@ -715,8 +715,8 @@ static int snd_mts64_rawmidi_close(struct snd_rawmidi_substream *substream)
127396
127397 msleep(500);
127398
127399 - } else if (mts->open_count < 0)
127400 - mts->open_count = 0;
127401 + } else if (local_read(&mts->open_count) < 0)
127402 + local_set(&mts->open_count, 0);
127403
127404 return 0;
127405 }
127406 diff --git a/sound/drivers/opl4/opl4_lib.c b/sound/drivers/opl4/opl4_lib.c
127407 index 89c7aa0..6d75e49 100644
127408 --- a/sound/drivers/opl4/opl4_lib.c
127409 +++ b/sound/drivers/opl4/opl4_lib.c
127410 @@ -29,7 +29,7 @@ MODULE_AUTHOR("Clemens Ladisch <clemens@ladisch.de>");
127411 MODULE_DESCRIPTION("OPL4 driver");
127412 MODULE_LICENSE("GPL");
127413
127414 -static void inline snd_opl4_wait(struct snd_opl4 *opl4)
127415 +static inline void snd_opl4_wait(struct snd_opl4 *opl4)
127416 {
127417 int timeout = 10;
127418 while ((inb(opl4->fm_port) & OPL4_STATUS_BUSY) && --timeout > 0)
127419 diff --git a/sound/drivers/portman2x4.c b/sound/drivers/portman2x4.c
127420 index 464385a..46ab3f6 100644
127421 --- a/sound/drivers/portman2x4.c
127422 +++ b/sound/drivers/portman2x4.c
127423 @@ -48,6 +48,7 @@
127424 #include <sound/initval.h>
127425 #include <sound/rawmidi.h>
127426 #include <sound/control.h>
127427 +#include <asm/local.h>
127428
127429 #define CARD_NAME "Portman 2x4"
127430 #define DRIVER_NAME "portman"
127431 @@ -85,7 +86,7 @@ struct portman {
127432 struct pardevice *pardev;
127433 int pardev_claimed;
127434
127435 - int open_count;
127436 + local_t open_count;
127437 int mode[PORTMAN_NUM_INPUT_PORTS];
127438 struct snd_rawmidi_substream *midi_input[PORTMAN_NUM_INPUT_PORTS];
127439 };
127440 diff --git a/sound/firewire/amdtp.c b/sound/firewire/amdtp.c
127441 index 2a153d2..185af02 100644
127442 --- a/sound/firewire/amdtp.c
127443 +++ b/sound/firewire/amdtp.c
127444 @@ -591,7 +591,7 @@ static void update_pcm_pointers(struct amdtp_stream *s,
127445 ptr = s->pcm_buffer_pointer + frames;
127446 if (ptr >= pcm->runtime->buffer_size)
127447 ptr -= pcm->runtime->buffer_size;
127448 - ACCESS_ONCE(s->pcm_buffer_pointer) = ptr;
127449 + ACCESS_ONCE_RW(s->pcm_buffer_pointer) = ptr;
127450
127451 s->pcm_period_pointer += frames;
127452 if (s->pcm_period_pointer >= pcm->runtime->period_size) {
127453 @@ -1056,7 +1056,7 @@ EXPORT_SYMBOL(amdtp_stream_pcm_pointer);
127454 void amdtp_stream_update(struct amdtp_stream *s)
127455 {
127456 /* Precomputing. */
127457 - ACCESS_ONCE(s->source_node_id_field) =
127458 + ACCESS_ONCE_RW(s->source_node_id_field) =
127459 (fw_parent_device(s->unit)->card->node_id << CIP_SID_SHIFT) &
127460 CIP_SID_MASK;
127461 }
127462 diff --git a/sound/firewire/amdtp.h b/sound/firewire/amdtp.h
127463 index b2cf9e7..e11623a 100644
127464 --- a/sound/firewire/amdtp.h
127465 +++ b/sound/firewire/amdtp.h
127466 @@ -237,7 +237,7 @@ static inline bool amdtp_stream_pcm_running(struct amdtp_stream *s)
127467 static inline void amdtp_stream_pcm_trigger(struct amdtp_stream *s,
127468 struct snd_pcm_substream *pcm)
127469 {
127470 - ACCESS_ONCE(s->pcm) = pcm;
127471 + ACCESS_ONCE_RW(s->pcm) = pcm;
127472 }
127473
127474 /**
127475 @@ -255,7 +255,7 @@ static inline void amdtp_stream_midi_trigger(struct amdtp_stream *s,
127476 struct snd_rawmidi_substream *midi)
127477 {
127478 if (port < s->midi_ports)
127479 - ACCESS_ONCE(s->midi[port]) = midi;
127480 + ACCESS_ONCE_RW(s->midi[port]) = midi;
127481 }
127482
127483 static inline bool cip_sfc_is_base_44100(enum cip_sfc sfc)
127484 diff --git a/sound/firewire/isight.c b/sound/firewire/isight.c
127485 index 48d6dca..a0266c23 100644
127486 --- a/sound/firewire/isight.c
127487 +++ b/sound/firewire/isight.c
127488 @@ -96,7 +96,7 @@ static void isight_update_pointers(struct isight *isight, unsigned int count)
127489 ptr += count;
127490 if (ptr >= runtime->buffer_size)
127491 ptr -= runtime->buffer_size;
127492 - ACCESS_ONCE(isight->buffer_pointer) = ptr;
127493 + ACCESS_ONCE_RW(isight->buffer_pointer) = ptr;
127494
127495 isight->period_counter += count;
127496 if (isight->period_counter >= runtime->period_size) {
127497 @@ -293,7 +293,7 @@ static int isight_hw_params(struct snd_pcm_substream *substream,
127498 if (err < 0)
127499 return err;
127500
127501 - ACCESS_ONCE(isight->pcm_active) = true;
127502 + ACCESS_ONCE_RW(isight->pcm_active) = true;
127503
127504 return 0;
127505 }
127506 @@ -331,7 +331,7 @@ static int isight_hw_free(struct snd_pcm_substream *substream)
127507 {
127508 struct isight *isight = substream->private_data;
127509
127510 - ACCESS_ONCE(isight->pcm_active) = false;
127511 + ACCESS_ONCE_RW(isight->pcm_active) = false;
127512
127513 mutex_lock(&isight->mutex);
127514 isight_stop_streaming(isight);
127515 @@ -424,10 +424,10 @@ static int isight_trigger(struct snd_pcm_substream *substream, int cmd)
127516
127517 switch (cmd) {
127518 case SNDRV_PCM_TRIGGER_START:
127519 - ACCESS_ONCE(isight->pcm_running) = true;
127520 + ACCESS_ONCE_RW(isight->pcm_running) = true;
127521 break;
127522 case SNDRV_PCM_TRIGGER_STOP:
127523 - ACCESS_ONCE(isight->pcm_running) = false;
127524 + ACCESS_ONCE_RW(isight->pcm_running) = false;
127525 break;
127526 default:
127527 return -EINVAL;
127528 diff --git a/sound/firewire/scs1x.c b/sound/firewire/scs1x.c
127529 index 2dba848..c682aef 100644
127530 --- a/sound/firewire/scs1x.c
127531 +++ b/sound/firewire/scs1x.c
127532 @@ -74,7 +74,7 @@ static void scs_output_trigger(struct snd_rawmidi_substream *stream, int up)
127533 {
127534 struct scs *scs = stream->rmidi->private_data;
127535
127536 - ACCESS_ONCE(scs->output) = up ? stream : NULL;
127537 + ACCESS_ONCE_RW(scs->output) = up ? stream : NULL;
127538 if (up) {
127539 scs->output_idle = false;
127540 tasklet_schedule(&scs->tasklet);
127541 @@ -257,7 +257,7 @@ static void scs_input_trigger(struct snd_rawmidi_substream *stream, int up)
127542 {
127543 struct scs *scs = stream->rmidi->private_data;
127544
127545 - ACCESS_ONCE(scs->input) = up ? stream : NULL;
127546 + ACCESS_ONCE_RW(scs->input) = up ? stream : NULL;
127547 }
127548
127549 static void scs_input_escaped_byte(struct snd_rawmidi_substream *stream,
127550 @@ -473,8 +473,8 @@ static void scs_remove(struct fw_unit *unit)
127551
127552 snd_card_disconnect(scs->card);
127553
127554 - ACCESS_ONCE(scs->output) = NULL;
127555 - ACCESS_ONCE(scs->input) = NULL;
127556 + ACCESS_ONCE_RW(scs->output) = NULL;
127557 + ACCESS_ONCE_RW(scs->input) = NULL;
127558
127559 wait_event(scs->idle_wait, scs->output_idle);
127560
127561 diff --git a/sound/oss/sb_audio.c b/sound/oss/sb_audio.c
127562 index dc91072..d85a10a 100644
127563 --- a/sound/oss/sb_audio.c
127564 +++ b/sound/oss/sb_audio.c
127565 @@ -900,7 +900,7 @@ sb16_copy_from_user(int dev,
127566 buf16 = (signed short *)(localbuf + localoffs);
127567 while (c)
127568 {
127569 - locallen = (c >= LBUFCOPYSIZE ? LBUFCOPYSIZE : c);
127570 + locallen = ((unsigned)c >= LBUFCOPYSIZE ? LBUFCOPYSIZE : c);
127571 if (copy_from_user(lbuf8,
127572 userbuf+useroffs + p,
127573 locallen))
127574 diff --git a/sound/oss/swarm_cs4297a.c b/sound/oss/swarm_cs4297a.c
127575 index 213a416..aeab5c9 100644
127576 --- a/sound/oss/swarm_cs4297a.c
127577 +++ b/sound/oss/swarm_cs4297a.c
127578 @@ -2623,7 +2623,6 @@ static int __init cs4297a_init(void)
127579 {
127580 struct cs4297a_state *s;
127581 u32 pwr, id;
127582 - mm_segment_t fs;
127583 int rval;
127584 u64 cfg;
127585 int mdio_val;
127586 @@ -2709,22 +2708,23 @@ static int __init cs4297a_init(void)
127587 if (!rval) {
127588 char *sb1250_duart_present;
127589
127590 +#if 0
127591 + mm_segment_t fs;
127592 fs = get_fs();
127593 set_fs(KERNEL_DS);
127594 -#if 0
127595 val = SOUND_MASK_LINE;
127596 mixer_ioctl(s, SOUND_MIXER_WRITE_RECSRC, (unsigned long) &val);
127597 for (i = 0; i < ARRAY_SIZE(initvol); i++) {
127598 val = initvol[i].vol;
127599 mixer_ioctl(s, initvol[i].mixch, (unsigned long) &val);
127600 }
127601 + set_fs(fs);
127602 // cs4297a_write_ac97(s, 0x18, 0x0808);
127603 #else
127604 // cs4297a_write_ac97(s, 0x5e, 0x180);
127605 cs4297a_write_ac97(s, 0x02, 0x0808);
127606 cs4297a_write_ac97(s, 0x18, 0x0808);
127607 #endif
127608 - set_fs(fs);
127609
127610 list_add(&s->list, &cs4297a_devs);
127611
127612 diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
127613 index ca37446..cb7fbcb 100644
127614 --- a/sound/pci/hda/hda_codec.c
127615 +++ b/sound/pci/hda/hda_codec.c
127616 @@ -1857,7 +1857,7 @@ static int get_kctl_0dB_offset(struct hda_codec *codec,
127617 /* FIXME: set_fs() hack for obtaining user-space TLV data */
127618 mm_segment_t fs = get_fs();
127619 set_fs(get_ds());
127620 - if (!kctl->tlv.c(kctl, 0, sizeof(_tlv), _tlv))
127621 + if (!kctl->tlv.c(kctl, 0, sizeof(_tlv), (unsigned int __force_user *)_tlv))
127622 tlv = _tlv;
127623 set_fs(fs);
127624 } else if (kctl->vd[0].access & SNDRV_CTL_ELEM_ACCESS_TLV_READ)
127625 diff --git a/sound/pci/ymfpci/ymfpci.h b/sound/pci/ymfpci/ymfpci.h
127626 index 149d4cb..7784769 100644
127627 --- a/sound/pci/ymfpci/ymfpci.h
127628 +++ b/sound/pci/ymfpci/ymfpci.h
127629 @@ -358,7 +358,7 @@ struct snd_ymfpci {
127630 spinlock_t reg_lock;
127631 spinlock_t voice_lock;
127632 wait_queue_head_t interrupt_sleep;
127633 - atomic_t interrupt_sleep_count;
127634 + atomic_unchecked_t interrupt_sleep_count;
127635 struct snd_info_entry *proc_entry;
127636 const struct firmware *dsp_microcode;
127637 const struct firmware *controller_microcode;
127638 diff --git a/sound/pci/ymfpci/ymfpci_main.c b/sound/pci/ymfpci/ymfpci_main.c
127639 index 4c26076..a13f370 100644
127640 --- a/sound/pci/ymfpci/ymfpci_main.c
127641 +++ b/sound/pci/ymfpci/ymfpci_main.c
127642 @@ -204,8 +204,8 @@ static void snd_ymfpci_hw_stop(struct snd_ymfpci *chip)
127643 if ((snd_ymfpci_readl(chip, YDSXGR_STATUS) & 2) == 0)
127644 break;
127645 }
127646 - if (atomic_read(&chip->interrupt_sleep_count)) {
127647 - atomic_set(&chip->interrupt_sleep_count, 0);
127648 + if (atomic_read_unchecked(&chip->interrupt_sleep_count)) {
127649 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
127650 wake_up(&chip->interrupt_sleep);
127651 }
127652 __end:
127653 @@ -789,7 +789,7 @@ static void snd_ymfpci_irq_wait(struct snd_ymfpci *chip)
127654 continue;
127655 init_waitqueue_entry(&wait, current);
127656 add_wait_queue(&chip->interrupt_sleep, &wait);
127657 - atomic_inc(&chip->interrupt_sleep_count);
127658 + atomic_inc_unchecked(&chip->interrupt_sleep_count);
127659 schedule_timeout_uninterruptible(msecs_to_jiffies(50));
127660 remove_wait_queue(&chip->interrupt_sleep, &wait);
127661 }
127662 @@ -827,8 +827,8 @@ static irqreturn_t snd_ymfpci_interrupt(int irq, void *dev_id)
127663 snd_ymfpci_writel(chip, YDSXGR_MODE, mode);
127664 spin_unlock(&chip->reg_lock);
127665
127666 - if (atomic_read(&chip->interrupt_sleep_count)) {
127667 - atomic_set(&chip->interrupt_sleep_count, 0);
127668 + if (atomic_read_unchecked(&chip->interrupt_sleep_count)) {
127669 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
127670 wake_up(&chip->interrupt_sleep);
127671 }
127672 }
127673 @@ -2384,7 +2384,7 @@ int snd_ymfpci_create(struct snd_card *card,
127674 spin_lock_init(&chip->reg_lock);
127675 spin_lock_init(&chip->voice_lock);
127676 init_waitqueue_head(&chip->interrupt_sleep);
127677 - atomic_set(&chip->interrupt_sleep_count, 0);
127678 + atomic_set_unchecked(&chip->interrupt_sleep_count, 0);
127679 chip->card = card;
127680 chip->pci = pci;
127681 chip->irq = -1;
127682 diff --git a/sound/soc/soc-ac97.c b/sound/soc/soc-ac97.c
127683 index 08d7259..0336224 100644
127684 --- a/sound/soc/soc-ac97.c
127685 +++ b/sound/soc/soc-ac97.c
127686 @@ -271,8 +271,10 @@ int snd_soc_set_ac97_ops_of_reset(struct snd_ac97_bus_ops *ops,
127687 if (ret)
127688 return ret;
127689
127690 - ops->warm_reset = snd_soc_ac97_warm_reset;
127691 - ops->reset = snd_soc_ac97_reset;
127692 + pax_open_kernel();
127693 + *(void **)&ops->warm_reset = snd_soc_ac97_warm_reset;
127694 + *(void **)&ops->reset = snd_soc_ac97_reset;
127695 + pax_close_kernel();
127696
127697 snd_ac97_rst_cfg = cfg;
127698 return 0;
127699 diff --git a/sound/soc/xtensa/xtfpga-i2s.c b/sound/soc/xtensa/xtfpga-i2s.c
127700 index 1cfb19e..6e5731a 100644
127701 --- a/sound/soc/xtensa/xtfpga-i2s.c
127702 +++ b/sound/soc/xtensa/xtfpga-i2s.c
127703 @@ -437,7 +437,7 @@ static int xtfpga_pcm_trigger(struct snd_pcm_substream *substream, int cmd)
127704 case SNDRV_PCM_TRIGGER_START:
127705 case SNDRV_PCM_TRIGGER_RESUME:
127706 case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
127707 - ACCESS_ONCE(i2s->tx_ptr) = 0;
127708 + ACCESS_ONCE_RW(i2s->tx_ptr) = 0;
127709 rcu_assign_pointer(i2s->tx_substream, substream);
127710 xtfpga_pcm_refill_fifo(i2s);
127711 break;
127712 diff --git a/sound/synth/emux/emux_seq.c b/sound/synth/emux/emux_seq.c
127713 index a020920..55579f6 100644
127714 --- a/sound/synth/emux/emux_seq.c
127715 +++ b/sound/synth/emux/emux_seq.c
127716 @@ -33,13 +33,13 @@ static int snd_emux_unuse(void *private_data, struct snd_seq_port_subscribe *inf
127717 * MIDI emulation operators
127718 */
127719 static struct snd_midi_op emux_ops = {
127720 - snd_emux_note_on,
127721 - snd_emux_note_off,
127722 - snd_emux_key_press,
127723 - snd_emux_terminate_note,
127724 - snd_emux_control,
127725 - snd_emux_nrpn,
127726 - snd_emux_sysex,
127727 + .note_on = snd_emux_note_on,
127728 + .note_off = snd_emux_note_off,
127729 + .key_press = snd_emux_key_press,
127730 + .note_terminate = snd_emux_terminate_note,
127731 + .control = snd_emux_control,
127732 + .nrpn = snd_emux_nrpn,
127733 + .sysex = snd_emux_sysex,
127734 };
127735
127736
127737 diff --git a/sound/usb/line6/driver.c b/sound/usb/line6/driver.c
127738 index 81b7da8..bb2676f 100644
127739 --- a/sound/usb/line6/driver.c
127740 +++ b/sound/usb/line6/driver.c
127741 @@ -307,7 +307,7 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
127742 {
127743 struct usb_device *usbdev = line6->usbdev;
127744 int ret;
127745 - unsigned char len;
127746 + unsigned char *plen;
127747 unsigned count;
127748
127749 if (address > 0xffff || datalen > 0xff)
127750 @@ -324,6 +324,10 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
127751 return ret;
127752 }
127753
127754 + plen = kmalloc(1, GFP_KERNEL);
127755 + if (plen == NULL)
127756 + return -ENOMEM;
127757 +
127758 /* Wait for data length. We'll get 0xff until length arrives. */
127759 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) {
127760 mdelay(LINE6_READ_WRITE_STATUS_DELAY);
127761 @@ -331,30 +335,35 @@ int line6_read_data(struct usb_line6 *line6, unsigned address, void *data,
127762 ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 0x67,
127763 USB_TYPE_VENDOR | USB_RECIP_DEVICE |
127764 USB_DIR_IN,
127765 - 0x0012, 0x0000, &len, 1,
127766 + 0x0012, 0x0000, plen, 1,
127767 LINE6_TIMEOUT * HZ);
127768 if (ret < 0) {
127769 dev_err(line6->ifcdev,
127770 "receive length failed (error %d)\n", ret);
127771 + kfree(plen);
127772 return ret;
127773 }
127774
127775 - if (len != 0xff)
127776 + if (*plen != 0xff)
127777 break;
127778 }
127779
127780 - if (len == 0xff) {
127781 + if (*plen == 0xff) {
127782 dev_err(line6->ifcdev, "read failed after %d retries\n",
127783 count);
127784 + kfree(plen);
127785 return -EIO;
127786 - } else if (len != datalen) {
127787 + } else if (*plen != datalen) {
127788 /* should be equal or something went wrong */
127789 dev_err(line6->ifcdev,
127790 "length mismatch (expected %d, got %d)\n",
127791 - (int)datalen, (int)len);
127792 + (int)datalen, (int)*plen);
127793 + kfree(plen);
127794 return -EIO;
127795 }
127796
127797 + kfree(plen);
127798 +
127799 /* receive the result: */
127800 ret = usb_control_msg(usbdev, usb_rcvctrlpipe(usbdev, 0), 0x67,
127801 USB_TYPE_VENDOR | USB_RECIP_DEVICE | USB_DIR_IN,
127802 @@ -378,7 +387,7 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
127803 {
127804 struct usb_device *usbdev = line6->usbdev;
127805 int ret;
127806 - unsigned char status;
127807 + unsigned char *status;
127808 int count;
127809
127810 if (address > 0xffff || datalen > 0xffff)
127811 @@ -395,6 +404,10 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
127812 return ret;
127813 }
127814
127815 + status = kmalloc(1, GFP_KERNEL);
127816 + if (status == NULL)
127817 + return -ENOMEM;
127818 +
127819 for (count = 0; count < LINE6_READ_WRITE_MAX_RETRIES; count++) {
127820 mdelay(LINE6_READ_WRITE_STATUS_DELAY);
127821
127822 @@ -403,27 +416,32 @@ int line6_write_data(struct usb_line6 *line6, unsigned address, void *data,
127823 USB_TYPE_VENDOR | USB_RECIP_DEVICE |
127824 USB_DIR_IN,
127825 0x0012, 0x0000,
127826 - &status, 1, LINE6_TIMEOUT * HZ);
127827 + status, 1, LINE6_TIMEOUT * HZ);
127828
127829 if (ret < 0) {
127830 dev_err(line6->ifcdev,
127831 "receiving status failed (error %d)\n", ret);
127832 + kfree(status);
127833 return ret;
127834 }
127835
127836 - if (status != 0xff)
127837 + if (*status != 0xff)
127838 break;
127839 }
127840
127841 - if (status == 0xff) {
127842 + if (*status == 0xff) {
127843 dev_err(line6->ifcdev, "write failed after %d retries\n",
127844 count);
127845 + kfree(status);
127846 return -EIO;
127847 - } else if (status != 0) {
127848 + } else if (*status != 0) {
127849 dev_err(line6->ifcdev, "write failed (error %d)\n", ret);
127850 + kfree(status);
127851 return -EIO;
127852 }
127853
127854 + kfree(status);
127855 +
127856 return 0;
127857 }
127858 EXPORT_SYMBOL_GPL(line6_write_data);
127859 diff --git a/sound/usb/line6/toneport.c b/sound/usb/line6/toneport.c
127860 index 6d4c50c..aa658c8 100644
127861 --- a/sound/usb/line6/toneport.c
127862 +++ b/sound/usb/line6/toneport.c
127863 @@ -367,13 +367,19 @@ static bool toneport_has_source_select(struct usb_line6_toneport *toneport)
127864 */
127865 static void toneport_setup(struct usb_line6_toneport *toneport)
127866 {
127867 - int ticks;
127868 + int *ticks;
127869 struct usb_line6 *line6 = &toneport->line6;
127870 struct usb_device *usbdev = line6->usbdev;
127871
127872 + ticks = kmalloc(sizeof(int), GFP_KERNEL);
127873 + if (ticks == NULL)
127874 + return;
127875 +
127876 /* sync time on device with host: */
127877 - ticks = (int)get_seconds();
127878 - line6_write_data(line6, 0x80c6, &ticks, 4);
127879 + *ticks = (int)get_seconds();
127880 + line6_write_data(line6, 0x80c6, ticks, sizeof(int));
127881 +
127882 + kfree(ticks);
127883
127884 /* enable device: */
127885 toneport_send_cmd(usbdev, 0x0301, 0x0000);
127886 diff --git a/tools/gcc/.gitignore b/tools/gcc/.gitignore
127887 new file mode 100644
127888 index 0000000..de92ed9
127889 --- /dev/null
127890 +++ b/tools/gcc/.gitignore
127891 @@ -0,0 +1 @@
127892 +randomize_layout_seed.h
127893 diff --git a/tools/gcc/Makefile b/tools/gcc/Makefile
127894 new file mode 100644
127895 index 0000000..4945d82
127896 --- /dev/null
127897 +++ b/tools/gcc/Makefile
127898 @@ -0,0 +1,54 @@
127899 +#CC := gcc
127900 +#PLUGIN_SOURCE_FILES := pax_plugin.c
127901 +#PLUGIN_OBJECT_FILES := $(patsubst %.c,%.o,$(PLUGIN_SOURCE_FILES))
127902 +GCCPLUGINS_DIR := $(shell $(CC) -print-file-name=plugin)
127903 +#CFLAGS += -I$(GCCPLUGINS_DIR)/include -fPIC -O2 -Wall -W -std=gnu99
127904 +
127905 +ifeq ($(PLUGINCC),$(HOSTCC))
127906 +HOSTLIBS := hostlibs
127907 +HOST_EXTRACFLAGS += -I$(GCCPLUGINS_DIR)/include -I$(src) -std=gnu99 -ggdb
127908 +export HOST_EXTRACFLAGS
127909 +else
127910 +HOSTLIBS := hostcxxlibs
127911 +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
127912 +export HOST_EXTRACXXFLAGS
127913 +endif
127914 +
127915 +export GCCPLUGINS_DIR HOSTLIBS
127916 +
127917 +$(HOSTLIBS)-$(CONFIG_PAX_CONSTIFY_PLUGIN) := constify_plugin.so
127918 +$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STACKLEAK) += stackleak_plugin.so
127919 +$(HOSTLIBS)-$(CONFIG_KALLOCSTAT_PLUGIN) += kallocstat_plugin.so
127920 +$(HOSTLIBS)-$(CONFIG_PAX_KERNEXEC_PLUGIN) += kernexec_plugin.so
127921 +$(HOSTLIBS)-$(CONFIG_CHECKER_PLUGIN) += checker_plugin.so
127922 +$(HOSTLIBS)-y += colorize_plugin.so
127923 +$(HOSTLIBS)-$(CONFIG_PAX_LATENT_ENTROPY) += latent_entropy_plugin.so
127924 +$(HOSTLIBS)-$(CONFIG_PAX_MEMORY_STRUCTLEAK) += structleak_plugin.so
127925 +$(HOSTLIBS)-y += initify_plugin.so
127926 +$(HOSTLIBS)-$(CONFIG_GRKERNSEC_RANDSTRUCT) += randomize_layout_plugin.so
127927 +
127928 +subdir-$(CONFIG_PAX_SIZE_OVERFLOW) := size_overflow_plugin
127929 +subdir- += size_overflow_plugin
127930 +
127931 +always := $($(HOSTLIBS)-y)
127932 +
127933 +constify_plugin-objs := constify_plugin.o
127934 +stackleak_plugin-objs := stackleak_plugin.o
127935 +kallocstat_plugin-objs := kallocstat_plugin.o
127936 +kernexec_plugin-objs := kernexec_plugin.o
127937 +checker_plugin-objs := checker_plugin.o
127938 +colorize_plugin-objs := colorize_plugin.o
127939 +latent_entropy_plugin-objs := latent_entropy_plugin.o
127940 +structleak_plugin-objs := structleak_plugin.o
127941 +initify_plugin-objs := initify_plugin.o
127942 +randomize_layout_plugin-objs := randomize_layout_plugin.o
127943 +
127944 +$(obj)/randomize_layout_plugin.o: $(objtree)/$(obj)/randomize_layout_seed.h
127945 +
127946 +quiet_cmd_create_randomize_layout_seed = GENSEED $@
127947 + cmd_create_randomize_layout_seed = \
127948 + $(CONFIG_SHELL) $(srctree)/$(src)/gen-random-seed.sh $@ $(objtree)/include/generated/randomize_layout_hash.h
127949 +$(objtree)/$(obj)/randomize_layout_seed.h: FORCE
127950 + $(call if_changed,create_randomize_layout_seed)
127951 +
127952 +targets += randomize_layout_seed.h randomize_layout_hash.h
127953 diff --git a/tools/gcc/checker_plugin.c b/tools/gcc/checker_plugin.c
127954 new file mode 100644
127955 index 0000000..5452feea
127956 --- /dev/null
127957 +++ b/tools/gcc/checker_plugin.c
127958 @@ -0,0 +1,150 @@
127959 +/*
127960 + * Copyright 2011-2014 by the PaX Team <pageexec@freemail.hu>
127961 + * Licensed under the GPL v2
127962 + *
127963 + * Note: the choice of the license means that the compilation process is
127964 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
127965 + * but for the kernel it doesn't matter since it doesn't link against
127966 + * any of the gcc libraries
127967 + *
127968 + * gcc plugin to implement various sparse (source code checker) features
127969 + *
127970 + * TODO:
127971 + * - define separate __iomem, __percpu and __rcu address spaces (lots of code to patch)
127972 + *
127973 + * BUGS:
127974 + * - none known
127975 + */
127976 +
127977 +#include "gcc-common.h"
127978 +
127979 +extern void c_register_addr_space (const char *str, addr_space_t as);
127980 +extern enum machine_mode default_addr_space_pointer_mode (addr_space_t);
127981 +extern enum machine_mode default_addr_space_address_mode (addr_space_t);
127982 +extern bool default_addr_space_valid_pointer_mode(enum machine_mode mode, addr_space_t as);
127983 +extern bool default_addr_space_legitimate_address_p(enum machine_mode mode, rtx mem, bool strict, addr_space_t as);
127984 +extern rtx default_addr_space_legitimize_address(rtx x, rtx oldx, enum machine_mode mode, addr_space_t as);
127985 +
127986 +int plugin_is_GPL_compatible;
127987 +
127988 +static struct plugin_info checker_plugin_info = {
127989 + .version = "201304082245",
127990 + .help = NULL,
127991 +};
127992 +
127993 +#define ADDR_SPACE_KERNEL 0
127994 +#define ADDR_SPACE_FORCE_KERNEL 1
127995 +#define ADDR_SPACE_USER 2
127996 +#define ADDR_SPACE_FORCE_USER 3
127997 +#define ADDR_SPACE_IOMEM 0
127998 +#define ADDR_SPACE_FORCE_IOMEM 0
127999 +#define ADDR_SPACE_PERCPU 0
128000 +#define ADDR_SPACE_FORCE_PERCPU 0
128001 +#define ADDR_SPACE_RCU 0
128002 +#define ADDR_SPACE_FORCE_RCU 0
128003 +
128004 +static enum machine_mode checker_addr_space_pointer_mode(addr_space_t addrspace)
128005 +{
128006 + return default_addr_space_pointer_mode(ADDR_SPACE_GENERIC);
128007 +}
128008 +
128009 +static enum machine_mode checker_addr_space_address_mode(addr_space_t addrspace)
128010 +{
128011 + return default_addr_space_address_mode(ADDR_SPACE_GENERIC);
128012 +}
128013 +
128014 +static bool checker_addr_space_valid_pointer_mode(enum machine_mode mode, addr_space_t as)
128015 +{
128016 + return default_addr_space_valid_pointer_mode(mode, as);
128017 +}
128018 +
128019 +static bool checker_addr_space_legitimate_address_p(enum machine_mode mode, rtx mem, bool strict, addr_space_t as)
128020 +{
128021 + return default_addr_space_legitimate_address_p(mode, mem, strict, ADDR_SPACE_GENERIC);
128022 +}
128023 +
128024 +static rtx checker_addr_space_legitimize_address(rtx x, rtx oldx, enum machine_mode mode, addr_space_t as)
128025 +{
128026 + return default_addr_space_legitimize_address(x, oldx, mode, as);
128027 +}
128028 +
128029 +static bool checker_addr_space_subset_p(addr_space_t subset, addr_space_t superset)
128030 +{
128031 + if (subset == ADDR_SPACE_FORCE_KERNEL && superset == ADDR_SPACE_KERNEL)
128032 + return true;
128033 +
128034 + if (subset == ADDR_SPACE_FORCE_USER && superset == ADDR_SPACE_USER)
128035 + return true;
128036 +
128037 + if (subset == ADDR_SPACE_FORCE_IOMEM && superset == ADDR_SPACE_IOMEM)
128038 + return true;
128039 +
128040 + if (subset == ADDR_SPACE_KERNEL && superset == ADDR_SPACE_FORCE_USER)
128041 + return true;
128042 +
128043 + if (subset == ADDR_SPACE_KERNEL && superset == ADDR_SPACE_FORCE_IOMEM)
128044 + return true;
128045 +
128046 + if (subset == ADDR_SPACE_USER && superset == ADDR_SPACE_FORCE_KERNEL)
128047 + return true;
128048 +
128049 + if (subset == ADDR_SPACE_IOMEM && superset == ADDR_SPACE_FORCE_KERNEL)
128050 + return true;
128051 +
128052 + return subset == superset;
128053 +}
128054 +
128055 +static rtx checker_addr_space_convert(rtx op, tree from_type, tree to_type)
128056 +{
128057 +// addr_space_t from_as = TYPE_ADDR_SPACE(TREE_TYPE(from_type));
128058 +// addr_space_t to_as = TYPE_ADDR_SPACE(TREE_TYPE(to_type));
128059 +
128060 + return op;
128061 +}
128062 +
128063 +static void register_checker_address_spaces(void *event_data, void *data)
128064 +{
128065 + c_register_addr_space("__kernel", ADDR_SPACE_KERNEL);
128066 + c_register_addr_space("__force_kernel", ADDR_SPACE_FORCE_KERNEL);
128067 + c_register_addr_space("__user", ADDR_SPACE_USER);
128068 + c_register_addr_space("__force_user", ADDR_SPACE_FORCE_USER);
128069 +// c_register_addr_space("__iomem", ADDR_SPACE_IOMEM);
128070 +// c_register_addr_space("__force_iomem", ADDR_SPACE_FORCE_IOMEM);
128071 +// c_register_addr_space("__percpu", ADDR_SPACE_PERCPU);
128072 +// c_register_addr_space("__force_percpu", ADDR_SPACE_FORCE_PERCPU);
128073 +// c_register_addr_space("__rcu", ADDR_SPACE_RCU);
128074 +// c_register_addr_space("__force_rcu", ADDR_SPACE_FORCE_RCU);
128075 +
128076 + targetm.addr_space.pointer_mode = checker_addr_space_pointer_mode;
128077 + targetm.addr_space.address_mode = checker_addr_space_address_mode;
128078 + targetm.addr_space.valid_pointer_mode = checker_addr_space_valid_pointer_mode;
128079 + targetm.addr_space.legitimate_address_p = checker_addr_space_legitimate_address_p;
128080 +// targetm.addr_space.legitimize_address = checker_addr_space_legitimize_address;
128081 + targetm.addr_space.subset_p = checker_addr_space_subset_p;
128082 + targetm.addr_space.convert = checker_addr_space_convert;
128083 +}
128084 +
128085 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
128086 +{
128087 + const char * const plugin_name = plugin_info->base_name;
128088 + const int argc = plugin_info->argc;
128089 + const struct plugin_argument * const argv = plugin_info->argv;
128090 + int i;
128091 +
128092 + if (!plugin_default_version_check(version, &gcc_version)) {
128093 + error(G_("incompatible gcc/plugin versions"));
128094 + return 1;
128095 + }
128096 +
128097 + register_callback(plugin_name, PLUGIN_INFO, NULL, &checker_plugin_info);
128098 +
128099 + for (i = 0; i < argc; ++i)
128100 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
128101 +
128102 + if (TARGET_64BIT == 0)
128103 + return 0;
128104 +
128105 + register_callback(plugin_name, PLUGIN_PRAGMAS, register_checker_address_spaces, NULL);
128106 +
128107 + return 0;
128108 +}
128109 diff --git a/tools/gcc/colorize_plugin.c b/tools/gcc/colorize_plugin.c
128110 new file mode 100644
128111 index 0000000..0c96d8a
128112 --- /dev/null
128113 +++ b/tools/gcc/colorize_plugin.c
128114 @@ -0,0 +1,215 @@
128115 +/*
128116 + * Copyright 2012-2015 by PaX Team <pageexec@freemail.hu>
128117 + * Licensed under the GPL v2
128118 + *
128119 + * Note: the choice of the license means that the compilation process is
128120 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
128121 + * but for the kernel it doesn't matter since it doesn't link against
128122 + * any of the gcc libraries
128123 + *
128124 + * gcc plugin to colorize diagnostic output
128125 + *
128126 + */
128127 +
128128 +#include "gcc-common.h"
128129 +
128130 +int plugin_is_GPL_compatible;
128131 +
128132 +static struct plugin_info colorize_plugin_info = {
128133 + .version = "201404202350",
128134 + .help = "color=[never|always|auto]\tdetermine when to colorize\n",
128135 +};
128136 +
128137 +#define GREEN "\033[32m\033[K"
128138 +#define LIGHTGREEN "\033[1;32m\033[K"
128139 +#define YELLOW "\033[33m\033[K"
128140 +#define LIGHTYELLOW "\033[1;33m\033[K"
128141 +#define RED "\033[31m\033[K"
128142 +#define LIGHTRED "\033[1;31m\033[K"
128143 +#define BLUE "\033[34m\033[K"
128144 +#define LIGHTBLUE "\033[1;34m\033[K"
128145 +#define BRIGHT "\033[1;m\033[K"
128146 +#define NORMAL "\033[m\033[K"
128147 +
128148 +static diagnostic_starter_fn old_starter;
128149 +static diagnostic_finalizer_fn old_finalizer;
128150 +
128151 +static void start_colorize(diagnostic_context *context, diagnostic_info *diagnostic)
128152 +{
128153 + const char *color;
128154 + char *newprefix;
128155 +
128156 + switch (diagnostic->kind) {
128157 + case DK_NOTE:
128158 + color = LIGHTBLUE;
128159 + break;
128160 +
128161 + case DK_PEDWARN:
128162 + case DK_WARNING:
128163 + color = LIGHTYELLOW;
128164 + break;
128165 +
128166 + case DK_ERROR:
128167 + case DK_FATAL:
128168 + case DK_ICE:
128169 + case DK_PERMERROR:
128170 + case DK_SORRY:
128171 + color = LIGHTRED;
128172 + break;
128173 +
128174 + default:
128175 + color = NORMAL;
128176 + }
128177 +
128178 + old_starter(context, diagnostic);
128179 + if (-1 == asprintf(&newprefix, "%s%s" NORMAL, color, context->printer->prefix))
128180 + return;
128181 + pp_destroy_prefix(context->printer);
128182 + pp_set_prefix(context->printer, newprefix);
128183 +}
128184 +
128185 +static void finalize_colorize(diagnostic_context *context, diagnostic_info *diagnostic)
128186 +{
128187 + old_finalizer(context, diagnostic);
128188 +}
128189 +
128190 +static void colorize_arm(void)
128191 +{
128192 + old_starter = diagnostic_starter(global_dc);
128193 + old_finalizer = diagnostic_finalizer(global_dc);
128194 +
128195 + diagnostic_starter(global_dc) = start_colorize;
128196 + diagnostic_finalizer(global_dc) = finalize_colorize;
128197 +}
128198 +
128199 +static unsigned int execute_colorize_rearm(void)
128200 +{
128201 + if (diagnostic_starter(global_dc) == start_colorize)
128202 + return 0;
128203 +
128204 + colorize_arm();
128205 + return 0;
128206 +}
128207 +
128208 +#if BUILDING_GCC_VERSION >= 4009
128209 +namespace {
128210 +static const struct pass_data colorize_rearm_pass_data = {
128211 +#else
128212 +struct simple_ipa_opt_pass colorize_rearm_pass = {
128213 + .pass = {
128214 +#endif
128215 + .type = SIMPLE_IPA_PASS,
128216 + .name = "colorize_rearm",
128217 +#if BUILDING_GCC_VERSION >= 4008
128218 + .optinfo_flags = OPTGROUP_NONE,
128219 +#endif
128220 +#if BUILDING_GCC_VERSION >= 5000
128221 +#elif BUILDING_GCC_VERSION == 4009
128222 + .has_gate = false,
128223 + .has_execute = true,
128224 +#else
128225 + .gate = NULL,
128226 + .execute = execute_colorize_rearm,
128227 + .sub = NULL,
128228 + .next = NULL,
128229 + .static_pass_number = 0,
128230 +#endif
128231 + .tv_id = TV_NONE,
128232 + .properties_required = 0,
128233 + .properties_provided = 0,
128234 + .properties_destroyed = 0,
128235 + .todo_flags_start = 0,
128236 + .todo_flags_finish = 0
128237 +#if BUILDING_GCC_VERSION < 4009
128238 + }
128239 +#endif
128240 +};
128241 +
128242 +#if BUILDING_GCC_VERSION >= 4009
128243 +class colorize_rearm_pass : public simple_ipa_opt_pass {
128244 +public:
128245 + colorize_rearm_pass() : simple_ipa_opt_pass(colorize_rearm_pass_data, g) {}
128246 +#if BUILDING_GCC_VERSION >= 5000
128247 + virtual unsigned int execute(function *) { return execute_colorize_rearm(); }
128248 +#else
128249 + unsigned int execute() { return execute_colorize_rearm(); }
128250 +#endif
128251 +};
128252 +}
128253 +
128254 +static opt_pass *make_colorize_rearm_pass(void)
128255 +{
128256 + return new colorize_rearm_pass();
128257 +}
128258 +#else
128259 +static struct opt_pass *make_colorize_rearm_pass(void)
128260 +{
128261 + return &colorize_rearm_pass.pass;
128262 +}
128263 +#endif
128264 +
128265 +static void colorize_start_unit(void *gcc_data, void *user_data)
128266 +{
128267 + colorize_arm();
128268 +}
128269 +
128270 +static bool should_colorize(void)
128271 +{
128272 +#if BUILDING_GCC_VERSION >= 4009
128273 + return false;
128274 +#else
128275 + char const *t = getenv("TERM");
128276 +
128277 + return t && strcmp(t, "dumb") && isatty(STDERR_FILENO);
128278 +#endif
128279 +}
128280 +
128281 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
128282 +{
128283 + const char * const plugin_name = plugin_info->base_name;
128284 + const int argc = plugin_info->argc;
128285 + const struct plugin_argument * const argv = plugin_info->argv;
128286 + int i;
128287 + struct register_pass_info colorize_rearm_pass_info;
128288 + bool colorize;
128289 +
128290 + colorize_rearm_pass_info.pass = make_colorize_rearm_pass();
128291 + colorize_rearm_pass_info.reference_pass_name = "*free_lang_data";
128292 + colorize_rearm_pass_info.ref_pass_instance_number = 1;
128293 + colorize_rearm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
128294 +
128295 + if (!plugin_default_version_check(version, &gcc_version)) {
128296 + error(G_("incompatible gcc/plugin versions"));
128297 + return 1;
128298 + }
128299 +
128300 + register_callback(plugin_name, PLUGIN_INFO, NULL, &colorize_plugin_info);
128301 +
128302 + colorize = getenv("GCC_COLORS") ? should_colorize() : false;
128303 +
128304 + for (i = 0; i < argc; ++i) {
128305 + if (!strcmp(argv[i].key, "color")) {
128306 + if (!argv[i].value) {
128307 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
128308 + continue;
128309 + }
128310 + if (!strcmp(argv[i].value, "always"))
128311 + colorize = true;
128312 + else if (!strcmp(argv[i].value, "never"))
128313 + colorize = false;
128314 + else if (!strcmp(argv[i].value, "auto"))
128315 + colorize = should_colorize();
128316 + else
128317 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
128318 + continue;
128319 + }
128320 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
128321 + }
128322 +
128323 + if (colorize) {
128324 + // TODO: parse GCC_COLORS as used by gcc 4.9+
128325 + register_callback(plugin_name, PLUGIN_START_UNIT, &colorize_start_unit, NULL);
128326 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &colorize_rearm_pass_info);
128327 + }
128328 + return 0;
128329 +}
128330 diff --git a/tools/gcc/constify_plugin.c b/tools/gcc/constify_plugin.c
128331 new file mode 100644
128332 index 0000000..b884a56
128333 --- /dev/null
128334 +++ b/tools/gcc/constify_plugin.c
128335 @@ -0,0 +1,564 @@
128336 +/*
128337 + * Copyright 2011 by Emese Revfy <re.emese@gmail.com>
128338 + * Copyright 2011-2015 by PaX Team <pageexec@freemail.hu>
128339 + * Licensed under the GPL v2, or (at your option) v3
128340 + *
128341 + * This gcc plugin constifies all structures which contain only function pointers or are explicitly marked for constification.
128342 + *
128343 + * Homepage:
128344 + * http://www.grsecurity.net/~ephox/const_plugin/
128345 + *
128346 + * Usage:
128347 + * $ gcc -I`gcc -print-file-name=plugin`/include -fPIC -shared -O2 -o constify_plugin.so constify_plugin.c
128348 + * $ gcc -fplugin=constify_plugin.so test.c -O2
128349 + */
128350 +
128351 +#include "gcc-common.h"
128352 +
128353 +// unused C type flag in all versions 4.5-5.0
128354 +#define TYPE_CONSTIFY_VISITED(TYPE) TYPE_LANG_FLAG_4(TYPE)
128355 +
128356 +int plugin_is_GPL_compatible;
128357 +
128358 +static struct plugin_info const_plugin_info = {
128359 + .version = "201401270210",
128360 + .help = "no-constify\tturn off constification\n",
128361 +};
128362 +
128363 +typedef struct {
128364 + bool has_fptr_field;
128365 + bool has_writable_field;
128366 + bool has_do_const_field;
128367 + bool has_no_const_field;
128368 +} constify_info;
128369 +
128370 +static const_tree get_field_type(const_tree field)
128371 +{
128372 + return strip_array_types(TREE_TYPE(field));
128373 +}
128374 +
128375 +static bool is_fptr(const_tree field)
128376 +{
128377 + const_tree ptr = get_field_type(field);
128378 +
128379 + if (TREE_CODE(ptr) != POINTER_TYPE)
128380 + return false;
128381 +
128382 + return TREE_CODE(TREE_TYPE(ptr)) == FUNCTION_TYPE;
128383 +}
128384 +
128385 +/*
128386 + * determine whether the given structure type meets the requirements for automatic constification,
128387 + * including the constification attributes on nested structure types
128388 + */
128389 +static void constifiable(const_tree node, constify_info *cinfo)
128390 +{
128391 + const_tree field;
128392 +
128393 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
128394 +
128395 + // e.g., pointer to structure fields while still constructing the structure type
128396 + if (TYPE_FIELDS(node) == NULL_TREE)
128397 + return;
128398 +
128399 + for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) {
128400 + const_tree type = get_field_type(field);
128401 + enum tree_code code = TREE_CODE(type);
128402 +
128403 + if (node == type)
128404 + continue;
128405 +
128406 + if (is_fptr(field))
128407 + cinfo->has_fptr_field = true;
128408 + else if (!TREE_READONLY(field))
128409 + cinfo->has_writable_field = true;
128410 +
128411 + if (code == RECORD_TYPE || code == UNION_TYPE) {
128412 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type)))
128413 + cinfo->has_do_const_field = true;
128414 + else if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type)))
128415 + cinfo->has_no_const_field = true;
128416 + else
128417 + constifiable(type, cinfo);
128418 + }
128419 + }
128420 +}
128421 +
128422 +static bool constified(const_tree node)
128423 +{
128424 + constify_info cinfo = {
128425 + .has_fptr_field = false,
128426 + .has_writable_field = false,
128427 + .has_do_const_field = false,
128428 + .has_no_const_field = false
128429 + };
128430 +
128431 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
128432 +
128433 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(node))) {
128434 +// gcc_assert(!TYPE_READONLY(node));
128435 + return false;
128436 + }
128437 +
128438 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(node))) {
128439 + gcc_assert(TYPE_READONLY(node));
128440 + return true;
128441 + }
128442 +
128443 + constifiable(node, &cinfo);
128444 + if ((!cinfo.has_fptr_field || cinfo.has_writable_field) && !cinfo.has_do_const_field)
128445 + return false;
128446 +
128447 + return TYPE_READONLY(node);
128448 +}
128449 +
128450 +static void deconstify_tree(tree node);
128451 +
128452 +static void deconstify_type(tree type)
128453 +{
128454 + tree field;
128455 +
128456 + gcc_assert(TREE_CODE(type) == RECORD_TYPE || TREE_CODE(type) == UNION_TYPE);
128457 +
128458 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
128459 + const_tree fieldtype = get_field_type(field);
128460 +
128461 + // special case handling of simple ptr-to-same-array-type members
128462 + if (TREE_CODE(TREE_TYPE(field)) == POINTER_TYPE) {
128463 + tree ptrtype = TREE_TYPE(TREE_TYPE(field));
128464 +
128465 + if (TREE_TYPE(TREE_TYPE(field)) == type)
128466 + continue;
128467 + if (TREE_CODE(ptrtype) != RECORD_TYPE && TREE_CODE(ptrtype) != UNION_TYPE)
128468 + continue;
128469 + if (!constified(ptrtype))
128470 + continue;
128471 + if (TYPE_MAIN_VARIANT(ptrtype) == TYPE_MAIN_VARIANT(type)) {
128472 + TREE_TYPE(field) = copy_node(TREE_TYPE(field));
128473 + TREE_TYPE(TREE_TYPE(field)) = build_qualified_type(type, TYPE_QUALS(ptrtype) & ~TYPE_QUAL_CONST);
128474 + }
128475 + continue;
128476 + }
128477 + if (TREE_CODE(fieldtype) != RECORD_TYPE && TREE_CODE(fieldtype) != UNION_TYPE)
128478 + continue;
128479 + if (!constified(fieldtype))
128480 + continue;
128481 +
128482 + deconstify_tree(field);
128483 + TREE_READONLY(field) = 0;
128484 + }
128485 + TYPE_READONLY(type) = 0;
128486 + C_TYPE_FIELDS_READONLY(type) = 0;
128487 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
128488 + TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
128489 + TYPE_ATTRIBUTES(type) = remove_attribute("do_const", TYPE_ATTRIBUTES(type));
128490 + }
128491 +}
128492 +
128493 +static void deconstify_tree(tree node)
128494 +{
128495 + tree old_type, new_type, field;
128496 +
128497 + old_type = TREE_TYPE(node);
128498 + while (TREE_CODE(old_type) == ARRAY_TYPE && TREE_CODE(TREE_TYPE(old_type)) != ARRAY_TYPE) {
128499 + node = TREE_TYPE(node) = copy_node(old_type);
128500 + old_type = TREE_TYPE(old_type);
128501 + }
128502 +
128503 + gcc_assert(TREE_CODE(old_type) == RECORD_TYPE || TREE_CODE(old_type) == UNION_TYPE);
128504 + gcc_assert(TYPE_READONLY(old_type) && (TYPE_QUALS(old_type) & TYPE_QUAL_CONST));
128505 +
128506 + new_type = build_qualified_type(old_type, TYPE_QUALS(old_type) & ~TYPE_QUAL_CONST);
128507 + TYPE_FIELDS(new_type) = copy_list(TYPE_FIELDS(new_type));
128508 + for (field = TYPE_FIELDS(new_type); field; field = TREE_CHAIN(field))
128509 + DECL_FIELD_CONTEXT(field) = new_type;
128510 +
128511 + deconstify_type(new_type);
128512 +
128513 + TREE_TYPE(node) = new_type;
128514 +}
128515 +
128516 +static tree handle_no_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
128517 +{
128518 + tree type;
128519 + constify_info cinfo = {
128520 + .has_fptr_field = false,
128521 + .has_writable_field = false,
128522 + .has_do_const_field = false,
128523 + .has_no_const_field = false
128524 + };
128525 +
128526 + *no_add_attrs = true;
128527 + if (TREE_CODE(*node) == FUNCTION_DECL) {
128528 + error("%qE attribute does not apply to functions (%qF)", name, *node);
128529 + return NULL_TREE;
128530 + }
128531 +
128532 + if (TREE_CODE(*node) == PARM_DECL) {
128533 + error("%qE attribute does not apply to function parameters (%qD)", name, *node);
128534 + return NULL_TREE;
128535 + }
128536 +
128537 + if (TREE_CODE(*node) == VAR_DECL) {
128538 + error("%qE attribute does not apply to variables (%qD)", name, *node);
128539 + return NULL_TREE;
128540 + }
128541 +
128542 + if (TYPE_P(*node)) {
128543 + type = *node;
128544 + } else {
128545 + gcc_assert(TREE_CODE(*node) == TYPE_DECL);
128546 + type = TREE_TYPE(*node);
128547 + }
128548 +
128549 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE) {
128550 + error("%qE attribute used on %qT applies to struct and union types only", name, type);
128551 + return NULL_TREE;
128552 + }
128553 +
128554 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(type))) {
128555 + error("%qE attribute is already applied to the type %qT", name, type);
128556 + return NULL_TREE;
128557 + }
128558 +
128559 + if (TYPE_P(*node)) {
128560 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type)))
128561 + error("%qE attribute used on type %qT is incompatible with 'do_const'", name, type);
128562 + else
128563 + *no_add_attrs = false;
128564 + return NULL_TREE;
128565 + }
128566 +
128567 + constifiable(type, &cinfo);
128568 + if ((cinfo.has_fptr_field && !cinfo.has_writable_field) || lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
128569 + deconstify_tree(*node);
128570 + TYPE_CONSTIFY_VISITED(TREE_TYPE(*node)) = 1;
128571 + return NULL_TREE;
128572 + }
128573 +
128574 + if (TYPE_FIELDS(type))
128575 + error("%qE attribute used on type %qT that is not constified", name, type);
128576 + return NULL_TREE;
128577 +}
128578 +
128579 +static void constify_type(tree type)
128580 +{
128581 + TYPE_READONLY(type) = 1;
128582 + C_TYPE_FIELDS_READONLY(type) = 1;
128583 + TYPE_CONSTIFY_VISITED(type) = 1;
128584 +// TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
128585 +// TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("do_const"), NULL_TREE, TYPE_ATTRIBUTES(type));
128586 +}
128587 +
128588 +static tree handle_do_const_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
128589 +{
128590 + *no_add_attrs = true;
128591 + if (!TYPE_P(*node)) {
128592 + error("%qE attribute applies to types only (%qD)", name, *node);
128593 + return NULL_TREE;
128594 + }
128595 +
128596 + if (TREE_CODE(*node) != RECORD_TYPE && TREE_CODE(*node) != UNION_TYPE) {
128597 + error("%qE attribute used on %qT applies to struct and union types only", name, *node);
128598 + return NULL_TREE;
128599 + }
128600 +
128601 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(*node))) {
128602 + error("%qE attribute used on %qT is already applied to the type", name, *node);
128603 + return NULL_TREE;
128604 + }
128605 +
128606 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(*node))) {
128607 + error("%qE attribute used on %qT is incompatible with 'no_const'", name, *node);
128608 + return NULL_TREE;
128609 + }
128610 +
128611 + *no_add_attrs = false;
128612 + return NULL_TREE;
128613 +}
128614 +
128615 +static struct attribute_spec no_const_attr = {
128616 + .name = "no_const",
128617 + .min_length = 0,
128618 + .max_length = 0,
128619 + .decl_required = false,
128620 + .type_required = false,
128621 + .function_type_required = false,
128622 + .handler = handle_no_const_attribute,
128623 +#if BUILDING_GCC_VERSION >= 4007
128624 + .affects_type_identity = true
128625 +#endif
128626 +};
128627 +
128628 +static struct attribute_spec do_const_attr = {
128629 + .name = "do_const",
128630 + .min_length = 0,
128631 + .max_length = 0,
128632 + .decl_required = false,
128633 + .type_required = false,
128634 + .function_type_required = false,
128635 + .handler = handle_do_const_attribute,
128636 +#if BUILDING_GCC_VERSION >= 4007
128637 + .affects_type_identity = true
128638 +#endif
128639 +};
128640 +
128641 +static void register_attributes(void *event_data, void *data)
128642 +{
128643 + register_attribute(&no_const_attr);
128644 + register_attribute(&do_const_attr);
128645 +}
128646 +
128647 +static void finish_type(void *event_data, void *data)
128648 +{
128649 + tree type = (tree)event_data;
128650 + constify_info cinfo = {
128651 + .has_fptr_field = false,
128652 + .has_writable_field = false,
128653 + .has_do_const_field = false,
128654 + .has_no_const_field = false
128655 + };
128656 +
128657 + if (type == NULL_TREE || type == error_mark_node)
128658 + return;
128659 +
128660 +#if BUILDING_GCC_VERSION >= 5000
128661 + if (TREE_CODE(type) == ENUMERAL_TYPE)
128662 + return;
128663 +#endif
128664 +
128665 + if (TYPE_FIELDS(type) == NULL_TREE || TYPE_CONSTIFY_VISITED(type))
128666 + return;
128667 +
128668 + constifiable(type, &cinfo);
128669 +
128670 + if (lookup_attribute("no_const", TYPE_ATTRIBUTES(type))) {
128671 + if ((cinfo.has_fptr_field && !cinfo.has_writable_field) || cinfo.has_do_const_field) {
128672 + deconstify_type(type);
128673 + TYPE_CONSTIFY_VISITED(type) = 1;
128674 + } else
128675 + error("'no_const' attribute used on type %qT that is not constified", type);
128676 + return;
128677 + }
128678 +
128679 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
128680 + if (!cinfo.has_writable_field) {
128681 + error("'do_const' attribute used on type %qT that is%sconstified", type, cinfo.has_fptr_field ? " " : " not ");
128682 + return;
128683 + }
128684 + constify_type(type);
128685 + return;
128686 + }
128687 +
128688 + if (cinfo.has_fptr_field && !cinfo.has_writable_field) {
128689 + if (lookup_attribute("do_const", TYPE_ATTRIBUTES(type))) {
128690 + error("'do_const' attribute used on type %qT that is constified", type);
128691 + return;
128692 + }
128693 + constify_type(type);
128694 + return;
128695 + }
128696 +
128697 + deconstify_type(type);
128698 + TYPE_CONSTIFY_VISITED(type) = 1;
128699 +}
128700 +
128701 +static void check_global_variables(void *event_data, void *data)
128702 +{
128703 + varpool_node_ptr node;
128704 +
128705 + FOR_EACH_VARIABLE(node) {
128706 + tree var = NODE_DECL(node);
128707 + tree type = TREE_TYPE(var);
128708 +
128709 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
128710 + continue;
128711 +
128712 + if (!TYPE_READONLY(type) || !C_TYPE_FIELDS_READONLY(type))
128713 + continue;
128714 +
128715 + if (!TYPE_CONSTIFY_VISITED(type))
128716 + continue;
128717 +
128718 + if (DECL_EXTERNAL(var))
128719 + continue;
128720 +
128721 + if (DECL_INITIAL(var))
128722 + continue;
128723 +
128724 + // this works around a gcc bug/feature where uninitialized globals
128725 + // are moved into the .bss section regardless of any constification
128726 + DECL_INITIAL(var) = build_constructor(type, NULL);
128727 +// inform(DECL_SOURCE_LOCATION(var), "constified variable %qE moved into .rodata", var);
128728 + }
128729 +}
128730 +
128731 +static unsigned int check_local_variables(void)
128732 +{
128733 + unsigned int ret = 0;
128734 + tree var;
128735 +
128736 + unsigned int i;
128737 +
128738 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
128739 + tree type = TREE_TYPE(var);
128740 +
128741 + gcc_assert(DECL_P(var));
128742 + if (is_global_var(var))
128743 + continue;
128744 +
128745 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
128746 + continue;
128747 +
128748 + if (!TYPE_READONLY(type) || !C_TYPE_FIELDS_READONLY(type))
128749 + continue;
128750 +
128751 + if (!TYPE_CONSTIFY_VISITED(type))
128752 + continue;
128753 +
128754 + error_at(DECL_SOURCE_LOCATION(var), "constified variable %qE cannot be local", var);
128755 + ret = 1;
128756 + }
128757 + return ret;
128758 +}
128759 +
128760 +#if BUILDING_GCC_VERSION >= 4009
128761 +namespace {
128762 +static const struct pass_data check_local_variables_pass_data = {
128763 +#else
128764 +static struct gimple_opt_pass check_local_variables_pass = {
128765 + .pass = {
128766 +#endif
128767 + .type = GIMPLE_PASS,
128768 + .name = "check_local_variables",
128769 +#if BUILDING_GCC_VERSION >= 4008
128770 + .optinfo_flags = OPTGROUP_NONE,
128771 +#endif
128772 +#if BUILDING_GCC_VERSION >= 5000
128773 +#elif BUILDING_GCC_VERSION == 4009
128774 + .has_gate = false,
128775 + .has_execute = true,
128776 +#else
128777 + .gate = NULL,
128778 + .execute = check_local_variables,
128779 + .sub = NULL,
128780 + .next = NULL,
128781 + .static_pass_number = 0,
128782 +#endif
128783 + .tv_id = TV_NONE,
128784 + .properties_required = 0,
128785 + .properties_provided = 0,
128786 + .properties_destroyed = 0,
128787 + .todo_flags_start = 0,
128788 + .todo_flags_finish = 0
128789 +#if BUILDING_GCC_VERSION < 4009
128790 + }
128791 +#endif
128792 +};
128793 +
128794 +#if BUILDING_GCC_VERSION >= 4009
128795 +class check_local_variables_pass : public gimple_opt_pass {
128796 +public:
128797 + check_local_variables_pass() : gimple_opt_pass(check_local_variables_pass_data, g) {}
128798 +#if BUILDING_GCC_VERSION >= 5000
128799 + virtual unsigned int execute(function *) { return check_local_variables(); }
128800 +#else
128801 + unsigned int execute() { return check_local_variables(); }
128802 +#endif
128803 +};
128804 +}
128805 +
128806 +static opt_pass *make_check_local_variables_pass(void)
128807 +{
128808 + return new check_local_variables_pass();
128809 +}
128810 +#else
128811 +static struct opt_pass *make_check_local_variables_pass(void)
128812 +{
128813 + return &check_local_variables_pass.pass;
128814 +}
128815 +#endif
128816 +
128817 +static struct {
128818 + const char *name;
128819 + const char *asm_op;
128820 +} sections[] = {
128821 + {".init.rodata", "\t.section\t.init.rodata,\"a\""},
128822 + {".ref.rodata", "\t.section\t.ref.rodata,\"a\""},
128823 + {".devinit.rodata", "\t.section\t.devinit.rodata,\"a\""},
128824 + {".devexit.rodata", "\t.section\t.devexit.rodata,\"a\""},
128825 + {".cpuinit.rodata", "\t.section\t.cpuinit.rodata,\"a\""},
128826 + {".cpuexit.rodata", "\t.section\t.cpuexit.rodata,\"a\""},
128827 + {".meminit.rodata", "\t.section\t.meminit.rodata,\"a\""},
128828 + {".memexit.rodata", "\t.section\t.memexit.rodata,\"a\""},
128829 + {".data..read_only", "\t.section\t.data..read_only,\"a\""},
128830 +};
128831 +
128832 +static unsigned int (*old_section_type_flags)(tree decl, const char *name, int reloc);
128833 +
128834 +static unsigned int constify_section_type_flags(tree decl, const char *name, int reloc)
128835 +{
128836 + size_t i;
128837 +
128838 + for (i = 0; i < ARRAY_SIZE(sections); i++)
128839 + if (!strcmp(sections[i].name, name))
128840 + return 0;
128841 + return old_section_type_flags(decl, name, reloc);
128842 +}
128843 +
128844 +static void constify_start_unit(void *gcc_data, void *user_data)
128845 +{
128846 +// size_t i;
128847 +
128848 +// for (i = 0; i < ARRAY_SIZE(sections); i++)
128849 +// sections[i].section = get_unnamed_section(0, output_section_asm_op, sections[i].asm_op);
128850 +// sections[i].section = get_section(sections[i].name, 0, NULL);
128851 +
128852 + old_section_type_flags = targetm.section_type_flags;
128853 + targetm.section_type_flags = constify_section_type_flags;
128854 +}
128855 +
128856 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
128857 +{
128858 + const char * const plugin_name = plugin_info->base_name;
128859 + const int argc = plugin_info->argc;
128860 + const struct plugin_argument * const argv = plugin_info->argv;
128861 + int i;
128862 + bool constify = true;
128863 +
128864 + struct register_pass_info check_local_variables_pass_info;
128865 +
128866 + check_local_variables_pass_info.pass = make_check_local_variables_pass();
128867 + check_local_variables_pass_info.reference_pass_name = "ssa";
128868 + check_local_variables_pass_info.ref_pass_instance_number = 1;
128869 + check_local_variables_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
128870 +
128871 + if (!plugin_default_version_check(version, &gcc_version)) {
128872 + error(G_("incompatible gcc/plugin versions"));
128873 + return 1;
128874 + }
128875 +
128876 + for (i = 0; i < argc; ++i) {
128877 + if (!(strcmp(argv[i].key, "no-constify"))) {
128878 + constify = false;
128879 + continue;
128880 + }
128881 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
128882 + }
128883 +
128884 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
128885 + inform(UNKNOWN_LOCATION, G_("%s supports C only, not %s"), plugin_name, lang_hooks.name);
128886 + constify = false;
128887 + }
128888 +
128889 + register_callback(plugin_name, PLUGIN_INFO, NULL, &const_plugin_info);
128890 + if (constify) {
128891 + register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
128892 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
128893 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &check_local_variables_pass_info);
128894 + register_callback(plugin_name, PLUGIN_START_UNIT, constify_start_unit, NULL);
128895 + }
128896 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
128897 +
128898 + return 0;
128899 +}
128900 diff --git a/tools/gcc/gcc-common.h b/tools/gcc/gcc-common.h
128901 new file mode 100644
128902 index 0000000..9660b09
128903 --- /dev/null
128904 +++ b/tools/gcc/gcc-common.h
128905 @@ -0,0 +1,790 @@
128906 +#ifndef GCC_COMMON_H_INCLUDED
128907 +#define GCC_COMMON_H_INCLUDED
128908 +
128909 +#include "plugin.h"
128910 +#include "bversion.h"
128911 +#include "plugin-version.h"
128912 +#include "config.h"
128913 +#include "system.h"
128914 +#include "coretypes.h"
128915 +#include "tm.h"
128916 +#include "line-map.h"
128917 +#include "input.h"
128918 +#include "tree.h"
128919 +
128920 +#include "tree-inline.h"
128921 +#include "version.h"
128922 +#include "rtl.h"
128923 +#include "tm_p.h"
128924 +#include "flags.h"
128925 +//#include "insn-attr.h"
128926 +//#include "insn-config.h"
128927 +//#include "insn-flags.h"
128928 +#include "hard-reg-set.h"
128929 +//#include "recog.h"
128930 +#include "output.h"
128931 +#include "except.h"
128932 +#include "function.h"
128933 +#include "toplev.h"
128934 +//#include "expr.h"
128935 +#include "basic-block.h"
128936 +#include "intl.h"
128937 +#include "ggc.h"
128938 +//#include "regs.h"
128939 +#include "timevar.h"
128940 +
128941 +#include "params.h"
128942 +
128943 +#if BUILDING_GCC_VERSION <= 4009
128944 +#include "pointer-set.h"
128945 +#else
128946 +#include "hash-map.h"
128947 +#endif
128948 +
128949 +#include "emit-rtl.h"
128950 +//#include "reload.h"
128951 +//#include "ira.h"
128952 +//#include "dwarf2asm.h"
128953 +#include "debug.h"
128954 +#include "target.h"
128955 +#include "langhooks.h"
128956 +#include "cfgloop.h"
128957 +//#include "hosthooks.h"
128958 +#include "cgraph.h"
128959 +#include "opts.h"
128960 +//#include "coverage.h"
128961 +//#include "value-prof.h"
128962 +
128963 +#if BUILDING_GCC_VERSION == 4005
128964 +#include <sys/mman.h>
128965 +#endif
128966 +
128967 +#if BUILDING_GCC_VERSION >= 4007
128968 +#include "tree-pretty-print.h"
128969 +#include "gimple-pretty-print.h"
128970 +#endif
128971 +
128972 +#if BUILDING_GCC_VERSION >= 4006
128973 +//#include "c-tree.h"
128974 +//#include "cp/cp-tree.h"
128975 +#include "c-family/c-common.h"
128976 +#else
128977 +#include "c-common.h"
128978 +#endif
128979 +
128980 +#if BUILDING_GCC_VERSION <= 4008
128981 +#include "tree-flow.h"
128982 +#else
128983 +#include "tree-cfgcleanup.h"
128984 +#include "tree-ssa-operands.h"
128985 +#include "tree-into-ssa.h"
128986 +#endif
128987 +
128988 +#if BUILDING_GCC_VERSION >= 4008
128989 +#include "is-a.h"
128990 +#endif
128991 +
128992 +#include "diagnostic.h"
128993 +//#include "tree-diagnostic.h"
128994 +#include "tree-dump.h"
128995 +#include "tree-pass.h"
128996 +//#include "df.h"
128997 +#include "predict.h"
128998 +#include "ipa-utils.h"
128999 +
129000 +#if BUILDING_GCC_VERSION >= 4009
129001 +#include "varasm.h"
129002 +#include "stor-layout.h"
129003 +#include "internal-fn.h"
129004 +#include "gimple-expr.h"
129005 +#include "gimple-fold.h"
129006 +//#include "diagnostic-color.h"
129007 +#include "context.h"
129008 +#include "tree-ssa-alias.h"
129009 +#include "tree-ssa.h"
129010 +#include "stringpool.h"
129011 +#include "tree-ssanames.h"
129012 +#include "print-tree.h"
129013 +#include "tree-eh.h"
129014 +#include "stmt.h"
129015 +#include "gimplify.h"
129016 +#endif
129017 +
129018 +#include "gimple.h"
129019 +
129020 +#if BUILDING_GCC_VERSION >= 4009
129021 +#include "tree-ssa-operands.h"
129022 +#include "tree-phinodes.h"
129023 +#include "tree-cfg.h"
129024 +#include "gimple-iterator.h"
129025 +#include "gimple-ssa.h"
129026 +#include "ssa-iterators.h"
129027 +#endif
129028 +
129029 +//#include "lto/lto.h"
129030 +#if BUILDING_GCC_VERSION >= 4007
129031 +//#include "data-streamer.h"
129032 +#else
129033 +//#include "lto-streamer.h"
129034 +#endif
129035 +//#include "lto-compress.h"
129036 +#if BUILDING_GCC_VERSION >= 5000
129037 +//#include "lto-section-names.h"
129038 +#include "builtins.h"
129039 +#endif
129040 +
129041 +//#include "expr.h" where are you...
129042 +extern rtx emit_move_insn(rtx x, rtx y);
129043 +
129044 +// missing from basic_block.h...
129045 +extern void debug_dominance_info(enum cdi_direction dir);
129046 +extern void debug_dominance_tree(enum cdi_direction dir, basic_block root);
129047 +
129048 +#ifdef __cplusplus
129049 +static inline void debug_tree(const_tree t)
129050 +{
129051 + debug_tree(CONST_CAST_TREE(t));
129052 +}
129053 +#else
129054 +#define debug_tree(t) debug_tree(CONST_CAST_TREE(t))
129055 +#endif
129056 +
129057 +#define __unused __attribute__((__unused__))
129058 +
129059 +#define DECL_NAME_POINTER(node) IDENTIFIER_POINTER(DECL_NAME(node))
129060 +#define DECL_NAME_LENGTH(node) IDENTIFIER_LENGTH(DECL_NAME(node))
129061 +#define TYPE_NAME_POINTER(node) IDENTIFIER_POINTER(TYPE_NAME(node))
129062 +#define TYPE_NAME_LENGTH(node) IDENTIFIER_LENGTH(TYPE_NAME(node))
129063 +
129064 +// should come from c-tree.h if only it were installed for gcc 4.5...
129065 +#define C_TYPE_FIELDS_READONLY(TYPE) TREE_LANG_FLAG_1(TYPE)
129066 +
129067 +#if BUILDING_GCC_VERSION == 4005
129068 +#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)++)
129069 +#define DECL_CHAIN(NODE) (TREE_CHAIN(DECL_MINIMAL_CHECK(NODE)))
129070 +#define FOR_EACH_VEC_ELT(T, V, I, P) for (I = 0; VEC_iterate(T, (V), (I), (P)); ++(I))
129071 +#define TODO_rebuild_cgraph_edges 0
129072 +#define SCOPE_FILE_SCOPE_P(EXP) (!(EXP))
129073 +
129074 +#ifndef O_BINARY
129075 +#define O_BINARY 0
129076 +#endif
129077 +
129078 +typedef struct varpool_node *varpool_node_ptr;
129079 +
129080 +static inline bool gimple_call_builtin_p(gimple stmt, enum built_in_function code)
129081 +{
129082 + tree fndecl;
129083 +
129084 + if (!is_gimple_call(stmt))
129085 + return false;
129086 + fndecl = gimple_call_fndecl(stmt);
129087 + if (!fndecl || DECL_BUILT_IN_CLASS(fndecl) != BUILT_IN_NORMAL)
129088 + return false;
129089 +// print_node(stderr, "pax", fndecl, 4);
129090 + return DECL_FUNCTION_CODE(fndecl) == code;
129091 +}
129092 +
129093 +static inline bool is_simple_builtin(tree decl)
129094 +{
129095 + if (decl && DECL_BUILT_IN_CLASS(decl) != BUILT_IN_NORMAL)
129096 + return false;
129097 +
129098 + switch (DECL_FUNCTION_CODE(decl)) {
129099 + /* Builtins that expand to constants. */
129100 + case BUILT_IN_CONSTANT_P:
129101 + case BUILT_IN_EXPECT:
129102 + case BUILT_IN_OBJECT_SIZE:
129103 + case BUILT_IN_UNREACHABLE:
129104 + /* Simple register moves or loads from stack. */
129105 + case BUILT_IN_RETURN_ADDRESS:
129106 + case BUILT_IN_EXTRACT_RETURN_ADDR:
129107 + case BUILT_IN_FROB_RETURN_ADDR:
129108 + case BUILT_IN_RETURN:
129109 + case BUILT_IN_AGGREGATE_INCOMING_ADDRESS:
129110 + case BUILT_IN_FRAME_ADDRESS:
129111 + case BUILT_IN_VA_END:
129112 + case BUILT_IN_STACK_SAVE:
129113 + case BUILT_IN_STACK_RESTORE:
129114 + /* Exception state returns or moves registers around. */
129115 + case BUILT_IN_EH_FILTER:
129116 + case BUILT_IN_EH_POINTER:
129117 + case BUILT_IN_EH_COPY_VALUES:
129118 + return true;
129119 +
129120 + default:
129121 + return false;
129122 + }
129123 +}
129124 +
129125 +static inline void add_local_decl(struct function *fun, tree d)
129126 +{
129127 + gcc_assert(TREE_CODE(d) == VAR_DECL);
129128 + fun->local_decls = tree_cons(NULL_TREE, d, fun->local_decls);
129129 +}
129130 +#endif
129131 +
129132 +#if BUILDING_GCC_VERSION <= 4006
129133 +#define ANY_RETURN_P(rtx) (GET_CODE(rtx) == RETURN)
129134 +#define C_DECL_REGISTER(EXP) DECL_LANG_FLAG_4(EXP)
129135 +#define EDGE_PRESERVE 0ULL
129136 +#define HOST_WIDE_INT_PRINT_HEX_PURE "%" HOST_WIDE_INT_PRINT "x"
129137 +#define flag_fat_lto_objects true
129138 +
129139 +#define get_random_seed(noinit) ({ \
129140 + unsigned HOST_WIDE_INT seed; \
129141 + sscanf(get_random_seed(noinit), "%" HOST_WIDE_INT_PRINT "x", &seed); \
129142 + seed * seed; })
129143 +
129144 +#define int_const_binop(code, arg1, arg2) int_const_binop((code), (arg1), (arg2), 0)
129145 +
129146 +static inline bool gimple_clobber_p(gimple s __unused)
129147 +{
129148 + return false;
129149 +}
129150 +
129151 +static inline bool gimple_asm_clobbers_memory_p(const_gimple stmt)
129152 +{
129153 + unsigned i;
129154 +
129155 + for (i = 0; i < gimple_asm_nclobbers(stmt); i++) {
129156 + tree op = gimple_asm_clobber_op(stmt, i);
129157 + if (!strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "memory"))
129158 + return true;
129159 + }
129160 +
129161 + return false;
129162 +}
129163 +
129164 +static inline tree builtin_decl_implicit(enum built_in_function fncode)
129165 +{
129166 + return implicit_built_in_decls[fncode];
129167 +}
129168 +
129169 +static inline int ipa_reverse_postorder(struct cgraph_node **order)
129170 +{
129171 + return cgraph_postorder(order);
129172 +}
129173 +
129174 +static inline struct cgraph_node *cgraph_get_create_node(tree decl)
129175 +{
129176 + struct cgraph_node *node = cgraph_get_node(decl);
129177 +
129178 + return node ? node : cgraph_node(decl);
129179 +}
129180 +
129181 +static inline bool cgraph_function_with_gimple_body_p(struct cgraph_node *node)
129182 +{
129183 + return node->analyzed && !node->thunk.thunk_p && !node->alias;
129184 +}
129185 +
129186 +static inline struct cgraph_node *cgraph_first_function_with_gimple_body(void)
129187 +{
129188 + struct cgraph_node *node;
129189 +
129190 + for (node = cgraph_nodes; node; node = node->next)
129191 + if (cgraph_function_with_gimple_body_p(node))
129192 + return node;
129193 + return NULL;
129194 +}
129195 +
129196 +static inline struct cgraph_node *cgraph_next_function_with_gimple_body(struct cgraph_node *node)
129197 +{
129198 + for (node = node->next; node; node = node->next)
129199 + if (cgraph_function_with_gimple_body_p(node))
129200 + return node;
129201 + return NULL;
129202 +}
129203 +
129204 +#define FOR_EACH_FUNCTION_WITH_GIMPLE_BODY(node) \
129205 + for ((node) = cgraph_first_function_with_gimple_body(); (node); \
129206 + (node) = cgraph_next_function_with_gimple_body(node))
129207 +
129208 +static inline void varpool_add_new_variable(tree decl)
129209 +{
129210 + varpool_finalize_decl(decl);
129211 +}
129212 +#endif
129213 +
129214 +#if BUILDING_GCC_VERSION == 4006
129215 +extern void debug_gimple_stmt(gimple);
129216 +extern void debug_gimple_seq(gimple_seq);
129217 +extern void print_gimple_seq(FILE *, gimple_seq, int, int);
129218 +extern void print_gimple_stmt(FILE *, gimple, int, int);
129219 +extern void print_gimple_expr(FILE *, gimple, int, int);
129220 +extern void dump_gimple_stmt(pretty_printer *, gimple, int, int);
129221 +#endif
129222 +
129223 +#if BUILDING_GCC_VERSION <= 4007
129224 +#define FOR_EACH_FUNCTION(node) for (node = cgraph_nodes; node; node = node->next)
129225 +#define FOR_EACH_VARIABLE(node) for (node = varpool_nodes; node; node = node->next)
129226 +#define PROP_loops 0
129227 +#define NODE_SYMBOL(node) (node)
129228 +#define NODE_DECL(node) (node)->decl
129229 +#define INSN_LOCATION(INSN) RTL_LOCATION(INSN)
129230 +
129231 +static inline int bb_loop_depth(const_basic_block bb)
129232 +{
129233 + return bb->loop_father ? loop_depth(bb->loop_father) : 0;
129234 +}
129235 +
129236 +static inline bool gimple_store_p(gimple gs)
129237 +{
129238 + tree lhs = gimple_get_lhs(gs);
129239 + return lhs && !is_gimple_reg(lhs);
129240 +}
129241 +#endif
129242 +
129243 +#if BUILDING_GCC_VERSION == 4007 || BUILDING_GCC_VERSION == 4008
129244 +static inline struct cgraph_node *cgraph_alias_target(struct cgraph_node *n)
129245 +{
129246 + return cgraph_alias_aliased_node(n);
129247 +}
129248 +#endif
129249 +
129250 +#if BUILDING_GCC_VERSION >= 4007 && BUILDING_GCC_VERSION <= 4009
129251 +#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \
129252 + cgraph_create_edge((caller), (callee), (call_stmt), (count), (freq))
129253 +#define cgraph_create_edge_including_clones(caller, callee, old_call_stmt, call_stmt, count, freq, nest, reason) \
129254 + cgraph_create_edge_including_clones((caller), (callee), (old_call_stmt), (call_stmt), (count), (freq), (reason))
129255 +#endif
129256 +
129257 +#if BUILDING_GCC_VERSION <= 4008
129258 +#define ENTRY_BLOCK_PTR_FOR_FN(FN) ENTRY_BLOCK_PTR_FOR_FUNCTION(FN)
129259 +#define EXIT_BLOCK_PTR_FOR_FN(FN) EXIT_BLOCK_PTR_FOR_FUNCTION(FN)
129260 +#define basic_block_info_for_fn(FN) ((FN)->cfg->x_basic_block_info)
129261 +#define n_basic_blocks_for_fn(FN) ((FN)->cfg->x_n_basic_blocks)
129262 +#define n_edges_for_fn(FN) ((FN)->cfg->x_n_edges)
129263 +#define last_basic_block_for_fn(FN) ((FN)->cfg->x_last_basic_block)
129264 +#define label_to_block_map_for_fn(FN) ((FN)->cfg->x_label_to_block_map)
129265 +#define profile_status_for_fn(FN) ((FN)->cfg->x_profile_status)
129266 +#define BASIC_BLOCK_FOR_FN(FN, N) BASIC_BLOCK_FOR_FUNCTION((FN), (N))
129267 +#define NODE_IMPLICIT_ALIAS(node) (node)->same_body_alias
129268 +#define VAR_P(NODE) (TREE_CODE(NODE) == VAR_DECL)
129269 +
129270 +static inline bool tree_fits_shwi_p(const_tree t)
129271 +{
129272 + if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST)
129273 + return false;
129274 +
129275 + if (TREE_INT_CST_HIGH(t) == 0 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) >= 0)
129276 + return true;
129277 +
129278 + if (TREE_INT_CST_HIGH(t) == -1 && (HOST_WIDE_INT)TREE_INT_CST_LOW(t) < 0 && !TYPE_UNSIGNED(TREE_TYPE(t)))
129279 + return true;
129280 +
129281 + return false;
129282 +}
129283 +
129284 +static inline bool tree_fits_uhwi_p(const_tree t)
129285 +{
129286 + if (t == NULL_TREE || TREE_CODE(t) != INTEGER_CST)
129287 + return false;
129288 +
129289 + return TREE_INT_CST_HIGH(t) == 0;
129290 +}
129291 +
129292 +static inline HOST_WIDE_INT tree_to_shwi(const_tree t)
129293 +{
129294 + gcc_assert(tree_fits_shwi_p(t));
129295 + return TREE_INT_CST_LOW(t);
129296 +}
129297 +
129298 +static inline unsigned HOST_WIDE_INT tree_to_uhwi(const_tree t)
129299 +{
129300 + gcc_assert(tree_fits_uhwi_p(t));
129301 + return TREE_INT_CST_LOW(t);
129302 +}
129303 +
129304 +static inline const char *get_tree_code_name(enum tree_code code)
129305 +{
129306 + gcc_assert(code < MAX_TREE_CODES);
129307 + return tree_code_name[code];
129308 +}
129309 +
129310 +#define ipa_remove_stmt_references(cnode, stmt)
129311 +
129312 +typedef union gimple_statement_d gasm;
129313 +typedef union gimple_statement_d gassign;
129314 +typedef union gimple_statement_d gcall;
129315 +typedef union gimple_statement_d gcond;
129316 +typedef union gimple_statement_d gdebug;
129317 +typedef union gimple_statement_d gphi;
129318 +typedef union gimple_statement_d greturn;
129319 +
129320 +static inline gasm *as_a_gasm(gimple stmt)
129321 +{
129322 + return stmt;
129323 +}
129324 +
129325 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
129326 +{
129327 + return stmt;
129328 +}
129329 +
129330 +static inline gassign *as_a_gassign(gimple stmt)
129331 +{
129332 + return stmt;
129333 +}
129334 +
129335 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
129336 +{
129337 + return stmt;
129338 +}
129339 +
129340 +static inline gcall *as_a_gcall(gimple stmt)
129341 +{
129342 + return stmt;
129343 +}
129344 +
129345 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
129346 +{
129347 + return stmt;
129348 +}
129349 +
129350 +static inline gcond *as_a_gcond(gimple stmt)
129351 +{
129352 + return stmt;
129353 +}
129354 +
129355 +static inline const gcond *as_a_const_gcond(const_gimple stmt)
129356 +{
129357 + return stmt;
129358 +}
129359 +
129360 +static inline gdebug *as_a_gdebug(gimple stmt)
129361 +{
129362 + return stmt;
129363 +}
129364 +
129365 +static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
129366 +{
129367 + return stmt;
129368 +}
129369 +
129370 +static inline gphi *as_a_gphi(gimple stmt)
129371 +{
129372 + return stmt;
129373 +}
129374 +
129375 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
129376 +{
129377 + return stmt;
129378 +}
129379 +
129380 +static inline greturn *as_a_greturn(gimple stmt)
129381 +{
129382 + return stmt;
129383 +}
129384 +
129385 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
129386 +{
129387 + return stmt;
129388 +}
129389 +#endif
129390 +
129391 +#if BUILDING_GCC_VERSION == 4008
129392 +#define NODE_SYMBOL(node) (&(node)->symbol)
129393 +#define NODE_DECL(node) (node)->symbol.decl
129394 +#endif
129395 +
129396 +#if BUILDING_GCC_VERSION >= 4008
129397 +#define add_referenced_var(var)
129398 +#define mark_sym_for_renaming(var)
129399 +#define varpool_mark_needed_node(node)
129400 +#define create_var_ann(var)
129401 +#define TODO_dump_func 0
129402 +#define TODO_dump_cgraph 0
129403 +#endif
129404 +
129405 +#if BUILDING_GCC_VERSION <= 4009
129406 +#define TODO_verify_il 0
129407 +#define AVAIL_INTERPOSABLE AVAIL_OVERWRITABLE
129408 +
129409 +#define section_name_prefix LTO_SECTION_NAME_PREFIX
129410 +#define fatal_error(loc, gmsgid, ...) fatal_error((gmsgid), __VA_ARGS__)
129411 +
129412 +typedef struct rtx_def rtx_insn;
129413 +
129414 +static inline void set_decl_section_name(tree node, const char *value)
129415 +{
129416 + DECL_SECTION_NAME(node) = build_string(strlen(value) + 1, value);
129417 +}
129418 +#endif
129419 +
129420 +#if BUILDING_GCC_VERSION == 4009
129421 +typedef struct gimple_statement_asm gasm;
129422 +typedef struct gimple_statement_base gassign;
129423 +typedef struct gimple_statement_call gcall;
129424 +typedef struct gimple_statement_base gcond;
129425 +typedef struct gimple_statement_base gdebug;
129426 +typedef struct gimple_statement_phi gphi;
129427 +typedef struct gimple_statement_base greturn;
129428 +
129429 +static inline gasm *as_a_gasm(gimple stmt)
129430 +{
129431 + return as_a<gasm>(stmt);
129432 +}
129433 +
129434 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
129435 +{
129436 + return as_a<const gasm>(stmt);
129437 +}
129438 +
129439 +static inline gassign *as_a_gassign(gimple stmt)
129440 +{
129441 + return stmt;
129442 +}
129443 +
129444 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
129445 +{
129446 + return stmt;
129447 +}
129448 +
129449 +static inline gcall *as_a_gcall(gimple stmt)
129450 +{
129451 + return as_a<gcall>(stmt);
129452 +}
129453 +
129454 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
129455 +{
129456 + return as_a<const gcall>(stmt);
129457 +}
129458 +
129459 +static inline gcond *as_a_gcond(gimple stmt)
129460 +{
129461 + return stmt;
129462 +}
129463 +
129464 +static inline const gcond *as_a_const_gcond(const_gimple stmt)
129465 +{
129466 + return stmt;
129467 +}
129468 +
129469 +static inline gdebug *as_a_gdebug(gimple stmt)
129470 +{
129471 + return stmt;
129472 +}
129473 +
129474 +static inline const gdebug *as_a_const_gdebug(const_gimple stmt)
129475 +{
129476 + return stmt;
129477 +}
129478 +
129479 +static inline gphi *as_a_gphi(gimple stmt)
129480 +{
129481 + return as_a<gphi>(stmt);
129482 +}
129483 +
129484 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
129485 +{
129486 + return as_a<const gphi>(stmt);
129487 +}
129488 +
129489 +static inline greturn *as_a_greturn(gimple stmt)
129490 +{
129491 + return stmt;
129492 +}
129493 +
129494 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
129495 +{
129496 + return stmt;
129497 +}
129498 +#endif
129499 +
129500 +#if BUILDING_GCC_VERSION >= 4009
129501 +#define TODO_ggc_collect 0
129502 +#define NODE_SYMBOL(node) (node)
129503 +#define NODE_DECL(node) (node)->decl
129504 +#define cgraph_node_name(node) (node)->name()
129505 +#define NODE_IMPLICIT_ALIAS(node) (node)->cpp_implicit_alias
129506 +#endif
129507 +
129508 +#if BUILDING_GCC_VERSION >= 5000
129509 +#define TODO_verify_ssa TODO_verify_il
129510 +#define TODO_verify_flow TODO_verify_il
129511 +#define TODO_verify_stmts TODO_verify_il
129512 +#define TODO_verify_rtl_sharing TODO_verify_il
129513 +
129514 +//#define TREE_INT_CST_HIGH(NODE) ({ TREE_INT_CST_EXT_NUNITS(NODE) > 1 ? (unsigned HOST_WIDE_INT)TREE_INT_CST_ELT(NODE, 1) : 0; })
129515 +
129516 +#define INSN_DELETED_P(insn) (insn)->deleted()
129517 +
129518 +// symtab/cgraph related
129519 +#define debug_cgraph_node(node) (node)->debug()
129520 +#define cgraph_get_node(decl) cgraph_node::get(decl)
129521 +#define cgraph_get_create_node(decl) cgraph_node::get_create(decl)
129522 +#define cgraph_n_nodes symtab->cgraph_count
129523 +#define cgraph_max_uid symtab->cgraph_max_uid
129524 +#define varpool_get_node(decl) varpool_node::get(decl)
129525 +
129526 +#define cgraph_create_edge(caller, callee, call_stmt, count, freq, nest) \
129527 + (caller)->create_edge((callee), (call_stmt), (count), (freq))
129528 +#define cgraph_create_edge_including_clones(caller, callee, old_call_stmt, call_stmt, count, freq, nest, reason) \
129529 + (caller)->create_edge_including_clones((callee), (old_call_stmt), (call_stmt), (count), (freq), (reason))
129530 +
129531 +typedef struct cgraph_node *cgraph_node_ptr;
129532 +typedef struct cgraph_edge *cgraph_edge_p;
129533 +typedef struct varpool_node *varpool_node_ptr;
129534 +
129535 +static inline void change_decl_assembler_name(tree decl, tree name)
129536 +{
129537 + symtab->change_decl_assembler_name(decl, name);
129538 +}
129539 +
129540 +static inline void varpool_finalize_decl(tree decl)
129541 +{
129542 + varpool_node::finalize_decl(decl);
129543 +}
129544 +
129545 +static inline void varpool_add_new_variable(tree decl)
129546 +{
129547 + varpool_node::add(decl);
129548 +}
129549 +
129550 +static inline unsigned int rebuild_cgraph_edges(void)
129551 +{
129552 + return cgraph_edge::rebuild_edges();
129553 +}
129554 +
129555 +static inline cgraph_node_ptr cgraph_function_node(cgraph_node_ptr node, enum availability *availability)
129556 +{
129557 + return node->function_symbol(availability);
129558 +}
129559 +
129560 +static inline cgraph_node_ptr cgraph_function_or_thunk_node(cgraph_node_ptr node, enum availability *availability = NULL)
129561 +{
129562 + return node->ultimate_alias_target(availability);
129563 +}
129564 +
129565 +static inline bool cgraph_only_called_directly_p(cgraph_node_ptr node)
129566 +{
129567 + return node->only_called_directly_p();
129568 +}
129569 +
129570 +static inline enum availability cgraph_function_body_availability(cgraph_node_ptr node)
129571 +{
129572 + return node->get_availability();
129573 +}
129574 +
129575 +static inline cgraph_node_ptr cgraph_alias_target(cgraph_node_ptr node)
129576 +{
129577 + return node->get_alias_target();
129578 +}
129579 +
129580 +static inline struct cgraph_node_hook_list *cgraph_add_function_insertion_hook(cgraph_node_hook hook, void *data)
129581 +{
129582 + return symtab->add_cgraph_insertion_hook(hook, data);
129583 +}
129584 +
129585 +static inline void cgraph_remove_function_insertion_hook(struct cgraph_node_hook_list *entry)
129586 +{
129587 + symtab->remove_cgraph_insertion_hook(entry);
129588 +}
129589 +
129590 +static inline struct cgraph_node_hook_list *cgraph_add_node_removal_hook(cgraph_node_hook hook, void *data)
129591 +{
129592 + return symtab->add_cgraph_removal_hook(hook, data);
129593 +}
129594 +
129595 +static inline void cgraph_remove_node_removal_hook(struct cgraph_node_hook_list *entry)
129596 +{
129597 + symtab->remove_cgraph_removal_hook(entry);
129598 +}
129599 +
129600 +static inline struct cgraph_2node_hook_list *cgraph_add_node_duplication_hook(cgraph_2node_hook hook, void *data)
129601 +{
129602 + return symtab->add_cgraph_duplication_hook(hook, data);
129603 +}
129604 +
129605 +static inline void cgraph_remove_node_duplication_hook(struct cgraph_2node_hook_list *entry)
129606 +{
129607 + symtab->remove_cgraph_duplication_hook(entry);
129608 +}
129609 +
129610 +// gimple related
129611 +static inline gimple gimple_build_assign_with_ops(enum tree_code subcode, tree lhs, tree op1, tree op2 MEM_STAT_DECL)
129612 +{
129613 + return gimple_build_assign(lhs, subcode, op1, op2 PASS_MEM_STAT);
129614 +}
129615 +
129616 +template <>
129617 +template <>
129618 +inline bool is_a_helper<const gassign *>::test(const_gimple gs)
129619 +{
129620 + return gs->code == GIMPLE_ASSIGN;
129621 +}
129622 +
129623 +template <>
129624 +template <>
129625 +inline bool is_a_helper<const greturn *>::test(const_gimple gs)
129626 +{
129627 + return gs->code == GIMPLE_RETURN;
129628 +}
129629 +
129630 +static inline gasm *as_a_gasm(gimple stmt)
129631 +{
129632 + return as_a<gasm *>(stmt);
129633 +}
129634 +
129635 +static inline const gasm *as_a_const_gasm(const_gimple stmt)
129636 +{
129637 + return as_a<const gasm *>(stmt);
129638 +}
129639 +
129640 +static inline gassign *as_a_gassign(gimple stmt)
129641 +{
129642 + return as_a<gassign *>(stmt);
129643 +}
129644 +
129645 +static inline const gassign *as_a_const_gassign(const_gimple stmt)
129646 +{
129647 + return as_a<const gassign *>(stmt);
129648 +}
129649 +
129650 +static inline gcall *as_a_gcall(gimple stmt)
129651 +{
129652 + return as_a<gcall *>(stmt);
129653 +}
129654 +
129655 +static inline const gcall *as_a_const_gcall(const_gimple stmt)
129656 +{
129657 + return as_a<const gcall *>(stmt);
129658 +}
129659 +
129660 +static inline gphi *as_a_gphi(gimple stmt)
129661 +{
129662 + return as_a<gphi *>(stmt);
129663 +}
129664 +
129665 +static inline const gphi *as_a_const_gphi(const_gimple stmt)
129666 +{
129667 + return as_a<const gphi *>(stmt);
129668 +}
129669 +
129670 +static inline greturn *as_a_greturn(gimple stmt)
129671 +{
129672 + return as_a<greturn *>(stmt);
129673 +}
129674 +
129675 +static inline const greturn *as_a_const_greturn(const_gimple stmt)
129676 +{
129677 + return as_a<const greturn *>(stmt);
129678 +}
129679 +
129680 +// IPA/LTO related
129681 +#define ipa_ref_list_referring_iterate(L,I,P) (L)->referring.iterate((I), &(P))
129682 +#define ipa_ref_list_reference_iterate(L,I,P) (L)->reference.iterate((I), &(P))
129683 +
129684 +static inline cgraph_node_ptr ipa_ref_referring_node(struct ipa_ref *ref)
129685 +{
129686 + return dyn_cast<cgraph_node_ptr>(ref->referring);
129687 +}
129688 +
129689 +static inline void ipa_remove_stmt_references(symtab_node *referring_node, gimple stmt)
129690 +{
129691 + referring_node->remove_stmt_references(stmt);
129692 +}
129693 +#endif
129694 +
129695 +#endif
129696 diff --git a/tools/gcc/gen-random-seed.sh b/tools/gcc/gen-random-seed.sh
129697 new file mode 100644
129698 index 0000000..7514850
129699 --- /dev/null
129700 +++ b/tools/gcc/gen-random-seed.sh
129701 @@ -0,0 +1,8 @@
129702 +#!/bin/sh
129703 +
129704 +if [ ! -f "$1" ]; then
129705 + SEED=`od -A n -t x8 -N 32 /dev/urandom | tr -d ' \n'`
129706 + echo "const char *randstruct_seed = \"$SEED\";" > "$1"
129707 + HASH=`echo -n "$SEED" | sha256sum | cut -d" " -f1 | tr -d ' \n'`
129708 + echo "#define RANDSTRUCT_HASHED_SEED \"$HASH\"" > "$2"
129709 +fi
129710 diff --git a/tools/gcc/initify_plugin.c b/tools/gcc/initify_plugin.c
129711 new file mode 100644
129712 index 0000000..2abfe4b
129713 --- /dev/null
129714 +++ b/tools/gcc/initify_plugin.c
129715 @@ -0,0 +1,552 @@
129716 +/*
129717 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
129718 + * Licensed under the GPL v2, or (at your option) v3
129719 + *
129720 + * Homepage:
129721 + * https://github.com/ephox-gcc-plugins/initify
129722 + *
129723 + * Move string constants (__func__ and function string arguments marked by the nocapture attribute)
129724 + * only referenced in __init/__exit functions to __initconst/__exitconst sections.
129725 + *
129726 + * Usage:
129727 + * $ make
129728 + * $ make run
129729 + */
129730 +
129731 +#include "gcc-common.h"
129732 +
129733 +int plugin_is_GPL_compatible;
129734 +
129735 +static struct plugin_info initify_plugin_info = {
129736 + .version = "20151113",
129737 + .help = "initify_plugin\n",
129738 +};
129739 +
129740 +/* nocapture attribute:
129741 + * * to mark nocapture function arguments. If used on a vararg argument it applies to all of them
129742 + * that have no other uses.
129743 + * * attribute value 0 is ignored to allow reusing print attribute arguments
129744 + */
129745 +static tree handle_nocapture_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
129746 +{
129747 + tree orig_attr, arg;
129748 +
129749 + *no_add_attrs = true;
129750 + switch (TREE_CODE(*node)) {
129751 + case FUNCTION_DECL:
129752 + case FUNCTION_TYPE:
129753 + case METHOD_TYPE:
129754 + break;
129755 + case TYPE_DECL: {
129756 + const_tree fntype = TREE_TYPE(*node);
129757 +
129758 + if (TREE_CODE(fntype) == POINTER_TYPE)
129759 + fntype = TREE_TYPE(fntype);
129760 + if (TREE_CODE(fntype) == FUNCTION_TYPE || TREE_CODE(fntype) == METHOD_TYPE)
129761 + break;
129762 + // FALLTHROUGH
129763 + }
129764 + default:
129765 + debug_tree(*node);
129766 + error("%s: %qE attribute only applies to functions", __func__, name);
129767 + return NULL_TREE;
129768 + }
129769 +
129770 + for (arg = args; arg; arg = TREE_CHAIN(arg)) {
129771 + tree position = TREE_VALUE(arg);
129772 +
129773 + if (TREE_CODE(position) != INTEGER_CST) {
129774 + error("%qE parameter of the %qE attribute isn't an integer (fn: %qE)", position, name, *node);
129775 + return NULL_TREE;
129776 + }
129777 +
129778 + if (tree_int_cst_lt(position, integer_minus_one_node)) {
129779 + error("%qE parameter of the %qE attribute less than 0 (fn: %qE)", position, name, *node);
129780 + return NULL_TREE;
129781 + }
129782 + }
129783 +
129784 + orig_attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(*node));
129785 + if (orig_attr)
129786 + chainon(TREE_VALUE(orig_attr), args);
129787 + else
129788 + *no_add_attrs = false;
129789 +
129790 + return NULL_TREE;
129791 +}
129792 +
129793 +static struct attribute_spec nocapture_attr = {
129794 + .name = "nocapture",
129795 + .min_length = 1,
129796 + .max_length = -1,
129797 + .decl_required = true,
129798 + .type_required = false,
129799 + .function_type_required = false,
129800 + .handler = handle_nocapture_attribute,
129801 +#if BUILDING_GCC_VERSION >= 4007
129802 + .affects_type_identity = false
129803 +#endif
129804 +};
129805 +
129806 +static void register_attributes(void __unused *event_data, void __unused *data)
129807 +{
129808 + register_attribute(&nocapture_attr);
129809 +}
129810 +
129811 +static const char *get_init_exit_section(const_tree decl)
129812 +{
129813 + const_tree section;
129814 + tree attr_value;
129815 +
129816 + section = lookup_attribute("section", DECL_ATTRIBUTES(decl));
129817 + if (!section)
129818 + return NULL;
129819 +
129820 + gcc_assert(TREE_VALUE(section));
129821 + for (attr_value = TREE_VALUE(section); attr_value; attr_value = TREE_CHAIN(attr_value)) {
129822 + const char *str = TREE_STRING_POINTER(TREE_VALUE(attr_value));
129823 +
129824 + if (!strncmp(str, ".init.", 6))
129825 + return str;
129826 + if (!strncmp(str, ".exit.", 6))
129827 + return str;
129828 + }
129829 +
129830 + return NULL;
129831 +}
129832 +
129833 +static tree get_string_cst(tree var)
129834 +{
129835 + if (var == NULL_TREE)
129836 + return NULL_TREE;
129837 +
129838 + if (TREE_CODE(var) == STRING_CST)
129839 + return var;
129840 +
129841 + switch (TREE_CODE_CLASS(TREE_CODE(var))) {
129842 + case tcc_expression:
129843 + case tcc_reference: {
129844 + int i;
129845 +
129846 + for (i = 0; i < TREE_OPERAND_LENGTH(var); i++) {
129847 + tree ret = get_string_cst(TREE_OPERAND(var, i));
129848 + if (ret != NULL_TREE)
129849 + return ret;
129850 + }
129851 + break;
129852 + }
129853 + default:
129854 + break;
129855 + }
129856 + return NULL_TREE;
129857 +}
129858 +
129859 +static bool set_init_exit_section(tree decl, bool initexit)
129860 +{
129861 + const char *str;
129862 +
129863 + gcc_assert(DECL_P(decl));
129864 +
129865 + str = get_init_exit_section(decl);
129866 + if (str)
129867 + return false;
129868 +
129869 + if (initexit)
129870 + set_decl_section_name(decl, ".init.rodata.str");
129871 + else
129872 + set_decl_section_name(decl, ".exit.rodata.str");
129873 + return true;
129874 +}
129875 +
129876 +static bool is_syscall(const_tree fn)
129877 +{
129878 + if (!strncmp(DECL_NAME_POINTER(fn), "sys_", 4))
129879 + return true;
129880 +
129881 + if (!strncmp(DECL_NAME_POINTER(fn), "sys32_", 6))
129882 + return true;
129883 +
129884 + if (!strncmp(DECL_NAME_POINTER(fn), "compat_sys_", 11))
129885 + return true;
129886 +
129887 + return false;
129888 +}
129889 +
129890 +static bool is_nocapture_param(const gcall *stmt, int fn_arg_count)
129891 +{
129892 + const_tree attr, attr_val;
129893 + int fntype_arg_len;
129894 + const_tree fndecl = gimple_call_fndecl(stmt);
129895 +
129896 + gcc_assert(DECL_ABSTRACT_ORIGIN(fndecl) == NULL_TREE);
129897 +
129898 + if (is_syscall(fndecl))
129899 + return true;
129900 +
129901 + fntype_arg_len = type_num_arguments(TREE_TYPE(fndecl));
129902 + attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
129903 + if (attr == NULL_TREE)
129904 + return false;
129905 +
129906 + for (attr_val = TREE_VALUE(attr); attr_val; attr_val = TREE_CHAIN(attr_val)) {
129907 + int attr_arg_val = (int)tree_to_shwi(TREE_VALUE(attr_val));
129908 +
129909 + if (attr_arg_val == -1)
129910 + return true;
129911 + if (attr_arg_val == fn_arg_count)
129912 + return true;
129913 + if (attr_arg_val > fntype_arg_len && fn_arg_count >= attr_arg_val)
129914 + return true;
129915 + }
129916 +
129917 + return false;
129918 +}
129919 +
129920 +static bool compare_vardecls(const_tree vardecl, tree op)
129921 +{
129922 + tree decl, offset;
129923 + HOST_WIDE_INT bitsize, bitpos;
129924 + enum machine_mode mode;
129925 + int unsignedp, volatilep;
129926 + enum tree_code code = TREE_CODE(op);
129927 +
129928 + if (TREE_CODE_CLASS(code) == tcc_exceptional && code != SSA_NAME)
129929 + return false;
129930 +
129931 + if (code == ADDR_EXPR)
129932 + op = TREE_OPERAND(op, 0);
129933 +
129934 + if (TREE_CODE(op) == COMPONENT_REF)
129935 + return false;
129936 +
129937 + decl = get_inner_reference(op, &bitsize, &bitpos, &offset, &mode, &unsignedp, &volatilep, true);
129938 +
129939 + switch (TREE_CODE_CLASS(TREE_CODE(decl))) {
129940 + case tcc_constant:
129941 + case tcc_statement:
129942 + return false;
129943 + default:
129944 + break;
129945 + }
129946 +
129947 + switch (TREE_CODE(decl)) {
129948 +#if BUILDING_GCC_VERSION >= 4006
129949 + case MEM_REF:
129950 +#endif
129951 + case TARGET_MEM_REF:
129952 + decl = TREE_OPERAND(decl, 0);
129953 + break;
129954 + default:
129955 + break;
129956 + }
129957 +
129958 + if (TREE_CODE(decl) == ADDR_EXPR)
129959 + decl = TREE_OPERAND(decl, 0);
129960 + if (TREE_CODE(decl) == SSA_NAME)
129961 + decl = SSA_NAME_VAR(decl);
129962 + if (decl == NULL_TREE)
129963 + return false;
129964 +
129965 + if (!DECL_P(decl)) {
129966 + debug_tree(op);
129967 + debug_tree(decl);
129968 + gcc_unreachable();
129969 + }
129970 +
129971 + if (!VAR_P(decl))
129972 + return false;
129973 + if (!DECL_NAME(decl))
129974 + return false;
129975 +
129976 + if (decl != vardecl && strcmp(DECL_NAME_POINTER(decl), DECL_NAME_POINTER(vardecl)))
129977 + return false;
129978 +
129979 + gcc_assert(TREE_CODE(op) != SSA_NAME);
129980 + return true;
129981 +}
129982 +
129983 +static bool search_capture_use(const_tree vardecl, gimple stmt)
129984 +{
129985 + unsigned int i;
129986 +
129987 + for (i = 0; i < gimple_num_ops(stmt); i++) {
129988 + unsigned int arg_count;
129989 + const_tree fndecl;
129990 + tree op = *(gimple_op_ptr(stmt, i));
129991 +
129992 + if (op == NULL_TREE)
129993 + continue;
129994 + if (is_gimple_constant(op))
129995 + continue;
129996 +
129997 + if (!compare_vardecls(vardecl, op))
129998 + continue;
129999 +
130000 + if (!is_gimple_call(stmt))
130001 + return true;
130002 +
130003 + // return, fndecl
130004 + gcc_assert(i >= 3);
130005 + arg_count = i - 2;
130006 + if (is_nocapture_param(as_a_const_gcall(stmt), (int)arg_count))
130007 + continue;
130008 +
130009 + fndecl = gimple_call_fndecl(stmt);
130010 + gcc_assert(fndecl != NULL_TREE);
130011 +// inform(gimple_location(stmt), "nocapture attribute is missing (fn: %E, arg: %u)\n", fndecl, arg_count);
130012 + return true;
130013 +
130014 + }
130015 + return false;
130016 +}
130017 +
130018 +static bool has_capture_use_local_var(const_tree vardecl)
130019 +{
130020 + basic_block bb;
130021 +
130022 + FOR_ALL_BB_FN(bb, cfun) {
130023 + gimple_stmt_iterator gsi;
130024 +
130025 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
130026 + if (search_capture_use(vardecl, gsi_stmt(gsi)))
130027 + return true;
130028 + }
130029 + }
130030 +
130031 + return false;
130032 +}
130033 +
130034 +static void search_local_strs(bool initexit)
130035 +{
130036 + unsigned int i;
130037 + tree var;
130038 +
130039 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
130040 + tree str, init_val = DECL_INITIAL(var);
130041 +
130042 + if (init_val == NULL_TREE || init_val == error_mark_node)
130043 + continue;
130044 + // !!! str local vars
130045 + if (strcmp(DECL_NAME_POINTER(var), "__func__"))
130046 + continue;
130047 +
130048 + if (has_capture_use_local_var(var))
130049 + continue;
130050 +
130051 + str = get_string_cst(init_val);
130052 + gcc_assert(str);
130053 +
130054 + if (set_init_exit_section(var, initexit)) {
130055 +// inform(DECL_SOURCE_LOCATION(var), "initified local var: %s: %s", DECL_NAME_POINTER(current_function_decl), TREE_STRING_POINTER(str));
130056 + }
130057 + }
130058 +}
130059 +
130060 +static tree create_tmp_assign(gcall *stmt, unsigned int num)
130061 +{
130062 + tree str, type, decl, arg = gimple_call_arg(stmt, num);
130063 +
130064 + str = get_string_cst(arg);
130065 + decl = build_decl(DECL_SOURCE_LOCATION(current_function_decl), VAR_DECL, create_tmp_var_name("cicus"), TREE_TYPE(str));
130066 +
130067 + type = TREE_TYPE(TREE_TYPE(decl));
130068 + type = build_qualified_type(type, TYPE_QUALS(type) | TYPE_QUAL_CONST);
130069 + TYPE_READONLY(type) = 1;
130070 + TREE_PUBLIC(type) = 0;
130071 +
130072 + DECL_INITIAL(decl) = str;
130073 + DECL_CONTEXT(decl) = current_function_decl;
130074 + DECL_ARTIFICIAL(decl) = 1;
130075 +
130076 + TREE_STATIC(decl) = 1;
130077 + TREE_READONLY(decl) = 1;
130078 + TREE_ADDRESSABLE(decl) = 1;
130079 + TREE_USED(decl) = 1;
130080 +
130081 + add_referenced_var(decl);
130082 + add_local_decl(cfun, decl);
130083 +
130084 + varpool_add_new_variable(decl);
130085 + varpool_mark_needed_node(varpool_node(decl));
130086 +
130087 + DECL_CHAIN(decl) = BLOCK_VARS(DECL_INITIAL(current_function_decl));
130088 + BLOCK_VARS(DECL_INITIAL (current_function_decl)) = decl;
130089 +
130090 + decl = build_fold_addr_expr_loc(DECL_SOURCE_LOCATION(current_function_decl), decl);
130091 + gimple_call_set_arg(stmt, num, decl);
130092 + update_stmt(stmt);
130093 +
130094 + return TREE_OPERAND(decl, 0);
130095 +}
130096 +
130097 +static void search_str_param(gcall *stmt, bool initexit)
130098 +{
130099 + unsigned int num;
130100 +
130101 + for (num = 0; num < gimple_call_num_args(stmt); num++) {
130102 + tree var, str, arg = gimple_call_arg(stmt, num);
130103 +
130104 + str = get_string_cst(arg);
130105 + if (str == NULL_TREE)
130106 + continue;
130107 +
130108 + if (!is_nocapture_param(stmt, num + 1))
130109 + continue;
130110 +
130111 + var = create_tmp_assign(stmt, num);
130112 + if (set_init_exit_section(var, initexit)) {
130113 +// inform(gimple_location(stmt), "initified function arg: %E: [%E]", current_function_decl, str);
130114 + }
130115 + }
130116 +}
130117 +
130118 +static bool has_nocapture_param(const gcall *stmt)
130119 +{
130120 + const_tree attr, fndecl = gimple_call_fndecl(stmt);
130121 +
130122 + if (fndecl == NULL_TREE)
130123 + return false;
130124 +
130125 + if (is_syscall(fndecl))
130126 + return true;
130127 +
130128 + attr = lookup_attribute("nocapture", DECL_ATTRIBUTES(fndecl));
130129 + return attr != NULL_TREE;
130130 +}
130131 +
130132 +static void search_const_strs(bool initexit)
130133 +{
130134 + basic_block bb;
130135 +
130136 + FOR_ALL_BB_FN(bb, cfun) {
130137 + gimple_stmt_iterator gsi;
130138 +
130139 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
130140 + gcall *call_stmt;
130141 + gimple stmt = gsi_stmt(gsi);
130142 +
130143 + if (!is_gimple_call(stmt))
130144 + continue;
130145 +
130146 + call_stmt = as_a_gcall(stmt);
130147 + if (has_nocapture_param(call_stmt))
130148 + search_str_param(call_stmt, initexit);
130149 + }
130150 + }
130151 +}
130152 +
130153 +static unsigned int handle_function(void)
130154 +{
130155 + bool initexit;
130156 + const char *section = get_init_exit_section(current_function_decl);
130157 +
130158 + if (!section)
130159 + return 0;
130160 +
130161 + initexit = !strncmp(section, ".init.", 6);
130162 + search_local_strs(initexit);
130163 + search_const_strs(initexit);
130164 +
130165 + return 0;
130166 +}
130167 +
130168 +#if BUILDING_GCC_VERSION >= 4009
130169 +namespace {
130170 +static const struct pass_data initify_plugin_pass_data = {
130171 +#else
130172 +static struct gimple_opt_pass initify_plugin_pass = {
130173 + .pass = {
130174 +#endif
130175 + .type = GIMPLE_PASS,
130176 + .name = "initify_plugin",
130177 +#if BUILDING_GCC_VERSION >= 4008
130178 + .optinfo_flags = OPTGROUP_NONE,
130179 +#endif
130180 +#if BUILDING_GCC_VERSION >= 5000
130181 +#elif BUILDING_GCC_VERSION >= 4009
130182 + .has_gate = false,
130183 + .has_execute = true,
130184 +#else
130185 + .gate = NULL,
130186 + .execute = handle_function,
130187 + .sub = NULL,
130188 + .next = NULL,
130189 + .static_pass_number = 0,
130190 +#endif
130191 + .tv_id = TV_NONE,
130192 + .properties_required = 0,
130193 + .properties_provided = 0,
130194 + .properties_destroyed = 0,
130195 + .todo_flags_start = 0,
130196 + .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
130197 +#if BUILDING_GCC_VERSION < 4009
130198 + }
130199 +#endif
130200 +};
130201 +
130202 +#if BUILDING_GCC_VERSION >= 4009
130203 +class initify_plugin_pass : public gimple_opt_pass {
130204 +public:
130205 + initify_plugin_pass() : gimple_opt_pass(initify_plugin_pass_data, g) {}
130206 +#if BUILDING_GCC_VERSION >= 5000
130207 + virtual unsigned int execute(function *) { return handle_function(); }
130208 +#else
130209 + unsigned int execute() { return handle_function(); }
130210 +#endif
130211 +};
130212 +}
130213 +
130214 +static struct opt_pass *make_initify_plugin_pass(void)
130215 +{
130216 + return new initify_plugin_pass();
130217 +}
130218 +#else
130219 +static struct opt_pass *make_initify_plugin_pass(void)
130220 +{
130221 + return &initify_plugin_pass.pass;
130222 +}
130223 +#endif
130224 +
130225 +static unsigned int (*old_section_type_flags)(tree decl, const char *name, int reloc);
130226 +
130227 +static unsigned int initify_section_type_flags(tree decl, const char *name, int reloc)
130228 +{
130229 + if (!strcmp(name, ".init.rodata.str") || !strcmp(name, ".exit.rodata.str")) {
130230 + gcc_assert(TREE_CODE(decl) == VAR_DECL);
130231 + gcc_assert(DECL_INITIAL(decl));
130232 + gcc_assert(TREE_CODE(DECL_INITIAL(decl)) == STRING_CST);
130233 +
130234 + return 1 | SECTION_MERGE | SECTION_STRINGS;
130235 + }
130236 +
130237 + return old_section_type_flags(decl, name, reloc);
130238 +}
130239 +
130240 +static void initify_start_unit(void __unused *gcc_data, void __unused *user_data)
130241 +{
130242 + old_section_type_flags = targetm.section_type_flags;
130243 + targetm.section_type_flags = initify_section_type_flags;
130244 +}
130245 +
130246 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
130247 +{
130248 + const char * const plugin_name = plugin_info->base_name;
130249 + struct register_pass_info initify_plugin_pass_info;
130250 +
130251 + initify_plugin_pass_info.pass = make_initify_plugin_pass();
130252 + initify_plugin_pass_info.reference_pass_name = "nrv";
130253 + initify_plugin_pass_info.ref_pass_instance_number = 1;
130254 + initify_plugin_pass_info.pos_op = PASS_POS_INSERT_AFTER;
130255 +
130256 + if (!plugin_default_version_check(version, &gcc_version)) {
130257 + error(G_("incompatible gcc/plugin versions"));
130258 + return 1;
130259 + }
130260 +
130261 + register_callback(plugin_name, PLUGIN_INFO, NULL, &initify_plugin_info);
130262 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &initify_plugin_pass_info);
130263 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
130264 + register_callback(plugin_name, PLUGIN_START_UNIT, initify_start_unit, NULL);
130265 +
130266 + return 0;
130267 +}
130268 diff --git a/tools/gcc/kallocstat_plugin.c b/tools/gcc/kallocstat_plugin.c
130269 new file mode 100644
130270 index 0000000..457d54e
130271 --- /dev/null
130272 +++ b/tools/gcc/kallocstat_plugin.c
130273 @@ -0,0 +1,188 @@
130274 +/*
130275 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
130276 + * Licensed under the GPL v2
130277 + *
130278 + * Note: the choice of the license means that the compilation process is
130279 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
130280 + * but for the kernel it doesn't matter since it doesn't link against
130281 + * any of the gcc libraries
130282 + *
130283 + * gcc plugin to find the distribution of k*alloc sizes
130284 + *
130285 + * TODO:
130286 + *
130287 + * BUGS:
130288 + * - none known
130289 + */
130290 +
130291 +#include "gcc-common.h"
130292 +
130293 +int plugin_is_GPL_compatible;
130294 +
130295 +static struct plugin_info kallocstat_plugin_info = {
130296 + .version = "201401260140",
130297 + .help = NULL
130298 +};
130299 +
130300 +static const char * const kalloc_functions[] = {
130301 + "__kmalloc",
130302 + "kmalloc",
130303 + "kmalloc_large",
130304 + "kmalloc_node",
130305 + "kmalloc_order",
130306 + "kmalloc_order_trace",
130307 + "kmalloc_slab",
130308 + "kzalloc",
130309 + "kzalloc_node",
130310 +};
130311 +
130312 +static bool is_kalloc(const char *fnname)
130313 +{
130314 + size_t i;
130315 +
130316 + for (i = 0; i < ARRAY_SIZE(kalloc_functions); i++)
130317 + if (!strcmp(fnname, kalloc_functions[i]))
130318 + return true;
130319 + return false;
130320 +}
130321 +
130322 +static unsigned int execute_kallocstat(void)
130323 +{
130324 + basic_block bb;
130325 +
130326 + // 1. loop through BBs and GIMPLE statements
130327 + FOR_EACH_BB_FN(bb, cfun) {
130328 + gimple_stmt_iterator gsi;
130329 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
130330 + // gimple match:
130331 + tree fndecl, size;
130332 + gimple stmt;
130333 + const char *fnname;
130334 +
130335 + // is it a call
130336 + stmt = gsi_stmt(gsi);
130337 + if (!is_gimple_call(stmt))
130338 + continue;
130339 + fndecl = gimple_call_fndecl(stmt);
130340 + if (fndecl == NULL_TREE)
130341 + continue;
130342 + if (TREE_CODE(fndecl) != FUNCTION_DECL)
130343 + continue;
130344 +
130345 + // is it a call to k*alloc
130346 + fnname = DECL_NAME_POINTER(fndecl);
130347 + if (!is_kalloc(fnname))
130348 + continue;
130349 +
130350 + // is the size arg const or the result of a simple const assignment
130351 + size = gimple_call_arg(stmt, 0);
130352 + while (true) {
130353 + expanded_location xloc;
130354 + size_t size_val;
130355 +
130356 + if (TREE_CONSTANT(size)) {
130357 + xloc = expand_location(gimple_location(stmt));
130358 + if (!xloc.file)
130359 + xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
130360 + size_val = TREE_INT_CST_LOW(size);
130361 + fprintf(stderr, "kallocsize: %8zu %8zx %s %s:%u\n", size_val, size_val, fnname, xloc.file, xloc.line);
130362 + break;
130363 + }
130364 +
130365 + if (TREE_CODE(size) != SSA_NAME)
130366 + break;
130367 + stmt = SSA_NAME_DEF_STMT(size);
130368 +//debug_gimple_stmt(stmt);
130369 +//debug_tree(size);
130370 + if (!stmt || !is_gimple_assign(stmt))
130371 + break;
130372 + if (gimple_num_ops(stmt) != 2)
130373 + break;
130374 + size = gimple_assign_rhs1(stmt);
130375 + }
130376 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
130377 +//debug_tree(gimple_call_fn(call_stmt));
130378 +//print_node(stderr, "pax", fndecl, 4);
130379 + }
130380 + }
130381 +
130382 + return 0;
130383 +}
130384 +
130385 +#if BUILDING_GCC_VERSION >= 4009
130386 +namespace {
130387 +static const struct pass_data kallocstat_pass_data = {
130388 +#else
130389 +static struct gimple_opt_pass kallocstat_pass = {
130390 + .pass = {
130391 +#endif
130392 + .type = GIMPLE_PASS,
130393 + .name = "kallocstat",
130394 +#if BUILDING_GCC_VERSION >= 4008
130395 + .optinfo_flags = OPTGROUP_NONE,
130396 +#endif
130397 +#if BUILDING_GCC_VERSION >= 5000
130398 +#elif BUILDING_GCC_VERSION == 4009
130399 + .has_gate = false,
130400 + .has_execute = true,
130401 +#else
130402 + .gate = NULL,
130403 + .execute = execute_kallocstat,
130404 + .sub = NULL,
130405 + .next = NULL,
130406 + .static_pass_number = 0,
130407 +#endif
130408 + .tv_id = TV_NONE,
130409 + .properties_required = 0,
130410 + .properties_provided = 0,
130411 + .properties_destroyed = 0,
130412 + .todo_flags_start = 0,
130413 + .todo_flags_finish = 0
130414 +#if BUILDING_GCC_VERSION < 4009
130415 + }
130416 +#endif
130417 +};
130418 +
130419 +#if BUILDING_GCC_VERSION >= 4009
130420 +class kallocstat_pass : public gimple_opt_pass {
130421 +public:
130422 + kallocstat_pass() : gimple_opt_pass(kallocstat_pass_data, g) {}
130423 +#if BUILDING_GCC_VERSION >= 5000
130424 + virtual unsigned int execute(function *) { return execute_kallocstat(); }
130425 +#else
130426 + unsigned int execute() { return execute_kallocstat(); }
130427 +#endif
130428 +};
130429 +}
130430 +
130431 +static opt_pass *make_kallocstat_pass(void)
130432 +{
130433 + return new kallocstat_pass();
130434 +}
130435 +#else
130436 +static struct opt_pass *make_kallocstat_pass(void)
130437 +{
130438 + return &kallocstat_pass.pass;
130439 +}
130440 +#endif
130441 +
130442 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
130443 +{
130444 + const char * const plugin_name = plugin_info->base_name;
130445 + struct register_pass_info kallocstat_pass_info;
130446 +
130447 + kallocstat_pass_info.pass = make_kallocstat_pass();
130448 + kallocstat_pass_info.reference_pass_name = "ssa";
130449 + kallocstat_pass_info.ref_pass_instance_number = 1;
130450 + kallocstat_pass_info.pos_op = PASS_POS_INSERT_AFTER;
130451 +
130452 + if (!plugin_default_version_check(version, &gcc_version)) {
130453 + error(G_("incompatible gcc/plugin versions"));
130454 + return 1;
130455 + }
130456 +
130457 + register_callback(plugin_name, PLUGIN_INFO, NULL, &kallocstat_plugin_info);
130458 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kallocstat_pass_info);
130459 +
130460 + return 0;
130461 +}
130462 diff --git a/tools/gcc/kernexec_plugin.c b/tools/gcc/kernexec_plugin.c
130463 new file mode 100644
130464 index 0000000..4838c8a
130465 --- /dev/null
130466 +++ b/tools/gcc/kernexec_plugin.c
130467 @@ -0,0 +1,551 @@
130468 +/*
130469 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
130470 + * Licensed under the GPL v2
130471 + *
130472 + * Note: the choice of the license means that the compilation process is
130473 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
130474 + * but for the kernel it doesn't matter since it doesn't link against
130475 + * any of the gcc libraries
130476 + *
130477 + * gcc plugin to make KERNEXEC/amd64 almost as good as it is on i386
130478 + *
130479 + * TODO:
130480 + *
130481 + * BUGS:
130482 + * - none known
130483 + */
130484 +
130485 +#include "gcc-common.h"
130486 +
130487 +int plugin_is_GPL_compatible;
130488 +
130489 +static struct plugin_info kernexec_plugin_info = {
130490 + .version = "201401260140",
130491 + .help = "method=[bts|or]\tinstrumentation method\n"
130492 +};
130493 +
130494 +static void (*kernexec_instrument_fptr)(gimple_stmt_iterator *);
130495 +static void (*kernexec_instrument_retaddr)(rtx);
130496 +
130497 +/*
130498 + * add special KERNEXEC instrumentation: reload %r12 after it has been clobbered
130499 + */
130500 +static void kernexec_reload_fptr_mask(gimple_stmt_iterator *gsi)
130501 +{
130502 + gimple stmt;
130503 + gasm *asm_movabs_stmt;
130504 +
130505 + // build asm volatile("movabs $0x8000000000000000, %%r12\n\t" : : : );
130506 + stmt = gimple_build_asm_vec("movabs $0x8000000000000000, %%r12\n\t", NULL, NULL, NULL, NULL);
130507 + asm_movabs_stmt = as_a_gasm(stmt);
130508 + gimple_asm_set_volatile(asm_movabs_stmt, true);
130509 + gsi_insert_after(gsi, asm_movabs_stmt, GSI_CONTINUE_LINKING);
130510 + update_stmt(asm_movabs_stmt);
130511 +}
130512 +
130513 +/*
130514 + * find all asm() stmts that clobber r12 and add a reload of r12
130515 + */
130516 +static unsigned int execute_kernexec_reload(void)
130517 +{
130518 + basic_block bb;
130519 +
130520 + // 1. loop through BBs and GIMPLE statements
130521 + FOR_EACH_BB_FN(bb, cfun) {
130522 + gimple_stmt_iterator gsi;
130523 +
130524 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
130525 + // gimple match: __asm__ ("" : : : "r12");
130526 + gimple stmt;
130527 + gasm *asm_stmt;
130528 + size_t nclobbers;
130529 +
130530 + // is it an asm ...
130531 + stmt = gsi_stmt(gsi);
130532 + if (gimple_code(stmt) != GIMPLE_ASM)
130533 + continue;
130534 +
130535 + asm_stmt = as_a_gasm(stmt);
130536 +
130537 + // ... clobbering r12
130538 + nclobbers = gimple_asm_nclobbers(asm_stmt);
130539 + while (nclobbers--) {
130540 + tree op = gimple_asm_clobber_op(asm_stmt, nclobbers);
130541 + if (strcmp(TREE_STRING_POINTER(TREE_VALUE(op)), "r12"))
130542 + continue;
130543 + kernexec_reload_fptr_mask(&gsi);
130544 +//print_gimple_stmt(stderr, asm_stmt, 0, TDF_LINENO);
130545 + break;
130546 + }
130547 + }
130548 + }
130549 +
130550 + return 0;
130551 +}
130552 +
130553 +/*
130554 + * add special KERNEXEC instrumentation: force MSB of fptr to 1, which will produce
130555 + * a non-canonical address from a userland ptr and will just trigger a GPF on dereference
130556 + */
130557 +static void kernexec_instrument_fptr_bts(gimple_stmt_iterator *gsi)
130558 +{
130559 + gimple assign_intptr, assign_new_fptr;
130560 + gcall *call_stmt;
130561 + tree intptr, orptr, old_fptr, new_fptr, kernexec_mask;
130562 +
130563 + call_stmt = as_a_gcall(gsi_stmt(*gsi));
130564 + old_fptr = gimple_call_fn(call_stmt);
130565 +
130566 + // create temporary unsigned long variable used for bitops and cast fptr to it
130567 + intptr = create_tmp_var(long_unsigned_type_node, "kernexec_bts");
130568 + add_referenced_var(intptr);
130569 + intptr = make_ssa_name(intptr, NULL);
130570 + assign_intptr = gimple_build_assign(intptr, fold_convert(long_unsigned_type_node, old_fptr));
130571 + SSA_NAME_DEF_STMT(intptr) = assign_intptr;
130572 + gsi_insert_before(gsi, assign_intptr, GSI_SAME_STMT);
130573 + update_stmt(assign_intptr);
130574 +
130575 + // apply logical or to temporary unsigned long and bitmask
130576 + kernexec_mask = build_int_cstu(long_long_unsigned_type_node, 0x8000000000000000LL);
130577 +// kernexec_mask = build_int_cstu(long_long_unsigned_type_node, 0xffffffff80000000LL);
130578 + orptr = fold_build2(BIT_IOR_EXPR, long_long_unsigned_type_node, intptr, kernexec_mask);
130579 + intptr = make_ssa_name(SSA_NAME_VAR(intptr), NULL);
130580 + assign_intptr = gimple_build_assign(intptr, orptr);
130581 + SSA_NAME_DEF_STMT(intptr) = assign_intptr;
130582 + gsi_insert_before(gsi, assign_intptr, GSI_SAME_STMT);
130583 + update_stmt(assign_intptr);
130584 +
130585 + // cast temporary unsigned long back to a temporary fptr variable
130586 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_fptr");
130587 + add_referenced_var(new_fptr);
130588 + new_fptr = make_ssa_name(new_fptr, NULL);
130589 + assign_new_fptr = gimple_build_assign(new_fptr, fold_convert(TREE_TYPE(old_fptr), intptr));
130590 + SSA_NAME_DEF_STMT(new_fptr) = assign_new_fptr;
130591 + gsi_insert_before(gsi, assign_new_fptr, GSI_SAME_STMT);
130592 + update_stmt(assign_new_fptr);
130593 +
130594 + // replace call stmt fn with the new fptr
130595 + gimple_call_set_fn(call_stmt, new_fptr);
130596 + update_stmt(call_stmt);
130597 +}
130598 +
130599 +static void kernexec_instrument_fptr_or(gimple_stmt_iterator *gsi)
130600 +{
130601 + gimple stmt;
130602 + gasm *asm_or_stmt;
130603 + gcall *call_stmt;
130604 + tree old_fptr, new_fptr, input, output;
130605 +#if BUILDING_GCC_VERSION <= 4007
130606 + VEC(tree, gc) *inputs = NULL;
130607 + VEC(tree, gc) *outputs = NULL;
130608 +#else
130609 + vec<tree, va_gc> *inputs = NULL;
130610 + vec<tree, va_gc> *outputs = NULL;
130611 +#endif
130612 +
130613 + call_stmt = as_a_gcall(gsi_stmt(*gsi));
130614 + old_fptr = gimple_call_fn(call_stmt);
130615 +
130616 + // create temporary fptr variable
130617 + new_fptr = create_tmp_var(TREE_TYPE(old_fptr), "kernexec_or");
130618 + add_referenced_var(new_fptr);
130619 + new_fptr = make_ssa_name(new_fptr, NULL);
130620 +
130621 + // build asm volatile("orq %%r12, %0\n\t" : "=r"(new_fptr) : "0"(old_fptr));
130622 + input = build_tree_list(NULL_TREE, build_string(2, "0"));
130623 + input = chainon(NULL_TREE, build_tree_list(input, old_fptr));
130624 + output = build_tree_list(NULL_TREE, build_string(3, "=r"));
130625 + output = chainon(NULL_TREE, build_tree_list(output, new_fptr));
130626 +#if BUILDING_GCC_VERSION <= 4007
130627 + VEC_safe_push(tree, gc, inputs, input);
130628 + VEC_safe_push(tree, gc, outputs, output);
130629 +#else
130630 + vec_safe_push(inputs, input);
130631 + vec_safe_push(outputs, output);
130632 +#endif
130633 + stmt = gimple_build_asm_vec("orq %%r12, %0\n\t", inputs, outputs, NULL, NULL);
130634 + asm_or_stmt = as_a_gasm(stmt);
130635 + SSA_NAME_DEF_STMT(new_fptr) = asm_or_stmt;
130636 + gimple_asm_set_volatile(asm_or_stmt, true);
130637 + gsi_insert_before(gsi, asm_or_stmt, GSI_SAME_STMT);
130638 + update_stmt(asm_or_stmt);
130639 +
130640 + // replace call stmt fn with the new fptr
130641 + gimple_call_set_fn(call_stmt, new_fptr);
130642 + update_stmt(call_stmt);
130643 +}
130644 +
130645 +/*
130646 + * find all C level function pointer dereferences and forcibly set the highest bit of the pointer
130647 + */
130648 +static unsigned int execute_kernexec_fptr(void)
130649 +{
130650 + basic_block bb;
130651 +
130652 + // 1. loop through BBs and GIMPLE statements
130653 + FOR_EACH_BB_FN(bb, cfun) {
130654 + gimple_stmt_iterator gsi;
130655 +
130656 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
130657 + // gimple match: h_1 = get_fptr (); D.2709_3 = h_1 (x_2(D));
130658 + tree fn;
130659 + gimple stmt;
130660 + gcall *call_stmt;
130661 +
130662 + // is it a call ...
130663 + stmt = gsi_stmt(gsi);
130664 + if (!is_gimple_call(stmt))
130665 + continue;
130666 + call_stmt = as_a_gcall(stmt);
130667 + fn = gimple_call_fn(call_stmt);
130668 + if (TREE_CODE(fn) == ADDR_EXPR)
130669 + continue;
130670 + if (TREE_CODE(fn) != SSA_NAME)
130671 + gcc_unreachable();
130672 +
130673 + // ... through a function pointer
130674 + if (SSA_NAME_VAR(fn) != NULL_TREE) {
130675 + fn = SSA_NAME_VAR(fn);
130676 + if (TREE_CODE(fn) != VAR_DECL && TREE_CODE(fn) != PARM_DECL) {
130677 + debug_tree(fn);
130678 + gcc_unreachable();
130679 + }
130680 + }
130681 + fn = TREE_TYPE(fn);
130682 + if (TREE_CODE(fn) != POINTER_TYPE)
130683 + continue;
130684 + fn = TREE_TYPE(fn);
130685 + if (TREE_CODE(fn) != FUNCTION_TYPE)
130686 + continue;
130687 +
130688 + kernexec_instrument_fptr(&gsi);
130689 +
130690 +//debug_tree(gimple_call_fn(call_stmt));
130691 +//print_gimple_stmt(stderr, call_stmt, 0, TDF_LINENO);
130692 + }
130693 + }
130694 +
130695 + return 0;
130696 +}
130697 +
130698 +// add special KERNEXEC instrumentation: btsq $63,(%rsp) just before retn
130699 +static void kernexec_instrument_retaddr_bts(rtx insn)
130700 +{
130701 + rtx btsq;
130702 + rtvec argvec, constraintvec, labelvec;
130703 + int line;
130704 +
130705 + // create asm volatile("btsq $63,(%%rsp)":::)
130706 + argvec = rtvec_alloc(0);
130707 + constraintvec = rtvec_alloc(0);
130708 + labelvec = rtvec_alloc(0);
130709 + line = expand_location(RTL_LOCATION(insn)).line;
130710 + btsq = gen_rtx_ASM_OPERANDS(VOIDmode, "btsq $63,(%%rsp)", empty_string, 0, argvec, constraintvec, labelvec, line);
130711 + MEM_VOLATILE_P(btsq) = 1;
130712 +// RTX_FRAME_RELATED_P(btsq) = 1; // not for ASM_OPERANDS
130713 + emit_insn_before(btsq, insn);
130714 +}
130715 +
130716 +// add special KERNEXEC instrumentation: orq %r12,(%rsp) just before retn
130717 +static void kernexec_instrument_retaddr_or(rtx insn)
130718 +{
130719 + rtx orq;
130720 + rtvec argvec, constraintvec, labelvec;
130721 + int line;
130722 +
130723 + // create asm volatile("orq %%r12,(%%rsp)":::)
130724 + argvec = rtvec_alloc(0);
130725 + constraintvec = rtvec_alloc(0);
130726 + labelvec = rtvec_alloc(0);
130727 + line = expand_location(RTL_LOCATION(insn)).line;
130728 + orq = gen_rtx_ASM_OPERANDS(VOIDmode, "orq %%r12,(%%rsp)", empty_string, 0, argvec, constraintvec, labelvec, line);
130729 + MEM_VOLATILE_P(orq) = 1;
130730 +// RTX_FRAME_RELATED_P(orq) = 1; // not for ASM_OPERANDS
130731 + emit_insn_before(orq, insn);
130732 +}
130733 +
130734 +/*
130735 + * find all asm level function returns and forcibly set the highest bit of the return address
130736 + */
130737 +static unsigned int execute_kernexec_retaddr(void)
130738 +{
130739 + rtx_insn *insn;
130740 +
130741 +// if (stack_realign_drap)
130742 +// inform(DECL_SOURCE_LOCATION(current_function_decl), "drap detected in %s\n", IDENTIFIER_POINTER(DECL_NAME(current_function_decl)));
130743 +
130744 + // 1. find function returns
130745 + for (insn = get_insns(); insn; insn = NEXT_INSN(insn)) {
130746 + // rtl match: (jump_insn 41 40 42 2 (return) fptr.c:42 634 {return_internal} (nil))
130747 + // (jump_insn 12 9 11 2 (parallel [ (return) (unspec [ (0) ] UNSPEC_REP) ]) fptr.c:46 635 {return_internal_long} (nil))
130748 + // (jump_insn 97 96 98 6 (simple_return) fptr.c:50 -1 (nil) -> simple_return)
130749 + rtx body;
130750 +
130751 + // is it a retn
130752 + if (!JUMP_P(insn))
130753 + continue;
130754 + body = PATTERN(insn);
130755 + if (GET_CODE(body) == PARALLEL)
130756 + body = XVECEXP(body, 0, 0);
130757 + if (!ANY_RETURN_P(body))
130758 + continue;
130759 + kernexec_instrument_retaddr(insn);
130760 + }
130761 +
130762 +// print_simple_rtl(stderr, get_insns());
130763 +// print_rtl(stderr, get_insns());
130764 +
130765 + return 0;
130766 +}
130767 +
130768 +static bool kernexec_cmodel_check(void)
130769 +{
130770 + tree section;
130771 +
130772 + if (ix86_cmodel != CM_KERNEL)
130773 + return false;
130774 +
130775 + section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
130776 + if (!section || !TREE_VALUE(section))
130777 + return true;
130778 +
130779 + section = TREE_VALUE(TREE_VALUE(section));
130780 + if (strncmp(TREE_STRING_POINTER(section), ".vsyscall_", 10))
130781 + return true;
130782 +
130783 + return false;
130784 +}
130785 +
130786 +#if BUILDING_GCC_VERSION >= 4009
130787 +namespace {
130788 +static const struct pass_data kernexec_reload_pass_data = {
130789 +#else
130790 +static struct gimple_opt_pass kernexec_reload_pass = {
130791 + .pass = {
130792 +#endif
130793 + .type = GIMPLE_PASS,
130794 + .name = "kernexec_reload",
130795 +#if BUILDING_GCC_VERSION >= 4008
130796 + .optinfo_flags = OPTGROUP_NONE,
130797 +#endif
130798 +#if BUILDING_GCC_VERSION >= 5000
130799 +#elif BUILDING_GCC_VERSION == 4009
130800 + .has_gate = true,
130801 + .has_execute = true,
130802 +#else
130803 + .gate = kernexec_cmodel_check,
130804 + .execute = execute_kernexec_reload,
130805 + .sub = NULL,
130806 + .next = NULL,
130807 + .static_pass_number = 0,
130808 +#endif
130809 + .tv_id = TV_NONE,
130810 + .properties_required = 0,
130811 + .properties_provided = 0,
130812 + .properties_destroyed = 0,
130813 + .todo_flags_start = 0,
130814 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
130815 +#if BUILDING_GCC_VERSION < 4009
130816 + }
130817 +#endif
130818 +};
130819 +
130820 +#if BUILDING_GCC_VERSION >= 4009
130821 +static const struct pass_data kernexec_fptr_pass_data = {
130822 +#else
130823 +static struct gimple_opt_pass kernexec_fptr_pass = {
130824 + .pass = {
130825 +#endif
130826 + .type = GIMPLE_PASS,
130827 + .name = "kernexec_fptr",
130828 +#if BUILDING_GCC_VERSION >= 4008
130829 + .optinfo_flags = OPTGROUP_NONE,
130830 +#endif
130831 +#if BUILDING_GCC_VERSION >= 5000
130832 +#elif BUILDING_GCC_VERSION == 4009
130833 + .has_gate = true,
130834 + .has_execute = true,
130835 +#else
130836 + .gate = kernexec_cmodel_check,
130837 + .execute = execute_kernexec_fptr,
130838 + .sub = NULL,
130839 + .next = NULL,
130840 + .static_pass_number = 0,
130841 +#endif
130842 + .tv_id = TV_NONE,
130843 + .properties_required = 0,
130844 + .properties_provided = 0,
130845 + .properties_destroyed = 0,
130846 + .todo_flags_start = 0,
130847 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa_no_phi
130848 +#if BUILDING_GCC_VERSION < 4009
130849 + }
130850 +#endif
130851 +};
130852 +
130853 +#if BUILDING_GCC_VERSION >= 4009
130854 +static const struct pass_data kernexec_retaddr_pass_data = {
130855 +#else
130856 +static struct rtl_opt_pass kernexec_retaddr_pass = {
130857 + .pass = {
130858 +#endif
130859 + .type = RTL_PASS,
130860 + .name = "kernexec_retaddr",
130861 +#if BUILDING_GCC_VERSION >= 4008
130862 + .optinfo_flags = OPTGROUP_NONE,
130863 +#endif
130864 +#if BUILDING_GCC_VERSION >= 5000
130865 +#elif BUILDING_GCC_VERSION == 4009
130866 + .has_gate = true,
130867 + .has_execute = true,
130868 +#else
130869 + .gate = kernexec_cmodel_check,
130870 + .execute = execute_kernexec_retaddr,
130871 + .sub = NULL,
130872 + .next = NULL,
130873 + .static_pass_number = 0,
130874 +#endif
130875 + .tv_id = TV_NONE,
130876 + .properties_required = 0,
130877 + .properties_provided = 0,
130878 + .properties_destroyed = 0,
130879 + .todo_flags_start = 0,
130880 + .todo_flags_finish = TODO_dump_func | TODO_ggc_collect
130881 +#if BUILDING_GCC_VERSION < 4009
130882 + }
130883 +#endif
130884 +};
130885 +
130886 +#if BUILDING_GCC_VERSION >= 4009
130887 +class kernexec_reload_pass : public gimple_opt_pass {
130888 +public:
130889 + kernexec_reload_pass() : gimple_opt_pass(kernexec_reload_pass_data, g) {}
130890 +#if BUILDING_GCC_VERSION >= 5000
130891 + virtual bool gate(function *) { return kernexec_cmodel_check(); }
130892 + virtual unsigned int execute(function *) { return execute_kernexec_reload(); }
130893 +#else
130894 + bool gate() { return kernexec_cmodel_check(); }
130895 + unsigned int execute() { return execute_kernexec_reload(); }
130896 +#endif
130897 +};
130898 +
130899 +class kernexec_fptr_pass : public gimple_opt_pass {
130900 +public:
130901 + kernexec_fptr_pass() : gimple_opt_pass(kernexec_fptr_pass_data, g) {}
130902 +#if BUILDING_GCC_VERSION >= 5000
130903 + virtual bool gate(function *) { return kernexec_cmodel_check(); }
130904 + virtual unsigned int execute(function *) { return execute_kernexec_fptr(); }
130905 +#else
130906 + bool gate() { return kernexec_cmodel_check(); }
130907 + unsigned int execute() { return execute_kernexec_fptr(); }
130908 +#endif
130909 +};
130910 +
130911 +class kernexec_retaddr_pass : public rtl_opt_pass {
130912 +public:
130913 + kernexec_retaddr_pass() : rtl_opt_pass(kernexec_retaddr_pass_data, g) {}
130914 +#if BUILDING_GCC_VERSION >= 5000
130915 + virtual bool gate(function *) { return kernexec_cmodel_check(); }
130916 + virtual unsigned int execute(function *) { return execute_kernexec_retaddr(); }
130917 +#else
130918 + bool gate() { return kernexec_cmodel_check(); }
130919 + unsigned int execute() { return execute_kernexec_retaddr(); }
130920 +#endif
130921 +};
130922 +}
130923 +
130924 +static opt_pass *make_kernexec_reload_pass(void)
130925 +{
130926 + return new kernexec_reload_pass();
130927 +}
130928 +
130929 +static opt_pass *make_kernexec_fptr_pass(void)
130930 +{
130931 + return new kernexec_fptr_pass();
130932 +}
130933 +
130934 +static opt_pass *make_kernexec_retaddr_pass(void)
130935 +{
130936 + return new kernexec_retaddr_pass();
130937 +}
130938 +#else
130939 +static struct opt_pass *make_kernexec_reload_pass(void)
130940 +{
130941 + return &kernexec_reload_pass.pass;
130942 +}
130943 +
130944 +static struct opt_pass *make_kernexec_fptr_pass(void)
130945 +{
130946 + return &kernexec_fptr_pass.pass;
130947 +}
130948 +
130949 +static struct opt_pass *make_kernexec_retaddr_pass(void)
130950 +{
130951 + return &kernexec_retaddr_pass.pass;
130952 +}
130953 +#endif
130954 +
130955 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
130956 +{
130957 + const char * const plugin_name = plugin_info->base_name;
130958 + const int argc = plugin_info->argc;
130959 + const struct plugin_argument * const argv = plugin_info->argv;
130960 + int i;
130961 + struct register_pass_info kernexec_reload_pass_info;
130962 + struct register_pass_info kernexec_fptr_pass_info;
130963 + struct register_pass_info kernexec_retaddr_pass_info;
130964 +
130965 + kernexec_reload_pass_info.pass = make_kernexec_reload_pass();
130966 + kernexec_reload_pass_info.reference_pass_name = "ssa";
130967 + kernexec_reload_pass_info.ref_pass_instance_number = 1;
130968 + kernexec_reload_pass_info.pos_op = PASS_POS_INSERT_AFTER;
130969 +
130970 + kernexec_fptr_pass_info.pass = make_kernexec_fptr_pass();
130971 + kernexec_fptr_pass_info.reference_pass_name = "ssa";
130972 + kernexec_fptr_pass_info.ref_pass_instance_number = 1;
130973 + kernexec_fptr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
130974 +
130975 + kernexec_retaddr_pass_info.pass = make_kernexec_retaddr_pass();
130976 + kernexec_retaddr_pass_info.reference_pass_name = "pro_and_epilogue";
130977 + kernexec_retaddr_pass_info.ref_pass_instance_number = 1;
130978 + kernexec_retaddr_pass_info.pos_op = PASS_POS_INSERT_AFTER;
130979 +
130980 + if (!plugin_default_version_check(version, &gcc_version)) {
130981 + error(G_("incompatible gcc/plugin versions"));
130982 + return 1;
130983 + }
130984 +
130985 + register_callback(plugin_name, PLUGIN_INFO, NULL, &kernexec_plugin_info);
130986 +
130987 + if (TARGET_64BIT == 0)
130988 + return 0;
130989 +
130990 + for (i = 0; i < argc; ++i) {
130991 + if (!strcmp(argv[i].key, "method")) {
130992 + if (!argv[i].value) {
130993 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
130994 + continue;
130995 + }
130996 + if (!strcmp(argv[i].value, "bts")) {
130997 + kernexec_instrument_fptr = kernexec_instrument_fptr_bts;
130998 + kernexec_instrument_retaddr = kernexec_instrument_retaddr_bts;
130999 + } else if (!strcmp(argv[i].value, "or")) {
131000 + kernexec_instrument_fptr = kernexec_instrument_fptr_or;
131001 + kernexec_instrument_retaddr = kernexec_instrument_retaddr_or;
131002 + fix_register("r12", 1, 1);
131003 + } else
131004 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
131005 + continue;
131006 + }
131007 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
131008 + }
131009 + if (!kernexec_instrument_fptr || !kernexec_instrument_retaddr)
131010 + error(G_("no instrumentation method was selected via '-fplugin-arg-%s-method'"), plugin_name);
131011 +
131012 + if (kernexec_instrument_fptr == kernexec_instrument_fptr_or)
131013 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_reload_pass_info);
131014 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_fptr_pass_info);
131015 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &kernexec_retaddr_pass_info);
131016 +
131017 + return 0;
131018 +}
131019 diff --git a/tools/gcc/latent_entropy_plugin.c b/tools/gcc/latent_entropy_plugin.c
131020 new file mode 100644
131021 index 0000000..f76c1c6
131022 --- /dev/null
131023 +++ b/tools/gcc/latent_entropy_plugin.c
131024 @@ -0,0 +1,470 @@
131025 +/*
131026 + * Copyright 2012-2015 by the PaX Team <pageexec@freemail.hu>
131027 + * Licensed under the GPL v2
131028 + *
131029 + * Note: the choice of the license means that the compilation process is
131030 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
131031 + * but for the kernel it doesn't matter since it doesn't link against
131032 + * any of the gcc libraries
131033 + *
131034 + * gcc plugin to help generate a little bit of entropy from program state,
131035 + * used throughout the uptime of the kernel
131036 + *
131037 + * TODO:
131038 + * - add ipa pass to identify not explicitly marked candidate functions
131039 + * - mix in more program state (function arguments/return values, loop variables, etc)
131040 + * - more instrumentation control via attribute parameters
131041 + *
131042 + * BUGS:
131043 + * - none known
131044 + */
131045 +
131046 +#include "gcc-common.h"
131047 +
131048 +int plugin_is_GPL_compatible;
131049 +
131050 +static GTY(()) tree latent_entropy_decl;
131051 +
131052 +static struct plugin_info latent_entropy_plugin_info = {
131053 + .version = "201504282240",
131054 + .help = NULL
131055 +};
131056 +
131057 +static unsigned HOST_WIDE_INT seed;
131058 +static unsigned HOST_WIDE_INT get_random_const(void)
131059 +{
131060 + unsigned int i;
131061 + unsigned HOST_WIDE_INT ret = 0;
131062 +
131063 + for (i = 0; i < 8 * sizeof ret; i++) {
131064 + ret = (ret << 1) | (seed & 1);
131065 + seed >>= 1;
131066 + if (ret & 1)
131067 + seed ^= 0xD800000000000000ULL;
131068 + }
131069 +
131070 + return ret;
131071 +}
131072 +
131073 +static tree handle_latent_entropy_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
131074 +{
131075 + tree type;
131076 + unsigned long long mask;
131077 +#if BUILDING_GCC_VERSION <= 4007
131078 + VEC(constructor_elt, gc) *vals;
131079 +#else
131080 + vec<constructor_elt, va_gc> *vals;
131081 +#endif
131082 +
131083 + switch (TREE_CODE(*node)) {
131084 + default:
131085 + *no_add_attrs = true;
131086 + error("%qE attribute only applies to functions and variables", name);
131087 + break;
131088 +
131089 + case VAR_DECL:
131090 + if (DECL_INITIAL(*node)) {
131091 + *no_add_attrs = true;
131092 + error("variable %qD with %qE attribute must not be initialized", *node, name);
131093 + break;
131094 + }
131095 +
131096 + if (!TREE_STATIC(*node)) {
131097 + *no_add_attrs = true;
131098 + error("variable %qD with %qE attribute must not be local", *node, name);
131099 + break;
131100 + }
131101 +
131102 + type = TREE_TYPE(*node);
131103 + switch (TREE_CODE(type)) {
131104 + default:
131105 + *no_add_attrs = true;
131106 + 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);
131107 + break;
131108 +
131109 + case RECORD_TYPE: {
131110 + tree field;
131111 + unsigned int nelt = 0;
131112 +
131113 + for (field = TYPE_FIELDS(type); field; nelt++, field = TREE_CHAIN(field)) {
131114 + tree fieldtype;
131115 +
131116 + fieldtype = TREE_TYPE(field);
131117 + if (TREE_CODE(fieldtype) != INTEGER_TYPE) {
131118 + *no_add_attrs = true;
131119 + error("structure variable %qD with %qE attribute has a non-integer field %qE", *node, name, field);
131120 + break;
131121 + }
131122 + }
131123 +
131124 + if (field)
131125 + break;
131126 +
131127 +#if BUILDING_GCC_VERSION <= 4007
131128 + vals = VEC_alloc(constructor_elt, gc, nelt);
131129 +#else
131130 + vec_alloc(vals, nelt);
131131 +#endif
131132 +
131133 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
131134 + tree fieldtype;
131135 +
131136 + fieldtype = TREE_TYPE(field);
131137 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(fieldtype)) - 1);
131138 + mask = 2 * (mask - 1) + 1;
131139 +
131140 + if (TYPE_UNSIGNED(fieldtype))
131141 + CONSTRUCTOR_APPEND_ELT(vals, field, build_int_cstu(fieldtype, mask & get_random_const()));
131142 + else
131143 + CONSTRUCTOR_APPEND_ELT(vals, field, build_int_cst(fieldtype, mask & get_random_const()));
131144 + }
131145 +
131146 + DECL_INITIAL(*node) = build_constructor(type, vals);
131147 +//debug_tree(DECL_INITIAL(*node));
131148 + break;
131149 + }
131150 +
131151 + case INTEGER_TYPE:
131152 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(type)) - 1);
131153 + mask = 2 * (mask - 1) + 1;
131154 +
131155 + if (TYPE_UNSIGNED(type))
131156 + DECL_INITIAL(*node) = build_int_cstu(type, mask & get_random_const());
131157 + else
131158 + DECL_INITIAL(*node) = build_int_cst(type, mask & get_random_const());
131159 + break;
131160 +
131161 + case ARRAY_TYPE: {
131162 + tree elt_type, array_size, elt_size;
131163 + unsigned int i, nelt;
131164 +
131165 + elt_type = TREE_TYPE(type);
131166 + elt_size = TYPE_SIZE_UNIT(TREE_TYPE(type));
131167 + array_size = TYPE_SIZE_UNIT(type);
131168 +
131169 + if (TREE_CODE(elt_type) != INTEGER_TYPE || !array_size || TREE_CODE(array_size) != INTEGER_CST) {
131170 + *no_add_attrs = true;
131171 + error("array variable %qD with %qE attribute must be a fixed length integer array type", *node, name);
131172 + break;
131173 + }
131174 +
131175 + nelt = TREE_INT_CST_LOW(array_size) / TREE_INT_CST_LOW(elt_size);
131176 +#if BUILDING_GCC_VERSION <= 4007
131177 + vals = VEC_alloc(constructor_elt, gc, nelt);
131178 +#else
131179 + vec_alloc(vals, nelt);
131180 +#endif
131181 +
131182 + mask = 1ULL << (TREE_INT_CST_LOW(TYPE_SIZE(elt_type)) - 1);
131183 + mask = 2 * (mask - 1) + 1;
131184 +
131185 + for (i = 0; i < nelt; i++)
131186 + if (TYPE_UNSIGNED(elt_type))
131187 + CONSTRUCTOR_APPEND_ELT(vals, size_int(i), build_int_cstu(elt_type, mask & get_random_const()));
131188 + else
131189 + CONSTRUCTOR_APPEND_ELT(vals, size_int(i), build_int_cst(elt_type, mask & get_random_const()));
131190 +
131191 + DECL_INITIAL(*node) = build_constructor(type, vals);
131192 +//debug_tree(DECL_INITIAL(*node));
131193 + break;
131194 + }
131195 + }
131196 + break;
131197 +
131198 + case FUNCTION_DECL:
131199 + break;
131200 + }
131201 +
131202 + return NULL_TREE;
131203 +}
131204 +
131205 +static struct attribute_spec latent_entropy_attr = {
131206 + .name = "latent_entropy",
131207 + .min_length = 0,
131208 + .max_length = 0,
131209 + .decl_required = true,
131210 + .type_required = false,
131211 + .function_type_required = false,
131212 + .handler = handle_latent_entropy_attribute,
131213 +#if BUILDING_GCC_VERSION >= 4007
131214 + .affects_type_identity = false
131215 +#endif
131216 +};
131217 +
131218 +static void register_attributes(void *event_data, void *data)
131219 +{
131220 + register_attribute(&latent_entropy_attr);
131221 +}
131222 +
131223 +static bool gate_latent_entropy(void)
131224 +{
131225 + // don't bother with noreturn functions for now
131226 + if (TREE_THIS_VOLATILE(current_function_decl))
131227 + return false;
131228 +
131229 + // gcc-4.5 doesn't discover some trivial noreturn functions
131230 + if (EDGE_COUNT(EXIT_BLOCK_PTR_FOR_FN(cfun)->preds) == 0)
131231 + return false;
131232 +
131233 + return lookup_attribute("latent_entropy", DECL_ATTRIBUTES(current_function_decl)) != NULL_TREE;
131234 +}
131235 +
131236 +static enum tree_code get_op(tree *rhs)
131237 +{
131238 + static enum tree_code op;
131239 + unsigned HOST_WIDE_INT random_const;
131240 +
131241 + random_const = get_random_const();
131242 +
131243 + switch (op) {
131244 + case BIT_XOR_EXPR:
131245 + op = PLUS_EXPR;
131246 + break;
131247 +
131248 + case PLUS_EXPR:
131249 + if (rhs) {
131250 + op = LROTATE_EXPR;
131251 + random_const &= HOST_BITS_PER_WIDE_INT - 1;
131252 + break;
131253 + }
131254 +
131255 + case LROTATE_EXPR:
131256 + default:
131257 + op = BIT_XOR_EXPR;
131258 + break;
131259 + }
131260 + if (rhs)
131261 + *rhs = build_int_cstu(unsigned_intDI_type_node, random_const);
131262 + return op;
131263 +}
131264 +
131265 +static void perturb_local_entropy(basic_block bb, tree local_entropy)
131266 +{
131267 + gimple_stmt_iterator gsi;
131268 + gimple assign;
131269 + tree addxorrol, rhs;
131270 + enum tree_code op;
131271 +
131272 + op = get_op(&rhs);
131273 + addxorrol = fold_build2_loc(UNKNOWN_LOCATION, op, unsigned_intDI_type_node, local_entropy, rhs);
131274 + assign = gimple_build_assign(local_entropy, addxorrol);
131275 + gsi = gsi_after_labels(bb);
131276 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
131277 + update_stmt(assign);
131278 +//debug_bb(bb);
131279 +}
131280 +
131281 +static void perturb_latent_entropy(basic_block bb, tree rhs)
131282 +{
131283 + gimple_stmt_iterator gsi;
131284 + gimple assign;
131285 + tree addxorrol, temp;
131286 +
131287 + // 1. create temporary copy of latent_entropy
131288 + temp = create_tmp_var(unsigned_intDI_type_node, "temp_latent_entropy");
131289 + add_referenced_var(temp);
131290 +
131291 + // 2. read...
131292 + temp = make_ssa_name(temp, NULL);
131293 + assign = gimple_build_assign(temp, latent_entropy_decl);
131294 + SSA_NAME_DEF_STMT(temp) = assign;
131295 + add_referenced_var(latent_entropy_decl);
131296 + gsi = gsi_after_labels(bb);
131297 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
131298 + update_stmt(assign);
131299 +
131300 + // 3. ...modify...
131301 + addxorrol = fold_build2_loc(UNKNOWN_LOCATION, get_op(NULL), unsigned_intDI_type_node, temp, rhs);
131302 + temp = make_ssa_name(SSA_NAME_VAR(temp), NULL);
131303 + assign = gimple_build_assign(temp, addxorrol);
131304 + SSA_NAME_DEF_STMT(temp) = assign;
131305 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
131306 + update_stmt(assign);
131307 +
131308 + // 4. ...write latent_entropy
131309 + assign = gimple_build_assign(latent_entropy_decl, temp);
131310 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
131311 + update_stmt(assign);
131312 +}
131313 +
131314 +static unsigned int execute_latent_entropy(void)
131315 +{
131316 + basic_block bb;
131317 + gimple assign;
131318 + gimple_stmt_iterator gsi;
131319 + tree local_entropy;
131320 +
131321 + if (!latent_entropy_decl) {
131322 + varpool_node_ptr node;
131323 +
131324 + FOR_EACH_VARIABLE(node) {
131325 + tree var = NODE_DECL(node);
131326 +
131327 + if (DECL_NAME_LENGTH(var) < sizeof("latent_entropy") - 1)
131328 + continue;
131329 + if (strcmp(IDENTIFIER_POINTER(DECL_NAME(var)), "latent_entropy"))
131330 + continue;
131331 + latent_entropy_decl = var;
131332 +// debug_tree(var);
131333 + break;
131334 + }
131335 + if (!latent_entropy_decl) {
131336 +// debug_tree(current_function_decl);
131337 + return 0;
131338 + }
131339 + }
131340 +
131341 +//fprintf(stderr, "latent_entropy: %s\n", IDENTIFIER_POINTER(DECL_NAME(current_function_decl)));
131342 +
131343 + // 1. create local entropy variable
131344 + local_entropy = create_tmp_var(unsigned_intDI_type_node, "local_entropy");
131345 + add_referenced_var(local_entropy);
131346 + mark_sym_for_renaming(local_entropy);
131347 +
131348 + // 2. initialize local entropy variable
131349 + bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
131350 + if (dom_info_available_p(CDI_DOMINATORS))
131351 + set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
131352 + gsi = gsi_start_bb(bb);
131353 +
131354 + assign = gimple_build_assign(local_entropy, build_int_cstu(unsigned_intDI_type_node, get_random_const()));
131355 +// gimple_set_location(assign, loc);
131356 + gsi_insert_after(&gsi, assign, GSI_NEW_STMT);
131357 + update_stmt(assign);
131358 +//debug_bb(bb);
131359 + gcc_assert(single_succ_p(bb));
131360 + bb = single_succ(bb);
131361 +
131362 + // 3. instrument each BB with an operation on the local entropy variable
131363 + while (bb != EXIT_BLOCK_PTR_FOR_FN(cfun)) {
131364 + perturb_local_entropy(bb, local_entropy);
131365 +//debug_bb(bb);
131366 + bb = bb->next_bb;
131367 + };
131368 +
131369 + // 4. mix local entropy into the global entropy variable
131370 + gcc_assert(single_pred_p(EXIT_BLOCK_PTR_FOR_FN(cfun)));
131371 + perturb_latent_entropy(single_pred(EXIT_BLOCK_PTR_FOR_FN(cfun)), local_entropy);
131372 +//debug_bb(single_pred(EXIT_BLOCK_PTR_FOR_FN(cfun)));
131373 + return 0;
131374 +}
131375 +
131376 +static void latent_entropy_start_unit(void *gcc_data, void *user_data)
131377 +{
131378 + tree latent_entropy_type;
131379 +
131380 + seed = get_random_seed(false);
131381 +
131382 + if (in_lto_p)
131383 + return;
131384 +
131385 + // extern volatile u64 latent_entropy
131386 + gcc_assert(TYPE_PRECISION(long_long_unsigned_type_node) == 64);
131387 + latent_entropy_type = build_qualified_type(long_long_unsigned_type_node, TYPE_QUALS(long_long_unsigned_type_node) | TYPE_QUAL_VOLATILE);
131388 + latent_entropy_decl = build_decl(UNKNOWN_LOCATION, VAR_DECL, get_identifier("latent_entropy"), latent_entropy_type);
131389 +
131390 + TREE_STATIC(latent_entropy_decl) = 1;
131391 + TREE_PUBLIC(latent_entropy_decl) = 1;
131392 + TREE_USED(latent_entropy_decl) = 1;
131393 + DECL_PRESERVE_P(latent_entropy_decl) = 1;
131394 + TREE_THIS_VOLATILE(latent_entropy_decl) = 1;
131395 + DECL_EXTERNAL(latent_entropy_decl) = 1;
131396 + DECL_ARTIFICIAL(latent_entropy_decl) = 1;
131397 + lang_hooks.decls.pushdecl(latent_entropy_decl);
131398 +// DECL_ASSEMBLER_NAME(latent_entropy_decl);
131399 +// varpool_finalize_decl(latent_entropy_decl);
131400 +// varpool_mark_needed_node(latent_entropy_decl);
131401 +}
131402 +
131403 +#if BUILDING_GCC_VERSION >= 4009
131404 +namespace {
131405 +static const struct pass_data latent_entropy_pass_data = {
131406 +#else
131407 +static struct gimple_opt_pass latent_entropy_pass = {
131408 + .pass = {
131409 +#endif
131410 + .type = GIMPLE_PASS,
131411 + .name = "latent_entropy",
131412 +#if BUILDING_GCC_VERSION >= 4008
131413 + .optinfo_flags = OPTGROUP_NONE,
131414 +#endif
131415 +#if BUILDING_GCC_VERSION >= 5000
131416 +#elif BUILDING_GCC_VERSION == 4009
131417 + .has_gate = true,
131418 + .has_execute = true,
131419 +#else
131420 + .gate = gate_latent_entropy,
131421 + .execute = execute_latent_entropy,
131422 + .sub = NULL,
131423 + .next = NULL,
131424 + .static_pass_number = 0,
131425 +#endif
131426 + .tv_id = TV_NONE,
131427 + .properties_required = PROP_gimple_leh | PROP_cfg,
131428 + .properties_provided = 0,
131429 + .properties_destroyed = 0,
131430 + .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
131431 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa
131432 +#if BUILDING_GCC_VERSION < 4009
131433 + }
131434 +#endif
131435 +};
131436 +
131437 +#if BUILDING_GCC_VERSION >= 4009
131438 +class latent_entropy_pass : public gimple_opt_pass {
131439 +public:
131440 + latent_entropy_pass() : gimple_opt_pass(latent_entropy_pass_data, g) {}
131441 +#if BUILDING_GCC_VERSION >= 5000
131442 + virtual bool gate(function *) { return gate_latent_entropy(); }
131443 + virtual unsigned int execute(function *) { return execute_latent_entropy(); }
131444 +#else
131445 + bool gate() { return gate_latent_entropy(); }
131446 + unsigned int execute() { return execute_latent_entropy(); }
131447 +#endif
131448 +};
131449 +}
131450 +
131451 +static opt_pass *make_latent_entropy_pass(void)
131452 +{
131453 + return new latent_entropy_pass();
131454 +}
131455 +#else
131456 +static struct opt_pass *make_latent_entropy_pass(void)
131457 +{
131458 + return &latent_entropy_pass.pass;
131459 +}
131460 +#endif
131461 +
131462 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
131463 +{
131464 + const char * const plugin_name = plugin_info->base_name;
131465 + struct register_pass_info latent_entropy_pass_info;
131466 +
131467 + latent_entropy_pass_info.pass = make_latent_entropy_pass();
131468 + latent_entropy_pass_info.reference_pass_name = "optimized";
131469 + latent_entropy_pass_info.ref_pass_instance_number = 1;
131470 + latent_entropy_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
131471 + static const struct ggc_root_tab gt_ggc_r_gt_latent_entropy[] = {
131472 + {
131473 + .base = &latent_entropy_decl,
131474 + .nelt = 1,
131475 + .stride = sizeof(latent_entropy_decl),
131476 + .cb = &gt_ggc_mx_tree_node,
131477 + .pchw = &gt_pch_nx_tree_node
131478 + },
131479 + LAST_GGC_ROOT_TAB
131480 + };
131481 +
131482 + if (!plugin_default_version_check(version, &gcc_version)) {
131483 + error(G_("incompatible gcc/plugin versions"));
131484 + return 1;
131485 + }
131486 +
131487 + register_callback(plugin_name, PLUGIN_INFO, NULL, &latent_entropy_plugin_info);
131488 + register_callback(plugin_name, PLUGIN_START_UNIT, &latent_entropy_start_unit, NULL);
131489 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_latent_entropy);
131490 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &latent_entropy_pass_info);
131491 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
131492 +
131493 + return 0;
131494 +}
131495 diff --git a/tools/gcc/randomize_layout_plugin.c b/tools/gcc/randomize_layout_plugin.c
131496 new file mode 100644
131497 index 0000000..06a039c
131498 --- /dev/null
131499 +++ b/tools/gcc/randomize_layout_plugin.c
131500 @@ -0,0 +1,930 @@
131501 +/*
131502 + * Copyright 2014,2015 by Open Source Security, Inc., Brad Spengler <spender@grsecurity.net>
131503 + * and PaX Team <pageexec@freemail.hu>
131504 + * Licensed under the GPL v2
131505 + *
131506 + * Usage:
131507 + * $ # for 4.5/4.6/C based 4.7
131508 + * $ 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
131509 + * $ # for C++ based 4.7/4.8+
131510 + * $ 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
131511 + * $ gcc -fplugin=./randomize_layout_plugin.so test.c -O2
131512 + */
131513 +
131514 +#include "gcc-common.h"
131515 +#include "randomize_layout_seed.h"
131516 +
131517 +#if BUILDING_GCC_MAJOR < 4 || (BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR < 6) || \
131518 + (BUILDING_GCC_MAJOR == 4 && BUILDING_GCC_MINOR == 6 && BUILDING_GCC_PATCHLEVEL < 4)
131519 +#error "The RANDSTRUCT plugin requires GCC 4.6.4 or newer."
131520 +#endif
131521 +
131522 +#define ORIG_TYPE_NAME(node) \
131523 + (TYPE_NAME(TYPE_MAIN_VARIANT(node)) != NULL_TREE ? ((const unsigned char *)IDENTIFIER_POINTER(TYPE_NAME(TYPE_MAIN_VARIANT(node)))) : (const unsigned char *)"anonymous")
131524 +
131525 +int plugin_is_GPL_compatible;
131526 +
131527 +static int performance_mode;
131528 +
131529 +static struct plugin_info randomize_layout_plugin_info = {
131530 + .version = "201402201816",
131531 + .help = "disable\t\t\tdo not activate plugin\n"
131532 + "performance-mode\tenable cacheline-aware layout randomization\n"
131533 +};
131534 +
131535 +/* from old Linux dcache.h */
131536 +static inline unsigned long
131537 +partial_name_hash(unsigned long c, unsigned long prevhash)
131538 +{
131539 + return (prevhash + (c << 4) + (c >> 4)) * 11;
131540 +}
131541 +static inline unsigned int
131542 +name_hash(const unsigned char *name)
131543 +{
131544 + unsigned long hash = 0;
131545 + unsigned int len = strlen((const char *)name);
131546 + while (len--)
131547 + hash = partial_name_hash(*name++, hash);
131548 + return (unsigned int)hash;
131549 +}
131550 +
131551 +static tree handle_randomize_layout_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
131552 +{
131553 + tree type;
131554 +
131555 + *no_add_attrs = true;
131556 + if (TREE_CODE(*node) == FUNCTION_DECL) {
131557 + error("%qE attribute does not apply to functions (%qF)", name, *node);
131558 + return NULL_TREE;
131559 + }
131560 +
131561 + if (TREE_CODE(*node) == PARM_DECL) {
131562 + error("%qE attribute does not apply to function parameters (%qD)", name, *node);
131563 + return NULL_TREE;
131564 + }
131565 +
131566 + if (TREE_CODE(*node) == VAR_DECL) {
131567 + error("%qE attribute does not apply to variables (%qD)", name, *node);
131568 + return NULL_TREE;
131569 + }
131570 +
131571 + if (TYPE_P(*node)) {
131572 + type = *node;
131573 + } else {
131574 + gcc_assert(TREE_CODE(*node) == TYPE_DECL);
131575 + type = TREE_TYPE(*node);
131576 + }
131577 +
131578 + if (TREE_CODE(type) != RECORD_TYPE) {
131579 + error("%qE attribute used on %qT applies to struct types only", name, type);
131580 + return NULL_TREE;
131581 + }
131582 +
131583 + if (lookup_attribute(IDENTIFIER_POINTER(name), TYPE_ATTRIBUTES(type))) {
131584 + error("%qE attribute is already applied to the type %qT", name, type);
131585 + return NULL_TREE;
131586 + }
131587 +
131588 + *no_add_attrs = false;
131589 +
131590 + return NULL_TREE;
131591 +}
131592 +
131593 +/* set on complete types that we don't need to inspect further at all */
131594 +static tree handle_randomize_considered_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
131595 +{
131596 + *no_add_attrs = false;
131597 + return NULL_TREE;
131598 +}
131599 +
131600 +/*
131601 + * set on types that we've performed a shuffle on, to prevent re-shuffling
131602 + * this does not preclude us from inspecting its fields for potential shuffles
131603 + */
131604 +static tree handle_randomize_performed_attr(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
131605 +{
131606 + *no_add_attrs = false;
131607 + return NULL_TREE;
131608 +}
131609 +
131610 +/*
131611 + * 64bit variant of Bob Jenkins' public domain PRNG
131612 + * 256 bits of internal state
131613 + */
131614 +
131615 +typedef unsigned long long u64;
131616 +
131617 +typedef struct ranctx { u64 a; u64 b; u64 c; u64 d; } ranctx;
131618 +
131619 +#define rot(x,k) (((x)<<(k))|((x)>>(64-(k))))
131620 +static u64 ranval(ranctx *x) {
131621 + u64 e = x->a - rot(x->b, 7);
131622 + x->a = x->b ^ rot(x->c, 13);
131623 + x->b = x->c + rot(x->d, 37);
131624 + x->c = x->d + e;
131625 + x->d = e + x->a;
131626 + return x->d;
131627 +}
131628 +
131629 +static void raninit(ranctx *x, u64 *seed) {
131630 + int i;
131631 +
131632 + x->a = seed[0];
131633 + x->b = seed[1];
131634 + x->c = seed[2];
131635 + x->d = seed[3];
131636 +
131637 + for (i=0; i < 30; ++i)
131638 + (void)ranval(x);
131639 +}
131640 +
131641 +static u64 shuffle_seed[4];
131642 +
131643 +struct partition_group {
131644 + tree tree_start;
131645 + unsigned long start;
131646 + unsigned long length;
131647 +};
131648 +
131649 +static void partition_struct(tree *fields, unsigned long length, struct partition_group *size_groups, unsigned long *num_groups)
131650 +{
131651 + unsigned long i;
131652 + unsigned long accum_size = 0;
131653 + unsigned long accum_length = 0;
131654 + unsigned long group_idx = 0;
131655 +
131656 + gcc_assert(length < INT_MAX);
131657 +
131658 + memset(size_groups, 0, sizeof(struct partition_group) * length);
131659 +
131660 + for (i = 0; i < length; i++) {
131661 + if (size_groups[group_idx].tree_start == NULL_TREE) {
131662 + size_groups[group_idx].tree_start = fields[i];
131663 + size_groups[group_idx].start = i;
131664 + accum_length = 0;
131665 + accum_size = 0;
131666 + }
131667 + accum_size += (unsigned long)int_size_in_bytes(TREE_TYPE(fields[i]));
131668 + accum_length++;
131669 + if (accum_size >= 64) {
131670 + size_groups[group_idx].length = accum_length;
131671 + accum_length = 0;
131672 + group_idx++;
131673 + }
131674 + }
131675 +
131676 + if (size_groups[group_idx].tree_start != NULL_TREE &&
131677 + !size_groups[group_idx].length) {
131678 + size_groups[group_idx].length = accum_length;
131679 + group_idx++;
131680 + }
131681 +
131682 + *num_groups = group_idx;
131683 +}
131684 +
131685 +static void performance_shuffle(tree *newtree, unsigned long length, ranctx *prng_state)
131686 +{
131687 + unsigned long i, x;
131688 + struct partition_group size_group[length];
131689 + unsigned long num_groups = 0;
131690 + unsigned long randnum;
131691 +
131692 + partition_struct(newtree, length, (struct partition_group *)&size_group, &num_groups);
131693 + for (i = num_groups - 1; i > 0; i--) {
131694 + struct partition_group tmp;
131695 + randnum = ranval(prng_state) % (i + 1);
131696 + tmp = size_group[i];
131697 + size_group[i] = size_group[randnum];
131698 + size_group[randnum] = tmp;
131699 + }
131700 +
131701 + for (x = 0; x < num_groups; x++) {
131702 + for (i = size_group[x].start + size_group[x].length - 1; i > size_group[x].start; i--) {
131703 + tree tmp;
131704 + if (DECL_BIT_FIELD_TYPE(newtree[i]))
131705 + continue;
131706 + randnum = ranval(prng_state) % (i + 1);
131707 + // we could handle this case differently if desired
131708 + if (DECL_BIT_FIELD_TYPE(newtree[randnum]))
131709 + continue;
131710 + tmp = newtree[i];
131711 + newtree[i] = newtree[randnum];
131712 + newtree[randnum] = tmp;
131713 + }
131714 + }
131715 +}
131716 +
131717 +static void full_shuffle(tree *newtree, unsigned long length, ranctx *prng_state)
131718 +{
131719 + unsigned long i, randnum;
131720 +
131721 + for (i = length - 1; i > 0; i--) {
131722 + tree tmp;
131723 + randnum = ranval(prng_state) % (i + 1);
131724 + tmp = newtree[i];
131725 + newtree[i] = newtree[randnum];
131726 + newtree[randnum] = tmp;
131727 + }
131728 +}
131729 +
131730 +/* modern in-place Fisher-Yates shuffle */
131731 +static void shuffle(const_tree type, tree *newtree, unsigned long length)
131732 +{
131733 + unsigned long i;
131734 + u64 seed[4];
131735 + ranctx prng_state;
131736 + const unsigned char *structname;
131737 +
131738 + if (length == 0)
131739 + return;
131740 +
131741 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
131742 +
131743 + structname = ORIG_TYPE_NAME(type);
131744 +
131745 +#ifdef __DEBUG_PLUGIN
131746 + fprintf(stderr, "Shuffling struct %s %p\n", (const char *)structname, type);
131747 +#ifdef __DEBUG_VERBOSE
131748 + debug_tree((tree)type);
131749 +#endif
131750 +#endif
131751 +
131752 + for (i = 0; i < 4; i++) {
131753 + seed[i] = shuffle_seed[i];
131754 + seed[i] ^= name_hash(structname);
131755 + }
131756 +
131757 + raninit(&prng_state, (u64 *)&seed);
131758 +
131759 + if (performance_mode)
131760 + performance_shuffle(newtree, length, &prng_state);
131761 + else
131762 + full_shuffle(newtree, length, &prng_state);
131763 +}
131764 +
131765 +static bool is_flexible_array(const_tree field)
131766 +{
131767 + const_tree fieldtype;
131768 + const_tree typesize;
131769 + const_tree elemtype;
131770 + const_tree elemsize;
131771 +
131772 + fieldtype = TREE_TYPE(field);
131773 + typesize = TYPE_SIZE(fieldtype);
131774 +
131775 + if (TREE_CODE(fieldtype) != ARRAY_TYPE)
131776 + return false;
131777 +
131778 + elemtype = TREE_TYPE(fieldtype);
131779 + elemsize = TYPE_SIZE(elemtype);
131780 +
131781 + /* size of type is represented in bits */
131782 +
131783 + if (typesize == NULL_TREE && TYPE_DOMAIN(fieldtype) != NULL_TREE &&
131784 + TYPE_MAX_VALUE(TYPE_DOMAIN(fieldtype)) == NULL_TREE)
131785 + return true;
131786 +
131787 + if (typesize != NULL_TREE &&
131788 + (TREE_CONSTANT(typesize) && (!TREE_INT_CST_LOW(typesize) ||
131789 + TREE_INT_CST_LOW(typesize) == TREE_INT_CST_LOW(elemsize))))
131790 + return true;
131791 +
131792 + return false;
131793 +}
131794 +
131795 +static int relayout_struct(tree type)
131796 +{
131797 + unsigned long num_fields = (unsigned long)list_length(TYPE_FIELDS(type));
131798 + unsigned long shuffle_length = num_fields;
131799 + tree field;
131800 + tree newtree[num_fields];
131801 + unsigned long i;
131802 + tree list;
131803 + tree variant;
131804 + tree main_variant;
131805 + expanded_location xloc;
131806 +
131807 + if (TYPE_FIELDS(type) == NULL_TREE)
131808 + return 0;
131809 +
131810 + if (num_fields < 2)
131811 + return 0;
131812 +
131813 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
131814 +
131815 + gcc_assert(num_fields < INT_MAX);
131816 +
131817 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(type)) ||
131818 + lookup_attribute("no_randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))))
131819 + return 0;
131820 +
131821 + /* Workaround for 3rd-party VirtualBox source that we can't modify ourselves */
131822 + if (!strcmp((const char *)ORIG_TYPE_NAME(type), "INTNETTRUNKFACTORY") ||
131823 + !strcmp((const char *)ORIG_TYPE_NAME(type), "RAWPCIFACTORY"))
131824 + return 0;
131825 +
131826 + /* throw out any structs in uapi */
131827 + xloc = expand_location(DECL_SOURCE_LOCATION(TYPE_FIELDS(type)));
131828 +
131829 + if (strstr(xloc.file, "/uapi/"))
131830 + error(G_("attempted to randomize userland API struct %s"), ORIG_TYPE_NAME(type));
131831 +
131832 + for (field = TYPE_FIELDS(type), i = 0; field; field = TREE_CHAIN(field), i++) {
131833 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
131834 + newtree[i] = field;
131835 + }
131836 +
131837 + /*
131838 + * enforce that we don't randomize the layout of the last
131839 + * element of a struct if it's a 0 or 1-length array
131840 + * or a proper flexible array
131841 + */
131842 + if (is_flexible_array(newtree[num_fields - 1]))
131843 + shuffle_length--;
131844 +
131845 + shuffle(type, (tree *)newtree, shuffle_length);
131846 +
131847 + /*
131848 + * set up a bogus anonymous struct field designed to error out on unnamed struct initializers
131849 + * as gcc provides no other way to detect such code
131850 + */
131851 + list = make_node(FIELD_DECL);
131852 + TREE_CHAIN(list) = newtree[0];
131853 + TREE_TYPE(list) = void_type_node;
131854 + DECL_SIZE(list) = bitsize_zero_node;
131855 + DECL_NONADDRESSABLE_P(list) = 1;
131856 + DECL_FIELD_BIT_OFFSET(list) = bitsize_zero_node;
131857 + DECL_SIZE_UNIT(list) = size_zero_node;
131858 + DECL_FIELD_OFFSET(list) = size_zero_node;
131859 + DECL_CONTEXT(list) = type;
131860 + // to satisfy the constify plugin
131861 + TREE_READONLY(list) = 1;
131862 +
131863 + for (i = 0; i < num_fields - 1; i++)
131864 + TREE_CHAIN(newtree[i]) = newtree[i+1];
131865 + TREE_CHAIN(newtree[num_fields - 1]) = NULL_TREE;
131866 +
131867 + main_variant = TYPE_MAIN_VARIANT(type);
131868 + for (variant = main_variant; variant; variant = TYPE_NEXT_VARIANT(variant)) {
131869 + TYPE_FIELDS(variant) = list;
131870 + TYPE_ATTRIBUTES(variant) = copy_list(TYPE_ATTRIBUTES(variant));
131871 + TYPE_ATTRIBUTES(variant) = tree_cons(get_identifier("randomize_performed"), NULL_TREE, TYPE_ATTRIBUTES(variant));
131872 + }
131873 +
131874 + /*
131875 + * force a re-layout of the main variant
131876 + * the TYPE_SIZE for all variants will be recomputed
131877 + * by finalize_type_size()
131878 + */
131879 + TYPE_SIZE(main_variant) = NULL_TREE;
131880 + layout_type(main_variant);
131881 + gcc_assert(TYPE_SIZE(main_variant) != NULL_TREE);
131882 +
131883 + return 1;
131884 +}
131885 +
131886 +/* from constify plugin */
131887 +static const_tree get_field_type(const_tree field)
131888 +{
131889 + return strip_array_types(TREE_TYPE(field));
131890 +}
131891 +
131892 +/* from constify plugin */
131893 +static bool is_fptr(const_tree fieldtype)
131894 +{
131895 + if (TREE_CODE(fieldtype) != POINTER_TYPE)
131896 + return false;
131897 +
131898 + return TREE_CODE(TREE_TYPE(fieldtype)) == FUNCTION_TYPE;
131899 +}
131900 +
131901 +/* derived from constify plugin */
131902 +static int is_pure_ops_struct(const_tree node)
131903 +{
131904 + const_tree field;
131905 +
131906 + gcc_assert(TREE_CODE(node) == RECORD_TYPE || TREE_CODE(node) == UNION_TYPE);
131907 +
131908 + for (field = TYPE_FIELDS(node); field; field = TREE_CHAIN(field)) {
131909 + const_tree fieldtype = get_field_type(field);
131910 + enum tree_code code = TREE_CODE(fieldtype);
131911 +
131912 + if (node == fieldtype)
131913 + continue;
131914 +
131915 + if (!is_fptr(fieldtype))
131916 + return 0;
131917 +
131918 + if (code != RECORD_TYPE && code != UNION_TYPE)
131919 + continue;
131920 +
131921 + if (!is_pure_ops_struct(fieldtype))
131922 + return 0;
131923 + }
131924 +
131925 + return 1;
131926 +}
131927 +
131928 +static void randomize_type(tree type)
131929 +{
131930 + tree variant;
131931 +
131932 + gcc_assert(TREE_CODE(type) == RECORD_TYPE);
131933 +
131934 + if (lookup_attribute("randomize_considered", TYPE_ATTRIBUTES(type)))
131935 + return;
131936 +
131937 + if (lookup_attribute("randomize_layout", TYPE_ATTRIBUTES(TYPE_MAIN_VARIANT(type))) || is_pure_ops_struct(type))
131938 + relayout_struct(type);
131939 +
131940 + for (variant = TYPE_MAIN_VARIANT(type); variant; variant = TYPE_NEXT_VARIANT(variant)) {
131941 + TYPE_ATTRIBUTES(type) = copy_list(TYPE_ATTRIBUTES(type));
131942 + TYPE_ATTRIBUTES(type) = tree_cons(get_identifier("randomize_considered"), NULL_TREE, TYPE_ATTRIBUTES(type));
131943 + }
131944 +#ifdef __DEBUG_PLUGIN
131945 + fprintf(stderr, "Marking randomize_considered on struct %s\n", ORIG_TYPE_NAME(type));
131946 +#ifdef __DEBUG_VERBOSE
131947 + debug_tree(type);
131948 +#endif
131949 +#endif
131950 +}
131951 +
131952 +static void randomize_layout_finish_decl(void *event_data, void *data)
131953 +{
131954 + tree decl = (tree)event_data;
131955 + tree type;
131956 +
131957 + if (decl == NULL_TREE || decl == error_mark_node)
131958 + return;
131959 +
131960 + type = TREE_TYPE(decl);
131961 +
131962 + if (TREE_CODE(decl) != VAR_DECL)
131963 + return;
131964 +
131965 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
131966 + return;
131967 +
131968 + if (!lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(type)))
131969 + return;
131970 +
131971 + relayout_decl(decl);
131972 +}
131973 +
131974 +static void finish_type(void *event_data, void *data)
131975 +{
131976 + tree type = (tree)event_data;
131977 +
131978 + if (type == NULL_TREE || type == error_mark_node)
131979 + return;
131980 +
131981 + if (TREE_CODE(type) != RECORD_TYPE)
131982 + return;
131983 +
131984 + if (TYPE_FIELDS(type) == NULL_TREE)
131985 + return;
131986 +
131987 + if (lookup_attribute("randomize_considered", TYPE_ATTRIBUTES(type)))
131988 + return;
131989 +
131990 +#ifdef __DEBUG_PLUGIN
131991 + fprintf(stderr, "Calling randomize_type on %s\n", ORIG_TYPE_NAME(type));
131992 +#endif
131993 +#ifdef __DEBUG_VERBOSE
131994 + debug_tree(type);
131995 +#endif
131996 + randomize_type(type);
131997 +
131998 + return;
131999 +}
132000 +
132001 +static struct attribute_spec randomize_layout_attr = {
132002 + .name = "randomize_layout",
132003 + // related to args
132004 + .min_length = 0,
132005 + .max_length = 0,
132006 + .decl_required = false,
132007 + // need type declaration
132008 + .type_required = true,
132009 + .function_type_required = false,
132010 + .handler = handle_randomize_layout_attr,
132011 +#if BUILDING_GCC_VERSION >= 4007
132012 + .affects_type_identity = true
132013 +#endif
132014 +};
132015 +
132016 +static struct attribute_spec no_randomize_layout_attr = {
132017 + .name = "no_randomize_layout",
132018 + // related to args
132019 + .min_length = 0,
132020 + .max_length = 0,
132021 + .decl_required = false,
132022 + // need type declaration
132023 + .type_required = true,
132024 + .function_type_required = false,
132025 + .handler = handle_randomize_layout_attr,
132026 +#if BUILDING_GCC_VERSION >= 4007
132027 + .affects_type_identity = true
132028 +#endif
132029 +};
132030 +
132031 +static struct attribute_spec randomize_considered_attr = {
132032 + .name = "randomize_considered",
132033 + // related to args
132034 + .min_length = 0,
132035 + .max_length = 0,
132036 + .decl_required = false,
132037 + // need type declaration
132038 + .type_required = true,
132039 + .function_type_required = false,
132040 + .handler = handle_randomize_considered_attr,
132041 +#if BUILDING_GCC_VERSION >= 4007
132042 + .affects_type_identity = false
132043 +#endif
132044 +};
132045 +
132046 +static struct attribute_spec randomize_performed_attr = {
132047 + .name = "randomize_performed",
132048 + // related to args
132049 + .min_length = 0,
132050 + .max_length = 0,
132051 + .decl_required = false,
132052 + // need type declaration
132053 + .type_required = true,
132054 + .function_type_required = false,
132055 + .handler = handle_randomize_performed_attr,
132056 +#if BUILDING_GCC_VERSION >= 4007
132057 + .affects_type_identity = false
132058 +#endif
132059 +};
132060 +
132061 +static void register_attributes(void *event_data, void *data)
132062 +{
132063 + register_attribute(&randomize_layout_attr);
132064 + register_attribute(&no_randomize_layout_attr);
132065 + register_attribute(&randomize_considered_attr);
132066 + register_attribute(&randomize_performed_attr);
132067 +}
132068 +
132069 +static void check_bad_casts_in_constructor(tree var, tree init)
132070 +{
132071 + unsigned HOST_WIDE_INT idx;
132072 + tree field, val;
132073 + tree field_type, val_type;
132074 +
132075 + FOR_EACH_CONSTRUCTOR_ELT(CONSTRUCTOR_ELTS(init), idx, field, val) {
132076 + if (TREE_CODE(val) == CONSTRUCTOR) {
132077 + check_bad_casts_in_constructor(var, val);
132078 + continue;
132079 + }
132080 +
132081 + /* pipacs' plugin creates franken-arrays that differ from those produced by
132082 + normal code which all have valid 'field' trees. work around this */
132083 + if (field == NULL_TREE)
132084 + continue;
132085 + field_type = TREE_TYPE(field);
132086 + val_type = TREE_TYPE(val);
132087 +
132088 + if (TREE_CODE(field_type) != POINTER_TYPE || TREE_CODE(val_type) != POINTER_TYPE)
132089 + continue;
132090 +
132091 + if (field_type == val_type)
132092 + continue;
132093 +
132094 + field_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(field_type))));
132095 + val_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(val_type))));
132096 +
132097 + if (field_type == void_type_node)
132098 + continue;
132099 + if (field_type == val_type)
132100 + continue;
132101 + if (TREE_CODE(val_type) != RECORD_TYPE)
132102 + continue;
132103 +
132104 + if (!lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(val_type)))
132105 + continue;
132106 + inform(DECL_SOURCE_LOCATION(var), "found mismatched struct pointer types: %qT and %qT\n", TYPE_MAIN_VARIANT(field_type), TYPE_MAIN_VARIANT(val_type));
132107 + }
132108 +}
132109 +
132110 +/* derived from the constify plugin */
132111 +static void check_global_variables(void *event_data, void *data)
132112 +{
132113 + struct varpool_node *node;
132114 + tree init;
132115 +
132116 + FOR_EACH_VARIABLE(node) {
132117 + tree var = NODE_DECL(node);
132118 + init = DECL_INITIAL(var);
132119 + if (init == NULL_TREE)
132120 + continue;
132121 +
132122 + if (TREE_CODE(init) != CONSTRUCTOR)
132123 + continue;
132124 +
132125 + check_bad_casts_in_constructor(var, init);
132126 + }
132127 +}
132128 +
132129 +static bool dominated_by_is_err(const_tree rhs, basic_block bb)
132130 +{
132131 + basic_block dom;
132132 + gimple dom_stmt;
132133 + gimple call_stmt;
132134 + const_tree dom_lhs;
132135 + const_tree poss_is_err_cond;
132136 + const_tree poss_is_err_func;
132137 + const_tree is_err_arg;
132138 +
132139 + dom = get_immediate_dominator(CDI_DOMINATORS, bb);
132140 + if (!dom)
132141 + return false;
132142 +
132143 + dom_stmt = last_stmt(dom);
132144 + if (!dom_stmt)
132145 + return false;
132146 +
132147 + if (gimple_code(dom_stmt) != GIMPLE_COND)
132148 + return false;
132149 +
132150 + if (gimple_cond_code(dom_stmt) != NE_EXPR)
132151 + return false;
132152 +
132153 + if (!integer_zerop(gimple_cond_rhs(dom_stmt)))
132154 + return false;
132155 +
132156 + poss_is_err_cond = gimple_cond_lhs(dom_stmt);
132157 +
132158 + if (TREE_CODE(poss_is_err_cond) != SSA_NAME)
132159 + return false;
132160 +
132161 + call_stmt = SSA_NAME_DEF_STMT(poss_is_err_cond);
132162 +
132163 + if (gimple_code(call_stmt) != GIMPLE_CALL)
132164 + return false;
132165 +
132166 + dom_lhs = gimple_get_lhs(call_stmt);
132167 + poss_is_err_func = gimple_call_fndecl(call_stmt);
132168 + if (!poss_is_err_func)
132169 + return false;
132170 + if (dom_lhs != poss_is_err_cond)
132171 + return false;
132172 + if (strcmp(DECL_NAME_POINTER(poss_is_err_func), "IS_ERR"))
132173 + return false;
132174 +
132175 + is_err_arg = gimple_call_arg(call_stmt, 0);
132176 + if (!is_err_arg)
132177 + return false;
132178 +
132179 + if (is_err_arg != rhs)
132180 + return false;
132181 +
132182 + return true;
132183 +}
132184 +
132185 +static void handle_local_var_initializers(void)
132186 +{
132187 + tree var;
132188 + unsigned int i;
132189 +
132190 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
132191 + tree init = DECL_INITIAL(var);
132192 + if (!init)
132193 + continue;
132194 + if (TREE_CODE(init) != CONSTRUCTOR)
132195 + continue;
132196 + check_bad_casts_in_constructor(var, init);
132197 + }
132198 +}
132199 +
132200 +/*
132201 + * iterate over all statements to find "bad" casts:
132202 + * those where the address of the start of a structure is cast
132203 + * to a pointer of a structure of a different type, or a
132204 + * structure pointer type is cast to a different structure pointer type
132205 + */
132206 +static unsigned int find_bad_casts(void)
132207 +{
132208 + basic_block bb;
132209 +
132210 + handle_local_var_initializers();
132211 +
132212 + FOR_ALL_BB_FN(bb, cfun) {
132213 + gimple_stmt_iterator gsi;
132214 +
132215 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
132216 + gimple stmt;
132217 + const_tree lhs;
132218 + const_tree lhs_type;
132219 + const_tree rhs1;
132220 + const_tree rhs_type;
132221 + const_tree ptr_lhs_type;
132222 + const_tree ptr_rhs_type;
132223 + const_tree op0;
132224 + const_tree op0_type;
132225 + enum tree_code rhs_code;
132226 +
132227 + stmt = gsi_stmt(gsi);
132228 +
132229 +#ifdef __DEBUG_PLUGIN
132230 +#ifdef __DEBUG_VERBOSE
132231 + debug_gimple_stmt(stmt);
132232 + debug_tree(gimple_get_lhs(stmt));
132233 +#endif
132234 +#endif
132235 +
132236 + if (gimple_code(stmt) != GIMPLE_ASSIGN)
132237 + continue;
132238 +
132239 +#ifdef __DEBUG_PLUGIN
132240 +#ifdef __DEBUG_VERBOSE
132241 + debug_tree(gimple_assign_rhs1(stmt));
132242 +#endif
132243 +#endif
132244 +
132245 + rhs_code = gimple_assign_rhs_code(stmt);
132246 +
132247 + if (rhs_code != ADDR_EXPR && rhs_code != SSA_NAME)
132248 + continue;
132249 +
132250 + lhs = gimple_get_lhs(stmt);
132251 + lhs_type = TREE_TYPE(lhs);
132252 + rhs1 = gimple_assign_rhs1(stmt);
132253 + rhs_type = TREE_TYPE(rhs1);
132254 +
132255 + if (TREE_CODE(rhs_type) != POINTER_TYPE ||
132256 + TREE_CODE(lhs_type) != POINTER_TYPE)
132257 + continue;
132258 +
132259 + ptr_lhs_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(lhs_type))));
132260 + ptr_rhs_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(rhs_type))));
132261 +
132262 + if (ptr_rhs_type == void_type_node)
132263 + continue;
132264 +
132265 + if (ptr_lhs_type == void_type_node)
132266 + continue;
132267 +
132268 + if (dominated_by_is_err(rhs1, bb))
132269 + continue;
132270 +
132271 + if (TREE_CODE(ptr_rhs_type) != RECORD_TYPE) {
132272 +#ifndef __DEBUG_PLUGIN
132273 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(ptr_lhs_type)))
132274 +#endif
132275 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, ptr_rhs_type);
132276 + continue;
132277 + }
132278 +
132279 + if (rhs_code == SSA_NAME && ptr_lhs_type == ptr_rhs_type)
132280 + continue;
132281 +
132282 + if (rhs_code == ADDR_EXPR) {
132283 + op0 = TREE_OPERAND(rhs1, 0);
132284 +
132285 + if (op0 == NULL_TREE)
132286 + continue;
132287 +
132288 + if (TREE_CODE(op0) != VAR_DECL)
132289 + continue;
132290 +
132291 + op0_type = TYPE_MAIN_VARIANT(strip_array_types(TYPE_MAIN_VARIANT(TREE_TYPE(op0))));
132292 + if (op0_type == ptr_lhs_type)
132293 + continue;
132294 +
132295 +#ifndef __DEBUG_PLUGIN
132296 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(op0_type)))
132297 +#endif
132298 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, op0_type);
132299 + } else {
132300 + const_tree ssa_name_var = SSA_NAME_VAR(rhs1);
132301 + /* skip bogus type casts introduced by container_of */
132302 + if (ssa_name_var != NULL_TREE && DECL_NAME(ssa_name_var) &&
132303 + !strcmp((const char *)DECL_NAME_POINTER(ssa_name_var), "__mptr"))
132304 + continue;
132305 +#ifndef __DEBUG_PLUGIN
132306 + if (lookup_attribute("randomize_performed", TYPE_ATTRIBUTES(ptr_rhs_type)))
132307 +#endif
132308 + inform(gimple_location(stmt), "found mismatched struct pointer types: %qT and %qT\n", ptr_lhs_type, ptr_rhs_type);
132309 + }
132310 +
132311 + }
132312 + }
132313 + return 0;
132314 +}
132315 +
132316 +#if BUILDING_GCC_VERSION >= 4009
132317 +static const struct pass_data randomize_layout_bad_cast_data = {
132318 +#else
132319 +static struct gimple_opt_pass randomize_layout_bad_cast = {
132320 + .pass = {
132321 +#endif
132322 + .type = GIMPLE_PASS,
132323 + .name = "randomize_layout_bad_cast",
132324 +#if BUILDING_GCC_VERSION >= 4008
132325 + .optinfo_flags = OPTGROUP_NONE,
132326 +#endif
132327 +#if BUILDING_GCC_VERSION >= 5000
132328 +#elif BUILDING_GCC_VERSION >= 4009
132329 + .has_gate = false,
132330 + .has_execute = true,
132331 +#else
132332 + .gate = NULL,
132333 + .execute = find_bad_casts,
132334 + .sub = NULL,
132335 + .next = NULL,
132336 + .static_pass_number = 0,
132337 +#endif
132338 + .tv_id = TV_NONE,
132339 + .properties_required = PROP_cfg,
132340 + .properties_provided = 0,
132341 + .properties_destroyed = 0,
132342 + .todo_flags_start = 0,
132343 + .todo_flags_finish = TODO_dump_func
132344 +#if BUILDING_GCC_VERSION < 4009
132345 + }
132346 +#endif
132347 +};
132348 +
132349 +#if BUILDING_GCC_VERSION >= 4009
132350 +namespace {
132351 +class randomize_layout_bad_cast : public gimple_opt_pass {
132352 +public:
132353 + randomize_layout_bad_cast() : gimple_opt_pass(randomize_layout_bad_cast_data, g) {}
132354 +#if BUILDING_GCC_VERSION >= 5000
132355 + virtual unsigned int execute(function *) { return find_bad_casts(); }
132356 +#else
132357 + unsigned int execute() { return find_bad_casts(); }
132358 +#endif
132359 +};
132360 +}
132361 +#endif
132362 +
132363 +static struct opt_pass *make_randomize_layout_bad_cast(void)
132364 +{
132365 +#if BUILDING_GCC_VERSION >= 4009
132366 + return new randomize_layout_bad_cast();
132367 +#else
132368 + return &randomize_layout_bad_cast.pass;
132369 +#endif
132370 +}
132371 +
132372 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
132373 +{
132374 + int i;
132375 + const char * const plugin_name = plugin_info->base_name;
132376 + const int argc = plugin_info->argc;
132377 + const struct plugin_argument * const argv = plugin_info->argv;
132378 + bool enable = true;
132379 + int obtained_seed = 0;
132380 + struct register_pass_info randomize_layout_bad_cast_info;
132381 +
132382 + randomize_layout_bad_cast_info.pass = make_randomize_layout_bad_cast();
132383 + randomize_layout_bad_cast_info.reference_pass_name = "ssa";
132384 + randomize_layout_bad_cast_info.ref_pass_instance_number = 1;
132385 + randomize_layout_bad_cast_info.pos_op = PASS_POS_INSERT_AFTER;
132386 +
132387 + if (!plugin_default_version_check(version, &gcc_version)) {
132388 + error(G_("incompatible gcc/plugin versions"));
132389 + return 1;
132390 + }
132391 +
132392 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
132393 + inform(UNKNOWN_LOCATION, G_("%s supports C only, not %s"), plugin_name, lang_hooks.name);
132394 + enable = false;
132395 + }
132396 +
132397 + for (i = 0; i < argc; ++i) {
132398 + if (!strcmp(argv[i].key, "disable")) {
132399 + enable = false;
132400 + continue;
132401 + }
132402 + if (!strcmp(argv[i].key, "performance-mode")) {
132403 + performance_mode = 1;
132404 + continue;
132405 + }
132406 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
132407 + }
132408 +
132409 + if (strlen(randstruct_seed) != 64) {
132410 + error(G_("invalid seed value supplied for %s plugin"), plugin_name);
132411 + return 1;
132412 + }
132413 + obtained_seed = sscanf(randstruct_seed, "%016llx%016llx%016llx%016llx",
132414 + &shuffle_seed[0], &shuffle_seed[1], &shuffle_seed[2], &shuffle_seed[3]);
132415 + if (obtained_seed != 4) {
132416 + error(G_("Invalid seed supplied for %s plugin"), plugin_name);
132417 + return 1;
132418 + }
132419 +
132420 + register_callback(plugin_name, PLUGIN_INFO, NULL, &randomize_layout_plugin_info);
132421 + if (enable) {
132422 + register_callback(plugin_name, PLUGIN_ALL_IPA_PASSES_START, check_global_variables, NULL);
132423 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &randomize_layout_bad_cast_info);
132424 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
132425 + register_callback(plugin_name, PLUGIN_FINISH_DECL, randomize_layout_finish_decl, NULL);
132426 + }
132427 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
132428 +
132429 + return 0;
132430 +}
132431 diff --git a/tools/gcc/size_overflow_plugin/.gitignore b/tools/gcc/size_overflow_plugin/.gitignore
132432 new file mode 100644
132433 index 0000000..c4b24b9
132434 --- /dev/null
132435 +++ b/tools/gcc/size_overflow_plugin/.gitignore
132436 @@ -0,0 +1,3 @@
132437 +disable_size_overflow_hash.h
132438 +size_overflow_hash.h
132439 +size_overflow_hash_aux.h
132440 diff --git a/tools/gcc/size_overflow_plugin/Makefile b/tools/gcc/size_overflow_plugin/Makefile
132441 new file mode 100644
132442 index 0000000..4c7f7c6
132443 --- /dev/null
132444 +++ b/tools/gcc/size_overflow_plugin/Makefile
132445 @@ -0,0 +1,26 @@
132446 +$(HOSTLIBS)-$(CONFIG_PAX_SIZE_OVERFLOW) += size_overflow_plugin.so
132447 +always := $($(HOSTLIBS)-y)
132448 +
132449 +size_overflow_plugin-objs := $(patsubst $(srctree)/$(src)/%.c,%.o,$(wildcard $(srctree)/$(src)/*.c))
132450 +
132451 +$(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
132452 +
132453 +quiet_cmd_build_size_overflow_hash = GENHASH $@
132454 + cmd_build_size_overflow_hash = \
132455 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s size_overflow_hash -d $< -o $@
132456 +$(objtree)/$(obj)/size_overflow_hash.h: $(src)/size_overflow_hash.data FORCE
132457 + $(call if_changed,build_size_overflow_hash)
132458 +
132459 +quiet_cmd_build_size_overflow_hash_aux = GENHASH $@
132460 + cmd_build_size_overflow_hash_aux = \
132461 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s size_overflow_hash_aux -d $< -o $@
132462 +$(objtree)/$(obj)/size_overflow_hash_aux.h: $(src)/size_overflow_hash_aux.data FORCE
132463 + $(call if_changed,build_size_overflow_hash_aux)
132464 +
132465 +quiet_cmd_build_disable_size_overflow_hash = GENHASH $@
132466 + cmd_build_disable_size_overflow_hash = \
132467 + $(CONFIG_SHELL) $(srctree)/$(src)/generate_size_overflow_hash.sh -s disable_size_overflow_hash -d $< -o $@
132468 +$(objtree)/$(obj)/disable_size_overflow_hash.h: $(src)/disable_size_overflow_hash.data FORCE
132469 + $(call if_changed,build_disable_size_overflow_hash)
132470 +
132471 +targets += size_overflow_hash.h size_overflow_hash_aux.h disable_size_overflow_hash.h
132472 diff --git a/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data b/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data
132473 new file mode 100644
132474 index 0000000..0adc842
132475 --- /dev/null
132476 +++ b/tools/gcc/size_overflow_plugin/disable_size_overflow_hash.data
132477 @@ -0,0 +1,12414 @@
132478 +disable_so_interrupt_pnode_gru_message_queue_desc_4 interrupt_pnode gru_message_queue_desc 0 4 NULL
132479 +disable_so_bch_btree_insert_fndecl_12 bch_btree_insert fndecl 0 12 NULL
132480 +disable_so_macvlan_sync_address_fndecl_22 macvlan_sync_address fndecl 0 22 NULL nohasharray
132481 +disable_so_sil_iowrite8_fndecl_22 sil_iowrite8 fndecl 3-2 22 &disable_so_macvlan_sync_address_fndecl_22
132482 +disable_so_addr_to_user_sctp_pf_23 addr_to_user sctp_pf 0 23 NULL nohasharray
132483 +disable_so_signalquality_rtl_stats_23 signalquality rtl_stats 0 23 &disable_so_addr_to_user_sctp_pf_23
132484 +disable_so_sem_otime_semid64_ds_29 sem_otime semid64_ds 0 29 NULL
132485 +disable_so_rec8b_ide_timing_33 rec8b ide_timing 0 33 NULL
132486 +disable_so_stime_task_struct_41 stime task_struct 0 41 NULL nohasharray
132487 +disable_so_ulist_rbtree_search_fndecl_41 ulist_rbtree_search fndecl 2 41 &disable_so_stime_task_struct_41
132488 +disable_so_pfuze100_set_ramp_delay_fndecl_52 pfuze100_set_ramp_delay fndecl 0-2 52 NULL
132489 +disable_so_make_sockaddr_fndecl_54 make_sockaddr fndecl 2 54 NULL
132490 +disable_so_mmap_min_addr_vardecl_56 mmap_min_addr vardecl 0 56 NULL nohasharray
132491 +disable_so_mwl8k_cmd_get_watchdog_bitmap_fndecl_56 mwl8k_cmd_get_watchdog_bitmap fndecl 0 56 &disable_so_mmap_min_addr_vardecl_56
132492 +disable_so_panel_power_down_delay_cdv_intel_dp_59 panel_power_down_delay cdv_intel_dp 0 59 NULL
132493 +disable_so_max_ref_div_radeon_pll_60 max_ref_div radeon_pll 0 60 NULL
132494 +disable_so_penirq_recheck_delay_usecs_ads7846_81 penirq_recheck_delay_usecs ads7846 0 81 NULL
132495 +disable_so_cobalt_query_dv_timings_fndecl_82 cobalt_query_dv_timings fndecl 0 82 NULL
132496 +disable_so_timeout_slgt_info_83 timeout slgt_info 0 83 NULL
132497 +disable_so_radio_syn_reserved_addr28_b43_nphy_channeltab_entry_rev3_92 radio_syn_reserved_addr28 b43_nphy_channeltab_entry_rev3 0 92 NULL
132498 +disable_so_vsc824x_ack_interrupt_fndecl_109 vsc824x_ack_interrupt fndecl 0 109 NULL
132499 +disable_so_scan_timing_sh_keysc_info_117 scan_timing sh_keysc_info 0 117 NULL
132500 +disable_so_cp_table_gpu_addr_radeon_rlc_124 cp_table_gpu_addr radeon_rlc 0 124 NULL
132501 +disable_so_mpihelp_mul_karatsuba_case_fndecl_125 mpihelp_mul_karatsuba_case fndecl 3-5 125 NULL nohasharray
132502 +disable_so_g84_cipher_object_ctor_fndecl_125 g84_cipher_object_ctor fndecl 0 125 &disable_so_mpihelp_mul_karatsuba_case_fndecl_125
132503 +disable_so_current_nat_addr_fndecl_130 current_nat_addr fndecl 0-2 130 NULL
132504 +disable_so_qla2x00_gid_pt_rsp_size_fndecl_134 qla2x00_gid_pt_rsp_size fndecl 0 134 NULL
132505 +disable_so_zd_check_signal_fndecl_139 zd_check_signal fndecl 0-2 139 NULL
132506 +disable_so_qlcnic_83xx_interrupt_test_fndecl_160 qlcnic_83xx_interrupt_test fndecl 0 160 NULL
132507 +disable_so_show_cpu_clock_sel_fndecl_161 show_cpu_clock_sel fndecl 0 161 NULL
132508 +disable_so_zd_usb_iowrite16v_async_fndecl_163 zd_usb_iowrite16v_async fndecl 3 163 NULL
132509 +disable_so_si_get_mclk_frequency_ratio_fndecl_169 si_get_mclk_frequency_ratio fndecl 0-1 169 NULL
132510 +disable_so_vactive_vblank_hi_detailed_pixel_timing_173 vactive_vblank_hi detailed_pixel_timing 0 173 NULL
132511 +disable_so_ecryptfs_hash_bits_vardecl_messaging_c_174 ecryptfs_hash_bits vardecl_messaging.c 0 174 NULL
132512 +disable_so_addr_efx_endpoint_page_189 addr efx_endpoint_page 0 189 NULL
132513 +disable_so_uptime_proc_open_fndecl_190 uptime_proc_open fndecl 0 190 NULL
132514 +disable_so_mtrr_tom2_vardecl_198 mtrr_tom2 vardecl 0 198 NULL
132515 +disable_so_addr_sh_eth_txdesc_201 addr sh_eth_txdesc 0 201 NULL
132516 +disable_so_ocfs2_info_handle_uuid_fndecl_202 ocfs2_info_handle_uuid fndecl 0 202 NULL
132517 +disable_so_nf_oaktrail_hdmi_clock_216 nf oaktrail_hdmi_clock 0 216 NULL
132518 +disable_so_cpufreq_p4_setdc_fndecl_226 cpufreq_p4_setdc fndecl 1-2 226 NULL
132519 +disable_so_ieee80211_aes_ccm_decrypt_fndecl_227 ieee80211_aes_ccm_decrypt fndecl 0-5-7 227 NULL
132520 +disable_so_l1oip_4bit_to_law_fndecl_247 l1oip_4bit_to_law fndecl 0-2 247 NULL
132521 +disable_so_tune_timeout_vardecl_radio_si470x_common_c_250 tune_timeout vardecl_radio-si470x-common.c 0 250 NULL
132522 +disable_so_ieee80211_aes_cmac_key_setup_fndecl_254 ieee80211_aes_cmac_key_setup fndecl 2 254 NULL
132523 +disable_so_padlock_sha1_finup_fndecl_258 padlock_sha1_finup fndecl 0 258 NULL
132524 +disable_so_iwl_dbgfs_interrupt_read_fndecl_261 iwl_dbgfs_interrupt_read fndecl 3-0 261 NULL
132525 +disable_so_c2_del_addr_fndecl_280 c2_del_addr fndecl 2-3 280 NULL
132526 +disable_so_get_systime_stmmac_hwtimestamp_281 get_systime stmmac_hwtimestamp 0 281 NULL
132527 +disable_so_xfrm_flowi_saddr_fndecl_287 xfrm_flowi_saddr fndecl 2 287 NULL
132528 +disable_so_lifetime_route_info_291 lifetime route_info 0 291 NULL
132529 +disable_so_mtime_cifs_unix_set_info_args_293 mtime cifs_unix_set_info_args 0 293 NULL
132530 +disable_so_sense_addr_mscp_296 sense_addr mscp 0 296 NULL
132531 +disable_so_module_addr_max_rx_vardecl_module_c_304 module_addr_max_rx vardecl_module.c 0 304 NULL
132532 +disable_so_cy8ctmg110_set_sleepmode_fndecl_309 cy8ctmg110_set_sleepmode fndecl 0 309 NULL
132533 +disable_so_signal_cck_phy_hdr_312 signal cck_phy_hdr 0 312 NULL
132534 +disable_so_i915_ring_freq_table_fndecl_313 i915_ring_freq_table fndecl 0 313 NULL
132535 +disable_so_vga16fb_clock_chip_fndecl_316 vga16fb_clock_chip fndecl 2 316 NULL
132536 +disable_so_abituguru_send_address_fndecl_319 abituguru_send_address fndecl 3 319 NULL
132537 +disable_so_err_hci_request_321 err hci_request 0 321 NULL
132538 +disable_so_timeout_sg_io_hdr_322 timeout sg_io_hdr 0 322 NULL
132539 +disable_so_crypto_aead_maxauthsize_fndecl_331 crypto_aead_maxauthsize fndecl 0 331 NULL
132540 +disable_so_gru_first_node_paddr_vardecl_x2apic_uv_x_c_335 gru_first_node_paddr vardecl_x2apic_uv_x.c 0 335 NULL
132541 +disable_so_bitmap_subset_fndecl_340 bitmap_subset fndecl 3 340 NULL
132542 +disable_so_intr_timer_vnic_fc_config_342 intr_timer vnic_fc_config 0 342 NULL
132543 +disable_so_abort_timeout_iscsi_session_343 abort_timeout iscsi_session 0 343 NULL
132544 +disable_so_crypto_authenc_esn_verify_fndecl_345 crypto_authenc_esn_verify fndecl 0 345 NULL
132545 +disable_so_dn_hash_dump_zone_fndecl_347 dn_hash_dump_zone fndecl 0 347 NULL
132546 +disable_so_new_center_freq_seg0_ieee80211_wide_bw_chansw_ie_350 new_center_freq_seg0 ieee80211_wide_bw_chansw_ie 0 350 NULL
132547 +disable_so_ata_probe_timeout_vardecl_libata_core_c_353 ata_probe_timeout vardecl_libata-core.c 0 353 NULL
132548 +disable_so_posix_cpu_clock_get_fndecl_354 posix_cpu_clock_get fndecl 1 354 NULL
132549 +disable_so_ivtv_msleep_timeout_fndecl_356 ivtv_msleep_timeout fndecl 1 356 NULL nohasharray
132550 +disable_so_wrmsrl_amd_safe_fndecl_356 wrmsrl_amd_safe fndecl 0 356 &disable_so_ivtv_msleep_timeout_fndecl_356
132551 +disable_so_bp_tss_segment_16_362 bp tss_segment_16 0 362 NULL
132552 +disable_so_btree_level_jset_372 btree_level jset 0 372 NULL
132553 +disable_so_addr_mlx5_wqe_data_seg_376 addr mlx5_wqe_data_seg 0 376 NULL
132554 +disable_so_pos_encryptor_desc_380 pos encryptor_desc 0 380 NULL
132555 +disable_so_des4_idmac_desc_64addr_382 des4 idmac_desc_64addr 0 382 NULL
132556 +disable_so_huptimer_isdn_net_local_s_386 huptimer isdn_net_local_s 0 386 NULL
132557 +disable_so_ali_settimer_fndecl_390 ali_settimer fndecl 1 390 NULL
132558 +disable_so_show_constraint_time_window_us_fndecl_393 show_constraint_time_window_us fndecl 0 393 NULL nohasharray
132559 +disable_so_queue_con_delay_fndecl_393 queue_con_delay fndecl 2 393 &disable_so_show_constraint_time_window_us_fndecl_393
132560 +disable_so_btrfs_insert_delayed_item_fndecl_394 btrfs_insert_delayed_item fndecl 0 394 NULL nohasharray
132561 +disable_so_reg_w_fndecl_394 reg_w fndecl 3 394 &disable_so_btrfs_insert_delayed_item_fndecl_394
132562 +disable_so_liquidio_ptp_adjfreq_fndecl_396 liquidio_ptp_adjfreq fndecl 2 396 NULL
132563 +disable_so_freq_dvbt_set_parameters_msg_404 freq dvbt_set_parameters_msg 0 404 NULL
132564 +disable_so_uid_btrfs_inode_item_419 uid btrfs_inode_item 0 419 NULL
132565 +disable_so_cuid_ipc64_perm_421 cuid ipc64_perm 0 421 NULL
132566 +disable_so_addr_nvkm_fb_tile_430 addr nvkm_fb_tile 0 430 NULL
132567 +disable_so_st_ctime_nsec_stat_435 st_ctime_nsec stat 0 435 NULL nohasharray
132568 +disable_so_end_seq_tcp_skb_cb_435 end_seq tcp_skb_cb 0 435 &disable_so_st_ctime_nsec_stat_435
132569 +disable_so_ttime_samples_cfq_ttime_442 ttime_samples cfq_ttime 0 442 NULL
132570 +disable_so_snd_timer_interrupt_fndecl_465 snd_timer_interrupt fndecl 2 465 NULL
132571 +disable_so_min_img_ir_timing_range_466 min img_ir_timing_range 0 466 NULL
132572 +disable_so_freq_wmi_cancel_remain_on_chnl_event_472 freq wmi_cancel_remain_on_chnl_event 0 472 NULL
132573 +disable_so_prism54_set_mac_address_fndecl_477 prism54_set_mac_address fndecl 0 477 NULL
132574 +disable_so_ccp_run_xts_aes_cmd_fndecl_481 ccp_run_xts_aes_cmd fndecl 0 481 NULL
132575 +disable_so_queue_time_cqm_rmid_entry_485 queue_time cqm_rmid_entry 0 485 NULL
132576 +disable_so_hpi_sample_clock_query_local_rate_fndecl_487 hpi_sample_clock_query_local_rate fndecl 1-0 487 NULL
132577 +disable_so_bcma_chipco_get_alp_clock_fndecl_488 bcma_chipco_get_alp_clock fndecl 0 488 NULL
132578 +disable_so_musb_read_txhubaddr_fndecl_495 musb_read_txhubaddr fndecl 2-0 495 NULL
132579 +disable_so_timestamp_discovery_state_508 timestamp discovery_state 0 508 NULL
132580 +disable_so_autosleep_show_fndecl_509 autosleep_show fndecl 0 509 NULL
132581 +disable_so_dx_major_hash_ocfs2_dx_entry_517 dx_major_hash ocfs2_dx_entry 0 517 NULL
132582 +disable_so_rhashtable_insert_slow_fndecl_525 rhashtable_insert_slow fndecl 0 525 NULL
132583 +disable_so_vaddr_page_fndecl_526 vaddr_page fndecl 0 526 NULL
132584 +disable_so_apei_check_mce_fndecl_561 apei_check_mce fndecl 0 561 NULL
132585 +disable_so_cifs_convert_address_fndecl_567 cifs_convert_address fndecl 3 567 NULL
132586 +disable_so_nla_put_be32_fndecl_572 nla_put_be32 fndecl 0-3 572 NULL
132587 +disable_so_dn_username2sockaddr_fndecl_573 dn_username2sockaddr fndecl 0-2 573 NULL
132588 +disable_so_compat_sys_timer_settime_fndecl_577 compat_sys_timer_settime fndecl 1 577 NULL
132589 +disable_so_hash_extent_data_ref_fndecl_581 hash_extent_data_ref fndecl 0-1-2-3 581 NULL
132590 +disable_so_addr_buffer1_cmd_desc_type0_591 addr_buffer1 cmd_desc_type0 0 591 NULL
132591 +disable_so_acpi_os_prepare_extended_sleep_fndecl_597 acpi_os_prepare_extended_sleep fndecl 0-2 597 NULL
132592 +disable_so_mdio_addr_port_info_608 mdio_addr port_info 0 608 NULL
132593 +disable_so_dl_runtime_dl_bandwidth_609 dl_runtime dl_bandwidth 0 609 NULL
132594 +disable_so_sense_addr_asc_scsiq_1_628 sense_addr asc_scsiq_1 0 628 NULL
132595 +disable_so_x86_cache_max_rmid_cpuinfo_x86_631 x86_cache_max_rmid cpuinfo_x86 0 631 NULL
132596 +disable_so_wm8978_set_dai_clkdiv_fndecl_638 wm8978_set_dai_clkdiv fndecl 3-0 638 NULL
132597 +disable_so_new_cpufreq_freqs_646 new cpufreq_freqs 0 646 NULL
132598 +disable_so_max_offchan_duration_iwl_tdls_channel_switch_timing_649 max_offchan_duration iwl_tdls_channel_switch_timing 0 649 NULL
132599 +disable_so_i_ctime_nsec_ocfs2_dinode_657 i_ctime_nsec ocfs2_dinode 0 657 NULL
132600 +disable_so_req_dma_addr_generic_pdu_resc_661 req_dma_addr generic_pdu_resc 0 661 NULL
132601 +disable_so_minor_hash_fname_673 minor_hash fname 0 673 NULL
132602 +disable_so_sprintf_temp_from_reg_fndecl_675 sprintf_temp_from_reg fndecl 0-3 675 NULL
132603 +disable_so_cpu_freq_to_power_fndecl_677 cpu_freq_to_power fndecl 0-2 677 NULL
132604 +disable_so_timbradio_vidioc_s_frequency_fndecl_688 timbradio_vidioc_s_frequency fndecl 0 688 NULL
132605 +disable_so_target_bfa_bsg_rport_scsi_addr_s_690 target bfa_bsg_rport_scsi_addr_s 0 690 NULL
132606 +disable_so_cs_addr_snd_ak4xxx_private_693 cs_addr snd_ak4xxx_private 0 693 NULL
132607 +disable_so_s3_set_pixclock_fndecl_694 s3_set_pixclock fndecl 2 694 NULL
132608 +disable_so_write_gracetime_fndecl_705 write_gracetime fndecl 0 705 NULL
132609 +disable_so_smack_task_getpgid_fndecl_708 smack_task_getpgid fndecl 0 708 NULL
132610 +disable_so_wl1251_acx_service_period_timeout_fndecl_709 wl1251_acx_service_period_timeout fndecl 0 709 NULL
132611 +disable_so_gid_ubifs_ino_node_712 gid ubifs_ino_node 0 712 NULL
132612 +disable_so___sony_nc_kbd_backlight_timeout_set_fndecl_713 __sony_nc_kbd_backlight_timeout_set fndecl 1 713 NULL
132613 +disable_so_watchdog_init_timeout_fndecl_721 watchdog_init_timeout fndecl 2 721 NULL
132614 +disable_so_led_on_time_adp8870_backlight_platform_data_723 led_on_time adp8870_backlight_platform_data 0 723 NULL
132615 +disable_so_txhubaddr_musb_csr_regs_727 txhubaddr musb_csr_regs 0 727 NULL
132616 +disable_so_flexonenand_addr_fndecl_731 flexonenand_addr fndecl 0-2 731 NULL
132617 +disable_so_scan_timestamp_local_info_733 scan_timestamp local_info 0 733 NULL
132618 +disable_so_brcmf_dongle_scantime_fndecl_735 brcmf_dongle_scantime fndecl 2-3-4-0 735 NULL
132619 +disable_so_pg_delay_d_vardecl_pktgen_c_748 pg_delay_d vardecl_pktgen.c 0 748 NULL
132620 +disable_so_current_sit_addr_fndecl_752 current_sit_addr fndecl 0-2 752 NULL
132621 +disable_so_mix_msr_src_node_conf_t_769 mix_msr src_node_conf_t 0 769 NULL
132622 +disable_so_sha1_mb_async_final_fndecl_780 sha1_mb_async_final fndecl 0 780 NULL
132623 +disable_so_dma_addr_ipw2100_rx_packet_785 dma_addr ipw2100_rx_packet 0 785 NULL
132624 +disable_so_addrHigh_lpfc_pde7_802 addrHigh lpfc_pde7 0 802 NULL
132625 +disable_so_frequency_cpufreq_frequency_table_805 frequency cpufreq_frequency_table 0 805 NULL
132626 +disable_so_timer_int_req_nes_device_806 timer_int_req nes_device 0 806 NULL
132627 +disable_so_if_freq_mxl5005s_config_819 if_freq mxl5005s_config 0 819 NULL
132628 +disable_so_radix_tree_lookup_fndecl_821 radix_tree_lookup fndecl 2 821 NULL
132629 +disable_so_subdivision_dma_buffparms_826 subdivision dma_buffparms 0 826 NULL
132630 +disable_so_HYPERVISOR_event_channel_op_fndecl_838 HYPERVISOR_event_channel_op fndecl 0 838 NULL
132631 +disable_so_dm_jiffies_to_msec64_fndecl_843 dm_jiffies_to_msec64 fndecl 1-0 843 NULL
132632 +disable_so_trim_bitmaps_fndecl_845 trim_bitmaps fndecl 0-3-4-5 845 NULL
132633 +disable_so_cg_spll_spread_spectrum_2_ni_clock_registers_846 cg_spll_spread_spectrum_2 ni_clock_registers 0 846 NULL
132634 +disable_so_xfs_btree_increment_fndecl_856 xfs_btree_increment fndecl 0 856 NULL nohasharray
132635 +disable_so_xfs_btree_ptr_offset_fndecl_856 xfs_btree_ptr_offset fndecl 0-2 856 &disable_so_xfs_btree_increment_fndecl_856
132636 +disable_so_put_unaligned_be32_fndecl_861 put_unaligned_be32 fndecl 1 861 NULL
132637 +disable_so_acpi_os_map_generic_address_fndecl_862 acpi_os_map_generic_address fndecl 0 862 NULL
132638 +disable_so_mpll_func_cntl_1_ci_clock_registers_864 mpll_func_cntl_1 ci_clock_registers 0 864 NULL
132639 +disable_so_buffer_warning_time_budget_870 buffer_warning_time budget 0 870 NULL
132640 +disable_so_imr_sourceaddr_ip_mreq_source_875 imr_sourceaddr ip_mreq_source 0 875 NULL
132641 +disable_so_msi2500_s_frequency_fndecl_879 msi2500_s_frequency fndecl 0 879 NULL
132642 +disable_so_tx_bd_haddr_hi_bnx2_tx_bd_881 tx_bd_haddr_hi bnx2_tx_bd 0 881 NULL
132643 +disable_so_wmi_addr_fndecl_882 wmi_addr fndecl 2 882 NULL
132644 +disable_so_rt6_info_hash_nhsfn_fndecl_886 rt6_info_hash_nhsfn fndecl 0-1 886 NULL
132645 +disable_so_snd_seq_oss_timer_stop_fndecl_904 snd_seq_oss_timer_stop fndecl 0 904 NULL
132646 +disable_so_addr_lo_rx_desc_909 addr_lo rx_desc 0 909 NULL
132647 +disable_so_bx_tss_segment_16_926 bx tss_segment_16 0 926 NULL
132648 +disable_so_inactive_time_station_info_927 inactive_time station_info 0 927 NULL
132649 +disable_so_last_reset_jiffies_iwl_rf_reset_931 last_reset_jiffies iwl_rf_reset 0 931 NULL
132650 +disable_so_shm_dtime_shmid64_ds_943 shm_dtime shmid64_ds 0 943 NULL
132651 +disable_so_autosleep_store_fndecl_949 autosleep_store fndecl 0-4 949 NULL nohasharray
132652 +disable_so_sit_base_addr_sit_info_949 sit_base_addr sit_info 0 949 &disable_so_autosleep_store_fndecl_949
132653 +disable_so_ageing_time_net_bridge_957 ageing_time net_bridge 0 957 NULL
132654 +disable_so_set_frequency_shifter_fndecl_959 set_frequency_shifter fndecl 0-2-3 959 NULL
132655 +disable_so_pci_bus_vardecl_bkm_a8_c_960 pci_bus vardecl_bkm_a8.c 0 960 NULL
132656 +disable_so_i_uid_ext2_inode_963 i_uid ext2_inode 0 963 NULL
132657 +disable_so_cpufreq_cpu_get_fndecl_965 cpufreq_cpu_get fndecl 1 965 NULL
132658 +disable_so_tsc_offset_vmcb_control_area_968 tsc_offset vmcb_control_area 0 968 NULL
132659 +disable_so_read_addr_qla8044_minidump_entry_rdmem_977 read_addr qla8044_minidump_entry_rdmem 0 977 NULL
132660 +disable_so_addr1_nphy_rf_control_override_rev2_978 addr1 nphy_rf_control_override_rev2 0 978 NULL
132661 +disable_so_qdisc_class_hash_fndecl_982 qdisc_class_hash fndecl 0-1-2 982 NULL
132662 +disable_so_crypto_register_ahash_fndecl_984 crypto_register_ahash fndecl 0 984 NULL
132663 +disable_so_addr_unlock2_cfi_private_989 addr_unlock2 cfi_private 0 989 NULL
132664 +disable_so_calc_baud_rate_divisor_fndecl_995 calc_baud_rate_divisor fndecl 2 995 NULL
132665 +disable_so_scsi_runtime_suspend_fndecl_1008 scsi_runtime_suspend fndecl 0 1008 NULL
132666 +disable_so_gran_sizek_var_mtrr_state_1012 gran_sizek var_mtrr_state 0 1012 NULL
132667 +disable_so_ax25_uid_info_open_fndecl_1028 ax25_uid_info_open fndecl 0 1028 NULL
132668 +disable_so_sh_mmcif_clock_control_fndecl_1029 sh_mmcif_clock_control fndecl 2 1029 NULL
132669 +disable_so_SYSC_setresgid_fndecl_1032 SYSC_setresgid fndecl 0 1032 NULL
132670 +disable_so_f1x_lookup_addr_in_dct_fndecl_1033 f1x_lookup_addr_in_dct fndecl 0-1-2-3 1033 NULL
132671 +disable_so_ufshcd_pci_runtime_suspend_fndecl_1044 ufshcd_pci_runtime_suspend fndecl 0 1044 NULL
132672 +disable_so_rme9652_set_interrupt_interval_fndecl_1049 rme9652_set_interrupt_interval fndecl 2 1049 NULL
132673 +disable_so_kgdb_validate_break_address_fndecl_1055 kgdb_validate_break_address fndecl 0 1055 NULL
132674 +disable_so_cp_mqd_base_addr_hi_hqd_registers_1058 cp_mqd_base_addr_hi hqd_registers 0 1058 NULL
132675 +disable_so_serial8250_get_divisor_fndecl_1063 serial8250_get_divisor fndecl 2-0 1063 NULL
132676 +disable_so_mpll_func_cntl_ci_clock_registers_1072 mpll_func_cntl ci_clock_registers 0 1072 NULL
132677 +disable_so_dma_addr_iser_tx_desc_1074 dma_addr iser_tx_desc 0 1074 NULL nohasharray
132678 +disable_so_fail_addr_erase_info_1074 fail_addr erase_info 0 1074 &disable_so_dma_addr_iser_tx_desc_1074
132679 +disable_so_timeout_static_key_deferred_1078 timeout static_key_deferred 0 1078 NULL
132680 +disable_so_uid_vardecl_initramfs_c_1083 uid vardecl_initramfs.c 0 1083 NULL
132681 +disable_so_amdgpu_mm_rreg_fndecl_1084 amdgpu_mm_rreg fndecl 0-2 1084 NULL
132682 +disable_so_hash_ip6_expire_fndecl_1088 hash_ip6_expire fndecl 4 1088 NULL
132683 +disable_so_addr_buffer4_cmd_desc_type0_1089 addr_buffer4 cmd_desc_type0 0 1089 NULL
132684 +disable_so__snd_hdac_read_parm_fndecl_1100 _snd_hdac_read_parm fndecl 3-2-0 1100 NULL
132685 +disable_so_mlx5_query_mad_ifc_gids_fndecl_1101 mlx5_query_mad_ifc_gids fndecl 0 1101 NULL
132686 +disable_so_dbgfs_prph_reg_addr_iwl_mvm_1102 dbgfs_prph_reg_addr iwl_mvm 0 1102 NULL
132687 +disable_so_cttimeout_default_fill_info_fndecl_1107 cttimeout_default_fill_info fndecl 4-3-6-0 1107 NULL
132688 +disable_so_expiry_time_cache_head_1108 expiry_time cache_head 0 1108 NULL
132689 +disable_so_dma_desc_set_addr_fndecl_1139 dma_desc_set_addr fndecl 3 1139 NULL
132690 +disable_so_addr_crb_addr_pair_1140 addr crb_addr_pair 0 1140 NULL
132691 +disable_so_sleep_dvb_tuner_ops_1155 sleep dvb_tuner_ops 0 1155 NULL
132692 +disable_so_info_for_irq_fndecl_1159 info_for_irq fndecl 1 1159 NULL
132693 +disable_so_mlx4_ib_find_real_gid_fndecl_1163 mlx4_ib_find_real_gid fndecl 2 1163 NULL
132694 +disable_so_timestamp_perf_cgroup_info_1168 timestamp perf_cgroup_info 0 1168 NULL
132695 +disable_so_mthca_QUERY_FW_fndecl_1176 mthca_QUERY_FW fndecl 0 1176 NULL
132696 +disable_so_fc_exch_set_addr_fndecl_1180 fc_exch_set_addr fndecl 2-3 1180 NULL
132697 +disable_so_rhashtable_rehash_chain_fndecl_1192 rhashtable_rehash_chain fndecl 2 1192 NULL
132698 +disable_so_own_addr_tipc_net_1206 own_addr tipc_net 0 1206 NULL
132699 +disable_so_ip6addrlbl_alloc_fndecl_1212 ip6addrlbl_alloc fndecl 4 1212 NULL
132700 +disable_so_nft_hash_init_fndecl_1216 nft_hash_init fndecl 0 1216 NULL
132701 +disable_so_max_freq_cpufreq_cpuinfo_1219 max_freq cpufreq_cpuinfo 0 1219 NULL
132702 +disable_so_spi_port_rcvhdr_tailaddr_ipath_base_info_1223 spi_port_rcvhdr_tailaddr ipath_base_info 0 1223 NULL
132703 +disable_so_ceph_vxattrcb_dir_rctime_fndecl_1240 ceph_vxattrcb_dir_rctime fndecl 3-0 1240 NULL
132704 +disable_so_cas_interrupt_fndecl_1242 cas_interrupt fndecl 1 1242 NULL nohasharray
132705 +disable_so_set_msr_hyperv_fndecl_1242 set_msr_hyperv fndecl 3 1242 &disable_so_cas_interrupt_fndecl_1242
132706 +disable_so_mmc_rescan_try_freq_fndecl_1249 mmc_rescan_try_freq fndecl 2 1249 NULL
132707 +disable_so_rtsx_pci_write_be32_fndecl_1251 rtsx_pci_write_be32 fndecl 2-3 1251 NULL
132708 +disable_so_sum_sleep_runtime_sched_statistics_1253 sum_sleep_runtime sched_statistics 0 1253 NULL
132709 +disable_so_flags_pt_regs_1254 flags pt_regs 0 1254 NULL
132710 +disable_so_bug10934_timer_txc43128_data_1290 bug10934_timer txc43128_data 0 1290 NULL nohasharray
132711 +disable_so_rq_size_log2_t3_wq_1290 rq_size_log2 t3_wq 0 1290 &disable_so_bug10934_timer_txc43128_data_1290
132712 +disable_so_do_sched_rt_period_timer_fndecl_1292 do_sched_rt_period_timer fndecl 2 1292 NULL
132713 +disable_so_db_dma_address_skd_special_context_1295 db_dma_address skd_special_context 0 1295 NULL
132714 +disable_so_time_stamp_hbq_dmabuf_1300 time_stamp hbq_dmabuf 0 1300 NULL
132715 +disable_so_print_vma_addr_fndecl_1312 print_vma_addr fndecl 2 1312 NULL
132716 +disable_so_max_acl_mac_addrs_wiphy_1316 max_acl_mac_addrs wiphy 0 1316 NULL
132717 +disable_so_shash_async_update_fndecl_1319 shash_async_update fndecl 0 1319 NULL
132718 +disable_so_programm_delay_vardecl_nandsim_c_1320 programm_delay vardecl_nandsim.c 0 1320 NULL
132719 +disable_so_stimescaled_task_struct_1330 stimescaled task_struct 0 1330 NULL nohasharray
132720 +disable_so_p_gma_clock_t_1330 p gma_clock_t 0 1330 &disable_so_stimescaled_task_struct_1330
132721 +disable_so_bitmap_bytes_fndecl_1338 bitmap_bytes fndecl 0-1-2 1338 NULL
132722 +disable_so_max8649_enable_time_fndecl_1340 max8649_enable_time fndecl 0 1340 NULL
132723 +disable_so_sg_set_timeout_fndecl_1360 sg_set_timeout fndecl 0 1360 NULL
132724 +disable_so_mrp_join_time_vardecl_mrp_c_1361 mrp_join_time vardecl_mrp.c 0 1361 NULL
132725 +disable_so_queue_address_queue_properties_1364 queue_address queue_properties 0 1364 NULL
132726 +disable_so_adfs_unix2adfs_time_fndecl_1365 adfs_unix2adfs_time fndecl 2 1365 NULL nohasharray
132727 +disable_so_start_rmt_timer2_fndecl_1365 start_rmt_timer2 fndecl 2 1365 &disable_so_adfs_unix2adfs_time_fndecl_1365
132728 +disable_so_qla2x00_gid_list_size_fndecl_1367 qla2x00_gid_list_size fndecl 0 1367 NULL nohasharray
132729 +disable_so_sr_get_phy_addr_fndecl_1367 sr_get_phy_addr fndecl 0 1367 &disable_so_qla2x00_gid_list_size_fndecl_1367
132730 +disable_so_rb_subtree_last_anon_vma_chain_1370 rb_subtree_last anon_vma_chain 0 1370 NULL
132731 +disable_so_snd_soc_runtime_activate_fndecl_1372 snd_soc_runtime_activate fndecl 2 1372 NULL nohasharray
132732 +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
132733 +disable_so_timer_elsa_hw_1375 timer elsa_hw 0 1375 NULL nohasharray
132734 +disable_so_sched_setscheduler_fndecl_1375 sched_setscheduler fndecl 2-0 1375 &disable_so_timer_elsa_hw_1375 nohasharray
132735 +disable_so_bitmap_check_fndecl_1375 bitmap_check fndecl 3 1375 &disable_so_sched_setscheduler_fndecl_1375
132736 +disable_so_pwr_wake_on_timer_exp_read_fndecl_1379 pwr_wake_on_timer_exp_read fndecl 3-0 1379 NULL
132737 +disable_so_prev_input_time_vardecl_sequencer_c_1380 prev_input_time vardecl_sequencer.c 0 1380 NULL
132738 +disable_so_mii_phy_addr_gem_1381 mii_phy_addr gem 0 1381 NULL
132739 +disable_so_snd_seq_queue_timer_set_tempo_fndecl_1388 snd_seq_queue_timer_set_tempo fndecl 1-2 1388 NULL
132740 +disable_so_efx_ef10_rx_enable_timestamping_fndecl_1394 efx_ef10_rx_enable_timestamping fndecl 0 1394 NULL
132741 +disable_so_xfrm_src_hash_fndecl_1398 xfrm_src_hash fndecl 0-4 1398 NULL
132742 +disable_so_set_pixclock_fndecl_1401 set_pixclock fndecl 2 1401 NULL
132743 +disable_so_start_dma_addr_vardecl_swiotlb_xen_c_1402 start_dma_addr vardecl_swiotlb-xen.c 0 1402 NULL
132744 +disable_so_pcm512x_set_dividers_fndecl_1412 pcm512x_set_dividers fndecl 0 1412 NULL
132745 +disable_so_frequency_tea5761_priv_1416 frequency tea5761_priv 0 1416 NULL
132746 +disable_so_ifa_flags_ifaddrmsg_1431 ifa_flags ifaddrmsg 0 1431 NULL
132747 +disable_so_last_queue_full_time_scsi_device_1432 last_queue_full_time scsi_device 0 1432 NULL
132748 +disable_so_dma_ops_reserve_addresses_fndecl_1438 dma_ops_reserve_addresses fndecl 2-3 1438 NULL
132749 +disable_so_reg_w_fndecl_1440 reg_w fndecl 4-0 1440 NULL
132750 +disable_so_tomoyo_check_inet_address_fndecl_1442 tomoyo_check_inet_address fndecl 0-2-3 1442 NULL
132751 +disable_so_is_oldclock_fndecl_1444 is_oldclock fndecl 1 1444 NULL
132752 +disable_so_width_latch_addr_flash_data_1448 width latch_addr_flash_data 0 1448 NULL
132753 +disable_so_tuner_address_ix2505v_config_1466 tuner_address ix2505v_config 0 1466 NULL
132754 +disable_so_alarm_setitimer_fndecl_1477 alarm_setitimer fndecl 1-0 1477 NULL
132755 +disable_so_enc28j60_rx_interrupt_fndecl_1478 enc28j60_rx_interrupt fndecl 0 1478 NULL
132756 +disable_so_i2c_address_xc4000_config_1488 i2c_address xc4000_config 0 1488 NULL
132757 +disable_so_dx_runtime_sc_1503 dx runtime_sc 0 1503 NULL
132758 +disable_so_tda827x_addr_tda8290_priv_1514 tda827x_addr tda8290_priv 0 1514 NULL
132759 +disable_so_addr_sym_tblmove_1540 addr sym_tblmove 0 1540 NULL
132760 +disable_so_cs_tss_segment_16_1560 cs tss_segment_16 0 1560 NULL
132761 +disable_so_demod_address_drxk_state_1562 demod_address drxk_state 0 1562 NULL
132762 +disable_so_enable_time_regulation_constraints_1573 enable_time regulation_constraints 0 1573 NULL nohasharray
132763 +disable_so_dma_addr_flexcop_usb_1573 dma_addr flexcop_usb 0 1573 &disable_so_enable_time_regulation_constraints_1573
132764 +disable_so_dma_addr_cas_page_1575 dma_addr cas_page 0 1575 NULL
132765 +disable_so_start_read_delay_c_1578 start_read delay_c 0 1578 NULL
132766 +disable_so_complete_crypto_async_request_1579 complete crypto_async_request 2 1579 NULL
132767 +disable_so_cycles_2_us_fndecl_1583 cycles_2_us fndecl 0-1 1583 NULL
132768 +disable_so_pd_timeout_vardecl_pd_c_1584 pd_timeout vardecl_pd.c 0 1584 NULL
132769 +disable_so_last_end_request_cfq_ttime_1591 last_end_request cfq_ttime 0 1591 NULL
132770 +disable_so_addr_sky2_rx_le_1593 addr sky2_rx_le 0 1593 NULL
132771 +disable_so_tick_raw_sched_clock_data_1597 tick_raw sched_clock_data 0 1597 NULL
132772 +disable_so_if_freq_khz_pll_tab_1599 if_freq_khz pll_tab 0 1599 NULL
132773 +disable_so_set_clock_info_fndecl_1600 set_clock_info fndecl 0 1600 NULL
132774 +disable_so_bs_delay_cx24113_state_1602 bs_delay cx24113_state 0 1602 NULL
132775 +disable_so_address_atto_physical_region_description_1608 address atto_physical_region_description 0 1608 NULL
132776 +disable_so_jiffies_force_qs_rcu_state_1611 jiffies_force_qs rcu_state 0 1611 NULL
132777 +disable_so_mpll_ad_func_cntl_si_clock_registers_1615 mpll_ad_func_cntl si_clock_registers 0 1615 NULL
132778 +disable_so___new_c_uuid_parms_from_attrs_fndecl_1628 __new_c_uuid_parms_from_attrs fndecl 0 1628 NULL
132779 +disable_so___btree_sort_fndecl_1629 __btree_sort fndecl 4 1629 NULL
132780 +disable_so_crypto_authenc_encrypt_done_fndecl_1634 crypto_authenc_encrypt_done fndecl 2 1634 NULL
132781 +disable_so_uhci_submit_interrupt_fndecl_1635 uhci_submit_interrupt fndecl 0 1635 NULL
132782 +disable_so_es_tss_segment_16_1639 es tss_segment_16 0 1639 NULL
132783 +disable_so_addrHigh_sge_ieee1212_1649 addrHigh sge_ieee1212 0 1649 NULL
132784 +disable_so_btree_insert_level_fndecl_1651 btree_insert_level fndecl 6 1651 NULL
132785 +disable_so_calc_gus_envelope_time_fndecl_1653 calc_gus_envelope_time fndecl 1-2-3-0 1653 NULL
132786 +disable_so_rhashtable_shrink_fndecl_1657 rhashtable_shrink fndecl 0 1657 NULL
132787 +disable_so_jiffies_next_msi2500_state_1659 jiffies_next msi2500_state 0 1659 NULL
132788 +disable_so_di_gid_dinode_1663 di_gid dinode 0 1663 NULL
132789 +disable_so_address_drm_radeon_surface_alloc_1665 address drm_radeon_surface_alloc 0 1665 NULL
132790 +disable_so_nsec_btrfs_ioctl_timespec_1668 nsec btrfs_ioctl_timespec 0 1668 NULL
132791 +disable_so_uptime_sysinfo_1669 uptime sysinfo 0 1669 NULL
132792 +disable_so_timeout_mgmt_cp_add_advertising_1685 timeout mgmt_cp_add_advertising 0 1685 NULL nohasharray
132793 +disable_so_systime_fndecl_1685 systime fndecl 0 1685 &disable_so_timeout_mgmt_cp_add_advertising_1685 nohasharray
132794 +disable_so_addr0_ulptx_sgl_1685 addr0 ulptx_sgl 0 1685 &disable_so_systime_fndecl_1685
132795 +disable_so_poll_timeout_irlap_cb_1688 poll_timeout irlap_cb 0 1688 NULL nohasharray
132796 +disable_so_tsc_irq_max8925_chip_1688 tsc_irq max8925_chip 0 1688 &disable_so_poll_timeout_irlap_cb_1688
132797 +disable_so_pbl_addr_t3_swrq_1691 pbl_addr t3_swrq 0 1691 NULL
132798 +disable_so_ar_addr_qlc_83xx_quad_entry_1699 ar_addr qlc_83xx_quad_entry 0 1699 NULL
132799 +disable_so_min_freq_softlimit_intel_gen6_power_mgmt_1704 min_freq_softlimit intel_gen6_power_mgmt 0 1704 NULL
132800 +disable_so_spkt_family_sockaddr_pkt_1712 spkt_family sockaddr_pkt 0 1712 NULL
132801 +disable_so_timeout_vardecl_w83877f_wdt_c_1721 timeout vardecl_w83877f_wdt.c 0 1721 NULL
132802 +disable_so_nfs_map_gid_to_group_fndecl_1724 nfs_map_gid_to_group fndecl 4-0 1724 NULL
132803 +disable_so_iram_offset_sst_addr_1727 iram_offset sst_addr 0 1727 NULL
132804 +disable_so_mp_lapic_addr_vardecl_1729 mp_lapic_addr vardecl 0 1729 NULL
132805 +disable_so_apei_write_mce_fndecl_1731 apei_write_mce fndecl 0 1731 NULL
132806 +disable_so_spectrum_stv0900_signal_info_1736 spectrum stv0900_signal_info 0 1736 NULL
132807 +disable_so_hash_ipmark6_expire_fndecl_1741 hash_ipmark6_expire fndecl 4 1741 NULL
132808 +disable_so_r100_mm_rreg_slow_fndecl_1751 r100_mm_rreg_slow fndecl 2-0 1751 NULL
132809 +disable_so_gntdev_ioctl_get_offset_for_vaddr_fndecl_1754 gntdev_ioctl_get_offset_for_vaddr fndecl 0 1754 NULL
132810 +disable_so_cm36651_write_int_time_fndecl_1774 cm36651_write_int_time fndecl 0 1774 NULL
132811 +disable_so_dp_clock_radeon_connector_atom_dig_1775 dp_clock radeon_connector_atom_dig 0 1775 NULL nohasharray
132812 +disable_so_am79c_ack_interrupt_fndecl_1775 am79c_ack_interrupt fndecl 0 1775 &disable_so_dp_clock_radeon_connector_atom_dig_1775
132813 +disable_so_phys_addr_qlcnic_host_tx_ring_1780 phys_addr qlcnic_host_tx_ring 0 1780 NULL nohasharray
132814 +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
132815 +disable_so_select_addr_1_qla83xx_minidump_entry_rdmux2_1790 select_addr_1 qla83xx_minidump_entry_rdmux2 0 1790 NULL
132816 +disable_so___padata_set_cpumasks_fndecl_1793 __padata_set_cpumasks fndecl 0 1793 NULL
132817 +disable_so_padlock_sha_init_fndecl_1815 padlock_sha_init fndecl 0 1815 NULL
132818 +disable_so_acpi_cpufreq_early_init_fndecl_1824 acpi_cpufreq_early_init fndecl 0 1824 NULL
132819 +disable_so_dst_addr_ioat_xor_descriptor_1835 dst_addr ioat_xor_descriptor 0 1835 NULL
132820 +disable_so_sadb_lifetime_bytes_sadb_lifetime_1836 sadb_lifetime_bytes sadb_lifetime 0 1836 NULL
132821 +disable_so_event_box_addr_wl1251_1839 event_box_addr wl1251 0 1839 NULL
132822 +disable_so_addr_ahci_sg_1848 addr ahci_sg 0 1848 NULL
132823 +disable_so_acct_timexpd_task_struct_1854 acct_timexpd task_struct 0 1854 NULL
132824 +disable_so_mkey_lease_timeout_ipath_ibdev_1856 mkey_lease_timeout ipath_ibdev 0 1856 NULL nohasharray
132825 +disable_so_paddr_idt77252_skb_prv_1856 paddr idt77252_skb_prv 0 1856 &disable_so_mkey_lease_timeout_ipath_ibdev_1856
132826 +disable_so_timeout_dmatest_params_1857 timeout dmatest_params 0 1857 NULL
132827 +disable_so_cipso_v4_bitmap_setbit_fndecl_1861 cipso_v4_bitmap_setbit fndecl 2 1861 NULL
132828 +disable_so_sun6i_spi_runtime_resume_fndecl_1869 sun6i_spi_runtime_resume fndecl 0 1869 NULL
132829 +disable_so_shash_ahash_update_fndecl_1877 shash_ahash_update fndecl 0 1877 NULL
132830 +disable_so_ss_family___kernel_sockaddr_storage_1886 ss_family __kernel_sockaddr_storage 0 1886 NULL
132831 +disable_so_swap_time_bloom_pair_1898 swap_time bloom_pair 0 1898 NULL nohasharray
132832 +disable_so_blank_time_dce6_wm_params_1898 blank_time dce6_wm_params 0 1898 &disable_so_swap_time_bloom_pair_1898
132833 +disable_so_btree_order_fndecl_1901 btree_order fndecl 0 1901 NULL
132834 +disable_so_sil_iowrite16_fndecl_1906 sil_iowrite16 fndecl 3-2 1906 NULL
132835 +disable_so_service_timer_period_i40e_pf_1923 service_timer_period i40e_pf 0 1923 NULL nohasharray
132836 +disable_so_address_acpi_resource_fixed_memory32_1923 address acpi_resource_fixed_memory32 0 1923 &disable_so_service_timer_period_i40e_pf_1923
132837 +disable_so_paddr_dw_spi_1926 paddr dw_spi 0 1926 NULL
132838 +disable_so___audit_sockaddr_fndecl_1929 __audit_sockaddr fndecl 1 1929 NULL
132839 +disable_so_ieee80211_aes_gcm_key_setup_encrypt_fndecl_1936 ieee80211_aes_gcm_key_setup_encrypt fndecl 2 1936 NULL
132840 +disable_so_mce_chrdev_open_fndecl_1937 mce_chrdev_open fndecl 0 1937 NULL
132841 +disable_so_shadow_reg_phy_addr_ql3_adapter_1940 shadow_reg_phy_addr ql3_adapter 0 1940 NULL
132842 +disable_so_dma_addr_t3_cq_1953 dma_addr t3_cq 0 1953 NULL
132843 +disable_so_crypto_pcbc_decrypt_inplace_fndecl_1957 crypto_pcbc_decrypt_inplace fndecl 0 1957 NULL
132844 +disable_so_sw_reset_and_clock_fndecl_1963 sw_reset_and_clock fndecl 0 1963 NULL
132845 +disable_so_wp_next_time_fndecl_1967 wp_next_time fndecl 0-1 1967 NULL
132846 +disable_so_timer_expires_dev_pm_info_1979 timer_expires dev_pm_info 0 1979 NULL
132847 +disable_so_dll_cntl_si_clock_registers_1988 dll_cntl si_clock_registers 0 1988 NULL
132848 +disable_so_sysctl_x25_clear_request_timeout_vardecl_2007 sysctl_x25_clear_request_timeout vardecl 0 2007 NULL
132849 +disable_so___skb_complete_tx_timestamp_fndecl_2011 __skb_complete_tx_timestamp fndecl 3 2011 NULL
132850 +disable_so_st_ctime_compat_stat_2020 st_ctime compat_stat 0 2020 NULL
132851 +disable_so_ns_nongc_ctime_the_nilfs_2021 ns_nongc_ctime the_nilfs 0 2021 NULL
132852 +disable_so_slave_address_cp2112_write_read_req_report_2022 slave_address cp2112_write_read_req_report 0 2022 NULL
132853 +disable_so_beacon_timeout_ms_show_fndecl_2029 beacon_timeout_ms_show fndecl 0 2029 NULL
132854 +disable_so_daddr_lap_cb_2033 daddr lap_cb 0 2033 NULL
132855 +disable_so_next_txd_phys_addr_mwl8k_tx_desc_2040 next_txd_phys_addr mwl8k_tx_desc 0 2040 NULL
132856 +disable_so_tps65910_rtc_set_time_fndecl_2042 tps65910_rtc_set_time fndecl 0 2042 NULL
132857 +disable_so_address_sg_list_2047 address sg_list 0 2047 NULL
132858 +disable_so_r62_val_fc2580_freq_regs_2052 r62_val fc2580_freq_regs 0 2052 NULL
132859 +disable_so_atomic64_cmpxchg_fndecl_2053 atomic64_cmpxchg fndecl 0-2-3 2053 NULL
132860 +disable_so_delay_cfg80211_coalesce_rules_2055 delay cfg80211_coalesce_rules 0 2055 NULL
132861 +disable_so_addrconf_sysctl_register_fndecl_2065 addrconf_sysctl_register fndecl 0 2065 NULL nohasharray
132862 +disable_so_max_timeout_watchdog_device_2065 max_timeout watchdog_device 0 2065 &disable_so_addrconf_sysctl_register_fndecl_2065
132863 +disable_so_gid_autofs_v5_packet_2071 gid autofs_v5_packet 0 2071 NULL
132864 +disable_so_ratio_t_rj54n1_clock_div_2081 ratio_t rj54n1_clock_div 0 2081 NULL
132865 +disable_so_compat_sys_signalfd4_fndecl_2082 compat_sys_signalfd4 fndecl 0-4 2082 NULL
132866 +disable_so_demod_address_ds3000_config_2084 demod_address ds3000_config 0 2084 NULL
132867 +disable_so_xfrm_flowi_addr_get_fndecl_2087 xfrm_flowi_addr_get fndecl 4 2087 NULL
132868 +disable_so_ts_delay_vardecl_ucb1400_ts_c_2088 ts_delay vardecl_ucb1400_ts.c 0 2088 NULL
132869 +disable_so_get_cpu_iowait_time_us_fndecl_2097 get_cpu_iowait_time_us fndecl 0-1 2097 NULL
132870 +disable_so_crypto_sha1_finup_fndecl_2101 crypto_sha1_finup fndecl 3 2101 NULL
132871 +disable_so_wlc_phy_chan2freq_nphy_fndecl_2103 wlc_phy_chan2freq_nphy fndecl 2 2103 NULL
132872 +disable_so_palmas_smps_set_ramp_delay_fndecl_2110 palmas_smps_set_ramp_delay fndecl 0 2110 NULL
132873 +disable_so_ncp_add_be32_fndecl_2114 ncp_add_be32 fndecl 2 2114 NULL
132874 +disable_so_fast_div_bias_ath_hw_antcomb_conf_2119 fast_div_bias ath_hw_antcomb_conf 0 2119 NULL
132875 +disable_so_memconsole_baseaddr_vardecl_memconsole_c_2130 memconsole_baseaddr vardecl_memconsole.c 0 2130 NULL
132876 +disable_so_max8907_rtc_read_time_fndecl_2134 max8907_rtc_read_time fndecl 0 2134 NULL
132877 +disable_so_cur_daddr_pktgen_dev_2141 cur_daddr pktgen_dev 0 2141 NULL
132878 +disable_so_mapped_loc_addr_nes_cm_listener_2153 mapped_loc_addr nes_cm_listener 0 2153 NULL
132879 +disable_so_index_ath_gen_timer_2154 index ath_gen_timer 0 2154 NULL
132880 +disable_so_brcms_c_duty_cycle_set_fndecl_2162 brcms_c_duty_cycle_set fndecl 2 2162 NULL
132881 +disable_so_rx_addr_happy_meal_rxd_2164 rx_addr happy_meal_rxd 0 2164 NULL
132882 +disable_so_cp_dma_addr_mscp_2187 cp_dma_addr mscp 0 2187 NULL
132883 +disable_so_address_hi_be_bus_address32_2192 address_hi be_bus_address32 0 2192 NULL nohasharray
132884 +disable_so_parse_sockaddr_pair_fndecl_2192 parse_sockaddr_pair fndecl 0-2 2192 &disable_so_address_hi_be_bus_address32_2192
132885 +disable_so_channel_sockaddr_mISDN_2193 channel sockaddr_mISDN 0 2193 NULL
132886 +disable_so_channel_time_mwl8k_priv_2196 channel_time mwl8k_priv 0 2196 NULL
132887 +disable_so_saddr_min_pktgen_dev_2198 saddr_min pktgen_dev 0 2198 NULL
132888 +disable_so_cirrus_set_start_address_fndecl_2201 cirrus_set_start_address fndecl 2 2201 NULL
132889 +disable_so_exp_time_rmc_entry_2203 exp_time rmc_entry 0 2203 NULL
132890 +disable_so_acpi_os_get_timer_fndecl_2213 acpi_os_get_timer fndecl 0 2213 NULL nohasharray
132891 +disable_so_to_addr_efx_memcpy_req_2213 to_addr efx_memcpy_req 0 2213 &disable_so_acpi_os_get_timer_fndecl_2213
132892 +disable_so_gather_bitmaps_fndecl_2219 gather_bitmaps fndecl 0 2219 NULL
132893 +disable_so_timeout_ms_rdma_ucm_resolve_ip_2231 timeout_ms rdma_ucm_resolve_ip 0 2231 NULL
132894 +disable_so_ui_birthtime_ufs2_inode_2238 ui_birthtime ufs2_inode 0 2238 NULL
132895 +disable_so_security_mmap_addr_fndecl_2241 security_mmap_addr fndecl 0-1 2241 NULL
132896 +disable_so_atl1c_hash_mc_addr_fndecl_2245 atl1c_hash_mc_addr fndecl 0 2245 NULL
132897 +disable_so_isl1208_i2c_read_time_fndecl_2247 isl1208_i2c_read_time fndecl 0 2247 NULL
132898 +disable_so_stats_reset_time_bfa_fcport_s_2251 stats_reset_time bfa_fcport_s 0 2251 NULL
132899 +disable_so_uid_mcontroller_2253 uid mcontroller 0 2253 NULL
132900 +disable_so_daddr_iriap_cb_2262 daddr iriap_cb 0 2262 NULL
132901 +disable_so_rtl2832_sdr_set_tuner_freq_fndecl_2267 rtl2832_sdr_set_tuner_freq fndecl 0 2267 NULL
132902 +disable_so_chipio_write_address_fndecl_2270 chipio_write_address fndecl 0-2 2270 NULL
132903 +disable_so_small_buf_q_phy_addr_ql3_adapter_2279 small_buf_q_phy_addr ql3_adapter 0 2279 NULL
132904 +disable_so_sys_utime_fndecl_2283 sys_utime fndecl 0 2283 NULL nohasharray
132905 +disable_so_muldiv32_fndecl_2283 muldiv32 fndecl 0-1-2-3 2283 &disable_so_sys_utime_fndecl_2283
132906 +disable_so_bd_list_addr_hi_bnx2i_nop_out_request_2284 bd_list_addr_hi bnx2i_nop_out_request 0 2284 NULL
132907 +disable_so_show_trans_timeout_fndecl_2286 show_trans_timeout fndecl 0 2286 NULL
132908 +disable_so_il4965_tx_queue_stop_scheduler_fndecl_2292 il4965_tx_queue_stop_scheduler fndecl 2 2292 NULL
132909 +disable_so_demod_address_ves1820_config_2298 demod_address ves1820_config 0 2298 NULL
132910 +disable_so_backlight_on_delay_cdv_intel_dp_2301 backlight_on_delay cdv_intel_dp 0 2301 NULL
132911 +disable_so_ip_vs_lblcr_hashkey_fndecl_2305 ip_vs_lblcr_hashkey fndecl 1 2305 NULL
132912 +disable_so_tulip_interrupt_fndecl_2323 tulip_interrupt fndecl 1 2323 NULL
132913 +disable_so_m_ts_clockk_strength_drxk_state_2324 m_ts_clockk_strength drxk_state 0 2324 NULL
132914 +disable_so_carl9170_debugfs_hw_iowrite32_write_fndecl_2330 carl9170_debugfs_hw_iowrite32_write fndecl 0-3 2330 NULL
132915 +disable_so_iclock_count_vardecl_clock_c_2334 iclock_count vardecl_clock.c 0 2334 NULL
132916 +disable_so_eop_gpu_addr_kernel_queue_2339 eop_gpu_addr kernel_queue 0 2339 NULL
132917 +disable_so___insert_inode_hash_fndecl_2341 __insert_inode_hash fndecl 2 2341 NULL
132918 +disable_so_lasttime_vardecl_serial_u16550_c_2348 lasttime vardecl_serial-u16550.c 0 2348 NULL
132919 +disable_so_custom_divisor_ftdi_private_2356 custom_divisor ftdi_private 0 2356 NULL nohasharray
132920 +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
132921 +disable_so_cdrom_get_random_writable_fndecl_2357 cdrom_get_random_writable fndecl 0 2357 NULL
132922 +disable_so_delay_vardecl_wm9713_c_2358 delay vardecl_wm9713.c 0 2358 NULL
132923 +disable_so_usc_enable_async_clock_fndecl_2361 usc_enable_async_clock fndecl 2 2361 NULL
132924 +disable_so___cpu_to_virtio64_fndecl_2365 __cpu_to_virtio64 fndecl 0-2 2365 NULL
132925 +disable_so_freq_offset_xc5000_priv_2385 freq_offset xc5000_priv 0 2385 NULL
132926 +disable_so_decompressed_size_regcache_lzo_ctx_2401 decompressed_size regcache_lzo_ctx 0 2401 NULL
132927 +disable_so_tps65910_sleepinit_fndecl_2406 tps65910_sleepinit fndecl 0 2406 NULL
132928 +disable_so_i2c_address_dib0090_config_2410 i2c_address dib0090_config 0 2410 NULL
132929 +disable_so_paddr_nes_fast_mr_wqe_pbl_2411 paddr nes_fast_mr_wqe_pbl 0 2411 NULL
132930 +disable_so_time_fcoe_fcf_2412 time fcoe_fcf 0 2412 NULL
132931 +disable_so_ndisc_addr_option_pad_fndecl_2413 ndisc_addr_option_pad fndecl 0 2413 NULL
132932 +disable_so_next_cpu_uv_rtc_timer_head_2424 next_cpu uv_rtc_timer_head 0 2424 NULL
132933 +disable_so_buffer_addr_fm10k_tx_desc_2425 buffer_addr fm10k_tx_desc 0 2425 NULL
132934 +disable_so_ahci_init_interrupts_fndecl_2426 ahci_init_interrupts fndecl 2-0 2426 NULL
132935 +disable_so_cp_interrupt_fndecl_2429 cp_interrupt fndecl 1 2429 NULL
132936 +disable_so_sha1_mb_update_fndecl_2431 sha1_mb_update fndecl 0 2431 NULL
132937 +disable_so_mii_bmsr1_bnx2_2432 mii_bmsr1 bnx2 0 2432 NULL
132938 +disable_so_i2c_addr_lnbp21_2433 i2c_addr lnbp21 0 2433 NULL
132939 +disable_so_dmadesc_set_addr_fndecl_2434 dmadesc_set_addr fndecl 3 2434 NULL
132940 +disable_so___irq_alloc_descs_fndecl_2452 __irq_alloc_descs fndecl 0-3-2-1-4 2452 NULL
132941 +disable_so_efx_ptp_process_times_fndecl_2453 efx_ptp_process_times fndecl 0 2453 NULL
132942 +disable_so_SiS_SetReg_fndecl_2455 SiS_SetReg fndecl 2-3-4 2455 NULL
132943 +disable_so_hashlimit_byte_cost_fndecl_2456 hashlimit_byte_cost fndecl 0-1 2456 NULL
132944 +disable_so_sd_mtime_stat_data_v1_2460 sd_mtime stat_data_v1 0 2460 NULL
132945 +disable_so_string_addr_inc_fndecl_2472 string_addr_inc fndecl 2 2472 NULL
132946 +disable_so_set_mc_hash_fndecl_2473 set_mc_hash fndecl 0 2473 NULL
132947 +disable_so_height_psb_intel_sdvo_preferred_input_timing_args_2479 height psb_intel_sdvo_preferred_input_timing_args 0 2479 NULL
132948 +disable_so_seq_netlbl_unlhsh_walk_arg_2483 seq netlbl_unlhsh_walk_arg 0 2483 NULL
132949 +disable_so_set_cpu_itimer_fndecl_2486 set_cpu_itimer fndecl 2 2486 NULL
132950 +disable_so_reqoff_crypto_authenc_ctx_2490 reqoff crypto_authenc_ctx 0 2490 NULL
132951 +disable_so_i_gid_ocfs2_dinode_2496 i_gid ocfs2_dinode 0 2496 NULL
132952 +disable_so_bind_mcastif_addr_fndecl_2497 bind_mcastif_addr fndecl 0 2497 NULL
132953 +disable_so_pm_runtime_put_autosuspend_fndecl_2498 pm_runtime_put_autosuspend fndecl 0 2498 NULL
132954 +disable_so_xfs_btree_insert_fndecl_2499 xfs_btree_insert fndecl 0 2499 NULL
132955 +disable_so_update_time_fndecl_2500 update_time fndecl 0 2500 NULL
132956 +disable_so_fill_mtrr_var_range_fndecl_2523 fill_mtrr_var_range fndecl 2-3-4-5 2523 NULL
132957 +disable_so_of_cpufreq_power_cooling_register_fndecl_2525 of_cpufreq_power_cooling_register fndecl 3 2525 NULL
132958 +disable_so_addr_genwqe_mem_2530 addr genwqe_mem 0 2530 NULL
132959 +disable_so_rtr_solicit_delay_ipv6_devconf_2532 rtr_solicit_delay ipv6_devconf 0 2532 NULL nohasharray
132960 +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
132961 +disable_so_vhost16_to_cpu_fndecl_2533 vhost16_to_cpu fndecl 0 2533 NULL
132962 +disable_so_clock_adj_k_clock_2534 clock_adj k_clock 1 2534 NULL
132963 +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
132964 +disable_so_clock_fc2580_config_2541 clock fc2580_config 0 2541 NULL
132965 +disable_so_sb_bitmaps_hpfs_sb_info_2542 sb_bitmaps hpfs_sb_info 0 2542 NULL
132966 +disable_so_devfreq_event_get_edev_by_phandle_fndecl_2550 devfreq_event_get_edev_by_phandle fndecl 2 2550 NULL
132967 +disable_so_reiserfs_allocate_list_bitmaps_fndecl_2551 reiserfs_allocate_list_bitmaps fndecl 3 2551 NULL
132968 +disable_so_nr_set_mac_address_fndecl_2555 nr_set_mac_address fndecl 0 2555 NULL
132969 +disable_so_SYSC_setuid_fndecl_2561 SYSC_setuid fndecl 0 2561 NULL
132970 +disable_so_shadow_ctx_time_perf_event_2574 shadow_ctx_time perf_event 0 2574 NULL nohasharray
132971 +disable_so_kernel_text_address_fndecl_2574 kernel_text_address fndecl 1 2574 &disable_so_shadow_ctx_time_perf_event_2574
132972 +disable_so_msb_bna_dma_addr_2580 msb bna_dma_addr 0 2580 NULL
132973 +disable_so_ipmi_get_my_address_fndecl_2581 ipmi_get_my_address fndecl 0 2581 NULL
132974 +disable_so_scan_sleep_millisecs_show_fndecl_2585 scan_sleep_millisecs_show fndecl 0 2585 NULL
132975 +disable_so_l2tp_scope_id_sockaddr_l2tpip6_2587 l2tp_scope_id sockaddr_l2tpip6 0 2587 NULL
132976 +disable_so_freq_to_idx_fndecl_2591 freq_to_idx fndecl 2 2591 NULL
132977 +disable_so_tps65910_set_ext_sleep_config_fndecl_2597 tps65910_set_ext_sleep_config fndecl 0-2 2597 NULL
132978 +disable_so_try_write_address_fndecl_2599 try_write_address fndecl 0 2599 NULL
132979 +disable_so_ifa_mask_in_ifaddr_2609 ifa_mask in_ifaddr 0 2609 NULL
132980 +disable_so_phys_addr_nx_host_tx_ring_2615 phys_addr nx_host_tx_ring 0 2615 NULL
132981 +disable_so_usb_wait_anchor_empty_timeout_fndecl_2618 usb_wait_anchor_empty_timeout fndecl 2-0 2618 NULL nohasharray
132982 +disable_so_p2_gma_clock_t_2618 p2 gma_clock_t 0 2618 &disable_so_usb_wait_anchor_empty_timeout_fndecl_2618 nohasharray
132983 +disable_so_cra_blocksize_crypto_alg_2618 cra_blocksize crypto_alg 0 2618 &disable_so_p2_gma_clock_t_2618
132984 +disable_so_b1_setinterrupt_fndecl_2626 b1_setinterrupt fndecl 1-2 2626 NULL
132985 +disable_so_flsh_addr_esas2r_flash_context_2628 flsh_addr esas2r_flash_context 0 2628 NULL
132986 +disable_so_bClockID_uac_clock_source_descriptor_2629 bClockID uac_clock_source_descriptor 0 2629 NULL
132987 +disable_so_free_dma_map_ops_2636 free dma_map_ops 4 2636 NULL
132988 +disable_so_apds990x_set_atime_fndecl_2647 apds990x_set_atime fndecl 2 2647 NULL
132989 +disable_so_jiffies_sdr_cap_vivid_dev_2650 jiffies_sdr_cap vivid_dev 0 2650 NULL
132990 +disable_so_rf_mux_ploy_r820t_freq_range_2652 rf_mux_ploy r820t_freq_range 0 2652 NULL nohasharray
132991 +disable_so_policy_hash_direct_fndecl_2652 policy_hash_direct fndecl 4 2652 &disable_so_rf_mux_ploy_r820t_freq_range_2652
132992 +disable_so_base_addr_sudmac_regs_2655 base_addr sudmac_regs 0 2655 NULL
132993 +disable_so_id_rdma_ucm_resolve_addr_2656 id rdma_ucm_resolve_addr 0 2656 NULL
132994 +disable_so_demod_address_stv0367_config_2659 demod_address stv0367_config 0 2659 NULL
132995 +disable_so_get_if_frequency_dvb_tuner_ops_2660 get_if_frequency dvb_tuner_ops 0 2660 NULL
132996 +disable_so_r_idx_addr_brcmf_pcie_ringbuf_2666 r_idx_addr brcmf_pcie_ringbuf 0 2666 NULL
132997 +disable_so_address_sisusb_packet_2668 address sisusb_packet 0 2668 NULL
132998 +disable_so_cia_min_keysize_cipher_alg_2682 cia_min_keysize cipher_alg 0 2682 NULL
132999 +disable_so_snd_timer_start_fndecl_2702 snd_timer_start fndecl 2-0 2702 NULL
133000 +disable_so_erst_exec_set_src_address_base_fndecl_2703 erst_exec_set_src_address_base fndecl 0 2703 NULL
133001 +disable_so_end_seq_tcp_sack_block_wire_2708 end_seq tcp_sack_block_wire 0 2708 NULL nohasharray
133002 +disable_so__abb5zes3_rtc_read_timer_fndecl_2708 _abb5zes3_rtc_read_timer fndecl 0 2708 &disable_so_end_seq_tcp_sack_block_wire_2708
133003 +disable_so_rn5t618_wdt_set_timeout_fndecl_2711 rn5t618_wdt_set_timeout fndecl 2-0 2711 NULL nohasharray
133004 +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
133005 +disable_so_hdelayx1_bttv_tvnorm_2714 hdelayx1 bttv_tvnorm 0 2714 NULL
133006 +disable_so_raw_interval_timekeeper_2728 raw_interval timekeeper 0 2728 NULL
133007 +disable_so___vxge_hw_ring_item_dma_addr_fndecl_2731 __vxge_hw_ring_item_dma_addr fndecl 0 2731 NULL
133008 +disable_so_mlx5_query_hca_vport_gid_fndecl_2744 mlx5_query_hca_vport_gid fndecl 0 2744 NULL
133009 +disable_so_period_ptr_atmel_runtime_data_2748 period_ptr atmel_runtime_data 0 2748 NULL
133010 +disable_so_buf_addr_lo_fcoe_bd_ctx_2755 buf_addr_lo fcoe_bd_ctx 0 2755 NULL nohasharray
133011 +disable_so_cycles_2_ns_fndecl_2755 cycles_2_ns fndecl 0-1 2755 &disable_so_buf_addr_lo_fcoe_bd_ctx_2755
133012 +disable_so_md5_parse_tcp_sock_af_ops_2765 md5_parse tcp_sock_af_ops 3-0 2765 NULL
133013 +disable_so_nbytes_ablkcipher_walk_2767 nbytes ablkcipher_walk 0 2767 NULL
133014 +disable_so_crypto_hash_setkey_fndecl_2770 crypto_hash_setkey fndecl 0-3 2770 NULL
133015 +disable_so_addr_gf100_gr_init_2776 addr gf100_gr_init 0 2776 NULL
133016 +disable_so_auth_hashbits_vardecl_auth_c_2783 auth_hashbits vardecl_auth.c 0 2783 NULL
133017 +disable_so_ipr_reset_start_timer_fndecl_2784 ipr_reset_start_timer fndecl 2 2784 NULL nohasharray
133018 +disable_so_tv_sec_compat_timeval_2784 tv_sec compat_timeval 0 2784 &disable_so_ipr_reset_start_timer_fndecl_2784 nohasharray
133019 +disable_so_addr_vring_desc_2784 addr vring_desc 0 2784 &disable_so_tv_sec_compat_timeval_2784
133020 +disable_so_addr_initio_host_2790 addr initio_host 0 2790 NULL
133021 +disable_so_i2c_addr_dib7000p_state_2791 i2c_addr dib7000p_state 0 2791 NULL
133022 +disable_so_trim_no_bitmap_fndecl_2799 trim_no_bitmap fndecl 0-3-4-5 2799 NULL nohasharray
133023 +disable_so_imp_msr_src_node_conf_t_2799 imp_msr src_node_conf_t 0 2799 &disable_so_trim_no_bitmap_fndecl_2799
133024 +disable_so_phys_addr_pch_udc_dev_2801 phys_addr pch_udc_dev 0 2801 NULL
133025 +disable_so_mpll_ss2_ci_clock_registers_2804 mpll_ss2 ci_clock_registers 0 2804 NULL
133026 +disable_so_mutex_lock_interruptible_fndecl_2810 mutex_lock_interruptible fndecl 0 2810 NULL
133027 +disable_so___btrfs_add_delayed_item_fndecl_2812 __btrfs_add_delayed_item fndecl 0 2812 NULL
133028 +disable_so_physaddr_map_node_2828 physaddr map_node 0 2828 NULL
133029 +disable_so_fault_mutex_hash_fndecl_2829 fault_mutex_hash fndecl 0-5-6 2829 NULL
133030 +disable_so_tsi721_imsg_interrupt_enable_fndecl_2832 tsi721_imsg_interrupt_enable fndecl 2-3 2832 NULL
133031 +disable_so_ocfs2_reserve_cluster_bitmap_bits_fndecl_2835 ocfs2_reserve_cluster_bitmap_bits fndecl 0 2835 NULL
133032 +disable_so_address_lcnphy_radio_regs_2840 address lcnphy_radio_regs 0 2840 NULL
133033 +disable_so_write_timeout_vardecl_at24_c_2843 write_timeout vardecl_at24.c 0 2843 NULL nohasharray
133034 +disable_so_rdma_bind_addr_fndecl_2843 rdma_bind_addr fndecl 0 2843 &disable_so_write_timeout_vardecl_at24_c_2843
133035 +disable_so_x86_schedule_events_fndecl_2848 x86_schedule_events fndecl 2 2848 NULL
133036 +disable_so_acpi_ut_status_exit_fndecl_2850 acpi_ut_status_exit fndecl 5 2850 NULL
133037 +disable_so_wlcore_read_hwaddr_fndecl_2853 wlcore_read_hwaddr fndecl 0-4 2853 NULL
133038 +disable_so_apicaddr_mpc_ioapic_2859 apicaddr mpc_ioapic 0 2859 NULL
133039 +disable_so_msec_dwell_time_host_cmd_ds_chan_rpt_req_2868 msec_dwell_time host_cmd_ds_chan_rpt_req 0 2868 NULL
133040 +disable_so_hpsa_find_cfg_addrs_fndecl_2876 hpsa_find_cfg_addrs fndecl 0 2876 NULL
133041 +disable_so_sched_clock_cpu_fndecl_2881 sched_clock_cpu fndecl 0-1 2881 NULL
133042 +disable_so_qs_itimelimit_fs_quota_stat_2888 qs_itimelimit fs_quota_stat 0 2888 NULL
133043 +disable_so_bitmap_set_pending_fndecl_2892 bitmap_set_pending fndecl 2 2892 NULL
133044 +disable_so_rt2x00debug_read_crypto_stats_fndecl_2894 rt2x00debug_read_crypto_stats fndecl 0-3 2894 NULL
133045 +disable_so_calibrate_tsc_x86_platform_ops_2895 calibrate_tsc x86_platform_ops 0 2895 NULL
133046 +disable_so_timeout_show_fndecl_2898 timeout_show fndecl 0 2898 NULL
133047 +disable_so_snd_hda_codec_read_fndecl_2913 snd_hda_codec_read fndecl 0-2-4-5 2913 NULL
133048 +disable_so___bitmap_size_fndecl_2921 __bitmap_size fndecl 0 2921 NULL
133049 +disable_so_snd_pcm_ioctl_delay_compat_fndecl_2923 snd_pcm_ioctl_delay_compat fndecl 0 2923 NULL nohasharray
133050 +disable_so_addr_abituguru_data_2923 addr abituguru_data 0 2923 &disable_so_snd_pcm_ioctl_delay_compat_fndecl_2923
133051 +disable_so_amdgpu_atombios_set_engine_dram_timings_fndecl_2927 amdgpu_atombios_set_engine_dram_timings fndecl 2-3 2927 NULL
133052 +disable_so_i2c_address_mt2060_config_2931 i2c_address mt2060_config 0 2931 NULL
133053 +disable_so_time_msdos_dir_entry_2939 time msdos_dir_entry 0 2939 NULL
133054 +disable_so_acpi_install_address_space_handler_fndecl_2940 acpi_install_address_space_handler fndecl 0-2 2940 NULL nohasharray
133055 +disable_so_addr_genwqe_reg_2940 addr genwqe_reg 0 2940 &disable_so_acpi_install_address_space_handler_fndecl_2940
133056 +disable_so_addr_max77693_reg_data_2945 addr max77693_reg_data 0 2945 NULL nohasharray
133057 +disable_so_addrconf_set_dstaddr_fndecl_2945 addrconf_set_dstaddr fndecl 0 2945 &disable_so_addr_max77693_reg_data_2945
133058 +disable_so_gcm_hash_init_done_fndecl_2957 gcm_hash_init_done fndecl 2 2957 NULL
133059 +disable_so_mwifiex_pcie_alloc_sleep_cookie_buf_fndecl_2961 mwifiex_pcie_alloc_sleep_cookie_buf fndecl 0 2961 NULL
133060 +disable_so_ip_list_gid_vardecl_xt_recent_c_2969 ip_list_gid vardecl_xt_recent.c 0 2969 NULL
133061 +disable_so_ieee80211_calculate_rx_timestamp_fndecl_2979 ieee80211_calculate_rx_timestamp fndecl 3-4-0 2979 NULL
133062 +disable_so_jiffies_at_last_reset_qla_statistics_2982 jiffies_at_last_reset qla_statistics 0 2982 NULL
133063 +disable_so_read_magic_time_fndecl_3002 read_magic_time fndecl 0 3002 NULL
133064 +disable_so_node_addr_mdc_hw_list_desc_3006 node_addr mdc_hw_list_desc 0 3006 NULL
133065 +disable_so_bitmap_clear_bits_fndecl_3008 bitmap_clear_bits fndecl 3-4 3008 NULL
133066 +disable_so_cipher_offset_icp_qat_fw_la_cipher_req_params_3009 cipher_offset icp_qat_fw_la_cipher_req_params 0 3009 NULL
133067 +disable_so_local_addr_c2wr_ep_listen_create_req_3021 local_addr c2wr_ep_listen_create_req 0 3021 NULL nohasharray
133068 +disable_so_bitmap_end_sync_fndecl_3021 bitmap_end_sync fndecl 2 3021 &disable_so_local_addr_c2wr_ep_listen_create_req_3021
133069 +disable_so___xfrm6_daddr_saddr_hash_fndecl_3024 __xfrm6_daddr_saddr_hash fndecl 0 3024 NULL
133070 +disable_so_port_name_fcgs_gidpn_req_s_3037 port_name fcgs_gidpn_req_s 0 3037 NULL
133071 +disable_so___pm_runtime_set_status_fndecl_3040 __pm_runtime_set_status fndecl 0 3040 NULL nohasharray
133072 +disable_so_inactivity_time_adxl34x_platform_data_3040 inactivity_time adxl34x_platform_data 0 3040 &disable_so___pm_runtime_set_status_fndecl_3040
133073 +disable_so_bm_dev_capacity_drbd_bitmap_3043 bm_dev_capacity drbd_bitmap 0 3043 NULL
133074 +disable_so_arp_hash_fndecl_3046 arp_hash fndecl 2 3046 NULL
133075 +disable_so_setkey_ablkcipher_alg_3056 setkey ablkcipher_alg 3 3056 NULL
133076 +disable_so_display_delay_s5p_mfc_ctx_3062 display_delay s5p_mfc_ctx 0 3062 NULL
133077 +disable_so_power_jiffies_hda_codec_3064 power_jiffies hda_codec 0 3064 NULL
133078 +disable_so_dw_mci_exynos_adjust_clock_fndecl_3069 dw_mci_exynos_adjust_clock fndecl 2 3069 NULL
133079 +disable_so_set_var_mtrr_msr_fndecl_3073 set_var_mtrr_msr fndecl 3 3073 NULL
133080 +disable_so_pm860x_rtc_read_time_fndecl_3079 pm860x_rtc_read_time fndecl 0 3079 NULL nohasharray
133081 +disable_so_buffer_haddr_rbd_3079 buffer_haddr rbd 0 3079 &disable_so_pm860x_rtc_read_time_fndecl_3079
133082 +disable_so_snd_usb_find_clock_source_fndecl_3080 snd_usb_find_clock_source fndecl 2 3080 NULL
133083 +disable_so_response_buffer_address_on_dsp_hpi_hw_obj_3083 response_buffer_address_on_dsp hpi_hw_obj 0 3083 NULL
133084 +disable_so_valid_mmap_phys_addr_range_fndecl_3090 valid_mmap_phys_addr_range fndecl 1-2 3090 NULL
133085 +disable_so_mc_addr_count_s2io_nic_3095 mc_addr_count s2io_nic 0 3095 NULL
133086 +disable_so_si4713_g_frequency_fndecl_3096 si4713_g_frequency fndecl 0 3096 NULL
133087 +disable_so_rtl_bb_delay_fndecl_3097 rtl_bb_delay fndecl 2-3 3097 NULL
133088 +disable_so_nla_put_u16_fndecl_3101 nla_put_u16 fndecl 3-0 3101 NULL
133089 +disable_so_enet_addr_rst_fndecl_3111 enet_addr_rst fndecl 1 3111 NULL
133090 +disable_so_xtime_interval_timekeeper_3116 xtime_interval timekeeper 0 3116 NULL
133091 +disable_so_atomic_set_prop_fndecl_3117 atomic_set_prop fndecl 4-0 3117 NULL
133092 +disable_so_read_timeout_vardecl_legousbtower_c_3118 read_timeout vardecl_legousbtower.c 0 3118 NULL nohasharray
133093 +disable_so_netmask_c2_netaddr_3118 netmask c2_netaddr 0 3118 &disable_so_read_timeout_vardecl_legousbtower_c_3118 nohasharray
133094 +disable_so_hashlo_smsc911x_data_3118 hashlo smsc911x_data 0 3118 &disable_so_netmask_c2_netaddr_3118 nohasharray
133095 +disable_so_q_hash_irda_queue_3118 q_hash irda_queue 0 3118 &disable_so_hashlo_smsc911x_data_3118
133096 +disable_so_rpc_get_timeout_fndecl_3124 rpc_get_timeout fndecl 0 3124 NULL
133097 +disable_so_ctime_fuse_attr_3128 ctime fuse_attr 0 3128 NULL
133098 +disable_so_dl_time_nfs4_delegation_3130 dl_time nfs4_delegation 0 3130 NULL
133099 +disable_so_tx_packet_ring_addr_acx_data_path_params_resp_3132 tx_packet_ring_addr acx_data_path_params_resp 0 3132 NULL
133100 +disable_so__div_round_fndecl_3134 _div_round fndecl 2-3-0 3134 NULL
133101 +disable_so_power_up_frequency_adf4350_platform_data_3140 power_up_frequency adf4350_platform_data 0 3140 NULL
133102 +disable_so_bytes_xfrm_lifetime_cur_3145 bytes xfrm_lifetime_cur 0 3145 NULL
133103 +disable_so_show_nguid_fndecl_3155 show_nguid fndecl 0 3155 NULL nohasharray
133104 +disable_so_svm_read_tsc_offset_fndecl_3155 svm_read_tsc_offset fndecl 0 3155 &disable_so_show_nguid_fndecl_3155
133105 +disable_so_shash_ahash_finup_fndecl_3156 shash_ahash_finup fndecl 0 3156 NULL
133106 +disable_so_adjtime_ptp_clock_info_3161 adjtime ptp_clock_info 2 3161 NULL
133107 +disable_so_read_addr___mux2_3162 read_addr __mux2 0 3162 NULL
133108 +disable_so_mem_type_mtrr_iter_3164 mem_type mtrr_iter 0 3164 NULL
133109 +disable_so_cg_spll_func_cntl_ni_clock_registers_3176 cg_spll_func_cntl ni_clock_registers 0 3176 NULL
133110 +disable_so_schedule_hrtimeout_range_clock_fndecl_3178 schedule_hrtimeout_range_clock fndecl 4-2 3178 NULL nohasharray
133111 +disable_so_bitmap_copy_fndecl_3178 bitmap_copy fndecl 3 3178 &disable_so_schedule_hrtimeout_range_clock_fndecl_3178
133112 +disable_so__is_valid_table_div_fndecl_3179 _is_valid_table_div fndecl 2 3179 NULL
133113 +disable_so_addr_2_qla83xx_minidump_entry_pollrdmwr_3183 addr_2 qla83xx_minidump_entry_pollrdmwr 0 3183 NULL
133114 +disable_so_via_clock_vardecl_via82cxxx_c_3195 via_clock vardecl_via82cxxx.c 0 3195 NULL
133115 +disable_so_timeout_reader_dev_3196 timeout reader_dev 0 3196 NULL
133116 +disable_so_delay_palmas_clk32k_desc_3198 delay palmas_clk32k_desc 0 3198 NULL nohasharray
133117 +disable_so_freq_if_hz_tda10048_state_3198 freq_if_hz tda10048_state 0 3198 &disable_so_delay_palmas_clk32k_desc_3198
133118 +disable_so_i2c_address_tda18218_config_3199 i2c_address tda18218_config 0 3199 NULL nohasharray
133119 +disable_so_bot_freq_region_info_3199 bot_freq region_info 0 3199 &disable_so_i2c_address_tda18218_config_3199
133120 +disable_so_sdr_adc_freq_vivid_dev_3202 sdr_adc_freq vivid_dev 0 3202 NULL
133121 +disable_so_wlc_phy_cal_perical_mphase_schedule_fndecl_3220 wlc_phy_cal_perical_mphase_schedule fndecl 2 3220 NULL
133122 +disable_so_uid_ceph_mds_reply_inode_3222 uid ceph_mds_reply_inode 0 3222 NULL nohasharray
133123 +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
133124 +disable_so_txq_addr_vf_pf_txq_params_3223 txq_addr vf_pf_txq_params 0 3223 NULL
133125 +disable_so_dma_addr_ksz_shared_mem_3226 dma_addr ksz_shared_mem 0 3226 NULL
133126 +disable_so_smb_timer_atl1_hw_3230 smb_timer atl1_hw 0 3230 NULL
133127 +disable_so_nilfs_btree_node_set_key_fndecl_3231 nilfs_btree_node_set_key fndecl 2-3 3231 NULL
133128 +disable_so_finish_output_interrupt_fndecl_3255 finish_output_interrupt fndecl 1 3255 NULL
133129 +disable_so_command_block_agent_address_sbp2_logical_unit_3261 command_block_agent_address sbp2_logical_unit 0 3261 NULL
133130 +disable_so_st21nfca_get_iso14443_3_uid_fndecl_3264 st21nfca_get_iso14443_3_uid fndecl 0 3264 NULL
133131 +disable_so_db_rec_addr_mlx5_qp_context_3265 db_rec_addr mlx5_qp_context 0 3265 NULL
133132 +disable_so_rssi_jiffies_mwifiex_auto_tdls_peer_3275 rssi_jiffies mwifiex_auto_tdls_peer 0 3275 NULL
133133 +disable_so_random_read_wakeup_bits_vardecl_random_c_3284 random_read_wakeup_bits vardecl_random.c 0 3284 NULL
133134 +disable_so_time_busy_survey_info_3291 time_busy survey_info 0 3291 NULL
133135 +disable_so_platform_pci_sleep_wake_fndecl_3293 platform_pci_sleep_wake fndecl 0 3293 NULL nohasharray
133136 +disable_so_walk_blocksize_blkcipher_walk_3293 walk_blocksize blkcipher_walk 0 3293 &disable_so_platform_pci_sleep_wake_fndecl_3293
133137 +disable_so_addr_kvm_shadow_walk_iterator_3297 addr kvm_shadow_walk_iterator 0 3297 NULL
133138 +disable_so_r6e_val_fc2580_freq_regs_3300 r6e_val fc2580_freq_regs 0 3300 NULL
133139 +disable_so_clock_speed_ov7670_info_3304 clock_speed ov7670_info 0 3304 NULL
133140 +disable_so_bank_base_effect_addr_snd_ymfpci_3311 bank_base_effect_addr snd_ymfpci 0 3311 NULL
133141 +disable_so_nfs_map_name_to_uid_fndecl_3313 nfs_map_name_to_uid fndecl 0-3 3313 NULL
133142 +disable_so_read_block_bitmap_fndecl_3319 read_block_bitmap fndecl 0-3-4 3319 NULL
133143 +disable_so_sis190_get_mac_addr_from_apc_fndecl_3325 sis190_get_mac_addr_from_apc fndecl 0 3325 NULL
133144 +disable_so_head_uvc_clock_3340 head uvc_clock 0 3340 NULL
133145 +disable_so_amd_clock_vardecl_amd74xx_c_3344 amd_clock vardecl_amd74xx.c 0 3344 NULL nohasharray
133146 +disable_so_host_cmds_addr_rtsx_pcr_3344 host_cmds_addr rtsx_pcr 0 3344 &disable_so_amd_clock_vardecl_amd74xx_c_3344
133147 +disable_so_xp_cpu_to_nasid_uv_fndecl_3353 xp_cpu_to_nasid_uv fndecl 0 3353 NULL
133148 +disable_so_last_join_time_local_info_3359 last_join_time local_info 0 3359 NULL
133149 +disable_so_tcf_hash_release_fndecl_3369 tcf_hash_release fndecl 0 3369 NULL
133150 +disable_so_carl9170_set_slot_time_fndecl_3372 carl9170_set_slot_time fndecl 0 3372 NULL
133151 +disable_so_mmc_schedule_delayed_work_fndecl_3376 mmc_schedule_delayed_work fndecl 2 3376 NULL
133152 +disable_so_m_mt9t112_pll_divider_3397 m mt9t112_pll_divider 0 3397 NULL nohasharray
133153 +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
133154 +disable_so_irlap_generate_rand_time_slot_fndecl_3415 irlap_generate_rand_time_slot fndecl 0-1-2 3415 NULL
133155 +disable_so_via_set_secondary_address_fndecl_3417 via_set_secondary_address fndecl 1 3417 NULL
133156 +disable_so___timekeeping_set_tai_offset_fndecl_3425 __timekeeping_set_tai_offset fndecl 2 3425 NULL
133157 +disable_so_apic_access_addr_vmcs12_3427 apic_access_addr vmcs12 0 3427 NULL
133158 +disable_so_prod_idx_addr_cqicb_3435 prod_idx_addr cqicb 0 3435 NULL
133159 +disable_so_uwb_rc_dev_addr_mgmt_fndecl_3445 uwb_rc_dev_addr_mgmt fndecl 0 3445 NULL
133160 +disable_so_sg_bus_addr_ScsiReqBlk_3447 sg_bus_addr ScsiReqBlk 0 3447 NULL
133161 +disable_so_i2c_addr_lgdt3306a_config_3452 i2c_addr lgdt3306a_config 0 3452 NULL
133162 +disable_so_sym_selectclock_fndecl_3453 sym_selectclock fndecl 2 3453 NULL
133163 +disable_so_timestamp_wl1251_rx_descriptor_3475 timestamp wl1251_rx_descriptor 0 3475 NULL
133164 +disable_so_hw_cons_phys_addr_qlcnic_host_tx_ring_3481 hw_cons_phys_addr qlcnic_host_tx_ring 0 3481 NULL
133165 +disable_so_last_jiffies_snd_timer_system_private_3482 last_jiffies snd_timer_system_private 0 3482 NULL
133166 +disable_so_r_min_rnr_timer_qib_qp_3487 r_min_rnr_timer qib_qp 0 3487 NULL
133167 +disable_so_ata_wait_register_fndecl_3494 ata_wait_register fndecl 0 3494 NULL
133168 +disable_so_time_adjust_vardecl_ntp_c_3504 time_adjust vardecl_ntp.c 0 3504 NULL
133169 +disable_so_cursor_addr_intel_crtc_3508 cursor_addr intel_crtc 0 3508 NULL
133170 +disable_so_trf7970a_pm_runtime_suspend_fndecl_3511 trf7970a_pm_runtime_suspend fndecl 0 3511 NULL
133171 +disable_so_oops_timestamp_vardecl_printk_c_3515 oops_timestamp vardecl_printk.c 0 3515 NULL
133172 +disable_so_data_blkaddr_dnode_of_data_3521 data_blkaddr dnode_of_data 0 3521 NULL
133173 +disable_so_SYSC_set_tid_address_fndecl_3523 SYSC_set_tid_address fndecl 0 3523 NULL
133174 +disable_so_ftdi_232am_baud_base_to_divisor_fndecl_3525 ftdi_232am_baud_base_to_divisor fndecl 0-1-2 3525 NULL nohasharray
133175 +disable_so_fll_ratio__fll_div_3525 fll_ratio _fll_div 0 3525 &disable_so_ftdi_232am_baud_base_to_divisor_fndecl_3525 nohasharray
133176 +disable_so_xpcs_reg_addr_write_fndecl_3525 xpcs_reg_addr_write fndecl 3-0 3525 &disable_so_fll_ratio__fll_div_3525
133177 +disable_so_init_crypto_ahash_3526 init crypto_ahash 0 3526 NULL
133178 +disable_so_sit_blkaddr_f2fs_super_block_3531 sit_blkaddr f2fs_super_block 0 3531 NULL
133179 +disable_so_uuid_io_fndecl_3533 uuid_io fndecl 2 3533 NULL
133180 +disable_so_bufs_dma_addr_slgt_info_3534 bufs_dma_addr slgt_info 0 3534 NULL
133181 +disable_so_cpumask_size_fndecl_3544 cpumask_size fndecl 0 3544 NULL
133182 +disable_so_ocfs2_load_local_quota_bitmaps_fndecl_3551 ocfs2_load_local_quota_bitmaps fndecl 0 3551 NULL
133183 +disable_so_ghash_mod_init_fndecl_3557 ghash_mod_init fndecl 0 3557 NULL
133184 +disable_so_ath5k_hw_init_beacon_timers_fndecl_3558 ath5k_hw_init_beacon_timers fndecl 2-3 3558 NULL
133185 +disable_so_addr_h_qla2xxx_fce_chain_3560 addr_h qla2xxx_fce_chain 0 3560 NULL
133186 +disable_so_acpi_pci_sleep_wake_fndecl_3562 acpi_pci_sleep_wake fndecl 0 3562 NULL
133187 +disable_so_sd_set_timing_fndecl_3566 sd_set_timing fndecl 0 3566 NULL
133188 +disable_so_hpt3x2n_pci_clock_fndecl_3568 hpt3x2n_pci_clock fndecl 0 3568 NULL
133189 +disable_so_ata_sff_busy_sleep_fndecl_3571 ata_sff_busy_sleep fndecl 2-3 3571 NULL
133190 +disable_so_min_freq_cpufreq_cpuinfo_3592 min_freq cpufreq_cpuinfo 0 3592 NULL
133191 +disable_so_ver_blank_start_via_display_timing_3593 ver_blank_start via_display_timing 0 3593 NULL
133192 +disable_so_last_tsc_khz_kvm_arch_3596 last_tsc_khz kvm_arch 0 3596 NULL
133193 +disable_so_addrconf_sysctl_stable_secret_fndecl_3602 addrconf_sysctl_stable_secret fndecl 0 3602 NULL
133194 +disable_so_rxq_addr_vf_pf_rxq_params_3624 rxq_addr vf_pf_rxq_params 0 3624 NULL
133195 +disable_so_go7007_usb_ezusb_write_interrupt_fndecl_3625 go7007_usb_ezusb_write_interrupt fndecl 3-2 3625 NULL
133196 +disable_so_zd_write_mac_addr_fndecl_3635 zd_write_mac_addr fndecl 0 3635 NULL
133197 +disable_so_rt2x00crypto_tx_insert_iv_fndecl_3640 rt2x00crypto_tx_insert_iv fndecl 2 3640 NULL
133198 +disable_so_lvb_imtime_packed_ocfs2_meta_lvb_3641 lvb_imtime_packed ocfs2_meta_lvb 0 3641 NULL
133199 +disable_so_base_address_acpi_srat_mem_affinity_3662 base_address acpi_srat_mem_affinity 0 3662 NULL
133200 +disable_so_time_ksz_counter_info_3667 time ksz_counter_info 0 3667 NULL
133201 +disable_so_phys_addr_qlcnic_host_sds_ring_3676 phys_addr qlcnic_host_sds_ring 0 3676 NULL
133202 +disable_so_addr_ipcm_cookie_3680 addr ipcm_cookie 0 3680 NULL
133203 +disable_so_timestamp_nfs4_renewdata_3698 timestamp nfs4_renewdata 0 3698 NULL
133204 +disable_so_ocfs2_find_subtree_root_fndecl_3700 ocfs2_find_subtree_root fndecl 0 3700 NULL
133205 +disable_so_azx_get_delay_from_lpib_fndecl_3703 azx_get_delay_from_lpib fndecl 0-3 3703 NULL
133206 +disable_so_ieee80211_frequency_to_channel_fndecl_3709 ieee80211_frequency_to_channel fndecl 0-1 3709 NULL
133207 +disable_so_rx8025_sysfs_show_clock_adjust_fndecl_3720 rx8025_sysfs_show_clock_adjust fndecl 0 3720 NULL nohasharray
133208 +disable_so_vtotal___fb_timings_3720 vtotal __fb_timings 0 3720 &disable_so_rx8025_sysfs_show_clock_adjust_fndecl_3720
133209 +disable_so_autofs4_compat_get_set_timeout_fndecl_3726 autofs4_compat_get_set_timeout fndecl 0 3726 NULL
133210 +disable_so_paddr_ath10k_mem_chunk_3729 paddr ath10k_mem_chunk 0 3729 NULL
133211 +disable_so_interrupt_serio_driver_3738 interrupt serio_driver 2 3738 NULL
133212 +disable_so_m2_gma_clock_t_3742 m2 gma_clock_t 0 3742 NULL
133213 +disable_so_n_mt9t112_pll_divider_3743 n mt9t112_pll_divider 0 3743 NULL
133214 +disable_so_gcm_hash_crypt_done_fndecl_3746 gcm_hash_crypt_done fndecl 2 3746 NULL
133215 +disable_so_addr_i915_wa_reg_3751 addr i915_wa_reg 0 3751 NULL
133216 +disable_so_r12_kvm_regs_3771 r12 kvm_regs 0 3771 NULL
133217 +disable_so_sw_addr_dsa_chip_data_3785 sw_addr dsa_chip_data 0 3785 NULL
133218 +disable_so_t_sec_xfs_ictimestamp_3790 t_sec xfs_ictimestamp 0 3790 NULL
133219 +disable_so_ext4_block_bitmap_csum_set_fndecl_3795 ext4_block_bitmap_csum_set fndecl 2 3795 NULL
133220 +disable_so_pud_page_vaddr_fndecl_3809 pud_page_vaddr fndecl 0 3809 NULL
133221 +disable_so_coalescing_timeout_bfi_enet_ib_cfg_3813 coalescing_timeout bfi_enet_ib_cfg 0 3813 NULL
133222 +disable_so_sg_list_dma_address_skd_command_header_3825 sg_list_dma_address skd_command_header 0 3825 NULL
133223 +disable_so_ax25_display_timer_fndecl_3831 ax25_display_timer fndecl 0 3831 NULL
133224 +disable_so_tsi721_imsg_interrupt_disable_fndecl_3835 tsi721_imsg_interrupt_disable fndecl 2-3 3835 NULL
133225 +disable_so_irlap_start_mbusy_timer_fndecl_3852 irlap_start_mbusy_timer fndecl 2 3852 NULL
133226 +disable_so_size_log2_iwch_create_cq_resp_3861 size_log2 iwch_create_cq_resp 0 3861 NULL
133227 +disable_so_cttimeout_get_timeout_fndecl_3867 cttimeout_get_timeout fndecl 0 3867 NULL
133228 +disable_so_ioadl_bus_addr_pmcraid_ioarcb_3871 ioadl_bus_addr pmcraid_ioarcb 0 3871 NULL
133229 +disable_so___clocksource_register_scale_fndecl_3879 __clocksource_register_scale fndecl 2-3-0 3879 NULL
133230 +disable_so_tx_lsndtime_ccid2_hc_tx_sock_3890 tx_lsndtime ccid2_hc_tx_sock 0 3890 NULL
133231 +disable_so_xfs_btree_new_root_fndecl_3895 xfs_btree_new_root fndecl 0 3895 NULL
133232 +disable_so_freq_p54_channel_entry_3897 freq p54_channel_entry 0 3897 NULL
133233 +disable_so_xen_poll_irq_timeout_fndecl_3900 xen_poll_irq_timeout fndecl 1-2 3900 NULL
133234 +disable_so_nilfs_btree_propagate_v_fndecl_3902 nilfs_btree_propagate_v fndecl 0 3902 NULL
133235 +disable_so_max8907_rtc_set_time_fndecl_3905 max8907_rtc_set_time fndecl 0 3905 NULL
133236 +disable_so_alps_command_mode_set_addr_fndecl_3910 alps_command_mode_set_addr fndecl 2 3910 NULL
133237 +disable_so_ltimer_val_vxge_hw_tim_intr_config_3911 ltimer_val vxge_hw_tim_intr_config 0 3911 NULL
133238 +disable_so_dqb_btime_v1_disk_dqblk_3914 dqb_btime v1_disk_dqblk 0 3914 NULL nohasharray
133239 +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
133240 +disable_so_ieee802154_hdr_push_addr_fndecl_3915 ieee802154_hdr_push_addr fndecl 0 3915 NULL
133241 +disable_so_blk_mq_init_bitmap_tags_fndecl_3929 blk_mq_init_bitmap_tags fndecl 2 3929 NULL
133242 +disable_so_mtimensec_fuse_attr_3937 mtimensec fuse_attr 0 3937 NULL
133243 +disable_so_cpu_clock_sample_group_fndecl_3939 cpu_clock_sample_group fndecl 1 3939 NULL
133244 +disable_so_min_bit_val_anatop_regulator_3947 min_bit_val anatop_regulator 0 3947 NULL
133245 +disable_so_warmup_time_sfb_sched_data_3959 warmup_time sfb_sched_data 0 3959 NULL
133246 +disable_so_zd_write_mac_addr_common_fndecl_3965 zd_write_mac_addr_common fndecl 0 3965 NULL
133247 +disable_so_ext2_valid_block_bitmap_fndecl_3966 ext2_valid_block_bitmap fndecl 3 3966 NULL
133248 +disable_so_ctnetlink_change_timeout_fndecl_3973 ctnetlink_change_timeout fndecl 0 3973 NULL
133249 +disable_so_root_nfs_parse_addr_fndecl_3974 root_nfs_parse_addr fndecl 0 3974 NULL
133250 +disable_so_zalloc_cpumask_var_fndecl_3979 zalloc_cpumask_var fndecl 2 3979 NULL
133251 +disable_so_sta_addr_hash_fndecl_3982 sta_addr_hash fndecl 0-3 3982 NULL
133252 +disable_so_address_ins_format3_3983 address ins_format3 0 3983 NULL
133253 +disable_so___nfsd4_write_time_fndecl_3999 __nfsd4_write_time fndecl 0 3999 NULL
133254 +disable_so_disc_start_time_esas2r_adapter_4010 disc_start_time esas2r_adapter 0 4010 NULL
133255 +disable_so_scroll_jiffies_magicmouse_sc_4034 scroll_jiffies magicmouse_sc 0 4034 NULL
133256 +disable_so_add_input_randomness_fndecl_4036 add_input_randomness fndecl 3-1-2 4036 NULL
133257 +disable_so_rc5t583_regulator_enable_time_fndecl_4047 rc5t583_regulator_enable_time fndecl 0 4047 NULL
133258 +disable_so_s_log2sharesize_adfs_sb_info_4052 s_log2sharesize adfs_sb_info 0 4052 NULL
133259 +disable_so___bitmap_or_fndecl_4055 __bitmap_or fndecl 4 4055 NULL
133260 +disable_so_clockevents_config_and_register_fndecl_4078 clockevents_config_and_register fndecl 2-3-4 4078 NULL
133261 +disable_so_db_addr_mlx5_ib_create_qp_4086 db_addr mlx5_ib_create_qp 0 4086 NULL
133262 +disable_so_t4_wr_mbox_meat_fndecl_4090 t4_wr_mbox_meat fndecl 0-2 4090 NULL
133263 +disable_so_debounce_time_lm8333_platform_data_4097 debounce_time lm8333_platform_data 0 4097 NULL
133264 +disable_so_di_atime_logfs_disk_inode_4115 di_atime logfs_disk_inode 0 4115 NULL
133265 +disable_so_slave_address_cp2112_read_req_report_4116 slave_address cp2112_read_req_report 0 4116 NULL
133266 +disable_so_sleep_functions_on_battery_store_fndecl_4126 sleep_functions_on_battery_store fndecl 0-4 4126 NULL
133267 +disable_so_neigh_rand_reach_time_fndecl_4142 neigh_rand_reach_time fndecl 0-1 4142 NULL
133268 +disable_so_fib_devindex_hashfn_fndecl_4150 fib_devindex_hashfn fndecl 0-1 4150 NULL
133269 +disable_so_compat_sys_clock_adjtime_fndecl_4152 compat_sys_clock_adjtime fndecl 1 4152 NULL nohasharray
133270 +disable_so_addr_sh_eth_rxdesc_4152 addr sh_eth_rxdesc 0 4152 &disable_so_compat_sys_clock_adjtime_fndecl_4152
133271 +disable_so_throttled_clock_task_time_cfs_rq_4161 throttled_clock_task_time cfs_rq 0 4161 NULL
133272 +disable_so_usb_set_lpm_timeout_fndecl_4163 usb_set_lpm_timeout fndecl 3 4163 NULL
133273 +disable_so_delay_multi_eq_delay_info_4167 delay_multi eq_delay_info 0 4167 NULL nohasharray
133274 +disable_so_reg_w_fndecl_4167 reg_w fndecl 2 4167 &disable_so_delay_multi_eq_delay_info_4167
133275 +disable_so_btree_migratepage_fndecl_4171 btree_migratepage fndecl 0 4171 NULL
133276 +disable_so_vpfe_set_sdr_addr_fndecl_4178 vpfe_set_sdr_addr fndecl 2 4178 NULL
133277 +disable_so_rx_beacon_signal_avg_station_info_4180 rx_beacon_signal_avg station_info 0 4180 NULL
133278 +disable_so_put_time_rxrpc_connection_4183 put_time rxrpc_connection 0 4183 NULL
133279 +disable_so_demod_address_nxt200x_config_4185 demod_address nxt200x_config 0 4185 NULL
133280 +disable_so_addr_lo_cmdQ_e_4186 addr_lo cmdQ_e 0 4186 NULL
133281 +disable_so_addr_lo_eth_tx_next_bd_4188 addr_lo eth_tx_next_bd 0 4188 NULL
133282 +disable_so_timeout_kbd_backlight_4193 timeout kbd_backlight 0 4193 NULL
133283 +disable_so_hw_ptr_buffer_jiffies_snd_pcm_runtime_4199 hw_ptr_buffer_jiffies snd_pcm_runtime 0 4199 NULL
133284 +disable_so_hash_walk_new_entry_fndecl_4203 hash_walk_new_entry fndecl 0 4203 NULL
133285 +disable_so_time_of_death_afs_server_4206 time_of_death afs_server 0 4206 NULL
133286 +disable_so_rtl2832_sdr_s_frequency_fndecl_4208 rtl2832_sdr_s_frequency fndecl 0 4208 NULL
133287 +disable_so_si476x_radio_g_frequency_fndecl_4218 si476x_radio_g_frequency fndecl 0 4218 NULL
133288 +disable_so_ahc_delay_fndecl_4220 ahc_delay fndecl 1 4220 NULL
133289 +disable_so_mounted_time_sit_info_4228 mounted_time sit_info 0 4228 NULL
133290 +disable_so_ahash_register_instance_fndecl_4229 ahash_register_instance fndecl 0 4229 NULL
133291 +disable_so_f_frequency_e4000_dev_4236 f_frequency e4000_dev 0 4236 NULL
133292 +disable_so_timekeeping_adjust_fndecl_4243 timekeeping_adjust fndecl 2 4243 NULL
133293 +disable_so_sis190_mac_addr_fndecl_4248 sis190_mac_addr fndecl 0 4248 NULL nohasharray
133294 +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
133295 +disable_so_xhci_enable_usb3_lpm_timeout_fndecl_4278 xhci_enable_usb3_lpm_timeout fndecl 0 4278 NULL
133296 +disable_so_address_be_bus_address64_4299 address be_bus_address64 0 4299 NULL
133297 +disable_so_freq_tef6862_state_4304 freq tef6862_state 0 4304 NULL
133298 +disable_so_aes_decrypt_interrupt_read_fndecl_4309 aes_decrypt_interrupt_read fndecl 3-0 4309 NULL
133299 +disable_so_lm3533_set_boost_freq_fndecl_4311 lm3533_set_boost_freq fndecl 0-2 4311 NULL
133300 +disable_so_adis16400_set_freq_fndecl_4314 adis16400_set_freq fndecl 0 4314 NULL
133301 +disable_so_vsync_offset_pulse_width_lo_detailed_pixel_timing_4318 vsync_offset_pulse_width_lo detailed_pixel_timing 0 4318 NULL
133302 +disable_so_time_atkbd_4320 time atkbd 0 4320 NULL nohasharray
133303 +disable_so_make_kuid_fndecl_4320 make_kuid fndecl 2 4320 &disable_so_time_atkbd_4320
133304 +disable_so_lookup_scsi3addr_fndecl_4332 lookup_scsi3addr fndecl 2-3-4 4332 NULL
133305 +disable_so_bf_buf_addr_ath_rxbuf_4337 bf_buf_addr ath_rxbuf 0 4337 NULL
133306 +disable_so_kbd_backlight_timeout_vardecl_sony_laptop_c_4340 kbd_backlight_timeout vardecl_sony-laptop.c 0 4340 NULL
133307 +disable_so_tomoyo_addprintf_fndecl_4352 tomoyo_addprintf fndecl 2 4352 NULL
133308 +disable_so_ab3100_get_register_interruptible_fndecl_4353 ab3100_get_register_interruptible fndecl 0 4353 NULL
133309 +disable_so_cpufreq_add_dev_interface_fndecl_4356 cpufreq_add_dev_interface fndecl 0 4356 NULL
133310 +disable_so_upper_addr_ufshcd_sg_entry_4364 upper_addr ufshcd_sg_entry 0 4364 NULL
133311 +disable_so_linear_address_kvm_translation_4366 linear_address kvm_translation 0 4366 NULL
133312 +disable_so_n_tty_receive_signal_char_fndecl_4373 n_tty_receive_signal_char fndecl 2 4373 NULL
133313 +disable_so_proc_uid_vardecl_airo_c_4387 proc_uid vardecl_airo.c 0 4387 NULL nohasharray
133314 +disable_so_dequeue_signal_fndecl_4387 dequeue_signal fndecl 0 4387 &disable_so_proc_uid_vardecl_airo_c_4387
133315 +disable_so_nilfs_btree_root_broken_fndecl_4403 nilfs_btree_root_broken fndecl 2 4403 NULL
133316 +disable_so_kstrtoll_from_user_fndecl_4415 kstrtoll_from_user fndecl 2 4415 NULL
133317 +disable_so_timestamp_fw_packet_4416 timestamp fw_packet 0 4416 NULL
133318 +disable_so_hhf_reset_timeout_hhf_sched_data_4417 hhf_reset_timeout hhf_sched_data 0 4417 NULL
133319 +disable_so_timeout_mpt3_ioctl_command_4422 timeout mpt3_ioctl_command 0 4422 NULL
133320 +disable_so_reg_write_fndecl_4433 reg_write fndecl 0-2-3 4433 NULL
133321 +disable_so_et0phyaddr_ssb_sprom_4448 et0phyaddr ssb_sprom 0 4448 NULL
133322 +disable_so_prev_steal_time_rq_4451 prev_steal_time rq 0 4451 NULL
133323 +disable_so_master_init_timer_mipi_config_4453 master_init_timer mipi_config 0 4453 NULL
133324 +disable_so_find_eth_addr_in_vpd_fndecl_4457 find_eth_addr_in_vpd fndecl 3 4457 NULL
133325 +disable_so_ccca_start_addr_snd_emu10k1_pcm_4459 ccca_start_addr snd_emu10k1_pcm 0 4459 NULL
133326 +disable_so_freq_offset_khz_vhf_dib0090_config_4461 freq_offset_khz_vhf dib0090_config 0 4461 NULL
133327 +disable_so_rxqueue_timer_velocity_opt_4470 rxqueue_timer velocity_opt 0 4470 NULL
133328 +disable_so_sysctl_rose_link_fail_timeout_vardecl_4477 sysctl_rose_link_fail_timeout vardecl 0 4477 NULL
133329 +disable_so_ablkcipher_walk_first_fndecl_4483 ablkcipher_walk_first fndecl 0 4483 NULL
133330 +disable_so_get_cached_alias_guid_fndecl_4490 get_cached_alias_guid fndecl 2-3 4490 NULL
133331 +disable_so_cfg80211_chandef_dfs_cac_time_fndecl_4493 cfg80211_chandef_dfs_cac_time fndecl 0 4493 NULL
133332 +disable_so_mclk_div2_cs42l56_private_4499 mclk_div2 cs42l56_private 0 4499 NULL
133333 +disable_so_snd_timer_user_ioctl_fndecl_4500 snd_timer_user_ioctl fndecl 0 4500 NULL nohasharray
133334 +disable_so_s5p_mfc_clock_on_fndecl_4500 s5p_mfc_clock_on fndecl 0 4500 &disable_so_snd_timer_user_ioctl_fndecl_4500
133335 +disable_so_boundary_snd_pcm_runtime_4504 boundary snd_pcm_runtime 0 4504 NULL nohasharray
133336 +disable_so_show_message_age_timer_fndecl_4504 show_message_age_timer fndecl 0 4504 &disable_so_boundary_snd_pcm_runtime_4504
133337 +disable_so_tn_smc_wreg_fndecl_4512 tn_smc_wreg fndecl 2-3 4512 NULL
133338 +disable_so_ip_perf_sample_data_4515 ip perf_sample_data 0 4515 NULL nohasharray
133339 +disable_so_intel_gpu_freq_fndecl_4515 intel_gpu_freq fndecl 0-2 4515 &disable_so_ip_perf_sample_data_4515
133340 +disable_so_clk_delay_mmc_host_4517 clk_delay mmc_host 0 4517 NULL
133341 +disable_so_addr_atiixp_modem_4521 addr atiixp_modem 0 4521 NULL
133342 +disable_so_rsp_dmaaddr_fw_scsi_write_wr_4522 rsp_dmaaddr fw_scsi_write_wr 0 4522 NULL
133343 +disable_so_last_sum_exec_runtime_task_struct_4531 last_sum_exec_runtime task_struct 0 4531 NULL
133344 +disable_so_buf_addr_mlx5_ib_create_qp_4533 buf_addr mlx5_ib_create_qp 0 4533 NULL
133345 +disable_so_set_h245_addr_fndecl_4538 set_h245_addr fndecl 2-4 4538 NULL
133346 +disable_so_sleep_reg_fan53555_device_info_4552 sleep_reg fan53555_device_info 0 4552 NULL
133347 +disable_so_freqmode__pll_div_4562 freqmode _pll_div 0 4562 NULL
133348 +disable_so_buffer_addr_i40e_tx_desc_4570 buffer_addr i40e_tx_desc 0 4570 NULL
133349 +disable_so_ctime_cifs_unix_set_info_args_4572 ctime cifs_unix_set_info_args 0 4572 NULL
133350 +disable_so_pci_bus_saa7164_dev_4576 pci_bus saa7164_dev 0 4576 NULL
133351 +disable_so_addr_vhost_log_4579 addr vhost_log 0 4579 NULL
133352 +disable_so_store_fan_div_fndecl_4585 store_fan_div fndecl 0-4 4585 NULL
133353 +disable_so_timeout__mgslpc_info_4586 timeout _mgslpc_info 0 4586 NULL
133354 +disable_so_posix_timer_add_fndecl_4591 posix_timer_add fndecl 0 4591 NULL
133355 +disable_so_system_timestamp_iwl_rx_phy_info_4592 system_timestamp iwl_rx_phy_info 0 4592 NULL
133356 +disable_so_guid_ib_dm_ioc_profile_4593 guid ib_dm_ioc_profile 0 4593 NULL
133357 +disable_so_qat_alg_ablkcipher_init_com_fndecl_4596 qat_alg_ablkcipher_init_com fndecl 5 4596 NULL
133358 +disable_so_irlan_client_start_kick_timer_fndecl_4618 irlan_client_start_kick_timer fndecl 2 4618 NULL
133359 +disable_so_kvm_apic_match_physical_addr_fndecl_4632 kvm_apic_match_physical_addr fndecl 2 4632 NULL
133360 +disable_so_task_fix_setuid_security_operations_4637 task_fix_setuid security_operations 0 4637 NULL
133361 +disable_so_nla_put_labels_fndecl_4639 nla_put_labels fndecl 3 4639 NULL
133362 +disable_so_xen_pcibk_guest_interrupt_fndecl_4644 xen_pcibk_guest_interrupt fndecl 1 4644 NULL
133363 +disable_so_phys_addr_qlcnic_fw_dump_4650 phys_addr qlcnic_fw_dump 0 4650 NULL
133364 +disable_so_daddr_ath5k_buf_4651 daddr ath5k_buf 0 4651 NULL
133365 +disable_so_phase_delay_atom_voltage_table_4655 phase_delay atom_voltage_table 0 4655 NULL
133366 +disable_so_nl80211_send_auth_timeout_fndecl_4657 nl80211_send_auth_timeout fndecl 4 4657 NULL
133367 +disable_so_af9013_statistics_signal_strength_fndecl_4658 af9013_statistics_signal_strength fndecl 0 4658 NULL
133368 +disable_so_kbd_led_timeout_store_fndecl_4659 kbd_led_timeout_store fndecl 0-4 4659 NULL
133369 +disable_so_byte_align_snd_pcm_runtime_4661 byte_align snd_pcm_runtime 0 4661 NULL
133370 +disable_so_stv0900_get_timing_offst_fndecl_4670 stv0900_get_timing_offst fndecl 0-2 4670 NULL
133371 +disable_so_clk_frequency_imx_sgtl5000_data_4671 clk_frequency imx_sgtl5000_data 0 4671 NULL
133372 +disable_so_sys_image_guid_ib_device_attr_4674 sys_image_guid ib_device_attr 0 4674 NULL
133373 +disable_so_timestamp_usec_rt2x00dump_hdr_4680 timestamp_usec rt2x00dump_hdr 0 4680 NULL
133374 +disable_so_ieee80211_aes_cmac_fndecl_4693 ieee80211_aes_cmac fndecl 4 4693 NULL
133375 +disable_so_hpi_handle_indexes_fndecl_4704 hpi_handle_indexes fndecl 1 4704 NULL
133376 +disable_so_runtime_suspend_mmc_bus_ops_4709 runtime_suspend mmc_bus_ops 0 4709 NULL
133377 +disable_so_i_atime_bfs_inode_4710 i_atime bfs_inode 0 4710 NULL
133378 +disable_so_tsf_timestamp_rx_ppdu_end_common_4717 tsf_timestamp rx_ppdu_end_common 0 4717 NULL
133379 +disable_so_register_blkdev_fndecl_4723 register_blkdev fndecl 0-1 4723 NULL
133380 +disable_so_clockevents_unbind_fndecl_4727 clockevents_unbind fndecl 2 4727 NULL
133381 +disable_so_dma_addr_vmxnet3_rx_buf_info_4730 dma_addr vmxnet3_rx_buf_info 0 4730 NULL
133382 +disable_so_ip_idents_reserve_fndecl_4731 ip_idents_reserve fndecl 0-1-2 4731 NULL
133383 +disable_so_atomic64_sub_and_test_fndecl_4733 atomic64_sub_and_test fndecl 1 4733 NULL nohasharray
133384 +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
133385 +disable_so_wakeup_total_time_show_fndecl_4745 wakeup_total_time_show fndecl 0 4745 NULL
133386 +disable_so_kv_get_sleep_divider_id_from_clock_fndecl_4756 kv_get_sleep_divider_id_from_clock fndecl 2 4756 NULL
133387 +disable_so_delay_fn_vardecl_delay_c_4772 delay_fn vardecl_delay.c 1 4772 NULL
133388 +disable_so_do_sched_cfs_period_timer_fndecl_4778 do_sched_cfs_period_timer fndecl 2 4778 NULL
133389 +disable_so_gid_index_mlx4_av_4786 gid_index mlx4_av 0 4786 NULL
133390 +disable_so_rq_addr_high_nes_qp_context_4796 rq_addr_high nes_qp_context 0 4796 NULL
133391 +disable_so_last_commit_jiffies_cache_4801 last_commit_jiffies cache 0 4801 NULL
133392 +disable_so_frequency_sst_hsw_audio_data_format_ipc_4811 frequency sst_hsw_audio_data_format_ipc 0 4811 NULL
133393 +disable_so_dev_sleep_time_cyapa_4825 dev_sleep_time cyapa 0 4825 NULL nohasharray
133394 +disable_so_si570_update_rfreq_fndecl_4825 si570_update_rfreq fndecl 0 4825 &disable_so_dev_sleep_time_cyapa_4825
133395 +disable_so_reply_dma_max_address_MPT2SAS_ADAPTER_4826 reply_dma_max_address MPT2SAS_ADAPTER 0 4826 NULL
133396 +disable_so_freq_nvkm_ram_data_4838 freq nvkm_ram_data 0 4838 NULL
133397 +disable_so_ata_timing_find_mode_fndecl_4841 ata_timing_find_mode fndecl 1 4841 NULL
133398 +disable_so_hci_bdaddr_list_del_fndecl_4856 hci_bdaddr_list_del fndecl 0 4856 NULL
133399 +disable_so_challenge_timestamp_vardecl_tcp_input_c_4859 challenge_timestamp vardecl_tcp_input.c 0 4859 NULL
133400 +disable_so_bar2_address_fndecl_4862 bar2_address fndecl 2 4862 NULL
133401 +disable_so_time_pardevice_4872 time pardevice 0 4872 NULL
133402 +disable_so_open_posix_clock_operations_4876 open posix_clock_operations 2 4876 NULL
133403 +disable_so_buf2_addr_xgmac_dma_desc_4877 buf2_addr xgmac_dma_desc 0 4877 NULL
133404 +disable_so_mixart_set_clock_fndecl_4878 mixart_set_clock fndecl 3 4878 NULL nohasharray
133405 +disable_so_adis16480_get_filter_freq_fndecl_4878 adis16480_get_filter_freq fndecl 0 4878 &disable_so_mixart_set_clock_fndecl_4878
133406 +disable_so_ssb_chipco_watchdog_get_max_timer_fndecl_4885 ssb_chipco_watchdog_get_max_timer fndecl 0 4885 NULL
133407 +disable_so_sys_timerfd_gettime_fndecl_4888 sys_timerfd_gettime fndecl 1 4888 NULL nohasharray
133408 +disable_so_regcache_rbtree_read_fndecl_4888 regcache_rbtree_read fndecl 2 4888 &disable_so_sys_timerfd_gettime_fndecl_4888
133409 +disable_so_reiserfs_read_bitmap_block_fndecl_4892 reiserfs_read_bitmap_block fndecl 2 4892 NULL
133410 +disable_so_mapaddr_bq_desc_4896 mapaddr bq_desc 0 4896 NULL
133411 +disable_so_sec_tomoyo_time_4898 sec tomoyo_time 0 4898 NULL
133412 +disable_so_nvkm_timer_wait_ne_fndecl_4904 nvkm_timer_wait_ne fndecl 3-5 4904 NULL
133413 +disable_so_ehash_locks_mask_inet_hashinfo_4906 ehash_locks_mask inet_hashinfo 0 4906 NULL
133414 +disable_so_split_scan_timeout_read_fndecl_4910 split_scan_timeout_read fndecl 3-0 4910 NULL
133415 +disable_so_rdmsr_safe_regs_on_cpu_fndecl_4918 rdmsr_safe_regs_on_cpu fndecl 0-1 4918 NULL
133416 +disable_so_data_addr_pmu_nvbios_pmuR_4930 data_addr_pmu nvbios_pmuR 0 4930 NULL
133417 +disable_so_fs_overflowgid_vardecl_4952 fs_overflowgid vardecl 0 4952 NULL
133418 +disable_so_crypto_authenc_esn_encrypt_done_fndecl_4953 crypto_authenc_esn_encrypt_done fndecl 2 4953 NULL
133419 +disable_so_addr_lo_sdhci_adma2_64_desc_4956 addr_lo sdhci_adma2_64_desc 0 4956 NULL
133420 +disable_so_hc_erase_timeout_mmc_ext_csd_4958 hc_erase_timeout mmc_ext_csd 0 4958 NULL nohasharray
133421 +disable_so_translation_offset_acpi_address64_attribute_4958 translation_offset acpi_address64_attribute 0 4958 &disable_so_hc_erase_timeout_mmc_ext_csd_4958
133422 +disable_so_address_acpi_object_region_4962 address acpi_object_region 0 4962 NULL
133423 +disable_so_nlmsvc_timeout_vardecl_4968 nlmsvc_timeout vardecl 0 4968 NULL
133424 +disable_so_icmpv6_time_netns_sysctl_ipv6_4971 icmpv6_time netns_sysctl_ipv6 0 4971 NULL
133425 +disable_so_rhashtable_walk_init_fndecl_4975 rhashtable_walk_init fndecl 0 4975 NULL
133426 +disable_so_tm_wday_rtc_time_4991 tm_wday rtc_time 0 4991 NULL
133427 +disable_so_pre_event_timeout_seq_oss_readq_4996 pre_event_timeout seq_oss_readq 0 4996 NULL
133428 +disable_so_m_sys_clock_freq_drxk_state_5005 m_sys_clock_freq drxk_state 0 5005 NULL
133429 +disable_so_btree_merge_fndecl_5007 btree_merge fndecl 4 5007 NULL
133430 +disable_so_addr_snd_dma_buffer_5022 addr snd_dma_buffer 0 5022 NULL
133431 +disable_so_mlx4_get_slave_num_gids_fndecl_5024 mlx4_get_slave_num_gids fndecl 0-2-3 5024 NULL
133432 +disable_so_time_nfc_llcp_sdp_tlv_5037 time nfc_llcp_sdp_tlv 0 5037 NULL
133433 +disable_so_hangcheck_tsc_margin_vardecl_hangcheck_timer_c_5043 hangcheck_tsc_margin vardecl_hangcheck-timer.c 0 5043 NULL
133434 +disable_so_fill_node_footer_blkaddr_fndecl_5053 fill_node_footer_blkaddr fndecl 2 5053 NULL
133435 +disable_so_sc_lseg_stime_nilfs_sc_info_5054 sc_lseg_stime nilfs_sc_info 0 5054 NULL
133436 +disable_so_kstrtou8_fndecl_5058 kstrtou8 fndecl 0 5058 NULL
133437 +disable_so_RF_SYN_pll_refdiv_chan_info_nphy_radio205x_5063 RF_SYN_pll_refdiv chan_info_nphy_radio205x 0 5063 NULL
133438 +disable_so_addr_lo_tx_desc_5065 addr_lo tx_desc 0 5065 NULL
133439 +disable_so_mos7840_calc_baud_rate_divisor_fndecl_5067 mos7840_calc_baud_rate_divisor fndecl 2 5067 NULL nohasharray
133440 +disable_so_addr_iwch_mm_entry_5067 addr iwch_mm_entry 0 5067 &disable_so_mos7840_calc_baud_rate_divisor_fndecl_5067
133441 +disable_so_freq_wmi_send_mgmt_cmd_5080 freq wmi_send_mgmt_cmd 0 5080 NULL
133442 +disable_so_wep_addr_key_count_read_fndecl_5085 wep_addr_key_count_read fndecl 3-0 5085 NULL
133443 +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
133444 +disable_so_udf_bitmap_new_block_fndecl_5093 udf_bitmap_new_block fndecl 0-4 5093 NULL
133445 +disable_so_ds1343_read_time_fndecl_5094 ds1343_read_time fndecl 0 5094 NULL nohasharray
133446 +disable_so_panel_blon_delay_radeon_encoder_lvds_5094 panel_blon_delay radeon_encoder_lvds 0 5094 &disable_so_ds1343_read_time_fndecl_5094
133447 +disable_so_hpi_cobranet_set_ip_address_fndecl_5106 hpi_cobranet_set_ip_address fndecl 1 5106 NULL
133448 +disable_so_rx_bidx_addr_bnx2_rx_ring_info_5107 rx_bidx_addr bnx2_rx_ring_info 0 5107 NULL nohasharray
133449 +disable_so_bitmap_andnot_fndecl_5107 bitmap_andnot fndecl 4 5107 &disable_so_rx_bidx_addr_bnx2_rx_ring_info_5107
133450 +disable_so_end_seq_illinois_5111 end_seq illinois 0 5111 NULL
133451 +disable_so_in_progress_block_addr_flchip_5114 in_progress_block_addr flchip 0 5114 NULL
133452 +disable_so_xmit_timestamp_cw1200_queue_item_5121 xmit_timestamp cw1200_queue_item 0 5121 NULL
133453 +disable_so_snd_ymfpci_timer_fndecl_5137 snd_ymfpci_timer fndecl 2-0 5137 NULL
133454 +disable_so_sysctl_rose_no_activity_timeout_vardecl_5143 sysctl_rose_no_activity_timeout vardecl 0 5143 NULL
133455 +disable_so_mtime_p9_wstat_5152 mtime p9_wstat 0 5152 NULL nohasharray
133456 +disable_so_addr_mvs_prd_5152 addr mvs_prd 0 5152 &disable_so_mtime_p9_wstat_5152
133457 +disable_so_pcan_usb_pro_set_bittiming_fndecl_5169 pcan_usb_pro_set_bittiming fndecl 0 5169 NULL
133458 +disable_so_phy_addr_e1000_hw_5196 phy_addr e1000_hw 0 5196 NULL
133459 +disable_so_cpufreq_p4_init_fndecl_5201 cpufreq_p4_init fndecl 0 5201 NULL
133460 +disable_so_iscsit_na_dataout_timeout_retries_fndecl_5205 iscsit_na_dataout_timeout_retries fndecl 0 5205 NULL
133461 +disable_so_ata_sff_queue_delayed_work_fndecl_5217 ata_sff_queue_delayed_work fndecl 2 5217 NULL
133462 +disable_so_post_div_atom_mpll_param_5225 post_div atom_mpll_param 0 5225 NULL
133463 +disable_so_cfg80211_wext_freq_fndecl_5229 cfg80211_wext_freq fndecl 0 5229 NULL
133464 +disable_so_poll_timer_vardecl_hfcmulti_c_5232 poll_timer vardecl_hfcmulti.c 0 5232 NULL
133465 +disable_so_antdiv_ctl1_modal_eep_4k_header_5248 antdiv_ctl1 modal_eep_4k_header 0 5248 NULL
133466 +disable_so_snd_efw_command_get_clock_source_fndecl_5253 snd_efw_command_get_clock_source fndecl 0 5253 NULL
133467 +disable_so_img_ir_free_timing_dynamic_fndecl_5255 img_ir_free_timing_dynamic fndecl 0-1 5255 NULL
133468 +disable_so_iscsi_nacl_attrib_store_dataout_timeout_retries_fndecl_5267 iscsi_nacl_attrib_store_dataout_timeout_retries fndecl 0-3 5267 NULL
133469 +disable_so_st_mtime_nsec_compat_stat_5268 st_mtime_nsec compat_stat 0 5268 NULL nohasharray
133470 +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
133471 +disable_so_selinux_task_setpgid_fndecl_5275 selinux_task_setpgid fndecl 0 5275 NULL
133472 +disable_so_target_addr_sg_entry_5281 target_addr sg_entry 0 5281 NULL nohasharray
133473 +disable_so_range_start_fixed_mtrr_segment_5281 range_start fixed_mtrr_segment 0 5281 &disable_so_target_addr_sg_entry_5281
133474 +disable_so_interrupt_offset_vnic_cq_5300 interrupt_offset vnic_cq 0 5300 NULL
133475 +disable_so_usb_calc_bus_time_fndecl_5306 usb_calc_bus_time fndecl 0-4-2 5306 NULL
133476 +disable_so_cypress_calculate_burst_time_fndecl_5314 cypress_calculate_burst_time fndecl 2-3-0 5314 NULL nohasharray
133477 +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
133478 +disable_so_nilfs_btree_assign_v_fndecl_5317 nilfs_btree_assign_v fndecl 0-5 5317 NULL
133479 +disable_so_seq_tipc_nl_msg_5321 seq tipc_nl_msg 0 5321 NULL
133480 +disable_so_dr_addr_qlc_83xx_quad_entry_5328 dr_addr qlc_83xx_quad_entry 0 5328 NULL
133481 +disable_so_lzo_decompress_fndecl_5329 lzo_decompress fndecl 3 5329 NULL
133482 +disable_so_get_phys_addr_esas2r_sg_context_5331 get_phys_addr esas2r_sg_context 0 5331 NULL
133483 +disable_so_i2c_udelay_vardecl_bttv_i2c_c_5339 i2c_udelay vardecl_bttv-i2c.c 0 5339 NULL
133484 +disable_so_msr_src_desc_5345 msr src_desc 0 5345 NULL
133485 +disable_so_put_time_rxrpc_transport_5355 put_time rxrpc_transport 0 5355 NULL
133486 +disable_so_mtrr_del_fndecl_5356 mtrr_del fndecl 2-3 5356 NULL
133487 +disable_so_d_itimer_fs_disk_quota_5358 d_itimer fs_disk_quota 0 5358 NULL
133488 +disable_so_buf_phy_addr_high_ql_rcv_buf_cb_5366 buf_phy_addr_high ql_rcv_buf_cb 0 5366 NULL
133489 +disable_so_cpufreq_get_cur_state_fndecl_5369 cpufreq_get_cur_state fndecl 1 5369 NULL
133490 +disable_so_hi_cfg_bridge_delay_drxj_data_5374 hi_cfg_bridge_delay drxj_data 0 5374 NULL
133491 +disable_so_btrfs_uuid_tree_lookup_fndecl_5376 btrfs_uuid_tree_lookup fndecl 0-3-4 5376 NULL
133492 +disable_so_ds1347_read_time_fndecl_5383 ds1347_read_time fndecl 0 5383 NULL nohasharray
133493 +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
133494 +disable_so_nvm_start_addr_code_entry_5390 nvm_start_addr code_entry 0 5390 NULL
133495 +disable_so_bna_tx_coalescing_timeo_set_fndecl_5397 bna_tx_coalescing_timeo_set fndecl 2 5397 NULL
133496 +disable_so_ptp_pch_adjtime_fndecl_5406 ptp_pch_adjtime fndecl 2 5406 NULL nohasharray
133497 +disable_so_setkey_blkcipher_tfm_5406 setkey blkcipher_tfm 0-3 5406 &disable_so_ptp_pch_adjtime_fndecl_5406
133498 +disable_so_poll_time_plat_max3100_5416 poll_time plat_max3100 0 5416 NULL
133499 +disable_so_xfrm_hash_free_fndecl_5437 xfrm_hash_free fndecl 2 5437 NULL
133500 +disable_so_sh_cmt_register_clockevent_fndecl_5438 sh_cmt_register_clockevent fndecl 0 5438 NULL
133501 +disable_so_wake_cnt_blk_mq_bitmap_tags_5442 wake_cnt blk_mq_bitmap_tags 0 5442 NULL
133502 +disable_so_ping_clear_saddr_fndecl_5445 ping_clear_saddr fndecl 2 5445 NULL
133503 +disable_so_address_dummy_5460 address dummy 0 5460 NULL
133504 +disable_so_rtl_signal_scale_mapping_fndecl_5462 rtl_signal_scale_mapping fndecl 0-2 5462 NULL
133505 +disable_so_nfs_cache_getent_timeout_vardecl_cache_lib_c_5468 nfs_cache_getent_timeout vardecl_cache_lib.c 0 5468 NULL
133506 +disable_so_wmi_addr_remap_fndecl_5469 wmi_addr_remap fndecl 0-1 5469 NULL
133507 +disable_so_hash_mem_fndecl_5475 hash_mem fndecl 2 5475 NULL
133508 +disable_so_mpll_ss1_ni_clock_registers_5476 mpll_ss1 ni_clock_registers 0 5476 NULL
133509 +disable_so_cg_spll_spread_spectrum_rv730_clock_registers_5480 cg_spll_spread_spectrum rv730_clock_registers 0 5480 NULL
133510 +disable_so_data_shared_msr_entry_5484 data shared_msr_entry 0 5484 NULL
133511 +disable_so_bitmap_count_page_fndecl_5494 bitmap_count_page fndecl 2 5494 NULL
133512 +disable_so_write_radio_reg_fndecl_5497 write_radio_reg fndecl 2-3 5497 NULL nohasharray
133513 +disable_so_skcipher_recvmsg_async_fndecl_5497 skcipher_recvmsg_async fndecl 0 5497 &disable_so_write_radio_reg_fndecl_5497
133514 +disable_so_i2c_address_stv6110_priv_5499 i2c_address stv6110_priv 0 5499 NULL
133515 +disable_so_sh_cmt_clocksource_enable_fndecl_5501 sh_cmt_clocksource_enable fndecl 0 5501 NULL
133516 +disable_so_effhash_fndecl_5510 effhash fndecl 0-1 5510 NULL
133517 +disable_so_kswapd_try_to_sleep_fndecl_5521 kswapd_try_to_sleep fndecl 2 5521 NULL
133518 +disable_so_oublock_signal_struct_5525 oublock signal_struct 0 5525 NULL
133519 +disable_so_intel_bios_ssc_frequency_fndecl_5528 intel_bios_ssc_frequency fndecl 0 5528 NULL
133520 +disable_so_ioasa_bus_addr_pmcraid_ioarcb_5540 ioasa_bus_addr pmcraid_ioarcb 0 5540 NULL
133521 +disable_so_addr_req_t_5548 addr req_t 0 5548 NULL
133522 +disable_so_xfs_btree_read_bufl_fndecl_5558 xfs_btree_read_bufl fndecl 0-3 5558 NULL
133523 +disable_so_csa_expire_time_mwifiex_private_5561 csa_expire_time mwifiex_private 0 5561 NULL
133524 +disable_so_hpi_cobranet_set_static_ip_address_fndecl_5564 hpi_cobranet_set_static_ip_address fndecl 1 5564 NULL
133525 +disable_so_crypto_sha256_update_fndecl_5571 crypto_sha256_update fndecl 3 5571 NULL
133526 +disable_so_pixclock_vardecl_matroxfb_base_c_5573 pixclock vardecl_matroxfb_base.c 0 5573 NULL
133527 +disable_so_crypto_inc_byte_fndecl_5578 crypto_inc_byte fndecl 2 5578 NULL
133528 +disable_so_duration_iwl_time_event_cmd_5595 duration iwl_time_event_cmd 0 5595 NULL
133529 +disable_so_ddcb_daddr_ddcb_queue_5599 ddcb_daddr ddcb_queue 0 5599 NULL
133530 +disable_so_sst_handle_vb_timer_fndecl_5602 sst_handle_vb_timer fndecl 0 5602 NULL
133531 +disable_so_comp_resp_timeout_reg_pch_phub_reg_5604 comp_resp_timeout_reg pch_phub_reg 0 5604 NULL
133532 +disable_so_sys_getegid_fndecl_5608 sys_getegid fndecl 0 5608 NULL
133533 +disable_so_st_gid___old_kernel_stat_5613 st_gid __old_kernel_stat 0 5613 NULL
133534 +disable_so_daddr_iphdr_5614 daddr iphdr 0 5614 NULL
133535 +disable_so_desc_set_buf_addr_and_size_fndecl_5618 desc_set_buf_addr_and_size fndecl 2-3 5618 NULL
133536 +disable_so_pch_udc_enable_ep_interrupts_fndecl_5624 pch_udc_enable_ep_interrupts fndecl 2 5624 NULL
133537 +disable_so_physaddr_brcmf_msgbuf_pktid_5642 physaddr brcmf_msgbuf_pktid 0 5642 NULL
133538 +disable_so_usb_timeout_vardecl_radio_si470x_usb_c_5648 usb_timeout vardecl_radio-si470x-usb.c 0 5648 NULL
133539 +disable_so_show_sys_image_guid_fndecl_5652 show_sys_image_guid fndecl 0 5652 NULL
133540 +disable_so_mtask_addr_beiscsi_io_task_5654 mtask_addr beiscsi_io_task 0 5654 NULL
133541 +disable_so_no_addr_gfs2_inum_host_5660 no_addr gfs2_inum_host 0 5660 NULL
133542 +disable_so___sw_hweight64_fndecl_5663 __sw_hweight64 fndecl 1-0 5663 NULL
133543 +disable_so_aca_tstamp_ifacaddr6_5678 aca_tstamp ifacaddr6 0 5678 NULL
133544 +disable_so_fill_in_addresses_op_x86_model_spec_5684 fill_in_addresses op_x86_model_spec 0 5684 NULL
133545 +disable_so_root_hfs_btree_5692 root hfs_btree 0 5692 NULL
133546 +disable_so_update_time_saa7164_histogram_bucket_5697 update_time saa7164_histogram_bucket 0 5697 NULL
133547 +disable_so_hw_ptr_base_snd_pcm_runtime_5698 hw_ptr_base snd_pcm_runtime 0 5698 NULL
133548 +disable_so_snd_emu10k1_timer_fndecl_5702 snd_emu10k1_timer fndecl 2-0 5702 NULL
133549 +disable_so_bmap_hash_id_fndecl_5706 bmap_hash_id fndecl 0-2 5706 NULL
133550 +disable_so_timeout_abs_ns_vcpu_set_singleshot_timer_5711 timeout_abs_ns vcpu_set_singleshot_timer 0 5711 NULL
133551 +disable_so_timestamp_discovery_t_5725 timestamp discovery_t 0 5725 NULL nohasharray
133552 +disable_so_uid_fuse_setattr_in_5725 uid fuse_setattr_in 0 5725 &disable_so_timestamp_discovery_t_5725 nohasharray
133553 +disable_so_SYSC_setreuid_fndecl_5725 SYSC_setreuid fndecl 0 5725 &disable_so_uid_fuse_setattr_in_5725
133554 +disable_so_r10_kvm_regs_5730 r10 kvm_regs 0 5730 NULL
133555 +disable_so_bulk_in_epaddr_sur40_state_5741 bulk_in_epaddr sur40_state 0 5741 NULL
133556 +disable_so_rt2x00lib_rxdone_read_signal_fndecl_5747 rt2x00lib_rxdone_read_signal fndecl 0 5747 NULL
133557 +disable_so_ti_tscadc_driver_init_fndecl_5771 ti_tscadc_driver_init fndecl 0 5771 NULL
133558 +disable_so_iowrite8_fndecl_5781 iowrite8 fndecl 1 5781 NULL
133559 +disable_so_mthca_resize_cq_fndecl_5782 mthca_resize_cq fndecl 0 5782 NULL
133560 +disable_so_lbs_host_sleep_write_fndecl_5783 lbs_host_sleep_write fndecl 0-3 5783 NULL
133561 +disable_so_addr_tx_buf_desc_5787 addr tx_buf_desc 0 5787 NULL
133562 +disable_so_tcn_timer_value___bridge_info_5789 tcn_timer_value __bridge_info 0 5789 NULL
133563 +disable_so_old_jiffies_ati_remote_5798 old_jiffies ati_remote 0 5798 NULL
133564 +disable_so_timeout_sched_poll_5810 timeout sched_poll 0 5810 NULL
133565 +disable_so_addr_doit_fndecl_5813 addr_doit fndecl 0 5813 NULL
133566 +disable_so_enic_dev_del_addr_fndecl_5814 enic_dev_del_addr fndecl 0 5814 NULL
133567 +disable_so_start_addr_gen_pool_chunk_5822 start_addr gen_pool_chunk 0 5822 NULL
133568 +disable_so_smsc75xx_enable_phy_wakeup_interrupts_fndecl_5824 smsc75xx_enable_phy_wakeup_interrupts fndecl 2-0 5824 NULL
133569 +disable_so_ieee802154_hdr_peek_addrs_fndecl_5825 ieee802154_hdr_peek_addrs fndecl 0 5825 NULL
133570 +disable_so_dsp_dram_offset_sst_addr_5830 dsp_dram_offset sst_addr 0 5830 NULL
133571 +disable_so_mwifiex_read_reg_fndecl_5832 mwifiex_read_reg fndecl 2 5832 NULL
133572 +disable_so_process_tgid_comm_proc_event_5834 process_tgid comm_proc_event 0 5834 NULL
133573 +disable_so_idedisk_read_native_max_address_fndecl_5836 idedisk_read_native_max_address fndecl 0 5836 NULL
133574 +disable_so_bus_time_fw_ohci_5838 bus_time fw_ohci 0 5838 NULL
133575 +disable_so_demod_address_nxt6000_config_5841 demod_address nxt6000_config 0 5841 NULL
133576 +disable_so_recover_timer_write_fndecl_5848 recover_timer_write fndecl 3-0 5848 NULL
133577 +disable_so_next_jiffies_tick_sched_5856 next_jiffies tick_sched 0 5856 NULL
133578 +disable_so_addr_asc_sg_list_5863 addr asc_sg_list 0 5863 NULL
133579 +disable_so_schedule_delayed_work_fndecl_5873 schedule_delayed_work fndecl 2 5873 NULL
133580 +disable_so_allow_utime_fat_mount_options_5877 allow_utime fat_mount_options 0 5877 NULL
133581 +disable_so_irlap_start_query_timer_fndecl_5881 irlap_start_query_timer fndecl 3-2 5881 NULL
133582 +disable_so_nent_kvm_cpuid2_5883 nent kvm_cpuid2 0 5883 NULL
133583 +disable_so_delay_pcm_irq_snd_emu10k1_5885 delay_pcm_irq snd_emu10k1 0 5885 NULL
133584 +disable_so_DAC1064_calcclock_fndecl_5888 DAC1064_calcclock fndecl 2-3 5888 NULL
133585 +disable_so_ep_address_ath6kl_usb_pipe_5905 ep_address ath6kl_usb_pipe 0 5905 NULL nohasharray
133586 +disable_so_set_bit_le_fndecl_5905 set_bit_le fndecl 1 5905 &disable_so_ep_address_ath6kl_usb_pipe_5905
133587 +disable_so_last_force_reset_jiffies_il_force_reset_5911 last_force_reset_jiffies il_force_reset 0 5911 NULL
133588 +disable_so_evclk_radeon_vce_clock_voltage_dependency_entry_5913 evclk radeon_vce_clock_voltage_dependency_entry 0 5913 NULL
133589 +disable_so_status_address_card_5915 status_address card 0 5915 NULL
133590 +disable_so_ifal_index_ifaddrlblmsg_5916 ifal_index ifaddrlblmsg 0 5916 NULL
133591 +disable_so_validate_add_page_mtrr_ops_5922 validate_add_page mtrr_ops 1-2 5922 NULL
133592 +disable_so_fm10k_ptp_adjtime_fndecl_5923 fm10k_ptp_adjtime fndecl 2 5923 NULL
133593 +disable_so_addrtype_ip6addrlbl_entry_5927 addrtype ip6addrlbl_entry 0 5927 NULL
133594 +disable_so_packet_life_time_ib_sa_path_rec_5929 packet_life_time ib_sa_path_rec 0 5929 NULL
133595 +disable_so_open_time_local_info_5930 open_time local_info 0 5930 NULL
133596 +disable_so_apply_time_iwl_time_event_cmd_5933 apply_time iwl_time_event_cmd 0 5933 NULL
133597 +disable_so_default_address_sc520_par_table_5941 default_address sc520_par_table 0 5941 NULL
133598 +disable_so_btrfs_hash_init_fndecl_5945 btrfs_hash_init fndecl 0 5945 NULL
133599 +disable_so_tsc_khz_ref_vardecl_tsc_c_5951 tsc_khz_ref vardecl_tsc.c 0 5951 NULL
133600 +disable_so_init_hrtimers_cpu_fndecl_5954 init_hrtimers_cpu fndecl 1 5954 NULL
133601 +disable_so_dma_address_scatterlist_5955 dma_address scatterlist 0 5955 NULL
133602 +disable_so_vsi_id_i40e_virtchnl_ether_addr_list_5963 vsi_id i40e_virtchnl_ether_addr_list 0 5963 NULL
133603 +disable_so_i_mtime_sysv_inode_5967 i_mtime sysv_inode 0 5967 NULL
133604 +disable_so_mult_clock_event_device_5973 mult clock_event_device 0 5973 NULL nohasharray
133605 +disable_so_schedule_internal_copy_fndecl_5973 schedule_internal_copy fndecl 2-3-4 5973 &disable_so_mult_clock_event_device_5973
133606 +disable_so_hash_netport6_expire_fndecl_5974 hash_netport6_expire fndecl 4 5974 NULL
133607 +disable_so_tap_time_vardecl_mousedev_c_5990 tap_time vardecl_mousedev.c 0 5990 NULL
133608 +disable_so_write_reg_fndecl_5992 write_reg fndecl 3 5992 NULL
133609 +disable_so_clk_divider_round_rate_fndecl_6000 clk_divider_round_rate fndecl 2-0 6000 NULL
133610 +disable_so_hor_sync_end_via_display_timing_6001 hor_sync_end via_display_timing 0 6001 NULL
133611 +disable_so_xe_name_hash_ocfs2_xattr_entry_6006 xe_name_hash ocfs2_xattr_entry 0 6006 NULL
133612 +disable_so_blkcipher_next_fast_fndecl_6013 blkcipher_next_fast fndecl 0 6013 NULL
133613 +disable_so_gcm_dec_hash_continue_fndecl_6014 gcm_dec_hash_continue fndecl 0 6014 NULL
133614 +disable_so_x_qxl_bitmap_6015 x qxl_bitmap 0 6015 NULL
133615 +disable_so__rtl92s_phy_calculate_bit_shift_fndecl_6019 _rtl92s_phy_calculate_bit_shift fndecl 0-1 6019 NULL
133616 +disable_so_snd_pcm_oss_get_odelay_fndecl_6033 snd_pcm_oss_get_odelay fndecl 0 6033 NULL
133617 +disable_so_remote_addr_c2wr_qp_connect_req_6036 remote_addr c2wr_qp_connect_req 0 6036 NULL
133618 +disable_so_set_time_rtc_class_ops_6037 set_time rtc_class_ops 0 6037 NULL
133619 +disable_so_kvm_lapic_set_vapic_addr_fndecl_6040 kvm_lapic_set_vapic_addr fndecl 2 6040 NULL
133620 +disable_so_netlink_hash_fndecl_6041 netlink_hash fndecl 0 6041 NULL
133621 +disable_so_delay_edac_device_ctl_info_6043 delay edac_device_ctl_info 0 6043 NULL
133622 +disable_so_hash_src_fndecl_6045 hash_src fndecl 0 6045 NULL
133623 +disable_so_addrconf_add_ifaddr_fndecl_6046 addrconf_add_ifaddr fndecl 0 6046 NULL
133624 +disable_so_abx500_get_register_interruptible_fndecl_6047 abx500_get_register_interruptible fndecl 0 6047 NULL
133625 +disable_so_uac_clock_source_is_valid_fndecl_6049 uac_clock_source_is_valid fndecl 2 6049 NULL
133626 +disable_so_max_keysize_crypto_report_cipher_6050 max_keysize crypto_report_cipher 0 6050 NULL
133627 +disable_so_hit_timestamp_hh_flow_state_6053 hit_timestamp hh_flow_state 0 6053 NULL
133628 +disable_so_crypto_fpu_setkey_fndecl_6067 crypto_fpu_setkey fndecl 0-3 6067 NULL
133629 +disable_so_ticks_snd_timer_instance_6068 ticks snd_timer_instance 0 6068 NULL nohasharray
133630 +disable_so_dev_mem_address_mlx4_cable_info_6068 dev_mem_address mlx4_cable_info 0 6068 &disable_so_ticks_snd_timer_instance_6068
133631 +disable_so_start_time_ieee80211_measurement_params_6073 start_time ieee80211_measurement_params 0 6073 NULL
133632 +disable_so_i_ino_timelimit_qc_info_6082 i_ino_timelimit qc_info 0 6082 NULL
133633 +disable_so_sll_ifindex_sockaddr_ll_6083 sll_ifindex sockaddr_ll 0 6083 NULL
133634 +disable_so_sleep_auth_read_fndecl_6084 sleep_auth_read fndecl 3-0 6084 NULL
133635 +disable_so_btrfs_run_delayed_refs_fndecl_6098 btrfs_run_delayed_refs fndecl 0 6098 NULL
133636 +disable_so_blocksize_crypto_report_aead_6103 blocksize crypto_report_aead 0 6103 NULL
133637 +disable_so_periods_snd_pcm_runtime_6104 periods snd_pcm_runtime 0 6104 NULL
133638 +disable_so_wait_for_completion_io_timeout_fndecl_6120 wait_for_completion_io_timeout fndecl 2-0 6120 NULL
133639 +disable_so_rsi_cmd52readbyte_fndecl_6123 rsi_cmd52readbyte fndecl 0-2 6123 NULL
133640 +disable_so_jiffies_io_6127 jiffies io 0 6127 NULL
133641 +disable_so_ac97_clock_vardecl_atiixp_c_6132 ac97_clock vardecl_atiixp.c 0 6132 NULL
133642 +disable_so_vmap_block_vaddr_fndecl_6152 vmap_block_vaddr fndecl 1-2 6152 NULL
133643 +disable_so_depth_blk_mq_bitmap_tags_6153 depth blk_mq_bitmap_tags 0 6153 NULL
133644 +disable_so_mul_vnic_intr_coal_timer_info_6154 mul vnic_intr_coal_timer_info 0 6154 NULL
133645 +disable_so_ctrl_freq_au0828_dev_6155 ctrl_freq au0828_dev 0 6155 NULL
133646 +disable_so_hrtimer_get_res_fndecl_6170 hrtimer_get_res fndecl 1 6170 NULL
133647 +disable_so_nlm_hash_address_fndecl_6174 nlm_hash_address fndecl 0 6174 NULL
133648 +disable_so_vaddr_vfio_iommu_type1_dma_map_6175 vaddr vfio_iommu_type1_dma_map 0 6175 NULL
133649 +disable_so_cpuidle_register_device_fndecl_6179 cpuidle_register_device fndecl 0 6179 NULL
133650 +disable_so_wl18xx_set_host_cfg_bitmap_fndecl_6180 wl18xx_set_host_cfg_bitmap fndecl 0 6180 NULL
133651 +disable_so_daddr_ircomm_tty_cb_6187 daddr ircomm_tty_cb 0 6187 NULL
133652 +disable_so_address_iio_chan_spec_6188 address iio_chan_spec 0 6188 NULL
133653 +disable_so_gem_interrupt_fndecl_6193 gem_interrupt fndecl 1 6193 NULL
133654 +disable_so_test_steal_space_from_bitmap_to_extent_fndecl_6197 test_steal_space_from_bitmap_to_extent fndecl 0 6197 NULL
133655 +disable_so_write8_async_rtl_io_6212 write8_async rtl_io 2-3 6212 NULL
133656 +disable_so_gpio_request_fndecl_6213 gpio_request fndecl 0-1 6213 NULL
133657 +disable_so_max_cmds_mthca_cmd_6222 max_cmds mthca_cmd 0 6222 NULL
133658 +disable_so_rhashtable_rehash_one_fndecl_6224 rhashtable_rehash_one fndecl 2 6224 NULL
133659 +disable_so_addr_hi_sli4_sge_6229 addr_hi sli4_sge 0 6229 NULL
133660 +disable_so_bnx2x_set_iscsi_eth_mac_addr_fndecl_6234 bnx2x_set_iscsi_eth_mac_addr fndecl 0 6234 NULL
133661 +disable_so___ipv6_addr_label_fndecl_6235 __ipv6_addr_label fndecl 3-4 6235 NULL
133662 +disable_so_chnl_freq_wil6210_rtap_6236 chnl_freq wil6210_rtap 0 6236 NULL
133663 +disable_so_mv88e6xxx_port_to_phy_addr_fndecl_6239 mv88e6xxx_port_to_phy_addr fndecl 0-2 6239 NULL
133664 +disable_so_phy_pm_runtime_get_sync_fndecl_6245 phy_pm_runtime_get_sync fndecl 0 6245 NULL
133665 +disable_so_kempld_wdt_set_pretimeout_fndecl_6258 kempld_wdt_set_pretimeout fndecl 2 6258 NULL
133666 +disable_so_sq_page_table_addr_lo_iscsi_kwqe_conn_offload1_6259 sq_page_table_addr_lo iscsi_kwqe_conn_offload1 0 6259 NULL
133667 +disable_so_async_chainiv_schedule_work_fndecl_6271 async_chainiv_schedule_work fndecl 0 6271 NULL
133668 +disable_so_bus_clock_khz_ocores_i2c_6290 bus_clock_khz ocores_i2c 0 6290 NULL
133669 +disable_so_cttimeout_default_get_fndecl_6297 cttimeout_default_get fndecl 0 6297 NULL
133670 +disable_so_show_pci_clock_sel_fndecl_6300 show_pci_clock_sel fndecl 0 6300 NULL nohasharray
133671 +disable_so_addr_w83627ehf_data_6300 addr w83627ehf_data 0 6300 &disable_so_show_pci_clock_sel_fndecl_6300
133672 +disable_so_base_addr_pmc_dev_6305 base_addr pmc_dev 0 6305 NULL
133673 +disable_so_max_post_div_radeon_pll_6315 max_post_div radeon_pll 0 6315 NULL
133674 +disable_so_mmc_sd_erase_timeout_fndecl_6317 mmc_sd_erase_timeout fndecl 0-3 6317 NULL
133675 +disable_so_get_time_sound_timer_operations_6318 get_time sound_timer_operations 0 6318 NULL
133676 +disable_so_runtime_reg_sch311x_pdev_data_6324 runtime_reg sch311x_pdev_data 0 6324 NULL
133677 +disable_so_hscx_interrupt_fndecl_6328 hscx_interrupt fndecl 2 6328 NULL
133678 +disable_so_hangcheck_margin_vardecl_hangcheck_timer_c_6346 hangcheck_margin vardecl_hangcheck-timer.c 0 6346 NULL nohasharray
133679 +disable_so___hrtimer_start_range_ns_fndecl_6346 __hrtimer_start_range_ns fndecl 3 6346 &disable_so_hangcheck_margin_vardecl_hangcheck_timer_c_6346
133680 +disable_so_force_addr_vardecl_i2c_ali15x3_c_6378 force_addr vardecl_i2c-ali15x3.c 0 6378 NULL
133681 +disable_so_usb_interrupt_msg_fndecl_6387 usb_interrupt_msg fndecl 4-2-6-0 6387 NULL
133682 +disable_so_bitmap_file_test_bit_fndecl_6390 bitmap_file_test_bit fndecl 2 6390 NULL
133683 +disable_so_access_delay_vardecl_nandsim_c_6394 access_delay vardecl_nandsim.c 0 6394 NULL
133684 +disable_so_snd_ice1712_interrupt_fndecl_6396 snd_ice1712_interrupt fndecl 1 6396 NULL
133685 +disable_so_i2c_addr_isl6421_6399 i2c_addr isl6421 0 6399 NULL
133686 +disable_so_sta_connected_time_read_fndecl_6408 sta_connected_time_read fndecl 3 6408 NULL
133687 +disable_so_dbg_uidn_show_fndecl_6415 dbg_uidn_show fndecl 3 6415 NULL
133688 +disable_so_timeout_fib6_gc_args_6417 timeout fib6_gc_args 0 6417 NULL
133689 +disable_so_max_pixelclock_v4l2_bt_timings_cap_6421 max_pixelclock v4l2_bt_timings_cap 0 6421 NULL nohasharray
133690 +disable_so_vlv_clock_fndecl_6421 vlv_clock fndecl 1 6421 &disable_so_max_pixelclock_v4l2_bt_timings_cap_6421
133691 +disable_so_hold_timer_value___port_info_6426 hold_timer_value __port_info 0 6426 NULL
133692 +disable_so_plllocktime_psb_s_6428 plllocktime psb_s 0 6428 NULL nohasharray
133693 +disable_so_channel2freq_lp_fndecl_6428 channel2freq_lp fndecl 0-1 6428 &disable_so_plllocktime_psb_s_6428
133694 +disable_so_base_addr_fpoint_info_6432 base_addr fpoint_info 0 6432 NULL
133695 +disable_so_paravirt_write_msr_fndecl_6445 paravirt_write_msr fndecl 0-1-2-3 6445 NULL
133696 +disable_so_bnx2x_eee_nvram_to_time_fndecl_6450 bnx2x_eee_nvram_to_time fndecl 1 6450 NULL
133697 +disable_so_dn_nl_deladdr_fndecl_6451 dn_nl_deladdr fndecl 0 6451 NULL
133698 +disable_so_mpll_ss_rv730_clock_registers_6456 mpll_ss rv730_clock_registers 0 6456 NULL nohasharray
133699 +disable_so_buffer_addr_atl1e_tpd_desc_6456 buffer_addr atl1e_tpd_desc 0 6456 &disable_so_mpll_ss_rv730_clock_registers_6456
133700 +disable_so_xfs_btree_lshift_fndecl_6459 xfs_btree_lshift fndecl 0 6459 NULL
133701 +disable_so_tomoyo_check_unix_address_fndecl_6464 tomoyo_check_unix_address fndecl 0-2 6464 NULL
133702 +disable_so_bitmap_pos_to_ord_fndecl_6476 bitmap_pos_to_ord fndecl 3-2 6476 NULL
133703 +disable_so_bql_set_hold_time_fndecl_6478 bql_set_hold_time fndecl 0-4 6478 NULL
133704 +disable_so_range_shift_fixed_mtrr_segment_6484 range_shift fixed_mtrr_segment 0 6484 NULL
133705 +disable_so___clocksource_update_freq_scale_fndecl_6485 __clocksource_update_freq_scale fndecl 2-3 6485 NULL
133706 +disable_so_freq_pmu1_plltab_entry_6497 freq pmu1_plltab_entry 0 6497 NULL
133707 +disable_so___btrfs_abort_transaction_fndecl_6516 __btrfs_abort_transaction fndecl 5 6516 NULL
133708 +disable_so_timeout_clks_mmc_data_6527 timeout_clks mmc_data 0 6527 NULL
133709 +disable_so_set_tss_addr_kvm_x86_ops_6529 set_tss_addr kvm_x86_ops 2 6529 NULL
133710 +disable_so_acpi_device_sleep_wake_fndecl_6537 acpi_device_sleep_wake fndecl 0-2-3 6537 NULL nohasharray
133711 +disable_so_rtsc_x2y_fndecl_6537 rtsc_x2y fndecl 0-2 6537 &disable_so_acpi_device_sleep_wake_fndecl_6537
133712 +disable_so_msr_saved_flags_uart_8250_port_6538 msr_saved_flags uart_8250_port 0 6538 NULL
133713 +disable_so_next_blk_mq_timeout_data_6556 next blk_mq_timeout_data 0 6556 NULL nohasharray
133714 +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
133715 +disable_so_ovs_flow_used_time_fndecl_6571 ovs_flow_used_time fndecl 1-0 6571 NULL
133716 +disable_so_orinoco_ioctl_setfreq_fndecl_6577 orinoco_ioctl_setfreq fndecl 0 6577 NULL
133717 +disable_so_hash_netport4_expire_fndecl_6582 hash_netport4_expire fndecl 4 6582 NULL
133718 +disable_so_rpwwn_bfa_bsg_rport_scsi_addr_s_6584 rpwwn bfa_bsg_rport_scsi_addr_s 0 6584 NULL
133719 +disable_so_gid_ncp_mount_data_v4_6586 gid ncp_mount_data_v4 0 6586 NULL
133720 +disable_so_set_input_clock_fndecl_6599 set_input_clock fndecl 0 6599 NULL
133721 +disable_so_mmap_bytes_snd_pcm_oss_runtime_6600 mmap_bytes snd_pcm_oss_runtime 0 6600 NULL
133722 +disable_so_do_sys_settimeofday_fndecl_6601 do_sys_settimeofday fndecl 0 6601 NULL
133723 +disable_so_tv_sec_ufs_timeval_6608 tv_sec ufs_timeval 0 6608 NULL
133724 +disable_so_tk_debug_sleep_time_open_fndecl_6625 tk_debug_sleep_time_open fndecl 0 6625 NULL
133725 +disable_so_bmg160_convert_freq_to_bit_fndecl_6628 bmg160_convert_freq_to_bit fndecl 0 6628 NULL
133726 +disable_so_sis_ata133_program_timings_fndecl_6633 sis_ata133_program_timings fndecl 2 6633 NULL
133727 +disable_so_timestamp_nvkm_alarm_6635 timestamp nvkm_alarm 0 6635 NULL nohasharray
133728 +disable_so_offset_crypto_hash_walk_6635 offset crypto_hash_walk 0 6635 &disable_so_timestamp_nvkm_alarm_6635
133729 +disable_so_ocfs2_rotate_subtree_left_fndecl_6641 ocfs2_rotate_subtree_left fndecl 0-5 6641 NULL
133730 +disable_so_vactive_lo_detailed_pixel_timing_6644 vactive_lo detailed_pixel_timing 0 6644 NULL
133731 +disable_so_givencrypt_ablkcipher_tfm_6647 givencrypt ablkcipher_tfm 0 6647 NULL
133732 +disable_so_fill_in_real_sgid_index_fndecl_6648 fill_in_real_sgid_index fndecl 2-3 6648 NULL
133733 +disable_so_i_gid_read_fndecl_6650 i_gid_read fndecl 0 6650 NULL
133734 +disable_so_uniq_time_smt_values_6653 uniq_time smt_values 0 6653 NULL nohasharray
133735 +disable_so_missvaddr_gru_tlb_fault_handle_6653 missvaddr gru_tlb_fault_handle 0 6653 &disable_so_uniq_time_smt_values_6653
133736 +disable_so_rq_timeout_request_queue_6657 rq_timeout request_queue 0 6657 NULL
133737 +disable_so_resp_bd_list_addr_hi_bnx2i_login_request_6658 resp_bd_list_addr_hi bnx2i_login_request 0 6658 NULL
133738 +disable_so_ebp_tss_segment_32_6659 ebp tss_segment_32 0 6659 NULL
133739 +disable_so_sha_complete_job_fndecl_6679 sha_complete_job fndecl 3 6679 NULL
133740 +disable_so_cursor_vram_addr_viafb_shared_6684 cursor_vram_addr viafb_shared 0 6684 NULL
133741 +disable_so_si_set_smc_sram_address_fndecl_6696 si_set_smc_sram_address fndecl 0-2 6696 NULL
133742 +disable_so_ocfs2_divide_leaf_refcount_block_fndecl_6709 ocfs2_divide_leaf_refcount_block fndecl 0 6709 NULL
133743 +disable_so_smp_base_set_mtrr_data_6722 smp_base set_mtrr_data 0 6722 NULL
133744 +disable_so_titsc_parse_dt_fndecl_6744 titsc_parse_dt fndecl 0 6744 NULL
133745 +disable_so_driver_timestamp_netxen_minidump_template_hdr_6745 driver_timestamp netxen_minidump_template_hdr 0 6745 NULL
133746 +disable_so_end_address_dmar_rmrr_unit_6748 end_address dmar_rmrr_unit 0 6748 NULL
133747 +disable_so_std_signal_mode_vivid_dev_6752 std_signal_mode vivid_dev 0 6752 NULL
133748 +disable_so_part_timeout_show_fndecl_6761 part_timeout_show fndecl 0 6761 NULL
133749 +disable_so_tx_coal_timer_stmmac_priv_6772 tx_coal_timer stmmac_priv 0 6772 NULL
133750 +disable_so_kvm_clock_read_fndecl_6779 kvm_clock_read fndecl 0 6779 NULL
133751 +disable_so_alarm_clock_get_fndecl_6780 alarm_clock_get fndecl 1 6780 NULL
133752 +disable_so_rcar_i2c_clock_calculate_fndecl_6789 rcar_i2c_clock_calculate fndecl 0 6789 NULL
133753 +disable_so_timeout_vardecl_sbc60xxwdt_c_6807 timeout vardecl_sbc60xxwdt.c 0 6807 NULL
133754 +disable_so_rp_uid_ubifs_sb_node_6810 rp_uid ubifs_sb_node 0 6810 NULL
133755 +disable_so_wm8940_set_dai_clkdiv_fndecl_6811 wm8940_set_dai_clkdiv fndecl 3-0 6811 NULL
133756 +disable_so_shift_clk_divider_6812 shift clk_divider 0 6812 NULL nohasharray
133757 +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
133758 +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
133759 +disable_so_io_profile_start_time_bfa_fcpim_s_6814 io_profile_start_time bfa_fcpim_s 0 6814 NULL
133760 +disable_so_tsc_timestamp_pvclock_vcpu_time_info_6819 tsc_timestamp pvclock_vcpu_time_info 0 6819 NULL
133761 +disable_so_paddr_ath10k_skb_rxcb_6820 paddr ath10k_skb_rxcb 0 6820 NULL
133762 +disable_so_src_addr_ioat_dma_descriptor_6823 src_addr ioat_dma_descriptor 0 6823 NULL
133763 +disable_so_ivsize_ablkcipher_tfm_6824 ivsize ablkcipher_tfm 0 6824 NULL
133764 +disable_so_p_val_aic32x4_rate_divs_6838 p_val aic32x4_rate_divs 0 6838 NULL nohasharray
133765 +disable_so_bit_putcs_unaligned_fndecl_6838 bit_putcs_unaligned fndecl 5-6-7-8 6838 &disable_so_p_val_aic32x4_rate_divs_6838
133766 +disable_so_iaddr2blockno_fndecl_6842 iaddr2blockno fndecl 0 6842 NULL nohasharray
133767 +disable_so_reserved_top_mlx4_bitmap_6842 reserved_top mlx4_bitmap 0 6842 &disable_so_iaddr2blockno_fndecl_6842
133768 +disable_so_address_acpi_object_processor_6844 address acpi_object_processor 0 6844 NULL nohasharray
133769 +disable_so_top_freq_region_info_6844 top_freq region_info 0 6844 &disable_so_address_acpi_object_processor_6844
133770 +disable_so_phys_addr_sge_txq_6851 phys_addr sge_txq 0 6851 NULL
133771 +disable_so_irq_find_mapping_fndecl_6855 irq_find_mapping fndecl 0-2 6855 NULL
133772 +disable_so_ipaddr_rds_ib_ipaddr_6865 ipaddr rds_ib_ipaddr 0 6865 NULL
133773 +disable_so_cdv_intel_clock_recovery_ok_fndecl_6866 cdv_intel_clock_recovery_ok fndecl 2 6866 NULL
133774 +disable_so_rmw_ath_ops_6869 rmw ath_ops 2-3-4 6869 NULL
133775 +disable_so_last_jiffies_ivtv_api_cache_6880 last_jiffies ivtv_api_cache 0 6880 NULL
133776 +disable_so_ui_atimensec_ufs2_inode_6881 ui_atimensec ufs2_inode 0 6881 NULL
133777 +disable_so_gether_get_host_addr_cdc_fndecl_6888 gether_get_host_addr_cdc fndecl 0 6888 NULL
133778 +disable_so_wmi_add_cipher_key_fndecl_6891 wmi_add_cipher_key fndecl 0-2-4 6891 NULL
133779 +disable_so_ppp_gidle_fndecl_6898 ppp_gidle fndecl 0-1 6898 NULL
133780 +disable_so_dialtimeout_isdn_net_local_s_6908 dialtimeout isdn_net_local_s 0 6908 NULL
133781 +disable_so_conf_printf2_fndecl_6910 conf_printf2 fndecl 2-4-5 6910 NULL
133782 +disable_so_pilot_stv0900_signal_info_6915 pilot stv0900_signal_info 0 6915 NULL
133783 +disable_so_size_log2_t3_wq_6928 size_log2 t3_wq 0 6928 NULL
133784 +disable_so_s35390a_set_datetime_fndecl_6935 s35390a_set_datetime fndecl 0 6935 NULL
133785 +disable_so_sys_setfsgid_fndecl_6945 sys_setfsgid fndecl 0-1 6945 NULL
133786 +disable_so_triflex_load_timing_fndecl_6946 triflex_load_timing fndecl 3 6946 NULL
133787 +disable_so_ps2mult_interrupt_fndecl_6951 ps2mult_interrupt fndecl 2 6951 NULL
133788 +disable_so_hpi_sample_clock_query_source_fndecl_6959 hpi_sample_clock_query_source fndecl 1-0 6959 NULL
133789 +disable_so_tseg2_max_can_bittiming_const_6963 tseg2_max can_bittiming_const 0 6963 NULL
133790 +disable_so_rec8b_ata_timing_6977 rec8b ata_timing 0 6977 NULL
133791 +disable_so_vactive___fb_timings_6978 vactive __fb_timings 0 6978 NULL
133792 +disable_so_mgid_index_mlx4_qp_path_6990 mgid_index mlx4_qp_path 0 6990 NULL
133793 +disable_so_log_start_addr_server_hdr_7000 log_start_addr server_hdr 0 7000 NULL
133794 +disable_so_t2timer_ax25_info_struct_7019 t2timer ax25_info_struct 0 7019 NULL
133795 +disable_so_start_address_mxt_object_7033 start_address mxt_object 0 7033 NULL
133796 +disable_so_cpufreq_add_dev_symlink_fndecl_7039 cpufreq_add_dev_symlink fndecl 0 7039 NULL
133797 +disable_so_fm10k_systime_read_fndecl_7040 fm10k_systime_read fndecl 0 7040 NULL
133798 +disable_so_dv_timings_signal_mode_vivid_dev_7046 dv_timings_signal_mode vivid_dev 0 7046 NULL
133799 +disable_so_set_expect_timeout_fndecl_7051 set_expect_timeout fndecl 2 7051 NULL
133800 +disable_so_ts_dev_2_peak_time_ref_7055 ts_dev_2 peak_time_ref 0 7055 NULL
133801 +disable_so_pci_lat_timer_tg3_7056 pci_lat_timer tg3 0 7056 NULL
133802 +disable_so_ioarcb_bus_addr_pmcraid_ioarcb_7057 ioarcb_bus_addr pmcraid_ioarcb 0 7057 NULL
133803 +disable_so_tbl_addr_ahci_cmd_hdr_7060 tbl_addr ahci_cmd_hdr 0 7060 NULL
133804 +disable_so_total_i915_address_space_7088 total i915_address_space 0 7088 NULL
133805 +disable_so_nfs_mountpoint_expiry_timeout_vardecl_7089 nfs_mountpoint_expiry_timeout vardecl 0 7089 NULL
133806 +disable_so_rx_control_addr_acx_data_path_params_resp_7090 rx_control_addr acx_data_path_params_resp 0 7090 NULL
133807 +disable_so_qs_btimelimit_fs_quota_stat_7091 qs_btimelimit fs_quota_stat 0 7091 NULL
133808 +disable_so_SYSC_semtimedop_fndecl_7096 SYSC_semtimedop fndecl 1-3 7096 NULL
133809 +disable_so_lm8323_pwm_show_time_fndecl_7100 lm8323_pwm_show_time fndecl 0 7100 NULL
133810 +disable_so_start_time_btrfs_transaction_7107 start_time btrfs_transaction 0 7107 NULL
133811 +disable_so_dma_bytes_snd_pcm_runtime_7108 dma_bytes snd_pcm_runtime 0 7108 NULL
133812 +disable_so_sr__coeff_div_7109 sr _coeff_div 0 7109 NULL
133813 +disable_so_assert_pio_clocks_7119 assert pio_clocks 0 7119 NULL
133814 +disable_so_sctp_bind_addr_copy_fndecl_7122 sctp_bind_addr_copy fndecl 0-5 7122 NULL
133815 +disable_so_irq_domain_get_irq_data_fndecl_7132 irq_domain_get_irq_data fndecl 2 7132 NULL
133816 +disable_so_cur_freq_intel_gen6_power_mgmt_7134 cur_freq intel_gen6_power_mgmt 0 7134 NULL nohasharray
133817 +disable_so_address_mask_fndecl_7134 address_mask fndecl 0-2 7134 &disable_so_cur_freq_intel_gen6_power_mgmt_7134
133818 +disable_so_timeout_md_thread_7138 timeout md_thread 0 7138 NULL
133819 +disable_so_nicvf_register_interrupts_fndecl_7143 nicvf_register_interrupts fndecl 0 7143 NULL
133820 +disable_so_logical_drive_info_dma_addr_ips_ha_7146 logical_drive_info_dma_addr ips_ha 0 7146 NULL
133821 +disable_so_ai_slowclk_freq_fndecl_7147 ai_slowclk_freq fndecl 0 7147 NULL
133822 +disable_so_addr_play_vals_7151 addr play_vals 0 7151 NULL
133823 +disable_so_enc_addr_low_ssp_ini_io_start_req_7153 enc_addr_low ssp_ini_io_start_req 0 7153 NULL
133824 +disable_so_dev_sockaddr_mISDN_7154 dev sockaddr_mISDN 0 7154 NULL
133825 +disable_so_scan_start_time_ath_ant_comb_7155 scan_start_time ath_ant_comb 0 7155 NULL nohasharray
133826 +disable_so_mcryptd_hash_final_fndecl_7155 mcryptd_hash_final fndecl 2 7155 &disable_so_scan_start_time_ath_ant_comb_7155
133827 +disable_so_ack_time_minstrel_rate_7156 ack_time minstrel_rate 0 7156 NULL
133828 +disable_so_start_time_fscache_retrieval_7166 start_time fscache_retrieval 0 7166 NULL
133829 +disable_so_timetosend_nes_timer_entry_7169 timetosend nes_timer_entry 0 7169 NULL
133830 +disable_so_autofs4_get_set_timeout_fndecl_7185 autofs4_get_set_timeout fndecl 0 7185 NULL
133831 +disable_so_list_voltage_regulator_ops_7194 list_voltage regulator_ops 0-2 7194 NULL
133832 +disable_so_round_jiffies_fndecl_7204 round_jiffies fndecl 0-1 7204 NULL nohasharray
133833 +disable_so_address_lo_be_bus_address32_7204 address_lo be_bus_address32 0 7204 &disable_so_round_jiffies_fndecl_7204
133834 +disable_so_efx_recycle_rx_pages_fndecl_7206 efx_recycle_rx_pages fndecl 3 7206 NULL
133835 +disable_so_ssb_chipco_watchdog_timer_set_fndecl_7210 ssb_chipco_watchdog_timer_set fndecl 2-0 7210 NULL
133836 +disable_so_ebitmap_netlbl_export_fndecl_7212 ebitmap_netlbl_export fndecl 0 7212 NULL
133837 +disable_so_charge_timeout_wm8350_charger_policy_7222 charge_timeout wm8350_charger_policy 0 7222 NULL
133838 +disable_so_tf_c_r820t_freq_range_7225 tf_c r820t_freq_range 0 7225 NULL
133839 +disable_so_hpi_read_words_le16_fndecl_7226 hpi_read_words_le16 fndecl 2-4 7226 NULL
133840 +disable_so_ip6addrlbl_newdel_fndecl_7230 ip6addrlbl_newdel fndecl 0 7230 NULL
133841 +disable_so_seq_default_timer_card_vardecl_7233 seq_default_timer_card vardecl 0 7233 NULL
133842 +disable_so_ip6_route_get_saddr_fndecl_7240 ip6_route_get_saddr fndecl 0 7240 NULL
133843 +disable_so_packet_timeout_vardecl_legousbtower_c_7247 packet_timeout vardecl_legousbtower.c 0 7247 NULL
133844 +disable_so_base_clockid_alarm_base_7253 base_clockid alarm_base 0 7253 NULL
133845 +disable_so_pll_time_modem_state_ser12_7269 pll_time modem_state_ser12 0 7269 NULL
133846 +disable_so_phyaddr_fe_priv_7272 phyaddr fe_priv 0 7272 NULL
133847 +disable_so_xfs_btree_copy_keys_fndecl_7274 xfs_btree_copy_keys fndecl 4 7274 NULL
133848 +disable_so_lzo_uncompress_fndecl_7276 lzo_uncompress fndecl 6 7276 NULL
133849 +disable_so_spc_assoc_id_sctp_paddr_change_7283 spc_assoc_id sctp_paddr_change 0 7283 NULL
133850 +disable_so_min_interrupt_out_interval_vardecl_ldusb_c_7293 min_interrupt_out_interval vardecl_ldusb.c 0 7293 NULL
133851 +disable_so_phys_addr_qlcnic_host_rds_ring_7298 phys_addr qlcnic_host_rds_ring 0 7298 NULL
133852 +disable_so_ethoc_interrupt_fndecl_7299 ethoc_interrupt fndecl 1 7299 NULL
133853 +disable_so_wintime_si_dyn_powertune_data_7305 wintime si_dyn_powertune_data 0 7305 NULL
133854 +disable_so_timestamp_cnic_context_7309 timestamp cnic_context 0 7309 NULL nohasharray
133855 +disable_so_rx8025_set_clock_adjust_fndecl_7309 rx8025_set_clock_adjust fndecl 2-0 7309 &disable_so_timestamp_cnic_context_7309
133856 +disable_so_read_mac_address_dvb_usb_device_properties_7321 read_mac_address dvb_usb_device_properties 0 7321 NULL
133857 +disable_so_pm_runtime_set_active_fndecl_7330 pm_runtime_set_active fndecl 0 7330 NULL
133858 +disable_so_snd_seq_oss_synth_addr_fndecl_7331 snd_seq_oss_synth_addr fndecl 0 7331 NULL
133859 +disable_so_netlbl_unlabel_addrinfo_get_fndecl_7332 netlbl_unlabel_addrinfo_get fndecl 0 7332 NULL nohasharray
133860 +disable_so_transport_type_sockaddr_rxrpc_7332 transport_type sockaddr_rxrpc 0 7332 &disable_so_netlbl_unlabel_addrinfo_get_fndecl_7332
133861 +disable_so_tx_control_addr_acx_data_path_params_resp_7345 tx_control_addr acx_data_path_params_resp 0 7345 NULL
133862 +disable_so_intel_runtime_suspend_fndecl_7354 intel_runtime_suspend fndecl 0 7354 NULL nohasharray
133863 +disable_so_arb_timeout_pca9541_7354 arb_timeout pca9541 0 7354 &disable_so_intel_runtime_suspend_fndecl_7354
133864 +disable_so_authenc_esn_geniv_ahash_done_fndecl_7357 authenc_esn_geniv_ahash_done fndecl 2 7357 NULL
133865 +disable_so_total_blkcipher_walk_7358 total blkcipher_walk 0 7358 NULL
133866 +disable_so_mtime_fuse_attr_7361 mtime fuse_attr 0 7361 NULL
133867 +disable_so_gtt_phys_addr__intel_private_7365 gtt_phys_addr _intel_private 0 7365 NULL
133868 +disable_so_btree_lookup_raw_fndecl_7367 btree_lookup_raw fndecl 0-2-7 7367 NULL
133869 +disable_so_show_imon_clock_fndecl_7376 show_imon_clock fndecl 0 7376 NULL
133870 +disable_so_acpi_cpufreq_guess_freq_fndecl_7383 acpi_cpufreq_guess_freq fndecl 0 7383 NULL
133871 +disable_so_pch_udc_ep_bit_set_fndecl_7386 pch_udc_ep_bit_set fndecl 3 7386 NULL
133872 +disable_so_tv_nsec_compat_timespec_7389 tv_nsec compat_timespec 0 7389 NULL
133873 +disable_so_try_msr_calibrate_tsc_fndecl_7392 try_msr_calibrate_tsc fndecl 0 7392 NULL
133874 +disable_so_msi001_s_frequency_fndecl_7396 msi001_s_frequency fndecl 0 7396 NULL
133875 +disable_so_lxt971_ack_interrupt_fndecl_7397 lxt971_ack_interrupt fndecl 0 7397 NULL nohasharray
133876 +disable_so_i40e_get_mac_addr_fndecl_7397 i40e_get_mac_addr fndecl 0 7397 &disable_so_lxt971_ack_interrupt_fndecl_7397
133877 +disable_so_conn_db_addr_lo_fcoe_kwqe_conn_offload2_7408 conn_db_addr_lo fcoe_kwqe_conn_offload2 0 7408 NULL
133878 +disable_so_spcp8x5_get_msr_fndecl_7409 spcp8x5_get_msr fndecl 0 7409 NULL
133879 +disable_so_signal_det_fndecl_7411 signal_det fndecl 2 7411 NULL
133880 +disable_so_vclk_fb_div_pll_ct_7423 vclk_fb_div pll_ct 0 7423 NULL
133881 +disable_so_crypto_ahash_final_fndecl_7433 crypto_ahash_final fndecl 0 7433 NULL
133882 +disable_so_vidioc_s_hw_freq_seek_fndecl_7439 vidioc_s_hw_freq_seek fndecl 0 7439 NULL
133883 +disable_so_aa_calc_profile_hash_fndecl_7443 aa_calc_profile_hash fndecl 0-4 7443 NULL
133884 +disable_so_count_sha1_state_7456 count sha1_state 0 7456 NULL
133885 +disable_so_full_name_hash_fndecl_7466 full_name_hash fndecl 0-2 7466 NULL
133886 +disable_so_serial8250_set_divisor_fndecl_7469 serial8250_set_divisor fndecl 4-3 7469 NULL
133887 +disable_so_add_hwgenerator_randomness_fndecl_7471 add_hwgenerator_randomness fndecl 2-3 7471 NULL
133888 +disable_so_xfs_btree_check_block_fndecl_7472 xfs_btree_check_block fndecl 0 7472 NULL
133889 +disable_so_f1x_get_norm_dct_addr_fndecl_7473 f1x_get_norm_dct_addr fndecl 0-3-5 7473 NULL
133890 +disable_so_timeout_tid_ampdu_rx_7484 timeout tid_ampdu_rx 0 7484 NULL
133891 +disable_so_uv_rtc_find_next_timer_fndecl_7494 uv_rtc_find_next_timer fndecl 2 7494 NULL
133892 +disable_so_mmc_erase_timeout_fndecl_7496 mmc_erase_timeout fndecl 0-3-2 7496 NULL
133893 +disable_so_interrupt_in_endpoint_edgeport_serial_7513 interrupt_in_endpoint edgeport_serial 0 7513 NULL
133894 +disable_so_start_asd_ha_addrspace_7515 start asd_ha_addrspace 0 7515 NULL
133895 +disable_so_ccp_register_aes_alg_fndecl_7517 ccp_register_aes_alg fndecl 0 7517 NULL
133896 +disable_so_addr_ptr_drm_i915_gem_mmap_7520 addr_ptr drm_i915_gem_mmap 0 7520 NULL
133897 +disable_so_ecryptfs_get_tfm_and_mutex_for_cipher_name_fndecl_7524 ecryptfs_get_tfm_and_mutex_for_cipher_name fndecl 0 7524 NULL
133898 +disable_so_async_schedule_fndecl_7528 async_schedule fndecl 0 7528 NULL nohasharray
133899 +disable_so_crypto_ctr_crypt_inplace_fndecl_7528 crypto_ctr_crypt_inplace fndecl 0 7528 &disable_so_async_schedule_fndecl_7528
133900 +disable_so_snd_mpu401_uart_interrupt_fndecl_7536 snd_mpu401_uart_interrupt fndecl 1 7536 NULL
133901 +disable_so_cfg_max_scsicmpl_time_lpfc_vport_7541 cfg_max_scsicmpl_time lpfc_vport 0 7541 NULL
133902 +disable_so_blkcipher_done_slow_fndecl_7555 blkcipher_done_slow fndecl 0-2 7555 NULL
133903 +disable_so_cg_spll_spread_spectrum_si_clock_registers_7557 cg_spll_spread_spectrum si_clock_registers 0 7557 NULL
133904 +disable_so_dev_addr_mv_udc_7559 dev_addr mv_udc 0 7559 NULL
133905 +disable_so___restart_timer_fndecl_7572 __restart_timer fndecl 2 7572 NULL
133906 +disable_so_phy_interrupt_fndecl_7576 phy_interrupt fndecl 1 7576 NULL
133907 +disable_so_pending_auth_reply_time_wl12xx_vif_7583 pending_auth_reply_time wl12xx_vif 0 7583 NULL
133908 +disable_so_kempld_wdt_set_stage_timeout_fndecl_7592 kempld_wdt_set_stage_timeout fndecl 3 7592 NULL
133909 +disable_so_mwifiex_ret_802_11_mac_address_fndecl_7598 mwifiex_ret_802_11_mac_address fndecl 0 7598 NULL
133910 +disable_so_ad799x_write_frequency_fndecl_7606 ad799x_write_frequency fndecl 0-4 7606 NULL
133911 +disable_so_htab_map_hash_fndecl_7622 htab_map_hash fndecl 0-2 7622 NULL
133912 +disable_so_smack_task_getscheduler_fndecl_7629 smack_task_getscheduler fndecl 0 7629 NULL
133913 +disable_so_atomic64_sub_fndecl_7638 atomic64_sub fndecl 1 7638 NULL
133914 +disable_so___mcheck_cpu_cap_init_fndecl_7640 __mcheck_cpu_cap_init fndecl 0 7640 NULL
133915 +disable_so_sq_dma_addr_nvme_queue_7641 sq_dma_addr nvme_queue 0 7641 NULL
133916 +disable_so_data_address_mscp_7645 data_address mscp 0 7645 NULL
133917 +disable_so_block_address_ms_param_register_7651 block_address ms_param_register 0 7651 NULL
133918 +disable_so___wait_on_bit_lock_fndecl_7653 __wait_on_bit_lock fndecl 0 7653 NULL
133919 +disable_so_dma_addr_qla2_sgx_7667 dma_addr qla2_sgx 0 7667 NULL
133920 +disable_so_ba1_addr_cs4281_7670 ba1_addr cs4281 0 7670 NULL
133921 +disable_so_addr_nv50_disp_mthd_list_7671 addr nv50_disp_mthd_list 0 7671 NULL
133922 +disable_so_address_stv090x_config_7672 address stv090x_config 0 7672 NULL
133923 +disable_so_addr_oxygen_7675 addr oxygen 0 7675 NULL
133924 +disable_so_mei_wd_ops_set_timeout_fndecl_7696 mei_wd_ops_set_timeout fndecl 2 7696 NULL
133925 +disable_so_clock_getres_k_clock_7708 clock_getres k_clock 1 7708 NULL
133926 +disable_so_hash_shift_neigh_hash_table_7714 hash_shift neigh_hash_table 0 7714 NULL
133927 +disable_so_pmu_fast_powerup_delay_fndecl_7721 pmu_fast_powerup_delay fndecl 0 7721 NULL
133928 +disable_so_dst_addr_rds_info_rdma_connection_7722 dst_addr rds_info_rdma_connection 0 7722 NULL
133929 +disable_so_period_timeriomem_rng_private_data_7730 period timeriomem_rng_private_data 0 7730 NULL
133930 +disable_so_ocfs2_flock_handle_signal_fndecl_7734 ocfs2_flock_handle_signal fndecl 0 7734 NULL
133931 +disable_so_seq_rds_info_message_7735 seq rds_info_message 0 7735 NULL
133932 +disable_so_base_addr_net_device_7745 base_addr net_device 0 7745 NULL
133933 +disable_so_sense_addr_fcpio_icmnd_16_7746 sense_addr fcpio_icmnd_16 0 7746 NULL
133934 +disable_so_clocks_calc_mult_shift_fndecl_7747 clocks_calc_mult_shift fndecl 3-4-5 7747 NULL
133935 +disable_so_monotonic_time_coarse_sec_vsyscall_gtod_data_7749 monotonic_time_coarse_sec vsyscall_gtod_data 0 7749 NULL
133936 +disable_so_remote_ca_guid_cm_timewait_info_7768 remote_ca_guid cm_timewait_info 0 7768 NULL
133937 +disable_so_tsf_timestamp_wmi_phyerr_7783 tsf_timestamp wmi_phyerr 0 7783 NULL
133938 +disable_so_fullbatt_vchk_jiffies_at_charger_manager_7786 fullbatt_vchk_jiffies_at charger_manager 0 7786 NULL
133939 +disable_so_st_mtime_nsec_p9_stat_dotl_7787 st_mtime_nsec p9_stat_dotl 0 7787 NULL
133940 +disable_so_hmac_sha256_fndecl_7789 hmac_sha256 fndecl 0-2-4 7789 NULL
133941 +disable_so_writeback_delay_fndecl_7808 writeback_delay fndecl 0-2 7808 NULL
133942 +disable_so_offset_ioctl_gntdev_get_offset_for_vaddr_7812 offset ioctl_gntdev_get_offset_for_vaddr 0 7812 NULL
133943 +disable_so_tuner_frequency_stv0288_state_7823 tuner_frequency stv0288_state 0 7823 NULL
133944 +disable_so_neigh_hash_grow_fndecl_7824 neigh_hash_grow fndecl 2 7824 NULL
133945 +disable_so_timeout_sh_mmcif_host_7836 timeout sh_mmcif_host 0 7836 NULL
133946 +disable_so_cpuid_eax_fndecl_7845 cpuid_eax fndecl 0 7845 NULL
133947 +disable_so_mclk_pwrmgt_cntl_si_clock_registers_7850 mclk_pwrmgt_cntl si_clock_registers 0 7850 NULL
133948 +disable_so_mgt_update_addr_fndecl_7857 mgt_update_addr fndecl 0 7857 NULL nohasharray
133949 +disable_so_regmap_bulk_read_fndecl_7857 regmap_bulk_read fndecl 4-0-2 7857 &disable_so_mgt_update_addr_fndecl_7857
133950 +disable_so_cpufreq_governor_init_fndecl_7864 cpufreq_governor_init fndecl 0 7864 NULL
133951 +disable_so_sync_freq_arizona_fll_7868 sync_freq arizona_fll 0 7868 NULL
133952 +disable_so_channel_switch_time_ath_chanctx_sched_7869 channel_switch_time ath_chanctx_sched 0 7869 NULL nohasharray
133953 +disable_so_isp1760_udc_set_address_fndecl_7869 isp1760_udc_set_address fndecl 2 7869 &disable_so_channel_switch_time_ath_chanctx_sched_7869
133954 +disable_so_n_hw_addrs_iwl_nvm_data_7872 n_hw_addrs iwl_nvm_data 0 7872 NULL
133955 +disable_so_rcu_jiffies_till_stall_check_fndecl_7874 rcu_jiffies_till_stall_check fndecl 0 7874 NULL
133956 +disable_so_seq_b43legacy_txstatus_7880 seq b43legacy_txstatus 0 7880 NULL
133957 +disable_so_hpi_tuner_query_frequency_fndecl_7881 hpi_tuner_query_frequency fndecl 0-1 7881 NULL
133958 +disable_so_data_address_descriptor_7886 data_address descriptor 0 7886 NULL
133959 +disable_so_mpll_dq_func_cntl_ci_clock_registers_7890 mpll_dq_func_cntl ci_clock_registers 0 7890 NULL
133960 +disable_so_hpfs_load_bitmap_directory_fndecl_7892 hpfs_load_bitmap_directory fndecl 2 7892 NULL
133961 +disable_so_hour_tomoyo_time_7893 hour tomoyo_time 0 7893 NULL
133962 +disable_so_dx_pt_regs_7894 dx pt_regs 0 7894 NULL
133963 +disable_so_mthca_SW2HW_EQ_fndecl_7906 mthca_SW2HW_EQ fndecl 3-0 7906 NULL
133964 +disable_so_megasas_start_timer_fndecl_7920 megasas_start_timer fndecl 4 7920 NULL
133965 +disable_so_Memhscx_interrupt_fndecl_7925 Memhscx_interrupt fndecl 2 7925 NULL
133966 +disable_so_ena_gpio_regulator_config_7927 ena_gpio regulator_config 0 7927 NULL
133967 +disable_so_tda827x_initial_sleep_fndecl_7929 tda827x_initial_sleep fndecl 0 7929 NULL
133968 +disable_so_hfrontporch_v4l2_bt_timings_7935 hfrontporch v4l2_bt_timings 0 7935 NULL
133969 +disable_so_xfrm_flowi_daddr_fndecl_7937 xfrm_flowi_daddr fndecl 2 7937 NULL
133970 +disable_so_fw_schedule_device_work_fndecl_7962 fw_schedule_device_work fndecl 2 7962 NULL
133971 +disable_so_xfs_btree_get_bufl_fndecl_7965 xfs_btree_get_bufl fndecl 3 7965 NULL
133972 +disable_so_cpu_to_macvtap16_fndecl_7976 cpu_to_macvtap16 fndecl 0-2 7976 NULL nohasharray
133973 +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
133974 +disable_so_first_port_bitmap_port_7981 first_port bitmap_port 0 7981 NULL
133975 +disable_so_compat_get_bitmap_fndecl_7984 compat_get_bitmap fndecl 0-3 7984 NULL
133976 +disable_so_dma_addr_iser_rx_desc_7996 dma_addr iser_rx_desc 0 7996 NULL
133977 +disable_so_channel2freq_a_fndecl_7997 channel2freq_a fndecl 0-1 7997 NULL
133978 +disable_so_card_snd_timer_info_8007 card snd_timer_info 0 8007 NULL nohasharray
133979 +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
133980 +disable_so_apanel_addr_vardecl_i2c_i801_c_8018 apanel_addr vardecl_i2c-i801.c 0 8018 NULL
133981 +disable_so_bcma_pmu_pll_clock_fndecl_8024 bcma_pmu_pll_clock fndecl 2-3-0 8024 NULL
133982 +disable_so_sha1_transform_asm_vardecl_sha1_ssse3_glue_c_8028 sha1_transform_asm vardecl_sha1_ssse3_glue.c 3 8028 NULL
133983 +disable_so_add_timer_randomness_fndecl_8030 add_timer_randomness fndecl 2 8030 NULL
133984 +disable_so_hash_mask_mesh_table_8031 hash_mask mesh_table 0 8031 NULL
133985 +disable_so_show_dgid_fndecl_8032 show_dgid fndecl 0 8032 NULL
133986 +disable_so_div_cfg_dib8000_config_8034 div_cfg dib8000_config 0 8034 NULL
133987 +disable_so_demod_address_l64781_config_8035 demod_address l64781_config 0 8035 NULL
133988 +disable_so_uid_cramfs_inode_8037 uid cramfs_inode 0 8037 NULL
133989 +disable_so_recover_timer_read_fndecl_8053 recover_timer_read fndecl 0 8053 NULL
133990 +disable_so_usb_sleep_music_show_fndecl_8055 usb_sleep_music_show fndecl 0 8055 NULL
133991 +disable_so_hw_ptr_interrupt_snd_pcm_runtime_8061 hw_ptr_interrupt snd_pcm_runtime 0 8061 NULL
133992 +disable_so_reset_delay_us_e1000_phy_info_8066 reset_delay_us e1000_phy_info 0 8066 NULL
133993 +disable_so_timeout_packet_command_8072 timeout packet_command 0 8072 NULL
133994 +disable_so_jiffies_a_sl811_8074 jiffies_a sl811 0 8074 NULL nohasharray
133995 +disable_so_idedisk_set_max_address_fndecl_8074 idedisk_set_max_address fndecl 0-2 8074 &disable_so_jiffies_a_sl811_8074
133996 +disable_so_base_addr_TAG_TW_Device_Extension_8076 base_addr TAG_TW_Device_Extension 0 8076 NULL
133997 +disable_so_gateway_cmd_addr_wil_fw_record_gateway_data4_8080 gateway_cmd_addr wil_fw_record_gateway_data4 0 8080 NULL
133998 +disable_so_snd_cmipci_interrupt_fndecl_8083 snd_cmipci_interrupt fndecl 1 8083 NULL
133999 +disable_so_ivsize_blkcipher_alg_8085 ivsize blkcipher_alg 0 8085 NULL
134000 +disable_so_mlx5e_add_eth_addr_rule_fndecl_8090 mlx5e_add_eth_addr_rule fndecl 0 8090 NULL
134001 +disable_so_sysctl_rose_call_request_timeout_vardecl_8095 sysctl_rose_call_request_timeout vardecl 0 8095 NULL nohasharray
134002 +disable_so_b43_phy_maskset_fndecl_8095 b43_phy_maskset fndecl 2-3-4 8095 &disable_so_sysctl_rose_call_request_timeout_vardecl_8095
134003 +disable_so_dma_addr_mraid_pci_blk_8116 dma_addr mraid_pci_blk 0 8116 NULL
134004 +disable_so___arch_hweight32_fndecl_8119 __arch_hweight32 fndecl 0-1 8119 NULL
134005 +disable_so_lvds_downclock_drm_i915_private_8128 lvds_downclock drm_i915_private 0 8128 NULL
134006 +disable_so_calgary_set_split_completion_timeout_fndecl_8129 calgary_set_split_completion_timeout fndecl 2 8129 NULL
134007 +disable_so_i_atime_minix2_inode_8131 i_atime minix2_inode 0 8131 NULL
134008 +disable_so_xclk_post_div_pll_ct_8137 xclk_post_div pll_ct 0 8137 NULL
134009 +disable_so_legacy_display_base_addr_radeon_crtc_8144 legacy_display_base_addr radeon_crtc 0 8144 NULL
134010 +disable_so_rv6xx_memory_clock_entry_set_reference_divider_fndecl_8149 rv6xx_memory_clock_entry_set_reference_divider fndecl 3 8149 NULL
134011 +disable_so_x86_phys_bits_cpuinfo_x86_8154 x86_phys_bits cpuinfo_x86 0 8154 NULL
134012 +disable_so_vmx_get_preemption_timer_value_fndecl_8155 vmx_get_preemption_timer_value fndecl 0 8155 NULL
134013 +disable_so_delayed_set_value_led_classdev_8162 delayed_set_value led_classdev 0 8162 NULL
134014 +disable_so_link_timeout_fe_priv_8170 link_timeout fe_priv 0 8170 NULL nohasharray
134015 +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
134016 +disable_so___jhash_nwords_fndecl_8180 __jhash_nwords fndecl 0-1-2-3 8180 NULL
134017 +disable_so_buffer_addr_e1000_rx_desc_8186 buffer_addr e1000_rx_desc 0 8186 NULL
134018 +disable_so_s_wtime_ext2_super_block_8189 s_wtime ext2_super_block 0 8189 NULL nohasharray
134019 +disable_so_sel_addr1___mux2_8189 sel_addr1 __mux2 0 8189 &disable_so_s_wtime_ext2_super_block_8189
134020 +disable_so_elan_smbus_sleep_control_fndecl_8190 elan_smbus_sleep_control fndecl 0 8190 NULL
134021 +disable_so_hscale_timing_8195 hscale timing 0 8195 NULL
134022 +disable_so_mem_addr_sms_data_download_8196 mem_addr sms_data_download 0 8196 NULL
134023 +disable_so_last_time2_intel_ilk_power_mgmt_8197 last_time2 intel_ilk_power_mgmt 0 8197 NULL
134024 +disable_so_end_point_addr_cx231xx_video_mode_8198 end_point_addr cx231xx_video_mode 0 8198 NULL
134025 +disable_so_cmx_delay_dsp_8202 cmx_delay dsp 0 8202 NULL
134026 +disable_so_inet6_rtm_deladdr_fndecl_8203 inet6_rtm_deladdr fndecl 0 8203 NULL
134027 +disable_so_local_ca_guid_cm_rep_msg_8210 local_ca_guid cm_rep_msg 0 8210 NULL
134028 +disable_so_address_r8a66597_device_8227 address r8a66597_device 0 8227 NULL
134029 +disable_so_idle_jiffies_tick_sched_8241 idle_jiffies tick_sched 0 8241 NULL nohasharray
134030 +disable_so_ver_addr_via_display_timing_8241 ver_addr via_display_timing 0 8241 &disable_so_idle_jiffies_tick_sched_8241
134031 +disable_so_addr_hamachi_desc_8244 addr hamachi_desc 0 8244 NULL nohasharray
134032 +disable_so_addr_snd_dmaengine_dai_dma_data_8244 addr snd_dmaengine_dai_dma_data 0 8244 &disable_so_addr_hamachi_desc_8244
134033 +disable_so_ip6addrlbl_add_fndecl_8251 ip6addrlbl_add fndecl 0-4 8251 NULL
134034 +disable_so_transtime_vim2m_ctx_8252 transtime vim2m_ctx 0 8252 NULL
134035 +disable_so_seq_prism2_frag_entry_8262 seq prism2_frag_entry 0 8262 NULL
134036 +disable_so_uid_args_requester_8263 uid args_requester 0 8263 NULL
134037 +disable_so_bfa_fcs_lport_ns_sm_gid_ft_retry_fndecl_8264 bfa_fcs_lport_ns_sm_gid_ft_retry fndecl 2 8264 NULL
134038 +disable_so_jffs2_lzo_decompress_fndecl_8274 jffs2_lzo_decompress fndecl 3 8274 NULL
134039 +disable_so_fb_start_aligned_physaddr_osd_info_8300 fb_start_aligned_physaddr osd_info 0 8300 NULL
134040 +disable_so_latch_addr_flash_driver_init_fndecl_8304 latch_addr_flash_driver_init fndecl 0 8304 NULL
134041 +disable_so_ab3100_rtc_read_time_fndecl_8312 ab3100_rtc_read_time fndecl 0 8312 NULL
134042 +disable_so_set_addr_fndecl_8318 set_addr fndecl 2-4-5 8318 NULL
134043 +disable_so_bit_width_acpi_pct_register_8319 bit_width acpi_pct_register 0 8319 NULL
134044 +disable_so_cpu_core_id_cpuinfo_x86_8323 cpu_core_id cpuinfo_x86 0 8323 NULL
134045 +disable_so_hash_rem_ccp_aes_cmac_req_ctx_8330 hash_rem ccp_aes_cmac_req_ctx 0 8330 NULL
134046 +disable_so_ps_timeout_wireless_dev_8334 ps_timeout wireless_dev 0 8334 NULL
134047 +disable_so_next_address_dma_ops_domain_8335 next_address dma_ops_domain 0 8335 NULL
134048 +disable_so_skcipher_pull_sgl_fndecl_8337 skcipher_pull_sgl fndecl 2 8337 NULL
134049 +disable_so_create_impulse_test_signal_fndecl_8361 create_impulse_test_signal fndecl 3 8361 NULL
134050 +disable_so_mod_timer_pending_fndecl_8362 mod_timer_pending fndecl 2-0 8362 NULL nohasharray
134051 +disable_so_ep0_trb_addr_dwc3_8362 ep0_trb_addr dwc3 0 8362 &disable_so_mod_timer_pending_fndecl_8362
134052 +disable_so_mtt_base_addr_h_mlx4_cq_context_8364 mtt_base_addr_h mlx4_cq_context 0 8364 NULL
134053 +disable_so_i2c_smbus_write_byte_data_fndecl_8369 i2c_smbus_write_byte_data fndecl 0-2-3 8369 NULL
134054 +disable_so_tpg_hscale_div_fndecl_8382 tpg_hscale_div fndecl 0-3 8382 NULL
134055 +disable_so_timestamp_bnx2i_endpoint_8390 timestamp bnx2i_endpoint 0 8390 NULL
134056 +disable_so_audit_backlog_wait_time_vardecl_audit_c_8393 audit_backlog_wait_time vardecl_audit.c 0 8393 NULL
134057 +disable_so_compat_put_timeval_fndecl_8394 compat_put_timeval fndecl 0 8394 NULL
134058 +disable_so_btree_remove128_fndecl_8408 btree_remove128 fndecl 2 8408 NULL
134059 +disable_so_pcxhr_hardware_timer_fndecl_8413 pcxhr_hardware_timer fndecl 0 8413 NULL
134060 +disable_so_ixgbe_atr_compute_sig_hash_82599_fndecl_8416 ixgbe_atr_compute_sig_hash_82599 fndecl 0 8416 NULL
134061 +disable_so_space_id_acpi_generic_address_8425 space_id acpi_generic_address 0 8425 NULL
134062 +disable_so_befs_btree_read_fndecl_8444 befs_btree_read fndecl 3 8444 NULL
134063 +disable_so_cttimeout_default_set_fndecl_8445 cttimeout_default_set fndecl 0 8445 NULL
134064 +disable_so_set_bdaddr_hci_dev_8450 set_bdaddr hci_dev 0 8450 NULL
134065 +disable_so_select_addr_qla82xx_md_entry_queue_8457 select_addr qla82xx_md_entry_queue 0 8457 NULL
134066 +disable_so_crypto_register_alg_fndecl_8460 crypto_register_alg fndecl 0 8460 NULL
134067 +disable_so_inet6_fill_ifmcaddr_fndecl_8465 inet6_fill_ifmcaddr fndecl 0-3-5 8465 NULL
134068 +disable_so_image_address_acpi_table_bgrt_8468 image_address acpi_table_bgrt 0 8468 NULL
134069 +disable_so_cmd_lock_addr_ulp_mem_io_8484 cmd_lock_addr ulp_mem_io 0 8484 NULL
134070 +disable_so_r600_engine_clock_entry_set_step_time_fndecl_8486 r600_engine_clock_entry_set_step_time fndecl 3 8486 NULL
134071 +disable_so_cxd2820r_sleep_t2_fndecl_8488 cxd2820r_sleep_t2 fndecl 0 8488 NULL
134072 +disable_so_si_get_cu_active_bitmap_fndecl_8498 si_get_cu_active_bitmap fndecl 0-2-3 8498 NULL
134073 +disable_so_clock_drxd_config_8500 clock drxd_config 0 8500 NULL nohasharray
134074 +disable_so_i2c_addr_zl10039_state_8500 i2c_addr zl10039_state 0 8500 &disable_so_clock_drxd_config_8500 nohasharray
134075 +disable_so_map_sg_dma_map_ops_8500 map_sg dma_map_ops 0-3 8500 &disable_so_i2c_addr_zl10039_state_8500
134076 +disable_so_addr_vt1211_data_8504 addr vt1211_data 0 8504 NULL
134077 +disable_so_vsync_pulse_width_lvds_dvo_timing_8520 vsync_pulse_width lvds_dvo_timing 0 8520 NULL
134078 +disable_so_set_frequency_fndecl_8523 set_frequency fndecl 0-3 8523 NULL
134079 +disable_so_lola_enable_clock_events_fndecl_8528 lola_enable_clock_events fndecl 0 8528 NULL
134080 +disable_so_pci_prepare_to_sleep_fndecl_8531 pci_prepare_to_sleep fndecl 0 8531 NULL
134081 +disable_so_valleyview_rps_max_freq_fndecl_8541 valleyview_rps_max_freq fndecl 0 8541 NULL
134082 +disable_so_wm8350_set_clkdiv_fndecl_8547 wm8350_set_clkdiv fndecl 3 8547 NULL
134083 +disable_so_scope_inet6_ifaddr_8569 scope inet6_ifaddr 0 8569 NULL
134084 +disable_so_hci_update_random_address_fndecl_8570 hci_update_random_address fndecl 0 8570 NULL nohasharray
134085 +disable_so_level_btrfs_delayed_extent_op_8570 level btrfs_delayed_extent_op 0 8570 &disable_so_hci_update_random_address_fndecl_8570
134086 +disable_so_p5_mt9t112_pll_divider_8582 p5 mt9t112_pll_divider 0 8582 NULL
134087 +disable_so_period_frames_snd_pcm_oss_runtime_8583 period_frames snd_pcm_oss_runtime 0 8583 NULL nohasharray
134088 +disable_so_sgtl5000_set_clock_fndecl_8583 sgtl5000_set_clock fndecl 2 8583 &disable_so_period_frames_snd_pcm_oss_runtime_8583
134089 +disable_so_ns_to_timespec_fndecl_8584 ns_to_timespec fndecl 1 8584 NULL
134090 +disable_so_mmc_test_random_perf_fndecl_8591 mmc_test_random_perf fndecl 0 8591 NULL
134091 +disable_so_ac_sleep_before_get_state_ms_vardecl_ac_c_8592 ac_sleep_before_get_state_ms vardecl_ac.c 0 8592 NULL
134092 +disable_so_s5h1420_getfreqoffset_fndecl_8597 s5h1420_getfreqoffset fndecl 0 8597 NULL
134093 +disable_so_pll_j_aic32x4_rate_divs_8598 pll_j aic32x4_rate_divs 0 8598 NULL
134094 +disable_so_freq_stb0899_params_8606 freq stb0899_params 0 8606 NULL
134095 +disable_so_vblank_hi_oaktrail_timing_info_8607 vblank_hi oaktrail_timing_info 0 8607 NULL
134096 +disable_so_subnet_timeout_ipath_ibdev_8613 subnet_timeout ipath_ibdev 0 8613 NULL nohasharray
134097 +disable_so_demod_address_or51211_config_8613 demod_address or51211_config 0 8613 &disable_so_subnet_timeout_ipath_ibdev_8613
134098 +disable_so___compat_put_timespec_fndecl_8625 __compat_put_timespec fndecl 0 8625 NULL
134099 +disable_so_sq_addr_hi_fcoe_kwqe_conn_offload1_8631 sq_addr_hi fcoe_kwqe_conn_offload1 0 8631 NULL
134100 +disable_so_compat_sock_get_timestamp_fndecl_8635 compat_sock_get_timestamp fndecl 0 8635 NULL
134101 +disable_so_next_sit_addr_fndecl_8639 next_sit_addr fndecl 0-2 8639 NULL
134102 +disable_so_update_mc_addr_fm10k_mac_ops_8643 update_mc_addr fm10k_mac_ops 4 8643 NULL
134103 +disable_so_img_ir_timing_range_convert_fndecl_8648 img_ir_timing_range_convert fndecl 3-4-5 8648 NULL
134104 +disable_so_adc_clock_ratio_dib0090_io_config_8649 adc_clock_ratio dib0090_io_config 0 8649 NULL
134105 +disable_so_regcache_rbtree_sync_fndecl_8655 regcache_rbtree_sync fndecl 0-2-3 8655 NULL
134106 +disable_so_nilfs_btree_gather_data_fndecl_8666 nilfs_btree_gather_data fndecl 0-4 8666 NULL
134107 +disable_so__scsih_get_sas_address_fndecl_8674 _scsih_get_sas_address fndecl 2 8674 NULL
134108 +disable_so_mul_u64_u32_shr_fndecl_8675 mul_u64_u32_shr fndecl 0-1-2-3 8675 NULL
134109 +disable_so_find_next_zero_bit_fndecl_8677 find_next_zero_bit fndecl 0-2-3 8677 NULL
134110 +disable_so_generic_set_freq_fndecl_8678 generic_set_freq fndecl 0-2 8678 NULL
134111 +disable_so_time_in_irq_usb_usbvision_8687 time_in_irq usb_usbvision 0 8687 NULL
134112 +disable_so_data_addr_asc_scsiq_1_8688 data_addr asc_scsiq_1 0 8688 NULL
134113 +disable_so_nl80211_parse_random_mac_fndecl_8702 nl80211_parse_random_mac fndecl 0 8702 NULL
134114 +disable_so_hpi_compander_set_attack_time_constant_fndecl_8705 hpi_compander_set_attack_time_constant fndecl 1-0 8705 NULL
134115 +disable_so_qla2x00_sns_gid_pt_fndecl_8706 qla2x00_sns_gid_pt fndecl 0 8706 NULL
134116 +disable_so_tipc_own_addr_fndecl_8707 tipc_own_addr fndecl 0 8707 NULL
134117 +disable_so_da9055_rtc_read_time_fndecl_8709 da9055_rtc_read_time fndecl 0 8709 NULL
134118 +disable_so_theta__fll_div_8710 theta _fll_div 0 8710 NULL nohasharray
134119 +disable_so_size_genwqe_bitstream_8710 size genwqe_bitstream 0 8710 &disable_so_theta__fll_div_8710
134120 +disable_so_cpu_to_virtio64_fndecl_8714 cpu_to_virtio64 fndecl 0-2 8714 NULL
134121 +disable_so_sleep_reg_bma180_part_info_8720 sleep_reg bma180_part_info 0 8720 NULL
134122 +disable_so_via_clock_init_fndecl_8721 via_clock_init fndecl 2 8721 NULL
134123 +disable_so_time_reftime_vardecl_ntp_c_8722 time_reftime vardecl_ntp.c 0 8722 NULL
134124 +disable_so_sysfs_set_reg_fndecl_8723 sysfs_set_reg fndecl 5 8723 NULL
134125 +disable_so_rport_del_timeout_vardecl_8725 rport_del_timeout vardecl 0 8725 NULL
134126 +disable_so_rb_subtree_gap_vm_area_struct_8729 rb_subtree_gap vm_area_struct 0 8729 NULL
134127 +disable_so_mipi_dsi_dcs_set_column_address_fndecl_8732 mipi_dsi_dcs_set_column_address fndecl 0 8732 NULL
134128 +disable_so_aes_encrypt_fail_read_fndecl_8737 aes_encrypt_fail_read fndecl 0-3 8737 NULL
134129 +disable_so_sumo_set_uvd_clock_fndecl_8742 sumo_set_uvd_clock fndecl 0-2-3-4 8742 NULL
134130 +disable_so_daddr_irlap_cb_8752 daddr irlap_cb 0 8752 NULL
134131 +disable_so_skcipher_sendpage_fndecl_8759 skcipher_sendpage fndecl 0-3-4-5 8759 NULL
134132 +disable_so_bitmap_store_fndecl_8764 bitmap_store fndecl 0-3 8764 NULL
134133 +disable_so_outdiv_arizona_fll_cfg_8765 outdiv arizona_fll_cfg 0 8765 NULL
134134 +disable_so_mce_start_timer_fndecl_8772 mce_start_timer fndecl 1 8772 NULL nohasharray
134135 +disable_so_kxcjk1013_runtime_resume_fndecl_8772 kxcjk1013_runtime_resume fndecl 0 8772 &disable_so_mce_start_timer_fndecl_8772
134136 +disable_so_p_addr_fw_desc_8777 p_addr fw_desc 0 8777 NULL
134137 +disable_so_count_uid_gid_extent_8799 count uid_gid_extent 0 8799 NULL
134138 +disable_so_ring_base_address_kfd_ioctl_create_queue_args_8811 ring_base_address kfd_ioctl_create_queue_args 0 8811 NULL
134139 +disable_so_start_addr_mlx5_mkey_seg_8817 start_addr mlx5_mkey_seg 0 8817 NULL
134140 +disable_so_ui_gid_ufs2_inode_8825 ui_gid ufs2_inode 0 8825 NULL
134141 +disable_so_addr_idx_tx_sw_desc_8827 addr_idx tx_sw_desc 0 8827 NULL
134142 +disable_so_cookie_init_timestamp_fndecl_8835 cookie_init_timestamp fndecl 0 8835 NULL
134143 +disable_so_f2fs_crypto_initialize_fndecl_8839 f2fs_crypto_initialize fndecl 0 8839 NULL
134144 +disable_so_timeout_ib_mad_send_wr_private_8841 timeout ib_mad_send_wr_private 0 8841 NULL nohasharray
134145 +disable_so_ddiv_gf100_clk_info_8841 ddiv gf100_clk_info 0 8841 &disable_so_timeout_ib_mad_send_wr_private_8841
134146 +disable_so_start_time_ieee80211_p2p_noa_desc_8844 start_time ieee80211_p2p_noa_desc 0 8844 NULL
134147 +disable_so__isl12057_rtc_read_time_fndecl_8850 _isl12057_rtc_read_time fndecl 0 8850 NULL
134148 +disable_so_read_addr_qla8xxx_minidump_entry_cache_8859 read_addr qla8xxx_minidump_entry_cache 0 8859 NULL
134149 +disable_so_b43legacy_get_txgain_freq_power_amp_fndecl_8866 b43legacy_get_txgain_freq_power_amp fndecl 0-1 8866 NULL
134150 +disable_so_ldelay_codel_vars_8872 ldelay codel_vars 0 8872 NULL
134151 +disable_so_mode_addr_ath_gen_timer_configuration_8875 mode_addr ath_gen_timer_configuration 0 8875 NULL
134152 +disable_so_move_addr_to_kernel_fndecl_8882 move_addr_to_kernel fndecl 0-2 8882 NULL
134153 +disable_so_last_time_cpufreq_stats_8891 last_time cpufreq_stats 0 8891 NULL
134154 +disable_so_di_uid_xfs_icdinode_8897 di_uid xfs_icdinode 0 8897 NULL
134155 +disable_so_g84_cipher_init_fndecl_8909 g84_cipher_init fndecl 0 8909 NULL
134156 +disable_so_slave_addr_intel_dvo_device_8910 slave_addr intel_dvo_device 0 8910 NULL
134157 +disable_so_avg_time_ide_tape_obj_8917 avg_time ide_tape_obj 0 8917 NULL
134158 +disable_so_ticks_timerfd_ctx_8928 ticks timerfd_ctx 0 8928 NULL
134159 +disable_so_st_atime_compat_stat_8936 st_atime compat_stat 0 8936 NULL
134160 +disable_so_addrconf_init_net_fndecl_8938 addrconf_init_net fndecl 0 8938 NULL
134161 +disable_so_qla4xxx_start_timer_fndecl_8945 qla4xxx_start_timer fndecl 3 8945 NULL
134162 +disable_so_crypto_blkcipher_decrypt_fndecl_8955 crypto_blkcipher_decrypt fndecl 0-4 8955 NULL
134163 +disable_so_guest_physical_address_vmcs12_8957 guest_physical_address vmcs12 0 8957 NULL
134164 +disable_so_acpi_lpss_runtime_resume_fndecl_8958 acpi_lpss_runtime_resume fndecl 0 8958 NULL nohasharray
134165 +disable_so_tegra_spi_runtime_resume_fndecl_8958 tegra_spi_runtime_resume fndecl 0 8958 &disable_so_acpi_lpss_runtime_resume_fndecl_8958
134166 +disable_so_runtime_resume_fndecl_8969 runtime_resume fndecl 0 8969 NULL
134167 +disable_so_hpi_tuner_set_hd_radio_signal_blend_fndecl_8970 hpi_tuner_set_hd_radio_signal_blend fndecl 0-1 8970 NULL
134168 +disable_so_wait_isoch_resource_delay_after_bus_reset_fndecl_8971 wait_isoch_resource_delay_after_bus_reset fndecl 0 8971 NULL
134169 +disable_so_end_fw_address_region_8972 end fw_address_region 0 8972 NULL
134170 +disable_so_sel_time_fcoe_ctlr_8977 sel_time fcoe_ctlr 0 8977 NULL
134171 +disable_so_unmap_addr_tso_state_8980 unmap_addr tso_state 0 8980 NULL
134172 +disable_so_v_freq_adv76xx_video_standards_8995 v_freq adv76xx_video_standards 0 8995 NULL
134173 +disable_so_p3_mt9t112_pll_divider_8996 p3 mt9t112_pll_divider 0 8996 NULL
134174 +disable_so_si476x_cmd_tune_seek_freq_fndecl_8997 si476x_cmd_tune_seek_freq fndecl 0-4-6 8997 NULL
134175 +disable_so_lzo1x_1_do_compress_fndecl_9000 lzo1x_1_do_compress fndecl 2 9000 NULL
134176 +disable_so_data_ramfuc_reg_9003 data ramfuc_reg 0 9003 NULL
134177 +disable_so_uid_drm_client_9005 uid drm_client 0 9005 NULL nohasharray
134178 +disable_so_size_pfn_var_mtrr_range_state_9005 size_pfn var_mtrr_range_state 0 9005 &disable_so_uid_drm_client_9005
134179 +disable_so_decode_attr_time_modify_fndecl_9006 decode_attr_time_modify fndecl 0 9006 NULL nohasharray
134180 +disable_so_last_jiffies_debug_vals_9006 last_jiffies debug_vals 0 9006 &disable_so_decode_attr_time_modify_fndecl_9006
134181 +disable_so_i2c_address_tua6100_priv_9007 i2c_address tua6100_priv 0 9007 NULL nohasharray
134182 +disable_so_end_mtrr_iter_9007 end mtrr_iter 0 9007 &disable_so_i2c_address_tua6100_priv_9007
134183 +disable_so_sin6_flowinfo_sockaddr_in6_9019 sin6_flowinfo sockaddr_in6 0 9019 NULL nohasharray
134184 +disable_so_device_destroy_fndecl_9019 device_destroy fndecl 2 9019 &disable_so_sin6_flowinfo_sockaddr_in6_9019
134185 +disable_so_si_tss_segment_16_9021 si tss_segment_16 0 9021 NULL
134186 +disable_so_parport_ieee1284_epp_write_addr_fndecl_9024 parport_ieee1284_epp_write_addr fndecl 0 9024 NULL
134187 +disable_so_esi_user_regs_struct32_9028 esi user_regs_struct32 0 9028 NULL
134188 +disable_so_clockevents_unbind_device_fndecl_9035 clockevents_unbind_device fndecl 2 9035 NULL nohasharray
134189 +disable_so_t1_interrupt_fndecl_9035 t1_interrupt fndecl 1 9035 &disable_so_clockevents_unbind_device_fndecl_9035 nohasharray
134190 +disable_so_randomize_stack_top_fndecl_9035 randomize_stack_top fndecl 0-1 9035 &disable_so_t1_interrupt_fndecl_9035
134191 +disable_so_mv88e6xxx_set_addr_direct_fndecl_9045 mv88e6xxx_set_addr_direct fndecl 0 9045 NULL
134192 +disable_so_phy_addr_cas_9051 phy_addr cas 0 9051 NULL
134193 +disable_so_usnic_transport_sock_get_addr_fndecl_9083 usnic_transport_sock_get_addr fndecl 0 9083 NULL
134194 +disable_so_debug_dma_free_coherent_fndecl_9087 debug_dma_free_coherent fndecl 4 9087 NULL nohasharray
134195 +disable_so_hashtab_insert_fndecl_9087 hashtab_insert fndecl 0 9087 &disable_so_debug_dma_free_coherent_fndecl_9087
134196 +disable_so_kblockd_schedule_delayed_work_on_fndecl_9095 kblockd_schedule_delayed_work_on fndecl 3-1 9095 NULL nohasharray
134197 +disable_so_lbs_host_sleep_cfg_fndecl_9095 lbs_host_sleep_cfg fndecl 0 9095 &disable_so_kblockd_schedule_delayed_work_on_fndecl_9095
134198 +disable_so_q_ctime_msg_queue_9100 q_ctime msg_queue 0 9100 NULL
134199 +disable_so_start_time_il_spectrum_cmd_9104 start_time il_spectrum_cmd 0 9104 NULL
134200 +disable_so_local_clock_fndecl_9106 local_clock fndecl 0 9106 NULL
134201 +disable_so_addr_xtsplit_9109 addr xtsplit 0 9109 NULL
134202 +disable_so_runtime_suspend_fndecl_9118 runtime_suspend fndecl 0 9118 NULL
134203 +disable_so_pch_src_uuid_lo_read_fndecl_9120 pch_src_uuid_lo_read fndecl 0 9120 NULL nohasharray
134204 +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
134205 +disable_so_addr1___pollrdmwr_9145 addr1 __pollrdmwr 0 9145 NULL
134206 +disable_so_iowrite16_rep_fndecl_9149 iowrite16_rep fndecl 3 9149 NULL
134207 +disable_so_rss_hash_result_eth_fast_path_rx_cqe_9151 rss_hash_result eth_fast_path_rx_cqe 0 9151 NULL
134208 +disable_so_ieee80211_fill_mesh_addresses_fndecl_9154 ieee80211_fill_mesh_addresses fndecl 0 9154 NULL
134209 +disable_so_dequeue_signal_lock_fndecl_9161 dequeue_signal_lock fndecl 0 9161 NULL
134210 +disable_so_min_tomoyo_time_9165 min tomoyo_time 0 9165 NULL
134211 +disable_so_hash_kernfs_node_9177 hash kernfs_node 0 9177 NULL
134212 +disable_so_get_subaddr_fndecl_9183 get_subaddr fndecl 0-3 9183 NULL
134213 +disable_so_tms_stime_tms_9187 tms_stime tms 0 9187 NULL
134214 +disable_so_shash_async_final_fndecl_9193 shash_async_final fndecl 0 9193 NULL
134215 +disable_so_sksg_dma_address_skd_request_context_9194 sksg_dma_address skd_request_context 0 9194 NULL
134216 +disable_so_rss_hash_val_rss_header_9205 rss_hash_val rss_header 0 9205 NULL
134217 +disable_so_actual_clock_mmc_host_9217 actual_clock mmc_host 0 9217 NULL
134218 +disable_so_xt_cluster_is_multicast_addr_fndecl_9218 xt_cluster_is_multicast_addr fndecl 2 9218 NULL
134219 +disable_so_ww_mutex_lock_interruptible_fndecl_9222 ww_mutex_lock_interruptible fndecl 0 9222 NULL
134220 +disable_so_twake_snd_pcm_runtime_9229 twake snd_pcm_runtime 0 9229 NULL
134221 +disable_so_read_file_bt_ant_diversity_fndecl_9236 read_file_bt_ant_diversity fndecl 0 9236 NULL
134222 +disable_so_tx_complete_addr_acx_data_path_params_resp_9246 tx_complete_addr acx_data_path_params_resp 0 9246 NULL
134223 +disable_so_pbn_div_drm_dp_mst_topology_mgr_9251 pbn_div drm_dp_mst_topology_mgr 0 9251 NULL
134224 +disable_so_num_address_p54_group_address_table_9258 num_address p54_group_address_table 0 9258 NULL
134225 +disable_so_ks108_set_xaddr_fndecl_9262 ks108_set_xaddr fndecl 2-3 9262 NULL
134226 +disable_so_xtal_freq_qm1d1c0042_config_9263 xtal_freq qm1d1c0042_config 0 9263 NULL
134227 +disable_so_lbs_host_sleep_read_fndecl_9270 lbs_host_sleep_read fndecl 3-0 9270 NULL
134228 +disable_so_fdiv_it913x_dev_9273 fdiv it913x_dev 0 9273 NULL nohasharray
134229 +disable_so_oom_score_adj_signal_struct_9273 oom_score_adj signal_struct 0 9273 &disable_so_fdiv_it913x_dev_9273
134230 +disable_so_compat_sys_mq_timedsend_fndecl_9287 compat_sys_mq_timedsend fndecl 3-1 9287 NULL
134231 +disable_so_snd_tea575x_val_to_freq_fndecl_9302 snd_tea575x_val_to_freq fndecl 0-2 9302 NULL
134232 +disable_so_addr_resolve_fndecl_9304 addr_resolve fndecl 0 9304 NULL
134233 +disable_so_address_mic_vqconfig_9306 address mic_vqconfig 0 9306 NULL nohasharray
134234 +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
134235 +disable_so_trace_clock_local_fndecl_9318 trace_clock_local fndecl 0 9318 NULL nohasharray
134236 +disable_so_proc_gid_map_write_fndecl_9318 proc_gid_map_write fndecl 0-3 9318 &disable_so_trace_clock_local_fndecl_9318
134237 +disable_so_discovery_timeout_mpath_info_9320 discovery_timeout mpath_info 0 9320 NULL
134238 +disable_so_xmit_timeout_nbd_device_9323 xmit_timeout nbd_device 0 9323 NULL
134239 +disable_so_timer_irq_vardecl_cs5535_clockevt_c_9326 timer_irq vardecl_cs5535-clockevt.c 0 9326 NULL
134240 +disable_so_kblockd_schedule_delayed_work_fndecl_9328 kblockd_schedule_delayed_work fndecl 2 9328 NULL
134241 +disable_so_utimes_common_fndecl_9330 utimes_common fndecl 0 9330 NULL
134242 +disable_so_di_gid_qnx4_inode_entry_9346 di_gid qnx4_inode_entry 0 9346 NULL nohasharray
134243 +disable_so_rpc_localaddr_fndecl_9346 rpc_localaddr fndecl 0 9346 &disable_so_di_gid_qnx4_inode_entry_9346
134244 +disable_so_ibits_pll_freq_tbl_9354 ibits pll_freq_tbl 0 9354 NULL
134245 +disable_so_addr_nct6683_data_9356 addr nct6683_data 0 9356 NULL
134246 +disable_so_l2_fhdr_hash_l2_fhdr_9360 l2_fhdr_hash l2_fhdr 0 9360 NULL
134247 +disable_so_hpfs_count_one_bitmap_fndecl_9362 hpfs_count_one_bitmap fndecl 0-2 9362 NULL
134248 +disable_so_ax25_uid_ioctl_fndecl_9367 ax25_uid_ioctl fndecl 0 9367 NULL
134249 +disable_so_last_rebuild_jiffies_inet_frags_9369 last_rebuild_jiffies inet_frags 0 9369 NULL
134250 +disable_so_hash_ipportnet6_expire_fndecl_9373 hash_ipportnet6_expire fndecl 4 9373 NULL
134251 +disable_so_uuid_count_mgmt_cp_start_service_discovery_9374 uuid_count mgmt_cp_start_service_discovery 0 9374 NULL
134252 +disable_so_ixgbe_set_vf_mac_addr_fndecl_9376 ixgbe_set_vf_mac_addr fndecl 3 9376 NULL
134253 +disable_so_addr_dma_desc_9383 addr dma_desc 0 9383 NULL
134254 +disable_so_ilk_get_aux_clock_divider_fndecl_9386 ilk_get_aux_clock_divider fndecl 0 9386 NULL
134255 +disable_so_host_bfa_bsg_rport_scsi_addr_s_9387 host bfa_bsg_rport_scsi_addr_s 0 9387 NULL
134256 +disable_so_xfs_btree_init_block_int_fndecl_9393 xfs_btree_init_block_int fndecl 3-7 9393 NULL
134257 +disable_so_dutycycle_pwm_voltages_9394 dutycycle pwm_voltages 0 9394 NULL
134258 +disable_so_max_timer_ms_ssb_chipcommon_9403 max_timer_ms ssb_chipcommon 0 9403 NULL
134259 +disable_so_demod_address_jdvbt90502_config_9412 demod_address jdvbt90502_config 0 9412 NULL nohasharray
134260 +disable_so_inet_dev_addr_type_fndecl_9412 inet_dev_addr_type fndecl 3 9412 &disable_so_demod_address_jdvbt90502_config_9412
134261 +disable_so_bit_offset_acpi_generic_address_9413 bit_offset acpi_generic_address 0 9413 NULL
134262 +disable_so_crypto_hash_update_fndecl_9415 crypto_hash_update fndecl 0-3 9415 NULL
134263 +disable_so_ftdi_2232h_baud_to_divisor_fndecl_9425 ftdi_2232h_baud_to_divisor fndecl 0-1 9425 NULL
134264 +disable_so_blk_post_runtime_resume_fndecl_9432 blk_post_runtime_resume fndecl 2 9432 NULL
134265 +disable_so_parent_btrfs_delayed_data_ref_9437 parent btrfs_delayed_data_ref 0 9437 NULL nohasharray
134266 +disable_so_netxen_get_interrupt_mode_fndecl_9437 netxen_get_interrupt_mode fndecl 0 9437 &disable_so_parent_btrfs_delayed_data_ref_9437
134267 +disable_so_entry_attr_timeout_fndecl_9441 entry_attr_timeout fndecl 0 9441 NULL
134268 +disable_so_wall_time_snsec_vsyscall_gtod_data_9445 wall_time_snsec vsyscall_gtod_data 0 9445 NULL
134269 +disable_so_atm_get_addr_fndecl_9446 atm_get_addr fndecl 3 9446 NULL
134270 +disable_so_address_efx_farch_register_test_9448 address efx_farch_register_test 0 9448 NULL
134271 +disable_so_rx_errors_net_device_stats_9453 rx_errors net_device_stats 0 9453 NULL
134272 +disable_so_crypto_sha1_update_fndecl_9455 crypto_sha1_update fndecl 3 9455 NULL
134273 +disable_so_bm_set_drbd_bitmap_9457 bm_set drbd_bitmap 0 9457 NULL
134274 +disable_so_mb86a16_write_fndecl_9462 mb86a16_write fndecl 3 9462 NULL
134275 +disable_so_cycle_delay_radeon_dpm_fan_9463 cycle_delay radeon_dpm_fan 0 9463 NULL
134276 +disable_so_value_vmx_msr_entry_9464 value vmx_msr_entry 0 9464 NULL
134277 +disable_so_io_bitmap_b_vmcs12_9472 io_bitmap_b vmcs12 0 9472 NULL
134278 +disable_so_brtime_id_seeprom_config_9474 brtime_id seeprom_config 0 9474 NULL
134279 +disable_so_frequency_stv0367ter_state_9481 frequency stv0367ter_state 0 9481 NULL
134280 +disable_so_ccp_aes_cmac_setkey_fndecl_9503 ccp_aes_cmac_setkey fndecl 0-3 9503 NULL
134281 +disable_so_tsc_ratio_vcpu_svm_9506 tsc_ratio vcpu_svm 0 9506 NULL
134282 +disable_so_crypto_cts_setkey_fndecl_9507 crypto_cts_setkey fndecl 0-3 9507 NULL
134283 +disable_so_clock_t_to_compat_clock_t_fndecl_9510 clock_t_to_compat_clock_t fndecl 1-0 9510 NULL
134284 +disable_so_xcan_err_interrupt_fndecl_9511 xcan_err_interrupt fndecl 2 9511 NULL nohasharray
134285 +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
134286 +disable_so_nilfs_btree_check_delete_fndecl_9514 nilfs_btree_check_delete fndecl 0 9514 NULL
134287 +disable_so_debug_dma_sync_single_for_device_fndecl_9517 debug_dma_sync_single_for_device fndecl 3-2 9517 NULL
134288 +disable_so_single_bit_error_correct_fndecl_9520 single_bit_error_correct fndecl 4 9520 NULL
134289 +disable_so_data_busaddr_ips_scb_9530 data_busaddr ips_scb 0 9530 NULL
134290 +disable_so_diversity_delay_dib8000_config_9533 diversity_delay dib8000_config 0 9533 NULL
134291 +disable_so_ems_usb_set_bittiming_fndecl_9537 ems_usb_set_bittiming fndecl 0 9537 NULL
134292 +disable_so_port_update_gid_work_9549 port update_gid_work 0 9549 NULL
134293 +disable_so_cryptomgr_schedule_test_fndecl_9550 cryptomgr_schedule_test fndecl 0 9550 NULL
134294 +disable_so_hpd_eop_gpu_addr_radeon_mec_9554 hpd_eop_gpu_addr radeon_mec 0 9554 NULL
134295 +disable_so_cluster_slot_bitmap_9571 cluster_slot bitmap 0 9571 NULL
134296 +disable_so_address_space_cmos_rtc_board_info_9586 address_space cmos_rtc_board_info 0 9586 NULL
134297 +disable_so_regcache_rbtree_set_register_fndecl_9588 regcache_rbtree_set_register fndecl 3-4 9588 NULL
134298 +disable_so_gen8_xcs_signal_fndecl_9591 gen8_xcs_signal fndecl 0-2 9591 NULL
134299 +disable_so_time_stamp_il_tx_queue_9592 time_stamp il_tx_queue 0 9592 NULL
134300 +disable_so_first_dev_address_fndecl_9599 first_dev_address fndecl 0-1 9599 NULL
134301 +disable_so_lpfc_max_scsicmpl_time_show_fndecl_9604 lpfc_max_scsicmpl_time_show fndecl 0 9604 NULL
134302 +disable_so_efx_ef10_get_sysclk_freq_fndecl_9605 efx_ef10_get_sysclk_freq fndecl 0 9605 NULL
134303 +disable_so_utime_signal_struct_9619 utime signal_struct 0 9619 NULL nohasharray
134304 +disable_so_connected_time_station_info_9619 connected_time station_info 0 9619 &disable_so_utime_signal_struct_9619
134305 +disable_so_elapsed_time_f2fs_checkpoint_9631 elapsed_time f2fs_checkpoint 0 9631 NULL
134306 +disable_so_read_addr_qla8044_minidump_entry_pollrd_9634 read_addr qla8044_minidump_entry_pollrd 0 9634 NULL
134307 +disable_so_time_stamp_sec_TAG_TW_Event_9639 time_stamp_sec TAG_TW_Event 0 9639 NULL
134308 +disable_so_blk_pre_runtime_suspend_fndecl_9640 blk_pre_runtime_suspend fndecl 0 9640 NULL
134309 +disable_so_ds_divider_index_sumo_pl_9644 ds_divider_index sumo_pl 0 9644 NULL
134310 +disable_so_out_of_line_wait_on_bit_timeout_fndecl_9648 out_of_line_wait_on_bit_timeout fndecl 5-0 9648 NULL
134311 +disable_so_sys_getuid16_fndecl_9653 sys_getuid16 fndecl 0 9653 NULL
134312 +disable_so_smc_interrupt_fndecl_9659 smc_interrupt fndecl 1 9659 NULL
134313 +disable_so_pld_clock_kempld_device_data_9670 pld_clock kempld_device_data 0 9670 NULL
134314 +disable_so_hello_time_show_fndecl_9675 hello_time_show fndecl 0 9675 NULL
134315 +disable_so_paddr_tsq_info_9680 paddr tsq_info 0 9680 NULL
134316 +disable_so_fifo_addr_fwnet_packet_task_9682 fifo_addr fwnet_packet_task 0 9682 NULL
134317 +disable_so_uaddr_ivtv_dma_page_info_9683 uaddr ivtv_dma_page_info 0 9683 NULL
134318 +disable_so_lp872x_regulator_enable_time_fndecl_9684 lp872x_regulator_enable_time fndecl 0 9684 NULL
134319 +disable_so_r67_val_fc2580_freq_regs_9685 r67_val fc2580_freq_regs 0 9685 NULL
134320 +disable_so_mclk_freq_rj54n1_pdata_9727 mclk_freq rj54n1_pdata 0 9727 NULL
134321 +disable_so_qdelay_pie_vars_9735 qdelay pie_vars 0 9735 NULL
134322 +disable_so_uncore_msr_fixed_ctl_fndecl_9740 uncore_msr_fixed_ctl fndecl 0 9740 NULL
134323 +disable_so_ifa_preferred_lft_in_ifaddr_9744 ifa_preferred_lft in_ifaddr 0 9744 NULL
134324 +disable_so_cpuid_device_create_fndecl_9746 cpuid_device_create fndecl 1 9746 NULL
134325 +disable_so_musb_write_rxhubaddr_fndecl_9750 musb_write_rxhubaddr fndecl 2-3 9750 NULL
134326 +disable_so_moddelay_soundfont_voice_parm_9752 moddelay soundfont_voice_parm 0 9752 NULL
134327 +disable_so_uwb_rc_mac_addr_setup_fndecl_9754 uwb_rc_mac_addr_setup fndecl 0 9754 NULL
134328 +disable_so_kv_convert_2bit_index_to_voltage_fndecl_9759 kv_convert_2bit_index_to_voltage fndecl 0-2 9759 NULL
134329 +disable_so_timeout_interval_bau_control_9762 timeout_interval bau_control 0 9762 NULL
134330 +disable_so_acpi_ut_check_address_range_fndecl_9782 acpi_ut_check_address_range fndecl 1-2-3 9782 NULL
134331 +disable_so_signal_rtl8187_priv_9785 signal rtl8187_priv 0 9785 NULL
134332 +disable_so_usb__coeff_div_9793 usb _coeff_div 0 9793 NULL
134333 +disable_so_dspaddr_offset_intel_crtc_9795 dspaddr_offset intel_crtc 0 9795 NULL
134334 +disable_so_demod_address_mt352_config_9806 demod_address mt352_config 0 9806 NULL
134335 +disable_so_ntfs_bitmap_set_bits_in_run_fndecl_9807 ntfs_bitmap_set_bits_in_run fndecl 2-3 9807 NULL
134336 +disable_so_vaddr_ioctl_gntdev_get_offset_for_vaddr_9810 vaddr ioctl_gntdev_get_offset_for_vaddr 0 9810 NULL
134337 +disable_so_mtime_fuse_setattr_in_9811 mtime fuse_setattr_in 0 9811 NULL nohasharray
134338 +disable_so_r10_pt_regs_9811 r10 pt_regs 0 9811 &disable_so_mtime_fuse_setattr_in_9811
134339 +disable_so_ath6kl_wmi_bmisstime_cmd_fndecl_9818 ath6kl_wmi_bmisstime_cmd fndecl 2-0 9818 NULL
134340 +disable_so_addr_lp55xx_reg_9819 addr lp55xx_reg 0 9819 NULL
134341 +disable_so_rq_pbl_addr_hi_fcoe_kwqe_conn_offload1_9838 rq_pbl_addr_hi fcoe_kwqe_conn_offload1 0 9838 NULL
134342 +disable_so___bitmap_shift_right_fndecl_9852 __bitmap_shift_right fndecl 3-4 9852 NULL
134343 +disable_so_set_ramp_delay_regulator_ops_9853 set_ramp_delay regulator_ops 0 9853 NULL
134344 +disable_so_delay_qla8044_reset_entry_hdr_9861 delay qla8044_reset_entry_hdr 0 9861 NULL
134345 +disable_so_dn_nl_dump_ifaddr_fndecl_9864 dn_nl_dump_ifaddr fndecl 0 9864 NULL
134346 +disable_so_cryptd_blkcipher_decrypt_enqueue_fndecl_9865 cryptd_blkcipher_decrypt_enqueue fndecl 0 9865 NULL
134347 +disable_so_dma_addr_vnic_rq_buf_9867 dma_addr vnic_rq_buf 0 9867 NULL
134348 +disable_so_atomic_pte_lookup_fndecl_9877 atomic_pte_lookup fndecl 2 9877 NULL
134349 +disable_so_init_freq_pt3_adap_config_9886 init_freq pt3_adap_config 0 9886 NULL nohasharray
134350 +disable_so_tq_can_bittiming_9886 tq can_bittiming 0 9886 &disable_so_init_freq_pt3_adap_config_9886
134351 +disable_so_base_addr_tg3_firmware_hdr_9887 base_addr tg3_firmware_hdr 0 9887 NULL
134352 +disable_so_execaddr_object_info_9888 execaddr object_info 0 9888 NULL
134353 +disable_so_freq_r3A_value_fndecl_9891 freq_r3A_value fndecl 0-1 9891 NULL
134354 +disable_so_xfs_btree_shift_ptrs_fndecl_9894 xfs_btree_shift_ptrs fndecl 4 9894 NULL
134355 +disable_so_rsp_producer_index_phy_addr_low_ql3_adapter_9895 rsp_producer_index_phy_addr_low ql3_adapter 0 9895 NULL
134356 +disable_so_n_voltages_regulator_desc_9911 n_voltages regulator_desc 0 9911 NULL
134357 +disable_so_reset_gid_table_fndecl_9912 reset_gid_table fndecl 2 9912 NULL
134358 +disable_so_dentist_vco_freq_trinity_sys_info_9922 dentist_vco_freq trinity_sys_info 0 9922 NULL
134359 +disable_so_mactime_linux_wlan_ng_cap_hdr_9926 mactime linux_wlan_ng_cap_hdr 0 9926 NULL nohasharray
134360 +disable_so_address_hi_ht_irq_msg_9926 address_hi ht_irq_msg 0 9926 &disable_so_mactime_linux_wlan_ng_cap_hdr_9926
134361 +disable_so_mdac_aic31xx_rate_divs_9931 mdac aic31xx_rate_divs 0 9931 NULL
134362 +disable_so_si2168_sleep_fndecl_9938 si2168_sleep fndecl 0 9938 NULL
134363 +disable_so_spp_assoc_id_sctp_paddrparams_9958 spp_assoc_id sctp_paddrparams 0 9958 NULL
134364 +disable_so_skcipher_wait_for_data_fndecl_9959 skcipher_wait_for_data fndecl 0 9959 NULL
134365 +disable_so_c_delay_target_disk_conf_9960 c_delay_target disk_conf 0 9960 NULL
134366 +disable_so_p1div_pmu1_plltab_entry_9962 p1div pmu1_plltab_entry 0 9962 NULL
134367 +disable_so_extract_clock_fndecl_9973 extract_clock fndecl 1-2-0 9973 NULL
134368 +disable_so_addr_hi_rx_desc_9978 addr_hi rx_desc 0 9978 NULL
134369 +disable_so_sin_family_sockaddr_in_9981 sin_family sockaddr_in 0 9981 NULL
134370 +disable_so_ticks_snd_timer_user_9987 ticks snd_timer_user 0 9987 NULL
134371 +disable_so_address_musb_9992 address musb 0 9992 NULL
134372 +disable_so_invalidate_guid_record_fndecl_9996 invalidate_guid_record fndecl 2 9996 NULL
134373 +disable_so_request_daddr_isci_request_10008 request_daddr isci_request 0 10008 NULL
134374 +disable_so_addr_sec_info_di_buf_entry_10016 addr_sec_info di_buf_entry 0 10016 NULL
134375 +disable_so_hash_netportnet4_expire_fndecl_10025 hash_netportnet4_expire fndecl 4 10025 NULL
134376 +disable_so_hid_time_value_fndecl_10028 hid_time_value fndecl 0 10028 NULL
134377 +disable_so_ts_jiffies_uwb_beca_e_10039 ts_jiffies uwb_beca_e 0 10039 NULL
134378 +disable_so_hpi_sample_clock_get_source_fndecl_10048 hpi_sample_clock_get_source fndecl 1-0 10048 NULL
134379 +disable_so_hfsplus_btree_open_fndecl_10055 hfsplus_btree_open fndecl 2 10055 NULL
134380 +disable_so_rx_drain_timeout_msecs_vardecl_10061 rx_drain_timeout_msecs vardecl 0 10061 NULL
134381 +disable_so_start_seq_tcp_sack_block_wire_10072 start_seq tcp_sack_block_wire 0 10072 NULL
134382 +disable_so_sha1_mb_finup_fndecl_10074 sha1_mb_finup fndecl 0 10074 NULL
134383 +disable_so_flow_get_skuid_fndecl_10095 flow_get_skuid fndecl 0 10095 NULL
134384 +disable_so_i_atime_ext4_inode_10096 i_atime ext4_inode 0 10096 NULL
134385 +disable_so_wd_timeout_iwl_txq_10106 wd_timeout iwl_txq 0 10106 NULL
134386 +disable_so_tx_lpi_timer_ethtool_eee_10108 tx_lpi_timer ethtool_eee 0 10108 NULL
134387 +disable_so_cpumask_clear_cpu_fndecl_10109 cpumask_clear_cpu fndecl 1 10109 NULL
134388 +disable_so_apply_time_iwl_hs20_roc_req_10117 apply_time iwl_hs20_roc_req 0 10117 NULL
134389 +disable_so_pos2min_hash_fndecl_10123 pos2min_hash fndecl 0-2 10123 NULL
134390 +disable_so_mode_mask_ath_gen_timer_configuration_10124 mode_mask ath_gen_timer_configuration 0 10124 NULL
134391 +disable_so_del_timer_sync_fndecl_10133 del_timer_sync fndecl 0 10133 NULL
134392 +disable_so_res_toss_time_dlm_rsb_10135 res_toss_time dlm_rsb 0 10135 NULL nohasharray
134393 +disable_so_vblank___fb_timings_10135 vblank __fb_timings 0 10135 &disable_so_res_toss_time_dlm_rsb_10135
134394 +disable_so_phase_seg1_can_bittiming_10141 phase_seg1 can_bittiming 0 10141 NULL
134395 +disable_so_fixed_mtrr_seg_end_range_index_fndecl_10143 fixed_mtrr_seg_end_range_index fndecl 0 10143 NULL
134396 +disable_so_xgene_enet_set_mac_address_fndecl_10148 xgene_enet_set_mac_address fndecl 0 10148 NULL
134397 +disable_so_rtl_rfreg_delay_fndecl_10149 rtl_rfreg_delay fndecl 3-5 10149 NULL
134398 +disable_so_channel_of_freq_fndecl_10152 channel_of_freq fndecl 0-1 10152 NULL nohasharray
134399 +disable_so_gpio_set_value_cansleep_fndecl_10152 gpio_set_value_cansleep fndecl 1-2 10152 &disable_so_channel_of_freq_fndecl_10152
134400 +disable_so_em_sti_clocksource_read_fndecl_10153 em_sti_clocksource_read fndecl 0 10153 NULL
134401 +disable_so_tc90522_sleep_fndecl_10162 tc90522_sleep fndecl 0 10162 NULL
134402 +disable_so_discovery_timeout_mesh_path_10170 discovery_timeout mesh_path 0 10170 NULL
134403 +disable_so_pcf8563_rtc_read_time_fndecl_10175 pcf8563_rtc_read_time fndecl 0 10175 NULL
134404 +disable_so_ixgb_mc_addr_list_update_fndecl_10187 ixgb_mc_addr_list_update fndecl 3 10187 NULL
134405 +disable_so_rng_gen_random_rng_tfm_10199 rng_gen_random rng_tfm 3-0 10199 NULL
134406 +disable_so_db_rec_addr_mlx4_qp_context_10204 db_rec_addr mlx4_qp_context 0 10204 NULL nohasharray
134407 +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
134408 +disable_so_pgid_coda_in_hdr_10212 pgid coda_in_hdr 0 10212 NULL
134409 +disable_so_xfs_btree_get_numrecs_fndecl_10214 xfs_btree_get_numrecs fndecl 0 10214 NULL
134410 +disable_so_txLifetime_ConfigRid_10224 txLifetime ConfigRid 0 10224 NULL
134411 +disable_so_active_time_dce8_wm_params_10231 active_time dce8_wm_params 0 10231 NULL
134412 +disable_so_spi_imx_clkdiv_1_fndecl_10237 spi_imx_clkdiv_1 fndecl 1-2 10237 NULL
134413 +disable_so_vlv_force_gfx_clock_fndecl_10238 vlv_force_gfx_clock fndecl 0 10238 NULL
134414 +disable_so_prism54_get_freq_fndecl_10256 prism54_get_freq fndecl 0 10256 NULL
134415 +disable_so_ath6kl_wmi_disctimeout_cmd_fndecl_10259 ath6kl_wmi_disctimeout_cmd fndecl 2-0 10259 NULL
134416 +disable_so_dma_addr_snd_pcm_runtime_10260 dma_addr snd_pcm_runtime 0 10260 NULL
134417 +disable_so_p7_mt9t112_pll_divider_10261 p7 mt9t112_pll_divider 0 10261 NULL
134418 +disable_so_start_pid_timer_list_10264 start_pid timer_list 0 10264 NULL
134419 +disable_so_gateway_ctrl_address_wil_fw_record_gateway_data_10268 gateway_ctrl_address wil_fw_record_gateway_data 0 10268 NULL
134420 +disable_so_btree_insert128_fndecl_10277 btree_insert128 fndecl 2-3-5 10277 NULL
134421 +disable_so_i_dtime_ext2_inode_info_10287 i_dtime ext2_inode_info 0 10287 NULL
134422 +disable_so_mcryptd_hash_init_fndecl_10290 mcryptd_hash_init fndecl 2 10290 NULL
134423 +disable_so_freq_bfa_diag_ledtest_s_10293 freq bfa_diag_ledtest_s 0 10293 NULL
134424 +disable_so_TSS_sha1_fndecl_10297 TSS_sha1 fndecl 2 10297 NULL
134425 +disable_so_ccp_aes_cmac_init_fndecl_10298 ccp_aes_cmac_init fndecl 0 10298 NULL
134426 +disable_so_fc_fcp_timer_set_fndecl_10312 fc_fcp_timer_set fndecl 2 10312 NULL
134427 +disable_so_blkcipher_walk_next_fndecl_10321 blkcipher_walk_next fndecl 0 10321 NULL
134428 +disable_so_pwm_clock_nvkm_therm_10336 pwm_clock nvkm_therm 2-0 10336 NULL nohasharray
134429 +disable_so_ecryptfs_code_for_cipher_string_fndecl_10336 ecryptfs_code_for_cipher_string fndecl 2 10336 &disable_so_pwm_clock_nvkm_therm_10336
134430 +disable_so_smc_wreg_amdgpu_device_10339 smc_wreg amdgpu_device 2-3 10339 NULL
134431 +disable_so_symlink_hash_fndecl_10341 symlink_hash fndecl 1 10341 NULL
134432 +disable_so_eax_smm_regs_10346 eax smm_regs 0 10346 NULL
134433 +disable_so_sctp_setsockopt_nodelay_fndecl_10349 sctp_setsockopt_nodelay fndecl 0-3 10349 NULL
134434 +disable_so_min_vdisktime_cfq_rb_root_10355 min_vdisktime cfq_rb_root 0 10355 NULL
134435 +disable_so_address_lo_msi_msg_10356 address_lo msi_msg 0 10356 NULL
134436 +disable_so_unmapped_addr_srp_map_state_10359 unmapped_addr srp_map_state 0 10359 NULL
134437 +disable_so_buff_addr_ixgb_tx_desc_10366 buff_addr ixgb_tx_desc 0 10366 NULL
134438 +disable_so_i_ctime_sysv_inode_10368 i_ctime sysv_inode 0 10368 NULL
134439 +disable_so_avg_signal_local_info_10389 avg_signal local_info 0 10389 NULL
134440 +disable_so_sctp_bind_addrs_to_raw_fndecl_10390 sctp_bind_addrs_to_raw fndecl 3 10390 NULL
134441 +disable_so_xfs_btree_reada_bufs_fndecl_10403 xfs_btree_reada_bufs fndecl 2-3-4 10403 NULL
134442 +disable_so_cx_tss_segment_16_10404 cx tss_segment_16 0 10404 NULL
134443 +disable_so_cryptd_hash_update_enqueue_fndecl_10406 cryptd_hash_update_enqueue fndecl 0 10406 NULL
134444 +disable_so_log2sharesize_adfs_discrecord_10408 log2sharesize adfs_discrecord 0 10408 NULL
134445 +disable_so_eqaddr_csio_eq_params_10412 eqaddr csio_eq_params 0 10412 NULL
134446 +disable_so_dad_probes_inet6_ifaddr_10417 dad_probes inet6_ifaddr 0 10417 NULL
134447 +disable_so_ath5k_iowrite32_fndecl_10429 ath5k_iowrite32 fndecl 2 10429 NULL
134448 +disable_so_timeout_proto_10448 timeout proto 0 10448 NULL
134449 +disable_so_recycle_rx_buf_fndecl_10456 recycle_rx_buf fndecl 3 10456 NULL
134450 +disable_so_zero_scatter_daddr_isci_request_10458 zero_scatter_daddr isci_request 0 10458 NULL nohasharray
134451 +disable_so_cryptd_hash_digest_enqueue_fndecl_10458 cryptd_hash_digest_enqueue fndecl 0 10458 &disable_so_zero_scatter_daddr_isci_request_10458
134452 +disable_so_snd_pcm_hw_rule_muldivk_fndecl_10469 snd_pcm_hw_rule_muldivk fndecl 0 10469 NULL
134453 +disable_so_nilfs_btree_assign_fndecl_10473 nilfs_btree_assign fndecl 0-3 10473 NULL
134454 +disable_so_base_addr_ce_space_unaligned_ath10k_ce_ring_10487 base_addr_ce_space_unaligned ath10k_ce_ring 0 10487 NULL
134455 +disable_so_bch_btree_map_leaf_nodes_fndecl_10499 bch_btree_map_leaf_nodes fndecl 0 10499 NULL
134456 +disable_so_periods_snd_pcm_oss_runtime_10500 periods snd_pcm_oss_runtime 0 10500 NULL
134457 +disable_so_uvc_video_clock_decode_fndecl_10502 uvc_video_clock_decode fndecl 4 10502 NULL
134458 +disable_so_t3timer_ax25_info_struct_10512 t3timer ax25_info_struct 0 10512 NULL
134459 +disable_so_sq_page_table_addr_hi_iscsi_kwqe_conn_offload1_10520 sq_page_table_addr_hi iscsi_kwqe_conn_offload1 0 10520 NULL
134460 +disable_so_phys_addr_nx_host_sds_ring_10525 phys_addr nx_host_sds_ring 0 10525 NULL nohasharray
134461 +disable_so_current_pixclock_sis_video_info_10525 current_pixclock sis_video_info 0 10525 &disable_so_phys_addr_nx_host_sds_ring_10525
134462 +disable_so_ccp_aes_crypt_fndecl_10531 ccp_aes_crypt fndecl 0 10531 NULL
134463 +disable_so_clock_speed_MGSL_PARAMS32_10537 clock_speed MGSL_PARAMS32 0 10537 NULL
134464 +disable_so_sense_paddr_gdth_cmndinfo_10539 sense_paddr gdth_cmndinfo 0 10539 NULL
134465 +disable_so_lasttime_batadv_bla_claim_10544 lasttime batadv_bla_claim 0 10544 NULL
134466 +disable_so_tv_sec_timespec_10551 tv_sec timespec 0 10551 NULL
134467 +disable_so_cmb_tx_timer_atl1_hw_10553 cmb_tx_timer atl1_hw 0 10553 NULL nohasharray
134468 +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
134469 +disable_so_xfs_btree_read_buf_block_fndecl_10555 xfs_btree_read_buf_block fndecl 0 10555 NULL
134470 +disable_so_hash_dx_hash_info_10563 hash dx_hash_info 0 10563 NULL
134471 +disable_so_be16_to_cpu_n_fndecl_10566 be16_to_cpu_n fndecl 3 10566 NULL nohasharray
134472 +disable_so_ip_vs_bind_scheduler_fndecl_10566 ip_vs_bind_scheduler fndecl 0 10566 &disable_so_be16_to_cpu_n_fndecl_10566
134473 +disable_so_di_ctime_gfs2_dinode_10570 di_ctime gfs2_dinode 0 10570 NULL
134474 +disable_so_adjust_tsc_offset_kvm_x86_ops_10575 adjust_tsc_offset kvm_x86_ops 2 10575 NULL
134475 +disable_so_num_timeout_request_sock_10577 num_timeout request_sock 0 10577 NULL
134476 +disable_so___const_udelay_fndecl_10578 __const_udelay fndecl 1 10578 NULL
134477 +disable_so_wsm_ba_timeout_indication_fndecl_10580 wsm_ba_timeout_indication fndecl 0 10580 NULL
134478 +disable_so_tsc_connect_fndecl_10581 tsc_connect fndecl 0 10581 NULL
134479 +disable_so_recover_ata_timing_10582 recover ata_timing 0 10582 NULL
134480 +disable_so_addr_sch56xx_watchdog_data_10589 addr sch56xx_watchdog_data 0 10589 NULL
134481 +disable_so_phys_proc_id_cpuinfo_x86_10590 phys_proc_id cpuinfo_x86 0 10590 NULL
134482 +disable_so_gtime_signal_struct_10597 gtime signal_struct 0 10597 NULL
134483 +disable_so_clk_radeon_clock_voltage_dependency_entry_10605 clk radeon_clock_voltage_dependency_entry 0 10605 NULL
134484 +disable_so___oprofile_hrtimer_stop_fndecl_10609 __oprofile_hrtimer_stop fndecl 1 10609 NULL
134485 +disable_so_psched_get_time_fndecl_10619 psched_get_time fndecl 0 10619 NULL
134486 +disable_so_min_sleep_time_f2fs_gc_kthread_10623 min_sleep_time f2fs_gc_kthread 0 10623 NULL
134487 +disable_so_runtime_cfs_bandwidth_10624 runtime cfs_bandwidth 0 10624 NULL
134488 +disable_so_parse_timing_property_fndecl_10626 parse_timing_property fndecl 0 10626 NULL
134489 +disable_so_scan_bitmap_block_fndecl_10627 scan_bitmap_block fndecl 0-2-4-6 10627 NULL
134490 +disable_so_e1000e_pm_runtime_resume_fndecl_10638 e1000e_pm_runtime_resume fndecl 0 10638 NULL
134491 +disable_so_spi_nor_read_dummy_cycles_fndecl_10639 spi_nor_read_dummy_cycles fndecl 0 10639 NULL nohasharray
134492 +disable_so_sha_finish_walk_fndecl_10639 sha_finish_walk fndecl 0 10639 &disable_so_spi_nor_read_dummy_cycles_fndecl_10639
134493 +disable_so_address_gsm_mux_10640 address gsm_mux 0 10640 NULL
134494 +disable_so__rtl92ee_phy_calculate_bit_shift_fndecl_10643 _rtl92ee_phy_calculate_bit_shift fndecl 0-1 10643 NULL
134495 +disable_so_lasttime_batadv_bla_backbone_gw_10651 lasttime batadv_bla_backbone_gw 0 10651 NULL
134496 +disable_so_addr___crb_10654 addr __crb 0 10654 NULL
134497 +disable_so_stv0297_set_tv_freq_fndecl_10665 stv0297_set_tv_freq fndecl 2 10665 NULL
134498 +disable_so_txlo_dma_addr_typhoon_10667 txlo_dma_addr typhoon 0 10667 NULL
134499 +disable_so_ip_vs_dh_hashkey_fndecl_10670 ip_vs_dh_hashkey fndecl 1 10670 NULL
134500 +disable_so_setup_clocks_ufs_hba_variant_ops_10681 setup_clocks ufs_hba_variant_ops 0 10681 NULL
134501 +disable_so_decode_attr_time_access_fndecl_10682 decode_attr_time_access fndecl 0 10682 NULL
134502 +disable_so_pci_back_from_sleep_fndecl_10685 pci_back_from_sleep fndecl 0 10685 NULL
134503 +disable_so_ath9k_hw_init_macaddr_fndecl_10686 ath9k_hw_init_macaddr fndecl 0 10686 NULL nohasharray
134504 +disable_so_dma_buffer_atmel_runtime_data_10686 dma_buffer atmel_runtime_data 0 10686 &disable_so_ath9k_hw_init_macaddr_fndecl_10686
134505 +disable_so_timer_resolution_snd_pcm_runtime_10688 timer_resolution snd_pcm_runtime 0 10688 NULL
134506 +disable_so_snd_pcm_hw_rule_mul_fndecl_10689 snd_pcm_hw_rule_mul fndecl 0 10689 NULL
134507 +disable_so_subdivision_snd_pcm_oss_runtime_10697 subdivision snd_pcm_oss_runtime 0 10697 NULL
134508 +disable_so_split_huge_page_address_fndecl_10699 split_huge_page_address fndecl 2 10699 NULL
134509 +disable_so_bound_dev_if_rdma_dev_addr_10707 bound_dev_if rdma_dev_addr 0 10707 NULL
134510 +disable_so_gyro_3d_adjust_channel_bit_mask_fndecl_10717 gyro_3d_adjust_channel_bit_mask fndecl 3 10717 NULL
134511 +disable_so_ahash_prepare_alg_fndecl_10721 ahash_prepare_alg fndecl 0 10721 NULL
134512 +disable_so_st_mtime_sec_p9_stat_dotl_10725 st_mtime_sec p9_stat_dotl 0 10725 NULL
134513 +disable_so_num_timings_display_timings_10728 num_timings display_timings 0 10728 NULL
134514 +disable_so_clock_rq_10733 clock rq 0 10733 NULL
134515 +disable_so_sys_signalfd_fndecl_10740 sys_signalfd fndecl 0 10740 NULL
134516 +disable_so_last_tick_time_esas2r_adapter_10742 last_tick_time esas2r_adapter 0 10742 NULL
134517 +disable_so_low_addr_msgbuf_buf_addr_10746 low_addr msgbuf_buf_addr 0 10746 NULL
134518 +disable_so_mlx4_ib_invalidate_all_guid_record_fndecl_10755 mlx4_ib_invalidate_all_guid_record fndecl 2 10755 NULL
134519 +disable_so_crypto_gcm_verify_fndecl_10762 crypto_gcm_verify fndecl 0 10762 NULL
134520 +disable_so_devt_from_partuuid_fndecl_10763 devt_from_partuuid fndecl 0 10763 NULL nohasharray
134521 +disable_so_demod_address_or51132_config_10763 demod_address or51132_config 0 10763 &disable_so_devt_from_partuuid_fndecl_10763
134522 +disable_so_rv770_program_interrupt_vectors_fndecl_10768 rv770_program_interrupt_vectors fndecl 0 10768 NULL
134523 +disable_so_i915_mutex_lock_interruptible_fndecl_10777 i915_mutex_lock_interruptible fndecl 0 10777 NULL
134524 +disable_so_addr_il3945_tfd_tb_10790 addr il3945_tfd_tb 0 10790 NULL
134525 +disable_so_pr_gid_elf_prpsinfo_10803 pr_gid elf_prpsinfo 0 10803 NULL
134526 +disable_so_ism2_runtime_sc_10805 ism2 runtime_sc 0 10805 NULL
134527 +disable_so_sumo_get_sleep_divider_id_from_clock_fndecl_10823 sumo_get_sleep_divider_id_from_clock fndecl 2-0 10823 NULL nohasharray
134528 +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
134529 +disable_so__mv88e6xxx_reg_write_fndecl_10825 _mv88e6xxx_reg_write fndecl 0-2-3-4 10825 NULL
134530 +disable_so_flush_timeout_ath_chanctx_10828 flush_timeout ath_chanctx 0 10828 NULL nohasharray
134531 +disable_so_rxaddr_starfire_rx_desc_10828 rxaddr starfire_rx_desc 0 10828 &disable_so_flush_timeout_ath_chanctx_10828 nohasharray
134532 +disable_so_nla_get_u64_fndecl_10828 nla_get_u64 fndecl 0 10828 &disable_so_rxaddr_starfire_rx_desc_10828
134533 +disable_so_r600_get_gpu_clock_counter_fndecl_10836 r600_get_gpu_clock_counter fndecl 0 10836 NULL
134534 +disable_so_sys_timer_settime_fndecl_10837 sys_timer_settime fndecl 1 10837 NULL
134535 +disable_so_cmp_next_hrtimer_event_fndecl_10846 cmp_next_hrtimer_event fndecl 0-1-2 10846 NULL
134536 +disable_so_ac97_clock_via82xx_10850 ac97_clock via82xx 0 10850 NULL
134537 +disable_so_ageing_timer_value___fdb_entry_10853 ageing_timer_value __fdb_entry 0 10853 NULL
134538 +disable_so_dv_timings_cap_v4l2_subdev_pad_ops_10860 dv_timings_cap v4l2_subdev_pad_ops 0 10860 NULL
134539 +disable_so_cpufreq_get_global_kobject_fndecl_10881 cpufreq_get_global_kobject fndecl 0 10881 NULL
134540 +disable_so_freq_ath5k_rate_pcal_info_10883 freq ath5k_rate_pcal_info 0 10883 NULL
134541 +disable_so_shm_ctime_shmid64_ds_10884 shm_ctime shmid64_ds 0 10884 NULL nohasharray
134542 +disable_so_mt2050_set_if_freq_fndecl_10884 mt2050_set_if_freq fndecl 2 10884 &disable_so_shm_ctime_shmid64_ds_10884
134543 +disable_so_d_itimer_xfs_disk_dquot_10893 d_itimer xfs_disk_dquot 0 10893 NULL nohasharray
134544 +disable_so_saddr_irda_sock_10893 saddr irda_sock 0 10893 &disable_so_d_itimer_xfs_disk_dquot_10893
134545 +disable_so_doorbell_preserve_vardecl_pcc_cpufreq_c_10898 doorbell_preserve vardecl_pcc-cpufreq.c 0 10898 NULL
134546 +disable_so_signal_nr_nvkm_perfdom_10899 signal_nr nvkm_perfdom 0 10899 NULL
134547 +disable_so_cg_spll_func_cntl_2_ni_clock_registers_10900 cg_spll_func_cntl_2 ni_clock_registers 0 10900 NULL
134548 +disable_so_ac_utime_acct_v3_10901 ac_utime acct_v3 0 10901 NULL
134549 +disable_so_mclk_prediv_cs42l56_private_10907 mclk_prediv cs42l56_private 0 10907 NULL
134550 +disable_so_SYSC_mq_timedreceive_fndecl_10921 SYSC_mq_timedreceive fndecl 1-3 10921 NULL
134551 +disable_so_vpm_write_address_fndecl_10930 vpm_write_address fndecl 2 10930 NULL
134552 +disable_so_i_iw_freq_10939 i iw_freq 0 10939 NULL nohasharray
134553 +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
134554 +disable_so_rv3029c2_i2c_read_time_fndecl_10942 rv3029c2_i2c_read_time fndecl 0 10942 NULL nohasharray
134555 +disable_so_txok_interrupt_mask_ath_hw_10942 txok_interrupt_mask ath_hw 0 10942 &disable_so_rv3029c2_i2c_read_time_fndecl_10942
134556 +disable_so_err_time_ip6_tnl_10945 err_time ip6_tnl 0 10945 NULL
134557 +disable_so_free_nodes_hfs_btree_10954 free_nodes hfs_btree 0 10954 NULL
134558 +disable_so_dwell_time_delta_per_probe_conf_sched_scan_settings_10955 dwell_time_delta_per_probe conf_sched_scan_settings 0 10955 NULL
134559 +disable_so_blkcipher_walk_virt_block_fndecl_10958 blkcipher_walk_virt_block fndecl 0-3 10958 NULL
134560 +disable_so_bnx2x_change_mac_addr_fndecl_10964 bnx2x_change_mac_addr fndecl 0 10964 NULL
134561 +disable_so_sh_tmu_clocksource_enable_fndecl_10968 sh_tmu_clocksource_enable fndecl 0 10968 NULL
134562 +disable_so_pdiv_b43_phy_lp_10974 pdiv b43_phy_lp 0 10974 NULL
134563 +disable_so_br2684_mac_addr_fndecl_10977 br2684_mac_addr fndecl 0 10977 NULL
134564 +disable_so___hrtimer_init_fndecl_10979 __hrtimer_init fndecl 2 10979 NULL
134565 +disable_so_cisco_timer_fndecl_10984 cisco_timer fndecl 1 10984 NULL
134566 +disable_so_desc_address_fndecl_10998 desc_address fndecl 2-3 10998 NULL
134567 +disable_so_padlock_sha256_update_nano_fndecl_11008 padlock_sha256_update_nano fndecl 3 11008 NULL
134568 +disable_so_end_addr_gen_pool_chunk_11013 end_addr gen_pool_chunk 0 11013 NULL
134569 +disable_so_bitmap_file_set_bit_fndecl_11015 bitmap_file_set_bit fndecl 2 11015 NULL
134570 +disable_so_em28xx_write_reg_fndecl_11020 em28xx_write_reg fndecl 2-0-3 11020 NULL
134571 +disable_so_ocfs2_info_freefrag_scan_bitmap_fndecl_11032 ocfs2_info_freefrag_scan_bitmap fndecl 0-3 11032 NULL
134572 +disable_so_xen_teardown_timer_fndecl_11036 xen_teardown_timer fndecl 1 11036 NULL
134573 +disable_so_get_physaddr_fm_api_fndecl_11037 get_physaddr_fm_api fndecl 0 11037 NULL
134574 +disable_so_nfs_direct_read_schedule_iovec_fndecl_11039 nfs_direct_read_schedule_iovec fndecl 0-3 11039 NULL
134575 +disable_so_ocfs2_group_bitmap_size_fndecl_11043 ocfs2_group_bitmap_size fndecl 0 11043 NULL
134576 +disable_so_hsw_pcm_runtime_suspend_fndecl_11046 hsw_pcm_runtime_suspend fndecl 0 11046 NULL
134577 +disable_so_bi_start_gfs2_bitmap_11049 bi_start gfs2_bitmap 0 11049 NULL
134578 +disable_so_src_addr_hi_dmae_command_11052 src_addr_hi dmae_command 0 11052 NULL
134579 +disable_so_lsb_bna_dma_addr_11059 lsb bna_dma_addr 0 11059 NULL
134580 +disable_so_cb_s5p_jpeg_addr_11062 cb s5p_jpeg_addr 0 11062 NULL
134581 +disable_so_plink_timeout_sta_info_11094 plink_timeout sta_info 0 11094 NULL
134582 +disable_so_crypto_blkcipher_set_iv_fndecl_11098 crypto_blkcipher_set_iv fndecl 3 11098 NULL
134583 +disable_so_custom_divisor_mxser_port_11109 custom_divisor mxser_port 0 11109 NULL
134584 +disable_so_raw_cell_paddr_idt77252_dev_11112 raw_cell_paddr idt77252_dev 0 11112 NULL
134585 +disable_so_acpi_lpss_runtime_suspend_fndecl_11116 acpi_lpss_runtime_suspend fndecl 0 11116 NULL nohasharray
134586 +disable_so_addr_creg_cmd_11116 addr creg_cmd 0 11116 &disable_so_acpi_lpss_runtime_suspend_fndecl_11116
134587 +disable_so_dev_type_rdma_dev_addr_11123 dev_type rdma_dev_addr 0 11123 NULL
134588 +disable_so_signal_hermes_rx_descriptor_11147 signal hermes_rx_descriptor 0 11147 NULL
134589 +disable_so_phys_addr_nx_host_rds_ring_11168 phys_addr nx_host_rds_ring 0 11168 NULL
134590 +disable_so_addr1_de_desc_11170 addr1 de_desc 0 11170 NULL nohasharray
134591 +disable_so_ci_populate_mc_reg_addresses_fndecl_11170 ci_populate_mc_reg_addresses fndecl 0 11170 &disable_so_addr1_de_desc_11170
134592 +disable_so_addr__ioeventfd_11180 addr _ioeventfd 0 11180 NULL
134593 +disable_so_vx_change_frequency_fndecl_11184 vx_change_frequency fndecl 0 11184 NULL
134594 +disable_so_unbind_from_irq_fndecl_11196 unbind_from_irq fndecl 1 11196 NULL
134595 +disable_so_wext_cipher2level_fndecl_11197 wext_cipher2level fndecl 1 11197 NULL
134596 +disable_so_demod_address_cx24117_priv_11199 demod_address cx24117_priv 0 11199 NULL
134597 +disable_so_local_pkt_addr_dle_11206 local_pkt_addr dle 0 11206 NULL
134598 +disable_so_timewarn_cs_write_fndecl_11208 timewarn_cs_write fndecl 3-0 11208 NULL nohasharray
134599 +disable_so_prescale__pll_div_11208 prescale _pll_div 0 11208 &disable_so_timewarn_cs_write_fndecl_11208
134600 +disable_so_i2400m_read_mac_addr_fndecl_11209 i2400m_read_mac_addr fndecl 0 11209 NULL
134601 +disable_so__drbd_bm_find_next_zero_fndecl_11228 _drbd_bm_find_next_zero fndecl 0-2 11228 NULL
134602 +disable_so_printfbuf_aac_init_11236 printfbuf aac_init 0 11236 NULL nohasharray
134603 +disable_so_crypto_ablkcipher_ctxsize_fndecl_11236 crypto_ablkcipher_ctxsize fndecl 0 11236 &disable_so_printfbuf_aac_init_11236
134604 +disable_so_k__pll_div_11239 k _pll_div 0 11239 NULL
134605 +disable_so_qdiv_ratio_skl_wrpll_params_11242 qdiv_ratio skl_wrpll_params 0 11242 NULL
134606 +disable_so_dma_addr___vxge_hw_fifo_txdl_priv_11244 dma_addr __vxge_hw_fifo_txdl_priv 0 11244 NULL
134607 +disable_so_urandom_read_fndecl_11245 urandom_read fndecl 0-3 11245 NULL
134608 +disable_so_crypto_notify_fndecl_11249 crypto_notify fndecl 1 11249 NULL
134609 +disable_so_sd_gid_stat_data_v1_11250 sd_gid stat_data_v1 0 11250 NULL
134610 +disable_so_xlog_find_cycle_start_fndecl_11263 xlog_find_cycle_start fndecl 0-3 11263 NULL
134611 +disable_so_unbind_from_irqhandler_fndecl_11274 unbind_from_irqhandler fndecl 1 11274 NULL
134612 +disable_so_ref_divider_panel_info_11279 ref_divider panel_info 0 11279 NULL nohasharray
134613 +disable_so_nfs_wait_bit_killable_fndecl_11279 nfs_wait_bit_killable fndecl 0 11279 &disable_so_ref_divider_panel_info_11279
134614 +disable_so_freq_p54_scan_head_11280 freq p54_scan_head 0 11280 NULL
134615 +disable_so_it_overrun_k_itimer_11284 it_overrun k_itimer 0 11284 NULL
134616 +disable_so_txbd_addr_lo_host_cmd_ds_pcie_details_11288 txbd_addr_lo host_cmd_ds_pcie_details 0 11288 NULL
134617 +disable_so_calc_baud_divisor_fndecl_11290 calc_baud_divisor fndecl 0-1 11290 NULL
134618 +disable_so_hash_net6_expire_fndecl_11296 hash_net6_expire fndecl 4 11296 NULL
134619 +disable_so_ax25_addr_build_fndecl_11299 ax25_addr_build fndecl 0 11299 NULL
134620 +disable_so_vnic_dev_del_addr_fndecl_11303 vnic_dev_del_addr fndecl 0 11303 NULL
134621 +disable_so_wrmsrl_safe_fndecl_11305 wrmsrl_safe fndecl 0-2 11305 NULL
134622 +disable_so_jiffies_last_vardecl_intel_powerclamp_c_11307 jiffies_last vardecl_intel_powerclamp.c 0 11307 NULL
134623 +disable_so_mmc_select_timing_fndecl_11311 mmc_select_timing fndecl 0 11311 NULL
134624 +disable_so_crypto_cbc_encrypt_inplace_fndecl_11315 crypto_cbc_encrypt_inplace fndecl 0 11315 NULL
134625 +disable_so_cma_translate_addr_fndecl_11326 cma_translate_addr fndecl 0 11326 NULL
134626 +disable_so_period_bytes_snd_pcm_oss_runtime_11332 period_bytes snd_pcm_oss_runtime 0 11332 NULL
134627 +disable_so_board_addr_ath6kl_hw_11334 board_addr ath6kl_hw 0 11334 NULL
134628 +disable_so_shash_ahash_mcryptd_digest_fndecl_11335 shash_ahash_mcryptd_digest fndecl 0 11335 NULL
134629 +disable_so_crypto_gcm_encrypt_fndecl_11338 crypto_gcm_encrypt fndecl 0 11338 NULL
134630 +disable_so_btrfs_wq_run_delayed_node_fndecl_11342 btrfs_wq_run_delayed_node fndecl 0 11342 NULL
134631 +disable_so_pch_udc_ep_bit_clr_fndecl_11345 pch_udc_ep_bit_clr fndecl 3 11345 NULL
134632 +disable_so_bin_uuid_fndecl_11348 bin_uuid fndecl 3-0 11348 NULL
134633 +disable_so_offset_to_bitmap_fndecl_11359 offset_to_bitmap fndecl 0-2 11359 NULL
134634 +disable_so_default_tv_freq_vardecl_pvrusb2_hdw_c_11362 default_tv_freq vardecl_pvrusb2-hdw.c 0 11362 NULL
134635 +disable_so_SiS_SetReg_fndecl_11366 SiS_SetReg fndecl 1-3 11366 NULL
134636 +disable_so_sec_btrfs_ioctl_timespec_11375 sec btrfs_ioctl_timespec 0 11375 NULL
134637 +disable_so_dn_nl_newaddr_fndecl_11380 dn_nl_newaddr fndecl 0 11380 NULL
134638 +disable_so_DAC1064_calcclock_fndecl_11385 DAC1064_calcclock fndecl 1-2 11385 NULL
134639 +disable_so_trinity_set_divider_value_fndecl_11387 trinity_set_divider_value fndecl 3 11387 NULL
134640 +disable_so_ac_utime_taskstats_11391 ac_utime taskstats 0 11391 NULL nohasharray
134641 +disable_so_zd_iowrite32_locked_fndecl_11391 zd_iowrite32_locked fndecl 0-2 11391 &disable_so_ac_utime_taskstats_11391
134642 +disable_so_crypto_rfc4309_setkey_fndecl_11398 crypto_rfc4309_setkey fndecl 0-3 11398 NULL
134643 +disable_so_lvb_igid_ocfs2_meta_lvb_11400 lvb_igid ocfs2_meta_lvb 0 11400 NULL nohasharray
134644 +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
134645 +disable_so_si_pmu_fast_pwrup_delay_fndecl_11409 si_pmu_fast_pwrup_delay fndecl 0 11409 NULL
134646 +disable_so_tps6586x_rtc_read_time_fndecl_11415 tps6586x_rtc_read_time fndecl 0 11415 NULL
134647 +disable_so_hash_rem_ccp_sha_req_ctx_11427 hash_rem ccp_sha_req_ctx 0 11427 NULL
134648 +disable_so_phys_addr_udc_11429 phys_addr udc 0 11429 NULL
134649 +disable_so_center_freq2_cfg80211_chan_def_11433 center_freq2 cfg80211_chan_def 0 11433 NULL
134650 +disable_so_lock_btree_op_11443 lock btree_op 0 11443 NULL
134651 +disable_so_freq_mt7601u_freq_cal_11461 freq mt7601u_freq_cal 0 11461 NULL
134652 +disable_so_pm860x_reg_write_fndecl_11462 pm860x_reg_write fndecl 0-2-3 11462 NULL
134653 +disable_so_crypto_hash_walk_first_fndecl_11464 crypto_hash_walk_first fndecl 0 11464 NULL
134654 +disable_so_mlx4_ib_init_alias_guid_work_fndecl_11465 mlx4_ib_init_alias_guid_work fndecl 2 11465 NULL
134655 +disable_so_uid_fuse_attr_11471 uid fuse_attr 0 11471 NULL nohasharray
134656 +disable_so_l2addrsize_fndecl_11471 l2addrsize fndecl 0 11471 &disable_so_uid_fuse_attr_11471
134657 +disable_so_snprintf_fndecl_11478 snprintf fndecl 0-2 11478 NULL
134658 +disable_so_ath9k_hw_set_ack_timeout_fndecl_11491 ath9k_hw_set_ack_timeout fndecl 2 11491 NULL
134659 +disable_so_eq_delay_to_mult_fndecl_11493 eq_delay_to_mult fndecl 0-1 11493 NULL
134660 +disable_so_bit_length_acpi_object_field_common_11503 bit_length acpi_object_field_common 0 11503 NULL
134661 +disable_so_di_mtime_qnx6_inode_entry_11506 di_mtime qnx6_inode_entry 0 11506 NULL
134662 +disable_so_prism54_set_freq_fndecl_11509 prism54_set_freq fndecl 0 11509 NULL
134663 +disable_so_resp_bd_list_addr_lo_bnx2i_text_request_11511 resp_bd_list_addr_lo bnx2i_text_request 0 11511 NULL
134664 +disable_so_gid_ipc64_perm_11519 gid ipc64_perm 0 11519 NULL
134665 +disable_so_offset_delta_bnx2x_func_set_timesync_params_11542 offset_delta bnx2x_func_set_timesync_params 0 11542 NULL
134666 +disable_so_local_clock_us_fndecl_11549 local_clock_us fndecl 0 11549 NULL
134667 +disable_so_seq_tnl_ptk_info_11554 seq tnl_ptk_info 0 11554 NULL
134668 +disable_so_carl9170_set_freq_cal_data_fndecl_11578 carl9170_set_freq_cal_data fndecl 0 11578 NULL
134669 +disable_so_pmcraid_enable_interrupts_fndecl_11580 pmcraid_enable_interrupts fndecl 2 11580 NULL nohasharray
134670 +disable_so_get_free_region_mtrr_ops_11580 get_free_region mtrr_ops 1-2 11580 &disable_so_pmcraid_enable_interrupts_fndecl_11580
134671 +disable_so_mclkdiv2_cs42l52_clk_para_11588 mclkdiv2 cs42l52_clk_para 0 11588 NULL
134672 +disable_so_secid_netlbl_unlhsh_addr6_11595 secid netlbl_unlhsh_addr6 0 11595 NULL
134673 +disable_so_opaque_hashval_fndecl_11605 opaque_hashval fndecl 2 11605 NULL
134674 +disable_so_bcma_chipco_watchdog_get_max_timer_fndecl_11606 bcma_chipco_watchdog_get_max_timer fndecl 0 11606 NULL
134675 +disable_so_security_settime_fndecl_11608 security_settime fndecl 0 11608 NULL
134676 +disable_so_hash_tomoyo_path_info_11611 hash tomoyo_path_info 0 11611 NULL
134677 +disable_so_sllc_family_sockaddr_llc_11612 sllc_family sockaddr_llc 0 11612 NULL
134678 +disable_so_get_physaddr_from_sgc_fndecl_11613 get_physaddr_from_sgc fndecl 0 11613 NULL
134679 +disable_so_compat_sock_get_timestampns_fndecl_11614 compat_sock_get_timestampns fndecl 0 11614 NULL
134680 +disable_so_div2_pll_div_11630 div2 pll_div 0 11630 NULL
134681 +disable_so_dot_gma_clock_t_11632 dot gma_clock_t 0 11632 NULL
134682 +disable_so_addr_smsc47b397_data_11633 addr smsc47b397_data 0 11633 NULL nohasharray
134683 +disable_so_cpufreq_power2state_fndecl_11633 cpufreq_power2state fndecl 3 11633 &disable_so_addr_smsc47b397_data_11633 nohasharray
134684 +disable_so_cia_setkey_cipher_alg_11633 cia_setkey cipher_alg 0-3 11633 &disable_so_cpufreq_power2state_fndecl_11633
134685 +disable_so_log2P_nvkm_pll_vals_11639 log2P nvkm_pll_vals 0 11639 NULL
134686 +disable_so_timeout_tipc_subscription_11656 timeout tipc_subscription 0 11656 NULL
134687 +disable_so_sem_addr_mm_dma_desc_11658 sem_addr mm_dma_desc 0 11658 NULL
134688 +disable_so_adis16334_get_freq_fndecl_11667 adis16334_get_freq fndecl 0 11667 NULL
134689 +disable_so_register_address_dif_settings_11668 register_address dif_settings 0 11668 NULL
134690 +disable_so_cpufreq_p4_get_frequency_fndecl_11672 cpufreq_p4_get_frequency fndecl 0 11672 NULL
134691 +disable_so_sysctl_tcp_keepalive_time_vardecl_11678 sysctl_tcp_keepalive_time vardecl 0 11678 NULL nohasharray
134692 +disable_so_paddr_rsq_info_11678 paddr rsq_info 0 11678 &disable_so_sysctl_tcp_keepalive_time_vardecl_11678
134693 +disable_so_gc_timer_show_fndecl_11691 gc_timer_show fndecl 0 11691 NULL
134694 +disable_so_udp6_portaddr_hash_fndecl_11698 udp6_portaddr_hash fndecl 0-3 11698 NULL
134695 +disable_so_ablkcipher_walk_done_fndecl_11708 ablkcipher_walk_done fndecl 0-3 11708 NULL
134696 +disable_so_ahci_exec_polled_cmd_fndecl_11713 ahci_exec_polled_cmd fndecl 6-2-5 11713 NULL
134697 +disable_so_fb_addr_drm_via_dmablit_11717 fb_addr drm_via_dmablit 0 11717 NULL
134698 +disable_so_pci_bus_cx23885_dev_11720 pci_bus cx23885_dev 0 11720 NULL
134699 +disable_so_spacing_v4l2_hw_freq_seek_11726 spacing v4l2_hw_freq_seek 0 11726 NULL
134700 +disable_so_ncp_obtain_mtime_fndecl_11732 ncp_obtain_mtime fndecl 0 11732 NULL
134701 +disable_so_timer_index_at_state_t_11751 timer_index at_state_t 0 11751 NULL nohasharray
134702 +disable_so_sctp_copy_laddrs_fndecl_11751 sctp_copy_laddrs fndecl 2-4 11751 &disable_so_timer_index_at_state_t_11751
134703 +disable_so_max_freq_omap_hsmmc_platform_data_11755 max_freq omap_hsmmc_platform_data 0 11755 NULL nohasharray
134704 +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
134705 +disable_so_iio_interrupt_trigger_driver_init_fndecl_11758 iio_interrupt_trigger_driver_init fndecl 0 11758 NULL nohasharray
134706 +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
134707 +disable_so_ps_upsd_timeouts_read_fndecl_11759 ps_upsd_timeouts_read fndecl 3-0 11759 NULL nohasharray
134708 +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
134709 +disable_so_nm_uid_nl_mmap_hdr_11761 nm_uid nl_mmap_hdr 0 11761 NULL
134710 +disable_so_s_wtime_ext3_super_block_11765 s_wtime ext3_super_block 0 11765 NULL
134711 +disable_so_gr_fhash_fndecl_11768 gr_fhash fndecl 1-2 11768 NULL
134712 +disable_so_orig_ax_pt_regs_11775 orig_ax pt_regs 0 11775 NULL
134713 +disable_so_validate_scan_freqs_fndecl_11781 validate_scan_freqs fndecl 0 11781 NULL
134714 +disable_so_sbq_addr_cqicb_11782 sbq_addr cqicb 0 11782 NULL nohasharray
134715 +disable_so_irq_i2c_client_11782 irq i2c_client 0 11782 &disable_so_sbq_addr_cqicb_11782
134716 +disable_so_ip_addr_rocker_neigh_tbl_entry_11785 ip_addr rocker_neigh_tbl_entry 0 11785 NULL
134717 +disable_so_timestamp_mwifiex_bssdescriptor_11788 timestamp mwifiex_bssdescriptor 0 11788 NULL
134718 +disable_so_bg_block_bitmap_ext3_group_desc_11791 bg_block_bitmap ext3_group_desc 0 11791 NULL
134719 +disable_so_crystal_freq_saa711x_state_11797 crystal_freq saa711x_state 0 11797 NULL
134720 +disable_so_dqb_itime_mem_dqblk_11799 dqb_itime mem_dqblk 0 11799 NULL nohasharray
134721 +disable_so_get_journal_hash_dev_fndecl_11799 get_journal_hash_dev fndecl 3 11799 &disable_so_dqb_itime_mem_dqblk_11799
134722 +disable_so_addr_domain_fndecl_11807 addr_domain fndecl 2 11807 NULL
134723 +disable_so_get_time_window_fndecl_11808 get_time_window fndecl 0 11808 NULL
134724 +disable_so_chargetime_isdn_net_local_s_11812 chargetime isdn_net_local_s 0 11812 NULL
134725 +disable_so_sched_clock_local_fndecl_11817 sched_clock_local fndecl 0 11817 NULL
134726 +disable_so_address_ehci_iso_stream_11822 address ehci_iso_stream 0 11822 NULL
134727 +disable_so_simple_strtoul_fndecl_11835 simple_strtoul fndecl 0 11835 NULL
134728 +disable_so_i9xx_get_aux_clock_divider_fndecl_11841 i9xx_get_aux_clock_divider fndecl 0 11841 NULL
134729 +disable_so_emulator_set_msr_fndecl_11853 emulator_set_msr fndecl 3 11853 NULL
134730 +disable_so_sst_module_runtime_alloc_blocks_fndecl_11854 sst_module_runtime_alloc_blocks fndecl 2-0 11854 NULL
134731 +disable_so_msr_sum_desc_11862 msr sum_desc 0 11862 NULL
134732 +disable_so_rs780_set_engine_clock_scaling_fndecl_11864 rs780_set_engine_clock_scaling fndecl 0 11864 NULL
134733 +disable_so_write_file_regidx_fndecl_11870 write_file_regidx fndecl 3 11870 NULL
134734 +disable_so_task_sched_runtime_fndecl_11884 task_sched_runtime fndecl 0 11884 NULL
134735 +disable_so_hash_dst_fndecl_11898 hash_dst fndecl 0 11898 NULL
134736 +disable_so_xtal_cap10p_r820t_freq_range_11904 xtal_cap10p r820t_freq_range 0 11904 NULL
134737 +disable_so_ath6kl_cfg80211_deepsleep_resume_fndecl_11915 ath6kl_cfg80211_deepsleep_resume fndecl 0 11915 NULL
134738 +disable_so_count_qce_sha_reqctx_11921 count qce_sha_reqctx 0 11921 NULL
134739 +disable_so_hashlimit_mt_init_fndecl_11925 hashlimit_mt_init fndecl 0 11925 NULL
134740 +disable_so_time_remaining_msec_TAG_TW_Lock_11931 time_remaining_msec TAG_TW_Lock 0 11931 NULL
134741 +disable_so_extcpu_mce_11945 extcpu mce 0 11945 NULL
134742 +disable_so_hci_bdaddr_list_add_fndecl_11954 hci_bdaddr_list_add fndecl 0 11954 NULL
134743 +disable_so_task_list_pbl_addr_hi_fcoe_kwqe_init1_11965 task_list_pbl_addr_hi fcoe_kwqe_init1 0 11965 NULL
134744 +disable_so_time_blocked_kvm_spinlock_stats_11970 time_blocked kvm_spinlock_stats 0 11970 NULL
134745 +disable_so_mapaddr_c2_element_11974 mapaddr c2_element 0 11974 NULL
134746 +disable_so_uwb_rc_mac_addr_show_fndecl_11979 uwb_rc_mac_addr_show fndecl 0 11979 NULL
134747 +disable_so_ccp_run_rsa_cmd_fndecl_11983 ccp_run_rsa_cmd fndecl 0 11983 NULL
134748 +disable_so_cc770_rtr_interrupt_fndecl_11989 cc770_rtr_interrupt fndecl 2 11989 NULL
134749 +disable_so_bitmap_create_fndecl_12000 bitmap_create fndecl 2 12000 NULL
134750 +disable_so_maximum_acpi_address64_attribute_12007 maximum acpi_address64_attribute 0 12007 NULL
134751 +disable_so_i2c_addr_stv090x_internal_12008 i2c_addr stv090x_internal 0 12008 NULL
134752 +disable_so_s_time_ptc_stats_12018 s_time ptc_stats 0 12018 NULL
134753 +disable_so_disc_timeout_hci_conn_12021 disc_timeout hci_conn 0 12021 NULL
134754 +disable_so_proc_dointvec_jiffies_fndecl_12024 proc_dointvec_jiffies fndecl 0 12024 NULL
134755 +disable_so_wm8350_wdt_set_timeout_fndecl_12039 wm8350_wdt_set_timeout fndecl 2-0 12039 NULL
134756 +disable_so_sys_geteuid16_fndecl_12045 sys_geteuid16 fndecl 0 12045 NULL
134757 +disable_so_parse_strtoull_fndecl_12065 parse_strtoull fndecl 0 12065 NULL
134758 +disable_so_bp_index_nilfs_btree_path_12067 bp_index nilfs_btree_path 0 12067 NULL
134759 +disable_so_max_signal_ieee80211_hw_12078 max_signal ieee80211_hw 0 12078 NULL
134760 +disable_so_rx_timeout_vardecl_men_z135_uart_c_12080 rx_timeout vardecl_men_z135_uart.c 0 12080 NULL
134761 +disable_so_sws_timer_config_nes_adapter_12081 sws_timer_config nes_adapter 0 12081 NULL
134762 +disable_so_ic_myaddr_vardecl_12088 ic_myaddr vardecl 0 12088 NULL
134763 +disable_so_bitmap_ord_to_pos_fndecl_12108 bitmap_ord_to_pos fndecl 3-0 12108 NULL
134764 +disable_so_debounce_jiffies_lp8727_chg_12115 debounce_jiffies lp8727_chg 0 12115 NULL
134765 +disable_so_hashval1_2_rx_pkt_hdr1_12125 hashval1_2 rx_pkt_hdr1 0 12125 NULL
134766 +disable_so_acpi_ut_divide_fndecl_12126 acpi_ut_divide fndecl 0-1-2 12126 NULL
134767 +disable_so_irst_store_wakeup_time_fndecl_12127 irst_store_wakeup_time fndecl 0-4 12127 NULL
134768 +disable_so_xfs_bmap_btree_to_extents_fndecl_12130 xfs_bmap_btree_to_extents fndecl 0 12130 NULL
134769 +disable_so_addrconf_notify_fndecl_12132 addrconf_notify fndecl 0 12132 NULL
134770 +disable_so_ath5k_beacon_update_timers_fndecl_12135 ath5k_beacon_update_timers fndecl 2 12135 NULL
134771 +disable_so_pid_pppol2tpv3in6_addr_12136 pid pppol2tpv3in6_addr 0 12136 NULL
134772 +disable_so__abb5zes3_rtc_set_timer_fndecl_12149 _abb5zes3_rtc_set_timer fndecl 0 12149 NULL
134773 +disable_so_remote_ca_guid_ib_cm_req_event_param_12150 remote_ca_guid ib_cm_req_event_param 0 12150 NULL
134774 +disable_so_grcan_reset_timer_fndecl_12158 grcan_reset_timer fndecl 2 12158 NULL
134775 +disable_so_sctp_sockaddr_af_fndecl_12166 sctp_sockaddr_af fndecl 3 12166 NULL
134776 +disable_so_di_ctime_efs_dinode_12170 di_ctime efs_dinode 0 12170 NULL
134777 +disable_so_bitmap_fill_fndecl_12173 bitmap_fill fndecl 2 12173 NULL
134778 +disable_so_clock_mga_i2c_chan_12185 clock mga_i2c_chan 0 12185 NULL
134779 +disable_so_physaddr_pau_fpdu_frag_12193 physaddr pau_fpdu_frag 0 12193 NULL
134780 +disable_so_adm9240_write_fan_div_fndecl_12196 adm9240_write_fan_div fndecl 3-2 12196 NULL
134781 +disable_so_addr_privcmd_mmapbatch_v2_12199 addr privcmd_mmapbatch_v2 0 12199 NULL
134782 +disable_so_start_freq_khz_ieee80211_freq_range_12202 start_freq_khz ieee80211_freq_range 0 12202 NULL nohasharray
134783 +disable_so_total_ablkcipher_walk_12202 total ablkcipher_walk 0 12202 &disable_so_start_freq_khz_ieee80211_freq_range_12202
134784 +disable_so_ktime_us_delta_fndecl_12204 ktime_us_delta fndecl 0 12204 NULL
134785 +disable_so_hmark_addr_mask_fndecl_12206 hmark_addr_mask fndecl 1 12206 NULL
134786 +disable_so_force_addr_vardecl_i2c_viapro_c_12216 force_addr vardecl_i2c-viapro.c 0 12216 NULL nohasharray
134787 +disable_so_next_hash_dir_private_info_12216 next_hash dir_private_info 0 12216 &disable_so_force_addr_vardecl_i2c_viapro_c_12216
134788 +disable_so_i40e_aq_mac_address_write_fndecl_12217 i40e_aq_mac_address_write fndecl 0 12217 NULL
134789 +disable_so_sys_set_tid_address_fndecl_12219 sys_set_tid_address fndecl 0 12219 NULL
134790 +disable_so_ebitmap_contains_fndecl_12231 ebitmap_contains fndecl 3 12231 NULL
134791 +disable_so_bfa_timer_begin_fndecl_12232 bfa_timer_begin fndecl 5 12232 NULL
134792 +disable_so_sst_hsw_dsp_runtime_resume_fndecl_12234 sst_hsw_dsp_runtime_resume fndecl 0 12234 NULL
134793 +disable_so_crypto_rfc4543_encrypt_fndecl_12243 crypto_rfc4543_encrypt fndecl 0 12243 NULL
134794 +disable_so_addr_ib_phys_buf_12245 addr ib_phys_buf 0 12245 NULL
134795 +disable_so_rhashtable_jhash2_fndecl_12249 rhashtable_jhash2 fndecl 0 12249 NULL
134796 +disable_so_highbit_ebitmap_12260 highbit ebitmap 0 12260 NULL
134797 +disable_so_btrfs_run_delayed_items_fndecl_12263 btrfs_run_delayed_items fndecl 0 12263 NULL
134798 +disable_so_security_task_setscheduler_fndecl_12267 security_task_setscheduler fndecl 0 12267 NULL
134799 +disable_so_sense_phys_addr_megasas_cmd_fusion_12272 sense_phys_addr megasas_cmd_fusion 0 12272 NULL
134800 +disable_so_devid_ptp_clock_12277 devid ptp_clock 0 12277 NULL
134801 +disable_so_pwwn_bfa_bsg_rport_scsi_addr_s_12278 pwwn bfa_bsg_rport_scsi_addr_s 0 12278 NULL nohasharray
134802 +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
134803 +disable_so_gid_ncp_mount_data_12282 gid ncp_mount_data 0 12282 NULL
134804 +disable_so_qla2x00_zio_timer_show_fndecl_12290 qla2x00_zio_timer_show fndecl 0 12290 NULL
134805 +disable_so_mlx4_hca_core_clock_update_fndecl_12300 mlx4_hca_core_clock_update fndecl 0 12300 NULL
134806 +disable_so_accel_3d_adjust_channel_bit_mask_fndecl_12308 accel_3d_adjust_channel_bit_mask fndecl 3 12308 NULL
134807 +disable_so_dtt200u_fe_sleep_fndecl_12311 dtt200u_fe_sleep fndecl 0 12311 NULL
134808 +disable_so_asix_read_phy_addr_fndecl_12320 asix_read_phy_addr fndecl 0 12320 NULL
134809 +disable_so_viafb_load_reg_fndecl_12323 viafb_load_reg fndecl 1 12323 NULL nohasharray
134810 +disable_so_bm_bits_drbd_bitmap_12323 bm_bits drbd_bitmap 0 12323 &disable_so_viafb_load_reg_fndecl_12323
134811 +disable_so_ixgbe_write_mc_addr_list_fndecl_12325 ixgbe_write_mc_addr_list fndecl 0 12325 NULL
134812 +disable_so_gid_max_xt_owner_match_info_12332 gid_max xt_owner_match_info 0 12332 NULL
134813 +disable_so_duty_cycle_pwm_device_12334 duty_cycle pwm_device 0 12334 NULL
134814 +disable_so_get_nohz_timer_target_fndecl_12336 get_nohz_timer_target fndecl 0 12336 NULL
134815 +disable_so_pte_encode_i915_address_space_12340 pte_encode i915_address_space 0-1 12340 NULL
134816 +disable_so_mdac_aic32x4_rate_divs_12367 mdac aic32x4_rate_divs 0 12367 NULL
134817 +disable_so_tipc_media_addr_printf_fndecl_12368 tipc_media_addr_printf fndecl 2 12368 NULL
134818 +disable_so_i_atime_ext3_inode_12370 i_atime ext3_inode 0 12370 NULL
134819 +disable_so_bitmap_ip_gc_test_fndecl_12372 bitmap_ip_gc_test fndecl 3 12372 NULL
134820 +disable_so_vlv_gpu_freq_div_fndecl_12377 vlv_gpu_freq_div fndecl 0 12377 NULL nohasharray
134821 +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
134822 +disable_so_schedule_hrtimeout_range_fndecl_12390 schedule_hrtimeout_range fndecl 2 12390 NULL
134823 +disable_so_btrfs_init_delayed_node_fndecl_12401 btrfs_init_delayed_node fndecl 3 12401 NULL
134824 +disable_so_connect_time_stamp_skd_device_12406 connect_time_stamp skd_device 0 12406 NULL
134825 +disable_so_gcm_hash_remain_fndecl_12408 gcm_hash_remain fndecl 0-2 12408 NULL
134826 +disable_so_kasprintf_fndecl_12414 kasprintf fndecl 1 12414 NULL
134827 +disable_so_iTCO_wdt_set_timeout_fndecl_12423 iTCO_wdt_set_timeout fndecl 2 12423 NULL
134828 +disable_so_queue_ixgbe_mac_addr_12436 queue ixgbe_mac_addr 0 12436 NULL
134829 +disable_so_i_atime_extra_ext4_inode_12438 i_atime_extra ext4_inode 0 12438 NULL
134830 +disable_so_bts_interrupt_threshold_debug_store_12439 bts_interrupt_threshold debug_store 0 12439 NULL
134831 +disable_so_erase_delay_vardecl_nandsim_c_12453 erase_delay vardecl_nandsim.c 0 12453 NULL
134832 +disable_so__rx_page_addr_iwl_host_cmd_12457 _rx_page_addr iwl_host_cmd 0 12457 NULL
134833 +disable_so_fandiv1_w83627ehf_data_12459 fandiv1 w83627ehf_data 0 12459 NULL
134834 +disable_so_affs_hash_name_fndecl_12465 affs_hash_name fndecl 0-3 12465 NULL
134835 +disable_so_timeout_tipc_subscr_12467 timeout tipc_subscr 0 12467 NULL
134836 +disable_so_decrypt_msdu_lib80211_crypto_ops_12475 decrypt_msdu lib80211_crypto_ops 3 12475 NULL
134837 +disable_so_ext4_read_block_bitmap_nowait_fndecl_12477 ext4_read_block_bitmap_nowait fndecl 2 12477 NULL
134838 +disable_so_i40e_rx_hash_fndecl_12482 i40e_rx_hash fndecl 0 12482 NULL
134839 +disable_so_padata_set_cpumasks_fndecl_12492 padata_set_cpumasks fndecl 0 12492 NULL
134840 +disable_so_dm_btree_empty_fndecl_12493 dm_btree_empty fndecl 0 12493 NULL
134841 +disable_so_nv_do_interrupt_fndecl_12501 nv_do_interrupt fndecl 2 12501 NULL
134842 +disable_so_max8997_set_voltage_buck_time_sel_fndecl_12503 max8997_set_voltage_buck_time_sel fndecl 0-2-3 12503 NULL
134843 +disable_so_div_factor_fine_fndecl_12505 div_factor_fine fndecl 0-1 12505 NULL
134844 +disable_so_r820t_sysfreq_sel_fndecl_12506 r820t_sysfreq_sel fndecl 0-2 12506 NULL
134845 +disable_so_msleep_xc2028_ctrl_12512 msleep xc2028_ctrl 0 12512 NULL nohasharray
134846 +disable_so_get_maxrecs_xfs_btree_ops_12512 get_maxrecs xfs_btree_ops 0 12512 &disable_so_msleep_xc2028_ctrl_12512
134847 +disable_so_test_rhashtable_fndecl_12513 test_rhashtable fndecl 0 12513 NULL
134848 +disable_so_i2c_address_mt2131_config_12514 i2c_address mt2131_config 0 12514 NULL
134849 +disable_so_rapl_compute_time_window_core_fndecl_12519 rapl_compute_time_window_core fndecl 0-2 12519 NULL
134850 +disable_so_mi1_wr_addr_fndecl_12527 mi1_wr_addr fndecl 0 12527 NULL nohasharray
134851 +disable_so_write_reg_fndecl_12527 write_reg fndecl 1 12527 &disable_so_mi1_wr_addr_fndecl_12527
134852 +disable_so_mce_adjust_timer_default_fndecl_12530 mce_adjust_timer_default fndecl 0-1 12530 NULL
134853 +disable_so_low_bkey_12536 low bkey 0 12536 NULL
134854 +disable_so_arcmsr_alloc_sysfs_attr_fndecl_12547 arcmsr_alloc_sysfs_attr fndecl 0 12547 NULL
134855 +disable_so_data_qxl_bitmap_12551 data qxl_bitmap 0 12551 NULL
134856 +disable_so_imsf_multiaddr_ip_msfilter_12556 imsf_multiaddr ip_msfilter 0 12556 NULL
134857 +disable_so_qa_indx_sdebug_hrtimer_12577 qa_indx sdebug_hrtimer 0 12577 NULL
134858 +disable_so_shash_compat_digest_fndecl_12579 shash_compat_digest fndecl 0-3 12579 NULL
134859 +disable_so_max8998_rtc_set_time_fndecl_12607 max8998_rtc_set_time fndecl 0 12607 NULL
134860 +disable_so_dib7000m_write_word_fndecl_12610 dib7000m_write_word fndecl 3 12610 NULL
134861 +disable_so_real_start_time_task_struct_12612 real_start_time task_struct 0 12612 NULL
134862 +disable_so_rhashtable_expand_fndecl_12634 rhashtable_expand fndecl 0 12634 NULL
134863 +disable_so_seq_cxgbi_skb_cb_12636 seq cxgbi_skb_cb 0 12636 NULL
134864 +disable_so_daddr_irnet_log_12640 daddr irnet_log 0 12640 NULL
134865 +disable_so_r8a66597_clock_enable_fndecl_12645 r8a66597_clock_enable fndecl 0 12645 NULL
134866 +disable_so_rsa_get_d_fndecl_12646 rsa_get_d fndecl 5 12646 NULL
134867 +disable_so_compat_sys_timer_gettime_fndecl_12649 compat_sys_timer_gettime fndecl 1 12649 NULL
134868 +disable_so_daddr_tcp4_pseudohdr_12650 daddr tcp4_pseudohdr 0 12650 NULL
134869 +disable_so_ccp_crypto_enqueue_cmd_fndecl_12657 ccp_crypto_enqueue_cmd fndecl 0 12657 NULL
134870 +disable_so_gm107_fan_pwm_clock_fndecl_12663 gm107_fan_pwm_clock fndecl 0 12663 NULL
134871 +disable_so_em_sti_clock_event_next_fndecl_12667 em_sti_clock_event_next fndecl 1 12667 NULL
134872 +disable_so___hash_conntrack_fndecl_12675 __hash_conntrack fndecl 0-3 12675 NULL
134873 +disable_so_nr_of_adrs_cmd_ds_mac_multicast_addr_12679 nr_of_adrs cmd_ds_mac_multicast_addr 0 12679 NULL
134874 +disable_so_mpihelp_mul_fndecl_12686 mpihelp_mul fndecl 3-5 12686 NULL
134875 +disable_so_retry_delay_timer_fcoe_fcp_rsp_payload_12692 retry_delay_timer fcoe_fcp_rsp_payload 0 12692 NULL
134876 +disable_so_b43_phy_write_fndecl_12694 b43_phy_write fndecl 2-3 12694 NULL
134877 +disable_so_ageing_time_tun_struct_12716 ageing_time tun_struct 0 12716 NULL nohasharray
134878 +disable_so_rx_delay_rk_priv_data_12716 rx_delay rk_priv_data 0 12716 &disable_so_ageing_time_tun_struct_12716
134879 +disable_so_dma_addr_rxbuff_ent_12717 dma_addr rxbuff_ent 0 12717 NULL
134880 +disable_so_swb_base_asd_ha_addrspace_12726 swb_base asd_ha_addrspace 0 12726 NULL
134881 +disable_so_set_voltage_time_sel_regulator_ops_12737 set_voltage_time_sel regulator_ops 0-2 12737 NULL nohasharray
134882 +disable_so_crypto_ecb_setkey_fndecl_12737 crypto_ecb_setkey fndecl 0-3 12737 &disable_so_set_voltage_time_sel_regulator_ops_12737
134883 +disable_so_width_clk_divider_12738 width clk_divider 0 12738 NULL
134884 +disable_so_mga_set_start_address_fndecl_12745 mga_set_start_address fndecl 2 12745 NULL
134885 +disable_so_last_timer_vardecl_tusb6010_c_12750 last_timer vardecl_tusb6010.c 0 12750 NULL
134886 +disable_so_jiffies_at_free_qla_tgt_cmd_12753 jiffies_at_free qla_tgt_cmd 0 12753 NULL nohasharray
134887 +disable_so_ufs_set_inode_uid_fndecl_12753 ufs_set_inode_uid fndecl 3 12753 &disable_so_jiffies_at_free_qla_tgt_cmd_12753
134888 +disable_so_ipv6_get_saddr_eval_fndecl_12754 ipv6_get_saddr_eval fndecl 0 12754 NULL
134889 +disable_so_bond_xmit_hash_fndecl_12757 bond_xmit_hash fndecl 0 12757 NULL
134890 +disable_so_freqm_snd_usb_endpoint_12761 freqm snd_usb_endpoint 0 12761 NULL
134891 +disable_so_mclkdiv_cs42l73_mclkx_div_12771 mclkdiv cs42l73_mclkx_div 0 12771 NULL
134892 +disable_so_slot_time_rtl8187_priv_12775 slot_time rtl8187_priv 0 12775 NULL
134893 +disable_so_mwifiex_auto_tdls_update_peer_signal_fndecl_12781 mwifiex_auto_tdls_update_peer_signal fndecl 3-4 12781 NULL
134894 +disable_so_channel_mwifiex_chan_freq_power_12794 channel mwifiex_chan_freq_power 0 12794 NULL
134895 +disable_so_pll_loopdiv_dib0090_io_config_12799 pll_loopdiv dib0090_io_config 0 12799 NULL nohasharray
134896 +disable_so_branch_addr_yellowfin_desc_12799 branch_addr yellowfin_desc 0 12799 &disable_so_pll_loopdiv_dib0090_io_config_12799
134897 +disable_so__kstrtoul_fndecl_12800 _kstrtoul fndecl 0 12800 NULL
134898 +disable_so_ns_to_timeval_fndecl_12804 ns_to_timeval fndecl 1 12804 NULL nohasharray
134899 +disable_so_enc_addr_high_sata_start_req_12804 enc_addr_high sata_start_req 0 12804 &disable_so_ns_to_timeval_fndecl_12804
134900 +disable_so_ftdi_232bm_baud_to_divisor_fndecl_12815 ftdi_232bm_baud_to_divisor fndecl 0-1 12815 NULL
134901 +disable_so_crypto_aead_setkey_fndecl_12818 crypto_aead_setkey fndecl 0-3 12818 NULL
134902 +disable_so_ufs_cpu_to_data_ptr_fndecl_12819 ufs_cpu_to_data_ptr fndecl 3 12819 NULL
134903 +disable_so_s35390a_rtc_read_time_fndecl_12823 s35390a_rtc_read_time fndecl 0 12823 NULL
134904 +disable_so_orinoco_ioctl_getfreq_fndecl_12824 orinoco_ioctl_getfreq fndecl 0 12824 NULL
134905 +disable_so_be_get_temp_freq_be_adapter_12832 be_get_temp_freq be_adapter 0 12832 NULL
134906 +disable_so_sha256_transform_asm_vardecl_sha256_ssse3_glue_c_12837 sha256_transform_asm vardecl_sha256_ssse3_glue.c 3 12837 NULL
134907 +disable_so_ubifs_leb_unmap_fndecl_12841 ubifs_leb_unmap fndecl 0-2 12841 NULL
134908 +disable_so_telclk_interrupt_vardecl_tlclk_c_12842 telclk_interrupt vardecl_tlclk.c 0 12842 NULL
134909 +disable_so_eax_tss_segment_32_12853 eax tss_segment_32 0 12853 NULL
134910 +disable_so_recover_ide_timing_12854 recover ide_timing 0 12854 NULL
134911 +disable_so_ima_calc_file_hash_fndecl_12858 ima_calc_file_hash fndecl 0 12858 NULL
134912 +disable_so_timestamp_inquiry_entry_12867 timestamp inquiry_entry 0 12867 NULL
134913 +disable_so_blk_post_runtime_suspend_fndecl_12869 blk_post_runtime_suspend fndecl 2 12869 NULL
134914 +disable_so_clocksource_register_khz_fndecl_12871 clocksource_register_khz fndecl 2 12871 NULL
134915 +disable_so___xfrm4_daddr_saddr_hash_fndecl_12875 __xfrm4_daddr_saddr_hash fndecl 0 12875 NULL
134916 +disable_so_calibrate_delay_converge_fndecl_12881 calibrate_delay_converge fndecl 0 12881 NULL
134917 +disable_so_cgroup_kn_set_ugid_fndecl_12885 cgroup_kn_set_ugid fndecl 0 12885 NULL
134918 +disable_so_bm_number_of_pages_drbd_bitmap_12889 bm_number_of_pages drbd_bitmap 0 12889 NULL
134919 +disable_so_blck_N_aic32x4_rate_divs_12896 blck_N aic32x4_rate_divs 0 12896 NULL
134920 +disable_so_delayacct_blkio_ticks_fndecl_12901 delayacct_blkio_ticks fndecl 0 12901 NULL
134921 +disable_so_sh_irda_set_timeout_fndecl_12902 sh_irda_set_timeout fndecl 2 12902 NULL
134922 +disable_so_bch_next_delay_fndecl_12906 bch_next_delay fndecl 0-2 12906 NULL
134923 +disable_so_address_lo_ht_irq_msg_12914 address_lo ht_irq_msg 0 12914 NULL
134924 +disable_so_cr_gsc_addr_12917 cr gsc_addr 0 12917 NULL nohasharray
134925 +disable_so_fmc_set_freq_fndecl_12917 fmc_set_freq fndecl 0-2 12917 &disable_so_cr_gsc_addr_12917
134926 +disable_so_s_wtime_nilfs_super_block_12947 s_wtime nilfs_super_block 0 12947 NULL
134927 +disable_so___pm_runtime_idle_fndecl_12950 __pm_runtime_idle fndecl 0 12950 NULL
134928 +disable_so_timeout_dvb_ca_slot_12955 timeout dvb_ca_slot 0 12955 NULL
134929 +disable_so_ktime_get_real_ns_fndecl_12957 ktime_get_real_ns fndecl 0 12957 NULL nohasharray
134930 +disable_so_read_temp_msr_fndecl_12957 read_temp_msr fndecl 0 12957 &disable_so_ktime_get_real_ns_fndecl_12957
134931 +disable_so_clock_get_k_clock_12965 clock_get k_clock 1 12965 NULL
134932 +disable_so_addr___cache_12967 addr __cache 0 12967 NULL
134933 +disable_so_dev_addr_mv_u3d_12969 dev_addr mv_u3d 0 12969 NULL
134934 +disable_so_xfrm6_input_addr_fndecl_12971 xfrm6_input_addr fndecl 4 12971 NULL
134935 +disable_so_rfcomm_dlc_set_timer_fndecl_12983 rfcomm_dlc_set_timer fndecl 2 12983 NULL
134936 +disable_so_short_addr_ieee802154_hw_addr_filt_12985 short_addr ieee802154_hw_addr_filt 0 12985 NULL
134937 +disable_so_base_addr_rdma_cq_setup_12989 base_addr rdma_cq_setup 0 12989 NULL
134938 +disable_so_rsp_q_phy_addr_ql3_adapter_12990 rsp_q_phy_addr ql3_adapter 0 12990 NULL
134939 +disable_so_cc770_status_interrupt_fndecl_12992 cc770_status_interrupt fndecl 0 12992 NULL
134940 +disable_so_tx_addr_uart_8250_dma_12997 tx_addr uart_8250_dma 0 12997 NULL
134941 +disable_so_cur_delay_intel_ilk_power_mgmt_13003 cur_delay intel_ilk_power_mgmt 0 13003 NULL
134942 +disable_so_gateway_cmd_addr_wil_fw_record_gateway_data_13008 gateway_cmd_addr wil_fw_record_gateway_data 0 13008 NULL
134943 +disable_so_wq_cpumask_show_fndecl_13018 wq_cpumask_show fndecl 0 13018 NULL
134944 +disable_so_hash_index_fndecl_13050 hash_index fndecl 0-1-2 13050 NULL
134945 +disable_so_qs6612_ack_interrupt_fndecl_13054 qs6612_ack_interrupt fndecl 0 13054 NULL
134946 +disable_so_dst_addr_ioat_dma_descriptor_13055 dst_addr ioat_dma_descriptor 0 13055 NULL
134947 +disable_so_qce_ablkcipher_encrypt_fndecl_13064 qce_ablkcipher_encrypt fndecl 0 13064 NULL
134948 +disable_so_cra_alignmask_crypto_alg_13076 cra_alignmask crypto_alg 0 13076 NULL
134949 +disable_so_rx_busy_ath_cycle_counters_13078 rx_busy ath_cycle_counters 0 13078 NULL
134950 +disable_so_dummy_hrtimer_pointer_fndecl_13080 dummy_hrtimer_pointer fndecl 0 13080 NULL nohasharray
134951 +disable_so_freq_carl9170_rf_init_13080 freq carl9170_rf_init 0 13080 &disable_so_dummy_hrtimer_pointer_fndecl_13080
134952 +disable_so_host_addr_mei_hbm_cl_cmd_13107 host_addr mei_hbm_cl_cmd 0 13107 NULL nohasharray
134953 +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
134954 +disable_so_da9063_rtc_read_time_fndecl_13117 da9063_rtc_read_time fndecl 0 13117 NULL
134955 +disable_so_ext4_validate_block_bitmap_fndecl_13120 ext4_validate_block_bitmap fndecl 3 13120 NULL
134956 +disable_so_adp8870_write_fndecl_13121 adp8870_write fndecl 0-2-3 13121 NULL
134957 +disable_so_clock_set_k_clock_13122 clock_set k_clock 1 13122 NULL nohasharray
134958 +disable_so_check_clock_fndecl_13122 check_clock fndecl 1 13122 &disable_so_clock_set_k_clock_13122
134959 +disable_so_addr_wil6210_mbox_ring_desc_13127 addr wil6210_mbox_ring_desc 0 13127 NULL
134960 +disable_so_stats_time_fnic_13131 stats_time fnic 0 13131 NULL
134961 +disable_so_brcms_add_timer_fndecl_13133 brcms_add_timer fndecl 2 13133 NULL
134962 +disable_so_r6a_val_fc2580_freq_regs_13136 r6a_val fc2580_freq_regs 0 13136 NULL
134963 +disable_so_enabled_otg_timer_bits_ci_hdrc_13140 enabled_otg_timer_bits ci_hdrc 0 13140 NULL
134964 +disable_so_atp867x_get_recover_clocks_shifted_fndecl_13150 atp867x_get_recover_clocks_shifted fndecl 0-1 13150 NULL
134965 +disable_so_timeout_nf_ct_gre_13156 timeout nf_ct_gre 0 13156 NULL
134966 +disable_so_snd_fm801_interrupt_fndecl_13162 snd_fm801_interrupt fndecl 1 13162 NULL
134967 +disable_so_afs_server_timeout_vardecl_server_c_13168 afs_server_timeout vardecl_server.c 0 13168 NULL
134968 +disable_so_wm8974_set_dai_clkdiv_fndecl_13171 wm8974_set_dai_clkdiv fndecl 3 13171 NULL
134969 +disable_so_ipw_send_adapter_address_fndecl_13183 ipw_send_adapter_address fndecl 0 13183 NULL
134970 +disable_so_crypto_fpu_encrypt_fndecl_13188 crypto_fpu_encrypt fndecl 0-4 13188 NULL
134971 +disable_so_blockno2iaddr_fndecl_13194 blockno2iaddr fndecl 2 13194 NULL
134972 +disable_so_s_addr_per_block_bits_ext2_sb_info_13196 s_addr_per_block_bits ext2_sb_info 0 13196 NULL
134973 +disable_so_mac_time_rtl8187_rx_hdr_13204 mac_time rtl8187_rx_hdr 0 13204 NULL
134974 +disable_so_efx_phc_gettime_fndecl_13210 efx_phc_gettime fndecl 0 13210 NULL nohasharray
134975 +disable_so_freq_fm_rx_13210 freq fm_rx 0 13210 &disable_so_efx_phc_gettime_fndecl_13210
134976 +disable_so_set_fan1_div_fndecl_13214 set_fan1_div fndecl 0-4 13214 NULL
134977 +disable_so_kstrtos16_from_user_fndecl_13215 kstrtos16_from_user fndecl 2 13215 NULL
134978 +disable_so_timer_int_req_nes_adapter_13220 timer_int_req nes_adapter 0 13220 NULL nohasharray
134979 +disable_so_raddr_rdma_iu_13220 raddr rdma_iu 0 13220 &disable_so_timer_int_req_nes_adapter_13220
134980 +disable_so_calibrate_delay_direct_fndecl_13221 calibrate_delay_direct fndecl 0 13221 NULL
134981 +disable_so_il_scan_cancel_timeout_fndecl_13227 il_scan_cancel_timeout fndecl 2 13227 NULL
134982 +disable_so_di_uid_gfs2_dinode_13234 di_uid gfs2_dinode 0 13234 NULL
134983 +disable_so_globaltxtimeout_ath_hw_13238 globaltxtimeout ath_hw 0 13238 NULL
134984 +disable_so_handle_new_msr_fndecl_13247 handle_new_msr fndecl 2 13247 NULL
134985 +disable_so_efx_ef10_get_mac_address_fndecl_13249 efx_ef10_get_mac_address fndecl 0 13249 NULL
134986 +disable_so_i_atime_exofs_fcb_13250 i_atime exofs_fcb 0 13250 NULL
134987 +disable_so_dwell_time_active_wmi_start_scan_arg_13251 dwell_time_active wmi_start_scan_arg 0 13251 NULL
134988 +disable_so_SYSC_signalfd_fndecl_13255 SYSC_signalfd fndecl 0 13255 NULL
134989 +disable_so_ipv4addr_iscsi_ipv4addr_13263 ipv4addr iscsi_ipv4addr 0 13263 NULL
134990 +disable_so_nilfs_btree_prepare_update_v_fndecl_13265 nilfs_btree_prepare_update_v fndecl 0 13265 NULL
134991 +disable_so_timer_in_use_max_nes_hw_tune_timer_13266 timer_in_use_max nes_hw_tune_timer 0 13266 NULL nohasharray
134992 +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
134993 +disable_so_xgmac_interrupt_fndecl_13268 xgmac_interrupt fndecl 1 13268 NULL
134994 +disable_so_radio_s_hw_freq_seek_fndecl_13308 radio_s_hw_freq_seek fndecl 0 13308 NULL nohasharray
134995 +disable_so_apei_read_mce_fndecl_13308 apei_read_mce fndecl 0 13308 &disable_so_radio_s_hw_freq_seek_fndecl_13308
134996 +disable_so_clear_tasks_mm_cpumask_fndecl_13309 clear_tasks_mm_cpumask fndecl 1 13309 NULL
134997 +disable_so_bmsr_e1000_phy_regs_13313 bmsr e1000_phy_regs 0 13313 NULL
134998 +disable_so_mcryptd_hash_digest_fndecl_13325 mcryptd_hash_digest fndecl 2 13325 NULL
134999 +disable_so_cpumask_set_cpu_fndecl_13326 cpumask_set_cpu fndecl 1 13326 NULL
135000 +disable_so_ipath_unmasktime_ipath_devdata_13342 ipath_unmasktime ipath_devdata 0 13342 NULL
135001 +disable_so_interruptjiffies_vardecl_floppy_c_13345 interruptjiffies vardecl_floppy.c 0 13345 NULL
135002 +disable_so_remove_from_bitmap_fndecl_13352 remove_from_bitmap fndecl 0 13352 NULL
135003 +disable_so_sst_wait_timeout_fndecl_13353 sst_wait_timeout fndecl 0 13353 NULL nohasharray
135004 +disable_so_last_timeout_arcnet_local_13353 last_timeout arcnet_local 0 13353 &disable_so_sst_wait_timeout_fndecl_13353 nohasharray
135005 +disable_so_cfg_table_bus_addr_pmcraid_instance_13353 cfg_table_bus_addr pmcraid_instance 0 13353 &disable_so_last_timeout_arcnet_local_13353
135006 +disable_so_mtime_vardecl_initramfs_c_13365 mtime vardecl_initramfs.c 0 13365 NULL
135007 +disable_so_ds3232_read_time_fndecl_13366 ds3232_read_time fndecl 0 13366 NULL nohasharray
135008 +disable_so_addr_bcma_device_13366 addr bcma_device 0 13366 &disable_so_ds3232_read_time_fndecl_13366
135009 +disable_so_dma_addr_drv_ctl_io_13371 dma_addr drv_ctl_io 0 13371 NULL
135010 +disable_so_crypto_check_alg_fndecl_13376 crypto_check_alg fndecl 0 13376 NULL
135011 +disable_so_drbd_adm_get_timeout_type_fndecl_13391 drbd_adm_get_timeout_type fndecl 0 13391 NULL
135012 +disable_so_hpi_silence_detector_set_delay_fndecl_13393 hpi_silence_detector_set_delay fndecl 0-1 13393 NULL
135013 +disable_so__get_table_div_fndecl_13398 _get_table_div fndecl 0-2 13398 NULL
135014 +disable_so_backtrace_address_fndecl_13401 backtrace_address fndecl 2 13401 NULL
135015 +disable_so_ax25_addr_parse_fndecl_13402 ax25_addr_parse fndecl 2 13402 NULL
135016 +disable_so_ath5k_hw_ani_get_listen_time_fndecl_13417 ath5k_hw_ani_get_listen_time fndecl 0 13417 NULL nohasharray
135017 +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
135018 +disable_so_cpufreq_stats_free_table_fndecl_13437 cpufreq_stats_free_table fndecl 1 13437 NULL
135019 +disable_so_eft_addr_l_qla2xxx_fw_dump_13450 eft_addr_l qla2xxx_fw_dump 0 13450 NULL
135020 +disable_so_cit_write_reg_fndecl_13451 cit_write_reg fndecl 2 13451 NULL
135021 +disable_so_chash_f2fs_inode_info_13456 chash f2fs_inode_info 0 13456 NULL
135022 +disable_so_vblank_lo_oaktrail_timing_info_13463 vblank_lo oaktrail_timing_info 0 13463 NULL
135023 +disable_so_rtl8139_interrupt_fndecl_13468 rtl8139_interrupt fndecl 1 13468 NULL
135024 +disable_so_start_time_dm_io_13470 start_time dm_io 0 13470 NULL
135025 +disable_so_mt2032_set_if_freq_fndecl_13473 mt2032_set_if_freq fndecl 2-3-4 13473 NULL
135026 +disable_so_demod_address_cx24110_config_13476 demod_address cx24110_config 0 13476 NULL
135027 +disable_so_atime_tcs3472_data_13482 atime tcs3472_data 0 13482 NULL
135028 +disable_so_div_ratio_fndecl_13491 div_ratio fndecl 0-2-1 13491 NULL
135029 +disable_so_seq_xfrm_state_walk_13498 seq xfrm_state_walk 0 13498 NULL
135030 +disable_so_qdisc_class_hash_init_fndecl_13502 qdisc_class_hash_init fndecl 0 13502 NULL
135031 +disable_so_sha256_generic_block_fn_fndecl_13506 sha256_generic_block_fn fndecl 3 13506 NULL
135032 +disable_so_find_first_bit_fndecl_13507 find_first_bit fndecl 0-2 13507 NULL
135033 +disable_so_idle_timeout_clip_vcc_13512 idle_timeout clip_vcc 0 13512 NULL nohasharray
135034 +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
135035 +disable_so_bond_time_in_interval_fndecl_13516 bond_time_in_interval fndecl 2 13516 NULL nohasharray
135036 +disable_so_nv04_timer_init_fndecl_13516 nv04_timer_init fndecl 0 13516 &disable_so_bond_time_in_interval_fndecl_13516
135037 +disable_so_paravirt_read_msr_fndecl_13526 paravirt_read_msr fndecl 0-1 13526 NULL
135038 +disable_so_dram_offset_sst_addr_13528 dram_offset sst_addr 0 13528 NULL
135039 +disable_so_em_sti_clocksource_enable_fndecl_13530 em_sti_clocksource_enable fndecl 0 13530 NULL
135040 +disable_so_timestamp_ieee80211_tdls_ch_sw_params_13545 timestamp ieee80211_tdls_ch_sw_params 0 13545 NULL
135041 +disable_so_post_divider_rv6xx_sclk_stepping_13551 post_divider rv6xx_sclk_stepping 0 13551 NULL nohasharray
135042 +disable_so_center_freq_ieee80211_channel_13551 center_freq ieee80211_channel 0 13551 &disable_so_post_divider_rv6xx_sclk_stepping_13551
135043 +disable_so_port_rcvhdrqtailaddr_phys_ipath_portdata_13553 port_rcvhdrqtailaddr_phys ipath_portdata 0 13553 NULL
135044 +disable_so_acpi_check_address_range_fndecl_13569 acpi_check_address_range fndecl 1-2-3 13569 NULL
135045 +disable_so_time_mt_init_fndecl_13576 time_mt_init fndecl 0 13576 NULL
135046 +disable_so_blkcipher_done_fast_fndecl_13584 blkcipher_done_fast fndecl 0-2 13584 NULL
135047 +disable_so_phys_addr_mpi_mem_13591 phys_addr mpi_mem 0 13591 NULL nohasharray
135048 +disable_so_timeout_p9_trans_rdma_13591 timeout p9_trans_rdma 0 13591 &disable_so_phys_addr_mpi_mem_13591 nohasharray
135049 +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
135050 +disable_so_c_can_set_bittiming_fndecl_13601 c_can_set_bittiming fndecl 0 13601 NULL
135051 +disable_so_crypto_ccm_module_init_fndecl_13609 crypto_ccm_module_init fndecl 0 13609 NULL
135052 +disable_so_addr_hi_eth_tx_next_bd_13611 addr_hi eth_tx_next_bd 0 13611 NULL
135053 +disable_so_addr_hi_cmdQ_e_13613 addr_hi cmdQ_e 0 13613 NULL
135054 +disable_so_min_keysize_crypto_report_cipher_13617 min_keysize crypto_report_cipher 0 13617 NULL
135055 +disable_so_seq_printf_with_thousands_grouping_fndecl_13628 seq_printf_with_thousands_grouping fndecl 2 13628 NULL
135056 +disable_so_cpuidle_init_fndecl_13639 cpuidle_init fndecl 0 13639 NULL
135057 +disable_so_period_ksz_timer_info_13641 period ksz_timer_info 0 13641 NULL
135058 +disable_so_vx_modify_board_clock_fndecl_13669 vx_modify_board_clock fndecl 0 13669 NULL
135059 +disable_so_cmd_box_addr_wl1251_13673 cmd_box_addr wl1251 0 13673 NULL
135060 +disable_so_demod_address_va1j5jf8007s_config_13675 demod_address va1j5jf8007s_config 0 13675 NULL
135061 +disable_so_timestamp_unavailable_nfs4_deviceid_node_13676 timestamp_unavailable nfs4_deviceid_node 0 13676 NULL nohasharray
135062 +disable_so_len_in_mceusb_dev_13676 len_in mceusb_dev 0 13676 &disable_so_timestamp_unavailable_nfs4_deviceid_node_13676
135063 +disable_so_di_uid_efs_dinode_13682 di_uid efs_dinode 0 13682 NULL
135064 +disable_so_aty_ld_le32_fndecl_13683 aty_ld_le32 fndecl 0 13683 NULL
135065 +disable_so_freqValRadio_pvr2_hdw_13684 freqValRadio pvr2_hdw 0 13684 NULL
135066 +disable_so_fd_pppol2tp_addr_13691 fd pppol2tp_addr 0 13691 NULL
135067 +disable_so_ver_total_via_display_timing_13695 ver_total via_display_timing 0 13695 NULL
135068 +disable_so_wait_on_bit_action_fndecl_13700 wait_on_bit_action fndecl 0 13700 NULL
135069 +disable_so_prandom_seed_state_fndecl_13705 prandom_seed_state fndecl 2 13705 NULL
135070 +disable_so_br_set_hello_time_fndecl_13706 br_set_hello_time fndecl 2-0 13706 NULL
135071 +disable_so_servaddr_vardecl_nfsroot_c_13709 servaddr vardecl_nfsroot.c 0 13709 NULL
135072 +disable_so_pci_bus_read_config_byte_fndecl_13716 pci_bus_read_config_byte fndecl 0-2-3 13716 NULL
135073 +disable_so_cipher_blocksize_blkcipher_walk_13719 cipher_blocksize blkcipher_walk 0 13719 NULL
135074 +disable_so_isdn_divert_read_fndecl_13720 isdn_divert_read fndecl 0 13720 NULL
135075 +disable_so_sys_getegid16_fndecl_13732 sys_getegid16 fndecl 0 13732 NULL
135076 +disable_so_turnaround_delay_fndecl_13736 turnaround_delay fndecl 2 13736 NULL nohasharray
135077 +disable_so_ft_min_img_ir_free_timing_13736 ft_min img_ir_free_timing 0 13736 &disable_so_turnaround_delay_fndecl_13736
135078 +disable_so_addr_1_qla8044_minidump_entry_rdmdio_13738 addr_1 qla8044_minidump_entry_rdmdio 0 13738 NULL nohasharray
135079 +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
135080 +disable_so_ext4fs_dirhash_fndecl_13754 ext4fs_dirhash fndecl 2 13754 NULL
135081 +disable_so_mpll_func_cntl_2_ci_clock_registers_13768 mpll_func_cntl_2 ci_clock_registers 0 13768 NULL
135082 +disable_so_update_ts_time_stats_fndecl_13777 update_ts_time_stats fndecl 1 13777 NULL
135083 +disable_so_adv_smbus_write_byte_data_fndecl_13784 adv_smbus_write_byte_data fndecl 0-3-2-4 13784 NULL
135084 +disable_so_tg3_nvram_read_be32_fndecl_13791 tg3_nvram_read_be32 fndecl 0-2 13791 NULL
135085 +disable_so_ftdi_232bm_baud_base_to_divisor_fndecl_13805 ftdi_232bm_baud_base_to_divisor fndecl 0-1-2 13805 NULL nohasharray
135086 +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
135087 +disable_so_mtimensec_fuse_setattr_in_13811 mtimensec fuse_setattr_in 0 13811 NULL
135088 +disable_so_stime_task_cputime_13814 stime task_cputime 0 13814 NULL
135089 +disable_so_update_rq_clock_task_fndecl_13818 update_rq_clock_task fndecl 2 13818 NULL
135090 +disable_so_first_pending_disptime_throtl_service_queue_13825 first_pending_disptime throtl_service_queue 0 13825 NULL
135091 +disable_so_zalloc_cpumask_var_node_fndecl_13830 zalloc_cpumask_var_node fndecl 2-3 13830 NULL
135092 +disable_so_s_last_error_time_ext4_super_block_13833 s_last_error_time ext4_super_block 0 13833 NULL
135093 +disable_so_ksz_start_timer_fndecl_13834 ksz_start_timer fndecl 2 13834 NULL nohasharray
135094 +disable_so_uwb_rc_mac_addr_get_fndecl_13834 uwb_rc_mac_addr_get fndecl 0 13834 &disable_so_ksz_start_timer_fndecl_13834
135095 +disable_so_last_jiffies_loopback_pcm_13838 last_jiffies loopback_pcm 0 13838 NULL
135096 +disable_so_devm_free_irq_fndecl_13839 devm_free_irq fndecl 2 13839 NULL
135097 +disable_so_wlcore_irq_locked_fndecl_13846 wlcore_irq_locked fndecl 0 13846 NULL
135098 +disable_so_hpet_reserve_platform_timers_fndecl_13848 hpet_reserve_platform_timers fndecl 1 13848 NULL
135099 +disable_so_drm_legacy_ctxbitmap_next_fndecl_13853 drm_legacy_ctxbitmap_next fndecl 0 13853 NULL
135100 +disable_so_addr_hi_sdhci_adma2_64_desc_13867 addr_hi sdhci_adma2_64_desc 0 13867 NULL nohasharray
135101 +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
135102 +disable_so_ktime_to_us_fndecl_13868 ktime_to_us fndecl 0 13868 NULL nohasharray
135103 +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
135104 +disable_so_smack_task_setpgid_fndecl_13869 smack_task_setpgid fndecl 0 13869 NULL
135105 +disable_so_payload_addr_vpdma_cfd_13876 payload_addr vpdma_cfd 0 13876 NULL
135106 +disable_so_chgfreq_cs42l73_platform_data_13884 chgfreq cs42l73_platform_data 0 13884 NULL
135107 +disable_so_interrupt_page_vmbus_channel_initiate_contact_13895 interrupt_page vmbus_channel_initiate_contact 0 13895 NULL
135108 +disable_so_ptrace_set_breakpoint_addr_fndecl_13901 ptrace_set_breakpoint_addr fndecl 0-2-3 13901 NULL nohasharray
135109 +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
135110 +disable_so_mcryptd_hash_setkey_fndecl_13926 mcryptd_hash_setkey fndecl 0-3 13926 NULL
135111 +disable_so_put_unaligned_be64_fndecl_13929 put_unaligned_be64 fndecl 1 13929 NULL
135112 +disable_so_voldelay_soundfont_voice_parm_13931 voldelay soundfont_voice_parm 0 13931 NULL
135113 +disable_so_addr_high_lancer_cmd_req_read_object_13932 addr_high lancer_cmd_req_read_object 0 13932 NULL
135114 +disable_so_src_addr_rds_info_rdma_connection_13938 src_addr rds_info_rdma_connection 0 13938 NULL
135115 +disable_so_rs780_force_fbdiv_fndecl_13945 rs780_force_fbdiv fndecl 2 13945 NULL
135116 +disable_so_xfs_btree_key_offset_fndecl_13946 xfs_btree_key_offset fndecl 0-2 13946 NULL nohasharray
135117 +disable_so_cryptd_hash_init_enqueue_fndecl_13946 cryptd_hash_init_enqueue fndecl 0 13946 &disable_so_xfs_btree_key_offset_fndecl_13946
135118 +disable_so_from_addr_param_sctp_af_13948 from_addr_param sctp_af 3 13948 NULL
135119 +disable_so_ept_walk_addr_generic_fndecl_13950 ept_walk_addr_generic fndecl 4-5 13950 NULL
135120 +disable_so_cpu_timer_list_iter_13954 cpu timer_list_iter 0 13954 NULL nohasharray
135121 +disable_so_iowrite16_fndecl_13954 iowrite16 fndecl 1 13954 &disable_so_cpu_timer_list_iter_13954
135122 +disable_so_do_utime_fndecl_13972 do_utime fndecl 2-0 13972 NULL
135123 +disable_so_base_addr_cx18_13974 base_addr cx18 0 13974 NULL
135124 +disable_so_rtpm_suspended_time_show_fndecl_13986 rtpm_suspended_time_show fndecl 0 13986 NULL
135125 +disable_so_ctime_fuse_setattr_in_13994 ctime fuse_setattr_in 0 13994 NULL
135126 +disable_so__rtl92ce_signal_scale_mapping_fndecl_14005 _rtl92ce_signal_scale_mapping fndecl 0-2 14005 NULL
135127 +disable_so_base_address_kvm_ioapic_14007 base_address kvm_ioapic 0 14007 NULL
135128 +disable_so_addr_hi_tx_desc_14014 addr_hi tx_desc 0 14014 NULL
135129 +disable_so_db_page_addr_ocrdma_create_cq_uresp_14016 db_page_addr ocrdma_create_cq_uresp 0 14016 NULL
135130 +disable_so_cur_cpufreq_policy_14023 cur cpufreq_policy 0 14023 NULL
135131 +disable_so_iommu_context_addr_fndecl_14032 iommu_context_addr fndecl 2-3 14032 NULL
135132 +disable_so_pll_i2c_address_dvb_pll_priv_14036 pll_i2c_address dvb_pll_priv 0 14036 NULL
135133 +disable_so_eth_mac_addr_fndecl_14045 eth_mac_addr fndecl 0 14045 NULL
135134 +disable_so_dce_v8_0_crtc_set_base_atomic_fndecl_14048 dce_v8_0_crtc_set_base_atomic fndecl 0 14048 NULL
135135 +disable_so_irq_to_desc_fndecl_14051 irq_to_desc fndecl 1 14051 NULL
135136 +disable_so_ept_identity_map_addr_kvm_arch_14060 ept_identity_map_addr kvm_arch 0 14060 NULL
135137 +disable_so_t1timer_ax25_info_struct_14071 t1timer ax25_info_struct 0 14071 NULL
135138 +disable_so_rxbd_addr_hi_host_cmd_ds_pcie_details_14073 rxbd_addr_hi host_cmd_ds_pcie_details 0 14073 NULL nohasharray
135139 +disable_so_nfsd4_decode_bitmap_fndecl_14073 nfsd4_decode_bitmap fndecl 0 14073 &disable_so_rxbd_addr_hi_host_cmd_ds_pcie_details_14073
135140 +disable_so_xfs_vn_update_time_fndecl_14075 xfs_vn_update_time fndecl 0 14075 NULL
135141 +disable_so_cpufreq_frequency_table_target_fndecl_14082 cpufreq_frequency_table_target fndecl 3 14082 NULL
135142 +disable_so_pll_j_aic31xx_rate_divs_14098 pll_j aic31xx_rate_divs 0 14098 NULL
135143 +disable_so_pirq_from_irq_fndecl_14110 pirq_from_irq fndecl 1 14110 NULL
135144 +disable_so_zforce_scan_frequency_fndecl_14111 zforce_scan_frequency fndecl 0 14111 NULL
135145 +disable_so_uv_bios_freq_base_fndecl_14114 uv_bios_freq_base fndecl 1 14114 NULL
135146 +disable_so_si2165_set_if_freq_shift_fndecl_14123 si2165_set_if_freq_shift fndecl 0-2 14123 NULL
135147 +disable_so___hw_addr_sync_fndecl_14136 __hw_addr_sync fndecl 0-3 14136 NULL
135148 +disable_so_y_qxl_bitmap_14153 y qxl_bitmap 0 14153 NULL
135149 +disable_so_crypto_aead_setauthsize_fndecl_14158 crypto_aead_setauthsize fndecl 2 14158 NULL
135150 +disable_so_r600_engine_clock_entry_set_post_divider_fndecl_14159 r600_engine_clock_entry_set_post_divider fndecl 3 14159 NULL
135151 +disable_so_onenand_buffer_address_fndecl_14162 onenand_buffer_address fndecl 0-2-3 14162 NULL
135152 +disable_so___xfrm_state_lookup_byaddr_fndecl_14170 __xfrm_state_lookup_byaddr fndecl 2-5-6 14170 NULL
135153 +disable_so_uwbd_evt_handle_rc_dev_addr_conflict_fndecl_14177 uwbd_evt_handle_rc_dev_addr_conflict fndecl 0 14177 NULL
135154 +disable_so_mpt_add_sge_64bit_1078_fndecl_14179 mpt_add_sge_64bit_1078 fndecl 2-3 14179 NULL
135155 +disable_so_exynos4_jpeg_set_dec_bitstream_size_fndecl_14180 exynos4_jpeg_set_dec_bitstream_size fndecl 2 14180 NULL
135156 +disable_so_bg_block_bitmap_hi_ext4_group_desc_14201 bg_block_bitmap_hi ext4_group_desc 0 14201 NULL
135157 +disable_so_msecs_to_jiffies_fndecl_14205 msecs_to_jiffies fndecl 0-1 14205 NULL
135158 +disable_so_wait_on_page_bit_killable_timeout_fndecl_14212 wait_on_page_bit_killable_timeout fndecl 3-0 14212 NULL
135159 +disable_so_xfrm_state_addr_check_fndecl_14213 xfrm_state_addr_check fndecl 4 14213 NULL
135160 +disable_so_addr_sil24_sge_14214 addr sil24_sge 0 14214 NULL
135161 +disable_so_t2_hash_tbl_addr_lo_fcoe_kwqe_init2_14217 t2_hash_tbl_addr_lo fcoe_kwqe_init2 0 14217 NULL
135162 +disable_so_custom_divisor_uart_port_14227 custom_divisor uart_port 0 14227 NULL
135163 +disable_so_mclk_freq_s3fb_info_14228 mclk_freq s3fb_info 0 14228 NULL
135164 +disable_so_crypto_rfc4106_decrypt_fndecl_14233 crypto_rfc4106_decrypt fndecl 0 14233 NULL
135165 +disable_so_phy_addr_b44_14235 phy_addr b44 0 14235 NULL
135166 +disable_so_gpiochip_set_chained_irqchip_fndecl_14248 gpiochip_set_chained_irqchip fndecl 3 14248 NULL
135167 +disable_so_pci_bus_address_fndecl_14252 pci_bus_address fndecl 0 14252 NULL
135168 +disable_so_sleep_functions_on_battery_show_fndecl_14253 sleep_functions_on_battery_show fndecl 0 14253 NULL nohasharray
135169 +disable_so_to_hash_fndecl_14253 to_hash fndecl 0-1 14253 &disable_so_sleep_functions_on_battery_show_fndecl_14253
135170 +disable_so_ghash_async_init_fndecl_14257 ghash_async_init fndecl 0 14257 NULL
135171 +disable_so_port_down_timeout_vnic_fc_config_14262 port_down_timeout vnic_fc_config 0 14262 NULL
135172 +disable_so_master_timeout_vardecl_nf_conntrack_amanda_c_14266 master_timeout vardecl_nf_conntrack_amanda.c 0 14266 NULL
135173 +disable_so_register_address_increment_fndecl_14270 register_address_increment fndecl 2-3 14270 NULL
135174 +disable_so_ultra_settings_chipset_bus_clock_list_entry_14273 ultra_settings chipset_bus_clock_list_entry 0 14273 NULL
135175 +disable_so_do_timer_fndecl_14291 do_timer fndecl 1 14291 NULL nohasharray
135176 +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
135177 +disable_so_ndi_latency_timer_vardecl_ftdi_sio_c_14293 ndi_latency_timer vardecl_ftdi_sio.c 0 14293 NULL
135178 +disable_so_gateway_addr_addr_wil_fw_record_gateway_data4_14300 gateway_addr_addr wil_fw_record_gateway_data4 0 14300 NULL
135179 +disable_so_rxrpc_validate_address_fndecl_14303 rxrpc_validate_address fndecl 0-3 14303 NULL
135180 +disable_so_function_num_atto_csmi_get_pci_bus_addr_14307 function_num atto_csmi_get_pci_bus_addr 0 14307 NULL
135181 +disable_so_packet_timeout_jiffies_lego_usb_tower_14311 packet_timeout_jiffies lego_usb_tower 0 14311 NULL
135182 +disable_so_caller_uid_ceph_mds_request_head_14323 caller_uid ceph_mds_request_head 0 14323 NULL
135183 +disable_so_e1000_get_phy_addr_for_bm_page_fndecl_14324 e1000_get_phy_addr_for_bm_page fndecl 0-1-2 14324 NULL
135184 +disable_so_buf_base_addr_c67x00_hcd_14328 buf_base_addr c67x00_hcd 0 14328 NULL nohasharray
135185 +disable_so_hactive_hi_lvds_dvo_timing_14328 hactive_hi lvds_dvo_timing 0 14328 &disable_so_buf_base_addr_c67x00_hcd_14328
135186 +disable_so_addr_nv4e_i2c_port_14334 addr nv4e_i2c_port 0 14334 NULL
135187 +disable_so_ncp_add_be16_fndecl_14337 ncp_add_be16 fndecl 2 14337 NULL
135188 +disable_so_paddr_mm_dmapool_14345 paddr mm_dmapool 0 14345 NULL
135189 +disable_so_disc_wait_time_esas2r_adapter_14347 disc_wait_time esas2r_adapter 0 14347 NULL
135190 +disable_so_sgidx_scsi_ctrl_blk_14351 sgidx scsi_ctrl_blk 0 14351 NULL
135191 +disable_so_compute_split_timeout_timestamp_fndecl_14357 compute_split_timeout_timestamp fndecl 0-2 14357 NULL
135192 +disable_so_sin_port_sockaddr_in_14374 sin_port sockaddr_in 0 14374 NULL
135193 +disable_so_ci_get_mclk_frequency_ratio_fndecl_14375 ci_get_mclk_frequency_ratio fndecl 0-1 14375 NULL nohasharray
135194 +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
135195 +disable_so_stv0367cab_get_derot_freq_fndecl_14379 stv0367cab_get_derot_freq fndecl 0-2 14379 NULL
135196 +disable_so_line_time_radeon_crtc_14380 line_time radeon_crtc 0 14380 NULL
135197 +disable_so_src_data_addr_icp_qat_fw_comn_req_mid_14391 src_data_addr icp_qat_fw_comn_req_mid 0 14391 NULL
135198 +disable_so_dev_addr_cx231xx_i2c_xfer_data_14403 dev_addr cx231xx_i2c_xfer_data 0 14403 NULL
135199 +disable_so_card_snd_timer_info32_14407 card snd_timer_info32 0 14407 NULL nohasharray
135200 +disable_so_authenc_esn_verify_ahash_done_fndecl_14407 authenc_esn_verify_ahash_done fndecl 2 14407 &disable_so_card_snd_timer_info32_14407
135201 +disable_so_compat_put_timespec_fndecl_14416 compat_put_timespec fndecl 0 14416 NULL
135202 +disable_so_nct6775_write_fan_div_fndecl_14421 nct6775_write_fan_div fndecl 2 14421 NULL
135203 +disable_so_compat_sys_settimeofday_fndecl_14431 compat_sys_settimeofday fndecl 0 14431 NULL
135204 +disable_so_irlmp_start_idle_timer_fndecl_14433 irlmp_start_idle_timer fndecl 2 14433 NULL
135205 +disable_so_min_flt_signal_struct_14436 min_flt signal_struct 0 14436 NULL
135206 +disable_so___release_region_fndecl_14448 __release_region fndecl 2-3 14448 NULL
135207 +disable_so_dccp_time_wait_fndecl_14450 dccp_time_wait fndecl 3-2 14450 NULL nohasharray
135208 +disable_so_rt_mutex_timed_futex_lock_fndecl_14450 rt_mutex_timed_futex_lock fndecl 0 14450 &disable_so_dccp_time_wait_fndecl_14450
135209 +disable_so_div1_pll_div_14458 div1 pll_div 0 14458 NULL
135210 +disable_so_timestamp_ata_ering_entry_14485 timestamp ata_ering_entry 0 14485 NULL
135211 +disable_so_mod_delayed_work_on_fndecl_14497 mod_delayed_work_on fndecl 1-4 14497 NULL
135212 +disable_so_dma_addr_rx_14500 dma_addr rx 0 14500 NULL nohasharray
135213 +disable_so__rtl92de_signal_scale_mapping_fndecl_14500 _rtl92de_signal_scale_mapping fndecl 0-2 14500 &disable_so_dma_addr_rx_14500
135214 +disable_so_cp_hqd_pq_rptr_report_addr_hi_hqd_registers_14512 cp_hqd_pq_rptr_report_addr_hi hqd_registers 0 14512 NULL
135215 +disable_so_snd_emu1010_internal_clock_info_fndecl_14514 snd_emu1010_internal_clock_info fndecl 0 14514 NULL
135216 +disable_so_nicvf_queue_reg_write_fndecl_14519 nicvf_queue_reg_write fndecl 3-4 14519 NULL
135217 +disable_so_icsk_user_timeout_inet_connection_sock_14528 icsk_user_timeout inet_connection_sock 0 14528 NULL
135218 +disable_so_gcm_hash_assoc_remain_continue_fndecl_14530 gcm_hash_assoc_remain_continue fndecl 0 14530 NULL
135219 +disable_so_get_max_engine_clock_in_mhz_fndecl_14540 get_max_engine_clock_in_mhz fndecl 0 14540 NULL
135220 +disable_so_port_snd_seq_addr_14543 port snd_seq_addr 0 14543 NULL
135221 +disable_so_nouveau_pmops_runtime_resume_fndecl_14545 nouveau_pmops_runtime_resume fndecl 0 14545 NULL
135222 +disable_so_timeout_vardecl_nf_conntrack_netbios_ns_c_14547 timeout vardecl_nf_conntrack_netbios_ns.c 0 14547 NULL
135223 +disable_so_cik_get_gpu_clock_counter_fndecl_14557 cik_get_gpu_clock_counter fndecl 0 14557 NULL
135224 +disable_so_addrconf_fixup_forwarding_fndecl_14567 addrconf_fixup_forwarding fndecl 0-3 14567 NULL
135225 +disable_so_batadv_nc_hash_choose_fndecl_14575 batadv_nc_hash_choose fndecl 0-2 14575 NULL
135226 +disable_so_pbl_addr_iwch_reg_user_mr_resp_14576 pbl_addr iwch_reg_user_mr_resp 0 14576 NULL
135227 +disable_so_m48t59_rtc_read_time_fndecl_14585 m48t59_rtc_read_time fndecl 0 14585 NULL
135228 +disable_so_read_tsc_fndecl_14589 read_tsc fndecl 0 14589 NULL
135229 +disable_so_rtsc_min_fndecl_14591 rtsc_min fndecl 3-4 14591 NULL
135230 +disable_so_bank_addr_snd_ymfpci_voice_14595 bank_addr snd_ymfpci_voice 0 14595 NULL
135231 +disable_so_hpi_bitstream_get_activity_fndecl_14606 hpi_bitstream_get_activity fndecl 0 14606 NULL
135232 +disable_so_prandom_seed_early_fndecl_14613 prandom_seed_early fndecl 2 14613 NULL
135233 +disable_so_cmd_cons_dma_addr_qlcnic_hostrq_tx_ctx_14615 cmd_cons_dma_addr qlcnic_hostrq_tx_ctx 0 14615 NULL
135234 +disable_so_shash_async_import_fndecl_14618 shash_async_import fndecl 0 14618 NULL
135235 +disable_so_osc_clock_freq_drx_common_attr_14640 osc_clock_freq drx_common_attr 0 14640 NULL
135236 +disable_so_freq_ath5k_edge_power_14657 freq ath5k_edge_power 0 14657 NULL
135237 +disable_so_td_addr_c67x00_td_14658 td_addr c67x00_td 0 14658 NULL
135238 +disable_so_dma_addr_whc_std_14663 dma_addr whc_std 0 14663 NULL nohasharray
135239 +disable_so_elfcorehdr_addr_vardecl_14663 elfcorehdr_addr vardecl 0 14663 &disable_so_dma_addr_whc_std_14663
135240 +disable_so_ene_set_reg_addr_fndecl_14666 ene_set_reg_addr fndecl 2 14666 NULL
135241 +disable_so_fbk_divider_panel_info_14668 fbk_divider panel_info 0 14668 NULL
135242 +disable_so_bytes_snd_pcm_oss_runtime_14669 bytes snd_pcm_oss_runtime 0 14669 NULL
135243 +disable_so_vadc_hw_settle_time_from_dt_fndecl_14670 vadc_hw_settle_time_from_dt fndecl 0-1 14670 NULL
135244 +disable_so_crypto842_mod_init_fndecl_14677 crypto842_mod_init fndecl 0 14677 NULL
135245 +disable_so_max77693_set_timeout_fndecl_14678 max77693_set_timeout fndecl 2 14678 NULL
135246 +disable_so_mtt_base_addr_h_mlx4_qp_context_14690 mtt_base_addr_h mlx4_qp_context 0 14690 NULL
135247 +disable_so_mtt_base_addr_l_mlx4_srq_context_14691 mtt_base_addr_l mlx4_srq_context 0 14691 NULL
135248 +disable_so_fib_info_hash_size_vardecl_fib_semantics_c_14699 fib_info_hash_size vardecl_fib_semantics.c 0 14699 NULL
135249 +disable_so___addr_hash_fndecl_14702 __addr_hash fndecl 0-3-4 14702 NULL
135250 +disable_so_rise_time_lp8788_bl_config_14703 rise_time lp8788_bl_config 0 14703 NULL
135251 +disable_so_ebitmap_start_positive_fndecl_14708 ebitmap_start_positive fndecl 0 14708 NULL
135252 +disable_so_ssb_chipco_watchdog_timer_set_wdt_fndecl_14712 ssb_chipco_watchdog_timer_set_wdt fndecl 2-0 14712 NULL
135253 +disable_so_saddr_ipq_14715 saddr ipq 0 14715 NULL
135254 +disable_so_il4965_math_div_round_fndecl_14717 il4965_math_div_round fndecl 1-2 14717 NULL
135255 +disable_so_dac_mmap_min_addr_vardecl_14725 dac_mmap_min_addr vardecl 0 14725 NULL
135256 +disable_so_show_sas_end_dev_initiator_response_timeout_fndecl_14730 show_sas_end_dev_initiator_response_timeout fndecl 0 14730 NULL
135257 +disable_so_md5_mod_init_fndecl_14761 md5_mod_init fndecl 0 14761 NULL
135258 +disable_so_lasttime_htcp_14766 lasttime htcp 0 14766 NULL
135259 +disable_so_cac_time_ms_mwifiex_radar_params_14775 cac_time_ms mwifiex_radar_params 0 14775 NULL
135260 +disable_so_rs5c348_rtc_set_time_fndecl_14776 rs5c348_rtc_set_time fndecl 0 14776 NULL
135261 +disable_so_o2net_sc_queue_delayed_work_fndecl_14778 o2net_sc_queue_delayed_work fndecl 3 14778 NULL
135262 +disable_so_phonet_address_del_fndecl_14787 phonet_address_del fndecl 0 14787 NULL
135263 +disable_so_efx_phc_adjtime_fndecl_14790 efx_phc_adjtime fndecl 0 14790 NULL
135264 +disable_so_lzo_compress_pages_fndecl_14806 lzo_compress_pages fndecl 3-4 14806 NULL
135265 +disable_so_chv_gpu_freq_fndecl_14811 chv_gpu_freq fndecl 0-2 14811 NULL nohasharray
135266 +disable_so_nbytes_blkcipher_walk_14811 nbytes blkcipher_walk 0 14811 &disable_so_chv_gpu_freq_fndecl_14811
135267 +disable_so_addr___mem_14815 addr __mem 0 14815 NULL
135268 +disable_so___cpufreq_governor_fndecl_14821 __cpufreq_governor fndecl 0 14821 NULL nohasharray
135269 +disable_so_hash_lo_smsc95xx_priv_14821 hash_lo smsc95xx_priv 0 14821 &disable_so___cpufreq_governor_fndecl_14821
135270 +disable_so_naddr_ipath_user_sdma_pkt_14830 naddr ipath_user_sdma_pkt 0 14830 NULL
135271 +disable_so_address_pci_mmcfg_region_14831 address pci_mmcfg_region 0 14831 NULL
135272 +disable_so_crypto_ecb_module_init_fndecl_14834 crypto_ecb_module_init fndecl 0 14834 NULL
135273 +disable_so_last_host_tsc_kvm_vcpu_arch_14836 last_host_tsc kvm_vcpu_arch 0 14836 NULL
135274 +disable_so_eir_has_uuids_fndecl_14845 eir_has_uuids fndecl 2 14845 NULL
135275 +disable_so_b_addr_xfer_desc_buffer_14849 b_addr xfer_desc_buffer 0 14849 NULL
135276 +disable_so_xtal_freq_mxl5005s_config_14852 xtal_freq mxl5005s_config 0 14852 NULL
135277 +disable_so_pvclock_tsc_khz_fndecl_14859 pvclock_tsc_khz fndecl 0 14859 NULL
135278 +disable_so_isl1208_rtc_interrupt_fndecl_14861 isl1208_rtc_interrupt fndecl 0 14861 NULL
135279 +disable_so_dwell_time_passive_wmi_start_scan_arg_14866 dwell_time_passive wmi_start_scan_arg 0 14866 NULL
135280 +disable_so_writeout_period_time_vardecl_page_writeback_c_14870 writeout_period_time vardecl_page-writeback.c 0 14870 NULL
135281 +disable_so_valid_mtrr_type_fndecl_14883 valid_mtrr_type fndecl 1 14883 NULL
135282 +disable_so_dev_idx_sockaddr_nfc_llcp_14893 dev_idx sockaddr_nfc_llcp 0 14893 NULL
135283 +disable_so_addr_nv50_disp_mthd_chan_14896 addr nv50_disp_mthd_chan 0 14896 NULL
135284 +disable_so_ts_paddr_end_ath_hw_14898 ts_paddr_end ath_hw 0 14898 NULL
135285 +disable_so_get_urb_to_r8a66597_addr_fndecl_14901 get_urb_to_r8a66597_addr fndecl 0 14901 NULL
135286 +disable_so_remote_ref_time_lp_14915 remote_ref_time lp 0 14915 NULL
135287 +disable_so_bitmap_id_iscsi_conn_14920 bitmap_id iscsi_conn 0 14920 NULL
135288 +disable_so_root_btrfs_delayed_data_ref_14922 root btrfs_delayed_data_ref 0 14922 NULL
135289 +disable_so_c67x00_ll_read_mem_le16_fndecl_14937 c67x00_ll_read_mem_le16 fndecl 2-4 14937 NULL
135290 +disable_so_addr_sz_picolcd_data_14956 addr_sz picolcd_data 0 14956 NULL
135291 +disable_so_xhci_calculate_intel_u1_timeout_fndecl_14959 xhci_calculate_intel_u1_timeout fndecl 0 14959 NULL
135292 +disable_so_crypto_init_shash_ops_fndecl_14968 crypto_init_shash_ops fndecl 0 14968 NULL
135293 +disable_so_cputime_to_compat_timeval_fndecl_14969 cputime_to_compat_timeval fndecl 1 14969 NULL nohasharray
135294 +disable_so_cpufreq_set_cur_state_fndecl_14969 cpufreq_set_cur_state fndecl 1 14969 &disable_so_cputime_to_compat_timeval_fndecl_14969
135295 +disable_so_start_time_flakey_c_14970 start_time flakey_c 0 14970 NULL
135296 +disable_so_snd_asihpi_sampleclock_add_fndecl_14973 snd_asihpi_sampleclock_add fndecl 0 14973 NULL
135297 +disable_so_addr_sky2_tx_le_14974 addr sky2_tx_le 0 14974 NULL
135298 +disable_so_mcfg_addr_acpi_pci_root_14978 mcfg_addr acpi_pci_root 0 14978 NULL
135299 +disable_so_cryptd_hash_import_fndecl_14985 cryptd_hash_import fndecl 0 14985 NULL
135300 +disable_so_cac_start_time_wireless_dev_14998 cac_start_time wireless_dev 0 14998 NULL
135301 +disable_so_inaddr_any_override_acl_subject_label_15014 inaddr_any_override acl_subject_label 0 15014 NULL
135302 +disable_so_dma_addr_cmdQ_ce_15023 dma_addr cmdQ_ce 0 15023 NULL nohasharray
135303 +disable_so_affs_init_bitmap_fndecl_15023 affs_init_bitmap fndecl 0 15023 &disable_so_dma_addr_cmdQ_ce_15023
135304 +disable_so_select_addr_qla8xxx_minidump_entry_mux_15025 select_addr qla8xxx_minidump_entry_mux 0 15025 NULL
135305 +disable_so_frequency_cx24113_state_15031 frequency cx24113_state 0 15031 NULL
135306 +disable_so_port0_phy_addr_falcon_nvconfig_board_v2_15034 port0_phy_addr falcon_nvconfig_board_v2 0 15034 NULL
135307 +disable_so_snd_dice_transaction_get_clock_source_fndecl_15041 snd_dice_transaction_get_clock_source fndecl 0 15041 NULL
135308 +disable_so_valid_time_prefix_cacheinfo_15043 valid_time prefix_cacheinfo 0 15043 NULL
135309 +disable_so_acpi_get_cpuid_fndecl_15055 acpi_get_cpuid fndecl 0-3 15055 NULL
135310 +disable_so_faddr_rds_info_message_15057 faddr rds_info_message 0 15057 NULL
135311 +disable_so_hsync_pulse_width_lo_oaktrail_timing_info_15059 hsync_pulse_width_lo oaktrail_timing_info 0 15059 NULL
135312 +disable_so_mthca_WRITE_MTT_fndecl_15060 mthca_WRITE_MTT fndecl 0-3 15060 NULL
135313 +disable_so_ath9k_iowrite32_fndecl_15073 ath9k_iowrite32 fndecl 2 15073 NULL
135314 +disable_so_uid_max_xt_owner_match_info_15077 uid_max xt_owner_match_info 0 15077 NULL
135315 +disable_so_addr_low_mcp_kreq_ether_recv_15081 addr_low mcp_kreq_ether_recv 0 15081 NULL
135316 +disable_so_gem_get_device_address_fndecl_15093 gem_get_device_address fndecl 0 15093 NULL
135317 +disable_so_s5m8767_rtc_set_time_reg_fndecl_15094 s5m8767_rtc_set_time_reg fndecl 0 15094 NULL
135318 +disable_so_host_side_addr_fit_sg_descriptor_15098 host_side_addr fit_sg_descriptor 0 15098 NULL
135319 +disable_so_gtt_start_gpu_addr_kfd_dev_15100 gtt_start_gpu_addr kfd_dev 0 15100 NULL
135320 +disable_so_device_timestamp_ieee80211_rx_status_15103 device_timestamp ieee80211_rx_status 0 15103 NULL
135321 +disable_so_tcp_fastopen_reset_cipher_fndecl_15116 tcp_fastopen_reset_cipher fndecl 2 15116 NULL
135322 +disable_so_acpi_leave_sleep_state_prep_fndecl_15121 acpi_leave_sleep_state_prep fndecl 0-1 15121 NULL
135323 +disable_so_suspend_freq_cpufreq_policy_15133 suspend_freq cpufreq_policy 0 15133 NULL
135324 +disable_so___usb_control_msg_fndecl_15142 __usb_control_msg fndecl 8-2-9-5-0-4-6-3 15142 NULL
135325 +disable_so_sin6_scope_id_sockaddr_in6_15151 sin6_scope_id sockaddr_in6 0 15151 NULL
135326 +disable_so_ufshcd_devfreq_target_fndecl_15152 ufshcd_devfreq_target fndecl 0 15152 NULL
135327 +disable_so_dma_addr_wbsd_host_15158 dma_addr wbsd_host 0 15158 NULL
135328 +disable_so_timer_in_use_old_nes_hw_tune_timer_15174 timer_in_use_old nes_hw_tune_timer 0 15174 NULL
135329 +disable_so_mce_log_therm_throt_event_fndecl_15178 mce_log_therm_throt_event fndecl 1 15178 NULL nohasharray
135330 +disable_so_mce_write_fndecl_15178 mce_write fndecl 3-0 15178 &disable_so_mce_log_therm_throt_event_fndecl_15178
135331 +disable_so_expires_cpu_timer_list_15182 expires cpu_timer_list 0 15182 NULL
135332 +disable_so_address_drm_dp_aux_msg_15184 address drm_dp_aux_msg 0 15184 NULL
135333 +disable_so_eip_tss_segment_32_15186 eip tss_segment_32 0 15186 NULL
135334 +disable_so_snd_als4000_interrupt_fndecl_15191 snd_als4000_interrupt fndecl 1 15191 NULL nohasharray
135335 +disable_so_pcf2123_rtc_read_time_fndecl_15191 pcf2123_rtc_read_time fndecl 0 15191 &disable_so_snd_als4000_interrupt_fndecl_15191
135336 +disable_so_rcx_kvm_regs_15192 rcx kvm_regs 0 15192 NULL
135337 +disable_so_dma_addr_s_rxd_os_15193 dma_addr s_rxd_os 0 15193 NULL
135338 +disable_so_retrans_time_ifla_cacheinfo_15201 retrans_time ifla_cacheinfo 0 15201 NULL
135339 +disable_so_cxd2820r_sleep_t_fndecl_15204 cxd2820r_sleep_t fndecl 0 15204 NULL
135340 +disable_so_bcma_core_pcie2_war_delay_perst_enab_fndecl_15208 bcma_core_pcie2_war_delay_perst_enab fndecl 0 15208 NULL
135341 +disable_so_btrfs_delayed_inode_reserve_metadata_fndecl_15215 btrfs_delayed_inode_reserve_metadata fndecl 0 15215 NULL
135342 +disable_so___iowrite64_copy_fndecl_15216 __iowrite64_copy fndecl 3 15216 NULL nohasharray
135343 +disable_so_ext3fs_dirhash_fndecl_15216 ext3fs_dirhash fndecl 2 15216 &disable_so___iowrite64_copy_fndecl_15216
135344 +disable_so_nilfs_btree_propagate_fndecl_15225 nilfs_btree_propagate fndecl 0 15225 NULL
135345 +disable_so_sha256_ssse3_update_fndecl_15226 sha256_ssse3_update fndecl 3 15226 NULL
135346 +disable_so_target_addr_i2400m_bootrom_header_15227 target_addr i2400m_bootrom_header 0 15227 NULL
135347 +disable_so_ip_vs_addr_equal_fndecl_15229 ip_vs_addr_equal fndecl 1 15229 NULL
135348 +disable_so_matroxfb_PLL_calcclock_fndecl_15230 matroxfb_PLL_calcclock fndecl 2-3-0 15230 NULL
135349 +disable_so_int_timeout_msb_data_15245 int_timeout msb_data 0 15245 NULL nohasharray
135350 +disable_so_check_quotactl_permission_fndecl_15245 check_quotactl_permission fndecl 4-0-3-2 15245 &disable_so_int_timeout_msb_data_15245
135351 +disable_so_expires_crash_uid_15248 expires crash_uid 0 15248 NULL
135352 +disable_so_mul_n_basecase_fndecl_15258 mul_n_basecase fndecl 4 15258 NULL
135353 +disable_so_crypto_xcbc_digest_update_fndecl_15259 crypto_xcbc_digest_update fndecl 3 15259 NULL
135354 +disable_so_first_jiffies_ati_remote_15260 first_jiffies ati_remote 0 15260 NULL
135355 +disable_so___get_hash_thresh_fndecl_15268 __get_hash_thresh fndecl 2 15268 NULL
135356 +disable_so_isoc_in_endpointaddr_au0828_dev_15269 isoc_in_endpointaddr au0828_dev 0 15269 NULL
135357 +disable_so_crypto_ctxsize_fndecl_15285 crypto_ctxsize fndecl 0 15285 NULL
135358 +disable_so_max_rx_ip_addr_qlcnic_info_15295 max_rx_ip_addr qlcnic_info 0 15295 NULL nohasharray
135359 +disable_so_mtrr_add_fndecl_15295 mtrr_add fndecl 1-2 15295 &disable_so_max_rx_ip_addr_qlcnic_info_15295
135360 +disable_so_plugged_delay_bau_control_15298 plugged_delay bau_control 0 15298 NULL
135361 +disable_so_skcipher_async_cb_fndecl_15303 skcipher_async_cb fndecl 2 15303 NULL
135362 +disable_so_bytes_bitmap_storage_15310 bytes bitmap_storage 0 15310 NULL
135363 +disable_so_xhci_calculate_u1_timeout_fndecl_15314 xhci_calculate_u1_timeout fndecl 0 15314 NULL nohasharray
135364 +disable_so_sym_getpciclock_fndecl_15314 sym_getpciclock fndecl 0 15314 &disable_so_xhci_calculate_u1_timeout_fndecl_15314 nohasharray
135365 +disable_so_major_hash_ocfs2_dx_hinfo_15314 major_hash ocfs2_dx_hinfo 0 15314 &disable_so_sym_getpciclock_fndecl_15314
135366 +disable_so_ns_delay_scale_fndecl_15317 ns_delay_scale fndecl 4 15317 NULL
135367 +disable_so_addr_atiixp_dma_desc_15333 addr atiixp_dma_desc 0 15333 NULL
135368 +disable_so_logicalBlockNum_kernel_lb_addr_15336 logicalBlockNum kernel_lb_addr 0 15336 NULL
135369 +disable_so_last_rx_timestamp_i40e_ring_15342 last_rx_timestamp i40e_ring 0 15342 NULL
135370 +disable_so_ifa_index_ifaddrmsg_15348 ifa_index ifaddrmsg 0 15348 NULL
135371 +disable_so_timing_reg_mtk_i2c_15349 timing_reg mtk_i2c 0 15349 NULL
135372 +disable_so_msr_srcimp_desc_15353 msr srcimp_desc 0 15353 NULL
135373 +disable_so_r2c_val_fc2580_freq_regs_15359 r2c_val fc2580_freq_regs 0 15359 NULL
135374 +disable_so_xfer_udelay_nci_spi_15364 xfer_udelay nci_spi 0 15364 NULL
135375 +disable_so_hash_key_type_and_desc_fndecl_15370 hash_key_type_and_desc fndecl 0 15370 NULL
135376 +disable_so_set_window_latch_addr_flash_info_15372 set_window latch_addr_flash_info 1 15372 NULL
135377 +disable_so_host_addr_ipw2100_bd_15376 host_addr ipw2100_bd 0 15376 NULL
135378 +disable_so_eeprom_addr_state_15380 eeprom_addr state 0 15380 NULL
135379 +disable_so_sys_mq_timedreceive_fndecl_15392 sys_mq_timedreceive fndecl 1-3 15392 NULL
135380 +disable_so_ghash_async_update_fndecl_15422 ghash_async_update fndecl 0 15422 NULL
135381 +disable_so___send_signal_fndecl_15424 __send_signal fndecl 0-1 15424 NULL
135382 +disable_so_edi_user_regs_struct32_15430 edi user_regs_struct32 0 15430 NULL
135383 +disable_so_perf_cpu_time_max_percent_handler_fndecl_15448 perf_cpu_time_max_percent_handler fndecl 0 15448 NULL
135384 +disable_so_phy_register_fixup_for_uid_fndecl_15449 phy_register_fixup_for_uid fndecl 0 15449 NULL
135385 +disable_so_vpd_address_write_fndecl_15453 vpd_address_write fndecl 0-2-3 15453 NULL
135386 +disable_so_schedule_timeout_killable_fndecl_15458 schedule_timeout_killable fndecl 1-0 15458 NULL
135387 +disable_so_a21_wdt_set_timeout_fndecl_15463 a21_wdt_set_timeout fndecl 2 15463 NULL
135388 +disable_so_reg_val_pll_div_15464 reg_val pll_div 0 15464 NULL
135389 +disable_so_adjfreq_ptp_clock_info_15468 adjfreq ptp_clock_info 2 15468 NULL
135390 +disable_so___nlm_hash_addr6_fndecl_15486 __nlm_hash_addr6 fndecl 0 15486 NULL
135391 +disable_so_addr_sgentry_15489 addr sgentry 0 15489 NULL
135392 +disable_so_psb_sgx_interrupt_fndecl_15502 psb_sgx_interrupt fndecl 2-3 15502 NULL
135393 +disable_so_clk_divider_recalc_rate_fndecl_15503 clk_divider_recalc_rate fndecl 2-0 15503 NULL
135394 +disable_so_xferq_addr_hi_fcoe_kwqe_conn_offload2_15506 xferq_addr_hi fcoe_kwqe_conn_offload2 0 15506 NULL
135395 +disable_so_enable_usb3_lpm_timeout_hc_driver_15513 enable_usb3_lpm_timeout hc_driver 0 15513 NULL
135396 +disable_so_i2c_addr_lg2160_config_15521 i2c_addr lg2160_config 0 15521 NULL
135397 +disable_so_timeout_ms_nvme_passthru_cmd_15526 timeout_ms nvme_passthru_cmd 0 15526 NULL
135398 +disable_so_vm_cr_msr_nested_state_15529 vm_cr_msr nested_state 0 15529 NULL
135399 +disable_so_ocfs2_xattr_find_divide_pos_fndecl_15532 ocfs2_xattr_find_divide_pos fndecl 0 15532 NULL
135400 +disable_so_async_schedule_domain_fndecl_15534 async_schedule_domain fndecl 0 15534 NULL
135401 +disable_so_last_cqm_event_signal_ieee80211_if_managed_15539 last_cqm_event_signal ieee80211_if_managed 0 15539 NULL
135402 +disable_so_aic79xx_seltime_vardecl_aic79xx_osm_c_15542 aic79xx_seltime vardecl_aic79xx_osm.c 0 15542 NULL
135403 +disable_so_hrtimer_interval_ms_pmu_15546 hrtimer_interval_ms pmu 0 15546 NULL
135404 +disable_so_address_hi_msi_msg_15552 address_hi msi_msg 0 15552 NULL
135405 +disable_so_test_and_clear_bit_le_fndecl_15554 test_and_clear_bit_le fndecl 1 15554 NULL
135406 +disable_so_snd_echo_clock_source_put_fndecl_15557 snd_echo_clock_source_put fndecl 0 15557 NULL
135407 +disable_so_wait_for_completion_interruptible_timeout_fndecl_15561 wait_for_completion_interruptible_timeout fndecl 0-2 15561 NULL
135408 +disable_so_recover_width_atiixp_ide_timing_15562 recover_width atiixp_ide_timing 0 15562 NULL
135409 +disable_so_start_int_poll_timer_fndecl_15566 start_int_poll_timer fndecl 2 15566 NULL
135410 +disable_so_runtime_error_dev_pm_info_15567 runtime_error dev_pm_info 0 15567 NULL
135411 +disable_so_rdmsrl_on_cpu_fndecl_15568 rdmsrl_on_cpu fndecl 0-1 15568 NULL
135412 +disable_so_test_ahash_cycles_fndecl_15585 test_ahash_cycles fndecl 0-3 15585 NULL
135413 +disable_so_freq_hz_xc5000_priv_15586 freq_hz xc5000_priv 0 15586 NULL
135414 +disable_so_timeout_d_tpm_vendor_specific_15591 timeout_d tpm_vendor_specific 0 15591 NULL nohasharray
135415 +disable_so_laddr_rds_info_connection_15591 laddr rds_info_connection 0 15591 &disable_so_timeout_d_tpm_vendor_specific_15591
135416 +disable_so_be_get_rss_hash_opts_fndecl_15601 be_get_rss_hash_opts fndecl 0 15601 NULL
135417 +disable_so_shadow_addr_kvm_shadow_walk_iterator_15604 shadow_addr kvm_shadow_walk_iterator 0 15604 NULL
135418 +disable_so_hactive_lo_detailed_pixel_timing_15606 hactive_lo detailed_pixel_timing 0 15606 NULL
135419 +disable_so_SYSC_getpgid_fndecl_15618 SYSC_getpgid fndecl 0-1 15618 NULL
135420 +disable_so_inet_dump_ifaddr_fndecl_15621 inet_dump_ifaddr fndecl 0 15621 NULL
135421 +disable_so_sjw_t_pucan_timing_slow_15625 sjw_t pucan_timing_slow 0 15625 NULL
135422 +disable_so_slave_id_snd_timer_instance_15628 slave_id snd_timer_instance 0 15628 NULL nohasharray
135423 +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
135424 +disable_so_cmin_flt_signal_struct_15630 cmin_flt signal_struct 0 15630 NULL
135425 +disable_so_sg_busaddr_ips_scb_15639 sg_busaddr ips_scb 0 15639 NULL
135426 +disable_so_rq_timeout_rpc_rqst_15640 rq_timeout rpc_rqst 0 15640 NULL
135427 +disable_so_hpi_bitstream_set_data_polarity_fndecl_15646 hpi_bitstream_set_data_polarity fndecl 0-1 15646 NULL
135428 +disable_so_bs_rdiv_cx24113_state_15647 bs_rdiv cx24113_state 0 15647 NULL
135429 +disable_so_addr_lo_sli4_sge_15650 addr_lo sli4_sge 0 15650 NULL
135430 +disable_so_sctp_getsockopt_primary_addr_fndecl_15660 sctp_getsockopt_primary_addr fndecl 0 15660 NULL
135431 +disable_so_chip_uptime_esas2r_adapter_15661 chip_uptime esas2r_adapter 0 15661 NULL
135432 +disable_so_rx_statistics_jiffies_iwl_priv_15670 rx_statistics_jiffies iwl_priv 0 15670 NULL
135433 +disable_so_ablkcipher_walk_phys_fndecl_15671 ablkcipher_walk_phys fndecl 0 15671 NULL
135434 +disable_so_test_bitmaps_and_extents_fndecl_15676 test_bitmaps_and_extents fndecl 0 15676 NULL
135435 +disable_so_cur_rx_coal_timeval_vnic_cq_15695 cur_rx_coal_timeval vnic_cq 0 15695 NULL
135436 +disable_so_ds_addr_bus_dma_segment_15697 ds_addr bus_dma_segment 0 15697 NULL
135437 +disable_so_hrtimer_forward_fndecl_15719 hrtimer_forward fndecl 0 15719 NULL
135438 +disable_so_pmc_sleep_tmr_open_fndecl_15722 pmc_sleep_tmr_open fndecl 0 15722 NULL
135439 +disable_so_ovol_updated_control_runtime_15730 ovol_updated control_runtime 0 15730 NULL
135440 +disable_so___btrfs_run_delayed_refs_fndecl_15751 __btrfs_run_delayed_refs fndecl 0 15751 NULL
135441 +disable_so_at803x_ack_interrupt_fndecl_15758 at803x_ack_interrupt fndecl 0 15758 NULL
135442 +disable_so_phy_addr_bnx2_15762 phy_addr bnx2 0 15762 NULL
135443 +disable_so_acpi_os_sleep_fndecl_15766 acpi_os_sleep fndecl 1 15766 NULL
135444 +disable_so_mceusb_dev_driver_init_fndecl_15775 mceusb_dev_driver_init fndecl 0 15775 NULL
135445 +disable_so_iowrite32be_fndecl_15786 iowrite32be fndecl 1 15786 NULL
135446 +disable_so_rp1_freq_intel_gen6_power_mgmt_15787 rp1_freq intel_gen6_power_mgmt 0 15787 NULL
135447 +disable_so_mapped_rem_addr_nes_cm_info_15788 mapped_rem_addr nes_cm_info 0 15788 NULL
135448 +disable_so_bulkin_endpoint_addr_rsi_91x_usbdev_15790 bulkin_endpoint_addr rsi_91x_usbdev 0 15790 NULL
135449 +disable_so_connected_addr_rds_info_socket_15792 connected_addr rds_info_socket 0 15792 NULL
135450 +disable_so_usc_enable_aux_clock_fndecl_15795 usc_enable_aux_clock fndecl 2 15795 NULL
135451 +disable_so_add_delayed_tree_ref_fndecl_15797 add_delayed_tree_ref fndecl 11-5-6-7-8-9 15797 NULL
135452 +disable_so_wow_intr_before_sleep_ath_softc_15802 wow_intr_before_sleep ath_softc 0 15802 NULL
135453 +disable_so_rgb_time_bd2802_led_platform_data_15808 rgb_time bd2802_led_platform_data 0 15808 NULL
135454 +disable_so_intel_sdvo_get_slave_addr_fndecl_15818 intel_sdvo_get_slave_addr fndecl 0 15818 NULL
135455 +disable_so_tsc_start_vardecl_tsc_c_15853 tsc_start vardecl_tsc.c 0 15853 NULL
135456 +disable_so_get_cycle_time_fndecl_15861 get_cycle_time fndecl 0 15861 NULL
135457 +disable_so_cookie_dmaengine_pcm_runtime_data_15862 cookie dmaengine_pcm_runtime_data 0 15862 NULL nohasharray
135458 +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
135459 +disable_so_vactive_timing_15863 vactive timing 0 15863 NULL
135460 +disable_so_management_agent_address_sbp2_target_15871 management_agent_address sbp2_target 0 15871 NULL
135461 +disable_so_i2c_check_addr_busy_fndecl_15889 i2c_check_addr_busy fndecl 2 15889 NULL
135462 +disable_so_db_rec_addr_mlx4_cq_context_15890 db_rec_addr mlx4_cq_context 0 15890 NULL
135463 +disable_so_addr_wil_memio_block_15893 addr wil_memio_block 0 15893 NULL
135464 +disable_so_interrupt_out_size_usb_serial_port_15896 interrupt_out_size usb_serial_port 0 15896 NULL
135465 +disable_so_wait_for_completion_killable_fndecl_15899 wait_for_completion_killable fndecl 0 15899 NULL
135466 +disable_so_m48t35_read_time_fndecl_15900 m48t35_read_time fndecl 0 15900 NULL
135467 +disable_so_ath9k_btcoex_handle_interrupt_fndecl_15912 ath9k_btcoex_handle_interrupt fndecl 2 15912 NULL
135468 +disable_so_get_key_lib80211_crypto_ops_15916 get_key lib80211_crypto_ops 0-2 15916 NULL
135469 +disable_so_tw_sport_inet_timewait_sock_15928 tw_sport inet_timewait_sock 0 15928 NULL
135470 +disable_so_crypto_xor_byte_fndecl_15934 crypto_xor_byte fndecl 3 15934 NULL
135471 +disable_so_nilfs_btree_promote_key_fndecl_15935 nilfs_btree_promote_key fndecl 4 15935 NULL
135472 +disable_so_irq_set_chip_data_fndecl_15945 irq_set_chip_data fndecl 1 15945 NULL
135473 +disable_so_retransmits_timed_out_fndecl_15952 retransmits_timed_out fndecl 3 15952 NULL
135474 +disable_so_titsc_config_wires_fndecl_15953 titsc_config_wires fndecl 0 15953 NULL
135475 +disable_so_cpufreq_quick_get_max_fndecl_15956 cpufreq_quick_get_max fndecl 0-1 15956 NULL
135476 +disable_so_verify_ptp_clock_info_15963 verify ptp_clock_info 4 15963 NULL
135477 +disable_so_gid_ceph_mds_caps_15966 gid ceph_mds_caps 0 15966 NULL
135478 +disable_so_mlx4_ib_update_cache_on_guid_change_fndecl_15969 mlx4_ib_update_cache_on_guid_change fndecl 2-3 15969 NULL
135479 +disable_so_musb_write_txfunaddr_fndecl_15974 musb_write_txfunaddr fndecl 2-3 15974 NULL
135480 +disable_so_acpi_ut_add_address_range_fndecl_16007 acpi_ut_add_address_range fndecl 1-2-3-0 16007 NULL
135481 +disable_so_dma_addr_rsxx_dma_16020 dma_addr rsxx_dma 0 16020 NULL
135482 +disable_so_setup_acpi_object_addr_handler_16031 setup acpi_object_addr_handler 0 16031 NULL
135483 +disable_so_idletimer_tg_init_fndecl_16041 idletimer_tg_init fndecl 0 16041 NULL
135484 +disable_so_msdu_paddr_htt_mgmt_tx_desc_16042 msdu_paddr htt_mgmt_tx_desc 0 16042 NULL
135485 +disable_so_radeon_atombios_parse_pplib_non_clock_info_fndecl_16044 radeon_atombios_parse_pplib_non_clock_info fndecl 2 16044 NULL
135486 +disable_so_scale_stime_fndecl_16047 scale_stime fndecl 1-2-3-0 16047 NULL
135487 +disable_so_wl12xx_enable_interrupts_fndecl_16057 wl12xx_enable_interrupts fndecl 0 16057 NULL
135488 +disable_so_paddr_persistent_ram_zone_16058 paddr persistent_ram_zone 0 16058 NULL
135489 +disable_so_get_dst_timing_fndecl_16070 get_dst_timing fndecl 0 16070 NULL
135490 +disable_so_max_init_timeo_sctp_association_16072 max_init_timeo sctp_association 0 16072 NULL
135491 +disable_so_update_gid_table_fndecl_16082 update_gid_table fndecl 2 16082 NULL
135492 +disable_so_dma_addr_xilly_mapping_16083 dma_addr xilly_mapping 0 16083 NULL
135493 +disable_so_bt_wait_time_ath_btcoex_16086 bt_wait_time ath_btcoex 0 16086 NULL
135494 +disable_so_cfg80211_rx_unexpected_4addr_frame_fndecl_16088 cfg80211_rx_unexpected_4addr_frame fndecl 3 16088 NULL
135495 +disable_so_ip6_rt_gc_timeout_netns_sysctl_ipv6_16090 ip6_rt_gc_timeout netns_sysctl_ipv6 0 16090 NULL nohasharray
135496 +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
135497 +disable_so_wimax_addr_scnprint_fndecl_16095 wimax_addr_scnprint fndecl 4 16095 NULL
135498 +disable_so_airspy_s_frequency_fndecl_16098 airspy_s_frequency fndecl 0 16098 NULL
135499 +disable_so_crypto_blkcipher_ctxsize_fndecl_16105 crypto_blkcipher_ctxsize fndecl 0 16105 NULL
135500 +disable_so_blk_addr_f2fs_io_info_16107 blk_addr f2fs_io_info 0 16107 NULL
135501 +disable_so_div_r0_pll_values_16109 div_r0 pll_values 0 16109 NULL
135502 +disable_so_slack_hold_time_dql_16111 slack_hold_time dql 0 16111 NULL
135503 +disable_so_iscsi_tpg_attrib_show_netif_timeout_fndecl_16119 iscsi_tpg_attrib_show_netif_timeout fndecl 0 16119 NULL
135504 +disable_so_crypto_inc_fndecl_16125 crypto_inc fndecl 2 16125 NULL
135505 +disable_so_dualwatch_jiffies_ivtv_16137 dualwatch_jiffies ivtv 0 16137 NULL nohasharray
135506 +disable_so_enable_irq_fndecl_16137 enable_irq fndecl 1 16137 &disable_so_dualwatch_jiffies_ivtv_16137
135507 +disable_so_alb_set_mac_address_fndecl_16150 alb_set_mac_address fndecl 0 16150 NULL
135508 +disable_so_do_sigtimedwait_fndecl_16152 do_sigtimedwait fndecl 0 16152 NULL
135509 +disable_so_sys_timerfd_create_fndecl_16155 sys_timerfd_create fndecl 2-1 16155 NULL
135510 +disable_so_xen_smp_send_reschedule_fndecl_16161 xen_smp_send_reschedule fndecl 1 16161 NULL nohasharray
135511 +disable_so_addrHigh_ulp_bde64_16161 addrHigh ulp_bde64 0 16161 &disable_so_xen_smp_send_reschedule_fndecl_16161
135512 +disable_so_storm_memset_spq_addr_fndecl_16172 storm_memset_spq_addr fndecl 2-3 16172 NULL
135513 +disable_so_inactivity_timeout_cfhsi_config_16173 inactivity_timeout cfhsi_config 0 16173 NULL nohasharray
135514 +disable_so_iwl_eeprom_query_addr_fndecl_16173 iwl_eeprom_query_addr fndecl 2-3 16173 &disable_so_inactivity_timeout_cfhsi_config_16173
135515 +disable_so_nmsrs_kvm_msr_list_16175 nmsrs kvm_msr_list 0 16175 NULL
135516 +disable_so_count_radeon_vce_clock_voltage_dependency_table_16180 count radeon_vce_clock_voltage_dependency_table 0 16180 NULL
135517 +disable_so_qla4_83xx_wr_reg_indirect_fndecl_16184 qla4_83xx_wr_reg_indirect fndecl 2-3 16184 NULL
135518 +disable_so_show_src_clock_fndecl_16195 show_src_clock fndecl 0 16195 NULL
135519 +disable_so_timeout_ncp_lock_ioctl_16196 timeout ncp_lock_ioctl 0 16196 NULL
135520 +disable_so_sctp_getsockopt_local_addrs_fndecl_16201 sctp_getsockopt_local_addrs fndecl 2 16201 NULL nohasharray
135521 +disable_so_wusb_set_dev_addr_fndecl_16201 wusb_set_dev_addr fndecl 3 16201 &disable_so_sctp_getsockopt_local_addrs_fndecl_16201
135522 +disable_so_ageing_time___bridge_info_16213 ageing_time __bridge_info 0 16213 NULL
135523 +disable_so_bd_list_addr_hi_bnx2i_login_request_16219 bd_list_addr_hi bnx2i_login_request 0 16219 NULL
135524 +disable_so_btrfs_delete_delayed_items_fndecl_16220 btrfs_delete_delayed_items fndecl 0 16220 NULL nohasharray
135525 +disable_so_sethdraddr_fndecl_16220 sethdraddr fndecl 0 16220 &disable_so_btrfs_delete_delayed_items_fndecl_16220
135526 +disable_so_ci_i2c_addr_netup_ci_state_16240 ci_i2c_addr netup_ci_state 0 16240 NULL
135527 +disable_so_hi_phys_addr_16280 hi phys_addr 0 16280 NULL
135528 +disable_so___chk_range_not_ok_fndecl_16282 __chk_range_not_ok fndecl 1-2 16282 NULL
135529 +disable_so_ocfs2_add_clusters_in_btree_fndecl_16283 ocfs2_add_clusters_in_btree fndecl 0-4 16283 NULL
135530 +disable_so_prev_task_link_tss_segment_32_16296 prev_task_link tss_segment_32 0 16296 NULL
135531 +disable_so_ad1889_load_adc_interrupt_count_fndecl_16303 ad1889_load_adc_interrupt_count fndecl 2 16303 NULL
135532 +disable_so_cp_mqd_base_addr_lo_cik_mqd_16307 cp_mqd_base_addr_lo cik_mqd 0 16307 NULL
135533 +disable_so_led_on_time_adp5520_leds_platform_data_16308 led_on_time adp5520_leds_platform_data 0 16308 NULL
135534 +disable_so_dma_addr_adf_etr_ring_data_16309 dma_addr adf_etr_ring_data 0 16309 NULL
135535 +disable_so_demod_address_s921_config_16312 demod_address s921_config 0 16312 NULL
135536 +disable_so_valid_lft_inet6_ifaddr_16318 valid_lft inet6_ifaddr 0 16318 NULL
135537 +disable_so_addr_boom_rx_desc_16324 addr boom_rx_desc 0 16324 NULL
135538 +disable_so_ghash_async_digest_fndecl_16326 ghash_async_digest fndecl 0 16326 NULL
135539 +disable_so_i_atime_f2fs_inode_16339 i_atime f2fs_inode 0 16339 NULL
135540 +disable_so_update_bus_time_fndecl_16343 update_bus_time fndecl 0 16343 NULL
135541 +disable_so_addr_st_register_16344 addr st_register 0 16344 NULL nohasharray
135542 +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
135543 +disable_so_pll_prediv_dibx000_bandwidth_config_16345 pll_prediv dibx000_bandwidth_config 0 16345 NULL
135544 +disable_so_delay_kbd_repeat_16363 delay kbd_repeat 0 16363 NULL
135545 +disable_so_rproc_elf_get_boot_addr_fndecl_16372 rproc_elf_get_boot_addr fndecl 0 16372 NULL
135546 +disable_so_f2fs_dentry_hash_fndecl_16378 f2fs_dentry_hash fndecl 0 16378 NULL
135547 +disable_so_alarm_nvkm_timer_16388 alarm nvkm_timer 2 16388 NULL
135548 +disable_so_snd_seq_oss_timer_continue_fndecl_16406 snd_seq_oss_timer_continue fndecl 0 16406 NULL
135549 +disable_so_p1_mt9t112_pll_divider_16434 p1 mt9t112_pll_divider 0 16434 NULL
135550 +disable_so_unmap_sg_dma_map_ops_16437 unmap_sg dma_map_ops 3 16437 NULL
135551 +disable_so_ccp_aes_rfc3686_encrypt_fndecl_16455 ccp_aes_rfc3686_encrypt fndecl 0 16455 NULL
135552 +disable_so_bad_dma_addr_vardecl_amd_gart_64_c_16460 bad_dma_addr vardecl_amd_gart_64.c 0 16460 NULL
135553 +disable_so_ath6kl_sdio_set_cmd53_arg_fndecl_16468 ath6kl_sdio_set_cmd53_arg fndecl 3-7 16468 NULL
135554 +disable_so_list_phy_addr_list_info_hold_16469 list_phy_addr list_info_hold 0 16469 NULL
135555 +disable_so_jack_detect_delay_max98095_pdata_16483 jack_detect_delay max98095_pdata 0 16483 NULL
135556 +disable_so_bcma_erom_get_addr_desc_fndecl_16484 bcma_erom_get_addr_desc fndecl 0 16484 NULL nohasharray
135557 +disable_so_fib_info_hash_free_fndecl_16484 fib_info_hash_free fndecl 2 16484 &disable_so_bcma_erom_get_addr_desc_fndecl_16484
135558 +disable_so_frequency_xc2028_data_16487 frequency xc2028_data 0 16487 NULL
135559 +disable_so_acpi_hw_extended_sleep_fndecl_16503 acpi_hw_extended_sleep fndecl 0 16503 NULL
135560 +disable_so_lxt970_ack_interrupt_fndecl_16507 lxt970_ack_interrupt fndecl 0 16507 NULL nohasharray
135561 +disable_so_debug_dma_map_page_fndecl_16507 debug_dma_map_page fndecl 3-6-4 16507 &disable_so_lxt970_ack_interrupt_fndecl_16507
135562 +disable_so_freq_hi_jiffies_od_cpu_dbs_info_s_16514 freq_hi_jiffies od_cpu_dbs_info_s 0 16514 NULL
135563 +disable_so_address_u132_respond_16518 address u132_respond 0 16518 NULL
135564 +disable_so_tegra_spi_transfer_delay_fndecl_16528 tegra_spi_transfer_delay fndecl 1 16528 NULL
135565 +disable_so_cdb_phyaddr_hi32_AdapterControlBlock_16537 cdb_phyaddr_hi32 AdapterControlBlock 0 16537 NULL
135566 +disable_so_copied_seq_cxgbi_sock_16540 copied_seq cxgbi_sock 0 16540 NULL
135567 +disable_so_src_addr_lo_dmae_command_16542 src_addr_lo dmae_command 0 16542 NULL
135568 +disable_so_addr_lo_eth_tx_bd_16543 addr_lo eth_tx_bd 0 16543 NULL
135569 +disable_so_ccp_aes_cmac_digest_fndecl_16547 ccp_aes_cmac_digest fndecl 0 16547 NULL
135570 +disable_so_ip_pt_regs_16548 ip pt_regs 0 16548 NULL
135571 +disable_so_sleep_vol_cache_fan53555_device_info_16553 sleep_vol_cache fan53555_device_info 0 16553 NULL
135572 +disable_so_hblank_hi_oaktrail_timing_info_16559 hblank_hi oaktrail_timing_info 0 16559 NULL
135573 +disable_so_qla2x00_get_async_timeout_fndecl_16577 qla2x00_get_async_timeout fndecl 0 16577 NULL
135574 +disable_so___bitmap_andnot_fndecl_16578 __bitmap_andnot fndecl 4 16578 NULL
135575 +disable_so_hfreq_fb_cvt_data_16579 hfreq fb_cvt_data 0 16579 NULL
135576 +disable_so_tseg1_pucan_timing_slow_16580 tseg1 pucan_timing_slow 0 16580 NULL
135577 +disable_so_freq_rfmon_header_16593 freq rfmon_header 0 16593 NULL
135578 +disable_so_load_block_bitmap_fndecl_16597 load_block_bitmap fndecl 0-3 16597 NULL
135579 +disable_so_flush_timer_il_lq_sta_16606 flush_timer il_lq_sta 0 16606 NULL
135580 +disable_so_ieee80211_channel_to_frequency_fndecl_16619 ieee80211_channel_to_frequency fndecl 0-1 16619 NULL
135581 +disable_so_log_guest_addr_vhost_vring_addr_16627 log_guest_addr vhost_vring_addr 0 16627 NULL nohasharray
135582 +disable_so_cpumask_first_fndecl_16627 cpumask_first fndecl 0 16627 &disable_so_log_guest_addr_vhost_vring_addr_16627
135583 +disable_so_sctp_addr_id2transport_fndecl_16639 sctp_addr_id2transport fndecl 3 16639 NULL
135584 +disable_so_dx_context_paddr_sst_hsw_16656 dx_context_paddr sst_hsw 0 16656 NULL
135585 +disable_so_demod_address_au8522_config_16665 demod_address au8522_config 0 16665 NULL
135586 +disable_so_acpi_device_uid_show_fndecl_16681 acpi_device_uid_show fndecl 0 16681 NULL nohasharray
135587 +disable_so_sys_setresuid16_fndecl_16681 sys_setresuid16 fndecl 0-1-2-3 16681 &disable_so_acpi_device_uid_show_fndecl_16681
135588 +disable_so_crypto_rfc4106_encrypt_fndecl_16683 crypto_rfc4106_encrypt fndecl 0 16683 NULL
135589 +disable_so_field_bit_length_acpi_create_field_info_16693 field_bit_length acpi_create_field_info 0 16693 NULL nohasharray
135590 +disable_so_insert_revoke_hash_fndecl_16693 insert_revoke_hash fndecl 0-2 16693 &disable_so_field_bit_length_acpi_create_field_info_16693
135591 +disable_so_target_cpufreq_driver_16704 target cpufreq_driver 2 16704 NULL
135592 +disable_so_vm_mmap_pgoff_fndecl_16712 vm_mmap_pgoff fndecl 0-2-4-5-6 16712 NULL
135593 +disable_so_time_kvm_vcpu_arch_16718 time kvm_vcpu_arch 0 16718 NULL
135594 +disable_so_mark_bitmap_end_fndecl_16723 mark_bitmap_end fndecl 1-2 16723 NULL
135595 +disable_so_edi_tss_segment_32_16727 edi tss_segment_32 0 16727 NULL
135596 +disable_so_native_calibrate_tsc_fndecl_16735 native_calibrate_tsc fndecl 0 16735 NULL
135597 +disable_so_buf_phy_addr_low_ql_rcv_buf_cb_16742 buf_phy_addr_low ql_rcv_buf_cb 0 16742 NULL
135598 +disable_so_mv88e6131_port_to_phy_addr_fndecl_16751 mv88e6131_port_to_phy_addr fndecl 0-2 16751 NULL
135599 +disable_so_vpd_cap_addr_pci_params_16752 vpd_cap_addr pci_params 0 16752 NULL nohasharray
135600 +disable_so_qce_ablkcipher_decrypt_fndecl_16752 qce_ablkcipher_decrypt fndecl 0 16752 &disable_so_vpd_cap_addr_pci_params_16752
135601 +disable_so_guest_interruptibility_info_vmcs12_16754 guest_interruptibility_info vmcs12 0 16754 NULL
135602 +disable_so_dma_ops_alloc_addresses_fndecl_16763 dma_ops_alloc_addresses fndecl 0-3-4-5 16763 NULL
135603 +disable_so_base_io_addr_cx25821_dev_16770 base_io_addr cx25821_dev 0 16770 NULL
135604 +disable_so_w1_delay_parm_vardecl_w1_io_c_16771 w1_delay_parm vardecl_w1_io.c 0 16771 NULL
135605 +disable_so_devm_kasprintf_fndecl_16792 devm_kasprintf fndecl 2 16792 NULL nohasharray
135606 +disable_so_crypto_rfc4309_setauthsize_fndecl_16792 crypto_rfc4309_setauthsize fndecl 2 16792 &disable_so_devm_kasprintf_fndecl_16792
135607 +disable_so_blp_qat_crypto_request_buffs_16801 blp qat_crypto_request_buffs 0 16801 NULL
135608 +disable_so_crypto_enqueue_request_fndecl_16802 crypto_enqueue_request fndecl 0 16802 NULL
135609 +disable_so_si2165_sleep_fndecl_16803 si2165_sleep fndecl 0 16803 NULL
135610 +disable_so_count_radeon_uvd_clock_voltage_dependency_table_16804 count radeon_uvd_clock_voltage_dependency_table 0 16804 NULL
135611 +disable_so_addr_low_viafb_vx855_dma_descr_16813 addr_low viafb_vx855_dma_descr 0 16813 NULL
135612 +disable_so_shash_async_digest_fndecl_16817 shash_async_digest fndecl 0 16817 NULL
135613 +disable_so_ip_apei_exec_context_16824 ip apei_exec_context 0 16824 NULL nohasharray
135614 +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
135615 +disable_so_xfs_btree_delete_fndecl_16843 xfs_btree_delete fndecl 0 16843 NULL
135616 +disable_so_round_jiffies_up_fndecl_16844 round_jiffies_up fndecl 1-0 16844 NULL
135617 +disable_so___add_delayed_refs_fndecl_16846 __add_delayed_refs fndecl 0-5 16846 NULL
135618 +disable_so_tv_sec_xfs_bstime_16848 tv_sec xfs_bstime 0 16848 NULL
135619 +disable_so_lsize_mtrr_value_16850 lsize mtrr_value 0 16850 NULL
135620 +disable_so_demod_address_stv0288_config_16852 demod_address stv0288_config 0 16852 NULL
135621 +disable_so_efi_lookup_mapped_addr_fndecl_16854 efi_lookup_mapped_addr fndecl 1 16854 NULL
135622 +disable_so_schedule_timeout_fndecl_16856 schedule_timeout fndecl 0-1 16856 NULL
135623 +disable_so_ceph_aes_decrypt2_fndecl_16857 ceph_aes_decrypt2 fndecl 2-8 16857 NULL
135624 +disable_so_da9055_wdt_set_timeout_fndecl_16860 da9055_wdt_set_timeout fndecl 2-0 16860 NULL
135625 +disable_so_erst_dma_addr_xhci_erst_16864 erst_dma_addr xhci_erst 0 16864 NULL
135626 +disable_so_prefered_lft_inet6_ifaddr_16873 prefered_lft inet6_ifaddr 0 16873 NULL
135627 +disable_so_ti_tsc_driver_init_fndecl_16883 ti_tsc_driver_init fndecl 0 16883 NULL
135628 +disable_so_dataout_timeout_iscsi_node_attrib_16884 dataout_timeout iscsi_node_attrib 0 16884 NULL
135629 +disable_so___rtc_read_time_fndecl_16890 __rtc_read_time fndecl 0 16890 NULL nohasharray
135630 +disable_so_tn_smc_rreg_fndecl_16890 tn_smc_rreg fndecl 0-2 16890 &disable_so___rtc_read_time_fndecl_16890
135631 +disable_so_lpage_dma_addr_genwqe_sgl_16893 lpage_dma_addr genwqe_sgl 0 16893 NULL
135632 +disable_so_schedule_on_each_cpu_fndecl_16903 schedule_on_each_cpu fndecl 0 16903 NULL nohasharray
135633 +disable_so_print_dropped_signal_fndecl_16903 print_dropped_signal fndecl 1 16903 &disable_so_schedule_on_each_cpu_fndecl_16903
135634 +disable_so_pctv452e_read_mac_address_fndecl_16904 pctv452e_read_mac_address fndecl 0 16904 NULL
135635 +disable_so_regcache_lzo_get_blkindex_fndecl_16910 regcache_lzo_get_blkindex fndecl 0-2 16910 NULL
135636 +disable_so_login_timeout_qla_hw_data_16911 login_timeout qla_hw_data 0 16911 NULL
135637 +disable_so_bitmap_find_free_region_fndecl_16912 bitmap_find_free_region fndecl 0-2-3 16912 NULL
135638 +disable_so_bit_reverse_mpeg_output_fndecl_16915 bit_reverse_mpeg_output fndecl 0 16915 NULL
135639 +disable_so_da9063_wdt_set_timeout_fndecl_16916 da9063_wdt_set_timeout fndecl 2-0 16916 NULL
135640 +disable_so_pci_bus_insert_busn_res_fndecl_16923 pci_bus_insert_busn_res fndecl 3-2 16923 NULL
135641 +disable_so_port_mlx4_next_alias_guid_work_16924 port mlx4_next_alias_guid_work 0 16924 NULL
135642 +disable_so_port_guid_nodeinfo_16928 port_guid nodeinfo 0 16928 NULL
135643 +disable_so_transition_latency_cpufreq_cpuinfo_16939 transition_latency cpufreq_cpuinfo 0 16939 NULL
135644 +disable_so_si476x_core_cmd_fm_phase_div_status_fndecl_16940 si476x_core_cmd_fm_phase_div_status fndecl 0 16940 NULL nohasharray
135645 +disable_so_convert_hwaddr_wlcore_ops_16940 convert_hwaddr wlcore_ops 0 16940 &disable_so_si476x_core_cmd_fm_phase_div_status_fndecl_16940
135646 +disable_so_tps80031_rtc_set_time_fndecl_16950 tps80031_rtc_set_time fndecl 0 16950 NULL
135647 +disable_so_select_addr_qla8044_minidump_entry_mux_16956 select_addr qla8044_minidump_entry_mux 0 16956 NULL
135648 +disable_so_hr222_get_external_clock_fndecl_16966 hr222_get_external_clock fndecl 0 16966 NULL
135649 +disable_so_evm_calc_hash_fndecl_16971 evm_calc_hash fndecl 0-4 16971 NULL
135650 +disable_so_ima_maxorder_vardecl_ima_crypto_c_16973 ima_maxorder vardecl_ima_crypto.c 0 16973 NULL
135651 +disable_so_delay_sh_keysc_info_16974 delay sh_keysc_info 0 16974 NULL
135652 +disable_so_sample_point_can_bittiming_16980 sample_point can_bittiming 0 16980 NULL
135653 +disable_so_ipmi_set_timeout_fndecl_16982 ipmi_set_timeout fndecl 0 16982 NULL
135654 +disable_so_address_SG32ENTRY_16984 address SG32ENTRY 0 16984 NULL
135655 +disable_so_mlx4_ib_guid_port_init_fndecl_16985 mlx4_ib_guid_port_init fndecl 2 16985 NULL
135656 +disable_so_ma901radio_set_freq_fndecl_16989 ma901radio_set_freq fndecl 0-2 16989 NULL
135657 +disable_so_i_ctime_f2fs_inode_17005 i_ctime f2fs_inode 0 17005 NULL
135658 +disable_so_pa_rxrf_lna2_freq_tune_chan_info_2064_lcnphy_17009 pa_rxrf_lna2_freq_tune chan_info_2064_lcnphy 0 17009 NULL
135659 +disable_so_vhost_add_used_and_signal_n_fndecl_17013 vhost_add_used_and_signal_n fndecl 4 17013 NULL
135660 +disable_so_fragshift_snd_pcm_oss_runtime_17015 fragshift snd_pcm_oss_runtime 0 17015 NULL
135661 +disable_so_sci_rx_interrupt_fndecl_17016 sci_rx_interrupt fndecl 1 17016 NULL
135662 +disable_so_wakeup_last_time_show_fndecl_17020 wakeup_last_time_show fndecl 0 17020 NULL
135663 +disable_so_from_addr_efx_memcpy_req_17021 from_addr efx_memcpy_req 0 17021 NULL
135664 +disable_so_tcp_timer_core_clk_divisor_nes_adapter_17033 tcp_timer_core_clk_divisor nes_adapter 0 17033 NULL
135665 +disable_so_reconnect_delay_srp_rport_17034 reconnect_delay srp_rport 0 17034 NULL
135666 +disable_so_clock_frequency_s3c_camif_sensor_info_17035 clock_frequency s3c_camif_sensor_info 0 17035 NULL
135667 +disable_so_copy_to_user_kmaddress_fndecl_17049 copy_to_user_kmaddress fndecl 0 17049 NULL
135668 +disable_so_il_send_rxon_timing_fndecl_17051 il_send_rxon_timing fndecl 0 17051 NULL
135669 +disable_so_system_time_pvclock_vcpu_time_info_17061 system_time pvclock_vcpu_time_info 0 17061 NULL
135670 +disable_so_ds3234_read_time_fndecl_17062 ds3234_read_time fndecl 0 17062 NULL
135671 +disable_so_dat_addr_batadv_orig_node_17063 dat_addr batadv_orig_node 0 17063 NULL
135672 +disable_so_master_cycle_now_kvm_arch_17072 master_cycle_now kvm_arch 0 17072 NULL
135673 +disable_so_netxen_decode_crb_addr_fndecl_17076 netxen_decode_crb_addr fndecl 0-1 17076 NULL
135674 +disable_so_pwm1_freq_lm63_data_17083 pwm1_freq lm63_data 0 17083 NULL
135675 +disable_so_leddc_on_time_ssb_sprom_17089 leddc_on_time ssb_sprom 0 17089 NULL
135676 +disable_so_timer_offset_tg3_17106 timer_offset tg3 0 17106 NULL
135677 +disable_so_rcvhdrqtailaddr_phys_qib_ctxtdata_17108 rcvhdrqtailaddr_phys qib_ctxtdata 0 17108 NULL nohasharray
135678 +disable_so_next_signal_fndecl_17108 next_signal fndecl 0 17108 &disable_so_rcvhdrqtailaddr_phys_qib_ctxtdata_17108
135679 +disable_so_ptp_write_host_time_efx_nic_type_17118 ptp_write_host_time efx_nic_type 2 17118 NULL
135680 +disable_so_isl12057_rtc_set_time_fndecl_17119 isl12057_rtc_set_time fndecl 0 17119 NULL
135681 +disable_so_p4_mt9t112_pll_divider_17123 p4 mt9t112_pll_divider 0 17123 NULL
135682 +disable_so___sk_mem_schedule_fndecl_17130 __sk_mem_schedule fndecl 2 17130 NULL
135683 +disable_so_do_sched_setscheduler_fndecl_17133 do_sched_setscheduler fndecl 2-1-0 17133 NULL
135684 +disable_so_demod_address_s5h1420_config_17152 demod_address s5h1420_config 0 17152 NULL
135685 +disable_so_stats_reset_time_fnic_17155 stats_reset_time fnic 0 17155 NULL nohasharray
135686 +disable_so_buffer_addr_hi_iscsi_bd_17155 buffer_addr_hi iscsi_bd 0 17155 &disable_so_stats_reset_time_fnic_17155 nohasharray
135687 +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
135688 +disable_so_bit_cursor_fndecl_17158 bit_cursor fndecl 4-5-6 17158 NULL
135689 +disable_so_nv50_fan_pwm_clock_fndecl_17168 nv50_fan_pwm_clock fndecl 0 17168 NULL
135690 +disable_so_s_def_resuid_ext2_super_block_17174 s_def_resuid ext2_super_block 0 17174 NULL
135691 +disable_so_delay_until_ipoib_mcast_17176 delay_until ipoib_mcast 0 17176 NULL
135692 +disable_so_command_addr_acpi_ec_17177 command_addr acpi_ec 0 17177 NULL
135693 +disable_so_set_freq_adis16400_chip_info_17183 set_freq adis16400_chip_info 0 17183 NULL
135694 +disable_so_fd_pppol2tpin6_addr_17186 fd pppol2tpin6_addr 0 17186 NULL
135695 +disable_so_genwqe_set_interrupt_capability_fndecl_17191 genwqe_set_interrupt_capability fndecl 2-0 17191 NULL
135696 +disable_so_random_frame_ehci_hcd_17194 random_frame ehci_hcd 0 17194 NULL nohasharray
135697 +disable_so_ctrl_req_addr_dwc3_17194 ctrl_req_addr dwc3 0 17194 &disable_so_random_frame_ehci_hcd_17194
135698 +disable_so_xhci_disable_usb3_lpm_timeout_fndecl_17199 xhci_disable_usb3_lpm_timeout fndecl 0 17199 NULL
135699 +disable_so_sp_dma_addr_hostdata_17202 sp_dma_addr hostdata 0 17202 NULL nohasharray
135700 +disable_so_drbg_hash_hashgen_fndecl_17202 drbg_hash_hashgen fndecl 0-3 17202 &disable_so_sp_dma_addr_hostdata_17202
135701 +disable_so_demod_address_mt312_config_17203 demod_address mt312_config 0 17203 NULL
135702 +disable_so_buf_count_ccp_sha_req_ctx_17205 buf_count ccp_sha_req_ctx 0 17205 NULL
135703 +disable_so_atiixp_set_pio_timing_fndecl_17209 atiixp_set_pio_timing fndecl 3 17209 NULL
135704 +disable_so_tpm2_get_random_fndecl_17212 tpm2_get_random fndecl 0-3 17212 NULL
135705 +disable_so_offset_btrfs_key_17213 offset btrfs_key 0 17213 NULL
135706 +disable_so_dccps_timestamp_time_dccp_sock_17214 dccps_timestamp_time dccp_sock 0 17214 NULL
135707 +disable_so_this_tsc_write_kvm_vcpu_arch_17221 this_tsc_write kvm_vcpu_arch 0 17221 NULL
135708 +disable_so_cpufreq_driver_target_fndecl_17222 cpufreq_driver_target fndecl 2 17222 NULL
135709 +disable_so_prev_task_link_tss_segment_16_17224 prev_task_link tss_segment_16 0 17224 NULL
135710 +disable_so_sc92031_interrupt_fndecl_17226 sc92031_interrupt fndecl 1 17226 NULL nohasharray
135711 +disable_so_daddr_irnet_socket_17226 daddr irnet_socket 0 17226 &disable_so_sc92031_interrupt_fndecl_17226 nohasharray
135712 +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
135713 +disable_so_iffreq_tuner_params_17241 iffreq tuner_params 0 17241 NULL
135714 +disable_so_erase_time_flchip_17257 erase_time flchip 0 17257 NULL
135715 +disable_so_lp8788_is_valid_buck_addr_fndecl_17271 lp8788_is_valid_buck_addr fndecl 1 17271 NULL nohasharray
135716 +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
135717 +disable_so_pci_timedia_setup_fndecl_17276 pci_timedia_setup fndecl 4 17276 NULL
135718 +disable_so_security_task_setpgid_fndecl_17277 security_task_setpgid fndecl 2 17277 NULL
135719 +disable_so_ref_div_pll_info_17279 ref_div pll_info 0 17279 NULL nohasharray
135720 +disable_so_ifr6_ifindex_in6_ifreq_17279 ifr6_ifindex in6_ifreq 0 17279 &disable_so_ref_div_pll_info_17279
135721 +disable_so_nm_gid_nl_mmap_hdr_17280 nm_gid nl_mmap_hdr 0 17280 NULL
135722 +disable_so_account_system_time_fndecl_17285 account_system_time fndecl 3-4 17285 NULL nohasharray
135723 +disable_so_ptrace_signal_fndecl_17285 ptrace_signal fndecl 0-1 17285 &disable_so_account_system_time_fndecl_17285
135724 +disable_so_cm36651_read_int_time_fndecl_17287 cm36651_read_int_time fndecl 0 17287 NULL
135725 +disable_so_calculate_destination_timeout_fndecl_17288 calculate_destination_timeout fndecl 0 17288 NULL
135726 +disable_so_hsync_pulse_width_lo_detailed_pixel_timing_17297 hsync_pulse_width_lo detailed_pixel_timing 0 17297 NULL
135727 +disable_so_pci_pm_runtime_suspend_fndecl_17299 pci_pm_runtime_suspend fndecl 0 17299 NULL
135728 +disable_so_ifindex_ip6addrlbl_entry_17305 ifindex ip6addrlbl_entry 0 17305 NULL
135729 +disable_so_lookup_enclosing_address_handler_fndecl_17312 lookup_enclosing_address_handler fndecl 3 17312 NULL
135730 +disable_so_addrconf_mod_rs_timer_fndecl_17333 addrconf_mod_rs_timer fndecl 2 17333 NULL nohasharray
135731 +disable_so_dma_addr_tse_buffer_17333 dma_addr tse_buffer 0 17333 &disable_so_addrconf_mod_rs_timer_fndecl_17333
135732 +disable_so_mod_timer_pinned_fndecl_17334 mod_timer_pinned fndecl 2-0 17334 NULL
135733 +disable_so_cpufreq_power_cooling_register_fndecl_17338 cpufreq_power_cooling_register fndecl 2 17338 NULL
135734 +disable_so_bytenr_btrfs_delayed_ref_node_17344 bytenr btrfs_delayed_ref_node 0 17344 NULL
135735 +disable_so_genwqe_debugfs_queue_working_time_open_fndecl_17354 genwqe_debugfs_queue_working_time_open fndecl 0 17354 NULL
135736 +disable_so_poll_select_set_timeout_fndecl_17361 poll_select_set_timeout fndecl 2-3 17361 NULL nohasharray
135737 +disable_so_dma_addr_efx_buffer_17361 dma_addr efx_buffer 0 17361 &disable_so_poll_select_set_timeout_fndecl_17361
135738 +disable_so_loc_addr_nes_cm_node_17375 loc_addr nes_cm_node 0 17375 NULL
135739 +disable_so_sdev_show_eh_timeout_fndecl_17386 sdev_show_eh_timeout fndecl 0 17386 NULL
135740 +disable_so_isl1208_i2c_set_time_fndecl_17398 isl1208_i2c_set_time fndecl 0 17398 NULL
135741 +disable_so_lx_interrupt_handle_async_events_fndecl_17400 lx_interrupt_handle_async_events fndecl 0 17400 NULL
135742 +disable_so_phys_addr_pmem_device_17405 phys_addr pmem_device 0 17405 NULL
135743 +disable_so___cpufreq_remove_dev_prepare_fndecl_17414 __cpufreq_remove_dev_prepare fndecl 0 17414 NULL
135744 +disable_so_readpage_address_space_operations_17426 readpage address_space_operations 0 17426 NULL
135745 +disable_so_last_tdls_pkt_time_sta_info_17439 last_tdls_pkt_time sta_info 0 17439 NULL
135746 +disable_so_bfa_fcs_rport_set_del_timeout_fndecl_17442 bfa_fcs_rport_set_del_timeout fndecl 1 17442 NULL nohasharray
135747 +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
135748 +disable_so_clockevents_update_freq_fndecl_17446 clockevents_update_freq fndecl 2 17446 NULL
135749 +disable_so_dev_addr_init_fndecl_17450 dev_addr_init fndecl 0 17450 NULL
135750 +disable_so_div_clk_fixed_factor_17451 div clk_fixed_factor 0 17451 NULL
135751 +disable_so_t2_ptr_hash_tbl_addr_hi_fcoe_kwqe_init2_17457 t2_ptr_hash_tbl_addr_hi fcoe_kwqe_init2 0 17457 NULL
135752 +disable_so_i_unsignaled_bytes_rds_iw_connection_17462 i_unsignaled_bytes rds_iw_connection 0 17462 NULL
135753 +disable_so_calc_pmtimer_ref_fndecl_17467 calc_pmtimer_ref fndecl 0-2-3-1 17467 NULL
135754 +disable_so_mb_dma_address_skd_fitmsg_context_17468 mb_dma_address skd_fitmsg_context 0 17468 NULL
135755 +disable_so_bd_list_addr_hi_bnx2i_cmd_request_17469 bd_list_addr_hi bnx2i_cmd_request 0 17469 NULL
135756 +disable_so_schedule_iso_resource_fndecl_17474 schedule_iso_resource fndecl 2 17474 NULL
135757 +disable_so_select_addr_qla83xx_minidump_entry_pollrd_17476 select_addr qla83xx_minidump_entry_pollrd 0 17476 NULL
135758 +disable_so_ipv4_daddr_nf_bridge_info_17490 ipv4_daddr nf_bridge_info 0 17490 NULL
135759 +disable_so_fifo_delay_map_brcmf_fws_info_17499 fifo_delay_map brcmf_fws_info 0 17499 NULL
135760 +disable_so_cpumask_next_and_fndecl_17511 cpumask_next_and fndecl 1-0 17511 NULL
135761 +disable_so_crypto_ctr_crypt_fndecl_17512 crypto_ctr_crypt fndecl 0-4 17512 NULL
135762 +disable_so_current_frequency_or51132_state_17519 current_frequency or51132_state 0 17519 NULL
135763 +disable_so_clocks_calc_max_nsecs_fndecl_17521 clocks_calc_max_nsecs fndecl 1-2-3-4-0 17521 NULL
135764 +disable_so_brcmf_get_next_free_bsscfgidx_fndecl_17528 brcmf_get_next_free_bsscfgidx fndecl 0 17528 NULL
135765 +disable_so_ide_dma_timeout_retry_fndecl_17531 ide_dma_timeout_retry fndecl 2 17531 NULL
135766 +disable_so_radeon_legacy_get_engine_clock_fndecl_17536 radeon_legacy_get_engine_clock fndecl 0 17536 NULL
135767 +disable_so_longcal_timer_ath_ani_17540 longcal_timer ath_ani 0 17540 NULL
135768 +disable_so_beacon_init_val_il_rxon_time_cmd_17543 beacon_init_val il_rxon_time_cmd 0 17543 NULL
135769 +disable_so_bcma_pmu_xtalfreq_fndecl_17556 bcma_pmu_xtalfreq fndecl 0 17556 NULL
135770 +disable_so_hdelay_timing_17557 hdelay timing 0 17557 NULL
135771 +disable_so_ticks_snd_seq_timer_17559 ticks snd_seq_timer 0 17559 NULL nohasharray
135772 +disable_so_coublock_signal_struct_17559 coublock signal_struct 0 17559 &disable_so_ticks_snd_seq_timer_17559
135773 +disable_so_snd_timer_dev_register_fndecl_17565 snd_timer_dev_register fndecl 0 17565 NULL
135774 +disable_so_wait_on_bit_lock_action_fndecl_17576 wait_on_bit_lock_action fndecl 0 17576 NULL
135775 +disable_so_node_guid_nodeinfo_17589 node_guid nodeinfo 0 17589 NULL
135776 +disable_so_packet_filter_bitmap_kaweth_device_17590 packet_filter_bitmap kaweth_device 0 17590 NULL
135777 +disable_so_erase_timeout_sd_ssr_17594 erase_timeout sd_ssr 0 17594 NULL
135778 +disable_so_ratio_r_rj54n1_clock_div_17609 ratio_r rj54n1_clock_div 0 17609 NULL
135779 +disable_so_clock_info_cmd_complete_fndecl_17616 clock_info_cmd_complete fndecl 0 17616 NULL
135780 +disable_so_cir_addr_nvt_dev_17619 cir_addr nvt_dev 0 17619 NULL
135781 +disable_so_plink_timeout_mesh_config_17621 plink_timeout mesh_config 0 17621 NULL
135782 +disable_so_numaddr_mwl8k_cmd_mac_multicast_adr_17633 numaddr mwl8k_cmd_mac_multicast_adr 0 17633 NULL
135783 +disable_so_addr_nvbios_extdev_func_17635 addr nvbios_extdev_func 0 17635 NULL nohasharray
135784 +disable_so_xfs_btree_set_numrecs_fndecl_17635 xfs_btree_set_numrecs fndecl 2 17635 &disable_so_addr_nvbios_extdev_func_17635
135785 +disable_so_pll_clkdiv_adau1701_17652 pll_clkdiv adau1701 0 17652 NULL
135786 +disable_so_btree_insert_raw_fndecl_17655 btree_insert_raw fndecl 0-2 17655 NULL
135787 +disable_so_svm_adjust_tsc_offset_fndecl_17663 svm_adjust_tsc_offset fndecl 2 17663 NULL
135788 +disable_so_mpll_ss2_ni_clock_registers_17677 mpll_ss2 ni_clock_registers 0 17677 NULL
135789 +disable_so_seq_zoran_sync_17679 seq zoran_sync 0 17679 NULL
135790 +disable_so_frequency_drv2667_data_17686 frequency drv2667_data 0 17686 NULL
135791 +disable_so_ieee80211_if_fmt_beacon_timeout_fndecl_17690 ieee80211_if_fmt_beacon_timeout fndecl 0-3 17690 NULL
135792 +disable_so_switch_time_iwl5000_channel_switch_cmd_17709 switch_time iwl5000_channel_switch_cmd 0 17709 NULL
135793 +disable_so_paging64_walk_addr_generic_fndecl_17719 paging64_walk_addr_generic fndecl 4-5 17719 NULL
135794 +disable_so_hw_usb_set_address_fndecl_17723 hw_usb_set_address fndecl 2 17723 NULL
135795 +disable_so_sysrq_reset_downtime_ms_vardecl_sysrq_c_17734 sysrq_reset_downtime_ms vardecl_sysrq.c 0 17734 NULL
135796 +disable_so_ttime_mean_cfq_ttime_17742 ttime_mean cfq_ttime 0 17742 NULL nohasharray
135797 +disable_so_cpufreq_add_dev_fndecl_17742 cpufreq_add_dev fndecl 0 17742 &disable_so_ttime_mean_cfq_ttime_17742
135798 +disable_so_int_poll_timeout_fndecl_17745 int_poll_timeout fndecl 1 17745 NULL
135799 +disable_so_pmdown_time_snd_soc_pcm_runtime_17753 pmdown_time snd_soc_pcm_runtime 0 17753 NULL
135800 +disable_so_i_dtime_ocfs2_dinode_17762 i_dtime ocfs2_dinode 0 17762 NULL
135801 +disable_so_stk1160_write_reg_fndecl_17777 stk1160_write_reg fndecl 0-2-3 17777 NULL
135802 +disable_so_wlcore_save_freed_pkts_addr_fndecl_17778 wlcore_save_freed_pkts_addr fndecl 3 17778 NULL
135803 +disable_so_sys_getuid_fndecl_17783 sys_getuid fndecl 0 17783 NULL
135804 +disable_so_ath5k_hw_set_ack_timeout_fndecl_17785 ath5k_hw_set_ack_timeout fndecl 2 17785 NULL
135805 +disable_so_vfio_intx_set_signal_fndecl_17806 vfio_intx_set_signal fndecl 0 17806 NULL
135806 +disable_so_hash_dst_fndecl_17815 hash_dst fndecl 0-2-3 17815 NULL
135807 +disable_so_ci_set_smc_sram_address_fndecl_17817 ci_set_smc_sram_address fndecl 0-2 17817 NULL
135808 +disable_so_ax_pt_regs_17818 ax pt_regs 0 17818 NULL
135809 +disable_so_gf110_fan_pwm_clock_fndecl_17824 gf110_fan_pwm_clock fndecl 0 17824 NULL nohasharray
135810 +disable_so_txdescmem_busaddr_altera_tse_private_17824 txdescmem_busaddr altera_tse_private 0 17824 &disable_so_gf110_fan_pwm_clock_fndecl_17824
135811 +disable_so_shash_digest_unaligned_fndecl_17828 shash_digest_unaligned fndecl 0-3 17828 NULL
135812 +disable_so_crypto_user_rcv_msg_fndecl_17830 crypto_user_rcv_msg fndecl 0 17830 NULL
135813 +disable_so_hfsplus_bnode_findhash_fndecl_17834 hfsplus_bnode_findhash fndecl 2 17834 NULL
135814 +disable_so_hactive_lo_oaktrail_timing_info_17844 hactive_lo oaktrail_timing_info 0 17844 NULL
135815 +disable_so_paddr_eni_skb_prv_17847 paddr eni_skb_prv 0 17847 NULL nohasharray
135816 +disable_so_proc_disconnectsignal_fndecl_17847 proc_disconnectsignal fndecl 0 17847 &disable_so_paddr_eni_skb_prv_17847
135817 +disable_so_msec_bts_action_delay_17848 msec bts_action_delay 0 17848 NULL
135818 +disable_so_start_fixed_mtrr_segment_17854 start fixed_mtrr_segment 0 17854 NULL
135819 +disable_so_addr_mlx4_wqe_data_seg_17863 addr mlx4_wqe_data_seg 0 17863 NULL
135820 +disable_so_vhost32_to_cpu_fndecl_17870 vhost32_to_cpu fndecl 0-2 17870 NULL
135821 +disable_so_wl1273_fm_get_freq_fndecl_17876 wl1273_fm_get_freq fndecl 0 17876 NULL
135822 +disable_so_sumo_set_divider_value_fndecl_17879 sumo_set_divider_value fndecl 3-2 17879 NULL
135823 +disable_so_dev_stc_uvc_clock_sample_17886 dev_stc uvc_clock_sample 0 17886 NULL
135824 +disable_so_xfs_bmap_extents_to_btree_fndecl_17888 xfs_bmap_extents_to_btree fndecl 0 17888 NULL nohasharray
135825 +disable_so_sha1_ssse3_finup_fndecl_17888 sha1_ssse3_finup fndecl 3 17888 &disable_so_xfs_bmap_extents_to_btree_fndecl_17888
135826 +disable_so_address_threshold_block_17898 address threshold_block 0 17898 NULL
135827 +disable_so_timeout_vardecl_w83793_c_17902 timeout vardecl_w83793.c 0 17902 NULL
135828 +disable_so_bitmap_port_gc_test_fndecl_17905 bitmap_port_gc_test fndecl 3 17905 NULL
135829 +disable_so_efx_ef10_filter_hash_fndecl_17915 efx_ef10_filter_hash fndecl 0 17915 NULL
135830 +disable_so_i40evf_init_interrupt_scheme_fndecl_17922 i40evf_init_interrupt_scheme fndecl 0 17922 NULL
135831 +disable_so_get_descriptor_addr_fndecl_17925 get_descriptor_addr fndecl 0 17925 NULL
135832 +disable_so_fll_loop_gain__fll_div_17926 fll_loop_gain _fll_div 0 17926 NULL
135833 +disable_so_timestamp_nfs_pgio_header_17936 timestamp nfs_pgio_header 0 17936 NULL
135834 +disable_so_axp20x_set_dcdc_freq_fndecl_17938 axp20x_set_dcdc_freq fndecl 0-2 17938 NULL
135835 +disable_so_fc2580_s_frequency_fndecl_17946 fc2580_s_frequency fndecl 0 17946 NULL
135836 +disable_so_cxd2820r_sleep_fndecl_17948 cxd2820r_sleep fndecl 0 17948 NULL
135837 +disable_so_shash_update_unaligned_fndecl_17955 shash_update_unaligned fndecl 0-3 17955 NULL
135838 +disable_so_queue_snd_seq_queue_timer_17961 queue snd_seq_queue_timer 0 17961 NULL nohasharray
135839 +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
135840 +disable_so_pcc_cpufreq_probe_fndecl_17966 pcc_cpufreq_probe fndecl 0 17966 NULL nohasharray
135841 +disable_so_rsa_extract_mpi_fndecl_17966 rsa_extract_mpi fndecl 5 17966 &disable_so_pcc_cpufreq_probe_fndecl_17966
135842 +disable_so_rxrpc_resend_timeout_vardecl_17967 rxrpc_resend_timeout vardecl 0 17967 NULL nohasharray
135843 +disable_so_cxd2820r_sleep_c_fndecl_17967 cxd2820r_sleep_c fndecl 0 17967 &disable_so_rxrpc_resend_timeout_vardecl_17967
135844 +disable_so_ab3100_get_register_page_interruptible_fndecl_17972 ab3100_get_register_page_interruptible fndecl 0 17972 NULL
135845 +disable_so_perf_event_time_fndecl_17980 perf_event_time fndecl 0 17980 NULL nohasharray
135846 +disable_so_crypto_ahash_update_fndecl_17980 crypto_ahash_update fndecl 0 17980 &disable_so_perf_event_time_fndecl_17980
135847 +disable_so_palmas_clear_interrupts_fndecl_17987 palmas_clear_interrupts fndecl 0 17987 NULL
135848 +disable_so_timeout_vardecl_nf_conntrack_snmp_c_17991 timeout vardecl_nf_conntrack_snmp.c 0 17991 NULL
135849 +disable_so_addr_lo_eth_rx_sge_17992 addr_lo eth_rx_sge 0 17992 NULL
135850 +disable_so_cryptd_hash_update_fndecl_17997 cryptd_hash_update fndecl 2 17997 NULL
135851 +disable_so_crypto_authenc_esn_setkey_fndecl_18010 crypto_authenc_esn_setkey fndecl 0 18010 NULL
135852 +disable_so_uwb_rc_mac_addr_store_fndecl_18016 uwb_rc_mac_addr_store fndecl 0-4 18016 NULL
135853 +disable_so_netlbl_unlhsh_hash_fndecl_18024 netlbl_unlhsh_hash fndecl 0-1 18024 NULL
135854 +disable_so_min_delta_ns_clock_event_device_18031 min_delta_ns clock_event_device 0 18031 NULL
135855 +disable_so_ali_timeout_bits_vardecl_alim1535_wdt_c_18033 ali_timeout_bits vardecl_alim1535_wdt.c 0 18033 NULL
135856 +disable_so_sci_mpxed_interrupt_fndecl_18035 sci_mpxed_interrupt fndecl 1 18035 NULL
135857 +disable_so_time_freq_vardecl_ntp_c_18036 time_freq vardecl_ntp.c 0 18036 NULL
135858 +disable_so_be_cmd_page_addrs_prepare_fndecl_18059 be_cmd_page_addrs_prepare fndecl 2 18059 NULL
135859 +disable_so_base_addr_brcmf_pcie_console_18075 base_addr brcmf_pcie_console 0 18075 NULL
135860 +disable_so_seq_cn_msg_18076 seq cn_msg 0 18076 NULL
135861 +disable_so_packet_time_ipw_ibss_seq_18079 packet_time ipw_ibss_seq 0 18079 NULL
135862 +disable_so_atomic_set_property_drm_connector_funcs_18088 atomic_set_property drm_connector_funcs 0-4 18088 NULL
135863 +disable_so_ts_jiffies_uwb_event_18092 ts_jiffies uwb_event 0 18092 NULL nohasharray
135864 +disable_so_xc_set_rf_frequency_fndecl_18092 xc_set_rf_frequency fndecl 0-2 18092 &disable_so_ts_jiffies_uwb_event_18092
135865 +disable_so_beacon_time_tsf_bits_il_hw_params_18095 beacon_time_tsf_bits il_hw_params 0 18095 NULL
135866 +disable_so_restore_freq_cpufreq_policy_18098 restore_freq cpufreq_policy 0 18098 NULL
135867 +disable_so_link_check_timeout_ixgbe_adapter_18101 link_check_timeout ixgbe_adapter 0 18101 NULL
135868 +disable_so_zd_iowrite32_fndecl_18117 zd_iowrite32 fndecl 0-3 18117 NULL nohasharray
135869 +disable_so_block_bitmap_ext3_new_group_data_18117 block_bitmap ext3_new_group_data 0 18117 &disable_so_zd_iowrite32_fndecl_18117
135870 +disable_so_radeon_fence_schedule_check_fndecl_18136 radeon_fence_schedule_check fndecl 2 18136 NULL
135871 +disable_so_ed_schedule_fndecl_18142 ed_schedule fndecl 0 18142 NULL
135872 +disable_so_pci_clock_ctrl_tg3_18144 pci_clock_ctrl tg3 0 18144 NULL
135873 +disable_so_start_i915_address_space_18152 start i915_address_space 0 18152 NULL
135874 +disable_so_reg_w_fndecl_18159 reg_w fndecl 2 18159 NULL
135875 +disable_so_xfrm_get_saddr_fndecl_18161 xfrm_get_saddr fndecl 4 18161 NULL
135876 +disable_so_src_addr_rcar_dmac_xfer_chunk_18165 src_addr rcar_dmac_xfer_chunk 0 18165 NULL
135877 +disable_so_chip_init_time_esas2r_adapter_18169 chip_init_time esas2r_adapter 0 18169 NULL
135878 +disable_so___btree_submit_bio_done_fndecl_18170 __btree_submit_bio_done fndecl 0-2 18170 NULL
135879 +disable_so_pick_local_ipaddrs_fndecl_18171 pick_local_ipaddrs fndecl 0 18171 NULL
135880 +disable_so_host_sof_uvc_clock_sample_18177 host_sof uvc_clock_sample 0 18177 NULL
135881 +disable_so_ratio_op_rj54n1_clock_div_18180 ratio_op rj54n1_clock_div 0 18180 NULL
135882 +disable_so_dm_btree_remove_leaves_fndecl_18182 dm_btree_remove_leaves fndecl 0-2-4 18182 NULL
135883 +disable_so_rfcomm_session_set_timer_fndecl_18183 rfcomm_session_set_timer fndecl 2 18183 NULL
135884 +disable_so_i_gid_ext2_inode_18187 i_gid ext2_inode 0 18187 NULL
135885 +disable_so_tipc_tlv_sprintf_fndecl_18203 tipc_tlv_sprintf fndecl 0 18203 NULL
135886 +disable_so_usbnet_get_ethernet_addr_fndecl_18204 usbnet_get_ethernet_addr fndecl 0 18204 NULL
135887 +disable_so_faddr_drm_i915_error_ring_18209 faddr drm_i915_error_ring 0 18209 NULL
135888 +disable_so_nla_put_ipaddr4_fndecl_18214 nla_put_ipaddr4 fndecl 0 18214 NULL
135889 +disable_so_ring_dma_addr_netdev_private_18216 ring_dma_addr netdev_private 0 18216 NULL
135890 +disable_so_fc_gid_ft_build_fndecl_18221 fc_gid_ft_build fndecl 0-3 18221 NULL
135891 +disable_so_base_hi_mtrr_var_range_18224 base_hi mtrr_var_range 0 18224 NULL nohasharray
135892 +disable_so_mISDNisac_irq_fndecl_18224 mISDNisac_irq fndecl 2 18224 &disable_so_base_hi_mtrr_var_range_18224
135893 +disable_so_no_bit_error_verify_fndecl_18225 no_bit_error_verify fndecl 4 18225 NULL
135894 +disable_so_account_guest_time_fndecl_18233 account_guest_time fndecl 2-3 18233 NULL
135895 +disable_so_show_port_gid_idx_fndecl_18237 show_port_gid_idx fndecl 0 18237 NULL
135896 +disable_so_ath9k_hw_set_cts_timeout_fndecl_18239 ath9k_hw_set_cts_timeout fndecl 2 18239 NULL
135897 +disable_so_sctp_raw_to_bind_addrs_fndecl_18240 sctp_raw_to_bind_addrs fndecl 0-3-4-5 18240 NULL
135898 +disable_so_format_snd_pcm_oss_runtime_18246 format snd_pcm_oss_runtime 0 18246 NULL
135899 +disable_so_ring_base_address_kfd_ioctl_update_queue_args_18252 ring_base_address kfd_ioctl_update_queue_args 0 18252 NULL
135900 +disable_so_best_dsc_rw_freq_ide_tape_obj_18253 best_dsc_rw_freq ide_tape_obj 0 18253 NULL
135901 +disable_so_mlx4_ib_set_default_gid_fndecl_18263 mlx4_ib_set_default_gid fndecl 3 18263 NULL
135902 +disable_so_msrpm_base_pa_vmcb_control_area_18266 msrpm_base_pa vmcb_control_area 0 18266 NULL
135903 +disable_so_macb_reg_writel_macb_18287 macb_reg_writel macb 3 18287 NULL
135904 +disable_so_btrfs_inode_delayed_dir_index_count_fndecl_18292 btrfs_inode_delayed_dir_index_count fndecl 0 18292 NULL
135905 +disable_so_rounded_hashtable_size_fndecl_18305 rounded_hashtable_size fndecl 0 18305 NULL
135906 +disable_so_kv_calculate_ds_divider_fndecl_18314 kv_calculate_ds_divider fndecl 0 18314 NULL
135907 +disable_so_srom_address_fndecl_18316 srom_address fndecl 2 18316 NULL
135908 +disable_so_min_keysize_blkcipher_alg_18320 min_keysize blkcipher_alg 0 18320 NULL
135909 +disable_so_sd_atime_stat_data_v1_18328 sd_atime stat_data_v1 0 18328 NULL nohasharray
135910 +disable_so_last_valid_interrupt_tsc2005_18328 last_valid_interrupt tsc2005 0 18328 &disable_so_sd_atime_stat_data_v1_18328
135911 +disable_so_divider_sm501_clock_18331 divider sm501_clock 0 18331 NULL
135912 +disable_so_dwell_time_dfs_conf_sched_scan_settings_18333 dwell_time_dfs conf_sched_scan_settings 0 18333 NULL
135913 +disable_so_synaptics_i2c_reschedule_work_fndecl_18336 synaptics_i2c_reschedule_work fndecl 2 18336 NULL
135914 +disable_so_active_time_dce6_wm_params_18344 active_time dce6_wm_params 0 18344 NULL
135915 +disable_so_shpchp_poll_time_vardecl_18356 shpchp_poll_time vardecl 0 18356 NULL
135916 +disable_so_qat_alg_ablkcipher_init_sessions_fndecl_18359 qat_alg_ablkcipher_init_sessions fndecl 3 18359 NULL
135917 +disable_so_next_blkaddr_node_footer_18360 next_blkaddr node_footer 0 18360 NULL
135918 +disable_so_r9701_set_datetime_fndecl_18365 r9701_set_datetime fndecl 0 18365 NULL
135919 +disable_so_global_default_cipher_key_size_ecryptfs_mount_crypt_stat_18369 global_default_cipher_key_size ecryptfs_mount_crypt_stat 0 18369 NULL
135920 +disable_so_read_tsc_offset_kvm_x86_ops_18374 read_tsc_offset kvm_x86_ops 0 18374 NULL
135921 +disable_so_chunkshift_bitmap_counts_18388 chunkshift bitmap_counts 0 18388 NULL
135922 +disable_so_daddr_i915_page_table_entry_18391 daddr i915_page_table_entry 0 18391 NULL
135923 +disable_so_set_addr_filters_fndecl_18395 set_addr_filters fndecl 0 18395 NULL nohasharray
135924 +disable_so_writepages_address_space_operations_18395 writepages address_space_operations 0 18395 &disable_so_set_addr_filters_fndecl_18395
135925 +disable_so_ablkcipher_next_fast_fndecl_18397 ablkcipher_next_fast fndecl 0 18397 NULL
135926 +disable_so_local_ref_time_lp_18398 local_ref_time lp 0 18398 NULL
135927 +disable_so_size__cpuid4_info_regs_18403 size _cpuid4_info_regs 0 18403 NULL
135928 +disable_so_st_atime_sec_p9_stat_dotl_18404 st_atime_sec p9_stat_dotl 0 18404 NULL nohasharray
135929 +disable_so_hackrf_s_frequency_fndecl_18404 hackrf_s_frequency fndecl 0 18404 &disable_so_st_atime_sec_p9_stat_dotl_18404
135930 +disable_so_ext4_inode_bitmap_fndecl_18405 ext4_inode_bitmap fndecl 0 18405 NULL
135931 +disable_so_crypto_sha256_finup_fndecl_18406 crypto_sha256_finup fndecl 3 18406 NULL
135932 +disable_so_timeout_ip_vs_sync_v4_18416 timeout ip_vs_sync_v4 0 18416 NULL nohasharray
135933 +disable_so_nla_put_hwaddr_fndecl_18416 nla_put_hwaddr fndecl 0 18416 &disable_so_timeout_ip_vs_sync_v4_18416
135934 +disable_so_tasklet_hrtimer_init_fndecl_18423 tasklet_hrtimer_init fndecl 3 18423 NULL
135935 +disable_so_ieee80211_if_fmt_path_refresh_time_fndecl_18427 ieee80211_if_fmt_path_refresh_time fndecl 0-3 18427 NULL
135936 +disable_so_address_high_b43_dmadesc64_18431 address_high b43_dmadesc64 0 18431 NULL
135937 +disable_so_wd_timeout_mei_device_18432 wd_timeout mei_device 0 18432 NULL
135938 +disable_so_bitmap_fold_fndecl_18439 bitmap_fold fndecl 4 18439 NULL
135939 +disable_so_dma_addr_freelQ_ce_18441 dma_addr freelQ_ce 0 18441 NULL
135940 +disable_so_demod_address_cx24117_config_18444 demod_address cx24117_config 0 18444 NULL
135941 +disable_so_rs5c372_get_datetime_fndecl_18451 rs5c372_get_datetime fndecl 0 18451 NULL
135942 +disable_so_diolan_set_clock_synch_fndecl_18461 diolan_set_clock_synch fndecl 0 18461 NULL nohasharray
135943 +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
135944 +disable_so_mac_addr_low_nes_adapter_18465 mac_addr_low nes_adapter 0 18465 NULL
135945 +disable_so_sci_interrupt_acpi_table_fadt_18467 sci_interrupt acpi_table_fadt 0 18467 NULL
135946 +disable_so_mii_bmsr_bnx2_18468 mii_bmsr bnx2 0 18468 NULL
135947 +disable_so_qla4xxx_fw_timestamp_show_fndecl_18474 qla4xxx_fw_timestamp_show fndecl 0 18474 NULL
135948 +disable_so_viafb_fill_crtc_timing_fndecl_18476 viafb_fill_crtc_timing fndecl 2-3 18476 NULL
135949 +disable_so_sysctl_max_tw_buckets_inet_timewait_death_row_18487 sysctl_max_tw_buckets inet_timewait_death_row 0 18487 NULL
135950 +disable_so_hfdiv_dib0090_pll_18489 hfdiv dib0090_pll 0 18489 NULL
135951 +disable_so_demod_address_si21xx_config_18490 demod_address si21xx_config 0 18490 NULL
135952 +disable_so_sbp_tpg_attrib_show_max_reconnect_timeout_fndecl_18494 sbp_tpg_attrib_show_max_reconnect_timeout fndecl 0 18494 NULL
135953 +disable_so_cciss_find_cfg_addrs_fndecl_18500 cciss_find_cfg_addrs fndecl 0 18500 NULL
135954 +disable_so_sdo_runtime_resume_fndecl_18516 sdo_runtime_resume fndecl 0 18516 NULL
135955 +disable_so_available_uuids_show_fndecl_18518 available_uuids_show fndecl 0 18518 NULL
135956 +disable_so_mtrr_open_fndecl_18521 mtrr_open fndecl 0 18521 NULL
135957 +disable_so_r_min_rnr_timer_ipath_qp_18527 r_min_rnr_timer ipath_qp 0 18527 NULL
135958 +disable_so_fixed_mtrr_addr_seg_to_range_index_fndecl_18537 fixed_mtrr_addr_seg_to_range_index fndecl 1-0 18537 NULL
135959 +disable_so_timeout_floppy_drive_params_18540 timeout floppy_drive_params 0 18540 NULL
135960 +disable_so_show_cpu_clock_fndecl_18546 show_cpu_clock fndecl 0 18546 NULL
135961 +disable_so_inet6_fill_ifacaddr_fndecl_18549 inet6_fill_ifacaddr fndecl 0-3-5 18549 NULL
135962 +disable_so_physical_address_kvm_translation_18550 physical_address kvm_translation 0 18550 NULL
135963 +disable_so_kvm_mtrr_set_msr_fndecl_18553 kvm_mtrr_set_msr fndecl 3 18553 NULL
135964 +disable_so_dccp_timestamp_fndecl_18560 dccp_timestamp fndecl 0 18560 NULL
135965 +disable_so_frequency_analog_parameters_18561 frequency analog_parameters 0 18561 NULL
135966 +disable_so_resp_bd_list_addr_lo_bnx2i_login_request_18562 resp_bd_list_addr_lo bnx2i_login_request 0 18562 NULL
135967 +disable_so_pixels_1_gpu_addr_mga_cursor_18572 pixels_1_gpu_addr mga_cursor 0 18572 NULL
135968 +disable_so_compat_sys_stime_fndecl_18574 compat_sys_stime fndecl 0 18574 NULL
135969 +disable_so_timestamp_fwd_flush_batadv_priv_nc_18585 timestamp_fwd_flush batadv_priv_nc 0 18585 NULL nohasharray
135970 +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
135971 +disable_so_sleep_cookie_pbase_pcie_service_card_18597 sleep_cookie_pbase pcie_service_card 0 18597 NULL
135972 +disable_so_sm_set_bitmap_fndecl_18598 sm_set_bitmap fndecl 2 18598 NULL
135973 +disable_so_lr_timeout_ext4_li_request_18599 lr_timeout ext4_li_request 0 18599 NULL
135974 +disable_so_start_time_bfa_diag_dport_subtest_result_s_18621 start_time bfa_diag_dport_subtest_result_s 0 18621 NULL
135975 +disable_so_ieee80211_aes_gmac_key_setup_fndecl_18626 ieee80211_aes_gmac_key_setup fndecl 2 18626 NULL
135976 +disable_so_code_addr_pmu_nvbios_pmuR_18630 code_addr_pmu nvbios_pmuR 0 18630 NULL
135977 +disable_so_btree_write_alias_fndecl_18631 btree_write_alias fndecl 0 18631 NULL
135978 +disable_so_level_btrfs_delayed_tree_ref_18632 level btrfs_delayed_tree_ref 0 18632 NULL
135979 +disable_so_bch_strtoull_h_fndecl_18633 bch_strtoull_h fndecl 0 18633 NULL
135980 +disable_so_resolution_snd_timer_status_18636 resolution snd_timer_status 0 18636 NULL
135981 +disable_so_crypto_module_init_fndecl_18640 crypto_module_init fndecl 0 18640 NULL
135982 +disable_so_mic_to_dma_addr_fndecl_18642 mic_to_dma_addr fndecl 0-2 18642 NULL
135983 +disable_so_nonblocking_wait_time_shtc1_data_18656 nonblocking_wait_time shtc1_data 0 18656 NULL
135984 +disable_so___remove_suid_fndecl_18657 __remove_suid fndecl 0 18657 NULL
135985 +disable_so_bootime_st_sensor_settings_18658 bootime st_sensor_settings 0 18658 NULL
135986 +disable_so_total_ref_mod_btrfs_delayed_ref_head_18666 total_ref_mod btrfs_delayed_ref_head 0 18666 NULL
135987 +disable_so_is_noncanonical_address_fndecl_18677 is_noncanonical_address fndecl 1 18677 NULL
135988 +disable_so_xcan_set_bittiming_fndecl_18678 xcan_set_bittiming fndecl 0 18678 NULL
135989 +disable_so_ipmi_set_my_address_fndecl_18680 ipmi_set_my_address fndecl 0 18680 NULL
135990 +disable_so_pixels_2_gpu_addr_mga_cursor_18686 pixels_2_gpu_addr mga_cursor 0 18686 NULL
135991 +disable_so_adjust_tsc_offset_guest_fndecl_18708 adjust_tsc_offset_guest fndecl 2 18708 NULL
135992 +disable_so_meson_spifc_runtime_resume_fndecl_18709 meson_spifc_runtime_resume fndecl 0 18709 NULL
135993 +disable_so_mclk_pwrmgt_cntl_rv770_clock_registers_18711 mclk_pwrmgt_cntl rv770_clock_registers 0 18711 NULL
135994 +disable_so_avgidle_cbq_class_18722 avgidle cbq_class 0 18722 NULL
135995 +disable_so_nla_nest_end_fndecl_18729 nla_nest_end fndecl 0 18729 NULL
135996 +disable_so_suspend_time_il_scan_cmd_18736 suspend_time il_scan_cmd 0 18736 NULL
135997 +disable_so_jiffies_to_timespec_fndecl_18737 jiffies_to_timespec fndecl 1 18737 NULL
135998 +disable_so___uwb_addr_print_fndecl_18746 __uwb_addr_print fndecl 0 18746 NULL
135999 +disable_so_apicid_set_error_type_with_address_18747 apicid set_error_type_with_address 0 18747 NULL
136000 +disable_so_reachable_time_ifla_cacheinfo_18748 reachable_time ifla_cacheinfo 0 18748 NULL
136001 +disable_so_mxl111sf_write_reg_fndecl_18752 mxl111sf_write_reg fndecl 0 18752 NULL
136002 +disable_so_img_ir_timing_preprocess_fndecl_18766 img_ir_timing_preprocess fndecl 2 18766 NULL
136003 +disable_so_aosr_aic31xx_rate_divs_18787 aosr aic31xx_rate_divs 0 18787 NULL
136004 +disable_so_led_set_flash_timeout_fndecl_18793 led_set_flash_timeout fndecl 2 18793 NULL
136005 +disable_so_proc_dointvec_userhz_jiffies_fndecl_18794 proc_dointvec_userhz_jiffies fndecl 0 18794 NULL
136006 +disable_so_return_address_stack_frame_18797 return_address stack_frame 0 18797 NULL
136007 +disable_so_perf_set_shadow_time_fndecl_18814 perf_set_shadow_time fndecl 3 18814 NULL nohasharray
136008 +disable_so_start_time_mem_ctl_info_18814 start_time mem_ctl_info 0 18814 &disable_so_perf_set_shadow_time_fndecl_18814
136009 +disable_so_out_of_int_time_mmc_ext_csd_18824 out_of_int_time mmc_ext_csd 0 18824 NULL
136010 +disable_so_tmr_subdevice_snd_timer_18828 tmr_subdevice snd_timer 0 18828 NULL
136011 +disable_so_xgmac_reg_addr_read_fndecl_18829 xgmac_reg_addr_read fndecl 3-0 18829 NULL
136012 +disable_so_iscsi_nacl_attrib_show_dataout_timeout_retries_fndecl_18834 iscsi_nacl_attrib_show_dataout_timeout_retries fndecl 0 18834 NULL
136013 +disable_so_ip_hash_net4_elem_18835 ip hash_net4_elem 0 18835 NULL
136014 +disable_so_gid_ucred_18846 gid ucred 0 18846 NULL
136015 +disable_so_r44_val_fc2580_freq_regs_18847 r44_val fc2580_freq_regs 0 18847 NULL
136016 +disable_so_fotg210_set_dev_addr_fndecl_18854 fotg210_set_dev_addr fndecl 2 18854 NULL
136017 +disable_so_mac_time_hostap_80211_rx_status_18865 mac_time hostap_80211_rx_status 0 18865 NULL
136018 +disable_so___smsc95xx_write_reg_fndecl_18876 __smsc95xx_write_reg fndecl 0-2-3 18876 NULL
136019 +disable_so_svm_write_tsc_offset_fndecl_18879 svm_write_tsc_offset fndecl 2 18879 NULL
136020 +disable_so_max8997_rtc_read_time_fndecl_18881 max8997_rtc_read_time fndecl 0 18881 NULL nohasharray
136021 +disable_so_prev_tsc_cpudata_18881 prev_tsc cpudata 0 18881 &disable_so_max8997_rtc_read_time_fndecl_18881
136022 +disable_so_padlock_sha1_update_nano_fndecl_18884 padlock_sha1_update_nano fndecl 3 18884 NULL
136023 +disable_so_sysctl_rose_restart_request_timeout_vardecl_18885 sysctl_rose_restart_request_timeout vardecl 0 18885 NULL
136024 +disable_so_sysctl_aarp_expiry_time_vardecl_18891 sysctl_aarp_expiry_time vardecl 0 18891 NULL
136025 +disable_so_crypto_register_pcomp_fndecl_18915 crypto_register_pcomp fndecl 0 18915 NULL
136026 +disable_so_ata_timing_cycle2mode_fndecl_18918 ata_timing_cycle2mode fndecl 0 18918 NULL
136027 +disable_so_proc_dointvec_ms_jiffies_fndecl_18925 proc_dointvec_ms_jiffies fndecl 0 18925 NULL
136028 +disable_so_busaddr_vlsi_irda_dev_18931 busaddr vlsi_irda_dev 0 18931 NULL
136029 +disable_so_rx_coalescing_timeo_bna_ccb_18934 rx_coalescing_timeo bna_ccb 0 18934 NULL
136030 +disable_so_tx_ring_dma_addr_pcnet32_private_18936 tx_ring_dma_addr pcnet32_private 0 18936 NULL
136031 +disable_so_netlbl_unlhsh_add_addr6_fndecl_18945 netlbl_unlhsh_add_addr6 fndecl 4-0 18945 NULL nohasharray
136032 +disable_so_libipw_channel_to_freq_fndecl_18945 libipw_channel_to_freq fndecl 0-2 18945 &disable_so_netlbl_unlhsh_add_addr6_fndecl_18945
136033 +disable_so_oo_time_nfs4_openowner_18954 oo_time nfs4_openowner 0 18954 NULL
136034 +disable_so_rht_key_hashfn_fndecl_18957 rht_key_hashfn fndecl 0 18957 NULL
136035 +disable_so_query_id_mlx4_alias_guid_work_context_18958 query_id mlx4_alias_guid_work_context 0 18958 NULL nohasharray
136036 +disable_so_address_rq_enet_desc_18958 address rq_enet_desc 0 18958 &disable_so_query_id_mlx4_alias_guid_work_context_18958
136037 +disable_so_scan_bitmap_fndecl_18963 scan_bitmap fndecl 0-3-5-7 18963 NULL
136038 +disable_so_btrfs_item_key_to_cpu_fndecl_18966 btrfs_item_key_to_cpu fndecl 3 18966 NULL
136039 +disable_so_store_fan_time_fndecl_18972 store_fan_time fndecl 0-4 18972 NULL
136040 +disable_so_hash_conntrack_fndecl_18974 hash_conntrack fndecl 0 18974 NULL
136041 +disable_so_lsndtime_tcp_sock_18975 lsndtime tcp_sock 0 18975 NULL
136042 +disable_so_ratio_tg_rj54n1_clock_div_18979 ratio_tg rj54n1_clock_div 0 18979 NULL
136043 +disable_so_freq_lo_od_cpu_dbs_info_s_18987 freq_lo od_cpu_dbs_info_s 0 18987 NULL
136044 +disable_so_usnic_uiom_interval_tree_compute_subtree_last_fndecl_18989 usnic_uiom_interval_tree_compute_subtree_last fndecl 0 18989 NULL
136045 +disable_so_cg_spll_spread_spectrum_rv770_clock_registers_19000 cg_spll_spread_spectrum rv770_clock_registers 0 19000 NULL
136046 +disable_so_ps_poll_ps_poll_timeouts_read_fndecl_19005 ps_poll_ps_poll_timeouts_read fndecl 3 19005 NULL
136047 +disable_so_addr_low_sata_start_req_19006 addr_low sata_start_req 0 19006 NULL
136048 +disable_so_seq_rxrpc_header_19018 seq rxrpc_header 0 19018 NULL
136049 +disable_so_bs_uid_xfs_bstat_19023 bs_uid xfs_bstat 0 19023 NULL
136050 +disable_so_cmb_rx_timer_atl1_hw_19025 cmb_rx_timer atl1_hw 0 19025 NULL
136051 +disable_so_timestamp_batadv_nc_packet_19027 timestamp batadv_nc_packet 0 19027 NULL
136052 +disable_so_addr_high_ssp_ini_io_start_req_19029 addr_high ssp_ini_io_start_req 0 19029 NULL
136053 +disable_so_n_addresses_rxk5_key_19030 n_addresses rxk5_key 0 19030 NULL
136054 +disable_so_ccp_crypto_enqueue_request_fndecl_19035 ccp_crypto_enqueue_request fndecl 0 19035 NULL
136055 +disable_so_timeout_mxser_port_19037 timeout mxser_port 0 19037 NULL
136056 +disable_so_xfs_btree_rec_addr_fndecl_19048 xfs_btree_rec_addr fndecl 2 19048 NULL
136057 +disable_so_sz_qat_crypto_request_buffs_19050 sz qat_crypto_request_buffs 0 19050 NULL
136058 +disable_so_start_field_bit_offset_acpi_object_field_common_19052 start_field_bit_offset acpi_object_field_common 0 19052 NULL
136059 +disable_so_compat_sys_timer_create_fndecl_19053 compat_sys_timer_create fndecl 1 19053 NULL
136060 +disable_so_ioctl_busaddr_ips_ha_19067 ioctl_busaddr ips_ha 0 19067 NULL
136061 +disable_so_crypto_rng_reset_fndecl_19075 crypto_rng_reset fndecl 3 19075 NULL
136062 +disable_so_alignmask_crypto_hash_walk_19078 alignmask crypto_hash_walk 0 19078 NULL
136063 +disable_so_dst_addr_hi_dmae_command_19086 dst_addr_hi dmae_command 0 19086 NULL
136064 +disable_so_tx_time_us_qlcnic_nic_intr_coalesce_19089 tx_time_us qlcnic_nic_intr_coalesce 0 19089 NULL
136065 +disable_so_sctp_getsockopt_peer_addr_info_fndecl_19099 sctp_getsockopt_peer_addr_info fndecl 0 19099 NULL
136066 +disable_so_ack_interrupt_mbus_hw_ops_19100 ack_interrupt mbus_hw_ops 2 19100 NULL
136067 +disable_so_fm_tx_set_freq_fndecl_19116 fm_tx_set_freq fndecl 0-2 19116 NULL
136068 +disable_so_time_stabiliz_dibx000_agc_config_19117 time_stabiliz dibx000_agc_config 0 19117 NULL
136069 +disable_so_m_session_timeout_ceph_mdsmap_19122 m_session_timeout ceph_mdsmap 0 19122 NULL nohasharray
136070 +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
136071 +disable_so_cfg80211_set_cipher_pairwise_fndecl_19124 cfg80211_set_cipher_pairwise fndecl 2 19124 NULL
136072 +disable_so_addr_low_bufq_addr_element_19128 addr_low bufq_addr_element 0 19128 NULL
136073 +disable_so__random_read_fndecl_19137 _random_read fndecl 0-1-3 19137 NULL
136074 +disable_so_data_timeout_ns_mmc_ioc_cmd_19142 data_timeout_ns mmc_ioc_cmd 0 19142 NULL
136075 +disable_so_sys_timer_getoverrun_fndecl_19145 sys_timer_getoverrun fndecl 1-0 19145 NULL
136076 +disable_so_force_static_address_read_fndecl_19149 force_static_address_read fndecl 3-0 19149 NULL
136077 +disable_so_timeout_vardecl_alim7101_wdt_c_19153 timeout vardecl_alim7101_wdt.c 0 19153 NULL
136078 +disable_so_get_msr_x86_emulate_ops_19170 get_msr x86_emulate_ops 2 19170 NULL
136079 +disable_so_freeze_timeout_msecs_vardecl_19173 freeze_timeout_msecs vardecl 0 19173 NULL
136080 +disable_so_time_mid_afs_uuid_19174 time_mid afs_uuid 0 19174 NULL
136081 +disable_so_do_signal_stop_fndecl_19193 do_signal_stop fndecl 1 19193 NULL
136082 +disable_so_xtime_update_fndecl_19206 xtime_update fndecl 1 19206 NULL
136083 +disable_so_sd_uid_stat_data_19209 sd_uid stat_data 0 19209 NULL
136084 +disable_so_conn_schedule_ip_vs_protocol_19210 conn_schedule ip_vs_protocol 1 19210 NULL
136085 +disable_so_ocfs2_dx_dir_name_hash_fndecl_19211 ocfs2_dx_dir_name_hash fndecl 3 19211 NULL
136086 +disable_so_posix_clock_register_fndecl_19213 posix_clock_register fndecl 2-0 19213 NULL
136087 +disable_so_ctnl_timeout_parse_policy_fndecl_19218 ctnl_timeout_parse_policy fndecl 0 19218 NULL
136088 +disable_so_get_parent_r8a66597_address_fndecl_19219 get_parent_r8a66597_address fndecl 0 19219 NULL
136089 +disable_so_ath5k_hw_htoclock_fndecl_19227 ath5k_hw_htoclock fndecl 2-0 19227 NULL
136090 +disable_so_cport_addr_nm256_19228 cport_addr nm256 0 19228 NULL
136091 +disable_so_mt2032_compute_freq_fndecl_19230 mt2032_compute_freq fndecl 2-3-4 19230 NULL
136092 +disable_so_prox_adjust_channel_bit_mask_fndecl_19253 prox_adjust_channel_bit_mask fndecl 3 19253 NULL
136093 +disable_so_base_addr_vnic_dev_ring_19264 base_addr vnic_dev_ring 0 19264 NULL
136094 +disable_so_authenc_geniv_ahash_update_done_fndecl_19273 authenc_geniv_ahash_update_done fndecl 2 19273 NULL
136095 +disable_so_ath6kl_cfg80211_host_sleep_fndecl_19284 ath6kl_cfg80211_host_sleep fndecl 0 19284 NULL
136096 +disable_so_keyring_detect_cycle_fndecl_19294 keyring_detect_cycle fndecl 0 19294 NULL
136097 +disable_so_bus_addr_img_hash_dev_19301 bus_addr img_hash_dev 0 19301 NULL
136098 +disable_so_nv04_timer_fini_fndecl_19314 nv04_timer_fini fndecl 0 19314 NULL
136099 +disable_so_sysctl_x25_restart_request_timeout_vardecl_19317 sysctl_x25_restart_request_timeout vardecl 0 19317 NULL
136100 +disable_so_timer_in_use_nes_hw_tune_timer_19327 timer_in_use nes_hw_tune_timer 0 19327 NULL
136101 +disable_so_misdn_add_timer_fndecl_19332 misdn_add_timer fndecl 2-0 19332 NULL
136102 +disable_so_timeout_vardecl_rn5t618_wdt_c_19337 timeout vardecl_rn5t618_wdt.c 0 19337 NULL
136103 +disable_so_err_addr_bfa_diag_memtest_result_19350 err_addr bfa_diag_memtest_result 0 19350 NULL
136104 +disable_so_jfs_strtoUCS_fndecl_19357 jfs_strtoUCS fndecl 3-0 19357 NULL
136105 +disable_so_addr_to_vsyscall_nr_fndecl_19368 addr_to_vsyscall_nr fndecl 0-1 19368 NULL
136106 +disable_so_small_buf_phy_addr_high_ql3_adapter_19371 small_buf_phy_addr_high ql3_adapter 0 19371 NULL
136107 +disable_so_micd_bias_start_time_arizona_pdata_19379 micd_bias_start_time arizona_pdata 0 19379 NULL
136108 +disable_so_current_frequency_s5h1411_state_19382 current_frequency s5h1411_state 0 19382 NULL
136109 +disable_so_silence_threshold_snd_pcm_runtime_19384 silence_threshold snd_pcm_runtime 0 19384 NULL
136110 +disable_so_pid_pppol2tpv3_addr_19385 pid pppol2tpv3_addr 0 19385 NULL
136111 +disable_so_wm8960_set_dai_clkdiv_fndecl_19392 wm8960_set_dai_clkdiv fndecl 3 19392 NULL
136112 +disable_so_drm_modeset_lock_interruptible_fndecl_19397 drm_modeset_lock_interruptible fndecl 0 19397 NULL
136113 +disable_so_isdn_divert_open_fndecl_19417 isdn_divert_open fndecl 0 19417 NULL
136114 +disable_so_uwb_rc_dev_addr_set_fndecl_19418 uwb_rc_dev_addr_set fndecl 0 19418 NULL
136115 +disable_so_frames_v4l2_timecode_19427 frames v4l2_timecode 0 19427 NULL
136116 +disable_so_bw_time_stamp_backing_dev_info_19428 bw_time_stamp backing_dev_info 0 19428 NULL
136117 +disable_so_nes_create_sockaddr_fndecl_19431 nes_create_sockaddr fndecl 1-2 19431 NULL
136118 +disable_so_s_uuid_hash_ocfs2_super_block_19432 s_uuid_hash ocfs2_super_block 0 19432 NULL
136119 +disable_so_paging64_walk_addr_fndecl_19436 paging64_walk_addr fndecl 3-4 19436 NULL
136120 +disable_so_snd_sonicvibes_interrupt_fndecl_19437 snd_sonicvibes_interrupt fndecl 1 19437 NULL
136121 +disable_so_width_psb_intel_sdvo_preferred_input_timing_args_19438 width psb_intel_sdvo_preferred_input_timing_args 0 19438 NULL
136122 +disable_so_padlock_sha256_final_fndecl_19450 padlock_sha256_final fndecl 0 19450 NULL
136123 +disable_so_period_time_bau_control_19451 period_time bau_control 0 19451 NULL
136124 +disable_so_timestamp_nfs4_closedata_19455 timestamp nfs4_closedata 0 19455 NULL
136125 +disable_so_crypto_fpu_init_fndecl_19461 crypto_fpu_init fndecl 0 19461 NULL
136126 +disable_so_sysctl_x25_reset_request_timeout_vardecl_19463 sysctl_x25_reset_request_timeout vardecl 0 19463 NULL nohasharray
136127 +disable_so_start_write_delay_c_19463 start_write delay_c 0 19463 &disable_so_sysctl_x25_reset_request_timeout_vardecl_19463
136128 +disable_so_calc_div_fndecl_19469 calc_div fndecl 0-4-3 19469 NULL
136129 +disable_so_log2bpmb_adfs_discrecord_19475 log2bpmb adfs_discrecord 0 19475 NULL
136130 +disable_so_sys_pkt_addr_dle_19487 sys_pkt_addr dle 0 19487 NULL
136131 +disable_so_igb_set_vf_mac_addr_fndecl_19490 igb_set_vf_mac_addr fndecl 3 19490 NULL
136132 +disable_so_ipaddr_atm_mpoa_qos_19492 ipaddr atm_mpoa_qos 0 19492 NULL
136133 +disable_so_start_addr_ms_system_item_19495 start_addr ms_system_item 0 19495 NULL
136134 +disable_so_nmi_timer_start_cpu_fndecl_19509 nmi_timer_start_cpu fndecl 1-0 19509 NULL
136135 +disable_so_rv3029c2_i2c_set_time_fndecl_19511 rv3029c2_i2c_set_time fndecl 0 19511 NULL
136136 +disable_so_trinity_get_valid_engine_clock_fndecl_19516 trinity_get_valid_engine_clock fndecl 0 19516 NULL
136137 +disable_so_add_addr_fndecl_19518 add_addr fndecl 3-4 19518 NULL nohasharray
136138 +disable_so_hash_extent_data_ref_item_fndecl_19518 hash_extent_data_ref_item fndecl 0 19518 &disable_so_add_addr_fndecl_19518
136139 +disable_so_prev_hw_ptr_period_snd_pcm_oss_runtime_19519 prev_hw_ptr_period snd_pcm_oss_runtime 0 19519 NULL
136140 +disable_so_eqaddr_fw_ri_res_sqrq_19526 eqaddr fw_ri_res_sqrq 0 19526 NULL
136141 +disable_so_tms_stime_compat_tms_19527 tms_stime compat_tms 0 19527 NULL
136142 +disable_so_period_addr_ath_gen_timer_configuration_19529 period_addr ath_gen_timer_configuration 0 19529 NULL
136143 +disable_so_sp_tss_segment_16_19536 sp tss_segment_16 0 19536 NULL nohasharray
136144 +disable_so_nrpages_address_space_19536 nrpages address_space 0 19536 &disable_so_sp_tss_segment_16_19536
136145 +disable_so_fb_cvt_pixclock_fndecl_19545 fb_cvt_pixclock fndecl 0 19545 NULL
136146 +disable_so_ipv6_addr_hash_fndecl_19554 ipv6_addr_hash fndecl 0 19554 NULL
136147 +disable_so_fnhe_daddr_fib_nh_exception_19556 fnhe_daddr fib_nh_exception 0 19556 NULL
136148 +disable_so_cir_addr_fintek_dev_19561 cir_addr fintek_dev 0 19561 NULL
136149 +disable_so_saddr_max_pktgen_dev_19567 saddr_max pktgen_dev 0 19567 NULL
136150 +disable_so_check_nnp_nosuid_fndecl_19568 check_nnp_nosuid fndecl 0 19568 NULL
136151 +disable_so_write_phy_reg_fndecl_19585 write_phy_reg fndecl 0-2-3 19585 NULL
136152 +disable_so_garp_join_time_vardecl_garp_c_19597 garp_join_time vardecl_garp.c 0 19597 NULL
136153 +disable_so_signalfd_dequeue_fndecl_19602 signalfd_dequeue fndecl 0-3 19602 NULL
136154 +disable_so_write8_comm_runtime_19603 write8 comm_runtime 4 19603 NULL
136155 +disable_so_sys_semtimedop_fndecl_19605 sys_semtimedop fndecl 1-3-0 19605 NULL
136156 +disable_so_xenvif_rx_queue_timeout_fndecl_19613 xenvif_rx_queue_timeout fndecl 0 19613 NULL
136157 +disable_so_local_cm_response_timeout_ib_cm_req_param_19614 local_cm_response_timeout ib_cm_req_param 0 19614 NULL nohasharray
136158 +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
136159 +disable_so_xtal_cap0p_r820t_freq_range_19614 xtal_cap0p r820t_freq_range 0 19614 &disable_so_ath9k_hw_gen_timer_start_fndecl_19614
136160 +disable_so_time_fmeter_19622 time fmeter 0 19622 NULL
136161 +disable_so_mce_timer_kick_fndecl_19627 mce_timer_kick fndecl 1 19627 NULL
136162 +disable_so_freqn_usb_stream_kernel_19628 freqn usb_stream_kernel 0 19628 NULL
136163 +disable_so_cg_spll_spread_spectrum_2_ci_clock_registers_19639 cg_spll_spread_spectrum_2 ci_clock_registers 0 19639 NULL
136164 +disable_so_ltr501_als_read_samp_freq_fndecl_19642 ltr501_als_read_samp_freq fndecl 0 19642 NULL
136165 +disable_so_addr_snd_sg_page_19645 addr snd_sg_page 0 19645 NULL nohasharray
136166 +disable_so_xfs_btree_kill_root_fndecl_19645 xfs_btree_kill_root fndecl 0 19645 &disable_so_addr_snd_sg_page_19645
136167 +disable_so_xc_get_signal_level_fndecl_19649 xc_get_signal_level fndecl 0 19649 NULL
136168 +disable_so_rx8581_get_datetime_fndecl_19650 rx8581_get_datetime fndecl 0 19650 NULL
136169 +disable_so_mdiv_gk104_clk_info_19653 mdiv gk104_clk_info 0 19653 NULL
136170 +disable_so_c_faddr_rds_connection_19664 c_faddr rds_connection 0 19664 NULL
136171 +disable_so_afs_mntpt_expiry_timeout_vardecl_mntpt_c_19666 afs_mntpt_expiry_timeout vardecl_mntpt.c 0 19666 NULL nohasharray
136172 +disable_so___queue_delayed_work_fndecl_19666 __queue_delayed_work fndecl 1-4 19666 &disable_so_afs_mntpt_expiry_timeout_vardecl_mntpt_c_19666
136173 +disable_so_store_risetime_fndecl_19668 store_risetime fndecl 4-0 19668 NULL
136174 +disable_so_div_r1_pll_values_19670 div_r1 pll_values 0 19670 NULL
136175 +disable_so_tstamp_inet6_ifaddr_19680 tstamp inet6_ifaddr 0 19680 NULL
136176 +disable_so_get_bt_addr_fndecl_19687 get_bt_addr fndecl 0 19687 NULL
136177 +disable_so_clocksource_register_hz_fndecl_19688 clocksource_register_hz fndecl 2 19688 NULL
136178 +disable_so_ceph_mdsmap_get_random_mds_fndecl_19695 ceph_mdsmap_get_random_mds fndecl 0 19695 NULL
136179 +disable_so_addr_qla82xx_md_entry_crb_19696 addr qla82xx_md_entry_crb 0 19696 NULL
136180 +disable_so_frequency_itd1000_state_19704 frequency itd1000_state 0 19704 NULL
136181 +disable_so_parent_tgid_fork_proc_event_19713 parent_tgid fork_proc_event 0 19713 NULL
136182 +disable_so_i_uid_ocfs2_dinode_19720 i_uid ocfs2_dinode 0 19720 NULL
136183 +disable_so_mx2_camera_clock_start_fndecl_19722 mx2_camera_clock_start fndecl 0 19722 NULL
136184 +disable_so_crypto_ccm_decrypt_fndecl_19728 crypto_ccm_decrypt fndecl 0 19728 NULL
136185 +disable_so_seq_put_decimal_ull_fndecl_19739 seq_put_decimal_ull fndecl 3 19739 NULL
136186 +disable_so_capture_source_addr_snd_card_saa7134_19740 capture_source_addr snd_card_saa7134 0 19740 NULL
136187 +disable_so_write_reg_fndecl_19743 write_reg fndecl 0-3 19743 NULL
136188 +disable_so_ndac_aic32x4_rate_divs_19748 ndac aic32x4_rate_divs 0 19748 NULL
136189 +disable_so_hpi_sample_clock_set_source_fndecl_19753 hpi_sample_clock_set_source fndecl 1-0 19753 NULL
136190 +disable_so_address_ipr_ioadl_desc_19756 address ipr_ioadl_desc 0 19756 NULL
136191 +disable_so_curr_hash_dir_private_info_19760 curr_hash dir_private_info 0 19760 NULL
136192 +disable_so_ccp_register_sha_alg_fndecl_19771 ccp_register_sha_alg fndecl 0 19771 NULL
136193 +disable_so_addr_set_port_fndecl_19776 addr_set_port fndecl 2 19776 NULL
136194 +disable_so_gpu_id_kfd_ioctl_get_clock_counters_args_19784 gpu_id kfd_ioctl_get_clock_counters_args 0 19784 NULL
136195 +disable_so_seq_cpl_rx_data_ddp_norss_19788 seq cpl_rx_data_ddp_norss 0 19788 NULL nohasharray
136196 +disable_so_cherryview_rps_max_freq_fndecl_19788 cherryview_rps_max_freq fndecl 0 19788 &disable_so_seq_cpl_rx_data_ddp_norss_19788
136197 +disable_so_inet6_dump_addr_fndecl_19792 inet6_dump_addr fndecl 0 19792 NULL
136198 +disable_so_pixelclock_videomode_19794 pixelclock videomode 0 19794 NULL
136199 +disable_so_hbackporch_v4l2_bt_timings_19806 hbackporch v4l2_bt_timings 0 19806 NULL
136200 +disable_so_dy_runtime_sc_19824 dy runtime_sc 0 19824 NULL nohasharray
136201 +disable_so_dm_btree_insert_fndecl_19824 dm_btree_insert fndecl 0-2 19824 &disable_so_dy_runtime_sc_19824
136202 +disable_so_cpufreq_generic_get_fndecl_19829 cpufreq_generic_get fndecl 0-1 19829 NULL
136203 +disable_so_outdiv_fll_factors_19836 outdiv fll_factors 0 19836 NULL
136204 +disable_so_scd_base_addr_il_priv_19840 scd_base_addr il_priv 0 19840 NULL
136205 +disable_so_acpi_ut_short_divide_fndecl_19845 acpi_ut_short_divide fndecl 1 19845 NULL
136206 +disable_so_timewarn_cs_read_fndecl_19849 timewarn_cs_read fndecl 0 19849 NULL
136207 +disable_so_freq_wmi_rx_action_event_19864 freq wmi_rx_action_event 0 19864 NULL
136208 +disable_so_eeprom_indirect_address_fndecl_19868 eeprom_indirect_address fndecl 0-2-3 19868 NULL
136209 +disable_so_core_clock_nes_adapter_19875 core_clock nes_adapter 0 19875 NULL
136210 +disable_so_ecx_v86_regs_19877 ecx v86_regs 0 19877 NULL
136211 +disable_so_base_clock_show_fndecl_19894 base_clock_show fndecl 0 19894 NULL
136212 +disable_so_jiffies_next_rtl2832_sdr_dev_19897 jiffies_next rtl2832_sdr_dev 0 19897 NULL
136213 +disable_so_process_tgid_exit_proc_event_19898 process_tgid exit_proc_event 0 19898 NULL
136214 +disable_so_n_cipher_suites_wiphy_19902 n_cipher_suites wiphy 0 19902 NULL
136215 +disable_so_fsl_asrc_cal_asrck_divisor_fndecl_19905 fsl_asrc_cal_asrck_divisor fndecl 0-2 19905 NULL
136216 +disable_so_ntimer_qs_tp_params_19910 ntimer_qs tp_params 0 19910 NULL
136217 +disable_so_rf_freq_off_mt7601u_eeprom_params_19920 rf_freq_off mt7601u_eeprom_params 0 19920 NULL
136218 +disable_so_ip_hash_netport4_elem_19921 ip hash_netport4_elem 0 19921 NULL
136219 +disable_so_cnid_hfs_btree_19924 cnid hfs_btree 0 19924 NULL
136220 +disable_so_vblank_lo_detailed_pixel_timing_19925 vblank_lo detailed_pixel_timing 0 19925 NULL
136221 +disable_so_addr_i2c_client_19929 addr i2c_client 0 19929 NULL
136222 +disable_so_addr_nv50_i2c_port_19931 addr nv50_i2c_port 0 19931 NULL
136223 +disable_so_epp_write_addr_parport_operations_19935 epp_write_addr parport_operations 0-3 19935 NULL
136224 +disable_so_ds_last_time_o2hb_disk_slot_19938 ds_last_time o2hb_disk_slot 0 19938 NULL
136225 +disable_so_local_addr_rds_info_tcp_socket_19943 local_addr rds_info_tcp_socket 0 19943 NULL
136226 +disable_so_i_ctime_ext3_inode_19948 i_ctime ext3_inode 0 19948 NULL
136227 +disable_so_maven_set_reg_fndecl_19961 maven_set_reg fndecl 3 19961 NULL
136228 +disable_so_maven_find_exact_clocks_fndecl_19977 maven_find_exact_clocks fndecl 1-2 19977 NULL
136229 +disable_so_tda826x_sleep_fndecl_19981 tda826x_sleep fndecl 0 19981 NULL
136230 +disable_so_rate_snd_pcm_runtime_19986 rate snd_pcm_runtime 0 19986 NULL
136231 +disable_so___pm_runtime_suspend_fndecl_19989 __pm_runtime_suspend fndecl 0 19989 NULL
136232 +disable_so_time_tx_survey_info_19997 time_tx survey_info 0 19997 NULL
136233 +disable_so_rt_time_rt_rq_20001 rt_time rt_rq 0 20001 NULL
136234 +disable_so_message_buffer_address_on_dsp_hpi_hw_obj_20007 message_buffer_address_on_dsp hpi_hw_obj 0 20007 NULL nohasharray
136235 +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
136236 +disable_so_xfs_btree_init_block_fndecl_20025 xfs_btree_init_block fndecl 6 20025 NULL
136237 +disable_so_ds1347_set_time_fndecl_20026 ds1347_set_time fndecl 0 20026 NULL
136238 +disable_so_cyapa_start_runtime_fndecl_20033 cyapa_start_runtime fndecl 0 20033 NULL
136239 +disable_so_mvumi_map_pci_addr_fndecl_20039 mvumi_map_pci_addr fndecl 0 20039 NULL
136240 +disable_so_vpd_paddr_low_lpfc_mbx_read_rev_20047 vpd_paddr_low lpfc_mbx_read_rev 0 20047 NULL
136241 +disable_so_di_atime_qnx4_inode_entry_20056 di_atime qnx4_inode_entry 0 20056 NULL nohasharray
136242 +disable_so_cgid_ipc64_perm_20056 cgid ipc64_perm 0 20056 &disable_so_di_atime_qnx4_inode_entry_20056
136243 +disable_so_bb_watchdog_timeout_ms_ath_hw_20060 bb_watchdog_timeout_ms ath_hw 0 20060 NULL
136244 +disable_so_des5_idmac_desc_64addr_20062 des5 idmac_desc_64addr 0 20062 NULL
136245 +disable_so_buf_addr_mlx5_ib_resize_cq_20068 buf_addr mlx5_ib_resize_cq 0 20068 NULL
136246 +disable_so_is_partially_uptodate_address_space_operations_20075 is_partially_uptodate address_space_operations 2-3 20075 NULL
136247 +disable_so_mask_kvm_mtrr_range_20079 mask kvm_mtrr_range 0 20079 NULL
136248 +disable_so_st_ctime___old_kernel_stat_20080 st_ctime __old_kernel_stat 0 20080 NULL
136249 +disable_so_i_ctime_exofs_fcb_20092 i_ctime exofs_fcb 0 20092 NULL
136250 +disable_so_drbg_kcapi_random_fndecl_20112 drbg_kcapi_random fndecl 3-0 20112 NULL
136251 +disable_so_gid_fuse_in_header_20113 gid fuse_in_header 0 20113 NULL
136252 +disable_so_proto_xfrm_usersa_id_20137 proto xfrm_usersa_id 0 20137 NULL
136253 +disable_so_nsec_timecounter_20144 nsec timecounter 0 20144 NULL nohasharray
136254 +disable_so_kvm_set_shared_msr_fndecl_20144 kvm_set_shared_msr fndecl 2 20144 &disable_so_nsec_timecounter_20144
136255 +disable_so___xfrm4_addr_hash_fndecl_20148 __xfrm4_addr_hash fndecl 0 20148 NULL
136256 +disable_so_hpet_address_vardecl_20150 hpet_address vardecl 0 20150 NULL
136257 +disable_so_next_buf_addr_c67x00_hcd_20169 next_buf_addr c67x00_hcd 0 20169 NULL
136258 +disable_so_urg_seq_tcp_sock_20171 urg_seq tcp_sock 0 20171 NULL
136259 +disable_so_uid_crash_uid_20189 uid crash_uid 0 20189 NULL
136260 +disable_so_force_addr_vardecl_i2c_sis5595_c_20194 force_addr vardecl_i2c-sis5595.c 0 20194 NULL
136261 +disable_so_get_random_bytes_fndecl_20208 get_random_bytes fndecl 2 20208 NULL
136262 +disable_so_end_pci_bus_region_20220 end pci_bus_region 0 20220 NULL
136263 +disable_so_ptp_devt_vardecl_ptp_clock_c_20222 ptp_devt vardecl_ptp_clock.c 0 20222 NULL
136264 +disable_so_rp5c01_read_time_fndecl_20225 rp5c01_read_time fndecl 0 20225 NULL
136265 +disable_so_scsi_inq_timeout_vardecl_scsi_scan_c_20228 scsi_inq_timeout vardecl_scsi_scan.c 0 20228 NULL
136266 +disable_so_crypto_report_alg_fndecl_20233 crypto_report_alg fndecl 0 20233 NULL
136267 +disable_so_cache_flush_timeout_vardecl_ms_block_c_20240 cache_flush_timeout vardecl_ms_block.c 0 20240 NULL nohasharray
136268 +disable_so_freq_to_note_fndecl_20240 freq_to_note fndecl 0-1 20240 &disable_so_cache_flush_timeout_vardecl_ms_block_c_20240
136269 +disable_so_sdhci_runtime_pm_put_fndecl_20243 sdhci_runtime_pm_put fndecl 0 20243 NULL nohasharray
136270 +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
136271 +disable_so_blkaddr_fsync_inode_entry_20244 blkaddr fsync_inode_entry 0 20244 NULL
136272 +disable_so_refb_r_div_ad9523_platform_data_20245 refb_r_div ad9523_platform_data 0 20245 NULL nohasharray
136273 +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
136274 +disable_so_buf_count_ccp_aes_cmac_req_ctx_20252 buf_count ccp_aes_cmac_req_ctx 0 20252 NULL
136275 +disable_so_nfs4_proc_get_lease_time_fndecl_20254 nfs4_proc_get_lease_time fndecl 0 20254 NULL nohasharray
136276 +disable_so_dma_addr_enet_cb_20254 dma_addr enet_cb 0 20254 &disable_so_nfs4_proc_get_lease_time_fndecl_20254
136277 +disable_so_eax_user_regs_struct32_20260 eax user_regs_struct32 0 20260 NULL
136278 +disable_so_freq_wmi_remain_on_chnl_cmd_20271 freq wmi_remain_on_chnl_cmd 0 20271 NULL
136279 +disable_so_esp_tss_segment_32_20300 esp tss_segment_32 0 20300 NULL
136280 +disable_so_hash_netportnet6_expire_fndecl_20301 hash_netportnet6_expire fndecl 4 20301 NULL
136281 +disable_so_dma_buffer_sst_module_runtime_context_20307 dma_buffer sst_module_runtime_context 0 20307 NULL nohasharray
136282 +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
136283 +disable_so_nosnoop_pbladdr_fw_ri_tpte_20317 nosnoop_pbladdr fw_ri_tpte 0 20317 NULL
136284 +disable_so_sir_addr_sockaddr_irda_20319 sir_addr sockaddr_irda 0 20319 NULL
136285 +disable_so_iter_div_u64_rem_fndecl_20326 iter_div_u64_rem fndecl 0 20326 NULL
136286 +disable_so_ps2_adjust_timeout_fndecl_20329 ps2_adjust_timeout fndecl 0-3-2 20329 NULL nohasharray
136287 +disable_so_ztime_trackpoint_data_20329 ztime trackpoint_data 0 20329 &disable_so_ps2_adjust_timeout_fndecl_20329
136288 +disable_so_ui_uid_ufs2_inode_20330 ui_uid ufs2_inode 0 20330 NULL nohasharray
136289 +disable_so_stb6000_sleep_fndecl_20330 stb6000_sleep fndecl 0 20330 &disable_so_ui_uid_ufs2_inode_20330
136290 +disable_so_gfs2_bit_search_fndecl_20331 gfs2_bit_search fndecl 0-2 20331 NULL
136291 +disable_so_ccp_run_aes_cmac_cmd_fndecl_20335 ccp_run_aes_cmac_cmd fndecl 0 20335 NULL
136292 +disable_so_compat_sys_clock_gettime_fndecl_20336 compat_sys_clock_gettime fndecl 1 20336 NULL
136293 +disable_so_div_fc2580_pll_20347 div fc2580_pll 0 20347 NULL
136294 +disable_so_xfrm_spi_hash_fndecl_20353 xfrm_spi_hash fndecl 0-3-4-5 20353 NULL
136295 +disable_so_compute_duty_cycle_fndecl_20356 compute_duty_cycle fndecl 0-2 20356 NULL
136296 +disable_so_pmcraid_read_interrupts_fndecl_20362 pmcraid_read_interrupts fndecl 0 20362 NULL
136297 +disable_so_receive_bitmap_fndecl_20365 receive_bitmap fndecl 0 20365 NULL
136298 +disable_so_ccycle_esp_20366 ccycle esp 0 20366 NULL
136299 +disable_so_rspi_wait_for_interrupt_fndecl_20368 rspi_wait_for_interrupt fndecl 3-0 20368 NULL
136300 +disable_so_bitmap_startwrite_fndecl_20371 bitmap_startwrite fndecl 2-3 20371 NULL
136301 +disable_so_crypto_rfc4543_decrypt_fndecl_20376 crypto_rfc4543_decrypt fndecl 0 20376 NULL
136302 +disable_so_acpi_os_signal_fndecl_20378 acpi_os_signal fndecl 0 20378 NULL
136303 +disable_so_interrupt_type___vxge_hw_fifo_20379 interrupt_type __vxge_hw_fifo 0 20379 NULL
136304 +disable_so_address_lo_lpfc_rqe_20386 address_lo lpfc_rqe 0 20386 NULL
136305 +disable_so_addr_rsxx_reg_access_20389 addr rsxx_reg_access 0 20389 NULL
136306 +disable_so_vpm_read_address_fndecl_20399 vpm_read_address fndecl 0 20399 NULL
136307 +disable_so_block_addr_f2fs_nat_entry_20409 block_addr f2fs_nat_entry 0 20409 NULL
136308 +disable_so_backlight_duty_cycle_psb_intel_mode_device_20421 backlight_duty_cycle psb_intel_mode_device 0 20421 NULL
136309 +disable_so_skd_start_timer_fndecl_20432 skd_start_timer fndecl 0 20432 NULL
136310 +disable_so_cmd64x_program_timings_fndecl_20435 cmd64x_program_timings fndecl 2 20435 NULL
136311 +disable_so_chgfreq_cs42l52_platform_data_20448 chgfreq cs42l52_platform_data 0 20448 NULL
136312 +disable_so_tvaudio_sleep_fndecl_20455 tvaudio_sleep fndecl 2 20455 NULL
136313 +disable_so_simplefb_clocks_init_fndecl_20466 simplefb_clocks_init fndecl 0 20466 NULL
136314 +disable_so_last_time_stats_20477 last time_stats 0 20477 NULL
136315 +disable_so_min_freq_intel_gen6_power_mgmt_20480 min_freq intel_gen6_power_mgmt 0 20480 NULL
136316 +disable_so_il_dbgfs_interrupt_read_fndecl_20484 il_dbgfs_interrupt_read fndecl 3-0 20484 NULL
136317 +disable_so_final_timeout_irlap_cb_20486 final_timeout irlap_cb 0 20486 NULL
136318 +disable_so_sec_btrfs_timespec_20492 sec btrfs_timespec 0 20492 NULL
136319 +disable_so_bitmap_prepare_for_write_fndecl_20495 bitmap_prepare_for_write fndecl 3 20495 NULL
136320 +disable_so_cg_spll_func_cntl_3_ni_clock_registers_20497 cg_spll_func_cntl_3 ni_clock_registers 0 20497 NULL
136321 +disable_so_pch_udc_disable_interrupts_fndecl_20502 pch_udc_disable_interrupts fndecl 2 20502 NULL
136322 +disable_so_i_mtime_bfs_inode_20503 i_mtime bfs_inode 0 20503 NULL
136323 +disable_so_timeout_nft_dynset_20509 timeout nft_dynset 0 20509 NULL
136324 +disable_so_ni_populate_memory_timing_parameters_fndecl_20513 ni_populate_memory_timing_parameters fndecl 0 20513 NULL
136325 +disable_so_scnprintf_fndecl_20531 scnprintf fndecl 0-2 20531 NULL nohasharray
136326 +disable_so_select_addr_qla8xxx_minidump_entry_queue_20531 select_addr qla8xxx_minidump_entry_queue 0 20531 &disable_so_scnprintf_fndecl_20531
136327 +disable_so___ww_mutex_lock_interruptible_slowpath_fndecl_20533 __ww_mutex_lock_interruptible_slowpath fndecl 0 20533 NULL
136328 +disable_so_compute_subtree_max_end_fndecl_20536 compute_subtree_max_end fndecl 0 20536 NULL
136329 +disable_so_wlc_lcnphy_qdiv_roundup_fndecl_20539 wlc_lcnphy_qdiv_roundup fndecl 0-2-1 20539 NULL
136330 +disable_so_value_ieee80211_timeout_interval_ie_20540 value ieee80211_timeout_interval_ie 0 20540 NULL
136331 +disable_so_skb_put_le32_fndecl_20551 skb_put_le32 fndecl 2 20551 NULL
136332 +disable_so_get_setup_data_paddr_fndecl_20558 get_setup_data_paddr fndecl 0 20558 NULL
136333 +disable_so_i_mtime_nilfs_inode_20563 i_mtime nilfs_inode 0 20563 NULL
136334 +disable_so_cipher_key_params_20564 cipher key_params 0 20564 NULL
136335 +disable_so_iscsit_na_random_datain_pdu_offsets_fndecl_20565 iscsit_na_random_datain_pdu_offsets fndecl 0 20565 NULL
136336 +disable_so_delay_mult_qib_pportdata_20567 delay_mult qib_pportdata 0 20567 NULL
136337 +disable_so_pm_timer_block_acpi_table_fadt_20569 pm_timer_block acpi_table_fadt 0 20569 NULL
136338 +disable_so_addr_data_si_sm_io_20586 addr_data si_sm_io 0 20586 NULL nohasharray
136339 +disable_so_sib_flowinfo_sockaddr_ib_20586 sib_flowinfo sockaddr_ib 0 20586 &disable_so_addr_data_si_sm_io_20586
136340 +disable_so_dll_cntl_rv770_clock_registers_20601 dll_cntl rv770_clock_registers 0 20601 NULL nohasharray
136341 +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
136342 +disable_so_ndtc_hash_mask_ndt_config_20603 ndtc_hash_mask ndt_config 0 20603 NULL
136343 +disable_so_borrow_defer_timestamp_brcmf_fws_info_20615 borrow_defer_timestamp brcmf_fws_info 0 20615 NULL
136344 +disable_so_wakeup_max_time_show_fndecl_20622 wakeup_max_time_show fndecl 0 20622 NULL
136345 +disable_so_tw_flowlabel_inet_timewait_sock_20634 tw_flowlabel inet_timewait_sock 0 20634 NULL
136346 +disable_so_ib_baseaddr_l_mvumi_hs_page4_20645 ib_baseaddr_l mvumi_hs_page4 0 20645 NULL
136347 +disable_so_shash_register_instance_fndecl_20652 shash_register_instance fndecl 0 20652 NULL
136348 +disable_so_snd_usb_clock_find_source_fndecl_20655 snd_usb_clock_find_source fndecl 0-2 20655 NULL
136349 +disable_so_g_dv_timings_v4l2_subdev_video_ops_20656 g_dv_timings v4l2_subdev_video_ops 0 20656 NULL
136350 +disable_so_radio_addr_em28xx_board_20659 radio_addr em28xx_board 0 20659 NULL
136351 +disable_so_cx24117_sleep_fndecl_20661 cx24117_sleep fndecl 0 20661 NULL
136352 +disable_so_run_one_delayed_ref_fndecl_20668 run_one_delayed_ref fndecl 0 20668 NULL nohasharray
136353 +disable_so_saddr_ircomm_info_20668 saddr ircomm_info 0 20668 &disable_so_run_one_delayed_ref_fndecl_20668
136354 +disable_so_i2c_addr_req_t_20671 i2c_addr req_t 0 20671 NULL
136355 +disable_so_mcryptd_hash_import_fndecl_20673 mcryptd_hash_import fndecl 0 20673 NULL
136356 +disable_so_ath10k_reg_addr_read_fndecl_20675 ath10k_reg_addr_read fndecl 3-0 20675 NULL nohasharray
136357 +disable_so_frequency_stepsize_dvb_frontend_info_20675 frequency_stepsize dvb_frontend_info 0 20675 &disable_so_ath10k_reg_addr_read_fndecl_20675
136358 +disable_so_latency_timer_show_fndecl_20676 latency_timer_show fndecl 0 20676 NULL nohasharray
136359 +disable_so_total_bytes_transferred_snd_compr_runtime_20676 total_bytes_transferred snd_compr_runtime 0 20676 &disable_so_latency_timer_show_fndecl_20676
136360 +disable_so_control_addr_qla8xxx_minidump_entry_cache_20678 control_addr qla8xxx_minidump_entry_cache 0 20678 NULL
136361 +disable_so_timeout_i2c_algo_bit_data_20687 timeout i2c_algo_bit_data 0 20687 NULL
136362 +disable_so_lookup_address_fndecl_20689 lookup_address fndecl 1 20689 NULL
136363 +disable_so_pcf8523_rtc_read_time_fndecl_20690 pcf8523_rtc_read_time fndecl 0 20690 NULL
136364 +disable_so_freq_nvbios_cstepX_20695 freq nvbios_cstepX 0 20695 NULL
136365 +disable_so_seq_virtio_gpu_fence_20701 seq virtio_gpu_fence 0 20701 NULL
136366 +disable_so_ftime_qlcnic_filter_20707 ftime qlcnic_filter 0 20707 NULL nohasharray
136367 +disable_so_myri10ge_rss_hash_vardecl_myri10ge_c_20707 myri10ge_rss_hash vardecl_myri10ge.c 0 20707 &disable_so_ftime_qlcnic_filter_20707
136368 +disable_so_mwifiex_cmd_802_11_mac_address_fndecl_20714 mwifiex_cmd_802_11_mac_address fndecl 0 20714 NULL
136369 +disable_so_typeAndTimezone_timestamp_20722 typeAndTimezone timestamp 0 20722 NULL
136370 +disable_so_btrfs_delayed_update_inode_fndecl_20726 btrfs_delayed_update_inode fndecl 0 20726 NULL
136371 +disable_so_dsc_timeout_ide_tape_obj_20727 dsc_timeout ide_tape_obj 0 20727 NULL
136372 +disable_so_stb0899_dvbs2_set_carr_freq_fndecl_20730 stb0899_dvbs2_set_carr_freq fndecl 2-3 20730 NULL
136373 +disable_so_wl1271_acx_service_period_timeout_fndecl_20736 wl1271_acx_service_period_timeout fndecl 0 20736 NULL
136374 +disable_so_am335x_tsc_se_clr_fndecl_20745 am335x_tsc_se_clr fndecl 2 20745 NULL
136375 +disable_so_node_guid_ib_node_info_20750 node_guid ib_node_info 0 20750 NULL nohasharray
136376 +disable_so_rsxx_addr8_to_laddr_fndecl_20750 rsxx_addr8_to_laddr fndecl 0-1 20750 &disable_so_node_guid_ib_node_info_20750
136377 +disable_so_nilfs_btree_propagate_p_fndecl_20757 nilfs_btree_propagate_p fndecl 0 20757 NULL
136378 +disable_so_read_file_antenna_diversity_fndecl_20758 read_file_antenna_diversity fndecl 0 20758 NULL
136379 +disable_so_dev_pm_opp_find_freq_exact_fndecl_20768 dev_pm_opp_find_freq_exact fndecl 2 20768 NULL
136380 +disable_so_mpll_dq_func_cntl_ni_clock_registers_20779 mpll_dq_func_cntl ni_clock_registers 0 20779 NULL
136381 +disable_so_print_time_fndecl_20783 print_time fndecl 1-0 20783 NULL
136382 +disable_so_store_fan_stop_time_fndecl_20785 store_fan_stop_time fndecl 0-4 20785 NULL nohasharray
136383 +disable_so_gpu_addr_r600_vram_scratch_20785 gpu_addr r600_vram_scratch 0 20785 &disable_so_store_fan_stop_time_fndecl_20785
136384 +disable_so_s5m8767_set_voltage_time_sel_fndecl_20788 s5m8767_set_voltage_time_sel fndecl 0-2-3 20788 NULL nohasharray
136385 +disable_so_addr_kvm_async_pf_20788 addr kvm_async_pf 0 20788 &disable_so_s5m8767_set_voltage_time_sel_fndecl_20788
136386 +disable_so_rxLifetime_ConfigRid_20793 rxLifetime ConfigRid 0 20793 NULL
136387 +disable_so_downdelay_bond_params_20794 downdelay bond_params 0 20794 NULL
136388 +disable_so_dma_address_info_20796 dma address_info 0 20796 NULL
136389 +disable_so_write16_async_rtl_io_20799 write16_async rtl_io 2-3 20799 NULL
136390 +disable_so_sec_2_cycles_fndecl_20803 sec_2_cycles fndecl 0-1 20803 NULL
136391 +disable_so_nsec_base_pvclock_gtod_data_20804 nsec_base pvclock_gtod_data 0 20804 NULL
136392 +disable_so_ndo_set_mac_address_net_device_ops_20806 ndo_set_mac_address net_device_ops 0 20806 NULL
136393 +disable_so_crypto_dump_report_fndecl_20811 crypto_dump_report fndecl 0 20811 NULL
136394 +disable_so_ttime_total_cfq_ttime_20813 ttime_total cfq_ttime 0 20813 NULL
136395 +disable_so_freq_chan_info_2064_lcnphy_20814 freq chan_info_2064_lcnphy 0 20814 NULL
136396 +disable_so_msleep_fndecl_20815 msleep fndecl 1 20815 NULL nohasharray
136397 +disable_so_freq_hz_xc4000_priv_20815 freq_hz xc4000_priv 0 20815 &disable_so_msleep_fndecl_20815
136398 +disable_so_t4_set_params_nosleep_fndecl_20819 t4_set_params_nosleep fndecl 0-2-3-4 20819 NULL
136399 +disable_so_get_next_timer_interrupt_fndecl_20832 get_next_timer_interrupt fndecl 0-1 20832 NULL
136400 +disable_so_vol_bit_width_anatop_regulator_20852 vol_bit_width anatop_regulator 0 20852 NULL
136401 +disable_so_VSyncStart_xtimings_20858 VSyncStart xtimings 0 20858 NULL
136402 +disable_so_calibrate_delay_is_known_fndecl_20859 calibrate_delay_is_known fndecl 0 20859 NULL
136403 +disable_so_handling_delay_adc_jack_data_20874 handling_delay adc_jack_data 0 20874 NULL
136404 +disable_so_fm3130_get_time_fndecl_20875 fm3130_get_time fndecl 0 20875 NULL
136405 +disable_so_addr_hi_mv_sg_20880 addr_hi mv_sg 0 20880 NULL
136406 +disable_so_print_time_fndecl_20896 print_time fndecl 1 20896 NULL nohasharray
136407 +disable_so_ini_jiffies_tm6000_dmaqueue_20896 ini_jiffies tm6000_dmaqueue 0 20896 &disable_so_print_time_fndecl_20896
136408 +disable_so_timeout_carl9170_tx_info_20900 timeout carl9170_tx_info 0 20900 NULL
136409 +disable_so_phys_addr_t4_sq_20908 phys_addr t4_sq 0 20908 NULL
136410 +disable_so_ns_2_cycles_fndecl_20913 ns_2_cycles fndecl 0-1 20913 NULL
136411 +disable_so_number_fndecl_20920 number fndecl 3 20920 NULL
136412 +disable_so_n_wm8978_pll_div_20930 n wm8978_pll_div 0 20930 NULL
136413 +disable_so_snd_es1938_interrupt_fndecl_20934 snd_es1938_interrupt fndecl 1 20934 NULL
136414 +disable_so___ilog2_u64_fndecl_20935 __ilog2_u64 fndecl 0-1 20935 NULL
136415 +disable_so_acpi_target_sleep_state_vardecl_sleep_c_20940 acpi_target_sleep_state vardecl_sleep.c 0 20940 NULL
136416 +disable_so_wq_cpumask_store_fndecl_20950 wq_cpumask_store fndecl 0-4 20950 NULL
136417 +disable_so_bmc150_accel_get_startup_times_fndecl_20957 bmc150_accel_get_startup_times fndecl 0 20957 NULL
136418 +disable_so_antdiv_ctl2_modal_eep_4k_header_20958 antdiv_ctl2 modal_eep_4k_header 0 20958 NULL
136419 +disable_so_rc_keydown_notimeout_fndecl_20964 rc_keydown_notimeout fndecl 4-3 20964 NULL
136420 +disable_so_inet6_fill_ifaddr_fndecl_20965 inet6_fill_ifaddr fndecl 0-3-5 20965 NULL
136421 +disable_so_hca_core_clock_mlx4_caps_20972 hca_core_clock mlx4_caps 0 20972 NULL
136422 +disable_so_netxen_set_interrupt_mode_fndecl_20973 netxen_set_interrupt_mode fndecl 2 20973 NULL
136423 +disable_so_slottime_sixpack_20976 slottime sixpack 0 20976 NULL
136424 +disable_so_mpll_ad_func_cntl_rv770_clock_registers_20978 mpll_ad_func_cntl rv770_clock_registers 0 20978 NULL
136425 +disable_so_uhash_entries_vardecl_udp_c_20980 uhash_entries vardecl_udp.c 0 20980 NULL
136426 +disable_so_s2mps11_regulator_set_voltage_time_sel_fndecl_20983 s2mps11_regulator_set_voltage_time_sel fndecl 0-2-3 20983 NULL
136427 +disable_so_mlx4_ib_query_gid_fndecl_20997 mlx4_ib_query_gid fndecl 0-2-3 20997 NULL
136428 +disable_so_ep_timeout_secs_vardecl_iwch_cm_c_20999 ep_timeout_secs vardecl_iwch_cm.c 0 20999 NULL nohasharray
136429 +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
136430 +disable_so_vddc_radeon_clock_and_voltage_limits_21012 vddc radeon_clock_and_voltage_limits 0 21012 NULL
136431 +disable_so_spu_sleep_ds_device_21015 spu_sleep ds_device 0 21015 NULL
136432 +disable_so_dqb_btime_if_dqblk_21019 dqb_btime if_dqblk 0 21019 NULL
136433 +disable_so_sg_frame_phys_addr_megasas_cmd_fusion_21025 sg_frame_phys_addr megasas_cmd_fusion 0 21025 NULL
136434 +disable_so_radeon_crtc_set_base_atomic_fndecl_21027 radeon_crtc_set_base_atomic fndecl 0-3-4 21027 NULL
136435 +disable_so_i40e_get_san_mac_addr_fndecl_21029 i40e_get_san_mac_addr fndecl 0 21029 NULL
136436 +disable_so_regmap_del_irq_chip_fndecl_21031 regmap_del_irq_chip fndecl 1 21031 NULL
136437 +disable_so_res_hash_dlm_rsb_21034 res_hash dlm_rsb 0 21034 NULL
136438 +disable_so_early_acpi_parse_madt_lapic_addr_ovr_fndecl_21041 early_acpi_parse_madt_lapic_addr_ovr fndecl 0 21041 NULL
136439 +disable_so_tw_tos_inet_timewait_sock_21047 tw_tos inet_timewait_sock 0 21047 NULL
136440 +disable_so_cfg80211_get_chans_dfs_cac_time_fndecl_21052 cfg80211_get_chans_dfs_cac_time fndecl 0-2-3 21052 NULL
136441 +disable_so_random_tipc_net_21055 random tipc_net 0 21055 NULL
136442 +disable_so_tag_reg_addr_qla8xxx_minidump_entry_cache_21058 tag_reg_addr qla8xxx_minidump_entry_cache 0 21058 NULL
136443 +disable_so_m1_gma_clock_t_21062 m1 gma_clock_t 0 21062 NULL
136444 +disable_so_cutime_signal_struct_21069 cutime signal_struct 0 21069 NULL
136445 +disable_so_frac_pos_dummy_systimer_pcm_21070 frac_pos dummy_systimer_pcm 0 21070 NULL
136446 +disable_so_mmc_sdio_runtime_resume_fndecl_21078 mmc_sdio_runtime_resume fndecl 0 21078 NULL
136447 +disable_so_last_write_time_smb_com_query_information_rsp_21093 last_write_time smb_com_query_information_rsp 0 21093 NULL
136448 +disable_so_ssb_sdio_set_sbaddr_window_fndecl_21116 ssb_sdio_set_sbaddr_window fndecl 0-2 21116 NULL
136449 +disable_so_apei_clear_mce_fndecl_21119 apei_clear_mce fndecl 0 21119 NULL
136450 +disable_so_pnfs_layoutget_retry_bit_wait_fndecl_21127 pnfs_layoutget_retry_bit_wait fndecl 0 21127 NULL
136451 +disable_so_rq_page_table_addr_lo_iscsi_kwqe_conn_offload2_21144 rq_page_table_addr_lo iscsi_kwqe_conn_offload2 0 21144 NULL
136452 +disable_so_addrconf_sysctl_forward_fndecl_21146 addrconf_sysctl_forward fndecl 0 21146 NULL
136453 +disable_so_bcma_pmu_get_bus_clock_fndecl_21147 bcma_pmu_get_bus_clock fndecl 0 21147 NULL nohasharray
136454 +disable_so_address_acpi_generic_address_21147 address acpi_generic_address 0 21147 &disable_so_bcma_pmu_get_bus_clock_fndecl_21147
136455 +disable_so_phys_addr__DMABUFFERENTRY_21149 phys_addr _DMABUFFERENTRY 0 21149 NULL
136456 +disable_so_phy_addr_bnx2x_port_21152 phy_addr bnx2x_port 0 21152 NULL
136457 +disable_so_demod_address_va1j5jf8007t_config_21154 demod_address va1j5jf8007t_config 0 21154 NULL
136458 +disable_so_mgt_orb_timeout_sbp2_target_21164 mgt_orb_timeout sbp2_target 0 21164 NULL
136459 +disable_so_io_addr_blogic_probeinfo_21171 io_addr blogic_probeinfo 0 21171 NULL
136460 +disable_so_stag_c2_data_addr_21185 stag c2_data_addr 0 21185 NULL
136461 +disable_so_idle_timeout_set_fndecl_21189 idle_timeout_set fndecl 2 21189 NULL nohasharray
136462 +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
136463 +disable_so_poll_schedule_timeout_fndecl_21195 poll_schedule_timeout fndecl 4 21195 NULL
136464 +disable_so_fb_cvt_ideal_duty_cycle_fndecl_21197 fb_cvt_ideal_duty_cycle fndecl 0 21197 NULL
136465 +disable_so_dwell_time_brcmf_fil_af_params_le_21198 dwell_time brcmf_fil_af_params_le 0 21198 NULL
136466 +disable_so_pciehp_poll_time_vardecl_21204 pciehp_poll_time vardecl 0 21204 NULL
136467 +disable_so_sha1_base_do_update_fndecl_21207 sha1_base_do_update fndecl 3 21207 NULL
136468 +disable_so_arizona_runtime_suspend_fndecl_21209 arizona_runtime_suspend fndecl 0 21209 NULL nohasharray
136469 +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
136470 +disable_so_xc_get_frequency_error_fndecl_21217 xc_get_frequency_error fndecl 0 21217 NULL
136471 +disable_so_phys_addr_megasas_sge_skinny_21220 phys_addr megasas_sge_skinny 0 21220 NULL
136472 +disable_so_i2c_addr_radeon_router_21224 i2c_addr radeon_router 0 21224 NULL
136473 +disable_so_invalidatepage_address_space_operations_21227 invalidatepage address_space_operations 2-3 21227 NULL
136474 +disable_so_usb_free_coherent_fndecl_21239 usb_free_coherent fndecl 2-4 21239 NULL
136475 +disable_so_ci_populate_memory_timing_parameters_fndecl_21251 ci_populate_memory_timing_parameters fndecl 0-2-3 21251 NULL
136476 +disable_so_compat_sys_semtimedop_fndecl_21253 compat_sys_semtimedop fndecl 3-1-0 21253 NULL
136477 +disable_so_blkcipher_walk_done_fndecl_21256 blkcipher_walk_done fndecl 0-3 21256 NULL
136478 +disable_so_iscsi_tpg_attrib_store_login_timeout_fndecl_21278 iscsi_tpg_attrib_store_login_timeout fndecl 0-3 21278 NULL
136479 +disable_so_tuner_address_mt2063_config_21279 tuner_address mt2063_config 0 21279 NULL
136480 +disable_so_register_refined_jiffies_fndecl_21283 register_refined_jiffies fndecl 1 21283 NULL
136481 +disable_so_debug_dma_unmap_sg_fndecl_21286 debug_dma_unmap_sg fndecl 3 21286 NULL
136482 +disable_so_of_do_get_timings_fndecl_21294 of_do_get_timings fndecl 0 21294 NULL
136483 +disable_so_mtrr_file_del_fndecl_21306 mtrr_file_del fndecl 1-2 21306 NULL
136484 +disable_so_set_timeout_watchdog_ops_21311 set_timeout watchdog_ops 2-0 21311 NULL
136485 +disable_so_ipv6_addr_prefix_fndecl_21318 ipv6_addr_prefix fndecl 3 21318 NULL
136486 +disable_so_ath6kl_disconnect_timeout_read_fndecl_21329 ath6kl_disconnect_timeout_read fndecl 3-0 21329 NULL
136487 +disable_so_tx_duty_cycle_cck_brcms_c_info_21336 tx_duty_cycle_cck brcms_c_info 0 21336 NULL
136488 +disable_so_pentium3_get_frequency_fndecl_21339 pentium3_get_frequency fndecl 0 21339 NULL
136489 +disable_so_ldr_img_ir_timing_regvals_21340 ldr img_ir_timing_regvals 0 21340 NULL
136490 +disable_so_extended_cpuid_level_cpuinfo_x86_21354 extended_cpuid_level cpuinfo_x86 0 21354 NULL
136491 +disable_so_btrfs_dev_replace_time_started_fndecl_21355 btrfs_dev_replace_time_started fndecl 0 21355 NULL
136492 +disable_so_sys_getrandom_fndecl_21357 sys_getrandom fndecl 3-0-2 21357 NULL
136493 +disable_so_bit_offset_bm_xfer_ctx_21370 bit_offset bm_xfer_ctx 0 21370 NULL
136494 +disable_so_dtime_inet_peer_21374 dtime inet_peer 0 21374 NULL
136495 +disable_so_ac_btime_acct_v3_21378 ac_btime acct_v3 0 21378 NULL nohasharray
136496 +disable_so_ccp_aes_cmac_final_fndecl_21378 ccp_aes_cmac_final fndecl 0 21378 &disable_so_ac_btime_acct_v3_21378
136497 +disable_so_clock_sdhci_host_21381 clock sdhci_host 0 21381 NULL
136498 +disable_so_check_delayed_ref_fndecl_21388 check_delayed_ref fndecl 0-4-5-6 21388 NULL
136499 +disable_so_ath_gen_timer_alloc_fndecl_21393 ath_gen_timer_alloc fndecl 5 21393 NULL
136500 +disable_so_irq_address_info_21405 irq address_info 0 21405 NULL
136501 +disable_so_mpll_ad_func_cntl_2_rv770_clock_registers_21412 mpll_ad_func_cntl_2 rv770_clock_registers 0 21412 NULL
136502 +disable_so_sctp_copy_one_addr_fndecl_21416 sctp_copy_one_addr fndecl 0-5 21416 NULL
136503 +disable_so_high_mcp_dma_addr_21433 high mcp_dma_addr 0 21433 NULL
136504 +disable_so_volt_change_delay_si_ulv_param_21442 volt_change_delay si_ulv_param 0 21442 NULL
136505 +disable_so_msr_bitmap_vmcs12_21445 msr_bitmap vmcs12 0 21445 NULL
136506 +disable_so_setauthsize_crypto_aead_21450 setauthsize crypto_aead 2 21450 NULL
136507 +disable_so_next_txpwr_check_time_b43_phy_21453 next_txpwr_check_time b43_phy 0 21453 NULL
136508 +disable_so_nl80211_send_assoc_timeout_fndecl_21464 nl80211_send_assoc_timeout fndecl 4 21464 NULL nohasharray
136509 +disable_so_i_no_addr_gfs2_inode_21464 i_no_addr gfs2_inode 0 21464 &disable_so_nl80211_send_assoc_timeout_fndecl_21464
136510 +disable_so_indirect_dma_addr_srp_request_21474 indirect_dma_addr srp_request 0 21474 NULL
136511 +disable_so_btrfs_uuid_iter_rem_fndecl_21476 btrfs_uuid_iter_rem fndecl 0-3-4 21476 NULL
136512 +disable_so_addr_op_msr_21481 addr op_msr 0 21481 NULL
136513 +disable_so_sysctl_x25_call_request_timeout_vardecl_21486 sysctl_x25_call_request_timeout vardecl 0 21486 NULL
136514 +disable_so_guard_time_trf7970a_21487 guard_time trf7970a 0 21487 NULL
136515 +disable_so_mclk_div_mcam_camera_21501 mclk_div mcam_camera 0 21501 NULL
136516 +disable_so_cpu_to_fs16_fndecl_21502 cpu_to_fs16 fndecl 0-2 21502 NULL
136517 +disable_so_dma_addr_dma_mapping_21503 dma_addr dma_mapping 0 21503 NULL
136518 +disable_so_extra_buf1_address_ene_device_21504 extra_buf1_address ene_device 0 21504 NULL
136519 +disable_so_last_completion_time_lpfc_hba_21515 last_completion_time lpfc_hba 0 21515 NULL
136520 +disable_so_il_add_beacon_time_fndecl_21519 il_add_beacon_time fndecl 0-4-3-2 21519 NULL
136521 +disable_so_stats_reset_time_bfa_port_s_21525 stats_reset_time bfa_port_s 0 21525 NULL
136522 +disable_so_rptr_gpu_addr_kernel_queue_21535 rptr_gpu_addr kernel_queue 0 21535 NULL nohasharray
136523 +disable_so_ceph_crypto_init_fndecl_21535 ceph_crypto_init fndecl 0 21535 &disable_so_rptr_gpu_addr_kernel_queue_21535
136524 +disable_so_out_of_line_wait_on_bit_lock_fndecl_21538 out_of_line_wait_on_bit_lock fndecl 0 21538 NULL
136525 +disable_so_demod_address_s5h1409_config_21550 demod_address s5h1409_config 0 21550 NULL
136526 +disable_so_bmsr_cphy_21556 bmsr cphy 0 21556 NULL
136527 +disable_so_small_buf_phy_addr_low_ql3_adapter_21561 small_buf_phy_addr_low ql3_adapter 0 21561 NULL
136528 +disable_so_bitmap_start_sync_fndecl_21564 bitmap_start_sync fndecl 2-4 21564 NULL
136529 +disable_so_last_frequency_mb86a20s_state_21569 last_frequency mb86a20s_state 0 21569 NULL
136530 +disable_so_addr_hi_st_ss_sgitem_21571 addr_hi st_ss_sgitem 0 21571 NULL
136531 +disable_so_last_dev_address_fndecl_21603 last_dev_address fndecl 0-1 21603 NULL
136532 +disable_so_account_user_time_fndecl_21611 account_user_time fndecl 2-3 21611 NULL
136533 +disable_so_mdiv_nvkm_domain_21612 mdiv nvkm_domain 0 21612 NULL
136534 +disable_so_mclk_div_wm8804_priv_21616 mclk_div wm8804_priv 0 21616 NULL
136535 +disable_so_dclk___fb_timings_21625 dclk __fb_timings 0 21625 NULL
136536 +disable_so_ts_jiffies_xpc_rsvd_page_21630 ts_jiffies xpc_rsvd_page 0 21630 NULL
136537 +disable_so_wlcore_translate_addr_fndecl_21631 wlcore_translate_addr fndecl 0-2 21631 NULL
136538 +disable_so_clock_mult_par_info_21633 clock_mult par_info 0 21633 NULL
136539 +disable_so_timeout_mgmt_cp_set_discoverable_21656 timeout mgmt_cp_set_discoverable 0 21656 NULL
136540 +disable_so_timeout_jiffies_jmb38x_ms_host_21666 timeout_jiffies jmb38x_ms_host 0 21666 NULL
136541 +disable_so_ax88179_set_mac_addr_fndecl_21668 ax88179_set_mac_addr fndecl 0 21668 NULL
136542 +disable_so_signalfd_copyinfo_fndecl_21691 signalfd_copyinfo fndecl 0 21691 NULL
136543 +disable_so_crypto_cbc_setkey_fndecl_21695 crypto_cbc_setkey fndecl 0-3 21695 NULL
136544 +disable_so_pm_freeze_timeout_show_fndecl_21696 pm_freeze_timeout_show fndecl 0 21696 NULL
136545 +disable_so_ip_clock_khz_ocores_i2c_21700 ip_clock_khz ocores_i2c 0 21700 NULL
136546 +disable_so_HDSPM_bit2freq_fndecl_21701 HDSPM_bit2freq fndecl 0 21701 NULL
136547 +disable_so_qdelay_old_pie_vars_21717 qdelay_old pie_vars 0 21717 NULL
136548 +disable_so_pixel_clock_max_soc_camera_sense_21728 pixel_clock_max soc_camera_sense 0 21728 NULL
136549 +disable_so_hash_max_net_bridge_21732 hash_max net_bridge 0 21732 NULL
136550 +disable_so_hashfn_fndecl_21739 hashfn fndecl 0 21739 NULL
136551 +disable_so_default_gfx_clock_sst_spec_21741 default_gfx_clock sst_spec 0 21741 NULL
136552 +disable_so_snd_seq_oss_timer_ioctl_fndecl_21751 snd_seq_oss_timer_ioctl fndecl 0 21751 NULL
136553 +disable_so_addr1_dir_table_slot_21753 addr1 dir_table_slot 0 21753 NULL
136554 +disable_so_ieee80211_extend_absent_time_fndecl_21756 ieee80211_extend_absent_time fndecl 2 21756 NULL
136555 +disable_so_sumo_set_ds_dividers_fndecl_21757 sumo_set_ds_dividers fndecl 2-3 21757 NULL
136556 +disable_so_fm_rx_set_freq_fndecl_21763 fm_rx_set_freq fndecl 0-2 21763 NULL
136557 +disable_so_end_phys_addr_qxl_memslot_21767 end_phys_addr qxl_memslot 0 21767 NULL
136558 +disable_so_phys_addr_megasas_sge64_21771 phys_addr megasas_sge64 0 21771 NULL
136559 +disable_so_evtchn_from_irq_fndecl_21772 evtchn_from_irq fndecl 1-0 21772 NULL
136560 +disable_so_addr_pch_gbe_phy_info_21776 addr pch_gbe_phy_info 0 21776 NULL
136561 +disable_so_jiffies_vid_out_vivid_dev_21777 jiffies_vid_out vivid_dev 0 21777 NULL
136562 +disable_so_slottime_ath_hw_21784 slottime ath_hw 0 21784 NULL
136563 +disable_so_ath6kl_wmi_set_host_sleep_mode_cmd_fndecl_21804 ath6kl_wmi_set_host_sleep_mode_cmd fndecl 0-2 21804 NULL
136564 +disable_so_iwl_dbgfs_current_sleep_command_read_fndecl_21810 iwl_dbgfs_current_sleep_command_read fndecl 3-0 21810 NULL
136565 +disable_so_ioctl_sound_timer_operations_21820 ioctl sound_timer_operations 0 21820 NULL
136566 +disable_so_i_atime_sysv_inode_21822 i_atime sysv_inode 0 21822 NULL
136567 +disable_so_rx_ring_dma_addr_amd8111e_priv_21826 rx_ring_dma_addr amd8111e_priv 0 21826 NULL
136568 +disable_so_hundredsOfMicroseconds_timestamp_21834 hundredsOfMicroseconds timestamp 0 21834 NULL
136569 +disable_so_ei_interrupt_fndecl_21846 ei_interrupt fndecl 1 21846 NULL
136570 +disable_so_address_wq_enet_desc_21854 address wq_enet_desc 0 21854 NULL
136571 +disable_so_avivo_get_fb_ref_div_fndecl_21857 avivo_get_fb_ref_div fndecl 3-5 21857 NULL
136572 +disable_so_ac_btime_taskstats_21864 ac_btime taskstats 0 21864 NULL
136573 +disable_so_reg_base_addr_dmar_drhd_unit_21865 reg_base_addr dmar_drhd_unit 0 21865 NULL
136574 +disable_so_svm_scale_tsc_fndecl_21868 svm_scale_tsc fndecl 0-2 21868 NULL
136575 +disable_so_m88rs6000t_sleep_fndecl_21874 m88rs6000t_sleep fndecl 0 21874 NULL
136576 +disable_so_bt_priority_time_ath_btcoex_21878 bt_priority_time ath_btcoex 0 21878 NULL
136577 +disable_so_radeon_legacy_get_memory_clock_fndecl_21881 radeon_legacy_get_memory_clock fndecl 0 21881 NULL
136578 +disable_so_drbg_cpu_to_be32_fndecl_21882 drbg_cpu_to_be32 fndecl 1 21882 NULL
136579 +disable_so_hpi_sample_clock_get_sample_rate_fndecl_21888 hpi_sample_clock_get_sample_rate fndecl 1-0 21888 NULL
136580 +disable_so_refdiv_radeon_atom_ss_21889 refdiv radeon_atom_ss 0 21889 NULL
136581 +disable_so_e_d_tov_timer_val_fcoe_kwqe_conn_offload4_21894 e_d_tov_timer_val fcoe_kwqe_conn_offload4 0 21894 NULL
136582 +disable_so_efx_ef10_rx_disable_timestamping_fndecl_21895 efx_ef10_rx_disable_timestamping fndecl 0 21895 NULL
136583 +disable_so_microseconds_timestamp_21897 microseconds timestamp 0 21897 NULL nohasharray
136584 +disable_so_hashbin_find_fndecl_21897 hashbin_find fndecl 2 21897 &disable_so_microseconds_timestamp_21897
136585 +disable_so_uid_audit_sig_info_21901 uid audit_sig_info 0 21901 NULL
136586 +disable_so_scb_busaddr_ips_scb_21906 scb_busaddr ips_scb 0 21906 NULL
136587 +disable_so_uvc_clock_param_get_fndecl_21908 uvc_clock_param_get fndecl 0 21908 NULL
136588 +disable_so_ali_program_timings_fndecl_21912 ali_program_timings fndecl 4 21912 NULL
136589 +disable_so_rx8025_get_time_fndecl_21924 rx8025_get_time fndecl 0 21924 NULL
136590 +disable_so_rx_addr_uart_8250_dma_21929 rx_addr uart_8250_dma 0 21929 NULL
136591 +disable_so_i2c_addr_sensor_s_21935 i2c_addr sensor_s 0 21935 NULL
136592 +disable_so_interrupt_m66592_21937 interrupt m66592 0 21937 NULL
136593 +disable_so_btintel_check_bdaddr_fndecl_21945 btintel_check_bdaddr fndecl 0 21945 NULL
136594 +disable_so_re_timeout_dummy_hcd_21947 re_timeout dummy_hcd 0 21947 NULL nohasharray
136595 +disable_so_mmc_runtime_suspend_fndecl_21947 mmc_runtime_suspend fndecl 0 21947 &disable_so_re_timeout_dummy_hcd_21947
136596 +disable_so_prb_resp_timeout_brcms_c_info_21953 prb_resp_timeout brcms_c_info 0 21953 NULL
136597 +disable_so_pcf8563_set_datetime_fndecl_21960 pcf8563_set_datetime fndecl 0 21960 NULL nohasharray
136598 +disable_so_addr_low_vring_dma_addr_21960 addr_low vring_dma_addr 0 21960 &disable_so_pcf8563_set_datetime_fndecl_21960
136599 +disable_so_key_schedule_gc_fndecl_21977 key_schedule_gc fndecl 1 21977 NULL
136600 +disable_so_max_freq_softlimit_intel_gen6_power_mgmt_21980 max_freq_softlimit intel_gen6_power_mgmt 0 21980 NULL
136601 +disable_so_sctp_v6_inaddr_any_fndecl_21991 sctp_v6_inaddr_any fndecl 2 21991 NULL
136602 +disable_so_bitmap_get_counter_fndecl_22004 bitmap_get_counter fndecl 2 22004 NULL
136603 +disable_so_id_cpufreq_cooling_device_22010 id cpufreq_cooling_device 0 22010 NULL
136604 +disable_so_efx_phc_adjfreq_fndecl_22013 efx_phc_adjfreq fndecl 0 22013 NULL
136605 +disable_so_i9xx_clock_fndecl_22015 i9xx_clock fndecl 1 22015 NULL
136606 +disable_so_backlight_off_delay_intel_dp_22022 backlight_off_delay intel_dp 0 22022 NULL
136607 +disable_so_adjust_tsc_offset_host_fndecl_22031 adjust_tsc_offset_host fndecl 2 22031 NULL
136608 +disable_so_ocfs2_inode_lock_atime_fndecl_22032 ocfs2_inode_lock_atime fndecl 0 22032 NULL
136609 +disable_so_last_timeout_jiffies_smi_info_22035 last_timeout_jiffies smi_info 0 22035 NULL
136610 +disable_so_dnet_addr_type_fndecl_22038 dnet_addr_type fndecl 1 22038 NULL
136611 +disable_so_qce_ablkcipher_crypt_fndecl_22054 qce_ablkcipher_crypt fndecl 0 22054 NULL
136612 +disable_so_move_addr_to_user_fndecl_22055 move_addr_to_user fndecl 2-0 22055 NULL
136613 +disable_so_qce_cpu_to_be32p_array_fndecl_22057 qce_cpu_to_be32p_array fndecl 3 22057 NULL
136614 +disable_so_rsp_kvm_regs_22061 rsp kvm_regs 0 22061 NULL
136615 +disable_so_sst_hsw_runtime_module_create_fndecl_22070 sst_hsw_runtime_module_create fndecl 3-2 22070 NULL
136616 +disable_so_paddr_ctlr_info_22072 paddr ctlr_info 0 22072 NULL
136617 +disable_so_net2272_get_ep_by_addr_fndecl_22073 net2272_get_ep_by_addr fndecl 2 22073 NULL
136618 +disable_so_nilfs_btree_node_get_ptr_fndecl_22076 nilfs_btree_node_get_ptr fndecl 0-2 22076 NULL
136619 +disable_so_signal_avg_station_info_22078 signal_avg station_info 0 22078 NULL
136620 +disable_so_hdmi_runtime_resume_fndecl_22080 hdmi_runtime_resume fndecl 0 22080 NULL
136621 +disable_so_nla_padlen_fndecl_22096 nla_padlen fndecl 1-0 22096 NULL
136622 +disable_so_sof_offset_uvc_clock_22104 sof_offset uvc_clock 0 22104 NULL
136623 +disable_so_current_frequency_au8522_state_22105 current_frequency au8522_state 0 22105 NULL
136624 +disable_so_vdelay_timing_22106 vdelay timing 0 22106 NULL
136625 +disable_so_abx500_get_register_page_interruptible_fndecl_22107 abx500_get_register_page_interruptible fndecl 0 22107 NULL
136626 +disable_so_xc_set_IF_frequency_fndecl_22111 xc_set_IF_frequency fndecl 0-2 22111 NULL
136627 +disable_so_curr_minor_hash_dir_private_info_22113 curr_minor_hash dir_private_info 0 22113 NULL
136628 +disable_so_ipg_find_phyaddr_fndecl_22117 ipg_find_phyaddr fndecl 0 22117 NULL
136629 +disable_so_dwell_time_passive_conf_sched_scan_settings_22127 dwell_time_passive conf_sched_scan_settings 0 22127 NULL
136630 +disable_so_ontime_snd_emux_voice_22136 ontime snd_emux_voice 0 22136 NULL
136631 +disable_so_queue_info_new_phys_addr_hi_megasas_init_frame_22147 queue_info_new_phys_addr_hi megasas_init_frame 0 22147 NULL
136632 +disable_so_demod_address_tda10048_config_22153 demod_address tda10048_config 0 22153 NULL
136633 +disable_so_timestamp_data_baddr_pmcraid_instance_22154 timestamp_data_baddr pmcraid_instance 0 22154 NULL
136634 +disable_so_qce_setup_regs_ablkcipher_fndecl_22163 qce_setup_regs_ablkcipher fndecl 0-2 22163 NULL
136635 +disable_so_cpu_index_cpuinfo_x86_22166 cpu_index cpuinfo_x86 0 22166 NULL nohasharray
136636 +disable_so_cache_timeout_vardecl_sm_ftl_c_22166 cache_timeout vardecl_sm_ftl.c 0 22166 &disable_so_cpu_index_cpuinfo_x86_22166
136637 +disable_so_ls_scan_time_dlm_ls_22170 ls_scan_time dlm_ls 0 22170 NULL
136638 +disable_so_overflowgid_vardecl_22177 overflowgid vardecl 0 22177 NULL
136639 +disable_so_timeout_uart_port_22187 timeout uart_port 0 22187 NULL
136640 +disable_so_ctime_nilfs_segsum_info_22193 ctime nilfs_segsum_info 0 22193 NULL
136641 +disable_so___cpu_to_virtio32_fndecl_22198 __cpu_to_virtio32 fndecl 0-2 22198 NULL
136642 +disable_so___page_check_address_fndecl_22199 __page_check_address fndecl 3 22199 NULL
136643 +disable_so_frequency_khz_m88rs6000t_dev_22206 frequency_khz m88rs6000t_dev 0 22206 NULL
136644 +disable_so_fm10k_update_mc_addr_vf_fndecl_22212 fm10k_update_mc_addr_vf fndecl 4 22212 NULL
136645 +disable_so_xfs_daddr_to_agno_fndecl_22214 xfs_daddr_to_agno fndecl 0-2 22214 NULL
136646 +disable_so_addr_radeon_bo_va_22216 addr radeon_bo_va 0 22216 NULL
136647 +disable_so_iwl_dbgfs_sleep_level_override_read_fndecl_22221 iwl_dbgfs_sleep_level_override_read fndecl 3-0 22221 NULL
136648 +disable_so_write_seq_cxgbi_sock_22223 write_seq cxgbi_sock 0 22223 NULL
136649 +disable_so_jiffies_init_s_stats_22227 jiffies_init s_stats 0 22227 NULL
136650 +disable_so_addr_1_qla83xx_minidump_entry_pollrdmwr_22235 addr_1 qla83xx_minidump_entry_pollrdmwr 0 22235 NULL
136651 +disable_so_boomerang_interrupt_fndecl_22238 boomerang_interrupt fndecl 1 22238 NULL
136652 +disable_so_start_addr_prism2_download_data_22240 start_addr prism2_download_data 0 22240 NULL
136653 +disable_so_addr_fixed_phy_22243 addr fixed_phy 0 22243 NULL
136654 +disable_so_parenttime_ictimesync_data_22250 parenttime ictimesync_data 0 22250 NULL
136655 +disable_so_tidvaddr_ipath_tid_info_22251 tidvaddr ipath_tid_info 0 22251 NULL
136656 +disable_so_ip_vs_sh_hashkey_fndecl_22252 ip_vs_sh_hashkey fndecl 1 22252 NULL
136657 +disable_so_m41t94_set_time_fndecl_22256 m41t94_set_time fndecl 0 22256 NULL
136658 +disable_so___bitmap_and_fndecl_22259 __bitmap_and fndecl 4 22259 NULL
136659 +disable_so_read_addr_qla82xx_md_entry_rdrom_22262 read_addr qla82xx_md_entry_rdrom 0 22262 NULL
136660 +disable_so_crypto_authenc_esn_iverify_fndecl_22263 crypto_authenc_esn_iverify fndecl 0-3 22263 NULL
136661 +disable_so_udelay_ixgbe_mbx_info_22275 udelay ixgbe_mbx_info 0 22275 NULL
136662 +disable_so_addr_init_tab_22277 addr init_tab 0 22277 NULL nohasharray
136663 +disable_so_cpufreq_cpu_get_raw_fndecl_22277 cpufreq_cpu_get_raw fndecl 1 22277 &disable_so_addr_init_tab_22277
136664 +disable_so_show_orig_dgid_fndecl_22281 show_orig_dgid fndecl 0 22281 NULL
136665 +disable_so_tua6100_sleep_fndecl_22289 tua6100_sleep fndecl 0 22289 NULL
136666 +disable_so_crypto_memneq_fndecl_22293 crypto_memneq fndecl 3 22293 NULL
136667 +disable_so_next_gid_index_mthca_mgm_22295 next_gid_index mthca_mgm 0 22295 NULL
136668 +disable_so__abb5zes3_rtc_read_time_fndecl_22302 _abb5zes3_rtc_read_time fndecl 0 22302 NULL nohasharray
136669 +disable_so_free_block_xfs_btree_ops_22302 free_block xfs_btree_ops 0 22302 &disable_so__abb5zes3_rtc_read_time_fndecl_22302
136670 +disable_so_cn_vprintf_fndecl_22303 cn_vprintf fndecl 0 22303 NULL nohasharray
136671 +disable_so_ixgbe_read_reg_fndecl_22303 ixgbe_read_reg fndecl 0-2 22303 &disable_so_cn_vprintf_fndecl_22303
136672 +disable_so_utime_mddev_22314 utime mddev 0 22314 NULL
136673 +disable_so_set_node_addr_fndecl_22329 set_node_addr fndecl 3 22329 NULL
136674 +disable_so_start_group_wait_time_cfqg_stats_22330 start_group_wait_time cfqg_stats 0 22330 NULL
136675 +disable_so_addrLow_ulp_bde64_22341 addrLow ulp_bde64 0 22341 NULL
136676 +disable_so_mr_get_mtt_addr_fndecl_22342 mr_get_mtt_addr fndecl 0 22342 NULL
136677 +disable_so_auto_deep_sleep_timeout_lbs_private_22358 auto_deep_sleep_timeout lbs_private 0 22358 NULL
136678 +disable_so_daddr_min_pktgen_dev_22362 daddr_min pktgen_dev 0 22362 NULL
136679 +disable_so_tusb_set_clock_source_fndecl_22365 tusb_set_clock_source fndecl 2 22365 NULL
136680 +disable_so_ocfs2_rotate_subtree_right_fndecl_22369 ocfs2_rotate_subtree_right fndecl 0-5 22369 NULL
136681 +disable_so_timestamp_nfs4_unlockdata_22375 timestamp nfs4_unlockdata 0 22375 NULL
136682 +disable_so_time_perf_event_context_22379 time perf_event_context 0 22379 NULL
136683 +disable_so_max8998_set_voltage_buck_time_sel_fndecl_22384 max8998_set_voltage_buck_time_sel fndecl 0-2-3 22384 NULL
136684 +disable_so_to_increment_rpc_timeout_22408 to_increment rpc_timeout 0 22408 NULL
136685 +disable_so_pci_addr_islpci_membuf_22412 pci_addr islpci_membuf 0 22412 NULL
136686 +disable_so_gf_div_fndecl_22416 gf_div fndecl 0-2-3 22416 NULL
136687 +disable_so_timeout_us_drm_vmw_fence_wait_arg_22421 timeout_us drm_vmw_fence_wait_arg 0 22421 NULL
136688 +disable_so_sd_ctime_stat_data_22425 sd_ctime stat_data 0 22425 NULL nohasharray
136689 +disable_so_runtime_reg_sch311x_gpio_block_22425 runtime_reg sch311x_gpio_block 0 22425 &disable_so_sd_ctime_stat_data_22425 nohasharray
136690 +disable_so_crypto_authenc_iverify_fndecl_22425 crypto_authenc_iverify fndecl 0-3 22425 &disable_so_runtime_reg_sch311x_gpio_block_22425
136691 +disable_so_port_guid_ib_node_info_22427 port_guid ib_node_info 0 22427 NULL
136692 +disable_so_ring_iowrite32options_fndecl_22428 ring_iowrite32options fndecl 2 22428 NULL
136693 +disable_so_period_ptr_snd_pcm_oss_runtime_22430 period_ptr snd_pcm_oss_runtime 0 22430 NULL
136694 +disable_so_ac_stimescaled_taskstats_22436 ac_stimescaled taskstats 0 22436 NULL
136695 +disable_so_slave_address_acpi_resource_i2c_serialbus_22453 slave_address acpi_resource_i2c_serialbus 0 22453 NULL
136696 +disable_so_dma_addr1_flexcop_dma_22481 dma_addr1 flexcop_dma 0 22481 NULL
136697 +disable_so_r11_kvm_regs_22488 r11 kvm_regs 0 22488 NULL
136698 +disable_so_lookup_overlapping_address_handler_fndecl_22494 lookup_overlapping_address_handler fndecl 2-3 22494 NULL
136699 +disable_so_throttled_clock_task_cfs_rq_22505 throttled_clock_task cfs_rq 0 22505 NULL
136700 +disable_so_bulletin_addr_vfpf_acquire_tlv_22506 bulletin_addr vfpf_acquire_tlv 0 22506 NULL
136701 +disable_so_buffer_bytes_snd_pcm_oss_runtime_22509 buffer_bytes snd_pcm_oss_runtime 0 22509 NULL
136702 +disable_so_cryptd_hash_enqueue_fndecl_22511 cryptd_hash_enqueue fndecl 0 22511 NULL
136703 +disable_so_set_msr_hyperv_pw_fndecl_22514 set_msr_hyperv_pw fndecl 3 22514 NULL
136704 +disable_so_am335x_tsc_se_set_cache_fndecl_22522 am335x_tsc_se_set_cache fndecl 2 22522 NULL
136705 +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
136706 +disable_so_stride_qxl_bitmap_22527 stride qxl_bitmap 0 22527 NULL
136707 +disable_so_enable_time_regulator_ops_22541 enable_time regulator_ops 0 22541 NULL
136708 +disable_so_usb_port_runtime_resume_fndecl_22542 usb_port_runtime_resume fndecl 0 22542 NULL
136709 +disable_so_i_time_minix_inode_22559 i_time minix_inode 0 22559 NULL
136710 +disable_so_rpc_uaddr2sockaddr_fndecl_22573 rpc_uaddr2sockaddr fndecl 0-3 22573 NULL
136711 +disable_so_runtime_show_fndecl_22581 runtime_show fndecl 0 22581 NULL
136712 +disable_so__sched_setscheduler_fndecl_22589 _sched_setscheduler fndecl 0-2 22589 NULL
136713 +disable_so_ahc_outb_fndecl_22592 ahc_outb fndecl 2-3 22592 NULL
136714 +disable_so_tcp_fin_timeout_ip_vs_timeout_user_22596 tcp_fin_timeout ip_vs_timeout_user 0 22596 NULL
136715 +disable_so_channels_snd_pcm_oss_runtime_22629 channels snd_pcm_oss_runtime 0 22629 NULL
136716 +disable_so_ivsize_blkcipher_walk_22638 ivsize blkcipher_walk 0 22638 NULL
136717 +disable_so_xpcs_reg_addr_read_fndecl_22646 xpcs_reg_addr_read fndecl 3-0 22646 NULL
136718 +disable_so_ea_segmented_address_22657 ea segmented_address 0 22657 NULL
136719 +disable_so_rxhash_bnx2x_agg_info_22658 rxhash bnx2x_agg_info 0 22658 NULL
136720 +disable_so_get_timer_interval_fndecl_22661 get_timer_interval fndecl 0-2 22661 NULL
136721 +disable_so_clock_psb_intel_sdvo_preferred_input_timing_args_22671 clock psb_intel_sdvo_preferred_input_timing_args 0 22671 NULL
136722 +disable_so_nft_hash_obj_fndecl_22673 nft_hash_obj fndecl 0-2 22673 NULL
136723 +disable_so_ber_jiffies_stats_dib8000_state_22674 ber_jiffies_stats dib8000_state 0 22674 NULL
136724 +disable_so_sleep_ms_rtl_ps_ctl_22681 sleep_ms rtl_ps_ctl 0 22681 NULL
136725 +disable_so_addr_hi_eth_tx_start_bd_22685 addr_hi eth_tx_start_bd 0 22685 NULL
136726 +disable_so_lasttime_sym_shcb_22688 lasttime sym_shcb 0 22688 NULL
136727 +disable_so_cttimeout_init_fndecl_22691 cttimeout_init fndecl 0 22691 NULL
136728 +disable_so_crypto_authenc_encrypt_fndecl_22693 crypto_authenc_encrypt fndecl 0 22693 NULL
136729 +disable_so_kernfs_name_hash_fndecl_22704 kernfs_name_hash fndecl 0 22704 NULL
136730 +disable_so_msleep_interruptible_fndecl_22713 msleep_interruptible fndecl 1-0 22713 NULL
136731 +disable_so_compq_addr_lo_addr_ctrl_blk_22728 compq_addr_lo addr_ctrl_blk 0 22728 NULL
136732 +disable_so_dib7000p_get_time_us_fndecl_22737 dib7000p_get_time_us fndecl 0 22737 NULL
136733 +disable_so_src_addr_dma_slave_config_22748 src_addr dma_slave_config 0 22748 NULL
136734 +disable_so_userspace_addr_kvm_memory_slot_22749 userspace_addr kvm_memory_slot 0 22749 NULL
136735 +disable_so_addr6_resolve_fndecl_22753 addr6_resolve fndecl 0 22753 NULL
136736 +disable_so_sst_pm_runtime_put_fndecl_22759 sst_pm_runtime_put fndecl 0 22759 NULL
136737 +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
136738 +disable_so_d_time_dentry_22767 d_time dentry 0 22767 NULL
136739 +disable_so_mtd_to_docg4_address_fndecl_22769 mtd_to_docg4_address fndecl 0-1-2 22769 NULL
136740 +disable_so_cycle_counter_tag_capidtmf_recv_state_22771 cycle_counter tag_capidtmf_recv_state 0 22771 NULL
136741 +disable_so_lp872x_select_buck_vout_addr_fndecl_22790 lp872x_select_buck_vout_addr fndecl 0-2 22790 NULL
136742 +disable_so_base_mbox_addr_blogic_extmbox_req_22802 base_mbox_addr blogic_extmbox_req 0 22802 NULL nohasharray
136743 +disable_so_no_addr_gfs2_inum_22802 no_addr gfs2_inum 0 22802 &disable_so_base_mbox_addr_blogic_extmbox_req_22802
136744 +disable_so_debug_dma_map_sg_fndecl_22804 debug_dma_map_sg fndecl 3-4 22804 NULL
136745 +disable_so___cpuidle_register_driver_fndecl_22806 __cpuidle_register_driver fndecl 0 22806 NULL
136746 +disable_so_vhost64_to_cpu_fndecl_22807 vhost64_to_cpu fndecl 0 22807 NULL
136747 +disable_so_start_address_acpi_address_range_22816 start_address acpi_address_range 0 22816 NULL
136748 +disable_so_mce_request_packet_fndecl_22818 mce_request_packet fndecl 3 22818 NULL
136749 +disable_so_bad_std_timing_fndecl_22827 bad_std_timing fndecl 1 22827 NULL
136750 +disable_so_swap_cluster_schedule_discard_fndecl_22833 swap_cluster_schedule_discard fndecl 2 22833 NULL
136751 +disable_so_palmas_rtc_set_time_fndecl_22849 palmas_rtc_set_time fndecl 0 22849 NULL
136752 +disable_so___arch_hweight8_fndecl_22850 __arch_hweight8 fndecl 0-1 22850 NULL
136753 +disable_so_store_risefalltime_fndecl_22854 store_risefalltime fndecl 5-0-4 22854 NULL
136754 +disable_so_qlcnic_83xx_get_mac_address_fndecl_22858 qlcnic_83xx_get_mac_address fndecl 0 22858 NULL
136755 +disable_so_vnic_dev_get_mac_addr_fndecl_22860 vnic_dev_get_mac_addr fndecl 0 22860 NULL
136756 +disable_so_hash_id_hh_flow_state_22864 hash_id hh_flow_state 0 22864 NULL
136757 +disable_so_runtime_suspend_dev_pm_ops_22871 runtime_suspend dev_pm_ops 0 22871 NULL nohasharray
136758 +disable_so_objectid_btrfs_key_22871 objectid btrfs_key 0 22871 &disable_so_runtime_suspend_dev_pm_ops_22871
136759 +disable_so_bitmap_parse_fndecl_22876 bitmap_parse fndecl 0-2-4 22876 NULL
136760 +disable_so_avg_delay_fndecl_22883 avg_delay fndecl 0 22883 NULL nohasharray
136761 +disable_so_mce_threshold_block_init_fndecl_22883 mce_threshold_block_init fndecl 2 22883 &disable_so_avg_delay_fndecl_22883
136762 +disable_so_pdeath_signal_task_struct_22884 pdeath_signal task_struct 0 22884 NULL
136763 +disable_so_bits_per_word_blk_mq_bitmap_tags_22896 bits_per_word blk_mq_bitmap_tags 0 22896 NULL
136764 +disable_so_saddr_irda_device_info_22915 saddr irda_device_info 0 22915 NULL
136765 +disable_so_frm_extra_delay_vardecl_isar_c_22927 frm_extra_delay vardecl_isar.c 0 22927 NULL
136766 +disable_so_lbs_set_host_sleep_fndecl_22932 lbs_set_host_sleep fndecl 0 22932 NULL
136767 +disable_so_orinoco_ioctl_setfreq_fndecl_22934 orinoco_ioctl_setfreq fndecl 0 22934 NULL
136768 +disable_so_bit_bitstream_cursor_22959 bit bitstream_cursor 0 22959 NULL
136769 +disable_so_cifs_strtoUTF16_fndecl_22967 cifs_strtoUTF16 fndecl 0-3 22967 NULL
136770 +disable_so_rbx_kvm_regs_22975 rbx kvm_regs 0 22975 NULL
136771 +disable_so_runtime_resume_dev_pm_ops_22976 runtime_resume dev_pm_ops 0 22976 NULL
136772 +disable_so_address_ioaccel2_sg_element_22986 address ioaccel2_sg_element 0 22986 NULL
136773 +disable_so_frags_paddr_htt_data_tx_desc_22993 frags_paddr htt_data_tx_desc 0 22993 NULL
136774 +disable_so_ss_ctime_nilfs_sustat_23015 ss_ctime nilfs_sustat 0 23015 NULL
136775 +disable_so_radeon_atom_set_ac_timing_fndecl_23020 radeon_atom_set_ac_timing fndecl 2 23020 NULL
136776 +disable_so_b43legacy_interrupt_ack_fndecl_23025 b43legacy_interrupt_ack fndecl 2 23025 NULL
136777 +disable_so_i_atime_nsec_f2fs_inode_23028 i_atime_nsec f2fs_inode 0 23028 NULL
136778 +disable_so_addr_wil_fw_record_fill_23039 addr wil_fw_record_fill 0 23039 NULL
136779 +disable_so_cyc2ns_offset_cyc2ns_data_23042 cyc2ns_offset cyc2ns_data 0 23042 NULL
136780 +disable_so_panel_power_cycle_delay_cdv_intel_dp_23045 panel_power_cycle_delay cdv_intel_dp 0 23045 NULL
136781 +disable_so_crypto_rfc4543_copy_src_to_dst_fndecl_23047 crypto_rfc4543_copy_src_to_dst fndecl 0 23047 NULL
136782 +disable_so_pte_pfn_to_mfn_fndecl_23066 pte_pfn_to_mfn fndecl 1-0 23066 NULL
136783 +disable_so_hpll_freq_drm_i915_private_23074 hpll_freq drm_i915_private 0 23074 NULL
136784 +disable_so_ly_base_addr_c67x00_td_23082 ly_base_addr c67x00_td 0 23082 NULL
136785 +disable_so_num_bits_alps_bitmap_point_23084 num_bits alps_bitmap_point 0 23084 NULL
136786 +disable_so_ip6addrlbl_dump_fndecl_23085 ip6addrlbl_dump fndecl 0 23085 NULL
136787 +disable_so_sc_seg_ctime_nilfs_sc_info_23088 sc_seg_ctime nilfs_sc_info 0 23088 NULL
136788 +disable_so_rxbd_addr_lo_host_cmd_ds_pcie_details_23092 rxbd_addr_lo host_cmd_ds_pcie_details 0 23092 NULL
136789 +disable_so_addrconf_init_fndecl_23107 addrconf_init fndecl 0 23107 NULL
136790 +disable_so_regcache_lzo_read_fndecl_23109 regcache_lzo_read fndecl 0-2 23109 NULL
136791 +disable_so_mac_addr_high_nes_adapter_23110 mac_addr_high nes_adapter 0 23110 NULL nohasharray
136792 +disable_so_gf100_fifo_engidx_fndecl_23110 gf100_fifo_engidx fndecl 0 23110 &disable_so_mac_addr_high_nes_adapter_23110
136793 +disable_so_busy_timeout_mmc_command_23112 busy_timeout mmc_command 0 23112 NULL
136794 +disable_so_expired_tscdeadline_kvm_timer_23113 expired_tscdeadline kvm_timer 0 23113 NULL nohasharray
136795 +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
136796 +disable_so_mmc_mmc_erase_timeout_fndecl_23122 mmc_mmc_erase_timeout fndecl 0-3-2 23122 NULL
136797 +disable_so_bq32k_rtc_read_time_fndecl_23124 bq32k_rtc_read_time fndecl 0 23124 NULL
136798 +disable_so_mtt_base_addr_h_mlx4_eq_context_23127 mtt_base_addr_h mlx4_eq_context 0 23127 NULL
136799 +disable_so_sack_timeout_netns_sctp_23134 sack_timeout netns_sctp 0 23134 NULL
136800 +disable_so_addr_hw_breakpoint_23137 addr hw_breakpoint 0 23137 NULL
136801 +disable_so_port_sctp_bind_addr_23142 port sctp_bind_addr 0 23142 NULL
136802 +disable_so_rpa_timeout_set_fndecl_23145 rpa_timeout_set fndecl 2 23145 NULL nohasharray
136803 +disable_so_mthca_SW2HW_MPT_fndecl_23145 mthca_SW2HW_MPT fndecl 0-3 23145 &disable_so_rpa_timeout_set_fndecl_23145 nohasharray
136804 +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
136805 +disable_so_eof_gid_xfs_fs_eofblocks_23146 eof_gid xfs_fs_eofblocks 0 23146 NULL
136806 +disable_so_ccp_aes_decrypt_fndecl_23149 ccp_aes_decrypt fndecl 0 23149 NULL
136807 +disable_so_idle_timeout_hci_dev_23160 idle_timeout hci_dev 0 23160 NULL
136808 +disable_so_radeon_atom_set_memory_clock_fndecl_23164 radeon_atom_set_memory_clock fndecl 2 23164 NULL
136809 +disable_so_k_pll_div_23168 k pll_div 0 23168 NULL
136810 +disable_so_ebitmap_node_clr_bit_fndecl_23171 ebitmap_node_clr_bit fndecl 2 23171 NULL
136811 +disable_so_rt_runtime_rt_schedulable_data_23172 rt_runtime rt_schedulable_data 0 23172 NULL
136812 +disable_so_reply_dma_min_address_MPT2SAS_ADAPTER_23181 reply_dma_min_address MPT2SAS_ADAPTER 0 23181 NULL
136813 +disable_so_tsc_shift_pvclock_vcpu_time_info_23184 tsc_shift pvclock_vcpu_time_info 0 23184 NULL
136814 +disable_so_vlan_dev_set_mac_address_fndecl_23188 vlan_dev_set_mac_address fndecl 0 23188 NULL
136815 +disable_so_mpll_ss1_ci_clock_registers_23197 mpll_ss1 ci_clock_registers 0 23197 NULL
136816 +disable_so_addr_cmd_complete_fndecl_23200 addr_cmd_complete fndecl 0 23200 NULL
136817 +disable_so_cpu_clock_fndecl_23205 cpu_clock fndecl 1-0 23205 NULL
136818 +disable_so_prescale_pll_div_23215 prescale pll_div 0 23215 NULL
136819 +disable_so_sel_addr2___mux2_23216 sel_addr2 __mux2 0 23216 NULL
136820 +disable_so_usb_sleep_charge_store_fndecl_23232 usb_sleep_charge_store fndecl 0-4 23232 NULL
136821 +disable_so_bmc150_accel_set_interrupt_fndecl_23235 bmc150_accel_set_interrupt fndecl 0 23235 NULL
136822 +disable_so_netlbl_af4list_audit_addr_fndecl_23240 netlbl_af4list_audit_addr fndecl 4-5 23240 NULL
136823 +disable_so_max_freq_intel_gen6_power_mgmt_23243 max_freq intel_gen6_power_mgmt 0 23243 NULL
136824 +disable_so_i_ctime_ext4_inode_23246 i_ctime ext4_inode 0 23246 NULL
136825 +disable_so_sel_read_avc_hash_stats_fndecl_23251 sel_read_avc_hash_stats fndecl 0-3 23251 NULL
136826 +disable_so_wlc_phy_get_chan_freq_range_nphy_fndecl_23253 wlc_phy_get_chan_freq_range_nphy fndecl 2 23253 NULL
136827 +disable_so_trinity_convert_did_to_freq_fndecl_23254 trinity_convert_did_to_freq fndecl 0-2 23254 NULL
136828 +disable_so_nopin_timeout_iscsi_node_attrib_23262 nopin_timeout iscsi_node_attrib 0 23262 NULL
136829 +disable_so_blk_rq_timeout_fndecl_23263 blk_rq_timeout fndecl 0-1 23263 NULL
136830 +disable_so_dmfe_interrupt_fndecl_23265 dmfe_interrupt fndecl 1 23265 NULL
136831 +disable_so_crypto_rng_generate_fndecl_23266 crypto_rng_generate fndecl 0-5 23266 NULL
136832 +disable_so_ebitmap_read_fndecl_23268 ebitmap_read fndecl 0 23268 NULL
136833 +disable_so_loops_per_jiffy_cpuinfo_x86_23277 loops_per_jiffy cpuinfo_x86 0 23277 NULL
136834 +disable_so_T7_address_mxt_data_23282 T7_address mxt_data 0 23282 NULL
136835 +disable_so_turn_around_timeout_mipi_config_23283 turn_around_timeout mipi_config 0 23283 NULL
136836 +disable_so_crypto_report_one_fndecl_23300 crypto_report_one fndecl 0 23300 NULL
136837 +disable_so_io_base_addr_pch_spi_data_23302 io_base_addr pch_spi_data 0 23302 NULL
136838 +disable_so___ww_mutex_lock_interruptible_fndecl_23308 __ww_mutex_lock_interruptible fndecl 0 23308 NULL
136839 +disable_so_get_bitmap_file_fndecl_23317 get_bitmap_file fndecl 0 23317 NULL
136840 +disable_so_address_hi_lpfc_rqe_23318 address_hi lpfc_rqe 0 23318 NULL
136841 +disable_so_iscsit_na_nopin_response_timeout_fndecl_23323 iscsit_na_nopin_response_timeout fndecl 2-0 23323 NULL
136842 +disable_so_omap1_spi100k_runtime_resume_fndecl_23325 omap1_spi100k_runtime_resume fndecl 0 23325 NULL
136843 +disable_so_snd_timer_global_register_fndecl_23326 snd_timer_global_register fndecl 0 23326 NULL
136844 +disable_so_to_initval_rpc_timeout_23329 to_initval rpc_timeout 0 23329 NULL
136845 +disable_so_bd_list_addr_hi_bnx2i_text_request_23342 bd_list_addr_hi bnx2i_text_request 0 23342 NULL
136846 +disable_so_i2c_addr_a8293_config_23348 i2c_addr a8293_config 0 23348 NULL
136847 +disable_so_range_sizek_var_mtrr_state_23353 range_sizek var_mtrr_state 0 23353 NULL
136848 +disable_so_total_time_running_perf_event_23362 total_time_running perf_event 0 23362 NULL
136849 +disable_so_vdi_gid_vxfs_inode_info_23369 vdi_gid vxfs_inode_info 0 23369 NULL
136850 +disable_so_attrtimeo_timestamp_nfs_inode_23391 attrtimeo_timestamp nfs_inode 0 23391 NULL
136851 +disable_so_si476x_core_cmd_fm_tune_freq_a10_fndecl_23406 si476x_core_cmd_fm_tune_freq_a10 fndecl 0 23406 NULL
136852 +disable_so_sensor_addr_sd_23409 sensor_addr sd 0 23409 NULL
136853 +disable_so_run_delayed_extent_op_fndecl_23414 run_delayed_extent_op fndecl 0 23414 NULL
136854 +disable_so_PXDaddress_fndecl_23420 PXDaddress fndecl 2 23420 NULL
136855 +disable_so_timeout_addr_req_23421 timeout addr_req 0 23421 NULL
136856 +disable_so_tx_pwr_last_recalc_freq_b43_phy_n_23433 tx_pwr_last_recalc_freq b43_phy_n 0 23433 NULL
136857 +disable_so_iscsit_na_nopin_timeout_fndecl_23436 iscsit_na_nopin_timeout fndecl 2-0 23436 NULL
136858 +disable_so_set_tsc_khz_kvm_x86_ops_23439 set_tsc_khz kvm_x86_ops 2 23439 NULL
136859 +disable_so_eee_timer_vardecl_stmmac_main_c_23447 eee_timer vardecl_stmmac_main.c 0 23447 NULL
136860 +disable_so_ndac_aic31xx_rate_divs_23456 ndac aic31xx_rate_divs 0 23456 NULL nohasharray
136861 +disable_so_r27_val_fc2580_freq_regs_23456 r27_val fc2580_freq_regs 0 23456 &disable_so_ndac_aic31xx_rate_divs_23456
136862 +disable_so_ports_timeout_uhci_hcd_23457 ports_timeout uhci_hcd 0 23457 NULL
136863 +disable_so_fw_load_addr_cas_23459 fw_load_addr cas 0 23459 NULL
136864 +disable_so_enic_dev_add_addr_fndecl_23465 enic_dev_add_addr fndecl 0 23465 NULL
136865 +disable_so_hpet_num_timers_vardecl_hpet_c_23468 hpet_num_timers vardecl_hpet.c 0 23468 NULL
136866 +disable_so_protocol_tomoyo_addr_info_23473 protocol tomoyo_addr_info 0 23473 NULL
136867 +disable_so_sys_clock_settime_fndecl_23475 sys_clock_settime fndecl 1 23475 NULL
136868 +disable_so_pch_uart_hal_enable_interrupt_fndecl_23482 pch_uart_hal_enable_interrupt fndecl 2 23482 NULL
136869 +disable_so_start_addr_snd_emu10k1_pcm_23487 start_addr snd_emu10k1_pcm 0 23487 NULL
136870 +disable_so___bitmap_xor_fndecl_23490 __bitmap_xor fndecl 4 23490 NULL
136871 +disable_so_dst_addr_beiscsi_endpoint_23495 dst_addr beiscsi_endpoint 0 23495 NULL
136872 +disable_so_mask_hi_mtrr_var_range_23508 mask_hi mtrr_var_range 0 23508 NULL
136873 +disable_so_max_mlx4_bitmap_23521 max mlx4_bitmap 0 23521 NULL
136874 +disable_so_bitmap_ip_do_list_fndecl_23527 bitmap_ip_do_list fndecl 0 23527 NULL
136875 +disable_so_radio_freq_tuner_23529 radio_freq tuner 0 23529 NULL
136876 +disable_so_timeout_idletimer_tg_info_23534 timeout idletimer_tg_info 0 23534 NULL
136877 +disable_so_end_jiffies_iwl_mvm_time_event_data_23536 end_jiffies iwl_mvm_time_event_data 0 23536 NULL
136878 +disable_so_try_read_address_fndecl_23550 try_read_address fndecl 0-2 23550 NULL
136879 +disable_so_cpufreq_stats_create_table_fndecl_23554 cpufreq_stats_create_table fndecl 1 23554 NULL
136880 +disable_so_div2__pll_div_23561 div2 _pll_div 0 23561 NULL
136881 +disable_so_hpi_sample_clock_set_local_rate_fndecl_23570 hpi_sample_clock_set_local_rate fndecl 1-0 23570 NULL
136882 +disable_so_sctp_assoc_set_bind_addr_from_ep_fndecl_23572 sctp_assoc_set_bind_addr_from_ep fndecl 0-3 23572 NULL
136883 +disable_so_hscb_busaddr_scb_data_23574 hscb_busaddr scb_data 0 23574 NULL
136884 +disable_so_shadow_msr_edgeport_port_23577 shadow_msr edgeport_port 0 23577 NULL
136885 +disable_so_gcm_hash_fndecl_23580 gcm_hash fndecl 0 23580 NULL
136886 +disable_so_kvm_send_hwpoison_signal_fndecl_23581 kvm_send_hwpoison_signal fndecl 1 23581 NULL
136887 +disable_so_spu_reg_delay_if_spi_card_23584 spu_reg_delay if_spi_card 0 23584 NULL
136888 +disable_so_inet_rtm_deladdr_fndecl_23589 inet_rtm_deladdr fndecl 0 23589 NULL
136889 +disable_so_sm2_runtime_sc_23590 sm2 runtime_sc 0 23590 NULL
136890 +disable_so_cpumask_parselist_user_fndecl_23592 cpumask_parselist_user fndecl 0-2 23592 NULL
136891 +disable_so_clock_cooling_get_frequency_fndecl_23598 clock_cooling_get_frequency fndecl 0 23598 NULL
136892 +disable_so_nilfs_btree_last_key_fndecl_23599 nilfs_btree_last_key fndecl 0 23599 NULL
136893 +disable_so_address_map_r8a66597_23613 address_map r8a66597 0 23613 NULL
136894 +disable_so_closest_timer_fndecl_23617 closest_timer fndecl 2 23617 NULL
136895 +disable_so_delay_radeon_atom_ss_23618 delay radeon_atom_ss 0 23618 NULL
136896 +disable_so_no_addr_gfs2_skip_data_23619 no_addr gfs2_skip_data 0 23619 NULL nohasharray
136897 +disable_so_bloutp_qat_crypto_request_buffs_23619 bloutp qat_crypto_request_buffs 0 23619 &disable_so_no_addr_gfs2_skip_data_23619
136898 +disable_so_i2s_runtime_resume_fndecl_23625 i2s_runtime_resume fndecl 0 23625 NULL nohasharray
136899 +disable_so_mtime_seg_entry_23625 mtime seg_entry 0 23625 &disable_so_i2s_runtime_resume_fndecl_23625
136900 +disable_so_atime_apds990x_chip_23626 atime apds990x_chip 0 23626 NULL
136901 +disable_so_irq_domain_free_irqs_fndecl_23634 irq_domain_free_irqs fndecl 1-2 23634 NULL
136902 +disable_so_gru_last_node_paddr_vardecl_x2apic_uv_x_c_23641 gru_last_node_paddr vardecl_x2apic_uv_x.c 0 23641 NULL
136903 +disable_so_tss_addr_kvm_arch_23642 tss_addr kvm_arch 0 23642 NULL
136904 +disable_so_rv3029c2_rtc_read_time_fndecl_23644 rv3029c2_rtc_read_time fndecl 0 23644 NULL
136905 +disable_so___round_jiffies_fndecl_23650 __round_jiffies fndecl 2-1-0 23650 NULL
136906 +disable_so_fixed_mtrr_seg_unit_range_index_fndecl_23657 fixed_mtrr_seg_unit_range_index fndecl 2-0 23657 NULL
136907 +disable_so_timeriomem_rng_driver_init_fndecl_23666 timeriomem_rng_driver_init fndecl 0 23666 NULL
136908 +disable_so_read_status_jiffies_af9013_state_23669 read_status_jiffies af9013_state 0 23669 NULL
136909 +disable_so_st_gid_compat_stat_23673 st_gid compat_stat 0 23673 NULL nohasharray
136910 +disable_so_addr_snic_sg_desc_23673 addr snic_sg_desc 0 23673 &disable_so_st_gid_compat_stat_23673
136911 +disable_so_boottime_get_fndecl_23679 boottime_get fndecl 0 23679 NULL
136912 +disable_so_sctp_v4_inaddr_any_fndecl_23681 sctp_v4_inaddr_any fndecl 2 23681 NULL
136913 +disable_so_posix_cpu_clock_get_task_fndecl_23683 posix_cpu_clock_get_task fndecl 2 23683 NULL nohasharray
136914 +disable_so_gpio_free_fndecl_23683 gpio_free fndecl 1 23683 &disable_so_posix_cpu_clock_get_task_fndecl_23683
136915 +disable_so_ebitmap_cpy_fndecl_23688 ebitmap_cpy fndecl 0 23688 NULL
136916 +disable_so___bitmap_parselist_fndecl_23689 __bitmap_parselist fndecl 0-2-5 23689 NULL
136917 +disable_so_wlcore_hw_interrupt_notify_fndecl_23695 wlcore_hw_interrupt_notify fndecl 0 23695 NULL
136918 +disable_so_schedule_zero_fndecl_23702 schedule_zero fndecl 2-3 23702 NULL nohasharray
136919 +disable_so_mtt_addr_mlx4_mpt_entry_23702 mtt_addr mlx4_mpt_entry 0 23702 &disable_so_schedule_zero_fndecl_23702
136920 +disable_so_adis16400_get_freq_fndecl_23703 adis16400_get_freq fndecl 0 23703 NULL
136921 +disable_so_interrupt_out_endpoint_size_ld_usb_23705 interrupt_out_endpoint_size ld_usb 0 23705 NULL
136922 +disable_so_mac_time_libipw_rx_stats_23706 mac_time libipw_rx_stats 0 23706 NULL nohasharray
136923 +disable_so___ipv6_addr_diff_fndecl_23706 __ipv6_addr_diff fndecl 0 23706 &disable_so_mac_time_libipw_rx_stats_23706
136924 +disable_so_delay_snd_pcm_status_23708 delay snd_pcm_status 0 23708 NULL
136925 +disable_so_oprofile_set_timeout_fndecl_23715 oprofile_set_timeout fndecl 1-0 23715 NULL
136926 +disable_so_fll_fratio__fll_div_23723 fll_fratio _fll_div 0 23723 NULL
136927 +disable_so___uac_clock_find_source_fndecl_23728 __uac_clock_find_source fndecl 0-2 23728 NULL
136928 +disable_so_acpi_pci_root_get_mcfg_addr_fndecl_23731 acpi_pci_root_get_mcfg_addr fndecl 0 23731 NULL
136929 +disable_so_snd_hda_codec_write_fndecl_23746 snd_hda_codec_write fndecl 0-5-4-2 23746 NULL
136930 +disable_so_local_ipaddr_nes_vnic_23747 local_ipaddr nes_vnic 0 23747 NULL
136931 +disable_so_frequency_stv0900_signal_info_23753 frequency stv0900_signal_info 0 23753 NULL
136932 +disable_so_ic_addrservaddr_vardecl_23754 ic_addrservaddr vardecl 0 23754 NULL
136933 +disable_so_next_hrtimer_event_fusbh200_hcd_23756 next_hrtimer_event fusbh200_hcd 0 23756 NULL
136934 +disable_so_speedstep_get_frequency_fndecl_23758 speedstep_get_frequency fndecl 0 23758 NULL
136935 +disable_so_lpe_base_sst_addr_23776 lpe_base sst_addr 0 23776 NULL
136936 +disable_so_saddr_flowidn_23780 saddr flowidn 0 23780 NULL
136937 +disable_so_uwb_rc_dev_addr_get_fndecl_23783 uwb_rc_dev_addr_get fndecl 0 23783 NULL
136938 +disable_so_qla2x00_start_timer_fndecl_23784 qla2x00_start_timer fndecl 3 23784 NULL
136939 +disable_so_pcan_usb_fd_set_bittiming_slow_fndecl_23790 pcan_usb_fd_set_bittiming_slow fndecl 0 23790 NULL
136940 +disable_so_crypto_rfc4543_setauthsize_fndecl_23801 crypto_rfc4543_setauthsize fndecl 2 23801 NULL
136941 +disable_so_drbd_send_uuids_skip_initial_sync_fndecl_23802 drbd_send_uuids_skip_initial_sync fndecl 0 23802 NULL
136942 +disable_so_si476x_phase_diversity_mode_to_idx_fndecl_23804 si476x_phase_diversity_mode_to_idx fndecl 0 23804 NULL
136943 +disable_so_ci_program_memory_timing_parameters_fndecl_23805 ci_program_memory_timing_parameters fndecl 0 23805 NULL
136944 +disable_so_show_ioc_guid_fndecl_23810 show_ioc_guid fndecl 0 23810 NULL
136945 +disable_so_gpiod_get_raw_value_cansleep_fndecl_23812 gpiod_get_raw_value_cansleep fndecl 0 23812 NULL
136946 +disable_so_cpu_to_fs64_fndecl_23816 cpu_to_fs64 fndecl 0-2 23816 NULL
136947 +disable_so_tomoyo_convert_time_fndecl_23823 tomoyo_convert_time fndecl 1 23823 NULL
136948 +disable_so_ufshcd_runtime_resume_fndecl_23824 ufshcd_runtime_resume fndecl 0 23824 NULL
136949 +disable_so_ext4_block_bitmap_csum_verify_fndecl_23826 ext4_block_bitmap_csum_verify fndecl 2 23826 NULL
136950 +disable_so_hash_hi_smsc95xx_priv_23835 hash_hi smsc95xx_priv 0 23835 NULL
136951 +disable_so_pm_autosleep_init_fndecl_23847 pm_autosleep_init fndecl 0 23847 NULL
136952 +disable_so_mpu_timer_init_fndecl_23854 mpu_timer_init fndecl 1 23854 NULL
136953 +disable_so_bg_block_bitmap_ext2_group_desc_23861 bg_block_bitmap ext2_group_desc 0 23861 NULL
136954 +disable_so_mlx4_en_config_port_scheduler_fndecl_23868 mlx4_en_config_port_scheduler fndecl 0 23868 NULL
136955 +disable_so_pixelclock_for_modeset_radeon_connector_23870 pixelclock_for_modeset radeon_connector 0 23870 NULL
136956 +disable_so_ocfs2_remove_btree_range_fndecl_23874 ocfs2_remove_btree_range fndecl 0-3-4-5-8 23874 NULL
136957 +disable_so_crypto_authenc_setkey_fndecl_23875 crypto_authenc_setkey fndecl 0 23875 NULL
136958 +disable_so_vdiv_mcp77_clk_priv_23881 vdiv mcp77_clk_priv 0 23881 NULL
136959 +disable_so_xfs_da_hashname_fndecl_23895 xfs_da_hashname fndecl 2 23895 NULL
136960 +disable_so_sky2_rx_hash_fndecl_23905 sky2_rx_hash fndecl 2 23905 NULL
136961 +disable_so_pci_revert_fw_address_fndecl_23911 pci_revert_fw_address fndecl 3-4 23911 NULL
136962 +disable_so_gru_chiplet_cpu_to_mmr_fndecl_23914 gru_chiplet_cpu_to_mmr fndecl 2 23914 NULL nohasharray
136963 +disable_so_htotal___fb_timings_23914 htotal __fb_timings 0 23914 &disable_so_gru_chiplet_cpu_to_mmr_fndecl_23914
136964 +disable_so_coalescing_timeo_bna_tx_config_23917 coalescing_timeo bna_tx_config 0 23917 NULL
136965 +disable_so_block_size_ccp_sha_def_23920 block_size ccp_sha_def 0 23920 NULL
136966 +disable_so_chunk_sizek_mtrr_cleanup_result_23928 chunk_sizek mtrr_cleanup_result 0 23928 NULL
136967 +disable_so_cpufreq_register_driver_fndecl_23933 cpufreq_register_driver fndecl 0 23933 NULL
136968 +disable_so_requested_freq_cs_cpu_dbs_info_s_23941 requested_freq cs_cpu_dbs_info_s 0 23941 NULL
136969 +disable_so_ath9k_hw_setslottime_fndecl_23946 ath9k_hw_setslottime fndecl 2 23946 NULL
136970 +disable_so_clock_man_fndecl_23950 clock_man fndecl 2 23950 NULL
136971 +disable_so_dma2_address_info_23953 dma2 address_info 0 23953 NULL
136972 +disable_so_crypto_ctr_crypt_segment_fndecl_23955 crypto_ctr_crypt_segment fndecl 0 23955 NULL
136973 +disable_so_be_set_rss_hash_opts_fndecl_23960 be_set_rss_hash_opts fndecl 0 23960 NULL
136974 +disable_so_src_low_addr_mvumi_dyn_list_entry_23961 src_low_addr mvumi_dyn_list_entry 0 23961 NULL
136975 +disable_so_fm_v4l2_vidioc_s_hw_freq_seek_fndecl_23963 fm_v4l2_vidioc_s_hw_freq_seek fndecl 0 23963 NULL
136976 +disable_so_tmr_start_sound_lowlev_timer_23966 tmr_start sound_lowlev_timer 1 23966 NULL
136977 +disable_so_task_clock_event_update_fndecl_23968 task_clock_event_update fndecl 2 23968 NULL
136978 +disable_so_i_mtime_minix2_inode_23986 i_mtime minix2_inode 0 23986 NULL
136979 +disable_so_time_offset_wl1271_23987 time_offset wl1271 0 23987 NULL
136980 +disable_so_src_nents_qce_sha_reqctx_24004 src_nents qce_sha_reqctx 0 24004 NULL
136981 +disable_so_elements_bitmap_ipmac_24013 elements bitmap_ipmac 0 24013 NULL
136982 +disable_so_aggregation_timeout_cfhsi_config_24023 aggregation_timeout cfhsi_config 0 24023 NULL
136983 +disable_so_write_interrupt_go7007_hpi_ops_24025 write_interrupt go7007_hpi_ops 3 24025 NULL
136984 +disable_so_data_timer_list_24031 data timer_list 0 24031 NULL
136985 +disable_so_reference_freq_radeon_pll_24034 reference_freq radeon_pll 0 24034 NULL
136986 +disable_so_smi_mod_timer_fndecl_24037 smi_mod_timer fndecl 2 24037 NULL
136987 +disable_so_sha1_mb_async_digest_fndecl_24067 sha1_mb_async_digest fndecl 0 24067 NULL
136988 +disable_so_drv2667_set_waveform_freq_fndecl_24071 drv2667_set_waveform_freq fndecl 0 24071 NULL
136989 +disable_so_ath6kl_disconnect_timeout_write_fndecl_24073 ath6kl_disconnect_timeout_write fndecl 3-0 24073 NULL nohasharray
136990 +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
136991 +disable_so_hi_cfg_timing_div_drxd_state_24076 hi_cfg_timing_div drxd_state 0 24076 NULL nohasharray
136992 +disable_so_addr_gf100_grctx_24076 addr gf100_grctx 0 24076 &disable_so_hi_cfg_timing_div_drxd_state_24076
136993 +disable_so_expected_sys_clock_freq_drxd_state_24078 expected_sys_clock_freq drxd_state 0 24078 NULL
136994 +disable_so_img_ir_symbol_timing_fndecl_24080 img_ir_symbol_timing fndecl 0-2-3-4-5 24080 NULL
136995 +disable_so_nr_uuids_cache_set_24084 nr_uuids cache_set 0 24084 NULL nohasharray
136996 +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
136997 +disable_so_radeon_atom_get_clock_dividers_fndecl_24091 radeon_atom_get_clock_dividers fndecl 2-0-3 24091 NULL
136998 +disable_so_rx_pg_bidx_addr_bnx2_rx_ring_info_24100 rx_pg_bidx_addr bnx2_rx_ring_info 0 24100 NULL
136999 +disable_so_pty_signal_fndecl_24107 pty_signal fndecl 2 24107 NULL
137000 +disable_so_laddr_rsxx_dma_24112 laddr rsxx_dma 0 24112 NULL
137001 +disable_so_position_ct_timer_instance_24114 position ct_timer_instance 0 24114 NULL
137002 +disable_so_btrfs_create_uuid_tree_fndecl_24124 btrfs_create_uuid_tree fndecl 0 24124 NULL
137003 +disable_so_version_ethtool_regs_24128 version ethtool_regs 0 24128 NULL
137004 +disable_so_usleep_range_fndecl_24129 usleep_range fndecl 1-2 24129 NULL
137005 +disable_so_pdc_detect_pll_input_clock_fndecl_24132 pdc_detect_pll_input_clock fndecl 0 24132 NULL
137006 +disable_so_dn_ifaddr_notify_fndecl_24133 dn_ifaddr_notify fndecl 1 24133 NULL
137007 +disable_so_sis_ata133_program_udma_timings_fndecl_24137 sis_ata133_program_udma_timings fndecl 2 24137 NULL
137008 +disable_so_fll_fratio_fll_div_24138 fll_fratio fll_div 0 24138 NULL
137009 +disable_so_switch_addr_tda827x_config_24144 switch_addr tda827x_config 0 24144 NULL
137010 +disable_so_scan_timeout_airo_info_24146 scan_timeout airo_info 0 24146 NULL nohasharray
137011 +disable_so_tps6586x_rtc_set_time_fndecl_24146 tps6586x_rtc_set_time fndecl 0 24146 &disable_so_scan_timeout_airo_info_24146
137012 +disable_so_ip101a_g_ack_interrupt_fndecl_24147 ip101a_g_ack_interrupt fndecl 0 24147 NULL
137013 +disable_so_clock_speed__MGSL_PARAMS_24149 clock_speed _MGSL_PARAMS 0 24149 NULL nohasharray
137014 +disable_so_esi_tss_segment_32_24149 esi tss_segment_32 0 24149 &disable_so_clock_speed__MGSL_PARAMS_24149
137015 +disable_so_sync_size_bitmap_super_s_24170 sync_size bitmap_super_s 0 24170 NULL
137016 +disable_so_hwirq_irq_data_24172 hwirq irq_data 0 24172 NULL
137017 +disable_so_brcm_fet_ack_interrupt_fndecl_24181 brcm_fet_ack_interrupt fndecl 0 24181 NULL
137018 +disable_so_min_delta_ticks_clock_event_device_24191 min_delta_ticks clock_event_device 0 24191 NULL
137019 +disable_so_device_snd_timer_id_24197 device snd_timer_id 0 24197 NULL
137020 +disable_so_xcan_tx_interrupt_fndecl_24200 xcan_tx_interrupt fndecl 2 24200 NULL
137021 +disable_so_dmabuf_timeout_fndecl_24205 dmabuf_timeout fndecl 0 24205 NULL
137022 +disable_so_pm_runtime_get_sync_fndecl_24206 pm_runtime_get_sync fndecl 0 24206 NULL
137023 +disable_so_vdso_addr_fndecl_24212 vdso_addr fndecl 1-2 24212 NULL
137024 +disable_so___subtree_last_usnic_uiom_interval_node_24213 __subtree_last usnic_uiom_interval_node 0 24213 NULL
137025 +disable_so_read_mac_addr_pch_gbe_functions_24216 read_mac_addr pch_gbe_functions 0 24216 NULL
137026 +disable_so_get_option_gid_fndecl_24218 get_option_gid fndecl 0 24218 NULL
137027 +disable_so_decode_freq_dst_state_24221 decode_freq dst_state 0 24221 NULL
137028 +disable_so_nilfs_btree_prepare_delete_fndecl_24237 nilfs_btree_prepare_delete fndecl 0 24237 NULL
137029 +disable_so_start_time_s2io_nic_24242 start_time s2io_nic 0 24242 NULL
137030 +disable_so_tv_vsync_delay_nv04_crtc_reg_24261 tv_vsync_delay nv04_crtc_reg 0 24261 NULL
137031 +disable_so_sq_addr_low_nes_qp_context_24263 sq_addr_low nes_qp_context 0 24263 NULL
137032 +disable_so_jiffies_next_airspy_24265 jiffies_next airspy 0 24265 NULL
137033 +disable_so_show_node_guid_fndecl_24266 show_node_guid fndecl 0 24266 NULL
137034 +disable_so_new_addr_tcf_nat_24272 new_addr tcf_nat 0 24272 NULL nohasharray
137035 +disable_so_dt_cpufreq_probe_fndecl_24272 dt_cpufreq_probe fndecl 0 24272 &disable_so_new_addr_tcf_nat_24272
137036 +disable_so_src_freq_tbl_24280 src freq_tbl 0 24280 NULL
137037 +disable_so_tps51632_dcdc_set_ramp_delay_fndecl_24291 tps51632_dcdc_set_ramp_delay fndecl 0-2 24291 NULL
137038 +disable_so_resolution_num_snd_timer_gstatus_24293 resolution_num snd_timer_gstatus 0 24293 NULL
137039 +disable_so_delay_usecs_spi_transfer_24301 delay_usecs spi_transfer 0 24301 NULL
137040 +disable_so_curfreq_dsbr100_device_24314 curfreq dsbr100_device 0 24314 NULL
137041 +disable_so_mlx4_set_admin_guid_fndecl_24342 mlx4_set_admin_guid fndecl 3-4 24342 NULL
137042 +disable_so__get_table_maxdiv_fndecl_24353 _get_table_maxdiv fndecl 0 24353 NULL
137043 +disable_so_fb_div_scale_rv6xx_power_info_24360 fb_div_scale rv6xx_power_info 0 24360 NULL
137044 +disable_so_fb_get_hfreq_fndecl_24369 fb_get_hfreq fndecl 0-1-2 24369 NULL
137045 +disable_so_mmp_time_mmp_struct_24373 mmp_time mmp_struct 0 24373 NULL
137046 +disable_so_timestamp_mwifiex_fixed_bcn_param_24375 timestamp mwifiex_fixed_bcn_param 0 24375 NULL
137047 +disable_so_s2mpu02_set_ramp_delay_fndecl_24379 s2mpu02_set_ramp_delay fndecl 0 24379 NULL
137048 +disable_so_last_fail_time_iscsi_login_stats_24381 last_fail_time iscsi_login_stats 0 24381 NULL
137049 +disable_so_bus_addr_vnic_res_24386 bus_addr vnic_res 0 24386 NULL
137050 +disable_so_i40e_ptp_adjtime_fndecl_24400 i40e_ptp_adjtime fndecl 2 24400 NULL
137051 +disable_so_msr_ct_atc_24401 msr ct_atc 0 24401 NULL
137052 +disable_so_pvr2_hdw_get_cur_freq_fndecl_24402 pvr2_hdw_get_cur_freq fndecl 0 24402 NULL
137053 +disable_so_time_ubifs_znode_24419 time ubifs_znode 0 24419 NULL
137054 +disable_so_ssp_get_clk_div_fndecl_24428 ssp_get_clk_div fndecl 0-2 24428 NULL
137055 +disable_so_sem_otime_sem_24429 sem_otime sem 0 24429 NULL
137056 +disable_so_mrst_lvds_clock_fndecl_24433 mrst_lvds_clock fndecl 1 24433 NULL
137057 +disable_so_ccp_aes_setkey_fndecl_24438 ccp_aes_setkey fndecl 3 24438 NULL
137058 +disable_so_log2_page_size_mlx5_mkey_seg_24441 log2_page_size mlx5_mkey_seg 0 24441 NULL
137059 +disable_so_qtimer_val_fndecl_24449 qtimer_val fndecl 0 24449 NULL
137060 +disable_so_sum_exec_runtime_sched_entity_24453 sum_exec_runtime sched_entity 0 24453 NULL
137061 +disable_so_ehash_mask_inet_hashinfo_24457 ehash_mask inet_hashinfo 0 24457 NULL
137062 +disable_so_bd_list_addr_hi_bnx2i_tmf_request_24461 bd_list_addr_hi bnx2i_tmf_request 0 24461 NULL
137063 +disable_so_qce_ahash_register_fndecl_24475 qce_ahash_register fndecl 0 24475 NULL
137064 +disable_so_acpi_leave_sleep_state_fndecl_24476 acpi_leave_sleep_state fndecl 0-1 24476 NULL
137065 +disable_so_last_can_queue_ramp_up_time_fc_fcp_internal_24477 last_can_queue_ramp_up_time fc_fcp_internal 0 24477 NULL
137066 +disable_so_mtrr_gran_size_vardecl_cleanup_c_24487 mtrr_gran_size vardecl_cleanup.c 0 24487 NULL
137067 +disable_so_tef6862_s_frequency_fndecl_24490 tef6862_s_frequency fndecl 0 24490 NULL
137068 +disable_so_update_uc_addr_fm10k_mac_ops_24492 update_uc_addr fm10k_mac_ops 4 24492 NULL
137069 +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
137070 +disable_so_read_div_fndecl_24524 read_div fndecl 0-2-3-4 24524 NULL
137071 +disable_so_sctp_setsockopt_peer_addr_params_fndecl_24525 sctp_setsockopt_peer_addr_params fndecl 3-0 24525 NULL
137072 +disable_so_dev_addr_dma_debug_entry_24528 dev_addr dma_debug_entry 0 24528 NULL
137073 +disable_so_txurn_interrupt_mask_ath_hw_24529 txurn_interrupt_mask ath_hw 0 24529 NULL
137074 +disable_so_reg_w_fndecl_24535 reg_w fndecl 2-3 24535 NULL
137075 +disable_so_fs_csaddr_ufs_super_block_first_24537 fs_csaddr ufs_super_block_first 0 24537 NULL nohasharray
137076 +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
137077 +disable_so_af_tx_sent_jiffies_brcmf_p2p_info_24540 af_tx_sent_jiffies brcmf_p2p_info 0 24540 NULL
137078 +disable_so_timekeeping_max_deferment_fndecl_24546 timekeeping_max_deferment fndecl 0 24546 NULL
137079 +disable_so_poly_cipherpad_fndecl_24550 poly_cipherpad fndecl 0 24550 NULL
137080 +disable_so_aosr_aic32x4_rate_divs_24551 aosr aic32x4_rate_divs 0 24551 NULL
137081 +disable_so_dir_band_bitmap_hpfs_super_block_24552 dir_band_bitmap hpfs_super_block 0 24552 NULL
137082 +disable_so_confq_first_pbe_addr_hi_fcoe_kwqe_conn_offload3_24566 confq_first_pbe_addr_hi fcoe_kwqe_conn_offload3 0 24566 NULL
137083 +disable_so_console_addr_brcmf_sdio_24567 console_addr brcmf_sdio 0 24567 NULL
137084 +disable_so_cis820x_ack_interrupt_fndecl_24585 cis820x_ack_interrupt fndecl 0 24585 NULL
137085 +disable_so_proc_loginuid_read_fndecl_24604 proc_loginuid_read fndecl 3-0 24604 NULL
137086 +disable_so_schedule_nes_timer_fndecl_24613 schedule_nes_timer fndecl 0 24613 NULL
137087 +disable_so_base_freq_patch_info_24622 base_freq patch_info 0 24622 NULL
137088 +disable_so_acpi_hw_sleep_dispatch_fndecl_24627 acpi_hw_sleep_dispatch fndecl 0-1 24627 NULL
137089 +disable_so_busaddr_cciss_scsi_cmd_stack_elem_t_24629 busaddr cciss_scsi_cmd_stack_elem_t 0 24629 NULL
137090 +disable_so_hscb_busaddr_hardware_scb_24633 hscb_busaddr hardware_scb 0 24633 NULL
137091 +disable_so_scsi_reset_delay_adveep_38C0800_config_24634 scsi_reset_delay adveep_38C0800_config 0 24634 NULL
137092 +disable_so_mclk_fb_div_pll_ct_24641 mclk_fb_div pll_ct 0 24641 NULL
137093 +disable_so_writeback_index_address_space_24643 writeback_index address_space 0 24643 NULL
137094 +disable_so_ieee80211_aes_cmac_256_fndecl_24647 ieee80211_aes_cmac_256 fndecl 4 24647 NULL
137095 +disable_so_i915_gem_object_set_to_cpu_domain_fndecl_24650 i915_gem_object_set_to_cpu_domain fndecl 0 24650 NULL
137096 +disable_so_i2c_addr_sd_24651 i2c_addr sd 0 24651 NULL
137097 +disable_so_next_jiffies_vardecl_ksz884x_c_24672 next_jiffies vardecl_ksz884x.c 0 24672 NULL
137098 +disable_so_sclk_frequency_sumo_sclk_voltage_mapping_entry_24676 sclk_frequency sumo_sclk_voltage_mapping_entry 0 24676 NULL
137099 +disable_so_eop_buffer_address_kfd_ioctl_create_queue_args_24677 eop_buffer_address kfd_ioctl_create_queue_args 0 24677 NULL
137100 +disable_so_cyc2ns_mul_cyc2ns_data_24698 cyc2ns_mul cyc2ns_data 0 24698 NULL
137101 +disable_so_task_getscheduler_security_operations_24701 task_getscheduler security_operations 0 24701 NULL
137102 +disable_so_bitmap_search_next_usable_block_fndecl_24705 bitmap_search_next_usable_block fndecl 0-1-3 24705 NULL
137103 +disable_so_gfn_to_memslot_dirty_bitmap_fndecl_24710 gfn_to_memslot_dirty_bitmap fndecl 2 24710 NULL
137104 +disable_so_type_acpi_signal_fatal_info_24717 type acpi_signal_fatal_info 0 24717 NULL
137105 +disable_so_interrupt_mod_interval_vardecl_24721 interrupt_mod_interval vardecl 0 24721 NULL
137106 +disable_so_crypto_authenc_esn_givencrypt_fndecl_24722 crypto_authenc_esn_givencrypt fndecl 0 24722 NULL
137107 +disable_so_atl1e_hash_mc_addr_fndecl_24728 atl1e_hash_mc_addr fndecl 0 24728 NULL
137108 +disable_so_digest_size_ccp_sha_def_24730 digest_size ccp_sha_def 0 24730 NULL
137109 +disable_so_sysfs_show_current_clocksources_fndecl_24748 sysfs_show_current_clocksources fndecl 0 24748 NULL
137110 +disable_so_timeout_ip_set_ext_24754 timeout ip_set_ext 0 24754 NULL
137111 +disable_so_freqmode_pll_div_24757 freqmode pll_div 0 24757 NULL
137112 +disable_so_mvs_write_port_cfg_addr_fndecl_24758 mvs_write_port_cfg_addr fndecl 3 24758 NULL nohasharray
137113 +disable_so_vactive_lo_oaktrail_timing_info_24758 vactive_lo oaktrail_timing_info 0 24758 &disable_so_mvs_write_port_cfg_addr_fndecl_24758
137114 +disable_so_cs42xx8_runtime_resume_fndecl_24764 cs42xx8_runtime_resume fndecl 0 24764 NULL
137115 +disable_so_snd_pcm_hw_rule_div_fndecl_24768 snd_pcm_hw_rule_div fndecl 0 24768 NULL
137116 +disable_so_drbg_hash_process_addtl_fndecl_24773 drbg_hash_process_addtl fndecl 0 24773 NULL
137117 +disable_so__lookup_address_cpa_fndecl_24780 _lookup_address_cpa fndecl 2 24780 NULL
137118 +disable_so_time_stamp_iwl_traffic_load_24795 time_stamp iwl_traffic_load 0 24795 NULL
137119 +disable_so_remote_cm_response_timeout_ib_cm_req_event_param_24800 remote_cm_response_timeout ib_cm_req_event_param 0 24800 NULL
137120 +disable_so_busaddr_nes_rskb_cb_24803 busaddr nes_rskb_cb 0 24803 NULL nohasharray
137121 +disable_so_setkey_ablkcipher_tfm_24803 setkey ablkcipher_tfm 0-3 24803 &disable_so_busaddr_nes_rskb_cb_24803
137122 +disable_so_acpi_sleep_prepare_fndecl_24809 acpi_sleep_prepare fndecl 1 24809 NULL
137123 +disable_so_max98090_find_divisor_fndecl_24832 max98090_find_divisor fndecl 0-2 24832 NULL
137124 +disable_so_panel_digon_delay_radeon_encoder_lvds_24833 panel_digon_delay radeon_encoder_lvds 0 24833 NULL
137125 +disable_so_qp_dma_addr_t3_rdma_init_attr_24843 qp_dma_addr t3_rdma_init_attr 0 24843 NULL
137126 +disable_so_interval_tree_compute_subtree_last_fndecl_24849 interval_tree_compute_subtree_last fndecl 0 24849 NULL
137127 +disable_so_queue_info_new_phys_addr_lo_megasas_init_frame_24856 queue_info_new_phys_addr_lo megasas_init_frame 0 24856 NULL
137128 +disable_so_mipi_dsi_dcs_enter_sleep_mode_fndecl_24857 mipi_dsi_dcs_enter_sleep_mode fndecl 0 24857 NULL
137129 +disable_so_ring_iowrite64desc_fndecl_24858 ring_iowrite64desc fndecl 2 24858 NULL nohasharray
137130 +disable_so_regcache_rbtree_lookup_fndecl_24858 regcache_rbtree_lookup fndecl 2 24858 &disable_so_ring_iowrite64desc_fndecl_24858
137131 +disable_so_rx_timeout_sci_port_24883 rx_timeout sci_port 0 24883 NULL nohasharray
137132 +disable_so_add_atomic_switch_msr_fndecl_24883 add_atomic_switch_msr fndecl 3-4 24883 &disable_so_rx_timeout_sci_port_24883
137133 +disable_so_xfs_btree_del_cursor_fndecl_24886 xfs_btree_del_cursor fndecl 2 24886 NULL
137134 +disable_so_dsp_time_last_pcxhr_mgr_24894 dsp_time_last pcxhr_mgr 0 24894 NULL
137135 +disable_so_addr_carm_msg_allocbuf_24908 addr carm_msg_allocbuf 0 24908 NULL
137136 +disable_so_max_gids_mthca_dev_lim_24911 max_gids mthca_dev_lim 0 24911 NULL nohasharray
137137 +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
137138 +disable_so_last_jiffies_vardecl_isdn_net_c_24918 last_jiffies vardecl_isdn_net.c 0 24918 NULL
137139 +disable_so_pci_bus_cx88_core_24932 pci_bus cx88_core 0 24932 NULL
137140 +disable_so_devm_gpio_request_one_fndecl_24938 devm_gpio_request_one fndecl 0-2 24938 NULL
137141 +disable_so_launder_page_address_space_operations_24942 launder_page address_space_operations 0 24942 NULL
137142 +disable_so_enh_desc_get_timestamp_fndecl_24946 enh_desc_get_timestamp fndecl 0 24946 NULL
137143 +disable_so___pci_bus_find_cap_start_fndecl_24949 __pci_bus_find_cap_start fndecl 0-2 24949 NULL
137144 +disable_so_prepare_signal_fndecl_24954 prepare_signal fndecl 1 24954 NULL
137145 +disable_so_il_vfrontporch_v4l2_bt_timings_24960 il_vfrontporch v4l2_bt_timings 0 24960 NULL
137146 +disable_so_ide_pio_cycle_time_fndecl_24963 ide_pio_cycle_time fndecl 2-0 24963 NULL
137147 +disable_so_demod_address_tda10086_config_24966 demod_address tda10086_config 0 24966 NULL nohasharray
137148 +disable_so_ath5k_check_timer_win_fndecl_24966 ath5k_check_timer_win fndecl 1-2 24966 &disable_so_demod_address_tda10086_config_24966
137149 +disable_so_pentium_core_get_frequency_fndecl_24968 pentium_core_get_frequency fndecl 0 24968 NULL
137150 +disable_so_freqerr_chk_fndecl_24974 freqerr_chk fndecl 0-2-3 24974 NULL
137151 +disable_so_tgt_reset_timeout_iscsi_session_24977 tgt_reset_timeout iscsi_session 0 24977 NULL
137152 +disable_so_gpiod_set_raw_value_cansleep_fndecl_24979 gpiod_set_raw_value_cansleep fndecl 2 24979 NULL
137153 +disable_so_write_addr_fndecl_24985 write_addr fndecl 2 24985 NULL
137154 +disable_so_mcs7830_set_mac_address_fndecl_24986 mcs7830_set_mac_address fndecl 0 24986 NULL
137155 +disable_so_multiaddr_ip_mc_list_24989 multiaddr ip_mc_list 0 24989 NULL
137156 +disable_so_shash_ahash_digest_fndecl_24990 shash_ahash_digest fndecl 0 24990 NULL
137157 +disable_so_unlock_timer_adp5589_kpad_platform_data_24993 unlock_timer adp5589_kpad_platform_data 0 24993 NULL
137158 +disable_so_connect_timeout_vsock_sock_25001 connect_timeout vsock_sock 0 25001 NULL
137159 +disable_so_m_addr_rds_cong_map_25013 m_addr rds_cong_map 0 25013 NULL
137160 +disable_so_flash_addr_esas2r_ioctlfs_command_25014 flash_addr esas2r_ioctlfs_command 0 25014 NULL
137161 +disable_so_da9052_rtc_read_time_fndecl_25015 da9052_rtc_read_time fndecl 0 25015 NULL
137162 +disable_so_cpu_to_vhost32_fndecl_25031 cpu_to_vhost32 fndecl 0-2 25031 NULL
137163 +disable_so_vxlan_nla_put_addr_fndecl_25037 vxlan_nla_put_addr fndecl 0 25037 NULL
137164 +disable_so_hello_timer_value___bridge_info_25048 hello_timer_value __bridge_info 0 25048 NULL
137165 +disable_so_steer_res_gid_25050 steer res_gid 0 25050 NULL
137166 +disable_so_average_frequency_time_stats_25055 average_frequency time_stats 0 25055 NULL
137167 +disable_so_sense_busaddr_scb_data_25056 sense_busaddr scb_data 0 25056 NULL
137168 +disable_so_rx_stall_timeout_msecs_vardecl_25059 rx_stall_timeout_msecs vardecl 0 25059 NULL
137169 +disable_so_bypclk_div_dibx000_bandwidth_config_25065 bypclk_div dibx000_bandwidth_config 0 25065 NULL
137170 +disable_so_drm_dp_clock_recovery_ok_fndecl_25083 drm_dp_clock_recovery_ok fndecl 2 25083 NULL
137171 +disable_so_get_min_clock_sdhci_ops_25084 get_min_clock sdhci_ops 0 25084 NULL
137172 +disable_so_port_ka_time_fcoe_ctlr_25085 port_ka_time fcoe_ctlr 0 25085 NULL
137173 +disable_so_btrfs_set_token_timespec_nsec_fndecl_25090 btrfs_set_token_timespec_nsec fndecl 3 25090 NULL
137174 +disable_so_tx_bd_haddr_lo_bnx2_tx_bd_25100 tx_bd_haddr_lo bnx2_tx_bd 0 25100 NULL
137175 +disable_so_pwm_freq_div_dib7000p_config_25102 pwm_freq_div dib7000p_config 0 25102 NULL
137176 +disable_so_x86_pmu_config_addr_fndecl_25103 x86_pmu_config_addr fndecl 0-1 25103 NULL
137177 +disable_so_address_TAG_TW_SG_Entry_25109 address TAG_TW_SG_Entry 0 25109 NULL
137178 +disable_so_cfg_base_smsc_chip_address_25125 cfg_base smsc_chip_address 0 25125 NULL
137179 +disable_so_snd_iprintf_fndecl_25126 snd_iprintf fndecl 0 25126 NULL
137180 +disable_so_sony_nc_kbd_backlight_timeout_show_fndecl_25134 sony_nc_kbd_backlight_timeout_show fndecl 0 25134 NULL
137181 +disable_so___hw_addr_create_ex_fndecl_25138 __hw_addr_create_ex fndecl 3 25138 NULL
137182 +disable_so_sdev_show_timeout_fndecl_25140 sdev_show_timeout fndecl 0 25140 NULL
137183 +disable_so_valleyview_rps_guar_freq_fndecl_25141 valleyview_rps_guar_freq fndecl 0 25141 NULL
137184 +disable_so_msg_addr_lo_vf_pf_event_data_25142 msg_addr_lo vf_pf_event_data 0 25142 NULL nohasharray
137185 +disable_so_hfreq___fb_timings_25142 hfreq __fb_timings 0 25142 &disable_so_msg_addr_lo_vf_pf_event_data_25142
137186 +disable_so_select_addr_2_qla83xx_minidump_entry_rdmux2_25145 select_addr_2 qla83xx_minidump_entry_rdmux2 0 25145 NULL
137187 +disable_so_ctrl_addr_palmas_regs_info_25149 ctrl_addr palmas_regs_info 0 25149 NULL
137188 +disable_so_gid_affs_tail_25153 gid affs_tail 0 25153 NULL
137189 +disable_so_recv_timeout_iscsi_conn_25159 recv_timeout iscsi_conn 0 25159 NULL
137190 +disable_so_decode_attr_lease_time_fndecl_25160 decode_attr_lease_time fndecl 0 25160 NULL
137191 +disable_so_log10times100_fndecl_25175 log10times100 fndecl 0-1 25175 NULL
137192 +disable_so_crypto_register_shashes_fndecl_25178 crypto_register_shashes fndecl 0 25178 NULL
137193 +disable_so_sh_cmt_clock_event_next_fndecl_25183 sh_cmt_clock_event_next fndecl 1 25183 NULL
137194 +disable_so_update_mctime_fndecl_25185 update_mctime fndecl 0 25185 NULL
137195 +disable_so_snd_hdspm_info_clock_source_fndecl_25189 snd_hdspm_info_clock_source fndecl 0 25189 NULL
137196 +disable_so_ds1390_read_time_fndecl_25191 ds1390_read_time fndecl 0 25191 NULL
137197 +disable_so_crypto_gcm_setkey_fndecl_25197 crypto_gcm_setkey fndecl 0-3 25197 NULL
137198 +disable_so_atomic_read_file_fndecl_25200 atomic_read_file fndecl 3-0 25200 NULL
137199 +disable_so_i_ctime_minix2_inode_25213 i_ctime minix2_inode 0 25213 NULL
137200 +disable_so_account_fndecl_25224 account fndecl 0-4-2 25224 NULL
137201 +disable_so_bestclock_fndecl_25226 bestclock fndecl 1 25226 NULL
137202 +disable_so_regcache_rbtree_insert_to_block_fndecl_25230 regcache_rbtree_insert_to_block fndecl 3-4-5-6 25230 NULL
137203 +disable_so_pentiumM_get_frequency_fndecl_25231 pentiumM_get_frequency fndecl 0 25231 NULL
137204 +disable_so_model_mceusb_dev_25234 model mceusb_dev 0 25234 NULL
137205 +disable_so_sk_rcvtimeo_sock_25235 sk_rcvtimeo sock 0 25235 NULL
137206 +disable_so_atomic_long_add_fndecl_25245 atomic_long_add fndecl 1 25245 NULL
137207 +disable_so_tw_rcv_wnd_tcp_timewait_sock_25247 tw_rcv_wnd tcp_timewait_sock 0 25247 NULL
137208 +disable_so_vga_switcheroo_runtime_resume_fndecl_25258 vga_switcheroo_runtime_resume fndecl 0 25258 NULL nohasharray
137209 +disable_so_swp_freq_calcuation_fndecl_25258 swp_freq_calcuation fndecl 0-10-8-9 25258 &disable_so_vga_switcheroo_runtime_resume_fndecl_25258
137210 +disable_so_sys_setresuid_fndecl_25263 sys_setresuid fndecl 0-1-2-3 25263 NULL
137211 +disable_so_va_gid_coda_vattr_25267 va_gid coda_vattr 0 25267 NULL
137212 +disable_so_adis16136_set_freq_fndecl_25268 adis16136_set_freq fndecl 0 25268 NULL
137213 +disable_so_sha1_ssse3_update_fndecl_25270 sha1_ssse3_update fndecl 3 25270 NULL
137214 +disable_so_data_addr_rx_ring_info_25277 data_addr rx_ring_info 0 25277 NULL
137215 +disable_so_in_n_analog_pcm_runtime_25285 in_n_analog pcm_runtime 0 25285 NULL
137216 +disable_so_active_ide_timing_25290 active ide_timing 0 25290 NULL
137217 +disable_so_max_img_ir_timing_range_25312 max img_ir_timing_range 0 25312 NULL
137218 +disable_so_sisusb_setidxreg_fndecl_25313 sisusb_setidxreg fndecl 0-2-3-4 25313 NULL
137219 +disable_so_rss_hash_cq_enet_rq_desc_25315 rss_hash cq_enet_rq_desc 0 25315 NULL
137220 +disable_so_sdhci_pltfm_clk_get_max_clock_fndecl_25319 sdhci_pltfm_clk_get_max_clock fndecl 0 25319 NULL
137221 +disable_so_be_cmd_mac_addr_query_fndecl_25342 be_cmd_mac_addr_query fndecl 0 25342 NULL
137222 +disable_so_st_atime_nsec_compat_stat_25348 st_atime_nsec compat_stat 0 25348 NULL
137223 +disable_so_blkcipher_walk_virt_fndecl_25350 blkcipher_walk_virt fndecl 0 25350 NULL
137224 +disable_so_ata_sff_interrupt_fndecl_25352 ata_sff_interrupt fndecl 1 25352 NULL
137225 +disable_so_vdisktime_cfq_group_25353 vdisktime cfq_group 0 25353 NULL
137226 +disable_so_sctp_apply_peer_addr_params_fndecl_25357 sctp_apply_peer_addr_params fndecl 0 25357 NULL
137227 +disable_so_hpi_sample_clock_get_local_rate_lock_fndecl_25364 hpi_sample_clock_get_local_rate_lock fndecl 1-0 25364 NULL
137228 +disable_so_sticks_snd_timer_25366 sticks snd_timer 0 25366 NULL
137229 +disable_so_segv_uid_gr_arg_25373 segv_uid gr_arg 0 25373 NULL
137230 +disable_so_signal_rate_plcp_signal_rate_lookup_25377 signal_rate plcp_signal_rate_lookup 0 25377 NULL
137231 +disable_so_timeout_jiffies_tifm_sd_25387 timeout_jiffies tifm_sd 0 25387 NULL
137232 +disable_so_fence_gpu_addr_kernel_queue_25394 fence_gpu_addr kernel_queue 0 25394 NULL
137233 +disable_so_pch_udc_enable_interrupts_fndecl_25405 pch_udc_enable_interrupts fndecl 2 25405 NULL
137234 +disable_so_addr_hi_eth_rx_sge_25407 addr_hi eth_rx_sge 0 25407 NULL
137235 +disable_so_flushtimeout_nfulnl_instance_25409 flushtimeout nfulnl_instance 0 25409 NULL
137236 +disable_so_ti12xx_untie_interrupts_fndecl_25411 ti12xx_untie_interrupts fndecl 2 25411 NULL
137237 +disable_so_dma_addr_t4_cq_25412 dma_addr t4_cq 0 25412 NULL
137238 +disable_so_task_list_pbl_addr_lo_fcoe_kwqe_init1_25414 task_list_pbl_addr_lo fcoe_kwqe_init1 0 25414 NULL
137239 +disable_so_conntrack_addrcmp_fndecl_25418 conntrack_addrcmp fndecl 4 25418 NULL
137240 +disable_so_datablock_addr_fndecl_25424 datablock_addr fndecl 0-2 25424 NULL
137241 +disable_so_intel_sdvo_create_preferred_input_timing_fndecl_25428 intel_sdvo_create_preferred_input_timing fndecl 3-4 25428 NULL
137242 +disable_so_return_address_stack_frame_ia32_25439 return_address stack_frame_ia32 0 25439 NULL
137243 +disable_so_tmds_chip_slave_addr_tmds_chip_information_25446 tmds_chip_slave_addr tmds_chip_information 0 25446 NULL
137244 +disable_so_releasepage_address_space_operations_25450 releasepage address_space_operations 2 25450 NULL
137245 +disable_so_sys_setgid_fndecl_25470 sys_setgid fndecl 0-1 25470 NULL nohasharray
137246 +disable_so_random_address_open_fndecl_25470 random_address_open fndecl 0 25470 &disable_so_sys_setgid_fndecl_25470
137247 +disable_so_creation_time_se_device_25474 creation_time se_device 0 25474 NULL
137248 +disable_so_addr_qla8xxx_minidump_entry_crb_25475 addr qla8xxx_minidump_entry_crb 0 25475 NULL
137249 +disable_so_wrmsr_safe_on_cpu_fndecl_25481 wrmsr_safe_on_cpu fndecl 0-1 25481 NULL
137250 +disable_so_htc_addr_ath6kl_mbox_info_25495 htc_addr ath6kl_mbox_info 0 25495 NULL
137251 +disable_so_crypto_shash_export_fndecl_25501 crypto_shash_export fndecl 0 25501 NULL
137252 +disable_so_pm_runtime_autosuspend_expiration_fndecl_25503 pm_runtime_autosuspend_expiration fndecl 0 25503 NULL
137253 +disable_so_fib_info_update_nh_saddr_fndecl_25504 fib_info_update_nh_saddr fndecl 0 25504 NULL
137254 +disable_so_ac_uid_taskstats_25506 ac_uid taskstats 0 25506 NULL
137255 +disable_so_bufaddr_epic_rx_desc_25507 bufaddr epic_rx_desc 0 25507 NULL
137256 +disable_so_process_tgid_id_proc_event_25512 process_tgid id_proc_event 0 25512 NULL
137257 +disable_so_si5351_msynth_params_address_fndecl_25517 si5351_msynth_params_address fndecl 0-1 25517 NULL
137258 +disable_so_btrfs_dev_replace_time_stopped_fndecl_25538 btrfs_dev_replace_time_stopped fndecl 0 25538 NULL
137259 +disable_so___irq_set_handler_fndecl_25547 __irq_set_handler fndecl 1 25547 NULL
137260 +disable_so_next_addr_ath_gen_timer_configuration_25559 next_addr ath_gen_timer_configuration 0 25559 NULL
137261 +disable_so_timeout_request_25561 timeout request 0 25561 NULL
137262 +disable_so_rx_bd_haddr_hi_bnx2_rx_bd_25562 rx_bd_haddr_hi bnx2_rx_bd 0 25562 NULL nohasharray
137263 +disable_so_jhash_1word_fndecl_25562 jhash_1word fndecl 0-1 25562 &disable_so_rx_bd_haddr_hi_bnx2_rx_bd_25562
137264 +disable_so_freq_ref_fll_factors_25565 freq_ref fll_factors 0 25565 NULL
137265 +disable_so_compat_sys_mq_timedreceive_fndecl_25566 compat_sys_mq_timedreceive fndecl 1-3 25566 NULL
137266 +disable_so_scl_falling_time_dw_i2c_dev_25576 scl_falling_time dw_i2c_dev 0 25576 NULL
137267 +disable_so_maj_flt_signal_struct_25583 maj_flt signal_struct 0 25583 NULL
137268 +disable_so_irq_set_chip_and_handler_name_fndecl_25596 irq_set_chip_and_handler_name fndecl 1 25596 NULL
137269 +disable_so_timeout_ms_ib_mad_send_buf_25607 timeout_ms ib_mad_send_buf 0 25607 NULL
137270 +disable_so_qs_itimelimit_fs_quota_statv_25612 qs_itimelimit fs_quota_statv 0 25612 NULL nohasharray
137271 +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
137272 +disable_so_o2hb_heartbeat_timeout_ms_o2net_handshake_25614 o2hb_heartbeat_timeout_ms o2net_handshake 0 25614 NULL
137273 +disable_so_sampling_time_acpi_power_meter_capabilities_25620 sampling_time acpi_power_meter_capabilities 0 25620 NULL
137274 +disable_so_C_SYSC_signalfd_fndecl_25641 C_SYSC_signalfd fndecl 0 25641 NULL
137275 +disable_so_dpp_page_addr_lo_ocrdma_alloc_pd_uresp_25645 dpp_page_addr_lo ocrdma_alloc_pd_uresp 0 25645 NULL
137276 +disable_so_memclock_pm2fb_par_25648 memclock pm2fb_par 0 25648 NULL
137277 +disable_so_hca_core_clock_mlx4_init_hca_param_25649 hca_core_clock mlx4_init_hca_param 0 25649 NULL
137278 +disable_so_hash_fndecl_25655 hash fndecl 0-2 25655 NULL
137279 +disable_so_get_scr_cfg_addr_fndecl_25659 get_scr_cfg_addr fndecl 0-2 25659 NULL
137280 +disable_so_brp_can_bittiming_25672 brp can_bittiming 0 25672 NULL
137281 +disable_so_hash_tcindex_data_25674 hash tcindex_data 0 25674 NULL
137282 +disable_so_store_pwm_auto_spinup_time_fndecl_25686 store_pwm_auto_spinup_time fndecl 0-4 25686 NULL nohasharray
137283 +disable_so_wm5100_runtime_resume_fndecl_25686 wm5100_runtime_resume fndecl 0 25686 &disable_so_store_pwm_auto_spinup_time_fndecl_25686
137284 +disable_so_cbc_aes_decrypt_fndecl_25690 cbc_aes_decrypt fndecl 0-4 25690 NULL
137285 +disable_so_find_vma_fndecl_25710 find_vma fndecl 2 25710 NULL
137286 +disable_so_set_register_interruptible_fndecl_25711 set_register_interruptible fndecl 0 25711 NULL
137287 +disable_so_last_beacon_timestamp_atmel_private_25714 last_beacon_timestamp atmel_private 0 25714 NULL
137288 +disable_so_print_uuid_item_fndecl_25720 print_uuid_item fndecl 2-3 25720 NULL nohasharray
137289 +disable_so_intel_pxfreq_fndecl_25720 intel_pxfreq fndecl 0-1 25720 &disable_so_print_uuid_item_fndecl_25720
137290 +disable_so___mlx4_ib_query_gid_fndecl_25733 __mlx4_ib_query_gid fndecl 0-2-3 25733 NULL
137291 +disable_so_crypto_pcbc_setkey_fndecl_25734 crypto_pcbc_setkey fndecl 0-3 25734 NULL
137292 +disable_so_iClockSource_uac_clock_source_descriptor_25741 iClockSource uac_clock_source_descriptor 0 25741 NULL
137293 +disable_so_madc_aic32x4_rate_divs_25746 madc aic32x4_rate_divs 0 25746 NULL nohasharray
137294 +disable_so_test_and_set_bit_le_fndecl_25746 test_and_set_bit_le fndecl 1 25746 &disable_so_madc_aic32x4_rate_divs_25746
137295 +disable_so_init_acpi_pm_clocksource_fndecl_25751 init_acpi_pm_clocksource fndecl 0 25751 NULL
137296 +disable_so_bit_width_io_addr_25761 bit_width io_addr 0 25761 NULL nohasharray
137297 +disable_so_shash_async_finup_fndecl_25761 shash_async_finup fndecl 0 25761 &disable_so_bit_width_io_addr_25761
137298 +disable_so_i_mtime_extra_ext4_inode_25766 i_mtime_extra ext4_inode 0 25766 NULL
137299 +disable_so_suid_ban_expires_user_struct_25778 suid_ban_expires user_struct 0 25778 NULL
137300 +disable_so_sys_timer_delete_fndecl_25781 sys_timer_delete fndecl 1 25781 NULL
137301 +disable_so_write16_b43_bus_dev_25800 write16 b43_bus_dev 3 25800 NULL
137302 +disable_so_pci_bus_clock_list_fndecl_25811 pci_bus_clock_list fndecl 0-1 25811 NULL
137303 +disable_so_pll_freq_adau_25818 pll_freq adau 0 25818 NULL
137304 +disable_so_kvm_get_lapic_tscdeadline_msr_fndecl_25821 kvm_get_lapic_tscdeadline_msr fndecl 0 25821 NULL
137305 +disable_so_power_off_longtime_mmc_ext_csd_25827 power_off_longtime mmc_ext_csd 0 25827 NULL
137306 +disable_so_mcryptd_hash_digest_enqueue_fndecl_25830 mcryptd_hash_digest_enqueue fndecl 0 25830 NULL
137307 +disable_so_bch_btree_node_get_fndecl_25837 bch_btree_node_get fndecl 4 25837 NULL
137308 +disable_so_sa_timeout_mmc_ext_csd_25842 sa_timeout mmc_ext_csd 0 25842 NULL
137309 +disable_so_rc5t583_rtc_set_time_fndecl_25844 rc5t583_rtc_set_time fndecl 0 25844 NULL
137310 +disable_so_pll2_ndiv_b_cnt_ad9523_platform_data_25849 pll2_ndiv_b_cnt ad9523_platform_data 0 25849 NULL
137311 +disable_so_xfs_btree_kill_iroot_fndecl_25851 xfs_btree_kill_iroot fndecl 0 25851 NULL
137312 +disable_so_freq_offset_xc4000_priv_25852 freq_offset xc4000_priv 0 25852 NULL
137313 +disable_so_orig_eax_user_regs_struct32_25853 orig_eax user_regs_struct32 0 25853 NULL
137314 +disable_so_i_mtime_ext4_inode_25857 i_mtime ext4_inode 0 25857 NULL nohasharray
137315 +disable_so_hash_ipportnet4_expire_fndecl_25857 hash_ipportnet4_expire fndecl 4 25857 &disable_so_i_mtime_ext4_inode_25857
137316 +disable_so_max_keysize_blkcipher_alg_25859 max_keysize blkcipher_alg 0 25859 NULL
137317 +disable_so__kstrtol_fndecl_25860 _kstrtol fndecl 0 25860 NULL nohasharray
137318 +disable_so_reqsize_crypto_aead_25860 reqsize crypto_aead 0 25860 &disable_so__kstrtol_fndecl_25860
137319 +disable_so_group_exit_code_signal_struct_25863 group_exit_code signal_struct 0 25863 NULL
137320 +disable_so_i2c_address_qt1010_config_25866 i2c_address qt1010_config 0 25866 NULL
137321 +disable_so_musb_bulk_nak_timeout_fndecl_25876 musb_bulk_nak_timeout fndecl 3 25876 NULL
137322 +disable_so_rangehigh_v4l2_hw_freq_seek_25892 rangehigh v4l2_hw_freq_seek 0 25892 NULL
137323 +disable_so_xferaddr_mbox_out_25904 xferaddr mbox_out 0 25904 NULL
137324 +disable_so_address_mode_snd_emu10k1_25917 address_mode snd_emu10k1 0 25917 NULL
137325 +disable_so_ac_uid_acct_v3_25928 ac_uid acct_v3 0 25928 NULL
137326 +disable_so_show_cpumask_fndecl_25949 show_cpumask fndecl 0 25949 NULL
137327 +disable_so_x86_max_cores_cpuinfo_x86_25950 x86_max_cores cpuinfo_x86 0 25950 NULL
137328 +disable_so_nr_mtrr_spare_reg_vardecl_cleanup_c_25954 nr_mtrr_spare_reg vardecl_cleanup.c 0 25954 NULL
137329 +disable_so_fib_info_hash_move_fndecl_25959 fib_info_hash_move fndecl 3 25959 NULL
137330 +disable_so_rst_timer_val_intel_dsi_25967 rst_timer_val intel_dsi 0 25967 NULL
137331 +disable_so_backlog_wait_time_audit_status_25971 backlog_wait_time audit_status 0 25971 NULL
137332 +disable_so_gid_h_misc_25975 gid h_misc 0 25975 NULL
137333 +disable_so_wm8962_runtime_resume_fndecl_25981 wm8962_runtime_resume fndecl 0 25981 NULL
137334 +disable_so_ip_vs_rs_hashkey_fndecl_25992 ip_vs_rs_hashkey fndecl 1 25992 NULL
137335 +disable_so_sbp_tpg_attrib_store_max_reconnect_timeout_fndecl_25997 sbp_tpg_attrib_store_max_reconnect_timeout fndecl 0-3 25997 NULL
137336 +disable_so_hpwdt_time_left_fndecl_25998 hpwdt_time_left fndecl 0 25998 NULL
137337 +disable_so_mtrr_calc_range_state_fndecl_26002 mtrr_calc_range_state fndecl 3-4-2-1 26002 NULL
137338 +disable_so_tipc_addr_scope_fndecl_26006 tipc_addr_scope fndecl 0 26006 NULL
137339 +disable_so_rdmsr_safe_regs_fndecl_26012 rdmsr_safe_regs fndecl 0 26012 NULL
137340 +disable_so_kvm_inject_realmode_interrupt_fndecl_26018 kvm_inject_realmode_interrupt fndecl 2 26018 NULL
137341 +disable_so_addr_ethoc_bd_26021 addr ethoc_bd 0 26021 NULL
137342 +disable_so_marvell_ack_interrupt_fndecl_26036 marvell_ack_interrupt fndecl 0 26036 NULL
137343 +disable_so_link_check_timeout_igb_adapter_26037 link_check_timeout igb_adapter 0 26037 NULL nohasharray
137344 +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
137345 +disable_so_t2_ptr_hash_tbl_addr_lo_fcoe_kwqe_init2_26039 t2_ptr_hash_tbl_addr_lo fcoe_kwqe_init2 0 26039 NULL
137346 +disable_so_interrupt_out_interval_ld_usb_26046 interrupt_out_interval ld_usb 0 26046 NULL
137347 +disable_so_bs_gid_xfs_bstat_26053 bs_gid xfs_bstat 0 26053 NULL
137348 +disable_so_wm8900_set_dai_clkdiv_fndecl_26074 wm8900_set_dai_clkdiv fndecl 3 26074 NULL
137349 +disable_so_setkey_blkcipher_alg_26078 setkey blkcipher_alg 3 26078 NULL
137350 +disable_so_ixgbevf_init_interrupt_scheme_fndecl_26085 ixgbevf_init_interrupt_scheme fndecl 0 26085 NULL
137351 +disable_so___sw_hweight32_fndecl_26088 __sw_hweight32 fndecl 1-0 26088 NULL nohasharray
137352 +disable_so_addr_hi_eth_tx_bd_26088 addr_hi eth_tx_bd 0 26088 &disable_so___sw_hweight32_fndecl_26088 nohasharray
137353 +disable_so_hashval2_1_rx_pkt_hdr1_26088 hashval2_1 rx_pkt_hdr1 0 26088 &disable_so_addr_hi_eth_tx_bd_26088
137354 +disable_so_debounce_time_snd_soc_jack_gpio_26097 debounce_time snd_soc_jack_gpio 0 26097 NULL
137355 +disable_so_ath6kl_wmi_pstream_timeout_event_rx_fndecl_26100 ath6kl_wmi_pstream_timeout_event_rx fndecl 3 26100 NULL
137356 +disable_so_fl0addr_fw_iq_cmd_26103 fl0addr fw_iq_cmd 0 26103 NULL
137357 +disable_so___acpi_os_prepare_extended_sleep_vardecl_osl_c_26106 __acpi_os_prepare_extended_sleep vardecl_osl.c 2 26106 NULL
137358 +disable_so_atomic_check_drm_mode_config_funcs_26109 atomic_check drm_mode_config_funcs 0 26109 NULL
137359 +disable_so_st_mtime_stat_26114 st_mtime stat 0 26114 NULL
137360 +disable_so_cx23885_set_freq_fndecl_26129 cx23885_set_freq fndecl 0 26129 NULL
137361 +disable_so_img_ir_timings_convert_fndecl_26132 img_ir_timings_convert fndecl 3-4 26132 NULL
137362 +disable_so_generic_update_time_fndecl_26133 generic_update_time fndecl 0 26133 NULL
137363 +disable_so_cpu_to_virtio32_fndecl_26151 cpu_to_virtio32 fndecl 0-2 26151 NULL
137364 +disable_so_dp_dma_addr_mic_device_26153 dp_dma_addr mic_device 0 26153 NULL
137365 +disable_so_mask_clocksource_26154 mask clocksource 0 26154 NULL
137366 +disable_so_bit_rate_hpi_msg_format_26167 bit_rate hpi_msg_format 0 26167 NULL
137367 +disable_so_set_bitmap_file_fndecl_26171 set_bitmap_file fndecl 0-2 26171 NULL
137368 +disable_so_show_fast_charge_timer_fndecl_26172 show_fast_charge_timer fndecl 0 26172 NULL
137369 +disable_so_rt_spc_timelimit_qc_type_state_26186 rt_spc_timelimit qc_type_state 0 26186 NULL
137370 +disable_so_HYPERVISOR_physdev_op_fndecl_26192 HYPERVISOR_physdev_op fndecl 0 26192 NULL
137371 +disable_so_sci_br_interrupt_fndecl_26202 sci_br_interrupt fndecl 1 26202 NULL
137372 +disable_so_bitmap_ipmac_do_list_fndecl_26203 bitmap_ipmac_do_list fndecl 4 26203 NULL
137373 +disable_so_kxcjk1013_setup_any_motion_interrupt_fndecl_26214 kxcjk1013_setup_any_motion_interrupt fndecl 0 26214 NULL
137374 +disable_so_io_request_phys_addr_megasas_cmd_fusion_26240 io_request_phys_addr megasas_cmd_fusion 0 26240 NULL
137375 +disable_so_compute_unit_id_cpuinfo_x86_26241 compute_unit_id cpuinfo_x86 0 26241 NULL
137376 +disable_so_dynpm_action_timeout_radeon_pm_26257 dynpm_action_timeout radeon_pm 0 26257 NULL
137377 +disable_so_lookup_address_in_pgd_fndecl_26268 lookup_address_in_pgd fndecl 2 26268 NULL
137378 +disable_so_addr_prism2_download_data_area_26275 addr prism2_download_data_area 0 26275 NULL
137379 +disable_so_channels_snd_pcm_runtime_26297 channels snd_pcm_runtime 0 26297 NULL
137380 +disable_so_iamthif_timer_mei_device_26298 iamthif_timer mei_device 0 26298 NULL nohasharray
137381 +disable_so_simple_strtol_fndecl_26298 simple_strtol fndecl 0 26298 &disable_so_iamthif_timer_mei_device_26298
137382 +disable_so_rose_set_mac_address_fndecl_26302 rose_set_mac_address fndecl 0 26302 NULL
137383 +disable_so_sq_addr_lo_fcoe_kwqe_conn_offload1_26303 sq_addr_lo fcoe_kwqe_conn_offload1 0 26303 NULL
137384 +disable_so_m88ds3103_sleep_fndecl_26315 m88ds3103_sleep fndecl 0 26315 NULL
137385 +disable_so_ping_timeo_net_conf_26316 ping_timeo net_conf 0 26316 NULL nohasharray
137386 +disable_so_parent_btrfs_delayed_tree_ref_26316 parent btrfs_delayed_tree_ref 0 26316 &disable_so_ping_timeo_net_conf_26316
137387 +disable_so_esd_timeout_ms_tsc2005_platform_data_26333 esd_timeout_ms tsc2005_platform_data 0 26333 NULL
137388 +disable_so_addr_change_member_26339 addr change_member 0 26339 NULL
137389 +disable_so_mvs_show_interrupt_coalescing_fndecl_26346 mvs_show_interrupt_coalescing fndecl 0 26346 NULL
137390 +disable_so_hashkey_raw_ip_vs_pe_26355 hashkey_raw ip_vs_pe 0 26355 NULL
137391 +disable_so_skl_compute_linetime_wm_fndecl_26358 skl_compute_linetime_wm fndecl 0 26358 NULL
137392 +disable_so_radeon_pmops_runtime_resume_fndecl_26363 radeon_pmops_runtime_resume fndecl 0 26363 NULL
137393 +disable_so_op_remote_addr_rm_rdma_op_26364 op_remote_addr rm_rdma_op 0 26364 NULL
137394 +disable_so_yura_hash_fndecl_26368 yura_hash fndecl 2 26368 NULL
137395 +disable_so_blocksize_qce_ablkcipher_def_26370 blocksize qce_ablkcipher_def 0 26370 NULL
137396 +disable_so_phys_efi_set_virtual_address_map_fndecl_26380 phys_efi_set_virtual_address_map fndecl 1-2 26380 NULL
137397 +disable_so_sfi_lapic_addr_vardecl_sfi_c_26384 sfi_lapic_addr vardecl_sfi.c 0 26384 NULL
137398 +disable_so_ebp_user_regs_struct32_26386 ebp user_regs_struct32 0 26386 NULL
137399 +disable_so_total_time_enabled_perf_event_26387 total_time_enabled perf_event 0 26387 NULL nohasharray
137400 +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
137401 +disable_so_write32_b43_bus_dev_26402 write32 b43_bus_dev 3 26402 NULL
137402 +disable_so_seq_default_timer_device_vardecl_26404 seq_default_timer_device vardecl 0 26404 NULL
137403 +disable_so_address_xfs_dir2_leaf_entry_26411 address xfs_dir2_leaf_entry 0 26411 NULL
137404 +disable_so_regmap_irq_get_virq_fndecl_26413 regmap_irq_get_virq fndecl 2-0 26413 NULL
137405 +disable_so_msr_ia32_feature_control_nested_vmx_26415 msr_ia32_feature_control nested_vmx 0 26415 NULL
137406 +disable_so_last_load_cpufreq_cooling_device_26418 last_load cpufreq_cooling_device 0 26418 NULL
137407 +disable_so_blank_time_dce8_wm_params_26421 blank_time dce8_wm_params 0 26421 NULL
137408 +disable_so_start_time_rsxx_bio_meta_26424 start_time rsxx_bio_meta 0 26424 NULL
137409 +disable_so_ima_calc_file_hash_atfm_fndecl_26437 ima_calc_file_hash_atfm fndecl 0 26437 NULL
137410 +disable_so_range_to_mtrr_fndecl_26447 range_to_mtrr fndecl 2-3 26447 NULL
137411 +disable_so_sm_addr_ns_dev_26449 sm_addr ns_dev 0 26449 NULL
137412 +disable_so_uartlite_outle32_fndecl_26455 uartlite_outle32 fndecl 1 26455 NULL
137413 +disable_so___arch_hweight64_fndecl_26456 __arch_hweight64 fndecl 0-1 26456 NULL nohasharray
137414 +disable_so_rsa_parse_key_fndecl_26456 rsa_parse_key fndecl 3 26456 &disable_so___arch_hweight64_fndecl_26456
137415 +disable_so_data_addr_ide_io_ports_26461 data_addr ide_io_ports 0 26461 NULL
137416 +disable_so_mce_adjust_timer_vardecl_mce_c_26462 mce_adjust_timer vardecl_mce.c 0-1 26462 NULL
137417 +disable_so_tv_sec_ceph_timespec_26463 tv_sec ceph_timespec 0 26463 NULL
137418 +disable_so_val_v4l2_dbg_register_26470 val v4l2_dbg_register 0 26470 NULL
137419 +disable_so_jiffies_read_fndecl_26480 jiffies_read fndecl 0 26480 NULL
137420 +disable_so_compat_sys_clock_settime_fndecl_26491 compat_sys_clock_settime fndecl 1 26491 NULL
137421 +disable_so_i2c_addr_tda827x_priv_26495 i2c_addr tda827x_priv 0 26495 NULL
137422 +disable_so_snd_trident_interrupt_fndecl_26498 snd_trident_interrupt fndecl 1 26498 NULL
137423 +disable_so_mce_flush_rx_buffer_fndecl_26515 mce_flush_rx_buffer fndecl 2 26515 NULL
137424 +disable_so_ufshcd_runtime_suspend_fndecl_26519 ufshcd_runtime_suspend fndecl 0 26519 NULL
137425 +disable_so___down_timeout_fndecl_26530 __down_timeout fndecl 2-0 26530 NULL nohasharray
137426 +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
137427 +disable_so_ppll_ref_div_radeon_regs_26531 ppll_ref_div radeon_regs 0 26531 NULL
137428 +disable_so_fs_overflowuid_vardecl_26541 fs_overflowuid vardecl 0 26541 NULL
137429 +disable_so_ceph_str_hash_rjenkins_fndecl_26542 ceph_str_hash_rjenkins fndecl 0-2 26542 NULL
137430 +disable_so_threshold_low_nes_hw_tune_timer_26544 threshold_low nes_hw_tune_timer 0 26544 NULL
137431 +disable_so_addressPXD_fndecl_26546 addressPXD fndecl 0 26546 NULL
137432 +disable_so_get_cpu_idle_time_us_fndecl_26547 get_cpu_idle_time_us fndecl 0-1 26547 NULL
137433 +disable_so_x86_pmu_event_addr_fndecl_26551 x86_pmu_event_addr fndecl 0-1 26551 NULL
137434 +disable_so_da9055_rtc_set_time_fndecl_26553 da9055_rtc_set_time fndecl 0 26553 NULL nohasharray
137435 +disable_so_address_hi_ips_enh_sglist_26553 address_hi ips_enh_sglist 0 26553 &disable_so_da9055_rtc_set_time_fndecl_26553
137436 +disable_so_cpufreq_quick_get_fndecl_26559 cpufreq_quick_get fndecl 0-1 26559 NULL nohasharray
137437 +disable_so_ieee80211_aes_gcm_encrypt_fndecl_26559 ieee80211_aes_gcm_encrypt fndecl 5 26559 &disable_so_cpufreq_quick_get_fndecl_26559
137438 +disable_so_bug17190_timer_qt202x_phy_data_26561 bug17190_timer qt202x_phy_data 0 26561 NULL nohasharray
137439 +disable_so_efx_farch_filter_hash_fndecl_26561 efx_farch_filter_hash fndecl 0-1 26561 &disable_so_bug17190_timer_qt202x_phy_data_26561
137440 +disable_so_timestamp_beacon_format_26566 timestamp beacon_format 0 26566 NULL
137441 +disable_so_postscale__pll_div_26568 postscale _pll_div 0 26568 NULL
137442 +disable_so_next_nat_addr_fndecl_26576 next_nat_addr fndecl 0-2 26576 NULL
137443 +disable_so_shdwreg_addr_hi_addr_ctrl_blk_26592 shdwreg_addr_hi addr_ctrl_blk 0 26592 NULL
137444 +disable_so_xfs_btree_insrec_fndecl_26593 xfs_btree_insrec fndecl 0 26593 NULL
137445 +disable_so_sci_tx_interrupt_fndecl_26595 sci_tx_interrupt fndecl 1 26595 NULL nohasharray
137446 +disable_so_add_delayed_ref_head_fndecl_26595 add_delayed_ref_head fndecl 4-5 26595 &disable_so_sci_tx_interrupt_fndecl_26595
137447 +disable_so_tegra_wdt_set_timeout_fndecl_26597 tegra_wdt_set_timeout fndecl 2 26597 NULL
137448 +disable_so_base_addr_dmi_ipmi_data_26600 base_addr dmi_ipmi_data 0 26600 NULL nohasharray
137449 +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
137450 +disable_so_pll_post_div_radeon_crtc_26608 pll_post_div radeon_crtc 0 26608 NULL
137451 +disable_so_sdio_enable_4bit_bus_fndecl_26617 sdio_enable_4bit_bus fndecl 0 26617 NULL
137452 +disable_so_jiffies_to_usecs_fndecl_26625 jiffies_to_usecs fndecl 0-1 26625 NULL
137453 +disable_so_i_mtime_nsec_ocfs2_dinode_26627 i_mtime_nsec ocfs2_dinode 0 26627 NULL
137454 +disable_so_set_var_mtrr_fndecl_26628 set_var_mtrr fndecl 2-3 26628 NULL
137455 +disable_so_usec_2_cycles_fndecl_26641 usec_2_cycles fndecl 0-1 26641 NULL
137456 +disable_so_inq_data_baddr_pmcraid_instance_26646 inq_data_baddr pmcraid_instance 0 26646 NULL
137457 +disable_so_re_timeout_vhci_hcd_26649 re_timeout vhci_hcd 0 26649 NULL
137458 +disable_so_timer_buf_periods_pcxhr_stream_26650 timer_buf_periods pcxhr_stream 0 26650 NULL
137459 +disable_so_lease_break_time_vardecl_26659 lease_break_time vardecl 0 26659 NULL
137460 +disable_so_first_frag_time_libipw_frag_entry_26673 first_frag_time libipw_frag_entry 0 26673 NULL
137461 +disable_so_send_timer_event_fndecl_26675 send_timer_event fndecl 0 26675 NULL
137462 +disable_so_timestamp_lo_mlx4_ts_cqe_26678 timestamp_lo mlx4_ts_cqe 0 26678 NULL nohasharray
137463 +disable_so_twl_rtc_read_time_fndecl_26678 twl_rtc_read_time fndecl 0 26678 &disable_so_timestamp_lo_mlx4_ts_cqe_26678
137464 +disable_so_prism54_get_freq_fndecl_26679 prism54_get_freq fndecl 0 26679 NULL
137465 +disable_so_signal_quality_wireless_stats_26683 signal_quality wireless_stats 0 26683 NULL
137466 +disable_so_serial8250_request_rsa_resource_fndecl_26695 serial8250_request_rsa_resource fndecl 0 26695 NULL
137467 +disable_so_crypto_ahash_init_fndecl_26697 crypto_ahash_init fndecl 0 26697 NULL
137468 +disable_so_i8xx_clock_fndecl_26699 i8xx_clock fndecl 1 26699 NULL
137469 +disable_so_crypto_alg_extsize_fndecl_26720 crypto_alg_extsize fndecl 0 26720 NULL
137470 +disable_so_get_iowait_time_fndecl_26723 get_iowait_time fndecl 1-0 26723 NULL
137471 +disable_so_wl1271_acx_init_rx_interrupt_fndecl_26727 wl1271_acx_init_rx_interrupt fndecl 0 26727 NULL
137472 +disable_so_check_intr_schedule_fndecl_26728 check_intr_schedule fndecl 2-3 26728 NULL
137473 +disable_so_cobalt_s_dv_timings_fndecl_26730 cobalt_s_dv_timings fndecl 0 26730 NULL
137474 +disable_so_resolution_snd_timer_instance_26747 resolution snd_timer_instance 0 26747 NULL
137475 +disable_so_gf100_vm_addr_fndecl_26753 gf100_vm_addr fndecl 0-2-3-4 26753 NULL
137476 +disable_so_nilfs_btree_convert_and_insert_fndecl_26755 nilfs_btree_convert_and_insert fndecl 0-2-6 26755 NULL
137477 +disable_so_xlog_find_verify_cycle_fndecl_26760 xlog_find_verify_cycle fndecl 0-2-3 26760 NULL
137478 +disable_so_base_address_kvm_lapic_26767 base_address kvm_lapic 0 26767 NULL
137479 +disable_so_unmap_page_dma_map_ops_26774 unmap_page dma_map_ops 2-3 26774 NULL nohasharray
137480 +disable_so_modcode_stv0900_signal_info_26774 modcode stv0900_signal_info 0 26774 &disable_so_unmap_page_dma_map_ops_26774
137481 +disable_so_mthca_cmd_wait_fndecl_26776 mthca_cmd_wait fndecl 0-2 26776 NULL nohasharray
137482 +disable_so_tun2_maddress_stv0900_init_params_26776 tun2_maddress stv0900_init_params 0 26776 &disable_so_mthca_cmd_wait_fndecl_26776
137483 +disable_so_simple_sleep_fndecl_26802 simple_sleep fndecl 0 26802 NULL
137484 +disable_so_tv_sec_timestruc_t_26805 tv_sec timestruc_t 0 26805 NULL
137485 +disable_so_get_vblank_timestamp_drm_driver_26807 get_vblank_timestamp drm_driver 2 26807 NULL
137486 +disable_so_dsbr100_setfreq_fndecl_26808 dsbr100_setfreq fndecl 0-2 26808 NULL
137487 +disable_so_base_addr_unaligned_vnic_dev_ring_26813 base_addr_unaligned vnic_dev_ring 0 26813 NULL
137488 +disable_so_addr_ib_mw_bind_info_26826 addr ib_mw_bind_info 0 26826 NULL
137489 +disable_so_cpuidle_add_interface_fndecl_26838 cpuidle_add_interface fndecl 0 26838 NULL nohasharray
137490 +disable_so_addr4_resolve_fndecl_26838 addr4_resolve fndecl 0 26838 &disable_so_cpuidle_add_interface_fndecl_26838
137491 +disable_so_rdmsrl_safe_on_cpu_fndecl_26843 rdmsrl_safe_on_cpu fndecl 0-1 26843 NULL
137492 +disable_so_random_read_fndecl_26852 random_read fndecl 0-3 26852 NULL
137493 +disable_so_reachable_time_ra_msg_26853 reachable_time ra_msg 0 26853 NULL
137494 +disable_so_mutex_lock_interruptible_nested_fndecl_26858 mutex_lock_interruptible_nested fndecl 0 26858 NULL
137495 +disable_so_erase_time_max_flchip_26863 erase_time_max flchip 0 26863 NULL
137496 +disable_so_cpufreq_frequency_table_get_index_fndecl_26865 cpufreq_frequency_table_get_index fndecl 2 26865 NULL
137497 +disable_so_efficient_freq_intel_gen6_power_mgmt_26867 efficient_freq intel_gen6_power_mgmt 0 26867 NULL
137498 +disable_so_sysctl_sched_rt_runtime_vardecl_26872 sysctl_sched_rt_runtime vardecl 0 26872 NULL
137499 +disable_so_time_ncp_cache_head_26879 time ncp_cache_head 0 26879 NULL
137500 +disable_so_qdisc_class_hash_free_fndecl_26882 qdisc_class_hash_free fndecl 2 26882 NULL
137501 +disable_so_cpu_cpuidle_device_26895 cpu cpuidle_device 0 26895 NULL
137502 +disable_so_mod_phy_reg_fndecl_26899 mod_phy_reg fndecl 2-3-4 26899 NULL
137503 +disable_so_vb2_dma_contig_plane_dma_addr_fndecl_26900 vb2_dma_contig_plane_dma_addr fndecl 0 26900 NULL
137504 +disable_so_btree_split_beneath_fndecl_26901 btree_split_beneath fndecl 0 26901 NULL
137505 +disable_so_timestamp_desc_tbl_t_26905 timestamp desc_tbl_t 0 26905 NULL
137506 +disable_so_addr_bit_set_fndecl_26910 addr_bit_set fndecl 0-2 26910 NULL nohasharray
137507 +disable_so_snd_soc_write_fndecl_26910 snd_soc_write fndecl 0-2-3 26910 &disable_so_addr_bit_set_fndecl_26910 nohasharray
137508 +disable_so_timing_legacy_data_26910 timing legacy_data 0 26910 &disable_so_snd_soc_write_fndecl_26910
137509 +disable_so_nsleep_k_clock_26913 nsleep k_clock 1 26913 NULL
137510 +disable_so_sys_stime_fndecl_26915 sys_stime fndecl 0 26915 NULL
137511 +disable_so_sjw_max_can_bittiming_const_26917 sjw_max can_bittiming_const 0 26917 NULL nohasharray
137512 +disable_so_cbc_aes_encrypt_fndecl_26917 cbc_aes_encrypt fndecl 0-4 26917 &disable_so_sjw_max_can_bittiming_const_26917
137513 +disable_so_get_debugctlmsr_fndecl_26918 get_debugctlmsr fndecl 0 26918 NULL
137514 +disable_so_xfs_btree_delrec_fndecl_26919 xfs_btree_delrec fndecl 0 26919 NULL
137515 +disable_so_hr222_sub_set_clock_fndecl_26925 hr222_sub_set_clock fndecl 2-0 26925 NULL
137516 +disable_so_dd_desc_paddr_ath_descdma_26927 dd_desc_paddr ath_descdma 0 26927 NULL
137517 +disable_so_shift_clock_event_device_26934 shift clock_event_device 0 26934 NULL
137518 +disable_so_rx_bseq_addr_bnx2_rx_ring_info_26936 rx_bseq_addr bnx2_rx_ring_info 0 26936 NULL
137519 +disable_so_brcms_c_calc_ba_time_fndecl_26948 brcms_c_calc_ba_time fndecl 0-2 26948 NULL
137520 +disable_so_rcv_buffer_time_stamp_lpfc_vport_26952 rcv_buffer_time_stamp lpfc_vport 0 26952 NULL
137521 +disable_so_min_post_div_radeon_pll_26958 min_post_div radeon_pll 0 26958 NULL
137522 +disable_so_mcryptd_hash_finup_enqueue_fndecl_26959 mcryptd_hash_finup_enqueue fndecl 0 26959 NULL
137523 +disable_so_ip_TransportAddress_ipAddress_26969 ip TransportAddress_ipAddress 0 26969 NULL
137524 +disable_so_addr_fritzcard_26973 addr fritzcard 0 26973 NULL nohasharray
137525 +disable_so_ata_read_native_max_address_fndecl_26973 ata_read_native_max_address fndecl 0 26973 &disable_so_addr_fritzcard_26973
137526 +disable_so_ktime_get_real_seconds_fndecl_26974 ktime_get_real_seconds fndecl 0 26974 NULL nohasharray
137527 +disable_so_i_crtime_extra_ext4_inode_26974 i_crtime_extra ext4_inode 0 26974 &disable_so_ktime_get_real_seconds_fndecl_26974
137528 +disable_so_kern_addr_valid_fndecl_26978 kern_addr_valid fndecl 1 26978 NULL
137529 +disable_so_rtimer_val_vxge_hw_tim_intr_config_26991 rtimer_val vxge_hw_tim_intr_config 0 26991 NULL
137530 +disable_so_timestamp_agere_ext_scan_info_26993 timestamp agere_ext_scan_info 0 26993 NULL
137531 +disable_so_ps_ring_physaddr_rx_ring_26997 ps_ring_physaddr rx_ring 0 26997 NULL
137532 +disable_so_set_bit_in_list_bitmap_fndecl_26998 set_bit_in_list_bitmap fndecl 2 26998 NULL
137533 +disable_so_gid_index_mlx4_eth_av_27005 gid_index mlx4_eth_av 0 27005 NULL
137534 +disable_so_sender_euid_binder_transaction_data_27019 sender_euid binder_transaction_data 0 27019 NULL
137535 +disable_so_sctp_setsockopt_peer_primary_addr_fndecl_27027 sctp_setsockopt_peer_primary_addr fndecl 3-0 27027 NULL
137536 +disable_so_sysctl_x25_ack_holdback_timeout_vardecl_27031 sysctl_x25_ack_holdback_timeout vardecl 0 27031 NULL
137537 +disable_so_blkcipher_next_copy_fndecl_27033 blkcipher_next_copy fndecl 0 27033 NULL
137538 +disable_so_cg_spll_func_cntl_4_si_clock_registers_27036 cg_spll_func_cntl_4 si_clock_registers 0 27036 NULL
137539 +disable_so_mthca_buddy_alloc_fndecl_27037 mthca_buddy_alloc fndecl 2-0 27037 NULL
137540 +disable_so_seq_tcp_skb_cb_27054 seq tcp_skb_cb 0 27054 NULL
137541 +disable_so_s_bitmap_maxbytes_ext4_sb_info_27055 s_bitmap_maxbytes ext4_sb_info 0 27055 NULL
137542 +disable_so_addr_off_bfa_fru_s_27061 addr_off bfa_fru_s 0 27061 NULL
137543 +disable_so_dataserver_timeo_vardecl_filelayoutdev_c_27062 dataserver_timeo vardecl_filelayoutdev.c 0 27062 NULL
137544 +disable_so_demod_address_stv0900_config_27065 demod_address stv0900_config 0 27065 NULL
137545 +disable_so_kvm_apic_match_logical_addr_fndecl_27077 kvm_apic_match_logical_addr fndecl 2 27077 NULL
137546 +disable_so_expires_cpu_itimer_27081 expires cpu_itimer 0 27081 NULL nohasharray
137547 +disable_so_request_any_context_irq_fndecl_27081 request_any_context_irq fndecl 0-1 27081 &disable_so_expires_cpu_itimer_27081
137548 +disable_so_timeout_vardecl_kempld_wdt_c_27085 timeout vardecl_kempld_wdt.c 0 27085 NULL
137549 +disable_so_buffer_addr_rx_free_desc_27090 buffer_addr rx_free_desc 0 27090 NULL
137550 +disable_so_vx_set_clock_fndecl_27093 vx_set_clock fndecl 2 27093 NULL
137551 +disable_so_br_set_forward_delay_fndecl_27097 br_set_forward_delay fndecl 0 27097 NULL
137552 +disable_so_hash_net4_expire_fndecl_27108 hash_net4_expire fndecl 4 27108 NULL
137553 +disable_so_stv0900_get_freq_auto_fndecl_27111 stv0900_get_freq_auto fndecl 0 27111 NULL
137554 +disable_so_wait_for_common_fndecl_27112 wait_for_common fndecl 3 27112 NULL
137555 +disable_so_nfs4_schedule_migration_recovery_fndecl_27114 nfs4_schedule_migration_recovery fndecl 0 27114 NULL
137556 +disable_so_d_rt_spc_timer_qc_dqblk_27117 d_rt_spc_timer qc_dqblk 0 27117 NULL
137557 +disable_so_btree_insert64_fndecl_27118 btree_insert64 fndecl 2-4 27118 NULL
137558 +disable_so_addrconf_mod_dad_work_fndecl_27128 addrconf_mod_dad_work fndecl 2 27128 NULL
137559 +disable_so_coalescing_timeo_bna_rx_config_27130 coalescing_timeo bna_rx_config 0 27130 NULL nohasharray
137560 +disable_so_addr_page_to_node_27130 addr page_to_node 0 27130 &disable_so_coalescing_timeo_bna_rx_config_27130
137561 +disable_so_st_atime_nsec_p9_stat_dotl_27131 st_atime_nsec p9_stat_dotl 0 27131 NULL
137562 +disable_so_myri10ge_intr_coal_delay_vardecl_myri10ge_c_27141 myri10ge_intr_coal_delay vardecl_myri10ge.c 0 27141 NULL
137563 +disable_so_hash_shift_deflate_state_27146 hash_shift deflate_state 0 27146 NULL
137564 +disable_so_palmas_rtc_read_time_fndecl_27149 palmas_rtc_read_time fndecl 0 27149 NULL
137565 +disable_so___atomic_add_ifless_fndecl_27155 __atomic_add_ifless fndecl 3 27155 NULL
137566 +disable_so_iscsi_conn_get_addr_param_fndecl_27170 iscsi_conn_get_addr_param fndecl 0 27170 NULL
137567 +disable_so___clocksource_update_freq_hz_fndecl_27171 __clocksource_update_freq_hz fndecl 2 27171 NULL
137568 +disable_so_id_sst_module_runtime_27177 id sst_module_runtime 0 27177 NULL
137569 +disable_so_crypto_xcbc_digest_setkey_fndecl_27185 crypto_xcbc_digest_setkey fndecl 0-3 27185 NULL
137570 +disable_so_enic_set_mac_addr_fndecl_27188 enic_set_mac_addr fndecl 0 27188 NULL
137571 +disable_so_expires_timer_list_27202 expires timer_list 0 27202 NULL
137572 +disable_so_compute_subtree_last_fndecl_27204 compute_subtree_last fndecl 0 27204 NULL
137573 +disable_so_qla4_82xx_decode_crb_addr_fndecl_27209 qla4_82xx_decode_crb_addr fndecl 0-1 27209 NULL
137574 +disable_so_debugtimer_vardecl_floppy_c_27217 debugtimer vardecl_floppy.c 0 27217 NULL
137575 +disable_so_time_offset_perf_event_mmap_page_27223 time_offset perf_event_mmap_page 0 27223 NULL
137576 +disable_so___ufshcd_setup_clocks_fndecl_27227 __ufshcd_setup_clocks fndecl 0 27227 NULL
137577 +disable_so_ccallback_snd_timer_instance_27233 ccallback snd_timer_instance 4 27233 NULL
137578 +disable_so_cpufreq_p4_get_fndecl_27237 cpufreq_p4_get fndecl 1 27237 NULL
137579 +disable_so_bd_phy_addr_wcn36xx_dxe_ctl_27253 bd_phy_addr wcn36xx_dxe_ctl 0 27253 NULL
137580 +disable_so___xfrm_dst_hash_fndecl_27263 __xfrm_dst_hash fndecl 0-3-4-5 27263 NULL
137581 +disable_so_mcp795_read_time_fndecl_27267 mcp795_read_time fndecl 0 27267 NULL
137582 +disable_so_base_mtrr_sentry_27271 base mtrr_sentry 0 27271 NULL
137583 +disable_so_proc_do_large_bitmap_fndecl_27272 proc_do_large_bitmap fndecl 0 27272 NULL
137584 +disable_so_stv0367cab_get_adc_freq_fndecl_27274 stv0367cab_get_adc_freq fndecl 0-2 27274 NULL
137585 +disable_so_gpadc_page_addr_pm80x_subchip_27284 gpadc_page_addr pm80x_subchip 0 27284 NULL
137586 +disable_so_udf_count_free_bitmap_fndecl_27294 udf_count_free_bitmap fndecl 0 27294 NULL
137587 +disable_so_timestamp_ieee80211_channel_switch_27297 timestamp ieee80211_channel_switch 0 27297 NULL
137588 +disable_so_fd_flush_timestamp_i40e_pf_27298 fd_flush_timestamp i40e_pf 0 27298 NULL nohasharray
137589 +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
137590 +disable_so_past_time_fndecl_27299 past_time fndecl 1 27299 NULL
137591 +disable_so_status_hci_rp_read_bd_addr_27307 status hci_rp_read_bd_addr 0 27307 NULL
137592 +disable_so_demod_address_lgs8gxx_config_27311 demod_address lgs8gxx_config 0 27311 NULL
137593 +disable_so_clock_offset_mlx4_fw_27318 clock_offset mlx4_fw 0 27318 NULL
137594 +disable_so_native_sched_clock_fndecl_27322 native_sched_clock fndecl 0 27322 NULL
137595 +disable_so_preferred_time_prefix_cacheinfo_27329 preferred_time prefix_cacheinfo 0 27329 NULL nohasharray
137596 +disable_so_srq_get_mtt_addr_fndecl_27329 srq_get_mtt_addr fndecl 0 27329 &disable_so_preferred_time_prefix_cacheinfo_27329
137597 +disable_so_di_pt_regs_27336 di pt_regs 0 27336 NULL
137598 +disable_so_buf1_addr_xgmac_dma_desc_27344 buf1_addr xgmac_dma_desc 0 27344 NULL
137599 +disable_so_timer_mask_ath_gen_timer_table_27351 timer_mask ath_gen_timer_table 0 27351 NULL
137600 +disable_so_max_frags_iwl_time_event_cmd_27357 max_frags iwl_time_event_cmd 0 27357 NULL nohasharray
137601 +disable_so_wd_last_clocksource_27357 wd_last clocksource 0 27357 &disable_so_max_frags_iwl_time_event_cmd_27357
137602 +disable_so_sermouse_interrupt_fndecl_27361 sermouse_interrupt fndecl 2 27361 NULL
137603 +disable_so_tm_mday_rtc_time_27369 tm_mday rtc_time 0 27369 NULL
137604 +disable_so_opad_count_ccp_sha_ctx_27374 opad_count ccp_sha_ctx 0 27374 NULL
137605 +disable_so_keyed_hash_fndecl_27379 keyed_hash fndecl 0-2 27379 NULL
137606 +disable_so_addr_d11init_27383 addr d11init 0 27383 NULL
137607 +disable_so_test_bit_le_fndecl_27392 test_bit_le fndecl 1 27392 NULL
137608 +disable_so_i2c_bit_add_bus_fndecl_27395 i2c_bit_add_bus fndecl 0 27395 NULL
137609 +disable_so_xhci_calculate_u2_timeout_fndecl_27406 xhci_calculate_u2_timeout fndecl 0 27406 NULL
137610 +disable_so_sym_getclock_fndecl_27414 sym_getclock fndecl 2 27414 NULL
137611 +disable_so_pat_x_mtrr_type_fndecl_27415 pat_x_mtrr_type fndecl 1-2 27415 NULL
137612 +disable_so_val_addr_core1_nphy_rf_control_override_rev7_27422 val_addr_core1 nphy_rf_control_override_rev7 0 27422 NULL nohasharray
137613 +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
137614 +disable_so_ratio_o_rj54n1_clock_div_27431 ratio_o rj54n1_clock_div 0 27431 NULL nohasharray
137615 +disable_so_pr_uid_elf_prpsinfo_27431 pr_uid elf_prpsinfo 0 27431 &disable_so_ratio_o_rj54n1_clock_div_27431
137616 +disable_so_nla_get_be64_fndecl_27433 nla_get_be64 fndecl 0 27433 NULL
137617 +disable_so_encryptor_fndecl_27450 encryptor fndecl 0 27450 NULL
137618 +disable_so_hsync_offset_lo_oaktrail_timing_info_27455 hsync_offset_lo oaktrail_timing_info 0 27455 NULL
137619 +disable_so_store_scaling_max_freq_fndecl_27459 store_scaling_max_freq fndecl 0-3 27459 NULL
137620 +disable_so_addrLow_lpfc_pde7_27462 addrLow lpfc_pde7 0 27462 NULL
137621 +disable_so_ql_get_mac_addr_reg_fndecl_27466 ql_get_mac_addr_reg fndecl 0 27466 NULL
137622 +disable_so_r600_engine_clock_entry_set_feedback_divider_fndecl_27467 r600_engine_clock_entry_set_feedback_divider fndecl 3 27467 NULL
137623 +disable_so_queue_timestamp_cw1200_queue_item_27470 queue_timestamp cw1200_queue_item 0 27470 NULL nohasharray
137624 +disable_so_timing_event_fndecl_27470 timing_event fndecl 0 27470 &disable_so_queue_timestamp_cw1200_queue_item_27470
137625 +disable_so_seg0_blkaddr_f2fs_sm_info_27483 seg0_blkaddr f2fs_sm_info 0 27483 NULL nohasharray
137626 +disable_so_shash_async_init_fndecl_27483 shash_async_init fndecl 0 27483 &disable_so_seg0_blkaddr_f2fs_sm_info_27483
137627 +disable_so_esas2r_buffered_ioctl_addr_vardecl_27487 esas2r_buffered_ioctl_addr vardecl 0 27487 NULL
137628 +disable_so_buffer_write_time_max_flchip_27491 buffer_write_time_max flchip 0 27491 NULL
137629 +disable_so_reg_data_clock_eeprom_93cx6_27496 reg_data_clock eeprom_93cx6 0 27496 NULL
137630 +disable_so_ieee80211_if_read_min_discovery_timeout_fndecl_27497 ieee80211_if_read_min_discovery_timeout fndecl 3-0 27497 NULL nohasharray
137631 +disable_so_address_pmcraid_ioadl_desc_27497 address pmcraid_ioadl_desc 0 27497 &disable_so_ieee80211_if_read_min_discovery_timeout_fndecl_27497
137632 +disable_so_host_perf_guest_switch_msr_27498 host perf_guest_switch_msr 0 27498 NULL
137633 +disable_so_dummy_buffer_addr_hi_iscsi_kwqe_init1_27499 dummy_buffer_addr_hi iscsi_kwqe_init1 0 27499 NULL
137634 +disable_so__rtl88e_phy_calculate_bit_shift_fndecl_27500 _rtl88e_phy_calculate_bit_shift fndecl 0-1 27500 NULL
137635 +disable_so_mceusb_dev_printdata_fndecl_27502 mceusb_dev_printdata fndecl 4 27502 NULL
137636 +disable_so_sk_sndtimeo_sock_27506 sk_sndtimeo sock 0 27506 NULL
137637 +disable_so_oprofile_timer_init_fndecl_27514 oprofile_timer_init fndecl 0 27514 NULL
137638 +disable_so_st_atime___old_kernel_stat_27516 st_atime __old_kernel_stat 0 27516 NULL
137639 +disable_so_hpi_sample_clock_set_local_rate_lock_fndecl_27517 hpi_sample_clock_set_local_rate_lock fndecl 1-0 27517 NULL
137640 +disable_so_addr_perf_sample_data_27520 addr perf_sample_data 0 27520 NULL
137641 +disable_so_curr_dbg_uidn_show_fndecl_27524 curr_dbg_uidn_show fndecl 3 27524 NULL
137642 +disable_so_crypto_register_template_fndecl_27525 crypto_register_template fndecl 0 27525 NULL
137643 +disable_so_process_tgid_sid_proc_event_27544 process_tgid sid_proc_event 0 27544 NULL
137644 +disable_so_fandiv2_nct6775_data_27558 fandiv2 nct6775_data 0 27558 NULL
137645 +disable_so_delay_time_bridge_mcast_other_query_27560 delay_time bridge_mcast_other_query 0 27560 NULL
137646 +disable_so_addr_hi_acard_sg_27563 addr_hi acard_sg 0 27563 NULL
137647 +disable_so_address_tlan_buffer_27580 address tlan_buffer 0 27580 NULL
137648 +disable_so_rdma_addr_find_smac_by_sgid_fndecl_27591 rdma_addr_find_smac_by_sgid fndecl 0 27591 NULL
137649 +disable_so_addrconf_add_linklocal_fndecl_27592 addrconf_add_linklocal fndecl 3 27592 NULL
137650 +disable_so_fb_delay_gt215_clk_info_27603 fb_delay gt215_clk_info 0 27603 NULL
137651 +disable_so_ss_nongc_ctime_nilfs_sustat_27619 ss_nongc_ctime nilfs_sustat 0 27619 NULL
137652 +disable_so_shash_ahash_mcryptd_final_fndecl_27624 shash_ahash_mcryptd_final fndecl 0 27624 NULL
137653 +disable_so_iwl_set_hw_address_family_8000_fndecl_27628 iwl_set_hw_address_family_8000 fndecl 6-7 27628 NULL
137654 +disable_so_dm_delay_init_fndecl_27635 dm_delay_init fndecl 0 27635 NULL
137655 +disable_so_seq_tcphdr_27638 seq tcphdr 0 27638 NULL
137656 +disable_so_cbq_undelay_prio_fndecl_27641 cbq_undelay_prio fndecl 0-3 27641 NULL
137657 +disable_so_sst_module_runtime_save_fndecl_27642 sst_module_runtime_save fndecl 0 27642 NULL
137658 +disable_so_crypto_pcbc_module_init_fndecl_27648 crypto_pcbc_module_init fndecl 0 27648 NULL
137659 +disable_so_freq_prev_cpu_data_t_27649 freq_prev cpu_data_t 0 27649 NULL
137660 +disable_so_status_mce_27652 status mce 0 27652 NULL
137661 +disable_so_buff_addr_ixgb_rx_desc_27660 buff_addr ixgb_rx_desc 0 27660 NULL
137662 +disable_so_phy_addr_mii_phy_27664 phy_addr mii_phy 0 27664 NULL
137663 +disable_so_demod_address_lgdt330x_config_27668 demod_address lgdt330x_config 0 27668 NULL
137664 +disable_so__next_div_fndecl_27679 _next_div fndecl 0-2 27679 NULL
137665 +disable_so_rtc_timer_enqueue_fndecl_27693 rtc_timer_enqueue fndecl 0 27693 NULL nohasharray
137666 +disable_so_addr_phy_device_27693 addr phy_device 0 27693 &disable_so_rtc_timer_enqueue_fndecl_27693
137667 +disable_so_timer_multiplier_tg3_27703 timer_multiplier tg3 0 27703 NULL
137668 +disable_so_address_acpi_table_madt_27705 address acpi_table_madt 0 27705 NULL
137669 +disable_so_saddr_flowi4_27709 saddr flowi4 0 27709 NULL
137670 +disable_so_acpi_tb_select_address_fndecl_27710 acpi_tb_select_address fndecl 0-2-3 27710 NULL
137671 +disable_so_wl18xx_acx_ap_sleep_fndecl_27719 wl18xx_acx_ap_sleep fndecl 0 27719 NULL
137672 +disable_so_sleep_start_sched_statistics_27721 sleep_start sched_statistics 0 27721 NULL nohasharray
137673 +disable_so_inj_addr_set_fndecl_27721 inj_addr_set fndecl 2 27721 &disable_so_sleep_start_sched_statistics_27721
137674 +disable_so_addr_fw_page_27728 addr fw_page 0 27728 NULL
137675 +disable_so_time_stamp_e1000_tx_buffer_27729 time_stamp e1000_tx_buffer 0 27729 NULL
137676 +disable_so_ata_internal_cmd_timed_out_fndecl_27734 ata_internal_cmd_timed_out fndecl 2 27734 NULL
137677 +disable_so_sleep_ide_drive_s_27745 sleep ide_drive_s 0 27745 NULL
137678 +disable_so_platform_clock_control_fndecl_27752 platform_clock_control fndecl 0 27752 NULL
137679 +disable_so_tick_timex_27769 tick timex 0 27769 NULL
137680 +disable_so__is_best_div_fndecl_27772 _is_best_div fndecl 1-2-3 27772 NULL
137681 +disable_so_update_cpumask_fndecl_27776 update_cpumask fndecl 0 27776 NULL
137682 +disable_so_mxser_get_msr_fndecl_27778 mxser_get_msr fndecl 3 27778 NULL
137683 +disable_so_btree_insert32_fndecl_27786 btree_insert32 fndecl 2-4 27786 NULL
137684 +disable_so_ccp_do_sha_update_fndecl_27787 ccp_do_sha_update fndecl 0-2 27787 NULL
137685 +disable_so_complete_crypto_gcm_ghash_ctx_27789 complete crypto_gcm_ghash_ctx 0 27789 NULL
137686 +disable_so_cryptoloop_transfer_fndecl_27794 cryptoloop_transfer fndecl 0-4-6-7 27794 NULL
137687 +disable_so_max_reconnect_timeout_sbp_tport_27795 max_reconnect_timeout sbp_tport 0 27795 NULL
137688 +disable_so_drxj_dap_write_reg16_fndecl_27796 drxj_dap_write_reg16 fndecl 0-3 27796 NULL
137689 +disable_so_i_crtime_ext4_inode_27803 i_crtime ext4_inode 0 27803 NULL
137690 +disable_so_bridge_ctl_pci_bus_27806 bridge_ctl pci_bus 0 27806 NULL
137691 +disable_so_sas_unregister_devs_sas_addr_fndecl_27808 sas_unregister_devs_sas_addr fndecl 2 27808 NULL
137692 +disable_so_move_to_next_stateful_cpuid_entry_fndecl_27817 move_to_next_stateful_cpuid_entry fndecl 0-2 27817 NULL
137693 +disable_so_delay_pktgen_dev_27827 delay pktgen_dev 0 27827 NULL
137694 +disable_so_ipath_physaddr_ipath_devdata_27830 ipath_physaddr ipath_devdata 0 27830 NULL
137695 +disable_so_rh_timer_musb_27835 rh_timer musb 0 27835 NULL
137696 +disable_so_spinfo_cwnd_sctp_paddrinfo_27841 spinfo_cwnd sctp_paddrinfo 0 27841 NULL
137697 +disable_so_prism54_set_freq_fndecl_27858 prism54_set_freq fndecl 0 27858 NULL
137698 +disable_so_host_addr_mei_msg_hdr_27859 host_addr mei_msg_hdr 0 27859 NULL
137699 +disable_so_xr17v35x_get_divisor_fndecl_27860 xr17v35x_get_divisor fndecl 0-2 27860 NULL
137700 +disable_so_run_delayed_data_ref_fndecl_27870 run_delayed_data_ref fndecl 0 27870 NULL
137701 +disable_so_args_addr_pmu_nvbios_pmuR_27871 args_addr_pmu nvbios_pmuR 0 27871 NULL
137702 +disable_so_nr_of_multicastmacaddr_lbtf_private_27872 nr_of_multicastmacaddr lbtf_private 0 27872 NULL
137703 +disable_so_cfg80211_mgd_wext_siwfreq_fndecl_27873 cfg80211_mgd_wext_siwfreq fndecl 0 27873 NULL
137704 +disable_so_get_ftdi_divisor_fndecl_27883 get_ftdi_divisor fndecl 0 27883 NULL nohasharray
137705 +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
137706 +disable_so_acpi_gbl_sleep_type_a_vardecl_27893 acpi_gbl_sleep_type_a vardecl 0 27893 NULL
137707 +disable_so_addr_ahc_dma_seg_27896 addr ahc_dma_seg 0 27896 NULL
137708 +disable_so_est_timer_fndecl_27898 est_timer fndecl 1 27898 NULL
137709 +disable_so_phonet_address_add_fndecl_27900 phonet_address_add fndecl 0-2 27900 NULL
137710 +disable_so_uhci_sprint_schedule_fndecl_27905 uhci_sprint_schedule fndecl 0 27905 NULL
137711 +disable_so_cpufreq_generic_init_fndecl_27911 cpufreq_generic_init fndecl 3 27911 NULL
137712 +disable_so_brcms_c_calc_frame_time_fndecl_27915 brcms_c_calc_frame_time fndecl 0-4-2 27915 NULL
137713 +disable_so_max_pixel_clock_matrox_fb_info_27917 max_pixel_clock matrox_fb_info 0 27917 NULL
137714 +disable_so_cfg80211_get_end_freq_fndecl_27923 cfg80211_get_end_freq fndecl 0-1-2 27923 NULL
137715 +disable_so_tv_usec_timeval_27924 tv_usec timeval 0 27924 NULL nohasharray
137716 +disable_so_bootloader_addr_mxt_data_27924 bootloader_addr mxt_data 0 27924 &disable_so_tv_usec_timeval_27924
137717 +disable_so_scope_ipv6_saddr_dst_27930 scope ipv6_saddr_dst 0 27930 NULL
137718 +disable_so_skcipher_recvmsg_sync_fndecl_27933 skcipher_recvmsg_sync fndecl 0 27933 NULL
137719 +disable_so_nf_ct_free_hashtable_fndecl_27936 nf_ct_free_hashtable fndecl 2 27936 NULL
137720 +disable_so_addr_netlbl_af4list_27939 addr netlbl_af4list 0 27939 NULL
137721 +disable_so_idgen_delay_netns_sysctl_ipv6_27941 idgen_delay netns_sysctl_ipv6 0 27941 NULL
137722 +disable_so_time_low_afs_uuid_27956 time_low afs_uuid 0 27956 NULL
137723 +disable_so_set_tv_freq_fndecl_27970 set_tv_freq fndecl 2 27970 NULL
137724 +disable_so_average_duration_time_stats_27971 average_duration time_stats 0 27971 NULL
137725 +disable_so_multicast_num_addrs__mace_private_27974 multicast_num_addrs _mace_private 0 27974 NULL
137726 +disable_so_ghash_pclmulqdqni_mod_init_fndecl_27975 ghash_pclmulqdqni_mod_init fndecl 0 27975 NULL
137727 +disable_so_gs_gru_base_paddr_gru_state_27988 gs_gru_base_paddr gru_state 0 27988 NULL nohasharray
137728 +disable_so_paging32_walk_addr_fndecl_27988 paging32_walk_addr fndecl 3-4 27988 &disable_so_gs_gru_base_paddr_gru_state_27988
137729 +disable_so_musb_read_rxfunaddr_fndecl_27990 musb_read_rxfunaddr fndecl 2-0 27990 NULL
137730 +disable_so_kstrtoint_fndecl_27993 kstrtoint fndecl 0 27993 NULL
137731 +disable_so_rv770_encode_yclk_post_div_fndecl_27996 rv770_encode_yclk_post_div fndecl 0-1 27996 NULL
137732 +disable_so_di_uid_qnx6_inode_entry_28014 di_uid qnx6_inode_entry 0 28014 NULL
137733 +disable_so_sctp_verify_addr_fndecl_28018 sctp_verify_addr fndecl 0-3 28018 NULL
137734 +disable_so_timeout_ieee80211_mgd_assoc_data_28022 timeout ieee80211_mgd_assoc_data 0 28022 NULL
137735 +disable_so_nadc_aic31xx_rate_divs_28025 nadc aic31xx_rate_divs 0 28025 NULL
137736 +disable_so_address_end_unity_map_entry_28028 address_end unity_map_entry 0 28028 NULL
137737 +disable_so_ring_pt_address_sst_hsw_ipc_stream_ring_28034 ring_pt_address sst_hsw_ipc_stream_ring 0 28034 NULL
137738 +disable_so_rx_hashtbl_used_head_alb_bond_info_28035 rx_hashtbl_used_head alb_bond_info 0 28035 NULL
137739 +disable_so_reset_time_vardecl_cs_c_28036 reset_time vardecl_cs.c 0 28036 NULL
137740 +disable_so_slicer_line_delay_cx18_av_state_28042 slicer_line_delay cx18_av_state 0 28042 NULL
137741 +disable_so_addr1_unlock_addr_28045 addr1 unlock_addr 0 28045 NULL
137742 +disable_so_timestamp_ath6kl_fwlog_slot_28050 timestamp ath6kl_fwlog_slot 0 28050 NULL
137743 +disable_so_max8925_rtc_set_time_fndecl_28052 max8925_rtc_set_time fndecl 0 28052 NULL
137744 +disable_so_hblank_lo_lvds_dvo_timing_28054 hblank_lo lvds_dvo_timing 0 28054 NULL
137745 +disable_so_total_bytes_available_snd_compr_runtime_28061 total_bytes_available snd_compr_runtime 0 28061 NULL
137746 +disable_so_start_jiffies_dm_cache_migration_28062 start_jiffies dm_cache_migration 0 28062 NULL
137747 +disable_so_fm10k_read_systime_pf_fndecl_28063 fm10k_read_systime_pf fndecl 0 28063 NULL
137748 +disable_so_time_stopped_btrfs_dev_replace_28065 time_stopped btrfs_dev_replace 0 28065 NULL
137749 +disable_so_total_time_devfreq_dev_status_28070 total_time devfreq_dev_status 0 28070 NULL
137750 +disable_so_congested_cycles_vardecl_tlb_uv_c_28074 congested_cycles vardecl_tlb_uv.c 0 28074 NULL
137751 +disable_so_db_addr_mlx4_ib_create_cq_28077 db_addr mlx4_ib_create_cq 0 28077 NULL
137752 +disable_so_ipaddr_atmmpc_ioc_28080 ipaddr atmmpc_ioc 0 28080 NULL
137753 +disable_so_drm_modeset_backoff_interruptible_fndecl_28087 drm_modeset_backoff_interruptible fndecl 0 28087 NULL
137754 +disable_so_pcr_address_fndecl_28088 pcr_address fndecl 0 28088 NULL
137755 +disable_so_fill_stats_for_tgid_fndecl_28092 fill_stats_for_tgid fndecl 0-1 28092 NULL
137756 +disable_so_ep0_set_address_fndecl_28094 ep0_set_address fndecl 0 28094 NULL
137757 +disable_so_vdi_uid_vxfs_inode_info_28097 vdi_uid vxfs_inode_info 0 28097 NULL
137758 +disable_so_cryptd_hash_final_fndecl_28098 cryptd_hash_final fndecl 2 28098 NULL
137759 +disable_so_sysctl_aevent_etime_netns_xfrm_28099 sysctl_aevent_etime netns_xfrm 0 28099 NULL
137760 +disable_so_nilfs_segctor_last_seg_write_time_secs_show_fndecl_28103 nilfs_segctor_last_seg_write_time_secs_show fndecl 0 28103 NULL
137761 +disable_so_toshiba_usb_sleep_charge_set_fndecl_28108 toshiba_usb_sleep_charge_set fndecl 0 28108 NULL
137762 +disable_so_r63_val_fc2580_freq_regs_28120 r63_val fc2580_freq_regs 0 28120 NULL
137763 +disable_so_myri10ge_read_mac_addr_fndecl_28129 myri10ge_read_mac_addr fndecl 0 28129 NULL
137764 +disable_so_stv090x_get_feclock_fndecl_28130 stv090x_get_feclock fndecl 0 28130 NULL
137765 +disable_so_m_blkbit_log_xfs_mount_28131 m_blkbit_log xfs_mount 0 28131 NULL
137766 +disable_so_duration_iwl_mvm_time_event_data_28140 duration iwl_mvm_time_event_data 0 28140 NULL
137767 +disable_so_compute_tsc_offset_kvm_x86_ops_28149 compute_tsc_offset kvm_x86_ops 0-2 28149 NULL
137768 +disable_so_sys_clock_freq_drxd_state_28176 sys_clock_freq drxd_state 0 28176 NULL
137769 +disable_so_addrLow_sge_ieee1212_28181 addrLow sge_ieee1212 0 28181 NULL
137770 +disable_so_ctnetlink_timestamp_size_fndecl_28183 ctnetlink_timestamp_size fndecl 0 28183 NULL
137771 +disable_so_ahash_def_finup_fndecl_28189 ahash_def_finup fndecl 0 28189 NULL
137772 +disable_so_hw_ptr_jiffies_snd_pcm_runtime_28200 hw_ptr_jiffies snd_pcm_runtime 0 28200 NULL
137773 +disable_so_tmr_device_snd_timer_28205 tmr_device snd_timer 0 28205 NULL
137774 +disable_so_kycr2_delay_sh_keysc_info_28217 kycr2_delay sh_keysc_info 0 28217 NULL
137775 +disable_so_timestamp_nfs4_opendata_28221 timestamp nfs4_opendata 0 28221 NULL
137776 +disable_so_mb_find_next_zero_bit_fndecl_28223 mb_find_next_zero_bit fndecl 0-2-3 28223 NULL
137777 +disable_so_nbytes_orig_qce_sha_reqctx_28228 nbytes_orig qce_sha_reqctx 0 28228 NULL
137778 +disable_so_code_addr_nvbios_pmuR_28229 code_addr nvbios_pmuR 0 28229 NULL
137779 +disable_so_clock_pad_drive_dib0070_config_28232 clock_pad_drive dib0070_config 0 28232 NULL nohasharray
137780 +disable_so_ringid_wmi_bcast_vring_cfg_28232 ringid wmi_bcast_vring_cfg 0 28232 &disable_so_clock_pad_drive_dib0070_config_28232
137781 +disable_so_centiseconds_timestamp_28239 centiseconds timestamp 0 28239 NULL nohasharray
137782 +disable_so_psb_vdc_interrupt_fndecl_28239 psb_vdc_interrupt fndecl 2 28239 &disable_so_centiseconds_timestamp_28239
137783 +disable_so_freqshift_snd_usb_endpoint_28255 freqshift snd_usb_endpoint 0 28255 NULL
137784 +disable_so_drm_vblank_count_and_time_fndecl_28263 drm_vblank_count_and_time fndecl 2 28263 NULL
137785 +disable_so_cr_s5p_jpeg_addr_28264 cr s5p_jpeg_addr 0 28264 NULL
137786 +disable_so_adis16136_get_freq_fndecl_28268 adis16136_get_freq fndecl 0 28268 NULL nohasharray
137787 +disable_so_cpu_to_tun16_fndecl_28268 cpu_to_tun16 fndecl 0-2 28268 &disable_so_adis16136_get_freq_fndecl_28268
137788 +disable_so_index_msr_data_28269 index msr_data 0 28269 NULL
137789 +disable_so_clock_realtek_pci_sdmmc_28276 clock realtek_pci_sdmmc 0 28276 NULL
137790 +disable_so_div_q0_pll_values_28280 div_q0 pll_values 0 28280 NULL
137791 +disable_so_fall_time_lp8788_bl_config_28282 fall_time lp8788_bl_config 0 28282 NULL
137792 +disable_so_producer_index_phys_addr_lo_megasas_init_queue_info_28289 producer_index_phys_addr_lo megasas_init_queue_info 0 28289 NULL
137793 +disable_so_hash_ipport4_expire_fndecl_28290 hash_ipport4_expire fndecl 4 28290 NULL
137794 +disable_so_ifa_valid_lft_in_ifaddr_28292 ifa_valid_lft in_ifaddr 0 28292 NULL nohasharray
137795 +disable_so_test_ahash_jiffies_digest_fndecl_28292 test_ahash_jiffies_digest fndecl 0 28292 &disable_so_ifa_valid_lft_in_ifaddr_28292
137796 +disable_so_bitmap_parselist_fndecl_28296 bitmap_parselist fndecl 0-3 28296 NULL
137797 +disable_so_st_uid_stat_28301 st_uid stat 0 28301 NULL
137798 +disable_so_default_powersave_bias_vardecl_cpufreq_ondemand_c_28302 default_powersave_bias vardecl_cpufreq_ondemand.c 0 28302 NULL
137799 +disable_so__simple_hash_fndecl_28307 _simple_hash fndecl 0 28307 NULL
137800 +disable_so_sys_setfsuid_fndecl_28311 sys_setfsuid fndecl 0-1 28311 NULL
137801 +disable_so_buf_addr_mlx4_ib_resize_cq_28313 buf_addr mlx4_ib_resize_cq 0 28313 NULL nohasharray
137802 +disable_so_netxen_config_ipaddr_fndecl_28313 netxen_config_ipaddr fndecl 2 28313 &disable_so_buf_addr_mlx4_ib_resize_cq_28313 nohasharray
137803 +disable_so_set_32bit_tls_fndecl_28313 set_32bit_tls fndecl 3 28313 &disable_so_netxen_config_ipaddr_fndecl_28313
137804 +disable_so_init_systime_stmmac_hwtimestamp_28315 init_systime stmmac_hwtimestamp 2-3 28315 NULL
137805 +disable_so_bf_daddr_ath_buf_28317 bf_daddr ath_buf 0 28317 NULL nohasharray
137806 +disable_so_xfs_btree_readahead_ptr_fndecl_28317 xfs_btree_readahead_ptr fndecl 3 28317 &disable_so_bf_daddr_ath_buf_28317
137807 +disable_so__is_valid_div_fndecl_28320 _is_valid_div fndecl 2 28320 NULL
137808 +disable_so_loop_id_2100_gid_list_info_28327 loop_id_2100 gid_list_info 0 28327 NULL nohasharray
137809 +disable_so_hi_regpair_28327 hi regpair 0 28327 &disable_so_loop_id_2100_gid_list_info_28327
137810 +disable_so_dst_addr_rcar_dmac_xfer_chunk_28333 dst_addr rcar_dmac_xfer_chunk 0 28333 NULL
137811 +disable_so_svm_msrpm_offset_fndecl_28343 svm_msrpm_offset fndecl 0-1 28343 NULL
137812 +disable_so_dma_free_attrs_fndecl_28349 dma_free_attrs fndecl 2-4 28349 NULL
137813 +disable_so_gc_psx_delay_vardecl_gamecon_c_28354 gc_psx_delay vardecl_gamecon.c 0 28354 NULL
137814 +disable_so_di_mtime_nsec_gfs2_dinode_28356 di_mtime_nsec gfs2_dinode 0 28356 NULL
137815 +disable_so_panel_post_divider_radeon_encoder_lvds_28360 panel_post_divider radeon_encoder_lvds 0 28360 NULL
137816 +disable_so_cpu_rt_runtime_write_fndecl_28375 cpu_rt_runtime_write fndecl 3-0 28375 NULL nohasharray
137817 +disable_so_hrtimer_nanosleep_fndecl_28375 hrtimer_nanosleep fndecl 4 28375 &disable_so_cpu_rt_runtime_write_fndecl_28375
137818 +disable_so_addr_yellowfin_desc_28380 addr yellowfin_desc 0 28380 NULL
137819 +disable_so_time_count_mptsas_target_reset_event_28383 time_count mptsas_target_reset_event 0 28383 NULL nohasharray
137820 +disable_so_pos2maj_hash_fndecl_28383 pos2maj_hash fndecl 0-2 28383 &disable_so_time_count_mptsas_target_reset_event_28383
137821 +disable_so_chv_freq_opcode_fndecl_28386 chv_freq_opcode fndecl 0-2 28386 NULL
137822 +disable_so_nsecs_to_jiffies_fndecl_28394 nsecs_to_jiffies fndecl 0-1 28394 NULL
137823 +disable_so_qpn_hash_fndecl_28400 qpn_hash fndecl 0-2 28400 NULL
137824 +disable_so_seltime_b_ahc_softc_28409 seltime_b ahc_softc 0 28409 NULL
137825 +disable_so_ast_set_start_address_crt1_fndecl_28414 ast_set_start_address_crt1 fndecl 2 28414 NULL
137826 +disable_so_tseg2_pucan_timing_fast_28420 tseg2 pucan_timing_fast 0 28420 NULL
137827 +disable_so_tlv_put_uuid_fndecl_28427 tlv_put_uuid fndecl 0 28427 NULL
137828 +disable_so_cur_tsc_write_kvm_arch_28444 cur_tsc_write kvm_arch 0 28444 NULL
137829 +disable_so_addr_2_qla8044_minidump_entry_rdmdio_28446 addr_2 qla8044_minidump_entry_rdmdio 0 28446 NULL
137830 +disable_so_ft_img_ir_timing_regvals_28448 ft img_ir_timing_regvals 0 28448 NULL
137831 +disable_so_blk_queue_rq_timeout_fndecl_28452 blk_queue_rq_timeout fndecl 2 28452 NULL
137832 +disable_so_pch_udc_read_device_interrupts_fndecl_28463 pch_udc_read_device_interrupts fndecl 0 28463 NULL
137833 +disable_so_spidev_sync_fndecl_28473 spidev_sync fndecl 0 28473 NULL
137834 +disable_so_mvs_store_interrupt_coalescing_fndecl_28474 mvs_store_interrupt_coalescing fndecl 0-4 28474 NULL
137835 +disable_so_div_up_fndecl_28477 div_up fndecl 0-1-2 28477 NULL
137836 +disable_so_iwlagn_hw_valid_rtc_data_addr_fndecl_28480 iwlagn_hw_valid_rtc_data_addr fndecl 1 28480 NULL
137837 +disable_so_ixgbe_init_interrupt_scheme_fndecl_28488 ixgbe_init_interrupt_scheme fndecl 0 28488 NULL
137838 +disable_so_next_hrtimer_event_ehci_hcd_28494 next_hrtimer_event ehci_hcd 0 28494 NULL
137839 +disable_so_show_hold_timer_fndecl_28495 show_hold_timer fndecl 0 28495 NULL
137840 +disable_so_linetime_intel_pipe_wm_28496 linetime intel_pipe_wm 0 28496 NULL
137841 +disable_so_rcq_addr_vf_pf_rxq_params_28504 rcq_addr vf_pf_rxq_params 0 28504 NULL
137842 +disable_so_paddr_ath10k_hif_sg_item_28509 paddr ath10k_hif_sg_item 0 28509 NULL
137843 +disable_so_ocfs2_clear_bit_unaligned_fndecl_28520 ocfs2_clear_bit_unaligned fndecl 1 28520 NULL
137844 +disable_so_interrupt_notify_wlcore_ops_28523 interrupt_notify wlcore_ops 0 28523 NULL
137845 +disable_so_r_direct_hash_ceph_mds_request_28525 r_direct_hash ceph_mds_request 0 28525 NULL
137846 +disable_so_i_ctime_omfs_inode_28528 i_ctime omfs_inode 0 28528 NULL
137847 +disable_so_sas_request_addr_fndecl_28536 sas_request_addr fndecl 0 28536 NULL
137848 +disable_so_bnx2x_send_reset_timesync_ramrod_fndecl_28537 bnx2x_send_reset_timesync_ramrod fndecl 0 28537 NULL
137849 +disable_so_prev_sum_exec_runtime_sched_entity_28542 prev_sum_exec_runtime sched_entity 0 28542 NULL nohasharray
137850 +disable_so_reg_w1_fndecl_28542 reg_w1 fndecl 2-3 28542 &disable_so_prev_sum_exec_runtime_sched_entity_28542
137851 +disable_so_addr_wil_memio_28545 addr wil_memio 0 28545 NULL
137852 +disable_so_drm_get_last_vbltimestamp_fndecl_28555 drm_get_last_vbltimestamp fndecl 2 28555 NULL nohasharray
137853 +disable_so_decryptor_fndecl_28555 decryptor fndecl 0 28555 &disable_so_drm_get_last_vbltimestamp_fndecl_28555
137854 +disable_so_mcryptd_hash_enqueue_fndecl_28559 mcryptd_hash_enqueue fndecl 0 28559 NULL
137855 +disable_so_i_ctime_nilfs_inode_28572 i_ctime nilfs_inode 0 28572 NULL
137856 +disable_so_ablkcipher_request_complete_fndecl_28578 ablkcipher_request_complete fndecl 2 28578 NULL
137857 +disable_so_quark_x1000_get_clk_div_fndecl_28592 quark_x1000_get_clk_div fndecl 0-1 28592 NULL
137858 +disable_so_myri10ge_update_mac_address_fndecl_28593 myri10ge_update_mac_address fndecl 0 28593 NULL
137859 +disable_so_crypto_authenc_decrypt_fndecl_28596 crypto_authenc_decrypt fndecl 0 28596 NULL
137860 +disable_so_addr_starfire_tx_desc_2_28603 addr starfire_tx_desc_2 0 28603 NULL
137861 +disable_so___rhashtable_insert_fast_fndecl_28605 __rhashtable_insert_fast fndecl 0 28605 NULL
137862 +disable_so_addr_cp_desc_28611 addr cp_desc 0 28611 NULL
137863 +disable_so_ic_pause_timer_mtip_port_28612 ic_pause_timer mtip_port 0 28612 NULL nohasharray
137864 +disable_so_bitmap_checkfree_fndecl_28612 bitmap_checkfree fndecl 2 28612 &disable_so_ic_pause_timer_mtip_port_28612
137865 +disable_so_ac_utimescaled_taskstats_28613 ac_utimescaled taskstats 0 28613 NULL
137866 +disable_so___subtree_last_umem_odp_node_28630 __subtree_last umem_odp_node 0 28630 NULL
137867 +disable_so_i_ctime_bfs_inode_28632 i_ctime bfs_inode 0 28632 NULL
137868 +disable_so_s_def_resgid_ext4_super_block_28638 s_def_resgid ext4_super_block 0 28638 NULL
137869 +disable_so_addr_alert_data_28639 addr alert_data 0 28639 NULL
137870 +disable_so_p_vaddr_elf32_phdr_28641 p_vaddr elf32_phdr 0 28641 NULL
137871 +disable_so_kv_set_divider_value_fndecl_28644 kv_set_divider_value fndecl 3-0 28644 NULL
137872 +disable_so_bitmap_clear_fndecl_28646 bitmap_clear fndecl 2-3 28646 NULL
137873 +disable_so_uartlite_inle32_fndecl_28652 uartlite_inle32 fndecl 0 28652 NULL
137874 +disable_so_kvm_hv_vapic_msr_write_fndecl_28670 kvm_hv_vapic_msr_write fndecl 3 28670 NULL
137875 +disable_so_sgl_addr_fcpio_icmnd_16_28672 sgl_addr fcpio_icmnd_16 0 28672 NULL
137876 +disable_so_timestamp_bfa_trc_s_28675 timestamp bfa_trc_s 0 28675 NULL
137877 +disable_so_xbofs_delay_irda_skb_cb_28676 xbofs_delay irda_skb_cb 0 28676 NULL
137878 +disable_so_hpfs_map_bitmap_fndecl_28681 hpfs_map_bitmap fndecl 2 28681 NULL
137879 +disable_so_tz_minuteswest_timezone_28688 tz_minuteswest timezone 0 28688 NULL
137880 +disable_so_pc_clock_settime_fndecl_28698 pc_clock_settime fndecl 1 28698 NULL
137881 +disable_so_orinoco_hw_get_freq_fndecl_28700 orinoco_hw_get_freq fndecl 0 28700 NULL
137882 +disable_so_phys_addr_megasas_sge32_28701 phys_addr megasas_sge32 0 28701 NULL
137883 +disable_so_tusb_otg_ints_fndecl_28728 tusb_otg_ints fndecl 2 28728 NULL
137884 +disable_so_dynamic_ps_forced_timeout_ieee80211_local_28729 dynamic_ps_forced_timeout ieee80211_local 0 28729 NULL
137885 +disable_so_atomic_notifier_call_chain_fndecl_28732 atomic_notifier_call_chain fndecl 0-2 28732 NULL
137886 +disable_so_time_ext_busy_survey_info_28734 time_ext_busy survey_info 0 28734 NULL
137887 +disable_so___audit_signal_info_fndecl_28736 __audit_signal_info fndecl 0-1 28736 NULL
137888 +disable_so_SYSC_mq_timedsend_fndecl_28740 SYSC_mq_timedsend fndecl 1-3 28740 NULL
137889 +disable_so_gss_krb5_aes_decrypt_fndecl_28742 gss_krb5_aes_decrypt fndecl 0-2 28742 NULL
137890 +disable_so_sys_clock_getres_fndecl_28754 sys_clock_getres fndecl 1 28754 NULL
137891 +disable_so_addr_max8997_muic_reg_data_28757 addr max8997_muic_reg_data 0 28757 NULL
137892 +disable_so_address_floppy_fdc_state_28762 address floppy_fdc_state 0 28762 NULL
137893 +disable_so_btrfs_uuid_tree_add_fndecl_28765 btrfs_uuid_tree_add fndecl 0-4-5 28765 NULL
137894 +disable_so_default_radio_freq_vardecl_pvrusb2_hdw_c_28767 default_radio_freq vardecl_pvrusb2-hdw.c 0 28767 NULL
137895 +disable_so_ac_stime_pacct_struct_28773 ac_stime pacct_struct 0 28773 NULL
137896 +disable_so___btree_submit_bio_start_fndecl_28775 __btree_submit_bio_start fndecl 0 28775 NULL
137897 +disable_so_add_new_bitmap_fndecl_28783 add_new_bitmap fndecl 3 28783 NULL
137898 +disable_so_cinblock_signal_struct_28789 cinblock signal_struct 0 28789 NULL
137899 +disable_so_bd_list_addr_hi_bnx2i_logout_request_28791 bd_list_addr_hi bnx2i_logout_request 0 28791 NULL
137900 +disable_so_tv_freq_bttv_28796 tv_freq bttv 0 28796 NULL
137901 +disable_so___btrfs_run_delayed_items_fndecl_28804 __btrfs_run_delayed_items fndecl 0-3 28804 NULL nohasharray
137902 +disable_so_dst_addr_dma_slave_config_28804 dst_addr dma_slave_config 0 28804 &disable_so___btrfs_run_delayed_items_fndecl_28804
137903 +disable_so_xfs_bitmap_empty_fndecl_28805 xfs_bitmap_empty fndecl 2 28805 NULL
137904 +disable_so_btrfs_alloc_delayed_item_fndecl_28813 btrfs_alloc_delayed_item fndecl 1 28813 NULL
137905 +disable_so_virtio32_to_cpu_fndecl_28839 virtio32_to_cpu fndecl 0-2 28839 NULL
137906 +disable_so_random_frame_fusbh200_hcd_28840 random_frame fusbh200_hcd 0 28840 NULL
137907 +disable_so_wl1273_fm_set_tx_freq_fndecl_28841 wl1273_fm_set_tx_freq fndecl 2 28841 NULL nohasharray
137908 +disable_so_rip_kvm_regs_28841 rip kvm_regs 0 28841 &disable_so_wl1273_fm_set_tx_freq_fndecl_28841
137909 +disable_so_last_capture_dmaaddr_es1938_28843 last_capture_dmaaddr es1938 0 28843 NULL
137910 +disable_so_mic_is_system_addr_fndecl_28851 mic_is_system_addr fndecl 2 28851 NULL
137911 +disable_so_sst_module_runtime_new_fndecl_28861 sst_module_runtime_new fndecl 2 28861 NULL
137912 +disable_so_nat_blkaddr_f2fs_nm_info_28862 nat_blkaddr f2fs_nm_info 0 28862 NULL
137913 +disable_so_ustrtoul_fndecl_28866 ustrtoul fndecl 0 28866 NULL
137914 +disable_so_tomoyo_write_log2_fndecl_28871 tomoyo_write_log2 fndecl 2 28871 NULL
137915 +disable_so_rate_snd_pcm_oss_runtime_28878 rate snd_pcm_oss_runtime 0 28878 NULL
137916 +disable_so_cl_idle_timeout_ms_o2nm_cluster_28885 cl_idle_timeout_ms o2nm_cluster 0 28885 NULL
137917 +disable_so_pc_clock_adjtime_fndecl_28892 pc_clock_adjtime fndecl 1 28892 NULL
137918 +disable_so_mmc_power_cycle_fndecl_28894 mmc_power_cycle fndecl 2 28894 NULL
137919 +disable_so_cpufreq_get_fndecl_28896 cpufreq_get fndecl 0-1 28896 NULL
137920 +disable_so_ci_get_sleep_divider_id_from_clock_fndecl_28898 ci_get_sleep_divider_id_from_clock fndecl 2 28898 NULL
137921 +disable_so_mmio_writel_intel_uncore_funcs_28903 mmio_writel intel_uncore_funcs 2-3 28903 NULL
137922 +disable_so_cpufreq_stats_init_fndecl_28912 cpufreq_stats_init fndecl 0 28912 NULL
137923 +disable_so_sbp_tpg_attrib_store_mgt_orb_timeout_fndecl_28914 sbp_tpg_attrib_store_mgt_orb_timeout fndecl 0-3 28914 NULL
137924 +disable_so___virtio16_to_cpu_fndecl_28917 __virtio16_to_cpu fndecl 0-2 28917 NULL
137925 +disable_so___pm_runtime_resume_fndecl_28918 __pm_runtime_resume fndecl 0 28918 NULL
137926 +disable_so_task_setpgid_security_operations_28939 task_setpgid security_operations 2 28939 NULL
137927 +disable_so_perf_event_set_clock_fndecl_28941 perf_event_set_clock fndecl 0 28941 NULL
137928 +disable_so_sci_er_interrupt_fndecl_28944 sci_er_interrupt fndecl 1 28944 NULL
137929 +disable_so_mmc_sdio_get_max_clock_fndecl_28945 mmc_sdio_get_max_clock fndecl 0 28945 NULL
137930 +disable_so_dma_addr_cmdQ_28949 dma_addr cmdQ 0 28949 NULL
137931 +disable_so_s_def_resuid_ext3_super_block_28958 s_def_resuid ext3_super_block 0 28958 NULL
137932 +disable_so_init_timer_cpu_fndecl_28961 init_timer_cpu fndecl 2 28961 NULL
137933 +disable_so_sst_hsw_dsp_runtime_suspend_fndecl_28962 sst_hsw_dsp_runtime_suspend fndecl 0 28962 NULL nohasharray
137934 +disable_so_mem_busaddr_ahd_platform_data_28962 mem_busaddr ahd_platform_data 0 28962 &disable_so_sst_hsw_dsp_runtime_suspend_fndecl_28962
137935 +disable_so_xen_setup_timer_fndecl_28968 xen_setup_timer fndecl 1 28968 NULL
137936 +disable_so_vx_clock_mode_info_fndecl_28969 vx_clock_mode_info fndecl 0 28969 NULL
137937 +disable_so_clk_frequency_csis_state_28987 clk_frequency csis_state 0 28987 NULL
137938 +disable_so_cma_clear_bitmap_fndecl_28991 cma_clear_bitmap fndecl 2-3 28991 NULL
137939 +disable_so_tg3_nvram_phys_addr_fndecl_28993 tg3_nvram_phys_addr fndecl 0-2 28993 NULL
137940 +disable_so_ufshcd_init_clocks_fndecl_28995 ufshcd_init_clocks fndecl 0 28995 NULL nohasharray
137941 +disable_so_ima_init_crypto_fndecl_28995 ima_init_crypto fndecl 0 28995 &disable_so_ufshcd_init_clocks_fndecl_28995
137942 +disable_so_i2c_address_ts2020_priv_29002 i2c_address ts2020_priv 0 29002 NULL
137943 +disable_so_gf_mul_fndecl_29007 gf_mul fndecl 0-3 29007 NULL
137944 +disable_so_sys_geteuid_fndecl_29013 sys_geteuid fndecl 0 29013 NULL
137945 +disable_so_do_one_acipher_op_fndecl_29014 do_one_acipher_op fndecl 0-2 29014 NULL
137946 +disable_so_ssb_pmu_get_alp_clock_clk0_fndecl_29019 ssb_pmu_get_alp_clock_clk0 fndecl 0 29019 NULL
137947 +disable_so_addr_ib_sge_29021 addr ib_sge 0 29021 NULL
137948 +disable_so_rdi_kvm_regs_29022 rdi kvm_regs 0 29022 NULL
137949 +disable_so_dma_subdivide_fndecl_29027 dma_subdivide fndecl 3-0 29027 NULL
137950 +disable_so_nilfs_superblock_sb_write_time_secs_show_fndecl_29044 nilfs_superblock_sb_write_time_secs_show fndecl 0 29044 NULL
137951 +disable_so_mlx4_ib_init_gid_table_fndecl_29049 mlx4_ib_init_gid_table fndecl 0 29049 NULL
137952 +disable_so_xfs_bmap_add_attrfork_btree_fndecl_29052 xfs_bmap_add_attrfork_btree fndecl 0 29052 NULL
137953 +disable_so_pcf2123_rtc_set_time_fndecl_29057 pcf2123_rtc_set_time fndecl 0 29057 NULL
137954 +disable_so_vactive_hi_oaktrail_timing_info_29063 vactive_hi oaktrail_timing_info 0 29063 NULL
137955 +disable_so_xfs_btree_lookup_fndecl_29066 xfs_btree_lookup fndecl 0 29066 NULL
137956 +disable_so_si476x_core_cmd_fm_tune_freq_a20_fndecl_29072 si476x_core_cmd_fm_tune_freq_a20 fndecl 0 29072 NULL
137957 +disable_so_hcd_pci_runtime_resume_fndecl_29073 hcd_pci_runtime_resume fndecl 0 29073 NULL
137958 +disable_so_switch_time_wl12xx_cmd_channel_switch_29074 switch_time wl12xx_cmd_channel_switch 0 29074 NULL
137959 +disable_so_ata_internal_cmd_timeout_fndecl_29075 ata_internal_cmd_timeout fndecl 0-2 29075 NULL nohasharray
137960 +disable_so_hash_shift_flow_cache_29075 hash_shift flow_cache 0 29075 &disable_so_ata_internal_cmd_timeout_fndecl_29075
137961 +disable_so_timeout_sg_io_v4_29079 timeout sg_io_v4 0 29079 NULL
137962 +disable_so___btrfs_add_delayed_insertion_item_fndecl_29083 __btrfs_add_delayed_insertion_item fndecl 0 29083 NULL
137963 +disable_so_bn_nchildren_nilfs_btree_node_29084 bn_nchildren nilfs_btree_node 0 29084 NULL
137964 +disable_so_jiffies_vardecl_29085 jiffies vardecl 0 29085 NULL
137965 +disable_so_frag_count_ct_timer_instance_29091 frag_count ct_timer_instance 0 29091 NULL
137966 +disable_so_ref_start_vardecl_tsc_c_29097 ref_start vardecl_tsc.c 0 29097 NULL
137967 +disable_so_timeout_ms_cm_id_private_29104 timeout_ms cm_id_private 0 29104 NULL
137968 +disable_so_nfulnl_set_timeout_fndecl_29106 nfulnl_set_timeout fndecl 2 29106 NULL nohasharray
137969 +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
137970 +disable_so_i_mtime_exofs_fcb_29107 i_mtime exofs_fcb 0 29107 NULL
137971 +disable_so_ss_pt_regs_29109 ss pt_regs 0 29109 NULL
137972 +disable_so_ivsize_ablkcipher_alg_29115 ivsize ablkcipher_alg 0 29115 NULL
137973 +disable_so_signal_strength_rx_status_29125 signal_strength rx_status 0 29125 NULL
137974 +disable_so_radio_rx_freq_vivid_dev_29126 radio_rx_freq vivid_dev 0 29126 NULL
137975 +disable_so_io_virtual_address_ib_pool_fmr_29135 io_virtual_address ib_pool_fmr 0 29135 NULL
137976 +disable_so_addr_low_mcp_kreq_ether_send_29138 addr_low mcp_kreq_ether_send 0 29138 NULL
137977 +disable_so_pad_bits_bitstream_29149 pad_bits bitstream 0 29149 NULL
137978 +disable_so_clockdiv_sd_29154 clockdiv sd 0 29154 NULL
137979 +disable_so_retu_wdt_set_timeout_fndecl_29155 retu_wdt_set_timeout fndecl 2-0 29155 NULL nohasharray
137980 +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
137981 +disable_so_set_ip_addr_fndecl_29159 set_ip_addr fndecl 4 29159 NULL nohasharray
137982 +disable_so_hsync_offset_hi_oaktrail_timing_info_29159 hsync_offset_hi oaktrail_timing_info 0 29159 &disable_so_set_ip_addr_fndecl_29159
137983 +disable_so_valid_phys_addr_range_fndecl_29163 valid_phys_addr_range fndecl 2 29163 NULL
137984 +disable_so_hsw_compute_linetime_wm_fndecl_29166 hsw_compute_linetime_wm fndecl 0 29166 NULL
137985 +disable_so_set_frontend_jiffies_af9013_state_29174 set_frontend_jiffies af9013_state 0 29174 NULL
137986 +disable_so_max_schedule_delay_balloon_stats_29176 max_schedule_delay balloon_stats 0 29176 NULL
137987 +disable_so_matroxfb_mavenclock_fndecl_29182 matroxfb_mavenclock fndecl 2-3 29182 NULL
137988 +disable_so_rrq_stop_time_lpfc_node_rrq_29187 rrq_stop_time lpfc_node_rrq 0 29187 NULL
137989 +disable_so_can_ifindex_sockaddr_can_29188 can_ifindex sockaddr_can 0 29188 NULL
137990 +disable_so_time_hi_and_version_afs_uuid_29192 time_hi_and_version afs_uuid 0 29192 NULL
137991 +disable_so_inode_bitmap_ext4_new_group_data_29195 inode_bitmap ext4_new_group_data 0 29195 NULL
137992 +disable_so_madc_aic31xx_rate_divs_29206 madc aic31xx_rate_divs 0 29206 NULL
137993 +disable_so_i_mtime_ext3_inode_29219 i_mtime ext3_inode 0 29219 NULL
137994 +disable_so_ccp_aes_cmac_finup_fndecl_29220 ccp_aes_cmac_finup fndecl 0 29220 NULL
137995 +disable_so_listen_time_ath5k_ani_state_29228 listen_time ath5k_ani_state 0 29228 NULL
137996 +disable_so_di_mtime_gfs2_dinode_29230 di_mtime gfs2_dinode 0 29230 NULL nohasharray
137997 +disable_so_snd_pcm_hw_rule_mulkdiv_fndecl_29230 snd_pcm_hw_rule_mulkdiv fndecl 0 29230 &disable_so_di_mtime_gfs2_dinode_29230
137998 +disable_so_qlcnic_get_ioaddr_fndecl_29235 qlcnic_get_ioaddr fndecl 2 29235 NULL
137999 +disable_so_si476x_radio_s_hw_freq_seek_fndecl_29237 si476x_radio_s_hw_freq_seek fndecl 0 29237 NULL
138000 +disable_so_SiS_SetRegANDOR_fndecl_29240 SiS_SetRegANDOR fndecl 2-3-5-4 29240 NULL
138001 +disable_so_dev_wait_time_esas2r_sas_nvram_29244 dev_wait_time esas2r_sas_nvram 0 29244 NULL
138002 +disable_so_b44_recycle_rx_fndecl_29255 b44_recycle_rx fndecl 2-3 29255 NULL
138003 +disable_so_max_state_devfreq_dev_profile_29257 max_state devfreq_dev_profile 0 29257 NULL
138004 +disable_so_freq_std_sccnxp_chip_29265 freq_std sccnxp_chip 0 29265 NULL nohasharray
138005 +disable_so___ipv6_addr_diff32_fndecl_29265 __ipv6_addr_diff32 fndecl 0 29265 &disable_so_freq_std_sccnxp_chip_29265
138006 +disable_so_kvm_max_guest_tsc_khz_vardecl_29276 kvm_max_guest_tsc_khz vardecl 0 29276 NULL
138007 +disable_so_ioaddr_velocity_info_29278 ioaddr velocity_info 0 29278 NULL
138008 +disable_so_last_rx_time_xenvif_queue_29307 last_rx_time xenvif_queue 0 29307 NULL
138009 +disable_so_expires_timeriomem_rng_private_data_29310 expires timeriomem_rng_private_data 0 29310 NULL nohasharray
138010 +disable_so_dev_sound_lowlev_timer_29310 dev sound_lowlev_timer 0 29310 &disable_so_expires_timeriomem_rng_private_data_29310
138011 +disable_so_btrfs_set_inode_gid_fndecl_29338 btrfs_set_inode_gid fndecl 3 29338 NULL
138012 +disable_so_i2c_clock_speed_i2c_pca9564_pf_platform_data_29345 i2c_clock_speed i2c_pca9564_pf_platform_data 0 29345 NULL nohasharray
138013 +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
138014 +disable_so_adav80x_set_adc_clock_fndecl_29348 adav80x_set_adc_clock fndecl 2 29348 NULL
138015 +disable_so_mod_size_ccp_rsa_op_29350 mod_size ccp_rsa_op 0 29350 NULL
138016 +disable_so_iscsit_na_random_r2t_offsets_fndecl_29363 iscsit_na_random_r2t_offsets fndecl 0 29363 NULL nohasharray
138017 +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
138018 +disable_so_smsc75xx_set_mac_address_fndecl_29364 smsc75xx_set_mac_address fndecl 0 29364 NULL
138019 +disable_so_m88rs6000t_set_pll_freq_fndecl_29365 m88rs6000t_set_pll_freq fndecl 0-2 29365 NULL
138020 +disable_so_scaled_div_fndecl_29370 scaled_div fndecl 0-1-2 29370 NULL
138021 +disable_so_rtsc_y2x_fndecl_29372 rtsc_y2x fndecl 0-2 29372 NULL
138022 +disable_so_uart_update_timeout_fndecl_29380 uart_update_timeout fndecl 3-2 29380 NULL
138023 +disable_so_dbuf_addr_ath6kl_dbglog_hdr_29381 dbuf_addr ath6kl_dbglog_hdr 0 29381 NULL
138024 +disable_so_sample_rate_div_inv_mpu6050_reg_map_29386 sample_rate_div inv_mpu6050_reg_map 0 29386 NULL nohasharray
138025 +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
138026 +disable_so_nla_parse_nested_fndecl_29395 nla_parse_nested fndecl 2-0 29395 NULL
138027 +disable_so___sched_setscheduler_fndecl_29397 __sched_setscheduler fndecl 0 29397 NULL
138028 +disable_so_add_atomic_switch_msr_special_fndecl_29400 add_atomic_switch_msr_special fndecl 6-7 29400 NULL
138029 +disable_so___xfrm_spi_hash_fndecl_29403 __xfrm_spi_hash fndecl 0-2-3-4-5 29403 NULL
138030 +disable_so_ceph_decode_pgid_fndecl_29407 ceph_decode_pgid fndecl 0 29407 NULL
138031 +disable_so_loc_addr_nes_cm_info_29413 loc_addr nes_cm_info 0 29413 NULL
138032 +disable_so_kxcjk1013_convert_freq_to_bit_fndecl_29417 kxcjk1013_convert_freq_to_bit fndecl 0 29417 NULL
138033 +disable_so_exec_clock_cfs_rq_29423 exec_clock cfs_rq 0 29423 NULL
138034 +disable_so_irst_show_wakeup_time_fndecl_29431 irst_show_wakeup_time fndecl 0 29431 NULL nohasharray
138035 +disable_so_macb_interrupt_fndecl_29431 macb_interrupt fndecl 1 29431 &disable_so_irst_show_wakeup_time_fndecl_29431
138036 +disable_so_crypto_register_notifier_fndecl_29432 crypto_register_notifier fndecl 0 29432 NULL nohasharray
138037 +disable_so_shash_compat_setkey_fndecl_29432 shash_compat_setkey fndecl 0-3 29432 &disable_so_crypto_register_notifier_fndecl_29432
138038 +disable_so_pwm_freq_div_dib8000_config_29434 pwm_freq_div dib8000_config 0 29434 NULL
138039 +disable_so_ds1305_set_time_fndecl_29436 ds1305_set_time fndecl 0 29436 NULL
138040 +disable_so_add_sctp_bind_addr_fndecl_29438 add_sctp_bind_addr fndecl 0-3 29438 NULL
138041 +disable_so___virtio32_to_cpu_fndecl_29440 __virtio32_to_cpu fndecl 0-2 29440 NULL
138042 +disable_so_phonet_address_lookup_fndecl_29442 phonet_address_lookup fndecl 2 29442 NULL
138043 +disable_so_max_timeout_rc_dev_29444 max_timeout rc_dev 0 29444 NULL
138044 +disable_so_address_lo_ips_enh_sglist_29453 address_lo ips_enh_sglist 0 29453 NULL
138045 +disable_so_cdrom_is_random_writable_fndecl_29454 cdrom_is_random_writable fndecl 0 29454 NULL
138046 +disable_so_devblksize_log2_squashfs_sb_info_29455 devblksize_log2 squashfs_sb_info 0 29455 NULL
138047 +disable_so_ps_pspoll_timeouts_read_fndecl_29459 ps_pspoll_timeouts_read fndecl 3-0 29459 NULL
138048 +disable_so_kvm_apic_has_interrupt_fndecl_29462 kvm_apic_has_interrupt fndecl 0 29462 NULL
138049 +disable_so_max6902_read_time_fndecl_29464 max6902_read_time fndecl 0 29464 NULL
138050 +disable_so_get_bit_address_fndecl_29473 get_bit_address fndecl 2 29473 NULL
138051 +disable_so_last_sample_time_vardecl_smscoreapi_c_29477 last_sample_time vardecl_smscoreapi.c 0 29477 NULL nohasharray
138052 +disable_so_btree_readahead_hook_fndecl_29477 btree_readahead_hook fndecl 3-4 29477 &disable_so_last_sample_time_vardecl_smscoreapi_c_29477
138053 +disable_so_final_crypto_ahash_29478 final crypto_ahash 0 29478 NULL
138054 +disable_so_sum_sched_runtime_signal_struct_29480 sum_sched_runtime signal_struct 0 29480 NULL
138055 +disable_so_status_addr_req_29482 status addr_req 0 29482 NULL
138056 +disable_so_micd_dbtime_arizona_pdata_29495 micd_dbtime arizona_pdata 0 29495 NULL
138057 +disable_so_tqi_burst_time_ath5k_txq_info_29499 tqi_burst_time ath5k_txq_info 0 29499 NULL
138058 +disable_so_rs5c372_rtc_read_time_fndecl_29505 rs5c372_rtc_read_time fndecl 0 29505 NULL
138059 +disable_so_pi_write_regr_fndecl_29517 pi_write_regr fndecl 4 29517 NULL
138060 +disable_so_used_cells_ti_tscadc_dev_29522 used_cells ti_tscadc_dev 0 29522 NULL
138061 +disable_so_delay_to_eeprom_index_fndecl_29523 delay_to_eeprom_index fndecl 1 29523 NULL
138062 +disable_so_devfreq_event_get_edev_count_fndecl_29524 devfreq_event_get_edev_count fndecl 0 29524 NULL
138063 +disable_so_pci_enable_msix_range_fndecl_29535 pci_enable_msix_range fndecl 0-4-3 29535 NULL
138064 +disable_so_last_stats_time_ocrdma_dev_29544 last_stats_time ocrdma_dev 0 29544 NULL
138065 +disable_so_sb_c_bitmap_hpfs_sb_info_29558 sb_c_bitmap hpfs_sb_info 0 29558 NULL
138066 +disable_so_submit_time_us_bbio_29575 submit_time_us bbio 0 29575 NULL
138067 +disable_so_bitmap_remap_fndecl_29578 bitmap_remap fndecl 5 29578 NULL
138068 +disable_so_ath_force_no_ir_freq_fndecl_29580 ath_force_no_ir_freq fndecl 2 29580 NULL
138069 +disable_so_time_slice_start_ieee80211_sta_tx_tspec_29586 time_slice_start ieee80211_sta_tx_tspec 0 29586 NULL
138070 +disable_so_mlx4_get_roce_gid_from_slave_fndecl_29587 mlx4_get_roce_gid_from_slave fndecl 2-3 29587 NULL
138071 +disable_so_signalfd_read_fndecl_29589 signalfd_read fndecl 0 29589 NULL
138072 +disable_so_iscsi_nacl_attrib_show_random_datain_seq_offsets_fndecl_29602 iscsi_nacl_attrib_show_random_datain_seq_offsets fndecl 0 29602 NULL
138073 +disable_so_it913x_sleep_fndecl_29615 it913x_sleep fndecl 0 29615 NULL
138074 +disable_so_phy_addr_external_netdev_private_29618 phy_addr_external netdev_private 0 29618 NULL
138075 +disable_so_ssb_clockspeed_fndecl_29627 ssb_clockspeed fndecl 0 29627 NULL
138076 +disable_so_tx_int_delay_e1000_adapter_29628 tx_int_delay e1000_adapter 0 29628 NULL
138077 +disable_so_qlcnic_83xx_idc_check_timeout_fndecl_29633 qlcnic_83xx_idc_check_timeout fndecl 0 29633 NULL
138078 +disable_so_tegra_wdt_get_timeleft_fndecl_29649 tegra_wdt_get_timeleft fndecl 0 29649 NULL
138079 +disable_so_get_intermediate_cpufreq_driver_29653 get_intermediate cpufreq_driver 0 29653 NULL
138080 +disable_so_lpfc_debugfs_start_time_vardecl_lpfc_debugfs_c_29655 lpfc_debugfs_start_time vardecl_lpfc_debugfs.c 0 29655 NULL
138081 +disable_so_check_addr_fndecl_29658 check_addr fndecl 3-4 29658 NULL
138082 +disable_so_irlap_start_poll_timer_fndecl_29663 irlap_start_poll_timer fndecl 2 29663 NULL nohasharray
138083 +disable_so_mlx5_query_node_guid_fndecl_29663 mlx5_query_node_guid fndecl 0 29663 &disable_so_irlap_start_poll_timer_fndecl_29663
138084 +disable_so_read_addr_qla8044_minidump_entry_rdrom_29676 read_addr qla8044_minidump_entry_rdrom 0 29676 NULL nohasharray
138085 +disable_so_to_addr_param_sctp_af_29676 to_addr_param sctp_af 0 29676 &disable_so_read_addr_qla8044_minidump_entry_rdrom_29676
138086 +disable_so_buf_addr_mlx4_ib_create_cq_29678 buf_addr mlx4_ib_create_cq 0 29678 NULL
138087 +disable_so_forward_delay_timer_value___port_info_29680 forward_delay_timer_value __port_info 0 29680 NULL
138088 +disable_so_packet_life_time_ib_sa_mcmember_rec_29682 packet_life_time ib_sa_mcmember_rec 0 29682 NULL
138089 +disable_so_batadv_hash_dat_fndecl_29684 batadv_hash_dat fndecl 0-2 29684 NULL
138090 +disable_so_qxl_bo_physical_address_fndecl_29696 qxl_bo_physical_address fndecl 0-3 29696 NULL
138091 +disable_so_hspi_status_check_timeout_fndecl_29712 hspi_status_check_timeout fndecl 0 29712 NULL
138092 +disable_so_nes_addr_resolve_neigh_fndecl_29717 nes_addr_resolve_neigh fndecl 0-2-3 29717 NULL
138093 +disable_so_hash2pos_fndecl_29725 hash2pos fndecl 0-2-3 29725 NULL
138094 +disable_so_bcma_chipco_watchdog_timer_set_fndecl_29730 bcma_chipco_watchdog_timer_set fndecl 2-0 29730 NULL
138095 +disable_so_hor_addr_via_display_timing_29736 hor_addr via_display_timing 0 29736 NULL
138096 +disable_so_ceph_str_hash_fndecl_29742 ceph_str_hash fndecl 0-3 29742 NULL
138097 +disable_so_qla2x00_gid_pt_fndecl_29752 qla2x00_gid_pt fndecl 0 29752 NULL nohasharray
138098 +disable_so_ocfs2_xattr_name_hash_fndecl_29752 ocfs2_xattr_name_hash fndecl 0-3 29752 &disable_so_qla2x00_gid_pt_fndecl_29752
138099 +disable_so_kstrtouint_from_user_fndecl_29755 kstrtouint_from_user fndecl 0-2 29755 NULL
138100 +disable_so_get_timeout_clock_sdhci_ops_29760 get_timeout_clock sdhci_ops 0 29760 NULL nohasharray
138101 +disable_so_curfreq_raremono_device_29760 curfreq raremono_device 0 29760 &disable_so_get_timeout_clock_sdhci_ops_29760
138102 +disable_so_send_time_batadv_forw_packet_29762 send_time batadv_forw_packet 0 29762 NULL
138103 +disable_so_ms_brcms_timer_29763 ms brcms_timer 0 29763 NULL nohasharray
138104 +disable_so_lp872x_get_timestep_usec_fndecl_29763 lp872x_get_timestep_usec fndecl 0 29763 &disable_so_ms_brcms_timer_29763
138105 +disable_so_bmap_address_space_operations_29766 bmap address_space_operations 2 29766 NULL
138106 +disable_so_ds1390_set_time_fndecl_29768 ds1390_set_time fndecl 0 29768 NULL
138107 +disable_so_release_jiffies_dvb_frontend_private_29775 release_jiffies dvb_frontend_private 0 29775 NULL
138108 +disable_so_hsw_pcm_runtime_resume_fndecl_29777 hsw_pcm_runtime_resume fndecl 0 29777 NULL
138109 +disable_so_pcan_usb_set_bittiming_fndecl_29781 pcan_usb_set_bittiming fndecl 0 29781 NULL
138110 +disable_so_pmcraid_disable_interrupts_fndecl_29788 pmcraid_disable_interrupts fndecl 2 29788 NULL
138111 +disable_so_bit_line_usb_fifo_29792 bit_line usb_fifo 0 29792 NULL
138112 +disable_so_hash_name_fndecl_29814 hash_name fndecl 0 29814 NULL
138113 +disable_so_t4vf_set_addr_hash_fndecl_29821 t4vf_set_addr_hash fndecl 0-2 29821 NULL
138114 +disable_so_bit_length_acpi_object_region_field_29824 bit_length acpi_object_region_field 0 29824 NULL
138115 +disable_so_native_read_tsc_fndecl_29825 native_read_tsc fndecl 0 29825 NULL
138116 +disable_so_sha256_base_do_update_fndecl_29849 sha256_base_do_update fndecl 3 29849 NULL
138117 +disable_so_timeout_ip_vs_conn_29852 timeout ip_vs_conn 0 29852 NULL
138118 +disable_so_conn_db_addr_hi_fcoe_kwqe_conn_offload2_29864 conn_db_addr_hi fcoe_kwqe_conn_offload2 0 29864 NULL
138119 +disable_so_timeout_type_timeout_parms_29877 timeout_type timeout_parms 0 29877 NULL
138120 +disable_so_arch_apei_filter_addr_vardecl_29884 arch_apei_filter_addr vardecl 0 29884 NULL
138121 +disable_so_crypto_shash_import_fndecl_29885 crypto_shash_import fndecl 0 29885 NULL
138122 +disable_so_ktime_get_ns_fndecl_29890 ktime_get_ns fndecl 0 29890 NULL
138123 +disable_so_store_scaling_min_freq_fndecl_29892 store_scaling_min_freq fndecl 0-3 29892 NULL
138124 +disable_so_nfsd_map_name_to_uid_fndecl_29920 nfsd_map_name_to_uid fndecl 0 29920 NULL
138125 +disable_so_min_interrupt_in_interval_vardecl_ldusb_c_29924 min_interrupt_in_interval vardecl_ldusb.c 0 29924 NULL
138126 +disable_so_cdv_intel_clock_fndecl_29931 cdv_intel_clock fndecl 1 29931 NULL
138127 +disable_so_di_mtime_efs_dinode_29934 di_mtime efs_dinode 0 29934 NULL nohasharray
138128 +disable_so_hpet_freq_vardecl_hpet_c_29934 hpet_freq vardecl_hpet.c 0 29934 &disable_so_di_mtime_efs_dinode_29934
138129 +disable_so_shash_async_setkey_fndecl_29939 shash_async_setkey fndecl 0-3 29939 NULL
138130 +disable_so_qs_btimelimit_fs_quota_statv_29943 qs_btimelimit fs_quota_statv 0 29943 NULL
138131 +disable_so_addr_mpr121_init_register_29945 addr mpr121_init_register 0 29945 NULL
138132 +disable_so_pixelclock_v4l2_bt_timings_29967 pixelclock v4l2_bt_timings 0 29967 NULL
138133 +disable_so_spi_imx_clkdiv_2_fndecl_29968 spi_imx_clkdiv_2 fndecl 1-2 29968 NULL
138134 +disable_so_ed_uuid_drbd_device_29970 ed_uuid drbd_device 0 29970 NULL
138135 +disable_so_timestamp_nfs_release_lockowner_data_29972 timestamp nfs_release_lockowner_data 0 29972 NULL
138136 +disable_so_smp_send_reschedule_smp_ops_29981 smp_send_reschedule smp_ops 1 29981 NULL
138137 +disable_so_lm3533_led_delay_set_fndecl_29984 lm3533_led_delay_set fndecl 0-2 29984 NULL
138138 +disable_so_rx_errors_rtnl_link_stats64_29988 rx_errors rtnl_link_stats64 0 29988 NULL
138139 +disable_so_fm10k_read_reg_fndecl_29989 fm10k_read_reg fndecl 0-2 29989 NULL
138140 +disable_so_timeout_jiffies_tifm_ms_29995 timeout_jiffies tifm_ms 0 29995 NULL nohasharray
138141 +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
138142 +disable_so_wait_on_bit_lock_fndecl_30009 wait_on_bit_lock fndecl 0 30009 NULL
138143 +disable_so_rx8025_get_clock_adjust_fndecl_30011 rx8025_get_clock_adjust fndecl 0 30011 NULL
138144 +disable_so_sem_ctime_sem_array_30014 sem_ctime sem_array 0 30014 NULL
138145 +disable_so_sleep_mask_bma180_part_info_30016 sleep_mask bma180_part_info 0 30016 NULL
138146 +disable_so_demod_address_zl10353_config_30017 demod_address zl10353_config 0 30017 NULL
138147 +disable_so_msr_amixer_desc_30027 msr amixer_desc 0 30027 NULL
138148 +disable_so_diolan_usb_transfer_fndecl_30033 diolan_usb_transfer fndecl 0 30033 NULL
138149 +disable_so_mlx4_get_slave_from_roce_gid_fndecl_30035 mlx4_get_slave_from_roce_gid fndecl 2 30035 NULL
138150 +disable_so_or51211_read_signal_strength_fndecl_30044 or51211_read_signal_strength fndecl 0 30044 NULL
138151 +disable_so_panel_power_up_delay_intel_dp_30048 panel_power_up_delay intel_dp 0 30048 NULL
138152 +disable_so_bit_bmove_fndecl_30057 bit_bmove fndecl 3-4-5-6-7-8 30057 NULL
138153 +disable_so_posix_cpu_clock_getres_fndecl_30065 posix_cpu_clock_getres fndecl 1 30065 NULL
138154 +disable_so_ktime_divns_fndecl_30067 ktime_divns fndecl 0-2 30067 NULL
138155 +disable_so_vsync_offset_hi_oaktrail_timing_info_30079 vsync_offset_hi oaktrail_timing_info 0 30079 NULL
138156 +disable_so_msr_host_kernel_gs_base_vcpu_vmx_30082 msr_host_kernel_gs_base vcpu_vmx 0 30082 NULL
138157 +disable_so_r6d_val_fc2580_freq_regs_30084 r6d_val fc2580_freq_regs 0 30084 NULL
138158 +disable_so_qlcnic_pci_get_crb_addr_2M_fndecl_30093 qlcnic_pci_get_crb_addr_2M fndecl 2 30093 NULL
138159 +disable_so_btrfs_commit_inode_delayed_items_fndecl_30109 btrfs_commit_inode_delayed_items fndecl 0 30109 NULL
138160 +disable_so_usec_delay_e1000_mbx_info_30132 usec_delay e1000_mbx_info 0 30132 NULL
138161 +disable_so_inet6_rtm_getaddr_fndecl_30136 inet6_rtm_getaddr fndecl 0 30136 NULL
138162 +disable_so_busaddr_reply_queue_buffer_30140 busaddr reply_queue_buffer 0 30140 NULL
138163 +disable_so_show_pwm_auto_spinup_time_fndecl_30149 show_pwm_auto_spinup_time fndecl 0 30149 NULL
138164 +disable_so_addr_rds_iovec_30161 addr rds_iovec 0 30161 NULL
138165 +disable_so___nlm_hash_addr4_fndecl_30164 __nlm_hash_addr4 fndecl 0 30164 NULL
138166 +disable_so_ctime_cs_msdos_dir_entry_30167 ctime_cs msdos_dir_entry 0 30167 NULL
138167 +disable_so_next_otg_timer_ci_hdrc_30174 next_otg_timer ci_hdrc 0 30174 NULL
138168 +disable_so_select_addr_qla82xx_md_entry_mux_30183 select_addr qla82xx_md_entry_mux 0 30183 NULL
138169 +disable_so_qi_itimelimit_xfs_quotainfo_30196 qi_itimelimit xfs_quotainfo 0 30196 NULL
138170 +disable_so_iowrite32_fndecl_30197 iowrite32 fndecl 1 30197 NULL
138171 +disable_so_hash_ipportip6_expire_fndecl_30205 hash_ipportip6_expire fndecl 4 30205 NULL
138172 +disable_so_argument_acpi_signal_fatal_info_30208 argument acpi_signal_fatal_info 0 30208 NULL
138173 +disable_so_btree_write_cache_pages_fndecl_30231 btree_write_cache_pages fndecl 0 30231 NULL
138174 +disable_so_clock_audioformat_30236 clock audioformat 0 30236 NULL
138175 +disable_so_to_retries_rpc_timeout_30265 to_retries rpc_timeout 0 30265 NULL
138176 +disable_so_last_moder_jiffies_mlx4_en_priv_30269 last_moder_jiffies mlx4_en_priv 0 30269 NULL nohasharray
138177 +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
138178 +disable_so_start_empty_time_cfqg_stats_30276 start_empty_time cfqg_stats 0 30276 NULL nohasharray
138179 +disable_so_i2c_addr_dib7000m_state_30276 i2c_addr dib7000m_state 0 30276 &disable_so_start_empty_time_cfqg_stats_30276
138180 +disable_so_ext_phy_addr_amd8111e_priv_30286 ext_phy_addr amd8111e_priv 0 30286 NULL
138181 +disable_so___account_cfs_rq_runtime_fndecl_30291 __account_cfs_rq_runtime fndecl 2 30291 NULL
138182 +disable_so_snd_pcm_delay_fndecl_30298 snd_pcm_delay fndecl 0 30298 NULL
138183 +disable_so_lpfc_cr_delay_store_fndecl_30310 lpfc_cr_delay_store fndecl 0 30310 NULL
138184 +disable_so_uartlite_outbe32_fndecl_30324 uartlite_outbe32 fndecl 1 30324 NULL
138185 +disable_so_intel_runtime_resume_fndecl_30334 intel_runtime_resume fndecl 0 30334 NULL
138186 +disable_so_hv_tsc_page_kvm_arch_30336 hv_tsc_page kvm_arch 0 30336 NULL
138187 +disable_so_snprintf_int_array_fndecl_30344 snprintf_int_array fndecl 2 30344 NULL
138188 +disable_so___hw_addr_sync_one_fndecl_30350 __hw_addr_sync_one fndecl 0-3 30350 NULL
138189 +disable_so_tuner_addr_em28xx_board_30367 tuner_addr em28xx_board 0 30367 NULL
138190 +disable_so_stat_params_addr_hi_fcoe_kwqe_stat_30370 stat_params_addr_hi fcoe_kwqe_stat 0 30370 NULL
138191 +disable_so_tv_hsync_delay2_nv04_crtc_reg_30375 tv_hsync_delay2 nv04_crtc_reg 0 30375 NULL
138192 +disable_so_wlc_phy_table_addr_fndecl_30378 wlc_phy_table_addr fndecl 2-3-4-5-6 30378 NULL
138193 +disable_so_rsa_setkey_fndecl_30386 rsa_setkey fndecl 3 30386 NULL
138194 +disable_so_bcma_pmu_get_alp_clock_fndecl_30397 bcma_pmu_get_alp_clock fndecl 0 30397 NULL
138195 +disable_so_timeout_nft_set_30398 timeout nft_set 0 30398 NULL
138196 +disable_so_cm_create_timewait_info_fndecl_30403 cm_create_timewait_info fndecl 1 30403 NULL
138197 +disable_so_start_time_bfa_diag_dport_result_s_30404 start_time bfa_diag_dport_result_s 0 30404 NULL
138198 +disable_so_fw_schedule_bm_work_fndecl_30422 fw_schedule_bm_work fndecl 2 30422 NULL
138199 +disable_so_xs_get_random_port_fndecl_30424 xs_get_random_port fndecl 0 30424 NULL
138200 +disable_so_ba0_addr_snd_cs46xx_30426 ba0_addr snd_cs46xx 0 30426 NULL
138201 +disable_so_rx_interframe_timeout_wil6210_priv_30430 rx_interframe_timeout wil6210_priv 0 30430 NULL
138202 +disable_so_xfs_uuid_mount_fndecl_30439 xfs_uuid_mount fndecl 0 30439 NULL nohasharray
138203 +disable_so_avtab_hash_fndecl_30439 avtab_hash fndecl 0-2 30439 &disable_so_xfs_uuid_mount_fndecl_30439
138204 +disable_so_snd_seq_queue_timer_close_fndecl_30450 snd_seq_queue_timer_close fndecl 1 30450 NULL nohasharray
138205 +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
138206 +disable_so_powerdown_delay_divider_sta350_platform_data_30459 powerdown_delay_divider sta350_platform_data 0 30459 NULL nohasharray
138207 +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
138208 +disable_so__regulator_get_enable_time_fndecl_30467 _regulator_get_enable_time fndecl 0 30467 NULL
138209 +disable_so_hpet_set_alarm_time_fndecl_30469 hpet_set_alarm_time fndecl 3-2-1 30469 NULL
138210 +disable_so_ctime_nsec_ubifs_ino_node_30480 ctime_nsec ubifs_ino_node 0 30480 NULL
138211 +disable_so_ocfb_writereg_fndecl_30484 ocfb_writereg fndecl 3 30484 NULL
138212 +disable_so_i2c_smbus_read_word_data_fndecl_30505 i2c_smbus_read_word_data fndecl 0-2 30505 NULL nohasharray
138213 +disable_so_r13_kvm_regs_30505 r13 kvm_regs 0 30505 &disable_so_i2c_smbus_read_word_data_fndecl_30505
138214 +disable_so_cb_gsc_addr_30507 cb gsc_addr 0 30507 NULL
138215 +disable_so_freq_mwifiex_chan_freq_power_30518 freq mwifiex_chan_freq_power 0 30518 NULL
138216 +disable_so_fflp_hash_clear_fndecl_30528 fflp_hash_clear fndecl 0 30528 NULL
138217 +disable_so_time_stamp_ixgb_buffer_30530 time_stamp ixgb_buffer 0 30530 NULL
138218 +disable_so_lbs_sleepparams_read_fndecl_30539 lbs_sleepparams_read fndecl 3-0 30539 NULL
138219 +disable_so_extract_freq_fndecl_30555 extract_freq fndecl 0-1 30555 NULL
138220 +disable_so_ndiv_int_pmu1_plltab_entry_30559 ndiv_int pmu1_plltab_entry 0 30559 NULL
138221 +disable_so_u1_timeout_store_fndecl_30569 u1_timeout_store fndecl 0-4 30569 NULL
138222 +disable_so_queue_working_time_show_fndecl_30574 queue_working_time_show fndecl 0 30574 NULL
138223 +disable_so_addr_atiixp_30579 addr atiixp 0 30579 NULL
138224 +disable_so_c67x00_ll_write_mem_le16_fndecl_30584 c67x00_ll_write_mem_le16 fndecl 2-4 30584 NULL
138225 +disable_so_demod_address_atbm8830_config_30586 demod_address atbm8830_config 0 30586 NULL
138226 +disable_so_crypto_hash_digest_fndecl_30590 crypto_hash_digest fndecl 0-3 30590 NULL
138227 +disable_so_addr_filter__MGSL_PARAMS_30592 addr_filter _MGSL_PARAMS 0 30592 NULL
138228 +disable_so_clock_khz_dib0070_config_30609 clock_khz dib0070_config 0 30609 NULL
138229 +disable_so_sha1_mb_final_fndecl_30610 sha1_mb_final fndecl 0 30610 NULL
138230 +disable_so_tw_rcv_nxt_tcp_timewait_sock_30612 tw_rcv_nxt tcp_timewait_sock 0 30612 NULL
138231 +disable_so_xtal_freq_stb0899_config_30613 xtal_freq stb0899_config 0 30613 NULL
138232 +disable_so_di_ctime_qnx6_inode_entry_30614 di_ctime qnx6_inode_entry 0 30614 NULL
138233 +disable_so_start_time_lpfc_scsi_buf_30621 start_time lpfc_scsi_buf 0 30621 NULL
138234 +disable_so_xfs_btree_log_keys_fndecl_30625 xfs_btree_log_keys fndecl 3-4 30625 NULL
138235 +disable_so_pcpu_chunk_addr_fndecl_30628 pcpu_chunk_addr fndecl 0-2-3 30628 NULL
138236 +disable_so_day_timestamp_30633 day timestamp 0 30633 NULL
138237 +disable_so_rds_cong_from_addr_fndecl_30634 rds_cong_from_addr fndecl 1 30634 NULL
138238 +disable_so_tx_dma_addr_smsc9420_pdata_30649 tx_dma_addr smsc9420_pdata 0 30649 NULL
138239 +disable_so_xact_addr_filt_port_info_30664 xact_addr_filt port_info 0 30664 NULL
138240 +disable_so_slot_time_rtl8180_priv_30669 slot_time rtl8180_priv 0 30669 NULL
138241 +disable_so_store_guid_fndecl_30675 store_guid fndecl 0 30675 NULL
138242 +disable_so_input_addr_to_csrow_fndecl_30677 input_addr_to_csrow fndecl 0-2 30677 NULL
138243 +disable_so_sq_read_base_addr_a1_btmrvl_sdio_card_reg_30692 sq_read_base_addr_a1 btmrvl_sdio_card_reg 0 30692 NULL
138244 +disable_so_fq_codel_hash_fndecl_30698 fq_codel_hash fndecl 0 30698 NULL
138245 +disable_so_btrfs_add_delayed_extent_op_fndecl_30699 btrfs_add_delayed_extent_op fndecl 0-3-4 30699 NULL
138246 +disable_so_enabled_hrtimer_events_fotg210_hcd_30705 enabled_hrtimer_events fotg210_hcd 0 30705 NULL
138247 +disable_so_shift_sm501_clock_30710 shift sm501_clock 0 30710 NULL
138248 +disable_so_tov_in_jiffies_tpacket_kbdq_core_30716 tov_in_jiffies tpacket_kbdq_core 0 30716 NULL nohasharray
138249 +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
138250 +disable_so_fill_addr_fndecl_30730 fill_addr fndecl 0-3-4-6 30730 NULL
138251 +disable_so_policy_hash_bysel_fndecl_30767 policy_hash_bysel fndecl 3 30767 NULL
138252 +disable_so_flags_to_set_btrfs_delayed_extent_op_30771 flags_to_set btrfs_delayed_extent_op 0 30771 NULL
138253 +disable_so_blk_mq_alloc_bitmap_fndecl_30774 blk_mq_alloc_bitmap fndecl 2 30774 NULL
138254 +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
138255 +disable_so_pm_runtime_get_fndecl_30787 pm_runtime_get fndecl 0 30787 NULL
138256 +disable_so_dln2_spi_runtime_suspend_fndecl_30789 dln2_spi_runtime_suspend fndecl 0 30789 NULL
138257 +disable_so_rq_page_table_addr_hi_iscsi_kwqe_conn_offload2_30790 rq_page_table_addr_hi iscsi_kwqe_conn_offload2 0 30790 NULL
138258 +disable_so_crypto_authenc_esn_decrypt_fndecl_30793 crypto_authenc_esn_decrypt fndecl 0 30793 NULL
138259 +disable_so_brcmf_cfg80211_wait_vif_event_timeout_fndecl_30794 brcmf_cfg80211_wait_vif_event_timeout fndecl 3-0 30794 NULL
138260 +disable_so_sctp_getsockopt_nodelay_fndecl_30795 sctp_getsockopt_nodelay fndecl 0 30795 NULL nohasharray
138261 +disable_so_sll_pkttype_sockaddr_ll_30795 sll_pkttype sockaddr_ll 0 30795 &disable_so_sctp_getsockopt_nodelay_fndecl_30795
138262 +disable_so_txfunaddr_musb_csr_regs_30797 txfunaddr musb_csr_regs 0 30797 NULL
138263 +disable_so_hash_phys_wd719x_30798 hash_phys wd719x 0 30798 NULL
138264 +disable_so_io_base_address_info_30800 io_base address_info 0 30800 NULL
138265 +disable_so_dummy_buffer_addr_lo_iscsi_kwqe_init1_30804 dummy_buffer_addr_lo iscsi_kwqe_init1 0 30804 NULL
138266 +disable_so_root_btrfs_delayed_tree_ref_30811 root btrfs_delayed_tree_ref 0 30811 NULL nohasharray
138267 +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
138268 +disable_so_mmc_test_random_write_perf_fndecl_30814 mmc_test_random_write_perf fndecl 0 30814 NULL
138269 +disable_so_block_num_ib_sa_guidinfo_rec_30816 block_num ib_sa_guidinfo_rec 0 30816 NULL
138270 +disable_so_decode_attr_time_metadata_fndecl_30823 decode_attr_time_metadata fndecl 0 30823 NULL nohasharray
138271 +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
138272 +disable_so_first_frag_time_ieee80211_fragment_entry_30835 first_frag_time ieee80211_fragment_entry 0 30835 NULL nohasharray
138273 +disable_so_ccp_crypto_success_fndecl_30835 ccp_crypto_success fndecl 1 30835 &disable_so_first_frag_time_ieee80211_fragment_entry_30835 nohasharray
138274 +disable_so_recent_entry_hash4_fndecl_30835 recent_entry_hash4 fndecl 0 30835 &disable_so_ccp_crypto_success_fndecl_30835
138275 +disable_so_rp0_freq_intel_gen6_power_mgmt_30837 rp0_freq intel_gen6_power_mgmt 0 30837 NULL
138276 +disable_so_dm_btree_walk_fndecl_30840 dm_btree_walk fndecl 0-2 30840 NULL
138277 +disable_so_hid_descriptor_address_i2c_hid_platform_data_30846 hid_descriptor_address i2c_hid_platform_data 0 30846 NULL
138278 +disable_so_address_acpi_mcfg_allocation_30855 address acpi_mcfg_allocation 0 30855 NULL
138279 +disable_so_hpfs_truncate_btree_fndecl_30857 hpfs_truncate_btree fndecl 2-4 30857 NULL
138280 +disable_so_timestamp_transaction_30860 timestamp transaction 0 30860 NULL
138281 +disable_so_crypto_pcbc_encrypt_inplace_fndecl_30862 crypto_pcbc_encrypt_inplace fndecl 0 30862 NULL
138282 +disable_so_part_time_mmc_ext_csd_30871 part_time mmc_ext_csd 0 30871 NULL
138283 +disable_so_vpd_paddr_high_lpfc_mbx_read_rev_30896 vpd_paddr_high lpfc_mbx_read_rev 0 30896 NULL
138284 +disable_so_addr_nvkm_fifo_chan_30902 addr nvkm_fifo_chan 0 30902 NULL
138285 +disable_so_crypto_register_algs_fndecl_30905 crypto_register_algs fndecl 0 30905 NULL nohasharray
138286 +disable_so_dhash_entries_vardecl_dcache_c_30905 dhash_entries vardecl_dcache.c 0 30905 &disable_so_crypto_register_algs_fndecl_30905
138287 +disable_so_bank_base_capture_addr_snd_ymfpci_30915 bank_base_capture_addr snd_ymfpci 0 30915 NULL
138288 +disable_so_t2_hash_tbl_addr_hi_fcoe_kwqe_init2_30918 t2_hash_tbl_addr_hi fcoe_kwqe_init2 0 30918 NULL nohasharray
138289 +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
138290 +disable_so_cpufreq_set_fndecl_30921 cpufreq_set fndecl 2 30921 NULL
138291 +disable_so_phys_addr_sge_fl_30927 phys_addr sge_fl 0 30927 NULL
138292 +disable_so_brcms_c_calc_ack_time_fndecl_30936 brcms_c_calc_ack_time fndecl 0-2 30936 NULL
138293 +disable_so_limit_gma_clock_funcs_30938 limit gma_clock_funcs 2 30938 NULL nohasharray
138294 +disable_so_xenbus_printf_fndecl_30938 xenbus_printf fndecl 0 30938 &disable_so_limit_gma_clock_funcs_30938
138295 +disable_so_qlcnic_decode_crb_addr_fndecl_30939 qlcnic_decode_crb_addr fndecl 0-1 30939 NULL
138296 +disable_so_last_sleep_jiffies_rtl_ps_ctl_30947 last_sleep_jiffies rtl_ps_ctl 0 30947 NULL nohasharray
138297 +disable_so___virtio64_to_cpu_fndecl_30947 __virtio64_to_cpu fndecl 0 30947 &disable_so_last_sleep_jiffies_rtl_ps_ctl_30947
138298 +disable_so_do_one_ahash_op_fndecl_30974 do_one_ahash_op fndecl 0-2 30974 NULL
138299 +disable_so_dev_bus_addr_gnttab_map_grant_ref_30975 dev_bus_addr gnttab_map_grant_ref 0 30975 NULL
138300 +disable_so_sctp_getsockopt_delayed_ack_fndecl_30979 sctp_getsockopt_delayed_ack fndecl 2-0 30979 NULL
138301 +disable_so_mclk_div_cfb_info_30983 mclk_div cfb_info 0 30983 NULL
138302 +disable_so_HYPERVISOR_update_va_mapping_fndecl_30985 HYPERVISOR_update_va_mapping fndecl 1 30985 NULL
138303 +disable_so_xfrm_addr_any_fndecl_30992 xfrm_addr_any fndecl 2 30992 NULL
138304 +disable_so_cyapa_gen5_deep_sleep_fndecl_30993 cyapa_gen5_deep_sleep fndecl 0 30993 NULL
138305 +disable_so_addr_unlock1_cfi_private_30996 addr_unlock1 cfi_private 0 30996 NULL
138306 +disable_so_adc_cell_ti_tscadc_dev_31010 adc_cell ti_tscadc_dev 0 31010 NULL
138307 +disable_so_vpe_runtime_get_fndecl_31015 vpe_runtime_get fndecl 0 31015 NULL
138308 +disable_so_crypto_cts_module_init_fndecl_31019 crypto_cts_module_init fndecl 0 31019 NULL
138309 +disable_so_show_fan_stop_time_fndecl_31023 show_fan_stop_time fndecl 0 31023 NULL
138310 +disable_so_addr_bnx2_fw_file_section_31025 addr bnx2_fw_file_section 0 31025 NULL
138311 +disable_so_seg_addr_xhci_erst_entry_31037 seg_addr xhci_erst_entry 0 31037 NULL
138312 +disable_so_fb_get_hblank_by_hfreq_fndecl_31039 fb_get_hblank_by_hfreq fndecl 0-1-2 31039 NULL
138313 +disable_so_addr_hif_scatter_req_31042 addr hif_scatter_req 0 31042 NULL
138314 +disable_so_sg_page_iter_dma_address_fndecl_31047 sg_page_iter_dma_address fndecl 0 31047 NULL
138315 +disable_so_btrfsic_block_hashtable_lookup_fndecl_31074 btrfsic_block_hashtable_lookup fndecl 2 31074 NULL
138316 +disable_so_tm6000_set_reg_fndecl_31090 tm6000_set_reg fndecl 0-3-4 31090 NULL
138317 +disable_so_sense_buf_phys_addr_lo_megasas_io_frame_31098 sense_buf_phys_addr_lo megasas_io_frame 0 31098 NULL
138318 +disable_so_batadv_iv_ogm_emit_send_time_fndecl_31100 batadv_iv_ogm_emit_send_time fndecl 0 31100 NULL
138319 +disable_so_pcf8563_rtc_set_time_fndecl_31101 pcf8563_rtc_set_time fndecl 0 31101 NULL
138320 +disable_so_s_extPosition_udf_bitmap_31104 s_extPosition udf_bitmap 0 31104 NULL
138321 +disable_so_base_io_addr__hp_host_info_31105 base_io_addr _hp_host_info 0 31105 NULL
138322 +disable_so_tsi721_omsg_interrupt_disable_fndecl_31108 tsi721_omsg_interrupt_disable fndecl 3-2 31108 NULL
138323 +disable_so_ac_etime_acct_v3_31115 ac_etime acct_v3 0 31115 NULL
138324 +disable_so_io_bitmap_a_vmcs12_31120 io_bitmap_a vmcs12 0 31120 NULL
138325 +disable_so_vddci_radeon_clock_and_voltage_limits_31124 vddci radeon_clock_and_voltage_limits 0 31124 NULL
138326 +disable_so_format_snd_pcm_runtime_31130 format snd_pcm_runtime 0 31130 NULL
138327 +disable_so_ds3232_set_time_fndecl_31132 ds3232_set_time fndecl 0 31132 NULL
138328 +disable_so_mlx4_bitmap_init_fndecl_31138 mlx4_bitmap_init fndecl 0-2-3-4-5 31138 NULL
138329 +disable_so_nfs4_xdr_dec_get_lease_time_fndecl_31141 nfs4_xdr_dec_get_lease_time fndecl 0 31141 NULL
138330 +disable_so_active_ata_timing_31146 active ata_timing 0 31146 NULL
138331 +disable_so_cpuidle_register_driver_fndecl_31155 cpuidle_register_driver fndecl 0 31155 NULL
138332 +disable_so_sha1_ssse3_mod_init_fndecl_31158 sha1_ssse3_mod_init fndecl 0 31158 NULL
138333 +disable_so_trust_timeout_wusbhc_31165 trust_timeout wusbhc 0 31165 NULL
138334 +disable_so___crypto_memneq_generic_fndecl_31174 __crypto_memneq_generic fndecl 3 31174 NULL
138335 +disable_so_hash_ipportip4_expire_fndecl_31188 hash_ipportip4_expire fndecl 4 31188 NULL
138336 +disable_so_timestamp_sniffed_purge_batadv_priv_nc_31190 timestamp_sniffed_purge batadv_priv_nc 0 31190 NULL
138337 +disable_so_i915_min_freq_get_fndecl_31193 i915_min_freq_get fndecl 0 31193 NULL
138338 +disable_so_max_scan_time_wmi_start_scan_arg_31206 max_scan_time wmi_start_scan_arg 0 31206 NULL nohasharray
138339 +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
138340 +disable_so_adis16136_read_frequency_fndecl_31213 adis16136_read_frequency fndecl 0 31213 NULL
138341 +disable_so_dce_v11_0_crtc_set_base_atomic_fndecl_31215 dce_v11_0_crtc_set_base_atomic fndecl 0 31215 NULL
138342 +disable_so_clock2alarm_fndecl_31223 clock2alarm fndecl 1 31223 NULL
138343 +disable_so_timeout_wait_bit_key_31247 timeout wait_bit_key 0 31247 NULL
138344 +disable_so_time_offset_fat_mount_options_31254 time_offset fat_mount_options 0 31254 NULL
138345 +disable_so_max3421_set_address_fndecl_31258 max3421_set_address fndecl 3 31258 NULL
138346 +disable_so_tick_gtod_sched_clock_data_31262 tick_gtod sched_clock_data 0 31262 NULL
138347 +disable_so_freq_usb_usbvision_31263 freq usb_usbvision 0 31263 NULL
138348 +disable_so_address_high_sbp2_target_31266 address_high sbp2_target 0 31266 NULL nohasharray
138349 +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
138350 +disable_so_rx8581_rtc_read_time_fndecl_31271 rx8581_rtc_read_time fndecl 0 31271 NULL
138351 +disable_so_address_acpi_madt_io_apic_31284 address acpi_madt_io_apic 0 31284 NULL
138352 +disable_so_qce_setup_regs_ahash_fndecl_31290 qce_setup_regs_ahash fndecl 0 31290 NULL
138353 +disable_so_freq_offset_khz_uhf_dib0070_config_31304 freq_offset_khz_uhf dib0070_config 0 31304 NULL
138354 +disable_so_dmaaddr_lanai_buffer_31308 dmaaddr lanai_buffer 0 31308 NULL
138355 +disable_so_selinux_mmap_addr_fndecl_31313 selinux_mmap_addr fndecl 0 31313 NULL
138356 +disable_so_wt_timeout_st21nfcb_se_info_31334 wt_timeout st21nfcb_se_info 0 31334 NULL
138357 +disable_so_baseaddr_h_mvumi_sgl_31335 baseaddr_h mvumi_sgl 0 31335 NULL
138358 +disable_so_mmc_send_relative_addr_fndecl_31338 mmc_send_relative_addr fndecl 0 31338 NULL nohasharray
138359 +disable_so_ufs_bitmap_search_fndecl_31338 ufs_bitmap_search fndecl 0-3-4 31338 &disable_so_mmc_send_relative_addr_fndecl_31338 nohasharray
138360 +disable_so_cur_tsc_offset_kvm_arch_31338 cur_tsc_offset kvm_arch 0 31338 &disable_so_ufs_bitmap_search_fndecl_31338
138361 +disable_so_xfs_btree_check_lptr_fndecl_31339 xfs_btree_check_lptr fndecl 0 31339 NULL
138362 +disable_so_dynamic_ps_timeout_read_fndecl_31341 dynamic_ps_timeout_read fndecl 3-0 31341 NULL
138363 +disable_so_ret_ccp_crypto_cmd_31344 ret ccp_crypto_cmd 0 31344 NULL
138364 +disable_so_physical_mem_addr_wl1251_31345 physical_mem_addr wl1251 0 31345 NULL
138365 +disable_so_schedule_work_on_fndecl_31361 schedule_work_on fndecl 1 31361 NULL
138366 +disable_so_es_tss_segment_32_31367 es tss_segment_32 0 31367 NULL
138367 +disable_so_link_schedule_user_fndecl_31379 link_schedule_user fndecl 0 31379 NULL
138368 +disable_so_vsock_addr_cast_fndecl_31386 vsock_addr_cast fndecl 2 31386 NULL
138369 +disable_so_debug_dma_sync_single_for_cpu_fndecl_31387 debug_dma_sync_single_for_cpu fndecl 3-2 31387 NULL
138370 +disable_so_num_bytes_btrfs_delayed_ref_node_31390 num_bytes btrfs_delayed_ref_node 0 31390 NULL
138371 +disable_so_clockevents_config_fndecl_31391 clockevents_config fndecl 2 31391 NULL nohasharray
138372 +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
138373 +disable_so_kstrtol_from_user_fndecl_31403 kstrtol_from_user fndecl 0-2 31403 NULL
138374 +disable_so_req_timeout_ppp_31406 req_timeout ppp 0 31406 NULL
138375 +disable_so_recvsignalpower_rtl_stats_31407 recvsignalpower rtl_stats 0 31407 NULL
138376 +disable_so_gr_log_signal_fndecl_31408 gr_log_signal fndecl 1 31408 NULL
138377 +disable_so_round_jiffies_up_relative_fndecl_31409 round_jiffies_up_relative fndecl 1-0 31409 NULL
138378 +disable_so_nr_cs5535_mfgpt_timer_31410 nr cs5535_mfgpt_timer 0 31410 NULL
138379 +disable_so_af9005_fe_read_signal_strength_fndecl_31416 af9005_fe_read_signal_strength fndecl 0 31416 NULL nohasharray
138380 +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
138381 +disable_so_usnic_uiom_interval_tree_subtree_search_fndecl_31422 usnic_uiom_interval_tree_subtree_search fndecl 2-3 31422 NULL nohasharray
138382 +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
138383 +disable_so_rxrpc_max_call_lifetime_vardecl_31433 rxrpc_max_call_lifetime vardecl 0 31433 NULL nohasharray
138384 +disable_so_di_gid_logfs_disk_inode_31433 di_gid logfs_disk_inode 0 31433 &disable_so_rxrpc_max_call_lifetime_vardecl_31433
138385 +disable_so_ds1374_wdt_settimeout_fndecl_31434 ds1374_wdt_settimeout fndecl 1-0 31434 NULL
138386 +disable_so_tei_sockaddr_mISDN_31438 tei sockaddr_mISDN 0 31438 NULL
138387 +disable_so_bs_sleepduration_ath9k_beacon_state_31443 bs_sleepduration ath9k_beacon_state 0 31443 NULL
138388 +disable_so_pci_bus_write_config_word_fndecl_31447 pci_bus_write_config_word fndecl 0-2-3-4 31447 NULL
138389 +disable_so_cra_ctxsize_crypto_alg_31451 cra_ctxsize crypto_alg 0 31451 NULL
138390 +disable_so_dmable_fw_paddr_sst_fw_31454 dmable_fw_paddr sst_fw 0 31454 NULL
138391 +disable_so_nsec_btrfs_timespec_31463 nsec btrfs_timespec 0 31463 NULL nohasharray
138392 +disable_so_set_timeout_fndecl_31463 set_timeout fndecl 2-0 31463 &disable_so_nsec_btrfs_timespec_31463
138393 +disable_so_ima_calc_field_array_hash_tfm_fndecl_31467 ima_calc_field_array_hash_tfm fndecl 0-3 31467 NULL
138394 +disable_so_bond_eth_hash_fndecl_31472 bond_eth_hash fndecl 0 31472 NULL
138395 +disable_so_task_setscheduler_security_operations_31479 task_setscheduler security_operations 0 31479 NULL
138396 +disable_so_cs_tss_segment_32_31480 cs tss_segment_32 0 31480 NULL
138397 +disable_so_intr_gen_timer_thresh_ath_hw_31491 intr_gen_timer_thresh ath_hw 0 31491 NULL nohasharray
138398 +disable_so_nilfs_btree_find_near_fndecl_31491 nilfs_btree_find_near fndecl 0 31491 &disable_so_intr_gen_timer_thresh_ath_hw_31491
138399 +disable_so_sta_last_ack_signal_read_fndecl_31492 sta_last_ack_signal_read fndecl 3 31492 NULL
138400 +disable_so___uwb_dev_addr_assigned_fndecl_31493 __uwb_dev_addr_assigned fndecl 0 31493 NULL
138401 +disable_so_uuid_show_fndecl_31494 uuid_show fndecl 0 31494 NULL
138402 +disable_so_elan_sleep_fndecl_31502 elan_sleep fndecl 0 31502 NULL
138403 +disable_so_setkey_crypto_aead_31507 setkey crypto_aead 0-3 31507 NULL
138404 +disable_so_ebitmap_netlbl_import_fndecl_31508 ebitmap_netlbl_import fndecl 0 31508 NULL
138405 +disable_so_ccp_aes_rfc3686_decrypt_fndecl_31513 ccp_aes_rfc3686_decrypt fndecl 0 31513 NULL
138406 +disable_so_timeout_map_r8a66597_31517 timeout_map r8a66597 0 31517 NULL
138407 +disable_so_vga_switcheroo_runtime_resume_hdmi_audio_fndecl_31521 vga_switcheroo_runtime_resume_hdmi_audio fndecl 0 31521 NULL nohasharray
138408 +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
138409 +disable_so_hashbin_insert_fndecl_31527 hashbin_insert fndecl 3 31527 NULL
138410 +disable_so_reset_jiffies_fw_card_31535 reset_jiffies fw_card 0 31535 NULL
138411 +disable_so_addr_gk20a_instmem_priv_31544 addr gk20a_instmem_priv 0 31544 NULL
138412 +disable_so_vringh32_to_cpu_fndecl_31546 vringh32_to_cpu fndecl 0-2 31546 NULL
138413 +disable_so_qat_hash_alg_qat_alg_aead_ctx_31550 qat_hash_alg qat_alg_aead_ctx 0 31550 NULL
138414 +disable_so_timeout_move_vardecl_ch_c_31551 timeout_move vardecl_ch.c 0 31551 NULL
138415 +disable_so_iowrite8_rep_fndecl_31565 iowrite8_rep fndecl 3 31565 NULL
138416 +disable_so_omfs_hash_fndecl_31572 omfs_hash fndecl 0-3 31572 NULL
138417 +disable_so_ltc3589_set_ramp_delay_fndecl_31580 ltc3589_set_ramp_delay fndecl 0 31580 NULL
138418 +disable_so_wants_signal_fndecl_31583 wants_signal fndecl 1 31583 NULL
138419 +disable_so_set_sig_addr_fndecl_31588 set_sig_addr fndecl 4 31588 NULL
138420 +disable_so_udelay_i2c_algo_bit_data_31597 udelay i2c_algo_bit_data 0 31597 NULL
138421 +disable_so_wlapi_add_timer_fndecl_31598 wlapi_add_timer fndecl 2 31598 NULL
138422 +disable_so_gid_min_xt_owner_match_info_31604 gid_min xt_owner_match_info 0 31604 NULL
138423 +disable_so_mmap_addr_security_operations_31609 mmap_addr security_operations 0-1 31609 NULL
138424 +disable_so_cache_time_vardecl_battery_c_31620 cache_time vardecl_battery.c 0 31620 NULL
138425 +disable_so_idletimer_tg_checkentry_fndecl_31633 idletimer_tg_checkentry fndecl 0 31633 NULL
138426 +disable_so_sha256_ssse3_finup_fndecl_31637 sha256_ssse3_finup fndecl 3 31637 NULL
138427 +disable_so_f1x_translate_sysaddr_to_cs_fndecl_31647 f1x_translate_sysaddr_to_cs fndecl 0-2 31647 NULL
138428 +disable_so_partial_name_hash_fndecl_31651 partial_name_hash fndecl 0-1-2 31651 NULL
138429 +disable_so_edx_v86_regs_31655 edx v86_regs 0 31655 NULL
138430 +disable_so_kdb_printf_fndecl_31658 kdb_printf fndecl 0 31658 NULL
138431 +disable_so_voltage_response_time_radeon_dpm_31671 voltage_response_time radeon_dpm 0 31671 NULL
138432 +disable_so_ufshcd_pci_runtime_resume_fndecl_31682 ufshcd_pci_runtime_resume fndecl 0 31682 NULL
138433 +disable_so_trace_clock_jiffies_fndecl_31684 trace_clock_jiffies fndecl 0 31684 NULL
138434 +disable_so_crypto_rfc4543_crypt_fndecl_31691 crypto_rfc4543_crypt fndecl 0 31691 NULL
138435 +disable_so_qp_bitmap_ntb_transport_ctx_31692 qp_bitmap ntb_transport_ctx 0 31692 NULL
138436 +disable_so_mclk_radeon_clock_and_voltage_limits_31701 mclk radeon_clock_and_voltage_limits 0 31701 NULL
138437 +disable_so_hash_dev_block_bits_dm_verity_31709 hash_dev_block_bits dm_verity 0 31709 NULL
138438 +disable_so_crypto_gcm_init_crypt_fndecl_31718 crypto_gcm_init_crypt fndecl 2 31718 NULL
138439 +disable_so_addr_ahd_dma_seg_31719 addr ahd_dma_seg 0 31719 NULL
138440 +disable_so_rx_frame_ath_cycle_counters_31739 rx_frame ath_cycle_counters 0 31739 NULL
138441 +disable_so_nadc_aic32x4_rate_divs_31741 nadc aic32x4_rate_divs 0 31741 NULL
138442 +disable_so_gpu_addr_r600_ih_31749 gpu_addr r600_ih 0 31749 NULL
138443 +disable_so_acpi_ex_system_do_sleep_fndecl_31750 acpi_ex_system_do_sleep fndecl 0-1 31750 NULL
138444 +disable_so_bigdirindaddr_adfs_bigdirentry_31757 bigdirindaddr adfs_bigdirentry 0 31757 NULL
138445 +disable_so_vm_entry_msr_load_addr_vmcs12_31781 vm_entry_msr_load_addr vmcs12 0 31781 NULL
138446 +disable_so_qce_ahash_async_req_handle_fndecl_31785 qce_ahash_async_req_handle fndecl 0 31785 NULL
138447 +disable_so_ecryptfs_calculate_md5_fndecl_31787 ecryptfs_calculate_md5 fndecl 0-4 31787 NULL
138448 +disable_so_pixclock_fb_var_screeninfo_31790 pixclock fb_var_screeninfo 0 31790 NULL
138449 +disable_so_from_kgid_munged_fndecl_31791 from_kgid_munged fndecl 0 31791 NULL
138450 +disable_so_memsize_bitmap_ipmac_31792 memsize bitmap_ipmac 0 31792 NULL
138451 +disable_so_ctxsize_crypto_type_31795 ctxsize crypto_type 0 31795 NULL
138452 +disable_so_fpage_dma_addr_genwqe_sgl_31796 fpage_dma_addr genwqe_sgl 0 31796 NULL
138453 +disable_so_qib_hol_timeout_ms_vardecl_qib_tx_c_31801 qib_hol_timeout_ms vardecl_qib_tx.c 0 31801 NULL
138454 +disable_so_ping_timeout_iscsi_conn_31802 ping_timeout iscsi_conn 0 31802 NULL
138455 +disable_so_rpcauth_key_timeout_notify_fndecl_31805 rpcauth_key_timeout_notify fndecl 0 31805 NULL
138456 +disable_so_snd_timer_open_fndecl_31807 snd_timer_open fndecl 4 31807 NULL
138457 +disable_so_it_overrun_last_k_itimer_31814 it_overrun_last k_itimer 0 31814 NULL
138458 +disable_so_mapaddr_rocker_dma_ring_info_31819 mapaddr rocker_dma_ring_info 0 31819 NULL
138459 +disable_so_disarm_req_delay_fndecl_31821 disarm_req_delay fndecl 0 31821 NULL
138460 +disable_so_bus_addr_mvumi_res_31827 bus_addr mvumi_res 0 31827 NULL nohasharray
138461 +disable_so_dev_sas_addr_mvs_phy_31827 dev_sas_addr mvs_phy 0 31827 &disable_so_bus_addr_mvumi_res_31827 nohasharray
138462 +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
138463 +disable_so_lzo1x_decompress_safe_fndecl_31834 lzo1x_decompress_safe fndecl 2 31834 NULL
138464 +disable_so_spte_is_bit_cleared_fndecl_31843 spte_is_bit_cleared fndecl 2-3 31843 NULL
138465 +disable_so_mclk_radeon_pm_clock_info_31848 mclk radeon_pm_clock_info 0 31848 NULL
138466 +disable_so_timer_expires_wakeup_source_31849 timer_expires wakeup_source 0 31849 NULL
138467 +disable_so_si_populate_memory_timing_parameters_fndecl_31852 si_populate_memory_timing_parameters fndecl 0 31852 NULL
138468 +disable_so_offset_timex_31854 offset timex 0 31854 NULL
138469 +disable_so_tuner_addr_tvcard_31862 tuner_addr tvcard 0 31862 NULL
138470 +disable_so_mask_and_set_register_interruptible_fndecl_31871 mask_and_set_register_interruptible fndecl 0 31871 NULL
138471 +disable_so_generic_set_freq_fndecl_31881 generic_set_freq fndecl 0-2-3 31881 NULL
138472 +disable_so_quota_iwl_time_quota_data_31890 quota iwl_time_quota_data 0 31890 NULL
138473 +disable_so_timer_set_at_tlan_priv_31902 timer_set_at tlan_priv 0 31902 NULL
138474 +disable_so_update_time_ds2760_device_info_31906 update_time ds2760_device_info 0 31906 NULL
138475 +disable_so_qlcnic_83xx_wrt_reg_indirect_fndecl_31907 qlcnic_83xx_wrt_reg_indirect fndecl 2-3 31907 NULL
138476 +disable_so_nmi_timer_setup_fndecl_31908 nmi_timer_setup fndecl 0 31908 NULL
138477 +disable_so_period_size_atmel_runtime_data_31909 period_size atmel_runtime_data 0 31909 NULL
138478 +disable_so_spi_pioavailaddr_qib_base_info_31911 spi_pioavailaddr qib_base_info 0 31911 NULL
138479 +disable_so_err_msr_info_31913 err msr_info 0 31913 NULL
138480 +disable_so_pcan_usb_fd_set_clock_domain_fndecl_31920 pcan_usb_fd_set_clock_domain fndecl 0 31920 NULL
138481 +disable_so_i_ipmi_set_timeout_fndecl_31922 i_ipmi_set_timeout fndecl 0 31922 NULL
138482 +disable_so_tw_ts_offset_tcp_timewait_sock_31933 tw_ts_offset tcp_timewait_sock 0 31933 NULL
138483 +disable_so_shash_setkey_unaligned_fndecl_31935 shash_setkey_unaligned fndecl 3 31935 NULL
138484 +disable_so_kempld_wdt_get_timeout_fndecl_31937 kempld_wdt_get_timeout fndecl 0 31937 NULL
138485 +disable_so_addr___mux_31940 addr __mux 0 31940 NULL
138486 +disable_so_clk_divider_bestdiv_fndecl_31941 clk_divider_bestdiv fndecl 2-0-5 31941 NULL
138487 +disable_so_bm_words_drbd_bitmap_31943 bm_words drbd_bitmap 0 31943 NULL
138488 +disable_so_timeout_show_fndecl_31957 timeout_show fndecl 0 31957 NULL
138489 +disable_so_snd_hdsp_info_system_clock_mode_fndecl_31974 snd_hdsp_info_system_clock_mode fndecl 0 31974 NULL
138490 +disable_so_time_wrap_offset_vivid_dev_31985 time_wrap_offset vivid_dev 0 31985 NULL
138491 +disable_so_addr_iwl_fw_dbg_reg_op_31986 addr iwl_fw_dbg_reg_op 0 31986 NULL
138492 +disable_so_xclk_ref_div_pll_ct_31987 xclk_ref_div pll_ct 0 31987 NULL
138493 +disable_so_rd32_nvkm_ofuncs_31990 rd32 nvkm_ofuncs 0-2 31990 NULL
138494 +disable_so_addr_sis5595_data_32006 addr sis5595_data 0 32006 NULL
138495 +disable_so_demod_address_cx22702_config_32010 demod_address cx22702_config 0 32010 NULL
138496 +disable_so_hashlimit_init_dst_fndecl_32011 hashlimit_init_dst fndecl 4 32011 NULL
138497 +disable_so_cx24113_set_frequency_fndecl_32013 cx24113_set_frequency fndecl 2 32013 NULL
138498 +disable_so_bq2415x_sysfs_set_timer_fndecl_32020 bq2415x_sysfs_set_timer fndecl 0-4 32020 NULL
138499 +disable_so___find_rev_next_zero_bit_fndecl_32028 __find_rev_next_zero_bit fndecl 0-2-3 32028 NULL
138500 +disable_so_ahd_outb_fndecl_32029 ahd_outb fndecl 2-3 32029 NULL
138501 +disable_so_pfn_to_mfn_frame_list_list_arch_shared_info_32030 pfn_to_mfn_frame_list_list arch_shared_info 0 32030 NULL
138502 +disable_so_viafb_set_vclock_fndecl_32033 viafb_set_vclock fndecl 1 32033 NULL
138503 +disable_so_paddr_csio_dma_buf_32035 paddr csio_dma_buf 0 32035 NULL
138504 +disable_so_tw_ts_recent_stamp_tcp_timewait_sock_32042 tw_ts_recent_stamp tcp_timewait_sock 0 32042 NULL
138505 +disable_so_rangetr_hash_fndecl_32045 rangetr_hash fndecl 0 32045 NULL
138506 +disable_so_vsyn_off_hdmi_timings_32055 vsyn_off hdmi_timings 0 32055 NULL
138507 +disable_so_fnic_dev_mac_addr_fndecl_32057 fnic_dev_mac_addr fndecl 0 32057 NULL nohasharray
138508 +disable_so_s921_read_signal_strength_fndecl_32057 s921_read_signal_strength fndecl 0 32057 &disable_so_fnic_dev_mac_addr_fndecl_32057
138509 +disable_so_iscsit_ta_login_timeout_fndecl_32061 iscsit_ta_login_timeout fndecl 0 32061 NULL
138510 +disable_so_btrfs_delayed_ref_init_fndecl_32064 btrfs_delayed_ref_init fndecl 0 32064 NULL
138511 +disable_so_clk_register_divider_fndecl_32066 clk_register_divider fndecl 7-6 32066 NULL
138512 +disable_so_compat_sys_timerfd_settime_fndecl_32068 compat_sys_timerfd_settime fndecl 1 32068 NULL
138513 +disable_so_last_tsc_write_kvm_arch_32069 last_tsc_write kvm_arch 0 32069 NULL
138514 +disable_so_timeout_mraid_mmadp_32081 timeout mraid_mmadp 0 32081 NULL
138515 +disable_so_selinux_task_getscheduler_fndecl_32087 selinux_task_getscheduler fndecl 0 32087 NULL
138516 +disable_so_handle_slaves_guid_change_fndecl_32090 handle_slaves_guid_change fndecl 2-3 32090 NULL
138517 +disable_so_r68_val_fc2580_freq_regs_32091 r68_val fc2580_freq_regs 0 32091 NULL
138518 +disable_so_cx23885_set_frequency_fndecl_32119 cx23885_set_frequency fndecl 0 32119 NULL
138519 +disable_so_freqn_snd_usb_endpoint_32123 freqn snd_usb_endpoint 0 32123 NULL
138520 +disable_so_prandom_bytes_fndecl_32129 prandom_bytes fndecl 2 32129 NULL nohasharray
138521 +disable_so_tfmsize_crypto_type_32129 tfmsize crypto_type 0 32129 &disable_so_prandom_bytes_fndecl_32129
138522 +disable_so_freq_ar9170_calibration_target_power_legacy_32133 freq ar9170_calibration_target_power_legacy 0 32133 NULL nohasharray
138523 +disable_so_addr_buffer_state_32133 addr buffer_state 0 32133 &disable_so_freq_ar9170_calibration_target_power_legacy_32133
138524 +enable_so_max_rate_idx_ieee80211_tx_rate_control_32134 max_rate_idx ieee80211_tx_rate_control 0 32134 NULL nohasharray
138525 +disable_so_btree_invalidatepage_fndecl_32134 btree_invalidatepage fndecl 2 32134 &enable_so_max_rate_idx_ieee80211_tx_rate_control_32134
138526 +disable_so_hfs_bnode_findhash_fndecl_32138 hfs_bnode_findhash fndecl 2 32138 NULL
138527 +disable_so_symhash_fndecl_32144 symhash fndecl 0 32144 NULL
138528 +disable_so_ahc_print_register_fndecl_32148 ahc_print_register fndecl 5 32148 NULL
138529 +disable_so_rq_majortimeo_rpc_rqst_32158 rq_majortimeo rpc_rqst 0 32158 NULL
138530 +disable_so_ber_jiffies_stats_dib7000p_state_32159 ber_jiffies_stats dib7000p_state 0 32159 NULL
138531 +disable_so_i_mtime_f2fs_inode_32162 i_mtime f2fs_inode 0 32162 NULL
138532 +disable_so_addr_cistpl_checksum_t_32163 addr cistpl_checksum_t 0 32163 NULL
138533 +disable_so_n_fll_div_32168 n fll_div 0 32168 NULL
138534 +disable_so_advance_jiffies_uhci_qh_32179 advance_jiffies uhci_qh 0 32179 NULL
138535 +disable_so_query_dv_timings_last_vivid_dev_32182 query_dv_timings_last vivid_dev 0 32182 NULL
138536 +disable_so_mlx4_reset_roce_gids_fndecl_32207 mlx4_reset_roce_gids fndecl 2 32207 NULL
138537 +disable_so_addr_rec_vals_32208 addr rec_vals 0 32208 NULL
138538 +disable_so_chunks_bitmap_counts_32213 chunks bitmap_counts 0 32213 NULL
138539 +disable_so_irq_create_mapping_fndecl_32230 irq_create_mapping fndecl 0-2 32230 NULL
138540 +disable_so_addr_lo_eth_tx_start_bd_32234 addr_lo eth_tx_start_bd 0 32234 NULL
138541 +disable_so_radeon_irq_kms_sw_irq_get_delayed_fndecl_32235 radeon_irq_kms_sw_irq_get_delayed fndecl 2 32235 NULL
138542 +disable_so_irlap_start_slot_timer_fndecl_32236 irlap_start_slot_timer fndecl 2 32236 NULL
138543 +disable_so_get_timeout_fndecl_32254 get_timeout fndecl 0 32254 NULL
138544 +disable_so_smk_open_netlbladdr_fndecl_32279 smk_open_netlbladdr fndecl 0 32279 NULL
138545 +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
138546 +disable_so_freq_stb0899_internal_32287 freq stb0899_internal 0 32287 NULL
138547 +disable_so_crypto_cmac_digest_update_fndecl_32293 crypto_cmac_digest_update fndecl 3 32293 NULL
138548 +disable_so_sirf_usp_pcm_runtime_resume_fndecl_32303 sirf_usp_pcm_runtime_resume fndecl 0 32303 NULL
138549 +disable_so_show_state_time_fndecl_32307 show_state_time fndecl 0 32307 NULL
138550 +disable_so_max_freq_dw_spi_32310 max_freq dw_spi 0 32310 NULL
138551 +disable_so_msg_stime_msqid64_ds_32312 msg_stime msqid64_ds 0 32312 NULL
138552 +disable_so_xtalfreq_brcms_phy_32317 xtalfreq brcms_phy 0 32317 NULL
138553 +disable_so_cpu_to_be32_array_fndecl_32318 cpu_to_be32_array fndecl 3 32318 NULL
138554 +disable_so_addr_tuner_setup_32321 addr tuner_setup 0 32321 NULL
138555 +disable_so_schedule_timeout_interruptible_fndecl_32331 schedule_timeout_interruptible fndecl 0-1 32331 NULL
138556 +disable_so_shm16read_addr_next_b43_dfsentry_32334 shm16read_addr_next b43_dfsentry 0 32334 NULL
138557 +disable_so_ver_sync_start_via_display_timing_32337 ver_sync_start via_display_timing 0 32337 NULL
138558 +disable_so_ath9k_hw_synth_delay_fndecl_32339 ath9k_hw_synth_delay fndecl 3 32339 NULL
138559 +disable_so_sys_setpgid_fndecl_32340 sys_setpgid fndecl 1-2 32340 NULL
138560 +disable_so_mmc_test_random_read_perf_fndecl_32342 mmc_test_random_read_perf fndecl 0 32342 NULL nohasharray
138561 +disable_so_addrmax_vxlan_dev_32342 addrmax vxlan_dev 0 32342 &disable_so_mmc_test_random_read_perf_fndecl_32342
138562 +disable_so_interrupt_in_interval_ld_usb_32353 interrupt_in_interval ld_usb 0 32353 NULL
138563 +disable_so_mlx4_ib_slave_alias_guid_event_fndecl_32363 mlx4_ib_slave_alias_guid_event fndecl 2-3 32363 NULL
138564 +disable_so_usb_addr_u132_udev_32366 usb_addr u132_udev 0 32366 NULL
138565 +disable_so_account_shared_subtree_fndecl_32369 account_shared_subtree fndecl 4-5 32369 NULL
138566 +disable_so_process_tgid_exec_proc_event_32371 process_tgid exec_proc_event 0 32371 NULL
138567 +disable_so_resp_bd_list_addr_hi_bnx2i_text_request_32375 resp_bd_list_addr_hi bnx2i_text_request 0 32375 NULL nohasharray
138568 +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
138569 +disable_so_last_ave_beacon_signal_ieee80211_if_managed_32405 last_ave_beacon_signal ieee80211_if_managed 0 32405 NULL
138570 +disable_so_vml_nearest_clock_fndecl_32407 vml_nearest_clock fndecl 1-0 32407 NULL
138571 +disable_so_silence_start_snd_pcm_runtime_32410 silence_start snd_pcm_runtime 0 32410 NULL
138572 +disable_so_setfreq_fndecl_32411 setfreq fndecl 2 32411 NULL
138573 +disable_so_nent_kvm_cpuid_32413 nent kvm_cpuid 0 32413 NULL
138574 +disable_so_try_to_del_timer_sync_fndecl_32416 try_to_del_timer_sync fndecl 0 32416 NULL
138575 +disable_so_rtc_timer_start_fndecl_32417 rtc_timer_start fndecl 0 32417 NULL nohasharray
138576 +disable_so_get_cur_freq_fndecl_32417 get_cur_freq fndecl 1 32417 &disable_so_rtc_timer_start_fndecl_32417
138577 +disable_so_rf_set_freq_ath_hw_private_ops_32419 rf_set_freq ath_hw_private_ops 0 32419 NULL
138578 +disable_so_buffer_addr_pch_gbe_rx_desc_32427 buffer_addr pch_gbe_rx_desc 0 32427 NULL
138579 +disable_so_ath_chanctx_setup_timer_fndecl_32434 ath_chanctx_setup_timer fndecl 2 32434 NULL nohasharray
138580 +disable_so_top_mlx4_bitmap_32434 top mlx4_bitmap 0 32434 &disable_so_ath_chanctx_setup_timer_fndecl_32434
138581 +disable_so_addr_acl_ip_label_32438 addr acl_ip_label 0 32438 NULL nohasharray
138582 +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
138583 +disable_so_dn_sockaddr2username_fndecl_32446 dn_sockaddr2username fndecl 0 32446 NULL
138584 +disable_so_lasttime_vardecl_xfs_buf_item_c_32457 lasttime vardecl_xfs_buf_item.c 0 32457 NULL
138585 +disable_so___btrfs_add_delayed_deletion_item_fndecl_32458 __btrfs_add_delayed_deletion_item fndecl 0 32458 NULL
138586 +disable_so_pm_autosleep_lock_fndecl_32459 pm_autosleep_lock fndecl 0 32459 NULL
138587 +disable_so_bitmap_storage_alloc_fndecl_32460 bitmap_storage_alloc fndecl 2-4 32460 NULL nohasharray
138588 +disable_so_num_emulated_msrs_vardecl_x86_c_32460 num_emulated_msrs vardecl_x86.c 0 32460 &disable_so_bitmap_storage_alloc_fndecl_32460
138589 +disable_so_C_SYSC_signalfd4_fndecl_32461 C_SYSC_signalfd4 fndecl 0-4 32461 NULL nohasharray
138590 +disable_so_io_ctl_read_bitmap_fndecl_32461 io_ctl_read_bitmap fndecl 0 32461 &disable_so_C_SYSC_signalfd4_fndecl_32461
138591 +disable_so_address_u132_addr_32463 address u132_addr 0 32463 NULL
138592 +disable_so_att_dev_sas_addr_mvs_phy_32465 att_dev_sas_addr mvs_phy 0 32465 NULL
138593 +disable_so_next_status_checked_time_sp2_32472 next_status_checked_time sp2 0 32472 NULL
138594 +disable_so_address_i2400m_poke_table_32473 address i2400m_poke_table 0 32473 NULL
138595 +disable_so_time_slice_sched_rt_entity_32475 time_slice sched_rt_entity 0 32475 NULL nohasharray
138596 +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
138597 +disable_so_br_multicast_update_query_timer_fndecl_32479 br_multicast_update_query_timer fndecl 3 32479 NULL
138598 +disable_so_rpa_timeout_hci_dev_32482 rpa_timeout hci_dev 0 32482 NULL
138599 +disable_so_retry_delay_timestamp_bnx2fc_rport_32484 retry_delay_timestamp bnx2fc_rport 0 32484 NULL
138600 +disable_so_ext4_mark_bitmap_end_fndecl_32489 ext4_mark_bitmap_end fndecl 1-2 32489 NULL
138601 +disable_so_hw_start_time_ieee80211_roc_work_32492 hw_start_time ieee80211_roc_work 0 32492 NULL
138602 +disable_so_enq_busaddr_ips_ha_32493 enq_busaddr ips_ha 0 32493 NULL
138603 +disable_so_xfs_btree_rshift_fndecl_32496 xfs_btree_rshift fndecl 0 32496 NULL
138604 +disable_so_reqsize_ablkcipher_tfm_32500 reqsize ablkcipher_tfm 0 32500 NULL
138605 +disable_so_checkani_timer_ath_ani_32510 checkani_timer ath_ani 0 32510 NULL
138606 +disable_so_refdiv_cx24113_state_32517 refdiv cx24113_state 0 32517 NULL
138607 +disable_so_clock_divn_sym_hcb_32524 clock_divn sym_hcb 0 32524 NULL nohasharray
138608 +disable_so_delay_qla4_83xx_reset_entry_hdr_32524 delay qla4_83xx_reset_entry_hdr 0 32524 &disable_so_clock_divn_sym_hcb_32524
138609 +disable_so_write_bitmap_entries_fndecl_32527 write_bitmap_entries fndecl 0 32527 NULL
138610 +disable_so_next_timer_tvec_base_32537 next_timer tvec_base 0 32537 NULL nohasharray
138611 +disable_so_daddr_irlan_cb_32537 daddr irlan_cb 0 32537 &disable_so_next_timer_tvec_base_32537
138612 +disable_so_demod_address_dib3000_config_32538 demod_address dib3000_config 0 32538 NULL
138613 +disable_so_bc_blocklog_xfs_btree_cur_32544 bc_blocklog xfs_btree_cur 0 32544 NULL
138614 +disable_so_delay_rts_before_send_serial_rs485_32545 delay_rts_before_send serial_rs485 0 32545 NULL
138615 +disable_so___skb_tx_hash_fndecl_32547 __skb_tx_hash fndecl 0-3 32547 NULL
138616 +disable_so_get_mac_address_qlcnic_hardware_ops_32567 get_mac_address qlcnic_hardware_ops 3 32567 NULL
138617 +disable_so_cpu_clock_sample_fndecl_32583 cpu_clock_sample fndecl 1 32583 NULL
138618 +disable_so_n__fll_div_32585 n _fll_div 0 32585 NULL
138619 +disable_so_addr_l_qla2xxx_fce_chain_32589 addr_l qla2xxx_fce_chain 0 32589 NULL
138620 +disable_so___bitmap_weight_fndecl_32591 __bitmap_weight fndecl 0-2 32591 NULL
138621 +disable_so_cac_time_ms_wireless_dev_32596 cac_time_ms wireless_dev 0 32596 NULL
138622 +disable_so_spi_pioavailaddr_ipath_base_info_32598 spi_pioavailaddr ipath_base_info 0 32598 NULL
138623 +disable_so_timestamp_carm_msg_sync_time_32600 timestamp carm_msg_sync_time 0 32600 NULL
138624 +disable_so_kstrtoint_from_user_fndecl_32601 kstrtoint_from_user fndecl 2-0 32601 NULL
138625 +disable_so_rtc_read_time_fndecl_32605 rtc_read_time fndecl 0 32605 NULL
138626 +disable_so_intel_fuzzy_clock_check_fndecl_32608 intel_fuzzy_clock_check fndecl 1-2 32608 NULL
138627 +disable_so_beacon_interval_iwl_rxon_time_cmd_32609 beacon_interval iwl_rxon_time_cmd 0 32609 NULL nohasharray
138628 +disable_so_ac_etime_taskstats_32609 ac_etime taskstats 0 32609 &disable_so_beacon_interval_iwl_rxon_time_cmd_32609
138629 +disable_so_pcie_sbdf_set_error_type_with_address_32610 pcie_sbdf set_error_type_with_address 0 32610 NULL nohasharray
138630 +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
138631 +disable_so_table_instance_rehash_fndecl_32621 table_instance_rehash fndecl 2 32621 NULL
138632 +disable_so_btrfs_timespec_nsec_fndecl_32628 btrfs_timespec_nsec fndecl 0 32628 NULL
138633 +disable_so_pll2_r2_div_ad9523_platform_data_32641 pll2_r2_div ad9523_platform_data 0 32641 NULL
138634 +disable_so_ahash_op_unaligned_fndecl_32645 ahash_op_unaligned fndecl 0 32645 NULL
138635 +disable_so_pm3fb_calculate_clock_fndecl_32653 pm3fb_calculate_clock fndecl 1 32653 NULL
138636 +disable_so___load_block_bitmap_fndecl_32655 __load_block_bitmap fndecl 0-3 32655 NULL
138637 +disable_so_timeout_blk_mq_tag_set_32657 timeout blk_mq_tag_set 0 32657 NULL
138638 +disable_so_rangelow_v4l2_frequency_band_32670 rangelow v4l2_frequency_band 0 32670 NULL
138639 +disable_so_crypto_rng_get_bytes_fndecl_32675 crypto_rng_get_bytes fndecl 0-3 32675 NULL
138640 +disable_so_ns_ctime_the_nilfs_32681 ns_ctime the_nilfs 0 32681 NULL
138641 +disable_so_m41t80_sysfs_show_sqwfreq_fndecl_32683 m41t80_sysfs_show_sqwfreq fndecl 0 32683 NULL
138642 +disable_so_level_irq_udelay_cyttsp4_core_platform_data_32688 level_irq_udelay cyttsp4_core_platform_data 0 32688 NULL nohasharray
138643 +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
138644 +disable_so_e4000_sleep_fndecl_32694 e4000_sleep fndecl 0 32694 NULL
138645 +disable_so_snd_riptide_interrupt_fndecl_32696 snd_riptide_interrupt fndecl 1 32696 NULL nohasharray
138646 +disable_so_max_spi_freq_wm0010_priv_32696 max_spi_freq wm0010_priv 0 32696 &disable_so_snd_riptide_interrupt_fndecl_32696
138647 +disable_so_s_mtime_ext4_super_block_32699 s_mtime ext4_super_block 0 32699 NULL
138648 +disable_so_dma_addr_dm1105_dev_32704 dma_addr dm1105_dev 0 32704 NULL
138649 +disable_so_vmx_preemption_timer_value_vmcs12_32707 vmx_preemption_timer_value vmcs12 0 32707 NULL nohasharray
138650 +disable_so_uid_fileEntry_32707 uid fileEntry 0 32707 &disable_so_vmx_preemption_timer_value_vmcs12_32707
138651 +disable_so_saffirepro_both_clk_freq_get_fndecl_32709 saffirepro_both_clk_freq_get fndecl 0 32709 NULL
138652 +disable_so_cx231xx_s_frequency_fndecl_32713 cx231xx_s_frequency fndecl 0 32713 NULL
138653 +disable_so_sys_getgid_fndecl_32720 sys_getgid fndecl 0 32720 NULL
138654 +disable_so_tuner_address_zl10036_config_32733 tuner_address zl10036_config 0 32733 NULL
138655 +disable_so_max_medium_access_timeouts_store_fndecl_32735 max_medium_access_timeouts_store fndecl 0-4 32735 NULL
138656 +disable_so_cyapa_sleep_time_to_pwr_cmd_fndecl_32740 cyapa_sleep_time_to_pwr_cmd fndecl 0-1 32740 NULL
138657 +disable_so_s5m_rtc_read_time_fndecl_32755 s5m_rtc_read_time fndecl 0 32755 NULL
138658 +disable_so_i2c_read_le16_fndecl_32758 i2c_read_le16 fndecl 0 32758 NULL
138659 +disable_so_sysctl_rose_ack_hold_back_timeout_vardecl_32768 sysctl_rose_ack_hold_back_timeout vardecl 0 32768 NULL
138660 +disable_so_pentium4_get_frequency_fndecl_32777 pentium4_get_frequency fndecl 0 32777 NULL
138661 +disable_so_divider_phase_ad9523_channel_spec_32779 divider_phase ad9523_channel_spec 0 32779 NULL
138662 +disable_so_s_nr_groups_udf_bitmap_32784 s_nr_groups udf_bitmap 0 32784 NULL
138663 +disable_so_acpi_dev_runtime_resume_fndecl_32787 acpi_dev_runtime_resume fndecl 0 32787 NULL
138664 +disable_so_posted_intr_desc_addr_vmcs12_32788 posted_intr_desc_addr vmcs12 0 32788 NULL
138665 +disable_so_acpi_enter_sleep_state_fndecl_32791 acpi_enter_sleep_state fndecl 0-1 32791 NULL
138666 +disable_so_lola_init_clock_widget_fndecl_32800 lola_init_clock_widget fndecl 0 32800 NULL
138667 +disable_so_blocksize_ablkcipher_walk_32810 blocksize ablkcipher_walk 0 32810 NULL
138668 +disable_so_ctime_msdos_dir_entry_32811 ctime msdos_dir_entry 0 32811 NULL
138669 +disable_so_hpi_tuner_get_frequency_fndecl_32813 hpi_tuner_get_frequency fndecl 0-1 32813 NULL
138670 +disable_so_rhashtable_lookup_insert_fast_fndecl_32820 rhashtable_lookup_insert_fast fndecl 0 32820 NULL
138671 +disable_so_sync_freq_max8952_platform_data_32822 sync_freq max8952_platform_data 0 32822 NULL
138672 +disable_so_timeout_rc_dev_32826 timeout rc_dev 0 32826 NULL
138673 +disable_so_to_c2_data_addr_32827 to c2_data_addr 0 32827 NULL
138674 +disable_so_il4965_tfd_tb_get_addr_fndecl_32833 il4965_tfd_tb_get_addr fndecl 0 32833 NULL
138675 +disable_so_ctnl_timeout_dump_fndecl_32835 ctnl_timeout_dump fndecl 0 32835 NULL nohasharray
138676 +disable_so_nouveau_pmops_runtime_suspend_fndecl_32835 nouveau_pmops_runtime_suspend fndecl 0 32835 &disable_so_ctnl_timeout_dump_fndecl_32835
138677 +disable_so_kvm_get_apic_interrupt_fndecl_32843 kvm_get_apic_interrupt fndecl 0 32843 NULL
138678 +disable_so_do_bit_flips_fndecl_32848 do_bit_flips fndecl 2 32848 NULL
138679 +disable_so_bitmap_xor_fndecl_32858 bitmap_xor fndecl 4 32858 NULL
138680 +disable_so_vdelay_bttv_tvnorm_32863 vdelay bttv_tvnorm 0 32863 NULL
138681 +disable_so_rt_dbmsignal_ipw_rt_hdr_32871 rt_dbmsignal ipw_rt_hdr 0 32871 NULL
138682 +disable_so_rtc_set_ntp_time_fndecl_32881 rtc_set_ntp_time fndecl 0 32881 NULL
138683 +disable_so_hash_conntrack_raw_fndecl_32882 hash_conntrack_raw fndecl 0 32882 NULL
138684 +disable_so_find_mc_by_sys_addr_fndecl_32888 find_mc_by_sys_addr fndecl 2 32888 NULL
138685 +disable_so_low_mcp_dma_addr_32890 low mcp_dma_addr 0 32890 NULL
138686 +disable_so_rds_cmsg_atomic_fndecl_32895 rds_cmsg_atomic fndecl 0 32895 NULL
138687 +disable_so___hw_addr_add_ex_fndecl_32899 __hw_addr_add_ex fndecl 0-3 32899 NULL
138688 +disable_so_xfs_btree_decrement_fndecl_32925 xfs_btree_decrement fndecl 0 32925 NULL
138689 +disable_so_nilfs_btree_prepare_propagate_v_fndecl_32937 nilfs_btree_prepare_propagate_v fndecl 0 32937 NULL
138690 +disable_so_m41t80_rtc_read_time_fndecl_32947 m41t80_rtc_read_time fndecl 0 32947 NULL
138691 +disable_so_address_ci_hdrc_32962 address ci_hdrc 0 32962 NULL
138692 +disable_so_tua9001_sleep_fndecl_32966 tua9001_sleep fndecl 0 32966 NULL
138693 +disable_so_pm_generic_runtime_resume_fndecl_32968 pm_generic_runtime_resume fndecl 0 32968 NULL
138694 +disable_so_dma_addr_chunk_32969 dma_addr chunk 0 32969 NULL
138695 +disable_so_dm_attr_uuid_show_fndecl_32981 dm_attr_uuid_show fndecl 0 32981 NULL
138696 +disable_so_ac_stime_acct_v3_32985 ac_stime acct_v3 0 32985 NULL
138697 +disable_so_int_freq_r820t_priv_32987 int_freq r820t_priv 0 32987 NULL
138698 +disable_so_r8_pt_regs_32990 r8 pt_regs 0 32990 NULL
138699 +disable_so_address_TAG_TW_SG_Entry_ISO_32992 address TAG_TW_SG_Entry_ISO 0 32992 NULL
138700 +disable_so_segment0_blkaddr_f2fs_super_block_32995 segment0_blkaddr f2fs_super_block 0 32995 NULL
138701 +disable_so_time_of_death_afs_vlocation_32996 time_of_death afs_vlocation 0 32996 NULL
138702 +disable_so_addrm_unknown_feature_attrs_fndecl_33000 addrm_unknown_feature_attrs fndecl 0 33000 NULL
138703 +disable_so_monotonic_time_sec_vsyscall_gtod_data_33004 monotonic_time_sec vsyscall_gtod_data 0 33004 NULL
138704 +disable_so_tv_hsync_delay_nv04_crtc_reg_33012 tv_hsync_delay nv04_crtc_reg 0 33012 NULL
138705 +disable_so_neigh_proc_base_reachable_time_fndecl_33013 neigh_proc_base_reachable_time fndecl 0 33013 NULL
138706 +disable_so_ocfs2_unlink_subtree_fndecl_33022 ocfs2_unlink_subtree fndecl 5 33022 NULL
138707 +disable_so_poll_time_max3100_port_33028 poll_time max3100_port 0 33028 NULL
138708 +disable_so_compat_sys_time_fndecl_33034 compat_sys_time fndecl 0 33034 NULL nohasharray
138709 +disable_so_m_osc_clock_freq_drxk_state_33034 m_osc_clock_freq drxk_state 0 33034 &disable_so_compat_sys_time_fndecl_33034
138710 +disable_so_dev_addr_mmc_test_area_33044 dev_addr mmc_test_area 0 33044 NULL
138711 +disable_so_ntp_tick_timekeeper_33046 ntp_tick timekeeper 0 33046 NULL
138712 +disable_so_day_tomoyo_time_33064 day tomoyo_time 0 33064 NULL
138713 +disable_so_wait_time_stamp_lpfc_bsg_event_33070 wait_time_stamp lpfc_bsg_event 0 33070 NULL
138714 +disable_so_vblank_hi_lvds_dvo_timing_33077 vblank_hi lvds_dvo_timing 0 33077 NULL
138715 +disable_so_cycle_last_timecounter_33078 cycle_last timecounter 0 33078 NULL
138716 +disable_so_ql_write_page0_reg_fndecl_33082 ql_write_page0_reg fndecl 3 33082 NULL
138717 +disable_so_dma_addr_mic_smpt_33090 dma_addr mic_smpt 0 33090 NULL
138718 +disable_so_torture_random_fndecl_33096 torture_random fndecl 0 33096 NULL
138719 +disable_so_collect_signal_fndecl_33097 collect_signal fndecl 1 33097 NULL
138720 +disable_so_free_count_reiserfs_bitmap_info_33099 free_count reiserfs_bitmap_info 0 33099 NULL
138721 +disable_so_sys_clock_gettime_fndecl_33100 sys_clock_gettime fndecl 1 33100 NULL
138722 +disable_so_word_write_time_max_flchip_33105 word_write_time_max flchip 0 33105 NULL nohasharray
138723 +disable_so_y_gsc_addr_33105 y gsc_addr 0 33105 &disable_so_word_write_time_max_flchip_33105
138724 +disable_so_prdaddr_atp_id_33111 prdaddr atp_id 0 33111 NULL nohasharray
138725 +disable_so_intel_fdi_link_freq_fndecl_33111 intel_fdi_link_freq fndecl 0 33111 &disable_so_prdaddr_atp_id_33111
138726 +disable_so_soft_use_expires_seconds_xfrm_lifetime_cfg_33115 soft_use_expires_seconds xfrm_lifetime_cfg 0 33115 NULL
138727 +disable_so_strtobool_fndecl_33116 strtobool fndecl 0 33116 NULL
138728 +disable_so_smsc95xx_hash_fndecl_33122 smsc95xx_hash fndecl 0 33122 NULL
138729 +disable_so_mce_device_create_fndecl_33128 mce_device_create fndecl 1-0 33128 NULL
138730 +disable_so_ip6addrlbl_net_init_fndecl_33129 ip6addrlbl_net_init fndecl 0 33129 NULL
138731 +disable_so_brcms_b_set_addrmatch_fndecl_33130 brcms_b_set_addrmatch fndecl 2 33130 NULL
138732 +disable_so_tracer_tgid_ptrace_proc_event_33131 tracer_tgid ptrace_proc_event 0 33131 NULL
138733 +disable_so_pretimeout_vardecl_kempld_wdt_c_33137 pretimeout vardecl_kempld_wdt.c 0 33137 NULL
138734 +disable_so_o2net_set_usertimeout_fndecl_33145 o2net_set_usertimeout fndecl 0 33145 NULL nohasharray
138735 +disable_so_cryptd_blkcipher_encrypt_enqueue_fndecl_33145 cryptd_blkcipher_encrypt_enqueue fndecl 0 33145 &disable_so_o2net_set_usertimeout_fndecl_33145
138736 +disable_so_q_stime_msg_queue_33150 q_stime msg_queue 0 33150 NULL
138737 +disable_so_cursor_cache_gpu_addr_ast_private_33160 cursor_cache_gpu_addr ast_private 0 33160 NULL
138738 +disable_so_clockid_to_kclock_fndecl_33163 clockid_to_kclock fndecl 1 33163 NULL
138739 +disable_so_address_ipr_ioadl64_desc_33170 address ipr_ioadl64_desc 0 33170 NULL
138740 +disable_so_wl1271_acx_sleep_auth_fndecl_33172 wl1271_acx_sleep_auth fndecl 0 33172 NULL nohasharray
138741 +disable_so_addr_mii_phy_33172 addr mii_phy 0 33172 &disable_so_wl1271_acx_sleep_auth_fndecl_33172
138742 +disable_so_cr_camif_addr_33181 cr camif_addr 0 33181 NULL
138743 +disable_so___bch_btree_mark_key_fndecl_33194 __bch_btree_mark_key fndecl 2 33194 NULL
138744 +disable_so_mem_addr_m3_list_33199 mem_addr m3_list 0 33199 NULL
138745 +disable_so_start_time_tx_traffic_info_33206 start_time tx_traffic_info 0 33206 NULL
138746 +disable_so_crypto_aead_decrypt_fndecl_33207 crypto_aead_decrypt fndecl 0 33207 NULL
138747 +disable_so_i_mtime_ext2_inode_33209 i_mtime ext2_inode 0 33209 NULL
138748 +disable_so_mei_me_pm_runtime_resume_fndecl_33216 mei_me_pm_runtime_resume fndecl 0 33216 NULL
138749 +disable_so_irq_free_descs_fndecl_33218 irq_free_descs fndecl 1-2 33218 NULL
138750 +disable_so_tune_freq_si476x_radio_ops_33229 tune_freq si476x_radio_ops 0 33229 NULL
138751 +disable_so_increase_address_space_fndecl_33247 increase_address_space fndecl 2 33247 NULL
138752 +disable_so_ps_timeout_vardecl_pseudo_h_33252 ps_timeout vardecl_pseudo.h 0 33252 NULL
138753 +disable_so_init_jiffies_clocksource_fndecl_33253 init_jiffies_clocksource fndecl 0 33253 NULL
138754 +disable_so_do_cpu_nanosleep_fndecl_33255 do_cpu_nanosleep fndecl 1 33255 NULL
138755 +disable_so_efi_thunk_set_virtual_address_map_fndecl_33273 efi_thunk_set_virtual_address_map fndecl 2-3 33273 NULL
138756 +disable_so_ring_physaddr_fbr_lookup_33275 ring_physaddr fbr_lookup 0 33275 NULL
138757 +disable_so_wakeup_prevent_sleep_time_show_fndecl_33280 wakeup_prevent_sleep_time_show fndecl 0 33280 NULL nohasharray
138758 +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
138759 +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
138760 +disable_so_ccp_aes_rfc3686_setkey_fndecl_33280 ccp_aes_rfc3686_setkey fndecl 3 33280 &disable_so_rsdt_physical_address_acpi_table_rsdp_33280
138761 +disable_so_jiffies_to_clock_t_fndecl_33285 jiffies_to_clock_t fndecl 0-1 33285 NULL
138762 +disable_so_gpu_addr_radeon_ib_33291 gpu_addr radeon_ib 0 33291 NULL
138763 +disable_so_crypto_rfc4106_setkey_fndecl_33297 crypto_rfc4106_setkey fndecl 0-3 33297 NULL
138764 +disable_so_crypto_rfc4309_encrypt_fndecl_33306 crypto_rfc4309_encrypt fndecl 0 33306 NULL
138765 +disable_so_xhci_calculate_lpm_timeout_fndecl_33310 xhci_calculate_lpm_timeout fndecl 0 33310 NULL
138766 +disable_so_addr_high_mcp_kreq_ether_send_33319 addr_high mcp_kreq_ether_send 0 33319 NULL
138767 +disable_so_calc_divisor_fndecl_33333 calc_divisor fndecl 0 33333 NULL
138768 +disable_so_i2c_address_dib0070_config_33334 i2c_address dib0070_config 0 33334 NULL
138769 +disable_so_alloc_sleep_millisecs_show_fndecl_33339 alloc_sleep_millisecs_show fndecl 0 33339 NULL nohasharray
138770 +disable_so_hpi_tuner_set_frequency_fndecl_33339 hpi_tuner_set_frequency fndecl 0-1 33339 &disable_so_alloc_sleep_millisecs_show_fndecl_33339
138771 +disable_so_sysctl_aarp_tick_time_vardecl_33343 sysctl_aarp_tick_time vardecl 0 33343 NULL
138772 +disable_so_stv0367cab_set_derot_freq_fndecl_33348 stv0367cab_set_derot_freq fndecl 0-2-3 33348 NULL
138773 +disable_so_pkt_phys_addr_mwl8k_tx_desc_33350 pkt_phys_addr mwl8k_tx_desc 0 33350 NULL
138774 +disable_so_addr_low_lancer_cmd_req_write_object_33351 addr_low lancer_cmd_req_write_object 0 33351 NULL
138775 +disable_so_posix_timer_id_signal_struct_33352 posix_timer_id signal_struct 0 33352 NULL
138776 +disable_so_s_mtime_ext2_super_block_33353 s_mtime ext2_super_block 0 33353 NULL
138777 +disable_so_freq_wmi_remain_on_chnl_event_33368 freq wmi_remain_on_chnl_event 0 33368 NULL
138778 +disable_so_token_time_sfb_sched_data_33369 token_time sfb_sched_data 0 33369 NULL nohasharray
138779 +disable_so_kvmclock_offset_kvm_arch_33369 kvmclock_offset kvm_arch 0 33369 &disable_so_token_time_sfb_sched_data_33369
138780 +disable_so_pipelines_addr_device_queue_manager_33373 pipelines_addr device_queue_manager 0 33373 NULL
138781 +disable_so_nilfs_btree_prepare_convert_and_insert_fndecl_33375 nilfs_btree_prepare_convert_and_insert fndecl 0-2 33375 NULL
138782 +disable_so_hash_netnet6_expire_fndecl_33396 hash_netnet6_expire fndecl 4 33396 NULL
138783 +disable_so_ticks_snd_timer_hardware_33398 ticks snd_timer_hardware 0 33398 NULL nohasharray
138784 +disable_so_pci_bus_max_busnr_fndecl_33398 pci_bus_max_busnr fndecl 0 33398 &disable_so_ticks_snd_timer_hardware_33398
138785 +disable_so_start_time_search_33410 start_time search 0 33410 NULL
138786 +disable_so_flip_addr_intel_overlay_33431 flip_addr intel_overlay 0 33431 NULL
138787 +disable_so_sync_single_for_cpu_dma_map_ops_33433 sync_single_for_cpu dma_map_ops 2-3 33433 NULL
138788 +disable_so_di_ctime_logfs_disk_inode_33435 di_ctime logfs_disk_inode 0 33435 NULL
138789 +disable_so_ocfs2_divide_xattr_bucket_fndecl_33455 ocfs2_divide_xattr_bucket fndecl 0 33455 NULL
138790 +disable_so_sbp_tpg_attrib_show_mgt_orb_timeout_fndecl_33467 sbp_tpg_attrib_show_mgt_orb_timeout fndecl 0 33467 NULL
138791 +disable_so_btrfs_set_free_space_bitmaps_fndecl_33481 btrfs_set_free_space_bitmaps fndecl 3 33481 NULL
138792 +disable_so_demod_address_stv0299_config_33483 demod_address stv0299_config 0 33483 NULL
138793 +disable_so_lbs_sleepparams_write_fndecl_33488 lbs_sleepparams_write fndecl 0-3 33488 NULL
138794 +disable_so_start_time_edac_device_ctl_info_33489 start_time edac_device_ctl_info 0 33489 NULL
138795 +disable_so_addr_f71805f_data_33493 addr f71805f_data 0 33493 NULL
138796 +disable_so_mcgcap_mce_33500 mcgcap mce 0 33500 NULL
138797 +disable_so___smp_spurious_interrupt_fndecl_33501 __smp_spurious_interrupt fndecl 1 33501 NULL
138798 +disable_so_acpi_pad_rrtime_show_fndecl_33511 acpi_pad_rrtime_show fndecl 0 33511 NULL
138799 +disable_so_crypto_ctr_module_init_fndecl_33512 crypto_ctr_module_init fndecl 0 33512 NULL
138800 +disable_so_dtim_time_iwl_mac_data_sta_33519 dtim_time iwl_mac_data_sta 0 33519 NULL
138801 +disable_so_start_signal_voltage_switch_mmc_host_ops_33520 start_signal_voltage_switch mmc_host_ops 0 33520 NULL
138802 +disable_so_ui_atime_ufs2_inode_33541 ui_atime ufs2_inode 0 33541 NULL nohasharray
138803 +disable_so_pll_prediv_dib0090_io_config_33541 pll_prediv dib0090_io_config 0 33541 &disable_so_ui_atime_ufs2_inode_33541
138804 +disable_so_synchronize_irq_fndecl_33551 synchronize_irq fndecl 1 33551 NULL
138805 +disable_so_addrconf_disable_ipv6_fndecl_33555 addrconf_disable_ipv6 fndecl 0 33555 NULL
138806 +disable_so_addr_RxDesc_33558 addr RxDesc 0 33558 NULL
138807 +disable_so_rtc_irq_set_freq_fndecl_33559 rtc_irq_set_freq fndecl 0 33559 NULL
138808 +disable_so_md4_mod_init_fndecl_33560 md4_mod_init fndecl 0 33560 NULL
138809 +disable_so_addr_1_qla8044_minidump_entry_pollwr_33561 addr_1 qla8044_minidump_entry_pollwr 0 33561 NULL
138810 +disable_so_decnet_address_vardecl_33562 decnet_address vardecl 0 33562 NULL
138811 +disable_so_tx_bseq_addr_bnx2_tx_ring_info_33563 tx_bseq_addr bnx2_tx_ring_info 0 33563 NULL
138812 +disable_so_clock_sched_clock_data_33565 clock sched_clock_data 0 33565 NULL
138813 +disable_so_va_uid_coda_vattr_33569 va_uid coda_vattr 0 33569 NULL
138814 +disable_so_timeout_RioCommand_33570 timeout RioCommand 0 33570 NULL
138815 +disable_so_ramp_time_pcf50633_bl_platform_data_33574 ramp_time pcf50633_bl_platform_data 0 33574 NULL
138816 +disable_so_bitmap_init_from_disk_fndecl_33575 bitmap_init_from_disk fndecl 2 33575 NULL
138817 +disable_so_startaddr_banshee_reg_33580 startaddr banshee_reg 0 33580 NULL
138818 +disable_so_intel_pipe_to_cpu_transcoder_fndecl_33581 intel_pipe_to_cpu_transcoder fndecl 0-2 33581 NULL nohasharray
138819 +disable_so_ctl_addr_ide_io_ports_33581 ctl_addr ide_io_ports 0 33581 &disable_so_intel_pipe_to_cpu_transcoder_fndecl_33581
138820 +disable_so_ext4_read_inode_bitmap_fndecl_33583 ext4_read_inode_bitmap fndecl 2 33583 NULL
138821 +disable_so_ims_pcu_ofn_bit_store_fndecl_33597 ims_pcu_ofn_bit_store fndecl 0-4 33597 NULL
138822 +disable_so___bitmap_clear_bits_fndecl_33603 __bitmap_clear_bits fndecl 3-4 33603 NULL
138823 +disable_so_cg_spll_spread_spectrum_2_rv730_clock_registers_33607 cg_spll_spread_spectrum_2 rv730_clock_registers 0 33607 NULL
138824 +disable_so_cs5535_mfgpt_alloc_timer_fndecl_33609 cs5535_mfgpt_alloc_timer fndecl 1 33609 NULL
138825 +disable_so_to_maxval_rpc_timeout_33618 to_maxval rpc_timeout 0 33618 NULL nohasharray
138826 +disable_so_freq_freq_tbl_33618 freq freq_tbl 0 33618 &disable_so_to_maxval_rpc_timeout_33618
138827 +disable_so_hpi_sample_clock_set_auto_fndecl_33619 hpi_sample_clock_set_auto fndecl 1-0 33619 NULL
138828 +disable_so_addr_lo_freelQ_e_33620 addr_lo freelQ_e 0 33620 NULL
138829 +disable_so_addr_via686a_data_33627 addr via686a_data 0 33627 NULL
138830 +disable_so_seq_time_vardecl_33630 seq_time vardecl 0 33630 NULL
138831 +disable_so_tgid_task_struct_33635 tgid task_struct 0 33635 NULL nohasharray
138832 +disable_so_index_addr_read_data_fndecl_33635 index_addr_read_data fndecl 2 33635 &disable_so_tgid_task_struct_33635
138833 +disable_so_random_fasync_fndecl_33642 random_fasync fndecl 1 33642 NULL
138834 +disable_so_snd_usb_mixer_interrupt_v2_fndecl_33643 snd_usb_mixer_interrupt_v2 fndecl 3 33643 NULL
138835 +disable_so_vq_vram_addr_viafb_shared_33653 vq_vram_addr viafb_shared 0 33653 NULL
138836 +disable_so_key_index_wmi_add_cipher_key_cmd_33662 key_index wmi_add_cipher_key_cmd 0 33662 NULL
138837 +disable_so_tpu_pwm_timer_start_fndecl_33663 tpu_pwm_timer_start fndecl 0 33663 NULL
138838 +disable_so_interrupt_in_interval_lego_usb_tower_33664 interrupt_in_interval lego_usb_tower 0 33664 NULL
138839 +disable_so_pr_gid_compat_elf_prpsinfo_33667 pr_gid compat_elf_prpsinfo 0 33667 NULL
138840 +disable_so_sinit_max_init_timeo_sctp_initmsg_33681 sinit_max_init_timeo sctp_initmsg 0 33681 NULL
138841 +disable_so_sdev_store_eh_timeout_fndecl_33688 sdev_store_eh_timeout fndecl 0-4 33688 NULL
138842 +disable_so_uid_ceph_mds_caps_33696 uid ceph_mds_caps 0 33696 NULL
138843 +disable_so_min_timeout_rc_dev_33699 min_timeout rc_dev 0 33699 NULL
138844 +disable_so_addr_alx_rfd_33711 addr alx_rfd 0 33711 NULL
138845 +disable_so_pwm_divisor_max77693_haptic_33724 pwm_divisor max77693_haptic 0 33724 NULL
138846 +disable_so_cb710_mmc_select_clock_divider_fndecl_33732 cb710_mmc_select_clock_divider fndecl 2 33732 NULL
138847 +disable_so_service_timer_previous_i40e_pf_33743 service_timer_previous i40e_pf 0 33743 NULL
138848 +disable_so_btree_gc_count_keys_fndecl_33745 btree_gc_count_keys fndecl 0 33745 NULL
138849 +disable_so_max_usec_vnic_intr_coal_timer_info_33753 max_usec vnic_intr_coal_timer_info 0 33753 NULL
138850 +disable_so_force_hpet_address_vardecl_33758 force_hpet_address vardecl 0 33758 NULL
138851 +disable_so_fl_addr_fib_result_nl_33759 fl_addr fib_result_nl 0 33759 NULL
138852 +disable_so_cx231xx_i2c_recv_bytes_with_saddr_fndecl_33773 cx231xx_i2c_recv_bytes_with_saddr fndecl 0 33773 NULL
138853 +disable_so_cursor_addr_radeon_crtc_33776 cursor_addr radeon_crtc 0 33776 NULL
138854 +disable_so_btrfs_update_time_fndecl_33780 btrfs_update_time fndecl 0 33780 NULL
138855 +disable_so_from_kuid_munged_fndecl_33783 from_kuid_munged fndecl 0 33783 NULL
138856 +disable_so_irda_discover_daddr_and_lsap_sel_fndecl_33786 irda_discover_daddr_and_lsap_sel fndecl 0 33786 NULL
138857 +disable_so_efx_probe_interrupts_fndecl_33793 efx_probe_interrupts fndecl 0 33793 NULL
138858 +disable_so_custom_divisor_cyclades_port_33795 custom_divisor cyclades_port 0 33795 NULL
138859 +disable_so_uli526x_interrupt_fndecl_33800 uli526x_interrupt fndecl 1 33800 NULL
138860 +disable_so_ocrdma_add_stat_fndecl_33807 ocrdma_add_stat fndecl 0 33807 NULL
138861 +disable_so_btrfs_set_token_inode_uid_fndecl_33810 btrfs_set_token_inode_uid fndecl 3 33810 NULL
138862 +disable_so_iowrite32_rep_fndecl_33813 iowrite32_rep fndecl 3 33813 NULL
138863 +disable_so_sys_setresgid_fndecl_33818 sys_setresgid fndecl 0-1-2-3 33818 NULL
138864 +disable_so_radeon_dp_get_dp_link_clock_fndecl_33823 radeon_dp_get_dp_link_clock fndecl 0-3 33823 NULL
138865 +disable_so_timeout__synclinkmp_info_33838 timeout _synclinkmp_info 0 33838 NULL
138866 +disable_so_phys_addr_esas2r_mem_desc_33844 phys_addr esas2r_mem_desc 0 33844 NULL
138867 +disable_so_cpufreq_register_notifier_fndecl_33845 cpufreq_register_notifier fndecl 0 33845 NULL
138868 +disable_so_ufx_reg_write_fndecl_33849 ufx_reg_write fndecl 3 33849 NULL
138869 +disable_so_kstrtou8_from_user_fndecl_33852 kstrtou8_from_user fndecl 0-2 33852 NULL
138870 +disable_so_hpi_sample_clock_get_local_rate_fndecl_33857 hpi_sample_clock_get_local_rate fndecl 1-0 33857 NULL
138871 +disable_so_hor_sync_start_via_display_timing_33861 hor_sync_start via_display_timing 0 33861 NULL
138872 +disable_so_seq_netlbl_domhsh_walk_arg_33872 seq netlbl_domhsh_walk_arg 0 33872 NULL
138873 +disable_so_wrmsrl_on_cpu_fndecl_33873 wrmsrl_on_cpu fndecl 0-1 33873 NULL
138874 +disable_so_cpu_to_vringh32_fndecl_33880 cpu_to_vringh32 fndecl 0-2 33880 NULL
138875 +disable_so_ni_do_program_memory_timing_parameters_fndecl_33886 ni_do_program_memory_timing_parameters fndecl 0 33886 NULL
138876 +disable_so_comp_addr_hi_dmae_command_33889 comp_addr_hi dmae_command 0 33889 NULL
138877 +disable_so_wl18xx_acx_interrupt_notify_config_fndecl_33899 wl18xx_acx_interrupt_notify_config fndecl 0 33899 NULL
138878 +disable_so_creation_time_iscsi_session_33906 creation_time iscsi_session 0 33906 NULL nohasharray
138879 +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
138880 +disable_so_bnx2x_get_rxhash_fndecl_33906 bnx2x_get_rxhash fndecl 0 33906 &disable_so_via_clock_vardecl_pata_via_c_33906
138881 +disable_so_mmio_readl_intel_uncore_funcs_33910 mmio_readl intel_uncore_funcs 0-2 33910 NULL
138882 +disable_so_refresh_time_e1000_fc_info_33911 refresh_time e1000_fc_info 0 33911 NULL
138883 +disable_so_hash_fname_33923 hash fname 0 33923 NULL
138884 +disable_so_sysctl_netrom_transport_timeout_vardecl_33929 sysctl_netrom_transport_timeout vardecl 0 33929 NULL
138885 +disable_so_cg_spll_func_cntl_si_clock_registers_33932 cg_spll_func_cntl si_clock_registers 0 33932 NULL
138886 +disable_so_img_ir_free_timing_fndecl_33939 img_ir_free_timing fndecl 0-2 33939 NULL
138887 +disable_so_max_tsc_khz_vardecl_x86_c_33942 max_tsc_khz vardecl_x86.c 0 33942 NULL
138888 +disable_so_timeout_a_tpm_vendor_specific_33951 timeout_a tpm_vendor_specific 0 33951 NULL
138889 +disable_so_generic_cmd6_time_mmc_ext_csd_33957 generic_cmd6_time mmc_ext_csd 0 33957 NULL
138890 +disable_so_subnet_timeout_qib_ibport_33973 subnet_timeout qib_ibport 0 33973 NULL nohasharray
138891 +disable_so_ring_iowrite16desc_fndecl_33973 ring_iowrite16desc fndecl 2 33973 &disable_so_subnet_timeout_qib_ibport_33973 nohasharray
138892 +disable_so_freq_tiny_spi_33973 freq tiny_spi 0 33973 &disable_so_ring_iowrite16desc_fndecl_33973
138893 +disable_so_ip6addrlbl_del_fndecl_33977 ip6addrlbl_del fndecl 0-4 33977 NULL
138894 +disable_so_btree_readpage_fndecl_33979 btree_readpage fndecl 0 33979 NULL
138895 +disable_so_ifa_broadcast_in_ifaddr_33999 ifa_broadcast in_ifaddr 0 33999 NULL
138896 +disable_so___cpuidle_register_device_fndecl_34012 __cpuidle_register_device fndecl 0 34012 NULL
138897 +disable_so_hpfs_prefetch_bitmap_fndecl_34014 hpfs_prefetch_bitmap fndecl 2 34014 NULL
138898 +disable_so_cur_freq_lbtf_private_34017 cur_freq lbtf_private 0 34017 NULL
138899 +disable_so_pxa2xx_ssp_get_clk_div_fndecl_34021 pxa2xx_ssp_get_clk_div fndecl 0-3 34021 NULL
138900 +disable_so_data_addr_acpi_ec_34022 data_addr acpi_ec 0 34022 NULL
138901 +disable_so_sdev_runtime_resume_fndecl_34033 sdev_runtime_resume fndecl 0 34033 NULL nohasharray
138902 +disable_so_get_aux_clock_divider_intel_dp_34033 get_aux_clock_divider intel_dp 0 34033 &disable_so_sdev_runtime_resume_fndecl_34033
138903 +disable_so_proc_tgid_io_accounting_fndecl_34034 proc_tgid_io_accounting fndecl 0 34034 NULL
138904 +disable_so_long_timeout_scsi_tape_34043 long_timeout scsi_tape 0 34043 NULL
138905 +disable_so_crypto_authenc_esn_givencrypt_done_fndecl_34047 crypto_authenc_esn_givencrypt_done fndecl 2 34047 NULL
138906 +disable_so_addr_wil_fw_data_dwrite_34059 addr wil_fw_data_dwrite 0 34059 NULL
138907 +disable_so_shash_prepare_alg_fndecl_34073 shash_prepare_alg fndecl 0 34073 NULL
138908 +disable_so_ccp_register_aes_algs_fndecl_34079 ccp_register_aes_algs fndecl 0 34079 NULL
138909 +disable_so_addr_mwifiex_dma_mapping_34088 addr mwifiex_dma_mapping 0 34088 NULL
138910 +disable_so_signal_level_hfa384x_comms_quality_34089 signal_level hfa384x_comms_quality 0 34089 NULL
138911 +disable_so_per_jiffies_stats_dib7000p_state_34090 per_jiffies_stats dib7000p_state 0 34090 NULL nohasharray
138912 +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
138913 +disable_so_rt_mutex_timed_lock_fndecl_34096 rt_mutex_timed_lock fndecl 0 34096 NULL
138914 +disable_so_addr_i2c_device_34103 addr i2c_device 0 34103 NULL
138915 +disable_so_run_nmi_sleep_test_fndecl_34107 run_nmi_sleep_test fndecl 1 34107 NULL
138916 +disable_so_distribute_cfs_runtime_fndecl_34121 distribute_cfs_runtime fndecl 0-2-3 34121 NULL
138917 +disable_so_iscsi_nacl_attrib_store_nopin_response_timeout_fndecl_34124 iscsi_nacl_attrib_store_nopin_response_timeout fndecl 0-3 34124 NULL
138918 +disable_so_bi_len_gfs2_bitmap_34126 bi_len gfs2_bitmap 0 34126 NULL
138919 +disable_so_qdiv_mode_skl_wrpll_params_34127 qdiv_mode skl_wrpll_params 0 34127 NULL
138920 +disable_so_cpuidle_enable_device_fndecl_34132 cpuidle_enable_device fndecl 0 34132 NULL
138921 +disable_so_timer_slack_ns_task_struct_34139 timer_slack_ns task_struct 0 34139 NULL
138922 +disable_so_mic_max_system_addr_fndecl_34141 mic_max_system_addr fndecl 0 34141 NULL nohasharray
138923 +disable_so_ima_calc_file_shash_fndecl_34141 ima_calc_file_shash fndecl 0 34141 &disable_so_mic_max_system_addr_fndecl_34141
138924 +disable_so_lm3533_led_get_hw_delay_fndecl_34142 lm3533_led_get_hw_delay fndecl 0 34142 NULL
138925 +disable_so_nd_ipv4_address_o2nm_node_34144 nd_ipv4_address o2nm_node 0 34144 NULL
138926 +disable_so_r28_val_fc2580_freq_regs_34150 r28_val fc2580_freq_regs 0 34150 NULL
138927 +disable_so_musb_read_txfunaddr_fndecl_34175 musb_read_txfunaddr fndecl 2-0 34175 NULL
138928 +disable_so_offset_addr_pch_udc_ep_34177 offset_addr pch_udc_ep 0 34177 NULL
138929 +disable_so_stv0900_get_carr_freq_fndecl_34190 stv0900_get_carr_freq fndecl 0-2 34190 NULL
138930 +disable_so_base_addr_user_desc_34191 base_addr user_desc 0 34191 NULL
138931 +disable_so_hi_cfg_timing_div_drxj_data_34197 hi_cfg_timing_div drxj_data 0 34197 NULL
138932 +disable_so_sha1_mb_async_finup_fndecl_34207 sha1_mb_async_finup fndecl 0 34207 NULL
138933 +disable_so_hpi_outstream_set_time_scale_fndecl_34210 hpi_outstream_set_time_scale fndecl 1-0 34210 NULL
138934 +disable_so_keyup_jiffies_rc_dev_34213 keyup_jiffies rc_dev 0 34213 NULL
138935 +disable_so_inet_sk_reselect_saddr_fndecl_34214 inet_sk_reselect_saddr fndecl 0 34214 NULL
138936 +disable_so_cm_ack_timeout_fndecl_34216 cm_ack_timeout fndecl 0-1-2 34216 NULL nohasharray
138937 +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
138938 +disable_so_nsec_to_clock_t_fndecl_34222 nsec_to_clock_t fndecl 0-1 34222 NULL
138939 +disable_so_pch_systime_write_fndecl_34223 pch_systime_write fndecl 2 34223 NULL
138940 +disable_so_addr_uio_mem_34242 addr uio_mem 0 34242 NULL
138941 +disable_so_xfs_btree_split_fndecl_34248 xfs_btree_split fndecl 0 34248 NULL
138942 +disable_so_address_acpi_pct_register_34258 address acpi_pct_register 0 34258 NULL
138943 +disable_so_ci_otg_fsm_add_timer_fndecl_34261 ci_otg_fsm_add_timer fndecl 2 34261 NULL
138944 +disable_so_snd_timer_resolution_fndecl_34272 snd_timer_resolution fndecl 0 34272 NULL
138945 +disable_so_delay_rts_after_send_serial_rs485_34273 delay_rts_after_send serial_rs485 0 34273 NULL nohasharray
138946 +disable_so_set_msr_interception_fndecl_34273 set_msr_interception fndecl 2 34273 &disable_so_delay_rts_after_send_serial_rs485_34273
138947 +disable_so_qla4xxx_fw_ext_timestamp_show_fndecl_34274 qla4xxx_fw_ext_timestamp_show fndecl 0 34274 NULL
138948 +disable_so_hash_ipport6_expire_fndecl_34286 hash_ipport6_expire fndecl 4 34286 NULL
138949 +disable_so_da9063_rtc_set_time_fndecl_34291 da9063_rtc_set_time fndecl 0 34291 NULL nohasharray
138950 +disable_so_early_cpu_to_node_fndecl_34291 early_cpu_to_node fndecl 0 34291 &disable_so_da9063_rtc_set_time_fndecl_34291
138951 +disable_so_port_io_addr_34293 port io_addr 0 34293 NULL
138952 +disable_so_nilfs_palloc_bitmap_blkoff_fndecl_34306 nilfs_palloc_bitmap_blkoff fndecl 0-2 34306 NULL
138953 +disable_so_last_delaylps_stamp_jiffies_rtl_ps_ctl_34320 last_delaylps_stamp_jiffies rtl_ps_ctl 0 34320 NULL nohasharray
138954 +disable_so_tunedfreq_s5h1420_state_34320 tunedfreq s5h1420_state 0 34320 &disable_so_last_delaylps_stamp_jiffies_rtl_ps_ctl_34320
138955 +disable_so_rd16_nvkm_ofuncs_34339 rd16 nvkm_ofuncs 0-2 34339 NULL
138956 +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
138957 +disable_so_eeprom_delay_ipw_priv_34346 eeprom_delay ipw_priv 0 34346 NULL nohasharray
138958 +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
138959 +disable_so_intr_timer_type_vnic_fc_config_34351 intr_timer_type vnic_fc_config 0 34351 NULL
138960 +disable_so_skcipher_null_crypt_fndecl_34354 skcipher_null_crypt fndecl 0-4 34354 NULL
138961 +disable_so_ac_stime_taskstats_34355 ac_stime taskstats 0 34355 NULL
138962 +disable_so_set_bit_to_user_fndecl_34358 set_bit_to_user fndecl 0 34358 NULL
138963 +disable_so_sip_timeout_vardecl_nf_conntrack_sip_c_34365 sip_timeout vardecl_nf_conntrack_sip.c 0 34365 NULL
138964 +disable_so_map_addr_fndecl_34371 map_addr fndecl 2-3-6-7 34371 NULL
138965 +disable_so_rds_sysctl_reconnect_min_jiffies_vardecl_34380 rds_sysctl_reconnect_min_jiffies vardecl 0 34380 NULL
138966 +disable_so_note_interrupt_fndecl_34381 note_interrupt fndecl 1 34381 NULL
138967 +disable_so_addr_nv50_sync_34383 addr nv50_sync 0 34383 NULL
138968 +disable_so_clock_gate_dis2_vlv_s0ix_state_34384 clock_gate_dis2 vlv_s0ix_state 0 34384 NULL
138969 +disable_so_sctp_add_bind_addr_fndecl_34385 sctp_add_bind_addr fndecl 4 34385 NULL nohasharray
138970 +disable_so_crypto_comp_decompress_fndecl_34385 crypto_comp_decompress fndecl 3 34385 &disable_so_sctp_add_bind_addr_fndecl_34385
138971 +disable_so_s5h1409_sleep_fndecl_34392 s5h1409_sleep fndecl 2 34392 NULL
138972 +disable_so_i2c_address_mt2266_config_34394 i2c_address mt2266_config 0 34394 NULL
138973 +disable_so_ext4_inode_bitmap_csum_verify_fndecl_34396 ext4_inode_bitmap_csum_verify fndecl 2-5 34396 NULL
138974 +disable_so_blocksize_crypto_report_cipher_34404 blocksize crypto_report_cipher 0 34404 NULL
138975 +disable_so_min_dwell_time_active_conf_scan_settings_34406 min_dwell_time_active conf_scan_settings 0 34406 NULL
138976 +disable_so_sec_ptp_clock_time_34411 sec ptp_clock_time 0 34411 NULL nohasharray
138977 +disable_so_vxlan_nla_get_addr_fndecl_34411 vxlan_nla_get_addr fndecl 0 34411 &disable_so_sec_ptp_clock_time_34411
138978 +disable_so_psb_intel_sdvo_create_preferred_input_timing_fndecl_34416 psb_intel_sdvo_create_preferred_input_timing fndecl 3-4 34416 NULL
138979 +disable_so_decode_attr_bitmap_fndecl_34420 decode_attr_bitmap fndecl 0 34420 NULL
138980 +disable_so_address_acpi_mem_space_context_34426 address acpi_mem_space_context 0 34426 NULL
138981 +disable_so_netlbl_domhsh_hash_fndecl_34442 netlbl_domhsh_hash fndecl 0 34442 NULL
138982 +disable_so_bdbar_addr_ichdev_34446 bdbar_addr ichdev 0 34446 NULL
138983 +disable_so_ksm_thread_sleep_millisecs_vardecl_ksm_c_34451 ksm_thread_sleep_millisecs vardecl_ksm.c 0 34451 NULL
138984 +disable_so_signal_ieee80211_rx_status_34458 signal ieee80211_rx_status 0 34458 NULL
138985 +disable_so_dma_addr_cxio_hal_ctrl_qp_34469 dma_addr cxio_hal_ctrl_qp 0 34469 NULL
138986 +disable_so_ata_lookup_timeout_table_fndecl_34470 ata_lookup_timeout_table fndecl 1 34470 NULL
138987 +disable_so_sk_rmem_schedule_fndecl_34476 sk_rmem_schedule fndecl 3 34476 NULL
138988 +disable_so_end_seq_tcp_sack_block_34486 end_seq tcp_sack_block 0 34486 NULL
138989 +disable_so_min_delay_intel_ilk_power_mgmt_34505 min_delay intel_ilk_power_mgmt 0 34505 NULL
138990 +disable_so_sol_time_fcoe_ctlr_34513 sol_time fcoe_ctlr 0 34513 NULL
138991 +disable_so_spu_set_interrupt_mode_fndecl_34518 spu_set_interrupt_mode fndecl 0 34518 NULL
138992 +disable_so_stmmac_interrupt_fndecl_34535 stmmac_interrupt fndecl 1 34535 NULL
138993 +disable_so_sin6_family_sockaddr_in6_34544 sin6_family sockaddr_in6 0 34544 NULL
138994 +disable_so_mem_addr__drm_via_descriptor_34550 mem_addr _drm_via_descriptor 0 34550 NULL
138995 +disable_so_root_server_addr_vardecl_34556 root_server_addr vardecl 0 34556 NULL
138996 +disable_so_pfkey_sadb_addr2xfrm_addr_fndecl_34565 pfkey_sadb_addr2xfrm_addr fndecl 0 34565 NULL
138997 +disable_so_map_sip_addr_fndecl_34566 map_sip_addr fndecl 2-3 34566 NULL
138998 +disable_so_path_refresh_time_mesh_config_34567 path_refresh_time mesh_config 0 34567 NULL nohasharray
138999 +disable_so_ccp_register_sha_algs_fndecl_34567 ccp_register_sha_algs fndecl 0 34567 &disable_so_path_refresh_time_mesh_config_34567
139000 +disable_so_max_tx_power_mwifiex_chan_freq_power_34571 max_tx_power mwifiex_chan_freq_power 0 34571 NULL
139001 +disable_so_last_mlx4_bitmap_34590 last mlx4_bitmap 0 34590 NULL
139002 +disable_so_alloc_cpumask_var_fndecl_34599 alloc_cpumask_var fndecl 2 34599 NULL
139003 +disable_so_addr_macb_dma_desc_34600 addr macb_dma_desc 0 34600 NULL
139004 +disable_so_eee_timer_vardecl_sxgbe_main_c_34602 eee_timer vardecl_sxgbe_main.c 0 34602 NULL nohasharray
139005 +disable_so_rdx_kvm_regs_34602 rdx kvm_regs 0 34602 &disable_so_eee_timer_vardecl_sxgbe_main_c_34602
139006 +disable_so_rsi_kvm_regs_34605 rsi kvm_regs 0 34605 NULL
139007 +disable_so_task_tgid_nr_ns_fndecl_34623 task_tgid_nr_ns fndecl 0 34623 NULL
139008 +disable_so_saddr_irnet_log_34630 saddr irnet_log 0 34630 NULL
139009 +disable_so_timestart_edc_34631 timestart edc 0 34631 NULL
139010 +disable_so_saddr_tcp4_pseudohdr_34636 saddr tcp4_pseudohdr 0 34636 NULL
139011 +disable_so_ab3100_mask_and_set_register_interruptible_fndecl_34643 ab3100_mask_and_set_register_interruptible fndecl 0 34643 NULL
139012 +disable_so_hsave_msr_nested_state_34651 hsave_msr nested_state 0 34651 NULL
139013 +disable_so_schedule_timeout_uninterruptible_fndecl_34670 schedule_timeout_uninterruptible fndecl 1-0 34670 NULL
139014 +disable_so_addr_tuner_i2c_props_34671 addr tuner_i2c_props 0 34671 NULL
139015 +disable_so_hash_ip4_expire_fndecl_34676 hash_ip4_expire fndecl 4 34676 NULL
139016 +disable_so_rxfunaddr_musb_csr_regs_34678 rxfunaddr musb_csr_regs 0 34678 NULL
139017 +disable_so_timer_intv_tipc_link_req_34680 timer_intv tipc_link_req 0 34680 NULL
139018 +disable_so_mounted_uid_ncp_fs_info_34684 mounted_uid ncp_fs_info 0 34684 NULL
139019 +disable_so_crypto_ablkcipher_setkey_fndecl_34685 crypto_ablkcipher_setkey fndecl 0-3 34685 NULL
139020 +disable_so_pm_qos_update_request_timeout_fndecl_34688 pm_qos_update_request_timeout fndecl 3-2 34688 NULL
139021 +disable_so_max_interrupt_work_vardecl_starfire_c_34691 max_interrupt_work vardecl_starfire.c 0 34691 NULL nohasharray
139022 +disable_so_register_dnaddr_notifier_fndecl_34691 register_dnaddr_notifier fndecl 0 34691 &disable_so_max_interrupt_work_vardecl_starfire_c_34691
139023 +disable_so_incr_cpu_timer_list_34693 incr cpu_timer_list 0 34693 NULL
139024 +disable_so_crypto_pcbc_decrypt_segment_fndecl_34695 crypto_pcbc_decrypt_segment fndecl 0 34695 NULL
139025 +disable_so_sgid_index_ib_global_route_34700 sgid_index ib_global_route 0 34700 NULL
139026 +disable_so_min_mtime_sit_info_34717 min_mtime sit_info 0 34717 NULL nohasharray
139027 +disable_so_panel_power_down_delay_intel_dp_34717 panel_power_down_delay intel_dp 0 34717 &disable_so_min_mtime_sit_info_34717
139028 +disable_so_i_hash_shift_vardecl_inode_c_34719 i_hash_shift vardecl_inode.c 0 34719 NULL
139029 +disable_so_wusb_trust_timeout_show_fndecl_34721 wusb_trust_timeout_show fndecl 0 34721 NULL nohasharray
139030 +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
139031 +disable_so_time_ntlmv2_resp_34723 time ntlmv2_resp 0 34723 NULL
139032 +disable_so_cache_time_vardecl_sbs_c_34731 cache_time vardecl_sbs.c 0 34731 NULL
139033 +disable_so_calc_eng_mem_clock_fndecl_34737 calc_eng_mem_clock fndecl 2-0 34737 NULL
139034 +disable_so_rx_time_us_qlcnic_nic_intr_coalesce_34739 rx_time_us qlcnic_nic_intr_coalesce 0 34739 NULL
139035 +disable_so_di_mtime_qnx4_inode_entry_34740 di_mtime qnx4_inode_entry 0 34740 NULL
139036 +disable_so_ts_paddr_start_ath_hw_34743 ts_paddr_start ath_hw 0 34743 NULL
139037 +disable_so_smsc95xx_enable_phy_wakeup_interrupts_fndecl_34747 smsc95xx_enable_phy_wakeup_interrupts fndecl 0-2 34747 NULL
139038 +disable_so_ccp_sha_finup_fndecl_34752 ccp_sha_finup fndecl 0 34752 NULL
139039 +disable_so_sdr_fm_freq_vivid_dev_34755 sdr_fm_freq vivid_dev 0 34755 NULL
139040 +disable_so_out_n_analog_pcm_runtime_34756 out_n_analog pcm_runtime 0 34756 NULL
139041 +disable_so_dmaaddr_net2280_dma_34761 dmaaddr net2280_dma 0 34761 NULL
139042 +disable_so_wl12xx_tx_delayed_compl_fndecl_34763 wl12xx_tx_delayed_compl fndecl 0 34763 NULL
139043 +disable_so_uv_rtc_set_timer_fndecl_34765 uv_rtc_set_timer fndecl 1 34765 NULL
139044 +disable_so_switch_start_time_ath_chanctx_sched_34766 switch_start_time ath_chanctx_sched 0 34766 NULL
139045 +disable_so_xhci_calculate_intel_u2_timeout_fndecl_34769 xhci_calculate_intel_u2_timeout fndecl 0 34769 NULL
139046 +disable_so_addrconf_get_prefix_route_fndecl_34770 addrconf_get_prefix_route fndecl 2 34770 NULL nohasharray
139047 +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
139048 +disable_so_ts_total_peak_time_ref_34800 ts_total peak_time_ref 0 34800 NULL nohasharray
139049 +disable_so_airtime_link_metric_get_fndecl_34800 airtime_link_metric_get fndecl 0 34800 &disable_so_ts_total_peak_time_ref_34800
139050 +disable_so_btrfsic_block_link_hashtable_lookup_fndecl_34807 btrfsic_block_link_hashtable_lookup fndecl 2-4 34807 NULL
139051 +disable_so_posix_cpu_nsleep_fndecl_34821 posix_cpu_nsleep fndecl 1 34821 NULL
139052 +disable_so_phys_addr_kvm_coalesced_mmio_34828 phys_addr kvm_coalesced_mmio 0 34828 NULL
139053 +disable_so_baddr_sym_m_vtob_34832 baddr sym_m_vtob 0 34832 NULL
139054 +disable_so_tp_set_timers_fndecl_34836 tp_set_timers fndecl 2 34836 NULL nohasharray
139055 +disable_so_clock_t_to_jiffies_fndecl_34836 clock_t_to_jiffies fndecl 0-1 34836 &disable_so_tp_set_timers_fndecl_34836
139056 +disable_so_bq2415x_sysfs_show_timer_fndecl_34838 bq2415x_sysfs_show_timer fndecl 0 34838 NULL
139057 +disable_so_compat_sys_utimensat_fndecl_34845 compat_sys_utimensat fndecl 1-0 34845 NULL
139058 +disable_so_be64_to_timespec_fndecl_34857 be64_to_timespec fndecl 1 34857 NULL
139059 +disable_so_bus_addr_drm_ati_pcigart_info_34860 bus_addr drm_ati_pcigart_info 0 34860 NULL
139060 +disable_so_rt2x00crypto_rx_insert_iv_fndecl_34864 rt2x00crypto_rx_insert_iv fndecl 2 34864 NULL
139061 +disable_so___mmc_set_clock_fndecl_34870 __mmc_set_clock fndecl 2 34870 NULL
139062 +disable_so_node_random_fndecl_34871 node_random fndecl 0 34871 NULL
139063 +disable_so_timer_endnode_hello_message_34875 timer endnode_hello_message 0 34875 NULL
139064 +disable_so_drbg_hash_df_fndecl_34876 drbg_hash_df fndecl 0-3 34876 NULL
139065 +disable_so_xfs_btree_shift_keys_fndecl_34880 xfs_btree_shift_keys fndecl 4 34880 NULL
139066 +disable_so_check_freqs_fndecl_34886 check_freqs fndecl 2 34886 NULL
139067 +disable_so_zd_iowrite16_fndecl_34890 zd_iowrite16 fndecl 0 34890 NULL
139068 +disable_so_timespec_to_be64_fndecl_34898 timespec_to_be64 fndecl 0 34898 NULL
139069 +disable_so_random_frame_fotg210_hcd_34908 random_frame fotg210_hcd 0 34908 NULL
139070 +disable_so___addrconf_sysctl_register_fndecl_34918 __addrconf_sysctl_register fndecl 0 34918 NULL
139071 +disable_so_addr_sge_fl_34923 addr sge_fl 0 34923 NULL
139072 +disable_so_irq_timeout_read_fndecl_34926 irq_timeout_read fndecl 3-0 34926 NULL
139073 +disable_so_show_interrupt_enable_fndecl_34935 show_interrupt_enable fndecl 0 34935 NULL
139074 +disable_so_sctp_getsockopt_paddr_thresholds_fndecl_34938 sctp_getsockopt_paddr_thresholds fndecl 0 34938 NULL
139075 +disable_so_nilfs_superblock_sb_write_time_show_fndecl_34943 nilfs_superblock_sb_write_time_show fndecl 0 34943 NULL
139076 +disable_so_emac_addr_bnx2x_mac_vals_34948 emac_addr bnx2x_mac_vals 0 34948 NULL
139077 +disable_so_fs_tss_segment_32_34954 fs tss_segment_32 0 34954 NULL
139078 +disable_so_twl6030_interrupt_mask_fndecl_34960 twl6030_interrupt_mask fndecl 2-0 34960 NULL
139079 +disable_so_tda18271_sleep_fndecl_34961 tda18271_sleep fndecl 0 34961 NULL
139080 +disable_so_smack_task_setscheduler_fndecl_34976 smack_task_setscheduler fndecl 0 34976 NULL
139081 +disable_so_rp_ts_jiffies_xpc_activate_mq_msghdr_uv_34992 rp_ts_jiffies xpc_activate_mq_msghdr_uv 0 34992 NULL
139082 +disable_so_p_vaddr_elf64_phdr_34996 p_vaddr elf64_phdr 0 34996 NULL
139083 +disable_so_ath9k_hw_rf_set_freq_fndecl_35000 ath9k_hw_rf_set_freq fndecl 0 35000 NULL
139084 +disable_so_regulator_set_voltage_time_sel_fndecl_35005 regulator_set_voltage_time_sel fndecl 2-3-0 35005 NULL
139085 +disable_so_read_addr_stride___cache_35010 read_addr_stride __cache 0 35010 NULL
139086 +disable_so_get_slave_base_gid_ix_fndecl_35011 get_slave_base_gid_ix fndecl 0-2-3 35011 NULL
139087 +disable_so_sccb_reg_write_fndecl_35015 sccb_reg_write fndecl 2-3 35015 NULL
139088 +disable_so_fsl_pwm_calculate_period_cycles_fndecl_35019 fsl_pwm_calculate_period_cycles fndecl 0-2 35019 NULL nohasharray
139089 +disable_so_dn_hash_sock_fndecl_35019 dn_hash_sock fndecl 0 35019 &disable_so_fsl_pwm_calculate_period_cycles_fndecl_35019
139090 +disable_so_lp8788_rtc_set_time_fndecl_35021 lp8788_rtc_set_time fndecl 0 35021 NULL
139091 +disable_so_qos_ctl_libipw_hdr_3addrqos_35024 qos_ctl libipw_hdr_3addrqos 0 35024 NULL
139092 +disable_so_clk_divider_set_rate_fndecl_35029 clk_divider_set_rate fndecl 2-3 35029 NULL
139093 +disable_so_et1phyaddr_ssb_sprom_35034 et1phyaddr ssb_sprom 0 35034 NULL
139094 +disable_so_tg3_hwclock_to_timestamp_fndecl_35038 tg3_hwclock_to_timestamp fndecl 2 35038 NULL
139095 +disable_so_cipso_v4_bitmap_walk_fndecl_35041 cipso_v4_bitmap_walk fndecl 0-3 35041 NULL
139096 +disable_so_wmi_set_mac_address_fndecl_35043 wmi_set_mac_address fndecl 0 35043 NULL
139097 +disable_so_hpi_cobranet_get_macaddress_fndecl_35048 hpi_cobranet_get_macaddress fndecl 1 35048 NULL
139098 +disable_so_rds_sysctl_reconnect_max_jiffies_vardecl_35052 rds_sysctl_reconnect_max_jiffies vardecl 0 35052 NULL
139099 +disable_so_bg_inode_bitmap_ext2_group_desc_35053 bg_inode_bitmap ext2_group_desc 0 35053 NULL
139100 +disable_so_jiffies_u132_endp_35057 jiffies u132_endp 0 35057 NULL
139101 +disable_so_vivid_sdr_s_frequency_fndecl_35060 vivid_sdr_s_frequency fndecl 0 35060 NULL nohasharray
139102 +disable_so_bnx2x_rearm_latch_signal_fndecl_35060 bnx2x_rearm_latch_signal fndecl 2 35060 &disable_so_vivid_sdr_s_frequency_fndecl_35060
139103 +disable_so_SYSC_signalfd4_fndecl_35061 SYSC_signalfd4 fndecl 4 35061 NULL
139104 +disable_so_qp_get_mtt_addr_fndecl_35062 qp_get_mtt_addr fndecl 0 35062 NULL nohasharray
139105 +disable_so_put_dec_fndecl_35062 put_dec fndecl 2 35062 &disable_so_qp_get_mtt_addr_fndecl_35062
139106 +disable_so_time_perf_cgroup_info_35063 time perf_cgroup_info 0 35063 NULL
139107 +disable_so_xattr_datum_hashkey_fndecl_35065 xattr_datum_hashkey fndecl 4 35065 NULL
139108 +disable_so_fandiv1_nct6775_data_35066 fandiv1 nct6775_data 0 35066 NULL
139109 +disable_so_backbias_response_time_radeon_dpm_35069 backbias_response_time radeon_dpm 0 35069 NULL
139110 +disable_so_wrmsrl_safe_on_cpu_fndecl_35071 wrmsrl_safe_on_cpu fndecl 0-1 35071 NULL
139111 +disable_so_update_time_vardecl_page_writeback_c_35083 update_time vardecl_page-writeback.c 0 35083 NULL
139112 +disable_so_fifo_copy_timeout_rtl8139_private_35085 fifo_copy_timeout rtl8139_private 0 35085 NULL
139113 +disable_so_kstrtou16_from_user_fndecl_35089 kstrtou16_from_user fndecl 2 35089 NULL
139114 +disable_so_atomic_check_drm_crtc_helper_funcs_35115 atomic_check drm_crtc_helper_funcs 0 35115 NULL
139115 +disable_so_sprintf_fndecl_35121 sprintf fndecl 0 35121 NULL
139116 +disable_so_ipv6_add_addr_fndecl_35131 ipv6_add_addr fndecl 4-5-7-8-6 35131 NULL
139117 +disable_so_free_irq_fndecl_35135 free_irq fndecl 1 35135 NULL
139118 +disable_so_inet_addr_onlink_fndecl_35142 inet_addr_onlink fndecl 2-3 35142 NULL
139119 +disable_so_dbg_snprintf_key_fndecl_35144 dbg_snprintf_key fndecl 4 35144 NULL
139120 +disable_so_compute_guest_tsc_fndecl_35147 compute_guest_tsc fndecl 0 35147 NULL
139121 +disable_so_ieee80211_crypto_ccmp_decrypt_fndecl_35154 ieee80211_crypto_ccmp_decrypt fndecl 2 35154 NULL
139122 +disable_so_start_time_task_struct_35158 start_time task_struct 0 35158 NULL
139123 +disable_so__da9063_wdt_set_timeout_fndecl_35161 _da9063_wdt_set_timeout fndecl 2-0 35161 NULL
139124 +disable_so_hard_add_expires_seconds_xfrm_lifetime_cfg_35162 hard_add_expires_seconds xfrm_lifetime_cfg 0 35162 NULL
139125 +disable_so_page_address_ms_param_register_35167 page_address ms_param_register 0 35167 NULL nohasharray
139126 +disable_so_rsaddr_irnet_socket_35167 rsaddr irnet_socket 0 35167 &disable_so_page_address_ms_param_register_35167
139127 +disable_so_acpi_os_remove_interrupt_handler_fndecl_35171 acpi_os_remove_interrupt_handler fndecl 1 35171 NULL
139128 +disable_so_hash_mac4_expire_fndecl_35179 hash_mac4_expire fndecl 4 35179 NULL
139129 +disable_so_wd_timeout_irlap_cb_35189 wd_timeout irlap_cb 0 35189 NULL
139130 +disable_so_bitmap_set_memory_bits_fndecl_35200 bitmap_set_memory_bits fndecl 2 35200 NULL
139131 +disable_so_o2nm_cluster_attr_idle_timeout_ms_read_fndecl_35219 o2nm_cluster_attr_idle_timeout_ms_read fndecl 0 35219 NULL
139132 +disable_so_set_clock_sdhci_ops_35233 set_clock sdhci_ops 2 35233 NULL
139133 +disable_so_dib3000mc_set_timing_fndecl_35234 dib3000mc_set_timing fndecl 2-3 35234 NULL
139134 +disable_so_ui_ctimensec_ufs2_inode_35235 ui_ctimensec ufs2_inode 0 35235 NULL nohasharray
139135 +disable_so_timerfd_fget_fndecl_35235 timerfd_fget fndecl 1 35235 &disable_so_ui_ctimensec_ufs2_inode_35235
139136 +disable_so_fat_time_fat2unix_fndecl_35238 fat_time_fat2unix fndecl 5-4-3 35238 NULL nohasharray
139137 +disable_so_c_reconnect_jiffies_rds_connection_35238 c_reconnect_jiffies rds_connection 0 35238 &disable_so_fat_time_fat2unix_fndecl_35238
139138 +disable_so_link_transition_jiffies_cas_35242 link_transition_jiffies cas 0 35242 NULL
139139 +disable_so_nested_vmx_load_msr_fndecl_35245 nested_vmx_load_msr fndecl 2 35245 NULL
139140 +disable_so_freqmax_snd_usb_endpoint_35248 freqmax snd_usb_endpoint 0 35248 NULL
139141 +disable_so___ocfs2_write_remove_suid_fndecl_35250 __ocfs2_write_remove_suid fndecl 0 35250 NULL
139142 +disable_so_si_parse_pplib_clock_info_fndecl_35257 si_parse_pplib_clock_info fndecl 3 35257 NULL
139143 +disable_so_nfs_init_timeout_values_fndecl_35265 nfs_init_timeout_values fndecl 3-4-2 35265 NULL
139144 +disable_so_pm_generic_runtime_suspend_fndecl_35268 pm_generic_runtime_suspend fndecl 0 35268 NULL
139145 +disable_so_err_time_ip_tunnel_35271 err_time ip_tunnel 0 35271 NULL
139146 +disable_so_addr_1_qla8044_minidump_entry_pollrdmwr_35274 addr_1 qla8044_minidump_entry_pollrdmwr 0 35274 NULL
139147 +disable_so_simple_strtoull_fndecl_35278 simple_strtoull fndecl 0 35278 NULL
139148 +disable_so_jiffies_to_wait_irctl_35279 jiffies_to_wait irctl 0 35279 NULL
139149 +disable_so_delay_loop_fndecl_35280 delay_loop fndecl 1 35280 NULL
139150 +disable_so_lbs_set_deep_sleep_fndecl_35287 lbs_set_deep_sleep fndecl 0 35287 NULL nohasharray
139151 +disable_so_log_start_addr_client_hdr_35287 log_start_addr client_hdr 0 35287 &disable_so_lbs_set_deep_sleep_fndecl_35287
139152 +disable_so_max_sleep_period_ieee80211_conf_35289 max_sleep_period ieee80211_conf 0 35289 NULL
139153 +disable_so_default_mclk_radeon_clock_35306 default_mclk radeon_clock 0 35306 NULL nohasharray
139154 +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
139155 +disable_so_sctp_setsockopt_primary_addr_fndecl_35330 sctp_setsockopt_primary_addr fndecl 3-0 35330 NULL
139156 +disable_so_sys_setreuid_fndecl_35338 sys_setreuid fndecl 0-1-2 35338 NULL
139157 +disable_so_tailbuf_paddr_gr_ep_35341 tailbuf_paddr gr_ep 0 35341 NULL
139158 +disable_so_hpi_write_words_le16_fndecl_35350 hpi_write_words_le16 fndecl 2-4 35350 NULL
139159 +disable_so_kvm_set_irq_fndecl_35352 kvm_set_irq fndecl 3-2 35352 NULL
139160 +disable_so_rq_pbl_addr_lo_fcoe_kwqe_conn_offload1_35353 rq_pbl_addr_lo fcoe_kwqe_conn_offload1 0 35353 NULL
139161 +disable_so_trim_timeout_mmc_ext_csd_35357 trim_timeout mmc_ext_csd 0 35357 NULL
139162 +disable_so_alps_get_bitmap_points_fndecl_35358 alps_get_bitmap_points fndecl 1 35358 NULL nohasharray
139163 +disable_so_nilfs_btree_node_init_fndecl_35358 nilfs_btree_node_init fndecl 4 35358 &disable_so_alps_get_bitmap_points_fndecl_35358
139164 +disable_so_fl_break_time_file_lock_35359 fl_break_time file_lock 0 35359 NULL
139165 +disable_so_read_addr_qla82xx_md_entry_cache_35362 read_addr qla82xx_md_entry_cache 0 35362 NULL
139166 +disable_so_maddr_xmaddr_35364 maddr xmaddr 0 35364 NULL
139167 +disable_so_timeout_per_command_vscsiif_request_35368 timeout_per_command vscsiif_request 0 35368 NULL
139168 +disable_so_fuse_read_interrupt_fndecl_35386 fuse_read_interrupt fndecl 3-0 35386 NULL
139169 +disable_so_vsock_addr_init_fndecl_35395 vsock_addr_init fndecl 2 35395 NULL
139170 +disable_so_khugepaged_alloc_sleep_millisecs_vardecl_huge_memory_c_35404 khugepaged_alloc_sleep_millisecs vardecl_huge_memory.c 0 35404 NULL
139171 +disable_so_crypto_ahash_setkey_fndecl_35405 crypto_ahash_setkey fndecl 0-3 35405 NULL
139172 +disable_so_en_addr1_nphy_rf_control_override_rev3_35419 en_addr1 nphy_rf_control_override_rev3 0 35419 NULL
139173 +disable_so_rds_ib_update_ipaddr_fndecl_35431 rds_ib_update_ipaddr fndecl 0-2 35431 NULL
139174 +disable_so_address_atto_vda_sge_35432 address atto_vda_sge 0 35432 NULL
139175 +disable_so_w1_process_command_addremove_fndecl_35438 w1_process_command_addremove fndecl 0 35438 NULL
139176 +disable_so_smp_cmd_pairing_random_fndecl_35441 smp_cmd_pairing_random fndecl 0 35441 NULL
139177 +disable_so_crypto_gcm_module_init_fndecl_35446 crypto_gcm_module_init fndecl 0 35446 NULL
139178 +disable_so_ath5k_hw_get_default_slottime_fndecl_35448 ath5k_hw_get_default_slottime fndecl 0 35448 NULL
139179 +disable_so_ac_gid_acct_v3_35461 ac_gid acct_v3 0 35461 NULL nohasharray
139180 +disable_so_bitmap_checkpage_fndecl_35461 bitmap_checkpage fndecl 2 35461 &disable_so_ac_gid_acct_v3_35461
139181 +disable_so_bitmap_blkno_ocfs2_super_35475 bitmap_blkno ocfs2_super 0 35475 NULL
139182 +disable_so_rate_dummy_systimer_pcm_35487 rate dummy_systimer_pcm 0 35487 NULL
139183 +disable_so_moder_time_mlx4_en_cq_35496 moder_time mlx4_en_cq 0 35496 NULL
139184 +disable_so_orion_spi_runtime_resume_fndecl_35506 orion_spi_runtime_resume fndecl 0 35506 NULL
139185 +disable_so_monotonic_time_snsec_vsyscall_gtod_data_35513 monotonic_time_snsec vsyscall_gtod_data 0 35513 NULL
139186 +disable_so_mceusb_process_ir_data_fndecl_35515 mceusb_process_ir_data fndecl 2 35515 NULL
139187 +disable_so_dst_set_freq_fndecl_35516 dst_set_freq fndecl 2 35516 NULL
139188 +disable_so_rtl8139_weird_interrupt_fndecl_35523 rtl8139_weird_interrupt fndecl 4-5 35523 NULL
139189 +disable_so_irlmp_start_discovery_timer_fndecl_35529 irlmp_start_discovery_timer fndecl 2 35529 NULL
139190 +disable_so_address_SGentry_35534 address SGentry 0 35534 NULL
139191 +disable_so_src_clk_freq_msdc_host_35541 src_clk_freq msdc_host 0 35541 NULL
139192 +disable_so_SYSC_signal_fndecl_35543 SYSC_signal fndecl 1 35543 NULL
139193 +disable_so_current_frequency_lgdt3306a_state_35547 current_frequency lgdt3306a_state 0 35547 NULL
139194 +disable_so_i_rt_spc_timelimit_qc_info_35555 i_rt_spc_timelimit qc_info 0 35555 NULL
139195 +disable_so_host_kvm_shared_msr_values_35560 host kvm_shared_msr_values 0 35560 NULL
139196 +disable_so_mapped_loc_addr_nes_cm_info_35561 mapped_loc_addr nes_cm_info 0 35561 NULL
139197 +disable_so_ath6kl_set_addrwin_reg_fndecl_35566 ath6kl_set_addrwin_reg fndecl 0-2 35566 NULL
139198 +disable_so_output_sleep_fndecl_35570 output_sleep fndecl 1 35570 NULL
139199 +disable_so_aes_decrypt_fail_read_fndecl_35596 aes_decrypt_fail_read fndecl 0-3 35596 NULL
139200 +disable_so_hw_timeout_redrat3_dev_35597 hw_timeout redrat3_dev 0 35597 NULL
139201 +disable_so_cx231xx_set_analog_freq_fndecl_35598 cx231xx_set_analog_freq fndecl 2 35598 NULL
139202 +disable_so_sctp_conn_schedule_fndecl_35608 sctp_conn_schedule fndecl 1 35608 NULL
139203 +disable_so_runtime_suspend_sleep_time_cyapa_35610 runtime_suspend_sleep_time cyapa 0 35610 NULL
139204 +disable_so_debug_dma_unmap_page_fndecl_35623 debug_dma_unmap_page fndecl 3-2 35623 NULL
139205 +disable_so_timecounter_read_fndecl_35625 timecounter_read fndecl 0 35625 NULL
139206 +disable_so_clock_mmc_ios_35630 clock mmc_ios 0 35630 NULL
139207 +disable_so_pretimeout_kempld_wdt_data_35641 pretimeout kempld_wdt_data 0 35641 NULL
139208 +disable_so_time_show_fndecl_35660 time_show fndecl 0 35660 NULL
139209 +disable_so_div3_pll_div_35668 div3 pll_div 0 35668 NULL
139210 +disable_so_btree_get_extent_fndecl_35670 btree_get_extent fndecl 4-5 35670 NULL
139211 +disable_so_paddr_ath10k_skb_cb_35676 paddr ath10k_skb_cb 0 35676 NULL
139212 +disable_so_pci_bus_mraid_hba_info_35677 pci_bus mraid_hba_info 0 35677 NULL
139213 +disable_so_m41t80_get_datetime_fndecl_35678 m41t80_get_datetime fndecl 0 35678 NULL
139214 +disable_so_sh_tmu_clock_event_next_fndecl_35683 sh_tmu_clock_event_next fndecl 1 35683 NULL
139215 +disable_so_randomize_range_fndecl_35684 randomize_range fndecl 1-2-3-0 35684 NULL
139216 +disable_so_complete_signal_fndecl_35696 complete_signal fndecl 1 35696 NULL
139217 +disable_so_nft_hash_insert_fndecl_35701 nft_hash_insert fndecl 0 35701 NULL
139218 +disable_so_kvm_vm_ioctl_set_tss_addr_fndecl_35702 kvm_vm_ioctl_set_tss_addr fndecl 2 35702 NULL
139219 +disable_so_si2165_adjust_pll_divl_fndecl_35704 si2165_adjust_pll_divl fndecl 0 35704 NULL
139220 +disable_so_addr_l_xfer_desc_35720 addr_l xfer_desc 0 35720 NULL
139221 +disable_so_m_hash_dlm_message_35721 m_hash dlm_message 0 35721 NULL
139222 +disable_so_end_freq_khz_ieee80211_freq_range_35730 end_freq_khz ieee80211_freq_range 0 35730 NULL
139223 +disable_so_start_addr_vpdma_dtd_35734 start_addr vpdma_dtd 0 35734 NULL
139224 +disable_so_red_calc_qavg_from_idle_time_fndecl_35745 red_calc_qavg_from_idle_time fndecl 0 35745 NULL
139225 +disable_so_cg_spll_spread_spectrum_2_si_clock_registers_35754 cg_spll_spread_spectrum_2 si_clock_registers 0 35754 NULL
139226 +disable_so_l2tp_flowinfo_sockaddr_l2tpip6_35758 l2tp_flowinfo sockaddr_l2tpip6 0 35758 NULL nohasharray
139227 +disable_so_sk_txhash_sock_35758 sk_txhash sock 0 35758 &disable_so_l2tp_flowinfo_sockaddr_l2tpip6_35758
139228 +disable_so_get_mac_address_efx_nic_type_35761 get_mac_address efx_nic_type 0 35761 NULL
139229 +disable_so_crypto_aead_alg_ivsize_fndecl_35777 crypto_aead_alg_ivsize fndecl 0 35777 NULL
139230 +disable_so_vga_switcheroo_runtime_suspend_fndecl_35778 vga_switcheroo_runtime_suspend fndecl 0 35778 NULL
139231 +disable_so_sm_lookup_bitmap_fndecl_35780 sm_lookup_bitmap fndecl 2 35780 NULL
139232 +disable_so_r6040_interrupt_fndecl_35784 r6040_interrupt fndecl 1 35784 NULL
139233 +disable_so_timer_installed_vardecl_ad1848_c_35808 timer_installed vardecl_ad1848.c 0 35808 NULL
139234 +disable_so_addr_to_kill_35815 addr to_kill 0 35815 NULL
139235 +disable_so_postsleep_max_us_mmc_ioc_cmd_35817 postsleep_max_us mmc_ioc_cmd 0 35817 NULL
139236 +disable_so_calc_hash_fndecl_35821 calc_hash fndecl 0-3 35821 NULL
139237 +disable_so_testscript_addr_ath6kl_hw_35825 testscript_addr ath6kl_hw 0 35825 NULL
139238 +disable_so_dma_addr_cpcs_trailer_desc_35826 dma_addr cpcs_trailer_desc 0 35826 NULL nohasharray
139239 +disable_so_nr_threads_signal_struct_35826 nr_threads signal_struct 0 35826 &disable_so_dma_addr_cpcs_trailer_desc_35826
139240 +disable_so_iwl_mvm_schedule_csa_period_fndecl_35828 iwl_mvm_schedule_csa_period fndecl 3-4-0 35828 NULL
139241 +disable_so_nfs4_schedule_stateid_recovery_fndecl_35861 nfs4_schedule_stateid_recovery fndecl 0 35861 NULL
139242 +disable_so_timeout_last_ncp_server_35864 timeout_last ncp_server 0 35864 NULL
139243 +disable_so_send_utimes_fndecl_35871 send_utimes fndecl 3-0-2 35871 NULL nohasharray
139244 +disable_so_remote_rp_ts_jiffies_xpc_partition_35871 remote_rp_ts_jiffies xpc_partition 0 35871 &disable_so_send_utimes_fndecl_35871
139245 +disable_so_current_frequency_lgdt3305_state_35902 current_frequency lgdt3305_state 0 35902 NULL
139246 +disable_so_dram_addr_to_input_addr_fndecl_35905 dram_addr_to_input_addr fndecl 0-2 35905 NULL nohasharray
139247 +disable_so_ifa_local_dn_ifaddr_35905 ifa_local dn_ifaddr 0 35905 &disable_so_dram_addr_to_input_addr_fndecl_35905
139248 +disable_so_proc_uid_map_write_fndecl_35919 proc_uid_map_write fndecl 0-3 35919 NULL
139249 +disable_so_snd_timer_user_fasync_fndecl_35926 snd_timer_user_fasync fndecl 1 35926 NULL nohasharray
139250 +disable_so_ecb_aes_encrypt_fndecl_35926 ecb_aes_encrypt fndecl 0-4 35926 &disable_so_snd_timer_user_fasync_fndecl_35926
139251 +disable_so_st_ctime_sec_p9_stat_dotl_35932 st_ctime_sec p9_stat_dotl 0 35932 NULL
139252 +disable_so_cg_spll_func_cntl_rv730_clock_registers_35937 cg_spll_func_cntl rv730_clock_registers 0 35937 NULL
139253 +disable_so_phy_addr_niu_35946 phy_addr niu 0 35946 NULL
139254 +disable_so_curr_freq_ufs_clk_info_35949 curr_freq ufs_clk_info 0 35949 NULL
139255 +disable_so_ac_gid_taskstats_35951 ac_gid taskstats 0 35951 NULL
139256 +disable_so_addr_hi_eth_rx_bd_35955 addr_hi eth_rx_bd 0 35955 NULL nohasharray
139257 +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
139258 +disable_so_crypto_cmac_digest_setkey_fndecl_35967 crypto_cmac_digest_setkey fndecl 0-3 35967 NULL
139259 +disable_so_abort_mfi_phys_addr_hi_megasas_abort_frame_35969 abort_mfi_phys_addr_hi megasas_abort_frame 0 35969 NULL
139260 +disable_so_pch_can_bit_set_fndecl_35970 pch_can_bit_set fndecl 2 35970 NULL
139261 +disable_so_kvasprintf_fndecl_35976 kvasprintf fndecl 1 35976 NULL
139262 +disable_so___bitmap_parse_fndecl_35977 __bitmap_parse fndecl 0-2-5 35977 NULL
139263 +disable_so_nct6775_select_fan_div_fndecl_35983 nct6775_select_fan_div fndecl 3-4 35983 NULL
139264 +disable_so_ip_hash_ip4_elem_35987 ip hash_ip4_elem 0 35987 NULL
139265 +disable_so_nct6775_write_fan_div_common_fndecl_35989 nct6775_write_fan_div_common fndecl 2 35989 NULL nohasharray
139266 +disable_so_get_mtime_fndecl_35989 get_mtime fndecl 0 35989 &disable_so_nct6775_write_fan_div_common_fndecl_35989
139267 +disable_so_sctp_getsockopt_peer_addr_params_fndecl_35998 sctp_getsockopt_peer_addr_params fndecl 0 35998 NULL
139268 +disable_so_tuner_frequency_stv0299_state_35999 tuner_frequency stv0299_state 0 35999 NULL
139269 +disable_so_sinfo_timetolive_sctp_sndrcvinfo_36000 sinfo_timetolive sctp_sndrcvinfo 0 36000 NULL
139270 +disable_so_h_start_jiffies_jbd2_journal_handle_36008 h_start_jiffies jbd2_journal_handle 0 36008 NULL nohasharray
139271 +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
139272 +disable_so_uv_local_mmr_address_fndecl_36009 uv_local_mmr_address fndecl 1 36009 NULL
139273 +disable_so_adxl34x_autosleep_show_fndecl_36014 adxl34x_autosleep_show fndecl 0 36014 NULL
139274 +disable_so_tst_addr_ns_dev_36023 tst_addr ns_dev 0 36023 NULL
139275 +disable_so_addr_acard_sg_36025 addr acard_sg 0 36025 NULL
139276 +disable_so_pcxhr_sub_get_external_clock_fndecl_36041 pcxhr_sub_get_external_clock fndecl 0 36041 NULL
139277 +disable_so_address_fault_36043 address fault 0 36043 NULL
139278 +disable_so_s35390a_rtc_set_time_fndecl_36048 s35390a_rtc_set_time fndecl 0 36048 NULL nohasharray
139279 +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
139280 +disable_so_mmd_addr_reg_val_36052 mmd_addr reg_val 0 36052 NULL
139281 +disable_so_ips_flashbusaddr_vardecl_ips_c_36053 ips_flashbusaddr vardecl_ips.c 0 36053 NULL
139282 +disable_so_i_spc_timelimit_qc_info_36081 i_spc_timelimit qc_info 0 36081 NULL
139283 +disable_so_st_gid_stat_36085 st_gid stat 0 36085 NULL
139284 +disable_so_acpi_ev_address_space_dispatch_fndecl_36089 acpi_ev_address_space_dispatch fndecl 0-4-5 36089 NULL
139285 +disable_so_mpll_ad_func_cntl_2_ni_clock_registers_36093 mpll_ad_func_cntl_2 ni_clock_registers 0 36093 NULL
139286 +disable_so_i_atime_ocfs2_dinode_36099 i_atime ocfs2_dinode 0 36099 NULL
139287 +disable_so_setup_timer_IRQ0_pin_fndecl_36100 setup_timer_IRQ0_pin fndecl 3-2 36100 NULL
139288 +disable_so_error_info_addr_mvm_alive_resp_36103 error_info_addr mvm_alive_resp 0 36103 NULL nohasharray
139289 +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
139290 +disable_so_kstrtoull_fndecl_36106 kstrtoull fndecl 0 36106 NULL
139291 +disable_so_fax_head_line_time_fndecl_36108 fax_head_line_time fndecl 0 36108 NULL
139292 +disable_so_rtl8152_set_mac_address_fndecl_36112 rtl8152_set_mac_address fndecl 0 36112 NULL
139293 +disable_so_t_sleep_cycle_at86rf2xx_chip_data_36118 t_sleep_cycle at86rf2xx_chip_data 0 36118 NULL
139294 +disable_so_no_quota_btrfs_delayed_ref_node_36121 no_quota btrfs_delayed_ref_node 0 36121 NULL nohasharray
139295 +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
139296 +disable_so_shutdown_time_vardecl_torture_c_36136 shutdown_time vardecl_torture.c 0 36136 NULL nohasharray
139297 +disable_so_i40e_init_interrupt_scheme_fndecl_36136 i40e_init_interrupt_scheme fndecl 0 36136 &disable_so_shutdown_time_vardecl_torture_c_36136
139298 +disable_so_ath5k_hw_clocktoh_fndecl_36137 ath5k_hw_clocktoh fndecl 0-2 36137 NULL
139299 +disable_so_addr_off_bfa_flash_s_36155 addr_off bfa_flash_s 0 36155 NULL
139300 +disable_so_mlx4_bitmap_free_fndecl_36158 mlx4_bitmap_free fndecl 2 36158 NULL
139301 +disable_so_setup_cluster_no_bitmap_fndecl_36163 setup_cluster_no_bitmap fndecl 4-5-6-7 36163 NULL
139302 +disable_so_last_queue_full_time_bfad_itnim_s_36172 last_queue_full_time bfad_itnim_s 0 36172 NULL
139303 +disable_so_do_cpuid_ent_fndecl_36174 do_cpuid_ent fndecl 5 36174 NULL
139304 +disable_so_lzo_compress_fndecl_36177 lzo_compress fndecl 3 36177 NULL
139305 +disable_so_set_radio_freq_fndecl_36200 set_radio_freq fndecl 2 36200 NULL
139306 +disable_so_get_random_bytes_arch_fndecl_36201 get_random_bytes_arch fndecl 2 36201 NULL
139307 +disable_so_netlbl_unlhsh_add_addr4_fndecl_36206 netlbl_unlhsh_add_addr4 fndecl 4-0 36206 NULL
139308 +disable_so_assert_file_addr_sdpcm_shared_36210 assert_file_addr sdpcm_shared 0 36210 NULL
139309 +disable_so_timestamp_rxdone_entry_desc_36213 timestamp rxdone_entry_desc 0 36213 NULL
139310 +disable_so_interrupts_open_fndecl_36230 interrupts_open fndecl 0 36230 NULL
139311 +disable_so_nhash_jffs2_full_dirent_36231 nhash jffs2_full_dirent 0 36231 NULL
139312 +disable_so_max_level_cpufreq_cooling_device_36241 max_level cpufreq_cooling_device 0 36241 NULL
139313 +disable_so_ovl_set_timestamps_fndecl_36245 ovl_set_timestamps fndecl 0 36245 NULL
139314 +disable_so_evtchn_interrupt_fndecl_36255 evtchn_interrupt fndecl 1 36255 NULL
139315 +disable_so_timeout_ip_vs_service_36264 timeout ip_vs_service 0 36264 NULL
139316 +disable_so_dwell_time_dfs_conf_scan_settings_36271 dwell_time_dfs conf_scan_settings 0 36271 NULL
139317 +disable_so_drbd_send_uuids_fndecl_36274 drbd_send_uuids fndecl 0 36274 NULL
139318 +disable_so_bd_list_addr_lo_bnx2i_logout_request_36277 bd_list_addr_lo bnx2i_logout_request 0 36277 NULL
139319 +disable_so_rds_ib_add_ipaddr_fndecl_36278 rds_ib_add_ipaddr fndecl 2 36278 NULL nohasharray
139320 +disable_so_nilfs_btree_assign_gc_fndecl_36278 nilfs_btree_assign_gc fndecl 0-3 36278 &disable_so_rds_ib_add_ipaddr_fndecl_36278
139321 +disable_so_last_post_time_vardecl_hv_balloon_c_36289 last_post_time vardecl_hv_balloon.c 0 36289 NULL
139322 +disable_so_skb_physaddr_macb_36295 skb_physaddr macb 0 36295 NULL
139323 +disable_so_dq_hash_bits_vardecl_dquot_c_36296 dq_hash_bits vardecl_dquot.c 0 36296 NULL
139324 +disable_so_rpfilter_get_saddr_fndecl_36300 rpfilter_get_saddr fndecl 0-1 36300 NULL
139325 +disable_so_sys_setregid16_fndecl_36302 sys_setregid16 fndecl 0-1-2 36302 NULL
139326 +disable_so_f_frequency_fc2580_dev_36307 f_frequency fc2580_dev 0 36307 NULL
139327 +disable_so_address_r8a66597_td_36315 address r8a66597_td 0 36315 NULL
139328 +disable_so_address_acpi_madt_local_apic_override_36325 address acpi_madt_local_apic_override 0 36325 NULL nohasharray
139329 +disable_so_num_addresses_i40e_aqc_macvlan_36325 num_addresses i40e_aqc_macvlan 0 36325 &disable_so_address_acpi_madt_local_apic_override_36325
139330 +disable_so_cache_time_vardecl_ds2760_battery_c_36329 cache_time vardecl_ds2760_battery.c 0 36329 NULL
139331 +disable_so_ext_start_addr_hi_i740fb_par_36335 ext_start_addr_hi i740fb_par 0 36335 NULL
139332 +disable_so_mlx4_get_slave_node_guid_fndecl_36336 mlx4_get_slave_node_guid fndecl 2 36336 NULL
139333 +disable_so_reg_delay_fndecl_36338 reg_delay fndecl 5 36338 NULL
139334 +disable_so_dev_addr_del_fndecl_36356 dev_addr_del fndecl 0 36356 NULL
139335 +disable_so_address_low_b43_dmadesc64_36370 address_low b43_dmadesc64 0 36370 NULL
139336 +disable_so_cpuid_seek_fndecl_36372 cpuid_seek fndecl 0-2 36372 NULL
139337 +disable_so_mhash_entries_vardecl_namespace_c_36377 mhash_entries vardecl_namespace.c 0 36377 NULL
139338 +disable_so_btree_grow_fndecl_36388 btree_grow fndecl 3 36388 NULL
139339 +disable_so_ie6xx_wdt_set_timeout_fndecl_36389 ie6xx_wdt_set_timeout fndecl 2 36389 NULL
139340 +disable_so_cq_page_table_addr_hi_iscsi_kwqe_conn_offload1_36403 cq_page_table_addr_hi iscsi_kwqe_conn_offload1 0 36403 NULL
139341 +disable_so_phys_addr_ntb_mw_36409 phys_addr ntb_mw 0 36409 NULL
139342 +disable_so_tsl2563_write_interrupt_config_fndecl_36415 tsl2563_write_interrupt_config fndecl 0 36415 NULL
139343 +disable_so_bitmap_bitremap_fndecl_36419 bitmap_bitremap fndecl 4-0-1 36419 NULL
139344 +disable_so_cryptd_hash_final_enqueue_fndecl_36420 cryptd_hash_final_enqueue fndecl 0 36420 NULL
139345 +disable_so_addr_azx_rb_36425 addr azx_rb 0 36425 NULL
139346 +disable_so_discov_timeout_hci_dev_36432 discov_timeout hci_dev 0 36432 NULL
139347 +disable_so_interrupt_event_ixgbe_adapter_36433 interrupt_event ixgbe_adapter 0 36433 NULL
139348 +disable_so_hpi_bitstream_set_clock_edge_fndecl_36438 hpi_bitstream_set_clock_edge fndecl 1-0 36438 NULL
139349 +disable_so_atime_fuse_setattr_in_36441 atime fuse_setattr_in 0 36441 NULL
139350 +disable_so_family_xfrm_usersa_info_36443 family xfrm_usersa_info 0 36443 NULL
139351 +disable_so_wlc_phy_channel2freq_fndecl_36444 wlc_phy_channel2freq fndecl 1 36444 NULL
139352 +disable_so_max_delay_intel_ilk_power_mgmt_36447 max_delay intel_ilk_power_mgmt 0 36447 NULL
139353 +disable_so_sys_setregid_fndecl_36457 sys_setregid fndecl 0-1-2 36457 NULL
139354 +disable_so_mpll_dq_func_cntl_rv770_clock_registers_36466 mpll_dq_func_cntl rv770_clock_registers 0 36466 NULL
139355 +disable_so_shortcal_timer_ath_ani_36468 shortcal_timer ath_ani 0 36468 NULL
139356 +disable_so_check_config_address_fndecl_36471 check_config_address fndecl 4 36471 NULL nohasharray
139357 +disable_so_db_addr_mlx5_ib_create_srq_36471 db_addr mlx5_ib_create_srq 0 36471 &disable_so_check_config_address_fndecl_36471
139358 +disable_so_sysctl_rose_reset_request_timeout_vardecl_36479 sysctl_rose_reset_request_timeout vardecl 0 36479 NULL
139359 +disable_so_address_mspro_attr_entry_36482 address mspro_attr_entry 0 36482 NULL
139360 +disable_so_min_discovery_timeout_mesh_config_36485 min_discovery_timeout mesh_config 0 36485 NULL
139361 +disable_so_bitmap_il_ht_agg_36487 bitmap il_ht_agg 0 36487 NULL
139362 +disable_so_crypto_ecb_crypt_fndecl_36489 crypto_ecb_crypt fndecl 0 36489 NULL
139363 +disable_so_address_arch_hw_breakpoint_36491 address arch_hw_breakpoint 0 36491 NULL
139364 +disable_so_flush_timer_iwl_lq_sta_36505 flush_timer iwl_lq_sta 0 36505 NULL
139365 +disable_so_demod_address_sp8870_config_36507 demod_address sp8870_config 0 36507 NULL
139366 +disable_so_hashbin_remove_fndecl_36512 hashbin_remove fndecl 2 36512 NULL
139367 +disable_so_mpll_ad_func_cntl_ni_clock_registers_36523 mpll_ad_func_cntl ni_clock_registers 0 36523 NULL
139368 +disable_so_timeout_usbdevfs_bulktransfer_36525 timeout usbdevfs_bulktransfer 0 36525 NULL
139369 +disable_so_ctl_freq_cx231xx_36526 ctl_freq cx231xx 0 36526 NULL
139370 +disable_so_last_isr_time_misc_stats_36527 last_isr_time misc_stats 0 36527 NULL
139371 +disable_so_mlx4_gen_guid_change_eqe_fndecl_36529 mlx4_gen_guid_change_eqe fndecl 0-2-3 36529 NULL
139372 +disable_so_addr_e1000_phy_info_36530 addr e1000_phy_info 0 36530 NULL nohasharray
139373 +disable_so_misc_mce_36530 misc mce 0 36530 &disable_so_addr_e1000_phy_info_36530
139374 +disable_so_align_addr_sdhci_host_36535 align_addr sdhci_host 0 36535 NULL
139375 +disable_so_gran_sizek_mtrr_cleanup_result_36538 gran_sizek mtrr_cleanup_result 0 36538 NULL
139376 +disable_so_mcryptd_hash_export_fndecl_36554 mcryptd_hash_export fndecl 0 36554 NULL
139377 +disable_so_snd_opl3_timer_new_fndecl_36558 snd_opl3_timer_new fndecl 0-3-2 36558 NULL
139378 +disable_so_alarmtimer_rtc_interface_setup_fndecl_36561 alarmtimer_rtc_interface_setup fndecl 0 36561 NULL
139379 +disable_so_mb86a20s_read_signal_strength_fndecl_36562 mb86a20s_read_signal_strength fndecl 0 36562 NULL
139380 +disable_so_devm_request_threaded_irq_fndecl_36564 devm_request_threaded_irq fndecl 0-2-5 36564 NULL
139381 +disable_so_VDisplay_xtimings_36585 VDisplay xtimings 0 36585 NULL
139382 +disable_so_delay_usec_e1000_eeprom_info_36611 delay_usec e1000_eeprom_info 0 36611 NULL
139383 +disable_so_enabled_hrtimer_events_fusbh200_hcd_36613 enabled_hrtimer_events fusbh200_hcd 0 36613 NULL nohasharray
139384 +disable_so_myaddr_sym_hcb_36613 myaddr sym_hcb 0 36613 &disable_so_enabled_hrtimer_events_fusbh200_hcd_36613
139385 +disable_so_bmc150_accel_runtime_resume_fndecl_36616 bmc150_accel_runtime_resume fndecl 0 36616 NULL nohasharray
139386 +disable_so_frequency_tuner_simple_priv_36616 frequency tuner_simple_priv 0 36616 &disable_so_bmc150_accel_runtime_resume_fndecl_36616
139387 +disable_so_dll_cntl_ni_clock_registers_36640 dll_cntl ni_clock_registers 0 36640 NULL
139388 +disable_so_phys_addr_high_qlcnic_tx_mbx_36646 phys_addr_high qlcnic_tx_mbx 0 36646 NULL
139389 +disable_so_ntfs_bitmap_set_run_fndecl_36647 ntfs_bitmap_set_run fndecl 2-3 36647 NULL
139390 +disable_so_hfs_btree_open_fndecl_36648 hfs_btree_open fndecl 2 36648 NULL
139391 +disable_so_radio_tea5777_set_freq_fndecl_36650 radio_tea5777_set_freq fndecl 0 36650 NULL
139392 +disable_so_default_timeout_cyclades_port_36652 default_timeout cyclades_port 0 36652 NULL
139393 +disable_so_trinity_get_sleep_divider_id_from_clock_fndecl_36654 trinity_get_sleep_divider_id_from_clock fndecl 2 36654 NULL
139394 +disable_so_timeout_osst_tape_36656 timeout osst_tape 0 36656 NULL
139395 +disable_so_sda_falling_time_dw_i2c_dev_36665 sda_falling_time dw_i2c_dev 0 36665 NULL
139396 +disable_so_libipw_freq_to_channel_fndecl_36675 libipw_freq_to_channel fndecl 0-2 36675 NULL
139397 +disable_so_el3_interrupt_fndecl_36679 el3_interrupt fndecl 1 36679 NULL
139398 +disable_so_cg_spll_func_cntl_3_rv770_clock_registers_36680 cg_spll_func_cntl_3 rv770_clock_registers 0 36680 NULL
139399 +disable_so_resp_dma_addr_generic_pdu_resc_36683 resp_dma_addr generic_pdu_resc 0 36683 NULL
139400 +disable_so_store_imon_clock_fndecl_36685 store_imon_clock fndecl 0-4 36685 NULL
139401 +disable_so_kdbgetaddrarg_fndecl_36689 kdbgetaddrarg fndecl 0 36689 NULL
139402 +disable_so_ahash_def_finup_done1_fndecl_36695 ahash_def_finup_done1 fndecl 2 36695 NULL
139403 +disable_so_backlight_on_delay_intel_dp_36699 backlight_on_delay intel_dp 0 36699 NULL
139404 +disable_so_daddr_ipq_36701 daddr ipq 0 36701 NULL
139405 +disable_so_sha512_generic_mod_init_fndecl_36702 sha512_generic_mod_init fndecl 0 36702 NULL
139406 +disable_so_HYPERVISOR_dom0_op_fndecl_36705 HYPERVISOR_dom0_op fndecl 0 36705 NULL
139407 +disable_so_pll_ref_div_pll_ct_36716 pll_ref_div pll_ct 0 36716 NULL
139408 +disable_so_timecounter_cyc2time_fndecl_36723 timecounter_cyc2time fndecl 0-2 36723 NULL
139409 +disable_so_hello_time___bridge_info_36726 hello_time __bridge_info 0 36726 NULL
139410 +disable_so___clockevents_update_freq_fndecl_36730 __clockevents_update_freq fndecl 2 36730 NULL
139411 +disable_so_lvds_ssc_freq_intel_vbt_data_36732 lvds_ssc_freq intel_vbt_data 0 36732 NULL
139412 +disable_so_mlx4_bitmap_alloc_range_fndecl_36733 mlx4_bitmap_alloc_range fndecl 0-2-3 36733 NULL
139413 +disable_so_hmark_hash_fndecl_36743 hmark_hash fndecl 0 36743 NULL
139414 +disable_so_atimensec_fuse_attr_36765 atimensec fuse_attr 0 36765 NULL
139415 +disable_so_sys_getgid16_fndecl_36779 sys_getgid16 fndecl 0 36779 NULL
139416 +disable_so_hash_32_fndecl_36780 hash_32 fndecl 0-3 36780 NULL
139417 +disable_so_di_gid_qnx6_inode_entry_36804 di_gid qnx6_inode_entry 0 36804 NULL nohasharray
139418 +disable_so_jhash_fndecl_36804 jhash fndecl 0-2-3 36804 &disable_so_di_gid_qnx6_inode_entry_36804
139419 +disable_so_last_time1_intel_ilk_power_mgmt_36819 last_time1 intel_ilk_power_mgmt 0 36819 NULL
139420 +disable_so_xen_clocksource_get_cycles_fndecl_36821 xen_clocksource_get_cycles fndecl 0 36821 NULL
139421 +disable_so_address_show_fndecl_36822 address_show fndecl 0 36822 NULL
139422 +disable_so_next_desc_addr_mm_dma_desc_36825 next_desc_addr mm_dma_desc 0 36825 NULL
139423 +disable_so_update_time_acpi_battery_36827 update_time acpi_battery 0 36827 NULL
139424 +disable_so_nla_put_le16_fndecl_36829 nla_put_le16 fndecl 0-3 36829 NULL
139425 +disable_so_sense_buf_phys_addr_hi_megasas_pthru_frame_36842 sense_buf_phys_addr_hi megasas_pthru_frame 0 36842 NULL
139426 +disable_so_vkdb_printf_fndecl_36847 vkdb_printf fndecl 0 36847 NULL
139427 +disable_so_cpu_to_fs32_fndecl_36849 cpu_to_fs32 fndecl 0-2 36849 NULL
139428 +disable_so_mxl301rf_sleep_fndecl_36864 mxl301rf_sleep fndecl 0 36864 NULL
139429 +disable_so_nfqueue_hash_fndecl_36865 nfqueue_hash fndecl 0-2-3-4 36865 NULL
139430 +disable_so_irq_set_irq_wake_fndecl_36876 irq_set_irq_wake fndecl 0-1 36876 NULL
139431 +disable_so_topology_change_timer_value___bridge_info_36878 topology_change_timer_value __bridge_info 0 36878 NULL
139432 +disable_so_settle_time_sym_shcb_36880 settle_time sym_shcb 0 36880 NULL
139433 +disable_so_mei_wd_set_start_timeout_fndecl_36890 mei_wd_set_start_timeout fndecl 2 36890 NULL
139434 +disable_so_inet6_dump_ifaddr_fndecl_36895 inet6_dump_ifaddr fndecl 0 36895 NULL
139435 +disable_so_sh_msiof_get_delay_bit_fndecl_36896 sh_msiof_get_delay_bit fndecl 0-1 36896 NULL
139436 +disable_so_pwm_uptime_w83793_data_36909 pwm_uptime w83793_data 0 36909 NULL nohasharray
139437 +disable_so_zd_iowrite32a_locked_fndecl_36909 zd_iowrite32a_locked fndecl 0-3 36909 &disable_so_pwm_uptime_w83793_data_36909
139438 +disable_so_usb_runtime_suspend_fndecl_36911 usb_runtime_suspend fndecl 0 36911 NULL
139439 +disable_so_buf_addr_mlx5_ib_create_srq_36916 buf_addr mlx5_ib_create_srq 0 36916 NULL
139440 +disable_so_sbp2_pointer_to_addr_fndecl_36918 sbp2_pointer_to_addr fndecl 0 36918 NULL
139441 +disable_so_start_pcm_timer0_fndecl_36921 start_pcm_timer0 fndecl 2 36921 NULL
139442 +disable_so_timestamp_il3945_rx_frame_end_36930 timestamp il3945_rx_frame_end 0 36930 NULL
139443 +disable_so_nilfs_btree_node_broken_fndecl_36936 nilfs_btree_node_broken fndecl 2-3 36936 NULL
139444 +disable_so_wm8991_set_dai_clkdiv_fndecl_36938 wm8991_set_dai_clkdiv fndecl 3 36938 NULL
139445 +disable_so_timeout_ieee80211_mgd_auth_data_36943 timeout ieee80211_mgd_auth_data 0 36943 NULL
139446 +disable_so_i2c_address_itd1000_config_36949 i2c_address itd1000_config 0 36949 NULL
139447 +disable_so_nla_put_be16_fndecl_36955 nla_put_be16 fndecl 0-3 36955 NULL
139448 +disable_so_dma_addr_bcm_sysport_cb_36958 dma_addr bcm_sysport_cb 0 36958 NULL
139449 +disable_so_timeout_trf7970a_36959 timeout trf7970a 0 36959 NULL nohasharray
139450 +disable_so_s35390a_get_datetime_fndecl_36959 s35390a_get_datetime fndecl 0 36959 &disable_so_timeout_trf7970a_36959
139451 +disable_so_spn_dev_sockaddr_pn_36960 spn_dev sockaddr_pn 0 36960 NULL
139452 +disable_so_dpp_page_addr_hi_ocrdma_alloc_pd_uresp_36964 dpp_page_addr_hi ocrdma_alloc_pd_uresp 0 36964 NULL
139453 +disable_so_tv_sec_compat_timespec_36965 tv_sec compat_timespec 0 36965 NULL
139454 +disable_so_get_dclk_freq_fndecl_36970 get_dclk_freq fndecl 0 36970 NULL
139455 +disable_so_intlog2_fndecl_36975 intlog2 fndecl 0-1 36975 NULL
139456 +disable_so_psb_intel_clock_fndecl_36993 psb_intel_clock fndecl 1 36993 NULL
139457 +disable_so_i_uid_write_fndecl_36996 i_uid_write fndecl 2 36996 NULL
139458 +disable_so_addr_st_sgitem_37005 addr st_sgitem 0 37005 NULL
139459 +disable_so_do_usleep_range_fndecl_37008 do_usleep_range fndecl 1-2 37008 NULL
139460 +disable_so_insert_entries_i915_address_space_37011 insert_entries i915_address_space 3 37011 NULL
139461 +disable_so_ext4_init_inode_bitmap_fndecl_37017 ext4_init_inode_bitmap fndecl 0-3 37017 NULL
139462 +disable_so_sp_pt_regs_37018 sp pt_regs 0 37018 NULL
139463 +disable_so_addr_gsm_dlci_37020 addr gsm_dlci 0 37020 NULL
139464 +disable_so_lbq_addr_cqicb_37033 lbq_addr cqicb 0 37033 NULL
139465 +disable_so_stv090x_get_car_freq_fndecl_37041 stv090x_get_car_freq fndecl 0-2 37041 NULL
139466 +disable_so_resp_sas_sha_m_spg_fndecl_37046 resp_sas_sha_m_spg fndecl 0 37046 NULL
139467 +disable_so_cyc2ns_shift_cyc2ns_data_37055 cyc2ns_shift cyc2ns_data 0 37055 NULL
139468 +disable_so_max8997_muic_set_debounce_time_fndecl_37057 max8997_muic_set_debounce_time fndecl 2-0 37057 NULL
139469 +disable_so_tms_cutime_compat_tms_37072 tms_cutime compat_tms 0 37072 NULL
139470 +disable_so_u2_timeout_store_fndecl_37082 u2_timeout_store fndecl 0-4 37082 NULL
139471 +disable_so_addr2_unlock_addr_37100 addr2 unlock_addr 0 37100 NULL
139472 +disable_so_pch_gbe_hal_read_mac_addr_fndecl_37101 pch_gbe_hal_read_mac_addr fndecl 0 37101 NULL
139473 +disable_so_blkcipher_next_slow_fndecl_37102 blkcipher_next_slow fndecl 3-4 37102 NULL
139474 +disable_so_addr_ata_bmdma_prd_37108 addr ata_bmdma_prd 0 37108 NULL
139475 +disable_so_nl80211_valid_4addr_fndecl_37115 nl80211_valid_4addr fndecl 0-4 37115 NULL
139476 +disable_so_dlm_lockres_hash_fndecl_37119 dlm_lockres_hash fndecl 2 37119 NULL
139477 +disable_so_uid_ipc64_perm_37121 uid ipc64_perm 0 37121 NULL
139478 +disable_so_paddr_gr_dma_desc_37127 paddr gr_dma_desc 0 37127 NULL
139479 +disable_so_max_cb_time_fndecl_37133 max_cb_time fndecl 0 37133 NULL
139480 +disable_so_smt_get_time_fndecl_37135 smt_get_time fndecl 0 37135 NULL
139481 +disable_so_div_q1_pll_values_37147 div_q1 pll_values 0 37147 NULL
139482 +disable_so_ufshcd_setup_clocks_fndecl_37162 ufshcd_setup_clocks fndecl 0 37162 NULL
139483 +disable_so_gid_fuse_attr_37169 gid fuse_attr 0 37169 NULL
139484 +disable_so_smsc75xx_hash_fndecl_37173 smsc75xx_hash fndecl 0 37173 NULL
139485 +disable_so_crypto_skcipher_givencrypt_fndecl_37175 crypto_skcipher_givencrypt fndecl 0 37175 NULL
139486 +disable_so_ip_vs_set_timeout_fndecl_37183 ip_vs_set_timeout fndecl 0 37183 NULL
139487 +disable_so_pci_bus_cx25821_dev_37185 pci_bus cx25821_dev 0 37185 NULL
139488 +disable_so_b43_set_slot_time_fndecl_37196 b43_set_slot_time fndecl 2 37196 NULL
139489 +disable_so_af9013_sleep_fndecl_37201 af9013_sleep fndecl 0 37201 NULL
139490 +disable_so_sock_check_timeo_net_conf_37210 sock_check_timeo net_conf 0 37210 NULL
139491 +disable_so_tms_utime_tms_37217 tms_utime tms 0 37217 NULL
139492 +disable_so_lx_interrupt_request_new_buffer_fndecl_37218 lx_interrupt_request_new_buffer fndecl 0 37218 NULL
139493 +disable_so_cryptomgr_notify_fndecl_37232 cryptomgr_notify fndecl 0 37232 NULL
139494 +disable_so_wm831x_wdt_set_timeout_fndecl_37238 wm831x_wdt_set_timeout fndecl 2-0 37238 NULL
139495 +disable_so_qh_schedule_fndecl_37247 qh_schedule fndecl 0 37247 NULL
139496 +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
139497 +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
139498 +disable_so_fq_rehash_fndecl_37274 fq_rehash fndecl 3-5 37274 NULL
139499 +disable_so_set_addr_dsa_switch_driver_37276 set_addr dsa_switch_driver 0 37276 NULL
139500 +disable_so_tv_sec_timeval_37284 tv_sec timeval 0 37284 NULL
139501 +disable_so_timestamp_nfs4_lockdata_37285 timestamp nfs4_lockdata 0 37285 NULL
139502 +disable_so_ccp_register_aes_xts_alg_fndecl_37292 ccp_register_aes_xts_alg fndecl 0 37292 NULL
139503 +disable_so_ssb_chipco_timing_init_fndecl_37295 ssb_chipco_timing_init fndecl 2 37295 NULL
139504 +disable_so_atime_sec_ubifs_ino_node_37298 atime_sec ubifs_ino_node 0 37298 NULL
139505 +disable_so_sel_addr___queue_37305 sel_addr __queue 0 37305 NULL
139506 +disable_so_nla_put_shortaddr_fndecl_37306 nla_put_shortaddr fndecl 0 37306 NULL
139507 +disable_so_snd_pcm_sgbuf_get_addr_fndecl_37310 snd_pcm_sgbuf_get_addr fndecl 0-2 37310 NULL
139508 +disable_so_qla2x00_program_flash_address_fndecl_37312 qla2x00_program_flash_address fndecl 2 37312 NULL
139509 +disable_so_linetime_skl_pipe_wm_37317 linetime skl_pipe_wm 0 37317 NULL
139510 +disable_so_d_time_ptc_stats_37320 d_time ptc_stats 0 37320 NULL nohasharray
139511 +disable_so_dst_slave_addr_rcar_dmac_chan_37320 dst_slave_addr rcar_dmac_chan 0 37320 &disable_so_d_time_ptc_stats_37320
139512 +disable_so_edx_tss_segment_32_37322 edx tss_segment_32 0 37322 NULL
139513 +disable_so_time_stamp_ixgbevf_tx_buffer_37332 time_stamp ixgbevf_tx_buffer 0 37332 NULL
139514 +disable_so_dccpor_elapsed_time_dccp_options_received_37349 dccpor_elapsed_time dccp_options_received 0 37349 NULL nohasharray
139515 +disable_so_rhine_interrupt_fndecl_37349 rhine_interrupt fndecl 1 37349 &disable_so_dccpor_elapsed_time_dccp_options_received_37349
139516 +disable_so_cpufreq_get_policy_fndecl_37351 cpufreq_get_policy fndecl 0-2 37351 NULL
139517 +disable_so_blocksize_ccp_aes_def_37352 blocksize ccp_aes_def 0 37352 NULL
139518 +disable_so_disengage_timeout_xpc_partition_37353 disengage_timeout xpc_partition 0 37353 NULL
139519 +disable_so_nilfs_btree_lookup_contig_fndecl_37360 nilfs_btree_lookup_contig fndecl 0-2 37360 NULL
139520 +disable_so_timeo_rpc_rtt_37368 timeo rpc_rtt 0 37368 NULL
139521 +disable_so_calc_divisor_fndecl_37379 calc_divisor fndecl 0-1 37379 NULL
139522 +disable_so_uid_ncp_mount_data_37380 uid ncp_mount_data 0 37380 NULL nohasharray
139523 +disable_so_ip_vs_conn_hashkey_conn_fndecl_37380 ip_vs_conn_hashkey_conn fndecl 0 37380 &disable_so_uid_ncp_mount_data_37380
139524 +disable_so_clock_delay_adv7511_link_config_37390 clock_delay adv7511_link_config 0 37390 NULL nohasharray
139525 +disable_so_mtrr_check_fndecl_37390 mtrr_check fndecl 1-2 37390 &disable_so_clock_delay_adv7511_link_config_37390
139526 +disable_so_tuner_addr_cx231xx_37393 tuner_addr cx231xx 0 37393 NULL
139527 +disable_so_minute_timestamp_37395 minute timestamp 0 37395 NULL
139528 +disable_so_mthca_mr_alloc_fndecl_37397 mthca_mr_alloc fndecl 5-0-2-3 37397 NULL
139529 +disable_so_cx24123_int_log2_fndecl_37405 cx24123_int_log2 fndecl 0-2 37405 NULL
139530 +disable_so_s_def_resgid_ext2_super_block_37420 s_def_resgid ext2_super_block 0 37420 NULL nohasharray
139531 +disable_so_fast_pwrup_delay_ssb_chipcommon_37420 fast_pwrup_delay ssb_chipcommon 0 37420 &disable_so_s_def_resgid_ext2_super_block_37420
139532 +disable_so_nfs_key_timeout_notify_fndecl_37423 nfs_key_timeout_notify fndecl 0 37423 NULL nohasharray
139533 +disable_so_netxen_schedule_work_fndecl_37423 netxen_schedule_work fndecl 3 37423 &disable_so_nfs_key_timeout_notify_fndecl_37423
139534 +disable_so_rx8025_sysfs_store_clock_adjust_fndecl_37426 rx8025_sysfs_store_clock_adjust fndecl 0-4 37426 NULL
139535 +disable_so_port_mlx4_alias_guid_work_context_37428 port mlx4_alias_guid_work_context 0 37428 NULL
139536 +disable_so_lpfc_max_scsicmpl_time_set_fndecl_37433 lpfc_max_scsicmpl_time_set fndecl 2 37433 NULL
139537 +disable_so_mld_ifc_start_timer_fndecl_37436 mld_ifc_start_timer fndecl 2 37436 NULL
139538 +disable_so_guest_phys_addr_vhost_memory_region_37438 guest_phys_addr vhost_memory_region 0 37438 NULL nohasharray
139539 +disable_so_tun1_maddress_stv0900_init_params_37438 tun1_maddress stv0900_init_params 0 37438 &disable_so_guest_phys_addr_vhost_memory_region_37438
139540 +disable_so_i2c_addr_m88ds3103_config_37446 i2c_addr m88ds3103_config 0 37446 NULL
139541 +disable_so_hd_phys_address_hpet_data_37448 hd_phys_address hpet_data 0 37448 NULL
139542 +disable_so_ip_addr_c2_netaddr_37452 ip_addr c2_netaddr 0 37452 NULL
139543 +disable_so_acpi_map_cpuid_fndecl_37455 acpi_map_cpuid fndecl 0-1-2 37455 NULL
139544 +disable_so_regcache_lzo_block_count_fndecl_37459 regcache_lzo_block_count fndecl 0 37459 NULL
139545 +disable_so_iwl_dbgfs_interrupt_write_fndecl_37470 iwl_dbgfs_interrupt_write fndecl 0-3 37470 NULL
139546 +disable_so_freq_timex_37471 freq timex 0 37471 NULL
139547 +disable_so_gk104_fifo_engidx_fndecl_37472 gk104_fifo_engidx fndecl 0 37472 NULL
139548 +disable_so_ocfs2_write_remove_suid_fndecl_37473 ocfs2_write_remove_suid fndecl 0 37473 NULL
139549 +disable_so_zd_iowrite16a_locked_fndecl_37478 zd_iowrite16a_locked fndecl 0 37478 NULL
139550 +disable_so_base_clock_slgt_info_37486 base_clock slgt_info 0 37486 NULL
139551 +disable_so_onenand_addr_fndecl_37493 onenand_addr fndecl 0-2 37493 NULL
139552 +disable_so_bitmap_shift_right_fndecl_37507 bitmap_shift_right fndecl 3-4 37507 NULL
139553 +disable_so_phys_addr_netxen_recv_context_37520 phys_addr netxen_recv_context 0 37520 NULL
139554 +disable_so_dma_addr_vmxnet3_tx_buf_info_37524 dma_addr vmxnet3_tx_buf_info 0 37524 NULL
139555 +disable_so_start_time_fnic_io_req_37530 start_time fnic_io_req 0 37530 NULL
139556 +disable_so_hash_val_rss_header_37536 hash_val rss_header 0 37536 NULL
139557 +disable_so_dev_addr_bdc_37537 dev_addr bdc 0 37537 NULL
139558 +disable_so_cobalt_enum_dv_timings_fndecl_37539 cobalt_enum_dv_timings fndecl 0 37539 NULL
139559 +disable_so_timestamp_cw1200_link_entry_37549 timestamp cw1200_link_entry 0 37549 NULL
139560 +disable_so_c_resolution_snd_timer_hardware_37556 c_resolution snd_timer_hardware 0 37556 NULL
139561 +disable_so_dummy_systimer_pointer_fndecl_37562 dummy_systimer_pointer fndecl 0 37562 NULL
139562 +disable_so_cir_wake_addr_nvt_dev_37577 cir_wake_addr nvt_dev 0 37577 NULL
139563 +disable_so_clients_bit_vector_mac_configuration_entry_37582 clients_bit_vector mac_configuration_entry 0 37582 NULL
139564 +disable_so___round_jiffies_up_fndecl_37586 __round_jiffies_up fndecl 2-1-0 37586 NULL
139565 +disable_so_xfs_btree_updkey_fndecl_37592 xfs_btree_updkey fndecl 0 37592 NULL
139566 +disable_so_r6b_val_fc2580_freq_regs_37593 r6b_val fc2580_freq_regs 0 37593 NULL
139567 +disable_so_audit_backlog_wait_time_master_vardecl_audit_c_37596 audit_backlog_wait_time_master vardecl_audit.c 0 37596 NULL
139568 +disable_so_hhf_arrays_reset_timestamp_hhf_sched_data_37598 hhf_arrays_reset_timestamp hhf_sched_data 0 37598 NULL
139569 +disable_so_rate_den_snd_pcm_runtime_37607 rate_den snd_pcm_runtime 0 37607 NULL
139570 +disable_so_vdi_mtime_vxfs_inode_info_37613 vdi_mtime vxfs_inode_info 0 37613 NULL
139571 +disable_so_tx_bufs_dma_addr_sc92031_priv_37616 tx_bufs_dma_addr sc92031_priv 0 37616 NULL
139572 +disable_so_brcmf_msgbuf_schedule_txdata_fndecl_37619 brcmf_msgbuf_schedule_txdata fndecl 2 37619 NULL
139573 +disable_so_pvr2_hdw_set_cur_freq_fndecl_37630 pvr2_hdw_set_cur_freq fndecl 2 37630 NULL
139574 +disable_so_pixclock_fb_cvt_data_37637 pixclock fb_cvt_data 0 37637 NULL
139575 +disable_so_ieee80211_if_read_beacon_timeout_fndecl_37639 ieee80211_if_read_beacon_timeout fndecl 3-0 37639 NULL
139576 +disable_so_ds1374_read_time_fndecl_37640 ds1374_read_time fndecl 0 37640 NULL
139577 +disable_so_addr_handler_fndecl_37652 addr_handler fndecl 1 37652 NULL
139578 +disable_so_v_radeon_clock_voltage_dependency_entry_37656 v radeon_clock_voltage_dependency_entry 0 37656 NULL
139579 +disable_so_bma150_set_high_g_interrupt_fndecl_37662 bma150_set_high_g_interrupt fndecl 4-5-3-0 37662 NULL
139580 +disable_so_SYSC_setresuid_fndecl_37663 SYSC_setresuid fndecl 0 37663 NULL
139581 +disable_so_sht15_interrupt_fired_fndecl_37668 sht15_interrupt_fired fndecl 1 37668 NULL
139582 +disable_so_munge_address_falcon_spi_device_37671 munge_address falcon_spi_device 0 37671 NULL
139583 +disable_so___hw_addr_unsync_fndecl_37673 __hw_addr_unsync fndecl 3 37673 NULL
139584 +disable_so_uv_mmtimer_femtoperiod_vardecl_uv_mmtimer_c_37680 uv_mmtimer_femtoperiod vardecl_uv_mmtimer.c 0 37680 NULL
139585 +disable_so_phy_addr_pxa168_eth_private_37687 phy_addr pxa168_eth_private 0 37687 NULL
139586 +disable_so_pch_udc_read_ep_interrupts_fndecl_37692 pch_udc_read_ep_interrupts fndecl 0 37692 NULL
139587 +disable_so_en_addr0_nphy_rf_control_override_rev3_37699 en_addr0 nphy_rf_control_override_rev3 0 37699 NULL
139588 +disable_so_sense_phys_addr_megasas_cmd_37718 sense_phys_addr megasas_cmd 0 37718 NULL
139589 +disable_so_dsc_poll_freq_ide_tape_obj_37730 dsc_poll_freq ide_tape_obj 0 37730 NULL
139590 +disable_so_no_gc_sleep_time_f2fs_gc_kthread_37736 no_gc_sleep_time f2fs_gc_kthread 0 37736 NULL
139591 +disable_so_b_addr_dma_data_buffer_37749 b_addr dma_data_buffer 0 37749 NULL
139592 +disable_so_test_hash_jiffies_fndecl_37757 test_hash_jiffies fndecl 4 37757 NULL
139593 +disable_so_bufptr_addr_nm256_stream_37759 bufptr_addr nm256_stream 0 37759 NULL nohasharray
139594 +disable_so_gcm_hash_crypt_continue_fndecl_37759 gcm_hash_crypt_continue fndecl 0 37759 &disable_so_bufptr_addr_nm256_stream_37759
139595 +disable_so_get_semotime_fndecl_37761 get_semotime fndecl 0 37761 NULL
139596 +disable_so_ds_tss_segment_32_37770 ds tss_segment_32 0 37770 NULL nohasharray
139597 +disable_so_ccp_run_aes_cmd_fndecl_37770 ccp_run_aes_cmd fndecl 0 37770 &disable_so_ds_tss_segment_32_37770
139598 +disable_so_sys_signal_fndecl_37776 sys_signal fndecl 1 37776 NULL
139599 +disable_so_jiffies_till_next_fqs_vardecl_tree_c_37778 jiffies_till_next_fqs vardecl_tree.c 0 37778 NULL
139600 +disable_so_col_scan_delay_us_matrix_keypad_platform_data_37789 col_scan_delay_us matrix_keypad_platform_data 0 37789 NULL
139601 +disable_so_small_buf_phy_addr_ql3_adapter_37791 small_buf_phy_addr ql3_adapter 0 37791 NULL
139602 +disable_so_bitmap_intersects_fndecl_37795 bitmap_intersects fndecl 3 37795 NULL
139603 +disable_so_clock_panel_info_37807 clock panel_info 0 37807 NULL
139604 +disable_so_unix_gid_hash_fndecl_37822 unix_gid_hash fndecl 0 37822 NULL
139605 +disable_so_btrfs_inode_uid_fndecl_37823 btrfs_inode_uid fndecl 0 37823 NULL
139606 +disable_so_snd_usb_find_clock_multiplier_fndecl_37825 snd_usb_find_clock_multiplier fndecl 2 37825 NULL nohasharray
139607 +disable_so_queue_show_random_fndecl_37825 queue_show_random fndecl 0 37825 &disable_so_snd_usb_find_clock_multiplier_fndecl_37825
139608 +disable_so_intr_gen_timer_trigger_ath_hw_37826 intr_gen_timer_trigger ath_hw 0 37826 NULL
139609 +disable_so_mvs_interrupt_fndecl_37840 mvs_interrupt fndecl 1 37840 NULL
139610 +disable_so_aic7xxx_seltime_vardecl_aic7xxx_osm_c_37841 aic7xxx_seltime vardecl_aic7xxx_osm.c 0 37841 NULL
139611 +disable_so_baud_uartdiv_baycom_state_37846 baud_uartdiv baycom_state 0 37846 NULL
139612 +disable_so_ac97_clock_vardecl_intel8x0m_c_37848 ac97_clock vardecl_intel8x0m.c 0 37848 NULL nohasharray
139613 +disable_so_rtl818x_iowrite8_idx_fndecl_37848 rtl818x_iowrite8_idx fndecl 3 37848 &disable_so_ac97_clock_vardecl_intel8x0m_c_37848
139614 +disable_so_io_addr_kcq_info_37850 io_addr kcq_info 0 37850 NULL
139615 +disable_so_last_signal_sta_info_37865 last_signal sta_info 0 37865 NULL
139616 +disable_so_dccpor_timestamp_echo_dccp_options_received_37875 dccpor_timestamp_echo dccp_options_received 0 37875 NULL
139617 +disable_so_ccp_aes_cmac_update_fndecl_37894 ccp_aes_cmac_update fndecl 0 37894 NULL
139618 +disable_so_chip_delay_nand_chip_37901 chip_delay nand_chip 0 37901 NULL
139619 +disable_so_saddr_irlap_cb_37910 saddr irlap_cb 0 37910 NULL
139620 +disable_so_disk_timeout_disk_conf_37918 disk_timeout disk_conf 0 37918 NULL
139621 +disable_so_show_time_in_state_fndecl_37923 show_time_in_state fndecl 0 37923 NULL
139622 +disable_so_snd_timer_user_pause_fndecl_37928 snd_timer_user_pause fndecl 0 37928 NULL
139623 +disable_so_is_valid_rtc_data_addr_il_ops_37930 is_valid_rtc_data_addr il_ops 1 37930 NULL
139624 +disable_so_wl18xx_enable_interrupts_fndecl_37937 wl18xx_enable_interrupts fndecl 0 37937 NULL nohasharray
139625 +disable_so_nested_vmx_store_msr_fndecl_37937 nested_vmx_store_msr fndecl 2 37937 &disable_so_wl18xx_enable_interrupts_fndecl_37937
139626 +disable_so_last_ack_time_misc_stats_37946 last_ack_time misc_stats 0 37946 NULL
139627 +disable_so_vblank_lo_lvds_dvo_timing_37949 vblank_lo lvds_dvo_timing 0 37949 NULL
139628 +disable_so_ath6kl_get_hi_item_addr_fndecl_37951 ath6kl_get_hi_item_addr fndecl 0-2 37951 NULL
139629 +disable_so_bitmap_word_used_fndecl_37955 bitmap_word_used fndecl 2 37955 NULL
139630 +disable_so_process_tgid_coredump_proc_event_37962 process_tgid coredump_proc_event 0 37962 NULL
139631 +disable_so_device_addr_net2280_tx_hdr_37967 device_addr net2280_tx_hdr 0 37967 NULL nohasharray
139632 +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
139633 +disable_so_read_l1_tsc_kvm_x86_ops_37977 read_l1_tsc kvm_x86_ops 0-2 37977 NULL
139634 +disable_so_ipqhashfn_fndecl_37983 ipqhashfn fndecl 1-4 37983 NULL
139635 +disable_so_divider_get_val_fndecl_37994 divider_get_val fndecl 1-2-4-0 37994 NULL
139636 +disable_so_rfc4106_set_hash_subkey_fndecl_37995 rfc4106_set_hash_subkey fndecl 3 37995 NULL
139637 +disable_so_intel_overlay_recover_from_interrupt_fndecl_37996 intel_overlay_recover_from_interrupt fndecl 0 37996 NULL
139638 +disable_so_demod_address_tda10023_config_37998 demod_address tda10023_config 0 37998 NULL nohasharray
139639 +disable_so_addrconf_del_ifaddr_fndecl_37998 addrconf_del_ifaddr fndecl 0 37998 &disable_so_demod_address_tda10023_config_37998
139640 +disable_so_clear_bit_unlock_fndecl_38002 clear_bit_unlock fndecl 1 38002 NULL
139641 +disable_so_mactime_ieee80211_rx_status_38004 mactime ieee80211_rx_status 0 38004 NULL
139642 +disable_so_conn_info_timestamp_hci_conn_38005 conn_info_timestamp hci_conn 0 38005 NULL
139643 +disable_so_il_vsync_v4l2_bt_timings_38013 il_vsync v4l2_bt_timings 0 38013 NULL
139644 +disable_so_bch_strtouint_h_fndecl_38016 bch_strtouint_h fndecl 0 38016 NULL
139645 +disable_so_crypto_ccm_encrypt_fndecl_38019 crypto_ccm_encrypt fndecl 0 38019 NULL
139646 +disable_so_beacon_timeout_ms_vardecl_38026 beacon_timeout_ms vardecl 0 38026 NULL
139647 +disable_so_ima_calc_field_array_hash_fndecl_38044 ima_calc_field_array_hash fndecl 0-3 38044 NULL
139648 +disable_so_mISDN_clock_update_fndecl_38046 mISDN_clock_update fndecl 2 38046 NULL
139649 +disable_so_rv6xx_memory_clock_entry_set_post_divider_fndecl_38049 rv6xx_memory_clock_entry_set_post_divider fndecl 3 38049 NULL nohasharray
139650 +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
139651 +disable_so_bcma_pmu_get_cpu_clock_fndecl_38056 bcma_pmu_get_cpu_clock fndecl 0 38056 NULL
139652 +disable_so_mei_irq_write_handler_fndecl_38063 mei_irq_write_handler fndecl 0 38063 NULL
139653 +disable_so_follow_huge_addr_fndecl_38066 follow_huge_addr fndecl 2 38066 NULL
139654 +disable_so_wait_for_completion_timeout_fndecl_38078 wait_for_completion_timeout fndecl 0-2 38078 NULL
139655 +disable_so_wm8961_set_clkdiv_fndecl_38080 wm8961_set_clkdiv fndecl 3 38080 NULL
139656 +disable_so_process_tgid_ptrace_proc_event_38081 process_tgid ptrace_proc_event 0 38081 NULL
139657 +disable_so_blocknr_disk_bitmap_header_38088 blocknr disk_bitmap_header 0 38088 NULL
139658 +disable_so_index_cnt_btrfs_delayed_node_38090 index_cnt btrfs_delayed_node 0 38090 NULL
139659 +disable_so_bq32k_rtc_set_time_fndecl_38091 bq32k_rtc_set_time fndecl 0 38091 NULL nohasharray
139660 +disable_so_apei_map_generic_address_fndecl_38091 apei_map_generic_address fndecl 0 38091 &disable_so_bq32k_rtc_set_time_fndecl_38091
139661 +disable_so_xfs_iformat_btree_fndecl_38096 xfs_iformat_btree fndecl 0 38096 NULL
139662 +disable_so_inet6_rtm_newaddr_fndecl_38099 inet6_rtm_newaddr fndecl 0 38099 NULL
139663 +disable_so_tuner_set_frequency_stv090x_config_38105 tuner_set_frequency stv090x_config 2 38105 NULL
139664 +disable_so_atomic_notifier_chain_register_fndecl_38114 atomic_notifier_chain_register fndecl 0 38114 NULL
139665 +disable_so_timeout_parms_to_skb_fndecl_38116 timeout_parms_to_skb fndecl 0 38116 NULL
139666 +disable_so_key_idx_off_ieee80211_cipher_scheme_38117 key_idx_off ieee80211_cipher_scheme 0 38117 NULL
139667 +disable_so_qla2x00_zio_timer_store_fndecl_38118 qla2x00_zio_timer_store fndecl 0 38118 NULL
139668 +disable_so_pch_udc_write_ep_interrupts_fndecl_38129 pch_udc_write_ep_interrupts fndecl 2 38129 NULL
139669 +disable_so_ipv4addr_cxgbi_hba_38131 ipv4addr cxgbi_hba 0 38131 NULL
139670 +disable_so_ep0_bounce_addr_dwc3_38133 ep0_bounce_addr dwc3 0 38133 NULL
139671 +disable_so_br_ip_hash_fndecl_38135 br_ip_hash fndecl 0 38135 NULL
139672 +disable_so_signal_to_av_fndecl_38146 signal_to_av fndecl 0 38146 NULL nohasharray
139673 +disable_so_ext4_init_block_bitmap_fndecl_38146 ext4_init_block_bitmap fndecl 3 38146 &disable_so_signal_to_av_fndecl_38146
139674 +disable_so_mapped_physical_address_acpi_mem_space_context_38147 mapped_physical_address acpi_mem_space_context 0 38147 NULL
139675 +disable_so_uptime_dn_dev_38149 uptime dn_dev 0 38149 NULL nohasharray
139676 +disable_so_btrfs_name_hash_fndecl_38149 btrfs_name_hash fndecl 0-2 38149 &disable_so_uptime_dn_dev_38149
139677 +disable_so_snd_timer_pause_fndecl_38159 snd_timer_pause fndecl 0 38159 NULL
139678 +disable_so_flash_addr_atto_vda_flash_req_38165 flash_addr atto_vda_flash_req 0 38165 NULL
139679 +disable_so_bfa_fcs_lport_ns_sm_sending_gid_ft_fndecl_38173 bfa_fcs_lport_ns_sm_sending_gid_ft fndecl 2 38173 NULL
139680 +disable_so_nla_put_flag_fndecl_38183 nla_put_flag fndecl 0 38183 NULL
139681 +disable_so_fll_freq_in_wm8350_data_38185 fll_freq_in wm8350_data 0 38185 NULL
139682 +disable_so_softdog_set_timeout_fndecl_38187 softdog_set_timeout fndecl 2 38187 NULL
139683 +disable_so_i_uid_sysv_inode_38197 i_uid sysv_inode 0 38197 NULL
139684 +disable_so_start_time_wl1271_tx_hw_descr_38213 start_time wl1271_tx_hw_descr 0 38213 NULL
139685 +disable_so_address_callback_fw_address_handler_38224 address_callback fw_address_handler 6-9 38224 NULL
139686 +disable_so_last_rsrc_error_time_lpfc_hba_38225 last_rsrc_error_time lpfc_hba 0 38225 NULL
139687 +disable_so_val_addr1_nphy_rf_control_override_rev3_38228 val_addr1 nphy_rf_control_override_rev3 0 38228 NULL
139688 +disable_so_ipr_transop_timeout_vardecl_ipr_c_38231 ipr_transop_timeout vardecl_ipr.c 0 38231 NULL
139689 +disable_so_disk_events_poll_jiffies_fndecl_38233 disk_events_poll_jiffies fndecl 0 38233 NULL
139690 +disable_so_s2mps11_set_ramp_delay_fndecl_38236 s2mps11_set_ramp_delay fndecl 0 38236 NULL
139691 +disable_so_rdb_BlockBytes_RigidDiskBlock_38238 rdb_BlockBytes RigidDiskBlock 0 38238 NULL
139692 +disable_so_bitmap_equal_fndecl_38239 bitmap_equal fndecl 3 38239 NULL
139693 +disable_so_drm_mm_init_fndecl_38240 drm_mm_init fndecl 2-3 38240 NULL nohasharray
139694 +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
139695 +disable_so_cg_spll_spread_spectrum_ni_clock_registers_38241 cg_spll_spread_spectrum ni_clock_registers 0 38241 NULL
139696 +disable_so_byt_gpu_freq_fndecl_38243 byt_gpu_freq fndecl 0-2 38243 NULL
139697 +disable_so_hhf_evict_timeout_hhf_sched_data_38244 hhf_evict_timeout hhf_sched_data 0 38244 NULL
139698 +disable_so_addr_unmap_notify_38247 addr unmap_notify 0 38247 NULL
139699 +disable_so_xfs_btree_reada_bufl_fndecl_38248 xfs_btree_reada_bufl fndecl 2-3 38248 NULL
139700 +disable_so_ip_vs_conn_hashkey_param_fndecl_38257 ip_vs_conn_hashkey_param fndecl 0 38257 NULL
139701 +disable_so_prev_steal_time_rq_rq_38260 prev_steal_time_rq rq 0 38260 NULL
139702 +disable_so_mapaddr_map_list_38266 mapaddr map_list 0 38266 NULL
139703 +disable_so_reqoff_crypto_authenc_esn_ctx_38268 reqoff crypto_authenc_esn_ctx 0 38268 NULL
139704 +disable_so_ui_mtimensec_ufs2_inode_38278 ui_mtimensec ufs2_inode 0 38278 NULL
139705 +disable_so_scbbaddr_ahc_pci_softc_38281 scbbaddr ahc_pci_softc 0 38281 NULL
139706 +disable_so_demod_address_dst_config_38283 demod_address dst_config 0 38283 NULL
139707 +disable_so_pcc_cpufreq_init_fndecl_38287 pcc_cpufreq_init fndecl 0 38287 NULL
139708 +disable_so_channel_divider_ad9523_channel_spec_38291 channel_divider ad9523_channel_spec 0 38291 NULL
139709 +disable_so_time_in_ghes_estatus_cache_38306 time_in ghes_estatus_cache 0 38306 NULL
139710 +disable_so_time_stamp_i40e_tx_buffer_38313 time_stamp i40e_tx_buffer 0 38313 NULL
139711 +disable_so_show_signal_msg_fndecl_38336 show_signal_msg fndecl 3 38336 NULL
139712 +disable_so_cma_bitmap_aligned_offset_fndecl_38343 cma_bitmap_aligned_offset fndecl 0-2 38343 NULL
139713 +disable_so_digi_set_modem_signals_fndecl_38348 digi_set_modem_signals fndecl 0 38348 NULL
139714 +disable_so_sum_blk_addr_fndecl_38356 sum_blk_addr fndecl 0-2-3 38356 NULL
139715 +disable_so_gcm_hash_assoc_done_fndecl_38360 gcm_hash_assoc_done fndecl 2 38360 NULL
139716 +disable_so_dma_headwb_addr_i40e_virtchnl_txq_info_38365 dma_headwb_addr i40e_virtchnl_txq_info 0 38365 NULL
139717 +disable_so_cpu_cpufreq_policy_38366 cpu cpufreq_policy 0 38366 NULL nohasharray
139718 +disable_so_shash_descsize_dm_verity_38366 shash_descsize dm_verity 0 38366 &disable_so_cpu_cpufreq_policy_38366
139719 +disable_so_sleep_cookie_addr_lo_host_cmd_ds_pcie_details_38370 sleep_cookie_addr_lo host_cmd_ds_pcie_details 0 38370 NULL
139720 +disable_so_bch_btree_keys_u64s_remaining_fndecl_38373 bch_btree_keys_u64s_remaining fndecl 0 38373 NULL
139721 +disable_so_timeout_lp_struct_38387 timeout lp_struct 0 38387 NULL
139722 +disable_so_x1205_set_datetime_fndecl_38391 x1205_set_datetime fndecl 4 38391 NULL
139723 +disable_so_dma_addr_rxd_info_38410 dma_addr rxd_info 0 38410 NULL
139724 +disable_so_copy_signaled_event_data_fndecl_38425 copy_signaled_event_data fndecl 1 38425 NULL
139725 +disable_so_bcn_addr_carl9170_bcn_ctrl_cmd_38429 bcn_addr carl9170_bcn_ctrl_cmd 0 38429 NULL
139726 +disable_so_rproc_vq_interrupt_fndecl_38432 rproc_vq_interrupt fndecl 2 38432 NULL
139727 +disable_so_div_clk_div_table_38447 div clk_div_table 0 38447 NULL
139728 +disable_so_seq_default_timer_resolution_vardecl_38451 seq_default_timer_resolution vardecl 0 38451 NULL
139729 +disable_so_dma_ops_free_addresses_fndecl_38461 dma_ops_free_addresses fndecl 2-3 38461 NULL
139730 +disable_so_time_zero_xfs_mru_cache_38463 time_zero xfs_mru_cache 0 38463 NULL
139731 +disable_so_timeAdj_TCP_Server_Info_38464 timeAdj TCP_Server_Info 0 38464 NULL
139732 +disable_so_curr_kvm_shared_msr_values_38468 curr kvm_shared_msr_values 0 38468 NULL
139733 +disable_so_vhost_add_used_and_signal_fndecl_38469 vhost_add_used_and_signal fndecl 4-3 38469 NULL
139734 +disable_so_mclk_pwrmgt_cntl_ni_clock_registers_38478 mclk_pwrmgt_cntl ni_clock_registers 0 38478 NULL
139735 +disable_so_srp_reconnect_delay_vardecl_ib_srp_c_38484 srp_reconnect_delay vardecl_ib_srp.c 0 38484 NULL
139736 +disable_so_i2c_clk_divider_au0828_board_38485 i2c_clk_divider au0828_board 0 38485 NULL
139737 +disable_so_ark_set_pixclock_fndecl_38501 ark_set_pixclock fndecl 2 38501 NULL
139738 +disable_so_use_time_xfrm_lifetime_cur_38505 use_time xfrm_lifetime_cur 0 38505 NULL nohasharray
139739 +disable_so_musb_advance_schedule_fndecl_38505 musb_advance_schedule fndecl 4 38505 &disable_so_use_time_xfrm_lifetime_cur_38505
139740 +disable_so_spinfo_mtu_sctp_paddrinfo_38516 spinfo_mtu sctp_paddrinfo 0 38516 NULL
139741 +disable_so_sample_freq_tda10048_state_38521 sample_freq tda10048_state 0 38521 NULL
139742 +disable_so_mapping_level_dirty_bitmap_fndecl_38527 mapping_level_dirty_bitmap fndecl 2 38527 NULL
139743 +disable_so_rx_ring_dma_addr_sc92031_priv_38536 rx_ring_dma_addr sc92031_priv 0 38536 NULL
139744 +disable_so___ipv6_addr_type_fndecl_38537 __ipv6_addr_type fndecl 0 38537 NULL
139745 +disable_so_cstamp_inet6_ifaddr_38541 cstamp inet6_ifaddr 0 38541 NULL
139746 +disable_so_arch_randomize_brk_fndecl_38542 arch_randomize_brk fndecl 0 38542 NULL
139747 +disable_so_imon_mce_key_lookup_fndecl_38543 imon_mce_key_lookup fndecl 0-2 38543 NULL
139748 +disable_so_amdgpu_mm_wreg_fndecl_38550 amdgpu_mm_wreg fndecl 2-3 38550 NULL
139749 +disable_so_mgid_index_mthca_qp_path_38553 mgid_index mthca_qp_path 0 38553 NULL
139750 +disable_so_i_gid_bfs_inode_38565 i_gid bfs_inode 0 38565 NULL
139751 +disable_so_tx_delayed_compl_wlcore_ops_38572 tx_delayed_compl wlcore_ops 0 38572 NULL
139752 +disable_so_split_scan_timeout_write_fndecl_38579 split_scan_timeout_write fndecl 3-0 38579 NULL
139753 +disable_so_xfs_btree_change_owner_fndecl_38586 xfs_btree_change_owner fndecl 0-2 38586 NULL
139754 +disable_so_hash_sendmsg_fndecl_38588 hash_sendmsg fndecl 0 38588 NULL
139755 +disable_so_read_inode_bitmap_fndecl_38589 read_inode_bitmap fndecl 2 38589 NULL
139756 +disable_so_before_ctime_sec_nfsd4_change_info_38591 before_ctime_sec nfsd4_change_info 0 38591 NULL
139757 +disable_so_sys_clock_freq_drx_common_attr_38599 sys_clock_freq drx_common_attr 0 38599 NULL
139758 +disable_so_kvm_x2apic_msr_write_fndecl_38601 kvm_x2apic_msr_write fndecl 3 38601 NULL
139759 +disable_so_stored_addr_lo_amd_iommu_38609 stored_addr_lo amd_iommu 0 38609 NULL
139760 +disable_so_udp_port_udp_media_addr_38613 udp_port udp_media_addr 0 38613 NULL
139761 +disable_so_hashmask_Qdisc_class_hash_38621 hashmask Qdisc_class_hash 0 38621 NULL
139762 +disable_so_i_gid_nilfs_inode_38625 i_gid nilfs_inode 0 38625 NULL
139763 +disable_so__freq_tbl_determine_rate_fndecl_38627 _freq_tbl_determine_rate fndecl 0 38627 NULL
139764 +disable_so_n__pll_div_38634 n _pll_div 0 38634 NULL
139765 +disable_so_security_task_getpgid_fndecl_38635 security_task_getpgid fndecl 0 38635 NULL
139766 +disable_so_dmsr_eg20t_port_38638 dmsr eg20t_port 0 38638 NULL
139767 +disable_so_e4000_s_frequency_fndecl_38648 e4000_s_frequency fndecl 0 38648 NULL
139768 +disable_so_timestamp_iwl_rx_phy_res_38650 timestamp iwl_rx_phy_res 0 38650 NULL
139769 +disable_so_set_freq_fndecl_38651 set_freq fndecl 2 38651 NULL
139770 +disable_so_technisat_usb2_set_led_timer_fndecl_38654 technisat_usb2_set_led_timer fndecl 3-2 38654 NULL
139771 +disable_so_mthca_query_gid_fndecl_38656 mthca_query_gid fndecl 2-3 38656 NULL
139772 +disable_so_mpihelp_addmul_1_fndecl_38658 mpihelp_addmul_1 fndecl 3 38658 NULL
139773 +disable_so_press_adjust_channel_bit_mask_fndecl_38661 press_adjust_channel_bit_mask fndecl 3 38661 NULL
139774 +disable_so_vdi_ctime_vxfs_inode_info_38664 vdi_ctime vxfs_inode_info 0 38664 NULL
139775 +disable_so_afs_vlocation_update_timeout_vardecl_vlocation_c_38669 afs_vlocation_update_timeout vardecl_vlocation.c 0 38669 NULL nohasharray
139776 +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
139777 +disable_so_rhashtable_check_elasticity_fndecl_38676 rhashtable_check_elasticity fndecl 3 38676 NULL
139778 +disable_so_addr_bus_sg_simple_element_38677 addr_bus sg_simple_element 0 38677 NULL
139779 +disable_so_pcxhr_get_external_clock_fndecl_38682 pcxhr_get_external_clock fndecl 0 38682 NULL
139780 +disable_so_ahd_timer_reset_fndecl_38702 ahd_timer_reset fndecl 2 38702 NULL nohasharray
139781 +disable_so_nr_uninterruptible_rq_38702 nr_uninterruptible rq 0 38702 &disable_so_ahd_timer_reset_fndecl_38702
139782 +disable_so_dp_saddr_rds_ib_connect_private_38707 dp_saddr rds_ib_connect_private 0 38707 NULL
139783 +disable_so_dsp_spl_jiffies_vardecl_38710 dsp_spl_jiffies vardecl 0 38710 NULL
139784 +disable_so_mtrr_lookup_init_fndecl_38724 mtrr_lookup_init fndecl 4-3 38724 NULL
139785 +disable_so_qdisc_watchdog_schedule_fndecl_38729 qdisc_watchdog_schedule fndecl 2 38729 NULL
139786 +disable_so_authenc_esn_verify_ahash_update_done_fndecl_38734 authenc_esn_verify_ahash_update_done fndecl 2 38734 NULL
139787 +disable_so_hactive_hi_oaktrail_timing_info_38738 hactive_hi oaktrail_timing_info 0 38738 NULL
139788 +disable_so_i2c_address_xc5000_config_38739 i2c_address xc5000_config 0 38739 NULL
139789 +disable_so_address_fw_hdr_38754 address fw_hdr 0 38754 NULL
139790 +disable_so_radio_addr_saa7134_dev_38765 radio_addr saa7134_dev 0 38765 NULL
139791 +disable_so_i2c_address_max2165_config_38766 i2c_address max2165_config 0 38766 NULL nohasharray
139792 +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
139793 +disable_so_fan1_div_amc6821_data_38770 fan1_div amc6821_data 0 38770 NULL
139794 +disable_so_sd_blocks_per_bitmap_gfs2_sbd_38771 sd_blocks_per_bitmap gfs2_sbd 0 38771 NULL
139795 +disable_so_cryptd_hash_finup_fndecl_38778 cryptd_hash_finup fndecl 2 38778 NULL
139796 +disable_so_mnamehash_dlm_master_list_entry_38791 mnamehash dlm_master_list_entry 0 38791 NULL
139797 +disable_so_compat_sys_clock_nanosleep_fndecl_38793 compat_sys_clock_nanosleep fndecl 1 38793 NULL
139798 +disable_so_minutes_v4l2_timecode_38804 minutes v4l2_timecode 0 38804 NULL
139799 +disable_so_mtrr_type_lookup_variable_fndecl_38806 mtrr_type_lookup_variable fndecl 1-2 38806 NULL
139800 +disable_so_pch_uart_hal_disable_interrupt_fndecl_38820 pch_uart_hal_disable_interrupt fndecl 2 38820 NULL nohasharray
139801 +disable_so_addr_azx_38820 addr azx 0 38820 &disable_so_pch_uart_hal_disable_interrupt_fndecl_38820
139802 +disable_so_num_addresses_at24_data_38822 num_addresses at24_data 0 38822 NULL
139803 +disable_so_delay_reg_anatop_regulator_38823 delay_reg anatop_regulator 0 38823 NULL
139804 +disable_so_table_addr_radeon_gart_38825 table_addr radeon_gart 0 38825 NULL
139805 +disable_so_random_ioctl_fndecl_38846 random_ioctl fndecl 0 38846 NULL
139806 +disable_so_iwl_count_chain_bitmap_fndecl_38847 iwl_count_chain_bitmap fndecl 0-1 38847 NULL
139807 +disable_so_phy_pm_runtime_get_fndecl_38865 phy_pm_runtime_get fndecl 0 38865 NULL
139808 +disable_so_interrupt_level_mask_kszphy_type_38870 interrupt_level_mask kszphy_type 0 38870 NULL nohasharray
139809 +disable_so_r25_val_fc2580_freq_regs_38870 r25_val fc2580_freq_regs 0 38870 &disable_so_interrupt_level_mask_kszphy_type_38870
139810 +disable_so_cc770_tx_interrupt_fndecl_38879 cc770_tx_interrupt fndecl 2 38879 NULL
139811 +disable_so_rq_first_pbe_addr_lo_fcoe_kwqe_conn_offload1_38880 rq_first_pbe_addr_lo fcoe_kwqe_conn_offload1 0 38880 NULL
139812 +disable_so_hpi_compander_get_attack_time_constant_fndecl_38881 hpi_compander_get_attack_time_constant fndecl 1-0 38881 NULL
139813 +disable_so_get_clock_info_fndecl_38883 get_clock_info fndecl 4-0 38883 NULL
139814 +disable_so_ieee80211_aes_gmac_fndecl_38891 ieee80211_aes_gmac fndecl 5 38891 NULL
139815 +disable_so_port_mlx4_sriov_alias_guid_port_rec_det_38897 port mlx4_sriov_alias_guid_port_rec_det 0 38897 NULL
139816 +disable_so_fd_pppol2tpv3_addr_38898 fd pppol2tpv3_addr 0 38898 NULL nohasharray
139817 +disable_so_bcm3510_set_freq_fndecl_38898 bcm3510_set_freq fndecl 2 38898 &disable_so_fd_pppol2tpv3_addr_38898
139818 +disable_so_irq_dispose_mapping_fndecl_38902 irq_dispose_mapping fndecl 1 38902 NULL
139819 +disable_so_crypto_ccm_decrypt_done_fndecl_38904 crypto_ccm_decrypt_done fndecl 2 38904 NULL
139820 +disable_so_cw1200_queue_get_xmit_timestamp_fndecl_38907 cw1200_queue_get_xmit_timestamp fndecl 3 38907 NULL nohasharray
139821 +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
139822 +disable_so_check_num_extents_and_bitmaps_fndecl_38927 check_num_extents_and_bitmaps fndecl 0 38927 NULL
139823 +disable_so_timekeeping_get_tai_offset_fndecl_38933 timekeeping_get_tai_offset fndecl 0 38933 NULL nohasharray
139824 +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
139825 +disable_so_mlx4_get_base_gid_ix_fndecl_38938 mlx4_get_base_gid_ix fndecl 0-2-3 38938 NULL
139826 +disable_so_default_i2c_addr_dib7000p_config_38941 default_i2c_addr dib7000p_config 0 38941 NULL
139827 +disable_so_nilfs_btree_get_next_key_fndecl_38942 nilfs_btree_get_next_key fndecl 0 38942 NULL
139828 +disable_so_eoc_delay_ns_cc10001_adc_device_38943 eoc_delay_ns cc10001_adc_device 0 38943 NULL
139829 +disable_so_get_clock_desc_fndecl_38944 get_clock_desc fndecl 1 38944 NULL
139830 +disable_so_hdsp_set_interrupt_interval_fndecl_38947 hdsp_set_interrupt_interval fndecl 2 38947 NULL
139831 +disable_so_sysctl_sched_time_avg_vardecl_38969 sysctl_sched_time_avg vardecl 0 38969 NULL
139832 +disable_so_vivid_radio_s_frequency_fndecl_38975 vivid_radio_s_frequency fndecl 0 38975 NULL
139833 +disable_so_sha1_pad_fndecl_38979 sha1_pad fndecl 0-2 38979 NULL
139834 +disable_so_hash_mask_deflate_state_38981 hash_mask deflate_state 0 38981 NULL
139835 +disable_so_pos_dmaengine_pcm_runtime_data_38984 pos dmaengine_pcm_runtime_data 0 38984 NULL
139836 +disable_so_set_dma_addr_fndecl_38989 set_dma_addr fndecl 1-2 38989 NULL
139837 +disable_so_caller_gid_ceph_mds_request_head_38991 caller_gid ceph_mds_request_head 0 38991 NULL
139838 +disable_so_bf_paddr_ath_mci_buf_38995 bf_paddr ath_mci_buf 0 38995 NULL
139839 +disable_so_x86_setup_var_mtrrs_fndecl_39006 x86_setup_var_mtrrs fndecl 4-3-2 39006 NULL nohasharray
139840 +disable_so_uv_global_mmr64_address_fndecl_39006 uv_global_mmr64_address fndecl 1 39006 &disable_so_x86_setup_var_mtrrs_fndecl_39006
139841 +disable_so_interrupt_out_interval_lego_usb_tower_39007 interrupt_out_interval lego_usb_tower 0 39007 NULL
139842 +disable_so_di_uid_logfs_disk_inode_39011 di_uid logfs_disk_inode 0 39011 NULL
139843 +disable_so_cfag12864b_address_fndecl_39018 cfag12864b_address fndecl 1 39018 NULL
139844 +disable_so_dmaaddr_b43legacy_dmadesc_meta_39023 dmaaddr b43legacy_dmadesc_meta 0 39023 NULL
139845 +disable_so_dce_v10_0_crtc_set_base_atomic_fndecl_39025 dce_v10_0_crtc_set_base_atomic fndecl 0 39025 NULL
139846 +disable_so_dst_addr_l_wcn36xx_dxe_desc_39037 dst_addr_l wcn36xx_dxe_desc 0 39037 NULL
139847 +disable_so_show_fan_div_fndecl_39039 show_fan_div fndecl 0 39039 NULL
139848 +disable_so_set_timer_slack_fndecl_39051 set_timer_slack fndecl 2 39051 NULL
139849 +disable_so_seq_xfrm_usersa_info_39054 seq xfrm_usersa_info 0 39054 NULL
139850 +disable_so_freq_wmi_send_action_cmd_39065 freq wmi_send_action_cmd 0 39065 NULL
139851 +disable_so_addr_ksz_hw_desc_39069 addr ksz_hw_desc 0 39069 NULL
139852 +disable_so_fll_refclk_div__fll_div_39071 fll_refclk_div _fll_div 0 39071 NULL
139853 +disable_so_atime_nsec_ubifs_ino_node_39079 atime_nsec ubifs_ino_node 0 39079 NULL
139854 +disable_so_p2m_jiffies_solo_dev_39094 p2m_jiffies solo_dev 0 39094 NULL
139855 +disable_so_cl_time_nfs4_client_39095 cl_time nfs4_client 0 39095 NULL
139856 +disable_so_addr_inet_cork_39099 addr inet_cork 0 39099 NULL nohasharray
139857 +disable_so_get_cur_freq_on_cpu_fndecl_39099 get_cur_freq_on_cpu fndecl 0 39099 &disable_so_addr_inet_cork_39099
139858 +disable_so_addr_radeon_dummy_page_39105 addr radeon_dummy_page 0 39105 NULL
139859 +disable_so_dmar_set_interrupt_fndecl_39106 dmar_set_interrupt fndecl 0 39106 NULL
139860 +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
139861 +disable_so_atomic_set_property_drm_plane_funcs_39123 atomic_set_property drm_plane_funcs 0-4 39123 NULL nohasharray
139862 +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
139863 +disable_so_div_sync_wait_dib7000p_state_39125 div_sync_wait dib7000p_state 0 39125 NULL nohasharray
139864 +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
139865 +disable_so_regcache_rbtree_write_fndecl_39126 regcache_rbtree_write fndecl 2-3 39126 NULL
139866 +disable_so_boot_addr_nvbios_pmuR_39136 boot_addr nvbios_pmuR 0 39136 NULL
139867 +disable_so_slack_timer_list_39142 slack timer_list 0 39142 NULL
139868 +disable_so_qat_alg_ablkcipher_decrypt_fndecl_39147 qat_alg_ablkcipher_decrypt fndecl 0 39147 NULL
139869 +disable_so_security_task_fix_setuid_fndecl_39149 security_task_fix_setuid fndecl 0 39149 NULL
139870 +disable_so_result_xfs_btree_split_args_39161 result xfs_btree_split_args 0 39161 NULL
139871 +disable_so_max_medium_access_timeouts_show_fndecl_39174 max_medium_access_timeouts_show fndecl 0 39174 NULL
139872 +disable_so_rx_rx_timeout_wa_read_fndecl_39183 rx_rx_timeout_wa_read fndecl 3 39183 NULL nohasharray
139873 +disable_so_store_falltime_fndecl_39183 store_falltime fndecl 4-0 39183 &disable_so_rx_rx_timeout_wa_read_fndecl_39183
139874 +disable_so_n_gma_clock_t_39192 n gma_clock_t 0 39192 NULL
139875 +disable_so_phy_addr_wcn36xx_dxe_mem_pool_39193 phy_addr wcn36xx_dxe_mem_pool 0 39193 NULL
139876 +disable_so_r6c_val_fc2580_freq_regs_39202 r6c_val fc2580_freq_regs 0 39202 NULL
139877 +disable_so_adis16480_get_freq_fndecl_39205 adis16480_get_freq fndecl 0 39205 NULL
139878 +disable_so_stv0367_get_tuner_freq_fndecl_39210 stv0367_get_tuner_freq fndecl 0 39210 NULL
139879 +disable_so_loadtime_init_fndecl_39230 loadtime_init fndecl 0 39230 NULL
139880 +disable_so_vcc_timeout_period_lec_priv_39232 vcc_timeout_period lec_priv 0 39232 NULL nohasharray
139881 +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
139882 +disable_so_rxhubaddr_musb_csr_regs_39234 rxhubaddr musb_csr_regs 0 39234 NULL
139883 +disable_so_igb_init_interrupt_scheme_fndecl_39237 igb_init_interrupt_scheme fndecl 0 39237 NULL
139884 +disable_so_decrypt_mpdu_lib80211_crypto_ops_39245 decrypt_mpdu lib80211_crypto_ops 2 39245 NULL
139885 +disable_so_enc_cd_paddr_qat_alg_ablkcipher_ctx_39246 enc_cd_paddr qat_alg_ablkcipher_ctx 0 39246 NULL
139886 +disable_so_ax_tss_segment_16_39248 ax tss_segment_16 0 39248 NULL
139887 +disable_so___crypto_memneq_fndecl_39251 __crypto_memneq fndecl 3 39251 NULL
139888 +disable_so_core_freq_drm_psb_private_39252 core_freq drm_psb_private 0 39252 NULL
139889 +disable_so_i_gid_minix_inode_39253 i_gid minix_inode 0 39253 NULL
139890 +disable_so_sllc_arphrd_sockaddr_llc_39261 sllc_arphrd sockaddr_llc 0 39261 NULL
139891 +disable_so_bind_virq_for_mce_fndecl_39266 bind_virq_for_mce fndecl 0 39266 NULL
139892 +disable_so_poll_timeout_hwif_s_39267 poll_timeout hwif_s 0 39267 NULL
139893 +disable_so_cik_set_uvd_clock_fndecl_39276 cik_set_uvd_clock fndecl 2-0 39276 NULL
139894 +disable_so_watchdog_get_timeleft_fndecl_39280 watchdog_get_timeleft fndecl 0 39280 NULL
139895 +disable_so_pti_addr_pti_dev_39288 pti_addr pti_dev 0 39288 NULL
139896 +disable_so_last_guest_tsc_kvm_vcpu_arch_39290 last_guest_tsc kvm_vcpu_arch 0 39290 NULL
139897 +disable_so_crypto_cts_encrypt_fndecl_39299 crypto_cts_encrypt fndecl 0-4 39299 NULL
139898 +disable_so_set_timer_mode_fndecl_39306 set_timer_mode fndecl 1 39306 NULL
139899 +disable_so_vref_delay_usecs_ads7846_39307 vref_delay_usecs ads7846 0 39307 NULL nohasharray
139900 +disable_so_signal_rxdone_entry_desc_39307 signal rxdone_entry_desc 0 39307 &disable_so_vref_delay_usecs_ads7846_39307
139901 +disable_so_kr_rcvhdrtailaddr_ipath_kregs_39311 kr_rcvhdrtailaddr ipath_kregs 0 39311 NULL
139902 +disable_so_cyapa_pwr_cmd_to_sleep_time_fndecl_39315 cyapa_pwr_cmd_to_sleep_time fndecl 0-1 39315 NULL nohasharray
139903 +disable_so_sleep_time_packet_data_39315 sleep_time packet_data 0 39315 &disable_so_cyapa_pwr_cmd_to_sleep_time_fndecl_39315 nohasharray
139904 +disable_so_sdhci_runtime_pm_get_fndecl_39315 sdhci_runtime_pm_get fndecl 0 39315 &disable_so_sleep_time_packet_data_39315
139905 +disable_so___request_region_fndecl_39330 __request_region fndecl 3-2-5 39330 NULL
139906 +disable_so_hash_next_entry_39332 hash_next entry 0 39332 NULL
139907 +disable_so_timeout_dmx_sct_filter_params_39333 timeout dmx_sct_filter_params 0 39333 NULL
139908 +disable_so_dma_in_mceusb_dev_39335 dma_in mceusb_dev 0 39335 NULL
139909 +disable_so_address_acpi_resource_fixed_io_39338 address acpi_resource_fixed_io 0 39338 NULL
139910 +disable_so_adjusted_clock_radeon_crtc_39340 adjusted_clock radeon_crtc 0 39340 NULL
139911 +disable_so_busaddr_drm_dma_handle_39348 busaddr drm_dma_handle 0 39348 NULL
139912 +disable_so_gid_ok_fndecl_39349 gid_ok fndecl 3 39349 NULL
139913 +disable_so_sched_clock_remote_fndecl_39352 sched_clock_remote fndecl 0 39352 NULL
139914 +disable_so_i_ctime_extra_ext4_inode_39365 i_ctime_extra ext4_inode 0 39365 NULL
139915 +disable_so_mISDN_inittimer_fndecl_39396 mISDN_inittimer fndecl 0 39396 NULL
139916 +disable_so_status_addr_efx_vf_39401 status_addr efx_vf 0 39401 NULL nohasharray
139917 +disable_so_freq_ieee80211_rx_status_39401 freq ieee80211_rx_status 0 39401 &disable_so_status_addr_efx_vf_39401
139918 +disable_so_validate_acl_mac_addrs_fndecl_39406 validate_acl_mac_addrs fndecl 0 39406 NULL nohasharray
139919 +disable_so_encrypt_mpdu_lib80211_crypto_ops_39406 encrypt_mpdu lib80211_crypto_ops 2 39406 &disable_so_validate_acl_mac_addrs_fndecl_39406
139920 +disable_so_max_idle_ns_clocksource_39415 max_idle_ns clocksource 0 39415 NULL
139921 +disable_so_sys_setreuid16_fndecl_39425 sys_setreuid16 fndecl 0-1-2 39425 NULL
139922 +disable_so_typhoon_start_runtime_fndecl_39437 typhoon_start_runtime fndecl 0 39437 NULL nohasharray
139923 +disable_so_frequency_dtv_frontend_properties_39437 frequency dtv_frontend_properties 0 39437 &disable_so_typhoon_start_runtime_fndecl_39437
139924 +disable_so_addr_init_table_39442 addr init_table 0 39442 NULL
139925 +disable_so_gru_end_paddr_vardecl_x2apic_uv_x_c_39443 gru_end_paddr vardecl_x2apic_uv_x.c 0 39443 NULL
139926 +disable_so_irq_timeout_write_fndecl_39445 irq_timeout_write fndecl 3-0 39445 NULL
139927 +disable_so_uwb_rc_mac_addr_set_fndecl_39450 uwb_rc_mac_addr_set fndecl 0 39450 NULL
139928 +disable_so_ext4_es_find_delayed_extent_range_fndecl_39461 ext4_es_find_delayed_extent_range fndecl 2-3 39461 NULL
139929 +disable_so_conn_timeout_hci_conn_39470 conn_timeout hci_conn 0 39470 NULL nohasharray
139930 +disable_so_compat_sys_rt_sigtimedwait_fndecl_39470 compat_sys_rt_sigtimedwait fndecl 0 39470 &disable_so_conn_timeout_hci_conn_39470
139931 +disable_so_snd_usb_pcm_delay_fndecl_39473 snd_usb_pcm_delay fndecl 0-2 39473 NULL nohasharray
139932 +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
139933 +disable_so_sz_out_qat_crypto_request_buffs_39477 sz_out qat_crypto_request_buffs 0 39477 NULL
139934 +disable_so_tx_abs_int_delay_e1000_adapter_39481 tx_abs_int_delay e1000_adapter 0 39481 NULL
139935 +disable_so_nilfs_btree_node_delete_fndecl_39483 nilfs_btree_node_delete fndecl 2 39483 NULL
139936 +disable_so_timeout_write_fndecl_39484 timeout_write fndecl 3-0 39484 NULL
139937 +disable_so_ac97_clock_vardecl_intel8x0_c_39489 ac97_clock vardecl_intel8x0.c 0 39489 NULL
139938 +disable_so_get_clock_info_fndecl_39492 get_clock_info fndecl 0 39492 NULL
139939 +disable_so_buf_paddr_uioc_39504 buf_paddr uioc 0 39504 NULL
139940 +disable_so_mpll_ss2_rv770_clock_registers_39508 mpll_ss2 rv770_clock_registers 0 39508 NULL
139941 +disable_so_fc_exch_timer_set_fndecl_39511 fc_exch_timer_set fndecl 2 39511 NULL
139942 +disable_so_stv0900_write_reg_fndecl_39517 stv0900_write_reg fndecl 2-3 39517 NULL
139943 +disable_so_divf_ide_proc_devset_39528 divf ide_proc_devset 0 39528 NULL
139944 +disable_so_wm_adsp_create_region_fndecl_39536 wm_adsp_create_region fndecl 2 39536 NULL
139945 +disable_so_pl2303_encode_baud_rate_divisor_fndecl_39544 pl2303_encode_baud_rate_divisor fndecl 0-2 39544 NULL
139946 +disable_so_mlx4_put_slave_node_guid_fndecl_39546 mlx4_put_slave_node_guid fndecl 3 39546 NULL
139947 +disable_so_sgl_addr_lo_fw_flash_Update_req_39547 sgl_addr_lo fw_flash_Update_req 0 39547 NULL
139948 +disable_so_m41t93_set_time_fndecl_39562 m41t93_set_time fndecl 0 39562 NULL
139949 +disable_so_width_intel_sdvo_preferred_input_timing_args_39563 width intel_sdvo_preferred_input_timing_args 0 39563 NULL
139950 +disable_so_RF_SYN_reserved_addr29_chan_info_nphy_radio205x_39569 RF_SYN_reserved_addr29 chan_info_nphy_radio205x 0 39569 NULL
139951 +disable_so_delay_vardecl_wm9712_c_39574 delay vardecl_wm9712.c 0 39574 NULL
139952 +disable_so_usb_sleep_charge_show_fndecl_39578 usb_sleep_charge_show fndecl 0 39578 NULL
139953 +disable_so_cpu_to_virtio16_fndecl_39582 cpu_to_virtio16 fndecl 0-2 39582 NULL
139954 +disable_so_e1000e_init_rx_addrs_fndecl_39608 e1000e_init_rx_addrs fndecl 2 39608 NULL
139955 +disable_so_wss_random_offset_tpg_draw_params_39616 wss_random_offset tpg_draw_params 0 39616 NULL
139956 +disable_so_ib_qib_sys_image_guid_vardecl_39617 ib_qib_sys_image_guid vardecl 0 39617 NULL
139957 +disable_so_m_gma_clock_t_39618 m gma_clock_t 0 39618 NULL
139958 +disable_so_nilfs_btree_node_move_right_fndecl_39627 nilfs_btree_node_move_right fndecl 3 39627 NULL
139959 +disable_so_max14577_muic_set_debounce_time_fndecl_39632 max14577_muic_set_debounce_time fndecl 2-0 39632 NULL nohasharray
139960 +disable_so_shash_compat_final_fndecl_39632 shash_compat_final fndecl 0 39632 &disable_so_max14577_muic_set_debounce_time_fndecl_39632
139961 +disable_so_tx_coal_timer_sxgbe_tx_queue_39639 tx_coal_timer sxgbe_tx_queue 0 39639 NULL
139962 +disable_so_antsignal_rx_radiotap_hdr_39653 antsignal rx_radiotap_hdr 0 39653 NULL
139963 +disable_so_vaddr_gru_dump_context_header_39663 vaddr gru_dump_context_header 0 39663 NULL
139964 +disable_so_cap_task_setscheduler_fndecl_39664 cap_task_setscheduler fndecl 0 39664 NULL
139965 +disable_so_bt_inq_page_start_time_bt_coexist_8723_39665 bt_inq_page_start_time bt_coexist_8723 0 39665 NULL
139966 +disable_so_last_beacon_signal_ieee80211_if_managed_39670 last_beacon_signal ieee80211_if_managed 0 39670 NULL
139967 +disable_so_ni_ipv4_address_dlm_node_info_39675 ni_ipv4_address dlm_node_info 0 39675 NULL
139968 +disable_so_i_gid_minix2_inode_39680 i_gid minix2_inode 0 39680 NULL
139969 +disable_so_mx51_ecspi_clkdiv_fndecl_39681 mx51_ecspi_clkdiv fndecl 1-2-0 39681 NULL
139970 +disable_so_mld_dad_start_timer_fndecl_39685 mld_dad_start_timer fndecl 2 39685 NULL
139971 +disable_so_fm10k_read_systime_vf_fndecl_39687 fm10k_read_systime_vf fndecl 0 39687 NULL
139972 +disable_so_cp_hqd_pq_wptr_poll_addr_hi_hqd_registers_39692 cp_hqd_pq_wptr_poll_addr_hi hqd_registers 0 39692 NULL
139973 +disable_so_i2c_smbus_read_byte_data_fndecl_39698 i2c_smbus_read_byte_data fndecl 0-2 39698 NULL
139974 +disable_so_abort_mfi_phys_addr_lo_megasas_abort_frame_39699 abort_mfi_phys_addr_lo megasas_abort_frame 0 39699 NULL
139975 +disable_so_sclk_radeon_pm_clock_info_39706 sclk radeon_pm_clock_info 0 39706 NULL
139976 +disable_so_dma_addr_pch_udc_dev_39708 dma_addr pch_udc_dev 0 39708 NULL
139977 +disable_so_word_write_time_flchip_39711 word_write_time flchip 0 39711 NULL nohasharray
139978 +disable_so_acpi_dev_runtime_suspend_fndecl_39711 acpi_dev_runtime_suspend fndecl 0 39711 &disable_so_word_write_time_flchip_39711
139979 +disable_so_poll_time_us_sccnxp_pdata_39712 poll_time_us sccnxp_pdata 0 39712 NULL
139980 +disable_so_div2_wm8978_pll_div_39713 div2 wm8978_pll_div 0 39713 NULL nohasharray
139981 +disable_so_ssb_chipco_alp_clock_fndecl_39713 ssb_chipco_alp_clock fndecl 0 39713 &disable_so_div2_wm8978_pll_div_39713
139982 +disable_so_chan_get_sndtimeo_cb_fndecl_39717 chan_get_sndtimeo_cb fndecl 0 39717 NULL nohasharray
139983 +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
139984 +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
139985 +disable_so___ew32_fndecl_39722 __ew32 fndecl 2-3 39722 NULL
139986 +disable_so_schedule_sequence_fndecl_39726 schedule_sequence fndecl 3 39726 NULL
139987 +disable_so_bitmap_cond_end_sync_fndecl_39734 bitmap_cond_end_sync fndecl 2 39734 NULL
139988 +disable_so_mc13xxx_rtc_read_time_fndecl_39742 mc13xxx_rtc_read_time fndecl 0 39742 NULL
139989 +disable_so_time_out_ncp_mount_data_kernel_39747 time_out ncp_mount_data_kernel 0 39747 NULL
139990 +disable_so_address_khugepaged_scan_39752 address khugepaged_scan 0 39752 NULL
139991 +disable_so_ab3100_set_register_interruptible_fndecl_39767 ab3100_set_register_interruptible fndecl 0 39767 NULL
139992 +disable_so_ixgbe_write_uc_addr_list_fndecl_39773 ixgbe_write_uc_addr_list fndecl 2 39773 NULL
139993 +disable_so_i2c_udelay_vardecl_cx88_i2c_c_39777 i2c_udelay vardecl_cx88-i2c.c 0 39777 NULL
139994 +disable_so_pm_test_delay_vardecl_suspend_c_39779 pm_test_delay vardecl_suspend.c 0 39779 NULL
139995 +disable_so___mt7601u_phy_freq_cal_fndecl_39782 __mt7601u_phy_freq_cal fndecl 3 39782 NULL
139996 +disable_so_s2mpa01_regulator_set_voltage_time_sel_fndecl_39788 s2mpa01_regulator_set_voltage_time_sel fndecl 0-2-3 39788 NULL
139997 +disable_so_mlx4_get_admin_guid_fndecl_39797 mlx4_get_admin_guid fndecl 2-3 39797 NULL
139998 +disable_so_enic_dev_intr_coal_timer_info_fndecl_39803 enic_dev_intr_coal_timer_info fndecl 0 39803 NULL
139999 +disable_so_freq_can_clock_39804 freq can_clock 0 39804 NULL
140000 +disable_so_ktime_set_fndecl_39816 ktime_set fndecl 1-2 39816 NULL
140001 +disable_so_bitmap_set_fndecl_39820 bitmap_set fndecl 2-3 39820 NULL
140002 +disable_so_ttm_bo_delayed_delete_fndecl_39822 ttm_bo_delayed_delete fndecl 0 39822 NULL nohasharray
140003 +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
140004 +disable_so_ipw_set_random_seed_fndecl_39834 ipw_set_random_seed fndecl 0 39834 NULL
140005 +disable_so_tpm2_gen_interrupt_fndecl_39854 tpm2_gen_interrupt fndecl 0 39854 NULL
140006 +disable_so_addr_sch5627_data_39866 addr sch5627_data 0 39866 NULL
140007 +disable_so_governor_cpufreq_governor_39867 governor cpufreq_governor 0 39867 NULL
140008 +disable_so_jhash_3words_fndecl_39870 jhash_3words fndecl 0-1-3 39870 NULL
140009 +disable_so_lvb_iatime_packed_ocfs2_meta_lvb_39885 lvb_iatime_packed ocfs2_meta_lvb 0 39885 NULL
140010 +disable_so_delay_zl6100_data_39886 delay zl6100_data 0 39886 NULL
140011 +disable_so_nla_put_string_fndecl_39892 nla_put_string fndecl 0 39892 NULL
140012 +disable_so_ctime_mddev_39904 ctime mddev 0 39904 NULL
140013 +disable_so_set_output_clock_fndecl_39910 set_output_clock fndecl 0 39910 NULL
140014 +disable_so_clear_bit_le_fndecl_39918 clear_bit_le fndecl 1 39918 NULL
140015 +disable_so_target_burst_mode_freq_mipi_config_39926 target_burst_mode_freq mipi_config 0 39926 NULL
140016 +disable_so_host_addr_gnttab_map_grant_ref_39935 host_addr gnttab_map_grant_ref 0 39935 NULL
140017 +disable_so_esd_timeout_tsc2005_39938 esd_timeout tsc2005 0 39938 NULL
140018 +disable_so_nr_parts_latch_addr_flash_data_39945 nr_parts latch_addr_flash_data 0 39945 NULL
140019 +disable_so_efx_test_interrupts_fndecl_39946 efx_test_interrupts fndecl 0 39946 NULL
140020 +disable_so_ds1685_rtc_read_time_fndecl_39947 ds1685_rtc_read_time fndecl 0 39947 NULL nohasharray
140021 +disable_so_ctxbitmap_gru_tlb_global_handle_39947 ctxbitmap gru_tlb_global_handle 0 39947 &disable_so_ds1685_rtc_read_time_fndecl_39947
140022 +disable_so_si_program_memory_timing_parameters_fndecl_39954 si_program_memory_timing_parameters fndecl 0 39954 NULL
140023 +disable_so___mce_read_apei_fndecl_39956 __mce_read_apei fndecl 0 39956 NULL
140024 +disable_so_xtime_nsec_tk_read_base_39961 xtime_nsec tk_read_base 0 39961 NULL
140025 +disable_so_plldiv_clk_coeff_39962 plldiv clk_coeff 0 39962 NULL
140026 +disable_so_iscsi_nacl_attrib_show_random_r2t_offsets_fndecl_39965 iscsi_nacl_attrib_show_random_r2t_offsets fndecl 0 39965 NULL
140027 +disable_so_crtc_clock_drm_display_mode_39969 crtc_clock drm_display_mode 0 39969 NULL
140028 +disable_so_qat_alg_ablkcipher_encrypt_fndecl_40005 qat_alg_ablkcipher_encrypt fndecl 0 40005 NULL
140029 +disable_so_dib7000p_write_word_fndecl_40007 dib7000p_write_word fndecl 2-3 40007 NULL
140030 +disable_so_crypto_register_shash_fndecl_40011 crypto_register_shash fndecl 0 40011 NULL
140031 +disable_so_acpi_os_signal_semaphore_fndecl_40013 acpi_os_signal_semaphore fndecl 0 40013 NULL
140032 +disable_so_w1_delay_fndecl_40014 w1_delay fndecl 1 40014 NULL
140033 +disable_so_tda10071_sleep_fndecl_40017 tda10071_sleep fndecl 0 40017 NULL
140034 +disable_so_blkcipher_walk_phys_fndecl_40019 blkcipher_walk_phys fndecl 0 40019 NULL
140035 +disable_so_aes_cmac_fndecl_40025 aes_cmac fndecl 0-4 40025 NULL
140036 +disable_so_dwell_time_passive_conf_scan_settings_40029 dwell_time_passive conf_scan_settings 0 40029 NULL nohasharray
140037 +disable_so_freq_wmi_channel_arg_40029 freq wmi_channel_arg 0 40029 &disable_so_dwell_time_passive_conf_scan_settings_40029
140038 +disable_so_ip_tss_segment_16_40046 ip tss_segment_16 0 40046 NULL
140039 +disable_so_recent_entry_hash6_fndecl_40053 recent_entry_hash6 fndecl 0 40053 NULL
140040 +disable_so_pci_addr_mm_dma_desc_40056 pci_addr mm_dma_desc 0 40056 NULL
140041 +disable_so_mwifiex_get_random_ba_threshold_fndecl_40074 mwifiex_get_random_ba_threshold fndecl 0 40074 NULL nohasharray
140042 +disable_so_ccp_aes_xts_decrypt_fndecl_40074 ccp_aes_xts_decrypt fndecl 0 40074 &disable_so_mwifiex_get_random_ba_threshold_fndecl_40074
140043 +disable_so_nilfs_btree_delete_fndecl_40077 nilfs_btree_delete fndecl 0-2 40077 NULL
140044 +disable_so_db_page_addr_ocrdma_create_qp_uresp_40086 db_page_addr ocrdma_create_qp_uresp 0 40086 NULL
140045 +disable_so_bitmap_empty_fndecl_40098 bitmap_empty fndecl 2 40098 NULL
140046 +disable_so_crypto_aes_expand_key_fndecl_40101 crypto_aes_expand_key fndecl 0-3 40101 NULL
140047 +disable_so_sclk_radeon_clock_and_voltage_limits_40103 sclk radeon_clock_and_voltage_limits 0 40103 NULL
140048 +disable_so_daddr_irda_sock_40107 daddr irda_sock 0 40107 NULL
140049 +disable_so_efx_phc_settime_fndecl_40110 efx_phc_settime fndecl 0 40110 NULL nohasharray
140050 +disable_so_w1_gpio_write_bit_val_fndecl_40110 w1_gpio_write_bit_val fndecl 2 40110 &disable_so_efx_phc_settime_fndecl_40110
140051 +disable_so_memsize_bitmap_port_40111 memsize bitmap_port 0 40111 NULL
140052 +disable_so_freq_channel_detector_40125 freq channel_detector 0 40125 NULL
140053 +disable_so_bitmap_port_do_list_fndecl_40145 bitmap_port_do_list fndecl 0 40145 NULL
140054 +disable_so_mcs7830_hif_set_mac_address_fndecl_40149 mcs7830_hif_set_mac_address fndecl 0 40149 NULL
140055 +disable_so_musb_write_rxfunaddr_fndecl_40150 musb_write_rxfunaddr fndecl 2-3 40150 NULL
140056 +disable_so_ioaddr_set_address_info_40154 ioaddr set_address_info 0 40154 NULL nohasharray
140057 +disable_so_mmap_kvaddr_fndecl_40154 mmap_kvaddr fndecl 0-2-4 40154 &disable_so_ioaddr_set_address_info_40154
140058 +disable_so_hr_timeout_ms_o2hb_region_40157 hr_timeout_ms o2hb_region 0 40157 NULL
140059 +disable_so_startbit_ebitmap_node_40162 startbit ebitmap_node 0 40162 NULL
140060 +disable_so_phys_addr_sfi_apic_table_entry_40169 phys_addr sfi_apic_table_entry 0 40169 NULL
140061 +disable_so_hw_settle_time_vadc_channel_prop_40184 hw_settle_time vadc_channel_prop 0 40184 NULL
140062 +disable_so_pio_address_scsi_qla_host_40189 pio_address scsi_qla_host 0 40189 NULL
140063 +disable_so_iffreq_dvb_pll_desc_40199 iffreq dvb_pll_desc 0 40199 NULL nohasharray
140064 +disable_so_cobalt_g_dv_timings_fndecl_40199 cobalt_g_dv_timings fndecl 0 40199 &disable_so_iffreq_dvb_pll_desc_40199
140065 +disable_so_to_addr_conv_fndecl_40204 to_addr_conv fndecl 3 40204 NULL
140066 +disable_so_fm10k_update_uc_addr_vf_fndecl_40219 fm10k_update_uc_addr_vf fndecl 4 40219 NULL
140067 +disable_so_empress_addr_saa7134_board_40236 empress_addr saa7134_board 0 40236 NULL
140068 +disable_so_lm3533_led_delay_on_set_fndecl_40245 lm3533_led_delay_on_set fndecl 0 40245 NULL
140069 +disable_so_cryptd_hash_digest_fndecl_40277 cryptd_hash_digest fndecl 2 40277 NULL
140070 +disable_so_p2m_timeouts_show_fndecl_40284 p2m_timeouts_show fndecl 0 40284 NULL
140071 +disable_so_decrypt_blkcipher_tfm_40300 decrypt blkcipher_tfm 0-4 40300 NULL
140072 +disable_so_freq_radio_tea5777_40301 freq radio_tea5777 0 40301 NULL
140073 +disable_so_height_v4l2_bt_timings_40304 height v4l2_bt_timings 0 40304 NULL
140074 +disable_so_set_channels_control_runtime_40305 set_channels control_runtime 0 40305 NULL
140075 +disable_so_mpll_ss1_si_clock_registers_40320 mpll_ss1 si_clock_registers 0 40320 NULL
140076 +disable_so_address_drm_radeon_surface_free_40326 address drm_radeon_surface_free 0 40326 NULL
140077 +disable_so_scopedist_ipv6_saddr_score_40339 scopedist ipv6_saddr_score 0 40339 NULL
140078 +disable_so_eeprom_addr_pvr2_hdw_40343 eeprom_addr pvr2_hdw 0 40343 NULL
140079 +disable_so_phys_addr_low_qlcnic_tx_mbx_40351 phys_addr_low qlcnic_tx_mbx 0 40351 NULL
140080 +disable_so_i_ctime_nsec_nilfs_inode_40368 i_ctime_nsec nilfs_inode 0 40368 NULL
140081 +disable_so_crypto_set_driver_name_fndecl_40369 crypto_set_driver_name fndecl 0 40369 NULL
140082 +disable_so_gid_args_requester_40377 gid args_requester 0 40377 NULL
140083 +disable_so_ds1343_set_time_fndecl_40381 ds1343_set_time fndecl 0 40381 NULL nohasharray
140084 +disable_so_p2_mt9t112_pll_divider_40381 p2 mt9t112_pll_divider 0 40381 &disable_so_ds1343_set_time_fndecl_40381
140085 +disable_so_get_phys_to_machine_fndecl_40384 get_phys_to_machine fndecl 0-1 40384 NULL
140086 +disable_so_irlmp_start_watchdog_timer_fndecl_40386 irlmp_start_watchdog_timer fndecl 2 40386 NULL
140087 +disable_so_it_id_k_itimer_40394 it_id k_itimer 0 40394 NULL
140088 +disable_so_proc_gid_vardecl_airo_c_40395 proc_gid vardecl_airo.c 0 40395 NULL
140089 +disable_so_vf_addr_lo_bnx2x_vf_mbx_40423 vf_addr_lo bnx2x_vf_mbx 0 40423 NULL
140090 +disable_so_hsw_get_aux_clock_divider_fndecl_40428 hsw_get_aux_clock_divider fndecl 0 40428 NULL
140091 +disable_so_uid_coda_in_hdr_40430 uid coda_in_hdr 0 40430 NULL
140092 +disable_so_il4965_sta_modify_sleep_tx_count_fndecl_40431 il4965_sta_modify_sleep_tx_count fndecl 2 40431 NULL
140093 +disable_so_op_nmi_timer_init_fndecl_40444 op_nmi_timer_init fndecl 0 40444 NULL
140094 +disable_so_reply_dma_min_address_MPT3SAS_ADAPTER_40450 reply_dma_min_address MPT3SAS_ADAPTER 0 40450 NULL
140095 +disable_so_clock_elmer0_board_info_40451 clock_elmer0 board_info 0 40451 NULL
140096 +disable_so_drift_time_trackpoint_data_40460 drift_time trackpoint_data 0 40460 NULL
140097 +disable_so_tpm_get_random_fndecl_40461 tpm_get_random fndecl 0-3 40461 NULL
140098 +disable_so_HDisplay_xtimings_40462 HDisplay xtimings 0 40462 NULL
140099 +disable_so_addr_desc_frag_40463 addr desc_frag 0 40463 NULL
140100 +disable_so___scrub_mark_bitmap_fndecl_40465 __scrub_mark_bitmap fndecl 3-4 40465 NULL
140101 +disable_so_da9063_wdt_timeout_to_sel_fndecl_40469 da9063_wdt_timeout_to_sel fndecl 0-1 40469 NULL
140102 +disable_so_hactive___fb_timings_40471 hactive __fb_timings 0 40471 NULL
140103 +disable_so_next_blkaddr_of_node_fndecl_40477 next_blkaddr_of_node fndecl 0 40477 NULL
140104 +disable_so_gk20a_timer_init_fndecl_40478 gk20a_timer_init fndecl 0 40478 NULL
140105 +disable_so_saa7164_i2caddr_to_unitid_fndecl_40486 saa7164_i2caddr_to_unitid fndecl 2 40486 NULL
140106 +disable_so___hw_addr_unsync_one_fndecl_40488 __hw_addr_unsync_one fndecl 4 40488 NULL
140107 +disable_so_uncore_msr_box_offset_fndecl_40489 uncore_msr_box_offset fndecl 0 40489 NULL
140108 +disable_so_kgdbdbgp_wait_time_vardecl_ehci_dbgp_c_40510 kgdbdbgp_wait_time vardecl_ehci-dbgp.c 0 40510 NULL
140109 +disable_so_sys_time_fndecl_40516 sys_time fndecl 0 40516 NULL
140110 +disable_so_addrconf_sysctl_proxy_ndp_fndecl_40521 addrconf_sysctl_proxy_ndp fndecl 0 40521 NULL
140111 +disable_so_jiffies_64_vardecl_40530 jiffies_64 vardecl 0 40530 NULL
140112 +disable_so_time_fcoe_rport_40540 time fcoe_rport 0 40540 NULL nohasharray
140113 +disable_so_i_time_fuse_inode_40540 i_time fuse_inode 0 40540 &disable_so_time_fcoe_rport_40540
140114 +disable_so_fllclk_div__fll_div_40542 fllclk_div _fll_div 0 40542 NULL
140115 +disable_so_mmc_sleep_fndecl_40550 mmc_sleep fndecl 0 40550 NULL
140116 +disable_so_swap_activate_address_space_operations_40556 swap_activate address_space_operations 0 40556 NULL
140117 +disable_so_snd_timer_reschedule_fndecl_40558 snd_timer_reschedule fndecl 2 40558 NULL
140118 +disable_so_register_inetaddr_notifier_fndecl_40563 register_inetaddr_notifier fndecl 0 40563 NULL nohasharray
140119 +disable_so_shash_async_export_fndecl_40563 shash_async_export fndecl 0 40563 &disable_so_register_inetaddr_notifier_fndecl_40563
140120 +disable_so_tx_duty_cycle_ene_device_40568 tx_duty_cycle ene_device 0 40568 NULL
140121 +disable_so_delay_cfg80211_sched_scan_request_40582 delay cfg80211_sched_scan_request 0 40582 NULL
140122 +disable_so_sctp_copy_local_addr_list_fndecl_40597 sctp_copy_local_addr_list fndecl 0-4 40597 NULL
140123 +disable_so_can_clock_plx_pci_card_info_40599 can_clock plx_pci_card_info 0 40599 NULL
140124 +disable_so_last_semaphore_signal_addr_amdgpu_ring_40601 last_semaphore_signal_addr amdgpu_ring 0 40601 NULL
140125 +disable_so_slave_addr_radeon_encoder_ext_tmds_40618 slave_addr radeon_encoder_ext_tmds 0 40618 NULL
140126 +disable_so_lrg_buf_q_phy_addr_ql3_adapter_40620 lrg_buf_q_phy_addr ql3_adapter 0 40620 NULL
140127 +disable_so_slave_addr_sdvo_device_mapping_40627 slave_addr sdvo_device_mapping 0 40627 NULL
140128 +disable_so_raddr_fw_ldst_mdio_40629 raddr fw_ldst_mdio 0 40629 NULL
140129 +disable_so_soc_dpcm_runtime_update_fndecl_40639 soc_dpcm_runtime_update fndecl 0 40639 NULL
140130 +disable_so_md_timestamp_netxen_minidump_40640 md_timestamp netxen_minidump 0 40640 NULL
140131 +disable_so_freq_magnitude_fndecl_40641 freq_magnitude fndecl 0-2-3 40641 NULL
140132 +disable_so_asd_write_reg_addr_fndecl_40648 asd_write_reg_addr fndecl 2-3 40648 NULL
140133 +disable_so_ndiv_frac_pmu1_plltab_entry_40664 ndiv_frac pmu1_plltab_entry 0 40664 NULL
140134 +disable_so___percpu_counter_add_fndecl_40667 __percpu_counter_add fndecl 2 40667 NULL
140135 +disable_so_r600_set_mpll_lock_time_fndecl_40677 r600_set_mpll_lock_time fndecl 2 40677 NULL
140136 +disable_so_m_daddr_rds_message_40687 m_daddr rds_message 0 40687 NULL
140137 +disable_so_tbl_addr_hi_ahci_cmd_hdr_40697 tbl_addr_hi ahci_cmd_hdr 0 40697 NULL
140138 +disable_so___cfq_update_io_thinktime_fndecl_40698 __cfq_update_io_thinktime fndecl 2 40698 NULL
140139 +disable_so_sense_addr_snic_icmnd_40701 sense_addr snic_icmnd 0 40701 NULL
140140 +disable_so_addr_mlx5e_sq_dma_40707 addr mlx5e_sq_dma 0 40707 NULL
140141 +disable_so_lp872x_is_valid_buck_addr_fndecl_40709 lp872x_is_valid_buck_addr fndecl 1 40709 NULL
140142 +disable_so_dma_addr_respQ_40711 dma_addr respQ 0 40711 NULL
140143 +disable_so_mclkdiv_cs4265_clk_para_40714 mclkdiv cs4265_clk_para 0 40714 NULL
140144 +disable_so_sh_tmu_clocksource_read_fndecl_40723 sh_tmu_clocksource_read fndecl 0 40723 NULL nohasharray
140145 +disable_so_mthca_cmd_poll_fndecl_40723 mthca_cmd_poll fndecl 0-2 40723 &disable_so_sh_tmu_clocksource_read_fndecl_40723
140146 +disable_so_radio_si4713_s_frequency_fndecl_40725 radio_si4713_s_frequency fndecl 0 40725 NULL
140147 +disable_so_onecputick_vardecl_posix_cpu_timers_c_40726 onecputick vardecl_posix-cpu-timers.c 0 40726 NULL
140148 +disable_so_v_freq_adv7842_video_standards_40728 v_freq adv7842_video_standards 0 40728 NULL
140149 +disable_so___ip6addrlbl_del_fndecl_40742 __ip6addrlbl_del fndecl 0-4 40742 NULL
140150 +disable_so_encrypt_msdu_lib80211_crypto_ops_40743 encrypt_msdu lib80211_crypto_ops 2 40743 NULL
140151 +disable_so_rolloff_stv0900_signal_info_40745 rolloff stv0900_signal_info 0 40745 NULL
140152 +disable_so_pci_finish_runtime_suspend_fndecl_40755 pci_finish_runtime_suspend fndecl 0 40755 NULL
140153 +disable_so_tcp_sacktag_walk_fndecl_40756 tcp_sacktag_walk fndecl 6-5 40756 NULL
140154 +disable_so_vnic_dev_add_addr_fndecl_40765 vnic_dev_add_addr fndecl 0 40765 NULL
140155 +disable_so_zd_usb_iowrite16v_fndecl_40771 zd_usb_iowrite16v fndecl 3-0 40771 NULL nohasharray
140156 +disable_so_frequency_mb86a16_state_40771 frequency mb86a16_state 0 40771 &disable_so_zd_usb_iowrite16v_fndecl_40771
140157 +disable_so_clk_ref_div_fll_div_40776 clk_ref_div fll_div 0 40776 NULL
140158 +disable_so_lifetime_write_kbytes_show_fndecl_40777 lifetime_write_kbytes_show fndecl 0 40777 NULL nohasharray
140159 +disable_so_smp_send_reschedule_fndecl_40777 smp_send_reschedule fndecl 1 40777 &disable_so_lifetime_write_kbytes_show_fndecl_40777
140160 +disable_so_crypto_ccm_auth_fndecl_40795 crypto_ccm_auth fndecl 0-3 40795 NULL
140161 +disable_so_get_option_uid_fndecl_40799 get_option_uid fndecl 0 40799 NULL
140162 +disable_so_be_mac_addr_set_fndecl_40804 be_mac_addr_set fndecl 0 40804 NULL
140163 +disable_so_frac_timecounter_40806 frac timecounter 0 40806 NULL
140164 +disable_so_pid_pppol2tpin6_addr_40809 pid pppol2tpin6_addr 0 40809 NULL
140165 +disable_so_i40e_vc_del_mac_addr_msg_fndecl_40824 i40e_vc_del_mac_addr_msg fndecl 0-3 40824 NULL nohasharray
140166 +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
140167 +disable_so_ahd_delay_fndecl_40826 ahd_delay fndecl 1 40826 NULL
140168 +disable_so_read_addr___queue_40832 read_addr __queue 0 40832 NULL
140169 +disable_so_ring_iowrite32desc_fndecl_40836 ring_iowrite32desc fndecl 2 40836 NULL
140170 +disable_so_mma8452_get_samp_freq_index_fndecl_40841 mma8452_get_samp_freq_index fndecl 0-2-3 40841 NULL
140171 +disable_so_nouveau_bo_wr32_fndecl_40847 nouveau_bo_wr32 fndecl 2-3 40847 NULL
140172 +disable_so_drm_object_attach_property_fndecl_40853 drm_object_attach_property fndecl 3 40853 NULL
140173 +disable_so_sched_rr_timeslice_vardecl_40858 sched_rr_timeslice vardecl 0 40858 NULL
140174 +disable_so_hash_recvmsg_fndecl_40871 hash_recvmsg fndecl 0-3 40871 NULL
140175 +disable_so_timeradd_entry_fndecl_40873 timeradd_entry fndecl 0-3 40873 NULL
140176 +disable_so_pages_per_bnode_hfs_btree_40875 pages_per_bnode hfs_btree 0 40875 NULL
140177 +disable_so_ubifs_destroy_tnc_subtree_fndecl_40878 ubifs_destroy_tnc_subtree fndecl 0 40878 NULL
140178 +disable_so_add_uuid_fndecl_40884 add_uuid fndecl 4 40884 NULL nohasharray
140179 +disable_so_make_checksum_hmac_md5_fndecl_40884 make_checksum_hmac_md5 fndecl 3-5 40884 &disable_so_add_uuid_fndecl_40884
140180 +disable_so_sync_bmp_nbits_regcache_lzo_ctx_40890 sync_bmp_nbits regcache_lzo_ctx 0 40890 NULL
140181 +disable_so_crypto_fpu_decrypt_fndecl_40907 crypto_fpu_decrypt fndecl 0-4 40907 NULL
140182 +disable_so_qce_ahash_final_fndecl_40916 qce_ahash_final fndecl 0 40916 NULL
140183 +disable_so_auto_stop_time_uhci_hcd_40917 auto_stop_time uhci_hcd 0 40917 NULL
140184 +disable_so_sys_rt_sigtimedwait_fndecl_40920 sys_rt_sigtimedwait fndecl 0 40920 NULL
140185 +disable_so_dec_cd_paddr_qat_alg_ablkcipher_ctx_40923 dec_cd_paddr qat_alg_ablkcipher_ctx 0 40923 NULL nohasharray
140186 +disable_so_i2cdev_check_addr_fndecl_40923 i2cdev_check_addr fndecl 2 40923 &disable_so_dec_cd_paddr_qat_alg_ablkcipher_ctx_40923
140187 +disable_so_inode_bitmap_ext3_new_group_data_40928 inode_bitmap ext3_new_group_data 0 40928 NULL
140188 +disable_so_inet_select_addr_fndecl_40940 inet_select_addr fndecl 0-2-3 40940 NULL nohasharray
140189 +disable_so_curfreq_keene_device_40940 curfreq keene_device 0 40940 &disable_so_inet_select_addr_fndecl_40940
140190 +disable_so_w83627ehf_write_fan_div_common_fndecl_40945 w83627ehf_write_fan_div_common fndecl 3 40945 NULL
140191 +disable_so_req_addr_efx_vf_40947 req_addr efx_vf 0 40947 NULL
140192 +disable_so_get_crandom_fndecl_40951 get_crandom fndecl 0 40951 NULL
140193 +disable_so_authenc_esn_geniv_ahash_update_done2_fndecl_40965 authenc_esn_geniv_ahash_update_done2 fndecl 2 40965 NULL
140194 +disable_so_bt3c_address_fndecl_40975 bt3c_address fndecl 1 40975 NULL
140195 +disable_so_tx_bidx_addr_bnx2_tx_ring_info_40977 tx_bidx_addr bnx2_tx_ring_info 0 40977 NULL
140196 +disable_so_cs5520_set_timings_fndecl_40978 cs5520_set_timings fndecl 3 40978 NULL
140197 +disable_so_addrLow_ULP_BDL_40980 addrLow ULP_BDL 0 40980 NULL
140198 +disable_so_last_wakeup_time_rtl_ps_ctl_40987 last_wakeup_time rtl_ps_ctl 0 40987 NULL
140199 +disable_so_kstrtos8_fndecl_40989 kstrtos8 fndecl 0 40989 NULL nohasharray
140200 +disable_so_drbg_hash_generate_fndecl_40989 drbg_hash_generate fndecl 0-3 40989 &disable_so_kstrtos8_fndecl_40989
140201 +disable_so_vaddr_get_pfn_fndecl_40993 vaddr_get_pfn fndecl 0-1 40993 NULL
140202 +disable_so_s_def_resgid_ext3_super_block_40996 s_def_resgid ext3_super_block 0 40996 NULL
140203 +disable_so_sr_nongc_ctime_nilfs_super_root_40997 sr_nongc_ctime nilfs_super_root 0 40997 NULL
140204 +disable_so_rsp_producer_index_phy_addr_high_ql3_adapter_40998 rsp_producer_index_phy_addr_high ql3_adapter 0 40998 NULL
140205 +disable_so_per_jiffies_stats_dib8000_state_40999 per_jiffies_stats dib8000_state 0 40999 NULL
140206 +disable_so_cobalt_dv_timings_cap_fndecl_41001 cobalt_dv_timings_cap fndecl 0 41001 NULL
140207 +disable_so_encrypt_blkcipher_tfm_41013 encrypt blkcipher_tfm 0-4 41013 NULL
140208 +disable_so_max_dwell_time_active_conf_scan_settings_41024 max_dwell_time_active conf_scan_settings 0 41024 NULL
140209 +disable_so_gpu_addr_radeon_fence_driver_41046 gpu_addr radeon_fence_driver 0 41046 NULL
140210 +disable_so_read_cache_jiffies_nfs_inode_41071 read_cache_jiffies nfs_inode 0 41071 NULL
140211 +disable_so_curfreq_ma901radio_device_41079 curfreq ma901radio_device 0 41079 NULL
140212 +disable_so_show_constraint_max_time_window_us_fndecl_41080 show_constraint_max_time_window_us fndecl 0 41080 NULL
140213 +disable_so_acpi_tables_addr_vardecl_osl_c_41081 acpi_tables_addr vardecl_osl.c 0 41081 NULL
140214 +disable_so_gdth_delay_fndecl_41096 gdth_delay fndecl 1 41096 NULL
140215 +disable_so_wq_calc_node_cpumask_fndecl_41102 wq_calc_node_cpumask fndecl 2 41102 NULL
140216 +disable_so_qp_bitmap_free_ntb_transport_ctx_41105 qp_bitmap_free ntb_transport_ctx 0 41105 NULL
140217 +disable_so_show_admin_alias_guid_fndecl_41106 show_admin_alias_guid fndecl 0 41106 NULL
140218 +disable_so_freq_vardecl_mxb_c_41108 freq vardecl_mxb.c 0 41108 NULL
140219 +disable_so_vx_set_internal_clock_fndecl_41114 vx_set_internal_clock fndecl 2 41114 NULL
140220 +disable_so_jiffies_at_alloc_qla_tgt_cmd_41119 jiffies_at_alloc qla_tgt_cmd 0 41119 NULL
140221 +disable_so_timestamp_ath9k_htc_tx_ctl_41124 timestamp ath9k_htc_tx_ctl 0 41124 NULL
140222 +disable_so_ib_baseaddr_h_mvumi_hs_page4_41130 ib_baseaddr_h mvumi_hs_page4 0 41130 NULL
140223 +disable_so_cherryview_rps_guar_freq_fndecl_41132 cherryview_rps_guar_freq fndecl 0 41132 NULL
140224 +disable_so_time_survey_info_41134 time survey_info 0 41134 NULL
140225 +disable_so_child_tgid_fork_proc_event_41148 child_tgid fork_proc_event 0 41148 NULL
140226 +disable_so_companion_addr_pm860x_platform_data_41156 companion_addr pm860x_platform_data 0 41156 NULL
140227 +disable_so_lgdt330x_read_signal_strength_fndecl_41159 lgdt330x_read_signal_strength fndecl 0 41159 NULL
140228 +disable_so_genwqe_curr_dbg_uid1_show_fndecl_41164 genwqe_curr_dbg_uid1_show fndecl 0 41164 NULL
140229 +disable_so_addr_nct6775_data_41165 addr nct6775_data 0 41165 NULL
140230 +disable_so_assoc_id_sctp_getaddrs_41169 assoc_id sctp_getaddrs 0 41169 NULL
140231 +disable_so_set_addr_fndecl_41173 set_addr fndecl 2 41173 NULL
140232 +disable_so_fairness_timeout_fairness_vars_per_port_41174 fairness_timeout fairness_vars_per_port 0 41174 NULL
140233 +disable_so_acpi_os_install_interrupt_handler_fndecl_41179 acpi_os_install_interrupt_handler fndecl 1 41179 NULL
140234 +disable_so_ref_freq_vardecl_tsc_c_41183 ref_freq vardecl_tsc.c 0 41183 NULL
140235 +disable_so_latest_ip_addr_eg_cache_entry_41198 latest_ip_addr eg_cache_entry 0 41198 NULL
140236 +disable_so_long_timeout_osst_tape_41205 long_timeout osst_tape 0 41205 NULL
140237 +disable_so_dma_addr_mcam_dma_desc_41206 dma_addr mcam_dma_desc 0 41206 NULL
140238 +disable_so_address_lower_scu_sgl_element_41221 address_lower scu_sgl_element 0 41221 NULL
140239 +disable_so_paravirt_read_tsc_fndecl_41239 paravirt_read_tsc fndecl 0 41239 NULL
140240 +disable_so_posix_clock_realtime_set_fndecl_41245 posix_clock_realtime_set fndecl 0 41245 NULL
140241 +disable_so_phys_addr_netxen_dummy_dma_41248 phys_addr netxen_dummy_dma 0 41248 NULL
140242 +disable_so_addr_port_fndecl_41249 addr_port fndecl 0 41249 NULL nohasharray
140243 +disable_so_ip_vs_svc_hashkey_fndecl_41249 ip_vs_svc_hashkey fndecl 2-3 41249 &disable_so_addr_port_fndecl_41249
140244 +disable_so_kstrtoul_from_user_fndecl_41258 kstrtoul_from_user fndecl 0-2 41258 NULL
140245 +disable_so_xfrm_state_lookup_byaddr_fndecl_41260 xfrm_state_lookup_byaddr fndecl 2-5-6 41260 NULL
140246 +disable_so_ns_sbwtime_the_nilfs_41268 ns_sbwtime the_nilfs 0 41268 NULL
140247 +disable_so_max_delta_ns_clock_event_device_41269 max_delta_ns clock_event_device 0 41269 NULL
140248 +disable_so_mcryptd_hash_init_enqueue_fndecl_41273 mcryptd_hash_init_enqueue fndecl 0 41273 NULL
140249 +disable_so_enic_set_mac_address_dynamic_fndecl_41279 enic_set_mac_address_dynamic fndecl 0 41279 NULL
140250 +disable_so_igb_ptp_adjtime_i210_fndecl_41280 igb_ptp_adjtime_i210 fndecl 2 41280 NULL
140251 +disable_so_timestamp_cper_record_header_41286 timestamp cper_record_header 0 41286 NULL
140252 +disable_so_mtt_base_addr_l_mlx4_cq_context_41294 mtt_base_addr_l mlx4_cq_context 0 41294 NULL
140253 +disable_so_base_lo_mtrr_var_range_41296 base_lo mtrr_var_range 0 41296 NULL
140254 +disable_so_ucma_query_gid_fndecl_41299 ucma_query_gid fndecl 3 41299 NULL
140255 +disable_so_ioat_dma_setup_interrupts_fndecl_41304 ioat_dma_setup_interrupts fndecl 0 41304 NULL
140256 +disable_so_cmaj_flt_signal_struct_41306 cmaj_flt signal_struct 0 41306 NULL
140257 +disable_so_wlc_phy_ant_rxdiv_set_fndecl_41312 wlc_phy_ant_rxdiv_set fndecl 2 41312 NULL
140258 +disable_so_ata_timing_compute_fndecl_41314 ata_timing_compute fndecl 2 41314 NULL
140259 +disable_so_jiffies_resched_rcu_state_41320 jiffies_resched rcu_state 0 41320 NULL
140260 +disable_so_cc770_rx_interrupt_fndecl_41322 cc770_rx_interrupt fndecl 2 41322 NULL
140261 +disable_so_configure_clock_fndecl_41329 configure_clock fndecl 0 41329 NULL
140262 +disable_so_timeout_ip_set_41331 timeout ip_set 0 41331 NULL
140263 +disable_so_dcbnl_getperm_hwaddr_fndecl_41338 dcbnl_getperm_hwaddr fndecl 0 41338 NULL
140264 +disable_so_cfg80211_set_cipher_group_fndecl_41343 cfg80211_set_cipher_group fndecl 2 41343 NULL
140265 +disable_so_time_ipr_trace_entry_41350 time ipr_trace_entry 0 41350 NULL
140266 +disable_so_csize_lattime_ahc_pci_softc_41352 csize_lattime ahc_pci_softc 0 41352 NULL
140267 +disable_so_bind_to_cpu_evtchn_ops_41358 bind_to_cpu evtchn_ops 2 41358 NULL
140268 +disable_so_init_lib80211_crypto_ops_41363 init lib80211_crypto_ops 1 41363 NULL
140269 +disable_so_xhci_get_timeout_no_hub_lpm_fndecl_41382 xhci_get_timeout_no_hub_lpm fndecl 0 41382 NULL
140270 +disable_so_ast_set_index_reg_mask_fndecl_41386 ast_set_index_reg_mask fndecl 5 41386 NULL nohasharray
140271 +disable_so_iwl_send_rxon_timing_fndecl_41386 iwl_send_rxon_timing fndecl 0 41386 &disable_so_ast_set_index_reg_mask_fndecl_41386
140272 +disable_so_last_can_queue_ramp_down_time_fc_fcp_internal_41400 last_can_queue_ramp_down_time fc_fcp_internal 0 41400 NULL
140273 +disable_so_bClockID_uac_clock_selector_descriptor_41403 bClockID uac_clock_selector_descriptor 0 41403 NULL
140274 +disable_so_sys_setuid_fndecl_41415 sys_setuid fndecl 0-1 41415 NULL
140275 +disable_so_i2c_address_tda826x_priv_41421 i2c_address tda826x_priv 0 41421 NULL
140276 +disable_so_dma_addr_efx_rx_buffer_41422 dma_addr efx_rx_buffer 0 41422 NULL
140277 +disable_so_retrans_timeout_l2cap_chan_41431 retrans_timeout l2cap_chan 0 41431 NULL
140278 +disable_so_musb_read_rxhubaddr_fndecl_41435 musb_read_rxhubaddr fndecl 2-0 41435 NULL
140279 +disable_so_pll_reference_div_radeon_crtc_41437 pll_reference_div radeon_crtc 0 41437 NULL
140280 +disable_so_macvlan_set_mac_address_fndecl_41439 macvlan_set_mac_address fndecl 0 41439 NULL
140281 +disable_so_i_uid_read_fndecl_41443 i_uid_read fndecl 0 41443 NULL
140282 +disable_so_hpi_silence_detector_get_delay_fndecl_41450 hpi_silence_detector_get_delay fndecl 0-1 41450 NULL
140283 +disable_so__div_round_up_fndecl_41453 _div_round_up fndecl 0-3-2 41453 NULL
140284 +disable_so_br_timer_value_fndecl_41454 br_timer_value fndecl 0 41454 NULL
140285 +disable_so_compat_sys_utimes_fndecl_41459 compat_sys_utimes fndecl 0 41459 NULL
140286 +disable_so_tx_duty_cycle_ofdm_brcms_c_info_41464 tx_duty_cycle_ofdm brcms_c_info 0 41464 NULL
140287 +disable_so_crypto_authenc_verify_fndecl_41468 crypto_authenc_verify fndecl 0 41468 NULL
140288 +disable_so_signalQuality_StatusRid_41475 signalQuality StatusRid 0 41475 NULL
140289 +disable_so_storvsc_timeout_vardecl_storvsc_drv_c_41479 storvsc_timeout vardecl_storvsc_drv.c 0 41479 NULL
140290 +disable_so_sctp_v6_from_addr_param_fndecl_41480 sctp_v6_from_addr_param fndecl 3-4 41480 NULL
140291 +disable_so_xfs_btree_check_ptr_fndecl_41490 xfs_btree_check_ptr fndecl 3-0 41490 NULL
140292 +disable_so___anon_vma_interval_tree_compute_subtree_last_fndecl_41494 __anon_vma_interval_tree_compute_subtree_last fndecl 0 41494 NULL
140293 +disable_so_drive_jiffies_skd_device_41506 drive_jiffies skd_device 0 41506 NULL
140294 +disable_so_last_dock_time_dock_station_41508 last_dock_time dock_station 0 41508 NULL
140295 +disable_so_common_nsleep_fndecl_41534 common_nsleep fndecl 1 41534 NULL
140296 +disable_so_sun4i_spi_runtime_resume_fndecl_41538 sun4i_spi_runtime_resume fndecl 0 41538 NULL
140297 +disable_so_src_nents_qce_cipher_reqctx_41541 src_nents qce_cipher_reqctx 0 41541 NULL
140298 +disable_so_daddr_irda_ias_set_41547 daddr irda_ias_set 0 41547 NULL
140299 +disable_so_cpufreq_frequency_get_table_fndecl_41548 cpufreq_frequency_get_table fndecl 1 41548 NULL
140300 +disable_so_bd_list_addr_lo_bnx2i_tmf_request_41551 bd_list_addr_lo bnx2i_tmf_request 0 41551 NULL
140301 +disable_so_mkey_lease_timeout_qib_ibport_41552 mkey_lease_timeout qib_ibport 0 41552 NULL
140302 +disable_so_dma_addr_efx_rx_page_state_41558 dma_addr efx_rx_page_state 0 41558 NULL
140303 +disable_so_igb_runtime_resume_fndecl_41565 igb_runtime_resume fndecl 0 41565 NULL
140304 +disable_so_wait_on_page_bit_killable_fndecl_41573 wait_on_page_bit_killable fndecl 0 41573 NULL
140305 +disable_so_time_js_event_41583 time js_event 0 41583 NULL nohasharray
140306 +disable_so_lzo_mod_init_fndecl_41583 lzo_mod_init fndecl 0 41583 &disable_so_time_js_event_41583
140307 +disable_so_cg_spll_func_cntl_2_si_clock_registers_41584 cg_spll_func_cntl_2 si_clock_registers 0 41584 NULL
140308 +disable_so_swa_base_asd_ha_addrspace_41593 swa_base asd_ha_addrspace 0 41593 NULL
140309 +disable_so_flow_get_skgid_fndecl_41594 flow_get_skgid fndecl 0 41594 NULL nohasharray
140310 +disable_so_fib_sync_down_addr_fndecl_41594 fib_sync_down_addr fndecl 2 41594 &disable_so_flow_get_skgid_fndecl_41594
140311 +disable_so_fl0addr_csio_iq_params_41595 fl0addr csio_iq_params 0 41595 NULL
140312 +disable_so_cpufreq_stat_notifier_policy_fndecl_41604 cpufreq_stat_notifier_policy fndecl 0 41604 NULL nohasharray
140313 +disable_so_hash_by_src_fndecl_41604 hash_by_src fndecl 0 41604 &disable_so_cpufreq_stat_notifier_policy_fndecl_41604
140314 +disable_so_read_nvkm_timer_41609 read nvkm_timer 0 41609 NULL
140315 +disable_so_shm32read_addr_next_b43_dfsentry_41611 shm32read_addr_next b43_dfsentry 0 41611 NULL
140316 +disable_so_lo_regpair_41616 lo regpair 0 41616 NULL
140317 +disable_so_addr_netdev_desc_41619 addr netdev_desc 0 41619 NULL
140318 +disable_so_ndesc_get_timestamp_fndecl_41626 ndesc_get_timestamp fndecl 0 41626 NULL
140319 +disable_so_gid_cramfs_inode_41627 gid cramfs_inode 0 41627 NULL
140320 +disable_so___sw_hweight8_fndecl_41629 __sw_hweight8 fndecl 1-0 41629 NULL
140321 +disable_so_kvm_mtrr_get_guest_memory_type_fndecl_41633 kvm_mtrr_get_guest_memory_type fndecl 2-0 41633 NULL
140322 +disable_so___xfrm6_addr_hash_fndecl_41637 __xfrm6_addr_hash fndecl 0 41637 NULL
140323 +disable_so_phys_reg_addr_slgt_info_41642 phys_reg_addr slgt_info 0 41642 NULL
140324 +disable_so_il_dbgfs_wd_timeout_write_fndecl_41643 il_dbgfs_wd_timeout_write fndecl 3 41643 NULL
140325 +disable_so_count_sha256_state_41648 count sha256_state 0 41648 NULL
140326 +disable_so_ironlake_check_encoder_dotclock_fndecl_41660 ironlake_check_encoder_dotclock fndecl 2 41660 NULL
140327 +disable_so_af9015_eeprom_hash_fndecl_41666 af9015_eeprom_hash fndecl 0 41666 NULL
140328 +disable_so_intel_dotclock_calculate_fndecl_41668 intel_dotclock_calculate fndecl 1-0 41668 NULL
140329 +disable_so_rdmsrl_amd_safe_fndecl_41672 rdmsrl_amd_safe fndecl 0 41672 NULL
140330 +disable_so_crypto_ablkcipher_encrypt_fndecl_41682 crypto_ablkcipher_encrypt fndecl 0 41682 NULL
140331 +disable_so_bcma_pmu_pll_clock_bcm4706_fndecl_41683 bcma_pmu_pll_clock_bcm4706 fndecl 0-2 41683 NULL
140332 +disable_so_regmap_write_fndecl_41685 regmap_write fndecl 0-2-3 41685 NULL
140333 +disable_so_setup_APIC_mce_threshold_fndecl_41686 setup_APIC_mce_threshold fndecl 0-1-2 41686 NULL
140334 +disable_so_copy_signal_fndecl_41687 copy_signal fndecl 1 41687 NULL
140335 +disable_so_dma_addr_dw_spi_41693 dma_addr dw_spi 0 41693 NULL
140336 +disable_so_leave_oper_channel_time_ieee80211_local_41701 leave_oper_channel_time ieee80211_local 0 41701 NULL
140337 +disable_so_bit_putcs_fndecl_41704 bit_putcs fndecl 4-5-6-7-8 41704 NULL
140338 +disable_so_nbpf_runtime_resume_fndecl_41706 nbpf_runtime_resume fndecl 0 41706 NULL
140339 +disable_so_force_addr_vardecl_vt8231_c_41714 force_addr vardecl_vt8231.c 0 41714 NULL
140340 +disable_so_radio_syn_pll_refdiv_b43_nphy_channeltab_entry_rev3_41738 radio_syn_pll_refdiv b43_nphy_channeltab_entry_rev3 0 41738 NULL
140341 +disable_so_epoch_time_atto_vda_cfg_init_41739 epoch_time atto_vda_cfg_init 0 41739 NULL
140342 +disable_so_node_size_shift_hfs_btree_41753 node_size_shift hfs_btree 0 41753 NULL
140343 +disable_so_gfx_addr_intel_hw_status_page_41756 gfx_addr intel_hw_status_page 0 41756 NULL
140344 +disable_so_mtrr_trim_uncached_memory_fndecl_41757 mtrr_trim_uncached_memory fndecl 1 41757 NULL
140345 +disable_so_start_idle_time_cfqg_stats_41767 start_idle_time cfqg_stats 0 41767 NULL
140346 +disable_so_receive_bitmap_plain_fndecl_41772 receive_bitmap_plain fndecl 0-2 41772 NULL
140347 +disable_so___set_port_dev_addr_fndecl_41787 __set_port_dev_addr fndecl 0 41787 NULL
140348 +disable_so_max_delta_ticks_clock_event_device_41796 max_delta_ticks clock_event_device 0 41796 NULL
140349 +disable_so_register_ip_vs_scheduler_fndecl_41797 register_ip_vs_scheduler fndecl 0 41797 NULL
140350 +disable_so_lcd_pixclock_atyfb_par_41804 lcd_pixclock atyfb_par 0 41804 NULL
140351 +disable_so_mwl8k_cmd_set_mac_addr_fndecl_41809 mwl8k_cmd_set_mac_addr fndecl 0 41809 NULL
140352 +disable_so_mktime64_fndecl_41810 mktime64 fndecl 0-6-5-4-3-2-1 41810 NULL
140353 +disable_so_brcmf_pcie_buscore_prep_addr_fndecl_41821 brcmf_pcie_buscore_prep_addr fndecl 0-2 41821 NULL
140354 +disable_so_s_bitmap_ino_omfs_sb_info_41835 s_bitmap_ino omfs_sb_info 0 41835 NULL
140355 +disable_so_tlan_handle_interrupt_fndecl_41866 tlan_handle_interrupt fndecl 1 41866 NULL
140356 +disable_so_crypto_authenc_esn_genicv_fndecl_41873 crypto_authenc_esn_genicv fndecl 0 41873 NULL
140357 +disable_so_bfad_iocmd_rport_get_addr_fndecl_41879 bfad_iocmd_rport_get_addr fndecl 0 41879 NULL
140358 +disable_so_xhci_del_comp_mod_timer_fndecl_41881 xhci_del_comp_mod_timer fndecl 3 41881 NULL
140359 +disable_so_raddr_c2wr_ae_connection_request_41889 raddr c2wr_ae_connection_request 0 41889 NULL
140360 +disable_so_btrfs_run_delayed_items_nr_fndecl_41895 btrfs_run_delayed_items_nr fndecl 0-3 41895 NULL nohasharray
140361 +disable_so_isac_interrupt_fndecl_41895 isac_interrupt fndecl 2 41895 &disable_so_btrfs_run_delayed_items_nr_fndecl_41895
140362 +disable_so_address_b43_dmadesc32_41900 address b43_dmadesc32 0 41900 NULL
140363 +disable_so_i_gid_ext4_inode_41907 i_gid ext4_inode 0 41907 NULL
140364 +disable_so_sil24_exec_polled_cmd_fndecl_41911 sil24_exec_polled_cmd fndecl 2 41911 NULL
140365 +disable_so_cp_hqd_pq_rptr_report_addr_hqd_registers_41912 cp_hqd_pq_rptr_report_addr hqd_registers 0 41912 NULL
140366 +disable_so_uuid_hash_ocfs2_super_41922 uuid_hash ocfs2_super 0 41922 NULL
140367 +disable_so_connect_time_usb_device_41926 connect_time usb_device 0 41926 NULL
140368 +disable_so_hard_byte_limit_xfrm_lifetime_cfg_41928 hard_byte_limit xfrm_lifetime_cfg 0 41928 NULL nohasharray
140369 +disable_so_q_rtime_msg_queue_41928 q_rtime msg_queue 0 41928 &disable_so_hard_byte_limit_xfrm_lifetime_cfg_41928 nohasharray
140370 +disable_so_saddr_iphdr_41928 saddr iphdr 0 41928 &disable_so_q_rtime_msg_queue_41928
140371 +disable_so_nfs4_schedule_session_recovery_fndecl_41930 nfs4_schedule_session_recovery fndecl 2 41930 NULL
140372 +disable_so_desc_card_addr_qla8044_minidump_entry_rdmem_pex_dma_41937 desc_card_addr qla8044_minidump_entry_rdmem_pex_dma 0 41937 NULL
140373 +disable_so_freq_ar9170_calibration_target_power_ht_41939 freq ar9170_calibration_target_power_ht 0 41939 NULL
140374 +disable_so_ino_timelimit_qc_type_state_41942 ino_timelimit qc_type_state 0 41942 NULL
140375 +disable_so_ifa_local_in_ifaddr_41951 ifa_local in_ifaddr 0 41951 NULL
140376 +disable_so_seq_radeon_fence_41952 seq radeon_fence 0 41952 NULL
140377 +disable_so_mmc_interrupt_hpi_fndecl_41967 mmc_interrupt_hpi fndecl 0 41967 NULL
140378 +disable_so_addr_nvbios_xpio_41977 addr nvbios_xpio 0 41977 NULL
140379 +disable_so_mlx4_test_interrupts_fndecl_41979 mlx4_test_interrupts fndecl 0 41979 NULL
140380 +disable_so_alps_process_bitmap_fndecl_41983 alps_process_bitmap fndecl 0 41983 NULL
140381 +disable_so_enter_deep_sleep_lbs_private_41984 enter_deep_sleep lbs_private 0 41984 NULL
140382 +disable_so_freq_detected_vx_core_41987 freq_detected vx_core 0 41987 NULL
140383 +disable_so_sig_ksignal_41988 sig ksignal 0 41988 NULL
140384 +disable_so_kvm_clock_get_cycles_fndecl_41992 kvm_clock_get_cycles fndecl 0 41992 NULL
140385 +disable_so_mthca_setup_hca_fndecl_41999 mthca_setup_hca fndecl 0 41999 NULL
140386 +disable_so_ipath_led_override_timeoff_ipath_devdata_42003 ipath_led_override_timeoff ipath_devdata 0 42003 NULL nohasharray
140387 +disable_so_authenc_geniv_ahash_done_fndecl_42003 authenc_geniv_ahash_done fndecl 2 42003 &disable_so_ipath_led_override_timeoff_ipath_devdata_42003
140388 +disable_so_cxgb4vf_set_mac_addr_fndecl_42004 cxgb4vf_set_mac_addr fndecl 0 42004 NULL
140389 +disable_so_poly_cipher_fndecl_42005 poly_cipher fndecl 0 42005 NULL
140390 +disable_so_lfo2delay_soundfont_voice_parm_42007 lfo2delay soundfont_voice_parm 0 42007 NULL
140391 +disable_so_cik_get_cu_active_bitmap_fndecl_42010 cik_get_cu_active_bitmap fndecl 0-2-3 42010 NULL
140392 +disable_so_get_max_clock_sdhci_ops_42015 get_max_clock sdhci_ops 0 42015 NULL
140393 +disable_so_svm_read_l1_tsc_fndecl_42018 svm_read_l1_tsc fndecl 0-2 42018 NULL
140394 +disable_so_dccp_feat_signal_nn_change_fndecl_42022 dccp_feat_signal_nn_change fndecl 3 42022 NULL
140395 +disable_so_e1000_test_msi_interrupt_fndecl_42028 e1000_test_msi_interrupt fndecl 0 42028 NULL
140396 +disable_so_uv_rtc_setup_clock_fndecl_42030 uv_rtc_setup_clock fndecl 0 42030 NULL
140397 +disable_so_rsa_get_e_fndecl_42032 rsa_get_e fndecl 5 42032 NULL
140398 +disable_so_set_h225_addr_fndecl_42039 set_h225_addr fndecl 2-4 42039 NULL
140399 +disable_so_next_hrtimer_event_fotg210_hcd_42040 next_hrtimer_event fotg210_hcd 0 42040 NULL
140400 +disable_so_baseaddr_m48t35_priv_42042 baseaddr m48t35_priv 0 42042 NULL
140401 +disable_so_src_high_addr_mvumi_dyn_list_entry_42046 src_high_addr mvumi_dyn_list_entry 0 42046 NULL
140402 +disable_so_address_x86_exception_42048 address x86_exception 0 42048 NULL nohasharray
140403 +disable_so_adis16480_set_freq_fndecl_42048 adis16480_set_freq fndecl 0 42048 &disable_so_address_x86_exception_42048
140404 +disable_so_skcipher_recvmsg_fndecl_42050 skcipher_recvmsg fndecl 0 42050 NULL
140405 +disable_so_uid_ncp_mount_data_v4_42052 uid ncp_mount_data_v4 0 42052 NULL
140406 +disable_so_guid_qib_pportdata_42064 guid qib_pportdata 0 42064 NULL
140407 +disable_so_usb_find_address_fndecl_42069 usb_find_address fndecl 0 42069 NULL
140408 +disable_so_crypto_comp_compress_fndecl_42075 crypto_comp_compress fndecl 3 42075 NULL
140409 +disable_so_xcan_state_interrupt_fndecl_42076 xcan_state_interrupt fndecl 2 42076 NULL
140410 +disable_so_xfs_dir2_leaf_search_hash_fndecl_42097 xfs_dir2_leaf_search_hash fndecl 0 42097 NULL
140411 +disable_so_rtl8169_interrupt_fndecl_42115 rtl8169_interrupt fndecl 1 42115 NULL
140412 +disable_so_ip_list_uid_vardecl_xt_recent_c_42144 ip_list_uid vardecl_xt_recent.c 0 42144 NULL
140413 +disable_so_request_sound_timer_fndecl_42149 request_sound_timer fndecl 1 42149 NULL nohasharray
140414 +disable_so_sof_search_timeout_stb0899_config_42149 sof_search_timeout stb0899_config 0 42149 &disable_so_request_sound_timer_fndecl_42149
140415 +disable_so_uvc_timeout_param_vardecl_42158 uvc_timeout_param vardecl 0 42158 NULL
140416 +disable_so_stv0900_get_mclk_freq_fndecl_42161 stv0900_get_mclk_freq fndecl 0-2 42161 NULL
140417 +disable_so_pch_systime_read_fndecl_42169 pch_systime_read fndecl 0 42169 NULL
140418 +disable_so_accumulate_16bit_val_fndecl_42178 accumulate_16bit_val fndecl 2 42178 NULL
140419 +disable_so_cryptd_blkcipher_enqueue_fndecl_42182 cryptd_blkcipher_enqueue fndecl 0 42182 NULL
140420 +disable_so_sjw_can_bittiming_42187 sjw can_bittiming 0 42187 NULL
140421 +disable_so_vortex_interrupt_fndecl_42189 vortex_interrupt fndecl 1 42189 NULL
140422 +disable_so_ar_addr_qla4_83xx_quad_entry_42190 ar_addr qla4_83xx_quad_entry 0 42190 NULL
140423 +disable_so_sctp_v4_from_addr_param_fndecl_42197 sctp_v4_from_addr_param fndecl 3 42197 NULL
140424 +disable_so_sda_hold_time_dw_i2c_dev_42198 sda_hold_time dw_i2c_dev 0 42198 NULL
140425 +disable_so_proc_doulongvec_ms_jiffies_minmax_fndecl_42211 proc_doulongvec_ms_jiffies_minmax fndecl 0 42211 NULL
140426 +disable_so_monitor_timeout_l2cap_chan_42212 monitor_timeout l2cap_chan 0 42212 NULL
140427 +disable_so_sys_setfsuid16_fndecl_42222 sys_setfsuid16 fndecl 0-1 42222 NULL
140428 +disable_so_rrd_ret_timer_atl1_hw_42226 rrd_ret_timer atl1_hw 0 42226 NULL nohasharray
140429 +disable_so__get_table_mindiv_fndecl_42226 _get_table_mindiv fndecl 0 42226 &disable_so_rrd_ret_timer_atl1_hw_42226
140430 +disable_so_ext4_block_bitmap_set_fndecl_42228 ext4_block_bitmap_set fndecl 3 42228 NULL
140431 +disable_so_select_timeout_pca9541_42231 select_timeout pca9541 0 42231 NULL
140432 +disable_so_id_and_color_iwl_time_event_cmd_42237 id_and_color iwl_time_event_cmd 0 42237 NULL
140433 +disable_so_map_id_down_fndecl_42241 map_id_down fndecl 0-2 42241 NULL
140434 +disable_so_usb_sleep_music_store_fndecl_42245 usb_sleep_music_store fndecl 0-4 42245 NULL
140435 +disable_so_ath6kl_sdio_func0_cmd52_wr_byte_fndecl_42251 ath6kl_sdio_func0_cmd52_wr_byte fndecl 0 42251 NULL
140436 +disable_so_bitmap_and_fndecl_42267 bitmap_and fndecl 4 42267 NULL
140437 +disable_so_tx_frame_ath_cycle_counters_42275 tx_frame ath_cycle_counters 0 42275 NULL
140438 +disable_so_hasht_dcb_output_42279 hasht dcb_output 0 42279 NULL
140439 +disable_so_xfs_btree_key_addr_fndecl_42282 xfs_btree_key_addr fndecl 2 42282 NULL
140440 +disable_so_lpfc_max_scsicmpl_time_store_fndecl_42289 lpfc_max_scsicmpl_time_store fndecl 0 42289 NULL
140441 +disable_so_ltr501_ps_write_samp_freq_fndecl_42298 ltr501_ps_write_samp_freq fndecl 0 42298 NULL
140442 +disable_so_time_zero_perf_event_mmap_page_42309 time_zero perf_event_mmap_page 0 42309 NULL nohasharray
140443 +disable_so_dmatest_random_fndecl_42309 dmatest_random fndecl 0 42309 &disable_so_time_zero_perf_event_mmap_page_42309
140444 +disable_so_sm_addr_sm501_mem_42315 sm_addr sm501_mem 0 42315 NULL
140445 +disable_so_snd_rme32_info_clockmode_control_fndecl_42323 snd_rme32_info_clockmode_control fndecl 0 42323 NULL
140446 +disable_so_max8997_rtc_set_time_fndecl_42326 max8997_rtc_set_time fndecl 0 42326 NULL nohasharray
140447 +disable_so_freq_ath6kl_mgmt_buff_42326 freq ath6kl_mgmt_buff 0 42326 &disable_so_max8997_rtc_set_time_fndecl_42326
140448 +disable_so_clk_register_divider_table_fndecl_42329 clk_register_divider_table fndecl 7-6 42329 NULL
140449 +disable_so_guid_indexes_mlx4_sriov_alias_guid_info_rec_det_42332 guid_indexes mlx4_sriov_alias_guid_info_rec_det 0 42332 NULL
140450 +disable_so_addr_cis_cache_entry_42335 addr cis_cache_entry 0 42335 NULL
140451 +disable_so_dma_addr_bnad_tx_vector_42337 dma_addr bnad_tx_vector 0 42337 NULL
140452 +disable_so_mgid_index_mlx5_qp_path_42339 mgid_index mlx5_qp_path 0 42339 NULL
140453 +disable_so_tcm_base_address_brcmf_pcie_shared_info_42357 tcm_base_address brcmf_pcie_shared_info 0 42357 NULL
140454 +disable_so_mod_timer_fndecl_42361 mod_timer fndecl 2-0 42361 NULL
140455 +disable_so_srpt_service_guid_vardecl_ib_srpt_c_42363 srpt_service_guid vardecl_ib_srpt.c 0 42363 NULL
140456 +disable_so_qat_alg_ablkcipher_init_enc_fndecl_42373 qat_alg_ablkcipher_init_enc fndecl 4 42373 NULL
140457 +disable_so_mdiv_gf100_clk_info_42375 mdiv gf100_clk_info 0 42375 NULL
140458 +disable_so__ubh_find_next_zero_bit__fndecl_42379 _ubh_find_next_zero_bit_ fndecl 0-3-4-5 42379 NULL
140459 +disable_so_tv_nsec_timespec_42383 tv_nsec timespec 0 42383 NULL
140460 +disable_so_last_timestamp_iso_context_42389 last_timestamp iso_context 0 42389 NULL
140461 +disable_so_iqaddr_fw_ri_res_cq_42408 iqaddr fw_ri_res_cq 0 42408 NULL
140462 +disable_so_proc_loginuid_write_fndecl_42419 proc_loginuid_write fndecl 3 42419 NULL
140463 +disable_so_mpeg_output_clock_rate_drxj_data_42421 mpeg_output_clock_rate drxj_data 0 42421 NULL
140464 +disable_so_fref_clock_ratio_dib0090_config_42426 fref_clock_ratio dib0090_config 0 42426 NULL
140465 +disable_so_virtnet_set_mac_address_fndecl_42429 virtnet_set_mac_address fndecl 0 42429 NULL
140466 +disable_so_panel_pwr_delay_radeon_encoder_atom_dig_42430 panel_pwr_delay radeon_encoder_atom_dig 0 42430 NULL
140467 +disable_so_timeo_nfs_parsed_mount_data_42431 timeo nfs_parsed_mount_data 0 42431 NULL
140468 +disable_so_correction_snd_timer_system_private_42446 correction snd_timer_system_private 0 42446 NULL
140469 +disable_so_intr_timer_usec_vnic_enet_config_42448 intr_timer_usec vnic_enet_config 0 42448 NULL
140470 +disable_so_id_mISDNtimer_42453 id mISDNtimer 0 42453 NULL
140471 +disable_so_i2c_algo_dp_aux_address_fndecl_42460 i2c_algo_dp_aux_address fndecl 2 42460 NULL
140472 +disable_so__register_divider_fndecl_42464 _register_divider fndecl 7-6 42464 NULL
140473 +disable_so_max8998_rtc_read_time_fndecl_42466 max8998_rtc_read_time fndecl 0 42466 NULL
140474 +disable_so_sctp_setsockopt_paddr_thresholds_fndecl_42474 sctp_setsockopt_paddr_thresholds fndecl 3-0 42474 NULL nohasharray
140475 +disable_so_stv0900_get_tuner_freq_fndecl_42474 stv0900_get_tuner_freq fndecl 0 42474 &disable_so_sctp_setsockopt_paddr_thresholds_fndecl_42474
140476 +disable_so_rt2x00crypto_tx_overhead_fndecl_42475 rt2x00crypto_tx_overhead fndecl 0 42475 NULL
140477 +disable_so_lm3533_led_delay_off_set_fndecl_42481 lm3533_led_delay_off_set fndecl 0 42481 NULL
140478 +disable_so_time_blocked_xen_spinlock_stats_42482 time_blocked xen_spinlock_stats 0 42482 NULL
140479 +disable_so_nat_ver_bitmap_bytesize_f2fs_checkpoint_42483 nat_ver_bitmap_bytesize f2fs_checkpoint 0 42483 NULL
140480 +disable_so_reg_write_fndecl_42487 reg_write fndecl 0 42487 NULL
140481 +disable_so_btrfs_insert_delayed_dir_index_fndecl_42491 btrfs_insert_delayed_dir_index fndecl 0-4-7-8 42491 NULL
140482 +disable_so_r53_val_fc2580_freq_regs_42497 r53_val fc2580_freq_regs 0 42497 NULL
140483 +disable_so_txerr_interrupt_mask_ath_hw_42499 txerr_interrupt_mask ath_hw 0 42499 NULL
140484 +disable_so_avail_max_snd_pcm_runtime_42523 avail_max snd_pcm_runtime 0 42523 NULL nohasharray
140485 +disable_so_ibx_display_interrupt_update_fndecl_42523 ibx_display_interrupt_update fndecl 3-2 42523 &disable_so_avail_max_snd_pcm_runtime_42523
140486 +disable_so_addr_hi_freelQ_e_42531 addr_hi freelQ_e 0 42531 NULL
140487 +disable_so_wrmsr_safe_regs_on_cpu_fndecl_42539 wrmsr_safe_regs_on_cpu fndecl 0-1 42539 NULL
140488 +disable_so_initial_apicid_cpuinfo_x86_42542 initial_apicid cpuinfo_x86 0 42542 NULL
140489 +disable_so_rx_ring_dma_addr_pcnet32_private_42551 rx_ring_dma_addr pcnet32_private 0 42551 NULL
140490 +disable_so_max_sleep_time_f2fs_gc_kthread_42557 max_sleep_time f2fs_gc_kthread 0 42557 NULL nohasharray
140491 +disable_so_addr_high_vring_dma_addr_42557 addr_high vring_dma_addr 0 42557 &disable_so_max_sleep_time_f2fs_gc_kthread_42557
140492 +disable_so_db_rec_addr_mlx4_srq_context_42559 db_rec_addr mlx4_srq_context 0 42559 NULL
140493 +disable_so_mmc_clock_opt_set_fndecl_42561 mmc_clock_opt_set fndecl 2 42561 NULL
140494 +disable_so_sys_setgid16_fndecl_42562 sys_setgid16 fndecl 0-1 42562 NULL
140495 +disable_so_command_width_atiixp_ide_timing_42566 command_width atiixp_ide_timing 0 42566 NULL
140496 +disable_so_cgroup_addrm_files_fndecl_42568 cgroup_addrm_files fndecl 0 42568 NULL
140497 +disable_so_nla_put_via_fndecl_42571 nla_put_via fndecl 4 42571 NULL
140498 +disable_so_flow_get_rxhash_fndecl_42572 flow_get_rxhash fndecl 0 42572 NULL
140499 +disable_so_ves1820_set_tv_freq_fndecl_42581 ves1820_set_tv_freq fndecl 2 42581 NULL
140500 +disable_so_clk_calc_subtree_fndecl_42586 clk_calc_subtree fndecl 2-4 42586 NULL
140501 +disable_so_demod_address_stb0899_config_42587 demod_address stb0899_config 0 42587 NULL
140502 +disable_so_thash_entries_vardecl_tcp_c_42589 thash_entries vardecl_tcp.c 0 42589 NULL
140503 +disable_so_clock_freq_ushc_data_42599 clock_freq ushc_data 0 42599 NULL
140504 +disable_so_VSyncEnd_xtimings_42606 VSyncEnd xtimings 0 42606 NULL
140505 +disable_so_hv_need_to_signal_fndecl_42615 hv_need_to_signal fndecl 1 42615 NULL
140506 +disable_so_rsa_get_n_fndecl_42620 rsa_get_n fndecl 5 42620 NULL
140507 +disable_so_pci_bus_write_config_dword_fndecl_42624 pci_bus_write_config_dword fndecl 0-2-3-4 42624 NULL
140508 +disable_so_gen_pool_virt_to_phys_fndecl_42628 gen_pool_virt_to_phys fndecl 2-0 42628 NULL
140509 +disable_so_brcmf_sdiod_addrprep_fndecl_42643 brcmf_sdiod_addrprep fndecl 0 42643 NULL
140510 +disable_so_mpt_loadtime_max_sectors_vardecl_mptsas_c_42653 mpt_loadtime_max_sectors vardecl_mptsas.c 0 42653 NULL
140511 +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
140512 +disable_so_rx_antdiv_shared_phy_42665 rx_antdiv shared_phy 0 42665 NULL
140513 +disable_so_uart_get_attr_custom_divisor_fndecl_42667 uart_get_attr_custom_divisor fndecl 0 42667 NULL nohasharray
140514 +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
140515 +disable_so_dib0090_write_reg_fndecl_42668 dib0090_write_reg fndecl 3 42668 NULL nohasharray
140516 +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
140517 +disable_so_bs_freqcnt_cx24113_state_42672 bs_freqcnt cx24113_state 0 42672 NULL
140518 +disable_so_netlbl_unlhsh_remove_addr6_fndecl_42673 netlbl_unlhsh_remove_addr6 fndecl 0 42673 NULL
140519 +disable_so_authenc_esn_verify_ahash_update_done2_fndecl_42674 authenc_esn_verify_ahash_update_done2 fndecl 2 42674 NULL
140520 +disable_so_last_time_megasas_instance_42679 last_time megasas_instance 0 42679 NULL
140521 +disable_so_hashval1_1_rx_pkt_hdr1_42687 hashval1_1 rx_pkt_hdr1 0 42687 NULL
140522 +disable_so_nilfs_btree_do_lookup_fndecl_42696 nilfs_btree_do_lookup fndecl 0-3 42696 NULL
140523 +disable_so_ip_vs_create_timeout_table_fndecl_42701 ip_vs_create_timeout_table fndecl 2 42701 NULL
140524 +disable_so_mesh_table_hash_fndecl_42703 mesh_table_hash fndecl 0 42703 NULL
140525 +disable_so_divide_fndecl_42710 divide fndecl 1 42710 NULL
140526 +disable_so_nilfs_btree_node_insert_fndecl_42712 nilfs_btree_node_insert fndecl 2-3 42712 NULL
140527 +disable_so_set_div_fndecl_42720 set_div fndecl 0-4 42720 NULL
140528 +disable_so_current_uuid_show_fndecl_42727 current_uuid_show fndecl 0 42727 NULL nohasharray
140529 +disable_so_nfs4_decode_mp_ds_addr_fndecl_42727 nfs4_decode_mp_ds_addr fndecl 3 42727 &disable_so_current_uuid_show_fndecl_42727
140530 +disable_so_remove_uuid_fndecl_42730 remove_uuid fndecl 0-4 42730 NULL
140531 +disable_so_bd_list_addr_lo_bnx2i_text_request_42732 bd_list_addr_lo bnx2i_text_request 0 42732 NULL
140532 +disable_so_pch_gbe_mac_mc_addr_list_update_fndecl_42738 pch_gbe_mac_mc_addr_list_update fndecl 4 42738 NULL
140533 +disable_so_tbl_addr_brcms_phy_42754 tbl_addr brcms_phy 0 42754 NULL
140534 +disable_so_addr_sch5636_data_42756 addr sch5636_data 0 42756 NULL
140535 +disable_so_hpfa_freq_cs42l56_platform_data_42759 hpfa_freq cs42l56_platform_data 0 42759 NULL
140536 +disable_so_fanout_demux_hash_fndecl_42764 fanout_demux_hash fndecl 0-3 42764 NULL
140537 +disable_so_cxgb_set_mac_addr_fndecl_42780 cxgb_set_mac_addr fndecl 0 42780 NULL
140538 +disable_so_dn_addr2asc_fndecl_42781 dn_addr2asc fndecl 1 42781 NULL
140539 +disable_so_mt9t031_runtime_resume_fndecl_42782 mt9t031_runtime_resume fndecl 0 42782 NULL
140540 +disable_so_nla_put_le64_fndecl_42786 nla_put_le64 fndecl 0 42786 NULL
140541 +disable_so_dell_rbu_dmaaddr_vardecl_dell_rbu_c_42794 dell_rbu_dmaaddr vardecl_dell_rbu.c 0 42794 NULL
140542 +disable_so_ocfs2_update_inode_atime_fndecl_42799 ocfs2_update_inode_atime fndecl 0 42799 NULL nohasharray
140543 +disable_so_pfkey_sockaddr_fill_fndecl_42799 pfkey_sockaddr_fill fndecl 2-4 42799 &disable_so_ocfs2_update_inode_atime_fndecl_42799
140544 +disable_so_vga_get_interruptible_fndecl_42803 vga_get_interruptible fndecl 0 42803 NULL
140545 +disable_so_lookup_pmd_address_fndecl_42804 lookup_pmd_address fndecl 1 42804 NULL
140546 +disable_so_i40e_set_rss_hash_opt_fndecl_42810 i40e_set_rss_hash_opt fndecl 0 42810 NULL
140547 +disable_so_from_kuid_fndecl_42812 from_kuid fndecl 0 42812 NULL
140548 +disable_so_resolution_snd_timer_gstatus_42814 resolution snd_timer_gstatus 0 42814 NULL
140549 +disable_so_demod_address_cx22700_config_42828 demod_address cx22700_config 0 42828 NULL
140550 +disable_so_mpu_start_timer_fndecl_42840 mpu_start_timer fndecl 1 42840 NULL nohasharray
140551 +disable_so_end_point_addr_cx231xx_audio_42840 end_point_addr cx231xx_audio 0 42840 &disable_so_mpu_start_timer_fndecl_42840
140552 +disable_so_hpwdt_change_timer_fndecl_42850 hpwdt_change_timer fndecl 1 42850 NULL nohasharray
140553 +disable_so_host_addr_hw_cmd_42850 host_addr hw_cmd 0 42850 &disable_so_hpwdt_change_timer_fndecl_42850
140554 +disable_so_update_gid_fndecl_42874 update_gid fndecl 3 42874 NULL
140555 +disable_so_read_div_fndecl_42880 read_div fndecl 0 42880 NULL nohasharray
140556 +disable_so_SYSC_setpgid_fndecl_42880 SYSC_setpgid fndecl 1-2 42880 &disable_so_read_div_fndecl_42880
140557 +disable_so_exptime_mpath_info_42881 exptime mpath_info 0 42881 NULL
140558 +disable_so_count_netdev_hw_addr_list_42886 count netdev_hw_addr_list 0 42886 NULL
140559 +disable_so___sel_hash_fndecl_42890 __sel_hash fndecl 0-2-3 42890 NULL
140560 +disable_so_cipher_rt2x00lib_crypto_42894 cipher rt2x00lib_crypto 0 42894 NULL
140561 +disable_so___dequeue_signal_fndecl_42904 __dequeue_signal fndecl 0 42904 NULL
140562 +disable_so_uid_dpot_data_42905 uid dpot_data 0 42905 NULL
140563 +disable_so_tc_index_bitmap_bits_asd_seq_data_42910 tc_index_bitmap_bits asd_seq_data 0 42910 NULL
140564 +disable_so_ablkcipher_copy_iv_fndecl_42911 ablkcipher_copy_iv fndecl 3 42911 NULL
140565 +disable_so_pci_pm_runtime_resume_fndecl_42917 pci_pm_runtime_resume fndecl 0 42917 NULL
140566 +disable_so_default_sclk_radeon_clock_42919 default_sclk radeon_clock 0 42919 NULL
140567 +disable_so_register_inet6addr_notifier_fndecl_42932 register_inet6addr_notifier fndecl 0 42932 NULL nohasharray
140568 +disable_so_e1000_rx_hash_fndecl_42932 e1000_rx_hash fndecl 2 42932 &disable_so_register_inet6addr_notifier_fndecl_42932
140569 +disable_so_isl1208_rtc_set_time_fndecl_42933 isl1208_rtc_set_time fndecl 0 42933 NULL nohasharray
140570 +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
140571 +disable_so_host_addr_io_accel1_cmd_42933 host_addr io_accel1_cmd 0 42933 &disable_so_ringid_wmi_vring_ba_en_cmd_42933
140572 +disable_so_uwb_rc_dev_addr_assign_fndecl_42936 uwb_rc_dev_addr_assign fndecl 0 42936 NULL
140573 +disable_so_address_vme_bus_error_42937 address vme_bus_error 0 42937 NULL nohasharray
140574 +disable_so_cma_bind_addr_fndecl_42937 cma_bind_addr fndecl 0 42937 &disable_so_address_vme_bus_error_42937
140575 +disable_so_cyapa_gen5_set_interval_time_fndecl_42941 cyapa_gen5_set_interval_time fndecl 0-3 42941 NULL
140576 +disable_so_ecx_tss_segment_32_42952 ecx tss_segment_32 0 42952 NULL
140577 +disable_so_percentage_divider_radeon_atom_ss_42955 percentage_divider radeon_atom_ss 0 42955 NULL
140578 +disable_so_timeout_sg_fd_42956 timeout sg_fd 0 42956 NULL
140579 +disable_so_ftdi_2232h_baud_base_to_divisor_fndecl_42957 ftdi_2232h_baud_base_to_divisor fndecl 0-1-2 42957 NULL
140580 +disable_so_mcryptd_hash_update_fndecl_42959 mcryptd_hash_update fndecl 2 42959 NULL
140581 +disable_so_iqaddr_csio_iq_params_42960 iqaddr csio_iq_params 0 42960 NULL
140582 +disable_so_head_wb_addr_i40e_hmc_obj_txq_42977 head_wb_addr i40e_hmc_obj_txq 0 42977 NULL nohasharray
140583 +disable_so_written_btree_42977 written btree 0 42977 &disable_so_head_wb_addr_i40e_hmc_obj_txq_42977
140584 +disable_so___btrfs_update_delayed_inode_fndecl_42987 __btrfs_update_delayed_inode fndecl 0 42987 NULL
140585 +disable_so_af9005_fe_sleep_fndecl_42988 af9005_fe_sleep fndecl 0 42988 NULL nohasharray
140586 +disable_so_counter_address_p4_counter_binding_42988 counter_address p4_counter_binding 0 42988 &disable_so_af9005_fe_sleep_fndecl_42988
140587 +disable_so_alt_timeout_ib_qp_attr_42989 alt_timeout ib_qp_attr 0 42989 NULL
140588 +disable_so_db_record_addr_mlx5_cq_context_43002 db_record_addr mlx5_cq_context 0 43002 NULL nohasharray
140589 +disable_so_rhashtable_insert_rehash_fndecl_43002 rhashtable_insert_rehash fndecl 0 43002 &disable_so_db_record_addr_mlx5_cq_context_43002
140590 +disable_so_zd1201_set_mac_address_fndecl_43003 zd1201_set_mac_address fndecl 0 43003 NULL
140591 +disable_so_scs_init_hss_address_fndecl_43016 scs_init_hss_address fndecl 0 43016 NULL
140592 +disable_so_hash_fndecl_43020 hash fndecl 0 43020 NULL
140593 +disable_so_hpi_tuner_get_hd_radio_signal_blend_fndecl_43025 hpi_tuner_get_hd_radio_signal_blend fndecl 0-1 43025 NULL
140594 +disable_so_rt_runtime_rt_rq_43033 rt_runtime rt_rq 0 43033 NULL
140595 +disable_so_dbi_bw_timer_mipi_config_43043 dbi_bw_timer mipi_config 0 43043 NULL
140596 +disable_so_bch_btree_op_init_fndecl_43045 bch_btree_op_init fndecl 2 43045 NULL
140597 +disable_so_ctl_mce_bank_43048 ctl mce_bank 0 43048 NULL
140598 +disable_so_io_addr_ips_ha_43051 io_addr ips_ha 0 43051 NULL
140599 +disable_so_ucode_beacon_time_iwl_priv_43063 ucode_beacon_time iwl_priv 0 43063 NULL
140600 +disable_so_fast_clip_ctrl_delay_s_cfg_agc_43064 fast_clip_ctrl_delay s_cfg_agc 0 43064 NULL
140601 +disable_so_read_interrupt_status_fndecl_43075 read_interrupt_status fndecl 0 43075 NULL
140602 +disable_so_suspend_time_nv04_timer_priv_43078 suspend_time nv04_timer_priv 0 43078 NULL
140603 +disable_so_nl80211_send_mlme_timeout_fndecl_43081 nl80211_send_mlme_timeout fndecl 5 43081 NULL
140604 +disable_so_xfs_uuid_table_size_vardecl_xfs_mount_c_43090 xfs_uuid_table_size vardecl_xfs_mount.c 0 43090 NULL
140605 +disable_so_bitmap_allocate_region_fndecl_43093 bitmap_allocate_region fndecl 2-3 43093 NULL
140606 +disable_so_timeouts_show_fndecl_43114 timeouts_show fndecl 0 43114 NULL
140607 +disable_so_lm8323_pwm_store_time_fndecl_43123 lm8323_pwm_store_time fndecl 0 43123 NULL nohasharray
140608 +disable_so_crypto_register_instance_fndecl_43123 crypto_register_instance fndecl 0 43123 &disable_so_lm8323_pwm_store_time_fndecl_43123
140609 +disable_so_acpi_map_vaddr_lookup_fndecl_43126 acpi_map_vaddr_lookup fndecl 1-2 43126 NULL nohasharray
140610 +disable_so_bitclk_freq_fsl_ssi_private_43126 bitclk_freq fsl_ssi_private 0 43126 &disable_so_acpi_map_vaddr_lookup_fndecl_43126
140611 +disable_so_retranscount_nes_timer_entry_43129 retranscount nes_timer_entry 0 43129 NULL
140612 +disable_so_driver_timestamp_qla8044_minidump_template_hdr_43138 driver_timestamp qla8044_minidump_template_hdr 0 43138 NULL
140613 +disable_so_rtl8187_iowrite_async_fndecl_43147 rtl8187_iowrite_async fndecl 4-2 43147 NULL
140614 +disable_so_gcm_hash_crypt_remain_continue_fndecl_43164 gcm_hash_crypt_remain_continue fndecl 0 43164 NULL
140615 +disable_so_timeout_usbdevfs_ctrltransfer_43171 timeout usbdevfs_ctrltransfer 0 43171 NULL
140616 +disable_so_addr_snd_ac97_43179 addr snd_ac97 0 43179 NULL
140617 +disable_so_snd_timer_user_start_fndecl_43188 snd_timer_user_start fndecl 0 43188 NULL
140618 +disable_so_div_f0_pll_values_43197 div_f0 pll_values 0 43197 NULL
140619 +disable_so_tx_watchdog_timeout_conf_tx_settings_43198 tx_watchdog_timeout conf_tx_settings 0 43198 NULL
140620 +disable_so_demod_address_stv0297_config_43206 demod_address stv0297_config 0 43206 NULL nohasharray
140621 +disable_so_stv090x_write_reg_fndecl_43206 stv090x_write_reg fndecl 3-0 43206 &disable_so_demod_address_stv0297_config_43206
140622 +disable_so_atomic64_sub_return_fndecl_43214 atomic64_sub_return fndecl 0-1 43214 NULL
140623 +disable_so_select_addr_2_qla8044_minidump_entry_rdmux2_43220 select_addr_2 qla8044_minidump_entry_rdmux2 0 43220 NULL
140624 +disable_so_pixel_clock_radeon_encoder_43221 pixel_clock radeon_encoder 0 43221 NULL
140625 +disable_so_rdmsr_safe_on_cpu_fndecl_43222 rdmsr_safe_on_cpu fndecl 0-1 43222 NULL
140626 +disable_so_adav80x_set_dac_clock_fndecl_43226 adav80x_set_dac_clock fndecl 2 43226 NULL
140627 +disable_so_rc5t583_rtc_read_time_fndecl_43238 rc5t583_rtc_read_time fndecl 0 43238 NULL nohasharray
140628 +disable_so_bitmap_zero_fndecl_43238 bitmap_zero fndecl 2 43238 &disable_so_rc5t583_rtc_read_time_fndecl_43238
140629 +disable_so_vid_from_reg_fndecl_43258 vid_from_reg fndecl 0-1 43258 NULL
140630 +disable_so_page_dp83640_clock_43262 page dp83640_clock 0 43262 NULL
140631 +disable_so_mthca_SW2HW_SRQ_fndecl_43263 mthca_SW2HW_SRQ fndecl 0-3 43263 NULL
140632 +disable_so_tea5777_freq_to_v4l2_freq_fndecl_43267 tea5777_freq_to_v4l2_freq fndecl 0-2 43267 NULL
140633 +disable_so_addr_lo_eth_rx_bd_43268 addr_lo eth_rx_bd 0 43268 NULL
140634 +disable_so_timeout_nf_conntrack_expect_policy_43269 timeout nf_conntrack_expect_policy 0 43269 NULL
140635 +disable_so_read_addr___mux_43284 read_addr __mux 0 43284 NULL
140636 +disable_so_start_address___osdv2_cdb_addr_len_43285 start_address __osdv2_cdb_addr_len 0 43285 NULL
140637 +disable_so_frac_bot_pll_div_43287 frac_bot pll_div 0 43287 NULL
140638 +disable_so_batadv_bitmap_shift_left_fndecl_43296 batadv_bitmap_shift_left fndecl 2 43296 NULL
140639 +disable_so_btrfs_timespec_sec_fndecl_43304 btrfs_timespec_sec fndecl 0 43304 NULL
140640 +disable_so_atime_cifs_unix_set_info_args_43311 atime cifs_unix_set_info_args 0 43311 NULL
140641 +disable_so_id_bitmap_port_adt_elem_43312 id bitmap_port_adt_elem 0 43312 NULL
140642 +disable_so_hsize_std_timing_43315 hsize std_timing 0 43315 NULL
140643 +disable_so_addr_wusb_dev_43323 addr wusb_dev 0 43323 NULL
140644 +disable_so_dma_addr_zynqmp_qspi_43329 dma_addr zynqmp_qspi 0 43329 NULL
140645 +disable_so_flash_timeout_max77693_sub_led_43338 flash_timeout max77693_sub_led 0 43338 NULL nohasharray
140646 +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
140647 +disable_so_cypress_get_mclk_frequency_ratio_fndecl_43339 cypress_get_mclk_frequency_ratio fndecl 0-2 43339 NULL
140648 +disable_so_running_clock_fndecl_43341 running_clock fndecl 0 43341 NULL
140649 +disable_so_snd_echo_clock_source_info_fndecl_43348 snd_echo_clock_source_info fndecl 0 43348 NULL
140650 +disable_so_random_id_operand_ib_cm_43350 random_id_operand ib_cm 0 43350 NULL
140651 +disable_so_il3945_build_tx_cmd_hwcrypto_fndecl_43368 il3945_build_tx_cmd_hwcrypto fndecl 5 43368 NULL
140652 +disable_so_regcache_lzo_decompress_cache_block_fndecl_43370 regcache_lzo_decompress_cache_block fndecl 0 43370 NULL
140653 +disable_so_rv6xx_memory_clock_entry_set_feedback_divider_fndecl_43374 rv6xx_memory_clock_entry_set_feedback_divider fndecl 3 43374 NULL
140654 +disable_so_timer_expires_rts51x_chip_43381 timer_expires rts51x_chip 0 43381 NULL
140655 +disable_so_bond_alb_set_mac_address_fndecl_43392 bond_alb_set_mac_address fndecl 0 43392 NULL
140656 +disable_so_write_leasetime_fndecl_43394 write_leasetime fndecl 0 43394 NULL
140657 +disable_so_ftdi_232am_baud_to_divisor_fndecl_43399 ftdi_232am_baud_to_divisor fndecl 0-1 43399 NULL
140658 +disable_so_jiffies_be_aic_obj_43400 jiffies be_aic_obj 0 43400 NULL
140659 +disable_so_timer_jiffies_tvec_base_43403 timer_jiffies tvec_base 0 43403 NULL
140660 +disable_so___ip6addrlbl_add_fndecl_43404 __ip6addrlbl_add fndecl 0 43404 NULL
140661 +disable_so_sd_ctime_stat_data_v1_43407 sd_ctime stat_data_v1 0 43407 NULL
140662 +disable_so_check_timers_list_fndecl_43411 check_timers_list fndecl 0-3 43411 NULL
140663 +disable_so_addr2_dir_table_slot_43416 addr2 dir_table_slot 0 43416 NULL
140664 +disable_so_bch_btree_map_nodes_fndecl_43426 bch_btree_map_nodes fndecl 0 43426 NULL
140665 +disable_so_burst_bclkdiv_tlv320dac33_priv_43428 burst_bclkdiv tlv320dac33_priv 0 43428 NULL
140666 +disable_so_cx24116_read_signal_strength_fndecl_43436 cx24116_read_signal_strength fndecl 0 43436 NULL
140667 +disable_so_xferq_addr_lo_fcoe_kwqe_conn_offload2_43439 xferq_addr_lo fcoe_kwqe_conn_offload2 0 43439 NULL
140668 +disable_so_timeout_bfa_timer_s_43448 timeout bfa_timer_s 0 43448 NULL
140669 +disable_so_ocfs2_wait_for_mask_interruptible_fndecl_43456 ocfs2_wait_for_mask_interruptible fndecl 0 43456 NULL
140670 +disable_so_stream_timeout_nf_ct_gre_43468 stream_timeout nf_ct_gre 0 43468 NULL
140671 +disable_so_sample_div_st_rc_device_43474 sample_div st_rc_device 0 43474 NULL
140672 +disable_so_crypto_shash_finup_fndecl_43475 crypto_shash_finup fndecl 0-3 43475 NULL
140673 +disable_so_current_frequency_lg216x_state_43480 current_frequency lg216x_state 0 43480 NULL
140674 +disable_so_error_sha1_hash_ctx_43486 error sha1_hash_ctx 0 43486 NULL
140675 +disable_so_link_up_time_swStat_43487 link_up_time swStat 0 43487 NULL
140676 +disable_so_qce_ablkcipher_setkey_fndecl_43494 qce_ablkcipher_setkey fndecl 0-3 43494 NULL
140677 +disable_so_timeout_msec_TAG_TW_Lock_43496 timeout_msec TAG_TW_Lock 0 43496 NULL
140678 +disable_so_mcs7830_hif_get_mac_address_fndecl_43507 mcs7830_hif_get_mac_address fndecl 0 43507 NULL
140679 +disable_so_show_fan_time_fndecl_43512 show_fan_time fndecl 0 43512 NULL
140680 +disable_so_x25_display_timer_fndecl_43519 x25_display_timer fndecl 0 43519 NULL
140681 +disable_so_address_m920x_inits_43524 address m920x_inits 0 43524 NULL
140682 +disable_so_msr_extra_reg_43525 msr extra_reg 0 43525 NULL
140683 +disable_so_hashm_nv50_disp_mthd_v1_43528 hashm nv50_disp_mthd_v1 0 43528 NULL
140684 +disable_so_get_dvbt_signal_to_noise_fndecl_43531 get_dvbt_signal_to_noise fndecl 0 43531 NULL
140685 +disable_so_snd_seq_oss_timer_start_fndecl_43533 snd_seq_oss_timer_start fndecl 0 43533 NULL
140686 +disable_so_ath5k_hw_register_timeout_fndecl_43537 ath5k_hw_register_timeout fndecl 0-3-4 43537 NULL
140687 +disable_so_slave_addr_intel_sdvo_43549 slave_addr intel_sdvo 0 43549 NULL
140688 +disable_so_buf_addr_rocker_desc_43555 buf_addr rocker_desc 0 43555 NULL
140689 +disable_so_bCSourceID_uac_clock_multiplier_descriptor_43558 bCSourceID uac_clock_multiplier_descriptor 0 43558 NULL nohasharray
140690 +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
140691 +disable_so_nla_put_u8_fndecl_43558 nla_put_u8 fndecl 0-3 43558 &disable_so_scsi_reset_delay_adveep_38C1600_config_43558
140692 +disable_so_udp4_portaddr_hash_fndecl_43560 udp4_portaddr_hash fndecl 0-2-3 43560 NULL
140693 +disable_so_port_clock_intel_crtc_state_43564 port_clock intel_crtc_state 0 43564 NULL
140694 +disable_so_cpufreq_update_policy_fndecl_43580 cpufreq_update_policy fndecl 0-1 43580 NULL nohasharray
140695 +disable_so_crypto_rfc4106_setauthsize_fndecl_43580 crypto_rfc4106_setauthsize fndecl 2 43580 &disable_so_cpufreq_update_policy_fndecl_43580
140696 +disable_so_pm_schedule_suspend_fndecl_43585 pm_schedule_suspend fndecl 2-0 43585 NULL
140697 +disable_so_HSyncStart_xtimings_43588 HSyncStart xtimings 0 43588 NULL
140698 +disable_so_write_seq_tcp_sock_43590 write_seq tcp_sock 0 43590 NULL
140699 +disable_so_orion_spi_50mhz_ac_timing_erratum_fndecl_43600 orion_spi_50mhz_ac_timing_erratum fndecl 2 43600 NULL
140700 +disable_so_set_clock_vml_sys_43602 set_clock vml_sys 2 43602 NULL
140701 +disable_so_sample_to_timespec_fndecl_43603 sample_to_timespec fndecl 2-1 43603 NULL
140702 +disable_so_ib_find_gid_fndecl_43614 ib_find_gid fndecl 0 43614 NULL
140703 +disable_so_ath9k_hw_set_sifs_time_fndecl_43616 ath9k_hw_set_sifs_time fndecl 2 43616 NULL
140704 +disable_so_snd_als4000_set_addr_fndecl_43620 snd_als4000_set_addr fndecl 1 43620 NULL
140705 +disable_so_dma_addr_as102_dev_t_43627 dma_addr as102_dev_t 0 43627 NULL
140706 +disable_so_gcm_hash_crypt_remain_done_fndecl_43636 gcm_hash_crypt_remain_done fndecl 2 43636 NULL
140707 +disable_so_msm6242_read_time_fndecl_43640 msm6242_read_time fndecl 0 43640 NULL
140708 +disable_so_last_tick_timer_local_info_43641 last_tick_timer local_info 0 43641 NULL
140709 +disable_so_guid_show_fndecl_43648 guid_show fndecl 0 43648 NULL
140710 +disable_so_key_set_timeout_fndecl_43649 key_set_timeout fndecl 2 43649 NULL
140711 +disable_so_abx80x_rtc_read_time_fndecl_43656 abx80x_rtc_read_time fndecl 0 43656 NULL
140712 +disable_so_freq_wmi_ch_info_ev_arg_43659 freq wmi_ch_info_ev_arg 0 43659 NULL
140713 +disable_so___delayacct_blkio_ticks_fndecl_43660 __delayacct_blkio_ticks fndecl 0 43660 NULL
140714 +disable_so_base_dwell_time_conf_sched_scan_settings_43662 base_dwell_time conf_sched_scan_settings 0 43662 NULL
140715 +disable_so_ps_upsd_max_sptime_read_fndecl_43665 ps_upsd_max_sptime_read fndecl 3-0 43665 NULL
140716 +disable_so_sis190_get_mac_addr_fndecl_43671 sis190_get_mac_addr fndecl 0 43671 NULL
140717 +disable_so_pll_loopdiv_dibx090p_best_adc_43673 pll_loopdiv dibx090p_best_adc 0 43673 NULL
140718 +disable_so_first_uid_gid_extent_43687 first uid_gid_extent 0 43687 NULL
140719 +disable_so_des2_idmac_desc_64addr_43704 des2 idmac_desc_64addr 0 43704 NULL
140720 +disable_so_irq_get_irq_data_fndecl_43708 irq_get_irq_data fndecl 1 43708 NULL
140721 +disable_so_mask_mlx4_bitmap_43716 mask mlx4_bitmap 0 43716 NULL
140722 +disable_so_time_stamp_ixgbe_tx_buffer_43717 time_stamp ixgbe_tx_buffer 0 43717 NULL
140723 +disable_so_tx_frequency_wl1273_device_43727 tx_frequency wl1273_device 0 43727 NULL
140724 +disable_so_divider_round_rate_fndecl_43731 divider_round_rate fndecl 2-0-5 43731 NULL
140725 +disable_so_delay_bfa_iocfc_intr_attr_s_43734 delay bfa_iocfc_intr_attr_s 0 43734 NULL
140726 +disable_so_dccp_elapsed_time_len_fndecl_43735 dccp_elapsed_time_len fndecl 0 43735 NULL
140727 +disable_so_uwb_rc_addr_set_fndecl_43736 uwb_rc_addr_set fndecl 0 43736 NULL
140728 +disable_so_add_delayed_data_ref_fndecl_43738 add_delayed_data_ref fndecl 10-12-5-6-7-8-9 43738 NULL
140729 +disable_so_double_bit_error_detect_fndecl_43740 double_bit_error_detect fndecl 4 43740 NULL
140730 +disable_so_pc_clock_gettime_fndecl_43750 pc_clock_gettime fndecl 1 43750 NULL
140731 +disable_so_ts_tgid_owner_gru_thread_state_43760 ts_tgid_owner gru_thread_state 0 43760 NULL
140732 +disable_so_hpet_set_periodic_freq_fndecl_43764 hpet_set_periodic_freq fndecl 1 43764 NULL
140733 +disable_so___vmw_piter_sg_addr_fndecl_43770 __vmw_piter_sg_addr fndecl 0 43770 NULL
140734 +disable_so_ipmi_validate_addr_fndecl_43771 ipmi_validate_addr fndecl 2 43771 NULL
140735 +disable_so_delay_fb_deferred_io_43773 delay fb_deferred_io 0 43773 NULL
140736 +disable_so_fixed_mtrr_addr_to_seg_fndecl_43774 fixed_mtrr_addr_to_seg fndecl 1 43774 NULL nohasharray
140737 +disable_so___bitmap_equal_fndecl_43774 __bitmap_equal fndecl 3 43774 &disable_so_fixed_mtrr_addr_to_seg_fndecl_43774
140738 +disable_so_igb_check_for_bit_pf_fndecl_43775 igb_check_for_bit_pf fndecl 2 43775 NULL
140739 +disable_so_led_override_timeoff_qib_pportdata_43779 led_override_timeoff qib_pportdata 0 43779 NULL
140740 +disable_so_wd_timeout_il_cfg_43781 wd_timeout il_cfg 0 43781 NULL
140741 +disable_so_addr_kvm_io_range_43786 addr kvm_io_range 0 43786 NULL
140742 +disable_so_sleep_millisecs_show_fndecl_43792 sleep_millisecs_show fndecl 0 43792 NULL
140743 +disable_so_rpc_set_queue_timer_fndecl_43797 rpc_set_queue_timer fndecl 2 43797 NULL
140744 +disable_so_ksz9031_center_flp_timing_fndecl_43804 ksz9031_center_flp_timing fndecl 0 43804 NULL
140745 +disable_so_kstrtoull_from_user_fndecl_43809 kstrtoull_from_user fndecl 2 43809 NULL
140746 +disable_so_numa_get_avg_runtime_fndecl_43810 numa_get_avg_runtime fndecl 0 43810 NULL
140747 +disable_so_max77693_led_flash_timeout_set_fndecl_43811 max77693_led_flash_timeout_set fndecl 2 43811 NULL
140748 +disable_so_mlx4_reset_roce_port_gids_fndecl_43816 mlx4_reset_roce_port_gids fndecl 0-2-3 43816 NULL
140749 +disable_so_interrupt_level_vardecl_fdomain_c_43820 interrupt_level vardecl_fdomain.c 0 43820 NULL nohasharray
140750 +disable_so_crypto_ahash_finup_fndecl_43820 crypto_ahash_finup fndecl 0 43820 &disable_so_interrupt_level_vardecl_fdomain_c_43820
140751 +disable_so_block_bitmap_ext4_new_group_data_43822 block_bitmap ext4_new_group_data 0 43822 NULL
140752 +disable_so_timer_stats_update_stats_fndecl_43829 timer_stats_update_stats fndecl 2 43829 NULL
140753 +disable_so___nilfs_btree_get_block_fndecl_43845 __nilfs_btree_get_block fndecl 0-2 43845 NULL
140754 +disable_so_wait_on_bit_lock_io_fndecl_43852 wait_on_bit_lock_io fndecl 0 43852 NULL
140755 +disable_so_authenc_esn_geniv_ahash_update_done_fndecl_43855 authenc_esn_geniv_ahash_update_done fndecl 2 43855 NULL
140756 +disable_so_pre_event_timeout_vardecl_sequencer_c_43856 pre_event_timeout vardecl_sequencer.c 0 43856 NULL nohasharray
140757 +disable_so_last_rx_time_net_local_43856 last_rx_time net_local 0 43856 &disable_so_pre_event_timeout_vardecl_sequencer_c_43856
140758 +disable_so_run_delayed_tree_ref_fndecl_43857 run_delayed_tree_ref fndecl 0 43857 NULL
140759 +disable_so_radio_addr_saa7134_board_43862 radio_addr saa7134_board 0 43862 NULL
140760 +disable_so_hor_total_via_display_timing_43866 hor_total via_display_timing 0 43866 NULL
140761 +disable_so_mem_addr_pch_dma_desc_regs_43867 mem_addr pch_dma_desc_regs 0 43867 NULL
140762 +disable_so_addr_Vmxnet3_TxDesc_43868 addr Vmxnet3_TxDesc 0 43868 NULL
140763 +disable_so_set_ras_addr_fndecl_43869 set_ras_addr fndecl 4 43869 NULL
140764 +disable_so_cpuidle_register_fndecl_43887 cpuidle_register fndecl 0 43887 NULL
140765 +disable_so_start_seq_tcp_sack_block_43898 start_seq tcp_sack_block 0 43898 NULL
140766 +disable_so_seq_default_timer_subdevice_vardecl_43912 seq_default_timer_subdevice vardecl 0 43912 NULL
140767 +disable_so_pci_bus_update_busn_res_end_fndecl_43918 pci_bus_update_busn_res_end fndecl 2-0 43918 NULL
140768 +disable_so_qdisc_watchdog_schedule_ns_fndecl_43926 qdisc_watchdog_schedule_ns fndecl 2 43926 NULL
140769 +disable_so_sys_timer_create_fndecl_43937 sys_timer_create fndecl 1 43937 NULL
140770 +disable_so_atmel_spi_runtime_resume_fndecl_43938 atmel_spi_runtime_resume fndecl 0 43938 NULL nohasharray
140771 +disable_so_zd1201_set_freq_fndecl_43938 zd1201_set_freq fndecl 0 43938 &disable_so_atmel_spi_runtime_resume_fndecl_43938
140772 +disable_so_gid_fuse_setattr_in_43939 gid fuse_setattr_in 0 43939 NULL
140773 +disable_so_bit_putcs_aligned_fndecl_43966 bit_putcs_aligned fndecl 5-6-7-8 43966 NULL
140774 +disable_so_log_mc_hash_sz_mlx4_init_hca_param_43973 log_mc_hash_sz mlx4_init_hca_param 0 43973 NULL
140775 +disable_so_igb_write_8bit_ctrl_reg_fndecl_43984 igb_write_8bit_ctrl_reg fndecl 2 43984 NULL
140776 +disable_so_r50_val_fc2580_freq_regs_43992 r50_val fc2580_freq_regs 0 43992 NULL
140777 +disable_so_ccp_aes_xts_encrypt_fndecl_43996 ccp_aes_xts_encrypt fndecl 0 43996 NULL
140778 +disable_so_tty_unregister_device_fndecl_44000 tty_unregister_device fndecl 2 44000 NULL
140779 +disable_so_bus_addr_vnic_dev_bar_44006 bus_addr vnic_dev_bar 0 44006 NULL
140780 +disable_so_pcf8523_rtc_set_time_fndecl_44007 pcf8523_rtc_set_time fndecl 0 44007 NULL
140781 +disable_so_dq_hash_mask_vardecl_dquot_c_44015 dq_hash_mask vardecl_dquot.c 0 44015 NULL
140782 +disable_so_device_addr_lm87_tx_hdr_44016 device_addr lm87_tx_hdr 0 44016 NULL
140783 +disable_so__kstrtoull_fndecl_44018 _kstrtoull fndecl 0 44018 NULL
140784 +disable_so_brcmf_sdiod_set_sbaddr_window_fndecl_44019 brcmf_sdiod_set_sbaddr_window fndecl 0-2 44019 NULL
140785 +disable_so_drbd_adm_new_c_uuid_fndecl_44035 drbd_adm_new_c_uuid fndecl 0 44035 NULL
140786 +disable_so_signal_hostap_80211_rx_status_44041 signal hostap_80211_rx_status 0 44041 NULL
140787 +disable_so_enqueue_time_codel_skb_cb_44046 enqueue_time codel_skb_cb 0 44046 NULL
140788 +disable_so_conv_clk_and_div_n_pcr_ops_44049 conv_clk_and_div_n pcr_ops 0-1 44049 NULL
140789 +disable_so_ep93xx_spi_calc_divisors_fndecl_44051 ep93xx_spi_calc_divisors fndecl 0-2 44051 NULL
140790 +disable_so_j_trans_start_time_reiserfs_journal_44058 j_trans_start_time reiserfs_journal 0 44058 NULL
140791 +disable_so_cvt_kvaddr_fndecl_44079 cvt_kvaddr fndecl 0 44079 NULL
140792 +disable_so_tm_mon_rtc_time_44080 tm_mon rtc_time 0 44080 NULL
140793 +disable_so_uart_get_divisor_fndecl_44085 uart_get_divisor fndecl 0-2 44085 NULL
140794 +disable_so_spn_obj_sockaddr_pn_44086 spn_obj sockaddr_pn 0 44086 NULL
140795 +disable_so_cur_start_addr_sisusb_usb_data_44091 cur_start_addr sisusb_usb_data 0 44091 NULL nohasharray
140796 +disable_so___vma_address_fndecl_44091 __vma_address fndecl 0 44091 &disable_so_cur_start_addr_sisusb_usb_data_44091
140797 +disable_so_read_systime_fm10k_mac_ops_44092 read_systime fm10k_mac_ops 0 44092 NULL
140798 +disable_so_nfsd_map_name_to_gid_fndecl_44096 nfsd_map_name_to_gid fndecl 0 44096 NULL
140799 +disable_so_mthca_cmd_box_fndecl_44108 mthca_cmd_box fndecl 7-0-2-4-3 44108 NULL nohasharray
140800 +disable_so_chv_clock_fndecl_44108 chv_clock fndecl 1 44108 &disable_so_mthca_cmd_box_fndecl_44108
140801 +disable_so_ironlake_pch_transcoder_set_timings_fndecl_44115 ironlake_pch_transcoder_set_timings fndecl 2 44115 NULL
140802 +disable_so___br_ip4_hash_fndecl_44134 __br_ip4_hash fndecl 0 44134 NULL
140803 +disable_so_divider_recalc_rate_fndecl_44140 divider_recalc_rate fndecl 3-0-2 44140 NULL nohasharray
140804 +disable_so_reg_id_res_gid_44140 reg_id res_gid 0 44140 &disable_so_divider_recalc_rate_fndecl_44140
140805 +disable_so_dev_rst_time_qlcnic_adapter_44150 dev_rst_time qlcnic_adapter 0 44150 NULL
140806 +disable_so_nsec_ptp_clock_time_44160 nsec ptp_clock_time 0 44160 NULL
140807 +disable_so_node_count_hfs_btree_44162 node_count hfs_btree 0 44162 NULL
140808 +disable_so_iscsit_na_dataout_timeout_fndecl_44167 iscsit_na_dataout_timeout fndecl 2-0 44167 NULL nohasharray
140809 +disable_so_idletimer_ax25_info_struct_44167 idletimer ax25_info_struct 0 44167 &disable_so_iscsit_na_dataout_timeout_fndecl_44167
140810 +disable_so_btrfs_delayed_qgroup_accounting_fndecl_44171 btrfs_delayed_qgroup_accounting fndecl 0 44171 NULL
140811 +disable_so_t4_wr_mbox_timeout_fndecl_44177 t4_wr_mbox_timeout fndecl 2 44177 NULL
140812 +disable_so_db_addr_mlx4_ib_create_qp_44182 db_addr mlx4_ib_create_qp 0 44182 NULL nohasharray
140813 +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
140814 +disable_so_ipath_pkt_delay_fndecl_44185 ipath_pkt_delay fndecl 0-1-2-3 44185 NULL nohasharray
140815 +disable_so_cycle_state_xhci_ring_44185 cycle_state xhci_ring 0 44185 &disable_so_ipath_pkt_delay_fndecl_44185
140816 +disable_so_phys_dma_addr_r852_device_44187 phys_dma_addr r852_device 0 44187 NULL
140817 +disable_so_nopin_response_timeout_iscsi_node_attrib_44188 nopin_response_timeout iscsi_node_attrib 0 44188 NULL
140818 +disable_so_lkey_mthca_resize_cq_44197 lkey mthca_resize_cq 0 44197 NULL
140819 +disable_so_rx_timeout_netdev_private_44200 rx_timeout netdev_private 0 44200 NULL
140820 +disable_so_naddr_qib_user_sdma_pkt_44203 naddr qib_user_sdma_pkt 0 44203 NULL
140821 +disable_so_block_to_cpu_fndecl_44212 block_to_cpu fndecl 0 44212 NULL
140822 +disable_so_read_tail_n_tty_data_44226 read_tail n_tty_data 0 44226 NULL
140823 +disable_so_bssidx_rt2x00lib_crypto_44239 bssidx rt2x00lib_crypto 0 44239 NULL
140824 +disable_so_number_pci_bus_44243 number pci_bus 0 44243 NULL
140825 +disable_so_watchdog_timeout_w83793_data_44253 watchdog_timeout w83793_data 0 44253 NULL
140826 +disable_so_cz_clock_intel_rps_ei_44276 cz_clock intel_rps_ei 0 44276 NULL
140827 +disable_so_proc_gid_map_open_fndecl_44293 proc_gid_map_open fndecl 0 44293 NULL
140828 +disable_so_r2d_val_fc2580_freq_regs_44295 r2d_val fc2580_freq_regs 0 44295 NULL
140829 +disable_so_wm8510_set_dai_clkdiv_fndecl_44299 wm8510_set_dai_clkdiv fndecl 3 44299 NULL
140830 +disable_so_otime_jfs_inode_info_44300 otime jfs_inode_info 0 44300 NULL
140831 +disable_so_rss_hash_be_rx_compl_info_44306 rss_hash be_rx_compl_info 0 44306 NULL
140832 +disable_so_radio_tx_freq_vivid_dev_44308 radio_tx_freq vivid_dev 0 44308 NULL
140833 +disable_so_smbhash_fndecl_44311 smbhash fndecl 0 44311 NULL
140834 +disable_so_nla_put_in6_addr_fndecl_44317 nla_put_in6_addr fndecl 0 44317 NULL
140835 +disable_so_fll_ref_freq__fll_div_44318 fll_ref_freq _fll_div 0 44318 NULL
140836 +disable_so_prandom_bytes_state_fndecl_44332 prandom_bytes_state fndecl 3 44332 NULL
140837 +disable_so_base_dma_addr_srp_map_state_44343 base_dma_addr srp_map_state 0 44343 NULL
140838 +disable_so_addr_intel_plane_error_state_44366 addr intel_plane_error_state 0 44366 NULL
140839 +disable_so_start_addr_acpi_memory_info_44372 start_addr acpi_memory_info 0 44372 NULL
140840 +disable_so_bitmap_cpg_ocfs2_super_44373 bitmap_cpg ocfs2_super 0 44373 NULL
140841 +disable_so_interval_zd_usb_interrupt_44381 interval zd_usb_interrupt 0 44381 NULL
140842 +disable_so_neigh_proc_dointvec_ms_jiffies_fndecl_44384 neigh_proc_dointvec_ms_jiffies fndecl 0 44384 NULL
140843 +disable_so_fsl_esai_divisor_cal_fndecl_44386 fsl_esai_divisor_cal fndecl 5-3 44386 NULL
140844 +disable_so_sync_single_for_device_dma_map_ops_44393 sync_single_for_device dma_map_ops 2-3 44393 NULL
140845 +disable_so_cl_lease_time_nfs_client_44400 cl_lease_time nfs_client 0 44400 NULL
140846 +disable_so_asd_get_user_sas_addr_fndecl_44401 asd_get_user_sas_addr fndecl 0 44401 NULL
140847 +disable_so_ss_tss_segment_16_44415 ss tss_segment_16 0 44415 NULL
140848 +disable_so_ave_beacon_signal_ieee80211_if_managed_44440 ave_beacon_signal ieee80211_if_managed 0 44440 NULL
140849 +disable_so_smsc911x_hash_fndecl_44443 smsc911x_hash fndecl 0 44443 NULL
140850 +disable_so_flow_hash_from_keys_fndecl_44444 flow_hash_from_keys fndecl 0 44444 NULL
140851 +disable_so_addr_vt8231_data_44455 addr vt8231_data 0 44455 NULL
140852 +disable_so_drm_fixp_mul_fndecl_44461 drm_fixp_mul fndecl 0-1-2 44461 NULL
140853 +disable_so_bind_evtchn_to_cpu_fndecl_44464 bind_evtchn_to_cpu fndecl 2-1 44464 NULL
140854 +disable_so_rdma_set_reuseaddr_fndecl_44469 rdma_set_reuseaddr fndecl 0 44469 NULL
140855 +disable_so_vx_calc_clock_from_freq_fndecl_44479 vx_calc_clock_from_freq fndecl 0-2 44479 NULL
140856 +disable_so_rs_conn_addr_rds_sock_44482 rs_conn_addr rds_sock 0 44482 NULL
140857 +disable_so_decode_attr_time_delta_fndecl_44484 decode_attr_time_delta fndecl 0 44484 NULL nohasharray
140858 +disable_so_xfs_btree_get_bufs_fndecl_44484 xfs_btree_get_bufs fndecl 3-4 44484 &disable_so_decode_attr_time_delta_fndecl_44484
140859 +disable_so_zd_chip_set_multicast_hash_fndecl_44491 zd_chip_set_multicast_hash fndecl 0 44491 NULL
140860 +disable_so_write32_async_rtl_io_44499 write32_async rtl_io 2-3 44499 NULL
140861 +disable_so_tcf_hashinfo_init_fndecl_44504 tcf_hashinfo_init fndecl 2 44504 NULL
140862 +disable_so_buffer_addr_atl1c_rx_free_desc_44505 buffer_addr atl1c_rx_free_desc 0 44505 NULL
140863 +disable_so_rqq_addr_hi_addr_ctrl_blk_44511 rqq_addr_hi addr_ctrl_blk 0 44511 NULL
140864 +disable_so_max_pll_spi_speed_pll_clock_map_44513 max_pll_spi_speed pll_clock_map 0 44513 NULL
140865 +disable_so_read_addr_qla8xxx_minidump_entry_mux_44516 read_addr qla8xxx_minidump_entry_mux 0 44516 NULL
140866 +disable_so_abx500_set_register_interruptible_fndecl_44521 abx500_set_register_interruptible fndecl 0-4 44521 NULL
140867 +disable_so_range_startk_var_mtrr_state_44530 range_startk var_mtrr_state 0 44530 NULL
140868 +disable_so_dev_idx_sockaddr_nfc_44533 dev_idx sockaddr_nfc 0 44533 NULL
140869 +disable_so_query_dv_timings_vivid_dev_44543 query_dv_timings vivid_dev 0 44543 NULL
140870 +disable_so_saddr_ircomm_tty_cb_44557 saddr ircomm_tty_cb 0 44557 NULL
140871 +disable_so_schedule_delay_balloon_stats_44561 schedule_delay balloon_stats 0 44561 NULL
140872 +disable_so___start_cp_addr_fndecl_44569 __start_cp_addr fndecl 0 44569 NULL
140873 +disable_so_m41t94_read_time_fndecl_44577 m41t94_read_time fndecl 0 44577 NULL
140874 +disable_so_set_pte_vaddr_fndecl_44586 set_pte_vaddr fndecl 1 44586 NULL
140875 +disable_so_sctp_getsockopt_peer_addrs_fndecl_44593 sctp_getsockopt_peer_addrs fndecl 0 44593 NULL
140876 +disable_so_lu_reset_timeout_iscsi_session_44595 lu_reset_timeout iscsi_session 0 44595 NULL
140877 +disable_so_jade_interrupt_fndecl_44602 jade_interrupt fndecl 2 44602 NULL nohasharray
140878 +disable_so_ebx_smm_regs_44602 ebx smm_regs 0 44602 &disable_so_jade_interrupt_fndecl_44602 nohasharray
140879 +disable_so_nilfs_btree_prepare_insert_fndecl_44602 nilfs_btree_prepare_insert fndecl 0-4 44602 &disable_so_ebx_smm_regs_44602
140880 +disable_so_pcf50633_rtc_read_time_fndecl_44606 pcf50633_rtc_read_time fndecl 0 44606 NULL
140881 +disable_so_active_time_evergreen_wm_params_44608 active_time evergreen_wm_params 0 44608 NULL
140882 +disable_so_flags_inet6_ifaddr_44611 flags inet6_ifaddr 0 44611 NULL
140883 +disable_so_sioaddr_watchdog_data_44614 sioaddr watchdog_data 0 44614 NULL
140884 +disable_so_sense_addr_adv_scsi_req_q_44624 sense_addr adv_scsi_req_q 0 44624 NULL
140885 +disable_so_maxfrags_snd_pcm_oss_runtime_44625 maxfrags snd_pcm_oss_runtime 0 44625 NULL
140886 +disable_so_settle_delay_usecs_ads7846_platform_data_44627 settle_delay_usecs ads7846_platform_data 0 44627 NULL
140887 +disable_so_get_random_int_fndecl_44628 get_random_int fndecl 0 44628 NULL
140888 +disable_so_ahash_def_finup_finish1_fndecl_44631 ahash_def_finup_finish1 fndecl 0-2 44631 NULL
140889 +disable_so_calib_time_b43_lo_calib_44633 calib_time b43_lo_calib 0 44633 NULL
140890 +disable_so_timespec_to_jiffies_fndecl_44642 timespec_to_jiffies fndecl 0 44642 NULL
140891 +disable_so_secid_netlbl_unlhsh_addr4_44654 secid netlbl_unlhsh_addr4 0 44654 NULL
140892 +disable_so_tcp_init_nondata_skb_fndecl_44656 tcp_init_nondata_skb fndecl 2 44656 NULL
140893 +disable_so_time_start_nfs_fattr_44666 time_start nfs_fattr 0 44666 NULL
140894 +disable_so_nilfs_dev_uuid_show_fndecl_44683 nilfs_dev_uuid_show fndecl 0 44683 NULL
140895 +disable_so_prctl_get_tid_address_fndecl_44684 prctl_get_tid_address fndecl 0 44684 NULL
140896 +disable_so_rq_addr_t3_wq_44688 rq_addr t3_wq 0 44688 NULL
140897 +disable_so_lpfc_max_scsicmpl_time_vardecl_lpfc_attr_c_44694 lpfc_max_scsicmpl_time vardecl_lpfc_attr.c 0 44694 NULL
140898 +disable_so_show_guid_fndecl_44695 show_guid fndecl 0 44695 NULL
140899 +disable_so_rsi_cmd52writebyte_fndecl_44700 rsi_cmd52writebyte fndecl 0-2-3 44700 NULL
140900 +disable_so_rx_rx_timeout_read_fndecl_44710 rx_rx_timeout_read fndecl 3 44710 NULL
140901 +disable_so_fw_localtime_wl_fw_status_44711 fw_localtime wl_fw_status 0 44711 NULL
140902 +disable_so_sm501_calc_clock_fndecl_44717 sm501_calc_clock fndecl 1-4 44717 NULL
140903 +disable_so_address_radio_20xx_regs_44719 address radio_20xx_regs 0 44719 NULL
140904 +disable_so_round_jiffies_common_fndecl_44723 round_jiffies_common fndecl 0-2-1 44723 NULL
140905 +disable_so_offtime_cbq_class_44730 offtime cbq_class 0 44730 NULL
140906 +disable_so_cur_clock_rtsx_pcr_44731 cur_clock rtsx_pcr 0 44731 NULL
140907 +disable_so_cik_set_uvd_clocks_fndecl_44739 cik_set_uvd_clocks fndecl 3-2-0 44739 NULL
140908 +disable_so_write_reg_sja1000_priv_44741 write_reg sja1000_priv 3 44741 NULL
140909 +disable_so_leaf_tail_hfs_btree_44745 leaf_tail hfs_btree 0 44745 NULL
140910 +disable_so_ui_ctime_ufs2_inode_44748 ui_ctime ufs2_inode 0 44748 NULL nohasharray
140911 +disable_so_addr_it87_data_44748 addr it87_data 0 44748 &disable_so_ui_ctime_ufs2_inode_44748
140912 +disable_so_add_time_xfrm_lifetime_cur_44766 add_time xfrm_lifetime_cur 0 44766 NULL
140913 +disable_so_genwqe_debugfs_curr_dbg_uid1_open_fndecl_44769 genwqe_debugfs_curr_dbg_uid1_open fndecl 0 44769 NULL
140914 +disable_so_espibug_timeout_sge_44778 espibug_timeout sge 0 44778 NULL
140915 +disable_so_buffer_addr_pch_gbe_tx_desc_44790 buffer_addr pch_gbe_tx_desc 0 44790 NULL
140916 +disable_so_crypto_shash_init_fndecl_44815 crypto_shash_init fndecl 0 44815 NULL
140917 +disable_so_get_evtchn_to_irq_fndecl_44824 get_evtchn_to_irq fndecl 0-1 44824 NULL nohasharray
140918 +disable_so_jhash2_fndecl_44824 jhash2 fndecl 0-2-3 44824 &disable_so_get_evtchn_to_irq_fndecl_44824
140919 +disable_so_s_mtime_nilfs_super_block_44839 s_mtime nilfs_super_block 0 44839 NULL
140920 +disable_so_nilfs_segctor_last_nongc_write_time_show_fndecl_44843 nilfs_segctor_last_nongc_write_time_show fndecl 0 44843 NULL
140921 +disable_so_usec_delay_ixgbe_mbx_info_44850 usec_delay ixgbe_mbx_info 0 44850 NULL
140922 +disable_so_ecryptfs_cipher_code_to_string_fndecl_44859 ecryptfs_cipher_code_to_string fndecl 0 44859 NULL
140923 +disable_so_ieee802154_hdr_get_addr_fndecl_44863 ieee802154_hdr_get_addr fndecl 0 44863 NULL
140924 +disable_so_ecp_write_addr_parport_operations_44867 ecp_write_addr parport_operations 0 44867 NULL
140925 +disable_so_mtrr_add_page_fndecl_44881 mtrr_add_page fndecl 1-2 44881 NULL
140926 +disable_so_snd_via686_interrupt_fndecl_44897 snd_via686_interrupt fndecl 1 44897 NULL nohasharray
140927 +disable_so_minor_hash_dx_hash_info_44897 minor_hash dx_hash_info 0 44897 &disable_so_snd_via686_interrupt_fndecl_44897
140928 +disable_so_i2c_addr_dmi_onboard_device_info_44901 i2c_addr dmi_onboard_device_info 0 44901 NULL
140929 +disable_so_tcp_conn_schedule_fndecl_44909 tcp_conn_schedule fndecl 1 44909 NULL nohasharray
140930 +disable_so_udelay_fm10k_mbx_info_44909 udelay fm10k_mbx_info 0 44909 &disable_so_tcp_conn_schedule_fndecl_44909
140931 +disable_so_c_timestamp_svc_cacherep_44918 c_timestamp svc_cacherep 0 44918 NULL
140932 +disable_so_timeout_mpt2_ioctl_command_44920 timeout mpt2_ioctl_command 0 44920 NULL
140933 +disable_so_sk_lingertime_sock_44923 sk_lingertime sock 0 44923 NULL
140934 +disable_so_latency_timer_hpp_type0_44929 latency_timer hpp_type0 0 44929 NULL
140935 +disable_so_mtime_squashfs_base_inode_44930 mtime squashfs_base_inode 0 44930 NULL
140936 +disable_so_rpc_peeraddr_fndecl_44940 rpc_peeraddr fndecl 0-3 44940 NULL
140937 +disable_so_dsap_sockaddr_nfc_llcp_44945 dsap sockaddr_nfc_llcp 0 44945 NULL
140938 +disable_so_shash_ahash_mcryptd_finup_fndecl_44946 shash_ahash_mcryptd_finup fndecl 0 44946 NULL
140939 +disable_so_SiS_SetRegANDOR_fndecl_44947 SiS_SetRegANDOR fndecl 1-2-3-4 44947 NULL
140940 +disable_so_cpu_timer_sample_group_fndecl_44962 cpu_timer_sample_group fndecl 1 44962 NULL
140941 +disable_so_key_timeout_rpc_authops_44963 key_timeout rpc_authops 0 44963 NULL
140942 +disable_so_proc_uid_map_open_fndecl_44967 proc_uid_map_open fndecl 0 44967 NULL
140943 +disable_so_spp_pathmtu_sctp_paddrparams_44974 spp_pathmtu sctp_paddrparams 0 44974 NULL
140944 +disable_so_b43_radio_write_fndecl_44980 b43_radio_write fndecl 3 44980 NULL
140945 +disable_so_level_btree_44981 level btree 0 44981 NULL
140946 +disable_so_shift_clocksource_44992 shift clocksource 0 44992 NULL
140947 +disable_so_mount_timeout_ceph_options_44999 mount_timeout ceph_options 0 44999 NULL
140948 +disable_so_igmp_start_timer_fndecl_45000 igmp_start_timer fndecl 2 45000 NULL
140949 +disable_so_force_addr_vardecl_via686a_c_45006 force_addr vardecl_via686a.c 0 45006 NULL
140950 +disable_so_ahash_wait_fndecl_45017 ahash_wait fndecl 0-1 45017 NULL
140951 +disable_so_acpi_pm_device_sleep_wake_fndecl_45036 acpi_pm_device_sleep_wake fndecl 0 45036 NULL
140952 +disable_so_palette_qxl_bitmap_45040 palette qxl_bitmap 0 45040 NULL
140953 +disable_so_subdevice_snd_timer_id_45046 subdevice snd_timer_id 0 45046 NULL
140954 +disable_so_demod_address_sp887x_config_45051 demod_address sp887x_config 0 45051 NULL
140955 +disable_so_end_address_acpi_address_range_45053 end_address acpi_address_range 0 45053 NULL
140956 +disable_so_fm_rx_get_band_freq_range_fndecl_45055 fm_rx_get_band_freq_range fndecl 0 45055 NULL
140957 +disable_so_tcp_time_wait_fndecl_45056 tcp_time_wait fndecl 3-2 45056 NULL nohasharray
140958 +disable_so_mlx4_ib_gen_node_guid_fndecl_45056 mlx4_ib_gen_node_guid fndecl 0 45056 &disable_so_tcp_time_wait_fndecl_45056
140959 +disable_so_gpio_get_value_cansleep_fndecl_45065 gpio_get_value_cansleep fndecl 0-1 45065 NULL
140960 +disable_so_max6900_i2c_read_time_fndecl_45069 max6900_i2c_read_time fndecl 0 45069 NULL
140961 +disable_so_sys_futimesat_fndecl_45070 sys_futimesat fndecl 1 45070 NULL
140962 +disable_so_genwqe_debugfs_prev_dbg_uid2_open_fndecl_45072 genwqe_debugfs_prev_dbg_uid2_open fndecl 0 45072 NULL
140963 +disable_so_cmd_attr_register_cpumask_fndecl_45074 cmd_attr_register_cpumask fndecl 0 45074 NULL
140964 +disable_so_hdspm_get_aes_sample_rate_fndecl_45076 hdspm_get_aes_sample_rate fndecl 2 45076 NULL
140965 +disable_so_set_magic_time_fndecl_45079 set_magic_time fndecl 3-2-1 45079 NULL
140966 +disable_so_pci_bus_alloc_from_region_fndecl_45084 pci_bus_alloc_from_region fndecl 5-3-4 45084 NULL
140967 +disable_so_set_pending_timer_val_fndecl_45111 set_pending_timer_val fndecl 2 45111 NULL
140968 +disable_so_i_ctime_nsec_f2fs_inode_45121 i_ctime_nsec f2fs_inode 0 45121 NULL nohasharray
140969 +disable_so_s_mtime_ext3_super_block_45121 s_mtime ext3_super_block 0 45121 &disable_so_i_ctime_nsec_f2fs_inode_45121
140970 +disable_so_inet_csk_reset_keepalive_timer_fndecl_45127 inet_csk_reset_keepalive_timer fndecl 2 45127 NULL
140971 +disable_so_x25_addr_ntoa_fndecl_45136 x25_addr_ntoa fndecl 0 45136 NULL
140972 +disable_so_ltimeout_ia_vcc_45137 ltimeout ia_vcc 0 45137 NULL
140973 +disable_so_high_addr_msgbuf_buf_addr_45142 high_addr msgbuf_buf_addr 0 45142 NULL
140974 +disable_so_pit_calibrate_tsc_fndecl_45149 pit_calibrate_tsc fndecl 0-2 45149 NULL
140975 +disable_so_fw_dma_addr_sproc_45154 fw_dma_addr sproc 0 45154 NULL
140976 +disable_so_addr_lola_bar_45160 addr lola_bar 0 45160 NULL
140977 +disable_so_set_normalized_timespec_fndecl_45161 set_normalized_timespec fndecl 2-3 45161 NULL
140978 +disable_so_lp8788_show_eoc_time_fndecl_45162 lp8788_show_eoc_time fndecl 0 45162 NULL
140979 +disable_so_set_ageing_time_fndecl_45172 set_ageing_time fndecl 2 45172 NULL
140980 +disable_so_address_radio_regs_45181 address radio_regs 0 45181 NULL
140981 +disable_so_do_set_sock_timeout_fndecl_45197 do_set_sock_timeout fndecl 0-5 45197 NULL
140982 +disable_so_bootaddr_mic_device_45198 bootaddr mic_device 0 45198 NULL
140983 +disable_so_ext4_max_bitmap_size_fndecl_45201 ext4_max_bitmap_size fndecl 0-1 45201 NULL
140984 +disable_so_rapl_compute_time_window_atom_fndecl_45202 rapl_compute_time_window_atom fndecl 0-2 45202 NULL
140985 +disable_so_di_atime_nsec_gfs2_dinode_45214 di_atime_nsec gfs2_dinode 0 45214 NULL
140986 +disable_so_watchdog_get_timeout_fndecl_45215 watchdog_get_timeout fndecl 0 45215 NULL
140987 +disable_so_undertime_tc_cbq_xstats_45217 undertime tc_cbq_xstats 0 45217 NULL
140988 +disable_so_trace_clock_fndecl_45219 trace_clock fndecl 0 45219 NULL
140989 +disable_so_usb_bulk_msg_fndecl_45230 usb_bulk_msg fndecl 0-4-2-6 45230 NULL
140990 +disable_so_clock_es1968_45231 clock es1968 0 45231 NULL
140991 +disable_so_fillvaddr_gru_tlb_fault_handle_45245 fillvaddr gru_tlb_fault_handle 0 45245 NULL
140992 +disable_so_blocksize_crypto_report_blkcipher_45248 blocksize crypto_report_blkcipher 0 45248 NULL
140993 +disable_so_cdc_ncm_store_tx_timer_usecs_fndecl_45252 cdc_ncm_store_tx_timer_usecs fndecl 0-4 45252 NULL
140994 +disable_so_uv_nmi_loop_delay_vardecl_uv_nmi_c_45253 uv_nmi_loop_delay vardecl_uv_nmi.c 0 45253 NULL
140995 +disable_so_default_timer_slack_ns_task_struct_45261 default_timer_slack_ns task_struct 0 45261 NULL
140996 +disable_so_tsc_offset_adjustment_kvm_vcpu_arch_45263 tsc_offset_adjustment kvm_vcpu_arch 0 45263 NULL
140997 +disable_so_bf_buf_addr_ath_buf_45279 bf_buf_addr ath_buf 0 45279 NULL
140998 +disable_so_xen_clocksource_read_fndecl_45285 xen_clocksource_read fndecl 0 45285 NULL
140999 +disable_so_iscsi_nacl_attrib_store_dataout_timeout_fndecl_45292 iscsi_nacl_attrib_store_dataout_timeout fndecl 0-3 45292 NULL
141000 +disable_so_r8_kvm_regs_45295 r8 kvm_regs 0 45295 NULL
141001 +disable_so_w1_master_attribute_show_timeout_fndecl_45297 w1_master_attribute_show_timeout fndecl 0 45297 NULL
141002 +disable_so_uuid_show_fallback_fndecl_45299 uuid_show_fallback fndecl 0 45299 NULL
141003 +disable_so_nv04_timer_read_fndecl_45300 nv04_timer_read fndecl 0 45300 NULL
141004 +disable_so_write_port_cfg_addr_mvs_dispatch_45302 write_port_cfg_addr mvs_dispatch 2 45302 NULL
141005 +disable_so_ixgbevf_check_for_bit_vf_fndecl_45303 ixgbevf_check_for_bit_vf fndecl 2 45303 NULL
141006 +disable_so_radio_syn_reserved_addr29_b43_nphy_channeltab_entry_rev3_45310 radio_syn_reserved_addr29 b43_nphy_channeltab_entry_rev3 0 45310 NULL
141007 +disable_so_blkcipher_walk_first_fndecl_45312 blkcipher_walk_first fndecl 0 45312 NULL
141008 +disable_so_add_interrupt_randomness_fndecl_45315 add_interrupt_randomness fndecl 1-2 45315 NULL
141009 +disable_so_lg2160_set_spi_clock_fndecl_45319 lg2160_set_spi_clock fndecl 0 45319 NULL
141010 +disable_so_scaled_div32_fndecl_45321 scaled_div32 fndecl 0-1-2 45321 NULL
141011 +disable_so_spkt_protocol_sockaddr_pkt_45330 spkt_protocol sockaddr_pkt 0 45330 NULL
141012 +disable_so_drain_timeout_xenvif_45332 drain_timeout xenvif 0 45332 NULL
141013 +disable_so_sysctl_tcp_fin_timeout_vardecl_45335 sysctl_tcp_fin_timeout vardecl 0 45335 NULL
141014 +disable_so_dlm_dump_rsb_hash_fndecl_45352 dlm_dump_rsb_hash fndecl 2 45352 NULL
141015 +disable_so_get_idle_time_fndecl_45358 get_idle_time fndecl 1-0 45358 NULL
141016 +disable_so_demod_address_ves1x93_config_45359 demod_address ves1x93_config 0 45359 NULL
141017 +disable_so_hid_sensor_write_samp_freq_value_fndecl_45374 hid_sensor_write_samp_freq_value fndecl 2-3 45374 NULL
141018 +disable_so_tuner_addr_saa7134_dev_45377 tuner_addr saa7134_dev 0 45377 NULL
141019 +disable_so_index_ptp_clock_45382 index ptp_clock 0 45382 NULL
141020 +disable_so_rbd_dev_v2_header_onetime_fndecl_45386 rbd_dev_v2_header_onetime fndecl 0 45386 NULL
141021 +disable_so_xfs_btree_make_block_unfull_fndecl_45388 xfs_btree_make_block_unfull fndecl 3-0 45388 NULL
141022 +disable_so_crypto_shash_setkey_fndecl_45392 crypto_shash_setkey fndecl 0-3 45392 NULL
141023 +disable_so_seq_devkmsg_user_45410 seq devkmsg_user 0 45410 NULL
141024 +disable_so_ad799x_read_frequency_fndecl_45414 ad799x_read_frequency fndecl 0 45414 NULL
141025 +disable_so_gid_ceph_mds_reply_inode_45416 gid ceph_mds_reply_inode 0 45416 NULL
141026 +disable_so_zl10036_set_frequency_fndecl_45420 zl10036_set_frequency fndecl 2 45420 NULL
141027 +disable_so_backlight_duty_cycle_drm_psb_private_45424 backlight_duty_cycle drm_psb_private 0 45424 NULL
141028 +disable_so_devm_kvasprintf_fndecl_45431 devm_kvasprintf fndecl 2 45431 NULL
141029 +disable_so_nvif_object_wr_fndecl_45438 nvif_object_wr fndecl 4-3 45438 NULL
141030 +disable_so_expires_rpc_timer_45444 expires rpc_timer 0 45444 NULL
141031 +disable_so_resource_address_pmcraid_config_table_entry_45452 resource_address pmcraid_config_table_entry 0 45452 NULL nohasharray
141032 +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
141033 +disable_so_dev_addr_c67x00_td_45452 dev_addr c67x00_td 0 45452 &disable_so_timer_active_bfa_fcdiag_qtest_s_45452
141034 +disable_so_asd_write_reg_word_fndecl_45465 asd_write_reg_word fndecl 2-3 45465 NULL
141035 +disable_so_time_started_btrfs_dev_replace_45480 time_started btrfs_dev_replace 0 45480 NULL
141036 +disable_so_btrfs_add_delayed_tree_ref_fndecl_45481 btrfs_add_delayed_tree_ref fndecl 0-10-3-4-5-6-7 45481 NULL
141037 +disable_so_i2c_addr_fc2580_config_45482 i2c_addr fc2580_config 0 45482 NULL
141038 +disable_so_device_missing_delay__MPT_ADAPTER_45485 device_missing_delay _MPT_ADAPTER 0 45485 NULL
141039 +disable_so_pdiv_skl_wrpll_params_45498 pdiv skl_wrpll_params 0 45498 NULL
141040 +disable_so_fast_RR_timeout_irlap_cb_45499 fast_RR_timeout irlap_cb 0 45499 NULL
141041 +disable_so_usb_control_msg_fndecl_45507 usb_control_msg fndecl 8-0-2-9-5-4-6-3 45507 NULL
141042 +disable_so_cpu_to_vhost16_fndecl_45510 cpu_to_vhost16 fndecl 2 45510 NULL
141043 +disable_so_vma_interval_tree_compute_subtree_last_fndecl_45515 vma_interval_tree_compute_subtree_last fndecl 0 45515 NULL
141044 +disable_so_paddr_mwifiex_evt_buf_desc_45527 paddr mwifiex_evt_buf_desc 0 45527 NULL nohasharray
141045 +disable_so_saddr_lap_cb_45527 saddr lap_cb 0 45527 &disable_so_paddr_mwifiex_evt_buf_desc_45527
141046 +disable_so_nilfs_btree_find_target_v_fndecl_45528 nilfs_btree_find_target_v fndecl 0-3 45528 NULL
141047 +disable_so_pagf_btreeblks_xfs_perag_45534 pagf_btreeblks xfs_perag 0 45534 NULL
141048 +disable_so_reestablish_timeout_rpc_xprt_45538 reestablish_timeout rpc_xprt 0 45538 NULL
141049 +disable_so_show_falltime_fndecl_45545 show_falltime fndecl 0 45545 NULL
141050 +disable_so_tl_time_tcon_link_45553 tl_time tcon_link 0 45553 NULL nohasharray
141051 +disable_so_address_ips_sglist_45553 address ips_sglist 0 45553 &disable_so_tl_time_tcon_link_45553
141052 +disable_so_phy_address_bcmgenet_platform_data_45558 phy_address bcmgenet_platform_data 0 45558 NULL
141053 +disable_so_seq_kern_ipc_perm_45559 seq kern_ipc_perm 0 45559 NULL
141054 +disable_so_verify_cpufreq_driver_45564 verify cpufreq_driver 0 45564 NULL
141055 +disable_so_mcp795_set_time_fndecl_45573 mcp795_set_time fndecl 0 45573 NULL
141056 +disable_so_sw_beacon_response_time_ath9k_ops_config_45576 sw_beacon_response_time ath9k_ops_config 0 45576 NULL
141057 +disable_so_postsleep_min_us_mmc_ioc_cmd_45584 postsleep_min_us mmc_ioc_cmd 0 45584 NULL
141058 +disable_so_write_reg_c_can_priv_45594 write_reg c_can_priv 3 45594 NULL
141059 +disable_so_first_frag_time_prism2_frag_entry_45596 first_frag_time prism2_frag_entry 0 45596 NULL
141060 +disable_so_rsa_init_fndecl_45605 rsa_init fndecl 0 45605 NULL
141061 +disable_so_laddr_c2wr_ae_active_connect_results_45607 laddr c2wr_ae_active_connect_results 0 45607 NULL nohasharray
141062 +disable_so_base_kvm_mtrr_range_45607 base kvm_mtrr_range 0 45607 &disable_so_laddr_c2wr_ae_active_connect_results_45607
141063 +disable_so_readfreq_si476x_rsq_status_report_45610 readfreq si476x_rsq_status_report 0 45610 NULL
141064 +disable_so_gss_krb5_aes_encrypt_fndecl_45613 gss_krb5_aes_encrypt fndecl 0-2 45613 NULL
141065 +disable_so_igmp_ifc_start_timer_fndecl_45616 igmp_ifc_start_timer fndecl 2 45616 NULL
141066 +disable_so_usb_addr_u132_endp_45622 usb_addr u132_endp 0 45622 NULL
141067 +disable_so_manage_tempaddrs_fndecl_45628 manage_tempaddrs fndecl 3-4-6 45628 NULL
141068 +disable_so_win_mask_latch_addr_flash_info_45634 win_mask latch_addr_flash_info 0 45634 NULL
141069 +disable_so_tx_delay_rk_priv_data_45645 tx_delay rk_priv_data 0 45645 NULL
141070 +disable_so_addr_high_viafb_vx855_dma_descr_45656 addr_high viafb_vx855_dma_descr 0 45656 NULL
141071 +disable_so_snd_asihpi_tuner_freq_info_fndecl_45664 snd_asihpi_tuner_freq_info fndecl 0 45664 NULL
141072 +disable_so_spt_assoc_id_sctp_paddrthlds_45665 spt_assoc_id sctp_paddrthlds 0 45665 NULL
141073 +disable_so_xtfpga_i2s_runtime_resume_fndecl_45670 xtfpga_i2s_runtime_resume fndecl 0 45670 NULL
141074 +disable_so_T44_address_mxt_data_45677 T44_address mxt_data 0 45677 NULL
141075 +disable_so_crypto_cbc_encrypt_fndecl_45683 crypto_cbc_encrypt fndecl 0-4 45683 NULL
141076 +disable_so_clockrate_ath_common_45695 clockrate ath_common 0 45695 NULL
141077 +disable_so_wakeup_timer_p54_common_45703 wakeup_timer p54_common 0 45703 NULL
141078 +disable_so_regulator_set_voltage_time_fndecl_45707 regulator_set_voltage_time fndecl 0 45707 NULL
141079 +disable_so_i2c_addr_isl6405_45720 i2c_addr isl6405 0 45720 NULL
141080 +disable_so_allocate_va_range_i915_address_space_45728 allocate_va_range i915_address_space 2-3 45728 NULL
141081 +disable_so_lx_interrupt_test_ack_fndecl_45736 lx_interrupt_test_ack fndecl 0 45736 NULL
141082 +disable_so_set_msr_mce_fndecl_45738 set_msr_mce fndecl 3 45738 NULL
141083 +disable_so_ircomm_tty_start_watchdog_timer_fndecl_45741 ircomm_tty_start_watchdog_timer fndecl 2 45741 NULL
141084 +disable_so_mount_time_nfs_server_45742 mount_time nfs_server 0 45742 NULL
141085 +disable_so_padata_cpu_hash_fndecl_45743 padata_cpu_hash fndecl 0 45743 NULL
141086 +disable_so_mtime_sec_ubifs_ino_node_45747 mtime_sec ubifs_ino_node 0 45747 NULL nohasharray
141087 +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
141088 +disable_so_set_static_address_fndecl_45752 set_static_address fndecl 0 45752 NULL
141089 +disable_so_cmos_interrupt_fndecl_45753 cmos_interrupt fndecl 1 45753 NULL
141090 +disable_so_addr_buffer_rcv_desc_45761 addr_buffer rcv_desc 0 45761 NULL
141091 +disable_so_leddc_off_time_ssb_sprom_45764 leddc_off_time ssb_sprom 0 45764 NULL
141092 +disable_so_ext4_page_crypto_fndecl_45770 ext4_page_crypto fndecl 4 45770 NULL
141093 +disable_so_dqb_itime_if_dqblk_45773 dqb_itime if_dqblk 0 45773 NULL
141094 +disable_so_addr_nvme_user_io_45777 addr nvme_user_io 0 45777 NULL
141095 +disable_so_split_timeout_jiffies_fw_card_45779 split_timeout_jiffies fw_card 0 45779 NULL
141096 +disable_so_buf_addr_mlx4_ib_create_qp_45781 buf_addr mlx4_ib_create_qp 0 45781 NULL
141097 +disable_so_dax_get_addr_fndecl_45788 dax_get_addr fndecl 0-3 45788 NULL
141098 +disable_so_select_addr_qla8044_minidump_entry_pollrd_45815 select_addr qla8044_minidump_entry_pollrd 0 45815 NULL nohasharray
141099 +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
141100 +disable_so_hwt_wait_time_fndecl_45826 hwt_wait_time fndecl 2 45826 NULL
141101 +disable_so_j_timestamp_reiserfs_journal_list_45839 j_timestamp reiserfs_journal_list 0 45839 NULL
141102 +disable_so_kxcjk1013_setup_new_data_interrupt_fndecl_45841 kxcjk1013_setup_new_data_interrupt fndecl 0 45841 NULL
141103 +disable_so_c2_add_addr_fndecl_45842 c2_add_addr fndecl 2-3 45842 NULL
141104 +disable_so_saddr_ip_tunnel_dst_45850 saddr ip_tunnel_dst 0 45850 NULL
141105 +disable_so_timeout_cdrom_generic_command_45854 timeout cdrom_generic_command 0 45854 NULL
141106 +disable_so_tdm_delay_aic3x_priv_45859 tdm_delay aic3x_priv 0 45859 NULL
141107 +disable_so_toshiba_usb_sleep_charge_get_fndecl_45863 toshiba_usb_sleep_charge_get fndecl 0 45863 NULL
141108 +disable_so_acpi_subsys_runtime_resume_fndecl_45871 acpi_subsys_runtime_resume fndecl 0 45871 NULL
141109 +disable_so_azx_command_addr_fndecl_45877 azx_command_addr fndecl 0-1 45877 NULL
141110 +disable_so_node_guid_ib_device_45878 node_guid ib_device 0 45878 NULL
141111 +disable_so_time_unit_rapl_package_45880 time_unit rapl_package 0 45880 NULL
141112 +disable_so_bw_timer_intel_dsi_45883 bw_timer intel_dsi 0 45883 NULL nohasharray
141113 +disable_so_sys_signalfd4_fndecl_45883 sys_signalfd4 fndecl 4 45883 &disable_so_bw_timer_intel_dsi_45883
141114 +disable_so_addr_st_ss_sgitem_45905 addr st_ss_sgitem 0 45905 NULL
141115 +disable_so_setlightfreq_fndecl_45914 setlightfreq fndecl 2 45914 NULL
141116 +disable_so_sis_ata33_program_udma_timings_fndecl_45916 sis_ata33_program_udma_timings fndecl 2 45916 NULL nohasharray
141117 +disable_so_str2hashbuf_fndecl_45916 str2hashbuf fndecl 2 45916 &disable_so_sis_ata33_program_udma_timings_fndecl_45916
141118 +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
141119 +disable_so_dbm_antsignal_hostap_radiotap_rx_45933 dbm_antsignal hostap_radiotap_rx 0 45933 NULL
141120 +disable_so_time_s5m_rtc_reg_config_45934 time s5m_rtc_reg_config 0 45934 NULL
141121 +disable_so_gro_flush_timeout_show_fndecl_45944 gro_flush_timeout_show fndecl 0 45944 NULL
141122 +disable_so_suid_dumpable_vardecl_45948 suid_dumpable vardecl 0 45948 NULL
141123 +disable_so_sel_addr___pollrd_45957 sel_addr __pollrd 0 45957 NULL
141124 +disable_so_st_atime_nsec_stat_45960 st_atime_nsec stat 0 45960 NULL
141125 +disable_so_mb862xx_i2c_do_address_fndecl_45962 mb862xx_i2c_do_address fndecl 2 45962 NULL nohasharray
141126 +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
141127 +disable_so_last_rx_signal_sta_info_45967 last_rx_signal sta_info 0 45967 NULL
141128 +disable_so_current_frequency_lgdt330x_state_45968 current_frequency lgdt330x_state 0 45968 NULL
141129 +disable_so_gpu_addr_radeon_semaphore_45975 gpu_addr radeon_semaphore 0 45975 NULL
141130 +disable_so_hello_time_net_bridge_45982 hello_time net_bridge 0 45982 NULL
141131 +disable_so_suspend_time_ipw2100_priv_45995 suspend_time ipw2100_priv 0 45995 NULL
141132 +disable_so_mtime_nsec_ubifs_ino_node_46001 mtime_nsec ubifs_ino_node 0 46001 NULL
141133 +disable_so_group_cipher_suite_atmel_private_46009 group_cipher_suite atmel_private 0 46009 NULL
141134 +disable_so_fw_hash_fndecl_46017 fw_hash fndecl 0-1 46017 NULL
141135 +disable_so_dualwatch_jiffies_cx18_46022 dualwatch_jiffies cx18 0 46022 NULL nohasharray
141136 +disable_so_ufs_set_inode_gid_fndecl_46022 ufs_set_inode_gid fndecl 3 46022 &disable_so_dualwatch_jiffies_cx18_46022
141137 +disable_so_hw_ptr_snd_rawmidi_runtime_46024 hw_ptr snd_rawmidi_runtime 0 46024 NULL
141138 +disable_so_erst_exec_set_dst_address_base_fndecl_46025 erst_exec_set_dst_address_base fndecl 0 46025 NULL
141139 +disable_so_port_expander_addr_mxl111sf_state_46026 port_expander_addr mxl111sf_state 0 46026 NULL
141140 +disable_so_tea5764_set_freq_fndecl_46030 tea5764_set_freq fndecl 2 46030 NULL
141141 +disable_so_timestamp_nfs4_delegreturndata_46035 timestamp nfs4_delegreturndata 0 46035 NULL
141142 +disable_so_crypto_blkcipher_encrypt_fndecl_46038 crypto_blkcipher_encrypt fndecl 0-4 46038 NULL
141143 +disable_so_sd_set_timing_fndecl_46047 sd_set_timing fndecl 0 46047 NULL
141144 +disable_so_eflags_user_regs_struct32_46056 eflags user_regs_struct32 0 46056 NULL nohasharray
141145 +disable_so_set_wqe_64bit_value_fndecl_46056 set_wqe_64bit_value fndecl 3 46056 &disable_so_eflags_user_regs_struct32_46056
141146 +disable_so_crypto_cbc_encrypt_segment_fndecl_46064 crypto_cbc_encrypt_segment fndecl 0 46064 NULL
141147 +disable_so_f_bavail_kstatfs_46066 f_bavail kstatfs 0 46066 NULL
141148 +disable_so_inet6_dump_ifacaddr_fndecl_46071 inet6_dump_ifacaddr fndecl 0 46071 NULL
141149 +disable_so_dma_addr_ipw_rx_mem_buffer_46073 dma_addr ipw_rx_mem_buffer 0 46073 NULL
141150 +disable_so_rfkill_last_scheduled_vardecl_input_c_46074 rfkill_last_scheduled vardecl_input.c 0 46074 NULL
141151 +disable_so_dma_addr_ntb_transport_mw_46085 dma_addr ntb_transport_mw 0 46085 NULL
141152 +disable_so_qce_ahash_init_fndecl_46087 qce_ahash_init fndecl 0 46087 NULL
141153 +disable_so_lambda_fll_div_46091 lambda fll_div 0 46091 NULL
141154 +disable_so_amd_iommu_enable_interrupts_fndecl_46110 amd_iommu_enable_interrupts fndecl 0 46110 NULL
141155 +disable_so_pineview_clock_fndecl_46122 pineview_clock fndecl 1 46122 NULL
141156 +disable_so_aes_set_key_common_fndecl_46123 aes_set_key_common fndecl 0-4 46123 NULL
141157 +disable_so_max_dwell_time_active_long_conf_scan_settings_46124 max_dwell_time_active_long conf_scan_settings 0 46124 NULL nohasharray
141158 +disable_so_clock_khz_sym_hcb_46124 clock_khz sym_hcb 0 46124 &disable_so_max_dwell_time_active_long_conf_scan_settings_46124
141159 +disable_so_mrp_periodic_time_vardecl_mrp_c_46127 mrp_periodic_time vardecl_mrp.c 0 46127 NULL
141160 +disable_so_mlx5_query_hca_vport_node_guid_fndecl_46128 mlx5_query_hca_vport_node_guid fndecl 0 46128 NULL
141161 +disable_so_xfs_kgid_to_gid_fndecl_46136 xfs_kgid_to_gid fndecl 0 46136 NULL
141162 +disable_so_ata_msleep_fndecl_46137 ata_msleep fndecl 2 46137 NULL
141163 +disable_so_ccp_sha_init_fndecl_46144 ccp_sha_init fndecl 0 46144 NULL
141164 +disable_so___mv88e6xxx_write_addr_fndecl_46145 __mv88e6xxx_write_addr fndecl 0 46145 NULL
141165 +disable_so_wdt_set_time_fndecl_46151 wdt_set_time fndecl 1-0 46151 NULL
141166 +disable_so_first_above_time_codel_vars_46152 first_above_time codel_vars 0 46152 NULL
141167 +disable_so_extclk_freq_max8649_platform_data_46157 extclk_freq max8649_platform_data 0 46157 NULL
141168 +disable_so_init_clocksource_sysfs_fndecl_46161 init_clocksource_sysfs fndecl 0 46161 NULL
141169 +disable_so_escape_clk_div_intel_dsi_46167 escape_clk_div intel_dsi 0 46167 NULL
141170 +disable_so_l2cap_sock_get_sndtimeo_cb_fndecl_46168 l2cap_sock_get_sndtimeo_cb fndecl 0 46168 NULL
141171 +disable_so_ebx_tss_segment_32_46181 ebx tss_segment_32 0 46181 NULL
141172 +disable_so_freq_in_rule_band_fndecl_46182 freq_in_rule_band fndecl 2 46182 NULL
141173 +disable_so_get_signal_to_noise_fndecl_46189 get_signal_to_noise fndecl 0 46189 NULL
141174 +disable_so_bitmap_parse_user_fndecl_46193 bitmap_parse_user fndecl 0-2-4 46193 NULL
141175 +disable_so_queue_delayed_work_fndecl_46205 queue_delayed_work fndecl 3 46205 NULL
141176 +disable_so_phy_addr_adf_admin_comms_46206 phy_addr adf_admin_comms 0 46206 NULL nohasharray
141177 +disable_so_hblank_lo_detailed_pixel_timing_46206 hblank_lo detailed_pixel_timing 0 46206 &disable_so_phy_addr_adf_admin_comms_46206
141178 +disable_so_delay_time_NvRamType_46210 delay_time NvRamType 0 46210 NULL
141179 +disable_so_subtree_max_end_memtype_46217 subtree_max_end memtype 0 46217 NULL
141180 +disable_so_i_gid_ext3_inode_46225 i_gid ext3_inode 0 46225 NULL
141181 +disable_so_dma_addr_rx_sw_desc_46234 dma_addr rx_sw_desc 0 46234 NULL
141182 +disable_so_smsc_phy_ack_interrupt_fndecl_46236 smsc_phy_ack_interrupt fndecl 0 46236 NULL
141183 +disable_so_crypto_ctr_setkey_fndecl_46238 crypto_ctr_setkey fndecl 0-3 46238 NULL
141184 +disable_so_ap_beacon_time_iwl_mvm_vif_46241 ap_beacon_time iwl_mvm_vif 0 46241 NULL
141185 +disable_so_phy_addr_base_niu_phy_template_46243 phy_addr_base niu_phy_template 0 46243 NULL
141186 +disable_so_dev_getbyhwaddr_rcu_fndecl_46248 dev_getbyhwaddr_rcu fndecl 2 46248 NULL
141187 +disable_so_delay_time_vardecl_pcnet_cs_c_46250 delay_time vardecl_pcnet_cs.c 0 46250 NULL
141188 +disable_so_from_hash_fndecl_46264 from_hash fndecl 0-1 46264 NULL
141189 +disable_so_lapic_timer_frequency_vardecl_46265 lapic_timer_frequency vardecl 0 46265 NULL
141190 +disable_so_cs35l32_runtime_resume_fndecl_46274 cs35l32_runtime_resume fndecl 0 46274 NULL
141191 +disable_so_clock_high_l3_pins_46276 clock_high l3_pins 0 46276 NULL
141192 +disable_so_snd_opl3_timer2_init_fndecl_46281 snd_opl3_timer2_init fndecl 0-2 46281 NULL
141193 +disable_so_demod_address_mb86a16_config_46282 demod_address mb86a16_config 0 46282 NULL
141194 +disable_so_atime_fuse_attr_46283 atime fuse_attr 0 46283 NULL
141195 +disable_so_blink_time_wm831x_status_46292 blink_time wm831x_status 0 46292 NULL
141196 +disable_so_dm_btree_insert_notify_fndecl_46297 dm_btree_insert_notify fndecl 0-2 46297 NULL
141197 +disable_so__rtl92c_signal_scale_mapping_fndecl_46298 _rtl92c_signal_scale_mapping fndecl 0-2 46298 NULL
141198 +disable_so_usb_port_runtime_suspend_fndecl_46299 usb_port_runtime_suspend fndecl 0 46299 NULL
141199 +disable_so___bitmap_start_sync_fndecl_46300 __bitmap_start_sync fndecl 2-4 46300 NULL
141200 +disable_so_ep_timeout_secs_vardecl_cm_c_46302 ep_timeout_secs vardecl_cm.c 0 46302 NULL
141201 +disable_so_prop_seg_can_bittiming_46312 prop_seg can_bittiming 0 46312 NULL
141202 +disable_so_signalstrength_rtl_stats_46320 signalstrength rtl_stats 0 46320 NULL
141203 +disable_so_xpc_hb_check_timeout_vardecl_xpc_main_c_46327 xpc_hb_check_timeout vardecl_xpc_main.c 0 46327 NULL
141204 +disable_so_creation_time_se_dev_entry_46338 creation_time se_dev_entry 0 46338 NULL
141205 +disable_so_ene_set_tx_duty_cycle_fndecl_46344 ene_set_tx_duty_cycle fndecl 2 46344 NULL
141206 +disable_so_atimensec_fuse_setattr_in_46351 atimensec fuse_setattr_in 0 46351 NULL
141207 +disable_so_ip_mce_46362 ip mce 0 46362 NULL
141208 +disable_so_ntfs_bitmap_clear_run_fndecl_46364 ntfs_bitmap_clear_run fndecl 2-3 46364 NULL
141209 +disable_so_ds1286_read_time_fndecl_46365 ds1286_read_time fndecl 0 46365 NULL
141210 +disable_so_sd_uid_stat_data_v1_46367 sd_uid stat_data_v1 0 46367 NULL
141211 +disable_so_bfa_fcs_lport_ns_sm_gid_ft_fndecl_46369 bfa_fcs_lport_ns_sm_gid_ft fndecl 2 46369 NULL
141212 +disable_so_address_usb_ep_46374 address usb_ep 0 46374 NULL
141213 +disable_so_txctl_measured_time_b43_txpower_lo_control_46377 txctl_measured_time b43_txpower_lo_control 0 46377 NULL
141214 +disable_so_gru_start_paddr_vardecl_46378 gru_start_paddr vardecl 0 46378 NULL
141215 +disable_so_second_timestamp_46379 second timestamp 0 46379 NULL
141216 +disable_so_code_acpi_signal_fatal_info_46389 code acpi_signal_fatal_info 0 46389 NULL
141217 +disable_so_cpu_hrtimer_cpu_base_46390 cpu hrtimer_cpu_base 0 46390 NULL
141218 +disable_so_bcma_chipco_watchdog_timer_set_wdt_fndecl_46396 bcma_chipco_watchdog_timer_set_wdt fndecl 2-0 46396 NULL
141219 +disable_so_check_intr_schedule_fndecl_46403 check_intr_schedule fndecl 2-3-0 46403 NULL
141220 +disable_so_start_mtrr_iter_46427 start mtrr_iter 0 46427 NULL
141221 +disable_so_cp_hqd_pq_wptr_poll_addr_hqd_registers_46430 cp_hqd_pq_wptr_poll_addr hqd_registers 0 46430 NULL
141222 +disable_so_irlap_start_final_timer_fndecl_46431 irlap_start_final_timer fndecl 2 46431 NULL
141223 +disable_so_tuner_pll_address_budget_ci_46436 tuner_pll_address budget_ci 0 46436 NULL
141224 +disable_so_mmc35240_get_samp_freq_index_fndecl_46439 mmc35240_get_samp_freq_index fndecl 0 46439 NULL
141225 +disable_so_addr_qat_alg_buf_46445 addr qat_alg_buf 0 46445 NULL
141226 +disable_so_set_ifa_lifetime_fndecl_46447 set_ifa_lifetime fndecl 3-2 46447 NULL
141227 +disable_so_crypto_authenc_module_init_fndecl_46455 crypto_authenc_module_init fndecl 0 46455 NULL
141228 +disable_so_start_fw_address_region_46456 start fw_address_region 0 46456 NULL
141229 +disable_so_snd_seq_queue_timer_open_fndecl_46460 snd_seq_queue_timer_open fndecl 1 46460 NULL
141230 +disable_so_rt_mutex_lock_interruptible_fndecl_46473 rt_mutex_lock_interruptible fndecl 0 46473 NULL
141231 +disable_so_link_set_timer_fndecl_46475 link_set_timer fndecl 2 46475 NULL
141232 +disable_so_pci_bus_check_dev_fndecl_46486 pci_bus_check_dev fndecl 2 46486 NULL
141233 +disable_so_header_dma_addr_tso_state_46489 header_dma_addr tso_state 0 46489 NULL
141234 +disable_so_get_frequency_dvb_tuner_ops_46496 get_frequency dvb_tuner_ops 0 46496 NULL
141235 +disable_so_eth_prepare_mac_addr_change_fndecl_46501 eth_prepare_mac_addr_change fndecl 0 46501 NULL
141236 +disable_so_nfs_direct_write_schedule_iovec_fndecl_46504 nfs_direct_write_schedule_iovec fndecl 0-3 46504 NULL
141237 +disable_so_sib_sid_mask_sockaddr_ib_46511 sib_sid_mask sockaddr_ib 0 46511 NULL
141238 +disable_so_gc_upcall_timestamp_gss_cred_46522 gc_upcall_timestamp gss_cred 0 46522 NULL
141239 +disable_so_zd_iowrite32a_fndecl_46529 zd_iowrite32a fndecl 0-3 46529 NULL
141240 +disable_so_btrfs_delayed_item_reserve_metadata_fndecl_46535 btrfs_delayed_item_reserve_metadata fndecl 0 46535 NULL
141241 +disable_so_qi_btimelimit_xfs_quotainfo_46536 qi_btimelimit xfs_quotainfo 0 46536 NULL
141242 +disable_so_tick_do_timer_cpu_vardecl_46549 tick_do_timer_cpu vardecl 0 46549 NULL
141243 +disable_so_dma_addr_rsxx_cs_buffer_46558 dma_addr rsxx_cs_buffer 0 46558 NULL
141244 +disable_so_niu_set_hash_opts_fndecl_46560 niu_set_hash_opts fndecl 0 46560 NULL
141245 +disable_so_ext_start_addr_i740fb_par_46564 ext_start_addr i740fb_par 0 46564 NULL nohasharray
141246 +disable_so_s5h1420_setfreqoffset_fndecl_46564 s5h1420_setfreqoffset fndecl 2 46564 &disable_so_ext_start_addr_i740fb_par_46564
141247 +disable_so_find_first_zero_bit_fndecl_46567 find_first_zero_bit fndecl 0-2 46567 NULL
141248 +disable_so_ahd_print_register_fndecl_46568 ahd_print_register fndecl 5 46568 NULL
141249 +disable_so_uid_autofs_v5_packet_46569 uid autofs_v5_packet 0 46569 NULL nohasharray
141250 +disable_so_btrfs_find_delayed_ref_head_fndecl_46569 btrfs_find_delayed_ref_head fndecl 2 46569 &disable_so_uid_autofs_v5_packet_46569
141251 +disable_so_beacon_time_stamp_iwl_rx_phy_res_46571 beacon_time_stamp iwl_rx_phy_res 0 46571 NULL
141252 +disable_so_file_update_time_fndecl_46572 file_update_time fndecl 0 46572 NULL nohasharray
141253 +disable_so_mlx4_bitmap_avail_fndecl_46572 mlx4_bitmap_avail fndecl 0 46572 &disable_so_file_update_time_fndecl_46572
141254 +disable_so_lbase_mtrr_value_46577 lbase mtrr_value 0 46577 NULL
141255 +disable_so_frame_bits_snd_pcm_runtime_46580 frame_bits snd_pcm_runtime 0 46580 NULL
141256 +disable_so_mtrr_write_fndecl_46581 mtrr_write fndecl 3 46581 NULL
141257 +disable_so_dm_btree_find_key_fndecl_46584 dm_btree_find_key fndecl 0-2 46584 NULL
141258 +disable_so_timekeeping_set_tai_offset_fndecl_46587 timekeeping_set_tai_offset fndecl 1 46587 NULL
141259 +disable_so_di_tss_segment_16_46594 di tss_segment_16 0 46594 NULL
141260 +disable_so_tda10071_read_signal_strength_fndecl_46598 tda10071_read_signal_strength fndecl 0 46598 NULL
141261 +disable_so___ipv6_addr_diff64_fndecl_46599 __ipv6_addr_diff64 fndecl 0 46599 NULL
141262 +disable_so_ieee80211_runtime_change_iftype_fndecl_46603 ieee80211_runtime_change_iftype fndecl 0 46603 NULL
141263 +disable_so_get_cpu_idle_time_fndecl_46620 get_cpu_idle_time fndecl 1-0 46620 NULL
141264 +disable_so_max6900_i2c_set_time_fndecl_46626 max6900_i2c_set_time fndecl 0 46626 NULL nohasharray
141265 +disable_so_sha1_ctx_mgr_submit_fndecl_46626 sha1_ctx_mgr_submit fndecl 4 46626 &disable_so_max6900_i2c_set_time_fndecl_46626
141266 +disable_so_effective_len_mlx4_bitmap_46628 effective_len mlx4_bitmap 0 46628 NULL
141267 +disable_so_hours_v4l2_timecode_46630 hours v4l2_timecode 0 46630 NULL
141268 +disable_so_vivid_video_s_frequency_fndecl_46635 vivid_video_s_frequency fndecl 0 46635 NULL
141269 +disable_so_rtpm_active_time_show_fndecl_46638 rtpm_active_time_show fndecl 0 46638 NULL
141270 +disable_so___hw_addr_del_fndecl_46652 __hw_addr_del fndecl 0-3 46652 NULL
141271 +disable_so_lp8788_select_buck_vout_addr_fndecl_46658 lp8788_select_buck_vout_addr fndecl 0-2 46658 NULL
141272 +disable_so___flow_hash_from_keys_fndecl_46659 __flow_hash_from_keys fndecl 0 46659 NULL
141273 +disable_so_addrconf_prefix_route_fndecl_46665 addrconf_prefix_route fndecl 2 46665 NULL
141274 +disable_so_bmg160_runtime_resume_fndecl_46671 bmg160_runtime_resume fndecl 0 46671 NULL
141275 +disable_so_msg_ctime_msqid64_ds_46672 msg_ctime msqid64_ds 0 46672 NULL
141276 +disable_so_pvclock_scale_delta_fndecl_46676 pvclock_scale_delta fndecl 0 46676 NULL
141277 +disable_so_rtsx_usb_switch_clock_fndecl_46677 rtsx_usb_switch_clock fndecl 3-2-0 46677 NULL
141278 +disable_so_kstrtouint_fndecl_46682 kstrtouint fndecl 0 46682 NULL
141279 +disable_so_read_addr_qla82xx_md_entry_queue_46684 read_addr qla82xx_md_entry_queue 0 46684 NULL
141280 +disable_so_depth_blk_align_bitmap_46713 depth blk_align_bitmap 0 46713 NULL
141281 +disable_so_sysctl_aarp_resolve_time_vardecl_46714 sysctl_aarp_resolve_time vardecl 0 46714 NULL nohasharray
141282 +disable_so_zd_iowrite16_locked_fndecl_46714 zd_iowrite16_locked fndecl 0 46714 &disable_so_sysctl_aarp_resolve_time_vardecl_46714
141283 +disable_so_rio_addr_tsi721_tx_desc_46721 rio_addr tsi721_tx_desc 0 46721 NULL
141284 +disable_so_addr_mv_sg_46722 addr mv_sg 0 46722 NULL
141285 +disable_so_plat_get_static_power_cpufreq_cooling_device_46723 plat_get_static_power cpufreq_cooling_device 3 46723 NULL
141286 +disable_so_ebitmap_get_bit_fndecl_46726 ebitmap_get_bit fndecl 2 46726 NULL
141287 +disable_so_st_mtime_compat_stat_46734 st_mtime compat_stat 0 46734 NULL
141288 +disable_so_fw_core_add_address_handler_fndecl_46736 fw_core_add_address_handler fndecl 0 46736 NULL
141289 +disable_so_spc_timelimit_qc_type_state_46739 spc_timelimit qc_type_state 0 46739 NULL
141290 +disable_so_tcp_v4_md5_hash_pseudoheader_fndecl_46749 tcp_v4_md5_hash_pseudoheader fndecl 4 46749 NULL
141291 +disable_so_bfa_get_log_time_fndecl_46750 bfa_get_log_time fndecl 0 46750 NULL
141292 +disable_so_ghash_async_final_fndecl_46752 ghash_async_final fndecl 0 46752 NULL
141293 +disable_so_sadb_address_proto_sadb_address_46755 sadb_address_proto sadb_address 0 46755 NULL
141294 +disable_so_hard_use_expires_seconds_xfrm_lifetime_cfg_46763 hard_use_expires_seconds xfrm_lifetime_cfg 0 46763 NULL nohasharray
141295 +disable_so_addrtype_mt_init_fndecl_46763 addrtype_mt_init fndecl 0 46763 &disable_so_hard_use_expires_seconds_xfrm_lifetime_cfg_46763
141296 +disable_so_ipv6_addr_label_init_fndecl_46770 ipv6_addr_label_init fndecl 0 46770 NULL
141297 +disable_so_nbytes_ccp_sha_req_ctx_46772 nbytes ccp_sha_req_ctx 0 46772 NULL
141298 +disable_so_dr_addr_qla4_83xx_quad_entry_46781 dr_addr qla4_83xx_quad_entry 0 46781 NULL
141299 +disable_so_s_csaddr_ufs_sb_private_info_46789 s_csaddr ufs_sb_private_info 0 46789 NULL
141300 +disable_so_ubi_eba_atomic_leb_change_fndecl_46792 ubi_eba_atomic_leb_change fndecl 0 46792 NULL
141301 +disable_so_qce_crypto_driver_init_fndecl_46810 qce_crypto_driver_init fndecl 0 46810 NULL
141302 +disable_so_uuid_tree_generation_btrfs_super_block_46815 uuid_tree_generation btrfs_super_block 0 46815 NULL
141303 +disable_so_panel_pwr_delay_radeon_encoder_lvds_46816 panel_pwr_delay radeon_encoder_lvds 0 46816 NULL
141304 +disable_so_lambda__fll_div_46826 lambda _fll_div 0 46826 NULL
141305 +disable_so_pre_div__pll_div_46827 pre_div _pll_div 0 46827 NULL
141306 +disable_so_paging32_walk_addr_generic_fndecl_46828 paging32_walk_addr_generic fndecl 4-5 46828 NULL
141307 +disable_so_timeout_brcmf_btcoex_info_46840 timeout brcmf_btcoex_info 0 46840 NULL
141308 +disable_so_toshiba_sleep_functions_status_set_fndecl_46848 toshiba_sleep_functions_status_set fndecl 0 46848 NULL
141309 +disable_so_i_gid_exofs_fcb_46849 i_gid exofs_fcb 0 46849 NULL
141310 +disable_so_mounted_uid_compat_ncp_fs_info_v2_46851 mounted_uid compat_ncp_fs_info_v2 0 46851 NULL
141311 +disable_so_ecryptfs_process_key_cipher_fndecl_46863 ecryptfs_process_key_cipher fndecl 0 46863 NULL
141312 +disable_so_tuner_address_stb6100_config_46865 tuner_address stb6100_config 0 46865 NULL
141313 +disable_so_clk_div_ti_tscadc_dev_46872 clk_div ti_tscadc_dev 0 46872 NULL
141314 +disable_so_last_change_time_lpfc_nodelist_46878 last_change_time lpfc_nodelist 0 46878 NULL
141315 +disable_so_addr_mthca_catas_err_46893 addr mthca_catas_err 0 46893 NULL
141316 +disable_so_card_snd_timer_ginfo_46895 card snd_timer_ginfo 0 46895 NULL
141317 +disable_so_svm_set_tsc_khz_fndecl_46900 svm_set_tsc_khz fndecl 2 46900 NULL
141318 +disable_so_buffer_addr_atl1c_tpd_desc_46908 buffer_addr atl1c_tpd_desc 0 46908 NULL
141319 +disable_so_last_expires_snd_timer_system_private_46917 last_expires snd_timer_system_private 0 46917 NULL
141320 +disable_so___arch_hweight16_fndecl_46932 __arch_hweight16 fndecl 0-1 46932 NULL
141321 +disable_so_clockevent_delta2ns_fndecl_46934 clockevent_delta2ns fndecl 1-0 46934 NULL
141322 +disable_so_addr_PVSCSISGElement_46942 addr PVSCSISGElement 0 46942 NULL nohasharray
141323 +disable_so_bg_inode_bitmap_hi_ext4_group_desc_46942 bg_inode_bitmap_hi ext4_group_desc 0 46942 &disable_so_addr_PVSCSISGElement_46942
141324 +disable_so_ai_clkctl_fast_pwrup_delay_fndecl_46950 ai_clkctl_fast_pwrup_delay fndecl 0 46950 NULL
141325 +disable_so_demod_address_mb86a20s_config_46954 demod_address mb86a20s_config 0 46954 NULL
141326 +disable_so_ebitmap_set_bit_fndecl_46955 ebitmap_set_bit fndecl 0-2 46955 NULL
141327 +disable_so_set_eth_addr_fndecl_46958 set_eth_addr fndecl 0 46958 NULL
141328 +disable_so_ghash_async_setkey_fndecl_46962 ghash_async_setkey fndecl 0-3 46962 NULL
141329 +disable_so_hid_time_platform_driver_init_fndecl_46963 hid_time_platform_driver_init fndecl 0 46963 NULL
141330 +disable_so_ad9523_set_clock_provider_fndecl_46979 ad9523_set_clock_provider fndecl 2-0-3 46979 NULL
141331 +disable_so_pbl_addr_tpt_attributes_46980 pbl_addr tpt_attributes 0 46980 NULL
141332 +disable_so_ts_dev_1_peak_time_ref_46981 ts_dev_1 peak_time_ref 0 46981 NULL
141333 +disable_so_buff_phy_addr_amd8111e_rx_dr_46984 buff_phy_addr amd8111e_rx_dr 0 46984 NULL
141334 +disable_so_scan_index_timestamp_iio_dev_46989 scan_index_timestamp iio_dev 0 46989 NULL
141335 +disable_so_ceph_str_hash_linux_fndecl_46991 ceph_str_hash_linux fndecl 0-2 46991 NULL
141336 +disable_so_compq_addr_hi_addr_ctrl_blk_46993 compq_addr_hi addr_ctrl_blk 0 46993 NULL
141337 +disable_so_ctime_sec_ubifs_ino_node_46994 ctime_sec ubifs_ino_node 0 46994 NULL
141338 +disable_so_ring_addr_fe_priv_46998 ring_addr fe_priv 0 46998 NULL
141339 +disable_so_scratch_addr_dwc3_47001 scratch_addr dwc3 0 47001 NULL
141340 +disable_so_be_vf_eth_addr_config_fndecl_47005 be_vf_eth_addr_config fndecl 0 47005 NULL
141341 +disable_so_timeout_pardevice_47010 timeout pardevice 0 47010 NULL
141342 +disable_so_crypto_aes_set_key_fndecl_47018 crypto_aes_set_key fndecl 3 47018 NULL
141343 +disable_so_esp_cur_dma_addr_fndecl_47025 esp_cur_dma_addr fndecl 0 47025 NULL
141344 +disable_so_ba1_addr_snd_cs46xx_47035 ba1_addr snd_cs46xx 0 47035 NULL
141345 +disable_so_decode_bitmap_c_fndecl_47038 decode_bitmap_c fndecl 0-4 47038 NULL
141346 +disable_so_NCR5380_set_timer_fndecl_47039 NCR5380_set_timer fndecl 2 47039 NULL
141347 +disable_so_schedule_copy_fndecl_47040 schedule_copy fndecl 2-4-5-8 47040 NULL
141348 +disable_so_ipath_sdma_abort_jiffies_ipath_devdata_47057 ipath_sdma_abort_jiffies ipath_devdata 0 47057 NULL nohasharray
141349 +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
141350 +disable_so_address_acpi_dmar_hardware_unit_47065 address acpi_dmar_hardware_unit 0 47065 NULL
141351 +disable_so_try_address_fndecl_47083 try_address fndecl 2-3 47083 NULL
141352 +disable_so_mclk_freq_codec_priv_47084 mclk_freq codec_priv 0 47084 NULL
141353 +disable_so_diva_os_get_pci_bus_fndecl_47095 diva_os_get_pci_bus fndecl 0 47095 NULL
141354 +disable_so_shm_atime_shmid64_ds_47100 shm_atime shmid64_ds 0 47100 NULL
141355 +disable_so_tag_reg_addr_qla8044_minidump_entry_cache_47106 tag_reg_addr qla8044_minidump_entry_cache 0 47106 NULL
141356 +disable_so_timestamp_hi_mlx4_ts_cqe_47113 timestamp_hi mlx4_ts_cqe 0 47113 NULL nohasharray
141357 +disable_so_pcap_rtc_read_time_fndecl_47113 pcap_rtc_read_time fndecl 0 47113 &disable_so_timestamp_hi_mlx4_ts_cqe_47113
141358 +disable_so_xircom_interrupt_fndecl_47114 xircom_interrupt fndecl 1 47114 NULL
141359 +disable_so_atombios_crtc_set_base_atomic_fndecl_47122 atombios_crtc_set_base_atomic fndecl 0-3-4 47122 NULL
141360 +disable_so_ath5k_eeprom_init_11a_pcal_freq_fndecl_47134 ath5k_eeprom_init_11a_pcal_freq fndecl 0 47134 NULL
141361 +disable_so_tcs3472_show_int_time_available_fndecl_47135 tcs3472_show_int_time_available fndecl 0 47135 NULL
141362 +disable_so_freq_cx88_core_47137 freq cx88_core 0 47137 NULL
141363 +disable_so_gen6_signal_fndecl_47138 gen6_signal fndecl 0-2 47138 NULL
141364 +disable_so_wlc_lcnphy_rx_signal_power_fndecl_47140 wlc_lcnphy_rx_signal_power fndecl 0 47140 NULL
141365 +disable_so_sq_size_log2_t3_wq_47146 sq_size_log2 t3_wq 0 47146 NULL
141366 +disable_so_rht_head_hashfn_fndecl_47148 rht_head_hashfn fndecl 0 47148 NULL
141367 +disable_so_core_frequency_acpi_processor_px_47149 core_frequency acpi_processor_px 0 47149 NULL
141368 +disable_so_nilfs_btree_do_lookup_last_fndecl_47151 nilfs_btree_do_lookup_last fndecl 0 47151 NULL
141369 +disable_so_last_intr_timestamp_ctlr_info_47154 last_intr_timestamp ctlr_info 0 47154 NULL
141370 +disable_so_curr_freq_rt2x00_dev_47156 curr_freq rt2x00_dev 0 47156 NULL
141371 +disable_so_uid_cf_mod_47160 uid cf_mod 0 47160 NULL
141372 +disable_so_rem_mceusb_dev_47168 rem mceusb_dev 0 47168 NULL
141373 +disable_so_lpphy_qdiv_roundup_fndecl_47185 lpphy_qdiv_roundup fndecl 0-2-1 47185 NULL
141374 +disable_so_start_phys_addr_qxl_memslot_47196 start_phys_addr qxl_memslot 0 47196 NULL
141375 +disable_so_update_ia32_tsc_adjust_msr_fndecl_47211 update_ia32_tsc_adjust_msr fndecl 2 47211 NULL
141376 +disable_so_radeon_atom_set_engine_clock_fndecl_47215 radeon_atom_set_engine_clock fndecl 2 47215 NULL
141377 +disable_so_mtt_base_addr_l_mlx4_qp_context_47232 mtt_base_addr_l mlx4_qp_context 0 47232 NULL
141378 +disable_so_mtt_base_addr_h_mlx4_srq_context_47233 mtt_base_addr_h mlx4_srq_context 0 47233 NULL
141379 +disable_so_init_cpufreq_driver_47242 init cpufreq_driver 0 47242 NULL
141380 +disable_so_gpio_nsleep_auok190x_board_47243 gpio_nsleep auok190x_board 0 47243 NULL
141381 +disable_so_il4965_count_chain_bitmap_fndecl_47252 il4965_count_chain_bitmap fndecl 0-1 47252 NULL
141382 +disable_so_fl_downgrade_time_file_lock_47257 fl_downgrade_time file_lock 0 47257 NULL
141383 +disable_so_get_low_record_time_index_fndecl_47259 get_low_record_time_index fndecl 2 47259 NULL
141384 +disable_so_efx_ptp_get_timestamp_corrections_fndecl_47266 efx_ptp_get_timestamp_corrections fndecl 0 47266 NULL nohasharray
141385 +disable_so_hactive_timing_47266 hactive timing 0 47266 &disable_so_efx_ptp_get_timestamp_corrections_fndecl_47266
141386 +disable_so_feedback_divider_aty128_pll_47275 feedback_divider aty128_pll 0 47275 NULL
141387 +disable_so_daddr_max_pktgen_dev_47293 daddr_max pktgen_dev 0 47293 NULL
141388 +disable_so_addr_ce_desc_47294 addr ce_desc 0 47294 NULL
141389 +disable_so_val_addr0_nphy_rf_control_override_rev3_47315 val_addr0 nphy_rf_control_override_rev3 0 47315 NULL
141390 +disable_so_SYSC_time_fndecl_47318 SYSC_time fndecl 0 47318 NULL
141391 +disable_so_device_addr_hw_cmd_47322 device_addr hw_cmd 0 47322 NULL
141392 +disable_so_cryptd_hash_init_fndecl_47329 cryptd_hash_init fndecl 2 47329 NULL
141393 +disable_so_hpfs_add_sector_to_btree_fndecl_47344 hpfs_add_sector_to_btree fndecl 0-2-4 47344 NULL
141394 +disable_so_vref_delay_usecs_ad7877_47346 vref_delay_usecs ad7877 0 47346 NULL
141395 +disable_so_jiftime_fndecl_47359 jiftime fndecl 2 47359 NULL
141396 +disable_so_year_timestamp_47377 year timestamp 0 47377 NULL
141397 +disable_so_rt_runtime_rt_bandwidth_47380 rt_runtime rt_bandwidth 0 47380 NULL
141398 +disable_so_team_port_set_orig_dev_addr_fndecl_47381 team_port_set_orig_dev_addr fndecl 0 47381 NULL
141399 +disable_so_ldt_selector_tss_segment_32_47382 ldt_selector tss_segment_32 0 47382 NULL
141400 +disable_so_atomic_check_drm_plane_helper_funcs_47383 atomic_check drm_plane_helper_funcs 0 47383 NULL
141401 +disable_so_ath9k_hw_set_global_txtimeout_fndecl_47387 ath9k_hw_set_global_txtimeout fndecl 2 47387 NULL
141402 +disable_so_crypto_blkcipher_setkey_fndecl_47393 crypto_blkcipher_setkey fndecl 0-3 47393 NULL
141403 +disable_so_signal_libipw_rx_stats_47394 signal libipw_rx_stats 0 47394 NULL
141404 +disable_so_wm831x_rtc_readtime_fndecl_47406 wm831x_rtc_readtime fndecl 0 47406 NULL nohasharray
141405 +disable_so_reg_write_fndecl_47406 reg_write fndecl 2 47406 &disable_so_wm831x_rtc_readtime_fndecl_47406
141406 +disable_so_rx_int_delay_e1000_adapter_47412 rx_int_delay e1000_adapter 0 47412 NULL
141407 +disable_so_watchdog_timeo_net_device_47415 watchdog_timeo net_device 0 47415 NULL
141408 +disable_so_m_hi_cfg_bridge_delay_drxk_state_47416 m_hi_cfg_bridge_delay drxk_state 0 47416 NULL
141409 +disable_so_xfs_btree_get_rec_fndecl_47417 xfs_btree_get_rec fndecl 0 47417 NULL
141410 +disable_so_del_timer_fndecl_47421 del_timer fndecl 0 47421 NULL
141411 +disable_so_cq_dma_addr_nvme_queue_47424 cq_dma_addr nvme_queue 0 47424 NULL nohasharray
141412 +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
141413 +disable_so_printk_timed_ratelimit_fndecl_47432 printk_timed_ratelimit fndecl 2 47432 NULL
141414 +disable_so_addr_high_bufq_addr_element_47437 addr_high bufq_addr_element 0 47437 NULL
141415 +disable_so_snd_seq_oss_timer_tempo_fndecl_47444 snd_seq_oss_timer_tempo fndecl 0 47444 NULL
141416 +disable_so_radeon_atom_get_memory_pll_dividers_fndecl_47447 radeon_atom_get_memory_pll_dividers fndecl 0-2 47447 NULL
141417 +disable_so_vdi_atime_vxfs_inode_info_47463 vdi_atime vxfs_inode_info 0 47463 NULL nohasharray
141418 +disable_so_timestamp_iwl_priv_47463 timestamp iwl_priv 0 47463 &disable_so_vdi_atime_vxfs_inode_info_47463
141419 +disable_so_ts_steal_jiffies_gru_thread_state_47477 ts_steal_jiffies gru_thread_state 0 47477 NULL
141420 +disable_so_brcms_c_set_addrmatch_fndecl_47479 brcms_c_set_addrmatch fndecl 2 47479 NULL
141421 +disable_so_cia_max_keysize_cipher_alg_47480 cia_max_keysize cipher_alg 0 47480 NULL
141422 +disable_so_inet_addr_type_fndecl_47499 inet_addr_type fndecl 2 47499 NULL
141423 +disable_so_sd_atime_stat_data_47502 sd_atime stat_data 0 47502 NULL
141424 +disable_so_tcf_hash_create_fndecl_47512 tcf_hash_create fndecl 0-4 47512 NULL
141425 +disable_so_addr_low_ssp_ini_io_start_req_47520 addr_low ssp_ini_io_start_req 0 47520 NULL nohasharray
141426 +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
141427 +disable_so___xfrm4_dpref_spref_hash_fndecl_47524 __xfrm4_dpref_spref_hash fndecl 0 47524 NULL
141428 +disable_so_error_info_addr_mvm_alive_resp_ver2_47529 error_info_addr mvm_alive_resp_ver2 0 47529 NULL
141429 +disable_so_idle_freq_intel_gen6_power_mgmt_47531 idle_freq intel_gen6_power_mgmt 0 47531 NULL
141430 +disable_so_regidx_ath9k_debug_47533 regidx ath9k_debug 0 47533 NULL
141431 +disable_so___delay_fndecl_47535 __delay fndecl 1 47535 NULL
141432 +disable_so_gid_vardecl_initramfs_c_47557 gid vardecl_initramfs.c 0 47557 NULL
141433 +disable_so_channel_freq_wmi_scan_ev_arg_47561 channel_freq wmi_scan_ev_arg 0 47561 NULL nohasharray
141434 +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
141435 +disable_so_addr_high_sata_start_req_47563 addr_high sata_start_req 0 47563 NULL nohasharray
141436 +disable_so_addr_pages_devres_47563 addr pages_devres 0 47563 &disable_so_addr_high_sata_start_req_47563
141437 +disable_so_min_align_snd_pcm_runtime_47579 min_align snd_pcm_runtime 0 47579 NULL nohasharray
141438 +disable_so_dev_set_mac_address_fndecl_47579 dev_set_mac_address fndecl 0 47579 &disable_so_min_align_snd_pcm_runtime_47579
141439 +disable_so_sip_sprintf_addr_port_fndecl_47581 sip_sprintf_addr_port fndecl 0-4 47581 NULL
141440 +disable_so_physical_addr_cper_sec_mem_err_47582 physical_addr cper_sec_mem_err 0 47582 NULL nohasharray
141441 +disable_so_log2taps_oslec_state_47582 log2taps oslec_state 0 47582 &disable_so_physical_addr_cper_sec_mem_err_47582
141442 +disable_so_rehash_time_sfb_sched_data_47586 rehash_time sfb_sched_data 0 47586 NULL nohasharray
141443 +disable_so_x25_parse_address_block_fndecl_47586 x25_parse_address_block fndecl 0 47586 &disable_so_rehash_time_sfb_sched_data_47586
141444 +disable_so_write_reg_fndecl_47589 write_reg fndecl 3-2 47589 NULL
141445 +disable_so_buffer_addr_tx_packet_desc_47592 buffer_addr tx_packet_desc 0 47592 NULL
141446 +disable_so_xfs_iomap_write_delay_fndecl_47595 xfs_iomap_write_delay fndecl 0-2-3 47595 NULL
141447 +disable_so_valleyview_rps_min_freq_fndecl_47598 valleyview_rps_min_freq fndecl 0 47598 NULL
141448 +disable_so_eft_addr_h_qla2xxx_fw_dump_47600 eft_addr_h qla2xxx_fw_dump 0 47600 NULL
141449 +disable_so_tms_cstime_tms_47604 tms_cstime tms 0 47604 NULL nohasharray
141450 +disable_so_btrfs_node_key_to_cpu_fndecl_47604 btrfs_node_key_to_cpu fndecl 3 47604 &disable_so_tms_cstime_tms_47604
141451 +disable_so_base_reg_regcache_rbtree_node_47612 base_reg regcache_rbtree_node 0 47612 NULL
141452 +disable_so_bd_list_addr_lo_bnx2i_cmd_request_47615 bd_list_addr_lo bnx2i_cmd_request 0 47615 NULL
141453 +disable_so_ltr501_ps_read_samp_freq_fndecl_47616 ltr501_ps_read_samp_freq fndecl 0 47616 NULL
141454 +disable_so_freq_pulse_event_47630 freq pulse_event 0 47630 NULL
141455 +disable_so_ixgbe_set_rss_hash_opt_fndecl_47632 ixgbe_set_rss_hash_opt fndecl 0 47632 NULL
141456 +disable_so_timeout_vardecl_hvc_console_c_47646 timeout vardecl_hvc_console.c 0 47646 NULL
141457 +disable_so_buffer_addr_e1000_tx_desc_47648 buffer_addr e1000_tx_desc 0 47648 NULL
141458 +disable_so_keyctl_set_timeout_fndecl_47649 keyctl_set_timeout fndecl 2-1-0 47649 NULL
141459 +disable_so_cfg80211_wext_siwfreq_fndecl_47653 cfg80211_wext_siwfreq fndecl 0 47653 NULL
141460 +disable_so_dw_wdt_time_left_fndecl_47654 dw_wdt_time_left fndecl 0 47654 NULL
141461 +disable_so_tstep_addr_palmas_regs_info_47657 tstep_addr palmas_regs_info 0 47657 NULL
141462 +disable_so_frac_period_rest_dummy_systimer_pcm_47674 frac_period_rest dummy_systimer_pcm 0 47674 NULL
141463 +disable_so_fill_bitmap_rle_bits_fndecl_47678 fill_bitmap_rle_bits fndecl 0 47678 NULL
141464 +disable_so_set_timebase_fndecl_47679 set_timebase fndecl 1 47679 NULL
141465 +disable_so_i2c_addr_tua9001_config_47682 i2c_addr tua9001_config 0 47682 NULL
141466 +disable_so_time_scan_survey_info_47684 time_scan survey_info 0 47684 NULL
141467 +disable_so_lzo_decompress_fndecl_47694 lzo_decompress fndecl 2 47694 NULL
141468 +disable_so_hsync_pulse_width_lvds_dvo_timing_47698 hsync_pulse_width lvds_dvo_timing 0 47698 NULL
141469 +disable_so_bdc_address_device_fndecl_47704 bdc_address_device fndecl 0-2 47704 NULL
141470 +disable_so_base_addr_ivtv_47705 base_addr ivtv 0 47705 NULL
141471 +disable_so_clock_start_soc_camera_host_ops_47707 clock_start soc_camera_host_ops 0 47707 NULL
141472 +disable_so_enum_dv_timings_v4l2_subdev_pad_ops_47708 enum_dv_timings v4l2_subdev_pad_ops 0 47708 NULL nohasharray
141473 +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
141474 +disable_so_rv740_get_mclk_frequency_ratio_fndecl_47715 rv740_get_mclk_frequency_ratio fndecl 0-1 47715 NULL
141475 +disable_so_lola_set_clock_fndecl_47716 lola_set_clock fndecl 0 47716 NULL
141476 +disable_so_hid_rtc_read_time_fndecl_47725 hid_rtc_read_time fndecl 0 47725 NULL
141477 +disable_so_ext4_update_other_inodes_time_fndecl_47730 ext4_update_other_inodes_time fndecl 2 47730 NULL
141478 +disable_so_uartlite_inbe32_fndecl_47739 uartlite_inbe32 fndecl 0 47739 NULL
141479 +disable_so_tm_yday_rtc_time_47740 tm_yday rtc_time 0 47740 NULL
141480 +disable_so_snd_azf3328_timer_fndecl_47746 snd_azf3328_timer fndecl 0-2 47746 NULL
141481 +disable_so_pci_bus_atto_channel_info_47747 pci_bus atto_channel_info 0 47747 NULL
141482 +disable_so_control_addr_qla8044_minidump_entry_cache_47750 control_addr qla8044_minidump_entry_cache 0 47750 NULL
141483 +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
141484 +disable_so_tx_ring_dma_addr_amd8111e_priv_47757 tx_ring_dma_addr amd8111e_priv 0 47757 NULL
141485 +disable_so_frac_period_size_dummy_systimer_pcm_47758 frac_period_size dummy_systimer_pcm 0 47758 NULL
141486 +disable_so_inet6_addr_add_fndecl_47759 inet6_addr_add fndecl 0-2-5-7-8-6 47759 NULL
141487 +disable_so_initial_descriptor_timeout_vardecl_hub_c_47763 initial_descriptor_timeout vardecl_hub.c 0 47763 NULL
141488 +disable_so_nbytes_ccp_aes_cmac_req_ctx_47773 nbytes ccp_aes_cmac_req_ctx 0 47773 NULL
141489 +disable_so_account_idle_time_fndecl_47777 account_idle_time fndecl 1 47777 NULL
141490 +disable_so_ip_addr_nes_arp_entry_47790 ip_addr nes_arp_entry 0 47790 NULL
141491 +disable_so_sha1_generic_mod_init_fndecl_47800 sha1_generic_mod_init fndecl 0 47800 NULL
141492 +disable_so_nla_validate_nested_fndecl_47801 nla_validate_nested fndecl 2-0 47801 NULL
141493 +disable_so_enable_refdiv_dibx000_bandwidth_config_47815 enable_refdiv dibx000_bandwidth_config 0 47815 NULL
141494 +disable_so_demod_address_cx24123_config_47819 demod_address cx24123_config 0 47819 NULL
141495 +disable_so_alloc_usb_address_fndecl_47822 alloc_usb_address fndecl 0 47822 NULL
141496 +disable_so_compat_sys_signalfd_fndecl_47830 compat_sys_signalfd fndecl 0 47830 NULL
141497 +disable_so_silence_filled_snd_pcm_runtime_47852 silence_filled snd_pcm_runtime 0 47852 NULL nohasharray
141498 +disable_so_demod_addr_tm6000_core_47852 demod_addr tm6000_core 0 47852 &disable_so_silence_filled_snd_pcm_runtime_47852
141499 +disable_so___net_get_random_once_fndecl_47854 __net_get_random_once fndecl 2 47854 NULL
141500 +disable_so_add_device_randomness_fndecl_47860 add_device_randomness fndecl 2 47860 NULL nohasharray
141501 +disable_so_put_dec_trunc8_fndecl_47860 put_dec_trunc8 fndecl 2 47860 &disable_so_add_device_randomness_fndecl_47860
141502 +disable_so___ntfs_bitmap_set_bits_in_run_fndecl_47864 __ntfs_bitmap_set_bits_in_run fndecl 2-3 47864 NULL
141503 +disable_so_qce_ahash_digest_fndecl_47873 qce_ahash_digest fndecl 0 47873 NULL
141504 +disable_so_i_gid_f2fs_inode_47888 i_gid f2fs_inode 0 47888 NULL
141505 +disable_so_currentfreq_s921_state_47895 currentfreq s921_state 0 47895 NULL
141506 +disable_so_dma_ring_addr_i40e_virtchnl_rxq_info_47897 dma_ring_addr i40e_virtchnl_rxq_info 0 47897 NULL
141507 +disable_so_qla82xx_decode_crb_addr_fndecl_47901 qla82xx_decode_crb_addr fndecl 0-1 47901 NULL
141508 +disable_so_xtal_cap20p_r820t_freq_range_47903 xtal_cap20p r820t_freq_range 0 47903 NULL
141509 +disable_so_drbd_uuid_dump_fndecl_47904 drbd_uuid_dump fndecl 4 47904 NULL
141510 +disable_so_host_addr_gnttab_unmap_grant_ref_47911 host_addr gnttab_unmap_grant_ref 0 47911 NULL
141511 +disable_so_crypto_ccm_setkey_fndecl_47913 crypto_ccm_setkey fndecl 0-3 47913 NULL
141512 +disable_so_ipath_sdma_abort_intr_timeout_ipath_devdata_47922 ipath_sdma_abort_intr_timeout ipath_devdata 0 47922 NULL
141513 +disable_so_think_time_usb_tt_47928 think_time usb_tt 0 47928 NULL
141514 +disable_so_vaddr_ib_reth_47929 vaddr ib_reth 0 47929 NULL
141515 +disable_so_num_clock_sources_echoaudio_47930 num_clock_sources echoaudio 0 47930 NULL nohasharray
141516 +disable_so_shutdwn_delay_cs42l73_private_47930 shutdwn_delay cs42l73_private 0 47930 &disable_so_num_clock_sources_echoaudio_47930
141517 +disable_so_count_bitmaps_fndecl_47942 count_bitmaps fndecl 0 47942 NULL
141518 +disable_so_crypto_aead_ivsize_fndecl_47945 crypto_aead_ivsize fndecl 0 47945 NULL
141519 +disable_so_rs5c348_rtc_read_time_fndecl_47948 rs5c348_rtc_read_time fndecl 0 47948 NULL
141520 +disable_so_kvm_set_lapic_tscdeadline_msr_fndecl_47952 kvm_set_lapic_tscdeadline_msr fndecl 2 47952 NULL
141521 +disable_so_ext4_inode_bitmap_set_fndecl_47957 ext4_inode_bitmap_set fndecl 3 47957 NULL
141522 +disable_so_sysctl_llc2_busy_timeout_vardecl_47965 sysctl_llc2_busy_timeout vardecl 0 47965 NULL
141523 +disable_so_atl2_hash_mc_addr_fndecl_47966 atl2_hash_mc_addr fndecl 0 47966 NULL
141524 +disable_so_wm97xx_reg_write_fndecl_47973 wm97xx_reg_write fndecl 3-2 47973 NULL
141525 +disable_so_isci_setup_interrupts_fndecl_47977 isci_setup_interrupts fndecl 0 47977 NULL
141526 +disable_so_hdmi_mode_alternate_clock_fndecl_47981 hdmi_mode_alternate_clock fndecl 0 47981 NULL
141527 +disable_so_xhci_address_device_fndecl_47987 xhci_address_device fndecl 0 47987 NULL
141528 +disable_so_snd_timer_start1_fndecl_47992 snd_timer_start1 fndecl 3-0 47992 NULL
141529 +disable_so_timing_setup_fndecl_48002 timing_setup fndecl 3-4 48002 NULL
141530 +disable_so_clk_freq_g762_platform_data_48004 clk_freq g762_platform_data 0 48004 NULL
141531 +disable_so_sh_addralign_elf64_shdr_48012 sh_addralign elf64_shdr 0 48012 NULL nohasharray
141532 +disable_so_crypto_aead_reqsize_fndecl_48012 crypto_aead_reqsize fndecl 0 48012 &disable_so_sh_addralign_elf64_shdr_48012
141533 +disable_so_qlcnic_82xx_get_mac_address_fndecl_48015 qlcnic_82xx_get_mac_address fndecl 0 48015 NULL
141534 +disable_so_frequency_dvb_pll_priv_48016 frequency dvb_pll_priv 0 48016 NULL
141535 +disable_so_i915_min_freq_set_fndecl_48019 i915_min_freq_set fndecl 2-0 48019 NULL
141536 +disable_so_slave_addr_psb_intel_sdvo_48022 slave_addr psb_intel_sdvo 0 48022 NULL
141537 +disable_so_si_get_ddr3_mclk_frequency_ratio_fndecl_48025 si_get_ddr3_mclk_frequency_ratio fndecl 0-1 48025 NULL
141538 +disable_so_lgdt3306a_fe_sleep_fndecl_48026 lgdt3306a_fe_sleep fndecl 0 48026 NULL
141539 +disable_so_ctnl_timeout_fill_info_fndecl_48030 ctnl_timeout_fill_info fndecl 3-5-0-2 48030 NULL
141540 +disable_so_r69_val_fc2580_freq_regs_48037 r69_val fc2580_freq_regs 0 48037 NULL nohasharray
141541 +disable_so_btree_lookup32_fndecl_48037 btree_lookup32 fndecl 2 48037 &disable_so_r69_val_fc2580_freq_regs_48037
141542 +disable_so_reservation_object_wait_timeout_rcu_fndecl_48039 reservation_object_wait_timeout_rcu fndecl 0-4 48039 NULL
141543 +disable_so_utimescaled_task_struct_48041 utimescaled task_struct 0 48041 NULL
141544 +disable_so_hrtimer_init_fndecl_48048 hrtimer_init fndecl 2 48048 NULL
141545 +disable_so_regmap_bulk_write_fndecl_48058 regmap_bulk_write fndecl 0-2-4 48058 NULL
141546 +disable_so_rt_saddr_dn_route_48062 rt_saddr dn_route 0 48062 NULL
141547 +disable_so_ring_interrupt_index_fndecl_48065 ring_interrupt_index fndecl 0 48065 NULL nohasharray
141548 +disable_so_dclk_freq_i7core_pvt_48065 dclk_freq i7core_pvt 0 48065 &disable_so_ring_interrupt_index_fndecl_48065
141549 +disable_so_di_atime_gfs2_dinode_48066 di_atime gfs2_dinode 0 48066 NULL
141550 +disable_so_be32_add_cpu_fndecl_48069 be32_add_cpu fndecl 2 48069 NULL
141551 +disable_so_keepalive_time_tcp_sock_48076 keepalive_time tcp_sock 0 48076 NULL nohasharray
141552 +disable_so_mptscsih_get_tm_timeout_fndecl_48076 mptscsih_get_tm_timeout fndecl 0 48076 &disable_so_keepalive_time_tcp_sock_48076
141553 +disable_so_set_channel_address_fndecl_48079 set_channel_address fndecl 2-3 48079 NULL
141554 +disable_so_clock_vardecl_max6650_c_48080 clock vardecl_max6650.c 0 48080 NULL
141555 +disable_so_mapped_loc_addr_nes_cm_node_48083 mapped_loc_addr nes_cm_node 0 48083 NULL
141556 +disable_so___br_ip6_hash_fndecl_48084 __br_ip6_hash fndecl 0 48084 NULL
141557 +disable_so_si4713_tx_tune_freq_fndecl_48092 si4713_tx_tune_freq fndecl 0-2 48092 NULL
141558 +disable_so_wait_for_completion_killable_timeout_fndecl_48103 wait_for_completion_killable_timeout fndecl 2-0 48103 NULL
141559 +disable_so_lpfc_max_scsicmpl_time_init_fndecl_48110 lpfc_max_scsicmpl_time_init fndecl 2 48110 NULL
141560 +disable_so_lib80211_register_crypto_ops_fndecl_48112 lib80211_register_crypto_ops fndecl 0 48112 NULL
141561 +disable_so_get_error_address_fndecl_48129 get_error_address fndecl 0 48129 NULL nohasharray
141562 +disable_so_sfreq_sst_byt_pcm_params_48129 sfreq sst_byt_pcm_params 0 48129 &disable_so_get_error_address_fndecl_48129
141563 +disable_so_vsync_off_lvds_dvo_timing_48134 vsync_off lvds_dvo_timing 0 48134 NULL
141564 +disable_so_transop_timeout_ipr_ioa_cfg_48141 transop_timeout ipr_ioa_cfg 0 48141 NULL
141565 +disable_so_addrconf_prefix_rcv_fndecl_48148 addrconf_prefix_rcv fndecl 3 48148 NULL
141566 +disable_so_copied_seq_tcp_sock_48149 copied_seq tcp_sock 0 48149 NULL
141567 +disable_so_pm_autosleep_set_state_fndecl_48154 pm_autosleep_set_state fndecl 0 48154 NULL
141568 +disable_so_mlx4_en_read_clock_fndecl_48159 mlx4_en_read_clock fndecl 0 48159 NULL
141569 +disable_so_ipmi_request_settime_fndecl_48166 ipmi_request_settime fndecl 0 48166 NULL
141570 +disable_so_atime_p9_wstat_48170 atime p9_wstat 0 48170 NULL
141571 +disable_so_sys_mq_timedsend_fndecl_48174 sys_mq_timedsend fndecl 3-1 48174 NULL
141572 +disable_so_td_base_addr_c67x00_hcd_48184 td_base_addr c67x00_hcd 0 48184 NULL
141573 +disable_so_mca_tstamp_ifmcaddr6_48186 mca_tstamp ifmcaddr6 0 48186 NULL
141574 +disable_so_tobe_rx_coal_timeval_vnic_cq_48199 tobe_rx_coal_timeval vnic_cq 0 48199 NULL nohasharray
141575 +disable_so_read_msr_fndecl_48199 read_msr fndecl 0 48199 &disable_so_tobe_rx_coal_timeval_vnic_cq_48199
141576 +disable_so_main_blkaddr_f2fs_sm_info_48201 main_blkaddr f2fs_sm_info 0 48201 NULL
141577 +disable_so_doorbell_physical_address_kgd2kfd_shared_resources_48202 doorbell_physical_address kgd2kfd_shared_resources 0 48202 NULL
141578 +disable_so_aa_fs_seq_hash_open_fndecl_48204 aa_fs_seq_hash_open fndecl 0 48204 NULL
141579 +disable_so_skcipher_all_sg_nents_fndecl_48207 skcipher_all_sg_nents fndecl 0 48207 NULL
141580 +disable_so_addr_r10dev_48214 addr r10dev 0 48214 NULL
141581 +disable_so_btc_set_ulv_dram_timing_fndecl_48216 btc_set_ulv_dram_timing fndecl 0 48216 NULL
141582 +disable_so_gid_btrfs_inode_item_48221 gid btrfs_inode_item 0 48221 NULL
141583 +disable_so_time_offset_vardecl_ntp_c_48224 time_offset vardecl_ntp.c 0 48224 NULL
141584 +disable_so_bitmaps_hpfs_super_block_48227 bitmaps hpfs_super_block 0 48227 NULL
141585 +disable_so_tpg_hdiv_fndecl_48235 tpg_hdiv fndecl 0-3 48235 NULL
141586 +disable_so_nextmsg_time_vardecl_ipath_intr_c_48236 nextmsg_time vardecl_ipath_intr.c 0 48236 NULL
141587 +disable_so_src_bitmap_qxl_copy_48243 src_bitmap qxl_copy 0 48243 NULL nohasharray
141588 +disable_so_btree_split_sibling_fndecl_48243 btree_split_sibling fndecl 0-3 48243 &disable_so_src_bitmap_qxl_copy_48243
141589 +disable_so_sm1_runtime_sc_48251 sm1 runtime_sc 0 48251 NULL nohasharray
141590 +disable_so_r6f_val_fc2580_freq_regs_48251 r6f_val fc2580_freq_regs 0 48251 &disable_so_sm1_runtime_sc_48251
141591 +disable_so_dp_daddr_rds_iw_connect_private_48258 dp_daddr rds_iw_connect_private 0 48258 NULL nohasharray
141592 +disable_so_ceph_dentry_hash_fndecl_48258 ceph_dentry_hash fndecl 0 48258 &disable_so_dp_daddr_rds_iw_connect_private_48258
141593 +disable_so_tm_delta_smt_timer_48263 tm_delta smt_timer 0 48263 NULL nohasharray
141594 +disable_so_enabled_hrtimer_events_ehci_hcd_48263 enabled_hrtimer_events ehci_hcd 0 48263 &disable_so_tm_delta_smt_timer_48263
141595 +disable_so_clock_task_rq_48277 clock_task rq 0 48277 NULL
141596 +disable_so_ui_mtime_ufs2_inode_48286 ui_mtime ufs2_inode 0 48286 NULL
141597 +disable_so_sumo_parse_pplib_clock_info_fndecl_48288 sumo_parse_pplib_clock_info fndecl 3 48288 NULL
141598 +disable_so_crypto_shash_final_fndecl_48296 crypto_shash_final fndecl 0 48296 NULL
141599 +disable_so_tproxy_handle_time_wait4_fndecl_48305 tproxy_handle_time_wait4 fndecl 2-3 48305 NULL
141600 +disable_so_timeout_pg_48333 timeout pg 0 48333 NULL
141601 +disable_so_set_next_event_clock_event_device_48353 set_next_event clock_event_device 1 48353 NULL
141602 +disable_so_VCOdivider_cx24123_bandselect_val_48358 VCOdivider cx24123_bandselect_val 0 48358 NULL
141603 +disable_so_pch_mac_start_address_pch_phub_reg_48361 pch_mac_start_address pch_phub_reg 0 48361 NULL nohasharray
141604 +disable_so_dib8000_write_word_fndecl_48361 dib8000_write_word fndecl 2-3 48361 &disable_so_pch_mac_start_address_pch_phub_reg_48361
141605 +disable_so_skcipher_wait_for_wmem_fndecl_48362 skcipher_wait_for_wmem fndecl 0-2 48362 NULL
141606 +disable_so_num_mc_addrs_ixgb_hw_48363 num_mc_addrs ixgb_hw 0 48363 NULL
141607 +disable_so_timeout_net_conf_48365 timeout net_conf 0 48365 NULL
141608 +disable_so_last_awake_jiffies_rtl_ps_ctl_48378 last_awake_jiffies rtl_ps_ctl 0 48378 NULL
141609 +disable_so_mphash_entries_vardecl_namespace_c_48379 mphash_entries vardecl_namespace.c 0 48379 NULL
141610 +disable_so_dbs_freq_increase_fndecl_48380 dbs_freq_increase fndecl 2 48380 NULL nohasharray
141611 +disable_so_crypto_register_rngs_fndecl_48380 crypto_register_rngs fndecl 0 48380 &disable_so_dbs_freq_increase_fndecl_48380
141612 +disable_so_lgdt3306a_read_signal_strength_fndecl_48382 lgdt3306a_read_signal_strength fndecl 0 48382 NULL
141613 +disable_so_di_atime_efs_dinode_48386 di_atime efs_dinode 0 48386 NULL
141614 +disable_so_iscsi_nacl_attrib_show_nopin_timeout_fndecl_48391 iscsi_nacl_attrib_show_nopin_timeout fndecl 0 48391 NULL
141615 +disable_so_update_streaming_control_runtime_48422 update_streaming control_runtime 0 48422 NULL
141616 +disable_so_setpolicy_cpufreq_driver_48433 setpolicy cpufreq_driver 0 48433 NULL
141617 +disable_so_clockid_timerfd_ctx_48442 clockid timerfd_ctx 0 48442 NULL
141618 +disable_so_set_bau_on_time_bau_control_48444 set_bau_on_time bau_control 0 48444 NULL nohasharray
141619 +disable_so_vclk_post_div_pll_ct_48444 vclk_post_div pll_ct 0 48444 &disable_so_set_bau_on_time_bau_control_48444
141620 +disable_so_test_acipher_jiffies_fndecl_48452 test_acipher_jiffies fndecl 0 48452 NULL
141621 +disable_so_radio_syn_reserved_addr27_b43_nphy_channeltab_entry_rev3_48453 radio_syn_reserved_addr27 b43_nphy_channeltab_entry_rev3 0 48453 NULL
141622 +disable_so_fan_timer_f75375_data_48461 fan_timer f75375_data 0 48461 NULL nohasharray
141623 +disable_so_address_ksm_scan_48461 address ksm_scan 0 48461 &disable_so_fan_timer_f75375_data_48461
141624 +disable_so_elements_bitmap_port_48466 elements bitmap_port 0 48466 NULL
141625 +disable_so_zd_chip_read_mac_addr_fw_fndecl_48469 zd_chip_read_mac_addr_fw fndecl 0 48469 NULL
141626 +disable_so___round_jiffies_up_relative_fndecl_48487 __round_jiffies_up_relative fndecl 2-1-0 48487 NULL
141627 +disable_so_gfs2_disk_hash_fndecl_48491 gfs2_disk_hash fndecl 2 48491 NULL
141628 +disable_so_max6900_rtc_read_time_fndecl_48493 max6900_rtc_read_time fndecl 0 48493 NULL nohasharray
141629 +disable_so_bsscfgidx_brcmf_mbss_ssid_le_48493 bsscfgidx brcmf_mbss_ssid_le 0 48493 &disable_so_max6900_rtc_read_time_fndecl_48493
141630 +disable_so_kvm_set_tsc_khz_fndecl_48520 kvm_set_tsc_khz fndecl 2 48520 NULL
141631 +disable_so_rx8025_set_time_fndecl_48524 rx8025_set_time fndecl 0 48524 NULL
141632 +disable_so_usbvision_stream_interrupt_fndecl_48527 usbvision_stream_interrupt fndecl 0 48527 NULL nohasharray
141633 +disable_so_ip_vs_lblc_hashkey_fndecl_48527 ip_vs_lblc_hashkey fndecl 1 48527 &disable_so_usbvision_stream_interrupt_fndecl_48527
141634 +disable_so_timeout_cm_av_48528 timeout cm_av 0 48528 NULL nohasharray
141635 +disable_so_ww_mutex_lock_slow_interruptible_fndecl_48528 ww_mutex_lock_slow_interruptible fndecl 0 48528 &disable_so_timeout_cm_av_48528
141636 +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
141637 +disable_so_blk_addr_node_info_48545 blk_addr node_info 0 48545 NULL
141638 +disable_so_SYSC_sched_getscheduler_fndecl_48547 SYSC_sched_getscheduler fndecl 0-1 48547 NULL
141639 +disable_so_i915_max_freq_get_fndecl_48551 i915_max_freq_get fndecl 0 48551 NULL
141640 +disable_so_min_dwell_time_active_long_conf_scan_settings_48560 min_dwell_time_active_long conf_scan_settings 0 48560 NULL nohasharray
141641 +disable_so_set_memclock_fndecl_48560 set_memclock fndecl 2 48560 &disable_so_min_dwell_time_active_long_conf_scan_settings_48560
141642 +disable_so_ext4_get_bitmap_fndecl_48566 ext4_get_bitmap fndecl 2 48566 NULL
141643 +disable_so_read_addr___pollrd_48572 read_addr __pollrd 0 48572 NULL
141644 +disable_so_cn_esc_printf_fndecl_48573 cn_esc_printf fndecl 0 48573 NULL
141645 +disable_so_osd_keepalive_timeout_ceph_options_48576 osd_keepalive_timeout ceph_options 0 48576 NULL nohasharray
141646 +disable_so_freq_cea_sad_48576 freq cea_sad 0 48576 &disable_so_osd_keepalive_timeout_ceph_options_48576
141647 +disable_so_rp_down_timeout_vlv_s0ix_state_48583 rp_down_timeout vlv_s0ix_state 0 48583 NULL
141648 +disable_so_x86_coreid_bits_cpuinfo_x86_48589 x86_coreid_bits cpuinfo_x86 0 48589 NULL nohasharray
141649 +disable_so_radeon_fence_seq_signaled_fndecl_48589 radeon_fence_seq_signaled fndecl 3 48589 &disable_so_x86_coreid_bits_cpuinfo_x86_48589
141650 +disable_so_timeval_to_jiffies_fndecl_48593 timeval_to_jiffies fndecl 0 48593 NULL
141651 +disable_so_addr_hash_fndecl_48596 addr_hash fndecl 0-2-3 48596 NULL
141652 +disable_so_frame_timestamp_iwl_tdls_channel_switch_timing_48601 frame_timestamp iwl_tdls_channel_switch_timing 0 48601 NULL
141653 +disable_so_post_divider_pll_18818_48604 post_divider pll_18818 0 48604 NULL
141654 +disable_so_mapaddr_ql_rcv_buf_cb_48606 mapaddr ql_rcv_buf_cb 0 48606 NULL
141655 +disable_so_get_tsc_mode_fndecl_48608 get_tsc_mode fndecl 0-1 48608 NULL
141656 +disable_so_parse_nl_saddr_fndecl_48609 parse_nl_saddr fndecl 0 48609 NULL
141657 +disable_so_il_dbgfs_interrupt_write_fndecl_48612 il_dbgfs_interrupt_write fndecl 0-3 48612 NULL
141658 +disable_so_timer_ticks_snd_ymfpci_48615 timer_ticks snd_ymfpci 0 48615 NULL
141659 +disable_so_pause_time_e1000_fc_info_48619 pause_time e1000_fc_info 0 48619 NULL
141660 +disable_so_curspataddr_banshee_reg_48622 curspataddr banshee_reg 0 48622 NULL
141661 +disable_so_sysctl_discovery_timeout_vardecl_48636 sysctl_discovery_timeout vardecl 0 48636 NULL
141662 +disable_so_pch_opt_rom_start_address_pch_phub_reg_48637 pch_opt_rom_start_address pch_phub_reg 0 48637 NULL
141663 +disable_so_ocfs2_test_bg_bit_allocatable_fndecl_48640 ocfs2_test_bg_bit_allocatable fndecl 2 48640 NULL nohasharray
141664 +disable_so_bit_count_syscon_gpio_data_48640 bit_count syscon_gpio_data 0 48640 &disable_so_ocfs2_test_bg_bit_allocatable_fndecl_48640
141665 +disable_so_st_uid_compat_stat_48641 st_uid compat_stat 0 48641 NULL
141666 +disable_so_zd1201_get_freq_fndecl_48656 zd1201_get_freq fndecl 0 48656 NULL nohasharray
141667 +disable_so_set_key_lib80211_crypto_ops_48656 set_key lib80211_crypto_ops 2 48656 &disable_so_zd1201_get_freq_fndecl_48656
141668 +disable_so_padata_set_cpumask_fndecl_48659 padata_set_cpumask fndecl 0 48659 NULL
141669 +disable_so_addrconf_sysctl_mtu_fndecl_48662 addrconf_sysctl_mtu fndecl 0 48662 NULL
141670 +disable_so_elapsed_time_sit_info_48663 elapsed_time sit_info 0 48663 NULL
141671 +disable_so_irq_uart_port_48670 irq uart_port 0 48670 NULL
141672 +disable_so_timeout_ib_qp_attr_48674 timeout ib_qp_attr 0 48674 NULL
141673 +disable_so_read_addr_mdc_hw_list_desc_48675 read_addr mdc_hw_list_desc 0 48675 NULL
141674 +disable_so_xfs_btree_update_fndecl_48676 xfs_btree_update fndecl 0 48676 NULL
141675 +disable_so_phy_pm_runtime_put_sync_fndecl_48680 phy_pm_runtime_put_sync fndecl 0 48680 NULL
141676 +disable_so_pcc_cpufreq_target_fndecl_48684 pcc_cpufreq_target fndecl 2 48684 NULL
141677 +disable_so_call_timer_fn_fndecl_48686 call_timer_fn fndecl 3 48686 NULL
141678 +disable_so_xfs_bmap_add_extent_delay_real_fndecl_48692 xfs_bmap_add_extent_delay_real fndecl 0 48692 NULL
141679 +disable_so_bdi_position_ratio_fndecl_48698 bdi_position_ratio fndecl 0-2-3-4-5-6 48698 NULL
141680 +disable_so_rcq_np_addr_vf_pf_rxq_params_48718 rcq_np_addr vf_pf_rxq_params 0 48718 NULL
141681 +disable_so_rp_gid_ubifs_sb_node_48723 rp_gid ubifs_sb_node 0 48723 NULL
141682 +disable_so_phys_addr_gen_pool_chunk_48730 phys_addr gen_pool_chunk 0 48730 NULL
141683 +disable_so_addr_qla8044_minidump_entry_crb_48734 addr qla8044_minidump_entry_crb 0 48734 NULL
141684 +disable_so_mt7601u_wr_fndecl_48735 mt7601u_wr fndecl 3-2 48735 NULL nohasharray
141685 +disable_so_cpufreq_policy_restore_fndecl_48735 cpufreq_policy_restore fndecl 1 48735 &disable_so_mt7601u_wr_fndecl_48735
141686 +disable_so_cpuid_read_fndecl_48739 cpuid_read fndecl 0 48739 NULL
141687 +disable_so_be_cmd_modify_eq_delay_fndecl_48751 be_cmd_modify_eq_delay fndecl 0 48751 NULL
141688 +disable_so_time_shift_perf_event_mmap_page_48757 time_shift perf_event_mmap_page 0 48757 NULL
141689 +disable_so_i_ctime_ext2_inode_48758 i_ctime ext2_inode 0 48758 NULL nohasharray
141690 +disable_so_ide_timing_find_mode_fndecl_48758 ide_timing_find_mode fndecl 1 48758 &disable_so_i_ctime_ext2_inode_48758
141691 +disable_so_err_crypto_gcm_setkey_result_48768 err crypto_gcm_setkey_result 0 48768 NULL
141692 +disable_so_baddr_videobuf_buffer_48769 baddr videobuf_buffer 0 48769 NULL
141693 +disable_so_sys_utimes_fndecl_48778 sys_utimes fndecl 0 48778 NULL
141694 +disable_so_kstrtos8_from_user_fndecl_48783 kstrtos8_from_user fndecl 2 48783 NULL
141695 +disable_so_regmap_raw_read_fndecl_48789 regmap_raw_read fndecl 4-0-2 48789 NULL
141696 +disable_so_map_sysaddr_to_csrow_low_ops_48803 map_sysaddr_to_csrow low_ops 2 48803 NULL
141697 +disable_so_tg3_get_device_address_fndecl_48809 tg3_get_device_address fndecl 0 48809 NULL
141698 +disable_so_mfgid_sz_cyttsp4_cydata_48812 mfgid_sz cyttsp4_cydata 0 48812 NULL
141699 +disable_so_mceusb_cmd_datasize_fndecl_48817 mceusb_cmd_datasize fndecl 0 48817 NULL
141700 +disable_so_tv_freq_vivid_dev_48830 tv_freq vivid_dev 0 48830 NULL
141701 +disable_so_timecounter_init_fndecl_48837 timecounter_init fndecl 3 48837 NULL
141702 +disable_so_udf_bitmap_free_blocks_fndecl_48841 udf_bitmap_free_blocks fndecl 4-5 48841 NULL
141703 +disable_so__snd_timer_stop_fndecl_48842 _snd_timer_stop fndecl 0 48842 NULL
141704 +disable_so_hash_bits_deflate_state_48850 hash_bits deflate_state 0 48850 NULL
141705 +disable_so_if_freq_mb86a20s_state_48853 if_freq mb86a20s_state 0 48853 NULL
141706 +disable_so_ieee80211_aes_ccm_encrypt_fndecl_48857 ieee80211_aes_ccm_encrypt fndecl 5-7 48857 NULL
141707 +disable_so_msec20_to_jiffies_vardecl_enc28j60_c_48860 msec20_to_jiffies vardecl_enc28j60.c 0 48860 NULL
141708 +disable_so_mmc_sd_get_max_clock_fndecl_48866 mmc_sd_get_max_clock fndecl 0 48866 NULL
141709 +disable_so_s_def_resuid_ext4_super_block_48868 s_def_resuid ext4_super_block 0 48868 NULL
141710 +disable_so_get_physaddr_fs_api_fndecl_48871 get_physaddr_fs_api fndecl 0 48871 NULL
141711 +disable_so_selinux_task_setscheduler_fndecl_48872 selinux_task_setscheduler fndecl 0 48872 NULL
141712 +disable_so_snd_timer_new_fndecl_48873 snd_timer_new fndecl 0 48873 NULL
141713 +disable_so_register_write_rt2800_ops_48876 register_write rt2800_ops 2-3 48876 NULL
141714 +disable_so_client_snd_seq_addr_48879 client snd_seq_addr 0 48879 NULL
141715 +disable_so_saddr_iriap_cb_48880 saddr iriap_cb 0 48880 NULL
141716 +disable_so_error_cpu_itimer_48884 error cpu_itimer 0 48884 NULL
141717 +disable_so_buffer_write_time_flchip_48888 buffer_write_time flchip 0 48888 NULL
141718 +disable_so_valleyview_rps_rpe_freq_fndecl_48901 valleyview_rps_rpe_freq fndecl 0 48901 NULL
141719 +disable_so_bmg160_setup_any_motion_interrupt_fndecl_48906 bmg160_setup_any_motion_interrupt fndecl 0 48906 NULL
141720 +disable_so_min_timing_entry_48911 min timing_entry 0 48911 NULL
141721 +disable_so_tx_coalescing_timeo_bnad_48916 tx_coalescing_timeo bnad 0 48916 NULL
141722 +disable_so___clockevents_try_unbind_fndecl_48918 __clockevents_try_unbind fndecl 2 48918 NULL
141723 +disable_so_cyapa_get_wait_time_for_pwr_cmd_fndecl_48920 cyapa_get_wait_time_for_pwr_cmd fndecl 0-1 48920 NULL
141724 +disable_so_uid_ubifs_ino_node_48950 uid ubifs_ino_node 0 48950 NULL nohasharray
141725 +disable_so_missing_pages_bitmap_counts_48950 missing_pages bitmap_counts 0 48950 &disable_so_uid_ubifs_ino_node_48950
141726 +disable_so_snd_es1968_interrupt_fndecl_48965 snd_es1968_interrupt fndecl 1 48965 NULL
141727 +disable_so_img_ir_symbol_timing_preprocess_fndecl_48967 img_ir_symbol_timing_preprocess fndecl 2 48967 NULL
141728 +disable_so_cryptomgr_init_fndecl_48976 cryptomgr_init fndecl 0 48976 NULL
141729 +disable_so_sync_offset_clockdrift_max_ieee80211_if_mesh_48977 sync_offset_clockdrift_max ieee80211_if_mesh 0 48977 NULL nohasharray
141730 +disable_so_br_mac_hash_fndecl_48977 br_mac_hash fndecl 2 48977 &disable_so_sync_offset_clockdrift_max_ieee80211_if_mesh_48977
141731 +disable_so_rt_daddr_dn_route_48981 rt_daddr dn_route 0 48981 NULL
141732 +disable_so_acpi_get_sleep_type_data_fndecl_48985 acpi_get_sleep_type_data fndecl 0-1 48985 NULL nohasharray
141733 +disable_so_nilfs_btree_mark_fndecl_48985 nilfs_btree_mark fndecl 0-2 48985 &disable_so_acpi_get_sleep_type_data_fndecl_48985
141734 +disable_so_led_on_time_adp8860_backlight_platform_data_48994 led_on_time adp8860_backlight_platform_data 0 48994 NULL nohasharray
141735 +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
141736 +disable_so_max_duration_time_stats_48998 max_duration time_stats 0 48998 NULL
141737 +disable_so_update_debugctlmsr_fndecl_49008 update_debugctlmsr fndecl 1 49008 NULL
141738 +disable_so_default_dclk_div_ssd1307fb_deviceinfo_49014 default_dclk_div ssd1307fb_deviceinfo 0 49014 NULL
141739 +disable_so_bound_addr_rds_info_socket_49019 bound_addr rds_info_socket 0 49019 NULL
141740 +disable_so_output_mute_control_runtime_49021 output_mute control_runtime 0 49021 NULL
141741 +disable_so_btree_csum_one_bio_fndecl_49026 btree_csum_one_bio fndecl 0 49026 NULL
141742 +disable_so_xfs_btree_ptr_addr_fndecl_49031 xfs_btree_ptr_addr fndecl 2 49031 NULL
141743 +disable_so_qs_rtbtimelimit_fs_quota_statv_49033 qs_rtbtimelimit fs_quota_statv 0 49033 NULL
141744 +disable_so_min_cpufreq_policy_49035 min cpufreq_policy 0 49035 NULL nohasharray
141745 +disable_so_semaphore_wait_to_signaller_ring_fndecl_49035 semaphore_wait_to_signaller_ring fndecl 3 49035 &disable_so_min_cpufreq_policy_49035
141746 +disable_so_intr_coal_delay_myri10ge_priv_49037 intr_coal_delay myri10ge_priv 0 49037 NULL
141747 +disable_so_set_public_address_fndecl_49049 set_public_address fndecl 0 49049 NULL
141748 +disable_so_rtc_tm_to_time64_fndecl_49056 rtc_tm_to_time64 fndecl 0 49056 NULL
141749 +disable_so_ext4_block_bitmap_fndecl_49058 ext4_block_bitmap fndecl 0 49058 NULL
141750 +disable_so_nft_hash_key_fndecl_49062 nft_hash_key fndecl 0-2 49062 NULL
141751 +disable_so_dma_addr_cb_49079 dma_addr cb 0 49079 NULL nohasharray
141752 +disable_so_inet6_addr_modify_fndecl_49079 inet6_addr_modify fndecl 0-3-4-2 49079 &disable_so_dma_addr_cb_49079
141753 +disable_so_rhashtable_walk_start_fndecl_49080 rhashtable_walk_start fndecl 0 49080 NULL
141754 +disable_so_sctp_transport_timeout_fndecl_49094 sctp_transport_timeout fndecl 0 49094 NULL
141755 +disable_so_hfdiv_dib0070_tuning_49097 hfdiv dib0070_tuning 0 49097 NULL
141756 +disable_so_u132_hcd_interrupt_recv_fndecl_49098 u132_hcd_interrupt_recv fndecl 5 49098 NULL
141757 +disable_so_test_ahash_jiffies_fndecl_49109 test_ahash_jiffies fndecl 0-3 49109 NULL
141758 +disable_so_result_scsi_cmnd_49113 result scsi_cmnd 0 49113 NULL nohasharray
141759 +disable_so_codel_get_time_fndecl_49113 codel_get_time fndecl 0 49113 &disable_so_result_scsi_cmnd_49113
141760 +disable_so_mce_async_out_fndecl_49115 mce_async_out fndecl 3 49115 NULL
141761 +disable_so_reg_write_fndecl_49116 reg_write fndecl 2-3 49116 NULL nohasharray
141762 +disable_so_hash_htab_elem_49116 hash htab_elem 0 49116 &disable_so_reg_write_fndecl_49116
141763 +disable_so_interrupt_r8a66597_49118 interrupt r8a66597 0 49118 NULL
141764 +disable_so_start_threshold_snd_pcm_runtime_49130 start_threshold snd_pcm_runtime 0 49130 NULL
141765 +disable_so_mt9m111_reg_write_fndecl_49148 mt9m111_reg_write fndecl 0-2-3 49148 NULL
141766 +disable_so_ci_otg_add_timer_fndecl_49151 ci_otg_add_timer fndecl 2 49151 NULL
141767 +disable_so_refa_r_div_ad9523_platform_data_49157 refa_r_div ad9523_platform_data 0 49157 NULL
141768 +disable_so_paddr_setup_data_node_49166 paddr setup_data_node 0 49166 NULL
141769 +disable_so_vactive_lo_lvds_dvo_timing_49180 vactive_lo lvds_dvo_timing 0 49180 NULL
141770 +disable_so_init_dma_addr_pcnet32_private_49182 init_dma_addr pcnet32_private 0 49182 NULL
141771 +disable_so_sh_dmae_runtime_resume_fndecl_49185 sh_dmae_runtime_resume fndecl 0 49185 NULL
141772 +disable_so_timeout_tid_ampdu_tx_49186 timeout tid_ampdu_tx 0 49186 NULL nohasharray
141773 +disable_so_read_peer_guid_fndecl_49186 read_peer_guid fndecl 0 49186 &disable_so_timeout_tid_ampdu_tx_49186
141774 +disable_so_if_freq_tda18271_std_map_item_49207 if_freq tda18271_std_map_item 0 49207 NULL nohasharray
141775 +disable_so_sd_hash_ptrs_gfs2_sbd_49207 sd_hash_ptrs gfs2_sbd 0 49207 &disable_so_if_freq_tda18271_std_map_item_49207
141776 +disable_so_dma_addr_t4_sq_49217 dma_addr t4_sq 0 49217 NULL
141777 +disable_so_suspend_sleep_time_cyapa_49219 suspend_sleep_time cyapa 0 49219 NULL
141778 +disable_so_mtime_nsec_p9_iattr_dotl_49224 mtime_nsec p9_iattr_dotl 0 49224 NULL nohasharray
141779 +disable_so_schedule_external_copy_fndecl_49224 schedule_external_copy fndecl 2-3 49224 &disable_so_mtime_nsec_p9_iattr_dotl_49224
141780 +disable_so_clockevents_init_sysfs_fndecl_49238 clockevents_init_sysfs fndecl 0 49238 NULL
141781 +disable_so_bus_settle_time_blogic_drvr_options_49241 bus_settle_time blogic_drvr_options 0 49241 NULL
141782 +disable_so_nf_ct_timeout_ext_add_fndecl_49245 nf_ct_timeout_ext_add fndecl 3 49245 NULL
141783 +disable_so_wm8350_rtc_readtime_fndecl_49258 wm8350_rtc_readtime fndecl 0 49258 NULL
141784 +disable_so_wm8753_set_dai_clkdiv_fndecl_49259 wm8753_set_dai_clkdiv fndecl 3 49259 NULL nohasharray
141785 +disable_so_di_gid_xfs_icdinode_49259 di_gid xfs_icdinode 0 49259 &disable_so_wm8753_set_dai_clkdiv_fndecl_49259
141786 +disable_so_acpi_lapic_addr_vardecl_boot_c_49264 acpi_lapic_addr vardecl_boot.c 0 49264 NULL
141787 +disable_so_ifa_tstamp_in_ifaddr_49266 ifa_tstamp in_ifaddr 0 49266 NULL
141788 +disable_so_tboot_addr_boot_params_49267 tboot_addr boot_params 0 49267 NULL
141789 +disable_so_rt5677_dsp_mode_i2c_write_addr_fndecl_49301 rt5677_dsp_mode_i2c_write_addr fndecl 0-2-3-4 49301 NULL
141790 +disable_so_il_vbackporch_v4l2_bt_timings_49302 il_vbackporch v4l2_bt_timings 0 49302 NULL
141791 +disable_so_jiffies_64_to_clock_t_fndecl_49307 jiffies_64_to_clock_t fndecl 0-1 49307 NULL nohasharray
141792 +disable_so_crypto_ahash_extsize_fndecl_49307 crypto_ahash_extsize fndecl 0 49307 &disable_so_jiffies_64_to_clock_t_fndecl_49307
141793 +disable_so_disptime_throtl_grp_49308 disptime throtl_grp 0 49308 NULL
141794 +disable_so_k_fll_div_49317 k fll_div 0 49317 NULL
141795 +disable_so_last_time_bictcp_49322 last_time bictcp 0 49322 NULL
141796 +disable_so_qm1d1c0042_sleep_fndecl_49326 qm1d1c0042_sleep fndecl 0 49326 NULL
141797 +disable_so_crypto_register_aeads_fndecl_49338 crypto_register_aeads fndecl 0 49338 NULL nohasharray
141798 +disable_so_gcm_hash_init_continue_fndecl_49338 gcm_hash_init_continue fndecl 0 49338 &disable_so_crypto_register_aeads_fndecl_49338
141799 +disable_so_rds_ib_laddr_check_fndecl_49343 rds_ib_laddr_check fndecl 0-1 49343 NULL
141800 +disable_so_rv6xx_convert_clock_to_stepping_fndecl_49345 rv6xx_convert_clock_to_stepping fndecl 2-0 49345 NULL
141801 +disable_so_io_addr_uhci_hcd_49351 io_addr uhci_hcd 0 49351 NULL
141802 +disable_so_mcryptd_hash_update_enqueue_fndecl_49367 mcryptd_hash_update_enqueue fndecl 0 49367 NULL
141803 +disable_so_dll_cntl_ci_clock_registers_49369 dll_cntl ci_clock_registers 0 49369 NULL
141804 +disable_so_d_btimer_fs_disk_quota_49376 d_btimer fs_disk_quota 0 49376 NULL nohasharray
141805 +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
141806 +disable_so_s_addr_in_addr_49376 s_addr in_addr 0 49376 &disable_so_uv_nmi_initial_delay_vardecl_uv_nmi_c_49376
141807 +disable_so_addrlow_dma64desc_49384 addrlow dma64desc 0 49384 NULL
141808 +disable_so_tcn_timer_show_fndecl_49401 tcn_timer_show fndecl 0 49401 NULL
141809 +disable_so_query_gid_ib_device_49415 query_gid ib_device 0-2-3 49415 NULL nohasharray
141810 +disable_so_physaddr_qib_devdata_49415 physaddr qib_devdata 0 49415 &disable_so_query_gid_ib_device_49415
141811 +disable_so_descsize_crypto_shash_49421 descsize crypto_shash 0 49421 NULL
141812 +disable_so_gatt_bus_addr_agp_bridge_data_49422 gatt_bus_addr agp_bridge_data 0 49422 NULL
141813 +disable_so_confq_pbl_base_addr_lo_fcoe_kwqe_conn_offload4_49427 confq_pbl_base_addr_lo fcoe_kwqe_conn_offload4 0 49427 NULL
141814 +disable_so_fm_v4l2_vidioc_s_freq_fndecl_49444 fm_v4l2_vidioc_s_freq fndecl 0 49444 NULL
141815 +disable_so_tidvaddr_qib_tid_info_49445 tidvaddr qib_tid_info 0 49445 NULL
141816 +disable_so_hpi_cobranet_get_ip_address_fndecl_49449 hpi_cobranet_get_ip_address fndecl 1 49449 NULL
141817 +disable_so_nla_put_s32_fndecl_49455 nla_put_s32 fndecl 0-3 49455 NULL
141818 +disable_so_saa711x_s_clock_freq_fndecl_49457 saa711x_s_clock_freq fndecl 2 49457 NULL
141819 +disable_so_timestamp_mwl8k_tx_desc_49459 timestamp mwl8k_tx_desc 0 49459 NULL
141820 +disable_so___xfrm6_dpref_spref_hash_fndecl_49463 __xfrm6_dpref_spref_hash fndecl 0 49463 NULL
141821 +disable_so_dn_hash_fndecl_49465 dn_hash fndecl 0-1-2 49465 NULL
141822 +disable_so_x_runtime_sc_49473 x runtime_sc 0 49473 NULL
141823 +disable_so_sgl_pg1_addr_hi_sgl_page_pairs_49474 sgl_pg1_addr_hi sgl_page_pairs 0 49474 NULL
141824 +disable_so_mtime_sec_p9_iattr_dotl_49482 mtime_sec p9_iattr_dotl 0 49482 NULL
141825 +disable_so_mpll_ad_func_cntl_ci_clock_registers_49490 mpll_ad_func_cntl ci_clock_registers 0 49490 NULL nohasharray
141826 +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
141827 +disable_so_i2c_write_le16_fndecl_49491 i2c_write_le16 fndecl 0 49491 NULL nohasharray
141828 +disable_so_svm_compute_tsc_offset_fndecl_49491 svm_compute_tsc_offset fndecl 0-2 49491 &disable_so_i2c_write_le16_fndecl_49491
141829 +disable_so_d_rtbtimer_xfs_disk_dquot_49495 d_rtbtimer xfs_disk_dquot 0 49495 NULL
141830 +disable_so_parport_set_timeout_fndecl_49497 parport_set_timeout fndecl 2-0 49497 NULL
141831 +disable_so_radelay_esp_49498 radelay esp 0 49498 NULL
141832 +disable_so_addr_i2c_board_info_49507 addr i2c_board_info 0 49507 NULL
141833 +disable_so_adma_addr_sdhci_host_49508 adma_addr sdhci_host 0 49508 NULL
141834 +disable_so_rq_addr_t3_rdma_init_wr_49515 rq_addr t3_rdma_init_wr 0 49515 NULL
141835 +disable_so_runtime_remaining_cfs_rq_49516 runtime_remaining cfs_rq 0 49516 NULL
141836 +disable_so_dreq_timestamp_time_dccp_request_sock_49520 dreq_timestamp_time dccp_request_sock 0 49520 NULL
141837 +disable_so_regmap_add_irq_chip_fndecl_49529 regmap_add_irq_chip fndecl 4-0-2-3 49529 NULL
141838 +disable_so_drm_fixp_div_fndecl_49535 drm_fixp_div fndecl 0-1-2 49535 NULL
141839 +disable_so_ar_addr_qla8044_quad_entry_49543 ar_addr qla8044_quad_entry 0 49543 NULL
141840 +disable_so_regcache_lzo_compress_cache_block_fndecl_49544 regcache_lzo_compress_cache_block fndecl 0 49544 NULL
141841 +disable_so___subtree_last_interval_tree_node_49547 __subtree_last interval_tree_node 0 49547 NULL
141842 +disable_so_pll1_feedback_div_ad9523_platform_data_49550 pll1_feedback_div ad9523_platform_data 0 49550 NULL nohasharray
141843 +disable_so_uncore_get_attr_cpumask_fndecl_49550 uncore_get_attr_cpumask fndecl 0 49550 &disable_so_pll1_feedback_div_ad9523_platform_data_49550
141844 +disable_so_read_clocksource_49555 read clocksource 0 49555 NULL
141845 +disable_so_hash_sk_buff_49561 hash sk_buff 0 49561 NULL
141846 +disable_so_I_T_nexus_loss_timeout_sas_end_device_49562 I_T_nexus_loss_timeout sas_end_device 0 49562 NULL nohasharray
141847 +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
141848 +disable_so_alarm_clock_getres_fndecl_49575 alarm_clock_getres fndecl 1 49575 NULL
141849 +disable_so_regcache_lzo_get_blkpos_fndecl_49577 regcache_lzo_get_blkpos fndecl 0-2 49577 NULL
141850 +disable_so_atyfb_get_pixclock_fndecl_49582 atyfb_get_pixclock fndecl 0 49582 NULL
141851 +disable_so_mclkdiv_pll_div_49594 mclkdiv pll_div 0 49594 NULL
141852 +disable_so_frame_phys_addr_megasas_cmd_49601 frame_phys_addr megasas_cmd 0 49601 NULL nohasharray
141853 +disable_so_ccp_sha_digest_fndecl_49601 ccp_sha_digest fndecl 0 49601 &disable_so_frame_phys_addr_megasas_cmd_49601
141854 +disable_so_si476x_core_cmd_am_tune_freq_a10_fndecl_49610 si476x_core_cmd_am_tune_freq_a10 fndecl 0 49610 NULL
141855 +disable_so_sctp_setsockopt_delayed_ack_fndecl_49618 sctp_setsockopt_delayed_ack fndecl 3-0 49618 NULL
141856 +disable_so_gpu_addr_radeon_ring_49632 gpu_addr radeon_ring 0 49632 NULL
141857 +disable_so_uac_clock_selector_get_val_fndecl_49639 uac_clock_selector_get_val fndecl 0-2 49639 NULL nohasharray
141858 +disable_so_osc_clock_freq_drxd_state_49639 osc_clock_freq drxd_state 0 49639 &disable_so_uac_clock_selector_get_val_fndecl_49639
141859 +disable_so_addr_rx_desc_49640 addr rx_desc 0 49640 NULL
141860 +disable_so_r600_engine_clock_entry_set_reference_divider_fndecl_49644 r600_engine_clock_entry_set_reference_divider fndecl 3 49644 NULL
141861 +disable_so_set_fan_div_fndecl_49645 set_fan_div fndecl 0-4 49645 NULL nohasharray
141862 +disable_so_intermediate_freq_drx_common_attr_49645 intermediate_freq drx_common_attr 0 49645 &disable_so_set_fan_div_fndecl_49645
141863 +disable_so_wr32_nvkm_ofuncs_49648 wr32 nvkm_ofuncs 2-3 49648 NULL
141864 +disable_so__rtl8821ae_phy_calculate_bit_shift_fndecl_49649 _rtl8821ae_phy_calculate_bit_shift fndecl 0-1 49649 NULL
141865 +disable_so_cpufreq_governor_start_fndecl_49658 cpufreq_governor_start fndecl 0 49658 NULL
141866 +disable_so_mcgstatus_mce_49682 mcgstatus mce 0 49682 NULL
141867 +disable_so_bitmap_size_f2fs_nm_info_49684 bitmap_size f2fs_nm_info 0 49684 NULL
141868 +disable_so_SYSC_setgid_fndecl_49688 SYSC_setgid fndecl 0 49688 NULL
141869 +disable_so_dx_tss_segment_16_49692 dx tss_segment_16 0 49692 NULL
141870 +disable_so_tg3_test_interrupt_fndecl_49694 tg3_test_interrupt fndecl 0 49694 NULL
141871 +disable_so_rv6xx_compute_count_for_delay_fndecl_49697 rv6xx_compute_count_for_delay fndecl 0-2-3 49697 NULL
141872 +disable_so_read_time_mei_cl_cb_49706 read_time mei_cl_cb 0 49706 NULL
141873 +disable_so_addrconf_forward_change_fndecl_49711 addrconf_forward_change fndecl 2 49711 NULL
141874 +disable_so_cx24113_writereg_fndecl_49714 cx24113_writereg fndecl 0-3 49714 NULL
141875 +disable_so_demod_address_tda1004x_config_49721 demod_address tda1004x_config 0 49721 NULL
141876 +disable_so_device_timestamp_ieee80211_channel_switch_49722 device_timestamp ieee80211_channel_switch 0 49722 NULL
141877 +disable_so_gid_fileEntry_49725 gid fileEntry 0 49725 NULL
141878 +disable_so_dma_addr_clx2_queue_49729 dma_addr clx2_queue 0 49729 NULL
141879 +disable_so_extsize_crypto_type_49730 extsize crypto_type 0 49730 NULL
141880 +disable_so_k__fll_div_49732 k _fll_div 0 49732 NULL
141881 +disable_so_sumo_set_ss_dividers_fndecl_49747 sumo_set_ss_dividers fndecl 2-3 49747 NULL
141882 +disable_so_i2c_clock_i2c_algo_pca_data_49751 i2c_clock i2c_algo_pca_data 0 49751 NULL nohasharray
141883 +disable_so_skb_get_hash_perturb_fndecl_49751 skb_get_hash_perturb fndecl 0 49751 &disable_so_i2c_clock_i2c_algo_pca_data_49751
141884 +disable_so_expire_llc_timer_49752 expire llc_timer 0 49752 NULL
141885 +disable_so_rdma_copy_addr_fndecl_49754 rdma_copy_addr fndecl 0 49754 NULL
141886 +disable_so_hblank___fb_timings_49755 hblank __fb_timings 0 49755 NULL
141887 +disable_so_stripe_count_nfs4_file_layout_dsaddr_49758 stripe_count nfs4_file_layout_dsaddr 0 49758 NULL
141888 +disable_so_inet_rtm_newaddr_fndecl_49766 inet_rtm_newaddr fndecl 0 49766 NULL nohasharray
141889 +disable_so_generic_handle_irq_fndecl_49766 generic_handle_irq fndecl 1 49766 &disable_so_inet_rtm_newaddr_fndecl_49766
141890 +disable_so_parport_ieee1284_ecp_write_addr_fndecl_49769 parport_ieee1284_ecp_write_addr fndecl 0 49769 NULL
141891 +disable_so_dl_runtime_sched_dl_entity_49775 dl_runtime sched_dl_entity 0 49775 NULL
141892 +disable_so_cur_saddr_pktgen_dev_49776 cur_saddr pktgen_dev 0 49776 NULL
141893 +disable_so_nf_ct_expect_dst_hash_fndecl_49778 nf_ct_expect_dst_hash fndecl 0 49778 NULL
141894 +disable_so_compat_sys_times_fndecl_49783 compat_sys_times fndecl 0 49783 NULL nohasharray
141895 +disable_so___bitmap_shift_left_fndecl_49783 __bitmap_shift_left fndecl 3-4 49783 &disable_so_compat_sys_times_fndecl_49783
141896 +disable_so_sq_addr_high_nes_qp_context_49784 sq_addr_high nes_qp_context 0 49784 NULL
141897 +disable_so_phy_address_ethtool_cmd_49790 phy_address ethtool_cmd 0 49790 NULL
141898 +disable_so_intr_timer_type_vnic_enet_config_49793 intr_timer_type vnic_enet_config 0 49793 NULL
141899 +disable_so_end_time_bfa_diag_dport_result_s_49798 end_time bfa_diag_dport_result_s 0 49798 NULL
141900 +disable_so_prot_addr_saa7146_video_dma_49808 prot_addr saa7146_video_dma 0 49808 NULL
141901 +disable_so_p2m_timeout_show_fndecl_49814 p2m_timeout_show fndecl 0 49814 NULL
141902 +disable_so_pr_uid_compat_elf_prpsinfo_49815 pr_uid compat_elf_prpsinfo 0 49815 NULL
141903 +disable_so_pch_udc_disable_ep_interrupts_fndecl_49816 pch_udc_disable_ep_interrupts fndecl 2 49816 NULL
141904 +disable_so_bd_list_addr_lo_bnx2i_login_request_49817 bd_list_addr_lo bnx2i_login_request 0 49817 NULL
141905 +disable_so_nsec_pvclock_wall_clock_49833 nsec pvclock_wall_clock 0 49833 NULL
141906 +disable_so_bss_lose_timeout_conf_conn_settings_49850 bss_lose_timeout conf_conn_settings 0 49850 NULL
141907 +disable_so_snd_opl3_timer1_init_fndecl_49852 snd_opl3_timer1_init fndecl 0-2 49852 NULL
141908 +disable_so_data_crb_addr_pair_49859 data crb_addr_pair 0 49859 NULL
141909 +disable_so_txeol_interrupt_mask_ath_hw_49864 txeol_interrupt_mask ath_hw 0 49864 NULL
141910 +disable_so_ctrl_freq_set_fndecl_49865 ctrl_freq_set fndecl 3 49865 NULL
141911 +disable_so_freq_pda_iq_autocal_entry_49869 freq pda_iq_autocal_entry 0 49869 NULL
141912 +disable_so_kempld_wdt_set_timeout_fndecl_49893 kempld_wdt_set_timeout fndecl 2 49893 NULL
141913 +disable_so_nilfs_btree_node_set_ptr_fndecl_49897 nilfs_btree_node_set_ptr fndecl 2-3 49897 NULL
141914 +disable_so_time_to_val_fndecl_49902 time_to_val fndecl 0-4-2-3 49902 NULL
141915 +disable_so_capture_timestamp_qla27xx_fwdt_template_49904 capture_timestamp qla27xx_fwdt_template 0 49904 NULL nohasharray
141916 +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
141917 +disable_so_set_spdif_clock_snd_ice1712_49905 set_spdif_clock snd_ice1712 2 49905 NULL
141918 +disable_so_nmi_evntsel_msr_to_bit_fndecl_49906 nmi_evntsel_msr_to_bit fndecl 0-1 49906 NULL
141919 +disable_so_get_ipv6_addr_fndecl_49909 get_ipv6_addr fndecl 2 49909 NULL
141920 +disable_so_bitstream_cursor_advance_fndecl_49911 bitstream_cursor_advance fndecl 2 49911 NULL
141921 +disable_so_trap_addr_sdpcm_shared_49924 trap_addr sdpcm_shared 0 49924 NULL
141922 +disable_so_show_port_gid_fndecl_49927 show_port_gid fndecl 0 49927 NULL
141923 +disable_so_ib_sa_guid_info_rec_query_fndecl_49928 ib_sa_guid_info_rec_query fndecl 0-3-5-7-8 49928 NULL
141924 +disable_so_mtrr_type_lookup_fndecl_49929 mtrr_type_lookup fndecl 1-2 49929 NULL
141925 +disable_so_persistent_offset_sst_module_runtime_49933 persistent_offset sst_module_runtime 0 49933 NULL
141926 +disable_so_lvb_ictime_packed_ocfs2_meta_lvb_49940 lvb_ictime_packed ocfs2_meta_lvb 0 49940 NULL
141927 +disable_so_boost_freq_lm3533_platform_data_49943 boost_freq lm3533_platform_data 0 49943 NULL
141928 +disable_so_inet_twsk_schedule_fndecl_49946 inet_twsk_schedule fndecl 2 49946 NULL
141929 +disable_so_host_time_adj_time_work_49952 host_time adj_time_work 0 49952 NULL
141930 +disable_so_b43_dma_address_fndecl_49953 b43_dma_address fndecl 0-2 49953 NULL
141931 +disable_so_max_delay_iwl_time_event_cmd_49957 max_delay iwl_time_event_cmd 0 49957 NULL
141932 +disable_so_shash_final_unaligned_fndecl_49961 shash_final_unaligned fndecl 0 49961 NULL
141933 +disable_so_mpll_func_cntl_si_clock_registers_49965 mpll_func_cntl si_clock_registers 0 49965 NULL
141934 +disable_so_nfsd4_write_time_fndecl_49969 nfsd4_write_time fndecl 0 49969 NULL
141935 +disable_so_ds1374_set_time_fndecl_49975 ds1374_set_time fndecl 0 49975 NULL
141936 +disable_so_batadv_hash_new_fndecl_49976 batadv_hash_new fndecl 1 49976 NULL
141937 +disable_so_timeout_i2c_adapter_49981 timeout i2c_adapter 0 49981 NULL nohasharray
141938 +disable_so_delay_radeon_voltage_49981 delay radeon_voltage 0 49981 &disable_so_timeout_i2c_adapter_49981 nohasharray
141939 +disable_so___cpufreq_stats_create_table_fndecl_49981 __cpufreq_stats_create_table fndecl 0 49981 &disable_so_delay_radeon_voltage_49981
141940 +disable_so_op_x86_virt_to_phys_fndecl_49986 op_x86_virt_to_phys fndecl 0-1 49986 NULL nohasharray
141941 +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
141942 +disable_so_dib7000p_get_internal_freq_fndecl_49987 dib7000p_get_internal_freq fndecl 0 49987 NULL nohasharray
141943 +disable_so_msr_daio_desc_49987 msr daio_desc 0 49987 &disable_so_dib7000p_get_internal_freq_fndecl_49987
141944 +disable_so_RF_SYN_reserved_addr28_chan_info_nphy_radio205x_49990 RF_SYN_reserved_addr28 chan_info_nphy_radio205x 0 49990 NULL
141945 +disable_so_timer_vardecl_iphase_c_49991 timer vardecl_iphase.c 0 49991 NULL
141946 +disable_so_typhoon_sleep_fndecl_49999 typhoon_sleep fndecl 0-2 49999 NULL
141947 +disable_so_confq_first_pbe_addr_lo_fcoe_kwqe_conn_offload3_50012 confq_first_pbe_addr_lo fcoe_kwqe_conn_offload3 0 50012 NULL
141948 +disable_so__rtl92d_phy_calculate_bit_shift_fndecl_50016 _rtl92d_phy_calculate_bit_shift fndecl 0-1 50016 NULL
141949 +disable_so_ds1307_set_time_fndecl_50017 ds1307_set_time fndecl 0 50017 NULL
141950 +disable_so_dma_addr__DMABUFFERENTRY_50032 dma_addr _DMABUFFERENTRY 0 50032 NULL
141951 +disable_so_payload_addr_isp1760_qtd_50045 payload_addr isp1760_qtd 0 50045 NULL
141952 +disable_so_crypto_pcbc_encrypt_fndecl_50054 crypto_pcbc_encrypt fndecl 0-4 50054 NULL
141953 +disable_so_tcp_shift_skb_data_fndecl_50056 tcp_shift_skb_data fndecl 5-4 50056 NULL
141954 +disable_so_reference_div_radeon_pll_50062 reference_div radeon_pll 0 50062 NULL
141955 +disable_so_io_addr_blogic_adapter_50066 io_addr blogic_adapter 0 50066 NULL
141956 +disable_so_bfs_paprd_timestamp_ath_buf_state_50090 bfs_paprd_timestamp ath_buf_state 0 50090 NULL
141957 +disable_so_address_bau_msg_payload_50110 address bau_msg_payload 0 50110 NULL
141958 +disable_so_scsi_reset_delay_adveep_3550_config_50118 scsi_reset_delay adveep_3550_config 0 50118 NULL
141959 +disable_so_start_bit_alps_bitmap_point_50119 start_bit alps_bitmap_point 0 50119 NULL
141960 +disable_so_i_atime_ext2_inode_50120 i_atime ext2_inode 0 50120 NULL nohasharray
141961 +disable_so_link_down_time_swStat_50120 link_down_time swStat 0 50120 &disable_so_i_atime_ext2_inode_50120
141962 +disable_so_sys_timerfd_settime_fndecl_50127 sys_timerfd_settime fndecl 1 50127 NULL nohasharray
141963 +disable_so_t1timer_lapb_parms_struct_50127 t1timer lapb_parms_struct 0 50127 &disable_so_sys_timerfd_settime_fndecl_50127
141964 +disable_so_lp8755_buck_enable_time_fndecl_50128 lp8755_buck_enable_time fndecl 0 50128 NULL
141965 +disable_so_hash_v4_fndecl_50129 hash_v4 fndecl 0 50129 NULL
141966 +disable_so_btree_lookup128_fndecl_50132 btree_lookup128 fndecl 3 50132 NULL
141967 +disable_so_data_msr_data_50133 data msr_data 0 50133 NULL
141968 +disable_so_max_freq_ufs_clk_info_50134 max_freq ufs_clk_info 0 50134 NULL
141969 +disable_so_carl9170_debugfs_tx_ampdu_scheduler_read_fndecl_50136 carl9170_debugfs_tx_ampdu_scheduler_read fndecl 3 50136 NULL nohasharray
141970 +disable_so_write32_tg3_50136 write32 tg3 3 50136 &disable_so_carl9170_debugfs_tx_ampdu_scheduler_read_fndecl_50136
141971 +disable_so_vm_addr_fndecl_50143 vm_addr fndecl 0-2-3-4 50143 NULL
141972 +disable_so_mmc_sd_runtime_suspend_fndecl_50164 mmc_sd_runtime_suspend fndecl 0 50164 NULL
141973 +disable_so_msr_pcap_chip_50171 msr pcap_chip 0 50171 NULL
141974 +disable_so_ptp_clock_index_fndecl_50179 ptp_clock_index fndecl 0 50179 NULL nohasharray
141975 +disable_so_str2hashbuf_signed_fndecl_50179 str2hashbuf_signed fndecl 2 50179 &disable_so_ptp_clock_index_fndecl_50179
141976 +disable_so_dapm_clock_event_fndecl_50184 dapm_clock_event fndecl 0 50184 NULL nohasharray
141977 +disable_so_skcipher_null_givdecrypt_fndecl_50184 skcipher_null_givdecrypt fndecl 0 50184 &disable_so_dapm_clock_event_fndecl_50184
141978 +disable_so_nlm_timeout_vardecl_svc_c_50197 nlm_timeout vardecl_svc.c 0 50197 NULL
141979 +disable_so_st_mtime_nsec_stat_50200 st_mtime_nsec stat 0 50200 NULL
141980 +disable_so_haddr_tpd_haddr_50202 haddr tpd_haddr 0 50202 NULL
141981 +disable_so_cx24116_sleep_fndecl_50204 cx24116_sleep fndecl 0 50204 NULL
141982 +disable_so_printframe_fndecl_50210 printframe fndecl 3 50210 NULL nohasharray
141983 +disable_so_pch_udc_write_device_interrupts_fndecl_50210 pch_udc_write_device_interrupts fndecl 2 50210 &disable_so_printframe_fndecl_50210
141984 +disable_so_measure_12bit_voltage_fndecl_50211 measure_12bit_voltage fndecl 0-2 50211 NULL
141985 +disable_so_mcheck_init_device_fndecl_50223 mcheck_init_device fndecl 0 50223 NULL
141986 +disable_so_igb_init_rx_addrs_fndecl_50228 igb_init_rx_addrs fndecl 2 50228 NULL
141987 +disable_so_s11_img_ir_timing_regvals_50232 s11 img_ir_timing_regvals 0 50232 NULL
141988 +disable_so_paddr_mwifiex_pcie_buf_desc_50236 paddr mwifiex_pcie_buf_desc 0 50236 NULL
141989 +disable_so_rdma_resolve_addr_fndecl_50240 rdma_resolve_addr fndecl 0 50240 NULL
141990 +disable_so_mlx4_ib_notify_slaves_on_guid_change_fndecl_50248 mlx4_ib_notify_slaves_on_guid_change fndecl 2-3 50248 NULL
141991 +disable_so_si476x_core_cmd_am_tune_freq_a20_fndecl_50250 si476x_core_cmd_am_tune_freq_a20 fndecl 0 50250 NULL
141992 +disable_so_addr_lo_dma_address_50252 addr_lo dma_address 0 50252 NULL
141993 +disable_so_scsi_runtime_resume_fndecl_50254 scsi_runtime_resume fndecl 0 50254 NULL
141994 +disable_so_pkt_rbtree_find_fndecl_50259 pkt_rbtree_find fndecl 2 50259 NULL
141995 +disable_so_p_div_aic31xx_priv_50261 p_div aic31xx_priv 0 50261 NULL
141996 +disable_so_da9052_rtc_set_time_fndecl_50269 da9052_rtc_set_time fndecl 0 50269 NULL
141997 +disable_so_read_addr_qla4_83xx_minidump_entry_rdmem_pex_dma_50271 read_addr qla4_83xx_minidump_entry_rdmem_pex_dma 0 50271 NULL
141998 +disable_so_timeout_jiffies_qib_qp_50276 timeout_jiffies qib_qp 0 50276 NULL
141999 +disable_so_tmr_restart_sound_lowlev_timer_50278 tmr_restart sound_lowlev_timer 1 50278 NULL
142000 +disable_so_irq_domain_free_irqs_common_fndecl_50279 irq_domain_free_irqs_common fndecl 2-3 50279 NULL nohasharray
142001 +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
142002 +disable_so_eop_ring_buffer_address_queue_properties_50280 eop_ring_buffer_address queue_properties 0 50280 NULL
142003 +disable_so_bna_rx_coalescing_timeo_set_fndecl_50282 bna_rx_coalescing_timeo_set fndecl 2 50282 NULL
142004 +disable_so_shash_compat_update_fndecl_50285 shash_compat_update fndecl 0-3 50285 NULL
142005 +disable_so_get_physaddr_buffered_ioctl_fndecl_50286 get_physaddr_buffered_ioctl fndecl 0 50286 NULL
142006 +disable_so_snd_hrtimer_init_fndecl_50291 snd_hrtimer_init fndecl 0 50291 NULL
142007 +disable_so_cpuidle_add_state_sysfs_fndecl_50292 cpuidle_add_state_sysfs fndecl 0 50292 NULL
142008 +disable_so_bitmap_set_bits_fndecl_50299 bitmap_set_bits fndecl 3-4 50299 NULL
142009 +disable_so_cur_sge_off_fcoe_mul_sges_ctx_50300 cur_sge_off fcoe_mul_sges_ctx 0 50300 NULL
142010 +disable_so_mpll_func_cntl_1_si_clock_registers_50301 mpll_func_cntl_1 si_clock_registers 0 50301 NULL
142011 +disable_so_genwqe_debugfs_curr_dbg_uid0_open_fndecl_50304 genwqe_debugfs_curr_dbg_uid0_open fndecl 0 50304 NULL
142012 +disable_so_tx_interframe_timeout_wil6210_priv_50305 tx_interframe_timeout wil6210_priv 0 50305 NULL
142013 +disable_so_pending_csums_btrfs_delayed_ref_root_50311 pending_csums btrfs_delayed_ref_root 0 50311 NULL
142014 +disable_so_addr_count_blogic_adapter_50326 addr_count blogic_adapter 0 50326 NULL
142015 +disable_so_cpufreq_out_of_sync_fndecl_50327 cpufreq_out_of_sync fndecl 2 50327 NULL nohasharray
142016 +disable_so_typ_timing_entry_50327 typ timing_entry 0 50327 &disable_so_cpufreq_out_of_sync_fndecl_50327
142017 +disable_so_used_skcipher_ctx_50342 used skcipher_ctx 0 50342 NULL
142018 +disable_so_iscsit_create_random_array_fndecl_50360 iscsit_create_random_array fndecl 2 50360 NULL
142019 +disable_so_current_frequency_s5h1409_state_50366 current_frequency s5h1409_state 0 50366 NULL
142020 +disable_so_cb_camif_addr_50371 cb camif_addr 0 50371 NULL
142021 +disable_so_prepare_kswapd_sleep_fndecl_50377 prepare_kswapd_sleep fndecl 2-3 50377 NULL
142022 +disable_so___tcf_hash_release_fndecl_50380 __tcf_hash_release fndecl 0 50380 NULL
142023 +disable_so_ntfs_bitmap_clear_bit_fndecl_50382 ntfs_bitmap_clear_bit fndecl 2 50382 NULL
142024 +disable_so_tg3_ptp_adjtime_fndecl_50384 tg3_ptp_adjtime fndecl 2 50384 NULL
142025 +disable_so_xfs_btree_copy_recs_fndecl_50385 xfs_btree_copy_recs fndecl 4 50385 NULL
142026 +disable_so___cpufreq_get_fndecl_50397 __cpufreq_get fndecl 0 50397 NULL
142027 +disable_so_rtl821x_ack_interrupt_fndecl_50399 rtl821x_ack_interrupt fndecl 0 50399 NULL
142028 +disable_so_ss_divider_index_sumo_pl_50401 ss_divider_index sumo_pl 0 50401 NULL
142029 +disable_so_igb_runtime_suspend_fndecl_50408 igb_runtime_suspend fndecl 0 50408 NULL nohasharray
142030 +disable_so_hash_ipmark4_expire_fndecl_50408 hash_ipmark4_expire fndecl 4 50408 &disable_so_igb_runtime_suspend_fndecl_50408
142031 +disable_so_addr_TxDesc_50413 addr TxDesc 0 50413 NULL
142032 +disable_so_xfs_btree_dup_cursor_fndecl_50417 xfs_btree_dup_cursor fndecl 0 50417 NULL
142033 +disable_so_channel2freq_bg_fndecl_50421 channel2freq_bg fndecl 0-1 50421 NULL
142034 +disable_so_freq_lo_jiffies_od_cpu_dbs_info_s_50424 freq_lo_jiffies od_cpu_dbs_info_s 0 50424 NULL
142035 +disable_so_time_cifsInodeInfo_50431 time cifsInodeInfo 0 50431 NULL
142036 +disable_so_tps65910_rtc_read_time_fndecl_50446 tps65910_rtc_read_time fndecl 0 50446 NULL
142037 +disable_so_freq_wmi_p2p_rx_probe_req_event_50455 freq wmi_p2p_rx_probe_req_event 0 50455 NULL
142038 +disable_so_ifa_cstamp_in_ifaddr_50464 ifa_cstamp in_ifaddr 0 50464 NULL
142039 +disable_so_reg_ds1685_rtc_time_regs_50466 reg ds1685_rtc_time_regs 0 50466 NULL
142040 +disable_so_n_freq_tbl_50468 n freq_tbl 0 50468 NULL
142041 +disable_so_hash_code_f2fs_dir_entry_50474 hash_code f2fs_dir_entry 0 50474 NULL
142042 +disable_so_link_check_timeout_i40e_pf_50476 link_check_timeout i40e_pf 0 50476 NULL
142043 +disable_so_addr_lo_eth_rx_cqe_next_page_50479 addr_lo eth_rx_cqe_next_page 0 50479 NULL
142044 +disable_so_sr_timestamp_nfs4_sequence_res_50481 sr_timestamp nfs4_sequence_res 0 50481 NULL nohasharray
142045 +disable_so_cpumask_parse_fndecl_50481 cpumask_parse fndecl 0 50481 &disable_so_sr_timestamp_nfs4_sequence_res_50481
142046 +disable_so_set_pte_vaddr_pud_fndecl_50497 set_pte_vaddr_pud fndecl 2 50497 NULL
142047 +disable_so_pa_rxrf_lna1_freq_tune_chan_info_2064_lcnphy_50502 pa_rxrf_lna1_freq_tune chan_info_2064_lcnphy 0 50502 NULL
142048 +disable_so_uv_global_gru_mmr_address_fndecl_50507 uv_global_gru_mmr_address fndecl 0-1-2 50507 NULL
142049 +disable_so_address_desc_ptr_50509 address desc_ptr 0 50509 NULL
142050 +disable_so_crypto_aead_alg_maxauthsize_fndecl_50510 crypto_aead_alg_maxauthsize fndecl 0 50510 NULL
142051 +disable_so_pci_get_interrupt_pin_fndecl_50512 pci_get_interrupt_pin fndecl 0 50512 NULL
142052 +disable_so_addr_assign_type_show_fndecl_50513 addr_assign_type_show fndecl 0 50513 NULL
142053 +disable_so_frequency_si4713_device_50518 frequency si4713_device 0 50518 NULL
142054 +disable_so__iommu_cpumask_show_fndecl_50522 _iommu_cpumask_show fndecl 0 50522 NULL
142055 +disable_so_mma9551_runtime_resume_fndecl_50531 mma9551_runtime_resume fndecl 0 50531 NULL
142056 +disable_so_mvs_set_sas_addr_fndecl_50535 mvs_set_sas_addr fndecl 2-5 50535 NULL
142057 +disable_so_rv3029c2_rtc_set_time_fndecl_50537 rv3029c2_rtc_set_time fndecl 0 50537 NULL nohasharray
142058 +disable_so__zd_iowrite32v_async_locked_fndecl_50537 _zd_iowrite32v_async_locked fndecl 3-0 50537 &disable_so_rv3029c2_rtc_set_time_fndecl_50537
142059 +disable_so_demod_addr_m88rs2000_config_50543 demod_addr m88rs2000_config 0 50543 NULL
142060 +disable_so_mv88e6xxx_set_addr_indirect_fndecl_50547 mv88e6xxx_set_addr_indirect fndecl 0 50547 NULL nohasharray
142061 +disable_so_bind_evtchn_to_irqhandler_fndecl_50547 bind_evtchn_to_irqhandler fndecl 0-1 50547 &disable_so_mv88e6xxx_set_addr_indirect_fndecl_50547
142062 +disable_so_twl6030_interrupt_unmask_fndecl_50550 twl6030_interrupt_unmask fndecl 2-0 50550 NULL
142063 +disable_so_recovery_pio_clocks_50551 recovery pio_clocks 0 50551 NULL
142064 +disable_so_lp8788_rtc_read_time_fndecl_50573 lp8788_rtc_read_time fndecl 0 50573 NULL nohasharray
142065 +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
142066 +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
142067 +disable_so_beacon_timeout_ieee80211_if_managed_50580 beacon_timeout ieee80211_if_managed 0 50580 NULL
142068 +disable_so_mag3110_get_samp_freq_index_fndecl_50581 mag3110_get_samp_freq_index fndecl 0 50581 NULL
142069 +disable_so_sock_get_timestamp_fndecl_50582 sock_get_timestamp fndecl 0 50582 NULL
142070 +disable_so_addr_low_lancer_cmd_req_read_object_50585 addr_low lancer_cmd_req_read_object 0 50585 NULL
142071 +disable_so_regcache_lzo_write_fndecl_50595 regcache_lzo_write fndecl 0-2-3 50595 NULL
142072 +disable_so_enable_time_regulator_desc_50604 enable_time regulator_desc 0 50604 NULL
142073 +disable_so___cpufreq_driver_target_fndecl_50610 __cpufreq_driver_target fndecl 2 50610 NULL
142074 +disable_so_mt_ctxbitmap_gru_mm_tracker_50612 mt_ctxbitmap gru_mm_tracker 0 50612 NULL
142075 +disable_so_compat_sys_futimesat_fndecl_50617 compat_sys_futimesat fndecl 1-0 50617 NULL
142076 +disable_so_bind_timeout_rpc_xprt_50622 bind_timeout rpc_xprt 0 50622 NULL
142077 +disable_so_wait_conversion_complete_interrupt_fndecl_50628 wait_conversion_complete_interrupt fndecl 0 50628 NULL
142078 +disable_so_minimum_acpi_address64_attribute_50631 minimum acpi_address64_attribute 0 50631 NULL
142079 +disable_so_radix_tree_delete_fndecl_50632 radix_tree_delete fndecl 2 50632 NULL
142080 +disable_so_snd_timer_user_stop_fndecl_50656 snd_timer_user_stop fndecl 0 50656 NULL
142081 +disable_so_m_hi_cfg_timing_div_drxk_state_50665 m_hi_cfg_timing_div drxk_state 0 50665 NULL
142082 +disable_so_r_timeout_ceph_mds_request_50669 r_timeout ceph_mds_request 0 50669 NULL
142083 +disable_so_snd_timer_continue_fndecl_50670 snd_timer_continue fndecl 0 50670 NULL
142084 +disable_so_dwc3_ep0_set_isoch_delay_fndecl_50672 dwc3_ep0_set_isoch_delay fndecl 0 50672 NULL
142085 +disable_so_btree_submit_bio_hook_fndecl_50677 btree_submit_bio_hook fndecl 0-2-6 50677 NULL
142086 +disable_so_start_pid_hrtimer_50687 start_pid hrtimer 0 50687 NULL
142087 +disable_so_deliver_posted_interrupt_kvm_x86_ops_50698 deliver_posted_interrupt kvm_x86_ops 2 50698 NULL
142088 +disable_so_pwm_divisor_max8997_haptic_50704 pwm_divisor max8997_haptic 0 50704 NULL
142089 +disable_so_dma_addr_iwl_queue_50725 dma_addr iwl_queue 0 50725 NULL
142090 +disable_so_di_uid_qnx4_inode_entry_50728 di_uid qnx4_inode_entry 0 50728 NULL
142091 +disable_so_nfs_idmap_cache_timeout_vardecl_50733 nfs_idmap_cache_timeout vardecl 0 50733 NULL
142092 +disable_so_carl9170_set_beacon_timers_fndecl_50741 carl9170_set_beacon_timers fndecl 0 50741 NULL
142093 +disable_so_msg_addr_hi_vf_pf_event_data_50756 msg_addr_hi vf_pf_event_data 0 50756 NULL
142094 +disable_so_jiffies_vid_cap_vivid_dev_50760 jiffies_vid_cap vivid_dev 0 50760 NULL
142095 +disable_so_addr_amdgpu_dummy_page_50765 addr amdgpu_dummy_page 0 50765 NULL
142096 +disable_so_img_i2c_raw_atomic_delay_handler_fndecl_50779 img_i2c_raw_atomic_delay_handler fndecl 0 50779 NULL
142097 +disable_so_dst_addr_filter_ipv4_5tuple_50793 dst_addr filter_ipv4_5tuple 0 50793 NULL
142098 +disable_so_remote_ca_guid_ib_cm_rep_event_param_50795 remote_ca_guid ib_cm_rep_event_param 0 50795 NULL nohasharray
142099 +disable_so_ioaddr_physical_voice_info_50795 ioaddr physical_voice_info 0 50795 &disable_so_remote_ca_guid_ib_cm_rep_event_param_50795
142100 +disable_so_xfs_btree_log_recs_fndecl_50800 xfs_btree_log_recs fndecl 3-4 50800 NULL
142101 +disable_so_iwl_sta_modify_sleep_tx_count_fndecl_50811 iwl_sta_modify_sleep_tx_count fndecl 2 50811 NULL nohasharray
142102 +disable_so_ldt_tss_segment_16_50811 ldt tss_segment_16 0 50811 &disable_so_iwl_sta_modify_sleep_tx_count_fndecl_50811
142103 +disable_so_adxl34x_autosleep_store_fndecl_50816 adxl34x_autosleep_store fndecl 0-4 50816 NULL
142104 +disable_so_io_schedule_timeout_fndecl_50822 io_schedule_timeout fndecl 1-0 50822 NULL
142105 +disable_so_addr_pm8001_prd_50827 addr pm8001_prd 0 50827 NULL
142106 +disable_so_hfsplus_btree_write_fndecl_50829 hfsplus_btree_write fndecl 0 50829 NULL
142107 +disable_so_jfs_strfromUCS_le_fndecl_50830 jfs_strfromUCS_le fndecl 0-3 50830 NULL
142108 +disable_so_dmaaddr_b43_dmadesc_meta_50842 dmaaddr b43_dmadesc_meta 0 50842 NULL
142109 +disable_so_eh_timeout_scsi_device_50843 eh_timeout scsi_device 0 50843 NULL
142110 +disable_so_max_buffer_time_batadv_priv_nc_50848 max_buffer_time batadv_priv_nc 0 50848 NULL
142111 +disable_so_mask_timecounter_50851 mask timecounter 0 50851 NULL
142112 +disable_so_i2c_addr_cx24113_config_50855 i2c_addr cx24113_config 0 50855 NULL
142113 +disable_so_clock_khz_ocores_i2c_platform_data_50856 clock_khz ocores_i2c_platform_data 0 50856 NULL nohasharray
142114 +disable_so_i2c_addr_i2c_device_addr_50856 i2c_addr i2c_device_addr 0 50856 &disable_so_clock_khz_ocores_i2c_platform_data_50856
142115 +disable_so_lp_rx_timeout_intel_dsi_50859 lp_rx_timeout intel_dsi 0 50859 NULL nohasharray
142116 +disable_so_crypto_authenc_givencrypt_done_fndecl_50859 crypto_authenc_givencrypt_done fndecl 2 50859 &disable_so_lp_rx_timeout_intel_dsi_50859
142117 +disable_so_origninator_host_cmd_ds_11n_batimeout_50866 origninator host_cmd_ds_11n_batimeout 0 50866 NULL
142118 +disable_so_ip_vs_conn_hashkey_fndecl_50872 ip_vs_conn_hashkey fndecl 0-2-3 50872 NULL
142119 +disable_so_twa_aen_sync_time_fndecl_50875 twa_aen_sync_time fndecl 2 50875 NULL
142120 +disable_so_cachedaddr_irda_sock_50876 cachedaddr irda_sock 0 50876 NULL
142121 +disable_so_carl9170_find_freq_idx_fndecl_50881 carl9170_find_freq_idx fndecl 3 50881 NULL
142122 +disable_so___next_timer_interrupt_fndecl_50887 __next_timer_interrupt fndecl 0 50887 NULL
142123 +disable_so_reg_addr_reg_val_50891 reg_addr reg_val 0 50891 NULL
142124 +disable_so_dma_ring_addr_i40e_virtchnl_txq_info_50900 dma_ring_addr i40e_virtchnl_txq_info 0 50900 NULL
142125 +disable_so_interval_tree_subtree_search_fndecl_50901 interval_tree_subtree_search fndecl 2-3 50901 NULL
142126 +disable_so_xfs_btree_log_ptrs_fndecl_50906 xfs_btree_log_ptrs fndecl 3-4 50906 NULL
142127 +disable_so_dib8000_get_time_us_fndecl_50908 dib8000_get_time_us fndecl 0 50908 NULL
142128 +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
142129 +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
142130 +disable_so_v_radeon_vce_clock_voltage_dependency_entry_50914 v radeon_vce_clock_voltage_dependency_entry 0 50914 NULL
142131 +disable_so_authenc_verify_ahash_update_done_fndecl_50918 authenc_verify_ahash_update_done fndecl 2 50918 NULL
142132 +disable_so___get_order_fndecl_50924 __get_order fndecl 0-1 50924 NULL
142133 +disable_so_ahash_complete_fndecl_50926 ahash_complete fndecl 2 50926 NULL
142134 +disable_so_aes_encrypt_interrupt_read_fndecl_50940 aes_encrypt_interrupt_read fndecl 3-0 50940 NULL
142135 +disable_so_m_freq_tbl_50942 m freq_tbl 0 50942 NULL
142136 +disable_so_faddr_ptd_50953 faddr ptd 0 50953 NULL
142137 +disable_so_ceph_mdsmap_get_addr_fndecl_50967 ceph_mdsmap_get_addr fndecl 2 50967 NULL
142138 +disable_so_cma_bitmap_aligned_mask_fndecl_50977 cma_bitmap_aligned_mask fndecl 0-2 50977 NULL
142139 +disable_so_iscsi_tpg_attrib_show_login_timeout_fndecl_50979 iscsi_tpg_attrib_show_login_timeout fndecl 0 50979 NULL
142140 +disable_so_send_set_imon_clock_fndecl_50982 send_set_imon_clock fndecl 0 50982 NULL
142141 +disable_so_inet_saddr_inet_sock_50990 inet_saddr inet_sock 0 50990 NULL
142142 +disable_so_qlcnic_get_mac_address_fndecl_50991 qlcnic_get_mac_address fndecl 3 50991 NULL
142143 +disable_so_afs_get_MAC_address_fndecl_50999 afs_get_MAC_address fndecl 0 50999 NULL
142144 +disable_so_timestamp_batadv_frag_table_entry_51002 timestamp batadv_frag_table_entry 0 51002 NULL nohasharray
142145 +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
142146 +disable_so_phy_addr_tg3_51010 phy_addr tg3 0 51010 NULL
142147 +disable_so_vmx_set_tss_addr_fndecl_51020 vmx_set_tss_addr fndecl 0-2 51020 NULL
142148 +disable_so_dialed_frequency_ptp_clock_51022 dialed_frequency ptp_clock 0 51022 NULL nohasharray
142149 +disable_so_get_std_timing_fndecl_51022 get_std_timing fndecl 0 51022 &disable_so_dialed_frequency_ptp_clock_51022
142150 +disable_so_hdspm_get_pll_freq_fndecl_51023 hdspm_get_pll_freq fndecl 0 51023 NULL
142151 +disable_so_sb_timeshift_hpfs_sb_info_51027 sb_timeshift hpfs_sb_info 0 51027 NULL
142152 +disable_so_ob_baseaddr_l_mvumi_hs_page4_51028 ob_baseaddr_l mvumi_hs_page4 0 51028 NULL
142153 +disable_so_tw_snd_nxt_tcp_timewait_sock_51035 tw_snd_nxt tcp_timewait_sock 0 51035 NULL
142154 +disable_so_buffer_used_snd_pcm_oss_runtime_51041 buffer_used snd_pcm_oss_runtime 0 51041 NULL
142155 +disable_so_read_addr_qla8xxx_minidump_entry_queue_51046 read_addr qla8xxx_minidump_entry_queue 0 51046 NULL
142156 +disable_so_address_vardecl_it8712f_wdt_c_51057 address vardecl_it8712f_wdt.c 0 51057 NULL
142157 +disable_so_kr_rcvhdraddr_ipath_kregs_51063 kr_rcvhdraddr ipath_kregs 0 51063 NULL
142158 +disable_so_wlcore_hw_ap_sleep_fndecl_51069 wlcore_hw_ap_sleep fndecl 0 51069 NULL
142159 +disable_so_vnic_dev_intr_coal_timer_info_fndecl_51076 vnic_dev_intr_coal_timer_info fndecl 0 51076 NULL
142160 +disable_so_table2_addr_ipw2100_ordinals_51081 table2_addr ipw2100_ordinals 0 51081 NULL
142161 +disable_so_addr_bnx2x_phy_51087 addr bnx2x_phy 0 51087 NULL
142162 +disable_so_xfs_btree_copy_ptrs_fndecl_51093 xfs_btree_copy_ptrs fndecl 4 51093 NULL
142163 +disable_so_core_frequency_transition_fndecl_51097 core_frequency_transition fndecl 2 51097 NULL
142164 +disable_so_msr_ioctl_fndecl_51103 msr_ioctl fndecl 0 51103 NULL
142165 +disable_so_split_timeout_hi_fw_card_51105 split_timeout_hi fw_card 0 51105 NULL
142166 +disable_so_msg_bits_ccp_sha_req_ctx_51106 msg_bits ccp_sha_req_ctx 0 51106 NULL
142167 +disable_so_page_order_btree_keys_51110 page_order btree_keys 0 51110 NULL
142168 +disable_so_pvclock_gtod_register_notifier_fndecl_51113 pvclock_gtod_register_notifier fndecl 0 51113 NULL
142169 +disable_so_cfg80211_ibss_wext_siwfreq_fndecl_51119 cfg80211_ibss_wext_siwfreq fndecl 0 51119 NULL
142170 +disable_so_pan_id_ieee802154_hw_addr_filt_51121 pan_id ieee802154_hw_addr_filt 0 51121 NULL
142171 +disable_so_alignmask_blkcipher_walk_51130 alignmask blkcipher_walk 0 51130 NULL
142172 +disable_so_i2c_master_send_fndecl_51152 i2c_master_send fndecl 3-0 51152 NULL
142173 +disable_so_skcipher_null_givencrypt_fndecl_51153 skcipher_null_givencrypt fndecl 0 51153 NULL
142174 +disable_so_hr_last_timeout_start_o2hb_region_51155 hr_last_timeout_start o2hb_region 0 51155 NULL
142175 +disable_so_cycles_ath_cycle_counters_51156 cycles ath_cycle_counters 0 51156 NULL
142176 +disable_so_notify_remote_via_irq_fndecl_51164 notify_remote_via_irq fndecl 1 51164 NULL
142177 +disable_so_onenand_block_address_fndecl_51167 onenand_block_address fndecl 0-2 51167 NULL
142178 +disable_so_ctimensec_fuse_setattr_in_51177 ctimensec fuse_setattr_in 0 51177 NULL
142179 +disable_so_exp_time_mesh_path_51180 exp_time mesh_path 0 51180 NULL
142180 +disable_so_tcp_try_rmem_schedule_fndecl_51194 tcp_try_rmem_schedule fndecl 3 51194 NULL
142181 +disable_so_avail_mlx4_bitmap_51198 avail mlx4_bitmap 0 51198 NULL
142182 +disable_so_s2mpa01_set_ramp_delay_fndecl_51200 s2mpa01_set_ramp_delay fndecl 0 51200 NULL
142183 +disable_so_addr_e820entry_51224 addr e820entry 0 51224 NULL
142184 +disable_so_rx_dma_addr_smsc9420_pdata_51225 rx_dma_addr smsc9420_pdata 0 51225 NULL
142185 +disable_so_trf7970a_pm_runtime_resume_fndecl_51233 trf7970a_pm_runtime_resume fndecl 0 51233 NULL
142186 +disable_so_pfkey_sockaddr_extract_fndecl_51238 pfkey_sockaddr_extract fndecl 0 51238 NULL
142187 +disable_so_clock_snd_ac97_bus_51245 clock snd_ac97_bus 0 51245 NULL
142188 +disable_so_mtime_dir_entry_51261 mtime dir_entry 0 51261 NULL
142189 +disable_so_address_upper_scu_sgl_element_51271 address_upper scu_sgl_element 0 51271 NULL
142190 +disable_so_resolution_vardecl_hrtimer_c_51279 resolution vardecl_hrtimer.c 0 51279 NULL nohasharray
142191 +disable_so_r600_dpm_get_vblank_time_fndecl_51279 r600_dpm_get_vblank_time fndecl 0 51279 &disable_so_resolution_vardecl_hrtimer_c_51279
142192 +disable_so___ndelay_fndecl_51287 __ndelay fndecl 1 51287 NULL
142193 +disable_so_hashbin_lock_find_fndecl_51294 hashbin_lock_find fndecl 2 51294 NULL
142194 +disable_so_snd_es1968_apu_set_freq_fndecl_51295 snd_es1968_apu_set_freq fndecl 3 51295 NULL
142195 +disable_so_lvb_iuid_ocfs2_meta_lvb_51297 lvb_iuid ocfs2_meta_lvb 0 51297 NULL
142196 +disable_so_usb2_lpm_l1_timeout_show_fndecl_51308 usb2_lpm_l1_timeout_show fndecl 0 51308 NULL
142197 +disable_so_addrHigh_ULP_BDL_51312 addrHigh ULP_BDL 0 51312 NULL
142198 +disable_so_alarm_timer_nsleep_fndecl_51313 alarm_timer_nsleep fndecl 1 51313 NULL nohasharray
142199 +disable_so_cpufreq_get_max_state_fndecl_51313 cpufreq_get_max_state fndecl 1 51313 &disable_so_alarm_timer_nsleep_fndecl_51313
142200 +disable_so_addr_buffer2_cmd_desc_type0_51316 addr_buffer2 cmd_desc_type0 0 51316 NULL
142201 +disable_so___mlx4_cmd_fndecl_51319 __mlx4_cmd fndecl 0-2-5 51319 NULL
142202 +disable_so_addr_nvif_ioctl_rd_v0_51321 addr nvif_ioctl_rd_v0 0 51321 NULL
142203 +disable_so_register_write_lock_rt2800_ops_51323 register_write_lock rt2800_ops 3 51323 NULL
142204 +disable_so_addr_host_sg_desc_51324 addr host_sg_desc 0 51324 NULL
142205 +disable_so_swc_base_addr_vardecl_pc87413_wdt_c_51328 swc_base_addr vardecl_pc87413_wdt.c 0 51328 NULL
142206 +disable_so_myri10ge_set_mac_address_fndecl_51332 myri10ge_set_mac_address fndecl 0 51332 NULL
142207 +disable_so_xt_ct_set_timeout_fndecl_51333 xt_ct_set_timeout fndecl 0 51333 NULL
142208 +disable_so_crypto_ahash_digest_fndecl_51343 crypto_ahash_digest fndecl 0 51343 NULL
142209 +disable_so_calculate_next_time_fndecl_51345 calculate_next_time fndecl 0 51345 NULL
142210 +disable_so_from_kgid_fndecl_51359 from_kgid fndecl 0 51359 NULL
142211 +disable_so_dm9161_ack_interrupt_fndecl_51361 dm9161_ack_interrupt fndecl 0 51361 NULL nohasharray
142212 +disable_so_write_addr_mdc_hw_list_desc_51361 write_addr mdc_hw_list_desc 0 51361 &disable_so_dm9161_ack_interrupt_fndecl_51361
142213 +disable_so_clock_kvm_clock_data_51363 clock kvm_clock_data 0 51363 NULL
142214 +disable_so_sapi_sockaddr_mISDN_51369 sapi sockaddr_mISDN 0 51369 NULL
142215 +disable_so_act8b_ide_timing_51373 act8b ide_timing 0 51373 NULL
142216 +disable_so_driver_data_cpufreq_frequency_table_51376 driver_data cpufreq_frequency_table 0 51376 NULL
142217 +disable_so_timeout_clk_sdhci_host_51378 timeout_clk sdhci_host 0 51378 NULL
142218 +disable_so_ref_div_rv7xx_power_info_51381 ref_div rv7xx_power_info 0 51381 NULL
142219 +disable_so_event_jiffies_atkbd_51387 event_jiffies atkbd 0 51387 NULL
142220 +disable_so_addr_kvm_coalesced_mmio_zone_51392 addr kvm_coalesced_mmio_zone 0 51392 NULL
142221 +disable_so_print_fatal_signal_fndecl_51397 print_fatal_signal fndecl 1 51397 NULL
142222 +disable_so_de_media_interrupt_fndecl_51410 de_media_interrupt fndecl 2 51410 NULL nohasharray
142223 +disable_so_cryptomgr_schedule_probe_fndecl_51410 cryptomgr_schedule_probe fndecl 0 51410 &disable_so_de_media_interrupt_fndecl_51410
142224 +disable_so_ql_set_mac_addr_reg_fndecl_51414 ql_set_mac_addr_reg fndecl 0-4 51414 NULL
142225 +disable_so_iscsi_stat_sess_show_attr_conn_timeout_errors_fndecl_51417 iscsi_stat_sess_show_attr_conn_timeout_errors fndecl 0 51417 NULL
142226 +disable_so_read_addr_qla8044_minidump_entry_cache_51419 read_addr qla8044_minidump_entry_cache 0 51419 NULL
142227 +disable_so_clk_freq_khz_pll_tab_51420 clk_freq_khz pll_tab 0 51420 NULL
142228 +disable_so_pll_d_aic32x4_rate_divs_51425 pll_d aic32x4_rate_divs 0 51425 NULL
142229 +disable_so_T6_address_mxt_data_51429 T6_address mxt_data 0 51429 NULL
142230 +disable_so_q_addr_ioat_pq_descriptor_51439 q_addr ioat_pq_descriptor 0 51439 NULL
142231 +disable_so_imx_phy_crbit_assert_fndecl_51461 imx_phy_crbit_assert fndecl 0 51461 NULL
142232 +disable_so_soc_camera_clock_start_fndecl_51464 soc_camera_clock_start fndecl 0 51464 NULL
142233 +disable_so_after_ctime_nsec_nfsd4_change_info_51470 after_ctime_nsec nfsd4_change_info 0 51470 NULL
142234 +disable_so_free_fall_time_adxl34x_platform_data_51477 free_fall_time adxl34x_platform_data 0 51477 NULL
142235 +disable_so_new_c_uuid_parms_from_attrs_fndecl_51480 new_c_uuid_parms_from_attrs fndecl 0 51480 NULL
142236 +disable_so_addr_high_mcp_kreq_ether_recv_51484 addr_high mcp_kreq_ether_recv 0 51484 NULL
142237 +disable_so_min_freq_ufs_clk_info_51485 min_freq ufs_clk_info 0 51485 NULL
142238 +disable_so_force_addr_vardecl_sis5595_c_51490 force_addr vardecl_sis5595.c 0 51490 NULL
142239 +disable_so_byt_freq_opcode_fndecl_51497 byt_freq_opcode fndecl 0-2 51497 NULL
142240 +disable_so_vco_gma_clock_t_51506 vco gma_clock_t 0 51506 NULL
142241 +disable_so_saddr_irlan_cb_51519 saddr irlan_cb 0 51519 NULL
142242 +disable_so_r14_kvm_regs_51526 r14 kvm_regs 0 51526 NULL
142243 +disable_so_sys_image_guid_ib_device_modify_51537 sys_image_guid ib_device_modify 0 51537 NULL
142244 +disable_so_abx500_mask_and_set_register_interruptible_fndecl_51542 abx500_mask_and_set_register_interruptible fndecl 0-5 51542 NULL
142245 +disable_so_show_constraint_min_time_window_us_fndecl_51544 show_constraint_min_time_window_us fndecl 0 51544 NULL
142246 +disable_so_phys_addr_sge_rspq_51550 phys_addr sge_rspq 0 51550 NULL
142247 +disable_so_tw_substate_inet_timewait_sock_51564 tw_substate inet_timewait_sock 0 51564 NULL
142248 +disable_so_ebx_user_regs_struct32_51572 ebx user_regs_struct32 0 51572 NULL
142249 +disable_so_snd_azf3328_interrupt_fndecl_51583 snd_azf3328_interrupt fndecl 1 51583 NULL
142250 +disable_so_wl1251_acx_rx_msdu_life_time_fndecl_51591 wl1251_acx_rx_msdu_life_time fndecl 0 51591 NULL
142251 +disable_so_grh_gid_fl_mlx5_av_51610 grh_gid_fl mlx5_av 0 51610 NULL
142252 +disable_so_space_id_acpi_object_addr_handler_51611 space_id acpi_object_addr_handler 0 51611 NULL
142253 +disable_so_pick_local_ip6addrs_fndecl_51615 pick_local_ip6addrs fndecl 0 51615 NULL
142254 +disable_so_nmi_perfctr_msr_to_bit_fndecl_51618 nmi_perfctr_msr_to_bit fndecl 0-1 51618 NULL
142255 +disable_so_dcc_timeout_vardecl_nf_conntrack_irc_c_51622 dcc_timeout vardecl_nf_conntrack_irc.c 0 51622 NULL
142256 +disable_so_ath9k_hw_fbin2freq_fndecl_51628 ath9k_hw_fbin2freq fndecl 0-1 51628 NULL
142257 +disable_so_audit_signal_info_fndecl_51630 audit_signal_info fndecl 0-1 51630 NULL
142258 +disable_so_sirdev_schedule_request_fndecl_51632 sirdev_schedule_request fndecl 3-0 51632 NULL
142259 +disable_so_stb0899_write_s2reg_fndecl_51642 stb0899_write_s2reg fndecl 5-0 51642 NULL nohasharray
142260 +disable_so_sha512_ssse3_mod_init_fndecl_51642 sha512_ssse3_mod_init fndecl 0 51642 &disable_so_stb0899_write_s2reg_fndecl_51642
142261 +disable_so_get_bitmap_fndecl_51645 get_bitmap fndecl 0-2 51645 NULL
142262 +disable_so_total_bitmaps_btrfs_free_space_ctl_51648 total_bitmaps btrfs_free_space_ctl 0 51648 NULL
142263 +disable_so_sk_wmem_schedule_fndecl_51651 sk_wmem_schedule fndecl 2 51651 NULL
142264 +disable_so_btree_readpage_end_io_hook_fndecl_51654 btree_readpage_end_io_hook fndecl 0 51654 NULL
142265 +disable_so_delay_pi_adapter_51655 delay pi_adapter 0 51655 NULL
142266 +disable_so_snd_pcm_new_fndecl_51660 snd_pcm_new fndecl 0-3-4-5 51660 NULL
142267 +disable_so_soft_add_expires_seconds_xfrm_lifetime_cfg_51674 soft_add_expires_seconds xfrm_lifetime_cfg 0 51674 NULL
142268 +disable_so_ib_query_gid_fndecl_51677 ib_query_gid fndecl 0-2-3 51677 NULL
142269 +disable_so_m_hi_cfg_timeout_drxk_state_51689 m_hi_cfg_timeout drxk_state 0 51689 NULL
142270 +disable_so_mma9553_runtime_resume_fndecl_51690 mma9553_runtime_resume fndecl 0 51690 NULL
142271 +disable_so_phy_pm_runtime_put_fndecl_51692 phy_pm_runtime_put fndecl 0 51692 NULL
142272 +disable_so_cdclk_freq_drm_i915_private_51693 cdclk_freq drm_i915_private 0 51693 NULL
142273 +disable_so__get_div_fndecl_51696 _get_div fndecl 2-0 51696 NULL
142274 +disable_so_sit_ver_bitmap_bytesize_f2fs_checkpoint_51697 sit_ver_bitmap_bytesize f2fs_checkpoint 0 51697 NULL
142275 +disable_so_seq_framebuf_51700 seq framebuf 0 51700 NULL nohasharray
142276 +disable_so_tsc_drv_init_fndecl_51700 tsc_drv_init fndecl 0 51700 &disable_so_seq_framebuf_51700
142277 +disable_so_lower_first_uid_gid_extent_51714 lower_first uid_gid_extent 0 51714 NULL
142278 +disable_so_acpi_enter_sleep_state_prep_fndecl_51716 acpi_enter_sleep_state_prep fndecl 0-1 51716 NULL
142279 +disable_so_set_data_timeout_fndecl_51718 set_data_timeout fndecl 2-3 51718 NULL
142280 +disable_so_suspend_test_start_time_vardecl_suspend_test_c_51720 suspend_test_start_time vardecl_suspend_test.c 0 51720 NULL
142281 +disable_so_phy_addr_uli526x_board_info_51722 phy_addr uli526x_board_info 0 51722 NULL
142282 +disable_so_vdelay_bttv_geometry_51725 vdelay bttv_geometry 0 51725 NULL
142283 +disable_so_rv6xx_find_memory_clock_with_highest_vco_fndecl_51726 rv6xx_find_memory_clock_with_highest_vco fndecl 2-3 51726 NULL
142284 +disable_so_blocksize_crypto_report_hash_51730 blocksize crypto_report_hash 0 51730 NULL
142285 +disable_so_set_param_timeout_fndecl_51735 set_param_timeout fndecl 0 51735 NULL
142286 +disable_so_iowrite16be_fndecl_51739 iowrite16be fndecl 1 51739 NULL
142287 +disable_so_lvds_chip_slave_addr_lvds_chip_information_51750 lvds_chip_slave_addr lvds_chip_information 0 51750 NULL
142288 +disable_so_xhci_queue_address_device_fndecl_51755 xhci_queue_address_device fndecl 0-3-4 51755 NULL
142289 +disable_so_rx_abs_int_delay_e1000_adapter_51763 rx_abs_int_delay e1000_adapter 0 51763 NULL
142290 +disable_so_ext4_wait_block_bitmap_fndecl_51764 ext4_wait_block_bitmap fndecl 2 51764 NULL
142291 +disable_so_tid_host_cmd_ds_11n_batimeout_51772 tid host_cmd_ds_11n_batimeout 0 51772 NULL
142292 +disable_so_mpll_ss1_rv770_clock_registers_51773 mpll_ss1 rv770_clock_registers 0 51773 NULL
142293 +disable_so_xpc_disengage_timelimit_vardecl_51789 xpc_disengage_timelimit vardecl 0 51789 NULL
142294 +disable_so_current_dispclk_radeon_clock_51795 current_dispclk radeon_clock 0 51795 NULL
142295 +disable_so_mclk_sm501_clock_51799 mclk sm501_clock 0 51799 NULL
142296 +disable_so_frequency_mixart_clock_properties_51800 frequency mixart_clock_properties 0 51800 NULL nohasharray
142297 +disable_so_freq_p54_rssi_db_entry_51800 freq p54_rssi_db_entry 0 51800 &disable_so_frequency_mixart_clock_properties_51800
142298 +disable_so_display_delay_enable_s5p_mfc_ctx_51814 display_delay_enable s5p_mfc_ctx 0 51814 NULL
142299 +disable_so_phys_to_virt_fndecl_51830 phys_to_virt fndecl 1 51830 NULL
142300 +disable_so___lock_timer_fndecl_51836 __lock_timer fndecl 1 51836 NULL
142301 +disable_so_gid_index_mthca_av_51840 gid_index mthca_av 0 51840 NULL
142302 +disable_so_physical_address_smbios_cru64_info_51854 physical_address smbios_cru64_info 0 51854 NULL
142303 +disable_so_sleep_em28xx_reg_seq_51857 sleep em28xx_reg_seq 0 51857 NULL
142304 +disable_so_current_frequency_or51211_state_51860 current_frequency or51211_state 0 51860 NULL
142305 +disable_so_timer_trig_init_fndecl_51865 timer_trig_init fndecl 0 51865 NULL
142306 +disable_so___posix_timers_find_fndecl_51867 __posix_timers_find fndecl 3 51867 NULL
142307 +disable_so_xattr_hash_fndecl_51881 xattr_hash fndecl 2 51881 NULL
142308 +disable_so_ntfs_bitmap_set_bit_fndecl_51888 ntfs_bitmap_set_bit fndecl 2 51888 NULL
142309 +disable_so_hp_ntimer_hpets_51897 hp_ntimer hpets 0 51897 NULL
142310 +disable_so_crypto_blkcipher_decrypt_iv_fndecl_51901 crypto_blkcipher_decrypt_iv fndecl 0-4 51901 NULL
142311 +disable_so_emitted_jiffies_drm_i915_gem_request_51929 emitted_jiffies drm_i915_gem_request 0 51929 NULL
142312 +disable_so_PageAddress__MPI2_CONFIG_REQUEST_51930 PageAddress _MPI2_CONFIG_REQUEST 0 51930 NULL
142313 +disable_so_mlx4_read_clock_fndecl_51933 mlx4_read_clock fndecl 0 51933 NULL
142314 +disable_so_plh_retry_timestamp_pnfs_layout_hdr_51936 plh_retry_timestamp pnfs_layout_hdr 0 51936 NULL nohasharray
142315 +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
142316 +disable_so_padlock_sha256_finup_fndecl_51938 padlock_sha256_finup fndecl 0 51938 NULL
142317 +disable_so_delay_usec_e1000_nvm_info_51943 delay_usec e1000_nvm_info 0 51943 NULL
142318 +disable_so_guest_phys_addr_kvm_userspace_memory_region_51947 guest_phys_addr kvm_userspace_memory_region 0 51947 NULL
142319 +disable_so_addr_drm_radeon_gem_userptr_51948 addr drm_radeon_gem_userptr 0 51948 NULL
142320 +disable_so__regulator_enable_delay_fndecl_51949 _regulator_enable_delay fndecl 1 51949 NULL
142321 +disable_so_grp_time_xfs_mru_cache_51952 grp_time xfs_mru_cache 0 51952 NULL
142322 +disable_so_clock_realtek_pci_ms_51953 clock realtek_pci_ms 0 51953 NULL
142323 +disable_so_sm_ll_lookup_bitmap_fndecl_51973 sm_ll_lookup_bitmap fndecl 0-2 51973 NULL
142324 +disable_so_sa_family_sockaddr_51986 sa_family sockaddr 0 51986 NULL
142325 +disable_so_i_dtime_ext3_inode_info_51992 i_dtime ext3_inode_info 0 51992 NULL
142326 +disable_so_bitmap_ipmac_gc_test_fndecl_51993 bitmap_ipmac_gc_test fndecl 3 51993 NULL
142327 +disable_so_ocfs2_change_ctime_fndecl_52000 ocfs2_change_ctime fndecl 0 52000 NULL
142328 +disable_so_sadb_lifetime_usetime_sadb_lifetime_52005 sadb_lifetime_usetime sadb_lifetime 0 52005 NULL
142329 +disable_so_sysctl_lap_keepalive_time_vardecl_52006 sysctl_lap_keepalive_time vardecl 0 52006 NULL nohasharray
142330 +disable_so_address_u132_command_52006 address u132_command 0 52006 &disable_so_sysctl_lap_keepalive_time_vardecl_52006
142331 +disable_so_txdesc_interrupt_mask_ath_hw_52011 txdesc_interrupt_mask ath_hw 0 52011 NULL
142332 +disable_so_rebind_irq_to_cpu_fndecl_52013 rebind_irq_to_cpu fndecl 1-2 52013 NULL
142333 +disable_so_gid_numa_group_52023 gid numa_group 0 52023 NULL
142334 +disable_so_cpuidle_add_sysfs_fndecl_52026 cpuidle_add_sysfs fndecl 0 52026 NULL
142335 +disable_so_selinux_task_getpgid_fndecl_52032 selinux_task_getpgid fndecl 0 52032 NULL
142336 +disable_so_demod_address_cx24116_config_52035 demod_address cx24116_config 0 52035 NULL
142337 +disable_so_sched_group_set_rt_runtime_fndecl_52036 sched_group_set_rt_runtime fndecl 2-0 52036 NULL
142338 +disable_so_ntp_error_timekeeper_52044 ntp_error timekeeper 0 52044 NULL
142339 +disable_so_sys_addr_to_dram_addr_fndecl_52052 sys_addr_to_dram_addr fndecl 0-2 52052 NULL
142340 +disable_so_shared_data_busaddr_ahc_softc_52059 shared_data_busaddr ahc_softc 0 52059 NULL
142341 +disable_so_gl_demote_time_gfs2_glock_52068 gl_demote_time gfs2_glock 0 52068 NULL
142342 +disable_so_m41t93_get_time_fndecl_52075 m41t93_get_time fndecl 0 52075 NULL
142343 +disable_so_reg_val_coeff_clk_div_52082 reg_val coeff_clk_div 0 52082 NULL
142344 +disable_so_dap_fcgs_gidpn_resp_s_52084 dap fcgs_gidpn_resp_s 0 52084 NULL
142345 +disable_so_kbd_backlight_timeout_show_fndecl_52086 kbd_backlight_timeout_show fndecl 0 52086 NULL
142346 +disable_so_ifa_address_in_ifaddr_52095 ifa_address in_ifaddr 0 52095 NULL
142347 +disable_so_mmc_set_clock_fndecl_52096 mmc_set_clock fndecl 2 52096 NULL
142348 +disable_so_constant_timex_52100 constant timex 0 52100 NULL
142349 +disable_so_rds_ib_remove_ipaddr_fndecl_52103 rds_ib_remove_ipaddr fndecl 2 52103 NULL
142350 +disable_so_adf4350_set_freq_fndecl_52106 adf4350_set_freq fndecl 0-2 52106 NULL
142351 +disable_so_max_mtime_sit_info_52107 max_mtime sit_info 0 52107 NULL
142352 +disable_so_retry_delay_timestamp_fc_port_52109 retry_delay_timestamp fc_port 0 52109 NULL
142353 +disable_so_sha256_ssse3_mod_init_fndecl_52112 sha256_ssse3_mod_init fndecl 0 52112 NULL
142354 +disable_so_nilfs_btree_init_fndecl_52115 nilfs_btree_init fndecl 0 52115 NULL
142355 +disable_so_baseaddr_ds1685_priv_52117 baseaddr ds1685_priv 0 52117 NULL
142356 +disable_so_vga_get_uninterruptible_fndecl_52134 vga_get_uninterruptible fndecl 0 52134 NULL
142357 +disable_so_gr_handle_signal_fndecl_52137 gr_handle_signal fndecl 2 52137 NULL
142358 +disable_so_sample_bits_snd_pcm_runtime_52138 sample_bits snd_pcm_runtime 0 52138 NULL
142359 +disable_so_make_kgid_fndecl_52149 make_kgid fndecl 2 52149 NULL
142360 +disable_so_skcipher_sendmsg_fndecl_52153 skcipher_sendmsg fndecl 0-3 52153 NULL
142361 +disable_so_base_addr_ce_space_ath10k_ce_ring_52154 base_addr_ce_space ath10k_ce_ring 0 52154 NULL
142362 +disable_so_msr_guest_kernel_gs_base_vcpu_vmx_52157 msr_guest_kernel_gs_base vcpu_vmx 0 52157 NULL
142363 +disable_so_mpll_func_cntl_rv730_clock_registers_52160 mpll_func_cntl rv730_clock_registers 0 52160 NULL
142364 +disable_so_system_time_xenpf_settime_52164 system_time xenpf_settime 0 52164 NULL
142365 +disable_so_ddiv_gk104_clk_info_52171 ddiv gk104_clk_info 0 52171 NULL
142366 +disable_so_detect_pll_input_clock_fndecl_52172 detect_pll_input_clock fndecl 1-0 52172 NULL
142367 +disable_so_mpll_dq_func_cntl_2_ni_clock_registers_52173 mpll_dq_func_cntl_2 ni_clock_registers 0 52173 NULL
142368 +disable_so_opmode_delay_picolcd_data_52176 opmode_delay picolcd_data 0 52176 NULL
142369 +disable_so_get_display_clock_speed_drm_i915_display_funcs_52177 get_display_clock_speed drm_i915_display_funcs 0 52177 NULL
142370 +disable_so_addr_lp8788_chg_param_52185 addr lp8788_chg_param 0 52185 NULL
142371 +disable_so_beacon_interval_il_rxon_time_cmd_52191 beacon_interval il_rxon_time_cmd 0 52191 NULL
142372 +disable_so_threshold_high_nes_hw_tune_timer_52193 threshold_high nes_hw_tune_timer 0 52193 NULL
142373 +disable_so_timeout_ms_rdma_ucm_resolve_route_52203 timeout_ms rdma_ucm_resolve_route 0 52203 NULL
142374 +disable_so___mmc_set_signal_voltage_fndecl_52208 __mmc_set_signal_voltage fndecl 0 52208 NULL
142375 +disable_so_jhash_2words_fndecl_52211 jhash_2words fndecl 0-1-2 52211 NULL
142376 +disable_so_suspend_time_iwl_scan_cmd_52218 suspend_time iwl_scan_cmd 0 52218 NULL
142377 +disable_so_sha1_mb_async_update_fndecl_52220 sha1_mb_async_update fndecl 0 52220 NULL
142378 +disable_so_sleep_cx231xx_reg_seq_52228 sleep cx231xx_reg_seq 0 52228 NULL
142379 +disable_so_select_addr_1_qla8044_minidump_entry_rdmux2_52243 select_addr_1 qla8044_minidump_entry_rdmux2 0 52243 NULL nohasharray
142380 +disable_so_SYSC_setregid_fndecl_52243 SYSC_setregid fndecl 0 52243 &disable_so_select_addr_1_qla8044_minidump_entry_rdmux2_52243
142381 +disable_so_snd_pcm_timer_resolution_fndecl_52247 snd_pcm_timer_resolution fndecl 0 52247 NULL
142382 +disable_so_s_hash_function_reiserfs_sb_info_52248 s_hash_function reiserfs_sb_info 0-2 52248 NULL
142383 +disable_so_read_addr_qla8044_minidump_entry_rdmux2_52249 read_addr qla8044_minidump_entry_rdmux2 0 52249 NULL
142384 +disable_so_comp_addr_lo_dmae_command_52260 comp_addr_lo dmae_command 0 52260 NULL
142385 +disable_so_tsl2563_read_interrupt_config_fndecl_52267 tsl2563_read_interrupt_config fndecl 0 52267 NULL
142386 +disable_so_mlx4_ib_init_alias_guid_service_fndecl_52269 mlx4_ib_init_alias_guid_service fndecl 0 52269 NULL
142387 +disable_so_pvr2_hdw_get_eeprom_addr_fndecl_52271 pvr2_hdw_get_eeprom_addr fndecl 0 52271 NULL
142388 +disable_so_coalescing_timeo_bna_ib_52276 coalescing_timeo bna_ib 0 52276 NULL
142389 +disable_so_sll_protocol_sockaddr_ll_52284 sll_protocol sockaddr_ll 0 52284 NULL nohasharray
142390 +disable_so_cmd64x_set_timing_fndecl_52284 cmd64x_set_timing fndecl 3 52284 &disable_so_sll_protocol_sockaddr_ll_52284
142391 +disable_so_entrytime_batadv_bcast_duplist_entry_52297 entrytime batadv_bcast_duplist_entry 0 52297 NULL
142392 +disable_so_cumul_ack_westwood_52298 cumul_ack westwood 0 52298 NULL
142393 +disable_so_r2b_val_fc2580_freq_regs_52299 r2b_val fc2580_freq_regs 0 52299 NULL
142394 +disable_so_btree_remove32_fndecl_52302 btree_remove32 fndecl 2 52302 NULL
142395 +disable_so_btrfs_insert_delayed_items_fndecl_52308 btrfs_insert_delayed_items fndecl 0 52308 NULL
142396 +disable_so_bios_limit_cpufreq_driver_52312 bios_limit cpufreq_driver 1 52312 NULL
142397 +disable_so___nf_conntrack_hash_insert_fndecl_52323 __nf_conntrack_hash_insert fndecl 2-3 52323 NULL
142398 +disable_so_rapl_get_attr_cpumask_fndecl_52324 rapl_get_attr_cpumask fndecl 0 52324 NULL
142399 +disable_so_frequency_dst_state_52328 frequency dst_state 0 52328 NULL
142400 +disable_so_status_fifo_addr_sbp_login_descriptor_52353 status_fifo_addr sbp_login_descriptor 0 52353 NULL
142401 +disable_so_musb_write_txhubaddr_fndecl_52354 musb_write_txhubaddr fndecl 2-3 52354 NULL
142402 +disable_so_cx18_msleep_timeout_fndecl_52356 cx18_msleep_timeout fndecl 1 52356 NULL
142403 +disable_so_input_event_fndecl_52364 input_event fndecl 3-4 52364 NULL
142404 +disable_so_timeout_ip_vs_sync_v6_52374 timeout ip_vs_sync_v6 0 52374 NULL
142405 +disable_so_wait_on_bit_io_fndecl_52381 wait_on_bit_io fndecl 0 52381 NULL
142406 +disable_so_mthca_mr_alloc_notrans_fndecl_52385 mthca_mr_alloc_notrans fndecl 0-2 52385 NULL
142407 +disable_so_pwm_divisor_nvbios_perf_fan_52386 pwm_divisor nvbios_perf_fan 0 52386 NULL nohasharray
142408 +disable_so_iscsi_ipv4addr_port_info_52386 iscsi_ipv4addr port_info 0 52386 &disable_so_pwm_divisor_nvbios_perf_fan_52386
142409 +disable_so_dpp_unmapped_addr_be_dev_info_52388 dpp_unmapped_addr be_dev_info 0 52388 NULL nohasharray
142410 +disable_so_request_threaded_irq_fndecl_52388 request_threaded_irq fndecl 0-1-4 52388 &disable_so_dpp_unmapped_addr_be_dev_info_52388
142411 +disable_so_g84_cipher_ctor_fndecl_52389 g84_cipher_ctor fndecl 0 52389 NULL
142412 +disable_so_time_constant_vardecl_ntp_c_52392 time_constant vardecl_ntp.c 0 52392 NULL nohasharray
142413 +disable_so_sis_ata100_program_timings_fndecl_52392 sis_ata100_program_timings fndecl 2 52392 &disable_so_time_constant_vardecl_ntp_c_52392
142414 +disable_so_hbqaddrHigh_config_hbq_var_52395 hbqaddrHigh config_hbq_var 0 52395 NULL
142415 +disable_so_objectid_btrfs_delayed_data_ref_52398 objectid btrfs_delayed_data_ref 0 52398 NULL
142416 +disable_so_btrfs_schedule_bio_fndecl_52412 btrfs_schedule_bio fndecl 3 52412 NULL
142417 +disable_so_wm8804_set_clkdiv_fndecl_52423 wm8804_set_clkdiv fndecl 3 52423 NULL
142418 +disable_so_tm_year_rtc_time_52437 tm_year rtc_time 0 52437 NULL
142419 +disable_so_message_age_timer_value___port_info_52442 message_age_timer_value __port_info 0 52442 NULL nohasharray
142420 +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
142421 +disable_so_time_stamp_pch_gbe_buffer_52453 time_stamp pch_gbe_buffer 0 52453 NULL
142422 +disable_so_fsl_pwm_calculate_cycles_fndecl_52454 fsl_pwm_calculate_cycles fndecl 0-2 52454 NULL
142423 +disable_so_default_timetolive_sctp_association_52455 default_timetolive sctp_association 0 52455 NULL
142424 +disable_so_xc2028_sleep_fndecl_52469 xc2028_sleep fndecl 0 52469 NULL
142425 +disable_so_regulator_map_voltage_linear_fndecl_52488 regulator_map_voltage_linear fndecl 0-2-3 52488 NULL
142426 +disable_so_nsecs_to_jiffies64_fndecl_52497 nsecs_to_jiffies64 fndecl 0-1 52497 NULL
142427 +disable_so_pm_runtime_resume_fndecl_52501 pm_runtime_resume fndecl 0 52501 NULL
142428 +disable_so_stop_threshold_snd_pcm_runtime_52503 stop_threshold snd_pcm_runtime 0 52503 NULL
142429 +disable_so_il_get_passive_dwell_time_fndecl_52511 il_get_passive_dwell_time fndecl 0 52511 NULL nohasharray
142430 +disable_so_show_src_clock_sel_fndecl_52511 show_src_clock_sel fndecl 0 52511 &disable_so_il_get_passive_dwell_time_fndecl_52511
142431 +disable_so_mxl111sf_frontend_attach_atsc_mh_fndecl_52518 mxl111sf_frontend_attach_atsc_mh fndecl 0 52518 NULL
142432 +disable_so_gcm_hash_assoc_continue_fndecl_52527 gcm_hash_assoc_continue fndecl 0 52527 NULL
142433 +disable_so_time_next_packet_fq_flow_52535 time_next_packet fq_flow 0 52535 NULL nohasharray
142434 +disable_so_exit_deep_sleep_lbs_private_52535 exit_deep_sleep lbs_private 0 52535 &disable_so_time_next_packet_fq_flow_52535
142435 +disable_so_page_check_address_pmd_fndecl_52537 page_check_address_pmd fndecl 3 52537 NULL
142436 +disable_so_stime_signal_struct_52540 stime signal_struct 0 52540 NULL nohasharray
142437 +disable_so_hblank_lo_oaktrail_timing_info_52540 hblank_lo oaktrail_timing_info 0 52540 &disable_so_stime_signal_struct_52540
142438 +disable_so_sgl_pg1_addr_lo_sgl_page_pairs_52550 sgl_pg1_addr_lo sgl_page_pairs 0 52550 NULL
142439 +disable_so_tx_timeout_last_recovery_i40e_pf_52564 tx_timeout_last_recovery i40e_pf 0 52564 NULL nohasharray
142440 +disable_so_clock_name_show_fndecl_52564 clock_name_show fndecl 0 52564 &disable_so_tx_timeout_last_recovery_i40e_pf_52564
142441 +disable_so_c67x00_sched_start_scheduler_fndecl_52570 c67x00_sched_start_scheduler fndecl 0 52570 NULL
142442 +disable_so_acpi_sleep_tts_switch_fndecl_52575 acpi_sleep_tts_switch fndecl 1 52575 NULL
142443 +disable_so_addr0_nphy_rf_control_override_rev2_52577 addr0 nphy_rf_control_override_rev2 0 52577 NULL
142444 +disable_so_tv_nsec_xfs_bstime_52584 tv_nsec xfs_bstime 0 52584 NULL
142445 +disable_so_xfs_btree_check_sptr_fndecl_52587 xfs_btree_check_sptr fndecl 0 52587 NULL
142446 +disable_so_get_vmx_mem_address_fndecl_52590 get_vmx_mem_address fndecl 3 52590 NULL
142447 +disable_so_suspend_time_il3945_scan_cmd_52601 suspend_time il3945_scan_cmd 0 52601 NULL nohasharray
142448 +disable_so_ahash_def_finup_finish2_fndecl_52601 ahash_def_finup_finish2 fndecl 2 52601 &disable_so_suspend_time_il3945_scan_cmd_52601
142449 +disable_so_si4713_s_frequency_fndecl_52608 si4713_s_frequency fndecl 0 52608 NULL
142450 +disable_so_icsk_timeout_inet_connection_sock_52623 icsk_timeout inet_connection_sock 0 52623 NULL
142451 +disable_so____skb_get_hash_fndecl_52630 ___skb_get_hash fndecl 0 52630 NULL
142452 +disable_so_dn_nl_fill_ifaddr_fndecl_52641 dn_nl_fill_ifaddr fndecl 0-3-5 52641 NULL
142453 +disable_so_physical_reg_addr_wl1251_52646 physical_reg_addr wl1251 0 52646 NULL
142454 +disable_so_setup_ata_timing_52661 setup ata_timing 0 52661 NULL
142455 +disable_so_delay_tc_pie_xstats_52665 delay tc_pie_xstats 0 52665 NULL
142456 +disable_so_sys_utimensat_fndecl_52666 sys_utimensat fndecl 1 52666 NULL
142457 +disable_so_ringid_wmi_vring_cfg_52670 ringid wmi_vring_cfg 0 52670 NULL
142458 +disable_so_cmd_timeout_ms_mmc_ioc_cmd_52681 cmd_timeout_ms mmc_ioc_cmd 0 52681 NULL
142459 +disable_so_fr_timer_fndecl_52687 fr_timer fndecl 1 52687 NULL
142460 +disable_so_if_sdio_enter_deep_sleep_fndecl_52688 if_sdio_enter_deep_sleep fndecl 0 52688 NULL
142461 +disable_so_set_rate_control_runtime_52697 set_rate control_runtime 0 52697 NULL
142462 +disable_so_req_consumer_index_phy_addr_low_ql3_adapter_52703 req_consumer_index_phy_addr_low ql3_adapter 0 52703 NULL
142463 +disable_so_addr_max17042_reg_data_52712 addr max17042_reg_data 0 52712 NULL
142464 +disable_so_cit_get_clock_div_fndecl_52713 cit_get_clock_div fndecl 0 52713 NULL nohasharray
142465 +disable_so_mpll_ss2_si_clock_registers_52713 mpll_ss2 si_clock_registers 0 52713 &disable_so_cit_get_clock_div_fndecl_52713
142466 +disable_so_addr_pt1_table_52714 addr pt1_table 0 52714 NULL
142467 +disable_so_ds1742_rtc_read_time_fndecl_52716 ds1742_rtc_read_time fndecl 0 52716 NULL nohasharray
142468 +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
142469 +disable_so_ide_get_lba_addr_fndecl_52722 ide_get_lba_addr fndecl 0 52722 NULL
142470 +disable_so_msi_addr_drm_psb_private_52725 msi_addr drm_psb_private 0 52725 NULL
142471 +disable_so_migratepage_address_space_operations_52735 migratepage address_space_operations 0 52735 NULL
142472 +disable_so_apicid_cpuinfo_x86_52743 apicid cpuinfo_x86 0 52743 NULL
142473 +disable_so_ageing_time_show_fndecl_52746 ageing_time_show fndecl 0 52746 NULL
142474 +disable_so___hw_addr_add_fndecl_52752 __hw_addr_add fndecl 0-3 52752 NULL
142475 +disable_so_addr_end_vardecl_init_64_c_52755 addr_end vardecl_init_64.c 0 52755 NULL
142476 +disable_so_cmd_box_addr_wl1271_52756 cmd_box_addr wl1271 0 52756 NULL
142477 +disable_so_crypto_cipher_setkey_fndecl_52762 crypto_cipher_setkey fndecl 0-3 52762 NULL
142478 +disable_so_wmi_del_cipher_key_fndecl_52767 wmi_del_cipher_key fndecl 0 52767 NULL
142479 +disable_so_ptp_dp83640_adjtime_fndecl_52770 ptp_dp83640_adjtime fndecl 2 52770 NULL nohasharray
142480 +disable_so___hw_addr_del_ex_fndecl_52770 __hw_addr_del_ex fndecl 0-3 52770 &disable_so_ptp_dp83640_adjtime_fndecl_52770
142481 +disable_so_reiserfs_init_bitmap_cache_fndecl_52773 reiserfs_init_bitmap_cache fndecl 0 52773 NULL
142482 +disable_so_time_to_jiffies_fndecl_52778 time_to_jiffies fndecl 1-2-0 52778 NULL nohasharray
142483 +disable_so_cleanup_addr_jit_context_52778 cleanup_addr jit_context 0 52778 &disable_so_time_to_jiffies_fndecl_52778 nohasharray
142484 +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
142485 +disable_so_sxgbe_rx_interrupt_fndecl_52784 sxgbe_rx_interrupt fndecl 1 52784 NULL
142486 +disable_so_twl_rtc_set_time_fndecl_52785 twl_rtc_set_time fndecl 0 52785 NULL
142487 +disable_so_mwifiex_set_aes_key_v2_fndecl_52787 mwifiex_set_aes_key_v2 fndecl 0 52787 NULL
142488 +disable_so_start_address_rtl2832_reg_entry_52792 start_address rtl2832_reg_entry 0 52792 NULL nohasharray
142489 +disable_so_encrypt_crypto_aead_52792 encrypt crypto_aead 0 52792 &disable_so_start_address_rtl2832_reg_entry_52792
142490 +disable_so_dynamic_ps_timeout_write_fndecl_52802 dynamic_ps_timeout_write fndecl 3-0 52802 NULL
142491 +disable_so_sge_addr_vf_pf_rxq_params_52803 sge_addr vf_pf_rxq_params 0 52803 NULL
142492 +disable_so_rtc_time64_to_tm_fndecl_52820 rtc_time64_to_tm fndecl 1 52820 NULL
142493 +disable_so_fwnet_hwaddr_fifo_fndecl_52824 fwnet_hwaddr_fifo fndecl 0 52824 NULL
142494 +disable_so_clock_khz_dib0090_io_config_52827 clock_khz dib0090_io_config 0 52827 NULL
142495 +disable_so_tuner_frequency_m88rs2000_state_52828 tuner_frequency m88rs2000_state 0 52828 NULL
142496 +disable_so_twl4030_wdt_set_timeout_fndecl_52829 twl4030_wdt_set_timeout fndecl 2 52829 NULL
142497 +disable_so_min_vruntime_cfs_rq_52838 min_vruntime cfs_rq 0 52838 NULL
142498 +disable_so_nv04_timer_alarm_fndecl_52840 nv04_timer_alarm fndecl 2 52840 NULL
142499 +disable_so_sched_runtime_sched_attr_52849 sched_runtime sched_attr 0 52849 NULL
142500 +disable_so_seq_netlink_callback_52857 seq netlink_callback 0 52857 NULL
142501 +disable_so_addr_hi_tg3_tx_buffer_desc_52858 addr_hi tg3_tx_buffer_desc 0 52858 NULL
142502 +disable_so_dev_addr_add_fndecl_52865 dev_addr_add fndecl 0 52865 NULL
142503 +disable_so_mxt_lookup_bootloader_address_fndecl_52874 mxt_lookup_bootloader_address fndecl 0 52874 NULL
142504 +disable_so_rhashtable_init_fndecl_52886 rhashtable_init fndecl 0 52886 NULL
142505 +disable_so_log_unit_to_scsi3addr_fndecl_52888 log_unit_to_scsi3addr fndecl 3 52888 NULL
142506 +disable_so_warmup_time_tc_sfb_qopt_52893 warmup_time tc_sfb_qopt 0 52893 NULL
142507 +disable_so_acpi_ex_system_signal_event_fndecl_52910 acpi_ex_system_signal_event fndecl 0 52910 NULL
142508 +disable_so_ccp_aes_rfc3686_crypt_fndecl_52911 ccp_aes_rfc3686_crypt fndecl 0 52911 NULL
142509 +disable_so_bf_daddr_ath_rxbuf_52915 bf_daddr ath_rxbuf 0 52915 NULL
142510 +disable_so_addr_aac_entry_52921 addr aac_entry 0 52921 NULL
142511 +disable_so_slack_start_time_dql_52922 slack_start_time dql 0 52922 NULL
142512 +disable_so_mma8452_set_hp_filter_frequency_fndecl_52927 mma8452_set_hp_filter_frequency fndecl 0-2-3 52927 NULL
142513 +disable_so_dqb_btime_mem_dqblk_52929 dqb_btime mem_dqblk 0 52929 NULL
142514 +disable_so_mthca_cmd_fndecl_52930 mthca_cmd fndecl 0-2-3 52930 NULL
142515 +disable_so_signal_nr_nvkm_specdom_52941 signal_nr nvkm_specdom 0 52941 NULL
142516 +disable_so_bitmap_find_next_zero_area_fndecl_52944 bitmap_find_next_zero_area fndecl 0-2-3-4-5 52944 NULL
142517 +disable_so_host_addr_p54p_desc_52948 host_addr p54p_desc 0 52948 NULL
142518 +disable_so_signal_strength_wireless_stats_52949 signal_strength wireless_stats 0 52949 NULL
142519 +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
142520 +disable_so_base_time_dummy_systimer_pcm_52952 base_time dummy_systimer_pcm 0 52952 NULL
142521 +disable_so_setkey_crypto_ahash_52959 setkey crypto_ahash 0-3 52959 NULL
142522 +disable_so_sll_hatype_sockaddr_ll_52974 sll_hatype sockaddr_ll 0 52974 NULL
142523 +disable_so_ktime_get_raw_fast_ns_fndecl_52986 ktime_get_raw_fast_ns fndecl 0 52986 NULL
142524 +disable_so_tv_freq_tuner_52988 tv_freq tuner 0 52988 NULL
142525 +disable_so_cifs_ci_hash_fndecl_52999 cifs_ci_hash fndecl 0 52999 NULL
142526 +disable_so_last_jiffies_rtc_plat_data_53004 last_jiffies rtc_plat_data 0 53004 NULL
142527 +disable_so_base_addr_eisa_device_53008 base_addr eisa_device 0 53008 NULL
142528 +disable_so_vbaddr_drm_savage_common_state_53015 vbaddr drm_savage_common_state 0 53015 NULL
142529 +disable_so_cal_timeout_at86rf230_local_53017 cal_timeout at86rf230_local 0 53017 NULL
142530 +disable_so_alarmtimer_init_fndecl_53028 alarmtimer_init fndecl 0 53028 NULL
142531 +disable_so_compat_sys_timerfd_gettime_fndecl_53031 compat_sys_timerfd_gettime fndecl 1 53031 NULL
142532 +disable_so_gpu_addr_radeon_vce_53033 gpu_addr radeon_vce 0 53033 NULL
142533 +disable_so_valleyview_get_display_clock_speed_fndecl_53041 valleyview_get_display_clock_speed fndecl 0 53041 NULL
142534 +disable_so__base_interrupt_fndecl_53046 _base_interrupt fndecl 1 53046 NULL
142535 +disable_so_qtail_snd_timer_user_53048 qtail snd_timer_user 0 53048 NULL
142536 +disable_so_max14577_set_fast_charge_timer_fndecl_53049 max14577_set_fast_charge_timer fndecl 2-0 53049 NULL nohasharray
142537 +disable_so_addr_mce_53049 addr mce 0 53049 &disable_so_max14577_set_fast_charge_timer_fndecl_53049
142538 +disable_so_find_next_bit_fndecl_53053 find_next_bit fndecl 0-2-3 53053 NULL
142539 +disable_so_sci_apc_agent_start_timer_fndecl_53055 sci_apc_agent_start_timer fndecl 2 53055 NULL
142540 +disable_so_padlock_sha_update_fndecl_53061 padlock_sha_update fndecl 0-3 53061 NULL
142541 +disable_so_soft_byte_limit_xfrm_lifetime_cfg_53071 soft_byte_limit xfrm_lifetime_cfg 0 53071 NULL
142542 +disable_so_addr_ahd_dma64_seg_53072 addr ahd_dma64_seg 0 53072 NULL
142543 +disable_so_address_bus_request_53084 address bus_request 0 53084 NULL
142544 +disable_so_xfs_btree_dec_cursor_fndecl_53087 xfs_btree_dec_cursor fndecl 0 53087 NULL
142545 +disable_so_gro_flush_timeout_store_fndecl_53088 gro_flush_timeout_store fndecl 4-0 53088 NULL
142546 +disable_so_handle_nested_irq_fndecl_53092 handle_nested_irq fndecl 1 53092 NULL
142547 +disable_so_hi_cfg_bridge_delay_drxd_state_53095 hi_cfg_bridge_delay drxd_state 0 53095 NULL nohasharray
142548 +disable_so___scale_tsc_fndecl_53095 __scale_tsc fndecl 0-1-2 53095 &disable_so_hi_cfg_bridge_delay_drxd_state_53095
142549 +disable_so_bitmap_dirty_bits_fndecl_53100 bitmap_dirty_bits fndecl 2 53100 NULL
142550 +disable_so_ufs_data_ptr_to_cpu_fndecl_53104 ufs_data_ptr_to_cpu fndecl 0 53104 NULL
142551 +disable_so_i_mtime_ocfs2_dinode_53106 i_mtime ocfs2_dinode 0 53106 NULL
142552 +disable_so_raddr_c2wr_ae_active_connect_results_53114 raddr c2wr_ae_active_connect_results 0 53114 NULL
142553 +disable_so_freerunning_timer_show_fndecl_53117 freerunning_timer_show fndecl 0 53117 NULL
142554 +disable_so_get_est_timing_fndecl_53119 get_est_timing fndecl 0 53119 NULL
142555 +disable_so_irq_clock_event_device_53122 irq clock_event_device 0 53122 NULL nohasharray
142556 +disable_so_address_iio_dev_attr_53122 address iio_dev_attr 0 53122 &disable_so_irq_clock_event_device_53122
142557 +disable_so__get_maxdiv_fndecl_53128 _get_maxdiv fndecl 0-2 53128 NULL
142558 +disable_so_boot_time_nfsd_net_53147 boot_time nfsd_net 0 53147 NULL
142559 +disable_so_fl_init_hashtable_fndecl_53150 fl_init_hashtable fndecl 0 53150 NULL
142560 +disable_so_nh_saddr_fib_nh_53152 nh_saddr fib_nh 0 53152 NULL
142561 +disable_so_direct_IO_address_space_operations_53153 direct_IO address_space_operations 0-3 53153 NULL
142562 +disable_so_db_addr_mlx5_ib_create_cq_53177 db_addr mlx5_ib_create_cq 0 53177 NULL nohasharray
142563 +disable_so_page_address_in_vma_fndecl_53177 page_address_in_vma fndecl 0 53177 &disable_so_db_addr_mlx5_ib_create_cq_53177
142564 +disable_so_current_freq_av7110_53182 current_freq av7110 0 53182 NULL
142565 +disable_so_wdt_set_timeout_fndecl_53183 wdt_set_timeout fndecl 2 53183 NULL
142566 +disable_so_uid_min_xt_owner_match_info_53195 uid_min xt_owner_match_info 0 53195 NULL
142567 +disable_so_clear_range_i915_address_space_53198 clear_range i915_address_space 2-3 53198 NULL nohasharray
142568 +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
142569 +disable_so_timestamp_il_priv_53208 timestamp il_priv 0 53208 NULL
142570 +disable_so_nbytes_ablkcipher_request_53222 nbytes ablkcipher_request 0 53222 NULL
142571 +disable_so_bitmap_size_sit_info_53224 bitmap_size sit_info 0 53224 NULL
142572 +disable_so_minlen_img_ir_free_timing_53227 minlen img_ir_free_timing 0 53227 NULL
142573 +disable_so_btrfs_alloc_from_bitmap_fndecl_53249 btrfs_alloc_from_bitmap fndecl 0-4-5 53249 NULL
142574 +disable_so_micd_timeout_arizona_extcon_info_53253 micd_timeout arizona_extcon_info 0 53253 NULL
142575 +disable_so_mipi_dsi_dcs_exit_sleep_mode_fndecl_53255 mipi_dsi_dcs_exit_sleep_mode fndecl 0 53255 NULL
142576 +disable_so_btc_find_valid_clock_fndecl_53267 btc_find_valid_clock fndecl 0-3-2 53267 NULL nohasharray
142577 +disable_so_cnsmr_idx_addr_wqicb_53267 cnsmr_idx_addr wqicb 0 53267 &disable_so_btc_find_valid_clock_fndecl_53267
142578 +disable_so_cg_spll_func_cntl_3_rv730_clock_registers_53272 cg_spll_func_cntl_3 rv730_clock_registers 0 53272 NULL
142579 +disable_so_switch_time_il4965_channel_switch_cmd_53281 switch_time il4965_channel_switch_cmd 0 53281 NULL
142580 +disable_so_mic_x100_ack_interrupt_fndecl_53283 mic_x100_ack_interrupt fndecl 0 53283 NULL nohasharray
142581 +disable_so_bitmap_set_ll_fndecl_53283 bitmap_set_ll fndecl 0-2-3 53283 &disable_so_mic_x100_ack_interrupt_fndecl_53283
142582 +disable_so_ci_otg_del_timer_fndecl_53284 ci_otg_del_timer fndecl 2 53284 NULL
142583 +disable_so_elapsed_jiffies_msecs_fndecl_53288 elapsed_jiffies_msecs fndecl 0 53288 NULL
142584 +disable_so_neigh_add_timer_fndecl_53296 neigh_add_timer fndecl 2 53296 NULL
142585 +disable_so_chunk_sizek_var_mtrr_state_53302 chunk_sizek var_mtrr_state 0 53302 NULL
142586 +disable_so_set_flexbg_block_bitmap_fndecl_53307 set_flexbg_block_bitmap fndecl 0-4-5 53307 NULL
142587 +disable_so_tw_rcv_wscale_inet_timewait_sock_53312 tw_rcv_wscale inet_timewait_sock 0 53312 NULL
142588 +disable_so_ablkcipher_walk_next_fndecl_53328 ablkcipher_walk_next fndecl 0 53328 NULL
142589 +disable_so_xen_mce_chrdev_open_fndecl_53331 xen_mce_chrdev_open fndecl 0 53331 NULL
142590 +disable_so_be16_add_cpu_fndecl_53336 be16_add_cpu fndecl 2 53336 NULL
142591 +disable_so_write_end_address_space_operations_53339 write_end address_space_operations 0-3-4-5 53339 NULL
142592 +disable_so_kobj_cpu_cpufreq_policy_53349 kobj_cpu cpufreq_policy 0 53349 NULL
142593 +disable_so_cticks_snd_timer_instance_53353 cticks snd_timer_instance 0 53353 NULL
142594 +disable_so_bus_num_atto_csmi_get_pci_bus_addr_53363 bus_num atto_csmi_get_pci_bus_addr 0 53363 NULL
142595 +disable_so_wall_time_sec_vsyscall_gtod_data_53364 wall_time_sec vsyscall_gtod_data 0 53364 NULL
142596 +disable_so_vfrontporch_v4l2_bt_timings_53369 vfrontporch v4l2_bt_timings 0 53369 NULL
142597 +disable_so_dataset_patch_addr_ath6kl_hw_53371 dataset_patch_addr ath6kl_hw 0 53371 NULL
142598 +disable_so___bitmap_subset_fndecl_53372 __bitmap_subset fndecl 3 53372 NULL
142599 +disable_so_sii9234_runtime_resume_fndecl_53375 sii9234_runtime_resume fndecl 0 53375 NULL
142600 +disable_so_ccp_crypto_init_fndecl_53377 ccp_crypto_init fndecl 0 53377 NULL
142601 +disable_so_inaddr_usnic_fwd_dev_53382 inaddr usnic_fwd_dev 0 53382 NULL
142602 +disable_so_ndo_validate_addr_net_device_ops_53392 ndo_validate_addr net_device_ops 0 53392 NULL nohasharray
142603 +disable_so_valid_msr_intercept_fndecl_53392 valid_msr_intercept fndecl 1 53392 &disable_so_ndo_validate_addr_net_device_ops_53392
142604 +disable_so_ept_walk_addr_fndecl_53393 ept_walk_addr fndecl 3-4 53393 NULL
142605 +disable_so_dma_alloc_attrs_fndecl_53394 dma_alloc_attrs fndecl 2-4 53394 NULL
142606 +disable_so_btrfs_delayed_inode_init_fndecl_53395 btrfs_delayed_inode_init fndecl 0 53395 NULL
142607 +disable_so_atomic_stats_read_fndecl_53399 atomic_stats_read fndecl 3-0 53399 NULL
142608 +disable_so_src_slave_addr_rcar_dmac_chan_53400 src_slave_addr rcar_dmac_chan 0 53400 NULL
142609 +disable_so_sys_guid_ib_node_info_53401 sys_guid ib_node_info 0 53401 NULL
142610 +disable_so_freqValTelevision_pvr2_hdw_53403 freqValTelevision pvr2_hdw 0 53403 NULL
142611 +disable_so_quotad_check_timeo_fndecl_53409 quotad_check_timeo fndecl 4 53409 NULL
142612 +disable_so_smp_size_set_mtrr_data_53411 smp_size set_mtrr_data 0 53411 NULL
142613 +disable_so_addr_wil_fw_data_gw_53417 addr wil_fw_data_gw 0 53417 NULL
142614 +disable_so_irlap_start_wd_timer_fndecl_53423 irlap_start_wd_timer fndecl 2 53423 NULL
142615 +disable_so_nla_put_u32_fndecl_53424 nla_put_u32 fndecl 0-3 53424 NULL
142616 +disable_so_ucode_start_addr_smc_firmware_header_v1_0_53438 ucode_start_addr smc_firmware_header_v1_0 0 53438 NULL
142617 +disable_so_dma_addr_tso_state_53442 dma_addr tso_state 0 53442 NULL
142618 +disable_so___down_common_fndecl_53444 __down_common fndecl 2 53444 NULL
142619 +disable_so_bma180_set_sleep_state_fndecl_53447 bma180_set_sleep_state fndecl 0 53447 NULL
142620 +disable_so_reqsize_crypto_ahash_53448 reqsize crypto_ahash 0 53448 NULL
142621 +disable_so_qs_rtbtimelimit_fs_quota_stat_53453 qs_rtbtimelimit fs_quota_stat 0 53453 NULL
142622 +disable_so_mmc_set_relative_addr_fndecl_53454 mmc_set_relative_addr fndecl 0 53454 NULL
142623 +disable_so_genwqe_debugfs_jtimer_open_fndecl_53455 genwqe_debugfs_jtimer_open fndecl 0 53455 NULL
142624 +disable_so_xruns_snd_rawmidi_runtime_53458 xruns snd_rawmidi_runtime 0 53458 NULL
142625 +disable_so_cpumask_local_spread_fndecl_53460 cpumask_local_spread fndecl 0-1-2 53460 NULL
142626 +disable_so_peer_addr_rds_info_tcp_socket_53463 peer_addr rds_info_tcp_socket 0 53463 NULL
142627 +disable_so_do_set_fan_div_fndecl_53464 do_set_fan_div fndecl 0 53464 NULL
142628 +disable_so_nfs_map_uid_to_name_fndecl_53467 nfs_map_uid_to_name fndecl 4-0 53467 NULL
142629 +disable_so_handle_drm_vmw_fence_signaled_arg_53472 handle drm_vmw_fence_signaled_arg 0 53472 NULL
142630 +disable_so_guest_perf_guest_switch_msr_53477 guest perf_guest_switch_msr 0 53477 NULL
142631 +disable_so_encrypt_blkcipher_alg_53493 encrypt blkcipher_alg 4 53493 NULL
142632 +disable_so_tmr_disable_sound_lowlev_timer_53495 tmr_disable sound_lowlev_timer 1 53495 NULL nohasharray
142633 +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
142634 +disable_so_conversion_time_smm665_data_53516 conversion_time smm665_data 0 53516 NULL
142635 +disable_so_iscsi_tpg_attrib_store_netif_timeout_fndecl_53517 iscsi_tpg_attrib_store_netif_timeout fndecl 0-3 53517 NULL
142636 +disable_so_address_ib_umem_53524 address ib_umem 0 53524 NULL
142637 +disable_so_di_gid_gfs2_dinode_53528 di_gid gfs2_dinode 0 53528 NULL
142638 +disable_so_mem_busaddr_ahc_platform_data_53533 mem_busaddr ahc_platform_data 0 53533 NULL nohasharray
142639 +disable_so_sg_list_busaddr_scb_53533 sg_list_busaddr scb 0 53533 &disable_so_mem_busaddr_ahc_platform_data_53533
142640 +disable_so_vactive_hi_lvds_dvo_timing_53549 vactive_hi lvds_dvo_timing 0 53549 NULL
142641 +disable_so_block_dma_addr_rx_block_info_53550 block_dma_addr rx_block_info 0 53550 NULL
142642 +disable_so_st_ctime_nsec_compat_stat_53567 st_ctime_nsec compat_stat 0 53567 NULL
142643 +disable_so_storm_memset_hc_timeout_fndecl_53596 storm_memset_hc_timeout fndecl 2-3-5 53596 NULL
142644 +disable_so_vapic_addr_kvm_lapic_53599 vapic_addr kvm_lapic 0 53599 NULL
142645 +disable_so_schedule_irq_fndecl_53600 schedule_irq fndecl 2 53600 NULL
142646 +disable_so_smp_cmd_ident_addr_info_fndecl_53602 smp_cmd_ident_addr_info fndecl 0 53602 NULL
142647 +disable_so_rsp_dmaaddr_fw_scsi_cmd_wr_53609 rsp_dmaaddr fw_scsi_cmd_wr 0 53609 NULL
142648 +disable_so_device_addr_p54p_desc_53612 device_addr p54p_desc 0 53612 NULL nohasharray
142649 +disable_so_wm8350_reg_write_fndecl_53612 wm8350_reg_write fndecl 2-3-0 53612 &disable_so_device_addr_p54p_desc_53612
142650 +disable_so_ringid_wil_back_tx_53620 ringid wil_back_tx 0 53620 NULL nohasharray
142651 +disable_so_ahd_resolve_seqaddr_fndecl_53620 ahd_resolve_seqaddr fndecl 0-2 53620 &disable_so_ringid_wil_back_tx_53620
142652 +disable_so_sleep_control_elan_transport_ops_53622 sleep_control elan_transport_ops 0 53622 NULL
142653 +disable_so_btrfs_set_token_inode_gid_fndecl_53628 btrfs_set_token_inode_gid fndecl 3 53628 NULL
142654 +disable_so_format_gro_flush_timeout_fndecl_53638 format_gro_flush_timeout fndecl 0 53638 NULL
142655 +disable_so_one_bits_word_at_a_time_53641 one_bits word_at_a_time 0 53641 NULL
142656 +disable_so_i2c_addr_xc2028_config_53658 i2c_addr xc2028_config 0 53658 NULL
142657 +disable_so_ss_tss_segment_32_53663 ss tss_segment_32 0 53663 NULL
142658 +disable_so_backlight_off_delay_cdv_intel_dp_53664 backlight_off_delay cdv_intel_dp 0 53664 NULL
142659 +disable_so_genwqe_debugfs_prev_dbg_uid1_open_fndecl_53665 genwqe_debugfs_prev_dbg_uid1_open fndecl 0 53665 NULL
142660 +disable_so_mult_clocksource_53667 mult clocksource 0 53667 NULL nohasharray
142661 +disable_so_parse_nl_addr_fndecl_53667 parse_nl_addr fndecl 0 53667 &disable_so_mult_clocksource_53667
142662 +disable_so_irq_parport_53669 irq parport 0 53669 NULL
142663 +disable_so_apparmor_hash_size_vardecl_crypto_c_53670 apparmor_hash_size vardecl_crypto.c 0 53670 NULL
142664 +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
142665 +disable_so_si_do_program_memory_timing_parameters_fndecl_53672 si_do_program_memory_timing_parameters fndecl 0 53672 NULL
142666 +disable_so_addr_tx_desc_53676 addr tx_desc 0 53676 NULL
142667 +disable_so_put_unaligned_be16_fndecl_53677 put_unaligned_be16 fndecl 1 53677 NULL
142668 +disable_so_family_xfrm_usersa_id_53678 family xfrm_usersa_id 0 53678 NULL
142669 +disable_so_bcm54xx_ack_interrupt_fndecl_53685 bcm54xx_ack_interrupt fndecl 0 53685 NULL nohasharray
142670 +disable_so_svga_check_timings_fndecl_53685 svga_check_timings fndecl 3 53685 &disable_so_bcm54xx_ack_interrupt_fndecl_53685
142671 +disable_so_i40e_vc_add_mac_addr_msg_fndecl_53688 i40e_vc_add_mac_addr_msg fndecl 0-3 53688 NULL
142672 +disable_so_addr_mvfrey_inlist_entry_53690 addr mvfrey_inlist_entry 0 53690 NULL
142673 +disable_so_pch_src_uuid_hi_read_fndecl_53692 pch_src_uuid_hi_read fndecl 0 53692 NULL
142674 +disable_so___bitmap_intersects_fndecl_53698 __bitmap_intersects fndecl 3 53698 NULL
142675 +disable_so_atomic_open_fndecl_53702 atomic_open fndecl 0 53702 NULL
142676 +disable_so_address_dsp_scb_descriptor_53708 address dsp_scb_descriptor 0 53708 NULL
142677 +disable_so_timestamp_il_rx_phy_res_53714 timestamp il_rx_phy_res 0 53714 NULL
142678 +disable_so_start_time_edac_pci_ctl_info_53715 start_time edac_pci_ctl_info 0 53715 NULL
142679 +disable_so_show_forward_delay_timer_fndecl_53717 show_forward_delay_timer fndecl 0 53717 NULL nohasharray
142680 +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
142681 +disable_so_memory_address_range_set_error_type_with_address_53722 memory_address_range set_error_type_with_address 0 53722 NULL
142682 +disable_so_sm501_find_clock_fndecl_53729 sm501_find_clock fndecl 3-0 53729 NULL
142683 +disable_so___round_jiffies_relative_fndecl_53743 __round_jiffies_relative fndecl 2-0-1 53743 NULL
142684 +disable_so_ccp_aes_xts_crypt_fndecl_53745 ccp_aes_xts_crypt fndecl 0 53745 NULL
142685 +disable_so_buf_addr_mlx5_ib_create_cq_53754 buf_addr mlx5_ib_create_cq 0 53754 NULL
142686 +disable_so_i_gid_sysv_inode_53757 i_gid sysv_inode 0 53757 NULL
142687 +disable_so_address_fm10k_fault_53764 address fm10k_fault 0 53764 NULL
142688 +disable_so_ntb_set_mw_addr_fndecl_53775 ntb_set_mw_addr fndecl 3 53775 NULL
142689 +disable_so_rx_bd_haddr_lo_bnx2_rx_bd_53781 rx_bd_haddr_lo bnx2_rx_bd 0 53781 NULL
142690 +disable_so_set_rfreg_rtl_hal_ops_53782 set_rfreg rtl_hal_ops 3-5 53782 NULL
142691 +disable_so_kstrtoll_fndecl_53783 kstrtoll fndecl 0 53783 NULL
142692 +disable_so_btrfs_set_token_64_fndecl_53792 btrfs_set_token_64 fndecl 3-4 53792 NULL
142693 +disable_so_clock_dw_mci_slot_53801 clock dw_mci_slot 0 53801 NULL nohasharray
142694 +disable_so_i_uid_nilfs_inode_53801 i_uid nilfs_inode 0 53801 &disable_so_clock_dw_mci_slot_53801
142695 +disable_so_packet_len_2_sched_time_fndecl_53809 packet_len_2_sched_time fndecl 0-1 53809 NULL
142696 +disable_so_calc_div_fndecl_53821 calc_div fndecl 0-1 53821 NULL
142697 +disable_so_rsvd_pbl_addr_tpt_entry_53834 rsvd_pbl_addr tpt_entry 0 53834 NULL nohasharray
142698 +disable_so_dsc_rw_frequency_idetape_config_53834 dsc_rw_frequency idetape_config 0 53834 &disable_so_rsvd_pbl_addr_tpt_entry_53834
142699 +disable_so_ahc_get_sense_bufaddr_fndecl_53837 ahc_get_sense_bufaddr fndecl 0 53837 NULL
142700 +disable_so_jiffies_at_alloc_scsi_cmnd_53839 jiffies_at_alloc scsi_cmnd 0 53839 NULL
142701 +disable_so_sense_addr_orc_scb_53841 sense_addr orc_scb 0 53841 NULL
142702 +disable_so_stall_timeout_xenvif_53851 stall_timeout xenvif 0 53851 NULL
142703 +disable_so_tlv_put_btrfs_timespec_fndecl_53854 tlv_put_btrfs_timespec fndecl 0 53854 NULL
142704 +disable_so_nfsd4_decode_time_fndecl_53864 nfsd4_decode_time fndecl 0 53864 NULL
142705 +disable_so_threshold_target_nes_hw_tune_timer_53868 threshold_target nes_hw_tune_timer 0 53868 NULL
142706 +disable_so_i_uid_bfs_inode_53869 i_uid bfs_inode 0 53869 NULL
142707 +disable_so_vidioc_query_dv_timings_fndecl_53872 vidioc_query_dv_timings fndecl 0 53872 NULL
142708 +disable_so_rtl2832_sleep_fndecl_53873 rtl2832_sleep fndecl 0 53873 NULL
142709 +disable_so_snd_soc_update_bits_fndecl_53881 snd_soc_update_bits fndecl 0-2-4-3 53881 NULL
142710 +disable_so_sched_clock_fndecl_53886 sched_clock fndecl 0 53886 NULL
142711 +disable_so_ps_poll_upsd_timeouts_read_fndecl_53888 ps_poll_upsd_timeouts_read fndecl 3 53888 NULL
142712 +disable_so_pmdown_time_set_fndecl_53891 pmdown_time_set fndecl 0-4 53891 NULL
142713 +disable_so_sync_endtime_ip_vs_conn_53903 sync_endtime ip_vs_conn 0 53903 NULL
142714 +disable_so_timeout_c_tpm_vendor_specific_53905 timeout_c tpm_vendor_specific 0 53905 NULL
142715 +disable_so_i2c_address_mxl5005s_config_53906 i2c_address mxl5005s_config 0 53906 NULL
142716 +disable_so_bin_dn_node_address_fndecl_53909 bin_dn_node_address fndecl 0 53909 NULL
142717 +disable_so_i2c_addr_dib3000mc_state_53912 i2c_addr dib3000mc_state 0 53912 NULL
142718 +disable_so_musb_schedule_fndecl_53920 musb_schedule fndecl 3-0 53920 NULL
142719 +disable_so_card_addr_pcmcia_device_53921 card_addr pcmcia_device 0 53921 NULL
142720 +disable_so_freq_si476x_tune_freq_args_53927 freq si476x_tune_freq_args 0 53927 NULL
142721 +disable_so_xfrm_dst_hash_transfer_fndecl_53935 xfrm_dst_hash_transfer fndecl 4 53935 NULL
142722 +disable_so_fs_time_ufs_super_block_first_53936 fs_time ufs_super_block_first 0 53936 NULL
142723 +disable_so_buffer_addr_ath6kl_dbglog_buf_53947 buffer_addr ath6kl_dbglog_buf 0 53947 NULL
142724 +disable_so_drbd_send_bitmap_fndecl_53952 drbd_send_bitmap fndecl 0 53952 NULL
142725 +disable_so_xfs_kuid_to_uid_fndecl_53958 xfs_kuid_to_uid fndecl 0 53958 NULL
142726 +disable_so_addr_off_bfa_flash_53970 addr_off bfa_flash 0 53970 NULL
142727 +disable_so_string_langid_usb_device_53974 string_langid usb_device 0 53974 NULL
142728 +disable_so_src_addr_qla4_83xx_pex_dma_descriptor_53995 src_addr qla4_83xx_pex_dma_descriptor 0 53995 NULL
142729 +disable_so_crc32_pclmul_mod_init_fndecl_53996 crc32_pclmul_mod_init fndecl 0 53996 NULL
142730 +disable_so_range_to_mtrr_with_hole_fndecl_53998 range_to_mtrr_with_hole fndecl 0-2-3 53998 NULL
142731 +disable_so_cpu_cpufreq_freqs_54025 cpu cpufreq_freqs 0 54025 NULL
142732 +disable_so_read_addr_qla83xx_minidump_entry_pollrd_54033 read_addr qla83xx_minidump_entry_pollrd 0 54033 NULL
142733 +disable_so_wall_time_coarse_nsec_vsyscall_gtod_data_54044 wall_time_coarse_nsec vsyscall_gtod_data 0 54044 NULL
142734 +disable_so_HTotal_xtimings_54045 HTotal xtimings 0 54045 NULL
142735 +disable_so_hpi_cobranet_get_static_ip_address_fndecl_54046 hpi_cobranet_get_static_ip_address fndecl 1 54046 NULL
142736 +disable_so_device_reset_timer_mipi_config_54052 device_reset_timer mipi_config 0 54052 NULL
142737 +disable_so_myri10ge_watchdog_timeout_vardecl_myri10ge_c_54061 myri10ge_watchdog_timeout vardecl_myri10ge.c 0 54061 NULL
142738 +disable_so_slope_div_nvbios_therm_sensor_54063 slope_div nvbios_therm_sensor 0 54063 NULL
142739 +disable_so_cg_spll_func_cntl_rv770_clock_registers_54065 cg_spll_func_cntl rv770_clock_registers 0 54065 NULL
142740 +disable_so_custom_divisor_serial_struct_54066 custom_divisor serial_struct 0 54066 NULL
142741 +disable_so_cq_get_mtt_addr_fndecl_54071 cq_get_mtt_addr fndecl 0 54071 NULL
142742 +disable_so_stack_maxrandom_size_fndecl_54078 stack_maxrandom_size fndecl 0 54078 NULL
142743 +disable_so_ktime_get_mono_fast_ns_fndecl_54083 ktime_get_mono_fast_ns fndecl 0 54083 NULL
142744 +disable_so_reachable_time_neigh_parms_54094 reachable_time neigh_parms 0 54094 NULL
142745 +disable_so_hid_time_parse_report_fndecl_54114 hid_time_parse_report fndecl 0 54114 NULL
142746 +disable_so_baddr0_gru_instruction_54117 baddr0 gru_instruction 0 54117 NULL
142747 +disable_so_time_in_queue_disk_stats_54131 time_in_queue disk_stats 0 54131 NULL
142748 +disable_so_smsc95xx_set_mac_address_fndecl_54135 smsc95xx_set_mac_address fndecl 0 54135 NULL
142749 +disable_so_sysctl_numa_balancing_scan_delay_vardecl_54140 sysctl_numa_balancing_scan_delay vardecl 0 54140 NULL nohasharray
142750 +disable_so_tun16_to_cpu_fndecl_54140 tun16_to_cpu fndecl 0-2 54140 &disable_so_sysctl_numa_balancing_scan_delay_vardecl_54140
142751 +disable_so_addr_2_qla8044_minidump_entry_pollrdmwr_54142 addr_2 qla8044_minidump_entry_pollrdmwr 0 54142 NULL
142752 +disable_so___xfrm6_pref_hash_fndecl_54144 __xfrm6_pref_hash fndecl 0 54144 NULL
142753 +disable_so_sm501_select_clock_fndecl_54146 sm501_select_clock fndecl 1-0 54146 NULL
142754 +disable_so_x86_acpi_enter_sleep_state_fndecl_54149 x86_acpi_enter_sleep_state fndecl 0-1 54149 NULL
142755 +disable_so_ips_fix_ffdc_time_fndecl_54151 ips_fix_ffdc_time fndecl 3 54151 NULL
142756 +disable_so_set_var_mtrr_range_fndecl_54160 set_var_mtrr_range fndecl 2-3 54160 NULL nohasharray
142757 +disable_so_bi_blocks_gfs2_bitmap_54160 bi_blocks gfs2_bitmap 0 54160 &disable_so_set_var_mtrr_range_fndecl_54160
142758 +disable_so_ath10k_recalc_rtscts_prot_fndecl_54161 ath10k_recalc_rtscts_prot fndecl 0 54161 NULL
142759 +disable_so_i915_frequency_info_fndecl_54168 i915_frequency_info fndecl 0 54168 NULL
142760 +disable_so_store_fast_charge_timer_fndecl_54173 store_fast_charge_timer fndecl 0-4 54173 NULL
142761 +disable_so_compat_put_bitmap_fndecl_54182 compat_put_bitmap fndecl 0-3 54182 NULL
142762 +disable_so_cccr_address_p4_counter_binding_54184 cccr_address p4_counter_binding 0 54184 NULL
142763 +disable_so_extra_buf2_address_ene_device_54188 extra_buf2_address ene_device 0 54188 NULL
142764 +disable_so_gr_insert_uid_fndecl_54189 gr_insert_uid fndecl 2 54189 NULL
142765 +disable_so_addr_wil_fw_record_data_54198 addr wil_fw_record_data 0 54198 NULL
142766 +disable_so_hash_mask_dm_exception_table_54212 hash_mask dm_exception_table 0 54212 NULL
142767 +disable_so_cir_addr_ite_dev_54217 cir_addr ite_dev 0 54217 NULL
142768 +disable_so_end_fixed_mtrr_segment_54218 end fixed_mtrr_segment 0 54218 NULL
142769 +disable_so_timer_in_use_min_nes_hw_tune_timer_54220 timer_in_use_min nes_hw_tune_timer 0 54220 NULL
142770 +disable_so_act8b_ata_timing_54221 act8b ata_timing 0 54221 NULL
142771 +disable_so_psmouse_interrupt_fndecl_54222 psmouse_interrupt fndecl 2 54222 NULL
142772 +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
142773 +disable_so__freq_tbl_determine_rate_fndecl_54245 _freq_tbl_determine_rate fndecl 0 54245 NULL
142774 +disable_so_tm_hour_rtc_time_54254 tm_hour rtc_time 0 54254 NULL
142775 +disable_so_efx_nic_init_interrupt_fndecl_54259 efx_nic_init_interrupt fndecl 0 54259 NULL
142776 +disable_so_dr_addr_qla8044_quad_entry_54260 dr_addr qla8044_quad_entry 0 54260 NULL
142777 +disable_so_integer_pll_div_54261 integer pll_div 0 54261 NULL nohasharray
142778 +disable_so_buf_addr_brcmf_pcie_console_54261 buf_addr brcmf_pcie_console 0 54261 &disable_so_integer_pll_div_54261
142779 +disable_so_fandiv2_w83627ehf_data_54263 fandiv2 w83627ehf_data 0 54263 NULL
142780 +disable_so_gf_numsrc_group_filter_54274 gf_numsrc group_filter 0 54274 NULL
142781 +disable_so_adis_write_reg_fndecl_54282 adis_write_reg fndecl 0 54282 NULL
142782 +disable_so_last_commit_jiffies_pool_54290 last_commit_jiffies pool 0 54290 NULL nohasharray
142783 +disable_so_btree_cache_used_cache_set_54290 btree_cache_used cache_set 0 54290 &disable_so_last_commit_jiffies_pool_54290
142784 +disable_so_hid_time_probe_fndecl_54292 hid_time_probe fndecl 0 54292 NULL
142785 +disable_so_cgroup_subtree_control_write_fndecl_54294 cgroup_subtree_control_write fndecl 0-3 54294 NULL
142786 +disable_so_hpt3x2n_set_clock_fndecl_54295 hpt3x2n_set_clock fndecl 2 54295 NULL
142787 +disable_so_timestamp_nfs4_layoutget_args_54296 timestamp nfs4_layoutget_args 0 54296 NULL
142788 +disable_so_mic_setup_interrupts_fndecl_54300 mic_setup_interrupts fndecl 0 54300 NULL
142789 +disable_so_imsf_numsrc_ip_msfilter_54312 imsf_numsrc ip_msfilter 0 54312 NULL
142790 +disable_so_dma_addr_solos_skb_cb_54324 dma_addr solos_skb_cb 0 54324 NULL
142791 +disable_so_irq_domain_set_info_fndecl_54334 irq_domain_set_info fndecl 3-2 54334 NULL
142792 +disable_so_ks108_set_yaddr_fndecl_54335 ks108_set_yaddr fndecl 2-3 54335 NULL
142793 +disable_so_lfo1delay_soundfont_voice_parm_54350 lfo1delay soundfont_voice_parm 0 54350 NULL
142794 +disable_so_netxen_get_ioaddr_fndecl_54354 netxen_get_ioaddr fndecl 2 54354 NULL
142795 +disable_so_addrs_per_inode_fndecl_54364 addrs_per_inode fndecl 0 54364 NULL
142796 +disable_so_msr_rsc_54369 msr rsc 0 54369 NULL
142797 +disable_so_busaddr_CommandList_54370 busaddr CommandList 0 54370 NULL
142798 +disable_so_paddr_mwifiex_pfu_buf_desc_54374 paddr mwifiex_pfu_buf_desc 0 54374 NULL
142799 +disable_so_ieee80211_aes_key_setup_encrypt_fndecl_54383 ieee80211_aes_key_setup_encrypt fndecl 2-3 54383 NULL
142800 +disable_so_cpumask_parse_user_fndecl_54390 cpumask_parse_user fndecl 0-2 54390 NULL
142801 +disable_so_ack_signal_zd_mac_54391 ack_signal zd_mac 0 54391 NULL
142802 +disable_so_addr_lp855x_rom_data_54408 addr lp855x_rom_data 0 54408 NULL
142803 +disable_so_ar9003_mci_wait_for_interrupt_fndecl_54411 ar9003_mci_wait_for_interrupt fndecl 2-3 54411 NULL
142804 +disable_so_enable_timeout_sdio_func_54417 enable_timeout sdio_func 0 54417 NULL
142805 +disable_so_overrun_time_n_tty_data_54426 overrun_time n_tty_data 0 54426 NULL
142806 +disable_so_seq_netlbl_cipsov4_doiwalk_arg_54427 seq netlbl_cipsov4_doiwalk_arg 0 54427 NULL
142807 +disable_so_addr_hi_ocrdma_sge_54434 addr_hi ocrdma_sge 0 54434 NULL
142808 +disable_so_lcq_addr_hi_fcoe_kwqe_conn_offload4_54436 lcq_addr_hi fcoe_kwqe_conn_offload4 0 54436 NULL
142809 +disable_so_avc_ca_get_time_date_fndecl_54437 avc_ca_get_time_date fndecl 0 54437 NULL
142810 +disable_so_msg_rtime_msqid64_ds_54442 msg_rtime msqid64_ds 0 54442 NULL
142811 +disable_so_delay_vardecl_wm9705_c_54454 delay vardecl_wm9705.c 0 54454 NULL
142812 +disable_so_hpi_set_address_fndecl_54461 hpi_set_address fndecl 2 54461 NULL
142813 +disable_so_seq_nft_ctx_54462 seq nft_ctx 0 54462 NULL
142814 +disable_so_dm_btree_remove_fndecl_54463 dm_btree_remove fndecl 0-2 54463 NULL
142815 +disable_so_stv0297_set_initialdemodfreq_fndecl_54465 stv0297_set_initialdemodfreq fndecl 2 54465 NULL
142816 +disable_so_shdwreg_addr_lo_addr_ctrl_blk_54466 shdwreg_addr_lo addr_ctrl_blk 0 54466 NULL
142817 +disable_so_i2c_dev_addr_au0828_rc_54470 i2c_dev_addr au0828_rc 0 54470 NULL
142818 +disable_so_sha256_generic_mod_init_fndecl_54474 sha256_generic_mod_init fndecl 0 54474 NULL
142819 +disable_so_kdiv_skl_wrpll_params_54475 kdiv skl_wrpll_params 0 54475 NULL
142820 +disable_so_ocfs2_divide_xattr_cluster_fndecl_54477 ocfs2_divide_xattr_cluster fndecl 0 54477 NULL
142821 +disable_so_addr_gsm_msg_54481 addr gsm_msg 0 54481 NULL
142822 +disable_so_select_delay_floppy_drive_params_54487 select_delay floppy_drive_params 0 54487 NULL
142823 +disable_so_dm_btree_find_highest_key_fndecl_54489 dm_btree_find_highest_key fndecl 0-2 54489 NULL
142824 +disable_so_last_retry_addr_kvm_vcpu_arch_54492 last_retry_addr kvm_vcpu_arch 0 54492 NULL
142825 +disable_so_default_delay_pi_protocol_54493 default_delay pi_protocol 0 54493 NULL
142826 +disable_so_dummy_dma_page_physical_address_r592_device_54497 dummy_dma_page_physical_address r592_device 0 54497 NULL
142827 +disable_so_drbg_hash_update_fndecl_54501 drbg_hash_update fndecl 0 54501 NULL
142828 +disable_so_cryptd_blkcipher_setkey_fndecl_54506 cryptd_blkcipher_setkey fndecl 0-3 54506 NULL
142829 +disable_so_mounted_uid_ncp_fs_info_v2_54511 mounted_uid ncp_fs_info_v2 0 54511 NULL
142830 +disable_so_htc_ext_addr_ath6kl_mbox_info_54517 htc_ext_addr ath6kl_mbox_info 0 54517 NULL
142831 +disable_so_xen_pmd_val_fndecl_54519 xen_pmd_val fndecl 0 54519 NULL
142832 +disable_so_incr_cpu_itimer_54530 incr cpu_itimer 0 54530 NULL
142833 +disable_so_fw_blob_dest_addr_pn544_i2c_phy_54532 fw_blob_dest_addr pn544_i2c_phy 0 54532 NULL
142834 +disable_so_ip_addr_nx_ip_list_54540 ip_addr nx_ip_list 0 54540 NULL
142835 +disable_so_test_ahash_cycles_digest_fndecl_54541 test_ahash_cycles_digest fndecl 0 54541 NULL
142836 +disable_so_tegra_sflash_runtime_resume_fndecl_54543 tegra_sflash_runtime_resume fndecl 0 54543 NULL
142837 +disable_so_start_addr_qlcnic_flt_entry_54564 start_addr qlcnic_flt_entry 0 54564 NULL
142838 +disable_so_addr_lo_tg3_rx_buffer_desc_54565 addr_lo tg3_rx_buffer_desc 0 54565 NULL
142839 +disable_so_btrfs_free_space_bitmaps_fndecl_54566 btrfs_free_space_bitmaps fndecl 0 54566 NULL nohasharray
142840 +disable_so_crypto_rfc4309_decrypt_fndecl_54566 crypto_rfc4309_decrypt fndecl 0 54566 &disable_so_btrfs_free_space_bitmaps_fndecl_54566
142841 +disable_so_crypto_ahash_op_fndecl_54569 crypto_ahash_op fndecl 0 54569 NULL
142842 +disable_so_rbt_ib_umem_compute_subtree_last_fndecl_54589 rbt_ib_umem_compute_subtree_last fndecl 0 54589 NULL
142843 +disable_so_ap_sleep_wlcore_ops_54591 ap_sleep wlcore_ops 0 54591 NULL
142844 +disable_so_get_freq_adis16400_chip_info_54596 get_freq adis16400_chip_info 0 54596 NULL
142845 +disable_so_entries_dmaaddr_snd_trident_tlb_54601 entries_dmaaddr snd_trident_tlb 0 54601 NULL
142846 +disable_so_hwrqaddr_fw_ri_init_54619 hwrqaddr fw_ri_init 0 54619 NULL
142847 +disable_so_rs_user_addr_rds_sock_54620 rs_user_addr rds_sock 0 54620 NULL
142848 +disable_so_snd_timer_global_new_fndecl_54623 snd_timer_global_new fndecl 2-0 54623 NULL
142849 +disable_so_rsi_setclock_fndecl_54628 rsi_setclock fndecl 2 54628 NULL
142850 +disable_so_addr_ct_vm_block_54632 addr ct_vm_block 0 54632 NULL
142851 +disable_so_read_addr_qla8044_minidump_entry_mux_54633 read_addr qla8044_minidump_entry_mux 0 54633 NULL
142852 +disable_so_queue_delayed_work_on_fndecl_54644 queue_delayed_work_on fndecl 1-4 54644 NULL
142853 +disable_so_arcmsr_adjust_disk_queue_depth_fndecl_54647 arcmsr_adjust_disk_queue_depth fndecl 0-2 54647 NULL
142854 +disable_so_mpihelp_mul_1_fndecl_54658 mpihelp_mul_1 fndecl 3 54658 NULL
142855 +disable_so_bitmap_ipmac_do_add_fndecl_54672 bitmap_ipmac_do_add fndecl 4 54672 NULL
142856 +disable_so_paddr_fsl_asrc_54677 paddr fsl_asrc 0 54677 NULL
142857 +disable_so_sil_iowrite32_fndecl_54679 sil_iowrite32 fndecl 3-2 54679 NULL
142858 +disable_so_adv_smbus_write_byte_data_fndecl_54684 adv_smbus_write_byte_data fndecl 2-3-0 54684 NULL
142859 +disable_so_delay_snd_pcm_runtime_54685 delay snd_pcm_runtime 0 54685 NULL
142860 +disable_so_cp_blkaddr_f2fs_super_block_54690 cp_blkaddr f2fs_super_block 0 54690 NULL
142861 +disable_so_schedule_erase_fndecl_54695 schedule_erase fndecl 4-3 54695 NULL
142862 +disable_so_mesh_set_short_slot_time_fndecl_54696 mesh_set_short_slot_time fndecl 0 54696 NULL
142863 +disable_so_pll2_ndiv_a_cnt_ad9523_platform_data_54701 pll2_ndiv_a_cnt ad9523_platform_data 0 54701 NULL
142864 +disable_so_dirtytime_expire_interval_vardecl_54714 dirtytime_expire_interval vardecl 0 54714 NULL nohasharray
142865 +disable_so_cdv_intel_crtc_clock_get_fndecl_54714 cdv_intel_crtc_clock_get fndecl 0 54714 &disable_so_dirtytime_expire_interval_vardecl_54714
142866 +disable_so_timeout_vardecl_w83627hf_wdt_c_54716 timeout vardecl_w83627hf_wdt.c 0 54716 NULL
142867 +disable_so_ccp_addr_hi_fndecl_54724 ccp_addr_hi fndecl 0 54724 NULL nohasharray
142868 +disable_so_usnic_fwd_add_ipaddr_fndecl_54724 usnic_fwd_add_ipaddr fndecl 2 54724 &disable_so_ccp_addr_hi_fndecl_54724
142869 +disable_so_encrypt_ablkcipher_tfm_54728 encrypt ablkcipher_tfm 0 54728 NULL
142870 +disable_so_dp83640_ack_interrupt_fndecl_54729 dp83640_ack_interrupt fndecl 0 54729 NULL
142871 +disable_so_crypto_pcbc_decrypt_fndecl_54732 crypto_pcbc_decrypt fndecl 0-4 54732 NULL
142872 +disable_so_jackdetect_debounce_time_adau1761_platform_data_54736 jackdetect_debounce_time adau1761_platform_data 0 54736 NULL
142873 +disable_so_ism1_runtime_sc_54739 ism1 runtime_sc 0 54739 NULL
142874 +disable_so___hw_addr_sync_multiple_fndecl_54744 __hw_addr_sync_multiple fndecl 0-3 54744 NULL nohasharray
142875 +disable_so_irq_modify_status_fndecl_54744 irq_modify_status fndecl 1 54744 &disable_so___hw_addr_sync_multiple_fndecl_54744
142876 +disable_so_vfreq_aspect_std_timing_54751 vfreq_aspect std_timing 0 54751 NULL
142877 +disable_so_sd_gid_stat_data_54756 sd_gid stat_data 0 54756 NULL
142878 +disable_so_buffer_addr_m3_dma_54757 buffer_addr m3_dma 0 54757 NULL
142879 +disable_so_driver_timestamp_qla4_8xxx_minidump_template_hdr_54761 driver_timestamp qla4_8xxx_minidump_template_hdr 0 54761 NULL
142880 +disable_so_bitmap_root_ll_disk_54791 bitmap_root ll_disk 0 54791 NULL
142881 +disable_so_addr_to_sbp2_pointer_fndecl_54805 addr_to_sbp2_pointer fndecl 1 54805 NULL
142882 +disable_so_i2c_addr_af9013_config_54806 i2c_addr af9013_config 0 54806 NULL
142883 +disable_so_runtime_sched_dl_entity_54815 runtime sched_dl_entity 0 54815 NULL
142884 +disable_so_signal_rtl8187_rx_hdr_54828 signal rtl8187_rx_hdr 0 54828 NULL
142885 +disable_so_gid_list_dma_qla_hw_data_54829 gid_list_dma qla_hw_data 0 54829 NULL
142886 +disable_so_tsi721_omsg_interrupt_enable_fndecl_54831 tsi721_omsg_interrupt_enable fndecl 3-2 54831 NULL
142887 +disable_so_nsec_pps_ktime_54835 nsec pps_ktime 0 54835 NULL
142888 +disable_so_timeout_xfrm_policy_queue_54847 timeout xfrm_policy_queue 0 54847 NULL
142889 +disable_so_uid_used_vardecl_gracl_segv_c_54850 uid_used vardecl_gracl_segv.c 0 54850 NULL
142890 +disable_so_regmap_update_bits_fndecl_54855 regmap_update_bits fndecl 0-2-4-3 54855 NULL
142891 +disable_so_next_status_checked_time_netup_ci_state_54858 next_status_checked_time netup_ci_state 0 54858 NULL
142892 +disable_so_dma_addr_s_txd_os_54860 dma_addr s_txd_os 0 54860 NULL
142893 +disable_so_tms_cstime_compat_tms_54864 tms_cstime compat_tms 0 54864 NULL
142894 +disable_so_reply_dma_max_address_MPT3SAS_ADAPTER_54869 reply_dma_max_address MPT3SAS_ADAPTER 0 54869 NULL
142895 +disable_so_tsc_read_refs_fndecl_54873 tsc_read_refs fndecl 0 54873 NULL
142896 +disable_so_tpm_get_timeouts_fndecl_54878 tpm_get_timeouts fndecl 0 54878 NULL
142897 +disable_so_dn_hash_dump_bucket_fndecl_54884 dn_hash_dump_bucket fndecl 0 54884 NULL
142898 +disable_so_queue_timeout_fndecl_54887 queue_timeout fndecl 2 54887 NULL
142899 +disable_so_T5_address_mxt_data_54888 T5_address mxt_data 0 54888 NULL
142900 +disable_so_arizona_runtime_resume_fndecl_54897 arizona_runtime_resume fndecl 0 54897 NULL
142901 +disable_so_udp_timeout_ip_vs_timeout_user_54908 udp_timeout ip_vs_timeout_user 0 54908 NULL
142902 +disable_so_idiag_uid_inet_diag_msg_54913 idiag_uid inet_diag_msg 0 54913 NULL nohasharray
142903 +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
142904 +disable_so_aty_st_le32_fndecl_54925 aty_st_le32 fndecl 2 54925 NULL
142905 +disable_so_saffirepro_both_clk_freq_set_fndecl_54935 saffirepro_both_clk_freq_set fndecl 0 54935 NULL
142906 +disable_so_mcryptd_hash_finup_fndecl_54940 mcryptd_hash_finup fndecl 2 54940 NULL
142907 +disable_so_nla_put_be64_fndecl_54942 nla_put_be64 fndecl 0 54942 NULL
142908 +disable_so_delay_qlc_83xx_entry_hdr_54949 delay qlc_83xx_entry_hdr 0 54949 NULL
142909 +disable_so_dac33_dai_delay_fndecl_54952 dac33_dai_delay fndecl 0 54952 NULL nohasharray
142910 +disable_so_dmaaddr_cafe_priv_54952 dmaaddr cafe_priv 0 54952 &disable_so_dac33_dai_delay_fndecl_54952
142911 +disable_so_addr_hda_codec_54956 addr hda_codec 0 54956 NULL
142912 +disable_so_dummy_buffer_addr_lo_fcoe_kwqe_init1_54962 dummy_buffer_addr_lo fcoe_kwqe_init1 0 54962 NULL nohasharray
142913 +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
142914 +disable_so_default_timetolive_sctp_sock_54963 default_timetolive sctp_sock 0 54963 NULL
142915 +disable_so_test_acipher_cycles_fndecl_54972 test_acipher_cycles fndecl 0 54972 NULL
142916 +disable_so_last_jiffies_tick_sched_54974 last_jiffies tick_sched 0 54974 NULL
142917 +disable_so_offset_btrfs_delayed_data_ref_54980 offset btrfs_delayed_data_ref 0 54980 NULL
142918 +disable_so_toshiba_usb_sleep_music_set_fndecl_54986 toshiba_usb_sleep_music_set fndecl 0 54986 NULL
142919 +disable_so_addr_start_vardecl_init_64_c_54989 addr_start vardecl_init_64.c 0 54989 NULL
142920 +disable_so_seq_xfrm_user_acquire_54990 seq xfrm_user_acquire 0 54990 NULL
142921 +disable_so_setup_ide_timing_54997 setup ide_timing 0 54997 NULL
142922 +disable_so_dirtytime_interval_handler_fndecl_54998 dirtytime_interval_handler fndecl 0 54998 NULL
142923 +disable_so_last_heartbeat_timestamp_ctlr_info_55000 last_heartbeat_timestamp ctlr_info 0 55000 NULL
142924 +disable_so_bond_set_mac_address_fndecl_55006 bond_set_mac_address fndecl 0 55006 NULL
142925 +disable_so_curfreq_amradio_device_55017 curfreq amradio_device 0 55017 NULL
142926 +disable_so_time_mult_perf_event_mmap_page_55031 time_mult perf_event_mmap_page 0 55031 NULL nohasharray
142927 +disable_so___i2c_bit_add_bus_fndecl_55031 __i2c_bit_add_bus fndecl 0 55031 &disable_so_time_mult_perf_event_mmap_page_55031
142928 +disable_so_addr_f71882fg_data_55035 addr f71882fg_data 0 55035 NULL
142929 +disable_so_time_stamp_igb_tx_buffer_55041 time_stamp igb_tx_buffer 0 55041 NULL
142930 +disable_so_fsl_spdif_txclk_caldiv_fndecl_55042 fsl_spdif_txclk_caldiv fndecl 3-0 55042 NULL
142931 +disable_so_wall_time_coarse_sec_vsyscall_gtod_data_55048 wall_time_coarse_sec vsyscall_gtod_data 0 55048 NULL nohasharray
142932 +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
142933 +disable_so_enic_set_mac_address_fndecl_55049 enic_set_mac_address fndecl 0 55049 NULL
142934 +disable_so_bitmap_shift_left_fndecl_55055 bitmap_shift_left fndecl 3-4 55055 NULL
142935 +disable_so_uea_set_bulk_timeout_fndecl_55059 uea_set_bulk_timeout fndecl 2 55059 NULL
142936 +disable_so_xfs_btree_check_lblock_fndecl_55062 xfs_btree_check_lblock fndecl 0 55062 NULL
142937 +disable_so_addr_num_sctp_getaddrs_old_55065 addr_num sctp_getaddrs_old 0 55065 NULL
142938 +disable_so_random_ri_fndecl_55094 random_ri fndecl 0 55094 NULL
142939 +disable_so_rhashtable_insert_fast_fndecl_55105 rhashtable_insert_fast fndecl 0 55105 NULL
142940 +disable_so_val_nla_map_55108 val nla_map 0 55108 NULL
142941 +disable_so_sis_program_timings_fndecl_55111 sis_program_timings fndecl 2 55111 NULL
142942 +disable_so_crypto_authenc_esn_module_init_fndecl_55112 crypto_authenc_esn_module_init fndecl 0 55112 NULL
142943 +disable_so_open_d_r820t_freq_range_55124 open_d r820t_freq_range 0 55124 NULL
142944 +disable_so_b43legacy_set_slot_time_fndecl_55128 b43legacy_set_slot_time fndecl 2 55128 NULL nohasharray
142945 +disable_so_rowaddr_fndecl_55128 rowaddr fndecl 2 55128 &disable_so_b43legacy_set_slot_time_fndecl_55128 nohasharray
142946 +disable_so_iscsit_do_crypto_hash_sg_fndecl_55128 iscsit_do_crypto_hash_sg fndecl 4-5 55128 &disable_so_rowaddr_fndecl_55128 nohasharray
142947 +disable_so_padlock_sha1_final_fndecl_55128 padlock_sha1_final fndecl 0 55128 &disable_so_iscsit_do_crypto_hash_sg_fndecl_55128
142948 +disable_so_st_ctime_stat_55144 st_ctime stat 0 55144 NULL
142949 +disable_so_bma150_set_low_g_interrupt_fndecl_55166 bma150_set_low_g_interrupt fndecl 4-5-3-0 55166 NULL
142950 +disable_so_atomic_commit_drm_mode_config_funcs_55169 atomic_commit drm_mode_config_funcs 0 55169 NULL
142951 +disable_so_timeout_ns_mmc_data_55170 timeout_ns mmc_data 0 55170 NULL
142952 +disable_so_rq_addr_low_nes_qp_context_55197 rq_addr_low nes_qp_context 0 55197 NULL
142953 +disable_so_gaintime_tsl2563_gainlevel_coeff_55201 gaintime tsl2563_gainlevel_coeff 0 55201 NULL
142954 +disable_so_attr_timeout_fndecl_55204 attr_timeout fndecl 0 55204 NULL
142955 +disable_so_tx_addr_happy_meal_txd_55205 tx_addr happy_meal_txd 0 55205 NULL nohasharray
142956 +disable_so_hsync_v4l2_bt_timings_55205 hsync v4l2_bt_timings 0 55205 &disable_so_tx_addr_happy_meal_txd_55205
142957 +disable_so_decode_bitmap_fndecl_55218 decode_bitmap fndecl 0 55218 NULL
142958 +disable_so_p1_gma_clock_t_55221 p1 gma_clock_t 0 55221 NULL
142959 +disable_so_bitrate_can_bittiming_55225 bitrate can_bittiming 0 55225 NULL
142960 +disable_so_tqi_ready_time_ath5k_txq_info_55226 tqi_ready_time ath5k_txq_info 0 55226 NULL
142961 +disable_so_msr_seek_fndecl_55235 msr_seek fndecl 0-2 55235 NULL
142962 +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
142963 +disable_so_ac97_clock_vardecl_via82xx_c_55242 ac97_clock vardecl_via82xx.c 0 55242 NULL
142964 +disable_so_si2157_sleep_fndecl_55246 si2157_sleep fndecl 0 55246 NULL
142965 +disable_so_max8925_rtc_read_time_fndecl_55254 max8925_rtc_read_time fndecl 0 55254 NULL
142966 +disable_so_di_gid_efs_dinode_55256 di_gid efs_dinode 0 55256 NULL
142967 +disable_so_elan_i2c_sleep_control_fndecl_55264 elan_i2c_sleep_control fndecl 0 55264 NULL
142968 +disable_so_freq_reg_info_regd_fndecl_55266 freq_reg_info_regd fndecl 2 55266 NULL
142969 +disable_so_int_coalescing_timer_ahd_softc_55267 int_coalescing_timer ahd_softc 0 55267 NULL
142970 +disable_so_grsec_alert_wtime_vardecl_55279 grsec_alert_wtime vardecl 0 55279 NULL
142971 +disable_so_btrfs_inode_gid_fndecl_55281 btrfs_inode_gid fndecl 0 55281 NULL
142972 +disable_so_ebitmap_node_set_bit_fndecl_55285 ebitmap_node_set_bit fndecl 2 55285 NULL
142973 +disable_so_gpu_addr_kfd_mem_obj_55286 gpu_addr kfd_mem_obj 0 55286 NULL
142974 +disable_so_smp_random_fndecl_55288 smp_random fndecl 0 55288 NULL
142975 +disable_so_start_rmt_timer1_fndecl_55290 start_rmt_timer1 fndecl 2 55290 NULL
142976 +disable_so_cit_setkey_cipher_tfm_55304 cit_setkey cipher_tfm 0-3 55304 NULL
142977 +disable_so_grpfreq_pca963x_chipdef_55310 grpfreq pca963x_chipdef 0 55310 NULL
142978 +disable_so_mb_dma_address_skd_special_context_55312 mb_dma_address skd_special_context 0 55312 NULL
142979 +disable_so_t4_fwaddrspace_write_fndecl_55313 t4_fwaddrspace_write fndecl 0-2 55313 NULL
142980 +disable_so_num_msrs_to_save_vardecl_x86_c_55317 num_msrs_to_save vardecl_x86.c 0 55317 NULL
142981 +disable_so_cdc_ncm_show_tx_timer_usecs_fndecl_55319 cdc_ncm_show_tx_timer_usecs fndecl 0 55319 NULL
142982 +disable_so_sum_exec_runtime_task_cputime_55320 sum_exec_runtime task_cputime 0 55320 NULL
142983 +disable_so_crypto_hash_final_fndecl_55327 crypto_hash_final fndecl 0 55327 NULL
142984 +disable_so___irq_domain_add_fndecl_55334 __irq_domain_add fndecl 2-3 55334 NULL
142985 +disable_so_end_addr_p54_tx_info_55335 end_addr p54_tx_info 0 55335 NULL
142986 +disable_so_pre_div_pll__55336 pre_div pll_ 0 55336 NULL nohasharray
142987 +disable_so_als_adjust_channel_bit_mask_fndecl_55336 als_adjust_channel_bit_mask fndecl 3 55336 &disable_so_pre_div_pll__55336
142988 +disable_so_write_timeout_cdrom_info_55346 write_timeout cdrom_info 0 55346 NULL nohasharray
142989 +disable_so_crypto_ecb_decrypt_fndecl_55346 crypto_ecb_decrypt fndecl 0-4 55346 &disable_so_write_timeout_cdrom_info_55346
142990 +disable_so_audit_set_backlog_wait_time_fndecl_55349 audit_set_backlog_wait_time fndecl 1-0 55349 NULL
142991 +disable_so_show_risefalltime_fndecl_55351 show_risefalltime fndecl 4-0 55351 NULL
142992 +disable_so_ahash_def_finup_done2_fndecl_55353 ahash_def_finup_done2 fndecl 2 55353 NULL
142993 +disable_so_dm_btree_lookup_fndecl_55361 dm_btree_lookup fndecl 0-2 55361 NULL
142994 +disable_so_drm_prime_sg_to_page_addr_arrays_fndecl_55369 drm_prime_sg_to_page_addr_arrays fndecl 4 55369 NULL
142995 +disable_so_real_clock_atom_clock_dividers_55377 real_clock atom_clock_dividers 0 55377 NULL
142996 +disable_so_div_f1_pll_values_55378 div_f1 pll_values 0 55378 NULL
142997 +disable_so_pci_address_hpt_iopsg_55384 pci_address hpt_iopsg 0 55384 NULL
142998 +disable_so_inode_id_btrfs_delayed_node_55390 inode_id btrfs_delayed_node 0 55390 NULL
142999 +disable_so_write32_bcma_host_ops_55392 write32 bcma_host_ops 3 55392 NULL
143000 +disable_so_freq_libipw_channel_55395 freq libipw_channel 0 55395 NULL nohasharray
143001 +disable_so_maxlen_img_ir_free_timing_55395 maxlen img_ir_free_timing 0 55395 &disable_so_freq_libipw_channel_55395
143002 +disable_so_tgid_autofs_wait_queue_55396 tgid autofs_wait_queue 0 55396 NULL
143003 +disable_so_init_latch_addr_flash_data_55405 init latch_addr_flash_data 2 55405 NULL
143004 +disable_so_di_ctime_nsec_gfs2_dinode_55408 di_ctime_nsec gfs2_dinode 0 55408 NULL nohasharray
143005 +disable_so_hdspm_round_frequency_fndecl_55408 hdspm_round_frequency fndecl 0-1 55408 &disable_so_di_ctime_nsec_gfs2_dinode_55408
143006 +disable_so_time_expires_NCR5380_hostdata_55415 time_expires NCR5380_hostdata 0 55415 NULL
143007 +disable_so___cpu_to_virtio16_fndecl_55418 __cpu_to_virtio16 fndecl 0-2 55418 NULL
143008 +disable_so_ktime_get_seconds_fndecl_55426 ktime_get_seconds fndecl 0 55426 NULL
143009 +disable_so_start_pci_bus_region_55432 start pci_bus_region 0 55432 NULL
143010 +disable_so_uid_h_misc_55433 uid h_misc 0 55433 NULL
143011 +disable_so_clock_drm_display_mode_55440 clock drm_display_mode 0 55440 NULL
143012 +disable_so_show_pci_clock_fndecl_55445 show_pci_clock fndecl 0 55445 NULL
143013 +disable_so_locks_mul_rhashtable_params_55448 locks_mul rhashtable_params 0 55448 NULL
143014 +disable_so_ds2404_read_time_fndecl_55458 ds2404_read_time fndecl 0 55458 NULL
143015 +disable_so_freq_reg_info_fndecl_55465 freq_reg_info fndecl 2 55465 NULL
143016 +disable_so_buffer_addr_nm256_55469 buffer_addr nm256 0 55469 NULL
143017 +disable_so_gr_find_uid_fndecl_55479 gr_find_uid fndecl 0-1 55479 NULL
143018 +disable_so_crypto_report_fndecl_55482 crypto_report fndecl 0 55482 NULL
143019 +disable_so_si470x_set_freq_fndecl_55487 si470x_set_freq fndecl 2 55487 NULL
143020 +disable_so_addr_nvif_ioctl_wr_v0_55489 addr nvif_ioctl_wr_v0 0 55489 NULL
143021 +disable_so_vruntime_sched_entity_55490 vruntime sched_entity 0 55490 NULL nohasharray
143022 +disable_so_hdelay_bttv_geometry_55490 hdelay bttv_geometry 0 55490 &disable_so_vruntime_sched_entity_55490 nohasharray
143023 +disable_so_btrfs_bitmap_cluster_fndecl_55490 btrfs_bitmap_cluster fndecl 4-5-6-7 55490 &disable_so_hdelay_bttv_geometry_55490
143024 +disable_so_height_intel_sdvo_preferred_input_timing_args_55498 height intel_sdvo_preferred_input_timing_args 0 55498 NULL
143025 +disable_so_bosr__coeff_div_55501 bosr _coeff_div 0 55501 NULL
143026 +disable_so_logical_address_ms_extra_data_register_55503 logical_address ms_extra_data_register 0 55503 NULL
143027 +disable_so_last_timeout_iscsi_task_55509 last_timeout iscsi_task 0 55509 NULL
143028 +disable_so_ip_vs_addr_set_fndecl_55530 ip_vs_addr_set fndecl 1 55530 NULL
143029 +disable_so_cg_spll_func_cntl_3_si_clock_registers_55541 cg_spll_func_cntl_3 si_clock_registers 0 55541 NULL nohasharray
143030 +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
143031 +disable_so_desc_card_addr___mem_55541 desc_card_addr __mem 0 55541 &disable_so_pwr_delay_panel_info_55541
143032 +disable_so_read_addr_qla8xxx_minidump_entry_rdmem_55551 read_addr qla8xxx_minidump_entry_rdmem 0 55551 NULL nohasharray
143033 +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
143034 +disable_so_timing_hpt_clock_55565 timing hpt_clock 0 55565 NULL
143035 +disable_so_kvm_get_tsc_khz_fndecl_55570 kvm_get_tsc_khz fndecl 0 55570 NULL
143036 +disable_so_demod_address_tda8083_config_55572 demod_address tda8083_config 0 55572 NULL
143037 +disable_so_ql_set_mac_addr_fndecl_55574 ql_set_mac_addr fndecl 0 55574 NULL
143038 +disable_so_lzo1x_1_compress_fndecl_55575 lzo1x_1_compress fndecl 2 55575 NULL
143039 +disable_so_psb_intel_sdvo_get_slave_addr_fndecl_55586 psb_intel_sdvo_get_slave_addr fndecl 0 55586 NULL
143040 +disable_so_tseg1_max_can_bittiming_const_55596 tseg1_max can_bittiming_const 0 55596 NULL
143041 +disable_so_cap_mmap_addr_fndecl_55598 cap_mmap_addr fndecl 0 55598 NULL nohasharray
143042 +disable_so_i_saddr_rds_incoming_55598 i_saddr rds_incoming 0 55598 &disable_so_cap_mmap_addr_fndecl_55598
143043 +disable_so_scan_cycle_time_adp5589_kpad_platform_data_55611 scan_cycle_time adp5589_kpad_platform_data 0 55611 NULL
143044 +disable_so_timeout_usb3_lpm_parameters_55617 timeout usb3_lpm_parameters 0 55617 NULL
143045 +disable_so_dma_addr0_flexcop_dma_55619 dma_addr0 flexcop_dma 0 55619 NULL nohasharray
143046 +disable_so_pci_bus_alloc_resource_fndecl_55619 pci_bus_alloc_resource fndecl 5-3-4 55619 &disable_so_dma_addr0_flexcop_dma_55619
143047 +disable_so_drm_legacy_ctxbitmap_free_fndecl_55620 drm_legacy_ctxbitmap_free fndecl 2 55620 NULL
143048 +disable_so_dp_saddr_rds_iw_connect_private_55621 dp_saddr rds_iw_connect_private 0 55621 NULL
143049 +disable_so_get_fan1_div_fndecl_55629 get_fan1_div fndecl 0 55629 NULL
143050 +disable_so_cfg_rrq_xri_bitmap_sz_lpfc_hba_55637 cfg_rrq_xri_bitmap_sz lpfc_hba 0 55637 NULL
143051 +disable_so_timeout_ms_rdma_ucm_resolve_addr_55643 timeout_ms rdma_ucm_resolve_addr 0 55643 NULL
143052 +disable_so_elv_rqhash_find_fndecl_55656 elv_rqhash_find fndecl 2 55656 NULL
143053 +disable_so_addrconf_sysctl_disable_fndecl_55663 addrconf_sysctl_disable fndecl 0 55663 NULL
143054 +disable_so_cx24117_read_signal_strength_fndecl_55668 cx24117_read_signal_strength fndecl 0 55668 NULL
143055 +disable_so_table2_addr_ipw_priv_55672 table2_addr ipw_priv 0 55672 NULL
143056 +disable_so_lock_time_drm_lock_data_55680 lock_time drm_lock_data 0 55680 NULL
143057 +disable_so_timeout_init_vardecl_ch_c_55683 timeout_init vardecl_ch.c 0 55683 NULL
143058 +disable_so_btrfs_uuid_tree_rem_fndecl_55691 btrfs_uuid_tree_rem fndecl 0-4-5 55691 NULL
143059 +disable_so_n_cipher_schemes_ieee80211_hw_55692 n_cipher_schemes ieee80211_hw 0 55692 NULL
143060 +disable_so_wcid_rt2x00lib_crypto_55695 wcid rt2x00lib_crypto 0 55695 NULL
143061 +disable_so_beiscsi_get_macaddr_fndecl_55699 beiscsi_get_macaddr fndecl 0 55699 NULL
143062 +disable_so_fdb_delete_by_addr_fndecl_55704 fdb_delete_by_addr fndecl 3 55704 NULL
143063 +disable_so_hpi_compander_get_decay_time_constant_fndecl_55715 hpi_compander_get_decay_time_constant fndecl 1-0 55715 NULL
143064 +disable_so_pcc_get_freq_fndecl_55717 pcc_get_freq fndecl 0 55717 NULL
143065 +disable_so_mca_cstamp_ifmcaddr6_55724 mca_cstamp ifmcaddr6 0 55724 NULL
143066 +disable_so_seltime_ahd_softc_55725 seltime ahd_softc 0 55725 NULL nohasharray
143067 +disable_so_addr_2_qla8044_minidump_entry_pollwr_55725 addr_2 qla8044_minidump_entry_pollwr 0 55725 &disable_so_seltime_ahd_softc_55725
143068 +disable_so_vm_exit_msr_load_addr_vmcs12_55733 vm_exit_msr_load_addr vmcs12 0 55733 NULL
143069 +disable_so_mclk_pwrmgt_cntl_ci_clock_registers_55735 mclk_pwrmgt_cntl ci_clock_registers 0 55735 NULL
143070 +disable_so_gcm_hash_update_fndecl_55740 gcm_hash_update fndecl 0-4 55740 NULL
143071 +disable_so_ab3100_set_test_register_interruptible_fndecl_55741 ab3100_set_test_register_interruptible fndecl 0 55741 NULL
143072 +disable_so_ieee802154_hdr_get_addrs_fndecl_55743 ieee802154_hdr_get_addrs fndecl 0 55743 NULL
143073 +disable_so_devfreq_userspace_handler_fndecl_55748 devfreq_userspace_handler fndecl 0 55748 NULL
143074 +disable_so_host_sg_tbl_addr_rtsx_pcr_55750 host_sg_tbl_addr rtsx_pcr 0 55750 NULL
143075 +disable_so_crypto_hash_walk_first_compat_fndecl_55757 crypto_hash_walk_first_compat fndecl 0-4 55757 NULL
143076 +disable_so_mpll_dq_func_cntl_si_clock_registers_55759 mpll_dq_func_cntl si_clock_registers 0 55759 NULL
143077 +disable_so_check_gran_clock_compatibility_fndecl_55761 check_gran_clock_compatibility fndecl 2 55761 NULL
143078 +disable_so_watchdog_set_timeout_fndecl_55765 watchdog_set_timeout fndecl 2-0 55765 NULL
143079 +disable_so_c_laddr_rds_connection_55766 c_laddr rds_connection 0 55766 NULL
143080 +disable_so_slot_timeout_irlap_cb_55778 slot_timeout irlap_cb 0 55778 NULL
143081 +disable_so_timer_quantum_ns_efx_nic_55779 timer_quantum_ns efx_nic 0 55779 NULL
143082 +disable_so_me_addr_hbm_props_request_55786 me_addr hbm_props_request 0 55786 NULL
143083 +disable_so_snd_timer_user_continue_fndecl_55796 snd_timer_user_continue fndecl 0 55796 NULL
143084 +disable_so_last_rx_timestamp_ixgbe_adapter_55801 last_rx_timestamp ixgbe_adapter 0 55801 NULL
143085 +disable_so_di_mtime_logfs_disk_inode_55807 di_mtime logfs_disk_inode 0 55807 NULL
143086 +disable_so_mxr_runtime_resume_fndecl_55814 mxr_runtime_resume fndecl 0 55814 NULL
143087 +disable_so_write_tsc_offset_kvm_x86_ops_55825 write_tsc_offset kvm_x86_ops 2 55825 NULL
143088 +disable_so_suspended_jiffies_dev_pm_info_55833 suspended_jiffies dev_pm_info 0 55833 NULL
143089 +disable_so_daddr_flowi4_55835 daddr flowi4 0 55835 NULL
143090 +disable_so_arcmsr_Read_iop_rqbuffer_data_fndecl_55838 arcmsr_Read_iop_rqbuffer_data fndecl 0 55838 NULL
143091 +disable_so_ac_utime_pacct_struct_55849 ac_utime pacct_struct 0 55849 NULL
143092 +disable_so_si476x_radio_s_frequency_fndecl_55854 si476x_radio_s_frequency fndecl 0 55854 NULL
143093 +disable_so_tg3_nvram_logical_addr_fndecl_55858 tg3_nvram_logical_addr fndecl 0-2 55858 NULL
143094 +disable_so_last_delay_mult_qib_chippport_specific_55859 last_delay_mult qib_chippport_specific 0 55859 NULL nohasharray
143095 +disable_so_addr_offset_x86_pmu_55859 addr_offset x86_pmu 0-1 55859 &disable_so_last_delay_mult_qib_chippport_specific_55859
143096 +disable_so_nvkm_timer_alarm_fndecl_55870 nvkm_timer_alarm fndecl 2 55870 NULL
143097 +disable_so_num_mc_addrs_ixgbe_addr_filter_info_55888 num_mc_addrs ixgbe_addr_filter_info 0 55888 NULL
143098 +disable_so_snd_interval_muldivk_fndecl_55894 snd_interval_muldivk fndecl 3 55894 NULL
143099 +disable_so_read_time_rtc_class_ops_55898 read_time rtc_class_ops 0 55898 NULL
143100 +disable_so_timeouts_size_ip_vs_app_55902 timeouts_size ip_vs_app 0 55902 NULL
143101 +disable_so_mwifiex_process_sleep_confirm_resp_fndecl_55909 mwifiex_process_sleep_confirm_resp fndecl 3 55909 NULL
143102 +disable_so_sleep_auth_write_fndecl_55911 sleep_auth_write fndecl 0-3 55911 NULL
143103 +disable_so_addr_hi_pm4_query_status_55924 addr_hi pm4_query_status 0 55924 NULL
143104 +disable_so_rpc_anyaddr_fndecl_55925 rpc_anyaddr fndecl 0-1 55925 NULL
143105 +disable_so_fence_gpu_addr_device_queue_manager_55932 fence_gpu_addr device_queue_manager 0 55932 NULL
143106 +disable_so_send_guid_cmd_fndecl_55933 send_guid_cmd fndecl 0 55933 NULL
143107 +disable_so_next_id_mISDNtimerdev_55935 next_id mISDNtimerdev 0 55935 NULL
143108 +disable_so_ref_freq_arizona_fll_55939 ref_freq arizona_fll 0 55939 NULL
143109 +disable_so_find_prop_handlers_by_hash_fndecl_55957 find_prop_handlers_by_hash fndecl 1 55957 NULL
143110 +disable_so_cg_spll_spread_spectrum_ci_clock_registers_55960 cg_spll_spread_spectrum ci_clock_registers 0 55960 NULL
143111 +disable_so___xfrm_src_hash_fndecl_55965 __xfrm_src_hash fndecl 0-3-4 55965 NULL
143112 +disable_so_tps80031_rtc_read_time_fndecl_55978 tps80031_rtc_read_time fndecl 0 55978 NULL
143113 +disable_so_dvb_pll_sleep_fndecl_55979 dvb_pll_sleep fndecl 0 55979 NULL
143114 +disable_so_lose_cover_sizek_mtrr_cleanup_result_55990 lose_cover_sizek mtrr_cleanup_result 0 55990 NULL
143115 +disable_so_wil_ioc_addr_fndecl_55992 wil_ioc_addr fndecl 2-3 55992 NULL
143116 +disable_so_ste10Xp_ack_interrupt_fndecl_55999 ste10Xp_ack_interrupt fndecl 0 55999 NULL
143117 +disable_so_btc_skip_blacklist_clocks_fndecl_56010 btc_skip_blacklist_clocks fndecl 2-3 56010 NULL
143118 +disable_so_sleep_mask_palmas_clk32k_desc_56015 sleep_mask palmas_clk32k_desc 0 56015 NULL
143119 +disable_so_cs_pt_regs_56018 cs pt_regs 0 56018 NULL nohasharray
143120 +disable_so_vmcs_writel_fndecl_56018 vmcs_writel fndecl 2 56018 &disable_so_cs_pt_regs_56018
143121 +disable_so_i_mtime_nsec_f2fs_inode_56019 i_mtime_nsec f2fs_inode 0 56019 NULL
143122 +disable_so_ecx_user_regs_struct32_56025 ecx user_regs_struct32 0 56025 NULL
143123 +disable_so_k8_map_sysaddr_to_csrow_fndecl_56032 k8_map_sysaddr_to_csrow fndecl 2 56032 NULL
143124 +disable_so_max_busy_timeout_mmc_host_56037 max_busy_timeout mmc_host 0 56037 NULL
143125 +disable_so_snd_tea575x_get_freq_fndecl_56045 snd_tea575x_get_freq fndecl 0 56045 NULL
143126 +disable_so_timer_interval_r8a66597_pipe_info_56047 timer_interval r8a66597_pipe_info 0 56047 NULL nohasharray
143127 +disable_so_wc_ct_timer_56047 wc ct_timer 0 56047 &disable_so_timer_interval_r8a66597_pipe_info_56047
143128 +disable_so_gs_tss_segment_32_56052 gs tss_segment_32 0 56052 NULL
143129 +disable_so_bg_inode_bitmap_lo_ext4_group_desc_56060 bg_inode_bitmap_lo ext4_group_desc 0 56060 NULL
143130 +disable_so_debounce_jiffies_gpio_extcon_data_56062 debounce_jiffies gpio_extcon_data 0 56062 NULL
143131 +disable_so_timestamp_perf_event_context_56076 timestamp perf_event_context 0 56076 NULL
143132 +disable_so_s10_img_ir_timing_regvals_56082 s10 img_ir_timing_regvals 0 56082 NULL
143133 +disable_so_addr_nv50_instmem_priv_56092 addr nv50_instmem_priv 0 56092 NULL
143134 +disable_so_stock_freq_vardecl_p4_clockmod_c_56103 stock_freq vardecl_p4-clockmod.c 0 56103 NULL
143135 +disable_so_nfs4_xdr_dec_get_lease_time_fndecl_56110 nfs4_xdr_dec_get_lease_time fndecl 0 56110 NULL
143136 +disable_so_dclk_div_ssd1307fb_par_56111 dclk_div ssd1307fb_par 0 56111 NULL
143137 +disable_so_ad1889_load_wave_interrupt_count_fndecl_56114 ad1889_load_wave_interrupt_count fndecl 2 56114 NULL
143138 +disable_so_tm_sec_rtc_time_56120 tm_sec rtc_time 0 56120 NULL
143139 +disable_so_setsck_fndecl_56125 setsck fndecl 2 56125 NULL
143140 +disable_so_acpi_ut_remove_address_range_fndecl_56141 acpi_ut_remove_address_range fndecl 1 56141 NULL
143141 +disable_so_ssa_blkaddr_f2fs_sm_info_56145 ssa_blkaddr f2fs_sm_info 0 56145 NULL
143142 +disable_so_ack_time_rtl8180_priv_56151 ack_time rtl8180_priv 0 56151 NULL
143143 +disable_so_updelay_bond_params_56155 updelay bond_params 0 56155 NULL
143144 +disable_so_pch_can_bit_clear_fndecl_56156 pch_can_bit_clear fndecl 2 56156 NULL
143145 +disable_so_i2c_addr_si2165_config_56160 i2c_addr si2165_config 0 56160 NULL
143146 +disable_so_gen8_rcs_signal_fndecl_56195 gen8_rcs_signal fndecl 0-2 56195 NULL
143147 +disable_so_bmg160_setup_new_data_interrupt_fndecl_56196 bmg160_setup_new_data_interrupt fndecl 0 56196 NULL
143148 +disable_so_addrhigh_dma64desc_56199 addrhigh dma64desc 0 56199 NULL
143149 +disable_so_kvm_get_time_scale_fndecl_56201 kvm_get_time_scale fndecl 1 56201 NULL
143150 +disable_so_post_divider_atom_clock_dividers_56220 post_divider atom_clock_dividers 0 56220 NULL
143151 +disable_so_max6900_rtc_set_time_fndecl_56236 max6900_rtc_set_time fndecl 0 56236 NULL
143152 +disable_so_crypto_rfc3686_setkey_fndecl_56237 crypto_rfc3686_setkey fndecl 0-3 56237 NULL
143153 +disable_so_mtt_base_addr_l_mlx4_eq_context_56245 mtt_base_addr_l mlx4_eq_context 0 56245 NULL nohasharray
143154 +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
143155 +disable_so_lbs_cmd_802_11_sleep_params_fndecl_56246 lbs_cmd_802_11_sleep_params fndecl 0 56246 NULL
143156 +disable_so_verity_hash_at_level_fndecl_56248 verity_hash_at_level fndecl 2 56248 NULL
143157 +disable_so_sk_reset_timer_fndecl_56251 sk_reset_timer fndecl 3 56251 NULL
143158 +disable_so_skcipher_sndbuf_fndecl_56255 skcipher_sndbuf fndecl 0 56255 NULL
143159 +disable_so_st_ctime_nsec_p9_stat_dotl_56256 st_ctime_nsec p9_stat_dotl 0 56256 NULL nohasharray
143160 +disable_so_r29_val_fc2580_freq_regs_56256 r29_val fc2580_freq_regs 0 56256 &disable_so_st_ctime_nsec_p9_stat_dotl_56256
143161 +disable_so_qmi_wwan_mac_addr_fndecl_56258 qmi_wwan_mac_addr fndecl 0 56258 NULL
143162 +disable_so_cik_set_vce_clocks_fndecl_56266 cik_set_vce_clocks fndecl 3-0 56266 NULL nohasharray
143163 +disable_so_bitmap_copy_from_slot_fndecl_56266 bitmap_copy_from_slot fndecl 0-2 56266 &disable_so_cik_set_vce_clocks_fndecl_56266
143164 +disable_so_delay_mult_ipath_devdata_56277 delay_mult ipath_devdata 0 56277 NULL
143165 +disable_so_esas2r_disc_get_phys_addr_fndecl_56278 esas2r_disc_get_phys_addr fndecl 0 56278 NULL
143166 +disable_so_sst_module_runtime_get_from_id_fndecl_56286 sst_module_runtime_get_from_id fndecl 2 56286 NULL
143167 +disable_so_freq_req_adf4350_state_56294 freq_req adf4350_state 0 56294 NULL
143168 +disable_so_max_bandwidth_khz_ieee80211_freq_range_56300 max_bandwidth_khz ieee80211_freq_range 0 56300 NULL
143169 +disable_so_faddr_rds_info_connection_56313 faddr rds_info_connection 0 56313 NULL
143170 +disable_so_pcm_delay_pcm_stream_info_56329 pcm_delay pcm_stream_info 0 56329 NULL nohasharray
143171 +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
143172 +disable_so_show_sgid_fndecl_56331 show_sgid fndecl 0 56331 NULL
143173 +disable_so_sumo_get_valid_engine_clock_fndecl_56332 sumo_get_valid_engine_clock fndecl 0 56332 NULL
143174 +disable_so_bitmap_resize_fndecl_56333 bitmap_resize fndecl 0-2 56333 NULL
143175 +disable_so_get_cpufreq_driver_56334 get cpufreq_driver 0-1 56334 NULL
143176 +disable_so_cg_spll_spread_spectrum_2_rv770_clock_registers_56343 cg_spll_spread_spectrum_2 rv770_clock_registers 0 56343 NULL
143177 +disable_so_dsa_slave_set_mac_address_fndecl_56363 dsa_slave_set_mac_address fndecl 0 56363 NULL nohasharray
143178 +disable_so_log2secsize_adfs_discrecord_56363 log2secsize adfs_discrecord 0 56363 &disable_so_dsa_slave_set_mac_address_fndecl_56363
143179 +disable_so_offset_bit_entry_56370 offset bit_entry 0 56370 NULL
143180 +disable_so_serio_interrupt_fndecl_56371 serio_interrupt fndecl 2 56371 NULL
143181 +disable_so_nla_put_s8_fndecl_56378 nla_put_s8 fndecl 0 56378 NULL
143182 +disable_so_max_timing_entry_56381 max timing_entry 0 56381 NULL
143183 +disable_so_clk_div_chip_data_56404 clk_div chip_data 0 56404 NULL
143184 +disable_so_index_addr_fndecl_56405 index_addr fndecl 2-3 56405 NULL
143185 +disable_so_sysctl_tipc_named_timeout_vardecl_56406 sysctl_tipc_named_timeout vardecl 0 56406 NULL nohasharray
143186 +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
143187 +disable_so_pwm_freq_to_reg_fndecl_56419 pwm_freq_to_reg fndecl 0-1 56419 NULL
143188 +disable_so_compaq_ioaddr_vardecl_3c59x_c_56423 compaq_ioaddr vardecl_3c59x.c 0 56423 NULL
143189 +disable_so_nv04_timer_ctor_fndecl_56428 nv04_timer_ctor fndecl 0 56428 NULL
143190 +disable_so_last_jiffies_dm_kcopyd_throttle_56429 last_jiffies dm_kcopyd_throttle 0 56429 NULL
143191 +disable_so_prev_xfer_time_if_spi_card_56430 prev_xfer_time if_spi_card 0 56430 NULL
143192 +disable_so_cpufreq_governor_dbs_fndecl_56433 cpufreq_governor_dbs fndecl 0 56433 NULL
143193 +disable_so_align_vdso_addr_fndecl_56438 align_vdso_addr fndecl 0-1 56438 NULL
143194 +disable_so_addresshigh_SG64ENTRY_56440 addresshigh SG64ENTRY 0 56440 NULL
143195 +disable_so_freq_nvbios_M0205T_56458 freq nvbios_M0205T 0 56458 NULL
143196 +disable_so_hfs_bnode_hash_fndecl_56462 hfs_bnode_hash fndecl 0-1 56462 NULL
143197 +disable_so_address_rmap_item_56465 address rmap_item 0 56465 NULL
143198 +disable_so_tseg1_pucan_timing_fast_56466 tseg1 pucan_timing_fast 0 56466 NULL
143199 +disable_so_read_reg_qlcnic_hardware_ops_56470 read_reg qlcnic_hardware_ops 0-2 56470 NULL
143200 +disable_so_ba0_addr_cs4281_56471 ba0_addr cs4281 0 56471 NULL
143201 +disable_so_seltime_ahc_softc_56482 seltime ahc_softc 0 56482 NULL
143202 +disable_so_preferred_resolution_snd_seq_timer_56486 preferred_resolution snd_seq_timer 0 56486 NULL
143203 +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
143204 +disable_so_compat_sys_utime_fndecl_56499 compat_sys_utime fndecl 0 56499 NULL
143205 +disable_so_max_cpufreq_policy_56505 max cpufreq_policy 0 56505 NULL
143206 +disable_so_gpm_addr_ath9k_hw_mci_56507 gpm_addr ath9k_hw_mci 0 56507 NULL
143207 +disable_so_local_cm_response_timeout_ib_cm_req_event_param_56527 local_cm_response_timeout ib_cm_req_event_param 0 56527 NULL
143208 +disable_so_di_ctime_qnx4_inode_entry_56528 di_ctime qnx4_inode_entry 0 56528 NULL
143209 +disable_so_check_object_size_fndecl_56537 check_object_size fndecl 2 56537 NULL
143210 +disable_so_netlbl_unlhsh_remove_addr4_fndecl_56540 netlbl_unlhsh_remove_addr4 fndecl 0 56540 NULL
143211 +disable_so_pio_address_qla_hw_data_56550 pio_address qla_hw_data 0 56550 NULL
143212 +disable_so_clockdelay_te_vardecl_hfcmulti_c_56569 clockdelay_te vardecl_hfcmulti.c 0 56569 NULL
143213 +disable_so_cfg80211_get_start_freq_fndecl_56579 cfg80211_get_start_freq fndecl 0-1-2 56579 NULL
143214 +disable_so_crypto_info_open_fndecl_56585 crypto_info_open fndecl 0 56585 NULL
143215 +disable_so_iio_interrupt_trigger_probe_fndecl_56586 iio_interrupt_trigger_probe fndecl 0 56586 NULL
143216 +disable_so_csize_lattime_ahd_suspend_pci_state_56599 csize_lattime ahd_suspend_pci_state 0 56599 NULL
143217 +disable_so_pcxhr_get_clock_reg_fndecl_56600 pcxhr_get_clock_reg fndecl 2-0 56600 NULL
143218 +disable_so_ib_find_cached_gid_fndecl_56608 ib_find_cached_gid fndecl 0 56608 NULL
143219 +disable_so_btree_node_write_endio_fndecl_56609 btree_node_write_endio fndecl 2 56609 NULL
143220 +disable_so_rxdescmem_busaddr_altera_tse_private_56610 rxdescmem_busaddr altera_tse_private 0 56610 NULL
143221 +disable_so_pwm_downtime_w83793_data_56624 pwm_downtime w83793_data 0 56624 NULL
143222 +disable_so_nl80211_crypto_settings_fndecl_56625 nl80211_crypto_settings fndecl 0 56625 NULL
143223 +disable_so_freq_pmu0_plltab_entry_56630 freq pmu0_plltab_entry 0 56630 NULL
143224 +disable_so_get_register_page_interruptible_fndecl_56634 get_register_page_interruptible fndecl 0 56634 NULL
143225 +disable_so_time_rx_survey_info_56644 time_rx survey_info 0 56644 NULL
143226 +disable_so_isp1362_write_diraddr_fndecl_56658 isp1362_write_diraddr fndecl 2-3 56658 NULL
143227 +disable_so_utime_task_cputime_56665 utime task_cputime 0 56665 NULL
143228 +disable_so_blogic_add_probeaddr_isa_fndecl_56669 blogic_add_probeaddr_isa fndecl 1 56669 NULL
143229 +disable_so_memsize_bitmap_ip_56671 memsize bitmap_ip 0 56671 NULL
143230 +disable_so_ssb_pmu_get_alp_clock_fndecl_56673 ssb_pmu_get_alp_clock fndecl 0 56673 NULL nohasharray
143231 +disable_so_crypto_xor_fndecl_56673 crypto_xor fndecl 3 56673 &disable_so_ssb_pmu_get_alp_clock_fndecl_56673
143232 +disable_so_addr_wqicb_56680 addr wqicb 0 56680 NULL
143233 +disable_so_post_div_atom_clock_dividers_56686 post_div atom_clock_dividers 0 56686 NULL
143234 +disable_so_local_ca_guid_cm_req_msg_56691 local_ca_guid cm_req_msg 0 56691 NULL
143235 +disable_so_ath5k_hw_check_beacon_timers_fndecl_56701 ath5k_hw_check_beacon_timers fndecl 2 56701 NULL
143236 +disable_so_resultjiffies_vardecl_floppy_c_56702 resultjiffies vardecl_floppy.c 0 56702 NULL
143237 +disable_so_snd_tea575x_s_hw_freq_seek_fndecl_56703 snd_tea575x_s_hw_freq_seek fndecl 0 56703 NULL
143238 +disable_so_ir_clock_mhz_vardecl_tm6000_input_c_56706 ir_clock_mhz vardecl_tm6000-input.c 0 56706 NULL
143239 +disable_so_mei_me_pm_runtime_suspend_fndecl_56711 mei_me_pm_runtime_suspend fndecl 0 56711 NULL
143240 +disable_so_deftype_kvm_mtrr_56712 deftype kvm_mtrr 0 56712 NULL
143241 +disable_so_base_addr_phys__adpt_hba_56713 base_addr_phys _adpt_hba 0 56713 NULL
143242 +disable_so_addr_nvkm_instobj_56715 addr nvkm_instobj 0 56715 NULL
143243 +disable_so_do_wait_for_common_fndecl_56721 do_wait_for_common fndecl 4 56721 NULL
143244 +disable_so_i_uid_minix_inode_56733 i_uid minix_inode 0 56733 NULL
143245 +disable_so_addr_nvkm_engctx_56734 addr nvkm_engctx 0 56734 NULL nohasharray
143246 +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
143247 +disable_so_bp_pt_regs_56736 bp pt_regs 0 56736 NULL
143248 +disable_so_hor_blank_end_via_display_timing_56738 hor_blank_end via_display_timing 0 56738 NULL
143249 +disable_so_panel_power_cycle_delay_intel_dp_56739 panel_power_cycle_delay intel_dp 0 56739 NULL
143250 +disable_so_dib8000_sleep_fndecl_56740 dib8000_sleep fndecl 0 56740 NULL
143251 +disable_so_ext4_valid_block_bitmap_fndecl_56749 ext4_valid_block_bitmap fndecl 0-3 56749 NULL
143252 +disable_so_func_bit_map_vif_list_event_data_56753 func_bit_map vif_list_event_data 0 56753 NULL
143253 +disable_so_netxen_nic_set_mcast_addr_fndecl_56754 netxen_nic_set_mcast_addr fndecl 2 56754 NULL
143254 +disable_so_wrmsr_on_cpu_fndecl_56757 wrmsr_on_cpu fndecl 0-1-3-4 56757 NULL
143255 +disable_so_rmap_recycle_fndecl_56761 rmap_recycle fndecl 3 56761 NULL
143256 +disable_so_cyapa_gen5_get_interval_time_fndecl_56783 cyapa_gen5_get_interval_time fndecl 0 56783 NULL nohasharray
143257 +disable_so_laddr_rds_info_message_56783 laddr rds_info_message 0 56783 &disable_so_cyapa_gen5_get_interval_time_fndecl_56783
143258 +disable_so_btrfs_set_inode_uid_fndecl_56785 btrfs_set_inode_uid fndecl 3 56785 NULL
143259 +disable_so_wl1251_acx_group_address_tbl_fndecl_56786 wl1251_acx_group_address_tbl fndecl 0 56786 NULL
143260 +disable_so_idletimer_tg_show_fndecl_56792 idletimer_tg_show fndecl 0 56792 NULL
143261 +disable_so_ofdmtab_addr_b43_phy_g_56793 ofdmtab_addr b43_phy_g 0 56793 NULL
143262 +disable_so_count_radeon_clock_voltage_dependency_table_56794 count radeon_clock_voltage_dependency_table 0 56794 NULL
143263 +disable_so_nla_put_in_addr_fndecl_56802 nla_put_in_addr fndecl 0 56802 NULL
143264 +disable_so_br_multicast_set_hash_max_fndecl_56807 br_multicast_set_hash_max fndecl 0-2 56807 NULL
143265 +disable_so_runtime_expires_cfs_rq_56808 runtime_expires cfs_rq 0 56808 NULL nohasharray
143266 +disable_so_write_file_bt_ant_diversity_fndecl_56808 write_file_bt_ant_diversity fndecl 0 56808 &disable_so_runtime_expires_cfs_rq_56808
143267 +disable_so_sisfb_post_xgi_setclocks_fndecl_56821 sisfb_post_xgi_setclocks fndecl 2 56821 NULL
143268 +disable_so_ipath_signal_procs_fndecl_56823 ipath_signal_procs fndecl 2 56823 NULL
143269 +disable_so_seqtimer_scaling_vardecl_azt3328_c_56829 seqtimer_scaling vardecl_azt3328.c 0 56829 NULL
143270 +disable_so_bar_bus_addr_usnic_ib_create_qp_resp_56831 bar_bus_addr usnic_ib_create_qp_resp 0 56831 NULL
143271 +disable_so_fib_laddr_hashfn_fndecl_56832 fib_laddr_hashfn fndecl 0-1 56832 NULL
143272 +disable_so_qlcnic_82xx_sre_macaddr_change_fndecl_56836 qlcnic_82xx_sre_macaddr_change fndecl 0 56836 NULL
143273 +disable_so_dm_btree_find_lowest_key_fndecl_56845 dm_btree_find_lowest_key fndecl 0-2 56845 NULL
143274 +disable_so_get_fan_div_fndecl_56857 get_fan_div fndecl 0 56857 NULL
143275 +disable_so_neigh_proc_dointvec_jiffies_fndecl_56860 neigh_proc_dointvec_jiffies fndecl 0 56860 NULL
143276 +disable_so_last_delay_snd_usb_substream_56861 last_delay snd_usb_substream 0 56861 NULL
143277 +disable_so_memory_address_set_error_type_with_address_56863 memory_address set_error_type_with_address 0 56863 NULL
143278 +disable_so_seq_b43_txstatus_56873 seq b43_txstatus 0 56873 NULL
143279 +disable_so_phonet_address_notify_fndecl_56877 phonet_address_notify fndecl 1-3 56877 NULL
143280 +disable_so_msp_sleep_fndecl_56878 msp_sleep fndecl 2 56878 NULL nohasharray
143281 +disable_so_ltr501_match_samp_freq_fndecl_56878 ltr501_match_samp_freq fndecl 0 56878 &disable_so_msp_sleep_fndecl_56878
143282 +disable_so_signalled_used_vhost_virtqueue_56881 signalled_used vhost_virtqueue 0 56881 NULL
143283 +disable_so_titsc_probe_fndecl_56883 titsc_probe fndecl 0 56883 NULL
143284 +disable_so_xfs_btree_check_sblock_fndecl_56897 xfs_btree_check_sblock fndecl 0 56897 NULL
143285 +disable_so_jiffies_next_hackrf_dev_56900 jiffies_next hackrf_dev 0 56900 NULL
143286 +disable_so_bpf_get_prandom_u32_fndecl_56904 bpf_get_prandom_u32 fndecl 0 56904 NULL
143287 +disable_so_rt_lifetime_icmpv6_nd_ra_56907 rt_lifetime icmpv6_nd_ra 0 56907 NULL
143288 +disable_so_base_addr_ufshcd_sg_entry_56924 base_addr ufshcd_sg_entry 0 56924 NULL
143289 +disable_so_crypto_gcm_decrypt_fndecl_56932 crypto_gcm_decrypt fndecl 0 56932 NULL
143290 +disable_so_pll_d_aic31xx_rate_divs_56933 pll_d aic31xx_rate_divs 0 56933 NULL
143291 +disable_so_mc_arb_burst_time_SMC_SIslands_MCArbDramTimingRegisterSet_56938 mc_arb_burst_time SMC_SIslands_MCArbDramTimingRegisterSet 0 56938 NULL
143292 +disable_so_hfc_jiffies_vardecl_hfcpci_c_56949 hfc_jiffies vardecl_hfcpci.c 0 56949 NULL
143293 +disable_so_pm_timeout_orinoco_private_56953 pm_timeout orinoco_private 0 56953 NULL
143294 +disable_so_cpu_delayed_work_56959 cpu delayed_work 0 56959 NULL
143295 +disable_so_sys_sched_setscheduler_fndecl_56964 sys_sched_setscheduler fndecl 2-1-0 56964 NULL
143296 +disable_so_ucode_beacon_time_il_priv_56968 ucode_beacon_time il_priv 0 56968 NULL
143297 +disable_so_ntsc_tvdac_adj_radeon_encoder_tv_dac_56984 ntsc_tvdac_adj radeon_encoder_tv_dac 0 56984 NULL
143298 +disable_so_hbqaddrLow_config_hbq_var_56996 hbqaddrLow config_hbq_var 0 56996 NULL
143299 +disable_so_hpios_delay_micro_seconds_fndecl_57000 hpios_delay_micro_seconds fndecl 1 57000 NULL
143300 +disable_so_pwm_freq_nvbios_therm_fan_57021 pwm_freq nvbios_therm_fan 0 57021 NULL
143301 +disable_so_cycle_interval_timekeeper_57030 cycle_interval timekeeper 0 57030 NULL
143302 +disable_so_qce_ablkcipher_register_fndecl_57031 qce_ablkcipher_register fndecl 0 57031 NULL
143303 +disable_so_posix_cpu_clock_set_fndecl_57033 posix_cpu_clock_set fndecl 1 57033 NULL
143304 +disable_so_ac97_clock_via82xx_modem_57034 ac97_clock via82xx_modem 0 57034 NULL
143305 +disable_so_ip_set_get_ipaddr4_fndecl_57035 ip_set_get_ipaddr4 fndecl 0 57035 NULL
143306 +disable_so_mmap_min_addr_handler_fndecl_57042 mmap_min_addr_handler fndecl 0 57042 NULL
143307 +disable_so___mutex_lock_interruptible_slowpath_fndecl_57044 __mutex_lock_interruptible_slowpath fndecl 0 57044 NULL
143308 +disable_so_round_jiffies_relative_fndecl_57045 round_jiffies_relative fndecl 0-1 57045 NULL
143309 +disable_so_addr2___pollrdmwr_57048 addr2 __pollrdmwr 0 57048 NULL
143310 +disable_so_opmode_ioaddr_mxser_port_57052 opmode_ioaddr mxser_port 0 57052 NULL nohasharray
143311 +disable_so_xfrm_hash_transfer_fndecl_57052 xfrm_hash_transfer fndecl 5 57052 &disable_so_opmode_ioaddr_mxser_port_57052
143312 +disable_so_hpi_sample_clock_query_source_index_fndecl_57055 hpi_sample_clock_query_source_index fndecl 1-0 57055 NULL
143313 +disable_so_bitmap_full_fndecl_57072 bitmap_full fndecl 2 57072 NULL
143314 +disable_so_cmd_attr_deregister_cpumask_fndecl_57077 cmd_attr_deregister_cpumask fndecl 0 57077 NULL
143315 +disable_so_hashtab_create_fndecl_57082 hashtab_create fndecl 3 57082 NULL
143316 +disable_so_laddr_c2wr_ae_connection_request_57084 laddr c2wr_ae_connection_request 0 57084 NULL
143317 +disable_so_alarmtimer_suspend_fndecl_57099 alarmtimer_suspend fndecl 0 57099 NULL
143318 +disable_so___cpufreq_cooling_register_fndecl_57101 __cpufreq_cooling_register fndecl 3 57101 NULL
143319 +disable_so_fll_clk_ref_div__fll_div_57104 fll_clk_ref_div _fll_div 0 57104 NULL
143320 +disable_so_tsc_to_system_mul_pvclock_vcpu_time_info_57110 tsc_to_system_mul pvclock_vcpu_time_info 0 57110 NULL nohasharray
143321 +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
143322 +disable_so_d_spc_timer_qc_dqblk_57112 d_spc_timer qc_dqblk 0 57112 NULL
143323 +disable_so_ntp_error_shift_timekeeper_57130 ntp_error_shift timekeeper 0 57130 NULL
143324 +disable_so_tuner_addr_cx88_board_57133 tuner_addr cx88_board 0 57133 NULL
143325 +disable_so_width_v4l2_bt_timings_57137 width v4l2_bt_timings 0 57137 NULL
143326 +disable_so_function_timer_list_57140 function timer_list 1 57140 NULL
143327 +disable_so_tuner_address_ts2020_config_57154 tuner_address ts2020_config 0 57154 NULL
143328 +disable_so_sm501_set_clock_fndecl_57155 sm501_set_clock fndecl 3-0 57155 NULL
143329 +disable_so_addrlimit_qib_user_sdma_pkt_57160 addrlimit qib_user_sdma_pkt 0 57160 NULL
143330 +disable_so_read_file_regidx_fndecl_57161 read_file_regidx fndecl 3-0 57161 NULL
143331 +disable_so_slot_time_rt2x00lib_erp_57170 slot_time rt2x00lib_erp 0 57170 NULL
143332 +disable_so_bx_pt_regs_57172 bx pt_regs 0 57172 NULL
143333 +disable_so_ssb_pmu_get_controlclock_fndecl_57187 ssb_pmu_get_controlclock fndecl 0 57187 NULL
143334 +disable_so_inet_fill_ifaddr_fndecl_57209 inet_fill_ifaddr fndecl 0-3-5 57209 NULL
143335 +disable_so_mem_addr_vardecl_debugfs_c_57210 mem_addr vardecl_debugfs.c 0 57210 NULL
143336 +disable_so_iwl_static_sleep_cmd_fndecl_57211 iwl_static_sleep_cmd fndecl 4 57211 NULL
143337 +disable_so_frequency_khz_ts2020_priv_57218 frequency_khz ts2020_priv 0 57218 NULL
143338 +disable_so_hashm_dcb_output_57225 hashm dcb_output 0 57225 NULL
143339 +disable_so_show_risetime_fndecl_57236 show_risetime fndecl 0 57236 NULL
143340 +disable_so_iscsi_nacl_attrib_store_random_r2t_offsets_fndecl_57241 iscsi_nacl_attrib_store_random_r2t_offsets fndecl 0-3 57241 NULL
143341 +disable_so_hash_netiface6_expire_fndecl_57246 hash_netiface6_expire fndecl 4 57246 NULL
143342 +disable_so_delayed_ack_bictcp_57249 delayed_ack bictcp 0 57249 NULL
143343 +disable_so_addr_he_ioctl_reg_57251 addr he_ioctl_reg 0 57251 NULL
143344 +disable_so_crystalfreq_ssb_chipcommon_pmu_57260 crystalfreq ssb_chipcommon_pmu 0 57260 NULL
143345 +disable_so_i_dtime_ext4_inode_info_57265 i_dtime ext4_inode_info 0 57265 NULL
143346 +disable_so_qlcnic_schedule_work_fndecl_57272 qlcnic_schedule_work fndecl 3 57272 NULL
143347 +disable_so_uid_affs_tail_57279 uid affs_tail 0 57279 NULL nohasharray
143348 +disable_so_delay_slave_57279 delay slave 0 57279 &disable_so_uid_affs_tail_57279 nohasharray
143349 +disable_so_pwm_freq_to_reg_627hf_fndecl_57279 pwm_freq_to_reg_627hf fndecl 0 57279 &disable_so_delay_slave_57279
143350 +disable_so_sock_set_timeout_fndecl_57281 sock_set_timeout fndecl 0-3 57281 NULL
143351 +disable_so_phys_addr_fndecl_57284 phys_addr fndecl 0 57284 NULL
143352 +disable_so_i_uid_minix2_inode_57288 i_uid minix2_inode 0 57288 NULL
143353 +disable_so_hash_netnet4_expire_fndecl_57295 hash_netnet4_expire fndecl 4 57295 NULL
143354 +disable_so_mtrr_file_add_fndecl_57296 mtrr_file_add fndecl 1-2 57296 NULL
143355 +disable_so_rd_addr_gfs2_rgrpd_57301 rd_addr gfs2_rgrpd 0 57301 NULL
143356 +disable_so_elf_map_fndecl_57308 elf_map fndecl 0-2-4-5 57308 NULL
143357 +disable_so_frame_len_stv0900_signal_info_57310 frame_len stv0900_signal_info 0 57310 NULL nohasharray
143358 +disable_so_crypto_pcbc_encrypt_segment_fndecl_57310 crypto_pcbc_encrypt_segment fndecl 0 57310 &disable_so_frame_len_stv0900_signal_info_57310
143359 +disable_so_xs_init_anyaddr_fndecl_57311 xs_init_anyaddr fndecl 1 57311 NULL
143360 +disable_so_ahash_setkey_unaligned_fndecl_57314 ahash_setkey_unaligned fndecl 3 57314 NULL
143361 +disable_so_active_time_lm8333_platform_data_57318 active_time lm8333_platform_data 0 57318 NULL
143362 +disable_so_snd_timer_start_slave_fndecl_57320 snd_timer_start_slave fndecl 0 57320 NULL
143363 +disable_so_dma_addr_pluto_57323 dma_addr pluto 0 57323 NULL nohasharray
143364 +disable_so_bitmap_print_to_pagebuf_fndecl_57323 bitmap_print_to_pagebuf fndecl 4 57323 &disable_so_dma_addr_pluto_57323
143365 +disable_so_sgl_pg0_addr_hi_sgl_page_pairs_57333 sgl_pg0_addr_hi sgl_page_pairs 0 57333 NULL
143366 +disable_so_scd_base_addr_iwl_trans_pcie_57336 scd_base_addr iwl_trans_pcie 0 57336 NULL
143367 +disable_so_vfio_msi_set_vector_signal_fndecl_57339 vfio_msi_set_vector_signal fndecl 0-2 57339 NULL
143368 +disable_so_sfq_hash_fndecl_57343 sfq_hash fndecl 0 57343 NULL
143369 +disable_so_security_task_getscheduler_fndecl_57345 security_task_getscheduler fndecl 0 57345 NULL
143370 +disable_so_xfrm_idx_hash_transfer_fndecl_57346 xfrm_idx_hash_transfer fndecl 3 57346 NULL
143371 +disable_so_hblank_hi_lvds_dvo_timing_57349 hblank_hi lvds_dvo_timing 0 57349 NULL
143372 +disable_so_try_cancel_split_timeout_fndecl_57358 try_cancel_split_timeout fndecl 0 57358 NULL
143373 +disable_so_node_read_cpumask_fndecl_57363 node_read_cpumask fndecl 0 57363 NULL
143374 +disable_so_module_addr_max_rw_vardecl_module_c_57377 module_addr_max_rw vardecl_module.c 0 57377 NULL
143375 +disable_so_timecounter_read_delta_fndecl_57378 timecounter_read_delta fndecl 0 57378 NULL
143376 +disable_so_addr_hi_ahci_sg_57386 addr_hi ahci_sg 0 57386 NULL
143377 +disable_so_rpi_paddr_lo_lpfc_mbx_post_hdr_tmpl_57387 rpi_paddr_lo lpfc_mbx_post_hdr_tmpl 0 57387 NULL
143378 +disable_so_read_signal_strength_dvb_frontend_ops_57393 read_signal_strength dvb_frontend_ops 0 57393 NULL nohasharray
143379 +disable_so_aes_init_fndecl_57393 aes_init fndecl 0 57393 &disable_so_read_signal_strength_dvb_frontend_ops_57393
143380 +disable_so_iscsi_stat_instance_show_attr_disc_time_fndecl_57397 iscsi_stat_instance_show_attr_disc_time fndecl 0 57397 NULL nohasharray
143381 +disable_so_inblock_signal_struct_57397 inblock signal_struct 0 57397 &disable_so_iscsi_stat_instance_show_attr_disc_time_fndecl_57397
143382 +disable_so_ks0108_address_fndecl_57399 ks0108_address fndecl 1 57399 NULL
143383 +disable_so_set_mtrr_fndecl_57402 set_mtrr fndecl 2-3 57402 NULL
143384 +disable_so___hw_addr_del_entry_fndecl_57405 __hw_addr_del_entry fndecl 0 57405 NULL
143385 +disable_so_adis16136_write_frequency_fndecl_57414 adis16136_write_frequency fndecl 0-4 57414 NULL
143386 +disable_so_addr_hi_eth_rx_cqe_next_page_57432 addr_hi eth_rx_cqe_next_page 0 57432 NULL
143387 +disable_so_vp_iowrite64_twopart_fndecl_57440 vp_iowrite64_twopart fndecl 1 57440 NULL
143388 +disable_so_demod_i2c_addr_tda10071_config_57445 demod_i2c_addr tda10071_config 0 57445 NULL
143389 +disable_so___mcheck_cpu_mce_banks_init_fndecl_57446 __mcheck_cpu_mce_banks_init fndecl 0 57446 NULL
143390 +disable_so_reference_freq_amdgpu_pll_57451 reference_freq amdgpu_pll 0 57451 NULL
143391 +disable_so_default_dispclk_radeon_clock_57469 default_dispclk radeon_clock 0 57469 NULL
143392 +disable_so_dma_pool_free_fndecl_57472 dma_pool_free fndecl 3 57472 NULL
143393 +disable_so_ds1307_get_time_fndecl_57477 ds1307_get_time fndecl 0 57477 NULL
143394 +disable_so_addr_ch_mem_range_57497 addr ch_mem_range 0 57497 NULL
143395 +disable_so_ip_hash_netiface4_elem_57501 ip hash_netiface4_elem 0 57501 NULL
143396 +disable_so_dt_cpufreq_platdrv_init_fndecl_57502 dt_cpufreq_platdrv_init fndecl 0 57502 NULL
143397 +disable_so_fuse_flush_times_fndecl_57514 fuse_flush_times fndecl 0 57514 NULL
143398 +disable_so_nl_pid_sockaddr_nl_57515 nl_pid sockaddr_nl 0 57515 NULL
143399 +disable_so_plane_vaddr_fndecl_57531 plane_vaddr fndecl 5 57531 NULL
143400 +disable_so_addr_nv_adma_prd_57534 addr nv_adma_prd 0 57534 NULL
143401 +disable_so_task_tgid_vnr_fndecl_57539 task_tgid_vnr fndecl 0 57539 NULL
143402 +disable_so_get_register_interruptible_fndecl_57541 get_register_interruptible fndecl 0 57541 NULL
143403 +disable_so_spi_rcvhdr_tailaddr_ipath_base_info_57542 spi_rcvhdr_tailaddr ipath_base_info 0 57542 NULL
143404 +disable_so_ath9k_hw_clear_queue_interrupts_fndecl_57543 ath9k_hw_clear_queue_interrupts fndecl 2 57543 NULL
143405 +disable_so_cl_recover_timer_dlm_cluster_57553 cl_recover_timer dlm_cluster 0 57553 NULL nohasharray
143406 +disable_so_boot_addr_pmu_nvbios_pmuR_57553 boot_addr_pmu nvbios_pmuR 0 57553 &disable_so_cl_recover_timer_dlm_cluster_57553 nohasharray
143407 +disable_so___mod_timer_fndecl_57553 __mod_timer fndecl 2 57553 &disable_so_boot_addr_pmu_nvbios_pmuR_57553
143408 +disable_so_hpfb_freq_cs42l56_platform_data_57565 hpfb_freq cs42l56_platform_data 0 57565 NULL nohasharray
143409 +disable_so_i915_max_freq_set_fndecl_57565 i915_max_freq_set fndecl 2-0 57565 &disable_so_hpfb_freq_cs42l56_platform_data_57565
143410 +disable_so_frequency_v4l2_frequency_57580 frequency v4l2_frequency 0 57580 NULL
143411 +disable_so_time_mce_57593 time mce 0 57593 NULL
143412 +disable_so_addr_abituguru3_data_57605 addr abituguru3_data 0 57605 NULL
143413 +disable_so_bitmap_onto_fndecl_57611 bitmap_onto fndecl 4 57611 NULL
143414 +disable_so_rx4581_get_datetime_fndecl_57612 rx4581_get_datetime fndecl 0 57612 NULL
143415 +disable_so_rem_addr_nes_cm_info_57615 rem_addr nes_cm_info 0 57615 NULL
143416 +disable_so_lease_time_nfs_fsinfo_57627 lease_time nfs_fsinfo 0 57627 NULL
143417 +disable_so_hash_tbl_pbl_addr_hi_fcoe_kwqe_init2_57631 hash_tbl_pbl_addr_hi fcoe_kwqe_init2 0 57631 NULL
143418 +disable_so_pci_addr_blogic_probeinfo_57646 pci_addr blogic_probeinfo 0 57646 NULL
143419 +disable_so_intel_gpio_runtime_idle_fndecl_57650 intel_gpio_runtime_idle fndecl 0 57650 NULL
143420 +disable_so_clock_div_par_info_57652 clock_div par_info 0 57652 NULL
143421 +disable_so_overflowuid_vardecl_57653 overflowuid vardecl 0 57653 NULL
143422 +disable_so_start_time_request_57657 start_time request 0 57657 NULL nohasharray
143423 +disable_so_wil_freq_seq_open_fndecl_57657 wil_freq_seq_open fndecl 0 57657 &disable_so_start_time_request_57657 nohasharray
143424 +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
143425 +disable_so_addr_hi_dma_address_57659 addr_hi dma_address 0 57659 NULL
143426 +disable_so_wm2200_runtime_resume_fndecl_57661 wm2200_runtime_resume fndecl 0 57661 NULL nohasharray
143427 +disable_so_w_idx_addr_brcmf_pcie_ringbuf_57661 w_idx_addr brcmf_pcie_ringbuf 0 57661 &disable_so_wm2200_runtime_resume_fndecl_57661
143428 +disable_so_timeout_us_vardecl_tlb_uv_c_57666 timeout_us vardecl_tlb_uv.c 0 57666 NULL
143429 +disable_so_fence_wait_timeout_fndecl_57667 fence_wait_timeout fndecl 0-3 57667 NULL nohasharray
143430 +disable_so_signal_cfg80211_bss_57667 signal cfg80211_bss 0 57667 &disable_so_fence_wait_timeout_fndecl_57667
143431 +disable_so_admin_timeout_vardecl_nvme_core_c_57668 admin_timeout vardecl_nvme-core.c 0 57668 NULL
143432 +disable_so_next_gid_index_mlx4_mgm_57670 next_gid_index mlx4_mgm 0 57670 NULL
143433 +disable_so_sdn_objnamel_sockaddr_dn_57674 sdn_objnamel sockaddr_dn 0 57674 NULL
143434 +disable_so_diolan_set_clock_synch_timeout_fndecl_57678 diolan_set_clock_synch_timeout fndecl 0 57678 NULL
143435 +disable_so_pioaddr_rhine_private_57682 pioaddr rhine_private 0 57682 NULL nohasharray
143436 +disable_so_or51132_read_signal_strength_fndecl_57682 or51132_read_signal_strength fndecl 0 57682 &disable_so_pioaddr_rhine_private_57682
143437 +disable_so_np_oaktrail_hdmi_clock_57683 np oaktrail_hdmi_clock 0 57683 NULL
143438 +disable_so_laddr_check_rds_transport_57695 laddr_check rds_transport 1 57695 NULL
143439 +disable_so_pause_time_ixgbe_fc_info_57702 pause_time ixgbe_fc_info 0 57702 NULL
143440 +disable_so_img_spfi_runtime_resume_fndecl_57703 img_spfi_runtime_resume fndecl 0 57703 NULL
143441 +disable_so_y_runtime_sc_57719 y runtime_sc 0 57719 NULL nohasharray
143442 +disable_so_tscdeadline_kvm_timer_57719 tscdeadline kvm_timer 0 57719 &disable_so_y_runtime_sc_57719
143443 +disable_so_dmaaddr_avmcard_dmabuf_57720 dmaaddr avmcard_dmabuf 0 57720 NULL nohasharray
143444 +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
143445 +disable_so_xgene_rtc_read_time_fndecl_57728 xgene_rtc_read_time fndecl 0 57728 NULL
143446 +disable_so_dma_addr_vnic_wq_buf_57732 dma_addr vnic_wq_buf 0 57732 NULL
143447 +disable_so_E_md4hash_fndecl_57735 E_md4hash fndecl 0 57735 NULL
143448 +disable_so_azx_timecounter_init_fndecl_57762 azx_timecounter_init fndecl 3 57762 NULL
143449 +disable_so_pcibios_save_fw_addr_fndecl_57765 pcibios_save_fw_addr fndecl 3 57765 NULL nohasharray
143450 +disable_so_hash_setkey_fndecl_57765 hash_setkey fndecl 0-3 57765 &disable_so_pcibios_save_fw_addr_fndecl_57765
143451 +disable_so_dlm_master_hash_fndecl_57794 dlm_master_hash fndecl 2 57794 NULL
143452 +disable_so_bitmap_or_fndecl_57806 bitmap_or fndecl 4 57806 NULL
143453 +disable_so_iso_stream_schedule_fndecl_57815 iso_stream_schedule fndecl 0 57815 NULL nohasharray
143454 +disable_so_crypto_register_rng_fndecl_57815 crypto_register_rng fndecl 0 57815 &disable_so_iso_stream_schedule_fndecl_57815
143455 +disable_so_authenc_verify_ahash_done_fndecl_57820 authenc_verify_ahash_done fndecl 2 57820 NULL
143456 +disable_so___timespec_to_jiffies_fndecl_57822 __timespec_to_jiffies fndecl 0-2-1 57822 NULL
143457 +disable_so_sys_addr_to_csrow_fndecl_57824 sys_addr_to_csrow fndecl 0-2 57824 NULL
143458 +disable_so_req_q_phy_addr_ql3_adapter_57830 req_q_phy_addr ql3_adapter 0 57830 NULL
143459 +disable_so_htod_mb_data_addr_brcmf_pcie_shared_info_57843 htod_mb_data_addr brcmf_pcie_shared_info 0 57843 NULL
143460 +disable_so_xfs_btree_rec_offset_fndecl_57864 xfs_btree_rec_offset fndecl 0-2 57864 NULL
143461 +disable_so_write_phy_reg_fndecl_57868 write_phy_reg fndecl 3-2 57868 NULL
143462 +disable_so_bg_block_bitmap_lo_ext4_group_desc_57870 bg_block_bitmap_lo ext4_group_desc 0 57870 NULL
143463 +disable_so_s_wtime_ext4_super_block_57871 s_wtime ext4_super_block 0 57871 NULL
143464 +disable_so_bridge_hello_time_net_bridge_57884 bridge_hello_time net_bridge 0 57884 NULL
143465 +disable_so_gpu_addr_radeon_wb_57894 gpu_addr radeon_wb 0 57894 NULL
143466 +disable_so_addr_vxge_hw_mempool_dma_57895 addr vxge_hw_mempool_dma 0 57895 NULL nohasharray
143467 +disable_so_command_setecptiming_fndecl_57895 command_setecptiming fndecl 0 57895 &disable_so_addr_vxge_hw_mempool_dma_57895
143468 +disable_so_kbd_led_timeout_show_fndecl_57896 kbd_led_timeout_show fndecl 0 57896 NULL
143469 +disable_so_ceph_aes_encrypt2_fndecl_57897 ceph_aes_encrypt2 fndecl 2-6-8 57897 NULL
143470 +disable_so_mask_lo_mtrr_var_range_57901 mask_lo mtrr_var_range 0 57901 NULL
143471 +disable_so_family_xfrm_kmaddress_57907 family xfrm_kmaddress 0 57907 NULL
143472 +disable_so_ks0108_delay_vardecl_ks0108_c_57914 ks0108_delay vardecl_ks0108.c 0 57914 NULL
143473 +disable_so_mtime_server_afs_file_status_57920 mtime_server afs_file_status 0 57920 NULL
143474 +disable_so_base_guid_qib_devdata_57924 base_guid qib_devdata 0 57924 NULL
143475 +disable_so_btrfs_delete_delayed_insertion_item_fndecl_57926 btrfs_delete_delayed_insertion_item fndecl 0 57926 NULL
143476 +disable_so_atime_sec_p9_iattr_dotl_57931 atime_sec p9_iattr_dotl 0 57931 NULL
143477 +disable_so_io_bitmap_max_thread_struct_57932 io_bitmap_max thread_struct 0 57932 NULL
143478 +disable_so_cpu_has_cpufreq_fndecl_57939 cpu_has_cpufreq fndecl 1 57939 NULL
143479 +disable_so_discov_interleaved_timeout_hci_dev_57944 discov_interleaved_timeout hci_dev 0 57944 NULL
143480 +disable_so_batadv_orig_hash_del_if_fndecl_57951 batadv_orig_hash_del_if fndecl 2 57951 NULL
143481 +disable_so_vapic_addr_kvm_vapic_addr_57958 vapic_addr kvm_vapic_addr 0 57958 NULL
143482 +disable_so_qce_ahash_update_fndecl_57959 qce_ahash_update fndecl 0 57959 NULL
143483 +disable_so_work_base_addr_snd_ymfpci_57965 work_base_addr snd_ymfpci 0 57965 NULL
143484 +disable_so_enable_cpuidle_governor_57967 enable cpuidle_governor 0 57967 NULL
143485 +disable_so_hash_write_fndecl_57980 hash_write fndecl 0 57980 NULL
143486 +disable_so_addr_cs5535audio_dma_desc_57981 addr cs5535audio_dma_desc 0 57981 NULL nohasharray
143487 +disable_so_wdt_set_timeout_fndecl_57981 wdt_set_timeout fndecl 0 57981 &disable_so_addr_cs5535audio_dma_desc_57981
143488 +disable_so_memaddr_velocity_info_57982 memaddr velocity_info 0 57982 NULL
143489 +disable_so_uuids_open_fndecl_57986 uuids_open fndecl 0 57986 NULL
143490 +disable_so_p6_mt9t112_pll_divider_58006 p6 mt9t112_pll_divider 0 58006 NULL
143491 +disable_so_buffer_addr_lo_iscsi_bd_58012 buffer_addr_lo iscsi_bd 0 58012 NULL
143492 +disable_so_piix_set_timings_fndecl_58017 piix_set_timings fndecl 3 58017 NULL
143493 +disable_so_rqt_hwaddr_t4_rq_58021 rqt_hwaddr t4_rq 0 58021 NULL
143494 +disable_so_fc_gidpn_build_fndecl_58022 fc_gidpn_build fndecl 0-3-5 58022 NULL nohasharray
143495 +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
143496 +disable_so_sdev_runtime_suspend_fndecl_58023 sdev_runtime_suspend fndecl 0 58023 NULL
143497 +disable_so_check_msr_fndecl_58027 check_msr fndecl 2 58027 NULL
143498 +disable_so_init_addr_pmu_nvbios_pmuR_58030 init_addr_pmu nvbios_pmuR 0 58030 NULL
143499 +disable_so_read_addr_qla82xx_md_entry_mux_58034 read_addr qla82xx_md_entry_mux 0 58034 NULL
143500 +disable_so_vclk_post_div_real_pll_ct_58036 vclk_post_div_real pll_ct 0 58036 NULL
143501 +disable_so_mv88e6060_set_addr_fndecl_58039 mv88e6060_set_addr fndecl 0 58039 NULL
143502 +disable_so_skb_tx_hash_fndecl_58044 skb_tx_hash fndecl 0 58044 NULL
143503 +disable_so_kvm_mtrr_valid_fndecl_58049 kvm_mtrr_valid fndecl 3 58049 NULL
143504 +disable_so_enic_dev_del_station_addr_fndecl_58050 enic_dev_del_station_addr fndecl 0 58050 NULL
143505 +disable_so_divisor_flow_filter_58055 divisor flow_filter 0 58055 NULL nohasharray
143506 +disable_so_sg_addr_orc_scb_58055 sg_addr orc_scb 0 58055 &disable_so_divisor_flow_filter_58055
143507 +disable_so_read_addr_qla8xxx_minidump_entry_rdrom_58060 read_addr qla8xxx_minidump_entry_rdrom 0 58060 NULL
143508 +disable_so_op2_value_baddr1_gru_instruction_58062 op2_value_baddr1 gru_instruction 0 58062 NULL
143509 +disable_so_wait_table_hash_nr_entries_zone_58067 wait_table_hash_nr_entries zone 0 58067 NULL
143510 +disable_so_write_delay_adis_data_58068 write_delay adis_data 0 58068 NULL
143511 +disable_so_paging64_walk_addr_nested_fndecl_58079 paging64_walk_addr_nested fndecl 3-4 58079 NULL
143512 +disable_so_pm860x_rtc_set_time_fndecl_58084 pm860x_rtc_set_time fndecl 0 58084 NULL nohasharray
143513 +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
143514 +disable_so_regvalue__coeff_div_58086 regvalue _coeff_div 0 58086 NULL
143515 +disable_so_ext_addr_solo_p2m_desc_58103 ext_addr solo_p2m_desc 0 58103 NULL
143516 +disable_so_vclk_radeon_uvd_clock_voltage_dependency_entry_58107 vclk radeon_uvd_clock_voltage_dependency_entry 0 58107 NULL
143517 +disable_so_freq_ath5k_chan_pcal_info_58109 freq ath5k_chan_pcal_info 0 58109 NULL
143518 +disable_so_d_ino_timer_qc_dqblk_58112 d_ino_timer qc_dqblk 0 58112 NULL nohasharray
143519 +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
143520 +disable_so_src_addr_low_qlcnic_pex_dma_descriptor_58115 src_addr_low qlcnic_pex_dma_descriptor 0 58115 NULL
143521 +disable_so_dvb_buf_tscnt_vardecl_cx88_dvb_c_58119 dvb_buf_tscnt vardecl_cx88-dvb.c 0 58119 NULL
143522 +disable_so_aes_encrypt_packets_read_fndecl_58121 aes_encrypt_packets_read fndecl 0-3 58121 NULL
143523 +disable_so_cq_dma_address_skd_device_58128 cq_dma_address skd_device 0 58128 NULL
143524 +disable_so_mtrr_type_lookup_fixed_fndecl_58157 mtrr_type_lookup_fixed fndecl 1 58157 NULL
143525 +disable_so_start_rmt_timer0_fndecl_58158 start_rmt_timer0 fndecl 2 58158 NULL nohasharray
143526 +disable_so_pneigh_hash_fndecl_58158 pneigh_hash fndecl 2 58158 &disable_so_start_rmt_timer0_fndecl_58158
143527 +disable_so_spi_rcvhdr_tailaddr_qib_base_info_58167 spi_rcvhdr_tailaddr qib_base_info 0 58167 NULL
143528 +disable_so_high_bkey_58171 high bkey 0 58171 NULL
143529 +disable_so_remove_journal_hash_fndecl_58179 remove_journal_hash fndecl 4 58179 NULL
143530 +disable_so_snd_sgbuf_get_addr_fndecl_58188 snd_sgbuf_get_addr fndecl 0-2 58188 NULL
143531 +disable_so_get_cpu_topology_fndecl_58189 get_cpu_topology fndecl 1 58189 NULL
143532 +disable_so_mwl8k_cmd_update_mac_addr_fndecl_58193 mwl8k_cmd_update_mac_addr fndecl 0 58193 NULL
143533 +disable_so_i_mode_inode_58204 i_mode inode 0 58204 NULL
143534 +disable_so_qla4xxx_fw_uptime_show_fndecl_58212 qla4xxx_fw_uptime_show fndecl 0 58212 NULL
143535 +disable_so_ct_xfitimer_irq_rearm_fndecl_58216 ct_xfitimer_irq_rearm fndecl 2 58216 NULL
143536 +disable_so_r820t_set_analog_freq_fndecl_58223 r820t_set_analog_freq fndecl 0 58223 NULL
143537 +disable_so_devlink_sound_timer_operations_58261 devlink sound_timer_operations 0 58261 NULL
143538 +disable_so_lx_dsp_get_clock_frequency_fndecl_58263 lx_dsp_get_clock_frequency fndecl 0 58263 NULL
143539 +disable_so_qdr_dfe_time_qib_chippport_specific_58265 qdr_dfe_time qib_chippport_specific 0 58265 NULL
143540 +disable_so_boottime_set_fndecl_58270 boottime_set fndecl 0 58270 NULL
143541 +disable_so_unhandled_signal_fndecl_58272 unhandled_signal fndecl 2 58272 NULL
143542 +disable_so_nested_vmx_check_msr_switch_fndecl_58274 nested_vmx_check_msr_switch fndecl 2-3 58274 NULL
143543 +disable_so_atomic_counters_read_fndecl_58280 atomic_counters_read fndecl 3-0 58280 NULL
143544 +disable_so_read_delay_adis_data_58281 read_delay adis_data 0 58281 NULL
143545 +disable_so_rsi_sdio_set_cmd52_arg_fndecl_58288 rsi_sdio_set_cmd52_arg fndecl 0-2-3-4-5 58288 NULL
143546 +disable_so_ipv6_dev_get_saddr_fndecl_58290 ipv6_dev_get_saddr fndecl 0 58290 NULL
143547 +disable_so_futex_atomic_cmpxchg_inatomic_fndecl_58294 futex_atomic_cmpxchg_inatomic fndecl 4 58294 NULL
143548 +disable_so_gcm_hash_assoc_remain_done_fndecl_58296 gcm_hash_assoc_remain_done fndecl 2 58296 NULL
143549 +disable_so_regmap_update_bits_async_fndecl_58298 regmap_update_bits_async fndecl 2-4-3-0 58298 NULL
143550 +disable_so_dialwait_timer_isdn_net_local_s_58300 dialwait_timer isdn_net_local_s 0 58300 NULL
143551 +disable_so_addr_mISDNchannel_58316 addr mISDNchannel 0 58316 NULL
143552 +disable_so_incr_error_cpu_itimer_58327 incr_error cpu_itimer 0 58327 NULL
143553 +disable_so_tai_offset_timekeeper_58331 tai_offset timekeeper 0 58331 NULL
143554 +disable_so_mce_rdmsrl_fndecl_58332 mce_rdmsrl fndecl 0 58332 NULL
143555 +disable_so_start_ecm_timer_fndecl_58359 start_ecm_timer fndecl 2 58359 NULL
143556 +disable_so_autoconfig_read_divisor_id_fndecl_58367 autoconfig_read_divisor_id fndecl 0 58367 NULL
143557 +disable_so_x86_get_mtrr_mem_range_fndecl_58379 x86_get_mtrr_mem_range fndecl 3-4-2-0 58379 NULL
143558 +disable_so_mpc_ioapic_addr_fndecl_58384 mpc_ioapic_addr fndecl 0 58384 NULL
143559 +disable_so_addr_type_ipv6_saddr_score_58395 addr_type ipv6_saddr_score 0 58395 NULL
143560 +disable_so_setfreq_i_fndecl_58400 setfreq_i fndecl 2 58400 NULL
143561 +disable_so_tcp_md5_hash_skb_data_fndecl_58401 tcp_md5_hash_skb_data fndecl 3 58401 NULL
143562 +disable_so_aca_cstamp_ifacaddr6_58402 aca_cstamp ifacaddr6 0 58402 NULL
143563 +disable_so_old_cpufreq_freqs_58403 old cpufreq_freqs 0 58403 NULL
143564 +disable_so_jiffies_to_timeval_fndecl_58407 jiffies_to_timeval fndecl 1 58407 NULL
143565 +disable_so_vnic_dev_set_mac_addr_fndecl_58408 vnic_dev_set_mac_addr fndecl 0 58408 NULL
143566 +disable_so_sadb_lifetime_addtime_sadb_lifetime_58416 sadb_lifetime_addtime sadb_lifetime 0 58416 NULL
143567 +disable_so_addr_smsc47m1_data_58419 addr smsc47m1_data 0 58419 NULL
143568 +disable_so_clk_freq_g762_data_58420 clk_freq g762_data 0 58420 NULL
143569 +disable_so_khugepaged_scan_sleep_millisecs_vardecl_huge_memory_c_58427 khugepaged_scan_sleep_millisecs vardecl_huge_memory.c 0 58427 NULL nohasharray
143570 +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
143571 +disable_so_max_addr_dmar_domain_58431 max_addr dmar_domain 0 58431 NULL
143572 +disable_so_snd_ice1712_pro_internal_clock_default_info_fndecl_58437 snd_ice1712_pro_internal_clock_default_info fndecl 0 58437 NULL nohasharray
143573 +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
143574 +disable_so_bnx2fc_cmd_timer_set_fndecl_58441 bnx2fc_cmd_timer_set fndecl 2 58441 NULL
143575 +disable_so_do_settimeofday64_fndecl_58445 do_settimeofday64 fndecl 0 58445 NULL
143576 +disable_so_uv_mmtimer_ioctl_fndecl_58452 uv_mmtimer_ioctl fndecl 0 58452 NULL
143577 +disable_so_r61_val_fc2580_freq_regs_58455 r61_val fc2580_freq_regs 0 58455 NULL
143578 +disable_so_epp_read_addr_parport_operations_58468 epp_read_addr parport_operations 0-3 58468 NULL
143579 +disable_so_audio_config_hdmi_pixel_clock_fndecl_58471 audio_config_hdmi_pixel_clock fndecl 0 58471 NULL
143580 +disable_so_bufaddr_epic_tx_desc_58478 bufaddr epic_tx_desc 0 58478 NULL nohasharray
143581 +disable_so_qlcnic_sre_macaddr_change_fndecl_58478 qlcnic_sre_macaddr_change fndecl 0 58478 &disable_so_bufaddr_epic_tx_desc_58478
143582 +disable_so_gtime_task_struct_58480 gtime task_struct 0 58480 NULL nohasharray
143583 +disable_so_dma_addr_vpdma_buf_58480 dma_addr vpdma_buf 0 58480 &disable_so_gtime_task_struct_58480
143584 +disable_so_div_sync_wait_dib7000m_state_58486 div_sync_wait dib7000m_state 0 58486 NULL
143585 +disable_so_long_press_time_val_palmas_pwron_config_58497 long_press_time_val palmas_pwron_config 0 58497 NULL
143586 +disable_so_primary_pci_bus_58515 primary pci_bus 0 58515 NULL
143587 +disable_so_clk_frequency_imx_wm8962_data_58525 clk_frequency imx_wm8962_data 0 58525 NULL
143588 +disable_so_ieee80211_if_fmt_min_discovery_timeout_fndecl_58528 ieee80211_if_fmt_min_discovery_timeout fndecl 0-3 58528 NULL
143589 +disable_so_vidioc_s_frequency_fndecl_58543 vidioc_s_frequency fndecl 0 58543 NULL
143590 +disable_so_bitstream_put_bits_fndecl_58552 bitstream_put_bits fndecl 0-3 58552 NULL
143591 +disable_so_rbp_kvm_regs_58553 rbp kvm_regs 0 58553 NULL
143592 +disable_so_dosr_aic32x4_rate_divs_58555 dosr aic32x4_rate_divs 0 58555 NULL
143593 +disable_so_vscnprintf_fndecl_58558 vscnprintf fndecl 0-2 58558 NULL
143594 +disable_so_static_address_open_fndecl_58572 static_address_open fndecl 0 58572 NULL
143595 +disable_so_sysctl_rose_clear_request_timeout_vardecl_58580 sysctl_rose_clear_request_timeout vardecl 0 58580 NULL
143596 +disable_so_di_uid_dinode_58581 di_uid dinode 0 58581 NULL
143597 +disable_so_crypto_cts_decrypt_fndecl_58584 crypto_cts_decrypt fndecl 0-4 58584 NULL
143598 +disable_so_igu_base_addr_bnx2x_58589 igu_base_addr bnx2x 0 58589 NULL
143599 +disable_so_ifa_address_dn_ifaddr_58593 ifa_address dn_ifaddr 0 58593 NULL
143600 +disable_so_p54_get_band_from_freq_fndecl_58594 p54_get_band_from_freq fndecl 1 58594 NULL
143601 +disable_so_csk_ddp_setup_pgidx_cxgbi_device_58611 csk_ddp_setup_pgidx cxgbi_device 2 58611 NULL
143602 +disable_so_ref_mod_btrfs_delayed_ref_node_58614 ref_mod btrfs_delayed_ref_node 0 58614 NULL
143603 +disable_so_gr_remove_uid_fndecl_58619 gr_remove_uid fndecl 1 58619 NULL
143604 +disable_so_i2c_address_fc0012_config_58626 i2c_address fc0012_config 0 58626 NULL nohasharray
143605 +disable_so_ablkcipher_done_slow_fndecl_58626 ablkcipher_done_slow fndecl 0-2 58626 &disable_so_i2c_address_fc0012_config_58626
143606 +disable_so_address_b43legacy_dmadesc32_58627 address b43legacy_dmadesc32 0 58627 NULL
143607 +disable_so_di_atime_qnx6_inode_entry_58654 di_atime qnx6_inode_entry 0 58654 NULL nohasharray
143608 +disable_so_hactive_lo_lvds_dvo_timing_58654 hactive_lo lvds_dvo_timing 0 58654 &disable_so_di_atime_qnx6_inode_entry_58654
143609 +disable_so_ack_seq_tcp_skb_cb_58657 ack_seq tcp_skb_cb 0 58657 NULL
143610 +disable_so_matroxfb_PLL_mavenclock_fndecl_58658 matroxfb_PLL_mavenclock fndecl 3-4 58658 NULL nohasharray
143611 +disable_so_assert_exp_addr_sdpcm_shared_58658 assert_exp_addr sdpcm_shared 0 58658 &disable_so_matroxfb_PLL_mavenclock_fndecl_58658
143612 +disable_so_pre_div_freq_tbl_58661 pre_div freq_tbl 0 58661 NULL
143613 +disable_so_alsa_timer_init_fndecl_58667 alsa_timer_init fndecl 0 58667 NULL
143614 +disable_so_alloc_cpumask_var_node_fndecl_58668 alloc_cpumask_var_node fndecl 2-3 58668 NULL
143615 +disable_so_genwqe_debugfs_curr_dbg_uid2_open_fndecl_58673 genwqe_debugfs_curr_dbg_uid2_open fndecl 0 58673 NULL
143616 +disable_so_pixclock_fb_videomode_58678 pixclock fb_videomode 0 58678 NULL
143617 +disable_so_h_addr_reg_musb_qh_58681 h_addr_reg musb_qh 0 58681 NULL
143618 +disable_so_timeout_cyclades_port_58683 timeout cyclades_port 0 58683 NULL
143619 +disable_so_cxio_init_resource_fifo_random_fndecl_58684 cxio_init_resource_fifo_random fndecl 3 58684 NULL
143620 +disable_so_dib8000_get_timeout_fndecl_58702 dib8000_get_timeout fndecl 2-0 58702 NULL nohasharray
143621 +disable_so_xfs_btree_get_buf_block_fndecl_58702 xfs_btree_get_buf_block fndecl 0 58702 &disable_so_dib8000_get_timeout_fndecl_58702
143622 +disable_so_apds9300_write_interrupt_config_fndecl_58703 apds9300_write_interrupt_config fndecl 0 58703 NULL
143623 +disable_so_ath9k_hw_computetxtime_fndecl_58711 ath9k_hw_computetxtime fndecl 0-3-4-5 58711 NULL
143624 +disable_so_bus_address_drm_buf_58716 bus_address drm_buf 0 58716 NULL
143625 +disable_so_nr_irqs_vardecl_58723 nr_irqs vardecl 0 58723 NULL nohasharray
143626 +disable_so_hashbin_find_next_fndecl_58723 hashbin_find_next fndecl 2 58723 &disable_so_nr_irqs_vardecl_58723
143627 +disable_so_snd_usb_find_clock_selector_fndecl_58728 snd_usb_find_clock_selector fndecl 2 58728 NULL
143628 +disable_so_radio_freq_bttv_58729 radio_freq bttv 0 58729 NULL
143629 +disable_so_xc_set_signal_source_fndecl_58733 xc_set_signal_source fndecl 0 58733 NULL
143630 +disable_so_doorbell_write_vardecl_pcc_cpufreq_c_58745 doorbell_write vardecl_pcc-cpufreq.c 0 58745 NULL
143631 +disable_so_cpu_clock_counter_kfd_ioctl_get_clock_counters_args_58758 cpu_clock_counter kfd_ioctl_get_clock_counters_args 0 58758 NULL
143632 +disable_so_btrfs_set_dev_replace_time_started_fndecl_58761 btrfs_set_dev_replace_time_started fndecl 3 58761 NULL
143633 +disable_so_i_hash_mask_vardecl_inode_c_58762 i_hash_mask vardecl_inode.c 0 58762 NULL
143634 +disable_so_gr_set_address_fndecl_58765 gr_set_address fndecl 2 58765 NULL
143635 +disable_so_perfect_tx_time_minstrel_rate_58766 perfect_tx_time minstrel_rate 0 58766 NULL
143636 +disable_so_min_ref_div_radeon_pll_58768 min_ref_div radeon_pll 0 58768 NULL
143637 +disable_so_demod_address_ec100_config_58771 demod_address ec100_config 0 58771 NULL
143638 +disable_so_phys_addr_vm_struct_58777 phys_addr vm_struct 0 58777 NULL
143639 +disable_so_addr_ramfuc_reg_58780 addr ramfuc_reg 0 58780 NULL nohasharray
143640 +disable_so_start_addr_p54_tx_info_58780 start_addr p54_tx_info 0 58780 &disable_so_addr_ramfuc_reg_58780
143641 +disable_so_interrupt_mask_oxygen_58792 interrupt_mask oxygen 0 58792 NULL
143642 +disable_so_time_to_tm_fndecl_58793 time_to_tm fndecl 2-1 58793 NULL
143643 +disable_so_irq_pci_dev_58794 irq pci_dev 0 58794 NULL
143644 +disable_so_reg_write_fndecl_58795 reg_write fndecl 0-2-3-4 58795 NULL
143645 +disable_so_eof_uid_xfs_fs_eofblocks_58796 eof_uid xfs_fs_eofblocks 0 58796 NULL
143646 +disable_so_s_dv_timings_v4l2_subdev_video_ops_58798 s_dv_timings v4l2_subdev_video_ops 0 58798 NULL
143647 +disable_so_iscsit_do_crypto_hash_buf_fndecl_58805 iscsit_do_crypto_hash_buf fndecl 3-4 58805 NULL
143648 +disable_so_ablkcipher_next_slow_fndecl_58809 ablkcipher_next_slow fndecl 3-4 58809 NULL
143649 +disable_so_set_process_cpu_timer_fndecl_58820 set_process_cpu_timer fndecl 2 58820 NULL
143650 +disable_so_btbcm_check_bdaddr_fndecl_58825 btbcm_check_bdaddr fndecl 0 58825 NULL
143651 +disable_so_seek_timeout_vardecl_radio_si470x_common_c_58832 seek_timeout vardecl_radio-si470x-common.c 0 58832 NULL
143652 +disable_so_rhashtable_rehash_attach_fndecl_58833 rhashtable_rehash_attach fndecl 0 58833 NULL
143653 +disable_so_read_posix_clock_operations_58837 read posix_clock_operations 2 58837 NULL
143654 +disable_so_atomic_open_inode_operations_58838 atomic_open inode_operations 4-5 58838 NULL nohasharray
143655 +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
143656 +disable_so_timeout_cmd_bidir_58846 timeout cmd_bidir 0 58846 NULL
143657 +disable_so_bank_mce_58847 bank mce 0 58847 NULL
143658 +disable_so_hw_ptr_wrap_snd_pcm_runtime_58849 hw_ptr_wrap snd_pcm_runtime 0 58849 NULL
143659 +disable_so_batadv_iv_ogm_fwd_send_time_fndecl_58851 batadv_iv_ogm_fwd_send_time fndecl 0 58851 NULL
143660 +disable_so_lrg_buf_q_alloc_phy_addr_ql3_adapter_58856 lrg_buf_q_alloc_phy_addr ql3_adapter 0 58856 NULL
143661 +disable_so_avc_get_hash_stats_fndecl_58860 avc_get_hash_stats fndecl 0 58860 NULL
143662 +disable_so_do_utimes_fndecl_58870 do_utimes fndecl 0-1 58870 NULL
143663 +disable_so_get_max_timeout_count_sdhci_ops_58875 get_max_timeout_count sdhci_ops 0 58875 NULL
143664 +disable_so_sys_setuid16_fndecl_58881 sys_setuid16 fndecl 0-1 58881 NULL
143665 +disable_so_pq_gpu_addr_kernel_queue_58891 pq_gpu_addr kernel_queue 0 58891 NULL
143666 +disable_so_suspend_time_ipw_priv_58911 suspend_time ipw_priv 0 58911 NULL
143667 +disable_so_Ti3026_calcclock_fndecl_58917 Ti3026_calcclock fndecl 2-3-0 58917 NULL
143668 +disable_so_virtual_reg_addr_wl1251_58918 virtual_reg_addr wl1251 0 58918 NULL
143669 +disable_so_timeout_read_fndecl_58936 timeout_read fndecl 3 58936 NULL
143670 +disable_so_bank_base_playback_addr_snd_ymfpci_58940 bank_base_playback_addr snd_ymfpci 0 58940 NULL
143671 +disable_so_sunkbd_interrupt_fndecl_58943 sunkbd_interrupt fndecl 2 58943 NULL
143672 +disable_so_cpufreq_add_policy_cpu_fndecl_58948 cpufreq_add_policy_cpu fndecl 0-2 58948 NULL
143673 +disable_so_vfreq___fb_timings_58967 vfreq __fb_timings 0 58967 NULL
143674 +disable_so___fdget_fndecl_58975 __fdget fndecl 1 58975 NULL
143675 +disable_so_log_addr_vhost_virtqueue_58983 log_addr vhost_virtqueue 0 58983 NULL
143676 +disable_so_start_addr_bnx2_mips_fw_file_entry_58985 start_addr bnx2_mips_fw_file_entry 0 58985 NULL
143677 +disable_so_wt_timeout_st21nfca_se_info_58988 wt_timeout st21nfca_se_info 0 58988 NULL
143678 +disable_so_sg_physaddr_sg_map_node_59010 sg_physaddr sg_map_node 0 59010 NULL
143679 +disable_so_hsync_pulse_width_hi_oaktrail_timing_info_59019 hsync_pulse_width_hi oaktrail_timing_info 0 59019 NULL
143680 +disable_so_cx88_set_freq_fndecl_59030 cx88_set_freq fndecl 0 59030 NULL
143681 +disable_so_daddr_ircomm_info_59034 daddr ircomm_info 0 59034 NULL
143682 +disable_so_iscsit_ta_netif_timeout_fndecl_59038 iscsit_ta_netif_timeout fndecl 0 59038 NULL
143683 +disable_so_frequency_stv090x_state_59044 frequency stv090x_state 0 59044 NULL
143684 +disable_so_slave_address_cp2112_write_req_report_59049 slave_address cp2112_write_req_report 0 59049 NULL
143685 +disable_so_ipath_hol_timeout_ms_vardecl_ipath_driver_c_59051 ipath_hol_timeout_ms vardecl_ipath_driver.c 0 59051 NULL
143686 +disable_so_acpi_throttling_wrmsr_fndecl_59058 acpi_throttling_wrmsr fndecl 1 59058 NULL
143687 +disable_so_acpi_cpufreq_init_fndecl_59061 acpi_cpufreq_init fndecl 0 59061 NULL
143688 +disable_so_evtbd_addr_hi_host_cmd_ds_pcie_details_59067 evtbd_addr_hi host_cmd_ds_pcie_details 0 59067 NULL
143689 +disable_so_addr_lo_dma_desc_59074 addr_lo dma_desc 0 59074 NULL
143690 +disable_so_xen_mce_chrdev_read_fndecl_59076 xen_mce_chrdev_read fndecl 0 59076 NULL
143691 +disable_so_addr_max8998_reg_dump_59086 addr max8998_reg_dump 0 59086 NULL
143692 +disable_so_card_snd_timer_id_59096 card snd_timer_id 0 59096 NULL
143693 +disable_so_addr_qib_sdma_txreq_59099 addr qib_sdma_txreq 0 59099 NULL
143694 +disable_so_rx_coalescing_timeo_bnad_59109 rx_coalescing_timeo bnad 0 59109 NULL
143695 +disable_so_dm_btree_del_fndecl_59119 dm_btree_del fndecl 0-2 59119 NULL
143696 +disable_so_topology_change_timer_show_fndecl_59122 topology_change_timer_show fndecl 0 59122 NULL
143697 +disable_so_ip_vs_addr_copy_fndecl_59129 ip_vs_addr_copy fndecl 1 59129 NULL
143698 +disable_so_i2c_address_cxd2820r_config_59130 i2c_address cxd2820r_config 0 59130 NULL
143699 +disable_so_panel_ref_divider_radeon_encoder_lvds_59134 panel_ref_divider radeon_encoder_lvds 0 59134 NULL nohasharray
143700 +disable_so_clock_lvds_dvo_timing_59134 clock lvds_dvo_timing 0 59134 &disable_so_panel_ref_divider_radeon_encoder_lvds_59134
143701 +disable_so_skcipher_setkey_fndecl_59135 skcipher_setkey fndecl 0-3 59135 NULL
143702 +disable_so_pcxhr_clock_type_info_fndecl_59137 pcxhr_clock_type_info fndecl 0 59137 NULL
143703 +disable_so_ccp_sha_setkey_fndecl_59138 ccp_sha_setkey fndecl 3 59138 NULL
143704 +disable_so_xfs_btree_shift_recs_fndecl_59139 xfs_btree_shift_recs fndecl 4 59139 NULL
143705 +disable_so_irq_set_chip_fndecl_59141 irq_set_chip fndecl 1 59141 NULL
143706 +disable_so_prech_timeout_midi_parms_59145 prech_timeout midi_parms 0 59145 NULL
143707 +disable_so_ecryptfs_message_wait_timeout_vardecl_59150 ecryptfs_message_wait_timeout vardecl 0 59150 NULL
143708 +disable_so_max_time_dib3000mc_config_59165 max_time dib3000mc_config 0 59165 NULL
143709 +disable_so_freq_snd_tea575x_59172 freq snd_tea575x 0 59172 NULL nohasharray
143710 +disable_so_hactive_hblank_hi_detailed_pixel_timing_59172 hactive_hblank_hi detailed_pixel_timing 0 59172 &disable_so_freq_snd_tea575x_59172
143711 +disable_so_last_port_bitmap_port_59176 last_port bitmap_port 0 59176 NULL
143712 +disable_so_svm_cid_sockaddr_vm_59186 svm_cid sockaddr_vm 0 59186 NULL
143713 +disable_so_divisor_tc_u_hnode_59196 divisor tc_u_hnode 0 59196 NULL
143714 +disable_so_address_r8a66597_pipe_info_59198 address r8a66597_pipe_info 0 59198 NULL
143715 +disable_so_val_addr_core0_nphy_rf_control_override_rev7_59213 val_addr_core0 nphy_rf_control_override_rev7 0 59213 NULL
143716 +disable_so_hv_signal_event_fndecl_59215 hv_signal_event fndecl 0 59215 NULL
143717 +disable_so_rv740_get_decoded_reference_divider_fndecl_59216 rv740_get_decoded_reference_divider fndecl 0-1 59216 NULL
143718 +disable_so_ecb_aes_decrypt_fndecl_59224 ecb_aes_decrypt fndecl 0-4 59224 NULL
143719 +disable_so_b44_interrupt_fndecl_59225 b44_interrupt fndecl 1 59225 NULL
143720 +disable_so_cpufreq_sysfs_create_file_fndecl_59228 cpufreq_sysfs_create_file fndecl 0 59228 NULL
143721 +disable_so_err_msr_regs_info_59233 err msr_regs_info 0 59233 NULL
143722 +disable_so_hci_dev_sockaddr_hci_59237 hci_dev sockaddr_hci 0 59237 NULL
143723 +disable_so_paddr_scq_info_59242 paddr scq_info 0 59242 NULL
143724 +disable_so_saddr_dat_cx231xx_i2c_xfer_data_59247 saddr_dat cx231xx_i2c_xfer_data 0 59247 NULL
143725 +disable_so_hash_cnt_ccp_aes_cmac_req_ctx_59249 hash_cnt ccp_aes_cmac_req_ctx 0 59249 NULL
143726 +disable_so_read_addr___cache_59255 read_addr __cache 0 59255 NULL
143727 +disable_so_freq_wmi_p2p_probe_response_cmd_59256 freq wmi_p2p_probe_response_cmd 0 59256 NULL
143728 +disable_so_ack_seq_tcphdr_59257 ack_seq tcphdr 0 59257 NULL
143729 +disable_so_i_uid_ext4_inode_59259 i_uid ext4_inode 0 59259 NULL
143730 +disable_so_prandom_seed_fndecl_59265 prandom_seed fndecl 1 59265 NULL nohasharray
143731 +disable_so_table1_addr_ipw_priv_59265 table1_addr ipw_priv 0 59265 &disable_so_prandom_seed_fndecl_59265
143732 +disable_so_set_mtrr_ops_59267 set mtrr_ops 2-3 59267 NULL
143733 +disable_so_signal_adm8211_tx_hdr_59276 signal adm8211_tx_hdr 0 59276 NULL
143734 +disable_so_n_pll_div_59277 n pll_div 0 59277 NULL
143735 +disable_so_burst_time_pie_vars_59278 burst_time pie_vars 0 59278 NULL
143736 +disable_so_atp867x_get_active_clocks_shifted_fndecl_59292 atp867x_get_active_clocks_shifted fndecl 0-2 59292 NULL
143737 +disable_so_hello_timer_show_fndecl_59304 hello_timer_show fndecl 0 59304 NULL
143738 +disable_so_pc_timeout_ubifs_debug_info_59317 pc_timeout ubifs_debug_info 0 59317 NULL
143739 +disable_so_reg_se_cache_ti_tscadc_dev_59318 reg_se_cache ti_tscadc_dev 0 59318 NULL
143740 +disable_so_hv_init_clockevent_device_fndecl_59324 hv_init_clockevent_device fndecl 2 59324 NULL nohasharray
143741 +disable_so_error_async_delayed_refs_59324 error async_delayed_refs 0 59324 &disable_so_hv_init_clockevent_device_fndecl_59324
143742 +disable_so_query_dv_timings_v4l2_subdev_video_ops_59327 query_dv_timings v4l2_subdev_video_ops 0 59327 NULL
143743 +disable_so_pwr_vec_read_time_b43_txpower_lo_control_59329 pwr_vec_read_time b43_txpower_lo_control 0 59329 NULL
143744 +disable_so_proc_do_uuid_fndecl_59345 proc_do_uuid fndecl 0 59345 NULL
143745 +disable_so_nilfs_segctor_last_seg_write_time_show_fndecl_59356 nilfs_segctor_last_seg_write_time_show fndecl 0 59356 NULL nohasharray
143746 +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
143747 +disable_so_usb_start_wait_urb_fndecl_59365 usb_start_wait_urb fndecl 0 59365 NULL
143748 +disable_so_cpuid_xenpf_cpu_ol_59386 cpuid xenpf_cpu_ol 0 59386 NULL
143749 +disable_so_mem_addr_ips_ha_59397 mem_addr ips_ha 0 59397 NULL
143750 +disable_so_ip6addrlbl_fill_fndecl_59401 ip6addrlbl_fill fndecl 0-4-6 59401 NULL
143751 +disable_so_cq_addr_lo_fcoe_kwqe_conn_offload2_59405 cq_addr_lo fcoe_kwqe_conn_offload2 0 59405 NULL
143752 +disable_so_l_pll_freq_tbl_59406 l pll_freq_tbl 0 59406 NULL
143753 +disable_so_sgid_idx_ocrdma_qp_59415 sgid_idx ocrdma_qp 0 59415 NULL
143754 +disable_so_i2c_bit_add_numbered_bus_fndecl_59416 i2c_bit_add_numbered_bus fndecl 0 59416 NULL
143755 +disable_so_trb_addr_lo_mv_u3d_ep_context_59424 trb_addr_lo mv_u3d_ep_context 0 59424 NULL
143756 +disable_so_shash_compat_init_fndecl_59445 shash_compat_init fndecl 0 59445 NULL
143757 +disable_so_currentfreq_cx24123_state_59448 currentfreq cx24123_state 0 59448 NULL
143758 +disable_so_neigh_proc_dointvec_userhz_jiffies_fndecl_59453 neigh_proc_dointvec_userhz_jiffies fndecl 0 59453 NULL
143759 +disable_so_panel_fb_divider_radeon_encoder_lvds_59458 panel_fb_divider radeon_encoder_lvds 0 59458 NULL nohasharray
143760 +disable_so_sec_pvclock_wall_clock_59458 sec pvclock_wall_clock 0 59458 &disable_so_panel_fb_divider_radeon_encoder_lvds_59458
143761 +disable_so_wl18xx_acx_host_if_cfg_bitmap_fndecl_59465 wl18xx_acx_host_if_cfg_bitmap fndecl 0 59465 NULL
143762 +disable_so_addr_erase_info_59472 addr erase_info 0 59472 NULL nohasharray
143763 +disable_so_ath9k_hw_addrxbuf_edma_fndecl_59472 ath9k_hw_addrxbuf_edma fndecl 2 59472 &disable_so_addr_erase_info_59472
143764 +disable_so_hour_timestamp_59476 hour timestamp 0 59476 NULL
143765 +disable_so_check_cpu_itimer_fndecl_59478 check_cpu_itimer fndecl 5-4 59478 NULL
143766 +disable_so_flush_time_cache_detail_59492 flush_time cache_detail 0 59492 NULL
143767 +disable_so_error0_timeout_si_sm_data_59495 error0_timeout si_sm_data 0 59495 NULL
143768 +disable_so_sampling_freq_mixart_stream_param_desc_59502 sampling_freq mixart_stream_param_desc 0 59502 NULL
143769 +disable_so_enc_addr_low_sata_start_req_59503 enc_addr_low sata_start_req 0 59503 NULL
143770 +disable_so_hash_unix_address_59504 hash unix_address 0 59504 NULL nohasharray
143771 +disable_so_ufs_get_inode_uid_fndecl_59504 ufs_get_inode_uid fndecl 0 59504 &disable_so_hash_unix_address_59504
143772 +disable_so_demod_address_tda1002x_config_59516 demod_address tda1002x_config 0 59516 NULL
143773 +disable_so_getaddr_dumpit_fndecl_59518 getaddr_dumpit fndecl 0 59518 NULL
143774 +disable_so_tg3_interrupt_fndecl_59519 tg3_interrupt fndecl 1 59519 NULL
143775 +disable_so_utime_task_struct_59526 utime task_struct 0 59526 NULL
143776 +disable_so_decrypt_ablkcipher_tfm_59537 decrypt ablkcipher_tfm 0 59537 NULL
143777 +disable_so_dma_addr_bnad_rx_vector_59551 dma_addr bnad_rx_vector 0 59551 NULL
143778 +disable_so_vram_addr_viafb_par_59552 vram_addr viafb_par 0 59552 NULL
143779 +disable_so_s00_img_ir_timing_regvals_59579 s00 img_ir_timing_regvals 0 59579 NULL
143780 +disable_so_pci_swizzle_interrupt_pin_fndecl_59580 pci_swizzle_interrupt_pin fndecl 0-2 59580 NULL
143781 +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
143782 +disable_so_time_next_delayed_flow_fq_sched_data_59598 time_next_delayed_flow fq_sched_data 0 59598 NULL
143783 +disable_so_signal_ttm_lock_59613 signal ttm_lock 0 59613 NULL
143784 +disable_so_trap_timeout_qib_ibport_59624 trap_timeout qib_ibport 0 59624 NULL
143785 +disable_so_hash_sendpage_fndecl_59633 hash_sendpage fndecl 0-3-4 59633 NULL
143786 +disable_so_address_i2c_algo_dp_aux_data_59643 address i2c_algo_dp_aux_data 0 59643 NULL
143787 +disable_so_baddr_pmcraid_hostrcb_59651 baddr pmcraid_hostrcb 0 59651 NULL
143788 +disable_so_jiffies_drm_i915_error_request_59653 jiffies drm_i915_error_request 0 59653 NULL
143789 +disable_so_niu_enable_interrupts_fndecl_59655 niu_enable_interrupts fndecl 0 59655 NULL nohasharray
143790 +disable_so_addr_nvkm_gpuobj_59655 addr nvkm_gpuobj 0 59655 &disable_so_niu_enable_interrupts_fndecl_59655
143791 +disable_so_irlap_start_backoff_timer_fndecl_59668 irlap_start_backoff_timer fndecl 2 59668 NULL
143792 +disable_so_cs_chp_time_transaction_chp_stats_s_59671 cs_chp_time transaction_chp_stats_s 0 59671 NULL nohasharray
143793 +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
143794 +disable_so_start_time_bfa_ioim_s_59693 start_time bfa_ioim_s 0 59693 NULL nohasharray
143795 +disable_so_nilfs_btree_assign_p_fndecl_59693 nilfs_btree_assign_p fndecl 0-5 59693 &disable_so_start_time_bfa_ioim_s_59693
143796 +disable_so_pid_pppol2tp_addr_59696 pid pppol2tp_addr 0 59696 NULL
143797 +disable_so_paging32_walk_addr_nested_fndecl_59706 paging32_walk_addr_nested fndecl 3-4 59706 NULL
143798 +disable_so_set_timer_tick_hw_59707 set_timer_tick hw 2 59707 NULL
143799 +disable_so_irq_domain_alloc_irqs_parent_fndecl_59718 irq_domain_alloc_irqs_parent fndecl 2-3-0 59718 NULL
143800 +disable_so_pcf8583_rtc_read_time_fndecl_59722 pcf8583_rtc_read_time fndecl 0 59722 NULL
143801 +disable_so_i_rx_jiffies_rds_incoming_59727 i_rx_jiffies rds_incoming 0 59727 NULL
143802 +disable_so_addr_pt1_buffer_59731 addr pt1_buffer 0 59731 NULL
143803 +disable_so_od_cpufreq_governor_dbs_fndecl_59745 od_cpufreq_governor_dbs fndecl 0 59745 NULL
143804 +disable_so_atmel_set_mac_address_fndecl_59747 atmel_set_mac_address fndecl 0 59747 NULL nohasharray
143805 +disable_so_ioaddr_mxser_port_59747 ioaddr mxser_port 0 59747 &disable_so_atmel_set_mac_address_fndecl_59747
143806 +disable_so_kvm_mtrr_check_gfn_range_consistency_fndecl_59759 kvm_mtrr_check_gfn_range_consistency fndecl 3-2 59759 NULL
143807 +disable_so_mul_n_fndecl_59766 mul_n fndecl 4 59766 NULL
143808 +disable_so_mlx4_bitmap_alloc_fndecl_59767 mlx4_bitmap_alloc fndecl 0 59767 NULL
143809 +disable_so_device_num_atto_csmi_get_pci_bus_addr_59770 device_num atto_csmi_get_pci_bus_addr 0 59770 NULL
143810 +disable_so_ksz_init_timer_fndecl_59771 ksz_init_timer fndecl 2 59771 NULL
143811 +disable_so_signr_usbdevfs_disconnectsignal_59774 signr usbdevfs_disconnectsignal 0 59774 NULL
143812 +disable_so_hash_netiface4_expire_fndecl_59777 hash_netiface4_expire fndecl 4 59777 NULL
143813 +disable_so_timeoutValue_RAID_CONTEXT_59780 timeoutValue RAID_CONTEXT 0 59780 NULL
143814 +disable_so_vsync_pulse_width_hi_oaktrail_timing_info_59785 vsync_pulse_width_hi oaktrail_timing_info 0 59785 NULL
143815 +disable_so_macvtap16_to_cpu_fndecl_59790 macvtap16_to_cpu fndecl 0-2 59790 NULL
143816 +disable_so_ns_ack_interrupt_fndecl_59791 ns_ack_interrupt fndecl 0 59791 NULL
143817 +disable_so_btrfs_commit_inode_delayed_inode_fndecl_59792 btrfs_commit_inode_delayed_inode fndecl 0 59792 NULL
143818 +disable_so_lg_addr_ns_dev_59797 lg_addr ns_dev 0 59797 NULL
143819 +disable_so_nr_divisor_sym_chip_59803 nr_divisor sym_chip 0 59803 NULL
143820 +disable_so_cpu_power_to_freq_fndecl_59806 cpu_power_to_freq fndecl 2 59806 NULL nohasharray
143821 +disable_so_hash_sfq_slot_59806 hash sfq_slot 0 59806 &disable_so_cpu_power_to_freq_fndecl_59806
143822 +disable_so_netvsc_set_mac_addr_fndecl_59822 netvsc_set_mac_addr fndecl 0 59822 NULL
143823 +disable_so_kxcjk1013_get_startup_times_fndecl_59827 kxcjk1013_get_startup_times fndecl 0 59827 NULL nohasharray
143824 +disable_so_bitmap_ipmac_do_test_fndecl_59827 bitmap_ipmac_do_test fndecl 3 59827 &disable_so_kxcjk1013_get_startup_times_fndecl_59827
143825 +disable_so_decnet_time_wait_vardecl_59833 decnet_time_wait vardecl 0 59833 NULL
143826 +disable_so_delay_multiplier_be_set_eqd_59834 delay_multiplier be_set_eqd 0 59834 NULL
143827 +disable_so_asr_get_base_address_fndecl_59835 asr_get_base_address fndecl 0 59835 NULL
143828 +disable_so_timeout_nouveau_fence_59837 timeout nouveau_fence 0 59837 NULL
143829 +disable_so_m_pll_freq_tbl_59838 m pll_freq_tbl 0 59838 NULL
143830 +disable_so_tea5764_get_freq_fndecl_59848 tea5764_get_freq fndecl 0 59848 NULL
143831 +disable_so_seq_km_event_59849 seq km_event 0 59849 NULL nohasharray
143832 +disable_so_dst_addr_lo_dmae_command_59849 dst_addr_lo dmae_command 0 59849 &disable_so_seq_km_event_59849
143833 +disable_so_get_ep_by_addr_fndecl_59856 get_ep_by_addr fndecl 2 59856 NULL
143834 +disable_so_txbd_addr_hi_host_cmd_ds_pcie_details_59885 txbd_addr_hi host_cmd_ds_pcie_details 0 59885 NULL
143835 +disable_so_hash_v6_fndecl_59887 hash_v6 fndecl 0 59887 NULL
143836 +disable_so_sst_module_runtime_restore_fndecl_59893 sst_module_runtime_restore fndecl 0 59893 NULL
143837 +disable_so_pvclock_clocksource_read_fndecl_59895 pvclock_clocksource_read fndecl 0 59895 NULL nohasharray
143838 +disable_so_hdspm_set_interrupt_interval_fndecl_59895 hdspm_set_interrupt_interval fndecl 2-0 59895 &disable_so_pvclock_clocksource_read_fndecl_59895
143839 +disable_so_i2c_addr_r820t_config_59896 i2c_addr r820t_config 0 59896 NULL
143840 +disable_so_i2400m_check_mac_addr_fndecl_59899 i2400m_check_mac_addr fndecl 0 59899 NULL
143841 +disable_so_get_uuid_export_operations_59904 get_uuid export_operations 0 59904 NULL
143842 +disable_so_last_tx_jiffies_fmdev_59908 last_tx_jiffies fmdev 0 59908 NULL nohasharray
143843 +disable_so_delay_use_vardecl_usb_c_59908 delay_use vardecl_usb.c 0 59908 &disable_so_last_tx_jiffies_fmdev_59908
143844 +disable_so_show_telclock_version_fndecl_59913 show_telclock_version fndecl 0 59913 NULL
143845 +disable_so_flush_time_il3945_rs_sta_59914 flush_time il3945_rs_sta 0 59914 NULL
143846 +disable_so_sip_sprintf_addr_fndecl_59915 sip_sprintf_addr fndecl 0 59915 NULL
143847 +disable_so_lola_set_clock_index_fndecl_59921 lola_set_clock_index fndecl 0 59921 NULL nohasharray
143848 +disable_so_addr_stv0900_reg_59921 addr stv0900_reg 0 59921 &disable_so_lola_set_clock_index_fndecl_59921
143849 +disable_so_vsnprintf_fndecl_59932 vsnprintf fndecl 0-2 59932 NULL
143850 +disable_so_nfs4_delay_fndecl_59938 nfs4_delay fndecl 0 59938 NULL nohasharray
143851 +disable_so___bch_btree_map_nodes_fndecl_59938 __bch_btree_map_nodes fndecl 0 59938 &disable_so_nfs4_delay_fndecl_59938
143852 +disable_so_freq_before_jump_fm_rx_59940 freq_before_jump fm_rx 0 59940 NULL
143853 +disable_so_vt8623_set_pixclock_fndecl_59944 vt8623_set_pixclock fndecl 2 59944 NULL
143854 +disable_so_seq_ieee80211_fragment_entry_59945 seq ieee80211_fragment_entry 0 59945 NULL
143855 +disable_so_map_nr_blk_mq_bitmap_tags_59947 map_nr blk_mq_bitmap_tags 0 59947 NULL nohasharray
143856 +disable_so_r5_hash_fndecl_59947 r5_hash fndecl 2 59947 &disable_so_map_nr_blk_mq_bitmap_tags_59947
143857 +disable_so_s_first_error_time_ext4_super_block_59952 s_first_error_time ext4_super_block 0 59952 NULL
143858 +disable_so_crypto_ablkcipher_decrypt_fndecl_59964 crypto_ablkcipher_decrypt fndecl 0 59964 NULL
143859 +disable_so_i_gid_write_fndecl_59978 i_gid_write fndecl 2 59978 NULL
143860 +disable_so_dst_nents_qce_cipher_reqctx_59989 dst_nents qce_cipher_reqctx 0 59989 NULL
143861 +disable_so_addr_nvme_passthru_cmd_59990 addr nvme_passthru_cmd 0 59990 NULL
143862 +disable_so_vsprintf_fndecl_59994 vsprintf fndecl 0 59994 NULL
143863 +disable_so_desc_daddr_ath5k_hw_59995 desc_daddr ath5k_hw 0 59995 NULL
143864 +disable_so_n_pll_freq_tbl_60004 n pll_freq_tbl 0 60004 NULL
143865 +disable_so_ufshcd_parse_clock_info_fndecl_60006 ufshcd_parse_clock_info fndecl 0 60006 NULL
143866 +disable_so_max_timer_ms_bcm47xx_wdt_60015 max_timer_ms bcm47xx_wdt 0 60015 NULL
143867 +disable_so_add_monitor_signal_fndecl_60038 add_monitor_signal fndecl 4 60038 NULL
143868 +disable_so_check_matrix_bitmap_fndecl_60054 check_matrix_bitmap fndecl 0-2-3-4 60054 NULL
143869 +disable_so_bitmap_file_clear_bit_fndecl_60061 bitmap_file_clear_bit fndecl 2 60061 NULL nohasharray
143870 +disable_so_nvkm_ramht_hash_fndecl_60061 nvkm_ramht_hash fndecl 0-2-3 60061 &disable_so_bitmap_file_clear_bit_fndecl_60061
143871 +disable_so_radeon_ib_schedule_fndecl_60075 radeon_ib_schedule fndecl 0 60075 NULL
143872 +disable_so_sleep_cookie_addr_hi_host_cmd_ds_pcie_details_60083 sleep_cookie_addr_hi host_cmd_ds_pcie_details 0 60083 NULL
143873 +disable_so_crypto_cbc_decrypt_fndecl_60087 crypto_cbc_decrypt fndecl 0-4 60087 NULL
143874 +disable_so_calc_mode_timings_fndecl_60088 calc_mode_timings fndecl 1-2-3 60088 NULL
143875 +disable_so_jiffies_till_first_fqs_vardecl_tree_c_60090 jiffies_till_first_fqs vardecl_tree.c 0 60090 NULL
143876 +disable_so_reorder_timeout_l2tp_session_60091 reorder_timeout l2tp_session 0 60091 NULL
143877 +disable_so_ieee80211_get_noa_absent_time_fndecl_60093 ieee80211_get_noa_absent_time fndecl 0-2 60093 NULL
143878 +disable_so_vsync_offset_lo_oaktrail_timing_info_60096 vsync_offset_lo oaktrail_timing_info 0 60096 NULL
143879 +disable_so_daddr_flowidn_60098 daddr flowidn 0 60098 NULL
143880 +disable_so_mwifiex_set_mac_address_fndecl_60110 mwifiex_set_mac_address fndecl 0 60110 NULL
143881 +disable_so_xgbe_get_tstamp_time_fndecl_60114 xgbe_get_tstamp_time fndecl 0 60114 NULL
143882 +disable_so_end_seq_bictcp_60116 end_seq bictcp 0 60116 NULL
143883 +disable_so_rv770_calculate_fractional_mpll_feedback_divider_fndecl_60119 rv770_calculate_fractional_mpll_feedback_divider fndecl 1-2 60119 NULL nohasharray
143884 +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
143885 +disable_so_radeon_vm_bo_set_addr_fndecl_60122 radeon_vm_bo_set_addr fndecl 3-0 60122 NULL
143886 +disable_so_reload_jiffies_iwl_priv_60123 reload_jiffies iwl_priv 0 60123 NULL
143887 +disable_so_shdntimer_max17042_config_data_60124 shdntimer max17042_config_data 0 60124 NULL nohasharray
143888 +disable_so_timestamp_lec_arp_table_60124 timestamp lec_arp_table 0 60124 &disable_so_shdntimer_max17042_config_data_60124
143889 +disable_so_reg_duty_cycle_pm860x_backlight_data_60125 reg_duty_cycle pm860x_backlight_data 0 60125 NULL
143890 +disable_so_buff_phy_addr_amd8111e_tx_dr_60126 buff_phy_addr amd8111e_tx_dr 0 60126 NULL
143891 +disable_so_nilfs_btree_seek_key_fndecl_60131 nilfs_btree_seek_key fndecl 0-2 60131 NULL
143892 +disable_so_local_addr_mm_dma_desc_60141 local_addr mm_dma_desc 0 60141 NULL
143893 +disable_so_cmd_attr_tgid_fndecl_60158 cmd_attr_tgid fndecl 0 60158 NULL
143894 +disable_so_read_addr_qla8044_minidump_entry_queue_60166 read_addr qla8044_minidump_entry_queue 0 60166 NULL
143895 +disable_so_snd_soc_runtime_deactivate_fndecl_60170 snd_soc_runtime_deactivate fndecl 2 60170 NULL
143896 +disable_so_addr_lo_tg3_tx_buffer_desc_60173 addr_lo tg3_tx_buffer_desc 0 60173 NULL
143897 +disable_so_addr_c4iw_mm_entry_60182 addr c4iw_mm_entry 0 60182 NULL
143898 +disable_so_gid_index_ib_user_mad_hdr_60188 gid_index ib_user_mad_hdr 0 60188 NULL
143899 +disable_so_div_vnic_intr_coal_timer_info_60192 div vnic_intr_coal_timer_info 0 60192 NULL
143900 +disable_so_udf_bitmap_prealloc_blocks_fndecl_60195 udf_bitmap_prealloc_blocks fndecl 0-4-5 60195 NULL
143901 +disable_so_i_atime_nsec_ocfs2_dinode_60196 i_atime_nsec ocfs2_dinode 0 60196 NULL
143902 +disable_so_addr_buffer3_cmd_desc_type0_60201 addr_buffer3 cmd_desc_type0 0 60201 NULL
143903 +disable_so_mac_time_rtl8187b_rx_hdr_60213 mac_time rtl8187b_rx_hdr 0 60213 NULL
143904 +disable_so_regmap_read_fndecl_60217 regmap_read fndecl 0-2 60217 NULL
143905 +disable_so_oprofile_time_slice_vardecl_60220 oprofile_time_slice vardecl 0 60220 NULL
143906 +disable_so_monotonic_time_coarse_nsec_vsyscall_gtod_data_60224 monotonic_time_coarse_nsec vsyscall_gtod_data 0 60224 NULL
143907 +disable_so_toshiba_usb_sleep_music_get_fndecl_60227 toshiba_usb_sleep_music_get fndecl 0 60227 NULL
143908 +disable_so_msr_read_fndecl_60228 msr_read fndecl 0 60228 NULL
143909 +disable_so_via_set_primary_address_fndecl_60230 via_set_primary_address fndecl 1 60230 NULL
143910 +disable_so_hpfs_stop_cycles_fndecl_60236 hpfs_stop_cycles fndecl 2 60236 NULL
143911 +disable_so_cpumask_any_but_fndecl_60246 cpumask_any_but fndecl 0-2 60246 NULL
143912 +disable_so_hash_cnt_ccp_sha_req_ctx_60248 hash_cnt ccp_sha_req_ctx 0 60248 NULL
143913 +disable_so_atime_nsec_p9_iattr_dotl_60254 atime_nsec p9_iattr_dotl 0 60254 NULL
143914 +disable_so___ilog2_u32_fndecl_60257 __ilog2_u32 fndecl 0-1 60257 NULL
143915 +disable_so_it_clock_k_itimer_60276 it_clock k_itimer 0 60276 NULL
143916 +disable_so_stats_addr_vfpf_init_tlv_60282 stats_addr vfpf_init_tlv 0 60282 NULL
143917 +disable_so_zd1201_set_freq_fndecl_60293 zd1201_set_freq fndecl 0 60293 NULL
143918 +disable_so_freq_sc18is602_60297 freq sc18is602 0 60297 NULL
143919 +disable_so_imr_multiaddr_ip_mreq_source_60300 imr_multiaddr ip_mreq_source 0 60300 NULL
143920 +disable_so_skbaddr_ath5k_buf_60306 skbaddr ath5k_buf 0 60306 NULL
143921 +disable_so_bus_addr_sg_el_60307 bus_addr sg_el 0 60307 NULL
143922 +disable_so_iwl_add_beacon_time_fndecl_60324 iwl_add_beacon_time fndecl 0-4-3-2 60324 NULL
143923 +disable_so_regcache_lzo_sync_fndecl_60330 regcache_lzo_sync fndecl 0 60330 NULL
143924 +disable_so___mlx4_find_zone_by_uid_unique_fndecl_60331 __mlx4_find_zone_by_uid_unique fndecl 2 60331 NULL nohasharray
143925 +disable_so_ucma_query_addr_fndecl_60331 ucma_query_addr fndecl 3 60331 &disable_so___mlx4_find_zone_by_uid_unique_fndecl_60331
143926 +disable_so_nilfs_btree_commit_insert_fndecl_60335 nilfs_btree_commit_insert fndecl 4 60335 NULL
143927 +disable_so_rbtree_open_fndecl_60337 rbtree_open fndecl 0 60337 NULL
143928 +disable_so_addr_off_bfa_phy_s_60341 addr_off bfa_phy_s 0 60341 NULL
143929 +disable_so_rj54n1_set_clock_fndecl_60342 rj54n1_set_clock fndecl 0 60342 NULL nohasharray
143930 +disable_so___udelay_fndecl_60342 __udelay fndecl 1 60342 &disable_so_rj54n1_set_clock_fndecl_60342
143931 +disable_so_sysctl_llc2_p_timeout_vardecl_60348 sysctl_llc2_p_timeout vardecl 0 60348 NULL
143932 +disable_so_dwc3_ep0_set_address_fndecl_60355 dwc3_ep0_set_address fndecl 0 60355 NULL
143933 +disable_so_nla_put_msecs_fndecl_60358 nla_put_msecs fndecl 0 60358 NULL
143934 +disable_so_div_factor_fndecl_60362 div_factor fndecl 0-1 60362 NULL
143935 +disable_so_sense_busaddr_scb_60364 sense_busaddr scb 0 60364 NULL
143936 +disable_so_ufshcd_pltfrm_runtime_resume_fndecl_60367 ufshcd_pltfrm_runtime_resume fndecl 0 60367 NULL
143937 +disable_so_pixel_clock_vbe_crtc_ib_60373 pixel_clock vbe_crtc_ib 0 60373 NULL
143938 +disable_so_erst_timedout_fndecl_60378 erst_timedout fndecl 2 60378 NULL
143939 +disable_so_crypto_ecb_encrypt_fndecl_60388 crypto_ecb_encrypt fndecl 0-4 60388 NULL
143940 +disable_so_rtsx_resv_buf_addr_rtsx_pcr_60399 rtsx_resv_buf_addr rtsx_pcr 0 60399 NULL
143941 +disable_so_i2c_address_mc44s803_config_60409 i2c_address mc44s803_config 0 60409 NULL
143942 +disable_so_ath_hw_get_listen_time_fndecl_60410 ath_hw_get_listen_time fndecl 0 60410 NULL
143943 +disable_so_rpc_sockaddr2uaddr_fndecl_60418 rpc_sockaddr2uaddr fndecl 2 60418 NULL
143944 +disable_so_sys_setresgid16_fndecl_60419 sys_setresgid16 fndecl 0-1-2-3 60419 NULL
143945 +disable_so_mc_addr_inet_sock_60425 mc_addr inet_sock 0 60425 NULL
143946 +disable_so_txqueue_timer_velocity_opt_60430 txqueue_timer velocity_opt 0 60430 NULL
143947 +disable_so_set_mtrr_from_inactive_cpu_fndecl_60437 set_mtrr_from_inactive_cpu fndecl 2-3 60437 NULL
143948 +disable_so_i915_interrupt_info_fndecl_60441 i915_interrupt_info fndecl 0 60441 NULL
143949 +disable_so_bmiss_timeout_ath_beacon_config_60451 bmiss_timeout ath_beacon_config 0 60451 NULL
143950 +disable_so_callback_addr_req_60459 callback addr_req 1 60459 NULL
143951 +disable_so_vmx_compute_tsc_offset_fndecl_60461 vmx_compute_tsc_offset fndecl 0-2 60461 NULL
143952 +disable_so_ncpus_uv_rtc_timer_head_60462 ncpus uv_rtc_timer_head 0 60462 NULL
143953 +disable_so_passed_seqno_drm_vmw_fence_signaled_arg_60464 passed_seqno drm_vmw_fence_signaled_arg 0 60464 NULL
143954 +disable_so_send_signal_fndecl_60468 send_signal fndecl 0-1 60468 NULL
143955 +disable_so_isl1208_rtc_read_time_fndecl_60479 isl1208_rtc_read_time fndecl 0 60479 NULL
143956 +disable_so_cbs_dma_addr_nic_60500 cbs_dma_addr nic 0 60500 NULL
143957 +disable_so_mpihelp_divrem_fndecl_60501 mpihelp_divrem fndecl 6-0-4 60501 NULL
143958 +disable_so_branch_address_descriptor_60510 branch_address descriptor 0 60510 NULL
143959 +disable_so_hash_lock_index_stripe_head_60512 hash_lock_index stripe_head 0 60512 NULL
143960 +disable_so_brl_timeout_vardecl_keyboard_c_60524 brl_timeout vardecl_keyboard.c 0 60524 NULL
143961 +disable_so_chip_addr_dsp_image_seg_60530 chip_addr dsp_image_seg 0 60530 NULL
143962 +disable_so_test_hash_cycles_fndecl_60535 test_hash_cycles fndecl 4 60535 NULL
143963 +disable_so_dma_addr_srr_60537 dma_addr srr 0 60537 NULL
143964 +disable_so_spinfo_assoc_id_sctp_paddrinfo_60539 spinfo_assoc_id sctp_paddrinfo 0 60539 NULL
143965 +disable_so_nvkm_timer_wait_eq_fndecl_60542 nvkm_timer_wait_eq fndecl 3-4-5 60542 NULL
143966 +disable_so_eq_get_mtt_addr_fndecl_60544 eq_get_mtt_addr fndecl 0 60544 NULL
143967 +disable_so_cq_page_table_addr_lo_iscsi_kwqe_conn_offload1_60567 cq_page_table_addr_lo iscsi_kwqe_conn_offload1 0 60567 NULL
143968 +disable_so_tk_timeout_rpc_task_60572 tk_timeout rpc_task 0 60572 NULL
143969 +disable_so_cn_printf_fndecl_60575 cn_printf fndecl 0 60575 NULL nohasharray
143970 +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
143971 +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
143972 +disable_so___xfs_btree_split_fndecl_60576 __xfs_btree_split fndecl 0 60576 NULL
143973 +disable_so_lun_atto_csmi_get_dev_addr_60579 lun atto_csmi_get_dev_addr 0 60579 NULL
143974 +disable_so_xfs_btree_block_change_owner_fndecl_60599 xfs_btree_block_change_owner fndecl 0-3 60599 NULL
143975 +disable_so_k_wm8978_pll_div_60623 k wm8978_pll_div 0 60623 NULL
143976 +disable_so_saved_clock_vardecl_cr_pll_c_60624 saved_clock vardecl_cr_pll.c 0 60624 NULL
143977 +disable_so_mapaddr_tx_ring_info_60630 mapaddr tx_ring_info 0 60630 NULL nohasharray
143978 +disable_so_derot_freq_stb0899_internal_60630 derot_freq stb0899_internal 0 60630 &disable_so_mapaddr_tx_ring_info_60630
143979 +disable_so_edx_user_regs_struct32_60635 edx user_regs_struct32 0 60635 NULL
143980 +disable_so_cgtime_signal_struct_60641 cgtime signal_struct 0 60641 NULL
143981 +disable_so_ide_timing_compute_fndecl_60642 ide_timing_compute fndecl 2 60642 NULL
143982 +disable_so_btree_read_extent_buffer_pages_fndecl_60645 btree_read_extent_buffer_pages fndecl 0-4 60645 NULL
143983 +disable_so_sys_sched_getscheduler_fndecl_60650 sys_sched_getscheduler fndecl 1-0 60650 NULL
143984 +disable_so_hpi_compander_set_decay_time_constant_fndecl_60651 hpi_compander_set_decay_time_constant fndecl 1-0 60651 NULL
143985 +disable_so_uwb_rc_addr_get_fndecl_60653 uwb_rc_addr_get fndecl 0 60653 NULL
143986 +disable_so_max_chan_time_wsm_scan_ch_60669 max_chan_time wsm_scan_ch 0 60669 NULL
143987 +disable_so_ci_otg_fsm_del_timer_fndecl_60676 ci_otg_fsm_del_timer fndecl 2 60676 NULL
143988 +disable_so_clockdelay_nt_vardecl_hfcmulti_c_60678 clockdelay_nt vardecl_hfcmulti.c 0 60678 NULL
143989 +disable_so_hsync_off_lo_lvds_dvo_timing_60681 hsync_off_lo lvds_dvo_timing 0 60681 NULL
143990 +disable_so_leaf_head_hfs_btree_60686 leaf_head hfs_btree 0 60686 NULL
143991 +disable_so_signal_user32_60695 signal user32 0 60695 NULL
143992 +disable_so_timeout_netns_frags_60708 timeout netns_frags 0 60708 NULL
143993 +disable_so_time_to_send_netem_skb_cb_60711 time_to_send netem_skb_cb 0 60711 NULL nohasharray
143994 +disable_so_ref_div_atom_clock_dividers_60711 ref_div atom_clock_dividers 0 60711 &disable_so_time_to_send_netem_skb_cb_60711
143995 +disable_so_dev_sof_uvc_clock_sample_60716 dev_sof uvc_clock_sample 0 60716 NULL
143996 +disable_so_addr_reg_musb_qh_60718 addr_reg musb_qh 0 60718 NULL nohasharray
143997 +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
143998 +disable_so_reg_clock_sx150x_789_pri_60721 reg_clock sx150x_789_pri 0 60721 NULL
143999 +disable_so___parse_nl_addr_fndecl_60734 __parse_nl_addr fndecl 0 60734 NULL
144000 +disable_so_frequency_zl10036_state_60737 frequency zl10036_state 0 60737 NULL
144001 +disable_so_acpi_sleep_state_supported_fndecl_60743 acpi_sleep_state_supported fndecl 1 60743 NULL
144002 +disable_so_put_dec_full8_fndecl_60744 put_dec_full8 fndecl 2 60744 NULL
144003 +disable_so_atkbd_interrupt_fndecl_60746 atkbd_interrupt fndecl 2 60746 NULL
144004 +disable_so_signal_station_info_60755 signal station_info 0 60755 NULL
144005 +disable_so_r15_kvm_regs_60757 r15 kvm_regs 0 60757 NULL
144006 +disable_so_tx_dma_addr_sh_msiof_spi_priv_60773 tx_dma_addr sh_msiof_spi_priv 0 60773 NULL
144007 +disable_so_handler_acpi_object_addr_handler_60775 handler acpi_object_addr_handler 0-2-3 60775 NULL nohasharray
144008 +disable_so_sctp_bind_addr_init_fndecl_60775 sctp_bind_addr_init fndecl 2 60775 &disable_so_handler_acpi_object_addr_handler_60775
144009 +disable_so_hfsplus_calc_btree_clump_size_fndecl_60777 hfsplus_calc_btree_clump_size fndecl 0-1-2-3 60777 NULL
144010 +disable_so_xc2028_set_analog_freq_fndecl_60787 xc2028_set_analog_freq fndecl 0 60787 NULL
144011 +disable_so_reg_w_val_fndecl_60792 reg_w_val fndecl 2-3 60792 NULL
144012 +disable_so_mlx4_mtt_addr_fndecl_60804 mlx4_mtt_addr fndecl 0 60804 NULL
144013 +disable_so_kstrtos16_fndecl_60808 kstrtos16 fndecl 0 60808 NULL
144014 +disable_so_demod_address_bcm3510_config_60810 demod_address bcm3510_config 0 60810 NULL
144015 +disable_so_xt_addr_cmp_fndecl_60817 xt_addr_cmp fndecl 4 60817 NULL
144016 +disable_so_kstrtou16_fndecl_60828 kstrtou16 fndecl 0 60828 NULL
144017 +disable_so_crypto_cbc_decrypt_segment_fndecl_60829 crypto_cbc_decrypt_segment fndecl 0 60829 NULL
144018 +disable_so_cs_last_clocksource_60836 cs_last clocksource 0 60836 NULL
144019 +disable_so_decrypt_blkcipher_alg_60844 decrypt blkcipher_alg 4 60844 NULL
144020 +disable_so_demod_address_drxd_config_60850 demod_address drxd_config 0 60850 NULL
144021 +disable_so_rs_bound_addr_rds_sock_60851 rs_bound_addr rds_sock 0 60851 NULL
144022 +disable_so_pcxhr_sub_set_clock_fndecl_60853 pcxhr_sub_set_clock fndecl 2-0 60853 NULL nohasharray
144023 +disable_so_inet6_dump_ifmcaddr_fndecl_60853 inet6_dump_ifmcaddr fndecl 0 60853 &disable_so_pcxhr_sub_set_clock_fndecl_60853
144024 +disable_so_mpll_ref_div_rv6xx_power_info_60865 mpll_ref_div rv6xx_power_info 0 60865 NULL
144025 +disable_so_clk_mul_sdhci_host_60866 clk_mul sdhci_host 0 60866 NULL
144026 +disable_so_cryptd_hash_finup_enqueue_fndecl_60873 cryptd_hash_finup_enqueue fndecl 0 60873 NULL
144027 +disable_so_pc87360_autodiv_fndecl_60877 pc87360_autodiv fndecl 2 60877 NULL nohasharray
144028 +disable_so_si_get_gpu_clock_counter_fndecl_60877 si_get_gpu_clock_counter fndecl 0 60877 &disable_so_pc87360_autodiv_fndecl_60877
144029 +disable_so_dma_addr___vxge_hw_blockpool_entry_60895 dma_addr __vxge_hw_blockpool_entry 0 60895 NULL
144030 +disable_so_write32_ssb_bus_ops_60906 write32 ssb_bus_ops 3 60906 NULL
144031 +disable_so_bfa_fcs_lport_ns_process_gidft_pids_fndecl_60914 bfa_fcs_lport_ns_process_gidft_pids fndecl 3 60914 NULL
144032 +disable_so_hash_walk_next_fndecl_60955 hash_walk_next fndecl 0 60955 NULL
144033 +disable_so_tm_min_rtc_time_60965 tm_min rtc_time 0 60965 NULL
144034 +disable_so_m48t86_rtc_read_time_fndecl_60966 m48t86_rtc_read_time fndecl 0 60966 NULL
144035 +disable_so_alloc_gen8_temp_bitmaps_fndecl_60972 alloc_gen8_temp_bitmaps fndecl 0 60972 NULL
144036 +disable_so_max_dwell_time_delta_conf_sched_scan_settings_60976 max_dwell_time_delta conf_sched_scan_settings 0 60976 NULL
144037 +disable_so_src_addr_filter_ipv4_5tuple_60977 src_addr filter_ipv4_5tuple 0 60977 NULL nohasharray
144038 +disable_so_intel_freq_opcode_fndecl_60977 intel_freq_opcode fndecl 0-2 60977 &disable_so_src_addr_filter_ipv4_5tuple_60977
144039 +disable_so_btree_pages_cache_set_60979 btree_pages cache_set 0 60979 NULL
144040 +disable_so_pop_time_snd_soc_card_60984 pop_time snd_soc_card 0 60984 NULL
144041 +disable_so_v4l2_i2c_subdev_addr_fndecl_60994 v4l2_i2c_subdev_addr fndecl 0 60994 NULL
144042 +disable_so_find_and_set_predefined_video_timings_fndecl_61004 find_and_set_predefined_video_timings fndecl 2 61004 NULL
144043 +disable_so_bus_ipr_res_addr_61007 bus ipr_res_addr 0 61007 NULL
144044 +disable_so_t2timer_lapb_parms_struct_61011 t2timer lapb_parms_struct 0 61011 NULL nohasharray
144045 +disable_so_size_log2_t3_cq_61011 size_log2 t3_cq 0 61011 &disable_so_t2timer_lapb_parms_struct_61011
144046 +disable_so_virtual_apic_page_addr_vmcs12_61020 virtual_apic_page_addr vmcs12 0 61020 NULL
144047 +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
144048 +disable_so_first_time_batadv_tt_roam_node_61055 first_time batadv_tt_roam_node 0 61055 NULL
144049 +disable_so_blank_time_evergreen_wm_params_61058 blank_time evergreen_wm_params 0 61058 NULL
144050 +disable_so_crypto_hash_walk_done_fndecl_61061 crypto_hash_walk_done fndecl 0-2 61061 NULL
144051 +disable_so_qi_rtbtimelimit_xfs_quotainfo_61067 qi_rtbtimelimit xfs_quotainfo 0 61067 NULL
144052 +disable_so_dma_addr_freelQ_61069 dma_addr freelQ 0 61069 NULL
144053 +disable_so_gateway_value_addr_wil_fw_record_gateway_data_61071 gateway_value_addr wil_fw_record_gateway_data 0 61071 NULL
144054 +disable_so_ndisc_opt_addr_space_fndecl_61076 ndisc_opt_addr_space fndecl 0 61076 NULL nohasharray
144055 +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
144056 +disable_so_wl1251_translate_reg_addr_fndecl_61077 wl1251_translate_reg_addr fndecl 0-2 61077 NULL
144057 +disable_so_irq_set_handler_data_fndecl_61096 irq_set_handler_data fndecl 1 61096 NULL nohasharray
144058 +disable_so_be64_add_cpu_fndecl_61096 be64_add_cpu fndecl 2 61096 &disable_so_irq_set_handler_data_fndecl_61096
144059 +disable_so_find_first_extent_bit_state_fndecl_61098 find_first_extent_bit_state fndecl 2 61098 NULL
144060 +disable_so_confirm_addr_indev_fndecl_61106 confirm_addr_indev fndecl 0 61106 NULL
144061 +disable_so_ci_otg_init_timers_fndecl_61122 ci_otg_init_timers fndecl 0 61122 NULL
144062 +disable_so_rangehigh_v4l2_frequency_band_61125 rangehigh v4l2_frequency_band 0 61125 NULL
144063 +disable_so_rdb_PartitionList_RigidDiskBlock_61126 rdb_PartitionList RigidDiskBlock 0 61126 NULL
144064 +disable_so_qat_alg_ablkcipher_setkey_fndecl_61127 qat_alg_ablkcipher_setkey fndecl 3 61127 NULL
144065 +disable_so_ath6kl_cfg80211_deepsleep_suspend_fndecl_61128 ath6kl_cfg80211_deepsleep_suspend fndecl 0 61128 NULL
144066 +disable_so_phase_seg2_can_bittiming_61132 phase_seg2 can_bittiming 0 61132 NULL
144067 +disable_so_mii_address_fndecl_61157 mii_address fndecl 1-2 61157 NULL
144068 +disable_so_dent_key_init_hash_fndecl_61159 dent_key_init_hash fndecl 3-4 61159 NULL
144069 +disable_so__drbd_send_uuids_fndecl_61164 _drbd_send_uuids fndecl 0 61164 NULL
144070 +disable_so_addr_gf100_gr_mmio_61167 addr gf100_gr_mmio 0 61167 NULL
144071 +disable_so_xfrm_dst_hash_fndecl_61174 xfrm_dst_hash fndecl 0-4-5 61174 NULL
144072 +disable_so_i2c_smbus_read_i2c_block_data_fndecl_61176 i2c_smbus_read_i2c_block_data fndecl 0-2-3 61176 NULL
144073 +disable_so_mthca_HW2SW_SRQ_fndecl_61199 mthca_HW2SW_SRQ fndecl 0-3 61199 NULL
144074 +disable_so_bit_fields_len_ocrdma_srq_61200 bit_fields_len ocrdma_srq 0 61200 NULL
144075 +disable_so_cpuidle_add_device_sysfs_fndecl_61204 cpuidle_add_device_sysfs fndecl 0 61204 NULL
144076 +disable_so_avail_snd_rawmidi_runtime_61205 avail snd_rawmidi_runtime 0 61205 NULL
144077 +disable_so_fib_info_hashfn_fndecl_61213 fib_info_hashfn fndecl 0 61213 NULL
144078 +disable_so_zd_usb_iowrite16v_async_end_fndecl_61215 zd_usb_iowrite16v_async_end fndecl 0 61215 NULL nohasharray
144079 +disable_so_shash_ahash_mcryptd_update_fndecl_61215 shash_ahash_mcryptd_update fndecl 0 61215 &disable_so_zd_usb_iowrite16v_async_end_fndecl_61215
144080 +disable_so_buf_addr_mlx4_ib_create_srq_61216 buf_addr mlx4_ib_create_srq 0 61216 NULL
144081 +disable_so_post_divider_panel_info_61220 post_divider panel_info 0 61220 NULL
144082 +disable_so_wrmsr_safe_regs_fndecl_61235 wrmsr_safe_regs fndecl 0 61235 NULL
144083 +disable_so_get_stats_jiffies_smsdvb_client_t_61240 get_stats_jiffies smsdvb_client_t 0 61240 NULL
144084 +disable_so_ebitmap_next_positive_fndecl_61248 ebitmap_next_positive fndecl 0-3 61248 NULL
144085 +disable_so_ieee80211_aes_gcm_decrypt_fndecl_61254 ieee80211_aes_gcm_decrypt fndecl 0-5 61254 NULL
144086 +disable_so_sprintf_string_fndecl_61260 sprintf_string fndecl 0 61260 NULL nohasharray
144087 +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
144088 +disable_so_be32_to_cpu_array_fndecl_61277 be32_to_cpu_array fndecl 3 61277 NULL
144089 +disable_so_ds_tss_segment_16_61290 ds tss_segment_16 0 61290 NULL
144090 +disable_so_start_delay_ns_cc10001_adc_device_61303 start_delay_ns cc10001_adc_device 0 61303 NULL
144091 +disable_so_data_addr_nvbios_pmuR_61307 data_addr nvbios_pmuR 0 61307 NULL
144092 +disable_so_time_stamp_il_traffic_load_61308 time_stamp il_traffic_load 0 61308 NULL nohasharray
144093 +disable_so_crypto_ccm_encrypt_done_fndecl_61308 crypto_ccm_encrypt_done fndecl 2 61308 &disable_so_time_stamp_il_traffic_load_61308
144094 +disable_so_max_pixclock_tdfx_par_61310 max_pixclock tdfx_par 0 61310 NULL
144095 +disable_so_nilfs_btree_node_get_key_fndecl_61317 nilfs_btree_node_get_key fndecl 0-2 61317 NULL
144096 +disable_so_sk_forced_wmem_schedule_fndecl_61322 sk_forced_wmem_schedule fndecl 2 61322 NULL
144097 +disable_so_rxhash_tun_flow_entry_61325 rxhash tun_flow_entry 0 61325 NULL
144098 +disable_so___spin_time_accum_fndecl_61328 __spin_time_accum fndecl 1 61328 NULL
144099 +disable_so_iscsi_nacl_attrib_store_nopin_timeout_fndecl_61329 iscsi_nacl_attrib_store_nopin_timeout fndecl 0-3 61329 NULL
144100 +disable_so_dqb_itime_v1_disk_dqblk_61340 dqb_itime v1_disk_dqblk 0 61340 NULL nohasharray
144101 +disable_so_rds_iw_laddr_check_fndecl_61340 rds_iw_laddr_check fndecl 0-1 61340 &disable_so_dqb_itime_v1_disk_dqblk_61340
144102 +disable_so_pcibios_retrieve_fw_addr_fndecl_61341 pcibios_retrieve_fw_addr fndecl 0-2 61341 NULL
144103 +disable_so_iwl_scan_cancel_timeout_fndecl_61342 iwl_scan_cancel_timeout fndecl 2 61342 NULL
144104 +disable_so_m41t80_sysfs_set_sqwfreq_fndecl_61345 m41t80_sysfs_set_sqwfreq fndecl 0-4 61345 NULL
144105 +disable_so_atl1_hash_mc_addr_fndecl_61348 atl1_hash_mc_addr fndecl 0 61348 NULL
144106 +disable_so_daddr_irda_device_info_61349 daddr irda_device_info 0 61349 NULL
144107 +disable_so_read_addr_qla82xx_md_entry_rdmem_61354 read_addr qla82xx_md_entry_rdmem 0 61354 NULL
144108 +disable_so_wm8990_set_dai_clkdiv_fndecl_61357 wm8990_set_dai_clkdiv fndecl 3 61357 NULL
144109 +disable_so_btrfs_delete_delayed_dir_index_fndecl_61358 btrfs_delete_delayed_dir_index fndecl 0-4 61358 NULL
144110 +disable_so_disable_irq_fndecl_61372 disable_irq fndecl 1 61372 NULL
144111 +disable_so_parport_ieee1284_epp_read_addr_fndecl_61382 parport_ieee1284_epp_read_addr fndecl 0 61382 NULL nohasharray
144112 +disable_so_num_to_str_fndecl_61382 num_to_str fndecl 0-3-2 61382 &disable_so_parport_ieee1284_epp_read_addr_fndecl_61382
144113 +disable_so_period_timeriomem_rng_data_61395 period timeriomem_rng_data 0 61395 NULL
144114 +disable_so_crypto_gcm_setkey_done_fndecl_61396 crypto_gcm_setkey_done fndecl 2 61396 NULL
144115 +disable_so_ocfs2_journal_addressable_fndecl_61399 ocfs2_journal_addressable fndecl 0 61399 NULL
144116 +disable_so_smsdvb_read_signal_strength_fndecl_61408 smsdvb_read_signal_strength fndecl 0 61408 NULL
144117 +disable_so_flash_busaddr_ips_ha_61415 flash_busaddr ips_ha 0 61415 NULL
144118 +disable_so_enable_time_us_tps_info_61417 enable_time_us tps_info 0 61417 NULL
144119 +disable_so_mtrr_chunk_size_vardecl_cleanup_c_61418 mtrr_chunk_size vardecl_cleanup.c 0 61418 NULL
144120 +disable_so_show_dock_uid_fndecl_61419 show_dock_uid fndecl 0 61419 NULL
144121 +disable_so_get_pageblock_bitmap_fndecl_61435 get_pageblock_bitmap fndecl 2 61435 NULL
144122 +disable_so_s5p_jpeg_runtime_resume_fndecl_61449 s5p_jpeg_runtime_resume fndecl 0 61449 NULL nohasharray
144123 +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
144124 +disable_so_rsp_dmaaddr_fw_fcoe_els_ct_wr_61457 rsp_dmaaddr fw_fcoe_els_ct_wr 0 61457 NULL
144125 +disable_so_pcsp_timer_update_fndecl_61473 pcsp_timer_update fndecl 0 61473 NULL
144126 +disable_so_i8042_start_time_vardecl_i8042_h_61479 i8042_start_time vardecl_i8042.h 0 61479 NULL nohasharray
144127 +disable_so_insert_into_bitmap_fndecl_61479 insert_into_bitmap fndecl 0 61479 &disable_so_i8042_start_time_vardecl_i8042_h_61479
144128 +disable_so_xclkmaxrasdelay_pll_ct_61489 xclkmaxrasdelay pll_ct 0 61489 NULL
144129 +disable_so_ioa_cb_bus_addr_pmcraid_cmd_61490 ioa_cb_bus_addr pmcraid_cmd 0 61490 NULL
144130 +disable_so_sis_ata16_program_timings_fndecl_61491 sis_ata16_program_timings fndecl 2 61491 NULL
144131 +disable_so_read_addr_stride___queue_61493 read_addr_stride __queue 0 61493 NULL
144132 +disable_so_w1_timeout_vardecl_w1_c_61497 w1_timeout vardecl_w1.c 0 61497 NULL nohasharray
144133 +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
144134 +disable_so_split_timeout_lo_fw_card_61499 split_timeout_lo fw_card 0 61499 NULL
144135 +disable_so_nla_find_fndecl_61508 nla_find fndecl 2 61508 NULL
144136 +disable_so_timer_period_frag_pcxhr_stream_61512 timer_period_frag pcxhr_stream 0 61512 NULL
144137 +disable_so_addr_hi_tg3_rx_buffer_desc_61522 addr_hi tg3_rx_buffer_desc 0 61522 NULL
144138 +disable_so_i_uid_ext3_inode_61529 i_uid ext3_inode 0 61529 NULL nohasharray
144139 +disable_so_r30_val_fc2580_freq_regs_61529 r30_val fc2580_freq_regs 0 61529 &disable_so_i_uid_ext3_inode_61529
144140 +disable_so_i_delayed_blks_xfs_inode_61540 i_delayed_blks xfs_inode 0 61540 NULL nohasharray
144141 +disable_so_aes_set_key_fndecl_61540 aes_set_key fndecl 0-3 61540 &disable_so_i_delayed_blks_xfs_inode_61540
144142 +disable_so_loc_addr_nes_cm_listener_61541 loc_addr nes_cm_listener 0 61541 NULL
144143 +disable_so_addr_w6692_hw_61546 addr w6692_hw 0 61546 NULL
144144 +disable_so_mvs_write_port_vsr_addr_fndecl_61549 mvs_write_port_vsr_addr fndecl 3 61549 NULL
144145 +disable_so_s_addr_per_block_bits_ext3_sb_info_61550 s_addr_per_block_bits ext3_sb_info 0 61550 NULL
144146 +disable_so_o2net_set_nodelay_fndecl_61551 o2net_set_nodelay fndecl 0 61551 NULL
144147 +disable_so_mlx5_ib_query_gid_fndecl_61553 mlx5_ib_query_gid fndecl 2-3 61553 NULL
144148 +disable_so_pdl_paddr_hp100_ring_61561 pdl_paddr hp100_ring 0 61561 NULL
144149 +disable_so_pci_bus_read_dev_vendor_id_fndecl_61562 pci_bus_read_dev_vendor_id fndecl 2 61562 NULL
144150 +disable_so_fs16_to_cpu_fndecl_61568 fs16_to_cpu fndecl 0-2 61568 NULL
144151 +disable_so_prandom_u32_state_fndecl_61582 prandom_u32_state fndecl 0 61582 NULL
144152 +disable_so_high_bits_word_at_a_time_61595 high_bits word_at_a_time 0 61595 NULL
144153 +disable_so_broadsheet_spiflash_op_on_address_fndecl_61596 broadsheet_spiflash_op_on_address fndecl 0-2-3 61596 NULL
144154 +disable_so_device_create_fndecl_61600 device_create fndecl 3 61600 NULL
144155 +disable_so_mce_wrmsrl_fndecl_61602 mce_wrmsrl fndecl 2 61602 NULL
144156 +disable_so_jiffies_to_msecs_fndecl_61603 jiffies_to_msecs fndecl 0-1 61603 NULL
144157 +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
144158 +disable_so_remote_cm_response_timeout_ib_cm_req_param_61617 remote_cm_response_timeout ib_cm_req_param 0 61617 NULL
144159 +disable_so_i_ctime_ocfs2_dinode_61629 i_ctime ocfs2_dinode 0 61629 NULL
144160 +disable_so_uac_clock_selector_set_val_fndecl_61640 uac_clock_selector_set_val fndecl 2-0 61640 NULL
144161 +disable_so_throtl_schedule_pending_timer_fndecl_61645 throtl_schedule_pending_timer fndecl 2 61645 NULL
144162 +disable_so_t_nsec_xfs_ictimestamp_61648 t_nsec xfs_ictimestamp 0 61648 NULL
144163 +disable_so_hashbits_rpc_cred_cache_61651 hashbits rpc_cred_cache 0 61651 NULL
144164 +disable_so_iscsi_nacl_attrib_show_nopin_response_timeout_fndecl_61655 iscsi_nacl_attrib_show_nopin_response_timeout fndecl 0 61655 NULL
144165 +disable_so_address_SG64ENTRY_61656 address SG64ENTRY 0 61656 NULL
144166 +disable_so_cputime_advance_fndecl_61661 cputime_advance fndecl 2 61661 NULL
144167 +disable_so_ts_delay_pressure_vardecl_ucb1400_ts_c_61663 ts_delay_pressure vardecl_ucb1400_ts.c 0 61663 NULL
144168 +disable_so_mapaddr_skge_element_61673 mapaddr skge_element 0 61673 NULL
144169 +disable_so_resetcal_timer_ath_ani_61692 resetcal_timer ath_ani 0 61692 NULL
144170 +disable_so_btrfs_check_uuid_tree_entry_fndecl_61694 btrfs_check_uuid_tree_entry fndecl 4 61694 NULL
144171 +disable_so_tuner_addr_tm6000_core_61695 tuner_addr tm6000_core 0 61695 NULL
144172 +disable_so_last_msgtime_vardecl_ide_io_c_61702 last_msgtime vardecl_ide-io.c 0 61702 NULL
144173 +disable_so_hpi_sample_clock_get_auto_fndecl_61704 hpi_sample_clock_get_auto fndecl 1-0 61704 NULL
144174 +disable_so_ext4_find_delayed_extent_fndecl_61709 ext4_find_delayed_extent fndecl 0 61709 NULL
144175 +disable_so_freq_offset_khz_uhf_dib0090_config_61716 freq_offset_khz_uhf dib0090_config 0 61716 NULL
144176 +disable_so_sha1_generic_block_fn_fndecl_61724 sha1_generic_block_fn fndecl 3 61724 NULL
144177 +disable_so_xc4000_get_signal_fndecl_61727 xc4000_get_signal fndecl 0 61727 NULL
144178 +disable_so_vf_addr_hi_bnx2x_vf_mbx_61734 vf_addr_hi bnx2x_vf_mbx 0 61734 NULL
144179 +disable_so_pcxhr_update_timer_pos_fndecl_61736 pcxhr_update_timer_pos fndecl 3 61736 NULL nohasharray
144180 +disable_so_adis16480_set_filter_freq_fndecl_61736 adis16480_set_filter_freq fndecl 0 61736 &disable_so_pcxhr_update_timer_pos_fndecl_61736 nohasharray
144181 +disable_so_xfs_daddr_to_agbno_fndecl_61736 xfs_daddr_to_agbno fndecl 0-2 61736 &disable_so_adis16480_set_filter_freq_fndecl_61736
144182 +disable_so_stb0899_calc_derot_time_fndecl_61753 stb0899_calc_derot_time fndecl 0-1 61753 NULL nohasharray
144183 +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
144184 +disable_so_ssb_calc_clock_rate_fndecl_61754 ssb_calc_clock_rate fndecl 0-3-2 61754 NULL nohasharray
144185 +disable_so_seq_amdgpu_fence_61754 seq amdgpu_fence 0 61754 &disable_so_ssb_calc_clock_rate_fndecl_61754
144186 +disable_so_disable_irq_nosync_fndecl_61758 disable_irq_nosync fndecl 1 61758 NULL
144187 +disable_so_nft_dump_register_fndecl_61766 nft_dump_register fndecl 0 61766 NULL
144188 +disable_so_file_remove_suid_fndecl_61769 file_remove_suid fndecl 0 61769 NULL
144189 +disable_so_ltr501_als_write_samp_freq_fndecl_61771 ltr501_als_write_samp_freq fndecl 0 61771 NULL
144190 +disable_so_pixclock_my_timming_61772 pixclock my_timming 0 61772 NULL
144191 +disable_so_rtl818x_iowrite8_fndecl_61778 rtl818x_iowrite8 fndecl 3 61778 NULL
144192 +disable_so_bql_show_hold_time_fndecl_61783 bql_show_hold_time fndecl 0 61783 NULL
144193 +disable_so_db_addr_mlx4_ib_create_srq_61795 db_addr mlx4_ib_create_srq 0 61795 NULL
144194 +disable_so_lgdt3306a_sleep_fndecl_61796 lgdt3306a_sleep fndecl 0 61796 NULL
144195 +disable_so_cpuid_nent_kvm_vcpu_arch_61798 cpuid_nent kvm_vcpu_arch 0 61798 NULL
144196 +disable_so_addr_hdac_device_61804 addr hdac_device 0 61804 NULL
144197 +disable_so_center_freq_stb0899_internal_61821 center_freq stb0899_internal 0 61821 NULL
144198 +disable_so_addr_cqicb_61823 addr cqicb 0 61823 NULL
144199 +disable_so_oprofile_hrtimer_setup_fndecl_61824 oprofile_hrtimer_setup fndecl 0 61824 NULL
144200 +disable_so_tvaudio_addr_em28xx_board_61828 tvaudio_addr em28xx_board 0 61828 NULL
144201 +disable_so__ocrdma_pd_mgr_get_bitmap_fndecl_61833 _ocrdma_pd_mgr_get_bitmap fndecl 0 61833 NULL
144202 +disable_so_rd08_nvkm_ofuncs_61836 rd08 nvkm_ofuncs 0-2 61836 NULL
144203 +disable_so_clipped_freq_cpufreq_cooling_device_61837 clipped_freq cpufreq_cooling_device 0 61837 NULL
144204 +disable_so_config_addend_stmmac_hwtimestamp_61840 config_addend stmmac_hwtimestamp 2 61840 NULL
144205 +disable_so_crypto_authenc_givencrypt_fndecl_61841 crypto_authenc_givencrypt fndecl 0 61841 NULL
144206 +disable_so_freq_table_get_index_fndecl_61842 freq_table_get_index fndecl 2 61842 NULL
144207 +disable_so_qla2x00_issue_iocb_timeout_fndecl_61848 qla2x00_issue_iocb_timeout fndecl 0-3-5 61848 NULL
144208 +disable_so_afs_vlocation_timeout_vardecl_vlocation_c_61850 afs_vlocation_timeout vardecl_vlocation.c 0 61850 NULL
144209 +disable_so_dev_addr__drm_via_descriptor_61860 dev_addr _drm_via_descriptor 0 61860 NULL
144210 +disable_so_inet_confirm_addr_fndecl_61869 inet_confirm_addr fndecl 0 61869 NULL nohasharray
144211 +enable_so__eip_x86_emulate_ctxt_61869 _eip x86_emulate_ctxt 0 61869 &disable_so_inet_confirm_addr_fndecl_61869
144212 +disable_so_ethtool_get_perm_addr_fndecl_61870 ethtool_get_perm_addr fndecl 0 61870 NULL
144213 +disable_so_sctp_ulpevent_make_peer_addr_change_fndecl_61876 sctp_ulpevent_make_peer_addr_change fndecl 6 61876 NULL nohasharray
144214 +disable_so_calc_lanman_hash_fndecl_61876 calc_lanman_hash fndecl 0 61876 &disable_so_sctp_ulpevent_make_peer_addr_change_fndecl_61876
144215 +disable_so_init_blkcipher_desc_fndecl_61877 init_blkcipher_desc fndecl 0-3-5 61877 NULL
144216 +disable_so_address_acpi_pci_routing_table_61886 address acpi_pci_routing_table 0 61886 NULL
144217 +disable_so_tx_tone_freq_b43_phy_lp_61888 tx_tone_freq b43_phy_lp 0 61888 NULL
144218 +disable_so___ip6addrlbl_match_fndecl_61894 __ip6addrlbl_match fndecl 4-5 61894 NULL
144219 +disable_so_irq_domain_free_irqs_top_fndecl_61898 irq_domain_free_irqs_top fndecl 2-3 61898 NULL
144220 +disable_so_freq_tm6000_core_61902 freq tm6000_core 0 61902 NULL
144221 +disable_so_addr_lo_ocrdma_sge_61909 addr_lo ocrdma_sge 0 61909 NULL
144222 +disable_so_ctlr_ka_time_fcoe_ctlr_61922 ctlr_ka_time fcoe_ctlr 0 61922 NULL
144223 +disable_so_mcryptd_hash_final_enqueue_fndecl_61941 mcryptd_hash_final_enqueue fndecl 0 61941 NULL
144224 +disable_so_dn_match_addr_fndecl_61944 dn_match_addr fndecl 1 61944 NULL
144225 +disable_so_mac_time_b43legacy_rxhdr_fw3_61952 mac_time b43legacy_rxhdr_fw3 0 61952 NULL nohasharray
144226 +disable_so_force_static_address_write_fndecl_61952 force_static_address_write fndecl 3 61952 &disable_so_mac_time_b43legacy_rxhdr_fw3_61952
144227 +disable_so_delay_adp5588_kpad_61963 delay adp5588_kpad 0 61963 NULL
144228 +disable_so_cg_time_ufs_cylinder_group_61969 cg_time ufs_cylinder_group 0 61969 NULL
144229 +disable_so_pll_freq_ene_device_61971 pll_freq ene_device 0 61971 NULL
144230 +disable_so_iscsit_na_random_datain_seq_offsets_fndecl_61975 iscsit_na_random_datain_seq_offsets fndecl 0 61975 NULL
144231 +disable_so_addr_dme1737_data_61978 addr dme1737_data 0 61978 NULL
144232 +disable_so_crypto_probing_notify_fndecl_61991 crypto_probing_notify fndecl 0-1 61991 NULL
144233 +disable_so_offset_fw_address_handler_61992 offset fw_address_handler 0 61992 NULL
144234 +disable_so_vsel_addr_palmas_regs_info_61997 vsel_addr palmas_regs_info 0 61997 NULL
144235 +disable_so_last_time_ecne_reduced_sctp_transport_61998 last_time_ecne_reduced sctp_transport 0 61998 NULL
144236 +disable_so_units_sprintf_fndecl_62002 units_sprintf fndecl 0 62002 NULL
144237 +disable_so_gpu_addr_radeon_uvd_62004 gpu_addr radeon_uvd 0 62004 NULL
144238 +disable_so_adc_freq_stmpe_touch_62006 adc_freq stmpe_touch 0 62006 NULL
144239 +disable_so_dosr_aic31xx_rate_divs_62015 dosr aic31xx_rate_divs 0 62015 NULL
144240 +disable_so_tsc_khz_vardecl_62031 tsc_khz vardecl 0 62031 NULL
144241 +disable_so_accounting_timestamp_dev_pm_info_62040 accounting_timestamp dev_pm_info 0 62040 NULL nohasharray
144242 +disable_so_sensor_addr_mcam_camera_62040 sensor_addr mcam_camera 0 62040 &disable_so_accounting_timestamp_dev_pm_info_62040
144243 +disable_so___sw_hweight16_fndecl_62046 __sw_hweight16 fndecl 1-0 62046 NULL
144244 +disable_so_st_atime_stat_62052 st_atime stat 0 62052 NULL nohasharray
144245 +disable_so_dsi_pll_div_dsi_mnp_62052 dsi_pll_div dsi_mnp 0 62052 &disable_so_st_atime_stat_62052
144246 +disable_so_ath5k_hw_write_ofdm_timings_fndecl_62063 ath5k_hw_write_ofdm_timings fndecl 0 62063 NULL
144247 +disable_so_addr_dn_neigh_62067 addr dn_neigh 0 62067 NULL
144248 +disable_so_small_buf_q_alloc_phy_addr_ql3_adapter_62071 small_buf_q_alloc_phy_addr ql3_adapter 0 62071 NULL
144249 +disable_so_in6_dump_addrs_fndecl_62073 in6_dump_addrs fndecl 0 62073 NULL nohasharray
144250 +disable_so_toggle_hw_mce_inject_fndecl_62073 toggle_hw_mce_inject fndecl 0-1 62073 &disable_so_in6_dump_addrs_fndecl_62073
144251 +disable_so_addr_mthca_data_seg_62083 addr mthca_data_seg 0 62083 NULL
144252 +disable_so_err_interrupt_orion_mdio_dev_62099 err_interrupt orion_mdio_dev 0 62099 NULL
144253 +disable_so_callback_snd_timer_instance_62100 callback snd_timer_instance 2-3 62100 NULL
144254 +disable_so_acc_jiffies_ati_remote_62109 acc_jiffies ati_remote 0 62109 NULL
144255 +disable_so_regcache_rbtree_drop_fndecl_62111 regcache_rbtree_drop fndecl 2-3 62111 NULL
144256 +disable_so_post_div_radeon_pll_62120 post_div radeon_pll 0 62120 NULL
144257 +disable_so_local_addr_rds_atomic_args_62123 local_addr rds_atomic_args 0 62123 NULL
144258 +disable_so_rds_tcp_laddr_check_fndecl_62131 rds_tcp_laddr_check fndecl 1 62131 NULL
144259 +disable_so_sock_get_timestampns_fndecl_62145 sock_get_timestampns fndecl 0 62145 NULL
144260 +disable_so_beacon_time_stamp_il_rx_phy_res_62147 beacon_time_stamp il_rx_phy_res 0 62147 NULL
144261 +disable_so_panel_power_up_delay_cdv_intel_dp_62150 panel_power_up_delay cdv_intel_dp 0 62150 NULL
144262 +disable_so_dma_addr_solo_p2m_desc_62151 dma_addr solo_p2m_desc 0 62151 NULL
144263 +disable_so_hangcheck_tick_vardecl_hangcheck_timer_c_62154 hangcheck_tick vardecl_hangcheck-timer.c 0 62154 NULL nohasharray
144264 +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
144265 +disable_so_xhci_call_host_update_timeout_for_endpoint_fndecl_62155 xhci_call_host_update_timeout_for_endpoint fndecl 0 62155 NULL
144266 +disable_so_read_block_bitmap_fndecl_62158 read_block_bitmap fndecl 2 62158 NULL
144267 +disable_so_ceph_aes_decrypt_fndecl_62159 ceph_aes_decrypt fndecl 2-6 62159 NULL
144268 +disable_so_mpll_func_cntl_2_si_clock_registers_62165 mpll_func_cntl_2 si_clock_registers 0 62165 NULL
144269 +disable_so_s01_img_ir_timing_regvals_62168 s01 img_ir_timing_regvals 0 62168 NULL
144270 +disable_so_xmit_hashtype_vardecl_bond_main_c_62175 xmit_hashtype vardecl_bond_main.c 0 62175 NULL
144271 +disable_so_seconds_v4l2_timecode_62177 seconds v4l2_timecode 0 62177 NULL
144272 +disable_so_dma_addr_t3_wq_62178 dma_addr t3_wq 0 62178 NULL
144273 +disable_so_cryptd_hash_export_fndecl_62185 cryptd_hash_export fndecl 0 62185 NULL
144274 +disable_so_get_qam_signal_to_noise_fndecl_62191 get_qam_signal_to_noise fndecl 0 62191 NULL
144275 +disable_so_dp_daddr_rds_ib_connect_private_62196 dp_daddr rds_ib_connect_private 0 62196 NULL
144276 +disable_so_max77693_muic_set_debounce_time_fndecl_62200 max77693_muic_set_debounce_time fndecl 0-2 62200 NULL
144277 +disable_so_bch_time_stats_update_fndecl_62214 bch_time_stats_update fndecl 2 62214 NULL
144278 +disable_so_t4_set_addr_hash_fndecl_62216 t4_set_addr_hash fndecl 0-2-3 62216 NULL
144279 +disable_so_proc_disconnectsignal_compat_fndecl_62217 proc_disconnectsignal_compat fndecl 0 62217 NULL
144280 +disable_so_rtsx_pci_switch_clock_fndecl_62219 rtsx_pci_switch_clock fndecl 2-0 62219 NULL
144281 +disable_so_addr_chip_data_62229 addr chip_data 0 62229 NULL
144282 +disable_so_timer_abs_periods_pcxhr_stream_62230 timer_abs_periods pcxhr_stream 0 62230 NULL
144283 +disable_so_tty_ldisc_lock_pair_timeout_fndecl_62232 tty_ldisc_lock_pair_timeout fndecl 3 62232 NULL
144284 +disable_so_fd_pppol2tpv3in6_addr_62243 fd pppol2tpv3in6_addr 0 62243 NULL
144285 +disable_so_hrtimer_start_range_ns_fndecl_62253 hrtimer_start_range_ns fndecl 3 62253 NULL
144286 +disable_so_r9_kvm_regs_62259 r9 kvm_regs 0 62259 NULL
144287 +disable_so_supported_addrs_sctp_pf_62261 supported_addrs sctp_pf 0 62261 NULL
144288 +disable_so_xfs_bmapi_delay_fndecl_62277 xfs_bmapi_delay fndecl 0-2-3 62277 NULL
144289 +disable_so_tseg2_pucan_timing_slow_62290 tseg2 pucan_timing_slow 0 62290 NULL
144290 +disable_so_mtime_ncp_cache_head_62294 mtime ncp_cache_head 0 62294 NULL
144291 +disable_so_get_ramp_delay_fndecl_62302 get_ramp_delay fndecl 0 62302 NULL
144292 +disable_so_decrypt_crypto_aead_62305 decrypt crypto_aead 0 62305 NULL
144293 +disable_so_paddr_mmd_fw_ldst_mdio_62306 paddr_mmd fw_ldst_mdio 0 62306 NULL
144294 +disable_so_start_address___osdv1_cdb_addr_len_62309 start_address __osdv1_cdb_addr_len 0 62309 NULL
144295 +disable_so_freq_as10x_tune_args_62312 freq as10x_tune_args 0 62312 NULL
144296 +disable_so_timestamp_low_rtl_stats_62314 timestamp_low rtl_stats 0 62314 NULL
144297 +disable_so_uid_fuse_in_header_62319 uid fuse_in_header 0 62319 NULL
144298 +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
144299 +disable_so_argidx_mc_buffer_62320 argidx mc_buffer 0 62320 &disable_so_bfa_fcs_rport_del_timeout_vardecl_bfa_fcs_rport_c_62320
144300 +disable_so_ci_recover_timer_dlm_config_info_62321 ci_recover_timer dlm_config_info 0 62321 NULL nohasharray
144301 +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
144302 +disable_so_ci_get_ddr3_mclk_frequency_ratio_fndecl_62335 ci_get_ddr3_mclk_frequency_ratio fndecl 0-1 62335 NULL
144303 +disable_so_addr_flags_ec_params_i2c_passthru_msg_62337 addr_flags ec_params_i2c_passthru_msg 0 62337 NULL
144304 +disable_so_mISDN_clock_get_fndecl_62339 mISDN_clock_get fndecl 0 62339 NULL nohasharray
144305 +disable_so_beacon_paddr_ath10k_vif_62339 beacon_paddr ath10k_vif 0 62339 &disable_so_mISDN_clock_get_fndecl_62339 nohasharray
144306 +disable_so_tda10023_writereg_fndecl_62339 tda10023_writereg fndecl 3 62339 &disable_so_beacon_paddr_ath10k_vif_62339
144307 +disable_so___iowrite32_copy_fndecl_62342 __iowrite32_copy fndecl 3 62342 NULL
144308 +disable_so_bit_offset_acpi_pct_register_62348 bit_offset acpi_pct_register 0 62348 NULL
144309 +disable_so_ccp_aes_encrypt_fndecl_62350 ccp_aes_encrypt fndecl 0 62350 NULL
144310 +disable_so_crypto_cbc_module_init_fndecl_62352 crypto_cbc_module_init fndecl 0 62352 NULL
144311 +disable_so_decode_attr_time_fndecl_62359 decode_attr_time fndecl 0 62359 NULL
144312 +disable_so_btrfs_set_dev_replace_time_stopped_fndecl_62364 btrfs_set_dev_replace_time_stopped fndecl 3 62364 NULL
144313 +disable_so_i2c_addr_stv0900_internal_62365 i2c_addr stv0900_internal 0 62365 NULL
144314 +disable_so_sys_setfsgid16_fndecl_62369 sys_setfsgid16 fndecl 0-1 62369 NULL
144315 +disable_so__zd_iowrite32v_locked_fndecl_62374 _zd_iowrite32v_locked fndecl 3-0 62374 NULL nohasharray
144316 +disable_so_C_SYSC_semtimedop_fndecl_62374 C_SYSC_semtimedop fndecl 0-1-3 62374 &disable_so__zd_iowrite32v_locked_fndecl_62374
144317 +disable_so_native_mode_display_timings_62375 native_mode display_timings 0 62375 NULL
144318 +disable_so_wm8400_set_dai_clkdiv_fndecl_62376 wm8400_set_dai_clkdiv fndecl 3 62376 NULL
144319 +disable_so_phy_fixed_addr_vardecl_fixed_phy_c_62380 phy_fixed_addr vardecl_fixed_phy.c 0 62380 NULL
144320 +disable_so_lo_phys_addr_62383 lo phys_addr 0 62383 NULL
144321 +disable_so_schedule_resp_fndecl_62394 schedule_resp fndecl 4-3 62394 NULL
144322 +disable_so_tw_ts_recent_tcp_timewait_sock_62395 tw_ts_recent tcp_timewait_sock 0 62395 NULL
144323 +disable_so_bus_addr_videobuf_dmabuf_62402 bus_addr videobuf_dmabuf 0 62402 NULL
144324 +disable_so_i_uid_exofs_fcb_62409 i_uid exofs_fcb 0 62409 NULL
144325 +disable_so_pc_clock_getres_fndecl_62422 pc_clock_getres fndecl 1 62422 NULL
144326 +disable_so_lock_addr_ulp_mem_io_62424 lock_addr ulp_mem_io 0 62424 NULL
144327 +disable_so___set_radio_freq_fndecl_62425 __set_radio_freq fndecl 2 62425 NULL
144328 +disable_so_ath5k_hw_set_cts_timeout_fndecl_62429 ath5k_hw_set_cts_timeout fndecl 2 62429 NULL
144329 +disable_so_ni_program_memory_timing_parameters_fndecl_62435 ni_program_memory_timing_parameters fndecl 0 62435 NULL
144330 +disable_so_stv6110_set_frequency_fndecl_62438 stv6110_set_frequency fndecl 2 62438 NULL
144331 +disable_so_padata_index_to_cpu_fndecl_62451 padata_index_to_cpu fndecl 0-2 62451 NULL
144332 +disable_so_btree_insert_fndecl_62456 btree_insert fndecl 5 62456 NULL
144333 +disable_so_time_hfa384x_rx_frame_62462 time hfa384x_rx_frame 0 62462 NULL
144334 +disable_so_qat_alg_ablkcipher_init_dec_fndecl_62464 qat_alg_ablkcipher_init_dec fndecl 4 62464 NULL
144335 +disable_so_addr_mcp23s08_62465 addr mcp23s08 0 62465 NULL
144336 +disable_so_faddr_ip_options_62466 faddr ip_options 0 62466 NULL nohasharray
144337 +disable_so_ufs_get_inode_gid_fndecl_62466 ufs_get_inode_gid fndecl 0 62466 &disable_so_faddr_ip_options_62466
144338 +disable_so_min_rnr_timer_ib_qp_attr_62467 min_rnr_timer ib_qp_attr 0 62467 NULL
144339 +disable_so_update_timestamp_of_queue_fndecl_62482 update_timestamp_of_queue fndecl 2 62482 NULL
144340 +disable_so_center_freq1_cfg80211_chan_def_62486 center_freq1 cfg80211_chan_def 0 62486 NULL
144341 +disable_so_watchdog_set_timeout_fndecl_62487 watchdog_set_timeout fndecl 0 62487 NULL
144342 +disable_so_bitmap_parselist_user_fndecl_62492 bitmap_parselist_user fndecl 0-2-4 62492 NULL
144343 +disable_so_tuner_address_tda1004x_config_62514 tuner_address tda1004x_config 0 62514 NULL
144344 +disable_so_src_addr_l_wcn36xx_dxe_desc_62516 src_addr_l wcn36xx_dxe_desc 0 62516 NULL
144345 +disable_so_loadaddr_object_info_62521 loadaddr object_info 0 62521 NULL
144346 +disable_so_store_cpumask_fndecl_62525 store_cpumask fndecl 4-0 62525 NULL
144347 +disable_so_sysctl_llc2_rej_timeout_vardecl_62533 sysctl_llc2_rej_timeout vardecl 0 62533 NULL nohasharray
144348 +disable_so_symbol_rate_stv0900_signal_info_62533 symbol_rate stv0900_signal_info 0 62533 &disable_so_sysctl_llc2_rej_timeout_vardecl_62533
144349 +disable_so_get_pending_timer_val_fndecl_62535 get_pending_timer_val fndecl 0-1 62535 NULL
144350 +disable_so_acpi_tb_init_generic_address_fndecl_62545 acpi_tb_init_generic_address fndecl 2-3-4 62545 NULL
144351 +disable_so_laddr_xt_tproxy_target_info_62546 laddr xt_tproxy_target_info 0 62546 NULL
144352 +disable_so_bitmaps_btrfs_io_ctl_62547 bitmaps btrfs_io_ctl 0 62547 NULL
144353 +disable_so_phy_tx_tone_freq_brcms_phy_62552 phy_tx_tone_freq brcms_phy 0 62552 NULL
144354 +disable_so_rdaddr_irnet_socket_62558 rdaddr irnet_socket 0 62558 NULL
144355 +disable_so_uid_ucred_62560 uid ucred 0 62560 NULL
144356 +disable_so_mod_delayed_work_fndecl_62563 mod_delayed_work fndecl 3 62563 NULL
144357 +disable_so_base_pfn_var_mtrr_range_state_62564 base_pfn var_mtrr_range_state 0 62564 NULL
144358 +disable_so_cx_pt_regs_62574 cx pt_regs 0 62574 NULL
144359 +disable_so_cpuid_device_destroy_fndecl_62575 cpuid_device_destroy fndecl 1 62575 NULL
144360 +disable_so_pm_print_times_show_fndecl_62583 pm_print_times_show fndecl 0 62583 NULL
144361 +disable_so_blkaddr_discard_entry_62585 blkaddr discard_entry 0 62585 NULL
144362 +disable_so_wl1271_acx_group_address_tbl_fndecl_62591 wl1271_acx_group_address_tbl fndecl 0 62591 NULL nohasharray
144363 +disable_so_rangelow_v4l2_hw_freq_seek_62591 rangelow v4l2_hw_freq_seek 0 62591 &disable_so_wl1271_acx_group_address_tbl_fndecl_62591
144364 +disable_so_crc32_le_fndecl_62601 crc32_le fndecl 0-1-3 62601 NULL
144365 +disable_so_freq_cx23885_dev_62605 freq cx23885_dev 0 62605 NULL
144366 +disable_so_sysctl_netrom_transport_no_activity_timeout_vardecl_62608 sysctl_netrom_transport_no_activity_timeout vardecl 0 62608 NULL
144367 +disable_so_xfs_btree_new_iroot_fndecl_62611 xfs_btree_new_iroot fndecl 0 62611 NULL
144368 +disable_so_tproxy_handle_time_wait6_fndecl_62612 tproxy_handle_time_wait6 fndecl 3-2 62612 NULL
144369 +disable_so_sys_getpgid_fndecl_62613 sys_getpgid fndecl 0-1 62613 NULL
144370 +disable_so_next_td_addr_c67x00_hcd_62615 next_td_addr c67x00_hcd 0 62615 NULL
144371 +disable_so_hdspm_aes_sync_check_fndecl_62629 hdspm_aes_sync_check fndecl 2 62629 NULL
144372 +disable_so_ebitmap_node_get_bit_fndecl_62633 ebitmap_node_get_bit fndecl 2 62633 NULL
144373 +disable_so_nilfs_palloc_get_bitmap_block_fndecl_62635 nilfs_palloc_get_bitmap_block fndecl 0-2 62635 NULL
144374 +disable_so_spll_ref_div_rv6xx_power_info_62638 spll_ref_div rv6xx_power_info 0 62638 NULL nohasharray
144375 +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
144376 +disable_so_swc_base_asd_ha_addrspace_62642 swc_base asd_ha_addrspace 0 62642 NULL nohasharray
144377 +disable_so__abb5zes3_rtc_update_timer_fndecl_62642 _abb5zes3_rtc_update_timer fndecl 0 62642 &disable_so_swc_base_asd_ha_addrspace_62642
144378 +disable_so_cgcdiv_saa711x_state_62643 cgcdiv saa711x_state 0 62643 NULL
144379 +disable_so_igmp_mod_timer_fndecl_62656 igmp_mod_timer fndecl 2 62656 NULL
144380 +disable_so_write16_comm_runtime_62657 write16 comm_runtime 0 62657 NULL
144381 +disable_so_sib_sid_sockaddr_ib_62658 sib_sid sockaddr_ib 0 62658 NULL
144382 +disable_so_srx_service_sockaddr_rxrpc_62661 srx_service sockaddr_rxrpc 0 62661 NULL
144383 +disable_so_sh_cmt_clocksource_read_fndecl_62671 sh_cmt_clocksource_read fndecl 0 62671 NULL
144384 +disable_so_freq_saa7164_port_62674 freq saa7164_port 0 62674 NULL
144385 +disable_so_nilfs_btree_node_lookup_fndecl_62675 nilfs_btree_node_lookup fndecl 2 62675 NULL
144386 +disable_so_addr_1_qla8044_minidump_entry_rddfe_62676 addr_1 qla8044_minidump_entry_rddfe 0 62676 NULL
144387 +disable_so_rtl_udelay_fndecl_62677 rtl_udelay fndecl 1 62677 NULL nohasharray
144388 +disable_so_VTotal_xtimings_62677 VTotal xtimings 0 62677 &disable_so_rtl_udelay_fndecl_62677
144389 +disable_so_ib_get_cached_gid_fndecl_62698 ib_get_cached_gid fndecl 2-3 62698 NULL
144390 +disable_so_dvb_frontend_sleep_until_fndecl_62701 dvb_frontend_sleep_until fndecl 2 62701 NULL
144391 +disable_so_i2c_address_stv6110_config_62706 i2c_address stv6110_config 0 62706 NULL
144392 +disable_so_address_ihex_record_62713 address ihex_record 0 62713 NULL
144393 +disable_so_next_rptr_gpu_addr_radeon_ring_62716 next_rptr_gpu_addr radeon_ring 0 62716 NULL
144394 +disable_so_wusb_trust_timeout_store_fndecl_62719 wusb_trust_timeout_store fndecl 0-4 62719 NULL
144395 +disable_so_add_bytes_to_bitmap_fndecl_62721 add_bytes_to_bitmap fndecl 0-3-4 62721 NULL
144396 +disable_so_set_ethernet_addr_fndecl_62733 set_ethernet_addr fndecl 0 62733 NULL
144397 +disable_so_nmsrs_kvm_msrs_62744 nmsrs kvm_msrs 0 62744 NULL
144398 +disable_so_ant_div_control_ar9300_BaseExtension_1_62759 ant_div_control ar9300_BaseExtension_1 0 62759 NULL
144399 +disable_so_padlock_sha_import_fndecl_62760 padlock_sha_import fndecl 0 62760 NULL
144400 +disable_so_do_timerfd_settime_fndecl_62764 do_timerfd_settime fndecl 1 62764 NULL nohasharray
144401 +disable_so_phy_addr_netdev_private_62764 phy_addr netdev_private 0 62764 &disable_so_do_timerfd_settime_fndecl_62764
144402 +disable_so_bd_list_addr_lo_bnx2i_nop_out_request_62766 bd_list_addr_lo bnx2i_nop_out_request 0 62766 NULL
144403 +disable_so_get_sndtimeo_l2cap_ops_62767 get_sndtimeo l2cap_ops 0 62767 NULL
144404 +disable_so_active_jiffies_dev_pm_info_62774 active_jiffies dev_pm_info 0 62774 NULL
144405 +disable_so_r5f_val_fc2580_freq_regs_62778 r5f_val fc2580_freq_regs 0 62778 NULL
144406 +disable_so_ac97_clock_vardecl_via82xx_modem_c_62781 ac97_clock vardecl_via82xx_modem.c 0 62781 NULL
144407 +disable_so_after_ctime_sec_nfsd4_change_info_62785 after_ctime_sec nfsd4_change_info 0 62785 NULL
144408 +disable_so_vma_compute_subtree_gap_fndecl_62794 vma_compute_subtree_gap fndecl 0 62794 NULL
144409 +disable_so_fll_freq_out_wm8350_data_62801 fll_freq_out wm8350_data 0 62801 NULL
144410 +disable_so_nfs_map_group_to_gid_fndecl_62809 nfs_map_group_to_gid fndecl 0-3 62809 NULL
144411 +disable_so_saddr_irnet_socket_62828 saddr irnet_socket 0 62828 NULL
144412 +disable_so_fixed_mtrr_range_end_addr_fndecl_62835 fixed_mtrr_range_end_addr fndecl 2-0 62835 NULL
144413 +disable_so_sis_program_udma_timings_fndecl_62837 sis_program_udma_timings fndecl 2 62837 NULL
144414 +disable_so_timeout_lpfc_scsi_buf_62845 timeout lpfc_scsi_buf 0 62845 NULL
144415 +disable_so_brp_inc_can_bittiming_const_62858 brp_inc can_bittiming_const 0 62858 NULL
144416 +disable_so_timer_counter_tg3_62864 timer_counter tg3 0 62864 NULL
144417 +disable_so_slave_addr_psb_intel_i2c_chan_62869 slave_addr psb_intel_i2c_chan 0 62869 NULL
144418 +disable_so_mapaddr_rocker_desc_info_62870 mapaddr rocker_desc_info 0 62870 NULL
144419 +disable_so_cid_addr_drv_ctl_io_62879 cid_addr drv_ctl_io 0 62879 NULL
144420 +disable_so_ifreq_dibx000_bandwidth_config_62891 ifreq dibx000_bandwidth_config 0 62891 NULL
144421 +disable_so_m_iw_freq_62894 m iw_freq 0 62894 NULL
144422 +disable_so___nci_request_fndecl_62899 __nci_request fndecl 0 62899 NULL
144423 +disable_so_tuner_addr_cx23885_dev_62908 tuner_addr cx23885_dev 0 62908 NULL
144424 +disable_so_acpi_remove_address_space_handler_fndecl_62916 acpi_remove_address_space_handler fndecl 0-2 62916 NULL
144425 +disable_so_vma_address_fndecl_62917 vma_address fndecl 0 62917 NULL
144426 +disable_so_cg_spll_func_cntl_2_rv770_clock_registers_62925 cg_spll_func_cntl_2 rv770_clock_registers 0 62925 NULL
144427 +disable_so_clear_state_gpu_addr_radeon_rlc_62934 clear_state_gpu_addr radeon_rlc 0 62934 NULL
144428 +disable_so_timeout__x_config_parms_62944 timeout _x_config_parms 0 62944 NULL
144429 +disable_so_vbackporch_v4l2_bt_timings_62951 vbackporch v4l2_bt_timings 0 62951 NULL
144430 +disable_so_crypto_rfc4543_setkey_fndecl_62960 crypto_rfc4543_setkey fndecl 0-3 62960 NULL
144431 +disable_so_xc_get_hsync_freq_fndecl_62961 xc_get_hsync_freq fndecl 0 62961 NULL
144432 +disable_so_run_delayed_start_btrfs_delayed_ref_root_62962 run_delayed_start btrfs_delayed_ref_root 0 62962 NULL nohasharray
144433 +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
144434 +disable_so_frac_top_pll_div_62988 frac_top pll_div 0 62988 NULL nohasharray
144435 +disable_so_busaddr__CommandList_struct_62988 busaddr _CommandList_struct 0 62988 &disable_so_frac_top_pll_div_62988
144436 +disable_so_buffer_paddr_ghes_62992 buffer_paddr ghes 0 62992 NULL
144437 +disable_so_be32_to_cpu_n_fndecl_62994 be32_to_cpu_n fndecl 3 62994 NULL
144438 +disable_so_ccp_sha_update_fndecl_63000 ccp_sha_update fndecl 0 63000 NULL
144439 +disable_so_chipco_pctl_clockfreqlimit_fndecl_63008 chipco_pctl_clockfreqlimit fndecl 0 63008 NULL
144440 +disable_so_sys_gettimeofday_fndecl_63009 sys_gettimeofday fndecl 0 63009 NULL
144441 +disable_so_ext4_read_block_bitmap_fndecl_63029 ext4_read_block_bitmap fndecl 2 63029 NULL
144442 +disable_so_sis900_interrupt_fndecl_63044 sis900_interrupt fndecl 1 63044 NULL
144443 +disable_so_tv_usec_compat_timeval_63056 tv_usec compat_timeval 0 63056 NULL
144444 +disable_so_timeout_ct_entry_24xx_63060 timeout ct_entry_24xx 0 63060 NULL
144445 +disable_so_ib_reset_mad_timeout_fndecl_63061 ib_reset_mad_timeout fndecl 2 63061 NULL
144446 +disable_so_register_lapic_address_fndecl_63066 register_lapic_address fndecl 1 63066 NULL
144447 +disable_so_sgl_dma_addr_genwqe_sgl_63082 sgl_dma_addr genwqe_sgl 0 63082 NULL
144448 +disable_so_nf_conntrack_hash_rnd_vardecl_63088 nf_conntrack_hash_rnd vardecl 0 63088 NULL
144449 +disable_so_snd_emu10k1_ptr_write_fndecl_63094 snd_emu10k1_ptr_write fndecl 2-3-4 63094 NULL
144450 +disable_so_index_svm_direct_access_msrs_63098 index svm_direct_access_msrs 0 63098 NULL
144451 +disable_so_crypto_authenc_genicv_fndecl_63111 crypto_authenc_genicv fndecl 0 63111 NULL
144452 +disable_so_pcf50633_rtc_set_time_fndecl_63123 pcf50633_rtc_set_time fndecl 0 63123 NULL
144453 +disable_so_hsyn_pol_hdmi_timings_63136 hsyn_pol hdmi_timings 0 63136 NULL
144454 +disable_so_ri_addr_gfs2_rindex_63138 ri_addr gfs2_rindex 0 63138 NULL
144455 +disable_so_nr_oaktrail_hdmi_clock_63155 nr oaktrail_hdmi_clock 0 63155 NULL nohasharray
144456 +disable_so_dma_addr_nic_63155 dma_addr nic 0 63155 &disable_so_nr_oaktrail_hdmi_clock_63155
144457 +disable_so_dlm_hash2nodeid_fndecl_63162 dlm_hash2nodeid fndecl 2 63162 NULL
144458 +disable_so_efx_enable_interrupts_fndecl_63163 efx_enable_interrupts fndecl 0 63163 NULL nohasharray
144459 +disable_so_freq_offset_rt2x00_dev_63163 freq_offset rt2x00_dev 0 63163 &disable_so_efx_enable_interrupts_fndecl_63163
144460 +disable_so_dma_addr_il_queue_63172 dma_addr il_queue 0 63172 NULL
144461 +disable_so_buf_addr_hi_fcoe_bd_ctx_63176 buf_addr_hi fcoe_bd_ctx 0 63176 NULL
144462 +disable_so_i2c_addr_lgdt3305_config_63179 i2c_addr lgdt3305_config 0 63179 NULL nohasharray
144463 +disable_so_sched_addr_ath9k_hw_mci_63179 sched_addr ath9k_hw_mci 0 63179 &disable_so_i2c_addr_lgdt3305_config_63179
144464 +disable_so_mic_x100_get_boot_addr_fndecl_63190 mic_x100_get_boot_addr fndecl 0 63190 NULL
144465 +disable_so_i2c_clock_period_ivtv_options_63202 i2c_clock_period ivtv_options 0 63202 NULL
144466 +disable_so_f2fs_init_crypto_fndecl_63218 f2fs_init_crypto fndecl 0 63218 NULL
144467 +disable_so_snd_ymfpci_interrupt_fndecl_63224 snd_ymfpci_interrupt fndecl 1 63224 NULL
144468 +disable_so_set_tsc_mode_fndecl_63231 set_tsc_mode fndecl 0-1 63231 NULL
144469 +disable_so_update_crypto_ahash_63235 update crypto_ahash 0 63235 NULL
144470 +disable_so_base_freq_stv0297_state_63242 base_freq stv0297_state 0 63242 NULL
144471 +disable_so_mounted_uid_ncp_mount_data_63250 mounted_uid ncp_mount_data 0 63250 NULL
144472 +disable_so_wall_clock_kvm_arch_63252 wall_clock kvm_arch 0 63252 NULL nohasharray
144473 +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
144474 +disable_so_r100_mm_wreg_slow_fndecl_63255 r100_mm_wreg_slow fndecl 2-3 63255 NULL
144475 +disable_so_ocrdma_query_gid_fndecl_63259 ocrdma_query_gid fndecl 0-3 63259 NULL
144476 +disable_so_sha1_mb_async_init_fndecl_63263 sha1_mb_async_init fndecl 0 63263 NULL
144477 +disable_so_i_mtime_nsec_nilfs_inode_63266 i_mtime_nsec nilfs_inode 0 63266 NULL
144478 +disable_so_s_pkt_delay_ipath_qp_63270 s_pkt_delay ipath_qp 0 63270 NULL
144479 +disable_so_ecryptfs_read_update_atime_fndecl_63272 ecryptfs_read_update_atime fndecl 0 63272 NULL
144480 +disable_so_seq_auto_out_pin_63274 seq auto_out_pin 0 63274 NULL
144481 +disable_so_pmdown_time_show_fndecl_63283 pmdown_time_show fndecl 0 63283 NULL
144482 +disable_so_pwm_freq_div_dib7000m_config_63285 pwm_freq_div dib7000m_config 0 63285 NULL
144483 +disable_so_bit_width_acpi_generic_address_63286 bit_width acpi_generic_address 0 63286 NULL
144484 +disable_so_addr_sg_entry_63287 addr sg_entry 0 63287 NULL
144485 +disable_so_ocfs2_pack_timespec_fndecl_63293 ocfs2_pack_timespec fndecl 0 63293 NULL
144486 +disable_so_ipv6_addr_label_fndecl_63298 ipv6_addr_label fndecl 3-4 63298 NULL
144487 +disable_so_chgfreq_cs42l56_platform_data_63299 chgfreq cs42l56_platform_data 0 63299 NULL
144488 +disable_so_sco_sock_set_timer_fndecl_63304 sco_sock_set_timer fndecl 2 63304 NULL nohasharray
144489 +disable_so_skb_get_hash_fndecl_63304 skb_get_hash fndecl 0 63304 &disable_so_sco_sock_set_timer_fndecl_63304
144490 +disable_so_timeout_tsk_mgmt_entry_63307 timeout tsk_mgmt_entry 0 63307 NULL
144491 +disable_so_sysctl_slot_timeout_vardecl_63317 sysctl_slot_timeout vardecl 0 63317 NULL
144492 +disable_so_set_sadb_address_fndecl_63320 set_sadb_address fndecl 2 63320 NULL
144493 +disable_so_handle_frequent_errors_fndecl_63324 handle_frequent_errors fndecl 4 63324 NULL
144494 +disable_so_last_ramp_up_time_bfad_itnim_s_63328 last_ramp_up_time bfad_itnim_s 0 63328 NULL
144495 +disable_so_timeout_vardecl_xen_wdt_c_63339 timeout vardecl_xen_wdt.c 0 63339 NULL nohasharray
144496 +disable_so_padlock_sha_export_fndecl_63339 padlock_sha_export fndecl 0 63339 &disable_so_timeout_vardecl_xen_wdt_c_63339
144497 +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
144498 +disable_so_uv_cpu_to_pnode_fndecl_63343 uv_cpu_to_pnode fndecl 0 63343 NULL
144499 +disable_so_gsc_runtime_resume_fndecl_63355 gsc_runtime_resume fndecl 0 63355 NULL
144500 +disable_so_pci_bus_find_capability_fndecl_63357 pci_bus_find_capability fndecl 0-2 63357 NULL
144501 +disable_so_addr_af9013_reg_bit_63363 addr af9013_reg_bit 0 63363 NULL
144502 +disable_so_ath5k_eeprom_bin2freq_fndecl_63364 ath5k_eeprom_bin2freq fndecl 0-2 63364 NULL
144503 +disable_so_sd_mtime_stat_data_63370 sd_mtime stat_data 0 63370 NULL
144504 +disable_so_next_hscb_busaddr_hardware_scb_63375 next_hscb_busaddr hardware_scb 0 63375 NULL nohasharray
144505 +disable_so_cpufreq_set_policy_fndecl_63375 cpufreq_set_policy fndecl 0 63375 &disable_so_next_hscb_busaddr_hardware_scb_63375
144506 +disable_so_cache_tsc_vardecl_max8925_core_c_63377 cache_tsc vardecl_max8925-core.c 0 63377 NULL
144507 +disable_so_xtime_remainder_timekeeper_63380 xtime_remainder timekeeper 0 63380 NULL
144508 +disable_so_st_uid___old_kernel_stat_63381 st_uid __old_kernel_stat 0 63381 NULL
144509 +disable_so_timeout_b_tpm_vendor_specific_63382 timeout_b tpm_vendor_specific 0 63382 NULL
144510 +disable_so_vol_bit_shift_anatop_regulator_63384 vol_bit_shift anatop_regulator 0 63384 NULL
144511 +disable_so_msr_offset_intel_uncore_type_63385 msr_offset intel_uncore_type 0 63385 NULL
144512 +disable_so_random_write_fndecl_63387 random_write fndecl 0-3 63387 NULL
144513 +disable_so_bcma_chipco_watchdog_timer_set_ms_wdt_fndecl_63389 bcma_chipco_watchdog_timer_set_ms_wdt fndecl 2-0 63389 NULL
144514 +disable_so__div_round_closest_fndecl_63400 _div_round_closest fndecl 0-3-2 63400 NULL
144515 +disable_so_acpi_ut_strtoul64_fndecl_63410 acpi_ut_strtoul64 fndecl 0 63410 NULL
144516 +disable_so_alarm_time_xgene_rtc_dev_63411 alarm_time xgene_rtc_dev 0 63411 NULL nohasharray
144517 +disable_so_dynamic_ps_timeout_ieee80211_conf_63411 dynamic_ps_timeout ieee80211_conf 0 63411 &disable_so_alarm_time_xgene_rtc_dev_63411 nohasharray
144518 +disable_so_split_timeout_cycles_fw_card_63411 split_timeout_cycles fw_card 0 63411 &disable_so_dynamic_ps_timeout_ieee80211_conf_63411
144519 +disable_so_bitstream_get_bits_fndecl_63423 bitstream_get_bits fndecl 0-3 63423 NULL
144520 +disable_so_tw_timeout_inet_timewait_sock_63424 tw_timeout inet_timewait_sock 0 63424 NULL
144521 +disable_so_drbg_kcapi_hash_fndecl_63433 drbg_kcapi_hash fndecl 0 63433 NULL
144522 +disable_so_wait_for_completion_interruptible_fndecl_63448 wait_for_completion_interruptible fndecl 0 63448 NULL
144523 +disable_so_sys_clock_nanosleep_fndecl_63449 sys_clock_nanosleep fndecl 1 63449 NULL
144524 +disable_so_nouveau_hw_get_clock_fndecl_63456 nouveau_hw_get_clock fndecl 0-2 63456 NULL
144525 +disable_so_nilfs_btree_propagate_gc_fndecl_63460 nilfs_btree_propagate_gc fndecl 0 63460 NULL
144526 +disable_so_crypto_xcbc_module_init_fndecl_63471 crypto_xcbc_module_init fndecl 0 63471 NULL
144527 +disable_so_amradio_set_freq_fndecl_63479 amradio_set_freq fndecl 0-2 63479 NULL
144528 +disable_so_task_getpgid_security_operations_63489 task_getpgid security_operations 0 63489 NULL nohasharray
144529 +disable_so_crypto_register_akcipher_fndecl_63489 crypto_register_akcipher fndecl 0 63489 &disable_so_task_getpgid_security_operations_63489
144530 +disable_so_netxen_nic_map_indirect_address_128M_fndecl_63490 netxen_nic_map_indirect_address_128M fndecl 2 63490 NULL
144531 +disable_so_vnic_intr_coalescing_timer_set_fndecl_63494 vnic_intr_coalescing_timer_set fndecl 2 63494 NULL
144532 +disable_so_chipset_settings_chipset_bus_clock_list_entry_63497 chipset_settings chipset_bus_clock_list_entry 0 63497 NULL
144533 +disable_so_new_cycle_state_xhci_dequeue_state_63499 new_cycle_state xhci_dequeue_state 0 63499 NULL
144534 +disable_so_radeon_legacy_set_engine_clock_fndecl_63512 radeon_legacy_set_engine_clock fndecl 2 63512 NULL
144535 +disable_so_addr___ctrl_63513 addr __ctrl 0 63513 NULL
144536 +disable_so_asix_get_phy_addr_fndecl_63534 asix_get_phy_addr fndecl 0 63534 NULL
144537 +disable_so_time_in_queue_dm_stat_percpu_63541 time_in_queue dm_stat_percpu 0 63541 NULL
144538 +disable_so_ufshcd_pltfrm_runtime_suspend_fndecl_63543 ufshcd_pltfrm_runtime_suspend fndecl 0 63543 NULL
144539 +disable_so_spu_port_delay_if_spi_card_63548 spu_port_delay if_spi_card 0 63548 NULL nohasharray
144540 +disable_so_cs_cpufreq_governor_dbs_fndecl_63548 cs_cpufreq_governor_dbs fndecl 0 63548 &disable_so_spu_port_delay_if_spi_card_63548
144541 +disable_so_type_ceph_crypto_key_63565 type ceph_crypto_key 0 63565 NULL
144542 +disable_so_bus_settle_time_blogic_adapter_63575 bus_settle_time blogic_adapter 0 63575 NULL
144543 +disable_so_ref_divider_aty128_constants_63576 ref_divider aty128_constants 0 63576 NULL
144544 +disable_so_remote_qpn_cm_timewait_info_63581 remote_qpn cm_timewait_info 0 63581 NULL
144545 +disable_so_boot_time_fc_lport_63585 boot_time fc_lport 0 63585 NULL
144546 +disable_so_imx_phy_reg_addressing_fndecl_63588 imx_phy_reg_addressing fndecl 0 63588 NULL
144547 +disable_so_irq_set_irq_type_fndecl_63590 irq_set_irq_type fndecl 2-1 63590 NULL
144548 +disable_so_appl_ptr_snd_rawmidi_runtime_63609 appl_ptr snd_rawmidi_runtime 0 63609 NULL
144549 +disable_so_snd_hdac_regmap_write_raw_fndecl_63613 snd_hdac_regmap_write_raw fndecl 0-3-2 63613 NULL
144550 +disable_so_control_addr_qla82xx_md_entry_cache_63615 control_addr qla82xx_md_entry_cache 0 63615 NULL
144551 +disable_so_nla_put_ipaddr6_fndecl_63618 nla_put_ipaddr6 fndecl 0 63618 NULL
144552 +disable_so_da9052_wdt_set_timeout_fndecl_63621 da9052_wdt_set_timeout fndecl 2-0 63621 NULL
144553 +disable_so_cstime_signal_struct_63629 cstime signal_struct 0 63629 NULL
144554 +disable_so_dm_region_hash_create_fndecl_63649 dm_region_hash_create fndecl 5-8-9 63649 NULL
144555 +disable_so_krng_get_random_fndecl_63655 krng_get_random fndecl 3 63655 NULL
144556 +disable_so_r9701_get_datetime_fndecl_63665 r9701_get_datetime fndecl 0 63665 NULL
144557 +disable_so_crypto_rfc3686_crypt_fndecl_63668 crypto_rfc3686_crypt fndecl 0 63668 NULL
144558 +disable_so_xen_late_init_mcelog_fndecl_63669 xen_late_init_mcelog fndecl 0 63669 NULL
144559 +disable_so_prot_res_gid_63673 prot res_gid 0 63673 NULL
144560 +disable_so_ext3_valid_block_bitmap_fndecl_63688 ext3_valid_block_bitmap fndecl 3 63688 NULL
144561 +disable_so_smt_timer_start_fndecl_63691 smt_timer_start fndecl 3 63691 NULL nohasharray
144562 +disable_so_port_tomoyo_inet_addr_info_63691 port tomoyo_inet_addr_info 0 63691 &disable_so_smt_timer_start_fndecl_63691
144563 +disable_so_generic_check_addressable_fndecl_63696 generic_check_addressable fndecl 1-2 63696 NULL nohasharray
144564 +disable_so___check_object_size_fndecl_63696 __check_object_size fndecl 2 63696 &disable_so_generic_check_addressable_fndecl_63696
144565 +disable_so_r820t_sleep_fndecl_63717 r820t_sleep fndecl 0 63717 NULL
144566 +disable_so_lgdt3305_read_signal_strength_fndecl_63720 lgdt3305_read_signal_strength fndecl 0 63720 NULL
144567 +disable_so_wl1251_acx_sleep_auth_fndecl_63727 wl1251_acx_sleep_auth fndecl 0 63727 NULL
144568 +disable_so_clk_out_div_ts2020_priv_63728 clk_out_div ts2020_priv 0 63728 NULL
144569 +disable_so_sys_clock_adjtime_fndecl_63736 sys_clock_adjtime fndecl 1 63736 NULL
144570 +disable_so_radio_addr_cx88_board_63745 radio_addr cx88_board 0 63745 NULL
144571 +disable_so_input_print_bitmap_fndecl_63755 input_print_bitmap fndecl 0-2 63755 NULL
144572 +disable_so_memstick_set_rw_addr_fndecl_63757 memstick_set_rw_addr fndecl 0 63757 NULL
144573 +disable_so_simple_strtoll_fndecl_63758 simple_strtoll fndecl 0 63758 NULL
144574 +disable_so___mv88e6xxx_read_addr_fndecl_63766 __mv88e6xxx_read_addr fndecl 0 63766 NULL
144575 +disable_so_nf_conntrack_timeout_init_fndecl_63771 nf_conntrack_timeout_init fndecl 0 63771 NULL
144576 +disable_so_ob_baseaddr_h_mvumi_hs_page4_63775 ob_baseaddr_h mvumi_hs_page4 0 63775 NULL
144577 +disable_so_stored_addr_hi_amd_iommu_63784 stored_addr_hi amd_iommu 0 63784 NULL
144578 +disable_so_HSyncEnd_xtimings_63785 HSyncEnd xtimings 0 63785 NULL
144579 +disable_so_addr_h_xfer_desc_63789 addr_h xfer_desc 0 63789 NULL
144580 +disable_so_i2c_address_stb6000_priv_63790 i2c_address stb6000_priv 0 63790 NULL
144581 +disable_so_runtime_expires_cfs_bandwidth_63800 runtime_expires cfs_bandwidth 0 63800 NULL
144582 +disable_so_account_steal_time_fndecl_63806 account_steal_time fndecl 1 63806 NULL
144583 +disable_so_sleep_max_sched_statistics_63826 sleep_max sched_statistics 0 63826 NULL
144584 +disable_so_usecs_to_jiffies_fndecl_63832 usecs_to_jiffies fndecl 0-1 63832 NULL
144585 +disable_so_dsp_iram_offset_sst_addr_63833 dsp_iram_offset sst_addr 0 63833 NULL
144586 +disable_so_central_freq_skl_wrpll_params_63836 central_freq skl_wrpll_params 0 63836 NULL
144587 +disable_so_bitmap_release_region_fndecl_63837 bitmap_release_region fndecl 2-3 63837 NULL
144588 +disable_so_dx_hack_hash_signed_fndecl_63847 dx_hack_hash_signed fndecl 0-2 63847 NULL
144589 +disable_so_qhead_snd_timer_user_63855 qhead snd_timer_user 0 63855 NULL
144590 +disable_so_table1_addr_ipw2100_ordinals_63856 table1_addr ipw2100_ordinals 0 63856 NULL
144591 +disable_so_dec_cd_paddr_qat_alg_aead_ctx_63860 dec_cd_paddr qat_alg_aead_ctx 0 63860 NULL
144592 +disable_so_ppll_div_3_radeon_regs_63862 ppll_div_3 radeon_regs 0 63862 NULL
144593 +disable_so_sys_addr_to_input_addr_fndecl_63863 sys_addr_to_input_addr fndecl 0-2 63863 NULL
144594 +disable_so_dma_rx_timeout_lpuart_port_63878 dma_rx_timeout lpuart_port 0 63878 NULL
144595 +disable_so_dma_addr_t4_rq_63886 dma_addr t4_rq 0 63886 NULL
144596 +disable_so_radeon_semaphore_emit_signal_fndecl_63895 radeon_semaphore_emit_signal fndecl 2 63895 NULL
144597 +disable_so_probe_timeout_ieee80211_if_managed_63910 probe_timeout ieee80211_if_managed 0 63910 NULL
144598 +disable_so_mthca_MAD_IFC_fndecl_63923 mthca_MAD_IFC fndecl 4-0 63923 NULL
144599 +disable_so_get_strength_time_mb86a20s_state_63926 get_strength_time mb86a20s_state 0 63926 NULL
144600 +disable_so_rx_frequency_wl1273_device_63933 rx_frequency wl1273_device 0 63933 NULL nohasharray
144601 +disable_so_arcmsr_module_init_fndecl_63933 arcmsr_module_init fndecl 0 63933 &disable_so_rx_frequency_wl1273_device_63933
144602 +disable_so_timeout_vardecl_alim1535_wdt_c_63935 timeout vardecl_alim1535_wdt.c 0 63935 NULL
144603 +disable_so_query_dv_timings_size_vivid_dev_63943 query_dv_timings_size vivid_dev 0 63943 NULL
144604 +disable_so_nf_nat_sdp_addr_fndecl_63949 nf_nat_sdp_addr fndecl 2-3 63949 NULL
144605 +disable_so_shash_finup_unaligned_fndecl_63955 shash_finup_unaligned fndecl 0-3 63955 NULL
144606 +disable_so_rdmsr_on_cpu_fndecl_63956 rdmsr_on_cpu fndecl 0-1 63956 NULL
144607 +disable_so_qlge_set_mac_address_fndecl_63968 qlge_set_mac_address fndecl 0 63968 NULL
144608 +disable_so_config_ipaddr_qlcnic_nic_template_63973 config_ipaddr qlcnic_nic_template 2 63973 NULL
144609 +disable_so_timer_enable_snd_opl3_63986 timer_enable snd_opl3 0 63986 NULL
144610 +disable_so_virtio16_to_cpu_fndecl_63994 virtio16_to_cpu fndecl 0-2 63994 NULL
144611 +disable_so_ecryptfs_init_crypto_fndecl_63995 ecryptfs_init_crypto fndecl 0 63995 NULL
144612 +disable_so_address_ccp_dma_info_64001 address ccp_dma_info 0 64001 NULL
144613 +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
144614 +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
144615 +disable_so_settime_security_operations_64006 settime security_operations 0 64006 NULL nohasharray
144616 +disable_so_SYSC_timerfd_create_fndecl_64006 SYSC_timerfd_create fndecl 2 64006 &disable_so_settime_security_operations_64006
144617 +disable_so_cryptd_hash_setkey_fndecl_64014 cryptd_hash_setkey fndecl 0-3 64014 NULL
144618 +disable_so_irq_net_device_64015 irq net_device 0 64015 NULL
144619 +disable_so_sysfs_show_available_clocksources_fndecl_64024 sysfs_show_available_clocksources fndecl 0 64024 NULL
144620 +disable_so_s_frequency_v4l2_subdev_tuner_ops_64037 s_frequency v4l2_subdev_tuner_ops 0 64037 NULL
144621 +disable_so_tcp_v6_md5_hash_pseudoheader_fndecl_64051 tcp_v6_md5_hash_pseudoheader fndecl 4 64051 NULL
144622 +disable_so_ieee80211_queue_delayed_work_fndecl_64056 ieee80211_queue_delayed_work fndecl 3 64056 NULL
144623 +disable_so_rtc_set_time_fndecl_64057 rtc_set_time fndecl 0 64057 NULL
144624 +disable_so_addr_i2c_msg_64074 addr i2c_msg 0 64074 NULL
144625 +disable_so_cea_mode_alternate_clock_fndecl_64078 cea_mode_alternate_clock fndecl 0 64078 NULL
144626 +disable_so_cfreq_esp_64080 cfreq esp 0 64080 NULL
144627 +disable_so___irq_get_desc_lock_fndecl_64081 __irq_get_desc_lock fndecl 1 64081 NULL
144628 +disable_so_pticks_snd_timer_instance_64084 pticks snd_timer_instance 0 64084 NULL
144629 +disable_so_ip6addrlbl_get_fndecl_64092 ip6addrlbl_get fndecl 0 64092 NULL nohasharray
144630 +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
144631 +disable_so_nilfs_btree_commit_convert_and_insert_fndecl_64095 nilfs_btree_commit_convert_and_insert fndecl 2-6 64095 NULL
144632 +disable_so_prandom_u32_fndecl_64118 prandom_u32 fndecl 0 64118 NULL
144633 +disable_so_mask_ds1685_rtc_time_regs_64121 mask ds1685_rtc_time_regs 0 64121 NULL
144634 +disable_so_ic_servaddr_vardecl_64122 ic_servaddr vardecl 0 64122 NULL
144635 +disable_so_hashval2_0_rx_pkt_hdr1_64124 hashval2_0 rx_pkt_hdr1 0 64124 NULL
144636 +disable_so_xfrm_addr_equal_fndecl_64155 xfrm_addr_equal fndecl 3 64155 NULL
144637 +disable_so_cq_addr_hi_fcoe_kwqe_conn_offload2_64157 cq_addr_hi fcoe_kwqe_conn_offload2 0 64157 NULL
144638 +disable_so_rq_tmo_jiffies_srp_target_port_64158 rq_tmo_jiffies srp_target_port 0 64158 NULL
144639 +disable_so_xen_sysfs_uuid_init_fndecl_64160 xen_sysfs_uuid_init fndecl 0 64160 NULL
144640 +disable_so___dm_stat_init_temporary_percpu_totals_fndecl_64162 __dm_stat_init_temporary_percpu_totals fndecl 3 64162 NULL
144641 +disable_so_pcxhr_set_clock_fndecl_64184 pcxhr_set_clock fndecl 2-0 64184 NULL
144642 +disable_so_bitmap_endwrite_fndecl_64188 bitmap_endwrite fndecl 2-3 64188 NULL
144643 +disable_so_pages_bitmap_counts_64197 pages bitmap_counts 0 64197 NULL
144644 +disable_so_base_address_dmar_rmrr_unit_64199 base_address dmar_rmrr_unit 0 64199 NULL
144645 +disable_so_udp_conn_schedule_fndecl_64203 udp_conn_schedule fndecl 1 64203 NULL
144646 +disable_so_max_timebase_img_pwm_soc_data_64210 max_timebase img_pwm_soc_data 0 64210 NULL
144647 +disable_so_cycles_at_suspend_vardecl_timekeeping_c_64211 cycles_at_suspend vardecl_timekeeping.c 0 64211 NULL nohasharray
144648 +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
144649 +disable_so_addr_psb_pipe_64215 addr psb_pipe 0 64215 NULL
144650 +disable_so_acpi_subsys_runtime_suspend_fndecl_64232 acpi_subsys_runtime_suspend fndecl 0 64232 NULL
144651 +disable_so_pci_bus_read_config_word_fndecl_64248 pci_bus_read_config_word fndecl 0-2-3 64248 NULL
144652 +disable_so_last_rx_timestamp_igb_adapter_64249 last_rx_timestamp igb_adapter 0 64249 NULL
144653 +disable_so_snd_timer_user_ioctl_compat_fndecl_64250 snd_timer_user_ioctl_compat fndecl 0 64250 NULL
144654 +disable_so_tag_reg_addr_qla82xx_md_entry_cache_64251 tag_reg_addr qla82xx_md_entry_cache 0 64251 NULL
144655 +disable_so_cond_wait_interruptible_timeout_irqrestore_fndecl_64253 cond_wait_interruptible_timeout_irqrestore fndecl 2-0 64253 NULL
144656 +disable_so_signr_usbdevfs_disconnectsignal32_64254 signr usbdevfs_disconnectsignal32 0 64254 NULL
144657 +disable_so_inet6_addr_del_fndecl_64255 inet6_addr_del fndecl 0-2-5-3 64255 NULL
144658 +disable_so_pci_quatech_clock_fndecl_64264 pci_quatech_clock fndecl 0 64264 NULL nohasharray
144659 +disable_so_crypto_null_mod_init_fndecl_64264 crypto_null_mod_init fndecl 0 64264 &disable_so_pci_quatech_clock_fndecl_64264
144660 +disable_so_kvm_write_wall_clock_fndecl_64267 kvm_write_wall_clock fndecl 2 64267 NULL
144661 +disable_so_smk_write_netlbladdr_fndecl_64270 smk_write_netlbladdr fndecl 3 64270 NULL
144662 +disable_so_iscsi_nacl_attrib_show_dataout_timeout_fndecl_64272 iscsi_nacl_attrib_show_dataout_timeout fndecl 0 64272 NULL
144663 +disable_so_sched_setscheduler_nocheck_fndecl_64274 sched_setscheduler_nocheck fndecl 2-0 64274 NULL
144664 +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
144665 +disable_so_dx_hack_hash_unsigned_fndecl_64277 dx_hack_hash_unsigned fndecl 0-2 64277 NULL
144666 +disable_so_xsdt_physical_address_acpi_table_rsdp_64302 xsdt_physical_address acpi_table_rsdp 0 64302 NULL
144667 +disable_so_timeout_watchdog_device_64303 timeout watchdog_device 0 64303 NULL
144668 +disable_so_crypto_shash_digest_fndecl_64307 crypto_shash_digest fndecl 0-3 64307 NULL
144669 +disable_so_jiffies_ati_remote2_64334 jiffies ati_remote2 0 64334 NULL
144670 +disable_so_target_stat_scsi_lu_show_attr_creation_time_fndecl_64336 target_stat_scsi_lu_show_attr_creation_time fndecl 0 64336 NULL
144671 +disable_so_intel_increase_pllclock_fndecl_64342 intel_increase_pllclock fndecl 2 64342 NULL
144672 +disable_so_wm8350_rtc_settime_fndecl_64353 wm8350_rtc_settime fndecl 0 64353 NULL
144673 +disable_so_saa711x_s_crystal_freq_fndecl_64358 saa711x_s_crystal_freq fndecl 2 64358 NULL
144674 +disable_so_get_div_fndecl_64359 get_div fndecl 0 64359 NULL
144675 +disable_so_dln2_spi_runtime_resume_fndecl_64364 dln2_spi_runtime_resume fndecl 0 64364 NULL
144676 +disable_so_register_address_fndecl_64366 register_address fndecl 0-2 64366 NULL
144677 +disable_so_ipath_guid_ipath_devdata_64367 ipath_guid ipath_devdata 0 64367 NULL
144678 +disable_so_dma_address_edgeport_port_64376 dma_address edgeport_port 0 64376 NULL
144679 +disable_so_tlb_rd_addr_vlv_s0ix_state_64377 tlb_rd_addr vlv_s0ix_state 0 64377 NULL
144680 +disable_so_br_mdb_rehash_fndecl_64384 br_mdb_rehash fndecl 2 64384 NULL
144681 +disable_so_irq_ti_tscadc_dev_64390 irq ti_tscadc_dev 0 64390 NULL
144682 +disable_so_rh_hash_fndecl_64392 rh_hash fndecl 0-2 64392 NULL
144683 +disable_so_addr_Vmxnet3_RxDesc_64395 addr Vmxnet3_RxDesc 0 64395 NULL
144684 +disable_so_wptr_gpu_addr_kernel_queue_64396 wptr_gpu_addr kernel_queue 0 64396 NULL
144685 +disable_so__regmap_raw_write_fndecl_64399 _regmap_raw_write fndecl 2-4-0 64399 NULL
144686 +disable_so_crypto_ahash_walk_first_fndecl_64405 crypto_ahash_walk_first fndecl 0 64405 NULL
144687 +disable_so_host_start_efx_ptp_timeset_64407 host_start efx_ptp_timeset 0 64407 NULL
144688 +disable_so___compat_put_timeval_fndecl_64422 __compat_put_timeval fndecl 0 64422 NULL nohasharray
144689 +disable_so_img_ir_timings_preprocess_fndecl_64422 img_ir_timings_preprocess fndecl 2 64422 &disable_so___compat_put_timeval_fndecl_64422
144690 +disable_so_addr_sst_byt_address_info_64439 addr sst_byt_address_info 0 64439 NULL nohasharray
144691 +disable_so_hashhi_smsc911x_data_64439 hashhi smsc911x_data 0 64439 &disable_so_addr_sst_byt_address_info_64439
144692 +disable_so_do_set_clk_freq_fndecl_64447 do_set_clk_freq fndecl 2 64447 NULL
144693 +disable_so_sctp_bind_addr_dup_fndecl_64448 sctp_bind_addr_dup fndecl 3 64448 NULL
144694 +disable_so_rtsc_init_fndecl_64458 rtsc_init fndecl 3-4 64458 NULL
144695 +disable_so_bg_inode_bitmap_ext3_group_desc_64471 bg_inode_bitmap ext3_group_desc 0 64471 NULL
144696 +disable_so_qla8044_wr_reg_indirect_fndecl_64475 qla8044_wr_reg_indirect fndecl 2-3 64475 NULL
144697 +disable_so_switch_time_wl18xx_cmd_channel_switch_64491 switch_time wl18xx_cmd_channel_switch 0 64491 NULL
144698 +disable_so_address_acpi_table_desc_64497 address acpi_table_desc 0 64497 NULL
144699 +disable_so_loading_timeout_vardecl_firmware_class_c_64498 loading_timeout vardecl_firmware_class.c 0 64498 NULL nohasharray
144700 +disable_so_ceph_aes_encrypt_fndecl_64498 ceph_aes_encrypt fndecl 2-6 64498 &disable_so_loading_timeout_vardecl_firmware_class_c_64498
144701 +disable_so_xfrm_state_addr_cmp_fndecl_64504 xfrm_state_addr_cmp fndecl 3 64504 NULL
144702 +disable_so_gc_timer_value___bridge_info_64506 gc_timer_value __bridge_info 0 64506 NULL
144703 +disable_so_x25_addr_aton_fndecl_64507 x25_addr_aton fndecl 0 64507 NULL
144704 +disable_so_nci_request_fndecl_64508 nci_request fndecl 0-4 64508 NULL
144705 +disable_so_ufs_get_de_namlen_fndecl_64510 ufs_get_de_namlen fndecl 0 64510 NULL
144706 +disable_so_crypto_blkcipher_encrypt_iv_fndecl_64517 crypto_blkcipher_encrypt_iv fndecl 0-4 64517 NULL
144707 +disable_so_bfa_fcs_lport_ns_gid_ft_response_fndecl_64527 bfa_fcs_lport_ns_gid_ft_response fndecl 4-5-6 64527 NULL
144708 +disable_so_memtype_devlog_memaddr16_devlog_fw_devlog_cmd_64529 memtype_devlog_memaddr16_devlog fw_devlog_cmd 0 64529 NULL
144709 +disable_so_osc_clock_deviation_drxd_state_64533 osc_clock_deviation drxd_state 0 64533 NULL
144710 +disable_so_mwl8k_cmd_del_mac_addr_fndecl_64540 mwl8k_cmd_del_mac_addr fndecl 0 64540 NULL
144711 +disable_so_sysctl_llc2_ack_timeout_vardecl_64541 sysctl_llc2_ack_timeout vardecl 0 64541 NULL
144712 +disable_so_dm_hash_init_fndecl_64547 dm_hash_init fndecl 0 64547 NULL
144713 +disable_so_setup_cluster_bitmap_fndecl_64549 setup_cluster_bitmap fndecl 4-5-6-7 64549 NULL
144714 +disable_so_regcache_rbtree_get_register_fndecl_64551 regcache_rbtree_get_register fndecl 0-3 64551 NULL
144715 +disable_so_seq_put_decimal_ll_fndecl_64554 seq_put_decimal_ll fndecl 3 64554 NULL
144716 +disable_so_do_timerfd_gettime_fndecl_64594 do_timerfd_gettime fndecl 1 64594 NULL
144717 +disable_so_ctrl_addr___cache_64596 ctrl_addr __cache 0 64596 NULL
144718 +disable_so_writepage_address_space_operations_64597 writepage address_space_operations 0 64597 NULL
144719 +disable_so_hcd_pci_runtime_suspend_fndecl_64602 hcd_pci_runtime_suspend fndecl 0 64602 NULL
144720 +disable_so_maxadj_clocksource_64615 maxadj clocksource 0 64615 NULL nohasharray
144721 +disable_so_delay_lms283gf05_seq_64615 delay lms283gf05_seq 0 64615 &disable_so_maxadj_clocksource_64615
144722 +disable_so_stv0900_get_lock_timeout_fndecl_64620 stv0900_get_lock_timeout fndecl 3 64620 NULL
144723 +disable_so_clk_div_tifm_sd_64621 clk_div tifm_sd 0 64621 NULL
144724 +disable_so_sleep_dvb_frontend_ops_64644 sleep dvb_frontend_ops 0 64644 NULL
144725 +disable_so_tuner_addr_au0828_board_64647 tuner_addr au0828_board 0 64647 NULL
144726 +disable_so_ds1305_get_time_fndecl_64652 ds1305_get_time fndecl 0 64652 NULL
144727 +disable_so_efx_soft_enable_interrupts_fndecl_64659 efx_soft_enable_interrupts fndecl 0 64659 NULL
144728 +disable_so_elements_bitmap_ip_64674 elements bitmap_ip 0 64674 NULL
144729 +disable_so_pcf8563_get_datetime_fndecl_64678 pcf8563_get_datetime fndecl 0 64678 NULL
144730 +disable_so_buf_dma_addr_slgt_desc_64694 buf_dma_addr slgt_desc 0 64694 NULL
144731 +disable_so_twl_aen_sync_time_fndecl_64703 twl_aen_sync_time fndecl 2 64703 NULL
144732 +disable_so_exit_signal_task_struct_64705 exit_signal task_struct 0 64705 NULL
144733 +disable_so_wm8804_runtime_resume_fndecl_64707 wm8804_runtime_resume fndecl 0 64707 NULL
144734 +disable_so_adis16334_set_freq_fndecl_64712 adis16334_set_freq fndecl 0 64712 NULL
144735 +disable_so_menf21bmc_wdt_settimeout_fndecl_64721 menf21bmc_wdt_settimeout fndecl 2-0 64721 NULL
144736 +disable_so_sec_pps_ktime_64728 sec pps_ktime 0 64728 NULL nohasharray
144737 +disable_so_virtual_tsc_khz_kvm_vcpu_arch_64728 virtual_tsc_khz kvm_vcpu_arch 0 64728 &disable_so_sec_pps_ktime_64728
144738 +disable_so_set_timeout_fndecl_64741 set_timeout fndecl 1 64741 NULL
144739 +disable_so_posix_timer_by_id_fndecl_64744 posix_timer_by_id fndecl 1 64744 NULL
144740 +disable_so_sclk_fb_div_pll_ct_64751 sclk_fb_div pll_ct 0 64751 NULL nohasharray
144741 +disable_so_add_msr_offset_fndecl_64751 add_msr_offset fndecl 1 64751 &disable_so_sclk_fb_div_pll_ct_64751
144742 +disable_so_il_get_active_dwell_time_fndecl_64753 il_get_active_dwell_time fndecl 0-3 64753 NULL
144743 +disable_so_crypto_cbc_decrypt_inplace_fndecl_64755 crypto_cbc_decrypt_inplace fndecl 0 64755 NULL
144744 +disable_so_undertime_cbq_class_64773 undertime cbq_class 0 64773 NULL nohasharray
144745 +disable_so_beacon_time_iwl_mac_data_ap_64773 beacon_time iwl_mac_data_ap 0 64773 &disable_so_undertime_cbq_class_64773
144746 +disable_so_gpio_to_desc_fndecl_64785 gpio_to_desc fndecl 1 64785 NULL nohasharray
144747 +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
144748 +disable_so_cherryview_rps_rpe_freq_fndecl_64792 cherryview_rps_rpe_freq fndecl 0 64792 NULL
144749 +disable_so_phys_addr_matrox_device_64795 phys_addr matrox_device 0 64795 NULL
144750 +disable_so_iwl_mvm_time_event_send_add_fndecl_64805 iwl_mvm_time_event_send_add fndecl 0 64805 NULL nohasharray
144751 +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
144752 +disable_so_hub_set_address_fndecl_64806 hub_set_address fndecl 2 64806 NULL
144753 +disable_so_tegra_slink_runtime_resume_fndecl_64822 tegra_slink_runtime_resume fndecl 0 64822 NULL
144754 +disable_so_head_hashfn_fndecl_64825 head_hashfn fndecl 0 64825 NULL
144755 +disable_so_time_queue_snd_seq_client_port_64827 time_queue snd_seq_client_port 0 64827 NULL
144756 +disable_so_bitmap_clear_ll_fndecl_64837 bitmap_clear_ll fndecl 0-2-3 64837 NULL
144757 +disable_so_dma_beacon_response_time_ath9k_ops_config_64844 dma_beacon_response_time ath9k_ops_config 0 64844 NULL
144758 +disable_so_aic_cal_start_time_ath9k_hw_aic_64848 aic_cal_start_time ath9k_hw_aic 0 64848 NULL
144759 +disable_so_dram_freq_ast2300_dram_param_64872 dram_freq ast2300_dram_param 0 64872 NULL
144760 +disable_so_uv_rtc_unset_timer_fndecl_64879 uv_rtc_unset_timer fndecl 1 64879 NULL
144761 +disable_so_xclkpagefaultdelay_pll_ct_64883 xclkpagefaultdelay pll_ct 0 64883 NULL
144762 +disable_so_ipvs_mt_addrcmp_fndecl_64884 ipvs_mt_addrcmp fndecl 4 64884 NULL
144763 +disable_so_base_addr_adf_bar_64885 base_addr adf_bar 0 64885 NULL
144764 +disable_so_ctimensec_fuse_attr_64891 ctimensec fuse_attr 0 64891 NULL
144765 +disable_so_ims_pcu_ofn_bit_show_fndecl_64893 ims_pcu_ofn_bit_show fndecl 0 64893 NULL
144766 +disable_so_regvalue__pll_div_64897 regvalue _pll_div 0 64897 NULL
144767 +disable_so_mode_ata_timing_64902 mode ata_timing 0 64902 NULL
144768 +disable_so_size_mtrr_sentry_64908 size mtrr_sentry 0 64908 NULL
144769 +disable_so_i2c_addr_dibx000_i2c_master_64923 i2c_addr dibx000_i2c_master 0 64923 NULL
144770 +disable_so_go7007_usb_read_interrupt_fndecl_64943 go7007_usb_read_interrupt fndecl 0 64943 NULL
144771 +disable_so_db_page_addr_ocrdma_create_srq_uresp_64946 db_page_addr ocrdma_create_srq_uresp 0 64946 NULL
144772 +disable_so_resolution_snd_timer_hardware_64953 resolution snd_timer_hardware 0 64953 NULL
144773 +disable_so___virt_addr_valid_fndecl_64955 __virt_addr_valid fndecl 1 64955 NULL
144774 +disable_so_nilfs_btree_insert_fndecl_64974 nilfs_btree_insert fndecl 0-2 64974 NULL
144775 +disable_so_nearest_clock_vml_sys_64980 nearest_clock vml_sys 2-0 64980 NULL
144776 +disable_so_crypto_cmac_module_init_fndecl_64981 crypto_cmac_module_init fndecl 0 64981 NULL
144777 +disable_so_cx23885_set_freq_via_ops_fndecl_64991 cx23885_set_freq_via_ops fndecl 0 64991 NULL
144778 +disable_so_hfdiv_code_dib0090_pll_64992 hfdiv_code dib0090_pll 0 64992 NULL
144779 +disable_so_phonet_address_get_fndecl_65002 phonet_address_get fndecl 0-2 65002 NULL
144780 +disable_so_xtime_sec_timekeeper_65003 xtime_sec timekeeper 0 65003 NULL
144781 +disable_so_fll_outdiv__fll_div_65007 fll_outdiv _fll_div 0 65007 NULL
144782 +disable_so_spi_max_frequency_ti_qspi_65008 spi_max_frequency ti_qspi 0 65008 NULL
144783 +disable_so_switch_time_iwl6000_channel_switch_cmd_65010 switch_time iwl6000_channel_switch_cmd 0 65010 NULL
144784 +disable_so_timeout_usdhi6_host_65012 timeout usdhi6_host 0 65012 NULL nohasharray
144785 +disable_so_dirtied_time_when_inode_65012 dirtied_time_when inode 0 65012 &disable_so_timeout_usdhi6_host_65012
144786 +disable_so_sys_settimeofday_fndecl_65021 sys_settimeofday fndecl 0 65021 NULL
144787 +disable_so_dummy_clock_read_fndecl_65029 dummy_clock_read fndecl 0 65029 NULL
144788 +disable_so_bitmap_load_fndecl_65032 bitmap_load fndecl 0 65032 NULL
144789 +disable_so_crypto_register_aead_fndecl_65065 crypto_register_aead fndecl 0 65065 NULL
144790 +disable_so_clock_frequency_sc18is602_platform_data_65066 clock_frequency sc18is602_platform_data 0 65066 NULL
144791 +disable_so_zd1201_get_freq_fndecl_65079 zd1201_get_freq fndecl 0 65079 NULL
144792 +disable_so_test_bitmaps_fndecl_65080 test_bitmaps fndecl 0 65080 NULL
144793 +disable_so_before_ctime_nsec_nfsd4_change_info_65085 before_ctime_nsec nfsd4_change_info 0 65085 NULL
144794 +disable_so_evtbd_addr_lo_host_cmd_ds_pcie_details_65086 evtbd_addr_lo host_cmd_ds_pcie_details 0 65086 NULL
144795 +disable_so_cursor_addr_gma_crtc_65091 cursor_addr gma_crtc 0 65091 NULL
144796 +disable_so_atomic_set_property_drm_crtc_funcs_65096 atomic_set_property drm_crtc_funcs 0-4 65096 NULL
144797 +disable_so_add_timer_on_fndecl_65097 add_timer_on fndecl 2 65097 NULL
144798 +disable_so_ccp_sha_final_fndecl_65104 ccp_sha_final fndecl 0 65104 NULL
144799 +disable_so_ip_vs_dbg_addr_fndecl_65105 ip_vs_dbg_addr fndecl 1 65105 NULL
144800 +disable_so_gl_hold_time_gfs2_glock_65107 gl_hold_time gfs2_glock 0 65107 NULL
144801 +disable_so_crypto_shash_update_fndecl_65113 crypto_shash_update fndecl 0-3 65113 NULL
144802 +disable_so_sleep_wake_pci_platform_pm_ops_65121 sleep_wake pci_platform_pm_ops 0 65121 NULL
144803 +disable_so_snd_hdsp_info_clock_source_fndecl_65123 snd_hdsp_info_clock_source fndecl 0 65123 NULL
144804 +disable_so_trace_clock_global_fndecl_65145 trace_clock_global fndecl 0 65145 NULL
144805 +disable_so_timestamp_iwl_rx_phy_info_65153 timestamp iwl_rx_phy_info 0 65153 NULL
144806 +disable_so_d_btimer_xfs_disk_dquot_65155 d_btimer xfs_disk_dquot 0 65155 NULL
144807 +disable_so_mthca_mr_alloc_phys_fndecl_65161 mthca_mr_alloc_phys fndecl 7-5-2-4-0 65161 NULL
144808 +disable_so_var_to_timing_fndecl_65170 var_to_timing fndecl 2-3 65170 NULL
144809 +disable_so_p2div_pmu1_plltab_entry_65173 p2div pmu1_plltab_entry 0 65173 NULL nohasharray
144810 +disable_so_kszphy_ack_interrupt_fndecl_65173 kszphy_ack_interrupt fndecl 0 65173 &disable_so_p2div_pmu1_plltab_entry_65173
144811 +disable_so_timeout_mgsl_struct_65176 timeout mgsl_struct 0 65176 NULL nohasharray
144812 +disable_so_amd_uncore_attr_show_cpumask_fndecl_65176 amd_uncore_attr_show_cpumask fndecl 0 65176 &disable_so_timeout_mgsl_struct_65176
144813 +disable_so_padata_register_cpumask_notifier_fndecl_65178 padata_register_cpumask_notifier fndecl 0 65178 NULL
144814 +disable_so_bit_clear_fndecl_65181 bit_clear fndecl 3-4-5-6 65181 NULL
144815 +disable_so_addr_wil_fw_data_gw4_65184 addr wil_fw_data_gw4 0 65184 NULL
144816 +disable_so_phy_addr_skge_hw_65197 phy_addr skge_hw 0 65197 NULL
144817 +disable_so_xen_cpuid_xenpf_pcpuinfo_65200 xen_cpuid xenpf_pcpuinfo 0 65200 NULL
144818 +disable_so_vsync_v4l2_bt_timings_65208 vsync v4l2_bt_timings 0 65208 NULL nohasharray
144819 +disable_so_vmcb_msrpm_nested_state_65208 vmcb_msrpm nested_state 0 65208 &disable_so_vsync_v4l2_bt_timings_65208
144820 +disable_so_determine_event_timeout_rsi_hw_65216 determine_event_timeout rsi_hw 0 65216 NULL
144821 +disable_so_rax_kvm_regs_65218 rax kvm_regs 0 65218 NULL
144822 +disable_so_tms_utime_compat_tms_65221 tms_utime compat_tms 0 65221 NULL
144823 +disable_so_ip_vs_ftp_get_addrport_fndecl_65224 ip_vs_ftp_get_addrport fndecl 4 65224 NULL
144824 +disable_so_dclk_radeon_uvd_clock_voltage_dependency_entry_65235 dclk radeon_uvd_clock_voltage_dependency_entry 0 65235 NULL
144825 +disable_so_sin6_port_sockaddr_in6_65238 sin6_port sockaddr_in6 0 65238 NULL
144826 +disable_so_mtrr_del_page_fndecl_65239 mtrr_del_page fndecl 2-3 65239 NULL
144827 +disable_so_timestamp_sec_rt2x00dump_hdr_65245 timestamp_sec rt2x00dump_hdr 0 65245 NULL
144828 +disable_so_snd_interval_mulkdiv_fndecl_65264 snd_interval_mulkdiv fndecl 2 65264 NULL
144829 +disable_so_ktime_sec_timekeeper_65270 ktime_sec timekeeper 0 65270 NULL nohasharray
144830 +disable_so_pid_fcgs_gidft_resp_s_65270 pid fcgs_gidft_resp_s 0 65270 &disable_so_ktime_sec_timekeeper_65270
144831 +disable_so_mmc_set_signal_voltage_fndecl_65277 mmc_set_signal_voltage fndecl 0-3 65277 NULL
144832 +disable_so_addr_lo_pm4_query_status_65283 addr_lo pm4_query_status 0 65283 NULL
144833 +disable_so_wep_interrupt_read_fndecl_65287 wep_interrupt_read fndecl 3-0 65287 NULL
144834 +disable_so_timeout_qib_qp_65289 timeout qib_qp 0 65289 NULL
144835 +disable_so_cpuid_edx_fndecl_65291 cpuid_edx fndecl 0 65291 NULL
144836 +disable_so_q2_addr_high_nes_qp_context_65298 q2_addr_high nes_qp_context 0 65298 NULL
144837 +disable_so_addr_f7188x_sio_65304 addr f7188x_sio 0 65304 NULL
144838 +disable_so_st_mtime___old_kernel_stat_65306 st_mtime __old_kernel_stat 0 65306 NULL
144839 +disable_so_radeon_fence_wait_seq_timeout_fndecl_65307 radeon_fence_wait_seq_timeout fndecl 4-0 65307 NULL
144840 +disable_so_runtime_suspend_power_mode_cyapa_65317 runtime_suspend_power_mode cyapa 0 65317 NULL
144841 +disable_so_ieee80211_crypto_ccmp_encrypt_fndecl_65319 ieee80211_crypto_ccmp_encrypt fndecl 2 65319 NULL
144842 +disable_so_bbaddr_drm_i915_error_ring_65323 bbaddr drm_i915_error_ring 0 65323 NULL
144843 +disable_so_nmi_timer_stop_cpu_fndecl_65325 nmi_timer_stop_cpu fndecl 1 65325 NULL
144844 +disable_so_crypto_aead_encrypt_fndecl_65326 crypto_aead_encrypt fndecl 0 65326 NULL
144845 +disable_so_d_rtbtimer_fs_disk_quota_65332 d_rtbtimer fs_disk_quota 0 65332 NULL
144846 +disable_so_si_calculate_cac_wintime_fndecl_65336 si_calculate_cac_wintime fndecl 0 65336 NULL
144847 +disable_so_baseaddr_l_mvumi_sgl_65375 baseaddr_l mvumi_sgl 0 65375 NULL
144848 +disable_so_current_flash_timeout_max77693_led_device_65379 current_flash_timeout max77693_led_device 0 65379 NULL
144849 +disable_so_shunt_div_ina2xx_config_65385 shunt_div ina2xx_config 0 65385 NULL
144850 +disable_so_waiting_set_timer_fndecl_65387 waiting_set_timer fndecl 2 65387 NULL
144851 +disable_so_tms_cutime_tms_65396 tms_cutime tms 0 65396 NULL
144852 +disable_so_wl1271_acx_rx_msdu_life_time_fndecl_65398 wl1271_acx_rx_msdu_life_time fndecl 0 65398 NULL
144853 +disable_so_phy_addr_ax88172a_private_65403 phy_addr ax88172a_private 0 65403 NULL
144854 +disable_so_vm_exit_msr_store_addr_vmcs12_65409 vm_exit_msr_store_addr vmcs12 0 65409 NULL
144855 +disable_so_reorder_timeout_l2tp_session_cfg_65412 reorder_timeout l2tp_session_cfg 0 65412 NULL nohasharray
144856 +disable_so_bit_spin_lock_fndecl_65412 bit_spin_lock fndecl 1 65412 &disable_so_reorder_timeout_l2tp_session_cfg_65412
144857 +disable_so_data_address_mspro_param_register_65413 data_address mspro_param_register 0 65413 NULL
144858 +disable_so_addr_hwsq_reg_65417 addr hwsq_reg 0 65417 NULL
144859 +disable_so_nla_put_u64_fndecl_65419 nla_put_u64 fndecl 3-0 65419 NULL
144860 +disable_so_dma_addr_vb2_dc_buf_65420 dma_addr vb2_dc_buf 0 65420 NULL
144861 +disable_so_snd_timer_stop_fndecl_65441 snd_timer_stop fndecl 0 65441 NULL
144862 +disable_so_down_timeout_fndecl_65445 down_timeout fndecl 2-0 65445 NULL
144863 +disable_so_sys_timer_gettime_fndecl_65465 sys_timer_gettime fndecl 1 65465 NULL
144864 +disable_so_pnp_printf_fndecl_65468 pnp_printf fndecl 0 65468 NULL
144865 +disable_so_write_reg_cc770_priv_65479 write_reg cc770_priv 3 65479 NULL
144866 +disable_so_create_time_stateowner_id_65480 create_time stateowner_id 0 65480 NULL
144867 +disable_so_q2_addr_low_nes_qp_context_65481 q2_addr_low nes_qp_context 0 65481 NULL
144868 +disable_so_nvme_io_timeout_vardecl_65489 nvme_io_timeout vardecl 0 65489 NULL nohasharray
144869 +disable_so_index_nilfs_btree_readahead_info_65489 index nilfs_btree_readahead_info 0 65489 &disable_so_nvme_io_timeout_vardecl_65489
144870 +disable_so_i_uid_f2fs_inode_65496 i_uid f2fs_inode 0 65496 NULL
144871 +disable_so_enc_cd_paddr_qat_alg_aead_ctx_65505 enc_cd_paddr qat_alg_aead_ctx 0 65505 NULL
144872 +disable_so_s5m_rtc_set_time_fndecl_65518 s5m_rtc_set_time fndecl 0 65518 NULL
144873 +disable_so_addr_w83627hf_data_65526 addr w83627hf_data 0 65526 NULL
144874 +disable_so_si_pt_regs_65527 si pt_regs 0 65527 NULL
144875 +enable_so_rts_threshold_wiphy_15170 rts_threshold wiphy 0 15170 NULL
144876 +enable_so_value_iw_param_65472 value iw_param 0 65472 NULL
144877 +enable_so_value_acpi_object_integer_44755 value acpi_object_integer 0 44755 NULL
144878 +enable_so_idx_ieee80211_tx_rate_64646 idx ieee80211_tx_rate 0 64646 NULL
144879 +enable_so_rs_get_adjacent_rate_fndecl_28334 rs_get_adjacent_rate fndecl 0-2 28334 NULL
144880 +enable_so_index_rs_rate_53 index rs_rate 0 53 NULL
144881 +enable_so_l1_xfs_bmbt_rec_host_22094 l1 xfs_bmbt_rec_host 0 22094 NULL
144882 +enable_so_l0_xfs_bmbt_rec_host_34805 l0 xfs_bmbt_rec_host 0 34805 NULL
144883 +enable_so_max_scsi_cmds_megasas_instance_35835 max_scsi_cmds megasas_instance 0 35835 NULL
144884 +enable_so_throttlequeuedepth_megasas_instance_42316 throttlequeuedepth megasas_instance 0 42316 NULL
144885 +enable_so_max_fw_cmds_megasas_instance_53309 max_fw_cmds megasas_instance 0 53309 NULL
144886 +enable_so_max_num_sge_megasas_instance_55755 max_num_sge megasas_instance 0 55755 NULL
144887 +enable_so_max_sectors_per_req_megasas_instance_56408 max_sectors_per_req megasas_instance 0 56408 NULL
144888 +enable_so_max_mfi_cmds_megasas_instance_19731 max_mfi_cmds megasas_instance 0 19731 NULL
144889 +enable_so_read_fw_status_reg_megasas_instance_template_13572 read_fw_status_reg megasas_instance_template 0 13572 NULL
144890 +enable_so_eip_x86_emulate_ctxt_12354 eip x86_emulate_ctxt 0 12354 NULL
144891 +enable_so_next_rip_x86_instruction_info_56868 next_rip x86_instruction_info 0 56868 NULL
144892 diff --git a/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh b/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh
144893 new file mode 100644
144894 index 0000000..be9724d
144895 --- /dev/null
144896 +++ b/tools/gcc/size_overflow_plugin/generate_size_overflow_hash.sh
144897 @@ -0,0 +1,103 @@
144898 +#!/bin/bash
144899 +
144900 +# This script generates the hash table (size_overflow_hash.h) for the size_overflow gcc plugin (size_overflow_plugin.c).
144901 +
144902 +header1="size_overflow_hash.h"
144903 +database="size_overflow_hash.data"
144904 +n=65536
144905 +hashtable_name="size_overflow_hash"
144906 +
144907 +usage() {
144908 +cat <<EOF
144909 +usage: $0 options
144910 +OPTIONS:
144911 + -h|--help help
144912 + -o header file
144913 + -d database file
144914 + -n hash array size
144915 + -s name of the hash table
144916 +EOF
144917 + return 0
144918 +}
144919 +
144920 +while true
144921 +do
144922 + case "$1" in
144923 + -h|--help) usage && exit 0;;
144924 + -n) n=$2; shift 2;;
144925 + -o) header1="$2"; shift 2;;
144926 + -d) database="$2"; shift 2;;
144927 + -s) hashtable_name="$2"; shift 2;;
144928 + --) shift 1; break ;;
144929 + *) break ;;
144930 + esac
144931 +done
144932 +
144933 +create_defines() {
144934 + for i in `seq 0 31`
144935 + do
144936 + echo -e "#define PARAM"$i" (1U << "$i")" >> "$header1"
144937 + done
144938 + echo >> "$header1"
144939 +}
144940 +
144941 +create_structs() {
144942 + rm -f "$header1"
144943 +
144944 + create_defines
144945 +
144946 + cat "$database" | while read data
144947 + do
144948 + data_array=($data)
144949 + struct_hash_name="${data_array[0]}"
144950 + funcn="${data_array[1]}"
144951 + context="${data_array[2]}"
144952 + params="${data_array[3]}"
144953 + next="${data_array[5]}"
144954 +
144955 + echo "const struct size_overflow_hash $struct_hash_name = {" >> "$header1"
144956 +
144957 + echo -e "\t.next\t= $next,\n\t.name\t= \"$funcn\",\n\t.context\t= \"$context\"," >> "$header1"
144958 + echo -en "\t.param\t= " >> "$header1"
144959 + line=
144960 + for param_num in ${params//-/ };
144961 + do
144962 + line="${line}PARAM"$param_num"|"
144963 + done
144964 +
144965 + echo -e "${line%?},\n};\n" >> "$header1"
144966 + done
144967 +}
144968 +
144969 +create_headers() {
144970 + echo "const struct size_overflow_hash * const $hashtable_name[$n] = {" >> "$header1"
144971 +}
144972 +
144973 +create_array_elements() {
144974 + index=0
144975 + grep -v "nohasharray" $database | sort -n -k 5 | while read data
144976 + do
144977 + data_array=($data)
144978 + i="${data_array[4]}"
144979 + hash="${data_array[0]}"
144980 + while [[ $index -lt $i ]]
144981 + do
144982 + echo -e "\t["$index"]\t= NULL," >> "$header1"
144983 + index=$(($index + 1))
144984 + done
144985 + index=$(($index + 1))
144986 + echo -e "\t["$i"]\t= &"$hash"," >> "$header1"
144987 + done
144988 + echo '};' >> $header1
144989 +}
144990 +
144991 +size_overflow_plugin_dir=`dirname $header1`
144992 +if [ "$size_overflow_plugin_dir" != '.' ]; then
144993 + mkdir -p "$size_overflow_plugin_dir" 2> /dev/null
144994 +fi
144995 +
144996 +create_structs
144997 +create_headers
144998 +create_array_elements
144999 +
145000 +exit 0
145001 diff --git a/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c b/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c
145002 new file mode 100644
145003 index 0000000..37e2e91
145004 --- /dev/null
145005 +++ b/tools/gcc/size_overflow_plugin/insert_size_overflow_asm.c
145006 @@ -0,0 +1,416 @@
145007 +/*
145008 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
145009 + * Licensed under the GPL v2, or (at your option) v3
145010 + *
145011 + * Homepage:
145012 + * https://github.com/ephox-gcc-plugins/size_overflow
145013 + *
145014 + * Documentation:
145015 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
145016 + *
145017 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
145018 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
145019 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
145020 + *
145021 + * Usage:
145022 + * $ make
145023 + * $ make run
145024 + */
145025 +
145026 +#include "size_overflow.h"
145027 +
145028 +// Data for the size_overflow asm stmt
145029 +struct asm_data {
145030 + // call or return stmt with our attributes
145031 + gimple target_stmt;
145032 + // def_stmt of the marked arg
145033 + gimple def_stmt;
145034 + // size_overflow asm rhs
145035 + tree input;
145036 + // the output (lhs) of the size_overflow asm is the marked arg
145037 + tree output;
145038 + // marked arg number (0 for return values)
145039 + unsigned int argnum;
145040 + // intentional mark type
145041 + enum intentional_mark intentional_mark;
145042 +};
145043 +
145044 +static void __unused print_asm_data(struct asm_data *asm_data)
145045 +{
145046 + fprintf(stderr, "-----------------------\nprint_asm_data:\n");
145047 +
145048 + fprintf(stderr, "def_stmt\n");
145049 + debug_gimple_stmt(asm_data->def_stmt);
145050 + fprintf(stderr, "target_stmt\n");
145051 + debug_gimple_stmt(asm_data->target_stmt);
145052 + fprintf(stderr, "output\n");
145053 + debug_tree(asm_data->output);
145054 + fprintf(stderr, "input\n");
145055 + debug_tree(asm_data->input);
145056 +}
145057 +
145058 +static const char *convert_mark_to_str(enum intentional_mark mark)
145059 +{
145060 + switch (mark) {
145061 + case MARK_NO:
145062 + return OK_ASM_STR;
145063 + case MARK_YES:
145064 + return YES_ASM_STR;
145065 + case MARK_END_INTENTIONAL:
145066 + return END_INTENTIONAL_ASM_STR;
145067 + case MARK_TURN_OFF:
145068 + return TURN_OFF_ASM_STR;
145069 + }
145070 + gcc_unreachable();
145071 +}
145072 +
145073 +static char *create_asm_comment(struct asm_data *asm_data, const char *mark_str)
145074 +{
145075 + const char *fn_name;
145076 + char *asm_comment;
145077 + unsigned int len;
145078 +
145079 + if (gimple_code(asm_data->target_stmt) == GIMPLE_RETURN)
145080 + fn_name = DECL_NAME_POINTER(current_function_decl);
145081 + else
145082 + fn_name = DECL_NAME_POINTER(gimple_call_fndecl(asm_data->target_stmt));
145083 +
145084 + len = asprintf(&asm_comment, "%s %s %u", mark_str, fn_name, asm_data->argnum);
145085 + gcc_assert(len > 0);
145086 +
145087 + return asm_comment;
145088 +}
145089 +
145090 +#if BUILDING_GCC_VERSION <= 4007
145091 +static VEC(tree, gc) *create_asm_io_list(tree string, tree io)
145092 +#else
145093 +static vec<tree, va_gc> *create_asm_io_list(tree string, tree io)
145094 +#endif
145095 +{
145096 + tree list;
145097 +#if BUILDING_GCC_VERSION <= 4007
145098 + VEC(tree, gc) *vec_list = NULL;
145099 +#else
145100 + vec<tree, va_gc> *vec_list = NULL;
145101 +#endif
145102 +
145103 + list = build_tree_list(NULL_TREE, string);
145104 + list = chainon(NULL_TREE, build_tree_list(list, io));
145105 +#if BUILDING_GCC_VERSION <= 4007
145106 + VEC_safe_push(tree, gc, vec_list, list);
145107 +#else
145108 + vec_safe_push(vec_list, list);
145109 +#endif
145110 + return vec_list;
145111 +}
145112 +
145113 +static void create_so_asm_stmt(struct asm_data *asm_data)
145114 +{
145115 + char *asm_comment;
145116 + const char *mark_str;
145117 + gasm *asm_stmt;
145118 + gimple_stmt_iterator gsi;
145119 + tree str_input, str_output;
145120 +#if BUILDING_GCC_VERSION <= 4007
145121 + VEC(tree, gc) *input = NULL, *output = NULL;
145122 +#else
145123 + vec<tree, va_gc> *input = NULL, *output = NULL;
145124 +#endif
145125 +
145126 + mark_str = convert_mark_to_str(asm_data->intentional_mark);
145127 + asm_comment = create_asm_comment(asm_data, mark_str);
145128 +
145129 + str_input = build_string(2, "0");
145130 + input = create_asm_io_list(str_input, asm_data->input);
145131 + str_output = build_string(4, "=rm");
145132 + output = create_asm_io_list(str_output, asm_data->output);
145133 +
145134 + asm_stmt = as_a_gasm(gimple_build_asm_vec(asm_comment, input, output, NULL, NULL));
145135 + gimple_asm_set_volatile(asm_stmt, true);
145136 +
145137 + gsi = gsi_for_stmt(asm_data->def_stmt);
145138 + gsi_insert_after(&gsi, asm_stmt, GSI_NEW_STMT);
145139 +
145140 + SSA_NAME_DEF_STMT(asm_data->output) = asm_stmt;
145141 +
145142 + free(asm_comment);
145143 +}
145144 +
145145 +static void check_size_overflow_asm(struct asm_data *asm_data)
145146 +{
145147 + enum intentional_mark old_intentional_mark = get_so_asm_type(asm_data->def_stmt);
145148 +
145149 + if (old_intentional_mark == asm_data->intentional_mark)
145150 + return;
145151 + if (asm_data->intentional_mark == MARK_NO)
145152 + return;
145153 +
145154 + print_intentional_mark(old_intentional_mark);
145155 + print_intentional_mark(asm_data->intentional_mark);
145156 + gcc_unreachable();
145157 +}
145158 +
145159 +static tree get_so_asm_output(struct asm_data *asm_data)
145160 +{
145161 + gimple stmt = asm_data->target_stmt;
145162 + unsigned int argnum = asm_data->argnum;
145163 +
145164 + switch (gimple_code(stmt)) {
145165 + case GIMPLE_RETURN:
145166 + gcc_assert(argnum == 0);
145167 + return gimple_return_retval(as_a_greturn(stmt));
145168 + case GIMPLE_CALL:
145169 + gcc_assert(argnum != 0);
145170 + gcc_assert(gimple_call_num_args(stmt) >= argnum);
145171 + return gimple_call_arg(stmt, argnum - 1);
145172 + default:
145173 + debug_gimple_stmt(stmt);
145174 + gcc_unreachable();
145175 + }
145176 +}
145177 +
145178 +static tree get_so_asm_input(struct asm_data *asm_data)
145179 +{
145180 + gassign *assign;
145181 + tree output_type, new_var;
145182 + gimple_stmt_iterator gsi;
145183 +
145184 + output_type = TREE_TYPE(asm_data->output);
145185 + new_var = create_new_var(output_type);
145186 +
145187 + assign = gimple_build_assign(new_var, asm_data->output);
145188 + gimple_assign_set_lhs(assign, make_ssa_name(new_var, assign));
145189 +
145190 + gsi = gsi_for_stmt(asm_data->target_stmt);
145191 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
145192 +
145193 + asm_data->def_stmt = assign;
145194 +
145195 + new_var = create_new_var(output_type);
145196 + asm_data->output = make_ssa_name(new_var, asm_data->target_stmt);
145197 +
145198 + return gimple_assign_lhs(assign);
145199 +}
145200 +
145201 +static void set_so_asm_input_target_stmt(struct asm_data *asm_data)
145202 +{
145203 + switch (gimple_code(asm_data->target_stmt)) {
145204 + case GIMPLE_CALL:
145205 + gimple_call_set_arg(asm_data->target_stmt, asm_data->argnum - 1, asm_data->output);
145206 + break;
145207 + case GIMPLE_RETURN:
145208 + gimple_return_set_retval(as_a_greturn(asm_data->target_stmt), asm_data->output);
145209 + break;
145210 + default:
145211 + debug_gimple_stmt(asm_data->target_stmt);
145212 + gcc_unreachable();
145213 + }
145214 +
145215 + update_stmt(asm_data->def_stmt);
145216 +}
145217 +
145218 +/* This is the gimple part of searching for a missing size_overflow attribute. If the intentional_overflow attribute type
145219 + * is of the right kind create the appropriate size_overflow asm stmts:
145220 + * __asm__("# size_overflow MARK_END_INTENTIONAL" : =rm" D.3344_8 : "0" cicus.4_16);
145221 + * __asm__("# size_overflow MARK_NO" : =rm" cicus.4_16 : "0" size_1(D));
145222 + */
145223 +static void insert_size_overflow_asm(gimple stmt, unsigned int argnum, enum intentional_mark intentional_mark)
145224 +{
145225 + struct asm_data asm_data;
145226 +
145227 + asm_data.target_stmt = stmt;
145228 + asm_data.argnum = argnum;
145229 + asm_data.intentional_mark = intentional_mark;
145230 +
145231 + asm_data.output = get_so_asm_output(&asm_data);
145232 + if (asm_data.output == NULL_TREE)
145233 + return;
145234 + if (is_gimple_constant(asm_data.output))
145235 + return;
145236 + if (skip_types(asm_data.output))
145237 + return;
145238 +
145239 + asm_data.def_stmt = get_def_stmt(asm_data.output);
145240 + if (is_size_overflow_asm(asm_data.def_stmt)) {
145241 + check_size_overflow_asm(&asm_data);
145242 + return;
145243 + }
145244 +
145245 + asm_data.input = get_so_asm_input(&asm_data);
145246 +
145247 + create_so_asm_stmt(&asm_data);
145248 + set_so_asm_input_target_stmt(&asm_data);
145249 +
145250 + update_stmt(asm_data.def_stmt);
145251 + update_stmt(asm_data.target_stmt);
145252 +}
145253 +
145254 +// Determine the correct arg index and arg and insert the asm stmt to mark the stmt.
145255 +static void insert_so_asm_by_so_attr(gimple stmt, unsigned int orig_argnum)
145256 +{
145257 + if (orig_argnum == 0 && gimple_code(stmt) == GIMPLE_RETURN) {
145258 + insert_size_overflow_asm(stmt, 0, MARK_NO);
145259 + return;
145260 + }
145261 +
145262 + if (orig_argnum != 0 && gimple_code(stmt) == GIMPLE_CALL)
145263 + insert_size_overflow_asm(stmt, orig_argnum, MARK_NO);
145264 +}
145265 +
145266 +// If a function arg or the return value is marked by the size_overflow attribute then set its index in the array.
145267 +static void set_argnum_attribute(const_tree attr, bool *argnums)
145268 +{
145269 + unsigned int argnum;
145270 + tree attr_value;
145271 +
145272 + gcc_assert(attr);
145273 + for (attr_value = TREE_VALUE(attr); attr_value; attr_value = TREE_CHAIN(attr_value)) {
145274 + argnum = (unsigned int)tree_to_uhwi(TREE_VALUE(attr_value));
145275 + argnums[argnum] = true;
145276 + }
145277 +}
145278 +
145279 +// Check whether the arguments are marked by the size_overflow attribute.
145280 +static void search_interesting_so_args(tree fndecl, bool *argnums)
145281 +{
145282 + const_tree attr;
145283 +
145284 + attr = get_attribute("size_overflow", fndecl);
145285 + if (attr)
145286 + set_argnum_attribute(attr, argnums);
145287 +}
145288 +
145289 +static enum intentional_mark handle_intentional_attr(gimple stmt, unsigned int argnum)
145290 +{
145291 + const_tree fndecl;
145292 + enum intentional_mark mark;
145293 +
145294 + mark = check_intentional_attribute(stmt, argnum);
145295 + if (mark == MARK_NO)
145296 + return MARK_NO;
145297 + if (gimple_code(stmt) == GIMPLE_RETURN)
145298 + fndecl = current_function_decl;
145299 + else
145300 + fndecl = gimple_call_fndecl(stmt);
145301 + if (fndecl == NULL_TREE && !get_size_overflow_hash_entry_tree(fndecl, argnum, DISABLE_SIZE_OVERFLOW))
145302 + return MARK_NO;
145303 + insert_size_overflow_asm(stmt, argnum, mark);
145304 + return mark;
145305 +}
145306 +
145307 +static void handle_size_overflow_attr_ret(greturn *stmt)
145308 +{
145309 + enum intentional_mark mark;
145310 + bool orig_argnums[MAX_PARAM + 1] = {false};
145311 +
145312 + search_interesting_so_args(get_orig_fndecl(current_function_decl), (bool *) &orig_argnums);
145313 +
145314 + mark = handle_intentional_attr(stmt, 0);
145315 + if (mark == MARK_NO && orig_argnums[0])
145316 + insert_so_asm_by_so_attr(stmt, 0);
145317 +}
145318 +
145319 +// If the argument(s) of the callee function are marked by an attribute then mark the call stmt with an asm stmt
145320 +static void handle_size_overflow_attr_call(gcall *stmt)
145321 +{
145322 + tree fndecl;
145323 + unsigned int argnum;
145324 + bool orig_argnums[MAX_PARAM + 1] = {false};
145325 +
145326 + fndecl = get_interesting_orig_fndecl_from_stmt(stmt);
145327 + if (fndecl == NULL_TREE)
145328 + return;
145329 + if (DECL_BUILT_IN(fndecl))
145330 + return;
145331 +
145332 + search_interesting_so_args(fndecl, (bool *) &orig_argnums);
145333 +
145334 + for (argnum = 1; argnum <= gimple_call_num_args(stmt); argnum++) {
145335 + enum intentional_mark mark = handle_intentional_attr(stmt, argnum);
145336 +
145337 + if (mark == MARK_NO && !is_vararg(fndecl, argnum) && orig_argnums[argnum])
145338 + insert_so_asm_by_so_attr(stmt, argnum);
145339 + }
145340 +}
145341 +
145342 +// Iterate over all the stmts and search for call stmts and mark them if they have size_overflow attribute
145343 +static unsigned int search_interesting_functions(void)
145344 +{
145345 + basic_block bb;
145346 +
145347 + FOR_ALL_BB_FN(bb, cfun) {
145348 + gimple_stmt_iterator gsi;
145349 +
145350 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
145351 + gimple stmt = gsi_stmt(gsi);
145352 +
145353 + if (is_gimple_call(stmt))
145354 + handle_size_overflow_attr_call(as_a_gcall(stmt));
145355 + else if (gimple_code(stmt) == GIMPLE_RETURN)
145356 + handle_size_overflow_attr_ret(as_a_greturn(stmt));
145357 + }
145358 + }
145359 + return 0;
145360 +}
145361 +
145362 +/*
145363 + * A lot of functions get inlined before the ipa passes so after the build_ssa gimple pass
145364 + * this pass inserts asm stmts to mark the interesting args
145365 + * that the ipa pass will detect and insert the size overflow checks for.
145366 + */
145367 +#if BUILDING_GCC_VERSION >= 4009
145368 +static const struct pass_data insert_size_overflow_asm_pass_data = {
145369 +#else
145370 +static struct gimple_opt_pass insert_size_overflow_asm_pass = {
145371 + .pass = {
145372 +#endif
145373 + .type = GIMPLE_PASS,
145374 + .name = "insert_size_overflow_asm",
145375 +#if BUILDING_GCC_VERSION >= 4008
145376 + .optinfo_flags = OPTGROUP_NONE,
145377 +#endif
145378 +#if BUILDING_GCC_VERSION >= 5000
145379 +#elif BUILDING_GCC_VERSION >= 4009
145380 + .has_gate = false,
145381 + .has_execute = true,
145382 +#else
145383 + .gate = NULL,
145384 + .execute = search_interesting_functions,
145385 + .sub = NULL,
145386 + .next = NULL,
145387 + .static_pass_number = 0,
145388 +#endif
145389 + .tv_id = TV_NONE,
145390 + .properties_required = PROP_cfg,
145391 + .properties_provided = 0,
145392 + .properties_destroyed = 0,
145393 + .todo_flags_start = 0,
145394 + .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
145395 +#if BUILDING_GCC_VERSION < 4009
145396 + }
145397 +#endif
145398 +};
145399 +
145400 +#if BUILDING_GCC_VERSION >= 4009
145401 +namespace {
145402 +class insert_size_overflow_asm_pass : public gimple_opt_pass {
145403 +public:
145404 + insert_size_overflow_asm_pass() : gimple_opt_pass(insert_size_overflow_asm_pass_data, g) {}
145405 +#if BUILDING_GCC_VERSION >= 5000
145406 + virtual unsigned int execute(function *) { return search_interesting_functions(); }
145407 +#else
145408 + unsigned int execute() { return search_interesting_functions(); }
145409 +#endif
145410 +};
145411 +}
145412 +
145413 +opt_pass *make_insert_size_overflow_asm_pass(void)
145414 +{
145415 + return new insert_size_overflow_asm_pass();
145416 +}
145417 +#else
145418 +struct opt_pass *make_insert_size_overflow_asm_pass(void)
145419 +{
145420 + return &insert_size_overflow_asm_pass.pass;
145421 +}
145422 +#endif
145423 diff --git a/tools/gcc/size_overflow_plugin/intentional_overflow.c b/tools/gcc/size_overflow_plugin/intentional_overflow.c
145424 new file mode 100644
145425 index 0000000..62eb578
145426 --- /dev/null
145427 +++ b/tools/gcc/size_overflow_plugin/intentional_overflow.c
145428 @@ -0,0 +1,947 @@
145429 +/*
145430 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
145431 + * Licensed under the GPL v2, or (at your option) v3
145432 + *
145433 + * Homepage:
145434 + * https://github.com/ephox-gcc-plugins/size_overflow
145435 + *
145436 + * Documentation:
145437 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
145438 + *
145439 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
145440 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
145441 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
145442 + *
145443 + * Usage:
145444 + * $ make
145445 + * $ make run
145446 + */
145447 +
145448 +#include "size_overflow.h"
145449 +
145450 +static enum intentional_mark walk_use_def(gimple_set *visited, const_tree lhs);
145451 +
145452 +static const char *get_asm_string(const gasm *stmt)
145453 +{
145454 + if (stmt)
145455 + return gimple_asm_string(stmt);
145456 + return NULL;
145457 +}
145458 +
145459 +tree get_size_overflow_asm_input(const gasm *stmt)
145460 +{
145461 + gcc_assert(gimple_asm_ninputs(stmt) != 0);
145462 + return TREE_VALUE(gimple_asm_input_op(stmt, 0));
145463 +}
145464 +
145465 +bool is_size_overflow_insert_check_asm(const gasm *stmt)
145466 +{
145467 + const char *str;
145468 +
145469 + if (!is_size_overflow_asm(stmt))
145470 + return false;
145471 +
145472 + str = get_asm_string(stmt);
145473 + if (!str)
145474 + return false;
145475 + return !strncmp(str, OK_ASM_STR, sizeof(OK_ASM_STR) - 1);
145476 +}
145477 +
145478 +bool is_size_overflow_asm(const_gimple stmt)
145479 +{
145480 + const char *str;
145481 +
145482 + if (!stmt)
145483 + return false;
145484 + if (gimple_code(stmt) != GIMPLE_ASM)
145485 + return false;
145486 +
145487 + str = get_asm_string(as_a_const_gasm(stmt));
145488 + if (!str)
145489 + return false;
145490 + return !strncmp(str, SO_ASM_STR, sizeof(SO_ASM_STR) - 1);
145491 +}
145492 +
145493 +static bool is_size_overflow_intentional_asm_turn_off(const gasm *stmt)
145494 +{
145495 + const char *str;
145496 +
145497 + if (!is_size_overflow_asm(stmt))
145498 + return false;
145499 +
145500 + str = get_asm_string(stmt);
145501 + if (!str)
145502 + return false;
145503 + return !strncmp(str, TURN_OFF_ASM_STR, sizeof(TURN_OFF_ASM_STR) - 1);
145504 +}
145505 +
145506 +static bool is_size_overflow_intentional_asm_end(const gasm *stmt)
145507 +{
145508 + const char *str;
145509 +
145510 + if (!is_size_overflow_asm(stmt))
145511 + return false;
145512 +
145513 + str = get_asm_string(stmt);
145514 + if (!str)
145515 + return false;
145516 + return !strncmp(str, END_INTENTIONAL_ASM_STR, sizeof(END_INTENTIONAL_ASM_STR) - 1);
145517 +}
145518 +
145519 +/* Get the param of the intentional_overflow attribute.
145520 + * * 0: MARK_END_INTENTIONAL
145521 + * * 1..MAX_PARAM: MARK_YES
145522 + * * -1: MARK_TURN_OFF
145523 + */
145524 +static tree get_attribute_param(const_tree decl)
145525 +{
145526 + const_tree attr;
145527 +
145528 + if (decl == NULL_TREE)
145529 + return NULL_TREE;
145530 +
145531 + attr = get_attribute("intentional_overflow", decl);
145532 + if (attr)
145533 + return TREE_VALUE(attr);
145534 + return NULL_TREE;
145535 +}
145536 +
145537 +// MARK_TURN_OFF
145538 +static bool is_turn_off_intentional_attr(const_tree decl)
145539 +{
145540 + const_tree param_head;
145541 +
145542 + param_head = get_attribute_param(decl);
145543 + if (param_head == NULL_TREE)
145544 + return false;
145545 +
145546 + if (tree_to_shwi(TREE_VALUE(param_head)) == -1)
145547 + return true;
145548 + return false;
145549 +}
145550 +
145551 +// MARK_END_INTENTIONAL
145552 +static bool is_end_intentional_intentional_attr(const_tree decl)
145553 +{
145554 + const_tree param_head;
145555 +
145556 + param_head = get_attribute_param(decl);
145557 + if (param_head == NULL_TREE)
145558 + return false;
145559 +
145560 + if (tree_to_shwi(TREE_VALUE(param_head)) == 0)
145561 + return true;
145562 + return false;
145563 +}
145564 +
145565 +// MARK_YES
145566 +static bool is_yes_intentional_attr(const_tree decl, unsigned int argnum)
145567 +{
145568 + tree param, param_head;
145569 +
145570 + if (argnum == 0)
145571 + return false;
145572 +
145573 + param_head = get_attribute_param(decl);
145574 + for (param = param_head; param; param = TREE_CHAIN(param)) {
145575 + int argval = tree_to_shwi(TREE_VALUE(param));
145576 +
145577 + if (argval <= 0)
145578 + continue;
145579 + if (argnum == (unsigned int)argval)
145580 + return true;
145581 + }
145582 + return false;
145583 +}
145584 +
145585 +static void print_missing_intentional(enum intentional_mark callee_attr, enum intentional_mark caller_attr, const_tree decl, unsigned int argnum)
145586 +{
145587 + const struct size_overflow_hash *hash;
145588 +// location_t loc;
145589 +
145590 + if (caller_attr == MARK_NO || caller_attr == MARK_END_INTENTIONAL || caller_attr == MARK_TURN_OFF)
145591 + return;
145592 +
145593 + if (callee_attr == MARK_END_INTENTIONAL || callee_attr == MARK_YES)
145594 + return;
145595 +
145596 + hash = get_size_overflow_hash_entry_tree(decl, argnum, SIZE_OVERFLOW);
145597 + if (!hash)
145598 + return;
145599 +
145600 +// !!!
145601 +// loc = DECL_SOURCE_LOCATION(decl);
145602 +// inform(loc, "The intentional_overflow attribute is missing from +%s+%u+", DECL_NAME_POINTER(decl), argnum);
145603 +}
145604 +
145605 +// Get the field decl of a component ref for intentional_overflow checking
145606 +static const_tree search_field_decl(const_tree comp_ref)
145607 +{
145608 + const_tree field = NULL_TREE;
145609 + unsigned int i, len = TREE_OPERAND_LENGTH(comp_ref);
145610 +
145611 + for (i = 0; i < len; i++) {
145612 + field = TREE_OPERAND(comp_ref, i);
145613 + if (TREE_CODE(field) == FIELD_DECL)
145614 + break;
145615 + }
145616 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
145617 + return field;
145618 +}
145619 +
145620 +/* Get the type of the intentional_overflow attribute of a node
145621 + * * MARK_TURN_OFF
145622 + * * MARK_YES
145623 + * * MARK_NO
145624 + * * MARK_END_INTENTIONAL
145625 + */
145626 +enum intentional_mark get_intentional_attr_type(const_tree node)
145627 +{
145628 + const_tree cur_decl;
145629 +
145630 + if (node == NULL_TREE)
145631 + return MARK_NO;
145632 +
145633 + switch (TREE_CODE(node)) {
145634 + case COMPONENT_REF:
145635 + cur_decl = search_field_decl(node);
145636 + // !!! temporarily ignore bitfield types
145637 + if (DECL_BIT_FIELD_TYPE(cur_decl))
145638 + return MARK_YES;
145639 + if (is_turn_off_intentional_attr(cur_decl))
145640 + return MARK_TURN_OFF;
145641 + if (is_end_intentional_intentional_attr(cur_decl))
145642 + return MARK_YES;
145643 + break;
145644 + case PARM_DECL: {
145645 + unsigned int argnum;
145646 +
145647 + cur_decl = get_orig_fndecl(current_function_decl);
145648 + argnum = find_arg_number_tree(node, cur_decl);
145649 + if (argnum == CANNOT_FIND_ARG)
145650 + return MARK_NO;
145651 + if (is_yes_intentional_attr(cur_decl, argnum))
145652 + return MARK_YES;
145653 + if (is_end_intentional_intentional_attr(cur_decl))
145654 + return MARK_END_INTENTIONAL;
145655 + break;
145656 + }
145657 + case FUNCTION_DECL: {
145658 + const_tree fndecl = get_orig_fndecl(node);
145659 +
145660 + if (is_turn_off_intentional_attr(fndecl))
145661 + return MARK_TURN_OFF;
145662 + if (is_end_intentional_intentional_attr(fndecl))
145663 + return MARK_END_INTENTIONAL;
145664 + break;
145665 + }
145666 + case FIELD_DECL:
145667 + case VAR_DECL:
145668 + // !!! temporarily ignore bitfield types
145669 + if (DECL_BIT_FIELD_TYPE(node))
145670 + return MARK_YES;
145671 + if (is_end_intentional_intentional_attr(node))
145672 + return MARK_END_INTENTIONAL;
145673 + if (is_turn_off_intentional_attr(node))
145674 + return MARK_TURN_OFF;
145675 + default:
145676 + break;
145677 + }
145678 + return MARK_NO;
145679 +}
145680 +
145681 +static enum intentional_mark walk_use_def_phi(gimple_set *visited, const_tree result)
145682 +{
145683 + enum intentional_mark mark = MARK_NO;
145684 + gphi *phi = as_a_gphi(get_def_stmt(result));
145685 + unsigned int i, n = gimple_phi_num_args(phi);
145686 +
145687 + pointer_set_insert(visited, phi);
145688 + for (i = 0; i < n; i++) {
145689 + tree arg = gimple_phi_arg_def(phi, i);
145690 +
145691 + mark = walk_use_def(visited, arg);
145692 + if (mark != MARK_NO)
145693 + return mark;
145694 + }
145695 +
145696 + return mark;
145697 +}
145698 +
145699 +static enum intentional_mark walk_use_def_binary(gimple_set *visited, const_tree lhs)
145700 +{
145701 + enum intentional_mark mark;
145702 + tree rhs1, rhs2;
145703 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
145704 +
145705 + rhs1 = gimple_assign_rhs1(def_stmt);
145706 + rhs2 = gimple_assign_rhs2(def_stmt);
145707 +
145708 + mark = walk_use_def(visited, rhs1);
145709 + if (mark == MARK_NO)
145710 + return walk_use_def(visited, rhs2);
145711 + return mark;
145712 +}
145713 +
145714 +enum intentional_mark get_so_asm_type(const_gimple stmt)
145715 +{
145716 + const gasm *asm_stmt;
145717 +
145718 + if (!stmt)
145719 + return MARK_NO;
145720 + if (!is_size_overflow_asm(stmt))
145721 + return MARK_NO;
145722 +
145723 + asm_stmt = as_a_const_gasm(stmt);
145724 + if (is_size_overflow_insert_check_asm(asm_stmt))
145725 + return MARK_NO;
145726 + if (is_size_overflow_intentional_asm_turn_off(asm_stmt))
145727 + return MARK_TURN_OFF;
145728 + if (is_size_overflow_intentional_asm_end(asm_stmt))
145729 + return MARK_END_INTENTIONAL;
145730 + return MARK_YES;
145731 +}
145732 +
145733 +static enum intentional_mark walk_use_def(gimple_set *visited, const_tree lhs)
145734 +{
145735 + const_gimple def_stmt;
145736 +
145737 + if (TREE_CODE(lhs) != SSA_NAME)
145738 + return get_intentional_attr_type(lhs);
145739 +
145740 + def_stmt = get_def_stmt(lhs);
145741 + gcc_assert(def_stmt);
145742 +
145743 + if (pointer_set_insert(visited, def_stmt))
145744 + return MARK_NO;
145745 +
145746 + switch (gimple_code(def_stmt)) {
145747 + case GIMPLE_CALL:
145748 + case GIMPLE_RETURN:
145749 + return MARK_NO;
145750 + case GIMPLE_NOP:
145751 + return walk_use_def(visited, SSA_NAME_VAR(lhs));
145752 + case GIMPLE_ASM:
145753 + return get_so_asm_type(as_a_const_gasm(def_stmt));
145754 + case GIMPLE_PHI:
145755 + return walk_use_def_phi(visited, lhs);
145756 + case GIMPLE_ASSIGN:
145757 + switch (gimple_num_ops(def_stmt)) {
145758 + case 2:
145759 + return walk_use_def(visited, gimple_assign_rhs1(def_stmt));
145760 + case 3:
145761 + return walk_use_def_binary(visited, lhs);
145762 + }
145763 + default:
145764 + debug_gimple_stmt((gimple)def_stmt);
145765 + error("%s: unknown gimple code", __func__);
145766 + gcc_unreachable();
145767 + }
145768 +}
145769 +
145770 +enum intentional_mark check_intentional_size_overflow_asm_and_attribute(const_tree var)
145771 +{
145772 + enum intentional_mark mark;
145773 + gimple_set *visited;
145774 +
145775 + if (is_turn_off_intentional_attr(get_orig_fndecl(current_function_decl)))
145776 + return MARK_TURN_OFF;
145777 +
145778 + visited = pointer_set_create();
145779 + mark = walk_use_def(visited, var);
145780 + pointer_set_destroy(visited);
145781 +
145782 + return mark;
145783 +}
145784 +
145785 +/* Search intentional_overflow attribute on caller and on callee too.
145786 + * -1 / MARK_TURN_OFF: means that overflow checking is turned off inside the function and
145787 + * parameters aren't tracked backwards.
145788 + * 1..31 / MARK_YES: e.g., 4 means that overflow checking is turned off on the fourth parameter inside
145789 + * the function.
145790 + * 0 / MARK_END_INTENTIONAL: means that overflow checking is turned off on all the parameters of the function
145791 + * in all callers (on a structure field means that overflow checking is turned off
145792 + * in all expressions involving the given field).
145793 + */
145794 +enum intentional_mark check_intentional_attribute(const_gimple stmt, unsigned int argnum)
145795 +{
145796 + enum intentional_mark caller_mark, callee_mark;
145797 + const_tree fndecl, orig_cur_fndecl, arg;
145798 +
145799 + orig_cur_fndecl = get_orig_fndecl(current_function_decl);
145800 +
145801 + // handle MARK_TURN_OFF early on the caller
145802 + if (is_turn_off_intentional_attr(orig_cur_fndecl))
145803 + return MARK_TURN_OFF;
145804 +
145805 + switch (gimple_code(stmt)) {
145806 + case GIMPLE_RETURN:
145807 + gcc_assert(argnum == 0);
145808 + // for now ignore other intentional attribute types on returns
145809 + return MARK_NO;
145810 + case GIMPLE_CALL:
145811 + gcc_assert(argnum != 0);
145812 + gcc_assert(argnum <= gimple_call_num_args(stmt));
145813 + arg = gimple_call_arg(stmt, argnum - 1);
145814 + break;
145815 + default:
145816 + debug_gimple_stmt((gimple)stmt);
145817 + gcc_unreachable();
145818 + }
145819 +
145820 + // XXX ideiglenesen 0-nal a fuggvenyen belul is ki van kapcsolva a dupolas, eddig igy mukodott a doksi ellenere
145821 + if (is_end_intentional_intentional_attr(orig_cur_fndecl))
145822 + return MARK_END_INTENTIONAL;
145823 +
145824 + fndecl = get_interesting_orig_fndecl_from_stmt(as_a_const_gcall(stmt));
145825 + // handle MARK_TURN_OFF on the callee
145826 + if (is_turn_off_intentional_attr(fndecl))
145827 + return MARK_TURN_OFF;
145828 + // find a defining marked caller argument or struct field for arg
145829 + caller_mark = check_intentional_size_overflow_asm_and_attribute(arg);
145830 +
145831 + // did we find a marked struct field?
145832 + if (caller_mark == MARK_TURN_OFF)
145833 + return MARK_TURN_OFF;
145834 +
145835 + // handle MARK_END_INTENTIONAL on the callee
145836 + if (is_end_intentional_intentional_attr(fndecl))
145837 + callee_mark = MARK_END_INTENTIONAL;
145838 + // is it a marked callee parameter?
145839 + else if (is_yes_intentional_attr(fndecl, argnum))
145840 + callee_mark = MARK_YES;
145841 + else
145842 + callee_mark = MARK_NO;
145843 +
145844 + // no intentional attribute found
145845 + if (callee_mark == MARK_NO && caller_mark == MARK_NO)
145846 + return MARK_NO;
145847 +
145848 + // MARK_YES is meaningful only on the caller
145849 + if (caller_mark == MARK_NO && callee_mark == MARK_YES)
145850 + return MARK_NO;
145851 +
145852 + // we found a code region where we don't want to duplicate
145853 + if (caller_mark == MARK_YES && callee_mark == MARK_END_INTENTIONAL)
145854 + return MARK_END_INTENTIONAL;
145855 +
145856 + // ignore the intentional attribute on the callee if we didn't find a marked defining argument or struct field
145857 + if (caller_mark == MARK_NO && callee_mark == MARK_END_INTENTIONAL)
145858 + return MARK_NO;
145859 +
145860 + // the callee is missing the intentional attribute (MARK_YES or MARK_END_INTENTIONAL)
145861 + if (caller_mark == MARK_YES) {
145862 + print_missing_intentional(callee_mark, caller_mark, fndecl, argnum);
145863 + return MARK_YES;
145864 + }
145865 +
145866 + fprintf(stderr, "caller: %s callee: %s\n", DECL_NAME_POINTER(orig_cur_fndecl), DECL_NAME_POINTER(fndecl));
145867 + debug_gimple_stmt((gimple)stmt);
145868 + print_intentional_mark(caller_mark);
145869 + print_intentional_mark(callee_mark);
145870 + gcc_unreachable();
145871 +}
145872 +
145873 +bool is_a_cast_and_const_overflow(const_tree no_const_rhs)
145874 +{
145875 + const_tree rhs1, lhs, rhs1_type, lhs_type;
145876 + enum machine_mode lhs_mode, rhs_mode;
145877 + gimple def_stmt = get_def_stmt(no_const_rhs);
145878 +
145879 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
145880 + return false;
145881 +
145882 + rhs1 = gimple_assign_rhs1(def_stmt);
145883 + lhs = gimple_assign_lhs(def_stmt);
145884 + rhs1_type = TREE_TYPE(rhs1);
145885 + lhs_type = TREE_TYPE(lhs);
145886 + rhs_mode = TYPE_MODE(rhs1_type);
145887 + lhs_mode = TYPE_MODE(lhs_type);
145888 + if (TYPE_UNSIGNED(lhs_type) == TYPE_UNSIGNED(rhs1_type) || lhs_mode != rhs_mode)
145889 + return false;
145890 +
145891 + return true;
145892 +}
145893 +
145894 +static unsigned int uses_num(tree node)
145895 +{
145896 + imm_use_iterator imm_iter;
145897 + use_operand_p use_p;
145898 + unsigned int num = 0;
145899 +
145900 + FOR_EACH_IMM_USE_FAST(use_p, imm_iter, node) {
145901 + gimple use_stmt = USE_STMT(use_p);
145902 +
145903 + if (use_stmt == NULL)
145904 + return num;
145905 + if (is_gimple_debug(use_stmt))
145906 + continue;
145907 + if (gimple_assign_cast_p(use_stmt) && is_size_overflow_type(gimple_assign_lhs(use_stmt)))
145908 + continue;
145909 + num++;
145910 + }
145911 + return num;
145912 +}
145913 +
145914 +static bool no_uses(tree node)
145915 +{
145916 + return !uses_num(node);
145917 +}
145918 +
145919 +// 3.8.5 mm/page-writeback.c __ilog2_u64(): ret, uint + uintmax; uint -> int; int max
145920 +bool is_const_plus_unsigned_signed_truncation(const_tree lhs)
145921 +{
145922 + tree rhs1, lhs_type, rhs_type, rhs2, not_const_rhs;
145923 + gimple def_stmt = get_def_stmt(lhs);
145924 +
145925 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
145926 + return false;
145927 +
145928 + rhs1 = gimple_assign_rhs1(def_stmt);
145929 + rhs_type = TREE_TYPE(rhs1);
145930 + lhs_type = TREE_TYPE(lhs);
145931 + if (TYPE_UNSIGNED(lhs_type) || !TYPE_UNSIGNED(rhs_type))
145932 + return false;
145933 + if (TYPE_MODE(lhs_type) != TYPE_MODE(rhs_type))
145934 + return false;
145935 +
145936 + def_stmt = get_def_stmt(rhs1);
145937 + if (!def_stmt || !is_gimple_assign(def_stmt) || gimple_num_ops(def_stmt) != 3)
145938 + return false;
145939 +
145940 + if (gimple_assign_rhs_code(def_stmt) != PLUS_EXPR)
145941 + return false;
145942 +
145943 + rhs1 = gimple_assign_rhs1(def_stmt);
145944 + rhs2 = gimple_assign_rhs2(def_stmt);
145945 + if (!is_gimple_constant(rhs1) && !is_gimple_constant(rhs2))
145946 + return false;
145947 +
145948 + if (is_gimple_constant(rhs2))
145949 + not_const_rhs = rhs1;
145950 + else
145951 + not_const_rhs = rhs2;
145952 +
145953 + return no_uses(not_const_rhs);
145954 +}
145955 +
145956 +static bool is_lt_signed_type_max(const_tree rhs)
145957 +{
145958 + const_tree new_type, type_max, type = TREE_TYPE(rhs);
145959 +
145960 + if (!TYPE_UNSIGNED(type))
145961 + return true;
145962 +
145963 + switch (TYPE_MODE(type)) {
145964 + case QImode:
145965 + new_type = intQI_type_node;
145966 + break;
145967 + case HImode:
145968 + new_type = intHI_type_node;
145969 + break;
145970 + case SImode:
145971 + new_type = intSI_type_node;
145972 + break;
145973 + case DImode:
145974 + new_type = intDI_type_node;
145975 + break;
145976 + default:
145977 + debug_tree((tree)type);
145978 + gcc_unreachable();
145979 + }
145980 +
145981 + type_max = TYPE_MAX_VALUE(new_type);
145982 + if (!tree_int_cst_lt(type_max, rhs))
145983 + return true;
145984 +
145985 + return false;
145986 +}
145987 +
145988 +static bool is_gt_zero(const_tree rhs)
145989 +{
145990 + const_tree type = TREE_TYPE(rhs);
145991 +
145992 + if (TYPE_UNSIGNED(type))
145993 + return true;
145994 +
145995 + if (!tree_int_cst_lt(rhs, integer_zero_node))
145996 + return true;
145997 +
145998 + return false;
145999 +}
146000 +
146001 +bool is_a_constant_overflow(const gassign *stmt, const_tree rhs)
146002 +{
146003 + if (gimple_assign_rhs_code(stmt) == MIN_EXPR)
146004 + return false;
146005 + if (!is_gimple_constant(rhs))
146006 + return false;
146007 +
146008 + // if the const is between 0 and the max value of the signed type of the same bitsize then there is no intentional overflow
146009 + if (is_lt_signed_type_max(rhs) && is_gt_zero(rhs))
146010 + return false;
146011 +
146012 + return true;
146013 +}
146014 +
146015 +static tree change_assign_rhs(struct visited *visited, gassign *stmt, const_tree orig_rhs, tree new_rhs)
146016 +{
146017 + const_gimple assign;
146018 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
146019 + tree origtype = TREE_TYPE(orig_rhs);
146020 +
146021 + assign = build_cast_stmt(visited, origtype, new_rhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
146022 + pointer_set_insert(visited->my_stmts, assign);
146023 + return get_lhs(assign);
146024 +}
146025 +
146026 +tree handle_intentional_overflow(struct visited *visited, interesting_stmts_t expand_from, bool check_overflow, gassign *stmt, tree change_rhs, tree new_rhs2)
146027 +{
146028 + tree new_rhs, orig_rhs;
146029 + void (*gimple_assign_set_rhs)(gimple, tree);
146030 + tree rhs1 = gimple_assign_rhs1(stmt);
146031 + tree rhs2 = gimple_assign_rhs2(stmt);
146032 + tree lhs = gimple_assign_lhs(stmt);
146033 +
146034 + if (!check_overflow)
146035 + return create_assign(visited, stmt, lhs, AFTER_STMT);
146036 +
146037 + if (change_rhs == NULL_TREE)
146038 + return create_assign(visited, stmt, lhs, AFTER_STMT);
146039 +
146040 + if (new_rhs2 == NULL_TREE) {
146041 + orig_rhs = rhs1;
146042 + gimple_assign_set_rhs = &gimple_assign_set_rhs1;
146043 + } else {
146044 + orig_rhs = rhs2;
146045 + gimple_assign_set_rhs = &gimple_assign_set_rhs2;
146046 + }
146047 +
146048 + check_size_overflow(expand_from, stmt, TREE_TYPE(change_rhs), change_rhs, orig_rhs, BEFORE_STMT);
146049 +
146050 + new_rhs = change_assign_rhs(visited, stmt, orig_rhs, change_rhs);
146051 + gimple_assign_set_rhs(stmt, new_rhs);
146052 + update_stmt(stmt);
146053 +
146054 + return create_assign(visited, stmt, lhs, AFTER_STMT);
146055 +}
146056 +
146057 +static bool is_subtraction_special(struct visited *visited, const gassign *stmt)
146058 +{
146059 + gimple rhs1_def_stmt, rhs2_def_stmt;
146060 + const_tree rhs1_def_stmt_rhs1, rhs2_def_stmt_rhs1, rhs1_def_stmt_lhs, rhs2_def_stmt_lhs;
146061 + enum machine_mode rhs1_def_stmt_rhs1_mode, rhs2_def_stmt_rhs1_mode, rhs1_def_stmt_lhs_mode, rhs2_def_stmt_lhs_mode;
146062 + const_tree rhs1 = gimple_assign_rhs1(stmt);
146063 + const_tree rhs2 = gimple_assign_rhs2(stmt);
146064 +
146065 + if (is_gimple_constant(rhs1) || is_gimple_constant(rhs2))
146066 + return false;
146067 +
146068 + if (gimple_assign_rhs_code(stmt) != MINUS_EXPR)
146069 + return false;
146070 +
146071 + gcc_assert(TREE_CODE(rhs1) == SSA_NAME && TREE_CODE(rhs2) == SSA_NAME);
146072 +
146073 + rhs1_def_stmt = get_def_stmt(rhs1);
146074 + rhs2_def_stmt = get_def_stmt(rhs2);
146075 + if (!gimple_assign_cast_p(rhs1_def_stmt) || !gimple_assign_cast_p(rhs2_def_stmt))
146076 + return false;
146077 +
146078 + rhs1_def_stmt_rhs1 = gimple_assign_rhs1(rhs1_def_stmt);
146079 + rhs2_def_stmt_rhs1 = gimple_assign_rhs1(rhs2_def_stmt);
146080 + rhs1_def_stmt_lhs = gimple_assign_lhs(rhs1_def_stmt);
146081 + rhs2_def_stmt_lhs = gimple_assign_lhs(rhs2_def_stmt);
146082 + rhs1_def_stmt_rhs1_mode = TYPE_MODE(TREE_TYPE(rhs1_def_stmt_rhs1));
146083 + rhs2_def_stmt_rhs1_mode = TYPE_MODE(TREE_TYPE(rhs2_def_stmt_rhs1));
146084 + rhs1_def_stmt_lhs_mode = TYPE_MODE(TREE_TYPE(rhs1_def_stmt_lhs));
146085 + rhs2_def_stmt_lhs_mode = TYPE_MODE(TREE_TYPE(rhs2_def_stmt_lhs));
146086 + if (GET_MODE_BITSIZE(rhs1_def_stmt_rhs1_mode) <= GET_MODE_BITSIZE(rhs1_def_stmt_lhs_mode))
146087 + return false;
146088 + if (GET_MODE_BITSIZE(rhs2_def_stmt_rhs1_mode) <= GET_MODE_BITSIZE(rhs2_def_stmt_lhs_mode))
146089 + return false;
146090 +
146091 + pointer_set_insert(visited->no_cast_check, rhs1_def_stmt);
146092 + pointer_set_insert(visited->no_cast_check, rhs2_def_stmt);
146093 + return true;
146094 +}
146095 +
146096 +static gassign *create_binary_assign(struct visited *visited, enum tree_code code, gassign *stmt, tree rhs1, tree rhs2)
146097 +{
146098 + gassign *assign;
146099 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
146100 + tree type = TREE_TYPE(rhs1);
146101 + tree lhs = create_new_var(type);
146102 +
146103 + gcc_assert(types_compatible_p(type, TREE_TYPE(rhs2)));
146104 + assign = as_a_gassign(gimple_build_assign_with_ops(code, lhs, rhs1, rhs2));
146105 + gimple_assign_set_lhs(assign, make_ssa_name(lhs, assign));
146106 +
146107 + gsi_insert_before(&gsi, assign, GSI_NEW_STMT);
146108 + update_stmt(assign);
146109 + pointer_set_insert(visited->my_stmts, assign);
146110 + return assign;
146111 +}
146112 +
146113 +static tree cast_to_TI_type(struct visited *visited, gassign *stmt, tree node)
146114 +{
146115 + gimple_stmt_iterator gsi;
146116 + const_gimple cast_stmt;
146117 + tree type = TREE_TYPE(node);
146118 +
146119 + if (types_compatible_p(type, intTI_type_node))
146120 + return node;
146121 +
146122 + gsi = gsi_for_stmt(stmt);
146123 + cast_stmt = build_cast_stmt(visited, intTI_type_node, node, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
146124 + pointer_set_insert(visited->my_stmts, cast_stmt);
146125 + return get_lhs(cast_stmt);
146126 +}
146127 +
146128 +static tree get_def_stmt_rhs(struct visited *visited, const_tree var)
146129 +{
146130 + tree rhs1, def_stmt_rhs1;
146131 + gimple rhs1_def_stmt, def_stmt_rhs1_def_stmt, def_stmt;
146132 +
146133 + def_stmt = get_def_stmt(var);
146134 + if (!gimple_assign_cast_p(def_stmt))
146135 + return NULL_TREE;
146136 + gcc_assert(gimple_code(def_stmt) != GIMPLE_NOP && pointer_set_contains(visited->my_stmts, def_stmt) && gimple_assign_cast_p(def_stmt));
146137 +
146138 + rhs1 = gimple_assign_rhs1(def_stmt);
146139 + rhs1_def_stmt = get_def_stmt(rhs1);
146140 + if (!gimple_assign_cast_p(rhs1_def_stmt))
146141 + return rhs1;
146142 +
146143 + def_stmt_rhs1 = gimple_assign_rhs1(rhs1_def_stmt);
146144 + def_stmt_rhs1_def_stmt = get_def_stmt(def_stmt_rhs1);
146145 +
146146 + switch (gimple_code(def_stmt_rhs1_def_stmt)) {
146147 + case GIMPLE_CALL:
146148 + case GIMPLE_NOP:
146149 + case GIMPLE_ASM:
146150 + case GIMPLE_PHI:
146151 + return def_stmt_rhs1;
146152 + case GIMPLE_ASSIGN:
146153 + return rhs1;
146154 + default:
146155 + debug_gimple_stmt(def_stmt_rhs1_def_stmt);
146156 + gcc_unreachable();
146157 + }
146158 +}
146159 +
146160 +tree handle_integer_truncation(struct visited *visited, interesting_stmts_t expand_from, const_tree lhs)
146161 +{
146162 + tree new_rhs1, new_rhs2;
146163 + tree new_rhs1_def_stmt_rhs1, new_rhs2_def_stmt_rhs1, new_lhs;
146164 + gassign *assign, *stmt = as_a_gassign(get_def_stmt(lhs));
146165 + tree rhs1 = gimple_assign_rhs1(stmt);
146166 + tree rhs2 = gimple_assign_rhs2(stmt);
146167 +
146168 + if (!is_subtraction_special(visited, stmt))
146169 + return NULL_TREE;
146170 +
146171 + new_rhs1 = expand(visited, expand_from, rhs1);
146172 + new_rhs2 = expand(visited, expand_from, rhs2);
146173 +
146174 + new_rhs1_def_stmt_rhs1 = get_def_stmt_rhs(visited, new_rhs1);
146175 + new_rhs2_def_stmt_rhs1 = get_def_stmt_rhs(visited, new_rhs2);
146176 +
146177 + if (new_rhs1_def_stmt_rhs1 == NULL_TREE || new_rhs2_def_stmt_rhs1 == NULL_TREE)
146178 + return NULL_TREE;
146179 +
146180 + if (!types_compatible_p(TREE_TYPE(new_rhs1_def_stmt_rhs1), TREE_TYPE(new_rhs2_def_stmt_rhs1))) {
146181 + new_rhs1_def_stmt_rhs1 = cast_to_TI_type(visited, stmt, new_rhs1_def_stmt_rhs1);
146182 + new_rhs2_def_stmt_rhs1 = cast_to_TI_type(visited, stmt, new_rhs2_def_stmt_rhs1);
146183 + }
146184 +
146185 + assign = create_binary_assign(visited, MINUS_EXPR, stmt, new_rhs1_def_stmt_rhs1, new_rhs2_def_stmt_rhs1);
146186 + new_lhs = gimple_assign_lhs(assign);
146187 + check_size_overflow(expand_from, assign, TREE_TYPE(new_lhs), new_lhs, rhs1, AFTER_STMT);
146188 +
146189 + return dup_assign(visited, stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
146190 +}
146191 +
146192 +bool is_a_neg_overflow(const gassign *stmt, const_tree rhs)
146193 +{
146194 + const_gimple def_stmt;
146195 +
146196 + if (TREE_CODE(rhs) != SSA_NAME)
146197 + return false;
146198 +
146199 + if (gimple_assign_rhs_code(stmt) != PLUS_EXPR)
146200 + return false;
146201 +
146202 + def_stmt = get_def_stmt(rhs);
146203 + if (!is_gimple_assign(def_stmt) || gimple_assign_rhs_code(def_stmt) != BIT_NOT_EXPR)
146204 + return false;
146205 +
146206 + return true;
146207 +}
146208 +
146209 +/* e.g., drivers/acpi/acpica/utids.c acpi_ut_execute_CID()
146210 + * ((count - 1) * sizeof(struct acpi_pnp_dee_id_list) -> (count + fffffff) * 16
146211 + * fffffff * 16 > signed max -> truncate
146212 + */
146213 +static bool look_for_mult_and_add(const_gimple stmt)
146214 +{
146215 + const_tree res;
146216 + tree rhs1, rhs2, def_rhs1, def_rhs2, const_rhs, def_const_rhs;
146217 + const_gimple def_stmt;
146218 +
146219 + if (!stmt || gimple_code(stmt) == GIMPLE_NOP)
146220 + return false;
146221 + if (!is_gimple_assign(stmt))
146222 + return false;
146223 + if (gimple_assign_rhs_code(stmt) != MULT_EXPR)
146224 + return false;
146225 +
146226 + rhs1 = gimple_assign_rhs1(stmt);
146227 + rhs2 = gimple_assign_rhs2(stmt);
146228 + if (is_gimple_constant(rhs1)) {
146229 + const_rhs = rhs1;
146230 + def_stmt = get_def_stmt(rhs2);
146231 + } else if (is_gimple_constant(rhs2)) {
146232 + const_rhs = rhs2;
146233 + def_stmt = get_def_stmt(rhs1);
146234 + } else
146235 + return false;
146236 +
146237 + if (!is_gimple_assign(def_stmt))
146238 + return false;
146239 +
146240 + if (gimple_assign_rhs_code(def_stmt) != PLUS_EXPR && gimple_assign_rhs_code(def_stmt) != MINUS_EXPR)
146241 + return false;
146242 +
146243 + def_rhs1 = gimple_assign_rhs1(def_stmt);
146244 + def_rhs2 = gimple_assign_rhs2(def_stmt);
146245 + if (is_gimple_constant(def_rhs1))
146246 + def_const_rhs = def_rhs1;
146247 + else if (is_gimple_constant(def_rhs2))
146248 + def_const_rhs = def_rhs2;
146249 + else
146250 + return false;
146251 +
146252 + res = fold_binary_loc(gimple_location(def_stmt), MULT_EXPR, TREE_TYPE(const_rhs), const_rhs, def_const_rhs);
146253 + if (is_lt_signed_type_max(res) && is_gt_zero(res))
146254 + return false;
146255 + return true;
146256 +}
146257 +
146258 +enum intentional_overflow_type add_mul_intentional_overflow(const gassign *stmt)
146259 +{
146260 + const_gimple def_stmt_1, def_stmt_2;
146261 + const_tree rhs1, rhs2;
146262 + bool add_mul_rhs1, add_mul_rhs2;
146263 +
146264 + rhs1 = gimple_assign_rhs1(stmt);
146265 + def_stmt_1 = get_def_stmt(rhs1);
146266 + add_mul_rhs1 = look_for_mult_and_add(def_stmt_1);
146267 +
146268 + rhs2 = gimple_assign_rhs2(stmt);
146269 + def_stmt_2 = get_def_stmt(rhs2);
146270 + add_mul_rhs2 = look_for_mult_and_add(def_stmt_2);
146271 +
146272 + if (add_mul_rhs1)
146273 + return RHS1_INTENTIONAL_OVERFLOW;
146274 + if (add_mul_rhs2)
146275 + return RHS2_INTENTIONAL_OVERFLOW;
146276 + return NO_INTENTIONAL_OVERFLOW;
146277 +}
146278 +
146279 +static gassign *get_dup_stmt(struct visited *visited, gassign *stmt)
146280 +{
146281 + gassign *my_stmt;
146282 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
146283 +
146284 + gsi_next(&gsi);
146285 + my_stmt = as_a_gassign(gsi_stmt(gsi));
146286 +
146287 + gcc_assert(pointer_set_contains(visited->my_stmts, my_stmt));
146288 + if (gimple_assign_cast_p(stmt) && gimple_assign_cast_p(my_stmt))
146289 + return my_stmt;
146290 +
146291 + if (gimple_assign_rhs_code(stmt) != gimple_assign_rhs_code(my_stmt)) {
146292 + fprintf(stderr, "%s != %s\n", get_tree_code_name(gimple_assign_rhs_code(stmt)), get_tree_code_name(gimple_assign_rhs_code(my_stmt)));
146293 + debug_gimple_stmt(stmt);
146294 + debug_gimple_stmt(my_stmt);
146295 + gcc_unreachable();
146296 + }
146297 +
146298 + return my_stmt;
146299 +}
146300 +
146301 +/* unsigned type -> unary or binary assign (rhs1 or rhs2 is constant)
146302 + * unsigned type cast to signed type, unsigned type: no more uses
146303 + * e.g., lib/vsprintf.c:simple_strtol()
146304 + * _10 = (unsigned long int) _9
146305 + * _11 = -_10;
146306 + * _12 = (long int) _11; (_11_ no more uses)
146307 + */
146308 +static bool is_call_or_cast(gimple stmt)
146309 +{
146310 + return gimple_assign_cast_p(stmt) || is_gimple_call(stmt);
146311 +}
146312 +
146313 +static bool is_unsigned_cast_or_call_def_stmt(const_tree node)
146314 +{
146315 + const_tree rhs;
146316 + gimple def_stmt;
146317 +
146318 + if (node == NULL_TREE)
146319 + return true;
146320 + if (is_gimple_constant(node))
146321 + return true;
146322 +
146323 + def_stmt = get_def_stmt(node);
146324 + if (!def_stmt)
146325 + return false;
146326 +
146327 + if (is_call_or_cast(def_stmt))
146328 + return true;
146329 +
146330 + if (!is_gimple_assign(def_stmt) || gimple_num_ops(def_stmt) != 2)
146331 + return false;
146332 + rhs = gimple_assign_rhs1(def_stmt);
146333 + def_stmt = get_def_stmt(rhs);
146334 + if (!def_stmt)
146335 + return false;
146336 + return is_call_or_cast(def_stmt);
146337 +}
146338 +
146339 +void unsigned_signed_cast_intentional_overflow(struct visited *visited, gassign *stmt)
146340 +{
146341 + unsigned int use_num;
146342 + gassign *so_stmt;
146343 + const_gimple def_stmt;
146344 + const_tree rhs1, rhs2;
146345 + tree rhs = gimple_assign_rhs1(stmt);
146346 + tree lhs_type = TREE_TYPE(gimple_assign_lhs(stmt));
146347 + const_tree rhs_type = TREE_TYPE(rhs);
146348 +
146349 + if (!(TYPE_UNSIGNED(rhs_type) && !TYPE_UNSIGNED(lhs_type)))
146350 + return;
146351 + if (GET_MODE_BITSIZE(TYPE_MODE(rhs_type)) != GET_MODE_BITSIZE(TYPE_MODE(lhs_type)))
146352 + return;
146353 + use_num = uses_num(rhs);
146354 + if (use_num != 1)
146355 + return;
146356 +
146357 + def_stmt = get_def_stmt(rhs);
146358 + if (!def_stmt)
146359 + return;
146360 + if (!is_gimple_assign(def_stmt))
146361 + return;
146362 +
146363 + rhs1 = gimple_assign_rhs1(def_stmt);
146364 + if (!is_unsigned_cast_or_call_def_stmt(rhs1))
146365 + return;
146366 +
146367 + rhs2 = gimple_assign_rhs2(def_stmt);
146368 + if (!is_unsigned_cast_or_call_def_stmt(rhs2))
146369 + return;
146370 + if (gimple_num_ops(def_stmt) == 3 && !is_gimple_constant(rhs1) && !is_gimple_constant(rhs2))
146371 + return;
146372 +
146373 + so_stmt = get_dup_stmt(visited, stmt);
146374 + create_up_and_down_cast(visited, so_stmt, lhs_type, gimple_assign_rhs1(so_stmt));
146375 +}
146376 diff --git a/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c b/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c
146377 new file mode 100644
146378 index 0000000..5622b51
146379 --- /dev/null
146380 +++ b/tools/gcc/size_overflow_plugin/remove_unnecessary_dup.c
146381 @@ -0,0 +1,137 @@
146382 +/*
146383 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
146384 + * Licensed under the GPL v2, or (at your option) v3
146385 + *
146386 + * Homepage:
146387 + * https://github.com/ephox-gcc-plugins/size_overflow
146388 + *
146389 + * Documentation:
146390 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
146391 + *
146392 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
146393 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
146394 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
146395 + *
146396 + * Usage:
146397 + * $ make
146398 + * $ make run
146399 + */
146400 +
146401 +#include "size_overflow.h"
146402 +
146403 +bool skip_expr_on_double_type(const gassign *stmt)
146404 +{
146405 + enum tree_code code = gimple_assign_rhs_code(stmt);
146406 +
146407 + switch (code) {
146408 + case RSHIFT_EXPR:
146409 + case TRUNC_DIV_EXPR:
146410 + case CEIL_DIV_EXPR:
146411 + case FLOOR_DIV_EXPR:
146412 + case ROUND_DIV_EXPR:
146413 + case EXACT_DIV_EXPR:
146414 + case RDIV_EXPR:
146415 + case TRUNC_MOD_EXPR:
146416 + case CEIL_MOD_EXPR:
146417 + case FLOOR_MOD_EXPR:
146418 + case ROUND_MOD_EXPR:
146419 + return true;
146420 + default:
146421 + return false;
146422 + }
146423 +}
146424 +
146425 +void create_up_and_down_cast(struct visited *visited, gassign *use_stmt, tree orig_type, tree rhs)
146426 +{
146427 + const_tree orig_rhs1;
146428 + tree down_lhs, new_lhs, dup_type = TREE_TYPE(rhs);
146429 + const_gimple down_cast, up_cast;
146430 + gimple_stmt_iterator gsi = gsi_for_stmt(use_stmt);
146431 +
146432 + down_cast = build_cast_stmt(visited, orig_type, rhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
146433 + down_lhs = get_lhs(down_cast);
146434 +
146435 + gsi = gsi_for_stmt(use_stmt);
146436 + up_cast = build_cast_stmt(visited, dup_type, down_lhs, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
146437 + new_lhs = get_lhs(up_cast);
146438 +
146439 + orig_rhs1 = gimple_assign_rhs1(use_stmt);
146440 + if (operand_equal_p(orig_rhs1, rhs, 0))
146441 + gimple_assign_set_rhs1(use_stmt, new_lhs);
146442 + else
146443 + gimple_assign_set_rhs2(use_stmt, new_lhs);
146444 + update_stmt(use_stmt);
146445 +
146446 + pointer_set_insert(visited->my_stmts, up_cast);
146447 + pointer_set_insert(visited->my_stmts, down_cast);
146448 + pointer_set_insert(visited->skip_expr_casts, up_cast);
146449 + pointer_set_insert(visited->skip_expr_casts, down_cast);
146450 +}
146451 +
146452 +static tree get_proper_unsigned_half_type(const_tree node)
146453 +{
146454 + tree new_type, type;
146455 +
146456 + gcc_assert(is_size_overflow_type(node));
146457 +
146458 + type = TREE_TYPE(node);
146459 + switch (TYPE_MODE(type)) {
146460 + case HImode:
146461 + new_type = unsigned_intQI_type_node;
146462 + break;
146463 + case SImode:
146464 + new_type = unsigned_intHI_type_node;
146465 + break;
146466 + case DImode:
146467 + new_type = unsigned_intSI_type_node;
146468 + break;
146469 + case TImode:
146470 + new_type = unsigned_intDI_type_node;
146471 + break;
146472 + default:
146473 + gcc_unreachable();
146474 + }
146475 +
146476 + if (TYPE_QUALS(type) != 0)
146477 + return build_qualified_type(new_type, TYPE_QUALS(type));
146478 + return new_type;
146479 +}
146480 +
146481 +static void insert_cast_rhs(struct visited *visited, gassign *stmt, tree rhs)
146482 +{
146483 + tree type;
146484 +
146485 + if (rhs == NULL_TREE)
146486 + return;
146487 + if (!is_size_overflow_type(rhs))
146488 + return;
146489 +
146490 + type = get_proper_unsigned_half_type(rhs);
146491 + if (is_gimple_constant(rhs))
146492 + return;
146493 + create_up_and_down_cast(visited, stmt, type, rhs);
146494 +}
146495 +
146496 +static void insert_cast(struct visited *visited, gassign *stmt, tree rhs)
146497 +{
146498 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode) && !is_size_overflow_type(rhs))
146499 + return;
146500 + gcc_assert(is_size_overflow_type(rhs));
146501 + insert_cast_rhs(visited, stmt, rhs);
146502 +}
146503 +
146504 +void insert_cast_expr(struct visited *visited, gassign *stmt, enum intentional_overflow_type type)
146505 +{
146506 + tree rhs1, rhs2;
146507 +
146508 + if (type == NO_INTENTIONAL_OVERFLOW || type == RHS1_INTENTIONAL_OVERFLOW) {
146509 + rhs1 = gimple_assign_rhs1(stmt);
146510 + insert_cast(visited, stmt, rhs1);
146511 + }
146512 +
146513 + if (type == NO_INTENTIONAL_OVERFLOW || type == RHS2_INTENTIONAL_OVERFLOW) {
146514 + rhs2 = gimple_assign_rhs2(stmt);
146515 + insert_cast(visited, stmt, rhs2);
146516 + }
146517 +}
146518 +
146519 diff --git a/tools/gcc/size_overflow_plugin/size_overflow.h b/tools/gcc/size_overflow_plugin/size_overflow.h
146520 new file mode 100644
146521 index 0000000..2d733e1
146522 --- /dev/null
146523 +++ b/tools/gcc/size_overflow_plugin/size_overflow.h
146524 @@ -0,0 +1,322 @@
146525 +#ifndef SIZE_OVERFLOW_H
146526 +#define SIZE_OVERFLOW_H
146527 +
146528 +#define CREATE_NEW_VAR NULL_TREE
146529 +#define MAX_PARAM 31
146530 +#define CANNOT_FIND_ARG 32
146531 +#define NONE_ARGNUM 32
146532 +
146533 +#define BEFORE_STMT true
146534 +#define AFTER_STMT false
146535 +
146536 +#define TURN_OFF_ASM_STR "# size_overflow MARK_TURN_OFF "
146537 +#define YES_ASM_STR "# size_overflow MARK_YES "
146538 +#define END_INTENTIONAL_ASM_STR "# size_overflow MARK_END_INTENTIONAL "
146539 +#define SO_ASM_STR "# size_overflow "
146540 +#define OK_ASM_STR "# size_overflow MARK_NO"
146541 +
146542 +#define FUNCTION_PTR_P(node) \
146543 + (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))
146544 +
146545 +#define CODES_LIMIT 32
146546 +
146547 +#define GLOBAL_NIFN_LEN 65536
146548 +#define NO_HASH 65537
146549 +
146550 +#define SIZE_OVERFLOW true
146551 +#define DISABLE_SIZE_OVERFLOW false
146552 +
146553 +#include "gcc-common.h"
146554 +
146555 +#include <string.h>
146556 +#include <limits.h>
146557 +
146558 +enum intentional_mark {
146559 + MARK_NO, MARK_YES, MARK_END_INTENTIONAL, MARK_TURN_OFF
146560 +};
146561 +
146562 +enum intentional_overflow_type {
146563 + NO_INTENTIONAL_OVERFLOW, RHS1_INTENTIONAL_OVERFLOW, RHS2_INTENTIONAL_OVERFLOW
146564 +};
146565 +
146566 +enum size_overflow_mark {
146567 + NO_SO_MARK, YES_SO_MARK, ASM_STMT_SO_MARK
146568 +};
146569 +
146570 +struct decl_hash {
146571 + size_t tree_codes_len;
146572 + unsigned char tree_codes[CODES_LIMIT];
146573 + const_tree decl;
146574 + const char *context;
146575 + unsigned int hash;
146576 + const char *fn_name;
146577 +};
146578 +
146579 +struct next_interesting_function;
146580 +typedef struct next_interesting_function * next_interesting_function_t;
146581 +
146582 +struct interesting_stmts;
146583 +typedef struct interesting_stmts * interesting_stmts_t;
146584 +
146585 +// Store data associated with the next_interesting_function_t entry
146586 +struct fn_raw_data
146587 +{
146588 + const char *decl_str;
146589 + tree decl;
146590 + const char *context;
146591 + unsigned int hash;
146592 + unsigned int num;
146593 + enum size_overflow_mark marked;
146594 +};
146595 +
146596 +#if BUILDING_GCC_VERSION <= 4007
146597 +DEF_VEC_P(next_interesting_function_t);
146598 +DEF_VEC_ALLOC_P(next_interesting_function_t, heap);
146599 +#endif
146600 +
146601 +#if BUILDING_GCC_VERSION >= 5000
146602 +typedef struct hash_set<const_gimple> gimple_set;
146603 +
146604 +static inline bool pointer_set_insert(gimple_set *visited, const_gimple stmt)
146605 +{
146606 + return visited->add(stmt);
146607 +}
146608 +
146609 +static inline bool pointer_set_contains(gimple_set *visited, const_gimple stmt)
146610 +{
146611 + return visited->contains(stmt);
146612 +}
146613 +
146614 +static inline gimple_set* pointer_set_create(void)
146615 +{
146616 + return new hash_set<const_gimple>;
146617 +}
146618 +
146619 +static inline void pointer_set_destroy(gimple_set *visited)
146620 +{
146621 + delete visited;
146622 +}
146623 +
146624 +typedef struct hash_set<next_interesting_function_t> next_interesting_function_set;
146625 +
146626 +static inline bool pointer_set_insert(next_interesting_function_set *visited, next_interesting_function_t node)
146627 +{
146628 + return visited->add(node);
146629 +}
146630 +
146631 +static inline bool pointer_set_contains(next_interesting_function_set *visited, next_interesting_function_t node)
146632 +{
146633 + return visited->contains(node);
146634 +}
146635 +
146636 +static inline next_interesting_function_set *next_interesting_function_pointer_set_create(void)
146637 +{
146638 + return new hash_set<next_interesting_function_t>;
146639 +}
146640 +
146641 +static inline void pointer_set_destroy(next_interesting_function_set *visited)
146642 +{
146643 + delete visited;
146644 +}
146645 +#else
146646 +typedef struct pointer_set_t gimple_set;
146647 +typedef struct pointer_set_t next_interesting_function_set;
146648 +
146649 +static inline next_interesting_function_set *next_interesting_function_pointer_set_create(void)
146650 +{
146651 + return pointer_set_create();
146652 +}
146653 +#endif
146654 +
146655 +struct visited {
146656 + gimple_set *stmts;
146657 + gimple_set *my_stmts;
146658 + gimple_set *skip_expr_casts;
146659 + gimple_set *no_cast_check;
146660 +};
146661 +
146662 +/*
146663 + * * children: callers with data flow into the integer parameter of decl
146664 + * * decl_name: name of the function or the field
146665 + * * context: the containing type name for a function pointer (or "fielddecl" if the type has no name), otherwise either "vardecl" or "fndecl"
146666 + * * hash: hash num of the function
146667 + * * num: parameter number (1-31) or return value (0)
146668 + * * marked: determines whether to duplicate stmts and/or look for missing hashtable entries
146669 + * * orig_next_node: pointer to the originally cloned function
146670 + */
146671 +
146672 +struct next_interesting_function {
146673 + next_interesting_function_t next;
146674 +#if BUILDING_GCC_VERSION <= 4007
146675 + VEC(next_interesting_function_t, heap) *children;
146676 +#else
146677 + vec<next_interesting_function_t, va_heap, vl_embed> *children;
146678 +#endif
146679 + const char *decl_name;
146680 + const char *context;
146681 + unsigned int hash;
146682 + unsigned int num;
146683 + enum size_overflow_mark marked;
146684 + next_interesting_function_t orig_next_node;
146685 +};
146686 +
146687 +// size_overflow_plugin.c
146688 +extern tree report_size_overflow_decl;
146689 +extern tree size_overflow_type_HI;
146690 +extern tree size_overflow_type_SI;
146691 +extern tree size_overflow_type_DI;
146692 +extern tree size_overflow_type_TI;
146693 +
146694 +
146695 +// size_overflow_plugin_hash.c
146696 +struct size_overflow_hash {
146697 + const struct size_overflow_hash * const next;
146698 + const char * const name;
146699 + const char * const context;
146700 + const unsigned int param;
146701 +};
146702 +
146703 +extern const char *get_orig_decl_name(const_tree decl);
146704 +extern bool is_size_overflow_asm(const_gimple stmt);
146705 +extern void print_missing_function(next_interesting_function_t node);
146706 +extern const struct size_overflow_hash *get_size_overflow_hash_entry_tree(const_tree fndecl, unsigned int argnum, bool hash_table);
146707 +extern unsigned int find_arg_number_tree(const_tree arg, const_tree func);
146708 +extern unsigned int get_decl_hash(const_tree decl, const char *decl_name);
146709 +extern const struct size_overflow_hash *get_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum);
146710 +
146711 +
146712 +// intentional_overflow.c
146713 +extern enum intentional_mark get_intentional_attr_type(const_tree node);
146714 +extern tree get_size_overflow_asm_input(const gasm *stmt);
146715 +extern enum intentional_mark check_intentional_size_overflow_asm_and_attribute(const_tree var);
146716 +extern bool is_size_overflow_insert_check_asm(const gasm *stmt);
146717 +extern enum intentional_mark check_intentional_attribute(const_gimple stmt, unsigned int argnum);
146718 +extern enum intentional_mark get_so_asm_type(const_gimple stmt);
146719 +extern const_tree get_attribute(const char* attr_name, const_tree decl);
146720 +extern bool is_a_cast_and_const_overflow(const_tree no_const_rhs);
146721 +extern bool is_const_plus_unsigned_signed_truncation(const_tree lhs);
146722 +extern bool is_a_constant_overflow(const gassign *stmt, const_tree rhs);
146723 +extern tree handle_intentional_overflow(struct visited *visited, interesting_stmts_t expand_from, bool check_overflow, gassign *stmt, tree change_rhs, tree new_rhs2);
146724 +extern tree handle_integer_truncation(struct visited *visited, interesting_stmts_t expand_from, const_tree lhs);
146725 +extern bool is_a_neg_overflow(const gassign *stmt, const_tree rhs);
146726 +extern enum intentional_overflow_type add_mul_intentional_overflow(const gassign *stmt);
146727 +extern void unsigned_signed_cast_intentional_overflow(struct visited *visited, gassign *stmt);
146728 +
146729 +
146730 +// insert_size_overflow_asm.c
146731 +#if BUILDING_GCC_VERSION >= 4009
146732 +extern opt_pass *make_insert_size_overflow_asm_pass(void);
146733 +#else
146734 +extern struct opt_pass *make_insert_size_overflow_asm_pass(void);
146735 +#endif
146736 +extern bool search_interesting_args(tree fndecl, bool *argnums);
146737 +
146738 +
146739 +// size_overflow_misc.c
146740 +extern bool is_vararg(const_tree fn, unsigned int num);
146741 +extern tree get_ref_field(const_tree ref);
146742 +extern unsigned int get_correct_argnum_fndecl(const_tree fndecl, const_tree correct_argnum_of_fndecl, unsigned int num);
146743 +extern const char *get_type_name_from_field(const_tree field_decl);
146744 +extern void set_dominance_info(void);
146745 +extern void unset_dominance_info(void);
146746 +extern tree get_interesting_orig_fndecl_from_stmt(const gcall *stmt);
146747 +extern tree get_orig_fndecl(const_tree clone_fndecl);
146748 +extern unsigned int get_correct_argnum(const_tree decl, const_tree correct_argnum_of_decl, unsigned int argnum);
146749 +extern bool is_valid_cgraph_node(struct cgraph_node *node);
146750 +extern void set_current_function_decl(tree fndecl);
146751 +extern void unset_current_function_decl(void);
146752 +extern gimple get_def_stmt(const_tree node);
146753 +extern tree create_new_var(tree type);
146754 +extern gimple build_cast_stmt(struct visited *visited, tree dst_type, tree rhs, tree lhs, gimple_stmt_iterator *gsi, bool before, bool force);
146755 +extern bool skip_types(const_tree var);
146756 +extern tree cast_a_tree(tree type, tree var);
146757 +extern bool is_size_overflow_type(const_tree var);
146758 +extern bool made_by_compiler(const_tree decl);
146759 +extern gimple get_fnptr_def_stmt(const_tree fn_ptr);
146760 +extern tree get_lhs(const_gimple stmt);
146761 +
146762 +
146763 +// size_overflow_transform.c
146764 +struct interesting_stmts {
146765 + struct interesting_stmts *next;
146766 + next_interesting_function_t next_node;
146767 + gimple first_stmt;
146768 + tree orig_node;
146769 + unsigned int num;
146770 +};
146771 +
146772 +extern unsigned int size_overflow_transform(struct cgraph_node *node);
146773 +extern tree handle_fnptr_assign(const_gimple stmt);
146774 +
146775 +
146776 +// size_overflow_transform_core.c
146777 +extern tree cast_to_new_size_overflow_type(struct visited *visited, gimple stmt, tree rhs, tree size_overflow_type, bool before);
146778 +extern tree get_size_overflow_type(struct visited *visited, const_gimple stmt, const_tree node);
146779 +extern tree expand(struct visited *visited, interesting_stmts_t expand_from, tree lhs);
146780 +extern void check_size_overflow(interesting_stmts_t expand_from, gimple stmt, tree size_overflow_type, tree cast_rhs, tree rhs, bool before);
146781 +extern tree dup_assign(struct visited *visited, gassign *oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3);
146782 +extern tree create_assign(struct visited *visited, gimple oldstmt, tree rhs1, bool before);
146783 +
146784 +
146785 +// remove_unnecessary_dup.c
146786 +extern struct opt_pass *make_remove_unnecessary_dup_pass(void);
146787 +extern void insert_cast_expr(struct visited *visited, gassign *stmt, enum intentional_overflow_type type);
146788 +extern bool skip_expr_on_double_type(const gassign *stmt);
146789 +extern void create_up_and_down_cast(struct visited *visited, gassign *use_stmt, tree orig_type, tree rhs);
146790 +
146791 +
146792 +// size_overflow_ipa.c
146793 +struct walk_use_def_data {
146794 + next_interesting_function_t parent;
146795 + next_interesting_function_t next_cnodes_head;
146796 + gimple_set *visited;
146797 +};
146798 +
146799 +extern const char* get_decl_context(const_tree decl);
146800 +extern void add_to_global_next_interesting_function(next_interesting_function_t new_entry);
146801 +extern bool has_next_interesting_function_vec(next_interesting_function_t target, next_interesting_function_t next_node);
146802 +extern void push_child(next_interesting_function_t parent, next_interesting_function_t child);
146803 +extern struct cgraph_node *get_cnode(const_tree fndecl);
146804 +extern next_interesting_function_t global_next_interesting_function[GLOBAL_NIFN_LEN];
146805 +extern next_interesting_function_t get_global_next_interesting_function_entry(struct fn_raw_data *raw_data);
146806 +extern next_interesting_function_t get_global_next_interesting_function_entry_with_hash(struct fn_raw_data *raw_data);
146807 +extern void size_overflow_register_hooks(void);
146808 +#if BUILDING_GCC_VERSION >= 4009
146809 +extern opt_pass *make_size_overflow_functions_pass(void);
146810 +#else
146811 +extern struct opt_pass *make_size_overflow_functions_pass(void);
146812 +#endif
146813 +extern void size_overflow_node_removal_hook(struct cgraph_node *node, void *data);
146814 +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);
146815 +extern next_interesting_function_t create_new_next_interesting_decl(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node);
146816 +extern next_interesting_function_t create_new_next_interesting_entry(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node);
146817 +
146818 +
146819 +// size_overflow_lto.c
146820 +extern void size_overflow_read_summary_lto(void);
146821 +#if BUILDING_GCC_VERSION >= 4008
146822 +extern void size_overflow_write_summary_lto(void);
146823 +#elif BUILDING_GCC_VERSION >= 4006
146824 +extern void size_overflow_write_summary_lto(cgraph_node_set set, varpool_node_set vset);
146825 +#else
146826 +extern void size_overflow_write_summary_lto(cgraph_node_set set);
146827 +#endif
146828 +
146829 +// size_overflow_fnptrs.c
146830 +extern void handle_function_ptr_ret(struct walk_use_def_data *use_def_data, const_tree fn_ptr);
146831 +extern void check_local_variables(next_interesting_function_t next_node);
146832 +extern void check_global_variables(next_interesting_function_t cur_global);
146833 +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);
146834 +
146835 +
146836 +// size_overflow_debug.c
146837 +extern void __unused print_intentional_mark(enum intentional_mark mark);
146838 +extern unsigned int __unused size_overflow_dump_function(FILE *file, struct cgraph_node *node);
146839 +extern void __unused print_next_interesting_functions_chain(next_interesting_function_t head, bool only_this);
146840 +extern void __unused print_global_next_interesting_functions(void);
146841 +extern void __unused print_children_chain_list(next_interesting_function_t next_node);
146842 +extern void __unused print_all_next_node_children_chain_list(next_interesting_function_t next_node);
146843 +extern const char * __unused print_so_mark_name(enum size_overflow_mark mark);
146844 +extern const char * __unused print_intentional_mark_name(enum intentional_mark mark);
146845 +
146846 +#endif
146847 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_debug.c b/tools/gcc/size_overflow_plugin/size_overflow_debug.c
146848 new file mode 100644
146849 index 0000000..ab2d25a
146850 --- /dev/null
146851 +++ b/tools/gcc/size_overflow_plugin/size_overflow_debug.c
146852 @@ -0,0 +1,194 @@
146853 +/*
146854 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
146855 + * Licensed under the GPL v2, or (at your option) v3
146856 + *
146857 + * Homepage:
146858 + * https://github.com/ephox-gcc-plugins/size_overflow
146859 + *
146860 + * Documentation:
146861 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
146862 + *
146863 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
146864 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
146865 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
146866 + *
146867 + * Usage:
146868 + * $ make
146869 + * $ make run
146870 + */
146871 +
146872 +#include "size_overflow.h"
146873 +
146874 +void __unused print_intentional_mark(enum intentional_mark mark)
146875 +{
146876 + fprintf(stderr, "intentional mark: ");
146877 + switch (mark) {
146878 + case MARK_NO:
146879 + fprintf(stderr, "mark_no\n");
146880 + break;
146881 + case MARK_YES:
146882 + fprintf(stderr, "mark_yes\n");
146883 + break;
146884 + case MARK_TURN_OFF:
146885 + fprintf(stderr, "mark_turn_off\n");
146886 + break;
146887 + case MARK_END_INTENTIONAL:
146888 + fprintf(stderr, "mark_end_intentional\n");
146889 + break;
146890 + }
146891 +}
146892 +
146893 +unsigned int __unused size_overflow_dump_function(FILE *file, struct cgraph_node *node)
146894 +{
146895 + basic_block bb;
146896 +
146897 + fprintf(file, "dump_function function_name: %s\n", cgraph_node_name(node));
146898 +
146899 + fprintf(file, "\nstmts:\n");
146900 + FOR_ALL_BB_FN(bb, DECL_STRUCT_FUNCTION(NODE_DECL(node))) {
146901 + gimple_stmt_iterator si;
146902 +
146903 + fprintf(file, "<bb %u>:\n", bb->index);
146904 + for (si = gsi_start_phis(bb); !gsi_end_p(si); gsi_next(&si))
146905 + print_gimple_stmt(file, gsi_stmt(si), 0, TDF_VOPS|TDF_MEMSYMS);
146906 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
146907 + print_gimple_stmt(file, gsi_stmt(si), 0, TDF_VOPS|TDF_MEMSYMS);
146908 + fprintf(file, "\n");
146909 + }
146910 +
146911 + fprintf(file, "---------------------------------\n");
146912 +
146913 + return 0;
146914 +}
146915 +
146916 +static void __unused print_next_interesting_function(next_interesting_function_t node)
146917 +{
146918 + unsigned int i, children_len;
146919 + next_interesting_function_t cur;
146920 +
146921 + if (!node)
146922 + return;
146923 +
146924 +#if BUILDING_GCC_VERSION <= 4007
146925 + if (VEC_empty(next_interesting_function_t, node->children))
146926 + children_len = 0;
146927 + else
146928 + children_len = VEC_length(next_interesting_function_t, node->children);
146929 +#else
146930 + children_len = vec_safe_length(node->children);
146931 +#endif
146932 +
146933 + fprintf(stderr, "print_next_interesting_function: ptr: %p, ", node);
146934 + fprintf(stderr, "decl_name: %s, ", node->decl_name);
146935 +
146936 + fprintf(stderr, "num: %u marked: %s context: %s children len: %u\n", node->num, print_so_mark_name(node->marked), node->context, children_len);
146937 +#if BUILDING_GCC_VERSION <= 4007
146938 + if (VEC_empty(next_interesting_function_t, node->children))
146939 + return;
146940 + FOR_EACH_VEC_ELT(next_interesting_function_t, node->children, i, cur) {
146941 +#else
146942 + FOR_EACH_VEC_SAFE_ELT(node->children, i, cur) {
146943 +#endif
146944 + 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);
146945 + }
146946 +}
146947 +
146948 +// Dump the full next_interesting_function_t list for parsing by print_dependecy.py
146949 +void __unused print_next_interesting_functions_chain(next_interesting_function_t head, bool only_this)
146950 +{
146951 + next_interesting_function_t cur;
146952 + unsigned int len;
146953 +
146954 + fprintf(stderr, "----------------------\nnext_interesting_function_t head: %p\n", head);
146955 + for (cur = head, len = 0; cur; cur = cur->next, len++) {
146956 + fprintf(stderr, "%u. ", len + 1);
146957 + print_next_interesting_function(cur);
146958 +
146959 + fprintf(stderr, "+++++ has orig node: %p +++++\n", cur->orig_next_node);
146960 + print_next_interesting_function(cur->orig_next_node);
146961 +
146962 + if (only_this)
146963 + break;
146964 + }
146965 +
146966 + fprintf(stderr, "len: %u\n----------------------\n\n\n", len + 1);
146967 +}
146968 +
146969 +void __unused print_global_next_interesting_functions(void)
146970 +{
146971 + unsigned int i;
146972 +
146973 + fprintf(stderr, "----------------------\nprint_global_next_interesting_functions:\n----------------------\n");
146974 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
146975 + if (!global_next_interesting_function[i])
146976 + continue;
146977 + fprintf(stderr, "hash: %u\n", i);
146978 + print_next_interesting_functions_chain(global_next_interesting_function[i], false);
146979 + }
146980 + fprintf(stderr, "----------------------\n\n");
146981 +}
146982 +
146983 +// Dump the information related to the specified next_interesting_function_t for parsing by print_dependecy.py
146984 +void __unused print_children_chain_list(next_interesting_function_t next_node)
146985 +{
146986 + next_interesting_function_t cur;
146987 + unsigned int i;
146988 +
146989 +#if BUILDING_GCC_VERSION <= 4007
146990 + if (VEC_empty(next_interesting_function_t, next_node->children))
146991 + return;
146992 + FOR_EACH_VEC_ELT(next_interesting_function_t, next_node->children, i, cur) {
146993 +#else
146994 + FOR_EACH_VEC_SAFE_ELT(next_node->children, i, cur) {
146995 +#endif
146996 + 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);
146997 + print_children_chain_list(cur);
146998 + }
146999 +}
147000 +
147001 +void __unused print_all_next_node_children_chain_list(next_interesting_function_t head)
147002 +{
147003 + next_interesting_function_t cur;
147004 +
147005 + for (cur = head; cur; cur = cur->next) {
147006 +#if BUILDING_GCC_VERSION <= 4007
147007 + if (VEC_empty(next_interesting_function_t, cur->children))
147008 +#else
147009 + if (vec_safe_length(cur->children) == 0)
147010 +#endif
147011 + continue;
147012 + fprintf(stderr, "############ START ############\n");
147013 + print_children_chain_list(cur);
147014 + fprintf(stderr, "############ END ############\n");
147015 + }
147016 +}
147017 +
147018 +const char * __unused print_intentional_mark_name(enum intentional_mark mark)
147019 +{
147020 + switch(mark) {
147021 + case MARK_NO:
147022 + return "mark no";
147023 + case MARK_YES:
147024 + return "mark yes";
147025 + case MARK_END_INTENTIONAL:
147026 + return "mark end intetional";
147027 + case MARK_TURN_OFF:
147028 + return "mark turn off";
147029 + }
147030 +
147031 + gcc_unreachable();
147032 +}
147033 +
147034 +const char * __unused print_so_mark_name(enum size_overflow_mark mark)
147035 +{
147036 + switch(mark) {
147037 + case ASM_STMT_SO_MARK:
147038 + return "asm_stmt_so_mark";
147039 + case YES_SO_MARK:
147040 + return "yes_so_mark";
147041 + case NO_SO_MARK:
147042 + return "no_so_mark";
147043 + }
147044 +
147045 + gcc_unreachable();
147046 +}
147047 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash.data b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
147048 new file mode 100644
147049 index 0000000..a883e73
147050 --- /dev/null
147051 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash.data
147052 @@ -0,0 +1,20743 @@
147053 +enable_so_recv_ctrl_pipe_us_data_0 recv_ctrl_pipe us_data 0 0 NULL
147054 +enable_so___earlyonly_bootmem_alloc_fndecl_3 __earlyonly_bootmem_alloc fndecl 2-3-4 3 NULL
147055 +enable_so_size_ttm_mem_reg_8 size ttm_mem_reg 0 8 NULL
147056 +enable_so_char2uni_nls_table_12 char2uni nls_table 0 12 NULL
147057 +enable_so_nrbufs_pipe_inode_info_13 nrbufs pipe_inode_info 0 13 NULL nohasharray
147058 +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
147059 +enable_so_NumPhys__EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE_17 NumPhys _EVENT_DATA_SAS_EXPANDER_STATUS_CHANGE 0 17 NULL
147060 +enable_so_max_name_len_fndecl_19 max_name_len fndecl 0 19 NULL nohasharray
147061 +enable_so_kfd_wait_on_events_fndecl_19 kfd_wait_on_events fndecl 2 19 &enable_so_max_name_len_fndecl_19
147062 +enable_so_ext4_seek_data_fndecl_21 ext4_seek_data fndecl 2 21 NULL
147063 +enable_so_dma_buf_sz_sxgbe_priv_data_24 dma_buf_sz sxgbe_priv_data 0 24 NULL nohasharray
147064 +enable_so_max_cache_pages_snd_emu10k1_24 max_cache_pages snd_emu10k1 0 24 &enable_so_dma_buf_sz_sxgbe_priv_data_24
147065 +enable_so_T9_reportid_max_mxt_data_25 T9_reportid_max mxt_data 0 25 NULL
147066 +enable_so_max_frags_vxge_hw_fifo_config_26 max_frags vxge_hw_fifo_config 0 26 NULL
147067 +enable_so_snic_reset_stats_write_fndecl_30 snic_reset_stats_write fndecl 3 30 NULL
147068 +enable_so_ocfs2_xattr_get_clusters_fndecl_34 ocfs2_xattr_get_clusters fndecl 0 34 NULL nohasharray
147069 +enable_so_ath10k_core_create_fndecl_34 ath10k_core_create fndecl 1 34 &enable_so_ocfs2_xattr_get_clusters_fndecl_34
147070 +enable_so_total_drm_buf_35 total drm_buf 0 35 NULL
147071 +enable_so_sis5595_device_add_fndecl_39 sis5595_device_add fndecl 1 39 NULL
147072 +enable_so_mc_vram_size_amdgpu_mc_45 mc_vram_size amdgpu_mc 0 45 NULL
147073 +enable_so_iwl_dbgfs_nvm_read_fndecl_54 iwl_dbgfs_nvm_read fndecl 3 54 NULL
147074 +enable_so_pattern_len_tcf_em_text_57 pattern_len tcf_em_text 0 57 NULL nohasharray
147075 +enable_so_p54_init_common_fndecl_57 p54_init_common fndecl 1 57 &enable_so_pattern_len_tcf_em_text_57
147076 +enable_so_rx_desc_count_i40evf_adapter_62 rx_desc_count i40evf_adapter 0 62 NULL nohasharray
147077 +enable_so_bin_to_hex_dup_fndecl_62 bin_to_hex_dup fndecl 2 62 &enable_so_rx_desc_count_i40evf_adapter_62
147078 +enable_so_len_nf_ct_ext_63 len nf_ct_ext 0 63 NULL
147079 +enable_so_sl811_hc_init_fndecl_66 sl811_hc_init fndecl 2-3 66 NULL
147080 +enable_so_cipso_v4_delopt_fndecl_67 cipso_v4_delopt fndecl 0 67 NULL
147081 +enable_so_npages_mlx5_pages_req_70 npages mlx5_pages_req 0 70 NULL
147082 +enable_so_mtt_seg_size_mthca_limits_72 mtt_seg_size mthca_limits 0 72 NULL
147083 +enable_so_iov_iter_get_pages_alloc_fndecl_76 iov_iter_get_pages_alloc fndecl 0-3 76 NULL
147084 +enable_so_iwch_reject_cr_fndecl_78 iwch_reject_cr fndecl 3 78 NULL
147085 +enable_so_data_size_data_queue_85 data_size data_queue 0 85 NULL nohasharray
147086 +enable_so_ieee80211_if_read_dot11MeshMaxPeerLinks_fndecl_85 ieee80211_if_read_dot11MeshMaxPeerLinks fndecl 3 85 &enable_so_data_size_data_queue_85
147087 +enable_so_alpha_nr_max_gf100_grctx_oclass_87 alpha_nr_max gf100_grctx_oclass 0 87 NULL
147088 +enable_so_ceph_dir_llseek_fndecl_99 ceph_dir_llseek fndecl 2 99 NULL
147089 +enable_so_erase_size_flash_info_100 erase_size flash_info 0 100 NULL
147090 +enable_so_ncp_do_request_fndecl_102 ncp_do_request fndecl 2-4-0 102 NULL
147091 +enable_so_fi_blkno_ocfs2_find_inode_args_104 fi_blkno ocfs2_find_inode_args 0 104 NULL
147092 +enable_so_phase_snd_usb_endpoint_106 phase snd_usb_endpoint 0 106 NULL
147093 +enable_so_kvm_read_guest_fndecl_107 kvm_read_guest fndecl 2-4 107 NULL
147094 +enable_so_add_new_gdb_meta_bg_fndecl_116 add_new_gdb_meta_bg fndecl 3 116 NULL nohasharray
147095 +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
147096 +enable_so_buffer_min_vardecl_floppy_c_117 buffer_min vardecl_floppy.c 0 117 NULL
147097 +enable_so_needed_tailroom_net_device_118 needed_tailroom net_device 0 118 NULL
147098 +enable_so_send_remove_xattr_fndecl_122 send_remove_xattr fndecl 4 122 NULL
147099 +enable_so_ipath_reg_phys_mr_fndecl_125 ipath_reg_phys_mr fndecl 3 125 NULL
147100 +enable_so_in_ep_rtl_usb_128 in_ep rtl_usb 0 128 NULL nohasharray
147101 +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
147102 +enable_so_cifs_setxattr_fndecl_134 cifs_setxattr fndecl 4 134 NULL
147103 +enable_so_nr_pages_dma_mapping_136 nr_pages dma_mapping 0 136 NULL
147104 +enable_so_len_io_failure_record_139 len io_failure_record 0 139 NULL
147105 +enable_so_n_mac_vlan_filters_vfpf_set_q_filters_tlv_142 n_mac_vlan_filters vfpf_set_q_filters_tlv 0 142 NULL
147106 +enable_so_leaf_move_items_fndecl_145 leaf_move_items fndecl 4 145 NULL
147107 +enable_so_ir_context_support_fw_ohci_147 ir_context_support fw_ohci 0 147 NULL
147108 +enable_so_jffs2_nfs_get_inode_fndecl_152 jffs2_nfs_get_inode fndecl 2 152 NULL
147109 +enable_so_uvc_endpoint_max_bpi_fndecl_155 uvc_endpoint_max_bpi fndecl 0 155 NULL
147110 +enable_so_ext4_ext_remove_space_fndecl_170 ext4_ext_remove_space fndecl 2-3 170 NULL
147111 +enable_so_acl_len_nfs_getaclres_171 acl_len nfs_getaclres 0 171 NULL
147112 +enable_so_vfs_write_fndecl_176 vfs_write fndecl 3-0 176 NULL
147113 +enable_so_ufx_read_edid_fndecl_184 ufx_read_edid fndecl 0 184 NULL
147114 +enable_so_ci_get_data_fndecl_185 ci_get_data fndecl 3 185 NULL
147115 +enable_so_length_sl811h_ep_186 length sl811h_ep 0 186 NULL
147116 +enable_so_sddr55_write_data_fndecl_188 sddr55_write_data fndecl 4-3 188 NULL
147117 +enable_so_mptctl_do_fw_download_fndecl_190 mptctl_do_fw_download fndecl 3 190 NULL
147118 +enable_so_give_pages_fndecl_198 give_pages fndecl 3 198 NULL
147119 +enable_so_sys_pwrite64_fndecl_206 sys_pwrite64 fndecl 3 206 NULL
147120 +enable_so_xfs_zero_file_space_fndecl_211 xfs_zero_file_space fndecl 3-2 211 NULL nohasharray
147121 +enable_so_bn_shadow_fndecl_211 bn_shadow fndecl 2 211 &enable_so_xfs_zero_file_space_fndecl_211
147122 +enable_so_cxgb_alloc_mem_fndecl_212 cxgb_alloc_mem fndecl 1 212 NULL
147123 +enable_so_copies_r10conf_216 copies r10conf 0 216 NULL
147124 +enable_so_optrom_size_qla_hw_data_230 optrom_size qla_hw_data 0 230 NULL
147125 +enable_so_afs_cell_alloc_fndecl_231 afs_cell_alloc fndecl 2 231 NULL
147126 +enable_so_ad9523_write_fndecl_233 ad9523_write fndecl 2 233 NULL
147127 +enable_so_iwl_dbgfs_low_latency_read_fndecl_237 iwl_dbgfs_low_latency_read fndecl 3 237 NULL
147128 +enable_so_ocfs2_mark_extent_refcounted_fndecl_240 ocfs2_mark_extent_refcounted fndecl 6-4 240 NULL
147129 +enable_so_musb_readw_vardecl_241 musb_readw vardecl 0 241 NULL
147130 +enable_so_sysv_inode_by_name_fndecl_242 sysv_inode_by_name fndecl 0 242 NULL
147131 +enable_so_adis16400_show_serial_number_fndecl_246 adis16400_show_serial_number fndecl 3 246 NULL
147132 +enable_so_offset_nvkm_vma_248 offset nvkm_vma 0 248 NULL
147133 +enable_so_amdgpu_vm_directory_size_fndecl_249 amdgpu_vm_directory_size fndecl 0 249 NULL
147134 +enable_so_ipw_get_current_rate_fndecl_250 ipw_get_current_rate fndecl 0 250 NULL
147135 +enable_so_ixgbevf_change_mtu_fndecl_251 ixgbevf_change_mtu fndecl 2 251 NULL nohasharray
147136 +enable_so_pclk_limit_ov6650_251 pclk_limit ov6650 0 251 &enable_so_ixgbevf_change_mtu_fndecl_251 nohasharray
147137 +enable_so_saved_skb_len_nfc_digital_dev_251 saved_skb_len nfc_digital_dev 0 251 &enable_so_pclk_limit_ov6650_251
147138 +enable_so_venus_symlink_fndecl_257 venus_symlink fndecl 6-4 257 NULL
147139 +enable_so_l2cap_parse_conf_req_fndecl_260 l2cap_parse_conf_req fndecl 0 260 NULL
147140 +enable_so_lf_entries_gfs2_leaf_263 lf_entries gfs2_leaf 0 263 NULL
147141 +enable_so_max_can_queue_fc_fcp_internal_270 max_can_queue fc_fcp_internal 0 270 NULL
147142 +enable_so_dbg_leb_change_fndecl_272 dbg_leb_change fndecl 4 272 NULL
147143 +enable_so_tcp_current_mss_fndecl_275 tcp_current_mss fndecl 0 275 NULL
147144 +enable_so_vmbus_sendpacket_multipagebuffer_fndecl_276 vmbus_sendpacket_multipagebuffer fndecl 4 276 NULL
147145 +enable_so_es_lblk_extent_status_280 es_lblk extent_status 0 280 NULL
147146 +enable_so_read_snd_midi_event_282 read snd_midi_event 0 282 NULL
147147 +enable_so_bytesperline_sh_veu_vfmt_288 bytesperline sh_veu_vfmt 0 288 NULL nohasharray
147148 +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
147149 +enable_so_do_mmap_pgoff_fndecl_291 do_mmap_pgoff fndecl 3-0-6 291 NULL
147150 +enable_so_islpci_mgt_transaction_fndecl_297 islpci_mgt_transaction fndecl 5 297 NULL
147151 +enable_so__alloc_cdb_cont_fndecl_298 _alloc_cdb_cont fndecl 2 298 NULL
147152 +enable_so_num_targets_dm_table_302 num_targets dm_table 0 302 NULL
147153 +enable_so_xfpregs_get_fndecl_305 xfpregs_get fndecl 4 305 NULL
147154 +enable_so_tx_ring_size_mvneta_port_307 tx_ring_size mvneta_port 0 307 NULL
147155 +enable_so_omapdss_update_prop_fndecl_309 omapdss_update_prop fndecl 3 309 NULL
147156 +enable_so_cfpkt_create_pfx_fndecl_313 cfpkt_create_pfx fndecl 2 313 NULL
147157 +enable_so_MaxBufferSize_negotiate_rsp_314 MaxBufferSize negotiate_rsp 0 314 NULL nohasharray
147158 +enable_so_ip_num_acl_subject_label_314 ip_num acl_subject_label 0 314 &enable_so_MaxBufferSize_negotiate_rsp_314
147159 +enable_so_name_len_jffs2_raw_xattr_318 name_len jffs2_raw_xattr 0 318 NULL
147160 +enable_so_num_alt_usb_usbvision_328 num_alt usb_usbvision 0 328 NULL
147161 +enable_so_start_fb_cmap_user_333 start fb_cmap_user 0 333 NULL
147162 +enable_so_block_size_se_dev_attrib_334 block_size se_dev_attrib 0 334 NULL
147163 +enable_so_done_status_atmel_spi_338 done_status atmel_spi 0 338 NULL
147164 +enable_so_udl_submit_urb_fndecl_353 udl_submit_urb fndecl 3 353 NULL
147165 +enable_so_tx_idx_bchannel_355 tx_idx bchannel 0 355 NULL
147166 +enable_so_bNumConfigurations_usb_device_descriptor_360 bNumConfigurations usb_device_descriptor 0 360 NULL
147167 +enable_so_link_buf_size_dvb_ca_slot_365 link_buf_size dvb_ca_slot 0 365 NULL
147168 +enable_so_length_st21nfca_atr_req_366 length st21nfca_atr_req 0 366 NULL
147169 +enable_so_fusbh200_urb_done_fndecl_371 fusbh200_urb_done fndecl 3 371 NULL
147170 +enable_so_setup_ctxt_fndecl_374 setup_ctxt fndecl 2 374 NULL nohasharray
147171 +enable_so_intel_soc_dts_iosf_init_fndecl_374 intel_soc_dts_iosf_init fndecl 2 374 &enable_so_setup_ctxt_fndecl_374
147172 +enable_so___i2400mu_send_barker_fndecl_375 __i2400mu_send_barker fndecl 3 375 NULL
147173 +enable_so_cx18_read_fndecl_384 cx18_read fndecl 3 384 NULL
147174 +enable_so_duplex_tg3_link_config_395 duplex tg3_link_config 0 395 NULL
147175 +enable_so_keyspan_pda_write_fndecl_398 keyspan_pda_write fndecl 4 398 NULL
147176 +enable_so_cyberjack_write_fndecl_399 cyberjack_write fndecl 4 399 NULL
147177 +enable_so_fcp_resid_bnx2fc_cmd_412 fcp_resid bnx2fc_cmd 0 412 NULL
147178 +enable_so_base_cbuf_417 base cbuf 0 417 NULL
147179 +enable_so_mp_config_acpi_gsi_fndecl_419 mp_config_acpi_gsi fndecl 2 419 NULL
147180 +enable_so_fat_short2uni_fndecl_423 fat_short2uni fndecl 0 423 NULL
147181 +enable_so_vol_reg_size_tas571x_chip_426 vol_reg_size tas571x_chip 0 426 NULL
147182 +enable_so_status_netdev_desc_430 status netdev_desc 0 430 NULL
147183 +enable_so_twsk_obj_size_timewait_sock_ops_433 twsk_obj_size timewait_sock_ops 0 433 NULL
147184 +enable_so_hfs_file_fsync_fndecl_434 hfs_file_fsync fndecl 2-3 434 NULL
147185 +enable_so_rx_buf_sz_rhine_private_435 rx_buf_sz rhine_private 0 435 NULL
147186 +enable_so_id_alias_prop_438 id alias_prop 0 438 NULL
147187 +enable_so_get_conn_info_fndecl_440 get_conn_info fndecl 4 440 NULL
147188 +enable_so_intr_count_ql_adapter_442 intr_count ql_adapter 0 442 NULL
147189 +enable_so_challenge_len_ieee802_11_elems_444 challenge_len ieee802_11_elems 0 444 NULL
147190 +enable_so_cem_build_path_fndecl_451 cem_build_path fndecl 0 451 NULL nohasharray
147191 +enable_so_k3_dma_prep_memcpy_fndecl_451 k3_dma_prep_memcpy fndecl 4 451 &enable_so_cem_build_path_fndecl_451
147192 +enable_so_width_g2d_frame_453 width g2d_frame 0 453 NULL
147193 +enable_so___kfifo_max_r_fndecl_459 __kfifo_max_r fndecl 0-1-2 459 NULL nohasharray
147194 +enable_so_root_entry_lctp_fndecl_459 root_entry_lctp fndecl 0 459 &enable_so___kfifo_max_r_fndecl_459
147195 +enable_so_ssp_debug_mode_read_fndecl_463 ssp_debug_mode_read fndecl 3 463 NULL
147196 +enable_so_page_size_nvme_dev_465 page_size nvme_dev 0 465 NULL
147197 +enable_so_udf_load_logicalvol_fndecl_471 udf_load_logicalvol fndecl 2 471 NULL nohasharray
147198 +enable_so_rx_rx_dropped_frame_read_fndecl_471 rx_rx_dropped_frame_read fndecl 3 471 &enable_so_udf_load_logicalvol_fndecl_471
147199 +enable_so_make_checksum_v2_fndecl_475 make_checksum_v2 fndecl 3-5 475 NULL
147200 +enable_so_map_write_fndecl_480 map_write fndecl 3 480 NULL
147201 +enable_so_diva_alloc_dma_map_fndecl_485 diva_alloc_dma_map fndecl 2 485 NULL
147202 +enable_so_ext_start_xfs_extent_486 ext_start xfs_extent 0 486 NULL
147203 +enable_so_consumed_sg_mapping_iter_487 consumed sg_mapping_iter 0 487 NULL
147204 +enable_so_nr_local_rds_rdma_args_488 nr_local rds_rdma_args 0 488 NULL
147205 +enable_so_sp2_read_i2c_fndecl_489 sp2_read_i2c fndecl 4 489 NULL
147206 +enable_so_rx_path_reset_read_fndecl_490 rx_path_reset_read fndecl 3 490 NULL
147207 +enable_so_edid_store_fndecl_491 edid_store fndecl 6 491 NULL
147208 +enable_so_sndbuf_size_net_conf_498 sndbuf_size net_conf 0 498 NULL
147209 +enable_so_cfg80211_inform_bss_width_frame_fndecl_501 cfg80211_inform_bss_width_frame fndecl 5 501 NULL
147210 +enable_so_max_seg_sz_mmc_test_area_502 max_seg_sz mmc_test_area 0 502 NULL nohasharray
147211 +enable_so_security_inode_getxattr_fndecl_502 security_inode_getxattr fndecl 0 502 &enable_so_max_seg_sz_mmc_test_area_502
147212 +enable_so_num_virtio_mmio_vq_info_503 num virtio_mmio_vq_info 0 503 NULL
147213 +enable_so_wa_xfer_status_to_errno_fndecl_506 wa_xfer_status_to_errno fndecl 0 506 NULL
147214 +enable_so_hlen_ip6_tnl_510 hlen ip6_tnl 0 510 NULL
147215 +enable_so_si476x_radio_read_acf_blob_fndecl_515 si476x_radio_read_acf_blob fndecl 3 515 NULL
147216 +enable_so_length_qib_sge_516 length qib_sge 0 516 NULL
147217 +enable_so_gfn_guest_walkerEPT_517 gfn guest_walkerEPT 0 517 NULL
147218 +enable_so_dig_rate_snd_bt87x_board_522 dig_rate snd_bt87x_board 0 522 NULL
147219 +enable_so_grow_gnttab_list_fndecl_523 grow_gnttab_list fndecl 1 523 NULL
147220 +enable_so_videobuf_read_zerocopy_fndecl_546 videobuf_read_zerocopy fndecl 3 546 NULL
147221 +enable_so_iscsi_add_hdr_fndecl_551 iscsi_add_hdr fndecl 2 551 NULL
147222 +enable_so_leaf_paste_in_buffer_fndecl_552 leaf_paste_in_buffer fndecl 4 552 NULL nohasharray
147223 +enable_so_names_count_tomoyo_condition_552 names_count tomoyo_condition 0 552 &enable_so_leaf_paste_in_buffer_fndecl_552
147224 +enable_so_try_alloc_port_fndecl_557 try_alloc_port fndecl 2 557 NULL nohasharray
147225 +enable_so_behind_page_count_r1bio_557 behind_page_count r1bio 0 557 &enable_so_try_alloc_port_fndecl_557
147226 +enable_so_cmd_amdkfd_ioctl_desc_560 cmd amdkfd_ioctl_desc 0 560 NULL
147227 +enable_so_kzalloc_node_fndecl_563 kzalloc_node fndecl 1 563 NULL
147228 +enable_so_btrfs_item_size_nr_fndecl_572 btrfs_item_size_nr fndecl 0 572 NULL
147229 +enable_so_cfi_read_pri_fndecl_573 cfi_read_pri fndecl 3 573 NULL
147230 +enable_so_disk_secno_bplus_leaf_node_574 disk_secno bplus_leaf_node 0 574 NULL
147231 +enable_so_paging64_init_context_common_fndecl_577 paging64_init_context_common fndecl 3 577 NULL nohasharray
147232 +enable_so_ext4_swap_extents_fndecl_577 ext4_swap_extents fndecl 6-0-5-4 577 &enable_so_paging64_init_context_common_fndecl_577
147233 +enable_so_blk_update_bidi_request_fndecl_588 blk_update_bidi_request fndecl 3-4 588 NULL
147234 +enable_so_drm_property_create_bitmask_fndecl_591 drm_property_create_bitmask fndecl 6 591 NULL
147235 +enable_so_log_mc_entry_sz_mlx4_init_hca_param_595 log_mc_entry_sz mlx4_init_hca_param 0 595 NULL
147236 +enable_so_xmit_head_mgsl_struct_596 xmit_head mgsl_struct 0 596 NULL
147237 +enable_so_max_send_sge_ib_qp_cap_601 max_send_sge ib_qp_cap 0 601 NULL
147238 +enable_so_nr_groups_pcpu_alloc_info_602 nr_groups pcpu_alloc_info 0 602 NULL
147239 +enable_so_lcm_not_zero_fndecl_603 lcm_not_zero fndecl 2-0-1 603 NULL nohasharray
147240 +enable_so_xfs_bmapi_read_fndecl_603 xfs_bmapi_read fndecl 3-2 603 &enable_so_lcm_not_zero_fndecl_603 nohasharray
147241 +enable_so_sock_xmit_fndecl_603 sock_xmit fndecl 4 603 &enable_so_xfs_bmapi_read_fndecl_603
147242 +enable_so_FormattedSize_erase_unit_header_t_604 FormattedSize erase_unit_header_t 0 604 NULL
147243 +enable_so_getxattr_fndecl_605 getxattr fndecl 4 605 NULL nohasharray
147244 +enable_so_pvr2_v4l2_ioctl_fndecl_605 pvr2_v4l2_ioctl fndecl 2 605 &enable_so_getxattr_fndecl_605
147245 +enable_so_copy_and_ioctl_fndecl_609 copy_and_ioctl fndecl 4 609 NULL
147246 +enable_so_ftrace_size_ramoops_context_610 ftrace_size ramoops_context 0 610 NULL
147247 +enable_so_ixgbe_alloc_q_vector_fndecl_612 ixgbe_alloc_q_vector fndecl 4-6 612 NULL
147248 +enable_so_num_queue_pairs_i40e_virtchnl_vf_resource_613 num_queue_pairs i40e_virtchnl_vf_resource 0 613 NULL
147249 +enable_so_virt_end_dm_thin_new_mapping_616 virt_end dm_thin_new_mapping 0 616 NULL
147250 +enable_so_maxsize_tm6000_endpoint_618 maxsize tm6000_endpoint 0 618 NULL
147251 +enable_so_smk_user_access_fndecl_619 smk_user_access fndecl 3 619 NULL
147252 +enable_so_nvme_trans_log_supp_pages_fndecl_625 nvme_trans_log_supp_pages fndecl 3 625 NULL
147253 +enable_so_xenbus_file_read_fndecl_632 xenbus_file_read fndecl 3 632 NULL
147254 +enable_so_b43_debugfs_read_fndecl_634 b43_debugfs_read fndecl 3 634 NULL
147255 +enable_so_ieee80211_rx_mgmt_beacon_fndecl_637 ieee80211_rx_mgmt_beacon fndecl 3 637 NULL
147256 +enable_so_msg_len_dvb_diseqc_master_cmd_643 msg_len dvb_diseqc_master_cmd 0 643 NULL nohasharray
147257 +enable_so_d1_vring_rx_mac_643 d1 vring_rx_mac 0 643 &enable_so_msg_len_dvb_diseqc_master_cmd_643
147258 +enable_so_ocrdma_get_pbl_info_fndecl_644 ocrdma_get_pbl_info fndecl 3 644 NULL
147259 +enable_so_size_si_sm_handlers_648 size si_sm_handlers 0 648 NULL
147260 +enable_so_fat_sync_bhs_fndecl_655 fat_sync_bhs fndecl 0 655 NULL
147261 +enable_so_header_length_irda_usb_cb_657 header_length irda_usb_cb 0 657 NULL
147262 +enable_so_rtsx_usb_read_ppbuf_fndecl_659 rtsx_usb_read_ppbuf fndecl 3 659 NULL nohasharray
147263 +enable_so_nchannels_fs_dev_659 nchannels fs_dev 0 659 &enable_so_rtsx_usb_read_ppbuf_fndecl_659
147264 +enable_so_vmx_hwapic_irr_update_fndecl_662 vmx_hwapic_irr_update fndecl 2 662 NULL
147265 +enable_so_start_async_extent_663 start async_extent 0 663 NULL
147266 +enable_so_tx_max_size_cxgbi_device_664 tx_max_size cxgbi_device 0 664 NULL nohasharray
147267 +enable_so_evdev_do_ioctl_fndecl_664 evdev_do_ioctl fndecl 2-0 664 &enable_so_tx_max_size_cxgbi_device_664
147268 +enable_so_cw_cursor_fndecl_666 cw_cursor fndecl 4 666 NULL
147269 +enable_so___push_leaf_left_fndecl_667 __push_leaf_left fndecl 8 667 NULL
147270 +enable_so_lbs_highsnr_write_fndecl_671 lbs_highsnr_write fndecl 3 671 NULL
147271 +enable_so_skb_size_nx_host_rds_ring_672 skb_size nx_host_rds_ring 0 672 NULL
147272 +enable_so_bond_change_mtu_fndecl_674 bond_change_mtu fndecl 2 674 NULL
147273 +enable_so_mac_len_sk_buff_676 mac_len sk_buff 0 676 NULL
147274 +enable_so_mbox_offset_sst_res_info_678 mbox_offset sst_res_info 0 678 NULL
147275 +enable_so_page_order_sg_scatter_hold_679 page_order sg_scatter_hold 0 679 NULL
147276 +enable_so_stats_count_smsdvb_debugfs_683 stats_count smsdvb_debugfs 0 683 NULL
147277 +enable_so_get_eeprom_len_ethtool_ops_686 get_eeprom_len ethtool_ops 0 686 NULL
147278 +enable_so_follow_page_pte_fndecl_687 follow_page_pte fndecl 2 687 NULL
147279 +enable_so_mchip_get_frame_fndecl_692 mchip_get_frame fndecl 0 692 NULL
147280 +enable_so_ttm_page_pool_free_fndecl_693 ttm_page_pool_free fndecl 2 693 NULL
147281 +enable_so_handle_pte_fault_fndecl_694 handle_pte_fault fndecl 3 694 NULL
147282 +enable_so_size_pstore_private_696 size pstore_private 0 696 NULL nohasharray
147283 +enable_so_read_file_spec_scan_ctl_fndecl_696 read_file_spec_scan_ctl fndecl 3 696 &enable_so_size_pstore_private_696
147284 +enable_so_dut_mode_read_fndecl_698 dut_mode_read fndecl 3 698 NULL
147285 +enable_so_fragThresh_ConfigRid_700 fragThresh ConfigRid 0 700 NULL nohasharray
147286 +enable_so_ipath_copy_from_sge_fndecl_700 ipath_copy_from_sge fndecl 3 700 &enable_so_fragThresh_ConfigRid_700
147287 +enable_so_do_mpage_readpage_fndecl_715 do_mpage_readpage fndecl 3 715 NULL
147288 +enable_so_request_key_with_auxdata_fndecl_720 request_key_with_auxdata fndecl 4 720 NULL
147289 +enable_so_xfs_buf_get_map_fndecl_729 xfs_buf_get_map fndecl 3 729 NULL
147290 +enable_so_tsi148_alloc_resource_fndecl_736 tsi148_alloc_resource fndecl 2 736 NULL
147291 +enable_so_write_cache_pages_fndecl_737 write_cache_pages fndecl 0 737 NULL
147292 +enable_so_count_TxFifo_750 count TxFifo 0 750 NULL
147293 +enable_so_DataBufsSize_snd_korg1212_758 DataBufsSize snd_korg1212 0 758 NULL
147294 +enable_so_ilf_len_xfs_inode_log_format_759 ilf_len xfs_inode_log_format 0 759 NULL
147295 +enable_so_tda8083_readregs_fndecl_764 tda8083_readregs fndecl 4 764 NULL
147296 +enable_so_iwl_trans_alloc_fndecl_767 iwl_trans_alloc fndecl 5-1 767 NULL
147297 +enable_so_len_vnic_dev_bar_768 len vnic_dev_bar 0 768 NULL
147298 +enable_so_vb2_fop_read_fndecl_771 vb2_fop_read fndecl 3 771 NULL
147299 +enable_so_truncate_one_csum_fndecl_777 truncate_one_csum fndecl 4-5 777 NULL
147300 +enable_so_num_virtio_pci_vq_info_778 num virtio_pci_vq_info 0 778 NULL
147301 +enable_so_gem_change_mtu_fndecl_785 gem_change_mtu fndecl 2 785 NULL
147302 +enable_so_nv_device_resource_start_fndecl_792 nv_device_resource_start fndecl 0 792 NULL
147303 +enable_so_prepare_reply_buffer_fndecl_793 prepare_reply_buffer fndecl 4-3-5 793 NULL
147304 +enable_so_extent_direct_795 extent direct 0 795 NULL
147305 +enable_so_height_qxl_head_799 height qxl_head 0 799 NULL
147306 +enable_so_pci_iomap_range_fndecl_809 pci_iomap_range fndecl 4-3 809 NULL
147307 +enable_so_sdp1length__SpiCfgData_813 sdp1length _SpiCfgData 0 813 NULL
147308 +enable_so_request_key_auth_read_fndecl_830 request_key_auth_read fndecl 3 830 NULL
147309 +enable_so_pipeline_post_proc_swi_read_fndecl_831 pipeline_post_proc_swi_read fndecl 3 831 NULL
147310 +enable_so_SyS_sethostname_fndecl_837 SyS_sethostname fndecl 2 837 NULL
147311 +enable_so_mdata_ofsh_cyttsp4_sysinfo_data_844 mdata_ofsh cyttsp4_sysinfo_data 0 844 NULL
147312 +enable_so_s_inopb_ufs_sb_private_info_849 s_inopb ufs_sb_private_info 0 849 NULL
147313 +enable_so__picolcd_flash_write_fndecl_853 _picolcd_flash_write fndecl 4 853 NULL
147314 +enable_so_irnet_ctrl_write_fndecl_856 irnet_ctrl_write fndecl 3 856 NULL
147315 +enable_so_rsi_copy_to_card_fndecl_858 rsi_copy_to_card fndecl 3 858 NULL nohasharray
147316 +enable_so_nilfs_inode_by_name_fndecl_858 nilfs_inode_by_name fndecl 0 858 &enable_so_rsi_copy_to_card_fndecl_858
147317 +enable_so_unix_seqpacket_recvmsg_fndecl_861 unix_seqpacket_recvmsg fndecl 3 861 NULL
147318 +enable_so_adu_read_fndecl_866 adu_read fndecl 3 866 NULL
147319 +enable_so_safe_prepare_write_buffer_fndecl_872 safe_prepare_write_buffer fndecl 3 872 NULL
147320 +enable_so_field_count_audit_rule_data_886 field_count audit_rule_data 0 886 NULL
147321 +enable_so_il3945_get_adjacent_rate_fndecl_892 il3945_get_adjacent_rate fndecl 0-2 892 NULL nohasharray
147322 +enable_so_octeon_read_device_mem64_fndecl_892 octeon_read_device_mem64 fndecl 0 892 &enable_so_il3945_get_adjacent_rate_fndecl_892
147323 +enable_so_orinoco_change_mtu_fndecl_895 orinoco_change_mtu fndecl 2 895 NULL nohasharray
147324 +enable_so_forw_xfs_attr3_icleaf_hdr_895 forw xfs_attr3_icleaf_hdr 0 895 &enable_so_orinoco_change_mtu_fndecl_895
147325 +enable_so_p_srate_f_uac2_opts_896 p_srate f_uac2_opts 0 896 NULL
147326 +enable_so_vm_normal_page_fndecl_897 vm_normal_page fndecl 2 897 NULL
147327 +enable_so_rdma_copy_tail_fndecl_898 rdma_copy_tail fndecl 3 898 NULL nohasharray
147328 +enable_so_cpu_mask_len_res_opts_898 cpu_mask_len res_opts 0 898 &enable_so_rdma_copy_tail_fndecl_898
147329 +enable_so_ieee80211_if_read_dot11MeshHWMPpreqMinInterval_fndecl_899 ieee80211_if_read_dot11MeshHWMPpreqMinInterval fndecl 3 899 NULL
147330 +enable_so_user_bs_factor_ide_tape_obj_906 user_bs_factor ide_tape_obj 0 906 NULL
147331 +enable_so_good_bytes_nfs_pgio_header_909 good_bytes nfs_pgio_header 0 909 NULL nohasharray
147332 +enable_so_tcpprobe_sprint_fndecl_909 tcpprobe_sprint fndecl 0 909 &enable_so_good_bytes_nfs_pgio_header_909
147333 +enable_so_num_channels_wmi_start_scan_cmd_915 num_channels wmi_start_scan_cmd 0 915 NULL
147334 +enable_so_set_args_iw_priv_args_916 set_args iw_priv_args 0 916 NULL
147335 +enable_so_max_reply_bytes_mpt3_ioctl_command_918 max_reply_bytes mpt3_ioctl_command 0 918 NULL
147336 +enable_so_post_fifo_size__adpt_hba_919 post_fifo_size _adpt_hba 0 919 NULL
147337 +enable_so_status_word_gem_rxd_925 status_word gem_rxd 0 925 NULL nohasharray
147338 +enable_so_video_hsize_solo_dev_925 video_hsize solo_dev 0 925 &enable_so_status_word_gem_rxd_925
147339 +enable_so_isofs_bread_fndecl_929 isofs_bread fndecl 2 929 NULL
147340 +enable_so_xpnet_dev_change_mtu_fndecl_932 xpnet_dev_change_mtu fndecl 2 932 NULL
147341 +enable_so_nfrags_pkt_gl_937 nfrags pkt_gl 0 937 NULL
147342 +enable_so_max_sense_bytes_mpt2_ioctl_command_942 max_sense_bytes mpt2_ioctl_command 0 942 NULL
147343 +enable_so_icmp_len_batadv_socket_packet_944 icmp_len batadv_socket_packet 0 944 NULL
147344 +enable_so_pcpu_embed_first_chunk_fndecl_947 pcpu_embed_first_chunk fndecl 3-2-1 947 NULL nohasharray
147345 +enable_so_mei_amthif_read_fndecl_947 mei_amthif_read fndecl 4 947 &enable_so_pcpu_embed_first_chunk_fndecl_947
147346 +enable_so_lprocfs_alloc_obd_stats_fndecl_950 lprocfs_alloc_obd_stats fndecl 2 950 NULL
147347 +enable_so_pci_num_vf_fndecl_952 pci_num_vf fndecl 0 952 NULL
147348 +enable_so_ssid_len_wireless_dev_954 ssid_len wireless_dev 0 954 NULL
147349 +enable_so_length_ndis_80211_bssid_ex_955 length ndis_80211_bssid_ex 0 955 NULL
147350 +enable_so_sel_read_bool_fndecl_959 sel_read_bool fndecl 3 959 NULL
147351 +enable_so_size_wl3501_md_ind_961 size wl3501_md_ind 0 961 NULL
147352 +enable_so_compat_sys_preadv64_fndecl_968 compat_sys_preadv64 fndecl 3 968 NULL
147353 +enable_so_tx_ring_size_tx_queue_982 tx_ring_size tx_queue 0 982 NULL
147354 +enable_so_em28xx_alloc_urbs_fndecl_983 em28xx_alloc_urbs fndecl 5-6-4 983 NULL nohasharray
147355 +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
147356 +enable_so_sm501_create_subio_fndecl_985 sm501_create_subio fndecl 4-3 985 NULL
147357 +enable_so_esp6_get_mtu_fndecl_987 esp6_get_mtu fndecl 0-2 987 NULL
147358 +enable_so_acc_userl_accessdata_dn_989 acc_userl accessdata_dn 0 989 NULL
147359 +enable_so_unlock_extent_fndecl_990 unlock_extent fndecl 2-3 990 NULL
147360 +enable_so_gtt_size_amdgpu_mc_994 gtt_size amdgpu_mc 0 994 NULL
147361 +enable_so_btmrvl_pscmd_read_fndecl_999 btmrvl_pscmd_read fndecl 3 999 NULL
147362 +enable_so_ContainerSwitchEntries_aac_get_container_count_resp_1001 ContainerSwitchEntries aac_get_container_count_resp 0 1001 NULL
147363 +enable_so_reserve_metadata_bytes_fndecl_1002 reserve_metadata_bytes fndecl 0 1002 NULL
147364 +enable_so_cpu_count_MPT3SAS_ADAPTER_1003 cpu_count MPT3SAS_ADAPTER 0 1003 NULL
147365 +enable_so_xfs_dir3_leafn_read_fndecl_1004 xfs_dir3_leafn_read fndecl 3 1004 NULL
147366 +enable_so_ath6kl_add_bss_if_needed_fndecl_1006 ath6kl_add_bss_if_needed fndecl 6 1006 NULL
147367 +enable_so___dm_get_module_param_fndecl_1008 __dm_get_module_param fndecl 2-3-0 1008 NULL
147368 +enable_so_assoc_req_len_wmi_connect_event_1014 assoc_req_len wmi_connect_event 0 1014 NULL
147369 +enable_so_s_last_cno_nilfs_super_block_1016 s_last_cno nilfs_super_block 0 1016 NULL
147370 +enable_so_nvram_size_chip_desc_1022 nvram_size chip_desc 0 1022 NULL
147371 +enable_so_dlm_len_mt76_fw_header_1030 dlm_len mt76_fw_header 0 1030 NULL
147372 +enable_so_pci_scan_single_device_fndecl_1034 pci_scan_single_device fndecl 2 1034 NULL
147373 +enable_so_wq_ecount_lpfc_sli4_hba_1039 wq_ecount lpfc_sli4_hba 0 1039 NULL
147374 +enable_so_jffs2_iget_fndecl_1041 jffs2_iget fndecl 2 1041 NULL nohasharray
147375 +enable_so_page_shift_mlx5_buf_1041 page_shift mlx5_buf 0 1041 &enable_so_jffs2_iget_fndecl_1041 nohasharray
147376 +enable_so_ssb_admatch_size_fndecl_1041 ssb_admatch_size fndecl 0-1 1041 &enable_so_page_shift_mlx5_buf_1041
147377 +enable_so_iv_len_txentry_desc_1042 iv_len txentry_desc 0 1042 NULL nohasharray
147378 +enable_so_address_length_acpi_resource_fixed_io_1042 address_length acpi_resource_fixed_io 0 1042 &enable_so_iv_len_txentry_desc_1042
147379 +enable_so_vnic_dev_get_res_count_fndecl_1044 vnic_dev_get_res_count fndecl 0 1044 NULL
147380 +enable_so_tx_power_ipw_priv_1046 tx_power ipw_priv 0 1046 NULL
147381 +enable_so_read_data_done_iscsi_datain_req_1049 read_data_done iscsi_datain_req 0 1049 NULL nohasharray
147382 +enable_so_registers_gen_74x164_chip_1049 registers gen_74x164_chip 0 1049 &enable_so_read_data_done_iscsi_datain_req_1049
147383 +enable_so_m5602_urb_complete_fndecl_1052 m5602_urb_complete fndecl 3 1052 NULL
147384 +enable_so_rocker_dma_test_offset_fndecl_1055 rocker_dma_test_offset fndecl 3 1055 NULL
147385 +enable_so_nentries_ebt_replace_1059 nentries ebt_replace 0 1059 NULL
147386 +enable_so_ch_r_tail_jsm_channel_1063 ch_r_tail jsm_channel 0 1063 NULL
147387 +enable_so_data_ep_set_params_fndecl_1064 data_ep_set_params fndecl 3-4 1064 NULL
147388 +enable_so_cw_clear_fndecl_1066 cw_clear fndecl 5-3-4-6 1066 NULL
147389 +enable_so_len_left_brcmf_sdio_hdrinfo_1067 len_left brcmf_sdio_hdrinfo 0 1067 NULL
147390 +enable_so_i_dno_hpfs_inode_info_1070 i_dno hpfs_inode_info 0 1070 NULL nohasharray
147391 +enable_so_line__mgslpc_info_1070 line _mgslpc_info 0 1070 &enable_so_i_dno_hpfs_inode_info_1070
147392 +enable_so_num_min_snd_ratden_1071 num_min snd_ratden 0 1071 NULL
147393 +enable_so_private_data_len_iw_cm_conn_param_1076 private_data_len iw_cm_conn_param 0 1076 NULL
147394 +enable_so_enable_clk_ops_1078 enable clk_ops 0 1078 NULL
147395 +enable_so_rq_wqe_count_mlx5_ib_create_qp_1079 rq_wqe_count mlx5_ib_create_qp 0 1079 NULL
147396 +enable_so_ReadEEProm_fndecl_1081 ReadEEProm fndecl 3 1081 NULL
147397 +enable_so_inum_ns_common_1087 inum ns_common 0 1087 NULL
147398 +enable_so_max_srq_sz_mthca_dev_lim_1088 max_srq_sz mthca_dev_lim 0 1088 NULL
147399 +enable_so_libipw_classify_fndecl_1089 libipw_classify fndecl 0 1089 NULL
147400 +enable_so_data_start_msdos_sb_info_1100 data_start msdos_sb_info 0 1100 NULL
147401 +enable_so_num_counters_compat_ebt_replace_1102 num_counters compat_ebt_replace 0 1102 NULL
147402 +enable_so_b_cnt_mon_reader_bin_1106 b_cnt mon_reader_bin 0 1106 NULL
147403 +enable_so_rx_ring_count_e1000_adapter_1107 rx_ring_count e1000_adapter 0 1107 NULL
147404 +enable_so_cmd_sg_entries_vardecl_ib_srp_c_1108 cmd_sg_entries vardecl_ib_srp.c 0 1108 NULL
147405 +enable_so_ResponseDataLength__MPI2_SMP_PASSTHROUGH_REPLY_1113 ResponseDataLength _MPI2_SMP_PASSTHROUGH_REPLY 0 1113 NULL
147406 +enable_so_io_free_memtype_fndecl_1116 io_free_memtype fndecl 1-2 1116 NULL
147407 +enable_so_create_attr_set_fndecl_1118 create_attr_set fndecl 1 1118 NULL
147408 +enable_so_slave_cnt_bonding_1119 slave_cnt bonding 0 1119 NULL
147409 +enable_so_rxkad_decrypt_ticket_fndecl_1120 rxkad_decrypt_ticket fndecl 3 1120 NULL
147410 +enable_so_mdc800_device_read_fndecl_1123 mdc800_device_read fndecl 3 1123 NULL
147411 +enable_so_ctl_in_pipe_brcmf_usbdev_info_1124 ctl_in_pipe brcmf_usbdev_info 0 1124 NULL
147412 +enable_so_ion_handle_test_kernel_fndecl_1127 ion_handle_test_kernel fndecl 3-4 1127 NULL
147413 +enable_so_forw_xfs_dir3_icleaf_hdr_1136 forw xfs_dir3_icleaf_hdr 0 1136 NULL
147414 +enable_so_log_num_mlx4_resource_1137 log_num mlx4_resource 0 1137 NULL
147415 +enable_so_vmw_execbuf_process_fndecl_1142 vmw_execbuf_process fndecl 5 1142 NULL
147416 +enable_so_usblp_new_writeurb_fndecl_1149 usblp_new_writeurb fndecl 2 1149 NULL nohasharray
147417 +enable_so_p54spi_spi_read_fndecl_1149 p54spi_spi_read fndecl 4 1149 &enable_so_usblp_new_writeurb_fndecl_1149
147418 +enable_so_offset_mirror_1150 offset mirror 0 1150 NULL
147419 +enable_so_hw_max_sectors_se_dev_attrib_1152 hw_max_sectors se_dev_attrib 0 1152 NULL
147420 +enable_so_ntfs_rl_vcn_to_lcn_fndecl_1155 ntfs_rl_vcn_to_lcn fndecl 0-2 1155 NULL
147421 +enable_so_cbuf_data_fndecl_1158 cbuf_data fndecl 0 1158 NULL
147422 +enable_so_xstateregs_set_fndecl_1159 xstateregs_set fndecl 4 1159 NULL
147423 +enable_so_sysctl_tcp_max_reordering_vardecl_1161 sysctl_tcp_max_reordering vardecl 0 1161 NULL
147424 +enable_so_rtsx_usb_write_ppbuf_fndecl_1165 rtsx_usb_write_ppbuf fndecl 3 1165 NULL
147425 +enable_so_region_head_fndecl_1168 region_head fndecl 3 1168 NULL nohasharray
147426 +enable_so_nfs4_acl_bytes_fndecl_1168 nfs4_acl_bytes fndecl 0-1 1168 &enable_so_region_head_fndecl_1168 nohasharray
147427 +enable_so_sg_len_mmc_data_1168 sg_len mmc_data 0 1168 &enable_so_nfs4_acl_bytes_fndecl_1168
147428 +enable_so___set_xattr_fndecl_1176 __set_xattr fndecl 5-3 1176 NULL
147429 +enable_so_br_vlan_add_fndecl_1177 br_vlan_add fndecl 2 1177 NULL
147430 +enable_so_resp_disconnect_pg_fndecl_1178 resp_disconnect_pg fndecl 0 1178 NULL
147431 +enable_so_nr_push_drm_nouveau_gem_pushbuf_1184 nr_push drm_nouveau_gem_pushbuf 0 1184 NULL
147432 +enable_so_alloc_sglist_fndecl_1187 alloc_sglist fndecl 3-2-1 1187 NULL
147433 +enable_so_mxr_mplane_fill_fndecl_1189 mxr_mplane_fill fndecl 3-4 1189 NULL
147434 +enable_so_il4965_rs_move_mimo2_to_other_fndecl_1191 il4965_rs_move_mimo2_to_other fndecl 5 1191 NULL nohasharray
147435 +enable_so_vme_get_size_fndecl_1191 vme_get_size fndecl 0 1191 &enable_so_il4965_rs_move_mimo2_to_other_fndecl_1191
147436 +enable_so_tx_frag_key_not_found_read_fndecl_1192 tx_frag_key_not_found_read fndecl 3 1192 NULL
147437 +enable_so_probe_resp_len_cfg80211_beacon_data_1195 probe_resp_len cfg80211_beacon_data 0 1195 NULL
147438 +enable_so_rdmarc_per_qp_mlx4_profile_1197 rdmarc_per_qp mlx4_profile 0 1197 NULL
147439 +enable_so_nfs4_get_security_label_fndecl_1201 nfs4_get_security_label fndecl 3 1201 NULL nohasharray
147440 +enable_so_rx_sdu_size_tsap_cb_1201 rx_sdu_size tsap_cb 0 1201 &enable_so_nfs4_get_security_label_fndecl_1201
147441 +enable_so_pvscsi_ring_pages_vardecl_vmw_pvscsi_c_1202 pvscsi_ring_pages vardecl_vmw_pvscsi.c 0 1202 NULL
147442 +enable_so_pcpu_mem_zalloc_fndecl_1207 pcpu_mem_zalloc fndecl 1 1207 NULL
147443 +enable_so_max_sge_mvumi_hba_1213 max_sge mvumi_hba 0 1213 NULL
147444 +enable_so_logfs_segment_write_compress_fndecl_1214 logfs_segment_write_compress fndecl 5 1214 NULL
147445 +enable_so_max_transfer_bytes_storvsc_device_1221 max_transfer_bytes storvsc_device 0 1221 NULL
147446 +enable_so_max_pkt_size_au0828_dev_1222 max_pkt_size au0828_dev 0 1222 NULL
147447 +enable_so_segno_curseg_info_1223 segno curseg_info 0 1223 NULL
147448 +enable_so_pfkey_sendmsg_fndecl_1225 pfkey_sendmsg fndecl 3 1225 NULL
147449 +enable_so_i_sblock_bfs_inode_info_1228 i_sblock bfs_inode_info 0 1228 NULL
147450 +enable_so_cached_dev_cache_miss_fndecl_1232 cached_dev_cache_miss fndecl 4 1232 NULL
147451 +enable_so_pte_hole_mm_walk_1233 pte_hole mm_walk 0 1233 NULL
147452 +enable_so_prev_chunk_sectors_r5conf_1237 prev_chunk_sectors r5conf 0 1237 NULL
147453 +enable_so_buffer_dma_zd_usb_interrupt_1239 buffer_dma zd_usb_interrupt 0 1239 NULL
147454 +enable_so_remote_settings_file_write_fndecl_1240 remote_settings_file_write fndecl 3 1240 NULL
147455 +enable_so_dlc_leaf_msg_log_message_1244 dlc leaf_msg_log_message 0 1244 NULL
147456 +enable_so_get_tdp_level_kvm_x86_ops_1250 get_tdp_level kvm_x86_ops 0 1250 NULL nohasharray
147457 +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
147458 +enable_so_max_vports_lpfc_hba_1253 max_vports lpfc_hba 0 1253 NULL
147459 +enable_so_find_highest_prio_tid_fndecl_1254 find_highest_prio_tid fndecl 0 1254 NULL
147460 +enable_so_num_slaves_mlx4_dev_1258 num_slaves mlx4_dev 0 1258 NULL
147461 +enable_so_alloc32_mon_bin_get32_1260 alloc32 mon_bin_get32 0 1260 NULL
147462 +enable_so_nfs_readdir_xdr_filler_fndecl_1265 nfs_readdir_xdr_filler fndecl 0 1265 NULL
147463 +enable_so_nlmsg_len_nlmsghdr_1272 nlmsg_len nlmsghdr 0 1272 NULL
147464 +enable_so_viafb_dvp0_proc_write_fndecl_1276 viafb_dvp0_proc_write fndecl 3 1276 NULL
147465 +enable_so___lbtf_cmd_async_fndecl_1280 __lbtf_cmd_async fndecl 4 1280 NULL
147466 +enable_so_ocfs2_read_extent_block_fndecl_1285 ocfs2_read_extent_block fndecl 0-2 1285 NULL
147467 +enable_so_agp_alloc_page_array_fndecl_1289 agp_alloc_page_array fndecl 1 1289 NULL
147468 +enable_so_fw_epd_frame_1293 fw epd_frame 0 1293 NULL
147469 +enable_so_prv_size_override_lpss_device_desc_1301 prv_size_override lpss_device_desc 0 1301 NULL
147470 +enable_so_wMaxControlMessage_usb_cdc_mbim_desc_1308 wMaxControlMessage usb_cdc_mbim_desc 0 1308 NULL nohasharray
147471 +enable_so_size_nvkm_ram_1308 size nvkm_ram 0 1308 &enable_so_wMaxControlMessage_usb_cdc_mbim_desc_1308
147472 +enable_so_number_snd_pcm_substream_1313 number snd_pcm_substream 0 1313 NULL nohasharray
147473 +enable_so_curr_resync_mddev_1313 curr_resync mddev 0 1313 &enable_so_number_snd_pcm_substream_1313
147474 +enable_so_vd_cbr_au_count_gru_vma_data_1314 vd_cbr_au_count gru_vma_data 0 1314 NULL
147475 +enable_so_read_kernfs_ops_1325 read kernfs_ops 0 1325 NULL
147476 +enable_so_win_size_async_state_1326 win_size async_state 0 1326 NULL
147477 +enable_so_flctl_cmdfunc_fndecl_1333 flctl_cmdfunc fndecl 3 1333 NULL
147478 +enable_so_fat_parse_short_fndecl_1348 fat_parse_short fndecl 0 1348 NULL
147479 +enable_so_current_limit_memblock_1350 current_limit memblock 0 1350 NULL
147480 +enable_so_ccp_set_dm_area_fndecl_1351 ccp_set_dm_area fndecl 4 1351 NULL
147481 +enable_so_btrfs_delalloc_reserve_space_fndecl_1354 btrfs_delalloc_reserve_space fndecl 0 1354 NULL
147482 +enable_so_MemReadHSCX_fndecl_1364 MemReadHSCX fndecl 0 1364 NULL
147483 +enable_so_max_num_of_queues_per_device_vardecl_1365 max_num_of_queues_per_device vardecl 0 1365 NULL
147484 +enable_so_tx_ring_count_xgbe_prv_data_1366 tx_ring_count xgbe_prv_data 0 1366 NULL
147485 +enable_so_len_orinoco_scan_data_1370 len orinoco_scan_data 0 1370 NULL nohasharray
147486 +enable_so_dlen_hci_sco_hdr_1370 dlen hci_sco_hdr 0 1370 &enable_so_len_orinoco_scan_data_1370
147487 +enable_so_v_total_aty128_crtc_1375 v_total aty128_crtc 0 1375 NULL
147488 +enable_so_reiserfs_get_block_fndecl_1379 reiserfs_get_block fndecl 2 1379 NULL
147489 +enable_so_w_drm_vmw_rect_1383 w drm_vmw_rect 0 1383 NULL
147490 +enable_so_ieee80211_probereq_get_fndecl_1384 ieee80211_probereq_get fndecl 5-4 1384 NULL
147491 +enable_so_iwl_dbgfs_calib_disabled_read_fndecl_1386 iwl_dbgfs_calib_disabled_read fndecl 3 1386 NULL
147492 +enable_so_vlen_nfsd3_writeargs_1388 vlen nfsd3_writeargs 0 1388 NULL
147493 +enable_so_smsc911x_rx_get_rxstatus_fndecl_1389 smsc911x_rx_get_rxstatus fndecl 0 1389 NULL
147494 +enable_so_iwl_dbgfs_rx_phyinfo_read_fndecl_1394 iwl_dbgfs_rx_phyinfo_read fndecl 3 1394 NULL
147495 +enable_so_stepped_offset_skb_seq_state_1395 stepped_offset skb_seq_state 0 1395 NULL
147496 +enable_so_sctp_setsockopt_connectx_old_fndecl_1396 sctp_setsockopt_connectx_old fndecl 3 1396 NULL
147497 +enable_so_len_wsm_hdr_1398 len wsm_hdr 0 1398 NULL
147498 +enable_so_dev_size_amd_flash_info_1399 dev_size amd_flash_info 0 1399 NULL
147499 +enable_so_cmd_size_scsi_host_template_1404 cmd_size scsi_host_template 0 1404 NULL
147500 +enable_so_wl1271_rx_filter_get_fields_size_fndecl_1405 wl1271_rx_filter_get_fields_size fndecl 0 1405 NULL
147501 +enable_so_num_hsi_port_1406 num hsi_port 0 1406 NULL
147502 +enable_so_ide_core_cp_entry_fndecl_1407 ide_core_cp_entry fndecl 3 1407 NULL
147503 +enable_so_ec_hdr_alsize_ubi_device_1411 ec_hdr_alsize ubi_device 0 1411 NULL
147504 +enable_so_ubifs_leb_write_fndecl_1412 ubifs_leb_write fndecl 5-4 1412 NULL nohasharray
147505 +enable_so_num_rx_bds_bcmgenet_priv_1412 num_rx_bds bcmgenet_priv 0 1412 &enable_so_ubifs_leb_write_fndecl_1412
147506 +enable_so_copy_pages_to_kvecs_fndecl_1417 copy_pages_to_kvecs fndecl 0 1417 NULL
147507 +enable_so_fill_gap_fndecl_1418 fill_gap fndecl 4-3 1418 NULL
147508 +enable_so_qlcnic_83xx_sysfs_flash_write_handler_fndecl_1419 qlcnic_83xx_sysfs_flash_write_handler fndecl 6 1419 NULL
147509 +enable_so_ocfs2_get_block_fndecl_1420 ocfs2_get_block fndecl 2 1420 NULL
147510 +enable_so_wpa_ie_len_orinoco_private_1421 wpa_ie_len orinoco_private 0 1421 NULL nohasharray
147511 +enable_so_reg_umr_fndecl_1421 reg_umr fndecl 3-5 1421 &enable_so_wpa_ie_len_orinoco_private_1421
147512 +enable_so_bch_dump_read_fndecl_1422 bch_dump_read fndecl 3 1422 NULL
147513 +enable_so_tnc_insert_fndecl_1431 tnc_insert fndecl 4 1431 NULL
147514 +enable_so_relocation_count_drm_i915_gem_exec_object2_1435 relocation_count drm_i915_gem_exec_object2 0 1435 NULL
147515 +enable_so_rdev_num_s2mps11_info_1439 rdev_num s2mps11_info 0 1439 NULL
147516 +enable_so_alloc_libipw_fndecl_1447 alloc_libipw fndecl 1 1447 NULL
147517 +enable_so_memcg_update_list_lru_node_fndecl_1454 memcg_update_list_lru_node fndecl 3 1454 NULL
147518 +enable_so_sys_ppoll_fndecl_1459 sys_ppoll fndecl 2 1459 NULL
147519 +enable_so_size_fw_sec_1464 size fw_sec 0 1464 NULL
147520 +enable_so_net_header_len_sctp_af_1467 net_header_len sctp_af 0 1467 NULL
147521 +enable_so_btrfs_del_inode_ref_in_log_fndecl_1471 btrfs_del_inode_ref_in_log fndecl 4 1471 NULL
147522 +enable_so_ceph_decode_32_fndecl_1473 ceph_decode_32 fndecl 0 1473 NULL
147523 +enable_so_xenbus_map_ring_valloc_pv_fndecl_1474 xenbus_map_ring_valloc_pv fndecl 3 1474 NULL
147524 +enable_so_ax25_output_fndecl_1475 ax25_output fndecl 2 1475 NULL
147525 +enable_so_iio_debugfs_write_reg_fndecl_1477 iio_debugfs_write_reg fndecl 3 1477 NULL
147526 +enable_so_pbus_size_io_fndecl_1478 pbus_size_io fndecl 2 1478 NULL
147527 +enable_so_nfs3_proc_symlink_fndecl_1479 nfs3_proc_symlink fndecl 4 1479 NULL
147528 +enable_so_iscsi_sw_tcp_send_data_prep_fndecl_1485 iscsi_sw_tcp_send_data_prep fndecl 5-4 1485 NULL
147529 +enable_so_irq_base_max8925_chip_1487 irq_base max8925_chip 0 1487 NULL
147530 +enable_so_ecryptfs_write_metadata_to_contents_fndecl_1490 ecryptfs_write_metadata_to_contents fndecl 3 1490 NULL
147531 +enable_so_de4x5_alloc_rx_buff_fndecl_1491 de4x5_alloc_rx_buff fndecl 3 1491 NULL
147532 +enable_so_n_channels_ieee80211_supported_band_1494 n_channels ieee80211_supported_band 0 1494 NULL
147533 +enable_so_blocks_count_ext4_new_group_data_1496 blocks_count ext4_new_group_data 0 1496 NULL
147534 +enable_so_ezusb_program_fndecl_1497 ezusb_program fndecl 3-4 1497 NULL
147535 +enable_so_ext4_mpage_readpages_fndecl_1499 ext4_mpage_readpages fndecl 4 1499 NULL
147536 +enable_so_num_step_snd_ratden_1500 num_step snd_ratden 0 1500 NULL nohasharray
147537 +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
147538 +enable_so_uvc_video_decode_start_fndecl_1505 uvc_video_decode_start fndecl 0 1505 NULL
147539 +enable_so_print_frame_fndecl_1506 print_frame fndecl 0 1506 NULL
147540 +enable_so_bo_info_size_drm_amdgpu_bo_list_in_1510 bo_info_size drm_amdgpu_bo_list_in 0 1510 NULL
147541 +enable_so_dma_data_req_size_ivtv_1512 dma_data_req_size ivtv 0 1512 NULL
147542 +enable_so_initiate_new_session_fndecl_1514 initiate_new_session fndecl 6 1514 NULL nohasharray
147543 +enable_so___break_lease_fndecl_1514 __break_lease fndecl 0 1514 &enable_so_initiate_new_session_fndecl_1514
147544 +enable_so_sk_sndbuf_sock_1516 sk_sndbuf sock 0 1516 NULL
147545 +enable_so_shmem_file_setup_fndecl_1517 shmem_file_setup fndecl 2 1517 NULL
147546 +enable_so_buf_size_mlx4_ib_qp_1529 buf_size mlx4_ib_qp 0 1529 NULL nohasharray
147547 +enable_so_qlcnic_sriov_init_fndecl_1529 qlcnic_sriov_init fndecl 2 1529 &enable_so_buf_size_mlx4_ib_qp_1529
147548 +enable_so_max_rqe_ocrdma_dev_attr_1534 max_rqe ocrdma_dev_attr 0 1534 NULL
147549 +enable_so_grcan_allocate_dma_buffers_fndecl_1535 grcan_allocate_dma_buffers fndecl 2-3 1535 NULL
147550 +enable_so_readlink_inode_operations_1540 readlink inode_operations 0 1540 NULL
147551 +enable_so___es_remove_extent_fndecl_1544 __es_remove_extent fndecl 0-3-2 1544 NULL
147552 +enable_so___aa_kvmalloc_fndecl_1547 __aa_kvmalloc fndecl 1 1547 NULL
147553 +enable_so_max_gs_mlx4_srq_1550 max_gs mlx4_srq 0 1550 NULL
147554 +enable_so_beg_hdmi_pulse_1552 beg hdmi_pulse 0 1552 NULL nohasharray
147555 +enable_so_rix_minstrel_rate_1552 rix minstrel_rate 0 1552 &enable_so_beg_hdmi_pulse_1552
147556 +enable_so_gru_preload_tlb_fndecl_1562 gru_preload_tlb fndecl 7-4 1562 NULL
147557 +enable_so_prio_read_fndecl_1564 prio_read fndecl 2 1564 NULL
147558 +enable_so_i2cdev_write_fndecl_1565 i2cdev_write fndecl 3 1565 NULL
147559 +enable_so_libcfs_kvzalloc_fndecl_1568 libcfs_kvzalloc fndecl 1 1568 NULL
147560 +enable_so_alignment_acpi_resource_io_1569 alignment acpi_resource_io 0 1569 NULL nohasharray
147561 +enable_so_page_readlink_fndecl_1569 page_readlink fndecl 3 1569 &enable_so_alignment_acpi_resource_io_1569
147562 +enable_so_kmem_zalloc_large_fndecl_1572 kmem_zalloc_large fndecl 1 1572 NULL
147563 +enable_so_size_drm_qxl_alloc_1578 size drm_qxl_alloc 0 1578 NULL
147564 +enable_so_ndesc_srp_map_state_1582 ndesc srp_map_state 0 1582 NULL
147565 +enable_so_vb2_dvb_register_adapter_fndecl_1588 vb2_dvb_register_adapter fndecl 0 1588 NULL
147566 +enable_so_process_hot_add_fndecl_1590 process_hot_add fndecl 3 1590 NULL
147567 +enable_so_sector_clone_info_1593 sector clone_info 0 1593 NULL
147568 +enable_so_length_cpc_can_msg_1600 length cpc_can_msg 0 1600 NULL nohasharray
147569 +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
147570 +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
147571 +enable_so_block_size_c2port_ops_1610 block_size c2port_ops 0 1610 NULL
147572 +enable_so_pppoe_sendmsg_fndecl_1612 pppoe_sendmsg fndecl 3 1612 NULL
147573 +enable_so_tsout_exchange_fndecl_1621 tsout_exchange fndecl 3 1621 NULL
147574 +enable_so_rawv6_send_hdrinc_fndecl_1625 rawv6_send_hdrinc fndecl 3 1625 NULL nohasharray
147575 +enable_so_max_frame_size_usb_usbvision_1625 max_frame_size usb_usbvision 0 1625 &enable_so_rawv6_send_hdrinc_fndecl_1625
147576 +enable_so_dt_num_devices_exofs_device_table_1626 dt_num_devices exofs_device_table 0 1626 NULL
147577 +enable_so_size_bin_attribute_1632 size bin_attribute 0 1632 NULL
147578 +enable_so_num_fw_rsc_vdev_vring_1645 num fw_rsc_vdev_vring 0 1645 NULL
147579 +enable_so_cblock_policy_result_1648 cblock policy_result 0 1648 NULL
147580 +enable_so_kobil_write_fndecl_1651 kobil_write fndecl 4 1651 NULL
147581 +enable_so_load_segment_descriptor_fndecl_1654 load_segment_descriptor fndecl 2 1654 NULL
147582 +enable_so_st_set_pages_fndecl_1655 st_set_pages fndecl 3 1655 NULL
147583 +enable_so_copied_rpc_pipe_msg_1658 copied rpc_pipe_msg 0 1658 NULL
147584 +enable_so_rds_tcp_sendmsg_fndecl_1668 rds_tcp_sendmsg fndecl 3 1668 NULL
147585 +enable_so_pci_brcm_trumanage_setup_fndecl_1671 pci_brcm_trumanage_setup fndecl 4 1671 NULL nohasharray
147586 +enable_so_num_clips_drm_vmw_present_arg_1671 num_clips drm_vmw_present_arg 0 1671 &enable_so_pci_brcm_trumanage_setup_fndecl_1671
147587 +enable_so_hidraw_send_report_fndecl_1674 hidraw_send_report fndecl 3 1674 NULL
147588 +enable_so_vzalloc_node_fndecl_1683 vzalloc_node fndecl 1 1683 NULL
147589 +enable_so_rsrc_len_usb_hcd_1686 rsrc_len usb_hcd 0 1686 NULL
147590 +enable_so_file_size_squashfs_ldir_inode_1687 file_size squashfs_ldir_inode 0 1687 NULL
147591 +enable_so_remain_bytes_asc_q_done_info_1696 remain_bytes asc_q_done_info 0 1696 NULL
147592 +enable_so_size_grcan_dma_buffer_1702 size grcan_dma_buffer 0 1702 NULL
147593 +enable_so_ib_uverbs_alloc_pd_fndecl_1708 ib_uverbs_alloc_pd fndecl 3 1708 NULL
147594 +enable_so_divasa_remap_pci_bar_fndecl_1710 divasa_remap_pci_bar fndecl 4-3 1710 NULL nohasharray
147595 +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
147596 +enable_so_linear_conf_fndecl_1710 linear_conf fndecl 2 1710 &enable_so_get_cap_size_qlcnic_hardware_ops_1710
147597 +enable_so_ext4_getblk_fndecl_1720 ext4_getblk fndecl 3 1720 NULL
147598 +enable_so_yres_drm_cmdline_mode_1722 yres drm_cmdline_mode 0 1722 NULL
147599 +enable_so_qtd_fill_fndecl_1725 qtd_fill fndecl 4-5-2-0-3 1725 NULL
147600 +enable_so_submit_io_fndecl_1726 submit_io fndecl 3 1726 NULL
147601 +enable_so_ts_num_ids_nfsd4_test_stateid_1732 ts_num_ids nfsd4_test_stateid 0 1732 NULL nohasharray
147602 +enable_so_devm_iio_device_alloc_fndecl_1732 devm_iio_device_alloc fndecl 2 1732 &enable_so_ts_num_ids_nfsd4_test_stateid_1732
147603 +enable_so_state_hmask_netns_xfrm_1733 state_hmask netns_xfrm 0 1733 NULL
147604 +enable_so___gfn_to_hva_many_fndecl_1735 __gfn_to_hva_many fndecl 0-2 1735 NULL
147605 +enable_so_l4_hdr_size_vmxnet3_tx_ctx_1737 l4_hdr_size vmxnet3_tx_ctx 0 1737 NULL
147606 +enable_so_userspace_do_request_fndecl_1738 userspace_do_request fndecl 5 1738 NULL
147607 +enable_so_pci_omegapci_setup_fndecl_1740 pci_omegapci_setup fndecl 4 1740 NULL
147608 +enable_so_ad_sd_write_reg_fndecl_1743 ad_sd_write_reg fndecl 3 1743 NULL nohasharray
147609 +enable_so_nr_packets_saa7134_ts_1743 nr_packets saa7134_ts 0 1743 &enable_so_ad_sd_write_reg_fndecl_1743
147610 +enable_so_compat_filldir_fndecl_1746 compat_filldir fndecl 3 1746 NULL
147611 +enable_so_sectorsize_btrfs_root_1747 sectorsize btrfs_root 0 1747 NULL
147612 +enable_so_si4713_send_command_fndecl_1750 si4713_send_command fndecl 6 1750 NULL
147613 +enable_so_copy_module_from_user_fndecl_1751 copy_module_from_user fndecl 2 1751 NULL
147614 +enable_so_it_context_mask_fw_ohci_1753 it_context_mask fw_ohci 0 1753 NULL
147615 +enable_so_ext4_remove_blocks_fndecl_1754 ext4_remove_blocks fndecl 5 1754 NULL
147616 +enable_so_len_pda_custom_wrapper_1757 len pda_custom_wrapper 0 1757 NULL nohasharray
147617 +enable_so_lustre_acl_xattr_merge2ext_fndecl_1757 lustre_acl_xattr_merge2ext fndecl 2 1757 &enable_so_len_pda_custom_wrapper_1757
147618 +enable_so_offset_scrub_nocow_inode_1762 offset scrub_nocow_inode 0 1762 NULL
147619 +enable_so_ima_show_measurements_count_fndecl_1763 ima_show_measurements_count fndecl 3 1763 NULL
147620 +enable_so___es_insert_extent_fndecl_1764 __es_insert_extent fndecl 0 1764 NULL
147621 +enable_so_eqe_size_mlx4_caps_1775 eqe_size mlx4_caps 0 1775 NULL
147622 +enable_so_key_length_mwifiex_wep_key_1784 key_length mwifiex_wep_key 0 1784 NULL
147623 +enable_so___of_translate_address_fndecl_1786 __of_translate_address fndecl 0 1786 NULL
147624 +enable_so_pitch_radeonfb_info_1792 pitch radeonfb_info 0 1792 NULL
147625 +enable_so_nv50_disp_chan_create__fndecl_1795 nv50_disp_chan_create_ fndecl 5 1795 NULL
147626 +enable_so_reiserfs_add_entry_fndecl_1797 reiserfs_add_entry fndecl 4 1797 NULL
147627 +enable_so_vub300_usb_bulk_msg_fndecl_1799 vub300_usb_bulk_msg fndecl 4-2 1799 NULL nohasharray
147628 +enable_so_security_inode_killpriv_fndecl_1799 security_inode_killpriv fndecl 0 1799 &enable_so_vub300_usb_bulk_msg_fndecl_1799
147629 +enable_so_wl1273_fm_write_data_fndecl_1803 wl1273_fm_write_data fndecl 3 1803 NULL
147630 +enable_so_num_mtt_segs_mthca_limits_1806 num_mtt_segs mthca_limits 0 1806 NULL
147631 +enable_so_mei_cl_send_fndecl_1807 mei_cl_send fndecl 3 1807 NULL
147632 +enable_so_dataInSize_mpt_ioctl_command_1808 dataInSize mpt_ioctl_command 0 1808 NULL
147633 +enable_so_udl_gem_alloc_object_fndecl_1811 udl_gem_alloc_object fndecl 2 1811 NULL
147634 +enable_so___hugepage_set_anon_rmap_fndecl_1814 __hugepage_set_anon_rmap fndecl 3 1814 NULL nohasharray
147635 +enable_so_sv_nrpools_svc_serv_1814 sv_nrpools svc_serv 0 1814 &enable_so___hugepage_set_anon_rmap_fndecl_1814
147636 +enable_so_fuse_dir_ioctl_fndecl_1818 fuse_dir_ioctl fndecl 2 1818 NULL
147637 +enable_so_bufsize_saa7134_dmasound_1821 bufsize saa7134_dmasound 0 1821 NULL
147638 +enable_so_lleft_ext4_allocation_request_1823 lleft ext4_allocation_request 0 1823 NULL nohasharray
147639 +enable_so_s_size_qib_qp_1823 s_size qib_qp 0 1823 &enable_so_lleft_ext4_allocation_request_1823
147640 +enable_so_rt2x00debug_write_eeprom_fndecl_1824 rt2x00debug_write_eeprom fndecl 3 1824 NULL
147641 +enable_so_num_vectors_e1000_adapter_1827 num_vectors e1000_adapter 0 1827 NULL
147642 +enable_so___add_prelim_ref_fndecl_1828 __add_prelim_ref fndecl 6-5-2 1828 NULL
147643 +enable_so_ntfs_ucstonls_fndecl_1834 ntfs_ucstonls fndecl 3-5 1834 NULL
147644 +enable_so_kvm_mmu_gva_to_gpa_write_fndecl_1840 kvm_mmu_gva_to_gpa_write fndecl 0 1840 NULL
147645 +enable_so_walk_system_ram_range_fndecl_1842 walk_system_ram_range fndecl 2-1 1842 NULL
147646 +enable_so_check_free_sectors_fndecl_1843 check_free_sectors fndecl 2 1843 NULL
147647 +enable_so_vm_map_ram_fndecl_1845 vm_map_ram fndecl 2 1845 NULL
147648 +enable_so_device_slot_1847 device slot 0 1847 NULL
147649 +enable_so_ncpus_xen_mc_physcpuinfo_1849 ncpus xen_mc_physcpuinfo 0 1849 NULL
147650 +enable_so_qla4_82xx_pci_mem_read_2M_fndecl_1850 qla4_82xx_pci_mem_read_2M fndecl 2 1850 NULL
147651 +enable_so_maximum_cx88_ctrl_1852 maximum cx88_ctrl 0 1852 NULL
147652 +enable_so_isr_tx_procs_read_fndecl_1855 isr_tx_procs_read fndecl 3 1855 NULL
147653 +enable_so_drm_mode_create_tv_properties_fndecl_1857 drm_mode_create_tv_properties fndecl 2 1857 NULL
147654 +enable_so_dm_write_async_fndecl_1859 dm_write_async fndecl 3 1859 NULL
147655 +enable_so_read_file_wow_fndecl_1861 read_file_wow fndecl 3 1861 NULL
147656 +enable_so_rxq_req_tg3_1873 rxq_req tg3 0 1873 NULL
147657 +enable_so_nl80211_send_rx_auth_fndecl_1876 nl80211_send_rx_auth fndecl 4 1876 NULL nohasharray
147658 +enable_so_bset_tree_bytes_fndecl_1876 bset_tree_bytes fndecl 0 1876 &enable_so_nl80211_send_rx_auth_fndecl_1876
147659 +enable_so_mwl8k_cmd_set_beacon_fndecl_1877 mwl8k_cmd_set_beacon fndecl 4 1877 NULL
147660 +enable_so_sisusb_bulkin_msg_fndecl_1878 sisusb_bulkin_msg fndecl 4-2 1878 NULL nohasharray
147661 +enable_so_buf_size_cx18_stream_1878 buf_size cx18_stream 0 1878 &enable_so_sisusb_bulkin_msg_fndecl_1878
147662 +enable_so_num_vmdq_vsis_i40e_pf_1882 num_vmdq_vsis i40e_pf 0 1882 NULL
147663 +enable_so___clear_user_fndecl_1885 __clear_user fndecl 0 1885 NULL
147664 +enable_so_partial_shdma_desc_1886 partial shdma_desc 0 1886 NULL
147665 +enable_so__iwl_dbgfs_fw_dbg_collect_write_fndecl_1890 _iwl_dbgfs_fw_dbg_collect_write fndecl 3 1890 NULL
147666 +enable_so_vmxnet3_get_hdr_len_fndecl_1891 vmxnet3_get_hdr_len fndecl 0 1891 NULL
147667 +enable_so_read_file_ani_fndecl_1898 read_file_ani fndecl 3 1898 NULL
147668 +enable_so_cq_ecount_lpfc_sli4_hba_1907 cq_ecount lpfc_sli4_hba 0 1907 NULL
147669 +enable_so_ca91cx42_master_set_fndecl_1913 ca91cx42_master_set fndecl 4 1913 NULL
147670 +enable_so_mpi_alloc_limb_space_fndecl_1925 mpi_alloc_limb_space fndecl 1 1925 NULL
147671 +enable_so_fix_unclean_leb_fndecl_1927 fix_unclean_leb fndecl 3 1927 NULL
147672 +enable_so_convert_ip_to_linear_fndecl_1933 convert_ip_to_linear fndecl 0 1933 NULL
147673 +enable_so_send_cap_msg_fndecl_1934 send_cap_msg fndecl 13 1934 NULL
147674 +enable_so_length_usnic_uiom_reg_1937 length usnic_uiom_reg 0 1937 NULL
147675 +enable_so_usblp_write_fndecl_1945 usblp_write fndecl 3 1945 NULL
147676 +enable_so_sd_init_fndecl_1946 sd_init fndecl 0 1946 NULL
147677 +enable_so_sv_resid_sym_ccb_1947 sv_resid sym_ccb 0 1947 NULL
147678 +enable_so_ieee80211_get_mesh_hdrlen_fndecl_1948 ieee80211_get_mesh_hdrlen fndecl 0 1948 NULL
147679 +enable_so_gss_pipe_downcall_fndecl_1949 gss_pipe_downcall fndecl 3 1949 NULL
147680 +enable_so_num_adcs_cs42xx8_driver_data_1953 num_adcs cs42xx8_driver_data 0 1953 NULL
147681 +enable_so_mcryptd_alloc_instance_fndecl_1958 mcryptd_alloc_instance fndecl 2-3 1958 NULL
147682 +enable_so___kmalloc_fndecl_1964 __kmalloc fndecl 1 1964 NULL
147683 +enable_so_xlog_get_bp_fndecl_1966 xlog_get_bp fndecl 2 1966 NULL
147684 +enable_so_tty_buffer_request_room_fndecl_1967 tty_buffer_request_room fndecl 0-2 1967 NULL
147685 +enable_so_to_dio_submit_1977 to dio_submit 0 1977 NULL nohasharray
147686 +enable_so_partitionLength_partitionDesc_1977 partitionLength partitionDesc 0 1977 &enable_so_to_dio_submit_1977
147687 +enable_so_tipc_sendmcast_fndecl_1981 tipc_sendmcast fndecl 4 1981 NULL nohasharray
147688 +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
147689 +enable_so_i5k_find_amb_registers_fndecl_1986 i5k_find_amb_registers fndecl 2 1986 NULL
147690 +enable_so_lpsn_ipath_swqe_1995 lpsn ipath_swqe 0 1995 NULL
147691 +enable_so_mwifiex_memrw_read_fndecl_1997 mwifiex_memrw_read fndecl 3 1997 NULL
147692 +enable_so_total_memory_vbe_ib_1999 total_memory vbe_ib 0 1999 NULL
147693 +enable_so_idx_len_tg3_rx_buffer_desc_2006 idx_len tg3_rx_buffer_desc 0 2006 NULL
147694 +enable_so_alauda_read_block_fndecl_2008 alauda_read_block fndecl 4 2008 NULL
147695 +enable_so_nv50_ram_create__fndecl_2010 nv50_ram_create_ fndecl 4 2010 NULL
147696 +enable_so_ipv6_skip_exthdr_fndecl_2016 ipv6_skip_exthdr fndecl 0-2 2016 NULL
147697 +enable_so_madvise_vma_fndecl_2019 madvise_vma fndecl 4-3 2019 NULL
147698 +enable_so_ec_i2c_count_message_fndecl_2022 ec_i2c_count_message fndecl 0-2 2022 NULL nohasharray
147699 +enable_so_doc_probe_fndecl_2022 doc_probe fndecl 1 2022 &enable_so_ec_i2c_count_message_fndecl_2022
147700 +enable_so_vga_vram_base_vardecl_vgacon_c_2024 vga_vram_base vardecl_vgacon.c 0 2024 NULL
147701 +enable_so_max_write_fuse_conn_2028 max_write fuse_conn 0 2028 NULL
147702 +enable_so_process_adv_report_fndecl_2030 process_adv_report fndecl 9 2030 NULL
147703 +enable_so_ib_umem_odp_map_dma_single_page_fndecl_2040 ib_umem_odp_map_dma_single_page fndecl 0 2040 NULL
147704 +enable_so_num_phy_chans_d40_base_2049 num_phy_chans d40_base 0 2049 NULL
147705 +enable_so_gss_encrypt_xdr_buf_fndecl_2050 gss_encrypt_xdr_buf fndecl 3 2050 NULL
147706 +enable_so_set_sock_size_fndecl_2051 set_sock_size fndecl 3 2051 NULL
147707 +enable_so_xfs_da_grow_inode_int_fndecl_2058 xfs_da_grow_inode_int fndecl 3 2058 NULL
147708 +enable_so_wdt87xx_i2c_xfer_fndecl_2059 wdt87xx_i2c_xfer fndecl 3-5 2059 NULL nohasharray
147709 +enable_so_rt2x00queue_remove_l2pad_fndecl_2059 rt2x00queue_remove_l2pad fndecl 2 2059 &enable_so_wdt87xx_i2c_xfer_fndecl_2059 nohasharray
147710 +enable_so_getgain_fndecl_2059 getgain fndecl 0 2059 &enable_so_rt2x00queue_remove_l2pad_fndecl_2059
147711 +enable_so_receive_n_bytes_fndecl_2063 receive_n_bytes fndecl 3 2063 NULL nohasharray
147712 +enable_so_kmalloc_order_trace_fndecl_2063 kmalloc_order_trace fndecl 1 2063 &enable_so_receive_n_bytes_fndecl_2063
147713 +enable_so_val_bytes_regmap_format_2064 val_bytes regmap_format 0 2064 NULL
147714 +enable_so_usbat_flash_read_data_fndecl_2065 usbat_flash_read_data fndecl 4 2065 NULL
147715 +enable_so_total_copied_iscsi_segment_2071 total_copied iscsi_segment 0 2071 NULL
147716 +enable_so_dvb_generic_ioctl_fndecl_2081 dvb_generic_ioctl fndecl 2 2081 NULL
147717 +enable_so_mei_io_cb_alloc_buf_fndecl_2088 mei_io_cb_alloc_buf fndecl 2-0 2088 NULL
147718 +enable_so___kernel_write_fndecl_2090 __kernel_write fndecl 3-0 2090 NULL
147719 +enable_so_rxd_size_bdx_priv_2091 rxd_size bdx_priv 0 2091 NULL
147720 +enable_so_sensor_xres_em28xx_v4l2_2095 sensor_xres em28xx_v4l2 0 2095 NULL
147721 +enable_so_size_nfs_fattr_2101 size nfs_fattr 0 2101 NULL
147722 +enable_so_min_odd_fndecl_2105 min_odd fndecl 0-1-2 2105 NULL
147723 +enable_so_namelen_extended_attribute_2109 namelen extended_attribute 0 2109 NULL
147724 +enable_so_dlen_nft_immediate_expr_2110 dlen nft_immediate_expr 0 2110 NULL
147725 +enable_so_max_pkt_payload_len_nci_conn_info_2111 max_pkt_payload_len nci_conn_info 0 2111 NULL
147726 +enable_so_s_inode_size_ext3_sb_info_2116 s_inode_size ext3_sb_info 0 2116 NULL nohasharray
147727 +enable_so_oom_adj_read_fndecl_2116 oom_adj_read fndecl 3 2116 &enable_so_s_inode_size_ext3_sb_info_2116
147728 +enable_so_ecryptfs_truncate_fndecl_2118 ecryptfs_truncate fndecl 2 2118 NULL
147729 +enable_so_rxfrag_size_ipg_nic_private_2119 rxfrag_size ipg_nic_private 0 2119 NULL
147730 +enable_so_untrack_pfn_fndecl_2124 untrack_pfn fndecl 3 2124 NULL
147731 +enable_so_gen_unique_name_fndecl_2127 gen_unique_name fndecl 0 2127 NULL
147732 +enable_so_sector_size_nd_blk_device_2130 sector_size nd_blk_device 0 2130 NULL
147733 +enable_so_ipath_ports_extrabuf_ipath_devdata_2132 ipath_ports_extrabuf ipath_devdata 0 2132 NULL
147734 +enable_so_dce_v10_0_afmt_update_ACR_fndecl_2133 dce_v10_0_afmt_update_ACR fndecl 2 2133 NULL
147735 +enable_so_hdrs_min_io_size_ubi_device_2134 hdrs_min_io_size ubi_device 0 2134 NULL
147736 +enable_so_offset_resp_ies_ndis_80211_assoc_info_2135 offset_resp_ies ndis_80211_assoc_info 0 2135 NULL
147737 +enable_so_req_lim_srp_rdma_ch_2136 req_lim srp_rdma_ch 0 2136 NULL
147738 +enable_so_count_skge_ring_2140 count skge_ring 0 2140 NULL
147739 +enable_so_connection_length_spar_controlvm_parameters_header_2141 connection_length spar_controlvm_parameters_header 0 2141 NULL
147740 +enable_so__iwl_dbgfs_sta_drain_write_fndecl_2142 _iwl_dbgfs_sta_drain_write fndecl 3 2142 NULL
147741 +enable_so_capacity_p9_fcall_2144 capacity p9_fcall 0 2144 NULL
147742 +enable_so_sisusbcon_bmove_fndecl_2146 sisusbcon_bmove fndecl 7-5-6 2146 NULL
147743 +enable_so_multi_ios_hda_gen_spec_2147 multi_ios hda_gen_spec 0 2147 NULL
147744 +enable_so_ioc_len_obd_ioctl_hdr_2148 ioc_len obd_ioctl_hdr 0 2148 NULL
147745 +enable_so_mpc_new_length_vardecl_mpparse_c_2163 mpc_new_length vardecl_mpparse.c 0 2163 NULL nohasharray
147746 +enable_so_block_size__drive_info_struct_2163 block_size _drive_info_struct 0 2163 &enable_so_mpc_new_length_vardecl_mpparse_c_2163
147747 +enable_so___kfifo_dma_out_prepare_fndecl_2165 __kfifo_dma_out_prepare fndecl 4 2165 NULL
147748 +enable_so_lpfc_idiag_extacc_avail_get_fndecl_2170 lpfc_idiag_extacc_avail_get fndecl 3-0 2170 NULL
147749 +enable_so_read_size_perf_event_2173 read_size perf_event 0 2173 NULL
147750 +enable_so_ext4_setup_next_flex_gd_fndecl_2174 ext4_setup_next_flex_gd fndecl 4 2174 NULL
147751 +enable_so_qsfp_1_read_fndecl_2184 qsfp_1_read fndecl 3 2184 NULL
147752 +enable_so_rate_max_audioformat_2186 rate_max audioformat 0 2186 NULL nohasharray
147753 +enable_so_max_txsz_ulp_iscsi_info_2186 max_txsz ulp_iscsi_info 0 2186 &enable_so_rate_max_audioformat_2186
147754 +enable_so_ast_ttm_tt_create_fndecl_2190 ast_ttm_tt_create fndecl 2 2190 NULL
147755 +enable_so_qp_handle_buf_size_vmci_ctx_notify_recv_info_2191 qp_handle_buf_size vmci_ctx_notify_recv_info 0 2191 NULL
147756 +enable_so_ldlm_lock_create_fndecl_2195 ldlm_lock_create fndecl 7 2195 NULL
147757 +enable_so___btrfs_direct_write_fndecl_2197 __btrfs_direct_write fndecl 3 2197 NULL
147758 +enable_so_max_header_size_irlan_provider_cb_2198 max_header_size irlan_provider_cb 0 2198 NULL
147759 +enable_so_s_blocks_per_group_ext4_sb_info_2201 s_blocks_per_group ext4_sb_info 0 2201 NULL
147760 +enable_so_offs_v_fimc_frame_2215 offs_v fimc_frame 0 2215 NULL
147761 +enable_so_valuelen_xfs_attr_inactive_list_2216 valuelen xfs_attr_inactive_list 0 2216 NULL
147762 +enable_so_DH_length_eg_ctrl_info_2234 DH_length eg_ctrl_info 0 2234 NULL
147763 +enable_so_read_saa7146_use_ops_2236 read saa7146_use_ops 0 2236 NULL
147764 +enable_so_nfs_proc_readdir_fndecl_2240 nfs_proc_readdir fndecl 5 2240 NULL
147765 +enable_so_lpsn_qib_swqe_2241 lpsn qib_swqe 0 2241 NULL
147766 +enable_so_macb_change_mtu_fndecl_2242 macb_change_mtu fndecl 2 2242 NULL
147767 +enable_so_s_mb_group_prealloc_ext4_sb_info_2246 s_mb_group_prealloc ext4_sb_info 0 2246 NULL
147768 +enable_so_SYSC_prctl_fndecl_2255 SYSC_prctl fndecl 4 2255 NULL
147769 +enable_so_big_oops_buf_sz_vardecl_platform_c_2265 big_oops_buf_sz vardecl_platform.c 0 2265 NULL
147770 +enable_so_compat_rw_copy_check_uvector_fndecl_2274 compat_rw_copy_check_uvector fndecl 0-3 2274 NULL nohasharray
147771 +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
147772 +enable_so_transport_init_se_cmd_fndecl_2277 transport_init_se_cmd fndecl 4 2277 NULL
147773 +enable_so_num_touchids_mxt_data_2284 num_touchids mxt_data 0 2284 NULL
147774 +enable_so_write_phy_fndecl_2290 write_phy fndecl 3 2290 NULL
147775 +enable_so_scrub_extent_fndecl_2293 scrub_extent fndecl 3-2-9-4 2293 NULL
147776 +enable_so_proc_sched_autogroup_set_nice_fndecl_2296 proc_sched_autogroup_set_nice fndecl 2 2296 NULL
147777 +enable_so_bulk_out_endpointAddr_usb_lcd_2303 bulk_out_endpointAddr usb_lcd 0 2303 NULL
147778 +enable_so_sensf_res_len_nfc_target_2304 sensf_res_len nfc_target 0 2304 NULL
147779 +enable_so_af9033_wr_regs_fndecl_2314 af9033_wr_regs fndecl 4 2314 NULL nohasharray
147780 +enable_so_read_pointer_st_buffer_2314 read_pointer st_buffer 0 2314 &enable_so_af9033_wr_regs_fndecl_2314
147781 +enable_so_clipcount_v4l2_window_2316 clipcount v4l2_window 0 2316 NULL
147782 +enable_so_il_dbgfs_stations_read_fndecl_2319 il_dbgfs_stations_read fndecl 3 2319 NULL
147783 +enable_so_ieee80211_tdls_prep_mgmt_packet_fndecl_2320 ieee80211_tdls_prep_mgmt_packet fndecl 10 2320 NULL
147784 +enable_so_mmc_alloc_sg_fndecl_2323 mmc_alloc_sg fndecl 1 2323 NULL
147785 +enable_so_ib_qib_max_pds_vardecl_qib_verbs_c_2326 ib_qib_max_pds vardecl_qib_verbs.c 0 2326 NULL
147786 +enable_so_sendmsg_proto_ops_2329 sendmsg proto_ops 0 2329 NULL
147787 +enable_so_size_debugfs_blob_wrapper_2338 size debugfs_blob_wrapper 0 2338 NULL
147788 +enable_so_gfx_partition_size_amdgpu_gds_asic_info_2339 gfx_partition_size amdgpu_gds_asic_info 0 2339 NULL
147789 +enable_so_rx_rx_beacon_early_term_read_fndecl_2340 rx_rx_beacon_early_term_read fndecl 3 2340 NULL nohasharray
147790 +enable_so_memsz_kexec_segment_2340 memsz kexec_segment 0 2340 &enable_so_rx_rx_beacon_early_term_read_fndecl_2340
147791 +enable_so_sg_copy_to_buffer_fndecl_2349 sg_copy_to_buffer fndecl 4 2349 NULL
147792 +enable_so_ipath_piobcnt4k_ipath_devdata_2352 ipath_piobcnt4k ipath_devdata 0 2352 NULL nohasharray
147793 +enable_so_dvb_dmxdev_section_callback_fndecl_2352 dvb_dmxdev_section_callback fndecl 2-4 2352 &enable_so_ipath_piobcnt4k_ipath_devdata_2352
147794 +enable_so_cipso_v4_map_cat_enum_hton_fndecl_2359 cipso_v4_map_cat_enum_hton fndecl 0 2359 NULL
147795 +enable_so_fat_ioctl_filldir_fndecl_2360 fat_ioctl_filldir fndecl 3 2360 NULL
147796 +enable_so_ReplUnitNum_nftl_uci0_2366 ReplUnitNum nftl_uci0 0 2366 NULL
147797 +enable_so_count_brcmf_pno_scanresults_le_2373 count brcmf_pno_scanresults_le 0 2373 NULL nohasharray
147798 +enable_so_packet_size_st5481_in_2373 packet_size st5481_in 0 2373 &enable_so_count_brcmf_pno_scanresults_le_2373
147799 +enable_so_tx_buffer_size_peak_usb_adapter_2386 tx_buffer_size peak_usb_adapter 0 2386 NULL
147800 +enable_so_va_address_drm_amdgpu_gem_va_2389 va_address drm_amdgpu_gem_va 0 2389 NULL nohasharray
147801 +enable_so_pcifront_rescan_root_fndecl_2389 pcifront_rescan_root fndecl 3 2389 &enable_so_va_address_drm_amdgpu_gem_va_2389
147802 +enable_so_check_and_mark_free_block_fndecl_2391 check_and_mark_free_block fndecl 2 2391 NULL
147803 +enable_so_xlog_do_recovery_pass_fndecl_2401 xlog_do_recovery_pass fndecl 3 2401 NULL
147804 +enable_so_asd_get_cmdctx_size_fndecl_2408 asd_get_cmdctx_size fndecl 0 2408 NULL
147805 +enable_so_pci_cardbus_resource_alignment_fndecl_2410 pci_cardbus_resource_alignment fndecl 0 2410 NULL
147806 +enable_so___jfs_getxattr_fndecl_2412 __jfs_getxattr fndecl 0 2412 NULL
147807 +enable_so_status1_ar9003_rxs_2417 status1 ar9003_rxs 0 2417 NULL nohasharray
147808 +enable_so_cfi_intelext_write_buffers_fndecl_2417 cfi_intelext_write_buffers fndecl 3 2417 &enable_so_status1_ar9003_rxs_2417 nohasharray
147809 +enable_so_rspq_size_qset_params_2417 rspq_size qset_params 0 2417 &enable_so_cfi_intelext_write_buffers_fndecl_2417
147810 +enable_so_ocfs2_acl_from_xattr_fndecl_2423 ocfs2_acl_from_xattr fndecl 2 2423 NULL
147811 +enable_so_omtu_l2cap_chan_2424 omtu l2cap_chan 0 2424 NULL
147812 +enable_so_ib_umem_copy_from_fndecl_2435 ib_umem_copy_from fndecl 3-4 2435 NULL
147813 +enable_so_bcm3510_writebytes_fndecl_2436 bcm3510_writebytes fndecl 4 2436 NULL
147814 +enable_so_init_asiliant_fndecl_2438 init_asiliant fndecl 2 2438 NULL
147815 +enable_so_carl9170_rx_copy_data_fndecl_2443 carl9170_rx_copy_data fndecl 2 2443 NULL
147816 +enable_so_key_len_key_params_2447 key_len key_params 0 2447 NULL
147817 +enable_so_ocfs2_lock_refcount_allocators_fndecl_2461 ocfs2_lock_refcount_allocators fndecl 3-2 2461 NULL nohasharray
147818 +enable_so_fb_base_bochs_device_2461 fb_base bochs_device 0 2461 &enable_so_ocfs2_lock_refcount_allocators_fndecl_2461 nohasharray
147819 +enable_so_rsize_p9_conn_2461 rsize p9_conn 0 2461 &enable_so_fb_base_bochs_device_2461
147820 +enable_so_tomoyo_read_control_fndecl_2465 tomoyo_read_control fndecl 3 2465 NULL
147821 +enable_so_regmap_register_patch_fndecl_2466 regmap_register_patch fndecl 3 2466 NULL
147822 +enable_so_proc_maps_open_fndecl_2468 proc_maps_open fndecl 4 2468 NULL nohasharray
147823 +enable_so_rtllib_alloc_txb_fndecl_2468 rtllib_alloc_txb fndecl 1 2468 &enable_so_proc_maps_open_fndecl_2468
147824 +enable_so_maxpacket_usb_ep_2473 maxpacket usb_ep 0 2473 NULL
147825 +enable_so_ixgb_change_mtu_fndecl_2482 ixgb_change_mtu fndecl 2 2482 NULL
147826 +enable_so_num_vf_en_nicpf_2486 num_vf_en nicpf 0 2486 NULL
147827 +enable_so_tcp_sacktag_one_fndecl_2487 tcp_sacktag_one fndecl 7 2487 NULL
147828 +enable_so_ocfs2_xattr_get_nolock_fndecl_2493 ocfs2_xattr_get_nolock fndecl 0 2493 NULL
147829 +enable_so_btrfs_find_all_leafs_fndecl_2499 btrfs_find_all_leafs fndecl 3 2499 NULL
147830 +enable_so_size_arpt_replace_2509 size arpt_replace 0 2509 NULL
147831 +enable_so_unmap_alignment_scsi_disk_2514 unmap_alignment scsi_disk 0 2514 NULL
147832 +enable_so_evdev_ioctl_handler_fndecl_2522 evdev_ioctl_handler fndecl 2 2522 NULL
147833 +enable_so_usbpn_set_mtu_fndecl_2527 usbpn_set_mtu fndecl 2 2527 NULL
147834 +enable_so_vfio_unpin_pages_fndecl_2528 vfio_unpin_pages fndecl 0 2528 NULL
147835 +enable_so___nf_nat_mangle_tcp_packet_fndecl_2531 __nf_nat_mangle_tcp_packet fndecl 6-8 2531 NULL
147836 +enable_so_should_remove_suid_fndecl_2532 should_remove_suid fndecl 0 2532 NULL
147837 +enable_so_ocfs2_direct_IO_extend_no_holes_fndecl_2534 ocfs2_direct_IO_extend_no_holes fndecl 3 2534 NULL
147838 +enable_so_l2down_create_fndecl_2536 l2down_create fndecl 4 2536 NULL
147839 +enable_so_rs_switch_to_mimo2_fndecl_2537 rs_switch_to_mimo2 fndecl 6 2537 NULL nohasharray
147840 +enable_so_mthca_alloc_init_fndecl_2537 mthca_alloc_init fndecl 3-2 2537 &enable_so_rs_switch_to_mimo2_fndecl_2537
147841 +enable_so_tcp_shifted_skb_fndecl_2543 tcp_shifted_skb fndecl 4 2543 NULL
147842 +enable_so___wa_seg_submit_fndecl_2547 __wa_seg_submit fndecl 0 2547 NULL nohasharray
147843 +enable_so_lprocfs_wr_import_fndecl_2547 lprocfs_wr_import fndecl 3 2547 &enable_so___wa_seg_submit_fndecl_2547
147844 +enable_so___kmem_cache_alias_fndecl_2551 __kmem_cache_alias fndecl 3-2 2551 NULL
147845 +enable_so_vm_brk_fndecl_2552 vm_brk fndecl 1-2 2552 NULL
147846 +enable_so_dma_maxpq_fndecl_2555 dma_maxpq fndecl 0 2555 NULL
147847 +enable_so_off_fuse_dirent_2561 off fuse_dirent 0 2561 NULL
147848 +enable_so_active_duplex_niu_link_config_2566 active_duplex niu_link_config 0 2566 NULL
147849 +enable_so_hdsp_external_sample_rate_fndecl_2568 hdsp_external_sample_rate fndecl 0 2568 NULL
147850 +enable_so_extend_brk_fndecl_2574 extend_brk fndecl 2-1 2574 NULL
147851 +enable_so___tun_chr_ioctl_fndecl_2575 __tun_chr_ioctl fndecl 4 2575 NULL
147852 +enable_so_aio_offset_iocb_2576 aio_offset iocb 0 2576 NULL nohasharray
147853 +enable_so_skb_checksum_trimmed_fndecl_2576 skb_checksum_trimmed fndecl 2 2576 &enable_so_aio_offset_iocb_2576
147854 +enable_so_len_patch_info_2583 len patch_info 0 2583 NULL
147855 +enable_so_get_memory_block_size_fndecl_2600 get_memory_block_size fndecl 0 2600 NULL nohasharray
147856 +enable_so_page_cache_tree_insert_fndecl_2600 page_cache_tree_insert fndecl 0 2600 &enable_so_get_memory_block_size_fndecl_2600
147857 +enable_so_maxfrsize_bfa_fcs_rport_s_2601 maxfrsize bfa_fcs_rport_s 0 2601 NULL
147858 +enable_so_mesh_table_alloc_fndecl_2610 mesh_table_alloc fndecl 1 2610 NULL
147859 +enable_so_ld_active_tgt_count_lov_desc_2613 ld_active_tgt_count lov_desc 0 2613 NULL
147860 +enable_so_dst_maxburst_dma_slave_config_2619 dst_maxburst dma_slave_config 0 2619 NULL nohasharray
147861 +enable_so_priority_add_kvm_kpic_state_2619 priority_add kvm_kpic_state 0 2619 &enable_so_dst_maxburst_dma_slave_config_2619
147862 +enable_so_crc_size_vardecl_pm_check_c_2624 crc_size vardecl_pm-check.c 0 2624 NULL
147863 +enable_so_len_whc_std_2626 len whc_std 0 2626 NULL
147864 +enable_so_ptn3460_read_bytes_fndecl_2627 ptn3460_read_bytes fndecl 4 2627 NULL
147865 +enable_so_snd_soc_params_to_frame_size_fndecl_2630 snd_soc_params_to_frame_size fndecl 0 2630 NULL nohasharray
147866 +enable_so_total_vm_mm_struct_2630 total_vm mm_struct 0 2630 &enable_so_snd_soc_params_to_frame_size_fndecl_2630
147867 +enable_so_radeon_vram_location_fndecl_2634 radeon_vram_location fndecl 3 2634 NULL
147868 +enable_so_bop_lookup_contig_nilfs_bmap_operations_2637 bop_lookup_contig nilfs_bmap_operations 0 2637 NULL
147869 +enable_so_regmap_spi_gather_write_fndecl_2639 regmap_spi_gather_write fndecl 3-5 2639 NULL nohasharray
147870 +enable_so_cryptlen_authenc_request_ctx_2639 cryptlen authenc_request_ctx 0 2639 &enable_so_regmap_spi_gather_write_fndecl_2639
147871 +enable_so_num_cpu_pages_amdgpu_gart_2640 num_cpu_pages amdgpu_gart 0 2640 NULL
147872 +enable_so_rx_bufshift_rtl_stats_2641 rx_bufshift rtl_stats 0 2641 NULL
147873 +enable_so_sys_read_fndecl_2644 sys_read fndecl 3 2644 NULL
147874 +enable_so_max_low_pfn_mapped_vardecl_2650 max_low_pfn_mapped vardecl 0 2650 NULL
147875 +enable_so_pktgen_alloc_skb_fndecl_2658 pktgen_alloc_skb fndecl 3 2658 NULL nohasharray
147876 +enable_so_resync_max_mddev_2658 resync_max mddev 0 2658 &enable_so_pktgen_alloc_skb_fndecl_2658
147877 +enable_so_ath10k_debug_fw_reset_stats_read_fndecl_2660 ath10k_debug_fw_reset_stats_read fndecl 3 2660 NULL nohasharray
147878 +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
147879 +enable_so_dlen_hci_acl_hdr_2672 dlen hci_acl_hdr 0 2672 NULL nohasharray
147880 +enable_so_evdev_ioctl_fndecl_2672 evdev_ioctl fndecl 2 2672 &enable_so_dlen_hci_acl_hdr_2672
147881 +enable_so_ee_block_ext4_extent_2673 ee_block ext4_extent 0 2673 NULL
147882 +enable_so_ext3_bg_num_gdb_nometa_fndecl_2674 ext3_bg_num_gdb_nometa fndecl 0 2674 NULL
147883 +enable_so_scif_user_recv_fndecl_2675 scif_user_recv fndecl 3 2675 NULL nohasharray
147884 +enable_so_bbt_erase_shift_bbm_info_2675 bbt_erase_shift bbm_info 0 2675 &enable_so_scif_user_recv_fndecl_2675
147885 +enable_so_TmpDcm_zoran_jpg_settings_2679 TmpDcm zoran_jpg_settings 0 2679 NULL
147886 +enable_so_mad_len_ib_mad_recv_wc_2683 mad_len ib_mad_recv_wc 0 2683 NULL
147887 +enable_so_logo_lines_vardecl_fbcon_c_2685 logo_lines vardecl_fbcon.c 0 2685 NULL
147888 +enable_so_ipw2100_set_long_retry_fndecl_2686 ipw2100_set_long_retry fndecl 2 2686 NULL
147889 +enable_so_queue_reply_fndecl_2691 queue_reply fndecl 3 2691 NULL
147890 +enable_so___set_enter_print_fmt_fndecl_2700 __set_enter_print_fmt fndecl 0 2700 NULL
147891 +enable_so_s5h1420_readreg_fndecl_2707 s5h1420_readreg fndecl 0 2707 NULL
147892 +enable_so_src_len_ccp_sha_engine_2711 src_len ccp_sha_engine 0 2711 NULL nohasharray
147893 +enable_so_zoran_write_fndecl_2711 zoran_write fndecl 3 2711 &enable_so_src_len_ccp_sha_engine_2711
147894 +enable_so_u132_hcd_bulk_output_sent_fndecl_2715 u132_hcd_bulk_output_sent fndecl 4 2715 NULL
147895 +enable_so_mt7601u_usb_alloc_buf_fndecl_2716 mt7601u_usb_alloc_buf fndecl 2 2716 NULL
147896 +enable_so_bytesused_v4l2_buffer_2717 bytesused v4l2_buffer 0 2717 NULL
147897 +enable_so_handle_received_packet_fndecl_2730 handle_received_packet fndecl 3 2730 NULL
147898 +enable_so_get_res_add_size_fndecl_2740 get_res_add_size fndecl 0 2740 NULL
147899 +enable_so_iov_iter_get_pages_fndecl_2747 iov_iter_get_pages fndecl 0-4-3 2747 NULL
147900 +enable_so_mem_vardecl_applicom_c_2753 mem vardecl_applicom.c 0 2753 NULL
147901 +enable_so_rfcomm_send_test_fndecl_2760 rfcomm_send_test fndecl 4 2760 NULL nohasharray
147902 +enable_so_cache_write_procfs_fndecl_2760 cache_write_procfs fndecl 3 2760 &enable_so_rfcomm_send_test_fndecl_2760
147903 +enable_so_qib_user_sdma_alloc_header_fndecl_2761 qib_user_sdma_alloc_header fndecl 2 2761 NULL
147904 +enable_so_ecryptfs_write_fndecl_2763 ecryptfs_write fndecl 4-3 2763 NULL
147905 +enable_so_qnx6_match_fndecl_2766 qnx6_match fndecl 0 2766 NULL
147906 +enable_so_u_ssize_user32_2770 u_ssize user32 0 2770 NULL
147907 +enable_so_ieee80211_alloc_hw_nm_fndecl_2774 ieee80211_alloc_hw_nm fndecl 1 2774 NULL
147908 +enable_so_batadv_check_unicast_packet_fndecl_2775 batadv_check_unicast_packet fndecl 3 2775 NULL nohasharray
147909 +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
147910 +enable_so_uhci_result_common_fndecl_2788 uhci_result_common fndecl 0 2788 NULL
147911 +enable_so_iobase_vardecl_l440gx_c_2797 iobase vardecl_l440gx.c 0 2797 NULL
147912 +enable_so_sb_inodelog_xfs_sb_2799 sb_inodelog xfs_sb 0 2799 NULL
147913 +enable_so_st21nfca_hci_se_io_fndecl_2800 st21nfca_hci_se_io fndecl 4 2800 NULL nohasharray
147914 +enable_so_mp_find_ioapic_pin_fndecl_2800 mp_find_ioapic_pin fndecl 0-2 2800 &enable_so_st21nfca_hci_se_io_fndecl_2800
147915 +enable_so_put_chars_fndecl_2801 put_chars fndecl 3 2801 NULL
147916 +enable_so_usb_stor_set_xfer_buf_fndecl_2809 usb_stor_set_xfer_buf fndecl 2 2809 NULL
147917 +enable_so_num_active_queues_i40evf_adapter_2813 num_active_queues i40evf_adapter 0 2813 NULL
147918 +enable_so_num_cnic_queues_bnx2x_2816 num_cnic_queues bnx2x 0 2816 NULL
147919 +enable_so__sp2d_min_pg_fndecl_2819 _sp2d_min_pg fndecl 0 2819 NULL
147920 +enable_so_VerDcm_zoran_jpg_settings_2823 VerDcm zoran_jpg_settings 0 2823 NULL
147921 +enable_so_gf100_grctx_mmio_data_fndecl_2831 gf100_grctx_mmio_data fndecl 3-2 2831 NULL
147922 +enable_so_btrfs_get_16_fndecl_2836 btrfs_get_16 fndecl 0 2836 NULL
147923 +enable_so_ureg_align_qib_devdata_2841 ureg_align qib_devdata 0 2841 NULL
147924 +enable_so_max_data_size_ath6kl_bmi_2842 max_data_size ath6kl_bmi 0 2842 NULL
147925 +enable_so_dccm2_len_iwl_cfg_2852 dccm2_len iwl_cfg 0 2852 NULL
147926 +enable_so_phys_size_hfs_inode_info_2856 phys_size hfs_inode_info 0 2856 NULL
147927 +enable_so_btrfs_reloc_clone_csums_fndecl_2862 btrfs_reloc_clone_csums fndecl 2-3 2862 NULL
147928 +enable_so_q_depth_nvme_dev_2866 q_depth nvme_dev 0 2866 NULL nohasharray
147929 +enable_so_zd_usb_read_fw_fndecl_2866 zd_usb_read_fw fndecl 4 2866 &enable_so_q_depth_nvme_dev_2866
147930 +enable_so_max_sst_algo_control_2868 max sst_algo_control 0 2868 NULL
147931 +enable_so_secondary_bin_size_drm_mga_dma_bootstrap_2869 secondary_bin_size drm_mga_dma_bootstrap 0 2869 NULL nohasharray
147932 +enable_so_sys_recvfrom_fndecl_2869 sys_recvfrom fndecl 3 2869 &enable_so_secondary_bin_size_drm_mga_dma_bootstrap_2869
147933 +enable_so_cmodio_id_vardecl_janz_cmodio_c_2872 cmodio_id vardecl_janz-cmodio.c 0 2872 NULL
147934 +enable_so_drm_gem_object_init_fndecl_2882 drm_gem_object_init fndecl 3 2882 NULL nohasharray
147935 +enable_so_sg_init_one_fndecl_2882 sg_init_one fndecl 3 2882 &enable_so_drm_gem_object_init_fndecl_2882
147936 +enable_so_qlcnic_sriov_pf_enable_fndecl_2884 qlcnic_sriov_pf_enable fndecl 2 2884 NULL
147937 +enable_so_n_notifiers_vmci_ctx_2889 n_notifiers vmci_ctx 0 2889 NULL
147938 +enable_so_ieee80211_tdls_add_chan_switch_resp_ies_fndecl_2892 ieee80211_tdls_add_chan_switch_resp_ies fndecl 7 2892 NULL nohasharray
147939 +enable_so_pca953x_setup_gpio_fndecl_2892 pca953x_setup_gpio fndecl 2 2892 &enable_so_ieee80211_tdls_add_chan_switch_resp_ies_fndecl_2892
147940 +enable_so_set_max_cos_est_fndecl_2893 set_max_cos_est fndecl 0 2893 NULL
147941 +enable_so_prl_count_ip_tunnel_2900 prl_count ip_tunnel 0 2900 NULL
147942 +enable_so_xfs_bmapi_reserve_delalloc_fndecl_2901 xfs_bmapi_reserve_delalloc fndecl 2 2901 NULL nohasharray
147943 +enable_so_nf_ct_seq_adjust_fndecl_2901 nf_ct_seq_adjust fndecl 4 2901 &enable_so_xfs_bmapi_reserve_delalloc_fndecl_2901
147944 +enable_so_mem_rw_fndecl_2902 mem_rw fndecl 3 2902 NULL
147945 +enable_so_ipath_piobcnt2k_ipath_devdata_2904 ipath_piobcnt2k ipath_devdata 0 2904 NULL
147946 +enable_so_tx_max_out_p_vardecl_mptlan_c_2906 tx_max_out_p vardecl_mptlan.c 0 2906 NULL
147947 +enable_so_chroma_size_s5p_mfc_ctx_2911 chroma_size s5p_mfc_ctx 0 2911 NULL
147948 +enable_so_length_usbhs_pkt_2912 length usbhs_pkt 0 2912 NULL
147949 +enable_so_tda1004x_do_upload_fndecl_2916 tda1004x_do_upload fndecl 3 2916 NULL
147950 +enable_so_discard_swap_cluster_fndecl_2926 discard_swap_cluster fndecl 3-2 2926 NULL
147951 +enable_so_rx_buf_size_octeon_nic_if_config_2928 rx_buf_size octeon_nic_if_config 0 2928 NULL nohasharray
147952 +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
147953 +enable_so_rx_num_pgs_tp_params_2929 rx_num_pgs tp_params 0 2929 NULL
147954 +enable_so_tx_cnt_isac_2931 tx_cnt isac 0 2931 NULL nohasharray
147955 +enable_so_pno_blkpg_partition_2931 pno blkpg_partition 0 2931 &enable_so_tx_cnt_isac_2931
147956 +enable_so_fnic_fc_trace_max_pages_vardecl_2932 fnic_fc_trace_max_pages vardecl 0 2932 NULL
147957 +enable_so_tx_ring_count_ixgbevf_adapter_2933 tx_ring_count ixgbevf_adapter 0 2933 NULL
147958 +enable_so_max_ndp_size_cdc_ncm_ctx_2942 max_ndp_size cdc_ncm_ctx 0 2942 NULL
147959 +enable_so_sys_remap_file_pages_fndecl_2943 sys_remap_file_pages fndecl 2-4-1 2943 NULL
147960 +enable_so_devm_ioremap_wc_fndecl_2945 devm_ioremap_wc fndecl 3-2 2945 NULL
147961 +enable_so_HorDcm_zoran_jpg_settings_2947 HorDcm zoran_jpg_settings 0 2947 NULL nohasharray
147962 +enable_so_tx_idx_dchannel_2947 tx_idx dchannel 0 2947 &enable_so_HorDcm_zoran_jpg_settings_2947
147963 +enable_so_cydata_ofs_cyttsp4_sysinfo_ofs_2952 cydata_ofs cyttsp4_sysinfo_ofs 0 2952 NULL
147964 +enable_so_alloc_blksz_hfsplus_sb_info_2955 alloc_blksz hfsplus_sb_info 0 2955 NULL
147965 +enable_so___kfifo_alloc_fndecl_2958 __kfifo_alloc fndecl 3 2958 NULL
147966 +enable_so_info_len_ib_ucm_event_2963 info_len ib_ucm_event 0 2963 NULL
147967 +enable_so_s_ipg_ufs_sb_private_info_2965 s_ipg ufs_sb_private_info 0 2965 NULL
147968 +enable_so_SyS_sched_setaffinity_fndecl_2967 SyS_sched_setaffinity fndecl 2 2967 NULL
147969 +enable_so_do_tcp_sendpages_fndecl_2968 do_tcp_sendpages fndecl 4-3 2968 NULL
147970 +enable_so_pn533_dep_link_up_fndecl_2969 pn533_dep_link_up fndecl 5 2969 NULL
147971 +enable_so_qp_table_size_qib_ibdev_2970 qp_table_size qib_ibdev 0 2970 NULL
147972 +enable_so_align_ip_set_ext_type_2975 align ip_set_ext_type 0 2975 NULL
147973 +enable_so_wpa_enabled_orinoco_private_2980 wpa_enabled orinoco_private 0 2980 NULL
147974 +enable_so_mrp_pdu_append_vecattr_hdr_fndecl_2982 mrp_pdu_append_vecattr_hdr fndecl 3 2982 NULL
147975 +enable_so_origin_write_extent_fndecl_2983 origin_write_extent fndecl 2 2983 NULL
147976 +enable_so_h_align_bdisp_fmt_2988 h_align bdisp_fmt 0 2988 NULL nohasharray
147977 +enable_so_reiserfs_cut_from_item_fndecl_2988 reiserfs_cut_from_item fndecl 6 2988 &enable_so_h_align_bdisp_fmt_2988
147978 +enable_so_iscsi_start_cid_cnic_local_2995 iscsi_start_cid cnic_local 0 2995 NULL
147979 +enable_so_offset_fuse_notify_retrieve_out_2999 offset fuse_notify_retrieve_out 0 2999 NULL
147980 +enable_so_hdr_len_iscsi_task_3003 hdr_len iscsi_task 0 3003 NULL
147981 +enable_so_do_sync_mmap_readahead_fndecl_3008 do_sync_mmap_readahead fndecl 4 3008 NULL
147982 +enable_so_rdma_build_arg_xdr_fndecl_3012 rdma_build_arg_xdr fndecl 3 3012 NULL
147983 +enable_so_mem_write_fndecl_3019 mem_write fndecl 3 3019 NULL
147984 +enable_so_bpw_len_pch_spi_data_3026 bpw_len pch_spi_data 0 3026 NULL
147985 +enable_so_dual_channel_active_fndecl_3033 dual_channel_active fndecl 0 3033 NULL
147986 +enable_so_fat_compat_ioctl_filldir_fndecl_3037 fat_compat_ioctl_filldir fndecl 3 3037 NULL
147987 +enable_so_xfs_bulkstat_grab_ichunk_fndecl_3041 xfs_bulkstat_grab_ichunk fndecl 2 3041 NULL
147988 +enable_so_add_res_tree_fndecl_3044 add_res_tree fndecl 7 3044 NULL
147989 +enable_so_ping_common_sendmsg_fndecl_3046 ping_common_sendmsg fndecl 5 3046 NULL
147990 +enable_so_at25_ee_write_fndecl_3050 at25_ee_write fndecl 4-3 3050 NULL
147991 +enable_so_skb_seq_read_fndecl_3054 skb_seq_read fndecl 0-1 3054 NULL
147992 +enable_so_size_ecryptfs_cache_info_3056 size ecryptfs_cache_info 0 3056 NULL
147993 +enable_so_prepare_to_wait_event_fndecl_3060 prepare_to_wait_event fndecl 0 3060 NULL
147994 +enable_so_dst_addr_width_dma_slave_config_3068 dst_addr_width dma_slave_config 0 3068 NULL nohasharray
147995 +enable_so_ntfs_map_runlist_fndecl_3068 ntfs_map_runlist fndecl 2 3068 &enable_so_dst_addr_width_dma_slave_config_3068
147996 +enable_so_compat_process_vm_rw_fndecl_3069 compat_process_vm_rw fndecl 5-3 3069 NULL
147997 +enable_so_security_setxattr_fndecl_3070 security_setxattr fndecl 4 3070 NULL
147998 +enable_so_hbuf_max_len_mei_hw_ops_3071 hbuf_max_len mei_hw_ops 0 3071 NULL
147999 +enable_so_height_au0828_dev_3073 height au0828_dev 0 3073 NULL
148000 +enable_so_sg_addr_size__MPT_ADAPTER_3079 sg_addr_size _MPT_ADAPTER 0 3079 NULL
148001 +enable_so_brcmf_p2p_escan_fndecl_3080 brcmf_p2p_escan fndecl 2 3080 NULL
148002 +enable_so_cluster_next_swap_info_struct_3087 cluster_next swap_info_struct 0 3087 NULL
148003 +enable_so_total_h_mt9t031_3088 total_h mt9t031 0 3088 NULL
148004 +enable_so_npages_mthca_db_table_3090 npages mthca_db_table 0 3090 NULL nohasharray
148005 +enable_so_ad7280_write_fndecl_3090 ad7280_write fndecl 0 3090 &enable_so_npages_mthca_db_table_3090
148006 +enable_so_fb_prepare_logo_fndecl_3092 fb_prepare_logo fndecl 0 3092 NULL
148007 +enable_so_loopstart_soundfont_sample_info_3093 loopstart soundfont_sample_info 0 3093 NULL
148008 +enable_so_gtt_mappable_entries__intel_private_3099 gtt_mappable_entries _intel_private 0 3099 NULL
148009 +enable_so_vol_cdev_direct_write_fndecl_3100 vol_cdev_direct_write fndecl 3 3100 NULL
148010 +enable_so_rx_pkt_map_sz_tg3_3106 rx_pkt_map_sz tg3 0 3106 NULL
148011 +enable_so_mt76_init_sband_fndecl_3112 mt76_init_sband fndecl 6-4 3112 NULL nohasharray
148012 +enable_so_iwl_dbgfs_rxon_flags_read_fndecl_3112 iwl_dbgfs_rxon_flags_read fndecl 3 3112 &enable_so_mt76_init_sband_fndecl_3112
148013 +enable_so_fb_alloc_cmap_gfp_fndecl_3115 fb_alloc_cmap_gfp fndecl 2 3115 NULL
148014 +enable_so_edid_write_fndecl_3118 edid_write fndecl 3 3118 NULL
148015 +enable_so_ipip6_tunnel_change_mtu_fndecl_3119 ipip6_tunnel_change_mtu fndecl 2 3119 NULL nohasharray
148016 +enable_so_blk_rq_map_user_fndecl_3119 blk_rq_map_user fndecl 5 3119 &enable_so_ipip6_tunnel_change_mtu_fndecl_3119 nohasharray
148017 +enable_so_compat_filldir64_fndecl_3119 compat_filldir64 fndecl 3 3119 &enable_so_blk_rq_map_user_fndecl_3119
148018 +enable_so_emulator_do_task_switch_fndecl_3122 emulator_do_task_switch fndecl 2-3 3122 NULL
148019 +enable_so_status_whc_qhead_3133 status whc_qhead 0 3133 NULL
148020 +enable_so_ext4_block_zero_page_range_fndecl_3135 ext4_block_zero_page_range fndecl 3 3135 NULL
148021 +enable_so_strndup_user_fndecl_3136 strndup_user fndecl 2 3136 NULL
148022 +enable_so_brcmf_usb_dlstart_fndecl_3138 brcmf_usb_dlstart fndecl 3 3138 NULL
148023 +enable_so_fotg210_urb_done_fndecl_3144 fotg210_urb_done fndecl 3 3144 NULL
148024 +enable_so_tx_room_keyspan_pda_private_3146 tx_room keyspan_pda_private 0 3146 NULL
148025 +enable_so_usbhs_read_fndecl_3148 usbhs_read fndecl 0 3148 NULL nohasharray
148026 +enable_so_fragment_length_zd_usb_rx_3148 fragment_length zd_usb_rx 0 3148 &enable_so_usbhs_read_fndecl_3148 nohasharray
148027 +enable_so_nilfs_scan_dsync_log_fndecl_3148 nilfs_scan_dsync_log fndecl 2 3148 &enable_so_fragment_length_zd_usb_rx_3148
148028 +enable_so_iseg_base_mlx5_core_dev_3151 iseg_base mlx5_core_dev 0 3151 NULL
148029 +enable_so_udf_get_last_session_fndecl_3152 udf_get_last_session fndecl 0 3152 NULL
148030 +enable_so_mmio_size_drm_mga_private_3160 mmio_size drm_mga_private 0 3160 NULL
148031 +enable_so_prealloc_size_ich_pcm_table_3162 prealloc_size ich_pcm_table 0 3162 NULL nohasharray
148032 +enable_so_sys_sendto_fndecl_3162 sys_sendto fndecl 6-3 3162 &enable_so_prealloc_size_ich_pcm_table_3162
148033 +enable_so_send_ext_msg_udp_fndecl_3163 send_ext_msg_udp fndecl 3 3163 NULL
148034 +enable_so_cfv_alloc_and_copy_skb_fndecl_3167 cfv_alloc_and_copy_skb fndecl 4 3167 NULL nohasharray
148035 +enable_so_logfs_is_valid_block_fndecl_3167 logfs_is_valid_block fndecl 3 3167 &enable_so_cfv_alloc_and_copy_skb_fndecl_3167
148036 +enable_so_bytes_per_pixel_vivid_dev_3174 bytes_per_pixel vivid_dev 0 3174 NULL
148037 +enable_so_fill_elf_header_fndecl_3182 fill_elf_header fndecl 2 3182 NULL
148038 +enable_so_wl1271_format_buffer_fndecl_3185 wl1271_format_buffer fndecl 2 3185 NULL
148039 +enable_so_keyspan_write_fndecl_3189 keyspan_write fndecl 4 3189 NULL
148040 +enable_so_min_io_size_ubi_device_3191 min_io_size ubi_device 0 3191 NULL nohasharray
148041 +enable_so_uvc_alloc_entity_fndecl_3191 uvc_alloc_entity fndecl 3-4 3191 &enable_so_min_io_size_ubi_device_3191
148042 +enable_so_nvme_trans_supported_vpd_pages_fndecl_3196 nvme_trans_supported_vpd_pages fndecl 4 3196 NULL
148043 +enable_so_mspi_apply_cpu_mode_quirks_fndecl_3197 mspi_apply_cpu_mode_quirks fndecl 0-4 3197 NULL
148044 +enable_so_lcd_hblank_len_atyfb_par_3198 lcd_hblank_len atyfb_par 0 3198 NULL nohasharray
148045 +enable_so_p9_tag_alloc_fndecl_3198 p9_tag_alloc fndecl 3 3198 &enable_so_lcd_hblank_len_atyfb_par_3198
148046 +enable_so_import_iovec_fndecl_3201 import_iovec fndecl 3 3201 NULL
148047 +enable_so_chunk_size_mdu_array_info_s_3205 chunk_size mdu_array_info_s 0 3205 NULL
148048 +enable_so_cfs_cpt_table_create_fndecl_3207 cfs_cpt_table_create fndecl 1 3207 NULL
148049 +enable_so_sisusb_send_packet_fndecl_3208 sisusb_send_packet fndecl 2 3208 NULL
148050 +enable_so_key_icverrors_read_fndecl_3212 key_icverrors_read fndecl 3 3212 NULL
148051 +enable_so_usbvision_set_output_fndecl_3216 usbvision_set_output fndecl 2-3 3216 NULL
148052 +enable_so_rx_buffer_len_ixgb_adapter_3217 rx_buffer_len ixgb_adapter 0 3217 NULL nohasharray
148053 +enable_so_cw1200_sdio_memcpy_fromio_fndecl_3217 cw1200_sdio_memcpy_fromio fndecl 4 3217 &enable_so_rx_buffer_len_ixgb_adapter_3217 nohasharray
148054 +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
148055 +enable_so_mad_size_ib_mad_private_3230 mad_size ib_mad_private 0 3230 NULL
148056 +enable_so_command_setexposure_fndecl_3231 command_setexposure fndecl 0 3231 NULL
148057 +enable_so_sq_num_entries_c4iw_qp_attributes_3234 sq_num_entries c4iw_qp_attributes 0 3234 NULL
148058 +enable_so_lbs_rdbbp_write_fndecl_3237 lbs_rdbbp_write fndecl 3 3237 NULL
148059 +enable_so_inlen_ib_udata_3242 inlen ib_udata 0 3242 NULL nohasharray
148060 +enable_so_expect_class_max_nf_conntrack_helper_3242 expect_class_max nf_conntrack_helper 0 3242 &enable_so_inlen_ib_udata_3242
148061 +enable_so_max_wqe_ocrdma_dev_attr_3246 max_wqe ocrdma_dev_attr 0 3246 NULL
148062 +enable_so_of_property_match_string_fndecl_3250 of_property_match_string fndecl 0 3250 NULL
148063 +enable_so_shmem_kernel_file_setup_fndecl_3251 shmem_kernel_file_setup fndecl 2 3251 NULL
148064 +enable_so_vfio_msi_enable_fndecl_3257 vfio_msi_enable fndecl 2 3257 NULL
148065 +enable_so_sbc_check_prot_fndecl_3258 sbc_check_prot fndecl 4 3258 NULL
148066 +enable_so_taglen_cb_compound_hdr_res_3259 taglen cb_compound_hdr_res 0 3259 NULL
148067 +enable_so_compat_sys_readv_fndecl_3260 compat_sys_readv fndecl 3 3260 NULL
148068 +enable_so_rx_rx_phy_hdr_read_fndecl_3269 rx_rx_phy_hdr_read fndecl 3 3269 NULL
148069 +enable_so_altera_set_ir_post_fndecl_3271 altera_set_ir_post fndecl 2 3271 NULL
148070 +enable_so_rsxx_cram_read_fndecl_3278 rsxx_cram_read fndecl 3 3278 NULL
148071 +enable_so_doff_tcphdr_3280 doff tcphdr 0 3280 NULL nohasharray
148072 +enable_so_ds1305_nvram_read_fndecl_3280 ds1305_nvram_read fndecl 5-6 3280 &enable_so_doff_tcphdr_3280
148073 +enable_so_stolen_base_drm_psb_private_3285 stolen_base drm_psb_private 0 3285 NULL nohasharray
148074 +enable_so_cfg80211_rx_assoc_resp_fndecl_3285 cfg80211_rx_assoc_resp fndecl 4 3285 &enable_so_stolen_base_drm_psb_private_3285
148075 +enable_so_htable_bits_fndecl_3286 htable_bits fndecl 0 3286 NULL
148076 +enable_so_check_eofblocks_fl_fndecl_3293 check_eofblocks_fl fndecl 0 3293 NULL
148077 +enable_so_e_value_size_ext3_xattr_entry_3294 e_value_size ext3_xattr_entry 0 3294 NULL
148078 +enable_so_iov_count_iscsi_data_count_3301 iov_count iscsi_data_count 0 3301 NULL
148079 +enable_so_rds_page_remainder_alloc_fndecl_3303 rds_page_remainder_alloc fndecl 2 3303 NULL
148080 +enable_so_alg_setsockopt_fndecl_3306 alg_setsockopt fndecl 5 3306 NULL
148081 +enable_so_transfer_size_zr364xx_pipeinfo_3312 transfer_size zr364xx_pipeinfo 0 3312 NULL
148082 +enable_so_sdmabufcnt_qib_chip_specific_3319 sdmabufcnt qib_chip_specific 0 3319 NULL
148083 +enable_so_snd_rme9652_playback_copy_fndecl_3321 snd_rme9652_playback_copy fndecl 5 3321 NULL
148084 +enable_so_bulk_out_ep_irda_usb_cb_3322 bulk_out_ep irda_usb_cb 0 3322 NULL
148085 +enable_so_lock_extent_bits_fndecl_3328 lock_extent_bits fndecl 3-2 3328 NULL
148086 +enable_so_length_ima_digest_data_3329 length ima_digest_data 0 3329 NULL
148087 +enable_so_hidraw_report_event_fndecl_3332 hidraw_report_event fndecl 3 3332 NULL
148088 +enable_so_i_xattr_loc_ocfs2_dinode_3335 i_xattr_loc ocfs2_dinode 0 3335 NULL
148089 +enable_so_add_desc_fndecl_3339 add_desc fndecl 3 3339 NULL
148090 +enable_so_base_drm_agp_head_3348 base drm_agp_head 0 3348 NULL
148091 +enable_so_memcg_update_list_lru_fndecl_3349 memcg_update_list_lru fndecl 3 3349 NULL
148092 +enable_so_ext4_finish_convert_inline_dir_fndecl_3350 ext4_finish_convert_inline_dir fndecl 5 3350 NULL
148093 +enable_so_max_bands_multiq_sched_data_3353 max_bands multiq_sched_data 0 3353 NULL
148094 +enable_so_sysctl_nr_open_vardecl_3355 sysctl_nr_open vardecl 0 3355 NULL
148095 +enable_so_logfs_uncompress_fndecl_3359 logfs_uncompress fndecl 3-4 3359 NULL
148096 +enable_so___process_changed_new_xattr_fndecl_3360 __process_changed_new_xattr fndecl 6-4 3360 NULL
148097 +enable_so_essidlen_zd1201_3366 essidlen zd1201 0 3366 NULL
148098 +enable_so_frame_size_stk_camera_3367 frame_size stk_camera 0 3367 NULL
148099 +enable_so_amd_create_gatt_pages_fndecl_3370 amd_create_gatt_pages fndecl 1 3370 NULL
148100 +enable_so_xfs_dir3_leaf_get_buf_fndecl_3380 xfs_dir3_leaf_get_buf fndecl 2 3380 NULL
148101 +enable_so_phys_hw_bank_3381 phys hw_bank 0 3381 NULL
148102 +enable_so_blk_add_request_payload_fndecl_3382 blk_add_request_payload fndecl 3 3382 NULL
148103 +enable_so_nvdimm_set_config_data_fndecl_3384 nvdimm_set_config_data fndecl 4 3384 NULL
148104 +enable_so_pgoff_vm_fault_3385 pgoff vm_fault 0 3385 NULL nohasharray
148105 +enable_so_drbd_bm_resize_fndecl_3385 drbd_bm_resize fndecl 2 3385 &enable_so_pgoff_vm_fault_3385
148106 +enable_so_xfs_iext_realloc_direct_fndecl_3386 xfs_iext_realloc_direct fndecl 2 3386 NULL
148107 +enable_so_beacon_ie_len_wmi_connect_event_3388 beacon_ie_len wmi_connect_event 0 3388 NULL nohasharray
148108 +enable_so_rport_priv_size_fc_lport_3388 rport_priv_size fc_lport 0 3388 &enable_so_beacon_ie_len_wmi_connect_event_3388
148109 +enable_so_xz_dec_lzma2_reset_fndecl_3390 xz_dec_lzma2_reset fndecl 2 3390 NULL
148110 +enable_so_max_frame_size_nes_vnic_3395 max_frame_size nes_vnic 0 3395 NULL
148111 +enable_so_num_paths_rdma_route_3407 num_paths rdma_route 0 3407 NULL
148112 +enable_so_pos_in_item_treepath_3409 pos_in_item treepath 0 3409 NULL
148113 +enable_so_minLen_group_data_3411 minLen group_data 0 3411 NULL
148114 +enable_so_scsi_report_opcode_fndecl_3412 scsi_report_opcode fndecl 3 3412 NULL
148115 +enable_so_venus_create_fndecl_3416 venus_create fndecl 4 3416 NULL
148116 +enable_so_opts1_RxDesc_3421 opts1 RxDesc 0 3421 NULL
148117 +enable_so___gunzip_fndecl_3422 __gunzip fndecl 2-6 3422 NULL
148118 +enable_so_rlim_cur_rlimit_3431 rlim_cur rlimit 0 3431 NULL nohasharray
148119 +enable_so_set_secure_conn_fndecl_3431 set_secure_conn fndecl 4 3431 &enable_so_rlim_cur_rlimit_3431
148120 +enable_so_max_request_size_megasas_ctrl_info_3434 max_request_size megasas_ctrl_info 0 3434 NULL nohasharray
148121 +enable_so_drv_cp_harray_to_user_fndecl_3434 drv_cp_harray_to_user fndecl 0 3434 &enable_so_max_request_size_megasas_ctrl_info_3434 nohasharray
148122 +enable_so_sync_timeline_create_fndecl_3434 sync_timeline_create fndecl 2 3434 &enable_so_drv_cp_harray_to_user_fndecl_3434
148123 +enable_so_udf_getblk_fndecl_3436 udf_getblk fndecl 2 3436 NULL
148124 +enable_so_len_nft_bitwise_3441 len nft_bitwise 0 3441 NULL nohasharray
148125 +enable_so_command_setcolourbalance_fndecl_3441 command_setcolourbalance fndecl 0 3441 &enable_so_len_nft_bitwise_3441
148126 +enable_so_uc_inSize_upc_req_3444 uc_inSize upc_req 0 3444 NULL
148127 +enable_so_rpipe_check_aim_fndecl_3456 rpipe_check_aim fndecl 0 3456 NULL nohasharray
148128 +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
148129 +enable_so_s_itb_per_group_ext4_sb_info_3459 s_itb_per_group ext4_sb_info 0 3459 NULL
148130 +enable_so_adfs_dir_read_fndecl_3464 adfs_dir_read fndecl 2 3464 NULL
148131 +enable_so_vm_stat_account_fndecl_3465 vm_stat_account fndecl 4 3465 NULL
148132 +enable_so_ngpios_chv_community_3476 ngpios chv_community 0 3476 NULL
148133 +enable_so_qib_qsfp_write_fndecl_3477 qib_qsfp_write fndecl 2-4-0 3477 NULL
148134 +enable_so_namelen_xfs_dir2_sf_entry_3481 namelen xfs_dir2_sf_entry 0 3481 NULL
148135 +enable_so_zlib_tr_flush_block_fndecl_3485 zlib_tr_flush_block fndecl 3 3485 NULL
148136 +enable_so_xfer_len_nvme_trans_io_cdb_3486 xfer_len nvme_trans_io_cdb 0 3486 NULL
148137 +enable_so_oz_cdev_read_fndecl_3488 oz_cdev_read fndecl 3 3488 NULL
148138 +enable_so_rx_buf_size__mgslpc_info_3490 rx_buf_size _mgslpc_info 0 3490 NULL
148139 +enable_so_from_dio_submit_3494 from dio_submit 0 3494 NULL
148140 +enable_so_snd_pcm_oss_prepare_fndecl_3506 snd_pcm_oss_prepare fndecl 0 3506 NULL
148141 +enable_so_kfifo_copy_to_user_fndecl_3509 kfifo_copy_to_user fndecl 3-4-0 3509 NULL nohasharray
148142 +enable_so_hs_bkt_bits_cfs_hash_3509 hs_bkt_bits cfs_hash 0 3509 &enable_so_kfifo_copy_to_user_fndecl_3509
148143 +enable_so_oz_add_farewell_fndecl_3519 oz_add_farewell fndecl 5 3519 NULL
148144 +enable_so_gru_vtop_fndecl_3522 gru_vtop fndecl 2 3522 NULL
148145 +enable_so_nvme_char_major_vardecl_nvme_core_c_3526 nvme_char_major vardecl_nvme-core.c 0 3526 NULL
148146 +enable_so_read_file_tgt_int_stats_fndecl_3530 read_file_tgt_int_stats fndecl 3 3530 NULL
148147 +enable_so_cipso_v4_gentag_rng_fndecl_3532 cipso_v4_gentag_rng fndecl 0 3532 NULL
148148 +enable_so_cl_out_max_entry_size_mvumi_hs_page1_3540 cl_out_max_entry_size mvumi_hs_page1 0 3540 NULL
148149 +enable_so_btrfs_qgroup_reserve_fndecl_3543 btrfs_qgroup_reserve fndecl 0 3543 NULL nohasharray
148150 +enable_so_snd_hdsp_playback_copy_fndecl_3543 snd_hdsp_playback_copy fndecl 5 3543 &enable_so_btrfs_qgroup_reserve_fndecl_3543
148151 +enable_so_get_user_page_nowait_fndecl_3545 get_user_page_nowait fndecl 3 3545 NULL nohasharray
148152 +enable_so_dvb_dmxdev_buffer_read_fndecl_3545 dvb_dmxdev_buffer_read fndecl 4-0 3545 &enable_so_get_user_page_nowait_fndecl_3545
148153 +enable_so_window_size_deflate_state_3549 window_size deflate_state 0 3549 NULL
148154 +enable_so_mult_count_ide_drive_s_3550 mult_count ide_drive_s 0 3550 NULL
148155 +enable_so_ocfs2_read_xattr_bucket_fndecl_3553 ocfs2_read_xattr_bucket fndecl 0-2 3553 NULL
148156 +enable_so_sg_copy_from_buffer_fndecl_3557 sg_copy_from_buffer fndecl 0-4 3557 NULL
148157 +enable_so_security_context_to_sid_force_fndecl_3559 security_context_to_sid_force fndecl 2 3559 NULL
148158 +enable_so_mt2063_write_fndecl_3567 mt2063_write fndecl 4 3567 NULL
148159 +enable_so_page_cache_sync_readahead_fndecl_3569 page_cache_sync_readahead fndecl 4 3569 NULL nohasharray
148160 +enable_so_nr_clk_ids_samsung_cmu_info_3569 nr_clk_ids samsung_cmu_info 0 3569 &enable_so_page_cache_sync_readahead_fndecl_3569
148161 +enable_so_encode_diropargs3_fndecl_3574 encode_diropargs3 fndecl 4 3574 NULL
148162 +enable_so__snd_pcm_new_fndecl_3575 _snd_pcm_new fndecl 4-5 3575 NULL
148163 +enable_so_template_size_qla27xx_fwdt_template_3576 template_size qla27xx_fwdt_template 0 3576 NULL
148164 +enable_so_len_capiloaddatapart_3577 len capiloaddatapart 0 3577 NULL
148165 +enable_so_pcpu_page_first_chunk_fndecl_3579 pcpu_page_first_chunk fndecl 1 3579 NULL
148166 +enable_so_asq_buf_size_i40e_adminq_info_3582 asq_buf_size i40e_adminq_info 0 3582 NULL
148167 +enable_so_ddr_av_base_mthca_av_table_3589 ddr_av_base mthca_av_table 0 3589 NULL
148168 +enable_so_ip_vs_icmp_xmit_fndecl_3590 ip_vs_icmp_xmit fndecl 4 3590 NULL nohasharray
148169 +enable_so_npads_xtpg_device_3590 npads xtpg_device 0 3590 &enable_so_ip_vs_icmp_xmit_fndecl_3590
148170 +enable_so_buf_size_i1480_3593 buf_size i1480 0 3593 NULL
148171 +enable_so_brcmf_chip_tcm_rambase_fndecl_3599 brcmf_chip_tcm_rambase fndecl 0 3599 NULL
148172 +enable_so_e820_update_range_fndecl_3600 e820_update_range fndecl 1-2 3600 NULL nohasharray
148173 +enable_so_use_debug_keys_read_fndecl_3600 use_debug_keys_read fndecl 3 3600 &enable_so_e820_update_range_fndecl_3600
148174 +enable_so_cdns_uart_get_port_fndecl_3601 cdns_uart_get_port fndecl 1 3601 NULL
148175 +enable_so_xdr_extend_head_fndecl_3606 xdr_extend_head fndecl 3 3606 NULL
148176 +enable_so_engine_len_viafb_dev_3608 engine_len viafb_dev 0 3608 NULL
148177 +enable_so_ss_out_channels_hdsp_3619 ss_out_channels hdsp 0 3619 NULL nohasharray
148178 +enable_so_drm_universal_plane_init_fndecl_3619 drm_universal_plane_init fndecl 6 3619 &enable_so_ss_out_channels_hdsp_3619
148179 +enable_so_ns_blocksize_the_nilfs_3624 ns_blocksize the_nilfs 0 3624 NULL nohasharray
148180 +enable_so_bytes_btrfs_dio_private_3624 bytes btrfs_dio_private 0 3624 &enable_so_ns_blocksize_the_nilfs_3624 nohasharray
148181 +enable_so_do_msg_fill_fndecl_3624 do_msg_fill fndecl 3 3624 &enable_so_bytes_btrfs_dio_private_3624
148182 +enable_so_offline_pages_fndecl_3625 offline_pages fndecl 1-2 3625 NULL
148183 +enable_so_tail_timestamp_event_queue_3626 tail timestamp_event_queue 0 3626 NULL
148184 +enable_so_add_res_range_fndecl_3629 add_res_range fndecl 4 3629 NULL
148185 +enable_so_cbuf_eat_fndecl_3631 cbuf_eat fndecl 2 3631 NULL
148186 +enable_so_vmci_transport_queue_pair_alloc_fndecl_3639 vmci_transport_queue_pair_alloc fndecl 4-3 3639 NULL nohasharray
148187 +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
148188 +enable_so_s_desc_size_ext4_sb_info_3652 s_desc_size ext4_sb_info 0 3652 NULL
148189 +enable_so_pci_id_imc_uncore_pci_dev_3656 pci_id imc_uncore_pci_dev 0 3656 NULL
148190 +enable_so_parport_ieee1284_ecp_read_data_fndecl_3660 parport_ieee1284_ecp_read_data fndecl 0 3660 NULL nohasharray
148191 +enable_so_c_plan_ahead_disk_conf_3660 c_plan_ahead disk_conf 0 3660 &enable_so_parport_ieee1284_ecp_read_data_fndecl_3660
148192 +enable_so_ext2_get_blocks_fndecl_3661 ext2_get_blocks fndecl 0 3661 NULL nohasharray
148193 +enable_so_im_len_xfs_imap_3661 im_len xfs_imap 0 3661 &enable_so_ext2_get_blocks_fndecl_3661
148194 +enable_so_arch_reserve_mem_area_fndecl_3662 arch_reserve_mem_area fndecl 2 3662 NULL
148195 +enable_so_aper_base_amdgpu_mc_3664 aper_base amdgpu_mc 0 3664 NULL
148196 +enable_so_child_cnt_ubifs_znode_3667 child_cnt ubifs_znode 0 3667 NULL
148197 +enable_so_i_block_group_ext3_inode_info_3668 i_block_group ext3_inode_info 0 3668 NULL
148198 +enable_so_bio_find_or_create_slab_fndecl_3671 bio_find_or_create_slab fndecl 1 3671 NULL
148199 +enable_so_pcpu_chunk_struct_size_vardecl_percpu_c_3673 pcpu_chunk_struct_size vardecl_percpu.c 0 3673 NULL nohasharray
148200 +enable_so_get_zeroed_page_fndecl_3673 get_zeroed_page fndecl 0 3673 &enable_so_pcpu_chunk_struct_size_vardecl_percpu_c_3673
148201 +enable_so_interfaces_count_ffs_data_3677 interfaces_count ffs_data 0 3677 NULL
148202 +enable_so_alloc_orinocodev_fndecl_3688 alloc_orinocodev fndecl 1 3688 NULL
148203 +enable_so_len_mic_mw_3689 len mic_mw 0 3689 NULL
148204 +enable_so_ath10k_wmi_tlv_op_gen_vdev_sta_uapsd_fndecl_3692 ath10k_wmi_tlv_op_gen_vdev_sta_uapsd fndecl 5 3692 NULL
148205 +enable_so_read_file_bool_bmps_fndecl_3699 read_file_bool_bmps fndecl 3 3699 NULL
148206 +enable_so_srp_max_rsp_size_srpt_port_attrib_3700 srp_max_rsp_size srpt_port_attrib 0 3700 NULL
148207 +enable_so_get_urb_error_fndecl_3702 get_urb_error fndecl 0 3702 NULL
148208 +enable_so_allocate_cmdlines_buffer_fndecl_3704 allocate_cmdlines_buffer fndecl 1 3704 NULL
148209 +enable_so_vlan_netdev_private_3705 vlan netdev_private 0 3705 NULL
148210 +enable_so_gfs2_ea_get_copy_fndecl_3706 gfs2_ea_get_copy fndecl 0 3706 NULL
148211 +enable_so_ip_getsockopt_fndecl_3711 ip_getsockopt fndecl 0 3711 NULL
148212 +enable_so_len_sctp_auth_bytes_3715 len sctp_auth_bytes 0 3715 NULL
148213 +enable_so_byte_len_ib_wc_3716 byte_len ib_wc 0 3716 NULL
148214 +enable_so_len_amp_assoc_3724 len amp_assoc 0 3724 NULL
148215 +enable_so___v4l2_ctrl_modify_range_fndecl_3726 __v4l2_ctrl_modify_range fndecl 2-3-5 3726 NULL
148216 +enable_so_SYSC_rt_sigpending_fndecl_3728 SYSC_rt_sigpending fndecl 2 3728 NULL
148217 +enable_so_mcs_wrap_fir_skb_fndecl_3729 mcs_wrap_fir_skb fndecl 0 3729 NULL nohasharray
148218 +enable_so_split_leaf_fndecl_3729 split_leaf fndecl 0 3729 &enable_so_mcs_wrap_fir_skb_fndecl_3729
148219 +enable_so_video_ioctl2_fndecl_3735 video_ioctl2 fndecl 2 3735 NULL
148220 +enable_so_ecryptfs_message_buf_len_vardecl_3736 ecryptfs_message_buf_len vardecl 0 3736 NULL nohasharray
148221 +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
148222 +enable_so_insert_ptr_fndecl_3737 insert_ptr fndecl 6 3737 NULL
148223 +enable_so_entries_p54_cal_database_3741 entries p54_cal_database 0 3741 NULL
148224 +enable_so_nr_reserved_tags_blk_mq_tags_3751 nr_reserved_tags blk_mq_tags 0 3751 NULL
148225 +enable_so_e_value_size_f2fs_xattr_entry_3755 e_value_size f2fs_xattr_entry 0 3755 NULL
148226 +enable_so_aggr_size_tx_agg_vs_rate_read_fndecl_3757 aggr_size_tx_agg_vs_rate_read fndecl 3 3757 NULL
148227 +enable_so_private_value_sbmix_elem_3773 private_value sbmix_elem 0 3773 NULL
148228 +enable_so_size_m48t35_priv_3775 size m48t35_priv 0 3775 NULL
148229 +enable_so_tblsize_snd_sg_buf_3776 tblsize snd_sg_buf 0 3776 NULL
148230 +enable_so_ag_shift_befs_sb_info_3778 ag_shift befs_sb_info 0 3778 NULL
148231 +enable_so_fl_starve_thres_sge_3779 fl_starve_thres sge 0 3779 NULL
148232 +enable_so_next_fn_fndecl_3785 next_fn fndecl 0-3 3785 NULL
148233 +enable_so_rx_status_len_ath9k_hw_capabilities_3793 rx_status_len ath9k_hw_capabilities 0 3793 NULL
148234 +enable_so_buflen_audit_krule_3796 buflen audit_krule 0 3796 NULL
148235 +enable_so_concat_writev_fndecl_3800 concat_writev fndecl 4 3800 NULL
148236 +enable_so_nfc_hci_send_event_fndecl_3807 nfc_hci_send_event fndecl 5 3807 NULL
148237 +enable_so_nextLineNumber_vardecl_rocket_c_3809 nextLineNumber vardecl_rocket.c 0 3809 NULL
148238 +enable_so_ip_last_used_group_ocfs2_inode_info_3814 ip_last_used_group ocfs2_inode_info 0 3814 NULL
148239 +enable_so_e_cpos_ocfs2_extent_rec_3815 e_cpos ocfs2_extent_rec 0 3815 NULL
148240 +enable_so_dccp_recvmsg_fndecl_3819 dccp_recvmsg fndecl 3 3819 NULL nohasharray
148241 +enable_so_fnic_trace_debugfs_lseek_fndecl_3819 fnic_trace_debugfs_lseek fndecl 2 3819 &enable_so_dccp_recvmsg_fndecl_3819
148242 +enable_so_force_bredr_smp_write_fndecl_3821 force_bredr_smp_write fndecl 3 3821 NULL
148243 +enable_so_bits_per_word_spi_device_3828 bits_per_word spi_device 0 3828 NULL
148244 +enable_so_mei_nfc_send_fndecl_3830 mei_nfc_send fndecl 3 3830 NULL
148245 +enable_so_read_file_xmit_fndecl_3836 read_file_xmit fndecl 3 3836 NULL
148246 +enable_so_num_counters_ipt_replace_3837 num_counters ipt_replace 0 3837 NULL
148247 +enable_so_b43_plcp_get_bitrate_idx_cck_fndecl_3842 b43_plcp_get_bitrate_idx_cck fndecl 0 3842 NULL
148248 +enable_so_find_end_of_node_fndecl_3843 find_end_of_node fndecl 0-3-1-2 3843 NULL
148249 +enable_so_bg_inode_table_hi_ext4_group_desc_3844 bg_inode_table_hi ext4_group_desc 0 3844 NULL
148250 +enable_so_bg_inode_table_ext3_group_desc_3847 bg_inode_table ext3_group_desc 0 3847 NULL
148251 +enable_so_btrfs_dirty_pages_fndecl_3848 btrfs_dirty_pages fndecl 6-5 3848 NULL
148252 +enable_so_qib_verbs_send_fndecl_3860 qib_verbs_send fndecl 5-3 3860 NULL
148253 +enable_so_ocfs2_free_clusters_fndecl_3866 ocfs2_free_clusters fndecl 4 3866 NULL
148254 +enable_so_minlen_fstrim_range_3870 minlen fstrim_range 0 3870 NULL
148255 +enable_so_size_of_priv_dvb_usb_adapter_fe_properties_3875 size_of_priv dvb_usb_adapter_fe_properties 0 3875 NULL
148256 +enable_so_lbs_threshold_read_fndecl_3877 lbs_threshold_read fndecl 5 3877 NULL
148257 +enable_so_tags_nvkm_ram_3878 tags nvkm_ram 0 3878 NULL
148258 +enable_so_console_size_ramoops_context_3884 console_size ramoops_context 0 3884 NULL
148259 +enable_so_s_num_blocks_omfs_sb_info_3888 s_num_blocks omfs_sb_info 0 3888 NULL nohasharray
148260 +enable_so_dbgfs_sram_len_il_priv_3888 dbgfs_sram_len il_priv 0 3888 &enable_so_s_num_blocks_omfs_sb_info_3888
148261 +enable_so_fs_div_hfs_sb_info_3890 fs_div hfs_sb_info 0 3890 NULL
148262 +enable_so_btrfs_inode_ref_name_len_fndecl_3891 btrfs_inode_ref_name_len fndecl 0 3891 NULL
148263 +enable_so_snd_pcm_lib_preallocate_pages_fndecl_3892 snd_pcm_lib_preallocate_pages fndecl 4 3892 NULL nohasharray
148264 +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
148265 +enable_so_arch_gnttab_init_fndecl_3893 arch_gnttab_init fndecl 1 3893 NULL
148266 +enable_so_rootdir_empty_fndecl_3895 rootdir_empty fndecl 2 3895 NULL
148267 +enable_so_xfs_extent_busy_trim_fndecl_3898 xfs_extent_busy_trim fndecl 3-2 3898 NULL
148268 +enable_so_gfs2_meta_wipe_fndecl_3900 gfs2_meta_wipe fndecl 2 3900 NULL
148269 +enable_so_get_enc_strm_size_s5p_mfc_hw_ops_3906 get_enc_strm_size s5p_mfc_hw_ops 0 3906 NULL
148270 +enable_so_endpoint_usb_data_stream_properties_3909 endpoint usb_data_stream_properties 0 3909 NULL
148271 +enable_so_event_calibration_read_fndecl_3912 event_calibration_read fndecl 3 3912 NULL
148272 +enable_so_proc_fault_inject_write_fndecl_3921 proc_fault_inject_write fndecl 3 3921 NULL
148273 +enable_so_mp_map_gsi_to_irq_fndecl_3923 mp_map_gsi_to_irq fndecl 1 3923 NULL
148274 +enable_so_cfpkt_set_prio_fndecl_3935 cfpkt_set_prio fndecl 2 3935 NULL
148275 +enable_so_unix_dgram_sendmsg_fndecl_3944 unix_dgram_sendmsg fndecl 3 3944 NULL
148276 +enable_so_ath6kl_send_go_probe_resp_fndecl_3946 ath6kl_send_go_probe_resp fndecl 3 3946 NULL
148277 +enable_so__efx_mcdi_rpc_async_fndecl_3948 _efx_mcdi_rpc_async fndecl 4-5 3948 NULL
148278 +enable_so_atalk_recvmsg_fndecl_3950 atalk_recvmsg fndecl 3 3950 NULL
148279 +enable_so_resync_min_mddev_3957 resync_min mddev 0 3957 NULL
148280 +enable_so_make_le_item_head_fndecl_3961 make_le_item_head fndecl 6-4-5 3961 NULL
148281 +enable_so_parse_header_ops_3963 parse header_ops 0 3963 NULL
148282 +enable_so_hpfs_de_as_down_as_possible_fndecl_3967 hpfs_de_as_down_as_possible fndecl 0-2 3967 NULL
148283 +enable_so_dgram_sendmsg_fndecl_3972 dgram_sendmsg fndecl 3 3972 NULL
148284 +enable_so_wrbs_per_cxn_hba_parameters_3974 wrbs_per_cxn hba_parameters 0 3974 NULL
148285 +enable_so_num_entries_aper_size_info_lvl2_3983 num_entries aper_size_info_lvl2 0 3983 NULL
148286 +enable_so_max_ti_iu_len_srp_rdma_ch_3984 max_ti_iu_len srp_rdma_ch 0 3984 NULL
148287 +enable_so_num_pages_ttm_mem_reg_3986 num_pages ttm_mem_reg 0 3986 NULL
148288 +enable_so_i2400m_rx_trace_fndecl_3988 i2400m_rx_trace fndecl 3 3988 NULL
148289 +enable_so_tp_len_tpacket2_hdr_3990 tp_len tpacket2_hdr 0 3990 NULL nohasharray
148290 +enable_so___acpi_register_gsi_vardecl_3990 __acpi_register_gsi vardecl 0 3990 &enable_so_tp_len_tpacket2_hdr_3990
148291 +enable_so_rfcomm_sock_recvmsg_fndecl_3992 rfcomm_sock_recvmsg fndecl 3 3992 NULL
148292 +enable_so_iwl_dbgfs_uapsd_misbehaving_read_fndecl_3994 iwl_dbgfs_uapsd_misbehaving_read fndecl 3 3994 NULL
148293 +enable_so_opt_nflen_ipv6_txoptions_3998 opt_nflen ipv6_txoptions 0 3998 NULL nohasharray
148294 +enable_so_len_be_queue_info_3998 len be_queue_info 0 3998 &enable_so_opt_nflen_ipv6_txoptions_3998
148295 +enable_so_buffer_bytes_max_snd_pcm_hardware_4001 buffer_bytes_max snd_pcm_hardware 0 4001 NULL
148296 +enable_so_t4_init_clip_tbl_fndecl_4007 t4_init_clip_tbl fndecl 1-2 4007 NULL nohasharray
148297 +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
148298 +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
148299 +enable_so_rx_data_max_size_sst_generic_ipc_4011 rx_data_max_size sst_generic_ipc 0 4011 NULL
148300 +enable_so_bioset_create_nobvec_fndecl_4015 bioset_create_nobvec fndecl 2-1 4015 NULL
148301 +enable_so_f1_id_amd64_family_type_4017 f1_id amd64_family_type 0 4017 NULL
148302 +enable_so_rtl2830_regmap_gather_write_fndecl_4018 rtl2830_regmap_gather_write fndecl 5 4018 NULL
148303 +enable_so_alloc_pg_vec_fndecl_4020 alloc_pg_vec fndecl 3 4020 NULL
148304 +enable_so_b_size_mon_reader_bin_4021 b_size mon_reader_bin 0 4021 NULL
148305 +enable_so_j_start_reiserfs_journal_list_4030 j_start reiserfs_journal_list 0 4030 NULL
148306 +enable_so_length_usb_request_4031 length usb_request 0 4031 NULL
148307 +enable_so_rx_buf_sz_netdev_private_4035 rx_buf_sz netdev_private 0 4035 NULL
148308 +enable_so_MsgLength__MSG_EVENT_NOTIFY_REPLY_4038 MsgLength _MSG_EVENT_NOTIFY_REPLY 0 4038 NULL
148309 +enable_so_brcmf_sdio_txpkt_hdalign_fndecl_4040 brcmf_sdio_txpkt_hdalign fndecl 0 4040 NULL nohasharray
148310 +enable_so_do_cow_fault_fndecl_4040 do_cow_fault fndecl 3-5 4040 &enable_so_brcmf_sdio_txpkt_hdalign_fndecl_4040
148311 +enable_so_user_mss_tcp_options_received_4043 user_mss tcp_options_received 0 4043 NULL nohasharray
148312 +enable_so_ipc_rcu_alloc_fndecl_4043 ipc_rcu_alloc fndecl 1 4043 &enable_so_user_mss_tcp_options_received_4043
148313 +enable_so_scsi_execute_req_flags_fndecl_4044 scsi_execute_req_flags fndecl 5 4044 NULL
148314 +enable_so_tx_data_count_hso_serial_4046 tx_data_count hso_serial 0 4046 NULL
148315 +enable_so_prepare_header_fndecl_4047 prepare_header fndecl 0 4047 NULL
148316 +enable_so_MaxReplyDescriptorPostQueueDepth_mpt2sas_facts_4050 MaxReplyDescriptorPostQueueDepth mpt2sas_facts 0 4050 NULL
148317 +enable_so_ssid_len_cfg80211_connect_params_4052 ssid_len cfg80211_connect_params 0 4052 NULL
148318 +enable_so_cx18_v4l2_read_fndecl_4063 cx18_v4l2_read fndecl 3 4063 NULL
148319 +enable_so_isoc_packet_size_usb_usbvision_4066 isoc_packet_size usb_usbvision 0 4066 NULL
148320 +enable_so_cfg80211_notify_new_peer_candidate_fndecl_4073 cfg80211_notify_new_peer_candidate fndecl 4 4073 NULL
148321 +enable_so_iscsi_max_snd_data_seg_len_dev_db_entry_4074 iscsi_max_snd_data_seg_len dev_db_entry 0 4074 NULL
148322 +enable_so_do_validate_mem_fndecl_4075 do_validate_mem fndecl 3-2 4075 NULL nohasharray
148323 +enable_so_input_ff_create_fndecl_4075 input_ff_create fndecl 2 4075 &enable_so_do_validate_mem_fndecl_4075
148324 +enable_so_ring_overflow_per_user_data_4076 ring_overflow per_user_data 0 4076 NULL
148325 +enable_so_mlx4_en_get_num_flows_fndecl_4078 mlx4_en_get_num_flows fndecl 0 4078 NULL
148326 +enable_so_IOCRequestFrameSize_mpt3sas_facts_4079 IOCRequestFrameSize mpt3sas_facts 0 4079 NULL
148327 +enable_so_read_ftrace_buffer_info_4082 read ftrace_buffer_info 0 4082 NULL
148328 +enable_so_kvm_vcpu_read_guest_page_fndecl_4083 kvm_vcpu_read_guest_page fndecl 2-5 4083 NULL
148329 +enable_so_event_exit_inst_len_kvm_vcpu_arch_4085 event_exit_inst_len kvm_vcpu_arch 0 4085 NULL nohasharray
148330 +enable_so_n_drm_r128_depth_4085 n drm_r128_depth 0 4085 &enable_so_event_exit_inst_len_kvm_vcpu_arch_4085
148331 +enable_so_skb_copy_and_csum_datagram_fndecl_4086 skb_copy_and_csum_datagram fndecl 4-2 4086 NULL
148332 +enable_so__ocfs2_free_clusters_fndecl_4087 _ocfs2_free_clusters fndecl 4 4087 NULL
148333 +enable_so_base_intel_initial_plane_config_4088 base intel_initial_plane_config 0 4088 NULL
148334 +enable_so_num_pipes_intel_device_info_4092 num_pipes intel_device_info 0 4092 NULL
148335 +enable_so_sca_keylength_sctp_authkey_4095 sca_keylength sctp_authkey 0 4095 NULL
148336 +enable_so_m1_xgene_enet_raw_desc_4097 m1 xgene_enet_raw_desc 0 4097 NULL
148337 +enable_so_ae_res_sd_4099 ae_res sd 0 4099 NULL
148338 +enable_so_ext4_fname_encrypted_size_fndecl_4100 ext4_fname_encrypted_size fndecl 0-2 4100 NULL
148339 +enable_so_special_ixgb_rx_desc_4107 special ixgb_rx_desc 0 4107 NULL nohasharray
148340 +enable_so_nbuttons_tca6416_keys_platform_data_4107 nbuttons tca6416_keys_platform_data 0 4107 &enable_so_special_ixgb_rx_desc_4107
148341 +enable_so_blkno_xfs_da_args_4112 blkno xfs_da_args 0 4112 NULL
148342 +enable_so_vringh_iov_pull_kern_fndecl_4115 vringh_iov_pull_kern fndecl 3 4115 NULL
148343 +enable_so_read_reg_fndecl_4120 read_reg fndecl 0 4120 NULL
148344 +enable_so_jffs2_acl_from_medium_fndecl_4129 jffs2_acl_from_medium fndecl 2 4129 NULL
148345 +enable_so_ocfs2_read_group_descriptor_fndecl_4136 ocfs2_read_group_descriptor fndecl 3 4136 NULL
148346 +enable_so_ssid_len_mwifiex_802_11_ssid_4139 ssid_len mwifiex_802_11_ssid 0 4139 NULL
148347 +enable_so_size_badblocks_4142 size badblocks 0 4142 NULL
148348 +enable_so_interleave_cfi_private_4153 interleave cfi_private 0 4153 NULL
148349 +enable_so_ocfs2_readpages_fndecl_4156 ocfs2_readpages fndecl 4 4156 NULL nohasharray
148350 +enable_so_num_msix_vec_be_adapter_4156 num_msix_vec be_adapter 0 4156 &enable_so_ocfs2_readpages_fndecl_4156
148351 +enable_so_tool_spadfn_read_fndecl_4176 tool_spadfn_read fndecl 3 4176 NULL nohasharray
148352 +enable_so_epp_write_data_parport_operations_4176 epp_write_data parport_operations 0 4176 &enable_so_tool_spadfn_read_fndecl_4176
148353 +enable_so_max_rx_urb_irda_usb_cb_4182 max_rx_urb irda_usb_cb 0 4182 NULL
148354 +enable_so_saa7146_vmalloc_build_pgtable_fndecl_4183 saa7146_vmalloc_build_pgtable fndecl 2 4183 NULL
148355 +enable_so_update_file_sizes_fndecl_4184 update_file_sizes fndecl 3-2 4184 NULL
148356 +enable_so_team_change_mtu_fndecl_4186 team_change_mtu fndecl 2 4186 NULL
148357 +enable_so_irda_setsockopt_fndecl_4195 irda_setsockopt fndecl 5 4195 NULL
148358 +enable_so_wBeaconInfoLength_uwb_rc_evt_beacon_WUSB_0100_4200 wBeaconInfoLength uwb_rc_evt_beacon_WUSB_0100 0 4200 NULL
148359 +enable_so_bd_dev_block_device_4202 bd_dev block_device 0 4202 NULL
148360 +enable_so_vfs_getxattr_fndecl_4203 vfs_getxattr fndecl 0 4203 NULL
148361 +enable_so_sample_bits_snd_soc_dai_4206 sample_bits snd_soc_dai 0 4206 NULL nohasharray
148362 +enable_so_parent___prelim_ref_4206 parent __prelim_ref 0 4206 &enable_so_sample_bits_snd_soc_dai_4206
148363 +enable_so_rx_page_order_il_hw_params_4208 rx_page_order il_hw_params 0 4208 NULL
148364 +enable_so_rx_pkt_offset_rxpd_4210 rx_pkt_offset rxpd 0 4210 NULL
148365 +enable_so_max_vectors_i40e_virtchnl_vf_resource_4213 max_vectors i40e_virtchnl_vf_resource 0 4213 NULL
148366 +enable_so_ext2_setsize_fndecl_4215 ext2_setsize fndecl 2 4215 NULL nohasharray
148367 +enable_so_nci_hci_set_param_fndecl_4215 nci_hci_set_param fndecl 5 4215 &enable_so_ext2_setsize_fndecl_4215
148368 +enable_so_proc_stats_rid_open_fndecl_4219 proc_stats_rid_open fndecl 0 4219 NULL
148369 +enable_so_store_pending_adv_report_fndecl_4222 store_pending_adv_report fndecl 7 4222 NULL
148370 +enable_so_ath10k_write_htt_max_amsdu_ampdu_fndecl_4223 ath10k_write_htt_max_amsdu_ampdu fndecl 3 4223 NULL
148371 +enable_so_dlm_lock_fndecl_4225 dlm_lock fndecl 6 4225 NULL nohasharray
148372 +enable_so_nilfs_segbuf_map_fndecl_4225 nilfs_segbuf_map fndecl 3-2 4225 &enable_so_dlm_lock_fndecl_4225
148373 +enable_so___nla_put_fndecl_4226 __nla_put fndecl 3 4226 NULL
148374 +enable_so_num_lut_dmm_4228 num_lut dmm 0 4228 NULL
148375 +enable_so_len_bpf_prog_4232 len bpf_prog 0 4232 NULL
148376 +enable_so_data_len_nci_data_4237 data_len nci_data 0 4237 NULL
148377 +enable_so_ext3_xattr_user_set_fndecl_4238 ext3_xattr_user_set fndecl 4 4238 NULL nohasharray
148378 +enable_so_ip6gre_err_fndecl_4238 ip6gre_err fndecl 5 4238 &enable_so_ext3_xattr_user_set_fndecl_4238
148379 +enable_so_alloc_size_debug_buffer_4240 alloc_size debug_buffer 0 4240 NULL
148380 +enable_so_subpage_sft_mtd_info_4249 subpage_sft mtd_info 0 4249 NULL
148381 +enable_so_ieee80211_mesh_rx_mgmt_action_fndecl_4250 ieee80211_mesh_rx_mgmt_action fndecl 3 4250 NULL nohasharray
148382 +enable_so_duplex_ethtool_cmd_4250 duplex ethtool_cmd 0 4250 &enable_so_ieee80211_mesh_rx_mgmt_action_fndecl_4250
148383 +enable_so_roaming_threshold_ipw_priv_4252 roaming_threshold ipw_priv 0 4252 NULL
148384 +enable_so_cfg80211_mlme_register_mgmt_fndecl_4255 cfg80211_mlme_register_mgmt fndecl 5 4255 NULL
148385 +enable_so_user_width_soc_camera_device_4262 user_width soc_camera_device 0 4262 NULL
148386 +enable_so_ntids_tid_info_4263 ntids tid_info 0 4263 NULL
148387 +enable_so_nilfs_gccache_submit_read_node_fndecl_4267 nilfs_gccache_submit_read_node fndecl 2-3 4267 NULL
148388 +enable_so_qlcnic_sysfs_read_pci_config_fndecl_4270 qlcnic_sysfs_read_pci_config fndecl 6 4270 NULL nohasharray
148389 +enable_so_xgbe_init_ring_fndecl_4270 xgbe_init_ring fndecl 3 4270 &enable_so_qlcnic_sysfs_read_pci_config_fndecl_4270
148390 +enable_so_ide_set_pio_fndecl_4272 ide_set_pio fndecl 2 4272 NULL
148391 +enable_so_mp_map_pin_to_irq_fndecl_4276 mp_map_pin_to_irq fndecl 1 4276 NULL
148392 +enable_so_fuse_ioctl_copy_user_fndecl_4279 fuse_ioctl_copy_user fndecl 4-3 4279 NULL
148393 +enable_so_rx_packet_len_nci_uart_4280 rx_packet_len nci_uart 0 4280 NULL
148394 +enable_so_mrp_request_join_fndecl_4281 mrp_request_join fndecl 4 4281 NULL
148395 +enable_so_ib_qib_lkey_table_size_vardecl_4282 ib_qib_lkey_table_size vardecl 0 4282 NULL
148396 +enable_so_gfs2_getbuf_fndecl_4283 gfs2_getbuf fndecl 2 4283 NULL
148397 +enable_so_route_mtu_cached_xfrm_dst_4288 route_mtu_cached xfrm_dst 0 4288 NULL nohasharray
148398 +enable_so_mangle_name_fndecl_4288 mangle_name fndecl 0 4288 &enable_so_route_mtu_cached_xfrm_dst_4288
148399 +enable_so_connector_count_drm_fb_helper_4290 connector_count drm_fb_helper 0 4290 NULL
148400 +enable_so_h_next_leaf_blk_ocfs2_extent_block_4292 h_next_leaf_blk ocfs2_extent_block 0 4292 NULL
148401 +enable_so___add_section_fndecl_4296 __add_section fndecl 3 4296 NULL
148402 +enable_so_cgroup_task_count_fndecl_4297 cgroup_task_count fndecl 0 4297 NULL
148403 +enable_so_maxpacket_musb_qh_4303 maxpacket musb_qh 0 4303 NULL nohasharray
148404 +enable_so____copy_to_user_fndecl_4303 ___copy_to_user fndecl 0 4303 &enable_so_maxpacket_musb_qh_4303
148405 +enable_so_rx_frm_len_mask_macb_4310 rx_frm_len_mask macb 0 4310 NULL nohasharray
148406 +enable_so_rs_rate_from_ucode_rate_fndecl_4310 rs_rate_from_ucode_rate fndecl 1 4310 &enable_so_rx_frm_len_mask_macb_4310
148407 +enable_so_ps_upsd_max_apturn_read_fndecl_4317 ps_upsd_max_apturn_read fndecl 3 4317 NULL
148408 +enable_so_bufsize_i2c_hid_4318 bufsize i2c_hid 0 4318 NULL
148409 +enable_so_old_chunk_dm_exception_4333 old_chunk dm_exception 0 4333 NULL
148410 +enable_so_ax25_send_frame_fndecl_4335 ax25_send_frame fndecl 2 4335 NULL
148411 +enable_so_length_rbd_obj_request_4337 length rbd_obj_request 0 4337 NULL
148412 +enable_so_stripe_len_btrfs_raid_bio_4340 stripe_len btrfs_raid_bio 0 4340 NULL nohasharray
148413 +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
148414 +enable_so_v4l2_ctrl_new_fndecl_4341 v4l2_ctrl_new fndecl 8-7-10-12 4341 NULL
148415 +enable_so_key_len_neigh_table_4347 key_len neigh_table 0 4347 NULL
148416 +enable_so_scrbuf_size_sisusb_usb_data_4350 scrbuf_size sisusb_usb_data 0 4350 NULL
148417 +enable_so_len_mwifiex_ds_misc_gen_ie_4351 len mwifiex_ds_misc_gen_ie 0 4351 NULL
148418 +enable_so_musb_giveback_fndecl_4352 musb_giveback fndecl 3 4352 NULL
148419 +enable_so_o_size_x509_parse_context_4358 o_size x509_parse_context 0 4358 NULL
148420 +enable_so_max_sg_segs_vardecl_osst_c_4365 max_sg_segs vardecl_osst.c 0 4365 NULL
148421 +enable_so_snd_emu10k1_synth_alloc_fndecl_4366 snd_emu10k1_synth_alloc fndecl 2 4366 NULL
148422 +enable_so_isdn_tty_edit_at_fndecl_4376 isdn_tty_edit_at fndecl 0 4376 NULL nohasharray
148423 +enable_so_nilfs_sufile_resize_fndecl_4376 nilfs_sufile_resize fndecl 2 4376 &enable_so_isdn_tty_edit_at_fndecl_4376
148424 +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
148425 +enable_so_ts_packet_size_cx8802_dev_4383 ts_packet_size cx8802_dev 0 4383 NULL nohasharray
148426 +enable_so_dir_entries_msdos_sb_info_4383 dir_entries msdos_sb_info 0 4383 &enable_so_ts_packet_size_cx8802_dev_4383
148427 +enable_so_ext4_add_new_descs_fndecl_4390 ext4_add_new_descs fndecl 3 4390 NULL
148428 +enable_so_err_vlan_tg3_rx_buffer_desc_4391 err_vlan tg3_rx_buffer_desc 0 4391 NULL
148429 +enable_so_diReadSpecial_fndecl_4393 diReadSpecial fndecl 2 4393 NULL
148430 +enable_so_ivtv_udma_setup_fndecl_4395 ivtv_udma_setup fndecl 4 4395 NULL
148431 +enable_so_mgag200_bo_create_fndecl_4398 mgag200_bo_create fndecl 2 4398 NULL
148432 +enable_so_skb_realloc_headroom_fndecl_4399 skb_realloc_headroom fndecl 2 4399 NULL nohasharray
148433 +enable_so_ath10k_mem_value_write_fndecl_4399 ath10k_mem_value_write fndecl 3 4399 &enable_so_skb_realloc_headroom_fndecl_4399
148434 +enable_so_leadin_ignore_xpnet_message_4402 leadin_ignore xpnet_message 0 4402 NULL
148435 +enable_so_page_ofs__ntfs_inode_4407 page_ofs _ntfs_inode 0 4407 NULL
148436 +enable_so_new_bytenr_backref_node_4416 new_bytenr backref_node 0 4416 NULL
148437 +enable_so___alloc_block_fndecl_4419 __alloc_block fndecl 2 4419 NULL nohasharray
148438 +enable_so_nfc_llcp_build_tlv_fndecl_4419 nfc_llcp_build_tlv fndecl 3 4419 &enable_so___alloc_block_fndecl_4419
148439 +enable_so_bl_idle_driver_init_fndecl_4432 bl_idle_driver_init fndecl 0 4432 NULL
148440 +enable_so_batadv_tvlv_container_register_fndecl_4435 batadv_tvlv_container_register fndecl 5 4435 NULL
148441 +enable_so_jfs_fsync_fndecl_4436 jfs_fsync fndecl 2-3 4436 NULL
148442 +enable_so_f2fs_add_inline_entry_fndecl_4438 f2fs_add_inline_entry fndecl 4 4438 NULL
148443 +enable_so_bRefresh_usb_endpoint_descriptor_4444 bRefresh usb_endpoint_descriptor 0 4444 NULL
148444 +enable_so_number_mdu_disk_info_s_4445 number mdu_disk_info_s 0 4445 NULL
148445 +enable_so_width_simplefb_params_4449 width simplefb_params 0 4449 NULL
148446 +enable_so_nfsd_read_fndecl_4451 nfsd_read fndecl 3-5 4451 NULL
148447 +enable_so_ieee80211_key_alloc_fndecl_4452 ieee80211_key_alloc fndecl 3 4452 NULL
148448 +enable_so_compress_raw_buf_fndecl_4453 compress_raw_buf fndecl 0 4453 NULL
148449 +enable_so_n_comedi_insn_4458 n comedi_insn 0 4458 NULL
148450 +enable_so_bm_status_read_fndecl_4460 bm_status_read fndecl 3 4460 NULL
148451 +enable_so_sftid_base_tid_info_4462 sftid_base tid_info 0 4462 NULL
148452 +enable_so_fifo_size_fritz_bcs_4463 fifo_size fritz_bcs 0 4463 NULL
148453 +enable_so_gunzip_fndecl_4465 gunzip fndecl 2 4465 NULL
148454 +enable_so_kernel_read_fndecl_4468 kernel_read fndecl 4-0 4468 NULL
148455 +enable_so_rx_ring_size_altera_tse_private_4470 rx_ring_size altera_tse_private 0 4470 NULL
148456 +enable_so_sddr09_read22_fndecl_4476 sddr09_read22 fndecl 4-3-6 4476 NULL
148457 +enable_so_ocfs2_control_message_fndecl_4479 ocfs2_control_message fndecl 3 4479 NULL
148458 +enable_so_hdmi_create_eld_ctl_fndecl_4485 hdmi_create_eld_ctl fndecl 2 4485 NULL
148459 +enable_so_hdr_len_l2tp_session_4486 hdr_len l2tp_session 0 4486 NULL nohasharray
148460 +enable_so_fragments_squashfs_super_block_4486 fragments squashfs_super_block 0 4486 &enable_so_hdr_len_l2tp_session_4486
148461 +enable_so_fw_size_amdgpu_firmware_4488 fw_size amdgpu_firmware 0 4488 NULL
148462 +enable_so_fallocate_chunk_fndecl_4489 fallocate_chunk fndecl 3 4489 NULL
148463 +enable_so_load_xattr_datum_fndecl_4505 load_xattr_datum fndecl 0 4505 NULL
148464 +enable_so___mei_cl_recv_fndecl_4519 __mei_cl_recv fndecl 0-3 4519 NULL
148465 +enable_so_nfs3_proc_readdir_fndecl_4544 nfs3_proc_readdir fndecl 5 4544 NULL nohasharray
148466 +enable_so_ath10k_read_pktlog_filter_fndecl_4544 ath10k_read_pktlog_filter fndecl 3 4544 &enable_so_nfs3_proc_readdir_fndecl_4544
148467 +enable_so_BlocksPerUnit_partition_t_4545 BlocksPerUnit partition_t 0 4545 NULL
148468 +enable_so_uhci_giveback_urb_fndecl_4547 uhci_giveback_urb fndecl 4 4547 NULL
148469 +enable_so_data_size_cz_buffer_entry_4548 data_size cz_buffer_entry 0 4548 NULL
148470 +enable_so_qdepth_uas_dev_info_4551 qdepth uas_dev_info 0 4551 NULL
148471 +enable_so_nr_chans_solo_dev_4552 nr_chans solo_dev 0 4552 NULL
148472 +enable_so_data_len_o2net_msg_4553 data_len o2net_msg 0 4553 NULL
148473 +enable_so_acpi_read_slow_fndecl_4554 acpi_read_slow fndecl 3-2 4554 NULL
148474 +enable_so_hwcursor_size_sis_video_info_4560 hwcursor_size sis_video_info 0 4560 NULL
148475 +enable_so_channels_snd_korg1212_4562 channels snd_korg1212 0 4562 NULL
148476 +enable_so_usbvision_rvmalloc_fndecl_4564 usbvision_rvmalloc fndecl 1 4564 NULL
148477 +enable_so_word1_pkt_stat_desc_4565 word1 pkt_stat_desc 0 4565 NULL
148478 +enable_so_LoadBitmap_fndecl_4569 LoadBitmap fndecl 2 4569 NULL
148479 +enable_so_far_copies_geom_4570 far_copies geom 0 4570 NULL
148480 +enable_so_dlen_nft_set_4577 dlen nft_set 0 4577 NULL
148481 +enable_so_rx_buf_sz_gem_4593 rx_buf_sz gem 0 4593 NULL
148482 +enable_so_bio_detain_fndecl_4601 bio_detain fndecl 2 4601 NULL
148483 +enable_so_header_size_partition_4606 header_size partition 0 4606 NULL
148484 +enable_so_btrfs_del_inode_extref_fndecl_4607 btrfs_del_inode_extref fndecl 4 4607 NULL
148485 +enable_so_max_event_log_size_iwl_base_params_4612 max_event_log_size iwl_base_params 0 4612 NULL
148486 +enable_so_sxgbe_change_mtu_fndecl_4613 sxgbe_change_mtu fndecl 2 4613 NULL
148487 +enable_so_tm6000_i2c_send_regs_fndecl_4617 tm6000_i2c_send_regs fndecl 5 4617 NULL
148488 +enable_so_cksumlength_gss_krb5_enctype_4630 cksumlength gss_krb5_enctype 0 4630 NULL
148489 +enable_so_tcam_size_mc5_4631 tcam_size mc5 0 4631 NULL nohasharray
148490 +enable_so_size_minus_one_mxt_object_4631 size_minus_one mxt_object 0 4631 &enable_so_tcam_size_mc5_4631
148491 +enable_so_total_bytes__osd_req_data_segment_4634 total_bytes _osd_req_data_segment 0 4634 NULL
148492 +enable_so_irq_nvecs_bnx2_4644 irq_nvecs bnx2 0 4644 NULL
148493 +enable_so_read_eeprom_bytes_fndecl_4649 read_eeprom_bytes fndecl 4 4649 NULL
148494 +enable_so_size_simple_transaction_argresp_4650 size simple_transaction_argresp 0 4650 NULL
148495 +enable_so_buffer_size_smsusb_device_t_4667 buffer_size smsusb_device_t 0 4667 NULL
148496 +enable_so_overridesize_vardecl_nandsim_c_4668 overridesize vardecl_nandsim.c 0 4668 NULL
148497 +enable_so_r10_sync_page_io_fndecl_4672 r10_sync_page_io fndecl 3-2 4672 NULL
148498 +enable_so_bcache_major_vardecl_super_c_4677 bcache_major vardecl_super.c 0 4677 NULL
148499 +enable_so_dm_get_reserved_bio_based_ios_fndecl_4680 dm_get_reserved_bio_based_ios fndecl 0 4680 NULL
148500 +enable_so_l1_dirbase_vardecl_acpi_extlog_c_4681 l1_dirbase vardecl_acpi_extlog.c 0 4681 NULL
148501 +enable_so__rtl92s_get_h2c_cmdlen_fndecl_4683 _rtl92s_get_h2c_cmdlen fndecl 0 4683 NULL
148502 +enable_so_snd_pcm_hw_param_near_fndecl_4691 snd_pcm_hw_param_near fndecl 4 4691 NULL
148503 +enable_so_optlen_ip_options_4698 optlen ip_options 0 4698 NULL nohasharray
148504 +enable_so_send_section_cnt_netvsc_device_4698 send_section_cnt netvsc_device 0 4698 &enable_so_optlen_ip_options_4698
148505 +enable_so_btrfs_header_nritems_fndecl_4699 btrfs_header_nritems fndecl 0 4699 NULL
148506 +enable_so_bpf_func_bpf_prog_4701 bpf_func bpf_prog 0 4701 NULL
148507 +enable_so_iwl_parse_nvm_mcc_info_fndecl_4702 iwl_parse_nvm_mcc_info fndecl 3 4702 NULL nohasharray
148508 +enable_so_single_open_fndecl_4702 single_open fndecl 0 4702 &enable_so_iwl_parse_nvm_mcc_info_fndecl_4702
148509 +enable_so_xdr_decode_word_fndecl_4707 xdr_decode_word fndecl 2 4707 NULL
148510 +enable_so_gfs2_glock_nq_m_fndecl_4712 gfs2_glock_nq_m fndecl 1 4712 NULL
148511 +enable_so_nr_hw_queues_blk_mq_tag_set_4713 nr_hw_queues blk_mq_tag_set 0 4713 NULL
148512 +enable_so_count_user_sgentry64_4714 count user_sgentry64 0 4714 NULL
148513 +enable_so_hpfs_ea_remove_fndecl_4717 hpfs_ea_remove fndecl 4-2 4717 NULL
148514 +enable_so_snd_cs4281_BA1_read_fndecl_4720 snd_cs4281_BA1_read fndecl 5 4720 NULL
148515 +enable_so_tx_tx_burst_programmed_read_fndecl_4723 tx_tx_burst_programmed_read fndecl 3 4723 NULL
148516 +enable_so_next_page_mpage_da_data_4726 next_page mpage_da_data 0 4726 NULL
148517 +enable_so_displacement_bts_phys_4728 displacement bts_phys 0 4728 NULL
148518 +enable_so_net2272_read_packet_fndecl_4735 net2272_read_packet fndecl 4 4735 NULL
148519 +enable_so_qla82xx_pci_mem_read_direct_fndecl_4739 qla82xx_pci_mem_read_direct fndecl 2 4739 NULL
148520 +enable_so_smk_set_cipso_fndecl_4744 smk_set_cipso fndecl 3 4744 NULL
148521 +enable_so_num_srq_mthca_profile_4747 num_srq mthca_profile 0 4747 NULL
148522 +enable_so_netlbl_catmap_setrng_fndecl_4749 netlbl_catmap_setrng fndecl 2 4749 NULL
148523 +enable_so_offline_isolated_pages_fndecl_4750 offline_isolated_pages fndecl 1-2 4750 NULL
148524 +enable_so_format_count_drm_plane_4754 format_count drm_plane 0 4754 NULL
148525 +enable_so_maxpacket_sl811h_ep_4755 maxpacket sl811h_ep 0 4755 NULL
148526 +enable_so_read_reg_cc770_priv_4760 read_reg cc770_priv 0 4760 NULL
148527 +enable_so_map_sz_cyttsp4_sysinfo_ofs_4769 map_sz cyttsp4_sysinfo_ofs 0 4769 NULL
148528 +enable_so_acpi_rs_set_resource_source_fndecl_4776 acpi_rs_set_resource_source fndecl 0-2 4776 NULL
148529 +enable_so_length_property_4777 length property 0 4777 NULL
148530 +enable_so_stride_snd_usb_endpoint_4779 stride snd_usb_endpoint 0 4779 NULL
148531 +enable_so_max_tfr_mmc_test_area_4780 max_tfr mmc_test_area 0 4780 NULL
148532 +enable_so_crtc_vsync_start_drm_display_mode_4785 crtc_vsync_start drm_display_mode 0 4785 NULL nohasharray
148533 +enable_so_n_channels_cfg80211_scan_request_4785 n_channels cfg80211_scan_request 0 4785 &enable_so_crtc_vsync_start_drm_display_mode_4785
148534 +enable_so_img_height_s5p_mfc_ctx_4793 img_height s5p_mfc_ctx 0 4793 NULL
148535 +enable_so___kfifo_from_user_fndecl_4796 __kfifo_from_user fndecl 3 4796 NULL nohasharray
148536 +enable_so_SyS_get_mempolicy_fndecl_4796 SyS_get_mempolicy fndecl 3 4796 &enable_so___kfifo_from_user_fndecl_4796
148537 +enable_so_fmc_send_cmd_fndecl_4800 fmc_send_cmd fndecl 5 4800 NULL
148538 +enable_so_set_indirect_ea_fndecl_4810 set_indirect_ea fndecl 5-3 4810 NULL
148539 +enable_so_INFTL_deleteblock_fndecl_4811 INFTL_deleteblock fndecl 2 4811 NULL
148540 +enable_so_length_reiserfs_security_handle_4813 length reiserfs_security_handle 0 4813 NULL
148541 +enable_so_buffer_size_ide_tape_obj_4815 buffer_size ide_tape_obj 0 4815 NULL
148542 +enable_so_drm_mode_vrefresh_fndecl_4817 drm_mode_vrefresh fndecl 0 4817 NULL
148543 +enable_so_ov534_reg_read_fndecl_4820 ov534_reg_read fndecl 0 4820 NULL
148544 +enable_so_ext4_dir_llseek_fndecl_4826 ext4_dir_llseek fndecl 2 4826 NULL
148545 +enable_so_new_orphans_ubifs_info_4827 new_orphans ubifs_info 0 4827 NULL
148546 +enable_so_i2c_read_fndecl_4828 i2c_read fndecl 4-6 4828 NULL nohasharray
148547 +enable_so_find_skb_fndecl_4828 find_skb fndecl 3 4828 &enable_so_i2c_read_fndecl_4828 nohasharray
148548 +enable_so_period_bytes_snd_card_asihpi_pcm_4828 period_bytes snd_card_asihpi_pcm 0 4828 &enable_so_find_skb_fndecl_4828
148549 +enable_so_nelems_cciss_scsi_cmd_stack_t_4829 nelems cciss_scsi_cmd_stack_t 0 4829 NULL
148550 +enable_so_alloc_dummy_extent_buffer_fndecl_4832 alloc_dummy_extent_buffer fndecl 2 4832 NULL
148551 +enable_so_read_buf_fndecl_4838 read_buf fndecl 2 4838 NULL
148552 +enable_so_compat_ipv6_setsockopt_fndecl_4839 compat_ipv6_setsockopt fndecl 5 4839 NULL
148553 +enable_so_bio_trim_fndecl_4843 bio_trim fndecl 2-3 4843 NULL
148554 +enable_so_start_service_discovery_fndecl_4846 start_service_discovery fndecl 4 4846 NULL
148555 +enable_so_btrfs_get_32_fndecl_4847 btrfs_get_32 fndecl 0 4847 NULL
148556 +enable_so_hash_size_cache_detail_4852 hash_size cache_detail 0 4852 NULL
148557 +enable_so_start__iohandle_4857 start _iohandle 0 4857 NULL
148558 +enable_so_do_ipv6_getsockopt_fndecl_4859 do_ipv6_getsockopt fndecl 0 4859 NULL
148559 +enable_so_max_tgts_snic_fw_info_4861 max_tgts snic_fw_info 0 4861 NULL
148560 +enable_so_encode_path_fndecl_4865 encode_path fndecl 3 4865 NULL nohasharray
148561 +enable_so_attach_hdlc_protocol_fndecl_4865 attach_hdlc_protocol fndecl 3 4865 &enable_so_encode_path_fndecl_4865
148562 +enable_so_s_desc_per_block_ext4_sb_info_4867 s_desc_per_block ext4_sb_info 0 4867 NULL nohasharray
148563 +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
148564 +enable_so_i40e_reserve_msix_vectors_fndecl_4870 i40e_reserve_msix_vectors fndecl 0 4870 NULL
148565 +enable_so_i_lenEAttr_udf_inode_info_4872 i_lenEAttr udf_inode_info 0 4872 NULL nohasharray
148566 +enable_so_find_overflow_devnum_fndecl_4872 find_overflow_devnum fndecl 0 4872 &enable_so_i_lenEAttr_udf_inode_info_4872
148567 +enable_so_out_args_qlcnic_mailbox_metadata_4881 out_args qlcnic_mailbox_metadata 0 4881 NULL
148568 +enable_so_mlx4_get_eqs_per_port_fndecl_4892 mlx4_get_eqs_per_port fndecl 0 4892 NULL
148569 +enable_so_snd_interval_refine_min_fndecl_4894 snd_interval_refine_min fndecl 2 4894 NULL nohasharray
148570 +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
148571 +enable_so_tng_serial_setup_fndecl_4896 tng_serial_setup fndecl 4 4896 NULL
148572 +enable_so_head_circ_buf_4897 head circ_buf 0 4897 NULL
148573 +enable_so_wMaxSegmentSize_usb_cdc_ether_desc_4898 wMaxSegmentSize usb_cdc_ether_desc 0 4898 NULL nohasharray
148574 +enable_so_refdiv_arizona_fll_cfg_4898 refdiv arizona_fll_cfg 0 4898 &enable_so_wMaxSegmentSize_usb_cdc_ether_desc_4898
148575 +enable_so_upper_size_to_lower_size_fndecl_4899 upper_size_to_lower_size fndecl 0-2 4899 NULL
148576 +enable_so_need_tx_headroom_prism2_helper_functions_4902 need_tx_headroom prism2_helper_functions 0 4902 NULL
148577 +enable_so_SYSC_fgetxattr_fndecl_4904 SYSC_fgetxattr fndecl 4 4904 NULL
148578 +enable_so_diva_um_idi_read_fndecl_4912 diva_um_idi_read fndecl 0 4912 NULL
148579 +enable_so_tree_mod_log_eb_move_fndecl_4920 tree_mod_log_eb_move fndecl 5 4920 NULL
148580 +enable_so_inofreefwd_iag_4921 inofreefwd iag 0 4921 NULL
148581 +enable_so_event_trigger_write_fndecl_4922 event_trigger_write fndecl 3 4922 NULL
148582 +enable_so_leaf_copy_items_fndecl_4923 leaf_copy_items fndecl 5 4923 NULL
148583 +enable_so_ui_size_ubifs_inode_4934 ui_size ubifs_inode 0 4934 NULL
148584 +enable_so_bpp_drm_mode_fb_cmd_4936 bpp drm_mode_fb_cmd 0 4936 NULL
148585 +enable_so_clear_extent_bits_fndecl_4939 clear_extent_bits fndecl 2-3 4939 NULL
148586 +enable_so_ocfs2_xattr_security_set_fndecl_4947 ocfs2_xattr_security_set fndecl 4 4947 NULL
148587 +enable_so_update_tind_extent_range_fndecl_4950 update_tind_extent_range fndecl 3 4950 NULL nohasharray
148588 +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
148589 +enable_so_read_tape_fndecl_4950 read_tape fndecl 2 4950 &enable_so_mlx5_ib_db_map_user_fndecl_4950
148590 +enable_so_clear_extent_uptodate_fndecl_4952 clear_extent_uptodate fndecl 2-3 4952 NULL
148591 +enable_so_myri10ge_get_txrx_fndecl_4953 myri10ge_get_txrx fndecl 2 4953 NULL
148592 +enable_so_nvkm_disp_create__fndecl_4955 nvkm_disp_create_ fndecl 7-4 4955 NULL
148593 +enable_so_aat2870_reg_write_file_fndecl_4965 aat2870_reg_write_file fndecl 3 4965 NULL
148594 +enable_so_fuse_conn_limit_read_fndecl_4967 fuse_conn_limit_read fndecl 3 4967 NULL
148595 +enable_so_team_options_register_fndecl_4968 team_options_register fndecl 3 4968 NULL
148596 +enable_so_radeon_align_pitch_fndecl_4969 radeon_align_pitch fndecl 0-2 4969 NULL
148597 +enable_so_reiserfs_dir_fsync_fndecl_4971 reiserfs_dir_fsync fndecl 2-3 4971 NULL
148598 +enable_so_iwl_mvm_power_mac_dbgfs_read_fndecl_4976 iwl_mvm_power_mac_dbgfs_read fndecl 0 4976 NULL
148599 +enable_so_t_data_nents_se_cmd_4981 t_data_nents se_cmd 0 4981 NULL nohasharray
148600 +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
148601 +enable_so_btrfs_pin_extent_for_log_replay_fndecl_4982 btrfs_pin_extent_for_log_replay fndecl 3-2 4982 NULL
148602 +enable_so_scif_send_fndecl_4988 scif_send fndecl 3 4988 NULL
148603 +enable_so_phy_duplex_pxa168_eth_private_4990 phy_duplex pxa168_eth_private 0 4990 NULL
148604 +enable_so_stripe_unit_ore_layout_4991 stripe_unit ore_layout 0 4991 NULL
148605 +enable_so___mt7601u_dma_fw_fndecl_4994 __mt7601u_dma_fw fndecl 4 4994 NULL
148606 +enable_so_kmem_cache_create_fndecl_5007 kmem_cache_create fndecl 2-3 5007 NULL
148607 +enable_so_read_int_fndecl_5009 read_int fndecl 0 5009 NULL
148608 +enable_so_numEntries__ATOM_PPLIB_SAMClk_Voltage_Limit_Table_5010 numEntries _ATOM_PPLIB_SAMClk_Voltage_Limit_Table 0 5010 NULL
148609 +enable_so_o2net_send_message_fndecl_5012 o2net_send_message fndecl 4 5012 NULL nohasharray
148610 +enable_so_mgmt_limited_event_fndecl_5012 mgmt_limited_event fndecl 4 5012 &enable_so_o2net_send_message_fndecl_5012
148611 +enable_so_xenvif_gop_skb_fndecl_5015 xenvif_gop_skb fndecl 0 5015 NULL
148612 +enable_so_bulk_in_size_usb_idmouse_5017 bulk_in_size usb_idmouse 0 5017 NULL
148613 +enable_so_hard_header_len_net_device_5025 hard_header_len net_device 0 5025 NULL
148614 +enable_so_size_drm_nouveau_notifierobj_alloc_5028 size drm_nouveau_notifierobj_alloc 0 5028 NULL
148615 +enable_so_ubifs_unpack_bits_fndecl_5033 ubifs_unpack_bits fndecl 0-3 5033 NULL
148616 +enable_so_nr_pages_firmware_buf_5039 nr_pages firmware_buf 0 5039 NULL
148617 +enable_so_device_tg3_dev_id_5042 device tg3_dev_id 0 5042 NULL nohasharray
148618 +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
148619 +enable_so_ldebugfs_fid_write_common_fndecl_5049 ldebugfs_fid_write_common fndecl 2 5049 NULL
148620 +enable_so_jffs2_fsync_fndecl_5052 jffs2_fsync fndecl 2-3 5052 NULL
148621 +enable_so_index_squashfs_dir_index_5053 index squashfs_dir_index 0 5053 NULL
148622 +enable_so_rcvidx_IsdnCardState_5055 rcvidx IsdnCardState 0 5055 NULL nohasharray
148623 +enable_so_compress_raw_buf_fndecl_5055 compress_raw_buf fndecl 0 5055 &enable_so_rcvidx_IsdnCardState_5055
148624 +enable_so_offset_SVGAGuestPtr_5056 offset SVGAGuestPtr 0 5056 NULL
148625 +enable_so_ext4_llseek_fndecl_5060 ext4_llseek fndecl 2 5060 NULL
148626 +enable_so_kvm_vcpu_gfn_to_pfn_atomic_fndecl_5062 kvm_vcpu_gfn_to_pfn_atomic fndecl 2 5062 NULL
148627 +enable_so_len_BufferControl_5068 len BufferControl 0 5068 NULL
148628 +enable_so_size_compat_arpt_replace_5071 size compat_arpt_replace 0 5071 NULL
148629 +enable_so_ie_len_cfg80211_scan_request_5073 ie_len cfg80211_scan_request 0 5073 NULL
148630 +enable_so_tomoyo_commit_ok_fndecl_5076 tomoyo_commit_ok fndecl 2 5076 NULL
148631 +enable_so_read_flush_pipefs_fndecl_5080 read_flush_pipefs fndecl 3 5080 NULL
148632 +enable_so_num_slots_input_mt_5088 num_slots input_mt 0 5088 NULL
148633 +enable_so_domain_a_len_ccp_ecc_point_math_5093 domain_a_len ccp_ecc_point_math 0 5093 NULL
148634 +enable_so___radix_tree_create_fndecl_5102 __radix_tree_create fndecl 0 5102 NULL
148635 +enable_so_default_file_splice_write_fndecl_5103 default_file_splice_write fndecl 4 5103 NULL
148636 +enable_so_trusted_set_fndecl_5111 trusted_set fndecl 4 5111 NULL
148637 +enable_so_mem_eni_dev_5112 mem eni_dev 0 5112 NULL
148638 +enable_so_num_banks_adf_hw_device_data_5115 num_banks adf_hw_device_data 0 5115 NULL
148639 +enable_so_spi_bits_per_word_cw1200_platform_data_spi_5117 spi_bits_per_word cw1200_platform_data_spi 0 5117 NULL nohasharray
148640 +enable_so___link_buffer_fndecl_5117 __link_buffer fndecl 2 5117 &enable_so_spi_bits_per_word_cw1200_platform_data_spi_5117
148641 +enable_so_num_gpio_tc3589x_5118 num_gpio tc3589x 0 5118 NULL
148642 +enable_so_replay_log_leb_fndecl_5123 replay_log_leb fndecl 3 5123 NULL
148643 +enable_so_ocfs2_trim_extent_fndecl_5124 ocfs2_trim_extent fndecl 0-3-4 5124 NULL
148644 +enable_so_ceph_alloc_page_vector_fndecl_5125 ceph_alloc_page_vector fndecl 1 5125 NULL
148645 +enable_so_iwl_dbgfs_rx_handlers_read_fndecl_5127 iwl_dbgfs_rx_handlers_read fndecl 3 5127 NULL
148646 +enable_so_ccp_init_sg_workarea_fndecl_5128 ccp_init_sg_workarea fndecl 4 5128 NULL
148647 +enable_so_fuse_dev_splice_write_fndecl_5131 fuse_dev_splice_write fndecl 4 5131 NULL
148648 +enable_so_nfs4_init_callback_netid_fndecl_5134 nfs4_init_callback_netid fndecl 0 5134 NULL
148649 +enable_so_rate_num_snd_pcm_hw_params_5135 rate_num snd_pcm_hw_params 0 5135 NULL
148650 +enable_so_rlen_si2157_cmd_5138 rlen si2157_cmd 0 5138 NULL nohasharray
148651 +enable_so_channel_count_il_priv_5138 channel_count il_priv 0 5138 &enable_so_rlen_si2157_cmd_5138
148652 +enable_so_fnic_stats_debugfs_read_fndecl_5139 fnic_stats_debugfs_read fndecl 3 5139 NULL
148653 +enable_so_echo_client_prep_commit_fndecl_5142 echo_client_prep_commit fndecl 8 5142 NULL
148654 +enable_so_csio_scsi_eqsize_vardecl_5146 csio_scsi_eqsize vardecl 0 5146 NULL
148655 +enable_so_gfar_hwtstamp_get_fndecl_5152 gfar_hwtstamp_get fndecl 0 5152 NULL
148656 +enable_so_ocfs2_iget_fndecl_5154 ocfs2_iget fndecl 2 5154 NULL
148657 +enable_so_total_in_z_stream_s_5155 total_in z_stream_s 0 5155 NULL
148658 +enable_so_stv0297_readregs_fndecl_5156 stv0297_readregs fndecl 4 5156 NULL
148659 +enable_so_o2hb_debug_create_fndecl_5163 o2hb_debug_create fndecl 4 5163 NULL
148660 +enable_so_tx_hdr_len_p54_common_5164 tx_hdr_len p54_common 0 5164 NULL nohasharray
148661 +enable_so_wep_packets_read_fndecl_5164 wep_packets_read fndecl 3 5164 &enable_so_tx_hdr_len_p54_common_5164
148662 +enable_so_indices_ixgbe_ring_feature_5170 indices ixgbe_ring_feature 0 5170 NULL
148663 +enable_so_ext4_es_insert_extent_fndecl_5178 ext4_es_insert_extent fndecl 0-3-2 5178 NULL nohasharray
148664 +enable_so_len_bts_file_action_5178 len bts_file_action 0 5178 &enable_so_ext4_es_insert_extent_fndecl_5178
148665 +enable_so_lpfc_issue_ct_rsp_fndecl_5182 lpfc_issue_ct_rsp fndecl 6 5182 NULL
148666 +enable_so_inofree_iagctl_5194 inofree iagctl 0 5194 NULL
148667 +enable_so_SyS_lsetxattr_fndecl_5195 SyS_lsetxattr fndecl 4 5195 NULL
148668 +enable_so_size_drm_amdgpu_gem_userptr_5196 size drm_amdgpu_gem_userptr 0 5196 NULL
148669 +enable_so_hidp_raw_request_fndecl_5198 hidp_raw_request fndecl 4 5198 NULL
148670 +enable_so_alloc_fcdev_fndecl_5199 alloc_fcdev fndecl 1 5199 NULL
148671 +enable_so_vtbl_size_ubi_device_5209 vtbl_size ubi_device 0 5209 NULL
148672 +enable_so_snd_midi_event_encode_fndecl_5210 snd_midi_event_encode fndecl 0 5210 NULL
148673 +enable_so_hugetlb_entry_mm_walk_5211 hugetlb_entry mm_walk 0 5211 NULL
148674 +enable_so_drm_gem_private_object_init_fndecl_5217 drm_gem_private_object_init fndecl 3 5217 NULL
148675 +enable_so_phys_ichxrom_window_5221 phys ichxrom_window 0 5221 NULL
148676 +enable_so_mmc_test_broken_transfer_fndecl_5224 mmc_test_broken_transfer fndecl 3-2 5224 NULL
148677 +enable_so_sq905_read_data_fndecl_5229 sq905_read_data fndecl 0 5229 NULL
148678 +enable_so_madvise_hwpoison_fndecl_5231 madvise_hwpoison fndecl 2 5231 NULL
148679 +enable_so_nr_extents__ntfs_inode_5242 nr_extents _ntfs_inode 0 5242 NULL
148680 +enable_so_feednum_dvb_demux_5252 feednum dvb_demux 0 5252 NULL
148681 +enable_so_emulate_ss_fndecl_5254 emulate_ss fndecl 2 5254 NULL
148682 +enable_so_len_fstrim_range_5265 len fstrim_range 0 5265 NULL
148683 +enable_so_h_total_aty128_crtc_5275 h_total aty128_crtc 0 5275 NULL nohasharray
148684 +enable_so_sys_modify_ldt_fndecl_5275 sys_modify_ldt fndecl 3 5275 &enable_so_h_total_aty128_crtc_5275
148685 +enable_so_upload_data_fndecl_5277 upload_data fndecl 2 5277 NULL nohasharray
148686 +enable_so_fi_extents_max_fiemap_extent_info_5277 fi_extents_max fiemap_extent_info 0 5277 &enable_so_upload_data_fndecl_5277
148687 +enable_so_xlog_find_verify_log_record_fndecl_5285 xlog_find_verify_log_record fndecl 2 5285 NULL
148688 +enable_so_ieee80211_if_read_element_ttl_fndecl_5286 ieee80211_if_read_element_ttl fndecl 3 5286 NULL
148689 +enable_so_count_mpc8xxx_spi_5287 count mpc8xxx_spi 0 5287 NULL
148690 +enable_so_dma_offset_freelQ_5299 dma_offset freelQ 0 5299 NULL nohasharray
148691 +enable_so_lpt_hght_ubifs_info_5299 lpt_hght ubifs_info 0 5299 &enable_so_dma_offset_freelQ_5299
148692 +enable_so_drm_ht_create_fndecl_5302 drm_ht_create fndecl 2 5302 NULL
148693 +enable_so_sctp_setsockopt_events_fndecl_5309 sctp_setsockopt_events fndecl 3 5309 NULL
148694 +enable_so_beep_amp_alc_spec_5315 beep_amp alc_spec 0 5315 NULL
148695 +enable_so_devm_mdiobus_alloc_size_fndecl_5317 devm_mdiobus_alloc_size fndecl 2 5317 NULL
148696 +enable_so_matchsize_xt_match_5320 matchsize xt_match 0 5320 NULL
148697 +enable_so____alloc_bootmem_node_fndecl_5329 ___alloc_bootmem_node fndecl 3-2-4-5 5329 NULL nohasharray
148698 +enable_so_tcp_try_undo_partial_fndecl_5329 tcp_try_undo_partial fndecl 2 5329 &enable_so____alloc_bootmem_node_fndecl_5329
148699 +enable_so_scsi_change_queue_depth_fndecl_5330 scsi_change_queue_depth fndecl 2 5330 NULL
148700 +enable_so_get_cramfs_inode_fndecl_5332 get_cramfs_inode fndecl 3 5332 NULL
148701 +enable_so_jfs_quota_read_fndecl_5341 jfs_quota_read fndecl 5 5341 NULL
148702 +enable_so_comedi_isadma_alloc_fndecl_5342 comedi_isadma_alloc fndecl 2 5342 NULL
148703 +enable_so_get_cr3_kvm_mmu_5347 get_cr3 kvm_mmu 0 5347 NULL
148704 +enable_so_data_count_iscsi_task_5350 data_count iscsi_task 0 5350 NULL
148705 +enable_so_brcmf_usb_send_ctl_fndecl_5357 brcmf_usb_send_ctl fndecl 3 5357 NULL
148706 +enable_so_compute_blocknr_fndecl_5361 compute_blocknr fndecl 0-2 5361 NULL nohasharray
148707 +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
148708 +enable_so_ceph_setxattr_fndecl_5362 ceph_setxattr fndecl 4 5362 NULL
148709 +enable_so_michael_mic_fndecl_5363 michael_mic fndecl 5 5363 NULL
148710 +enable_so_nfs4_proc_readdir_fndecl_5367 nfs4_proc_readdir fndecl 5 5367 NULL
148711 +enable_so_xfs_buf_read_uncached_fndecl_5369 xfs_buf_read_uncached fndecl 3-2 5369 NULL
148712 +enable_so_mangle_packet_fndecl_5371 mangle_packet fndecl 7-9 5371 NULL
148713 +enable_so_ieee80211_rx_mgmt_disassoc_fndecl_5372 ieee80211_rx_mgmt_disassoc fndecl 3 5372 NULL
148714 +enable_so_mwifiex_write_data_to_card_fndecl_5375 mwifiex_write_data_to_card fndecl 3 5375 NULL
148715 +enable_so_max_header_size_irlan_client_cb_5378 max_header_size irlan_client_cb 0 5378 NULL nohasharray
148716 +enable_so_block_size_squashfs_sb_info_5378 block_size squashfs_sb_info 0 5378 &enable_so_max_header_size_irlan_client_cb_5378
148717 +enable_so_skbprio_ip_set_ext_5381 skbprio ip_set_ext 0 5381 NULL nohasharray
148718 +enable_so_flash_dev_cache_miss_fndecl_5381 flash_dev_cache_miss fndecl 4 5381 &enable_so_skbprio_ip_set_ext_5381
148719 +enable_so_regset_tls_set_fndecl_5384 regset_tls_set fndecl 4 5384 NULL
148720 +enable_so_fuse_perform_write_fndecl_5386 fuse_perform_write fndecl 4-0 5386 NULL
148721 +enable_so_check_iommu_size_fndecl_5390 check_iommu_size fndecl 0-2-1 5390 NULL
148722 +enable_so_pcibios_window_alignment_fndecl_5391 pcibios_window_alignment fndecl 0 5391 NULL
148723 +enable_so_iscsi_create_flashnode_sess_fndecl_5394 iscsi_create_flashnode_sess fndecl 4 5394 NULL
148724 +enable_so_snd_hda_get_connections_fndecl_5398 snd_hda_get_connections fndecl 0 5398 NULL
148725 +enable_so_len_iw_mgmt_info_element_5411 len iw_mgmt_info_element 0 5411 NULL
148726 +enable_so_udpv6_setsockopt_fndecl_5412 udpv6_setsockopt fndecl 5 5412 NULL
148727 +enable_so_session_key_encryption_key_bytes_ecryptfs_password_5413 session_key_encryption_key_bytes ecryptfs_password 0 5413 NULL
148728 +enable_so_value_xen_pci_op_5416 value xen_pci_op 0 5416 NULL
148729 +enable_so_allocmin_nilfs_sufile_info_5418 allocmin nilfs_sufile_info 0 5418 NULL
148730 +enable_so_reg_size_intel_iommu_5423 reg_size intel_iommu 0 5423 NULL nohasharray
148731 +enable_so_ino_ncp_entry_info_5423 ino ncp_entry_info 0 5423 &enable_so_reg_size_intel_iommu_5423 nohasharray
148732 +enable_so_nilfs_sufile_truncate_range_fndecl_5423 nilfs_sufile_truncate_range fndecl 3-2 5423 &enable_so_ino_ncp_entry_info_5423
148733 +enable_so_port_mad_size_fndecl_5434 port_mad_size fndecl 0 5434 NULL
148734 +enable_so_sigmadsp_read_i2c_fndecl_5435 sigmadsp_read_i2c fndecl 4 5435 NULL
148735 +enable_so_size_drm_radeon_gem_create_5440 size drm_radeon_gem_create 0 5440 NULL
148736 +enable_so_vlen_nfsd_writeargs_5461 vlen nfsd_writeargs 0 5461 NULL
148737 +enable_so_btrfs_fiemap_fndecl_5462 btrfs_fiemap fndecl 4-3 5462 NULL
148738 +enable_so_num_stations_il_priv_5465 num_stations il_priv 0 5465 NULL
148739 +enable_so_acpi_register_gsi_ioapic_fndecl_5477 acpi_register_gsi_ioapic fndecl 2 5477 NULL
148740 +enable_so_y_drm_vmw_rect_5478 y drm_vmw_rect 0 5478 NULL
148741 +enable_so_max_pkeys_mthca_dev_lim_5481 max_pkeys mthca_dev_lim 0 5481 NULL
148742 +enable_so_efs_find_entry_fndecl_5485 efs_find_entry fndecl 0 5485 NULL
148743 +enable_so_valuelen_xfs_attr_sf_entry_5490 valuelen xfs_attr_sf_entry 0 5490 NULL
148744 +enable_so_block_isofs_fid_5500 block isofs_fid 0 5500 NULL nohasharray
148745 +enable_so_seq_copy_in_user_fndecl_5500 seq_copy_in_user fndecl 3 5500 &enable_so_block_isofs_fid_5500
148746 +enable_so_s_fpb_ufs_sb_private_info_5504 s_fpb ufs_sb_private_info 0 5504 NULL
148747 +enable_so_f_width_camif_frame_5509 f_width camif_frame 0 5509 NULL
148748 +enable_so___tipc_sendmsg_fndecl_5510 __tipc_sendmsg fndecl 3 5510 NULL
148749 +enable_so_wiidebug_eeprom_read_fndecl_5523 wiidebug_eeprom_read fndecl 3 5523 NULL
148750 +enable_so_smk_write_rules_list_fndecl_5526 smk_write_rules_list fndecl 3 5526 NULL
148751 +enable_so_line_slgt_info_5527 line slgt_info 0 5527 NULL
148752 +enable_so_ceph_tcp_sendpage_fndecl_5531 ceph_tcp_sendpage fndecl 0-4 5531 NULL
148753 +enable_so_debug_output_fndecl_5532 debug_output fndecl 3 5532 NULL nohasharray
148754 +enable_so_tool_dbfn_read_fndecl_5532 tool_dbfn_read fndecl 3 5532 &enable_so_debug_output_fndecl_5532
148755 +enable_so_batadv_arp_get_type_fndecl_5538 batadv_arp_get_type fndecl 3 5538 NULL nohasharray
148756 +enable_so_sq_cnt_queue_set_5538 sq_cnt queue_set 0 5538 &enable_so_batadv_arp_get_type_fndecl_5538 nohasharray
148757 +enable_so___vmalloc_node_range_fndecl_5538 __vmalloc_node_range fndecl 1-3 5538 &enable_so_sq_cnt_queue_set_5538
148758 +enable_so_vector_acpi_hest_notify_5540 vector acpi_hest_notify 0 5540 NULL
148759 +enable_so_logical_ext4_allocation_request_5548 logical ext4_allocation_request 0 5548 NULL nohasharray
148760 +enable_so_mlx5_create_flow_table_fndecl_5548 mlx5_create_flow_table fndecl 4 5548 &enable_so_logical_ext4_allocation_request_5548
148761 +enable_so___netdev_alloc_skb_fndecl_5552 __netdev_alloc_skb fndecl 2 5552 NULL
148762 +enable_so_filemap_fdatawait_range_fndecl_5563 filemap_fdatawait_range fndecl 0 5563 NULL nohasharray
148763 +enable_so_slabinfo_write_fndecl_5563 slabinfo_write fndecl 3 5563 &enable_so_filemap_fdatawait_range_fndecl_5563
148764 +enable_so_nfs41_maxread_overhead_vardecl_5564 nfs41_maxread_overhead vardecl 0 5564 NULL
148765 +enable_so_iowarrior_write_fndecl_5567 iowarrior_write fndecl 3 5567 NULL
148766 +enable_so_ihl_xfrm_mode_skb_cb_5571 ihl xfrm_mode_skb_cb 0 5571 NULL nohasharray
148767 +enable_so_session_udf_options_5571 session udf_options 0 5571 &enable_so_ihl_xfrm_mode_skb_cb_5571
148768 +enable_so___dev_set_mtu_fndecl_5572 __dev_set_mtu fndecl 2 5572 NULL
148769 +enable_so_nblocks_range2trim_5574 nblocks range2trim 0 5574 NULL
148770 +enable_so_i2c_read_eeprom_fndecl_5583 i2c_read_eeprom fndecl 5 5583 NULL
148771 +enable_so_nfqnl_get_sk_secctx_fndecl_5586 nfqnl_get_sk_secctx fndecl 0 5586 NULL nohasharray
148772 +enable_so_from_buffer_fndecl_5586 from_buffer fndecl 3 5586 &enable_so_nfqnl_get_sk_secctx_fndecl_5586
148773 +enable_so_ext4_xattr_security_set_fndecl_5594 ext4_xattr_security_set fndecl 4 5594 NULL nohasharray
148774 +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
148775 +enable_so_num_scanouts_virtio_gpu_device_5598 num_scanouts virtio_gpu_device 0 5598 NULL
148776 +enable_so_memory_map_bottom_up_fndecl_5599 memory_map_bottom_up fndecl 1-2 5599 NULL nohasharray
148777 +enable_so_size_sched_attr_5599 size sched_attr 0 5599 &enable_so_memory_map_bottom_up_fndecl_5599
148778 +enable_so_nftl_write_fndecl_5605 nftl_write fndecl 2 5605 NULL
148779 +enable_so_pbl_base_rdma_info_5607 pbl_base rdma_info 0 5607 NULL
148780 +enable_so_snd_pcm_oss_write3_fndecl_5618 snd_pcm_oss_write3 fndecl 0 5618 NULL
148781 +enable_so_odata_dma_usb_xpad_5619 odata_dma usb_xpad 0 5619 NULL
148782 +enable_so_shmem_fallocate_fndecl_5621 shmem_fallocate fndecl 3-4 5621 NULL
148783 +enable_so_xfs_iext_insert_fndecl_5624 xfs_iext_insert fndecl 3 5624 NULL
148784 +enable_so_c_irotor_ufs_cg_private_info_5628 c_irotor ufs_cg_private_info 0 5628 NULL nohasharray
148785 +enable_so_gtt_end_radeon_mc_5628 gtt_end radeon_mc 0 5628 &enable_so_c_irotor_ufs_cg_private_info_5628
148786 +enable_so_max_sectors_ide_port_info_5629 max_sectors ide_port_info 0 5629 NULL
148787 +enable_so_id_iio_dev_5631 id iio_dev 0 5631 NULL
148788 +enable_so_wbcir_tx_fndecl_5632 wbcir_tx fndecl 3 5632 NULL
148789 +enable_so_screen_width_vardecl_hyperv_fb_c_5635 screen_width vardecl_hyperv_fb.c 0 5635 NULL nohasharray
148790 +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
148791 +enable_so_dev_counters_read_fndecl_5635 dev_counters_read fndecl 3 5635 &enable_so_platform_mmio_alloc_vardecl_platform_pci_c_5635
148792 +enable_so_num_counters_compat_ip6t_replace_5636 num_counters compat_ip6t_replace 0 5636 NULL
148793 +enable_so_udpv6_recvmsg_fndecl_5638 udpv6_recvmsg fndecl 3 5638 NULL
148794 +enable_so_ring_buffer_size_vardecl_ldusb_c_5645 ring_buffer_size vardecl_ldusb.c 0 5645 NULL
148795 +enable_so_efi_memdesc_size_efi_info_5654 efi_memdesc_size efi_info 0 5654 NULL nohasharray
148796 +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
148797 +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
148798 +enable_so___spi_map_msg_fndecl_5657 __spi_map_msg fndecl 0 5657 NULL nohasharray
148799 +enable_so_dev_id_pci_id_descr_5657 dev_id pci_id_descr 0 5657 &enable_so___spi_map_msg_fndecl_5657
148800 +enable_so_isert_put_login_tx_fndecl_5660 isert_put_login_tx fndecl 3 5660 NULL
148801 +enable_so_block_mask_htc_target_5671 block_mask htc_target 0 5671 NULL
148802 +enable_so_sgl_read_to_frags_fndecl_5672 sgl_read_to_frags fndecl 3-2 5672 NULL
148803 +enable_so_mtu_ppp_channel_5679 mtu ppp_channel 0 5679 NULL nohasharray
148804 +enable_so_blklen_regcache_rbtree_node_5679 blklen regcache_rbtree_node 0 5679 &enable_so_mtu_ppp_channel_5679 nohasharray
148805 +enable_so_ucma_query_fndecl_5679 ucma_query fndecl 4 5679 &enable_so_blklen_regcache_rbtree_node_5679
148806 +enable_so_ext4_es_alloc_extent_fndecl_5681 ext4_es_alloc_extent fndecl 2-3 5681 NULL
148807 +enable_so_bio_alloc_mddev_fndecl_5685 bio_alloc_mddev fndecl 2 5685 NULL
148808 +enable_so_lbtf_cmd_async_fndecl_5691 lbtf_cmd_async fndecl 4 5691 NULL
148809 +enable_so_s_blocks_count_ext2_super_block_5695 s_blocks_count ext2_super_block 0 5695 NULL
148810 +enable_so_il_dbgfs_rxon_filter_flags_read_fndecl_5698 il_dbgfs_rxon_filter_flags_read fndecl 3 5698 NULL
148811 +enable_so_write_bytes_to_xdr_buf_fndecl_5702 write_bytes_to_xdr_buf fndecl 4-2 5702 NULL
148812 +enable_so_cfg80211_rx_unprot_mlme_mgmt_fndecl_5707 cfg80211_rx_unprot_mlme_mgmt fndecl 3 5707 NULL nohasharray
148813 +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
148814 +enable_so_virtnet_change_mtu_fndecl_5709 virtnet_change_mtu fndecl 2 5709 NULL
148815 +enable_so_zm_wmfw_adsp1_alg_hdr_5710 zm wmfw_adsp1_alg_hdr 0 5710 NULL
148816 +enable_so_raw_send_hdrinc_fndecl_5711 raw_send_hdrinc fndecl 4 5711 NULL
148817 +enable_so_sys_fcntl_fndecl_5712 sys_fcntl fndecl 3 5712 NULL
148818 +enable_so_in_attr_len_ore_io_state_5713 in_attr_len ore_io_state 0 5713 NULL
148819 +enable_so_vt_hdr_vxfs_typed_5715 vt_hdr vxfs_typed 0 5715 NULL
148820 +enable_so_hfsplus_get_block_fndecl_5725 hfsplus_get_block fndecl 2 5725 NULL
148821 +enable_so_debug_read_fndecl_5737 debug_read fndecl 3 5737 NULL
148822 +enable_so_max_order_mlx4_buddy_5738 max_order mlx4_buddy 0 5738 NULL
148823 +enable_so_scrbuf_sisusb_usb_data_5749 scrbuf sisusb_usb_data 0 5749 NULL
148824 +enable_so_event_tx_stuck_read_fndecl_5754 event_tx_stuck_read fndecl 3 5754 NULL
148825 +enable_so_skb_checksum_maybe_trim_fndecl_5755 skb_checksum_maybe_trim fndecl 2 5755 NULL
148826 +enable_so_nci_prop_cmd_fndecl_5756 nci_prop_cmd fndecl 3 5756 NULL
148827 +enable_so_s_journal_inum_ext4_super_block_5759 s_journal_inum ext4_super_block 0 5759 NULL
148828 +enable_so_setup_extent_mapping_fndecl_5768 setup_extent_mapping fndecl 3-2-4 5768 NULL
148829 +enable_so_copy_align_dma_device_5783 copy_align dma_device 0 5783 NULL
148830 +enable_so_xfs_map_at_offset_fndecl_5785 xfs_map_at_offset fndecl 4 5785 NULL
148831 +enable_so_console_size_ramoops_platform_data_5786 console_size ramoops_platform_data 0 5786 NULL
148832 +enable_so_mc_handle_file_pte_fndecl_5787 mc_handle_file_pte fndecl 2 5787 NULL
148833 +enable_so_bq32k_read_fndecl_5789 bq32k_read fndecl 4 5789 NULL
148834 +enable_so_pci_mem_start_vardecl_5790 pci_mem_start vardecl 0 5790 NULL
148835 +enable_so_p9_check_zc_errors_fndecl_5806 p9_check_zc_errors fndecl 4 5806 NULL
148836 +enable_so_usb_ftdi_elan_edset_output_fndecl_5808 usb_ftdi_elan_edset_output fndecl 0 5808 NULL
148837 +enable_so_ubifs_recover_size_accum_fndecl_5809 ubifs_recover_size_accum fndecl 4 5809 NULL nohasharray
148838 +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
148839 +enable_so_length_uwb_ie_hdr_5811 length uwb_ie_hdr 0 5811 NULL nohasharray
148840 +enable_so_firmware_data_write_fndecl_5811 firmware_data_write fndecl 6-5 5811 &enable_so_length_uwb_ie_hdr_5811
148841 +enable_so_ncp_read_bounce_fndecl_5812 ncp_read_bounce fndecl 8 5812 NULL
148842 +enable_so_compr_flush_fndecl_5826 compr_flush fndecl 2 5826 NULL
148843 +enable_so_hid_hw_raw_request_fndecl_5827 hid_hw_raw_request fndecl 0 5827 NULL
148844 +enable_so_zlib_decompress_biovec_fndecl_5829 zlib_decompress_biovec fndecl 6 5829 NULL
148845 +enable_so_dvbdmx_write_fndecl_5836 dvbdmx_write fndecl 3 5836 NULL
148846 +enable_so_synproxy_options_size_fndecl_5837 synproxy_options_size fndecl 0 5837 NULL
148847 +enable_so_interpret_user_input_fndecl_5842 interpret_user_input fndecl 2 5842 NULL
148848 +enable_so_transferred_vardecl_shuttle_usbat_c_5845 transferred vardecl_shuttle_usbat.c 0 5845 NULL
148849 +enable_so_sync_fill_pt_info_fndecl_5846 sync_fill_pt_info fndecl 0 5846 NULL
148850 +enable_so_v9fs_xattr_security_set_fndecl_5847 v9fs_xattr_security_set fndecl 4 5847 NULL
148851 +enable_so_get_n_events_by_type_fndecl_5850 get_n_events_by_type fndecl 0 5850 NULL
148852 +enable_so_sound_insert_unit_fndecl_5861 sound_insert_unit fndecl 3-4 5861 NULL
148853 +enable_so_SyS_sched_getaffinity_fndecl_5863 SyS_sched_getaffinity fndecl 2 5863 NULL
148854 +enable_so_len_hv_mpb_array_5864 len hv_mpb_array 0 5864 NULL
148855 +enable_so_um_size_bcm5974_config_5867 um_size bcm5974_config 0 5867 NULL
148856 +enable_so_e1000_receive_skb_fndecl_5875 e1000_receive_skb fndecl 5 5875 NULL
148857 +enable_so_sq_db_page_mthca_create_qp_5878 sq_db_page mthca_create_qp 0 5878 NULL nohasharray
148858 +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
148859 +enable_so_rb_page_offset_nicvf_5878 rb_page_offset nicvf 0 5878 &enable_so_get_rx_status_altera_dmaops_5878
148860 +enable_so_cydata_ofsh_cyttsp4_sysinfo_data_5887 cydata_ofsh cyttsp4_sysinfo_data 0 5887 NULL
148861 +enable_so_max_sg_count_hpt_iop_request_get_config_5890 max_sg_count hpt_iop_request_get_config 0 5890 NULL
148862 +enable_so_force_max_req_size_vardecl_vub300_c_5891 force_max_req_size vardecl_vub300.c 0 5891 NULL
148863 +enable_so_dma_common_pages_remap_fndecl_5893 dma_common_pages_remap fndecl 2 5893 NULL
148864 +enable_so_size_squashfs_dir_entry_5896 size squashfs_dir_entry 0 5896 NULL
148865 +enable_so___nla_reserve_fndecl_5901 __nla_reserve fndecl 3 5901 NULL
148866 +enable_so_iproc_asiu_setup_fndecl_5902 iproc_asiu_setup fndecl 4 5902 NULL
148867 +enable_so_priv_size_dsa_switch_driver_5905 priv_size dsa_switch_driver 0 5905 NULL
148868 +enable_so_alloc_rx_slot_fndecl_5908 alloc_rx_slot fndecl 0 5908 NULL
148869 +enable_so_bytes_drm_i915_error_state_buf_5909 bytes drm_i915_error_state_buf 0 5909 NULL
148870 +enable_so_sctp_tsnmap_num_gabs_fndecl_5915 sctp_tsnmap_num_gabs fndecl 0 5915 NULL
148871 +enable_so_buffer_len_async_pdu_handle_5928 buffer_len async_pdu_handle 0 5928 NULL
148872 +enable_so_resp_caching_pg_fndecl_5930 resp_caching_pg fndecl 0 5930 NULL
148873 +enable_so_ocfs2_reflink_xattr_buckets_fndecl_5931 ocfs2_reflink_xattr_buckets fndecl 7 5931 NULL
148874 +enable_so_layout_in_gaps_fndecl_5933 layout_in_gaps fndecl 2 5933 NULL
148875 +enable_so_intel_gtt_unmap_memory_fndecl_5935 intel_gtt_unmap_memory fndecl 2 5935 NULL
148876 +enable_so_max_attributes_pmbus_data_5939 max_attributes pmbus_data 0 5939 NULL
148877 +enable_so_ide_config_drive_speed_fndecl_5940 ide_config_drive_speed fndecl 2 5940 NULL
148878 +enable_so_gfn_to_pfn_atomic_fndecl_5942 gfn_to_pfn_atomic fndecl 2 5942 NULL
148879 +enable_so_buffer_blocks_osst_buffer_5944 buffer_blocks osst_buffer 0 5944 NULL
148880 +enable_so_max_header_size_irda_sock_5950 max_header_size irda_sock 0 5950 NULL
148881 +enable_so_height_tm6000_fh_5952 height tm6000_fh 0 5952 NULL
148882 +enable_so_count_w6692B_hw_5953 count w6692B_hw 0 5953 NULL
148883 +enable_so_len_ias_value_5959 len ias_value 0 5959 NULL
148884 +enable_so_tx_hdrlen_brcmf_sdio_5961 tx_hdrlen brcmf_sdio 0 5961 NULL
148885 +enable_so_viafb_second_size_vardecl_viafbdev_c_5965 viafb_second_size vardecl_viafbdev.c 0 5965 NULL
148886 +enable_so_allocmax_nilfs_sufile_info_5969 allocmax nilfs_sufile_info 0 5969 NULL
148887 +enable_so_f2fs_setxattr_fndecl_5975 f2fs_setxattr fndecl 5 5975 NULL
148888 +enable_so_nfsd4_encode_dirent_fndecl_5983 nfsd4_encode_dirent fndecl 3 5983 NULL nohasharray
148889 +enable_so_do_rc_ack_fndecl_5983 do_rc_ack fndecl 3 5983 &enable_so_nfsd4_encode_dirent_fndecl_5983
148890 +enable_so_create_gpadl_header_fndecl_5995 create_gpadl_header fndecl 2 5995 NULL
148891 +enable_so_acpi_install_table_fndecl_6000 acpi_install_table fndecl 1 6000 NULL nohasharray
148892 +enable_so_revalidate_fndecl_6000 revalidate fndecl 2 6000 &enable_so_acpi_install_table_fndecl_6000 nohasharray
148893 +enable_so_snd_hdac_read_parm_uncached_fndecl_6000 snd_hdac_read_parm_uncached fndecl 0 6000 &enable_so_revalidate_fndecl_6000
148894 +enable_so_clk_recalc_fndecl_6001 clk_recalc fndecl 0-2 6001 NULL
148895 +enable_so_drm_fb_helper_init_fndecl_6007 drm_fb_helper_init fndecl 3-4 6007 NULL nohasharray
148896 +enable_so_map_words_netvsc_device_6007 map_words netvsc_device 0 6007 &enable_so_drm_fb_helper_init_fndecl_6007
148897 +enable_so_afs_vnode_store_data_fndecl_6011 afs_vnode_store_data fndecl 4-5 6011 NULL
148898 +enable_so_orig_sg_segs_osst_buffer_6013 orig_sg_segs osst_buffer 0 6013 NULL
148899 +enable_so_sys_process_vm_readv_fndecl_6017 sys_process_vm_readv fndecl 3-5 6017 NULL nohasharray
148900 +enable_so_brcmf_usbdev_qinit_fndecl_6017 brcmf_usbdev_qinit fndecl 2 6017 &enable_so_sys_process_vm_readv_fndecl_6017
148901 +enable_so_max_discard_sectors_queue_limits_6023 max_discard_sectors queue_limits 0 6023 NULL
148902 +enable_so_wqe_cnt_mlx5_ib_wq_6024 wqe_cnt mlx5_ib_wq 0 6024 NULL
148903 +enable_so_flags_rtl8180_rx_desc_6025 flags rtl8180_rx_desc 0 6025 NULL nohasharray
148904 +enable_so_icv_trunc_len_ah_data_6025 icv_trunc_len ah_data 0 6025 &enable_so_flags_rtl8180_rx_desc_6025
148905 +enable_so_xlog_bwrite_fndecl_6028 xlog_bwrite fndecl 2 6028 NULL
148906 +enable_so_msix_map_region_fndecl_6035 msix_map_region fndecl 2 6035 NULL
148907 +enable_so_ceph_create_snap_context_fndecl_6041 ceph_create_snap_context fndecl 1 6041 NULL
148908 +enable_so_cmipci_sb_reg_decode_fndecl_6048 cmipci_sb_reg_decode fndecl 2 6048 NULL
148909 +enable_so_n_ssids_cfg80211_scan_request_6049 n_ssids cfg80211_scan_request 0 6049 NULL
148910 +enable_so_scif_rb_space_fndecl_6052 scif_rb_space fndecl 0 6052 NULL
148911 +enable_so_dmi_len_vardecl_dmi_scan_c_6054 dmi_len vardecl_dmi_scan.c 0 6054 NULL nohasharray
148912 +enable_so_ext4_inode_table_fndecl_6054 ext4_inode_table fndecl 0 6054 &enable_so_dmi_len_vardecl_dmi_scan_c_6054
148913 +enable_so_map_base_tpm_inf_dev_6056 map_base tpm_inf_dev 0 6056 NULL
148914 +enable_so_spu_base_info_size_ipath_user_info_6059 spu_base_info_size ipath_user_info 0 6059 NULL
148915 +enable_so_scsi_debug_dev_size_mb_vardecl_scsi_debug_c_6060 scsi_debug_dev_size_mb vardecl_scsi_debug.c 0 6060 NULL
148916 +enable_so_sta_last_seq_ctrl_read_fndecl_6065 sta_last_seq_ctrl_read fndecl 3 6065 NULL
148917 +enable_so_count_vardecl_speedtest_c_6069 count vardecl_speedtest.c 0 6069 NULL
148918 +enable_so_cifs_readv_from_socket_fndecl_6070 cifs_readv_from_socket fndecl 0-4-3 6070 NULL
148919 +enable_so_length_hci_ev_le_advertising_info_6074 length hci_ev_le_advertising_info 0 6074 NULL
148920 +enable_so_elog_len_extlog_l1_head_6075 elog_len extlog_l1_head 0 6075 NULL
148921 +enable_so_ioctx_alloc_fndecl_6081 ioctx_alloc fndecl 1 6081 NULL
148922 +enable_so_remote_miu_nfc_llcp_sock_6088 remote_miu nfc_llcp_sock 0 6088 NULL nohasharray
148923 +enable_so_pcifront_scan_root_fndecl_6088 pcifront_scan_root fndecl 3 6088 &enable_so_remote_miu_nfc_llcp_sock_6088
148924 +enable_so_channel_num_ad9523_channel_spec_6095 channel_num ad9523_channel_spec 0 6095 NULL
148925 +enable_so___gfs2_xattr_set_fndecl_6098 __gfs2_xattr_set fndecl 4 6098 NULL
148926 +enable_so_alloc_irdadev_fndecl_6103 alloc_irdadev fndecl 1 6103 NULL
148927 +enable_so_rate_min_snd_pcm_hardware_6109 rate_min snd_pcm_hardware 0 6109 NULL nohasharray
148928 +enable_so_blkdev_issue_discard_fndecl_6109 blkdev_issue_discard fndecl 0-2-3 6109 &enable_so_rate_min_snd_pcm_hardware_6109
148929 +enable_so_resid_scsi_data_buffer_6113 resid scsi_data_buffer 0 6113 NULL
148930 +enable_so_ilf_blkno_xfs_inode_log_format_6118 ilf_blkno xfs_inode_log_format 0 6118 NULL nohasharray
148931 +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
148932 +enable_so_hblank_panel_info_6122 hblank panel_info 0 6122 NULL
148933 +enable_so_vmw_user_dmabuf_alloc_fndecl_6126 vmw_user_dmabuf_alloc fndecl 3 6126 NULL
148934 +enable_so_pwc_get_fps_Kiara_fndecl_6127 pwc_get_fps_Kiara fndecl 0 6127 NULL
148935 +enable_so_smk_write_access2_fndecl_6129 smk_write_access2 fndecl 3 6129 NULL
148936 +enable_so_buf_count_slgt_desc_6140 buf_count slgt_desc 0 6140 NULL
148937 +enable_so_max_gs_mlx5_ib_wq_6148 max_gs mlx5_ib_wq 0 6148 NULL
148938 +enable_so_pwr_enable_ps_read_fndecl_6149 pwr_enable_ps_read fndecl 3 6149 NULL
148939 +enable_so_fts_ieee80211_device_6153 fts ieee80211_device 0 6153 NULL
148940 +enable_so_name_len_f2fs_dir_entry_6154 name_len f2fs_dir_entry 0 6154 NULL
148941 +enable_so_gfn_to_pfn_memslot_fndecl_6158 gfn_to_pfn_memslot fndecl 2 6158 NULL
148942 +enable_so_buf_size_rte_log_le_6160 buf_size rte_log_le 0 6160 NULL nohasharray
148943 +enable_so_udf_read_tagged_fndecl_6160 udf_read_tagged fndecl 2 6160 &enable_so_buf_size_rte_log_le_6160
148944 +enable_so_kernel_write_fndecl_6162 kernel_write fndecl 3-0 6162 NULL
148945 +enable_so_rcl_nrefcalls_referring_call_list_6169 rcl_nrefcalls referring_call_list 0 6169 NULL
148946 +enable_so_dsp_tone_hw_message_fndecl_6173 dsp_tone_hw_message fndecl 3 6173 NULL
148947 +enable_so_m_agirotor_xfs_mount_6177 m_agirotor xfs_mount 0 6177 NULL
148948 +enable_so_fs_descs_count_ffs_data_6179 fs_descs_count ffs_data 0 6179 NULL
148949 +enable_so_sensor_write_regs_fndecl_6181 sensor_write_regs fndecl 0 6181 NULL
148950 +enable_so_arizona_calc_fratio_fndecl_6185 arizona_calc_fratio fndecl 0 6185 NULL
148951 +enable_so_start_mtd_oob_buf64_6198 start mtd_oob_buf64 0 6198 NULL
148952 +enable_so___einj_error_trigger_fndecl_6200 __einj_error_trigger fndecl 1 6200 NULL nohasharray
148953 +enable_so_venus_rename_fndecl_6200 venus_rename fndecl 4-5 6200 &enable_so___einj_error_trigger_fndecl_6200
148954 +enable_so_height_linux_logo_6207 height linux_logo 0 6207 NULL nohasharray
148955 +enable_so_digi_write_oob_command_fndecl_6207 digi_write_oob_command fndecl 3 6207 &enable_so_height_linux_logo_6207
148956 +enable_so_index_lola_stream_6210 index lola_stream 0 6210 NULL nohasharray
148957 +enable_so_dac_channels_pcm_oxygen_model_6210 dac_channels_pcm oxygen_model 0 6210 &enable_so_index_lola_stream_6210
148958 +enable_so_val_bits_regmap_config_6218 val_bits regmap_config 0 6218 NULL
148959 +enable_so_sc_ssid_len_wl18xx_event_mailbox_6223 sc_ssid_len wl18xx_event_mailbox 0 6223 NULL
148960 +enable_so___vlan_vid_del_fndecl_6228 __vlan_vid_del fndecl 3 6228 NULL
148961 +enable_so_exofs_read_lookup_dev_table_fndecl_6230 exofs_read_lookup_dev_table fndecl 3 6230 NULL
148962 +enable_so_bytenr_backref_node_6238 bytenr backref_node 0 6238 NULL
148963 +enable_so_setup_sgl_fndecl_6242 setup_sgl fndecl 4-5 6242 NULL
148964 +enable_so_ag_xfs_fstrm_item_6243 ag xfs_fstrm_item 0 6243 NULL
148965 +enable_so_mode_offset_pktcdvd_device_6248 mode_offset pktcdvd_device 0 6248 NULL
148966 +enable_so_rxq_cnt_tg3_6249 rxq_cnt tg3 0 6249 NULL
148967 +enable_so_ubifs_leb_change_fndecl_6254 ubifs_leb_change fndecl 4 6254 NULL
148968 +enable_so_brcmf_usb_attach_fndecl_6261 brcmf_usb_attach fndecl 2-3 6261 NULL
148969 +enable_so_blkno_xfs_bmalloca_6265 blkno xfs_bmalloca 0 6265 NULL nohasharray
148970 +enable_so_bNumInterfaces_usb_config_descriptor_6265 bNumInterfaces usb_config_descriptor 0 6265 &enable_so_blkno_xfs_bmalloca_6265
148971 +enable_so_xs_setup_xprt_fndecl_6266 xs_setup_xprt fndecl 3-2 6266 NULL
148972 +enable_so_size_drm_vmw_alloc_dmabuf_req_6273 size drm_vmw_alloc_dmabuf_req 0 6273 NULL
148973 +enable_so_vb2_dma_sg_get_userptr_fndecl_6274 vb2_dma_sg_get_userptr fndecl 2-3 6274 NULL
148974 +enable_so_sb_nextnum_nilfs_segment_buffer_6275 sb_nextnum nilfs_segment_buffer 0 6275 NULL
148975 +enable_so_command_setsensorfps_fndecl_6277 command_setsensorfps fndecl 0 6277 NULL
148976 +enable_so_nrealwriters_stress_lock_torture_cxt_6279 nrealwriters_stress lock_torture_cxt 0 6279 NULL
148977 +enable_so_copy_out_args_fndecl_6283 copy_out_args fndecl 3 6283 NULL
148978 +enable_so_regmap_i2c_gather_write_fndecl_6284 regmap_i2c_gather_write fndecl 3-5 6284 NULL nohasharray
148979 +enable_so_data_len_op_arr_write_6284 data_len op_arr_write 0 6284 &enable_so_regmap_i2c_gather_write_fndecl_6284
148980 +enable_so_gnet_stats_copy_app_fndecl_6286 gnet_stats_copy_app fndecl 3 6286 NULL
148981 +enable_so__snd_pcm_lib_alloc_vmalloc_buffer_fndecl_6287 _snd_pcm_lib_alloc_vmalloc_buffer fndecl 2 6287 NULL
148982 +enable_so_hOver_plus_panel_info_6297 hOver_plus panel_info 0 6297 NULL
148983 +enable_so_lpuart_copy_rx_to_tty_fndecl_6298 lpuart_copy_rx_to_tty fndecl 3 6298 NULL
148984 +enable_so__iwl_dbgfs_set_nic_temperature_write_fndecl_6303 _iwl_dbgfs_set_nic_temperature_write fndecl 3 6303 NULL
148985 +enable_so_count_leafs_fndecl_6305 count_leafs fndecl 0 6305 NULL
148986 +enable_so_sn9c2028_command_fndecl_6307 sn9c2028_command fndecl 0 6307 NULL
148987 +enable_so_em28xx_audio_ep_packet_size_fndecl_6311 em28xx_audio_ep_packet_size fndecl 0 6311 NULL
148988 +enable_so_sectors_r1bio_6323 sectors r1bio 0 6323 NULL
148989 +enable_so_len_ethtool_gstrings_6325 len ethtool_gstrings 0 6325 NULL
148990 +enable_so_totalhigh_sysinfo_6327 totalhigh sysinfo 0 6327 NULL nohasharray
148991 +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
148992 +enable_so_cipso_v4_gentag_rbm_fndecl_6335 cipso_v4_gentag_rbm fndecl 0 6335 NULL nohasharray
148993 +enable_so_raid5_build_block_fndecl_6335 raid5_build_block fndecl 2 6335 &enable_so_cipso_v4_gentag_rbm_fndecl_6335 nohasharray
148994 +enable_so_asd_get_devctx_size_fndecl_6335 asd_get_devctx_size fndecl 0 6335 &enable_so_raid5_build_block_fndecl_6335
148995 +enable_so_ray_cs_essid_proc_write_fndecl_6336 ray_cs_essid_proc_write fndecl 3 6336 NULL
148996 +enable_so_virtio_cread32_fndecl_6338 virtio_cread32 fndecl 0 6338 NULL
148997 +enable_so_h_max_out_saa7146_standard_6339 h_max_out saa7146_standard 0 6339 NULL
148998 +enable_so_orinoco_set_key_fndecl_6341 orinoco_set_key fndecl 5-7 6341 NULL nohasharray
148999 +enable_so_i40e_align_l2obj_base_fndecl_6341 i40e_align_l2obj_base fndecl 1-0 6341 &enable_so_orinoco_set_key_fndecl_6341
149000 +enable_so_n_o_ps_usb_stream_kernel_6346 n_o_ps usb_stream_kernel 0 6346 NULL
149001 +enable_so_wbuf_ofs_jffs2_sb_info_6347 wbuf_ofs jffs2_sb_info 0 6347 NULL nohasharray
149002 +enable_so_init_per_cpu_fndecl_6347 init_per_cpu fndecl 1 6347 &enable_so_wbuf_ofs_jffs2_sb_info_6347
149003 +enable_so_compat_sys_pwritev_fndecl_6349 compat_sys_pwritev fndecl 3 6349 NULL
149004 +enable_so_chipid_to_nrcores_fndecl_6352 chipid_to_nrcores fndecl 0 6352 NULL
149005 +enable_so_pci_mmconfig_insert_fndecl_6353 pci_mmconfig_insert fndecl 3-4-5 6353 NULL
149006 +enable_so_logfs_iget_fndecl_6356 logfs_iget fndecl 2 6356 NULL
149007 +enable_so_lrf_body_len_nfsd4_layoutreturn_6359 lrf_body_len nfsd4_layoutreturn 0 6359 NULL
149008 +enable_so_len_p54_rx_data_6362 len p54_rx_data 0 6362 NULL
149009 +enable_so_sisusb_send_bulk_msg_fndecl_6363 sisusb_send_bulk_msg fndecl 3-2 6363 NULL
149010 +enable_so_alloc_sja1000dev_fndecl_6367 alloc_sja1000dev fndecl 1 6367 NULL
149011 +enable_so_elants_i2c_execute_command_fndecl_6371 elants_i2c_execute_command fndecl 3-5 6371 NULL nohasharray
149012 +enable_so_recover_head_fndecl_6371 recover_head fndecl 3 6371 &enable_so_elants_i2c_execute_command_fndecl_6371
149013 +enable_so_dev_pm_opp_get_opp_count_fndecl_6372 dev_pm_opp_get_opp_count fndecl 0 6372 NULL
149014 +enable_so_xfs_buf_associate_memory_fndecl_6376 xfs_buf_associate_memory fndecl 3 6376 NULL
149015 +enable_so_cur_inode_size_send_ctx_6380 cur_inode_size send_ctx 0 6380 NULL nohasharray
149016 +enable_so_blkfactor_dio_submit_6380 blkfactor dio_submit 0 6380 &enable_so_cur_inode_size_send_ctx_6380
149017 +enable_so_tail_hid_debug_list_6381 tail hid_debug_list 0 6381 NULL
149018 +enable_so_xfs_rtallocate_extent_near_fndecl_6383 xfs_rtallocate_extent_near fndecl 3-5-9 6383 NULL
149019 +enable_so_snd_info_entry_llseek_fndecl_6384 snd_info_entry_llseek fndecl 2 6384 NULL
149020 +enable_so_partition_sched_domains_fndecl_6386 partition_sched_domains fndecl 1 6386 NULL
149021 +enable_so_length_fusbh200_qtd_6388 length fusbh200_qtd 0 6388 NULL
149022 +enable_so_wps_probe_req_ie_len_mlme_priv_6393 wps_probe_req_ie_len mlme_priv 0 6393 NULL
149023 +enable_so_totalreserve_pages_vardecl_6395 totalreserve_pages vardecl 0 6395 NULL nohasharray
149024 +enable_so_max_agbno_xfs_alloc_arg_6395 max_agbno xfs_alloc_arg 0 6395 &enable_so_totalreserve_pages_vardecl_6395
149025 +enable_so_i_file_acl_ext2_inode_info_6396 i_file_acl ext2_inode_info 0 6396 NULL
149026 +enable_so_ipath_copy_sge_fndecl_6403 ipath_copy_sge fndecl 3 6403 NULL nohasharray
149027 +enable_so_lpfc_debugfs_dif_err_write_fndecl_6403 lpfc_debugfs_dif_err_write fndecl 3 6403 &enable_so_ipath_copy_sge_fndecl_6403
149028 +enable_so_srpt_post_send_fndecl_6405 srpt_post_send fndecl 3 6405 NULL nohasharray
149029 +enable_so_compat_sys_ppoll_fndecl_6405 compat_sys_ppoll fndecl 2 6405 &enable_so_srpt_post_send_fndecl_6405
149030 +enable_so_alloc_blocks_hfs_inode_info_6406 alloc_blocks hfs_inode_info 0 6406 NULL
149031 +enable_so_copy_from_iter_fndecl_6410 copy_from_iter fndecl 2-0 6410 NULL
149032 +enable_so_fwnet_change_mtu_fndecl_6424 fwnet_change_mtu fndecl 2 6424 NULL nohasharray
149033 +enable_so_x509_note_serial_fndecl_6424 x509_note_serial fndecl 5 6424 &enable_so_fwnet_change_mtu_fndecl_6424
149034 +enable_so_de_entrylen_reiserfs_dir_entry_6426 de_entrylen reiserfs_dir_entry 0 6426 NULL
149035 +enable_so_sys_brk_fndecl_6435 sys_brk fndecl 1 6435 NULL
149036 +enable_so_parse_dcb20_entry_fndecl_6440 parse_dcb20_entry fndecl 3 6440 NULL
149037 +enable_so_user_base_qib_mregion_6443 user_base qib_mregion 0 6443 NULL
149038 +enable_so_max_packet_sz_tx_musb_hw_ep_6448 max_packet_sz_tx musb_hw_ep 0 6448 NULL
149039 +enable_so_snd_hammerfall_get_buffer_fndecl_6450 snd_hammerfall_get_buffer fndecl 3 6450 NULL
149040 +enable_so_out_epnum_usb_gadget_6453 out_epnum usb_gadget 0 6453 NULL
149041 +enable_so_iov_iter_advance_fndecl_6457 iov_iter_advance fndecl 2 6457 NULL
149042 +enable_so_xtTruncate_fndecl_6468 xtTruncate fndecl 3 6468 NULL
149043 +enable_so_drop_unencrypted_libipw_device_6476 drop_unencrypted libipw_device 0 6476 NULL
149044 +enable_so_add_endpoint_hc_driver_6482 add_endpoint hc_driver 0 6482 NULL
149045 +enable_so_dx_fb_image_6483 dx fb_image 0 6483 NULL
149046 +enable_so_usb_device_lseek_fndecl_6485 usb_device_lseek fndecl 2 6485 NULL
149047 +enable_so_datasize_vub300_mmc_host_6490 datasize vub300_mmc_host 0 6490 NULL nohasharray
149048 +enable_so_beep_amp_ad198x_spec_6490 beep_amp ad198x_spec 0 6490 &enable_so_datasize_vub300_mmc_host_6490 nohasharray
149049 +enable_so_probe_kernel_write_fndecl_6490 probe_kernel_write fndecl 3 6490 &enable_so_beep_amp_ad198x_spec_6490
149050 +enable_so_v9fs_xattr_trusted_set_fndecl_6494 v9fs_xattr_trusted_set fndecl 4 6494 NULL
149051 +enable_so_curr_dma_words_tegra_spi_data_6500 curr_dma_words tegra_spi_data 0 6500 NULL
149052 +enable_so_new_offset_mdp_superblock_1_6501 new_offset mdp_superblock_1 0 6501 NULL
149053 +enable_so_f_read_cntrs_qib_devdata_6502 f_read_cntrs qib_devdata 0 6502 NULL
149054 +enable_so_inc_remap_and_issue_cell_fndecl_6505 inc_remap_and_issue_cell fndecl 3 6505 NULL
149055 +enable_so_hugetlb_file_setup_fndecl_6506 hugetlb_file_setup fndecl 2 6506 NULL
149056 +enable_so_vfs_setpos_fndecl_6511 vfs_setpos fndecl 2 6511 NULL
149057 +enable_so_base_size_aac_dev_6512 base_size aac_dev 0 6512 NULL
149058 +enable_so_l2_fhdr_vlan_tag_l2_fhdr_6516 l2_fhdr_vlan_tag l2_fhdr 0 6516 NULL
149059 +enable_so_lbs_highrssi_write_fndecl_6520 lbs_highrssi_write fndecl 3 6520 NULL
149060 +enable_so_copy_page_from_iter_fndecl_6523 copy_page_from_iter fndecl 3-0 6523 NULL
149061 +enable_so_sector_start_dm_target_spec_6526 sector_start dm_target_spec 0 6526 NULL
149062 +enable_so_copy_from_user_fndecl_6532 copy_from_user fndecl 3-0 6532 NULL
149063 +enable_so_resp_err_recov_pg_fndecl_6533 resp_err_recov_pg fndecl 0 6533 NULL nohasharray
149064 +enable_so_bytes_cifs_readdata_6533 bytes cifs_readdata 0 6533 &enable_so_resp_err_recov_pg_fndecl_6533
149065 +enable_so_size_ubifs_wbuf_6537 size ubifs_wbuf 0 6537 NULL
149066 +enable_so_tx_ring_size_vmxnet3_adapter_6541 tx_ring_size vmxnet3_adapter 0 6541 NULL
149067 +enable_so_fe_logical_ext4_free_extent_6542 fe_logical ext4_free_extent 0 6542 NULL
149068 +enable_so_max_vfs_vardecl_igb_main_c_6547 max_vfs vardecl_igb_main.c 0 6547 NULL
149069 +enable_so_count_ixgb_desc_ring_6548 count ixgb_desc_ring 0 6548 NULL
149070 +enable_so_v9fs_xattr_trusted_get_fndecl_6549 v9fs_xattr_trusted_get fndecl 4 6549 NULL
149071 +enable_so_xlog_do_log_recovery_fndecl_6557 xlog_do_log_recovery fndecl 3 6557 NULL
149072 +enable_so_active_duplex_tg3_link_config_6559 active_duplex tg3_link_config 0 6559 NULL
149073 +enable_so_num_x_edt_ft5x06_ts_data_6566 num_x edt_ft5x06_ts_data 0 6566 NULL
149074 +enable_so_sddr09_read21_fndecl_6568 sddr09_read21 fndecl 4-3-6 6568 NULL nohasharray
149075 +enable_so_neigh_hash_alloc_fndecl_6568 neigh_hash_alloc fndecl 1 6568 &enable_so_sddr09_read21_fndecl_6568
149076 +enable_so_acpi_ut_create_package_object_fndecl_6569 acpi_ut_create_package_object fndecl 1 6569 NULL
149077 +enable_so_ath6kl_wmi_connect_cmd_fndecl_6571 ath6kl_wmi_connect_cmd fndecl 2 6571 NULL nohasharray
149078 +enable_so_command_setcolourparams_fndecl_6571 command_setcolourparams fndecl 0 6571 &enable_so_ath6kl_wmi_connect_cmd_fndecl_6571
149079 +enable_so_rts51x_write_mem_fndecl_6573 rts51x_write_mem fndecl 4 6573 NULL
149080 +enable_so_log_num_qps_mlx4_init_hca_param_6574 log_num_qps mlx4_init_hca_param 0 6574 NULL
149081 +enable_so_mptctl_do_mpt_command_fndecl_6578 mptctl_do_mpt_command fndecl 0 6578 NULL
149082 +enable_so_gcd_fndecl_6579 gcd fndecl 0-2-1 6579 NULL
149083 +enable_so_short_retry_atmel_private_6580 short_retry atmel_private 0 6580 NULL
149084 +enable_so_argc_tomoyo_condition_6587 argc tomoyo_condition 0 6587 NULL
149085 +enable_so_wil_write_file_rxon_fndecl_6590 wil_write_file_rxon fndecl 3 6590 NULL
149086 +enable_so_capture_frlog_rme96_6593 capture_frlog rme96 0 6593 NULL nohasharray
149087 +enable_so_ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout_fndecl_6593 ieee80211_if_read_dot11MeshHWMPactivePathToRootTimeout fndecl 3 6593 &enable_so_capture_frlog_rme96_6593
149088 +enable_so_pci_get_device_fndecl_6606 pci_get_device fndecl 2 6606 NULL
149089 +enable_so_dma_map_page_fndecl_6607 dma_map_page fndecl 0 6607 NULL
149090 +enable_so_nvkm_gpio_create__fndecl_6610 nvkm_gpio_create_ fndecl 4 6610 NULL
149091 +enable_so_irda_sendmsg_ultra_fndecl_6612 irda_sendmsg_ultra fndecl 3 6612 NULL nohasharray
149092 +enable_so_osst_execute_fndecl_6612 osst_execute fndecl 6-3-7 6612 &enable_so_irda_sendmsg_ultra_fndecl_6612
149093 +enable_so_size_synthhid_msg_hdr_6615 size synthhid_msg_hdr 0 6615 NULL nohasharray
149094 +enable_so_num_large_buffers_ql3_adapter_6615 num_large_buffers ql3_adapter 0 6615 &enable_so_size_synthhid_msg_hdr_6615
149095 +enable_so_length_v4l2_mbus_frame_desc_entry_6616 length v4l2_mbus_frame_desc_entry 0 6616 NULL
149096 +enable_so_ocfs2_mark_extent_written_fndecl_6620 ocfs2_mark_extent_written fndecl 6-4 6620 NULL
149097 +enable_so_ath_recv_fndecl_6621 ath_recv fndecl 3 6621 NULL
149098 +enable_so_num_outputs_drm_vmw_update_layout_arg_6623 num_outputs drm_vmw_update_layout_arg 0 6623 NULL
149099 +enable_so_hw_queue_depth_vardecl_null_blk_c_6624 hw_queue_depth vardecl_null_blk.c 0 6624 NULL
149100 +enable_so_cifs_setsize_fndecl_6630 cifs_setsize fndecl 2 6630 NULL nohasharray
149101 +enable_so_copy_for_split_fndecl_6630 copy_for_split fndecl 7-8 6630 &enable_so_cifs_setsize_fndecl_6630
149102 +enable_so_sample_rate_echoaudio_6631 sample_rate echoaudio 0 6631 NULL
149103 +enable_so_integrity_read_file_fndecl_6633 integrity_read_file fndecl 0 6633 NULL nohasharray
149104 +enable_so_buf_size_mlx4_en_rx_ring_6633 buf_size mlx4_en_rx_ring 0 6633 &enable_so_integrity_read_file_fndecl_6633
149105 +enable_so_SYSC_migrate_pages_fndecl_6634 SYSC_migrate_pages fndecl 2 6634 NULL
149106 +enable_so_packet_setsockopt_fndecl_6637 packet_setsockopt fndecl 5 6637 NULL
149107 +enable_so_xmit_count_modem_info_6639 xmit_count modem_info 0 6639 NULL
149108 +enable_so_bpp_xvip_video_format_6640 bpp xvip_video_format 0 6640 NULL
149109 +enable_so_irlan_provider_connect_indication_fndecl_6644 irlan_provider_connect_indication fndecl 5 6644 NULL
149110 +enable_so_local_payload_max_nfc_digital_dev_6651 local_payload_max nfc_digital_dev 0 6651 NULL nohasharray
149111 +enable_so_set_number_fndecl_6651 set_number fndecl 2 6651 &enable_so_local_payload_max_nfc_digital_dev_6651
149112 +enable_so_length_acpi_namestring_info_6654 length acpi_namestring_info 0 6654 NULL
149113 +enable_so_async_error_osd_request_6658 async_error osd_request 0 6658 NULL
149114 +enable_so_persistent_commit_merge_fndecl_6660 persistent_commit_merge fndecl 2 6660 NULL
149115 +enable_so_nilfs_segment_list_add_fndecl_6665 nilfs_segment_list_add fndecl 2 6665 NULL
149116 +enable_so_orinoco_add_extscan_result_fndecl_6668 orinoco_add_extscan_result fndecl 3 6668 NULL nohasharray
149117 +enable_so_io_reserve_memtype_fndecl_6668 io_reserve_memtype fndecl 1-2 6668 &enable_so_orinoco_add_extscan_result_fndecl_6668
149118 +enable_so_img_imem_size_fw_hdr_6675 img_imem_size fw_hdr 0 6675 NULL nohasharray
149119 +enable_so_pccard_store_cis_fndecl_6675 pccard_store_cis fndecl 6 6675 &enable_so_img_imem_size_fw_hdr_6675
149120 +enable_so_compatsize_xt_match_6677 compatsize xt_match 0 6677 NULL
149121 +enable_so_lpfc_debugfs_lseek_fndecl_6679 lpfc_debugfs_lseek fndecl 2 6679 NULL
149122 +enable_so_present_pages_zone_6685 present_pages zone 0 6685 NULL
149123 +enable_so_ac_2order_ext4_allocation_context_6690 ac_2order ext4_allocation_context 0 6690 NULL
149124 +enable_so_param_ssp_completion_resp_6691 param ssp_completion_resp 0 6691 NULL
149125 +enable_so_esize___kfifo_6692 esize __kfifo 0 6692 NULL nohasharray
149126 +enable_so_drop_endpoint_hc_driver_6692 drop_endpoint hc_driver 0 6692 &enable_so_esize___kfifo_6692
149127 +enable_so_max_recvmsg_len_netlink_sock_6699 max_recvmsg_len netlink_sock 0 6699 NULL
149128 +enable_so_nroots_rs_control_6706 nroots rs_control 0 6706 NULL nohasharray
149129 +enable_so_gsm_control_message_fndecl_6706 gsm_control_message fndecl 4 6706 &enable_so_nroots_rs_control_6706
149130 +enable_so_do_ipv6_setsockopt_fndecl_6708 do_ipv6_setsockopt fndecl 5-0 6708 NULL nohasharray
149131 +enable_so_length_p_header80_6708 length p_header80 0 6708 &enable_so_do_ipv6_setsockopt_fndecl_6708
149132 +enable_so_raw_recvmsg_fndecl_6710 raw_recvmsg fndecl 3 6710 NULL
149133 +enable_so_sample_rate_mixart_mgr_6716 sample_rate mixart_mgr 0 6716 NULL
149134 +enable_so_ssb_sdio_block_read_fndecl_6721 ssb_sdio_block_read fndecl 3 6721 NULL
149135 +enable_so_qdisc_class_hash_alloc_fndecl_6725 qdisc_class_hash_alloc fndecl 1 6725 NULL nohasharray
149136 +enable_so_size_mvpp2_txq_pcpu_6725 size mvpp2_txq_pcpu 0 6725 &enable_so_qdisc_class_hash_alloc_fndecl_6725
149137 +enable_so_ieee_il_rate_info_6732 ieee il_rate_info 0 6732 NULL
149138 +enable_so_iova_mlx5_core_mr_6733 iova mlx5_core_mr 0 6733 NULL
149139 +enable_so_pagesize_sddr09_card_info_6735 pagesize sddr09_card_info 0 6735 NULL
149140 +enable_so_gnttab_alloc_grant_references_fndecl_6739 gnttab_alloc_grant_references fndecl 1 6739 NULL
149141 +enable_so_alloc_trace_uprobe_fndecl_6740 alloc_trace_uprobe fndecl 3 6740 NULL
149142 +enable_so__read_and_match_data_map_fndecl_6747 _read_and_match_data_map fndecl 2 6747 NULL
149143 +enable_so_rfcomm_sock_setsockopt_fndecl_6749 rfcomm_sock_setsockopt fndecl 5 6749 NULL
149144 +enable_so_openings_ahd_linux_device_6755 openings ahd_linux_device 0 6755 NULL
149145 +enable_so_alloc_size__osd_req_data_segment_6757 alloc_size _osd_req_data_segment 0 6757 NULL
149146 +enable_so_um_idi_write_fndecl_6758 um_idi_write fndecl 3 6758 NULL
149147 +enable_so_tun_opts_len_sw_flow_key_6759 tun_opts_len sw_flow_key 0 6759 NULL
149148 +enable_so_ocfs2_direct_IO_fndecl_6762 ocfs2_direct_IO fndecl 3 6762 NULL
149149 +enable_so_al_stripe_size_resize_parms_6766 al_stripe_size resize_parms 0 6766 NULL
149150 +enable_so_start_mtd_oob_buf_6767 start mtd_oob_buf 0 6767 NULL
149151 +enable_so_rx_pkt_ram_iadev_priv_6768 rx_pkt_ram iadev_priv 0 6768 NULL nohasharray
149152 +enable_so_gfs2_alloc_sort_buffer_fndecl_6768 gfs2_alloc_sort_buffer fndecl 1 6768 &enable_so_rx_pkt_ram_iadev_priv_6768
149153 +enable_so_sg_tablesize_Scsi_Host_6769 sg_tablesize Scsi_Host 0 6769 NULL
149154 +enable_so_alloc_ring_fndecl_6773 alloc_ring fndecl 2-4 6773 NULL
149155 +enable_so_dn_recvmsg_fndecl_6774 dn_recvmsg fndecl 3 6774 NULL
149156 +enable_so_ext4_readpages_fndecl_6776 ext4_readpages fndecl 4 6776 NULL
149157 +enable_so_asn_1_decode_fndecl_6777 asn_1_decode fndecl 0 6777 NULL nohasharray
149158 +enable_so_max_vals_input_dev_6777 max_vals input_dev 0 6777 &enable_so_asn_1_decode_fndecl_6777
149159 +enable_so_bio_phys_segments_fndecl_6778 bio_phys_segments fndecl 0 6778 NULL
149160 +enable_so_mmc_send_bus_test_fndecl_6782 mmc_send_bus_test fndecl 4 6782 NULL
149161 +enable_so_ecryptfs_send_message_fndecl_6785 ecryptfs_send_message fndecl 2 6785 NULL
149162 +enable_so_alloc_and_copy_string_fndecl_6786 alloc_and_copy_string fndecl 2 6786 NULL
149163 +enable_so_bio_integrity_advance_fndecl_6791 bio_integrity_advance fndecl 2 6791 NULL
149164 +enable_so_st21nfca_im_send_atr_req_fndecl_6792 st21nfca_im_send_atr_req fndecl 3 6792 NULL
149165 +enable_so_length_nbpf_desc_6795 length nbpf_desc 0 6795 NULL
149166 +enable_so_xfs_da_shrink_inode_fndecl_6796 xfs_da_shrink_inode fndecl 2 6796 NULL
149167 +enable_so_pop_tx_fndecl_6799 pop_tx fndecl 2 6799 NULL
149168 +enable_so_bankwidth_map_info_6800 bankwidth map_info 0 6800 NULL
149169 +enable_so_pfn_mlx4_uar_6801 pfn mlx4_uar 0 6801 NULL
149170 +enable_so_ctrl_dma_acm_6806 ctrl_dma acm 0 6806 NULL
149171 +enable_so_ip6ip6_err_fndecl_6807 ip6ip6_err fndecl 5 6807 NULL
149172 +enable_so_nfc_digital_allocate_device_fndecl_6810 nfc_digital_allocate_device fndecl 4 6810 NULL
149173 +enable_so_csio_mem_read_fndecl_6812 csio_mem_read fndecl 3 6812 NULL
149174 +enable_so_tx_pipe_at76_priv_6815 tx_pipe at76_priv 0 6815 NULL
149175 +enable_so_pwr_power_save_off_read_fndecl_6816 pwr_power_save_off_read fndecl 3 6816 NULL
149176 +enable_so_minor_miscdevice_6818 minor miscdevice 0 6818 NULL
149177 +enable_so_hs_rehash_bits_cfs_hash_6820 hs_rehash_bits cfs_hash 0 6820 NULL
149178 +enable_so_bfs_iget_fndecl_6821 bfs_iget fndecl 2 6821 NULL
149179 +enable_so_xlbd_reserve_minors_fndecl_6830 xlbd_reserve_minors fndecl 2-1 6830 NULL
149180 +enable_so_centre_vertically_fndecl_6833 centre_vertically fndecl 2 6833 NULL
149181 +enable_so_xfs_dialloc_ag_finobt_near_fndecl_6835 xfs_dialloc_ag_finobt_near fndecl 1 6835 NULL
149182 +enable_so_copy_page_to_iter_fndecl_6842 copy_page_to_iter fndecl 0-3 6842 NULL
149183 +enable_so_lcd_proc_write_fndecl_6844 lcd_proc_write fndecl 3 6844 NULL
149184 +enable_so_intel_framebuffer_size_for_mode_fndecl_6849 intel_framebuffer_size_for_mode fndecl 0-2 6849 NULL nohasharray
149185 +enable_so___ceph_getxattr_fndecl_6849 __ceph_getxattr fndecl 0 6849 &enable_so_intel_framebuffer_size_for_mode_fndecl_6849
149186 +enable_so_hpfs_file_fsync_fndecl_6851 hpfs_file_fsync fndecl 2-3 6851 NULL
149187 +enable_so_kclist_add_private_fndecl_6853 kclist_add_private fndecl 1-2 6853 NULL
149188 +enable_so_bg_channels_libipw_geo_6854 bg_channels libipw_geo 0 6854 NULL
149189 +enable_so_ci_role_write_fndecl_6855 ci_role_write fndecl 3 6855 NULL
149190 +enable_so_hdlc_empty_fifo_fndecl_6862 hdlc_empty_fifo fndecl 2 6862 NULL
149191 +enable_so_qib_user_sdma_num_pages_fndecl_6864 qib_user_sdma_num_pages fndecl 0 6864 NULL
149192 +enable_so_buffer_kbs_vardecl_st_c_6866 buffer_kbs vardecl_st.c 0 6866 NULL
149193 +enable_so_size_vb2_fileio_buf_6875 size vb2_fileio_buf 0 6875 NULL nohasharray
149194 +enable_so_offset_amp_assoc_6875 offset amp_assoc 0 6875 &enable_so_size_vb2_fileio_buf_6875
149195 +enable_so_xres_fb_videomode_6878 xres fb_videomode 0 6878 NULL
149196 +enable_so_nvif_device_init_fndecl_6881 nvif_device_init fndecl 6 6881 NULL
149197 +enable_so_rxbufferhandle_kaweth_device_6883 rxbufferhandle kaweth_device 0 6883 NULL
149198 +enable_so___kfifo_in_r_fndecl_6892 __kfifo_in_r fndecl 4-3 6892 NULL nohasharray
149199 +enable_so_jffs2_zlib_decompress_fndecl_6892 jffs2_zlib_decompress fndecl 3-4 6892 &enable_so___kfifo_in_r_fndecl_6892
149200 +enable_so_hpfs_bplus_lookup_fndecl_6896 hpfs_bplus_lookup fndecl 0-4 6896 NULL nohasharray
149201 +enable_so_index_mlx5_uar_6896 index mlx5_uar 0 6896 &enable_so_hpfs_bplus_lookup_fndecl_6896
149202 +enable_so_adis16136_show_serial_fndecl_6897 adis16136_show_serial fndecl 3 6897 NULL
149203 +enable_so_link_duplex_e1000_adapter_6902 link_duplex e1000_adapter 0 6902 NULL
149204 +enable_so_jfs_quota_write_fndecl_6903 jfs_quota_write fndecl 5 6903 NULL
149205 +enable_so_write_inflate_state_6907 write inflate_state 0 6907 NULL
149206 +enable_so_table_size_radeon_gart_6911 table_size radeon_gart 0 6911 NULL
149207 +enable_so_maxbufsize__isdn_driver_6917 maxbufsize _isdn_driver 0 6917 NULL
149208 +enable_so_drm_gtf_mode_complex_fndecl_6918 drm_gtf_mode_complex fndecl 3-2-4-7-9-10-8 6918 NULL
149209 +enable_so_jfs_nfs_get_inode_fndecl_6925 jfs_nfs_get_inode fndecl 2 6925 NULL
149210 +enable_so_buflen_packet_command_6926 buflen packet_command 0 6926 NULL
149211 +enable_so_multi_src_desc_6933 multi src_desc 0 6933 NULL
149212 +enable_so_nvram_pagesize_tg3_6938 nvram_pagesize tg3 0 6938 NULL
149213 +enable_so_nbytes_ide_cmd_6945 nbytes ide_cmd 0 6945 NULL
149214 +enable_so_enic_rxcopybreak_fndecl_6960 enic_rxcopybreak fndecl 4 6960 NULL
149215 +enable_so_af9013_write_ofsm_regs_fndecl_6965 af9013_write_ofsm_regs fndecl 4 6965 NULL
149216 +enable_so_ufs_free_blocks_fndecl_6968 ufs_free_blocks fndecl 3-2 6968 NULL nohasharray
149217 +enable_so_tlv_put_u64_fndecl_6968 tlv_put_u64 fndecl 0 6968 &enable_so_ufs_free_blocks_fndecl_6968
149218 +enable_so_odm_group_width_pnfs_osd_data_map_6977 odm_group_width pnfs_osd_data_map 0 6977 NULL
149219 +enable_so_mq_msg_max_ipc_namespace_6978 mq_msg_max ipc_namespace 0 6978 NULL
149220 +enable_so_pvr2_v4l2_read_fndecl_6981 pvr2_v4l2_read fndecl 3 6981 NULL
149221 +enable_so_async_set_registers_fndecl_6987 async_set_registers fndecl 3 6987 NULL
149222 +enable_so_mappable_base_i915_gtt_6993 mappable_base i915_gtt 0 6993 NULL
149223 +enable_so_sq_spare_wqes_mlx4_ib_qp_6994 sq_spare_wqes mlx4_ib_qp 0 6994 NULL
149224 +enable_so_smk_write_cipso_fndecl_6998 smk_write_cipso fndecl 3 6998 NULL
149225 +enable_so_gnttab_max_grant_frames_fndecl_7002 gnttab_max_grant_frames fndecl 0 7002 NULL
149226 +enable_so_p_start_nilfs_period_7008 p_start nilfs_period 0 7008 NULL nohasharray
149227 +enable_so___posix_lock_file_fndecl_7008 __posix_lock_file fndecl 0 7008 &enable_so_p_start_nilfs_period_7008
149228 +enable_so_s_groups_count_ext4_sb_info_7012 s_groups_count ext4_sb_info 0 7012 NULL
149229 +enable_so_ocfs2_cache_cluster_dealloc_fndecl_7016 ocfs2_cache_cluster_dealloc fndecl 3-2 7016 NULL
149230 +enable_so_attr_bytes_osdv2_attributes_list_element_7018 attr_bytes osdv2_attributes_list_element 0 7018 NULL
149231 +enable_so_channels_snd_pcm_plugin_format_7026 channels snd_pcm_plugin_format 0 7026 NULL
149232 +enable_so_virtio_gpu_alloc_object_fndecl_7030 virtio_gpu_alloc_object fndecl 2 7030 NULL
149233 +enable_so_h_sync_strt_wid_crtc_7033 h_sync_strt_wid crtc 0 7033 NULL
149234 +enable_so_fat_short2lower_uni_fndecl_7036 fat_short2lower_uni fndecl 0 7036 NULL
149235 +enable_so_mq_msg_default_ipc_namespace_7041 mq_msg_default ipc_namespace 0 7041 NULL nohasharray
149236 +enable_so_fpregs_get_fndecl_7041 fpregs_get fndecl 4 7041 &enable_so_mq_msg_default_ipc_namespace_7041
149237 +enable_so_kvm_read_guest_page_fndecl_7049 kvm_read_guest_page fndecl 2-5 7049 NULL
149238 +enable_so_iforce_send_packet_fndecl_7050 iforce_send_packet fndecl 2 7050 NULL
149239 +enable_so_srq_entry_sz_mlx4_dev_cap_7052 srq_entry_sz mlx4_dev_cap 0 7052 NULL
149240 +enable_so_SYSC_pselect6_fndecl_7055 SYSC_pselect6 fndecl 1 7055 NULL
149241 +enable_so_packet_size_usbatm_channel_7056 packet_size usbatm_channel 0 7056 NULL
149242 +enable_so___btrfs_drop_extents_fndecl_7058 __btrfs_drop_extents fndecl 6-5 7058 NULL
149243 +enable_so_cryptd_alloc_instance_fndecl_7059 cryptd_alloc_instance fndecl 3-2 7059 NULL
149244 +enable_so_dccph_doff_dccp_hdr_7060 dccph_doff dccp_hdr 0 7060 NULL nohasharray
149245 +enable_so_ddebug_proc_write_fndecl_7060 ddebug_proc_write fndecl 3 7060 &enable_so_dccph_doff_dccp_hdr_7060
149246 +enable_so_total_VFs_pci_sriov_7061 total_VFs pci_sriov 0 7061 NULL nohasharray
149247 +enable_so_buffer_size_omapfb_memory_read_7061 buffer_size omapfb_memory_read 0 7061 &enable_so_total_VFs_pci_sriov_7061
149248 +enable_so_i_dir_start_lookup_ext4_inode_info_7062 i_dir_start_lookup ext4_inode_info 0 7062 NULL
149249 +enable_so_core_tpg_set_initiator_node_queue_depth_fndecl_7063 core_tpg_set_initiator_node_queue_depth fndecl 3 7063 NULL
149250 +enable_so_jt_size_gfx_firmware_header_v1_0_7064 jt_size gfx_firmware_header_v1_0 0 7064 NULL
149251 +enable_so_zisofs_fill_pages_fndecl_7066 zisofs_fill_pages fndecl 3 7066 NULL
149252 +enable_so_lua_sysfs_read_fndecl_7069 lua_sysfs_read fndecl 6 7069 NULL
149253 +enable_so_command_hdac_bus_ops_7079 command hdac_bus_ops 0 7079 NULL
149254 +enable_so_pref_height_vmw_display_unit_7089 pref_height vmw_display_unit 0 7089 NULL nohasharray
149255 +enable_so_tot_nodes_mic_bootparam_7089 tot_nodes mic_bootparam 0 7089 &enable_so_pref_height_vmw_display_unit_7089
149256 +enable_so_rx_pending_sky2_port_7090 rx_pending sky2_port 0 7090 NULL
149257 +enable_so_get_vm_area_fndecl_7091 get_vm_area fndecl 1 7091 NULL
149258 +enable_so_dma_mt7601u_dma_buf_7098 dma mt7601u_dma_buf 0 7098 NULL
149259 +enable_so_rtl8139_change_mtu_fndecl_7099 rtl8139_change_mtu fndecl 2 7099 NULL
149260 +enable_so_mpi_alloc_fndecl_7101 mpi_alloc fndecl 1 7101 NULL
149261 +enable_so_paging32_gpte_to_gfn_lvl_fndecl_7104 paging32_gpte_to_gfn_lvl fndecl 0-2-1 7104 NULL nohasharray
149262 +enable_so_scan_ies_len_ieee80211_local_7104 scan_ies_len ieee80211_local 0 7104 &enable_so_paging32_gpte_to_gfn_lvl_fndecl_7104
149263 +enable_so_nfsd4_encode_readv_fndecl_7110 nfsd4_encode_readv fndecl 4 7110 NULL
149264 +enable_so_wil_tid_ampdu_rx_alloc_fndecl_7119 wil_tid_ampdu_rx_alloc fndecl 2 7119 NULL
149265 +enable_so_ftrace_size_ramoops_platform_data_7124 ftrace_size ramoops_platform_data 0 7124 NULL
149266 +enable_so_report_size_hid_global_7127 report_size hid_global 0 7127 NULL nohasharray
149267 +enable_so_dfs_file_read_fndecl_7127 dfs_file_read fndecl 3 7127 &enable_so_report_size_hid_global_7127
149268 +enable_so_acpi_rs_set_resource_length_fndecl_7131 acpi_rs_set_resource_length fndecl 1 7131 NULL nohasharray
149269 +enable_so_svc_getnl_fndecl_7131 svc_getnl fndecl 0 7131 &enable_so_acpi_rs_set_resource_length_fndecl_7131
149270 +enable_so_nstids_tid_info_7139 nstids tid_info 0 7139 NULL
149271 +enable_so_enable_ints_write_fndecl_7145 enable_ints_write fndecl 3 7145 NULL
149272 +enable_so_mdiobus_read_fndecl_7146 mdiobus_read fndecl 0 7146 NULL
149273 +enable_so_vc_origin_vc_data_7148 vc_origin vc_data 0 7148 NULL
149274 +enable_so_ea_secno_fnode_7151 ea_secno fnode 0 7151 NULL nohasharray
149275 +enable_so_privsize_nft_set_ops_7151 privsize nft_set_ops 0 7151 &enable_so_ea_secno_fnode_7151
149276 +enable_so_newblocks_xfs_growfs_rt_7154 newblocks xfs_growfs_rt 0 7154 NULL
149277 +enable_so_selinux_inode_setsecurity_fndecl_7159 selinux_inode_setsecurity fndecl 4 7159 NULL
149278 +enable_so_num_packets_st5481_in_7161 num_packets st5481_in 0 7161 NULL
149279 +enable_so___add_to_page_cache_locked_fndecl_7168 __add_to_page_cache_locked fndecl 0 7168 NULL
149280 +enable_so_setup_sg_fndecl_7174 setup_sg fndecl 3 7174 NULL
149281 +enable_so_get_rxfh_key_size_ethtool_ops_7178 get_rxfh_key_size ethtool_ops 0 7178 NULL
149282 +enable_so_ax88179_write_cmd_async_fndecl_7180 ax88179_write_cmd_async fndecl 5 7180 NULL
149283 +enable_so_vdisplay_moderec_7183 vdisplay moderec 0 7183 NULL nohasharray
149284 +enable_so_mfd_add_devices_fndecl_7183 mfd_add_devices fndecl 6-2-4 7183 &enable_so_vdisplay_moderec_7183
149285 +enable_so_ino_node_footer_7185 ino node_footer 0 7185 NULL
149286 +enable_so_acc_accl_accessdata_dn_7186 acc_accl accessdata_dn 0 7186 NULL
149287 +enable_so_vc_rows_vc_data_7192 vc_rows vc_data 0 7192 NULL nohasharray
149288 +enable_so___shmem_file_setup_fndecl_7192 __shmem_file_setup fndecl 2 7192 &enable_so_vc_rows_vc_data_7192 nohasharray
149289 +enable_so_btrfs_get_token_32_fndecl_7192 btrfs_get_token_32 fndecl 0 7192 &enable_so___shmem_file_setup_fndecl_7192 nohasharray
149290 +enable_so_ic_size_xlog_in_core_7192 ic_size xlog_in_core 0 7192 &enable_so_btrfs_get_token_32_fndecl_7192
149291 +enable_so_mmc_calc_max_discard_fndecl_7198 mmc_calc_max_discard fndecl 0 7198 NULL
149292 +enable_so_z_incomp_fndecl_7201 z_incomp fndecl 3 7201 NULL
149293 +enable_so_length_pnfs_layout_range_7207 length pnfs_layout_range 0 7207 NULL nohasharray
149294 +enable_so_ide_init_port_fndecl_7207 ide_init_port fndecl 2 7207 &enable_so_length_pnfs_layout_range_7207
149295 +enable_so___wa_populate_dto_urb_fndecl_7208 __wa_populate_dto_urb fndecl 4-3 7208 NULL
149296 +enable_so_size_srp_iu_7210 size srp_iu 0 7210 NULL nohasharray
149297 +enable_so_drbd_drain_block_fndecl_7210 drbd_drain_block fndecl 2 7210 &enable_so_size_srp_iu_7210
149298 +enable_so_rivafb_do_maximize_fndecl_7212 rivafb_do_maximize fndecl 3-4 7212 NULL nohasharray
149299 +enable_so_eq_ecount_lpfc_sli4_hba_7212 eq_ecount lpfc_sli4_hba 0 7212 &enable_so_rivafb_do_maximize_fndecl_7212
149300 +enable_so__iwl_dbgfs_bt_force_ant_write_fndecl_7214 _iwl_dbgfs_bt_force_ant_write fndecl 3 7214 NULL
149301 +enable_so_max_id_Scsi_Host_7217 max_id Scsi_Host 0 7217 NULL
149302 +enable_so_num_chipselect_spi_gpio_platform_data_7218 num_chipselect spi_gpio_platform_data 0 7218 NULL
149303 +enable_so_iwl_mvm_fw_dbg_collect_fndecl_7228 iwl_mvm_fw_dbg_collect fndecl 4 7228 NULL
149304 +enable_so_s_mb_last_group_ext4_sb_info_7240 s_mb_last_group ext4_sb_info 0 7240 NULL
149305 +enable_so_xfs_attr3_leaf_create_fndecl_7243 xfs_attr3_leaf_create fndecl 2 7243 NULL
149306 +enable_so_len_session_key_7253 len session_key 0 7253 NULL
149307 +enable_so_ddcb_max_ddcb_queue_7260 ddcb_max ddcb_queue 0 7260 NULL
149308 +enable_so_bpp_cobalt_stream_7263 bpp cobalt_stream 0 7263 NULL
149309 +enable_so_iscsi_recv_pdu_fndecl_7264 iscsi_recv_pdu fndecl 4 7264 NULL
149310 +enable_so_xlog_bread_fndecl_7272 xlog_bread fndecl 2 7272 NULL
149311 +enable_so_vc_saved_x_vc_data_7275 vc_saved_x vc_data 0 7275 NULL
149312 +enable_so_num_asq_entries_i40e_adminq_info_7278 num_asq_entries i40e_adminq_info 0 7278 NULL
149313 +enable_so_hsync_psb_pipe_7286 hsync psb_pipe 0 7286 NULL
149314 +enable_so_trailer_len_dst_entry_7294 trailer_len dst_entry 0 7294 NULL nohasharray
149315 +enable_so_pci_default_setup_fndecl_7294 pci_default_setup fndecl 4 7294 &enable_so_trailer_len_dst_entry_7294
149316 +enable_so_ubifs_update_one_lp_fndecl_7295 ubifs_update_one_lp fndecl 3 7295 NULL nohasharray
149317 +enable_so___copy_to_user_swizzled_fndecl_7295 __copy_to_user_swizzled fndecl 3-4 7295 &enable_so_ubifs_update_one_lp_fndecl_7295
149318 +enable_so_height_vpe_q_data_7303 height vpe_q_data 0 7303 NULL
149319 +enable_so_value_apei_exec_context_7318 value apei_exec_context 0 7318 NULL
149320 +enable_so_fdir_filter_count_ixgbe_adapter_7322 fdir_filter_count ixgbe_adapter 0 7322 NULL nohasharray
149321 +enable_so_add_frontend_dmx_demux_7322 add_frontend dmx_demux 0 7322 &enable_so_fdir_filter_count_ixgbe_adapter_7322
149322 +enable_so_bus_num_dw_pci_controller_7324 bus_num dw_pci_controller 0 7324 NULL
149323 +enable_so_generic_write_end_fndecl_7325 generic_write_end fndecl 5 7325 NULL
149324 +enable_so_len_f2fs_encrypted_symlink_data_7327 len f2fs_encrypted_symlink_data 0 7327 NULL
149325 +enable_so_wsize_inflate_state_7329 wsize inflate_state 0 7329 NULL
149326 +enable_so_control_cnt_pvr2_hdw_7335 control_cnt pvr2_hdw 0 7335 NULL
149327 +enable_so_drm_malloc_ab_fndecl_7340 drm_malloc_ab fndecl 1-2 7340 NULL
149328 +enable_so_pvr2_i2c_read_fndecl_7344 pvr2_i2c_read fndecl 4-6 7344 NULL
149329 +enable_so_sdebug_change_qdepth_fndecl_7345 sdebug_change_qdepth fndecl 2 7345 NULL
149330 +enable_so_btusb_recv_intr_fndecl_7351 btusb_recv_intr fndecl 3 7351 NULL nohasharray
149331 +enable_so_jpegqual_s2255_vc_7351 jpegqual s2255_vc 0 7351 &enable_so_btusb_recv_intr_fndecl_7351 nohasharray
149332 +enable_so_get_server_iovec_fndecl_7351 get_server_iovec fndecl 2 7351 &enable_so_jpegqual_s2255_vc_7351
149333 +enable_so_mesh_fwd_csa_frame_fndecl_7353 mesh_fwd_csa_frame fndecl 3 7353 NULL nohasharray
149334 +enable_so_calc_sq_size_fndecl_7353 calc_sq_size fndecl 0 7353 &enable_so_mesh_fwd_csa_frame_fndecl_7353
149335 +enable_so_mcp251x_spi_trans_fndecl_7356 mcp251x_spi_trans fndecl 2 7356 NULL
149336 +enable_so_dm_vcalloc_fndecl_7357 dm_vcalloc fndecl 2-1 7357 NULL
149337 +enable_so_sys_fadvise64_fndecl_7365 sys_fadvise64 fndecl 2-3 7365 NULL
149338 +enable_so_hfsplus_min_io_size_fndecl_7368 hfsplus_min_io_size fndecl 0 7368 NULL
149339 +enable_so_check_left_item_operations_7369 check_left item_operations 0 7369 NULL
149340 +enable_so_e_value_size_ext2_xattr_entry_7373 e_value_size ext2_xattr_entry 0 7373 NULL
149341 +enable_so_bufsize_pstore_info_7375 bufsize pstore_info 0 7375 NULL
149342 +enable_so_shmem_swapin_fndecl_7376 shmem_swapin fndecl 4 7376 NULL nohasharray
149343 +enable_so_scsi_mode_sense_fndecl_7376 scsi_mode_sense fndecl 5 7376 &enable_so_shmem_swapin_fndecl_7376
149344 +enable_so_c67x00_create_td_fndecl_7377 c67x00_create_td fndecl 4 7377 NULL
149345 +enable_so_region_tail_fndecl_7382 region_tail fndecl 3 7382 NULL
149346 +enable_so_amd8111e_change_mtu_fndecl_7389 amd8111e_change_mtu fndecl 2 7389 NULL
149347 +enable_so_packetsize__rbu_data_7390 packetsize _rbu_data 0 7390 NULL
149348 +enable_so_v_tot_disp_crtc_7400 v_tot_disp crtc 0 7400 NULL
149349 +enable_so_ext4_ext_zeroout_fndecl_7404 ext4_ext_zeroout fndecl 0 7404 NULL
149350 +enable_so_fw_sent_bcm203x_data_7405 fw_sent bcm203x_data 0 7405 NULL
149351 +enable_so___ip_append_data_fndecl_7411 __ip_append_data fndecl 9-8 7411 NULL
149352 +enable_so_default_value_cx88_ctrl_7412 default_value cx88_ctrl 0 7412 NULL
149353 +enable_so_htotal_psb_pipe_7415 htotal psb_pipe 0 7415 NULL nohasharray
149354 +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_htotal_psb_pipe_7415
149355 +enable_so_st_write_fndecl_7417 st_write fndecl 3 7417 NULL
149356 +enable_so_xfs_iget_fndecl_7419 xfs_iget fndecl 3 7419 NULL nohasharray
149357 +enable_so_alloc_idx_lebs_fndecl_7419 alloc_idx_lebs fndecl 2 7419 &enable_so_xfs_iget_fndecl_7419
149358 +enable_so___kfifo_peek_n_fndecl_7422 __kfifo_peek_n fndecl 0 7422 NULL
149359 +enable_so_mirror_sd_gl860_7430 mirror sd_gl860 0 7430 NULL
149360 +enable_so_residue_dma_tx_state_7432 residue dma_tx_state 0 7432 NULL nohasharray
149361 +enable_so_hdrsize_genl_family_7432 hdrsize genl_family 0 7432 &enable_so_residue_dma_tx_state_7432
149362 +enable_so_xfs_file_fsync_fndecl_7433 xfs_file_fsync fndecl 2-3 7433 NULL
149363 +enable_so_iio_device_add_event_fndecl_7439 iio_device_add_event fndecl 0 7439 NULL
149364 +enable_so_data_len_sk_buff_7447 data_len sk_buff 0 7447 NULL
149365 +enable_so_rate_ctrl_alg_read_fndecl_7449 rate_ctrl_alg_read fndecl 3 7449 NULL
149366 +enable_so_shdma_prep_memcpy_fndecl_7451 shdma_prep_memcpy fndecl 4-3 7451 NULL nohasharray
149367 +enable_so_stat_st_vardecl_drv_c_7451 stat_st vardecl_drv.c 0 7451 &enable_so_shdma_prep_memcpy_fndecl_7451
149368 +enable_so___bio_add_page_fndecl_7456 __bio_add_page fndecl 5-4-0 7456 NULL
149369 +enable_so_size_vmci_handle_arr_7457 size vmci_handle_arr 0 7457 NULL
149370 +enable_so_len_sk_buff_7460 len sk_buff 0 7460 NULL
149371 +enable_so_hpfs_alloc_sector_fndecl_7462 hpfs_alloc_sector fndecl 0-4-3-2 7462 NULL
149372 +enable_so_num_present_cpu_lpfc_sli4_hba_7465 num_present_cpu lpfc_sli4_hba 0 7465 NULL nohasharray
149373 +enable_so_cmdline_store_fndecl_7465 cmdline_store fndecl 4 7465 &enable_so_num_present_cpu_lpfc_sli4_hba_7465
149374 +enable_so_plcp_mimo2_iwl_rate_info_7466 plcp_mimo2 iwl_rate_info 0 7466 NULL
149375 +enable_so_Length__SECURITY_BUFFER_7467 Length _SECURITY_BUFFER 0 7467 NULL
149376 +enable_so_buffer_dma_ehci_qtd_7468 buffer_dma ehci_qtd 0 7468 NULL nohasharray
149377 +enable_so_minors_gigaset_driver_7468 minors gigaset_driver 0 7468 &enable_so_buffer_dma_ehci_qtd_7468
149378 +enable_so_block_to_sectors_fndecl_7472 block_to_sectors fndecl 0-2 7472 NULL
149379 +enable_so_devmem_is_allowed_fndecl_7475 devmem_is_allowed fndecl 1 7475 NULL
149380 +enable_so_ieee80211_if_read_tsf_fndecl_7479 ieee80211_if_read_tsf fndecl 3 7479 NULL
149381 +enable_so_status_c67x00_urb_priv_7480 status c67x00_urb_priv 0 7480 NULL
149382 +enable_so_mcs_rate_info_7481 mcs rate_info 0 7481 NULL
149383 +enable_so_rxrpc_server_keyring_fndecl_7484 rxrpc_server_keyring fndecl 3 7484 NULL
149384 +enable_so_f_width_fimc_frame_7488 f_width fimc_frame 0 7488 NULL nohasharray
149385 +enable_so_req_capsule_get_size_fndecl_7488 req_capsule_get_size fndecl 0 7488 &enable_so_f_width_fimc_frame_7488
149386 +enable_so_s_log_block_size_ext2_super_block_7490 s_log_block_size ext2_super_block 0 7490 NULL
149387 +enable_so_can_nice_fndecl_7498 can_nice fndecl 2 7498 NULL
149388 +enable_so_ri_lsegs_start_nilfs_recovery_info_7501 ri_lsegs_start nilfs_recovery_info 0 7501 NULL
149389 +enable_so_calculate_inocache_hashsize_fndecl_7506 calculate_inocache_hashsize fndecl 0-1 7506 NULL
149390 +enable_so_btrfs_truncate_inode_items_fndecl_7511 btrfs_truncate_inode_items fndecl 4 7511 NULL
149391 +enable_so_alloc_disk_node_fndecl_7513 alloc_disk_node fndecl 1 7513 NULL
149392 +enable_so_netlink_change_ngroups_fndecl_7514 netlink_change_ngroups fndecl 2 7514 NULL
149393 +enable_so_src_len_akcipher_request_7526 src_len akcipher_request 0 7526 NULL
149394 +enable_so_xfs_iomap_eof_want_preallocate_fndecl_7527 xfs_iomap_eof_want_preallocate fndecl 4-3 7527 NULL
149395 +enable_so_cfg_hba_queue_depth_lpfc_hba_7534 cfg_hba_queue_depth lpfc_hba 0 7534 NULL
149396 +enable_so_delta_mmap_mm_struct_7536 delta_mmap mm_struct 0 7536 NULL
149397 +enable_so_length_ndis_80211_ssid_7537 length ndis_80211_ssid 0 7537 NULL
149398 +enable_so_size_hpi_response_header_7541 size hpi_response_header 0 7541 NULL
149399 +enable_so_hd_nirqs_hpet_data_7558 hd_nirqs hpet_data 0 7558 NULL
149400 +enable_so_raid10_resize_fndecl_7562 raid10_resize fndecl 2 7562 NULL
149401 +enable_so_max_channels_snd_pcm_chmap_7565 max_channels snd_pcm_chmap 0 7565 NULL
149402 +enable_so_duplicateIXtree_fndecl_7568 duplicateIXtree fndecl 3-2 7568 NULL
149403 +enable_so_wqe_fcoe_cqe_7572 wqe fcoe_cqe 0 7572 NULL
149404 +enable_so_mISDN_sock_sendmsg_fndecl_7584 mISDN_sock_sendmsg fndecl 3 7584 NULL nohasharray
149405 +enable_so_tcp_manip_pkt_fndecl_7584 tcp_manip_pkt fndecl 4 7584 &enable_so_mISDN_sock_sendmsg_fndecl_7584
149406 +enable_so_tuple_size_blk_integrity_7585 tuple_size blk_integrity 0 7585 NULL
149407 +enable_so_count_ivtvfb_dma_frame_7586 count ivtvfb_dma_frame 0 7586 NULL
149408 +enable_so_length_sctp_chunkhdr_7587 length sctp_chunkhdr 0 7587 NULL
149409 +enable_so_ftdi_elan_edset_input_fndecl_7588 ftdi_elan_edset_input fndecl 0 7588 NULL
149410 +enable_so_lpfc_debugfs_read_fndecl_7589 lpfc_debugfs_read fndecl 3 7589 NULL
149411 +enable_so_scan_index_iio_chan_spec_7597 scan_index iio_chan_spec 0 7597 NULL
149412 +enable_so_q_blkno_xfs_dquot_7601 q_blkno xfs_dquot 0 7601 NULL
149413 +enable_so_pathmtu_sctp_transport_7603 pathmtu sctp_transport 0 7603 NULL
149414 +enable_so_fuse_listxattr_fndecl_7605 fuse_listxattr fndecl 3 7605 NULL
149415 +enable_so_pzl_urb_dequeue_fndecl_7607 pzl_urb_dequeue fndecl 3 7607 NULL
149416 +enable_so_rcvidx_w6692B_hw_7613 rcvidx w6692B_hw 0 7613 NULL
149417 +enable_so_id_hid_report_7618 id hid_report 0 7618 NULL
149418 +enable_so_drm_fb_helper_fill_var_fndecl_7619 drm_fb_helper_fill_var fndecl 4-3 7619 NULL
149419 +enable_so_physical_scrub_page_7621 physical scrub_page 0 7621 NULL
149420 +enable_so_block_udf_vds_record_7623 block udf_vds_record 0 7623 NULL
149421 +enable_so_ocfs2_free_suballoc_bits_fndecl_7627 ocfs2_free_suballoc_bits fndecl 5 7627 NULL nohasharray
149422 +enable_so_dss_feat_get_num_mgrs_fndecl_7627 dss_feat_get_num_mgrs fndecl 0 7627 &enable_so_ocfs2_free_suballoc_bits_fndecl_7627
149423 +enable_so_agp_allocate_memory_wrap_fndecl_7635 agp_allocate_memory_wrap fndecl 1 7635 NULL
149424 +enable_so_virt_to_scatterlist_fndecl_7637 virt_to_scatterlist fndecl 2 7637 NULL
149425 +enable_so_read_cable_det_adv76xx_chip_info_7641 read_cable_det adv76xx_chip_info 0 7641 NULL
149426 +enable_so_num_sge_ib_uverbs_recv_wr_7647 num_sge ib_uverbs_recv_wr 0 7647 NULL
149427 +enable_so_rd_write_section_fndecl_7649 rd_write_section fndecl 4 7649 NULL
149428 +enable_so_xpt_remotelen_svc_xprt_7655 xpt_remotelen svc_xprt 0 7655 NULL
149429 +enable_so_s_fsize_ufs_sb_private_info_7659 s_fsize ufs_sb_private_info 0 7659 NULL nohasharray
149430 +enable_so_maxwritelen_proc_data_7659 maxwritelen proc_data 0 7659 &enable_so_s_fsize_ufs_sb_private_info_7659
149431 +enable_so_brcmf_proto_bcdc_txdata_fndecl_7662 brcmf_proto_bcdc_txdata fndecl 3 7662 NULL
149432 +enable_so_to_perf_branch_entry_7663 to perf_branch_entry 0 7663 NULL
149433 +enable_so_compat_SyS_migrate_pages_fndecl_7673 compat_SyS_migrate_pages fndecl 2 7673 NULL
149434 +enable_so_rds_sendmsg_fndecl_7675 rds_sendmsg fndecl 3 7675 NULL
149435 +enable_so_nfsd_max_blksize_vardecl_7678 nfsd_max_blksize vardecl 0 7678 NULL
149436 +enable_so_shmem_read_mapping_page_gfp_fndecl_7681 shmem_read_mapping_page_gfp fndecl 2 7681 NULL
149437 +enable_so_deh_location_reiserfs_de_head_7682 deh_location reiserfs_de_head 0 7682 NULL nohasharray
149438 +enable_so_UniStrnlen_fndecl_7682 UniStrnlen fndecl 0 7682 &enable_so_deh_location_reiserfs_de_head_7682
149439 +enable_so_pm860x_page_bulk_read_fndecl_7685 pm860x_page_bulk_read fndecl 3 7685 NULL nohasharray
149440 +enable_so_l1oip_socket_send_fndecl_7685 l1oip_socket_send fndecl 7 7685 &enable_so_pm860x_page_bulk_read_fndecl_7685
149441 +enable_so_cfg80211_sme_get_conn_ies_fndecl_7687 cfg80211_sme_get_conn_ies fndecl 3 7687 NULL
149442 +enable_so_num_gpios_stmpe_7689 num_gpios stmpe 0 7689 NULL
149443 +enable_so_di_extsize_xfs_icdinode_7693 di_extsize xfs_icdinode 0 7693 NULL
149444 +enable_so_record_length_cper_record_header_7697 record_length cper_record_header 0 7697 NULL
149445 +enable_so_mxt_upload_cfg_mem_fndecl_7702 mxt_upload_cfg_mem fndecl 4 7702 NULL
149446 +enable_so_rf_cpos_ocfs2_refcount_block_7704 rf_cpos ocfs2_refcount_block 0 7704 NULL nohasharray
149447 +enable_so_hdr_len_virtio_net_hdr_7704 hdr_len virtio_net_hdr 0 7704 &enable_so_rf_cpos_ocfs2_refcount_block_7704 nohasharray
149448 +enable_so_befs_nls2utf_fndecl_7704 befs_nls2utf fndecl 3 7704 &enable_so_hdr_len_virtio_net_hdr_7704
149449 +enable_so_tx_tx_start_templates_read_fndecl_7711 tx_tx_start_templates_read fndecl 3 7711 NULL
149450 +enable_so_stride_pci_sriov_7712 stride pci_sriov 0 7712 NULL
149451 +enable_so_i915_gem_get_gtt_size_fndecl_7714 i915_gem_get_gtt_size fndecl 0-2 7714 NULL
149452 +enable_so_ceph_pool_perm_check_fndecl_7729 ceph_pool_perm_check fndecl 0 7729 NULL nohasharray
149453 +enable_so_if_ipx_offset_ipx_interface_7729 if_ipx_offset ipx_interface 0 7729 &enable_so_ceph_pool_perm_check_fndecl_7729
149454 +enable_so_get_num_rx_queues_rtnl_link_ops_7733 get_num_rx_queues rtnl_link_ops 0 7733 NULL
149455 +enable_so_access_remote_vm_fndecl_7734 access_remote_vm fndecl 4-0-2 7734 NULL nohasharray
149456 +enable_so_iwl_dbgfs_txfifo_flush_write_fndecl_7734 iwl_dbgfs_txfifo_flush_write fndecl 3 7734 &enable_so_access_remote_vm_fndecl_7734
149457 +enable_so_iscsit_find_cmd_from_itt_or_dump_fndecl_7737 iscsit_find_cmd_from_itt_or_dump fndecl 3 7737 NULL nohasharray
149458 +enable_so_driver_state_read_fndecl_7737 driver_state_read fndecl 3 7737 &enable_so_iscsit_find_cmd_from_itt_or_dump_fndecl_7737
149459 +enable_so_vxres_aty128_crtc_7753 vxres aty128_crtc 0 7753 NULL
149460 +enable_so_ide_get_best_pio_mode_fndecl_7756 ide_get_best_pio_mode fndecl 0-2-3 7756 NULL nohasharray
149461 +enable_so_mlx4_enable_sriov_fndecl_7756 mlx4_enable_sriov fndecl 4-3 7756 &enable_so_ide_get_best_pio_mode_fndecl_7756 nohasharray
149462 +enable_so_max_eq_lpfc_max_cfg_param_7756 max_eq lpfc_max_cfg_param 0 7756 &enable_so_mlx4_enable_sriov_fndecl_7756
149463 +enable_so_xfs_dir2_free_read_fndecl_7759 xfs_dir2_free_read fndecl 3 7759 NULL
149464 +enable_so_ext4_fname_crypto_alloc_buffer_fndecl_7767 ext4_fname_crypto_alloc_buffer fndecl 2 7767 NULL
149465 +enable_so_pps_devt_vardecl_pps_c_7772 pps_devt vardecl_pps.c 0 7772 NULL
149466 +enable_so_ocfs2_get_suballoc_slot_bit_fndecl_7773 ocfs2_get_suballoc_slot_bit fndecl 2 7773 NULL
149467 +enable_so_t_data_nents_orig_se_cmd_7775 t_data_nents_orig se_cmd 0 7775 NULL
149468 +enable_so_split_mem_range_fndecl_7776 split_mem_range fndecl 4-3 7776 NULL
149469 +enable_so_mode_size_cyttsp4_sysinfo_ofs_7780 mode_size cyttsp4_sysinfo_ofs 0 7780 NULL
149470 +enable_so_alloc_ep_fndecl_7782 alloc_ep fndecl 1 7782 NULL
149471 +enable_so_num_tags_nvkm_ltc_priv_7784 num_tags nvkm_ltc_priv 0 7784 NULL
149472 +enable_so_mmu_private_affs_inode_info_7785 mmu_private affs_inode_info 0 7785 NULL
149473 +enable_so_st_do_scsi_fndecl_7789 st_do_scsi fndecl 4 7789 NULL
149474 +enable_so_qxl_framebuffer_surface_dirty_fndecl_7791 qxl_framebuffer_surface_dirty fndecl 6 7791 NULL nohasharray
149475 +enable_so_pg_read_fndecl_7791 pg_read fndecl 3 7791 &enable_so_qxl_framebuffer_surface_dirty_fndecl_7791
149476 +enable_so_inode_getblk_fndecl_7794 inode_getblk fndecl 2-0 7794 NULL
149477 +enable_so___clk_speculate_rates_fndecl_7795 __clk_speculate_rates fndecl 2 7795 NULL
149478 +enable_so_remove_advertising_fndecl_7798 remove_advertising fndecl 4 7798 NULL
149479 +enable_so_error_error_frame_cts_nul_flid_read_fndecl_7805 error_error_frame_cts_nul_flid_read fndecl 3 7805 NULL
149480 +enable_so_lprocfs_read_frac_helper_fndecl_7806 lprocfs_read_frac_helper fndecl 0 7806 NULL
149481 +enable_so_qnx4_get_block_fndecl_7810 qnx4_get_block fndecl 2 7810 NULL
149482 +enable_so_cciss_max_sectors_ctlr_info_7811 cciss_max_sectors ctlr_info 0 7811 NULL nohasharray
149483 +enable_so_len_nfs_diropargs_7811 len nfs_diropargs 0 7811 &enable_so_cciss_max_sectors_ctlr_info_7811
149484 +enable_so_plen_hci_event_hdr_7815 plen hci_event_hdr 0 7815 NULL
149485 +enable_so_mb_cache_create_fndecl_7816 mb_cache_create fndecl 2 7816 NULL
149486 +enable_so_node_ino_num_f2fs_sb_info_7818 node_ino_num f2fs_sb_info 0 7818 NULL
149487 +enable_so_length_scsi_mode_data_7819 length scsi_mode_data 0 7819 NULL
149488 +enable_so_id_avail_ipack_device_7822 id_avail ipack_device 0 7822 NULL
149489 +enable_so_n_stats_ethtool_stats_7823 n_stats ethtool_stats 0 7823 NULL
149490 +enable_so_get_pipe_fndecl_7825 get_pipe fndecl 0-2 7825 NULL
149491 +enable_so_nabs_joydev_7827 nabs joydev 0 7827 NULL
149492 +enable_so_x1_virtio_gpu_framebuffer_7830 x1 virtio_gpu_framebuffer 0 7830 NULL
149493 +enable_so_minstrel_stats_read_fndecl_7833 minstrel_stats_read fndecl 3 7833 NULL
149494 +enable_so_rtpref_nfs_fsinfo_7835 rtpref nfs_fsinfo 0 7835 NULL
149495 +enable_so_nonstatic_find_mem_region_fndecl_7838 nonstatic_find_mem_region fndecl 1-2 7838 NULL nohasharray
149496 +enable_so_shadow_rd08_fndecl_7838 shadow_rd08 fndecl 2 7838 &enable_so_nonstatic_find_mem_region_fndecl_7838
149497 +enable_so_sys_truncate_fndecl_7846 sys_truncate fndecl 2 7846 NULL
149498 +enable_so_sl_datalen_nfsd4_slot_7859 sl_datalen nfsd4_slot 0 7859 NULL
149499 +enable_so_wqe_shift_mlx4_ib_wq_7860 wqe_shift mlx4_ib_wq 0 7860 NULL
149500 +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
149501 +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
149502 +enable_so_cyapa_i2c_read_fndecl_7870 cyapa_i2c_read fndecl 3 7870 NULL
149503 +enable_so_mapped_vram_mb862xxfb_par_7872 mapped_vram mb862xxfb_par 0 7872 NULL
149504 +enable_so_iscsi_tcp_dgst_header_fndecl_7878 iscsi_tcp_dgst_header fndecl 3 7878 NULL
149505 +enable_so_used_snd_ctl_elem_list_7883 used snd_ctl_elem_list 0 7883 NULL
149506 +enable_so_rxstatus_epic_rx_desc_7884 rxstatus epic_rx_desc 0 7884 NULL nohasharray
149507 +enable_so_sd_read_data_fndecl_7884 sd_read_data fndecl 3 7884 &enable_so_rxstatus_epic_rx_desc_7884 nohasharray
149508 +enable_so_freecom_readdata_fndecl_7884 freecom_readdata fndecl 3-4 7884 &enable_so_sd_read_data_fndecl_7884
149509 +enable_so_ath6kl_wmi_send_mgmt_cmd_fndecl_7888 ath6kl_wmi_send_mgmt_cmd fndecl 7-2 7888 NULL
149510 +enable_so_ieee80211_if_read_dot11MeshHWMPperrMinInterval_fndecl_7889 ieee80211_if_read_dot11MeshHWMPperrMinInterval fndecl 3 7889 NULL
149511 +enable_so_ath6kl_wmi_info_req_cmd_fndecl_7906 ath6kl_wmi_info_req_cmd fndecl 2 7906 NULL nohasharray
149512 +enable_so_vdi_size_vxfs_inode_info_7906 vdi_size vxfs_inode_info 0 7906 &enable_so_ath6kl_wmi_info_req_cmd_fndecl_7906
149513 +enable_so_mode_id_vbe_mode_ib_7913 mode_id vbe_mode_ib 0 7913 NULL
149514 +enable_so_depth_s5p_jpeg_fmt_7914 depth s5p_jpeg_fmt 0 7914 NULL
149515 +enable_so_rx_ring_size_vmxnet3_adapter_7917 rx_ring_size vmxnet3_adapter 0 7917 NULL
149516 +enable_so_ccw_bmove_fndecl_7918 ccw_bmove fndecl 5-7-3-8-6-4 7918 NULL
149517 +enable_so_uvesafb_setpalette_fndecl_7922 uvesafb_setpalette fndecl 2 7922 NULL
149518 +enable_so_raid5_size_fndecl_7933 raid5_size fndecl 0-3-2 7933 NULL
149519 +enable_so_jp_journal_size_journal_params_7943 jp_journal_size journal_params 0 7943 NULL
149520 +enable_so_psb_unlocked_ioctl_fndecl_7949 psb_unlocked_ioctl fndecl 2 7949 NULL
149521 +enable_so_jme_change_mtu_fndecl_7964 jme_change_mtu fndecl 2 7964 NULL nohasharray
149522 +enable_so_sd_start_fndecl_7964 sd_start fndecl 0 7964 &enable_so_jme_change_mtu_fndecl_7964
149523 +enable_so_squashfs_read_table_fndecl_7970 squashfs_read_table fndecl 3 7970 NULL nohasharray
149524 +enable_so_ticket_len_rxk5_key_7970 ticket_len rxk5_key 0 7970 &enable_so_squashfs_read_table_fndecl_7970
149525 +enable_so__sp2d_alloc_fndecl_7971 _sp2d_alloc fndecl 1-3-2 7971 NULL
149526 +enable_so_peb_count_ubi_device_7987 peb_count ubi_device 0 7987 NULL
149527 +enable_so_initrd_end_vardecl_7989 initrd_end vardecl 0 7989 NULL
149528 +enable_so_ip_append_data_fndecl_7997 ip_append_data fndecl 6-5 7997 NULL
149529 +enable_so_find_resource_fndecl_8013 find_resource fndecl 3 8013 NULL nohasharray
149530 +enable_so_encode_opaque_fixed_fndecl_8013 encode_opaque_fixed fndecl 3 8013 &enable_so_find_resource_fndecl_8013 nohasharray
149531 +enable_so_ocfs2_read_quota_phys_block_fndecl_8013 ocfs2_read_quota_phys_block fndecl 2 8013 &enable_so_encode_opaque_fixed_fndecl_8013
149532 +enable_so_max_mtu_mlx4_en_priv_8015 max_mtu mlx4_en_priv 0 8015 NULL
149533 +enable_so_svcxdr_dupstr_fndecl_8016 svcxdr_dupstr fndecl 3 8016 NULL
149534 +enable_so_keyctl_instantiate_key_iov_fndecl_8026 keyctl_instantiate_key_iov fndecl 3 8026 NULL
149535 +enable_so_period_size_snd_pcm_runtime_8027 period_size snd_pcm_runtime 0 8027 NULL
149536 +enable_so_length_e1000_rx_desc_8032 length e1000_rx_desc 0 8032 NULL
149537 +enable_so_mcast_mtu_ipoib_dev_priv_8033 mcast_mtu ipoib_dev_priv 0 8033 NULL
149538 +enable_so_gtt_base_align_radeon_mc_8035 gtt_base_align radeon_mc 0 8035 NULL
149539 +enable_so_vbi_width_au0828_dev_8038 vbi_width au0828_dev 0 8038 NULL
149540 +enable_so_size_nvkm_fifo_chan_8052 size nvkm_fifo_chan 0 8052 NULL
149541 +enable_so_ieee80211_tdls_build_mgmt_packet_data_fndecl_8053 ieee80211_tdls_build_mgmt_packet_data fndecl 8 8053 NULL
149542 +enable_so_pd_handles_sz_MPT3SAS_ADAPTER_8057 pd_handles_sz MPT3SAS_ADAPTER 0 8057 NULL
149543 +enable_so_mmio_megabytes_vmbus_channel_offer_8058 mmio_megabytes vmbus_channel_offer 0 8058 NULL nohasharray
149544 +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
149545 +enable_so_ceph_read_dir_fndecl_8062 ceph_read_dir fndecl 3 8062 NULL
149546 +enable_so_btrfs_unlink_inode_fndecl_8064 btrfs_unlink_inode fndecl 6 8064 NULL
149547 +enable_so_jffs2_trusted_setxattr_fndecl_8075 jffs2_trusted_setxattr fndecl 4 8075 NULL
149548 +enable_so_savage_map_video_fndecl_8078 savage_map_video fndecl 2 8078 NULL
149549 +enable_so_encode_string_fndecl_8079 encode_string fndecl 2 8079 NULL
149550 +enable_so_copy_counters_to_user_fndecl_8080 copy_counters_to_user fndecl 5 8080 NULL
149551 +enable_so_out_pipe_usbtest_dev_8085 out_pipe usbtest_dev 0 8085 NULL
149552 +enable_so_length_packet_8086 length packet 0 8086 NULL
149553 +enable_so_lpt_lnum_bits_ubifs_info_8094 lpt_lnum_bits ubifs_info 0 8094 NULL
149554 +enable_so_ali1535_smba_vardecl_i2c_ali1535_c_8095 ali1535_smba vardecl_i2c-ali1535.c 0 8095 NULL
149555 +enable_so_sd_complete_frame_fndecl_8096 sd_complete_frame fndecl 3 8096 NULL
149556 +enable_so_dvb_dvr_read_fndecl_8098 dvb_dvr_read fndecl 3 8098 NULL nohasharray
149557 +enable_so_batchcount_kmem_cache_8098 batchcount kmem_cache 0 8098 &enable_so_dvb_dvr_read_fndecl_8098
149558 +enable_so_sddr55_read_data_fndecl_8099 sddr55_read_data fndecl 4-3 8099 NULL
149559 +enable_so_simple_transaction_read_fndecl_8103 simple_transaction_read fndecl 3 8103 NULL
149560 +enable_so_ext4_end_io_dio_fndecl_8107 ext4_end_io_dio fndecl 2-3 8107 NULL
149561 +enable_so_tgt_count_blogic_adapter_8109 tgt_count blogic_adapter 0 8109 NULL
149562 +enable_so_acpi_ut_get_resource_header_length_fndecl_8110 acpi_ut_get_resource_header_length fndecl 0 8110 NULL
149563 +enable_so_a8293_rd_fndecl_8111 a8293_rd fndecl 3 8111 NULL
149564 +enable_so_speed_channel_8113 speed channel 0 8113 NULL
149565 +enable_so_up_dnode_8116 up dnode 0 8116 NULL
149566 +enable_so___copy_user_nocache_fndecl_8122 __copy_user_nocache fndecl 0 8122 NULL
149567 +enable_so_m_pblk_f2fs_map_blocks_8129 m_pblk f2fs_map_blocks 0 8129 NULL
149568 +enable_so_jffs2_scan_inode_node_fndecl_8132 jffs2_scan_inode_node fndecl 4 8132 NULL
149569 +enable_so_cfg_size_pci_dev_8134 cfg_size pci_dev 0 8134 NULL
149570 +enable_so_wpa_ie_len_libipw_network_8137 wpa_ie_len libipw_network 0 8137 NULL nohasharray
149571 +enable_so_write_mem_fndecl_8137 write_mem fndecl 3 8137 &enable_so_wpa_ie_len_libipw_network_8137 nohasharray
149572 +enable_so_ucNumDPMLevels__ATOM_PPLIB_STATE_V2_8137 ucNumDPMLevels _ATOM_PPLIB_STATE_V2 0 8137 &enable_so_write_mem_fndecl_8137
149573 +enable_so_max_xmit_dlength_iscsi_conn_8139 max_xmit_dlength iscsi_conn 0 8139 NULL nohasharray
149574 +enable_so_nct6683_find_fndecl_8139 nct6683_find fndecl 0 8139 &enable_so_max_xmit_dlength_iscsi_conn_8139
149575 +enable_so_iic_tpm_write_long_fndecl_8143 iic_tpm_write_long fndecl 3 8143 NULL
149576 +enable_so_port_cnt_ipath_portdata_8144 port_cnt ipath_portdata 0 8144 NULL
149577 +enable_so_entry_length_fndecl_8150 entry_length fndecl 0 8150 NULL
149578 +enable_so_sys_preadv_fndecl_8159 sys_preadv fndecl 3 8159 NULL
149579 +enable_so_hr_start_block_o2hb_region_8162 hr_start_block o2hb_region 0 8162 NULL
149580 +enable_so_num_custom_params_pinctrl_desc_8163 num_custom_params pinctrl_desc 0 8163 NULL nohasharray
149581 +enable_so_fuse_direct_IO_fndecl_8163 fuse_direct_IO fndecl 3 8163 &enable_so_num_custom_params_pinctrl_desc_8163
149582 +enable_so_devnum_denali_nand_info_8164 devnum denali_nand_info 0 8164 NULL nohasharray
149583 +enable_so_read_len_ddb_flashio_8164 read_len ddb_flashio 0 8164 &enable_so_devnum_denali_nand_info_8164
149584 +enable_so_tx_ring_count_igb_adapter_8171 tx_ring_count igb_adapter 0 8171 NULL
149585 +enable_so_jumpshot_write_data_fndecl_8172 jumpshot_write_data fndecl 4 8172 NULL
149586 +enable_so_blksz_mmc_data_8174 blksz mmc_data 0 8174 NULL nohasharray
149587 +enable_so_ptr_mask_efx_tx_queue_8174 ptr_mask efx_tx_queue 0 8174 &enable_so_blksz_mmc_data_8174
149588 +enable_so_avail_ubifs_wbuf_8176 avail ubifs_wbuf 0 8176 NULL
149589 +enable_so_pdu_read_fndecl_8183 pdu_read fndecl 3 8183 NULL
149590 +enable_so_nsftids_tid_info_8187 nsftids tid_info 0 8187 NULL
149591 +enable_so_brcms_c_get_header_len_fndecl_8189 brcms_c_get_header_len fndecl 0 8189 NULL
149592 +enable_so_resource_alignment_fndecl_8199 resource_alignment fndecl 0 8199 NULL
149593 +enable_so_sci_dma_rx_push_fndecl_8206 sci_dma_rx_push fndecl 2 8206 NULL
149594 +enable_so_tx_ring_count_fm10k_intfc_8210 tx_ring_count fm10k_intfc 0 8210 NULL
149595 +enable_so_mmap_size_kioctx_8213 mmap_size kioctx 0 8213 NULL
149596 +enable_so_clear_extent_bit_fndecl_8215 clear_extent_bit fndecl 2-3 8215 NULL nohasharray
149597 +enable_so_pci_scan_bus_fndecl_8215 pci_scan_bus fndecl 1 8215 &enable_so_clear_extent_bit_fndecl_8215
149598 +enable_so_be_f_offset_pnfs_block_extent_8222 be_f_offset pnfs_block_extent 0 8222 NULL
149599 +enable_so_eeprom_size_iwl_base_params_8231 eeprom_size iwl_base_params 0 8231 NULL
149600 +enable_so_SYSC_llistxattr_fndecl_8238 SYSC_llistxattr fndecl 3 8238 NULL
149601 +enable_so_ocfs2_remove_extent_fndecl_8243 ocfs2_remove_extent fndecl 4-3 8243 NULL
149602 +enable_so_stk_read_fndecl_8245 stk_read fndecl 3 8245 NULL
149603 +enable_so_num_tasks_per_conn_iscsi_kwqe_init1_8249 num_tasks_per_conn iscsi_kwqe_init1 0 8249 NULL
149604 +enable_so_sys_sched_setaffinity_fndecl_8253 sys_sched_setaffinity fndecl 2 8253 NULL
149605 +enable_so_vmw_cursor_update_dmabuf_fndecl_8254 vmw_cursor_update_dmabuf fndecl 4-3 8254 NULL
149606 +enable_so_default_erasesize_fndecl_8255 default_erasesize fndecl 0 8255 NULL
149607 +enable_so_num_alloc_vsi_i40e_pf_8259 num_alloc_vsi i40e_pf 0 8259 NULL
149608 +enable_so_buf_size_ispstat_buffer_8262 buf_size ispstat_buffer 0 8262 NULL
149609 +enable_so_datablkcnt_capi_register_params_8263 datablkcnt capi_register_params 0 8263 NULL
149610 +enable_so_cow_file_range_inline_fndecl_8264 cow_file_range_inline fndecl 4-3 8264 NULL
149611 +enable_so_datablklen_capi_register_params_8275 datablklen capi_register_params 0 8275 NULL nohasharray
149612 +enable_so_proc_scsi_devinfo_write_fndecl_8275 proc_scsi_devinfo_write fndecl 3 8275 &enable_so_datablklen_capi_register_params_8275
149613 +enable_so_cdc_ncm_check_tx_max_fndecl_8278 cdc_ncm_check_tx_max fndecl 0-2 8278 NULL
149614 +enable_so_streams_mcs_group_8279 streams mcs_group 0 8279 NULL
149615 +enable_so_msg_len_rndis_message_8281 msg_len rndis_message 0 8281 NULL
149616 +enable_so___sg_free_table_fndecl_8283 __sg_free_table fndecl 2 8283 NULL
149617 +enable_so_tail_len_cfg80211_beacon_data_8293 tail_len cfg80211_beacon_data 0 8293 NULL
149618 +enable_so_ns_blocks_per_segment_the_nilfs_8295 ns_blocks_per_segment the_nilfs 0 8295 NULL
149619 +enable_so_c_data_len_pvr2_ioread_8300 c_data_len pvr2_ioread 0 8300 NULL
149620 +enable_so_ath6kl_fwlog_read_fndecl_8310 ath6kl_fwlog_read fndecl 3 8310 NULL
149621 +enable_so_ipath_rcvtidcnt_ipath_devdata_8311 ipath_rcvtidcnt ipath_devdata 0 8311 NULL
149622 +enable_so_wil_read_file_recovery_fndecl_8315 wil_read_file_recovery fndecl 3 8315 NULL
149623 +enable_so_max_data_size_ircomm_tty_cb_8316 max_data_size ircomm_tty_cb 0 8316 NULL nohasharray
149624 +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
149625 +enable_so_depth_vim2m_fmt_8319 depth vim2m_fmt 0 8319 NULL
149626 +enable_so_sv_max_payload_svc_serv_8322 sv_max_payload svc_serv 0 8322 NULL
149627 +enable_so_vga_video_font_height_vardecl_vgacon_c_8324 vga_video_font_height vardecl_vgacon.c 0 8324 NULL
149628 +enable_so_xfs_bmap_longest_free_extent_fndecl_8327 xfs_bmap_longest_free_extent fndecl 2 8327 NULL
149629 +enable_so_vhci_urb_dequeue_fndecl_8333 vhci_urb_dequeue fndecl 3 8333 NULL
149630 +enable_so_disks_stripe_head_8349 disks stripe_head 0 8349 NULL
149631 +enable_so_ch_do_scsi_fndecl_8353 ch_do_scsi fndecl 5 8353 NULL nohasharray
149632 +enable_so_req_pay_size_qlcnic_bc_trans_8353 req_pay_size qlcnic_bc_trans 0 8353 &enable_so_ch_do_scsi_fndecl_8353
149633 +enable_so_rx_size_i2400mu_8374 rx_size i2400mu 0 8374 NULL nohasharray
149634 +enable_so_venus_link_fndecl_8374 venus_link fndecl 5 8374 &enable_so_rx_size_i2400mu_8374
149635 +enable_so_height_deinterlace_q_data_8376 height deinterlace_q_data 0 8376 NULL nohasharray
149636 +enable_so_afs_lookup_filldir_fndecl_8376 afs_lookup_filldir fndecl 5 8376 &enable_so_height_deinterlace_q_data_8376
149637 +enable_so_do_writepages_fndecl_8382 do_writepages fndecl 0 8382 NULL
149638 +enable_so_current_read_offset_scif_rb_8387 current_read_offset scif_rb 0 8387 NULL
149639 +enable_so_riva_get_cmap_len_fndecl_8393 riva_get_cmap_len fndecl 0 8393 NULL
149640 +enable_so_depth_tc_sfq_qopt_v1_8394 depth tc_sfq_qopt_v1 0 8394 NULL
149641 +enable_so_ceph_pagelist_append_fndecl_8397 ceph_pagelist_append fndecl 3 8397 NULL
149642 +enable_so_wusb_ccm_mac_fndecl_8404 wusb_ccm_mac fndecl 7 8404 NULL
149643 +enable_so_del_ptr_fndecl_8406 del_ptr fndecl 4 8406 NULL
149644 +enable_so_pkt_size_data_cmd_8407 pkt_size data_cmd 0 8407 NULL
149645 +enable_so_bitrate_snd_at73c213_8409 bitrate snd_at73c213 0 8409 NULL
149646 +enable_so_wNdpOutPayloadRemainder_usb_cdc_ncm_ntb_parameters_8415 wNdpOutPayloadRemainder usb_cdc_ncm_ntb_parameters 0 8415 NULL
149647 +enable_so_ring_blocks_vxge_hw_ring_config_8417 ring_blocks vxge_hw_ring_config 0 8417 NULL nohasharray
149648 +enable_so_lbs_lowrssi_read_fndecl_8417 lbs_lowrssi_read fndecl 3 8417 &enable_so_ring_blocks_vxge_hw_ring_config_8417
149649 +enable_so_i_ino_inode_8428 i_ino inode 0 8428 NULL
149650 +enable_so_key_mgmt_orinoco_private_8430 key_mgmt orinoco_private 0 8430 NULL
149651 +enable_so_meson_clk_init_fndecl_8435 meson_clk_init fndecl 2 8435 NULL
149652 +enable_so_block_dm_buffer_8440 block dm_buffer 0 8440 NULL
149653 +enable_so_offset_l2tp_session_8443 offset l2tp_session 0 8443 NULL
149654 +enable_so_frame_size_tlan_list_8446 frame_size tlan_list 0 8446 NULL
149655 +enable_so_ql_process_mac_split_rx_intr_fndecl_8452 ql_process_mac_split_rx_intr fndecl 4 8452 NULL nohasharray
149656 +enable_so_len_scifioctl_msg_8452 len scifioctl_msg 0 8452 &enable_so_ql_process_mac_split_rx_intr_fndecl_8452
149657 +enable_so_SyS_lsetxattr_fndecl_8453 SyS_lsetxattr fndecl 4 8453 NULL
149658 +enable_so_parport_pc_probe_port_fndecl_8454 parport_pc_probe_port fndecl 1 8454 NULL
149659 +enable_so_pagepool_size_gf100_grctx_oclass_8459 pagepool_size gf100_grctx_oclass 0 8459 NULL
149660 +enable_so_extra_bytes_asc_q_done_info_8460 extra_bytes asc_q_done_info 0 8460 NULL
149661 +enable_so_sg_off_isert_data_buf_8466 sg_off isert_data_buf 0 8466 NULL
149662 +enable_so_free_enic_rfs_flw_tbl_8469 free enic_rfs_flw_tbl 0 8469 NULL
149663 +enable_so_drm_gem_create_mmap_offset_size_fndecl_8471 drm_gem_create_mmap_offset_size fndecl 2 8471 NULL nohasharray
149664 +enable_so_shmem_truncate_range_fndecl_8471 shmem_truncate_range fndecl 2-3 8471 &enable_so_drm_gem_create_mmap_offset_size_fndecl_8471
149665 +enable_so_lbytes_tree_balance_8472 lbytes tree_balance 0 8472 NULL
149666 +enable_so_bpp_plane0_bdisp_fmt_8473 bpp_plane0 bdisp_fmt 0 8473 NULL
149667 +enable_so_snd_seq_device_new_fndecl_8474 snd_seq_device_new fndecl 4 8474 NULL
149668 +enable_so_screen_size_fb_info_8480 screen_size fb_info 0 8480 NULL
149669 +enable_so_length_btrfs_bio_stripe_8481 length btrfs_bio_stripe 0 8481 NULL
149670 +enable_so_i915_gem_get_gtt_alignment_fndecl_8484 i915_gem_get_gtt_alignment fndecl 2 8484 NULL
149671 +enable_so_mt76_ampdu_action_fndecl_8487 mt76_ampdu_action fndecl 5 8487 NULL nohasharray
149672 +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
149673 +enable_so_ecryptfs_send_message_locked_fndecl_8490 ecryptfs_send_message_locked fndecl 2 8490 NULL
149674 +enable_so_get_count_order_fndecl_8491 get_count_order fndecl 0 8491 NULL
149675 +enable_so_data_size_ipmi_smi_msg_8493 data_size ipmi_smi_msg 0 8493 NULL
149676 +enable_so_data_write_fndecl_8494 data_write fndecl 3 8494 NULL
149677 +enable_so_isr_rx_procs_read_fndecl_8495 isr_rx_procs_read fndecl 3 8495 NULL
149678 +enable_so_vmw_gmr2_bind_fndecl_8503 vmw_gmr2_bind fndecl 3 8503 NULL
149679 +enable_so_id_da903x_subdev_info_8507 id da903x_subdev_info 0 8507 NULL
149680 +enable_so_usblp_cache_device_id_string_fndecl_8509 usblp_cache_device_id_string fndecl 0 8509 NULL
149681 +enable_so_dy_fb_copyarea_8510 dy fb_copyarea 0 8510 NULL
149682 +enable_so_num_processors_vardecl_8512 num_processors vardecl 0 8512 NULL
149683 +enable_so_follows_u132_command_8527 follows u132_command 0 8527 NULL
149684 +enable_so_alloc_blksz_shift_hfsplus_sb_info_8530 alloc_blksz_shift hfsplus_sb_info 0 8530 NULL
149685 +enable_so_strnlen_user_fndecl_8532 strnlen_user fndecl 0-2 8532 NULL
149686 +enable_so_overlay_out_left_vivid_dev_8540 overlay_out_left vivid_dev 0 8540 NULL
149687 +enable_so_logfs_seek_data_fndecl_8541 logfs_seek_data fndecl 2-0 8541 NULL nohasharray
149688 +enable_so_limit_kmem_cache_8541 limit kmem_cache 0 8541 &enable_so_logfs_seek_data_fndecl_8541
149689 +enable_so_num_gfx_vgastate_8542 num_gfx vgastate 0 8542 NULL
149690 +enable_so_fuse_dir_fsync_fndecl_8543 fuse_dir_fsync fndecl 2-3 8543 NULL
149691 +enable_so_sysminor_aoedev_8549 sysminor aoedev 0 8549 NULL
149692 +enable_so_vfront_porch_videomode_8550 vfront_porch videomode 0 8550 NULL nohasharray
149693 +enable_so_memsize_vardecl_tridentfb_c_8550 memsize vardecl_tridentfb.c 0 8550 &enable_so_vfront_porch_videomode_8550
149694 +enable_so_mailbox_add_intel_sst_drv_8554 mailbox_add intel_sst_drv 0 8554 NULL
149695 +enable_so_SyS_ppoll_fndecl_8572 SyS_ppoll fndecl 2 8572 NULL
149696 +enable_so_clone_bio_fndecl_8573 clone_bio fndecl 4-3 8573 NULL
149697 +enable_so_len_vmxnet3_rx_buf_info_8575 len vmxnet3_rx_buf_info 0 8575 NULL nohasharray
149698 +enable_so_mlx5_ib_update_mtt_fndecl_8575 mlx5_ib_update_mtt fndecl 3-2 8575 &enable_so_len_vmxnet3_rx_buf_info_8575
149699 +enable_so_num_module_param_attrs_8584 num module_param_attrs 0 8584 NULL
149700 +enable_so_max_request_size_brcmf_sdio_dev_8586 max_request_size brcmf_sdio_dev 0 8586 NULL
149701 +enable_so_ddb_output_write_fndecl_8589 ddb_output_write fndecl 3-0 8589 NULL
149702 +enable_so_height_efifb_dmi_info_8596 height efifb_dmi_info 0 8596 NULL nohasharray
149703 +enable_so_gss_unwrap_kerberos_v2_fndecl_8596 gss_unwrap_kerberos_v2 fndecl 2 8596 &enable_so_height_efifb_dmi_info_8596
149704 +enable_so_iwl_dbgfs_disable_ht40_write_fndecl_8599 iwl_dbgfs_disable_ht40_write fndecl 3 8599 NULL
149705 +enable_so_drm_mode_crtc_set_gamma_size_fndecl_8602 drm_mode_crtc_set_gamma_size fndecl 2 8602 NULL
149706 +enable_so_dvb_ringbuffer_free_fndecl_8603 dvb_ringbuffer_free fndecl 0 8603 NULL
149707 +enable_so_size_hw_bank_8604 size hw_bank 0 8604 NULL
149708 +enable_so_uar_scratch_entry_sz_mthca_dev_lim_8606 uar_scratch_entry_sz mthca_dev_lim 0 8606 NULL
149709 +enable_so_hw_token_fusbh200_qh_hw_8607 hw_token fusbh200_qh_hw 0 8607 NULL
149710 +enable_so_seq_buf_commit_fndecl_8608 seq_buf_commit fndecl 2 8608 NULL
149711 +enable_so_irq_spi_device_8610 irq spi_device 0 8610 NULL
149712 +enable_so_kmem_alloc_fndecl_8611 kmem_alloc fndecl 1 8611 NULL
149713 +enable_so_transfer_size_fndecl_8623 transfer_size fndecl 0-1-2-3 8623 NULL
149714 +enable_so_xattr_permission_fndecl_8624 xattr_permission fndecl 0 8624 NULL
149715 +enable_so_new_dir_fndecl_8636 new_dir fndecl 3 8636 NULL
149716 +enable_so_in_height_sh_vou_geometry_8644 in_height sh_vou_geometry 0 8644 NULL
149717 +enable_so_block_size_cache_args_8648 block_size cache_args 0 8648 NULL
149718 +enable_so_e_value_offs_ext4_xattr_entry_8650 e_value_offs ext4_xattr_entry 0 8650 NULL
149719 +enable_so_xfs_bmap_worst_indlen_fndecl_8651 xfs_bmap_worst_indlen fndecl 0 8651 NULL
149720 +enable_so_truncate_size_ceph_mds_reply_inode_8652 truncate_size ceph_mds_reply_inode 0 8652 NULL
149721 +enable_so_copy_from_user_toio_fndecl_8653 copy_from_user_toio fndecl 3 8653 NULL
149722 +enable_so_vmcore_size_vardecl_vmcore_c_8660 vmcore_size vardecl_vmcore.c 0 8660 NULL
149723 +enable_so_read_mem_fndecl_8661 read_mem fndecl 3 8661 NULL
149724 +enable_so_SYSC_sethostname_fndecl_8663 SYSC_sethostname fndecl 2 8663 NULL
149725 +enable_so_vbi_end_bttv_8666 vbi_end bttv 0 8666 NULL
149726 +enable_so_ext4_zero_range_fndecl_8667 ext4_zero_range fndecl 2-3 8667 NULL
149727 +enable_so_reserve_pfn_range_fndecl_8670 reserve_pfn_range fndecl 1-2 8670 NULL
149728 +enable_so_vb2_write_fndecl_8671 vb2_write fndecl 3 8671 NULL
149729 +enable_so_len_ipath_diag_xpkt_8673 len ipath_diag_xpkt 0 8673 NULL
149730 +enable_so_write_data_done_iscsi_cmd_8676 write_data_done iscsi_cmd 0 8676 NULL
149731 +enable_so_aml_offset_acpi_rsconvert_info_8678 aml_offset acpi_rsconvert_info 0 8678 NULL
149732 +enable_so_lustre_acl_xattr_merge2posix_fndecl_8683 lustre_acl_xattr_merge2posix fndecl 2 8683 NULL
149733 +enable_so_status_whc_urb_8685 status whc_urb 0 8685 NULL
149734 +enable_so_end_data_prctl_mm_map_8687 end_data prctl_mm_map 0 8687 NULL
149735 +enable_so_mtd_add_partition_fndecl_8688 mtd_add_partition fndecl 3 8688 NULL
149736 +enable_so_env_start_mm_struct_8690 env_start mm_struct 0 8690 NULL
149737 +enable_so_mpeglines_vardecl_cx231xx_417_c_8691 mpeglines vardecl_cx231xx-417.c 0 8691 NULL nohasharray
149738 +enable_so_b_out_mon_reader_bin_8691 b_out mon_reader_bin 0 8691 &enable_so_mpeglines_vardecl_cx231xx_417_c_8691
149739 +enable_so_blk_mq_update_nr_requests_fndecl_8694 blk_mq_update_nr_requests fndecl 2 8694 NULL nohasharray
149740 +enable_so_data_width_stedma40_half_channel_info_8694 data_width stedma40_half_channel_info 0 8694 &enable_so_blk_mq_update_nr_requests_fndecl_8694
149741 +enable_so_NumEraseUnits_erase_unit_header_t_8696 NumEraseUnits erase_unit_header_t 0 8696 NULL
149742 +enable_so_ebcnt_vardecl_readtest_c_8699 ebcnt vardecl_readtest.c 0 8699 NULL
149743 +enable_so_iblock_execute_rw_fndecl_8701 iblock_execute_rw fndecl 3 8701 NULL
149744 +enable_so_ilo_read_fndecl_8704 ilo_read fndecl 3 8704 NULL
149745 +enable_so_hpfs_prefetch_sectors_fndecl_8708 hpfs_prefetch_sectors fndecl 2 8708 NULL
149746 +enable_so_rx_buf_sz_sh_eth_private_8709 rx_buf_sz sh_eth_private 0 8709 NULL nohasharray
149747 +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
149748 +enable_so_out_ptr_mdc800_data_8709 out_ptr mdc800_data 0 8709 &enable_so_max_unmap_blocks_scsi_disk_8709
149749 +enable_so_ieee80211_if_read_estab_plinks_fndecl_8710 ieee80211_if_read_estab_plinks fndecl 3 8710 NULL
149750 +enable_so_ieee80211_send_auth_fndecl_8716 ieee80211_send_auth fndecl 6 8716 NULL
149751 +enable_so_inode_number_squashfs_dir_header_8723 inode_number squashfs_dir_header 0 8723 NULL
149752 +enable_so_iram_end_intel_sst_drv_8725 iram_end intel_sst_drv 0 8725 NULL
149753 +enable_so_qsfp_read_fndecl_8729 qsfp_read fndecl 2-4-0 8729 NULL
149754 +enable_so_read_hdlc_status_fritz_adapter_8730 read_hdlc_status fritz_adapter 0 8730 NULL nohasharray
149755 +enable_so_disconnect_fndecl_8730 disconnect fndecl 4 8730 &enable_so_read_hdlc_status_fritz_adapter_8730
149756 +enable_so_ext_param_page_length_nand_onfi_params_8736 ext_param_page_length nand_onfi_params 0 8736 NULL
149757 +enable_so___blockdev_direct_IO_fndecl_8738 __blockdev_direct_IO fndecl 5-0 8738 NULL
149758 +enable_so_size_kmem_cache_8740 size kmem_cache 0 8740 NULL
149759 +enable_so_osc_iocontrol_fndecl_8742 osc_iocontrol fndecl 3 8742 NULL
149760 +enable_so_fd_execute_unmap_fndecl_8745 fd_execute_unmap fndecl 3-2 8745 NULL
149761 +enable_so_perf_ustack_task_size_fndecl_8746 perf_ustack_task_size fndecl 0 8746 NULL
149762 +enable_so___vlan_add_fndecl_8748 __vlan_add fndecl 2 8748 NULL
149763 +enable_so_btrfs_double_extent_lock_fndecl_8752 btrfs_double_extent_lock fndecl 5-4-2 8752 NULL
149764 +enable_so__netlbl_catmap_getnode_fndecl_8754 _netlbl_catmap_getnode fndecl 2 8754 NULL
149765 +enable_so_my_skb_align_fndecl_8755 my_skb_align fndecl 2 8755 NULL
149766 +enable_so_format_devstat_counter_fndecl_8757 format_devstat_counter fndecl 3 8757 NULL
149767 +enable_so_snd_pcm_hw_param_set_fndecl_8761 snd_pcm_hw_param_set fndecl 4 8761 NULL
149768 +enable_so_length_acpi_nfit_system_address_8762 length acpi_nfit_system_address 0 8762 NULL
149769 +enable_so_max_swap_info_struct_8767 max swap_info_struct 0 8767 NULL
149770 +enable_so_read_file_beacon_fndecl_8768 read_file_beacon fndecl 3 8768 NULL nohasharray
149771 +enable_so_max_pfn_radeon_vm_manager_8768 max_pfn radeon_vm_manager 0 8768 &enable_so_read_file_beacon_fndecl_8768
149772 +enable_so_ieee80211_if_read_dropped_frames_congestion_fndecl_8776 ieee80211_if_read_dropped_frames_congestion fndecl 3 8776 NULL
149773 +enable_so_gfs2_adjust_quota_fndecl_8777 gfs2_adjust_quota fndecl 2 8777 NULL
149774 +enable_so_data_dma_powermate_device_8783 data_dma powermate_device 0 8783 NULL
149775 +enable_so_rx_tr_cfv_info_8786 rx_tr cfv_info 0 8786 NULL nohasharray
149776 +enable_so___pg_advance_sg_page_iter_8786 __pg_advance sg_page_iter 0 8786 &enable_so_rx_tr_cfv_info_8786
149777 +enable_so_nfs_setup_write_request_fndecl_8793 nfs_setup_write_request fndecl 3-4 8793 NULL nohasharray
149778 +enable_so_mem_swapout_entry_fndecl_8793 mem_swapout_entry fndecl 3 8793 &enable_so_nfs_setup_write_request_fndecl_8793
149779 +enable_so_lcd_vblank_len_atyfb_par_8796 lcd_vblank_len atyfb_par 0 8796 NULL
149780 +enable_so_logic_start_scrub_parity_8798 logic_start scrub_parity 0 8798 NULL nohasharray
149781 +enable_so_pipeline_tcp_tx_stat_fifo_int_read_fndecl_8798 pipeline_tcp_tx_stat_fifo_int_read fndecl 3 8798 &enable_so_logic_start_scrub_parity_8798
149782 +enable_so_write_ext_msg_fndecl_8804 write_ext_msg fndecl 3 8804 NULL
149783 +enable_so_amdgpu_gart_size_vardecl_8805 amdgpu_gart_size vardecl 0 8805 NULL
149784 +enable_so_info3_wmi_data_hdr_8808 info3 wmi_data_hdr 0 8808 NULL
149785 +enable_so_cfg80211_roamed_fndecl_8811 cfg80211_roamed fndecl 5-7 8811 NULL
149786 +enable_so_nilfs_cpfile_get_checkpoint_fndecl_8812 nilfs_cpfile_get_checkpoint fndecl 2 8812 NULL
149787 +enable_so_ieee80211_hdrlen_fndecl_8814 ieee80211_hdrlen fndecl 0 8814 NULL
149788 +enable_so_dma_alloc_pages_fndecl_8819 dma_alloc_pages fndecl 3 8819 NULL nohasharray
149789 +enable_so_sys_set_mempolicy_fndecl_8819 sys_set_mempolicy fndecl 3 8819 &enable_so_dma_alloc_pages_fndecl_8819
149790 +enable_so_dma_buf_mmap_fndecl_8825 dma_buf_mmap fndecl 3 8825 NULL
149791 +enable_so_buflow_ring_desc_ex_8829 buflow ring_desc_ex 0 8829 NULL
149792 +enable_so_vsync_len_videomode_8830 vsync_len videomode 0 8830 NULL
149793 +enable_so_wm5110_set_fll_fndecl_8841 wm5110_set_fll fndecl 5 8841 NULL
149794 +enable_so_iscsi_tcp_segment_recv_fndecl_8845 iscsi_tcp_segment_recv fndecl 4-0 8845 NULL
149795 +enable_so_max_packet_size_ftdi_private_8847 max_packet_size ftdi_private 0 8847 NULL
149796 +enable_so_ibufsize_sisusb_usb_data_8851 ibufsize sisusb_usb_data 0 8851 NULL
149797 +enable_so_blkno2_xfs_da_args_8858 blkno2 xfs_da_args 0 8858 NULL
149798 +enable_so_pci_xr17v35x_setup_fndecl_8861 pci_xr17v35x_setup fndecl 4 8861 NULL nohasharray
149799 +enable_so_generic_readlink_fndecl_8861 generic_readlink fndecl 3 8861 &enable_so_pci_xr17v35x_setup_fndecl_8861
149800 +enable_so_alloc_extent_buffer_fndecl_8862 alloc_extent_buffer fndecl 2 8862 NULL
149801 +enable_so_dm_set_target_max_io_len_fndecl_8872 dm_set_target_max_io_len fndecl 2 8872 NULL
149802 +enable_so___memblock_free_early_fndecl_8876 __memblock_free_early fndecl 2-1 8876 NULL
149803 +enable_so_jfs_readpages_fndecl_8877 jfs_readpages fndecl 4 8877 NULL
149804 +enable_so_root_entry_uctp_fndecl_8878 root_entry_uctp fndecl 0 8878 NULL
149805 +enable_so_s_apbmask_ufs_sb_private_info_8879 s_apbmask ufs_sb_private_info 0 8879 NULL
149806 +enable_so_icsk_ext_hdr_len_inet_connection_sock_8885 icsk_ext_hdr_len inet_connection_sock 0 8885 NULL
149807 +enable_so_playback_frlog_rme32_8891 playback_frlog rme32 0 8891 NULL
149808 +enable_so_via_lock_rate_fndecl_8895 via_lock_rate fndecl 2 8895 NULL
149809 +enable_so_batps_powernow_k8_data_8899 batps powernow_k8_data 0 8899 NULL
149810 +enable_so_byt_serial_setup_fndecl_8903 byt_serial_setup fndecl 4 8903 NULL nohasharray
149811 +enable_so_pages_squashfs_cache_8903 pages squashfs_cache 0 8903 &enable_so_byt_serial_setup_fndecl_8903
149812 +enable_so_bits_per_pixel_fb_var_screeninfo_8906 bits_per_pixel fb_var_screeninfo 0 8906 NULL nohasharray
149813 +enable_so_a_data_exec_8906 a_data exec 0 8906 &enable_so_bits_per_pixel_fb_var_screeninfo_8906
149814 +enable_so_fll_factors_fndecl_8907 fll_factors fndecl 2-3 8907 NULL
149815 +enable_so__xfs_buf_get_pages_fndecl_8920 _xfs_buf_get_pages fndecl 2 8920 NULL
149816 +enable_so_rt2x00debug_read_queue_dump_fndecl_8923 rt2x00debug_read_queue_dump fndecl 3 8923 NULL
149817 +enable_so_data_size_mdp_superblock_1_8925 data_size mdp_superblock_1 0 8925 NULL nohasharray
149818 +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
149819 +enable_so_nbufread_gspca_dev_8934 nbufread gspca_dev 0 8934 NULL
149820 +enable_so_begin_cmd_fndecl_8941 begin_cmd fndecl 0 8941 NULL
149821 +enable_so_i40e_pci_sriov_enable_fndecl_8949 i40e_pci_sriov_enable fndecl 2 8949 NULL
149822 +enable_so_tree_root_btrfs_root_backup_8950 tree_root btrfs_root_backup 0 8950 NULL
149823 +enable_so_get_arg_page_fndecl_8953 get_arg_page fndecl 2 8953 NULL
149824 +enable_so_rx_metadata_offset_brcmf_msgbuf_8954 rx_metadata_offset brcmf_msgbuf 0 8954 NULL
149825 +enable_so_videobuf_mmap_setup_fndecl_8956 videobuf_mmap_setup fndecl 3 8956 NULL nohasharray
149826 +enable_so_nfrags_pktgen_dev_8956 nfrags pktgen_dev 0 8956 &enable_so_videobuf_mmap_setup_fndecl_8956 nohasharray
149827 +enable_so_stats_read_ul_fndecl_8956 stats_read_ul fndecl 3 8956 &enable_so_nfrags_pktgen_dev_8956
149828 +enable_so_pkt_align_fndecl_8963 pkt_align fndecl 2-3 8963 NULL
149829 +enable_so_fromlen_nfs_symlinkargs_8967 fromlen nfs_symlinkargs 0 8967 NULL
149830 +enable_so_wm8776_field_set_fndecl_8970 wm8776_field_set fndecl 2 8970 NULL
149831 +enable_so_area_length_dmi_system_event_log_8974 area_length dmi_system_event_log 0 8974 NULL
149832 +enable_so_n_bch_control_8979 n bch_control 0 8979 NULL
149833 +enable_so_fanout_ubifs_info_8981 fanout ubifs_info 0 8981 NULL
149834 +enable_so_ocfs2_xattr_find_entry_fndecl_8983 ocfs2_xattr_find_entry fndecl 0 8983 NULL
149835 +enable_so_link_duplex_netxen_adapter_8988 link_duplex netxen_adapter 0 8988 NULL
149836 +enable_so_block_begin_dm_cell_key_8992 block_begin dm_cell_key 0 8992 NULL
149837 +enable_so_vmalloc_user_fndecl_8999 vmalloc_user fndecl 1 8999 NULL
149838 +enable_so_SyS_select_fndecl_9004 SyS_select fndecl 1 9004 NULL
149839 +enable_so_scatterwalk_map_and_copy_fndecl_9005 scatterwalk_map_and_copy fndecl 3 9005 NULL
149840 +enable_so_vb2_dvb_register_frontend_fndecl_9015 vb2_dvb_register_frontend fndecl 0 9015 NULL
149841 +enable_so_add_dts_thermal_zone_fndecl_9019 add_dts_thermal_zone fndecl 4 9019 NULL
149842 +enable_so_pcan_usb_decode_data_fndecl_9023 pcan_usb_decode_data fndecl 2 9023 NULL
149843 +enable_so_xen_del_extra_mem_fndecl_9024 xen_del_extra_mem fndecl 2-1 9024 NULL nohasharray
149844 +enable_so_cdrom_read_cd_fndecl_9024 cdrom_read_cd fndecl 5-4 9024 &enable_so_xen_del_extra_mem_fndecl_9024
149845 +enable_so_report_desc_size_mousevsc_dev_9027 report_desc_size mousevsc_dev 0 9027 NULL
149846 +enable_so_nextread_isowbuf_t_9028 nextread isowbuf_t 0 9028 NULL
149847 +enable_so_t4_alloc_mem_fndecl_9029 t4_alloc_mem fndecl 1 9029 NULL
149848 +enable_so_wDescriptorLength_hid_class_descriptor_9030 wDescriptorLength hid_class_descriptor 0 9030 NULL nohasharray
149849 +enable_so_id_port_9030 id port 0 9030 &enable_so_wDescriptorLength_hid_class_descriptor_9030
149850 +enable_so_raid_disks_geom_9044 raid_disks geom 0 9044 NULL
149851 +enable_so_ath6kl_wmi_delete_pstream_cmd_fndecl_9048 ath6kl_wmi_delete_pstream_cmd fndecl 2 9048 NULL
149852 +enable_so_num_pds_mlx4_caps_9049 num_pds mlx4_caps 0 9049 NULL
149853 +enable_so_bounce_sgl_count_storvsc_cmd_request_9051 bounce_sgl_count storvsc_cmd_request 0 9051 NULL
149854 +enable_so__drbd_bm_find_next_fndecl_9063 _drbd_bm_find_next fndecl 2-0 9063 NULL nohasharray
149855 +enable_so_keys_bset_9063 keys bset 0 9063 &enable_so__drbd_bm_find_next_fndecl_9063 nohasharray
149856 +enable_so_tx_buf_sz_iadev_priv_9063 tx_buf_sz iadev_priv 0 9063 &enable_so_keys_bset_9063 nohasharray
149857 +enable_so_send_mpa_reply_fndecl_9063 send_mpa_reply fndecl 3 9063 &enable_so_tx_buf_sz_iadev_priv_9063
149858 +enable_so_logical_maximum_hid_field_9067 logical_maximum hid_field 0 9067 NULL
149859 +enable_so_buflen_compat_xfs_fsop_attrlist_handlereq_9071 buflen compat_xfs_fsop_attrlist_handlereq 0 9071 NULL
149860 +enable_so_current_sg_offset_msb_data_9075 current_sg_offset msb_data 0 9075 NULL
149861 +enable_so_uniqueid_cifsInodeInfo_9076 uniqueid cifsInodeInfo 0 9076 NULL nohasharray
149862 +enable_so_nilfs_dat_read_fndecl_9076 nilfs_dat_read fndecl 2 9076 &enable_so_uniqueid_cifsInodeInfo_9076
149863 +enable_so_advertised_mtu_tipc_link_9077 advertised_mtu tipc_link 0 9077 NULL
149864 +enable_so_out_int_pipe_usbtest_dev_9078 out_int_pipe usbtest_dev 0 9078 NULL nohasharray
149865 +enable_so_dispatch_ioctl_fndecl_9078 dispatch_ioctl fndecl 2 9078 &enable_so_out_int_pipe_usbtest_dev_9078
149866 +enable_so_count_afs_call_9081 count afs_call 0 9081 NULL nohasharray
149867 +enable_so_sel_read_initcon_fndecl_9081 sel_read_initcon fndecl 3 9081 &enable_so_count_afs_call_9081
149868 +enable_so_start_brk_mm_struct_9085 start_brk mm_struct 0 9085 NULL
149869 +enable_so_optlen_rdma_ucm_set_option_9087 optlen rdma_ucm_set_option 0 9087 NULL
149870 +enable_so_event_count_Fsm_9088 event_count Fsm 0 9088 NULL
149871 +enable_so_width_fb_fillrect_9090 width fb_fillrect 0 9090 NULL nohasharray
149872 +enable_so_sizeimage_bdisp_frame_9090 sizeimage bdisp_frame 0 9090 &enable_so_width_fb_fillrect_9090
149873 +enable_so_xfs_iext_add_indirect_multi_fndecl_9091 xfs_iext_add_indirect_multi fndecl 3-4 9091 NULL
149874 +enable_so_vmci_qp_alloc_fndecl_9094 vmci_qp_alloc fndecl 5-3 9094 NULL
149875 +enable_so_limit_parsed_partitions_9099 limit parsed_partitions 0 9099 NULL
149876 +enable_so_logical_id_i40e_aqc_list_capabilities_element_resp_9102 logical_id i40e_aqc_list_capabilities_element_resp 0 9102 NULL
149877 +enable_so_keylen_ieee80211_key_conf_9103 keylen ieee80211_key_conf 0 9103 NULL
149878 +enable_so_fragment_size_cfrfml_9106 fragment_size cfrfml 0 9106 NULL nohasharray
149879 +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
149880 +enable_so_x38_channel_num_vardecl_x38_edac_c_9109 x38_channel_num vardecl_x38_edac.c 0 9109 NULL
149881 +enable_so_pvr2_stream_set_buffer_count_fndecl_9116 pvr2_stream_set_buffer_count fndecl 2 9116 NULL
149882 +enable_so_qla4_82xx_pci_mem_write_2M_fndecl_9117 qla4_82xx_pci_mem_write_2M fndecl 2 9117 NULL
149883 +enable_so_numEntries__ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table_9118 numEntries _ATOM_PPLIB_VCE_Clock_Voltage_Limit_Table 0 9118 NULL
149884 +enable_so_break_ksm_fndecl_9124 break_ksm fndecl 2 9124 NULL
149885 +enable_so_reiserfs_direct_IO_fndecl_9131 reiserfs_direct_IO fndecl 3 9131 NULL
149886 +enable_so_neigh_priv_len_net_device_9133 neigh_priv_len net_device 0 9133 NULL
149887 +enable_so_rx_buf_sz_vardecl_r8169_c_9136 rx_buf_sz vardecl_r8169.c 0 9136 NULL
149888 +enable_so_read_buffer_length_adu_device_9140 read_buffer_length adu_device 0 9140 NULL
149889 +enable_so_cdce925_pll_round_rate_fndecl_9145 cdce925_pll_round_rate fndecl 2 9145 NULL
149890 +enable_so_size_ip6t_replace_9148 size ip6t_replace 0 9148 NULL
149891 +enable_so_cifs_uncached_read_into_pages_fndecl_9150 cifs_uncached_read_into_pages fndecl 3 9150 NULL
149892 +enable_so_ext_capab_len_station_parameters_9152 ext_capab_len station_parameters 0 9152 NULL
149893 +enable_so_fill_readbuf_fndecl_9155 fill_readbuf fndecl 3 9155 NULL
149894 +enable_so_depth_saa7134_format_9167 depth saa7134_format 0 9167 NULL nohasharray
149895 +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
149896 +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
149897 +enable_so_ib_qib_max_sges_vardecl_9168 ib_qib_max_sges vardecl 0 9168 NULL
149898 +enable_so_channels_ua101_stream_9173 channels ua101_stream 0 9173 NULL
149899 +enable_so_alloc_queue_pairs_i40e_vsi_9174 alloc_queue_pairs i40e_vsi 0 9174 NULL
149900 +enable_so_offset_hv_multipage_buffer_9175 offset hv_multipage_buffer 0 9175 NULL
149901 +enable_so___ext4_handle_dirty_super_fndecl_9177 __ext4_handle_dirty_super fndecl 0 9177 NULL nohasharray
149902 +enable_so_hid_input_report_fndecl_9177 hid_input_report fndecl 4 9177 &enable_so___ext4_handle_dirty_super_fndecl_9177
149903 +enable_so_b_size_buffer_head_9178 b_size buffer_head 0 9178 NULL
149904 +enable_so_max_vfio_pci_fill_info_9182 max vfio_pci_fill_info 0 9182 NULL
149905 +enable_so_form_cm_frame_fndecl_9184 form_cm_frame fndecl 4-6 9184 NULL
149906 +enable_so_device_sis_chipset_9193 device sis_chipset 0 9193 NULL
149907 +enable_so_current_rate_iwl_scale_tbl_info_9194 current_rate iwl_scale_tbl_info 0 9194 NULL
149908 +enable_so_stb0899_write_regs_fndecl_9197 stb0899_write_regs fndecl 4 9197 NULL nohasharray
149909 +enable_so_wiimote_cmd_read_fndecl_9197 wiimote_cmd_read fndecl 4 9197 &enable_so_stb0899_write_regs_fndecl_9197
149910 +enable_so_buflen_xfs_fsop_attrlist_handlereq_9199 buflen xfs_fsop_attrlist_handlereq 0 9199 NULL
149911 +enable_so_efx_rx_packet_fndecl_9200 efx_rx_packet fndecl 4-3 9200 NULL
149912 +enable_so_byte_per_page_nand_onfi_params_9202 byte_per_page nand_onfi_params 0 9202 NULL nohasharray
149913 +enable_so_nested_svm_check_exception_fndecl_9202 nested_svm_check_exception fndecl 4 9202 &enable_so_byte_per_page_nand_onfi_params_9202
149914 +enable_so_tx_max_datagrams_cdc_ncm_ctx_9206 tx_max_datagrams cdc_ncm_ctx 0 9206 NULL nohasharray
149915 +enable_so_max_pages_ib_fmr_attr_9206 max_pages ib_fmr_attr 0 9206 &enable_so_tx_max_datagrams_cdc_ncm_ctx_9206
149916 +enable_so_hw_token_ehci_qh_hw_9208 hw_token ehci_qh_hw 0 9208 NULL
149917 +enable_so_file_id_object_info_9209 file_id object_info 0 9209 NULL
149918 +enable_so_mesh_rx_path_sel_frame_fndecl_9210 mesh_rx_path_sel_frame fndecl 3 9210 NULL
149919 +enable_so_sae_data_len_cfg80211_auth_request_9212 sae_data_len cfg80211_auth_request 0 9212 NULL
149920 +enable_so_ide_driver_proc_write_fndecl_9214 ide_driver_proc_write fndecl 3 9214 NULL
149921 +enable_so_zram_meta_alloc_fndecl_9221 zram_meta_alloc fndecl 2 9221 NULL
149922 +enable_so_pcicfg_size_sst_pdata_9222 pcicfg_size sst_pdata 0 9222 NULL
149923 +enable_so_ext4_create_inline_data_fndecl_9231 ext4_create_inline_data fndecl 3 9231 NULL
149924 +enable_so_supported_rates_len_station_parameters_9235 supported_rates_len station_parameters 0 9235 NULL
149925 +enable_so_read_file_bt_ant_diversity_fndecl_9236 read_file_bt_ant_diversity fndecl 3 9236 NULL
149926 +enable_so_i2400mu_rx_size_grow_fndecl_9246 i2400mu_rx_size_grow fndecl 0 9246 NULL
149927 +enable_so_phys_pmd_init_fndecl_9251 phys_pmd_init fndecl 0-2-3 9251 NULL nohasharray
149928 +enable_so_vram_start_vml_info_9251 vram_start vml_info 0 9251 &enable_so_phys_pmd_init_fndecl_9251
149929 +enable_so_n_sbufs_stk_camera_9256 n_sbufs stk_camera 0 9256 NULL
149930 +enable_so_sk_priority_sock_9258 sk_priority sock 0 9258 NULL
149931 +enable_so_buffer_size_snd_rawmidi_runtime_9267 buffer_size snd_rawmidi_runtime 0 9267 NULL
149932 +enable_so_s_blocks_count_ext3_super_block_9271 s_blocks_count ext3_super_block 0 9271 NULL
149933 +enable_so_wl1251_sdio_write_fndecl_9274 wl1251_sdio_write fndecl 4 9274 NULL
149934 +enable_so_ResponseDataLength__MSG_SMP_PASSTHROUGH_REPLY_9278 ResponseDataLength _MSG_SMP_PASSTHROUGH_REPLY 0 9278 NULL
149935 +enable_so_nr_pages_start_info_9283 nr_pages start_info 0 9283 NULL
149936 +enable_so_lbs_failcount_read_fndecl_9284 lbs_failcount_read fndecl 3 9284 NULL
149937 +enable_so_offset_ivtv_dma_page_info_9286 offset ivtv_dma_page_info 0 9286 NULL
149938 +enable_so_rx_cmd_ep_usb_card_rec_9290 rx_cmd_ep usb_card_rec 0 9290 NULL nohasharray
149939 +enable_so_buffer_bytes_st_buffer_9290 buffer_bytes st_buffer 0 9290 &enable_so_rx_cmd_ep_usb_card_rec_9290
149940 +enable_so_cxd2820r_wr_regs_fndecl_9307 cxd2820r_wr_regs fndecl 4 9307 NULL
149941 +enable_so_sys_splice_fndecl_9308 sys_splice fndecl 5 9308 NULL
149942 +enable_so_cpl_x86_emulate_ops_9312 cpl x86_emulate_ops 0 9312 NULL nohasharray
149943 +enable_so_sctp_setsockopt_context_fndecl_9312 sctp_setsockopt_context fndecl 3 9312 &enable_so_cpl_x86_emulate_ops_9312
149944 +enable_so_fcoe_conn_context_id_fcoe_kcqe_9316 fcoe_conn_context_id fcoe_kcqe 0 9316 NULL
149945 +enable_so_find_mergeable_fndecl_9318 find_mergeable fndecl 2 9318 NULL
149946 +enable_so_in_packet_size_pcm_runtime_9321 in_packet_size pcm_runtime 0 9321 NULL
149947 +enable_so_pages_in_io_dio_submit_9326 pages_in_io dio_submit 0 9326 NULL
149948 +enable_so__wm8994_set_fll_fndecl_9332 _wm8994_set_fll fndecl 4-5 9332 NULL nohasharray
149949 +enable_so_sys_mincore_fndecl_9332 sys_mincore fndecl 1-2 9332 &enable_so__wm8994_set_fll_fndecl_9332
149950 +enable_so_rbuf_fill_count_slgt_info_9335 rbuf_fill_count slgt_info 0 9335 NULL
149951 +enable_so_ttm_bo_ioremap_fndecl_9337 ttm_bo_ioremap fndecl 3-2 9337 NULL
149952 +enable_so_ath10k_mac_bitrate_to_idx_fndecl_9338 ath10k_mac_bitrate_to_idx fndecl 0 9338 NULL
149953 +enable_so_htree_dirblock_to_tree_fndecl_9339 htree_dirblock_to_tree fndecl 3 9339 NULL
149954 +enable_so_di_size_xfs_icdinode_9350 di_size xfs_icdinode 0 9350 NULL
149955 +enable_so_ltc_nr_nvkm_ltc_priv_9351 ltc_nr nvkm_ltc_priv 0 9351 NULL
149956 +enable_so_tse_init_rx_buffer_fndecl_9354 tse_init_rx_buffer fndecl 3 9354 NULL
149957 +enable_so_offset_ore_io_state_9357 offset ore_io_state 0 9357 NULL
149958 +enable_so_stv6110x_write_regs_fndecl_9359 stv6110x_write_regs fndecl 4 9359 NULL
149959 +enable_so_compat_sys_get_mempolicy_fndecl_9366 compat_sys_get_mempolicy fndecl 4-3 9366 NULL
149960 +enable_so_mt2060_writeregs_fndecl_9371 mt2060_writeregs fndecl 3 9371 NULL nohasharray
149961 +enable_so_depth_read_fndecl_9371 depth_read fndecl 3 9371 &enable_so_mt2060_writeregs_fndecl_9371
149962 +enable_so_rate_n_flags_iwl_ht_agg_9373 rate_n_flags iwl_ht_agg 0 9373 NULL
149963 +enable_so_le_adv_data_len_hci_conn_9377 le_adv_data_len hci_conn 0 9377 NULL
149964 +enable_so_mss_clamp_tcp_options_received_9378 mss_clamp tcp_options_received 0 9378 NULL
149965 +enable_so_fix_priv_head_fndecl_9385 fix_priv_head fndecl 2 9385 NULL
149966 +enable_so_nr_uart_driver_9391 nr uart_driver 0 9391 NULL
149967 +enable_so_dr_pre_altera_jtag_9393 dr_pre altera_jtag 0 9393 NULL
149968 +enable_so_ubifs_tnc_add_nm_fndecl_9397 ubifs_tnc_add_nm fndecl 4-5 9397 NULL
149969 +enable_so_sr_bg_blkno_ocfs2_suballoc_result_9401 sr_bg_blkno ocfs2_suballoc_result 0 9401 NULL
149970 +enable_so_caif_seqpkt_recvmsg_fndecl_9402 caif_seqpkt_recvmsg fndecl 3 9402 NULL
149971 +enable_so_blk_queue_physical_block_size_fndecl_9410 blk_queue_physical_block_size fndecl 2 9410 NULL
149972 +enable_so_data_start_dm_ioctl_9412 data_start dm_ioctl 0 9412 NULL
149973 +enable_so_return_size_drm_amdgpu_info_9414 return_size drm_amdgpu_info 0 9414 NULL
149974 +enable_so_acpi_ex_system_memory_space_handler_fndecl_9419 acpi_ex_system_memory_space_handler fndecl 2 9419 NULL
149975 +enable_so_r592_read_fifo_pio_fndecl_9421 r592_read_fifo_pio fndecl 3 9421 NULL nohasharray
149976 +enable_so_rocker_dma_ring_create_fndecl_9421 rocker_dma_ring_create fndecl 3 9421 &enable_so_r592_read_fifo_pio_fndecl_9421
149977 +enable_so_dlen_garp_attr_9422 dlen garp_attr 0 9422 NULL
149978 +enable_so_dgap_config_get_num_prts_fndecl_9435 dgap_config_get_num_prts fndecl 0 9435 NULL
149979 +enable_so_ext4_restore_inline_data_fndecl_9436 ext4_restore_inline_data fndecl 5 9436 NULL
149980 +enable_so_height_stk1160_9446 height stk1160 0 9446 NULL
149981 +enable_so_mtdchar_readoob_fndecl_9459 mtdchar_readoob fndecl 4-3 9459 NULL
149982 +enable_so_si21_writeregs_fndecl_9460 si21_writeregs fndecl 4 9460 NULL
149983 +enable_so_async_wrap_skb_fndecl_9465 async_wrap_skb fndecl 0 9465 NULL
149984 +enable_so_kvm_mmu_page_fault_fndecl_9470 kvm_mmu_page_fault fndecl 2 9470 NULL
149985 +enable_so_height_cobalt_stream_9490 height cobalt_stream 0 9490 NULL nohasharray
149986 +enable_so_lbs_debugfs_read_fndecl_9490 lbs_debugfs_read fndecl 3 9490 &enable_so_height_cobalt_stream_9490
149987 +enable_so_txPower_ConfigRid_9502 txPower ConfigRid 0 9502 NULL nohasharray
149988 +enable_so_qnx6_long_match_fndecl_9502 qnx6_long_match fndecl 0 9502 &enable_so_txPower_ConfigRid_9502
149989 +enable_so_bpp_mcam_format_struct_9503 bpp mcam_format_struct 0 9503 NULL
149990 +enable_so_maxdev_vardecl_slcan_c_9507 maxdev vardecl_slcan.c 0 9507 NULL
149991 +enable_so_zlib_updatewindow_fndecl_9508 zlib_updatewindow fndecl 2 9508 NULL
149992 +enable_so_fillonedir_fndecl_9511 fillonedir fndecl 3 9511 NULL
149993 +enable_so_s_clustersize_bits_ocfs2_super_block_9516 s_clustersize_bits ocfs2_super_block 0 9516 NULL nohasharray
149994 +enable_so_zero_disk_area_fndecl_9516 zero_disk_area fndecl 2 9516 &enable_so_s_clustersize_bits_ocfs2_super_block_9516
149995 +enable_so_pcm512x_find_sck_fndecl_9522 pcm512x_find_sck fndecl 0 9522 NULL
149996 +enable_so_kdb_max_commands_vardecl_kdb_main_c_9529 kdb_max_commands vardecl_kdb_main.c 0 9529 NULL
149997 +enable_so_cap_width_usbtv_norm_params_9538 cap_width usbtv_norm_params 0 9538 NULL
149998 +enable_so_nilfs_mdt_forget_block_fndecl_9543 nilfs_mdt_forget_block fndecl 2 9543 NULL
149999 +enable_so_smk_read_doi_fndecl_9550 smk_read_doi fndecl 3 9550 NULL
150000 +enable_so___bio_alloc_fndecl_9552 __bio_alloc fndecl 2-3 9552 NULL
150001 +enable_so_rt2x00queue_insert_l2pad_fndecl_9553 rt2x00queue_insert_l2pad fndecl 2 9553 NULL
150002 +enable_so_display_byte_stride_vivid_dev_9554 display_byte_stride vivid_dev 0 9554 NULL
150003 +enable_so_rx_skb_reserve_vardecl_he_c_9559 rx_skb_reserve vardecl_he.c 0 9559 NULL
150004 +enable_so_glocont_endpoint_keyspan_device_details_9560 glocont_endpoint keyspan_device_details 0 9560 NULL
150005 +enable_so_fault_disconnect_read_fndecl_9566 fault_disconnect_read fndecl 3 9566 NULL
150006 +enable_so_p9_client_statsize_fndecl_9568 p9_client_statsize fndecl 0 9568 NULL nohasharray
150007 +enable_so_ath10k_write_fw_dbglog_fndecl_9568 ath10k_write_fw_dbglog fndecl 3 9568 &enable_so_p9_client_statsize_fndecl_9568
150008 +enable_so_page_order_cas_9572 page_order cas 0 9572 NULL
150009 +enable_so_width_drm_mode_create_dumb_9575 width drm_mode_create_dumb 0 9575 NULL
150010 +enable_so_sctp_setsockopt_auth_chunk_fndecl_9576 sctp_setsockopt_auth_chunk fndecl 3 9576 NULL
150011 +enable_so_mpage_add_bh_to_extent_fndecl_9577 mpage_add_bh_to_extent fndecl 2 9577 NULL
150012 +enable_so_mode_buf_len_udl_device_9578 mode_buf_len udl_device 0 9578 NULL nohasharray
150013 +enable_so_of_gpio_named_count_fndecl_9578 of_gpio_named_count fndecl 0 9578 &enable_so_mode_buf_len_udl_device_9578
150014 +enable_so_cfg80211_rx_mgmt_fndecl_9583 cfg80211_rx_mgmt fndecl 5 9583 NULL
150015 +enable_so_crtc_vblank_start_drm_display_mode_9587 crtc_vblank_start drm_display_mode 0 9587 NULL
150016 +enable_so_wm5102_set_fll_fndecl_9596 wm5102_set_fll fndecl 5 9596 NULL nohasharray
150017 +enable_so_get_kobj_path_length_fndecl_9596 get_kobj_path_length fndecl 0 9596 &enable_so_wm5102_set_fll_fndecl_9596
150018 +enable_so_writerids_fndecl_9601 writerids fndecl 0 9601 NULL
150019 +enable_so_ileb_len_ubifs_info_9607 ileb_len ubifs_info 0 9607 NULL
150020 +enable_so_skd_max_pass_thru_vardecl_skd_main_c_9608 skd_max_pass_thru vardecl_skd_main.c 0 9608 NULL
150021 +enable_so_free_bg_ocfs2_cached_block_free_9619 free_bg ocfs2_cached_block_free 0 9619 NULL
150022 +enable_so_size_scif_rb_9622 size scif_rb 0 9622 NULL
150023 +enable_so_hpfs_ea_write_fndecl_9626 hpfs_ea_write fndecl 5-4-2 9626 NULL
150024 +enable_so_num_fcxps_vardecl_9630 num_fcxps vardecl 0 9630 NULL
150025 +enable_so_ubifs_wbuf_seek_nolock_fndecl_9634 ubifs_wbuf_seek_nolock fndecl 3 9634 NULL
150026 +enable_so_fc_host_post_vendor_event_fndecl_9636 fc_host_post_vendor_event fndecl 3 9636 NULL
150027 +enable_so_copy_to_iter_fndecl_9638 copy_to_iter fndecl 0-2 9638 NULL
150028 +enable_so_fd_do_prot_unmap_fndecl_9639 fd_do_prot_unmap fndecl 3 9639 NULL
150029 +enable_so_num_nodes_hdac_device_9647 num_nodes hdac_device 0 9647 NULL
150030 +enable_so_dma_tx_size_stmmac_priv_9653 dma_tx_size stmmac_priv 0 9653 NULL
150031 +enable_so_height_drm_vmw_size_9654 height drm_vmw_size 0 9654 NULL nohasharray
150032 +enable_so_dict_size_lzma_header_9654 dict_size lzma_header 0 9654 &enable_so_height_drm_vmw_size_9654
150033 +enable_so_wm8400_register_regulator_fndecl_9660 wm8400_register_regulator fndecl 2 9660 NULL
150034 +enable_so_hugetlb_cow_fndecl_9665 hugetlb_cow fndecl 3 9665 NULL
150035 +enable_so_usnic_debugfs_buildinfo_read_fndecl_9667 usnic_debugfs_buildinfo_read fndecl 3 9667 NULL
150036 +enable_so_hr_slots_per_page_o2hb_region_9668 hr_slots_per_page o2hb_region 0 9668 NULL
150037 +enable_so_PCI_Address_DAC960_Controller_9669 PCI_Address DAC960_Controller 0 9669 NULL
150038 +enable_so_sctp_setsockopt_rtoinfo_fndecl_9678 sctp_setsockopt_rtoinfo fndecl 3 9678 NULL
150039 +enable_so_length_hpfs_dirent_9682 length hpfs_dirent 0 9682 NULL
150040 +enable_so_scrub_pages_for_parity_fndecl_9684 scrub_pages_for_parity fndecl 3-2-4 9684 NULL
150041 +enable_so_osd_req_decode_sense_full_fndecl_9685 osd_req_decode_sense_full fndecl 0 9685 NULL
150042 +enable_so_di_height_logfs_disk_inode_9686 di_height logfs_disk_inode 0 9686 NULL nohasharray
150043 +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
150044 +enable_so_ba_param_set_wmi_rcp_addba_req_event_9687 ba_param_set wmi_rcp_addba_req_event 0 9687 NULL
150045 +enable_so_xresstep_svga_fb_format_9690 xresstep svga_fb_format 0 9690 NULL
150046 +enable_so_max_num_pmkids_wiphy_9691 max_num_pmkids wiphy 0 9691 NULL
150047 +enable_so_fill_from_dev_buffer_fndecl_9695 fill_from_dev_buffer fndecl 3 9695 NULL
150048 +enable_so_adp5589_build_gpiomap_fndecl_9697 adp5589_build_gpiomap fndecl 0 9697 NULL
150049 +enable_so_phys_addr_ntb_transport_mw_9704 phys_addr ntb_transport_mw 0 9704 NULL
150050 +enable_so_tty_insert_flip_string_flags_fndecl_9706 tty_insert_flip_string_flags fndecl 4 9706 NULL nohasharray
150051 +enable_so_payload_len_cfg80211_wowlan_tcp_9706 payload_len cfg80211_wowlan_tcp 0 9706 &enable_so_tty_insert_flip_string_flags_fndecl_9706
150052 +enable_so_sr_write_async_fndecl_9707 sr_write_async fndecl 3 9707 NULL
150053 +enable_so_affs_direct_IO_fndecl_9712 affs_direct_IO fndecl 3 9712 NULL
150054 +enable_so_xprt_rdma_max_inline_write_vardecl_transport_c_9715 xprt_rdma_max_inline_write vardecl_transport.c 0 9715 NULL
150055 +enable_so_page_size_dataflash_9722 page_size dataflash 0 9722 NULL nohasharray
150056 +enable_so_tx_ringsz_alx_priv_9722 tx_ringsz alx_priv 0 9722 &enable_so_page_size_dataflash_9722
150057 +enable_so_setup_port_fndecl_9724 setup_port fndecl 5-4 9724 NULL nohasharray
150058 +enable_so_ieee80211_build_preq_ies_band_fndecl_9724 ieee80211_build_preq_ies_band fndecl 0 9724 &enable_so_setup_port_fndecl_9724 nohasharray
150059 +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
150060 +enable_so_mask_myri10ge_tx_buf_9725 mask myri10ge_tx_buf 0 9725 NULL
150061 +enable_so_vicam_control_msg_fndecl_9727 vicam_control_msg fndecl 0 9727 NULL
150062 +enable_so_samsung_clk_sleep_init_fndecl_9743 samsung_clk_sleep_init fndecl 3 9743 NULL
150063 +enable_so_qsfp_2_read_fndecl_9744 qsfp_2_read fndecl 3 9744 NULL
150064 +enable_so_blkdev_fsync_fndecl_9745 blkdev_fsync fndecl 2-3 9745 NULL
150065 +enable_so_bnx2x_mcast_handle_current_cmd_fndecl_9747 bnx2x_mcast_handle_current_cmd fndecl 0 9747 NULL
150066 +enable_so___alloc_bootmem_fndecl_9753 __alloc_bootmem fndecl 2-1-3 9753 NULL
150067 +enable_so_il4965_hwrate_to_plcp_idx_fndecl_9755 il4965_hwrate_to_plcp_idx fndecl 0-1 9755 NULL
150068 +enable_so_hbuf_free_slots_mei_hw_ops_9760 hbuf_free_slots mei_hw_ops 0 9760 NULL
150069 +enable_so_hidraw_write_fndecl_9763 hidraw_write fndecl 3 9763 NULL nohasharray
150070 +enable_so_buffer_length_floppy_raw_cmd_9763 buffer_length floppy_raw_cmd 0 9763 &enable_so_hidraw_write_fndecl_9763
150071 +enable_so_index_sdio_uart_port_9769 index sdio_uart_port 0 9769 NULL
150072 +enable_so_stat_ethoc_bd_9775 stat ethoc_bd 0 9775 NULL nohasharray
150073 +enable_so_dvb_ringbuffer_write_fndecl_9775 dvb_ringbuffer_write fndecl 3-0 9775 &enable_so_stat_ethoc_bd_9775
150074 +enable_so_vmlfb_alloc_vram_area_fndecl_9776 vmlfb_alloc_vram_area fndecl 2 9776 NULL
150075 +enable_so_ctl_dev_e752x_dev_info_9777 ctl_dev e752x_dev_info 0 9777 NULL
150076 +enable_so_encap_hlen_ip_tunnel_9779 encap_hlen ip_tunnel 0 9779 NULL
150077 +enable_so_tool_mask_read_fndecl_9780 tool_mask_read fndecl 3 9780 NULL
150078 +enable_so_highest_inum_ubifs_info_9785 highest_inum ubifs_info 0 9785 NULL
150079 +enable_so_valuelen_xfs_da_args_9786 valuelen xfs_da_args 0 9786 NULL
150080 +enable_so_irda_recvmsg_dgram_fndecl_9788 irda_recvmsg_dgram fndecl 3 9788 NULL
150081 +enable_so_tx_frag_tkip_called_read_fndecl_9796 tx_frag_tkip_called_read fndecl 3 9796 NULL
150082 +enable_so_vci_atm_vcc_9797 vci atm_vcc 0 9797 NULL
150083 +enable_so_aper_base_agp_kern_info_9798 aper_base agp_kern_info 0 9798 NULL
150084 +enable_so_irlan_insert_array_param_fndecl_9800 irlan_insert_array_param fndecl 4 9800 NULL
150085 +enable_so_get_max_inline_xattr_value_size_fndecl_9801 get_max_inline_xattr_value_size fndecl 0 9801 NULL
150086 +enable_so_rq_callsize_rpc_rqst_9803 rq_callsize rpc_rqst 0 9803 NULL
150087 +enable_so_osst_write_fndecl_9806 osst_write fndecl 3 9806 NULL
150088 +enable_so_in_size_ViceIoctl_9808 in_size ViceIoctl 0 9808 NULL nohasharray
150089 +enable_so_usbvision_read_fndecl_9808 usbvision_read fndecl 3 9808 &enable_so_in_size_ViceIoctl_9808
150090 +enable_so_num_private_args_iw_handler_def_9810 num_private_args iw_handler_def 0 9810 NULL
150091 +enable_so_update_backref_node_fndecl_9811 update_backref_node fndecl 3 9811 NULL
150092 +enable_so_pathmtu_sctp_association_9815 pathmtu sctp_association 0 9815 NULL
150093 +enable_so_brcmf_proto_bcdc_hdrpush_fndecl_9818 brcmf_proto_bcdc_hdrpush fndecl 3 9818 NULL nohasharray
150094 +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
150095 +enable_so_pref_erase_mmc_card_9824 pref_erase mmc_card 0 9824 NULL
150096 +enable_so_flags_rtl8187se_rx_desc_9826 flags rtl8187se_rx_desc 0 9826 NULL
150097 +enable_so_section_count_f2fs_super_block_9832 section_count f2fs_super_block 0 9832 NULL nohasharray
150098 +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
150099 +enable_so_sectors_r10bio_9834 sectors r10bio 0 9834 NULL
150100 +enable_so_msg_length_sms_msg_hdr_9842 msg_length sms_msg_hdr 0 9842 NULL
150101 +enable_so_snd_compr_get_avail_fndecl_9843 snd_compr_get_avail fndecl 0 9843 NULL
150102 +enable_so_complete_read_super_fndecl_9844 complete_read_super fndecl 3 9844 NULL
150103 +enable_so_pg_count_agp_allocate_9853 pg_count agp_allocate 0 9853 NULL
150104 +enable_so_data_size_virtio_gpu_vbuffer_9856 data_size virtio_gpu_vbuffer 0 9856 NULL
150105 +enable_so_vlan_id_rlb_client_info_9858 vlan_id rlb_client_info 0 9858 NULL
150106 +enable_so_read_fiforeg_fndecl_9859 read_fiforeg fndecl 2 9859 NULL nohasharray
150107 +enable_so_nr_of_buckets_v4l2_ctrl_handler_9859 nr_of_buckets v4l2_ctrl_handler 0 9859 &enable_so_read_fiforeg_fndecl_9859
150108 +enable_so_ext3_sync_file_fndecl_9860 ext3_sync_file fndecl 2-3 9860 NULL
150109 +enable_so_videobuf_read_one_fndecl_9862 videobuf_read_one fndecl 3 9862 NULL
150110 +enable_so_align_nvkm_instobj_args_9868 align nvkm_instobj_args 0 9868 NULL
150111 +enable_so_get_img_height_s5p_mfc_hw_ops_9869 get_img_height s5p_mfc_hw_ops 0 9869 NULL
150112 +enable_so_arvo_sysfs_read_fndecl_9874 arvo_sysfs_read fndecl 6 9874 NULL
150113 +enable_so_xfs_seek_hole_data_fndecl_9883 xfs_seek_hole_data fndecl 2 9883 NULL
150114 +enable_so_v4l_nbufs_vardecl_9889 v4l_nbufs vardecl 0 9889 NULL
150115 +enable_so_emulator_set_cr_fndecl_9890 emulator_set_cr fndecl 3 9890 NULL
150116 +enable_so_copy_from_user_nmi_fndecl_9899 copy_from_user_nmi fndecl 3 9899 NULL
150117 +enable_so_ovfx2_pkt_scan_fndecl_9901 ovfx2_pkt_scan fndecl 3 9901 NULL nohasharray
150118 +enable_so_begin_entry_alloc_9901 begin entry_alloc 0 9901 &enable_so_ovfx2_pkt_scan_fndecl_9901
150119 +enable_so_tx_ring_size_sky2_port_9902 tx_ring_size sky2_port 0 9902 NULL
150120 +enable_so_nkeys_tc_u32_sel_9905 nkeys tc_u32_sel 0 9905 NULL
150121 +enable_so_legacy_count_vardecl_pty_c_9908 legacy_count vardecl_pty.c 0 9908 NULL
150122 +enable_so_prism54_wpa_bss_ie_add_fndecl_9910 prism54_wpa_bss_ie_add fndecl 4 9910 NULL
150123 +enable_so_stat_ddb_output_9913 stat ddb_output 0 9913 NULL
150124 +enable_so_alloc_event_waiters_fndecl_9914 alloc_event_waiters fndecl 1 9914 NULL
150125 +enable_so_ep_in_ksdazzle_cb_9917 ep_in ksdazzle_cb 0 9917 NULL
150126 +enable_so___ceph_do_getattr_fndecl_9918 __ceph_do_getattr fndecl 0 9918 NULL
150127 +enable_so_vbe_modes_cnt_uvesafb_par_9928 vbe_modes_cnt uvesafb_par 0 9928 NULL
150128 +enable_so_audit_log_n_string_fndecl_9930 audit_log_n_string fndecl 3 9930 NULL
150129 +enable_so_len_load_info_9931 len load_info 0 9931 NULL
150130 +enable_so_num_wsm_set_tx_rate_retry_policy_9933 num wsm_set_tx_rate_retry_policy 0 9933 NULL
150131 +enable_so_wb_pgbase_nfs_page_9940 wb_pgbase nfs_page 0 9940 NULL nohasharray
150132 +enable_so_object_name_len_ncp_objectname_ioctl_9940 object_name_len ncp_objectname_ioctl 0 9940 &enable_so_wb_pgbase_nfs_page_9940
150133 +enable_so_forced_ps_read_fndecl_9942 forced_ps_read fndecl 3 9942 NULL
150134 +enable_so_num_chan_pl330_config_9943 num_chan pl330_config 0 9943 NULL
150135 +enable_so_client_set_fmt_fndecl_9946 client_set_fmt fndecl 4-5 9946 NULL
150136 +enable_so_buffer_len_bnad_debug_info_9948 buffer_len bnad_debug_info 0 9948 NULL
150137 +enable_so_ath6kl_wmi_send_probe_response_cmd_fndecl_9955 ath6kl_wmi_send_probe_response_cmd fndecl 6-2 9955 NULL
150138 +enable_so_utf16s_to_utf8s_fndecl_9956 utf16s_to_utf8s fndecl 0 9956 NULL
150139 +enable_so_build_request_ceph_auth_client_ops_9960 build_request ceph_auth_client_ops 0 9960 NULL
150140 +enable_so_xfs_difree_inobt_fndecl_9961 xfs_difree_inobt fndecl 4 9961 NULL
150141 +enable_so_shmem_pwrite_slow_fndecl_9966 shmem_pwrite_slow fndecl 2-3 9966 NULL
150142 +enable_so_rt2x00dev_extra_tx_headroom_fndecl_9971 rt2x00dev_extra_tx_headroom fndecl 0 9971 NULL
150143 +enable_so_rs_pretty_print_rate_fndecl_9980 rs_pretty_print_rate fndecl 2-0 9980 NULL nohasharray
150144 +enable_so_pg_vec_len_netlink_ring_9980 pg_vec_len netlink_ring 0 9980 &enable_so_rs_pretty_print_rate_fndecl_9980
150145 +enable_so_count_tun_filter_9984 count tun_filter 0 9984 NULL
150146 +enable_so_start_extent_buffer_9986 start extent_buffer 0 9986 NULL
150147 +enable_so_map_sg_ib_dma_mapping_ops_9988 map_sg ib_dma_mapping_ops 0 9988 NULL
150148 +enable_so_hugepage_add_anon_rmap_fndecl_9989 hugepage_add_anon_rmap fndecl 3 9989 NULL
150149 +enable_so_nilfs_insert_inode_locked_fndecl_9991 nilfs_insert_inode_locked fndecl 3 9991 NULL
150150 +enable_so_dm_rh_region_to_sector_fndecl_9992 dm_rh_region_to_sector fndecl 0-2 9992 NULL
150151 +enable_so_i2c_wr_max_tda10071_config_9993 i2c_wr_max tda10071_config 0 9993 NULL
150152 +enable_so_ieee80211_if_read_last_beacon_fndecl_9994 ieee80211_if_read_last_beacon fndecl 3 9994 NULL
150153 +enable_so_port_rcvegrbuf_size_ipath_portdata_9999 port_rcvegrbuf_size ipath_portdata 0 9999 NULL
150154 +enable_so_sample_bits_twl4030_priv_10002 sample_bits twl4030_priv 0 10002 NULL
150155 +enable_so_rpcrdma_inline_fixup_fndecl_10007 rpcrdma_inline_fixup fndecl 3 10007 NULL
150156 +enable_so_setifbcnt_fndecl_10012 setifbcnt fndecl 3 10012 NULL
150157 +enable_so__create_sg_bios_fndecl_10015 _create_sg_bios fndecl 4 10015 NULL
150158 +enable_so_nouveau_sgdma_create_ttm_fndecl_10022 nouveau_sgdma_create_ttm fndecl 2 10022 NULL
150159 +enable_so_skb_append_datato_frags_fndecl_10028 skb_append_datato_frags fndecl 5 10028 NULL
150160 +enable_so_add_dataflash_otp_fndecl_10031 add_dataflash_otp fndecl 4-3 10031 NULL
150161 +enable_so___cookie_v6_check_fndecl_10035 __cookie_v6_check fndecl 0 10035 NULL
150162 +enable_so_get_img_width_s5p_mfc_hw_ops_10036 get_img_width s5p_mfc_hw_ops 0 10036 NULL
150163 +enable_so_mwifiex_send_tdls_action_frame_fndecl_10044 mwifiex_send_tdls_action_frame fndecl 7 10044 NULL
150164 +enable_so_bd_iov_count_ptlrpc_bulk_desc_10045 bd_iov_count ptlrpc_bulk_desc 0 10045 NULL
150165 +enable_so_sisusbcon_scroll_fndecl_10048 sisusbcon_scroll fndecl 5-2-3 10048 NULL
150166 +enable_so_send_buf_size_netvsc_device_10051 send_buf_size netvsc_device 0 10051 NULL
150167 +enable_so_ath6kl_wmi_powermode_cmd_fndecl_10052 ath6kl_wmi_powermode_cmd fndecl 2 10052 NULL
150168 +enable_so_usbat_write_blocks_fndecl_10053 usbat_write_blocks fndecl 3-4 10053 NULL nohasharray
150169 +enable_so_command_file_write_fndecl_10053 command_file_write fndecl 3 10053 &enable_so_usbat_write_blocks_fndecl_10053
150170 +enable_so_musb_urb_dequeue_fndecl_10056 musb_urb_dequeue fndecl 3 10056 NULL
150171 +enable_so_dm_bufio_prefetch_fndecl_10057 dm_bufio_prefetch fndecl 2 10057 NULL
150172 +enable_so_bio_detain_range_fndecl_10064 bio_detain_range fndecl 2-3 10064 NULL
150173 +enable_so_rx_buf_sz_sis190_private_10068 rx_buf_sz sis190_private 0 10068 NULL nohasharray
150174 +enable_so_uvc_simplify_fraction_fndecl_10068 uvc_simplify_fraction fndecl 3 10068 &enable_so_rx_buf_sz_sis190_private_10068
150175 +enable_so_max_pages_fuse_req_10069 max_pages fuse_req 0 10069 NULL
150176 +enable_so_iwl_dbgfs_set_nic_temperature_read_fndecl_10071 iwl_dbgfs_set_nic_temperature_read fndecl 3 10071 NULL
150177 +enable_so_sg_size_octnic_gather_10076 sg_size octnic_gather 0 10076 NULL
150178 +enable_so_ocfs2_refcount_xattr_tree_rec_fndecl_10077 ocfs2_refcount_xattr_tree_rec fndecl 3 10077 NULL
150179 +enable_so_height_virtio_gpu_rect_10085 height virtio_gpu_rect 0 10085 NULL
150180 +enable_so_ssb_admatch_base_fndecl_10086 ssb_admatch_base fndecl 0-1 10086 NULL
150181 +enable_so_outlen_write_fndecl_10093 outlen_write fndecl 3 10093 NULL
150182 +enable_so_msix_num_bnad_10096 msix_num bnad 0 10096 NULL
150183 +enable_so_em28xx_init_usb_xfer_fndecl_10106 em28xx_init_usb_xfer fndecl 5-6-4 10106 NULL
150184 +enable_so__regmap_raw_multi_reg_write_fndecl_10107 _regmap_raw_multi_reg_write fndecl 3 10107 NULL
150185 +enable_so_trace_parser_get_init_fndecl_10112 trace_parser_get_init fndecl 2 10112 NULL
150186 +enable_so_req_sz__MPT_ADAPTER_10113 req_sz _MPT_ADAPTER 0 10113 NULL
150187 +enable_so_tfms_count_crypt_config_10114 tfms_count crypt_config 0 10114 NULL
150188 +enable_so_total_len_extlog_l1_head_10117 total_len extlog_l1_head 0 10117 NULL nohasharray
150189 +enable_so_uvc_video_encode_data_fndecl_10117 uvc_video_encode_data fndecl 0-4 10117 &enable_so_total_len_extlog_l1_head_10117
150190 +enable_so_len_pda_entry_10121 len pda_entry 0 10121 NULL nohasharray
150191 +enable_so_netlbl_mgmt_add_common_fndecl_10121 netlbl_mgmt_add_common fndecl 0 10121 &enable_so_len_pda_entry_10121
150192 +enable_so_MaxBlocksPerCommand_DAC960_Controller_10124 MaxBlocksPerCommand DAC960_Controller 0 10124 NULL nohasharray
150193 +enable_so_data_dma_usbtouch_usb_10124 data_dma usbtouch_usb 0 10124 &enable_so_MaxBlocksPerCommand_DAC960_Controller_10124
150194 +enable_so_max_hw_sectors_nvme_dev_10127 max_hw_sectors nvme_dev 0 10127 NULL nohasharray
150195 +enable_so_parent_overlap_rbd_device_10127 parent_overlap rbd_device 0 10127 &enable_so_max_hw_sectors_nvme_dev_10127
150196 +enable_so_max_bu_buf_len_ubifs_info_10130 max_bu_buf_len ubifs_info 0 10130 NULL
150197 +enable_so_ieee80211_rx_mgmt_auth_fndecl_10133 ieee80211_rx_mgmt_auth fndecl 3 10133 NULL
150198 +enable_so_qlcnic_83xx_diag_alloc_res_fndecl_10139 qlcnic_83xx_diag_alloc_res fndecl 3 10139 NULL
150199 +enable_so_xprt_rdma_allocate_fndecl_10143 xprt_rdma_allocate fndecl 2 10143 NULL
150200 +enable_so_ns_cno_the_nilfs_10144 ns_cno the_nilfs 0 10144 NULL nohasharray
150201 +enable_so_sg_segs_osst_buffer_10144 sg_segs osst_buffer 0 10144 &enable_so_ns_cno_the_nilfs_10144 nohasharray
150202 +enable_so_key_ifindex_read_fndecl_10144 key_ifindex_read fndecl 3 10144 &enable_so_sg_segs_osst_buffer_10144
150203 +enable_so_ldebugfs_fid_space_seq_write_fndecl_10152 ldebugfs_fid_space_seq_write fndecl 3 10152 NULL
150204 +enable_so__sp2d_max_pg_fndecl_10157 _sp2d_max_pg fndecl 0 10157 NULL
150205 +enable_so_usnic_vnic_res_spec_update_fndecl_10169 usnic_vnic_res_spec_update fndecl 3 10169 NULL
150206 +enable_so_error_block_length_acpi_hest_generic_10170 error_block_length acpi_hest_generic 0 10170 NULL
150207 +enable_so_cluster_size_msdos_sb_info_10172 cluster_size msdos_sb_info 0 10172 NULL
150208 +enable_so_s_inopf_ufs_sb_private_info_10174 s_inopf ufs_sb_private_info 0 10174 NULL nohasharray
150209 +enable_so_substream_count_snd_rawmidi_str_10174 substream_count snd_rawmidi_str 0 10174 &enable_so_s_inopf_ufs_sb_private_info_10174
150210 +enable_so_acpi_sci_ioapic_setup_fndecl_10182 acpi_sci_ioapic_setup fndecl 1-4 10182 NULL
150211 +enable_so_read_buffer_size_vardecl_legousbtower_c_10184 read_buffer_size vardecl_legousbtower.c 0 10184 NULL
150212 +enable_so_transport_alloc_session_tags_fndecl_10186 transport_alloc_session_tags fndecl 3-2 10186 NULL
150213 +enable_so_xfrm6_init_path_fndecl_10187 xfrm6_init_path fndecl 3 10187 NULL
150214 +enable_so_size_erst_erange_10188 size erst_erange 0 10188 NULL
150215 +enable_so_opera1_xilinx_rw_fndecl_10190 opera1_xilinx_rw fndecl 5 10190 NULL
150216 +enable_so_PagesPerBlock_ms_lib_ctrl_10191 PagesPerBlock ms_lib_ctrl 0 10191 NULL
150217 +enable_so_tx_buf_size_mwifiex_adapter_10198 tx_buf_size mwifiex_adapter 0 10198 NULL
150218 +enable_so_old_log_size_persistent_ram_zone_10215 old_log_size persistent_ram_zone 0 10215 NULL
150219 +enable_so___ext4_journal_get_write_access_fndecl_10217 __ext4_journal_get_write_access fndecl 0 10217 NULL
150220 +enable_so_wil_addba_rx_request_fndecl_10219 wil_addba_rx_request fndecl 4 10219 NULL
150221 +enable_so_rds_message_map_pages_fndecl_10220 rds_message_map_pages fndecl 2 10220 NULL
150222 +enable_so_ext4_xattr_set_handle_fndecl_10221 ext4_xattr_set_handle fndecl 6 10221 NULL
150223 +enable_so_alg_setkey_fndecl_10222 alg_setkey fndecl 3 10222 NULL
150224 +enable_so_nvkm_vm_get_fndecl_10228 nvkm_vm_get fndecl 3-2 10228 NULL
150225 +enable_so_next_id_hfs_sb_info_10229 next_id hfs_sb_info 0 10229 NULL
150226 +enable_so_qlcnic_set_sds_ring_count_fndecl_10232 qlcnic_set_sds_ring_count fndecl 2 10232 NULL
150227 +enable_so_input_get_new_minor_fndecl_10235 input_get_new_minor fndecl 0 10235 NULL
150228 +enable_so_iio_devt_vardecl_industrialio_core_c_10237 iio_devt vardecl_industrialio-core.c 0 10237 NULL nohasharray
150229 +enable_so_req_pages_pvscsi_adapter_10237 req_pages pvscsi_adapter 0 10237 &enable_so_iio_devt_vardecl_industrialio_core_c_10237
150230 +enable_so_uarc_size_mthca_uar_table_10238 uarc_size mthca_uar_table 0 10238 NULL
150231 +enable_so_bv_len_bio_vec_10239 bv_len bio_vec 0 10239 NULL nohasharray
150232 +enable_so_do_fcntl_fndecl_10239 do_fcntl fndecl 3 10239 &enable_so_bv_len_bio_vec_10239
150233 +enable_so_q1_depth_bna_rx_config_10241 q1_depth bna_rx_config 0 10241 NULL
150234 +enable_so_smallpageshift_sddr55_card_info_10244 smallpageshift sddr55_card_info 0 10244 NULL
150235 +enable_so_irias_add_octseq_attrib_fndecl_10252 irias_add_octseq_attrib fndecl 4 10252 NULL nohasharray
150236 +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
150237 +enable_so_filelayout_get_dense_offset_fndecl_10253 filelayout_get_dense_offset fndecl 0 10253 NULL
150238 +enable_so_agg_buf_sz_vardecl_r8152_c_10254 agg_buf_sz vardecl_r8152.c 0 10254 NULL
150239 +enable_so_nilfs_sufile_do_scrap_fndecl_10257 nilfs_sufile_do_scrap fndecl 2 10257 NULL
150240 +enable_so_iscsi_sw_tcp_send_hdr_prep_fndecl_10261 iscsi_sw_tcp_send_hdr_prep fndecl 3 10261 NULL
150241 +enable_so_sdebug_store_sectors_vardecl_scsi_debug_c_10267 sdebug_store_sectors vardecl_scsi_debug.c 0 10267 NULL
150242 +enable_so_jffs2_scan_dirent_node_fndecl_10268 jffs2_scan_dirent_node fndecl 4 10268 NULL
150243 +enable_so_dn_sendmsg_fndecl_10269 dn_sendmsg fndecl 3 10269 NULL
150244 +enable_so_rxd_process_rxd_ops_10271 rxd_process rxd_ops 0 10271 NULL
150245 +enable_so_vmci_host_setup_notify_fndecl_10273 vmci_host_setup_notify fndecl 2 10273 NULL
150246 +enable_so_vmw_resource_buf_alloc_fndecl_10284 vmw_resource_buf_alloc fndecl 0 10284 NULL
150247 +enable_so_o_width_g2d_frame_10291 o_width g2d_frame 0 10291 NULL
150248 +enable_so_num_vfs_i40e_hw_capabilities_10302 num_vfs i40e_hw_capabilities 0 10302 NULL
150249 +enable_so_ieee80211_tdls_add_chan_switch_req_ies_fndecl_10304 ieee80211_tdls_add_chan_switch_req_ies fndecl 6 10304 NULL
150250 +enable_so_scsi_vpd_inquiry_fndecl_10315 scsi_vpd_inquiry fndecl 4-0 10315 NULL
150251 +enable_so_num_mnt_opts_security_mnt_opts_10327 num_mnt_opts security_mnt_opts 0 10327 NULL
150252 +enable_so_blk_stack_limits_fndecl_10332 blk_stack_limits fndecl 3 10332 NULL
150253 +enable_so_dev_mem_write_fndecl_10335 dev_mem_write fndecl 3 10335 NULL
150254 +enable_so_down_bplus_internal_node_10336 down bplus_internal_node 0 10336 NULL
150255 +enable_so_boot_max_nr_grant_frames_vardecl_grant_table_c_10337 boot_max_nr_grant_frames vardecl_grant-table.c 0 10337 NULL
150256 +enable_so_len_xdr_buf_10338 len xdr_buf 0 10338 NULL
150257 +enable_so_sector_size_btt_10339 sector_size btt 0 10339 NULL
150258 +enable_so_cids_per_blk_cnic_local_10342 cids_per_blk cnic_local 0 10342 NULL
150259 +enable_so_nr_possible_cpus_uv_blade_info_10350 nr_possible_cpus uv_blade_info 0 10350 NULL
150260 +enable_so_s_no_blocks_logfs_super_10354 s_no_blocks logfs_super 0 10354 NULL
150261 +enable_so___pci_request_selected_regions_fndecl_10361 __pci_request_selected_regions fndecl 0 10361 NULL
150262 +enable_so_num_mgms_mlx4_caps_10367 num_mgms mlx4_caps 0 10367 NULL
150263 +enable_so_rx_filter_data_filter_read_fndecl_10369 rx_filter_data_filter_read fndecl 3 10369 NULL
150264 +enable_so_len_mt7601u_dma_buf_10376 len mt7601u_dma_buf 0 10376 NULL nohasharray
150265 +enable_so_ssid_len_libipw_network_10376 ssid_len libipw_network 0 10376 &enable_so_len_mt7601u_dma_buf_10376
150266 +enable_so_decomp_windowBits_zlib_ctx_10381 decomp_windowBits zlib_ctx 0 10381 NULL
150267 +enable_so_mc_saved_count_mc_saved_data_10384 mc_saved_count mc_saved_data 0 10384 NULL
150268 +enable_so_size_synthvid_msg_hdr_10391 size synthvid_msg_hdr 0 10391 NULL
150269 +enable_so_arg_ax25_ctl_struct_10392 arg ax25_ctl_struct 0 10392 NULL nohasharray
150270 +enable_so_cxgbi_ddp_reserve_fndecl_10392 cxgbi_ddp_reserve fndecl 4 10392 &enable_so_arg_ax25_ctl_struct_10392
150271 +enable_so_iomem_base_myri10ge_priv_10393 iomem_base myri10ge_priv 0 10393 NULL
150272 +enable_so_max_beb_per1024_mtd_dev_param_10395 max_beb_per1024 mtd_dev_param 0 10395 NULL
150273 +enable_so_tg3_run_loopback_fndecl_10398 tg3_run_loopback fndecl 2 10398 NULL
150274 +enable_so_snd_midi_channel_init_set_fndecl_10399 snd_midi_channel_init_set fndecl 1 10399 NULL
150275 +enable_so_ihead_offs_ubifs_info_10400 ihead_offs ubifs_info 0 10400 NULL
150276 +enable_so_length_p_header95_10401 length p_header95 0 10401 NULL
150277 +enable_so_romfs_blk_strnlen_fndecl_10402 romfs_blk_strnlen fndecl 3-2-0 10402 NULL
150278 +enable_so_num_data_channels_st_sensor_data_10404 num_data_channels st_sensor_data 0 10404 NULL
150279 +enable_so__osd_req_sizeof_alist_header_fndecl_10405 _osd_req_sizeof_alist_header fndecl 0 10405 NULL nohasharray
150280 +enable_so_num_vss_cfgs_wm8994_pdata_10405 num_vss_cfgs wm8994_pdata 0 10405 &enable_so__osd_req_sizeof_alist_header_fndecl_10405
150281 +enable_so_zap_vma_ptes_fndecl_10406 zap_vma_ptes fndecl 3-2 10406 NULL
150282 +enable_so_u_memcpya_fndecl_10408 u_memcpya fndecl 2-3 10408 NULL
150283 +enable_so_off_xtsplit_10412 off xtsplit 0 10412 NULL
150284 +enable_so_max_ctrl_size_ims_pcu_10413 max_ctrl_size ims_pcu 0 10413 NULL
150285 +enable_so_nent_mlx4_eq_10414 nent mlx4_eq 0 10414 NULL
150286 +enable_so_size_xt_table_info_10415 size xt_table_info 0 10415 NULL
150287 +enable_so_xfs_iget_cache_miss_fndecl_10416 xfs_iget_cache_miss fndecl 4 10416 NULL
150288 +enable_so_spi_async_locked_fndecl_10422 spi_async_locked fndecl 0 10422 NULL
150289 +enable_so_byte_count_iwl_rx_mpdu_res_start_10437 byte_count iwl_rx_mpdu_res_start 0 10437 NULL nohasharray
150290 +enable_so_flip_sd_gl860_10437 flip sd_gl860 0 10437 &enable_so_byte_count_iwl_rx_mpdu_res_start_10437
150291 +enable_so_alloc_switch_ctx_fndecl_10438 alloc_switch_ctx fndecl 3-2 10438 NULL
150292 +enable_so_radeon_gem_object_create_fndecl_10441 radeon_gem_object_create fndecl 2 10441 NULL
150293 +enable_so_expand_inode_data_fndecl_10442 expand_inode_data fndecl 2-3 10442 NULL
150294 +enable_so_NumberOfPhyBlock_ms_lib_ctrl_10443 NumberOfPhyBlock ms_lib_ctrl 0 10443 NULL
150295 +enable_so_wrfilled_cyberjack_private_10444 wrfilled cyberjack_private 0 10444 NULL
150296 +enable_so_p9dirent_read_fndecl_10450 p9dirent_read fndecl 3-0 10450 NULL
150297 +enable_so_ext4_write_inline_data_end_fndecl_10452 ext4_write_inline_data_end fndecl 0-4 10452 NULL
150298 +enable_so_page_shift_nand_chip_10453 page_shift nand_chip 0 10453 NULL
150299 +enable_so_length_acpi_mem_space_context_10460 length acpi_mem_space_context 0 10460 NULL
150300 +enable_so_vxlan_change_mtu_fndecl_10464 vxlan_change_mtu fndecl 2 10464 NULL
150301 +enable_so_wNdpOutDivisor_usb_cdc_ncm_ntb_parameters_10467 wNdpOutDivisor usb_cdc_ncm_ntb_parameters 0 10467 NULL nohasharray
150302 +enable_so_notesize_fndecl_10467 notesize fndecl 0 10467 &enable_so_wNdpOutDivisor_usb_cdc_ncm_ntb_parameters_10467
150303 +enable_so___genwqe_readq_fndecl_10470 __genwqe_readq fndecl 0 10470 NULL
150304 +enable_so_usblp_ioctl_fndecl_10472 usblp_ioctl fndecl 2 10472 NULL
150305 +enable_so_nfsd4_get_drc_mem_fndecl_10473 nfsd4_get_drc_mem fndecl 0 10473 NULL
150306 +enable_so_devnum_usb_device_10474 devnum usb_device 0 10474 NULL
150307 +enable_so_out_min_chans_snd_card_asihpi_10490 out_min_chans snd_card_asihpi 0 10490 NULL
150308 +enable_so_nbpf_prep_memcpy_fndecl_10492 nbpf_prep_memcpy fndecl 4 10492 NULL
150309 +enable_so_msb_cache_read_fndecl_10494 msb_cache_read fndecl 5 10494 NULL
150310 +enable_so_ext4_ext_direct_IO_fndecl_10503 ext4_ext_direct_IO fndecl 3 10503 NULL nohasharray
150311 +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
150312 +enable_so_cidlen_he_rbrq_10504 cidlen he_rbrq 0 10504 NULL
150313 +enable_so_cr_namelen_nfsd4_create_10516 cr_namelen nfsd4_create 0 10516 NULL
150314 +enable_so_dma_burst_size_chip_data_10519 dma_burst_size chip_data 0 10519 NULL nohasharray
150315 +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
150316 +enable_so_posix_acl_from_xattr_fndecl_10527 posix_acl_from_xattr fndecl 3 10527 NULL nohasharray
150317 +enable_so_sd_alloc_ctl_entry_fndecl_10527 sd_alloc_ctl_entry fndecl 1 10527 &enable_so_posix_acl_from_xattr_fndecl_10527
150318 +enable_so_channels_gk104_fifo_impl_10531 channels gk104_fifo_impl 0 10531 NULL
150319 +enable_so_stride_cobalt_stream_10537 stride cobalt_stream 0 10537 NULL
150320 +enable_so_cros_ec_prepare_tx_fndecl_10539 cros_ec_prepare_tx fndecl 0 10539 NULL
150321 +enable_so_logical_scrub_page_10540 logical scrub_page 0 10540 NULL nohasharray
150322 +enable_so_touchscreen_set_params_fndecl_10540 touchscreen_set_params fndecl 3 10540 &enable_so_logical_scrub_page_10540
150323 +enable_so_xen_set_callback_via_fndecl_10541 xen_set_callback_via fndecl 1 10541 NULL
150324 +enable_so_isofs_get_last_session_fndecl_10547 isofs_get_last_session fndecl 0 10547 NULL nohasharray
150325 +enable_so_y_skip_top_mt9m001_10547 y_skip_top mt9m001 0 10547 &enable_so_isofs_get_last_session_fndecl_10547
150326 +enable_so_read_cis_cache_fndecl_10548 read_cis_cache fndecl 4 10548 NULL
150327 +enable_so_nv_change_mtu_fndecl_10551 nv_change_mtu fndecl 2 10551 NULL
150328 +enable_so_wm_adsp_read_algs_fndecl_10552 wm_adsp_read_algs fndecl 4 10552 NULL
150329 +enable_so_new_leaf_fndecl_10553 new_leaf fndecl 3 10553 NULL
150330 +enable_so_id_hsi_controller_10557 id hsi_controller 0 10557 NULL
150331 +enable_so_tcf_csum_ipv6_icmp_fndecl_10562 tcf_csum_ipv6_icmp fndecl 3 10562 NULL
150332 +enable_so_lpfc_present_cpu_vardecl_10567 lpfc_present_cpu vardecl 0 10567 NULL
150333 +enable_so_cnt_rsxx_reg_access_10573 cnt rsxx_reg_access 0 10573 NULL
150334 +enable_so_sb_bsize_shift_gfs2_sb_host_10575 sb_bsize_shift gfs2_sb_host 0 10575 NULL nohasharray
150335 +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
150336 +enable_so_initialized_size__ntfs_inode_10576 initialized_size _ntfs_inode 0 10576 NULL
150337 +enable_so_fuse_fsync_fndecl_10582 fuse_fsync fndecl 2-3 10582 NULL
150338 +enable_so_op_bytes_x86_emulate_ctxt_10583 op_bytes x86_emulate_ctxt 0 10583 NULL
150339 +enable_so_vmw_compat_shader_add_fndecl_10585 vmw_compat_shader_add fndecl 6 10585 NULL nohasharray
150340 +enable_so_buf_idx_mei_cl_cb_10585 buf_idx mei_cl_cb 0 10585 &enable_so_vmw_compat_shader_add_fndecl_10585
150341 +enable_so_pcmcia_make_resource_fndecl_10591 pcmcia_make_resource fndecl 2-1 10591 NULL
150342 +enable_so_size_ib_uverbs_flow_attr_10597 size ib_uverbs_flow_attr 0 10597 NULL
150343 +enable_so_max_frame_size_atl1_hw_10601 max_frame_size atl1_hw 0 10601 NULL
150344 +enable_so_num_amd_northbridge_info_10604 num amd_northbridge_info 0 10604 NULL
150345 +enable_so_uremainder64_st_cmdstatus_10606 uremainder64 st_cmdstatus 0 10606 NULL
150346 +enable_so_inst_size_il4965_firmware_pieces_10607 inst_size il4965_firmware_pieces 0 10607 NULL
150347 +enable_so_rq_depth_p9_rdma_opts_10608 rq_depth p9_rdma_opts 0 10608 NULL nohasharray
150348 +enable_so_index_vardecl_mtpav_c_10608 index vardecl_mtpav.c 0 10608 &enable_so_rq_depth_p9_rdma_opts_10608
150349 +enable_so_brightness_sd_gl860_10611 brightness sd_gl860 0 10611 NULL
150350 +enable_so_epp_free_pages_ptlrpc_enc_page_pool_10614 epp_free_pages ptlrpc_enc_page_pool 0 10614 NULL
150351 +enable_so_ext4_trim_all_free_fndecl_10621 ext4_trim_all_free fndecl 0-4-2 10621 NULL
150352 +enable_so_rfs_ipg_rx_10623 rfs ipg_rx 0 10623 NULL
150353 +enable_so___probe_kernel_write_fndecl_10625 __probe_kernel_write fndecl 3 10625 NULL nohasharray
150354 +enable_so_lch_count_omap_dma_dev_attr_10625 lch_count omap_dma_dev_attr 0 10625 &enable_so___probe_kernel_write_fndecl_10625
150355 +enable_so_pkt_alignment_factor_rndis_initialize_complete_10633 pkt_alignment_factor rndis_initialize_complete 0 10633 NULL
150356 +enable_so_ib_ipath_max_srq_wrs_vardecl_10635 ib_ipath_max_srq_wrs vardecl 0 10635 NULL
150357 +enable_so_pgbase_nfs_pgio_args_10636 pgbase nfs_pgio_args 0 10636 NULL
150358 +enable_so_tcp_sendpage_fndecl_10646 tcp_sendpage fndecl 4-3 10646 NULL nohasharray
150359 +enable_so_sge_length_ipath_sge_10646 sge_length ipath_sge 0 10646 &enable_so_tcp_sendpage_fndecl_10646
150360 +enable_so_memory_size_vhost_memory_region_10658 memory_size vhost_memory_region 0 10658 NULL
150361 +enable_so_tlv_put_fndecl_10659 tlv_put fndecl 4-0 10659 NULL
150362 +enable_so_s_3apbshift_ufs_sb_private_info_10663 s_3apbshift ufs_sb_private_info 0 10663 NULL
150363 +enable_so_start_mtd_oob_buf32_10664 start mtd_oob_buf32 0 10664 NULL
150364 +enable_so_len_ahd_dma_seg_10667 len ahd_dma_seg 0 10667 NULL
150365 +enable_so_radeon_ttm_tt_create_fndecl_10672 radeon_ttm_tt_create fndecl 2 10672 NULL
150366 +enable_so_mmc_test_simple_transfer_fndecl_10675 mmc_test_simple_transfer fndecl 6-5-3 10675 NULL
150367 +enable_so_cdce925_pll_find_rate_fndecl_10678 cdce925_pll_find_rate fndecl 2-1 10678 NULL
150368 +enable_so_xfs_rtfind_forw_fndecl_10681 xfs_rtfind_forw fndecl 3 10681 NULL nohasharray
150369 +enable_so_word_size_e1000_nvm_info_10681 word_size e1000_nvm_info 0 10681 &enable_so_xfs_rtfind_forw_fndecl_10681
150370 +enable_so_tlen_sc18is602_10682 tlen sc18is602 0 10682 NULL
150371 +enable_so_sb_bsize_gfs2_sb_host_10683 sb_bsize gfs2_sb_host 0 10683 NULL
150372 +enable_so_ipv6_setsockopt_fndecl_10684 ipv6_setsockopt fndecl 5 10684 NULL
150373 +enable_so_extract_icmp6_fields_fndecl_10685 extract_icmp6_fields fndecl 2 10685 NULL nohasharray
150374 +enable_so_write_file_bool_bmps_fndecl_10685 write_file_bool_bmps fndecl 3 10685 &enable_so_extract_icmp6_fields_fndecl_10685
150375 +enable_so_num_frames_usb_usbvision_10687 num_frames usb_usbvision 0 10687 NULL
150376 +enable_so_alauda_read_block_raw_fndecl_10688 alauda_read_block_raw fndecl 4 10688 NULL
150377 +enable_so_rx_ba_win_size_conf_ht_setting_10692 rx_ba_win_size conf_ht_setting 0 10692 NULL
150378 +enable_so_gigaset_initbcs_fndecl_10693 gigaset_initbcs fndecl 3 10693 NULL
150379 +enable_so_lov_ost_pool_extend_fndecl_10697 lov_ost_pool_extend fndecl 2 10697 NULL
150380 +enable_so_afs_write_begin_fndecl_10704 afs_write_begin fndecl 3-4 10704 NULL
150381 +enable_so_xfs_alloc_read_agf_fndecl_10710 xfs_alloc_read_agf fndecl 3 10710 NULL
150382 +enable_so_iio_set_bytes_per_datum_kfifo_fndecl_10712 iio_set_bytes_per_datum_kfifo fndecl 2 10712 NULL
150383 +enable_so_set_le_key_k_offset_fndecl_10721 set_le_key_k_offset fndecl 3 10721 NULL
150384 +enable_so___btrfs_getxattr_fndecl_10728 __btrfs_getxattr fndecl 0 10728 NULL nohasharray
150385 +enable_so_ipv6_recv_error_fndecl_10728 ipv6_recv_error fndecl 3 10728 &enable_so___btrfs_getxattr_fndecl_10728 nohasharray
150386 +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
150387 +enable_so_xen_p2m_size_vardecl_10730 xen_p2m_size vardecl 0 10730 NULL
150388 +enable_so_iomem_reg_shift_serial_struct_10733 iomem_reg_shift serial_struct 0 10733 NULL
150389 +enable_so_write_file_queue_fndecl_10737 write_file_queue fndecl 3 10737 NULL
150390 +enable_so_sb_dirblklog_xfs_sb_10738 sb_dirblklog xfs_sb 0 10738 NULL
150391 +enable_so___memblock_find_range_bottom_up_fndecl_10739 __memblock_find_range_bottom_up fndecl 0-4-1-2 10739 NULL
150392 +enable_so_x_offset_mxr_crop_10741 x_offset mxr_crop 0 10741 NULL
150393 +enable_so_max_bytes_per_io_se_dev_attrib_10744 max_bytes_per_io se_dev_attrib 0 10744 NULL
150394 +enable_so_BufSizeShift_qinfo_chip_10746 BufSizeShift qinfo_chip 0 10746 NULL nohasharray
150395 +enable_so_page_errors_dio_10746 page_errors dio 0 10746 &enable_so_BufSizeShift_qinfo_chip_10746
150396 +enable_so_next_blkoff_curseg_info_10751 next_blkoff curseg_info 0 10751 NULL
150397 +enable_so_NumEraseRegions_cfi_ident_10753 NumEraseRegions cfi_ident 0 10753 NULL
150398 +enable_so_write_head_fndecl_10754 write_head fndecl 4 10754 NULL
150399 +enable_so_adu_write_fndecl_10756 adu_write fndecl 3 10756 NULL
150400 +enable_so_data_start_dm_verity_10759 data_start dm_verity 0 10759 NULL
150401 +enable_so_new_chunk_core_exception_10765 new_chunk core_exception 0 10765 NULL
150402 +enable_so_batadv_send_tt_request_fndecl_10766 batadv_send_tt_request fndecl 5 10766 NULL
150403 +enable_so_zoran_ioctl_fndecl_10770 zoran_ioctl fndecl 2 10770 NULL
150404 +enable_so_ocrdma_reg_user_mr_fndecl_10777 ocrdma_reg_user_mr fndecl 2-3 10777 NULL
150405 +enable_so_amdgpu_ttm_tt_create_fndecl_10779 amdgpu_ttm_tt_create fndecl 2 10779 NULL
150406 +enable_so_setexposure_fndecl_10781 setexposure fndecl 0 10781 NULL
150407 +enable_so_btrfs_free_extent_fndecl_10784 btrfs_free_extent fndecl 4-3 10784 NULL
150408 +enable_so_soc_camera_calc_client_output_fndecl_10789 soc_camera_calc_client_output fndecl 6 10789 NULL
150409 +enable_so_ea_write_fndecl_10791 ea_write fndecl 3 10791 NULL nohasharray
150410 +enable_so_pnode_sz_ubifs_info_10791 pnode_sz ubifs_info 0 10791 &enable_so_ea_write_fndecl_10791 nohasharray
150411 +enable_so_dwc3_testmode_write_fndecl_10791 dwc3_testmode_write fndecl 3 10791 &enable_so_pnode_sz_ubifs_info_10791
150412 +enable_so_read32_brcmf_buscore_ops_10795 read32 brcmf_buscore_ops 0 10795 NULL
150413 +enable_so_set_config_fndecl_10797 set_config fndecl 0 10797 NULL nohasharray
150414 +enable_so_debug_debug2_read_fndecl_10797 debug_debug2_read fndecl 3 10797 &enable_so_set_config_fndecl_10797
150415 +enable_so_num_events_kfd_ioctl_wait_events_args_10811 num_events kfd_ioctl_wait_events_args 0 10811 NULL
150416 +enable_so_ssb_sdio_block_write_fndecl_10815 ssb_sdio_block_write fndecl 3 10815 NULL nohasharray
150417 +enable_so_num_rxd_netxen_adapter_10815 num_rxd netxen_adapter 0 10815 &enable_so_ssb_sdio_block_write_fndecl_10815
150418 +enable_so_add_regulator_linked_fndecl_10819 add_regulator_linked fndecl 1 10819 NULL
150419 +enable_so_batadv_dat_snoop_incoming_arp_request_fndecl_10823 batadv_dat_snoop_incoming_arp_request fndecl 3 10823 NULL
150420 +enable_so_read_reg_ipac_hw_10828 read_reg ipac_hw 0 10828 NULL
150421 +enable_so_num_mpt_mthca_profile_10833 num_mpt mthca_profile 0 10833 NULL
150422 +enable_so_rsrc_start_usb_hcd_10839 rsrc_start usb_hcd 0 10839 NULL
150423 +enable_so_do_generic_file_read_fndecl_10842 do_generic_file_read fndecl 0-4 10842 NULL
150424 +enable_so_get_cmdline_fndecl_10847 get_cmdline fndecl 3 10847 NULL
150425 +enable_so_dma_last_offset_ivtv_stream_10849 dma_last_offset ivtv_stream 0 10849 NULL
150426 +enable_so_irq_kvm_interrupt_10850 irq kvm_interrupt 0 10850 NULL
150427 +enable_so_set_le_fndecl_10854 set_le fndecl 4 10854 NULL nohasharray
150428 +enable_so_rndis_add_response_fndecl_10854 rndis_add_response fndecl 2 10854 &enable_so_set_le_fndecl_10854
150429 +enable_so_lpg_shift_nvkm_mmu_10855 lpg_shift nvkm_mmu 0 10855 NULL
150430 +enable_so_v_size_nilfs_argv_10857 v_size nilfs_argv 0 10857 NULL
150431 +enable_so_h_stk_size_10859 h stk_size 0 10859 NULL
150432 +enable_so_chachapoly_alloc_fndecl_10861 chachapoly_alloc fndecl 3 10861 NULL
150433 +enable_so_size_fuse_notify_retrieve_out_10862 size fuse_notify_retrieve_out 0 10862 NULL
150434 +enable_so_disk_expand_part_tbl_fndecl_10866 disk_expand_part_tbl fndecl 2 10866 NULL
150435 +enable_so_ezusb_fill_req_fndecl_10868 ezusb_fill_req fndecl 0-2 10868 NULL nohasharray
150436 +enable_so_ts_packet_count_cx23885_tsport_10868 ts_packet_count cx23885_tsport 0 10868 &enable_so_ezusb_fill_req_fndecl_10868
150437 +enable_so_p9stat_read_fndecl_10869 p9stat_read fndecl 3 10869 NULL
150438 +enable_so_pci_mmconfig_alloc_fndecl_10875 pci_mmconfig_alloc fndecl 2-3-4 10875 NULL
150439 +enable_so_w9968cf_pkt_scan_fndecl_10878 w9968cf_pkt_scan fndecl 3 10878 NULL
150440 +enable_so___vmalloc_fndecl_10880 __vmalloc fndecl 1 10880 NULL
150441 +enable_so_sgl_map_user_pages_fndecl_10881 sgl_map_user_pages fndecl 3-2 10881 NULL
150442 +enable_so_num_streams_lola_pcm_10882 num_streams lola_pcm 0 10882 NULL
150443 +enable_so_run_apei_exec_ins_type_10886 run apei_exec_ins_type 0 10886 NULL
150444 +enable_so_drv_tss_rings_qlcnic_adapter_10887 drv_tss_rings qlcnic_adapter 0 10887 NULL
150445 +enable_so_spu_write_fndecl_10889 spu_write fndecl 4 10889 NULL
150446 +enable_so_ocfs2_reflink_xattr_rec_fndecl_10890 ocfs2_reflink_xattr_rec fndecl 3 10890 NULL
150447 +enable_so_max_sge_per_wr_iwch_rnic_attributes_10892 max_sge_per_wr iwch_rnic_attributes 0 10892 NULL
150448 +enable_so_ecryptfs_lower_header_size_fndecl_10894 ecryptfs_lower_header_size fndecl 0 10894 NULL
150449 +enable_so_slot_device_offset_controller_10895 slot_device_offset controller 0 10895 NULL
150450 +enable_so_table_size_acpi_einj_trigger_10899 table_size acpi_einj_trigger 0 10899 NULL
150451 +enable_so_i2c_hid_get_report_length_fndecl_10901 i2c_hid_get_report_length fndecl 0 10901 NULL nohasharray
150452 +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 nohasharray
150453 +enable_so_qlcnic_sriov_cfg_vf_def_mac_fndecl_10901 qlcnic_sriov_cfg_vf_def_mac fndecl 0 10901 &enable_so_n_cell_devs_intel_soc_pmic_config_10901
150454 +enable_so_udf_read_ptagged_fndecl_10905 udf_read_ptagged fndecl 3 10905 NULL
150455 +enable_so_vfio_lock_acct_fndecl_10907 vfio_lock_acct fndecl 1 10907 NULL
150456 +enable_so_msix_vector_count_MPT2SAS_ADAPTER_10911 msix_vector_count MPT2SAS_ADAPTER 0 10911 NULL
150457 +enable_so_SyS_listxattr_fndecl_10916 SyS_listxattr fndecl 3 10916 NULL
150458 +enable_so_data_len_rndis_packet_10918 data_len rndis_packet 0 10918 NULL nohasharray
150459 +enable_so_compat_sys_msgsnd_fndecl_10918 compat_sys_msgsnd fndecl 3 10918 &enable_so_data_len_rndis_packet_10918
150460 +enable_so_isdn_audio_adpcm2xlaw_fndecl_10927 isdn_audio_adpcm2xlaw fndecl 0 10927 NULL
150461 +enable_so_ieee802154_max_payload_fndecl_10928 ieee802154_max_payload fndecl 0 10928 NULL
150462 +enable_so_ud_bmove_fndecl_10929 ud_bmove fndecl 8-6-4-7-5-3 10929 NULL
150463 +enable_so_ieee80211_if_read_dot11MeshAwakeWindowDuration_fndecl_10932 ieee80211_if_read_dot11MeshAwakeWindowDuration fndecl 3 10932 NULL
150464 +enable_so_dma_acm_rb_10934 dma acm_rb 0 10934 NULL
150465 +enable_so_l_offset_lbuf_10935 l_offset lbuf 0 10935 NULL
150466 +enable_so_compat_raw_setsockopt_fndecl_10937 compat_raw_setsockopt fndecl 5 10937 NULL
150467 +enable_so_mlx5_ib_alloc_fast_reg_page_list_fndecl_10941 mlx5_ib_alloc_fast_reg_page_list fndecl 2 10941 NULL
150468 +enable_so_bmp_len_xfrm_replay_state_esn_10945 bmp_len xfrm_replay_state_esn 0 10945 NULL
150469 +enable_so_max_i2c_msg_len_r820t_config_10951 max_i2c_msg_len r820t_config 0 10951 NULL nohasharray
150470 +enable_so_acc_passl_accessdata_dn_10951 acc_passl accessdata_dn 0 10951 &enable_so_max_i2c_msg_len_r820t_config_10951
150471 +enable_so_num_lan_qps_i40e_pf_10953 num_lan_qps i40e_pf 0 10953 NULL
150472 +enable_so_iov_iter_init_fndecl_10954 iov_iter_init fndecl 5-4 10954 NULL
150473 +enable_so_dest_offset_btrfs_ioctl_clone_range_args_10960 dest_offset btrfs_ioctl_clone_range_args 0 10960 NULL
150474 +enable_so_drm_fb_helper_fill_fix_fndecl_10963 drm_fb_helper_fill_fix fndecl 2 10963 NULL
150475 +enable_so_brd_alloc_fndecl_10964 brd_alloc fndecl 1 10964 NULL
150476 +enable_so_jffs2_flash_read_fndecl_10968 jffs2_flash_read fndecl 0 10968 NULL
150477 +enable_so_agp_remap_fndecl_10970 agp_remap fndecl 2 10970 NULL
150478 +enable_so_sys_ftruncate_fndecl_10972 sys_ftruncate fndecl 2 10972 NULL
150479 +enable_so_encrypted_key_size_ecryptfs_session_key_10978 encrypted_key_size ecryptfs_session_key 0 10978 NULL nohasharray
150480 +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
150481 +enable_so_ssid_len_wl1271_scan_10981 ssid_len wl1271_scan 0 10981 NULL
150482 +enable_so_lbs_wrbbp_write_fndecl_10987 lbs_wrbbp_write fndecl 3 10987 NULL
150483 +enable_so_l2cap_build_conf_rsp_fndecl_10988 l2cap_build_conf_rsp fndecl 0 10988 NULL
150484 +enable_so_msize_vardecl_pmc551_c_10989 msize vardecl_pmc551.c 0 10989 NULL nohasharray
150485 +enable_so_vxfs_blkiget_fndecl_10989 vxfs_blkiget fndecl 3-2 10989 &enable_so_msize_vardecl_pmc551_c_10989
150486 +enable_so_height_v4l2_rect_10995 height v4l2_rect 0 10995 NULL
150487 +enable_so_bitmap_size_dma_iommu_mapping_10997 bitmap_size dma_iommu_mapping 0 10997 NULL
150488 +enable_so_punit_size2_intel_pmc_ipc_dev_10998 punit_size2 intel_pmc_ipc_dev 0 10998 NULL
150489 +enable_so_rate_n_flags_from_tbl_fndecl_11000 rate_n_flags_from_tbl fndecl 0 11000 NULL nohasharray
150490 +enable_so_l2nbperpage_jfs_sb_info_11000 l2nbperpage jfs_sb_info 0 11000 &enable_so_rate_n_flags_from_tbl_fndecl_11000
150491 +enable_so_dccp_setsockopt_ccid_fndecl_11006 dccp_setsockopt_ccid fndecl 4 11006 NULL
150492 +enable_so_drm_gtf2_m_fndecl_11007 drm_gtf2_m fndecl 0 11007 NULL
150493 +enable_so_SyS_semop_fndecl_11008 SyS_semop fndecl 3 11008 NULL
150494 +enable_so_height_v4l2_pix_format_mplane_11015 height v4l2_pix_format_mplane 0 11015 NULL
150495 +enable_so_xferred_ScsiReqBlk_11017 xferred ScsiReqBlk 0 11017 NULL
150496 +enable_so_target_cmd_size_check_fndecl_11019 target_cmd_size_check fndecl 2 11019 NULL
150497 +enable_so_rx_pkt_pad_sge_11020 rx_pkt_pad sge 0 11020 NULL
150498 +enable_so_len_hif_scatter_req_11022 len hif_scatter_req 0 11022 NULL
150499 +enable_so_register_virtio_driver_fndecl_11025 register_virtio_driver fndecl 0 11025 NULL
150500 +enable_so_preallocate_pcm_pages_fndecl_11026 preallocate_pcm_pages fndecl 2 11026 NULL
150501 +enable_so_count_vfio_irq_set_11027 count vfio_irq_set 0 11027 NULL
150502 +enable_so_len_nfs3_mknodargs_11030 len nfs3_mknodargs 0 11030 NULL
150503 +enable_so_snd_ac97_pcm_assign_fndecl_11033 snd_ac97_pcm_assign fndecl 2 11033 NULL
150504 +enable_so_sectors_per_block_pool_11035 sectors_per_block pool 0 11035 NULL nohasharray
150505 +enable_so_audio_outs_vx_core_11035 audio_outs vx_core 0 11035 &enable_so_sectors_per_block_pool_11035
150506 +enable_so_namelen_xfs_dir2_data_entry_11036 namelen xfs_dir2_data_entry 0 11036 NULL nohasharray
150507 +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
150508 +enable_so_iic_tpm_write_fndecl_11039 iic_tpm_write fndecl 3 11039 NULL
150509 +enable_so_DataTransferLength_DAC960_V2_UserCommand_11040 DataTransferLength DAC960_V2_UserCommand 0 11040 NULL
150510 +enable_so_xlog_write_log_records_fndecl_11042 xlog_write_log_records fndecl 4-3 11042 NULL
150511 +enable_so_isr_pci_pm_read_fndecl_11052 isr_pci_pm_read fndecl 3 11052 NULL
150512 +enable_so_va_size_coda_vattr_11053 va_size coda_vattr 0 11053 NULL
150513 +enable_so_do_mlock_fndecl_11062 do_mlock fndecl 2-1 11062 NULL
150514 +enable_so_default_rds_buf_vardecl_fmdrv_common_c_11072 default_rds_buf vardecl_fmdrv_common.c 0 11072 NULL
150515 +enable_so_i2c_writebytes_fndecl_11073 i2c_writebytes fndecl 4 11073 NULL
150516 +enable_so_show_attribute_configfs_item_operations_11074 show_attribute configfs_item_operations 0 11074 NULL
150517 +enable_so_pipeline_sec_frag_swi_read_fndecl_11077 pipeline_sec_frag_swi_read fndecl 3 11077 NULL
150518 +enable_so_entry_fat_entry_11079 entry fat_entry 0 11079 NULL
150519 +enable_so_irda_sendmsg_dgram_fndecl_11080 irda_sendmsg_dgram fndecl 3 11080 NULL
150520 +enable_so_tx_load_dma_buffer_fndecl_11082 tx_load_dma_buffer fndecl 3 11082 NULL
150521 +enable_so_compat_readv_fndecl_11090 compat_readv fndecl 3 11090 NULL
150522 +enable_so_snd_pcm_new_internal_fndecl_11091 snd_pcm_new_internal fndecl 4-5 11091 NULL
150523 +enable_so_read_bytes_sh_flctl_11094 read_bytes sh_flctl 0 11094 NULL
150524 +enable_so_do_brk_fndecl_11101 do_brk fndecl 1-2 11101 NULL
150525 +enable_so_acpi_processor_power_verify_fndecl_11105 acpi_processor_power_verify fndecl 0 11105 NULL
150526 +enable_so_ext4_acl_from_disk_fndecl_11107 ext4_acl_from_disk fndecl 2 11107 NULL nohasharray
150527 +enable_so___getblk_gfp_fndecl_11107 __getblk_gfp fndecl 3-2 11107 &enable_so_ext4_acl_from_disk_fndecl_11107
150528 +enable_so_wm9081_set_sysclk_fndecl_11108 wm9081_set_sysclk fndecl 4 11108 NULL nohasharray
150529 +enable_so_wTotalBlockNumber_ms_bootblock_sysinf_11108 wTotalBlockNumber ms_bootblock_sysinf 0 11108 &enable_so_wm9081_set_sysclk_fndecl_11108
150530 +enable_so_hpfs_ea_read_fndecl_11118 hpfs_ea_read fndecl 5-4-2 11118 NULL
150531 +enable_so_whitebal_sd_gl860_11124 whitebal sd_gl860 0 11124 NULL
150532 +enable_so_n_channels_iwl_mcc_update_resp_11128 n_channels iwl_mcc_update_resp 0 11128 NULL
150533 +enable_so___vmalloc_node_flags_fndecl_11139 __vmalloc_node_flags fndecl 1 11139 NULL
150534 +enable_so_num__cdrp_cmd_11142 num _cdrp_cmd 0 11142 NULL
150535 +enable_so_pageshift_nand_flash_dev_11144 pageshift nand_flash_dev 0 11144 NULL
150536 +enable_so_queue_depth_nullb_queue_11148 queue_depth nullb_queue 0 11148 NULL
150537 +enable_so_max_voices_snd_emux_11150 max_voices snd_emux 0 11150 NULL
150538 +enable_so_generic_ptrace_pokedata_fndecl_11153 generic_ptrace_pokedata fndecl 2 11153 NULL
150539 +enable_so_o2nm_this_node_fndecl_11157 o2nm_this_node fndecl 0 11157 NULL
150540 +enable_so_resource_from_user_fndecl_11158 resource_from_user fndecl 3 11158 NULL
150541 +enable_so_tclass_mlx5_av_11167 tclass mlx5_av 0 11167 NULL
150542 +enable_so_rmtvaluelen2_xfs_da_args_11168 rmtvaluelen2 xfs_da_args 0 11168 NULL
150543 +enable_so_drv_rss_rings_qlcnic_adapter_11169 drv_rss_rings qlcnic_adapter 0 11169 NULL
150544 +enable_so_max_supported_extcon_dev_11172 max_supported extcon_dev 0 11172 NULL
150545 +enable_so_udf_tread_fndecl_11173 udf_tread fndecl 2 11173 NULL
150546 +enable_so_payload_len_fc_bsg_buffer_11175 payload_len fc_bsg_buffer 0 11175 NULL
150547 +enable_so_c4iw_init_resource_fndecl_11178 c4iw_init_resource fndecl 2-3 11178 NULL
150548 +enable_so_jp_journal_1st_block_journal_params_11180 jp_journal_1st_block journal_params 0 11180 NULL
150549 +enable_so_ilo_major_vardecl_hpilo_c_11181 ilo_major vardecl_hpilo.c 0 11181 NULL
150550 +enable_so_xtInsert_fndecl_11182 xtInsert fndecl 5-4 11182 NULL
150551 +enable_so_resp_len_pn533_cmd_11192 resp_len pn533_cmd 0 11192 NULL nohasharray
150552 +enable_so_sys_get_mempolicy_fndecl_11192 sys_get_mempolicy fndecl 4-3 11192 &enable_so_resp_len_pn533_cmd_11192
150553 +enable_so_resid_virtio_scsi_cmd_resp_11193 resid virtio_scsi_cmd_resp 0 11193 NULL
150554 +enable_so_nr_pins_timbgpio_platform_data_11195 nr_pins timbgpio_platform_data 0 11195 NULL
150555 +enable_so_mangle_sdp_packet_fndecl_11198 mangle_sdp_packet fndecl 10 11198 NULL
150556 +enable_so_trace_insert_enum_map_fndecl_11206 trace_insert_enum_map fndecl 3 11206 NULL
150557 +enable_so_vb2_fop_write_fndecl_11207 vb2_fop_write fndecl 3 11207 NULL
150558 +enable_so_used_bytes_ubi_volume_info_11209 used_bytes ubi_volume_info 0 11209 NULL
150559 +enable_so_mq_create_fndecl_11210 mq_create fndecl 1 11210 NULL nohasharray
150560 +enable_so_lstcon_session_info_fndecl_11210 lstcon_session_info fndecl 6 11210 &enable_so_mq_create_fndecl_11210
150561 +enable_so_tx_tx_template_prepared_read_fndecl_11211 tx_tx_template_prepared_read fndecl 3 11211 NULL
150562 +enable_so_num_encoder_drm_mode_config_11220 num_encoder drm_mode_config 0 11220 NULL
150563 +enable_so_hiwat_bus_param_11240 hiwat bus_param 0 11240 NULL
150564 +enable_so_hdr_len_ieee80211_cipher_scheme_11241 hdr_len ieee80211_cipher_scheme 0 11241 NULL
150565 +enable_so_enable_write_fndecl_11243 enable_write fndecl 3 11243 NULL
150566 +enable_so_tx_tx_template_programmed_read_fndecl_11246 tx_tx_template_programmed_read fndecl 3 11246 NULL
150567 +enable_so_nfsd_get_default_max_blksize_fndecl_11251 nfsd_get_default_max_blksize fndecl 0 11251 NULL
150568 +enable_so_ds1305_nvram_write_fndecl_11267 ds1305_nvram_write fndecl 5-6 11267 NULL
150569 +enable_so_hactive_videomode_11268 hactive videomode 0 11268 NULL
150570 +enable_so_btcx_align_fndecl_11269 btcx_align fndecl 4 11269 NULL
150571 +enable_so_snd_midi_event_encode_byte_fndecl_11281 snd_midi_event_encode_byte fndecl 0 11281 NULL
150572 +enable_so_btrfs_set_prop_fndecl_11284 btrfs_set_prop fndecl 4 11284 NULL
150573 +enable_so_exynos4_jpeg_get_output_buffer_size_fndecl_11286 exynos4_jpeg_get_output_buffer_size fndecl 0-3 11286 NULL
150574 +enable_so_push_rx_fndecl_11288 push_rx fndecl 3 11288 NULL
150575 +enable_so_snd_efw_resp_buf_size_vardecl_11291 snd_efw_resp_buf_size vardecl 0 11291 NULL
150576 +enable_so_mxuport_prepare_write_buffer_fndecl_11292 mxuport_prepare_write_buffer fndecl 3 11292 NULL
150577 +enable_so_alloc_test_extent_buffer_fndecl_11293 alloc_test_extent_buffer fndecl 2 11293 NULL
150578 +enable_so_newkey_nilfs_btnode_chkey_ctxt_11296 newkey nilfs_btnode_chkey_ctxt 0 11296 NULL
150579 +enable_so_max_pkt_size_stk1160_11297 max_pkt_size stk1160 0 11297 NULL
150580 +enable_so_wqe_shift_mthca_wq_11298 wqe_shift mthca_wq 0 11298 NULL
150581 +enable_so_remap_pfn_range_fndecl_11299 remap_pfn_range fndecl 3-4 11299 NULL
150582 +enable_so_data_len_ssif_info_11317 data_len ssif_info 0 11317 NULL
150583 +enable_so_buf_len_mwifiex_sdio_mpa_tx_11323 buf_len mwifiex_sdio_mpa_tx 0 11323 NULL
150584 +enable_so_len_brcmf_vndr_dcmd_hdr_11327 len brcmf_vndr_dcmd_hdr 0 11327 NULL nohasharray
150585 +enable_so_alloc_sched_domains_fndecl_11327 alloc_sched_domains fndecl 1 11327 &enable_so_len_brcmf_vndr_dcmd_hdr_11327
150586 +enable_so_c2_alloc_cq_buf_fndecl_11328 c2_alloc_cq_buf fndecl 4 11328 NULL
150587 +enable_so_page_size_ib_umem_11335 page_size ib_umem 0 11335 NULL
150588 +enable_so_charcount_console_font_11338 charcount console_font 0 11338 NULL
150589 +enable_so_s_sbbase_ufs_sb_private_info_11344 s_sbbase ufs_sb_private_info 0 11344 NULL
150590 +enable_so_hci_sock_setsockopt_fndecl_11346 hci_sock_setsockopt fndecl 5 11346 NULL
150591 +enable_so_update_devnum_fndecl_11348 update_devnum fndecl 2 11348 NULL
150592 +enable_so_buffer_length_usbdevfs_urb_11350 buffer_length usbdevfs_urb 0 11350 NULL
150593 +enable_so_nilfs_cpfile_delete_checkpoints_fndecl_11352 nilfs_cpfile_delete_checkpoints fndecl 2-3 11352 NULL
150594 +enable_so_vlanid_full_rx_done_desc_11354 vlanid full_rx_done_desc 0 11354 NULL
150595 +enable_so_fd_execute_rw_fndecl_11359 fd_execute_rw fndecl 3 11359 NULL
150596 +enable_so_amdgpu_gem_object_create_fndecl_11366 amdgpu_gem_object_create fndecl 2 11366 NULL
150597 +enable_so_ieee80211_if_read_ht_opmode_fndecl_11367 ieee80211_if_read_ht_opmode fndecl 3 11367 NULL
150598 +enable_so_tso_fragment_fndecl_11369 tso_fragment fndecl 3 11369 NULL
150599 +enable_so_xz_dec_init_fndecl_11382 xz_dec_init fndecl 2 11382 NULL
150600 +enable_so_nv25_fb_tile_comp_fndecl_11383 nv25_fb_tile_comp fndecl 3 11383 NULL
150601 +enable_so_alloc_streams_hc_driver_11390 alloc_streams hc_driver 0 11390 NULL
150602 +enable_so_sctp_getsockopt_assoc_stats_fndecl_11393 sctp_getsockopt_assoc_stats fndecl 2 11393 NULL
150603 +enable_so_txs_vardecl_ambassador_c_11398 txs vardecl_ambassador.c 0 11398 NULL
150604 +enable_so_setup_data_setup_header_11411 setup_data setup_header 0 11411 NULL
150605 +enable_so_in_args_qlcnic_mailbox_metadata_11413 in_args qlcnic_mailbox_metadata 0 11413 NULL
150606 +enable_so_iso_packets_buffer_init_fndecl_11414 iso_packets_buffer_init fndecl 3-4 11414 NULL
150607 +enable_so_lpfc_idiag_extacc_drivr_get_fndecl_11416 lpfc_idiag_extacc_drivr_get fndecl 3-0 11416 NULL
150608 +enable_so_cnt_qib_ctxtdata_11417 cnt qib_ctxtdata 0 11417 NULL
150609 +enable_so_smt_build_frame_fndecl_11428 smt_build_frame fndecl 4 11428 NULL
150610 +enable_so_isdn_ppp_write_fndecl_11430 isdn_ppp_write fndecl 4 11430 NULL
150611 +enable_so_rxBytesRemaining_edgeport_serial_11436 rxBytesRemaining edgeport_serial 0 11436 NULL nohasharray
150612 +enable_so_rule_cnt_ethtool_rxnfc_11436 rule_cnt ethtool_rxnfc 0 11436 &enable_so_rxBytesRemaining_edgeport_serial_11436
150613 +enable_so_iwl_dbgfs_log_event_write_fndecl_11443 iwl_dbgfs_log_event_write fndecl 3 11443 NULL
150614 +enable_so_llsec_do_decrypt_auth_fndecl_11445 llsec_do_decrypt_auth fndecl 0 11445 NULL
150615 +enable_so_ccp_init_dm_workarea_fndecl_11450 ccp_init_dm_workarea fndecl 3 11450 NULL
150616 +enable_so___compat_sys_preadv64_fndecl_11452 __compat_sys_preadv64 fndecl 3 11452 NULL
150617 +enable_so_proc_scsi_write_fndecl_11461 proc_scsi_write fndecl 3 11461 NULL
150618 +enable_so_reshape_ring_fndecl_11464 reshape_ring fndecl 2 11464 NULL
150619 +enable_so_NFTL_findfreeblock_fndecl_11466 NFTL_findfreeblock fndecl 0 11466 NULL
150620 +enable_so_lower_margin_fb_var_screeninfo_11469 lower_margin fb_var_screeninfo 0 11469 NULL
150621 +enable_so_id_header_size_perf_event_11470 id_header_size perf_event 0 11470 NULL
150622 +enable_so_ieee80211_send_bar_fndecl_11472 ieee80211_send_bar fndecl 3 11472 NULL
150623 +enable_so_hsync_len_videomode_11474 hsync_len videomode 0 11474 NULL
150624 +enable_so_iov_shorten_fndecl_11481 iov_shorten fndecl 3 11481 NULL nohasharray
150625 +enable_so_c_cpos_ocfs2_write_cluster_desc_11481 c_cpos ocfs2_write_cluster_desc 0 11481 &enable_so_iov_shorten_fndecl_11481
150626 +enable_so_rt2800_txdone_entry_fndecl_11484 rt2800_txdone_entry fndecl 2 11484 NULL nohasharray
150627 +enable_so_num_crtc_drm_mode_config_11484 num_crtc drm_mode_config 0 11484 &enable_so_rt2800_txdone_entry_fndecl_11484
150628 +enable_so_count_e1000_ring_11491 count e1000_ring 0 11491 NULL
150629 +enable_so_get_ablock_fndecl_11495 get_ablock fndecl 2 11495 NULL nohasharray
150630 +enable_so_length_RioCommand_11495 length RioCommand 0 11495 &enable_so_get_ablock_fndecl_11495
150631 +enable_so_batadv_max_header_len_fndecl_11496 batadv_max_header_len fndecl 0 11496 NULL
150632 +enable_so_qcaspi_write_burst_fndecl_11497 qcaspi_write_burst fndecl 3 11497 NULL
150633 +enable_so_prepare_write_buffer_usb_serial_driver_11498 prepare_write_buffer usb_serial_driver 0 11498 NULL
150634 +enable_so_context_struct_to_string_fndecl_11502 context_struct_to_string fndecl 0 11502 NULL
150635 +enable_so_w_cpos_ocfs2_write_ctxt_11503 w_cpos ocfs2_write_ctxt 0 11503 NULL
150636 +enable_so_period_bytes_max_snd_pcm_hardware_11507 period_bytes_max snd_pcm_hardware 0 11507 NULL
150637 +enable_so_virtio_read_fndecl_11512 virtio_read fndecl 3 11512 NULL
150638 +enable_so_adau1701_register_size_fndecl_11523 adau1701_register_size fndecl 0 11523 NULL
150639 +enable_so_kvm_mmu_get_page_fndecl_11527 kvm_mmu_get_page fndecl 2 11527 NULL
150640 +enable_so_ccw_putcs_fndecl_11532 ccw_putcs fndecl 4-5-6 11532 NULL
150641 +enable_so_llcp_add_tlv_fndecl_11542 llcp_add_tlv fndecl 3 11542 NULL
150642 +enable_so_max_transfer_size_s2255_pipeinfo_11546 max_transfer_size s2255_pipeinfo 0 11546 NULL
150643 +enable_so_screen_height_vardecl_hyperv_fb_c_11550 screen_height vardecl_hyperv_fb.c 0 11550 NULL
150644 +enable_so_last_alloc_physical_block_ext3_block_alloc_info_11555 last_alloc_physical_block ext3_block_alloc_info 0 11555 NULL
150645 +enable_so_dm_startbit_adfs_discmap_11559 dm_startbit adfs_discmap 0 11559 NULL
150646 +enable_so_drm_plane_init_fndecl_11560 drm_plane_init fndecl 6 11560 NULL
150647 +enable_so_avail_in_z_stream_s_11562 avail_in z_stream_s 0 11562 NULL
150648 +enable_so_dataxfer_length_hpt_iop_request_scsi_command_11566 dataxfer_length hpt_iop_request_scsi_command 0 11566 NULL
150649 +enable_so_rec_len_nilfs_dir_entry_11567 rec_len nilfs_dir_entry 0 11567 NULL
150650 +enable_so_balance_level_fndecl_11568 balance_level fndecl 0 11568 NULL
150651 +enable_so_cur_transfer_size_s2255_pipeinfo_11571 cur_transfer_size s2255_pipeinfo 0 11571 NULL nohasharray
150652 +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
150653 +enable_so_find_compression_threshold_fndecl_11575 find_compression_threshold fndecl 3 11575 NULL nohasharray
150654 +enable_so___ocfs2_add_entry_fndecl_11575 __ocfs2_add_entry fndecl 4 11575 &enable_so_find_compression_threshold_fndecl_11575
150655 +enable_so_ram_header_offset_qxl_rom_11576 ram_header_offset qxl_rom 0 11576 NULL
150656 +enable_so_update_memcg_params_fndecl_11583 update_memcg_params fndecl 2 11583 NULL
150657 +enable_so_last_rate_ipw_priv_11584 last_rate ipw_priv 0 11584 NULL
150658 +enable_so_pwc_get_fps_fndecl_11588 pwc_get_fps fndecl 0 11588 NULL nohasharray
150659 +enable_so_next_index_jfs_inode_info_11588 next_index jfs_inode_info 0 11588 &enable_so_pwc_get_fps_fndecl_11588
150660 +enable_so_nv50_dmac_create_fndecl_11593 nv50_dmac_create fndecl 5 11593 NULL
150661 +enable_so_rpc_pipe_generic_upcall_fndecl_11597 rpc_pipe_generic_upcall fndecl 4 11597 NULL
150662 +enable_so_add_advertising_fndecl_11602 add_advertising fndecl 4 11602 NULL
150663 +enable_so_spi_execute_fndecl_11603 spi_execute fndecl 5 11603 NULL nohasharray
150664 +enable_so_prev_free_msdos_sb_info_11603 prev_free msdos_sb_info 0 11603 &enable_so_spi_execute_fndecl_11603 nohasharray
150665 +enable_so_slave_num_vardecl_shdma_base_c_11603 slave_num vardecl_shdma-base.c 0 11603 &enable_so_prev_free_msdos_sb_info_11603
150666 +enable_so_read_file_btcoex_fndecl_11604 read_file_btcoex fndecl 3 11604 NULL
150667 +enable_so_send_reply_fndecl_11610 send_reply fndecl 7 11610 NULL
150668 +enable_so_dvb_net_sec_callback_fndecl_11617 dvb_net_sec_callback fndecl 2 11617 NULL
150669 +enable_so_word1_atl1e_recv_ret_status_11620 word1 atl1e_recv_ret_status 0 11620 NULL
150670 +enable_so_btrfs_add_ordered_extent_dio_fndecl_11621 btrfs_add_ordered_extent_dio fndecl 4-2-5-3 11621 NULL
150671 +enable_so_dataLen_PVSCSIRingCmpDesc_11627 dataLen PVSCSIRingCmpDesc 0 11627 NULL
150672 +enable_so_acpi_register_ioapic_fndecl_11630 acpi_register_ioapic fndecl 3 11630 NULL
150673 +enable_so_posix_acl_init_fndecl_11632 posix_acl_init fndecl 2 11632 NULL nohasharray
150674 +enable_so_dtl1_write_fndecl_11632 dtl1_write fndecl 0 11632 &enable_so_posix_acl_init_fndecl_11632 nohasharray
150675 +enable_so_peek_head_len_fndecl_11632 peek_head_len fndecl 0 11632 &enable_so_dtl1_write_fndecl_11632
150676 +enable_so_num_mon_ceph_options_11640 num_mon ceph_options 0 11640 NULL
150677 +enable_so_ceph_sync_direct_write_fndecl_11641 ceph_sync_direct_write fndecl 0-3 11641 NULL
150678 +enable_so_rs_move_mimo2_to_other_fndecl_11646 rs_move_mimo2_to_other fndecl 5 11646 NULL
150679 +enable_so_ath6kl_get_num_reg_fndecl_11647 ath6kl_get_num_reg fndecl 0 11647 NULL
150680 +enable_so_user_base_ipath_mregion_11659 user_base ipath_mregion 0 11659 NULL
150681 +enable_so_bulk_size_cam_11663 bulk_size cam 0 11663 NULL
150682 +enable_so___setup_root_fndecl_11664 __setup_root fndecl 2-1 11664 NULL nohasharray
150683 +enable_so_num_snd_ratnum_11664 num snd_ratnum 0 11664 &enable_so___setup_root_fndecl_11664
150684 +enable_so_sel_write_member_fndecl_11667 sel_write_member fndecl 3 11667 NULL
150685 +enable_so_align_pnp_mem_11669 align pnp_mem 0 11669 NULL
150686 +enable_so___btrfs_find_all_roots_fndecl_11682 __btrfs_find_all_roots fndecl 3 11682 NULL nohasharray
150687 +enable_so_vp_request_msix_vectors_fndecl_11682 vp_request_msix_vectors fndecl 2 11682 &enable_so___btrfs_find_all_roots_fndecl_11682
150688 +enable_so_i915_stolen_to_physical_fndecl_11685 i915_stolen_to_physical fndecl 0 11685 NULL nohasharray
150689 +enable_so_erasesize_mtd_erase_region_info_11685 erasesize mtd_erase_region_info 0 11685 &enable_so_i915_stolen_to_physical_fndecl_11685
150690 +enable_so_data_len_b43legacy_dfs_file_11690 data_len b43legacy_dfs_file 0 11690 NULL
150691 +enable_so_fill_note_info_fndecl_11692 fill_note_info fndecl 2 11692 NULL
150692 +enable_so_tx_tail_len_pn533_frame_ops_11694 tx_tail_len pn533_frame_ops 0 11694 NULL
150693 +enable_so_stride_efifb_dmi_info_11695 stride efifb_dmi_info 0 11695 NULL
150694 +enable_so_num_rates_wmi_rate_set_arg_11696 num_rates wmi_rate_set_arg 0 11696 NULL
150695 +enable_so_kernel_tree_alloc_fndecl_11698 kernel_tree_alloc fndecl 1 11698 NULL
150696 +enable_so_iwl_dbgfs_rxon_filter_flags_read_fndecl_11699 iwl_dbgfs_rxon_filter_flags_read fndecl 3 11699 NULL
150697 +enable_so_shared_mic_nid_ca0132_spec_11702 shared_mic_nid ca0132_spec 0 11702 NULL
150698 +enable_so_mwifiex_debug_mask_write_fndecl_11707 mwifiex_debug_mask_write fndecl 3 11707 NULL
150699 +enable_so_phys_lcr_base__synclinkmp_info_11713 phys_lcr_base _synclinkmp_info 0 11713 NULL
150700 +enable_so_sizeof_partition_entry__gpt_header_11718 sizeof_partition_entry _gpt_header 0 11718 NULL
150701 +enable_so_ipv6_renew_options_fndecl_11728 ipv6_renew_options fndecl 5 11728 NULL
150702 +enable_so_ov511_pkt_scan_fndecl_11737 ov511_pkt_scan fndecl 3 11737 NULL
150703 +enable_so_length_v4l2_plane_11738 length v4l2_plane 0 11738 NULL nohasharray
150704 +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
150705 +enable_so_gart_pin_size_radeon_device_11745 gart_pin_size radeon_device 0 11745 NULL
150706 +enable_so_symlink_size_squashfs_symlink_inode_11747 symlink_size squashfs_symlink_inode 0 11747 NULL
150707 +enable_so_log_num_cqs_mlx4_init_hca_param_11748 log_num_cqs mlx4_init_hca_param 0 11748 NULL
150708 +enable_so_lba_shift_nvme_ns_11763 lba_shift nvme_ns 0 11763 NULL nohasharray
150709 +enable_so_count_nfs_pgio_res_11763 count nfs_pgio_res 0 11763 &enable_so_lba_shift_nvme_ns_11763
150710 +enable_so_num_mtt_mthca_profile_11767 num_mtt mthca_profile 0 11767 NULL
150711 +enable_so_length_acpi_dmar_header_11768 length acpi_dmar_header 0 11768 NULL
150712 +enable_so_grow_buffers_fndecl_11774 grow_buffers fndecl 3-2 11774 NULL
150713 +enable_so_pci_scan_child_bus_fndecl_11784 pci_scan_child_bus fndecl 0 11784 NULL
150714 +enable_so_svc_pool_map_init_percpu_fndecl_11792 svc_pool_map_init_percpu fndecl 0 11792 NULL nohasharray
150715 +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
150716 +enable_so_find_vqs_virtio_config_ops_11797 find_vqs virtio_config_ops 0 11797 NULL
150717 +enable_so_p9_client_prepare_req_fndecl_11803 p9_client_prepare_req fndecl 3 11803 NULL
150718 +enable_so___kmalloc_node_fndecl_11804 __kmalloc_node fndecl 1 11804 NULL
150719 +enable_so_depth_cx23885_fmt_11806 depth cx23885_fmt 0 11806 NULL
150720 +enable_so_num_resources_nd_namespace_blk_11815 num_resources nd_namespace_blk 0 11815 NULL
150721 +enable_so_size_mvpp2_tx_queue_11816 size mvpp2_tx_queue 0 11816 NULL
150722 +enable_so_SyS_flistxattr_fndecl_11825 SyS_flistxattr fndecl 3 11825 NULL
150723 +enable_so_bufflen_alua_dh_data_11826 bufflen alua_dh_data 0 11826 NULL
150724 +enable_so_be_change_mtu_fndecl_11828 be_change_mtu fndecl 2 11828 NULL
150725 +enable_so_acpi_allocate_root_table_fndecl_11829 acpi_allocate_root_table fndecl 1 11829 NULL nohasharray
150726 +enable_so_do_register_entry_fndecl_11829 do_register_entry fndecl 4 11829 &enable_so_acpi_allocate_root_table_fndecl_11829
150727 +enable_so_atk_debugfs_ggrp_read_fndecl_11841 atk_debugfs_ggrp_read fndecl 3 11841 NULL
150728 +enable_so_length_TAG_TW_SG_Entry_ISO_11846 length TAG_TW_SG_Entry_ISO 0 11846 NULL
150729 +enable_so_mic_vringh_copy_fndecl_11848 mic_vringh_copy fndecl 4 11848 NULL
150730 +enable_so_num_crtc_mga_device_11851 num_crtc mga_device 0 11851 NULL
150731 +enable_so_number_of_packets_urb_11853 number_of_packets urb 0 11853 NULL nohasharray
150732 +enable_so_add_to_page_cache_lru_fndecl_11853 add_to_page_cache_lru fndecl 0 11853 &enable_so_number_of_packets_urb_11853
150733 +enable_so_pcibios_enable_irq_vardecl_11854 pcibios_enable_irq vardecl 0 11854 NULL
150734 +enable_so_sg_tablesize_srp_target_port_11858 sg_tablesize srp_target_port 0 11858 NULL
150735 +enable_so_btmrvl_pscmd_write_fndecl_11859 btmrvl_pscmd_write fndecl 3 11859 NULL
150736 +enable_so_frame_rate_sd_11862 frame_rate sd 0 11862 NULL
150737 +enable_so_ipath_p0_rcvegrcnt_ipath_devdata_11864 ipath_p0_rcvegrcnt ipath_devdata 0 11864 NULL
150738 +enable_so_s_nsegments_nilfs_super_block_11865 s_nsegments nilfs_super_block 0 11865 NULL
150739 +enable_so_wr_host_buf_pos_xilly_channel_11866 wr_host_buf_pos xilly_channel 0 11866 NULL
150740 +enable_so_heads_ssfdcr_record_11869 heads ssfdcr_record 0 11869 NULL
150741 +enable_so_domain_child_num_acl_role_label_11875 domain_child_num acl_role_label 0 11875 NULL
150742 +enable_so_idetape_queue_rw_tail_fndecl_11881 idetape_queue_rw_tail fndecl 3 11881 NULL
150743 +enable_so_alloc_empty_pages_fndecl_11885 alloc_empty_pages fndecl 2 11885 NULL nohasharray
150744 +enable_so_bochs_dispi_read_fndecl_11885 bochs_dispi_read fndecl 0 11885 &enable_so_alloc_empty_pages_fndecl_11885 nohasharray
150745 +enable_so_leaf_dealloc_fndecl_11885 leaf_dealloc fndecl 3 11885 &enable_so_bochs_dispi_read_fndecl_11885
150746 +enable_so_f_width_gsc_frame_11886 f_width gsc_frame 0 11886 NULL
150747 +enable_so_num_channels_iw_scan_req_11889 num_channels iw_scan_req 0 11889 NULL
150748 +enable_so_vfs_read_fndecl_11892 vfs_read fndecl 3-0 11892 NULL nohasharray
150749 +enable_so_chap_string_to_hex_fndecl_11892 chap_string_to_hex fndecl 0-3 11892 &enable_so_vfs_read_fndecl_11892
150750 +enable_so_llcp_tlv16_fndecl_11893 llcp_tlv16 fndecl 0 11893 NULL
150751 +enable_so_flaglen_ring_desc_ex_11894 flaglen ring_desc_ex 0 11894 NULL
150752 +enable_so_set_brk_fndecl_11900 set_brk fndecl 1-2 11900 NULL
150753 +enable_so_libipw_change_mtu_fndecl_11901 libipw_change_mtu fndecl 2 11901 NULL
150754 +enable_so_fw_dump_size_scsi_qla_host_11903 fw_dump_size scsi_qla_host 0 11903 NULL
150755 +enable_so_iwl_dbgfs_missed_beacon_write_fndecl_11905 iwl_dbgfs_missed_beacon_write fndecl 3 11905 NULL
150756 +enable_so_ext3_ordered_write_end_fndecl_11907 ext3_ordered_write_end fndecl 5-3 11907 NULL
150757 +enable_so_mwifiex_histogram_read_fndecl_11910 mwifiex_histogram_read fndecl 3 11910 NULL
150758 +enable_so_snd_device_new_fndecl_11911 snd_device_new fndecl 0 11911 NULL
150759 +enable_so_dio_set_defer_completion_fndecl_11916 dio_set_defer_completion fndecl 0 11916 NULL
150760 +enable_so_residual_length_atto_vda_scsi_rsp_11918 residual_length atto_vda_scsi_rsp 0 11918 NULL
150761 +enable_so_lbs_lowsnr_read_fndecl_11920 lbs_lowsnr_read fndecl 3 11920 NULL
150762 +enable_so_p9_fd_read_fndecl_11921 p9_fd_read fndecl 3-0 11921 NULL
150763 +enable_so_kvm_read_guest_virt_system_fndecl_11922 kvm_read_guest_virt_system fndecl 4-2 11922 NULL
150764 +enable_so_tx_buffer_count_hso_serial_11927 tx_buffer_count hso_serial 0 11927 NULL
150765 +enable_so_orig_start_move_extent_11928 orig_start move_extent 0 11928 NULL
150766 +enable_so_length_p_header100_11933 length p_header100 0 11933 NULL
150767 +enable_so_ext4_move_extents_fndecl_11935 ext4_move_extents fndecl 5-3-4 11935 NULL
150768 +enable_so_alloc_low_pages_fndecl_11940 alloc_low_pages fndecl 1 11940 NULL nohasharray
150769 +enable_so_v9fs_remote_get_acl_fndecl_11940 v9fs_remote_get_acl fndecl 4 11940 &enable_so_alloc_low_pages_fndecl_11940
150770 +enable_so_mss_request_sock_11943 mss request_sock 0 11943 NULL
150771 +enable_so_spi_write_fndecl_11948 spi_write fndecl 0 11948 NULL
150772 +enable_so_choose_data_offset_fndecl_11950 choose_data_offset fndecl 0 11950 NULL
150773 +enable_so_bpp_bdisp_fmt_11954 bpp bdisp_fmt 0 11954 NULL
150774 +enable_so_qla4_82xx_pci_set_window_fndecl_11958 qla4_82xx_pci_set_window fndecl 0-2 11958 NULL
150775 +enable_so_osc_cached_mb_seq_write_fndecl_11961 osc_cached_mb_seq_write fndecl 3 11961 NULL
150776 +enable_so_bsg_major_vardecl_bsg_c_11972 bsg_major vardecl_bsg.c 0 11972 NULL
150777 +enable_so_sctp_make_abort_user_fndecl_11973 sctp_make_abort_user fndecl 3 11973 NULL nohasharray
150778 +enable_so_spmi_controller_alloc_fndecl_11973 spmi_controller_alloc fndecl 2 11973 &enable_so_sctp_make_abort_user_fndecl_11973
150779 +enable_so_pcpu_nr_groups_vardecl_percpu_c_11974 pcpu_nr_groups vardecl_percpu.c 0 11974 NULL
150780 +enable_so_ath10k_htt_rx_crypto_param_len_fndecl_11982 ath10k_htt_rx_crypto_param_len fndecl 0 11982 NULL
150781 +enable_so_total_mapping_size_fndecl_11985 total_mapping_size fndecl 0 11985 NULL
150782 +enable_so_ssp_create_msg_fndecl_11986 ssp_create_msg fndecl 2 11986 NULL
150783 +enable_so_tx_frag_cache_hit_read_fndecl_11988 tx_frag_cache_hit_read fndecl 3 11988 NULL
150784 +enable_so_x_size_mms114_platform_data_11991 x_size mms114_platform_data 0 11991 NULL
150785 +enable_so_virtualUnits_INFTLPartition_11994 virtualUnits INFTLPartition 0 11994 NULL
150786 +enable_so_rx_buffer_size_peak_usb_adapter_11997 rx_buffer_size peak_usb_adapter 0 11997 NULL
150787 +enable_so___btrfs_setxattr_fndecl_12010 __btrfs_setxattr fndecl 5 12010 NULL
150788 +enable_so___nlmsg_put_fndecl_12014 __nlmsg_put fndecl 5 12014 NULL nohasharray
150789 +enable_so_lustre_posix_acl_xattr_2ext_fndecl_12014 lustre_posix_acl_xattr_2ext fndecl 2 12014 &enable_so___nlmsg_put_fndecl_12014
150790 +enable_so_br_send_bpdu_fndecl_12022 br_send_bpdu fndecl 3 12022 NULL nohasharray
150791 +enable_so_rfcomm_sock_sendmsg_fndecl_12022 rfcomm_sock_sendmsg fndecl 3 12022 &enable_so_br_send_bpdu_fndecl_12022
150792 +enable_so_yres_fb_var_screeninfo_12023 yres fb_var_screeninfo 0 12023 NULL
150793 +enable_so_xfs_dir2_sf_addname_easy_fndecl_12024 xfs_dir2_sf_addname_easy fndecl 4 12024 NULL
150794 +enable_so_arm_iommu_create_mapping_fndecl_12027 arm_iommu_create_mapping fndecl 3 12027 NULL
150795 +enable_so_sisusb_write_mem_bulk_fndecl_12029 sisusb_write_mem_bulk fndecl 4 12029 NULL
150796 +enable_so_alloc_group_attrs_fndecl_12032 alloc_group_attrs fndecl 3 12032 NULL nohasharray
150797 +enable_so_wusb_prf_256_fndecl_12032 wusb_prf_256 fndecl 7 12032 &enable_so_alloc_group_attrs_fndecl_12032
150798 +enable_so_drm_property_create_enum_fndecl_12034 drm_property_create_enum fndecl 5 12034 NULL
150799 +enable_so_comedi_alloc_subdevices_fndecl_12036 comedi_alloc_subdevices fndecl 2 12036 NULL
150800 +enable_so_scsi_cmds_max_iscsi_session_12037 scsi_cmds_max iscsi_session 0 12037 NULL
150801 +enable_so_rf_suballoc_bit_ocfs2_refcount_block_12038 rf_suballoc_bit ocfs2_refcount_block 0 12038 NULL
150802 +enable_so___mm_populate_fndecl_12039 __mm_populate fndecl 2-1 12039 NULL
150803 +enable_so_regsize_si_sm_io_12043 regsize si_sm_io 0 12043 NULL
150804 +enable_so_physical_btrfs_bio_stripe_12047 physical btrfs_bio_stripe 0 12047 NULL
150805 +enable_so_len_brcmf_sdio_hdrinfo_12048 len brcmf_sdio_hdrinfo 0 12048 NULL nohasharray
150806 +enable_so_order_ipr_sglist_12048 order ipr_sglist 0 12048 &enable_so_len_brcmf_sdio_hdrinfo_12048
150807 +enable_so_ata_exec_internal_fndecl_12059 ata_exec_internal fndecl 6 12059 NULL
150808 +enable_so_l1oip_law_to_4bit_fndecl_12061 l1oip_law_to_4bit fndecl 0 12061 NULL
150809 +enable_so_devm_ioremap_fndecl_12064 devm_ioremap fndecl 3-2 12064 NULL nohasharray
150810 +enable_so_bufsize_st5481_in_12064 bufsize st5481_in 0 12064 &enable_so_devm_ioremap_fndecl_12064
150811 +enable_so_recover_peb_fndecl_12069 recover_peb fndecl 7-6 12069 NULL
150812 +enable_so_rw_verify_area_fndecl_12072 rw_verify_area fndecl 0-4 12072 NULL nohasharray
150813 +enable_so_count_afs_permits_12072 count afs_permits 0 12072 &enable_so_rw_verify_area_fndecl_12072
150814 +enable_so_evdev_handle_get_val_fndecl_12073 evdev_handle_get_val fndecl 5-6-0 12073 NULL nohasharray
150815 +enable_so_lirc_register_driver_fndecl_12073 lirc_register_driver fndecl 0 12073 &enable_so_evdev_handle_get_val_fndecl_12073
150816 +enable_so_ttm_pool_update_free_locked_fndecl_12074 ttm_pool_update_free_locked fndecl 2 12074 NULL
150817 +enable_so_cirrus_bo_create_fndecl_12083 cirrus_bo_create fndecl 2 12083 NULL
150818 +enable_so_d_size_size_entry_12084 d_size size_entry 0 12084 NULL
150819 +enable_so_nr_relocs_drm_nouveau_gem_pushbuf_12085 nr_relocs drm_nouveau_gem_pushbuf 0 12085 NULL
150820 +enable_so_nvme_trans_copy_from_user_fndecl_12088 nvme_trans_copy_from_user fndecl 3-0 12088 NULL
150821 +enable_so_security_socket_recvmsg_fndecl_12091 security_socket_recvmsg fndecl 0 12091 NULL nohasharray
150822 +enable_so_iwl_dbgfs_temperature_read_fndecl_12091 iwl_dbgfs_temperature_read fndecl 3 12091 &enable_so_security_socket_recvmsg_fndecl_12091
150823 +enable_so_nla_len_nlattr_12092 nla_len nlattr 0 12092 NULL
150824 +enable_so_n_posix_ace_state_array_12096 n posix_ace_state_array 0 12096 NULL
150825 +enable_so_rs_fill_link_cmd_fndecl_12099 rs_fill_link_cmd fndecl 3 12099 NULL
150826 +enable_so_pad_size_asd_flash_de_12100 pad_size asd_flash_de 0 12100 NULL
150827 +enable_so_s_log_block_size_ext3_super_block_12106 s_log_block_size ext3_super_block 0 12106 NULL
150828 +enable_so_lpfc_debugfs_dumpHostSlim_data_fndecl_12108 lpfc_debugfs_dumpHostSlim_data fndecl 0 12108 NULL
150829 +enable_so_mirror_array_cnt_nfs4_ff_layout_segment_12109 mirror_array_cnt nfs4_ff_layout_segment 0 12109 NULL
150830 +enable_so_length_framebuf_12110 length framebuf 0 12110 NULL nohasharray
150831 +enable_so_prism2_set_genericelement_fndecl_12110 prism2_set_genericelement fndecl 3 12110 &enable_so_length_framebuf_12110
150832 +enable_so_security_context_to_sid_core_fndecl_12115 security_context_to_sid_core fndecl 2 12115 NULL
150833 +enable_so_get_num_tx_queues_rtnl_link_ops_12119 get_num_tx_queues rtnl_link_ops 0 12119 NULL
150834 +enable_so_super_1_rdev_size_change_fndecl_12120 super_1_rdev_size_change fndecl 2 12120 NULL
150835 +enable_so_mwifiex_hscfg_write_fndecl_12125 mwifiex_hscfg_write fndecl 3 12125 NULL
150836 +enable_so_key_size_ccp_rsa_engine_12126 key_size ccp_rsa_engine 0 12126 NULL
150837 +enable_so_ProgRegShift_cfi_intelext_programming_regioninfo_12129 ProgRegShift cfi_intelext_programming_regioninfo 0 12129 NULL
150838 +enable_so_ext4_fiemap_fndecl_12131 ext4_fiemap fndecl 4-3 12131 NULL
150839 +enable_so_metablock_size_btrfsic_state_12137 metablock_size btrfsic_state 0 12137 NULL
150840 +enable_so_writeset_alloc_fndecl_12139 writeset_alloc fndecl 2 12139 NULL
150841 +enable_so_mempool_resize_fndecl_12140 mempool_resize fndecl 2 12140 NULL
150842 +enable_so_gfs2_rgrp_send_discards_fndecl_12149 gfs2_rgrp_send_discards fndecl 2 12149 NULL
150843 +enable_so_ql_is_link_full_dup_fndecl_12152 ql_is_link_full_dup fndecl 0 12152 NULL
150844 +enable_so_find_block_fndecl_12156 find_block fndecl 0 12156 NULL
150845 +enable_so_ip_vs_receive_fndecl_12161 ip_vs_receive fndecl 3 12161 NULL
150846 +enable_so_set_page_fndecl_12165 set_page fndecl 0 12165 NULL
150847 +enable_so___alloc_ei_netdev_fndecl_12169 __alloc_ei_netdev fndecl 1 12169 NULL
150848 +enable_so___fuse_get_req_fndecl_12176 __fuse_get_req fndecl 2 12176 NULL
150849 +enable_so_brcmf_sdio_tx_ctrlframe_fndecl_12177 brcmf_sdio_tx_ctrlframe fndecl 3 12177 NULL
150850 +enable_so_bulk_in_size_sur40_state_12178 bulk_in_size sur40_state 0 12178 NULL
150851 +enable_so_rx_count_rx_header_12180 rx_count rx_header 0 12180 NULL
150852 +enable_so_default_file_splice_read_fndecl_12182 default_file_splice_read fndecl 4 12182 NULL
150853 +enable_so_lprocfs_write_helper_fndecl_12184 lprocfs_write_helper fndecl 2 12184 NULL
150854 +enable_so_se_callback_addr_len_nfsd4_setclientid_12186 se_callback_addr_len nfsd4_setclientid 0 12186 NULL
150855 +enable_so_alignment_acpi_resource_memory24_12188 alignment acpi_resource_memory24 0 12188 NULL
150856 +enable_so_max_qp_sz_mlx4_dev_cap_12189 max_qp_sz mlx4_dev_cap 0 12189 NULL
150857 +enable_so_alloc_and_copy_ftrace_hash_fndecl_12203 alloc_and_copy_ftrace_hash fndecl 1 12203 NULL
150858 +enable_so_handle_gk20a_instobj_dma_12206 handle gk20a_instobj_dma 0 12206 NULL
150859 +enable_so_lmc_crcSize_lmc___softc_12208 lmc_crcSize lmc___softc 0 12208 NULL
150860 +enable_so_length_cifs_io_parms_12209 length cifs_io_parms 0 12209 NULL nohasharray
150861 +enable_so_l2cap_sock_setsockopt_old_fndecl_12209 l2cap_sock_setsockopt_old fndecl 4 12209 &enable_so_length_cifs_io_parms_12209
150862 +enable_so_vmci_transport_set_min_buffer_size_fndecl_12216 vmci_transport_set_min_buffer_size fndecl 2 12216 NULL
150863 +enable_so_hci_sock_sendmsg_fndecl_12231 hci_sock_sendmsg fndecl 3 12231 NULL
150864 +enable_so_virtscsi_kick_cmd_fndecl_12237 virtscsi_kick_cmd fndecl 3-4 12237 NULL
150865 +enable_so_read_file_tx99_power_fndecl_12238 read_file_tx99_power fndecl 3 12238 NULL
150866 +enable_so_generic_file_llseek_size_fndecl_12242 generic_file_llseek_size fndecl 2-5 12242 NULL
150867 +enable_so_synproxy_tstamp_adjust_fndecl_12243 synproxy_tstamp_adjust fndecl 2 12243 NULL
150868 +enable_so_max_pkt_size_em28xx_usb_bufs_12248 max_pkt_size em28xx_usb_bufs 0 12248 NULL
150869 +enable_so_gre_build_header_fndecl_12252 gre_build_header fndecl 3 12252 NULL
150870 +enable_so_write_block_fndecl_12253 write_block fndecl 3 12253 NULL
150871 +enable_so_hpfs_map_fnode_fndecl_12255 hpfs_map_fnode fndecl 2 12255 NULL
150872 +enable_so_unique_len_drm_master_12259 unique_len drm_master 0 12259 NULL
150873 +enable_so_zs_size_classes_vardecl_zsmalloc_c_12260 zs_size_classes vardecl_zsmalloc.c 0 12260 NULL
150874 +enable_so_endpoint_snd_usX2Y_substream_12267 endpoint snd_usX2Y_substream 0 12267 NULL
150875 +enable_so_mempool_create_fndecl_12270 mempool_create fndecl 1 12270 NULL
150876 +enable_so_cur_page_len_dio_submit_12271 cur_page_len dio_submit 0 12271 NULL
150877 +enable_so_auth_algs_local_info_12277 auth_algs local_info 0 12277 NULL
150878 +enable_so_capacity_sddr09_card_info_12286 capacity sddr09_card_info 0 12286 NULL
150879 +enable_so_sb_sectsize_xfs_sb_12294 sb_sectsize xfs_sb 0 12294 NULL
150880 +enable_so_bm_find_next_fndecl_12298 bm_find_next fndecl 0-2 12298 NULL
150881 +enable_so_size_btrfs_ioctl_logical_ino_args_12299 size btrfs_ioctl_logical_ino_args 0 12299 NULL
150882 +enable_so_minimum_input_absinfo_12300 minimum input_absinfo 0 12300 NULL
150883 +enable_so_max_y_fb_monspecs_12303 max_y fb_monspecs 0 12303 NULL
150884 +enable_so_nb_blocks_NFTLrecord_12306 nb_blocks NFTLrecord 0 12306 NULL
150885 +enable_so_hr_blocks_o2hb_region_12318 hr_blocks o2hb_region 0 12318 NULL nohasharray
150886 +enable_so_mthca_max_data_size_fndecl_12318 mthca_max_data_size fndecl 0-3 12318 &enable_so_hr_blocks_o2hb_region_12318
150887 +enable_so_length_sg_mapping_iter_12324 length sg_mapping_iter 0 12324 NULL nohasharray
150888 +enable_so_sctp_make_abort_violation_fndecl_12324 sctp_make_abort_violation fndecl 4 12324 &enable_so_length_sg_mapping_iter_12324
150889 +enable_so_pgt_bits_nvkm_mmu_12325 pgt_bits nvkm_mmu 0 12325 NULL nohasharray
150890 +enable_so_ubifs_change_lp_fndecl_12325 ubifs_change_lp fndecl 3 12325 &enable_so_pgt_bits_nvkm_mmu_12325
150891 +enable_so_no_of_triplet_mwifiex_802_11d_domain_reg_12326 no_of_triplet mwifiex_802_11d_domain_reg 0 12326 NULL
150892 +enable_so_tracing_clock_write_fndecl_12330 tracing_clock_write fndecl 3 12330 NULL
150893 +enable_so_s_log_block_size_nilfs_super_block_12332 s_log_block_size nilfs_super_block 0 12332 NULL
150894 +enable_so_read_regr_pi_protocol_12333 read_regr pi_protocol 0 12333 NULL
150895 +enable_so_status_w840_rx_desc_12335 status w840_rx_desc 0 12335 NULL nohasharray
150896 +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
150897 +enable_so_out_usbnet_12337 out usbnet 0 12337 NULL
150898 +enable_so_bank_size_stub_chip_12338 bank_size stub_chip 0 12338 NULL
150899 +enable_so_base_shift_iwl_fw_dbg_dest_tlv_12341 base_shift iwl_fw_dbg_dest_tlv 0 12341 NULL
150900 +enable_so_dccps_iss_dccp_sock_12346 dccps_iss dccp_sock 0 12346 NULL
150901 +enable_so_max_buf_size_tegra_slink_data_12348 max_buf_size tegra_slink_data 0 12348 NULL
150902 +enable_so_ocfs2_symlink_get_block_fndecl_12352 ocfs2_symlink_get_block fndecl 2 12352 NULL
150903 +enable_so_td_done_fndecl_12358 td_done fndecl 0 12358 NULL
150904 +enable_so_reserve_additional_memory_fndecl_12359 reserve_additional_memory fndecl 1 12359 NULL nohasharray
150905 +enable_so_limit_scaled_size_lock_fndecl_12359 limit_scaled_size_lock fndecl 5-6 12359 &enable_so_reserve_additional_memory_fndecl_12359 nohasharray
150906 +enable_so_igb_pci_sriov_configure_fndecl_12359 igb_pci_sriov_configure fndecl 2 12359 &enable_so_limit_scaled_size_lock_fndecl_12359
150907 +enable_so_ioremap_uc_fndecl_12363 ioremap_uc fndecl 2-1 12363 NULL
150908 +enable_so_xb_blkno_ocfs2_xattr_block_12365 xb_blkno ocfs2_xattr_block 0 12365 NULL
150909 +enable_so_num_subdevs_v4l2_async_notifier_12368 num_subdevs v4l2_async_notifier 0 12368 NULL
150910 +enable_so_compat_SyS_set_mempolicy_fndecl_12372 compat_SyS_set_mempolicy fndecl 3 12372 NULL
150911 +enable_so_i_entries_gfs2_inode_12374 i_entries gfs2_inode 0 12374 NULL
150912 +enable_so_mic_rx_pkts_read_fndecl_12375 mic_rx_pkts_read fndecl 3 12375 NULL
150913 +enable_so_iscsi_segment_seek_sg_fndecl_12378 iscsi_segment_seek_sg fndecl 5-4 12378 NULL nohasharray
150914 +enable_so_pci_enable_device_flags_fndecl_12378 pci_enable_device_flags fndecl 0 12378 &enable_so_iscsi_segment_seek_sg_fndecl_12378
150915 +enable_so_rx_prefix_size_efx_nic_12381 rx_prefix_size efx_nic 0 12381 NULL
150916 +enable_so_serial8250_port_size_fndecl_12384 serial8250_port_size fndecl 0 12384 NULL nohasharray
150917 +enable_so_if_usb_host_to_card_fndecl_12384 if_usb_host_to_card fndecl 4 12384 &enable_so_serial8250_port_size_fndecl_12384
150918 +enable_so_get_packet_pg_fndecl_12388 get_packet_pg fndecl 4 12388 NULL
150919 +enable_so_stb6100_write_reg_range_fndecl_12391 stb6100_write_reg_range fndecl 4 12391 NULL nohasharray
150920 +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
150921 +enable_so_data_segment_bytes_gru_create_context_req_12392 data_segment_bytes gru_create_context_req 0 12392 NULL
150922 +enable_so_num_ufbufs_vardecl_12394 num_ufbufs vardecl 0 12394 NULL
150923 +enable_so_memory_block_action_fndecl_12395 memory_block_action fndecl 1 12395 NULL
150924 +enable_so_alloc_one_pg_vec_page_fndecl_12396 alloc_one_pg_vec_page fndecl 1 12396 NULL
150925 +enable_so_ath10k_read_quiet_period_fndecl_12397 ath10k_read_quiet_period fndecl 3 12397 NULL
150926 +enable_so_buffer_size_zoran_buffer_col_12398 buffer_size zoran_buffer_col 0 12398 NULL
150927 +enable_so_powercap_register_zone_fndecl_12399 powercap_register_zone fndecl 6 12399 NULL
150928 +enable_so_ieee802154_alloc_hw_fndecl_12400 ieee802154_alloc_hw fndecl 1 12400 NULL
150929 +enable_so_edt_ft5x06_debugfs_raw_data_read_fndecl_12401 edt_ft5x06_debugfs_raw_data_read fndecl 3 12401 NULL
150930 +enable_so_acl_len_nfs_setaclargs_12402 acl_len nfs_setaclargs 0 12402 NULL
150931 +enable_so_length_iw_point_12404 length iw_point 0 12404 NULL
150932 +enable_so_reg_read_fndecl_12405 reg_read fndecl 4 12405 NULL
150933 +enable_so_snd_rawmidi_write_fndecl_12411 snd_rawmidi_write fndecl 3 12411 NULL
150934 +enable_so_p9_fd_write_fndecl_12417 p9_fd_write fndecl 3-0 12417 NULL
150935 +enable_so_read_reg_xcan_priv_12419 read_reg xcan_priv 0 12419 NULL nohasharray
150936 +enable_so_dccp_insert_fn_opt_fndecl_12419 dccp_insert_fn_opt fndecl 5 12419 &enable_so_read_reg_xcan_priv_12419
150937 +enable_so_cx231xx_init_vbi_isoc_fndecl_12422 cx231xx_init_vbi_isoc fndecl 4-2-3 12422 NULL
150938 +enable_so_init_rs_non_canonical_fndecl_12424 init_rs_non_canonical fndecl 5-1 12424 NULL
150939 +enable_so_len_SL_component_12428 len SL_component 0 12428 NULL
150940 +enable_so_ext4_quota_read_fndecl_12429 ext4_quota_read fndecl 5 12429 NULL
150941 +enable_so_lpfc_idiag_mbxacc_read_fndecl_12430 lpfc_idiag_mbxacc_read fndecl 3 12430 NULL
150942 +enable_so_pkey_tbl_len_ib_port_attr_12434 pkey_tbl_len ib_port_attr 0 12434 NULL
150943 +enable_so_hcd_priv_size_hc_driver_12440 hcd_priv_size hc_driver 0 12440 NULL
150944 +enable_so_informationLength_fileEntry_12442 informationLength fileEntry 0 12442 NULL nohasharray
150945 +enable_so_sctp_setsockopt_maxburst_fndecl_12442 sctp_setsockopt_maxburst fndecl 3 12442 &enable_so_informationLength_fileEntry_12442
150946 +enable_so_divisor_tc_sfq_qopt_12444 divisor tc_sfq_qopt 0 12444 NULL
150947 +enable_so_ie_len_cfg80211_connect_params_12446 ie_len cfg80211_connect_params 0 12446 NULL
150948 +enable_so_u132_endp_urb_dequeue_fndecl_12447 u132_endp_urb_dequeue fndecl 4 12447 NULL nohasharray
150949 +enable_so_ceph_sync_write_fndecl_12447 ceph_sync_write fndecl 0-3 12447 &enable_so_u132_endp_urb_dequeue_fndecl_12447
150950 +enable_so_acpi_gsb_i2c_write_bytes_fndecl_12449 acpi_gsb_i2c_write_bytes fndecl 4 12449 NULL nohasharray
150951 +enable_so_GetRecvByte_fndecl_12449 GetRecvByte fndecl 0 12449 &enable_so_acpi_gsb_i2c_write_bytes_fndecl_12449 nohasharray
150952 +enable_so_length_iwl_wipan_noa_attribute_12449 length iwl_wipan_noa_attribute 0 12449 &enable_so_GetRecvByte_fndecl_12449
150953 +enable_so_len_qlcnic_flt_header_12450 len qlcnic_flt_header 0 12450 NULL
150954 +enable_so_rx_padding_usbatm_driver_12455 rx_padding usbatm_driver 0 12455 NULL
150955 +enable_so_keyspan_setup_urb_fndecl_12461 keyspan_setup_urb fndecl 6-3-2 12461 NULL
150956 +enable_so_num_cq_mthca_profile_12463 num_cq mthca_profile 0 12463 NULL
150957 +enable_so_tp_block_nr_tpacket_req_12465 tp_block_nr tpacket_req 0 12465 NULL
150958 +enable_so_tx_frag_bad_mblk_num_read_fndecl_12467 tx_frag_bad_mblk_num_read fndecl 3 12467 NULL
150959 +enable_so_num_leds_pca9532_chip_info_12471 num_leds pca9532_chip_info 0 12471 NULL
150960 +enable_so_lpfc_lun_queue_depth_init_fndecl_12474 lpfc_lun_queue_depth_init fndecl 2 12474 NULL
150961 +enable_so_rx_defrag_need_defrag_read_fndecl_12486 rx_defrag_need_defrag_read fndecl 3 12486 NULL
150962 +enable_so_idx_il3945_tpt_entry_12490 idx il3945_tpt_entry 0 12490 NULL
150963 +enable_so_lock_extent_fndecl_12493 lock_extent fndecl 3-2 12493 NULL
150964 +enable_so_vgacon_adjust_height_fndecl_12495 vgacon_adjust_height fndecl 2 12495 NULL nohasharray
150965 +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
150966 +enable_so_ih_item_len_item_head_12495 ih_item_len item_head 0 12495 &enable_so_acpi_tb_install_standard_table_fndecl_12495
150967 +enable_so_blk_update_nr_requests_fndecl_12497 blk_update_nr_requests fndecl 2 12497 NULL
150968 +enable_so_map_off_xfs_dir2_leaf_map_info_12499 map_off xfs_dir2_leaf_map_info 0 12499 NULL
150969 +enable_so_dccp_feat_valid_nn_length_fndecl_12500 dccp_feat_valid_nn_length fndecl 0 12500 NULL
150970 +enable_so_response_length_be_cmd_resp_hdr_12501 response_length be_cmd_resp_hdr 0 12501 NULL nohasharray
150971 +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
150972 +enable_so_stream_next_buffer_fndecl_12502 stream_next_buffer fndecl 0 12502 NULL
150973 +enable_so_nclips_saa7134_dev_12507 nclips saa7134_dev 0 12507 NULL
150974 +enable_so_brcmf_chip_tcm_ramsize_fndecl_12513 brcmf_chip_tcm_ramsize fndecl 0 12513 NULL
150975 +enable_so_max_tchs_cyttsp4_sysinfo_ofs_12516 max_tchs cyttsp4_sysinfo_ofs 0 12516 NULL
150976 +enable_so_madvise_dontneed_fndecl_12517 madvise_dontneed fndecl 3-4 12517 NULL
150977 +enable_so_alloc_skb_with_frags_fndecl_12518 alloc_skb_with_frags fndecl 2 12518 NULL nohasharray
150978 +enable_so_num_pointers_whc_std_12518 num_pointers whc_std 0 12518 &enable_so_alloc_skb_with_frags_fndecl_12518
150979 +enable_so_video_read_fndecl_12519 video_read fndecl 3 12519 NULL
150980 +enable_so_stats_dot11FCSErrorCount_read_fndecl_12521 stats_dot11FCSErrorCount_read fndecl 3 12521 NULL
150981 +enable_so_snd_midi_channel_alloc_set_fndecl_12522 snd_midi_channel_alloc_set fndecl 1 12522 NULL
150982 +enable_so_index_mtd_info_12524 index mtd_info 0 12524 NULL
150983 +enable_so_al_tr_number_to_on_disk_sector_fndecl_12526 al_tr_number_to_on_disk_sector fndecl 0 12526 NULL
150984 +enable_so_depth_fb_image_12530 depth fb_image 0 12530 NULL
150985 +enable_so_lpc_sch_populate_cell_fndecl_12532 lpc_sch_populate_cell fndecl 5-4-6 12532 NULL
150986 +enable_so_write_isowbuf_t_12533 write isowbuf_t 0 12533 NULL
150987 +enable_so_m25p80_read_reg_fndecl_12535 m25p80_read_reg fndecl 4 12535 NULL
150988 +enable_so_learn_buffer_user_len_vardecl_gracl_learn_c_12538 learn_buffer_user_len vardecl_gracl_learn.c 0 12538 NULL
150989 +enable_so_cdrom_read_cdda_old_fndecl_12547 cdrom_read_cdda_old fndecl 4 12547 NULL
150990 +enable_so_qword_get_fndecl_12549 qword_get fndecl 0 12549 NULL
150991 +enable_so_recv_dless_read_fndecl_12554 recv_dless_read fndecl 4 12554 NULL
150992 +enable_so_qnx6_readpages_fndecl_12570 qnx6_readpages fndecl 4 12570 NULL
150993 +enable_so_read8_sync_rtl_io_12571 read8_sync rtl_io 0 12571 NULL
150994 +enable_so_address_length_acpi_resource_memory32_12576 address_length acpi_resource_memory32 0 12576 NULL
150995 +enable_so_fs_path_add_from_extent_buffer_fndecl_12581 fs_path_add_from_extent_buffer fndecl 0-4 12581 NULL
150996 +enable_so_rate_den_snd_pcm_hw_params_12586 rate_den snd_pcm_hw_params 0 12586 NULL
150997 +enable_so_acpi_tb_acquire_temp_table_fndecl_12590 acpi_tb_acquire_temp_table fndecl 2 12590 NULL nohasharray
150998 +enable_so_raid_disk_md_rdev_12590 raid_disk md_rdev 0 12590 &enable_so_acpi_tb_acquire_temp_table_fndecl_12590
150999 +enable_so_pt1_nr_tables_vardecl_pt1_c_12591 pt1_nr_tables vardecl_pt1.c 0 12591 NULL
151000 +enable_so_pn544_hci_probe_fndecl_12594 pn544_hci_probe fndecl 6-4 12594 NULL
151001 +enable_so_dev_rsize_hid_device_12597 dev_rsize hid_device 0 12597 NULL
151002 +enable_so_sx_fb_copyarea_12600 sx fb_copyarea 0 12600 NULL
151003 +enable_so_wqe_sz_mlx5e_rq_12601 wqe_sz mlx5e_rq 0 12601 NULL
151004 +enable_so_blk_limits_io_opt_fndecl_12606 blk_limits_io_opt fndecl 2 12606 NULL
151005 +enable_so_rt_priority_task_struct_12608 rt_priority task_struct 0 12608 NULL
151006 +enable_so_depth_g2d_fmt_12611 depth g2d_fmt 0 12611 NULL
151007 +enable_so_num_bank_bcm_kona_gpio_12612 num_bank bcm_kona_gpio 0 12612 NULL
151008 +enable_so_a4t_cs_init_fndecl_12613 a4t_cs_init fndecl 3 12613 NULL
151009 +enable_so_pty_vivid_rds_gen_12619 pty vivid_rds_gen 0 12619 NULL
151010 +enable_so_evm_write_key_fndecl_12624 evm_write_key fndecl 3 12624 NULL
151011 +enable_so_maxpacket_r8a66597_td_12628 maxpacket r8a66597_td 0 12628 NULL
151012 +enable_so_length_wep_key_12635 length wep_key 0 12635 NULL
151013 +enable_so_xfs_dir2_block_sfsize_fndecl_12636 xfs_dir2_block_sfsize fndecl 0 12636 NULL
151014 +enable_so_pattern_len_cfg80211_pkt_pattern_12639 pattern_len cfg80211_pkt_pattern 0 12639 NULL
151015 +enable_so_current_count_sectors_vardecl_floppy_c_12647 current_count_sectors vardecl_floppy.c 0 12647 NULL nohasharray
151016 +enable_so_size_of_pci_range_12647 size of_pci_range 0 12647 &enable_so_current_count_sectors_vardecl_floppy_c_12647
151017 +enable_so_local_nentries_xpc_openclose_args_12648 local_nentries xpc_openclose_args 0 12648 NULL
151018 +enable_so_kcalloc_fndecl_12649 kcalloc fndecl 1-2 12649 NULL
151019 +enable_so_fdir_pf_active_filters_i40e_pf_12654 fdir_pf_active_filters i40e_pf 0 12654 NULL
151020 +enable_so_sl_encaps_fndecl_12658 sl_encaps fndecl 3 12658 NULL
151021 +enable_so_get_index_fndecl_12660 get_index fndecl 0 12660 NULL
151022 +enable_so_linear_hugepage_index_fndecl_12664 linear_hugepage_index fndecl 0-2 12664 NULL
151023 +enable_so_sg_offset_iscsi_segment_12667 sg_offset iscsi_segment 0 12667 NULL
151024 +enable_so_num_aces_cifs_acl_12670 num_aces cifs_acl 0 12670 NULL
151025 +enable_so_beacon_buf_size_mwifiex_bssdescriptor_12674 beacon_buf_size mwifiex_bssdescriptor 0 12674 NULL nohasharray
151026 +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
151027 +enable_so_doorbell_base_kfd_dev_12677 doorbell_base kfd_dev 0 12677 NULL
151028 +enable_so_eeec_entry_sz_mthca_dev_lim_12679 eeec_entry_sz mthca_dev_lim 0 12679 NULL
151029 +enable_so_HST_kyrofb_info_12685 HST kyrofb_info 0 12685 NULL
151030 +enable_so_src_height_tpg_data_12686 src_height tpg_data 0 12686 NULL
151031 +enable_so_ttm_object_file_init_fndecl_12687 ttm_object_file_init fndecl 2 12687 NULL
151032 +enable_so_ns_nsegments_the_nilfs_12690 ns_nsegments the_nilfs 0 12690 NULL
151033 +enable_so_transport_init_session_tags_fndecl_12691 transport_init_session_tags fndecl 2-1 12691 NULL
151034 +enable_so_buf_size_mlx4_en_cq_12695 buf_size mlx4_en_cq 0 12695 NULL
151035 +enable_so_dn_neigh_elist_fndecl_12712 dn_neigh_elist fndecl 0 12712 NULL
151036 +enable_so_fld_debugfs_hash_seq_write_fndecl_12713 fld_debugfs_hash_seq_write fndecl 3 12713 NULL
151037 +enable_so_total_len_ocrdma_hdr_wqe_12714 total_len ocrdma_hdr_wqe 0 12714 NULL nohasharray
151038 +enable_so_sys_listxattr_fndecl_12714 sys_listxattr fndecl 3 12714 &enable_so_total_len_ocrdma_hdr_wqe_12714
151039 +enable_so_blk_ioctl_discard_fndecl_12725 blk_ioctl_discard fndecl 2-3 12725 NULL
151040 +enable_so_ss_in_channels_hdsp_12726 ss_in_channels hdsp 0 12726 NULL
151041 +enable_so_start_brk_prctl_mm_map_12729 start_brk prctl_mm_map 0 12729 NULL
151042 +enable_so_btrfs_truncate_item_fndecl_12731 btrfs_truncate_item fndecl 3 12731 NULL
151043 +enable_so_xfs_iomap_write_direct_fndecl_12733 xfs_iomap_write_direct fndecl 2 12733 NULL
151044 +enable_so_read_profile_fndecl_12736 read_profile fndecl 3 12736 NULL
151045 +enable_so_sky2_pci_read16_fndecl_12740 sky2_pci_read16 fndecl 0 12740 NULL
151046 +enable_so_count_nfsd3_readres_12745 count nfsd3_readres 0 12745 NULL
151047 +enable_so_aead_assoclen_aead_ctx_12755 aead_assoclen aead_ctx 0 12755 NULL nohasharray
151048 +enable_so_nfsd4_encode_splice_read_fndecl_12755 nfsd4_encode_splice_read fndecl 4 12755 &enable_so_aead_assoclen_aead_ctx_12755
151049 +enable_so_reserve_memtype_fndecl_12762 reserve_memtype fndecl 1-2 12762 NULL
151050 +enable_so_num_unit_element_struct_12767 num unit_element_struct 0 12767 NULL
151051 +enable_so_wl1251_sdio_read_fndecl_12773 wl1251_sdio_read fndecl 4 12773 NULL
151052 +enable_so_driver_add_groups_fndecl_12778 driver_add_groups fndecl 0 12778 NULL
151053 +enable_so_height_mxr_block_12780 height mxr_block 0 12780 NULL
151054 +enable_so_ieee80211_if_read_dot11MeshHWMProotInterval_fndecl_12786 ieee80211_if_read_dot11MeshHWMProotInterval fndecl 3 12786 NULL
151055 +enable_so_rx_max_pg_ring_bnx2_12789 rx_max_pg_ring bnx2 0 12789 NULL
151056 +enable_so_sb_fseg_start_nilfs_segment_buffer_12802 sb_fseg_start nilfs_segment_buffer 0 12802 NULL
151057 +enable_so_mpage_readpages_fndecl_12807 mpage_readpages fndecl 3 12807 NULL
151058 +enable_so_object_num_mxt_info_12810 object_num mxt_info 0 12810 NULL
151059 +enable_so_testmode_write_fndecl_12814 testmode_write fndecl 3 12814 NULL
151060 +enable_so_hint_events_per_packet_input_dev_12818 hint_events_per_packet input_dev 0 12818 NULL nohasharray
151061 +enable_so_subdev_ioctl_fndecl_12818 subdev_ioctl fndecl 2 12818 &enable_so_hint_events_per_packet_input_dev_12818
151062 +enable_so_xen_pirq_from_irq_fndecl_12820 xen_pirq_from_irq fndecl 0 12820 NULL
151063 +enable_so___videobuf_mmap_setup_fndecl_12822 __videobuf_mmap_setup fndecl 3-0 12822 NULL
151064 +enable_so_ksocknal_alloc_tx_fndecl_12825 ksocknal_alloc_tx fndecl 2 12825 NULL
151065 +enable_so_falcon_spi_device_init_fndecl_12835 falcon_spi_device_init fndecl 4 12835 NULL
151066 +enable_so_vmw_du_crtc_cursor_set_fndecl_12844 vmw_du_crtc_cursor_set fndecl 5-4 12844 NULL
151067 +enable_so_xfs_rtfind_back_fndecl_12849 xfs_rtfind_back fndecl 3 12849 NULL
151068 +enable_so_sbs_setup_fndecl_12851 sbs_setup fndecl 4 12851 NULL
151069 +enable_so_key_mic_failures_read_fndecl_12858 key_mic_failures_read fndecl 3 12858 NULL
151070 +enable_so_rx_buffer_size_macb_12864 rx_buffer_size macb 0 12864 NULL
151071 +enable_so_snd_interval_refine_max_fndecl_12865 snd_interval_refine_max fndecl 2 12865 NULL
151072 +enable_so_frameoffset_b43legacy_dmaring_12869 frameoffset b43legacy_dmaring 0 12869 NULL
151073 +enable_so_error_code_x86_exception_12872 error_code x86_exception 0 12872 NULL
151074 +enable_so_max_ddbs_hw_profile_12873 max_ddbs hw_profile 0 12873 NULL
151075 +enable_so_tcp_remove_reno_sacks_fndecl_12874 tcp_remove_reno_sacks fndecl 2 12874 NULL
151076 +enable_so_length_i2c_hid_cmd_12879 length i2c_hid_cmd 0 12879 NULL
151077 +enable_so_response_length_ib_uverbs_ex_create_cq_resp_12889 response_length ib_uverbs_ex_create_cq_resp 0 12889 NULL
151078 +enable_so_udp_uncompress_fndecl_12890 udp_uncompress fndecl 2 12890 NULL
151079 +enable_so_max_response_pages_fndecl_12895 max_response_pages fndecl 0 12895 NULL
151080 +enable_so_offset_ceph_dentry_info_12896 offset ceph_dentry_info 0 12896 NULL
151081 +enable_so_early_init_dt_alloc_memory_arch_fndecl_12899 early_init_dt_alloc_memory_arch fndecl 2-1 12899 NULL
151082 +enable_so_dbgfs_sram_len_iwl_mvm_12900 dbgfs_sram_len iwl_mvm 0 12900 NULL
151083 +enable_so_tool_db_read_fndecl_12902 tool_db_read fndecl 3 12902 NULL
151084 +enable_so_ccw_cursor_fndecl_12903 ccw_cursor fndecl 4 12903 NULL
151085 +enable_so_capinc_tty_write_fndecl_12904 capinc_tty_write fndecl 3 12904 NULL
151086 +enable_so_add_children_fndecl_12906 add_children fndecl 2 12906 NULL
151087 +enable_so_ps_poll_upsd_utilization_read_fndecl_12916 ps_poll_upsd_utilization_read fndecl 3 12916 NULL
151088 +enable_so_max_reportid_mxt_data_12917 max_reportid mxt_data 0 12917 NULL
151089 +enable_so_cfg80211_calculate_bitrate_fndecl_12918 cfg80211_calculate_bitrate fndecl 0 12918 NULL
151090 +enable_so_m_lblk_ext4_map_blocks_12920 m_lblk ext4_map_blocks 0 12920 NULL
151091 +enable_so_nilfs_sufile_delete_segment_usage_block_fndecl_12921 nilfs_sufile_delete_segment_usage_block fndecl 2 12921 NULL
151092 +enable_so_qs_out_channels_hdspm_12922 qs_out_channels hdspm 0 12922 NULL
151093 +enable_so_idetape_mtioctop_fndecl_12923 idetape_mtioctop fndecl 3 12923 NULL
151094 +enable_so_sh_irda_init_iobuf_fndecl_12924 sh_irda_init_iobuf fndecl 2 12924 NULL nohasharray
151095 +enable_so_i2400m_tx_stats_read_fndecl_12924 i2400m_tx_stats_read fndecl 3 12924 &enable_so_sh_irda_init_iobuf_fndecl_12924
151096 +enable_so_ath6kl_wmi_disconnect_cmd_fndecl_12926 ath6kl_wmi_disconnect_cmd fndecl 2 12926 NULL
151097 +enable_so_obufsize_sisusb_usb_data_12932 obufsize sisusb_usb_data 0 12932 NULL nohasharray
151098 +enable_so_asymmetric_verify_fndecl_12932 asymmetric_verify fndecl 3 12932 &enable_so_obufsize_sisusb_usb_data_12932
151099 +enable_so_ext4_split_extent_at_fndecl_12936 ext4_split_extent_at fndecl 4 12936 NULL
151100 +enable_so_vlan_id_vlan_dev_priv_12939 vlan_id vlan_dev_priv 0 12939 NULL
151101 +enable_so_xlog_clear_stale_blocks_fndecl_12940 xlog_clear_stale_blocks fndecl 2 12940 NULL
151102 +enable_so_phys_pud_init_fndecl_12941 phys_pud_init fndecl 0-2-3 12941 NULL
151103 +enable_so_gfs2_meta_indirect_buffer_fndecl_12942 gfs2_meta_indirect_buffer fndecl 3 12942 NULL
151104 +enable_so_run_delalloc_range_fndecl_12946 run_delalloc_range fndecl 3-4 12946 NULL nohasharray
151105 +enable_so_aio_read_events_fndecl_12946 aio_read_events fndecl 3 12946 &enable_so_run_delalloc_range_fndecl_12946 nohasharray
151106 +enable_so_mptctl_getiocinfo_fndecl_12946 mptctl_getiocinfo fndecl 2 12946 &enable_so_aio_read_events_fndecl_12946
151107 +enable_so_get_rate_snd_ice1712_12947 get_rate snd_ice1712 0 12947 NULL nohasharray
151108 +enable_so_sel_read_policycap_fndecl_12947 sel_read_policycap fndecl 3 12947 &enable_so_get_rate_snd_ice1712_12947
151109 +enable_so_st_nci_se_io_fndecl_12948 st_nci_se_io fndecl 4 12948 NULL
151110 +enable_so_nr_segments_blkif_request_rw_12950 nr_segments blkif_request_rw 0 12950 NULL
151111 +enable_so_b43legacy_debugfs_write_fndecl_12959 b43legacy_debugfs_write fndecl 3 12959 NULL
151112 +enable_so_vm_start_vm_area_struct_12960 vm_start vm_area_struct 0 12960 NULL
151113 +enable_so_data_pipe_mts_transfer_context_12962 data_pipe mts_transfer_context 0 12962 NULL
151114 +enable_so_apei_exec_ctx_set_input_fndecl_12968 apei_exec_ctx_set_input fndecl 2 12968 NULL
151115 +enable_so_initiator_length_spar_controlvm_parameters_header_12973 initiator_length spar_controlvm_parameters_header 0 12973 NULL
151116 +enable_so_clone_update_extent_map_fndecl_12984 clone_update_extent_map fndecl 4-5 12984 NULL
151117 +enable_so_ql4xmaxqdepth_vardecl_ql4_os_c_12992 ql4xmaxqdepth vardecl_ql4_os.c 0 12992 NULL
151118 +enable_so_xdr_reserve_space_fndecl_12997 xdr_reserve_space fndecl 2 12997 NULL
151119 +enable_so_end_file_extent_cluster_13001 end file_extent_cluster 0 13001 NULL
151120 +enable_so_pm3fb_size_memory_fndecl_13002 pm3fb_size_memory fndecl 0 13002 NULL
151121 +enable_so_ipath_ureg_align_ipath_devdata_13010 ipath_ureg_align ipath_devdata 0 13010 NULL
151122 +enable_so_mcp795_rtcc_write_fndecl_13014 mcp795_rtcc_write fndecl 4 13014 NULL nohasharray
151123 +enable_so_gfs2_fsync_fndecl_13014 gfs2_fsync fndecl 2-3 13014 &enable_so_mcp795_rtcc_write_fndecl_13014
151124 +enable_so_sg_alloc_table_from_pages_fndecl_13015 sg_alloc_table_from_pages fndecl 5-4 13015 NULL nohasharray
151125 +enable_so_kfifo_unused_fndecl_13015 kfifo_unused fndecl 0 13015 &enable_so_sg_alloc_table_from_pages_fndecl_13015
151126 +enable_so_arg_end_mm_struct_13016 arg_end mm_struct 0 13016 NULL
151127 +enable_so_mp_override_legacy_irq_fndecl_13017 mp_override_legacy_irq fndecl 1-4 13017 NULL
151128 +enable_so_rpcrdma_alloc_regbuf_fndecl_13018 rpcrdma_alloc_regbuf fndecl 2 13018 NULL
151129 +enable_so_snd_nm256_capture_copy_fndecl_13021 snd_nm256_capture_copy fndecl 5 13021 NULL
151130 +enable_so_do_mbind_fndecl_13022 do_mbind fndecl 2-1 13022 NULL
151131 +enable_so_format_supported_num_intel_sdvo_connector_13024 format_supported_num intel_sdvo_connector 0 13024 NULL
151132 +enable_so___free_memory_core_fndecl_13029 __free_memory_core fndecl 0-1-2 13029 NULL nohasharray
151133 +enable_so_iwl_dbgfs_nic_temp_read_fndecl_13029 iwl_dbgfs_nic_temp_read fndecl 3 13029 &enable_so___free_memory_core_fndecl_13029
151134 +enable_so_blk_queue_resize_tags_fndecl_13037 blk_queue_resize_tags fndecl 2 13037 NULL
151135 +enable_so_p9_fcall_alloc_fndecl_13055 p9_fcall_alloc fndecl 1 13055 NULL nohasharray
151136 +enable_so_sco_sock_recvmsg_fndecl_13055 sco_sock_recvmsg fndecl 3 13055 &enable_so_p9_fcall_alloc_fndecl_13055
151137 +enable_so_hfront_porch_videomode_13056 hfront_porch videomode 0 13056 NULL
151138 +enable_so_p_offset_elf64_phdr_13061 p_offset elf64_phdr 0 13061 NULL
151139 +enable_so_xfs_bunmapi_fndecl_13063 xfs_bunmapi fndecl 3-4 13063 NULL
151140 +enable_so___ocfs2_dx_dir_leaf_insert_fndecl_13066 __ocfs2_dx_dir_leaf_insert fndecl 4 13066 NULL
151141 +enable_so_read_disk_sb_fndecl_13071 read_disk_sb fndecl 2 13071 NULL
151142 +enable_so_amd756_ioport_vardecl_i2c_amd756_c_13072 amd756_ioport vardecl_i2c-amd756.c 0 13072 NULL
151143 +enable_so_envc_tomoyo_condition_13082 envc tomoyo_condition 0 13082 NULL
151144 +enable_so_c4iw_reject_cr_fndecl_13085 c4iw_reject_cr fndecl 3 13085 NULL
151145 +enable_so_vread_fndecl_13086 vread fndecl 3-0 13086 NULL
151146 +enable_so_hard_mtu_usbnet_13093 hard_mtu usbnet 0 13093 NULL nohasharray
151147 +enable_so_vrambase_sisusb_usb_data_13093 vrambase sisusb_usb_data 0 13093 &enable_so_hard_mtu_usbnet_13093 nohasharray
151148 +enable_so_cursg_ofs_ide_cmd_13093 cursg_ofs ide_cmd 0 13093 &enable_so_vrambase_sisusb_usb_data_13093 nohasharray
151149 +enable_so_thermal_zone_device_register_fndecl_13093 thermal_zone_device_register fndecl 2 13093 &enable_so_cursg_ofs_ide_cmd_13093
151150 +enable_so_set_wep_key_fndecl_13094 set_wep_key fndecl 4 13094 NULL
151151 +enable_so___exclude_logged_extent_fndecl_13095 __exclude_logged_extent fndecl 3-2 13095 NULL
151152 +enable_so_end_data_mm_struct_13099 end_data mm_struct 0 13099 NULL
151153 +enable_so_ocfs2_cow_sync_writeback_fndecl_13102 ocfs2_cow_sync_writeback fndecl 3-4 13102 NULL nohasharray
151154 +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
151155 +enable_so___qp_memcpy_from_queue_fndecl_13103 __qp_memcpy_from_queue fndecl 4-3 13103 NULL nohasharray
151156 +enable_so_sctp_tsnmap_skip_fndecl_13103 sctp_tsnmap_skip fndecl 2 13103 &enable_so___qp_memcpy_from_queue_fndecl_13103
151157 +enable_so_cx24117_readregN_fndecl_13105 cx24117_readregN fndecl 4 13105 NULL
151158 +enable_so_num_qp_mlx4_profile_13106 num_qp mlx4_profile 0 13106 NULL
151159 +enable_so_nvkm_output_dp_create__fndecl_13107 nvkm_output_dp_create_ fndecl 6 13107 NULL
151160 +enable_so_au_verfsize_rpc_auth_13110 au_verfsize rpc_auth 0 13110 NULL
151161 +enable_so_DecodeMatrix_fndecl_13117 DecodeMatrix fndecl 0 13117 NULL nohasharray
151162 +enable_so_wIELength_uwb_rc_evt_drp_WUSB_0100_13117 wIELength uwb_rc_evt_drp_WUSB_0100 0 13117 &enable_so_DecodeMatrix_fndecl_13117
151163 +enable_so_sys_setpriority_fndecl_13132 sys_setpriority fndecl 3 13132 NULL
151164 +enable_so_source_pad_adv76xx_state_13133 source_pad adv76xx_state 0 13133 NULL
151165 +enable_so_c4iw_wr_log_size_order_vardecl_device_c_13134 c4iw_wr_log_size_order vardecl_device.c 0 13134 NULL
151166 +enable_so_line6_alloc_sysex_buffer_fndecl_13138 line6_alloc_sysex_buffer fndecl 4 13138 NULL
151167 +enable_so_genwqe_sriov_configure_fndecl_13139 genwqe_sriov_configure fndecl 2 13139 NULL
151168 +enable_so_mousedev_reserve_minor_fndecl_13143 mousedev_reserve_minor fndecl 0 13143 NULL
151169 +enable_so_viafb_bpp_vardecl_viafbdev_c_13145 viafb_bpp vardecl_viafbdev.c 0 13145 NULL
151170 +enable_so_max_response_packet_size_ec_response_get_protocol_info_13148 max_response_packet_size ec_response_get_protocol_info 0 13148 NULL
151171 +enable_so_calc_available_memory_size_fndecl_13151 calc_available_memory_size fndecl 0 13151 NULL
151172 +enable_so_len_mtd_write_req_13154 len mtd_write_req 0 13154 NULL nohasharray
151173 +enable_so_EraseUnitSize_erase_unit_header_t_13154 EraseUnitSize erase_unit_header_t 0 13154 &enable_so_len_mtd_write_req_13154
151174 +enable_so_inline_xattr_size_fndecl_13166 inline_xattr_size fndecl 0 13166 NULL
151175 +enable_so_hpfs_add_to_dnode_fndecl_13167 hpfs_add_to_dnode fndecl 4-2 13167 NULL
151176 +enable_so_iproc_pll_clk_setup_fndecl_13179 iproc_pll_clk_setup fndecl 6 13179 NULL
151177 +enable_so_nouveau_compat_ioctl_fndecl_13186 nouveau_compat_ioctl fndecl 2 13186 NULL
151178 +enable_so_blocksize_f2fs_sb_info_13191 blocksize f2fs_sb_info 0 13191 NULL
151179 +enable_so_bsg_setup_queue_fndecl_13194 bsg_setup_queue fndecl 5 13194 NULL
151180 +enable_so_generic_access_phys_fndecl_13197 generic_access_phys fndecl 2-4 13197 NULL
151181 +enable_so_snd_pcm_oss_read_fndecl_13198 snd_pcm_oss_read fndecl 3 13198 NULL
151182 +enable_so_SyS_ppoll_fndecl_13201 SyS_ppoll fndecl 2 13201 NULL
151183 +enable_so_dma_map_sg_attrs_fndecl_13202 dma_map_sg_attrs fndecl 0 13202 NULL
151184 +enable_so_num_channels_sh_cmt_device_13209 num_channels sh_cmt_device 0 13209 NULL
151185 +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
151186 +enable_so_height_usbtv_13217 height usbtv 0 13217 NULL nohasharray
151187 +enable_so_bm_entry_write_fndecl_13217 bm_entry_write fndecl 3 13217 &enable_so_height_usbtv_13217
151188 +enable_so_create_boot_cache_fndecl_13218 create_boot_cache fndecl 3 13218 NULL
151189 +enable_so_total_xfer_len_sas_task_13219 total_xfer_len sas_task 0 13219 NULL
151190 +enable_so_ath5k_common_padpos_fndecl_13221 ath5k_common_padpos fndecl 0 13221 NULL
151191 +enable_so_tcp_copy_to_iovec_fndecl_13227 tcp_copy_to_iovec fndecl 3 13227 NULL nohasharray
151192 +enable_so_ipath_uregbase_ipath_devdata_13227 ipath_uregbase ipath_devdata 0 13227 &enable_so_tcp_copy_to_iovec_fndecl_13227
151193 +enable_so_len_hi_sigma_action_13229 len_hi sigma_action 0 13229 NULL
151194 +enable_so_filldir64_fndecl_13232 filldir64 fndecl 3 13232 NULL
151195 +enable_so_mtdram_init_device_fndecl_13236 mtdram_init_device fndecl 3 13236 NULL
151196 +enable_so_ipxitf_alloc_fndecl_13238 ipxitf_alloc fndecl 6 13238 NULL
151197 +enable_so_max_mthca_wq_13240 max mthca_wq 0 13240 NULL
151198 +enable_so_update_sge_fndecl_13245 update_sge fndecl 2 13245 NULL
151199 +enable_so_sq_psn_ib_qp_attr_13249 sq_psn ib_qp_attr 0 13249 NULL nohasharray
151200 +enable_so_batadv_handle_tt_response_fndecl_13249 batadv_handle_tt_response fndecl 4 13249 &enable_so_sq_psn_ib_qp_attr_13249
151201 +enable_so_dst_base_apei_exec_context_13252 dst_base apei_exec_context 0 13252 NULL
151202 +enable_so_maxsize_p9_trans_module_13254 maxsize p9_trans_module 0 13254 NULL
151203 +enable_so_pid_filter_count_dvb_usb_adapter_properties_13258 pid_filter_count dvb_usb_adapter_properties 0 13258 NULL
151204 +enable_so_blocklen_bytes_drbg_core_13259 blocklen_bytes drbg_core 0 13259 NULL nohasharray
151205 +enable_so_maxid_scif_info_13259 maxid scif_info 0 13259 &enable_so_blocklen_bytes_drbg_core_13259
151206 +enable_so_rsp_pay_size_qlcnic_bc_trans_13274 rsp_pay_size qlcnic_bc_trans 0 13274 NULL nohasharray
151207 +enable_so_rx_len_acpi_ipmi_msg_13274 rx_len acpi_ipmi_msg 0 13274 &enable_so_rsp_pay_size_qlcnic_bc_trans_13274
151208 +enable_so_cryptlen_authenc_esn_request_ctx_13277 cryptlen authenc_esn_request_ctx 0 13277 NULL
151209 +enable_so_xfs_iomap_write_unwritten_fndecl_13278 xfs_iomap_write_unwritten fndecl 3-2 13278 NULL
151210 +enable_so_status_usb_iso_packet_descriptor_13287 status usb_iso_packet_descriptor 0 13287 NULL
151211 +enable_so_num_bytes_sigma_fw_chunk_control_13289 num_bytes sigma_fw_chunk_control 0 13289 NULL
151212 +enable_so_compress_file_range_fndecl_13295 compress_file_range fndecl 4-3 13295 NULL
151213 +enable_so_ioc_plen1_libcfs_ioctl_data_13297 ioc_plen1 libcfs_ioctl_data 0 13297 NULL
151214 +enable_so_dlmfs_file_read_fndecl_13298 dlmfs_file_read fndecl 3 13298 NULL
151215 +enable_so_sys_writev_fndecl_13299 sys_writev fndecl 3 13299 NULL
151216 +enable_so_alloc_page_buffers_fndecl_13304 alloc_page_buffers fndecl 2 13304 NULL
151217 +enable_so_tx_frag_cache_miss_read_fndecl_13305 tx_frag_cache_miss_read fndecl 3 13305 NULL
151218 +enable_so_tool_db_write_fndecl_13312 tool_db_write fndecl 3 13312 NULL
151219 +enable_so_token_size_iw_ioctl_description_13319 token_size iw_ioctl_description 0 13319 NULL
151220 +enable_so_slhc_uncompress_fndecl_13322 slhc_uncompress fndecl 0-3 13322 NULL
151221 +enable_so_skb_zerocopy_headlen_fndecl_13325 skb_zerocopy_headlen fndecl 0 13325 NULL
151222 +enable_so_svc_print_xprts_fndecl_13330 svc_print_xprts fndecl 0 13330 NULL
151223 +enable_so_csum_and_copy_from_iter_fndecl_13338 csum_and_copy_from_iter fndecl 2 13338 NULL
151224 +enable_so_copy_buffer_fndecl_13339 copy_buffer fndecl 1-2-3 13339 NULL
151225 +enable_so_brcmf_usb_dl_cmd_fndecl_13344 brcmf_usb_dl_cmd fndecl 4 13344 NULL
151226 +enable_so_x25_asy_change_mtu_fndecl_13347 x25_asy_change_mtu fndecl 2 13347 NULL
151227 +enable_so_pwr_ps_enter_read_fndecl_13348 pwr_ps_enter_read fndecl 3 13348 NULL nohasharray
151228 +enable_so_sctp_setsockopt_adaptation_layer_fndecl_13348 sctp_setsockopt_adaptation_layer fndecl 3 13348 &enable_so_pwr_ps_enter_read_fndecl_13348
151229 +enable_so_compat_mtw_from_user_fndecl_13351 compat_mtw_from_user fndecl 0 13351 NULL
151230 +enable_so_hecubafb_write_fndecl_13357 hecubafb_write fndecl 3 13357 NULL
151231 +enable_so_carl9170_handle_mpdu_fndecl_13359 carl9170_handle_mpdu fndecl 3 13359 NULL
151232 +enable_so_hhf_zalloc_fndecl_13363 hhf_zalloc fndecl 1 13363 NULL
151233 +enable_so_unit_mddev_13365 unit mddev 0 13365 NULL
151234 +enable_so_ihl_iphdr_13367 ihl iphdr 0 13367 NULL nohasharray
151235 +enable_so_cfg80211_process_auth_fndecl_13367 cfg80211_process_auth fndecl 3 13367 &enable_so_ihl_iphdr_13367
151236 +enable_so_sd_size_stat_data_13368 sd_size stat_data 0 13368 NULL
151237 +enable_so_ep_response_mts_desc_13372 ep_response mts_desc 0 13372 NULL
151238 +enable_so_num_pages_ttm_tt_13376 num_pages ttm_tt 0 13376 NULL
151239 +enable_so_ds_in_channels_hdspm_13382 ds_in_channels hdspm 0 13382 NULL nohasharray
151240 +enable_so_T5_msg_size_mxt_data_13382 T5_msg_size mxt_data 0 13382 &enable_so_ds_in_channels_hdspm_13382
151241 +enable_so_max_width_sh_mobile_ceu_dev_13387 max_width sh_mobile_ceu_dev 0 13387 NULL nohasharray
151242 +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
151243 +enable_so_chunk_size_lirc_buffer_13388 chunk_size lirc_buffer 0 13388 NULL
151244 +enable_so_beep_amp_conexant_spec_13390 beep_amp conexant_spec 0 13390 NULL
151245 +enable_so_ic_offset_xlog_in_core_13393 ic_offset xlog_in_core 0 13393 NULL nohasharray
151246 +enable_so_cmdsts__BufferDesc_13393 cmdsts _BufferDesc 0 13393 &enable_so_ic_offset_xlog_in_core_13393 nohasharray
151247 +enable_so_max_sets_vardecl_ip_set_core_c_13393 max_sets vardecl_ip_set_core.c 0 13393 &enable_so_cmdsts__BufferDesc_13393
151248 +enable_so_memblock_add_fndecl_13394 memblock_add fndecl 1-2 13394 NULL
151249 +enable_so_nfs42_fallocate_fndecl_13396 nfs42_fallocate fndecl 3-4 13396 NULL
151250 +enable_so_mp_payload_len_fcoe_mp_rsp_union_13397 mp_payload_len fcoe_mp_rsp_union 0 13397 NULL nohasharray
151251 +enable_so_i_size_write_fndecl_13397 i_size_write fndecl 2 13397 &enable_so_mp_payload_len_fcoe_mp_rsp_union_13397
151252 +enable_so_microread_probe_fndecl_13400 microread_probe fndecl 6-4 13400 NULL nohasharray
151253 +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
151254 +enable_so_rmmio_base_cirrus_device_13402 rmmio_base cirrus_device 0 13402 NULL
151255 +enable_so_nfs_proc_readlink_fndecl_13404 nfs_proc_readlink fndecl 4-3 13404 NULL
151256 +enable_so_shrink_slab_fndecl_13407 shrink_slab fndecl 5-4 13407 NULL
151257 +enable_so_subdevices_count_snd_rawmidi_info_13408 subdevices_count snd_rawmidi_info 0 13408 NULL
151258 +enable_so_rate_adav80x_13411 rate adav80x 0 13411 NULL
151259 +enable_so_extra_len_request_13419 extra_len request 0 13419 NULL
151260 +enable_so_nrealreaders_stress_lock_torture_cxt_13422 nrealreaders_stress lock_torture_cxt 0 13422 NULL
151261 +enable_so_tx_headroom_ieee80211_local_13423 tx_headroom ieee80211_local 0 13423 NULL
151262 +enable_so_do_direct_IO_fndecl_13424 do_direct_IO fndecl 0 13424 NULL
151263 +enable_so_tb_path_alloc_fndecl_13427 tb_path_alloc fndecl 2 13427 NULL
151264 +enable_so_get_origin_minimum_chunksize_fndecl_13432 get_origin_minimum_chunksize fndecl 0 13432 NULL
151265 +enable_so_nouveau_channel_prep_fndecl_13435 nouveau_channel_prep fndecl 4 13435 NULL
151266 +enable_so_usbdev_lseek_fndecl_13441 usbdev_lseek fndecl 2 13441 NULL
151267 +enable_so_promote_fndecl_13442 promote fndecl 4-3 13442 NULL nohasharray
151268 +enable_so_mwifiex_memrw_write_fndecl_13442 mwifiex_memrw_write fndecl 3 13442 &enable_so_promote_fndecl_13442
151269 +enable_so_nports_adapter_params_13446 nports adapter_params 0 13446 NULL
151270 +enable_so_fill_read_buf_fndecl_13455 fill_read_buf fndecl 0-2 13455 NULL
151271 +enable_so_me_start_ocfs2_move_extents_13461 me_start ocfs2_move_extents 0 13461 NULL nohasharray
151272 +enable_so_max_eq_mlx4_func_cap_13461 max_eq mlx4_func_cap 0 13461 &enable_so_me_start_ocfs2_move_extents_13461
151273 +enable_so_flaglen_ring_desc_13468 flaglen ring_desc 0 13468 NULL
151274 +enable_so_ufs_alloc_fragments_fndecl_13472 ufs_alloc_fragments fndecl 2-0-3 13472 NULL nohasharray
151275 +enable_so_handle_mm_fault_fndecl_13472 handle_mm_fault fndecl 3 13472 &enable_so_ufs_alloc_fragments_fndecl_13472 nohasharray
151276 +enable_so_snd_ctl_new_fndecl_13472 snd_ctl_new fndecl 2 13472 &enable_so_handle_mm_fault_fndecl_13472
151277 +enable_so_height_bttv_fh_13473 height bttv_fh 0 13473 NULL
151278 +enable_so_req_ie_length_ndis_80211_assoc_info_13477 req_ie_length ndis_80211_assoc_info 0 13477 NULL nohasharray
151279 +enable_so___videobuf_alloc_vb_fndecl_13477 __videobuf_alloc_vb fndecl 1 13477 &enable_so_req_ie_length_ndis_80211_assoc_info_13477
151280 +enable_so_devfn_slot_13478 devfn slot 0 13478 NULL
151281 +enable_so_ext4_convert_unwritten_extents_fndecl_13483 ext4_convert_unwritten_extents fndecl 3-4 13483 NULL
151282 +enable_so_size_jffs2_full_dnode_13487 size jffs2_full_dnode 0 13487 NULL
151283 +enable_so_sk_datalen_svc_sock_13490 sk_datalen svc_sock 0 13490 NULL nohasharray
151284 +enable_so_i_section_size_iso_inode_info_13490 i_section_size iso_inode_info 0 13490 &enable_so_sk_datalen_svc_sock_13490
151285 +enable_so_sendpage_proto_ops_13505 sendpage proto_ops 0 13505 NULL nohasharray
151286 +enable_so_hwtstamp_ioctl_fndecl_13505 hwtstamp_ioctl fndecl 0 13505 &enable_so_sendpage_proto_ops_13505
151287 +enable_so_btmrvl_hscmd_write_fndecl_13506 btmrvl_hscmd_write fndecl 3 13506 NULL
151288 +enable_so_max_channels_cmipci_13517 max_channels cmipci 0 13517 NULL nohasharray
151289 +enable_so_len_unix_address_13517 len unix_address 0 13517 &enable_so_max_channels_cmipci_13517
151290 +enable_so_max_out_size_ims_pcu_13527 max_out_size ims_pcu 0 13527 NULL
151291 +enable_so_av_buf_head_dccp_ackvec_13528 av_buf_head dccp_ackvec 0 13528 NULL nohasharray
151292 +enable_so_alloc_fdmem_fndecl_13528 alloc_fdmem fndecl 1 13528 &enable_so_av_buf_head_dccp_ackvec_13528
151293 +enable_so_max_ws_blocks_scsi_disk_13533 max_ws_blocks scsi_disk 0 13533 NULL
151294 +enable_so_find_rsb_nodir_fndecl_13537 find_rsb_nodir fndecl 3 13537 NULL
151295 +enable_so_p_filesz_elf64_phdr_13545 p_filesz elf64_phdr 0 13545 NULL
151296 +enable_so_len_prism2_download_data_area_13551 len prism2_download_data_area 0 13551 NULL
151297 +enable_so_decode_imm_fndecl_13552 decode_imm fndecl 3 13552 NULL
151298 +enable_so_nes_reg_user_mr_fndecl_13553 nes_reg_user_mr fndecl 2-3 13553 NULL nohasharray
151299 +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
151300 +enable_so_context_id_fcoe_kwqe_conn_destroy_13555 context_id fcoe_kwqe_conn_destroy 0 13555 NULL
151301 +enable_so___devcgroup_inode_permission_fndecl_13559 __devcgroup_inode_permission fndecl 0 13559 NULL nohasharray
151302 +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
151303 +enable_so_buf_len_vp702x_device_state_13562 buf_len vp702x_device_state 0 13562 NULL
151304 +enable_so_capture_periodsize_rme96_13564 capture_periodsize rme96 0 13564 NULL
151305 +enable_so_edt_ft5x06_ts_readwrite_fndecl_13570 edt_ft5x06_ts_readwrite fndecl 2-4-0 13570 NULL
151306 +enable_so_amdtp_stream_get_max_payload_fndecl_13574 amdtp_stream_get_max_payload fndecl 0 13574 NULL
151307 +enable_so_irq_alloc_generic_chip_fndecl_13577 irq_alloc_generic_chip fndecl 2 13577 NULL
151308 +enable_so_fd_do_prot_fill_fndecl_13583 fd_do_prot_fill fndecl 5-3 13583 NULL
151309 +enable_so_pwr_fix_tsf_ps_read_fndecl_13584 pwr_fix_tsf_ps_read fndecl 3 13584 NULL
151310 +enable_so_ring_size_r600_ih_13586 ring_size r600_ih 0 13586 NULL
151311 +enable_so_video_v_start_saa7134_tvnorm_13594 video_v_start saa7134_tvnorm 0 13594 NULL
151312 +enable_so_pxa168_eth_change_mtu_fndecl_13596 pxa168_eth_change_mtu fndecl 2 13596 NULL nohasharray
151313 +enable_so_sysctl_wmem_default_vardecl_13596 sysctl_wmem_default vardecl 0 13596 &enable_so_pxa168_eth_change_mtu_fndecl_13596
151314 +enable_so_active_ahc_linux_device_13601 active ahc_linux_device 0 13601 NULL
151315 +enable_so_size_drm_mm_node_13605 size drm_mm_node 0 13605 NULL
151316 +enable_so_flowinfo_read_fndecl_13608 flowinfo_read fndecl 3 13608 NULL
151317 +enable_so_id_pcap_subdev_13609 id pcap_subdev 0 13609 NULL
151318 +enable_so_cipso_v4_map_cat_rbm_hton_fndecl_13611 cipso_v4_map_cat_rbm_hton fndecl 0 13611 NULL nohasharray
151319 +enable_so_size_sm501_mem_13611 size sm501_mem 0 13611 &enable_so_cipso_v4_map_cat_rbm_hton_fndecl_13611
151320 +enable_so___alloc_pred_stack_fndecl_13612 __alloc_pred_stack fndecl 2 13612 NULL
151321 +enable_so_nvoices_snd_seq_oss_reg_13613 nvoices snd_seq_oss_reg 0 13613 NULL
151322 +enable_so_us122l_start_fndecl_13617 us122l_start fndecl 2-3 13617 NULL
151323 +enable_so_softback_top_vardecl_fbcon_c_13621 softback_top vardecl_fbcon.c 0 13621 NULL nohasharray
151324 +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
151325 +enable_so_usb_reset_device_fndecl_13622 usb_reset_device fndecl 0 13622 NULL
151326 +enable_so_ws_col_winsize_13628 ws_col winsize 0 13628 NULL
151327 +enable_so_num_mgms_mthca_limits_13629 num_mgms mthca_limits 0 13629 NULL
151328 +enable_so_x1_drm_clip_rect_13637 x1 drm_clip_rect 0 13637 NULL
151329 +enable_so_xenbus_map_ring_valloc_hvm_fndecl_13638 xenbus_map_ring_valloc_hvm fndecl 3 13638 NULL
151330 +enable_so_nbytes_ata_queued_cmd_13642 nbytes ata_queued_cmd 0 13642 NULL
151331 +enable_so_nilfs_compute_checksum_fndecl_13643 nilfs_compute_checksum fndecl 6 13643 NULL nohasharray
151332 +enable_so_npools_svc_pool_map_13643 npools svc_pool_map 0 13643 &enable_so_nilfs_compute_checksum_fndecl_13643
151333 +enable_so_number_mdp_device_descriptor_s_13645 number mdp_device_descriptor_s 0 13645 NULL
151334 +enable_so_x_drm_vmw_rect_13648 x drm_vmw_rect 0 13648 NULL
151335 +enable_so_unicast_mac_count_be_nic_res_desc_13650 unicast_mac_count be_nic_res_desc 0 13650 NULL
151336 +enable_so_page_len_xdr_buf_13652 page_len xdr_buf 0 13652 NULL
151337 +enable_so_iwl_mvm_hwrate_to_tx_rate_fndecl_13658 iwl_mvm_hwrate_to_tx_rate fndecl 1 13658 NULL nohasharray
151338 +enable_so_buffer_pos_vardecl_event_buffer_c_13658 buffer_pos vardecl_event_buffer.c 0 13658 &enable_so_iwl_mvm_hwrate_to_tx_rate_fndecl_13658
151339 +enable_so_width_s2255_vc_13661 width s2255_vc 0 13661 NULL
151340 +enable_so_length_rbd_img_request_13674 length rbd_img_request 0 13674 NULL nohasharray
151341 +enable_so_pipeline_tcp_rx_stat_fifo_int_read_fndecl_13674 pipeline_tcp_rx_stat_fifo_int_read fndecl 3 13674 &enable_so_length_rbd_img_request_13674
151342 +enable_so_vsync_psb_pipe_13675 vsync psb_pipe 0 13675 NULL
151343 +enable_so_virtscsi_change_queue_depth_fndecl_13676 virtscsi_change_queue_depth fndecl 2 13676 NULL
151344 +enable_so_fixup_pmc551_fndecl_13679 fixup_pmc551 fndecl 0 13679 NULL nohasharray
151345 +enable_so_mpls_rt_alloc_fndecl_13679 mpls_rt_alloc fndecl 1 13679 &enable_so_fixup_pmc551_fndecl_13679
151346 +enable_so_nfc_hci_send_cmd_async_fndecl_13680 nfc_hci_send_cmd_async fndecl 5 13680 NULL
151347 +enable_so_receive_big_fndecl_13686 receive_big fndecl 5 13686 NULL
151348 +enable_so_writing_osst_buffer_13689 writing osst_buffer 0 13689 NULL
151349 +enable_so_lo_hi_readq_fndecl_13693 lo_hi_readq fndecl 0 13693 NULL
151350 +enable_so_w_align_bdisp_fmt_13694 w_align bdisp_fmt 0 13694 NULL
151351 +enable_so_hpfs_free_sectors_fndecl_13696 hpfs_free_sectors fndecl 3 13696 NULL
151352 +enable_so_prev_rs_tgg_il3945_rate_info_13697 prev_rs_tgg il3945_rate_info 0 13697 NULL
151353 +enable_so_skb_size_qlcnic_host_rds_ring_13698 skb_size qlcnic_host_rds_ring 0 13698 NULL
151354 +enable_so_resize_platform_label_table_fndecl_13711 resize_platform_label_table fndecl 2 13711 NULL
151355 +enable_so_bos_desc_fndecl_13715 bos_desc fndecl 0 13715 NULL
151356 +enable_so_valuelen_lo_extended_attribute_13722 valuelen_lo extended_attribute 0 13722 NULL
151357 +enable_so_wsm_buf_reserve_fndecl_13730 wsm_buf_reserve fndecl 2 13730 NULL
151358 +enable_so_channels_max_snd_soc_pcm_stream_13737 channels_max snd_soc_pcm_stream 0 13737 NULL nohasharray
151359 +enable_so_mfd_add_device_fndecl_13737 mfd_add_device fndecl 6-2 13737 &enable_so_channels_max_snd_soc_pcm_stream_13737
151360 +enable_so_shdma_prep_dma_cyclic_fndecl_13739 shdma_prep_dma_cyclic fndecl 4-2-3 13739 NULL
151361 +enable_so_nr_segments_vscsiif_request_13741 nr_segments vscsiif_request 0 13741 NULL nohasharray
151362 +enable_so_pof_write_buffer_fndecl_13741 pof_write_buffer fndecl 0 13741 &enable_so_nr_segments_vscsiif_request_13741
151363 +enable_so_len_tcf_em_nbyte_13742 len tcf_em_nbyte 0 13742 NULL
151364 +enable_so_cipso_v4_genopt_fndecl_13743 cipso_v4_genopt fndecl 0 13743 NULL nohasharray
151365 +enable_so_write_pipe_ezusb_priv_13743 write_pipe ezusb_priv 0 13743 &enable_so_cipso_v4_genopt_fndecl_13743
151366 +enable_so_level_guest_walker32_13749 level guest_walker32 0 13749 NULL
151367 +enable_so_qlcnic_alloc_sds_rings_fndecl_13752 qlcnic_alloc_sds_rings fndecl 2 13752 NULL
151368 +enable_so_compat_sys_recv_fndecl_13753 compat_sys_recv fndecl 3 13753 NULL
151369 +enable_so_length_core_conn_create_data_13754 length core_conn_create_data 0 13754 NULL nohasharray
151370 +enable_so_numrx_velocity_opt_13754 numrx velocity_opt 0 13754 &enable_so_length_core_conn_create_data_13754
151371 +enable_so_i_pino_f2fs_inode_13756 i_pino f2fs_inode 0 13756 NULL
151372 +enable_so_slgt_compat_ioctl_fndecl_13761 slgt_compat_ioctl fndecl 3 13761 NULL nohasharray
151373 +enable_so_xfs_alloc_pagf_init_fndecl_13761 xfs_alloc_pagf_init fndecl 3 13761 &enable_so_slgt_compat_ioctl_fndecl_13761
151374 +enable_so_encrypt_headroom_ieee80211_sub_if_data_13764 encrypt_headroom ieee80211_sub_if_data 0 13764 NULL
151375 +enable_so_ar5523_cmd_read_fndecl_13766 ar5523_cmd_read fndecl 4 13766 NULL
151376 +enable_so_len_nci_set_config_param_13768 len nci_set_config_param 0 13768 NULL
151377 +enable_so_ecryptfs_miscdev_write_fndecl_13772 ecryptfs_miscdev_write fndecl 3 13772 NULL
151378 +enable_so_do_tcp_rcv_fndecl_13775 do_tcp_rcv fndecl 3 13775 NULL
151379 +enable_so_check_extent_to_block_fndecl_13780 check_extent_to_block fndecl 2-3 13780 NULL
151380 +enable_so_ue_size_asd_bios_chim_struct_13782 ue_size asd_bios_chim_struct 0 13782 NULL
151381 +enable_so_usbhs_dma_calc_received_size_fndecl_13783 usbhs_dma_calc_received_size fndecl 0-3 13783 NULL
151382 +enable_so_build_data_key_fndecl_13784 build_data_key fndecl 2 13784 NULL
151383 +enable_so_iwl_trans_read_mem32_fndecl_13786 iwl_trans_read_mem32 fndecl 0 13786 NULL
151384 +enable_so_ept_get_level1_sp_gpa_fndecl_13788 ept_get_level1_sp_gpa fndecl 0 13788 NULL nohasharray
151385 +enable_so_inbufBits_bunzip_data_13788 inbufBits bunzip_data 0 13788 &enable_so_ept_get_level1_sp_gpa_fndecl_13788
151386 +enable_so_smk_write_load_fndecl_13790 smk_write_load fndecl 3 13790 NULL
151387 +enable_so_num_channels_xilly_endpoint_13791 num_channels xilly_endpoint 0 13791 NULL
151388 +enable_so_tipc_conn_sendmsg_fndecl_13792 tipc_conn_sendmsg fndecl 5 13792 NULL
151389 +enable_so_reply_sz__MPT_ADAPTER_13794 reply_sz _MPT_ADAPTER 0 13794 NULL
151390 +enable_so_num_fcoe_msix_i40e_pf_13802 num_fcoe_msix i40e_pf 0 13802 NULL
151391 +enable_so_ath6kl_create_qos_write_fndecl_13804 ath6kl_create_qos_write fndecl 3 13804 NULL
151392 +enable_so_send_mesg_maxlen_netns_ipvs_13807 send_mesg_maxlen netns_ipvs 0 13807 NULL
151393 +enable_so_gx_frame_buffer_size_fndecl_13808 gx_frame_buffer_size fndecl 0 13808 NULL
151394 +enable_so_fifo_size_sram_channel_13811 fifo_size sram_channel 0 13811 NULL
151395 +enable_so_shared_kmem_cache_13812 shared kmem_cache 0 13812 NULL
151396 +enable_so_fifo_depth_fsl_ssi_private_13814 fifo_depth fsl_ssi_private 0 13814 NULL
151397 +enable_so_den_min_snd_ratnum_13815 den_min snd_ratnum 0 13815 NULL
151398 +enable_so_offset_nvkm_mm_node_13817 offset nvkm_mm_node 0 13817 NULL
151399 +enable_so_rt6i_nfheader_len_rt6_info_13820 rt6i_nfheader_len rt6_info 0 13820 NULL
151400 +enable_so_phys_pte_init_fndecl_13824 phys_pte_init fndecl 0-2-3 13824 NULL nohasharray
151401 +enable_so_seq_read_fndecl_13824 seq_read fndecl 3 13824 &enable_so_phys_pte_init_fndecl_13824
151402 +enable_so_brcmf_sdio_firmware_callback_fndecl_13829 brcmf_sdio_firmware_callback fndecl 4 13829 NULL
151403 +enable_so_ib_dma_map_sg_fndecl_13830 ib_dma_map_sg fndecl 0 13830 NULL
151404 +enable_so_logical_offset_btrfs_dio_private_13833 logical_offset btrfs_dio_private 0 13833 NULL
151405 +enable_so_acpi_os_get_root_pointer_fndecl_13835 acpi_os_get_root_pointer fndecl 0 13835 NULL nohasharray
151406 +enable_so_ieee80211_if_read_smps_fndecl_13835 ieee80211_if_read_smps fndecl 3 13835 &enable_so_acpi_os_get_root_pointer_fndecl_13835
151407 +enable_so_cypress_write_fndecl_13836 cypress_write fndecl 4 13836 NULL
151408 +enable_so_ceph_fallocate_fndecl_13837 ceph_fallocate fndecl 4-3 13837 NULL
151409 +enable_so_nr_vecs_biovec_slab_13838 nr_vecs biovec_slab 0 13838 NULL
151410 +enable_so_init_memory_mapping_fndecl_13840 init_memory_mapping fndecl 2-0-1 13840 NULL
151411 +enable_so_port_pio_base_ipath_portdata_13851 port_pio_base ipath_portdata 0 13851 NULL
151412 +enable_so_resize_user_fndecl_13857 resize_user fndecl 3 13857 NULL
151413 +enable_so_sddr09_read_data_fndecl_13860 sddr09_read_data fndecl 3-2 13860 NULL
151414 +enable_so_starting_offset_mpt3_diag_read_buffer_13869 starting_offset mpt3_diag_read_buffer 0 13869 NULL
151415 +enable_so_pack_sg_list_fndecl_13874 pack_sg_list fndecl 5 13874 NULL
151416 +enable_so_front_len_ceph_msg_header_13876 front_len ceph_msg_header 0 13876 NULL
151417 +enable_so_gfs2_add_jextent_fndecl_13879 gfs2_add_jextent fndecl 2-3 13879 NULL
151418 +enable_so_analog_ep_bulk_em28xx_13880 analog_ep_bulk em28xx 0 13880 NULL
151419 +enable_so_layers_idr_13889 layers idr 0 13889 NULL
151420 +enable_so_cblock_per_bio_data_13894 cblock per_bio_data 0 13894 NULL
151421 +enable_so_s_ncg_ufs_sb_private_info_13899 s_ncg ufs_sb_private_info 0 13899 NULL nohasharray
151422 +enable_so_rlen_cm4000_dev_13899 rlen cm4000_dev 0 13899 &enable_so_s_ncg_ufs_sb_private_info_13899
151423 +enable_so_hold_inflate_state_13902 hold inflate_state 0 13902 NULL
151424 +enable_so_ep93xx_spi_chip_setup_fndecl_13909 ep93xx_spi_chip_setup fndecl 0 13909 NULL
151425 +enable_so_size_qlcnic_83xx_dump_template_hdr_13912 size qlcnic_83xx_dump_template_hdr 0 13912 NULL
151426 +enable_so_pio_base_qib_ctxtdata_13913 pio_base qib_ctxtdata 0 13913 NULL
151427 +enable_so_wm_coeff_parse_int_fndecl_13918 wm_coeff_parse_int fndecl 0 13918 NULL
151428 +enable_so_ipr_max_devs_vardecl_ipr_c_13921 ipr_max_devs vardecl_ipr.c 0 13921 NULL nohasharray
151429 +enable_so_trips_thermal_zone_device_13921 trips thermal_zone_device 0 13921 &enable_so_ipr_max_devs_vardecl_ipr_c_13921
151430 +enable_so_vt_block_vxfs_typed_13924 vt_block vxfs_typed 0 13924 NULL
151431 +enable_so_garmin_read_process_fndecl_13926 garmin_read_process fndecl 3 13926 NULL
151432 +enable_so_unix_stream_read_actor_fndecl_13931 unix_stream_read_actor fndecl 2-3 13931 NULL
151433 +enable_so_s_firstdatazone_minix_sb_info_13932 s_firstdatazone minix_sb_info 0 13932 NULL
151434 +enable_so_hcd_buffer_alloc_fndecl_13940 hcd_buffer_alloc fndecl 2 13940 NULL
151435 +enable_so_img_IMEM_size_fw_hdr_13961 img_IMEM_size fw_hdr 0 13961 NULL
151436 +enable_so_start_ubifs_bud_13964 start ubifs_bud 0 13964 NULL
151437 +enable_so_u132_hcd_configure_input_recv_fndecl_13969 u132_hcd_configure_input_recv fndecl 4 13969 NULL
151438 +enable_so_nla_append_fndecl_13971 nla_append fndecl 2 13971 NULL
151439 +enable_so_ib_copy_to_udata_fndecl_13974 ib_copy_to_udata fndecl 3 13974 NULL
151440 +enable_so_yres_panel_info_13976 yres panel_info 0 13976 NULL
151441 +enable_so_e_phnum_elf32_hdr_13980 e_phnum elf32_hdr 0 13980 NULL
151442 +enable_so_isdn_tty_handleDLEdown_fndecl_13981 isdn_tty_handleDLEdown fndecl 0 13981 NULL
151443 +enable_so_SyS_fgetxattr_fndecl_13984 SyS_fgetxattr fndecl 4 13984 NULL
151444 +enable_so_syslog_partial_vardecl_printk_c_13985 syslog_partial vardecl_printk.c 0 13985 NULL
151445 +enable_so_rd_size_uhid_device_13986 rd_size uhid_device 0 13986 NULL
151446 +enable_so_rs_move_siso_to_other_fndecl_13987 rs_move_siso_to_other fndecl 5 13987 NULL
151447 +enable_so_libipw_alloc_txb_fndecl_13992 libipw_alloc_txb fndecl 3-2-1 13992 NULL
151448 +enable_so_size_urb_list_13995 size urb_list 0 13995 NULL
151449 +enable_so_ath10k_mac_hw_rate_to_idx_fndecl_13998 ath10k_mac_hw_rate_to_idx fndecl 0 13998 NULL
151450 +enable_so_pnp_add_io_resource_fndecl_14000 pnp_add_io_resource fndecl 3-2 14000 NULL
151451 +enable_so_nilfs_read_super_root_block_fndecl_14003 nilfs_read_super_root_block fndecl 2 14003 NULL nohasharray
151452 +enable_so_blkno_xfs_da_state_blk_14003 blkno xfs_da_state_blk 0 14003 &enable_so_nilfs_read_super_root_block_fndecl_14003 nohasharray
151453 +enable_so_wanted_disk_byte___prelim_ref_14003 wanted_disk_byte __prelim_ref 0 14003 &enable_so_blkno_xfs_da_state_blk_14003 nohasharray
151454 +enable_so_i_len_xfs_log_iovec_14003 i_len xfs_log_iovec 0 14003 &enable_so_wanted_disk_byte___prelim_ref_14003
151455 +enable_so_buffer_top_vardecl_nm256_c_14008 buffer_top vardecl_nm256.c 0 14008 NULL
151456 +enable_so_n_phy_mvs_chip_info_14009 n_phy mvs_chip_info 0 14009 NULL
151457 +enable_so_ino_logfs_transaction_14011 ino logfs_transaction 0 14011 NULL nohasharray
151458 +enable_so_batadv_socket_add_packet_fndecl_14011 batadv_socket_add_packet fndecl 3 14011 &enable_so_ino_logfs_transaction_14011
151459 +enable_so_e820_update_range_saved_fndecl_14017 e820_update_range_saved fndecl 1-2 14017 NULL
151460 +enable_so_btrfs_find_create_tree_block_fndecl_14018 btrfs_find_create_tree_block fndecl 2 14018 NULL
151461 +enable_so_nct6775_find_fndecl_14019 nct6775_find fndecl 0 14019 NULL
151462 +enable_so_security_enabled_ieee802154_hdr_fc_14024 security_enabled ieee802154_hdr_fc 0 14024 NULL
151463 +enable_so_sensor_framerate_go7007_14025 sensor_framerate go7007 0 14025 NULL
151464 +enable_so_mst_offs_ubifs_info_14045 mst_offs ubifs_info 0 14045 NULL
151465 +enable_so_descriptors_per_page__drm_via_sg_info_14046 descriptors_per_page _drm_via_sg_info 0 14046 NULL
151466 +enable_so_zlib_deflateInit2_fndecl_14048 zlib_deflateInit2 fndecl 5-4 14048 NULL
151467 +enable_so_nr_perf_callchain_entry_14049 nr perf_callchain_entry 0 14049 NULL
151468 +enable_so_xdr_shift_buf_fndecl_14055 xdr_shift_buf fndecl 2 14055 NULL nohasharray
151469 +enable_so_drbd_recv_fndecl_14055 drbd_recv fndecl 3-0 14055 &enable_so_xdr_shift_buf_fndecl_14055 nohasharray
151470 +enable_so_C_SYSC_mbind_fndecl_14055 C_SYSC_mbind fndecl 5 14055 &enable_so_drbd_recv_fndecl_14055
151471 +enable_so_ext3_xattr_set_handle_fndecl_14056 ext3_xattr_set_handle fndecl 6 14056 NULL nohasharray
151472 +enable_so_add_new_gdb_fndecl_14056 add_new_gdb fndecl 3 14056 &enable_so_ext3_xattr_set_handle_fndecl_14056
151473 +enable_so_ocfs2_xattr_ibody_get_fndecl_14057 ocfs2_xattr_ibody_get fndecl 0 14057 NULL nohasharray
151474 +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
151475 +enable_so_read_flush_procfs_fndecl_14057 read_flush_procfs fndecl 3 14057 &enable_so_nl80211_send_connect_result_fndecl_14057
151476 +enable_so_btrfs_fallocate_fndecl_14060 btrfs_fallocate fndecl 3-4 14060 NULL
151477 +enable_so_mgmt_device_connected_fndecl_14065 mgmt_device_connected fndecl 5 14065 NULL nohasharray
151478 +enable_so_entry_number_user_desc_14065 entry_number user_desc 0 14065 &enable_so_mgmt_device_connected_fndecl_14065
151479 +enable_so_cyttsp_spi_write_block_data_fndecl_14068 cyttsp_spi_write_block_data fndecl 4 14068 NULL
151480 +enable_so_msg_len_dvb_diseqc_slave_reply_14073 msg_len dvb_diseqc_slave_reply 0 14073 NULL
151481 +enable_so_end_switchdev_vlan_dump_14086 end switchdev_vlan_dump 0 14086 NULL
151482 +enable_so_sh_msiof_dma_once_fndecl_14090 sh_msiof_dma_once fndecl 4 14090 NULL nohasharray
151483 +enable_so_filemark_cnt_os_aux_s_14090 filemark_cnt os_aux_s 0 14090 &enable_so_sh_msiof_dma_once_fndecl_14090
151484 +enable_so_phantom_major_vardecl_phantom_c_14093 phantom_major vardecl_phantom.c 0 14093 NULL
151485 +enable_so_snd_compr_calc_avail_fndecl_14094 snd_compr_calc_avail fndecl 0 14094 NULL
151486 +enable_so___ext4_handle_dirty_metadata_fndecl_14098 __ext4_handle_dirty_metadata fndecl 0 14098 NULL
151487 +enable_so_last_rate_n_flags_iwl_lq_sta_14099 last_rate_n_flags iwl_lq_sta 0 14099 NULL
151488 +enable_so_btmrvl_hscfgcmd_write_fndecl_14100 btmrvl_hscfgcmd_write fndecl 3 14100 NULL
151489 +enable_so_data_len_vscsibk_pend_14106 data_len vscsibk_pend 0 14106 NULL
151490 +enable_so_wil_write_file_wmi_fndecl_14109 wil_write_file_wmi fndecl 3 14109 NULL
151491 +enable_so_elem_size_xdr_array2_desc_14114 elem_size xdr_array2_desc 0 14114 NULL
151492 +enable_so_hfs_direct_IO_fndecl_14120 hfs_direct_IO fndecl 3 14120 NULL
151493 +enable_so_adaption_gsm_dlci_14123 adaption gsm_dlci 0 14123 NULL
151494 +enable_so_size_mlx4_en_rx_ring_14125 size mlx4_en_rx_ring 0 14125 NULL
151495 +enable_so_efd_count_ext4_free_data_14128 efd_count ext4_free_data 0 14128 NULL
151496 +enable_so_i2400m_net_rx_fndecl_14129 i2400m_net_rx fndecl 5 14129 NULL
151497 +enable_so_size_uhid_input2_req_14140 size uhid_input2_req 0 14140 NULL nohasharray
151498 +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
151499 +enable_so_cros_ec_spi_receive_packet_fndecl_14142 cros_ec_spi_receive_packet fndecl 2 14142 NULL
151500 +enable_so_dqi_entry_size_qtree_mem_dqinfo_14150 dqi_entry_size qtree_mem_dqinfo 0 14150 NULL
151501 +enable_so_short_len_fat_ioctl_filldir_callback_14151 short_len fat_ioctl_filldir_callback 0 14151 NULL
151502 +enable_so_page_size_at24_platform_data_14152 page_size at24_platform_data 0 14152 NULL
151503 +enable_so_svcxdr_tmpalloc_fndecl_14154 svcxdr_tmpalloc fndecl 2 14154 NULL nohasharray
151504 +enable_so_write_kmem_fndecl_14154 write_kmem fndecl 3 14154 &enable_so_svcxdr_tmpalloc_fndecl_14154 nohasharray
151505 +enable_so_num_ratios_coreclk_soc_desc_14154 num_ratios coreclk_soc_desc 0 14154 &enable_so_write_kmem_fndecl_14154
151506 +enable_so_range_min_regmap_range_node_14166 range_min regmap_range_node 0 14166 NULL
151507 +enable_so_ocfs2_read_blocks_sync_fndecl_14169 ocfs2_read_blocks_sync fndecl 2 14169 NULL
151508 +enable_so_cmd_len_scsi_cmnd_14171 cmd_len scsi_cmnd 0 14171 NULL
151509 +enable_so_ath6kl_wmi_sync_point_fndecl_14172 ath6kl_wmi_sync_point fndecl 2 14172 NULL
151510 +enable_so_len_hermes_idstring_14173 len hermes_idstring 0 14173 NULL
151511 +enable_so_brcmf_usb_recv_ctl_fndecl_14174 brcmf_usb_recv_ctl fndecl 3 14174 NULL
151512 +enable_so___conn_send_command_fndecl_14180 __conn_send_command fndecl 4-6 14180 NULL
151513 +enable_so_curr_tx_buf_size_mwifiex_adapter_14186 curr_tx_buf_size mwifiex_adapter 0 14186 NULL
151514 +enable_so_cfpkt_add_trail_fndecl_14191 cfpkt_add_trail fndecl 3 14191 NULL
151515 +enable_so_rxrpc_request_key_fndecl_14192 rxrpc_request_key fndecl 3 14192 NULL
151516 +enable_so_uvc_fraction_to_interval_fndecl_14194 uvc_fraction_to_interval fndecl 0-2-1 14194 NULL
151517 +enable_so_offset_iscsi_datain_14195 offset iscsi_datain 0 14195 NULL
151518 +enable_so_middle_len_ceph_msg_header_14196 middle_len ceph_msg_header 0 14196 NULL
151519 +enable_so_len_hv_multipage_buffer_14208 len hv_multipage_buffer 0 14208 NULL nohasharray
151520 +enable_so_get_rx_fifo_content_fndecl_14208 get_rx_fifo_content fndecl 0 14208 &enable_so_len_hv_multipage_buffer_14208
151521 +enable_so_num_ports_mlx4_func_cap_14214 num_ports mlx4_func_cap 0 14214 NULL
151522 +enable_so_cmd_bounce_size_vmw_sw_context_14217 cmd_bounce_size vmw_sw_context 0 14217 NULL
151523 +enable_so_num_gsm_mux_14221 num gsm_mux 0 14221 NULL
151524 +enable_so_e1000_copybreak_fndecl_14223 e1000_copybreak fndecl 3 14223 NULL
151525 +enable_so_hpfs_remove_dtree_fndecl_14224 hpfs_remove_dtree fndecl 2 14224 NULL
151526 +enable_so_hw_token_fotg210_qtd_14233 hw_token fotg210_qtd 0 14233 NULL
151527 +enable_so_comedi_alloc_devpriv_fndecl_14235 comedi_alloc_devpriv fndecl 2 14235 NULL
151528 +enable_so_usb_submit_urb_fndecl_14237 usb_submit_urb fndecl 0 14237 NULL
151529 +enable_so_create_lease_size_smb_version_values_14240 create_lease_size smb_version_values 0 14240 NULL
151530 +enable_so_ath6kl_wmi_test_cmd_fndecl_14243 ath6kl_wmi_test_cmd fndecl 3 14243 NULL nohasharray
151531 +enable_so_virtqueue_add_inbuf_fndecl_14243 virtqueue_add_inbuf fndecl 3 14243 &enable_so_ath6kl_wmi_test_cmd_fndecl_14243
151532 +enable_so_write_buf_fndecl_14247 write_buf fndecl 3-0 14247 NULL
151533 +enable_so_cy8ctmg110_read_regs_fndecl_14259 cy8ctmg110_read_regs fndecl 3 14259 NULL nohasharray
151534 +enable_so_octeon_allocate_device_mem_fndecl_14259 octeon_allocate_device_mem fndecl 2 14259 &enable_so_cy8ctmg110_read_regs_fndecl_14259 nohasharray
151535 +enable_so___wmi_send_fndecl_14259 __wmi_send fndecl 4 14259 &enable_so_octeon_allocate_device_mem_fndecl_14259
151536 +enable_so_size_drm_scatter_gather_14264 size drm_scatter_gather 0 14264 NULL
151537 +enable_so_copy_from_buf_fndecl_14271 copy_from_buf fndecl 2-4 14271 NULL
151538 +enable_so_afs_cell_create_fndecl_14273 afs_cell_create fndecl 2 14273 NULL
151539 +enable_so_nilfs_sufile_block_get_segment_usage_fndecl_14278 nilfs_sufile_block_get_segment_usage fndecl 2 14278 NULL
151540 +enable_so_transfer_spi_master_14283 transfer spi_master 0 14283 NULL nohasharray
151541 +enable_so_rds_iw_ring_resize_fndecl_14283 rds_iw_ring_resize fndecl 2 14283 &enable_so_transfer_spi_master_14283
151542 +enable_so_pmtu_qib_qp_14287 pmtu qib_qp 0 14287 NULL
151543 +enable_so_req_lim_delta_srp_aer_req_14289 req_lim_delta srp_aer_req 0 14289 NULL
151544 +enable_so_snd_pcm_oss_write2_fndecl_14295 snd_pcm_oss_write2 fndecl 3-0 14295 NULL
151545 +enable_so_yscroll_display_14301 yscroll display 0 14301 NULL
151546 +enable_so_size_ldt_struct_14303 size ldt_struct 0 14303 NULL
151547 +enable_so_dbg_fixed_rate_il_lq_sta_14306 dbg_fixed_rate il_lq_sta 0 14306 NULL
151548 +enable_so_outdiv_fll_div_14312 outdiv fll_div 0 14312 NULL
151549 +enable_so_scif_p2p_setsg_fndecl_14314 scif_p2p_setsg fndecl 2-3 14314 NULL
151550 +enable_so_iwl_dbgfs_csr_write_fndecl_14320 iwl_dbgfs_csr_write fndecl 3 14320 NULL
151551 +enable_so_nilfs_ilookup_fndecl_14324 nilfs_ilookup fndecl 3 14324 NULL
151552 +enable_so_gfn_kvm_mmu_page_14326 gfn kvm_mmu_page 0 14326 NULL
151553 +enable_so_pcbit_stat_fndecl_14327 pcbit_stat fndecl 2 14327 NULL
151554 +enable_so_ath6kl_wmi_ap_profile_commit_fndecl_14329 ath6kl_wmi_ap_profile_commit fndecl 2 14329 NULL
151555 +enable_so_data_offset_md_rdev_14330 data_offset md_rdev 0 14330 NULL
151556 +enable_so_pasid_limit_vardecl_kfd_pasid_c_14334 pasid_limit vardecl_kfd_pasid.c 0 14334 NULL
151557 +enable_so_mask_myri10ge_rx_buf_14339 mask myri10ge_rx_buf 0 14339 NULL
151558 +enable_so_loop_start_patch_info_14350 loop_start patch_info 0 14350 NULL
151559 +enable_so_vnet_hdr_sz_macvtap_queue_14351 vnet_hdr_sz macvtap_queue 0 14351 NULL nohasharray
151560 +enable_so_ath6kl_regread_read_fndecl_14351 ath6kl_regread_read fndecl 3 14351 &enable_so_vnet_hdr_sz_macvtap_queue_14351
151561 +enable_so_do_sys_truncate_fndecl_14355 do_sys_truncate fndecl 2 14355 NULL
151562 +enable_so_current_committed_pstore_14356 current_committed pstore 0 14356 NULL
151563 +enable_so_start_section_nr_memory_block_14358 start_section_nr memory_block 0 14358 NULL
151564 +enable_so_blkno_attrlist_cursor_kern_14361 blkno attrlist_cursor_kern 0 14361 NULL
151565 +enable_so_num_vqs_virtio_blk_14363 num_vqs virtio_blk 0 14363 NULL
151566 +enable_so_size_set_mib_buffer_14366 size set_mib_buffer 0 14366 NULL
151567 +enable_so_do_jffs2_setxattr_fndecl_14373 do_jffs2_setxattr fndecl 5 14373 NULL nohasharray
151568 +enable_so_dm_bufio_get_fndecl_14373 dm_bufio_get fndecl 2 14373 &enable_so_do_jffs2_setxattr_fndecl_14373 nohasharray
151569 +enable_so_max_tokens_iw_ioctl_description_14373 max_tokens iw_ioctl_description 0 14373 &enable_so_dm_bufio_get_fndecl_14373
151570 +enable_so_nvme_trans_mode_page_create_fndecl_14375 nvme_trans_mode_page_create fndecl 7-4 14375 NULL
151571 +enable_so_length_scsiif_request_segment_14376 length scsiif_request_segment 0 14376 NULL
151572 +enable_so_start_extent_map_14377 start extent_map 0 14377 NULL nohasharray
151573 +enable_so_ahd_linux_user_tagdepth_fndecl_14377 ahd_linux_user_tagdepth fndecl 0 14377 &enable_so_start_extent_map_14377
151574 +enable_so_rcname_read_fndecl_14380 rcname_read fndecl 3 14380 NULL
151575 +enable_so_num_phys__sas_node_14384 num_phys _sas_node 0 14384 NULL
151576 +enable_so_word15_lpfc_mbx_read_config_14387 word15 lpfc_mbx_read_config 0 14387 NULL
151577 +enable_so_dma_in_iguanair_14391 dma_in iguanair 0 14391 NULL
151578 +enable_so_sisusbcon_scroll_area_fndecl_14392 sisusbcon_scroll_area fndecl 3-4 14392 NULL
151579 +enable_so_run_delalloc_nocow_fndecl_14395 run_delalloc_nocow fndecl 3-4 14395 NULL
151580 +enable_so_ssize_usbat_info_14405 ssize usbat_info 0 14405 NULL
151581 +enable_so_jffs2_add_physical_node_ref_fndecl_14406 jffs2_add_physical_node_ref fndecl 3-2 14406 NULL
151582 +enable_so_vmcb_iopm_nested_state_14411 vmcb_iopm nested_state 0 14411 NULL
151583 +enable_so_crtc_hblank_start_drm_display_mode_14412 crtc_hblank_start drm_display_mode 0 14412 NULL nohasharray
151584 +enable_so_min_snd_interval_14412 min snd_interval 0 14412 &enable_so_crtc_hblank_start_drm_display_mode_14412 nohasharray
151585 +enable_so_rl_space_gfs2_rgrp_list_14412 rl_space gfs2_rgrp_list 0 14412 &enable_so_min_snd_interval_14412
151586 +enable_so_num_channels_hsi_config_14414 num_channels hsi_config 0 14414 NULL
151587 +enable_so_max_ep_fsl_udc_14417 max_ep fsl_udc 0 14417 NULL
151588 +enable_so_bigdirlen_adfs_bigdirentry_14420 bigdirlen adfs_bigdirentry 0 14420 NULL
151589 +enable_so_key_flags_read_fndecl_14424 key_flags_read fndecl 3 14424 NULL
151590 +enable_so_snd_es1938_capture_copy_fndecl_14425 snd_es1938_capture_copy fndecl 5 14425 NULL
151591 +enable_so_xlog_recover_process_one_iunlink_fndecl_14426 xlog_recover_process_one_iunlink fndecl 3-2 14426 NULL
151592 +enable_so_offset_brcmf_vndr_dcmd_hdr_14440 offset brcmf_vndr_dcmd_hdr 0 14440 NULL
151593 +enable_so_fimc_adjust_mplane_format_fndecl_14442 fimc_adjust_mplane_format fndecl 2-3 14442 NULL
151594 +enable_so_flush_fndecl_14454 flush fndecl 2 14454 NULL
151595 +enable_so_size_dictionary_14455 size dictionary 0 14455 NULL
151596 +enable_so_residual_data_length_pmcraid_ioasa_14459 residual_data_length pmcraid_ioasa 0 14459 NULL
151597 +enable_so__regmap_multi_reg_write_fndecl_14460 _regmap_multi_reg_write fndecl 3 14460 NULL nohasharray
151598 +enable_so_ravb_hwtstamp_set_fndecl_14460 ravb_hwtstamp_set fndecl 0 14460 &enable_so__regmap_multi_reg_write_fndecl_14460
151599 +enable_so_skb_to_sgvec_nomark_fndecl_14461 skb_to_sgvec_nomark fndecl 4-3 14461 NULL
151600 +enable_so_data_inp_ep_vub300_mmc_host_14468 data_inp_ep vub300_mmc_host 0 14468 NULL nohasharray
151601 +enable_so_cfs_hash_create_fndecl_14468 cfs_hash_create fndecl 4-2-5 14468 &enable_so_data_inp_ep_vub300_mmc_host_14468
151602 +enable_so_sel_end_vardecl_selection_c_14469 sel_end vardecl_selection.c 0 14469 NULL
151603 +enable_so_ntfs_sync_mft_mirror_fndecl_14470 ntfs_sync_mft_mirror fndecl 2 14470 NULL
151604 +enable_so_lpfc_sli_probe_sriov_nr_virtfn_fndecl_14471 lpfc_sli_probe_sriov_nr_virtfn fndecl 2 14471 NULL
151605 +enable_so_num_chn_netvsc_device_14475 num_chn netvsc_device 0 14475 NULL nohasharray
151606 +enable_so_rdmarc_entry_sz_mlx4_dev_cap_14475 rdmarc_entry_sz mlx4_dev_cap 0 14475 &enable_so_num_chn_netvsc_device_14475
151607 +enable_so_groups_netlink_table_14476 groups netlink_table 0 14476 NULL
151608 +enable_so_t1_change_mtu_fndecl_14478 t1_change_mtu fndecl 2 14478 NULL
151609 +enable_so_udp_setsockopt_fndecl_14482 udp_setsockopt fndecl 5 14482 NULL
151610 +enable_so_rx_unit_if_sdio_card_14483 rx_unit if_sdio_card 0 14483 NULL
151611 +enable_so_ntfs_perform_write_fndecl_14496 ntfs_perform_write fndecl 3-0 14496 NULL
151612 +enable_so_btrfs_lookup_bio_sums_dio_fndecl_14498 btrfs_lookup_bio_sums_dio fndecl 4 14498 NULL
151613 +enable_so_gsm_control_send_fndecl_14499 gsm_control_send fndecl 4 14499 NULL
151614 +enable_so_free_area_init_node_fndecl_14500 free_area_init_node fndecl 3 14500 NULL
151615 +enable_so_selinux_inode_post_setxattr_fndecl_14502 selinux_inode_post_setxattr fndecl 4 14502 NULL
151616 +enable_so_num_vq_mic_device_desc_14503 num_vq mic_device_desc 0 14503 NULL
151617 +enable_so_bnad_q_num_adjust_fndecl_14512 bnad_q_num_adjust fndecl 2 14512 NULL
151618 +enable_so_end_code_mm_struct_14519 end_code mm_struct 0 14519 NULL
151619 +enable_so_memcg_update_all_list_lrus_fndecl_14532 memcg_update_all_list_lrus fndecl 1 14532 NULL
151620 +enable_so_viafb_second_offset_vardecl_viafbdev_c_14533 viafb_second_offset vardecl_viafbdev.c 0 14533 NULL
151621 +enable_so_size_ichxrom_window_14540 size ichxrom_window 0 14540 NULL
151622 +enable_so_len_extent_info_14542 len extent_info 0 14542 NULL
151623 +enable_so_ieee80211_get_hdrlen_from_skb_fndecl_14543 ieee80211_get_hdrlen_from_skb fndecl 0 14543 NULL
151624 +enable_so_ctrl_set_croph_fndecl_14545 ctrl_set_croph fndecl 3 14545 NULL nohasharray
151625 +enable_so_density_scsi_tape_14545 density scsi_tape 0 14545 &enable_so_ctrl_set_croph_fndecl_14545 nohasharray
151626 +enable_so_word17_lpfc_mbx_read_config_14545 word17 lpfc_mbx_read_config 0 14545 &enable_so_density_scsi_tape_14545
151627 +enable_so_snd_ftu_create_effect_switch_fndecl_14546 snd_ftu_create_effect_switch fndecl 3-2 14546 NULL
151628 +enable_so_lsave_cnt_ubifs_info_14547 lsave_cnt ubifs_info 0 14547 NULL
151629 +enable_so_len_btrfsic_block_data_ctx_14548 len btrfsic_block_data_ctx 0 14548 NULL nohasharray
151630 +enable_so_dump_fh_il_ops_14548 dump_fh il_ops 0 14548 &enable_so_len_btrfsic_block_data_ctx_14548
151631 +enable_so___alloc_memory_core_early_fndecl_14550 __alloc_memory_core_early fndecl 3-2-4-5 14550 NULL nohasharray
151632 +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
151633 +enable_so_rn_snamelen_nfsd4_rename_14552 rn_snamelen nfsd4_rename 0 14552 NULL
151634 +enable_so_pri_wm_latency_write_fndecl_14556 pri_wm_latency_write fndecl 3 14556 NULL
151635 +enable_so_keyctl_update_key_fndecl_14558 keyctl_update_key fndecl 3 14558 NULL
151636 +enable_so_set_ep_max_packet_size_fndecl_14569 set_ep_max_packet_size fndecl 3 14569 NULL
151637 +enable_so_data_sector_size_mmc_ext_csd_14571 data_sector_size mmc_ext_csd 0 14571 NULL
151638 +enable_so_buffer_size_ncp_server_14574 buffer_size ncp_server 0 14574 NULL
151639 +enable_so_xfs_bmbt_set_blockcount_fndecl_14577 xfs_bmbt_set_blockcount fndecl 2 14577 NULL
151640 +enable_so_acpi_io_base_intel_pmc_ipc_dev_14580 acpi_io_base intel_pmc_ipc_dev 0 14580 NULL
151641 +enable_so_btrfs_wait_ordered_range_fndecl_14581 btrfs_wait_ordered_range fndecl 2-3 14581 NULL
151642 +enable_so_cur_pos_tegra_slink_data_14583 cur_pos tegra_slink_data 0 14583 NULL
151643 +enable_so_ext2_xattr_trusted_set_fndecl_14586 ext2_xattr_trusted_set fndecl 4 14586 NULL nohasharray
151644 +enable_so_be_length_pnfs_block_extent_14586 be_length pnfs_block_extent 0 14586 &enable_so_ext2_xattr_trusted_set_fndecl_14586
151645 +enable_so_rx_rx_wa_density_dropped_frame_read_fndecl_14588 rx_rx_wa_density_dropped_frame_read fndecl 3 14588 NULL
151646 +enable_so_channel_spacing_adf4350_platform_data_14594 channel_spacing adf4350_platform_data 0 14594 NULL
151647 +enable_so_link_pipe_fndecl_14595 link_pipe fndecl 3 14595 NULL
151648 +enable_so_static_start_pccard_mem_map_14601 static_start pccard_mem_map 0 14601 NULL
151649 +enable_so_proc_coredump_filter_write_fndecl_14602 proc_coredump_filter_write fndecl 3 14602 NULL
151650 +enable_so_nes_netdev_change_mtu_fndecl_14604 nes_netdev_change_mtu fndecl 2 14604 NULL
151651 +enable_so___get_user_pages_fndecl_14607 __get_user_pages fndecl 0-3 14607 NULL nohasharray
151652 +enable_so_befs_utf2nls_fndecl_14607 befs_utf2nls fndecl 3 14607 &enable_so___get_user_pages_fndecl_14607
151653 +enable_so_skb_split_fndecl_14609 skb_split fndecl 3 14609 NULL nohasharray
151654 +enable_so_mqd_size_aligned_kfd_device_info_14609 mqd_size_aligned kfd_device_info 0 14609 &enable_so_skb_split_fndecl_14609
151655 +enable_so_alb_send_lp_vid_fndecl_14613 alb_send_lp_vid fndecl 4 14613 NULL
151656 +enable_so_len_c2_rxp_hdr_14614 len c2_rxp_hdr 0 14614 NULL
151657 +enable_so_recv_bulk_pipe_us_data_14615 recv_bulk_pipe us_data 0 14615 NULL nohasharray
151658 +enable_so_max_sge_isert_conn_14615 max_sge isert_conn 0 14615 &enable_so_recv_bulk_pipe_us_data_14615
151659 +enable_so_ddp_ppod_write_idata_fndecl_14617 ddp_ppod_write_idata fndecl 5 14617 NULL
151660 +enable_so_node_scif_dev_14623 node scif_dev 0 14623 NULL
151661 +enable_so_length_comedi_lrange_14641 length comedi_lrange 0 14641 NULL
151662 +enable_so_SSIDsize_bss_info_14644 SSIDsize bss_info 0 14644 NULL
151663 +enable_so_dln2_gpio_get_pin_count_fndecl_14646 dln2_gpio_get_pin_count fndecl 0 14646 NULL
151664 +enable_so_endpoint_usbdevfs_urb_14649 endpoint usbdevfs_urb 0 14649 NULL
151665 +enable_so_write_dst_fndecl_14653 write_dst fndecl 3 14653 NULL
151666 +enable_so_wNdpOutAlignment_usb_cdc_ncm_ntb_parameters_14656 wNdpOutAlignment usb_cdc_ncm_ntb_parameters 0 14656 NULL
151667 +enable_so_ep_usbip_header_basic_14659 ep usbip_header_basic 0 14659 NULL
151668 +enable_so_interval_solo_enc_dev_14661 interval solo_enc_dev 0 14661 NULL
151669 +enable_so_ext2_try_to_allocate_fndecl_14672 ext2_try_to_allocate fndecl 0-4 14672 NULL
151670 +enable_so_sg_tablesize_usb_bus_14673 sg_tablesize usb_bus 0 14673 NULL
151671 +enable_so_aircable_prepare_write_buffer_fndecl_14678 aircable_prepare_write_buffer fndecl 3 14678 NULL
151672 +enable_so_file_size_squashfs_reg_inode_14679 file_size squashfs_reg_inode 0 14679 NULL
151673 +enable_so_x86_virt_bits_cpuinfo_x86_14680 x86_virt_bits cpuinfo_x86 0 14680 NULL
151674 +enable_so_mtu_vnic_devcmd_notify_14682 mtu vnic_devcmd_notify 0 14682 NULL
151675 +enable_so_lpfc_idiag_cmd_get_fndecl_14683 lpfc_idiag_cmd_get fndecl 2 14683 NULL
151676 +enable_so_rx_queue_entry_next_fndecl_14688 rx_queue_entry_next fndecl 0 14688 NULL
151677 +enable_so_ibmasm_new_command_fndecl_14689 ibmasm_new_command fndecl 2 14689 NULL
151678 +enable_so_max_srq_sge_ib_device_attr_14690 max_srq_sge ib_device_attr 0 14690 NULL
151679 +enable_so_rx_filter_mc_filter_read_fndecl_14691 rx_filter_mc_filter_read fndecl 3 14691 NULL
151680 +enable_so_smt_fill_path_fndecl_14692 smt_fill_path fndecl 0 14692 NULL
151681 +enable_so_ttm_tt_init_fndecl_14694 ttm_tt_init fndecl 3 14694 NULL
151682 +enable_so_num_sizes_vmw_surface_14695 num_sizes vmw_surface 0 14695 NULL
151683 +enable_so_sq_depth_p9_rdma_opts_14698 sq_depth p9_rdma_opts 0 14698 NULL
151684 +enable_so___alloc_bootmem_low_node_fndecl_14701 __alloc_bootmem_low_node fndecl 3-2-4 14701 NULL nohasharray
151685 +enable_so_sel_write_context_fndecl_14701 sel_write_context fndecl 3 14701 &enable_so___alloc_bootmem_low_node_fndecl_14701
151686 +enable_so_set_extent_new_fndecl_14709 set_extent_new fndecl 3-2 14709 NULL
151687 +enable_so_AdapterFibsSize_aac_init_14712 AdapterFibsSize aac_init 0 14712 NULL
151688 +enable_so_ftop_swregs_state_14719 ftop swregs_state 0 14719 NULL
151689 +enable_so_cxgbi_device_portmap_create_fndecl_14720 cxgbi_device_portmap_create fndecl 3 14720 NULL
151690 +enable_so_mmc_spi_data_do_fndecl_14728 mmc_spi_data_do fndecl 4 14728 NULL
151691 +enable_so_get_enc_dpb_count_s5p_mfc_hw_ops_14729 get_enc_dpb_count s5p_mfc_hw_ops 0 14729 NULL
151692 +enable_so_or51132_writebuf_fndecl_14730 or51132_writebuf fndecl 3 14730 NULL
151693 +enable_so_hdrlen_ppp_file_14734 hdrlen ppp_file 0 14734 NULL nohasharray
151694 +enable_so_ath9k_htc_rx_msg_fndecl_14734 ath9k_htc_rx_msg fndecl 3 14734 &enable_so_hdrlen_ppp_file_14734
151695 +enable_so_ext2_find_near_fndecl_14741 ext2_find_near fndecl 0 14741 NULL nohasharray
151696 +enable_so_channels_usb_mixer_elem_info_14741 channels usb_mixer_elem_info 0 14741 &enable_so_ext2_find_near_fndecl_14741
151697 +enable_so_mcs_unwrap_fir_fndecl_14742 mcs_unwrap_fir fndecl 3 14742 NULL
151698 +enable_so_cifs_read_from_socket_fndecl_14743 cifs_read_from_socket fndecl 0-3 14743 NULL
151699 +enable_so_mlx4_alloc_icm_coherent_fndecl_14745 mlx4_alloc_icm_coherent fndecl 3 14745 NULL
151700 +enable_so_short_retry_limit_ipw_priv_14755 short_retry_limit ipw_priv 0 14755 NULL
151701 +enable_so_ivtvfb_prep_frame_fndecl_14770 ivtvfb_prep_frame fndecl 5 14770 NULL
151702 +enable_so_size_snd_seq_pool_14782 size snd_seq_pool 0 14782 NULL
151703 +enable_so_dev_cmd_headroom_iwl_trans_14787 dev_cmd_headroom iwl_trans 0 14787 NULL nohasharray
151704 +enable_so_block_start_deflate_state_14787 block_start deflate_state 0 14787 &enable_so_dev_cmd_headroom_iwl_trans_14787
151705 +enable_so_td_fill_fndecl_14788 td_fill fndecl 3 14788 NULL
151706 +enable_so_brcmf_sdio_verifymemory_fndecl_14795 brcmf_sdio_verifymemory fndecl 4-2 14795 NULL nohasharray
151707 +enable_so_realloc_buffer_fndecl_14795 realloc_buffer fndecl 2 14795 &enable_so_brcmf_sdio_verifymemory_fndecl_14795
151708 +enable_so_mthca_map_user_db_fndecl_14796 mthca_map_user_db fndecl 5 14796 NULL
151709 +enable_so_event_rx_pool_read_fndecl_14803 event_rx_pool_read fndecl 3 14803 NULL
151710 +enable_so_sg_read_fndecl_14804 sg_read fndecl 3 14804 NULL
151711 +enable_so_sb_max_fwd_alloc_hpfs_sb_info_14807 sb_max_fwd_alloc hpfs_sb_info 0 14807 NULL
151712 +enable_so_nr_sectors_fat_floppy_defaults_14809 nr_sectors fat_floppy_defaults 0 14809 NULL
151713 +enable_so_read_fn_xusb_udc_14819 read_fn xusb_udc 0 14819 NULL
151714 +enable_so_fout_arizona_fll_14821 fout arizona_fll 0 14821 NULL
151715 +enable_so_wDescriptorLength_hid_descriptor_14825 wDescriptorLength hid_descriptor 0 14825 NULL
151716 +enable_so_tg3_change_mtu_fndecl_14826 tg3_change_mtu fndecl 2 14826 NULL
151717 +enable_so_parport_read_fndecl_14828 parport_read fndecl 0 14828 NULL
151718 +enable_so_residual_length_response_14830 residual_length response 0 14830 NULL
151719 +enable_so_sis5595_base_vardecl_i2c_sis5595_c_14832 sis5595_base vardecl_i2c-sis5595.c 0 14832 NULL
151720 +enable_so_shift_arg_pages_fndecl_14835 shift_arg_pages fndecl 2 14835 NULL nohasharray
151721 +enable_so_pwr_missing_bcns_read_fndecl_14835 pwr_missing_bcns_read fndecl 3 14835 &enable_so_shift_arg_pages_fndecl_14835
151722 +enable_so_map_len_ssfdcr_record_14843 map_len ssfdcr_record 0 14843 NULL
151723 +enable_so_h_s5p_jpeg_q_data_14846 h s5p_jpeg_q_data 0 14846 NULL
151724 +enable_so_vram_contig_size_vml_info_14851 vram_contig_size vml_info 0 14851 NULL
151725 +enable_so_sample_rate_max_lola_14860 sample_rate_max lola 0 14860 NULL
151726 +enable_so_channels_cea_sad_14862 channels cea_sad 0 14862 NULL
151727 +enable_so_iwl_pcie_alloc_fw_monitor_fndecl_14872 iwl_pcie_alloc_fw_monitor fndecl 2 14872 NULL
151728 +enable_so_threads_mask_netns_ipvs_14873 threads_mask netns_ipvs 0 14873 NULL
151729 +enable_so_inocache_hashsize_jffs2_sb_info_14875 inocache_hashsize jffs2_sb_info 0 14875 NULL
151730 +enable_so_submit_queues_vardecl_null_blk_c_14881 submit_queues vardecl_null_blk.c 0 14881 NULL
151731 +enable_so_pg_first_page_collect_14888 pg_first page_collect 0 14888 NULL
151732 +enable_so_invalidate_inode_pages2_range_fndecl_14896 invalidate_inode_pages2_range fndecl 0-3 14896 NULL
151733 +enable_so_ebcnt_vardecl_pagetest_c_14897 ebcnt vardecl_pagetest.c 0 14897 NULL
151734 +enable_so_crtc_vsync_end_drm_display_mode_14898 crtc_vsync_end drm_display_mode 0 14898 NULL
151735 +enable_so_extent_clear_unlock_delalloc_fndecl_14899 extent_clear_unlock_delalloc fndecl 2-3 14899 NULL nohasharray
151736 +enable_so_nkeys_tc_pedit_sel_14899 nkeys tc_pedit_sel 0 14899 &enable_so_extent_clear_unlock_delalloc_fndecl_14899
151737 +enable_so_len_move_extent_14902 len move_extent 0 14902 NULL
151738 +enable_so_ntty_write_fndecl_14903 ntty_write fndecl 3 14903 NULL
151739 +enable_so_vringh_init_user_fndecl_14905 vringh_init_user fndecl 3 14905 NULL
151740 +enable_so_max_height_vsp1_rwpf_14907 max_height vsp1_rwpf 0 14907 NULL nohasharray
151741 +enable_so_firmware_store_fndecl_14907 firmware_store fndecl 4 14907 &enable_so_max_height_vsp1_rwpf_14907
151742 +enable_so_entry_size_neigh_table_14911 entry_size neigh_table 0 14911 NULL
151743 +enable_so_in_pipe_usbtest_dev_14914 in_pipe usbtest_dev 0 14914 NULL
151744 +enable_so_add_device_fndecl_14915 add_device fndecl 4 14915 NULL
151745 +enable_so_num_mic_vqconfig_14919 num mic_vqconfig 0 14919 NULL
151746 +enable_so_tx_fifo_size_sh_msiof_spi_priv_14926 tx_fifo_size sh_msiof_spi_priv 0 14926 NULL nohasharray
151747 +enable_so_tower_read_fndecl_14926 tower_read fndecl 3 14926 &enable_so_tx_fifo_size_sh_msiof_spi_priv_14926 nohasharray
151748 +enable_so_enc_pools_add_pages_fndecl_14926 enc_pools_add_pages fndecl 1 14926 &enable_so_tower_read_fndecl_14926
151749 +enable_so_e1000_frag_len_fndecl_14930 e1000_frag_len fndecl 0 14930 NULL
151750 +enable_so_at25_bin_read_fndecl_14936 at25_bin_read fndecl 5-6 14936 NULL
151751 +enable_so_get_allocated_memblock_reserved_regions_info_fndecl_14938 get_allocated_memblock_reserved_regions_info fndecl 0 14938 NULL nohasharray
151752 +enable_so_pagemap_read_fndecl_14938 pagemap_read fndecl 3 14938 &enable_so_get_allocated_memblock_reserved_regions_info_fndecl_14938
151753 +enable_so_decrypted_datalen_encrypted_key_payload_14939 decrypted_datalen encrypted_key_payload 0 14939 NULL
151754 +enable_so_len_hif_scatter_item_14940 len hif_scatter_item 0 14940 NULL
151755 +enable_so_ib_alloc_device_fndecl_14944 ib_alloc_device fndecl 1 14944 NULL
151756 +enable_so_tailout_ignore_xpnet_message_14949 tailout_ignore xpnet_message 0 14949 NULL
151757 +enable_so_ulong_write_file_fndecl_14950 ulong_write_file fndecl 3 14950 NULL
151758 +enable_so_dvb_ca_en50221_io_ioctl_fndecl_14953 dvb_ca_en50221_io_ioctl fndecl 2 14953 NULL
151759 +enable_so_osst_max_sg_segs_vardecl_osst_c_14954 osst_max_sg_segs vardecl_osst.c 0 14954 NULL
151760 +enable_so_bop_lookup_nilfs_bmap_operations_14977 bop_lookup nilfs_bmap_operations 0 14977 NULL
151761 +enable_so_l2cap_build_conf_req_fndecl_14978 l2cap_build_conf_req fndecl 0 14978 NULL
151762 +enable_so_iwl_dbgfs_rf_reset_read_fndecl_14979 iwl_dbgfs_rf_reset_read fndecl 3 14979 NULL
151763 +enable_so_fuse_read_update_size_fndecl_14982 fuse_read_update_size fndecl 2 14982 NULL
151764 +enable_so_icv_len_ieee80211_key_conf_14983 icv_len ieee80211_key_conf 0 14983 NULL
151765 +enable_so_alloc_ep_req_fndecl_14986 alloc_ep_req fndecl 3-2 14986 NULL
151766 +enable_so_uhid_char_write_fndecl_14997 uhid_char_write fndecl 3 14997 NULL
151767 +enable_so_read_vmcore_fndecl_14998 read_vmcore fndecl 3 14998 NULL
151768 +enable_so_vfio_pci_set_msi_trigger_fndecl_15000 vfio_pci_set_msi_trigger fndecl 4-3 15000 NULL
151769 +enable_so_drbd_bm_words_fndecl_15003 drbd_bm_words fndecl 0 15003 NULL nohasharray
151770 +enable_so_length_sge_ieee1212_15003 length sge_ieee1212 0 15003 &enable_so_drbd_bm_words_fndecl_15003
151771 +enable_so_rate_mt7601u_rxwi_15004 rate mt7601u_rxwi 0 15004 NULL
151772 +enable_so_alloc_gtt_mem_fndecl_15005 alloc_gtt_mem fndecl 2 15005 NULL
151773 +enable_so___vhost_add_used_n_fndecl_15017 __vhost_add_used_n fndecl 3 15017 NULL
151774 +enable_so_all_tables_size_vardecl_osl_c_15020 all_tables_size vardecl_osl.c 0 15020 NULL nohasharray
151775 +enable_so_buffers_ivtv_stream_15020 buffers ivtv_stream 0 15020 &enable_so_all_tables_size_vardecl_osl_c_15020
151776 +enable_so_macvtap_do_read_fndecl_15021 macvtap_do_read fndecl 0 15021 NULL
151777 +enable_so_SyS_rt_sigpending_fndecl_15033 SyS_rt_sigpending fndecl 2 15033 NULL
151778 +enable_so_saddr_fsl_edma_hw_tcd_15034 saddr fsl_edma_hw_tcd 0 15034 NULL
151779 +enable_so_num_rar_entries_ixgbe_mac_info_15039 num_rar_entries ixgbe_mac_info 0 15039 NULL
151780 +enable_so_rts51x_read_mem_fndecl_15042 rts51x_read_mem fndecl 4 15042 NULL nohasharray
151781 +enable_so_mpeglines_vardecl_cx23885_417_c_15042 mpeglines vardecl_cx23885-417.c 0 15042 &enable_so_rts51x_read_mem_fndecl_15042 nohasharray
151782 +enable_so_partitionStartingLocation_partitionDesc_15042 partitionStartingLocation partitionDesc 0 15042 &enable_so_mpeglines_vardecl_cx23885_417_c_15042
151783 +enable_so_fou_recv_pull_fndecl_15045 fou_recv_pull fndecl 2 15045 NULL
151784 +enable_so_max_io_len_dm_target_15053 max_io_len dm_target 0 15053 NULL
151785 +enable_so_handle_event_fsnotify_ops_15054 handle_event fsnotify_ops 0 15054 NULL nohasharray
151786 +enable_so_buf_len_htc_packet_15054 buf_len htc_packet 0 15054 &enable_so_handle_event_fsnotify_ops_15054
151787 +enable_so_sc_netid_len_nfs4_setclientid_15059 sc_netid_len nfs4_setclientid 0 15059 NULL
151788 +enable_so_height_cx2341x_handler_15060 height cx2341x_handler 0 15060 NULL
151789 +enable_so_dump_eeprom_eeprom_ops_15062 dump_eeprom eeprom_ops 0 15062 NULL
151790 +enable_so_oblocks_per_dblock_fndecl_15063 oblocks_per_dblock fndecl 0 15063 NULL
151791 +enable_so_num_widgets_snd_soc_dapm_widget_list_15064 num_widgets snd_soc_dapm_widget_list 0 15064 NULL
151792 +enable_so_vid_hdr_alsize_ubi_device_15065 vid_hdr_alsize ubi_device 0 15065 NULL
151793 +enable_so_ctrlbuf_dma_usbhid_device_15067 ctrlbuf_dma usbhid_device 0 15067 NULL nohasharray
151794 +enable_so_lpt_offs_bits_ubifs_info_15067 lpt_offs_bits ubifs_info 0 15067 &enable_so_ctrlbuf_dma_usbhid_device_15067
151795 +enable_so_write_len_ddb_flashio_15069 write_len ddb_flashio 0 15069 NULL
151796 +enable_so_saturation_sd_gl860_15076 saturation sd_gl860 0 15076 NULL
151797 +enable_so_xfs_rtcheck_range_fndecl_15077 xfs_rtcheck_range fndecl 3 15077 NULL nohasharray
151798 +enable_so_starting_offset_mpt2_diag_read_buffer_15077 starting_offset mpt2_diag_read_buffer 0 15077 &enable_so_xfs_rtcheck_range_fndecl_15077
151799 +enable_so_bm_words_bm_xfer_ctx_15081 bm_words bm_xfer_ctx 0 15081 NULL
151800 +enable_so_start_send_fndecl_15083 start_send fndecl 3 15083 NULL
151801 +enable_so_offs_ubifs_ref_node_15088 offs ubifs_ref_node 0 15088 NULL
151802 +enable_so_cirrusfb_get_memsize_fndecl_15094 cirrusfb_get_memsize fndecl 0 15094 NULL
151803 +enable_so_drm_mm_insert_node_in_range_generic_fndecl_15103 drm_mm_insert_node_in_range_generic fndecl 3 15103 NULL
151804 +enable_so_usbat_read_blocks_fndecl_15109 usbat_read_blocks fndecl 3-4 15109 NULL
151805 +enable_so_split_nodes_size_interleave_fndecl_15116 split_nodes_size_interleave fndecl 3-4-5 15116 NULL
151806 +enable_so_ubifs_tnc_replace_fndecl_15122 ubifs_tnc_replace fndecl 7-6 15122 NULL
151807 +enable_so_read_sb_page_fndecl_15124 read_sb_page fndecl 5-4-2 15124 NULL
151808 +enable_so_macvlan_change_mtu_fndecl_15125 macvlan_change_mtu fndecl 2 15125 NULL nohasharray
151809 +enable_so_ebcnt_vardecl_stresstest_c_15125 ebcnt vardecl_stresstest.c 0 15125 &enable_so_macvlan_change_mtu_fndecl_15125
151810 +enable_so_first_offset_afs_call_15128 first_offset afs_call 0 15128 NULL
151811 +enable_so_bytes_rds_iovec_15133 bytes rds_iovec 0 15133 NULL
151812 +enable_so_gfs2_xattr_acl_get_fndecl_15141 gfs2_xattr_acl_get fndecl 0 15141 NULL nohasharray
151813 +enable_so_ath6kl_roam_table_read_fndecl_15141 ath6kl_roam_table_read fndecl 3 15141 &enable_so_gfs2_xattr_acl_get_fndecl_15141
151814 +enable_so_copy_oldmem_page_fndecl_15143 copy_oldmem_page fndecl 1-3 15143 NULL
151815 +enable_so_mid_get_vbt_data_r1_fndecl_15145 mid_get_vbt_data_r1 fndecl 2 15145 NULL
151816 +enable_so_elem_size_snd_array_15155 elem_size snd_array 0 15155 NULL nohasharray
151817 +enable_so_chaoskey_read_fndecl_15155 chaoskey_read fndecl 3 15155 &enable_so_elem_size_snd_array_15155
151818 +enable_so_info0_rx_msdu_start_15164 info0 rx_msdu_start 0 15164 NULL
151819 +enable_so_i_disk_sec_hpfs_inode_info_15165 i_disk_sec hpfs_inode_info 0 15165 NULL
151820 +enable_so_ovl_dir_llseek_fndecl_15169 ovl_dir_llseek fndecl 2 15169 NULL
151821 +enable_so_frontswap_curr_pages_fndecl_15172 frontswap_curr_pages fndecl 0 15172 NULL nohasharray
151822 +enable_so_xfs_idata_realloc_fndecl_15172 xfs_idata_realloc fndecl 2 15172 &enable_so_frontswap_curr_pages_fndecl_15172
151823 +enable_so_si_namelen_nfsd4_secinfo_15174 si_namelen nfsd4_secinfo 0 15174 NULL
151824 +enable_so_nvkm_ltc_tags_alloc_fndecl_15177 nvkm_ltc_tags_alloc fndecl 2 15177 NULL
151825 +enable_so_rssi_wl3501_card_15182 rssi wl3501_card 0 15182 NULL
151826 +enable_so_perform_sglist_fndecl_15184 perform_sglist fndecl 3-6 15184 NULL
151827 +enable_so_nr_pages_videobuf_dmabuf_15190 nr_pages videobuf_dmabuf 0 15190 NULL nohasharray
151828 +enable_so_walk_hugetlb_range_fndecl_15190 walk_hugetlb_range fndecl 0 15190 &enable_so_nr_pages_videobuf_dmabuf_15190
151829 +enable_so_sg_len_mmc_test_area_15192 sg_len mmc_test_area 0 15192 NULL
151830 +enable_so_ucStateEntrySize__ATOM_PPLIB_POWERPLAYTABLE_15196 ucStateEntrySize _ATOM_PPLIB_POWERPLAYTABLE 0 15196 NULL
151831 +enable_so_p9_client_write_fndecl_15200 p9_client_write fndecl 0 15200 NULL
151832 +enable_so_mwifiex_regrdwr_write_fndecl_15202 mwifiex_regrdwr_write fndecl 3 15202 NULL
151833 +enable_so_size_nforce2_smbus_15203 size nforce2_smbus 0 15203 NULL
151834 +enable_so_top_qxl_urect_15205 top qxl_urect 0 15205 NULL
151835 +enable_so_simple_setattr_fndecl_15209 simple_setattr fndecl 0 15209 NULL nohasharray
151836 +enable_so_nlm_end_grace_read_fndecl_15209 nlm_end_grace_read fndecl 3 15209 &enable_so_simple_setattr_fndecl_15209
151837 +enable_so_gso_max_size_net_device_15213 gso_max_size net_device 0 15213 NULL
151838 +enable_so_sge_control_sge_params_15216 sge_control sge_params 0 15216 NULL
151839 +enable_so_vals_size_ceph_inode_xattrs_info_15217 vals_size ceph_inode_xattrs_info 0 15217 NULL
151840 +enable_so_len_policydb_15230 len policydb 0 15230 NULL
151841 +enable_so_sisusb_bulkout_msg_fndecl_15233 sisusb_bulkout_msg fndecl 5-3 15233 NULL nohasharray
151842 +enable_so_hfsplus_ext_lastblock_fndecl_15233 hfsplus_ext_lastblock fndecl 0 15233 &enable_so_sisusb_bulkout_msg_fndecl_15233
151843 +enable_so_genwqe_ffdc_buff_size_fndecl_15236 genwqe_ffdc_buff_size fndecl 0 15236 NULL
151844 +enable_so_surface_width_drm_fb_helper_surface_size_15237 surface_width drm_fb_helper_surface_size 0 15237 NULL
151845 +enable_so_len_sock_fprog_15239 len sock_fprog 0 15239 NULL
151846 +enable_so_qcom_scm_call_fndecl_15241 qcom_scm_call fndecl 4-6 15241 NULL
151847 +enable_so_do_setxattr_fndecl_15243 do_setxattr fndecl 5 15243 NULL
151848 +enable_so_result_wa_seg_15248 result wa_seg 0 15248 NULL nohasharray
151849 +enable_so_ide_cdrom_register_fndecl_15248 ide_cdrom_register fndecl 2 15248 &enable_so_result_wa_seg_15248
151850 +enable_so_sb_rextsize_xfs_sb_15250 sb_rextsize xfs_sb 0 15250 NULL
151851 +enable_so_ecryptfs_read_lower_page_segment_fndecl_15255 ecryptfs_read_lower_page_segment fndecl 4 15255 NULL
151852 +enable_so_rmsg_size_hv_netvsc_packet_15256 rmsg_size hv_netvsc_packet 0 15256 NULL
151853 +enable_so_current_credit_fndecl_15260 current_credit fndecl 0 15260 NULL nohasharray
151854 +enable_so_dm_block_location_fndecl_15260 dm_block_location fndecl 0 15260 &enable_so_current_credit_fndecl_15260
151855 +enable_so_num_tx_queues_net_device_15263 num_tx_queues net_device 0 15263 NULL
151856 +enable_so_writequeue_entry_complete_fndecl_15264 writequeue_entry_complete fndecl 2 15264 NULL
151857 +enable_so_qce_import_common_fndecl_15267 qce_import_common fndecl 2 15267 NULL
151858 +enable_so_bstr_printf_fndecl_15271 bstr_printf fndecl 0 15271 NULL
151859 +enable_so_recursive_scan_fndecl_15275 recursive_scan fndecl 5 15275 NULL
151860 +enable_so_rd_read_fndecl_15278 rd_read fndecl 3 15278 NULL
151861 +enable_so_nsect_ide_taskfile_15283 nsect ide_taskfile 0 15283 NULL
151862 +enable_so_srp_max_req_size_vardecl_ib_srpt_c_15291 srp_max_req_size vardecl_ib_srpt.c 0 15291 NULL nohasharray
151863 +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
151864 +enable_so_cx24120_writeregs_fndecl_15295 cx24120_writeregs fndecl 4 15295 NULL
151865 +enable_so_pwr_wake_on_host_read_fndecl_15298 pwr_wake_on_host_read fndecl 3 15298 NULL
151866 +enable_so_residual_virtio_scsi_inhdr_15299 residual virtio_scsi_inhdr 0 15299 NULL
151867 +enable_so_scd_size_idt77252_dev_15300 scd_size idt77252_dev 0 15300 NULL
151868 +enable_so_ipath_rcvhdrentsize_ipath_devdata_15302 ipath_rcvhdrentsize ipath_devdata 0 15302 NULL
151869 +enable_so___sg_alloc_table_fndecl_15308 __sg_alloc_table fndecl 0-2-3 15308 NULL
151870 +enable_so_c2_change_mtu_fndecl_15316 c2_change_mtu fndecl 2 15316 NULL
151871 +enable_so_snd_pcm_plug_client_channels_buf_fndecl_15318 snd_pcm_plug_client_channels_buf fndecl 0-3 15318 NULL
151872 +enable_so_hpfs_dir_lseek_fndecl_15324 hpfs_dir_lseek fndecl 2 15324 NULL
151873 +enable_so_ath10k_dbg_sta_write_addba_resp_fndecl_15326 ath10k_dbg_sta_write_addba_resp fndecl 3 15326 NULL
151874 +enable_so_ehci_urb_dequeue_fndecl_15333 ehci_urb_dequeue fndecl 3 15333 NULL
151875 +enable_so_dup_to_netobj_fndecl_15336 dup_to_netobj fndecl 3 15336 NULL
151876 +enable_so_cifs_readdata_alloc_fndecl_15339 cifs_readdata_alloc fndecl 1 15339 NULL
151877 +enable_so_min_io_size_ubifs_info_15340 min_io_size ubifs_info 0 15340 NULL
151878 +enable_so_sc18is602_txrx_fndecl_15346 sc18is602_txrx fndecl 0 15346 NULL
151879 +enable_so_check_can_nocow_fndecl_15347 check_can_nocow fndecl 2 15347 NULL
151880 +enable_so_efx_rx_mk_skb_fndecl_15349 efx_rx_mk_skb fndecl 5-3 15349 NULL
151881 +enable_so_s_cluster_bits_ext4_sb_info_15353 s_cluster_bits ext4_sb_info 0 15353 NULL
151882 +enable_so_nfs_file_direct_read_fndecl_15359 nfs_file_direct_read fndecl 3 15359 NULL
151883 +enable_so_seq_len_key_params_15366 seq_len key_params 0 15366 NULL
151884 +enable_so_num_total_plane_drm_mode_config_15377 num_total_plane drm_mode_config 0 15377 NULL
151885 +enable_so_size_mtd_info_15393 size mtd_info 0 15393 NULL
151886 +enable_so_id_mic_device_15395 id mic_device 0 15395 NULL
151887 +enable_so_rds_ib_ring_init_fndecl_15404 rds_ib_ring_init fndecl 2 15404 NULL
151888 +enable_so_udf_bread_fndecl_15411 udf_bread fndecl 2 15411 NULL
151889 +enable_so_pnp_alloc_fndecl_15414 pnp_alloc fndecl 1 15414 NULL
151890 +enable_so_setup_buffering_fndecl_15419 setup_buffering fndecl 3 15419 NULL
151891 +enable_so_queues_read_fndecl_15422 queues_read fndecl 3 15422 NULL
151892 +enable_so_logical_reada_extent_15426 logical reada_extent 0 15426 NULL
151893 +enable_so_pwc_set_video_mode_fndecl_15427 pwc_set_video_mode fndecl 5 15427 NULL
151894 +enable_so_size_cmd_header_15429 size cmd_header 0 15429 NULL
151895 +enable_so_ddr_base_intel_sst_drv_15431 ddr_base intel_sst_drv 0 15431 NULL
151896 +enable_so_ati_remote_sendpacket_fndecl_15435 ati_remote_sendpacket fndecl 2 15435 NULL
151897 +enable_so_max_vpi_lpfc_hba_15442 max_vpi lpfc_hba 0 15442 NULL
151898 +enable_so_eeprom_93xx46_bin_read_fndecl_15447 eeprom_93xx46_bin_read fndecl 5-6 15447 NULL
151899 +enable_so_callout_len_request_key_auth_15448 callout_len request_key_auth 0 15448 NULL
151900 +enable_so_code_page_dir_hpfs_spare_block_15449 code_page_dir hpfs_spare_block 0 15449 NULL
151901 +enable_so_cpd_size_blkcg_policy_15451 cpd_size blkcg_policy 0 15451 NULL
151902 +enable_so_codec_list_read_file_fndecl_15453 codec_list_read_file fndecl 3 15453 NULL
151903 +enable_so_wdm_create_fndecl_15456 wdm_create fndecl 3 15456 NULL
151904 +enable_so_ivsize_old_aead_alg_15462 ivsize old_aead_alg 0 15462 NULL
151905 +enable_so_octeon_setup_iq_fndecl_15466 octeon_setup_iq fndecl 3 15466 NULL
151906 +enable_so_regmap_spi_write_fndecl_15476 regmap_spi_write fndecl 3 15476 NULL
151907 +enable_so_mmio_len_fb_fix_screeninfo_15477 mmio_len fb_fix_screeninfo 0 15477 NULL
151908 +enable_so_priv_size_iscsit_transport_15489 priv_size iscsit_transport 0 15489 NULL
151909 +enable_so_nf_nat_sdp_port_fndecl_15490 nf_nat_sdp_port fndecl 7 15490 NULL
151910 +enable_so_old_oblock_policy_result_15494 old_oblock policy_result 0 15494 NULL
151911 +enable_so_ath10k_fw_crash_dump_read_fndecl_15496 ath10k_fw_crash_dump_read fndecl 3 15496 NULL
151912 +enable_so_sys_rt_sigpending_fndecl_15506 sys_rt_sigpending fndecl 2 15506 NULL
151913 +enable_so_size_videobuf_buffer_15508 size videobuf_buffer 0 15508 NULL
151914 +enable_so_gfs2_fallocate_fndecl_15515 gfs2_fallocate fndecl 4-3 15515 NULL
151915 +enable_so_max_pkt_size_cx231xx_video_mode_15531 max_pkt_size cx231xx_video_mode 0 15531 NULL
151916 +enable_so_pci_siig_setup_fndecl_15532 pci_siig_setup fndecl 4 15532 NULL
151917 +enable_so_wl1273_fm_get_tx_ctune_fndecl_15534 wl1273_fm_get_tx_ctune fndecl 0 15534 NULL
151918 +enable_so_space_bits_ubifs_info_15538 space_bits ubifs_info 0 15538 NULL
151919 +enable_so_hi_priority_depth_MPT3SAS_ADAPTER_15543 hi_priority_depth MPT3SAS_ADAPTER 0 15543 NULL
151920 +enable_so_genwqe_user_vmap_fndecl_15544 genwqe_user_vmap fndecl 4 15544 NULL nohasharray
151921 +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
151922 +enable_so_index_btframe_15545 index btframe 0 15545 NULL
151923 +enable_so_data_length_mts_transfer_context_15546 data_length mts_transfer_context 0 15546 NULL
151924 +enable_so_map_size_drm_amdgpu_gem_va_15550 map_size drm_amdgpu_gem_va 0 15550 NULL nohasharray
151925 +enable_so_il_dbgfs_channels_read_fndecl_15550 il_dbgfs_channels_read fndecl 3 15550 &enable_so_map_size_drm_amdgpu_gem_va_15550
151926 +enable_so_ep_in_kingsun_cb_15553 ep_in kingsun_cb 0 15553 NULL
151927 +enable_so_diff_usnic_uiom_reg_15554 diff usnic_uiom_reg 0 15554 NULL nohasharray
151928 +enable_so_num_odfs_clkgen_pll_data_15554 num_odfs clkgen_pll_data 0 15554 &enable_so_diff_usnic_uiom_reg_15554
151929 +enable_so_video_buffer_size_vivid_dev_15556 video_buffer_size vivid_dev 0 15556 NULL
151930 +enable_so_node_start_pfn_pglist_data_15561 node_start_pfn pglist_data 0 15561 NULL
151931 +enable_so_num_sge_ib_send_wr_15565 num_sge ib_send_wr 0 15565 NULL
151932 +enable_so_swiotlb_late_init_with_tbl_fndecl_15566 swiotlb_late_init_with_tbl fndecl 2 15566 NULL nohasharray
151933 +enable_so_push_frame_fndecl_15566 push_frame fndecl 2 15566 &enable_so_swiotlb_late_init_with_tbl_fndecl_15566
151934 +enable_so_s_map2blk_adfs_sb_info_15569 s_map2blk adfs_sb_info 0 15569 NULL
151935 +enable_so_acpi20_efi_15582 acpi20 efi 0 15582 NULL
151936 +enable_so_NumTransferUnits_erase_unit_header_t_15585 NumTransferUnits erase_unit_header_t 0 15585 NULL
151937 +enable_so_SYSC_listxattr_fndecl_15587 SYSC_listxattr fndecl 3 15587 NULL
151938 +enable_so_tx_ring_count_ixgbe_adapter_15595 tx_ring_count ixgbe_adapter 0 15595 NULL
151939 +enable_so_memsz_fifo_15603 memsz fifo 0 15603 NULL
151940 +enable_so_len_nfs3_createargs_15604 len nfs3_createargs 0 15604 NULL
151941 +enable_so_gs_buf_alloc_fndecl_15608 gs_buf_alloc fndecl 2 15608 NULL
151942 +enable_so_do_add_page_to_bio_fndecl_15612 do_add_page_to_bio fndecl 10-4-2 15612 NULL
151943 +enable_so_udf_compute_nr_groups_fndecl_15617 udf_compute_nr_groups fndecl 0 15617 NULL
151944 +enable_so_num_edbs_asd_seq_data_15621 num_edbs asd_seq_data 0 15621 NULL
151945 +enable_so_ch_r_head_jsm_channel_15625 ch_r_head jsm_channel 0 15625 NULL
151946 +enable_so_drm_addmap_core_fndecl_15627 drm_addmap_core fndecl 3-2 15627 NULL nohasharray
151947 +enable_so_nents_sg_table_15627 nents sg_table 0 15627 &enable_so_drm_addmap_core_fndecl_15627 nohasharray
151948 +enable_so_count_preds_fndecl_15627 count_preds fndecl 0 15627 &enable_so_nents_sg_table_15627
151949 +enable_so_i915_error_state_buf_init_fndecl_15630 i915_error_state_buf_init fndecl 4-3 15630 NULL
151950 +enable_so_mcs_wrap_mir_skb_fndecl_15633 mcs_wrap_mir_skb fndecl 0 15633 NULL
151951 +enable_so_netlbl_domhsh_init_fndecl_15635 netlbl_domhsh_init fndecl 1 15635 NULL
151952 +enable_so_end_bttv_vbi_fmt_15637 end bttv_vbi_fmt 0 15637 NULL nohasharray
151953 +enable_so_SyS_pselect6_fndecl_15637 SyS_pselect6 fndecl 1 15637 &enable_so_end_bttv_vbi_fmt_15637
151954 +enable_so_dma_in_redrat3_dev_15639 dma_in redrat3_dev 0 15639 NULL
151955 +enable_so_mapped_vram_radeonfb_info_15654 mapped_vram radeonfb_info 0 15654 NULL nohasharray
151956 +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
151957 +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
151958 +enable_so_kvm_pv_enable_async_pf_fndecl_15662 kvm_pv_enable_async_pf fndecl 2 15662 NULL
151959 +enable_so_sb_rblocks_xfs_sb_15668 sb_rblocks xfs_sb 0 15668 NULL
151960 +enable_so_SyS_poll_fndecl_15679 SyS_poll fndecl 2 15679 NULL
151961 +enable_so_wsize_p9_conn_15686 wsize p9_conn 0 15686 NULL
151962 +enable_so_total_bnx2x_sriov_15692 total bnx2x_sriov 0 15692 NULL
151963 +enable_so_num_bytes_sigmadsp_control_15699 num_bytes sigmadsp_control 0 15699 NULL
151964 +enable_so_iov_len_kvec_15702 iov_len kvec 0 15702 NULL nohasharray
151965 +enable_so_context_alloc_fndecl_15702 context_alloc fndecl 3 15702 &enable_so_iov_len_kvec_15702
151966 +enable_so_blk_rq_err_bytes_fndecl_15705 blk_rq_err_bytes fndecl 0 15705 NULL
151967 +enable_so_numa_scan_offset_mm_struct_15710 numa_scan_offset mm_struct 0 15710 NULL
151968 +enable_so_btrfs_chunk_sub_stripes_fndecl_15711 btrfs_chunk_sub_stripes fndecl 0 15711 NULL
151969 +enable_so_ib_umem_page_count_fndecl_15714 ib_umem_page_count fndecl 0 15714 NULL
151970 +enable_so_name_len_nilfs_dir_entry_15715 name_len nilfs_dir_entry 0 15715 NULL
151971 +enable_so_user_size_drm_i915_gem_userptr_15716 user_size drm_i915_gem_userptr 0 15716 NULL
151972 +enable_so_di_xblk_qnx4_inode_entry_15719 di_xblk qnx4_inode_entry 0 15719 NULL
151973 +enable_so_new_tape_buffer_fndecl_15721 new_tape_buffer fndecl 3 15721 NULL
151974 +enable_so_datafab_write_data_fndecl_15723 datafab_write_data fndecl 4 15723 NULL
151975 +enable_so_n_window_iwl_queue_15731 n_window iwl_queue 0 15731 NULL
151976 +enable_so_lcd_height_atyfb_par_15743 lcd_height atyfb_par 0 15743 NULL
151977 +enable_so_num_locks_dlm_migratable_lockres_15745 num_locks dlm_migratable_lockres 0 15745 NULL
151978 +enable_so_remote_miu_nfc_llcp_local_15749 remote_miu nfc_llcp_local 0 15749 NULL
151979 +enable_so_st_int_ioctl_fndecl_15750 st_int_ioctl fndecl 3 15750 NULL
151980 +enable_so_ip_tunnel_change_mtu_fndecl_15752 ip_tunnel_change_mtu fndecl 2 15752 NULL
151981 +enable_so_transfer_done_snd_usb_substream_15753 transfer_done snd_usb_substream 0 15753 NULL nohasharray
151982 +enable_so_size_gf100_gr_data_15753 size gf100_gr_data 0 15753 &enable_so_transfer_done_snd_usb_substream_15753
151983 +enable_so_xres__sisbios_mode_15754 xres _sisbios_mode 0 15754 NULL
151984 +enable_so_niu_change_mtu_fndecl_15765 niu_change_mtu fndecl 2 15765 NULL
151985 +enable_so_header_read_sd_15767 header_read sd 0 15767 NULL
151986 +enable_so_mc13xxx_spi_write_fndecl_15768 mc13xxx_spi_write fndecl 3 15768 NULL
151987 +enable_so_irttp_connect_confirm_fndecl_15769 irttp_connect_confirm fndecl 4-5 15769 NULL
151988 +enable_so_tx_put__synclinkmp_info_15770 tx_put _synclinkmp_info 0 15770 NULL
151989 +enable_so_btrfs_create_qgroup_fndecl_15772 btrfs_create_qgroup fndecl 3 15772 NULL
151990 +enable_so_size_order_mesh_table_15774 size_order mesh_table 0 15774 NULL
151991 +enable_so_kgdb_hex2mem_fndecl_15776 kgdb_hex2mem fndecl 3 15776 NULL
151992 +enable_so_rdma_read_chunk_lcl_fndecl_15778 rdma_read_chunk_lcl fndecl 7 15778 NULL nohasharray
151993 +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
151994 +enable_so_xfs_bmap_split_extent_at_fndecl_15780 xfs_bmap_split_extent_at fndecl 3 15780 NULL
151995 +enable_so_PacketLength_wa_xfer_packet_status_len_hwaiso_15781 PacketLength wa_xfer_packet_status_len_hwaiso 0 15781 NULL
151996 +enable_so_vde_ast_vbios_enhtable_15784 vde ast_vbios_enhtable 0 15784 NULL
151997 +enable_so_maxports_dgnc_board_15787 maxports dgnc_board 0 15787 NULL
151998 +enable_so_count_nfs4_readdir_arg_15790 count nfs4_readdir_arg 0 15790 NULL
151999 +enable_so_simple_attr_read_fndecl_15793 simple_attr_read fndecl 3 15793 NULL
152000 +enable_so_region_size_dm_region_hash_15798 region_size dm_region_hash 0 15798 NULL
152001 +enable_so_fi_ndatablk_nilfs_finfo_15799 fi_ndatablk nilfs_finfo 0 15799 NULL
152002 +enable_so_ath_rxbuf_alloc_fndecl_15802 ath_rxbuf_alloc fndecl 2 15802 NULL
152003 +enable_so_datablob_hmac_verify_fndecl_15809 datablob_hmac_verify fndecl 4 15809 NULL
152004 +enable_so_cache_read_fndecl_15813 cache_read fndecl 3 15813 NULL
152005 +enable_so_n_match_sets_cfg80211_sched_scan_request_15823 n_match_sets cfg80211_sched_scan_request 0 15823 NULL nohasharray
152006 +enable_so_user_regset_copyout_fndecl_15823 user_regset_copyout fndecl 7 15823 &enable_so_n_match_sets_cfg80211_sched_scan_request_15823
152007 +enable_so_word13_lpfc_mbx_read_config_15832 word13 lpfc_mbx_read_config 0 15832 NULL
152008 +enable_so_ocfs2_read_blocks_fndecl_15834 ocfs2_read_blocks fndecl 0-2 15834 NULL
152009 +enable_so_skb_make_writable_fndecl_15836 skb_make_writable fndecl 2 15836 NULL
152010 +enable_so_rx_num_pg_ch_pm_15838 rx_num_pg ch_pm 0 15838 NULL
152011 +enable_so_block_llseek_fndecl_15846 block_llseek fndecl 2 15846 NULL nohasharray
152012 +enable_so_irq_set_msi_desc_fndecl_15846 irq_set_msi_desc fndecl 1 15846 &enable_so_block_llseek_fndecl_15846
152013 +enable_so_msg_print_ext_body_fndecl_15847 msg_print_ext_body fndecl 0 15847 NULL
152014 +enable_so_pnp_register_mem_resource_fndecl_15849 pnp_register_mem_resource fndecl 6-3-5 15849 NULL
152015 +enable_so_net2272_read_fndecl_15850 net2272_read fndecl 0 15850 NULL
152016 +enable_so_sb_set_blocksize_fndecl_15860 sb_set_blocksize fndecl 2-0 15860 NULL
152017 +enable_so_kvm_read_guest_virt_helper_fndecl_15863 kvm_read_guest_virt_helper fndecl 3-1 15863 NULL
152018 +enable_so_period_bytes_min_snd_pcm_hardware_15864 period_bytes_min snd_pcm_hardware 0 15864 NULL
152019 +enable_so_o2net_send_tcp_msg_fndecl_15876 o2net_send_tcp_msg fndecl 4-3 15876 NULL
152020 +enable_so_sel_read_mls_fndecl_15882 sel_read_mls fndecl 3 15882 NULL
152021 +enable_so_unix_mkname_fndecl_15883 unix_mkname fndecl 0-2 15883 NULL
152022 +enable_so_ie_len_cfg80211_auth_request_15886 ie_len cfg80211_auth_request 0 15886 NULL
152023 +enable_so_dump_align_fndecl_15890 dump_align fndecl 2 15890 NULL
152024 +enable_so_sn9c2028_read1_fndecl_15891 sn9c2028_read1 fndecl 0 15891 NULL
152025 +enable_so_num_fitmsg_context_skd_device_15897 num_fitmsg_context skd_device 0 15897 NULL
152026 +enable_so_num_pds_mthca_limits_15899 num_pds mthca_limits 0 15899 NULL nohasharray
152027 +enable_so_size_drm_i915_error_state_buf_15899 size drm_i915_error_state_buf 0 15899 &enable_so_num_pds_mthca_limits_15899
152028 +enable_so_cpia_usb_transferCmd_fndecl_15901 cpia_usb_transferCmd fndecl 0 15901 NULL
152029 +enable_so_usb_alloc_dev_fndecl_15902 usb_alloc_dev fndecl 3 15902 NULL
152030 +enable_so_dir_info_len_ceph_file_info_15905 dir_info_len ceph_file_info 0 15905 NULL nohasharray
152031 +enable_so_flags_v4l2_ioctl_info_15905 flags v4l2_ioctl_info 0 15905 &enable_so_dir_info_len_ceph_file_info_15905
152032 +enable_so_status_pch_udc_data_dma_desc_15911 status pch_udc_data_dma_desc 0 15911 NULL
152033 +enable_so_vsp1_entity_init_fndecl_15916 vsp1_entity_init fndecl 3 15916 NULL
152034 +enable_so_rh_queue_status_fndecl_15921 rh_queue_status fndecl 0 15921 NULL
152035 +enable_so_group_width_ore_layout_15927 group_width ore_layout 0 15927 NULL
152036 +enable_so_command_setyuvtresh_fndecl_15933 command_setyuvtresh fndecl 0 15933 NULL
152037 +enable_so_v4l2_m2m_dqbuf_fndecl_15936 v4l2_m2m_dqbuf fndecl 0 15936 NULL
152038 +enable_so_npages_gssx_arg_accept_sec_context_15939 npages gssx_arg_accept_sec_context 0 15939 NULL
152039 +enable_so_netlink_sendmsg_fndecl_15943 netlink_sendmsg fndecl 3 15943 NULL
152040 +enable_so_rstatus_usblp_15945 rstatus usblp 0 15945 NULL
152041 +enable_so_hw_scan_ies_bufsize_ieee80211_local_15949 hw_scan_ies_bufsize ieee80211_local 0 15949 NULL
152042 +enable_so_xfs_ialloc_pagi_init_fndecl_15952 xfs_ialloc_pagi_init fndecl 3 15952 NULL
152043 +enable_so_mcp795_rtcc_read_fndecl_15956 mcp795_rtcc_read fndecl 4 15956 NULL
152044 +enable_so_nr_rtc_mem_15958 nr rtc_mem 0 15958 NULL nohasharray
152045 +enable_so_ebt_buf_add_pad_fndecl_15958 ebt_buf_add_pad fndecl 0 15958 &enable_so_nr_rtc_mem_15958
152046 +enable_so_data_dma_usb_acecad_15962 data_dma usb_acecad 0 15962 NULL
152047 +enable_so_splice_pipe_to_pipe_fndecl_15964 splice_pipe_to_pipe fndecl 3 15964 NULL
152048 +enable_so_dai_list_read_file_fndecl_15966 dai_list_read_file fndecl 3 15966 NULL
152049 +enable_so_brcmf_bus_add_txhdrlen_fndecl_15969 brcmf_bus_add_txhdrlen fndecl 2 15969 NULL
152050 +enable_so_ath6kl_wmi_beginscan_cmd_fndecl_15973 ath6kl_wmi_beginscan_cmd fndecl 8-2 15973 NULL
152051 +enable_so_first_burst_iscsi_session_15974 first_burst iscsi_session 0 15974 NULL
152052 +enable_so_mmc_test_area_io_fndecl_15982 mmc_test_area_io fndecl 2 15982 NULL
152053 +enable_so_nb_blocks_INFTLrecord_15986 nb_blocks INFTLrecord 0 15986 NULL
152054 +enable_so_ipath_map_phys_fmr_fndecl_15988 ipath_map_phys_fmr fndecl 4 15988 NULL
152055 +enable_so_data_len_usb_req_15991 data_len usb_req 0 15991 NULL
152056 +enable_so_nilfs_cpfile_get_blkoff_fndecl_15997 nilfs_cpfile_get_blkoff fndecl 0-2 15997 NULL
152057 +enable_so_num_mem_chunks_ath10k_wmi_16005 num_mem_chunks ath10k_wmi 0 16005 NULL
152058 +enable_so_last_offset_inode_defrag_16007 last_offset inode_defrag 0 16007 NULL
152059 +enable_so_il3945_get_rate_idx_by_rssi_fndecl_16010 il3945_get_rate_idx_by_rssi fndecl 0 16010 NULL
152060 +enable_so_ivtv_buf_copy_from_user_fndecl_16013 ivtv_buf_copy_from_user fndecl 4 16013 NULL
152061 +enable_so_num_stripes_map_lookup_16016 num_stripes map_lookup 0 16016 NULL
152062 +enable_so_payload_len_bsg_buffer_16019 payload_len bsg_buffer 0 16019 NULL
152063 +enable_so_bo_size_drm_amdgpu_gem_create_in_16025 bo_size drm_amdgpu_gem_create_in 0 16025 NULL nohasharray
152064 +enable_so_xhci_urb_dequeue_fndecl_16025 xhci_urb_dequeue fndecl 3 16025 &enable_so_bo_size_drm_amdgpu_gem_create_in_16025 nohasharray
152065 +enable_so_jfs_truncate_nolock_fndecl_16025 jfs_truncate_nolock fndecl 2 16025 &enable_so_xhci_urb_dequeue_fndecl_16025
152066 +enable_so_sb_permission_fndecl_16032 sb_permission fndecl 0 16032 NULL
152067 +enable_so_ct_atc_create_fndecl_16033 ct_atc_create fndecl 3 16033 NULL nohasharray
152068 +enable_so_channels_max_hda_pcm_stream_16033 channels_max hda_pcm_stream 0 16033 &enable_so_ct_atc_create_fndecl_16033
152069 +enable_so_count_connectors_drm_mode_crtc_16038 count_connectors drm_mode_crtc 0 16038 NULL
152070 +enable_so_rts_threshold_ipw2100_priv_16044 rts_threshold ipw2100_priv 0 16044 NULL
152071 +enable_so_nsec_seg_buf_16050 nsec seg_buf 0 16050 NULL nohasharray
152072 +enable_so_snd_pcm_plugin_build_fndecl_16050 snd_pcm_plugin_build fndecl 5 16050 &enable_so_nsec_seg_buf_16050
152073 +enable_so_nouveau_bo_new_fndecl_16051 nouveau_bo_new fndecl 2 16051 NULL
152074 +enable_so_len_ahc_dma_seg_16052 len ahc_dma_seg 0 16052 NULL
152075 +enable_so_n_insns_comedi_insnlist_16056 n_insns comedi_insnlist 0 16056 NULL
152076 +enable_so_ts_packet_size_cx231xx_tsport_16063 ts_packet_size cx231xx_tsport 0 16063 NULL
152077 +enable_so_pgsize_vardecl_pagetest_c_16065 pgsize vardecl_pagetest.c 0 16065 NULL
152078 +enable_so_compat_sys_sendfile64_fndecl_16066 compat_sys_sendfile64 fndecl 4 16066 NULL nohasharray
152079 +enable_so_set_parameters_fndecl_16066 set_parameters fndecl 8-7 16066 &enable_so_compat_sys_sendfile64_fndecl_16066
152080 +enable_so_do_swap_page_fndecl_16068 do_swap_page fndecl 3 16068 NULL
152081 +enable_so_ht_print_chan_fndecl_16071 ht_print_chan fndecl 0 16071 NULL
152082 +enable_so_max_rxd_qlcnic_adapter_16074 max_rxd qlcnic_adapter 0 16074 NULL
152083 +enable_so_ext3_get_inode_loc_fndecl_16085 ext3_get_inode_loc fndecl 0 16085 NULL
152084 +enable_so_mgag200_ttm_tt_create_fndecl_16093 mgag200_ttm_tt_create fndecl 2 16093 NULL
152085 +enable_so_pci_add_resource_offset_fndecl_16095 pci_add_resource_offset fndecl 3 16095 NULL
152086 +enable_so_w_mode_size_16096 w mode_size 0 16096 NULL
152087 +enable_so_param_len_mgmt_pending_cmd_16099 param_len mgmt_pending_cmd 0 16099 NULL
152088 +enable_so_grow_dev_page_fndecl_16100 grow_dev_page fndecl 4-5-3 16100 NULL
152089 +enable_so_instances_minus_one_mxt_object_16107 instances_minus_one mxt_object 0 16107 NULL
152090 +enable_so_find_extend_vma_fndecl_16110 find_extend_vma fndecl 2 16110 NULL
152091 +enable_so_brcmf_usb_dl_send_bulk_fndecl_16113 brcmf_usb_dl_send_bulk fndecl 3 16113 NULL nohasharray
152092 +enable_so_xillybus_llseek_fndecl_16113 xillybus_llseek fndecl 2 16113 &enable_so_brcmf_usb_dl_send_bulk_fndecl_16113
152093 +enable_so_tx_bytes_queued_ipw_tty_16114 tx_bytes_queued ipw_tty 0 16114 NULL
152094 +enable_so_logfs_cleanse_block_fndecl_16119 logfs_cleanse_block fndecl 3 16119 NULL
152095 +enable_so_snd_rawmidi_kernel_write_fndecl_16129 snd_rawmidi_kernel_write fndecl 3 16129 NULL
152096 +enable_so_vf_count_efx_nic_16134 vf_count efx_nic 0 16134 NULL
152097 +enable_so_hci_req_add_ev_fndecl_16136 hci_req_add_ev fndecl 3 16136 NULL
152098 +enable_so_port_length_c67x00_td_16141 port_length c67x00_td 0 16141 NULL
152099 +enable_so_get_partial_shdma_ops_16144 get_partial shdma_ops 0 16144 NULL
152100 +enable_so_samples_per_line_v4l2_vbi_format_16148 samples_per_line v4l2_vbi_format 0 16148 NULL
152101 +enable_so_nvkm_instmem_create__fndecl_16153 nvkm_instmem_create_ fndecl 4 16153 NULL
152102 +enable_so_max_packet_length_mv_dqh_16157 max_packet_length mv_dqh 0 16157 NULL
152103 +enable_so_beep_amp_via_spec_16168 beep_amp via_spec 0 16168 NULL
152104 +enable_so_read_for_csum_fndecl_16170 read_for_csum fndecl 3-2 16170 NULL
152105 +enable_so_reiserfs_commit_write_fndecl_16171 reiserfs_commit_write fndecl 4 16171 NULL
152106 +enable_so_ath6kl_wmi_set_keepalive_cmd_fndecl_16174 ath6kl_wmi_set_keepalive_cmd fndecl 2 16174 NULL
152107 +enable_so_rxrpc_recvmsg_fndecl_16178 rxrpc_recvmsg fndecl 3 16178 NULL
152108 +enable_so_board_span_myri10ge_priv_16182 board_span myri10ge_priv 0 16182 NULL nohasharray
152109 +enable_so_minor_lirc_driver_16182 minor lirc_driver 0 16182 &enable_so_board_span_myri10ge_priv_16182
152110 +enable_so_pathlen_nfs_symlinkargs_16183 pathlen nfs_symlinkargs 0 16183 NULL
152111 +enable_so_width_drm_mode_fb_cmd2_16185 width drm_mode_fb_cmd2 0 16185 NULL
152112 +enable_so_h_input_res_16191 h input_res 0 16191 NULL
152113 +enable_so_vid_hdr_offs_mtd_dev_param_16199 vid_hdr_offs mtd_dev_param 0 16199 NULL
152114 +enable_so_osdname_len_osd_dev_info_16203 osdname_len osd_dev_info 0 16203 NULL
152115 +enable_so_ipath_init_qp_table_fndecl_16220 ipath_init_qp_table fndecl 2 16220 NULL
152116 +enable_so_blksize_mtd_blktrans_ops_16221 blksize mtd_blktrans_ops 0 16221 NULL nohasharray
152117 +enable_so_sys_fgetxattr_fndecl_16221 sys_fgetxattr fndecl 4 16221 &enable_so_blksize_mtd_blktrans_ops_16221
152118 +enable_so_port_hdspm_16225 port hdspm 0 16225 NULL
152119 +enable_so_mmio_vardecl_via_wdt_c_16227 mmio vardecl_via_wdt.c 0 16227 NULL
152120 +enable_so_operand_1_len_ccp_ecc_modular_math_16234 operand_1_len ccp_ecc_modular_math 0 16234 NULL
152121 +enable_so_ks8851_rdreg32_fndecl_16240 ks8851_rdreg32 fndecl 0 16240 NULL
152122 +enable_so_len_wmi_p2p_rx_probe_req_event_16241 len wmi_p2p_rx_probe_req_event 0 16241 NULL
152123 +enable_so_used_count_pvr2_buffer_16246 used_count pvr2_buffer 0 16246 NULL
152124 +enable_so_num_tbps___thermal_zone_16249 num_tbps __thermal_zone 0 16249 NULL
152125 +enable_so_nilfs_iget_locked_fndecl_16250 nilfs_iget_locked fndecl 3 16250 NULL
152126 +enable_so_offs_ubifs_scan_node_16253 offs ubifs_scan_node 0 16253 NULL
152127 +enable_so_xfs_getbmapx_fix_eof_hole_fndecl_16255 xfs_getbmapx_fix_eof_hole fndecl 5 16255 NULL
152128 +enable_so_mon_stat_read_fndecl_16261 mon_stat_read fndecl 3 16261 NULL
152129 +enable_so_num_desc__drm_via_sg_info_16262 num_desc _drm_via_sg_info 0 16262 NULL
152130 +enable_so_length_scsi_data_buffer_16267 length scsi_data_buffer 0 16267 NULL nohasharray
152131 +enable_so___do_huge_pmd_anonymous_page_fndecl_16267 __do_huge_pmd_anonymous_page fndecl 3 16267 &enable_so_length_scsi_data_buffer_16267
152132 +enable_so_s_fpg_ufs_sb_private_info_16269 s_fpg ufs_sb_private_info 0 16269 NULL
152133 +enable_so_s_inodes_per_group_ext2_sb_info_16273 s_inodes_per_group ext2_sb_info 0 16273 NULL
152134 +enable_so__max_length_ieee80211_radiotap_iterator_16274 _max_length ieee80211_radiotap_iterator 0 16274 NULL
152135 +enable_so_obj_len_fndecl_16275 obj_len fndecl 0 16275 NULL
152136 +enable_so_mmio_size_sis_video_info_16284 mmio_size sis_video_info 0 16284 NULL
152137 +enable_so_find_ibft_region_fndecl_16285 find_ibft_region fndecl 0 16285 NULL
152138 +enable_so_dvbdev_get_free_adapter_num_fndecl_16292 dvbdev_get_free_adapter_num fndecl 0 16292 NULL
152139 +enable_so_bits_inflate_state_16300 bits inflate_state 0 16300 NULL
152140 +enable_so_vfs_writev_fndecl_16301 vfs_writev fndecl 3 16301 NULL
152141 +enable_so_max_nvkm_fifo_16302 max nvkm_fifo 0 16302 NULL nohasharray
152142 +enable_so_crypto_alloc_instance2_fndecl_16302 crypto_alloc_instance2 fndecl 3 16302 &enable_so_max_nvkm_fifo_16302
152143 +enable_so_isdn_tty_countDLE_fndecl_16304 isdn_tty_countDLE fndecl 0 16304 NULL
152144 +enable_so_brcmf_sdiod_txglomsz_vardecl_bcmsdh_c_16306 brcmf_sdiod_txglomsz vardecl_bcmsdh.c 0 16306 NULL
152145 +enable_so_len_ieee80211_vendor_radiotap_16308 len ieee80211_vendor_radiotap 0 16308 NULL
152146 +enable_so_aac_fib_send_fndecl_16315 aac_fib_send fndecl 3 16315 NULL
152147 +enable_so_memblock_mark_mirror_fndecl_16321 memblock_mark_mirror fndecl 2-1 16321 NULL
152148 +enable_so_major_tty_driver_16323 major tty_driver 0 16323 NULL
152149 +enable_so_AscGetMaxDmaCount_fndecl_16326 AscGetMaxDmaCount fndecl 0 16326 NULL
152150 +enable_so_jent_zalloc_fndecl_16331 jent_zalloc fndecl 1 16331 NULL
152151 +enable_so_l2tp_session_create_fndecl_16341 l2tp_session_create fndecl 1 16341 NULL
152152 +enable_so_sys_dup2_fndecl_16343 sys_dup2 fndecl 2 16343 NULL nohasharray
152153 +enable_so_max_vfs_be_resources_16343 max_vfs be_resources 0 16343 &enable_so_sys_dup2_fndecl_16343
152154 +enable_so_fuse_dir_compat_ioctl_fndecl_16346 fuse_dir_compat_ioctl fndecl 2 16346 NULL
152155 +enable_so_channels_snd_emu10k1_fx8010_pcm_16368 channels snd_emu10k1_fx8010_pcm 0 16368 NULL
152156 +enable_so_udf_get_pblock_virt15_fndecl_16373 udf_get_pblock_virt15 fndecl 4 16373 NULL
152157 +enable_so_help_fndecl_16375 help fndecl 5 16375 NULL nohasharray
152158 +enable_so_ath9k_debugfs_read_buf_fndecl_16375 ath9k_debugfs_read_buf fndecl 3 16375 &enable_so_help_fndecl_16375
152159 +enable_so_samsung_clk_init_fndecl_16382 samsung_clk_init fndecl 3 16382 NULL
152160 +enable_so_len_iwl_mvm_dump_desc_16383 len iwl_mvm_dump_desc 0 16383 NULL
152161 +enable_so_zd_mac_preinit_hw_fndecl_16386 zd_mac_preinit_hw fndecl 0 16386 NULL
152162 +enable_so_sr_set_blocklength_fndecl_16390 sr_set_blocklength fndecl 2 16390 NULL
152163 +enable_so_dsize_ip_set_16391 dsize ip_set 0 16391 NULL
152164 +enable_so_max_nr_frames_gnttab_query_size_16393 max_nr_frames gnttab_query_size 0 16393 NULL
152165 +enable_so_set_pio_mode_fndecl_16395 set_pio_mode fndecl 2 16395 NULL nohasharray
152166 +enable_so_acpi_ex_create_region_fndecl_16395 acpi_ex_create_region fndecl 3 16395 &enable_so_set_pio_mode_fndecl_16395 nohasharray
152167 +enable_so_ip_options_get_alloc_fndecl_16395 ip_options_get_alloc fndecl 1 16395 &enable_so_acpi_ex_create_region_fndecl_16395 nohasharray
152168 +enable_so_pci_map_page_fndecl_16395 pci_map_page fndecl 0 16395 &enable_so_ip_options_get_alloc_fndecl_16395
152169 +enable_so_rt2x00debug_read_queue_stats_fndecl_16396 rt2x00debug_read_queue_stats fndecl 3 16396 NULL
152170 +enable_so_SYSC_setgroups_fndecl_16397 SYSC_setgroups fndecl 1 16397 NULL
152171 +enable_so___logfs_seek_data_fndecl_16398 __logfs_seek_data fndecl 2-0 16398 NULL
152172 +enable_so_usbat_execute_command_fndecl_16400 usbat_execute_command fndecl 3 16400 NULL
152173 +enable_so_compress_sliced_buf_fndecl_16402 compress_sliced_buf fndecl 0-2 16402 NULL
152174 +enable_so_statelen_drbg_core_16405 statelen drbg_core 0 16405 NULL
152175 +enable_so_romfs_dev_read_fndecl_16412 romfs_dev_read fndecl 2-4 16412 NULL
152176 +enable_so_bcnt_aoeif_16414 bcnt aoeif 0 16414 NULL
152177 +enable_so_cmd_buf_nr_drm_exynos_g2d_set_cmdlist_16416 cmd_buf_nr drm_exynos_g2d_set_cmdlist 0 16416 NULL
152178 +enable_so_n_sectors_hpfs_super_block_16421 n_sectors hpfs_super_block 0 16421 NULL
152179 +enable_so_bNrInPins_uac_selector_unit_descriptor_16423 bNrInPins uac_selector_unit_descriptor 0 16423 NULL
152180 +enable_so_numa_emulation_fndecl_16441 numa_emulation fndecl 2 16441 NULL
152181 +enable_so_ep_in_usbtest_info_16442 ep_in usbtest_info 0 16442 NULL
152182 +enable_so_pcmcia_irq_pcmcia_socket_16443 pcmcia_irq pcmcia_socket 0 16443 NULL
152183 +enable_so_ReadHSCX_fndecl_16444 ReadHSCX fndecl 0 16444 NULL nohasharray
152184 +enable_so_garp_request_join_fndecl_16444 garp_request_join fndecl 4 16444 &enable_so_ReadHSCX_fndecl_16444
152185 +enable_so_mpu3050_xyz_read_reg_fndecl_16445 mpu3050_xyz_read_reg fndecl 3 16445 NULL
152186 +enable_so_endp_in_zd1201_16446 endp_in zd1201 0 16446 NULL
152187 +enable_so_frame_size_au0828_dev_16447 frame_size au0828_dev 0 16447 NULL
152188 +enable_so_wp_page_copy_fndecl_16450 wp_page_copy fndecl 3 16450 NULL
152189 +enable_so_sdhci_alloc_host_fndecl_16454 sdhci_alloc_host fndecl 2 16454 NULL
152190 +enable_so_nvkm_vm_map_pgt_fndecl_16457 nvkm_vm_map_pgt fndecl 3 16457 NULL
152191 +enable_so_prism2_change_mtu_fndecl_16473 prism2_change_mtu fndecl 2 16473 NULL
152192 +enable_so_m_sectbb_log_xfs_mount_16477 m_sectbb_log xfs_mount 0 16477 NULL nohasharray
152193 +enable_so_nfs_proc_symlink_fndecl_16477 nfs_proc_symlink fndecl 4 16477 &enable_so_m_sectbb_log_xfs_mount_16477
152194 +enable_so_nilfs_iget_fndecl_16478 nilfs_iget fndecl 3 16478 NULL
152195 +enable_so_mtk_alloc_clk_data_fndecl_16481 mtk_alloc_clk_data fndecl 1 16481 NULL
152196 +enable_so_msg_count_amd8111e_rx_dr_16493 msg_count amd8111e_rx_dr 0 16493 NULL
152197 +enable_so_blksz_fw_dl_mwifiex_pcie_device_16498 blksz_fw_dl mwifiex_pcie_device 0 16498 NULL nohasharray
152198 +enable_so_ttm_page_alloc_init_fndecl_16498 ttm_page_alloc_init fndecl 2 16498 &enable_so_blksz_fw_dl_mwifiex_pcie_device_16498
152199 +enable_so_max_srq_wqes_mthca_limits_16499 max_srq_wqes mthca_limits 0 16499 NULL
152200 +enable_so_stride_simplefb_platform_data_16503 stride simplefb_platform_data 0 16503 NULL
152201 +enable_so_crypt_alloc_buffer_fndecl_16511 crypt_alloc_buffer fndecl 2 16511 NULL
152202 +enable_so_cfs_cpt_num_estimate_fndecl_16512 cfs_cpt_num_estimate fndecl 0 16512 NULL
152203 +enable_so_blocks_available_dio_submit_16522 blocks_available dio_submit 0 16522 NULL
152204 +enable_so_xb_suballoc_loc_ocfs2_xattr_block_16523 xb_suballoc_loc ocfs2_xattr_block 0 16523 NULL
152205 +enable_so_io_throttle_count_vnic_snic_config_16529 io_throttle_count vnic_snic_config 0 16529 NULL
152206 +enable_so_comm_size_perf_comm_event_16533 comm_size perf_comm_event 0 16533 NULL
152207 +enable_so_ath10k_read_htt_stats_mask_fndecl_16534 ath10k_read_htt_stats_mask fndecl 3 16534 NULL
152208 +enable_so_lpt_lebs_ubifs_info_16535 lpt_lebs ubifs_info 0 16535 NULL
152209 +enable_so_smk_read_mapped_fndecl_16537 smk_read_mapped fndecl 3 16537 NULL
152210 +enable_so_tmds_register_read_bytes_fndecl_16541 tmds_register_read_bytes fndecl 3 16541 NULL
152211 +enable_so_MaxSimpleVolumes_aac_get_container_count_resp_16542 MaxSimpleVolumes aac_get_container_count_resp 0 16542 NULL
152212 +enable_so_max_mthca_srq_16551 max mthca_srq 0 16551 NULL
152213 +enable_so_max_srq_sz_mlx4_dev_cap_16554 max_srq_sz mlx4_dev_cap 0 16554 NULL
152214 +enable_so_groups_alloc_fndecl_16557 groups_alloc fndecl 1 16557 NULL
152215 +enable_so_ext3_try_to_allocate_fndecl_16565 ext3_try_to_allocate fndecl 0-5 16565 NULL
152216 +enable_so_result_wa_xfer_16568 result wa_xfer 0 16568 NULL
152217 +enable_so_cramfs_uncompress_block_fndecl_16569 cramfs_uncompress_block fndecl 4-2 16569 NULL
152218 +enable_so___mei_cl_send_fndecl_16571 __mei_cl_send fndecl 3 16571 NULL
152219 +enable_so_n_barrier_cbs_vardecl_rcutorture_c_16575 n_barrier_cbs vardecl_rcutorture.c 0 16575 NULL
152220 +enable_so_descriptor_elements_timb_dma_platform_data_channel_16581 descriptor_elements timb_dma_platform_data_channel 0 16581 NULL
152221 +enable_so_n_phy_pm8001_chip_info_16585 n_phy pm8001_chip_info 0 16585 NULL
152222 +enable_so_len_atmel_priv_ioctl_16592 len atmel_priv_ioctl 0 16592 NULL
152223 +enable_so_ino_logfs_block_16599 ino logfs_block 0 16599 NULL
152224 +enable_so_send_to_group_fndecl_16600 send_to_group fndecl 0 16600 NULL
152225 +enable_so_ext4_group_extend_fndecl_16613 ext4_group_extend fndecl 3 16613 NULL
152226 +enable_so_coda_upcall_fndecl_16614 coda_upcall fndecl 2 16614 NULL
152227 +enable_so_amdgpu_ttm_gtt_read_fndecl_16621 amdgpu_ttm_gtt_read fndecl 3 16621 NULL
152228 +enable_so_ceph_fsync_fndecl_16625 ceph_fsync fndecl 2-3 16625 NULL
152229 +enable_so_ext_tree_remove_fndecl_16629 ext_tree_remove fndecl 3-4 16629 NULL nohasharray
152230 +enable_so_uc_outSize_upc_req_16629 uc_outSize upc_req 0 16629 &enable_so_ext_tree_remove_fndecl_16629
152231 +enable_so_fault_inject_write_fndecl_16637 fault_inject_write fndecl 3 16637 NULL
152232 +enable_so_key_id_len_module_signature_16641 key_id_len module_signature 0 16641 NULL
152233 +enable_so_crtc_hsync_start_drm_display_mode_16643 crtc_hsync_start drm_display_mode 0 16643 NULL
152234 +enable_so_svc_pool_map_init_pernode_fndecl_16648 svc_pool_map_init_pernode fndecl 0 16648 NULL
152235 +enable_so_nfc_hci_allocate_device_fndecl_16649 nfc_hci_allocate_device fndecl 8-6 16649 NULL
152236 +enable_so_wpa_ie_len_mwifiex_private_16651 wpa_ie_len mwifiex_private 0 16651 NULL
152237 +enable_so_notify_uva_vmci_set_notify_info_16655 notify_uva vmci_set_notify_info 0 16655 NULL
152238 +enable_so_rxHeader1_edgeport_serial_16658 rxHeader1 edgeport_serial 0 16658 NULL
152239 +enable_so_core_alua_write_tpg_metadata_fndecl_16659 core_alua_write_tpg_metadata fndecl 3 16659 NULL
152240 +enable_so_li_total_channels_vardecl_16663 li_total_channels vardecl 0 16663 NULL
152241 +enable_so_memblock_remove_fndecl_16669 memblock_remove fndecl 2-1 16669 NULL
152242 +enable_so_y_size_mms114_platform_data_16671 y_size mms114_platform_data 0 16671 NULL
152243 +enable_so_of_dma_match_channel_fndecl_16675 of_dma_match_channel fndecl 3 16675 NULL
152244 +enable_so_ext_mem_k_screen_info_16677 ext_mem_k screen_info 0 16677 NULL nohasharray
152245 +enable_so_dlfb_get_edid_fndecl_16677 dlfb_get_edid fndecl 0 16677 &enable_so_ext_mem_k_screen_info_16677
152246 +enable_so_hue_sd_gl860_16686 hue sd_gl860 0 16686 NULL
152247 +enable_so___alloc_objio_seg_fndecl_16688 __alloc_objio_seg fndecl 1 16688 NULL nohasharray
152248 +enable_so_cons_read_buffer_16688 cons read_buffer 0 16688 &enable_so___alloc_objio_seg_fndecl_16688
152249 +enable_so_jffs2_scan_xref_node_fndecl_16692 jffs2_scan_xref_node fndecl 4 16692 NULL
152250 +enable_so_batadv_check_unicast_ttvn_fndecl_16693 batadv_check_unicast_ttvn fndecl 3 16693 NULL
152251 +enable_so_efx_ef10_pci_sriov_enable_fndecl_16694 efx_ef10_pci_sriov_enable fndecl 2 16694 NULL
152252 +enable_so_llcp_tlv_miux_fndecl_16699 llcp_tlv_miux fndecl 0 16699 NULL
152253 +enable_so_ad714x_spi_read_fndecl_16700 ad714x_spi_read fndecl 4 16700 NULL
152254 +enable_so_tlv_buf_len_mwifiex_scan_cmd_config_16702 tlv_buf_len mwifiex_scan_cmd_config 0 16702 NULL nohasharray
152255 +enable_so_trace_insert_enum_map_file_fndecl_16702 trace_insert_enum_map_file fndecl 3 16702 &enable_so_tlv_buf_len_mwifiex_scan_cmd_config_16702
152256 +enable_so_hdlc_loop_fndecl_16708 hdlc_loop fndecl 0 16708 NULL
152257 +enable_so_vm_mmap_pgoff_fndecl_16712 vm_mmap_pgoff fndecl 3 16712 NULL
152258 +enable_so_ntargets_ips_ha_16718 ntargets ips_ha 0 16718 NULL
152259 +enable_so_pcm_buf_host_rw_ofs_snd_card_asihpi_pcm_16719 pcm_buf_host_rw_ofs snd_card_asihpi_pcm 0 16719 NULL
152260 +enable_so_opcfg_ofsl_cyttsp4_sysinfo_data_16723 opcfg_ofsl cyttsp4_sysinfo_data 0 16723 NULL
152261 +enable_so_multi_io_quirk_mmc_host_ops_16729 multi_io_quirk mmc_host_ops 0 16729 NULL
152262 +enable_so_fat_length_fat_boot_sector_16730 fat_length fat_boot_sector 0 16730 NULL
152263 +enable_so_width_qxl_head_16734 width qxl_head 0 16734 NULL
152264 +enable_so_nchannels_twl6030_gpadc_platform_data_16736 nchannels twl6030_gpadc_platform_data 0 16736 NULL
152265 +enable_so_rx_rate_rx_frames_per_rates_read_fndecl_16737 rx_rate_rx_frames_per_rates_read fndecl 3 16737 NULL nohasharray
152266 +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
152267 +enable_so_kimage_alloc_init_fndecl_16737 kimage_alloc_init fndecl 3 16737 &enable_so_udf_add_extendedattr_fndecl_16737
152268 +enable_so_fault_disconnect_write_fndecl_16742 fault_disconnect_write fndecl 3 16742 NULL
152269 +enable_so_blockshift_sddr55_card_info_16749 blockshift sddr55_card_info 0 16749 NULL
152270 +enable_so_lib80211_wep_encrypt_fndecl_16752 lib80211_wep_encrypt fndecl 2 16752 NULL
152271 +enable_so_skb_pull_rcsum_fndecl_16757 skb_pull_rcsum fndecl 2 16757 NULL
152272 +enable_so_cpu_msix_table_sz_MPT2SAS_ADAPTER_16760 cpu_msix_table_sz MPT2SAS_ADAPTER 0 16760 NULL
152273 +enable_so___vfs_write_fndecl_16765 __vfs_write fndecl 0-3 16765 NULL
152274 +enable_so_cluster_vardecl_pd_c_16770 cluster vardecl_pd.c 0 16770 NULL nohasharray
152275 +enable_so_size_nv50_gr_priv_16770 size nv50_gr_priv 0 16770 &enable_so_cluster_vardecl_pd_c_16770 nohasharray
152276 +enable_so_num_q_csio_wrm_16770 num_q csio_wrm 0 16770 &enable_so_size_nv50_gr_priv_16770
152277 +enable_so_cfg80211_classify8021d_fndecl_16771 cfg80211_classify8021d fndecl 0 16771 NULL
152278 +enable_so_key_len_iw_encode_ext_16773 key_len iw_encode_ext 0 16773 NULL
152279 +enable_so_len_f2fs_str_16776 len f2fs_str 0 16776 NULL
152280 +enable_so_security_inode_need_killpriv_fndecl_16777 security_inode_need_killpriv fndecl 0 16777 NULL
152281 +enable_so_csio_fcoe_rnodes_vardecl_16778 csio_fcoe_rnodes vardecl 0 16778 NULL
152282 +enable_so_qxl_draw_opaque_fb_fndecl_16781 qxl_draw_opaque_fb fndecl 2 16781 NULL
152283 +enable_so_u132_hcd_giveback_urb_fndecl_16783 u132_hcd_giveback_urb fndecl 4 16783 NULL nohasharray
152284 +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
152285 +enable_so_max_iu_len_srp_target_port_16784 max_iu_len srp_target_port 0 16784 NULL nohasharray
152286 +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
152287 +enable_so_num_pfns_virtio_balloon_16784 num_pfns virtio_balloon 0 16784 &enable_so_iscsit_build_text_rsp_fndecl_16784
152288 +enable_so_get_string_fndecl_16789 get_string fndecl 0 16789 NULL
152289 +enable_so_data_in_size_mpt2_ioctl_command_16804 data_in_size mpt2_ioctl_command 0 16804 NULL
152290 +enable_so_batch_shrinker_16806 batch shrinker 0 16806 NULL
152291 +enable_so_spu_subctxt_cnt_qib_user_info_16810 spu_subctxt_cnt qib_user_info 0 16810 NULL nohasharray
152292 +enable_so_iscsit_map_iovec_fndecl_16810 iscsit_map_iovec fndecl 4-3-0 16810 &enable_so_spu_subctxt_cnt_qib_user_info_16810
152293 +enable_so_diva_xdi_read_fndecl_16814 diva_xdi_read fndecl 0 16814 NULL
152294 +enable_so_offset_btrfs_disk_key_16819 offset btrfs_disk_key 0 16819 NULL
152295 +enable_so_vxlan_gro_remcsum_fndecl_16823 vxlan_gro_remcsum fndecl 5-4-2 16823 NULL
152296 +enable_so_count_range_bits_fndecl_16830 count_range_bits fndecl 0-3 16830 NULL
152297 +enable_so_audit_send_reply_fndecl_16835 audit_send_reply fndecl 7 16835 NULL
152298 +enable_so_max_gen_ptrs_vardecl_net_namespace_c_16838 max_gen_ptrs vardecl_net_namespace.c 0 16838 NULL
152299 +enable_so_esrt_data_size_vardecl_esrt_c_16842 esrt_data_size vardecl_esrt.c 0 16842 NULL nohasharray
152300 +enable_so_alignment_ubi_mkvol_req_16842 alignment ubi_mkvol_req 0 16842 &enable_so_esrt_data_size_vardecl_esrt_c_16842
152301 +enable_so_tx_headroom_nfc_digital_dev_16844 tx_headroom nfc_digital_dev 0 16844 NULL
152302 +enable_so_ccp_do_cmac_update_fndecl_16848 ccp_do_cmac_update fndecl 2 16848 NULL
152303 +enable_so_base_jfs_log_16858 base jfs_log 0 16858 NULL
152304 +enable_so_ieee80211_if_read_dot11MeshHWMPactivePathTimeout_fndecl_16859 ieee80211_if_read_dot11MeshHWMPactivePathTimeout fndecl 3 16859 NULL
152305 +enable_so_radeon_bo_create_fndecl_16863 radeon_bo_create fndecl 2 16863 NULL
152306 +enable_so_no_channels_ltr501_chip_info_16866 no_channels ltr501_chip_info 0 16866 NULL nohasharray
152307 +enable_so_cnic_alloc_new_id_fndecl_16866 cnic_alloc_new_id fndecl 0 16866 &enable_so_no_channels_ltr501_chip_info_16866
152308 +enable_so_drm_property_create_blob_fndecl_16869 drm_property_create_blob fndecl 2 16869 NULL
152309 +enable_so_size_nvs_page_16880 size nvs_page 0 16880 NULL
152310 +enable_so_cik_get_csb_size_fndecl_16882 cik_get_csb_size fndecl 0 16882 NULL
152311 +enable_so__ore_add_stripe_unit_fndecl_16884 _ore_add_stripe_unit fndecl 3-6 16884 NULL nohasharray
152312 +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
152313 +enable_so_from_offset_xt_string_info_16886 from_offset xt_string_info 0 16886 NULL nohasharray
152314 +enable_so_dma_buf_size_ddb_output_16886 dma_buf_size ddb_output 0 16886 &enable_so_from_offset_xt_string_info_16886
152315 +enable_so_sl_change_mtu_fndecl_16887 sl_change_mtu fndecl 2 16887 NULL
152316 +enable_so_register_sound_special_device_fndecl_16891 register_sound_special_device fndecl 2 16891 NULL nohasharray
152317 +enable_so_audmux_read_file_fndecl_16891 audmux_read_file fndecl 3 16891 &enable_so_register_sound_special_device_fndecl_16891
152318 +enable_so_buf_sz_ath10k_pci_pipe_16896 buf_sz ath10k_pci_pipe 0 16896 NULL
152319 +enable_so_ncbflooders_vardecl_rcutorture_c_16899 ncbflooders vardecl_rcutorture.c 0 16899 NULL
152320 +enable_so_smk_write_load_self_fndecl_16901 smk_write_load_self fndecl 3 16901 NULL
152321 +enable_so_cqe_size_mlx4_caps_16902 cqe_size mlx4_caps 0 16902 NULL
152322 +enable_so_integrity_digsig_verify_fndecl_16903 integrity_digsig_verify fndecl 3 16903 NULL
152323 +enable_so_msi2500_ctrl_msg_fndecl_16907 msi2500_ctrl_msg fndecl 0 16907 NULL
152324 +enable_so_n_ai_urbs_usbduxsigma_private_16912 n_ai_urbs usbduxsigma_private 0 16912 NULL
152325 +enable_so_tx_ring_order_vardecl_main_c_16915 tx_ring_order vardecl_main.c 0 16915 NULL
152326 +enable_so_fsnotify_fndecl_16916 fsnotify fndecl 0 16916 NULL nohasharray
152327 +enable_so_idx_mxser_board_16916 idx mxser_board 0 16916 &enable_so_fsnotify_fndecl_16916
152328 +enable_so_geneve_build_header_fndecl_16917 geneve_build_header fndecl 4 16917 NULL
152329 +enable_so_bpf_program_num_elem_xt_bpf_info_16920 bpf_program_num_elem xt_bpf_info 0 16920 NULL
152330 +enable_so_cont_size_rock_state_16925 cont_size rock_state 0 16925 NULL
152331 +enable_so_snd_rawmidi_transmit_fndecl_16928 snd_rawmidi_transmit fndecl 0-3 16928 NULL
152332 +enable_so_sys_mbind_fndecl_16933 sys_mbind fndecl 2-1-5 16933 NULL
152333 +enable_so_size_intel_ringbuffer_16937 size intel_ringbuffer 0 16937 NULL
152334 +enable_so_vidioc_dqbuf_fndecl_16948 vidioc_dqbuf fndecl 0 16948 NULL
152335 +enable_so_ath10k_wmi_alloc_skb_fndecl_16949 ath10k_wmi_alloc_skb fndecl 2 16949 NULL
152336 +enable_so_len_pcan_usb_pro_rxmsg_16950 len pcan_usb_pro_rxmsg 0 16950 NULL
152337 +enable_so_intel_framebuffer_pitch_for_width_fndecl_16956 intel_framebuffer_pitch_for_width fndecl 0-2-1 16956 NULL
152338 +enable_so_admin_mtu_ipoib_dev_priv_16960 admin_mtu ipoib_dev_priv 0 16960 NULL
152339 +enable_so_vcs_read_fndecl_16962 vcs_read fndecl 3 16962 NULL
152340 +enable_so_minor_oss_minor_dev_16965 minor oss_minor_dev 0 16965 NULL
152341 +enable_so_cifs_sync_write_fndecl_16972 cifs_sync_write fndecl 6 16972 NULL
152342 +enable_so_fat_reserved_fat_bios_param_block_16977 fat_reserved fat_bios_param_block 0 16977 NULL
152343 +enable_so_virtio_gpu_alloc_cmd_fndecl_16978 virtio_gpu_alloc_cmd fndecl 3 16978 NULL
152344 +enable_so_size_drm_vmw_shader_create_arg_16979 size drm_vmw_shader_create_arg 0 16979 NULL
152345 +enable_so_inquiry_len_scsi_device_16981 inquiry_len scsi_device 0 16981 NULL nohasharray
152346 +enable_so_num_tx_queues_ixgbe_adapter_16981 num_tx_queues ixgbe_adapter 0 16981 &enable_so_inquiry_len_scsi_device_16981
152347 +enable_so_zlib_uncompress_fndecl_16988 zlib_uncompress fndecl 6-5 16988 NULL
152348 +enable_so_tt3650_ci_msg_locked_fndecl_16990 tt3650_ci_msg_locked fndecl 4 16990 NULL
152349 +enable_so_iser_rcv_completion_fndecl_16995 iser_rcv_completion fndecl 2 16995 NULL nohasharray
152350 +enable_so_src_base_apei_exec_context_16995 src_base apei_exec_context 0 16995 &enable_so_iser_rcv_completion_fndecl_16995
152351 +enable_so_endp_out2_zd1201_16998 endp_out2 zd1201 0 16998 NULL
152352 +enable_so_be_fill_vf_res_template_fndecl_16999 be_fill_vf_res_template fndecl 3 16999 NULL
152353 +enable_so_cifs_min_rcv_vardecl_17001 cifs_min_rcv vardecl 0 17001 NULL
152354 +enable_so_id_rtc_device_17005 id rtc_device 0 17005 NULL
152355 +enable_so_snd_hdac_bus_exec_verb_fndecl_17009 snd_hdac_bus_exec_verb fndecl 0 17009 NULL
152356 +enable_so_consumed_unix_skb_parms_17012 consumed unix_skb_parms 0 17012 NULL
152357 +enable_so_ds_segment_shift_logfs_disk_super_17013 ds_segment_shift logfs_disk_super 0 17013 NULL
152358 +enable_so_u132_hcd_abandon_urb_fndecl_17016 u132_hcd_abandon_urb fndecl 4 17016 NULL
152359 +enable_so_error_param2_vardecl_einj_c_17022 error_param2 vardecl_einj.c 0 17022 NULL nohasharray
152360 +enable_so_num_pads_media_entity_17022 num_pads media_entity 0 17022 &enable_so_error_param2_vardecl_einj_c_17022
152361 +enable_so_ext4_mb_load_buddy_fndecl_17030 ext4_mb_load_buddy fndecl 0-2 17030 NULL
152362 +enable_so_rx_buf_len_i40e_ring_17034 rx_buf_len i40e_ring 0 17034 NULL
152363 +enable_so_hw_context_size_drm_i915_private_17036 hw_context_size drm_i915_private 0 17036 NULL
152364 +enable_so_inuse_kmem_cache_17038 inuse kmem_cache 0 17038 NULL
152365 +enable_so_reiserfs_sync_file_fndecl_17045 reiserfs_sync_file fndecl 2-3 17045 NULL
152366 +enable_so_alloc_targets_fndecl_17049 alloc_targets fndecl 2 17049 NULL nohasharray
152367 +enable_so_qla4xxx_post_ping_evt_work_fndecl_17049 qla4xxx_post_ping_evt_work fndecl 4 17049 &enable_so_alloc_targets_fndecl_17049
152368 +enable_so_spi_write_then_read_fndecl_17050 spi_write_then_read fndecl 3-5 17050 NULL
152369 +enable_so_ext4_ext_map_blocks_fndecl_17053 ext4_ext_map_blocks fndecl 0 17053 NULL nohasharray
152370 +enable_so_max_sge_rds_ib_device_17053 max_sge rds_ib_device 0 17053 &enable_so_ext4_ext_map_blocks_fndecl_17053
152371 +enable_so_xstate_size_vardecl_17054 xstate_size vardecl 0 17054 NULL
152372 +enable_so_command_setcompressiontarget_fndecl_17055 command_setcompressiontarget fndecl 0 17055 NULL
152373 +enable_so_ufx_submit_urb_fndecl_17065 ufx_submit_urb fndecl 3 17065 NULL
152374 +enable_so_venus_lookup_fndecl_17066 venus_lookup fndecl 4 17066 NULL
152375 +enable_so_number_of_packets_usbip_header_cmd_submit_17069 number_of_packets usbip_header_cmd_submit 0 17069 NULL
152376 +enable_so_ext2_commit_chunk_fndecl_17074 ext2_commit_chunk fndecl 3 17074 NULL
152377 +enable_so_vmbus_sendpacket_pagebuffer_ctl_fndecl_17076 vmbus_sendpacket_pagebuffer_ctl fndecl 3-5 17076 NULL
152378 +enable_so_offset_xen_netif_tx_request_17081 offset xen_netif_tx_request 0 17081 NULL
152379 +enable_so_rsp_que_len_qla_hw_data_17082 rsp_que_len qla_hw_data 0 17082 NULL nohasharray
152380 +enable_so_ax88179_read_cmd_fndecl_17082 ax88179_read_cmd fndecl 5 17082 &enable_so_rsp_que_len_qla_hw_data_17082
152381 +enable_so_ccp_prepare_data_fndecl_17091 ccp_prepare_data fndecl 4 17091 NULL
152382 +enable_so_xfs_file_fallocate_fndecl_17093 xfs_file_fallocate fndecl 3-4 17093 NULL
152383 +enable_so_obfuscate_tx_buffer_fndecl_17095 obfuscate_tx_buffer fndecl 0-2 17095 NULL
152384 +enable_so_size_ipack_region_17100 size ipack_region 0 17100 NULL nohasharray
152385 +enable_so_phys_base_fore200e_17100 phys_base fore200e 0 17100 &enable_so_size_ipack_region_17100
152386 +enable_so_ocfs2_xattr_trusted_set_fndecl_17102 ocfs2_xattr_trusted_set fndecl 4 17102 NULL nohasharray
152387 +enable_so_ib_uverbs_resize_cq_fndecl_17102 ib_uverbs_resize_cq fndecl 3 17102 &enable_so_ocfs2_xattr_trusted_set_fndecl_17102 nohasharray
152388 +enable_so_nr_voices_seq_oss_synth_17102 nr_voices seq_oss_synth 0 17102 &enable_so_ib_uverbs_resize_cq_fndecl_17102
152389 +enable_so_cx18_queue_get_mdl_fndecl_17103 cx18_queue_get_mdl fndecl 3 17103 NULL
152390 +enable_so_dlm_user_request_fndecl_17104 dlm_user_request fndecl 6 17104 NULL nohasharray
152391 +enable_so_len_st_fifo_entry_17104 len st_fifo_entry 0 17104 &enable_so_dlm_user_request_fndecl_17104 nohasharray
152392 +enable_so_ro_step_fndecl_17104 ro_step fndecl 2 17104 &enable_so_len_st_fifo_entry_17104
152393 +enable_so_sdio_readsb_fndecl_17108 sdio_readsb fndecl 4 17108 NULL
152394 +enable_so_count_stframe_17112 count stframe 0 17112 NULL
152395 +enable_so_minors_gendisk_17113 minors gendisk 0 17113 NULL
152396 +enable_so_zoneshift_alauda_media_info_17115 zoneshift alauda_media_info 0 17115 NULL
152397 +enable_so_xfs_iomap_prealloc_size_fndecl_17118 xfs_iomap_prealloc_size fndecl 3 17118 NULL
152398 +enable_so_s_size_ipath_qp_17119 s_size ipath_qp 0 17119 NULL
152399 +enable_so_sample_rate_pcxhr_mgr_17120 sample_rate pcxhr_mgr 0 17120 NULL
152400 +enable_so_size_nvkm_gpuobj_class_17128 size nvkm_gpuobj_class 0 17128 NULL
152401 +enable_so_in___kfifo_17131 in __kfifo 0 17131 NULL nohasharray
152402 +enable_so_hci_sock_recvmsg_fndecl_17131 hci_sock_recvmsg fndecl 3 17131 &enable_so_in___kfifo_17131
152403 +enable_so_nilfs_sufile_do_set_error_fndecl_17133 nilfs_sufile_do_set_error fndecl 2 17133 NULL
152404 +enable_so_fsl_edma_desc_residue_fndecl_17134 fsl_edma_desc_residue fndecl 0 17134 NULL
152405 +enable_so_lnet_ipif_enumerate_fndecl_17135 lnet_ipif_enumerate fndecl 0 17135 NULL
152406 +enable_so_irq_stmpe_variant_block_17137 irq stmpe_variant_block 0 17137 NULL
152407 +enable_so_csio_lun_qdepth_vardecl_17143 csio_lun_qdepth vardecl 0 17143 NULL
152408 +enable_so_blockSize_ms_lib_ctrl_17144 blockSize ms_lib_ctrl 0 17144 NULL
152409 +enable_so_irq_dma_yealink_dev_17149 irq_dma yealink_dev 0 17149 NULL
152410 +enable_so_acpi_ns_get_pathname_length_fndecl_17152 acpi_ns_get_pathname_length fndecl 0 17152 NULL
152411 +enable_so_unmap_region_fndecl_17166 unmap_region fndecl 1 17166 NULL nohasharray
152412 +enable_so_len_read_buffer_17166 len read_buffer 0 17166 &enable_so_unmap_region_fndecl_17166
152413 +enable_so_x86_clflush_size_cpuinfo_x86_17167 x86_clflush_size cpuinfo_x86 0 17167 NULL
152414 +enable_so_mcp251x_hw_tx_frame_fndecl_17170 mcp251x_hw_tx_frame fndecl 3 17170 NULL
152415 +enable_so_nvkm_instmem_alloc_fndecl_17172 nvkm_instmem_alloc fndecl 4-3 17172 NULL
152416 +enable_so_b43legacy_plcp_get_bitrate_idx_cck_fndecl_17174 b43legacy_plcp_get_bitrate_idx_cck fndecl 0 17174 NULL nohasharray
152417 +enable_so_skb_copy_expand_fndecl_17174 skb_copy_expand fndecl 2 17174 &enable_so_b43legacy_plcp_get_bitrate_idx_cck_fndecl_17174 nohasharray
152418 +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
152419 +enable_so_mtu_vnic_enet_config_17176 mtu vnic_enet_config 0 17176 NULL nohasharray
152420 +enable_so_ip_options_get_finish_fndecl_17176 ip_options_get_finish fndecl 4 17176 &enable_so_mtu_vnic_enet_config_17176
152421 +enable_so_start_block_swap_extent_17179 start_block swap_extent 0 17179 NULL
152422 +enable_so_offset_rbuf_info_17181 offset rbuf_info 0 17181 NULL
152423 +enable_so_luma_size_s5p_mfc_ctx_17182 luma_size s5p_mfc_ctx 0 17182 NULL
152424 +enable_so_pci_raw_set_power_state_fndecl_17186 pci_raw_set_power_state fndecl 0 17186 NULL
152425 +enable_so_sys_pread64_fndecl_17210 sys_pread64 fndecl 3 17210 NULL
152426 +enable_so_logical_blk_num_osst_tape_17216 logical_blk_num osst_tape 0 17216 NULL
152427 +enable_so_ud_clear_fndecl_17219 ud_clear fndecl 6-4-5-3 17219 NULL
152428 +enable_so_iwl_dbgfs_bt_cmd_read_fndecl_17225 iwl_dbgfs_bt_cmd_read fndecl 3 17225 NULL
152429 +enable_so_vsync_start_drm_display_mode_17229 vsync_start drm_display_mode 0 17229 NULL
152430 +enable_so_ioread32be_fndecl_17230 ioread32be fndecl 0 17230 NULL
152431 +enable_so___btrfs_add_ordered_extent_fndecl_17234 __btrfs_add_ordered_extent fndecl 4-2-5-3 17234 NULL
152432 +enable_so_vxge_device_register_fndecl_17243 vxge_device_register fndecl 4 17243 NULL nohasharray
152433 +enable_so_alloc_isa_irq_from_domain_fndecl_17243 alloc_isa_irq_from_domain fndecl 2 17243 &enable_so_vxge_device_register_fndecl_17243
152434 +enable_so_relocated_ramdisk_vardecl_17246 relocated_ramdisk vardecl 0 17246 NULL
152435 +enable_so_get_pdptr_kvm_mmu_17247 get_pdptr kvm_mmu 0 17247 NULL
152436 +enable_so_count_acpi_object_package_17250 count acpi_object_package 0 17250 NULL
152437 +enable_so_diva_os_copy_from_user_fndecl_17251 diva_os_copy_from_user fndecl 4 17251 NULL
152438 +enable_so_len_spi_ioc_transfer_17252 len spi_ioc_transfer 0 17252 NULL
152439 +enable_so_bm_resync_fo_drbd_device_17253 bm_resync_fo drbd_device 0 17253 NULL nohasharray
152440 +enable_so_LastFreeEUN_INFTLrecord_17253 LastFreeEUN INFTLrecord 0 17253 &enable_so_bm_resync_fo_drbd_device_17253
152441 +enable_so_sctp_v6_err_fndecl_17257 sctp_v6_err fndecl 5 17257 NULL nohasharray
152442 +enable_so_num_vfs_be_adapter_17257 num_vfs be_adapter 0 17257 &enable_so_sctp_v6_err_fndecl_17257
152443 +enable_so_tegra_spi_start_transfer_one_fndecl_17260 tegra_spi_start_transfer_one fndecl 0 17260 NULL
152444 +enable_so_page_to_skb_fndecl_17261 page_to_skb fndecl 5-4-6 17261 NULL
152445 +enable_so_line_uart_port_17263 line uart_port 0 17263 NULL
152446 +enable_so_fat_sec_per_clus_fat_bios_param_block_17264 fat_sec_per_clus fat_bios_param_block 0 17264 NULL
152447 +enable_so_subpgsize_vardecl_subpagetest_c_17265 subpgsize vardecl_subpagetest.c 0 17265 NULL
152448 +enable_so_alloc_candev_fndecl_17267 alloc_candev fndecl 2-1 17267 NULL
152449 +enable_so_bnx2_rx_skb_fndecl_17272 bnx2_rx_skb fndecl 5-4 17272 NULL nohasharray
152450 +enable_so_dfs_global_file_read_fndecl_17272 dfs_global_file_read fndecl 3 17272 &enable_so_bnx2_rx_skb_fndecl_17272 nohasharray
152451 +enable_so_offs_nand_bbt_descr_17272 offs nand_bbt_descr 0 17272 &enable_so_dfs_global_file_read_fndecl_17272
152452 +enable_so_w_stk_size_17273 w stk_size 0 17273 NULL nohasharray
152453 +enable_so_size_msdos_dir_entry_17273 size msdos_dir_entry 0 17273 &enable_so_w_stk_size_17273
152454 +enable_so_bnx2_nvram_write_fndecl_17277 bnx2_nvram_write fndecl 2-4 17277 NULL
152455 +enable_so_seq_buf_alloc_fndecl_17287 seq_buf_alloc fndecl 1 17287 NULL
152456 +enable_so_desired_speed_ide_drive_s_17293 desired_speed ide_drive_s 0 17293 NULL
152457 +enable_so_sup_segnum_nilfs_suinfo_update_17298 sup_segnum nilfs_suinfo_update 0 17298 NULL
152458 +enable_so_read_reg_sja1000_priv_17306 read_reg sja1000_priv 0 17306 NULL
152459 +enable_so_bytes_per_scan_line_vbe_mode_ib_17308 bytes_per_scan_line vbe_mode_ib 0 17308 NULL
152460 +enable_so_ib_ipath_qp_table_size_vardecl_ipath_verbs_c_17310 ib_ipath_qp_table_size vardecl_ipath_verbs.c 0 17310 NULL
152461 +enable_so_dlen_isdn_ppp_resetparams_17312 dlen isdn_ppp_resetparams 0 17312 NULL
152462 +enable_so_cfs_trace_dump_debug_buffer_usrstr_fndecl_17318 cfs_trace_dump_debug_buffer_usrstr fndecl 2 17318 NULL
152463 +enable_so_rpcrdma_create_chunks_fndecl_17322 rpcrdma_create_chunks fndecl 0 17322 NULL
152464 +enable_so___add_pages_fndecl_17323 __add_pages fndecl 3 17323 NULL
152465 +enable_so_top_mthca_alloc_17324 top mthca_alloc 0 17324 NULL nohasharray
152466 +enable_so_fw_memory_size_qla_hw_data_17324 fw_memory_size qla_hw_data 0 17324 &enable_so_top_mthca_alloc_17324
152467 +enable_so_blockmask_sddr09_card_info_17325 blockmask sddr09_card_info 0 17325 NULL
152468 +enable_so_mru_ipw_network_17329 mru ipw_network 0 17329 NULL
152469 +enable_so_reserved_eqs_mlx4_caps_17333 reserved_eqs mlx4_caps 0 17333 NULL
152470 +enable_so_freeblk_xfs_da_geometry_17334 freeblk xfs_da_geometry 0 17334 NULL
152471 +enable_so_dev_count_kvm_io_bus_17340 dev_count kvm_io_bus 0 17340 NULL
152472 +enable_so_MaxBuses__MSG_IOC_FACTS_REPLY_17350 MaxBuses _MSG_IOC_FACTS_REPLY 0 17350 NULL
152473 +enable_so_dvb_dmxdev_read_sec_fndecl_17351 dvb_dmxdev_read_sec fndecl 4 17351 NULL
152474 +enable_so_xfs_trans_get_efi_fndecl_17353 xfs_trans_get_efi fndecl 2 17353 NULL nohasharray
152475 +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
152476 +enable_so_tipc_alloc_entry_fndecl_17360 tipc_alloc_entry fndecl 2 17360 NULL
152477 +enable_so_udf_tgetblk_fndecl_17362 udf_tgetblk fndecl 2 17362 NULL nohasharray
152478 +enable_so_cxgb4i_max_connect_vardecl_cxgb4i_c_17362 cxgb4i_max_connect vardecl_cxgb4i.c 0 17362 &enable_so_udf_tgetblk_fndecl_17362
152479 +enable_so_config_desc_fndecl_17365 config_desc fndecl 0 17365 NULL
152480 +enable_so_extra_inflate_state_17367 extra inflate_state 0 17367 NULL
152481 +enable_so_nilfs_sufile_mark_dirty_fndecl_17370 nilfs_sufile_mark_dirty fndecl 2 17370 NULL nohasharray
152482 +enable_so_pn533_set_configuration_fndecl_17370 pn533_set_configuration fndecl 4 17370 &enable_so_nilfs_sufile_mark_dirty_fndecl_17370 nohasharray
152483 +enable_so_num_txd_qlcnic_adapter_17370 num_txd qlcnic_adapter 0 17370 &enable_so_pn533_set_configuration_fndecl_17370
152484 +enable_so_name_len_vardecl_initramfs_c_17373 name_len vardecl_initramfs.c 0 17373 NULL
152485 +enable_so_acl_len_nfs_getaclargs_17378 acl_len nfs_getaclargs 0 17378 NULL
152486 +enable_so_vram_total_vardecl_uvesafb_c_17381 vram_total vardecl_uvesafb.c 0 17381 NULL
152487 +enable_so_scatt_size_eata_info_17383 scatt_size eata_info 0 17383 NULL
152488 +enable_so_hw_hdr_len_cardstate_17385 hw_hdr_len cardstate 0 17385 NULL
152489 +enable_so_ata_read_log_page_fndecl_17386 ata_read_log_page fndecl 5 17386 NULL
152490 +enable_so_f_hidg_write_fndecl_17391 f_hidg_write fndecl 3 17391 NULL
152491 +enable_so_ext3_group_extend_fndecl_17396 ext3_group_extend fndecl 3 17396 NULL
152492 +enable_so_raw_issuer_size_pkcs7_parse_context_17399 raw_issuer_size pkcs7_parse_context 0 17399 NULL
152493 +enable_so_snd_hda_create_spdif_in_ctls_fndecl_17414 snd_hda_create_spdif_in_ctls fndecl 2 17414 NULL
152494 +enable_so_posix_acl_fix_xattr_userns_fndecl_17415 posix_acl_fix_xattr_userns fndecl 4 17415 NULL
152495 +enable_so_dlm_master_lookup_fndecl_17417 dlm_master_lookup fndecl 4 17417 NULL
152496 +enable_so_ufx_setup_modes_fndecl_17419 ufx_setup_modes fndecl 4 17419 NULL
152497 +enable_so_l2up_create_fndecl_17421 l2up_create fndecl 3 17421 NULL
152498 +enable_so_keys_jset_17429 keys jset 0 17429 NULL
152499 +enable_so_btrfs_cmp_data_prepare_fndecl_17436 btrfs_cmp_data_prepare fndecl 5 17436 NULL
152500 +enable_so_dd_fcvport_size_fc_function_template_17449 dd_fcvport_size fc_function_template 0 17449 NULL
152501 +enable_so_reply_size_ncp_server_17456 reply_size ncp_server 0 17456 NULL
152502 +enable_so_bufsz_kexec_segment_17458 bufsz kexec_segment 0 17458 NULL
152503 +enable_so___alloc_bootmem_node_nopanic_fndecl_17459 __alloc_bootmem_node_nopanic fndecl 3-2-4 17459 NULL
152504 +enable_so_bits_bgpio_chip_17461 bits bgpio_chip 0 17461 NULL
152505 +enable_so_cipso_v4_map_lvl_hton_fndecl_17481 cipso_v4_map_lvl_hton fndecl 0 17481 NULL
152506 +enable_so_sddr09_write_inplace_fndecl_17484 sddr09_write_inplace fndecl 4-3-6 17484 NULL nohasharray
152507 +enable_so_replace_fd_fndecl_17484 replace_fd fndecl 1 17484 &enable_so_sddr09_write_inplace_fndecl_17484
152508 +enable_so_e_block_mb_cache_entry_17485 e_block mb_cache_entry 0 17485 NULL
152509 +enable_so_mlx4_ib_reg_user_mr_fndecl_17492 mlx4_ib_reg_user_mr fndecl 2-3 17492 NULL
152510 +enable_so_qp_memcpy_from_queue_fndecl_17500 qp_memcpy_from_queue fndecl 5-4 17500 NULL
152511 +enable_so_user_buffer_offset_binder_proc_17508 user_buffer_offset binder_proc 0 17508 NULL
152512 +enable_so_invalidate_fndecl_17509 invalidate fndecl 4-3 17509 NULL
152513 +enable_so_read_dst_fndecl_17513 read_dst fndecl 3 17513 NULL nohasharray
152514 +enable_so_npages_free_dma_pool_17513 npages_free dma_pool 0 17513 &enable_so_read_dst_fndecl_17513
152515 +enable_so_dvb_dmxdev_init_fndecl_17523 dvb_dmxdev_init fndecl 0 17523 NULL
152516 +enable_so_id_rtsx_pcr_17526 id rtsx_pcr 0 17526 NULL
152517 +enable_so_ext4_iget_fndecl_17527 ext4_iget fndecl 2 17527 NULL
152518 +enable_so_mei_read_fndecl_17528 mei_read fndecl 3 17528 NULL
152519 +enable_so_max3421_urb_dequeue_fndecl_17530 max3421_urb_dequeue fndecl 3 17530 NULL
152520 +enable_so_offset_icmp_bxm_17531 offset icmp_bxm 0 17531 NULL
152521 +enable_so_start_nilfs_write_info_17534 start nilfs_write_info 0 17534 NULL
152522 +enable_so_recv_mesg_maxlen_netns_ipvs_17535 recv_mesg_maxlen netns_ipvs 0 17535 NULL
152523 +enable_so_encode_nfspath3_fndecl_17536 encode_nfspath3 fndecl 3 17536 NULL nohasharray
152524 +enable_so_rndis_set_oid_fndecl_17536 rndis_set_oid fndecl 4 17536 &enable_so_encode_nfspath3_fndecl_17536
152525 +enable_so_how_many_channels_fndecl_17540 how_many_channels fndecl 0 17540 NULL
152526 +enable_so_wdm_read_fndecl_17542 wdm_read fndecl 3 17542 NULL
152527 +enable_so_fb_alloc_cmap_fndecl_17545 fb_alloc_cmap fndecl 2 17545 NULL
152528 +enable_so_root_cluster_msdos_sb_info_17547 root_cluster msdos_sb_info 0 17547 NULL
152529 +enable_so_mlx4_en_rx_skb_fndecl_17554 mlx4_en_rx_skb fndecl 4 17554 NULL
152530 +enable_so_mchip_comp_read_frame_fndecl_17555 mchip_comp_read_frame fndecl 0-1 17555 NULL
152531 +enable_so_channels_cardstate_17560 channels cardstate 0 17560 NULL
152532 +enable_so_qcaspi_read_legacy_fndecl_17563 qcaspi_read_legacy fndecl 3 17563 NULL
152533 +enable_so_lcd_vsync_len_atyfb_par_17565 lcd_vsync_len atyfb_par 0 17565 NULL
152534 +enable_so_stack_size_ahd_softc_17574 stack_size ahd_softc 0 17574 NULL
152535 +enable_so_wMaxPacketSize_usb_rpipe_descriptor_17578 wMaxPacketSize usb_rpipe_descriptor 0 17578 NULL
152536 +enable_so_sb_fs_size_hpfs_sb_info_17581 sb_fs_size hpfs_sb_info 0 17581 NULL
152537 +enable_so_SyS_semtimedop_fndecl_17584 SyS_semtimedop fndecl 3 17584 NULL
152538 +enable_so_reg_bytes_regmap_format_17598 reg_bytes regmap_format 0 17598 NULL
152539 +enable_so_disk_num_bytes_btrfs_file_extent_item_17599 disk_num_bytes btrfs_file_extent_item 0 17599 NULL
152540 +enable_so_qlf_len_xfs_dq_logformat_17603 qlf_len xfs_dq_logformat 0 17603 NULL nohasharray
152541 +enable_so_ent_bread_fatent_operations_17603 ent_bread fatent_operations 0 17603 &enable_so_qlf_len_xfs_dq_logformat_17603
152542 +enable_so_isoc_ep_stk_camera_17604 isoc_ep stk_camera 0 17604 NULL nohasharray
152543 +enable_so_ext3_iget_fndecl_17604 ext3_iget fndecl 2 17604 &enable_so_isoc_ep_stk_camera_17604
152544 +enable_so_min_alloc_order_gen_pool_17628 min_alloc_order gen_pool 0 17628 NULL
152545 +enable_so_num_peri_pl330_config_17630 num_peri pl330_config 0 17630 NULL
152546 +enable_so_ctxts_extrabuf_qib_devdata_17634 ctxts_extrabuf qib_devdata 0 17634 NULL
152547 +enable_so_last_used_idx_vringh_17635 last_used_idx vringh 0 17635 NULL
152548 +enable_so_video_linelength_sis_video_info_17642 video_linelength sis_video_info 0 17642 NULL
152549 +enable_so_wl12xx_sdio_raw_read_fndecl_17648 wl12xx_sdio_raw_read fndecl 4 17648 NULL
152550 +enable_so_buf_len_ceph_none_authorizer_17652 buf_len ceph_none_authorizer 0 17652 NULL nohasharray
152551 +enable_so_dvb_dmx_init_fndecl_17652 dvb_dmx_init fndecl 0 17652 &enable_so_buf_len_ceph_none_authorizer_17652
152552 +enable_so_size_mem_array_17655 size mem_array 0 17655 NULL
152553 +enable_so_size_scsi_host_sg_pool_17661 size scsi_host_sg_pool 0 17661 NULL
152554 +enable_so_stereo_cmipci_sb_reg_17667 stereo cmipci_sb_reg 0 17667 NULL
152555 +enable_so_maybe_insert_hole_fndecl_17668 maybe_insert_hole fndecl 4-3 17668 NULL
152556 +enable_so_vdma_mem_alloc_fndecl_17672 vdma_mem_alloc fndecl 1 17672 NULL
152557 +enable_so_wl1251_cmd_template_set_fndecl_17679 wl1251_cmd_template_set fndecl 4 17679 NULL
152558 +enable_so_memory_block_size_probed_vardecl_init_64_c_17683 memory_block_size_probed vardecl_init_64.c 0 17683 NULL nohasharray
152559 +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
152560 +enable_so_iov_misc_count_iscsi_cmd_17684 iov_misc_count iscsi_cmd 0 17684 NULL nohasharray
152561 +enable_so_NFTL_formatblock_fndecl_17684 NFTL_formatblock fndecl 2 17684 &enable_so_iov_misc_count_iscsi_cmd_17684
152562 +enable_so_ivtv_copy_buf_to_user_fndecl_17692 ivtv_copy_buf_to_user fndecl 4 17692 NULL
152563 +enable_so_opcfg_ofs_cyttsp4_sysinfo_ofs_17693 opcfg_ofs cyttsp4_sysinfo_ofs 0 17693 NULL
152564 +enable_so_bytes_left_ccp_sg_workarea_17701 bytes_left ccp_sg_workarea 0 17701 NULL
152565 +enable_so__snd_pcm_hw_param_max_fndecl_17702 _snd_pcm_hw_param_max fndecl 3 17702 NULL
152566 +enable_so_rx_dma_buf_sz_altera_tse_private_17708 rx_dma_buf_sz altera_tse_private 0 17708 NULL
152567 +enable_so_u132_urb_dequeue_fndecl_17714 u132_urb_dequeue fndecl 3 17714 NULL
152568 +enable_so_csio_wr_alloc_q_fndecl_17717 csio_wr_alloc_q fndecl 3-2-6 17717 NULL nohasharray
152569 +enable_so_SyS_setgroups_fndecl_17717 SyS_setgroups fndecl 1 17717 &enable_so_csio_wr_alloc_q_fndecl_17717
152570 +enable_so_rx_max_ring_bnx2_17721 rx_max_ring bnx2 0 17721 NULL
152571 +enable_so_st21nfca_hci_probe_fndecl_17724 st21nfca_hci_probe fndecl 6-4 17724 NULL
152572 +enable_so_snd_efw_command_get_phys_meters_fndecl_17725 snd_efw_command_get_phys_meters fndecl 3 17725 NULL
152573 +enable_so_qp_host_get_user_memory_fndecl_17726 qp_host_get_user_memory fndecl 1-2 17726 NULL
152574 +enable_so_nilfs_cpfile_delete_checkpoint_fndecl_17728 nilfs_cpfile_delete_checkpoint fndecl 2 17728 NULL
152575 +enable_so_xdr_write_pages_fndecl_17729 xdr_write_pages fndecl 4-3 17729 NULL
152576 +enable_so_minor_video_device_17733 minor video_device 0 17733 NULL
152577 +enable_so_ios_per_ctrl_hba_parameters_17734 ios_per_ctrl hba_parameters 0 17734 NULL
152578 +enable_so_mqueue_read_file_fndecl_17735 mqueue_read_file fndecl 3 17735 NULL
152579 +enable_so_f_hidg_read_fndecl_17741 f_hidg_read fndecl 3 17741 NULL
152580 +enable_so_num_desc_blocks_fndecl_17744 num_desc_blocks fndecl 0-2 17744 NULL
152581 +enable_so_set_le_ih_k_offset_fndecl_17745 set_le_ih_k_offset fndecl 2 17745 NULL
152582 +enable_so_sock_no_sendpage_fndecl_17749 sock_no_sendpage fndecl 0-4 17749 NULL nohasharray
152583 +enable_so_pkg_len_hanwang_features_17749 pkg_len hanwang_features 0 17749 &enable_so_sock_no_sendpage_fndecl_17749
152584 +enable_so_sector_size_scsi_device_17750 sector_size scsi_device 0 17750 NULL
152585 +enable_so_cmd_per_lun_Scsi_Host_17757 cmd_per_lun Scsi_Host 0 17757 NULL
152586 +enable_so_g_token_size_fndecl_17759 g_token_size fndecl 0-2 17759 NULL nohasharray
152587 +enable_so_actual_length_spi_message_17759 actual_length spi_message 0 17759 &enable_so_g_token_size_fndecl_17759
152588 +enable_so_max_queues_fm10k_mac_info_17760 max_queues fm10k_mac_info 0 17760 NULL
152589 +enable_so_read_hwrng_17766 read hwrng 0 17766 NULL
152590 +enable_so_of_gpio_count_fndecl_17773 of_gpio_count fndecl 0 17773 NULL
152591 +enable_so_fbcon_prepare_logo_fndecl_17781 fbcon_prepare_logo fndecl 4-5 17781 NULL
152592 +enable_so___e820_update_range_fndecl_17791 __e820_update_range fndecl 2-3 17791 NULL
152593 +enable_so_usX2Y_audio_stream_new_fndecl_17792 usX2Y_audio_stream_new fndecl 2-3 17792 NULL nohasharray
152594 +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
152595 +enable_so_nf_nat_ipv6_manip_pkt_fndecl_17794 nf_nat_ipv6_manip_pkt fndecl 2 17794 NULL
152596 +enable_so_number_of_blocks_ms_boot_attr_info_17802 number_of_blocks ms_boot_attr_info 0 17802 NULL
152597 +enable_so_read_cam_control_dvb_ca_en50221_17812 read_cam_control dvb_ca_en50221 0 17812 NULL
152598 +enable_so_sr_read_cd_fndecl_17813 sr_read_cd fndecl 5 17813 NULL
152599 +enable_so_list_size_acpi_pnp_device_id_list_17814 list_size acpi_pnp_device_id_list 0 17814 NULL
152600 +enable_so_b_page_count_xfs_buf_17815 b_page_count xfs_buf 0 17815 NULL nohasharray
152601 +enable_so_acpi_unregister_gsi_ioapic_fndecl_17815 acpi_unregister_gsi_ioapic fndecl 1 17815 &enable_so_b_page_count_xfs_buf_17815
152602 +enable_so_posix_acl_fix_xattr_to_user_fndecl_17816 posix_acl_fix_xattr_to_user fndecl 2 17816 NULL
152603 +enable_so_snd_hda_override_conn_list_fndecl_17817 snd_hda_override_conn_list fndecl 3 17817 NULL nohasharray
152604 +enable_so_xenbus_file_write_fndecl_17817 xenbus_file_write fndecl 3 17817 &enable_so_snd_hda_override_conn_list_fndecl_17817
152605 +enable_so_tx_tx_start_null_frame_read_fndecl_17818 tx_tx_start_null_frame_read fndecl 3 17818 NULL
152606 +enable_so_i_blkbits_inode_17823 i_blkbits inode 0 17823 NULL
152607 +enable_so_tipc_recvmsg_fndecl_17825 tipc_recvmsg fndecl 3 17825 NULL
152608 +enable_so_SyS_mincore_fndecl_17834 SyS_mincore fndecl 1-2 17834 NULL
152609 +enable_so_max_sgl_entries_vardecl_mpt2sas_base_c_17839 max_sgl_entries vardecl_mpt2sas_base.c 0 17839 NULL
152610 +enable_so_qlcnic_sriov_alloc_bc_msg_fndecl_17846 qlcnic_sriov_alloc_bc_msg fndecl 2 17846 NULL
152611 +enable_so_mid_get_vbt_data_r10_fndecl_17847 mid_get_vbt_data_r10 fndecl 2 17847 NULL
152612 +enable_so_xenvif_count_requests_fndecl_17849 xenvif_count_requests fndecl 0 17849 NULL
152613 +enable_so_cifs_lockv_fndecl_17853 cifs_lockv fndecl 6-5 17853 NULL
152614 +enable_so_dbg_fixed_rate_lq_sta_pers_17854 dbg_fixed_rate lq_sta_pers 0 17854 NULL
152615 +enable_so_discard_alignment_queue_limits_17856 discard_alignment queue_limits 0 17856 NULL
152616 +enable_so_preferred_minor_md_rdev_17857 preferred_minor md_rdev 0 17857 NULL
152617 +enable_so_mei_dbgfs_read_devstate_fndecl_17859 mei_dbgfs_read_devstate fndecl 3 17859 NULL
152618 +enable_so_current_table_count_acpi_table_list_17862 current_table_count acpi_table_list 0 17862 NULL
152619 +enable_so_bip_vcnt_bio_integrity_payload_17865 bip_vcnt bio_integrity_payload 0 17865 NULL
152620 +enable_so_fuse_get_req_for_background_fndecl_17874 fuse_get_req_for_background fndecl 2 17874 NULL nohasharray
152621 +enable_so_secondary_tail_adu_device_17874 secondary_tail adu_device 0 17874 &enable_so_fuse_get_req_for_background_fndecl_17874
152622 +enable_so_ucs2_strnlen_fndecl_17877 ucs2_strnlen fndecl 0 17877 NULL
152623 +enable_so_max_pkt_size_au0828_usb_isoc_ctl_17891 max_pkt_size au0828_usb_isoc_ctl 0 17891 NULL
152624 +enable_so_del_ba_param_set_host_cmd_ds_11n_delba_17899 del_ba_param_set host_cmd_ds_11n_delba 0 17899 NULL
152625 +enable_so_s_firstinodezone_sysv_sb_info_17901 s_firstinodezone sysv_sb_info 0 17901 NULL
152626 +enable_so_shortRetryLimit_ConfigRid_17906 shortRetryLimit ConfigRid 0 17906 NULL
152627 +enable_so_used_aead_ctx_17910 used aead_ctx 0 17910 NULL
152628 +enable_so_leb_start_ubifs_info_17911 leb_start ubifs_info 0 17911 NULL nohasharray
152629 +enable_so_arch_gnttab_valloc_fndecl_17911 arch_gnttab_valloc fndecl 2 17911 &enable_so_leb_start_ubifs_info_17911
152630 +enable_so_msb_write_block_fndecl_17912 msb_write_block fndecl 5 17912 NULL
152631 +enable_so_osd_req_read_sg_kern_fndecl_17913 osd_req_read_sg_kern fndecl 5 17913 NULL nohasharray
152632 +enable_so_sync_fence_alloc_fndecl_17913 sync_fence_alloc fndecl 1 17913 &enable_so_osd_req_read_sg_kern_fndecl_17913
152633 +enable_so_sg_pcopy_to_buffer_fndecl_17914 sg_pcopy_to_buffer fndecl 5-4 17914 NULL
152634 +enable_so_translate_compat_table_fndecl_17917 translate_compat_table fndecl 7 17917 NULL
152635 +enable_so_ipath_verbs_send_dma_fndecl_17922 ipath_verbs_send_dma fndecl 7-5-6-3 17922 NULL
152636 +enable_so_br_blockcount_xfs_bmbt_irec_17931 br_blockcount xfs_bmbt_irec 0 17931 NULL
152637 +enable_so___kfifo_dma_in_finish_r_fndecl_17938 __kfifo_dma_in_finish_r fndecl 3-2 17938 NULL
152638 +enable_so_mmio_base_sis_video_info_17941 mmio_base sis_video_info 0 17941 NULL
152639 +enable_so___vxge_hw_mempool_create_fndecl_17944 __vxge_hw_mempool_create fndecl 3-2-6-4 17944 NULL
152640 +enable_so_rtl2830_regmap_read_fndecl_17947 rtl2830_regmap_read fndecl 3-5 17947 NULL
152641 +enable_so_vb2_internal_dqbuf_fndecl_17949 vb2_internal_dqbuf fndecl 0 17949 NULL nohasharray
152642 +enable_so_cache_do_downcall_fndecl_17949 cache_do_downcall fndecl 3 17949 &enable_so_vb2_internal_dqbuf_fndecl_17949
152643 +enable_so_ath6kl_wmi_data_sync_send_fndecl_17951 ath6kl_wmi_data_sync_send fndecl 4 17951 NULL
152644 +enable_so_videobuf_dma_init_kernel_fndecl_17952 videobuf_dma_init_kernel fndecl 3 17952 NULL
152645 +enable_so_ieee80211_tx_radiotap_len_fndecl_17953 ieee80211_tx_radiotap_len fndecl 0 17953 NULL
152646 +enable_so_pch_uart_hal_read_fndecl_17954 pch_uart_hal_read fndecl 0 17954 NULL
152647 +enable_so_n_special_skd_device_17960 n_special skd_device 0 17960 NULL
152648 +enable_so_pkt_align_netvsc_device_17961 pkt_align netvsc_device 0 17961 NULL nohasharray
152649 +enable_so_cydata_size_cyttsp4_sysinfo_ofs_17961 cydata_size cyttsp4_sysinfo_ofs 0 17961 &enable_so_pkt_align_netvsc_device_17961
152650 +enable_so_scan_async_group_fndecl_17964 scan_async_group fndecl 3 17964 NULL
152651 +enable_so_do_tee_fndecl_17969 do_tee fndecl 3 17969 NULL
152652 +enable_so_qsfp_cks_fndecl_17970 qsfp_cks fndecl 2-0 17970 NULL
152653 +enable_so_ab3100_get_register_page_interruptible_fndecl_17972 ab3100_get_register_page_interruptible fndecl 4 17972 NULL
152654 +enable_so_length_ore_io_state_17977 length ore_io_state 0 17977 NULL
152655 +enable_so_nilfs_set_last_segment_fndecl_17983 nilfs_set_last_segment fndecl 2-4 17983 NULL
152656 +enable_so_data3_sisusb_command_17984 data3 sisusb_command 0 17984 NULL nohasharray
152657 +enable_so_pci_addr_of_pci_range_17984 pci_addr of_pci_range 0 17984 &enable_so_data3_sisusb_command_17984
152658 +enable_so_vector_msix_entry_17987 vector msix_entry 0 17987 NULL
152659 +enable_so_channels_tiadc_device_17992 channels tiadc_device 0 17992 NULL
152660 +enable_so_fill_inquiry_response_fndecl_17994 fill_inquiry_response fndecl 3 17994 NULL
152661 +enable_so_cipso_v4_gentag_enum_fndecl_17997 cipso_v4_gentag_enum fndecl 0 17997 NULL
152662 +enable_so_get_context_size_fndecl_17999 get_context_size fndecl 0 17999 NULL
152663 +enable_so_order_per_bit_cma_18000 order_per_bit cma 0 18000 NULL
152664 +enable_so_target_xcopy_read_source_fndecl_18003 target_xcopy_read_source fndecl 5 18003 NULL
152665 +enable_so_size_aper_size_info_8_18012 size aper_size_info_8 0 18012 NULL nohasharray
152666 +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
152667 +enable_so_request_key_async_fndecl_18013 request_key_async fndecl 4 18013 NULL
152668 +enable_so_rx_frag_size_vardecl_be_main_c_18017 rx_frag_size vardecl_be_main.c 0 18017 NULL
152669 +enable_so_raid56_parity_recover_fndecl_18019 raid56_parity_recover fndecl 4 18019 NULL
152670 +enable_so_wimax_msg_fndecl_18021 wimax_msg fndecl 4 18021 NULL
152671 +enable_so_cmdlog_vardecl_ipw2200_c_18024 cmdlog vardecl_ipw2200.c 0 18024 NULL
152672 +enable_so_sl811h_urb_dequeue_fndecl_18025 sl811h_urb_dequeue fndecl 3 18025 NULL nohasharray
152673 +enable_so_condc_tomoyo_condition_18025 condc tomoyo_condition 0 18025 &enable_so_sl811h_urb_dequeue_fndecl_18025
152674 +enable_so_rawv6_recvmsg_fndecl_18026 rawv6_recvmsg fndecl 3 18026 NULL nohasharray
152675 +enable_so_ceph_kvmalloc_fndecl_18026 ceph_kvmalloc fndecl 1 18026 &enable_so_rawv6_recvmsg_fndecl_18026
152676 +enable_so_mq_msgsize_max_ipc_namespace_18027 mq_msgsize_max ipc_namespace 0 18027 NULL nohasharray
152677 +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
152678 +enable_so_splice_read_file_operations_18028 splice_read file_operations 0 18028 NULL
152679 +enable_so_start_data_mm_struct_18029 start_data mm_struct 0 18029 NULL
152680 +enable_so_fip_dl_len_fip_header_18032 fip_dl_len fip_header 0 18032 NULL
152681 +enable_so_fi_ino_nilfs_finfo_18034 fi_ino nilfs_finfo 0 18034 NULL
152682 +enable_so_copy_items_fndecl_18039 copy_items fndecl 7 18039 NULL
152683 +enable_so_virtio_gpu_cmd_transfer_to_host_2d_fndecl_18040 virtio_gpu_cmd_transfer_to_host_2d fndecl 5-4 18040 NULL
152684 +enable_so_read_device_fndecl_18043 read_device fndecl 3 18043 NULL
152685 +enable_so_ld_usb_write_fndecl_18045 ld_usb_write fndecl 3 18045 NULL
152686 +enable_so_len_ib_ucm_private_data_18046 len ib_ucm_private_data 0 18046 NULL
152687 +enable_so_xfer_len_iscsi_seq_18047 xfer_len iscsi_seq 0 18047 NULL
152688 +enable_so_sctp_make_op_error_fndecl_18050 sctp_make_op_error fndecl 5-6 18050 NULL
152689 +enable_so_ts_packet_size_cx23885_tsport_18052 ts_packet_size cx23885_tsport 0 18052 NULL
152690 +enable_so_rmsg_pgcnt_hv_netvsc_packet_18054 rmsg_pgcnt hv_netvsc_packet 0 18054 NULL
152691 +enable_so_sll_halen_sockaddr_ll_18063 sll_halen sockaddr_ll 0 18063 NULL
152692 +enable_so_ipath_get_base_info_fndecl_18064 ipath_get_base_info fndecl 3 18064 NULL
152693 +enable_so_beacon_interval_read_fndecl_18080 beacon_interval_read fndecl 3 18080 NULL
152694 +enable_so_req_ie_len_brcmf_cfg80211_connect_info_18083 req_ie_len brcmf_cfg80211_connect_info 0 18083 NULL nohasharray
152695 +enable_so_add_wpa_key_fndecl_18083 add_wpa_key fndecl 3 18083 &enable_so_req_ie_len_brcmf_cfg80211_connect_info_18083
152696 +enable_so_bits_per_pixel_drm_framebuffer_18087 bits_per_pixel drm_framebuffer 0 18087 NULL
152697 +enable_so_di_nextents_xfs_icdinode_18090 di_nextents xfs_icdinode 0 18090 NULL
152698 +enable_so_inode2sd_fndecl_18094 inode2sd fndecl 3 18094 NULL
152699 +enable_so_do_async_mmap_readahead_fndecl_18112 do_async_mmap_readahead fndecl 5 18112 NULL nohasharray
152700 +enable_so_readcount_usblp_18112 readcount usblp 0 18112 &enable_so_do_async_mmap_readahead_fndecl_18112
152701 +enable_so_addr_width_fsl_edma_slave_config_18115 addr_width fsl_edma_slave_config 0 18115 NULL
152702 +enable_so_befs_read_datastream_fndecl_18116 befs_read_datastream fndecl 3 18116 NULL
152703 +enable_so_mod_len_ccp_ecc_engine_18119 mod_len ccp_ecc_engine 0 18119 NULL nohasharray
152704 +enable_so_index_vardecl_ali5451_c_18119 index vardecl_ali5451.c 0 18119 &enable_so_mod_len_ccp_ecc_engine_18119
152705 +enable_so_send_mpa_reject_fndecl_18124 send_mpa_reject fndecl 3 18124 NULL
152706 +enable_so_ring_prod_per_user_data_18125 ring_prod per_user_data 0 18125 NULL
152707 +enable_so_bnx2x_num_queues_vardecl_18126 bnx2x_num_queues vardecl 0 18126 NULL
152708 +enable_so_pipeline_enc_rx_stat_fifo_int_read_fndecl_18128 pipeline_enc_rx_stat_fifo_int_read fndecl 3 18128 NULL
152709 +enable_so_tlb_preload_count_gru_create_context_req_18130 tlb_preload_count gru_create_context_req 0 18130 NULL nohasharray
152710 +enable_so_reshape_request_fndecl_18130 reshape_request fndecl 2 18130 &enable_so_tlb_preload_count_gru_create_context_req_18130
152711 +enable_so_fs_start_hfs_sb_info_18132 fs_start hfs_sb_info 0 18132 NULL
152712 +enable_so_num_ddr_avs_mthca_av_table_18139 num_ddr_avs mthca_av_table 0 18139 NULL
152713 +enable_so_byte_cnt_rx_desc_18142 byte_cnt rx_desc 0 18142 NULL
152714 +enable_so_i_iget5_block_iso_inode_info_18143 i_iget5_block iso_inode_info 0 18143 NULL
152715 +enable_so_softback_in_vardecl_fbcon_c_18148 softback_in vardecl_fbcon.c 0 18148 NULL nohasharray
152716 +enable_so_mtu_net_device_18148 mtu net_device 0 18148 &enable_so_softback_in_vardecl_fbcon_c_18148
152717 +enable_so_read_word_onenand_chip_18150 read_word onenand_chip 0 18150 NULL
152718 +enable_so_bmv_length_getbmapx_18151 bmv_length getbmapx 0 18151 NULL
152719 +enable_so_nfs_dreq_bytes_left_fndecl_18154 nfs_dreq_bytes_left fndecl 0 18154 NULL
152720 +enable_so_ocrdma_alloc_frmr_fndecl_18161 ocrdma_alloc_frmr fndecl 2 18161 NULL
152721 +enable_so_acpi_rs_get_resource_source_fndecl_18168 acpi_rs_get_resource_source fndecl 0 18168 NULL
152722 +enable_so_qlcnic_enable_msix_fndecl_18171 qlcnic_enable_msix fndecl 2 18171 NULL
152723 +enable_so_iscsi_sw_tcp_pdu_init_fndecl_18173 iscsi_sw_tcp_pdu_init fndecl 3-2 18173 NULL
152724 +enable_so_num_gpu_pages_radeon_gart_18177 num_gpu_pages radeon_gart 0 18177 NULL
152725 +enable_so_ocfs2_test_suballoc_bit_fndecl_18180 ocfs2_test_suballoc_bit fndecl 6-5-4 18180 NULL nohasharray
152726 +enable_so_process_rcvd_data_fndecl_18180 process_rcvd_data fndecl 3 18180 &enable_so_ocfs2_test_suballoc_bit_fndecl_18180
152727 +enable_so_offset_pktcdvd_device_18183 offset pktcdvd_device 0 18183 NULL
152728 +enable_so_aac_srcv_ioremap_fndecl_18192 aac_srcv_ioremap fndecl 2 18192 NULL
152729 +enable_so_natsemi_change_mtu_fndecl_18207 natsemi_change_mtu fndecl 2 18207 NULL
152730 +enable_so_sd_head_align_brcmfmac_sdio_platform_data_18210 sd_head_align brcmfmac_sdio_platform_data 0 18210 NULL
152731 +enable_so_ibmpex_query_sensor_count_fndecl_18214 ibmpex_query_sensor_count fndecl 0 18214 NULL nohasharray
152732 +enable_so_fw_size_intel_dmc_header_18214 fw_size intel_dmc_header 0 18214 &enable_so_ibmpex_query_sensor_count_fndecl_18214
152733 +enable_so_mpeg_read_fndecl_18215 mpeg_read fndecl 3 18215 NULL
152734 +enable_so___xfs_get_blocks_fndecl_18216 __xfs_get_blocks fndecl 2 18216 NULL
152735 +enable_so_ext3_bg_num_gdb_fndecl_18222 ext3_bg_num_gdb fndecl 0 18222 NULL nohasharray
152736 +enable_so_check_clk_sync_fndecl_18222 check_clk_sync fndecl 2 18222 &enable_so_ext3_bg_num_gdb_fndecl_18222
152737 +enable_so_xmit_cnt_mgsl_struct_18223 xmit_cnt mgsl_struct 0 18223 NULL
152738 +enable_so_ql_process_mac_rx_skb_fndecl_18226 ql_process_mac_rx_skb fndecl 5-4 18226 NULL
152739 +enable_so_rx_buf_size_bnx2_18228 rx_buf_size bnx2 0 18228 NULL
152740 +enable_so_ps_pspoll_max_apturn_read_fndecl_18232 ps_pspoll_max_apturn_read fndecl 3 18232 NULL
152741 +enable_so_btrfs_lookup_csums_range_fndecl_18235 btrfs_lookup_csums_range fndecl 2-3 18235 NULL
152742 +enable_so_vol_id_ubi_volume_18238 vol_id ubi_volume 0 18238 NULL
152743 +enable_so_ocfs2_insert_extent_fndecl_18242 ocfs2_insert_extent fndecl 4-3 18242 NULL
152744 +enable_so_payload_size_vmci_datagram_18243 payload_size vmci_datagram 0 18243 NULL
152745 +enable_so_cfg80211_calculate_bitrate_vht_fndecl_18246 cfg80211_calculate_bitrate_vht fndecl 0 18246 NULL
152746 +enable_so_next_free_transient_c_18248 next_free transient_c 0 18248 NULL
152747 +enable_so_inet_recv_error_fndecl_18251 inet_recv_error fndecl 3 18251 NULL
152748 +enable_so_rxf_size_bdx_priv_18260 rxf_size bdx_priv 0 18260 NULL
152749 +enable_so_posix_acl_xattr_count_fndecl_18262 posix_acl_xattr_count fndecl 1-0 18262 NULL
152750 +enable_so_video_proc_write_fndecl_18263 video_proc_write fndecl 3 18263 NULL
152751 +enable_so_rds_rdma_pages_fndecl_18268 rds_rdma_pages fndecl 0 18268 NULL
152752 +enable_so_end_extent_state_18270 end extent_state 0 18270 NULL
152753 +enable_so_sfi_check_table_fndecl_18279 sfi_check_table fndecl 1 18279 NULL
152754 +enable_so__nfs4_get_security_label_fndecl_18285 _nfs4_get_security_label fndecl 3 18285 NULL
152755 +enable_so_tda18218_rd_regs_fndecl_18293 tda18218_rd_regs fndecl 4-2 18293 NULL
152756 +enable_so_i915_parse_cmds_fndecl_18295 i915_parse_cmds fndecl 4-5 18295 NULL
152757 +enable_so_index_sg_device_18304 index sg_device 0 18304 NULL
152758 +enable_so_ocfs2_calc_refcount_meta_credits_fndecl_18305 ocfs2_calc_refcount_meta_credits fndecl 5-4 18305 NULL
152759 +enable_so_essid_len_iw_scan_req_18306 essid_len iw_scan_req 0 18306 NULL
152760 +enable_so_add_pfn_range_mapped_fndecl_18307 add_pfn_range_mapped fndecl 2-1 18307 NULL
152761 +enable_so_twl4030_init_irq_fndecl_18308 twl4030_init_irq fndecl 0 18308 NULL
152762 +enable_so_do_kmem_cache_create_fndecl_18316 do_kmem_cache_create fndecl 3-4-2 18316 NULL
152763 +enable_so_zone_spanned_pages_in_node_fndecl_18320 zone_spanned_pages_in_node fndecl 0-3-4 18320 NULL
152764 +enable_so_ieee80211_if_read_fndecl_18322 ieee80211_if_read fndecl 3 18322 NULL
152765 +enable_so_iwl_dbgfs_channels_read_fndecl_18323 iwl_dbgfs_channels_read fndecl 3 18323 NULL nohasharray
152766 +enable_so_rpipes_wahc_18323 rpipes wahc 0 18323 &enable_so_iwl_dbgfs_channels_read_fndecl_18323
152767 +enable_so_e820_end_of_low_ram_pfn_fndecl_18324 e820_end_of_low_ram_pfn fndecl 0 18324 NULL
152768 +enable_so_radeon_sa_bo_manager_init_fndecl_18326 radeon_sa_bo_manager_init fndecl 3 18326 NULL
152769 +enable_so_hdlcdrv_register_fndecl_18331 hdlcdrv_register fndecl 2 18331 NULL nohasharray
152770 +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
152771 +enable_so_tx_tx_done_data_read_fndecl_18332 tx_tx_done_data_read fndecl 3 18332 NULL nohasharray
152772 +enable_so_taps_oslec_state_18332 taps oslec_state 0 18332 &enable_so_tx_tx_done_data_read_fndecl_18332
152773 +enable_so_m_blockmask_xfs_mount_18334 m_blockmask xfs_mount 0 18334 NULL
152774 +enable_so_blk_alloc_flush_queue_fndecl_18340 blk_alloc_flush_queue fndecl 3 18340 NULL
152775 +enable_so_calc_pages_for_fndecl_18341 calc_pages_for fndecl 0-2-1 18341 NULL
152776 +enable_so_mon_bin_read_fndecl_18346 mon_bin_read fndecl 3 18346 NULL
152777 +enable_so_snd_cs4281_BA0_read_fndecl_18348 snd_cs4281_BA0_read fndecl 5 18348 NULL
152778 +enable_so_xfs_da_reada_buf_fndecl_18349 xfs_da_reada_buf fndecl 2 18349 NULL
152779 +enable_so_mb_cache_entry_insert_fndecl_18350 mb_cache_entry_insert fndecl 3 18350 NULL
152780 +enable_so_rfcomm_send_frame_fndecl_18352 rfcomm_send_frame fndecl 3 18352 NULL
152781 +enable_so_mgsl_load_tx_dma_buffer_fndecl_18355 mgsl_load_tx_dma_buffer fndecl 3 18355 NULL
152782 +enable_so_vm_pgoff_vm_area_struct_18357 vm_pgoff vm_area_struct 0 18357 NULL nohasharray
152783 +enable_so_exit_int_info_vmcb_control_area_18357 exit_int_info vmcb_control_area 0 18357 &enable_so_vm_pgoff_vm_area_struct_18357 nohasharray
152784 +enable_so_elfnotes_sz_vardecl_vmcore_c_18357 elfnotes_sz vardecl_vmcore.c 0 18357 &enable_so_exit_int_info_vmcb_control_area_18357
152785 +enable_so_lbs_rdrf_write_fndecl_18361 lbs_rdrf_write fndecl 3 18361 NULL
152786 +enable_so_ascii2desc_fndecl_18370 ascii2desc fndecl 0-3 18370 NULL
152787 +enable_so_ecryptfs_write_lower_fndecl_18373 ecryptfs_write_lower fndecl 4 18373 NULL
152788 +enable_so_extent_write_locked_range_fndecl_18375 extent_write_locked_range fndecl 3-4 18375 NULL nohasharray
152789 +enable_so_perf_output_sample_ustack_fndecl_18375 perf_output_sample_ustack fndecl 2 18375 &enable_so_extent_write_locked_range_fndecl_18375
152790 +enable_so_len_btrfs_ordered_extent_18377 len btrfs_ordered_extent 0 18377 NULL
152791 +enable_so_n_bssids_wmi_start_scan_arg_18378 n_bssids wmi_start_scan_arg 0 18378 NULL
152792 +enable_so_rss_size_port_info_18379 rss_size port_info 0 18379 NULL
152793 +enable_so_o_width_fimc_frame_18380 o_width fimc_frame 0 18380 NULL nohasharray
152794 +enable_so_dio_complete_fndecl_18380 dio_complete fndecl 0-2-3 18380 &enable_so_o_width_fimc_frame_18380
152795 +enable_so_xfs_rtany_summary_fndecl_18384 xfs_rtany_summary fndecl 5-3 18384 NULL
152796 +enable_so_reply_payload_rcv_len_fc_bsg_reply_18392 reply_payload_rcv_len fc_bsg_reply 0 18392 NULL
152797 +enable_so_spc_modesense_blockdesc_fndecl_18397 spc_modesense_blockdesc fndecl 0 18397 NULL
152798 +enable_so_signer_len_module_signature_18402 signer_len module_signature 0 18402 NULL
152799 +enable_so_veth_change_mtu_fndecl_18405 veth_change_mtu fndecl 2 18405 NULL
152800 +enable_so_max_psize_uac2_rtd_params_18407 max_psize uac2_rtd_params 0 18407 NULL
152801 +enable_so_proc_sessionid_read_fndecl_18412 proc_sessionid_read fndecl 3 18412 NULL nohasharray
152802 +enable_so_acm_alloc_minor_fndecl_18412 acm_alloc_minor fndecl 0 18412 &enable_so_proc_sessionid_read_fndecl_18412
152803 +enable_so_bNrChannels_uac2_as_header_descriptor_18413 bNrChannels uac2_as_header_descriptor 0 18413 NULL
152804 +enable_so_ath6kl_wmi_ap_set_mlme_fndecl_18414 ath6kl_wmi_ap_set_mlme fndecl 2 18414 NULL
152805 +enable_so_raw_seticmpfilter_fndecl_18427 raw_seticmpfilter fndecl 3 18427 NULL
152806 +enable_so_dlmfs_file_write_fndecl_18431 dlmfs_file_write fndecl 3 18431 NULL
152807 +enable_so_fb_find_mode_fndecl_18438 fb_find_mode fndecl 7 18438 NULL
152808 +enable_so_device_pci_device_id_18441 device pci_device_id 0 18441 NULL
152809 +enable_so_count_iov_iter_18447 count iov_iter 0 18447 NULL
152810 +enable_so_data_len_hfa384x_tx_frame_18449 data_len hfa384x_tx_frame 0 18449 NULL nohasharray
152811 +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
152812 +enable_so_size_ib_phys_buf_18455 size ib_phys_buf 0 18455 NULL
152813 +enable_so_copy_range_nfulnl_instance_18460 copy_range nfulnl_instance 0 18460 NULL
152814 +enable_so_get_next_ino_fndecl_18465 get_next_ino fndecl 0 18465 NULL
152815 +enable_so_bsize_jfs_sb_info_18477 bsize jfs_sb_info 0 18477 NULL
152816 +enable_so_xfs_free_extent_fndecl_18480 xfs_free_extent fndecl 2-3 18480 NULL
152817 +enable_so_exynos4_jpeg_get_stream_size_fndecl_18485 exynos4_jpeg_get_stream_size fndecl 0 18485 NULL
152818 +enable_so_mdata_ofsl_cyttsp4_sysinfo_data_18486 mdata_ofsl cyttsp4_sysinfo_data 0 18486 NULL
152819 +enable_so_mddev_find_fndecl_18492 mddev_find fndecl 1 18492 NULL
152820 +enable_so_xfs_efd_init_fndecl_18500 xfs_efd_init fndecl 3 18500 NULL
152821 +enable_so_sfi_map_table_fndecl_18501 sfi_map_table fndecl 1 18501 NULL
152822 +enable_so_wil_pmc_read_fndecl_18503 wil_pmc_read fndecl 3 18503 NULL
152823 +enable_so_vxfs_getfsh_fndecl_18506 vxfs_getfsh fndecl 2 18506 NULL
152824 +enable_so_kernfs_fop_write_fndecl_18508 kernfs_fop_write fndecl 3 18508 NULL
152825 +enable_so_chspc_adf4350_state_18514 chspc adf4350_state 0 18514 NULL
152826 +enable_so_iwl_queue_init_fndecl_18522 iwl_queue_init fndecl 2 18522 NULL nohasharray
152827 +enable_so_scat_entries_hif_scatter_req_18522 scat_entries hif_scatter_req 0 18522 &enable_so_iwl_queue_init_fndecl_18522
152828 +enable_so_ttm_bo_init_fndecl_18524 ttm_bo_init fndecl 3 18524 NULL
152829 +enable_so_tty_write_fndecl_18533 tty_write fndecl 3 18533 NULL
152830 +enable_so_tomoyo_update_domain_fndecl_18537 tomoyo_update_domain fndecl 2 18537 NULL
152831 +enable_so_progress_kcopyd_job_18540 progress kcopyd_job 0 18540 NULL
152832 +enable_so_sect_floppy_struct_18543 sect floppy_struct 0 18543 NULL
152833 +enable_so_i_size_high_ext4_inode_18545 i_size_high ext4_inode 0 18545 NULL
152834 +enable_so_ubi_leb_write_fndecl_18549 ubi_leb_write fndecl 5-4 18549 NULL
152835 +enable_so_xfs_efi_init_fndecl_18551 xfs_efi_init fndecl 2 18551 NULL
152836 +enable_so_inodes_squashfs_sb_info_18553 inodes squashfs_sb_info 0 18553 NULL nohasharray
152837 +enable_so_pci_enable_msix_exact_fndecl_18553 pci_enable_msix_exact fndecl 0 18553 &enable_so_inodes_squashfs_sb_info_18553
152838 +enable_so_ucode_size_bytes_common_firmware_header_18554 ucode_size_bytes common_firmware_header 0 18554 NULL
152839 +enable_so_memblock_reserve_fndecl_18556 memblock_reserve fndecl 1-2 18556 NULL
152840 +enable_so_cifs_security_flags_proc_write_fndecl_18559 cifs_security_flags_proc_write fndecl 3 18559 NULL
152841 +enable_so_riva_get_memlen_fndecl_18562 riva_get_memlen fndecl 0 18562 NULL
152842 +enable_so_change_protection_fndecl_18568 change_protection fndecl 3-2 18568 NULL
152843 +enable_so_rocker_group_l2_flood_fndecl_18575 rocker_group_l2_flood fndecl 5 18575 NULL
152844 +enable_so___max_nr_grant_frames_fndecl_18578 __max_nr_grant_frames fndecl 0 18578 NULL
152845 +enable_so_do_rc_ack_fndecl_18583 do_rc_ack fndecl 3 18583 NULL
152846 +enable_so_index_xtsplit_18586 index xtsplit 0 18586 NULL
152847 +enable_so_spidev_message_fndecl_18589 spidev_message fndecl 3 18589 NULL
152848 +enable_so_le_readq_fndecl_18598 le_readq fndecl 0 18598 NULL
152849 +enable_so_brcmu_pkt_buf_get_skb_fndecl_18599 brcmu_pkt_buf_get_skb fndecl 1 18599 NULL
152850 +enable_so_extLocation_extent_ad_18601 extLocation extent_ad 0 18601 NULL
152851 +enable_so_m25p80_write_fndecl_18603 m25p80_write fndecl 3 18603 NULL
152852 +enable_so_logfs_write_je_buf_fndecl_18606 logfs_write_je_buf fndecl 4 18606 NULL nohasharray
152853 +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
152854 +enable_so_size_uhid_input_req_18611 size uhid_input_req 0 18611 NULL
152855 +enable_so_befs_get_block_fndecl_18612 befs_get_block fndecl 2 18612 NULL
152856 +enable_so_dstpos_isdnhdlc_vars_18616 dstpos isdnhdlc_vars 0 18616 NULL nohasharray
152857 +enable_so_iwl_pcie_txq_init_fndecl_18616 iwl_pcie_txq_init fndecl 3 18616 &enable_so_dstpos_isdnhdlc_vars_18616
152858 +enable_so_ks8995_registers_write_fndecl_18618 ks8995_registers_write fndecl 5-6 18618 NULL
152859 +enable_so_oz_ep_alloc_fndecl_18624 oz_ep_alloc fndecl 1 18624 NULL
152860 +enable_so_ctxt_qib_ctxtdata_18626 ctxt qib_ctxtdata 0 18626 NULL
152861 +enable_so_sec_per_clus_fat_boot_sector_18633 sec_per_clus fat_boot_sector 0 18633 NULL
152862 +enable_so_store_bss_info_fndecl_18643 store_bss_info fndecl 7 18643 NULL
152863 +enable_so_fir16_create_fndecl_18645 fir16_create fndecl 3 18645 NULL
152864 +enable_so_rbd_parent_request_create_fndecl_18646 rbd_parent_request_create fndecl 2-3 18646 NULL
152865 +enable_so_speaker_outs_auto_pin_cfg_18648 speaker_outs auto_pin_cfg 0 18648 NULL
152866 +enable_so_ax25_sendmsg_fndecl_18649 ax25_sendmsg fndecl 3 18649 NULL
152867 +enable_so_bioset_create_fndecl_18655 bioset_create fndecl 2-1 18655 NULL
152868 +enable_so_ext2_xattr_set_fndecl_18656 ext2_xattr_set fndecl 5 18656 NULL nohasharray
152869 +enable_so_MaxDevices__MSG_IOC_FACTS_REPLY_18656 MaxDevices _MSG_IOC_FACTS_REPLY 0 18656 &enable_so_ext2_xattr_set_fndecl_18656
152870 +enable_so_compat_copy_entries_fndecl_18658 compat_copy_entries fndecl 0 18658 NULL
152871 +enable_so_gfs2_unstuffer_page_fndecl_18663 gfs2_unstuffer_page fndecl 3 18663 NULL
152872 +enable_so_num_ccells_per_conn_iscsi_kwqe_init1_18665 num_ccells_per_conn iscsi_kwqe_init1 0 18665 NULL nohasharray
152873 +enable_so_SYSC_init_module_fndecl_18665 SYSC_init_module fndecl 2 18665 &enable_so_num_ccells_per_conn_iscsi_kwqe_init1_18665
152874 +enable_so_nilfs_move_2nd_super_fndecl_18666 nilfs_move_2nd_super fndecl 2 18666 NULL
152875 +enable_so_iterate_extent_inodes_fndecl_18668 iterate_extent_inodes fndecl 2 18668 NULL
152876 +enable_so_len_xdr_netobj_18672 len xdr_netobj 0 18672 NULL
152877 +enable_so_pn_recvmsg_fndecl_18676 pn_recvmsg fndecl 3 18676 NULL
152878 +enable_so_nr_clk_regs_samsung_cmu_info_18678 nr_clk_regs samsung_cmu_info 0 18678 NULL
152879 +enable_so_ldm_frag_add_fndecl_18680 ldm_frag_add fndecl 2 18680 NULL
152880 +enable_so_used_chaoskey_18682 used chaoskey 0 18682 NULL nohasharray
152881 +enable_so_ocd_max_easize_obd_connect_data_18682 ocd_max_easize obd_connect_data 0 18682 &enable_so_used_chaoskey_18682
152882 +enable_so_domain_pci_sysdata_18686 domain pci_sysdata 0 18686 NULL
152883 +enable_so_i2c_wr_max_cx24120_config_18687 i2c_wr_max cx24120_config 0 18687 NULL nohasharray
152884 +enable_so_length_iwl_nvm_access_resp_18687 length iwl_nvm_access_resp 0 18687 &enable_so_i2c_wr_max_cx24120_config_18687
152885 +enable_so_bufpos_msm_perf_state_18702 bufpos msm_perf_state 0 18702 NULL
152886 +enable_so_num_tc_net_device_18703 num_tc net_device 0 18703 NULL
152887 +enable_so_size_rxdone_entry_desc_18704 size rxdone_entry_desc 0 18704 NULL
152888 +enable_so_den_step_snd_ratnum_18705 den_step snd_ratnum 0 18705 NULL nohasharray
152889 +enable_so_num_dup_tsns_sctp_tsnmap_18705 num_dup_tsns sctp_tsnmap 0 18705 &enable_so_den_step_snd_ratnum_18705
152890 +enable_so_ent_get_fatent_operations_18715 ent_get fatent_operations 0 18715 NULL
152891 +enable_so_read_reg_isar_hw_18717 read_reg isar_hw 0 18717 NULL
152892 +enable_so_feature_len_mic_device_desc_18719 feature_len mic_device_desc 0 18719 NULL
152893 +enable_so_iwl_dbgfs_status_read_fndecl_18720 iwl_dbgfs_status_read fndecl 3 18720 NULL
152894 +enable_so_max_pkeys_ib_device_attr_18722 max_pkeys ib_device_attr 0 18722 NULL
152895 +enable_so_trf7970a_read_cont_fndecl_18728 trf7970a_read_cont fndecl 4 18728 NULL
152896 +enable_so_rx_rate_rxpd_18729 rx_rate rxpd 0 18729 NULL nohasharray
152897 +enable_so_ioapic_copy_alloc_attr_fndecl_18729 ioapic_copy_alloc_attr fndecl 3 18729 &enable_so_rx_rate_rxpd_18729
152898 +enable_so_acpi_pcc_get_sqty_fndecl_18731 acpi_pcc_get_sqty fndecl 0 18731 NULL
152899 +enable_so_sfi_map_memory_fndecl_18732 sfi_map_memory fndecl 2-1 18732 NULL
152900 +enable_so_sinit_num_ostreams_sctp_cookie_18733 sinit_num_ostreams sctp_cookie 0 18733 NULL
152901 +enable_so_pkcs7_sig_note_serial_fndecl_18735 pkcs7_sig_note_serial fndecl 5 18735 NULL
152902 +enable_so_rdb_per_qp_mthca_profile_18738 rdb_per_qp mthca_profile 0 18738 NULL
152903 +enable_so_bulk_out_ipheth_device_18739 bulk_out ipheth_device 0 18739 NULL
152904 +enable_so_o2net_recv_tcp_msg_fndecl_18741 o2net_recv_tcp_msg fndecl 3-0 18741 NULL
152905 +enable_so_count_configs_fndecl_18742 count_configs fndecl 0 18742 NULL
152906 +enable_so_max_sges_ocrdma_qp_hwq_info_18746 max_sges ocrdma_qp_hwq_info 0 18746 NULL
152907 +enable_so_seq_end_offset_iscsi_cmd_18748 seq_end_offset iscsi_cmd 0 18748 NULL
152908 +enable_so_max_in_size_ims_pcu_18752 max_in_size ims_pcu 0 18752 NULL
152909 +enable_so_pipe_set_size_fndecl_18759 pipe_set_size fndecl 2 18759 NULL
152910 +enable_so_i_pos_msdos_inode_info_18764 i_pos msdos_inode_info 0 18764 NULL
152911 +enable_so_ppp_cp_parse_cr_fndecl_18765 ppp_cp_parse_cr fndecl 4 18765 NULL
152912 +enable_so_xdr_get_next_encode_buffer_fndecl_18770 xdr_get_next_encode_buffer fndecl 2 18770 NULL nohasharray
152913 +enable_so_adjust_memory_fndecl_18770 adjust_memory fndecl 3-4 18770 &enable_so_xdr_get_next_encode_buffer_fndecl_18770
152914 +enable_so_data_len_ieee80211_mgd_auth_data_18778 data_len ieee80211_mgd_auth_data 0 18778 NULL
152915 +enable_so_isdn_ppp_skb_push_fndecl_18791 isdn_ppp_skb_push fndecl 2 18791 NULL
152916 +enable_so_sctp_abort_pkt_new_fndecl_18794 sctp_abort_pkt_new fndecl 6 18794 NULL
152917 +enable_so_max_low_pfn_vardecl_18798 max_low_pfn vardecl 0 18798 NULL
152918 +enable_so_readbuffers_v4l2_captureparm_18801 readbuffers v4l2_captureparm 0 18801 NULL
152919 +enable_so_dwc2_hcd_urb_alloc_fndecl_18802 dwc2_hcd_urb_alloc fndecl 2 18802 NULL
152920 +enable_so_rd_length_gfs2_rgrpd_18804 rd_length gfs2_rgrpd 0 18804 NULL
152921 +enable_so_md_capture_size_netxen_minidump_18805 md_capture_size netxen_minidump 0 18805 NULL
152922 +enable_so___irq_domain_alloc_irqs_fndecl_18810 __irq_domain_alloc_irqs fndecl 0-2 18810 NULL
152923 +enable_so_ath6kl_debug_roam_tbl_event_fndecl_18811 ath6kl_debug_roam_tbl_event fndecl 3 18811 NULL
152924 +enable_so_ssb_ioremap_fndecl_18815 ssb_ioremap fndecl 2 18815 NULL
152925 +enable_so_length_xfs_extent_busy_18817 length xfs_extent_busy 0 18817 NULL
152926 +enable_so_gfn_to_hva_memslot_fndecl_18818 gfn_to_hva_memslot fndecl 2 18818 NULL
152927 +enable_so_tx_cnt_IsdnCardState_18819 tx_cnt IsdnCardState 0 18819 NULL
152928 +enable_so_dvb_ringbuffer_write_user_fndecl_18821 dvb_ringbuffer_write_user fndecl 3 18821 NULL
152929 +enable_so_shmem_seek_hole_data_fndecl_18824 shmem_seek_hole_data fndecl 0-2-3 18824 NULL
152930 +enable_so_p_memsz_elf32_phdr_18830 p_memsz elf32_phdr 0 18830 NULL nohasharray
152931 +enable_so_clk_num_clk_onecell_data_18830 clk_num clk_onecell_data 0 18830 &enable_so_p_memsz_elf32_phdr_18830
152932 +enable_so_num_entries_compat_ipt_replace_18835 num_entries compat_ipt_replace 0 18835 NULL
152933 +enable_so_DriverQueueDepth_DAC960_Controller_18839 DriverQueueDepth DAC960_Controller 0 18839 NULL
152934 +enable_so_rsn_ie_len_hostap_bss_info_18840 rsn_ie_len hostap_bss_info 0 18840 NULL
152935 +enable_so_number_snd_card_18845 number snd_card 0 18845 NULL
152936 +enable_so_n_targets_rsxx_cardinfo_18847 n_targets rsxx_cardinfo 0 18847 NULL
152937 +enable_so_private_data_len_ib_cm_req_param_18848 private_data_len ib_cm_req_param 0 18848 NULL
152938 +enable_so_master_xfer_i2c_algorithm_18849 master_xfer i2c_algorithm 0 18849 NULL nohasharray
152939 +enable_so_taglen_nfsd4_compoundargs_18849 taglen nfsd4_compoundargs 0 18849 &enable_so_master_xfer_i2c_algorithm_18849
152940 +enable_so_usb_descriptor_fillbuf_fndecl_18853 usb_descriptor_fillbuf fndecl 0 18853 NULL nohasharray
152941 +enable_so_sco_sock_sendmsg_fndecl_18853 sco_sock_sendmsg fndecl 3 18853 &enable_so_usb_descriptor_fillbuf_fndecl_18853
152942 +enable_so_nreaders_vardecl_rcutorture_c_18862 nreaders vardecl_rcutorture.c 0 18862 NULL
152943 +enable_so_length_acpi_resource_18863 length acpi_resource 0 18863 NULL
152944 +enable_so_max_payload_fwnet_packet_task_18867 max_payload fwnet_packet_task 0 18867 NULL
152945 +enable_so_alloc_cache_blocks_with_hash_fndecl_18870 alloc_cache_blocks_with_hash fndecl 2 18870 NULL
152946 +enable_so_osd_y_pan_yuv_playback_info_18877 osd_y_pan yuv_playback_info 0 18877 NULL
152947 +enable_so_rx_buffer_len_atl1_adapter_18882 rx_buffer_len atl1_adapter 0 18882 NULL nohasharray
152948 +enable_so_allocate_cnodes_fndecl_18882 allocate_cnodes fndecl 1 18882 &enable_so_rx_buffer_len_atl1_adapter_18882
152949 +enable_so_rxd_rfsw_s_smt_fp_rxd_18889 rxd_rfsw s_smt_fp_rxd 0 18889 NULL
152950 +enable_so_uinput_ioctl_fndecl_18893 uinput_ioctl fndecl 2 18893 NULL
152951 +enable_so_vm_insert_pfn_fndecl_18894 vm_insert_pfn fndecl 3 18894 NULL nohasharray
152952 +enable_so_count_objects_shrinker_18894 count_objects shrinker 0 18894 &enable_so_vm_insert_pfn_fndecl_18894
152953 +enable_so_nr_stripes_bcache_device_18895 nr_stripes bcache_device 0 18895 NULL
152954 +enable_so_rx_ps_hdr_size_igbvf_adapter_18896 rx_ps_hdr_size igbvf_adapter 0 18896 NULL nohasharray
152955 +enable_so_r592_write_fifo_pio_fndecl_18896 r592_write_fifo_pio fndecl 3 18896 &enable_so_rx_ps_hdr_size_igbvf_adapter_18896
152956 +enable_so_num_freq_table_entries_vardecl_sfi_cpufreq_c_18898 num_freq_table_entries vardecl_sfi-cpufreq.c 0 18898 NULL
152957 +enable_so_nilfs_max_size_fndecl_18901 nilfs_max_size fndecl 0-1 18901 NULL nohasharray
152958 +enable_so_op_dmaoff_rm_data_op_18901 op_dmaoff rm_data_op 0 18901 &enable_so_nilfs_max_size_fndecl_18901
152959 +enable_so_sbc_get_write_same_sectors_fndecl_18902 sbc_get_write_same_sectors fndecl 0 18902 NULL
152960 +enable_so_pep_sendmsg_fndecl_18903 pep_sendmsg fndecl 3 18903 NULL
152961 +enable_so_extent_invalidatepage_fndecl_18906 extent_invalidatepage fndecl 3 18906 NULL
152962 +enable_so_pwr_elp_enter_read_fndecl_18911 pwr_elp_enter_read fndecl 3 18911 NULL
152963 +enable_so_sectors_ssfdcr_record_18912 sectors ssfdcr_record 0 18912 NULL
152964 +enable_so_ps_pspoll_utilization_read_fndecl_18914 ps_pspoll_utilization_read fndecl 3 18914 NULL
152965 +enable_so_dccpd_opt_len_dccp_skb_cb_18917 dccpd_opt_len dccp_skb_cb 0 18917 NULL
152966 +enable_so_fuse_write_update_size_fndecl_18918 fuse_write_update_size fndecl 2 18918 NULL
152967 +enable_so_kvm_pin_pages_fndecl_18922 kvm_pin_pages fndecl 2 18922 NULL nohasharray
152968 +enable_so_x509_note_subject_fndecl_18922 x509_note_subject fndecl 5 18922 &enable_so_kvm_pin_pages_fndecl_18922
152969 +enable_so_cciss_allocate_sg_chain_blocks_fndecl_18923 cciss_allocate_sg_chain_blocks fndecl 3-2 18923 NULL
152970 +enable_so_capacity_vmci_handle_arr_18924 capacity vmci_handle_arr 0 18924 NULL
152971 +enable_so_segment_size_kaweth_ethernet_configuration_18925 segment_size kaweth_ethernet_configuration 0 18925 NULL nohasharray
152972 +enable_so_vxfs_bread_fndecl_18925 vxfs_bread fndecl 2 18925 &enable_so_segment_size_kaweth_ethernet_configuration_18925
152973 +enable_so_ad714x_i2c_read_fndecl_18930 ad714x_i2c_read fndecl 4 18930 NULL
152974 +enable_so_spidev_get_ioc_message_fndecl_18931 spidev_get_ioc_message fndecl 1 18931 NULL
152975 +enable_so_maxReplyBytes_mpt_ioctl_command_18942 maxReplyBytes mpt_ioctl_command 0 18942 NULL
152976 +enable_so_read_pci_config_fndecl_18943 read_pci_config fndecl 0 18943 NULL
152977 +enable_so_rbd_segment_length_fndecl_18944 rbd_segment_length fndecl 0-2-3 18944 NULL
152978 +enable_so_cram_hmac_alg_len_net_conf_18947 cram_hmac_alg_len net_conf 0 18947 NULL nohasharray
152979 +enable_so_port_show_regs_fndecl_18947 port_show_regs fndecl 3 18947 &enable_so_cram_hmac_alg_len_net_conf_18947
152980 +enable_so_i2c_hack_cx25840_fndecl_18948 i2c_hack_cx25840 fndecl 4-6 18948 NULL nohasharray
152981 +enable_so_uhci_debug_read_fndecl_18948 uhci_debug_read fndecl 3 18948 &enable_so_i2c_hack_cx25840_fndecl_18948
152982 +enable_so_length_rsp_que_18950 length rsp_que 0 18950 NULL
152983 +enable_so_qla82xx_pci_mem_read_2M_fndecl_18955 qla82xx_pci_mem_read_2M fndecl 2 18955 NULL
152984 +enable_so_rss_queues_igb_adapter_18957 rss_queues igb_adapter 0 18957 NULL
152985 +enable_so_new_sync_read_fndecl_18960 new_sync_read fndecl 0-3 18960 NULL
152986 +enable_so_file_offset_btrfs_ordered_extent_18963 file_offset btrfs_ordered_extent 0 18963 NULL
152987 +enable_so_len_dm_target_18965 len dm_target 0 18965 NULL
152988 +enable_so___build_header_fndecl_18977 __build_header fndecl 2 18977 NULL nohasharray
152989 +enable_so_size_ceph_cap_snap_18977 size ceph_cap_snap 0 18977 &enable_so___build_header_fndecl_18977 nohasharray
152990 +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
152991 +enable_so_read_off_videobuf_queue_18978 read_off videobuf_queue 0 18978 NULL
152992 +enable_so_edac_device_alloc_ctl_info_fndecl_18982 edac_device_alloc_ctl_info fndecl 1 18982 NULL
152993 +enable_so_rcount_mkiss_18984 rcount mkiss 0 18984 NULL nohasharray
152994 +enable_so_l2cap_sock_sendmsg_fndecl_18984 l2cap_sock_sendmsg fndecl 3 18984 &enable_so_rcount_mkiss_18984
152995 +enable_so_preferred_bpp_intel_fbdev_18985 preferred_bpp intel_fbdev 0 18985 NULL
152996 +enable_so_p9_get_mapped_pages_fndecl_18988 p9_get_mapped_pages fndecl 4-0 18988 NULL nohasharray
152997 +enable_so_ebcnt_vardecl_subpagetest_c_18988 ebcnt vardecl_subpagetest.c 0 18988 &enable_so_p9_get_mapped_pages_fndecl_18988
152998 +enable_so_ttm_bo_kmap_ttm_fndecl_18993 ttm_bo_kmap_ttm fndecl 3 18993 NULL
152999 +enable_so_virtio_gpu_alloc_cmd_resp_fndecl_18996 virtio_gpu_alloc_cmd_resp fndecl 4-5 18996 NULL
153000 +enable_so_end_sk_buff_18998 end sk_buff 0 18998 NULL
153001 +enable_so_usb_hcd_check_unlink_urb_fndecl_18999 usb_hcd_check_unlink_urb fndecl 3 18999 NULL
153002 +enable_so_lbs_highsnr_read_fndecl_19000 lbs_highsnr_read fndecl 3 19000 NULL
153003 +enable_so_dm_alloc_md_mempools_fndecl_19008 dm_alloc_md_mempools fndecl 4 19008 NULL
153004 +enable_so_max_sectors_ata_device_19016 max_sectors ata_device 0 19016 NULL
153005 +enable_so_generic_splice_sendpage_fndecl_19018 generic_splice_sendpage fndecl 4 19018 NULL
153006 +enable_so_prevUnitNo_inftl_unithead1_19020 prevUnitNo inftl_unithead1 0 19020 NULL
153007 +enable_so_SyS_semop_fndecl_19023 SyS_semop fndecl 3 19023 NULL
153008 +enable_so_tcp_recvmsg_fndecl_19029 tcp_recvmsg fndecl 3 19029 NULL
153009 +enable_so_sge_size_MPT3SAS_ADAPTER_19030 sge_size MPT3SAS_ADAPTER 0 19030 NULL nohasharray
153010 +enable_so_tipc_subseq_alloc_fndecl_19030 tipc_subseq_alloc fndecl 1 19030 &enable_so_sge_size_MPT3SAS_ADAPTER_19030
153011 +enable_so_ll_statahead_one_fndecl_19033 ll_statahead_one fndecl 3 19033 NULL
153012 +enable_so_scrollback_max_vardecl_fbcon_c_19040 scrollback_max vardecl_fbcon.c 0 19040 NULL nohasharray
153013 +enable_so_next_cnid_hfsplus_sb_info_19040 next_cnid hfsplus_sb_info 0 19040 &enable_so_scrollback_max_vardecl_fbcon_c_19040
153014 +enable_so_tsize_nfs2_fsstat_19041 tsize nfs2_fsstat 0 19041 NULL
153015 +enable_so_len_ath10k_dump_file_data_19052 len ath10k_dump_file_data 0 19052 NULL
153016 +enable_so_dma_usb_request_19054 dma usb_request 0 19054 NULL
153017 +enable_so_mod_len_extent_map_19058 mod_len extent_map 0 19058 NULL
153018 +enable_so_count_sgmapraw_19066 count sgmapraw 0 19066 NULL
153019 +enable_so_mem_size_memory_type_mapping_19073 mem_size memory_type_mapping 0 19073 NULL
153020 +enable_so_offs_ubifs_zbranch_19074 offs ubifs_zbranch 0 19074 NULL
153021 +enable_so_mei_cl_read_start_fndecl_19077 mei_cl_read_start fndecl 2-0 19077 NULL nohasharray
153022 +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
153023 +enable_so_s_blocksize_super_block_19081 s_blocksize super_block 0 19081 NULL nohasharray
153024 +enable_so_ipath_set_mtu_fndecl_19081 ipath_set_mtu fndecl 2 19081 &enable_so_s_blocksize_super_block_19081
153025 +enable_so_gsi_kvm_assigned_msix_entry_19082 gsi kvm_assigned_msix_entry 0 19082 NULL
153026 +enable_so_data_size_hpi_msg_data_19086 data_size hpi_msg_data 0 19086 NULL
153027 +enable_so_mei_hbm_cl_flow_control_req_fndecl_19089 mei_hbm_cl_flow_control_req fndecl 0 19089 NULL
153028 +enable_so_duplex_pxa168_eth_platform_data_19097 duplex pxa168_eth_platform_data 0 19097 NULL
153029 +enable_so_sb_logsectsize_xfs_sb_19098 sb_logsectsize xfs_sb 0 19098 NULL
153030 +enable_so_btrfs_qgroup_inherit_fndecl_19103 btrfs_qgroup_inherit fndecl 4 19103 NULL
153031 +enable_so_walk_node_fndecl_19114 walk_node fndecl 2 19114 NULL nohasharray
153032 +enable_so_sctp_setsockopt_connectx_fndecl_19114 sctp_setsockopt_connectx fndecl 3 19114 &enable_so_walk_node_fndecl_19114
153033 +enable_so_ceph_entity_name_encode_fndecl_19115 ceph_entity_name_encode fndecl 0 19115 NULL nohasharray
153034 +enable_so_alloc_msg_fndecl_19115 alloc_msg fndecl 1 19115 &enable_so_ceph_entity_name_encode_fndecl_19115
153035 +enable_so_sel_make_class_dir_entries_fndecl_19123 sel_make_class_dir_entries fndecl 2 19123 NULL
153036 +enable_so_rx_keycache_size_p54_common_19128 rx_keycache_size p54_common 0 19128 NULL
153037 +enable_so_ssid_len_ieee80211_mgd_assoc_data_19143 ssid_len ieee80211_mgd_assoc_data 0 19143 NULL
153038 +enable_so_start_vivitar_cam_fndecl_19144 start_vivitar_cam fndecl 0 19144 NULL
153039 +enable_so_ctrl_set_res_hor_fndecl_19146 ctrl_set_res_hor fndecl 3 19146 NULL nohasharray
153040 +enable_so_count_c2_ring_19146 count c2_ring 0 19146 &enable_so_ctrl_set_res_hor_fndecl_19146
153041 +enable_so_ipmi_addr_length_fndecl_19149 ipmi_addr_length fndecl 0 19149 NULL
153042 +enable_so_pgbase_nfs_readlinkargs_19150 pgbase nfs_readlinkargs 0 19150 NULL
153043 +enable_so_inftl_write_oob_fndecl_19154 inftl_write_oob fndecl 2-3 19154 NULL
153044 +enable_so_alloc_indirect_fndecl_19156 alloc_indirect fndecl 2 19156 NULL
153045 +enable_so_do_get_thread_area_fndecl_19157 do_get_thread_area fndecl 2 19157 NULL
153046 +enable_so_page_array_size_firmware_buf_19163 page_array_size firmware_buf 0 19163 NULL
153047 +enable_so_ve_attrlen_nfsd4_verify_19164 ve_attrlen nfsd4_verify 0 19164 NULL
153048 +enable_so_ms_nvme_ns_19166 ms nvme_ns 0 19166 NULL
153049 +enable_so_dma_start_hi_rx_buf_desc_19167 dma_start_hi rx_buf_desc 0 19167 NULL
153050 +enable_so_isp116x_urb_dequeue_fndecl_19169 isp116x_urb_dequeue fndecl 3 19169 NULL
153051 +enable_so_max_pages_per_mr_srp_device_19171 max_pages_per_mr srp_device 0 19171 NULL
153052 +enable_so_lprocfs_alloc_stats_fndecl_19181 lprocfs_alloc_stats fndecl 1 19181 NULL
153053 +enable_so_mic_read_spad_fndecl_19184 mic_read_spad fndecl 0 19184 NULL
153054 +enable_so_dfs_global_file_write_fndecl_19187 dfs_global_file_write fndecl 3 19187 NULL
153055 +enable_so_xen_max_p2m_pfn_vardecl_19189 xen_max_p2m_pfn vardecl 0 19189 NULL
153056 +enable_so_nci_allocate_device_fndecl_19192 nci_allocate_device fndecl 3 19192 NULL
153057 +enable_so_queue_depth_hpsa_scsi_dev_t_19194 queue_depth hpsa_scsi_dev_t 0 19194 NULL
153058 +enable_so_slot_nr_nfs4_slot_19196 slot_nr nfs4_slot 0 19196 NULL nohasharray
153059 +enable_so_num_retune_mobile_texts_wm8996_priv_19196 num_retune_mobile_texts wm8996_priv 0 19196 &enable_so_slot_nr_nfs4_slot_19196
153060 +enable_so_decode_height_yuv_playback_info_19201 decode_height yuv_playback_info 0 19201 NULL
153061 +enable_so_irq_dma_handle_ttusb_dec_19208 irq_dma_handle ttusb_dec 0 19208 NULL
153062 +enable_so_ext4_xattr_get_fndecl_19214 ext4_xattr_get fndecl 0 19214 NULL
153063 +enable_so_size_afs_file_status_19215 size afs_file_status 0 19215 NULL
153064 +enable_so_extensions_edid_19218 extensions edid 0 19218 NULL
153065 +enable_so_lfb_size_screen_info_19219 lfb_size screen_info 0 19219 NULL
153066 +enable_so_SYSC_fsetxattr_fndecl_19220 SYSC_fsetxattr fndecl 4 19220 NULL
153067 +enable_so_csio_add_debugfs_mem_fndecl_19228 csio_add_debugfs_mem fndecl 4 19228 NULL
153068 +enable_so___ai_size_pcpu_alloc_info_19229 __ai_size pcpu_alloc_info 0 19229 NULL
153069 +enable_so_cmds_vardecl_ambassador_c_19230 cmds vardecl_ambassador.c 0 19230 NULL
153070 +enable_so_spi_populate_ppr_msg_fndecl_19239 spi_populate_ppr_msg fndecl 0 19239 NULL
153071 +enable_so_matroxfb_pitch_adjust_fndecl_19243 matroxfb_pitch_adjust fndecl 0-2 19243 NULL nohasharray
153072 +enable_so_tcp_fastretrans_alert_fndecl_19243 tcp_fastretrans_alert fndecl 2 19243 &enable_so_matroxfb_pitch_adjust_fndecl_19243
153073 +enable_so_get_arg_fndecl_19245 get_arg fndecl 3 19245 NULL
153074 +enable_so_mthca_map_reg_fndecl_19251 mthca_map_reg fndecl 3-2 19251 NULL
153075 +enable_so_ieee802154_hdr_push_sechdr_fndecl_19265 ieee802154_hdr_push_sechdr fndecl 0 19265 NULL
153076 +enable_so_batadv_frag_create_fndecl_19270 batadv_frag_create fndecl 3 19270 NULL
153077 +enable_so_tail_aio_ring_19271 tail aio_ring 0 19271 NULL
153078 +enable_so_sb_segnum_nilfs_segment_buffer_19276 sb_segnum nilfs_segment_buffer 0 19276 NULL nohasharray
153079 +enable_so_vmw_kms_readback_fndecl_19276 vmw_kms_readback fndecl 6 19276 &enable_so_sb_segnum_nilfs_segment_buffer_19276
153080 +enable_so_early_init_dt_reserve_memory_arch_fndecl_19285 early_init_dt_reserve_memory_arch fndecl 2-1 19285 NULL
153081 +enable_so_inode_minix_dir_entry_19287 inode minix_dir_entry 0 19287 NULL
153082 +enable_so_virtio_gpu_cmd_resource_flush_fndecl_19291 virtio_gpu_cmd_resource_flush fndecl 5-6 19291 NULL nohasharray
153083 +enable_so_index_scsi_tape_19291 index scsi_tape 0 19291 &enable_so_virtio_gpu_cmd_resource_flush_fndecl_19291
153084 +enable_so_subbuf_read_actor_fndecl_19295 subbuf_read_actor fndecl 3 19295 NULL
153085 +enable_so_get_packet_fndecl_19296 get_packet fndecl 3 19296 NULL
153086 +enable_so_vxge_change_mtu_fndecl_19297 vxge_change_mtu fndecl 2 19297 NULL
153087 +enable_so_ext_len_xfs_extent_19299 ext_len xfs_extent 0 19299 NULL
153088 +enable_so_ubi_calc_fm_size_fndecl_19302 ubi_calc_fm_size fndecl 0 19302 NULL
153089 +enable_so_copy_vma_fndecl_19303 copy_vma fndecl 3-2-4 19303 NULL
153090 +enable_so_cl_cpg_ocfs2_chain_list_19308 cl_cpg ocfs2_chain_list 0 19308 NULL
153091 +enable_so_sys_sched_getattr_fndecl_19313 sys_sched_getattr fndecl 3 19313 NULL
153092 +enable_so_ve4_indsize_vxfs_ext4_19315 ve4_indsize vxfs_ext4 0 19315 NULL
153093 +enable_so_reply_sz_MPT3SAS_ADAPTER_19317 reply_sz MPT3SAS_ADAPTER 0 19317 NULL
153094 +enable_so_bpp_vardecl_nvidia_c_19325 bpp vardecl_nvidia.c 0 19325 NULL
153095 +enable_so_meta_dev_len_disk_conf_19326 meta_dev_len disk_conf 0 19326 NULL
153096 +enable_so_rdma_read_max_sge_fndecl_19328 rdma_read_max_sge fndecl 0-2 19328 NULL
153097 +enable_so_mlx4_alloc_resize_buf_fndecl_19329 mlx4_alloc_resize_buf fndecl 3 19329 NULL
153098 +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
153099 +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
153100 +enable_so_rule_size_fib_rules_ops_19335 rule_size fib_rules_ops 0 19335 NULL
153101 +enable_so___vxge_hw_blockpool_malloc_fndecl_19337 __vxge_hw_blockpool_malloc fndecl 2 19337 NULL
153102 +enable_so_compat_sys_writev_fndecl_19339 compat_sys_writev fndecl 3 19339 NULL
153103 +enable_so_rockchip_clk_init_fndecl_19353 rockchip_clk_init fndecl 3 19353 NULL
153104 +enable_so_sock_alloc_send_pskb_fndecl_19354 sock_alloc_send_pskb fndecl 3 19354 NULL
153105 +enable_so_data_sge_offset_mpt3_ioctl_command_19355 data_sge_offset mpt3_ioctl_command 0 19355 NULL
153106 +enable_so_qlcnic_83xx_sysfs_flash_read_handler_fndecl_19356 qlcnic_83xx_sysfs_flash_read_handler fndecl 6 19356 NULL nohasharray
153107 +enable_so_sctp_setsockopt_autoclose_fndecl_19356 sctp_setsockopt_autoclose fndecl 3 19356 &enable_so_qlcnic_83xx_sysfs_flash_read_handler_fndecl_19356
153108 +enable_so_ds_channels_snd_rme9652_19357 ds_channels snd_rme9652 0 19357 NULL
153109 +enable_so_lpfc_sriov_nr_virtfn_init_fndecl_19359 lpfc_sriov_nr_virtfn_init fndecl 2 19359 NULL nohasharray
153110 +enable_so_minimum_acpi_resource_io_19359 minimum acpi_resource_io 0 19359 &enable_so_lpfc_sriov_nr_virtfn_init_fndecl_19359
153111 +enable_so_nodesize_scrub_ctx_19371 nodesize scrub_ctx 0 19371 NULL
153112 +enable_so_size_mdu_array_info_s_19374 size mdu_array_info_s 0 19374 NULL
153113 +enable_so_nvme_trans_bdev_char_page_fndecl_19382 nvme_trans_bdev_char_page fndecl 3 19382 NULL
153114 +enable_so_do_anonymous_page_fndecl_19385 do_anonymous_page fndecl 3 19385 NULL
153115 +enable_so_cx25840_read_fndecl_19386 cx25840_read fndecl 0 19386 NULL nohasharray
153116 +enable_so_ControllerQueueDepth_DAC960_Controller_19386 ControllerQueueDepth DAC960_Controller 0 19386 &enable_so_cx25840_read_fndecl_19386
153117 +enable_so_error_param1_vardecl_einj_c_19392 error_param1 vardecl_einj.c 0 19392 NULL
153118 +enable_so_padlen_ip_beet_phdr_19393 padlen ip_beet_phdr 0 19393 NULL
153119 +enable_so_ixgb_check_copybreak_fndecl_19396 ixgb_check_copybreak fndecl 3 19396 NULL nohasharray
153120 +enable_so_at25_bin_write_fndecl_19396 at25_bin_write fndecl 6-5 19396 &enable_so_ixgb_check_copybreak_fndecl_19396
153121 +enable_so_ceph_msg_new_fndecl_19397 ceph_msg_new fndecl 2 19397 NULL
153122 +enable_so_rx_filter_max_arp_queue_dep_read_fndecl_19400 rx_filter_max_arp_queue_dep_read fndecl 3 19400 NULL
153123 +enable_so_ext4_xattr_set_fndecl_19403 ext4_xattr_set fndecl 5 19403 NULL nohasharray
153124 +enable_so_setup_req_fndecl_19403 setup_req fndecl 3-0 19403 &enable_so_ext4_xattr_set_fndecl_19403
153125 +enable_so_ib_uverbs_open_xrcd_fndecl_19405 ib_uverbs_open_xrcd fndecl 3 19405 NULL nohasharray
153126 +enable_so_max_sqes_bnx2i_hba_19405 max_sqes bnx2i_hba 0 19405 &enable_so_ib_uverbs_open_xrcd_fndecl_19405
153127 +enable_so_rec_len_ocfs2_dir_entry_19408 rec_len ocfs2_dir_entry 0 19408 NULL
153128 +enable_so_proc_read_atmdev_ops_19414 proc_read atmdev_ops 0 19414 NULL
153129 +enable_so_num_ip_blocks_amdgpu_device_19419 num_ip_blocks amdgpu_device 0 19419 NULL
153130 +enable_so_size_mthca_resource_19420 size mthca_resource 0 19420 NULL
153131 +enable_so_fw_card_add_fndecl_19423 fw_card_add fndecl 2 19423 NULL
153132 +enable_so_mixer_nid_hda_gen_spec_19429 mixer_nid hda_gen_spec 0 19429 NULL
153133 +enable_so_config_buf_fndecl_19445 config_buf fndecl 0 19445 NULL nohasharray
153134 +enable_so_sn9c2028_long_command_fndecl_19445 sn9c2028_long_command fndecl 0 19445 &enable_so_config_buf_fndecl_19445
153135 +enable_so_compat_sys_move_pages_fndecl_19446 compat_sys_move_pages fndecl 2 19446 NULL nohasharray
153136 +enable_so_uinput_compat_ioctl_fndecl_19446 uinput_compat_ioctl fndecl 2 19446 &enable_so_compat_sys_move_pages_fndecl_19446
153137 +enable_so_i_parent_dir_hpfs_inode_info_19451 i_parent_dir hpfs_inode_info 0 19451 NULL
153138 +enable_so_ilf_ino_xfs_inode_log_format_19454 ilf_ino xfs_inode_log_format 0 19454 NULL
153139 +enable_so_dvb_ringbuffer_read_fndecl_19457 dvb_ringbuffer_read fndecl 3 19457 NULL
153140 +enable_so_sys_setdomainname_fndecl_19462 sys_setdomainname fndecl 2 19462 NULL
153141 +enable_so_i965_gtt_total_entries_fndecl_19464 i965_gtt_total_entries fndecl 0 19464 NULL
153142 +enable_so_vcc_connect_fndecl_19469 vcc_connect fndecl 4-3 19469 NULL nohasharray
153143 +enable_so_size_nvbios_image_19469 size nvbios_image 0 19469 &enable_so_vcc_connect_fndecl_19469
153144 +enable_so_dvb_ep_bulk_em28xx_19472 dvb_ep_bulk em28xx 0 19472 NULL nohasharray
153145 +enable_so_kclist_add_fndecl_19472 kclist_add fndecl 3 19472 &enable_so_dvb_ep_bulk_em28xx_19472
153146 +enable_so_dma_xfer_cnt_ivtv_buffer_19475 dma_xfer_cnt ivtv_buffer 0 19475 NULL
153147 +enable_so_orig_block_len_extent_map_19476 orig_block_len extent_map 0 19476 NULL
153148 +enable_so_ath6kl_wmi_ap_hidden_ssid_fndecl_19481 ath6kl_wmi_ap_hidden_ssid fndecl 2 19481 NULL
153149 +enable_so_fackets_out_tcp_sock_19484 fackets_out tcp_sock 0 19484 NULL
153150 +enable_so_ieee80211_change_mtu_fndecl_19486 ieee80211_change_mtu fndecl 2 19486 NULL nohasharray
153151 +enable_so_lookup_string_fndecl_19486 lookup_string fndecl 0 19486 &enable_so_ieee80211_change_mtu_fndecl_19486
153152 +enable_so_ath6kl_set_bitrate_mask32_fndecl_19488 ath6kl_set_bitrate_mask32 fndecl 2 19488 NULL
153153 +enable_so_drm_gtf_mode_fndecl_19489 drm_gtf_mode fndecl 3-2-4 19489 NULL nohasharray
153154 +enable_so_add_device_fndecl_19489 add_device fndecl 2 19489 &enable_so_drm_gtf_mode_fndecl_19489
153155 +enable_so_length_mwifiex_types_power_group_19491 length mwifiex_types_power_group 0 19491 NULL
153156 +enable_so_reg_read_fndecl_19498 reg_read fndecl 0 19498 NULL
153157 +enable_so_len_ib_ucm_sidr_req_19499 len ib_ucm_sidr_req 0 19499 NULL
153158 +enable_so_libfc_vport_create_fndecl_19500 libfc_vport_create fndecl 2 19500 NULL
153159 +enable_so_access_process_vm_fndecl_19503 access_process_vm fndecl 4-0-2 19503 NULL nohasharray
153160 +enable_so_cxacru_cm_get_array_fndecl_19503 cxacru_cm_get_array fndecl 4 19503 &enable_so_access_process_vm_fndecl_19503
153161 +enable_so_sctp_sendmsg_fndecl_19508 sctp_sendmsg fndecl 3 19508 NULL
153162 +enable_so_ecryptfs_write_tag_70_packet_fndecl_19510 ecryptfs_write_tag_70_packet fndecl 6 19510 NULL nohasharray
153163 +enable_so_dev_cdev_19510 dev cdev 0 19510 &enable_so_ecryptfs_write_tag_70_packet_fndecl_19510
153164 +enable_so_count_sgmap64_19513 count sgmap64 0 19513 NULL
153165 +enable_so_ndoms_cur_vardecl_core_c_19519 ndoms_cur vardecl_core.c 0 19519 NULL
153166 +enable_so_pglen_nfs_readlinkargs_19521 pglen nfs_readlinkargs 0 19521 NULL
153167 +enable_so_do_pages_stat_fndecl_19526 do_pages_stat fndecl 2 19526 NULL
153168 +enable_so_i40e_reconfig_rss_queues_fndecl_19528 i40e_reconfig_rss_queues fndecl 2 19528 NULL
153169 +enable_so_height_simplefb_platform_data_19532 height simplefb_platform_data 0 19532 NULL
153170 +enable_so_memparse_fndecl_19535 memparse fndecl 0 19535 NULL nohasharray
153171 +enable_so_d40_sg_2_dmalen_fndecl_19535 d40_sg_2_dmalen fndecl 3-4-0 19535 &enable_so_memparse_fndecl_19535
153172 +enable_so_in_dma_usb_keyspan_19540 in_dma usb_keyspan 0 19540 NULL
153173 +enable_so_npins_chv_gpio_pinrange_19542 npins chv_gpio_pinrange 0 19542 NULL nohasharray
153174 +enable_so_rtw_android_get_rssi_fndecl_19542 rtw_android_get_rssi fndecl 0 19542 &enable_so_npins_chv_gpio_pinrange_19542
153175 +enable_so_nilfs_sufile_set_alloc_range_fndecl_19543 nilfs_sufile_set_alloc_range fndecl 3-2 19543 NULL nohasharray
153176 +enable_so_entries_size_ebt_table_info_19543 entries_size ebt_table_info 0 19543 &enable_so_nilfs_sufile_set_alloc_range_fndecl_19543
153177 +enable_so_get_response_hdac_bus_ops_19545 get_response hdac_bus_ops 0 19545 NULL
153178 +enable_so_read_code_fndecl_19550 read_code fndecl 4 19550 NULL
153179 +enable_so_send_size_send_ctx_19552 send_size send_ctx 0 19552 NULL
153180 +enable_so_softback_curr_vardecl_fbcon_c_19553 softback_curr vardecl_fbcon.c 0 19553 NULL
153181 +enable_so_at76_set_card_command_fndecl_19556 at76_set_card_command fndecl 4 19556 NULL
153182 +enable_so_cmpt_entry_sz_mlx4_dev_cap_19564 cmpt_entry_sz mlx4_dev_cap 0 19564 NULL
153183 +enable_so_uni16_to_x8_fndecl_19571 uni16_to_x8 fndecl 0 19571 NULL
153184 +enable_so_sd_pkt_scan_bayer_fndecl_19581 sd_pkt_scan_bayer fndecl 3 19581 NULL
153185 +enable_so_ath6kl_wmi_set_txe_notify_fndecl_19582 ath6kl_wmi_set_txe_notify fndecl 2 19582 NULL
153186 +enable_so_set_link_security_fndecl_19589 set_link_security fndecl 4 19589 NULL
153187 +enable_so_rx_max_pending_ethtool_ringparam_19591 rx_max_pending ethtool_ringparam 0 19591 NULL
153188 +enable_so_l1oip_socket_parse_fndecl_19592 l1oip_socket_parse fndecl 4 19592 NULL
153189 +enable_so_icc_empty_fifo_fndecl_19594 icc_empty_fifo fndecl 2 19594 NULL
153190 +enable_so_xdr_stream_pos_fndecl_19598 xdr_stream_pos fndecl 0 19598 NULL
153191 +enable_so_command_size_drm_qxl_command_19601 command_size drm_qxl_command 0 19601 NULL
153192 +enable_so_snd_seq_expand_var_event_fndecl_19602 snd_seq_expand_var_event fndecl 0 19602 NULL
153193 +enable_so_readpos_seq_buf_19607 readpos seq_buf 0 19607 NULL
153194 +enable_so_rt5677_spi_write_fndecl_19610 rt5677_spi_write fndecl 2 19610 NULL
153195 +enable_so_rs_user_bytes_rds_sock_19611 rs_user_bytes rds_sock 0 19611 NULL
153196 +enable_so_gspca_frame_add_fndecl_19612 gspca_frame_add fndecl 4 19612 NULL nohasharray
153197 +enable_so_vmbus_establish_gpadl_fndecl_19612 vmbus_establish_gpadl fndecl 3 19612 &enable_so_gspca_frame_add_fndecl_19612
153198 +enable_so_logical_btrfs_io_bio_19616 logical btrfs_io_bio 0 19616 NULL
153199 +enable_so___gfn_to_pfn_memslot_fndecl_19617 __gfn_to_pfn_memslot fndecl 2 19617 NULL
153200 +enable_so_sys_llistxattr_fndecl_19623 sys_llistxattr fndecl 3 19623 NULL
153201 +enable_so_name_len_ext4_dir_entry_2_19628 name_len ext4_dir_entry_2 0 19628 NULL
153202 +enable_so_logical_io_failure_record_19631 logical io_failure_record 0 19631 NULL
153203 +enable_so_max_queue_depth_vardecl_eata_c_19636 max_queue_depth vardecl_eata.c 0 19636 NULL
153204 +enable_so_softback_buf_vardecl_fbcon_c_19637 softback_buf vardecl_fbcon.c 0 19637 NULL
153205 +enable_so_sdio_io_rw_ext_helper_fndecl_19641 sdio_io_rw_ext_helper fndecl 6 19641 NULL
153206 +enable_so_pcfg_ofsh_cyttsp4_sysinfo_data_19644 pcfg_ofsh cyttsp4_sysinfo_data 0 19644 NULL
153207 +enable_so_af9033_rd_regs_fndecl_19652 af9033_rd_regs fndecl 4 19652 NULL
153208 +enable_so_shadow_step_fndecl_19653 shadow_step fndecl 2 19653 NULL
153209 +enable_so_hr_itemcount_hsm_request_19657 hr_itemcount hsm_request 0 19657 NULL
153210 +enable_so_configfs_dir_lseek_fndecl_19658 configfs_dir_lseek fndecl 2 19658 NULL
153211 +enable_so_btrfs_file_extent_inline_item_len_fndecl_19660 btrfs_file_extent_inline_item_len fndecl 0 19660 NULL
153212 +enable_so_count_kernel_pbes_fndecl_19664 count_kernel_pbes fndecl 0 19664 NULL
153213 +enable_so_tty_register_device_fndecl_19667 tty_register_device fndecl 2 19667 NULL
153214 +enable_so_videobuf_vmalloc_to_sg_fndecl_19671 videobuf_vmalloc_to_sg fndecl 2 19671 NULL
153215 +enable_so_fsl_edma_prep_slave_sg_fndecl_19672 fsl_edma_prep_slave_sg fndecl 3 19672 NULL
153216 +enable_so_recv_intr_pipe_us_data_19678 recv_intr_pipe us_data 0 19678 NULL
153217 +enable_so_bch_alloc_fndecl_19682 bch_alloc fndecl 1 19682 NULL
153218 +enable_so_ath10k_dbg_sta_write_delba_fndecl_19689 ath10k_dbg_sta_write_delba fndecl 3 19689 NULL
153219 +enable_so_depth_em28xx_fmt_19696 depth em28xx_fmt 0 19696 NULL nohasharray
153220 +enable_so_size_pkt_hdr_19696 size pkt_hdr 0 19696 &enable_so_depth_em28xx_fmt_19696 nohasharray
153221 +enable_so_pcnt_bits_ubifs_info_19696 pcnt_bits ubifs_info 0 19696 &enable_so_size_pkt_hdr_19696 nohasharray
153222 +enable_so_prealloc_bufsz_comedi_async_19696 prealloc_bufsz comedi_async 0 19696 &enable_so_pcnt_bits_ubifs_info_19696
153223 +enable_so_st_fixed_buffer_size_vardecl_st_c_19699 st_fixed_buffer_size vardecl_st.c 0 19699 NULL
153224 +enable_so_xfs_buf_get_maps_fndecl_19702 xfs_buf_get_maps fndecl 2 19702 NULL
153225 +enable_so_gfs2_file_splice_write_fndecl_19705 gfs2_file_splice_write fndecl 4 19705 NULL
153226 +enable_so_fnic_max_qdepth_vardecl_fnic_main_c_19707 fnic_max_qdepth vardecl_fnic_main.c 0 19707 NULL
153227 +enable_so_acpi_read_fast_fndecl_19709 acpi_read_fast fndecl 3-2 19709 NULL
153228 +enable_so_max_blksize_sdio_func_19715 max_blksize sdio_func 0 19715 NULL
153229 +enable_so_LastFreeEUN_NFTLrecord_19717 LastFreeEUN NFTLrecord 0 19717 NULL
153230 +enable_so_slots_end_qxl_rom_19718 slots_end qxl_rom 0 19718 NULL
153231 +enable_so_fat32_info_sector_fat_bios_param_block_19727 fat32_info_sector fat_bios_param_block 0 19727 NULL
153232 +enable_so_max_active_conns_bnx2i_hba_19740 max_active_conns bnx2i_hba 0 19740 NULL
153233 +enable_so_bytesperline_v4l2_pix_format_19741 bytesperline v4l2_pix_format 0 19741 NULL
153234 +enable_so_writelen_iuu_private_19742 writelen iuu_private 0 19742 NULL
153235 +enable_so_ntb_netdev_change_mtu_fndecl_19744 ntb_netdev_change_mtu fndecl 2 19744 NULL
153236 +enable_so_nftl_write_oob_fndecl_19745 nftl_write_oob fndecl 2-3 19745 NULL nohasharray
153237 +enable_so_nmap_ib_umem_19745 nmap ib_umem 0 19745 &enable_so_nftl_write_oob_fndecl_19745
153238 +enable_so_tm6000_read_fndecl_19748 tm6000_read fndecl 3 19748 NULL
153239 +enable_so_mpt_raid_phys_disk_get_num_paths_fndecl_19752 mpt_raid_phys_disk_get_num_paths fndecl 0 19752 NULL
153240 +enable_so_instances_vardecl_iio_simple_dummy_c_19753 instances vardecl_iio_simple_dummy.c 0 19753 NULL
153241 +enable_so_si2168_i2c_master_send_unlocked_fndecl_19760 si2168_i2c_master_send_unlocked fndecl 3 19760 NULL
153242 +enable_so_c67x00_giveback_urb_fndecl_19761 c67x00_giveback_urb fndecl 3 19761 NULL
153243 +enable_so_vram_base_qxl_device_19773 vram_base qxl_device 0 19773 NULL
153244 +enable_so_onenand_read_ops_nolock_fndecl_19774 onenand_read_ops_nolock fndecl 2 19774 NULL
153245 +enable_so_read_file_bool_fndecl_19783 read_file_bool fndecl 3 19783 NULL
153246 +enable_so_fw_mem_block_size_wl1271_19784 fw_mem_block_size wl1271 0 19784 NULL
153247 +enable_so_gss_decrypt_xdr_buf_fndecl_19786 gss_decrypt_xdr_buf fndecl 3 19786 NULL
153248 +enable_so_get_alua_req_fndecl_19797 get_alua_req fndecl 3 19797 NULL
153249 +enable_so_pvscsi_get_max_targets_fndecl_19802 pvscsi_get_max_targets fndecl 0 19802 NULL
153250 +enable_so_fromlen_nfs3_symlinkargs_19803 fromlen nfs3_symlinkargs 0 19803 NULL
153251 +enable_so_len_rpcsec_gss_oid_19814 len rpcsec_gss_oid 0 19814 NULL
153252 +enable_so_eeprom_len_niu_19815 eeprom_len niu 0 19815 NULL
153253 +enable_so_size_vring_19817 size vring 0 19817 NULL
153254 +enable_so_ip_send_unicast_reply_fndecl_19820 ip_send_unicast_reply fndecl 7 19820 NULL
153255 +enable_so_vring_new_virtqueue_fndecl_19828 vring_new_virtqueue fndecl 2 19828 NULL
153256 +enable_so___nfs4_get_acl_uncached_fndecl_19830 __nfs4_get_acl_uncached fndecl 3 19830 NULL
153257 +enable_so_size_asix_rx_fixup_info_19833 size asix_rx_fixup_info 0 19833 NULL
153258 +enable_so__osd_req_list_objects_fndecl_19839 _osd_req_list_objects fndecl 6 19839 NULL
153259 +enable_so_buf_used_uvc_video_queue_19843 buf_used uvc_video_queue 0 19843 NULL
153260 +enable_so_s3c_hsotg_send_reply_fndecl_19844 s3c_hsotg_send_reply fndecl 4 19844 NULL nohasharray
153261 +enable_so_rpos_cm4000_dev_19844 rpos cm4000_dev 0 19844 &enable_so_s3c_hsotg_send_reply_fndecl_19844
153262 +enable_so_fbmem_start_viafb_dev_19849 fbmem_start viafb_dev 0 19849 NULL
153263 +enable_so_num_jumbo_rxd_qlcnic_adapter_19850 num_jumbo_rxd qlcnic_adapter 0 19850 NULL
153264 +enable_so_xen_released_pages_vardecl_19851 xen_released_pages vardecl 0 19851 NULL
153265 +enable_so_qp_guest_endpoint_create_fndecl_19852 qp_guest_endpoint_create fndecl 5-4 19852 NULL
153266 +enable_so_i5k_channel_probe_fndecl_19853 i5k_channel_probe fndecl 2 19853 NULL
153267 +enable_so_ext4_direct_IO_fndecl_19865 ext4_direct_IO fndecl 3 19865 NULL
153268 +enable_so_max_msix_vectors_ixgbe_mac_info_19874 max_msix_vectors ixgbe_mac_info 0 19874 NULL
153269 +enable_so_ath6kl_force_roam_write_fndecl_19881 ath6kl_force_roam_write fndecl 3 19881 NULL
153270 +enable_so_size_sst_block_19887 size sst_block 0 19887 NULL nohasharray
153271 +enable_so_goldfish_audio_write_fndecl_19887 goldfish_audio_write fndecl 3 19887 &enable_so_size_sst_block_19887
153272 +enable_so_ide_find_dma_mode_fndecl_19889 ide_find_dma_mode fndecl 0 19889 NULL
153273 +enable_so_register_sound_midi_fndecl_19894 register_sound_midi fndecl 2 19894 NULL
153274 +enable_so___pool_find_fndecl_19911 __pool_find fndecl 3 19911 NULL
153275 +enable_so_count_strings_fndecl_19912 count_strings fndecl 0 19912 NULL
153276 +enable_so_slot_dlm_slot_19913 slot dlm_slot 0 19913 NULL
153277 +enable_so_maxLen_group_data_19920 maxLen group_data 0 19920 NULL nohasharray
153278 +enable_so_get_connectors_for_crtc_fndecl_19920 get_connectors_for_crtc fndecl 0 19920 &enable_so_maxLen_group_data_19920
153279 +enable_so_cp_change_mtu_fndecl_19922 cp_change_mtu fndecl 2 19922 NULL nohasharray
153280 +enable_so_xt_compat_add_offset_fndecl_19922 xt_compat_add_offset fndecl 0 19922 &enable_so_cp_change_mtu_fndecl_19922
153281 +enable_so_sector_number_phys_req_19923 sector_number phys_req 0 19923 NULL
153282 +enable_so_dev_init_pre_alt_sd_19924 dev_init_pre_alt sd 0 19924 NULL
153283 +enable_so___usbnet_read_cmd_fndecl_19928 __usbnet_read_cmd fndecl 7 19928 NULL
153284 +enable_so_rate_p54_rx_data_19929 rate p54_rx_data 0 19929 NULL
153285 +enable_so_iic_tpm_write_generic_fndecl_19931 iic_tpm_write_generic fndecl 3 19931 NULL
153286 +enable_so_dvb_ringbuffer_pkt_read_user_fndecl_19932 dvb_ringbuffer_pkt_read_user fndecl 2-3-5 19932 NULL
153287 +enable_so_ima_eventdigest_init_common_fndecl_19937 ima_eventdigest_init_common fndecl 2 19937 NULL
153288 +enable_so_unix_stream_sendmsg_fndecl_19940 unix_stream_sendmsg fndecl 3 19940 NULL
153289 +enable_so_max_buckets_crush_map_19942 max_buckets crush_map 0 19942 NULL
153290 +enable_so_ieee802154_nl_fill_phy_fndecl_19951 ieee802154_nl_fill_phy fndecl 0 19951 NULL
153291 +enable_so_wusbhc_giveback_urb_fndecl_19954 wusbhc_giveback_urb fndecl 3 19954 NULL
153292 +enable_so_snd_rawmidi_kernel_read_fndecl_19963 snd_rawmidi_kernel_read fndecl 3 19963 NULL
153293 +enable_so_ipoib_sendq_size_vardecl_19969 ipoib_sendq_size vardecl 0 19969 NULL
153294 +enable_so_src_len_ccp_passthru_engine_19970 src_len ccp_passthru_engine 0 19970 NULL
153295 +enable_so_vga_arb_read_fndecl_19973 vga_arb_read fndecl 3 19973 NULL
153296 +enable_so_le_max_key_size_read_fndecl_19975 le_max_key_size_read fndecl 3 19975 NULL
153297 +enable_so_size_packet_settings_19984 size packet_settings 0 19984 NULL
153298 +enable_so_palign_qib_devdata_19988 palign qib_devdata 0 19988 NULL
153299 +enable_so_f2fs_insert_range_fndecl_19990 f2fs_insert_range fndecl 2 19990 NULL
153300 +enable_so_hid_register_field_fndecl_19993 hid_register_field fndecl 3-2 19993 NULL
153301 +enable_so_ocfs2_defrag_extent_fndecl_19994 ocfs2_defrag_extent fndecl 3-2 19994 NULL
153302 +enable_so_of_get_nand_ecc_step_size_fndecl_20001 of_get_nand_ecc_step_size fndecl 0 20001 NULL
153303 +enable_so_move_extent_per_page_fndecl_20004 move_extent_per_page fndecl 6-5-4-3 20004 NULL
153304 +enable_so_copybreak_vardecl_sky2_c_20006 copybreak vardecl_sky2.c 0 20006 NULL
153305 +enable_so_def_bpp_sm501_platdata_fbsub_20007 def_bpp sm501_platdata_fbsub 0 20007 NULL
153306 +enable_so_i_inline_size_ext4_inode_info_20015 i_inline_size ext4_inode_info 0 20015 NULL
153307 +enable_so_y_drm_fb_helper_crtc_20016 y drm_fb_helper_crtc 0 20016 NULL nohasharray
153308 +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
153309 +enable_so_ctl_dma_cm109_dev_20023 ctl_dma cm109_dev 0 20023 NULL
153310 +enable_so_shadow_fetch_fndecl_20024 shadow_fetch fndecl 2 20024 NULL
153311 +enable_so_zone_absent_pages_in_node_fndecl_20027 zone_absent_pages_in_node fndecl 0 20027 NULL nohasharray
153312 +enable_so_build_skb_fndecl_20027 build_skb fndecl 2 20027 &enable_so_zone_absent_pages_in_node_fndecl_20027
153313 +enable_so_nr_max310x_devtype_20030 nr max310x_devtype 0 20030 NULL
153314 +enable_so_sample_rate_lola_20032 sample_rate lola 0 20032 NULL
153315 +enable_so_block_size_osst_tape_20034 block_size osst_tape 0 20034 NULL
153316 +enable_so_rcvhdrentsize_qib_devdata_20040 rcvhdrentsize qib_devdata 0 20040 NULL
153317 +enable_so_batadv_interface_change_mtu_fndecl_20043 batadv_interface_change_mtu fndecl 2 20043 NULL nohasharray
153318 +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
153319 +enable_so_ocrdma_alloc_lkey_fndecl_20045 ocrdma_alloc_lkey fndecl 5 20045 NULL
153320 +enable_so_sys_process_vm_writev_fndecl_20051 sys_process_vm_writev fndecl 3-5 20051 NULL
153321 +enable_so_prctl_set_auxv_fndecl_20068 prctl_set_auxv fndecl 3 20068 NULL
153322 +enable_so_max_rqst_sz_nfs4_channel_attrs_20083 max_rqst_sz nfs4_channel_attrs 0 20083 NULL nohasharray
153323 +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
153324 +enable_so_compat_rawv6_setsockopt_fndecl_20084 compat_rawv6_setsockopt fndecl 5 20084 NULL
153325 +enable_so_rxsize_grcan_device_config_20087 rxsize grcan_device_config 0 20087 NULL
153326 +enable_so_ath10k_read_chip_id_fndecl_20090 ath10k_read_chip_id fndecl 3 20090 NULL
153327 +enable_so_bnx2_set_rx_ring_size_fndecl_20092 bnx2_set_rx_ring_size fndecl 2 20092 NULL
153328 +enable_so_r8712_read32_fndecl_20095 r8712_read32 fndecl 0 20095 NULL
153329 +enable_so_reg_count_cs_extent_def_20096 reg_count cs_extent_def 0 20096 NULL
153330 +enable_so_dm_bufio_get_block_number_fndecl_20097 dm_bufio_get_block_number fndecl 0 20097 NULL nohasharray
153331 +enable_so_get_hwirq_msi_domain_ops_20097 get_hwirq msi_domain_ops 0 20097 &enable_so_dm_bufio_get_block_number_fndecl_20097
153332 +enable_so_qla82xx_pci_mem_write_direct_fndecl_20099 qla82xx_pci_mem_write_direct fndecl 2 20099 NULL
153333 +enable_so_minimum_v4l2_ctrl_20103 minimum v4l2_ctrl 0 20103 NULL
153334 +enable_so_do_mincore_fndecl_20105 do_mincore fndecl 0-2-1 20105 NULL
153335 +enable_so_max_acl_len_hci_rp_read_data_block_size_20119 max_acl_len hci_rp_read_data_block_size 0 20119 NULL
153336 +enable_so_ao_chans_pci224_board_20129 ao_chans pci224_board 0 20129 NULL
153337 +enable_so_btrfs_punch_hole_fndecl_20130 btrfs_punch_hole fndecl 3-2 20130 NULL
153338 +enable_so_in_ep_snd_usb_midi_endpoint_info_20132 in_ep snd_usb_midi_endpoint_info 0 20132 NULL
153339 +enable_so_data_sectors_per_block_partition_20138 data_sectors_per_block partition 0 20138 NULL
153340 +enable_so_pos_f_hidg_req_list_20147 pos f_hidg_req_list 0 20147 NULL
153341 +enable_so_ep_in_if_usb_card_20154 ep_in if_usb_card 0 20154 NULL
153342 +enable_so_tpci200_create_device_fndecl_20157 tpci200_create_device fndecl 2 20157 NULL
153343 +enable_so_trans_usbhs_pkt_20158 trans usbhs_pkt 0 20158 NULL
153344 +enable_so_snd_mixart_BA1_read_fndecl_20169 snd_mixart_BA1_read fndecl 5 20169 NULL
153345 +enable_so_nr_gpio_tle62x0_state_20178 nr_gpio tle62x0_state 0 20178 NULL
153346 +enable_so_usb_ftdi_elan_edset_single_fndecl_20181 usb_ftdi_elan_edset_single fndecl 0 20181 NULL nohasharray
153347 +enable_so_swapRB_sd_20181 swapRB sd 0 20181 &enable_so_usb_ftdi_elan_edset_single_fndecl_20181
153348 +enable_so___kmalloc_track_caller_fndecl_20188 __kmalloc_track_caller fndecl 1 20188 NULL
153349 +enable_so_num_counters_vardecl_oprofile_perf_c_20189 num_counters vardecl_oprofile_perf.c 0 20189 NULL
153350 +enable_so_lookup_memtype_fndecl_20192 lookup_memtype fndecl 1 20192 NULL
153351 +enable_so_agp_memory_reserved_vardecl_20196 agp_memory_reserved vardecl 0 20196 NULL nohasharray
153352 +enable_so_iram_base_intel_sst_drv_20196 iram_base intel_sst_drv 0 20196 &enable_so_agp_memory_reserved_vardecl_20196
153353 +enable_so_qxl_gem_object_create_with_handle_fndecl_20198 qxl_gem_object_create_with_handle fndecl 4 20198 NULL
153354 +enable_so_fpage_size_genwqe_sgl_20199 fpage_size genwqe_sgl 0 20199 NULL
153355 +enable_so_exit_info_1_vmcb_control_area_20200 exit_info_1 vmcb_control_area 0 20200 NULL
153356 +enable_so_sectors_per_block_bits_dm_bufio_client_20202 sectors_per_block_bits dm_bufio_client 0 20202 NULL
153357 +enable_so_max_frame_size__mgslpc_info_20204 max_frame_size _mgslpc_info 0 20204 NULL
153358 +enable_so_sbq_len_rx_ring_20205 sbq_len rx_ring 0 20205 NULL
153359 +enable_so_i40e_dbg_netdev_ops_write_fndecl_20206 i40e_dbg_netdev_ops_write fndecl 3 20206 NULL
153360 +enable_so_kfifo_copy_from_user_fndecl_20208 kfifo_copy_from_user fndecl 3-4-0 20208 NULL
153361 +enable_so_dma_limit_tg3_20210 dma_limit tg3 0 20210 NULL
153362 +enable_so_objlayout_write_done_fndecl_20211 objlayout_write_done fndecl 2 20211 NULL nohasharray
153363 +enable_so_sglen_usbtest_param_20211 sglen usbtest_param 0 20211 &enable_so_objlayout_write_done_fndecl_20211
153364 +enable_so_compr_fill_fndecl_20214 compr_fill fndecl 2 20214 NULL
153365 +enable_so_rx_buffer_size_freelQ_20218 rx_buffer_size freelQ 0 20218 NULL
153366 +enable_so_dmah_acm_wb_20221 dmah acm_wb 0 20221 NULL nohasharray
153367 +enable_so_sound_write_fndecl_20221 sound_write fndecl 3 20221 &enable_so_dmah_acm_wb_20221
153368 +enable_so_produce_va_vmci_qp_page_file_info_20224 produce_va vmci_qp_page_file_info 0 20224 NULL
153369 +enable_so_use_sg_osst_buffer_20225 use_sg osst_buffer 0 20225 NULL
153370 +enable_so_iwl_dbgfs_tx_queue_read_fndecl_20232 iwl_dbgfs_tx_queue_read fndecl 3 20232 NULL
153371 +enable_so_ll_rw_extents_stats_seq_write_fndecl_20234 ll_rw_extents_stats_seq_write fndecl 3 20234 NULL
153372 +enable_so_setup_sgl_buf_fndecl_20237 setup_sgl_buf fndecl 4 20237 NULL
153373 +enable_so_msm_gem_import_fndecl_20238 msm_gem_import fndecl 2 20238 NULL
153374 +enable_so_phys_map_info_20239 phys map_info 0 20239 NULL
153375 +enable_so_mac_find_mode_fndecl_20243 mac_find_mode fndecl 4 20243 NULL
153376 +enable_so_vtotal_psb_pipe_20245 vtotal psb_pipe 0 20245 NULL
153377 +enable_so_nilfs_read_super_block_fndecl_20246 nilfs_read_super_block fndecl 3-2 20246 NULL
153378 +enable_so_i2c_writebytes_fndecl_20248 i2c_writebytes fndecl 3 20248 NULL
153379 +enable_so_max_size_inet_frag_queue_20249 max_size inet_frag_queue 0 20249 NULL
153380 +enable_so_ip_append_page_fndecl_20261 ip_append_page fndecl 5-4 20261 NULL
153381 +enable_so_value_len_ocfs2_security_xattr_info_20265 value_len ocfs2_security_xattr_info 0 20265 NULL
153382 +enable_so_arm_setup_iommu_dma_ops_fndecl_20272 arm_setup_iommu_dma_ops fndecl 3 20272 NULL
153383 +enable_so_y_skip_top_mt9t031_20278 y_skip_top mt9t031 0 20278 NULL
153384 +enable_so_fifo_size_eg20t_port_20279 fifo_size eg20t_port 0 20279 NULL
153385 +enable_so_f2fs_xattr_generic_set_fndecl_20280 f2fs_xattr_generic_set fndecl 4 20280 NULL
153386 +enable_so_size_vx_ibl_info_20282 size vx_ibl_info 0 20282 NULL
153387 +enable_so_soc_mbus_bytes_per_line_fndecl_20288 soc_mbus_bytes_per_line fndecl 0-1 20288 NULL
153388 +enable_so_kone_receive_fndecl_20289 kone_receive fndecl 4 20289 NULL
153389 +enable_so_blk_queue_io_min_fndecl_20293 blk_queue_io_min fndecl 2 20293 NULL
153390 +enable_so_rs_switch_to_mimo3_fndecl_20297 rs_switch_to_mimo3 fndecl 6 20297 NULL
153391 +enable_so_gen8_get_total_gtt_size_fndecl_20302 gen8_get_total_gtt_size fndecl 0-1 20302 NULL nohasharray
153392 +enable_so_total_blocks_partition_20302 total_blocks partition 0 20302 &enable_so_gen8_get_total_gtt_size_fndecl_20302 nohasharray
153393 +enable_so_round_pipe_size_fndecl_20302 round_pipe_size fndecl 0 20302 &enable_so_total_blocks_partition_20302
153394 +enable_so_mpegbufs_vardecl_cx231xx_417_c_20303 mpegbufs vardecl_cx231xx-417.c 0 20303 NULL
153395 +enable_so_fallback_aper_order_vardecl_20308 fallback_aper_order vardecl 0 20308 NULL
153396 +enable_so_xfs_dir2_leaf_trim_data_fndecl_20310 xfs_dir2_leaf_trim_data fndecl 3 20310 NULL nohasharray
153397 +enable_so_index_vardecl_nm256_c_20310 index vardecl_nm256.c 0 20310 &enable_so_xfs_dir2_leaf_trim_data_fndecl_20310
153398 +enable_so_cx18_read_pos_fndecl_20312 cx18_read_pos fndecl 3 20312 NULL
153399 +enable_so_short_retry_limit_read_fndecl_20316 short_retry_limit_read fndecl 3 20316 NULL
153400 +enable_so_cas_change_mtu_fndecl_20320 cas_change_mtu fndecl 2 20320 NULL
153401 +enable_so_ati_create_gatt_pages_fndecl_20321 ati_create_gatt_pages fndecl 1 20321 NULL
153402 +enable_so_max_rxsz_cxgbi_ddp_info_20322 max_rxsz cxgbi_ddp_info 0 20322 NULL nohasharray
153403 +enable_so_num_cvts_hdmi_spec_20322 num_cvts hdmi_spec 0 20322 &enable_so_max_rxsz_cxgbi_ddp_info_20322
153404 +enable_so_i_ecryptfs_parse_tag_70_packet_silly_stack_20325 i ecryptfs_parse_tag_70_packet_silly_stack 0 20325 NULL
153405 +enable_so_at24_eeprom_read_fndecl_20329 at24_eeprom_read fndecl 4-0 20329 NULL
153406 +enable_so_qlf_blkno_xfs_dq_logformat_20330 qlf_blkno xfs_dq_logformat 0 20330 NULL
153407 +enable_so_ext4_ext_put_gap_in_cache_fndecl_20333 ext4_ext_put_gap_in_cache fndecl 3 20333 NULL
153408 +enable_so_cxgbi_alloc_big_mem_fndecl_20336 cxgbi_alloc_big_mem fndecl 1 20336 NULL
153409 +enable_so_ss_out_channels_hdspm_20338 ss_out_channels hdspm 0 20338 NULL
153410 +enable_so_offset_videobuf_dmabuf_20339 offset videobuf_dmabuf 0 20339 NULL
153411 +enable_so_request_sz_MPT2SAS_ADAPTER_20341 request_sz MPT2SAS_ADAPTER 0 20341 NULL
153412 +enable_so_translate_gpa_kvm_mmu_20350 translate_gpa kvm_mmu 0 20350 NULL nohasharray
153413 +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
153414 +enable_so_sections_pe_hdr_20351 sections pe_hdr 0 20351 NULL
153415 +enable_so_memblock_find_in_range_fndecl_20356 memblock_find_in_range fndecl 4-3-1-0-2 20356 NULL
153416 +enable_so_chipshift_alauda_card_info_20364 chipshift alauda_card_info 0 20364 NULL
153417 +enable_so_type_usbdevfs_urb_20367 type usbdevfs_urb 0 20367 NULL
153418 +enable_so_scsi_debug_num_tgts_vardecl_scsi_debug_c_20370 scsi_debug_num_tgts vardecl_scsi_debug.c 0 20370 NULL
153419 +enable_so_ll_rw_offset_stats_seq_write_fndecl_20371 ll_rw_offset_stats_seq_write fndecl 3 20371 NULL
153420 +enable_so_hw_block_size_se_dev_attrib_20373 hw_block_size se_dev_attrib 0 20373 NULL nohasharray
153421 +enable_so_cfgctxts_qib_devdata_20373 cfgctxts qib_devdata 0 20373 &enable_so_hw_block_size_se_dev_attrib_20373
153422 +enable_so_nstamps_max_mask_recent_table_20374 nstamps_max_mask recent_table 0 20374 NULL
153423 +enable_so_xfs_qm_fill_state_fndecl_20384 xfs_qm_fill_state fndecl 4 20384 NULL
153424 +enable_so_opts1_rx_desc_20387 opts1 rx_desc 0 20387 NULL
153425 +enable_so_btrfs_del_items_fndecl_20388 btrfs_del_items fndecl 5 20388 NULL
153426 +enable_so_periodic_size_fotg210_hcd_20395 periodic_size fotg210_hcd 0 20395 NULL
153427 +enable_so_leb_size_ubi_device_20396 leb_size ubi_device 0 20396 NULL
153428 +enable_so_xfs_qm_dqusage_adjust_fndecl_20403 xfs_qm_dqusage_adjust fndecl 2 20403 NULL nohasharray
153429 +enable_so_regulator_register_always_on_fndecl_20403 regulator_register_always_on fndecl 1 20403 &enable_so_xfs_qm_dqusage_adjust_fndecl_20403
153430 +enable_so_pwr_rcvd_bcns_cnt_read_fndecl_20405 pwr_rcvd_bcns_cnt_read fndecl 3 20405 NULL
153431 +enable_so_mc_rreg_radeon_device_20418 mc_rreg radeon_device 0 20418 NULL
153432 +enable_so_sd_log_head_gfs2_sbd_20435 sd_log_head gfs2_sbd 0 20435 NULL
153433 +enable_so_blob_len_trusted_key_payload_20437 blob_len trusted_key_payload 0 20437 NULL nohasharray
153434 +enable_so_raw_skid_size_x509_certificate_20437 raw_skid_size x509_certificate 0 20437 &enable_so_blob_len_trusted_key_payload_20437
153435 +enable_so_ncp__vol2io_fndecl_20439 ncp__vol2io fndecl 5 20439 NULL
153436 +enable_so_gigaset_isoc_receive_fndecl_20447 gigaset_isoc_receive fndecl 2 20447 NULL
153437 +enable_so_ib_max_size_mvumi_hba_20452 ib_max_size mvumi_hba 0 20452 NULL
153438 +enable_so_stride_banshee_reg_20459 stride banshee_reg 0 20459 NULL
153439 +enable_so_key_tx_spec_read_fndecl_20461 key_tx_spec_read fndecl 3 20461 NULL
153440 +enable_so_gigaset_if_receive_fndecl_20462 gigaset_if_receive fndecl 3 20462 NULL
153441 +enable_so_xfs_setsize_buftarg_fndecl_20465 xfs_setsize_buftarg fndecl 2 20465 NULL
153442 +enable_so_scsi_end_request_fndecl_20468 scsi_end_request fndecl 3-4 20468 NULL
153443 +enable_so_tx_data_fndecl_20470 tx_data fndecl 4-3 20470 NULL
153444 +enable_so_wMaxCommand_usb_cdc_dmm_desc_20473 wMaxCommand usb_cdc_dmm_desc 0 20473 NULL
153445 +enable_so_iptunnel_pull_header_fndecl_20476 iptunnel_pull_header fndecl 2 20476 NULL nohasharray
153446 +enable_so_vlen_nfsd3_readargs_20476 vlen nfsd3_readargs 0 20476 &enable_so_iptunnel_pull_header_fndecl_20476
153447 +enable_so_gsm_control_rls_fndecl_20490 gsm_control_rls fndecl 3 20490 NULL
153448 +enable_so_rose_recvmsg_fndecl_20491 rose_recvmsg fndecl 3 20491 NULL
153449 +enable_so_ext4_ext_insert_index_fndecl_20492 ext4_ext_insert_index fndecl 4 20492 NULL
153450 +enable_so_pref_width_vmw_display_unit_20493 pref_width vmw_display_unit 0 20493 NULL
153451 +enable_so_pageshift_sddr09_card_info_20494 pageshift sddr09_card_info 0 20494 NULL
153452 +enable_so_nrbchan_mISDNdevice_20497 nrbchan mISDNdevice 0 20497 NULL
153453 +enable_so_ocfs2_extend_xattr_bucket_fndecl_20499 ocfs2_extend_xattr_bucket fndecl 4 20499 NULL
153454 +enable_so_aac_rkt_ioremap_fndecl_20502 aac_rkt_ioremap fndecl 2 20502 NULL nohasharray
153455 +enable_so___f2fs_add_link_fndecl_20502 __f2fs_add_link fndecl 4 20502 &enable_so_aac_rkt_ioremap_fndecl_20502
153456 +enable_so_max_pfn_mapped_vardecl_20503 max_pfn_mapped vardecl 0 20503 NULL nohasharray
153457 +enable_so_nzones_adfs_discrecord_20503 nzones adfs_discrecord 0 20503 &enable_so_max_pfn_mapped_vardecl_20503 nohasharray
153458 +enable_so_id_platform_device_20503 id platform_device 0 20503 &enable_so_nzones_adfs_discrecord_20503
153459 +enable_so_sysfs_create_group_fndecl_20504 sysfs_create_group fndecl 0 20504 NULL
153460 +enable_so_tty_port_register_device_attr_fndecl_20510 tty_port_register_device_attr fndecl 3 20510 NULL
153461 +enable_so_data_len_icmp_bxm_20511 data_len icmp_bxm 0 20511 NULL
153462 +enable_so_newImageSize_mpt_ioctl_replace_fw_20513 newImageSize mpt_ioctl_replace_fw 0 20513 NULL
153463 +enable_so_cifs_write_fndecl_20515 cifs_write fndecl 4 20515 NULL
153464 +enable_so_vdc_mem_base_vml_par_20521 vdc_mem_base vml_par 0 20521 NULL
153465 +enable_so_xtAppend_fndecl_20525 xtAppend fndecl 4 20525 NULL
153466 +enable_so_x86_emulate_instruction_fndecl_20526 x86_emulate_instruction fndecl 2 20526 NULL nohasharray
153467 +enable_so_src_val_x86_instruction_info_20526 src_val x86_instruction_info 0 20526 &enable_so_x86_emulate_instruction_fndecl_20526
153468 +enable_so_expand_downwards_fndecl_20533 expand_downwards fndecl 2 20533 NULL nohasharray
153469 +enable_so_sr_read_fndecl_20533 sr_read fndecl 3 20533 &enable_so_expand_downwards_fndecl_20533
153470 +enable_so_pnfs_generic_pg_init_write_fndecl_20539 pnfs_generic_pg_init_write fndecl 3 20539 NULL
153471 +enable_so_mlx5_core_req_pages_handler_fndecl_20540 mlx5_core_req_pages_handler fndecl 3 20540 NULL
153472 +enable_so_s_first_data_block_ext2_super_block_20541 s_first_data_block ext2_super_block 0 20541 NULL
153473 +enable_so_dti_buf_size_wahc_20547 dti_buf_size wahc 0 20547 NULL
153474 +enable_so_crtc_hdisplay_drm_display_mode_20548 crtc_hdisplay drm_display_mode 0 20548 NULL nohasharray
153475 +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
153476 +enable_so_dataflash_write_fndecl_20550 dataflash_write fndecl 2-3 20550 NULL
153477 +enable_so_dma_base_sst_pdata_20554 dma_base sst_pdata 0 20554 NULL
153478 +enable_so_wacom_calc_hid_res_fndecl_20558 wacom_calc_hid_res fndecl 1 20558 NULL
153479 +enable_so_mtdchar_writeoob_fndecl_20562 mtdchar_writeoob fndecl 3-4 20562 NULL
153480 +enable_so_sg_write_fndecl_20563 sg_write fndecl 3 20563 NULL
153481 +enable_so_isdn_readbchan_fndecl_20570 isdn_readbchan fndecl 5-0 20570 NULL
153482 +enable_so_nullb_indexes_vardecl_null_blk_c_20571 nullb_indexes vardecl_null_blk.c 0 20571 NULL
153483 +enable_so_check_defrag_in_cache_fndecl_20573 check_defrag_in_cache fndecl 3-2 20573 NULL
153484 +enable_so_hp_outs_auto_pin_cfg_20574 hp_outs auto_pin_cfg 0 20574 NULL
153485 +enable_so_fifo_size_pxa_ep_20587 fifo_size pxa_ep 0 20587 NULL
153486 +enable_so_nrof_flowrings_brcmf_pcie_shared_info_20590 nrof_flowrings brcmf_pcie_shared_info 0 20590 NULL
153487 +enable_so_pci_add_cap_save_buffer_fndecl_20593 pci_add_cap_save_buffer fndecl 3 20593 NULL
153488 +enable_so_target_complete_cmd_with_length_fndecl_20597 target_complete_cmd_with_length fndecl 3 20597 NULL
153489 +enable_so_max_deviceinfo_size_pnfs_layoutdriver_type_20599 max_deviceinfo_size pnfs_layoutdriver_type 0 20599 NULL
153490 +enable_so_bblog_shift_mdp_superblock_1_20604 bblog_shift mdp_superblock_1 0 20604 NULL
153491 +enable_so_get_alt_usb_function_20605 get_alt usb_function 0 20605 NULL nohasharray
153492 +enable_so_cdrom_read_block_fndecl_20605 cdrom_read_block fndecl 4-6 20605 &enable_so_get_alt_usb_function_20605
153493 +enable_so_ext4_inode_table_set_fndecl_20611 ext4_inode_table_set fndecl 3 20611 NULL
153494 +enable_so_nilfs_cpfile_set_snapshot_fndecl_20616 nilfs_cpfile_set_snapshot fndecl 2 20616 NULL
153495 +enable_so_ocfs2_allocate_refcount_tree_fndecl_20626 ocfs2_allocate_refcount_tree fndecl 2 20626 NULL
153496 +enable_so___nla_put_nohdr_fndecl_20631 __nla_put_nohdr fndecl 2 20631 NULL
153497 +enable_so_snd_pcm_lib_readv_transfer_fndecl_20635 snd_pcm_lib_readv_transfer fndecl 5 20635 NULL
153498 +enable_so_gx1_frame_buffer_size_fndecl_20638 gx1_frame_buffer_size fndecl 0 20638 NULL
153499 +enable_so_num_comp_vectors_ib_device_20639 num_comp_vectors ib_device 0 20639 NULL
153500 +enable_so_cursor_size_fbcon_ops_20640 cursor_size fbcon_ops 0 20640 NULL
153501 +enable_so_hpi_outstream_write_buf_fndecl_20645 hpi_outstream_write_buf fndecl 3 20645 NULL
153502 +enable_so_offset_iscsi_seq_20646 offset iscsi_seq 0 20646 NULL
153503 +enable_so_nr_pages_ore_io_state_20648 nr_pages ore_io_state 0 20648 NULL
153504 +enable_so_m_pblk_ext4_map_blocks_20649 m_pblk ext4_map_blocks 0 20649 NULL
153505 +enable_so_security_context_to_sid_default_fndecl_20663 security_context_to_sid_default fndecl 2 20663 NULL
153506 +enable_so_dlm_process_incoming_buffer_fndecl_20665 dlm_process_incoming_buffer fndecl 0 20665 NULL nohasharray
153507 +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
153508 +enable_so_kvm_handle_bad_page_fndecl_20668 kvm_handle_bad_page fndecl 2 20668 NULL
153509 +enable_so_shim_size_sst_res_info_20670 shim_size sst_res_info 0 20670 NULL
153510 +enable_so_nilfs_load_super_root_fndecl_20676 nilfs_load_super_root fndecl 3 20676 NULL
153511 +enable_so_max_qp_wr_ib_device_attr_20681 max_qp_wr ib_device_attr 0 20681 NULL
153512 +enable_so_btrfs_dir_name_len_fndecl_20686 btrfs_dir_name_len fndecl 0 20686 NULL
153513 +enable_so_write_to_8820_fndecl_20687 write_to_8820 fndecl 3 20687 NULL
153514 +enable_so_num_evt_qs_be_adapter_20688 num_evt_qs be_adapter 0 20688 NULL
153515 +enable_so_mem_tx_free_mem_blks_read_fndecl_20690 mem_tx_free_mem_blks_read fndecl 3 20690 NULL
153516 +enable_so_SyS_semtimedop_fndecl_20703 SyS_semtimedop fndecl 3 20703 NULL
153517 +enable_so_erase_size_vardecl_mtdram_c_20704 erase_size vardecl_mtdram.c 0 20704 NULL
153518 +enable_so_evtchn_read_fndecl_20706 evtchn_read fndecl 3 20706 NULL
153519 +enable_so_err_dev_e752x_dev_info_20708 err_dev e752x_dev_info 0 20708 NULL
153520 +enable_so_nilfs_sufile_do_free_fndecl_20709 nilfs_sufile_do_free fndecl 2 20709 NULL
153521 +enable_so_src_len_ccp_rsa_engine_20712 src_len ccp_rsa_engine 0 20712 NULL
153522 +enable_so_w_s5p_jpeg_q_data_20716 w s5p_jpeg_q_data 0 20716 NULL
153523 +enable_so_ip_blkno_ocfs2_inode_info_20717 ip_blkno ocfs2_inode_info 0 20717 NULL nohasharray
153524 +enable_so_len_asymmetric_key_id_20717 len asymmetric_key_id 0 20717 &enable_so_ip_blkno_ocfs2_inode_info_20717
153525 +enable_so_dlc_rx_msg_20720 dlc rx_msg 0 20720 NULL
153526 +enable_so_add_range_fndecl_20721 add_range fndecl 5-4 20721 NULL
153527 +enable_so_txq_data_size_ieee80211_hw_20725 txq_data_size ieee80211_hw 0 20725 NULL
153528 +enable_so_sv_nrthreads_svc_serv_20732 sv_nrthreads svc_serv 0 20732 NULL
153529 +enable_so_alloc_smp_resp_fndecl_20733 alloc_smp_resp fndecl 1 20733 NULL
153530 +enable_so_stv0680_set_video_mode_fndecl_20735 stv0680_set_video_mode fndecl 0 20735 NULL
153531 +enable_so_max_io_length_ore_layout_20738 max_io_length ore_layout 0 20738 NULL
153532 +enable_so_bio_integrity_intervals_fndecl_20741 bio_integrity_intervals fndecl 0-2 20741 NULL
153533 +enable_so_read_data_done_iscsi_cmd_20745 read_data_done iscsi_cmd 0 20745 NULL
153534 +enable_so_max_sge_qib_rq_20746 max_sge qib_rq 0 20746 NULL nohasharray
153535 +enable_so_msgbuflen_blogic_adapter_20746 msgbuflen blogic_adapter 0 20746 &enable_so_max_sge_qib_rq_20746
153536 +enable_so_rb_alloc_fndecl_20749 rb_alloc fndecl 1 20749 NULL
153537 +enable_so_sb_pseg_start_nilfs_segment_buffer_20750 sb_pseg_start nilfs_segment_buffer 0 20750 NULL
153538 +enable_so_ath6kl_wmi_probedssid_cmd_fndecl_20751 ath6kl_wmi_probedssid_cmd fndecl 2 20751 NULL nohasharray
153539 +enable_so_ttusb2_msg_fndecl_20751 ttusb2_msg fndecl 4 20751 &enable_so_ath6kl_wmi_probedssid_cmd_fndecl_20751
153540 +enable_so_vmw_setup_otable_base_fndecl_20754 vmw_setup_otable_base fndecl 3 20754 NULL
153541 +enable_so_read_file_antenna_diversity_fndecl_20758 read_file_antenna_diversity fndecl 3 20758 NULL
153542 +enable_so_TransferCount__MPI2_SCSI_IO_REPLY_20759 TransferCount _MPI2_SCSI_IO_REPLY 0 20759 NULL
153543 +enable_so_do_numa_page_fndecl_20764 do_numa_page fndecl 3 20764 NULL nohasharray
153544 +enable_so_r_readdir_offset_ceph_mds_request_20764 r_readdir_offset ceph_mds_request 0 20764 &enable_so_do_numa_page_fndecl_20764
153545 +enable_so_read_in_block_fndecl_20766 read_in_block fndecl 3 20766 NULL
153546 +enable_so_simple_write_to_buffer_fndecl_20769 simple_write_to_buffer fndecl 2-5 20769 NULL
153547 +enable_so_channels_min_snd_soc_pcm_stream_20771 channels_min snd_soc_pcm_stream 0 20771 NULL nohasharray
153548 +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
153549 +enable_so_ltab_sz_ubifs_info_20776 ltab_sz ubifs_info 0 20776 NULL
153550 +enable_so_fat_fats_fat_bios_param_block_20785 fat_fats fat_bios_param_block 0 20785 NULL
153551 +enable_so_orig_x_screen_info_20787 orig_x screen_info 0 20787 NULL nohasharray
153552 +enable_so_ncp_search_for_fileset_fndecl_20787 ncp_search_for_fileset fndecl 6 20787 &enable_so_orig_x_screen_info_20787
153553 +enable_so_final_block_in_request_dio_submit_20788 final_block_in_request dio_submit 0 20788 NULL
153554 +enable_so_map_size_pcmcia_socket_20792 map_size pcmcia_socket 0 20792 NULL
153555 +enable_so_max_seg_size_mmc_host_20795 max_seg_size mmc_host 0 20795 NULL nohasharray
153556 +enable_so_pos_vb2_fileio_buf_20795 pos vb2_fileio_buf 0 20795 &enable_so_max_seg_size_mmc_host_20795
153557 +enable_so_rds_iw_ring_init_fndecl_20797 rds_iw_ring_init fndecl 2 20797 NULL
153558 +enable_so_namelen_xfs_da_args_20803 namelen xfs_da_args 0 20803 NULL nohasharray
153559 +enable_so_win_sz_wmi_addba_req_event_20803 win_sz wmi_addba_req_event 0 20803 &enable_so_namelen_xfs_da_args_20803
153560 +enable_so_compat_sys_migrate_pages_fndecl_20806 compat_sys_migrate_pages fndecl 2 20806 NULL
153561 +enable_so_g_mic_devno_vardecl_mic_main_c_20812 g_mic_devno vardecl_mic_main.c 0 20812 NULL
153562 +enable_so_mgmt_index_event_fndecl_20813 mgmt_index_event fndecl 4 20813 NULL
153563 +enable_so_rcvidx_isac_20815 rcvidx isac 0 20815 NULL
153564 +enable_so_filldir_fndecl_20820 filldir fndecl 3 20820 NULL
153565 +enable_so_fill_write_buffer_fndecl_20821 fill_write_buffer fndecl 3 20821 NULL
153566 +enable_so_irq_msi_desc_20822 irq msi_desc 0 20822 NULL
153567 +enable_so_via686a_device_add_fndecl_20823 via686a_device_add fndecl 1 20823 NULL
153568 +enable_so_aux_size_dm_bufio_client_20827 aux_size dm_bufio_client 0 20827 NULL
153569 +enable_so_drm_fb_helper_single_fb_probe_fndecl_20828 drm_fb_helper_single_fb_probe fndecl 2 20828 NULL
153570 +enable_so_currentXmitRate_StatusRid_20835 currentXmitRate StatusRid 0 20835 NULL nohasharray
153571 +enable_so_compat_do_ip6t_set_ctl_fndecl_20835 compat_do_ip6t_set_ctl fndecl 4 20835 &enable_so_currentXmitRate_StatusRid_20835
153572 +enable_so_mempool_create_node_fndecl_20836 mempool_create_node fndecl 1 20836 NULL
153573 +enable_so_num_crtc_radeon_device_20838 num_crtc radeon_device 0 20838 NULL
153574 +enable_so_alloc_context_fndecl_20841 alloc_context fndecl 1 20841 NULL
153575 +enable_so_pathlen_nfs3_symlinkargs_20843 pathlen nfs3_symlinkargs 0 20843 NULL
153576 +enable_so_udp_sendpage_fndecl_20845 udp_sendpage fndecl 4-3 20845 NULL nohasharray
153577 +enable_so_shmem_pread_slow_fndecl_20845 shmem_pread_slow fndecl 2-3 20845 &enable_so_udp_sendpage_fndecl_20845
153578 +enable_so_dma_init_coherent_memory_fndecl_20846 dma_init_coherent_memory fndecl 3 20846 NULL
153579 +enable_so_store_limit_l_fscache_object_20847 store_limit_l fscache_object 0 20847 NULL
153580 +enable_so_cur_page_block_dio_submit_20851 cur_page_block dio_submit 0 20851 NULL
153581 +enable_so_pkcs7_sig_note_signature_fndecl_20857 pkcs7_sig_note_signature fndecl 5 20857 NULL
153582 +enable_so_lpfc_bg_setup_bpl_fndecl_20862 lpfc_bg_setup_bpl fndecl 0 20862 NULL nohasharray
153583 +enable_so_uinput_ioctl_handler_fndecl_20862 uinput_ioctl_handler fndecl 2 20862 &enable_so_lpfc_bg_setup_bpl_fndecl_20862 nohasharray
153584 +enable_so_uvc_video_stats_dump_fndecl_20862 uvc_video_stats_dump fndecl 0 20862 &enable_so_uinput_ioctl_handler_fndecl_20862
153585 +enable_so_beb_rsvd_pebs_ubi_device_20863 beb_rsvd_pebs ubi_device 0 20863 NULL
153586 +enable_so_num_rx_descs_octeon_nic_if_config_20865 num_rx_descs octeon_nic_if_config 0 20865 NULL
153587 +enable_so_num_mlx4_resource_20869 num mlx4_resource 0 20869 NULL
153588 +enable_so_length_iwl_ucode_tlv_20871 length iwl_ucode_tlv 0 20871 NULL
153589 +enable_so_btrfs_prealloc_file_range_fndecl_20872 btrfs_prealloc_file_range fndecl 3 20872 NULL
153590 +enable_so_nr_hotspot_blocks_smq_policy_20876 nr_hotspot_blocks smq_policy 0 20876 NULL
153591 +enable_so_usb_stor_intr_transfer_fndecl_20883 usb_stor_intr_transfer fndecl 3 20883 NULL
153592 +enable_so_codec_reg_write_file_fndecl_20887 codec_reg_write_file fndecl 3 20887 NULL
153593 +enable_so_cl_local_node_o2nm_cluster_20896 cl_local_node o2nm_cluster 0 20896 NULL
153594 +enable_so_tx_power_ipw2100_priv_20898 tx_power ipw2100_priv 0 20898 NULL nohasharray
153595 +enable_so_idiag_info_size_inet_diag_handler_20898 idiag_info_size inet_diag_handler 0 20898 &enable_so_tx_power_ipw2100_priv_20898
153596 +enable_so_max_rate_idx_iwl_lq_sta_20899 max_rate_idx iwl_lq_sta 0 20899 NULL
153597 +enable_so_check_vendor_extension_fndecl_20901 check_vendor_extension fndecl 1 20901 NULL
153598 +enable_so_num_rows_vardecl_arcfb_c_20902 num_rows vardecl_arcfb.c 0 20902 NULL
153599 +enable_so_radeon_vm_directory_size_fndecl_20909 radeon_vm_directory_size fndecl 0 20909 NULL
153600 +enable_so_write_adapter_mem_fndecl_20913 write_adapter_mem fndecl 3 20913 NULL
153601 +enable_so_n_dir_band_hpfs_super_block_20914 n_dir_band hpfs_super_block 0 20914 NULL nohasharray
153602 +enable_so_dvb_ringbuffer_pkt_write_fndecl_20914 dvb_ringbuffer_pkt_write fndecl 3 20914 &enable_so_n_dir_band_hpfs_super_block_20914
153603 +enable_so_btrfs_next_leaf_fndecl_20915 btrfs_next_leaf fndecl 0 20915 NULL
153604 +enable_so_zisofs_uncompress_block_fndecl_20917 zisofs_uncompress_block fndecl 2-3-6-0-4 20917 NULL
153605 +enable_so_ext3_xattr_find_entry_fndecl_20918 ext3_xattr_find_entry fndecl 0 20918 NULL
153606 +enable_so_key_key_read_fndecl_20922 key_key_read fndecl 3 20922 NULL
153607 +enable_so_mmap_piobufs_fndecl_20927 mmap_piobufs fndecl 4 20927 NULL
153608 +enable_so_qbuf_scan_fndecl_20933 qbuf_scan fndecl 3 20933 NULL
153609 +enable_so_gk20a_instobj_ctor_iommu_fndecl_20953 gk20a_instobj_ctor_iommu fndecl 5-4 20953 NULL
153610 +enable_so_gid_table_len_mthca_limits_20957 gid_table_len mthca_limits 0 20957 NULL
153611 +enable_so_npages_mlx5_buf_20958 npages mlx5_buf 0 20958 NULL
153612 +enable_so__iwl_dbgfs_d3_sram_write_fndecl_20960 _iwl_dbgfs_d3_sram_write fndecl 3 20960 NULL
153613 +enable_so_calc_plane_fndecl_20962 calc_plane fndecl 0-2-1 20962 NULL
153614 +enable_so_range_start_writeback_control_20965 range_start writeback_control 0 20965 NULL
153615 +enable_so_dbDiscardAG_fndecl_20969 dbDiscardAG fndecl 0-3 20969 NULL
153616 +enable_so_count_cma_20973 count cma 0 20973 NULL nohasharray
153617 +enable_so_compat_sys_setsockopt_fndecl_20973 compat_sys_setsockopt fndecl 5 20973 &enable_so_count_cma_20973
153618 +enable_so_ieee80211_if_write_beacon_loss_fndecl_20979 ieee80211_if_write_beacon_loss fndecl 3 20979 NULL
153619 +enable_so_offset_fuse_notify_store_out_20985 offset fuse_notify_store_out 0 20985 NULL
153620 +enable_so___set_extent_bit_fndecl_20986 __set_extent_bit fndecl 3-2 20986 NULL nohasharray
153621 +enable_so_spidev_compat_ioc_message_fndecl_20986 spidev_compat_ioc_message fndecl 2 20986 &enable_so___set_extent_bit_fndecl_20986
153622 +enable_so_dy_fb_image_20988 dy fb_image 0 20988 NULL
153623 +enable_so_gfn_guest_walker32_20990 gfn guest_walker32 0 20990 NULL
153624 +enable_so_do_set_pte_fndecl_20994 do_set_pte fndecl 2 20994 NULL
153625 +enable_so_udf_direct_IO_fndecl_20999 udf_direct_IO fndecl 3 20999 NULL
153626 +enable_so_get_fd_set_fndecl_21001 get_fd_set fndecl 1 21001 NULL
153627 +enable_so_sst_hsw_module_set_param_fndecl_21007 sst_hsw_module_set_param fndecl 5 21007 NULL
153628 +enable_so_cxns_per_ctrl_hba_parameters_21008 cxns_per_ctrl hba_parameters 0 21008 NULL
153629 +enable_so_s_log_cluster_size_ext4_super_block_21014 s_log_cluster_size ext4_super_block 0 21014 NULL
153630 +enable_so_shrink_zone_span_fndecl_21018 shrink_zone_span fndecl 3-2 21018 NULL
153631 +enable_so_create_one_cdev_fndecl_21023 create_one_cdev fndecl 2 21023 NULL
153632 +enable_so___build_skb_fndecl_21024 __build_skb fndecl 2 21024 NULL
153633 +enable_so_minix_new_block_fndecl_21026 minix_new_block fndecl 0 21026 NULL
153634 +enable_so_count_debug_buffer_21028 count debug_buffer 0 21028 NULL
153635 +enable_so_info3_rx_ppdu_start_21029 info3 rx_ppdu_start 0 21029 NULL nohasharray
153636 +enable_so_nvram_write_fndecl_21029 nvram_write fndecl 3 21029 &enable_so_info3_rx_ppdu_start_21029
153637 +enable_so_efivarfs_file_read_fndecl_21030 efivarfs_file_read fndecl 3 21030 NULL
153638 +enable_so_comedi_buf_read_n_available_fndecl_21032 comedi_buf_read_n_available fndecl 0 21032 NULL
153639 +enable_so_fw_resource_count_efi_system_resource_table_21033 fw_resource_count efi_system_resource_table 0 21033 NULL nohasharray
153640 +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
153641 +enable_so_start_range_21034 start range 0 21034 NULL
153642 +enable_so_crtc_vdisplay_drm_display_mode_21037 crtc_vdisplay drm_display_mode 0 21037 NULL
153643 +enable_so_garp_attr_create_fndecl_21048 garp_attr_create fndecl 3 21048 NULL
153644 +enable_so_prep_umr_reg_wqe_fndecl_21050 prep_umr_reg_wqe fndecl 5 21050 NULL
153645 +enable_so_erase_shift_onenand_chip_21052 erase_shift onenand_chip 0 21052 NULL nohasharray
153646 +enable_so_tx_queues_rt2x00_ops_21052 tx_queues rt2x00_ops 0 21052 &enable_so_erase_shift_onenand_chip_21052
153647 +enable_so_xfs_alloc_min_freelist_fndecl_21056 xfs_alloc_min_freelist fndecl 0 21056 NULL
153648 +enable_so_SyS_move_pages_fndecl_21059 SyS_move_pages fndecl 2 21059 NULL
153649 +enable_so_chaoskey_rng_read_fndecl_21064 chaoskey_rng_read fndecl 3 21064 NULL
153650 +enable_so___send_prepared_auth_request_fndecl_21067 __send_prepared_auth_request fndecl 2 21067 NULL
153651 +enable_so_ts_packet_count_cx231xx_tsport_21071 ts_packet_count cx231xx_tsport 0 21071 NULL
153652 +enable_so_usbip_recv_fndecl_21076 usbip_recv fndecl 3 21076 NULL
153653 +enable_so_vcs_write_fndecl_21077 vcs_write fndecl 3 21077 NULL
153654 +enable_so_thread_self_inum_vardecl_thread_self_c_21079 thread_self_inum vardecl_thread_self.c 0 21079 NULL
153655 +enable_so_consume_size_qp_entry_21087 consume_size qp_entry 0 21087 NULL
153656 +enable_so_queue_pages_test_walk_fndecl_21089 queue_pages_test_walk fndecl 2-1 21089 NULL
153657 +enable_so_max_counters_mlx4_caps_21095 max_counters mlx4_caps 0 21095 NULL
153658 +enable_so_ext4_block_truncate_page_fndecl_21098 ext4_block_truncate_page fndecl 3 21098 NULL
153659 +enable_so_ext4_bg_has_super_fndecl_21104 ext4_bg_has_super fndecl 0 21104 NULL
153660 +enable_so_sge_size_ieee_MPT3SAS_ADAPTER_21108 sge_size_ieee MPT3SAS_ADAPTER 0 21108 NULL nohasharray
153661 +enable_so_rb_alloc_aux_fndecl_21108 rb_alloc_aux fndecl 4 21108 &enable_so_sge_size_ieee_MPT3SAS_ADAPTER_21108
153662 +enable_so___vfs_read_fndecl_21109 __vfs_read fndecl 0-3 21109 NULL nohasharray
153663 +enable_so_port_number_board_info_21109 port_number board_info 0 21109 &enable_so___vfs_read_fndecl_21109
153664 +enable_so_dm_rh_get_region_size_fndecl_21112 dm_rh_get_region_size fndecl 0 21112 NULL
153665 +enable_so_memblock_mark_hotplug_fndecl_21114 memblock_mark_hotplug fndecl 2-1 21114 NULL
153666 +enable_so_hdlc_irq_one_fndecl_21115 hdlc_irq_one fndecl 2 21115 NULL nohasharray
153667 +enable_so_max_slots_ocfs2_super_21115 max_slots ocfs2_super 0 21115 &enable_so_hdlc_irq_one_fndecl_21115
153668 +enable_so_header_length_scsi_mode_data_21117 header_length scsi_mode_data 0 21117 NULL
153669 +enable_so_hdrlen_ipv6_opt_hdr_21121 hdrlen ipv6_opt_hdr 0 21121 NULL nohasharray
153670 +enable_so_chunk_mask_dm_exception_store_21121 chunk_mask dm_exception_store 0 21121 &enable_so_hdrlen_ipv6_opt_hdr_21121
153671 +enable_so_produce_size_vmci_transport_21124 produce_size vmci_transport 0 21124 NULL nohasharray
153672 +enable_so_size_ndis_80211_key_21124 size ndis_80211_key 0 21124 &enable_so_produce_size_vmci_transport_21124
153673 +enable_so_virtfn_add_fndecl_21127 virtfn_add fndecl 2 21127 NULL
153674 +enable_so_s_desc_per_block_bits_ext4_sb_info_21130 s_desc_per_block_bits ext4_sb_info 0 21130 NULL
153675 +enable_so_do_add_counters_fndecl_21131 do_add_counters fndecl 3-0 21131 NULL
153676 +enable_so_xfs_bmbt_lookup_eq_fndecl_21134 xfs_bmbt_lookup_eq fndecl 3-4-2 21134 NULL
153677 +enable_so_clk_get_rate_fndecl_21147 clk_get_rate fndecl 0 21147 NULL nohasharray
153678 +enable_so_copied_iscsi_segment_21147 copied iscsi_segment 0 21147 &enable_so_clk_get_rate_fndecl_21147
153679 +enable_so_req_queue_pairs_i40e_vsi_21151 req_queue_pairs i40e_vsi 0 21151 NULL
153680 +enable_so_hsu_dma_prep_slave_sg_fndecl_21155 hsu_dma_prep_slave_sg fndecl 3 21155 NULL
153681 +enable_so_ext4_xattr_find_entry_fndecl_21162 ext4_xattr_find_entry fndecl 0 21162 NULL
153682 +enable_so_blk_end_request_fndecl_21163 blk_end_request fndecl 3 21163 NULL
153683 +enable_so_gfs2_dir_get_existing_buffer_fndecl_21172 gfs2_dir_get_existing_buffer fndecl 2 21172 NULL
153684 +enable_so_mei_write_fndecl_21174 mei_write fndecl 3 21174 NULL nohasharray
153685 +enable_so_xfs_check_block_fndecl_21174 xfs_check_block fndecl 4 21174 &enable_so_mei_write_fndecl_21174
153686 +enable_so_snd_hdsp_capture_copy_fndecl_21176 snd_hdsp_capture_copy fndecl 5 21176 NULL
153687 +enable_so_udf_try_read_meta_fndecl_21178 udf_try_read_meta fndecl 4 21178 NULL
153688 +enable_so_transport_lba_21_fndecl_21182 transport_lba_21 fndecl 0 21182 NULL
153689 +enable_so_usage_index_hid_local_21183 usage_index hid_local 0 21183 NULL
153690 +enable_so_init_ppi_data_fndecl_21184 init_ppi_data fndecl 2 21184 NULL
153691 +enable_so_major_vardecl_dm_c_21185 major vardecl_dm.c 0 21185 NULL
153692 +enable_so_crtc_hsync_end_drm_display_mode_21187 crtc_hsync_end drm_display_mode 0 21187 NULL
153693 +enable_so_ucNumEntries__ATOM_PPLIB_Clock_Voltage_Dependency_Table_21191 ucNumEntries _ATOM_PPLIB_Clock_Voltage_Dependency_Table 0 21191 NULL
153694 +enable_so_sb_inodesize_xfs_sb_21192 sb_inodesize xfs_sb 0 21192 NULL
153695 +enable_so_usbnet_write_cmd_async_fndecl_21200 usbnet_write_cmd_async fndecl 7 21200 NULL
153696 +enable_so_n_ir_fw_ohci_21205 n_ir fw_ohci 0 21205 NULL
153697 +enable_so_mtip_hw_read_registers_fndecl_21206 mtip_hw_read_registers fndecl 3 21206 NULL
153698 +enable_so_drm_plane_helper_update_fndecl_21218 drm_plane_helper_update fndecl 6-7 21218 NULL
153699 +enable_so_length_nand_oobfree_21222 length nand_oobfree 0 21222 NULL
153700 +enable_so_hpfs_get_4sectors_fndecl_21224 hpfs_get_4sectors fndecl 2 21224 NULL
153701 +enable_so_tx_ptr_catc_21231 tx_ptr catc 0 21231 NULL nohasharray
153702 +enable_so_ext4_blks_to_allocate_fndecl_21231 ext4_blks_to_allocate fndecl 0-4-3 21231 &enable_so_tx_ptr_catc_21231
153703 +enable_so_ptr_mask_radeon_ring_21233 ptr_mask radeon_ring 0 21233 NULL
153704 +enable_so_bytes_xfered_mmc_data_21235 bytes_xfered mmc_data 0 21235 NULL
153705 +enable_so_RamAmountKBytes_nvidia_par_21238 RamAmountKBytes nvidia_par 0 21238 NULL nohasharray
153706 +enable_so_num_msix_qlcnic_hardware_context_21238 num_msix qlcnic_hardware_context 0 21238 &enable_so_RamAmountKBytes_nvidia_par_21238
153707 +enable_so_rp_buflen_nfs4_replay_21241 rp_buflen nfs4_replay 0 21241 NULL
153708 +enable_so_ring_size_amdgpu_ih_ring_21243 ring_size amdgpu_ih_ring 0 21243 NULL
153709 +enable_so_fbcon_do_set_font_fndecl_21244 fbcon_do_set_font fndecl 3-2 21244 NULL
153710 +enable_so_nilfs_cpfile_change_cpmode_fndecl_21246 nilfs_cpfile_change_cpmode fndecl 2 21246 NULL
153711 +enable_so_size_seq_buf_21247 size seq_buf 0 21247 NULL nohasharray
153712 +enable_so_rxq_depth_bnad_21247 rxq_depth bnad 0 21247 &enable_so_size_seq_buf_21247
153713 +enable_so_sctp_getsockopt_events_fndecl_21252 sctp_getsockopt_events fndecl 2 21252 NULL
153714 +enable_so_edac_mc_alloc_fndecl_21256 edac_mc_alloc fndecl 4 21256 NULL
153715 +enable_so_ufs_clear_frags_fndecl_21263 ufs_clear_frags fndecl 2 21263 NULL
153716 +enable_so_vc_resize_fndecl_21266 vc_resize fndecl 2-3 21266 NULL nohasharray
153717 +enable_so_num_fh_nfs4_filelayout_segment_21266 num_fh nfs4_filelayout_segment 0 21266 &enable_so_vc_resize_fndecl_21266
153718 +enable_so_elfcorebuf_sz_vardecl_vmcore_c_21270 elfcorebuf_sz vardecl_vmcore.c 0 21270 NULL
153719 +enable_so_object_name_len_compat_ncp_objectname_ioctl_21274 object_name_len compat_ncp_objectname_ioctl 0 21274 NULL
153720 +enable_so_gsi_top_vardecl_21275 gsi_top vardecl 0 21275 NULL
153721 +enable_so_nfs23_validate_mount_data_fndecl_21276 nfs23_validate_mount_data fndecl 0 21276 NULL
153722 +enable_so_hsync_len_fb_var_screeninfo_21279 hsync_len fb_var_screeninfo 0 21279 NULL
153723 +enable_so_height_simplefb_params_21280 height simplefb_params 0 21280 NULL
153724 +enable_so_fm10k_alloc_q_vector_fndecl_21285 fm10k_alloc_q_vector fndecl 6-4 21285 NULL
153725 +enable_so_max_channels_atiixp_21295 max_channels atiixp 0 21295 NULL
153726 +enable_so_cmds_max_iscsi_session_21296 cmds_max iscsi_session 0 21296 NULL
153727 +enable_so_tx_tx_starts_read_fndecl_21298 tx_tx_starts_read fndecl 3 21298 NULL
153728 +enable_so_osd_yres_vardecl_ivtvfb_c_21299 osd_yres vardecl_ivtvfb.c 0 21299 NULL nohasharray
153729 +enable_so_count_nfsd3_readdirres_21299 count nfsd3_readdirres 0 21299 &enable_so_osd_yres_vardecl_ivtvfb_c_21299 nohasharray
153730 +enable_so_efx_rx_deliver_fndecl_21299 efx_rx_deliver fndecl 4 21299 &enable_so_count_nfsd3_readdirres_21299
153731 +enable_so_wSamplesPerFrame_uac_format_type_ii_discrete_descriptor_21300 wSamplesPerFrame uac_format_type_ii_discrete_descriptor 0 21300 NULL
153732 +enable_so_nvdimm_major_vardecl_21302 nvdimm_major vardecl 0 21302 NULL
153733 +enable_so_xblk_next_xblk_qnx4_xblk_21303 xblk_next_xblk qnx4_xblk 0 21303 NULL
153734 +enable_so_tx_num_pg_ch_pm_21307 tx_num_pg ch_pm 0 21307 NULL
153735 +enable_so_aligned_kmalloc_fndecl_21311 aligned_kmalloc fndecl 1 21311 NULL
153736 +enable_so_num_paths_bna_rx_config_21315 num_paths bna_rx_config 0 21315 NULL
153737 +enable_so_fuse_copy_page_fndecl_21316 fuse_copy_page fndecl 4-3 21316 NULL
153738 +enable_so_tcp_fragment_fndecl_21318 tcp_fragment fndecl 3 21318 NULL
153739 +enable_so__iwl_dbgfs_tx_flush_write_fndecl_21320 _iwl_dbgfs_tx_flush_write fndecl 3 21320 NULL
153740 +enable_so_packet_present_len_cfg80211_wowlan_wakeup_21321 packet_present_len cfg80211_wowlan_wakeup 0 21321 NULL nohasharray
153741 +enable_so_sq_len_queue_set_21321 sq_len queue_set 0 21321 &enable_so_packet_present_len_cfg80211_wowlan_wakeup_21321
153742 +enable_so_mincore_unmapped_range_fndecl_21322 mincore_unmapped_range fndecl 1 21322 NULL
153743 +enable_so_UniformBlockSizeShift_qinfo_chip_21323 UniformBlockSizeShift qinfo_chip 0 21323 NULL
153744 +enable_so_word14_lpfc_mbx_read_config_21331 word14 lpfc_mbx_read_config 0 21331 NULL
153745 +enable_so_tx_ucast_rate_target_stats_21336 tx_ucast_rate target_stats 0 21336 NULL
153746 +enable_so_i915_compat_ioctl_fndecl_21339 i915_compat_ioctl fndecl 2 21339 NULL
153747 +enable_so_fl_dump_key_val_fndecl_21344 fl_dump_key_val fndecl 6 21344 NULL
153748 +enable_so_snd_util_mem_alloc_fndecl_21347 snd_util_mem_alloc fndecl 2 21347 NULL
153749 +enable_so_h_blkno_ocfs2_extent_block_21357 h_blkno ocfs2_extent_block 0 21357 NULL nohasharray
153750 +enable_so_nfs_direct_wait_fndecl_21357 nfs_direct_wait fndecl 0 21357 &enable_so_h_blkno_ocfs2_extent_block_21357
153751 +enable_so_videobuf_pages_to_sg_fndecl_21359 videobuf_pages_to_sg fndecl 3-4-2 21359 NULL
153752 +enable_so_igbvf_change_mtu_fndecl_21361 igbvf_change_mtu fndecl 2 21361 NULL
153753 +enable_so_ro_map_rpcrdma_memreg_ops_21369 ro_map rpcrdma_memreg_ops 0 21369 NULL
153754 +enable_so_pad_ieee80211_vendor_radiotap_21376 pad ieee80211_vendor_radiotap 0 21376 NULL
153755 +enable_so_chunk_size_dm_exception_store_21381 chunk_size dm_exception_store 0 21381 NULL
153756 +enable_so_inppos_net_local_21383 inppos net_local 0 21383 NULL
153757 +enable_so_num_vfs_enic_21386 num_vfs enic 0 21386 NULL
153758 +enable_so_temp_count_applesmc_registers_21387 temp_count applesmc_registers 0 21387 NULL
153759 +enable_so_ci_ll_write_fndecl_21391 ci_ll_write fndecl 4 21391 NULL
153760 +enable_so_vc_scan_lines_vc_data_21393 vc_scan_lines vc_data 0 21393 NULL
153761 +enable_so_digest_size_dm_verity_21399 digest_size dm_verity 0 21399 NULL
153762 +enable_so_pg_count_agp_allocate32_21404 pg_count agp_allocate32 0 21404 NULL
153763 +enable_so_v4l2_fh_open_fndecl_21406 v4l2_fh_open fndecl 0 21406 NULL
153764 +enable_so_ext4_inode_blocks_set_fndecl_21407 ext4_inode_blocks_set fndecl 0 21407 NULL nohasharray
153765 +enable_so_length_r3964_block_header_21407 length r3964_block_header 0 21407 &enable_so_ext4_inode_blocks_set_fndecl_21407
153766 +enable_so_mesh_id_len_ieee80211_if_mesh_21412 mesh_id_len ieee80211_if_mesh 0 21412 NULL
153767 +enable_so_ex_length_extent_s_21417 ex_length extent_s 0 21417 NULL
153768 +enable_so_ping_recvmsg_fndecl_21422 ping_recvmsg fndecl 3 21422 NULL
153769 +enable_so_managed_pages_zone_21425 managed_pages zone 0 21425 NULL
153770 +enable_so_max_ipath_lkey_table_21431 max ipath_lkey_table 0 21431 NULL
153771 +enable_so_intbufferhandle_kaweth_device_21438 intbufferhandle kaweth_device 0 21438 NULL nohasharray
153772 +enable_so_tool_spad_write_fndecl_21438 tool_spad_write fndecl 3 21438 &enable_so_intbufferhandle_kaweth_device_21438
153773 +enable_so_sctp_setsockopt_auth_key_fndecl_21442 sctp_setsockopt_auth_key fndecl 3 21442 NULL
153774 +enable_so_major_vardecl_pg_c_21451 major vardecl_pg.c 0 21451 NULL
153775 +enable_so_buffer_size_vardecl_event_buffer_c_21452 buffer_size vardecl_event_buffer.c 0 21452 NULL
153776 +enable_so_video_width_sis_video_info_21454 video_width sis_video_info 0 21454 NULL
153777 +enable_so_stripes_stripe_c_21457 stripes stripe_c 0 21457 NULL
153778 +enable_so_indirect2direct_fndecl_21459 indirect2direct fndecl 6 21459 NULL
153779 +enable_so_wp_pfn_shared_fndecl_21469 wp_pfn_shared fndecl 3 21469 NULL nohasharray
153780 +enable_so_acpi_current_gpe_count_vardecl_21469 acpi_current_gpe_count vardecl 0 21469 &enable_so_wp_pfn_shared_fndecl_21469
153781 +enable_so_msm_otg_mode_write_fndecl_21471 msm_otg_mode_write fndecl 3 21471 NULL
153782 +enable_so_ufs_inode_by_name_fndecl_21473 ufs_inode_by_name fndecl 0 21473 NULL
153783 +enable_so_ezusb_access_ltv_fndecl_21485 ezusb_access_ltv fndecl 3 21485 NULL
153784 +enable_so_mmio_start_fb_fix_screeninfo_21486 mmio_start fb_fix_screeninfo 0 21486 NULL
153785 +enable_so_fuse_do_ioctl_fndecl_21491 fuse_do_ioctl fndecl 2 21491 NULL
153786 +enable_so_hpfs_ea_ext_remove_fndecl_21492 hpfs_ea_ext_remove fndecl 4-2 21492 NULL
153787 +enable_so_memsize_vgastate_21493 memsize vgastate 0 21493 NULL nohasharray
153788 +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
153789 +enable_so_video_pbase_vivid_dev_21503 video_pbase vivid_dev 0 21503 NULL
153790 +enable_so_module_load_offset_vardecl_module_c_21518 module_load_offset vardecl_module.c 0 21518 NULL
153791 +enable_so_max_io_support_mvumi_hs_page1_21519 max_io_support mvumi_hs_page1 0 21519 NULL
153792 +enable_so_fifo_size_hscx_hw_21522 fifo_size hscx_hw 0 21522 NULL nohasharray
153793 +enable_so_c67x00_urb_dequeue_fndecl_21522 c67x00_urb_dequeue fndecl 3 21522 &enable_so_fifo_size_hscx_hw_21522
153794 +enable_so_data_offset_mdp_superblock_1_21524 data_offset mdp_superblock_1 0 21524 NULL nohasharray
153795 +enable_so_intel_sdvo_set_value_fndecl_21524 intel_sdvo_set_value fndecl 4 21524 &enable_so_data_offset_mdp_superblock_1_21524
153796 +enable_so_kvm_clear_guest_page_fndecl_21527 kvm_clear_guest_page fndecl 2-4 21527 NULL
153797 +enable_so_xennet_max_queues_vardecl_xen_netfront_c_21530 xennet_max_queues vardecl_xen-netfront.c 0 21530 NULL nohasharray
153798 +enable_so_rd_write_fndecl_21530 rd_write fndecl 3 21530 &enable_so_xennet_max_queues_vardecl_xen_netfront_c_21530
153799 +enable_so_ooblen_mtd_oob_ops_21531 ooblen mtd_oob_ops 0 21531 NULL
153800 +enable_so_hfsplus_find_init_fndecl_21533 hfsplus_find_init fndecl 0 21533 NULL nohasharray
153801 +enable_so_alloc_btrfs_bio_fndecl_21533 alloc_btrfs_bio fndecl 2-1 21533 &enable_so_hfsplus_find_init_fndecl_21533 nohasharray
153802 +enable_so_picolcd_fb_write_fndecl_21533 picolcd_fb_write fndecl 3 21533 &enable_so_alloc_btrfs_bio_fndecl_21533 nohasharray
153803 +enable_so_nr_bos_drm_msm_gem_submit_21533 nr_bos drm_msm_gem_submit 0 21533 &enable_so_picolcd_fb_write_fndecl_21533
153804 +enable_so_zr364xx_read_fndecl_21537 zr364xx_read fndecl 3 21537 NULL
153805 +enable_so_viafb_iga2_odev_proc_write_fndecl_21544 viafb_iga2_odev_proc_write fndecl 3 21544 NULL
153806 +enable_so_ql_get_full_dup_fndecl_21549 ql_get_full_dup fndecl 0 21549 NULL
153807 +enable_so_nSkipped_vardecl_gl860_c_21557 nSkipped vardecl_gl860.c 0 21557 NULL
153808 +enable_so___erst_read_to_erange_fndecl_21558 __erst_read_to_erange fndecl 0-1 21558 NULL
153809 +enable_so_sl_max_ip6_sf_socklist_21563 sl_max ip6_sf_socklist 0 21563 NULL
153810 +enable_so_log_sq_stride_mlx4_ib_create_qp_21564 log_sq_stride mlx4_ib_create_qp 0 21564 NULL
153811 +enable_so_total_len_ieee802_11_elems_21565 total_len ieee802_11_elems 0 21565 NULL
153812 +enable_so_rtl_port_map_fndecl_21570 rtl_port_map fndecl 2-1 21570 NULL
153813 +enable_so_start_resource_21572 start resource 0 21572 NULL nohasharray
153814 +enable_so_cont_extent_rock_state_21572 cont_extent rock_state 0 21572 &enable_so_start_resource_21572
153815 +enable_so_le_min_key_size_write_fndecl_21573 le_min_key_size_write fndecl 3 21573 NULL
153816 +enable_so_uv_possible_blades_vardecl_21579 uv_possible_blades vardecl 0 21579 NULL
153817 +enable_so_il_dbgfs_sensitivity_read_fndecl_21585 il_dbgfs_sensitivity_read fndecl 3 21585 NULL
153818 +enable_so_xfs_buf_map_from_irec_fndecl_21587 xfs_buf_map_from_irec fndecl 5 21587 NULL
153819 +enable_so_buf_len_wmi_mgmt_rx_hdr_v1_21592 buf_len wmi_mgmt_rx_hdr_v1 0 21592 NULL
153820 +enable_so_device_count_vardecl_portman2x4_c_21593 device_count vardecl_portman2x4.c 0 21593 NULL
153821 +enable_so_myri10ge_initial_mtu_vardecl_myri10ge_c_21595 myri10ge_initial_mtu vardecl_myri10ge.c 0 21595 NULL nohasharray
153822 +enable_so_virtnet_set_queues_fndecl_21595 virtnet_set_queues fndecl 2 21595 &enable_so_myri10ge_initial_mtu_vardecl_myri10ge_c_21595
153823 +enable_so_xcl_max_payload_svc_xprt_class_21596 xcl_max_payload svc_xprt_class 0 21596 NULL
153824 +enable_so_st_kim_recv_fndecl_21600 st_kim_recv fndecl 3 21600 NULL
153825 +enable_so_isdn_v110_open_fndecl_21601 isdn_v110_open fndecl 3 21601 NULL
153826 +enable_so_irq_dma_cm109_dev_21602 irq_dma cm109_dev 0 21602 NULL nohasharray
153827 +enable_so_do_otp_write_fndecl_21602 do_otp_write fndecl 2 21602 &enable_so_irq_dma_cm109_dev_21602
153828 +enable_so_p54spi_spi_write_dma_fndecl_21608 p54spi_spi_write_dma fndecl 4 21608 NULL nohasharray
153829 +enable_so_hfcpci_empty_fifo_fndecl_21608 hfcpci_empty_fifo fndecl 4 21608 &enable_so_p54spi_spi_write_dma_fndecl_21608 nohasharray
153830 +enable_so_snd_seq_pool_new_fndecl_21608 snd_seq_pool_new fndecl 1 21608 &enable_so_hfcpci_empty_fifo_fndecl_21608
153831 +enable_so_cw1200_spi_memcpy_toio_fndecl_21615 cw1200_spi_memcpy_toio fndecl 4 21615 NULL nohasharray
153832 +enable_so_alloc_irq_from_domain_fndecl_21615 alloc_irq_from_domain fndecl 3 21615 &enable_so_cw1200_spi_memcpy_toio_fndecl_21615
153833 +enable_so_rxpipe_rx_prep_beacon_drop_read_fndecl_21616 rxpipe_rx_prep_beacon_drop_read fndecl 3 21616 NULL
153834 +enable_so_size_meye_grab_buffer_21622 size meye_grab_buffer 0 21622 NULL
153835 +enable_so_num_snaps_ceph_snap_realm_21623 num_snaps ceph_snap_realm 0 21623 NULL
153836 +enable_so_sector_r1bio_21627 sector r1bio 0 21627 NULL
153837 +enable_so___lbtf_cmd_fndecl_21631 __lbtf_cmd fndecl 4 21631 NULL
153838 +enable_so_hlength_iscsi_hdr_21640 hlength iscsi_hdr 0 21640 NULL
153839 +enable_so_ioremap_nocache_fndecl_21652 ioremap_nocache fndecl 2-1 21652 NULL nohasharray
153840 +enable_so_nvram_npiv_size_qla_hw_data_21652 nvram_npiv_size qla_hw_data 0 21652 &enable_so_ioremap_nocache_fndecl_21652
153841 +enable_so_tps6507x_i2c_read_device_fndecl_21660 tps6507x_i2c_read_device fndecl 3 21660 NULL
153842 +enable_so_overlay_cap_left_vivid_dev_21663 overlay_cap_left vivid_dev 0 21663 NULL nohasharray
153843 +enable_so_ath6kl_wmi_get_rate_fndecl_21663 ath6kl_wmi_get_rate fndecl 0 21663 &enable_so_overlay_cap_left_vivid_dev_21663
153844 +enable_so_update_pmkid_fndecl_21666 update_pmkid fndecl 4 21666 NULL
153845 +enable_so_affs_file_fsync_fndecl_21669 affs_file_fsync fndecl 2-3 21669 NULL
153846 +enable_so_length_ccp_dma_info_21671 length ccp_dma_info 0 21671 NULL nohasharray
153847 +enable_so_bio_alloc_bioset_fndecl_21671 bio_alloc_bioset fndecl 2 21671 &enable_so_length_ccp_dma_info_21671
153848 +enable_so_start_data_prctl_mm_map_21673 start_data prctl_mm_map 0 21673 NULL
153849 +enable_so_in_min_chans_snd_card_asihpi_21686 in_min_chans snd_card_asihpi 0 21686 NULL
153850 +enable_so_b43legacy_debugfs_read_fndecl_21690 b43legacy_debugfs_read fndecl 3 21690 NULL
153851 +enable_so_fc_fcp_send_data_fndecl_21692 fc_fcp_send_data fndecl 4-3 21692 NULL
153852 +enable_so_resync_max_sectors_mddev_21693 resync_max_sectors mddev 0 21693 NULL
153853 +enable_so_max_pkt_size_pktgen_dev_21696 max_pkt_size pktgen_dev 0 21696 NULL nohasharray
153854 +enable_so_bsg_job_size_request_queue_21696 bsg_job_size request_queue 0 21696 &enable_so_max_pkt_size_pktgen_dev_21696
153855 +enable_so_ext4_get_inode_loc_fndecl_21703 ext4_get_inode_loc fndecl 0 21703 NULL
153856 +enable_so_nfsacl_encode_fndecl_21708 nfsacl_encode fndecl 2-0 21708 NULL nohasharray
153857 +enable_so_pread_dvb_ringbuffer_21708 pread dvb_ringbuffer 0 21708 &enable_so_nfsacl_encode_fndecl_21708
153858 +enable_so_get_rndis_request_fndecl_21709 get_rndis_request fndecl 3 21709 NULL
153859 +enable_so_batadv_tvlv_container_list_size_fndecl_21711 batadv_tvlv_container_list_size fndecl 0 21711 NULL
153860 +enable_so_residual_fcpio_icmnd_cmpl_21718 residual fcpio_icmnd_cmpl 0 21718 NULL
153861 +enable_so_set_blocksize_fndecl_21720 set_blocksize fndecl 2 21720 NULL
153862 +enable_so_squashfs_read_fragment_index_table_fndecl_21721 squashfs_read_fragment_index_table fndecl 4 21721 NULL
153863 +enable_so_len_nfs4_label_21722 len nfs4_label 0 21722 NULL
153864 +enable_so_buff_size_host_cmd_ds_txbuf_cfg_21725 buff_size host_cmd_ds_txbuf_cfg 0 21725 NULL
153865 +enable_so_hpfs_set_ea_fndecl_21731 hpfs_set_ea fndecl 5 21731 NULL
153866 +enable_so_groups_netlink_kernel_cfg_21741 groups netlink_kernel_cfg 0 21741 NULL
153867 +enable_so_blk_rq_map_integrity_sg_fndecl_21744 blk_rq_map_integrity_sg fndecl 0 21744 NULL
153868 +enable_so_smk_write_syslog_fndecl_21746 smk_write_syslog fndecl 3 21746 NULL
153869 +enable_so_skb_ts_get_next_block_fndecl_21748 skb_ts_get_next_block fndecl 1 21748 NULL
153870 +enable_so___ceph_setxattr_fndecl_21751 __ceph_setxattr fndecl 4 21751 NULL
153871 +enable_so_bufsiz_mousedev_client_21759 bufsiz mousedev_client 0 21759 NULL
153872 +enable_so_width_tm6000_fh_21761 width tm6000_fh 0 21761 NULL nohasharray
153873 +enable_so_max_nr_vardecl_exynos_combiner_c_21761 max_nr vardecl_exynos-combiner.c 0 21761 &enable_so_width_tm6000_fh_21761
153874 +enable_so_req_lim_delta_srp_login_rsp_21762 req_lim_delta srp_login_rsp 0 21762 NULL
153875 +enable_so_br_startblock_xfs_bmbt_irec_21769 br_startblock xfs_bmbt_irec 0 21769 NULL
153876 +enable_so_regmap_get_val_bytes_fndecl_21774 regmap_get_val_bytes fndecl 0 21774 NULL
153877 +enable_so_wlcore_rate_to_idx_fndecl_21777 wlcore_rate_to_idx fndecl 0 21777 NULL nohasharray
153878 +enable_so_ath6kl_fwlog_mask_read_fndecl_21777 ath6kl_fwlog_mask_read fndecl 3 21777 &enable_so_wlcore_rate_to_idx_fndecl_21777
153879 +enable_so_byte_len_spi_eeprom_21786 byte_len spi_eeprom 0 21786 NULL
153880 +enable_so_tpg_alloc_fndecl_21789 tpg_alloc fndecl 2 21789 NULL
153881 +enable_so_find_group_dir_fndecl_21790 find_group_dir fndecl 0 21790 NULL
153882 +enable_so_idetape_chrdev_read_fndecl_21794 idetape_chrdev_read fndecl 3 21794 NULL
153883 +enable_so_iwl_dbgfs_log_event_read_fndecl_21800 iwl_dbgfs_log_event_read fndecl 3 21800 NULL
153884 +enable_so_reg_stride_regmap_21801 reg_stride regmap 0 21801 NULL nohasharray
153885 +enable_so___set_print_fmt_fndecl_21801 __set_print_fmt fndecl 0 21801 &enable_so_reg_stride_regmap_21801
153886 +enable_so_num_vss_hpf_cfgs_wm8994_pdata_21802 num_vss_hpf_cfgs wm8994_pdata 0 21802 NULL
153887 +enable_so_ecryptfs_encrypt_and_encode_filename_fndecl_21806 ecryptfs_encrypt_and_encode_filename fndecl 6 21806 NULL
153888 +enable_so_hwi_ws_sz_hba_parameters_21815 hwi_ws_sz hba_parameters 0 21815 NULL
153889 +enable_so_numacb_vardecl_21828 numacb vardecl 0 21828 NULL
153890 +enable_so_snd_pcm_plug_slave_format_fndecl_21831 snd_pcm_plug_slave_format fndecl 0-1 21831 NULL
153891 +enable_so_check_load_and_stores_fndecl_21836 check_load_and_stores fndecl 2 21836 NULL nohasharray
153892 +enable_so_firm_cfg_version_AdapterControlBlock_21836 firm_cfg_version AdapterControlBlock 0 21836 &enable_so_check_load_and_stores_fndecl_21836
153893 +enable_so_nss_rate_info_21838 nss rate_info 0 21838 NULL nohasharray
153894 +enable_so_device_create_vargs_fndecl_21838 device_create_vargs fndecl 3 21838 &enable_so_nss_rate_info_21838 nohasharray
153895 +enable_so_n_descsz_elf32_note_21838 n_descsz elf32_note 0 21838 &enable_so_device_create_vargs_fndecl_21838
153896 +enable_so_enable_read_fndecl_21846 enable_read fndecl 3 21846 NULL
153897 +enable_so_length_acpi_table_desc_21847 length acpi_table_desc 0 21847 NULL nohasharray
153898 +enable_so_btrfs_file_extent_inline_len_fndecl_21847 btrfs_file_extent_inline_len fndecl 0 21847 &enable_so_length_acpi_table_desc_21847
153899 +enable_so__ore_get_io_state_fndecl_21861 _ore_get_io_state fndecl 5-4-3 21861 NULL nohasharray
153900 +enable_so_data_read_hwrng_21861 data_read hwrng 0 21861 &enable_so__ore_get_io_state_fndecl_21861
153901 +enable_so_update_hidden_ssid_fndecl_21871 update_hidden_ssid fndecl 0 21871 NULL
153902 +enable_so_sizeimage_vim2m_q_data_21875 sizeimage vim2m_q_data 0 21875 NULL nohasharray
153903 +enable_so_ext4_zero_partial_blocks_fndecl_21875 ext4_zero_partial_blocks fndecl 3-4 21875 &enable_so_sizeimage_vim2m_q_data_21875
153904 +enable_so_ad_sd_read_reg_fndecl_21876 ad_sd_read_reg fndecl 3 21876 NULL nohasharray
153905 +enable_so_mlx4_init_icm_table_fndecl_21876 mlx4_init_icm_table fndecl 4-5 21876 &enable_so_ad_sd_read_reg_fndecl_21876
153906 +enable_so__drbd_send_page_fndecl_21886 _drbd_send_page fndecl 4 21886 NULL nohasharray
153907 +enable_so___copy_to_user_ll_fndecl_21886 __copy_to_user_ll fndecl 0 21886 &enable_so__drbd_send_page_fndecl_21886
153908 +enable_so_picolcd_debug_reset_write_fndecl_21888 picolcd_debug_reset_write fndecl 3 21888 NULL
153909 +enable_so_bio_integrity_alloc_fndecl_21889 bio_integrity_alloc fndecl 3 21889 NULL
153910 +enable_so_npwm_pwm_chip_21895 npwm pwm_chip 0 21895 NULL
153911 +enable_so_fat_get_block_fndecl_21902 fat_get_block fndecl 2 21902 NULL
153912 +enable_so_nodesize_btrfs_super_block_21912 nodesize btrfs_super_block 0 21912 NULL
153913 +enable_so_ieee80211_build_preq_ies_fndecl_21915 ieee80211_build_preq_ies fndecl 0-6 21915 NULL
153914 +enable_so_sym_compute_residual_fndecl_21916 sym_compute_residual fndecl 0 21916 NULL
153915 +enable_so_addr_width_snd_dmaengine_dai_dma_data_21920 addr_width snd_dmaengine_dai_dma_data 0 21920 NULL
153916 +enable_so_ceph_osdc_new_request_fndecl_21921 ceph_osdc_new_request fndecl 7 21921 NULL
153917 +enable_so_membase_pm8001_hba_memspace_21924 membase pm8001_hba_memspace 0 21924 NULL nohasharray
153918 +enable_so_max_q_depth_req_que_21924 max_q_depth req_que 0 21924 &enable_so_membase_pm8001_hba_memspace_21924
153919 +enable_so_ath6kl_sdio_bmi_read_fndecl_21930 ath6kl_sdio_bmi_read fndecl 3 21930 NULL
153920 +enable_so_rx_eth_fndecl_21931 rx_eth fndecl 4 21931 NULL
153921 +enable_so_page_cache_async_readahead_fndecl_21944 page_cache_async_readahead fndecl 5 21944 NULL nohasharray
153922 +enable_so_u32_array_read_fndecl_21944 u32_array_read fndecl 3 21944 &enable_so_page_cache_async_readahead_fndecl_21944 nohasharray
153923 +enable_so_mei_dbgfs_read_meclients_fndecl_21944 mei_dbgfs_read_meclients fndecl 3 21944 &enable_so_u32_array_read_fndecl_21944
153924 +enable_so_ssb_bus_ssbbus_register_fndecl_21946 ssb_bus_ssbbus_register fndecl 2 21946 NULL
153925 +enable_so_in_pipe_ttusb_dec_21947 in_pipe ttusb_dec 0 21947 NULL
153926 +enable_so_xprt_max_tcp_slot_table_entries_vardecl_xprtsock_c_21949 xprt_max_tcp_slot_table_entries vardecl_xprtsock.c 0 21949 NULL
153927 +enable_so_do_update_counters_fndecl_21952 do_update_counters fndecl 4 21952 NULL
153928 +enable_so_nrprocs_rpc_version_21954 nrprocs rpc_version 0 21954 NULL
153929 +enable_so_sel_write_avc_cache_threshold_fndecl_21955 sel_write_avc_cache_threshold fndecl 3 21955 NULL
153930 +enable_so_length_iscsi_datain_21959 length iscsi_datain 0 21959 NULL
153931 +enable_so_ocfs2_find_refcount_rec_in_rl_fndecl_21962 ocfs2_find_refcount_rec_in_rl fndecl 3-4 21962 NULL
153932 +enable_so_num_desc_qlcnic_host_rds_ring_21963 num_desc qlcnic_host_rds_ring 0 21963 NULL
153933 +enable_so_dblock_gfs2_journal_extent_21971 dblock gfs2_journal_extent 0 21971 NULL nohasharray
153934 +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
153935 +enable_so_bulk_out_size_usb_cardstate_21974 bulk_out_size usb_cardstate 0 21974 NULL
153936 +enable_so_fat_start_msdos_sb_info_21975 fat_start msdos_sb_info 0 21975 NULL nohasharray
153937 +enable_so_mlx4_buddy_init_fndecl_21975 mlx4_buddy_init fndecl 2 21975 &enable_so_fat_start_msdos_sb_info_21975
153938 +enable_so_nxt200x_writebytes_fndecl_21977 nxt200x_writebytes fndecl 4 21977 NULL nohasharray
153939 +enable_so_donor_start_move_extent_21977 donor_start move_extent 0 21977 &enable_so_nxt200x_writebytes_fndecl_21977
153940 +enable_so_ieee80211_if_read_dot11MeshHWMPRannInterval_fndecl_21978 ieee80211_if_read_dot11MeshHWMPRannInterval fndecl 3 21978 NULL
153941 +enable_so_calc_fat_clusters_fndecl_21982 calc_fat_clusters fndecl 0 21982 NULL
153942 +enable_so_num_tc_mlx5e_priv_21983 num_tc mlx5e_priv 0 21983 NULL
153943 +enable_so_debug_debug5_read_fndecl_21984 debug_debug5_read fndecl 3 21984 NULL
153944 +enable_so__scif_send_fndecl_21987 _scif_send fndecl 3-0 21987 NULL
153945 +enable_so_split_nodes_interleave_fndecl_21988 split_nodes_interleave fndecl 3-5-4 21988 NULL
153946 +enable_so_skb_rx_extra_cxgbi_device_21990 skb_rx_extra cxgbi_device 0 21990 NULL
153947 +enable_so_sr_read_cmd_fndecl_21992 sr_read_cmd fndecl 5 21992 NULL
153948 +enable_so_sec_per_clus_msdos_sb_info_21995 sec_per_clus msdos_sb_info 0 21995 NULL
153949 +enable_so_ath6kl_wmi_bssinfo_event_rx_fndecl_22000 ath6kl_wmi_bssinfo_event_rx fndecl 3 22000 NULL
153950 +enable_so_ath6kl_wmi_set_tx_pwr_cmd_fndecl_22001 ath6kl_wmi_set_tx_pwr_cmd fndecl 2 22001 NULL
153951 +enable_so_length_ib_sge_22002 length ib_sge 0 22002 NULL
153952 +enable_so_video_v_stop_saa7134_tvnorm_22005 video_v_stop saa7134_tvnorm 0 22005 NULL nohasharray
153953 +enable_so_vpdma_alloc_desc_buf_fndecl_22005 vpdma_alloc_desc_buf fndecl 2 22005 &enable_so_video_v_stop_saa7134_tvnorm_22005
153954 +enable_so_num_pointers_user_acl_role_db_22011 num_pointers user_acl_role_db 0 22011 NULL
153955 +enable_so_itd1000_write_regs_fndecl_22013 itd1000_write_regs fndecl 4 22013 NULL
153956 +enable_so_atio_q_length_qlt_hw_data_22018 atio_q_length qlt_hw_data 0 22018 NULL
153957 +enable_so_buffer_size_nm256_22021 buffer_size nm256 0 22021 NULL
153958 +enable_so_GlobalCredits__MSG_IOC_FACTS_REPLY_22031 GlobalCredits _MSG_IOC_FACTS_REPLY 0 22031 NULL
153959 +enable_so_next_rs_tgg_il3945_rate_info_22036 next_rs_tgg il3945_rate_info 0 22036 NULL
153960 +enable_so_dm_exception_store_set_chunk_size_fndecl_22042 dm_exception_store_set_chunk_size fndecl 2 22042 NULL
153961 +enable_so_roccat_connect_fndecl_22044 roccat_connect fndecl 3 22044 NULL
153962 +enable_so_sel_read_enforce_fndecl_22047 sel_read_enforce fndecl 3 22047 NULL
153963 +enable_so_mmc_queue_map_sg_fndecl_22053 mmc_queue_map_sg fndecl 0 22053 NULL
153964 +enable_so_held_root_thin_disk_superblock_22055 held_root thin_disk_superblock 0 22055 NULL
153965 +enable_so_zl10039_read_fndecl_22056 zl10039_read fndecl 4 22056 NULL
153966 +enable_so_w_input_res_22061 w input_res 0 22061 NULL
153967 +enable_so_param_sata_completion_resp_22065 param sata_completion_resp 0 22065 NULL
153968 +enable_so_i2c_wr_max_tda18218_config_22066 i2c_wr_max tda18218_config 0 22066 NULL
153969 +enable_so_rom_base_qxl_device_22067 rom_base qxl_device 0 22067 NULL
153970 +enable_so_ufs_free_fragments_fndecl_22074 ufs_free_fragments fndecl 2 22074 NULL
153971 +enable_so_irnet_ctrl_read_fndecl_22076 irnet_ctrl_read fndecl 4 22076 NULL
153972 +enable_so_sfq_alloc_fndecl_22078 sfq_alloc fndecl 1 22078 NULL
153973 +enable_so_iuu_uart_write_fndecl_22079 iuu_uart_write fndecl 4 22079 NULL
153974 +enable_so_xfs_bmse_shift_one_fndecl_22080 xfs_bmse_shift_one fndecl 3 22080 NULL
153975 +enable_so_absent_pages_in_range_fndecl_22083 absent_pages_in_range fndecl 0-1-2 22083 NULL nohasharray
153976 +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
153977 +enable_so_cmm_write_fndecl_22083 cmm_write fndecl 3 22083 &enable_so_rx_ring_size_mlx4_en_port_profile_22083
153978 +enable_so_mgt_response_to_str_fndecl_22094 mgt_response_to_str fndecl 0 22094 NULL
153979 +enable_so_size_drm_i915_gem_pread_22096 size drm_i915_gem_pread 0 22096 NULL nohasharray
153980 +enable_so_len_setup_data_node_22096 len setup_data_node 0 22096 &enable_so_size_drm_i915_gem_pread_22096 nohasharray
153981 +enable_so_frame_seq_number_osst_tape_22096 frame_seq_number osst_tape 0 22096 &enable_so_len_setup_data_node_22096
153982 +enable_so_allocsz_cfv_info_22104 allocsz cfv_info 0 22104 NULL
153983 +enable_so_size_perf_output_handle_22117 size perf_output_handle 0 22117 NULL
153984 +enable_so_xfs_da_get_buf_fndecl_22120 xfs_da_get_buf fndecl 3 22120 NULL
153985 +enable_so_ore_check_io_fndecl_22131 ore_check_io fndecl 0 22131 NULL nohasharray
153986 +enable_so_small_ttm_pool_opts_22131 small ttm_pool_opts 0 22131 &enable_so_ore_check_io_fndecl_22131 nohasharray
153987 +enable_so_xferlen_uioc_22131 xferlen uioc 0 22131 &enable_so_small_ttm_pool_opts_22131
153988 +enable_so_numa_add_memblk_fndecl_22136 numa_add_memblk fndecl 2-3 22136 NULL
153989 +enable_so_dm_tm_shadow_block_fndecl_22139 dm_tm_shadow_block fndecl 2 22139 NULL
153990 +enable_so_xfs_trans_get_buf_map_fndecl_22140 xfs_trans_get_buf_map fndecl 4 22140 NULL
153991 +enable_so_num_phys_eqs_mlx4_phys_caps_22142 num_phys_eqs mlx4_phys_caps 0 22142 NULL
153992 +enable_so_jffs2_scan_make_ino_cache_fndecl_22144 jffs2_scan_make_ino_cache fndecl 2 22144 NULL nohasharray
153993 +enable_so_radeon_benchmark_move_fndecl_22144 radeon_benchmark_move fndecl 2 22144 &enable_so_jffs2_scan_make_ino_cache_fndecl_22144
153994 +enable_so_moving_threshold_mms114_platform_data_22146 moving_threshold mms114_platform_data 0 22146 NULL nohasharray
153995 +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
153996 +enable_so_max_cos_bnx2x_22147 max_cos bnx2x 0 22147 NULL
153997 +enable_so_cmd_pipe_uas_dev_info_22148 cmd_pipe uas_dev_info 0 22148 NULL
153998 +enable_so_seg_size_ib_mad_send_buf_22149 seg_size ib_mad_send_buf 0 22149 NULL
153999 +enable_so_ppp_cp_event_fndecl_22150 ppp_cp_event fndecl 6 22150 NULL
154000 +enable_so_rxq_entries_efx_nic_22154 rxq_entries efx_nic 0 22154 NULL
154001 +enable_so_collect_rx_frame_fndecl_22155 collect_rx_frame fndecl 3 22155 NULL
154002 +enable_so_nes_read_indexed_fndecl_22161 nes_read_indexed fndecl 0 22161 NULL
154003 +enable_so_rs_datalen_ath5k_rx_status_22164 rs_datalen ath5k_rx_status 0 22164 NULL nohasharray
154004 +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
154005 +enable_so_tm6000_i2c_recv_regs16_fndecl_22166 tm6000_i2c_recv_regs16 fndecl 5 22166 NULL
154006 +enable_so_set_fast_connectable_fndecl_22171 set_fast_connectable fndecl 4 22171 NULL
154007 +enable_so_tegra_spi_start_cpu_based_transfer_fndecl_22176 tegra_spi_start_cpu_based_transfer fndecl 0 22176 NULL
154008 +enable_so_name_len_ceph_inode_xattr_22177 name_len ceph_inode_xattr 0 22177 NULL
154009 +enable_so_rts51x_bulk_transport_special_fndecl_22181 rts51x_bulk_transport_special fndecl 6 22181 NULL
154010 +enable_so_buf_len_bu_info_22182 buf_len bu_info 0 22182 NULL nohasharray
154011 +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
154012 +enable_so_ieee80211_parse_bitrates_fndecl_22187 ieee80211_parse_bitrates fndecl 0 22187 NULL
154013 +enable_so_ch_count_vardecl_ib_srp_c_22190 ch_count vardecl_ib_srp.c 0 22190 NULL
154014 +enable_so_affs_alloc_block_fndecl_22192 affs_alloc_block fndecl 0-2 22192 NULL
154015 +enable_so_sector_packet_data_22197 sector packet_data 0 22197 NULL
154016 +enable_so_length_ntlmssp2_name_22211 length ntlmssp2_name 0 22211 NULL
154017 +enable_so_req_len_brcmf_cfg80211_assoc_ielen_le_22213 req_len brcmf_cfg80211_assoc_ielen_le 0 22213 NULL
154018 +enable_so_nreaders_stress_vardecl_locktorture_c_22217 nreaders_stress vardecl_locktorture.c 0 22217 NULL nohasharray
154019 +enable_so_xfrm_dst_alloc_copy_fndecl_22217 xfrm_dst_alloc_copy fndecl 3 22217 &enable_so_nreaders_stress_vardecl_locktorture_c_22217
154020 +enable_so_ram_size_async_extent_22219 ram_size async_extent 0 22219 NULL
154021 +enable_so_get_max_acpi_id_fndecl_22220 get_max_acpi_id fndecl 0 22220 NULL
154022 +enable_so_lpfc_idiag_mbxacc_write_fndecl_22221 lpfc_idiag_mbxacc_write fndecl 3 22221 NULL
154023 +enable_so_s_dirsize_minix_sb_info_22225 s_dirsize minix_sb_info 0 22225 NULL
154024 +enable_so_num_areas_prism2_download_param_22233 num_areas prism2_download_param 0 22233 NULL
154025 +enable_so_do_dmabuf_dirty_sou_fndecl_22234 do_dmabuf_dirty_sou fndecl 7 22234 NULL nohasharray
154026 +enable_so_num_vlan_batadv_tvlv_tt_data_22234 num_vlan batadv_tvlv_tt_data 0 22234 &enable_so_do_dmabuf_dirty_sou_fndecl_22234
154027 +enable_so_max_fingers_pixcir_i2c_ts_data_22237 max_fingers pixcir_i2c_ts_data 0 22237 NULL
154028 +enable_so_depth_write_fndecl_22238 depth_write fndecl 3 22238 NULL
154029 +enable_so_num_udav_mthca_profile_22243 num_udav mthca_profile 0 22243 NULL
154030 +enable_so_ieee80211_check_pending_bar_fndecl_22244 ieee80211_check_pending_bar fndecl 3 22244 NULL
154031 +enable_so_rf_suballoc_loc_ocfs2_refcount_block_22248 rf_suballoc_loc ocfs2_refcount_block 0 22248 NULL
154032 +enable_so_hfsplus_asc2uni_fndecl_22252 hfsplus_asc2uni fndecl 0 22252 NULL nohasharray
154033 +enable_so_dac960_user_command_proc_write_fndecl_22252 dac960_user_command_proc_write fndecl 3 22252 &enable_so_hfsplus_asc2uni_fndecl_22252
154034 +enable_so___blk_end_bidi_request_fndecl_22253 __blk_end_bidi_request fndecl 3-4 22253 NULL
154035 +enable_so_qp_alloc_ppn_set_fndecl_22255 qp_alloc_ppn_set fndecl 2-4 22255 NULL
154036 +enable_so_nr_free_buffer_pages_fndecl_22263 nr_free_buffer_pages fndecl 0 22263 NULL
154037 +enable_so_bbio_error_fndecl_22264 bbio_error fndecl 3 22264 NULL
154038 +enable_so_usCRTC_V_Total__ATOM_MODE_TIMING_22265 usCRTC_V_Total _ATOM_MODE_TIMING 0 22265 NULL
154039 +enable_so_il3945_ucode_rx_stats_read_fndecl_22267 il3945_ucode_rx_stats_read fndecl 3 22267 NULL
154040 +enable_so_mangle_contents_fndecl_22272 mangle_contents fndecl 4-6 22272 NULL
154041 +enable_so_gtt_total_entries__intel_private_22281 gtt_total_entries _intel_private 0 22281 NULL nohasharray
154042 +enable_so_reord_tcp_sacktag_state_22281 reord tcp_sacktag_state 0 22281 &enable_so_gtt_total_entries__intel_private_22281
154043 +enable_so_mgsl_write_fndecl_22284 mgsl_write fndecl 3 22284 NULL
154044 +enable_so_sn9c2028_read4_fndecl_22290 sn9c2028_read4 fndecl 0 22290 NULL
154045 +enable_so_gspca_dev_probe_fndecl_22297 gspca_dev_probe fndecl 4 22297 NULL
154046 +enable_so_gfs2_listxattr_fndecl_22298 gfs2_listxattr fndecl 3 22298 NULL
154047 +enable_so_slot_bytes_fndecl_22306 slot_bytes fndecl 0 22306 NULL
154048 +enable_so_smk_write_logging_fndecl_22313 smk_write_logging fndecl 3 22313 NULL
154049 +enable_so_index_start_nozomi_22317 index_start nozomi 0 22317 NULL
154050 +enable_so_swiotlb_late_init_with_default_size_fndecl_22319 swiotlb_late_init_with_default_size fndecl 1 22319 NULL
154051 +enable_so_sb_rbmino_xfs_sb_22320 sb_rbmino xfs_sb 0 22320 NULL nohasharray
154052 +enable_so_be_fill_queue_fndecl_22320 be_fill_queue fndecl 2 22320 &enable_so_sb_rbmino_xfs_sb_22320
154053 +enable_so_vc_size_row_vc_data_22325 vc_size_row vc_data 0 22325 NULL
154054 +enable_so_user_data_len_uioc_22327 user_data_len uioc 0 22327 NULL
154055 +enable_so_atmel_change_mtu_fndecl_22328 atmel_change_mtu fndecl 2 22328 NULL
154056 +enable_so_limit_sfq_sched_data_22334 limit sfq_sched_data 0 22334 NULL
154057 +enable_so_f2fs_getxattr_fndecl_22337 f2fs_getxattr fndecl 0 22337 NULL
154058 +enable_so_mtu_tipc_link_22341 mtu tipc_link 0 22341 NULL
154059 +enable_so_svc_recvfrom_fndecl_22345 svc_recvfrom fndecl 0-4-3 22345 NULL
154060 +enable_so_length_nvkm_mm_node_22349 length nvkm_mm_node 0 22349 NULL
154061 +enable_so_drv_info_size_mwifiex_adapter_22352 drv_info_size mwifiex_adapter 0 22352 NULL
154062 +enable_so_tlv_put_string_fndecl_22356 tlv_put_string fndecl 4-0 22356 NULL
154063 +enable_so_genwqe_alloc_sync_sgl_fndecl_22358 genwqe_alloc_sync_sgl fndecl 4 22358 NULL
154064 +enable_so__proc_do_string_fndecl_22363 _proc_do_string fndecl 2 22363 NULL
154065 +enable_so____pskb_trim_fndecl_22365 ___pskb_trim fndecl 2 22365 NULL
154066 +enable_so_kvm_gfn_to_hva_cache_init_fndecl_22367 kvm_gfn_to_hva_cache_init fndecl 3 22367 NULL
154067 +enable_so_ffs_ep0_read_fndecl_22371 ffs_ep0_read fndecl 3 22371 NULL
154068 +enable_so_digi_write_fndecl_22372 digi_write fndecl 4 22372 NULL
154069 +enable_so_nfs4_xattr_set_nfs4_acl_fndecl_22385 nfs4_xattr_set_nfs4_acl fndecl 4 22385 NULL
154070 +enable_so_exposure_step_sd_22386 exposure_step sd 0 22386 NULL
154071 +enable_so_ecc_size_persistent_ram_ecc_info_22390 ecc_size persistent_ram_ecc_info 0 22390 NULL
154072 +enable_so_phys_lcr_base_mgsl_struct_22391 phys_lcr_base mgsl_struct 0 22391 NULL
154073 +enable_so_clipt_end_adapter_22397 clipt_end adapter 0 22397 NULL
154074 +enable_so_nr_blocks_jffs2_sb_info_22399 nr_blocks jffs2_sb_info 0 22399 NULL
154075 +enable_so_size_dsp_segment_desc_22400 size dsp_segment_desc 0 22400 NULL
154076 +enable_so_rawsock_sendmsg_fndecl_22401 rawsock_sendmsg fndecl 3 22401 NULL
154077 +enable_so_udf_setsize_fndecl_22402 udf_setsize fndecl 2 22402 NULL
154078 +enable_so_lprocfs_stats_counter_size_fndecl_22407 lprocfs_stats_counter_size fndecl 0 22407 NULL
154079 +enable_so_use_inline_bio_fndecl_22408 use_inline_bio fndecl 3 22408 NULL
154080 +enable_so_do_truncate_fndecl_22411 do_truncate fndecl 2 22411 NULL nohasharray
154081 +enable_so_twl4030_init_sih_modules_fndecl_22411 twl4030_init_sih_modules fndecl 0 22411 &enable_so_do_truncate_fndecl_22411 nohasharray
154082 +enable_so_len_usbdevfs_bulktransfer_22411 len usbdevfs_bulktransfer 0 22411 &enable_so_twl4030_init_sih_modules_fndecl_22411
154083 +enable_so_max_ccb_vardecl_hpilo_c_22414 max_ccb vardecl_hpilo.c 0 22414 NULL
154084 +enable_so_oti6858_write_fndecl_22423 oti6858_write fndecl 4 22423 NULL
154085 +enable_so_bbRcvSizeMsb_csp_22425 bbRcvSizeMsb csp 0 22425 NULL
154086 +enable_so_nfc_llcp_send_ui_frame_fndecl_22429 nfc_llcp_send_ui_frame fndecl 5 22429 NULL
154087 +enable_so_add_size_pci_dev_resource_22434 add_size pci_dev_resource 0 22434 NULL
154088 +enable_so_start_async_cow_22445 start async_cow 0 22445 NULL
154089 +enable_so_frame_len_ksz_desc_rx_stat_22454 frame_len ksz_desc_rx_stat 0 22454 NULL
154090 +enable_so_ntfs_attr_vcn_to_lcn_nolock_fndecl_22455 ntfs_attr_vcn_to_lcn_nolock fndecl 2 22455 NULL
154091 +enable_so_llc_ui_recvmsg_fndecl_22457 llc_ui_recvmsg fndecl 3 22457 NULL
154092 +enable_so_ceph_zero_pagecache_range_fndecl_22464 ceph_zero_pagecache_range fndecl 3-2 22464 NULL nohasharray
154093 +enable_so_mon_bin_ioctl_fndecl_22464 mon_bin_ioctl fndecl 3 22464 &enable_so_ceph_zero_pagecache_range_fndecl_22464
154094 +enable_so_fsl_edma_alloc_desc_fndecl_22466 fsl_edma_alloc_desc fndecl 2 22466 NULL
154095 +enable_so_nv50_fb_vram_rblock_fndecl_22467 nv50_fb_vram_rblock fndecl 0 22467 NULL
154096 +enable_so_s35390a_set_reg_fndecl_22468 s35390a_set_reg fndecl 4 22468 NULL
154097 +enable_so_vmbus_sendpacket_fndecl_22469 vmbus_sendpacket fndecl 3 22469 NULL
154098 +enable_so_s_data_blksize_affs_sb_info_22478 s_data_blksize affs_sb_info 0 22478 NULL
154099 +enable_so_vram_size_aty128fb_par_22489 vram_size aty128fb_par 0 22489 NULL nohasharray
154100 +enable_so_hid_report_raw_event_fndecl_22489 hid_report_raw_event fndecl 4 22489 &enable_so_vram_size_aty128fb_par_22489
154101 +enable_so_find_group_other_fndecl_22490 find_group_other fndecl 0 22490 NULL
154102 +enable_so_xfs_readdir_fndecl_22492 xfs_readdir fndecl 3 22492 NULL
154103 +enable_so_offset_rbd_img_request_22494 offset rbd_img_request 0 22494 NULL
154104 +enable_so_tx_hr_cfv_info_22495 tx_hr cfv_info 0 22495 NULL nohasharray
154105 +enable_so_ovl_cache_entry_new_fndecl_22495 ovl_cache_entry_new fndecl 3 22495 &enable_so_tx_hr_cfv_info_22495
154106 +enable_so_hiface_pcm_init_urb_fndecl_22500 hiface_pcm_init_urb fndecl 3 22500 NULL
154107 +enable_so_iwl_dbgfs_clear_ucode_statistics_write_fndecl_22503 iwl_dbgfs_clear_ucode_statistics_write fndecl 3 22503 NULL
154108 +enable_so_irq_bcma_device_22505 irq bcma_device 0 22505 NULL
154109 +enable_so_cur_rx_pos_tegra_slink_data_22510 cur_rx_pos tegra_slink_data 0 22510 NULL
154110 +enable_so_ctx_len_xfrm_sec_ctx_22511 ctx_len xfrm_sec_ctx 0 22511 NULL
154111 +enable_so_h_mode_size_22514 h mode_size 0 22514 NULL
154112 +enable_so_len_bna_mem_info_22518 len bna_mem_info 0 22518 NULL
154113 +enable_so_raw_subject_size_x509_certificate_22520 raw_subject_size x509_certificate 0 22520 NULL nohasharray
154114 +enable_so_rocker_dma_ring_bufs_alloc_fndecl_22520 rocker_dma_ring_bufs_alloc fndecl 4 22520 &enable_so_raw_subject_size_x509_certificate_22520
154115 +enable_so_nvkm_devinit_create__fndecl_22523 nvkm_devinit_create_ fndecl 4 22523 NULL
154116 +enable_so_ls_lvblen_dlm_ls_22525 ls_lvblen dlm_ls 0 22525 NULL
154117 +enable_so_ocfs2_bg_discontig_add_extent_fndecl_22531 ocfs2_bg_discontig_add_extent fndecl 4 22531 NULL
154118 +enable_so_posix_acl_xattr_set_fndecl_22534 posix_acl_xattr_set fndecl 4 22534 NULL nohasharray
154119 +enable_so_count_pch_gbe_tx_ring_22534 count pch_gbe_tx_ring 0 22534 &enable_so_posix_acl_xattr_set_fndecl_22534
154120 +enable_so_submit_queue_fndecl_22542 submit_queue fndecl 5 22542 NULL
154121 +enable_so_SyS_flistxattr_fndecl_22548 SyS_flistxattr fndecl 3 22548 NULL
154122 +enable_so_clsb_isar_reg_22551 clsb isar_reg 0 22551 NULL
154123 +enable_so_tx_frag_in_process_called_read_fndecl_22553 tx_frag_in_process_called_read fndecl 3 22553 NULL nohasharray
154124 +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
154125 +enable_so_msg_done_handler_fndecl_22553 msg_done_handler fndecl 4 22553 &enable_so_sadb_x_ctx_len_sadb_x_sec_ctx_22553
154126 +enable_so_w9968cf_i2c_r_fndecl_22560 w9968cf_i2c_r fndecl 0 22560 NULL
154127 +enable_so_max_frame_size_pch_gbe_mac_info_22562 max_frame_size pch_gbe_mac_info 0 22562 NULL
154128 +enable_so_max_xor_dma_device_22564 max_xor dma_device 0 22564 NULL
154129 +enable_so_carl9170_rx_stream_fndecl_22565 carl9170_rx_stream fndecl 3 22565 NULL
154130 +enable_so_fsync_file_operations_22566 fsync file_operations 0 22566 NULL
154131 +enable_so_skd_next_devno_vardecl_skd_main_c_22569 skd_next_devno vardecl_skd_main.c 0 22569 NULL
154132 +enable_so_burst_fsl_edma_slave_config_22570 burst fsl_edma_slave_config 0 22570 NULL
154133 +enable_so_id_rfcomm_dev_22580 id rfcomm_dev 0 22580 NULL
154134 +enable_so_wm_adsp_buf_alloc_fndecl_22582 wm_adsp_buf_alloc fndecl 2 22582 NULL
154135 +enable_so_push_node_left_fndecl_22588 push_node_left fndecl 0 22588 NULL nohasharray
154136 +enable_so_qlcnic_pci_sriov_configure_fndecl_22588 qlcnic_pci_sriov_configure fndecl 2 22588 &enable_so_push_node_left_fndecl_22588 nohasharray
154137 +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
154138 +enable_so_scif_rb_get_next_fndecl_22601 scif_rb_get_next fndecl 3 22601 NULL nohasharray
154139 +enable_so_swevent_hlist_get_cpu_fndecl_22601 swevent_hlist_get_cpu fndecl 0 22601 &enable_so_scif_rb_get_next_fndecl_22601
154140 +enable_so_fw_stats_raw_read_fndecl_22602 fw_stats_raw_read fndecl 3 22602 NULL
154141 +enable_so_pirq_enable_irq_fndecl_22603 pirq_enable_irq fndecl 0 22603 NULL
154142 +enable_so_tx_data_max_size_sst_generic_ipc_22604 tx_data_max_size sst_generic_ipc 0 22604 NULL
154143 +enable_so_maxauthsize_aead_alg_22608 maxauthsize aead_alg 0 22608 NULL nohasharray
154144 +enable_so_btrfs_submit_compressed_write_fndecl_22608 btrfs_submit_compressed_write fndecl 4-5 22608 &enable_so_maxauthsize_aead_alg_22608
154145 +enable_so_count_mspro_attribute_22612 count mspro_attribute 0 22612 NULL
154146 +enable_so_len_aironet_ioctl_22615 len aironet_ioctl 0 22615 NULL
154147 +enable_so_ir_startino_xfs_inobt_rec_incore_22616 ir_startino xfs_inobt_rec_incore 0 22616 NULL
154148 +enable_so_mem_hole_size_fndecl_22619 mem_hole_size fndecl 0-1-2 22619 NULL nohasharray
154149 +enable_so_wil_write_pmccfg_fndecl_22619 wil_write_pmccfg fndecl 3 22619 &enable_so_mem_hole_size_fndecl_22619 nohasharray
154150 +enable_so_bond_verify_device_path_fndecl_22619 bond_verify_device_path fndecl 3 22619 &enable_so_wil_write_pmccfg_fndecl_22619
154151 +enable_so_curr_block_migrate_struct_22621 curr_block migrate_struct 0 22621 NULL
154152 +enable_so_length_obj_key_22626 length obj_key 0 22626 NULL
154153 +enable_so_SYSC_io_getevents_fndecl_22627 SYSC_io_getevents fndecl 3 22627 NULL
154154 +enable_so_n_compat_sel_arg_struct_22628 n compat_sel_arg_struct 0 22628 NULL
154155 +enable_so_buf_height_s5p_mfc_ctx_22637 buf_height s5p_mfc_ctx 0 22637 NULL
154156 +enable_so_hci_si_event_fndecl_22639 hci_si_event fndecl 3 22639 NULL
154157 +enable_so_num_rcv_bufs_visornic_devdata_22643 num_rcv_bufs visornic_devdata 0 22643 NULL
154158 +enable_so_sctp_setsockopt_initmsg_fndecl_22644 sctp_setsockopt_initmsg fndecl 3 22644 NULL
154159 +enable_so_queue_size_snd_timer_params_22646 queue_size snd_timer_params 0 22646 NULL
154160 +enable_so_do_msgsnd_fndecl_22648 do_msgsnd fndecl 4 22648 NULL
154161 +enable_so_isight_decode_fndecl_22650 isight_decode fndecl 4 22650 NULL
154162 +enable_so_sample_rate_usb_stream_config_22662 sample_rate usb_stream_config 0 22662 NULL
154163 +enable_so_md_probe_fndecl_22668 md_probe fndecl 1 22668 NULL
154164 +enable_so_init_rs_internal_fndecl_22671 init_rs_internal fndecl 6-1 22671 NULL
154165 +enable_so_ieee80211_mesh_rx_bcn_presp_fndecl_22678 ieee80211_mesh_rx_bcn_presp fndecl 4 22678 NULL
154166 +enable_so_fbcon_redraw_softback_fndecl_22679 fbcon_redraw_softback fndecl 3 22679 NULL nohasharray
154167 +enable_so_bop_propagate_nilfs_bmap_operations_22679 bop_propagate nilfs_bmap_operations 0 22679 &enable_so_fbcon_redraw_softback_fndecl_22679
154168 +enable_so_get_nr_entries_fndecl_22680 get_nr_entries fndecl 2 22680 NULL
154169 +enable_so_vlan_tag_bnx2x_agg_info_22683 vlan_tag bnx2x_agg_info 0 22683 NULL nohasharray
154170 +enable_so_cfs_trace_copyout_string_fndecl_22683 cfs_trace_copyout_string fndecl 2 22683 &enable_so_vlan_tag_bnx2x_agg_info_22683
154171 +enable_so_irq_pipe_ttusb_dec_22685 irq_pipe ttusb_dec 0 22685 NULL
154172 +enable_so_sctp_sf_abort_violation_fndecl_22687 sctp_sf_abort_violation fndecl 7 22687 NULL
154173 +enable_so_vidioc_s_input_fndecl_22689 vidioc_s_input fndecl 3 22689 NULL
154174 +enable_so_ino_nilfs_iget_args_22691 ino nilfs_iget_args 0 22691 NULL
154175 +enable_so_tx_queue_len_read_fndecl_22692 tx_queue_len_read fndecl 3 22692 NULL
154176 +enable_so_ctl_dma_yealink_dev_22696 ctl_dma yealink_dev 0 22696 NULL
154177 +enable_so_len_vring_desc_22700 len vring_desc 0 22700 NULL
154178 +enable_so_brcmf_sdio_read_control_fndecl_22712 brcmf_sdio_read_control fndecl 3 22712 NULL
154179 +enable_so_scif_rb_write_fndecl_22718 scif_rb_write fndecl 0-3 22718 NULL
154180 +enable_so_tail_inbuf_t_22719 tail inbuf_t 0 22719 NULL nohasharray
154181 +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
154182 +enable_so_SMB2_ioctl_fndecl_22721 SMB2_ioctl fndecl 8 22721 NULL
154183 +enable_so_ath6kl_wmi_get_tx_pwr_cmd_fndecl_22722 ath6kl_wmi_get_tx_pwr_cmd fndecl 2 22722 NULL nohasharray
154184 +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
154185 +enable_so_sta_num_ps_buf_frames_read_fndecl_22723 sta_num_ps_buf_frames_read fndecl 3 22723 NULL
154186 +enable_so_odm_mirror_cnt_pnfs_osd_data_map_22727 odm_mirror_cnt pnfs_osd_data_map 0 22727 NULL
154187 +enable_so_fcoe_hmc_cntx_num_i40e_pf_22730 fcoe_hmc_cntx_num i40e_pf 0 22730 NULL nohasharray
154188 +enable_so_fpregs_set_fndecl_22730 fpregs_set fndecl 4 22730 &enable_so_fcoe_hmc_cntx_num_i40e_pf_22730
154189 +enable_so___blk_bios_map_sg_fndecl_22734 __blk_bios_map_sg fndecl 0 22734 NULL
154190 +enable_so_xprt_alloc_fndecl_22736 xprt_alloc fndecl 4-3-2 22736 NULL
154191 +enable_so_num_fcoe_qps_i40e_pf_22740 num_fcoe_qps i40e_pf 0 22740 NULL
154192 +enable_so_SYSC_syslog_fndecl_22742 SYSC_syslog fndecl 3 22742 NULL
154193 +enable_so_iwlagn_pass_packet_to_mac80211_fndecl_22746 iwlagn_pass_packet_to_mac80211 fndecl 3 22746 NULL
154194 +enable_so_slave_num_ad7280_state_22755 slave_num ad7280_state 0 22755 NULL
154195 +enable_so_alloc_perm_bits_fndecl_22767 alloc_perm_bits fndecl 2 22767 NULL
154196 +enable_so_rambase_brcmf_chip_22773 rambase brcmf_chip 0 22773 NULL
154197 +enable_so_ide_get_identity_ioctl_fndecl_22776 ide_get_identity_ioctl fndecl 0 22776 NULL
154198 +enable_so_xfs_bmap_add_free_fndecl_22778 xfs_bmap_add_free fndecl 1-2 22778 NULL
154199 +enable_so_tomoyo_round2_fndecl_22781 tomoyo_round2 fndecl 0 22781 NULL
154200 +enable_so_orig_video_cols_screen_info_22783 orig_video_cols screen_info 0 22783 NULL
154201 +enable_so_h_start_saa7134_tvnorm_22798 h_start saa7134_tvnorm 0 22798 NULL
154202 +enable_so_i_next_section_block_iso_inode_info_22800 i_next_section_block iso_inode_info 0 22800 NULL nohasharray
154203 +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
154204 +enable_so_my_inptr_vardecl_initramfs_c_22809 my_inptr vardecl_initramfs.c 0 22809 NULL
154205 +enable_so_agp_create_memory_fndecl_22816 agp_create_memory fndecl 1 22816 NULL
154206 +enable_so_aper_size_amdgpu_mc_22824 aper_size amdgpu_mc 0 22824 NULL
154207 +enable_so_tx_size_uart_8250_dma_22825 tx_size uart_8250_dma 0 22825 NULL
154208 +enable_so_nfs_pgarray_set_fndecl_22830 nfs_pgarray_set fndecl 2 22830 NULL
154209 +enable_so_gigaset_initdriver_fndecl_22839 gigaset_initdriver fndecl 2-1 22839 NULL
154210 +enable_so_sys_mremap_fndecl_22848 sys_mremap fndecl 3-5-1-2 22848 NULL nohasharray
154211 +enable_so_clean_io_failure_fndecl_22848 clean_io_failure fndecl 4 22848 &enable_so_sys_mremap_fndecl_22848
154212 +enable_so_rlen_si2168_cmd_22851 rlen si2168_cmd 0 22851 NULL
154213 +enable_so_var2_apei_exec_context_22852 var2 apei_exec_context 0 22852 NULL
154214 +enable_so_utf8s_to_utf16s_fndecl_22856 utf8s_to_utf16s fndecl 0 22856 NULL
154215 +enable_so_size_proc_dir_entry_22859 size proc_dir_entry 0 22859 NULL
154216 +enable_so_xs_sendpages_fndecl_22864 xs_sendpages fndecl 5-3 22864 NULL
154217 +enable_so_hpfs_get_block_fndecl_22865 hpfs_get_block fndecl 2 22865 NULL
154218 +enable_so_usCRTC_H_SyncStart__ATOM_MODE_TIMING_22868 usCRTC_H_SyncStart _ATOM_MODE_TIMING 0 22868 NULL
154219 +enable_so_n_subbufs_rchan_22872 n_subbufs rchan 0 22872 NULL
154220 +enable_so_max_part_vardecl_brd_c_22873 max_part vardecl_brd.c 0 22873 NULL
154221 +enable_so_enc28j60_mem_read_fndecl_22875 enc28j60_mem_read fndecl 3 22875 NULL
154222 +enable_so_count_nfs3_readdirargs_22881 count nfs3_readdirargs 0 22881 NULL
154223 +enable_so_max_wrs_rds_iw_device_22882 max_wrs rds_iw_device 0 22882 NULL
154224 +enable_so_len_prism2_download_area_22884 len prism2_download_area 0 22884 NULL
154225 +enable_so_frag_len_atmel_private_22893 frag_len atmel_private 0 22893 NULL
154226 +enable_so_snap_names_len_rbd_image_header_ondisk_22898 snap_names_len rbd_image_header_ondisk 0 22898 NULL
154227 +enable_so___btrfs_cow_block_fndecl_22902 __btrfs_cow_block fndecl 0 22902 NULL
154228 +enable_so_lpfc_fcp_io_channel_init_fndecl_22903 lpfc_fcp_io_channel_init fndecl 2 22903 NULL
154229 +enable_so_count_ioctl_gntdev_map_grant_ref_22904 count ioctl_gntdev_map_grant_ref 0 22904 NULL nohasharray
154230 +enable_so_bcma_hcd_create_pdev_fndecl_22904 bcma_hcd_create_pdev fndecl 3 22904 &enable_so_count_ioctl_gntdev_map_grant_ref_22904
154231 +enable_so_num_y_edt_ft5x06_ts_data_22905 num_y edt_ft5x06_ts_data 0 22905 NULL
154232 +enable_so_membase_phys_efx_nic_22907 membase_phys efx_nic 0 22907 NULL
154233 +enable_so_vmalloc_32_fndecl_22908 vmalloc_32 fndecl 1 22908 NULL
154234 +enable_so_cfg80211_report_obss_beacon_fndecl_22910 cfg80211_report_obss_beacon fndecl 3 22910 NULL
154235 +enable_so_mfn_list_start_info_22914 mfn_list start_info 0 22914 NULL
154236 +enable_so_lmd_exclude_count_lustre_mount_data_22915 lmd_exclude_count lustre_mount_data 0 22915 NULL
154237 +enable_so_len_policy_load_memory_22916 len policy_load_memory 0 22916 NULL
154238 +enable_so_node_con_driver_22919 node con_driver 0 22919 NULL
154239 +enable_so_len_ext4_allocation_request_22920 len ext4_allocation_request 0 22920 NULL
154240 +enable_so_e_name_len_ext4_xattr_entry_22925 e_name_len ext4_xattr_entry 0 22925 NULL
154241 +enable_so_port100_send_frame_async_fndecl_22927 port100_send_frame_async fndecl 4 22927 NULL
154242 +enable_so_event_data_len_msgbuf_rx_event_22931 event_data_len msgbuf_rx_event 0 22931 NULL
154243 +enable_so_i2400m_rx_ctl_fndecl_22934 i2400m_rx_ctl fndecl 4 22934 NULL
154244 +enable_so_vid_begin_switchdev_obj_vlan_22941 vid_begin switchdev_obj_vlan 0 22941 NULL
154245 +enable_so_num_counters_ip6t_replace_22944 num_counters ip6t_replace 0 22944 NULL
154246 +enable_so_i2cdev_read_fndecl_22949 i2cdev_read fndecl 3 22949 NULL
154247 +enable_so_bulk_out_usbatm_driver_22950 bulk_out usbatm_driver 0 22950 NULL
154248 +enable_so_al_stripe_size_4k_drbd_md_22954 al_stripe_size_4k drbd_md 0 22954 NULL
154249 +enable_so_lov_ost_pool_init_fndecl_22956 lov_ost_pool_init fndecl 2 22956 NULL
154250 +enable_so_userptr_drm_exynos_g2d_userptr_22959 userptr drm_exynos_g2d_userptr 0 22959 NULL
154251 +enable_so_osd_full_h_yuv_playback_info_22967 osd_full_h yuv_playback_info 0 22967 NULL
154252 +enable_so_data_swap_cluster_info_22969 data swap_cluster_info 0 22969 NULL
154253 +enable_so_ipc_alloc_fndecl_22971 ipc_alloc fndecl 1 22971 NULL
154254 +enable_so_i2400m_rx_ctl_ack_fndecl_22972 i2400m_rx_ctl_ack fndecl 3 22972 NULL
154255 +enable_so_port_rcvegrbuf_chunks_ipath_portdata_22973 port_rcvegrbuf_chunks ipath_portdata 0 22973 NULL
154256 +enable_so_nilfs_palloc_init_blockgroup_fndecl_22978 nilfs_palloc_init_blockgroup fndecl 2 22978 NULL
154257 +enable_so_kernfs_file_direct_read_fndecl_22981 kernfs_file_direct_read fndecl 3 22981 NULL
154258 +enable_so_max_pkt_size_stk1160_isoc_ctl_22983 max_pkt_size stk1160_isoc_ctl 0 22983 NULL
154259 +enable_so_ipw2100_set_rts_threshold_fndecl_22986 ipw2100_set_rts_threshold fndecl 2 22986 NULL
154260 +enable_so_acpi_battery_write_alarm_fndecl_22987 acpi_battery_write_alarm fndecl 3 22987 NULL
154261 +enable_so_sector_size_flash_info_22990 sector_size flash_info 0 22990 NULL nohasharray
154262 +enable_so_snd_hdac_read_fndecl_22990 snd_hdac_read fndecl 0 22990 &enable_so_sector_size_flash_info_22990
154263 +enable_so_p54spi_spi_write_fndecl_22994 p54spi_spi_write fndecl 4 22994 NULL
154264 +enable_so_size_wil_memio_block_22999 size wil_memio_block 0 22999 NULL
154265 +enable_so_dvb_register_adapter_fndecl_23000 dvb_register_adapter fndecl 0 23000 NULL
154266 +enable_so_ipw_packet_received_skb_fndecl_23005 ipw_packet_received_skb fndecl 2 23005 NULL
154267 +enable_so_memblock_alloc_range_fndecl_23015 memblock_alloc_range fndecl 2-1-3-4 23015 NULL nohasharray
154268 +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
154269 +enable_so_desc_size_data_queue_23015 desc_size data_queue 0 23015 &enable_so_fb_height_drm_fb_helper_surface_size_23015 nohasharray
154270 +enable_so_tx_size_iscsi_cmd_23015 tx_size iscsi_cmd 0 23015 &enable_so_desc_size_data_queue_23015
154271 +enable_so_bLength_usb_endpoint_descriptor_23016 bLength usb_endpoint_descriptor 0 23016 NULL
154272 +enable_so_ioctl_private_iw_point_fndecl_23018 ioctl_private_iw_point fndecl 7 23018 NULL
154273 +enable_so_fw_vif_idx_ath6kl_vif_23020 fw_vif_idx ath6kl_vif 0 23020 NULL
154274 +enable_so_nested_get_page_fndecl_23031 nested_get_page fndecl 2 23031 NULL
154275 +enable_so_rx_frag_size_atl1c_adapter_23034 rx_frag_size atl1c_adapter 0 23034 NULL nohasharray
154276 +enable_so_remap_fndecl_23034 remap fndecl 3 23034 &enable_so_rx_frag_size_atl1c_adapter_23034
154277 +enable_so_io_tlb_start_vardecl_swiotlb_c_23035 io_tlb_start vardecl_swiotlb.c 0 23035 NULL
154278 +enable_so_in_ep_smsusb_device_t_23038 in_ep smsusb_device_t 0 23038 NULL
154279 +enable_so_lost_cnt_hint_tcp_sock_23039 lost_cnt_hint tcp_sock 0 23039 NULL
154280 +enable_so_trailen_authenc_esn_request_ctx_23047 trailen authenc_esn_request_ctx 0 23047 NULL nohasharray
154281 +enable_so_num_comp_vectors_mlx5_eq_table_23047 num_comp_vectors mlx5_eq_table 0 23047 &enable_so_trailen_authenc_esn_request_ctx_23047
154282 +enable_so_y1_drm_clip_rect_23048 y1 drm_clip_rect 0 23048 NULL nohasharray
154283 +enable_so_sta_aid_read_fndecl_23048 sta_aid_read fndecl 3 23048 &enable_so_y1_drm_clip_rect_23048
154284 +enable_so_gnttab_free_count_vardecl_grant_table_c_23049 gnttab_free_count vardecl_grant-table.c 0 23049 NULL
154285 +enable_so_gfs2_read_super_fndecl_23055 gfs2_read_super fndecl 2 23055 NULL
154286 +enable_so_ueth_change_mtu_fndecl_23057 ueth_change_mtu fndecl 2 23057 NULL
154287 +enable_so_fcoe_ctlr_device_add_fndecl_23058 fcoe_ctlr_device_add fndecl 3 23058 NULL
154288 +enable_so_usb_dmac_desc_alloc_fndecl_23059 usb_dmac_desc_alloc fndecl 2 23059 NULL
154289 +enable_so_agp_base_radeon_mc_23066 agp_base radeon_mc 0 23066 NULL nohasharray
154290 +enable_so_fe_start_ext4_free_extent_23066 fe_start ext4_free_extent 0 23066 &enable_so_agp_base_radeon_mc_23066
154291 +enable_so_to_clkrc_fndecl_23074 to_clkrc fndecl 0-2-3 23074 NULL
154292 +enable_so_scif_rb_count_fndecl_23076 scif_rb_count fndecl 0 23076 NULL
154293 +enable_so_fm10k_iov_configure_fndecl_23078 fm10k_iov_configure fndecl 2 23078 NULL
154294 +enable_so_rpcrdma_inline_pullup_fndecl_23082 rpcrdma_inline_pullup fndecl 0-2 23082 NULL
154295 +enable_so_xfs_vm_write_end_fndecl_23085 xfs_vm_write_end fndecl 3-4-5 23085 NULL nohasharray
154296 +enable_so_ext_ofs_sym_ccb_23085 ext_ofs sym_ccb 0 23085 &enable_so_xfs_vm_write_end_fndecl_23085
154297 +enable_so_vicam_set_camera_power_fndecl_23091 vicam_set_camera_power fndecl 0 23091 NULL
154298 +enable_so_devfn_pci_dev_23093 devfn pci_dev 0 23093 NULL
154299 +enable_so_s_cluster_ratio_ext4_sb_info_23095 s_cluster_ratio ext4_sb_info 0 23095 NULL
154300 +enable_so_qla27xx_fwdt_template_default_size_fndecl_23103 qla27xx_fwdt_template_default_size fndecl 0 23103 NULL
154301 +enable_so___minimum_chunk_size_fndecl_23105 __minimum_chunk_size fndecl 0 23105 NULL
154302 +enable_so_sq_max_sges_c4iw_qp_attributes_23123 sq_max_sges c4iw_qp_attributes 0 23123 NULL
154303 +enable_so_numchips_nand_chip_23137 numchips nand_chip 0 23137 NULL
154304 +enable_so_num_dv_ports_adv76xx_chip_info_23140 num_dv_ports adv76xx_chip_info 0 23140 NULL
154305 +enable_so_udf_load_pvoldesc_fndecl_23141 udf_load_pvoldesc fndecl 2 23141 NULL
154306 +enable_so_max_tx_urbs_kvaser_usb_23152 max_tx_urbs kvaser_usb 0 23152 NULL
154307 +enable_so_bits_key_vector_23153 bits key_vector 0 23153 NULL
154308 +enable_so_memblock_free_fndecl_23154 memblock_free fndecl 2-1 23154 NULL
154309 +enable_so_oxu_create_fndecl_23159 oxu_create fndecl 3-2 23159 NULL
154310 +enable_so_isdn_audio_xlaw2adpcm_fndecl_23162 isdn_audio_xlaw2adpcm fndecl 0 23162 NULL nohasharray
154311 +enable_so_rx_defrag_called_read_fndecl_23162 rx_defrag_called_read fndecl 3 23162 &enable_so_isdn_audio_xlaw2adpcm_fndecl_23162
154312 +enable_so_width_linux_logo_23166 width linux_logo 0 23166 NULL
154313 +enable_so_SyS_add_key_fndecl_23167 SyS_add_key fndecl 4 23167 NULL
154314 +enable_so_memblock_alloc_base_fndecl_23169 memblock_alloc_base fndecl 2-1-0-3 23169 NULL nohasharray
154315 +enable_so_MaxIoCommands_aac_init_23169 MaxIoCommands aac_init 0 23169 &enable_so_memblock_alloc_base_fndecl_23169
154316 +enable_so_ext3_fiemap_fndecl_23171 ext3_fiemap fndecl 4 23171 NULL
154317 +enable_so_nvif_object_sclass_fndecl_23175 nvif_object_sclass fndecl 3 23175 NULL nohasharray
154318 +enable_so_cyttsp_probe_fndecl_23175 cyttsp_probe fndecl 4 23175 &enable_so_nvif_object_sclass_fndecl_23175
154319 +enable_so_x_res_vbe_mode_ib_23177 x_res vbe_mode_ib 0 23177 NULL
154320 +enable_so_nslot_nd_namespace_index_23178 nslot nd_namespace_index 0 23178 NULL
154321 +enable_so_uhid_char_read_fndecl_23187 uhid_char_read fndecl 3 23187 NULL
154322 +enable_so_tx_tx_retry_data_read_fndecl_23189 tx_tx_retry_data_read fndecl 3 23189 NULL
154323 +enable_so_nv20_fb_tile_comp_fndecl_23192 nv20_fb_tile_comp fndecl 3 23192 NULL
154324 +enable_so_ir_context_mask_fw_ohci_23196 ir_context_mask fw_ohci 0 23196 NULL
154325 +enable_so_seq_lseek_fndecl_23197 seq_lseek fndecl 2 23197 NULL
154326 +enable_so_bdev_erase_fndecl_23198 bdev_erase fndecl 2-3 23198 NULL
154327 +enable_so_btt_major_vardecl_btt_c_23220 btt_major vardecl_btt.c 0 23220 NULL
154328 +enable_so_read_swap_header_fndecl_23222 read_swap_header fndecl 0 23222 NULL
154329 +enable_so_num_channels_sh_mtu2_device_23224 num_channels sh_mtu2_device 0 23224 NULL
154330 +enable_so_clk_core_get_rate_fndecl_23225 clk_core_get_rate fndecl 0 23225 NULL nohasharray
154331 +enable_so_vid_hdr_offset_ubi_device_23225 vid_hdr_offset ubi_device 0 23225 &enable_so_clk_core_get_rate_fndecl_23225
154332 +enable_so_iagnum_iag_23227 iagnum iag 0 23227 NULL
154333 +enable_so_nvkm_client_map_fndecl_23228 nvkm_client_map fndecl 3-2 23228 NULL
154334 +enable_so_ubifs_prep_grp_node_fndecl_23231 ubifs_prep_grp_node fndecl 3 23231 NULL nohasharray
154335 +enable_so_ivtv_v4l2_read_fndecl_23231 ivtv_v4l2_read fndecl 3 23231 &enable_so_ubifs_prep_grp_node_fndecl_23231
154336 +enable_so__major_vardecl_dm_c_23233 _major vardecl_dm.c 0 23233 NULL
154337 +enable_so_sb_min_blocksize_fndecl_23239 sb_min_blocksize fndecl 2-0 23239 NULL
154338 +enable_so_num_rxd_rx_ring_config_23240 num_rxd rx_ring_config 0 23240 NULL
154339 +enable_so_rx_rx_defrag_read_fndecl_23241 rx_rx_defrag_read fndecl 3 23241 NULL
154340 +enable_so_dir_per_block_bits_msdos_sb_info_23245 dir_per_block_bits msdos_sb_info 0 23245 NULL
154341 +enable_so_ksm_madvise_fndecl_23247 ksm_madvise fndecl 2 23247 NULL
154342 +enable_so___alloc_bootmem_node_fndecl_23259 __alloc_bootmem_node fndecl 3-2-4 23259 NULL
154343 +enable_so_devm_ioremap_nocache_fndecl_23271 devm_ioremap_nocache fndecl 3-2 23271 NULL
154344 +enable_so_cifs_read_fndecl_23274 cifs_read fndecl 3 23274 NULL
154345 +enable_so_udf_table_new_block_fndecl_23276 udf_table_new_block fndecl 0 23276 NULL
154346 +enable_so_start_blkpg_partition_23281 start blkpg_partition 0 23281 NULL
154347 +enable_so_write_flush_pipefs_fndecl_23286 write_flush_pipefs fndecl 3 23286 NULL
154348 +enable_so_ino_node_info_23289 ino node_info 0 23289 NULL nohasharray
154349 +enable_so_modedb_len_fb_monspecs_23289 modedb_len fb_monspecs 0 23289 &enable_so_ino_node_info_23289
154350 +enable_so_shmac_num_idents_sctp_hmacalgo_23292 shmac_num_idents sctp_hmacalgo 0 23292 NULL
154351 +enable_so_vtbl_slots_ubi_device_23293 vtbl_slots ubi_device 0 23293 NULL
154352 +enable_so_fnic_get_trace_data_fndecl_23305 fnic_get_trace_data fndecl 0 23305 NULL
154353 +enable_so_debug_read_tlb_fndecl_23307 debug_read_tlb fndecl 3 23307 NULL
154354 +enable_so_transfersize_scsi_cmnd_23314 transfersize scsi_cmnd 0 23314 NULL
154355 +enable_so_s_blocks_per_segment_nilfs_super_block_23318 s_blocks_per_segment nilfs_super_block 0 23318 NULL
154356 +enable_so_max_send_sge_ocrdma_dev_attr_23321 max_send_sge ocrdma_dev_attr 0 23321 NULL
154357 +enable_so_ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_fndecl_23334 ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime fndecl 3 23334 NULL nohasharray
154358 +enable_so_naces_nfs4_acl_23334 naces nfs4_acl 0 23334 &enable_so_ieee80211_if_read_dot11MeshHWMPnetDiameterTraversalTime_fndecl_23334
154359 +enable_so_reply_queue_count_MPT2SAS_ADAPTER_23337 reply_queue_count MPT2SAS_ADAPTER 0 23337 NULL
154360 +enable_so_num_outputs_clkgena_divmux_data_23340 num_outputs clkgena_divmux_data 0 23340 NULL
154361 +enable_so_max_header_size_tsap_cb_23342 max_header_size tsap_cb 0 23342 NULL
154362 +enable_so_compat_sys_vmsplice_fndecl_23344 compat_sys_vmsplice fndecl 3 23344 NULL
154363 +enable_so_mark_block_processed_fndecl_23353 mark_block_processed fndecl 3-2 23353 NULL nohasharray
154364 +enable_so_pci_iov_virtfn_devfn_fndecl_23353 pci_iov_virtfn_devfn fndecl 0-2 23353 &enable_so_mark_block_processed_fndecl_23353
154365 +enable_so_vxres_crtc_23359 vxres crtc 0 23359 NULL
154366 +enable_so_v9fs_fid_xattr_get_fndecl_23361 v9fs_fid_xattr_get fndecl 0-4 23361 NULL
154367 +enable_so_default_blksize_st_modedef_23371 default_blksize st_modedef 0 23371 NULL
154368 +enable_so_packet_buffer_init_fndecl_23380 packet_buffer_init fndecl 2 23380 NULL
154369 +enable_so_kernel_map_sync_memtype_fndecl_23381 kernel_map_sync_memtype fndecl 1 23381 NULL
154370 +enable_so_length_dmi_header_23383 length dmi_header 0 23383 NULL
154371 +enable_so_pcpu_atom_size_vardecl_percpu_c_23384 pcpu_atom_size vardecl_percpu.c 0 23384 NULL
154372 +enable_so_sf_entsize_xfs_dir_ops_23386 sf_entsize xfs_dir_ops 0 23386 NULL nohasharray
154373 +enable_so_dstirq_mpc_intsrc_23386 dstirq mpc_intsrc 0 23386 &enable_so_sf_entsize_xfs_dir_ops_23386
154374 +enable_so_new_SSID_size_atmel_private_23387 new_SSID_size atmel_private 0 23387 NULL
154375 +enable_so___irlan_insert_param_fndecl_23389 __irlan_insert_param fndecl 7 23389 NULL nohasharray
154376 +enable_so_btmrvl_hscmd_read_fndecl_23389 btmrvl_hscmd_read fndecl 3 23389 &enable_so___irlan_insert_param_fndecl_23389
154377 +enable_so_xfs_alloc_file_space_fndecl_23394 xfs_alloc_file_space fndecl 3-2 23394 NULL
154378 +enable_so_ptr_mask_amdgpu_ring_23397 ptr_mask amdgpu_ring 0 23397 NULL
154379 +enable_so_kt_serial_setup_fndecl_23400 kt_serial_setup fndecl 4 23400 NULL
154380 +enable_so_max_cmds_ips_ha_23401 max_cmds ips_ha 0 23401 NULL nohasharray
154381 +enable_so_ikconfig_read_current_fndecl_23401 ikconfig_read_current fndecl 3 23401 &enable_so_max_cmds_ips_ha_23401
154382 +enable_so_s5p_jpeg_get_subsampling_mode_fndecl_23405 s5p_jpeg_get_subsampling_mode fndecl 0 23405 NULL nohasharray
154383 +enable_so_map_block_for_writepage_fndecl_23405 map_block_for_writepage fndecl 3 23405 &enable_so_s5p_jpeg_get_subsampling_mode_fndecl_23405
154384 +enable_so_nx_fw_cmd_set_gbe_port_fndecl_23412 nx_fw_cmd_set_gbe_port fndecl 3 23412 NULL
154385 +enable_so_numerator_v4l2_fract_23413 numerator v4l2_fract 0 23413 NULL
154386 +enable_so_logfs_safe_iget_fndecl_23415 logfs_safe_iget fndecl 2 23415 NULL
154387 +enable_so_cifs_write_end_fndecl_23416 cifs_write_end fndecl 5 23416 NULL
154388 +enable_so_max_snd_interval_23422 max snd_interval 0 23422 NULL
154389 +enable_so_configfs_read_file_fndecl_23424 configfs_read_file fndecl 3 23424 NULL
154390 +enable_so___qib_get_user_pages_fndecl_23426 __qib_get_user_pages fndecl 1 23426 NULL
154391 +enable_so_event_inj_vmcb_control_area_23434 event_inj vmcb_control_area 0 23434 NULL nohasharray
154392 +enable_so_nilfs_attach_snapshot_fndecl_23434 nilfs_attach_snapshot fndecl 2 23434 &enable_so_event_inj_vmcb_control_area_23434
154393 +enable_so_ftdi_instances_vardecl_ftdi_elan_c_23438 ftdi_instances vardecl_ftdi-elan.c 0 23438 NULL
154394 +enable_so_set_xfer_rate_fndecl_23440 set_xfer_rate fndecl 2 23440 NULL
154395 +enable_so_mei_cl_recv_fndecl_23442 mei_cl_recv fndecl 0-3 23442 NULL
154396 +enable_so_last_mcs_rx_wil_net_stats_23443 last_mcs_rx wil_net_stats 0 23443 NULL
154397 +enable_so_seg_size_wa_xfer_23450 seg_size wa_xfer 0 23450 NULL
154398 +enable_so_name_len_ocfs2_dir_entry_23452 name_len ocfs2_dir_entry 0 23452 NULL nohasharray
154399 +enable_so_bytes_number_item_operations_23452 bytes_number item_operations 0 23452 &enable_so_name_len_ocfs2_dir_entry_23452
154400 +enable_so_btrfs_dir_data_len_fndecl_23457 btrfs_dir_data_len fndecl 0 23457 NULL
154401 +enable_so_rsi_sdio_write_register_multiple_fndecl_23471 rsi_sdio_write_register_multiple fndecl 4 23471 NULL
154402 +enable_so_offset_ttm_bus_placement_23475 offset ttm_bus_placement 0 23475 NULL
154403 +enable_so_iwl_dbgfs_d0i3_refs_read_fndecl_23482 iwl_dbgfs_d0i3_refs_read fndecl 3 23482 NULL
154404 +enable_so_gfn_to_hva_prot_fndecl_23484 gfn_to_hva_prot fndecl 2 23484 NULL nohasharray
154405 +enable_so_coda_psdev_write_fndecl_23484 coda_psdev_write fndecl 3 23484 &enable_so_gfn_to_hva_prot_fndecl_23484
154406 +enable_so_control_skge_rx_desc_23486 control skge_rx_desc 0 23486 NULL
154407 +enable_so_cyy_init_card_fndecl_23488 cyy_init_card fndecl 0 23488 NULL
154408 +enable_so_tx_frag_called_read_fndecl_23495 tx_frag_called_read fndecl 3 23495 NULL
154409 +enable_so_egr_sz_sge_23500 egr_sz sge 0 23500 NULL
154410 +enable_so_mxt_read_and_process_messages_fndecl_23502 mxt_read_and_process_messages fndecl 2-0 23502 NULL
154411 +enable_so_internal_create_group_fndecl_23510 internal_create_group fndecl 0 23510 NULL
154412 +enable_so_objectid_btrfs_disk_key_23513 objectid btrfs_disk_key 0 23513 NULL
154413 +enable_so_usb_ep_align_maybe_fndecl_23516 usb_ep_align_maybe fndecl 0-3 23516 NULL
154414 +enable_so_dev_irnet_read_fndecl_23518 dev_irnet_read fndecl 3 23518 NULL
154415 +enable_so_rxHeader2_edgeport_serial_23525 rxHeader2 edgeport_serial 0 23525 NULL
154416 +enable_so_info2_rx_ppdu_start_23531 info2 rx_ppdu_start 0 23531 NULL
154417 +enable_so_ieee80211_new_mesh_header_fndecl_23538 ieee80211_new_mesh_header fndecl 0 23538 NULL
154418 +enable_so_FbUsableSize_nvidia_par_23541 FbUsableSize nvidia_par 0 23541 NULL nohasharray
154419 +enable_so_mem_size_pch_dev_23541 mem_size pch_dev 0 23541 &enable_so_FbUsableSize_nvidia_par_23541
154420 +enable_so_max_pkt_size_cx231xx_bulk_ctl_23542 max_pkt_size cx231xx_bulk_ctl 0 23542 NULL
154421 +enable_so_ebt_size_mwt_fndecl_23547 ebt_size_mwt fndecl 0 23547 NULL
154422 +enable_so_cosa_write_fndecl_23549 cosa_write fndecl 3 23549 NULL
154423 +enable_so_inode_no_exofs_dir_entry_23550 inode_no exofs_dir_entry 0 23550 NULL
154424 +enable_so_xfs_dabuf_map_fndecl_23558 xfs_dabuf_map fndecl 2 23558 NULL
154425 +enable_so_p_chmask_f_uac2_opts_23559 p_chmask f_uac2_opts 0 23559 NULL
154426 +enable_so_bdx_change_mtu_fndecl_23561 bdx_change_mtu fndecl 2 23561 NULL
154427 +enable_so_lblock_gfs2_journal_extent_23574 lblock gfs2_journal_extent 0 23574 NULL
154428 +enable_so_secblob_len_cifs_spnego_msg_23580 secblob_len cifs_spnego_msg 0 23580 NULL
154429 +enable_so_rx_max_size_cxgbi_device_23582 rx_max_size cxgbi_device 0 23582 NULL
154430 +enable_so_syslog_print_fndecl_23584 syslog_print fndecl 2 23584 NULL nohasharray
154431 +enable_so_resource_length_aml_resource_large_header_23584 resource_length aml_resource_large_header 0 23584 &enable_so_syslog_print_fndecl_23584
154432 +enable_so_nr_devices_ssb_bus_23589 nr_devices ssb_bus 0 23589 NULL
154433 +enable_so_max_cmd_size_ath6kl_bmi_23591 max_cmd_size ath6kl_bmi 0 23591 NULL
154434 +enable_so_dn_setsockopt_fndecl_23593 dn_setsockopt fndecl 5 23593 NULL
154435 +enable_so_hugetlb_no_page_fndecl_23597 hugetlb_no_page fndecl 5 23597 NULL
154436 +enable_so_c67x00_probe_sie_fndecl_23602 c67x00_probe_sie fndecl 3 23602 NULL
154437 +enable_so_read_file_war_stats_fndecl_23607 read_file_war_stats fndecl 3 23607 NULL
154438 +enable_so_nr_grant_frames_vardecl_grant_table_c_23609 nr_grant_frames vardecl_grant-table.c 0 23609 NULL
154439 +enable_so_mthca_alloc_icm_pages_fndecl_23615 mthca_alloc_icm_pages fndecl 2 23615 NULL
154440 +enable_so_video_size_sis_video_info_23622 video_size sis_video_info 0 23622 NULL nohasharray
154441 +enable_so_mthca_alloc_fndecl_23622 mthca_alloc fndecl 0 23622 &enable_so_video_size_sis_video_info_23622
154442 +enable_so_blocksize_iso9660_options_23626 blocksize iso9660_options 0 23626 NULL
154443 +enable_so_skge_rx_setup_fndecl_23628 skge_rx_setup fndecl 4 23628 NULL
154444 +enable_so_vb_bytes_per_line_cx18_stream_23630 vb_bytes_per_line cx18_stream 0 23630 NULL nohasharray
154445 +enable_so_ll_zero_fndecl_23630 ll_zero fndecl 3-4 23630 &enable_so_vb_bytes_per_line_cx18_stream_23630
154446 +enable_so_ath9k_wmi_cmd_fndecl_23636 ath9k_wmi_cmd fndecl 4 23636 NULL
154447 +enable_so_nr_tags_blk_mq_tags_23638 nr_tags blk_mq_tags 0 23638 NULL
154448 +enable_so_ceph_sync_read_fndecl_23643 ceph_sync_read fndecl 0 23643 NULL
154449 +enable_so_map_urb_for_dma_fndecl_23647 map_urb_for_dma fndecl 0 23647 NULL
154450 +enable_so_size_crush_bucket_23650 size crush_bucket 0 23650 NULL
154451 +enable_so_piobcnt4k_qib_devdata_23655 piobcnt4k qib_devdata 0 23655 NULL
154452 +enable_so_viafb_bpp1_vardecl_viafbdev_c_23657 viafb_bpp1 vardecl_viafbdev.c 0 23657 NULL
154453 +enable_so_cmtp_send_interopmsg_fndecl_23659 cmtp_send_interopmsg fndecl 7 23659 NULL
154454 +enable_so_unix_stream_sendpage_fndecl_23660 unix_stream_sendpage fndecl 3-4 23660 NULL
154455 +enable_so_fat_length_msdos_sb_info_23672 fat_length msdos_sb_info 0 23672 NULL
154456 +enable_so_mlx5_core_access_reg_fndecl_23674 mlx5_core_access_reg fndecl 3-5 23674 NULL
154457 +enable_so_xfs_get_blocks_fndecl_23679 xfs_get_blocks fndecl 2 23679 NULL
154458 +enable_so_xfs_ialloc_next_ag_fndecl_23680 xfs_ialloc_next_ag fndecl 0 23680 NULL
154459 +enable_so_buf_size_vmci_ctx_chkpt_buf_info_23686 buf_size vmci_ctx_chkpt_buf_info 0 23686 NULL
154460 +enable_so_vxfs_bmap1_fndecl_23688 vxfs_bmap1 fndecl 0-2 23688 NULL
154461 +enable_so_aio_read_events_ring_fndecl_23689 aio_read_events_ring fndecl 3 23689 NULL
154462 +enable_so_aac_fib_adapter_complete_fndecl_23697 aac_fib_adapter_complete fndecl 2 23697 NULL
154463 +enable_so_size_ubifs_ino_node_23699 size ubifs_ino_node 0 23699 NULL
154464 +enable_so_rmtvaluelen_xfs_da_args_23709 rmtvaluelen xfs_da_args 0 23709 NULL nohasharray
154465 +enable_so_word_offset_bm_xfer_ctx_23709 word_offset bm_xfer_ctx 0 23709 &enable_so_rmtvaluelen_xfs_da_args_23709
154466 +enable_so_vgacon_scroll_fndecl_23715 vgacon_scroll fndecl 5 23715 NULL
154467 +enable_so_ath6kl_sdio_bmi_write_fndecl_23717 ath6kl_sdio_bmi_write fndecl 3 23717 NULL
154468 +enable_so_num_retune_mobile_texts_wm8904_priv_23719 num_retune_mobile_texts wm8904_priv 0 23719 NULL
154469 +enable_so_len_cmdbuf_t_23720 len cmdbuf_t 0 23720 NULL
154470 +enable_so_acpi_ev_create_gpe_block_fndecl_23722 acpi_ev_create_gpe_block fndecl 4 23722 NULL
154471 +enable_so_size_p9_fcall_23725 size p9_fcall 0 23725 NULL
154472 +enable_so_lbs_rdmac_read_fndecl_23729 lbs_rdmac_read fndecl 3 23729 NULL
154473 +enable_so_hugetlb_fault_fndecl_23735 hugetlb_fault fndecl 3 23735 NULL
154474 +enable_so_logfs_compress_fndecl_23746 logfs_compress fndecl 3-4 23746 NULL
154475 +enable_so__alloc_get_attr_desc_fndecl_23749 _alloc_get_attr_desc fndecl 2 23749 NULL
154476 +enable_so_writesize_acm_23756 writesize acm 0 23756 NULL
154477 +enable_so_dccp_manip_pkt_fndecl_23759 dccp_manip_pkt fndecl 4 23759 NULL
154478 +enable_so_fat_ent_bread_fndecl_23760 fat_ent_bread fndecl 4 23760 NULL
154479 +enable_so_fnic_max_trace_entries_vardecl_fnic_trace_c_23762 fnic_max_trace_entries vardecl_fnic_trace.c 0 23762 NULL
154480 +enable_so_i915_gem_create_fndecl_23768 i915_gem_create fndecl 3 23768 NULL
154481 +enable_so_dev_mem_seek_fndecl_23776 dev_mem_seek fndecl 2 23776 NULL nohasharray
154482 +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
154483 +enable_so_start_pnfs_block_dev_map_23776 start pnfs_block_dev_map 0 23776 &enable_so_rec_len_ext4_dir_entry_2_23776
154484 +enable_so_read_vbt_r0_fndecl_23780 read_vbt_r0 fndecl 1 23780 NULL
154485 +enable_so_tail_p9_rdir_23781 tail p9_rdir 0 23781 NULL nohasharray
154486 +enable_so_iwl_dbgfs_protection_mode_write_fndecl_23781 iwl_dbgfs_protection_mode_write fndecl 3 23781 &enable_so_tail_p9_rdir_23781
154487 +enable_so_count_uvc_debugfs_buffer_23783 count uvc_debugfs_buffer 0 23783 NULL
154488 +enable_so_rx_rx_defrag_end_read_fndecl_23786 rx_rx_defrag_end_read fndecl 3 23786 NULL
154489 +enable_so_read_buffer_length_lego_usb_tower_23787 read_buffer_length lego_usb_tower 0 23787 NULL
154490 +enable_so_nr_kvm_irq_routing_23794 nr kvm_irq_routing 0 23794 NULL
154491 +enable_so_ubi_attach_mtd_dev_fndecl_23797 ubi_attach_mtd_dev fndecl 3-4 23797 NULL nohasharray
154492 +enable_so_parity_devs_raid_type_23797 parity_devs raid_type 0 23797 &enable_so_ubi_attach_mtd_dev_fndecl_23797 nohasharray
154493 +enable_so_cfs_trace_set_debug_mb_usrstr_fndecl_23797 cfs_trace_set_debug_mb_usrstr fndecl 2 23797 &enable_so_parity_devs_raid_type_23797
154494 +enable_so_free_tiger_ch_23798 free tiger_ch 0 23798 NULL
154495 +enable_so_ra_offset_xfs_dir2_leaf_map_info_23799 ra_offset xfs_dir2_leaf_map_info 0 23799 NULL
154496 +enable_so_skip_tx_en_setup_fndecl_23801 skip_tx_en_setup fndecl 4 23801 NULL
154497 +enable_so_nr_node_ids_vardecl_23803 nr_node_ids vardecl 0 23803 NULL nohasharray
154498 +enable_so_rts_threshold_atmel_private_23803 rts_threshold atmel_private 0 23803 &enable_so_nr_node_ids_vardecl_23803 nohasharray
154499 +enable_so_nvme_trans_modesel_data_fndecl_23803 nvme_trans_modesel_data fndecl 4 23803 &enable_so_rts_threshold_atmel_private_23803
154500 +enable_so__find_next_bit_be_fndecl_23804 _find_next_bit_be fndecl 0 23804 NULL nohasharray
154501 +enable_so_desc_list_len_timb_dma_desc_23804 desc_list_len timb_dma_desc 0 23804 &enable_so__find_next_bit_be_fndecl_23804
154502 +enable_so_sctp_skb_pull_fndecl_23806 sctp_skb_pull fndecl 2-0 23806 NULL
154503 +enable_so_cdrom_read_cdda_bpc_fndecl_23812 cdrom_read_cdda_bpc fndecl 4 23812 NULL nohasharray
154504 +enable_so_compat_sock_setsockopt_fndecl_23812 compat_sock_setsockopt fndecl 5 23812 &enable_so_cdrom_read_cdda_bpc_fndecl_23812
154505 +enable_so_storvsc_connect_to_vsp_fndecl_23813 storvsc_connect_to_vsp fndecl 2 23813 NULL
154506 +enable_so_carl9170_alloc_fndecl_23816 carl9170_alloc fndecl 1 23816 NULL
154507 +enable_so_ocfs2_get_refcount_tree_fndecl_23824 ocfs2_get_refcount_tree fndecl 2 23824 NULL
154508 +enable_so_ipath_make_rc_ack_fndecl_23825 ipath_make_rc_ack fndecl 4 23825 NULL
154509 +enable_so_intel_fake_agp_alloc_by_type_fndecl_23826 intel_fake_agp_alloc_by_type fndecl 1 23826 NULL nohasharray
154510 +enable_so_nbytes_ahash_request_23826 nbytes ahash_request 0 23826 &enable_so_intel_fake_agp_alloc_by_type_fndecl_23826
154511 +enable_so___xfs_dir3_free_read_fndecl_23827 __xfs_dir3_free_read fndecl 3 23827 NULL nohasharray
154512 +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
154513 +enable_so_vbi_v_stop_0_saa7134_tvnorm_23830 vbi_v_stop_0 saa7134_tvnorm 0 23830 NULL
154514 +enable_so_ext3_writeback_write_end_fndecl_23832 ext3_writeback_write_end fndecl 5-3 23832 NULL
154515 +enable_so_buffer_total_count_pvr2_stream_23834 buffer_total_count pvr2_stream 0 23834 NULL
154516 +enable_so_key_dm_region_23838 key dm_region 0 23838 NULL
154517 +enable_so_compressed_bio_alloc_fndecl_23839 compressed_bio_alloc fndecl 2 23839 NULL
154518 +enable_so_update_backups_fndecl_23840 update_backups fndecl 2 23840 NULL
154519 +enable_so_rx_buf_size_skge_port_23843 rx_buf_size skge_port 0 23843 NULL
154520 +enable_so_padzero_fndecl_23844 padzero fndecl 1 23844 NULL nohasharray
154521 +enable_so_sel_read_policyvers_fndecl_23844 sel_read_policyvers fndecl 3 23844 &enable_so_padzero_fndecl_23844
154522 +enable_so_osd_request_async_done_fndecl_23847 osd_request_async_done fndecl 2 23847 NULL nohasharray
154523 +enable_so_pci_fastcom335_setup_fndecl_23847 pci_fastcom335_setup fndecl 4 23847 &enable_so_osd_request_async_done_fndecl_23847 nohasharray
154524 +enable_so_tidcnt_qib_tid_info_23847 tidcnt qib_tid_info 0 23847 &enable_so_pci_fastcom335_setup_fndecl_23847
154525 +enable_so_efx_ef10_sriov_configure_fndecl_23850 efx_ef10_sriov_configure fndecl 2 23850 NULL nohasharray
154526 +enable_so_SpareReplUnitNum_nftl_uci0_23850 SpareReplUnitNum nftl_uci0 0 23850 &enable_so_efx_ef10_sriov_configure_fndecl_23850
154527 +enable_so_am_length_compat_xfs_attr_multiop_23853 am_length compat_xfs_attr_multiop 0 23853 NULL
154528 +enable_so_max_srq_wqes_mlx4_caps_23857 max_srq_wqes mlx4_caps 0 23857 NULL
154529 +enable_so_clutsize_linux_logo_23865 clutsize linux_logo 0 23865 NULL
154530 +enable_so_vdisplay_drm_display_mode_23870 vdisplay drm_display_mode 0 23870 NULL
154531 +enable_so_ohead_offs_ubifs_info_23876 ohead_offs ubifs_info 0 23876 NULL nohasharray
154532 +enable_so_c_data_offs_pvr2_ioread_23876 c_data_offs pvr2_ioread 0 23876 &enable_so_ohead_offs_ubifs_info_23876
154533 +enable_so_write_file_tpc_fndecl_23877 write_file_tpc fndecl 3 23877 NULL
154534 +enable_so_emulate_gp_fndecl_23878 emulate_gp fndecl 2 23878 NULL
154535 +enable_so_operand_2_len_ccp_ecc_modular_math_23882 operand_2_len ccp_ecc_modular_math 0 23882 NULL
154536 +enable_so_load_msg_fndecl_23884 load_msg fndecl 2 23884 NULL
154537 +enable_so_snd_korg1212_copy_to_fndecl_23887 snd_korg1212_copy_to fndecl 6 23887 NULL
154538 +enable_so_bytes_snd_dma_buffer_23890 bytes snd_dma_buffer 0 23890 NULL nohasharray
154539 +enable_so_il4965_rs_get_best_rate_fndecl_23890 il4965_rs_get_best_rate fndecl 5 23890 &enable_so_bytes_snd_dma_buffer_23890 nohasharray
154540 +enable_so_sb_dirband_size_hpfs_sb_info_23890 sb_dirband_size hpfs_sb_info 0 23890 &enable_so_il4965_rs_get_best_rate_fndecl_23890
154541 +enable_so_in_base_pos_ceph_connection_23892 in_base_pos ceph_connection 0 23892 NULL
154542 +enable_so_vxfs_inode_by_name_fndecl_23899 vxfs_inode_by_name fndecl 0 23899 NULL nohasharray
154543 +enable_so___skb_to_sgvec_fndecl_23899 __skb_to_sgvec fndecl 0-4-3 23899 &enable_so_vxfs_inode_by_name_fndecl_23899
154544 +enable_so_block_log_squashfs_sb_info_23905 block_log squashfs_sb_info 0 23905 NULL
154545 +enable_so_status_adm8211_desc_23909 status adm8211_desc 0 23909 NULL nohasharray
154546 +enable_so_al_offset_drbd_md_23909 al_offset drbd_md 0 23909 &enable_so_status_adm8211_desc_23909
154547 +enable_so_ipath_verbs_send_fndecl_23910 ipath_verbs_send fndecl 5-3 23910 NULL
154548 +enable_so_num_pages_fuse_req_23911 num_pages fuse_req 0 23911 NULL
154549 +enable_so_avail_pebs_ubi_device_23916 avail_pebs ubi_device 0 23916 NULL
154550 +enable_so_data_len_iser_data_buf_23917 data_len iser_data_buf 0 23917 NULL
154551 +enable_so_rd_data_gfs2_rgrpd_23919 rd_data gfs2_rgrpd 0 23919 NULL
154552 +enable_so_nr_items_list_lru_one_23925 nr_items list_lru_one 0 23925 NULL
154553 +enable_so_p9_client_readdir_fndecl_23927 p9_client_readdir fndecl 0-3 23927 NULL
154554 +enable_so_disk_len_btrfs_ordered_extent_23932 disk_len btrfs_ordered_extent 0 23932 NULL
154555 +enable_so_tracing_trace_options_write_fndecl_23946 tracing_trace_options_write fndecl 3 23946 NULL
154556 +enable_so_btrfs_setxattr_fndecl_23956 btrfs_setxattr fndecl 4 23956 NULL
154557 +enable_so_init_q_fndecl_23959 init_q fndecl 4 23959 NULL
154558 +enable_so_input_buffer_size_vardecl_seq_midi_c_23961 input_buffer_size vardecl_seq_midi.c 0 23961 NULL
154559 +enable_so_rx_ip_align_efx_nic_23965 rx_ip_align efx_nic 0 23965 NULL nohasharray
154560 +enable_so_memstick_alloc_host_fndecl_23965 memstick_alloc_host fndecl 1 23965 &enable_so_rx_ip_align_efx_nic_23965
154561 +enable_so_memblock_add_range_fndecl_23974 memblock_add_range fndecl 2-3 23974 NULL nohasharray
154562 +enable_so_fw_status_len_wl1271_23974 fw_status_len wl1271 0 23974 &enable_so_memblock_add_range_fndecl_23974
154563 +enable_so_li_channels__DIVA_CAPI_ADAPTER_23977 li_channels _DIVA_CAPI_ADAPTER 0 23977 NULL
154564 +enable_so_xfs_buf_item_get_format_fndecl_23982 xfs_buf_item_get_format fndecl 2 23982 NULL
154565 +enable_so_last_txrate_idx_iwl_lq_sta_23983 last_txrate_idx iwl_lq_sta 0 23983 NULL
154566 +enable_so_vsync_len_fb_var_screeninfo_23987 vsync_len fb_var_screeninfo 0 23987 NULL
154567 +enable_so_length_acpi_object_string_23992 length acpi_object_string 0 23992 NULL
154568 +enable_so_EventDataLength__MPI2_EVENT_NOTIFICATION_REPLY_23993 EventDataLength _MPI2_EVENT_NOTIFICATION_REPLY 0 23993 NULL
154569 +enable_so_usb_stream_next_packet_size_fndecl_23994 usb_stream_next_packet_size fndecl 0 23994 NULL nohasharray
154570 +enable_so_pci_request_selected_regions_fndecl_23994 pci_request_selected_regions fndecl 0 23994 &enable_so_usb_stream_next_packet_size_fndecl_23994
154571 +enable_so___pn533_send_async_fndecl_24001 __pn533_send_async fndecl 5 24001 NULL
154572 +enable_so_anchor_udf_options_24004 anchor udf_options 0 24004 NULL
154573 +enable_so_dir_band_start_hpfs_super_block_24005 dir_band_start hpfs_super_block 0 24005 NULL
154574 +enable_so_truncate_setsize_fndecl_24013 truncate_setsize fndecl 2 24013 NULL
154575 +enable_so_ath6kl_wmi_bssfilter_cmd_fndecl_24014 ath6kl_wmi_bssfilter_cmd fndecl 2 24014 NULL
154576 +enable_so_vlan_id_bond_vlan_tag_24019 vlan_id bond_vlan_tag 0 24019 NULL
154577 +enable_so_minimum_pcc_memory_resource_24022 minimum pcc_memory_resource 0 24022 NULL
154578 +enable_so_iscsi_session_setup_fndecl_24023 iscsi_session_setup fndecl 4-5-3 24023 NULL
154579 +enable_so_fill_user_desc_fndecl_24029 fill_user_desc fndecl 2 24029 NULL
154580 +enable_so_bpp__sisbios_mode_24033 bpp _sisbios_mode 0 24033 NULL
154581 +enable_so_namelen_cramfs_inode_24036 namelen cramfs_inode 0 24036 NULL
154582 +enable_so_obj_size_request_sock_ops_24037 obj_size request_sock_ops 0 24037 NULL
154583 +enable_so_chunk_mask_geom_24040 chunk_mask geom 0 24040 NULL
154584 +enable_so_vpdma_create_desc_list_fndecl_24044 vpdma_create_desc_list fndecl 2 24044 NULL
154585 +enable_so_start_switch_path_24046 start switch_path 0 24046 NULL nohasharray
154586 +enable_so_buf_size_conf_writedata_24046 buf_size conf_writedata 0 24046 &enable_so_start_switch_path_24046
154587 +enable_so_erase_shift_mmc_card_24051 erase_shift mmc_card 0 24051 NULL nohasharray
154588 +enable_so_size_pernet_operations_24051 size pernet_operations 0 24051 &enable_so_erase_shift_mmc_card_24051
154589 +enable_so_osst_int_ioctl_fndecl_24052 osst_int_ioctl fndecl 4 24052 NULL nohasharray
154590 +enable_so_bNumEndpoints_usb_interface_descriptor_24052 bNumEndpoints usb_interface_descriptor 0 24052 &enable_so_osst_int_ioctl_fndecl_24052
154591 +enable_so_inode_minix3_dir_entry_24054 inode minix3_dir_entry 0 24054 NULL
154592 +enable_so_shdma_init_fndecl_24059 shdma_init fndecl 3 24059 NULL
154593 +enable_so_ws_row_winsize_24064 ws_row winsize 0 24064 NULL
154594 +enable_so_jbd2_journal_dirty_metadata_fndecl_24067 jbd2_journal_dirty_metadata fndecl 0 24067 NULL
154595 +enable_so_ebx_v86_regs_24072 ebx v86_regs 0 24072 NULL
154596 +enable_so_fnic_get_stats_data_fndecl_24075 fnic_get_stats_data fndecl 0 24075 NULL
154597 +enable_so_tpg_get_default_depth_target_core_fabric_ops_24077 tpg_get_default_depth target_core_fabric_ops 0 24077 NULL
154598 +enable_so_h_sync_strt_wid_aty128_crtc_24079 h_sync_strt_wid aty128_crtc 0 24079 NULL nohasharray
154599 +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
154600 +enable_so_last_mark_lbn_os_aux_s_24082 last_mark_lbn os_aux_s 0 24082 NULL
154601 +enable_so_sample_group_minstrel_ht_sta_24084 sample_group minstrel_ht_sta 0 24084 NULL nohasharray
154602 +enable_so_cylinders_ssfdcr_record_24084 cylinders ssfdcr_record 0 24084 &enable_so_sample_group_minstrel_ht_sta_24084
154603 +enable_so_gfs2_meta_new_fndecl_24087 gfs2_meta_new fndecl 2 24087 NULL nohasharray
154604 +enable_so_map_len_ipath_verbs_txreq_24087 map_len ipath_verbs_txreq 0 24087 &enable_so_gfs2_meta_new_fndecl_24087
154605 +enable_so_pat_pagerange_is_ram_fndecl_24089 pat_pagerange_is_ram fndecl 1-2 24089 NULL
154606 +enable_so_mw_count_ntb_transport_ctx_24094 mw_count ntb_transport_ctx 0 24094 NULL nohasharray
154607 +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
154608 +enable_so_irq_base_pm860x_chip_24096 irq_base pm860x_chip 0 24096 NULL
154609 +enable_so_sectors_md_rdev_24098 sectors md_rdev 0 24098 NULL
154610 +enable_so_capture_bufsize_vardecl_nm256_c_24100 capture_bufsize vardecl_nm256.c 0 24100 NULL
154611 +enable_so_dcbp_set_pad_bits_fndecl_24101 dcbp_set_pad_bits fndecl 2 24101 NULL
154612 +enable_so_bus_mtu_brcmf_usbdev_24102 bus_mtu brcmf_usbdev 0 24102 NULL
154613 +enable_so_max_ib_mtu_ipoib_dev_priv_24105 max_ib_mtu ipoib_dev_priv 0 24105 NULL nohasharray
154614 +enable_so_read_fifo_fndecl_24105 read_fifo fndecl 3 24105 &enable_so_max_ib_mtu_ipoib_dev_priv_24105
154615 +enable_so_add_td_to_list_fndecl_24113 add_td_to_list fndecl 3 24113 NULL nohasharray
154616 +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
154617 +enable_so_packet_multiplier_em28xx_24119 packet_multiplier em28xx 0 24119 NULL nohasharray
154618 +enable_so_rax_vmcb_save_area_24119 rax vmcb_save_area 0 24119 &enable_so_packet_multiplier_em28xx_24119
154619 +enable_so_size_sge_rspq_24120 size sge_rspq 0 24120 NULL
154620 +enable_so_srpt_build_cmd_rsp_fndecl_24126 srpt_build_cmd_rsp fndecl 0 24126 NULL
154621 +enable_so_um_idi_read_fndecl_24129 um_idi_read fndecl 3 24129 NULL
154622 +enable_so_ieee80211_assoc_success_fndecl_24131 ieee80211_assoc_success fndecl 4 24131 NULL
154623 +enable_so_radix_tree_locate_item_fndecl_24133 radix_tree_locate_item fndecl 0 24133 NULL
154624 +enable_so_num_snaps_ceph_snap_context_24136 num_snaps ceph_snap_context 0 24136 NULL nohasharray
154625 +enable_so_error_state_read_fndecl_24136 error_state_read fndecl 5-6 24136 &enable_so_num_snaps_ceph_snap_context_24136
154626 +enable_so_transp_elsa_hw_24137 transp elsa_hw 0 24137 NULL nohasharray
154627 +enable_so_scif_user_send_fndecl_24137 scif_user_send fndecl 3 24137 &enable_so_transp_elsa_hw_24137
154628 +enable_so_key_update_fndecl_24140 key_update fndecl 3 24140 NULL
154629 +enable_so_segs_wa_xfer_24141 segs wa_xfer 0 24141 NULL nohasharray
154630 +enable_so_sdram_size_solo_dev_24141 sdram_size solo_dev 0 24141 &enable_so_segs_wa_xfer_24141 nohasharray
154631 +enable_so_elem_size_v4l2_ctrl_config_24141 elem_size v4l2_ctrl_config 0 24141 &enable_so_sdram_size_solo_dev_24141
154632 +enable_so_t_task_nolb_se_cmd_24142 t_task_nolb se_cmd 0 24142 NULL
154633 +enable_so_tegra_clk_init_fndecl_24143 tegra_clk_init fndecl 3-2 24143 NULL
154634 +enable_so_len_event_data_24144 len event_data 0 24144 NULL
154635 +enable_so_fat_fat_length_fat_bios_param_block_24145 fat_fat_length fat_bios_param_block 0 24145 NULL
154636 +enable_so_initial_tsn_sctp_inithdr_host_24149 initial_tsn sctp_inithdr_host 0 24149 NULL
154637 +enable_so_lro_add_page_fndecl_24166 lro_add_page fndecl 4 24166 NULL
154638 +enable_so___alloc_extent_buffer_fndecl_24167 __alloc_extent_buffer fndecl 3-2 24167 NULL nohasharray
154639 +enable_so_ppp_sync_input_fndecl_24167 ppp_sync_input fndecl 4 24167 &enable_so___alloc_extent_buffer_fndecl_24167
154640 +enable_so_vd_tlb_preload_count_gru_vma_data_24168 vd_tlb_preload_count gru_vma_data 0 24168 NULL
154641 +enable_so_vram_start_radeon_mc_24170 vram_start radeon_mc 0 24170 NULL
154642 +enable_so_bpp_drm_mode_create_dumb_24171 bpp drm_mode_create_dumb 0 24171 NULL
154643 +enable_so_drop_count_codel_stats_24173 drop_count codel_stats 0 24173 NULL nohasharray
154644 +enable_so_ttymajor_vardecl_synclink_c_24173 ttymajor vardecl_synclink.c 0 24173 &enable_so_drop_count_codel_stats_24173
154645 +enable_so_top_v4l2_rect_24176 top v4l2_rect 0 24176 NULL
154646 +enable_so_ext4_split_extent_fndecl_24180 ext4_split_extent fndecl 0 24180 NULL
154647 +enable_so_o2net_send_message_vec_fndecl_24188 o2net_send_message_vec fndecl 4 24188 NULL nohasharray
154648 +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
154649 +enable_so_iv_size_crypt_config_24199 iv_size crypt_config 0 24199 NULL
154650 +enable_so_kernel_sendpage_fndecl_24200 kernel_sendpage fndecl 0-4 24200 NULL nohasharray
154651 +enable_so_drop_unencrypted_local_info_24200 drop_unencrypted local_info 0 24200 &enable_so_kernel_sendpage_fndecl_24200 nohasharray
154652 +enable_so_play_video_cb_fndecl_24200 play_video_cb fndecl 2 24200 &enable_so_drop_unencrypted_local_info_24200 nohasharray
154653 +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
154654 +enable_so_yenta_search_res_fndecl_24211 yenta_search_res fndecl 3 24211 NULL
154655 +enable_so_erase_size_falcon_spi_device_24212 erase_size falcon_spi_device 0 24212 NULL
154656 +enable_so_amdgpu_benchmark_move_fndecl_24214 amdgpu_benchmark_move fndecl 2 24214 NULL
154657 +enable_so_size_drm_gem_object_24219 size drm_gem_object 0 24219 NULL
154658 +enable_so_stride_usbatm_channel_24224 stride usbatm_channel 0 24224 NULL
154659 +enable_so_carl9170_cmd_buf_fndecl_24229 carl9170_cmd_buf fndecl 3 24229 NULL
154660 +enable_so_get_ramdisk_size_fndecl_24233 get_ramdisk_size fndecl 0 24233 NULL
154661 +enable_so_udf_process_sequence_fndecl_24235 udf_process_sequence fndecl 2 24235 NULL
154662 +enable_so_num_tx_queues_fm10k_intfc_24236 num_tx_queues fm10k_intfc 0 24236 NULL
154663 +enable_so___nodes_weight_fndecl_24239 __nodes_weight fndecl 0 24239 NULL
154664 +enable_so_common_qdepth_blogic_adapter_24241 common_qdepth blogic_adapter 0 24241 NULL
154665 +enable_so_pcicfg_base_sst_pdata_24243 pcicfg_base sst_pdata 0 24243 NULL
154666 +enable_so_vlan_qos_vlan_ioctl_args_24244 vlan_qos vlan_ioctl_args 0 24244 NULL nohasharray
154667 +enable_so_qi_dqchunklen_xfs_quotainfo_24244 qi_dqchunklen xfs_quotainfo 0 24244 &enable_so_vlan_qos_vlan_ioctl_args_24244
154668 +enable_so_vmbus_sendpacket_mpb_desc_fndecl_24250 vmbus_sendpacket_mpb_desc fndecl 3-5 24250 NULL
154669 +enable_so_inode_ext2_dir_entry_2_24254 inode ext2_dir_entry_2 0 24254 NULL
154670 +enable_so_move_pfn_range_left_fndecl_24256 move_pfn_range_left fndecl 3-4 24256 NULL
154671 +enable_so_ali1535_offset_vardecl_i2c_ali1535_c_24257 ali1535_offset vardecl_i2c-ali1535.c 0 24257 NULL
154672 +enable_so_rts_thresh_orinoco_private_24258 rts_thresh orinoco_private 0 24258 NULL
154673 +enable_so_in_wm8994_fll_config_24259 in wm8994_fll_config 0 24259 NULL
154674 +enable_so_width_vpe_q_data_24262 width vpe_q_data 0 24262 NULL
154675 +enable_so_src_length_btrfs_ioctl_clone_range_args_24266 src_length btrfs_ioctl_clone_range_args 0 24266 NULL
154676 +enable_so_crtc_hblank_end_drm_display_mode_24268 crtc_hblank_end drm_display_mode 0 24268 NULL
154677 +enable_so_totalsize_microcode_header_intel_24274 totalsize microcode_header_intel 0 24274 NULL
154678 +enable_so_blockshift_alauda_card_info_24288 blockshift alauda_card_info 0 24288 NULL
154679 +enable_so_bop_delete_nilfs_bmap_operations_24290 bop_delete nilfs_bmap_operations 0 24290 NULL
154680 +enable_so__do_truncate_fndecl_24296 _do_truncate fndecl 2 24296 NULL
154681 +enable_so_sg_copy_buffer_fndecl_24297 sg_copy_buffer fndecl 0-5-4 24297 NULL
154682 +enable_so_smk_write_cipso2_fndecl_24302 smk_write_cipso2 fndecl 3 24302 NULL
154683 +enable_so_rf_our_slot_rcom_config_24309 rf_our_slot rcom_config 0 24309 NULL
154684 +enable_so_hdlcdev_rx_fndecl_24310 hdlcdev_rx fndecl 3 24310 NULL nohasharray
154685 +enable_so_ocfs2_info_scan_inode_alloc_fndecl_24310 ocfs2_info_scan_inode_alloc fndecl 3 24310 &enable_so_hdlcdev_rx_fndecl_24310 nohasharray
154686 +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
154687 +enable_so_udc_get_ppbdu_rxbytes_fndecl_24313 udc_get_ppbdu_rxbytes fndecl 0 24313 NULL nohasharray
154688 +enable_so_dm_accept_partial_bio_fndecl_24313 dm_accept_partial_bio fndecl 2 24313 &enable_so_udc_get_ppbdu_rxbytes_fndecl_24313 nohasharray
154689 +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
154690 +enable_so_pch_udc_create_dma_chain_fndecl_24314 pch_udc_create_dma_chain fndecl 3 24314 NULL nohasharray
154691 +enable_so_pstore_file_llseek_fndecl_24314 pstore_file_llseek fndecl 2 24314 &enable_so_pch_udc_create_dma_chain_fndecl_24314
154692 +enable_so_byte_per_page_nand_jedec_params_24315 byte_per_page nand_jedec_params 0 24315 NULL
154693 +enable_so_remove_monitor_info_fndecl_24319 remove_monitor_info fndecl 3 24319 NULL
154694 +enable_so_iova_qib_mregion_24323 iova qib_mregion 0 24323 NULL
154695 +enable_so_xennet_make_txreqs_fndecl_24328 xennet_make_txreqs fndecl 5-6 24328 NULL
154696 +enable_so_zlib_deflate_workspacesize_fndecl_24330 zlib_deflate_workspacesize fndecl 0-2-1 24330 NULL
154697 +enable_so_num_rports_bfa_iocfc_fwcfg_s_24334 num_rports bfa_iocfc_fwcfg_s 0 24334 NULL
154698 +enable_so_next_offset_ceph_file_info_24335 next_offset ceph_file_info 0 24335 NULL nohasharray
154699 +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
154700 +enable_so_in_iso_pipe_usbtest_dev_24336 in_iso_pipe usbtest_dev 0 24336 NULL
154701 +enable_so_word2_lpfc_rcqe_24338 word2 lpfc_rcqe 0 24338 NULL
154702 +enable_so_smp_send_cmd_fndecl_24339 smp_send_cmd fndecl 3 24339 NULL
154703 +enable_so_flags_rtl8187_rx_hdr_24340 flags rtl8187_rx_hdr 0 24340 NULL
154704 +enable_so_airo_change_mtu_fndecl_24345 airo_change_mtu fndecl 2 24345 NULL
154705 +enable_so_stride_simplefb_params_24347 stride simplefb_params 0 24347 NULL
154706 +enable_so_ocfs2_validate_meta_ecc_bhs_fndecl_24348 ocfs2_validate_meta_ecc_bhs fndecl 0 24348 NULL
154707 +enable_so_sd_inptrs_gfs2_sbd_24356 sd_inptrs gfs2_sbd 0 24356 NULL
154708 +enable_so_start_isoc_chain_fndecl_24358 start_isoc_chain fndecl 4-2 24358 NULL
154709 +enable_so_ieee_il3945_rate_info_24363 ieee il3945_rate_info 0 24363 NULL
154710 +enable_so_dst_h_yuv_frame_info_24364 dst_h yuv_frame_info 0 24364 NULL
154711 +enable_so_ls_recover_size_lm_lockstruct_24365 ls_recover_size lm_lockstruct 0 24365 NULL
154712 +enable_so_len_ath6kl_mgmt_buff_24368 len ath6kl_mgmt_buff 0 24368 NULL
154713 +enable_so_atr_len_cm4000_dev_24376 atr_len cm4000_dev 0 24376 NULL
154714 +enable_so_virt_begin_dm_thin_new_mapping_24377 virt_begin dm_thin_new_mapping 0 24377 NULL
154715 +enable_so_sco_sock_setsockopt_fndecl_24379 sco_sock_setsockopt fndecl 5 24379 NULL
154716 +enable_so_wqe_shift_mthca_srq_24381 wqe_shift mthca_srq 0 24381 NULL
154717 +enable_so_read_reg_c_can_priv_24389 read_reg c_can_priv 0 24389 NULL
154718 +enable_so_demote_then_promote_fndecl_24392 demote_then_promote fndecl 5-3-4 24392 NULL
154719 +enable_so_ext4_rename_dir_finish_fndecl_24394 ext4_rename_dir_finish fndecl 3 24394 NULL
154720 +enable_so_tail_sk_buff_24399 tail sk_buff 0 24399 NULL
154721 +enable_so_fw_base_sst_pdata_24402 fw_base sst_pdata 0 24402 NULL
154722 +enable_so_compat_sys_preadv_fndecl_24404 compat_sys_preadv fndecl 3 24404 NULL
154723 +enable_so_max_frame_size_slgt_info_24405 max_frame_size slgt_info 0 24405 NULL
154724 +enable_so_ocfs2_alloc_write_ctxt_fndecl_24406 ocfs2_alloc_write_ctxt fndecl 3 24406 NULL nohasharray
154725 +enable_so_hfs_ext_find_block_fndecl_24406 hfs_ext_find_block fndecl 0 24406 &enable_so_ocfs2_alloc_write_ctxt_fndecl_24406
154726 +enable_so_completed_vringh_24407 completed vringh 0 24407 NULL
154727 +enable_so_max_scbs_hw_profile_24409 max_scbs hw_profile 0 24409 NULL
154728 +enable_so_smk_write_load_self2_fndecl_24412 smk_write_load_self2 fndecl 3 24412 NULL
154729 +enable_so_start_soundfont_sample_info_24413 start soundfont_sample_info 0 24413 NULL
154730 +enable_so_mtu_ArcProto_24415 mtu ArcProto 0 24415 NULL
154731 +enable_so_srq_entry_sz_mthca_dev_lim_24422 srq_entry_sz mthca_dev_lim 0 24422 NULL
154732 +enable_so_ni_gpct_device_construct_fndecl_24433 ni_gpct_device_construct fndecl 5 24433 NULL
154733 +enable_so_init_cdrom_command_fndecl_24438 init_cdrom_command fndecl 3 24438 NULL nohasharray
154734 +enable_so_size_tty_buffer_24438 size tty_buffer 0 24438 &enable_so_init_cdrom_command_fndecl_24438
154735 +enable_so_usHBlanking_Time__ATOM_DTD_FORMAT_24440 usHBlanking_Time _ATOM_DTD_FORMAT 0 24440 NULL
154736 +enable_so_fuse_request_alloc_nofs_fndecl_24442 fuse_request_alloc_nofs fndecl 1 24442 NULL
154737 +enable_so_dwTransferLength_wa_xfer_result_24445 dwTransferLength wa_xfer_result 0 24445 NULL
154738 +enable_so_ptlrpc_lprocfs_nrs_seq_write_fndecl_24446 ptlrpc_lprocfs_nrs_seq_write fndecl 3 24446 NULL
154739 +enable_so_s_last_pseg_nilfs_super_block_24457 s_last_pseg nilfs_super_block 0 24457 NULL
154740 +enable_so_rtlwifi_rate_mapping_fndecl_24458 rtlwifi_rate_mapping fndecl 0 24458 NULL
154741 +enable_so_wm8996_set_fll_fndecl_24459 wm8996_set_fll fndecl 4-5 24459 NULL
154742 +enable_so_nvif_notify_new_fndecl_24460 nvif_notify_new fndecl 6-7 24460 NULL
154743 +enable_so_drbd_bm_find_next_fndecl_24464 drbd_bm_find_next fndecl 0-2 24464 NULL nohasharray
154744 +enable_so_cfs_hash_bkt_size_fndecl_24464 cfs_hash_bkt_size fndecl 0 24464 &enable_so_drbd_bm_find_next_fndecl_24464
154745 +enable_so_remap_to_cache_fndecl_24467 remap_to_cache fndecl 3 24467 NULL
154746 +enable_so_unlink_queued_fndecl_24470 unlink_queued fndecl 4-2-3 24470 NULL
154747 +enable_so_rq_db_page_mthca_create_qp_24471 rq_db_page mthca_create_qp 0 24471 NULL
154748 +enable_so_get_filter_fndecl_24472 get_filter fndecl 0 24472 NULL
154749 +enable_so_qset_remove_urb_fndecl_24474 qset_remove_urb fndecl 4 24474 NULL nohasharray
154750 +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
154751 +enable_so_dtim_interval_read_fndecl_24477 dtim_interval_read fndecl 3 24477 NULL
154752 +enable_so_elog_base_vardecl_acpi_extlog_c_24485 elog_base vardecl_acpi_extlog.c 0 24485 NULL
154753 +enable_so_WriteBlock_fndecl_24489 WriteBlock fndecl 3 24489 NULL nohasharray
154754 +enable_so_shim_phy_add_intel_sst_drv_24489 shim_phy_add intel_sst_drv 0 24489 &enable_so_WriteBlock_fndecl_24489
154755 +enable_so_sensor_yres_em28xx_v4l2_24490 sensor_yres em28xx_v4l2 0 24490 NULL
154756 +enable_so_mem_rx_free_mem_blks_read_fndecl_24496 mem_rx_free_mem_blks_read fndecl 3 24496 NULL nohasharray
154757 +enable_so_len_ceph_crypto_key_24496 len ceph_crypto_key 0 24496 &enable_so_mem_rx_free_mem_blks_read_fndecl_24496 nohasharray
154758 +enable_so_drv_block_st_partstat_24496 drv_block st_partstat 0 24496 &enable_so_len_ceph_crypto_key_24496
154759 +enable_so_buf_sz_rx_info_24497 buf_sz rx_info 0 24497 NULL
154760 +enable_so_default_priority_binder_proc_24499 default_priority binder_proc 0 24499 NULL
154761 +enable_so_iwl_mvm_hwrate_to_tx_status_fndecl_24501 iwl_mvm_hwrate_to_tx_status fndecl 1 24501 NULL nohasharray
154762 +enable_so_virtio_gpu_get_vbuf_fndecl_24501 virtio_gpu_get_vbuf fndecl 2-3 24501 &enable_so_iwl_mvm_hwrate_to_tx_status_fndecl_24501
154763 +enable_so_sys_sendfile64_fndecl_24508 sys_sendfile64 fndecl 4 24508 NULL
154764 +enable_so_octeon_allocate_device_fndecl_24509 octeon_allocate_device fndecl 2 24509 NULL
154765 +enable_so_max_size_usb_fifo_24517 max_size usb_fifo 0 24517 NULL
154766 +enable_so_vc_y_vc_data_24521 vc_y vc_data 0 24521 NULL
154767 +enable_so_size_firmware_24525 size firmware 0 24525 NULL
154768 +enable_so_rtl8169_try_rx_copy_fndecl_24530 rtl8169_try_rx_copy fndecl 3 24530 NULL nohasharray
154769 +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
154770 +enable_so_max_sgl_entries_vardecl_mpt3sas_base_c_24531 max_sgl_entries vardecl_mpt3sas_base.c 0 24531 NULL
154771 +enable_so_ipath_resize_cq_fndecl_24539 ipath_resize_cq fndecl 2 24539 NULL
154772 +enable_so_dvb_video_write_fndecl_24545 dvb_video_write fndecl 3 24545 NULL
154773 +enable_so_width_pcm_format_data_24546 width pcm_format_data 0 24546 NULL
154774 +enable_so_xfs_xattr_set_fndecl_24547 xfs_xattr_set fndecl 4 24547 NULL
154775 +enable_so_size_memblock_region_24555 size memblock_region 0 24555 NULL
154776 +enable_so_log_len_vardecl_verifier_c_24556 log_len vardecl_verifier.c 0 24556 NULL
154777 +enable_so_boot_size_il4965_firmware_pieces_24557 boot_size il4965_firmware_pieces 0 24557 NULL
154778 +enable_so_ocfs2_test_inode_bit_fndecl_24558 ocfs2_test_inode_bit fndecl 2 24558 NULL
154779 +enable_so_residual_count_se_cmd_24562 residual_count se_cmd 0 24562 NULL
154780 +enable_so_blksize_nbd_device_24565 blksize nbd_device 0 24565 NULL
154781 +enable_so_ddp_set_map_fndecl_24572 ddp_set_map fndecl 4 24572 NULL
154782 +enable_so_port_subport_cnt_ipath_portdata_24576 port_subport_cnt ipath_portdata 0 24576 NULL nohasharray
154783 +enable_so_blk_extent_info_24576 blk extent_info 0 24576 &enable_so_port_subport_cnt_ipath_portdata_24576
154784 +enable_so_kvm_cpu_get_interrupt_fndecl_24580 kvm_cpu_get_interrupt fndecl 0 24580 NULL
154785 +enable_so_size_ceph_mds_caps_24581 size ceph_mds_caps 0 24581 NULL
154786 +enable_so_pkt_size_gspca_dev_24583 pkt_size gspca_dev 0 24583 NULL
154787 +enable_so_joydev_handle_JSIOCSBTNMAP_fndecl_24584 joydev_handle_JSIOCSBTNMAP fndecl 3 24584 NULL
154788 +enable_so_pipeline_hs_tx_stat_fifo_int_read_fndecl_24585 pipeline_hs_tx_stat_fifo_int_read fndecl 3 24585 NULL nohasharray
154789 +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
154790 +enable_so_ebcnt_vardecl_oobtest_c_24588 ebcnt vardecl_oobtest.c 0 24588 NULL
154791 +enable_so_chunk_shift_geom_24589 chunk_shift geom 0 24589 NULL
154792 +enable_so_st_int_write_fndecl_24593 st_int_write fndecl 0 24593 NULL
154793 +enable_so_img_width_zoran_jpg_settings_24594 img_width zoran_jpg_settings 0 24594 NULL
154794 +enable_so_head_TxFifo_24599 head TxFifo 0 24599 NULL nohasharray
154795 +enable_so_ea_size_l_fnode_24599 ea_size_l fnode 0 24599 &enable_so_head_TxFifo_24599
154796 +enable_so_dsp_cmx_send_member_fndecl_24602 dsp_cmx_send_member fndecl 2 24602 NULL
154797 +enable_so_root_level_kvm_mmu_24604 root_level kvm_mmu 0 24604 NULL
154798 +enable_so_ubifs_add_bud_to_log_fndecl_24607 ubifs_add_bud_to_log fndecl 4 24607 NULL
154799 +enable_so_raid_disks_mddev_24609 raid_disks mddev 0 24609 NULL
154800 +enable_so_datalen_ip_tunnel_prl_24610 datalen ip_tunnel_prl 0 24610 NULL
154801 +enable_so_unix_bind_fndecl_24615 unix_bind fndecl 3 24615 NULL
154802 +enable_so_irda_connect_indication_fndecl_24616 irda_connect_indication fndecl 4-5 24616 NULL
154803 +enable_so_dm_read_fndecl_24617 dm_read fndecl 3 24617 NULL
154804 +enable_so_ntfs_new_extent_inode_fndecl_24624 ntfs_new_extent_inode fndecl 2 24624 NULL
154805 +enable_so_fs_path_add_fndecl_24627 fs_path_add fndecl 3 24627 NULL
154806 +enable_so_qlcnic_process_rcv_diag_fndecl_24628 qlcnic_process_rcv_diag fndecl 3 24628 NULL
154807 +enable_so_compat_sys_fcntl_fndecl_24629 compat_sys_fcntl fndecl 3 24629 NULL
154808 +enable_so_xsd_read_fndecl_24630 xsd_read fndecl 3 24630 NULL
154809 +enable_so_elan_i2c_read_block_fndecl_24636 elan_i2c_read_block fndecl 4 24636 NULL nohasharray
154810 +enable_so_txq_depth_bnad_24636 txq_depth bnad 0 24636 &enable_so_elan_i2c_read_block_fndecl_24636
154811 +enable_so_data_mcp_cmd_response_24644 data mcp_cmd_response 0 24644 NULL
154812 +enable_so_array_len_xdr_array2_desc_24652 array_len xdr_array2_desc 0 24652 NULL
154813 +enable_so_cur_sg_ore_per_dev_state_24654 cur_sg ore_per_dev_state 0 24654 NULL
154814 +enable_so_intr_cnt_vxgedev_24656 intr_cnt vxgedev 0 24656 NULL
154815 +enable_so_offset_musb_qh_24658 offset musb_qh 0 24658 NULL
154816 +enable_so_lcd_hsync_dly_atyfb_par_24660 lcd_hsync_dly atyfb_par 0 24660 NULL
154817 +enable_so_out_iso_pipe_usbtest_dev_24664 out_iso_pipe usbtest_dev 0 24664 NULL
154818 +enable_so_spidev_read_fndecl_24668 spidev_read fndecl 3 24668 NULL nohasharray
154819 +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
154820 +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
154821 +enable_so_rx_pipe_brcmf_usbdev_info_24671 rx_pipe brcmf_usbdev_info 0 24671 NULL
154822 +enable_so_id_platform_device_info_24673 id platform_device_info 0 24673 NULL nohasharray
154823 +enable_so_pinctrl_utils_reserve_map_fndecl_24673 pinctrl_utils_reserve_map fndecl 5 24673 &enable_so_id_platform_device_info_24673
154824 +enable_so_uhci_fixup_short_transfer_fndecl_24676 uhci_fixup_short_transfer fndecl 0 24676 NULL
154825 +enable_so_src_width_tpg_data_24681 src_width tpg_data 0 24681 NULL nohasharray
154826 +enable_so_arizona_calc_fll_fndecl_24681 arizona_calc_fll fndecl 3 24681 &enable_so_src_width_tpg_data_24681
154827 +enable_so_inet_insert_ifa_fndecl_24688 inet_insert_ifa fndecl 0 24688 NULL
154828 +enable_so_full_height_mxr_crop_24694 full_height mxr_crop 0 24694 NULL
154829 +enable_so_ocfs2_split_tree_fndecl_24695 ocfs2_split_tree fndecl 5 24695 NULL
154830 +enable_so_transport_generic_map_mem_to_cmd_fndecl_24700 transport_generic_map_mem_to_cmd fndecl 3 24700 NULL
154831 +enable_so_rio_request_inb_dbell_fndecl_24701 rio_request_inb_dbell fndecl 4-3 24701 NULL
154832 +enable_so_size_aper_size_info_16_24703 size aper_size_info_16 0 24703 NULL
154833 +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
154834 +enable_so_start_qla_flt_region_24707 start qla_flt_region 0 24707 NULL
154835 +enable_so_queue_depth_blk_mq_tag_set_24719 queue_depth blk_mq_tag_set 0 24719 NULL
154836 +enable_so_qxl_ttm_tt_create_fndecl_24720 qxl_ttm_tt_create fndecl 2 24720 NULL
154837 +enable_so_bfs_get_block_fndecl_24726 bfs_get_block fndecl 2 24726 NULL
154838 +enable_so_VBP_kyrofb_info_24731 VBP kyrofb_info 0 24731 NULL nohasharray
154839 +enable_so_HiSax_readstatus_fndecl_24731 HiSax_readstatus fndecl 2 24731 &enable_so_VBP_kyrofb_info_24731
154840 +enable_so_next_idtentry_24734 next idtentry 0 24734 NULL
154841 +enable_so_sb_pquotino_xfs_sb_24739 sb_pquotino xfs_sb 0 24739 NULL
154842 +enable_so_shmem_undo_range_fndecl_24742 shmem_undo_range fndecl 2-3 24742 NULL
154843 +enable_so_smk_read_direct_fndecl_24744 smk_read_direct fndecl 3 24744 NULL
154844 +enable_so_set_ltab_fndecl_24745 set_ltab fndecl 3 24745 NULL
154845 +enable_so_ud_putcs_fndecl_24751 ud_putcs fndecl 4-6-5 24751 NULL
154846 +enable_so_data_dotdot_offset_xfs_dir_ops_24758 data_dotdot_offset xfs_dir_ops 0 24758 NULL
154847 +enable_so_n_ao_urbs_usbduxsigma_private_24760 n_ao_urbs usbduxsigma_private 0 24760 NULL
154848 +enable_so_inftl_read_oob_fndecl_24761 inftl_read_oob fndecl 2-3 24761 NULL
154849 +enable_so_pending_deflate_state_24766 pending deflate_state 0 24766 NULL
154850 +enable_so_i_disksize_ext3_inode_info_24774 i_disksize ext3_inode_info 0 24774 NULL
154851 +enable_so_xlog_state_switch_iclogs_fndecl_24782 xlog_state_switch_iclogs fndecl 3 24782 NULL
154852 +enable_so_gx1_read_conf_reg_fndecl_24794 gx1_read_conf_reg fndecl 0 24794 NULL nohasharray
154853 +enable_so_gnttab_expand_fndecl_24794 gnttab_expand fndecl 1 24794 &enable_so_gx1_read_conf_reg_fndecl_24794
154854 +enable_so_afs_proc_rootcell_write_fndecl_24797 afs_proc_rootcell_write fndecl 3 24797 NULL
154855 +enable_so_usHSyncWidth__ATOM_DTD_FORMAT_24801 usHSyncWidth _ATOM_DTD_FORMAT 0 24801 NULL nohasharray
154856 +enable_so_index_vardecl_atiixp_c_24801 index vardecl_atiixp.c 0 24801 &enable_so_usHSyncWidth__ATOM_DTD_FORMAT_24801
154857 +enable_so_mprotect_fixup_fndecl_24803 mprotect_fixup fndecl 4-3 24803 NULL nohasharray
154858 +enable_so_write_file_tx99_fndecl_24803 write_file_tx99 fndecl 3 24803 &enable_so_mprotect_fixup_fndecl_24803
154859 +enable_so___read_extent_tree_block_fndecl_24804 __read_extent_tree_block fndecl 4 24804 NULL
154860 +enable_so_num_q_vectors_i40e_vsi_24807 num_q_vectors i40e_vsi 0 24807 NULL
154861 +enable_so_ceph_auth_build_hello_fndecl_24808 ceph_auth_build_hello fndecl 0 24808 NULL
154862 +enable_so_analog_ep_isoc_em28xx_24810 analog_ep_isoc em28xx 0 24810 NULL
154863 +enable_so_ubi_io_write_fndecl_24813 ubi_io_write fndecl 5-4 24813 NULL nohasharray
154864 +enable_so_media_entity_init_fndecl_24813 media_entity_init fndecl 2-4 24813 &enable_so_ubi_io_write_fndecl_24813
154865 +enable_so_cdc_ncm_eth_hlen_fndecl_24814 cdc_ncm_eth_hlen fndecl 0 24814 NULL nohasharray
154866 +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
154867 +enable_so_RxLastCount_via_ircc_cb_24815 RxLastCount via_ircc_cb 0 24815 NULL nohasharray
154868 +enable_so_array_resync_offset_dm_raid_superblock_24815 array_resync_offset dm_raid_superblock 0 24815 &enable_so_RxLastCount_via_ircc_cb_24815
154869 +enable_so_HBP_kyrofb_info_24818 HBP kyrofb_info 0 24818 NULL
154870 +enable_so_readahead_cached_dev_24826 readahead cached_dev 0 24826 NULL
154871 +enable_so_fq_codel_zalloc_fndecl_24833 fq_codel_zalloc fndecl 1 24833 NULL
154872 +enable_so_param_size_preview_update_24836 param_size preview_update 0 24836 NULL
154873 +enable_so_alloc_fddidev_fndecl_24837 alloc_fddidev fndecl 1 24837 NULL
154874 +enable_so_lprocfs_alloc_md_stats_fndecl_24846 lprocfs_alloc_md_stats fndecl 2 24846 NULL
154875 +enable_so_space_id_acpi_object_region_24848 space_id acpi_object_region 0 24848 NULL
154876 +enable_so_cx88_alsa_dma_init_fndecl_24851 cx88_alsa_dma_init fndecl 2 24851 NULL nohasharray
154877 +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
154878 +enable_so_wLength_usbdevfs_ctrltransfer_24851 wLength usbdevfs_ctrltransfer 0 24851 &enable_so_acpi_ut_create_string_object_fndecl_24851
154879 +enable_so_pa_len_ext4_prealloc_space_24852 pa_len ext4_prealloc_space 0 24852 NULL
154880 +enable_so_body_len_vardecl_initramfs_c_24853 body_len vardecl_initramfs.c 0 24853 NULL
154881 +enable_so_usbhs_pipe_config_update_fndecl_24856 usbhs_pipe_config_update fndecl 4 24856 NULL
154882 +enable_so_compat_sys_process_vm_readv_fndecl_24861 compat_sys_process_vm_readv fndecl 5-3 24861 NULL nohasharray
154883 +enable_so_bgpio_init_fndecl_24861 bgpio_init fndecl 3 24861 &enable_so_compat_sys_process_vm_readv_fndecl_24861
154884 +enable_so___videobuf_copy_to_user_fndecl_24876 __videobuf_copy_to_user fndecl 4-0 24876 NULL
154885 +enable_so_x86_cache_alignment_cpuinfo_x86_24878 x86_cache_alignment cpuinfo_x86 0 24878 NULL
154886 +enable_so_rx_buf_per_pkt_vmxnet3_adapter_24879 rx_buf_per_pkt vmxnet3_adapter 0 24879 NULL
154887 +enable_so_zone_count_sm_ftl_24881 zone_count sm_ftl 0 24881 NULL
154888 +enable_so_pipeline_csum_to_rx_xfer_swi_read_fndecl_24888 pipeline_csum_to_rx_xfer_swi_read fndecl 3 24888 NULL
154889 +enable_so_i_truncate_size_ceph_inode_info_24902 i_truncate_size ceph_inode_info 0 24902 NULL
154890 +enable_so_memweight_fndecl_24905 memweight fndecl 0 24905 NULL
154891 +enable_so_io_limit_vardecl_at24_c_24907 io_limit vardecl_at24.c 0 24907 NULL
154892 +enable_so_iscsi_sw_tcp_send_linear_data_prep_fndecl_24908 iscsi_sw_tcp_send_linear_data_prep fndecl 3 24908 NULL
154893 +enable_so_ceph_tcp_recvpage_fndecl_24910 ceph_tcp_recvpage fndecl 0-4 24910 NULL nohasharray
154894 +enable_so_buffer_len_stats_debug_info_24910 buffer_len stats_debug_info 0 24910 &enable_so_ceph_tcp_recvpage_fndecl_24910
154895 +enable_so_len_fb_cmap_24911 len fb_cmap 0 24911 NULL
154896 +enable_so_num_tx_queues_igb_adapter_24917 num_tx_queues igb_adapter 0 24917 NULL
154897 +enable_so_data_len_ib_ucm_info_24922 data_len ib_ucm_info 0 24922 NULL
154898 +enable_so_scif_rb_init_fndecl_24923 scif_rb_init fndecl 5 24923 NULL
154899 +enable_so_tcp_mtu_to_mss_fndecl_24925 tcp_mtu_to_mss fndecl 0-2 24925 NULL
154900 +enable_so_assign_eip_far_fndecl_24930 assign_eip_far fndecl 2 24930 NULL
154901 +enable_so_current_area_pstore_24931 current_area pstore 0 24931 NULL
154902 +enable_so_max_sectors_per_io_vardecl_megaraid_c_24934 max_sectors_per_io vardecl_megaraid.c 0 24934 NULL
154903 +enable_so_unxz_fndecl_24936 unxz fndecl 2 24936 NULL
154904 +enable_so_rtl_download_firmware_fndecl_24937 rtl_download_firmware fndecl 3 24937 NULL
154905 +enable_so_key_len_cfg80211_connect_params_24952 key_len cfg80211_connect_params 0 24952 NULL
154906 +enable_so_vmalloc_fndecl_24955 vmalloc fndecl 1 24955 NULL nohasharray
154907 +enable_so_size_video_still_picture_24955 size video_still_picture 0 24955 &enable_so_vmalloc_fndecl_24955
154908 +enable_so_nilfs_cpfile_clear_snapshot_fndecl_24964 nilfs_cpfile_clear_snapshot fndecl 2 24964 NULL
154909 +enable_so_outmsg_len_hvutil_transport_24966 outmsg_len hvutil_transport 0 24966 NULL
154910 +enable_so_accent_table_size_vardecl_24972 accent_table_size vardecl 0 24972 NULL
154911 +enable_so_pppol2tp_sendmsg_fndecl_24975 pppol2tp_sendmsg fndecl 3 24975 NULL nohasharray
154912 +enable_so_system_dir_blkno_ocfs2_super_24975 system_dir_blkno ocfs2_super 0 24975 &enable_so_pppol2tp_sendmsg_fndecl_24975 nohasharray
154913 +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
154914 +enable_so_i_rbytes_ceph_inode_info_24976 i_rbytes ceph_inode_info 0 24976 NULL
154915 +enable_so_exofs_inode_by_name_fndecl_24982 exofs_inode_by_name fndecl 0 24982 NULL
154916 +enable_so_vringh_iov_pull_user_fndecl_24984 vringh_iov_pull_user fndecl 3 24984 NULL
154917 +enable_so___clone_and_map_data_bio_fndecl_24985 __clone_and_map_data_bio fndecl 3 24985 NULL
154918 +enable_so_dr_suballoc_bit_ocfs2_dx_root_block_24992 dr_suballoc_bit ocfs2_dx_root_block 0 24992 NULL
154919 +enable_so_ql_process_mac_rx_page_fndecl_24996 ql_process_mac_rx_page fndecl 5-4 24996 NULL
154920 +enable_so___rh_find_fndecl_24997 __rh_find fndecl 2 24997 NULL
154921 +enable_so_jfs_extendfs_fndecl_25001 jfs_extendfs fndecl 2-3 25001 NULL
154922 +enable_so_zero_the_pointer_fndecl_25003 zero_the_pointer fndecl 0 25003 NULL
154923 +enable_so_default_density_st_modedef_25006 default_density st_modedef 0 25006 NULL
154924 +enable_so_xfrm_state_mtu_fndecl_25007 xfrm_state_mtu fndecl 0-2 25007 NULL nohasharray
154925 +enable_so_sdp0length__SpiCfgData_25007 sdp0length _SpiCfgData 0 25007 &enable_so_xfrm_state_mtu_fndecl_25007
154926 +enable_so_memory_map_top_down_fndecl_25011 memory_map_top_down fndecl 1-2 25011 NULL
154927 +enable_so_ifx_spi_write_fndecl_25016 ifx_spi_write fndecl 3 25016 NULL
154928 +enable_so_rx_jumbo_pending_ethtool_ringparam_25018 rx_jumbo_pending ethtool_ringparam 0 25018 NULL
154929 +enable_so_num_bd_ethoc_25022 num_bd ethoc 0 25022 NULL
154930 +enable_so__rtl_usb_tx_urb_setup_fndecl_25024 _rtl_usb_tx_urb_setup fndecl 3 25024 NULL
154931 +enable_so_height_fb_fillrect_25027 height fb_fillrect 0 25027 NULL nohasharray
154932 +enable_so_iwl_nvm_read_section_fndecl_25027 iwl_nvm_read_section fndecl 0 25027 &enable_so_height_fb_fillrect_25027
154933 +enable_so_vlan_cq_enet_rq_desc_25028 vlan cq_enet_rq_desc 0 25028 NULL nohasharray
154934 +enable_so_error_nfs_direct_req_25028 error nfs_direct_req 0 25028 &enable_so_vlan_cq_enet_rq_desc_25028
154935 +enable_so_crc_size_cas_25030 crc_size cas 0 25030 NULL nohasharray
154936 +enable_so_size_sym_tblmove_25030 size sym_tblmove 0 25030 &enable_so_crc_size_cas_25030
154937 +enable_so_pagesize_nand_flash_dev_25033 pagesize nand_flash_dev 0 25033 NULL
154938 +enable_so_bnx2fc_process_unsol_compl_fndecl_25035 bnx2fc_process_unsol_compl fndecl 2 25035 NULL
154939 +enable_so_db_free_next_ocfs2_dir_block_trailer_25041 db_free_next ocfs2_dir_block_trailer 0 25041 NULL
154940 +enable_so_stv0299_readregs_fndecl_25043 stv0299_readregs fndecl 4 25043 NULL
154941 +enable_so_ieee80211_amsdu_to_8023s_fndecl_25050 ieee80211_amsdu_to_8023s fndecl 5 25050 NULL
154942 +enable_so_aio_private_file_fndecl_25052 aio_private_file fndecl 2 25052 NULL nohasharray
154943 +enable_so_acpi_gpio_count_fndecl_25052 acpi_gpio_count fndecl 0 25052 &enable_so_aio_private_file_fndecl_25052
154944 +enable_so_bufsz_drm_radeon_kcmd_buffer_25056 bufsz drm_radeon_kcmd_buffer 0 25056 NULL
154945 +enable_so_size_object_info_25058 size object_info 0 25058 NULL
154946 +enable_so_in_max_chans_snd_card_asihpi_25063 in_max_chans snd_card_asihpi 0 25063 NULL
154947 +enable_so_cuse_file_compat_ioctl_fndecl_25067 cuse_file_compat_ioctl fndecl 2 25067 NULL
154948 +enable_so_ovl_alloc_entry_fndecl_25069 ovl_alloc_entry fndecl 1 25069 NULL
154949 +enable_so_buffer_size_snd_compr_runtime_25072 buffer_size snd_compr_runtime 0 25072 NULL nohasharray
154950 +enable_so_vme_user_write_fndecl_25072 vme_user_write fndecl 3 25072 &enable_so_buffer_size_snd_compr_runtime_25072
154951 +enable_so_rx_fifo_size_sh_msiof_spi_priv_25079 rx_fifo_size sh_msiof_spi_priv 0 25079 NULL
154952 +enable_so_ocfs2_truncate_rec_fndecl_25080 ocfs2_truncate_rec fndecl 7 25080 NULL
154953 +enable_so_transfer_snd_pcm_plugin_25081 transfer snd_pcm_plugin 0 25081 NULL
154954 +enable_so_length_bus_request_25082 length bus_request 0 25082 NULL
154955 +enable_so_len_ocrdma_sge_25084 len ocrdma_sge 0 25084 NULL nohasharray
154956 +enable_so_id_count_ocfs2_inline_data_25084 id_count ocfs2_inline_data 0 25084 &enable_so_len_ocrdma_sge_25084 nohasharray
154957 +enable_so_k_offset_offset_v1_25084 k_offset offset_v1 0 25084 &enable_so_id_count_ocfs2_inline_data_25084
154958 +enable_so_dwc3_prepare_one_trb_fndecl_25092 dwc3_prepare_one_trb fndecl 4 25092 NULL
154959 +enable_so_hidp_send_intr_message_fndecl_25093 hidp_send_intr_message fndecl 4 25093 NULL
154960 +enable_so_ext4_xattr_block_get_fndecl_25095 ext4_xattr_block_get fndecl 0 25095 NULL
154961 +enable_so_coff_ddb_input_25097 coff ddb_input 0 25097 NULL
154962 +enable_so_namelen_xfs_attr_sf_entry_25099 namelen xfs_attr_sf_entry 0 25099 NULL
154963 +enable_so_mgmt_device_found_fndecl_25100 mgmt_device_found fndecl 11-9 25100 NULL
154964 +enable_so_TxDescriptors_vardecl_pch_gbe_param_c_25102 TxDescriptors vardecl_pch_gbe_param.c 0 25102 NULL nohasharray
154965 +enable_so_num_pbls_ocrdma_hw_mr_25102 num_pbls ocrdma_hw_mr 0 25102 &enable_so_TxDescriptors_vardecl_pch_gbe_param_c_25102
154966 +enable_so_compat_sys_select_fndecl_25104 compat_sys_select fndecl 1 25104 NULL
154967 +enable_so_vbi_height_au0828_dev_25107 vbi_height au0828_dev 0 25107 NULL
154968 +enable_so_fsm_init_fndecl_25109 fsm_init fndecl 2 25109 NULL
154969 +enable_so_blen_if_spi_packet_25117 blen if_spi_packet 0 25117 NULL
154970 +enable_so_svcrdma_max_requests_vardecl_25118 svcrdma_max_requests vardecl 0 25118 NULL nohasharray
154971 +enable_so_clipt_start_adapter_25118 clipt_start adapter 0 25118 &enable_so_svcrdma_max_requests_vardecl_25118
154972 +enable_so_minimum_acpi_resource_memory24_25122 minimum acpi_resource_memory24 0 25122 NULL
154973 +enable_so_max_sge_ipath_rq_25132 max_sge ipath_rq 0 25132 NULL nohasharray
154974 +enable_so_i40e_allocate_virt_mem_d_fndecl_25132 i40e_allocate_virt_mem_d fndecl 3 25132 &enable_so_max_sge_ipath_rq_25132
154975 +enable_so_snd_interval_step_fndecl_25134 snd_interval_step fndecl 2 25134 NULL
154976 +enable_so_mapping_level_fndecl_25135 mapping_level fndecl 0-2 25135 NULL nohasharray
154977 +enable_so_gb_len_nfc_hci_dev_25135 gb_len nfc_hci_dev 0 25135 &enable_so_mapping_level_fndecl_25135 nohasharray
154978 +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
154979 +enable_so_s_first_data_block_ext3_super_block_25141 s_first_data_block ext3_super_block 0 25141 NULL nohasharray
154980 +enable_so_bnx2i_get_cid_num_fndecl_25141 bnx2i_get_cid_num fndecl 0 25141 &enable_so_s_first_data_block_ext3_super_block_25141
154981 +enable_so_ocfs2_init_xattr_bucket_fndecl_25146 ocfs2_init_xattr_bucket fndecl 2 25146 NULL
154982 +enable_so_gnttab_alloc_pages_fndecl_25149 gnttab_alloc_pages fndecl 1 25149 NULL nohasharray
154983 +enable_so_rate_max_snd_pcm_hardware_25149 rate_max snd_pcm_hardware 0 25149 &enable_so_gnttab_alloc_pages_fndecl_25149
154984 +enable_so_SyS_pselect6_fndecl_25153 SyS_pselect6 fndecl 1 25153 NULL
154985 +enable_so_numchips_cfi_private_25154 numchips cfi_private 0 25154 NULL
154986 +enable_so_iopm_base_vardecl_svm_c_25155 iopm_base vardecl_svm.c 0 25155 NULL
154987 +enable_so_vram_base_cirrus_mc_25157 vram_base cirrus_mc 0 25157 NULL
154988 +enable_so_create_table_fndecl_25158 create_table fndecl 2 25158 NULL
154989 +enable_so_si476x_core_send_command_fndecl_25160 si476x_core_send_command fndecl 4-6 25160 NULL
154990 +enable_so_max_transfer_size_mvumi_hba_25161 max_transfer_size mvumi_hba 0 25161 NULL
154991 +enable_so_width_emmaprp_q_data_25163 width emmaprp_q_data 0 25163 NULL
154992 +enable_so_tcp_syn_options_fndecl_25174 tcp_syn_options fndecl 0 25174 NULL
154993 +enable_so_cipso_v4_map_cat_rng_hton_fndecl_25176 cipso_v4_map_cat_rng_hton fndecl 0 25176 NULL nohasharray
154994 +enable_so_s_writesize_logfs_super_25176 s_writesize logfs_super 0 25176 &enable_so_cipso_v4_map_cat_rng_hton_fndecl_25176
154995 +enable_so_btrfs_create_repair_bio_fndecl_25181 btrfs_create_repair_bio fndecl 5 25181 NULL
154996 +enable_so_heapstart_sis_video_info_25184 heapstart sis_video_info 0 25184 NULL
154997 +enable_so_i40e_dbg_dump_read_fndecl_25188 i40e_dbg_dump_read fndecl 3 25188 NULL
154998 +enable_so_il_dbgfs_disable_ht40_write_fndecl_25194 il_dbgfs_disable_ht40_write fndecl 3 25194 NULL
154999 +enable_so_coex_tx_win_size_mwifiex_adapter_25195 coex_tx_win_size mwifiex_adapter 0 25195 NULL
155000 +enable_so_run_filter_fndecl_25196 run_filter fndecl 0-3 25196 NULL
155001 +enable_so_iso_in_endp_ttusbir_25197 iso_in_endp ttusbir 0 25197 NULL nohasharray
155002 +enable_so_SyS_fgetxattr_fndecl_25197 SyS_fgetxattr fndecl 4 25197 &enable_so_iso_in_endp_ttusbir_25197
155003 +enable_so_do_shrink_fndecl_25198 do_shrink fndecl 3-2 25198 NULL
155004 +enable_so_backing_dev_len_disk_conf_25199 backing_dev_len disk_conf 0 25199 NULL
155005 +enable_so_size_ioc_sts_mv_dtd_25203 size_ioc_sts mv_dtd 0 25203 NULL
155006 +enable_so_ux500_regulator_debug_init_fndecl_25207 ux500_regulator_debug_init fndecl 3 25207 NULL
155007 +enable_so_ip_set_elem_len_fndecl_25209 ip_set_elem_len fndecl 0-3 25209 NULL
155008 +enable_so_eth_get_headlen_fndecl_25213 eth_get_headlen fndecl 0-2 25213 NULL
155009 +enable_so_ext4_insert_range_fndecl_25217 ext4_insert_range fndecl 2-3 25217 NULL
155010 +enable_so_ocfs2_xattr_bucket_value_truncate_fndecl_25220 ocfs2_xattr_bucket_value_truncate fndecl 4 25220 NULL
155011 +enable_so_nand_bch_init_fndecl_25227 nand_bch_init fndecl 3-2 25227 NULL
155012 +enable_so_jumpshot_read_data_fndecl_25228 jumpshot_read_data fndecl 4 25228 NULL
155013 +enable_so_spy_number_iw_spy_data_25234 spy_number iw_spy_data 0 25234 NULL
155014 +enable_so_offset_zatm_pool_info_25250 offset zatm_pool_info 0 25250 NULL
155015 +enable_so_fpnum_omap3isp_ccdc_fpc_25254 fpnum omap3isp_ccdc_fpc 0 25254 NULL
155016 +enable_so_of_property_read_string_helper_fndecl_25257 of_property_read_string_helper fndecl 0-5 25257 NULL
155017 +enable_so_ar5523_cmd_fndecl_25261 ar5523_cmd fndecl 4 25261 NULL
155018 +enable_so_first_cluster_group_blkno_ocfs2_super_25262 first_cluster_group_blkno ocfs2_super 0 25262 NULL nohasharray
155019 +enable_so_start_page_swap_extent_25262 start_page swap_extent 0 25262 &enable_so_first_cluster_group_blkno_ocfs2_super_25262
155020 +enable_so_stk_allocate_buffers_fndecl_25264 stk_allocate_buffers fndecl 2 25264 NULL
155021 +enable_so_vol_id_ubi_mkvol_req_25267 vol_id ubi_mkvol_req 0 25267 NULL
155022 +enable_so_svc_create_fndecl_25270 svc_create fndecl 2 25270 NULL
155023 +enable_so_out_iovs_fuse_ioctl_out_25272 out_iovs fuse_ioctl_out 0 25272 NULL nohasharray
155024 +enable_so_get_fold_mark_fndecl_25272 get_fold_mark fndecl 2 25272 &enable_so_out_iovs_fuse_ioctl_out_25272 nohasharray
155025 +enable_so_register_count_acpi_gpe_block_info_25272 register_count acpi_gpe_block_info 0 25272 &enable_so_get_fold_mark_fndecl_25272
155026 +enable_so_authorizer_len_ceph_msg_connect_reply_25279 authorizer_len ceph_msg_connect_reply 0 25279 NULL
155027 +enable_so_collapse_huge_page_fndecl_25281 collapse_huge_page fndecl 2 25281 NULL
155028 +enable_so_dst_put_ci_fndecl_25284 dst_put_ci fndecl 3 25284 NULL
155029 +enable_so___install_special_mapping_fndecl_25286 __install_special_mapping fndecl 3-2 25286 NULL nohasharray
155030 +enable_so_exynos4_jpeg_get_frame_fmt_fndecl_25286 exynos4_jpeg_get_frame_fmt fndecl 0 25286 &enable_so___install_special_mapping_fndecl_25286
155031 +enable_so_ex_bn_extent_s_25293 ex_bn extent_s 0 25293 NULL
155032 +enable_so_string_length_acpi_resource_source_25296 string_length acpi_resource_source 0 25296 NULL
155033 +enable_so_vmw_cursor_update_image_fndecl_25311 vmw_cursor_update_image fndecl 4-3 25311 NULL nohasharray
155034 +enable_so_sz_m1_mlx5_wq_cyc_25311 sz_m1 mlx5_wq_cyc 0 25311 &enable_so_vmw_cursor_update_image_fndecl_25311
155035 +enable_so_cropw_val_pvr2_hdw_25312 cropw_val pvr2_hdw 0 25312 NULL
155036 +enable_so_resindex_dma_base_sst_acpi_desc_25313 resindex_dma_base sst_acpi_desc 0 25313 NULL
155037 +enable_so_fw_size_bcm203x_data_25314 fw_size bcm203x_data 0 25314 NULL
155038 +enable_so_num_desc_nx_host_rds_ring_25321 num_desc nx_host_rds_ring 0 25321 NULL
155039 +enable_so_cnt_i40e_hmc_obj_info_25322 cnt i40e_hmc_obj_info 0 25322 NULL
155040 +enable_so_rq_cnt_queue_set_25323 rq_cnt queue_set 0 25323 NULL nohasharray
155041 +enable_so_iscsi_tcp_conn_setup_fndecl_25323 iscsi_tcp_conn_setup fndecl 2 25323 &enable_so_rq_cnt_queue_set_25323
155042 +enable_so_max_outstanding_tx_usbcan_msg_softinfo_25327 max_outstanding_tx usbcan_msg_softinfo 0 25327 NULL
155043 +enable_so_bmv_count_getbmapx_25336 bmv_count getbmapx 0 25336 NULL
155044 +enable_so_width_deinterlace_q_data_25337 width deinterlace_q_data 0 25337 NULL
155045 +enable_so_vc_init_fndecl_25338 vc_init fndecl 3-2 25338 NULL
155046 +enable_so_sysfs_create_groups_fndecl_25339 sysfs_create_groups fndecl 0 25339 NULL
155047 +enable_so_enc_key_size_ecryptfs_key_record_25340 enc_key_size ecryptfs_key_record 0 25340 NULL nohasharray
155048 +enable_so_bytesperline_zoran_v4l_settings_25340 bytesperline zoran_v4l_settings 0 25340 &enable_so_enc_key_size_ecryptfs_key_record_25340 nohasharray
155049 +enable_so_xfs_inobt_lookup_fndecl_25340 xfs_inobt_lookup fndecl 2 25340 &enable_so_bytesperline_zoran_v4l_settings_25340
155050 +enable_so_total_ps_buffered_read_fndecl_25342 total_ps_buffered_read fndecl 3 25342 NULL
155051 +enable_so_svc_meta_len_htc_conn_service_msg_25346 svc_meta_len htc_conn_service_msg 0 25346 NULL nohasharray
155052 +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
155053 +enable_so_skb_add_rx_frag_fndecl_25355 skb_add_rx_frag fndecl 2-4-5-6 25355 NULL
155054 +enable_so_spi_rd_buf_fndecl_25357 spi_rd_buf fndecl 4 25357 NULL
155055 +enable_so___mptctl_ioctl_fndecl_25360 __mptctl_ioctl fndecl 2 25360 NULL
155056 +enable_so_bfs_move_block_fndecl_25369 bfs_move_block fndecl 1-2 25369 NULL
155057 +enable_so_encode_string_fndecl_25371 encode_string fndecl 2 25371 NULL
155058 +enable_so_sddr55_bulk_transport_fndecl_25377 sddr55_bulk_transport fndecl 4 25377 NULL nohasharray
155059 +enable_so_mt312_write_fndecl_25377 mt312_write fndecl 4 25377 &enable_so_sddr55_bulk_transport_fndecl_25377
155060 +enable_so_unix_dgram_recvmsg_fndecl_25379 unix_dgram_recvmsg fndecl 3 25379 NULL
155061 +enable_so_bio_copy_kern_fndecl_25382 bio_copy_kern fndecl 3 25382 NULL
155062 +enable_so_grefs_per_grant_frame_vardecl_grant_table_c_25386 grefs_per_grant_frame vardecl_grant-table.c 0 25386 NULL nohasharray
155063 +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
155064 +enable_so_nr_channels_timb_dma_platform_data_25387 nr_channels timb_dma_platform_data 0 25387 NULL
155065 +enable_so_tda18218_wr_regs_fndecl_25388 tda18218_wr_regs fndecl 4 25388 NULL
155066 +enable_so_xlog_write_start_rec_fndecl_25394 xlog_write_start_rec fndecl 0 25394 NULL
155067 +enable_so_atom_size_pcpu_alloc_info_25396 atom_size pcpu_alloc_info 0 25396 NULL
155068 +enable_so_brcmf_pcie_read_tcm16_fndecl_25401 brcmf_pcie_read_tcm16 fndecl 0 25401 NULL
155069 +enable_so_metromem_dma_metronomefb_par_25407 metromem_dma metronomefb_par 0 25407 NULL nohasharray
155070 +enable_so_ib_uverbs_reg_mr_fndecl_25407 ib_uverbs_reg_mr fndecl 3 25407 &enable_so_metromem_dma_metronomefb_par_25407
155071 +enable_so_memblock_virt_alloc_try_nid_fndecl_25409 memblock_virt_alloc_try_nid fndecl 2-1-3-4 25409 NULL nohasharray
155072 +enable_so_memsize_t4_cq_25409 memsize t4_cq 0 25409 &enable_so_memblock_virt_alloc_try_nid_fndecl_25409
155073 +enable_so_pci_wch_ch353_setup_fndecl_25411 pci_wch_ch353_setup fndecl 4 25411 NULL nohasharray
155074 +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
155075 +enable_so_nr_valid_peri_dma_pl330_platdata_25412 nr_valid_peri dma_pl330_platdata 0 25412 NULL
155076 +enable_so_entries_size_ebt_replace_kernel_25413 entries_size ebt_replace_kernel 0 25413 NULL
155077 +enable_so_image_len_gspca_dev_25419 image_len gspca_dev 0 25419 NULL
155078 +enable_so_remap_pci_mem_fndecl_25421 remap_pci_mem fndecl 2-1 25421 NULL nohasharray
155079 +enable_so_find_rsb_fndecl_25421 find_rsb fndecl 3 25421 &enable_so_remap_pci_mem_fndecl_25421
155080 +enable_so_power_read_fndecl_25424 power_read fndecl 3 25424 NULL
155081 +enable_so_num_bytes_btrfs_file_extent_item_25435 num_bytes btrfs_file_extent_item 0 25435 NULL
155082 +enable_so_def_rx_buf_size_octeon_config_25436 def_rx_buf_size octeon_config 0 25436 NULL
155083 +enable_so_i2c_write_fndecl_25439 i2c_write fndecl 4 25439 NULL nohasharray
155084 +enable_so_free_pfn_range_fndecl_25439 free_pfn_range fndecl 1-2 25439 &enable_so_i2c_write_fndecl_25439 nohasharray
155085 +enable_so_lpfc_idiag_drbacc_read_fndecl_25439 lpfc_idiag_drbacc_read fndecl 3 25439 &enable_so_free_pfn_range_fndecl_25439
155086 +enable_so_size_xen_netif_tx_request_25440 size xen_netif_tx_request 0 25440 NULL
155087 +enable_so_alloc_vm_area_fndecl_25446 alloc_vm_area fndecl 1 25446 NULL
155088 +enable_so_ds_nvme_lbaf_25461 ds nvme_lbaf 0 25461 NULL nohasharray
155089 +enable_so_smk_read_ptrace_fndecl_25461 smk_read_ptrace fndecl 3 25461 &enable_so_ds_nvme_lbaf_25461
155090 +enable_so_tx_count_slgt_info_25462 tx_count slgt_info 0 25462 NULL
155091 +enable_so_tx_rate_brcmf_sta_info_le_25464 tx_rate brcmf_sta_info_le 0 25464 NULL
155092 +enable_so_sddr09_send_scsi_command_fndecl_25467 sddr09_send_scsi_command fndecl 3 25467 NULL nohasharray
155093 +enable_so_id_stmpe_platform_data_25467 id stmpe_platform_data 0 25467 &enable_so_sddr09_send_scsi_command_fndecl_25467
155094 +enable_so_frame_alloc_fndecl_25470 frame_alloc fndecl 4 25470 NULL
155095 +enable_so_size_user_regset_25473 size user_regset 0 25473 NULL nohasharray
155096 +enable_so_viafb_vt1636_proc_write_fndecl_25473 viafb_vt1636_proc_write fndecl 3 25473 &enable_so_size_user_regset_25473
155097 +enable_so_playback_periodsize_rme96_25479 playback_periodsize rme96 0 25479 NULL
155098 +enable_so_chunk_sectors_mddev_25484 chunk_sectors mddev 0 25484 NULL
155099 +enable_so_got_frame_fndecl_25487 got_frame fndecl 2 25487 NULL
155100 +enable_so___get_data_block_fndecl_25493 __get_data_block fndecl 2 25493 NULL
155101 +enable_so_rx_transfer_len_hif_device_usb_25494 rx_transfer_len hif_device_usb 0 25494 NULL nohasharray
155102 +enable_so_next_cmd_len_sg_fd_25494 next_cmd_len sg_fd 0 25494 &enable_so_rx_transfer_len_hif_device_usb_25494
155103 +enable_so_max_buckets_out_mpt_lan_priv_25498 max_buckets_out mpt_lan_priv 0 25498 NULL
155104 +enable_so_count_seq_file_25501 count seq_file 0 25501 NULL
155105 +enable_so_size_map_info_25510 size map_info 0 25510 NULL
155106 +enable_so_hidp_send_message_fndecl_25511 hidp_send_message fndecl 6 25511 NULL nohasharray
155107 +enable_so_blk_init_tags_fndecl_25511 blk_init_tags fndecl 1 25511 &enable_so_hidp_send_message_fndecl_25511
155108 +enable_so_pppoe_recvmsg_fndecl_25514 pppoe_recvmsg fndecl 3 25514 NULL nohasharray
155109 +enable_so_n_sg_list_25514 n sg_list 0 25514 &enable_so_pppoe_recvmsg_fndecl_25514 nohasharray
155110 +enable_so_read_file_spectral_period_fndecl_25514 read_file_spectral_period fndecl 3 25514 &enable_so_n_sg_list_25514
155111 +enable_so_cuse_file_ioctl_fndecl_25529 cuse_file_ioctl fndecl 2 25529 NULL
155112 +enable_so_smk_write_unconfined_fndecl_25530 smk_write_unconfined fndecl 3 25530 NULL
155113 +enable_so_screen_fb_size_vardecl_hyperv_fb_c_25531 screen_fb_size vardecl_hyperv_fb.c 0 25531 NULL
155114 +enable_so_size_i40e_hmc_obj_info_25536 size i40e_hmc_obj_info 0 25536 NULL
155115 +enable_so_IOCRequestFrameSize_mpt2sas_facts_25540 IOCRequestFrameSize mpt2sas_facts 0 25540 NULL nohasharray
155116 +enable_so_ioh_gpio_setup_fndecl_25540 ioh_gpio_setup fndecl 2 25540 &enable_so_IOCRequestFrameSize_mpt2sas_facts_25540
155117 +enable_so_f_adc_rtl2832_sdr_dev_25544 f_adc rtl2832_sdr_dev 0 25544 NULL
155118 +enable_so_ipath_ibmaxlen_ipath_devdata_25555 ipath_ibmaxlen ipath_devdata 0 25555 NULL
155119 +enable_so_width_efifb_dmi_info_25557 width efifb_dmi_info 0 25557 NULL
155120 +enable_so_iommu_map_mmio_space_fndecl_25569 iommu_map_mmio_space fndecl 2-1 25569 NULL
155121 +enable_so_max_beb_per1024_ubi_attach_req_25573 max_beb_per1024 ubi_attach_req 0 25573 NULL nohasharray
155122 +enable_so_frame_length_sh_eth_rxdesc_25573 frame_length sh_eth_rxdesc 0 25573 &enable_so_max_beb_per1024_ubi_attach_req_25573
155123 +enable_so_num_stations_iwl_priv_25574 num_stations iwl_priv 0 25574 NULL
155124 +enable_so_hpi_outstream_ancillary_read_fndecl_25575 hpi_outstream_ancillary_read fndecl 4 25575 NULL nohasharray
155125 +enable_so_wsm_write_mib_fndecl_25575 wsm_write_mib fndecl 4 25575 &enable_so_hpi_outstream_ancillary_read_fndecl_25575
155126 +enable_so_lpage_size_genwqe_sgl_25578 lpage_size genwqe_sgl 0 25578 NULL
155127 +enable_so_bytes_per_pixel_usbvision_v4l2_format_st_25584 bytes_per_pixel usbvision_v4l2_format_st 0 25584 NULL
155128 +enable_so_cifs_mapchar_fndecl_25586 cifs_mapchar fndecl 0 25586 NULL
155129 +enable_so_test_ofs_cyttsp4_sysinfo_ofs_25587 test_ofs cyttsp4_sysinfo_ofs 0 25587 NULL
155130 +enable_so_isr_tx_exch_complete_read_fndecl_25588 isr_tx_exch_complete_read fndecl 3 25588 NULL
155131 +enable_so_last_page_snd_emu10k1_memblk_25591 last_page snd_emu10k1_memblk 0 25591 NULL
155132 +enable_so_s_partition_len_udf_part_map_25593 s_partition_len udf_part_map 0 25593 NULL nohasharray
155133 +enable_so_MaxReplyDescriptorPostQueueDepth_mpt3sas_facts_25593 MaxReplyDescriptorPostQueueDepth mpt3sas_facts 0 25593 &enable_so_s_partition_len_udf_part_map_25593
155134 +enable_so_udelay_test_write_fndecl_25596 udelay_test_write fndecl 3 25596 NULL
155135 +enable_so_isr_hw_pm_mode_changes_read_fndecl_25597 isr_hw_pm_mode_changes_read fndecl 3 25597 NULL nohasharray
155136 +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
155137 +enable_so_max_cmd_sg_entries_ctlr_info_25601 max_cmd_sg_entries ctlr_info 0 25601 NULL
155138 +enable_so_matroxfb_test_and_set_rounding_fndecl_25619 matroxfb_test_and_set_rounding fndecl 0-2 25619 NULL nohasharray
155139 +enable_so_size_hpi_message_header_25619 size hpi_message_header 0 25619 &enable_so_matroxfb_test_and_set_rounding_fndecl_25619
155140 +enable_so_ceph_osdc_alloc_request_fndecl_25622 ceph_osdc_alloc_request fndecl 3 25622 NULL
155141 +enable_so_nfs4_xattr_get_nfs4_label_fndecl_25623 nfs4_xattr_get_nfs4_label fndecl 4 25623 NULL
155142 +enable_so_pmcraid_major_vardecl_pmcraid_c_25627 pmcraid_major vardecl_pmcraid.c 0 25627 NULL
155143 +enable_so_ocfs2_trim_group_fndecl_25634 ocfs2_trim_group fndecl 0 25634 NULL nohasharray
155144 +enable_so_status_xen_netif_rx_response_25634 status xen_netif_rx_response 0 25634 &enable_so_ocfs2_trim_group_fndecl_25634
155145 +enable_so_profile_replace_fndecl_25647 profile_replace fndecl 3 25647 NULL
155146 +enable_so_rpipe_get_by_ep_fndecl_25656 rpipe_get_by_ep fndecl 0 25656 NULL
155147 +enable_so_getxattr_inode_operations_25660 getxattr inode_operations 0 25660 NULL
155148 +enable_so_min_bytes_needed_fndecl_25664 min_bytes_needed fndecl 0 25664 NULL
155149 +enable_so_eec_entry_sz_mthca_dev_lim_25665 eec_entry_sz mthca_dev_lim 0 25665 NULL
155150 +enable_so_m_ag_maxlevels_xfs_mount_25666 m_ag_maxlevels xfs_mount 0 25666 NULL nohasharray
155151 +enable_so_HWPartsNum_qinfo_chip_25666 HWPartsNum qinfo_chip 0 25666 &enable_so_m_ag_maxlevels_xfs_mount_25666
155152 +enable_so_nvme_trans_log_info_exceptions_fndecl_25670 nvme_trans_log_info_exceptions fndecl 3 25670 NULL
155153 +enable_so_nvkm_namedb_create__fndecl_25674 nvkm_namedb_create_ fndecl 7 25674 NULL
155154 +enable_so_pipeline_enc_tx_stat_fifo_int_read_fndecl_25675 pipeline_enc_tx_stat_fifo_int_read fndecl 3 25675 NULL
155155 +enable_so_tsi148_master_set_fndecl_25678 tsi148_master_set fndecl 4 25678 NULL
155156 +enable_so_layout_mdp_superblock_s_25680 layout mdp_superblock_s 0 25680 NULL
155157 +enable_so_max_cmd_per_lun_vardecl_megaraid_c_25693 max_cmd_per_lun vardecl_megaraid.c 0 25693 NULL
155158 +enable_so_persistent_ram_ecc_string_fndecl_25699 persistent_ram_ecc_string fndecl 0 25699 NULL
155159 +enable_so_chv_get_total_gtt_size_fndecl_25701 chv_get_total_gtt_size fndecl 0-1 25701 NULL nohasharray
155160 +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
155161 +enable_so_sysctl_numa_balancing_scan_size_vardecl_25704 sysctl_numa_balancing_scan_size vardecl 0 25704 NULL nohasharray
155162 +enable_so_ir_post_altera_jtag_25704 ir_post altera_jtag 0 25704 &enable_so_sysctl_numa_balancing_scan_size_vardecl_25704
155163 +enable_so_cmnd_out_ep_vub300_mmc_host_25705 cmnd_out_ep vub300_mmc_host 0 25705 NULL nohasharray
155164 +enable_so_get_bio_block_fndecl_25705 get_bio_block fndecl 0 25705 &enable_so_cmnd_out_ep_vub300_mmc_host_25705
155165 +enable_so_ntfs_file_fsync_fndecl_25706 ntfs_file_fsync fndecl 2-3 25706 NULL
155166 +enable_so_max_cid_space_cnic_local_25708 max_cid_space cnic_local 0 25708 NULL
155167 +enable_so___sector_request_25709 __sector request 0 25709 NULL
155168 +enable_so_vfd_write_fndecl_25710 vfd_write fndecl 3 25710 NULL
155169 +enable_so_buf_count_drm_buf_entry_25716 buf_count drm_buf_entry 0 25716 NULL
155170 +enable_so_svc_max_payload_fndecl_25718 svc_max_payload fndecl 0 25718 NULL
155171 +enable_so_left_margin_fb_var_screeninfo_25722 left_margin fb_var_screeninfo 0 25722 NULL
155172 +enable_so_data_cnt_adv_scsi_req_q_25725 data_cnt adv_scsi_req_q 0 25725 NULL nohasharray
155173 +enable_so_SyS_fsetxattr_fndecl_25725 SyS_fsetxattr fndecl 4 25725 &enable_so_data_cnt_adv_scsi_req_q_25725
155174 +enable_so_nr_scanned_scan_control_25733 nr_scanned scan_control 0 25733 NULL
155175 +enable_so_raid1_resize_fndecl_25735 raid1_resize fndecl 2 25735 NULL
155176 +enable_so_res_cnt_common_sol_cqe_25739 res_cnt common_sol_cqe 0 25739 NULL
155177 +enable_so_ms_read_copyblock_fndecl_25740 ms_read_copyblock fndecl 7 25740 NULL
155178 +enable_so_ext4_da_map_blocks_fndecl_25744 ext4_da_map_blocks fndecl 2 25744 NULL
155179 +enable_so_iov_iter_kvec_fndecl_25747 iov_iter_kvec fndecl 5-4 25747 NULL
155180 +enable_so_tics_vardecl_hfcpci_c_25752 tics vardecl_hfcpci.c 0 25752 NULL
155181 +enable_so_burst_kirkwood_dma_data_25753 burst kirkwood_dma_data 0 25753 NULL
155182 +enable_so_pvr2_i2c_write_fndecl_25754 pvr2_i2c_write fndecl 4 25754 NULL nohasharray
155183 +enable_so___blk_end_request_fndecl_25754 __blk_end_request fndecl 3 25754 &enable_so_pvr2_i2c_write_fndecl_25754
155184 +enable_so_buffer_size_command_25757 buffer_size command 0 25757 NULL
155185 +enable_so_rh_urb_enqueue_fndecl_25758 rh_urb_enqueue fndecl 0 25758 NULL
155186 +enable_so_regmap_range_read_file_fndecl_25764 regmap_range_read_file fndecl 3 25764 NULL
155187 +enable_so_max_memblock_type_25766 max memblock_type 0 25766 NULL
155188 +enable_so_src_len_ccp_aes_engine_25770 src_len ccp_aes_engine 0 25770 NULL
155189 +enable_so_event_len_fanotify_event_metadata_25772 event_len fanotify_event_metadata 0 25772 NULL
155190 +enable_so_rx_rx_cmplt_read_fndecl_25778 rx_rx_cmplt_read fndecl 3 25778 NULL
155191 +enable_so_btrfs_inode_extref_name_len_fndecl_25779 btrfs_inode_extref_name_len fndecl 0 25779 NULL
155192 +enable_so___remove_pages_fndecl_25788 __remove_pages fndecl 3-2 25788 NULL
155193 +enable_so_qla82xx_pci_mem_write_2M_fndecl_25790 qla82xx_pci_mem_write_2M fndecl 2 25790 NULL
155194 +enable_so_hpet_readl_fndecl_25794 hpet_readl fndecl 0 25794 NULL
155195 +enable_so_num_prealloc_crypto_pages_vardecl_crypto_c_25796 num_prealloc_crypto_pages vardecl_crypto.c 0 25796 NULL
155196 +enable_so_pg_base_nfs_pgio_mirror_25798 pg_base nfs_pgio_mirror 0 25798 NULL
155197 +enable_so_stolen_base_i915_gem_mm_25807 stolen_base i915_gem_mm 0 25807 NULL
155198 +enable_so_sgentry_align_brcmf_sdio_25813 sgentry_align brcmf_sdio 0 25813 NULL nohasharray
155199 +enable_so_lf_depth_gfs2_leaf_25813 lf_depth gfs2_leaf 0 25813 &enable_so_sgentry_align_brcmf_sdio_25813
155200 +enable_so_keys_proc_write_fndecl_25819 keys_proc_write fndecl 3 25819 NULL
155201 +enable_so___kfifo_in_fndecl_25822 __kfifo_in fndecl 3-0 25822 NULL
155202 +enable_so_ext4_kvmalloc_fndecl_25823 ext4_kvmalloc fndecl 1 25823 NULL
155203 +enable_so_pages_per_rd_bio_scrub_ctx_25831 pages_per_rd_bio scrub_ctx 0 25831 NULL
155204 +enable_so_depth_cx25821_fmt_25832 depth cx25821_fmt 0 25832 NULL
155205 +enable_so_cookie_offset_nfsd4_readdir_25834 cookie_offset nfsd4_readdir 0 25834 NULL
155206 +enable_so_mmc_test_area_map_fndecl_25839 mmc_test_area_map fndecl 2-4 25839 NULL
155207 +enable_so_start_cxgb4_range_25845 start cxgb4_range 0 25845 NULL
155208 +enable_so_ric_ies_len_cfg80211_ft_event_params_25853 ric_ies_len cfg80211_ft_event_params 0 25853 NULL
155209 +enable_so_table_size_drm_ati_pcigart_info_25856 table_size drm_ati_pcigart_info 0 25856 NULL
155210 +enable_so_num_sg_lists_vardecl_25860 num_sg_lists vardecl 0 25860 NULL
155211 +enable_so_asize_mypriv_25864 asize mypriv 0 25864 NULL
155212 +enable_so_usVBlanking_Time__ATOM_DTD_FORMAT_25867 usVBlanking_Time _ATOM_DTD_FORMAT 0 25867 NULL
155213 +enable_so_vlan_dev_change_mtu_fndecl_25871 vlan_dev_change_mtu fndecl 2 25871 NULL
155214 +enable_so_nvkm_mc_create__fndecl_25873 nvkm_mc_create_ fndecl 4 25873 NULL
155215 +enable_so_buf_size_regmap_format_25880 buf_size regmap_format 0 25880 NULL
155216 +enable_so_alloc_tx_struct_fndecl_25886 alloc_tx_struct fndecl 1 25886 NULL
155217 +enable_so_sb_agblocks_xfs_sb_25887 sb_agblocks xfs_sb 0 25887 NULL
155218 +enable_so_width_virtio_gpu_rect_25892 width virtio_gpu_rect 0 25892 NULL
155219 +enable_so_i915_gem_batch_pool_get_fndecl_25893 i915_gem_batch_pool_get fndecl 2 25893 NULL nohasharray
155220 +enable_so_offset_usnic_uiom_reg_25893 offset usnic_uiom_reg 0 25893 &enable_so_i915_gem_batch_pool_get_fndecl_25893 nohasharray
155221 +enable_so_intf_num_smi_info_25893 intf_num smi_info 0 25893 &enable_so_offset_usnic_uiom_reg_25893
155222 +enable_so_walk_page_range_fndecl_25894 walk_page_range fndecl 0 25894 NULL
155223 +enable_so_ath6kl_regdump_read_fndecl_25898 ath6kl_regdump_read fndecl 3 25898 NULL
155224 +enable_so_vram_remap_vardecl_uvesafb_c_25907 vram_remap vardecl_uvesafb.c 0 25907 NULL
155225 +enable_so_kvm_vcpu_gfn_to_hva_prot_fndecl_25911 kvm_vcpu_gfn_to_hva_prot fndecl 2 25911 NULL
155226 +enable_so_acpi_get_override_irq_fndecl_25918 acpi_get_override_irq fndecl 1 25918 NULL
155227 +enable_so_mtd_concat_create_fndecl_25923 mtd_concat_create fndecl 2 25923 NULL nohasharray
155228 +enable_so_d40_pool_lli_alloc_fndecl_25923 d40_pool_lli_alloc fndecl 3 25923 &enable_so_mtd_concat_create_fndecl_25923
155229 +enable_so_get_kcore_size_fndecl_25930 get_kcore_size fndecl 0 25930 NULL
155230 +enable_so_ioat_ring_alloc_order_vardecl_25933 ioat_ring_alloc_order vardecl 0 25933 NULL
155231 +enable_so_ircomm_tty_connect_indication_fndecl_25936 ircomm_tty_connect_indication fndecl 4-5 25936 NULL
155232 +enable_so_smk_write_onlycap_fndecl_25939 smk_write_onlycap fndecl 3 25939 NULL
155233 +enable_so_n_piobufs_efx_ef10_nic_data_25940 n_piobufs efx_ef10_nic_data 0 25940 NULL
155234 +enable_so___xfs_bmbt_get_all_fndecl_25952 __xfs_bmbt_get_all fndecl 2-1 25952 NULL
155235 +enable_so_cyttsp_spi_read_block_data_fndecl_25954 cyttsp_spi_read_block_data fndecl 4 25954 NULL
155236 +enable_so_len_xsd_sockmsg_25963 len xsd_sockmsg 0 25963 NULL
155237 +enable_so_ieee802154_hdr_get_sechdr_fndecl_25965 ieee802154_hdr_get_sechdr fndecl 0 25965 NULL
155238 +enable_so_memblock_remove_range_fndecl_25969 memblock_remove_range fndecl 3-2 25969 NULL
155239 +enable_so__iwl_dbgfs_sram_write_fndecl_25972 _iwl_dbgfs_sram_write fndecl 3 25972 NULL
155240 +enable_so_tx_max_out_mpt_lan_priv_25974 tx_max_out mpt_lan_priv 0 25974 NULL
155241 +enable_so_pci_ni8430_setup_fndecl_25977 pci_ni8430_setup fndecl 4 25977 NULL
155242 +enable_so_vscnprintf_fndecl_25984 vscnprintf fndecl 0 25984 NULL
155243 +enable_so_ns_blocksize_bits_the_nilfs_25985 ns_blocksize_bits the_nilfs 0 25985 NULL
155244 +enable_so_ieee80211_if_read_dot11MeshGateAnnouncementProtocol_fndecl_25989 ieee80211_if_read_dot11MeshGateAnnouncementProtocol fndecl 3 25989 NULL
155245 +enable_so_split_state_fndecl_25992 split_state fndecl 4 25992 NULL
155246 +enable_so_vga_vram_size_vardecl_vgacon_c_25995 vga_vram_size vardecl_vgacon.c 0 25995 NULL
155247 +enable_so_len_ieee_types_header_26006 len ieee_types_header 0 26006 NULL
155248 +enable_so_udplite_getfrag_fndecl_26012 udplite_getfrag fndecl 4 26012 NULL
155249 +enable_so_core_name_size_vardecl_coredump_c_26013 core_name_size vardecl_coredump.c 0 26013 NULL
155250 +enable_so_ufs_load_cylinder_fndecl_26018 ufs_load_cylinder fndecl 2 26018 NULL nohasharray
155251 +enable_so_add_delayed_ref_head_fndecl_26018 add_delayed_ref_head fndecl 5 26018 &enable_so_ufs_load_cylinder_fndecl_26018 nohasharray
155252 +enable_so_kvm_inject_realmode_interrupt_fndecl_26018 kvm_inject_realmode_interrupt fndecl 3 26018 &enable_so_add_delayed_ref_head_fndecl_26018
155253 +enable_so_platform_id_cb710_chip_26021 platform_id cb710_chip 0 26021 NULL
155254 +enable_so_touch_max_wacom_features_26029 touch_max wacom_features 0 26029 NULL
155255 +enable_so___gfs2_fallocate_fndecl_26035 __gfs2_fallocate fndecl 4-3 26035 NULL
155256 +enable_so_EraseSize_NFTLrecord_26040 EraseSize NFTLrecord 0 26040 NULL nohasharray
155257 +enable_so_ocfs2_debug_read_fndecl_26040 ocfs2_debug_read fndecl 3 26040 &enable_so_EraseSize_NFTLrecord_26040
155258 +enable_so_ll_recv_fndecl_26047 ll_recv fndecl 3 26047 NULL
155259 +enable_so_iwlagn_hwrate_to_tx_control_fndecl_26049 iwlagn_hwrate_to_tx_control fndecl 2 26049 NULL
155260 +enable_so_md_template_size_netxen_minidump_26050 md_template_size netxen_minidump 0 26050 NULL
155261 +enable_so_picolcd_debug_eeprom_read_fndecl_26054 picolcd_debug_eeprom_read fndecl 3 26054 NULL
155262 +enable_so_l2cap_send_cmd_fndecl_26055 l2cap_send_cmd fndecl 4 26055 NULL
155263 +enable_so__pcol_init_fndecl_26056 _pcol_init fndecl 2 26056 NULL
155264 +enable_so_physical_for_dev_replace_scrub_copy_nocow_ctx_26059 physical_for_dev_replace scrub_copy_nocow_ctx 0 26059 NULL
155265 +enable_so_nfc_hci_hcp_message_tx_fndecl_26069 nfc_hci_hcp_message_tx fndecl 6 26069 NULL
155266 +enable_so_dataflash_read_user_otp_fndecl_26075 dataflash_read_user_otp fndecl 3-2 26075 NULL nohasharray
155267 +enable_so_ep0_write_fndecl_26075 ep0_write fndecl 3 26075 &enable_so_dataflash_read_user_otp_fndecl_26075
155268 +enable_so_current_rate_il_scale_tbl_info_26077 current_rate il_scale_tbl_info 0 26077 NULL
155269 +enable_so_fratio_arizona_fll_cfg_26082 fratio arizona_fll_cfg 0 26082 NULL
155270 +enable_so_remap_to_origin_then_cache_fndecl_26084 remap_to_origin_then_cache fndecl 4 26084 NULL
155271 +enable_so_skb_buf_size_vmxnet3_adapter_26088 skb_buf_size vmxnet3_adapter 0 26088 NULL
155272 +enable_so_vmci_transport_set_max_buffer_size_fndecl_26089 vmci_transport_set_max_buffer_size fndecl 2 26089 NULL
155273 +enable_so_idmap_pipe_downcall_fndecl_26092 idmap_pipe_downcall fndecl 3 26092 NULL
155274 +enable_so_rds_ib_ring_resize_fndecl_26097 rds_ib_ring_resize fndecl 2 26097 NULL
155275 +enable_so_qp_host_alloc_queue_fndecl_26101 qp_host_alloc_queue fndecl 1 26101 NULL
155276 +enable_so_SyS_setdomainname_fndecl_26106 SyS_setdomainname fndecl 2 26106 NULL
155277 +enable_so_used_bytes_ubi_volume_26113 used_bytes ubi_volume 0 26113 NULL
155278 +enable_so_multi_len_ssif_info_26118 multi_len ssif_info 0 26118 NULL nohasharray
155279 +enable_so_log_store_fndecl_26118 log_store fndecl 8 26118 &enable_so_multi_len_ssif_info_26118
155280 +enable_so_blk_limits_max_hw_sectors_fndecl_26121 blk_limits_max_hw_sectors fndecl 2 26121 NULL
155281 +enable_so_maxflows_sfq_sched_data_26122 maxflows sfq_sched_data 0 26122 NULL
155282 +enable_so_hba_queue_depth_MPT2SAS_ADAPTER_26142 hba_queue_depth MPT2SAS_ADAPTER 0 26142 NULL
155283 +enable_so_ipwireless_ppp_mru_fndecl_26146 ipwireless_ppp_mru fndecl 0 26146 NULL
155284 +enable_so_size_cyttsp4_tch_rec_params_26150 size cyttsp4_tch_rec_params 0 26150 NULL
155285 +enable_so_translate_compat_table_fndecl_26151 translate_compat_table fndecl 6 26151 NULL
155286 +enable_so_hid_register_report_fndecl_26154 hid_register_report fndecl 3 26154 NULL
155287 +enable_so_sense_len_megasas_iocpacket_26161 sense_len megasas_iocpacket 0 26161 NULL
155288 +enable_so_nfs4_xattr_set_nfs4_label_fndecl_26162 nfs4_xattr_set_nfs4_label fndecl 4 26162 NULL
155289 +enable_so_fastListenDelay_ConfigRid_26165 fastListenDelay ConfigRid 0 26165 NULL
155290 +enable_so_r_bitcnt_tiger_hw_26171 r_bitcnt tiger_hw 0 26171 NULL
155291 +enable_so_src_sz_max_ce_attr_26172 src_sz_max ce_attr 0 26172 NULL
155292 +enable_so_ci_buffer_size_dlm_config_info_26176 ci_buffer_size dlm_config_info 0 26176 NULL
155293 +enable_so_qcaspi_burst_len_vardecl_qca_spi_c_26179 qcaspi_burst_len vardecl_qca_spi.c 0 26179 NULL
155294 +enable_so_zram_major_vardecl_zram_drv_c_26180 zram_major vardecl_zram_drv.c 0 26180 NULL
155295 +enable_so_iscsi_create_endpoint_fndecl_26186 iscsi_create_endpoint fndecl 1 26186 NULL
155296 +enable_so_video_vsize_solo_dev_26188 video_vsize solo_dev 0 26188 NULL
155297 +enable_so_drm_atomic_plane_set_property_fndecl_26190 drm_atomic_plane_set_property fndecl 4 26190 NULL nohasharray
155298 +enable_so_level_guest_walkerEPT_26190 level guest_walkerEPT 0 26190 &enable_so_drm_atomic_plane_set_property_fndecl_26190
155299 +enable_so_len_ext4_encrypted_symlink_data_26199 len ext4_encrypted_symlink_data 0 26199 NULL
155300 +enable_so_ocontext_read_fndecl_26201 ocontext_read fndecl 0 26201 NULL
155301 +enable_so_et131x_change_mtu_fndecl_26203 et131x_change_mtu fndecl 2 26203 NULL
155302 +enable_so_SYSC_setdomainname_fndecl_26207 SYSC_setdomainname fndecl 2 26207 NULL
155303 +enable_so_data_len_kernel_ipmi_msg_26209 data_len kernel_ipmi_msg 0 26209 NULL nohasharray
155304 +enable_so_bfad_debugfs_write_regrd_fndecl_26209 bfad_debugfs_write_regrd fndecl 3 26209 &enable_so_data_len_kernel_ipmi_msg_26209 nohasharray
155305 +enable_so_aic_common_of_init_fndecl_26209 aic_common_of_init fndecl 4 26209 &enable_so_bfad_debugfs_write_regrd_fndecl_26209
155306 +enable_so_s_log_zone_size_isofs_sb_info_26211 s_log_zone_size isofs_sb_info 0 26211 NULL
155307 +enable_so_dev_cnt_usnic_uiom_pd_26213 dev_cnt usnic_uiom_pd 0 26213 NULL
155308 +enable_so_hfsplus_submit_bio_fndecl_26217 hfsplus_submit_bio fndecl 2 26217 NULL nohasharray
155309 +enable_so_sst_wake_up_block_fndecl_26217 sst_wake_up_block fndecl 6 26217 &enable_so_hfsplus_submit_bio_fndecl_26217
155310 +enable_so_ufx_handle_damage_fndecl_26219 ufx_handle_damage fndecl 5-4 26219 NULL nohasharray
155311 +enable_so_dr_post_altera_jtag_26219 dr_post altera_jtag 0 26219 &enable_so_ufx_handle_damage_fndecl_26219
155312 +enable_so_base_snd_cs46xx_region_26223 base snd_cs46xx_region 0 26223 NULL
155313 +enable_so_blk_queue_init_tags_fndecl_26227 blk_queue_init_tags fndecl 2 26227 NULL
155314 +enable_so_match_length_deflate_state_26231 match_length deflate_state 0 26231 NULL
155315 +enable_so_command_setflickerctrl_fndecl_26233 command_setflickerctrl fndecl 0 26233 NULL
155316 +enable_so_tct_size_idt77252_dev_26240 tct_size idt77252_dev 0 26240 NULL
155317 +enable_so_max_srq_wr_ib_device_attr_26242 max_srq_wr ib_device_attr 0 26242 NULL
155318 +enable_so_ecp_write_data_parport_operations_26253 ecp_write_data parport_operations 0 26253 NULL
155319 +enable_so_can_gather_numa_stats_fndecl_26254 can_gather_numa_stats fndecl 3 26254 NULL
155320 +enable_so_iwl_dbgfs_sram_write_fndecl_26260 iwl_dbgfs_sram_write fndecl 3 26260 NULL
155321 +enable_so_den_snd_ratden_26264 den snd_ratden 0 26264 NULL nohasharray
155322 +enable_so_il_dbgfs_rx_stats_read_fndecl_26264 il_dbgfs_rx_stats_read fndecl 3 26264 &enable_so_den_snd_ratden_26264
155323 +enable_so_check_pages_isolated_fndecl_26267 check_pages_isolated fndecl 0-1-2 26267 NULL
155324 +enable_so_jumbo_size_qset_params_26273 jumbo_size qset_params 0 26273 NULL
155325 +enable_so_fw_realloc_buffer_fndecl_26275 fw_realloc_buffer fndecl 2 26275 NULL
155326 +enable_so_width_stk1160_26279 width stk1160 0 26279 NULL nohasharray
155327 +enable_so_n_hdlc_tty_write_fndecl_26279 n_hdlc_tty_write fndecl 4 26279 &enable_so_width_stk1160_26279
155328 +enable_so_simple_io_fndecl_26280 simple_io fndecl 4 26280 NULL nohasharray
155329 +enable_so_xlate_dev_mem_ptr_fndecl_26280 xlate_dev_mem_ptr fndecl 1 26280 &enable_so_simple_io_fndecl_26280
155330 +enable_so_send_write_fndecl_26285 send_write fndecl 6-5-0 26285 NULL
155331 +enable_so_tx_data_length_hso_serial_26287 tx_data_length hso_serial 0 26287 NULL
155332 +enable_so_wacom_led_putimage_fndecl_26291 wacom_led_putimage fndecl 4 26291 NULL
155333 +enable_so_hub_port_connect_fndecl_26292 hub_port_connect fndecl 2 26292 NULL nohasharray
155334 +enable_so_sc_max_sge_svcxprt_rdma_26292 sc_max_sge svcxprt_rdma 0 26292 &enable_so_hub_port_connect_fndecl_26292
155335 +enable_so_members_count_dlm_space_26293 members_count dlm_space 0 26293 NULL
155336 +enable_so_xskip_mt9t031_26297 xskip mt9t031 0 26297 NULL
155337 +enable_so_xhci_common_hub_descriptor_fndecl_26304 xhci_common_hub_descriptor fndecl 3 26304 NULL nohasharray
155338 +enable_so_model_data_size_oxygen_model_26304 model_data_size oxygen_model 0 26304 &enable_so_xhci_common_hub_descriptor_fndecl_26304
155339 +enable_so_debugfs_create_file_size_fndecl_26309 debugfs_create_file_size fndecl 6 26309 NULL
155340 +enable_so_used_core_name_26313 used core_name 0 26313 NULL
155341 +enable_so_at25_mem_read_fndecl_26314 at25_mem_read fndecl 3-4 26314 NULL
155342 +enable_so_drxdap_fasi_write_block_fndecl_26315 drxdap_fasi_write_block fndecl 3 26315 NULL
155343 +enable_so_irlan_connect_indication_fndecl_26316 irlan_connect_indication fndecl 5 26316 NULL
155344 +enable_so_mc_mask_radeon_mc_26322 mc_mask radeon_mc 0 26322 NULL
155345 +enable_so_ocfs2_read_refcount_block_fndecl_26330 ocfs2_read_refcount_block fndecl 2 26330 NULL
155346 +enable_so_omap_dump_tlb_entries_fndecl_26334 omap_dump_tlb_entries fndecl 3 26334 NULL
155347 +enable_so_fcoe_ctlr_send_keep_alive_fndecl_26335 fcoe_ctlr_send_keep_alive fndecl 3 26335 NULL
155348 +enable_so_maxchild_usb_device_26337 maxchild usb_device 0 26337 NULL
155349 +enable_so_alloc_ring_fndecl_26338 alloc_ring fndecl 4-2 26338 NULL
155350 +enable_so_ept_prefetch_gpte_fndecl_26343 ept_prefetch_gpte fndecl 4 26343 NULL nohasharray
155351 +enable_so_broadcast_xmt_max_payload_fwnet_device_26343 broadcast_xmt_max_payload fwnet_device 0 26343 &enable_so_ept_prefetch_gpte_fndecl_26343
155352 +enable_so_blkdev_readpages_fndecl_26350 blkdev_readpages fndecl 4 26350 NULL nohasharray
155353 +enable_so_hugetlbfs_pagecache_present_fndecl_26350 hugetlbfs_pagecache_present fndecl 3 26350 &enable_so_blkdev_readpages_fndecl_26350
155354 +enable_so___ocfs2_remove_xattr_range_fndecl_26353 __ocfs2_remove_xattr_range fndecl 5-4-3 26353 NULL
155355 +enable_so_kovaplus_sysfs_read_fndecl_26362 kovaplus_sysfs_read fndecl 6 26362 NULL
155356 +enable_so_ioread16_fndecl_26365 ioread16 fndecl 0 26365 NULL nohasharray
155357 +enable_so_scsi_eh_prep_cmnd_fndecl_26365 scsi_eh_prep_cmnd fndecl 5 26365 &enable_so_ioread16_fndecl_26365
155358 +enable_so_max_mthca_alloc_26367 max mthca_alloc 0 26367 NULL
155359 +enable_so_xpnet_send_fndecl_26368 xpnet_send fndecl 3-4 26368 NULL nohasharray
155360 +enable_so_ts_tsid_gru_thread_state_26368 ts_tsid gru_thread_state 0 26368 &enable_so_xpnet_send_fndecl_26368
155361 +enable_so_buffer_length_TAG_TW_Ioctl_Driver_Command_26369 buffer_length TAG_TW_Ioctl_Driver_Command 0 26369 NULL
155362 +enable_so_ac_last_group_ocfs2_alloc_context_26384 ac_last_group ocfs2_alloc_context 0 26384 NULL
155363 +enable_so_dccp_sendmsg_fndecl_26385 dccp_sendmsg fndecl 3 26385 NULL
155364 +enable_so_mrp_attr_create_fndecl_26390 mrp_attr_create fndecl 3 26390 NULL
155365 +enable_so_dict_size_comp_opts_26391 dict_size comp_opts 0 26391 NULL
155366 +enable_so_maximum_num_physicals_aac_dev_26393 maximum_num_physicals aac_dev 0 26393 NULL
155367 +enable_so_lcd_write_fndecl_26394 lcd_write fndecl 3 26394 NULL nohasharray
155368 +enable_so___krealloc_fndecl_26394 __krealloc fndecl 2 26394 &enable_so_lcd_write_fndecl_26394
155369 +enable_so_transcnt_elsa_hw_26395 transcnt elsa_hw 0 26395 NULL
155370 +enable_so_get_user_cpu_mask_fndecl_26398 get_user_cpu_mask fndecl 2 26398 NULL
155371 +enable_so_convert_ctx_access_bpf_verifier_ops_26399 convert_ctx_access bpf_verifier_ops 0 26399 NULL
155372 +enable_so_omap_hwmod_count_resources_fndecl_26400 omap_hwmod_count_resources fndecl 0 26400 NULL nohasharray
155373 +enable_so_ea_init_fndecl_26400 ea_init fndecl 5 26400 &enable_so_omap_hwmod_count_resources_fndecl_26400
155374 +enable_so_gbuffers_vardecl_meye_c_26402 gbuffers vardecl_meye.c 0 26402 NULL
155375 +enable_so_xhci_giveback_urb_in_irq_fndecl_26403 xhci_giveback_urb_in_irq fndecl 3 26403 NULL nohasharray
155376 +enable_so_bad_peb_limit_ubi_device_26403 bad_peb_limit ubi_device 0 26403 &enable_so_xhci_giveback_urb_in_irq_fndecl_26403
155377 +enable_so_netlbl_catmap_walk_fndecl_26405 netlbl_catmap_walk fndecl 0-2 26405 NULL
155378 +enable_so_height_drm_mode_create_dumb_26406 height drm_mode_create_dumb 0 26406 NULL
155379 +enable_so_residualByteCnt_status_entry_26414 residualByteCnt status_entry 0 26414 NULL
155380 +enable_so_krealloc_fndecl_26415 krealloc fndecl 2 26415 NULL
155381 +enable_so_crtc_htotal_drm_display_mode_26418 crtc_htotal drm_display_mode 0 26418 NULL
155382 +enable_so_mmio_size_lpss_private_data_26423 mmio_size lpss_private_data 0 26423 NULL
155383 +enable_so_mod_start_extent_map_26431 mod_start extent_map 0 26431 NULL nohasharray
155384 +enable_so_acpi_os_allocate_fndecl_26431 acpi_os_allocate fndecl 1 26431 &enable_so_mod_start_extent_map_26431
155385 +enable_so_wtmax_nfs_fsinfo_26434 wtmax nfs_fsinfo 0 26434 NULL
155386 +enable_so___adjust_resource_fndecl_26436 __adjust_resource fndecl 3-2 26436 NULL
155387 +enable_so_packets_snd_urb_ctx_26437 packets snd_urb_ctx 0 26437 NULL
155388 +enable_so_map_capacity_cw1200_queue_stats_26439 map_capacity cw1200_queue_stats 0 26439 NULL
155389 +enable_so_start_cif_cam_fndecl_26442 start_cif_cam fndecl 0 26442 NULL
155390 +enable_so_compute_pipe_count_kgd2kfd_shared_resources_26445 compute_pipe_count kgd2kfd_shared_resources 0 26445 NULL
155391 +enable_so_sierra_net_change_mtu_fndecl_26446 sierra_net_change_mtu fndecl 2 26446 NULL nohasharray
155392 +enable_so_max_req_size_mmc_host_26446 max_req_size mmc_host 0 26446 &enable_so_sierra_net_change_mtu_fndecl_26446
155393 +enable_so_size_aper_size_info_fixed_26447 size aper_size_info_fixed 0 26447 NULL
155394 +enable_so_width_cobalt_stream_26451 width cobalt_stream 0 26451 NULL
155395 +enable_so___xfs_end_io_direct_write_fndecl_26454 __xfs_end_io_direct_write fndecl 3-4 26454 NULL
155396 +enable_so_op_count_rm_rdma_op_26455 op_count rm_rdma_op 0 26455 NULL
155397 +enable_so_qp_memcpy_to_queue_iov_fndecl_26456 qp_memcpy_to_queue_iov fndecl 5-2 26456 NULL
155398 +enable_so_global_irq_base_acpi_madt_io_apic_26467 global_irq_base acpi_madt_io_apic 0 26467 NULL
155399 +enable_so_usbat_bulk_read_fndecl_26469 usbat_bulk_read fndecl 3-4 26469 NULL
155400 +enable_so_tpg_reset_source_fndecl_26472 tpg_reset_source fndecl 2-3 26472 NULL
155401 +enable_so_pbufsctxt_qib_devdata_26473 pbufsctxt qib_devdata 0 26473 NULL
155402 +enable_so_iscsi_conn_context_id_iscsi_kcqe_26475 iscsi_conn_context_id iscsi_kcqe 0 26475 NULL
155403 +enable_so_nr_kioctx_table_26477 nr kioctx_table 0 26477 NULL
155404 +enable_so_len_seq_buf_26481 len seq_buf 0 26481 NULL
155405 +enable_so_page_cache_next_hole_fndecl_26482 page_cache_next_hole fndecl 0-2 26482 NULL
155406 +enable_so_max_osd_ceph_osdmap_26483 max_osd ceph_osdmap 0 26483 NULL
155407 +enable_so_queue_cnt_fndecl_26484 queue_cnt fndecl 0 26484 NULL
155408 +enable_so_count_xfs_dir2_sf_hdr_26486 count xfs_dir2_sf_hdr 0 26486 NULL
155409 +enable_so_setup_max_cpus_vardecl_26488 setup_max_cpus vardecl 0 26488 NULL
155410 +enable_so_pa_lstart_ext4_prealloc_space_26493 pa_lstart ext4_prealloc_space 0 26493 NULL
155411 +enable_so_videobuf_read_stream_fndecl_26495 videobuf_read_stream fndecl 3 26495 NULL
155412 +enable_so_ndr_start_nd_region_26496 ndr_start nd_region 0 26496 NULL
155413 +enable_so_remap_and_issue_overwrite_fndecl_26499 remap_and_issue_overwrite fndecl 3 26499 NULL
155414 +enable_so_setkey_fndecl_26520 setkey fndecl 3 26520 NULL
155415 +enable_so_t4_max_cq_depth_c4iw_hw_queue_26526 t4_max_cq_depth c4iw_hw_queue 0 26526 NULL
155416 +enable_so_vmap_fndecl_26530 vmap fndecl 2 26530 NULL
155417 +enable_so_sync_buf_offs_pvr2_ioread_26534 sync_buf_offs pvr2_ioread 0 26534 NULL
155418 +enable_so_myri10ge_max_slices_vardecl_myri10ge_c_26536 myri10ge_max_slices vardecl_myri10ge.c 0 26536 NULL
155419 +enable_so_npages_kvm_memory_slot_26541 npages kvm_memory_slot 0 26541 NULL
155420 +enable_so_nfsd_drc_max_mem_vardecl_26544 nfsd_drc_max_mem vardecl 0 26544 NULL nohasharray
155421 +enable_so_sctp_setsockopt_default_sndinfo_fndecl_26544 sctp_setsockopt_default_sndinfo fndecl 3 26544 &enable_so_nfsd_drc_max_mem_vardecl_26544
155422 +enable_so_onenand_write_fndecl_26546 onenand_write fndecl 2 26546 NULL
155423 +enable_so_il4965_rs_move_legacy_other_fndecl_26556 il4965_rs_move_legacy_other fndecl 5 26556 NULL
155424 +enable_so_pci_irq_pcmcia_socket_26558 pci_irq pcmcia_socket 0 26558 NULL
155425 +enable_so_maxdepth_sfq_sched_data_26560 maxdepth sfq_sched_data 0 26560 NULL
155426 +enable_so_cld_pipe_downcall_fndecl_26561 cld_pipe_downcall fndecl 3 26561 NULL
155427 +enable_so_fifo_blocks_vxge_hw_fifo_config_26565 fifo_blocks vxge_hw_fifo_config 0 26565 NULL
155428 +enable_so_ieee80211_if_read_uapsd_max_sp_len_fndecl_26568 ieee80211_if_read_uapsd_max_sp_len fndecl 3 26568 NULL
155429 +enable_so_br_change_mtu_fndecl_26571 br_change_mtu fndecl 2 26571 NULL
155430 +enable_so_wMaxSegmentSize_usb_cdc_mbim_desc_26572 wMaxSegmentSize usb_cdc_mbim_desc 0 26572 NULL
155431 +enable_so_nfs4_write_cached_acl_fndecl_26573 nfs4_write_cached_acl fndecl 4 26573 NULL
155432 +enable_so_sd_log_flush_head_gfs2_sbd_26577 sd_log_flush_head gfs2_sbd 0 26577 NULL
155433 +enable_so_smbios_entry_point_size_vardecl_dmi_scan_c_26579 smbios_entry_point_size vardecl_dmi_scan.c 0 26579 NULL nohasharray
155434 +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
155435 +enable_so_s_reserved_gdt_blocks_ext3_super_block_26580 s_reserved_gdt_blocks ext3_super_block 0 26580 NULL
155436 +enable_so_read_tree_block_fndecl_26587 read_tree_block fndecl 2 26587 NULL
155437 +enable_so_bytes_per_word_tegra_slink_data_26590 bytes_per_word tegra_slink_data 0 26590 NULL
155438 +enable_so_nvme_trans_completion_fndecl_26597 nvme_trans_completion fndecl 0 26597 NULL
155439 +enable_so_tx_desc_count_xgbe_prv_data_26603 tx_desc_count xgbe_prv_data 0 26603 NULL
155440 +enable_so_UMAsize_sis_video_info_26611 UMAsize sis_video_info 0 26611 NULL
155441 +enable_so_width_drm_vmw_size_26615 width drm_vmw_size 0 26615 NULL
155442 +enable_so_control_blocks_gru_create_context_req_26616 control_blocks gru_create_context_req 0 26616 NULL
155443 +enable_so_data_out_ep_vub300_mmc_host_26618 data_out_ep vub300_mmc_host 0 26618 NULL
155444 +enable_so_airspy_convert_stream_fndecl_26619 airspy_convert_stream fndecl 0-4 26619 NULL
155445 +enable_so_usb_rh_urb_dequeue_fndecl_26620 usb_rh_urb_dequeue fndecl 3 26620 NULL
155446 +enable_so_smscore_load_firmware_family2_fndecl_26621 smscore_load_firmware_family2 fndecl 3 26621 NULL
155447 +enable_so_hub_port_connect_change_fndecl_26625 hub_port_connect_change fndecl 2 26625 NULL
155448 +enable_so_data_len_ipmi_msg_26626 data_len ipmi_msg 0 26626 NULL
155449 +enable_so_l2_fhdr_pkt_len_l2_fhdr_26630 l2_fhdr_pkt_len l2_fhdr 0 26630 NULL nohasharray
155450 +enable_so_cache_write_fndecl_26630 cache_write fndecl 3 26630 &enable_so_l2_fhdr_pkt_len_l2_fhdr_26630
155451 +enable_so_facs_acpi_table_fadt_26632 facs acpi_table_fadt 0 26632 NULL
155452 +enable_so_mpt_lan_receive_post_turbo_fndecl_26635 mpt_lan_receive_post_turbo fndecl 2 26635 NULL
155453 +enable_so_qxl_draw_dirty_fb_fndecl_26636 qxl_draw_dirty_fb fndecl 7 26636 NULL
155454 +enable_so_i40e_change_mtu_fndecl_26637 i40e_change_mtu fndecl 2 26637 NULL
155455 +enable_so_aac_sa_ioremap_fndecl_26639 aac_sa_ioremap fndecl 2 26639 NULL nohasharray
155456 +enable_so_h_length_dlm_header_26639 h_length dlm_header 0 26639 &enable_so_aac_sa_ioremap_fndecl_26639 nohasharray
155457 +enable_so_irias_new_octseq_value_fndecl_26639 irias_new_octseq_value fndecl 2 26639 &enable_so_h_length_dlm_header_26639
155458 +enable_so_len_tda10071_cmd_26641 len tda10071_cmd 0 26641 NULL nohasharray
155459 +enable_so_fh_size_knfsd_fh_26641 fh_size knfsd_fh 0 26641 &enable_so_len_tda10071_cmd_26641
155460 +enable_so_sys_madvise_fndecl_26642 sys_madvise fndecl 2-1 26642 NULL nohasharray
155461 +enable_so_size_drm_global_reference_26642 size drm_global_reference 0 26642 &enable_so_sys_madvise_fndecl_26642
155462 +enable_so_platform_device_alloc_fndecl_26645 platform_device_alloc fndecl 2 26645 NULL nohasharray
155463 +enable_so_read_file_antenna_fndecl_26645 read_file_antenna fndecl 3 26645 &enable_so_platform_device_alloc_fndecl_26645
155464 +enable_so_n_namesz_elf64_note_26646 n_namesz elf64_note 0 26646 NULL
155465 +enable_so_max_wqes_mlx4_caps_26647 max_wqes mlx4_caps 0 26647 NULL
155466 +enable_so_spi_populate_width_msg_fndecl_26651 spi_populate_width_msg fndecl 0 26651 NULL
155467 +enable_so_front_len_ceph_msgpool_26653 front_len ceph_msgpool 0 26653 NULL
155468 +enable_so_pmcraid_get_minor_fndecl_26656 pmcraid_get_minor fndecl 0 26656 NULL
155469 +enable_so_nr_recvmsg_fndecl_26658 nr_recvmsg fndecl 3 26658 NULL
155470 +enable_so_jbd2_journal_begin_ordered_truncate_fndecl_26661 jbd2_journal_begin_ordered_truncate fndecl 3 26661 NULL
155471 +enable_so_iio_device_add_event_sysfs_fndecl_26664 iio_device_add_event_sysfs fndecl 0 26664 NULL
155472 +enable_so_hdlc_change_mtu_fndecl_26672 hdlc_change_mtu fndecl 2 26672 NULL
155473 +enable_so_oobsize_mtd_info_26683 oobsize mtd_info 0 26683 NULL
155474 +enable_so_swap_cgroup_swapon_fndecl_26685 swap_cgroup_swapon fndecl 2 26685 NULL
155475 +enable_so_omap1_spi100k_txrx_pio_fndecl_26692 omap1_spi100k_txrx_pio fndecl 0 26692 NULL nohasharray
155476 +enable_so_blk_msg_write_fndecl_26692 blk_msg_write fndecl 3 26692 &enable_so_omap1_spi100k_txrx_pio_fndecl_26692
155477 +enable_so_rx_buff_len_amd8111e_priv_26693 rx_buff_len amd8111e_priv 0 26693 NULL
155478 +enable_so_raw_request_hid_ll_driver_26699 raw_request hid_ll_driver 0 26699 NULL
155479 +enable_so_packet_snd_fndecl_26705 packet_snd fndecl 3 26705 NULL
155480 +enable_so_musb_ep_program_fndecl_26707 musb_ep_program fndecl 7 26707 NULL
155481 +enable_so_x509_extract_name_segment_fndecl_26716 x509_extract_name_segment fndecl 5 26716 NULL
155482 +enable_so_i915_gem_obj_ggtt_offset_view_fndecl_26723 i915_gem_obj_ggtt_offset_view fndecl 0 26723 NULL
155483 +enable_so_wil_read_back_fndecl_26724 wil_read_back fndecl 3 26724 NULL
155484 +enable_so_max_transfer_size_rndis_init_c_26725 max_transfer_size rndis_init_c 0 26725 NULL
155485 +enable_so_fuse_copy_pages_fndecl_26731 fuse_copy_pages fndecl 2 26731 NULL
155486 +enable_so_ocfs2_xattr_set_handle_fndecl_26732 ocfs2_xattr_set_handle fndecl 7 26732 NULL
155487 +enable_so_cache_downcall_fndecl_26737 cache_downcall fndecl 3 26737 NULL
155488 +enable_so_minor_uart_driver_26739 minor uart_driver 0 26739 NULL
155489 +enable_so_xfs_filestream_lookup_ag_fndecl_26744 xfs_filestream_lookup_ag fndecl 0 26744 NULL nohasharray
155490 +enable_so_add_index_fndecl_26744 add_index fndecl 0 26744 &enable_so_xfs_filestream_lookup_ag_fndecl_26744
155491 +enable_so_block_size_befs_sb_info_26751 block_size befs_sb_info 0 26751 NULL
155492 +enable_so_len_osd_sg_entry_26755 len osd_sg_entry 0 26755 NULL
155493 +enable_so_raw_serial_size_pkcs7_parse_context_26761 raw_serial_size pkcs7_parse_context 0 26761 NULL
155494 +enable_so_num_phys_expander_device_26765 num_phys expander_device 0 26765 NULL
155495 +enable_so_nAcks_rxrpc_ackpacket_26767 nAcks rxrpc_ackpacket 0 26767 NULL
155496 +enable_so_tipc_send_stream_fndecl_26771 tipc_send_stream fndecl 3 26771 NULL
155497 +enable_so_hb_size_hashbin_t_26779 hb_size hashbin_t 0 26779 NULL nohasharray
155498 +enable_so_fw_iso_buffer_alloc_fndecl_26779 fw_iso_buffer_alloc fndecl 2 26779 &enable_so_hb_size_hashbin_t_26779
155499 +enable_so_audit_unpack_string_fndecl_26791 audit_unpack_string fndecl 3 26791 NULL
155500 +enable_so_ocfs2_cache_block_dealloc_fndecl_26800 ocfs2_cache_block_dealloc fndecl 6-5-4 26800 NULL
155501 +enable_so_width_v4l2_rect_26802 width v4l2_rect 0 26802 NULL nohasharray
155502 +enable_so_sge_cnt_rdma_iu_26802 sge_cnt rdma_iu 0 26802 &enable_so_width_v4l2_rect_26802
155503 +enable_so_fb_sys_read_fndecl_26817 fb_sys_read fndecl 3 26817 NULL
155504 +enable_so_ramdisk_image_setup_header_26821 ramdisk_image setup_header 0 26821 NULL nohasharray
155505 +enable_so_do_read_fault_fndecl_26821 do_read_fault fndecl 3-5 26821 &enable_so_ramdisk_image_setup_header_26821
155506 +enable_so_qlcnic_max_rings_fndecl_26823 qlcnic_max_rings fndecl 0-2 26823 NULL
155507 +enable_so_l2tp_ip_recvmsg_fndecl_26826 l2tp_ip_recvmsg fndecl 3 26826 NULL
155508 +enable_so_ath6kl_mgmt_powersave_ap_fndecl_26828 ath6kl_mgmt_powersave_ap fndecl 6 26828 NULL
155509 +enable_so_bEndpointAddress_usb_endpoint_descriptor_26829 bEndpointAddress usb_endpoint_descriptor 0 26829 NULL
155510 +enable_so_vc_screenbuf_size_vc_data_26832 vc_screenbuf_size vc_data 0 26832 NULL nohasharray
155511 +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
155512 +enable_so_edid_size_ufx_data_26833 edid_size ufx_data 0 26833 NULL
155513 +enable_so_header_sectors_per_block_partition_26836 header_sectors_per_block partition 0 26836 NULL
155514 +enable_so_at24_write_fndecl_26838 at24_write fndecl 4-3 26838 NULL
155515 +enable_so_size_sram_reserve_26839 size sram_reserve 0 26839 NULL
155516 +enable_so_ipath_sdma_descq_cnt_ipath_devdata_26843 ipath_sdma_descq_cnt ipath_devdata 0 26843 NULL
155517 +enable_so_nv50_ram_get_fndecl_26846 nv50_ram_get fndecl 2-3-5 26846 NULL
155518 +enable_so_offset_resource_entry_26851 offset resource_entry 0 26851 NULL
155519 +enable_so_hsi_register_board_info_fndecl_26863 hsi_register_board_info fndecl 2 26863 NULL
155520 +enable_so_osd_req_add_get_attr_page_fndecl_26866 osd_req_add_get_attr_page fndecl 4 26866 NULL
155521 +enable_so_dlc_usb_8dev_rx_msg_26873 dlc usb_8dev_rx_msg 0 26873 NULL
155522 +enable_so_pci_address_to_pio_fndecl_26876 pci_address_to_pio fndecl 0-1 26876 NULL
155523 +enable_so_mwifiex_sdio_card_to_host_mp_aggr_fndecl_26877 mwifiex_sdio_card_to_host_mp_aggr fndecl 2 26877 NULL
155524 +enable_so_dev_bytenr_btrfsic_block_data_ctx_26882 dev_bytenr btrfsic_block_data_ctx 0 26882 NULL nohasharray
155525 +enable_so_sym_set_cam_result_error_fndecl_26882 sym_set_cam_result_error fndecl 3 26882 &enable_so_dev_bytenr_btrfsic_block_data_ctx_26882
155526 +enable_so_out_skip_ceph_connection_26886 out_skip ceph_connection 0 26886 NULL
155527 +enable_so_xdr_process_buf_fndecl_26887 xdr_process_buf fndecl 3-2 26887 NULL
155528 +enable_so_head_floppy_struct_26890 head floppy_struct 0 26890 NULL nohasharray
155529 +enable_so_kvm_read_nested_guest_page_fndecl_26890 kvm_read_nested_guest_page fndecl 5 26890 &enable_so_head_floppy_struct_26890
155530 +enable_so_agno_xfs_alloc_arg_26892 agno xfs_alloc_arg 0 26892 NULL
155531 +enable_so_read_file_phy_err_fndecl_26901 read_file_phy_err fndecl 3 26901 NULL
155532 +enable_so_find_get_pages_contig_fndecl_26902 find_get_pages_contig fndecl 0 26902 NULL
155533 +enable_so_raid_disks_r5conf_26904 raid_disks r5conf 0 26904 NULL
155534 +enable_so_reexecute_instruction_fndecl_26906 reexecute_instruction fndecl 2 26906 NULL
155535 +enable_so_ctx_len_xfrm_user_sec_ctx_26911 ctx_len xfrm_user_sec_ctx 0 26911 NULL nohasharray
155536 +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
155537 +enable_so_port_event_fndecl_26912 port_event fndecl 2 26912 NULL
155538 +enable_so_num_slots_rtsx_pcr_26914 num_slots rtsx_pcr 0 26914 NULL
155539 +enable_so_hscx_empty_fifo_fndecl_26915 hscx_empty_fifo fndecl 2 26915 NULL nohasharray
155540 +enable_so_jffs2_flash_writev_fndecl_26915 jffs2_flash_writev fndecl 4 26915 &enable_so_hscx_empty_fifo_fndecl_26915
155541 +enable_so_edma_prep_slave_sg_fndecl_26917 edma_prep_slave_sg fndecl 3 26917 NULL
155542 +enable_so_get_wep_key_fndecl_26919 get_wep_key fndecl 0-4 26919 NULL nohasharray
155543 +enable_so_cache_ctr_fndecl_26919 cache_ctr fndecl 2 26919 &enable_so_get_wep_key_fndecl_26919
155544 +enable_so_to_skip_sd_26922 to_skip sd 0 26922 NULL
155545 +enable_so_count_vnic_res_26925 count vnic_res 0 26925 NULL
155546 +enable_so_depth_vpdma_data_format_26927 depth vpdma_data_format 0 26927 NULL
155547 +enable_so_dst_bytes_x86_instruction_info_26935 dst_bytes x86_instruction_info 0 26935 NULL nohasharray
155548 +enable_so_round_event_name_len_fndecl_26935 round_event_name_len fndecl 0 26935 &enable_so_dst_bytes_x86_instruction_info_26935
155549 +enable_so_get_bits_fndecl_26938 get_bits fndecl 0-2 26938 NULL
155550 +enable_so_granularity_vx_ibl_info_26939 granularity vx_ibl_info 0 26939 NULL
155551 +enable_so_il4965_pass_packet_to_mac80211_fndecl_26945 il4965_pass_packet_to_mac80211 fndecl 3 26945 NULL
155552 +enable_so_br_vlan_set_default_pvid_fndecl_26946 br_vlan_set_default_pvid fndecl 2 26946 NULL nohasharray
155553 +enable_so_chunk_size_drxk_config_26946 chunk_size drxk_config 0 26946 &enable_so_br_vlan_set_default_pvid_fndecl_26946
155554 +enable_so_stripe_set_idx_fndecl_26948 stripe_set_idx fndecl 1 26948 NULL
155555 +enable_so_width_v4l2_pix_format_mplane_26950 width v4l2_pix_format_mplane 0 26950 NULL
155556 +enable_so_cid_cnic_context_26952 cid cnic_context 0 26952 NULL
155557 +enable_so_bulk_out_endp_ttusbir_26955 bulk_out_endp ttusbir 0 26955 NULL nohasharray
155558 +enable_so_id_tps6586x_subdev_info_26955 id tps6586x_subdev_info 0 26955 &enable_so_bulk_out_endp_ttusbir_26955
155559 +enable_so_sky2_receive_fndecl_26956 sky2_receive fndecl 2 26956 NULL
155560 +enable_so_kvm_vcpu_gfn_to_hva_fndecl_26957 kvm_vcpu_gfn_to_hva fndecl 2 26957 NULL
155561 +enable_so_carl9170_rx_untie_data_fndecl_26958 carl9170_rx_untie_data fndecl 3 26958 NULL
155562 +enable_so_bulk_in_ep_bfusb_data_26959 bulk_in_ep bfusb_data 0 26959 NULL
155563 +enable_so_cfpkt_extr_trail_fndecl_26960 cfpkt_extr_trail fndecl 3 26960 NULL
155564 +enable_so_wep_key_not_found_read_fndecl_26962 wep_key_not_found_read fndecl 3 26962 NULL nohasharray
155565 +enable_so_iso_sched_alloc_fndecl_26962 iso_sched_alloc fndecl 1 26962 &enable_so_wep_key_not_found_read_fndecl_26962
155566 +enable_so_len_hidraw_report_26966 len hidraw_report 0 26966 NULL
155567 +enable_so_bt_sock_recvmsg_fndecl_26967 bt_sock_recvmsg fndecl 3 26967 NULL
155568 +enable_so_lov_mds_md_size_fndecl_26975 lov_mds_md_size fndecl 1-0 26975 NULL
155569 +enable_so_brk_mm_struct_26976 brk mm_struct 0 26976 NULL nohasharray
155570 +enable_so_init_allocator_fndecl_26976 init_allocator fndecl 3 26976 &enable_so_brk_mm_struct_26976
155571 +enable_so_ctrl_out_pipe_hfcusb_data_26981 ctrl_out_pipe hfcusb_data 0 26981 NULL
155572 +enable_so_num_waitchks_drm_tegra_submit_26983 num_waitchks drm_tegra_submit 0 26983 NULL
155573 +enable_so_skd_skreq_prep_buffering_fndecl_26987 skd_skreq_prep_buffering fndecl 3 26987 NULL
155574 +enable_so___tipc_send_stream_fndecl_26990 __tipc_send_stream fndecl 3 26990 NULL nohasharray
155575 +enable_so_smb_sendv_fndecl_26990 smb_sendv fndecl 3 26990 &enable_so___tipc_send_stream_fndecl_26990
155576 +enable_so_address_length_acpi_address64_attribute_26992 address_length acpi_address64_attribute 0 26992 NULL
155577 +enable_so_delete_empty_dnode_fndecl_26994 delete_empty_dnode fndecl 2 26994 NULL
155578 +enable_so_buffer_bytes_snd_card_asihpi_pcm_26997 buffer_bytes snd_card_asihpi_pcm 0 26997 NULL
155579 +enable_so_ser_write_chunk_vardecl_caif_serial_c_26999 ser_write_chunk vardecl_caif_serial.c 0 26999 NULL
155580 +enable_so_get_mpc_size_fndecl_27000 get_mpc_size fndecl 0 27000 NULL
155581 +enable_so_netxen_alloc_sds_rings_fndecl_27002 netxen_alloc_sds_rings fndecl 2 27002 NULL
155582 +enable_so_task_array_size_cnic_local_27004 task_array_size cnic_local 0 27004 NULL
155583 +enable_so_nfs4_set_security_label_fndecl_27018 nfs4_set_security_label fndecl 3 27018 NULL
155584 +enable_so_ath6kl_cfg80211_connect_event_fndecl_27024 ath6kl_cfg80211_connect_event fndecl 7-8-9 27024 NULL nohasharray
155585 +enable_so_cts_cbc_decrypt_fndecl_27024 cts_cbc_decrypt fndecl 5 27024 &enable_so_ath6kl_cfg80211_connect_event_fndecl_27024
155586 +enable_so_dx_fb_copyarea_27025 dx fb_copyarea 0 27025 NULL
155587 +enable_so___bufio_new_fndecl_27029 __bufio_new fndecl 2 27029 NULL
155588 +enable_so_overhead_sctp_packet_27032 overhead sctp_packet 0 27032 NULL
155589 +enable_so_read_capacity_16_fndecl_27039 read_capacity_16 fndecl 0 27039 NULL
155590 +enable_so_device_pci_dev_27044 device pci_dev 0 27044 NULL
155591 +enable_so_data_read_fndecl_27045 data_read fndecl 3 27045 NULL
155592 +enable_so_remains_vardecl_initramfs_c_27049 remains vardecl_initramfs.c 0 27049 NULL
155593 +enable_so_brcmf_sdiod_ramrw_fndecl_27055 brcmf_sdiod_ramrw fndecl 5-3 27055 NULL
155594 +enable_so_indices_fm10k_ring_feature_27057 indices fm10k_ring_feature 0 27057 NULL
155595 +enable_so_iscsi_post_host_event_fndecl_27058 iscsi_post_host_event fndecl 4 27058 NULL
155596 +enable_so_sb_init_dio_done_wq_fndecl_27065 sb_init_dio_done_wq fndecl 0 27065 NULL
155597 +enable_so_z_decompress_fndecl_27072 z_decompress fndecl 5-3 27072 NULL
155598 +enable_so_bm_init_fndecl_27082 bm_init fndecl 2 27082 NULL
155599 +enable_so_new_layout_mddev_27083 new_layout mddev 0 27083 NULL
155600 +enable_so_max_wqes_rqes_per_q_ocrdma_mbx_query_config_27086 max_wqes_rqes_per_q ocrdma_mbx_query_config 0 27086 NULL
155601 +enable_so_far_set_size_geom_27088 far_set_size geom 0 27088 NULL
155602 +enable_so_vid_hdr_aloffset_ubi_device_27089 vid_hdr_aloffset ubi_device 0 27089 NULL
155603 +enable_so_file_size_perf_mmap_event_27090 file_size perf_mmap_event 0 27090 NULL nohasharray
155604 +enable_so_mei_devt_vardecl_main_c_27090 mei_devt vardecl_main.c 0 27090 &enable_so_file_size_perf_mmap_event_27090
155605 +enable_so_num_counters_compat_arpt_replace_27091 num_counters compat_arpt_replace 0 27091 NULL
155606 +enable_so_smk_write_mapped_fndecl_27100 smk_write_mapped fndecl 3 27100 NULL
155607 +enable_so_ab8500_hwreg_write_fndecl_27104 ab8500_hwreg_write fndecl 3 27104 NULL
155608 +enable_so_i_suballoc_bit_ocfs2_dinode_27105 i_suballoc_bit ocfs2_dinode 0 27105 NULL nohasharray
155609 +enable_so___btrfs_alloc_chunk_fndecl_27105 __btrfs_alloc_chunk fndecl 3 27105 &enable_so_i_suballoc_bit_ocfs2_dinode_27105
155610 +enable_so_lastctxt_piobuf_qib_devdata_27106 lastctxt_piobuf qib_devdata 0 27106 NULL
155611 +enable_so_ieee80211_if_read_ap_power_level_fndecl_27109 ieee80211_if_read_ap_power_level fndecl 3 27109 NULL
155612 +enable_so_usb_hcd_link_urb_to_ep_fndecl_27115 usb_hcd_link_urb_to_ep fndecl 0 27115 NULL nohasharray
155613 +enable_so_len_lpfc_debug_27115 len lpfc_debug 0 27115 &enable_so_usb_hcd_link_urb_to_ep_fndecl_27115
155614 +enable_so_gpa_gfn_to_hva_cache_27125 gpa gfn_to_hva_cache 0 27125 NULL
155615 +enable_so_mwifiex_sdio_card_to_host_fndecl_27127 mwifiex_sdio_card_to_host fndecl 4 27127 NULL nohasharray
155616 +enable_so_non_atomic_pte_lookup_fndecl_27127 non_atomic_pte_lookup fndecl 2 27127 &enable_so_mwifiex_sdio_card_to_host_fndecl_27127
155617 +enable_so_pd_count_ocrdma_alloc_pd_range_rsp_27128 pd_count ocrdma_alloc_pd_range_rsp 0 27128 NULL
155618 +enable_so_smp_cmd_sign_info_fndecl_27131 smp_cmd_sign_info fndecl 0 27131 NULL
155619 +enable_so_sys32_fadvise64_fndecl_27136 sys32_fadvise64 fndecl 4 27136 NULL
155620 +enable_so_mtu_rfcomm_dlc_27139 mtu rfcomm_dlc 0 27139 NULL nohasharray
155621 +enable_so_do_proc_readlink_fndecl_27139 do_proc_readlink fndecl 3 27139 &enable_so_mtu_rfcomm_dlc_27139
155622 +enable_so_rxkad_sg_set_buf2_fndecl_27140 rxkad_sg_set_buf2 fndecl 3 27140 NULL
155623 +enable_so_rx_ps_bsize0_e1000_adapter_27144 rx_ps_bsize0 e1000_adapter 0 27144 NULL
155624 +enable_so_compat_sys_pselect6_fndecl_27146 compat_sys_pselect6 fndecl 1 27146 NULL
155625 +enable_so_nilfs_attach_checkpoint_fndecl_27152 nilfs_attach_checkpoint fndecl 2 27152 NULL
155626 +enable_so__nfs4_proc_readdir_fndecl_27153 _nfs4_proc_readdir fndecl 5 27153 NULL
155627 +enable_so_dgram_recvmsg_fndecl_27155 dgram_recvmsg fndecl 3 27155 NULL
155628 +enable_so_total_h_mt9m001_27157 total_h mt9m001 0 27157 NULL
155629 +enable_so_len_nf_ct_ext_type_27159 len nf_ct_ext_type 0 27159 NULL
155630 +enable_so_bbRcvSizeLsb_csp_27167 bbRcvSizeLsb csp 0 27167 NULL
155631 +enable_so_len_rdesc0_27169 len rdesc0 0 27169 NULL
155632 +enable_so_cow_start_ocfs2_cow_context_27171 cow_start ocfs2_cow_context 0 27171 NULL
155633 +enable_so_bnep_send_fndecl_27175 bnep_send fndecl 3 27175 NULL
155634 +enable_so_e100_change_mtu_fndecl_27180 e100_change_mtu fndecl 2 27180 NULL
155635 +enable_so_isku_sysfs_read_light_fndecl_27183 isku_sysfs_read_light fndecl 6 27183 NULL
155636 +enable_so_compat_sys_ftruncate_fndecl_27189 compat_sys_ftruncate fndecl 2 27189 NULL
155637 +enable_so_brcmf_sdio_bus_txctl_fndecl_27192 brcmf_sdio_bus_txctl fndecl 3 27192 NULL
155638 +enable_so_write_tty_operations_27198 write tty_operations 0 27198 NULL nohasharray
155639 +enable_so_caif_stream_recvmsg_fndecl_27198 caif_stream_recvmsg fndecl 3 27198 &enable_so_write_tty_operations_27198
155640 +enable_so_ath6kl_wmi_scanparams_cmd_fndecl_27208 ath6kl_wmi_scanparams_cmd fndecl 2 27208 NULL nohasharray
155641 +enable_so_cfs_hash_rehash_bits_fndecl_27208 cfs_hash_rehash_bits fndecl 0 27208 &enable_so_ath6kl_wmi_scanparams_cmd_fndecl_27208
155642 +enable_so___ext4_read_dirblock_fndecl_27210 __ext4_read_dirblock fndecl 2 27210 NULL
155643 +enable_so_block_size_scsi_tape_27212 block_size scsi_tape 0 27212 NULL
155644 +enable_so_num_prior_parent_snaps_ceph_mds_snap_realm_27215 num_prior_parent_snaps ceph_mds_snap_realm 0 27215 NULL
155645 +enable_so_sdio_memcpy_fromio_fndecl_27218 sdio_memcpy_fromio fndecl 4 27218 NULL
155646 +enable_so_sym_prepare_nego_fndecl_27219 sym_prepare_nego fndecl 0 27219 NULL
155647 +enable_so_em_canid_change_fndecl_27221 em_canid_change fndecl 3 27221 NULL
155648 +enable_so_bm_bn_xfs_buf_map_27223 bm_bn xfs_buf_map 0 27223 NULL
155649 +enable_so_gsm_dlci_data_fndecl_27224 gsm_dlci_data fndecl 3 27224 NULL
155650 +enable_so_arm_db_page_mthca_create_cq_27227 arm_db_page mthca_create_cq 0 27227 NULL
155651 +enable_so_iwl_store_ucode_sec_fndecl_27235 iwl_store_ucode_sec fndecl 4 27235 NULL
155652 +enable_so_qib_cfgctxts_vardecl_27236 qib_cfgctxts vardecl 0 27236 NULL nohasharray
155653 +enable_so_acks_winsz_rxrpc_call_27236 acks_winsz rxrpc_call 0 27236 &enable_so_qib_cfgctxts_vardecl_27236
155654 +enable_so_do_splice_fndecl_27239 do_splice fndecl 5 27239 NULL
155655 +enable_so_hfsplus_brec_find_fndecl_27243 hfsplus_brec_find fndecl 0 27243 NULL
155656 +enable_so_sisusb_recv_bulk_msg_fndecl_27246 sisusb_recv_bulk_msg fndecl 3-2 27246 NULL
155657 +enable_so_skb_read_pdu_data_fndecl_27249 skb_read_pdu_data fndecl 4 27249 NULL
155658 +enable_so_ocfs2_xattr_value_truncate_fndecl_27252 ocfs2_xattr_value_truncate fndecl 3 27252 NULL nohasharray
155659 +enable_so_zoneshift_alauda_card_info_27252 zoneshift alauda_card_info 0 27252 &enable_so_ocfs2_xattr_value_truncate_fndecl_27252
155660 +enable_so_amb_base_i5k_amb_data_27255 amb_base i5k_amb_data 0 27255 NULL
155661 +enable_so_datafab_read_data_fndecl_27257 datafab_read_data fndecl 4 27257 NULL
155662 +enable_so_mx_sb_len_sg_io_hdr_27261 mx_sb_len sg_io_hdr 0 27261 NULL
155663 +enable_so_sector_drbd_interval_27266 sector drbd_interval 0 27266 NULL
155664 +enable_so_truesize_iwl_rx_cmd_buffer_27273 truesize iwl_rx_cmd_buffer 0 27273 NULL
155665 +enable_so_ieee80211_if_write_uapsd_max_sp_len_fndecl_27274 ieee80211_if_write_uapsd_max_sp_len fndecl 3 27274 NULL
155666 +enable_so_bios_hardcoded_edid_size_amdgpu_mode_info_27277 bios_hardcoded_edid_size amdgpu_mode_info 0 27277 NULL
155667 +enable_so_netxen_process_rcv_fndecl_27279 netxen_process_rcv fndecl 4 27279 NULL
155668 +enable_so_alloc_async_fndecl_27283 alloc_async fndecl 1 27283 NULL
155669 +enable_so___nvme_alloc_iod_fndecl_27289 __nvme_alloc_iod fndecl 2-1 27289 NULL
155670 +enable_so_pd_size_blkcg_policy_27297 pd_size blkcg_policy 0 27297 NULL
155671 +enable_so_sector_r10bio_27298 sector r10bio 0 27298 NULL
155672 +enable_so_offset_mlx5_ib_wq_27302 offset mlx5_ib_wq 0 27302 NULL
155673 +enable_so_ath6kl_connect_event_fndecl_27304 ath6kl_connect_event fndecl 7-8-9 27304 NULL
155674 +enable_so_gpu_mem_size_vml_par_27308 gpu_mem_size vml_par 0 27308 NULL nohasharray
155675 +enable_so_cifs_strict_fsync_fndecl_27308 cifs_strict_fsync fndecl 2-3 27308 &enable_so_gpu_mem_size_vml_par_27308
155676 +enable_so_nrelocs_radeon_cs_parser_27313 nrelocs radeon_cs_parser 0 27313 NULL
155677 +enable_so_sctp_recvmsg_fndecl_27314 sctp_recvmsg fndecl 3 27314 NULL
155678 +enable_so_btrfs_token_file_extent_ram_bytes_fndecl_27316 btrfs_token_file_extent_ram_bytes fndecl 0 27316 NULL
155679 +enable_so_chunk_sectors_r5conf_27317 chunk_sectors r5conf 0 27317 NULL
155680 +enable_so_dma_declare_coherent_memory_fndecl_27319 dma_declare_coherent_memory fndecl 4 27319 NULL
155681 +enable_so_lpe_size_sst_pdata_27329 lpe_size sst_pdata 0 27329 NULL
155682 +enable_so_write_buffer_fndecl_27339 write_buffer fndecl 2-0 27339 NULL
155683 +enable_so_align_pad_cqe_rx_t_27341 align_pad cqe_rx_t 0 27341 NULL nohasharray
155684 +enable_so_read_default_ldt_fndecl_27341 read_default_ldt fndecl 2 27341 &enable_so_align_pad_cqe_rx_t_27341
155685 +enable_so_sndbuf_tun_struct_27345 sndbuf tun_struct 0 27345 NULL
155686 +enable_so_acpi_os_map_iomem_fndecl_27346 acpi_os_map_iomem fndecl 2-1 27346 NULL nohasharray
155687 +enable_so_add_numbered_child_fndecl_27346 add_numbered_child fndecl 7-8-3 27346 &enable_so_acpi_os_map_iomem_fndecl_27346
155688 +enable_so_snd_seq_oss_readq_new_fndecl_27352 snd_seq_oss_readq_new fndecl 2 27352 NULL
155689 +enable_so_pix_format_set_size_fndecl_27356 pix_format_set_size fndecl 3-4 27356 NULL nohasharray
155690 +enable_so_offset_gtt_range_27356 offset gtt_range 0 27356 &enable_so_pix_format_set_size_fndecl_27356
155691 +enable_so_static_data_priv_len_wl1271_27357 static_data_priv_len wl1271 0 27357 NULL
155692 +enable_so_n_mcgrps_genl_family_27362 n_mcgrps genl_family 0 27362 NULL
155693 +enable_so_find_new_extents_fndecl_27368 find_new_extents fndecl 5 27368 NULL
155694 +enable_so_channels_pda_pa_curve_data_27369 channels pda_pa_curve_data 0 27369 NULL
155695 +enable_so_num_altsetting_usb_interface_27371 num_altsetting usb_interface 0 27371 NULL
155696 +enable_so_mod_len_ccp_rsa_engine_27374 mod_len ccp_rsa_engine 0 27374 NULL nohasharray
155697 +enable_so_urb_size_tm6000_core_27374 urb_size tm6000_core 0 27374 &enable_so_mod_len_ccp_rsa_engine_27374
155698 +enable_so_dwNtbOutMaxSize_usb_cdc_ncm_ntb_parameters_27384 dwNtbOutMaxSize usb_cdc_ncm_ntb_parameters 0 27384 NULL
155699 +enable_so_mem_base_pch_dev_27386 mem_base pch_dev 0 27386 NULL
155700 +enable_so_msg_namelen_msghdr_27389 msg_namelen msghdr 0 27389 NULL
155701 +enable_so_frame_size_audioformat_27394 frame_size audioformat 0 27394 NULL nohasharray
155702 +enable_so_rs_get_lower_rate_fndecl_27394 rs_get_lower_rate fndecl 3 27394 &enable_so_frame_size_audioformat_27394
155703 +enable_so_ccid_kmem_cache_create_fndecl_27397 ccid_kmem_cache_create fndecl 1 27397 NULL
155704 +enable_so_evdev_ioctl_compat_fndecl_27400 evdev_ioctl_compat fndecl 2 27400 NULL
155705 +enable_so_enc_pools_insert_fndecl_27402 enc_pools_insert fndecl 3 27402 NULL
155706 +enable_so_m_bsize_xfs_mount_27405 m_bsize xfs_mount 0 27405 NULL
155707 +enable_so_max_payload_rpc_xprt_27408 max_payload rpc_xprt 0 27408 NULL
155708 +enable_so_rts_threshold_ipw_priv_27416 rts_threshold ipw_priv 0 27416 NULL
155709 +enable_so_bucket_table_alloc_fndecl_27422 bucket_table_alloc fndecl 2 27422 NULL
155710 +enable_so_dst_frames_snd_pcm_plugin_27424 dst_frames snd_pcm_plugin 0 27424 NULL nohasharray
155711 +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
155712 +enable_so_build_virtual_key_fndecl_27427 build_virtual_key fndecl 2 27427 NULL
155713 +enable_so_ad9523_read_fndecl_27434 ad9523_read fndecl 2 27434 NULL
155714 +enable_so_qp_memcpy_to_queue_fndecl_27437 qp_memcpy_to_queue fndecl 5-2 27437 NULL nohasharray
155715 +enable_so___fsnotify_parent_fndecl_27437 __fsnotify_parent fndecl 0 27437 &enable_so_qp_memcpy_to_queue_fndecl_27437
155716 +enable_so_regmap_spi_async_write_fndecl_27439 regmap_spi_async_write fndecl 3-5 27439 NULL
155717 +enable_so_produce_size_vmci_qp_alloc_info_vmvm_27440 produce_size vmci_qp_alloc_info_vmvm 0 27440 NULL
155718 +enable_so_radeon_vm_block_size_vardecl_27445 radeon_vm_block_size vardecl 0 27445 NULL
155719 +enable_so_lpfc_sriov_nr_virtfn_vardecl_lpfc_attr_c_27446 lpfc_sriov_nr_virtfn vardecl_lpfc_attr.c 0 27446 NULL
155720 +enable_so_dm_table_get_num_targets_fndecl_27451 dm_table_get_num_targets fndecl 0 27451 NULL
155721 +enable_so_compat_ip_setsockopt_fndecl_27453 compat_ip_setsockopt fndecl 5 27453 NULL
155722 +enable_so_set_offset_v2_k_type_fndecl_27455 set_offset_v2_k_type fndecl 2 27455 NULL
155723 +enable_so_nilfs_bmap_do_truncate_fndecl_27459 nilfs_bmap_do_truncate fndecl 0 27459 NULL
155724 +enable_so_xfs_dir3_data_init_fndecl_27460 xfs_dir3_data_init fndecl 2 27460 NULL
155725 +enable_so_io_opt_queue_limits_27462 io_opt queue_limits 0 27462 NULL
155726 +enable_so_next_header_vardecl_initramfs_c_27464 next_header vardecl_initramfs.c 0 27464 NULL
155727 +enable_so_uar_page_sz_mlx4_init_hca_param_27465 uar_page_sz mlx4_init_hca_param 0 27465 NULL
155728 +enable_so_max_slots_nfs4_slot_table_27470 max_slots nfs4_slot_table 0 27470 NULL
155729 +enable_so_window_alignment_fndecl_27476 window_alignment fndecl 0 27476 NULL
155730 +enable_so_size_btrfs_ioctl_ino_path_args_27477 size btrfs_ioctl_ino_path_args 0 27477 NULL
155731 +enable_so_mq_msgsize_default_ipc_namespace_27478 mq_msgsize_default ipc_namespace 0 27478 NULL
155732 +enable_so_min_pnp_mem_27484 min pnp_mem 0 27484 NULL
155733 +enable_so_kim_int_recv_fndecl_27486 kim_int_recv fndecl 3 27486 NULL nohasharray
155734 +enable_so_snd_seq_fifo_resize_fndecl_27486 snd_seq_fifo_resize fndecl 2 27486 &enable_so_kim_int_recv_fndecl_27486
155735 +enable_so_status_udc_data_dma_27488 status udc_data_dma 0 27488 NULL nohasharray
155736 +enable_so_exofs_parent_ino_fndecl_27488 exofs_parent_ino fndecl 0 27488 &enable_so_status_udc_data_dma_27488
155737 +enable_so_drbd_send_drequest_csum_fndecl_27489 drbd_send_drequest_csum fndecl 5 27489 NULL nohasharray
155738 +enable_so_local_nentries_xpc_channel_27489 local_nentries xpc_channel 0 27489 &enable_so_drbd_send_drequest_csum_fndecl_27489
155739 +enable_so_ext3_xattr_block_get_fndecl_27491 ext3_xattr_block_get fndecl 0 27491 NULL
155740 +enable_so_iwl_dbgfs_protection_mode_read_fndecl_27492 iwl_dbgfs_protection_mode_read fndecl 3 27492 NULL
155741 +enable_so_wb_index_nfs_page_27494 wb_index nfs_page 0 27494 NULL
155742 +enable_so_ocfs2_xa_value_truncate_fndecl_27495 ocfs2_xa_value_truncate fndecl 2 27495 NULL nohasharray
155743 +enable_so_ieee80211_if_read_dot11MeshForwarding_fndecl_27495 ieee80211_if_read_dot11MeshForwarding fndecl 3 27495 &enable_so_ocfs2_xa_value_truncate_fndecl_27495
155744 +enable_so_qib_mmap_mem_fndecl_27496 qib_mmap_mem fndecl 3 27496 NULL
155745 +enable_so_rq_size_srpt_rdma_ch_27500 rq_size srpt_rdma_ch 0 27500 NULL nohasharray
155746 +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
155747 +enable_so_lpfc_idiag_queacc_read_fndecl_27501 lpfc_idiag_queacc_read fndecl 3 27501 NULL
155748 +enable_so_rx_buf_size_bnx2x_fastpath_27506 rx_buf_size bnx2x_fastpath 0 27506 NULL
155749 +enable_so_max_qp_sz_mthca_dev_lim_27511 max_qp_sz mthca_dev_lim 0 27511 NULL
155750 +enable_so_stripe_len_map_lookup_27512 stripe_len map_lookup 0 27512 NULL
155751 +enable_so_vis_h_yuv_frame_info_27514 vis_h yuv_frame_info 0 27514 NULL
155752 +enable_so_com90xx_found_fndecl_27525 com90xx_found fndecl 3 27525 NULL
155753 +enable_so_eeprom_size_netdev_private_27532 eeprom_size netdev_private 0 27532 NULL
155754 +enable_so_dvb_demux_read_fndecl_27534 dvb_demux_read fndecl 3 27534 NULL
155755 +enable_so_hlen_raw6_frag_vec_27535 hlen raw6_frag_vec 0 27535 NULL
155756 +enable_so_hsr_dev_change_mtu_fndecl_27537 hsr_dev_change_mtu fndecl 2 27537 NULL
155757 +enable_so_max_mem_ttm_mem_zone_27542 max_mem ttm_mem_zone 0 27542 NULL nohasharray
155758 +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
155759 +enable_so_snd_pcm_plug_slave_size_fndecl_27548 snd_pcm_plug_slave_size fndecl 0-2 27548 NULL
155760 +enable_so_remap_and_issue_fndecl_27555 remap_and_issue fndecl 3 27555 NULL nohasharray
155761 +enable_so_iova_ipath_mregion_27555 iova ipath_mregion 0 27555 &enable_so_remap_and_issue_fndecl_27555
155762 +enable_so_sddr09_write_data_fndecl_27565 sddr09_write_data fndecl 3-2 27565 NULL
155763 +enable_so__wm8993_set_fll_fndecl_27571 _wm8993_set_fll fndecl 4-5 27571 NULL
155764 +enable_so_disabled_cpus_vardecl_27577 disabled_cpus vardecl 0 27577 NULL
155765 +enable_so_count_cxgbi_task_data_27578 count cxgbi_task_data 0 27578 NULL
155766 +enable_so_dev_count_vardecl_smsc_ircc2_c_27579 dev_count vardecl_smsc-ircc2.c 0 27579 NULL
155767 +enable_so_nregions_vhost_memory_27586 nregions vhost_memory 0 27586 NULL
155768 +enable_so_pci_add_ext_cap_save_buffer_fndecl_27587 pci_add_ext_cap_save_buffer fndecl 3 27587 NULL
155769 +enable_so_dvb_usercopy_fndecl_27591 dvb_usercopy fndecl 2 27591 NULL
155770 +enable_so_ipath_init_ibmaxlen_ipath_devdata_27595 ipath_init_ibmaxlen ipath_devdata 0 27595 NULL
155771 +enable_so_md_alloc_fndecl_27600 md_alloc fndecl 1 27600 NULL
155772 +enable_so_btrfs_get_blocks_direct_fndecl_27603 btrfs_get_blocks_direct fndecl 2 27603 NULL
155773 +enable_so_get_sb_block_fndecl_27604 get_sb_block fndecl 0 27604 NULL
155774 +enable_so_iscsi_create_flashnode_conn_fndecl_27605 iscsi_create_flashnode_conn fndecl 4 27605 NULL
155775 +enable_so__rtl92s_firmware_downloadcode_fndecl_27606 _rtl92s_firmware_downloadcode fndecl 3 27606 NULL
155776 +enable_so_packet_length_gl_packet_27608 packet_length gl_packet 0 27608 NULL nohasharray
155777 +enable_so_EraseSize_INFTLrecord_27608 EraseSize INFTLrecord 0 27608 &enable_so_packet_length_gl_packet_27608
155778 +enable_so_read_isac_isac_27627 read_isac isac 0 27627 NULL
155779 +enable_so_data_length_se_cmd_27629 data_length se_cmd 0 27629 NULL nohasharray
155780 +enable_so_retry_mt76_tx_status_27629 retry mt76_tx_status 0 27629 &enable_so_data_length_se_cmd_27629
155781 +enable_so_sta_agg_status_read_fndecl_27641 sta_agg_status_read fndecl 3 27641 NULL
155782 +enable_so_st_scsi_execute_fndecl_27643 st_scsi_execute fndecl 5 27643 NULL
155783 +enable_so_bsize_videobuf_buffer_27645 bsize videobuf_buffer 0 27645 NULL
155784 +enable_so_error_res_proc_context_27648 error res_proc_context 0 27648 NULL
155785 +enable_so_nvkm_event_init_fndecl_27654 nvkm_event_init fndecl 2-3 27654 NULL
155786 +enable_so_period_frames_usb_stream_config_27656 period_frames usb_stream_config 0 27656 NULL
155787 +enable_so_WriteRegs_fndecl_27658 WriteRegs fndecl 4 27658 NULL
155788 +enable_so_efx_ef10_mem_map_size_fndecl_27664 efx_ef10_mem_map_size fndecl 0 27664 NULL
155789 +enable_so_mr_write_fndecl_27670 mr_write fndecl 0 27670 NULL
155790 +enable_so_short_retry_limit_ipw2100_priv_27671 short_retry_limit ipw2100_priv 0 27671 NULL
155791 +enable_so_size_compat_ip6t_replace_27672 size compat_ip6t_replace 0 27672 NULL
155792 +enable_so_ib_umem_get_fndecl_27678 ib_umem_get fndecl 2-3 27678 NULL
155793 +enable_so_tlbflush_write_file_fndecl_27685 tlbflush_write_file fndecl 3 27685 NULL
155794 +enable_so__iwl_dbgfs_prph_reg_write_fndecl_27686 _iwl_dbgfs_prph_reg_write fndecl 3 27686 NULL
155795 +enable_so_bnx2x_iov_init_one_fndecl_27687 bnx2x_iov_init_one fndecl 3 27687 NULL
155796 +enable_so_mt9m111_get_global_gain_fndecl_27689 mt9m111_get_global_gain fndecl 0 27689 NULL
155797 +enable_so_ipv6_get_l4proto_fndecl_27691 ipv6_get_l4proto fndecl 2 27691 NULL
155798 +enable_so_vhci_put_user_fndecl_27695 vhci_put_user fndecl 4 27695 NULL
155799 +enable_so_hvc_alloc_fndecl_27696 hvc_alloc fndecl 4 27696 NULL
155800 +enable_so_mru_ppp_27697 mru ppp 0 27697 NULL
155801 +enable_so_rx_buf_sz_de_private_27701 rx_buf_sz de_private 0 27701 NULL
155802 +enable_so_snd_pcm_plugin_alloc_fndecl_27703 snd_pcm_plugin_alloc fndecl 2 27703 NULL
155803 +enable_so_actual_size_mlx4_en_rx_ring_27705 actual_size mlx4_en_rx_ring 0 27705 NULL
155804 +enable_so_dsack_tcp_options_received_27706 dsack tcp_options_received 0 27706 NULL
155805 +enable_so_sequence_num_usb_ftdi_27707 sequence_num usb_ftdi 0 27707 NULL
155806 +enable_so_niu_rx_skb_append_fndecl_27708 niu_rx_skb_append fndecl 4-3-5 27708 NULL
155807 +enable_so_pcpu_extend_area_map_fndecl_27710 pcpu_extend_area_map fndecl 2 27710 NULL
155808 +enable_so_ns83820_change_mtu_fndecl_27711 ns83820_change_mtu fndecl 2 27711 NULL
155809 +enable_so_sdhci_pltfm_init_fndecl_27712 sdhci_pltfm_init fndecl 3 27712 NULL
155810 +enable_so_ipath_mmap_mem_fndecl_27714 ipath_mmap_mem fndecl 3 27714 NULL
155811 +enable_so_min_out_pixsize_fimc_variant_27716 min_out_pixsize fimc_variant 0 27716 NULL
155812 +enable_so_fsblog_xfs_da_geometry_27717 fsblog xfs_da_geometry 0 27717 NULL
155813 +enable_so_create_xrc_srq_cmd_fndecl_27718 create_xrc_srq_cmd fndecl 0 27718 NULL
155814 +enable_so_pwr_rcvd_awake_bcns_cnt_read_fndecl_27723 pwr_rcvd_awake_bcns_cnt_read fndecl 3 27723 NULL
155815 +enable_so_xstate_size__fpx_sw_bytes_27731 xstate_size _fpx_sw_bytes 0 27731 NULL
155816 +enable_so_ieee80211_ie_split_vendor_fndecl_27738 ieee80211_ie_split_vendor fndecl 0-3 27738 NULL nohasharray
155817 +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
155818 +enable_so_word_size_e1000_eeprom_info_27741 word_size e1000_eeprom_info 0 27741 NULL
155819 +enable_so_stv0900_read_reg_fndecl_27751 stv0900_read_reg fndecl 0 27751 NULL
155820 +enable_so_si_blocks_ocfs2_slot_info_27753 si_blocks ocfs2_slot_info 0 27753 NULL
155821 +enable_so_sparse_mem_maps_populate_node_fndecl_27758 sparse_mem_maps_populate_node fndecl 4 27758 NULL nohasharray
155822 +enable_so_sel_read_class_fndecl_27758 sel_read_class fndecl 3 27758 &enable_so_sparse_mem_maps_populate_node_fndecl_27758
155823 +enable_so_dwc3_link_state_write_fndecl_27762 dwc3_link_state_write fndecl 3 27762 NULL
155824 +enable_so_nr_sendmsg_fndecl_27763 nr_sendmsg fndecl 3 27763 NULL
155825 +enable_so_h_drm_vmw_rect_27765 h drm_vmw_rect 0 27765 NULL
155826 +enable_so_instat_endpoint_keyspan_device_details_27768 instat_endpoint keyspan_device_details 0 27768 NULL nohasharray
155827 +enable_so_wb_create_fndecl_27768 wb_create fndecl 1 27768 &enable_so_instat_endpoint_keyspan_device_details_27768
155828 +enable_so_be_queue_alloc_fndecl_27771 be_queue_alloc fndecl 3 27771 NULL
155829 +enable_so_max_cyttsp4_tch_abs_params_27772 max cyttsp4_tch_abs_params 0 27772 NULL nohasharray
155830 +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
155831 +enable_so_rs_datalen_ath_rx_status_27774 rs_datalen ath_rx_status 0 27774 NULL
155832 +enable_so_raid_disks_pool_info_27784 raid_disks pool_info 0 27784 NULL
155833 +enable_so_ieee802_1x_libipw_device_27787 ieee802_1x libipw_device 0 27787 NULL
155834 +enable_so_vlan_qos_vlan_priority_tci_mapping_27789 vlan_qos vlan_priority_tci_mapping 0 27789 NULL nohasharray
155835 +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
155836 +enable_so_flags_mmio_74xx_gpio_priv_27797 flags mmio_74xx_gpio_priv 0 27797 NULL
155837 +enable_so_nilfs_segbuf_set_next_segnum_fndecl_27802 nilfs_segbuf_set_next_segnum fndecl 2 27802 NULL
155838 +enable_so_bm_offset_drbd_md_27803 bm_offset drbd_md 0 27803 NULL
155839 +enable_so_nr_ports_solos_card_27804 nr_ports solos_card 0 27804 NULL
155840 +enable_so_e1000_receive_skb_fndecl_27809 e1000_receive_skb fndecl 3 27809 NULL
155841 +enable_so_ivtv_write_fndecl_27810 ivtv_write fndecl 3 27810 NULL
155842 +enable_so_ule_sndu_remain_dvb_net_priv_27812 ule_sndu_remain dvb_net_priv 0 27812 NULL
155843 +enable_so_page_is_ram_fndecl_27814 page_is_ram fndecl 1 27814 NULL
155844 +enable_so_dm_block_manager_create_fndecl_27815 dm_block_manager_create fndecl 2 27815 NULL
155845 +enable_so_sizeimage_v4l2_pix_format_27824 sizeimage v4l2_pix_format 0 27824 NULL nohasharray
155846 +enable_so_iwl_dbgfs_calib_disabled_write_fndecl_27824 iwl_dbgfs_calib_disabled_write fndecl 3 27824 &enable_so_sizeimage_v4l2_pix_format_27824
155847 +enable_so_consumed_vringh_kiov_27828 consumed vringh_kiov 0 27828 NULL
155848 +enable_so_corruption_check_size_vardecl_check_c_27830 corruption_check_size vardecl_check.c 0 27830 NULL
155849 +enable_so_roundup_brcmf_sdio_27833 roundup brcmf_sdio 0 27833 NULL nohasharray
155850 +enable_so_type_kqid_27833 type kqid 0 27833 &enable_so_roundup_brcmf_sdio_27833
155851 +enable_so_num_bcma_bus_27835 num bcma_bus 0 27835 NULL
155852 +enable_so_adm8211_tx_raw_fndecl_27839 adm8211_tx_raw fndecl 3-4 27839 NULL nohasharray
155853 +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
155854 +enable_so___getblk_slow_fndecl_27842 __getblk_slow fndecl 3-2 27842 NULL nohasharray
155855 +enable_so_cfg_niq_csio_hw_27842 cfg_niq csio_hw 0 27842 &enable_so___getblk_slow_fndecl_27842
155856 +enable_so_ieee80211_if_read_dot11MeshMaxRetries_fndecl_27847 ieee80211_if_read_dot11MeshMaxRetries fndecl 3 27847 NULL
155857 +enable_so_dd_bsg_size_fc_function_template_27852 dd_bsg_size fc_function_template 0 27852 NULL
155858 +enable_so_size_pnp_port_27856 size pnp_port 0 27856 NULL
155859 +enable_so_xfs_da3_node_read_fndecl_27858 xfs_da3_node_read fndecl 3 27858 NULL
155860 +enable_so_key_rx_spec_read_fndecl_27859 key_rx_spec_read fndecl 3 27859 NULL
155861 +enable_so_pb_count_s5p_mfc_ctx_27861 pb_count s5p_mfc_ctx 0 27861 NULL
155862 +enable_so_max_slave_count_w1_master_27872 max_slave_count w1_master 0 27872 NULL
155863 +enable_so_lo_len_nfsd4_lookup_27874 lo_len nfsd4_lookup 0 27874 NULL
155864 +enable_so_l_blkno_lbuf_27876 l_blkno lbuf 0 27876 NULL
155865 +enable_so_msb_sg_copy_fndecl_27886 msb_sg_copy fndecl 5-4 27886 NULL
155866 +enable_so__rotate_left_fndecl_27889 _rotate_left fndecl 2 27889 NULL
155867 +enable_so_listxattr_fndecl_27890 listxattr fndecl 3 27890 NULL
155868 +enable_so___lbs_cmd_fndecl_27904 __lbs_cmd fndecl 4 27904 NULL
155869 +enable_so_reada_tree_block_flagged_fndecl_27912 reada_tree_block_flagged fndecl 2 27912 NULL
155870 +enable_so_lbq_len_rx_ring_27913 lbq_len rx_ring 0 27913 NULL
155871 +enable_so_il_dbgfs_nvm_read_fndecl_27923 il_dbgfs_nvm_read fndecl 3 27923 NULL
155872 +enable_so_tp_datalen_bcm5974_config_27927 tp_datalen bcm5974_config 0 27927 NULL
155873 +enable_so_numchips_lpddr_private_27938 numchips lpddr_private 0 27938 NULL
155874 +enable_so_get_burstcount_fndecl_27942 get_burstcount fndecl 0 27942 NULL nohasharray
155875 +enable_so_capacity_cdrom_device_info_27942 capacity cdrom_device_info 0 27942 &enable_so_get_burstcount_fndecl_27942
155876 +enable_so_usbat_hp8200e_rw_block_test_fndecl_27957 usbat_hp8200e_rw_block_test fndecl 5-12-13 27957 NULL
155877 +enable_so_size_plx_pci_channel_map_27958 size plx_pci_channel_map 0 27958 NULL
155878 +enable_so_pcbit_writecmd_fndecl_27967 pcbit_writecmd fndecl 2 27967 NULL
155879 +enable_so_ext3_get_blocks_handle_fndecl_27970 ext3_get_blocks_handle fndecl 0 27970 NULL nohasharray
155880 +enable_so_fat_build_inode_fndecl_27970 fat_build_inode fndecl 3 27970 &enable_so_ext3_get_blocks_handle_fndecl_27970
155881 +enable_so_parser_init_byte_stream_fndecl_27973 parser_init_byte_stream fndecl 2 27973 NULL
155882 +enable_so_iip_ubifs_znode_27974 iip ubifs_znode 0 27974 NULL
155883 +enable_so_sxgbe_init_rx_buffers_fndecl_27984 sxgbe_init_rx_buffers fndecl 4 27984 NULL nohasharray
155884 +enable_so_mptctl_ioctl_fndecl_27984 mptctl_ioctl fndecl 2 27984 &enable_so_sxgbe_init_rx_buffers_fndecl_27984
155885 +enable_so_snd_sb16_setup_rate_fndecl_27986 snd_sb16_setup_rate fndecl 2 27986 NULL
155886 +enable_so_ext4_seek_hole_fndecl_27990 ext4_seek_hole fndecl 2 27990 NULL
155887 +enable_so_rx_rate_wsm_rx_27991 rx_rate wsm_rx 0 27991 NULL nohasharray
155888 +enable_so_write_mei_hw_ops_27991 write mei_hw_ops 0 27991 &enable_so_rx_rate_wsm_rx_27991
155889 +enable_so_alloc_ccbs_blogic_adapter_27993 alloc_ccbs blogic_adapter 0 27993 NULL
155890 +enable_so___nf_ct_ext_add_length_fndecl_27999 __nf_ct_ext_add_length fndecl 3 27999 NULL
155891 +enable_so_page_count_scrub_block_28000 page_count scrub_block 0 28000 NULL nohasharray
155892 +enable_so_ubifs_end_scan_fndecl_28000 ubifs_end_scan fndecl 4 28000 &enable_so_page_count_scrub_block_28000
155893 +enable_so_max_x_fb_monspecs_28003 max_x fb_monspecs 0 28003 NULL
155894 +enable_so_bytes_str_to_int_fndecl_28004 bytes_str_to_int fndecl 0 28004 NULL
155895 +enable_so_scif_recv_fndecl_28006 scif_recv fndecl 3 28006 NULL
155896 +enable_so_resp_ie_len_brcmf_cfg80211_connect_info_28007 resp_ie_len brcmf_cfg80211_connect_info 0 28007 NULL
155897 +enable_so_memtest_fndecl_28012 memtest fndecl 2 28012 NULL
155898 +enable_so_ext4_bg_num_gdb_nometa_fndecl_28014 ext4_bg_num_gdb_nometa fndecl 0 28014 NULL
155899 +enable_so_xfs_iext_inline_to_direct_fndecl_28019 xfs_iext_inline_to_direct fndecl 2 28019 NULL
155900 +enable_so_write_file_dump_fndecl_28020 write_file_dump fndecl 3 28020 NULL
155901 +enable_so_block_group_ext3_iloc_28034 block_group ext3_iloc 0 28034 NULL
155902 +enable_so_cfs_array_alloc_fndecl_28042 cfs_array_alloc fndecl 2 28042 NULL
155903 +enable_so_min_size_vx_ibl_info_28043 min_size vx_ibl_info 0 28043 NULL
155904 +enable_so_new_chunk_dm_exception_28044 new_chunk dm_exception 0 28044 NULL
155905 +enable_so_ieee80211_if_read_num_mcast_sta_fndecl_28048 ieee80211_if_read_num_mcast_sta fndecl 3 28048 NULL nohasharray
155906 +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
155907 +enable_so_vc_top_vc_data_28051 vc_top vc_data 0 28051 NULL
155908 +enable_so_virtio_gpu_cmd_set_scanout_fndecl_28053 virtio_gpu_cmd_set_scanout fndecl 4-5 28053 NULL
155909 +enable_so_maxpacket_usbnet_28054 maxpacket usbnet 0 28054 NULL
155910 +enable_so_cl_nodelen_rpc_clnt_28055 cl_nodelen rpc_clnt 0 28055 NULL
155911 +enable_so_s_imap_blocks_minix_sb_info_28062 s_imap_blocks minix_sb_info 0 28062 NULL
155912 +enable_so_gfs2_llseek_fndecl_28067 gfs2_llseek fndecl 2 28067 NULL
155913 +enable_so_rsi_prepare_skb_fndecl_28075 rsi_prepare_skb fndecl 4-3 28075 NULL
155914 +enable_so_qla4_82xx_pci_mem_write_direct_fndecl_28076 qla4_82xx_pci_mem_write_direct fndecl 2 28076 NULL
155915 +enable_so_abituguru_detect_fndecl_28078 abituguru_detect fndecl 0 28078 NULL
155916 +enable_so_bio_slab_max_vardecl_bio_c_28087 bio_slab_max vardecl_bio.c 0 28087 NULL
155917 +enable_so_buflen_qce_sha_reqctx_28088 buflen qce_sha_reqctx 0 28088 NULL nohasharray
155918 +enable_so_ddr_start_mthca_dev_28088 ddr_start mthca_dev 0 28088 &enable_so_buflen_qce_sha_reqctx_28088
155919 +enable_so_nvkm_engine_create__fndecl_28089 nvkm_engine_create_ fndecl 7 28089 NULL
155920 +enable_so_xlog_state_get_iclog_space_fndecl_28090 xlog_state_get_iclog_space fndecl 2 28090 NULL
155921 +enable_so_vxfs_read_olt_fndecl_28091 vxfs_read_olt fndecl 2 28091 NULL
155922 +enable_so_llcp_sock_recvmsg_fndecl_28095 llcp_sock_recvmsg fndecl 3 28095 NULL
155923 +enable_so_fnic_trace_ctrl_read_fndecl_28098 fnic_trace_ctrl_read fndecl 3 28098 NULL
155924 +enable_so_vmw_fb_create_bo_fndecl_28101 vmw_fb_create_bo fndecl 2 28101 NULL
155925 +enable_so_ath6kl_wmi_set_wmm_txop_fndecl_28102 ath6kl_wmi_set_wmm_txop fndecl 2 28102 NULL
155926 +enable_so_tool_peer_db_write_fndecl_28104 tool_peer_db_write fndecl 3 28104 NULL
155927 +enable_so_xlvbd_init_blk_queue_fndecl_28107 xlvbd_init_blk_queue fndecl 2-3-4 28107 NULL nohasharray
155928 +enable_so_udf_check_anchor_block_fndecl_28107 udf_check_anchor_block fndecl 2 28107 &enable_so_xlvbd_init_blk_queue_fndecl_28107
155929 +enable_so_gru_alloc_thread_state_fndecl_28109 gru_alloc_thread_state fndecl 2 28109 NULL
155930 +enable_so_stream_next_buffer_check_queue_fndecl_28114 stream_next_buffer_check_queue fndecl 0 28114 NULL
155931 +enable_so___iwl_read_prph_fndecl_28120 __iwl_read_prph fndecl 0 28120 NULL
155932 +enable_so_comm_base_mlx4_fw_28125 comm_base mlx4_fw 0 28125 NULL
155933 +enable_so_minimum_mfc_control_28126 minimum mfc_control 0 28126 NULL
155934 +enable_so_xfs_get_extsz_hint_fndecl_28128 xfs_get_extsz_hint fndecl 0 28128 NULL
155935 +enable_so_wLength_usb_ctrlrequest_28143 wLength usb_ctrlrequest 0 28143 NULL
155936 +enable_so_unit_size_pcpu_alloc_info_28146 unit_size pcpu_alloc_info 0 28146 NULL
155937 +enable_so_rc_framerate_denom_s5p_mfc_enc_params_28151 rc_framerate_denom s5p_mfc_enc_params 0 28151 NULL
155938 +enable_so_cur_page_offset_dio_submit_28153 cur_page_offset dio_submit 0 28153 NULL
155939 +enable_so_bNumPorts_usb_wa_descriptor_28154 bNumPorts usb_wa_descriptor 0 28154 NULL
155940 +enable_so_cfg80211_disconnected_fndecl_28155 cfg80211_disconnected fndecl 4 28155 NULL
155941 +enable_so_af9013_rd_regs_fndecl_28157 af9013_rd_regs fndecl 4 28157 NULL nohasharray
155942 +enable_so_qib_alloc_fast_reg_mr_fndecl_28157 qib_alloc_fast_reg_mr fndecl 2 28157 &enable_so_af9013_rd_regs_fndecl_28157
155943 +enable_so_sock_hlen_vhost_net_virtqueue_28159 sock_hlen vhost_net_virtqueue 0 28159 NULL
155944 +enable_so_read_file_tpc_fndecl_28162 read_file_tpc fndecl 3 28162 NULL
155945 +enable_so_aio_nbytes_iocb_28163 aio_nbytes iocb 0 28163 NULL
155946 +enable_so_x_drm_fb_helper_crtc_28166 x drm_fb_helper_crtc 0 28166 NULL
155947 +enable_so__ocfs2_free_suballoc_bits_fndecl_28174 _ocfs2_free_suballoc_bits fndecl 5 28174 NULL
155948 +enable_so___iscsi_conn_send_pdu_fndecl_28181 __iscsi_conn_send_pdu fndecl 4 28181 NULL
155949 +enable_so___dn_setsockopt_fndecl_28183 __dn_setsockopt fndecl 5 28183 NULL
155950 +enable_so_res_length_dlm_rsb_28184 res_length dlm_rsb 0 28184 NULL
155951 +enable_so_fw_cid_ep_handles_28190 fw_cid ep_handles 0 28190 NULL
155952 +enable_so_ixgbe_fcoe_get_tc_fndecl_28191 ixgbe_fcoe_get_tc fndecl 0 28191 NULL
155953 +enable_so_size_genwqe_mem_28192 size genwqe_mem 0 28192 NULL
155954 +enable_so_ttm_dma_pool_alloc_new_pages_fndecl_28194 ttm_dma_pool_alloc_new_pages fndecl 3 28194 NULL
155955 +enable_so_snd_rme96_playback_copy_fndecl_28196 snd_rme96_playback_copy fndecl 5 28196 NULL
155956 +enable_so_cirrus_gem_create_fndecl_28197 cirrus_gem_create fndecl 2 28197 NULL nohasharray
155957 +enable_so_next_power_fndecl_28197 next_power fndecl 0 28197 &enable_so_cirrus_gem_create_fndecl_28197
155958 +enable_so_snd_pcm_lib_preallocate_pages_for_all_fndecl_28203 snd_pcm_lib_preallocate_pages_for_all fndecl 4 28203 NULL
155959 +enable_so_bfad_debugfs_read_fndecl_28204 bfad_debugfs_read fndecl 3 28204 NULL
155960 +enable_so_region_shift_dm_region_hash_28205 region_shift dm_region_hash 0 28205 NULL
155961 +enable_so_ast_bo_create_fndecl_28209 ast_bo_create fndecl 2 28209 NULL nohasharray
155962 +enable_so_xattr_getsecurity_fndecl_28209 xattr_getsecurity fndecl 0 28209 &enable_so_ast_bo_create_fndecl_28209
155963 +enable_so____clear_user_fndecl_28212 ___clear_user fndecl 0 28212 NULL
155964 +enable_so_lec_change_mtu_fndecl_28213 lec_change_mtu fndecl 2 28213 NULL
155965 +enable_so_ext4_get_block_write_nolock_fndecl_28214 ext4_get_block_write_nolock fndecl 2 28214 NULL
155966 +enable_so_blk_rq_map_sg_fndecl_28215 blk_rq_map_sg fndecl 0 28215 NULL
155967 +enable_so_mpt_base_mthca_mr_table_28221 mpt_base mthca_mr_table 0 28221 NULL
155968 +enable_so_s_blocksize_bits_super_block_28225 s_blocksize_bits super_block 0 28225 NULL
155969 +enable_so_space_slots_btrfs_ioctl_space_args_28231 space_slots btrfs_ioctl_space_args 0 28231 NULL
155970 +enable_so_blk_update_request_fndecl_28233 blk_update_request fndecl 3 28233 NULL
155971 +enable_so_mux_device_request_fndecl_28235 mux_device_request fndecl 7 28235 NULL nohasharray
155972 +enable_so_l2cap_mtu_vardecl_core_c_28235 l2cap_mtu vardecl_core.c 0 28235 &enable_so_mux_device_request_fndecl_28235
155973 +enable_so_bits_mpidr_hash_28236 bits mpidr_hash 0 28236 NULL
155974 +enable_so_loop_end_patch_info_28242 loop_end patch_info 0 28242 NULL
155975 +enable_so_ext3_nfs_get_inode_fndecl_28245 ext3_nfs_get_inode fndecl 2 28245 NULL
155976 +enable_so_ino_bfs_dirent_28246 ino bfs_dirent 0 28246 NULL
155977 +enable_so_ip_make_skb_fndecl_28250 ip_make_skb fndecl 6-5 28250 NULL
155978 +enable_so_count_e1000_tx_ring_28261 count e1000_tx_ring 0 28261 NULL nohasharray
155979 +enable_so_ea_set_i_fndecl_28261 ea_set_i fndecl 5 28261 &enable_so_count_e1000_tx_ring_28261
155980 +enable_so_of_setup_earlycon_fndecl_28264 of_setup_earlycon fndecl 1 28264 NULL
155981 +enable_so_ucs2_strlen_fndecl_28265 ucs2_strlen fndecl 0 28265 NULL
155982 +enable_so_x1_osd_cmd_s_28266 x1 osd_cmd_s 0 28266 NULL
155983 +enable_so_pwr_disable_ps_read_fndecl_28267 pwr_disable_ps_read fndecl 3 28267 NULL
155984 +enable_so_mt7601u_rx_process_seg_fndecl_28268 mt7601u_rx_process_seg fndecl 3 28268 NULL
155985 +enable_so_needed_headroom_net_device_28272 needed_headroom net_device 0 28272 NULL
155986 +enable_so_rxbufsize_dma_info_28275 rxbufsize dma_info 0 28275 NULL
155987 +enable_so_mtu_tipc_bearer_28279 mtu tipc_bearer 0 28279 NULL
155988 +enable_so_pio2k_bufbase_qib_devdata_28282 pio2k_bufbase qib_devdata 0 28282 NULL nohasharray
155989 +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
155990 +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
155991 +enable_so_mem_cgroup_try_charge_fndecl_28289 mem_cgroup_try_charge fndecl 0 28289 NULL
155992 +enable_so_read32_ssb_bus_ops_28292 read32 ssb_bus_ops 0 28292 NULL
155993 +enable_so_mmc_ext_csd_read_fndecl_28294 mmc_ext_csd_read fndecl 3 28294 NULL
155994 +enable_so_save_total_len_pch_spi_data_28296 save_total_len pch_spi_data 0 28296 NULL
155995 +enable_so_rxsupport_size_ipg_nic_private_28297 rxsupport_size ipg_nic_private 0 28297 NULL
155996 +enable_so_byte_count_il_rx_phy_res_28304 byte_count il_rx_phy_res 0 28304 NULL
155997 +enable_so_flags2_psb_s_28305 flags2 psb_s 0 28305 NULL
155998 +enable_so_create_trace_uprobe_fndecl_28307 create_trace_uprobe fndecl 1 28307 NULL
155999 +enable_so_sst25l_read_fndecl_28315 sst25l_read fndecl 3 28315 NULL
156000 +enable_so_comedi_read_fndecl_28316 comedi_read fndecl 3 28316 NULL
156001 +enable_so_npages_mlx4_buf_28321 npages mlx4_buf 0 28321 NULL
156002 +enable_so_set_video_mode_Kiara_fndecl_28325 set_video_mode_Kiara fndecl 4 28325 NULL
156003 +enable_so__iwl_dbgfs_disable_power_off_write_fndecl_28328 _iwl_dbgfs_disable_power_off_write fndecl 3 28328 NULL nohasharray
156004 +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
156005 +enable_so_max_segment_size_brcmf_sdio_dev_28330 max_segment_size brcmf_sdio_dev 0 28330 NULL nohasharray
156006 +enable_so_size_videobuf_dmabuf_28330 size videobuf_dmabuf 0 28330 &enable_so_max_segment_size_brcmf_sdio_dev_28330
156007 +enable_so_asix_read_cmd_fndecl_28334 asix_read_cmd fndecl 5 28334 NULL
156008 +enable_so_mwifiex_debug_mask_read_fndecl_28341 mwifiex_debug_mask_read fndecl 3 28341 NULL
156009 +enable_so_ie_length_ndis_80211_bssid_ex_28346 ie_length ndis_80211_bssid_ex 0 28346 NULL
156010 +enable_so_plcp_mimo2_il_rate_info_28347 plcp_mimo2 il_rate_info 0 28347 NULL
156011 +enable_so_irq_domain_alloc_irqs_recursive_fndecl_28349 irq_domain_alloc_irqs_recursive fndecl 0 28349 NULL
156012 +enable_so_fnic_trace_ctrl_write_fndecl_28350 fnic_trace_ctrl_write fndecl 3 28350 NULL
156013 +enable_so_j_blocksize_journal_s_28358 j_blocksize journal_s 0 28358 NULL nohasharray
156014 +enable_so_c4iw_reg_user_mr_fndecl_28358 c4iw_reg_user_mr fndecl 2-3 28358 &enable_so_j_blocksize_journal_s_28358
156015 +enable_so_nvkm_ltc_create__fndecl_28360 nvkm_ltc_create_ fndecl 4 28360 NULL
156016 +enable_so_pmcraid_notify_aen_fndecl_28361 pmcraid_notify_aen fndecl 3 28361 NULL
156017 +enable_so_carl9170_rx_fndecl_28363 carl9170_rx fndecl 3 28363 NULL
156018 +enable_so_dma_lch_count_vardecl_dma_c_28369 dma_lch_count vardecl_dma.c 0 28369 NULL
156019 +enable_so_kvm_lapic_enable_pv_eoi_fndecl_28370 kvm_lapic_enable_pv_eoi fndecl 2 28370 NULL
156020 +enable_so_snd_emu10k1_fx8010_tram_setup_fndecl_28371 snd_emu10k1_fx8010_tram_setup fndecl 2 28371 NULL
156021 +enable_so_hostap_80211_get_hdrlen_fndecl_28372 hostap_80211_get_hdrlen fndecl 0 28372 NULL nohasharray
156022 +enable_so_count_atl1e_tx_ring_28372 count atl1e_tx_ring 0 28372 &enable_so_hostap_80211_get_hdrlen_fndecl_28372
156023 +enable_so_usbat_multiple_write_fndecl_28375 usbat_multiple_write fndecl 4 28375 NULL nohasharray
156024 +enable_so_init_tid_tabs_fndecl_28375 init_tid_tabs fndecl 4-3-2 28375 &enable_so_usbat_multiple_write_fndecl_28375
156025 +enable_so_bio_integrity_trim_fndecl_28376 bio_integrity_trim fndecl 2-3 28376 NULL
156026 +enable_so_simple_attr_write_fndecl_28383 simple_attr_write fndecl 3 28383 NULL
156027 +enable_so___bpf_fill_ja_fndecl_28393 __bpf_fill_ja fndecl 2 28393 NULL
156028 +enable_so_interrupt_in_endpointAddress_usb_serial_port_28398 interrupt_in_endpointAddress usb_serial_port 0 28398 NULL
156029 +enable_so_lpfc_idiag_mbxacc_get_setup_fndecl_28401 lpfc_idiag_mbxacc_get_setup fndecl 0 28401 NULL
156030 +enable_so_cxd2820r_rd_regs_fndecl_28402 cxd2820r_rd_regs fndecl 4 28402 NULL nohasharray
156031 +enable_so_il4965_stats_flag_fndecl_28402 il4965_stats_flag fndecl 0 28402 &enable_so_cxd2820r_rd_regs_fndecl_28402
156032 +enable_so_channel_bc_state_28411 channel bc_state 0 28411 NULL
156033 +enable_so_sd_major_fndecl_28413 sd_major fndecl 0-1 28413 NULL
156034 +enable_so_nvkm_i2c_pad_create__fndecl_28415 nvkm_i2c_pad_create_ fndecl 5 28415 NULL
156035 +enable_so_xfs_inumbers_fmt_fndecl_28418 xfs_inumbers_fmt fndecl 3 28418 NULL nohasharray
156036 +enable_so___inet_insert_ifa_fndecl_28418 __inet_insert_ifa fndecl 0 28418 &enable_so_xfs_inumbers_fmt_fndecl_28418
156037 +enable_so_dma_size_cx25821_audio_dev_28423 dma_size cx25821_audio_dev 0 28423 NULL
156038 +enable_so_s_blocks_per_group_ext3_sb_info_28428 s_blocks_per_group ext3_sb_info 0 28428 NULL
156039 +enable_so_afs_fs_store_data64_fndecl_28429 afs_fs_store_data64 fndecl 5-6 28429 NULL
156040 +enable_so_hpi_init_messageV1_fndecl_28435 hpi_init_messageV1 fndecl 2 28435 NULL
156041 +enable_so_ipath_sdma_verbs_send_fndecl_28436 ipath_sdma_verbs_send fndecl 3 28436 NULL
156042 +enable_so_jfs_issue_discard_fndecl_28440 jfs_issue_discard fndecl 2-3 28440 NULL
156043 +enable_so_sb_agcount_xfs_sb_28441 sb_agcount xfs_sb 0 28441 NULL nohasharray
156044 +enable_so_mgmt_event_fndecl_28441 mgmt_event fndecl 4 28441 &enable_so_sb_agcount_xfs_sb_28441
156045 +enable_so_iscsi_iser_session_create_fndecl_28447 iscsi_iser_session_create fndecl 3 28447 NULL
156046 +enable_so_nilfs_bmap_do_insert_fndecl_28453 nilfs_bmap_do_insert fndecl 0 28453 NULL
156047 +enable_so_stripe_size_bcache_device_28454 stripe_size bcache_device 0 28454 NULL
156048 +enable_so_mi_entries_per_block_nilfs_mdt_info_28458 mi_entries_per_block nilfs_mdt_info 0 28458 NULL
156049 +enable_so_irda_connect_confirm_fndecl_28460 irda_connect_confirm fndecl 4-5 28460 NULL
156050 +enable_so_pc87360_device_add_fndecl_28461 pc87360_device_add fndecl 1 28461 NULL
156051 +enable_so_SyS_add_key_fndecl_28465 SyS_add_key fndecl 4 28465 NULL
156052 +enable_so_md_offset_drbd_md_28466 md_offset drbd_md 0 28466 NULL
156053 +enable_so_data_out_size_mpt3_ioctl_command_28472 data_out_size mpt3_ioctl_command 0 28472 NULL
156054 +enable_so_osd_upper_vardecl_ivtvfb_c_28473 osd_upper vardecl_ivtvfb.c 0 28473 NULL nohasharray
156055 +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
156056 +enable_so_spidev_ioctl_fndecl_28477 spidev_ioctl fndecl 2 28477 NULL
156057 +enable_so_pa_pstart_ext4_prealloc_space_28478 pa_pstart ext4_prealloc_space 0 28478 NULL nohasharray
156058 +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
156059 +enable_so_block_size_sd_28480 block_size sd 0 28480 NULL
156060 +enable_so_rbuf_fill_level_slgt_info_28481 rbuf_fill_level slgt_info 0 28481 NULL
156061 +enable_so_amdgpu_align_pitch_fndecl_28483 amdgpu_align_pitch fndecl 0-2 28483 NULL
156062 +enable_so_csa_nrclists_cb_sequenceargs_28491 csa_nrclists cb_sequenceargs 0 28491 NULL
156063 +enable_so_wl1271_sdio_set_block_size_fndecl_28494 wl1271_sdio_set_block_size fndecl 2 28494 NULL
156064 +enable_so_get_leb_cnt_fndecl_28495 get_leb_cnt fndecl 0-2 28495 NULL
156065 +enable_so_len_sctp_tsnmap_28496 len sctp_tsnmap 0 28496 NULL
156066 +enable_so_xfs_rtallocate_extent_exact_fndecl_28498 xfs_rtallocate_extent_exact fndecl 3-5-9 28498 NULL nohasharray
156067 +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
156068 +enable_so_num_vmdq_msix_i40e_pf_28501 num_vmdq_msix i40e_pf 0 28501 NULL
156069 +enable_so_read_file_operations_28504 read file_operations 0 28504 NULL
156070 +enable_so_dln2_send_wait_fndecl_28510 dln2_send_wait fndecl 0 28510 NULL
156071 +enable_so_fll_fout_wm8993_priv_28516 fll_fout wm8993_priv 0 28516 NULL
156072 +enable_so_xen_add_extra_mem_fndecl_28519 xen_add_extra_mem fndecl 1-2 28519 NULL
156073 +enable_so_rds_pages_in_vec_fndecl_28521 rds_pages_in_vec fndecl 0 28521 NULL
156074 +enable_so_free_tind_blocks_fndecl_28525 free_tind_blocks fndecl 3 28525 NULL
156075 +enable_so_src_width_snd_pcm_plugin_28529 src_width snd_pcm_plugin 0 28529 NULL
156076 +enable_so_max_rds_rings_qlcnic_adapter_28536 max_rds_rings qlcnic_adapter 0 28536 NULL
156077 +enable_so_ext4_bread_fndecl_28538 ext4_bread fndecl 3 28538 NULL
156078 +enable_so_btcx_screen_clips_fndecl_28540 btcx_screen_clips fndecl 2-1-0-5 28540 NULL
156079 +enable_so_get_virtual_node_size_fndecl_28543 get_virtual_node_size fndecl 0 28543 NULL
156080 +enable_so_md_minor_mdp_superblock_s_28551 md_minor mdp_superblock_s 0 28551 NULL
156081 +enable_so_raw_cmd_copyin_fndecl_28554 raw_cmd_copyin fndecl 0 28554 NULL
156082 +enable_so_mwifiex_send_delba_fndecl_28557 mwifiex_send_delba fndecl 2 28557 NULL
156083 +enable_so_ci_ll_init_fndecl_28561 ci_ll_init fndecl 3 28561 NULL nohasharray
156084 +enable_so_num_pads_uvc_entity_28561 num_pads uvc_entity 0 28561 &enable_so_ci_ll_init_fndecl_28561
156085 +enable_so_PRO_RATE_DEFAULT_vardecl_ice1712_c_28563 PRO_RATE_DEFAULT vardecl_ice1712.c 0 28563 NULL
156086 +enable_so_wil_write_back_fndecl_28568 wil_write_back fndecl 3 28568 NULL
156087 +enable_so_nvme_npages_fndecl_28569 nvme_npages fndecl 0-1 28569 NULL
156088 +enable_so_out_max_chans_snd_card_asihpi_28574 out_max_chans snd_card_asihpi 0 28574 NULL nohasharray
156089 +enable_so_ufx_i2c_wait_busy_fndecl_28574 ufx_i2c_wait_busy fndecl 0 28574 &enable_so_out_max_chans_snd_card_asihpi_28574
156090 +enable_so_charcount_console_font_op_28585 charcount console_font_op 0 28585 NULL
156091 +enable_so__iwl_dbgfs_ss_force_write_fndecl_28587 _iwl_dbgfs_ss_force_write fndecl 3 28587 NULL
156092 +enable_so_uhci_map_status_fndecl_28591 uhci_map_status fndecl 0 28591 NULL
156093 +enable_so_icsk_pmtu_cookie_inet_connection_sock_28598 icsk_pmtu_cookie inet_connection_sock 0 28598 NULL
156094 +enable_so_n_devs_pci_id_table_28599 n_devs pci_id_table 0 28599 NULL nohasharray
156095 +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
156096 +enable_so_bm_status_write_fndecl_28599 bm_status_write fndecl 3 28599 &enable_so_menu_count_uvc_xu_control_mapping_28599
156097 +enable_so_status_smsc9420_dma_desc_28600 status smsc9420_dma_desc 0 28600 NULL
156098 +enable_so_stride_usX2Ydev_28605 stride usX2Ydev 0 28605 NULL
156099 +enable_so_ubifs_scan_a_node_fndecl_28611 ubifs_scan_a_node fndecl 0 28611 NULL
156100 +enable_so_ccmp_encrypt_skb_fndecl_28613 ccmp_encrypt_skb fndecl 3 28613 NULL
156101 +enable_so_bytesused_v4l2_plane_28616 bytesused v4l2_plane 0 28616 NULL nohasharray
156102 +enable_so_gru_assign_context_number_fndecl_28616 gru_assign_context_number fndecl 0 28616 &enable_so_bytesused_v4l2_plane_28616
156103 +enable_so_subsystem_filter_write_fndecl_28621 subsystem_filter_write fndecl 3 28621 NULL
156104 +enable_so_s_inode_size_ext4_sb_info_28625 s_inode_size ext4_sb_info 0 28625 NULL
156105 +enable_so_cdc_ncm_min_dgram_size_fndecl_28632 cdc_ncm_min_dgram_size fndecl 0 28632 NULL nohasharray
156106 +enable_so__get_block_create_0_fndecl_28632 _get_block_create_0 fndecl 2 28632 &enable_so_cdc_ncm_min_dgram_size_fndecl_28632
156107 +enable_so_drbd_recv_all_fndecl_28633 drbd_recv_all fndecl 3 28633 NULL nohasharray
156108 +enable_so_key_size_ethtool_rxfh_28633 key_size ethtool_rxfh 0 28633 &enable_so_drbd_recv_all_fndecl_28633
156109 +enable_so_log_max_len_server_hdr_28634 log_max_len server_hdr 0 28634 NULL
156110 +enable_so_device_count_vardecl_mts64_c_28635 device_count vardecl_mts64.c 0 28635 NULL
156111 +enable_so_usb_stream_new_fndecl_28646 usb_stream_new fndecl 6-8-5-7-3-4 28646 NULL nohasharray
156112 +enable_so_ocfs2_write_begin_fndecl_28646 ocfs2_write_begin fndecl 3 28646 &enable_so_usb_stream_new_fndecl_28646
156113 +enable_so_cw1200_spi_memcpy_fromio_fndecl_28649 cw1200_spi_memcpy_fromio fndecl 4 28649 NULL
156114 +enable_so_alloc_size_chunk_28657 alloc_size chunk 0 28657 NULL
156115 +enable_so_ipg_nic_change_mtu_fndecl_28665 ipg_nic_change_mtu fndecl 2 28665 NULL
156116 +enable_so_x25_create_facilities_fndecl_28684 x25_create_facilities fndecl 0 28684 NULL
156117 +enable_so_fill_isoc_urb_fndecl_28690 fill_isoc_urb fndecl 6-5-3 28690 NULL
156118 +enable_so_stolen_size_psb_gtt_28693 stolen_size psb_gtt 0 28693 NULL
156119 +enable_so_offset_cache_reader_28697 offset cache_reader 0 28697 NULL
156120 +enable_so_register_size_fe_priv_28698 register_size fe_priv 0 28698 NULL
156121 +enable_so_bclean_fndecl_28699 bclean fndecl 3 28699 NULL
156122 +enable_so_data_len_rndis_data_hdr_28701 data_len rndis_data_hdr 0 28701 NULL
156123 +enable_so_cw_bmove_fndecl_28704 cw_bmove fndecl 7-5-3-6-8-4 28704 NULL nohasharray
156124 +enable_so_size_fuse_notify_store_out_28704 size fuse_notify_store_out 0 28704 &enable_so_cw_bmove_fndecl_28704
156125 +enable_so_CIFSSMBWrite2_fndecl_28705 CIFSSMBWrite2 fndecl 5 28705 NULL
156126 +enable_so_mlx4_init_cmpt_table_fndecl_28706 mlx4_init_cmpt_table fndecl 3 28706 NULL
156127 +enable_so_v9fs_xattr_get_acl_fndecl_28714 v9fs_xattr_get_acl fndecl 4 28714 NULL
156128 +enable_so_lpfc_idiag_ctlacc_write_fndecl_28715 lpfc_idiag_ctlacc_write fndecl 3 28715 NULL
156129 +enable_so_nilfs_bmap_lookup_contig_fndecl_28717 nilfs_bmap_lookup_contig fndecl 0 28717 NULL nohasharray
156130 +enable_so_oprofilefs_ulong_to_user_fndecl_28717 oprofilefs_ulong_to_user fndecl 3 28717 &enable_so_nilfs_bmap_lookup_contig_fndecl_28717
156131 +enable_so_phys_smscore_buffer_t_28719 phys smscore_buffer_t 0 28719 NULL
156132 +enable_so_radix_tree_extend_fndecl_28720 radix_tree_extend fndecl 0 28720 NULL nohasharray
156133 +enable_so_getexposure_fndecl_28720 getexposure fndecl 0 28720 &enable_so_radix_tree_extend_fndecl_28720
156134 +enable_so_xfs_rtcheck_alloc_range_fndecl_28722 xfs_rtcheck_alloc_range fndecl 3 28722 NULL
156135 +enable_so_note_last_dentry_fndecl_28724 note_last_dentry fndecl 4-3-0 28724 NULL nohasharray
156136 +enable_so_d40_prep_memcpy_fndecl_28724 d40_prep_memcpy fndecl 4 28724 &enable_so_note_last_dentry_fndecl_28724
156137 +enable_so_skb_cow_data_fndecl_28734 skb_cow_data fndecl 0 28734 NULL
156138 +enable_so_num_pports_qib_devdata_28736 num_pports qib_devdata 0 28736 NULL
156139 +enable_so_size_mspro_sys_attr_28742 size mspro_sys_attr 0 28742 NULL
156140 +enable_so_batadv_iv_ogm_orig_del_if_fndecl_28743 batadv_iv_ogm_orig_del_if fndecl 2 28743 NULL
156141 +enable_so_ns_pseg_offset_the_nilfs_28744 ns_pseg_offset the_nilfs 0 28744 NULL
156142 +enable_so_batadv_iv_ogm_orig_add_if_fndecl_28753 batadv_iv_ogm_orig_add_if fndecl 2 28753 NULL
156143 +enable_so_src_h_yuv_frame_info_28759 src_h yuv_frame_info 0 28759 NULL
156144 +enable_so_fw_device_op_ioctl_fndecl_28760 fw_device_op_ioctl fndecl 2 28760 NULL
156145 +enable_so_enc28j60_packet_write_fndecl_28762 enc28j60_packet_write fndecl 2 28762 NULL
156146 +enable_so_ncp_write_kernel_fndecl_28776 ncp_write_kernel fndecl 4 28776 NULL
156147 +enable_so_C_SYSC_migrate_pages_fndecl_28785 C_SYSC_migrate_pages fndecl 2 28785 NULL
156148 +enable_so_tcp_parse_fastopen_option_fndecl_28793 tcp_parse_fastopen_option fndecl 1 28793 NULL
156149 +enable_so_psbfb_alloc_fndecl_28804 psbfb_alloc fndecl 2 28804 NULL
156150 +enable_so_ext4_nfs_get_inode_fndecl_28806 ext4_nfs_get_inode fndecl 2 28806 NULL nohasharray
156151 +enable_so_items_max_vxge_hw_mempool_28806 items_max vxge_hw_mempool 0 28806 &enable_so_ext4_nfs_get_inode_fndecl_28806
156152 +enable_so_e820_remove_range_fndecl_28810 e820_remove_range fndecl 1-2 28810 NULL nohasharray
156153 +enable_so_ide_queue_pc_tail_fndecl_28810 ide_queue_pc_tail fndecl 5 28810 &enable_so_e820_remove_range_fndecl_28810
156154 +enable_so_sisusb_send_bridge_packet_fndecl_28818 sisusb_send_bridge_packet fndecl 2 28818 NULL
156155 +enable_so_ceph_build_auth_fndecl_28825 ceph_build_auth fndecl 0 28825 NULL
156156 +enable_so_sdio_memcpy_toio_fndecl_28828 sdio_memcpy_toio fndecl 4 28828 NULL
156157 +enable_so_vram_end_radeon_mc_28831 vram_end radeon_mc 0 28831 NULL
156158 +enable_so_right_qxl_urect_28833 right qxl_urect 0 28833 NULL nohasharray
156159 +enable_so_ivtv_udma_get_page_info_fndecl_28833 ivtv_udma_get_page_info fndecl 2-3 28833 &enable_so_right_qxl_urect_28833
156160 +enable_so_dm_table_add_target_fndecl_28838 dm_table_add_target fndecl 4-3 28838 NULL
156161 +enable_so_sctp_setsockopt_hmac_ident_fndecl_28852 sctp_setsockopt_hmac_ident fndecl 3 28852 NULL
156162 +enable_so_dsp_buffer_alloc_fndecl_28855 dsp_buffer_alloc fndecl 2 28855 NULL
156163 +enable_so_split_fndecl_28856 split fndecl 2 28856 NULL
156164 +enable_so_snd_ctl_elem_user_tlv_fndecl_28860 snd_ctl_elem_user_tlv fndecl 3 28860 NULL
156165 +enable_so_mt9t031_set_params_fndecl_28862 mt9t031_set_params fndecl 4-3 28862 NULL
156166 +enable_so_tx_pending_ethtool_ringparam_28864 tx_pending ethtool_ringparam 0 28864 NULL
156167 +enable_so_ie_length_brcmf_bss_info_le_28867 ie_length brcmf_bss_info_le 0 28867 NULL
156168 +enable_so_usb_stor_access_xfer_buf_fndecl_28868 usb_stor_access_xfer_buf fndecl 0-2 28868 NULL
156169 +enable_so_i2c_master_recv_fndecl_28869 i2c_master_recv fndecl 3-0 28869 NULL
156170 +enable_so_receive_new_fndecl_28872 receive_new fndecl 3 28872 NULL nohasharray
156171 +enable_so_ep_out_mcs_cb_28872 ep_out mcs_cb 0 28872 &enable_so_receive_new_fndecl_28872
156172 +enable_so_TupleOffset_tuple_t_28876 TupleOffset tuple_t 0 28876 NULL
156173 +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
156174 +enable_so_zlib_inflateInit2_fndecl_28887 zlib_inflateInit2 fndecl 2 28887 NULL
156175 +enable_so_request_len_bsg_job_28889 request_len bsg_job 0 28889 NULL
156176 +enable_so_map_count_mm_struct_28894 map_count mm_struct 0 28894 NULL nohasharray
156177 +enable_so_ipath_rcvhdrcnt_ipath_devdata_28894 ipath_rcvhdrcnt ipath_devdata 0 28894 &enable_so_map_count_mm_struct_28894
156178 +enable_so_nci_set_config_fndecl_28899 nci_set_config fndecl 3 28899 NULL
156179 +enable_so_t_elist_cb_state_28900 t elist_cb_state 0 28900 NULL nohasharray
156180 +enable_so_capi_major_vardecl_capi_c_28900 capi_major vardecl_capi.c 0 28900 &enable_so_t_elist_cb_state_28900
156181 +enable_so_ss_in_channels_hdspm_28903 ss_in_channels hdspm 0 28903 NULL nohasharray
156182 +enable_so_flags_read_fndecl_28903 flags_read fndecl 3 28903 &enable_so_ss_in_channels_hdspm_28903
156183 +enable_so_ngpios_sx150x_device_data_28905 ngpios sx150x_device_data 0 28905 NULL
156184 +enable_so_ieee80211_get_num_supported_channels_fndecl_28907 ieee80211_get_num_supported_channels fndecl 0 28907 NULL
156185 +enable_so_usb_pipe_handle_ath6kl_usb_pipe_28910 usb_pipe_handle ath6kl_usb_pipe 0 28910 NULL
156186 +enable_so_hslen_vardecl_matroxfb_base_c_28914 hslen vardecl_matroxfb_base.c 0 28914 NULL
156187 +enable_so_port_c67x00_urb_priv_28917 port c67x00_urb_priv 0 28917 NULL
156188 +enable_so_iwl_dbgfs_qos_read_fndecl_28922 iwl_dbgfs_qos_read fndecl 3 28922 NULL nohasharray
156189 +enable_so_c_ssize_f_uac2_opts_28922 c_ssize f_uac2_opts 0 28922 &enable_so_iwl_dbgfs_qos_read_fndecl_28922
156190 +enable_so_suspend_nvs_register_fndecl_28923 suspend_nvs_register fndecl 2-1 28923 NULL
156191 +enable_so_tegra_sflash_start_cpu_based_transfer_fndecl_28927 tegra_sflash_start_cpu_based_transfer fndecl 0 28927 NULL
156192 +enable_so_rpcrdma_count_chunks_fndecl_28931 rpcrdma_count_chunks fndecl 0 28931 NULL
156193 +enable_so_exclude_unencrypted_atmel_private_28933 exclude_unencrypted atmel_private 0 28933 NULL
156194 +enable_so_usbat_write_block_fndecl_28938 usbat_write_block fndecl 4-6 28938 NULL
156195 +enable_so_alsa_index_vardecl_thinkpad_acpi_c_28952 alsa_index vardecl_thinkpad_acpi.c 0 28952 NULL
156196 +enable_so_ath6kl_power_params_write_fndecl_28953 ath6kl_power_params_write fndecl 3 28953 NULL
156197 +enable_so_gb_len_pn533_28959 gb_len pn533 0 28959 NULL
156198 +enable_so_hpfs_alloc_anode_fndecl_28960 hpfs_alloc_anode fndecl 2 28960 NULL
156199 +enable_so_usb_stor_bulk_transfer_buf_fndecl_28961 usb_stor_bulk_transfer_buf fndecl 4-2 28961 NULL nohasharray
156200 +enable_so_get_segment_selector_fndecl_28961 get_segment_selector fndecl 0 28961 &enable_so_usb_stor_bulk_transfer_buf_fndecl_28961
156201 +enable_so_split_vma_fndecl_28963 split_vma fndecl 3 28963 NULL
156202 +enable_so_tcp_send_rcvq_fndecl_28967 tcp_send_rcvq fndecl 3 28967 NULL nohasharray
156203 +enable_so_intel_mid_serial_setup_fndecl_28967 intel_mid_serial_setup fndecl 4 28967 &enable_so_tcp_send_rcvq_fndecl_28967
156204 +enable_so_iwl_dbgfs_ss_force_read_fndecl_28968 iwl_dbgfs_ss_force_read fndecl 3 28968 NULL
156205 +enable_so_ath6kl_wmi_set_wow_mode_cmd_fndecl_28969 ath6kl_wmi_set_wow_mode_cmd fndecl 2 28969 NULL
156206 +enable_so_sctp_transport_update_pmtu_fndecl_28973 sctp_transport_update_pmtu fndecl 3 28973 NULL
156207 +enable_so_syncmaxsize_snd_usb_endpoint_28987 syncmaxsize snd_usb_endpoint 0 28987 NULL
156208 +enable_so_aper_size_agp_kern_info_28990 aper_size agp_kern_info 0 28990 NULL
156209 +enable_so_klen_WepKeyRid_28997 klen WepKeyRid 0 28997 NULL
156210 +enable_so_ext4_get_inline_size_fndecl_28998 ext4_get_inline_size fndecl 0 28998 NULL
156211 +enable_so_handle_unit_fndecl_29000 handle_unit fndecl 0-1 29000 NULL nohasharray
156212 +enable_so_prio_io_fndecl_29000 prio_io fndecl 2 29000 &enable_so_handle_unit_fndecl_29000 nohasharray
156213 +enable_so_rawsize_nd_namespace_label_29000 rawsize nd_namespace_label 0 29000 &enable_so_prio_io_fndecl_29000
156214 +enable_so_len_p54p_desc_29001 len p54p_desc 0 29001 NULL nohasharray
156215 +enable_so_buf_read_ptr_comedi_async_29001 buf_read_ptr comedi_async 0 29001 &enable_so_len_p54p_desc_29001
156216 +enable_so_nl80211_send_mgmt_fndecl_29002 nl80211_send_mgmt fndecl 7 29002 NULL nohasharray
156217 +enable_so_sel_write_create_fndecl_29002 sel_write_create fndecl 3 29002 &enable_so_nl80211_send_mgmt_fndecl_29002
156218 +enable_so_num_lns_csio_hw_29004 num_lns csio_hw 0 29004 NULL
156219 +enable_so_ipath_palign_ipath_devdata_29005 ipath_palign ipath_devdata 0 29005 NULL
156220 +enable_so___kfifo_out_peek_fndecl_29010 __kfifo_out_peek fndecl 0-3 29010 NULL nohasharray
156221 +enable_so_construct_key_fndecl_29010 construct_key fndecl 3 29010 &enable_so___kfifo_out_peek_fndecl_29010
156222 +enable_so_ivtvfb_prep_dec_dma_to_device_fndecl_29011 ivtvfb_prep_dec_dma_to_device fndecl 4 29011 NULL
156223 +enable_so_seq_copy_in_user_fndecl_29019 seq_copy_in_user fndecl 3 29019 NULL
156224 +enable_so_sb_dmap_hpfs_sb_info_29020 sb_dmap hpfs_sb_info 0 29020 NULL
156225 +enable_so_j_len_reiserfs_journal_list_29021 j_len reiserfs_journal_list 0 29021 NULL
156226 +enable_so___spi_queued_transfer_fndecl_29024 __spi_queued_transfer fndecl 0 29024 NULL
156227 +enable_so_nft_value_dump_fndecl_29030 nft_value_dump fndecl 3 29030 NULL nohasharray
156228 +enable_so_tcf_register_action_fndecl_29030 tcf_register_action fndecl 2 29030 &enable_so_nft_value_dump_fndecl_29030
156229 +enable_so_at24_read_fndecl_29031 at24_read fndecl 4 29031 NULL
156230 +enable_so_drm_vblank_init_fndecl_29041 drm_vblank_init fndecl 2 29041 NULL
156231 +enable_so_of_get_available_child_count_fndecl_29042 of_get_available_child_count fndecl 0 29042 NULL
156232 +enable_so_batadv_skb_head_push_fndecl_29043 batadv_skb_head_push fndecl 2 29043 NULL
156233 +enable_so_memory_size_kvm_userspace_memory_region_29047 memory_size kvm_userspace_memory_region 0 29047 NULL
156234 +enable_so_qib_get_base_info_fndecl_29050 qib_get_base_info fndecl 3 29050 NULL
156235 +enable_so_scsi_debug_max_queue_vardecl_scsi_debug_c_29056 scsi_debug_max_queue vardecl_scsi_debug.c 0 29056 NULL nohasharray
156236 +enable_so_str_to_user_fndecl_29056 str_to_user fndecl 2 29056 &enable_so_scsi_debug_max_queue_vardecl_scsi_debug_c_29056
156237 +enable_so____alloc_bootmem_fndecl_29057 ___alloc_bootmem fndecl 2-1-3-4 29057 NULL
156238 +enable_so_fbcon_scroll_fndecl_29060 fbcon_scroll fndecl 5 29060 NULL nohasharray
156239 +enable_so_len_wmi_rx_mgmt_info_29060 len wmi_rx_mgmt_info 0 29060 &enable_so_fbcon_scroll_fndecl_29060
156240 +enable_so_mem_fw_gen_free_mem_blks_read_fndecl_29062 mem_fw_gen_free_mem_blks_read fndecl 3 29062 NULL
156241 +enable_so_use_dmio_fndecl_29065 use_dmio fndecl 3 29065 NULL
156242 +enable_so_adis16480_show_firmware_revision_fndecl_29066 adis16480_show_firmware_revision fndecl 3 29066 NULL
156243 +enable_so_ucFakeEDIDLength__ATOM_FAKE_EDID_PATCH_RECORD_29067 ucFakeEDIDLength _ATOM_FAKE_EDID_PATCH_RECORD 0 29067 NULL
156244 +enable_so_i40e_dbg_command_write_fndecl_29070 i40e_dbg_command_write fndecl 3 29070 NULL
156245 +enable_so_isku_sysfs_read_keys_capslock_fndecl_29075 isku_sysfs_read_keys_capslock fndecl 6 29075 NULL
156246 +enable_so_tse_change_mtu_fndecl_29076 tse_change_mtu fndecl 2 29076 NULL
156247 +enable_so_dev_irnet_write_fndecl_29077 dev_irnet_write fndecl 3 29077 NULL
156248 +enable_so_lprocfs_wr_evict_client_fndecl_29081 lprocfs_wr_evict_client fndecl 3 29081 NULL
156249 +enable_so_ath6kl_wmi_deletekey_cmd_fndecl_29086 ath6kl_wmi_deletekey_cmd fndecl 2 29086 NULL
156250 +enable_so_dlm_lowcomms_get_buffer_fndecl_29111 dlm_lowcomms_get_buffer fndecl 2 29111 NULL
156251 +enable_so_bttv_read_fndecl_29115 bttv_read fndecl 3 29115 NULL
156252 +enable_so_st_nci_probe_fndecl_29121 st_nci_probe fndecl 2 29121 NULL
156253 +enable_so_jfs_iget_fndecl_29122 jfs_iget fndecl 2 29122 NULL
156254 +enable_so_pci_set_power_state_fndecl_29124 pci_set_power_state fndecl 0 29124 NULL nohasharray
156255 +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
156256 +enable_so_ioctl_code_usbdevfs_ioctl_29134 ioctl_code usbdevfs_ioctl 0 29134 NULL
156257 +enable_so_max_dump_cnt_ramoops_context_29141 max_dump_cnt ramoops_context 0 29141 NULL
156258 +enable_so_pci_pericom_setup_fndecl_29142 pci_pericom_setup fndecl 4 29142 NULL
156259 +enable_so_y1_virtio_gpu_framebuffer_29147 y1 virtio_gpu_framebuffer 0 29147 NULL
156260 +enable_so_send_bulk_pipe_us_data_29148 send_bulk_pipe us_data 0 29148 NULL
156261 +enable_so_width_usbtv_29152 width usbtv 0 29152 NULL
156262 +enable_so_algorithm_raid_type_29156 algorithm raid_type 0 29156 NULL
156263 +enable_so_kmem_zalloc_fndecl_29157 kmem_zalloc fndecl 1 29157 NULL
156264 +enable_so_W6692B_empty_fifo_fndecl_29159 W6692B_empty_fifo fndecl 2 29159 NULL
156265 +enable_so_md_dump_size_qla_hw_data_29160 md_dump_size qla_hw_data 0 29160 NULL
156266 +enable_so_current_rx_bytes_printer_dev_29165 current_rx_bytes printer_dev 0 29165 NULL
156267 +enable_so_surface_height_drm_fb_helper_surface_size_29174 surface_height drm_fb_helper_surface_size 0 29174 NULL
156268 +enable_so_dma_in_streamzap_ir_29180 dma_in streamzap_ir 0 29180 NULL nohasharray
156269 +enable_so_num_segments_acpi_namestring_info_29180 num_segments acpi_namestring_info 0 29180 &enable_so_dma_in_streamzap_ir_29180
156270 +enable_so_vp_try_to_find_vqs_fndecl_29181 vp_try_to_find_vqs fndecl 2 29181 NULL
156271 +enable_so_ieee80211_if_read_user_power_level_fndecl_29185 ieee80211_if_read_user_power_level fndecl 3 29185 NULL
156272 +enable_so_ircomm_control_indication_fndecl_29186 ircomm_control_indication fndecl 3 29186 NULL
156273 +enable_so_release_mem_region_adjustable_fndecl_29187 release_mem_region_adjustable fndecl 3-2 29187 NULL
156274 +enable_so_em28xx_i2c_read_block_fndecl_29188 em28xx_i2c_read_block fndecl 5 29188 NULL
156275 +enable_so_brcmf_config_wowl_pattern_fndecl_29198 brcmf_config_wowl_pattern fndecl 4 29198 NULL
156276 +enable_so_HFC_inw_nodebug_hfc_multi_29199 HFC_inw_nodebug hfc_multi 0 29199 NULL
156277 +enable_so_vcc_sendmsg_fndecl_29205 vcc_sendmsg fndecl 3 29205 NULL
156278 +enable_so_x25_parse_facilities_fndecl_29207 x25_parse_facilities fndecl 0 29207 NULL
156279 +enable_so_ftdi_elan_total_command_size_fndecl_29214 ftdi_elan_total_command_size fndecl 0 29214 NULL
156280 +enable_so_video_rbase_osd_info_29225 video_rbase osd_info 0 29225 NULL
156281 +enable_so_mpx_get_bt_entry_offset_bytes_fndecl_29230 mpx_get_bt_entry_offset_bytes fndecl 0-2 29230 NULL
156282 +enable_so_change_pte_range_fndecl_29232 change_pte_range fndecl 3 29232 NULL
156283 +enable_so_dvb_dmxdev_buffer_write_fndecl_29234 dvb_dmxdev_buffer_write fndecl 3-0 29234 NULL
156284 +enable_so_il4965_ucode_tx_stats_read_fndecl_29235 il4965_ucode_tx_stats_read fndecl 3 29235 NULL
156285 +enable_so_rq_pagesz_smb_rqst_29240 rq_pagesz smb_rqst 0 29240 NULL
156286 +enable_so_sb_dirband_start_hpfs_sb_info_29242 sb_dirband_start hpfs_sb_info 0 29242 NULL
156287 +enable_so_ubifs_recover_log_leb_fndecl_29244 ubifs_recover_log_leb fndecl 3 29244 NULL
156288 +enable_so_ptc_proc_write_fndecl_29247 ptc_proc_write fndecl 3 29247 NULL
156289 +enable_so_sg_pcopy_from_buffer_fndecl_29248 sg_pcopy_from_buffer fndecl 5-4 29248 NULL
156290 +enable_so_offset_rbd_obj_request_29253 offset rbd_obj_request 0 29253 NULL
156291 +enable_so_i_dir_acl_ext2_inode_29264 i_dir_acl ext2_inode 0 29264 NULL
156292 +enable_so_sisusb_lseek_fndecl_29268 sisusb_lseek fndecl 2 29268 NULL nohasharray
156293 +enable_so_maxlen_ctl_table_29268 maxlen ctl_table 0 29268 &enable_so_sisusb_lseek_fndecl_29268
156294 +enable_so_rtw_malloc2d_fndecl_29269 rtw_malloc2d fndecl 3-2-1 29269 NULL
156295 +enable_so_offs_replay_entry_29277 offs replay_entry 0 29277 NULL
156296 +enable_so_convert_dma_width_fndecl_29278 convert_dma_width fndecl 0 29278 NULL
156297 +enable_so_reg_shift_sccnxp_pdata_29283 reg_shift sccnxp_pdata 0 29283 NULL
156298 +enable_so_sh_last_alloc_nilfs_sufile_header_29285 sh_last_alloc nilfs_sufile_header 0 29285 NULL
156299 +enable_so_vmbus_open_fndecl_29289 vmbus_open fndecl 3-2 29289 NULL
156300 +enable_so_data_len_ceph_msg_header_29290 data_len ceph_msg_header 0 29290 NULL
156301 +enable_so_btmrvl_sdio_host_to_card_fndecl_29291 btmrvl_sdio_host_to_card fndecl 3 29291 NULL
156302 +enable_so_leb_start_ubi_device_29292 leb_start ubi_device 0 29292 NULL
156303 +enable_so_user_ptr_drm_i915_gem_userptr_29294 user_ptr drm_i915_gem_userptr 0 29294 NULL
156304 +enable_so_set_powered_fndecl_29298 set_powered fndecl 4 29298 NULL
156305 +enable_so_xfs_handle_to_dentry_fndecl_29300 xfs_handle_to_dentry fndecl 3 29300 NULL
156306 +enable_so_ramoops_init_prz_fndecl_29301 ramoops_init_prz fndecl 5 29301 NULL
156307 +enable_so_mb_find_extent_fndecl_29303 mb_find_extent fndecl 2 29303 NULL
156308 +enable_so_generic_file_llseek_fndecl_29304 generic_file_llseek fndecl 2 29304 NULL
156309 +enable_so_read_w5300_priv_29306 read w5300_priv 0 29306 NULL nohasharray
156310 +enable_so_tail_ivtv_dma_page_info_29306 tail ivtv_dma_page_info 0 29306 &enable_so_read_w5300_priv_29306 nohasharray
156311 +enable_so_rawv6_seticmpfilter_fndecl_29306 rawv6_seticmpfilter fndecl 5-0 29306 &enable_so_tail_ivtv_dma_page_info_29306
156312 +enable_so_vmw_fifo_reserve_fndecl_29310 vmw_fifo_reserve fndecl 2 29310 NULL
156313 +enable_so_soc_mbus_image_size_fndecl_29311 soc_mbus_image_size fndecl 0-3-2 29311 NULL
156314 +enable_so_ddp_make_gl_fndecl_29312 ddp_make_gl fndecl 1 29312 NULL
156315 +enable_so_fnic_reset_stats_write_fndecl_29314 fnic_reset_stats_write fndecl 3 29314 NULL
156316 +enable_so_num_msix_roce_vec_be_adapter_29319 num_msix_roce_vec be_adapter 0 29319 NULL
156317 +enable_so_ip_generic_getfrag_fndecl_29320 ip_generic_getfrag fndecl 4 29320 NULL
156318 +enable_so_compat_do_arpt_set_ctl_fndecl_29323 compat_do_arpt_set_ctl fndecl 4 29323 NULL
156319 +enable_so_gather_pte_stats_fndecl_29329 gather_pte_stats fndecl 2 29329 NULL
156320 +enable_so_scan_map_fndecl_29331 scan_map fndecl 0 29331 NULL
156321 +enable_so_num_sge_ib_recv_wr_29333 num_sge ib_recv_wr 0 29333 NULL
156322 +enable_so_n_reg_rules_ieee80211_regdomain_29334 n_reg_rules ieee80211_regdomain 0 29334 NULL
156323 +enable_so_y_res_vbe_mode_ib_29340 y_res vbe_mode_ib 0 29340 NULL
156324 +enable_so_sctp_icmp_frag_needed_fndecl_29342 sctp_icmp_frag_needed fndecl 4 29342 NULL
156325 +enable_so_sgeCnt_aac_raw_io2_29350 sgeCnt aac_raw_io2 0 29350 NULL
156326 +enable_so_snd_pcm_kernel_ioctl_fndecl_29352 snd_pcm_kernel_ioctl fndecl 0 29352 NULL
156327 +enable_so_alloced_snd_array_29353 alloced snd_array 0 29353 NULL
156328 +enable_so_receive_copy_fndecl_29355 receive_copy fndecl 3 29355 NULL
156329 +enable_so_max_sgs_per_cmd_snic_fw_info_29357 max_sgs_per_cmd snic_fw_info 0 29357 NULL nohasharray
156330 +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
156331 +enable_so_fuse_get_req_fndecl_29358 fuse_get_req fndecl 2 29358 NULL nohasharray
156332 +enable_so_aat2870_reg_read_file_fndecl_29358 aat2870_reg_read_file fndecl 3 29358 &enable_so_fuse_get_req_fndecl_29358
156333 +enable_so_s_dat_entry_size_nilfs_super_block_29359 s_dat_entry_size nilfs_super_block 0 29359 NULL
156334 +enable_so_qt2160_read_block_fndecl_29365 qt2160_read_block fndecl 4 29365 NULL
156335 +enable_so_dummy_perform_transfer_fndecl_29372 dummy_perform_transfer fndecl 0-3 29372 NULL nohasharray
156336 +enable_so_tx_ring_size_pxa168_eth_private_29372 tx_ring_size pxa168_eth_private 0 29372 &enable_so_dummy_perform_transfer_fndecl_29372
156337 +enable_so_n_devices_whc_29373 n_devices whc 0 29373 NULL
156338 +enable_so_l2bsize_jfs_sb_info_29377 l2bsize jfs_sb_info 0 29377 NULL nohasharray
156339 +enable_so_count_e1000_rx_ring_29377 count e1000_rx_ring 0 29377 &enable_so_l2bsize_jfs_sb_info_29377
156340 +enable_so_extHint_fndecl_29378 extHint fndecl 2 29378 NULL
156341 +enable_so_next_cluster_fat_boot_fsinfo_29380 next_cluster fat_boot_fsinfo 0 29380 NULL
156342 +enable_so_ib_uverbs_unmarshall_recv_fndecl_29384 ib_uverbs_unmarshall_recv fndecl 5 29384 NULL
156343 +enable_so_reiserfs_get_unused_objectid_fndecl_29387 reiserfs_get_unused_objectid fndecl 0 29387 NULL
156344 +enable_so_write_buffer_size_vardecl_ldusb_c_29393 write_buffer_size vardecl_ldusb.c 0 29393 NULL nohasharray
156345 +enable_so_acpi_id_xenpf_pcpuinfo_29393 acpi_id xenpf_pcpuinfo 0 29393 &enable_so_write_buffer_size_vardecl_ldusb_c_29393
156346 +enable_so_tun_net_change_mtu_fndecl_29398 tun_net_change_mtu fndecl 2 29398 NULL
156347 +enable_so___alloc_bootmem_low_nopanic_fndecl_29400 __alloc_bootmem_low_nopanic fndecl 2-1-3 29400 NULL nohasharray
156348 +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
156349 +enable_so_octeon_alloc_recv_info_fndecl_29400 octeon_alloc_recv_info fndecl 1 29400 &enable_so_irq_set_msi_desc_off_fndecl_29400
156350 +enable_so_hpfs_map_sector_fndecl_29402 hpfs_map_sector fndecl 2 29402 NULL
156351 +enable_so_sisfb_mem_sis_video_info_29418 sisfb_mem sis_video_info 0 29418 NULL
156352 +enable_so_xop_data_nents_xcopy_op_29423 xop_data_nents xcopy_op 0 29423 NULL
156353 +enable_so_block_extra_size_snd_util_memhdr_29432 block_extra_size snd_util_memhdr 0 29432 NULL
156354 +enable_so_ocfs2_xattr_user_set_fndecl_29433 ocfs2_xattr_user_set fndecl 4 29433 NULL
156355 +enable_so_size_vm_struct_29439 size vm_struct 0 29439 NULL
156356 +enable_so_xfs_attr3_rmt_blocks_fndecl_29445 xfs_attr3_rmt_blocks fndecl 0-2 29445 NULL
156357 +enable_so_ep_in_dln2_dev_29451 ep_in dln2_dev 0 29451 NULL
156358 +enable_so_ebt_buf_add_fndecl_29456 ebt_buf_add fndecl 0-3 29456 NULL
156359 +enable_so_vol_cdev_llseek_fndecl_29458 vol_cdev_llseek fndecl 2 29458 NULL
156360 +enable_so_read_into_pages_cifs_readdata_29473 read_into_pages cifs_readdata 0 29473 NULL
156361 +enable_so_i2c_hid_set_or_send_report_fndecl_29475 i2c_hid_set_or_send_report fndecl 5 29475 NULL
156362 +enable_so_macvtap_put_user_fndecl_29476 macvtap_put_user fndecl 0 29476 NULL
156363 +enable_so_rts51x_read_status_fndecl_29477 rts51x_read_status fndecl 4 29477 NULL
156364 +enable_so_tx_header_len_pn533_frame_ops_29478 tx_header_len pn533_frame_ops 0 29478 NULL nohasharray
156365 +enable_so_sctp_setsockopt_maxseg_fndecl_29478 sctp_setsockopt_maxseg fndecl 3 29478 &enable_so_tx_header_len_pn533_frame_ops_29478 nohasharray
156366 +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
156367 +enable_so_ns_last_pseg_the_nilfs_29482 ns_last_pseg the_nilfs 0 29482 NULL
156368 +enable_so_qs_out_channels_hdsp_29483 qs_out_channels hdsp 0 29483 NULL
156369 +enable_so_befs_bt_read_node_fndecl_29490 befs_bt_read_node fndecl 4 29490 NULL nohasharray
156370 +enable_so_gpiochip_add_pin_range_fndecl_29490 gpiochip_add_pin_range fndecl 5 29490 &enable_so_befs_bt_read_node_fndecl_29490 nohasharray
156371 +enable_so_phys_out_snd_efw_29490 phys_out snd_efw 0 29490 &enable_so_gpiochip_add_pin_range_fndecl_29490
156372 +enable_so_pcpu_fc_alloc_fndecl_29497 pcpu_fc_alloc fndecl 3-2 29497 NULL
156373 +enable_so_cx23885_alsa_dma_init_fndecl_29499 cx23885_alsa_dma_init fndecl 2 29499 NULL
156374 +enable_so_raid_disks_mdu_array_info_s_29501 raid_disks mdu_array_info_s 0 29501 NULL
156375 +enable_so_type_length_fru_type_length_29503 type_length fru_type_length 0 29503 NULL
156376 +enable_so_nf_nat_sdp_media_fndecl_29508 nf_nat_sdp_media fndecl 9 29508 NULL
156377 +enable_so_ecryptfs_copy_filename_fndecl_29519 ecryptfs_copy_filename fndecl 4 29519 NULL
156378 +enable_so_nritems_btrfs_header_29521 nritems btrfs_header 0 29521 NULL
156379 +enable_so_unix_stream_connect_fndecl_29527 unix_stream_connect fndecl 3 29527 NULL
156380 +enable_so_h4_recv_buf_fndecl_29532 h4_recv_buf fndecl 4 29532 NULL nohasharray
156381 +enable_so_blocks_mmc_ioc_cmd_29532 blocks mmc_ioc_cmd 0 29532 &enable_so_h4_recv_buf_fndecl_29532
156382 +enable_so_forw_xfs_da3_icnode_hdr_29543 forw xfs_da3_icnode_hdr 0 29543 NULL
156383 +enable_so_ooboffs_mtd_oob_ops_29549 ooboffs mtd_oob_ops 0 29549 NULL
156384 +enable_so_local_max_bio_size_drbd_device_29550 local_max_bio_size drbd_device 0 29550 NULL
156385 +enable_so_zone_mem_ttm_mem_zone_29551 zone_mem ttm_mem_zone 0 29551 NULL
156386 +enable_so_ext4_xattr_trusted_set_fndecl_29556 ext4_xattr_trusted_set fndecl 4 29556 NULL nohasharray
156387 +enable_so_befs_read_lsymlink_fndecl_29556 befs_read_lsymlink fndecl 4 29556 &enable_so_ext4_xattr_trusted_set_fndecl_29556
156388 +enable_so_l2cap_chan_send_fndecl_29557 l2cap_chan_send fndecl 3 29557 NULL
156389 +enable_so_iwl_mvm_send_cmd_pdu_fndecl_29560 iwl_mvm_send_cmd_pdu fndecl 0 29560 NULL
156390 +enable_so_calculate_iosize_fndecl_29562 calculate_iosize fndecl 0-4-5-3-2-1 29562 NULL
156391 +enable_so_ieee80211_rx_bss_info_fndecl_29564 ieee80211_rx_bss_info fndecl 3 29564 NULL
156392 +enable_so_short_retry_limit_orinoco_private_29566 short_retry_limit orinoco_private 0 29566 NULL
156393 +enable_so_fs_devrw_entry_fndecl_29575 fs_devrw_entry fndecl 3 29575 NULL
156394 +enable_so_addr_drm_amdgpu_gem_userptr_29582 addr drm_amdgpu_gem_userptr 0 29582 NULL
156395 +enable_so_xstateregs_get_fndecl_29585 xstateregs_get fndecl 4 29585 NULL nohasharray
156396 +enable_so_valid_hooks_xt_table_29585 valid_hooks xt_table 0 29585 &enable_so_xstateregs_get_fndecl_29585
156397 +enable_so____mic_ioremap_fndecl_29587 ___mic_ioremap fndecl 3-2 29587 NULL
156398 +enable_so_num_rx_queues_e1000_adapter_29589 num_rx_queues e1000_adapter 0 29589 NULL
156399 +enable_so_max_requests_hptiop_hba_29596 max_requests hptiop_hba 0 29596 NULL
156400 +enable_so_ti_write_fndecl_29599 ti_write fndecl 4 29599 NULL
156401 +enable_so_btmrvl_download_cal_data_fndecl_29602 btmrvl_download_cal_data fndecl 3 29602 NULL
156402 +enable_so_read_b43_debugfs_fops_29607 read b43_debugfs_fops 0 29607 NULL nohasharray
156403 +enable_so_queue_size_snd_timer_user_29607 queue_size snd_timer_user 0 29607 &enable_so_read_b43_debugfs_fops_29607
156404 +enable_so_r1_sync_page_io_fndecl_29608 r1_sync_page_io fndecl 3-2 29608 NULL
156405 +enable_so_width_mxr_block_29613 width mxr_block 0 29613 NULL
156406 +enable_so_efd_group_ext4_free_data_29619 efd_group ext4_free_data 0 29619 NULL
156407 +enable_so_nr_cells_axp20x_dev_29628 nr_cells axp20x_dev 0 29628 NULL
156408 +enable_so_escd_size_escd_info_struc_29631 escd_size escd_info_struc 0 29631 NULL
156409 +enable_so_vbi_vlen_saa7134_dev_29640 vbi_vlen saa7134_dev 0 29640 NULL nohasharray
156410 +enable_so_nicvf_init_snd_queue_fndecl_29640 nicvf_init_snd_queue fndecl 3 29640 &enable_so_vbi_vlen_saa7134_dev_29640
156411 +enable_so_acpi_rs_set_resource_header_fndecl_29642 acpi_rs_set_resource_header fndecl 2 29642 NULL
156412 +enable_so_vb_bytes_per_frame_cx18_stream_29644 vb_bytes_per_frame cx18_stream 0 29644 NULL
156413 +enable_so_placement_offset_eth_fast_path_rx_cqe_29646 placement_offset eth_fast_path_rx_cqe 0 29646 NULL nohasharray
156414 +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
156415 +enable_so_num_counters_arpt_replace_29649 num_counters arpt_replace 0 29649 NULL nohasharray
156416 +enable_so_reserve_mc_sibling_devs_fndecl_29649 reserve_mc_sibling_devs fndecl 2-3 29649 &enable_so_num_counters_arpt_replace_29649
156417 +enable_so_count_vfio_pci_hot_reset_info_29655 count vfio_pci_hot_reset_info 0 29655 NULL
156418 +enable_so_rate_idx_ieee80211_rx_status_29659 rate_idx ieee80211_rx_status 0 29659 NULL nohasharray
156419 +enable_so_split_node_fndecl_29659 split_node fndecl 0 29659 &enable_so_rate_idx_ieee80211_rx_status_29659 nohasharray
156420 +enable_so_ls_num_lprocfs_stats_29659 ls_num lprocfs_stats 0 29659 &enable_so_split_node_fndecl_29659
156421 +enable_so_items_per_memblock_vxge_hw_mempool_29661 items_per_memblock vxge_hw_mempool 0 29661 NULL
156422 +enable_so_pci_cfg_space_size_fndecl_29666 pci_cfg_space_size fndecl 0 29666 NULL
156423 +enable_so___ipv4_tun_to_nlattr_fndecl_29678 __ipv4_tun_to_nlattr fndecl 4 29678 NULL nohasharray
156424 +enable_so_num_tagged_esp_lun_data_29678 num_tagged esp_lun_data 0 29678 &enable_so___ipv4_tun_to_nlattr_fndecl_29678
156425 +enable_so_rtsx_usb_seq_read_register_fndecl_29680 rtsx_usb_seq_read_register fndecl 3 29680 NULL nohasharray
156426 +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
156427 +enable_so_comps_used_isert_device_29683 comps_used isert_device 0 29683 NULL
156428 +enable_so_APP_len_camera_data_29686 APP_len camera_data 0 29686 NULL
156429 +enable_so_i40e_pci_sriov_configure_fndecl_29688 i40e_pci_sriov_configure fndecl 2 29688 NULL
156430 +enable_so_osd_req_write_sg_kern_fndecl_29697 osd_req_write_sg_kern fndecl 5 29697 NULL
156431 +enable_so_qlcnic_pci_sriov_enable_fndecl_29700 qlcnic_pci_sriov_enable fndecl 2 29700 NULL
156432 +enable_so_rds_message_alloc_fndecl_29702 rds_message_alloc fndecl 1 29702 NULL
156433 +enable_so_get_vm_area_caller_fndecl_29708 get_vm_area_caller fndecl 1 29708 NULL
156434 +enable_so_ocfs2_add_refcounted_extent_fndecl_29709 ocfs2_add_refcounted_extent fndecl 6-7-5 29709 NULL
156435 +enable_so_SGE_size__MPT_ADAPTER_29715 SGE_size _MPT_ADAPTER 0 29715 NULL
156436 +enable_so_first_sect_blkif_request_segment_29716 first_sect blkif_request_segment 0 29716 NULL
156437 +enable_so_ca91cx42_alloc_resource_fndecl_29717 ca91cx42_alloc_resource fndecl 2 29717 NULL
156438 +enable_so_ext4_itable_unused_count_fndecl_29718 ext4_itable_unused_count fndecl 0 29718 NULL
156439 +enable_so_maxframe_vardecl_n_hdlc_c_29719 maxframe vardecl_n_hdlc.c 0 29719 NULL
156440 +enable_so_qib_alloc_fast_reg_page_list_fndecl_29720 qib_alloc_fast_reg_page_list fndecl 2 29720 NULL
156441 +enable_so_bpp_aty128_crtc_29724 bpp aty128_crtc 0 29724 NULL nohasharray
156442 +enable_so_sel_write_disable_fndecl_29724 sel_write_disable fndecl 3 29724 &enable_so_bpp_aty128_crtc_29724
156443 +enable_so_Zlen_hfc_multi_29733 Zlen hfc_multi 0 29733 NULL nohasharray
156444 +enable_so_num_resources_mfd_cell_29733 num_resources mfd_cell 0 29733 &enable_so_Zlen_hfc_multi_29733
156445 +enable_so_target_pages_balloon_stats_29734 target_pages balloon_stats 0 29734 NULL
156446 +enable_so___ceph_tcp_sendpage_fndecl_29744 __ceph_tcp_sendpage fndecl 0-4 29744 NULL
156447 +enable_so_ba_param_set_wil_back_rx_29752 ba_param_set wil_back_rx 0 29752 NULL
156448 +enable_so_snd_pcm_lib_read_fndecl_29755 snd_pcm_lib_read fndecl 0 29755 NULL
156449 +enable_so_mmio_phys_ivhd_header_29762 mmio_phys ivhd_header 0 29762 NULL
156450 +enable_so_hotplug_pages_balloon_stats_29763 hotplug_pages balloon_stats 0 29763 NULL nohasharray
156451 +enable_so_ext4_write_begin_fndecl_29763 ext4_write_begin fndecl 4-3 29763 &enable_so_hotplug_pages_balloon_stats_29763
156452 +enable_so_physical_scrub_bio_29776 physical scrub_bio 0 29776 NULL
156453 +enable_so_ath6kl_wmi_ap_set_dtim_cmd_fndecl_29779 ath6kl_wmi_ap_set_dtim_cmd fndecl 2 29779 NULL
156454 +enable_so_eqp_bdi_bd_list_29780 eqp_bdi bd_list 0 29780 NULL
156455 +enable_so_io_min_queue_limits_29785 io_min queue_limits 0 29785 NULL
156456 +enable_so_serial_in_uart_port_29788 serial_in uart_port 0 29788 NULL
156457 +enable_so_first_index_zap_details_29790 first_index zap_details 0 29790 NULL
156458 +enable_so_supply_map_read_file_fndecl_29795 supply_map_read_file fndecl 3 29795 NULL
156459 +enable_so_nvkm_xtensa_create__fndecl_29796 nvkm_xtensa_create_ fndecl 8 29796 NULL
156460 +enable_so_blk_queue_max_discard_sectors_fndecl_29799 blk_queue_max_discard_sectors fndecl 2 29799 NULL
156461 +enable_so_ima_show_htable_violations_fndecl_29800 ima_show_htable_violations fndecl 3 29800 NULL
156462 +enable_so_cxgb3_get_cpl_reply_skb_fndecl_29807 cxgb3_get_cpl_reply_skb fndecl 2 29807 NULL nohasharray
156463 +enable_so_i_disksize_ext4_inode_info_29807 i_disksize ext4_inode_info 0 29807 &enable_so_cxgb3_get_cpl_reply_skb_fndecl_29807
156464 +enable_so_otp_read_fndecl_29809 otp_read fndecl 5-4-2 29809 NULL nohasharray
156465 +enable_so_vbe_state_size_uvesafb_par_29809 vbe_state_size uvesafb_par 0 29809 &enable_so_otp_read_fndecl_29809
156466 +enable_so_double_offset_smbios_cru64_info_29825 double_offset smbios_cru64_info 0 29825 NULL
156467 +enable_so_num_ports_ohci_hcd_29835 num_ports ohci_hcd 0 29835 NULL
156468 +enable_so_si_lasti_bfs_sb_info_29842 si_lasti bfs_sb_info 0 29842 NULL
156469 +enable_so_len_ethtool_dump_29843 len ethtool_dump 0 29843 NULL
156470 +enable_so_s_desc_per_block_ext3_sb_info_29846 s_desc_per_block ext3_sb_info 0 29846 NULL
156471 +enable_so_fq_alloc_node_fndecl_29850 fq_alloc_node fndecl 1 29850 NULL
156472 +enable_so_iommu_pgshift_gk20a_instmem_priv_29853 iommu_pgshift gk20a_instmem_priv 0 29853 NULL
156473 +enable_so_rr_len_rpcrdma_rep_29856 rr_len rpcrdma_rep 0 29856 NULL
156474 +enable_so_pvr2_buffer_get_count_fndecl_29860 pvr2_buffer_get_count fndecl 0 29860 NULL
156475 +enable_so_lower_vardecl_matroxfb_base_c_29861 lower vardecl_matroxfb_base.c 0 29861 NULL nohasharray
156476 +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
156477 +enable_so_bfs_add_entry_fndecl_29864 bfs_add_entry fndecl 4 29864 NULL
156478 +enable_so_alloc_vmap_area_fndecl_29865 alloc_vmap_area fndecl 1-2-3 29865 NULL
156479 +enable_so_xprt_complete_rqst_fndecl_29874 xprt_complete_rqst fndecl 2 29874 NULL
156480 +enable_so_fat_attach_fndecl_29877 fat_attach fndecl 2 29877 NULL
156481 +enable_so_nfs_idmap_lookup_id_fndecl_29879 nfs_idmap_lookup_id fndecl 2 29879 NULL
156482 +enable_so_current_size_ncp_server_29882 current_size ncp_server 0 29882 NULL
156483 +enable_so_parport_write_fndecl_29886 parport_write fndecl 0 29886 NULL
156484 +enable_so_length_ndis_80211_pmkid_29893 length ndis_80211_pmkid 0 29893 NULL
156485 +enable_so_selinux_inode_setxattr_fndecl_29895 selinux_inode_setxattr fndecl 4 29895 NULL
156486 +enable_so_residual_st_cmdstatus_29897 residual st_cmdstatus 0 29897 NULL
156487 +enable_so_ovl_fill_lower_fndecl_29899 ovl_fill_lower fndecl 3 29899 NULL
156488 +enable_so_be_pci_sriov_configure_fndecl_29900 be_pci_sriov_configure fndecl 2 29900 NULL
156489 +enable_so_edge_write_fndecl_29911 edge_write fndecl 4 29911 NULL
156490 +enable_so_io_error_dio_29914 io_error dio 0 29914 NULL
156491 +enable_so_fw_imem_len_rt_firmware_29916 fw_imem_len rt_firmware 0 29916 NULL nohasharray
156492 +enable_so_PageLength__CONFIG_PAGE_HEADER_29916 PageLength _CONFIG_PAGE_HEADER 0 29916 &enable_so_fw_imem_len_rt_firmware_29916
156493 +enable_so_size_ipt_replace_29921 size ipt_replace 0 29921 NULL
156494 +enable_so_sctp_getsockopt_maxseg_fndecl_29922 sctp_getsockopt_maxseg fndecl 2 29922 NULL
156495 +enable_so_nr_frags_skb_shared_info_29925 nr_frags skb_shared_info 0 29925 NULL
156496 +enable_so_mtt_base_mthca_mr_table_29926 mtt_base mthca_mr_table 0 29926 NULL
156497 +enable_so_sys_syslog_fndecl_29929 sys_syslog fndecl 3 29929 NULL
156498 +enable_so_fll_fref_wm8993_priv_29931 fll_fref wm8993_priv 0 29931 NULL
156499 +enable_so_read_pstore_info_29933 read pstore_info 0 29933 NULL
156500 +enable_so_pvr2_ioread_read_fndecl_29939 pvr2_ioread_read fndecl 3 29939 NULL
156501 +enable_so_titan_400l_800l_setup_fndecl_29940 titan_400l_800l_setup fndecl 4 29940 NULL
156502 +enable_so___iscsi_complete_pdu_fndecl_29941 __iscsi_complete_pdu fndecl 4 29941 NULL
156503 +enable_so_spi_sync_fndecl_29944 spi_sync fndecl 0 29944 NULL
156504 +enable_so_core_size_rx_module_29949 core_size_rx module 0 29949 NULL
156505 +enable_so_s_min_extra_isize_ext4_super_block_29952 s_min_extra_isize ext4_super_block 0 29952 NULL nohasharray
156506 +enable_so_rx_endpoint_acm_29952 rx_endpoint acm 0 29952 &enable_so_s_min_extra_isize_ext4_super_block_29952 nohasharray
156507 +enable_so_cciss_proc_write_fndecl_29952 cciss_proc_write fndecl 3 29952 &enable_so_rx_endpoint_acm_29952
156508 +enable_so_opts1_mask_rtl8169_private_29953 opts1_mask rtl8169_private 0 29953 NULL
156509 +enable_so_max_mlx5_core_srq_29956 max mlx5_core_srq 0 29956 NULL nohasharray
156510 +enable_so_state_count_Fsm_29956 state_count Fsm 0 29956 &enable_so_max_mlx5_core_srq_29956
156511 +enable_so_memconsole_length_vardecl_memconsole_c_29962 memconsole_length vardecl_memconsole.c 0 29962 NULL
156512 +enable_so_c_phys_ocfs2_write_cluster_desc_29971 c_phys ocfs2_write_cluster_desc 0 29971 NULL
156513 +enable_so_idef5upd_gru_control_block_extended_29974 idef5upd gru_control_block_extended 0 29974 NULL
156514 +enable_so_ds_in_channels_hdsp_29975 ds_in_channels hdsp 0 29975 NULL
156515 +enable_so_i_suballoc_loc_ocfs2_dinode_29986 i_suballoc_loc ocfs2_dinode 0 29986 NULL nohasharray
156516 +enable_so_ubi_leb_change_fndecl_29986 ubi_leb_change fndecl 4 29986 &enable_so_i_suballoc_loc_ocfs2_dinode_29986
156517 +enable_so_init_size_il4965_firmware_pieces_29990 init_size il4965_firmware_pieces 0 29990 NULL
156518 +enable_so_nvif_object_new_fndecl_29999 nvif_object_new fndecl 5 29999 NULL
156519 +enable_so_auth_mode_libipw_security_30001 auth_mode libipw_security 0 30001 NULL
156520 +enable_so_snd_pcm_lib_preallocate_pages1_fndecl_30002 snd_pcm_lib_preallocate_pages1 fndecl 2 30002 NULL
156521 +enable_so_btrfs_add_ordered_extent_compress_fndecl_30005 btrfs_add_ordered_extent_compress fndecl 4-2-5-3 30005 NULL
156522 +enable_so_msc_nfinalizers_lnet_msg_container_30006 msc_nfinalizers lnet_msg_container 0 30006 NULL
156523 +enable_so_obj_offset_ore_striping_info_30010 obj_offset ore_striping_info 0 30010 NULL nohasharray
156524 +enable_so___qlcnic_pci_sriov_enable_fndecl_30010 __qlcnic_pci_sriov_enable fndecl 2 30010 &enable_so_obj_offset_ore_striping_info_30010
156525 +enable_so_size_fstioc_write_30011 size fstioc_write 0 30011 NULL
156526 +enable_so_snd_rme9652_capture_copy_fndecl_30012 snd_rme9652_capture_copy fndecl 5 30012 NULL
156527 +enable_so_period_em28xx_audio_30017 period em28xx_audio 0 30017 NULL
156528 +enable_so_send_hole_fndecl_30019 send_hole fndecl 2 30019 NULL nohasharray
156529 +enable_so_read_file_spectral_count_fndecl_30019 read_file_spectral_count fndecl 3 30019 &enable_so_send_hole_fndecl_30019
156530 +enable_so_netlbl_catmap_setbit_fndecl_30024 netlbl_catmap_setbit fndecl 2 30024 NULL
156531 +enable_so_read_emulate_fndecl_30037 read_emulate fndecl 2-4 30037 NULL nohasharray
156532 +enable_so_max_wqes_mthca_limits_30037 max_wqes mthca_limits 0 30037 &enable_so_read_emulate_fndecl_30037
156533 +enable_so_xdr_set_scratch_buffer_fndecl_30045 xdr_set_scratch_buffer fndecl 3 30045 NULL
156534 +enable_so_ath6kl_listen_int_read_fndecl_30048 ath6kl_listen_int_read fndecl 3 30048 NULL
156535 +enable_so_max_header_proto_30054 max_header proto 0 30054 NULL
156536 +enable_so_sta_ht_capa_read_fndecl_30061 sta_ht_capa_read fndecl 3 30061 NULL
156537 +enable_so_io_throttle_count_vnic_fc_config_30064 io_throttle_count vnic_fc_config 0 30064 NULL
156538 +enable_so_add_swap_extent_fndecl_30065 add_swap_extent fndecl 2-4-3 30065 NULL nohasharray
156539 +enable_so_get_dump_page_fndecl_30065 get_dump_page fndecl 1 30065 &enable_so_add_swap_extent_fndecl_30065
156540 +enable_so_psb_gem_create_fndecl_30068 psb_gem_create fndecl 3 30068 NULL nohasharray
156541 +enable_so_dio_read_error_fndecl_30068 dio_read_error fndecl 4-5 30068 &enable_so_psb_gem_create_fndecl_30068
156542 +enable_so_to_ifla_vlan_qos_mapping_30070 to ifla_vlan_qos_mapping 0 30070 NULL
156543 +enable_so_SenseLen__ErrorInfo_struct_30071 SenseLen _ErrorInfo_struct 0 30071 NULL nohasharray
156544 +enable_so_SYSC_io_setup_fndecl_30071 SYSC_io_setup fndecl 1 30071 &enable_so_SenseLen__ErrorInfo_struct_30071
156545 +enable_so_mwifiex_send_tdls_data_frame_fndecl_30072 mwifiex_send_tdls_data_frame fndecl 7 30072 NULL
156546 +enable_so_wapi_ie_len_mwifiex_private_30073 wapi_ie_len mwifiex_private 0 30073 NULL
156547 +enable_so_cur_pos_kobil_private_30076 cur_pos kobil_private 0 30076 NULL
156548 +enable_so_ufx_alloc_urb_list_fndecl_30078 ufx_alloc_urb_list fndecl 3 30078 NULL
156549 +enable_so_num_pages_vmw_mob_30089 num_pages vmw_mob 0 30089 NULL
156550 +enable_so_ie_len_ieee80211_mgd_assoc_data_30093 ie_len ieee80211_mgd_assoc_data 0 30093 NULL nohasharray
156551 +enable_so_do_compat_pselect_fndecl_30093 do_compat_pselect fndecl 1 30093 &enable_so_ie_len_ieee80211_mgd_assoc_data_30093
156552 +enable_so_id_watchdog_device_30094 id watchdog_device 0 30094 NULL
156553 +enable_so_length_ehci_qtd_30102 length ehci_qtd 0 30102 NULL
156554 +enable_so_ecryptfs_decode_and_decrypt_filename_fndecl_30104 ecryptfs_decode_and_decrypt_filename fndecl 5 30104 NULL
156555 +enable_so_mmc_test_seq_write_perf_fndecl_30107 mmc_test_seq_write_perf fndecl 2 30107 NULL
156556 +enable_so_of_translate_address_fndecl_30111 of_translate_address fndecl 0 30111 NULL
156557 +enable_so_if_real_bytes_xfs_ifork_30126 if_real_bytes xfs_ifork 0 30126 NULL
156558 +enable_so_max_total_qng_asc_dvc_var_30137 max_total_qng asc_dvc_var 0 30137 NULL
156559 +enable_so_hdr_len_ieee80211_fast_tx_30143 hdr_len ieee80211_fast_tx 0 30143 NULL
156560 +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
156561 +enable_so_hpfs_remove_fnode_fndecl_30151 hpfs_remove_fnode fndecl 2 30151 &enable_so_i915_gem_object_create_stolen_for_preallocated_fndecl_30151
156562 +enable_so_num_tx_queues_ixgbevf_adapter_30155 num_tx_queues ixgbevf_adapter 0 30155 NULL
156563 +enable_so_scif_get_node_ids_fndecl_30156 scif_get_node_ids fndecl 0 30156 NULL
156564 +enable_so_buffer_len_fnic_dbgfs_30157 buffer_len fnic_dbgfs 0 30157 NULL
156565 +enable_so_iobuf_dma_us_data_30159 iobuf_dma us_data 0 30159 NULL
156566 +enable_so_mmio_base_drm_mga_private_30161 mmio_base drm_mga_private 0 30161 NULL
156567 +enable_so_tool_peer_mask_read_fndecl_30164 tool_peer_mask_read fndecl 3 30164 NULL
156568 +enable_so_bulk_in_size_hdpvr_device_30165 bulk_in_size hdpvr_device 0 30165 NULL nohasharray
156569 +enable_so_pci_wch_ch38x_setup_fndecl_30165 pci_wch_ch38x_setup fndecl 4 30165 &enable_so_bulk_in_size_hdpvr_device_30165
156570 +enable_so_rx_buf_sz_epic_private_30166 rx_buf_sz epic_private 0 30166 NULL nohasharray
156571 +enable_so_send_section_size_netvsc_device_30166 send_section_size netvsc_device 0 30166 &enable_so_rx_buf_sz_epic_private_30166
156572 +enable_so_tailsz_cifs_writedata_30171 tailsz cifs_writedata 0 30171 NULL
156573 +enable_so_rx_ring_size_pxa168_eth_private_30172 rx_ring_size pxa168_eth_private 0 30172 NULL
156574 +enable_so_bnx2x_set_gro_params_fndecl_30177 bnx2x_set_gro_params fndecl 3 30177 NULL
156575 +enable_so_prism2_ap_get_sta_qual_fndecl_30181 prism2_ap_get_sta_qual fndecl 0 30181 NULL
156576 +enable_so_in_ep_num_rtl_hal_usbint_cfg_30182 in_ep_num rtl_hal_usbint_cfg 0 30182 NULL
156577 +enable_so_SyS_io_setup_fndecl_30191 SyS_io_setup fndecl 1 30191 NULL
156578 +enable_so_event_phy_transmit_error_read_fndecl_30196 event_phy_transmit_error_read fndecl 3 30196 NULL
156579 +enable_so_alloc_pci_root_info_fndecl_30198 alloc_pci_root_info fndecl 2-1 30198 NULL
156580 +enable_so_buf_len_uvesafb_task_30200 buf_len uvesafb_task 0 30200 NULL
156581 +enable_so_pos_drm_i915_error_state_buf_30203 pos drm_i915_error_state_buf 0 30203 NULL
156582 +enable_so_pipe_size_renesas_usbhs_driver_param_30206 pipe_size renesas_usbhs_driver_param 0 30206 NULL
156583 +enable_so_len_header_msg_30207 len header_msg 0 30207 NULL
156584 +enable_so_hrp_nthrs_ptlrpc_hr_partition_30214 hrp_nthrs ptlrpc_hr_partition 0 30214 NULL
156585 +enable_so_xennet_make_one_txreq_fndecl_30215 xennet_make_one_txreq fndecl 4-5 30215 NULL
156586 +enable_so_minor_rbd_device_30216 minor rbd_device 0 30216 NULL
156587 +enable_so_bm_bits_bm_xfer_ctx_30221 bm_bits bm_xfer_ctx 0 30221 NULL nohasharray
156588 +enable_so_rd_offset_nfsd4_read_30221 rd_offset nfsd4_read 0 30221 &enable_so_bm_bits_bm_xfer_ctx_30221
156589 +enable_so_le_mtu_hci_dev_30225 le_mtu hci_dev 0 30225 NULL
156590 +enable_so_tegra_spi_start_rx_dma_fndecl_30226 tegra_spi_start_rx_dma fndecl 0-2 30226 NULL
156591 +enable_so_major_vardecl_pt_c_30228 major vardecl_pt.c 0 30228 NULL
156592 +enable_so_vtag_atl1e_recv_ret_status_30229 vtag atl1e_recv_ret_status 0 30229 NULL
156593 +enable_so___add_keyed_refs_fndecl_30230 __add_keyed_refs fndecl 3 30230 NULL
156594 +enable_so_tcp_header_len_tcp_sock_30231 tcp_header_len tcp_sock 0 30231 NULL
156595 +enable_so__brk_start_vardecl_setup_c_30236 _brk_start vardecl_setup.c 0 30236 NULL nohasharray
156596 +enable_so_SetLineNumber_fndecl_30236 SetLineNumber fndecl 0 30236 &enable_so__brk_start_vardecl_setup_c_30236
156597 +enable_so_size_xen_memory_region_30239 size xen_memory_region 0 30239 NULL
156598 +enable_so_reiserfs_breada_fndecl_30247 reiserfs_breada fndecl 3-2 30247 NULL
156599 +enable_so_ndisc_fill_redirect_hdr_option_fndecl_30248 ndisc_fill_redirect_hdr_option fndecl 3 30248 NULL
156600 +enable_so_id_kern_ipc_perm_30249 id kern_ipc_perm 0 30249 NULL
156601 +enable_so_compat_sys_truncate_fndecl_30258 compat_sys_truncate fndecl 2 30258 NULL
156602 +enable_so_max_host_qng_adv_dvc_var_30264 max_host_qng adv_dvc_var 0 30264 NULL
156603 +enable_so_tda10048_writeregbulk_fndecl_30265 tda10048_writeregbulk fndecl 4 30265 NULL
156604 +enable_so_sys_sendfile_fndecl_30267 sys_sendfile fndecl 4 30267 NULL nohasharray
156605 +enable_so_rawsock_recvmsg_fndecl_30267 rawsock_recvmsg fndecl 3 30267 &enable_so_sys_sendfile_fndecl_30267
156606 +enable_so_tda665x_write_fndecl_30269 tda665x_write fndecl 3 30269 NULL
156607 +enable_so_minor_count_vardecl_30272 minor_count vardecl 0 30272 NULL
156608 +enable_so_blockshift_alauda_media_info_30287 blockshift alauda_media_info 0 30287 NULL
156609 +enable_so_xfs_collapse_file_space_fndecl_30288 xfs_collapse_file_space fndecl 2-3 30288 NULL
156610 +enable_so_blk_queue_dma_drain_fndecl_30290 blk_queue_dma_drain fndecl 4 30290 NULL
156611 +enable_so_tcp_send_mss_fndecl_30292 tcp_send_mss fndecl 0 30292 NULL
156612 +enable_so_t_tinc_hdr_rem_rds_tcp_connection_30296 t_tinc_hdr_rem rds_tcp_connection 0 30296 NULL nohasharray
156613 +enable_so_count_argc_fndecl_30296 count_argc fndecl 0 30296 &enable_so_t_tinc_hdr_rem_rds_tcp_connection_30296
156614 +enable_so_wlength_at76_rx_buffer_30301 wlength at76_rx_buffer 0 30301 NULL
156615 +enable_so_logi_dj_raw_event_fndecl_30304 logi_dj_raw_event fndecl 4 30304 NULL
156616 +enable_so_m_ts_msg_msg_30307 m_ts msg_msg 0 30307 NULL
156617 +enable_so_alloc_alien_cache_fndecl_30308 alloc_alien_cache fndecl 2 30308 NULL
156618 +enable_so_tracing_buffers_read_fndecl_30311 tracing_buffers_read fndecl 3 30311 NULL
156619 +enable_so_ki_pos_kiocb_30312 ki_pos kiocb 0 30312 NULL
156620 +enable_so_wbuf_pagesize_jffs2_sb_info_30318 wbuf_pagesize jffs2_sb_info 0 30318 NULL
156621 +enable_so_nfakewriters_vardecl_rcutorture_c_30320 nfakewriters vardecl_rcutorture.c 0 30320 NULL
156622 +enable_so_kvm_write_guest_cached_fndecl_30321 kvm_write_guest_cached fndecl 4 30321 NULL
156623 +enable_so_avc_stream_set_format_fndecl_30322 avc_stream_set_format fndecl 5 30322 NULL
156624 +enable_so_name_len_discovery_t_30331 name_len discovery_t 0 30331 NULL
156625 +enable_so_tc90522_master_xfer_fndecl_30332 tc90522_master_xfer fndecl 3 30332 NULL
156626 +enable_so_src_bytes_x86_instruction_info_30334 src_bytes x86_instruction_info 0 30334 NULL
156627 +enable_so_rs_move_legacy_other_fndecl_30344 rs_move_legacy_other fndecl 5 30344 NULL
156628 +enable_so_acpi_os_map_memory_fndecl_30346 acpi_os_map_memory fndecl 2-1 30346 NULL
156629 +enable_so_overflow_maj_vardecl_ucm_c_30347 overflow_maj vardecl_ucm.c 0 30347 NULL
156630 +enable_so_p_ssize_f_uac2_opts_30353 p_ssize f_uac2_opts 0 30353 NULL
156631 +enable_so_max_rq_sg_mlx4_caps_30357 max_rq_sg mlx4_caps 0 30357 NULL
156632 +enable_so_bt_datalen_bcm5974_config_30374 bt_datalen bcm5974_config 0 30374 NULL nohasharray
156633 +enable_so_len_snd_seq_ev_ext_30374 len snd_seq_ev_ext 0 30374 &enable_so_bt_datalen_bcm5974_config_30374
156634 +enable_so_ubifs_pad_fndecl_30375 ubifs_pad fndecl 3 30375 NULL
156635 +enable_so_max_r2t_iscsi_session_30376 max_r2t iscsi_session 0 30376 NULL
156636 +enable_so_pnp_add_bus_resource_fndecl_30381 pnp_add_bus_resource fndecl 3-2 30381 NULL
156637 +enable_so_qnx4_iget_fndecl_30383 qnx4_iget fndecl 2 30383 NULL
156638 +enable_so_get_callback_via_fndecl_30387 get_callback_via fndecl 0 30387 NULL
156639 +enable_so_ioat2_alloc_ring_fndecl_30391 ioat2_alloc_ring fndecl 2 30391 NULL
156640 +enable_so_ssid_len_cfg80211_ssid_30393 ssid_len cfg80211_ssid 0 30393 NULL
156641 +enable_so_datalen_port100_frame_30394 datalen port100_frame 0 30394 NULL
156642 +enable_so_ocfs2_dx_entry_list_insert_fndecl_30397 ocfs2_dx_entry_list_insert fndecl 3 30397 NULL
156643 +enable_so_blkdev_write_end_fndecl_30399 blkdev_write_end fndecl 5 30399 NULL
156644 +enable_so_sq_overhead_fndecl_30401 sq_overhead fndecl 0 30401 NULL
156645 +enable_so_dbgp_control_msg_fndecl_30405 dbgp_control_msg fndecl 7 30405 NULL
156646 +enable_so_il_dbgfs_rx_queue_read_fndecl_30406 il_dbgfs_rx_queue_read fndecl 3 30406 NULL
156647 +enable_so_hwm_tx_init_fndecl_30411 hwm_tx_init fndecl 4 30411 NULL
156648 +enable_so_get_pages_vram_fndecl_30416 get_pages_vram fndecl 2 30416 NULL
156649 +enable_so_decode_opaque_fixed_fndecl_30421 decode_opaque_fixed fndecl 3 30421 NULL
156650 +enable_so_width_bttv_fh_30432 width bttv_fh 0 30432 NULL
156651 +enable_so_bytes_committed_mlx5_pagefault_30434 bytes_committed mlx5_pagefault 0 30434 NULL
156652 +enable_so_of_irq_count_fndecl_30438 of_irq_count fndecl 0 30438 NULL
156653 +enable_so_ubifs_write_node_fndecl_30441 ubifs_write_node fndecl 3-5 30441 NULL
156654 +enable_so_count_snd_kcontrol_new_30443 count snd_kcontrol_new 0 30443 NULL
156655 +enable_so_pmd_entry_mm_walk_30448 pmd_entry mm_walk 0 30448 NULL
156656 +enable_so_comedi_alloc_spriv_fndecl_30449 comedi_alloc_spriv fndecl 2 30449 NULL
156657 +enable_so_num_channels_iio_dev_30451 num_channels iio_dev 0 30451 NULL
156658 +enable_so___add_zone_fndecl_30452 __add_zone fndecl 2 30452 NULL
156659 +enable_so_xfs_map_direct_fndecl_30459 xfs_map_direct fndecl 4 30459 NULL
156660 +enable_so_mmap_region_fndecl_30460 mmap_region fndecl 0-2-3-5 30460 NULL
156661 +enable_so_ib_ipath_max_qp_wrs_vardecl_30465 ib_ipath_max_qp_wrs vardecl 0 30465 NULL
156662 +enable_so_grow_pgdat_span_fndecl_30467 grow_pgdat_span fndecl 2 30467 NULL
156663 +enable_so_height_drm_qxl_alloc_surf_30468 height drm_qxl_alloc_surf 0 30468 NULL
156664 +enable_so___qp_memcpy_to_queue_fndecl_30472 __qp_memcpy_to_queue fndecl 4-2 30472 NULL
156665 +enable_so_nouveau_gem_new_fndecl_30476 nouveau_gem_new fndecl 2 30476 NULL nohasharray
156666 +enable_so_packet_size_ncp_server_30476 packet_size ncp_server 0 30476 &enable_so_nouveau_gem_new_fndecl_30476
156667 +enable_so_produce_size_vmci_qp_alloc_info_30480 produce_size vmci_qp_alloc_info 0 30480 NULL nohasharray
156668 +enable_so_btrfs_sync_file_fndecl_30480 btrfs_sync_file fndecl 2-3 30480 &enable_so_produce_size_vmci_qp_alloc_info_30480
156669 +enable_so_xfs_inode_alloc_fndecl_30482 xfs_inode_alloc fndecl 2 30482 NULL
156670 +enable_so_xdr_buf_trim_fndecl_30485 xdr_buf_trim fndecl 2 30485 NULL
156671 +enable_so_SyS_io_getevents_fndecl_30487 SyS_io_getevents fndecl 3 30487 NULL
156672 +enable_so_data_len_ib_ucm_sidr_rep_30488 data_len ib_ucm_sidr_rep 0 30488 NULL
156673 +enable_so_rd_build_prot_space_fndecl_30490 rd_build_prot_space fndecl 3-2 30490 NULL
156674 +enable_so_vhost_add_used_n_fndecl_30491 vhost_add_used_n fndecl 3 30491 NULL
156675 +enable_so_height_s2255_vc_30492 height s2255_vc 0 30492 NULL
156676 +enable_so_kvm_read_guest_atomic_fndecl_30494 kvm_read_guest_atomic fndecl 2-4 30494 NULL
156677 +enable_so_nfcwilink_send_bts_cmd_fndecl_30497 nfcwilink_send_bts_cmd fndecl 3 30497 NULL
156678 +enable_so_tolen_nfs3_linkargs_30505 tolen nfs3_linkargs 0 30505 NULL
156679 +enable_so___blkdev_issue_discard_async_fndecl_30509 __blkdev_issue_discard_async fndecl 2-3 30509 NULL
156680 +enable_so_rocker_group_l2_fan_out_fndecl_30512 rocker_group_l2_fan_out fndecl 4 30512 NULL
156681 +enable_so_ip_list_hash_size_vardecl_xt_recent_c_30522 ip_list_hash_size vardecl_xt_recent.c 0 30522 NULL
156682 +enable_so_buf_start_lo_rx_buf_desc_30523 buf_start_lo rx_buf_desc 0 30523 NULL
156683 +enable_so_ttm_dma_page_pool_free_fndecl_30527 ttm_dma_page_pool_free fndecl 2 30527 NULL
156684 +enable_so_nvme_submit_sync_cmd_fndecl_30530 nvme_submit_sync_cmd fndecl 4 30530 NULL
156685 +enable_so_send_command_fndecl_30531 send_command fndecl 4 30531 NULL
156686 +enable_so_InitiatorRecvDataSegmentLength_iscsi_conn_ops_30535 InitiatorRecvDataSegmentLength iscsi_conn_ops 0 30535 NULL
156687 +enable_so_len_nfsd_readlinkres_30541 len nfsd_readlinkres 0 30541 NULL
156688 +enable_so_xen_blkif_max_segments_vardecl_xen_blkfront_c_30543 xen_blkif_max_segments vardecl_xen-blkfront.c 0 30543 NULL
156689 +enable_so_pstore_compress_fndecl_30549 pstore_compress fndecl 3-4 30549 NULL
156690 +enable_so_nfcid_len_pn533_target_type_a_30554 nfcid_len pn533_target_type_a 0 30554 NULL
156691 +enable_so_left_vardecl_matroxfb_base_c_30557 left vardecl_matroxfb_base.c 0 30557 NULL
156692 +enable_so_min_size_rhashtable_params_30562 min_size rhashtable_params 0 30562 NULL
156693 +enable_so_wMaxCommand_wdm_device_30565 wMaxCommand wdm_device 0 30565 NULL
156694 +enable_so_entries_usb_sg_request_30570 entries usb_sg_request 0 30570 NULL
156695 +enable_so_snd_pcm_oss_write1_fndecl_30571 snd_pcm_oss_write1 fndecl 3 30571 NULL
156696 +enable_so_s_iblkno_ufs_sb_private_info_30572 s_iblkno ufs_sb_private_info 0 30572 NULL nohasharray
156697 +enable_so_wiidebug_drm_write_fndecl_30572 wiidebug_drm_write fndecl 3 30572 &enable_so_s_iblkno_ufs_sb_private_info_30572 nohasharray
156698 +enable_so_key_len_ubifs_info_30572 key_len ubifs_info 0 30572 &enable_so_wiidebug_drm_write_fndecl_30572
156699 +enable_so_udf_get_pblock_virt20_fndecl_30574 udf_get_pblock_virt20 fndecl 4 30574 NULL
156700 +enable_so_pio_ide_pio_info_30575 pio ide_pio_info 0 30575 NULL nohasharray
156701 +enable_so_mid_get_vbt_data_r0_fndecl_30575 mid_get_vbt_data_r0 fndecl 2 30575 &enable_so_pio_ide_pio_info_30575
156702 +enable_so_userptr_amdgpu_ttm_tt_30577 userptr amdgpu_ttm_tt 0 30577 NULL
156703 +enable_so_fuse_conn_max_background_read_fndecl_30580 fuse_conn_max_background_read fndecl 3 30580 NULL
156704 +enable_so_delta_stack_mm_struct_30582 delta_stack mm_struct 0 30582 NULL nohasharray
156705 +enable_so_ida_get_new_above_fndecl_30582 ida_get_new_above fndecl 0 30582 &enable_so_delta_stack_mm_struct_30582
156706 +enable_so_max_intr_slots_myri10ge_priv_30588 max_intr_slots myri10ge_priv 0 30588 NULL
156707 +enable_so_group_ext4_new_group_data_30590 group ext4_new_group_data 0 30590 NULL nohasharray
156708 +enable_so_rsize_cifs_sb_info_30590 rsize cifs_sb_info 0 30590 &enable_so_group_ext4_new_group_data_30590
156709 +enable_so_read_edid_block_fndecl_30591 read_edid_block fndecl 4 30591 NULL
156710 +enable_so_readsize_acm_30592 readsize acm 0 30592 NULL nohasharray
156711 +enable_so_size_drm_savage_cmdbuf_30592 size drm_savage_cmdbuf 0 30592 &enable_so_readsize_acm_30592
156712 +enable_so_get_scq_fndecl_30594 get_scq fndecl 2 30594 NULL
156713 +enable_so___ipath_get_user_pages_fndecl_30595 __ipath_get_user_pages fndecl 1 30595 NULL
156714 +enable_so_tifm_alloc_adapter_fndecl_30596 tifm_alloc_adapter fndecl 1 30596 NULL
156715 +enable_so_sctp_addto_chunk_fndecl_30597 sctp_addto_chunk fndecl 2 30597 NULL
156716 +enable_so_ext4_collapse_range_fndecl_30598 ext4_collapse_range fndecl 2-3 30598 NULL
156717 +enable_so_offset_drm_i915_gem_pread_30601 offset drm_i915_gem_pread 0 30601 NULL
156718 +enable_so_add_ino_fndecl_30603 add_ino fndecl 4-2 30603 NULL
156719 +enable_so_rx_win_size_mwifiex_add_ba_param_30610 rx_win_size mwifiex_add_ba_param 0 30610 NULL
156720 +enable_so_total_data_placed_lpfc_wcqe_complete_30612 total_data_placed lpfc_wcqe_complete 0 30612 NULL nohasharray
156721 +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
156722 +enable_so_ieee802_11_parse_elems_crc_fndecl_30615 ieee802_11_parse_elems_crc fndecl 2 30615 NULL
156723 +enable_so_size_cmdQ_30622 size cmdQ 0 30622 NULL
156724 +enable_so_si2168_i2c_master_recv_unlocked_fndecl_30633 si2168_i2c_master_recv_unlocked fndecl 3 30633 NULL
156725 +enable_so_lprocfs_wr_atomic_fndecl_30643 lprocfs_wr_atomic fndecl 3 30643 NULL
156726 +enable_so_catc_ctrl_async_fndecl_30648 catc_ctrl_async fndecl 7 30648 NULL
156727 +enable_so_drbd_md_sync_page_io_fndecl_30651 drbd_md_sync_page_io fndecl 3 30651 NULL
156728 +enable_so_size_vmcore_30652 size vmcore 0 30652 NULL
156729 +enable_so_start_numa_memblk_30656 start numa_memblk 0 30656 NULL nohasharray
156730 +enable_so_shrink_pgdat_span_fndecl_30656 shrink_pgdat_span fndecl 3-2 30656 &enable_so_start_numa_memblk_30656 nohasharray
156731 +enable_so_TargetRecvDataSegmentLength_iscsi_conn_ops_30656 TargetRecvDataSegmentLength iscsi_conn_ops 0 30656 &enable_so_shrink_pgdat_span_fndecl_30656
156732 +enable_so_ci_port_test_write_fndecl_30657 ci_port_test_write fndecl 3 30657 NULL
156733 +enable_so_ext4_mb_new_blocks_fndecl_30662 ext4_mb_new_blocks fndecl 0 30662 NULL
156734 +enable_so_tun_put_user_fndecl_30676 tun_put_user fndecl 0 30676 NULL
156735 +enable_so_max_count_pvr2_buffer_30678 max_count pvr2_buffer 0 30678 NULL
156736 +enable_so_nvme_cmd_size_fndecl_30679 nvme_cmd_size fndecl 0 30679 NULL
156737 +enable_so_log_num_srqs_mlx4_init_hca_param_30681 log_num_srqs mlx4_init_hca_param 0 30681 NULL
156738 +enable_so_ramsize_brcmf_chip_30687 ramsize brcmf_chip 0 30687 NULL nohasharray
156739 +enable_so_curr_queue_pairs_virtnet_info_30687 curr_queue_pairs virtnet_info 0 30687 &enable_so_ramsize_brcmf_chip_30687
156740 +enable_so_keybytes_gss_krb5_enctype_30694 keybytes gss_krb5_enctype 0 30694 NULL nohasharray
156741 +enable_so_xfrm_hash_alloc_fndecl_30694 xfrm_hash_alloc fndecl 1 30694 &enable_so_keybytes_gss_krb5_enctype_30694
156742 +enable_so_status_urb_30696 status urb 0 30696 NULL nohasharray
156743 +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
156744 +enable_so_hdsp_spdif_sample_rate_fndecl_30700 hdsp_spdif_sample_rate fndecl 0 30700 NULL
156745 +enable_so_bm_entry_read_fndecl_30707 bm_entry_read fndecl 3 30707 NULL
156746 +enable_so_sched_autogroup_write_fndecl_30715 sched_autogroup_write fndecl 3 30715 NULL
156747 +enable_so_numPhys_PVSCSIConfigPageController_30726 numPhys PVSCSIConfigPageController 0 30726 NULL
156748 +enable_so___alloc_preds_fndecl_30727 __alloc_preds fndecl 2 30727 NULL
156749 +enable_so_lbs_threshold_write_fndecl_30733 lbs_threshold_write fndecl 5 30733 NULL
156750 +enable_so_sock_recvmsg_fndecl_30735 sock_recvmsg fndecl 0 30735 NULL nohasharray
156751 +enable_so_num_descriptors_pmc_ctx_30735 num_descriptors pmc_ctx 0 30735 &enable_so_sock_recvmsg_fndecl_30735
156752 +enable_so_bop_seek_key_nilfs_bmap_operations_30741 bop_seek_key nilfs_bmap_operations 0 30741 NULL nohasharray
156753 +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
156754 +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
156755 +enable_so_iwl_dbgfs_fw_dbg_conf_read_fndecl_30753 iwl_dbgfs_fw_dbg_conf_read fndecl 3 30753 NULL
156756 +enable_so_command_setvloffset_fndecl_30761 command_setvloffset fndecl 0 30761 NULL nohasharray
156757 +enable_so_n_scan_channels_iwl_ucode_capabilities_30761 n_scan_channels iwl_ucode_capabilities 0 30761 &enable_so_command_setvloffset_fndecl_30761
156758 +enable_so_ext3_alloc_branch_fndecl_30765 ext3_alloc_branch fndecl 5 30765 NULL
156759 +enable_so_lp_write_fndecl_30772 lp_write fndecl 3 30772 NULL
156760 +enable_so_leb_size_ubifs_info_30775 leb_size ubifs_info 0 30775 NULL
156761 +enable_so_nzones_high_adfs_discrecord_30776 nzones_high adfs_discrecord 0 30776 NULL
156762 +enable_so_isoc_in_pipe_ttusb_30778 isoc_in_pipe ttusb 0 30778 NULL
156763 +enable_so_inj_readme_read_fndecl_30779 inj_readme_read fndecl 3 30779 NULL
156764 +enable_so_hdrlen_brcmf_pub_30788 hdrlen brcmf_pub 0 30788 NULL nohasharray
156765 +enable_so_fw_node_create_fndecl_30788 fw_node_create fndecl 2 30788 &enable_so_hdrlen_brcmf_pub_30788
156766 +enable_so_alloc_order_ioat2_dma_chan_30790 alloc_order ioat2_dma_chan 0 30790 NULL
156767 +enable_so_netup_write_i2c_fndecl_30793 netup_write_i2c fndecl 5 30793 NULL
156768 +enable_so_ipath_get_user_pages_fndecl_30794 ipath_get_user_pages fndecl 1 30794 NULL
156769 +enable_so_queue_depth_scsi_device_30796 queue_depth scsi_device 0 30796 NULL
156770 +enable_so_kobj_map_fndecl_30797 kobj_map fndecl 2-3 30797 NULL
156771 +enable_so_wr_sz_csio_q_30799 wr_sz csio_q 0 30799 NULL
156772 +enable_so_remove_one_fndecl_30800 remove_one fndecl 2 30800 NULL
156773 +enable_so_extra_mpdu_postfix_len_lib80211_crypto_ops_30803 extra_mpdu_postfix_len lib80211_crypto_ops 0 30803 NULL nohasharray
156774 +enable_so_fwlen_mpt_fw_xfer_30803 fwlen mpt_fw_xfer 0 30803 &enable_so_extra_mpdu_postfix_len_lib80211_crypto_ops_30803
156775 +enable_so_iwl_dbgfs_bf_params_read_fndecl_30805 iwl_dbgfs_bf_params_read fndecl 3 30805 NULL
156776 +enable_so_ResidualCnt_ErrorInfo_30806 ResidualCnt ErrorInfo 0 30806 NULL
156777 +enable_so_buf_dma_gtco_30808 buf_dma gtco 0 30808 NULL nohasharray
156778 +enable_so_sadb_key_bits_sadb_key_30808 sadb_key_bits sadb_key 0 30808 &enable_so_buf_dma_gtco_30808
156779 +enable_so_unmerge_ksm_pages_fndecl_30809 unmerge_ksm_pages fndecl 2 30809 NULL nohasharray
156780 +enable_so_il_dbgfs_missed_beacon_write_fndecl_30809 il_dbgfs_missed_beacon_write fndecl 3 30809 &enable_so_unmerge_ksm_pages_fndecl_30809
156781 +enable_so_si21_readregs_fndecl_30810 si21_readregs fndecl 4 30810 NULL nohasharray
156782 +enable_so_xfs_ialloc_read_agi_fndecl_30810 xfs_ialloc_read_agi fndecl 3 30810 &enable_so_si21_readregs_fndecl_30810
156783 +enable_so_totalram_sysinfo_30812 totalram sysinfo 0 30812 NULL
156784 +enable_so_num_mcg_mthca_profile_30814 num_mcg mthca_profile 0 30814 NULL
156785 +enable_so_audit_log_n_untrustedstring_fndecl_30815 audit_log_n_untrustedstring fndecl 3 30815 NULL
156786 +enable_so_orig_y_screen_info_30817 orig_y screen_info 0 30817 NULL
156787 +enable_so_shmem_write_begin_fndecl_30822 shmem_write_begin fndecl 3 30822 NULL
156788 +enable_so_report_count_hid_field_30826 report_count hid_field 0 30826 NULL
156789 +enable_so_s_root_blkno_ocfs2_super_block_30828 s_root_blkno ocfs2_super_block 0 30828 NULL
156790 +enable_so___load_segment_descriptor_fndecl_30833 __load_segment_descriptor fndecl 2-4 30833 NULL
156791 +enable_so_add_memory_fndecl_30836 add_memory fndecl 3-2 30836 NULL
156792 +enable_so_f2fs_read_data_pages_fndecl_30837 f2fs_read_data_pages fndecl 4 30837 NULL
156793 +enable_so_shadow_root_level_kvm_mmu_30842 shadow_root_level kvm_mmu 0 30842 NULL
156794 +enable_so_resp_size_virtio_gpu_vbuffer_30847 resp_size virtio_gpu_vbuffer 0 30847 NULL
156795 +enable_so_wm2200_set_fll_fndecl_30852 wm2200_set_fll fndecl 4-5 30852 NULL
156796 +enable_so_notify_offset_multiplier_virtio_pci_device_30853 notify_offset_multiplier virtio_pci_device 0 30853 NULL
156797 +enable_so_default_pvid_net_bridge_30856 default_pvid net_bridge 0 30856 NULL nohasharray
156798 +enable_so_count_acpi_object_list_30856 count acpi_object_list 0 30856 &enable_so_default_pvid_net_bridge_30856 nohasharray
156799 +enable_so_saa7164_buffer_alloc_user_fndecl_30856 saa7164_buffer_alloc_user fndecl 2 30856 &enable_so_count_acpi_object_list_30856
156800 +enable_so_lov_ost_pool_add_fndecl_30857 lov_ost_pool_add fndecl 3 30857 NULL
156801 +enable_so_spi_sh_send_fndecl_30862 spi_sh_send fndecl 0 30862 NULL
156802 +enable_so_al_size_4k_drbd_md_30864 al_size_4k drbd_md 0 30864 NULL
156803 +enable_so_width_cx2341x_handler_30869 width cx2341x_handler 0 30869 NULL nohasharray
156804 +enable_so_memory_size_hp100_private_30869 memory_size hp100_private 0 30869 &enable_so_width_cx2341x_handler_30869
156805 +enable_so_batadv_send_skb_push_fill_unicast_fndecl_30870 batadv_send_skb_push_fill_unicast fndecl 2 30870 NULL nohasharray
156806 +enable_so_snd_emu10k1_fx8010_read_fndecl_30870 snd_emu10k1_fx8010_read fndecl 5 30870 &enable_so_batadv_send_skb_push_fill_unicast_fndecl_30870
156807 +enable_so_do_sync_fndecl_30871 do_sync fndecl 1 30871 NULL
156808 +enable_so_sddr09_send_command_fndecl_30873 sddr09_send_command fndecl 5 30873 NULL nohasharray
156809 +enable_so_r_clusters_ocfs2_refcount_rec_30873 r_clusters ocfs2_refcount_rec 0 30873 &enable_so_sddr09_send_command_fndecl_30873
156810 +enable_so_current_page_mspro_block_data_30876 current_page mspro_block_data 0 30876 NULL
156811 +enable_so_vht_nss_ieee80211_rx_status_30879 vht_nss ieee80211_rx_status 0 30879 NULL
156812 +enable_so_dma_buf_sz_stmmac_priv_30880 dma_buf_sz stmmac_priv 0 30880 NULL
156813 +enable_so_eq_textcnt_max98088_priv_30885 eq_textcnt max98088_priv 0 30885 NULL
156814 +enable_so_ocfs2_xattr_get_rec_fndecl_30887 ocfs2_xattr_get_rec fndecl 0 30887 NULL nohasharray
156815 +enable_so_fifo_size_serial8250_config_30887 fifo_size serial8250_config 0 30887 &enable_so_ocfs2_xattr_get_rec_fndecl_30887 nohasharray
156816 +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
156817 +enable_so_queue_received_packet_fndecl_30890 queue_received_packet fndecl 5 30890 NULL
156818 +enable_so_at76_wait_completion_fndecl_30894 at76_wait_completion fndecl 0 30894 NULL
156819 +enable_so_ceph_copy_user_to_page_vector_fndecl_30896 ceph_copy_user_to_page_vector fndecl 3-4 30896 NULL
156820 +enable_so_compat_sys_keyctl_fndecl_30900 compat_sys_keyctl fndecl 4 30900 NULL
156821 +enable_so_host_addrlen_nfs4_mount_data_30905 host_addrlen nfs4_mount_data 0 30905 NULL
156822 +enable_so_word12_lpfc_mbx_read_config_30908 word12 lpfc_mbx_read_config 0 30908 NULL
156823 +enable_so_log_sq_bb_count_mlx4_ib_create_qp_30909 log_sq_bb_count mlx4_ib_create_qp 0 30909 NULL
156824 +enable_so_max_datagram_size_cdc_ncm_ctx_30918 max_datagram_size cdc_ncm_ctx 0 30918 NULL
156825 +enable_so___erst_read_from_storage_fndecl_30921 __erst_read_from_storage fndecl 0-2-1 30921 NULL
156826 +enable_so_rx_buffer_len_pch_gbe_adapter_30924 rx_buffer_len pch_gbe_adapter 0 30924 NULL nohasharray
156827 +enable_so_squashfs_export_iget_fndecl_30924 squashfs_export_iget fndecl 2 30924 &enable_so_rx_buffer_len_pch_gbe_adapter_30924
156828 +enable_so_cudlength_x25_calluserdata_30930 cudlength x25_calluserdata 0 30930 NULL
156829 +enable_so_cqe_size_mlx5_ib_resize_cq_30931 cqe_size mlx5_ib_resize_cq 0 30931 NULL
156830 +enable_so_cpci_hp_register_bus_fndecl_30935 cpci_hp_register_bus fndecl 2 30935 NULL
156831 +enable_so_id_virtio_console_control_30940 id virtio_console_control 0 30940 NULL
156832 +enable_so_dns_query_fndecl_30943 dns_query fndecl 3 30943 NULL
156833 +enable_so_cfg80211_tx_mlme_mgmt_fndecl_30944 cfg80211_tx_mlme_mgmt fndecl 3 30944 NULL nohasharray
156834 +enable_so_stride_mlx4_en_tx_ring_30944 stride mlx4_en_tx_ring 0 30944 &enable_so_cfg80211_tx_mlme_mgmt_fndecl_30944 nohasharray
156835 +enable_so_hwparams4_dwc3_hwparams_30944 hwparams4 dwc3_hwparams 0 30944 &enable_so_stride_mlx4_en_tx_ring_30944
156836 +enable_so_page_len_gssp_in_token_30948 page_len gssp_in_token 0 30948 NULL
156837 +enable_so_parse_uac2_sample_rate_range_fndecl_30949 parse_uac2_sample_rate_range fndecl 0 30949 NULL
156838 +enable_so_SYSC_ppoll_fndecl_30954 SYSC_ppoll fndecl 2 30954 NULL
156839 +enable_so_pvr2_stream_setup_fndecl_30955 pvr2_stream_setup fndecl 3 30955 NULL
156840 +enable_so_leaf_shift_right_fndecl_30957 leaf_shift_right fndecl 3 30957 NULL
156841 +enable_so_lowpan_control_write_fndecl_30960 lowpan_control_write fndecl 3 30960 NULL
156842 +enable_so___list_lru_count_one_fndecl_30962 __list_lru_count_one fndecl 0 30962 NULL
156843 +enable_so_ring_start__drm_i810_init_30964 ring_start _drm_i810_init 0 30964 NULL
156844 +enable_so_tool_mask_write_fndecl_30968 tool_mask_write fndecl 3 30968 NULL
156845 +enable_so_max_sdu_atm_trafprm_30969 max_sdu atm_trafprm 0 30969 NULL
156846 +enable_so_ieee80211_if_read_aid_fndecl_30970 ieee80211_if_read_aid fndecl 3 30970 NULL
156847 +enable_so_mt7601u_rx_skb_from_seg_fndecl_30971 mt7601u_rx_skb_from_seg fndecl 5 30971 NULL
156848 +enable_so_get_leaf_fndecl_30972 get_leaf fndecl 2 30972 NULL
156849 +enable_so_avail_out_z_stream_s_30974 avail_out z_stream_s 0 30974 NULL
156850 +enable_so__usb_write_async_fndecl_30976 _usb_write_async fndecl 4 30976 NULL nohasharray
156851 +enable_so_l2tp_ip_sendmsg_fndecl_30976 l2tp_ip_sendmsg fndecl 3 30976 &enable_so__usb_write_async_fndecl_30976
156852 +enable_so_tid_mwifiex_tx_ba_stream_tbl_30977 tid mwifiex_tx_ba_stream_tbl 0 30977 NULL
156853 +enable_so_ext4_mark_iloc_dirty_fndecl_30980 ext4_mark_iloc_dirty fndecl 0 30980 NULL
156854 +enable_so_offset_nfsd_readargs_30989 offset nfsd_readargs 0 30989 NULL
156855 +enable_so_offset_isofs_fid_30994 offset isofs_fid 0 30994 NULL
156856 +enable_so_vti6_change_mtu_fndecl_30995 vti6_change_mtu fndecl 2 30995 NULL
156857 +enable_so_s_victim_ino_logfs_super_30996 s_victim_ino logfs_super 0 30996 NULL
156858 +enable_so_l2cap_create_connless_pdu_fndecl_30997 l2cap_create_connless_pdu fndecl 3 30997 NULL
156859 +enable_so_tx_tx_prepared_descs_read_fndecl_30998 tx_tx_prepared_descs_read fndecl 3 30998 NULL
156860 +enable_so_lro_append_pkt_fndecl_31003 lro_append_pkt fndecl 4 31003 NULL
156861 +enable_so_btrfs_search_slot_fndecl_31011 btrfs_search_slot fndecl 0 31011 NULL
156862 +enable_so_max_order_mthca_buddy_31017 max_order mthca_buddy 0 31017 NULL
156863 +enable_so_hdpvr_read_fndecl_31018 hdpvr_read fndecl 3 31018 NULL
156864 +enable_so_ipoib_change_mtu_fndecl_31020 ipoib_change_mtu fndecl 2 31020 NULL
156865 +enable_so_DevSize_cfi_ident_31031 DevSize cfi_ident 0 31031 NULL
156866 +enable_so_tcf_csum_ipv4_icmp_fndecl_31033 tcf_csum_ipv4_icmp fndecl 3 31033 NULL
156867 +enable_so_ocfs2_clear_ext_refcount_fndecl_31035 ocfs2_clear_ext_refcount fndecl 4-3 31035 NULL nohasharray
156868 +enable_so_internal_depth_MPT3SAS_ADAPTER_31035 internal_depth MPT3SAS_ADAPTER 0 31035 &enable_so_ocfs2_clear_ext_refcount_fndecl_31035
156869 +enable_so_hfsplus_bnode_read_u16_fndecl_31037 hfsplus_bnode_read_u16 fndecl 0 31037 NULL nohasharray
156870 +enable_so_hisi_clk_init_fndecl_31037 hisi_clk_init fndecl 2 31037 &enable_so_hfsplus_bnode_read_u16_fndecl_31037
156871 +enable_so_krb5_nfold_fndecl_31038 krb5_nfold fndecl 3-1 31038 NULL
156872 +enable_so_migrate_misplaced_transhuge_page_fndecl_31041 migrate_misplaced_transhuge_page fndecl 5 31041 NULL
156873 +enable_so_qla82xx_pci_set_window_fndecl_31044 qla82xx_pci_set_window fndecl 0-2 31044 NULL
156874 +enable_so_dsp_registers_phys_echoaudio_31045 dsp_registers_phys echoaudio 0 31045 NULL
156875 +enable_so_ceph_sync_setxattr_fndecl_31053 ceph_sync_setxattr fndecl 4 31053 NULL
156876 +enable_so_iwl_dbgfs_stations_read_fndecl_31054 iwl_dbgfs_stations_read fndecl 3 31054 NULL nohasharray
156877 +enable_so_samsung_clk_alloc_reg_dump_fndecl_31054 samsung_clk_alloc_reg_dump fndecl 2 31054 &enable_so_iwl_dbgfs_stations_read_fndecl_31054
156878 +enable_so_t4_max_qp_depth_c4iw_hw_queue_31059 t4_max_qp_depth c4iw_hw_queue 0 31059 NULL nohasharray
156879 +enable_so_pci_sriov_get_totalvfs_fndecl_31059 pci_sriov_get_totalvfs fndecl 0 31059 &enable_so_t4_max_qp_depth_c4iw_hw_queue_31059
156880 +enable_so_drbd_bm_bits_fndecl_31061 drbd_bm_bits fndecl 0 31061 NULL
156881 +enable_so_si_lf_eblk_bfs_sb_info_31064 si_lf_eblk bfs_sb_info 0 31064 NULL
156882 +enable_so_hdr_offset_xfrm_type_31067 hdr_offset xfrm_type 0 31067 NULL
156883 +enable_so_le_max_key_size_write_fndecl_31068 le_max_key_size_write fndecl 3 31068 NULL
156884 +enable_so_bulk_in_endpointAddress_usb_serial_port_31069 bulk_in_endpointAddress usb_serial_port 0 31069 NULL
156885 +enable_so_segsize_musb_qh_31074 segsize musb_qh 0 31074 NULL
156886 +enable_so_brcmf_sdiod_recv_buf_fndecl_31083 brcmf_sdiod_recv_buf fndecl 3 31083 NULL
156887 +enable_so_get_pipes_num_fndecl_31084 get_pipes_num fndecl 0 31084 NULL
156888 +enable_so_ocfs2_orphan_for_truncate_fndecl_31085 ocfs2_orphan_for_truncate fndecl 4 31085 NULL
156889 +enable_so_nvme_trans_fmt_get_parm_header_fndecl_31087 nvme_trans_fmt_get_parm_header fndecl 2 31087 NULL
156890 +enable_so_DAC960_ControllerCount_vardecl_DAC960_c_31089 DAC960_ControllerCount vardecl_DAC960.c 0 31089 NULL
156891 +enable_so_max_fingers_rmi_data_31091 max_fingers rmi_data 0 31091 NULL
156892 +enable_so_num_crtc_vgastate_31093 num_crtc vgastate 0 31093 NULL
156893 +enable_so_screen_depth_vardecl_hyperv_fb_c_31095 screen_depth vardecl_hyperv_fb.c 0 31095 NULL nohasharray
156894 +enable_so_regmap_i2c_read_fndecl_31095 regmap_i2c_read fndecl 3-5 31095 &enable_so_screen_depth_vardecl_hyperv_fb_c_31095
156895 +enable_so_s_segsize_logfs_super_31101 s_segsize logfs_super 0 31101 NULL
156896 +enable_so_max3421_transfer_in_done_fndecl_31109 max3421_transfer_in_done fndecl 0 31109 NULL
156897 +enable_so_status_tulip_desc_t_31113 status tulip_desc_t 0 31113 NULL
156898 +enable_so_name_len_inotify_event_info_31116 name_len inotify_event_info 0 31116 NULL
156899 +enable_so_reiserfs_write_end_fndecl_31117 reiserfs_write_end fndecl 5-3 31117 NULL
156900 +enable_so_dbgfs_sram_len_iwl_priv_31119 dbgfs_sram_len iwl_priv 0 31119 NULL
156901 +enable_so_udf_UTF8toCS0_fndecl_31120 udf_UTF8toCS0 fndecl 0 31120 NULL
156902 +enable_so_dm_bm_read_lock_fndecl_31121 dm_bm_read_lock fndecl 2 31121 NULL
156903 +enable_so_amdgpu_afmt_acr_fndecl_31127 amdgpu_afmt_acr fndecl 1 31127 NULL nohasharray
156904 +enable_so_nr_chips_dsa_platform_data_31127 nr_chips dsa_platform_data 0 31127 &enable_so_amdgpu_afmt_acr_fndecl_31127
156905 +enable_so_uhci_result_isochronous_fndecl_31133 uhci_result_isochronous fndecl 0 31133 NULL nohasharray
156906 +enable_so_write_device_fndecl_31133 write_device fndecl 3 31133 &enable_so_uhci_result_isochronous_fndecl_31133
156907 +enable_so_virtqueue_add_outbuf_fndecl_31136 virtqueue_add_outbuf fndecl 3 31136 NULL
156908 +enable_so__AscCopyLramScsiDoneQ_fndecl_31137 _AscCopyLramScsiDoneQ fndecl 4 31137 NULL
156909 +enable_so_read_fndecl_31142 read fndecl 3 31142 NULL
156910 +enable_so_mwifiex_get_supported_rates_fndecl_31144 mwifiex_get_supported_rates fndecl 0 31144 NULL
156911 +enable_so_irttp_connect_indication_fndecl_31149 irttp_connect_indication fndecl 4-5 31149 NULL
156912 +enable_so_hpfs_count_dnodes_fndecl_31152 hpfs_count_dnodes fndecl 2 31152 NULL
156913 +enable_so_max_rx_ip_filters_efx_nic_type_31156 max_rx_ip_filters efx_nic_type 0 31156 NULL
156914 +enable_so_max_seg_size_tsap_cb_31158 max_seg_size tsap_cb 0 31158 NULL
156915 +enable_so_ocfs2_direct_IO_zero_extend_fndecl_31171 ocfs2_direct_IO_zero_extend fndecl 4 31171 NULL
156916 +enable_so_bm_realloc_pages_fndecl_31172 bm_realloc_pages fndecl 2 31172 NULL
156917 +enable_so_rcvbuf_size_bas_cardstate_31177 rcvbuf_size bas_cardstate 0 31177 NULL
156918 +enable_so_bRPipeBlockSize_usb_wa_descriptor_31178 bRPipeBlockSize usb_wa_descriptor 0 31178 NULL
156919 +enable_so_ffs_ep0_write_fndecl_31181 ffs_ep0_write fndecl 3 31181 NULL
156920 +enable_so_op_size_ost_pool_31182 op_size ost_pool 0 31182 NULL
156921 +enable_so_con_do_clear_unimap_fndecl_31185 con_do_clear_unimap fndecl 0 31185 NULL
156922 +enable_so_slhc_compress_fndecl_31190 slhc_compress fndecl 0-3 31190 NULL
156923 +enable_so_nf_nat_sip_expect_fndecl_31193 nf_nat_sip_expect fndecl 8 31193 NULL
156924 +enable_so_btrfs_drop_extents_fndecl_31196 btrfs_drop_extents fndecl 5-4 31196 NULL nohasharray
156925 +enable_so_alloc_huge_page_noerr_fndecl_31196 alloc_huge_page_noerr fndecl 2 31196 &enable_so_btrfs_drop_extents_fndecl_31196 nohasharray
156926 +enable_so_st_int_recv_fndecl_31196 st_int_recv fndecl 3 31196 &enable_so_alloc_huge_page_noerr_fndecl_31196
156927 +enable_so_agp_generic_alloc_user_fndecl_31213 agp_generic_alloc_user fndecl 1 31213 NULL nohasharray
156928 +enable_so_get_registers_fndecl_31213 get_registers fndecl 4 31213 &enable_so_agp_generic_alloc_user_fndecl_31213
156929 +enable_so_wr_ep_alauda_info_31218 wr_ep alauda_info 0 31218 NULL
156930 +enable_so_io_size_smbus_lpc_sch_info_31219 io_size_smbus lpc_sch_info 0 31219 NULL
156931 +enable_so_kmalloc_array_fndecl_31223 kmalloc_array fndecl 1-2 31223 NULL
156932 +enable_so_put_pfn_fndecl_31225 put_pfn fndecl 0 31225 NULL
156933 +enable_so_mcs_unwrap_mir_fndecl_31228 mcs_unwrap_mir fndecl 3 31228 NULL nohasharray
156934 +enable_so_iscsi_tcp_segment_done_fndecl_31228 iscsi_tcp_segment_done fndecl 4 31228 &enable_so_mcs_unwrap_mir_fndecl_31228 nohasharray
156935 +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
156936 +enable_so_kaweth_control_fndecl_31233 kaweth_control fndecl 8-2 31233 NULL
156937 +enable_so_len_ip_vs_iphdr_31235 len ip_vs_iphdr 0 31235 NULL
156938 +enable_so_length_wdm_device_31248 length wdm_device 0 31248 NULL
156939 +enable_so_SYSC_move_pages_fndecl_31249 SYSC_move_pages fndecl 2 31249 NULL
156940 +enable_so_virtio_gpu_dirty_update_fndecl_31253 virtio_gpu_dirty_update fndecl 4-3-5-6 31253 NULL
156941 +enable_so_source_id_acpi_hest_header_31256 source_id acpi_hest_header 0 31256 NULL
156942 +enable_so_rbdr_len_queue_set_31258 rbdr_len queue_set 0 31258 NULL
156943 +enable_so_orig_video_lines_screen_info_31267 orig_video_lines screen_info 0 31267 NULL nohasharray
156944 +enable_so_data_dma_hanwang_31267 data_dma hanwang 0 31267 &enable_so_orig_video_lines_screen_info_31267
156945 +enable_so_vm_iomap_memory_fndecl_31269 vm_iomap_memory fndecl 2 31269 NULL
156946 +enable_so_end_incl_vringh_range_31272 end_incl vringh_range 0 31272 NULL
156947 +enable_so_packet_length_rc_config_31278 packet_length rc_config 0 31278 NULL nohasharray
156948 +enable_so_xfs_bmbt_set_startblock_fndecl_31278 xfs_bmbt_set_startblock fndecl 2 31278 &enable_so_packet_length_rc_config_31278
156949 +enable_so_aat2870_dump_reg_fndecl_31280 aat2870_dump_reg fndecl 0 31280 NULL
156950 +enable_so_irq_pcmcia_device_31283 irq pcmcia_device 0 31283 NULL nohasharray
156951 +enable_so_ecp_read_data_parport_operations_31283 ecp_read_data parport_operations 0 31283 &enable_so_irq_pcmcia_device_31283
156952 +enable_so_mmap_base_kioctx_31285 mmap_base kioctx 0 31285 NULL
156953 +enable_so_igb_enable_sriov_fndecl_31288 igb_enable_sriov fndecl 2 31288 NULL
156954 +enable_so_nfs_readdir_page_filler_fndecl_31292 nfs_readdir_page_filler fndecl 5 31292 NULL
156955 +enable_so_asymmetric_key_generate_id_fndecl_31299 asymmetric_key_generate_id fndecl 4-2 31299 NULL
156956 +enable_so_fs_shift_hfsplus_sb_info_31309 fs_shift hfsplus_sb_info 0 31309 NULL
156957 +enable_so_rxblen_brcmf_sdio_31317 rxblen brcmf_sdio 0 31317 NULL
156958 +enable_so_bio_integrity_add_page_fndecl_31320 bio_integrity_add_page fndecl 4-3 31320 NULL
156959 +enable_so_gsi_end_mp_ioapic_gsi_31327 gsi_end mp_ioapic_gsi 0 31327 NULL
156960 +enable_so_scatter_len_efx_rx_queue_31330 scatter_len efx_rx_queue 0 31330 NULL nohasharray
156961 +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
156962 +enable_so_ubifs_tnc_add_fndecl_31332 ubifs_tnc_add fndecl 5-4 31332 NULL
156963 +enable_so_cur_frames_osst_tape_31335 cur_frames osst_tape 0 31335 NULL
156964 +enable_so_size_ttm_bus_placement_31338 size ttm_bus_placement 0 31338 NULL
156965 +enable_so_get_elem_size_fndecl_31341 get_elem_size fndecl 0-2 31341 NULL
156966 +enable_so_block_sz_htc_target_31342 block_sz htc_target 0 31342 NULL
156967 +enable_so_sdio_writesb_fndecl_31345 sdio_writesb fndecl 4 31345 NULL
156968 +enable_so_bulk_in_size_usb_serial_driver_31350 bulk_in_size usb_serial_driver 0 31350 NULL
156969 +enable_so_cifs_llseek_fndecl_31352 cifs_llseek fndecl 2 31352 NULL
156970 +enable_so_size_power_iwl_fw_dbg_dest_tlv_31357 size_power iwl_fw_dbg_dest_tlv 0 31357 NULL
156971 +enable_so_device_acpiphp_slot_31359 device acpiphp_slot 0 31359 NULL
156972 +enable_so_romfs_dev_strcmp_fndecl_31365 romfs_dev_strcmp fndecl 4-2 31365 NULL nohasharray
156973 +enable_so_SyS_migrate_pages_fndecl_31365 SyS_migrate_pages fndecl 2 31365 &enable_so_romfs_dev_strcmp_fndecl_31365
156974 +enable_so_req_lim_delta_srp_rsp_31371 req_lim_delta srp_rsp 0 31371 NULL
156975 +enable_so_ioctl_fndecl_31375 ioctl fndecl 3 31375 NULL
156976 +enable_so_gfs2_meta_read_fndecl_31379 gfs2_meta_read fndecl 0-2 31379 NULL
156977 +enable_so_s_stripe_ext4_sb_info_31391 s_stripe ext4_sb_info 0 31391 NULL
156978 +enable_so_spi_populate_sync_msg_fndecl_31392 spi_populate_sync_msg fndecl 0 31392 NULL
156979 +enable_so_brcmf_msgbuf_init_pktids_fndecl_31395 brcmf_msgbuf_init_pktids fndecl 1 31395 NULL
156980 +enable_so_ip_tunnel_bind_dev_fndecl_31398 ip_tunnel_bind_dev fndecl 0 31398 NULL nohasharray
156981 +enable_so_asd_store_update_bios_fndecl_31398 asd_store_update_bios fndecl 4 31398 &enable_so_ip_tunnel_bind_dev_fndecl_31398
156982 +enable_so_persistent_ram_vmap_fndecl_31402 persistent_ram_vmap fndecl 1-2 31402 NULL
156983 +enable_so_subport_ipath_filedata_31404 subport ipath_filedata 0 31404 NULL nohasharray
156984 +enable_so_number_xt_table_info_31404 number xt_table_info 0 31404 &enable_so_subport_ipath_filedata_31404
156985 +enable_so_num_types_amdgpu_irq_src_31405 num_types amdgpu_irq_src 0 31405 NULL
156986 +enable_so_proc_pid_attr_read_fndecl_31406 proc_pid_attr_read fndecl 3 31406 NULL nohasharray
156987 +enable_so_rxrpc_rx_window_size_vardecl_31406 rxrpc_rx_window_size vardecl 0 31406 &enable_so_proc_pid_attr_read_fndecl_31406
156988 +enable_so_data_offset_msgbuf_rx_complete_31409 data_offset msgbuf_rx_complete 0 31409 NULL
156989 +enable_so_zone_count_msb_data_31413 zone_count msb_data 0 31413 NULL
156990 +enable_so_sg_tablesize_sg_device_31415 sg_tablesize sg_device 0 31415 NULL
156991 +enable_so_nv40_fb_tile_comp_fndecl_31416 nv40_fb_tile_comp fndecl 3 31416 NULL
156992 +enable_so_unmap_region_fndecl_31420 unmap_region fndecl 5-4 31420 NULL
156993 +enable_so_bch_bucket_alloc_fndecl_31421 bch_bucket_alloc fndecl 0 31421 NULL
156994 +enable_so_rx_out_of_mem_read_fndecl_31422 rx_out_of_mem_read fndecl 3 31422 NULL
156995 +enable_so_recovery_offset_md_rdev_31426 recovery_offset md_rdev 0 31426 NULL
156996 +enable_so_onenand_read_oob_nolock_fndecl_31430 onenand_read_oob_nolock fndecl 2 31430 NULL
156997 +enable_so_mpx_unmap_tables_fndecl_31439 mpx_unmap_tables fndecl 2-3 31439 NULL
156998 +enable_so_vc_x_vc_data_31443 vc_x vc_data 0 31443 NULL
156999 +enable_so_jffs2_user_setxattr_fndecl_31445 jffs2_user_setxattr fndecl 4 31445 NULL nohasharray
157000 +enable_so_fid_ino_xfs_fid_31445 fid_ino xfs_fid 0 31445 &enable_so_jffs2_user_setxattr_fndecl_31445
157001 +enable_so_gro_size_bnx2x_agg_info_31450 gro_size bnx2x_agg_info 0 31450 NULL
157002 +enable_so_length_wsm_ssid_31452 length wsm_ssid 0 31452 NULL
157003 +enable_so_max_sz_mmc_test_area_31453 max_sz mmc_test_area 0 31453 NULL
157004 +enable_so_i_eattr_gfs2_inode_31461 i_eattr gfs2_inode 0 31461 NULL
157005 +enable_so_length__diva_xdi_um_cfg_cmd_data_read_sdram_31465 length _diva_xdi_um_cfg_cmd_data_read_sdram 0 31465 NULL
157006 +enable_so_drbd_send_all_fndecl_31468 drbd_send_all fndecl 4 31468 NULL
157007 +enable_so_ip_encap_hlen_fndecl_31469 ip_encap_hlen fndecl 0 31469 NULL
157008 +enable_so_len_mmap_arg_struct32_31471 len mmap_arg_struct32 0 31471 NULL nohasharray
157009 +enable_so_videobuf_dma_init_overlay_fndecl_31471 videobuf_dma_init_overlay fndecl 4 31471 &enable_so_len_mmap_arg_struct32_31471
157010 +enable_so_tx_rate_idx_skb_frame_desc_31479 tx_rate_idx skb_frame_desc 0 31479 NULL
157011 +enable_so_wl12xx_spi_raw_write_fndecl_31482 wl12xx_spi_raw_write fndecl 4 31482 NULL
157012 +enable_so_nr_voices_seq_oss_synthinfo_31487 nr_voices seq_oss_synthinfo 0 31487 NULL
157013 +enable_so_length_rsd_31489 length rsd 0 31489 NULL
157014 +enable_so_regmap_multi_reg_write_bypassed_fndecl_31492 regmap_multi_reg_write_bypassed fndecl 3 31492 NULL
157015 +enable_so_bfa_lun_queue_depth_vardecl_31497 bfa_lun_queue_depth vardecl 0 31497 NULL
157016 +enable_so_size_intel_stolen_funcs_31503 size intel_stolen_funcs 0 31503 NULL
157017 +enable_so_PIXDEPTH_kyrofb_info_31509 PIXDEPTH kyrofb_info 0 31509 NULL
157018 +enable_so_fixed_size_llseek_fndecl_31512 fixed_size_llseek fndecl 2-4 31512 NULL
157019 +enable_so_ddb_input_read_fndecl_31516 ddb_input_read fndecl 3-0 31516 NULL
157020 +enable_so_shmem_replace_page_fndecl_31519 shmem_replace_page fndecl 4 31519 NULL
157021 +enable_so_tx_iovlen_ncp_request_reply_31522 tx_iovlen ncp_request_reply 0 31522 NULL
157022 +enable_so_ext4_mb_init_group_fndecl_31530 ext4_mb_init_group fndecl 0 31530 NULL
157023 +enable_so_residual_datacnt_status_pkt_31531 residual_datacnt status_pkt 0 31531 NULL
157024 +enable_so_rx_pipe_usbpn_dev_31540 rx_pipe usbpn_dev 0 31540 NULL
157025 +enable_so_tcp_tso_acked_fndecl_31549 tcp_tso_acked fndecl 0 31549 NULL
157026 +enable_so_stride_drm_qxl_alloc_surf_31551 stride drm_qxl_alloc_surf 0 31551 NULL nohasharray
157027 +enable_so_ks_rdreg16_fndecl_31551 ks_rdreg16 fndecl 0 31551 &enable_so_stride_drm_qxl_alloc_surf_31551
157028 +enable_so_start_genius_videocam_live_fndecl_31552 start_genius_videocam_live fndecl 0 31552 NULL
157029 +enable_so_ieee80211_if_read_state_fndecl_31558 ieee80211_if_read_state fndecl 3 31558 NULL
157030 +enable_so_resp_sas_pcd_m_spg_fndecl_31559 resp_sas_pcd_m_spg fndecl 0 31559 NULL
157031 +enable_so_kernel_physical_mapping_init_fndecl_31561 kernel_physical_mapping_init fndecl 0-2 31561 NULL
157032 +enable_so_qlcnic_validate_ringparam_fndecl_31569 qlcnic_validate_ringparam fndecl 0 31569 NULL
157033 +enable_so_bio_alloc_map_data_fndecl_31573 bio_alloc_map_data fndecl 1 31573 NULL
157034 +enable_so_vmcb_nested_state_31575 vmcb nested_state 0 31575 NULL
157035 +enable_so_can_change_mtu_fndecl_31583 can_change_mtu fndecl 2 31583 NULL
157036 +enable_so_bytes_operand_31587 bytes operand 0 31587 NULL nohasharray
157037 +enable_so_dvb_dvr_set_buffer_size_fndecl_31587 dvb_dvr_set_buffer_size fndecl 2 31587 &enable_so_bytes_operand_31587
157038 +enable_so_num_txq_bna_attr_31588 num_txq bna_attr 0 31588 NULL
157039 +enable_so_v_max_out_saa7146_standard_31591 v_max_out saa7146_standard 0 31591 NULL
157040 +enable_so_nbchannel_capi_profile_31592 nbchannel capi_profile 0 31592 NULL
157041 +enable_so_radeon_gart_size_auto_fndecl_31605 radeon_gart_size_auto fndecl 0 31605 NULL
157042 +enable_so_sys_mprotect_fndecl_31611 sys_mprotect fndecl 2-1 31611 NULL
157043 +enable_so_iterate_fd_fndecl_31615 iterate_fd fndecl 0 31615 NULL
157044 +enable_so_dir_commit_chunk_fndecl_31621 dir_commit_chunk fndecl 3 31621 NULL nohasharray
157045 +enable_so_wil_read_file_ioblob_fndecl_31621 wil_read_file_ioblob fndecl 3 31621 &enable_so_dir_commit_chunk_fndecl_31621
157046 +enable_so_a_entry_exec_31622 a_entry exec 0 31622 NULL
157047 +enable_so_ping_v4_sendmsg_fndecl_31624 ping_v4_sendmsg fndecl 3 31624 NULL
157048 +enable_so_eq_textcnt_max98095_priv_31635 eq_textcnt max98095_priv 0 31635 NULL
157049 +enable_so_segsize_dn_skb_cb_31640 segsize dn_skb_cb 0 31640 NULL
157050 +enable_so_pep_recvmsg_fndecl_31641 pep_recvmsg fndecl 3 31641 NULL
157051 +enable_so_pmcraid_alloc_sglist_fndecl_31643 pmcraid_alloc_sglist fndecl 1 31643 NULL
157052 +enable_so_ext4_free_blocks_fndecl_31648 ext4_free_blocks fndecl 4-5 31648 NULL nohasharray
157053 +enable_so_av_buf_tail_dccp_ackvec_31648 av_buf_tail dccp_ackvec 0 31648 &enable_so_ext4_free_blocks_fndecl_31648
157054 +enable_so_mwifiex_set_wpa_ie_helper_fndecl_31650 mwifiex_set_wpa_ie_helper fndecl 3 31650 NULL
157055 +enable_so_brk_prctl_mm_map_31652 brk prctl_mm_map 0 31652 NULL
157056 +enable_so_bpp_uvc_format_31654 bpp uvc_format 0 31654 NULL
157057 +enable_so_nonpaging_page_fault_fndecl_31655 nonpaging_page_fault fndecl 2 31655 NULL
157058 +enable_so_compat_sys_ipc_fndecl_31659 compat_sys_ipc fndecl 3 31659 NULL
157059 +enable_so_ext4_map_blocks_fndecl_31663 ext4_map_blocks fndecl 0 31663 NULL
157060 +enable_so_hp_hpet_phys_hpets_31664 hp_hpet_phys hpets 0 31664 NULL
157061 +enable_so_read_dma_ims_pcu_31667 read_dma ims_pcu 0 31667 NULL nohasharray
157062 +enable_so_len_hda_conn_list_31667 len hda_conn_list 0 31667 &enable_so_read_dma_ims_pcu_31667
157063 +enable_so_bm_register_write_fndecl_31670 bm_register_write fndecl 3 31670 NULL nohasharray
157064 +enable_so_snd_midi_event_new_fndecl_31670 snd_midi_event_new fndecl 1 31670 &enable_so_bm_register_write_fndecl_31670 nohasharray
157065 +enable_so_set_capacity_fndecl_31670 set_capacity fndecl 2 31670 &enable_so_snd_midi_event_new_fndecl_31670
157066 +enable_so_fragment_ufs_buffer_head_31676 fragment ufs_buffer_head 0 31676 NULL
157067 +enable_so_rx_header_len_pn533_frame_ops_31680 rx_header_len pn533_frame_ops 0 31680 NULL
157068 +enable_so_dsa_of_setup_routing_table_fndecl_31686 dsa_of_setup_routing_table fndecl 0 31686 NULL
157069 +enable_so_end_hdmi_pulse_31692 end hdmi_pulse 0 31692 NULL
157070 +enable_so_set_rxd_buffer_pointer_fndecl_31693 set_rxd_buffer_pointer fndecl 8 31693 NULL
157071 +enable_so_read_file_misc_fndecl_31695 read_file_misc fndecl 3 31695 NULL
157072 +enable_so_sr_write_cmd_async_fndecl_31698 sr_write_cmd_async fndecl 5 31698 NULL
157073 +enable_so_TargetsPerBus_aac_bus_info_response_31699 TargetsPerBus aac_bus_info_response 0 31699 NULL
157074 +enable_so_init_pipe_urbs_fndecl_31704 init_pipe_urbs fndecl 2-6 31704 NULL
157075 +enable_so_len_ib_ucm_lap_31705 len ib_ucm_lap 0 31705 NULL
157076 +enable_so_iwl_dbgfs_prph_reg_read_fndecl_31707 iwl_dbgfs_prph_reg_read fndecl 3 31707 NULL
157077 +enable_so_get_free_serial_index_fndecl_31714 get_free_serial_index fndecl 0 31714 NULL
157078 +enable_so_s5p_jpeg_compressed_size_fndecl_31715 s5p_jpeg_compressed_size fndecl 0 31715 NULL
157079 +enable_so_btrfs_add_link_fndecl_31718 btrfs_add_link fndecl 5 31718 NULL
157080 +enable_so_compat_import_iovec_fndecl_31721 compat_import_iovec fndecl 3 31721 NULL
157081 +enable_so_offset_nfs_pgio_args_31727 offset nfs_pgio_args 0 31727 NULL
157082 +enable_so_ext2_new_blocks_fndecl_31729 ext2_new_blocks fndecl 0-2 31729 NULL nohasharray
157083 +enable_so_channels_mask_sh_timer_config_31729 channels_mask sh_timer_config 0 31729 &enable_so_ext2_new_blocks_fndecl_31729
157084 +enable_so_iwl_mvm_legacy_rate_to_mac80211_idx_fndecl_31731 iwl_mvm_legacy_rate_to_mac80211_idx fndecl 0 31731 NULL nohasharray
157085 +enable_so_recv_bm_rle_bits_fndecl_31731 recv_bm_rle_bits fndecl 4 31731 &enable_so_iwl_mvm_legacy_rate_to_mac80211_idx_fndecl_31731
157086 +enable_so_SyS_gethostname_fndecl_31743 SyS_gethostname fndecl 2 31743 NULL
157087 +enable_so_ih_ring_entry_size_kfd_device_info_31745 ih_ring_entry_size kfd_device_info 0 31745 NULL
157088 +enable_so_nxt200x_writereg_multibyte_fndecl_31757 nxt200x_writereg_multibyte fndecl 4 31757 NULL
157089 +enable_so_bio_readpage_error_fndecl_31761 bio_readpage_error fndecl 4-5 31761 NULL
157090 +enable_so_ahc_linux_user_tagdepth_fndecl_31764 ahc_linux_user_tagdepth fndecl 0 31764 NULL
157091 +enable_so_i_size_dio_31770 i_size dio 0 31770 NULL
157092 +enable_so_i40e_init_msix_fndecl_31776 i40e_init_msix fndecl 0 31776 NULL
157093 +enable_so_fore200e_chunk_alloc_fndecl_31782 fore200e_chunk_alloc fndecl 4-3 31782 NULL
157094 +enable_so_dev_config_fndecl_31785 dev_config fndecl 3 31785 NULL
157095 +enable_so_endpt_ubifs_scan_leb_31792 endpt ubifs_scan_leb 0 31792 NULL
157096 +enable_so_minix_V2_raw_inode_fndecl_31793 minix_V2_raw_inode fndecl 2 31793 NULL nohasharray
157097 +enable_so_irq_gpio_lpc_sch_info_31793 irq_gpio lpc_sch_info 0 31793 &enable_so_minix_V2_raw_inode_fndecl_31793 nohasharray
157098 +enable_so_afs_cell_lookup_fndecl_31793 afs_cell_lookup fndecl 2 31793 &enable_so_irq_gpio_lpc_sch_info_31793
157099 +enable_so_mml_isar_ch_31799 mml isar_ch 0 31799 NULL
157100 +enable_so_parent_i_pos_low_fat_fid_31802 parent_i_pos_low fat_fid 0 31802 NULL
157101 +enable_so_bg_inode_table_ext2_group_desc_31805 bg_inode_table ext2_group_desc 0 31805 NULL
157102 +enable_so_target_submit_cmd_map_sgls_fndecl_31806 target_submit_cmd_map_sgls fndecl 6-11-15 31806 NULL
157103 +enable_so_secure_dccp_sequence_number_fndecl_31815 secure_dccp_sequence_number fndecl 0 31815 NULL nohasharray
157104 +enable_so_track_pfn_insert_fndecl_31815 track_pfn_insert fndecl 3 31815 &enable_so_secure_dccp_sequence_number_fndecl_31815 nohasharray
157105 +enable_so_snd_malloc_sgbuf_pages_fndecl_31815 snd_malloc_sgbuf_pages fndecl 2 31815 &enable_so_track_pfn_insert_fndecl_31815
157106 +enable_so_NumPhys__MPI2_CONFIG_PAGE_EXPANDER_0_31816 NumPhys _MPI2_CONFIG_PAGE_EXPANDER_0 0 31816 NULL
157107 +enable_so_const_channel_count_hda_gen_spec_31817 const_channel_count hda_gen_spec 0 31817 NULL nohasharray
157108 +enable_so_spu_read_fndecl_31817 spu_read fndecl 4-0 31817 &enable_so_const_channel_count_hda_gen_spec_31817
157109 +enable_so___skb_get_poff_fndecl_31821 __skb_get_poff fndecl 0 31821 NULL
157110 +enable_so_nouveau_platform_device_create__fndecl_31825 nouveau_platform_device_create_ fndecl 2 31825 NULL
157111 +enable_so_needed_size_conf_writedata_31827 needed_size conf_writedata 0 31827 NULL
157112 +enable_so_fw_iocb_count_qla_hw_data_31830 fw_iocb_count qla_hw_data 0 31830 NULL
157113 +enable_so_byte_len_svc_rdma_op_ctxt_31832 byte_len svc_rdma_op_ctxt 0 31832 NULL nohasharray
157114 +enable_so_num_partition_entries__gpt_header_31832 num_partition_entries _gpt_header 0 31832 &enable_so_byte_len_svc_rdma_op_ctxt_31832
157115 +enable_so_num_tty_driver_31834 num tty_driver 0 31834 NULL
157116 +enable_so_n_channels_efx_nic_31838 n_channels efx_nic 0 31838 NULL nohasharray
157117 +enable_so_locked_vm_mm_struct_31838 locked_vm mm_struct 0 31838 &enable_so_n_channels_efx_nic_31838
157118 +enable_so_opticon_process_data_packet_fndecl_31839 opticon_process_data_packet fndecl 3 31839 NULL
157119 +enable_so_ds_block_shift_logfs_disk_super_31840 ds_block_shift logfs_disk_super 0 31840 NULL
157120 +enable_so_cache_slow_downcall_fndecl_31849 cache_slow_downcall fndecl 2 31849 NULL
157121 +enable_so_sys_munlock_fndecl_31851 sys_munlock fndecl 1-2 31851 NULL
157122 +enable_so_isr_dma0_done_read_fndecl_31853 isr_dma0_done_read fndecl 3 31853 NULL
157123 +enable_so_vco_mult_arizona_fll_31858 vco_mult arizona_fll 0 31858 NULL
157124 +enable_so_msi2500_convert_stream_fndecl_31862 msi2500_convert_stream fndecl 0 31862 NULL
157125 +enable_so_profile_remove_fndecl_31871 profile_remove fndecl 3 31871 NULL
157126 +enable_so_maxp_usbhs_pipe_31872 maxp usbhs_pipe 0 31872 NULL
157127 +enable_so_gseg_gru_set_context_option_req_31876 gseg gru_set_context_option_req 0 31876 NULL
157128 +enable_so_i_lastfrag_ufs_inode_info_31879 i_lastfrag ufs_inode_info 0 31879 NULL
157129 +enable_so_sctp_user_addto_chunk_fndecl_31881 sctp_user_addto_chunk fndecl 2 31881 NULL
157130 +enable_so_reallocate_resource_fndecl_31885 reallocate_resource fndecl 3 31885 NULL
157131 +enable_so_first_user_ctxt_qib_devdata_31889 first_user_ctxt qib_devdata 0 31889 NULL
157132 +enable_so_max_tasks_bnx2fc_hba_31893 max_tasks bnx2fc_hba 0 31893 NULL
157133 +enable_so_tower_write_fndecl_31895 tower_write fndecl 3 31895 NULL
157134 +enable_so_max_packet_size_snd_line6_pcm_31899 max_packet_size snd_line6_pcm 0 31899 NULL
157135 +enable_so_ieee80211_get_hdrlen_from_buf_fndecl_31900 ieee80211_get_hdrlen_from_buf fndecl 0 31900 NULL
157136 +enable_so_size_macb_tx_skb_31904 size macb_tx_skb 0 31904 NULL
157137 +enable_so_vram_vardecl_atyfb_base_c_31909 vram vardecl_atyfb_base.c 0 31909 NULL nohasharray
157138 +enable_so_lengthExtendedAttr_fileEntry_31909 lengthExtendedAttr fileEntry 0 31909 &enable_so_vram_vardecl_atyfb_base_c_31909
157139 +enable_so_it821x_firmware_command_fndecl_31911 it821x_firmware_command fndecl 3 31911 NULL
157140 +enable_so_num_packets_em28xx_usb_bufs_31912 num_packets em28xx_usb_bufs 0 31912 NULL nohasharray
157141 +enable_so_rxkad_secure_packet_fndecl_31912 rxkad_secure_packet fndecl 3 31912 &enable_so_num_packets_em28xx_usb_bufs_31912
157142 +enable_so_drvr_qdepth_blogic_adapter_31915 drvr_qdepth blogic_adapter 0 31915 NULL nohasharray
157143 +enable_so_scsi_dma_map_fndecl_31915 scsi_dma_map fndecl 0 31915 &enable_so_drvr_qdepth_blogic_adapter_31915
157144 +enable_so_mtu_gsm_mux_31917 mtu gsm_mux 0 31917 NULL
157145 +enable_so_fuse_send_write_pages_fndecl_31919 fuse_send_write_pages fndecl 0-5 31919 NULL
157146 +enable_so_cfs_cpt_number_fndecl_31929 cfs_cpt_number fndecl 0 31929 NULL
157147 +enable_so_physical_block_size_scsi_disk_31931 physical_block_size scsi_disk 0 31931 NULL
157148 +enable_so_rmmio_size_radeon_device_31934 rmmio_size radeon_device 0 31934 NULL
157149 +enable_so_tool_spad_read_fndecl_31936 tool_spad_read fndecl 3 31936 NULL
157150 +enable_so_channel_iio_chan_spec_31939 channel iio_chan_spec 0 31939 NULL nohasharray
157151 +enable_so_mesh_rx_plink_frame_fndecl_31939 mesh_rx_plink_frame fndecl 3 31939 &enable_so_channel_iio_chan_spec_31939
157152 +enable_so_mlx5_vzalloc_fndecl_31940 mlx5_vzalloc fndecl 1 31940 NULL
157153 +enable_so_ptr_i915_gem_userptr_31948 ptr i915_gem_userptr 0 31948 NULL
157154 +enable_so__read_mtd_info_31950 _read mtd_info 0 31950 NULL
157155 +enable_so_buf_height_tpg_data_31953 buf_height tpg_data 0 31953 NULL
157156 +enable_so_usHSyncOffset__ATOM_DTD_FORMAT_31956 usHSyncOffset _ATOM_DTD_FORMAT 0 31956 NULL
157157 +enable_so_ufs_add_fragments_fndecl_31963 ufs_add_fragments fndecl 2-0 31963 NULL
157158 +enable_so_bmc150_accel_fifo_flush_fndecl_31972 bmc150_accel_fifo_flush fndecl 2 31972 NULL nohasharray
157159 +enable_so_isdn_tty_write_fndecl_31972 isdn_tty_write fndecl 3 31972 &enable_so_bmc150_accel_fifo_flush_fndecl_31972
157160 +enable_so_se_dev_align_max_sectors_fndecl_31975 se_dev_align_max_sectors fndecl 0-2-1 31975 NULL
157161 +enable_so_buffer_max_vardecl_floppy_c_31976 buffer_max vardecl_floppy.c 0 31976 NULL
157162 +enable_so_i_size_read_fndecl_31980 i_size_read fndecl 0 31980 NULL
157163 +enable_so_arcfb_write_fndecl_31981 arcfb_write fndecl 3 31981 NULL
157164 +enable_so_max_commands_ctlr_info_31984 max_commands ctlr_info 0 31984 NULL
157165 +enable_so_s_groups_count_ext3_sb_info_31985 s_groups_count ext3_sb_info 0 31985 NULL
157166 +enable_so_record_size_ramoops_context_31989 record_size ramoops_context 0 31989 NULL nohasharray
157167 +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
157168 +enable_so_lbs_bcnmiss_read_fndecl_31989 lbs_bcnmiss_read fndecl 3 31989 &enable_so_flash_offset_jffs2_raw_node_ref_31989
157169 +enable_so_link_duplex_qlcnic_hardware_context_31996 link_duplex qlcnic_hardware_context 0 31996 NULL
157170 +enable_so_rproc_trace_read_fndecl_31997 rproc_trace_read fndecl 3 31997 NULL
157171 +enable_so_isofs_get_block_fndecl_32000 isofs_get_block fndecl 2 32000 NULL
157172 +enable_so_blocksize_sddr09_card_info_32003 blocksize sddr09_card_info 0 32003 NULL nohasharray
157173 +enable_so_bg_next_group_ocfs2_group_desc_32003 bg_next_group ocfs2_group_desc 0 32003 &enable_so_blocksize_sddr09_card_info_32003
157174 +enable_so_ss_descs_count_ffs_data_32006 ss_descs_count ffs_data 0 32006 NULL
157175 +enable_so_rt2x00debug_write_bbp_fndecl_32007 rt2x00debug_write_bbp fndecl 3 32007 NULL
157176 +enable_so_play_iframe_fndecl_32008 play_iframe fndecl 3 32008 NULL
157177 +enable_so_ad7879_spi_multi_read_fndecl_32009 ad7879_spi_multi_read fndecl 3 32009 NULL
157178 +enable_so_size_tiger_dma_32013 size tiger_dma 0 32013 NULL nohasharray
157179 +enable_so_elants_i2c_read_fndecl_32013 elants_i2c_read fndecl 3 32013 &enable_so_size_tiger_dma_32013
157180 +enable_so_m_lblk_f2fs_map_blocks_32016 m_lblk f2fs_map_blocks 0 32016 NULL
157181 +enable_so_blocksize_udf_options_32019 blocksize udf_options 0 32019 NULL
157182 +enable_so_depth_zr364xx_fmt_32028 depth zr364xx_fmt 0 32028 NULL
157183 +enable_so_recent_mt_proc_write_fndecl_32029 recent_mt_proc_write fndecl 3 32029 NULL
157184 +enable_so_check_xattr_ref_inode_fndecl_32039 check_xattr_ref_inode fndecl 0 32039 NULL
157185 +enable_so_base_efifb_dmi_info_32041 base efifb_dmi_info 0 32041 NULL
157186 +enable_so_balloon_set_new_target_fndecl_32044 balloon_set_new_target fndecl 1 32044 NULL
157187 +enable_so_next_free_pstore_32049 next_free pstore 0 32049 NULL
157188 +enable_so_kvm_mmu_page_set_gfn_fndecl_32050 kvm_mmu_page_set_gfn fndecl 2 32050 NULL
157189 +enable_so_g_num_of_iommus_vardecl_intel_iommu_c_32059 g_num_of_iommus vardecl_intel-iommu.c 0 32059 NULL
157190 +enable_so_init_cdev_fndecl_32065 init_cdev fndecl 1 32065 NULL
157191 +enable_so_config_size_nd_cmd_get_config_size_32073 config_size nd_cmd_get_config_size 0 32073 NULL
157192 +enable_so_rproc_recovery_write_fndecl_32074 rproc_recovery_write fndecl 3 32074 NULL
157193 +enable_so_add_rx_skb_fndecl_32082 add_rx_skb fndecl 3 32082 NULL
157194 +enable_so_s_first_data_block_nilfs_super_block_32083 s_first_data_block nilfs_super_block 0 32083 NULL nohasharray
157195 +enable_so_chunk_size_irctl_32083 chunk_size irctl 0 32083 &enable_so_s_first_data_block_nilfs_super_block_32083
157196 +enable_so_ip6_tnl_err_fndecl_32086 ip6_tnl_err fndecl 8 32086 NULL nohasharray
157197 +enable_so_t3_init_l2t_fndecl_32086 t3_init_l2t fndecl 1 32086 &enable_so_ip6_tnl_err_fndecl_32086
157198 +enable_so_omfs_clear_range_fndecl_32087 omfs_clear_range fndecl 2 32087 NULL
157199 +enable_so_write_tty_ldisc_ops_32094 write tty_ldisc_ops 0 32094 NULL
157200 +enable_so_ocfs2_ilookup_fndecl_32100 ocfs2_ilookup fndecl 2 32100 NULL
157201 +enable_so_pci_scan_slot_fndecl_32102 pci_scan_slot fndecl 2 32102 NULL
157202 +enable_so_rate_min_audioformat_32106 rate_min audioformat 0 32106 NULL
157203 +enable_so_offset_p9_fcall_32116 offset p9_fcall 0 32116 NULL nohasharray
157204 +enable_so_jffs2_sum_scan_sumnode_fndecl_32116 jffs2_sum_scan_sumnode fndecl 4 32116 &enable_so_offset_p9_fcall_32116
157205 +enable_so_config_rom_length_fw_device_32117 config_rom_length fw_device 0 32117 NULL
157206 +enable_so_height_drm_mode_fb_cmd2_32120 height drm_mode_fb_cmd2 0 32120 NULL
157207 +enable_so_rcvegrcnt_qib_ctxtdata_32127 rcvegrcnt qib_ctxtdata 0 32127 NULL
157208 +enable_so_ip6_make_skb_fndecl_32129 ip6_make_skb fndecl 5-4 32129 NULL nohasharray
157209 +enable_so_first_slot_vardecl_cpcihp_generic_c_32129 first_slot vardecl_cpcihp_generic.c 0 32129 &enable_so_ip6_make_skb_fndecl_32129
157210 +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
157211 +enable_so_sb_gquotino_xfs_sb_32131 sb_gquotino xfs_sb 0 32131 NULL
157212 +enable_so_sync_request_fndecl_32141 sync_request fndecl 2 32141 NULL nohasharray
157213 +enable_so_fsector_t_vardecl_floppy_c_32141 fsector_t vardecl_floppy.c 0 32141 &enable_so_sync_request_fndecl_32141
157214 +enable_so_prof_shift_vardecl_profile_c_32143 prof_shift vardecl_profile.c 0 32143 NULL
157215 +enable_so_mlx4_en_complete_rx_desc_fndecl_32150 mlx4_en_complete_rx_desc fndecl 0 32150 NULL
157216 +enable_so_ipwireless_send_packet_fndecl_32155 ipwireless_send_packet fndecl 4 32155 NULL
157217 +enable_so_s_clustersize_ocfs2_super_32156 s_clustersize ocfs2_super 0 32156 NULL nohasharray
157218 +enable_so_pwm_buf_sz_usbduxsigma_private_32156 pwm_buf_sz usbduxsigma_private 0 32156 &enable_so_s_clustersize_ocfs2_super_32156
157219 +enable_so_num_entries_msg_get_chap_32158 num_entries msg_get_chap 0 32158 NULL
157220 +enable_so_insert_zbranch_fndecl_32159 insert_zbranch fndecl 3 32159 NULL
157221 +enable_so_max_recv_dlength_iscsi_conn_32168 max_recv_dlength iscsi_conn 0 32168 NULL
157222 +enable_so_current_pages_balloon_stats_32169 current_pages balloon_stats 0 32169 NULL
157223 +enable_so_nfs41_maxwrite_overhead_vardecl_32172 nfs41_maxwrite_overhead vardecl 0 32172 NULL nohasharray
157224 +enable_so_ipath_unit_ipath_devdata_32172 ipath_unit ipath_devdata 0 32172 &enable_so_nfs41_maxwrite_overhead_vardecl_32172
157225 +enable_so_length_vring_rx_dma_32178 length vring_rx_dma 0 32178 NULL
157226 +enable_so_resp_format_pg_fndecl_32182 resp_format_pg fndecl 0 32182 NULL
157227 +enable_so_vmalloc_usercopy_fndecl_32186 vmalloc_usercopy fndecl 1 32186 NULL
157228 +enable_so_ping_getfrag_fndecl_32187 ping_getfrag fndecl 4 32187 NULL
157229 +enable_so_init_page_buffers_fndecl_32189 init_page_buffers fndecl 3 32189 NULL nohasharray
157230 +enable_so_len_sigma_action_32189 len sigma_action 0 32189 &enable_so_init_page_buffers_fndecl_32189
157231 +enable_so_tail_len_beacon_data_32194 tail_len beacon_data 0 32194 NULL
157232 +enable_so_s_system_dir_blkno_ocfs2_super_block_32196 s_system_dir_blkno ocfs2_super_block 0 32196 NULL
157233 +enable_so_smk_write_change_rule_fndecl_32200 smk_write_change_rule fndecl 3 32200 NULL
157234 +enable_so_nr_registers_ioapic_32204 nr_registers ioapic 0 32204 NULL
157235 +enable_so_len_bnep_ext_hdr_32205 len bnep_ext_hdr 0 32205 NULL
157236 +enable_so_dma_buf_size_tegra_slink_data_32206 dma_buf_size tegra_slink_data 0 32206 NULL
157237 +enable_so_ocfs2_decrease_refcount_rec_fndecl_32210 ocfs2_decrease_refcount_rec fndecl 6-7 32210 NULL
157238 +enable_so_k_offset_in_core_key_32212 k_offset in_core_key 0 32212 NULL
157239 +enable_so_num_sbs_pf_vf_resc_32216 num_sbs pf_vf_resc 0 32216 NULL nohasharray
157240 +enable_so_xdi_copy_from_user_fndecl_32216 xdi_copy_from_user fndecl 4 32216 &enable_so_num_sbs_pf_vf_resc_32216
157241 +enable_so_rate_n_flags_il4965_tx_resp_32218 rate_n_flags il4965_tx_resp 0 32218 NULL
157242 +enable_so_mag_length_ssp_sensorhub_info_32219 mag_length ssp_sensorhub_info 0 32219 NULL
157243 +enable_so_residual_task_status_struct_32220 residual task_status_struct 0 32220 NULL
157244 +enable_so_count_igb_ring_32225 count igb_ring 0 32225 NULL
157245 +enable_so_sys_munmap_fndecl_32226 sys_munmap fndecl 1-2 32226 NULL
157246 +enable_so_fragments_snd_compressed_buffer_32230 fragments snd_compressed_buffer 0 32230 NULL
157247 +enable_so_endpoint_usbatm_channel_32232 endpoint usbatm_channel 0 32232 NULL
157248 +enable_so_generic_bin_search_fndecl_32235 generic_bin_search fndecl 0 32235 NULL
157249 +enable_so_ts_packet_count_cx8802_dev_32239 ts_packet_count cx8802_dev 0 32239 NULL
157250 +enable_so_nasync_board_t_32240 nasync board_t 0 32240 NULL
157251 +enable_so_roccat_common2_sysfs_read_fndecl_32252 roccat_common2_sysfs_read fndecl 6 32252 NULL
157252 +enable_so_n_ids_vport_portids_32258 n_ids vport_portids 0 32258 NULL
157253 +enable_so_report_count_hid_global_32260 report_count hid_global 0 32260 NULL
157254 +enable_so_sony_register_touchpad_fndecl_32262 sony_register_touchpad fndecl 2 32262 NULL
157255 +enable_so_oslec_create_fndecl_32264 oslec_create fndecl 1 32264 NULL
157256 +enable_so_venus_mkdir_fndecl_32276 venus_mkdir fndecl 4 32276 NULL
157257 +enable_so_qib_qsfp_dump_fndecl_32277 qib_qsfp_dump fndecl 0 32277 NULL
157258 +enable_so_buf_len_lpfc_sli_config_hbd_32278 buf_len lpfc_sli_config_hbd 0 32278 NULL nohasharray
157259 +enable_so___v4l2_ctrl_s_ctrl_fndecl_32278 __v4l2_ctrl_s_ctrl fndecl 2 32278 &enable_so_buf_len_lpfc_sli_config_hbd_32278
157260 +enable_so_usb_allocate_stream_buffers_fndecl_32279 usb_allocate_stream_buffers fndecl 3 32279 NULL
157261 +enable_so_find_num_cache_leaves_fndecl_32280 find_num_cache_leaves fndecl 0 32280 NULL
157262 +enable_so_mapsize_uart_port_32282 mapsize uart_port 0 32282 NULL
157263 +enable_so_vol_cdev_read_fndecl_32283 vol_cdev_read fndecl 3 32283 NULL nohasharray
157264 +enable_so_seq_open_net_fndecl_32283 seq_open_net fndecl 4 32283 &enable_so_vol_cdev_read_fndecl_32283
157265 +enable_so_get_pipes_fndecl_32291 get_pipes fndecl 0 32291 NULL
157266 +enable_so_num_gpes_vardecl_sysfs_c_32294 num_gpes vardecl_sysfs.c 0 32294 NULL
157267 +enable_so_IA_TX_BUF_SZ_vardecl_iphase_c_32295 IA_TX_BUF_SZ vardecl_iphase.c 0 32295 NULL nohasharray
157268 +enable_so_dma_size_sst_pdata_32295 dma_size sst_pdata 0 32295 &enable_so_IA_TX_BUF_SZ_vardecl_iphase_c_32295
157269 +enable_so_il_dbgfs_clear_ucode_stats_write_fndecl_32299 il_dbgfs_clear_ucode_stats_write fndecl 3 32299 NULL
157270 +enable_so_rept_size_usbtouch_device_info_32306 rept_size usbtouch_device_info 0 32306 NULL
157271 +enable_so_sizeof_namespace_index_fndecl_32312 sizeof_namespace_index fndecl 0 32312 NULL
157272 +enable_so_snd_info_text_entry_write_fndecl_32315 snd_info_text_entry_write fndecl 3 32315 NULL
157273 +enable_so_nla_put_fndecl_32321 nla_put fndecl 3 32321 NULL
157274 +enable_so_khugepaged_scan_pmd_fndecl_32330 khugepaged_scan_pmd fndecl 3 32330 NULL
157275 +enable_so_bochs_ttm_tt_create_fndecl_32333 bochs_ttm_tt_create fndecl 2 32333 NULL nohasharray
157276 +enable_so_datablock_size_btrfsic_state_32333 datablock_size btrfsic_state 0 32333 &enable_so_bochs_ttm_tt_create_fndecl_32333
157277 +enable_so_mem_start_net_device_32337 mem_start net_device 0 32337 NULL
157278 +enable_so_fd_ioctl_fndecl_32343 fd_ioctl fndecl 3 32343 NULL
157279 +enable_so_fib_info_hash_alloc_fndecl_32352 fib_info_hash_alloc fndecl 1 32352 NULL
157280 +enable_so_scrub_raid56_parity_fndecl_32354 scrub_raid56_parity fndecl 5 32354 NULL
157281 +enable_so_max_q_vectors_ixgbe_adapter_32359 max_q_vectors ixgbe_adapter 0 32359 NULL
157282 +enable_so_netlbl_catmap_setlong_fndecl_32363 netlbl_catmap_setlong fndecl 2 32363 NULL nohasharray
157283 +enable_so_backlight_sd_gl860_32363 backlight sd_gl860 0 32363 &enable_so_netlbl_catmap_setlong_fndecl_32363
157284 +enable_so_datalen_ncp_request_reply_32365 datalen ncp_request_reply 0 32365 NULL
157285 +enable_so_xfs_setfilesize_fndecl_32370 xfs_setfilesize fndecl 4-3 32370 NULL
157286 +enable_so_snd_gus_dram_peek_fndecl_32373 snd_gus_dram_peek fndecl 4 32373 NULL
157287 +enable_so_snd_emu10k1_synth_copy_from_user_fndecl_32374 snd_emu10k1_synth_copy_from_user fndecl 5-3 32374 NULL
157288 +enable_so_journal_write_metadata_buffer_fndecl_32376 journal_write_metadata_buffer fndecl 4 32376 NULL nohasharray
157289 +enable_so_hci_req_add_fndecl_32376 hci_req_add fndecl 3 32376 &enable_so_journal_write_metadata_buffer_fndecl_32376
157290 +enable_so_transport_get_sectors_16_fndecl_32385 transport_get_sectors_16 fndecl 0 32385 NULL
157291 +enable_so_datablk_xfs_da_geometry_32386 datablk xfs_da_geometry 0 32386 NULL
157292 +enable_so_header_size_smb_version_values_32387 header_size smb_version_values 0 32387 NULL
157293 +enable_so_INFTL_formatblock_fndecl_32390 INFTL_formatblock fndecl 2 32390 NULL
157294 +enable_so_adxl34x_spi_read_block_fndecl_32391 adxl34x_spi_read_block fndecl 3 32391 NULL
157295 +enable_so_nvkm_output_create__fndecl_32400 nvkm_output_create_ fndecl 6 32400 NULL
157296 +enable_so_offset_pnfs_layout_range_32403 offset pnfs_layout_range 0 32403 NULL nohasharray
157297 +enable_so_create_queues_fndecl_32403 create_queues fndecl 3-2 32403 &enable_so_offset_pnfs_layout_range_32403
157298 +enable_so_ftdi_prepare_write_buffer_fndecl_32406 ftdi_prepare_write_buffer fndecl 3 32406 NULL
157299 +enable_so_cont_add_fndecl_32409 cont_add fndecl 4 32409 NULL
157300 +enable_so_agbno_xfs_alloc_arg_32410 agbno xfs_alloc_arg 0 32410 NULL
157301 +enable_so_ext4_list_backups_fndecl_32417 ext4_list_backups fndecl 0 32417 NULL
157302 +enable_so_nxt200x_readreg_multibyte_fndecl_32418 nxt200x_readreg_multibyte fndecl 4 32418 NULL nohasharray
157303 +enable_so_pt_buffer_setup_aux_fndecl_32418 pt_buffer_setup_aux fndecl 3 32418 &enable_so_nxt200x_readreg_multibyte_fndecl_32418
157304 +enable_so_ci_rsbtbl_size_dlm_config_info_32423 ci_rsbtbl_size dlm_config_info 0 32423 NULL
157305 +enable_so_srpt_build_tskmgmt_rsp_fndecl_32427 srpt_build_tskmgmt_rsp fndecl 0 32427 NULL
157306 +enable_so_qib_skip_sge_fndecl_32432 qib_skip_sge fndecl 2 32432 NULL
157307 +enable_so_di_next_index_dinode_32437 di_next_index dinode 0 32437 NULL nohasharray
157308 +enable_so_gso_size_xenvif_rx_meta_32437 gso_size xenvif_rx_meta 0 32437 &enable_so_di_next_index_dinode_32437 nohasharray
157309 +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
157310 +enable_so_port_port_ipath_portdata_32438 port_port ipath_portdata 0 32438 NULL
157311 +enable_so_btrfs_get_extent_fndecl_32440 btrfs_get_extent fndecl 4-3-5 32440 NULL nohasharray
157312 +enable_so_truncated_len_btrfs_ordered_extent_32440 truncated_len btrfs_ordered_extent 0 32440 &enable_so_btrfs_get_extent_fndecl_32440
157313 +enable_so_mlx4_alloc_resize_umem_fndecl_32447 mlx4_alloc_resize_umem fndecl 3 32447 NULL
157314 +enable_so_permission_inode_operations_32455 permission inode_operations 0 32455 NULL
157315 +enable_so_ext4_da_write_inline_data_end_fndecl_32456 ext4_da_write_inline_data_end fndecl 4-2 32456 NULL
157316 +enable_so_snd_buf_bytes_vardecl_usbatm_c_32457 snd_buf_bytes vardecl_usbatm.c 0 32457 NULL
157317 +enable_so_isr_irqs_read_fndecl_32462 isr_irqs_read fndecl 3 32462 NULL nohasharray
157318 +enable_so_ddata_ofs_cyttsp4_sysinfo_ofs_32462 ddata_ofs cyttsp4_sysinfo_ofs 0 32462 &enable_so_isr_irqs_read_fndecl_32462
157319 +enable_so_blk_execute_rq_fndecl_32470 blk_execute_rq fndecl 0 32470 NULL nohasharray
157320 +enable_so_out_kvec_left_ceph_connection_32470 out_kvec_left ceph_connection 0 32470 &enable_so_blk_execute_rq_fndecl_32470
157321 +enable_so_start_ordered_ops_fndecl_32475 start_ordered_ops fndecl 2-3 32475 NULL
157322 +enable_so_skb_shift_fndecl_32480 skb_shift fndecl 3 32480 NULL
157323 +enable_so_flctl_dma_fifo0_transfer_fndecl_32481 flctl_dma_fifo0_transfer fndecl 3 32481 NULL nohasharray
157324 +enable_so_j_len_reiserfs_journal_desc_32481 j_len reiserfs_journal_desc 0 32481 &enable_so_flctl_dma_fifo0_transfer_fndecl_32481
157325 +enable_so_sigmadsp_write_i2c_fndecl_32482 sigmadsp_write_i2c fndecl 4 32482 NULL
157326 +enable_so_iwl_dbgfs_frame_stats_read_fndecl_32488 iwl_dbgfs_frame_stats_read fndecl 3 32488 NULL
157327 +enable_so_s_fshift_ufs_sb_private_info_32491 s_fshift ufs_sb_private_info 0 32491 NULL
157328 +enable_so_card_send_command_fndecl_32492 card_send_command fndecl 3 32492 NULL
157329 +enable_so_read_pci_config_16_fndecl_32499 read_pci_config_16 fndecl 0 32499 NULL
157330 +enable_so_reply_nvif_notify_req_v0_32501 reply nvif_notify_req_v0 0 32501 NULL
157331 +enable_so_altera_swap_ir_fndecl_32505 altera_swap_ir fndecl 2 32505 NULL nohasharray
157332 +enable_so_alloc_group_attrs_fndecl_32505 alloc_group_attrs fndecl 2 32505 &enable_so_altera_swap_ir_fndecl_32505
157333 +enable_so_lmLogFormat_fndecl_32506 lmLogFormat fndecl 2 32506 NULL nohasharray
157334 +enable_so_acpi_unmap_fndecl_32506 acpi_unmap fndecl 1 32506 &enable_so_lmLogFormat_fndecl_32506
157335 +enable_so_num_tgtdevs_btrfs_bio_32507 num_tgtdevs btrfs_bio 0 32507 NULL
157336 +enable_so_transport_get_sectors_12_fndecl_32508 transport_get_sectors_12 fndecl 0 32508 NULL
157337 +enable_so_gx1_gx_base_fndecl_32509 gx1_gx_base fndecl 0 32509 NULL
157338 +enable_so_set_16kib_bfsize_stmmac_mode_ops_32520 set_16kib_bfsize stmmac_mode_ops 0 32520 NULL
157339 +enable_so_f_dupfd_fndecl_32521 f_dupfd fndecl 1 32521 NULL
157340 +enable_so_jffs2_acl_count_fndecl_32522 jffs2_acl_count fndecl 0-1 32522 NULL
157341 +enable_so_ext4_xattr_user_set_fndecl_32523 ext4_xattr_user_set fndecl 4 32523 NULL
157342 +enable_so_asrc_rate_fsl_asoc_card_priv_32525 asrc_rate fsl_asoc_card_priv 0 32525 NULL nohasharray
157343 +enable_so_frameoffset_b43_dmaring_32525 frameoffset b43_dmaring 0 32525 &enable_so_asrc_rate_fsl_asoc_card_priv_32525
157344 +enable_so_map_iommu_fndecl_32528 map_iommu fndecl 2 32528 NULL
157345 +enable_so_BBAR_rio_detail_32529 BBAR rio_detail 0 32529 NULL
157346 +enable_so_xenvif_max_queues_vardecl_32530 xenvif_max_queues vardecl 0 32530 NULL
157347 +enable_so_HDLC_irq_fndecl_32534 HDLC_irq fndecl 2 32534 NULL nohasharray
157348 +enable_so_num_comp_vectors_mlx4_caps_32534 num_comp_vectors mlx4_caps 0 32534 &enable_so_HDLC_irq_fndecl_32534
157349 +enable_so_ctrl_out_fndecl_32539 ctrl_out fndecl 5-3 32539 NULL
157350 +enable_so_ev_next_dev_data_32542 ev_next dev_data 0 32542 NULL
157351 +enable_so_wm8900_set_dai_pll_fndecl_32543 wm8900_set_dai_pll fndecl 4-5 32543 NULL
157352 +enable_so_cfg80211_inform_bss_width_fndecl_32545 cfg80211_inform_bss_width fndecl 10 32545 NULL
157353 +enable_so_rq_auth_slack_svc_rqst_32548 rq_auth_slack svc_rqst 0 32548 NULL
157354 +enable_so_TransferCount__MSG_SCSI_IO_REPLY_32554 TransferCount _MSG_SCSI_IO_REPLY 0 32554 NULL nohasharray
157355 +enable_so_yurex_write_fndecl_32554 yurex_write fndecl 3 32554 &enable_so_TransferCount__MSG_SCSI_IO_REPLY_32554
157356 +enable_so_x32_arch_ptrace_fndecl_32556 x32_arch_ptrace fndecl 3 32556 NULL
157357 +enable_so_sys_prctl_fndecl_32557 sys_prctl fndecl 3-4 32557 NULL
157358 +enable_so_pkey_table_len_mlx5_port_caps_32558 pkey_table_len mlx5_port_caps 0 32558 NULL nohasharray
157359 +enable_so_joydev_compat_ioctl_fndecl_32558 joydev_compat_ioctl fndecl 2 32558 &enable_so_pkey_table_len_mlx5_port_caps_32558
157360 +enable_so_tx_tx_exch_expiry_read_fndecl_32574 tx_tx_exch_expiry_read fndecl 3 32574 NULL nohasharray
157361 +enable_so_syt_interval_amdtp_stream_32574 syt_interval amdtp_stream 0 32574 &enable_so_tx_tx_exch_expiry_read_fndecl_32574
157362 +enable_so_iov_iter_zero_fndecl_32575 iov_iter_zero fndecl 1 32575 NULL
157363 +enable_so_ext4_try_to_write_inline_data_fndecl_32578 ext4_try_to_write_inline_data fndecl 4-3 32578 NULL
157364 +enable_so_msg_print_ext_header_fndecl_32580 msg_print_ext_header fndecl 0 32580 NULL
157365 +enable_so_inode_ext3_dir_entry_2_32583 inode ext3_dir_entry_2 0 32583 NULL
157366 +enable_so_fnic_fc_trace_get_data_fndecl_32585 fnic_fc_trace_get_data fndecl 0 32585 NULL nohasharray
157367 +enable_so_check_right_item_operations_32585 check_right item_operations 0 32585 &enable_so_fnic_fc_trace_get_data_fndecl_32585
157368 +enable_so_bop_assign_nilfs_bmap_operations_32598 bop_assign nilfs_bmap_operations 0 32598 NULL
157369 +enable_so_paging32_prefetch_gpte_fndecl_32604 paging32_prefetch_gpte fndecl 4 32604 NULL
157370 +enable_so_channel_num_sh_dmae_pdata_32606 channel_num sh_dmae_pdata 0 32606 NULL
157371 +enable_so_resp_len_brcmf_cfg80211_assoc_ielen_le_32607 resp_len brcmf_cfg80211_assoc_ielen_le 0 32607 NULL
157372 +enable_so_vlan_tag_atl1c_recv_ret_status_32608 vlan_tag atl1c_recv_ret_status 0 32608 NULL
157373 +enable_so_maxdevUnits_ore_striping_info_32610 maxdevUnits ore_striping_info 0 32610 NULL
157374 +enable_so_metronomefb_write_fndecl_32612 metronomefb_write fndecl 3 32612 NULL
157375 +enable_so_ceph_osd_data_length_fndecl_32615 ceph_osd_data_length fndecl 0 32615 NULL
157376 +enable_so_usb_alloc_streams_fndecl_32617 usb_alloc_streams fndecl 0 32617 NULL
157377 +enable_so_hfsplus_direct_IO_fndecl_32619 hfsplus_direct_IO fndecl 3 32619 NULL nohasharray
157378 +enable_so_SyS_llistxattr_fndecl_32619 SyS_llistxattr fndecl 3 32619 &enable_so_hfsplus_direct_IO_fndecl_32619
157379 +enable_so_ntfs_commit_pages_after_write_fndecl_32634 ntfs_commit_pages_after_write fndecl 0-4-3 32634 NULL
157380 +enable_so_pagesz_cifs_writedata_32638 pagesz cifs_writedata 0 32638 NULL
157381 +enable_so_do_page_add_anon_rmap_fndecl_32642 do_page_add_anon_rmap fndecl 3 32642 NULL
157382 +enable_so_digest_decode_fndecl_32644 digest_decode fndecl 0 32644 NULL
157383 +enable_so_wa_nep_queue_fndecl_32649 wa_nep_queue fndecl 2 32649 NULL
157384 +enable_so_debug_debug1_read_fndecl_32651 debug_debug1_read fndecl 3 32651 NULL
157385 +enable_so_phys_sca_base__synclinkmp_info_32654 phys_sca_base _synclinkmp_info 0 32654 NULL
157386 +enable_so_mgmt_generic_event_fndecl_32657 mgmt_generic_event fndecl 4 32657 NULL nohasharray
157387 +enable_so_dvb_ringbuffer_pkt_next_fndecl_32657 dvb_ringbuffer_pkt_next fndecl 0-2 32657 &enable_so_mgmt_generic_event_fndecl_32657
157388 +enable_so_icmpv6_manip_pkt_fndecl_32658 icmpv6_manip_pkt fndecl 4 32658 NULL nohasharray
157389 +enable_so_get_queue_depth_fndecl_32658 get_queue_depth fndecl 0 32658 &enable_so_icmpv6_manip_pkt_fndecl_32658
157390 +enable_so_nrof_flowrings_brcmf_msgbuf_32666 nrof_flowrings brcmf_msgbuf 0 32666 NULL
157391 +enable_so_rtsx_usb_transfer_data_fndecl_32669 rtsx_usb_transfer_data fndecl 4-2-5 32669 NULL
157392 +enable_so_compressed_bio_size_fndecl_32676 compressed_bio_size fndecl 0-2 32676 NULL
157393 +enable_so_engine_start_viafb_dev_32681 engine_start viafb_dev 0 32681 NULL nohasharray
157394 +enable_so_ab3100_get_set_reg_fndecl_32681 ab3100_get_set_reg fndecl 3 32681 &enable_so_engine_start_viafb_dev_32681
157395 +enable_so_length_ib_umem_32690 length ib_umem 0 32690 NULL
157396 +enable_so_radeon_drm_ioctl_fndecl_32696 radeon_drm_ioctl fndecl 2 32696 NULL
157397 +enable_so_ubifs_prepare_node_fndecl_32700 ubifs_prepare_node fndecl 3 32700 NULL
157398 +enable_so_write_file_ani_fndecl_32709 write_file_ani fndecl 3 32709 NULL
157399 +enable_so_dma_common_contiguous_remap_fndecl_32714 dma_common_contiguous_remap fndecl 2 32714 NULL
157400 +enable_so_size_hid_report_32715 size hid_report 0 32715 NULL
157401 +enable_so_layout_commit_fndecl_32717 layout_commit fndecl 3 32717 NULL
157402 +enable_so_f71882fg_device_add_fndecl_32719 f71882fg_device_add fndecl 1 32719 NULL
157403 +enable_so_residual_len_sts_entry_24xx_32720 residual_len sts_entry_24xx 0 32720 NULL
157404 +enable_so_inode_table_ext3_new_group_data_32721 inode_table ext3_new_group_data 0 32721 NULL
157405 +enable_so_ks8995_registers_read_fndecl_32738 ks8995_registers_read fndecl 5-6 32738 NULL
157406 +enable_so_driver_stats_read_fndecl_32739 driver_stats_read fndecl 3 32739 NULL
157407 +enable_so_goto_low_power_fndecl_32741 goto_low_power fndecl 0 32741 NULL
157408 +enable_so_requested_nr_virtfn_bnx2x_32742 requested_nr_virtfn bnx2x 0 32742 NULL
157409 +enable_so_read_file_tgt_stats_fndecl_32748 read_file_tgt_stats fndecl 3 32748 NULL
157410 +enable_so_vga_video_num_columns_vardecl_vgacon_c_32749 vga_video_num_columns vardecl_vgacon.c 0 32749 NULL nohasharray
157411 +enable_so_rds_tcp_xmit_fndecl_32749 rds_tcp_xmit fndecl 3 32749 &enable_so_vga_video_num_columns_vardecl_vgacon_c_32749
157412 +enable_so_lookup_zone_fndecl_32751 lookup_zone fndecl 0 32751 NULL
157413 +enable_so_adjust_priv_size_fndecl_32756 adjust_priv_size fndecl 0-1 32756 NULL
157414 +enable_so_cp2112_hid_get_fndecl_32758 cp2112_hid_get fndecl 4 32758 NULL
157415 +enable_so_fuse_file_ioctl_fndecl_32760 fuse_file_ioctl fndecl 2 32760 NULL
157416 +enable_so_rc_via_alen_mpls_route_config_32766 rc_via_alen mpls_route_config 0 32766 NULL
157417 +enable_so_gro_pull_from_frag0_fndecl_32770 gro_pull_from_frag0 fndecl 2 32770 NULL
157418 +enable_so_nvkm_ramht_new_fndecl_32772 nvkm_ramht_new fndecl 4-3 32772 NULL
157419 +enable_so_sm501_create_mem_fndecl_32778 sm501_create_mem fndecl 4 32778 NULL
157420 +enable_so_test_ofsl_cyttsp4_sysinfo_data_32781 test_ofsl cyttsp4_sysinfo_data 0 32781 NULL
157421 +enable_so_xfs_fsb_to_db_fndecl_32785 xfs_fsb_to_db fndecl 0-2 32785 NULL
157422 +enable_so_hpi_instream_ancillary_write_fndecl_32786 hpi_instream_ancillary_write fndecl 4 32786 NULL nohasharray
157423 +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
157424 +enable_so_portcntrs_2_read_fndecl_32793 portcntrs_2_read fndecl 3 32793 NULL
157425 +enable_so_mp_register_ioapic_fndecl_32802 mp_register_ioapic fndecl 3 32802 NULL
157426 +enable_so_pipe_usb_fifo_32805 pipe usb_fifo 0 32805 NULL nohasharray
157427 +enable_so_nfc_allocate_device_fndecl_32805 nfc_allocate_device fndecl 3 32805 &enable_so_pipe_usb_fifo_32805
157428 +enable_so_info_len_ib_ucm_info_32807 info_len ib_ucm_info 0 32807 NULL
157429 +enable_so_m_len_f2fs_map_blocks_32808 m_len f2fs_map_blocks 0 32808 NULL
157430 +enable_so_l_start_xfs_flock64_32809 l_start xfs_flock64 0 32809 NULL
157431 +enable_so_length_ppp_option_data_32814 length ppp_option_data 0 32814 NULL
157432 +enable_so_ib_uverbs_create_qp_fndecl_32816 ib_uverbs_create_qp fndecl 3 32816 NULL
157433 +enable_so_event_filter_write_fndecl_32818 event_filter_write fndecl 3 32818 NULL
157434 +enable_so_namelen_jfs_ea_32820 namelen jfs_ea 0 32820 NULL
157435 +enable_so_nvme_trans_log_temperature_fndecl_32822 nvme_trans_log_temperature fndecl 3 32822 NULL
157436 +enable_so_scrub_fixup_readpage_fndecl_32830 scrub_fixup_readpage fndecl 2 32830 NULL nohasharray
157437 +enable_so_num_rcv_urbs_vardecl_usbatm_c_32830 num_rcv_urbs vardecl_usbatm.c 0 32830 &enable_so_scrub_fixup_readpage_fndecl_32830
157438 +enable_so_ds_out_channels_hdspm_32836 ds_out_channels hdspm 0 32836 NULL
157439 +enable_so_num_amgms_mthca_limits_32845 num_amgms mthca_limits 0 32845 NULL
157440 +enable_so_s_inodes_per_block_bits_sysv_sb_info_32849 s_inodes_per_block_bits sysv_sb_info 0 32849 NULL
157441 +enable_so_gather_array_fndecl_32850 gather_array fndecl 3 32850 NULL
157442 +enable_so_ep_in_mcs_cb_32852 ep_in mcs_cb 0 32852 NULL
157443 +enable_so_br_startoff_xfs_bmbt_irec_32854 br_startoff xfs_bmbt_irec 0 32854 NULL
157444 +enable_so_size_mem_cgroup_threshold_ary_32855 size mem_cgroup_threshold_ary 0 32855 NULL
157445 +enable_so_uvc_debugfs_stats_read_fndecl_32856 uvc_debugfs_stats_read fndecl 3 32856 NULL
157446 +enable_so_should_defrag_range_fndecl_32859 should_defrag_range fndecl 2 32859 NULL
157447 +enable_so_tx_buf_clear_used_ks959_cb_32864 tx_buf_clear_used ks959_cb 0 32864 NULL
157448 +enable_so_duplex_phy_device_32869 duplex phy_device 0 32869 NULL
157449 +enable_so_wTotalLength_usb_security_descriptor_32872 wTotalLength usb_security_descriptor 0 32872 NULL
157450 +enable_so_buffer_len_bfad_debug_info_32873 buffer_len bfad_debug_info 0 32873 NULL
157451 +enable_so_dvb_ringbuffer_read_user_fndecl_32877 dvb_ringbuffer_read_user fndecl 3-0 32877 NULL nohasharray
157452 +enable_so_dz_divisor_dn_zone_32877 dz_divisor dn_zone 0 32877 &enable_so_dvb_ringbuffer_read_user_fndecl_32877
157453 +enable_so_mem_cgroup_move_charge_pte_range_fndecl_32885 mem_cgroup_move_charge_pte_range fndecl 2 32885 NULL nohasharray
157454 +enable_so_btrfs_cow_block_fndecl_32885 btrfs_cow_block fndecl 0 32885 &enable_so_mem_cgroup_move_charge_pte_range_fndecl_32885 nohasharray
157455 +enable_so_add_action_fndecl_32885 add_action fndecl 4-0 32885 &enable_so_btrfs_cow_block_fndecl_32885
157456 +enable_so_snoop_table_size_ib_mad_qp_info_32891 snoop_table_size ib_mad_qp_info 0 32891 NULL
157457 +enable_so_snd_gus_dram_read_fndecl_32893 snd_gus_dram_read fndecl 4 32893 NULL
157458 +enable_so___wa_xfer_setup_segs_fndecl_32902 __wa_xfer_setup_segs fndecl 2 32902 NULL
157459 +enable_so_xfs_bmbt_set_startoff_fndecl_32903 xfs_bmbt_set_startoff fndecl 2 32903 NULL
157460 +enable_so_wm831x_num_wm831x_pdata_32904 wm831x_num wm831x_pdata 0 32904 NULL
157461 +enable_so_copy_off_netrx_pending_operations_32906 copy_off netrx_pending_operations 0 32906 NULL
157462 +enable_so_adnp_gpio_setup_fndecl_32910 adnp_gpio_setup fndecl 2 32910 NULL
157463 +enable_so_space_init_fndecl_32911 space_init fndecl 2 32911 NULL
157464 +enable_so_max_r2t_iscsi_bus_flash_session_32912 max_r2t iscsi_bus_flash_session 0 32912 NULL
157465 +enable_so_num_vfs_qlcnic_sriov_32913 num_vfs qlcnic_sriov 0 32913 NULL
157466 +enable_so_ipv6_getsockopt_sticky_fndecl_32916 ipv6_getsockopt_sticky fndecl 5-0 32916 NULL
157467 +enable_so_sta_flags_read_fndecl_32917 sta_flags_read fndecl 3 32917 NULL
157468 +enable_so_conn_send_command_fndecl_32918 conn_send_command fndecl 4-6 32918 NULL
157469 +enable_so_pci_get_related_function_fndecl_32920 pci_get_related_function fndecl 2 32920 NULL
157470 +enable_so_nr_events_kioctx_32925 nr_events kioctx 0 32925 NULL
157471 +enable_so_vram_base_mga_mc_32927 vram_base mga_mc 0 32927 NULL
157472 +enable_so___add_action_fndecl_32937 __add_action fndecl 4 32937 NULL
157473 +enable_so___copy_from_user_ll_fndecl_32945 __copy_from_user_ll fndecl 0 32945 NULL
157474 +enable_so_al_stripes_resize_parms_32950 al_stripes resize_parms 0 32950 NULL
157475 +enable_so_diva_data_q_init_fndecl_32954 diva_data_q_init fndecl 2 32954 NULL
157476 +enable_so_btrfsic_map_block_fndecl_32956 btrfsic_map_block fndecl 3 32956 NULL
157477 +enable_so_drm_agp_bind_pages_fndecl_32959 drm_agp_bind_pages fndecl 3 32959 NULL
157478 +enable_so___carl9170_rx_fndecl_32963 __carl9170_rx fndecl 3 32963 NULL
157479 +enable_so_bop_gather_data_nilfs_bmap_operations_32964 bop_gather_data nilfs_bmap_operations 0 32964 NULL
157480 +enable_so_total_data_buflen_hv_netvsc_packet_32967 total_data_buflen hv_netvsc_packet 0 32967 NULL
157481 +enable_so_ttm_alloc_new_pages_fndecl_32971 ttm_alloc_new_pages fndecl 5 32971 NULL
157482 +enable_so_s_max_slots_ocfs2_super_block_32972 s_max_slots ocfs2_super_block 0 32972 NULL
157483 +enable_so_proc_bus_pci_lseek_fndecl_32974 proc_bus_pci_lseek fndecl 2 32974 NULL
157484 +enable_so_p_replen_rpc_procinfo_32991 p_replen rpc_procinfo 0 32991 NULL nohasharray
157485 +enable_so_bn_read_lock_fndecl_32991 bn_read_lock fndecl 2 32991 &enable_so_p_replen_rpc_procinfo_32991
157486 +enable_so_resid_len_request_32994 resid_len request 0 32994 NULL
157487 +enable_so_wtpref_nfs_fsinfo_33003 wtpref nfs_fsinfo 0 33003 NULL
157488 +enable_so_mtdchar_write_fndecl_33004 mtdchar_write fndecl 3 33004 NULL
157489 +enable_so_dwNtbInMaxSize_usb_cdc_ncm_ntb_parameters_33006 dwNtbInMaxSize usb_cdc_ncm_ntb_parameters 0 33006 NULL
157490 +enable_so_pktshift_sge_33011 pktshift sge 0 33011 NULL nohasharray
157491 +enable_so_offset_fl_pg_chunk_33011 offset fl_pg_chunk 0 33011 &enable_so_pktshift_sge_33011
157492 +enable_so_size_qlcnic_82xx_dump_template_hdr_33013 size qlcnic_82xx_dump_template_hdr 0 33013 NULL nohasharray
157493 +enable_so_ion_ioctl_fndecl_33013 ion_ioctl fndecl 2 33013 &enable_so_size_qlcnic_82xx_dump_template_hdr_33013
157494 +enable_so_nr_regions_amd_flash_info_33022 nr_regions amd_flash_info 0 33022 NULL
157495 +enable_so_rq_size_nes_hw_qp_33024 rq_size nes_hw_qp 0 33024 NULL
157496 +enable_so_snd_rawmidi_read_fndecl_33026 snd_rawmidi_read fndecl 3 33026 NULL
157497 +enable_so_offset_xen_netif_rx_response_33028 offset xen_netif_rx_response 0 33028 NULL
157498 +enable_so_amdgpu_afmt_calc_cts_fndecl_33031 amdgpu_afmt_calc_cts fndecl 1-4 33031 NULL
157499 +enable_so_rsi_sdio_read_register_multiple_fndecl_33035 rsi_sdio_read_register_multiple fndecl 3 33035 NULL
157500 +enable_so_sacked_out_tcp_sock_33038 sacked_out tcp_sock 0 33038 NULL
157501 +enable_so_pipeline_pre_to_defrag_swi_read_fndecl_33042 pipeline_pre_to_defrag_swi_read fndecl 3 33042 NULL
157502 +enable_so_files_ceph_mds_reply_inode_33047 files ceph_mds_reply_inode 0 33047 NULL
157503 +enable_so_journal_init_revoke_table_fndecl_33048 journal_init_revoke_table fndecl 1 33048 NULL
157504 +enable_so_HighPriorityCredit_mpt2sas_facts_33050 HighPriorityCredit mpt2sas_facts 0 33050 NULL
157505 +enable_so_svc_rdma_xdr_get_reply_hdr_len_fndecl_33056 svc_rdma_xdr_get_reply_hdr_len fndecl 0 33056 NULL nohasharray
157506 +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
157507 +enable_so_dev_read_fndecl_33058 dev_read fndecl 3 33058 NULL
157508 +enable_so_iov_iter_copy_from_user_atomic_fndecl_33059 iov_iter_copy_from_user_atomic fndecl 4-0 33059 NULL
157509 +enable_so_rxbufsz_ar5523_33060 rxbufsz ar5523 0 33060 NULL nohasharray
157510 +enable_so_nfilters_mc5_params_33060 nfilters mc5_params 0 33060 &enable_so_rxbufsz_ar5523_33060
157511 +enable_so_size_ec168_req_33061 size ec168_req 0 33061 NULL
157512 +enable_so_iio_device_add_info_mask_type_fndecl_33062 iio_device_add_info_mask_type fndecl 0 33062 NULL
157513 +enable_so_compress_compressor_33066 compress compressor 0 33066 NULL
157514 +enable_so_wil_read_pmccfg_fndecl_33071 wil_read_pmccfg fndecl 3 33071 NULL
157515 +enable_so_prepare_inurb_fndecl_33073 prepare_inurb fndecl 1 33073 NULL
157516 +enable_so___fat_nfs_get_inode_fndecl_33079 __fat_nfs_get_inode fndecl 4 33079 NULL
157517 +enable_so_descriptor_size_pmc_ctx_33081 descriptor_size pmc_ctx 0 33081 NULL
157518 +enable_so_e1000_alloc_rx_skb_fndecl_33089 e1000_alloc_rx_skb fndecl 2 33089 NULL nohasharray
157519 +enable_so_tx_headroom_llc_shdlc_33089 tx_headroom llc_shdlc 0 33089 &enable_so_e1000_alloc_rx_skb_fndecl_33089
157520 +enable_so_spu_base_info_size_qib_user_info_33091 spu_base_info_size qib_user_info 0 33091 NULL
157521 +enable_so_vram_size_cirrus_mc_33094 vram_size cirrus_mc 0 33094 NULL nohasharray
157522 +enable_so_ocfs2_control_read_fndecl_33094 ocfs2_control_read fndecl 3 33094 &enable_so_vram_size_cirrus_mc_33094
157523 +enable_so_write_gssp_fndecl_33095 write_gssp fndecl 3 33095 NULL
157524 +enable_so_do_get_write_access_fndecl_33097 do_get_write_access fndecl 0 33097 NULL
157525 +enable_so_return_wc_byte_len_ib_mad_local_private_33101 return_wc_byte_len ib_mad_local_private 0 33101 NULL
157526 +enable_so___snd_util_memblk_new_fndecl_33112 __snd_util_memblk_new fndecl 2 33112 NULL
157527 +enable_so_nla_strlcpy_fndecl_33113 nla_strlcpy fndecl 0 33113 NULL
157528 +enable_so_hdr_len_virtnet_info_33118 hdr_len virtnet_info 0 33118 NULL
157529 +enable_so_len_cfg80211_mgmt_tx_params_33119 len cfg80211_mgmt_tx_params 0 33119 NULL
157530 +enable_so_fl_create_fndecl_33120 fl_create fndecl 5 33120 NULL
157531 +enable_so_hw_token_ehci_qtd_33122 hw_token ehci_qtd 0 33122 NULL
157532 +enable_so_omninet_write_fndecl_33123 omninet_write fndecl 4 33123 NULL nohasharray
157533 +enable_so_ring_size_amdgpu_ring_33123 ring_size amdgpu_ring 0 33123 &enable_so_omninet_write_fndecl_33123
157534 +enable_so_gnttab_map_fndecl_33124 gnttab_map fndecl 2 33124 NULL
157535 +enable_so_max_resp_sz_nfs4_channel_attrs_33127 max_resp_sz nfs4_channel_attrs 0 33127 NULL nohasharray
157536 +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
157537 +enable_so_masklength_iio_dev_33129 masklength iio_dev 0 33129 NULL
157538 +enable_so_hvutil_transport_send_fndecl_33131 hvutil_transport_send fndecl 3 33131 NULL nohasharray
157539 +enable_so_readrids_fndecl_33131 readrids fndecl 0 33131 &enable_so_hvutil_transport_send_fndecl_33131
157540 +enable_so_trebleinit_CHIPDESC_33133 trebleinit CHIPDESC 0 33133 NULL
157541 +enable_so_in_words_ib_uverbs_cmd_hdr_33134 in_words ib_uverbs_cmd_hdr 0 33134 NULL
157542 +enable_so_store_msg_fndecl_33138 store_msg fndecl 3 33138 NULL
157543 +enable_so_acpi_os_write_memory_fndecl_33139 acpi_os_write_memory fndecl 3-1 33139 NULL nohasharray
157544 +enable_so___get_vm_area_caller_fndecl_33139 __get_vm_area_caller fndecl 1-3 33139 &enable_so_acpi_os_write_memory_fndecl_33139
157545 +enable_so_rate_info_mwl8k_rxd_sta_33140 rate_info mwl8k_rxd_sta 0 33140 NULL
157546 +enable_so_size_bmp_header_33141 size bmp_header 0 33141 NULL nohasharray
157547 +enable_so_hostname_len_nlm_lookup_host_info_33141 hostname_len nlm_lookup_host_info 0 33141 &enable_so_size_bmp_header_33141
157548 +enable_so_fm_extent_count_fiemap_33144 fm_extent_count fiemap 0 33144 NULL
157549 +enable_so_l2cap_segment_le_sdu_fndecl_33145 l2cap_segment_le_sdu fndecl 4 33145 NULL
157550 +enable_so_putused_user_fndecl_33152 putused_user fndecl 3 33152 NULL
157551 +enable_so_osd_req_list_partition_objects_fndecl_33155 osd_req_list_partition_objects fndecl 5 33155 NULL nohasharray
157552 +enable_so_starting_cid_cnic_eth_dev_33155 starting_cid cnic_eth_dev 0 33155 &enable_so_osd_req_list_partition_objects_fndecl_33155
157553 +enable_so_lbs_rdmac_write_fndecl_33156 lbs_rdmac_write fndecl 3 33156 NULL
157554 +enable_so_len_ip_set_ext_type_33164 len ip_set_ext_type 0 33164 NULL
157555 +enable_so_mml_isar_hw_33168 mml isar_hw 0 33168 NULL
157556 +enable_so_walk_pgd_range_fndecl_33169 walk_pgd_range fndecl 0 33169 NULL
157557 +enable_so_cx231xx_init_isoc_fndecl_33174 cx231xx_init_isoc fndecl 4-2-3 33174 NULL
157558 +enable_so_hcs_params2_xhci_hcd_33175 hcs_params2 xhci_hcd 0 33175 NULL
157559 +enable_so_set_connectable_fndecl_33177 set_connectable fndecl 4 33177 NULL
157560 +enable_so_rw_devices_btrfs_fs_devices_33182 rw_devices btrfs_fs_devices 0 33182 NULL
157561 +enable_so_arp_filter_size_mwifiex_adapter_33183 arp_filter_size mwifiex_adapter 0 33183 NULL
157562 +enable_so_niqflint_vf_resources_33189 niqflint vf_resources 0 33189 NULL
157563 +enable_so_ath6kl_wmi_set_ip_cmd_fndecl_33191 ath6kl_wmi_set_ip_cmd fndecl 2 33191 NULL
157564 +enable_so_Memhscx_empty_fifo_fndecl_33197 Memhscx_empty_fifo fndecl 2 33197 NULL
157565 +enable_so_data_avail_vardecl_core_c_33198 data_avail vardecl_core.c 0 33198 NULL
157566 +enable_so_init_map_ip_fndecl_33199 init_map_ip fndecl 5 33199 NULL
157567 +enable_so_ieee80211_rx_mgmt_probe_beacon_fndecl_33208 ieee80211_rx_mgmt_probe_beacon fndecl 3 33208 NULL
157568 +enable_so_block_size_dm_bufio_client_33221 block_size dm_bufio_client 0 33221 NULL
157569 +enable_so_num_lan_msix_i40e_pf_33223 num_lan_msix i40e_pf 0 33223 NULL
157570 +enable_so_ip_options_get_fndecl_33225 ip_options_get fndecl 4 33225 NULL
157571 +enable_so_l1oip_socket_recv_fndecl_33226 l1oip_socket_recv fndecl 6 33226 NULL nohasharray
157572 +enable_so_i_dir_acl_ext3_inode_33226 i_dir_acl ext3_inode 0 33226 &enable_so_l1oip_socket_recv_fndecl_33226
157573 +enable_so_segment_count_main_f2fs_super_block_33230 segment_count_main f2fs_super_block 0 33230 NULL
157574 +enable_so_cfg80211_connect_result_fndecl_33232 cfg80211_connect_result fndecl 4-6 33232 NULL
157575 +enable_so_ext4_zeroout_es_fndecl_33233 ext4_zeroout_es fndecl 0 33233 NULL
157576 +enable_so_lustre_posix_acl_xattr_reduce_space_fndecl_33235 lustre_posix_acl_xattr_reduce_space fndecl 3 33235 NULL
157577 +enable_so_nsumblk_nilfs_segsum_info_33238 nsumblk nilfs_segsum_info 0 33238 NULL
157578 +enable_so_udf_load_partdesc_fndecl_33239 udf_load_partdesc fndecl 2 33239 NULL
157579 +enable_so_save_tx_buffer_request_fndecl_33245 save_tx_buffer_request fndecl 3 33245 NULL
157580 +enable_so_mfs_fc_lport_33249 mfs fc_lport 0 33249 NULL
157581 +enable_so_alloc_apertures_fndecl_33250 alloc_apertures fndecl 1 33250 NULL
157582 +enable_so_metadata_size_ecryptfs_crypt_stat_33252 metadata_size ecryptfs_crypt_stat 0 33252 NULL
157583 +enable_so_size_reserved_mem_33254 size reserved_mem 0 33254 NULL
157584 +enable_so_wb_offset_nfs_page_33255 wb_offset nfs_page 0 33255 NULL
157585 +enable_so_handle_bytes_file_handle_33261 handle_bytes file_handle 0 33261 NULL
157586 +enable_so_rs_sta_dbgfs_stats_table_read_fndecl_33262 rs_sta_dbgfs_stats_table_read fndecl 3 33262 NULL
157587 +enable_so_mem_size_ramoops_platform_data_33263 mem_size ramoops_platform_data 0 33263 NULL
157588 +enable_so_ip_vs_prepare_tunneled_skb_fndecl_33269 ip_vs_prepare_tunneled_skb fndecl 3 33269 NULL
157589 +enable_so_ocfs2_change_extent_flag_fndecl_33270 ocfs2_change_extent_flag fndecl 5-3 33270 NULL nohasharray
157590 +enable_so_mem_end_net_device_33270 mem_end net_device 0 33270 &enable_so_ocfs2_change_extent_flag_fndecl_33270
157591 +enable_so_drv_file_st_partstat_33277 drv_file st_partstat 0 33277 NULL
157592 +enable_so_ep_msg_out_peak_usb_device_33281 ep_msg_out peak_usb_device 0 33281 NULL nohasharray
157593 +enable_so_hpfs_readpages_fndecl_33281 hpfs_readpages fndecl 4 33281 &enable_so_ep_msg_out_peak_usb_device_33281 nohasharray
157594 +enable_so_sbsector_iso9660_options_33281 sbsector iso9660_options 0 33281 &enable_so_hpfs_readpages_fndecl_33281
157595 +enable_so_mappable_end_i915_gtt_33282 mappable_end i915_gtt 0 33282 NULL
157596 +enable_so_cipso_v4_gentag_loc_fndecl_33292 cipso_v4_gentag_loc fndecl 0 33292 NULL nohasharray
157597 +enable_so_frame_size_camera_data_33292 frame_size camera_data 0 33292 &enable_so_cipso_v4_gentag_loc_fndecl_33292
157598 +enable_so_align_gf100_gr_data_33300 align gf100_gr_data 0 33300 NULL
157599 +enable_so_vlen_nfsd_readargs_33302 vlen nfsd_readargs 0 33302 NULL
157600 +enable_so_e_phnum_elf64_hdr_33305 e_phnum elf64_hdr 0 33305 NULL
157601 +enable_so_tracing_set_trace_write_fndecl_33307 tracing_set_trace_write fndecl 3 33307 NULL
157602 +enable_so_max_width_vsp1_rwpf_33314 max_width vsp1_rwpf 0 33314 NULL
157603 +enable_so_nl80211_send_deauth_fndecl_33315 nl80211_send_deauth fndecl 4 33315 NULL nohasharray
157604 +enable_so_ima_show_htable_value_fndecl_33315 ima_show_htable_value fndecl 2 33315 &enable_so_nl80211_send_deauth_fndecl_33315
157605 +enable_so__iwl_dbgfs_bf_params_write_fndecl_33318 _iwl_dbgfs_bf_params_write fndecl 3 33318 NULL
157606 +enable_so_index_vardecl_via82xx_modem_c_33320 index vardecl_via82xx_modem.c 0 33320 NULL
157607 +enable_so_acpi_gsb_i2c_read_bytes_fndecl_33322 acpi_gsb_i2c_read_bytes fndecl 4 33322 NULL
157608 +enable_so_hlen_h4_recv_pkt_33324 hlen h4_recv_pkt 0 33324 NULL
157609 +enable_so_ahd_sg_setup_fndecl_33341 ahd_sg_setup fndecl 4-5 33341 NULL
157610 +enable_so_stk_prepare_sio_buffers_fndecl_33347 stk_prepare_sio_buffers fndecl 2 33347 NULL
157611 +enable_so_max_vpi_lpfc_max_cfg_param_33350 max_vpi lpfc_max_cfg_param 0 33350 NULL
157612 +enable_so_setup_mcfg_map_fndecl_33351 setup_mcfg_map fndecl 3-4-5 33351 NULL
157613 +enable_so_rx_hw_stuck_read_fndecl_33352 rx_hw_stuck_read fndecl 3 33352 NULL
157614 +enable_so_dvb_register_device_fndecl_33363 dvb_register_device fndecl 0 33363 NULL
157615 +enable_so_udl_prime_create_fndecl_33364 udl_prime_create fndecl 2 33364 NULL nohasharray
157616 +enable_so_scanlength_usbvision_frame_33364 scanlength usbvision_frame 0 33364 &enable_so_udl_prime_create_fndecl_33364 nohasharray
157617 +enable_so_bpa10x_recv_fndecl_33364 bpa10x_recv fndecl 4 33364 &enable_so_scanlength_usbvision_frame_33364
157618 +enable_so_ihandlen_xfs_fsop_handlereq_33370 ihandlen xfs_fsop_handlereq 0 33370 NULL
157619 +enable_so_lpfc_sg_seg_cnt_init_fndecl_33371 lpfc_sg_seg_cnt_init fndecl 2 33371 NULL
157620 +enable_so_ieee_802_1x_local_info_33374 ieee_802_1x local_info 0 33374 NULL
157621 +enable_so_ib_qib_max_srq_wrs_vardecl_33376 ib_qib_max_srq_wrs vardecl 0 33376 NULL
157622 +enable_so_sys_io_getevents_fndecl_33381 sys_io_getevents fndecl 3 33381 NULL
157623 +enable_so_length_mac_configuration_hdr_33392 length mac_configuration_hdr 0 33392 NULL
157624 +enable_so_sys_poll_fndecl_33397 sys_poll fndecl 2 33397 NULL
157625 +enable_so_data_offset_rndis_packet_33403 data_offset rndis_packet 0 33403 NULL
157626 +enable_so_drbg_blocklen_fndecl_33412 drbg_blocklen fndecl 0 33412 NULL
157627 +enable_so_dma_fifo_alloc_fndecl_33415 dma_fifo_alloc fndecl 2-3-5 33415 NULL
157628 +enable_so_flush_space_fndecl_33418 flush_space fndecl 0 33418 NULL
157629 +enable_so_lbmRead_fndecl_33420 lbmRead fndecl 2 33420 NULL
157630 +enable_so_dreq_gss_dccp_request_sock_33423 dreq_gss dccp_request_sock 0 33423 NULL nohasharray
157631 +enable_so_rsxx_cram_write_fndecl_33423 rsxx_cram_write fndecl 3 33423 &enable_so_dreq_gss_dccp_request_sock_33423
157632 +enable_so_tt3650_ci_msg_fndecl_33424 tt3650_ci_msg fndecl 4 33424 NULL
157633 +enable_so_offset_vb2_dma_sg_buf_33426 offset vb2_dma_sg_buf 0 33426 NULL
157634 +enable_so_intr_dma_usb_pcwd_private_33427 intr_dma usb_pcwd_private 0 33427 NULL
157635 +enable_so_change_mtu_fndecl_33432 change_mtu fndecl 2 33432 NULL nohasharray
157636 +enable_so_in_nextiag_dinomap_33432 in_nextiag dinomap 0 33432 &enable_so_change_mtu_fndecl_33432
157637 +enable_so__nfs4_proc_readlink_fndecl_33436 _nfs4_proc_readlink fndecl 4-3 33436 NULL
157638 +enable_so_wqe_size_ib_uverbs_post_send_33437 wqe_size ib_uverbs_post_send 0 33437 NULL
157639 +enable_so_nilfs_set_nsegments_fndecl_33438 nilfs_set_nsegments fndecl 2 33438 NULL
157640 +enable_so_mmc_test_area_io_seq_fndecl_33440 mmc_test_area_io_seq fndecl 2-9 33440 NULL
157641 +enable_so_w_dloarea_33444 w dloarea 0 33444 NULL
157642 +enable_so_ipath_verbs_send_pio_fndecl_33450 ipath_verbs_send_pio fndecl 5 33450 NULL
157643 +enable_so_mt7601u_mcu_msg_alloc_fndecl_33453 mt7601u_mcu_msg_alloc fndecl 3 33453 NULL
157644 +enable_so_ocfs2_divide_xattr_bucket_fndecl_33455 ocfs2_divide_xattr_bucket fndecl 3-4 33455 NULL
157645 +enable_so_oprofilefs_ulong_from_user_fndecl_33456 oprofilefs_ulong_from_user fndecl 3 33456 NULL
157646 +enable_so_alloc_flex_gd_fndecl_33464 alloc_flex_gd fndecl 1 33464 NULL
157647 +enable_so_tx_pipe_usbpn_dev_33474 tx_pipe usbpn_dev 0 33474 NULL
157648 +enable_so_packets_out_tcp_sock_33478 packets_out tcp_sock 0 33478 NULL
157649 +enable_so___nbd_ioctl_fndecl_33480 __nbd_ioctl fndecl 4 33480 NULL
157650 +enable_so_pci_asix_setup_fndecl_33482 pci_asix_setup fndecl 4 33482 NULL
157651 +enable_so_ath6kl_buf_alloc_fndecl_33483 ath6kl_buf_alloc fndecl 1 33483 NULL
157652 +enable_so_ftdi_elan_write_fndecl_33486 ftdi_elan_write fndecl 3 33486 NULL
157653 +enable_so_ath6kl_wmi_cmd_send_fndecl_33493 ath6kl_wmi_cmd_send fndecl 2 33493 NULL
157654 +enable_so_root_size_adfs_discrecord_33498 root_size adfs_discrecord 0 33498 NULL
157655 +enable_so_pstore_file_read_fndecl_33499 pstore_file_read fndecl 3 33499 NULL nohasharray
157656 +enable_so_num_rx_descs_iser_conn_33499 num_rx_descs iser_conn 0 33499 &enable_so_pstore_file_read_fndecl_33499
157657 +enable_so_ocfs2_xattr_shrink_size_fndecl_33507 ocfs2_xattr_shrink_size fndecl 3 33507 NULL
157658 +enable_so_chunk_io_fndecl_33510 chunk_io fndecl 3 33510 NULL
157659 +enable_so_pcigart_offset_drm_radeon_private_33512 pcigart_offset drm_radeon_private 0 33512 NULL
157660 +enable_so___asymmetric_key_hex_to_key_id_fndecl_33513 __asymmetric_key_hex_to_key_id fndecl 3 33513 NULL
157661 +enable_so_check_mirror_fndecl_33517 check_mirror fndecl 2-1 33517 NULL nohasharray
157662 +enable_so_usblp_read_fndecl_33517 usblp_read fndecl 3 33517 &enable_so_check_mirror_fndecl_33517
157663 +enable_so_len_writequeue_entry_33522 len writequeue_entry 0 33522 NULL nohasharray
157664 +enable_so_write_file_regval_fndecl_33522 write_file_regval fndecl 3 33522 &enable_so_len_writequeue_entry_33522
157665 +enable_so_start_xen_memory_region_33527 start xen_memory_region 0 33527 NULL nohasharray
157666 +enable_so_iwl_dbgfs_tx_pwr_lmt_read_fndecl_33527 iwl_dbgfs_tx_pwr_lmt_read fndecl 3 33527 &enable_so_start_xen_memory_region_33527
157667 +enable_so_offset_port_buffer_33530 offset port_buffer 0 33530 NULL
157668 +enable_so___mxt_write_reg_fndecl_33533 __mxt_write_reg fndecl 3 33533 NULL
157669 +enable_so_ieee802154_hdr_addr_len_fndecl_33535 ieee802154_hdr_addr_len fndecl 0 33535 NULL
157670 +enable_so_si476x_radio_read_agc_blob_fndecl_33538 si476x_radio_read_agc_blob fndecl 3 33538 NULL
157671 +enable_so_sq_size_nes_hw_qp_33544 sq_size nes_hw_qp 0 33544 NULL nohasharray
157672 +enable_so_num_seq_vgastate_33544 num_seq vgastate 0 33544 &enable_so_sq_size_nes_hw_qp_33544
157673 +enable_so_dlfb_setup_modes_fndecl_33548 dlfb_setup_modes fndecl 4 33548 NULL
157674 +enable_so_kvm_vcpu_read_guest_fndecl_33552 kvm_vcpu_read_guest fndecl 2-4 33552 NULL
157675 +enable_so_mwifiex_create_ba_tbl_fndecl_33555 mwifiex_create_ba_tbl fndecl 3 33555 NULL
157676 +enable_so_cpb_s5p_mfc_buf_size_33560 cpb s5p_mfc_buf_size 0 33560 NULL
157677 +enable_so_nfc_llcp_build_sdreq_tlv_fndecl_33563 nfc_llcp_build_sdreq_tlv fndecl 3 33563 NULL
157678 +enable_so_snd_rawmidi_kernel_write1_fndecl_33564 snd_rawmidi_kernel_write1 fndecl 4-0 33564 NULL
157679 +enable_so_snb_pci2phy_map_init_fndecl_33565 snb_pci2phy_map_init fndecl 1 33565 NULL
157680 +enable_so_recv_buf_size_netvsc_device_33569 recv_buf_size netvsc_device 0 33569 NULL nohasharray
157681 +enable_so_qlen_status_event_list_33569 qlen status_event_list 0 33569 &enable_so_recv_buf_size_netvsc_device_33569
157682 +enable_so_ext3_xattr_ibody_get_fndecl_33571 ext3_xattr_ibody_get fndecl 0 33571 NULL
157683 +enable_so_source_irq_acpi_madt_interrupt_override_33574 source_irq acpi_madt_interrupt_override 0 33574 NULL
157684 +enable_so_lcm_fndecl_33580 lcm fndecl 0-2-1 33580 NULL nohasharray
157685 +enable_so_self_dnode_33580 self dnode 0 33580 &enable_so_lcm_fndecl_33580 nohasharray
157686 +enable_so_batadv_tt_update_changes_fndecl_33580 batadv_tt_update_changes fndecl 3 33580 &enable_so_self_dnode_33580
157687 +enable_so_debug_debug3_read_fndecl_33581 debug_debug3_read fndecl 3 33581 NULL
157688 +enable_so_btrfs_direct_IO_fndecl_33586 btrfs_direct_IO fndecl 3 33586 NULL
157689 +enable_so_i2c_readregs_fndecl_33590 i2c_readregs fndecl 5 33590 NULL
157690 +enable_so_hci_mgmt_cmd_fndecl_33591 hci_mgmt_cmd fndecl 4 33591 NULL
157691 +enable_so_num_ae_requests_vardecl_33594 num_ae_requests vardecl 0 33594 NULL
157692 +enable_so_lde_namelen_lu_dirent_33595 lde_namelen lu_dirent 0 33595 NULL
157693 +enable_so_fsl_spi_bufs_fndecl_33599 fsl_spi_bufs fndecl 0 33599 NULL
157694 +enable_so_max_header_size_iriap_cb_33603 max_header_size iriap_cb 0 33603 NULL
157695 +enable_so___kfifo_out_fndecl_33612 __kfifo_out fndecl 0-3 33612 NULL nohasharray
157696 +enable_so_drm_prime_pages_to_sg_fndecl_33612 drm_prime_pages_to_sg fndecl 2 33612 &enable_so___kfifo_out_fndecl_33612
157697 +enable_so_hfsplus_find_cat_fndecl_33616 hfsplus_find_cat fndecl 0 33616 NULL nohasharray
157698 +enable_so_names_size_ceph_inode_xattrs_info_33616 names_size ceph_inode_xattrs_info 0 33616 &enable_so_hfsplus_find_cat_fndecl_33616
157699 +enable_so_lpfc_gen_req_fndecl_33617 lpfc_gen_req fndecl 8 33617 NULL
157700 +enable_so_num_retune_mobile_texts_wm8994_priv_33620 num_retune_mobile_texts wm8994_priv 0 33620 NULL
157701 +enable_so_rc_framerate_num_s5p_mfc_enc_params_33630 rc_framerate_num s5p_mfc_enc_params 0 33630 NULL nohasharray
157702 +enable_so_nf_getsockopt_fndecl_33630 nf_getsockopt fndecl 0 33630 &enable_so_rc_framerate_num_s5p_mfc_enc_params_33630 nohasharray
157703 +enable_so_scif_setup_qp_accept_fndecl_33630 scif_setup_qp_accept fndecl 4 33630 &enable_so_nf_getsockopt_fndecl_33630
157704 +enable_so_data_size_kretprobe_33633 data_size kretprobe 0 33633 NULL
157705 +enable_so_find_smallest_section_pfn_fndecl_33641 find_smallest_section_pfn fndecl 0-3 33641 NULL
157706 +enable_so_memblock_size_vxge_hw_mempool_33647 memblock_size vxge_hw_mempool 0 33647 NULL
157707 +enable_so_size_dma_buf_33648 size dma_buf 0 33648 NULL nohasharray
157708 +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
157709 +enable_so_check_header_fndecl_33649 check_header fndecl 2 33649 NULL
157710 +enable_so_tool_peer_spad_write_fndecl_33652 tool_peer_spad_write fndecl 3 33652 NULL
157711 +enable_so_journal_init_revoke_fndecl_33654 journal_init_revoke fndecl 2 33654 NULL
157712 +enable_so_savage_init_hw_fndecl_33678 savage_init_hw fndecl 0 33678 NULL
157713 +enable_so_il4965_rs_switch_to_mimo2_fndecl_33682 il4965_rs_switch_to_mimo2 fndecl 6 33682 NULL
157714 +enable_so_data_size_vxge_rx_priv_33684 data_size vxge_rx_priv 0 33684 NULL
157715 +enable_so_mb_find_order_for_block_fndecl_33691 mb_find_order_for_block fndecl 0 33691 NULL
157716 +enable_so_ide_cdrom_probe_capabilities_fndecl_33699 ide_cdrom_probe_capabilities fndecl 0 33699 NULL
157717 +enable_so_alignment_offset_queue_limits_33701 alignment_offset queue_limits 0 33701 NULL
157718 +enable_so_jffs2_sum_write_data_fndecl_33705 jffs2_sum_write_data fndecl 3-4 33705 NULL nohasharray
157719 +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
157720 +enable_so_calculate_memsize_fndecl_33706 calculate_memsize fndecl 0-5-3-4-2-1 33706 NULL
157721 +enable_so_network_header_sk_buff_33708 network_header sk_buff 0 33708 NULL
157722 +enable_so_out_phase_usb_stream_kernel_33720 out_phase usb_stream_kernel 0 33720 NULL nohasharray
157723 +enable_so_vlsi_alloc_ring_fndecl_33720 vlsi_alloc_ring fndecl 3-4 33720 &enable_so_out_phase_usb_stream_kernel_33720
157724 +enable_so_rx_rate_brcmf_sta_info_le_33727 rx_rate brcmf_sta_info_le 0 33727 NULL
157725 +enable_so_video_height_sis_video_info_33732 video_height sis_video_info 0 33732 NULL nohasharray
157726 +enable_so_atwrite_submit_fndecl_33732 atwrite_submit fndecl 3 33732 &enable_so_video_height_sis_video_info_33732
157727 +enable_so_hpfs_bmap_fndecl_33733 hpfs_bmap fndecl 2-0 33733 NULL
157728 +enable_so_xres_fb_var_screeninfo_33734 xres fb_var_screeninfo 0 33734 NULL
157729 +enable_so_ovl_copy_up_data_fndecl_33738 ovl_copy_up_data fndecl 3 33738 NULL
157730 +enable_so_stub_chips_nr_vardecl_i2c_stub_c_33739 stub_chips_nr vardecl_i2c-stub.c 0 33739 NULL
157731 +enable_so_raw_cmd_copyout_fndecl_33741 raw_cmd_copyout fndecl 0 33741 NULL
157732 +enable_so_xfs_buf_read_map_fndecl_33742 xfs_buf_read_map fndecl 3 33742 NULL
157733 +enable_so_aircable_process_packet_fndecl_33744 aircable_process_packet fndecl 4 33744 NULL
157734 +enable_so_lengthComponentIdent_pathComponent_33758 lengthComponentIdent pathComponent 0 33758 NULL
157735 +enable_so_avr_ack_ptr_dccp_ackvec_record_33759 avr_ack_ptr dccp_ackvec_record 0 33759 NULL
157736 +enable_so_cim_la_size_adapter_params_33761 cim_la_size adapter_params 0 33761 NULL
157737 +enable_so_efx_farch_dimension_resources_fndecl_33764 efx_farch_dimension_resources fndecl 2 33764 NULL
157738 +enable_so_default_bpp_vardecl_sm501fb_c_33765 default_bpp vardecl_sm501fb.c 0 33765 NULL
157739 +enable_so_wmi_send_fndecl_33768 wmi_send fndecl 4 33768 NULL
157740 +enable_so_f_height_gsc_frame_33772 f_height gsc_frame 0 33772 NULL
157741 +enable_so_cx2341x_ctrl_new_std_fndecl_33782 cx2341x_ctrl_new_std fndecl 4-3-6 33782 NULL
157742 +enable_so_max_gpios_rdc321x_gpio_pdata_33783 max_gpios rdc321x_gpio_pdata 0 33783 NULL
157743 +enable_so_pcmcia_replace_cis_fndecl_33785 pcmcia_replace_cis fndecl 3 33785 NULL nohasharray
157744 +enable_so_fm_mapped_extents_ll_user_fiemap_33785 fm_mapped_extents ll_user_fiemap 0 33785 &enable_so_pcmcia_replace_cis_fndecl_33785
157745 +enable_so_sca3000_read_data_fndecl_33787 sca3000_read_data fndecl 4 33787 NULL
157746 +enable_so_nv30_fb_tile_comp_fndecl_33788 nv30_fb_tile_comp fndecl 3 33788 NULL
157747 +enable_so_sis190_try_rx_copy_fndecl_33790 sis190_try_rx_copy fndecl 3 33790 NULL
157748 +enable_so_sd_write_data_fndecl_33792 sd_write_data fndecl 5 33792 NULL
157749 +enable_so_icv_truncbits_xfrm_algo_auth_info_33798 icv_truncbits xfrm_algo_auth_info 0 33798 NULL
157750 +enable_so_edt_ft5x06_register_read_fndecl_33803 edt_ft5x06_register_read fndecl 0 33803 NULL
157751 +enable_so_b43legacy_plcp_get_bitrate_idx_ofdm_fndecl_33816 b43legacy_plcp_get_bitrate_idx_ofdm fndecl 0 33816 NULL
157752 +enable_so_custom_length_iscsi_stats_33819 custom_length iscsi_stats 0 33819 NULL
157753 +enable_so_snd_find_free_minor_fndecl_33820 snd_find_free_minor fndecl 0 33820 NULL
157754 +enable_so_dn_ide_drive_s_33823 dn ide_drive_s 0 33823 NULL
157755 +enable_so_SyS_keyctl_fndecl_33825 SyS_keyctl fndecl 4 33825 NULL
157756 +enable_so_mult_usb_ep_33831 mult usb_ep 0 33831 NULL
157757 +enable_so_selinux_setprocattr_fndecl_33832 selinux_setprocattr fndecl 4 33832 NULL
157758 +enable_so_blk_size_ide_tape_obj_33837 blk_size ide_tape_obj 0 33837 NULL
157759 +enable_so_targetsize_xt_target_33840 targetsize xt_target 0 33840 NULL
157760 +enable_so_depth_drm_vmw_size_33842 depth drm_vmw_size 0 33842 NULL
157761 +enable_so_mgmt_cmd_complete_fndecl_33845 mgmt_cmd_complete fndecl 6 33845 NULL
157762 +enable_so_add_partition_fndecl_33847 add_partition fndecl 3-4-2 33847 NULL
157763 +enable_so_sctp_addto_chunk_fixed_fndecl_33853 sctp_addto_chunk_fixed fndecl 2 33853 NULL
157764 +enable_so_xfs_qm_scall_trunc_qfile_fndecl_33855 xfs_qm_scall_trunc_qfile fndecl 2 33855 NULL
157765 +enable_so_rx_buf_total_size__mgslpc_info_33856 rx_buf_total_size _mgslpc_info 0 33856 NULL
157766 +enable_so_dvb_dmxdev_set_buffer_size_fndecl_33864 dvb_dmxdev_set_buffer_size fndecl 2 33864 NULL
157767 +enable_so_root_adfs_discrecord_33866 root adfs_discrecord 0 33866 NULL nohasharray
157768 +enable_so_h5_link_control_fndecl_33866 h5_link_control fndecl 3 33866 &enable_so_root_adfs_discrecord_33866
157769 +enable_so_edge_tty_recv_fndecl_33877 edge_tty_recv fndecl 3 33877 NULL
157770 +enable_so_tolen_nfs_linkargs_33881 tolen nfs_linkargs 0 33881 NULL nohasharray
157771 +enable_so_walk_system_ram_res_fndecl_33881 walk_system_ram_res fndecl 2-1 33881 &enable_so_tolen_nfs_linkargs_33881
157772 +enable_so_len_gsm_control_33882 len gsm_control 0 33882 NULL
157773 +enable_so_reiserfs_xattr_get_fndecl_33887 reiserfs_xattr_get fndecl 0 33887 NULL nohasharray
157774 +enable_so_pktgen_if_write_fndecl_33887 pktgen_if_write fndecl 3 33887 &enable_so_reiserfs_xattr_get_fndecl_33887
157775 +enable_so_il_dbgfs_tx_queue_read_fndecl_33895 il_dbgfs_tx_queue_read fndecl 3 33895 NULL
157776 +enable_so_src_len_ccp_xts_aes_engine_33899 src_len ccp_xts_aes_engine 0 33899 NULL
157777 +enable_so_init_stripe_fndecl_33902 init_stripe fndecl 2 33902 NULL nohasharray
157778 +enable_so_direct2indirect_fndecl_33902 direct2indirect fndecl 5 33902 &enable_so_init_stripe_fndecl_33902
157779 +enable_so_xfs_bmbt_maxrecs_fndecl_33906 xfs_bmbt_maxrecs fndecl 0-2 33906 NULL
157780 +enable_so__install_special_mapping_fndecl_33907 _install_special_mapping fndecl 3-2 33907 NULL
157781 +enable_so_rx_desc_count_xgbe_prv_data_33915 rx_desc_count xgbe_prv_data 0 33915 NULL
157782 +enable_so_lpfc_idiag_queinfo_read_fndecl_33917 lpfc_idiag_queinfo_read fndecl 3 33917 NULL
157783 +enable_so_w83627hf_device_add_fndecl_33919 w83627hf_device_add fndecl 1 33919 NULL
157784 +enable_so_wil_vring_alloc_skb_fndecl_33924 wil_vring_alloc_skb fndecl 4 33924 NULL
157785 +enable_so_size_cmdline_vardecl_dma_contiguous_c_33925 size_cmdline vardecl_dma-contiguous.c 0 33925 NULL
157786 +enable_so_genl_allocate_reserve_groups_fndecl_33930 genl_allocate_reserve_groups fndecl 1 33930 NULL
157787 +enable_so_max_channels_snd_midi_channel_set_33931 max_channels snd_midi_channel_set 0 33931 NULL
157788 +enable_so_numa_add_memblk_to_fndecl_33934 numa_add_memblk_to fndecl 2-3 33934 NULL nohasharray
157789 +enable_so_isl1208_i2c_set_regs_fndecl_33934 isl1208_i2c_set_regs fndecl 4 33934 &enable_so_numa_add_memblk_to_fndecl_33934 nohasharray
157790 +enable_so_tcp_push_fndecl_33934 tcp_push fndecl 3 33934 &enable_so_isl1208_i2c_set_regs_fndecl_33934
157791 +enable_so_pci_scan_device_fndecl_33935 pci_scan_device fndecl 2 33935 NULL
157792 +enable_so_iwl_dbgfs_plcp_delta_write_fndecl_33937 iwl_dbgfs_plcp_delta_write fndecl 3 33937 NULL
157793 +enable_so_get_info_fndecl_33938 get_info fndecl 3 33938 NULL
157794 +enable_so_bulk_in_usbatm_driver_33939 bulk_in usbatm_driver 0 33939 NULL
157795 +enable_so_wMaxPacketSize_usb_endpoint_descriptor_33942 wMaxPacketSize usb_endpoint_descriptor 0 33942 NULL
157796 +enable_so_ext4_alloc_file_blocks_fndecl_33946 ext4_alloc_file_blocks fndecl 2-3-4 33946 NULL
157797 +enable_so_i_first_extent_iso_inode_info_33947 i_first_extent iso_inode_info 0 33947 NULL
157798 +enable_so_num_rsp_hci_inquiry_req_33953 num_rsp hci_inquiry_req 0 33953 NULL
157799 +enable_so_lpfc_sg_seg_cnt_vardecl_lpfc_attr_c_33956 lpfc_sg_seg_cnt vardecl_lpfc_attr.c 0 33956 NULL
157800 +enable_so_ext4_get_block_fndecl_33967 ext4_get_block fndecl 2 33967 NULL
157801 +enable_so_nfc_hci_send_cmd_fndecl_33969 nfc_hci_send_cmd fndecl 5 33969 NULL
157802 +enable_so_ocfs2_lock_refcount_tree_fndecl_33972 ocfs2_lock_refcount_tree fndecl 2 33972 NULL nohasharray
157803 +enable_so_mtdswap_init_fndecl_33972 mtdswap_init fndecl 2 33972 &enable_so_ocfs2_lock_refcount_tree_fndecl_33972
157804 +enable_so_pm8001_store_update_fw_fndecl_33975 pm8001_store_update_fw fndecl 4 33975 NULL
157805 +enable_so_max_indirect_segments_blkfront_info_33976 max_indirect_segments blkfront_info 0 33976 NULL
157806 +enable_so_cwarn_cm4000_dev_33978 cwarn cm4000_dev 0 33978 NULL
157807 +enable_so_buf_len_wmi_tlv_mgmt_rx_ev_33979 buf_len wmi_tlv_mgmt_rx_ev 0 33979 NULL
157808 +enable_so_usbat_bulk_write_fndecl_33983 usbat_bulk_write fndecl 3-4 33983 NULL
157809 +enable_so_unit_off_ore_striping_info_33989 unit_off ore_striping_info 0 33989 NULL
157810 +enable_so_sectorsize_scrub_ctx_33993 sectorsize scrub_ctx 0 33993 NULL
157811 +enable_so_num_ioim_reqs_bfa_iocfc_fwcfg_s_33994 num_ioim_reqs bfa_iocfc_fwcfg_s 0 33994 NULL nohasharray
157812 +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
157813 +enable_so_count_xfs_attr_sf_hdr_33996 count xfs_attr_sf_hdr 0 33996 NULL
157814 +enable_so_batadv_tvlv_unicast_send_fndecl_34005 batadv_tvlv_unicast_send fndecl 7 34005 NULL
157815 +enable_so_rxextrahdrroom_dma_info_34007 rxextrahdrroom dma_info 0 34007 NULL
157816 +enable_so_ctxtcnt_qib_devdata_34012 ctxtcnt qib_devdata 0 34012 NULL
157817 +enable_so_periodic_size_ehci_hcd_34013 periodic_size ehci_hcd 0 34013 NULL
157818 +enable_so_wl12xx_spi_raw_read_fndecl_34014 wl12xx_spi_raw_read fndecl 4 34014 NULL nohasharray
157819 +enable_so_set_local_name_fndecl_34014 set_local_name fndecl 4 34014 &enable_so_wl12xx_spi_raw_read_fndecl_34014
157820 +enable_so_parent_len_fndecl_34020 parent_len fndecl 0 34020 NULL nohasharray
157821 +enable_so_uwb_rc_neh_grok_event_fndecl_34020 uwb_rc_neh_grok_event fndecl 3 34020 &enable_so_parent_len_fndecl_34020
157822 +enable_so___kvm_write_guest_page_fndecl_34021 __kvm_write_guest_page fndecl 2-5 34021 NULL
157823 +enable_so_membase_jsm_board_34030 membase jsm_board 0 34030 NULL
157824 +enable_so_size_edac_mc_layer_34031 size edac_mc_layer 0 34031 NULL nohasharray
157825 +enable_so_b_cnt_chip_select_34031 b_cnt chip_select 0 34031 &enable_so_size_edac_mc_layer_34031
157826 +enable_so_strlen_fndecl_34033 strlen fndecl 0 34033 NULL
157827 +enable_so_blksize_sdio_cis_34036 blksize sdio_cis 0 34036 NULL
157828 +enable_so_sector_number_blkif_request_discard_34039 sector_number blkif_request_discard 0 34039 NULL nohasharray
157829 +enable_so_wil_addba_tx_request_fndecl_34039 wil_addba_tx_request fndecl 3 34039 &enable_so_sector_number_blkif_request_discard_34039
157830 +enable_so_req_bio_endio_fndecl_34041 req_bio_endio fndecl 3 34041 NULL nohasharray
157831 +enable_so_conf_read_fndecl_34041 conf_read fndecl 3 34041 &enable_so_req_bio_endio_fndecl_34041
157832 +enable_so_len_hdlcdrv_hdlcrx_34043 len hdlcdrv_hdlcrx 0 34043 NULL
157833 +enable_so_dma_size_nx_host_rds_ring_34047 dma_size nx_host_rds_ring 0 34047 NULL
157834 +enable_so_ide_do_setfeature_fndecl_34050 ide_do_setfeature fndecl 3 34050 NULL
157835 +enable_so_sys_mmap_pgoff_fndecl_34056 sys_mmap_pgoff fndecl 2 34056 NULL
157836 +enable_so_ib_uverbs_create_xsrq_fndecl_34064 ib_uverbs_create_xsrq fndecl 3 34064 NULL
157837 +enable_so_lov_get_stripecnt_fndecl_34066 lov_get_stripecnt fndecl 0-3 34066 NULL
157838 +enable_so_gsm_control_modem_fndecl_34068 gsm_control_modem fndecl 3 34068 NULL
157839 +enable_so_wb_bytes_nfs_page_34071 wb_bytes nfs_page 0 34071 NULL nohasharray
157840 +enable_so_opt_val_tcp_repair_opt_34071 opt_val tcp_repair_opt 0 34071 &enable_so_wb_bytes_nfs_page_34071
157841 +enable_so_qp_alloc_guest_work_fndecl_34074 qp_alloc_guest_work fndecl 5-3 34074 NULL nohasharray
157842 +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
157843 +enable_so_isert_build_rdma_wr_fndecl_34085 isert_build_rdma_wr fndecl 5-6 34085 NULL
157844 +enable_so_rec_len_ext2_dir_entry_2_34086 rec_len ext2_dir_entry_2 0 34086 NULL nohasharray
157845 +enable_so_get_info_tcp_congestion_ops_34086 get_info tcp_congestion_ops 0 34086 &enable_so_rec_len_ext2_dir_entry_2_34086
157846 +enable_so_mst_node_alsz_ubifs_info_34087 mst_node_alsz ubifs_info 0 34087 NULL
157847 +enable_so_LFBsize_sis_video_info_34089 LFBsize sis_video_info 0 34089 NULL
157848 +enable_so___memblock_alloc_base_fndecl_34092 __memblock_alloc_base fndecl 0-2-1-3 34092 NULL
157849 +enable_so_dccm_len_iwl_cfg_34095 dccm_len iwl_cfg 0 34095 NULL
157850 +enable_so_max_frame_ft_sess_34098 max_frame ft_sess 0 34098 NULL nohasharray
157851 +enable_so_compat_SyS_mbind_fndecl_34098 compat_SyS_mbind fndecl 5 34098 &enable_so_max_frame_ft_sess_34098
157852 +enable_so_c_chmask_f_uac2_opts_34103 c_chmask f_uac2_opts 0 34103 NULL
157853 +enable_so_vme_user_read_fndecl_34105 vme_user_read fndecl 3 34105 NULL
157854 +enable_so_reg_read_fndecl_34106 reg_read fndecl 0 34106 NULL
157855 +enable_so_do_shmat_fndecl_34107 do_shmat fndecl 5 34107 NULL
157856 +enable_so___wa_xfer_setup_sizes_fndecl_34109 __wa_xfer_setup_sizes fndecl 0 34109 NULL
157857 +enable_so_lcd_right_margin_atyfb_par_34110 lcd_right_margin atyfb_par 0 34110 NULL
157858 +enable_so_reserved_eq_mlx4_func_cap_34117 reserved_eq mlx4_func_cap 0 34117 NULL
157859 +enable_so_chunk_size_lirc_driver_34118 chunk_size lirc_driver 0 34118 NULL
157860 +enable_so_qxl_alloc_bo_reserved_fndecl_34119 qxl_alloc_bo_reserved fndecl 3 34119 NULL
157861 +enable_so_nf_nat_ipv4_manip_pkt_fndecl_34120 nf_nat_ipv4_manip_pkt fndecl 2 34120 NULL
157862 +enable_so_cw1200_sdio_align_size_fndecl_34124 cw1200_sdio_align_size fndecl 2 34124 NULL nohasharray
157863 +enable_so_size_qlcnic_fw_dump_34124 size qlcnic_fw_dump 0 34124 &enable_so_cw1200_sdio_align_size_fndecl_34124
157864 +enable_so_nfs_vmtruncate_fndecl_34126 nfs_vmtruncate fndecl 2 34126 NULL
157865 +enable_so_do_command_fndecl_34128 do_command fndecl 0 34128 NULL
157866 +enable_so_digestsize_hash_tfm_34135 digestsize hash_tfm 0 34135 NULL
157867 +enable_so_dst_width_snd_pcm_plugin_34144 dst_width snd_pcm_plugin 0 34144 NULL
157868 +enable_so_substream_count_snd_pcm_str_34149 substream_count snd_pcm_str 0 34149 NULL
157869 +enable_so_object_size_kmem_cache_34151 object_size kmem_cache 0 34151 NULL
157870 +enable_so_vmax_packet_size_pwc_device_34153 vmax_packet_size pwc_device 0 34153 NULL
157871 +enable_so_sky2_change_mtu_fndecl_34157 sky2_change_mtu fndecl 2 34157 NULL nohasharray
157872 +enable_so_data_size_dm_ulog_request_34157 data_size dm_ulog_request 0 34157 &enable_so_sky2_change_mtu_fndecl_34157
157873 +enable_so_nb_if_sdio_packet_34158 nb if_sdio_packet 0 34158 NULL nohasharray
157874 +enable_so_usb_pipe_ua101_stream_34158 usb_pipe ua101_stream 0 34158 &enable_so_nb_if_sdio_packet_34158 nohasharray
157875 +enable_so_max_requests_rpcrdma_create_data_internal_34158 max_requests rpcrdma_create_data_internal 0 34158 &enable_so_usb_pipe_ua101_stream_34158
157876 +enable_so_krb5_decrypt_fndecl_34166 krb5_decrypt fndecl 5 34166 NULL
157877 +enable_so_save_mr_fndecl_34167 save_mr fndecl 4 34167 NULL
157878 +enable_so_blockmask_sddr55_card_info_34172 blockmask sddr55_card_info 0 34172 NULL nohasharray
157879 +enable_so_iwl_dbgfs_plcp_delta_read_fndecl_34172 iwl_dbgfs_plcp_delta_read fndecl 3 34172 &enable_so_blockmask_sddr55_card_info_34172
157880 +enable_so_osst_seek_sector_fndecl_34173 osst_seek_sector fndecl 3 34173 NULL
157881 +enable_so_buffers_pipe_inode_info_34187 buffers pipe_inode_info 0 34187 NULL
157882 +enable_so_sys_recv_fndecl_34188 sys_recv fndecl 3 34188 NULL
157883 +enable_so_new_oblock_dm_cache_migration_34189 new_oblock dm_cache_migration 0 34189 NULL
157884 +enable_so_si476x_radio_read_rds_blckcnt_blob_fndecl_34192 si476x_radio_read_rds_blckcnt_blob fndecl 3 34192 NULL
157885 +enable_so_length_dm_target_spec_34193 length dm_target_spec 0 34193 NULL
157886 +enable_so_nouveau_cli_create_fndecl_34194 nouveau_cli_create fndecl 3 34194 NULL
157887 +enable_so_map_length_scrub_recover_34196 map_length scrub_recover 0 34196 NULL
157888 +enable_so_write_room_tty_operations_34200 write_room tty_operations 0 34200 NULL
157889 +enable_so_cxgb4vf_change_mtu_fndecl_34204 cxgb4vf_change_mtu fndecl 2 34204 NULL
157890 +enable_so_cx23888_ir_rx_read_fndecl_34210 cx23888_ir_rx_read fndecl 3 34210 NULL
157891 +enable_so_xen_evtchn_max_channels_fndecl_34213 xen_evtchn_max_channels fndecl 0 34213 NULL
157892 +enable_so_snd_pcm_lib_write_fndecl_34216 snd_pcm_lib_write fndecl 0 34216 NULL
157893 +enable_so_new_sync_write_fndecl_34217 new_sync_write fndecl 0-3 34217 NULL
157894 +enable_so_total_out_z_stream_s_34221 total_out z_stream_s 0 34221 NULL
157895 +enable_so_ext4_expand_extra_isize_fndecl_34225 ext4_expand_extra_isize fndecl 2 34225 NULL
157896 +enable_so_ath6kl_wmi_simple_cmd_fndecl_34229 ath6kl_wmi_simple_cmd fndecl 2 34229 NULL nohasharray
157897 +enable_so___vxge_hw_channel_allocate_fndecl_34229 __vxge_hw_channel_allocate fndecl 3 34229 &enable_so_ath6kl_wmi_simple_cmd_fndecl_34229
157898 +enable_so_isdnhdlc_decode_fndecl_34233 isdnhdlc_decode fndecl 0 34233 NULL nohasharray
157899 +enable_so_m_len_s_mbuf_34233 m_len s_mbuf 0 34233 &enable_so_isdnhdlc_decode_fndecl_34233
157900 +enable_so_max_devs_supported_ipr_ioa_cfg_34240 max_devs_supported ipr_ioa_cfg 0 34240 NULL
157901 +enable_so_cfpkt_pad_trail_fndecl_34244 cfpkt_pad_trail fndecl 2 34244 NULL nohasharray
157902 +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
157903 +enable_so_agno_xfs_extent_busy_34245 agno xfs_extent_busy 0 34245 NULL
157904 +enable_so___vmx_complete_interrupts_fndecl_34246 __vmx_complete_interrupts fndecl 2 34246 NULL
157905 +enable_so_rss_cpus_vardecl_efx_c_34253 rss_cpus vardecl_efx.c 0 34253 NULL nohasharray
157906 +enable_so_pktgen_finalize_skb_fndecl_34253 pktgen_finalize_skb fndecl 3 34253 &enable_so_rss_cpus_vardecl_efx_c_34253
157907 +enable_so___reserve_region_with_split_fndecl_34259 __reserve_region_with_split fndecl 3-2 34259 NULL
157908 +enable_so_status_tulip_rx_desc_34260 status tulip_rx_desc 0 34260 NULL
157909 +enable_so_MaxTransactSize_smb2_negotiate_rsp_34261 MaxTransactSize smb2_negotiate_rsp 0 34261 NULL
157910 +enable_so_count_igbvf_ring_34264 count igbvf_ring 0 34264 NULL
157911 +enable_so_reg_read_smsc911x_ops_34274 reg_read smsc911x_ops 0 34274 NULL
157912 +enable_so_max_segs_mmc_host_34276 max_segs mmc_host 0 34276 NULL nohasharray
157913 +enable_so_tty_port_register_device_fndecl_34276 tty_port_register_device fndecl 3 34276 &enable_so_max_segs_mmc_host_34276
157914 +enable_so_ea_get_fndecl_34289 ea_get fndecl 3 34289 NULL nohasharray
157915 +enable_so_ocfs2_group_from_res_fndecl_34289 ocfs2_group_from_res fndecl 0 34289 &enable_so_ea_get_fndecl_34289
157916 +enable_so_cpu_msix_table_sz_MPT3SAS_ADAPTER_34295 cpu_msix_table_sz MPT3SAS_ADAPTER 0 34295 NULL
157917 +enable_so_skb_coalesce_rx_frag_fndecl_34296 skb_coalesce_rx_frag fndecl 3-4 34296 NULL
157918 +enable_so_p1_FS_QENTRY_34311 p1 FS_QENTRY 0 34311 NULL
157919 +enable_so_usb6fire_pcm_init_urb_fndecl_34318 usb6fire_pcm_init_urb fndecl 4 34318 NULL
157920 +enable_so_acm_tty_write_fndecl_34323 acm_tty_write fndecl 3 34323 NULL
157921 +enable_so_quirk_strict_duplicate_filter_read_fndecl_34330 quirk_strict_duplicate_filter_read fndecl 3 34330 NULL
157922 +enable_so_kvm_cpu_get_extint_fndecl_34341 kvm_cpu_get_extint fndecl 0 34341 NULL
157923 +enable_so_usb_alloc_stream_buffers_fndecl_34344 usb_alloc_stream_buffers fndecl 3 34344 NULL
157924 +enable_so_ib_ipath_max_cqes_vardecl_34359 ib_ipath_max_cqes vardecl 0 34359 NULL
157925 +enable_so_blkdev_minors_vardecl_dev_c_34365 blkdev_minors vardecl_dev.c 0 34365 NULL
157926 +enable_so_write_file_frameerrors_fndecl_34370 write_file_frameerrors fndecl 3 34370 NULL
157927 +enable_so_get_bad_peb_limit_fndecl_34374 get_bad_peb_limit fndecl 0-2 34374 NULL
157928 +enable_so_bytes_to_read_mpt2_diag_read_buffer_34380 bytes_to_read mpt2_diag_read_buffer 0 34380 NULL
157929 +enable_so_r_minimode_34384 r minimode 0 34384 NULL
157930 +enable_so_pfn_mthca_uar_34385 pfn mthca_uar 0 34385 NULL
157931 +enable_so_vd_blocknr_nilfs_vdesc_34386 vd_blocknr nilfs_vdesc 0 34386 NULL
157932 +enable_so_max_sge_rds_iw_device_34387 max_sge rds_iw_device 0 34387 NULL nohasharray
157933 +enable_so_type_nvkm_mm_node_34387 type nvkm_mm_node 0 34387 &enable_so_max_sge_rds_iw_device_34387
157934 +enable_so_sel_read_handle_status_fndecl_34392 sel_read_handle_status fndecl 3 34392 NULL
157935 +enable_so_ath6kl_wmi_set_inact_period_fndecl_34398 ath6kl_wmi_set_inact_period fndecl 2 34398 NULL
157936 +enable_so_min_scaled_height_bttv_crop_34408 min_scaled_height bttv_crop 0 34408 NULL
157937 +enable_so___i2c_transfer_fndecl_34417 __i2c_transfer fndecl 0 34417 NULL
157938 +enable_so_w_minimode_34418 w minimode 0 34418 NULL
157939 +enable_so_rawv6_setsockopt_fndecl_34422 rawv6_setsockopt fndecl 5 34422 NULL
157940 +enable_so_fragsize_inet_cork_34425 fragsize inet_cork 0 34425 NULL
157941 +enable_so_vs_xdrsize_svc_version_34426 vs_xdrsize svc_version 0 34426 NULL
157942 +enable_so_meta_ino_num_f2fs_sb_info_34435 meta_ino_num f2fs_sb_info 0 34435 NULL
157943 +enable_so_ctrl_set_res_ver_fndecl_34447 ctrl_set_res_ver fndecl 3 34447 NULL
157944 +enable_so_ath9k_dump_legacy_btcoex_fndecl_34449 ath9k_dump_legacy_btcoex fndecl 0 34449 NULL nohasharray
157945 +enable_so_window_len_regmap_range_node_34449 window_len regmap_range_node 0 34449 &enable_so_ath9k_dump_legacy_btcoex_fndecl_34449
157946 +enable_so_copy_size_vmxnet3_tx_ctx_34453 copy_size vmxnet3_tx_ctx 0 34453 NULL
157947 +enable_so_exceptions_per_area_pstore_34460 exceptions_per_area pstore 0 34460 NULL
157948 +enable_so_offsets_size_binder_transaction_data_34461 offsets_size binder_transaction_data 0 34461 NULL
157949 +enable_so_num_regs_regmap_irq_chip_34465 num_regs regmap_irq_chip 0 34465 NULL
157950 +enable_so_fd_copyin_fndecl_34468 fd_copyin fndecl 3 34468 NULL
157951 +enable_so_MaxMSIxVectors_mpt2sas_facts_34470 MaxMSIxVectors mpt2sas_facts 0 34470 NULL
157952 +enable_so_nv_device_resource_len_fndecl_34472 nv_device_resource_len fndecl 0 34472 NULL
157953 +enable_so_MaxCommands_DAC960_V1_Enquiry_34475 MaxCommands DAC960_V1_Enquiry 0 34475 NULL
157954 +enable_so_start_btrfs_ordered_extent_34479 start btrfs_ordered_extent 0 34479 NULL
157955 +enable_so_num_rx_queues_net_device_34480 num_rx_queues net_device 0 34480 NULL
157956 +enable_so_i2c_hid_command_fndecl_34481 i2c_hid_command fndecl 4 34481 NULL
157957 +enable_so_ocfs2_find_xe_in_bucket_fndecl_34483 ocfs2_find_xe_in_bucket fndecl 0 34483 NULL
157958 +enable_so_cp210x_get_config_fndecl_34486 cp210x_get_config fndecl 4 34486 NULL
157959 +enable_so_dma_bd_table_34490 dma bd_table 0 34490 NULL
157960 +enable_so_do_ipt_set_ctl_fndecl_34493 do_ipt_set_ctl fndecl 4 34493 NULL
157961 +enable_so_acpi_ex_get_serial_access_length_fndecl_34496 acpi_ex_get_serial_access_length fndecl 0-2 34496 NULL
157962 +enable_so_il4965_ucode_general_stats_read_fndecl_34502 il4965_ucode_general_stats_read fndecl 3 34502 NULL
157963 +enable_so_bf_mcs_wmi_notify_req_done_event_34509 bf_mcs wmi_notify_req_done_event 0 34509 NULL
157964 +enable_so_buf_len_rx_sci_port_34512 buf_len_rx sci_port 0 34512 NULL
157965 +enable_so_count_res_proc_context_34514 count res_proc_context 0 34514 NULL
157966 +enable_so_clk_enable_fndecl_34522 clk_enable fndecl 0 34522 NULL
157967 +enable_so_overflow_maj_vardecl_user_mad_c_34524 overflow_maj vardecl_user_mad.c 0 34524 NULL
157968 +enable_so_srp_free_req_fndecl_34531 srp_free_req fndecl 4 34531 NULL
157969 +enable_so_SavagePanelHeight_savagefb_par_34532 SavagePanelHeight savagefb_par 0 34532 NULL nohasharray
157970 +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
157971 +enable_so_speakup_file_write_fndecl_34533 speakup_file_write fndecl 3 34533 NULL
157972 +enable_so_track_pfn_remap_fndecl_34534 track_pfn_remap fndecl 3-5 34534 NULL
157973 +enable_so_resid_sg_io_hdr_34541 resid sg_io_hdr 0 34541 NULL
157974 +enable_so_host_size_scsi_transport_template_34551 host_size scsi_transport_template 0 34551 NULL
157975 +enable_so_dvb_aplay_fndecl_34555 dvb_aplay fndecl 3 34555 NULL
157976 +enable_so_btmrvl_hscfgcmd_read_fndecl_34556 btmrvl_hscfgcmd_read fndecl 3 34556 NULL
157977 +enable_so_maximum_mfc_control_34558 maximum mfc_control 0 34558 NULL
157978 +enable_so_maxpacket_limit_usb_ep_34566 maxpacket_limit usb_ep 0 34566 NULL
157979 +enable_so_rx_ring_num_config_param_34571 rx_ring_num config_param 0 34571 NULL
157980 +enable_so_sb16_copy_from_user_fndecl_34575 sb16_copy_from_user fndecl 10-7-6 34575 NULL
157981 +enable_so_blkno_range2trim_34581 blkno range2trim 0 34581 NULL
157982 +enable_so_inum_ubifs_dent_node_34584 inum ubifs_dent_node 0 34584 NULL
157983 +enable_so_blk_queue_alignment_offset_fndecl_34591 blk_queue_alignment_offset fndecl 2 34591 NULL
157984 +enable_so_hcd_alloc_coherent_fndecl_34597 hcd_alloc_coherent fndecl 0-5 34597 NULL
157985 +enable_so_min_resource_constraint_34598 min resource_constraint 0 34598 NULL
157986 +enable_so_shmem_setxattr_fndecl_34600 shmem_setxattr fndecl 4 34600 NULL
157987 +enable_so_ath6kl_wmi_data_hdr_add_fndecl_34601 ath6kl_wmi_data_hdr_add fndecl 8 34601 NULL
157988 +enable_so_net_default_tx_rate_ray_dev_t_34604 net_default_tx_rate ray_dev_t 0 34604 NULL nohasharray
157989 +enable_so_sys_sync_file_range_fndecl_34604 sys_sync_file_range fndecl 2-3 34604 &enable_so_net_default_tx_rate_ray_dev_t_34604
157990 +enable_so___check_block_validity_fndecl_34606 __check_block_validity fndecl 0 34606 NULL
157991 +enable_so_end_shift_iwl_fw_dbg_dest_tlv_34608 end_shift iwl_fw_dbg_dest_tlv 0 34608 NULL
157992 +enable_so_bcm63xx_hsspi_do_txrx_fndecl_34614 bcm63xx_hsspi_do_txrx fndecl 0 34614 NULL nohasharray
157993 +enable_so_fip_dlen_fip_desc_34614 fip_dlen fip_desc 0 34614 &enable_so_bcm63xx_hsspi_do_txrx_fndecl_34614
157994 +enable_so_vram_total_vardecl_vesafb_c_34615 vram_total vardecl_vesafb.c 0 34615 NULL nohasharray
157995 +enable_so_size_vb2_vmalloc_buf_34615 size vb2_vmalloc_buf 0 34615 &enable_so_vram_total_vardecl_vesafb_c_34615
157996 +enable_so_ip_hdrlen_fndecl_34618 ip_hdrlen fndecl 0 34618 NULL
157997 +enable_so_cpu_npartitions_vardecl_linux_cpu_c_34622 cpu_npartitions vardecl_linux-cpu.c 0 34622 NULL
157998 +enable_so_pm_qos_power_read_fndecl_34624 pm_qos_power_read fndecl 3 34624 NULL
157999 +enable_so_ace_change_mtu_fndecl_34639 ace_change_mtu fndecl 2 34639 NULL
158000 +enable_so_hsc_write_fndecl_34640 hsc_write fndecl 3 34640 NULL
158001 +enable_so_idef6cpy_gru_control_block_extended_34646 idef6cpy gru_control_block_extended 0 34646 NULL
158002 +enable_so_ramdisk_store_fndecl_34654 ramdisk_store fndecl 4 34654 NULL
158003 +enable_so_uwb_est_used_vardecl_est_c_34662 uwb_est_used vardecl_est.c 0 34662 NULL
158004 +enable_so_init_evtlog_size_iwl_fw_34663 init_evtlog_size iwl_fw 0 34663 NULL
158005 +enable_so_ext4_convert_unwritten_extents_endio_fndecl_34667 ext4_convert_unwritten_extents_endio fndecl 0 34667 NULL
158006 +enable_so_num_leaves_cpu_cacheinfo_34676 num_leaves cpu_cacheinfo 0 34676 NULL
158007 +enable_so_inode_ext4_dir_entry_2_34680 inode ext4_dir_entry_2 0 34680 NULL
158008 +enable_so_pnp_add_mem_resource_fndecl_34681 pnp_add_mem_resource fndecl 3-2 34681 NULL
158009 +enable_so_offset_ethtool_eeprom_34683 offset ethtool_eeprom 0 34683 NULL
158010 +enable_so_snd_pcm_hw_param_value_min_fndecl_34686 snd_pcm_hw_param_value_min fndecl 0 34686 NULL
158011 +enable_so_bassinit_CHIPDESC_34688 bassinit CHIPDESC 0 34688 NULL nohasharray
158012 +enable_so_slip_maxdev_vardecl_slip_c_34688 slip_maxdev vardecl_slip.c 0 34688 &enable_so_bassinit_CHIPDESC_34688
158013 +enable_so_radeon_ring_init_fndecl_34693 radeon_ring_init fndecl 3 34693 NULL
158014 +enable_so_simple_read_from_buffer_fndecl_34694 simple_read_from_buffer fndecl 0-2-5 34694 NULL
158015 +enable_so_rate_mt76_tx_status_34695 rate mt76_tx_status 0 34695 NULL nohasharray
158016 +enable_so_ceph_get_direct_page_vector_fndecl_34695 ceph_get_direct_page_vector fndecl 2 34695 &enable_so_rate_mt76_tx_status_34695
158017 +enable_so_max_payload_fc_fcp_pkt_34696 max_payload fc_fcp_pkt 0 34696 NULL
158018 +enable_so_writesize_mtd_info_34702 writesize mtd_info 0 34702 NULL
158019 +enable_so_tx_tx_imm_resp_read_fndecl_34703 tx_tx_imm_resp_read fndecl 3 34703 NULL
158020 +enable_so_efi_memmap_efi_info_34704 efi_memmap efi_info 0 34704 NULL
158021 +enable_so_sel_read_policy_fndecl_34712 sel_read_policy fndecl 3 34712 NULL
158022 +enable_so_gfs2_log_alloc_bio_fndecl_34714 gfs2_log_alloc_bio fndecl 2 34714 NULL
158023 +enable_so_kvm_write_guest_virt_system_fndecl_34715 kvm_write_guest_virt_system fndecl 4-2 34715 NULL
158024 +enable_so_in_sector_offset_vardecl_floppy_c_34720 in_sector_offset vardecl_floppy.c 0 34720 NULL
158025 +enable_so_cache_word_size_regmap_34722 cache_word_size regmap 0 34722 NULL
158026 +enable_so_W6692_empty_Dfifo_fndecl_34725 W6692_empty_Dfifo fndecl 2 34725 NULL nohasharray
158027 +enable_so_tx_num_pgs_tp_params_34725 tx_num_pgs tp_params 0 34725 &enable_so_W6692_empty_Dfifo_fndecl_34725
158028 +enable_so_ocfs2_dx_dir_format_cluster_fndecl_34730 ocfs2_dx_dir_format_cluster fndecl 6 34730 NULL nohasharray
158029 +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
158030 +enable_so_wa_xfer_create_subset_sg_fndecl_34731 wa_xfer_create_subset_sg fndecl 2-3 34731 NULL
158031 +enable_so_memblock_double_array_fndecl_34732 memblock_double_array fndecl 3-2 34732 NULL
158032 +enable_so_trunc_start_fndecl_34735 trunc_start fndecl 3-2 34735 NULL nohasharray
158033 +enable_so__c4iw_write_mem_inline_fndecl_34735 _c4iw_write_mem_inline fndecl 3 34735 &enable_so_trunc_start_fndecl_34735
158034 +enable_so_flags_rtl8187b_rx_hdr_34741 flags rtl8187b_rx_hdr 0 34741 NULL
158035 +enable_so_inbuf_dma_usbhid_device_34742 inbuf_dma usbhid_device 0 34742 NULL
158036 +enable_so_blockshift_sddr09_card_info_34748 blockshift sddr09_card_info 0 34748 NULL
158037 +enable_so_u132_hcd_bulk_input_recv_fndecl_34756 u132_hcd_bulk_input_recv fndecl 4 34756 NULL nohasharray
158038 +enable_so_acct_stack_growth_fndecl_34756 acct_stack_growth fndecl 3-2 34756 &enable_so_u132_hcd_bulk_input_recv_fndecl_34756 nohasharray
158039 +enable_so_nfs4_validate_mount_data_fndecl_34756 nfs4_validate_mount_data fndecl 0 34756 &enable_so_acct_stack_growth_fndecl_34756
158040 +enable_so_extent_size_ecryptfs_crypt_stat_34757 extent_size ecryptfs_crypt_stat 0 34757 NULL nohasharray
158041 +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
158042 +enable_so_zone_spare_adfs_discrecord_34757 zone_spare adfs_discrecord 0 34757 &enable_so_sc_frmr_pg_list_len_svcxprt_rdma_34757
158043 +enable_so_ssb_bus_pcmciabus_register_fndecl_34759 ssb_bus_pcmciabus_register fndecl 3 34759 NULL
158044 +enable_so_options_len_ovs_tunnel_info_34769 options_len ovs_tunnel_info 0 34769 NULL
158045 +enable_so_qla2x00_mem_alloc_fndecl_34771 qla2x00_mem_alloc fndecl 3-2 34771 NULL
158046 +enable_so_hvt_op_write_fndecl_34774 hvt_op_write fndecl 3 34774 NULL
158047 +enable_so_cyapa_i2c_pip_read_fndecl_34788 cyapa_i2c_pip_read fndecl 3 34788 NULL
158048 +enable_so_qxl_image_alloc_objects_fndecl_34790 qxl_image_alloc_objects fndecl 4-5 34790 NULL
158049 +enable_so_sizeimage_soc_camera_device_34794 sizeimage soc_camera_device 0 34794 NULL nohasharray
158050 +enable_so_addrlen_svc_deferred_req_34794 addrlen svc_deferred_req 0 34794 &enable_so_sizeimage_soc_camera_device_34794
158051 +enable_so_rq_count_st_card_info_34798 rq_count st_card_info 0 34798 NULL
158052 +enable_so_nfs_write_end_fndecl_34801 nfs_write_end fndecl 3-5 34801 NULL
158053 +enable_so_num_q_vectors_ixgbe_adapter_34808 num_q_vectors ixgbe_adapter 0 34808 NULL
158054 +enable_so_page_size_flash_info_34810 page_size flash_info 0 34810 NULL
158055 +enable_so_blk_cnt_os_dat_entry_s_34817 blk_cnt os_dat_entry_s 0 34817 NULL
158056 +enable_so_lbs_lowsnr_write_fndecl_34822 lbs_lowsnr_write fndecl 3 34822 NULL
158057 +enable_so_wps_ie_len_mwifiex_private_34823 wps_ie_len mwifiex_private 0 34823 NULL nohasharray
158058 +enable_so_alg_key_len_xfrm_algo_34823 alg_key_len xfrm_algo 0 34823 &enable_so_wps_ie_len_mwifiex_private_34823
158059 +enable_so_madvise_behavior_fndecl_34827 madvise_behavior fndecl 4-3 34827 NULL
158060 +enable_so_mwifiex_usb_submit_rx_urb_fndecl_34829 mwifiex_usb_submit_rx_urb fndecl 2 34829 NULL
158061 +enable_so_rcvegrbufs_perchunk_qib_ctxtdata_34831 rcvegrbufs_perchunk qib_ctxtdata 0 34831 NULL
158062 +enable_so_xenvif_check_gop_fndecl_34832 xenvif_check_gop fndecl 0 34832 NULL
158063 +enable_so_unix_dgram_connect_fndecl_34836 unix_dgram_connect fndecl 3 34836 NULL
158064 +enable_so_eblks_mtdswap_dev_34840 eblks mtdswap_dev 0 34840 NULL nohasharray
158065 +enable_so_setsockopt_fndecl_34840 setsockopt fndecl 5 34840 &enable_so_eblks_mtdswap_dev_34840
158066 +enable_so_in_usbnet_34842 in usbnet 0 34842 NULL
158067 +enable_so_ath6kl_wmi_create_pstream_cmd_fndecl_34848 ath6kl_wmi_create_pstream_cmd fndecl 2 34848 NULL
158068 +enable_so_nfsd_vfs_write_fndecl_34850 nfsd_vfs_write fndecl 6 34850 NULL
158069 +enable_so_good_peb_count_ubi_device_34853 good_peb_count ubi_device 0 34853 NULL nohasharray
158070 +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
158071 +enable_so_fw_iso_buffer_init_fndecl_34853 fw_iso_buffer_init fndecl 3 34853 &enable_so_log_sz_mlx5_flow_table_group_34853
158072 +enable_so_nilfs_ioctl_do_get_suinfo_fndecl_34854 nilfs_ioctl_do_get_suinfo fndecl 6 34854 NULL
158073 +enable_so_flags_write_fndecl_34858 flags_write fndecl 3 34858 NULL
158074 +enable_so_max_msix_vectors_fm10k_mac_info_34860 max_msix_vectors fm10k_mac_info 0 34860 NULL
158075 +enable_so_pfkey_recvmsg_fndecl_34863 pfkey_recvmsg fndecl 3 34863 NULL nohasharray
158076 +enable_so_s_map_size_adfs_sb_info_34863 s_map_size adfs_sb_info 0 34863 &enable_so_pfkey_recvmsg_fndecl_34863
158077 +enable_so_odm_num_comps_pnfs_osd_data_map_34865 odm_num_comps pnfs_osd_data_map 0 34865 NULL
158078 +enable_so_size_g2d_frame_34866 size g2d_frame 0 34866 NULL
158079 +enable_so_sddr09_writeX_fndecl_34870 sddr09_writeX fndecl 5-7 34870 NULL
158080 +enable_so_dout_xfer_len_sg_io_v4_34879 dout_xfer_len sg_io_v4 0 34879 NULL
158081 +enable_so_bgx_get_lmac_count_fndecl_34883 bgx_get_lmac_count fndecl 0 34883 NULL
158082 +enable_so_drm_cvt_mode_fndecl_34886 drm_cvt_mode fndecl 3-2-4 34886 NULL
158083 +enable_so_Wa_tvnorm_34892 Wa tvnorm 0 34892 NULL
158084 +enable_so_vb2_dma_sg_alloc_fndecl_34894 vb2_dma_sg_alloc fndecl 2 34894 NULL nohasharray
158085 +enable_so_len_coda_ioctl_out_34894 len coda_ioctl_out 0 34894 &enable_so_vb2_dma_sg_alloc_fndecl_34894
158086 +enable_so_sb_logstart_xfs_sb_34900 sb_logstart xfs_sb 0 34900 NULL
158087 +enable_so_fat_ent_read_fndecl_34902 fat_ent_read fndecl 0-3 34902 NULL
158088 +enable_so_block_size_ath6kl_mbox_info_34904 block_size ath6kl_mbox_info 0 34904 NULL
158089 +enable_so_devm_gen_pool_create_fndecl_34908 devm_gen_pool_create fndecl 2 34908 NULL
158090 +enable_so_irq_of_parse_and_map_fndecl_34917 irq_of_parse_and_map fndecl 0 34917 NULL nohasharray
158091 +enable_so_num_channels_ad5380_chip_info_34917 num_channels ad5380_chip_info 0 34917 &enable_so_irq_of_parse_and_map_fndecl_34917
158092 +enable_so_ath10k_htc_alloc_skb_fndecl_34920 ath10k_htc_alloc_skb fndecl 2 34920 NULL
158093 +enable_so_consume_size_vmci_qp_alloc_info_34922 consume_size vmci_qp_alloc_info 0 34922 NULL
158094 +enable_so_rcc__DMABUFFERENTRY_34925 rcc _DMABUFFERENTRY 0 34925 NULL
158095 +enable_so_shared_secret_len_net_conf_34926 shared_secret_len net_conf 0 34926 NULL
158096 +enable_so_nr_kvm_queued_interrupt_34927 nr kvm_queued_interrupt 0 34927 NULL
158097 +enable_so_port_fops_write_fndecl_34928 port_fops_write fndecl 3 34928 NULL
158098 +enable_so_len_wil6210_mbox_hdr_34930 len wil6210_mbox_hdr 0 34930 NULL
158099 +enable_so_swiotlb_init_with_tbl_fndecl_34935 swiotlb_init_with_tbl fndecl 2 34935 NULL
158100 +enable_so_register_sound_special_fndecl_34937 register_sound_special fndecl 2 34937 NULL
158101 +enable_so_recv_resync_read_fndecl_34939 recv_resync_read fndecl 2 34939 NULL
158102 +enable_so_max_receive_fw_card_34941 max_receive fw_card 0 34941 NULL
158103 +enable_so_ext2_write_end_fndecl_34943 ext2_write_end fndecl 5 34943 NULL
158104 +enable_so_evm_read_key_fndecl_34945 evm_read_key fndecl 3 34945 NULL
158105 +enable_so_ips_scmd_buf_write_fndecl_34946 ips_scmd_buf_write fndecl 3 34946 NULL
158106 +enable_so_bio_kmalloc_fndecl_34947 bio_kmalloc fndecl 2 34947 NULL
158107 +enable_so_reiserfs_get_block_create_0_fndecl_34954 reiserfs_get_block_create_0 fndecl 2 34954 NULL
158108 +enable_so_fs_path_add_path_fndecl_34955 fs_path_add_path fndecl 0 34955 NULL
158109 +enable_so_dns_resolver_read_fndecl_34961 dns_resolver_read fndecl 3 34961 NULL
158110 +enable_so_internal_ewma_34962 internal ewma 0 34962 NULL
158111 +enable_so_n_it_fw_ohci_34963 n_it fw_ohci 0 34963 NULL
158112 +enable_so_simple_alloc_urb_fndecl_34966 simple_alloc_urb fndecl 3-2 34966 NULL
158113 +enable_so___bmc150_accel_fifo_flush_fndecl_34967 __bmc150_accel_fifo_flush fndecl 2 34967 NULL
158114 +enable_so_il4965_rs_switch_to_siso_fndecl_34968 il4965_rs_switch_to_siso fndecl 6 34968 NULL
158115 +enable_so_s35390a_get_reg_fndecl_34971 s35390a_get_reg fndecl 4 34971 NULL
158116 +enable_so_cw1200_queue_stats_init_fndecl_34973 cw1200_queue_stats_init fndecl 2 34973 NULL
158117 +enable_so_at24_bin_write_fndecl_34977 at24_bin_write fndecl 6-5 34977 NULL nohasharray
158118 +enable_so_gcr_base_intel_pmc_ipc_dev_34977 gcr_base intel_pmc_ipc_dev 0 34977 &enable_so_at24_bin_write_fndecl_34977
158119 +enable_so_rfkill_fop_read_fndecl_34980 rfkill_fop_read fndecl 3 34980 NULL
158120 +enable_so_kfd_gtt_sa_init_fndecl_34996 kfd_gtt_sa_init fndecl 3-2 34996 NULL
158121 +enable_so_rx_ring_count_ixgbe_adapter_35004 rx_ring_count ixgbe_adapter 0 35004 NULL
158122 +enable_so_amb_len_i5k_amb_data_35007 amb_len i5k_amb_data 0 35007 NULL
158123 +enable_so_num_snaps_ceph_mds_snap_realm_35009 num_snaps ceph_mds_snap_realm 0 35009 NULL
158124 +enable_so_ocfs2_control_write_fndecl_35010 ocfs2_control_write fndecl 3 35010 NULL
158125 +enable_so_fc_set_mfs_fndecl_35014 fc_set_mfs fndecl 2 35014 NULL
158126 +enable_so_kzalloc_fndecl_35015 kzalloc fndecl 1 35015 NULL
158127 +enable_so_skb_zerocopy_fndecl_35016 skb_zerocopy fndecl 4-3 35016 NULL
158128 +enable_so_read_capacity_10_fndecl_35017 read_capacity_10 fndecl 0 35017 NULL
158129 +enable_so_wep_iv_read_fndecl_35019 wep_iv_read fndecl 3 35019 NULL
158130 +enable_so_no_ids_squashfs_super_block_35022 no_ids squashfs_super_block 0 35022 NULL nohasharray
158131 +enable_so_lpfc_idiag_pcicfg_write_fndecl_35022 lpfc_idiag_pcicfg_write fndecl 3 35022 &enable_so_no_ids_squashfs_super_block_35022
158132 +enable_so_il4965_rs_fill_link_cmd_fndecl_35023 il4965_rs_fill_link_cmd fndecl 3 35023 NULL
158133 +enable_so__add_sg_continuation_descriptor_fndecl_35026 _add_sg_continuation_descriptor fndecl 3 35026 NULL
158134 +enable_so_vSync_width_panel_info_35029 vSync_width panel_info 0 35029 NULL nohasharray
158135 +enable_so_set_nservers_fndecl_35029 set_nservers fndecl 2 35029 &enable_so_vSync_width_panel_info_35029
158136 +enable_so_w_nr_rds_ib_work_ring_35048 w_nr rds_ib_work_ring 0 35048 NULL
158137 +enable_so_uarc_size_mthca_profile_35053 uarc_size mthca_profile 0 35053 NULL
158138 +enable_so_n_ports_rp2_card_35055 n_ports rp2_card 0 35055 NULL
158139 +enable_so_tda18218_rd_reg_fndecl_35057 tda18218_rd_reg fndecl 2 35057 NULL
158140 +enable_so_iio_event_chrdev_read_fndecl_35062 iio_event_chrdev_read fndecl 3 35062 NULL
158141 +enable_so_ring_size_radeon_ring_35063 ring_size radeon_ring 0 35063 NULL
158142 +enable_so_pci_create_root_bus_fndecl_35065 pci_create_root_bus fndecl 2 35065 NULL nohasharray
158143 +enable_so_adis16480_show_firmware_date_fndecl_35065 adis16480_show_firmware_date fndecl 3 35065 &enable_so_pci_create_root_bus_fndecl_35065
158144 +enable_so_jffs2_flash_direct_write_fndecl_35070 jffs2_flash_direct_write fndecl 3 35070 NULL
158145 +enable_so_altera_set_dr_post_fndecl_35072 altera_set_dr_post fndecl 2 35072 NULL
158146 +enable_so_set_video_mode_Timon_fndecl_35074 set_video_mode_Timon fndecl 4 35074 NULL
158147 +enable_so_number_scales_vardecl_powernow_k7_c_35080 number_scales vardecl_powernow-k7.c 0 35080 NULL
158148 +enable_so_get_iovec_page_array_fndecl_35081 get_iovec_page_array fndecl 0 35081 NULL
158149 +enable_so_inbuf_dma_ati_remote_35083 inbuf_dma ati_remote 0 35083 NULL nohasharray
158150 +enable_so_dlm_alloc_pagevec_fndecl_35083 dlm_alloc_pagevec fndecl 1 35083 &enable_so_inbuf_dma_ati_remote_35083
158151 +enable_so_ieee80211_add_rx_radiotap_header_fndecl_35086 ieee80211_add_rx_radiotap_header fndecl 4 35086 NULL nohasharray
158152 +enable_so_reclaim_pages_fndecl_35086 reclaim_pages fndecl 3 35086 &enable_so_ieee80211_add_rx_radiotap_header_fndecl_35086
158153 +enable_so_ubi_calc_data_len_fndecl_35092 ubi_calc_data_len fndecl 0-3 35092 NULL
158154 +enable_so_sizeof_long_fndecl_35095 sizeof_long fndecl 0 35095 NULL
158155 +enable_so_er_data_len_gfs2_ea_request_35098 er_data_len gfs2_ea_request 0 35098 NULL
158156 +enable_so_num_vf_qps_i40e_pf_35102 num_vf_qps i40e_pf 0 35102 NULL
158157 +enable_so_prot_length_se_device_35103 prot_length se_device 0 35103 NULL nohasharray
158158 +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
158159 +enable_so_dma_common_get_sgtable_fndecl_35105 dma_common_get_sgtable fndecl 5 35105 NULL
158160 +enable_so___do_page_fault_fndecl_35107 __do_page_fault fndecl 3 35107 NULL
158161 +enable_so_ath6kl_wmi_set_bitrate_mask_fndecl_35108 ath6kl_wmi_set_bitrate_mask fndecl 2 35108 NULL nohasharray
158162 +enable_so_size_kcore_list_35108 size kcore_list 0 35108 &enable_so_ath6kl_wmi_set_bitrate_mask_fndecl_35108
158163 +enable_so_pn_raw_send_fndecl_35113 pn_raw_send fndecl 2 35113 NULL
158164 +enable_so_d_ino_vxfs_direct_35117 d_ino vxfs_direct 0 35117 NULL
158165 +enable_so_max_uc_mac_be_resources_35119 max_uc_mac be_resources 0 35119 NULL
158166 +enable_so_vxfs_bmap_indir_fndecl_35120 vxfs_bmap_indir fndecl 2-0-4 35120 NULL
158167 +enable_so_alloc_vm_area_fndecl_35121 alloc_vm_area fndecl 1 35121 NULL
158168 +enable_so_sm501_alloc_mem_fndecl_35125 sm501_alloc_mem fndecl 4 35125 NULL
158169 +enable_so_bch_empty_fifo_fndecl_35126 bch_empty_fifo fndecl 2 35126 NULL
158170 +enable_so_vmw_mob_create_fndecl_35127 vmw_mob_create fndecl 1 35127 NULL nohasharray
158171 +enable_so_path_setxattr_fndecl_35127 path_setxattr fndecl 4 35127 &enable_so_vmw_mob_create_fndecl_35127 nohasharray
158172 +enable_so_nilfs_sufile_get_suinfo_fndecl_35127 nilfs_sufile_get_suinfo fndecl 5-2 35127 &enable_so_path_setxattr_fndecl_35127
158173 +enable_so_FbMapSize_nvidia_par_35128 FbMapSize nvidia_par 0 35128 NULL nohasharray
158174 +enable_so_mlx4_en_create_rx_ring_fndecl_35128 mlx4_en_create_rx_ring fndecl 3-4 35128 &enable_so_FbMapSize_nvidia_par_35128
158175 +enable_so_channels_min_snd_pcm_hardware_35132 channels_min snd_pcm_hardware 0 35132 NULL nohasharray
158176 +enable_so_bio_add_pc_page_fndecl_35132 bio_add_pc_page fndecl 5-4 35132 &enable_so_channels_min_snd_pcm_hardware_35132
158177 +enable_so_xdr_restrict_buflen_fndecl_35133 xdr_restrict_buflen fndecl 2 35133 NULL
158178 +enable_so__osd_realloc_seg_fndecl_35139 _osd_realloc_seg fndecl 3 35139 NULL nohasharray
158179 +enable_so___get_free_pages_fndecl_35139 __get_free_pages fndecl 0 35139 &enable_so__osd_realloc_seg_fndecl_35139
158180 +enable_so_blockoffset_hfsplus_sb_info_35140 blockoffset hfsplus_sb_info 0 35140 NULL
158181 +enable_so_tx_ring_size_adm8211_priv_35143 tx_ring_size adm8211_priv 0 35143 NULL
158182 +enable_so_len_mwifiex_ie_types_header_35146 len mwifiex_ie_types_header 0 35146 NULL
158183 +enable_so_read_file_credit_dist_stats_fndecl_35148 read_file_credit_dist_stats fndecl 3 35148 NULL
158184 +enable_so_num_usb3_ports_xhci_hcd_35149 num_usb3_ports xhci_hcd 0 35149 NULL nohasharray
158185 +enable_so_readlink_copy_fndecl_35149 readlink_copy fndecl 2 35149 &enable_so_num_usb3_ports_xhci_hcd_35149
158186 +enable_so_br_fdb_fillbuf_fndecl_35152 br_fdb_fillbuf fndecl 0 35152 NULL
158187 +enable_so_pageshift_alauda_card_info_35154 pageshift alauda_card_info 0 35154 NULL
158188 +enable_so___alloc_dev_table_fndecl_35156 __alloc_dev_table fndecl 2 35156 NULL
158189 +enable_so_num_rx_qp_i40e_hw_capabilities_35165 num_rx_qp i40e_hw_capabilities 0 35165 NULL
158190 +enable_so_snd_pcm_oss_read2_fndecl_35168 snd_pcm_oss_read2 fndecl 3-0 35168 NULL nohasharray
158191 +enable_so_count_sgmap_35168 count sgmap 0 35168 &enable_so_snd_pcm_oss_read2_fndecl_35168
158192 +enable_so_mlx4_en_hwtstamp_get_fndecl_35174 mlx4_en_hwtstamp_get fndecl 0 35174 NULL
158193 +enable_so_memblock_size_vxge_hw_fifo_config_35179 memblock_size vxge_hw_fifo_config 0 35179 NULL nohasharray
158194 +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
158195 +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
158196 +enable_so_blk_rq_count_integrity_sg_fndecl_35185 blk_rq_count_integrity_sg fndecl 0 35185 NULL
158197 +enable_so___sound_insert_unit_fndecl_35186 __sound_insert_unit fndecl 4-5 35186 NULL
158198 +enable_so_wHeight_uvc_frame_35189 wHeight uvc_frame 0 35189 NULL
158199 +enable_so_ah_alloc_tmp_fndecl_35193 ah_alloc_tmp fndecl 2-3 35193 NULL
158200 +enable_so_do_dccp_setsockopt_fndecl_35194 do_dccp_setsockopt fndecl 5 35194 NULL nohasharray
158201 +enable_so_intel_sdvo_write_cmd_fndecl_35194 intel_sdvo_write_cmd fndecl 4 35194 &enable_so_do_dccp_setsockopt_fndecl_35194
158202 +enable_so_long_retry_limit_ipw_priv_35197 long_retry_limit ipw_priv 0 35197 NULL
158203 +enable_so_copy_gadget_strings_fndecl_35202 copy_gadget_strings fndecl 3-2 35202 NULL
158204 +enable_so_new_lockspace_fndecl_35208 new_lockspace fndecl 4 35208 NULL
158205 +enable_so_tx_ring_size_pcnet32_private_35210 tx_ring_size pcnet32_private 0 35210 NULL
158206 +enable_so_xfs_ialloc_inode_init_fndecl_35212 xfs_ialloc_inode_init fndecl 6-5 35212 NULL
158207 +enable_so_maxpacksize_snd_usb_endpoint_35216 maxpacksize snd_usb_endpoint 0 35216 NULL nohasharray
158208 +enable_so_sset_mask_ethtool_sset_info_35216 sset_mask ethtool_sset_info 0 35216 &enable_so_maxpacksize_snd_usb_endpoint_35216
158209 +enable_so_snd_pcm_add_chmap_ctls_fndecl_35223 snd_pcm_add_chmap_ctls fndecl 4 35223 NULL
158210 +enable_so_vmbus_sendpacket_ctl_fndecl_35225 vmbus_sendpacket_ctl fndecl 3 35225 NULL
158211 +enable_so_root_blkno_ocfs2_super_35227 root_blkno ocfs2_super 0 35227 NULL
158212 +enable_so_d_off_p9_dirent_35247 d_off p9_dirent 0 35247 NULL nohasharray
158213 +enable_so_policy_idx_hmask_netns_xfrm_35247 policy_idx_hmask netns_xfrm 0 35247 &enable_so_d_off_p9_dirent_35247
158214 +enable_so_whc_urb_dequeue_fndecl_35255 whc_urb_dequeue fndecl 3 35255 NULL nohasharray
158215 +enable_so_oprofile_buffer_size_vardecl_35255 oprofile_buffer_size vardecl 0 35255 &enable_so_whc_urb_dequeue_fndecl_35255
158216 +enable_so_longRetryLimit_ConfigRid_35258 longRetryLimit ConfigRid 0 35258 NULL nohasharray
158217 +enable_so_max_gs_mthca_srq_35258 max_gs mthca_srq 0 35258 &enable_so_longRetryLimit_ConfigRid_35258
158218 +enable_so_dm_bm_write_lock_fndecl_35261 dm_bm_write_lock fndecl 2 35261 NULL
158219 +enable_so_gss_unwrap_kerberos_fndecl_35263 gss_unwrap_kerberos fndecl 2 35263 NULL
158220 +enable_so_wstatus_usblp_35266 wstatus usblp 0 35266 NULL
158221 +enable_so_sparse_early_mem_maps_alloc_node_fndecl_35270 sparse_early_mem_maps_alloc_node fndecl 4 35270 NULL
158222 +enable_so_rsp_size_ipmi_smi_msg_35282 rsp_size ipmi_smi_msg 0 35282 NULL
158223 +enable_so_maxburst_snd_dmaengine_dai_dma_data_35287 maxburst snd_dmaengine_dai_dma_data 0 35287 NULL
158224 +enable_so_ceph_msg_data_advance_fndecl_35288 ceph_msg_data_advance fndecl 2 35288 NULL
158225 +enable_so_offs_ubifs_wbuf_35290 offs ubifs_wbuf 0 35290 NULL
158226 +enable_so_xc_send_i2c_data_fndecl_35297 xc_send_i2c_data fndecl 3 35297 NULL
158227 +enable_so_maybe_indirect_to_direct_fndecl_35307 maybe_indirect_to_direct fndecl 6 35307 NULL
158228 +enable_so_viacam_read_fndecl_35309 viacam_read fndecl 3 35309 NULL
158229 +enable_so_vmci_transport_dgram_enqueue_fndecl_35310 vmci_transport_dgram_enqueue fndecl 4 35310 NULL nohasharray
158230 +enable_so_walk_pud_range_fndecl_35310 walk_pud_range fndecl 0 35310 &enable_so_vmci_transport_dgram_enqueue_fndecl_35310
158231 +enable_so_ieee80211_tdls_mgmt_setup_fndecl_35316 ieee80211_tdls_mgmt_setup fndecl 10 35316 NULL
158232 +enable_so_btrfs_ordered_sum_size_fndecl_35326 btrfs_ordered_sum_size fndecl 0-2 35326 NULL
158233 +enable_so_l2cap_create_basic_pdu_fndecl_35327 l2cap_create_basic_pdu fndecl 3 35327 NULL
158234 +enable_so_channels_twl4030_priv_35329 channels twl4030_priv 0 35329 NULL nohasharray
158235 +enable_so_ssid_len_cfg80211_ibss_params_35329 ssid_len cfg80211_ibss_params 0 35329 &enable_so_channels_twl4030_priv_35329
158236 +enable_so_xb_suballoc_bit_ocfs2_xattr_block_35331 xb_suballoc_bit ocfs2_xattr_block 0 35331 NULL
158237 +enable_so_extra_msdu_postfix_len_lib80211_crypto_ops_35341 extra_msdu_postfix_len lib80211_crypto_ops 0 35341 NULL
158238 +enable_so_nr_pages_bts_buffer_35350 nr_pages bts_buffer 0 35350 NULL
158239 +enable_so_num_reg_mic_smpt_hw_info_35353 num_reg mic_smpt_hw_info 0 35353 NULL
158240 +enable_so_udf_get_pblock_meta25_fndecl_35356 udf_get_pblock_meta25 fndecl 4 35356 NULL
158241 +enable_so_cache_mode_control_mms114_data_35358 cache_mode_control mms114_data 0 35358 NULL
158242 +enable_so_efw_transaction_fndecl_35359 efw_transaction fndecl 5-7 35359 NULL
158243 +enable_so_reserved_pds_mthca_limits_35361 reserved_pds mthca_limits 0 35361 NULL
158244 +enable_so_hx8357_spi_write_array_fndecl_35364 hx8357_spi_write_array fndecl 3 35364 NULL
158245 +enable_so_IA_RX_BUF_SZ_vardecl_iphase_c_35365 IA_RX_BUF_SZ vardecl_iphase.c 0 35365 NULL
158246 +enable_so_previous_raid_disks_r5conf_35368 previous_raid_disks r5conf 0 35368 NULL nohasharray
158247 +enable_so_count_param_range_35368 count param_range 0 35368 &enable_so_previous_raid_disks_r5conf_35368 nohasharray
158248 +enable_so_input_pool_snd_seq_client_pool_35368 input_pool snd_seq_client_pool 0 35368 &enable_so_count_param_range_35368
158249 +enable_so_num_channels_ad7266_chan_info_35372 num_channels ad7266_chan_info 0 35372 NULL
158250 +enable_so_update_raid_disks_fndecl_35375 update_raid_disks fndecl 2 35375 NULL
158251 +enable_so_apei_exec_run_fndecl_35376 apei_exec_run fndecl 0 35376 NULL
158252 +enable_so_drm_dp_mst_topology_mgr_init_fndecl_35377 drm_dp_mst_topology_mgr_init fndecl 5 35377 NULL
158253 +enable_so_mmio_base_phys_radeonfb_info_35378 mmio_base_phys radeonfb_info 0 35378 NULL
158254 +enable_so_hc_erase_size_mmc_ext_csd_35384 hc_erase_size mmc_ext_csd 0 35384 NULL
158255 +enable_so_ath9k_hw_read_array_fndecl_35386 ath9k_hw_read_array fndecl 3 35386 NULL
158256 +enable_so_read_dma_fndecl_35389 read_dma fndecl 3 35389 NULL
158257 +enable_so_writeback_fndecl_35390 writeback fndecl 4-3 35390 NULL
158258 +enable_so_corrupt_data_fndecl_35395 corrupt_data fndecl 0-3 35395 NULL nohasharray
158259 +enable_so_sg_set_page_fndecl_35395 sg_set_page fndecl 3 35395 &enable_so_corrupt_data_fndecl_35395
158260 +enable_so_blk_queue_io_opt_fndecl_35405 blk_queue_io_opt fndecl 2 35405 NULL
158261 +enable_so_use_sg_st_buffer_35407 use_sg st_buffer 0 35407 NULL
158262 +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
158263 +enable_so__drbd_md_sync_page_io_fndecl_35411 _drbd_md_sync_page_io fndecl 3 35411 NULL
158264 +enable_so_cdce925_pll_set_rate_fndecl_35418 cdce925_pll_set_rate fndecl 3-2 35418 NULL
158265 +enable_so_ali15x3_smba_vardecl_i2c_ali15x3_c_35421 ali15x3_smba vardecl_i2c-ali15x3.c 0 35421 NULL
158266 +enable_so_cqc_entry_sz_mthca_dev_lim_35422 cqc_entry_sz mthca_dev_lim 0 35422 NULL
158267 +enable_so_fb_width_drm_fb_helper_surface_size_35426 fb_width drm_fb_helper_surface_size 0 35426 NULL
158268 +enable_so_btrfs_fdatawrite_range_fndecl_35427 btrfs_fdatawrite_range fndecl 2-3 35427 NULL
158269 +enable_so_xfs_bulkstat_one_compat_fndecl_35428 xfs_bulkstat_one_compat fndecl 2 35428 NULL
158270 +enable_so_offset_tx_buf_35429 offset tx_buf 0 35429 NULL
158271 +enable_so_bmAttributes_usb_ss_ep_comp_descriptor_35434 bmAttributes usb_ss_ep_comp_descriptor 0 35434 NULL
158272 +enable_so_ocfs2_prepare_refcount_change_for_del_fndecl_35442 ocfs2_prepare_refcount_change_for_del fndecl 4-3-2 35442 NULL
158273 +enable_so_major_gendisk_35443 major gendisk 0 35443 NULL
158274 +enable_so_debug_read_regs_fndecl_35445 debug_read_regs fndecl 3 35445 NULL
158275 +enable_so_wake_len_cfg80211_wowlan_tcp_35448 wake_len cfg80211_wowlan_tcp 0 35448 NULL nohasharray
158276 +enable_so_len_he_buff_35448 len he_buff 0 35448 &enable_so_wake_len_cfg80211_wowlan_tcp_35448
158277 +enable_so_ieee80211_if_read_uapsd_queues_fndecl_35453 ieee80211_if_read_uapsd_queues fndecl 3 35453 NULL
158278 +enable_so_ocfs2_truncate_file_fndecl_35455 ocfs2_truncate_file fndecl 3 35455 NULL
158279 +enable_so_octeon_create_droq_fndecl_35457 octeon_create_droq fndecl 4-3 35457 NULL
158280 +enable_so_bytes_to_read_mpt3_diag_read_buffer_35460 bytes_to_read mpt3_diag_read_buffer 0 35460 NULL
158281 +enable_so_drbd_send_fndecl_35461 drbd_send fndecl 4 35461 NULL
158282 +enable_so_sel_write_relabel_fndecl_35464 sel_write_relabel fndecl 3 35464 NULL
158283 +enable_so_width_physmap_flash_data_35470 width physmap_flash_data 0 35470 NULL
158284 +enable_so_qxl_monitors_config_set_fndecl_35471 qxl_monitors_config_set fndecl 6-5 35471 NULL nohasharray
158285 +enable_so_max_links_media_entity_35471 max_links media_entity 0 35471 &enable_so_qxl_monitors_config_set_fndecl_35471
158286 +enable_so___rpipe_set_descr_fndecl_35478 __rpipe_set_descr fndecl 0 35478 NULL
158287 +enable_so_length_wl1251_rx_descriptor_35483 length wl1251_rx_descriptor 0 35483 NULL
158288 +enable_so_ieee80211_report_disconnect_fndecl_35488 ieee80211_report_disconnect fndecl 3 35488 NULL
158289 +enable_so_onenand_read_fndecl_35491 onenand_read fndecl 2 35491 NULL nohasharray
158290 +enable_so_qxl_alloc_client_monitors_config_fndecl_35491 qxl_alloc_client_monitors_config fndecl 2 35491 &enable_so_onenand_read_fndecl_35491
158291 +enable_so_alloc_clips_fndecl_35492 alloc_clips fndecl 3 35492 NULL nohasharray
158292 +enable_so_f71805f_device_add_fndecl_35492 f71805f_device_add fndecl 1 35492 &enable_so_alloc_clips_fndecl_35492
158293 +enable_so_firm_send_command_fndecl_35493 firm_send_command fndecl 4 35493 NULL nohasharray
158294 +enable_so_nbox_drm_savage_cmdbuf_35493 nbox drm_savage_cmdbuf 0 35493 &enable_so_firm_send_command_fndecl_35493
158295 +enable_so_cfg_lun_queue_depth_lpfc_vport_35503 cfg_lun_queue_depth lpfc_vport 0 35503 NULL
158296 +enable_so_sched_feat_write_fndecl_35505 sched_feat_write fndecl 3 35505 NULL
158297 +enable_so_cnt_usnic_vnic_res_desc_35511 cnt usnic_vnic_res_desc 0 35511 NULL
158298 +enable_so___kfifo_dma_out_prepare_r_fndecl_35512 __kfifo_dma_out_prepare_r fndecl 4-5 35512 NULL
158299 +enable_so_dlci_change_mtu_fndecl_35513 dlci_change_mtu fndecl 2 35513 NULL nohasharray
158300 +enable_so_emulate_exception_fndecl_35513 emulate_exception fndecl 3 35513 &enable_so_dlci_change_mtu_fndecl_35513
158301 +enable_so_ht40allow_map_read_fndecl_35514 ht40allow_map_read fndecl 3 35514 NULL
158302 +enable_so_acpi_nvs_register_fndecl_35515 acpi_nvs_register fndecl 2-1 35515 NULL
158303 +enable_so_do_raw_setsockopt_fndecl_35516 do_raw_setsockopt fndecl 5-0 35516 NULL
158304 +enable_so_install_special_mapping_fndecl_35519 install_special_mapping fndecl 3-2 35519 NULL
158305 +enable_so_alloc_qcom_scm_command_fndecl_35520 alloc_qcom_scm_command fndecl 1-2 35520 NULL
158306 +enable_so_count_atl1_rfd_ring_35523 count atl1_rfd_ring 0 35523 NULL
158307 +enable_so_clr_int_base_mlx4_fw_35529 clr_int_base mlx4_fw 0 35529 NULL
158308 +enable_so_additional_cdb_length_scsi_varlen_cdb_hdr_35533 additional_cdb_length scsi_varlen_cdb_hdr 0 35533 NULL
158309 +enable_so_find_inode_fndecl_35534 find_inode fndecl 2 35534 NULL
158310 +enable_so_gigaset_tty_receive_fndecl_35535 gigaset_tty_receive fndecl 4 35535 NULL
158311 +enable_so_phys_ck804xrom_window_35536 phys ck804xrom_window 0 35536 NULL
158312 +enable_so_nvkm_client_create__fndecl_35539 nvkm_client_create_ fndecl 5 35539 NULL
158313 +enable_so_gk20a_instobj_ctor_dma_fndecl_35545 gk20a_instobj_ctor_dma fndecl 4 35545 NULL
158314 +enable_so_ssp_send_instruction_fndecl_35549 ssp_send_instruction fndecl 5 35549 NULL
158315 +enable_so_inet_sendpage_fndecl_35554 inet_sendpage fndecl 4 35554 NULL
158316 +enable_so_vsync_ast_vbios_enhtable_35556 vsync ast_vbios_enhtable 0 35556 NULL
158317 +enable_so_rx_streaming_interval_read_fndecl_35560 rx_streaming_interval_read fndecl 3 35560 NULL
158318 +enable_so_ptrace_request_fndecl_35563 ptrace_request fndecl 3 35563 NULL
158319 +enable_so_find_min_pfn_for_node_fndecl_35569 find_min_pfn_for_node fndecl 0 35569 NULL nohasharray
158320 +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
158321 +enable_so_edma_readl_fndecl_35573 edma_readl fndecl 0 35573 NULL
158322 +enable_so_cfg80211_mlme_auth_fndecl_35577 cfg80211_mlme_auth fndecl 14-9 35577 NULL
158323 +enable_so_cur_blksize_sdio_func_35582 cur_blksize sdio_func 0 35582 NULL nohasharray
158324 +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
158325 +enable_so_lbs_failcount_write_fndecl_35583 lbs_failcount_write fndecl 3 35583 NULL
158326 +enable_so_ext3_find_goal_fndecl_35586 ext3_find_goal fndecl 0 35586 NULL
158327 +enable_so_offset_inflate_state_35587 offset inflate_state 0 35587 NULL
158328 +enable_so_actual_length_usb_iso_packet_descriptor_35588 actual_length usb_iso_packet_descriptor 0 35588 NULL
158329 +enable_so_cyttsp_i2c_read_block_data_fndecl_35590 cyttsp_i2c_read_block_data fndecl 4 35590 NULL
158330 +enable_so_minor_start_rp2_card_35592 minor_start rp2_card 0 35592 NULL
158331 +enable_so_nfsd_write_fndecl_35594 nfsd_write fndecl 6 35594 NULL nohasharray
158332 +enable_so_send_wr_num_isert_rdma_wr_35594 send_wr_num isert_rdma_wr 0 35594 &enable_so_nfsd_write_fndecl_35594
158333 +enable_so_ext2_iget_fndecl_35598 ext2_iget fndecl 2 35598 NULL
158334 +enable_so_xfs_rtallocate_extent_block_fndecl_35604 xfs_rtallocate_extent_block fndecl 5-10 35604 NULL
158335 +enable_so_hback_porch_videomode_35606 hback_porch videomode 0 35606 NULL nohasharray
158336 +enable_so_count_nfs_direct_req_35606 count nfs_direct_req 0 35606 &enable_so_hback_porch_videomode_35606
158337 +enable_so_f2fs_iget_fndecl_35610 f2fs_iget fndecl 2 35610 NULL nohasharray
158338 +enable_so_flexcop_device_kmalloc_fndecl_35610 flexcop_device_kmalloc fndecl 1 35610 &enable_so_f2fs_iget_fndecl_35610
158339 +enable_so_blocksize_brcmf_sdio_35612 blocksize brcmf_sdio 0 35612 NULL
158340 +enable_so_sqp_demux_mlx4_caps_35613 sqp_demux mlx4_caps 0 35613 NULL nohasharray
158341 +enable_so_maxcontacts_mt_device_35613 maxcontacts mt_device 0 35613 &enable_so_sqp_demux_mlx4_caps_35613
158342 +enable_so_offset_lv_35617 offset lv 0 35617 NULL
158343 +enable_so_generic_perform_write_fndecl_35619 generic_perform_write fndecl 0-3 35619 NULL nohasharray
158344 +enable_so_ext4_update_final_de_fndecl_35619 ext4_update_final_de fndecl 2-3 35619 &enable_so_generic_perform_write_fndecl_35619 nohasharray
158345 +enable_so_count_fm10k_ring_35619 count fm10k_ring 0 35619 &enable_so_ext4_update_final_de_fndecl_35619
158346 +enable_so_ext3_acl_from_disk_fndecl_35620 ext3_acl_from_disk fndecl 2 35620 NULL
158347 +enable_so_ips_scmd_buf_read_fndecl_35622 ips_scmd_buf_read fndecl 3 35622 NULL nohasharray
158348 +enable_so_write_rio_fndecl_35622 write_rio fndecl 3 35622 &enable_so_ips_scmd_buf_read_fndecl_35622
158349 +enable_so_netxen_process_lro_fndecl_35630 netxen_process_lro fndecl 5-4 35630 NULL
158350 +enable_so_prev_rs_il_rate_info_35636 prev_rs il_rate_info 0 35636 NULL nohasharray
158351 +enable_so_cciss_add_gendisk_fndecl_35636 cciss_add_gendisk fndecl 0 35636 &enable_so_prev_rs_il_rate_info_35636
158352 +enable_so_nvkm_bar_create__fndecl_35648 nvkm_bar_create_ fndecl 4 35648 NULL
158353 +enable_so_smsc47b397_device_add_fndecl_35649 smsc47b397_device_add fndecl 1 35649 NULL
158354 +enable_so_prism_build_supp_rates_fndecl_35650 prism_build_supp_rates fndecl 0 35650 NULL
158355 +enable_so_viafb_second_xres_vardecl_35651 viafb_second_xres vardecl 0 35651 NULL nohasharray
158356 +enable_so_broadsheet_spiflash_rewrite_sector_fndecl_35651 broadsheet_spiflash_rewrite_sector fndecl 2 35651 &enable_so_viafb_second_xres_vardecl_35651
158357 +enable_so_urb_size_uvc_streaming_35654 urb_size uvc_streaming 0 35654 NULL
158358 +enable_so_urb_enqueue_hc_driver_35656 urb_enqueue hc_driver 0 35656 NULL
158359 +enable_so_max_cmd_sgentries_ctlr_info_35659 max_cmd_sgentries ctlr_info 0 35659 NULL
158360 +enable_so_xfs_alloc_read_agfl_fndecl_35660 xfs_alloc_read_agfl fndecl 3 35660 NULL
158361 +enable_so_xfs_vm_direct_IO_fndecl_35663 xfs_vm_direct_IO fndecl 3 35663 NULL nohasharray
158362 +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
158363 +enable_so_printer_read_fndecl_35664 printer_read fndecl 3 35664 NULL
158364 +enable_so_ufx_ops_write_fndecl_35667 ufx_ops_write fndecl 3 35667 NULL
158365 +enable_so_numdevs_ore_components_35671 numdevs ore_components 0 35671 NULL
158366 +enable_so_qib_reg_user_mr_fndecl_35673 qib_reg_user_mr fndecl 2-3-4 35673 NULL
158367 +enable_so_ncntrs_qib_chip_specific_35675 ncntrs qib_chip_specific 0 35675 NULL
158368 +enable_so_rate_clk_core_35677 rate clk_core 0 35677 NULL nohasharray
158369 +enable_so_nv35_fb_tile_comp_fndecl_35677 nv35_fb_tile_comp fndecl 3 35677 &enable_so_rate_clk_core_35677
158370 +enable_so_read_into_fndecl_35681 read_into fndecl 2 35681 NULL nohasharray
158371 +enable_so_size_xpnet_message_35681 size xpnet_message 0 35681 &enable_so_read_into_fndecl_35681
158372 +enable_so_id_mfd_cell_35684 id mfd_cell 0 35684 NULL
158373 +enable_so_rx_words_eob_pch_gbe_rx_desc_35687 rx_words_eob pch_gbe_rx_desc 0 35687 NULL
158374 +enable_so_affs_extent_file_ofs_fndecl_35690 affs_extent_file_ofs fndecl 2 35690 NULL
158375 +enable_so_at_max_vardecl_35692 at_max vardecl 0 35692 NULL
158376 +enable_so_width_drm_radeon_tex_image_35693 width drm_radeon_tex_image 0 35693 NULL
158377 +enable_so_isert_map_data_buf_fndecl_35701 isert_map_data_buf fndecl 6-5-4 35701 NULL
158378 +enable_so_wil_pmc_alloc_fndecl_35702 wil_pmc_alloc fndecl 2-3 35702 NULL
158379 +enable_so_gfs2_write_alloc_required_fndecl_35708 gfs2_write_alloc_required fndecl 3-2 35708 NULL
158380 +enable_so_gcr_size_intel_pmc_ipc_dev_35709 gcr_size intel_pmc_ipc_dev 0 35709 NULL
158381 +enable_so_bnx2x_change_mtu_fndecl_35710 bnx2x_change_mtu fndecl 2 35710 NULL
158382 +enable_so_srp_post_send_fndecl_35713 srp_post_send fndecl 3 35713 NULL
158383 +enable_so_remote_nentries_xpc_channel_35714 remote_nentries xpc_channel 0 35714 NULL
158384 +enable_so_credits_csio_q_35715 credits csio_q 0 35715 NULL
158385 +enable_so_bio_add_page_fndecl_35718 bio_add_page fndecl 4-3-0 35718 NULL nohasharray
158386 +enable_so_RequestCredit_mpt3sas_facts_35718 RequestCredit mpt3sas_facts 0 35718 &enable_so_bio_add_page_fndecl_35718
158387 +enable_so_mxms_structlen_fndecl_35720 mxms_structlen fndecl 0 35720 NULL
158388 +enable_so_lowpan_xmit_fragment_fndecl_35724 lowpan_xmit_fragment fndecl 4-6 35724 NULL
158389 +enable_so_fdt_translate_address_fndecl_35726 fdt_translate_address fndecl 0 35726 NULL nohasharray
158390 +enable_so_add_port_fndecl_35726 add_port fndecl 2 35726 &enable_so_fdt_translate_address_fndecl_35726
158391 +enable_so_size_irq_routing_options_35727 size irq_routing_options 0 35727 NULL
158392 +enable_so_last_xfer_len_ide_cmd_35728 last_xfer_len ide_cmd 0 35728 NULL
158393 +enable_so_iscsi_pool_init_fndecl_35730 iscsi_pool_init fndecl 2-4 35730 NULL
158394 +enable_so_mwifiex_append_rate_tlv_fndecl_35735 mwifiex_append_rate_tlv fndecl 0 35735 NULL
158395 +enable_so_priv_size_data_queue_35740 priv_size data_queue 0 35740 NULL
158396 +enable_so_offset_ext4_io_end_35743 offset ext4_io_end 0 35743 NULL
158397 +enable_so_ggtt_probe_common_fndecl_35744 ggtt_probe_common fndecl 2 35744 NULL
158398 +enable_so_alauda_write_data_fndecl_35748 alauda_write_data fndecl 3-2 35748 NULL
158399 +enable_so_goodix_i2c_read_fndecl_35755 goodix_i2c_read fndecl 4 35755 NULL nohasharray
158400 +enable_so_c4_add_card_fndecl_35755 c4_add_card fndecl 3 35755 &enable_so_goodix_i2c_read_fndecl_35755 nohasharray
158401 +enable_so_buftot_msm_perf_state_35755 buftot msm_perf_state 0 35755 &enable_so_c4_add_card_fndecl_35755
158402 +enable_so_left_qxl_urect_35760 left qxl_urect 0 35760 NULL
158403 +enable_so_fh_epd_frame_35764 fh epd_frame 0 35764 NULL
158404 +enable_so_ath9k_dump_btcoex_fndecl_35766 ath9k_dump_btcoex fndecl 0 35766 NULL
158405 +enable_so_channels_snd_usb_substream_35767 channels snd_usb_substream 0 35767 NULL nohasharray
158406 +enable_so_nvkm_mm_tail_fndecl_35767 nvkm_mm_tail fndecl 6-4-3 35767 &enable_so_channels_snd_usb_substream_35767
158407 +enable_so_virtscsi_compute_resid_fndecl_35772 virtscsi_compute_resid fndecl 2 35772 NULL nohasharray
158408 +enable_so_s_hdrwords_qib_qp_35772 s_hdrwords qib_qp 0 35772 &enable_so_virtscsi_compute_resid_fndecl_35772
158409 +enable_so_data0_sisusb_command_35773 data0 sisusb_command 0 35773 NULL
158410 +enable_so_arizona_find_fratio_fndecl_35779 arizona_find_fratio fndecl 0 35779 NULL
158411 +enable_so_mem_vardecl_matroxfb_base_c_35780 mem vardecl_matroxfb_base.c 0 35780 NULL
158412 +enable_so_uv_systab_efi_35786 uv_systab efi 0 35786 NULL
158413 +enable_so_encap_size_brnf_frag_data_35787 encap_size brnf_frag_data 0 35787 NULL
158414 +enable_so_ib_uverbs_modify_srq_fndecl_35804 ib_uverbs_modify_srq fndecl 3 35804 NULL nohasharray
158415 +enable_so_alloc_mon_bin_get_35804 alloc mon_bin_get 0 35804 &enable_so_ib_uverbs_modify_srq_fndecl_35804
158416 +enable_so_ext3_xattr_get_fndecl_35806 ext3_xattr_get fndecl 0 35806 NULL
158417 +enable_so_error_error_null_Frame_tx_start_read_fndecl_35811 error_error_null_Frame_tx_start_read fndecl 3 35811 NULL
158418 +enable_so_send_ctrl_pipe_us_data_35813 send_ctrl_pipe us_data 0 35813 NULL
158419 +enable_so_used_tty_buffer_35815 used tty_buffer 0 35815 NULL
158420 +enable_so_number_of_controls_controlcache_6205_35817 number_of_controls controlcache_6205 0 35817 NULL
158421 +enable_so_headroom_caifsock_35821 headroom caifsock 0 35821 NULL
158422 +enable_so_leaf_cut_from_buffer_fndecl_35824 leaf_cut_from_buffer fndecl 4 35824 NULL
158423 +enable_so_rx_buffer_padding_efx_nic_type_35825 rx_buffer_padding efx_nic_type 0 35825 NULL
158424 +enable_so_VFP_kyrofb_info_35826 VFP kyrofb_info 0 35826 NULL
158425 +enable_so_cx231xx_v4l2_read_fndecl_35829 cx231xx_v4l2_read fndecl 3 35829 NULL
158426 +enable_so_env_end_mm_struct_35831 env_end mm_struct 0 35831 NULL nohasharray
158427 +enable_so_twl_load_sgl_fndecl_35831 twl_load_sgl fndecl 5 35831 &enable_so_env_end_mm_struct_35831 nohasharray
158428 +enable_so_num_pmkids_ndis_80211_capability_35831 num_pmkids ndis_80211_capability 0 35831 &enable_so_twl_load_sgl_fndecl_35831
158429 +enable_so_srq_size_srpt_device_35833 srq_size srpt_device 0 35833 NULL
158430 +enable_so_request_sz_MPT3SAS_ADAPTER_35834 request_sz MPT3SAS_ADAPTER 0 35834 NULL
158431 +enable_so_paging32_get_level1_sp_gpa_fndecl_35837 paging32_get_level1_sp_gpa fndecl 0 35837 NULL
158432 +enable_so_size_mvneta_tx_queue_35842 size mvneta_tx_queue 0 35842 NULL
158433 +enable_so_clk_core_enable_fndecl_35844 clk_core_enable fndecl 0 35844 NULL
158434 +enable_so_l_iclog_size_xlog_35849 l_iclog_size xlog 0 35849 NULL
158435 +enable_so_snd_pcm_format_physical_width_fndecl_35858 snd_pcm_format_physical_width fndecl 0 35858 NULL
158436 +enable_so_ipw_write_packet_sent_callback_fndecl_35859 ipw_write_packet_sent_callback fndecl 2 35859 NULL
158437 +enable_so_start_vga_cam_fndecl_35860 start_vga_cam fndecl 0 35860 NULL
158438 +enable_so_check_acl_fndecl_35867 check_acl fndecl 0 35867 NULL
158439 +enable_so_usb_stor_bulk_transfer_sglist_fndecl_35871 usb_stor_bulk_transfer_sglist fndecl 5-2-4 35871 NULL
158440 +enable_so_pcol_add_page_fndecl_35872 pcol_add_page fndecl 3 35872 NULL
158441 +enable_so_snd_hdsp_midi_output_possible_fndecl_35873 snd_hdsp_midi_output_possible fndecl 0 35873 NULL
158442 +enable_so_shared_out_nid_ca0132_spec_35876 shared_out_nid ca0132_spec 0 35876 NULL
158443 +enable_so_st_sensors_spi_read_fndecl_35890 st_sensors_spi_read fndecl 4 35890 NULL
158444 +enable_so_lpuart_dma_tx_fndecl_35902 lpuart_dma_tx fndecl 2 35902 NULL nohasharray
158445 +enable_so_nft_data_dump_fndecl_35902 nft_data_dump fndecl 5 35902 &enable_so_lpuart_dma_tx_fndecl_35902
158446 +enable_so_fe_group_ext4_free_extent_35905 fe_group ext4_free_extent 0 35905 NULL nohasharray
158447 +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
158448 +enable_so_lirc_base_dev_vardecl_lirc_dev_c_35907 lirc_base_dev vardecl_lirc_dev.c 0 35907 NULL
158449 +enable_so_btrfs_set_stack_chunk_num_stripes_fndecl_35911 btrfs_set_stack_chunk_num_stripes fndecl 2 35911 NULL
158450 +enable_so_cifs_utf16_bytes_fndecl_35914 cifs_utf16_bytes fndecl 0 35914 NULL
158451 +enable_so_num_sensors_fimc_md_35915 num_sensors fimc_md 0 35915 NULL
158452 +enable_so_right_vardecl_matroxfb_base_c_35916 right vardecl_matroxfb_base.c 0 35916 NULL
158453 +enable_so_packet_count_efx_loopback_state_35918 packet_count efx_loopback_state 0 35918 NULL
158454 +enable_so_max_height_sh_mobile_ceu_dev_35922 max_height sh_mobile_ceu_dev 0 35922 NULL nohasharray
158455 +enable_so_sigma_fw_load_control_fndecl_35922 sigma_fw_load_control fndecl 3 35922 &enable_so_max_height_sh_mobile_ceu_dev_35922
158456 +enable_so_softback_end_vardecl_fbcon_c_35923 softback_end vardecl_fbcon.c 0 35923 NULL
158457 +enable_so_n_algs_wmfw_adsp1_id_hdr_35926 n_algs wmfw_adsp1_id_hdr 0 35926 NULL
158458 +enable_so_ieee802154_hdr_minlen_fndecl_35927 ieee802154_hdr_minlen fndecl 0 35927 NULL
158459 +enable_so_bytes_written_cq_fcp_rq_desc_35931 bytes_written cq_fcp_rq_desc 0 35931 NULL
158460 +enable_so_length_isp1362_ep_35933 length isp1362_ep 0 35933 NULL nohasharray
158461 +enable_so_dma_buf_size_ddb_input_35933 dma_buf_size ddb_input 0 35933 &enable_so_length_isp1362_ep_35933 nohasharray
158462 +enable_so_width_drm_radeon_texture_35933 width drm_radeon_texture 0 35933 &enable_so_dma_buf_size_ddb_input_35933
158463 +enable_so_snd_pcm_new_stream_fndecl_35934 snd_pcm_new_stream fndecl 3 35934 NULL
158464 +enable_so_disk_stack_limits_fndecl_35936 disk_stack_limits fndecl 3 35936 NULL
158465 +enable_so_wMaxPacketSize_wdm_device_35940 wMaxPacketSize wdm_device 0 35940 NULL
158466 +enable_so____alloc_bootmem_nopanic_fndecl_35945 ___alloc_bootmem_nopanic fndecl 2-1-3-4 35945 NULL nohasharray
158467 +enable_so_wil_write_file_txmgmt_fndecl_35945 wil_write_file_txmgmt fndecl 3 35945 &enable_so____alloc_bootmem_nopanic_fndecl_35945
158468 +enable_so_isl1208_i2c_read_regs_fndecl_35952 isl1208_i2c_read_regs fndecl 4 35952 NULL
158469 +enable_so_nx_fw_cmd_set_mtu_fndecl_35954 nx_fw_cmd_set_mtu fndecl 2 35954 NULL
158470 +enable_so_fat_uni_to_x8_fndecl_35959 fat_uni_to_x8 fndecl 0 35959 NULL
158471 +enable_so_s_root_block_affs_sb_info_35962 s_root_block affs_sb_info 0 35962 NULL
158472 +enable_so_num_entries_compat_ip6t_replace_35966 num_entries compat_ip6t_replace 0 35966 NULL nohasharray
158473 +enable_so_buf_size_si470x_device_35966 buf_size si470x_device 0 35966 &enable_so_num_entries_compat_ip6t_replace_35966
158474 +enable_so_flows_tc_sfq_qopt_35973 flows tc_sfq_qopt 0 35973 NULL
158475 +enable_so_max_df_size_ipq_35974 max_df_size ipq 0 35974 NULL nohasharray
158476 +enable_so_pf_num_bnx2x_35974 pf_num bnx2x 0 35974 &enable_so_max_df_size_ipq_35974
158477 +enable_so_bus_myri10ge_rx_done_35977 bus myri10ge_rx_done 0 35977 NULL
158478 +enable_so_pn_sendmsg_fndecl_35979 pn_sendmsg fndecl 3 35979 NULL
158479 +enable_so_num_dacs_hda_multi_out_35981 num_dacs hda_multi_out 0 35981 NULL
158480 +enable_so_ccid_getsockopt_builtin_ccids_fndecl_35985 ccid_getsockopt_builtin_ccids fndecl 2 35985 NULL
158481 +enable_so_if_spi_prog_main_firmware_check_len_fndecl_35990 if_spi_prog_main_firmware_check_len fndecl 0 35990 NULL
158482 +enable_so_perf_output_skip_fndecl_35994 perf_output_skip fndecl 2 35994 NULL
158483 +enable_so_mss_cache_tcp_sock_35995 mss_cache tcp_sock 0 35995 NULL
158484 +enable_so_daddr_fsl_edma_hw_tcd_35996 daddr fsl_edma_hw_tcd 0 35996 NULL nohasharray
158485 +enable_so_address_acpi_nfit_system_address_35996 address acpi_nfit_system_address 0 35996 &enable_so_daddr_fsl_edma_hw_tcd_35996
158486 +enable_so_poll_vardecl_hfcpci_c_36001 poll vardecl_hfcpci.c 0 36001 NULL nohasharray
158487 +enable_so_fuse_fill_write_pages_fndecl_36001 fuse_fill_write_pages fndecl 4-0 36001 &enable_so_poll_vardecl_hfcpci_c_36001 nohasharray
158488 +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
158489 +enable_so_v4l2_event_subscribe_fndecl_36004 v4l2_event_subscribe fndecl 3 36004 NULL
158490 +enable_so_ntb_transport_max_size_fndecl_36009 ntb_transport_max_size fndecl 0 36009 NULL nohasharray
158491 +enable_so_max_rx_kingsun_cb_36009 max_rx kingsun_cb 0 36009 &enable_so_ntb_transport_max_size_fndecl_36009 nohasharray
158492 +enable_so_igb_alloc_q_vector_fndecl_36009 igb_alloc_q_vector fndecl 4-6 36009 &enable_so_max_rx_kingsun_cb_36009 nohasharray
158493 +enable_so_bdev_logical_block_size_fndecl_36009 bdev_logical_block_size fndecl 0 36009 &enable_so_igb_alloc_q_vector_fndecl_36009
158494 +enable_so___nfs4_proc_set_acl_fndecl_36018 __nfs4_proc_set_acl fndecl 3 36018 NULL
158495 +enable_so_n_sg_vscsibk_pend_36028 n_sg vscsibk_pend 0 36028 NULL
158496 +enable_so_count_sgentry64_36033 count sgentry64 0 36033 NULL
158497 +enable_so_NumEraseUnits_NFTLMediaHeader_36036 NumEraseUnits NFTLMediaHeader 0 36036 NULL
158498 +enable_so_insert_bio_sectors_search_36037 insert_bio_sectors search 0 36037 NULL
158499 +enable_so_thread_notes_elf_note_info_36040 thread_notes elf_note_info 0 36040 NULL
158500 +enable_so_update_ind_extent_range_fndecl_36049 update_ind_extent_range fndecl 3 36049 NULL
158501 +enable_so_manual_retry_count_local_info_36060 manual_retry_count local_info 0 36060 NULL
158502 +enable_so_block_size_nvkm_mm_36062 block_size nvkm_mm 0 36062 NULL
158503 +enable_so_rx_status_len_bcm_rsb_36064 rx_status_len bcm_rsb 0 36064 NULL
158504 +enable_so_piobcnt2k_qib_devdata_36065 piobcnt2k qib_devdata 0 36065 NULL
158505 +enable_so_xfrm_compile_policy_fndecl_36070 xfrm_compile_policy fndecl 4 36070 NULL
158506 +enable_so_lpfc_idiag_queacc_read_qe_fndecl_36072 lpfc_idiag_queacc_read_qe fndecl 0-2 36072 NULL
158507 +enable_so_usb_stor_control_msg_fndecl_36073 usb_stor_control_msg fndecl 8-2 36073 NULL
158508 +enable_so_wa_populate_buf_in_urb_fndecl_36077 wa_populate_buf_in_urb fndecl 4-3 36077 NULL
158509 +enable_so_blocksize_alauda_media_info_36080 blocksize alauda_media_info 0 36080 NULL nohasharray
158510 +enable_so_nwriters_stress_vardecl_locktorture_c_36080 nwriters_stress vardecl_locktorture.c 0 36080 &enable_so_blocksize_alauda_media_info_36080
158511 +enable_so_wdm_write_fndecl_36084 wdm_write fndecl 3 36084 NULL
158512 +enable_so_xfs_extent_busy_insert_fndecl_36087 xfs_extent_busy_insert fndecl 4-3-2 36087 NULL
158513 +enable_so_smq_create_fndecl_36088 smq_create fndecl 1 36088 NULL
158514 +enable_so_ext3_try_to_allocate_with_rsv_fndecl_36090 ext3_try_to_allocate_with_rsv fndecl 0-5 36090 NULL
158515 +enable_so_wil_write_file_ssid_fndecl_36097 wil_write_file_ssid fndecl 3 36097 NULL
158516 +enable_so_set_extent_uptodate_fndecl_36117 set_extent_uptodate fndecl 3-2 36117 NULL nohasharray
158517 +enable_so_nr_requests_request_queue_36117 nr_requests request_queue 0 36117 &enable_so_set_extent_uptodate_fndecl_36117
158518 +enable_so_xfs_trans_read_buf_map_fndecl_36121 xfs_trans_read_buf_map fndecl 5 36121 NULL
158519 +enable_so_ipr_change_queue_depth_fndecl_36124 ipr_change_queue_depth fndecl 2 36124 NULL
158520 +enable_so_dictionary_size_disk_comp_opts_36125 dictionary_size disk_comp_opts 0 36125 NULL
158521 +enable_so_bytesperline_v4l2_plane_pix_format_36133 bytesperline v4l2_plane_pix_format 0 36133 NULL
158522 +enable_so_x25_sendmsg_fndecl_36140 x25_sendmsg fndecl 3 36140 NULL
158523 +enable_so_f2fs_fiemap_fndecl_36141 f2fs_fiemap fndecl 3-4 36141 NULL
158524 +enable_so_lirc_buffer_init_fndecl_36145 lirc_buffer_init fndecl 2 36145 NULL
158525 +enable_so_spi_xcomm_sync_config_fndecl_36146 spi_xcomm_sync_config fndecl 0 36146 NULL
158526 +enable_so_create_empty_buffers_fndecl_36152 create_empty_buffers fndecl 2 36152 NULL
158527 +enable_so_payload_camif_vp_36153 payload camif_vp 0 36153 NULL
158528 +enable_so_ad9523_reg_access_fndecl_36157 ad9523_reg_access fndecl 2 36157 NULL
158529 +enable_so_ieee80211_send_probe_req_fndecl_36159 ieee80211_send_probe_req fndecl 7-5 36159 NULL
158530 +enable_so_next_nilfs_segsum_info_36161 next nilfs_segsum_info 0 36161 NULL
158531 +enable_so_clone_sources_count_btrfs_ioctl_send_args_36165 clone_sources_count btrfs_ioctl_send_args 0 36165 NULL
158532 +enable_so_gsm_control_reply_fndecl_36166 gsm_control_reply fndecl 4 36166 NULL
158533 +enable_so_vm_mmap_fndecl_36168 vm_mmap fndecl 3-0 36168 NULL
158534 +enable_so_qd2offset_fndecl_36177 qd2offset fndecl 0 36177 NULL
158535 +enable_so_length_octeon_droq_info_36178 length octeon_droq_info 0 36178 NULL
158536 +enable_so_nr_ion_platform_data_36179 nr ion_platform_data 0 36179 NULL
158537 +enable_so_len_ib_ucm_mra_36185 len ib_ucm_mra 0 36185 NULL
158538 +enable_so_flash_size_jffs2_sb_info_36187 flash_size jffs2_sb_info 0 36187 NULL
158539 +enable_so_batadv_interface_rx_fndecl_36190 batadv_interface_rx fndecl 4 36190 NULL
158540 +enable_so_prealloc_buffer_size_snd_dmaengine_pcm_config_36192 prealloc_buffer_size snd_dmaengine_pcm_config 0 36192 NULL
158541 +enable_so_objlayout_read_done_fndecl_36193 objlayout_read_done fndecl 2 36193 NULL
158542 +enable_so_range_min_regmap_range_36196 range_min regmap_range 0 36196 NULL
158543 +enable_so_n_cap_bufs_via_camera_36198 n_cap_bufs via_camera 0 36198 NULL
158544 +enable_so_ubifs_write_end_fndecl_36202 ubifs_write_end fndecl 4-3 36202 NULL nohasharray
158545 +enable_so_sock_setbindtodevice_fndecl_36202 sock_setbindtodevice fndecl 3 36202 &enable_so_ubifs_write_end_fndecl_36202
158546 +enable_so_hmask_xfrm_policy_hash_36203 hmask xfrm_policy_hash 0 36203 NULL
158547 +enable_so_f2fs_zero_range_fndecl_36204 f2fs_zero_range fndecl 2-3 36204 NULL
158548 +enable_so_blksz_mmc_ioc_cmd_36207 blksz mmc_ioc_cmd 0 36207 NULL
158549 +enable_so_xfs_vm_write_begin_fndecl_36211 xfs_vm_write_begin fndecl 3-4 36211 NULL
158550 +enable_so_btrfs_find_all_roots_fndecl_36213 btrfs_find_all_roots fndecl 3 36213 NULL nohasharray
158551 +enable_so_nfs_try_to_update_request_fndecl_36213 nfs_try_to_update_request fndecl 3-4 36213 &enable_so_btrfs_find_all_roots_fndecl_36213
158552 +enable_so_v4l2_ctrl_g_ctrl_fndecl_36216 v4l2_ctrl_g_ctrl fndecl 0 36216 NULL
158553 +enable_so_bnx2i_send_nl_mesg_fndecl_36218 bnx2i_send_nl_mesg fndecl 4 36218 NULL
158554 +enable_so_alloc_xen_mmio_fndecl_36220 alloc_xen_mmio fndecl 0-1 36220 NULL
158555 +enable_so_page_size_spi_eeprom_36227 page_size spi_eeprom 0 36227 NULL nohasharray
158556 +enable_so_MaxDevHandle_mpt3sas_facts_36227 MaxDevHandle mpt3sas_facts 0 36227 &enable_so_page_size_spi_eeprom_36227
158557 +enable_so_reserve_space_fndecl_36229 reserve_space fndecl 2 36229 NULL
158558 +enable_so_add_async_extent_fndecl_36239 add_async_extent fndecl 2-3 36239 NULL
158559 +enable_so_surfaceram_base_qxl_device_36241 surfaceram_base qxl_device 0 36241 NULL nohasharray
158560 +enable_so_data_queues_rt2x00_dev_36241 data_queues rt2x00_dev 0 36241 &enable_so_surfaceram_base_qxl_device_36241
158561 +enable_so_vhost_kvzalloc_fndecl_36242 vhost_kvzalloc fndecl 1 36242 NULL
158562 +enable_so_histogram_alloc_size_dm_stat_36247 histogram_alloc_size dm_stat 0 36247 NULL nohasharray
158563 +enable_so_fpage_offs_genwqe_sgl_36247 fpage_offs genwqe_sgl 0 36247 &enable_so_histogram_alloc_size_dm_stat_36247
158564 +enable_so_xfs_imap_fndecl_36254 xfs_imap fndecl 3 36254 NULL
158565 +enable_so_svc_create_pooled_fndecl_36258 svc_create_pooled fndecl 2 36258 NULL
158566 +enable_so_dma_nv_skb_map_36260 dma nv_skb_map 0 36260 NULL
158567 +enable_so_nvkm_fifo_channel_create__fndecl_36261 nvkm_fifo_channel_create_ fndecl 6-9 36261 NULL nohasharray
158568 +enable_so_size_sge_txq_36261 size sge_txq 0 36261 &enable_so_nvkm_fifo_channel_create__fndecl_36261
158569 +enable_so_isr_cmd_cmplt_read_fndecl_36268 isr_cmd_cmplt_read fndecl 3 36268 NULL
158570 +enable_so_pwc_get_fps_Timon_fndecl_36269 pwc_get_fps_Timon fndecl 0 36269 NULL nohasharray
158571 +enable_so_cydata_ofsl_cyttsp4_sysinfo_data_36269 cydata_ofsl cyttsp4_sysinfo_data 0 36269 &enable_so_pwc_get_fps_Timon_fndecl_36269
158572 +enable_so_scsi_alloc_sgtable_fndecl_36270 scsi_alloc_sgtable fndecl 2 36270 NULL
158573 +enable_so_num_uf_bufs_bfa_iocfc_fwcfg_s_36271 num_uf_bufs bfa_iocfc_fwcfg_s 0 36271 NULL
158574 +enable_so_sita_init_fndecl_36274 sita_init fndecl 1-2 36274 NULL
158575 +enable_so_s_clusters_per_group_ext4_sb_info_36278 s_clusters_per_group ext4_sb_info 0 36278 NULL nohasharray
158576 +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
158577 +enable_so__dump_buf_dif_order_vardecl_36281 _dump_buf_dif_order vardecl 0 36281 NULL
158578 +enable_so_hci_check_pending_name_fndecl_36282 hci_check_pending_name fndecl 5 36282 NULL
158579 +enable_so_calc_sectors_fndecl_36288 calc_sectors fndecl 2 36288 NULL nohasharray
158580 +enable_so_len_ethtool_tunable_36288 len ethtool_tunable 0 36288 &enable_so_calc_sectors_fndecl_36288
158581 +enable_so_collection_size_hid_device_36289 collection_size hid_device 0 36289 NULL
158582 +enable_so___btrfs_lookup_bio_sums_fndecl_36290 __btrfs_lookup_bio_sums fndecl 4 36290 NULL
158583 +enable_so_offs_h_fimc_frame_36295 offs_h fimc_frame 0 36295 NULL nohasharray
158584 +enable_so_iscsi_tcp_recv_skb_fndecl_36295 iscsi_tcp_recv_skb fndecl 3-0 36295 &enable_so_offs_h_fimc_frame_36295
158585 +enable_so_ssl_next_nilfs_snapshot_list_36302 ssl_next nilfs_snapshot_list 0 36302 NULL
158586 +enable_so_paging64_prefetch_gpte_fndecl_36303 paging64_prefetch_gpte fndecl 4 36303 NULL
158587 +enable_so_command_size_drm_vmw_execbuf_arg_36305 command_size drm_vmw_execbuf_arg 0 36305 NULL
158588 +enable_so_tegra_fb_alloc_fndecl_36306 tegra_fb_alloc fndecl 4 36306 NULL
158589 +enable_so_size_kernfs_elem_attr_36307 size kernfs_elem_attr 0 36307 NULL
158590 +enable_so_snd_dma_alloc_pages_fndecl_36308 snd_dma_alloc_pages fndecl 3 36308 NULL nohasharray
158591 +enable_so_mwifiex_info_read_fndecl_36308 mwifiex_info_read fndecl 3 36308 &enable_so_snd_dma_alloc_pages_fndecl_36308 nohasharray
158592 +enable_so_len_etd_priv_36308 len etd_priv 0 36308 &enable_so_mwifiex_info_read_fndecl_36308
158593 +enable_so_max_transfer_snd_usb_midi_out_endpoint_36311 max_transfer snd_usb_midi_out_endpoint 0 36311 NULL
158594 +enable_so_chunk_size_mdp_superblock_s_36313 chunk_size mdp_superblock_s 0 36313 NULL
158595 +enable_so_n_descsz_elf64_note_36314 n_descsz elf64_note 0 36314 NULL
158596 +enable_so_dpdData_size_wsm_configuration_36315 dpdData_size wsm_configuration 0 36315 NULL
158597 +enable_so_acpi_tb_parse_root_table_fndecl_36316 acpi_tb_parse_root_table fndecl 1 36316 NULL
158598 +enable_so_fsbno_xfs_alloc_arg_36318 fsbno xfs_alloc_arg 0 36318 NULL nohasharray
158599 +enable_so_move_buffer_data_fndecl_36318 move_buffer_data fndecl 2 36318 &enable_so_fsbno_xfs_alloc_arg_36318
158600 +enable_so_apei_exec_run_optional_fndecl_36319 apei_exec_run_optional fndecl 0 36319 NULL
158601 +enable_so_file_size_squashfs_lreg_inode_36323 file_size squashfs_lreg_inode 0 36323 NULL
158602 +enable_so_client_channels_snd_pcm_plugin_36324 client_channels snd_pcm_plugin 0 36324 NULL
158603 +enable_so_xfs_symlink_blocks_fndecl_36326 xfs_symlink_blocks fndecl 0-2 36326 NULL nohasharray
158604 +enable_so_xferred_rbd_obj_request_36326 xferred rbd_obj_request 0 36326 &enable_so_xfs_symlink_blocks_fndecl_36326
158605 +enable_so_do_verify_xattr_datum_fndecl_36328 do_verify_xattr_datum fndecl 0 36328 NULL
158606 +enable_so_ima_write_template_field_data_fndecl_36336 ima_write_template_field_data fndecl 2 36336 NULL nohasharray
158607 +enable_so_create_trace_kprobe_fndecl_36336 create_trace_kprobe fndecl 1 36336 &enable_so_ima_write_template_field_data_fndecl_36336
158608 +enable_so_hidp_send_frame_fndecl_36338 hidp_send_frame fndecl 3 36338 NULL
158609 +enable_so_digest_encode_fndecl_36340 digest_encode fndecl 0 36340 NULL
158610 +enable_so_rds_tcp_data_recv_fndecl_36343 rds_tcp_data_recv fndecl 4-3 36343 NULL
158611 +enable_so_iowarrior_read_fndecl_36344 iowarrior_read fndecl 3 36344 NULL
158612 +enable_so_osd_req_write_kern_fndecl_36349 osd_req_write_kern fndecl 5 36349 NULL
158613 +enable_so_inode_blocks_efs_sb_info_36351 inode_blocks efs_sb_info 0 36351 NULL
158614 +enable_so_num_crtc_cirrus_device_36358 num_crtc cirrus_device 0 36358 NULL
158615 +enable_so_ipxrtr_route_packet_fndecl_36359 ipxrtr_route_packet fndecl 4 36359 NULL
158616 +enable_so_snd_pcm_lib_write_transfer_fndecl_36369 snd_pcm_lib_write_transfer fndecl 5 36369 NULL
158617 +enable_so_kvm_vcpu_read_guest_atomic_fndecl_36372 kvm_vcpu_read_guest_atomic fndecl 2-4 36372 NULL
158618 +enable_so_addr_len_ipmi_req_36374 addr_len ipmi_req 0 36374 NULL
158619 +enable_so_rx_ring_size_adm8211_priv_36391 rx_ring_size adm8211_priv 0 36391 NULL
158620 +enable_so_mtu_l2cap_le_conn_rsp_36399 mtu l2cap_le_conn_rsp 0 36399 NULL nohasharray
158621 +enable_so_max_rxsz_ulp_iscsi_info_36399 max_rxsz ulp_iscsi_info 0 36399 &enable_so_mtu_l2cap_le_conn_rsp_36399
158622 +enable_so_batadv_tt_update_orig_fndecl_36402 batadv_tt_update_orig fndecl 4-6 36402 NULL
158623 +enable_so_il4965_hwrate_to_tx_control_fndecl_36403 il4965_hwrate_to_tx_control fndecl 2 36403 NULL
158624 +enable_so_pipeline_dec_packet_out_read_fndecl_36407 pipeline_dec_packet_out_read fndecl 3 36407 NULL
158625 +enable_so_rproc_state_read_fndecl_36410 rproc_state_read fndecl 3 36410 NULL
158626 +enable_so_nl80211_send_disconnected_fndecl_36411 nl80211_send_disconnected fndecl 5 36411 NULL
158627 +enable_so_iter_file_splice_write_fndecl_36415 iter_file_splice_write fndecl 4 36415 NULL
158628 +enable_so_data_len_hfa384x_rx_frame_36417 data_len hfa384x_rx_frame 0 36417 NULL
158629 +enable_so_altera_set_ir_pre_fndecl_36420 altera_set_ir_pre fndecl 2 36420 NULL nohasharray
158630 +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
158631 +enable_so_create_xattr_fndecl_36425 create_xattr fndecl 5 36425 NULL
158632 +enable_so_essid_len_ipw2100_priv_36426 essid_len ipw2100_priv 0 36426 NULL
158633 +enable_so_mt2266_writeregs_fndecl_36430 mt2266_writeregs fndecl 3 36430 NULL
158634 +enable_so_rx_fifo_override_sh_msiof_spi_info_36440 rx_fifo_override sh_msiof_spi_info 0 36440 NULL
158635 +enable_so_reserved_page_order_st_buffer_36445 reserved_page_order st_buffer 0 36445 NULL
158636 +enable_so_size_packet_info_36454 size packet_info 0 36454 NULL
158637 +enable_so_hSync_width_panel_info_36455 hSync_width panel_info 0 36455 NULL
158638 +enable_so_isr_host_acknowledges_read_fndecl_36459 isr_host_acknowledges_read fndecl 3 36459 NULL nohasharray
158639 +enable_so_ov511_i2c_r_fndecl_36459 ov511_i2c_r fndecl 0 36459 &enable_so_isr_host_acknowledges_read_fndecl_36459
158640 +enable_so_avail_snd_compr_avail_36463 avail snd_compr_avail 0 36463 NULL
158641 +enable_so_strn_len_fndecl_36473 strn_len fndecl 0 36473 NULL
158642 +enable_so_rlim_max_rlimit_36476 rlim_max rlimit 0 36476 NULL nohasharray
158643 +enable_so_v9fs_xattr_get_fndecl_36476 v9fs_xattr_get fndecl 4 36476 &enable_so_rlim_max_rlimit_36476
158644 +enable_so_portnum_lvs_rh_36480 portnum lvs_rh 0 36480 NULL
158645 +enable_so_rx_len_yam_port_36481 rx_len yam_port 0 36481 NULL
158646 +enable_so_fb_show_logo_line_fndecl_36485 fb_show_logo_line fndecl 4 36485 NULL nohasharray
158647 +enable_so_t_task_lba_se_cmd_36485 t_task_lba se_cmd 0 36485 &enable_so_fb_show_logo_line_fndecl_36485 nohasharray
158648 +enable_so_i2400m_zrealloc_2x_fndecl_36485 i2400m_zrealloc_2x fndecl 3 36485 &enable_so_t_task_lba_se_cmd_36485
158649 +enable_so_read_bufsize_carl9170_debugfs_fops_36488 read_bufsize carl9170_debugfs_fops 0 36488 NULL
158650 +enable_so_p9_client_prepare_req_fndecl_36492 p9_client_prepare_req fndecl 3 36492 NULL
158651 +enable_so_tipc_msg_make_bundle_fndecl_36497 tipc_msg_make_bundle fndecl 3 36497 NULL
158652 +enable_so_do_fault_around_fndecl_36500 do_fault_around fndecl 2-4 36500 NULL
158653 +enable_so_queue_rx_frame_fndecl_36501 queue_rx_frame fndecl 2 36501 NULL nohasharray
158654 +enable_so_sg_max_nents_hwif_s_36501 sg_max_nents hwif_s 0 36501 &enable_so_queue_rx_frame_fndecl_36501
158655 +enable_so_start_nid_hdac_device_36504 start_nid hdac_device 0 36504 NULL
158656 +enable_so_create_pinned_em_fndecl_36508 create_pinned_em fndecl 3-4-5-7-6-2 36508 NULL
158657 +enable_so_skge_change_mtu_fndecl_36510 skge_change_mtu fndecl 2 36510 NULL
158658 +enable_so_byte_count_vmtransfer_page_range_36511 byte_count vmtransfer_page_range 0 36511 NULL
158659 +enable_so_hpfs_map_4sectors_fndecl_36523 hpfs_map_4sectors fndecl 2 36523 NULL
158660 +enable_so_igu_sb_cnt_bnx2x_36525 igu_sb_cnt bnx2x 0 36525 NULL
158661 +enable_so_ue_num_asd_bios_chim_struct_36526 ue_num asd_bios_chim_struct 0 36526 NULL
158662 +enable_so_vid_end_switchdev_obj_vlan_36528 vid_end switchdev_obj_vlan 0 36528 NULL nohasharray
158663 +enable_so_length_ipath_sge_36528 length ipath_sge 0 36528 &enable_so_vid_end_switchdev_obj_vlan_36528
158664 +enable_so_ftdi_elan_edset_output_fndecl_36530 ftdi_elan_edset_output fndecl 0 36530 NULL
158665 +enable_so_sk_tcplen_svc_sock_36531 sk_tcplen svc_sock 0 36531 NULL
158666 +enable_so_nbpf_bytes_left_fndecl_36536 nbpf_bytes_left fndecl 0 36536 NULL
158667 +enable_so_acpi_os_read_memory_fndecl_36537 acpi_os_read_memory fndecl 3-1 36537 NULL
158668 +enable_so_actual_resp_len_be_cmd_resp_hdr_36543 actual_resp_len be_cmd_resp_hdr 0 36543 NULL
158669 +enable_so_pi_read_regr_fndecl_36548 pi_read_regr fndecl 0 36548 NULL
158670 +enable_so_size_nvkm_gpuobj_36549 size nvkm_gpuobj 0 36549 NULL
158671 +enable_so_net2272_write_packet_fndecl_36550 net2272_write_packet fndecl 4 36550 NULL
158672 +enable_so_max_sg_segs_vardecl_st_c_36551 max_sg_segs vardecl_st.c 0 36551 NULL
158673 +enable_so_ocfs2_fallocate_fndecl_36555 ocfs2_fallocate fndecl 3-4 36555 NULL nohasharray
158674 +enable_so_capture_chips_pcxhr_mgr_36555 capture_chips pcxhr_mgr 0 36555 &enable_so_ocfs2_fallocate_fndecl_36555
158675 +enable_so_fb_try_mode_fndecl_36560 fb_try_mode fndecl 4 36560 NULL
158676 +enable_so_fuse_file_compat_ioctl_fndecl_36564 fuse_file_compat_ioctl fndecl 2 36564 NULL
158677 +enable_so_sc_sq_depth_svcxprt_rdma_36568 sc_sq_depth svcxprt_rdma 0 36568 NULL
158678 +enable_so_sge_size_MPT2SAS_ADAPTER_36569 sge_size MPT2SAS_ADAPTER 0 36569 NULL nohasharray
158679 +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
158680 +enable_so_frag_thresh_orinoco_private_36570 frag_thresh orinoco_private 0 36570 NULL
158681 +enable_so_page_count_agp_memory_36571 page_count agp_memory 0 36571 NULL
158682 +enable_so___register_chrdev_fndecl_36572 __register_chrdev fndecl 0-2-1-3 36572 NULL
158683 +enable_so_do_sys_poll_fndecl_36574 do_sys_poll fndecl 2 36574 NULL
158684 +enable_so_ceph_msgpool_get_fndecl_36577 ceph_msgpool_get fndecl 2 36577 NULL
158685 +enable_so_num_shared_regs_intel_uncore_type_36581 num_shared_regs intel_uncore_type 0 36581 NULL
158686 +enable_so_wusb_prf_fndecl_36582 wusb_prf fndecl 7 36582 NULL nohasharray
158687 +enable_so_audio_write_fndecl_36582 audio_write fndecl 4 36582 &enable_so_wusb_prf_fndecl_36582
158688 +enable_so_s_last_psn_ipath_qp_36584 s_last_psn ipath_qp 0 36584 NULL
158689 +enable_so_rx_ring_size_pcnet32_private_36586 rx_ring_size pcnet32_private 0 36586 NULL
158690 +enable_so__rtl_rc_get_highest_rix_fndecl_36588 _rtl_rc_get_highest_rix fndecl 0 36588 NULL
158691 +enable_so_mwifiex_getlog_read_fndecl_36590 mwifiex_getlog_read fndecl 3 36590 NULL
158692 +enable_so_scan_cnt_ad7280_state_36592 scan_cnt ad7280_state 0 36592 NULL
158693 +enable_so_bgrt_image_size_vardecl_36594 bgrt_image_size vardecl 0 36594 NULL nohasharray
158694 +enable_so_s_2apbshift_ufs_sb_private_info_36594 s_2apbshift ufs_sb_private_info 0 36594 &enable_so_bgrt_image_size_vardecl_36594
158695 +enable_so_reada_add_block_fndecl_36596 reada_add_block fndecl 2 36596 NULL
158696 +enable_so_num_max_snd_ratden_36597 num_max snd_ratden 0 36597 NULL nohasharray
158697 +enable_so_mcp23s08_read_regs_fndecl_36597 mcp23s08_read_regs fndecl 4 36597 &enable_so_num_max_snd_ratden_36597 nohasharray
158698 +enable_so_UnitSizeFactor_NFTLMediaHeader_36597 UnitSizeFactor NFTLMediaHeader 0 36597 &enable_so_mcp23s08_read_regs_fndecl_36597
158699 +enable_so_update_block_group_fndecl_36600 update_block_group fndecl 4-3 36600 NULL
158700 +enable_so_write_file_spec_scan_ctl_fndecl_36603 write_file_spec_scan_ctl fndecl 3 36603 NULL
158701 +enable_so_xfs_dir2_sf_addname_hard_fndecl_36605 xfs_dir2_sf_addname_hard fndecl 3 36605 NULL nohasharray
158702 +enable_so_reply_len_sg_header_36605 reply_len sg_header 0 36605 &enable_so_xfs_dir2_sf_addname_hard_fndecl_36605
158703 +enable_so_drm_mm_insert_node_generic_fndecl_36608 drm_mm_insert_node_generic fndecl 3 36608 NULL
158704 +enable_so_len_nci_prop_cmd_param_36611 len nci_prop_cmd_param 0 36611 NULL
158705 +enable_so_set_user_nice_fndecl_36618 set_user_nice fndecl 2 36618 NULL
158706 +enable_so_f_pos_file_36619 f_pos file 0 36619 NULL
158707 +enable_so_gamma_size_drm_mode_crtc_lut_36622 gamma_size drm_mode_crtc_lut 0 36622 NULL
158708 +enable_so_raw_serial_size_x509_certificate_36629 raw_serial_size x509_certificate 0 36629 NULL
158709 +enable_so_i915_gem_execbuffer_parse_fndecl_36633 i915_gem_execbuffer_parse fndecl 6-5 36633 NULL nohasharray
158710 +enable_so_opcfg_ofsh_cyttsp4_sysinfo_data_36633 opcfg_ofsh cyttsp4_sysinfo_data 0 36633 &enable_so_i915_gem_execbuffer_parse_fndecl_36633
158711 +enable_so_read_super_block_fndecl_36638 read_super_block fndecl 2 36638 NULL
158712 +enable_so_lpfc_idiag_ctlacc_read_reg_fndecl_36642 lpfc_idiag_ctlacc_read_reg fndecl 0-3 36642 NULL
158713 +enable_so_nls_nullsize_fndecl_36644 nls_nullsize fndecl 0 36644 NULL
158714 +enable_so_pvr2_encoder_write_words_fndecl_36653 pvr2_encoder_write_words fndecl 4 36653 NULL nohasharray
158715 +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
158716 +enable_so_setup_data_read_fndecl_36653 setup_data_read fndecl 3 36653 &enable_so_context_id_iscsi_kwqe_conn_destroy_36653
158717 +enable_so_block_write_end_fndecl_36656 block_write_end fndecl 0-5 36656 NULL
158718 +enable_so___kfifo_dma_in_prepare_r_fndecl_36659 __kfifo_dma_in_prepare_r fndecl 4-5 36659 NULL nohasharray
158719 +enable_so_shmem_alloc_page_fndecl_36659 shmem_alloc_page fndecl 3 36659 &enable_so___kfifo_dma_in_prepare_r_fndecl_36659
158720 +enable_so___tty_alloc_driver_fndecl_36660 __tty_alloc_driver fndecl 1 36660 NULL
158721 +enable_so_qp_alloc_host_work_fndecl_36661 qp_alloc_host_work fndecl 3-5 36661 NULL
158722 +enable_so_dac_channels_mixer_oxygen_model_36662 dac_channels_mixer oxygen_model 0 36662 NULL
158723 +enable_so_max_queue_pairs_virtnet_info_36669 max_queue_pairs virtnet_info 0 36669 NULL
158724 +enable_so_i_file_acl_lo_ext4_inode_36684 i_file_acl_lo ext4_inode 0 36684 NULL
158725 +enable_so_size_drm_map_36685 size drm_map 0 36685 NULL
158726 +enable_so_size_drm_agp_buffer_36687 size drm_agp_buffer 0 36687 NULL
158727 +enable_so_esas2r_max_sectors_vardecl_36688 esas2r_max_sectors vardecl 0 36688 NULL nohasharray
158728 +enable_so_out_kvec_bytes_ceph_connection_36688 out_kvec_bytes ceph_connection 0 36688 &enable_so_esas2r_max_sectors_vardecl_36688 nohasharray
158729 +enable_so_nnode_sz_ubifs_info_36688 nnode_sz ubifs_info 0 36688 &enable_so_out_kvec_bytes_ceph_connection_36688
158730 +enable_so_rx_buffer_len_atl1c_adapter_36691 rx_buffer_len atl1c_adapter 0 36691 NULL
158731 +enable_so_expected_pages_page_collect_36693 expected_pages page_collect 0 36693 NULL
158732 +enable_so_hga_vram_len_vardecl_hgafb_c_36700 hga_vram_len vardecl_hgafb.c 0 36700 NULL
158733 +enable_so_btrfs_free_reserved_extent_fndecl_36706 btrfs_free_reserved_extent fndecl 3-2 36706 NULL
158734 +enable_so_map_szh_cyttsp4_sysinfo_data_36711 map_szh cyttsp4_sysinfo_data 0 36711 NULL
158735 +enable_so_null_major_vardecl_null_blk_c_36718 null_major vardecl_null_blk.c 0 36718 NULL nohasharray
158736 +enable_so_dev_num_tpm_chip_36718 dev_num tpm_chip 0 36718 &enable_so_null_major_vardecl_null_blk_c_36718
158737 +enable_so_reply_usif_notify_36722 reply usif_notify 0 36722 NULL
158738 +enable_so_alloc_blocks_hfsplus_inode_info_36725 alloc_blocks hfsplus_inode_info 0 36725 NULL nohasharray
158739 +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
158740 +enable_so_pnfs_update_layout_fndecl_36733 pnfs_update_layout fndecl 3-4 36733 NULL
158741 +enable_so_common_buffer_phys_smscore_device_t_36739 common_buffer_phys smscore_device_t 0 36739 NULL
158742 +enable_so_batadv_tt_tvlv_ogm_handler_v1_fndecl_36742 batadv_tt_tvlv_ogm_handler_v1 fndecl 5 36742 NULL
158743 +enable_so_early_reserve_e820_fndecl_36744 early_reserve_e820 fndecl 2-1 36744 NULL
158744 +enable_so_s2255_got_frame_fndecl_36746 s2255_got_frame fndecl 2 36746 NULL
158745 +enable_so_channel_hwif_s_36751 channel hwif_s 0 36751 NULL
158746 +enable_so_saved_raid_disk_md_rdev_36752 saved_raid_disk md_rdev 0 36752 NULL
158747 +enable_so_SyS_sched_getattr_fndecl_36760 SyS_sched_getattr fndecl 3 36760 NULL
158748 +enable_so_ath6kl_wmi_add_krk_cmd_fndecl_36763 ath6kl_wmi_add_krk_cmd fndecl 2 36763 NULL nohasharray
158749 +enable_so_bufsiz_vardecl_spidev_c_36763 bufsiz vardecl_spidev.c 0 36763 &enable_so_ath6kl_wmi_add_krk_cmd_fndecl_36763
158750 +enable_so_iget_xattr_fndecl_36765 iget_xattr fndecl 2 36765 NULL nohasharray
158751 +enable_so_netdev_flow_limit_table_len_vardecl_36765 netdev_flow_limit_table_len vardecl 0 36765 &enable_so_iget_xattr_fndecl_36765
158752 +enable_so_last_index_zap_details_36766 last_index zap_details 0 36766 NULL
158753 +enable_so_ocfs2_rm_xattr_cluster_fndecl_36767 ocfs2_rm_xattr_cluster fndecl 5-4-3 36767 NULL nohasharray
158754 +enable_so_SyS_setgroups_fndecl_36767 SyS_setgroups fndecl 1 36767 &enable_so_ocfs2_rm_xattr_cluster_fndecl_36767
158755 +enable_so_ocfs2_make_clusters_writable_fndecl_36769 ocfs2_make_clusters_writable fndecl 5-4-3 36769 NULL
158756 +enable_so_num_nodes_crush_bucket_tree_36776 num_nodes crush_bucket_tree 0 36776 NULL
158757 +enable_so_usb_serial_generic_write_fndecl_36788 usb_serial_generic_write fndecl 4 36788 NULL
158758 +enable_so_mmio_base_controller_36793 mmio_base controller 0 36793 NULL
158759 +enable_so_rx_count_cooked_sixpack_36794 rx_count_cooked sixpack 0 36794 NULL
158760 +enable_so_pad_bytes_regmap_format_36795 pad_bytes regmap_format 0 36795 NULL
158761 +enable_so_efi_runtime_map_setup_fndecl_36796 efi_runtime_map_setup fndecl 2 36796 NULL
158762 +enable_so_sector_stripe_head_36797 sector stripe_head 0 36797 NULL nohasharray
158763 +enable_so_copy_io_fndecl_36797 copy_io fndecl 3 36797 &enable_so_sector_stripe_head_36797
158764 +enable_so_v4l_bufsize_vardecl_36803 v4l_bufsize vardecl 0 36803 NULL
158765 +enable_so_idetape_chrdev_write_fndecl_36811 idetape_chrdev_write fndecl 3 36811 NULL
158766 +enable_so_mthca_reg_user_mr_fndecl_36815 mthca_reg_user_mr fndecl 2-3 36815 NULL
158767 +enable_so_size_drm_armada_gem_pwrite_36816 size drm_armada_gem_pwrite 0 36816 NULL
158768 +enable_so_mthca_setup_cmd_doorbells_fndecl_36817 mthca_setup_cmd_doorbells fndecl 2 36817 NULL
158769 +enable_so_card_type_nozomi_36822 card_type nozomi 0 36822 NULL
158770 +enable_so_ir_pre_altera_jtag_36823 ir_pre altera_jtag 0 36823 NULL
158771 +enable_so_orig_nents_sg_table_36824 orig_nents sg_table 0 36824 NULL
158772 +enable_so_mlx4_num_eq_uar_fndecl_36830 mlx4_num_eq_uar fndecl 0 36830 NULL
158773 +enable_so_acpi_initialize_tables_fndecl_36832 acpi_initialize_tables fndecl 2 36832 NULL
158774 +enable_so_rx_pg_ring_size_bnx2_36835 rx_pg_ring_size bnx2 0 36835 NULL
158775 +enable_so_total_bytes_btrfs_super_block_36845 total_bytes btrfs_super_block 0 36845 NULL
158776 +enable_so_hfsplus_attr_build_key_fndecl_36846 hfsplus_attr_build_key fndecl 0 36846 NULL
158777 +enable_so_reply_sz_MPT2SAS_ADAPTER_36858 reply_sz MPT2SAS_ADAPTER 0 36858 NULL
158778 +enable_so_raid5_compute_sector_fndecl_36860 raid5_compute_sector fndecl 0-2 36860 NULL
158779 +enable_so_acpi_register_gsi_pic_fndecl_36869 acpi_register_gsi_pic fndecl 0-2 36869 NULL
158780 +enable_so_vtotal_drm_display_mode_36870 vtotal drm_display_mode 0 36870 NULL
158781 +enable_so_int_tasklet_entry_fndecl_36871 int_tasklet_entry fndecl 3 36871 NULL
158782 +enable_so_qlcnic_83xx_sysfs_flash_write_fndecl_36872 qlcnic_83xx_sysfs_flash_write fndecl 4 36872 NULL
158783 +enable_so_self_inum_vardecl_self_c_36873 self_inum vardecl_self.c 0 36873 NULL nohasharray
158784 +enable_so_txd_size_bdx_priv_36873 txd_size bdx_priv 0 36873 &enable_so_self_inum_vardecl_self_c_36873 nohasharray
158785 +enable_so_netlbl_unlabel_init_fndecl_36873 netlbl_unlabel_init fndecl 1 36873 &enable_so_txd_size_bdx_priv_36873
158786 +enable_so_uwb_est_size_vardecl_est_c_36881 uwb_est_size vardecl_est.c 0 36881 NULL
158787 +enable_so_tipc_sendmsg_fndecl_36882 tipc_sendmsg fndecl 3 36882 NULL nohasharray
158788 +enable_so_buf_ptr_size_iscsi_cmd_36882 buf_ptr_size iscsi_cmd 0 36882 &enable_so_tipc_sendmsg_fndecl_36882
158789 +enable_so_size_cxgb4_range_36893 size cxgb4_range 0 36893 NULL
158790 +enable_so_sge_congestion_control_sge_params_36896 sge_congestion_control sge_params 0 36896 NULL
158791 +enable_so_limit_ixgbe_ring_feature_36904 limit ixgbe_ring_feature 0 36904 NULL
158792 +enable_so_actual_usb_request_36913 actual usb_request 0 36913 NULL
158793 +enable_so_tool_spadfn_write_fndecl_36915 tool_spadfn_write fndecl 3 36915 NULL
158794 +enable_so_dup_variable_bug_fndecl_36926 dup_variable_bug fndecl 3 36926 NULL
158795 +enable_so_len_xfs_name_36929 len xfs_name 0 36929 NULL nohasharray
158796 +enable_so_ocfs2_make_right_split_rec_fndecl_36929 ocfs2_make_right_split_rec fndecl 3 36929 &enable_so_len_xfs_name_36929
158797 +enable_so_nfsacl_decode_fndecl_36931 nfsacl_decode fndecl 2-0 36931 NULL
158798 +enable_so_page_base_gssp_in_token_36935 page_base gssp_in_token 0 36935 NULL
158799 +enable_so_debug_level_proc_write_fndecl_36943 debug_level_proc_write fndecl 3 36943 NULL
158800 +enable_so_end_offset_xilly_buffer_36946 end_offset xilly_buffer 0 36946 NULL
158801 +enable_so_priv_size_rtnl_link_ops_36947 priv_size rtnl_link_ops 0 36947 NULL
158802 +enable_so_ntfs_prepare_pages_for_non_resident_write_fndecl_36959 ntfs_prepare_pages_for_non_resident_write fndecl 0 36959 NULL
158803 +enable_so_s_rename_dir_logfs_super_36976 s_rename_dir logfs_super 0 36976 NULL
158804 +enable_so_rx_bufsize_ath_common_36977 rx_bufsize ath_common 0 36977 NULL
158805 +enable_so_loopend_soundfont_sample_info_36981 loopend soundfont_sample_info 0 36981 NULL
158806 +enable_so_usbvision_frames_alloc_fndecl_36983 usbvision_frames_alloc fndecl 0-2 36983 NULL
158807 +enable_so_isku_sysfs_read_macro_fndecl_36984 isku_sysfs_read_macro fndecl 6 36984 NULL
158808 +enable_so_v_sync_strt_wid_aty128_crtc_36987 v_sync_strt_wid aty128_crtc 0 36987 NULL
158809 +enable_so_lbmAllocate_fndecl_36995 lbmAllocate fndecl 2 36995 NULL
158810 +enable_so_exp_len_ccp_rsa_engine_36998 exp_len ccp_rsa_engine 0 36998 NULL
158811 +enable_so_ll_sa_entry_alloc_fndecl_37008 ll_sa_entry_alloc fndecl 4 37008 NULL
158812 +enable_so_num_rxp_per_rx_bnad_37010 num_rxp_per_rx bnad 0 37010 NULL
158813 +enable_so_next_rs_iwl_rate_info_37018 next_rs iwl_rate_info 0 37018 NULL
158814 +enable_so_to_fw_map_37020 to fw_map 0 37020 NULL
158815 +enable_so_cb_group_width_exofs_dt_data_map_37027 cb_group_width exofs_dt_data_map 0 37027 NULL
158816 +enable_so_mmio_size_vmw_private_37038 mmio_size vmw_private 0 37038 NULL nohasharray
158817 +enable_so_dirty_poll_interval_fndecl_37038 dirty_poll_interval fndecl 0 37038 &enable_so_mmio_size_vmw_private_37038
158818 +enable_so_adjust_resource_fndecl_37046 adjust_resource fndecl 3-2 37046 NULL
158819 +enable_so_setcc_fndecl_37048 setcc fndecl 1 37048 NULL
158820 +enable_so_yres__sisbios_mode_37051 yres _sisbios_mode 0 37051 NULL
158821 +enable_so_neq_vf_resources_37066 neq vf_resources 0 37066 NULL
158822 +enable_so_SYSC_gethostname_fndecl_37078 SYSC_gethostname fndecl 2 37078 NULL
158823 +enable_so_rq_xprt_hlen_svc_rqst_37082 rq_xprt_hlen svc_rqst 0 37082 NULL
158824 +enable_so_rtc_devt_vardecl_rtc_dev_c_37090 rtc_devt vardecl_rtc-dev.c 0 37090 NULL
158825 +enable_so_filter_get_rx_ids_efx_nic_type_37093 filter_get_rx_ids efx_nic_type 0 37093 NULL
158826 +enable_so_cx25840_ir_rx_read_fndecl_37095 cx25840_ir_rx_read fndecl 3 37095 NULL
158827 +enable_so_relay_alloc_page_array_fndecl_37100 relay_alloc_page_array fndecl 1 37100 NULL
158828 +enable_so_gfs2_meta_ra_fndecl_37101 gfs2_meta_ra fndecl 2 37101 NULL
158829 +enable_so_filled_kobil_private_37104 filled kobil_private 0 37104 NULL
158830 +enable_so_vlan_tag_rx_return_desc_37115 vlan_tag rx_return_desc 0 37115 NULL
158831 +enable_so_fuse_request_alloc_fndecl_37120 fuse_request_alloc fndecl 1 37120 NULL nohasharray
158832 +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
158833 +enable_so_do_dmabuf_dirty_ldu_fndecl_37122 do_dmabuf_dirty_ldu fndecl 6 37122 NULL
158834 +enable_so_probe_memory_block_size_fndecl_37124 probe_memory_block_size fndecl 0 37124 NULL
158835 +enable_so_find_biggest_section_pfn_fndecl_37125 find_biggest_section_pfn fndecl 0-4 37125 NULL nohasharray
158836 +enable_so_ocfs2_check_if_ancestor_fndecl_37125 ocfs2_check_if_ancestor fndecl 2 37125 &enable_so_find_biggest_section_pfn_fndecl_37125
158837 +enable_so_sc_blk_cnt_nilfs_sc_info_37130 sc_blk_cnt nilfs_sc_info 0 37130 NULL nohasharray
158838 +enable_so___rh_alloc_fndecl_37130 __rh_alloc fndecl 2 37130 &enable_so_sc_blk_cnt_nilfs_sc_info_37130
158839 +enable_so_nfs_updatepage_fndecl_37131 nfs_updatepage fndecl 3-4 37131 NULL
158840 +enable_so_num_report_ids_mxt_object_37133 num_report_ids mxt_object 0 37133 NULL
158841 +enable_so_audio_mute_fndecl_37139 audio_mute fndecl 2 37139 NULL
158842 +enable_so_wdata_send_pages_fndecl_37142 wdata_send_pages fndecl 2 37142 NULL
158843 +enable_so_mlx5_query_port_pvlc_fndecl_37159 mlx5_query_port_pvlc fndecl 3 37159 NULL
158844 +enable_so_max_pdu_size_l2cap_conf_rfc_37161 max_pdu_size l2cap_conf_rfc 0 37161 NULL
158845 +enable_so_ld_tgt_count_lov_desc_37163 ld_tgt_count lov_desc 0 37163 NULL
158846 +enable_so_l_logBBstart_xlog_37164 l_logBBstart xlog 0 37164 NULL
158847 +enable_so_txCredits_edgeport_port_37166 txCredits edgeport_port 0 37166 NULL
158848 +enable_so_read_mmp_block_fndecl_37168 read_mmp_block fndecl 3 37168 NULL nohasharray
158849 +enable_so_mdiobus_alloc_size_fndecl_37168 mdiobus_alloc_size fndecl 1 37168 &enable_so_read_mmp_block_fndecl_37168
158850 +enable_so_expect_bt_skb_cb_37170 expect bt_skb_cb 0 37170 NULL
158851 +enable_so_hva_to_pfn_slow_fndecl_37173 hva_to_pfn_slow fndecl 1 37173 NULL nohasharray
158852 +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
158853 +enable_so_i915_gem_stolen_setup_compression_fndecl_37175 i915_gem_stolen_setup_compression fndecl 2 37175 NULL nohasharray
158854 +enable_so_copy_pte_range_fndecl_37175 copy_pte_range fndecl 6 37175 &enable_so_i915_gem_stolen_setup_compression_fndecl_37175
158855 +enable_so_sisusbcon_do_font_op_fndecl_37180 sisusbcon_do_font_op fndecl 9 37180 NULL nohasharray
158856 +enable_so_octeon_init_droq_fndecl_37180 octeon_init_droq fndecl 4-3 37180 &enable_so_sisusbcon_do_font_op_fndecl_37180
158857 +enable_so_of_address_to_resource_fndecl_37191 of_address_to_resource fndecl 2 37191 NULL
158858 +enable_so_ssd1307fb_write_fndecl_37192 ssd1307fb_write fndecl 3 37192 NULL
158859 +enable_so_rx_status_0_ath5k_hw_rx_status_37197 rx_status_0 ath5k_hw_rx_status 0 37197 NULL nohasharray
158860 +enable_so_hwflags_read_fndecl_37197 hwflags_read fndecl 3 37197 &enable_so_rx_status_0_ath5k_hw_rx_status_37197
158861 +enable_so_request_asymmetric_key_fndecl_37198 request_asymmetric_key fndecl 4-2 37198 NULL
158862 +enable_so_nbperpage_jfs_sb_info_37199 nbperpage jfs_sb_info 0 37199 NULL
158863 +enable_so_gva_to_gpa_kvm_mmu_37200 gva_to_gpa kvm_mmu 0 37200 NULL
158864 +enable_so_digestsize_shash_alg_37203 digestsize shash_alg 0 37203 NULL
158865 +enable_so_last_message_count_mxt_data_37205 last_message_count mxt_data 0 37205 NULL
158866 +enable_so_offset_jffs2_eraseblock_37206 offset jffs2_eraseblock 0 37206 NULL
158867 +enable_so_num_VFs_pci_sriov_37207 num_VFs pci_sriov 0 37207 NULL
158868 +enable_so_hur_len_fndecl_37216 hur_len fndecl 0 37216 NULL
158869 +enable_so_xfs_dir2_node_trim_free_fndecl_37218 xfs_dir2_node_trim_free fndecl 2 37218 NULL
158870 +enable_so_gsc_set_frame_size_fndecl_37233 gsc_set_frame_size fndecl 3-2 37233 NULL
158871 +enable_so_height_fb_image_37238 height fb_image 0 37238 NULL
158872 +enable_so_write_max_at24_data_37243 write_max at24_data 0 37243 NULL
158873 +enable_so_csum_and_copy_to_iter_fndecl_37244 csum_and_copy_to_iter fndecl 2 37244 NULL
158874 +enable_so_test_unaligned_bulk_fndecl_37246 test_unaligned_bulk fndecl 3-2 37246 NULL
158875 +enable_so_iwl_dump_fh_fndecl_37248 iwl_dump_fh fndecl 0 37248 NULL
158876 +enable_so_i_refcount_loc_ocfs2_dinode_37249 i_refcount_loc ocfs2_dinode 0 37249 NULL
158877 +enable_so_hfsplus_find_attr_fndecl_37253 hfsplus_find_attr fndecl 0 37253 NULL
158878 +enable_so_ath6kl_wmi_ap_set_beacon_intvl_cmd_fndecl_37254 ath6kl_wmi_ap_set_beacon_intvl_cmd fndecl 2 37254 NULL
158879 +enable_so_pfkey_sockaddr_pair_size_fndecl_37257 pfkey_sockaddr_pair_size fndecl 0 37257 NULL
158880 +enable_so_isdn_writebuf_stub_fndecl_37260 isdn_writebuf_stub fndecl 4 37260 NULL
158881 +enable_so_rpcrdma_register_internal_fndecl_37263 rpcrdma_register_internal fndecl 3 37263 NULL
158882 +enable_so_size_uhci_debug_37265 size uhci_debug 0 37265 NULL
158883 +enable_so___pskb_trim_head_fndecl_37267 __pskb_trim_head fndecl 2 37267 NULL
158884 +enable_so_ieee80211_rx_radiotap_hdrlen_fndecl_37268 ieee80211_rx_radiotap_hdrlen fndecl 0 37268 NULL
158885 +enable_so_blk_queue_update_dma_pad_fndecl_37275 blk_queue_update_dma_pad fndecl 2 37275 NULL
158886 +enable_so_copy_entries_to_user_fndecl_37276 copy_entries_to_user fndecl 1 37276 NULL
158887 +enable_so_max_packet_sz_rx_musb_hw_ep_37278 max_packet_sz_rx musb_hw_ep 0 37278 NULL
158888 +enable_so_scrollback_current_vardecl_fbcon_c_37279 scrollback_current vardecl_fbcon.c 0 37279 NULL
158889 +enable_so_reg_end_ath6kl_diag_reg_info_37280 reg_end ath6kl_diag_reg_info 0 37280 NULL
158890 +enable_so_do_ncp_rpc_call_fndecl_37285 do_ncp_rpc_call fndecl 2-4 37285 NULL
158891 +enable_so_aac_rx_ioremap_fndecl_37289 aac_rx_ioremap fndecl 2 37289 NULL nohasharray
158892 +enable_so_buf_size_mlx4_en_tx_ring_37289 buf_size mlx4_en_tx_ring 0 37289 &enable_so_aac_rx_ioremap_fndecl_37289
158893 +enable_so_cyz_load_fw_fndecl_37290 cyz_load_fw fndecl 0 37290 NULL
158894 +enable_so_num_bna_mem_info_37294 num bna_mem_info 0 37294 NULL
158895 +enable_so_lcd_hsync_len_atyfb_par_37297 lcd_hsync_len atyfb_par 0 37297 NULL
158896 +enable_so_rs_rate_ath_rx_status_37298 rs_rate ath_rx_status 0 37298 NULL
158897 +enable_so_jfs_setxattr_fndecl_37302 jfs_setxattr fndecl 4 37302 NULL
158898 +enable_so_aer_inject_write_fndecl_37308 aer_inject_write fndecl 3 37308 NULL
158899 +enable_so_svc_partial_recvfrom_fndecl_37311 svc_partial_recvfrom fndecl 0-5-4-3 37311 NULL
158900 +enable_so_ath6kl_delete_qos_write_fndecl_37312 ath6kl_delete_qos_write fndecl 3 37312 NULL
158901 +enable_so_fbcon_scrolldelta_fndecl_37317 fbcon_scrolldelta fndecl 2 37317 NULL nohasharray
158902 +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_fbcon_scrolldelta_fndecl_37317
158903 +enable_so_size_dm_header_37319 size dm_header 0 37319 NULL
158904 +enable_so_mt76_mac_process_rx_fndecl_37334 mt76_mac_process_rx fndecl 0 37334 NULL
158905 +enable_so_ie_len_cfg80211_sched_scan_request_37335 ie_len cfg80211_sched_scan_request 0 37335 NULL nohasharray
158906 +enable_so_ufs_change_blocknr_fndecl_37335 ufs_change_blocknr fndecl 2-4-5 37335 &enable_so_ie_len_cfg80211_sched_scan_request_37335
158907 +enable_so_ud_cursor_fndecl_37338 ud_cursor fndecl 4 37338 NULL nohasharray
158908 +enable_so_line6_midibuf_init_fndecl_37338 line6_midibuf_init fndecl 2 37338 &enable_so_ud_cursor_fndecl_37338
158909 +enable_so_hso_serial_common_create_fndecl_37343 hso_serial_common_create fndecl 3-4 37343 NULL
158910 +enable_so_dlen_pg_read_hdr_37352 dlen pg_read_hdr 0 37352 NULL
158911 +enable_so_blksize_fuse_mount_data_37357 blksize fuse_mount_data 0 37357 NULL
158912 +enable_so_ieee80211_alloc_txb_fndecl_37358 ieee80211_alloc_txb fndecl 1 37358 NULL
158913 +enable_so_pdev_id_sm501_devdata_37360 pdev_id sm501_devdata 0 37360 NULL
158914 +enable_so_rc_len_whcrc_37363 rc_len whcrc 0 37363 NULL
158915 +enable_so_gsm_change_mtu_fndecl_37364 gsm_change_mtu fndecl 2 37364 NULL
158916 +enable_so_alauda_read_data_fndecl_37367 alauda_read_data fndecl 3-2 37367 NULL
158917 +enable_so_bt_alloc_fndecl_37370 bt_alloc fndecl 2 37370 NULL
158918 +enable_so_peer_addr_len_drbd_connection_37371 peer_addr_len drbd_connection 0 37371 NULL
158919 +enable_so_orig_bi_size_usb_idmouse_37372 orig_bi_size usb_idmouse 0 37372 NULL
158920 +enable_so_virtscsi_add_cmd_fndecl_37379 virtscsi_add_cmd fndecl 3-4 37379 NULL
158921 +enable_so_gotoxay_fndecl_37380 gotoxay fndecl 2-3 37380 NULL
158922 +enable_so_kvm_task_switch_fndecl_37384 kvm_task_switch fndecl 2-3 37384 NULL nohasharray
158923 +enable_so_size_pnp_mem_37384 size pnp_mem 0 37384 &enable_so_kvm_task_switch_fndecl_37384
158924 +enable_so_tx_tx_exch_pending_read_fndecl_37385 tx_tx_exch_pending_read fndecl 3 37385 NULL
158925 +enable_so_btrfs_free_and_pin_reserved_extent_fndecl_37387 btrfs_free_and_pin_reserved_extent fndecl 3-2 37387 NULL
158926 +enable_so_alloc_blksz_hfs_sb_info_37390 alloc_blksz hfs_sb_info 0 37390 NULL nohasharray
158927 +enable_so_smscore_createbuffer_fndecl_37390 smscore_createbuffer fndecl 3 37390 &enable_so_alloc_blksz_hfs_sb_info_37390
158928 +enable_so_batadv_check_management_packet_fndecl_37394 batadv_check_management_packet fndecl 3 37394 NULL
158929 +enable_so_hsc_msg_len_set_fndecl_37398 hsc_msg_len_set fndecl 2 37398 NULL
158930 +enable_so_jdvbt90502_reg_read_fndecl_37400 jdvbt90502_reg_read fndecl 4 37400 NULL
158931 +enable_so_ieee80211_send_null_response_fndecl_37403 ieee80211_send_null_response fndecl 3 37403 NULL
158932 +enable_so_num_msix_vectors_i40e_hw_capabilities_37406 num_msix_vectors i40e_hw_capabilities 0 37406 NULL
158933 +enable_so_ath6kl_wmi_implicit_create_pstream_fndecl_37407 ath6kl_wmi_implicit_create_pstream fndecl 2 37407 NULL
158934 +enable_so_xfs_rtfree_extent_fndecl_37427 xfs_rtfree_extent fndecl 2-3 37427 NULL
158935 +enable_so_hr_block_bits_o2hb_region_37433 hr_block_bits o2hb_region 0 37433 NULL
158936 +enable_so_radeon_gart_size_vardecl_37434 radeon_gart_size vardecl 0 37434 NULL nohasharray
158937 +enable_so_inode_table_ext4_new_group_data_37434 inode_table ext4_new_group_data 0 37434 &enable_so_radeon_gart_size_vardecl_37434
158938 +enable_so_nv50_chan_create_fndecl_37436 nv50_chan_create fndecl 5 37436 NULL
158939 +enable_so_nice_workqueue_attrs_37437 nice workqueue_attrs 0 37437 NULL
158940 +enable_so_mwifiex_debug_read_fndecl_37441 mwifiex_debug_read fndecl 3 37441 NULL
158941 +enable_so_dib0700_ctrl_rd_fndecl_37445 dib0700_ctrl_rd fndecl 0 37445 NULL
158942 +enable_so_size_erst_record_id_cache_37450 size erst_record_id_cache 0 37450 NULL
158943 +enable_so_right_margin_fb_var_screeninfo_37453 right_margin fb_var_screeninfo 0 37453 NULL nohasharray
158944 +enable_so_file_size_squashfs_dir_inode_37453 file_size squashfs_dir_inode 0 37453 &enable_so_right_margin_fb_var_screeninfo_37453
158945 +enable_so_header_size_rxrpc_connection_37458 header_size rxrpc_connection 0 37458 NULL
158946 +enable_so_get_user_pages_locked_fndecl_37465 get_user_pages_locked fndecl 3 37465 NULL nohasharray
158947 +enable_so_devnum_mtd_blktrans_dev_37465 devnum mtd_blktrans_dev 0 37465 &enable_so_get_user_pages_locked_fndecl_37465 nohasharray
158948 +enable_so_cfi_read_query_fndecl_37465 cfi_read_query fndecl 0 37465 &enable_so_devnum_mtd_blktrans_dev_37465
158949 +enable_so_bi_sector_bvec_iter_37467 bi_sector bvec_iter 0 37467 NULL
158950 +enable_so_rate_ua101_37469 rate ua101 0 37469 NULL
158951 +enable_so_length_drm_event_37471 length drm_event 0 37471 NULL
158952 +enable_so_s_apbshift_ufs_sb_private_info_37473 s_apbshift ufs_sb_private_info 0 37473 NULL
158953 +enable_so_omap_dma_reserve_channels_vardecl_dma_c_37479 omap_dma_reserve_channels vardecl_dma.c 0 37479 NULL
158954 +enable_so_TupleLink_tuple_t_37482 TupleLink tuple_t 0 37482 NULL
158955 +enable_so_squashfs_iget_fndecl_37485 squashfs_iget fndecl 3 37485 NULL nohasharray
158956 +enable_so_ath10k_mac_create_fndecl_37485 ath10k_mac_create fndecl 1 37485 &enable_so_squashfs_iget_fndecl_37485
158957 +enable_so_qib_resize_cq_fndecl_37489 qib_resize_cq fndecl 2 37489 NULL
158958 +enable_so_params_len_nfc_evt_transaction_37500 params_len nfc_evt_transaction 0 37500 NULL
158959 +enable_so_lines_ivtv_osd_coords_37504 lines ivtv_osd_coords 0 37504 NULL
158960 +enable_so_ks8851_rdfifo_fndecl_37510 ks8851_rdfifo fndecl 3 37510 NULL
158961 +enable_so_inode_newsize_ok_fndecl_37511 inode_newsize_ok fndecl 0-2 37511 NULL nohasharray
158962 +enable_so_ps_poll_ps_poll_max_ap_turn_read_fndecl_37511 ps_poll_ps_poll_max_ap_turn_read fndecl 3 37511 &enable_so_inode_newsize_ok_fndecl_37511
158963 +enable_so_ncpus_vardecl_aoecmd_c_37517 ncpus vardecl_aoecmd.c 0 37517 NULL nohasharray
158964 +enable_so_copy_user_segment_list_fndecl_37517 copy_user_segment_list fndecl 2 37517 &enable_so_ncpus_vardecl_aoecmd_c_37517
158965 +enable_so_etherMtu_mac_eeprom_port_cfg_37523 etherMtu_mac eeprom_port_cfg 0 37523 NULL nohasharray
158966 +enable_so___data_len_request_37523 __data_len request 0 37523 &enable_so_etherMtu_mac_eeprom_port_cfg_37523
158967 +enable_so_efx_realloc_channels_fndecl_37528 efx_realloc_channels fndecl 2-3 37528 NULL
158968 +enable_so_num_txd_netxen_adapter_37529 num_txd netxen_adapter 0 37529 NULL
158969 +enable_so_parent_ino_xfs_fid64_37533 parent_ino xfs_fid64 0 37533 NULL
158970 +enable_so_ieee80211_bss_info_update_fndecl_37537 ieee80211_bss_info_update fndecl 4 37537 NULL nohasharray
158971 +enable_so_dwords_qib_verbs_txreq_37537 dwords qib_verbs_txreq 0 37537 &enable_so_ieee80211_bss_info_update_fndecl_37537
158972 +enable_so_fuse_fsync_common_fndecl_37543 fuse_fsync_common fndecl 2-3 37543 NULL
158973 +enable_so_btrfs_io_bio_alloc_fndecl_37544 btrfs_io_bio_alloc fndecl 2 37544 NULL
158974 +enable_so_keylen_ppp_mppe_state_37546 keylen ppp_mppe_state 0 37546 NULL nohasharray
158975 +enable_so_divisor_sfq_sched_data_37546 divisor sfq_sched_data 0 37546 &enable_so_keylen_ppp_mppe_state_37546
158976 +enable_so_extent_shift_ecryptfs_crypt_stat_37548 extent_shift ecryptfs_crypt_stat 0 37548 NULL nohasharray
158977 +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
158978 +enable_so_dln2_transfer_fndecl_37576 dln2_transfer fndecl 0 37576 NULL
158979 +enable_so_fixup_user_fault_fndecl_37577 fixup_user_fault fndecl 3 37577 NULL
158980 +enable_so_len_efx_rx_buffer_37579 len efx_rx_buffer 0 37579 NULL
158981 +enable_so_catas_offset_mlx4_fw_37594 catas_offset mlx4_fw 0 37594 NULL
158982 +enable_so_n_ai_urbs_usbdux_private_37595 n_ai_urbs usbdux_private 0 37595 NULL
158983 +enable_so_ocfs2_cp_xattr_bucket_fndecl_37598 ocfs2_cp_xattr_bucket fndecl 3-4 37598 NULL
158984 +enable_so_tun_do_read_fndecl_37614 tun_do_read fndecl 0 37614 NULL
158985 +enable_so_tx_tx_start_data_read_fndecl_37616 tx_tx_start_data_read fndecl 3 37616 NULL nohasharray
158986 +enable_so_eeprom_len_fmc_device_37616 eeprom_len fmc_device 0 37616 &enable_so_tx_tx_start_data_read_fndecl_37616
158987 +enable_so_balloon_hotplug_balloon_stats_37629 balloon_hotplug balloon_stats 0 37629 NULL
158988 +enable_so_dcbp_set_code_fndecl_37633 dcbp_set_code fndecl 2 37633 NULL
158989 +enable_so_lfb_height_screen_info_37634 lfb_height screen_info 0 37634 NULL
158990 +enable_so_rmtblkcnt2_xfs_da_args_37635 rmtblkcnt2 xfs_da_args 0 37635 NULL
158991 +enable_so_b_in_mon_reader_bin_37636 b_in mon_reader_bin 0 37636 NULL
158992 +enable_so_usb_stor_bulk_srb_fndecl_37641 usb_stor_bulk_srb fndecl 2 37641 NULL
158993 +enable_so_copy_ctr_args_fndecl_37642 copy_ctr_args fndecl 2 37642 NULL
158994 +enable_so_addrlen_rpc_xprt_37643 addrlen rpc_xprt 0 37643 NULL
158995 +enable_so_bufsize_vardecl_pagetest_c_37645 bufsize vardecl_pagetest.c 0 37645 NULL
158996 +enable_so_alloc_ldt_struct_fndecl_37649 alloc_ldt_struct fndecl 1 37649 NULL
158997 +enable_so_v9fs_xattr_user_get_fndecl_37650 v9fs_xattr_user_get fndecl 4 37650 NULL nohasharray
158998 +enable_so_cache_size_cache_37650 cache_size cache 0 37650 &enable_so_v9fs_xattr_user_get_fndecl_37650
158999 +enable_so_spu_subport_cnt_ipath_user_info_37652 spu_subport_cnt ipath_user_info 0 37652 NULL
159000 +enable_so_bop_check_insert_nilfs_bmap_operations_37658 bop_check_insert nilfs_bmap_operations 0 37658 NULL nohasharray
159001 +enable_so_hfcsusb_rx_frame_fndecl_37658 hfcsusb_rx_frame fndecl 3 37658 &enable_so_bop_check_insert_nilfs_bmap_operations_37658
159002 +enable_so_efi_nextents_xfs_efi_log_format_37664 efi_nextents xfs_efi_log_format 0 37664 NULL
159003 +enable_so_early_bytes_rchan_buf_37669 early_bytes rchan_buf 0 37669 NULL
159004 +enable_so_lsave_sz_ubifs_info_37672 lsave_sz ubifs_info 0 37672 NULL
159005 +enable_so_len_ethtool_eeprom_37676 len ethtool_eeprom 0 37676 NULL
159006 +enable_so_eeprom_blob_size_iwl_priv_37680 eeprom_blob_size iwl_priv 0 37680 NULL
159007 +enable_so_lastextent_efs_inode_info_37681 lastextent efs_inode_info 0 37681 NULL
159008 +enable_so_nvme_trans_ext_inq_page_fndecl_37691 nvme_trans_ext_inq_page fndecl 3 37691 NULL
159009 +enable_so_zm_wmfw_adsp2_alg_hdr_37694 zm wmfw_adsp2_alg_hdr 0 37694 NULL
159010 +enable_so_usb_ftdi_elan_edset_setup_fndecl_37695 usb_ftdi_elan_edset_setup fndecl 0 37695 NULL
159011 +enable_so_snic_trace_max_pages_vardecl_37696 snic_trace_max_pages vardecl 0 37696 NULL
159012 +enable_so_orig_video_points_screen_info_37702 orig_video_points screen_info 0 37702 NULL
159013 +enable_so_xenvif_write_io_ring_fndecl_37713 xenvif_write_io_ring fndecl 3 37713 NULL
159014 +enable_so_num_tx_ring_sh_eth_private_37717 num_tx_ring sh_eth_private 0 37717 NULL
159015 +enable_so_regset_tls_get_fndecl_37721 regset_tls_get fndecl 3 37721 NULL
159016 +enable_so_zap_bt_entries_mapping_fndecl_37722 zap_bt_entries_mapping fndecl 3-4-2 37722 NULL
159017 +enable_so_run_start_commands_fndecl_37723 run_start_commands fndecl 0 37723 NULL
159018 +enable_so_bfad_debugfs_lseek_fndecl_37724 bfad_debugfs_lseek fndecl 2 37724 NULL
159019 +enable_so_cciss_geometry_inquiry_fndecl_37730 cciss_geometry_inquiry fndecl 4 37730 NULL
159020 +enable_so_sk_wmem_queued_sock_37733 sk_wmem_queued sock 0 37733 NULL
159021 +enable_so_len_cap_mon_bin_hdr_37739 len_cap mon_bin_hdr 0 37739 NULL
159022 +enable_so_mon_bin_get_event_fndecl_37740 mon_bin_get_event fndecl 6-4 37740 NULL
159023 +enable_so_pwr_rcvd_beacons_read_fndecl_37751 pwr_rcvd_beacons_read fndecl 3 37751 NULL
159024 +enable_so_num_enh_eq_cfgs_wm8994_pdata_37752 num_enh_eq_cfgs wm8994_pdata 0 37752 NULL
159025 +enable_so_cache_read_procfs_fndecl_37761 cache_read_procfs fndecl 3 37761 NULL
159026 +enable_so_last_rx_rate_idx_sta_info_37768 last_rx_rate_idx sta_info 0 37768 NULL nohasharray
159027 +enable_so_length_acpi_object_buffer_37768 length acpi_object_buffer 0 37768 &enable_so_last_rx_rate_idx_sta_info_37768
159028 +enable_so_prot_length_se_cmd_37769 prot_length se_cmd 0 37769 NULL
159029 +enable_so_per_bio_data_size_dm_target_37772 per_bio_data_size dm_target 0 37772 NULL
159030 +enable_so_kvm_kvzalloc_fndecl_37773 kvm_kvzalloc fndecl 1 37773 NULL
159031 +enable_so_access_length_acpi_object_region_field_37774 access_length acpi_object_region_field 0 37774 NULL
159032 +enable_so_buf_size_usb_data_stream_37781 buf_size usb_data_stream 0 37781 NULL
159033 +enable_so_ext4_init_dot_dotdot_fndecl_37792 ext4_init_dot_dotdot fndecl 4-3-5 37792 NULL
159034 +enable_so_update_interval_frames_snd_card_asihpi_37794 update_interval_frames snd_card_asihpi 0 37794 NULL
159035 +enable_so_bytes_per_block_svga3d_surface_desc_37798 bytes_per_block svga3d_surface_desc 0 37798 NULL
159036 +enable_so_nilfs_sufile_read_fndecl_37800 nilfs_sufile_read fndecl 2 37800 NULL
159037 +enable_so_eo_get_last_eb_blk_ocfs2_extent_tree_operations_37802 eo_get_last_eb_blk ocfs2_extent_tree_operations 0 37802 NULL
159038 +enable_so_exec_verb_hdac_device_37803 exec_verb hdac_device 0 37803 NULL
159039 +enable_so_word_4_ns_rsqe_37805 word_4 ns_rsqe 0 37805 NULL
159040 +enable_so_gid_tbl_len_ib_port_attr_37809 gid_tbl_len ib_port_attr 0 37809 NULL nohasharray
159041 +enable_so_devnum_genwqe_genwqe_dev_37809 devnum_genwqe genwqe_dev 0 37809 &enable_so_gid_tbl_len_ib_port_attr_37809
159042 +enable_so_buf_size_mlx5_ib_qp_37812 buf_size mlx5_ib_qp 0 37812 NULL
159043 +enable_so_page_shift_qib_mregion_37818 page_shift qib_mregion 0 37818 NULL nohasharray
159044 +enable_so_touchpad_num_ad714x_platform_data_37818 touchpad_num ad714x_platform_data 0 37818 &enable_so_page_shift_qib_mregion_37818
159045 +enable_so_out_ep_snd_usb_midi_endpoint_info_37819 out_ep snd_usb_midi_endpoint_info 0 37819 NULL
159046 +enable_so_max_header_size_ircomm_tty_cb_37822 max_header_size ircomm_tty_cb 0 37822 NULL
159047 +enable_so_my_addr_len_drbd_connection_37828 my_addr_len drbd_connection 0 37828 NULL
159048 +enable_so_rbd_img_request_create_fndecl_37833 rbd_img_request_create fndecl 2-3 37833 NULL
159049 +enable_so_mru_syncppp_37835 mru syncppp 0 37835 NULL
159050 +enable_so_slot_width_mvs_chip_info_37839 slot_width mvs_chip_info 0 37839 NULL nohasharray
159051 +enable_so_ifc_len_ifconf_37839 ifc_len ifconf 0 37839 &enable_so_slot_width_mvs_chip_info_37839
159052 +enable_so___kfifo_skip_r_fndecl_37849 __kfifo_skip_r fndecl 2 37849 NULL
159053 +enable_so_iblock_get_bio_fndecl_37851 iblock_get_bio fndecl 2-3 37851 NULL
159054 +enable_so_ioread16be_fndecl_37854 ioread16be fndecl 0 37854 NULL
159055 +enable_so_nofill_fndecl_37857 nofill fndecl 0 37857 NULL
159056 +enable_so_usbat_read_block_fndecl_37858 usbat_read_block fndecl 3-4 37858 NULL
159057 +enable_so_nents_usnic_uiom_chunk_37860 nents usnic_uiom_chunk 0 37860 NULL
159058 +enable_so_last_txrate_idx_il_lq_sta_37864 last_txrate_idx il_lq_sta 0 37864 NULL
159059 +enable_so_tx_tx_exch_read_fndecl_37865 tx_tx_exch_read fndecl 3 37865 NULL
159060 +enable_so_assoclen_aead_request_37866 assoclen aead_request 0 37866 NULL
159061 +enable_so_xdr_copy_to_scratch_fndecl_37868 xdr_copy_to_scratch fndecl 2 37868 NULL
159062 +enable_so_btrfs_set_header_nritems_fndecl_37869 btrfs_set_header_nritems fndecl 2 37869 NULL
159063 +enable_so_num_node_state_fndecl_37870 num_node_state fndecl 0 37870 NULL
159064 +enable_so_hx8357_spi_write_then_read_fndecl_37879 hx8357_spi_write_then_read fndecl 3-5 37879 NULL
159065 +enable_so_leaf_delete_items_fndecl_37885 leaf_delete_items fndecl 5 37885 NULL
159066 +enable_so_____alloc_ei_netdev_fndecl_37888 ____alloc_ei_netdev fndecl 1 37888 NULL
159067 +enable_so_dm_bufio_client_create_fndecl_37889 dm_bufio_client_create fndecl 2-4 37889 NULL
159068 +enable_so_gss_wrap_kerberos_fndecl_37890 gss_wrap_kerberos fndecl 2 37890 NULL
159069 +enable_so_bulk_in_ipheth_device_37894 bulk_in ipheth_device 0 37894 NULL nohasharray
159070 +enable_so_xfs_buf_get_uncached_fndecl_37894 xfs_buf_get_uncached fndecl 2 37894 &enable_so_bulk_in_ipheth_device_37894
159071 +enable_so_prod_xfs_alloc_arg_37897 prod xfs_alloc_arg 0 37897 NULL
159072 +enable_so_calc_send_wqe_fndecl_37899 calc_send_wqe fndecl 0 37899 NULL nohasharray
159073 +enable_so_logi_dj_hidpp_event_fndecl_37899 logi_dj_hidpp_event fndecl 4 37899 &enable_so_calc_send_wqe_fndecl_37899
159074 +enable_so_datalen_user_key_payload_37906 datalen user_key_payload 0 37906 NULL
159075 +enable_so_pasid_kfd_process_37907 pasid kfd_process 0 37907 NULL
159076 +enable_so_nvkm_vm_create_fndecl_37913 nvkm_vm_create fndecl 3-2-5-4 37913 NULL
159077 +enable_so_pvr2_i2c_basic_op_fndecl_37917 pvr2_i2c_basic_op fndecl 4-6 37917 NULL
159078 +enable_so_spk_ye_vardecl_37920 spk_ye vardecl 0 37920 NULL
159079 +enable_so_ep_urb_context_37938 ep urb_context 0 37938 NULL nohasharray
159080 +enable_so_num_escbs_asd_seq_data_37938 num_escbs asd_seq_data 0 37938 &enable_so_ep_urb_context_37938
159081 +enable_so_kvm_fetch_guest_virt_fndecl_37942 kvm_fetch_guest_virt fndecl 2-4 37942 NULL
159082 +enable_so_seq_write_fndecl_37946 seq_write fndecl 3 37946 NULL
159083 +enable_so_phys_memory_base_mgsl_struct_37952 phys_memory_base mgsl_struct 0 37952 NULL
159084 +enable_so_wpa_ie_len_islpci_bss_wpa_ie_37953 wpa_ie_len islpci_bss_wpa_ie 0 37953 NULL nohasharray
159085 +enable_so___handle_mm_fault_fndecl_37953 __handle_mm_fault fndecl 3 37953 &enable_so_wpa_ie_len_islpci_bss_wpa_ie_37953
159086 +enable_so_rx_ring_count_fm10k_intfc_37957 rx_ring_count fm10k_intfc 0 37957 NULL
159087 +enable_so_cleanmarker_size_jffs2_sb_info_37959 cleanmarker_size jffs2_sb_info 0 37959 NULL
159088 +enable_so_consume_size_vmci_qp_alloc_info_vmvm_37962 consume_size vmci_qp_alloc_info_vmvm 0 37962 NULL
159089 +enable_so_unmap_vmas_fndecl_37967 unmap_vmas fndecl 4-3 37967 NULL nohasharray
159090 +enable_so_mbox_write_fndecl_37967 mbox_write fndecl 3 37967 &enable_so_unmap_vmas_fndecl_37967
159091 +enable_so_ieee80211_if_write_uapsd_queues_fndecl_37973 ieee80211_if_write_uapsd_queues fndecl 3 37973 NULL
159092 +enable_so_vortex_core_init_fndecl_37980 vortex_core_init fndecl 0 37980 NULL
159093 +enable_so_key_search_fndecl_37982 key_search fndecl 0 37982 NULL
159094 +enable_so_count_nfsd_readres_37988 count nfsd_readres 0 37988 NULL
159095 +enable_so_nlmsvc_lookup_host_fndecl_37992 nlmsvc_lookup_host fndecl 3 37992 NULL
159096 +enable_so_data_size_cyttsp4_sysinfo_ofs_37994 data_size cyttsp4_sysinfo_ofs 0 37994 NULL
159097 +enable_so_size_qla_flt_region_37995 size qla_flt_region 0 37995 NULL
159098 +enable_so_arizona_set_fll_fndecl_37996 arizona_set_fll fndecl 4 37996 NULL nohasharray
159099 +enable_so_key_size_bpf_map_37996 key_size bpf_map 0 37996 &enable_so_arizona_set_fll_fndecl_37996
159100 +enable_so_bt_sock_stream_recvmsg_fndecl_37997 bt_sock_stream_recvmsg fndecl 3 37997 NULL
159101 +enable_so_icmp_manip_pkt_fndecl_38011 icmp_manip_pkt fndecl 4 38011 NULL
159102 +enable_so_rfcomm_tty_write_fndecl_38016 rfcomm_tty_write fndecl 3 38016 NULL
159103 +enable_so_l_len_xfs_flock64_38022 l_len xfs_flock64 0 38022 NULL nohasharray
159104 +enable_so_max_cmnds_vardecl_aic94xx_hwi_c_38022 max_cmnds vardecl_aic94xx_hwi.c 0 38022 &enable_so_l_len_xfs_flock64_38022
159105 +enable_so_num_entries_ipt_replace_38023 num_entries ipt_replace 0 38023 NULL
159106 +enable_so_iriap_connect_confirm_fndecl_38027 iriap_connect_confirm fndecl 5 38027 NULL
159107 +enable_so_ath6kl_set_bitrate_mask64_fndecl_38029 ath6kl_set_bitrate_mask64 fndecl 2 38029 NULL
159108 +enable_so_sensb_res_len_nfc_target_38034 sensb_res_len nfc_target 0 38034 NULL
159109 +enable_so_get_cur_path_fndecl_38038 get_cur_path fndecl 0 38038 NULL
159110 +enable_so_ip6_tnl_change_mtu_fndecl_38041 ip6_tnl_change_mtu fndecl 2 38041 NULL
159111 +enable_so_DataUnits_partition_t_38043 DataUnits partition_t 0 38043 NULL
159112 +enable_so_x25_negotiate_facilities_fndecl_38044 x25_negotiate_facilities fndecl 0 38044 NULL
159113 +enable_so_aac_convert_sgraw2_fndecl_38045 aac_convert_sgraw2 fndecl 2-4 38045 NULL nohasharray
159114 +enable_so_open_devices_btrfs_fs_devices_38045 open_devices btrfs_fs_devices 0 38045 &enable_so_aac_convert_sgraw2_fndecl_38045
159115 +enable_so_get_vmcore_size_fndecl_38046 get_vmcore_size fndecl 0-2-1 38046 NULL
159116 +enable_so_reference_rate_vardecl_xfi_c_38047 reference_rate vardecl_xfi.c 0 38047 NULL
159117 +enable_so_group_devt_vfio_38048 group_devt vfio 0 38048 NULL
159118 +enable_so_node_present_pages_pglist_data_38050 node_present_pages pglist_data 0 38050 NULL
159119 +enable_so_pending_buf_size_deflate_state_38053 pending_buf_size deflate_state 0 38053 NULL
159120 +enable_so_offset_drm_local_map_38055 offset drm_local_map 0 38055 NULL
159121 +enable_so_isd200_set_srb_fndecl_38056 isd200_set_srb fndecl 4 38056 NULL nohasharray
159122 +enable_so_nrpacks_vardecl_usbusx2yaudio_c_38056 nrpacks vardecl_usbusx2yaudio.c 0 38056 &enable_so_isd200_set_srb_fndecl_38056
159123 +enable_so_length_ipw_rx_packet_38058 length ipw_rx_packet 0 38058 NULL nohasharray
159124 +enable_so_sctp_auth_create_key_fndecl_38058 sctp_auth_create_key fndecl 1 38058 &enable_so_length_ipw_rx_packet_38058
159125 +enable_so_iscsi_create_session_fndecl_38060 iscsi_create_session fndecl 3 38060 NULL
159126 +enable_so_ubifs_iget_fndecl_38065 ubifs_iget fndecl 2 38065 NULL
159127 +enable_so_add_vol_fndecl_38066 add_vol fndecl 3-6 38066 NULL
159128 +enable_so_extent_fiemap_fndecl_38070 extent_fiemap fndecl 4-3 38070 NULL
159129 +enable_so_numPartitionMaps_logicalVolDesc_38073 numPartitionMaps logicalVolDesc 0 38073 NULL
159130 +enable_so_length_wpa_param_38074 length wpa_param 0 38074 NULL
159131 +enable_so_fb_bpp_vardecl_udl_fb_c_38075 fb_bpp vardecl_udl_fb.c 0 38075 NULL
159132 +enable_so_ps_upsd_utilization_read_fndecl_38086 ps_upsd_utilization_read fndecl 3 38086 NULL
159133 +enable_so_la_bm_off_ocfs2_local_alloc_38101 la_bm_off ocfs2_local_alloc 0 38101 NULL nohasharray
159134 +enable_so_bd_group_ext4_buddy_38101 bd_group ext4_buddy 0 38101 &enable_so_la_bm_off_ocfs2_local_alloc_38101
159135 +enable_so_softingcs_index_vardecl_softing_cs_c_38102 softingcs_index vardecl_softing_cs.c 0 38102 NULL
159136 +enable_so_data_size_il4965_firmware_pieces_38105 data_size il4965_firmware_pieces 0 38105 NULL
159137 +enable_so_host_mapping_level_fndecl_38115 host_mapping_level fndecl 0-2 38115 NULL
159138 +enable_so_length_floppy_raw_cmd_38116 length floppy_raw_cmd 0 38116 NULL
159139 +enable_so_wm8994_get_fll_config_fndecl_38117 wm8994_get_fll_config fndecl 3-4 38117 NULL
159140 +enable_so_rmtblkno_xfs_da_args_38121 rmtblkno xfs_da_args 0 38121 NULL
159141 +enable_so_sel_write_access_fndecl_38123 sel_write_access fndecl 3 38123 NULL
159142 +enable_so_actual_usbhs_pkt_38126 actual usbhs_pkt 0 38126 NULL
159143 +enable_so_len_rxd_desc_38127 len rxd_desc 0 38127 NULL
159144 +enable_so_usbhs_pipe_get_maxpacket_fndecl_38131 usbhs_pipe_get_maxpacket fndecl 0 38131 NULL
159145 +enable_so_crtc_h_drm_plane_state_38132 crtc_h drm_plane_state 0 38132 NULL
159146 +enable_so_sctp_setsockopt_associnfo_fndecl_38135 sctp_setsockopt_associnfo fndecl 3 38135 NULL
159147 +enable_so_sfi_sysfs_install_table_fndecl_38139 sfi_sysfs_install_table fndecl 1 38139 NULL
159148 +enable_so_rtw_os_xmit_resource_alloc23a_fndecl_38142 rtw_os_xmit_resource_alloc23a fndecl 3 38142 NULL
159149 +enable_so_nentries_ebt_replace_kernel_38149 nentries ebt_replace_kernel 0 38149 NULL
159150 +enable_so_btrfs_get_io_failure_record_fndecl_38153 btrfs_get_io_failure_record fndecl 2-3 38153 NULL
159151 +enable_so_il4965_hwrate_to_mac80211_idx_fndecl_38156 il4965_hwrate_to_mac80211_idx fndecl 0-1 38156 NULL nohasharray
159152 +enable_so_iwl_dbgfs_bcast_filters_macs_read_fndecl_38156 iwl_dbgfs_bcast_filters_macs_read fndecl 3 38156 &enable_so_il4965_hwrate_to_mac80211_idx_fndecl_38156
159153 +enable_so_read_interrupt_descriptor_fndecl_38165 read_interrupt_descriptor fndecl 2 38165 NULL
159154 +enable_so_st_read_fndecl_38176 st_read fndecl 3 38176 NULL
159155 +enable_so___mxt_read_reg_fndecl_38178 __mxt_read_reg fndecl 3-0 38178 NULL
159156 +enable_so_compat_dccp_setsockopt_fndecl_38188 compat_dccp_setsockopt fndecl 5 38188 NULL
159157 +enable_so_zone_end_strip_zone_38191 zone_end strip_zone 0 38191 NULL
159158 +enable_so_nf_ct_ext_create_fndecl_38195 nf_ct_ext_create fndecl 3 38195 NULL
159159 +enable_so_drm_property_create_fndecl_38196 drm_property_create fndecl 4 38196 NULL
159160 +enable_so_nilfs_cpfile_checkpoints_in_block_fndecl_38197 nilfs_cpfile_checkpoints_in_block fndecl 0-2-3 38197 NULL
159161 +enable_so_goto_high_power_fndecl_38198 goto_high_power fndecl 0 38198 NULL
159162 +enable_so_driver_data_i2c_device_id_38200 driver_data i2c_device_id 0 38200 NULL
159163 +enable_so_rx_offset_tg3_38201 rx_offset tg3 0 38201 NULL
159164 +enable_so_raw_sig_size_x509_certificate_38211 raw_sig_size x509_certificate 0 38211 NULL
159165 +enable_so_ath6kl_wmi_del_wow_pattern_cmd_fndecl_38224 ath6kl_wmi_del_wow_pattern_cmd fndecl 2 38224 NULL nohasharray
159166 +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
159167 +enable_so_target_alloc_sgl_fndecl_38227 target_alloc_sgl fndecl 3 38227 NULL nohasharray
159168 +enable_so_ath10k_dbg_sta_write_addba_fndecl_38227 ath10k_dbg_sta_write_addba fndecl 3 38227 &enable_so_target_alloc_sgl_fndecl_38227
159169 +enable_so_dvb_audio_write_fndecl_38232 dvb_audio_write fndecl 3 38232 NULL
159170 +enable_so_max_buf_size_tegra_spi_data_38233 max_buf_size tegra_spi_data 0 38233 NULL
159171 +enable_so_firm_numbers_queue_AdapterControlBlock_38236 firm_numbers_queue AdapterControlBlock 0 38236 NULL
159172 +enable_so_ipwireless_network_packet_received_fndecl_38238 ipwireless_network_packet_received fndecl 4 38238 NULL
159173 +enable_so_periodic_bytes_fndecl_38241 periodic_bytes fndecl 0 38241 NULL
159174 +enable_so_init_map_ipmac_fndecl_38246 init_map_ipmac fndecl 5 38246 NULL
159175 +enable_so_get_cell_fndecl_38247 get_cell fndecl 2 38247 NULL
159176 +enable_so_isd200_try_enum_fndecl_38250 isd200_try_enum fndecl 2 38250 NULL nohasharray
159177 +enable_so_name_len_ext2_dir_entry_2_38250 name_len ext2_dir_entry_2 0 38250 &enable_so_isd200_try_enum_fndecl_38250
159178 +enable_so_alloc_hippi_dev_fndecl_38251 alloc_hippi_dev fndecl 1 38251 NULL
159179 +enable_so_ext2_xattr_get_fndecl_38252 ext2_xattr_get fndecl 0 38252 NULL
159180 +enable_so_bdbars_count_intel8x0m_38253 bdbars_count intel8x0m 0 38253 NULL
159181 +enable_so_mwifiex_11n_delba_fndecl_38254 mwifiex_11n_delba fndecl 2 38254 NULL
159182 +enable_so_rsize_nfs_server_38256 rsize nfs_server 0 38256 NULL nohasharray
159183 +enable_so_bLength_usb_cdc_country_functional_desc_38256 bLength usb_cdc_country_functional_desc 0 38256 &enable_so_rsize_nfs_server_38256
159184 +enable_so__osd_req_cdb_len_fndecl_38259 _osd_req_cdb_len fndecl 0 38259 NULL
159185 +enable_so_prepare_header100_fndecl_38275 prepare_header100 fndecl 0 38275 NULL
159186 +enable_so_min_pnp_port_38276 min pnp_port 0 38276 NULL
159187 +enable_so_irnet_connect_confirm_fndecl_38277 irnet_connect_confirm fndecl 5 38277 NULL
159188 +enable_so_n_pages_vb2_vmalloc_buf_38278 n_pages vb2_vmalloc_buf 0 38278 NULL
159189 +enable_so_ipath_rcvegrbufsize_ipath_devdata_38283 ipath_rcvegrbufsize ipath_devdata 0 38283 NULL
159190 +enable_so_len_osd_attr_38284 len osd_attr 0 38284 NULL nohasharray
159191 +enable_so_header_length_fw_iso_packet_38284 header_length fw_iso_packet 0 38284 &enable_so_len_osd_attr_38284
159192 +enable_so_pci_cardbus_mem_size_vardecl_38290 pci_cardbus_mem_size vardecl 0 38290 NULL
159193 +enable_so_smk_write_ptrace_fndecl_38294 smk_write_ptrace fndecl 3 38294 NULL
159194 +enable_so_compat_arch_ptrace_fndecl_38298 compat_arch_ptrace fndecl 3 38298 NULL nohasharray
159195 +enable_so_alloc_smp_req_fndecl_38298 alloc_smp_req fndecl 1 38298 &enable_so_compat_arch_ptrace_fndecl_38298
159196 +enable_so_num_kcontrols_snd_soc_dapm_widget_38302 num_kcontrols snd_soc_dapm_widget 0 38302 NULL nohasharray
159197 +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
159198 +enable_so_img_width_s5p_mfc_ctx_38303 img_width s5p_mfc_ctx 0 38303 NULL
159199 +enable_so_geneve_xmit_skb_fndecl_38306 geneve_xmit_skb fndecl 13 38306 NULL
159200 +enable_so_height_zoran_v4l_settings_38307 height zoran_v4l_settings 0 38307 NULL
159201 +enable_so_bad_peb_count_ubi_attach_info_38310 bad_peb_count ubi_attach_info 0 38310 NULL nohasharray
159202 +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
159203 +enable_so_ext4_get_block_write_fndecl_38313 ext4_get_block_write fndecl 2 38313 NULL nohasharray
159204 +enable_so_ftid_base_tid_info_38313 ftid_base tid_info 0 38313 &enable_so_ext4_get_block_write_fndecl_38313
159205 +enable_so_nr_siblings_perf_event_38320 nr_siblings perf_event 0 38320 NULL
159206 +enable_so_ob_max_size_mvumi_hba_38327 ob_max_size mvumi_hba 0 38327 NULL
159207 +enable_so_radeon_kms_compat_ioctl_fndecl_38328 radeon_kms_compat_ioctl fndecl 2 38328 NULL
159208 +enable_so_xfs_vn_fiemap_fndecl_38336 xfs_vn_fiemap fndecl 3-4 38336 NULL
159209 +enable_so_iov_len_sg_iovec_38337 iov_len sg_iovec 0 38337 NULL
159210 +enable_so_num_sys_eqs_mlx4_dev_cap_38340 num_sys_eqs mlx4_dev_cap 0 38340 NULL
159211 +enable_so_get_first_ref_fndecl_38342 get_first_ref fndecl 0 38342 NULL
159212 +enable_so_record_size_vardecl_mtdoops_c_38343 record_size vardecl_mtdoops.c 0 38343 NULL
159213 +enable_so_len_nft_data_desc_38346 len nft_data_desc 0 38346 NULL
159214 +enable_so_shim_offset_sst_res_info_38347 shim_offset sst_res_info 0 38347 NULL
159215 +enable_so_pf_fhlen_nfsd4_putfh_38348 pf_fhlen nfsd4_putfh 0 38348 NULL
159216 +enable_so_len_ethtool_regs_38354 len ethtool_regs 0 38354 NULL
159217 +enable_so_xfs_dir3_free_get_buf_fndecl_38355 xfs_dir3_free_get_buf fndecl 2 38355 NULL
159218 +enable_so_rate_snd_soc_dai_38358 rate snd_soc_dai 0 38358 NULL
159219 +enable_so_pci_sriov_resource_alignment_fndecl_38365 pci_sriov_resource_alignment fndecl 0 38365 NULL
159220 +enable_so_flush_buffer_fndecl_38367 flush_buffer fndecl 2 38367 NULL
159221 +enable_so_ieee80211_if_read_dot11MeshHWMPRootMode_fndecl_38370 ieee80211_if_read_dot11MeshHWMPRootMode fndecl 3 38370 NULL
159222 +enable_so_ri_length_gfs2_rindex_38375 ri_length gfs2_rindex 0 38375 NULL
159223 +enable_so_dvb_register_frontend_fndecl_38382 dvb_register_frontend fndecl 0 38382 NULL
159224 +enable_so_chrdev_setup_rx_fndecl_38384 chrdev_setup_rx fndecl 2 38384 NULL
159225 +enable_so_blk_register_region_fndecl_38387 blk_register_region fndecl 1-2 38387 NULL
159226 +enable_so_mwifiex_rdeeprom_read_fndecl_38390 mwifiex_rdeeprom_read fndecl 3 38390 NULL
159227 +enable_so_ext4_ext_rm_leaf_fndecl_38397 ext4_ext_rm_leaf fndecl 5 38397 NULL
159228 +enable_so_hfsplus_brec_read_fndecl_38399 hfsplus_brec_read fndecl 0 38399 NULL
159229 +enable_so_ath6kl_sdio_alloc_prep_scat_req_fndecl_38401 ath6kl_sdio_alloc_prep_scat_req fndecl 2 38401 NULL
159230 +enable_so__c4iw_write_mem_dma_fndecl_38404 _c4iw_write_mem_dma fndecl 3 38404 NULL
159231 +enable_so_parent_offset_isofs_fid_38408 parent_offset isofs_fid 0 38408 NULL
159232 +enable_so_dwc3_mode_write_fndecl_38414 dwc3_mode_write fndecl 3 38414 NULL
159233 +enable_so___rocker_port_mem_alloc_fndecl_38416 __rocker_port_mem_alloc fndecl 4 38416 NULL
159234 +enable_so_xdr_xcode_array2_fndecl_38417 xdr_xcode_array2 fndecl 2 38417 NULL
159235 +enable_so_read_page_fndecl_38423 read_page fndecl 2 38423 NULL nohasharray
159236 +enable_so_todo_dmxdev_filter_38423 todo dmxdev_filter 0 38423 &enable_so_read_page_fndecl_38423
159237 +enable_so_remap_exception_fndecl_38426 remap_exception fndecl 4 38426 NULL
159238 +enable_so_mwifiex_get_rates_from_cfg80211_fndecl_38427 mwifiex_get_rates_from_cfg80211 fndecl 0 38427 NULL
159239 +enable_so_ide_set_dma_mode_fndecl_38428 ide_set_dma_mode fndecl 2 38428 NULL
159240 +enable_so_m_chunk_size_drxk_state_38431 m_chunk_size drxk_state 0 38431 NULL
159241 +enable_so_num_total_adcs_snd_ice1712_38432 num_total_adcs snd_ice1712 0 38432 NULL
159242 +enable_so_r820t_write_fndecl_38436 r820t_write fndecl 4 38436 NULL
159243 +enable_so_ocfs2_iterate_xattr_buckets_fndecl_38437 ocfs2_iterate_xattr_buckets fndecl 2 38437 NULL
159244 +enable_so_cw1200_sdio_memcpy_toio_fndecl_38442 cw1200_sdio_memcpy_toio fndecl 4 38442 NULL
159245 +enable_so_vxge_rx_alloc_fndecl_38443 vxge_rx_alloc fndecl 3 38443 NULL
159246 +enable_so___ieee80211_tx_skb_tid_band_fndecl_38444 __ieee80211_tx_skb_tid_band fndecl 3 38444 NULL nohasharray
159247 +enable_so_test_ofsh_cyttsp4_sysinfo_data_38444 test_ofsh cyttsp4_sysinfo_data 0 38444 &enable_so___ieee80211_tx_skb_tid_band_fndecl_38444
159248 +enable_so_slave_count_w1_master_38454 slave_count w1_master 0 38454 NULL
159249 +enable_so_a8293_i2c_fndecl_38457 a8293_i2c fndecl 3 38457 NULL
159250 +enable_so_dvb_ringbuffer_avail_fndecl_38474 dvb_ringbuffer_avail fndecl 0 38474 NULL
159251 +enable_so_blocksize_gss_krb5_enctype_38477 blocksize gss_krb5_enctype 0 38477 NULL
159252 +enable_so___fuse_request_alloc_fndecl_38479 __fuse_request_alloc fndecl 1 38479 NULL
159253 +enable_so_min_pfn_mapped_vardecl_init_c_38481 min_pfn_mapped vardecl_init.c 0 38481 NULL
159254 +enable_so_dma_rx_errors_read_fndecl_38494 dma_rx_errors_read fndecl 3 38494 NULL
159255 +enable_so_copy_block_fndecl_38500 copy_block fndecl 3 38500 NULL
159256 +enable_so_create_rcom_fndecl_38501 create_rcom fndecl 4 38501 NULL nohasharray
159257 +enable_so_info_len_ib_ucm_sidr_rep_38501 info_len ib_ucm_sidr_rep 0 38501 &enable_so_create_rcom_fndecl_38501
159258 +enable_so_ib_uverbs_rereg_mr_fndecl_38504 ib_uverbs_rereg_mr fndecl 3 38504 NULL
159259 +enable_so_nsm_get_handle_fndecl_38506 nsm_get_handle fndecl 4 38506 NULL
159260 +enable_so_udp_recvmsg_fndecl_38509 udp_recvmsg fndecl 3 38509 NULL nohasharray
159261 +enable_so_msdu_len_htt_rx_offload_msdu_38509 msdu_len htt_rx_offload_msdu 0 38509 &enable_so_udp_recvmsg_fndecl_38509
159262 +enable_so_isofs_readpages_fndecl_38512 isofs_readpages fndecl 4 38512 NULL
159263 +enable_so_prepare_merge_dm_exception_store_type_38515 prepare_merge dm_exception_store_type 0 38515 NULL
159264 +enable_so_max_sg_mthca_limits_38517 max_sg mthca_limits 0 38517 NULL
159265 +enable_so_if_broot_bytes_xfs_ifork_38518 if_broot_bytes xfs_ifork 0 38518 NULL
159266 +enable_so_mxuport_process_read_urb_data_fndecl_38523 mxuport_process_read_urb_data fndecl 3 38523 NULL nohasharray
159267 +enable_so_octeon_init_instr_queue_fndecl_38523 octeon_init_instr_queue fndecl 3 38523 &enable_so_mxuport_process_read_urb_data_fndecl_38523
159268 +enable_so_emu_setup_memblk_fndecl_38524 emu_setup_memblk fndecl 5 38524 NULL
159269 +enable_so_set_extent_dirty_fndecl_38529 set_extent_dirty fndecl 3-2 38529 NULL nohasharray
159270 +enable_so_smsdvb_stats_read_fndecl_38529 smsdvb_stats_read fndecl 3 38529 &enable_so_set_extent_dirty_fndecl_38529
159271 +enable_so_max_pde_used_radeon_vm_38536 max_pde_used radeon_vm 0 38536 NULL
159272 +enable_so_amdgpu_sa_bo_manager_init_fndecl_38537 amdgpu_sa_bo_manager_init fndecl 3 38537 NULL
159273 +enable_so_prism2_ap_translate_scan_fndecl_38540 prism2_ap_translate_scan fndecl 0 38540 NULL
159274 +enable_so_cx18_av_read_fndecl_38542 cx18_av_read fndecl 0 38542 NULL
159275 +enable_so_hw_channels_sh_cmt_device_38544 hw_channels sh_cmt_device 0 38544 NULL
159276 +enable_so_clk_fd_set_rate_fndecl_38545 clk_fd_set_rate fndecl 2-3 38545 NULL
159277 +enable_so_ulist_add_merge_fndecl_38547 ulist_add_merge fndecl 2-0 38547 NULL nohasharray
159278 +enable_so_krb5_encrypt_fndecl_38547 krb5_encrypt fndecl 5 38547 &enable_so_ulist_add_merge_fndecl_38547
159279 +enable_so_fb_base_phys_radeonfb_info_38551 fb_base_phys radeonfb_info 0 38551 NULL
159280 +enable_so_set_stream_hw_fndecl_38553 set_stream_hw fndecl 3 38553 NULL nohasharray
159281 +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
159282 +enable_so_o2net_debug_read_fndecl_38554 o2net_debug_read fndecl 3 38554 NULL
159283 +enable_so_rx_max_size_rtl_usb_38560 rx_max_size rtl_usb 0 38560 NULL
159284 +enable_so_ext2_alloc_blocks_fndecl_38562 ext2_alloc_blocks fndecl 2 38562 NULL nohasharray
159285 +enable_so_hysdn_conf_write_fndecl_38562 hysdn_conf_write fndecl 3 38562 &enable_so_ext2_alloc_blocks_fndecl_38562
159286 +enable_so_offset_writequeue_entry_38565 offset writequeue_entry 0 38565 NULL
159287 +enable_so_this_header_vardecl_initramfs_c_38567 this_header vardecl_initramfs.c 0 38567 NULL nohasharray
159288 +enable_so_htable_size_fndecl_38567 htable_size fndecl 0-1 38567 &enable_so_this_header_vardecl_initramfs_c_38567
159289 +enable_so_memblock_alloc_base_nid_fndecl_38568 memblock_alloc_base_nid fndecl 0-2-1-3 38568 NULL nohasharray
159290 +enable_so_smk_write_load2_fndecl_38568 smk_write_load2 fndecl 3 38568 &enable_so_memblock_alloc_base_nid_fndecl_38568
159291 +enable_so_nvme_major_vardecl_nvme_core_c_38572 nvme_major vardecl_nvme-core.c 0 38572 NULL
159292 +enable_so_setup_dma_urb_38573 setup_dma urb 0 38573 NULL nohasharray
159293 +enable_so_len_port_buffer_38573 len port_buffer 0 38573 &enable_so_setup_dma_urb_38573
159294 +enable_so_block_mtu_hci_dev_38575 block_mtu hci_dev 0 38575 NULL
159295 +enable_so_data_dma_aiptek_38577 data_dma aiptek 0 38577 NULL
159296 +enable_so_rsr_ct_atc_38578 rsr ct_atc 0 38578 NULL nohasharray
159297 +enable_so_retry_count_read_fndecl_38578 retry_count_read fndecl 3 38578 &enable_so_rsr_ct_atc_38578
159298 +enable_so_usVActive__ATOM_DTD_FORMAT_38581 usVActive _ATOM_DTD_FORMAT 0 38581 NULL
159299 +enable_so_gdm_usb_hci_send_fndecl_38585 gdm_usb_hci_send fndecl 3 38585 NULL
159300 +enable_so_sub_alloc_fndecl_38591 sub_alloc fndecl 0 38591 NULL
159301 +enable_so_print_prefix_fndecl_38595 print_prefix fndecl 0 38595 NULL
159302 +enable_so_set_nfilters_fndecl_38597 set_nfilters fndecl 2 38597 NULL
159303 +enable_so_proc_pid_readlink_fndecl_38601 proc_pid_readlink fndecl 3 38601 NULL
159304 +enable_so_s_cgmask_ufs_sb_private_info_38603 s_cgmask ufs_sb_private_info 0 38603 NULL
159305 +enable_so_reiserfs_posix_acl_from_disk_fndecl_38604 reiserfs_posix_acl_from_disk fndecl 2 38604 NULL nohasharray
159306 +enable_so_v_offset_v2_38604 v offset_v2 0 38604 &enable_so_reiserfs_posix_acl_from_disk_fndecl_38604 nohasharray
159307 +enable_so_maxburst_usb_ep_38604 maxburst usb_ep 0 38604 &enable_so_v_offset_v2_38604
159308 +enable_so_fpWidth_nvidia_par_38605 fpWidth nvidia_par 0 38605 NULL nohasharray
159309 +enable_so_perf_num_counters_fndecl_38605 perf_num_counters fndecl 0 38605 &enable_so_fpWidth_nvidia_par_38605
159310 +enable_so_p_arglen_rpc_procinfo_38611 p_arglen rpc_procinfo 0 38611 NULL
159311 +enable_so_objectid_reiserfs_iget_args_38612 objectid reiserfs_iget_args 0 38612 NULL
159312 +enable_so_mga_compat_ioctl_fndecl_38617 mga_compat_ioctl fndecl 2 38617 NULL
159313 +enable_so_max_wqe_rqe_ocrdma_create_qp_rsp_38618 max_wqe_rqe ocrdma_create_qp_rsp 0 38618 NULL
159314 +enable_so_ieee80211_if_read_dot11MeshRetryTimeout_fndecl_38619 ieee80211_if_read_dot11MeshRetryTimeout fndecl 3 38619 NULL
159315 +enable_so_pageshift_sddr55_card_info_38623 pageshift sddr55_card_info 0 38623 NULL
159316 +enable_so_ar5523_config_multi_fndecl_38630 ar5523_config_multi fndecl 4 38630 NULL
159317 +enable_so_level_kvm_shadow_walk_iterator_38631 level kvm_shadow_walk_iterator 0 38631 NULL
159318 +enable_so_next_burst_len_iscsi_datain_req_38632 next_burst_len iscsi_datain_req 0 38632 NULL nohasharray
159319 +enable_so_iscsi_if_send_reply_fndecl_38632 iscsi_if_send_reply fndecl 7 38632 &enable_so_next_burst_len_iscsi_datain_req_38632
159320 +enable_so_vmci_qp_broker_alloc_fndecl_38635 vmci_qp_broker_alloc fndecl 5-6 38635 NULL
159321 +enable_so_size_bucket_table_38640 size bucket_table 0 38640 NULL
159322 +enable_so_f2fs_seek_block_fndecl_38641 f2fs_seek_block fndecl 2 38641 NULL
159323 +enable_so_uart_offset_pciserial_board_38647 uart_offset pciserial_board 0 38647 NULL nohasharray
159324 +enable_so_max_ssns_csio_fcoe_res_info_38647 max_ssns csio_fcoe_res_info 0 38647 &enable_so_uart_offset_pciserial_board_38647
159325 +enable_so_truncate_pagecache_range_fndecl_38652 truncate_pagecache_range fndecl 2-3 38652 NULL
159326 +enable_so_str_read_fndecl_38656 str_read fndecl 4 38656 NULL
159327 +enable_so_tcp_metrics_hash_log_vardecl_tcp_metrics_c_38657 tcp_metrics_hash_log vardecl_tcp_metrics.c 0 38657 NULL
159328 +enable_so_rx_buffer_len_igbvf_adapter_38659 rx_buffer_len igbvf_adapter 0 38659 NULL
159329 +enable_so_fll_in_wm8900_priv_38661 fll_in wm8900_priv 0 38661 NULL
159330 +enable_so_ext4_setent_fndecl_38662 ext4_setent fndecl 3 38662 NULL
159331 +enable_so_cm4040_read_fndecl_38663 cm4040_read fndecl 3 38663 NULL
159332 +enable_so_hid_parse_report_fndecl_38666 hid_parse_report fndecl 3 38666 NULL
159333 +enable_so_def_bpp_mb862xx_gc_mode_38668 def_bpp mb862xx_gc_mode 0 38668 NULL
159334 +enable_so_tty_cdev_add_fndecl_38673 tty_cdev_add fndecl 2-4 38673 NULL
159335 +enable_so_drm_compat_ioctl_fndecl_38678 drm_compat_ioctl fndecl 2 38678 NULL
159336 +enable_so_v9fs_alloc_rdir_buf_fndecl_38679 v9fs_alloc_rdir_buf fndecl 2 38679 NULL
159337 +enable_so_txq_max_tg3_38686 txq_max tg3 0 38686 NULL
159338 +enable_so_sg_read_oxfer_fndecl_38687 sg_read_oxfer fndecl 3 38687 NULL
159339 +enable_so_sc_uaddr_len_nfs4_setclientid_38689 sc_uaddr_len nfs4_setclientid 0 38689 NULL
159340 +enable_so_len_irda_device_list_38690 len irda_device_list 0 38690 NULL
159341 +enable_so_iio_buffer_add_channel_sysfs_fndecl_38693 iio_buffer_add_channel_sysfs fndecl 0 38693 NULL
159342 +enable_so_ioremap_prot_fndecl_38695 ioremap_prot fndecl 2-1 38695 NULL
159343 +enable_so_bulk_in_ep_irda_usb_cb_38699 bulk_in_ep irda_usb_cb 0 38699 NULL
159344 +enable_so_get_user_pages_fast_fndecl_38708 get_user_pages_fast fndecl 0-1 38708 NULL
159345 +enable_so_cxgbi_ddp_init_fndecl_38714 cxgbi_ddp_init fndecl 4-5 38714 NULL nohasharray
159346 +enable_so_aac_change_queue_depth_fndecl_38714 aac_change_queue_depth fndecl 2 38714 &enable_so_cxgbi_ddp_init_fndecl_38714
159347 +enable_so_ifx_spi_insert_flip_string_fndecl_38715 ifx_spi_insert_flip_string fndecl 3 38715 NULL
159348 +enable_so_free_index_fndecl_38718 free_index fndecl 3 38718 NULL
159349 +enable_so_if_write_fndecl_38719 if_write fndecl 3 38719 NULL
159350 +enable_so_esrt_data_vardecl_esrt_c_38729 esrt_data vardecl_esrt.c 0 38729 NULL
159351 +enable_so_acpi_table_parse_entries_fndecl_38730 acpi_table_parse_entries fndecl 0 38730 NULL
159352 +enable_so_vram_vardecl_lxfb_core_c_38739 vram vardecl_lxfb_core.c 0 38739 NULL
159353 +enable_so_ports_max_wusbhc_38743 ports_max wusbhc 0 38743 NULL
159354 +enable_so___page_file_index_fndecl_38744 __page_file_index fndecl 0 38744 NULL
159355 +enable_so_ds_cc_ravb_ex_rx_desc_38745 ds_cc ravb_ex_rx_desc 0 38745 NULL nohasharray
159356 +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
159357 +enable_so_ssd1307fb_alloc_array_fndecl_38751 ssd1307fb_alloc_array fndecl 1 38751 NULL
159358 +enable_so_ts_tlb_preload_count_gru_thread_state_38752 ts_tlb_preload_count gru_thread_state 0 38752 NULL nohasharray
159359 +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
159360 +enable_so_length_snd_hwdep_dsp_image_38752 length snd_hwdep_dsp_image 0 38752 &enable_so_myri10ge_small_bytes_vardecl_myri10ge_c_38752
159361 +enable_so_buffer_from_user_fndecl_38753 buffer_from_user fndecl 3 38753 NULL
159362 +enable_so_tag_ctrl_info_amd8111e_rx_dr_38754 tag_ctrl_info amd8111e_rx_dr 0 38754 NULL
159363 +enable_so_reserved_pds_mlx4_caps_38755 reserved_pds mlx4_caps 0 38755 NULL
159364 +enable_so_t4_max_iq_size_c4iw_hw_queue_38756 t4_max_iq_size c4iw_hw_queue 0 38756 NULL
159365 +enable_so_nr_pages_max_splice_pipe_desc_38758 nr_pages_max splice_pipe_desc 0 38758 NULL
159366 +enable_so_o_height_g2d_frame_38760 o_height g2d_frame 0 38760 NULL
159367 +enable_so_egr_start_sge_38761 egr_start sge 0 38761 NULL
159368 +enable_so_default_advmss_dst_ops_38765 default_advmss dst_ops 0 38765 NULL
159369 +enable_so_qib_alloc_devdata_fndecl_38776 qib_alloc_devdata fndecl 2 38776 NULL
159370 +enable_so_ih_blkno_ocfs2_inode_handle_38779 ih_blkno ocfs2_inode_handle 0 38779 NULL
159371 +enable_so_height_cx231xx_38782 height cx231xx 0 38782 NULL
159372 +enable_so_create_rmp_cmd_fndecl_38783 create_rmp_cmd fndecl 0 38783 NULL
159373 +enable_so_maxauthsize_old_aead_alg_38788 maxauthsize old_aead_alg 0 38788 NULL nohasharray
159374 +enable_so_pointer_size_read_fndecl_38788 pointer_size_read fndecl 3 38788 &enable_so_maxauthsize_old_aead_alg_38788
159375 +enable_so_spi_read_buf_fndecl_38792 spi_read_buf fndecl 2 38792 NULL
159376 +enable_so_get_indirect_ea_fndecl_38798 get_indirect_ea fndecl 4-3 38798 NULL
159377 +enable_so_ioread32_fndecl_38804 ioread32 fndecl 0 38804 NULL nohasharray
159378 +enable_so_size_esb2rom_window_38804 size esb2rom_window 0 38804 &enable_so_ioread32_fndecl_38804 nohasharray
159379 +enable_so_read_file_tgt_tx_stats_fndecl_38804 read_file_tgt_tx_stats fndecl 3 38804 &enable_so_size_esb2rom_window_38804
159380 +enable_so_raw6_getfrag_fndecl_38805 raw6_getfrag fndecl 3-4 38805 NULL
159381 +enable_so_taglen_compound_hdr_38807 taglen compound_hdr 0 38807 NULL
159382 +enable_so_maxpacksize_snd_usX2Y_substream_38808 maxpacksize snd_usX2Y_substream 0 38808 NULL
159383 +enable_so_do_readv_writev_fndecl_38810 do_readv_writev fndecl 4 38810 NULL
159384 +enable_so_vlan_tci_sk_buff_38825 vlan_tci sk_buff 0 38825 NULL
159385 +enable_so_algorithm_r5conf_38831 algorithm r5conf 0 38831 NULL
159386 +enable_so_user_read_fndecl_38842 user_read fndecl 3 38842 NULL
159387 +enable_so_do_fault_fndecl_38845 do_fault fndecl 3 38845 NULL
159388 +enable_so_memblock_alloc_fndecl_38847 memblock_alloc fndecl 2-1-0 38847 NULL
159389 +enable_so_logfs_fsync_fndecl_38849 logfs_fsync fndecl 2-3 38849 NULL
159390 +enable_so_datablob_len_encrypted_key_payload_38850 datablob_len encrypted_key_payload 0 38850 NULL
159391 +enable_so_srs_nslot_sptlrpc_rule_set_38854 srs_nslot sptlrpc_rule_set 0 38854 NULL
159392 +enable_so_count_ixgbevf_ring_38867 count ixgbevf_ring 0 38867 NULL
159393 +enable_so_mask_mthca_alloc_38874 mask mthca_alloc 0 38874 NULL nohasharray
159394 +enable_so_if_sdio_handle_data_fndecl_38874 if_sdio_handle_data fndecl 3 38874 &enable_so_mask_mthca_alloc_38874
159395 +enable_so_wmi_set_ie_fndecl_38876 wmi_set_ie fndecl 3 38876 NULL
159396 +enable_so_mmc_spi_skip_fndecl_38879 mmc_spi_skip fndecl 3 38879 NULL nohasharray
159397 +enable_so_error_dvb_ringbuffer_38879 error dvb_ringbuffer 0 38879 &enable_so_mmc_spi_skip_fndecl_38879
159398 +enable_so_static_prio_task_struct_38880 static_prio task_struct 0 38880 NULL
159399 +enable_so_atalk_route_packet_fndecl_38886 atalk_route_packet fndecl 5-4 38886 NULL
159400 +enable_so_read_dummy_spi_nor_38888 read_dummy spi_nor 0 38888 NULL
159401 +enable_so_num_bna_intr_info_38889 num bna_intr_info 0 38889 NULL
159402 +enable_so_beb_rsvd_level_ubi_device_38898 beb_rsvd_level ubi_device 0 38898 NULL nohasharray
159403 +enable_so_reg_phys_intel_iommu_38898 reg_phys intel_iommu 0 38898 &enable_so_beb_rsvd_level_ubi_device_38898
159404 +enable_so_sg_width_mvs_chip_info_38900 sg_width mvs_chip_info 0 38900 NULL
159405 +enable_so_wr_buflen_nfsd4_write_38903 wr_buflen nfsd4_write 0 38903 NULL
159406 +enable_so_generic_elem_len_local_info_38904 generic_elem_len local_info 0 38904 NULL
159407 +enable_so_surface_bpp_drm_fb_helper_surface_size_38906 surface_bpp drm_fb_helper_surface_size 0 38906 NULL
159408 +enable_so_dst_ci_command_fndecl_38908 dst_ci_command fndecl 4 38908 NULL nohasharray
159409 +enable_so_scsi_get_vpd_page_fndecl_38908 scsi_get_vpd_page fndecl 4 38908 &enable_so_dst_ci_command_fndecl_38908
159410 +enable_so_pgctrl_write_fndecl_38918 pgctrl_write fndecl 3 38918 NULL
159411 +enable_so_qlcnic_diag_free_res_fndecl_38922 qlcnic_diag_free_res fndecl 2 38922 NULL
159412 +enable_so_max_window_tcp_sock_38923 max_window tcp_sock 0 38923 NULL
159413 +enable_so_data_size_ms_system_item_38924 data_size ms_system_item 0 38924 NULL
159414 +enable_so_usb_sg_init_fndecl_38925 usb_sg_init fndecl 7-3-6 38925 NULL nohasharray
159415 +enable_so_num_txqs_octeon_nic_if_config_38925 num_txqs octeon_nic_if_config 0 38925 &enable_so_usb_sg_init_fndecl_38925
159416 +enable_so_refresh_drm_cmdline_mode_38926 refresh drm_cmdline_mode 0 38926 NULL
159417 +enable_so_seek_holedata_direct_fndecl_38928 seek_holedata_direct fndecl 0-2 38928 NULL
159418 +enable_so_tx_queues_vardecl_bond_main_c_38932 tx_queues vardecl_bond_main.c 0 38932 NULL
159419 +enable_so_qib_restart_rc_fndecl_38939 qib_restart_rc fndecl 2 38939 NULL
159420 +enable_so_depth_cx231xx_fmt_38940 depth cx231xx_fmt 0 38940 NULL
159421 +enable_so_pcm_open_fndecl_38941 pcm_open fndecl 2 38941 NULL
159422 +enable_so_ecryptfs_write_lower_page_segment_fndecl_38943 ecryptfs_write_lower_page_segment fndecl 4 38943 NULL
159423 +enable_so_sc_page_off_o2net_sock_container_38950 sc_page_off o2net_sock_container 0 38950 NULL
159424 +enable_so_in_length_nd_cmd_set_config_hdr_38954 in_length nd_cmd_set_config_hdr 0 38954 NULL
159425 +enable_so_bpp_vmw_fb_par_38955 bpp vmw_fb_par 0 38955 NULL
159426 +enable_so_tcp_copied_sock_xprt_38964 tcp_copied sock_xprt 0 38964 NULL
159427 +enable_so_uregbase_qib_devdata_38972 uregbase qib_devdata 0 38972 NULL nohasharray
159428 +enable_so_wm8350_register_regulator_fndecl_38972 wm8350_register_regulator fndecl 2 38972 &enable_so_uregbase_qib_devdata_38972
159429 +enable_so_cdrom_read_cdda_fndecl_38973 cdrom_read_cdda fndecl 4 38973 NULL
159430 +enable_so_register_buffer_fndecl_38990 register_buffer fndecl 3 38990 NULL
159431 +enable_so_hsc_read_fndecl_38991 hsc_read fndecl 3 38991 NULL
159432 +enable_so_pcm_buf_elapsed_dma_ofs_snd_card_asihpi_pcm_38998 pcm_buf_elapsed_dma_ofs snd_card_asihpi_pcm 0 38998 NULL
159433 +enable_so_maxqlen_vardecl_seq_oss_init_c_39001 maxqlen vardecl_seq_oss_init.c 0 39001 NULL
159434 +enable_so_pwr_rcvd_awake_beacons_read_fndecl_39002 pwr_rcvd_awake_beacons_read fndecl 3 39002 NULL
159435 +enable_so_tlv_len_nfc_llcp_sdp_tlv_39007 tlv_len nfc_llcp_sdp_tlv 0 39007 NULL
159436 +enable_so_dram_end_intel_sst_drv_39008 dram_end intel_sst_drv 0 39008 NULL
159437 +enable_so_trigger_request_store_fndecl_39015 trigger_request_store fndecl 4 39015 NULL
159438 +enable_so_usbat_flash_write_data_fndecl_39018 usbat_flash_write_data fndecl 4 39018 NULL
159439 +enable_so_dlfb_submit_urb_fndecl_39028 dlfb_submit_urb fndecl 3 39028 NULL
159440 +enable_so_alloc_send_rmpp_list_fndecl_39029 alloc_send_rmpp_list fndecl 2 39029 NULL
159441 +enable_so_at25_ee_read_fndecl_39032 at25_ee_read fndecl 3-4 39032 NULL nohasharray
159442 +enable_so_video_pbase_osd_info_39032 video_pbase osd_info 0 39032 &enable_so_at25_ee_read_fndecl_39032 nohasharray
159443 +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
159444 +enable_so_fwnet_receive_packet_fndecl_39034 fwnet_receive_packet fndecl 9 39034 NULL
159445 +enable_so_reserve_st_proto_s_39036 reserve st_proto_s 0 39036 NULL
159446 +enable_so_free_ubifs_lprops_39039 free ubifs_lprops 0 39039 NULL
159447 +enable_so_fat_readpages_fndecl_39045 fat_readpages fndecl 4 39045 NULL nohasharray
159448 +enable_so_pep_reply_fndecl_39045 pep_reply fndecl 5 39045 &enable_so_fat_readpages_fndecl_39045
159449 +enable_so_iwl_dbgfs_missed_beacon_read_fndecl_39051 iwl_dbgfs_missed_beacon_read fndecl 3 39051 NULL
159450 +enable_so_num_ports_u132_39052 num_ports u132 0 39052 NULL
159451 +enable_so_ttm_agp_tt_create_fndecl_39056 ttm_agp_tt_create fndecl 3 39056 NULL nohasharray
159452 +enable_so_get_key_fscache_cookie_def_39056 get_key fscache_cookie_def 0 39056 &enable_so_ttm_agp_tt_create_fndecl_39056
159453 +enable_so_ncp_fsync_fndecl_39057 ncp_fsync fndecl 2-3 39057 NULL
159454 +enable_so_frameLen_rx_desc_39058 frameLen rx_desc 0 39058 NULL nohasharray
159455 +enable_so_minor_gigaset_driver_39058 minor gigaset_driver 0 39058 &enable_so_frameLen_rx_desc_39058
159456 +enable_so_send_set_xattr_fndecl_39062 send_set_xattr fndecl 6-4 39062 NULL
159457 +enable_so_n_buckets_bpf_htab_39067 n_buckets bpf_htab 0 39067 NULL
159458 +enable_so_iscsit_handle_immediate_data_fndecl_39071 iscsit_handle_immediate_data fndecl 3 39071 NULL
159459 +enable_so_max_rules_crush_map_39073 max_rules crush_map 0 39073 NULL
159460 +enable_so_usbatm_write_cells_fndecl_39074 usbatm_write_cells fndecl 0 39074 NULL
159461 +enable_so_frame_len_b43_rxhdr_fw4_39076 frame_len b43_rxhdr_fw4 0 39076 NULL
159462 +enable_so_rx_rx_checksum_result_read_fndecl_39082 rx_rx_checksum_result_read fndecl 3 39082 NULL
159463 +enable_so_sparse_early_usemaps_alloc_node_fndecl_39084 sparse_early_usemaps_alloc_node fndecl 4 39084 NULL
159464 +enable_so_sge_rx_fndecl_39089 sge_rx fndecl 3 39089 NULL
159465 +enable_so_d0_vring_rx_dma_39093 d0 vring_rx_dma 0 39093 NULL
159466 +enable_so_negotiate_rsize_smb_version_operations_39094 negotiate_rsize smb_version_operations 0 39094 NULL
159467 +enable_so_xillybus_write_fndecl_39102 xillybus_write fndecl 3 39102 NULL
159468 +enable_so___smpboot_create_thread_fndecl_39110 __smpboot_create_thread fndecl 0 39110 NULL
159469 +enable_so_grow_zone_span_fndecl_39112 grow_zone_span fndecl 2-3 39112 NULL nohasharray
159470 +enable_so_audio_ins_vx_core_39112 audio_ins vx_core 0 39112 &enable_so_grow_zone_span_fndecl_39112
159471 +enable_so_bg_bits_ocfs2_group_desc_39116 bg_bits ocfs2_group_desc 0 39116 NULL
159472 +enable_so_fat_direct_IO_fndecl_39117 fat_direct_IO fndecl 3 39117 NULL
159473 +enable_so_rds_ib_sysctl_max_send_wr_vardecl_39120 rds_ib_sysctl_max_send_wr vardecl 0 39120 NULL
159474 +enable_so_rl_namelen_rcom_lock_39122 rl_namelen rcom_lock 0 39122 NULL
159475 +enable_so_bytes_per_datum_iio_buffer_39125 bytes_per_datum iio_buffer 0 39125 NULL
159476 +enable_so_calc_memmap_size_fndecl_39130 calc_memmap_size fndecl 0-2-1 39130 NULL nohasharray
159477 +enable_so_simple_transaction_get_fndecl_39130 simple_transaction_get fndecl 3 39130 &enable_so_calc_memmap_size_fndecl_39130
159478 +enable_so_syst_pa_vardecl_sfi_core_c_39133 syst_pa vardecl_sfi_core.c 0 39133 NULL
159479 +enable_so_ceph_build_auth_request_fndecl_39135 ceph_build_auth_request fndecl 0 39135 NULL
159480 +enable_so_system_sample_rate_hdsp_39140 system_sample_rate hdsp 0 39140 NULL
159481 +enable_so_drvr_sglimit_blogic_adapter_39142 drvr_sglimit blogic_adapter 0 39142 NULL
159482 +enable_so_mmc_test_buffer_transfer_fndecl_39150 mmc_test_buffer_transfer fndecl 4 39150 NULL
159483 +enable_so_raid56_parity_alloc_scrub_rbio_fndecl_39153 raid56_parity_alloc_scrub_rbio fndecl 4 39153 NULL
159484 +enable_so_size_intel_initial_plane_config_39155 size intel_initial_plane_config 0 39155 NULL
159485 +enable_so_log_root_btrfs_super_block_39157 log_root btrfs_super_block 0 39157 NULL
159486 +enable_so_fcoe_start_cid_cnic_local_39162 fcoe_start_cid cnic_local 0 39162 NULL
159487 +enable_so_ath6kl_tm_rx_event_fndecl_39163 ath6kl_tm_rx_event fndecl 3 39163 NULL nohasharray
159488 +enable_so_sys_readv_fndecl_39163 sys_readv fndecl 3 39163 &enable_so_ath6kl_tm_rx_event_fndecl_39163
159489 +enable_so_num_mcg_mlx4_profile_39164 num_mcg mlx4_profile 0 39164 NULL
159490 +enable_so_ext2_try_to_allocate_with_rsv_fndecl_39166 ext2_try_to_allocate_with_rsv fndecl 0-4 39166 NULL
159491 +enable_so_ast_gem_create_fndecl_39167 ast_gem_create fndecl 2 39167 NULL
159492 +enable_so_blf_len_xfs_buf_log_format_39169 blf_len xfs_buf_log_format 0 39169 NULL
159493 +enable_so_qsize_inet_frags_39172 qsize inet_frags 0 39172 NULL nohasharray
159494 +enable_so_lib80211_michael_mic_verify_fndecl_39172 lib80211_michael_mic_verify fndecl 3 39172 &enable_so_qsize_inet_frags_39172
159495 +enable_so_cfg80211_roamed_bss_fndecl_39173 cfg80211_roamed_bss fndecl 4-6 39173 NULL
159496 +enable_so_cyttsp4_probe_fndecl_39178 cyttsp4_probe fndecl 4 39178 NULL
159497 +enable_so_l2cap_sock_setsockopt_fndecl_39180 l2cap_sock_setsockopt fndecl 5 39180 NULL
159498 +enable_so_mthca_buddy_init_fndecl_39181 mthca_buddy_init fndecl 2 39181 NULL
159499 +enable_so_skb_put_fndecl_39184 skb_put fndecl 2 39184 NULL
159500 +enable_so_size_nvkm_instobj_args_39185 size nvkm_instobj_args 0 39185 NULL
159501 +enable_so_ttymajor_vardecl_mxser_c_39193 ttymajor vardecl_mxser.c 0 39193 NULL
159502 +enable_so_udc_create_dma_chain_fndecl_39194 udc_create_dma_chain fndecl 3 39194 NULL
159503 +enable_so_maxentry_xtheader_39202 maxentry xtheader 0 39202 NULL
159504 +enable_so_mon_bin_compat_ioctl_fndecl_39209 mon_bin_compat_ioctl fndecl 3 39209 NULL
159505 +enable_so_len_vmci_datagram_snd_rcv_info_39211 len vmci_datagram_snd_rcv_info 0 39211 NULL
159506 +enable_so_ieee80211_skb_resize_fndecl_39216 ieee80211_skb_resize fndecl 3 39216 NULL
159507 +enable_so_num_gpu_pages_amdgpu_gart_39218 num_gpu_pages amdgpu_gart 0 39218 NULL
159508 +enable_so_lpfc_bg_setup_bpl_prot_fndecl_39221 lpfc_bg_setup_bpl_prot fndecl 0 39221 NULL
159509 +enable_so_seq_buf_to_user_fndecl_39222 seq_buf_to_user fndecl 3 39222 NULL
159510 +enable_so_max_reqs_kioctx_39227 max_reqs kioctx 0 39227 NULL
159511 +enable_so_afs_extract_data_fndecl_39238 afs_extract_data fndecl 5 39238 NULL
159512 +enable_so_sel_start_vardecl_selection_c_39245 sel_start vardecl_selection.c 0 39245 NULL
159513 +enable_so_remote_mps_l2cap_chan_39250 remote_mps l2cap_chan 0 39250 NULL nohasharray
159514 +enable_so_mon_buff_area_fill_fndecl_39250 mon_buff_area_fill fndecl 3 39250 &enable_so_remote_mps_l2cap_chan_39250
159515 +enable_so_sg_kmalloc_fndecl_39251 sg_kmalloc fndecl 1 39251 NULL
159516 +enable_so_btrfs_issue_discard_fndecl_39257 btrfs_issue_discard fndecl 2-3 39257 NULL
159517 +enable_so___iommu_alloc_buffer_fndecl_39259 __iommu_alloc_buffer fndecl 2 39259 NULL
159518 +enable_so_data_offset_napi_gro_cb_39263 data_offset napi_gro_cb 0 39263 NULL
159519 +enable_so_soc_codec_reg_show_fndecl_39277 soc_codec_reg_show fndecl 0-3 39277 NULL
159520 +enable_so_idata_dma_usb_xpad_39278 idata_dma usb_xpad 0 39278 NULL
159521 +enable_so_size_tomoyo_condition_39281 size tomoyo_condition 0 39281 NULL
159522 +enable_so_find_parent_nodes_fndecl_39282 find_parent_nodes fndecl 3 39282 NULL
159523 +enable_so_ant_type_iwl_scale_tbl_info_39287 ant_type iwl_scale_tbl_info 0 39287 NULL
159524 +enable_so_bi_sector_bvec_merge_data_39289 bi_sector bvec_merge_data 0 39289 NULL
159525 +enable_so_rxrpc_setsockopt_fndecl_39293 rxrpc_setsockopt fndecl 5 39293 NULL
159526 +enable_so_page_size_msb_data_39297 page_size msb_data 0 39297 NULL nohasharray
159527 +enable_so_encoding_p_compressed_bm_39297 encoding p_compressed_bm 0 39297 &enable_so_page_size_msb_data_39297 nohasharray
159528 +enable_so_max_vfi_lpfc_max_cfg_param_39297 max_vfi lpfc_max_cfg_param 0 39297 &enable_so_encoding_p_compressed_bm_39297
159529 +enable_so_sel_make_perm_files_fndecl_39298 sel_make_perm_files fndecl 2 39298 NULL
159530 +enable_so_do_launder_page_fndecl_39306 do_launder_page fndecl 0 39306 NULL
159531 +enable_so_lpfc_idiag_pcicfg_read_fndecl_39309 lpfc_idiag_pcicfg_read fndecl 3 39309 NULL
159532 +enable_so_SYSC_flistxattr_fndecl_39312 SYSC_flistxattr fndecl 3 39312 NULL
159533 +enable_so_e820_end_of_ram_pfn_fndecl_39315 e820_end_of_ram_pfn fndecl 0 39315 NULL nohasharray
159534 +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
159535 +enable_so_SYSC_sched_setaffinity_fndecl_39317 SYSC_sched_setaffinity fndecl 2 39317 NULL
159536 +enable_so_len_buflist_39320 len buflist 0 39320 NULL
159537 +enable_so_depth_tw68_format_39322 depth tw68_format 0 39322 NULL
159538 +enable_so_soc_camera_read_fndecl_39324 soc_camera_read fndecl 3 39324 NULL nohasharray
159539 +enable_so_rx_dataoffset_brcmf_msgbuf_39324 rx_dataoffset brcmf_msgbuf 0 39324 &enable_so_soc_camera_read_fndecl_39324
159540 +enable_so_size_bts_action_39331 size bts_action 0 39331 NULL
159541 +enable_so_page_jfs_log_39335 page jfs_log 0 39335 NULL nohasharray
159542 +enable_so_isdn_ppp_read_fndecl_39335 isdn_ppp_read fndecl 4 39335 &enable_so_page_jfs_log_39335
159543 +enable_so_nilfs_sufile_segment_usages_in_block_fndecl_39336 nilfs_sufile_segment_usages_in_block fndecl 0-2-3 39336 NULL
159544 +enable_so_tx_pipe_brcmf_usbdev_info_39337 tx_pipe brcmf_usbdev_info 0 39337 NULL nohasharray
159545 +enable_so_num_channels_hw_mode_spec_39337 num_channels hw_mode_spec 0 39337 &enable_so_tx_pipe_brcmf_usbdev_info_39337 nohasharray
159546 +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
159547 +enable_so_nvkm_mm_head_fndecl_39339 nvkm_mm_head fndecl 6-4-3 39339 NULL nohasharray
159548 +enable_so_musb_softconnect_write_fndecl_39339 musb_softconnect_write fndecl 3 39339 &enable_so_nvkm_mm_head_fndecl_39339
159549 +enable_so_setbrightness_fndecl_39342 setbrightness fndecl 0 39342 NULL
159550 +enable_so_nhead_offs_ubifs_info_39346 nhead_offs ubifs_info 0 39346 NULL
159551 +enable_so_root_offs_ubifs_mst_node_39347 root_offs ubifs_mst_node 0 39347 NULL
159552 +enable_so_ksm_might_need_to_copy_fndecl_39350 ksm_might_need_to_copy fndecl 3 39350 NULL
159553 +enable_so_efs_validate_vh_fndecl_39352 efs_validate_vh fndecl 0 39352 NULL
159554 +enable_so_nsize_jffs2_sum_dirent_mem_39355 nsize jffs2_sum_dirent_mem 0 39355 NULL nohasharray
159555 +enable_so_tpm_read_fndecl_39355 tpm_read fndecl 3 39355 &enable_so_nsize_jffs2_sum_dirent_mem_39355
159556 +enable_so_hub_status_data_hc_driver_39357 hub_status_data hc_driver 0 39357 NULL nohasharray
159557 +enable_so_rbd_obj_request_create_fndecl_39357 rbd_obj_request_create fndecl 2-3 39357 &enable_so_hub_status_data_hc_driver_39357
159558 +enable_so_tx_ndp_modulus_cdc_ncm_ctx_39369 tx_ndp_modulus cdc_ncm_ctx 0 39369 NULL
159559 +enable_so_nftl_read_oob_fndecl_39370 nftl_read_oob fndecl 2-3 39370 NULL
159560 +enable_so_num_frames_camera_data_39372 num_frames camera_data 0 39372 NULL
159561 +enable_so_length_btrfs_ioctl_same_args_39374 length btrfs_ioctl_same_args 0 39374 NULL
159562 +enable_so_roccat_common2_receive_fndecl_39378 roccat_common2_receive fndecl 4 39378 NULL
159563 +enable_so_vsi_fshino_vxfs_sb_info_39379 vsi_fshino vxfs_sb_info 0 39379 NULL
159564 +enable_so_height_v4l2_mbus_framefmt_39383 height v4l2_mbus_framefmt 0 39383 NULL
159565 +enable_so_from_offset_text_match_39384 from_offset text_match 0 39384 NULL nohasharray
159566 +enable_so_tx_count_ethtool_channels_39384 tx_count ethtool_channels 0 39384 &enable_so_from_offset_text_match_39384
159567 +enable_so_lfb_depth_screen_info_39385 lfb_depth screen_info 0 39385 NULL
159568 +enable_so_read16_ssb_bus_ops_39388 read16 ssb_bus_ops 0 39388 NULL
159569 +enable_so_sl_alloc_bufs_fndecl_39391 sl_alloc_bufs fndecl 2 39391 NULL
159570 +enable_so___page_set_anon_rmap_fndecl_39401 __page_set_anon_rmap fndecl 3 39401 NULL
159571 +enable_so_stv0900_get_bits_fndecl_39402 stv0900_get_bits fndecl 0 39402 NULL nohasharray
159572 +enable_so_iscsi_create_conn_fndecl_39402 iscsi_create_conn fndecl 2 39402 &enable_so_stv0900_get_bits_fndecl_39402
159573 +enable_so_ipath_skip_sge_fndecl_39407 ipath_skip_sge fndecl 2 39407 NULL
159574 +enable_so_userptr_radeon_ttm_tt_39408 userptr radeon_ttm_tt 0 39408 NULL
159575 +enable_so_total_vfs_fm10k_iov_info_39412 total_vfs fm10k_iov_info 0 39412 NULL
159576 +enable_so_payld_len_htc_frame_hdr_39418 payld_len htc_frame_hdr 0 39418 NULL
159577 +enable_so_vramsize_sisusb_usb_data_39419 vramsize sisusb_usb_data 0 39419 NULL
159578 +enable_so_board_sample_rate_lx6464es_39420 board_sample_rate lx6464es 0 39420 NULL nohasharray
159579 +enable_so_stretch_height_usb_usbvision_39420 stretch_height usb_usbvision 0 39420 &enable_so_board_sample_rate_lx6464es_39420
159580 +enable_so_read_eeprom_fndecl_39423 read_eeprom fndecl 4 39423 NULL
159581 +enable_so_cros_ec_spi_receive_response_fndecl_39426 cros_ec_spi_receive_response fndecl 2 39426 NULL nohasharray
159582 +enable_so_initial_rate_iwl_mvm_tx_resp_39426 initial_rate iwl_mvm_tx_resp 0 39426 &enable_so_cros_ec_spi_receive_response_fndecl_39426
159583 +enable_so_nftl_writeblock_fndecl_39428 nftl_writeblock fndecl 2 39428 NULL
159584 +enable_so_jpeg_len_solo_enc_dev_39431 jpeg_len solo_enc_dev 0 39431 NULL
159585 +enable_so_btrfs_del_csums_fndecl_39434 btrfs_del_csums fndecl 3-4 39434 NULL
159586 +enable_so_ring_size__drm_i810_init_39437 ring_size _drm_i810_init 0 39437 NULL nohasharray
159587 +enable_so_iov_len_iovec_39437 iov_len iovec 0 39437 &enable_so_ring_size__drm_i810_init_39437
159588 +enable_so_show_device_status_fndecl_39440 show_device_status fndecl 0 39440 NULL
159589 +enable_so_virtio_cread16_fndecl_39444 virtio_cread16 fndecl 0 39444 NULL
159590 +enable_so_tp_la_write_fndecl_39445 tp_la_write fndecl 3 39445 NULL
159591 +enable_so_sdio_uart_write_fndecl_39449 sdio_uart_write fndecl 3 39449 NULL
159592 +enable_so_zl10036_write_fndecl_39451 zl10036_write fndecl 3 39451 NULL nohasharray
159593 +enable_so_ocfs2_add_refcount_flag_fndecl_39451 ocfs2_add_refcount_flag fndecl 6-7-5 39451 &enable_so_zl10036_write_fndecl_39451
159594 +enable_so_SyS_setxattr_fndecl_39454 SyS_setxattr fndecl 4 39454 NULL
159595 +enable_so_recovery_cp_mddev_39459 recovery_cp mddev 0 39459 NULL
159596 +enable_so_security_load_policy_fndecl_39462 security_load_policy fndecl 2 39462 NULL
159597 +enable_so_proc_write_fndecl_39464 proc_write fndecl 3 39464 NULL
159598 +enable_so_LMC_PKT_BUF_SZ_vardecl_lmc_main_c_39465 LMC_PKT_BUF_SZ vardecl_lmc_main.c 0 39465 NULL
159599 +enable_so_num_buffers_vardecl_cpia2_v4l_c_39466 num_buffers vardecl_cpia2_v4l.c 0 39466 NULL
159600 +enable_so_max_count_octeon_droq_39475 max_count octeon_droq 0 39475 NULL
159601 +enable_so_iwl_statistics_flag_fndecl_39478 iwl_statistics_flag fndecl 0 39478 NULL
159602 +enable_so_qib_verbs_send_pio_fndecl_39482 qib_verbs_send_pio fndecl 5 39482 NULL
159603 +enable_so_address_length_acpi_resource_fixed_memory32_39483 address_length acpi_resource_fixed_memory32 0 39483 NULL
159604 +enable_so_iov_iter_bvec_fndecl_39493 iov_iter_bvec fndecl 5-4 39493 NULL
159605 +enable_so_fuse_conn_congestion_threshold_read_fndecl_39495 fuse_conn_congestion_threshold_read fndecl 3 39495 NULL
159606 +enable_so_pktdev_major_vardecl_pktcdvd_c_39506 pktdev_major vardecl_pktcdvd.c 0 39506 NULL
159607 +enable_so_rds_iw_sysctl_max_recv_wr_vardecl_39508 rds_iw_sysctl_max_recv_wr vardecl 0 39508 NULL
159608 +enable_so_ppp_read_fndecl_39514 ppp_read fndecl 3 39514 NULL
159609 +enable_so_lbs_dev_info_fndecl_39516 lbs_dev_info fndecl 3 39516 NULL
159610 +enable_so_txsize_grcan_device_config_39527 txsize grcan_device_config 0 39527 NULL nohasharray
159611 +enable_so_len_batadv_tvlv_hdr_39527 len batadv_tvlv_hdr 0 39527 &enable_so_txsize_grcan_device_config_39527
159612 +enable_so_rsc_mgr_init_fndecl_39528 rsc_mgr_init fndecl 3 39528 NULL
159613 +enable_so_wusb_prf_64_fndecl_39530 wusb_prf_64 fndecl 7 39530 NULL
159614 +enable_so_num_queues_bnx2x_39531 num_queues bnx2x 0 39531 NULL
159615 +enable_so_reply_len_bsg_job_39533 reply_len bsg_job 0 39533 NULL
159616 +enable_so_hugepage_add_new_anon_rmap_fndecl_39534 hugepage_add_new_anon_rmap fndecl 3 39534 NULL
159617 +enable_so_srpt_alloc_ioctx_fndecl_39537 srpt_alloc_ioctx fndecl 2-3 39537 NULL
159618 +enable_so_elem_size_v4l2_ctrl_39540 elem_size v4l2_ctrl 0 39540 NULL
159619 +enable_so_do_arpt_set_ctl_fndecl_39550 do_arpt_set_ctl fndecl 4 39550 NULL
159620 +enable_so_kaweth_internal_control_msg_fndecl_39552 kaweth_internal_control_msg fndecl 5-2 39552 NULL nohasharray
159621 +enable_so_do_trim_fndecl_39552 do_trim fndecl 4-2-5-3 39552 &enable_so_kaweth_internal_control_msg_fndecl_39552
159622 +enable_so_from_fw_map_39555 from fw_map 0 39555 NULL nohasharray
159623 +enable_so_jbd2_journal_init_revoke_fndecl_39555 jbd2_journal_init_revoke fndecl 2 39555 &enable_so_from_fw_map_39555
159624 +enable_so_l2specific_len_l2tp_session_39558 l2specific_len l2tp_session 0 39558 NULL
159625 +enable_so_build_backref_tree_fndecl_39561 build_backref_tree fndecl 4 39561 NULL nohasharray
159626 +enable_so_ci_flags_ext4_crypt_info_39561 ci_flags ext4_crypt_info 0 39561 &enable_so_build_backref_tree_fndecl_39561
159627 +enable_so___ocfs2_find_path_fndecl_39563 __ocfs2_find_path fndecl 0 39563 NULL
159628 +enable_so_disk_size_disk_conf_39567 disk_size disk_conf 0 39567 NULL
159629 +enable_so_plcp_mimo3_iwl_rate_info_39569 plcp_mimo3 iwl_rate_info 0 39569 NULL
159630 +enable_so_sys32_pwrite_fndecl_39572 sys32_pwrite fndecl 3 39572 NULL
159631 +enable_so_group_ext3_new_group_data_39573 group ext3_new_group_data 0 39573 NULL
159632 +enable_so_oh_len_omninet_header_39576 oh_len omninet_header 0 39576 NULL
159633 +enable_so_nfs4_file_llseek_fndecl_39578 nfs4_file_llseek fndecl 2 39578 NULL
159634 +enable_so_snbep_pci2phy_map_init_fndecl_39582 snbep_pci2phy_map_init fndecl 1 39582 NULL
159635 +enable_so_len_ubifs_scan_node_39584 len ubifs_scan_node 0 39584 NULL
159636 +enable_so_iunique_fndecl_39586 iunique fndecl 0-2 39586 NULL
159637 +enable_so_req_que_len_qla_hw_data_39587 req_que_len qla_hw_data 0 39587 NULL
159638 +enable_so_buf_size_fm_rds_39590 buf_size fm_rds 0 39590 NULL
159639 +enable_so_rq_bytes_sent_rpc_rqst_39591 rq_bytes_sent rpc_rqst 0 39591 NULL
159640 +enable_so_count_snd_ctl_elem_info_39594 count snd_ctl_elem_info 0 39594 NULL
159641 +enable_so_amanda_help_fndecl_39598 amanda_help fndecl 2 39598 NULL
159642 +enable_so_dm_consult_userspace_fndecl_39601 dm_consult_userspace fndecl 5 39601 NULL
159643 +enable_so_ti_recv_fndecl_39605 ti_recv fndecl 3 39605 NULL nohasharray
159644 +enable_so_midi_ports_snd_emux_39605 midi_ports snd_emux 0 39605 &enable_so_ti_recv_fndecl_39605
159645 +enable_so_double_length_smbios_cru64_info_39607 double_length smbios_cru64_info 0 39607 NULL nohasharray
159646 +enable_so_e1000e_hwtstamp_set_fndecl_39607 e1000e_hwtstamp_set fndecl 0 39607 &enable_so_double_length_smbios_cru64_info_39607
159647 +enable_so_of_clk_get_parent_count_fndecl_39609 of_clk_get_parent_count fndecl 0 39609 NULL
159648 +enable_so_iscsi_nop_out_rsp_fndecl_39614 iscsi_nop_out_rsp fndecl 4 39614 NULL
159649 +enable_so_rx_buffer_order_efx_nic_39620 rx_buffer_order efx_nic 0 39620 NULL
159650 +enable_so_cookie_len_l2tp_session_39629 cookie_len l2tp_session 0 39629 NULL
159651 +enable_so_max_cq_sz_mthca_dev_lim_39630 max_cq_sz mthca_dev_lim 0 39630 NULL
159652 +enable_so_fb_phys_ocfb_dev_39632 fb_phys ocfb_dev 0 39632 NULL
159653 +enable_so_xfs_bmbt_lookup_ge_fndecl_39633 xfs_bmbt_lookup_ge fndecl 3-4-2 39633 NULL
159654 +enable_so_saa7134_alsa_dma_init_fndecl_39636 saa7134_alsa_dma_init fndecl 2 39636 NULL
159655 +enable_so_simple_xattr_set_fndecl_39639 simple_xattr_set fndecl 4 39639 NULL
159656 +enable_so_compat_sys_pwritev64_fndecl_39644 compat_sys_pwritev64 fndecl 3 39644 NULL
159657 +enable_so_setup_arg_pages_fndecl_39645 setup_arg_pages fndecl 2 39645 NULL nohasharray
159658 +enable_so_ext3_bg_num_gdb_meta_fndecl_39645 ext3_bg_num_gdb_meta fndecl 0 39645 &enable_so_setup_arg_pages_fndecl_39645
159659 +enable_so_xfs_trans_get_efd_fndecl_39647 xfs_trans_get_efd fndecl 3 39647 NULL
159660 +enable_so_tx_len_hw_modul_39649 tx_len hw_modul 0 39649 NULL
159661 +enable_so_v9fs_listxattr_fndecl_39654 v9fs_listxattr fndecl 3 39654 NULL
159662 +enable_so_skb_copy_datagram_iter_fndecl_39662 skb_copy_datagram_iter fndecl 4-2-0 39662 NULL
159663 +enable_so_viafb_get_fb_size_from_pci_fndecl_39663 viafb_get_fb_size_from_pci fndecl 0 39663 NULL
159664 +enable_so_emulate_ts_fndecl_39665 emulate_ts fndecl 2 39665 NULL nohasharray
159665 +enable_so_mq_bytes_user_struct_39665 mq_bytes user_struct 0 39665 &enable_so_emulate_ts_fndecl_39665
159666 +enable_so_snd_rawmidi_transmit_peek_fndecl_39668 snd_rawmidi_transmit_peek fndecl 0-3 39668 NULL
159667 +enable_so_der_length_size_fndecl_39673 der_length_size fndecl 0 39673 NULL
159668 +enable_so_sectorsize_btrfs_super_block_39674 sectorsize btrfs_super_block 0 39674 NULL
159669 +enable_so_rdma_read_chunk_frmr_fndecl_39676 rdma_read_chunk_frmr fndecl 7 39676 NULL
159670 +enable_so_num_q_vectors_fm10k_intfc_39681 num_q_vectors fm10k_intfc 0 39681 NULL nohasharray
159671 +enable_so_dev_mem_read_fndecl_39681 dev_mem_read fndecl 3 39681 &enable_so_num_q_vectors_fm10k_intfc_39681
159672 +enable_so_fd_block_size_fd_dev_39692 fd_block_size fd_dev 0 39692 NULL nohasharray
159673 +enable_so_priv_size_Qdisc_ops_39692 priv_size Qdisc_ops 0 39692 &enable_so_fd_block_size_fd_dev_39692
159674 +enable_so_nb_ace_cci_nb_ports_39699 nb_ace cci_nb_ports 0 39699 NULL
159675 +enable_so_badblockpos_nand_chip_39700 badblockpos nand_chip 0 39700 NULL
159676 +enable_so_at24_macc_write_fndecl_39705 at24_macc_write fndecl 4-3 39705 NULL
159677 +enable_so_xfs_growfs_get_hdr_buf_fndecl_39706 xfs_growfs_get_hdr_buf fndecl 3-2 39706 NULL
159678 +enable_so_blk_check_plugged_fndecl_39715 blk_check_plugged fndecl 3 39715 NULL
159679 +enable_so_e1000_change_mtu_fndecl_39722 e1000_change_mtu fndecl 2 39722 NULL
159680 +enable_so___ext3_get_inode_loc_fndecl_39723 __ext3_get_inode_loc fndecl 0 39723 NULL
159681 +enable_so_pglen_pnfs_device_39724 pglen pnfs_device 0 39724 NULL
159682 +enable_so_epool_init_fndecl_39728 epool_init fndecl 2 39728 NULL
159683 +enable_so_max_wrs_iwch_rnic_attributes_39735 max_wrs iwch_rnic_attributes 0 39735 NULL
159684 +enable_so___hostap_add_bss_fndecl_39739 __hostap_add_bss fndecl 4 39739 NULL
159685 +enable_so__ubh_bread__fndecl_39744 _ubh_bread_ fndecl 3 39744 NULL
159686 +enable_so_pipe_handler_request_fndecl_39749 pipe_handler_request fndecl 5 39749 NULL nohasharray
159687 +enable_so_tm6000_read_write_usb_fndecl_39749 tm6000_read_write_usb fndecl 7 39749 &enable_so_pipe_handler_request_fndecl_39749
159688 +enable_so_ocfs2_xattr_block_get_fndecl_39750 ocfs2_xattr_block_get fndecl 0 39750 NULL nohasharray
159689 +enable_so_devpts_new_index_fndecl_39750 devpts_new_index fndecl 0 39750 &enable_so_ocfs2_xattr_block_get_fndecl_39750 nohasharray
159690 +enable_so_total_blocks_hfsplus_sb_info_39750 total_blocks hfsplus_sb_info 0 39750 &enable_so_devpts_new_index_fndecl_39750
159691 +enable_so_drm_gtf2_2j_fndecl_39751 drm_gtf2_2j fndecl 0 39751 NULL
159692 +enable_so_am_length_xfs_attr_multiop_39754 am_length xfs_attr_multiop 0 39754 NULL
159693 +enable_so_delta_disks_mddev_39759 delta_disks mddev 0 39759 NULL
159694 +enable_so_map_swap_page_fndecl_39768 map_swap_page fndecl 0 39768 NULL
159695 +enable_so_write_flush_fndecl_39776 write_flush fndecl 3 39776 NULL
159696 +enable_so_add_range_with_merge_fndecl_39778 add_range_with_merge fndecl 5-4 39778 NULL
159697 +enable_so___collapse_huge_page_isolate_fndecl_39784 __collapse_huge_page_isolate fndecl 2 39784 NULL
159698 +enable_so_dvb_play_fndecl_39789 dvb_play fndecl 3 39789 NULL
159699 +enable_so_buf_rte_log_le_39791 buf rte_log_le 0 39791 NULL
159700 +enable_so_digital_dep_link_up_fndecl_39793 digital_dep_link_up fndecl 5 39793 NULL
159701 +enable_so_den_max_snd_ratnum_39802 den_max snd_ratnum 0 39802 NULL
159702 +enable_so_root_ino_num_f2fs_sb_info_39805 root_ino_num f2fs_sb_info 0 39805 NULL nohasharray
159703 +enable_so_tpm_write_fndecl_39805 tpm_write fndecl 3 39805 &enable_so_root_ino_num_f2fs_sb_info_39805
159704 +enable_so_meta_dev_idx_disk_conf_39810 meta_dev_idx disk_conf 0 39810 NULL
159705 +enable_so_videobuf_dma_init_user_fndecl_39812 videobuf_dma_init_user fndecl 4-3 39812 NULL
159706 +enable_so_nft_trans_alloc_fndecl_39815 nft_trans_alloc fndecl 3 39815 NULL
159707 +enable_so_btrfs_search_slot_for_read_fndecl_39816 btrfs_search_slot_for_read fndecl 0 39816 NULL
159708 +enable_so_jffs2_link_node_ref_fndecl_39817 jffs2_link_node_ref fndecl 3-4 39817 NULL nohasharray
159709 +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
159710 +enable_so_pan_y_yuv_frame_info_39830 pan_y yuv_frame_info 0 39830 NULL
159711 +enable_so_dpcm_show_state_fndecl_39832 dpcm_show_state fndecl 0 39832 NULL nohasharray
159712 +enable_so_init_rx_ring_fndecl_39832 init_rx_ring fndecl 4 39832 &enable_so_dpcm_show_state_fndecl_39832
159713 +enable_so_sb_inopblock_xfs_sb_39837 sb_inopblock xfs_sb 0 39837 NULL nohasharray
159714 +enable_so_io_vardecl_arc_rimi_c_39837 io vardecl_arc-rimi.c 0 39837 &enable_so_sb_inopblock_xfs_sb_39837 nohasharray
159715 +enable_so_pci_scan_root_bus_fndecl_39837 pci_scan_root_bus fndecl 2 39837 &enable_so_io_vardecl_arc_rimi_c_39837
159716 +enable_so__offset_iwl_rx_cmd_buffer_39841 _offset iwl_rx_cmd_buffer 0 39841 NULL nohasharray
159717 +enable_so_maxattr_genl_family_39841 maxattr genl_family 0 39841 &enable_so__offset_iwl_rx_cmd_buffer_39841
159718 +enable_so_ref_div_factor_adf4350_platform_data_39844 ref_div_factor adf4350_platform_data 0 39844 NULL
159719 +enable_so_digi_write_inb_command_fndecl_39846 digi_write_inb_command fndecl 3 39846 NULL
159720 +enable_so_height_cx25821_channel_39847 height cx25821_channel 0 39847 NULL
159721 +enable_so_xres_panel_info_39849 xres panel_info 0 39849 NULL
159722 +enable_so_imtu_l2cap_chan_39857 imtu l2cap_chan 0 39857 NULL nohasharray
159723 +enable_so_ipath_restart_rc_fndecl_39857 ipath_restart_rc fndecl 2 39857 &enable_so_imtu_l2cap_chan_39857
159724 +enable_so_usb_stor_reset_common_fndecl_39866 usb_stor_reset_common fndecl 7 39866 NULL nohasharray
159725 +enable_so_carl9170_debugfs_write_fndecl_39866 carl9170_debugfs_write fndecl 3 39866 &enable_so_usb_stor_reset_common_fndecl_39866
159726 +enable_so_self_check_write_fndecl_39867 self_check_write fndecl 5 39867 NULL
159727 +enable_so___bdev_writeseg_fndecl_39876 __bdev_writeseg fndecl 2-4 39876 NULL
159728 +enable_so_do_shrink_slab_fndecl_39881 do_shrink_slab fndecl 4-3 39881 NULL
159729 +enable_so_resync_offset_mdp_superblock_1_39883 resync_offset mdp_superblock_1 0 39883 NULL
159730 +enable_so_xfs_iext_remove_fndecl_39886 xfs_iext_remove fndecl 3 39886 NULL
159731 +enable_so_osd_req_write_sg_fndecl_39887 osd_req_write_sg fndecl 5 39887 NULL nohasharray
159732 +enable_so_nvkm_mm_init_fndecl_39887 nvkm_mm_init fndecl 4-2-3 39887 &enable_so_osd_req_write_sg_fndecl_39887
159733 +enable_so_len_cache_request_39888 len cache_request 0 39888 NULL
159734 +enable_so_video_base_sis_video_info_39896 video_base sis_video_info 0 39896 NULL
159735 +enable_so_SyS_lgetxattr_fndecl_39898 SyS_lgetxattr fndecl 4 39898 NULL
159736 +enable_so_s_inodes_per_group_ext4_sb_info_39910 s_inodes_per_group ext4_sb_info 0 39910 NULL
159737 +enable_so_spi_map_buf_fndecl_39919 spi_map_buf fndecl 0-5 39919 NULL
159738 +enable_so_i_eoffset_bfs_inode_39921 i_eoffset bfs_inode 0 39921 NULL
159739 +enable_so_s_gdb_count_ext3_sb_info_39932 s_gdb_count ext3_sb_info 0 39932 NULL
159740 +enable_so_max_mp_regs_mwifiex_sdio_card_reg_39936 max_mp_regs mwifiex_sdio_card_reg 0 39936 NULL
159741 +enable_so_height_font_desc_39938 height font_desc 0 39938 NULL nohasharray
159742 +enable_so_btrfs_i_size_write_fndecl_39938 btrfs_i_size_write fndecl 2 39938 &enable_so_height_font_desc_39938
159743 +enable_so_row_shift_omap4_keypad_39944 row_shift omap4_keypad 0 39944 NULL
159744 +enable_so_find_ts_ops_39950 find ts_ops 0 39950 NULL
159745 +enable_so_inode2sd_v1_fndecl_39954 inode2sd_v1 fndecl 3 39954 NULL
159746 +enable_so_s_next_psn_ipath_qp_39960 s_next_psn ipath_qp 0 39960 NULL
159747 +enable_so___hfsplus_getxattr_fndecl_39975 __hfsplus_getxattr fndecl 0 39975 NULL nohasharray
159748 +enable_so_msg_length_pcnet32_rx_head_39975 msg_length pcnet32_rx_head 0 39975 &enable_so___hfsplus_getxattr_fndecl_39975 nohasharray
159749 +enable_so_cn_size_x509_parse_context_39975 cn_size x509_parse_context 0 39975 &enable_so_msg_length_pcnet32_rx_head_39975
159750 +enable_so_readbuf_size_tomoyo_io_buffer_39976 readbuf_size tomoyo_io_buffer 0 39976 NULL
159751 +enable_so_agp_3_5_isochronous_node_enable_fndecl_39978 agp_3_5_isochronous_node_enable fndecl 3 39978 NULL
159752 +enable_so_btrfs_pin_extent_fndecl_39983 btrfs_pin_extent fndecl 3-2 39983 NULL
159753 +enable_so_compat_do_msg_fill_fndecl_39987 compat_do_msg_fill fndecl 3 39987 NULL
159754 +enable_so_spi_tcnt_fsl_dspi_39994 spi_tcnt fsl_dspi 0 39994 NULL
159755 +enable_so_playback_bufsize_vardecl_nm256_c_39995 playback_bufsize vardecl_nm256.c 0 39995 NULL
159756 +enable_so_pitch_drm_radeon_texture_39996 pitch drm_radeon_texture 0 39996 NULL nohasharray
159757 +enable_so_size_fm10k_l2_accel_39996 size fm10k_l2_accel 0 39996 &enable_so_pitch_drm_radeon_texture_39996
159758 +enable_so_start_sram_reserve_39999 start sram_reserve 0 39999 NULL
159759 +enable_so_isr_decrypt_done_read_fndecl_40001 isr_decrypt_done_read fndecl 3 40001 NULL
159760 +enable_so_r820t_read_fndecl_40007 r820t_read fndecl 4 40007 NULL
159761 +enable_so_memblock_isolate_range_fndecl_40008 memblock_isolate_range fndecl 3-2 40008 NULL
159762 +enable_so_dch_empty_fifo_fndecl_40013 dch_empty_fifo fndecl 2 40013 NULL
159763 +enable_so_ieee80211_ie_split_fndecl_40017 ieee80211_ie_split fndecl 5-0 40017 NULL
159764 +enable_so_zlib_compress_pages_fndecl_40018 zlib_compress_pages fndecl 4 40018 NULL
159765 +enable_so_xfs_iformat_local_fndecl_40019 xfs_iformat_local fndecl 4 40019 NULL
159766 +enable_so_verify_alg_len_net_conf_40020 verify_alg_len net_conf 0 40020 NULL
159767 +enable_so_vmw_mob_calculate_pt_pages_fndecl_40022 vmw_mob_calculate_pt_pages fndecl 0-1 40022 NULL
159768 +enable_so_esp4_get_mtu_fndecl_40024 esp4_get_mtu fndecl 0-2 40024 NULL nohasharray
159769 +enable_so_tipc_bclink_get_mtu_fndecl_40024 tipc_bclink_get_mtu fndecl 0 40024 &enable_so_esp4_get_mtu_fndecl_40024
159770 +enable_so_emulator_write_phys_fndecl_40035 emulator_write_phys fndecl 2-4 40035 NULL
159771 +enable_so_lpfc_debugfs_nodelist_data_fndecl_40039 lpfc_debugfs_nodelist_data fndecl 0 40039 NULL
159772 +enable_so_pos_splice_desc_40040 pos splice_desc 0 40040 NULL
159773 +enable_so_memdiff_vardecl_tridentfb_c_40043 memdiff vardecl_tridentfb.c 0 40043 NULL nohasharray
159774 +enable_so_read_partial_fndecl_40043 read_partial fndecl 2 40043 &enable_so_memdiff_vardecl_tridentfb_c_40043
159775 +enable_so_add_nested_action_start_fndecl_40044 add_nested_action_start fndecl 0 40044 NULL
159776 +enable_so_last_used_idx_vhost_virtqueue_40059 last_used_idx vhost_virtqueue 0 40059 NULL
159777 +enable_so_SyS_listxattr_fndecl_40060 SyS_listxattr fndecl 3 40060 NULL
159778 +enable_so_smp_execute_task_fndecl_40062 smp_execute_task fndecl 3-5-0 40062 NULL nohasharray
159779 +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
159780 +enable_so_region_size_switch_ctx_40069 region_size switch_ctx 0 40069 NULL
159781 +enable_so_max_pq_dma_device_40070 max_pq dma_device 0 40070 NULL
159782 +enable_so_smk_write_access_fndecl_40074 smk_write_access fndecl 3 40074 NULL nohasharray
159783 +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
159784 +enable_so_tda18271_write_regs_fndecl_40082 tda18271_write_regs fndecl 3 40082 NULL
159785 +enable_so_num_parents_clk_core_40091 num_parents clk_core 0 40091 NULL
159786 +enable_so_wIELength_uwb_rc_cmd_set_ie_40094 wIELength uwb_rc_cmd_set_ie 0 40094 NULL nohasharray
159787 +enable_so_rx_buf_use_size_bnx2_40094 rx_buf_use_size bnx2 0 40094 &enable_so_wIELength_uwb_rc_cmd_set_ie_40094
159788 +enable_so_zap_page_range_fndecl_40097 zap_page_range fndecl 3-2 40097 NULL
159789 +enable_so_vma_needs_reservation_fndecl_40101 vma_needs_reservation fndecl 3 40101 NULL
159790 +enable_so_num_ibs_amdgpu_cs_parser_40104 num_ibs amdgpu_cs_parser 0 40104 NULL
159791 +enable_so_lh_blkno_gfs2_log_header_host_40105 lh_blkno gfs2_log_header_host 0 40105 NULL nohasharray
159792 +enable_so_evm_inode_setattr_fndecl_40105 evm_inode_setattr fndecl 0 40105 &enable_so_lh_blkno_gfs2_log_header_host_40105
159793 +enable_so_frag_rx_path_fndecl_40106 frag_rx_path fndecl 3 40106 NULL nohasharray
159794 +enable_so_u_dsize_user32_40106 u_dsize user32 0 40106 &enable_so_frag_rx_path_fndecl_40106 nohasharray
159795 +enable_so_allocation_floor_vardecl_dell_rbu_c_40106 allocation_floor vardecl_dell_rbu.c 0 40106 &enable_so_u_dsize_user32_40106
159796 +enable_so_r8a66597_urb_dequeue_fndecl_40110 r8a66597_urb_dequeue fndecl 3 40110 NULL
159797 +enable_so_alloc_chunk_fndecl_40116 alloc_chunk fndecl 1 40116 NULL nohasharray
159798 +enable_so_drv_data_size_rt2x00_ops_40116 drv_data_size rt2x00_ops 0 40116 &enable_so_alloc_chunk_fndecl_40116
159799 +enable_so_byte_count_vardecl_initramfs_c_40121 byte_count vardecl_initramfs.c 0 40121 NULL nohasharray
159800 +enable_so_sd_pkt_scan_fndecl_40121 sd_pkt_scan fndecl 3 40121 &enable_so_byte_count_vardecl_initramfs_c_40121 nohasharray
159801 +enable_so_sctp_setsockopt_default_send_param_fndecl_40121 sctp_setsockopt_default_send_param fndecl 3 40121 &enable_so_sd_pkt_scan_fndecl_40121
159802 +enable_so_fastListenInterval_ConfigRid_40133 fastListenInterval ConfigRid 0 40133 NULL
159803 +enable_so_smk_write_doi_fndecl_40134 smk_write_doi fndecl 3 40134 NULL
159804 +enable_so_mspi_apply_qe_mode_quirks_fndecl_40137 mspi_apply_qe_mode_quirks fndecl 0-3 40137 NULL nohasharray
159805 +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
159806 +enable_so_port_fops_read_fndecl_40137 port_fops_read fndecl 3 40137 &enable_so_num_jumbo_rxd_netxen_adapter_40137
159807 +enable_so_off_fuse_notify_inval_inode_out_40142 off fuse_notify_inval_inode_out 0 40142 NULL
159808 +enable_so_isr_wakeups_read_fndecl_40148 isr_wakeups_read fndecl 3 40148 NULL
159809 +enable_so_i_size_lo_ext4_inode_40153 i_size_lo ext4_inode 0 40153 NULL
159810 +enable_so_ftdi_elan_edset_single_fndecl_40157 ftdi_elan_edset_single fndecl 0 40157 NULL
159811 +enable_so_xfs_ialloc_get_rec_fndecl_40163 xfs_ialloc_get_rec fndecl 2 40163 NULL
159812 +enable_so_at24_bin_read_fndecl_40165 at24_bin_read fndecl 6 40165 NULL nohasharray
159813 +enable_so_cmd_nr_drm_exynos_g2d_set_cmdlist_40165 cmd_nr drm_exynos_g2d_set_cmdlist 0 40165 &enable_so_at24_bin_read_fndecl_40165
159814 +enable_so_pge_ctl_drm_psb_private_40167 pge_ctl drm_psb_private 0 40167 NULL
159815 +enable_so_dev_stripes_btrfs_raid_attr_40170 dev_stripes btrfs_raid_attr 0 40170 NULL
159816 +enable_so_bluecard_write_fndecl_40179 bluecard_write fndecl 0-4 40179 NULL
159817 +enable_so_status_boom_rx_desc_40185 status boom_rx_desc 0 40185 NULL
159818 +enable_so_command_setlights_fndecl_40187 command_setlights fndecl 0 40187 NULL
159819 +enable_so_reshape_progress_r5conf_40192 reshape_progress r5conf 0 40192 NULL
159820 +enable_so_peb_size_ubi_device_40195 peb_size ubi_device 0 40195 NULL
159821 +enable_so_dma_contiguous_reserve_area_fndecl_40196 dma_contiguous_reserve_area fndecl 1-2-3 40196 NULL nohasharray
159822 +enable_so___jfs_setxattr_fndecl_40196 __jfs_setxattr fndecl 5 40196 &enable_so_dma_contiguous_reserve_area_fndecl_40196
159823 +enable_so_vga_video_num_lines_vardecl_vgacon_c_40199 vga_video_num_lines vardecl_vgacon.c 0 40199 NULL
159824 +enable_so_ath6kl_bgscan_int_write_fndecl_40201 ath6kl_bgscan_int_write fndecl 3 40201 NULL
159825 +enable_so_pvr2_ctrl_get_min_fndecl_40204 pvr2_ctrl_get_min fndecl 0 40204 NULL
159826 +enable_so_dvb_dvr_ioctl_fndecl_40205 dvb_dvr_ioctl fndecl 2 40205 NULL
159827 +enable_so_num_amgms_mlx4_caps_40207 num_amgms mlx4_caps 0 40207 NULL
159828 +enable_so_ipwireless_tty_received_fndecl_40209 ipwireless_tty_received fndecl 3 40209 NULL
159829 +enable_so_kbuf_alloc_2_sgl_fndecl_40216 kbuf_alloc_2_sgl fndecl 1 40216 NULL
159830 +enable_so_page_shift_nvkm_mem_40218 page_shift nvkm_mem 0 40218 NULL nohasharray
159831 +enable_so_ipw_queue_tx_init_fndecl_40218 ipw_queue_tx_init fndecl 3 40218 &enable_so_page_shift_nvkm_mem_40218
159832 +enable_so_len_p80211ioctl_req_40220 len p80211ioctl_req 0 40220 NULL
159833 +enable_so_bochs_bo_create_fndecl_40223 bochs_bo_create fndecl 2 40223 NULL
159834 +enable_so_il4965_rs_sta_dbgfs_stats_table_read_fndecl_40229 il4965_rs_sta_dbgfs_stats_table_read fndecl 3 40229 NULL
159835 +enable_so_do_jffs2_getxattr_fndecl_40233 do_jffs2_getxattr fndecl 0 40233 NULL
159836 +enable_so_find_gmch_fndecl_40235 find_gmch fndecl 1 40235 NULL
159837 +enable_so_ndr_size_nd_region_40243 ndr_size nd_region 0 40243 NULL
159838 +enable_so_lola_init_stream_fndecl_40245 lola_init_stream fndecl 3 40245 NULL
159839 +enable_so_default_value_mfc_control_40246 default_value mfc_control 0 40246 NULL
159840 +enable_so_dec_src_buf_size_s5p_mfc_ctx_40247 dec_src_buf_size s5p_mfc_ctx 0 40247 NULL
159841 +enable_so_mmap_file_operations_40250 mmap file_operations 0 40250 NULL nohasharray
159842 +enable_so_layoutupdate_len_nfs4_layoutcommit_args_40250 layoutupdate_len nfs4_layoutcommit_args 0 40250 &enable_so_mmap_file_operations_40250
159843 +enable_so_max_sectors_queue_limits_40252 max_sectors queue_limits 0 40252 NULL nohasharray
159844 +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
159845 +enable_so__iwl_dbgfs_netdetect_write_fndecl_40255 _iwl_dbgfs_netdetect_write fndecl 3 40255 NULL
159846 +enable_so_ucNumOfPowerModeEntries__ATOM_POWERPLAY_INFO_40261 ucNumOfPowerModeEntries _ATOM_POWERPLAY_INFO 0 40261 NULL
159847 +enable_so_stop_discovery_fndecl_40262 stop_discovery fndecl 4 40262 NULL
159848 +enable_so_ino_jffs2_inode_cache_40264 ino jffs2_inode_cache 0 40264 NULL
159849 +enable_so_fill_pg_buf_fndecl_40265 fill_pg_buf fndecl 0 40265 NULL
159850 +enable_so_rs_move_mimo3_to_other_fndecl_40268 rs_move_mimo3_to_other fndecl 5 40268 NULL
159851 +enable_so_es_len_extent_status_40276 es_len extent_status 0 40276 NULL
159852 +enable_so_memcg_nr_cache_ids_vardecl_40280 memcg_nr_cache_ids vardecl 0 40280 NULL
159853 +enable_so_mask___kfifo_40288 mask __kfifo 0 40288 NULL
159854 +enable_so_isku_sysfs_read_keys_media_fndecl_40295 isku_sysfs_read_keys_media fndecl 6 40295 NULL
159855 +enable_so_update_end_of_memory_vars_fndecl_40298 update_end_of_memory_vars fndecl 2-1 40298 NULL
159856 +enable_so_rx_filter_beacon_filter_read_fndecl_40300 rx_filter_beacon_filter_read fndecl 3 40300 NULL
159857 +enable_so_osd_req_add_get_attr_list_fndecl_40301 osd_req_add_get_attr_list fndecl 3 40301 NULL nohasharray
159858 +enable_so_num_engines_dmm_40301 num_engines dmm 0 40301 &enable_so_osd_req_add_get_attr_list_fndecl_40301
159859 +enable_so_cyttsp_spi_xfer_fndecl_40307 cyttsp_spi_xfer fndecl 6 40307 NULL
159860 +enable_so_gfs2_free_meta_fndecl_40312 gfs2_free_meta fndecl 2 40312 NULL
159861 +enable_so_ieee80211_if_read_rssi_threshold_fndecl_40319 ieee80211_if_read_rssi_threshold fndecl 3 40319 NULL
159862 +enable_so_max_scaled_width_bttv_crop_40325 max_scaled_width bttv_crop 0 40325 NULL
159863 +enable_so_uio_read_fndecl_40327 uio_read fndecl 3 40327 NULL
159864 +enable_so_cur_pos_tegra_spi_data_40338 cur_pos tegra_spi_data 0 40338 NULL
159865 +enable_so_dm_rh_get_region_key_fndecl_40342 dm_rh_get_region_key fndecl 0 40342 NULL
159866 +enable_so___ext4_ext_dirty_fndecl_40343 __ext4_ext_dirty fndecl 0 40343 NULL nohasharray
159867 +enable_so_minimum_acpi_resource_memory32_40343 minimum acpi_resource_memory32 0 40343 &enable_so___ext4_ext_dirty_fndecl_40343
159868 +enable_so_free_ubifs_lpt_lprops_40346 free ubifs_lpt_lprops 0 40346 NULL
159869 +enable_so_default_llseek_fndecl_40353 default_llseek fndecl 2 40353 NULL nohasharray
159870 +enable_so_srpt_alloc_ioctx_ring_fndecl_40353 srpt_alloc_ioctx_ring fndecl 3-4-2 40353 &enable_so_default_llseek_fndecl_40353
159871 +enable_so_cr2_kvm_vcpu_arch_40355 cr2 kvm_vcpu_arch 0 40355 NULL nohasharray
159872 +enable_so_pgbase_pnfs_device_40355 pgbase pnfs_device 0 40355 &enable_so_cr2_kvm_vcpu_arch_40355
159873 +enable_so_cblock_dm_cache_migration_40361 cblock dm_cache_migration 0 40361 NULL
159874 +enable_so_cfpkt_setlen_fndecl_40364 cfpkt_setlen fndecl 2 40364 NULL nohasharray
159875 +enable_so_max_wrs_rds_ib_device_40364 max_wrs rds_ib_device 0 40364 &enable_so_cfpkt_setlen_fndecl_40364
159876 +enable_so_isku_sysfs_read_keys_macro_fndecl_40371 isku_sysfs_read_keys_macro fndecl 6 40371 NULL
159877 +enable_so_SYSC_mincore_fndecl_40372 SYSC_mincore fndecl 2-1 40372 NULL
159878 +enable_so_pages_per_wr_bio_scrub_wr_ctx_40374 pages_per_wr_bio scrub_wr_ctx 0 40374 NULL
159879 +enable_so_align_kmem_cache_40377 align kmem_cache 0 40377 NULL
159880 +enable_so___vmalloc_node_fndecl_40382 __vmalloc_node fndecl 1 40382 NULL
159881 +enable_so_ilm_len_mt76_fw_header_40389 ilm_len mt76_fw_header 0 40389 NULL
159882 +enable_so_px_raw_event_fndecl_40392 px_raw_event fndecl 4 40392 NULL
159883 +enable_so_file_secno_bplus_leaf_node_40394 file_secno bplus_leaf_node 0 40394 NULL nohasharray
159884 +enable_so_sb_root_hpfs_sb_info_40394 sb_root hpfs_sb_info 0 40394 &enable_so_file_secno_bplus_leaf_node_40394
159885 +enable_so_snd_ak4113_external_rate_fndecl_40404 snd_ak4113_external_rate fndecl 0 40404 NULL nohasharray
159886 +enable_so_max_scaled_height_bttv_crop_40404 max_scaled_height bttv_crop 0 40404 &enable_so_snd_ak4113_external_rate_fndecl_40404
159887 +enable_so_line_no_pch_uart_driver_data_40410 line_no pch_uart_driver_data 0 40410 NULL
159888 +enable_so_level3cnt_capi_register_params_40411 level3cnt capi_register_params 0 40411 NULL
159889 +enable_so_bulk_out_epnum_usb_cardstate_40412 bulk_out_epnum usb_cardstate 0 40412 NULL nohasharray
159890 +enable_so_joydev_ioctl_common_fndecl_40412 joydev_ioctl_common fndecl 2 40412 &enable_so_bulk_out_epnum_usb_cardstate_40412
159891 +enable_so_vm_end_vm_area_struct_40413 vm_end vm_area_struct 0 40413 NULL nohasharray
159892 +enable_so_vma_commit_reservation_fndecl_40413 vma_commit_reservation fndecl 3 40413 &enable_so_vm_end_vm_area_struct_40413
159893 +enable_so___ioremap_caller_fndecl_40419 __ioremap_caller fndecl 2-1 40419 NULL nohasharray
159894 +enable_so_applesmc_create_nodes_fndecl_40419 applesmc_create_nodes fndecl 2 40419 &enable_so___ioremap_caller_fndecl_40419
159895 +enable_so_rx_streaming_always_read_fndecl_40426 rx_streaming_always_read fndecl 3 40426 NULL
159896 +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
159897 +enable_so_tnode_alloc_fndecl_40428 tnode_alloc fndecl 1 40428 NULL
159898 +enable_so_readisac_IsdnCardState_40429 readisac IsdnCardState 0 40429 NULL
159899 +enable_so_skb_partial_csum_set_fndecl_40436 skb_partial_csum_set fndecl 2 40436 NULL
159900 +enable_so___i915_error_advance_fndecl_40440 __i915_error_advance fndecl 2 40440 NULL
159901 +enable_so_begin_switchdev_vlan_dump_40443 begin switchdev_vlan_dump 0 40443 NULL
159902 +enable_so_iscsi_alloc_session_fndecl_40445 iscsi_alloc_session fndecl 3 40445 NULL
159903 +enable_so_qd2index_fndecl_40449 qd2index fndecl 0 40449 NULL
159904 +enable_so_gnttab_setup_auto_xlat_frames_fndecl_40455 gnttab_setup_auto_xlat_frames fndecl 1 40455 NULL
159905 +enable_so_curpacksize_snd_usb_endpoint_40462 curpacksize snd_usb_endpoint 0 40462 NULL nohasharray
159906 +enable_so_submit_create_fndecl_40462 submit_create fndecl 3 40462 &enable_so_curpacksize_snd_usb_endpoint_40462
159907 +enable_so_nr_i2c_adapter_40466 nr i2c_adapter 0 40466 NULL
159908 +enable_so_memblock_add_node_fndecl_40484 memblock_add_node fndecl 1-2 40484 NULL
159909 +enable_so_g2d_userptr_get_dma_addr_fndecl_40487 g2d_userptr_get_dma_addr fndecl 2-3 40487 NULL
159910 +enable_so_eh_depth_ext4_extent_header_40488 eh_depth ext4_extent_header 0 40488 NULL
159911 +enable_so_s_cgoffset_ufs_sb_private_info_40490 s_cgoffset ufs_sb_private_info 0 40490 NULL
159912 +enable_so_tx_max_cdc_ncm_ctx_40493 tx_max cdc_ncm_ctx 0 40493 NULL nohasharray
159913 +enable_so_length_mtd_oob_buf32_40493 length mtd_oob_buf32 0 40493 &enable_so_tx_max_cdc_ncm_ctx_40493 nohasharray
159914 +enable_so_num_mtts_mlx4_caps_40493 num_mtts mlx4_caps 0 40493 &enable_so_length_mtd_oob_buf32_40493
159915 +enable_so_len_tx_buf_40498 len tx_buf 0 40498 NULL
159916 +enable_so_header_length_datalink_proto_40501 header_length datalink_proto 0 40501 NULL
159917 +enable_so_size_iscsi_segment_40510 size iscsi_segment 0 40510 NULL nohasharray
159918 +enable_so_start_cnic_id_tbl_40510 start cnic_id_tbl 0 40510 &enable_so_size_iscsi_segment_40510
159919 +enable_so_max_soc_bytes_ext_40512 max soc_bytes_ext 0 40512 NULL
159920 +enable_so_dn_mss_from_pmtu_fndecl_40520 dn_mss_from_pmtu fndecl 0-2 40520 NULL
159921 +enable_so_max_pds_iwch_rnic_attributes_40526 max_pds iwch_rnic_attributes 0 40526 NULL
159922 +enable_so_num_substreams_snd_m3_40528 num_substreams snd_m3 0 40528 NULL
159923 +enable_so_bnx2x_change_num_queues_fndecl_40532 bnx2x_change_num_queues fndecl 2 40532 NULL
159924 +enable_so_smb2_lockv_fndecl_40533 smb2_lockv fndecl 6 40533 NULL nohasharray
159925 +enable_so_w_size_deflate_state_40533 w_size deflate_state 0 40533 &enable_so_smb2_lockv_fndecl_40533 nohasharray
159926 +enable_so_drm_buffer_copy_from_user_fndecl_40533 drm_buffer_copy_from_user fndecl 3 40533 &enable_so_w_size_deflate_state_40533
159927 +enable_so_is_acpi_reserved_fndecl_40540 is_acpi_reserved fndecl 2-1 40540 NULL
159928 +enable_so_sky2_get_rx_data_size_fndecl_40544 sky2_get_rx_data_size fndecl 0 40544 NULL nohasharray
159929 +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
159930 +enable_so_base_start_aac_dev_40550 base_start aac_dev 0 40550 NULL nohasharray
159931 +enable_so_num_ios_vardecl_40550 num_ios vardecl 0 40550 &enable_so_base_start_aac_dev_40550
159932 +enable_so_read_partial_message_section_fndecl_40551 read_partial_message_section fndecl 3 40551 NULL
159933 +enable_so_nf_sockopt_fndecl_40555 nf_sockopt fndecl 0 40555 NULL
159934 +enable_so_alloc_ebda_hpc_fndecl_40557 alloc_ebda_hpc fndecl 1-2 40557 NULL
159935 +enable_so_security_context_to_sid_fndecl_40560 security_context_to_sid fndecl 2 40560 NULL
159936 +enable_so_plcp_siso_iwl_rate_info_40562 plcp_siso iwl_rate_info 0 40562 NULL
159937 +enable_so_maxpacket_isp1362_ep_40564 maxpacket isp1362_ep 0 40564 NULL
159938 +enable_so_isdn_read_fndecl_40566 isdn_read fndecl 3 40566 NULL
159939 +enable_so_ptrace_readdata_fndecl_40567 ptrace_readdata fndecl 4-2 40567 NULL
159940 +enable_so_ucNumStates__ATOM_PPLIB_POWERPLAYTABLE_40568 ucNumStates _ATOM_PPLIB_POWERPLAYTABLE 0 40568 NULL
159941 +enable_so_caif_stream_sendmsg_fndecl_40573 caif_stream_sendmsg fndecl 3 40573 NULL
159942 +enable_so_qp_alloc_queue_fndecl_40575 qp_alloc_queue fndecl 1 40575 NULL nohasharray
159943 +enable_so_xlog_recovery_process_trans_fndecl_40575 xlog_recovery_process_trans fndecl 4 40575 &enable_so_qp_alloc_queue_fndecl_40575
159944 +enable_so_dm_bufio_read_fndecl_40577 dm_bufio_read fndecl 2 40577 NULL
159945 +enable_so_ioread8_fndecl_40594 ioread8 fndecl 0 40594 NULL
159946 +enable_so_dram_size_sst_res_info_40602 dram_size sst_res_info 0 40602 NULL nohasharray
159947 +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
159948 +enable_so_value_len_ext4_xattr_info_40604 value_len ext4_xattr_info 0 40604 NULL
159949 +enable_so_rf_size_rt2x00_ops_40605 rf_size rt2x00_ops 0 40605 NULL
159950 +enable_so_vyres_aty128_crtc_40610 vyres aty128_crtc 0 40610 NULL
159951 +enable_so_android_set_cntry_fndecl_40615 android_set_cntry fndecl 0 40615 NULL
159952 +enable_so_read_file_slot_fndecl_40620 read_file_slot fndecl 3 40620 NULL
159953 +enable_so_mailbox_start_sst_info_40624 mailbox_start sst_info 0 40624 NULL
159954 +enable_so___kfifo_dma_in_prepare_fndecl_40626 __kfifo_dma_in_prepare fndecl 4 40626 NULL
159955 +enable_so_libcfs_ioctl_popdata_fndecl_40628 libcfs_ioctl_popdata fndecl 3 40628 NULL
159956 +enable_so_rate_n_flags_il_rx_phy_res_40629 rate_n_flags il_rx_phy_res 0 40629 NULL
159957 +enable_so_pcpu_get_vm_areas_fndecl_40630 pcpu_get_vm_areas fndecl 4-3 40630 NULL
159958 +enable_so_dev_set_alias_fndecl_40631 dev_set_alias fndecl 3 40631 NULL
159959 +enable_so_cf_uniqueid_cifs_fattr_40632 cf_uniqueid cifs_fattr 0 40632 NULL
159960 +enable_so_altera_swap_dr_fndecl_40633 altera_swap_dr fndecl 2 40633 NULL
159961 +enable_so_map_dirent_fndecl_40635 map_dirent fndecl 2 40635 NULL nohasharray
159962 +enable_so_cfg_fcp_io_channel_lpfc_hba_40635 cfg_fcp_io_channel lpfc_hba 0 40635 &enable_so_map_dirent_fndecl_40635 nohasharray
159963 +enable_so_sock_setsockopt_fndecl_40635 sock_setsockopt fndecl 5 40635 &enable_so_cfg_fcp_io_channel_lpfc_hba_40635
159964 +enable_so_rotate_buf_a_little_fndecl_40654 rotate_buf_a_little fndecl 2 40654 NULL
159965 +enable_so_rq_rcvsize_rpc_rqst_40660 rq_rcvsize rpc_rqst 0 40660 NULL
159966 +enable_so_number_xt_af_40661 number xt_af 0 40661 NULL
159967 +enable_so_legacy_rate_info_40663 legacy rate_info 0 40663 NULL
159968 +enable_so_ocrdma_dbgfs_ops_write_fndecl_40664 ocrdma_dbgfs_ops_write fndecl 3 40664 NULL
159969 +enable_so___ext_tree_remove_fndecl_40666 __ext_tree_remove fndecl 2-3 40666 NULL
159970 +enable_so_aac_nark_ioremap_fndecl_40672 aac_nark_ioremap fndecl 2 40672 NULL nohasharray
159971 +enable_so_kmalloc_node_fndecl_40672 kmalloc_node fndecl 1 40672 &enable_so_aac_nark_ioremap_fndecl_40672
159972 +enable_so_rx_filter_ibss_filter_read_fndecl_40676 rx_filter_ibss_filter_read fndecl 3 40676 NULL
159973 +enable_so_odev_update_fndecl_40682 odev_update fndecl 2 40682 NULL nohasharray
159974 +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
159975 +enable_so_ahd_probe_stack_size_fndecl_40683 ahd_probe_stack_size fndecl 0 40683 NULL
159976 +enable_so_ubi_resize_volume_fndecl_40687 ubi_resize_volume fndecl 2 40687 NULL nohasharray
159977 +enable_so_xfs_get_blocks_direct_fndecl_40687 xfs_get_blocks_direct fndecl 2 40687 &enable_so_ubi_resize_volume_fndecl_40687
159978 +enable_so_tx_frag_need_fragmentation_read_fndecl_40698 tx_frag_need_fragmentation_read fndecl 3 40698 NULL
159979 +enable_so_height_timblogiw_tvnorm_40699 height timblogiw_tvnorm 0 40699 NULL
159980 +enable_so_aa_simple_write_to_buffer_fndecl_40704 aa_simple_write_to_buffer fndecl 3-4 40704 NULL
159981 +enable_so_max_znode_sz_ubifs_info_40705 max_znode_sz ubifs_info 0 40705 NULL
159982 +enable_so_ctrl_out_pipe_hfcsusb_40706 ctrl_out_pipe hfcsusb 0 40706 NULL
159983 +enable_so_nTxBlock_vardecl_jfs_txnmgr_c_40708 nTxBlock vardecl_jfs_txnmgr.c 0 40708 NULL
159984 +enable_so_lfb_linelength_screen_info_40728 lfb_linelength screen_info 0 40728 NULL
159985 +enable_so_cryptlen_aead_request_40734 cryptlen aead_request 0 40734 NULL nohasharray
159986 +enable_so_page_order_ring_buffer_40734 page_order ring_buffer 0 40734 &enable_so_cryptlen_aead_request_40734
159987 +enable_so_NumberOfLogBlock_ms_lib_ctrl_40736 NumberOfLogBlock ms_lib_ctrl 0 40736 NULL
159988 +enable_so_do_splice_to_fndecl_40737 do_splice_to fndecl 4-0 40737 NULL
159989 +enable_so_sisfb_getheapstart_fndecl_40740 sisfb_getheapstart fndecl 0 40740 NULL nohasharray
159990 +enable_so_intel_gtt_mappable_entries_fndecl_40740 intel_gtt_mappable_entries fndecl 0 40740 &enable_so_sisfb_getheapstart_fndecl_40740
159991 +enable_so_write_pool_fndecl_40741 write_pool fndecl 3 40741 NULL
159992 +enable_so_IELength_wlan_bssid_ex_40743 IELength wlan_bssid_ex 0 40743 NULL
159993 +enable_so_smsc47b397_find_fndecl_40748 smsc47b397_find fndecl 0 40748 NULL
159994 +enable_so_ctrl_macb_dma_desc_40750 ctrl macb_dma_desc 0 40750 NULL
159995 +enable_so_sys_gethostname_fndecl_40753 sys_gethostname fndecl 2 40753 NULL
159996 +enable_so_read_reg_isac_hw_40755 read_reg isac_hw 0 40755 NULL
159997 +enable_so_snd_usb_endpoint_set_params_fndecl_40756 snd_usb_endpoint_set_params fndecl 3-4 40756 NULL
159998 +enable_so_vfs_iter_write_fndecl_40761 vfs_iter_write fndecl 0 40761 NULL
159999 +enable_so_total_xfer_length_ScsiReqBlk_40768 total_xfer_length ScsiReqBlk 0 40768 NULL
160000 +enable_so_btrfs_chunk_num_stripes_fndecl_40772 btrfs_chunk_num_stripes fndecl 0 40772 NULL
160001 +enable_so_snd_hdac_get_connections_fndecl_40773 snd_hdac_get_connections fndecl 0 40773 NULL
160002 +enable_so_pdu_write_fndecl_40774 pdu_write fndecl 3 40774 NULL
160003 +enable_so_xprt_tcp_slot_table_entries_vardecl_xprtsock_c_40779 xprt_tcp_slot_table_entries vardecl_xprtsock.c 0 40779 NULL
160004 +enable_so_key_conf_keylen_read_fndecl_40781 key_conf_keylen_read fndecl 3 40781 NULL
160005 +enable_so_s_bpfshift_ufs_sb_private_info_40782 s_bpfshift ufs_sb_private_info 0 40782 NULL
160006 +enable_so_increase_reservation_fndecl_40785 increase_reservation fndecl 1 40785 NULL
160007 +enable_so_sys_fsetxattr_fndecl_40795 sys_fsetxattr fndecl 4 40795 NULL
160008 +enable_so_private_data_len_rdma_conn_param_40796 private_data_len rdma_conn_param 0 40796 NULL
160009 +enable_so_check_frame_fndecl_40798 check_frame fndecl 0 40798 NULL nohasharray
160010 +enable_so_ext4_multi_mount_protect_fndecl_40798 ext4_multi_mount_protect fndecl 2 40798 &enable_so_check_frame_fndecl_40798
160011 +enable_so_multi_write_idx_wmi_40801 multi_write_idx wmi 0 40801 NULL nohasharray
160012 +enable_so_cmd_len_request_40801 cmd_len request 0 40801 &enable_so_multi_write_idx_wmi_40801 nohasharray
160013 +enable_so_num_channels_hpb_dmae_pdata_40801 num_channels hpb_dmae_pdata 0 40801 &enable_so_cmd_len_request_40801
160014 +enable_so_sz_m1_mlx5_wq_ll_40805 sz_m1 mlx5_wq_ll 0 40805 NULL
160015 +enable_so_ceph_osdc_readpages_fndecl_40814 ceph_osdc_readpages fndecl 0 40814 NULL nohasharray
160016 +enable_so_sysctl_wmem_max_vardecl_40814 sysctl_wmem_max vardecl 0 40814 &enable_so_ceph_osdc_readpages_fndecl_40814
160017 +enable_so_dma_pad_mask_request_queue_40816 dma_pad_mask request_queue 0 40816 NULL
160018 +enable_so_fuse_conn_waiting_read_fndecl_40817 fuse_conn_waiting_read fndecl 3 40817 NULL
160019 +enable_so_INFTL_findfreeblock_fndecl_40819 INFTL_findfreeblock fndecl 0 40819 NULL
160020 +enable_so_pitch_intel_rotation_info_40826 pitch intel_rotation_info 0 40826 NULL
160021 +enable_so_l2_fhdr_ip_xsum_l2_fhdr_40843 l2_fhdr_ip_xsum l2_fhdr 0 40843 NULL
160022 +enable_so_v9fs_file_fsync_dotl_fndecl_40845 v9fs_file_fsync_dotl fndecl 2-3 40845 NULL
160023 +enable_so_newblocks_xfs_growfs_data_40847 newblocks xfs_growfs_data 0 40847 NULL
160024 +enable_so_nfs_file_fsync_fndecl_40851 nfs_file_fsync fndecl 2-3 40851 NULL
160025 +enable_so___of_parse_phandle_with_args_fndecl_40860 __of_parse_phandle_with_args fndecl 0 40860 NULL
160026 +enable_so_extended_capabilities_len_wiphy_40861 extended_capabilities_len wiphy 0 40861 NULL
160027 +enable_so_resize_zone_fndecl_40862 resize_zone fndecl 2-3 40862 NULL
160028 +enable_so_ext2_splice_branch_fndecl_40864 ext2_splice_branch fndecl 5 40864 NULL
160029 +enable_so_iraw_loop_fndecl_40865 iraw_loop fndecl 0-1 40865 NULL
160030 +enable_so_nvram_llseek_fndecl_40869 nvram_llseek fndecl 2 40869 NULL
160031 +enable_so_reply_queue_count_MPT3SAS_ADAPTER_40870 reply_queue_count MPT3SAS_ADAPTER 0 40870 NULL
160032 +enable_so_sector_count_partition_40874 sector_count partition 0 40874 NULL
160033 +enable_so_scsi_dispatch_cmd_entry_fndecl_40875 scsi_dispatch_cmd_entry fndecl 3 40875 NULL
160034 +enable_so_config_len_mic_device_desc_40877 config_len mic_device_desc 0 40877 NULL
160035 +enable_so_min_agbno_xfs_alloc_arg_40884 min_agbno xfs_alloc_arg 0 40884 NULL nohasharray
160036 +enable_so_osst_set_options_fndecl_40884 osst_set_options fndecl 2 40884 &enable_so_min_agbno_xfs_alloc_arg_40884 nohasharray
160037 +enable_so_nvkm_engctx_create__fndecl_40884 nvkm_engctx_create_ fndecl 6-5-8 40884 &enable_so_osst_set_options_fndecl_40884
160038 +enable_so_tcf_csum_ipv4_tcp_fndecl_40889 tcf_csum_ipv4_tcp fndecl 3 40889 NULL
160039 +enable_so_size_drm_i915_gem_mmap_40890 size drm_i915_gem_mmap 0 40890 NULL nohasharray
160040 +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
160041 +enable_so_pci_add_dynid_fndecl_40893 pci_add_dynid fndecl 3-8 40893 NULL
160042 +enable_so_ath6kl_fwlog_block_read_fndecl_40895 ath6kl_fwlog_block_read fndecl 3 40895 NULL
160043 +enable_so_uart_write_fndecl_40916 uart_write fndecl 3 40916 NULL
160044 +enable_so_sctp_setsockopt_bindx_fndecl_40925 sctp_setsockopt_bindx fndecl 3 40925 NULL
160045 +enable_so_ea_put_fndecl_40928 ea_put fndecl 4 40928 NULL nohasharray
160046 +enable_so_platform_mmio_vardecl_platform_pci_c_40928 platform_mmio vardecl_platform-pci.c 0 40928 &enable_so_ea_put_fndecl_40928
160047 +enable_so_opcount_xfs_fsop_attrmulti_handlereq_40929 opcount xfs_fsop_attrmulti_handlereq 0 40929 NULL
160048 +enable_so_max_rate_idx_il_lq_sta_40932 max_rate_idx il_lq_sta 0 40932 NULL
160049 +enable_so_scsiback_do_resp_with_sense_fndecl_40934 scsiback_do_resp_with_sense fndecl 3 40934 NULL
160050 +enable_so_fuse_send_write_fndecl_40936 fuse_send_write fndecl 0-4 40936 NULL
160051 +enable_so_ecryptfs_filldir_fndecl_40939 ecryptfs_filldir fndecl 3 40939 NULL
160052 +enable_so_s_log_groups_per_flex_ext4_sb_info_40945 s_log_groups_per_flex ext4_sb_info 0 40945 NULL
160053 +enable_so_size_v4l2_ext_control_40952 size v4l2_ext_control 0 40952 NULL
160054 +enable_so_ns_segnum_the_nilfs_40959 ns_segnum the_nilfs 0 40959 NULL
160055 +enable_so_ext4_fill_fiemap_extents_fndecl_40966 ext4_fill_fiemap_extents fndecl 2-3 40966 NULL nohasharray
160056 +enable_so_isr_low_rssi_read_fndecl_40966 isr_low_rssi_read fndecl 3 40966 &enable_so_ext4_fill_fiemap_extents_fndecl_40966
160057 +enable_so_bottom_qxl_urect_40968 bottom qxl_urect 0 40968 NULL
160058 +enable_so_regmap_reg_ranges_read_file_fndecl_40973 regmap_reg_ranges_read_file fndecl 3 40973 NULL
160059 +enable_so_a_text_exec_40977 a_text exec 0 40977 NULL
160060 +enable_so_compat_sys_recvfrom_fndecl_40978 compat_sys_recvfrom fndecl 3 40978 NULL
160061 +enable_so_read_iter_file_operations_40980 read_iter file_operations 0 40980 NULL
160062 +enable_so_s_psn_qib_qp_40983 s_psn qib_qp 0 40983 NULL
160063 +enable_so_blk_mq_init_tags_fndecl_40986 blk_mq_init_tags fndecl 2-1 40986 NULL
160064 +enable_so_ecryptfs_send_miscdev_fndecl_40995 ecryptfs_send_miscdev fndecl 2 40995 NULL
160065 +enable_so_gfn_to_page_fndecl_41001 gfn_to_page fndecl 2 41001 NULL nohasharray
160066 +enable_so_start_fb_cmap_41001 start fb_cmap 0 41001 &enable_so_gfn_to_page_fndecl_41001
160067 +enable_so_selfballoon_min_usable_mb_vardecl_xen_selfballoon_c_41004 selfballoon_min_usable_mb vardecl_xen-selfballoon.c 0 41004 NULL
160068 +enable_so_nfsctl_transaction_write_fndecl_41011 nfsctl_transaction_write fndecl 3 41011 NULL
160069 +enable_so_ath6kl_target_config_wlan_params_fndecl_41017 ath6kl_target_config_wlan_params fndecl 2 41017 NULL nohasharray
160070 +enable_so_proc_projid_map_write_fndecl_41017 proc_projid_map_write fndecl 3 41017 &enable_so_ath6kl_target_config_wlan_params_fndecl_41017
160071 +enable_so_rfkill_fop_write_fndecl_41019 rfkill_fop_write fndecl 3 41019 NULL
160072 +enable_so_dma_handle_videobuf_dma_contig_memory_41025 dma_handle videobuf_dma_contig_memory 0 41025 NULL
160073 +enable_so_altera_set_dr_pre_fndecl_41037 altera_set_dr_pre fndecl 2 41037 NULL
160074 +enable_so_fofs_extent_info_41041 fofs extent_info 0 41041 NULL
160075 +enable_so_d0_vring_rx_mac_41042 d0 vring_rx_mac 0 41042 NULL
160076 +enable_so_ieee802154_hdr_pull_fndecl_41051 ieee802154_hdr_pull fndecl 0 41051 NULL
160077 +enable_so_resp_len_bnx2fc_mp_req_41057 resp_len bnx2fc_mp_req 0 41057 NULL
160078 +enable_so_lprocfs_write_u64_helper_fndecl_41059 lprocfs_write_u64_helper fndecl 2 41059 NULL
160079 +enable_so_bits_per_word_spi_transfer_41063 bits_per_word spi_transfer 0 41063 NULL
160080 +enable_so_vdc_mem_size_vml_par_41069 vdc_mem_size vml_par 0 41069 NULL
160081 +enable_so_gfn_to_pfn_fndecl_41077 gfn_to_pfn fndecl 2 41077 NULL
160082 +enable_so_shtc1_update_values_fndecl_41080 shtc1_update_values fndecl 4 41080 NULL
160083 +enable_so_zl10039_write_fndecl_41082 zl10039_write fndecl 4 41082 NULL
160084 +enable_so_pci_vc_do_save_buffer_fndecl_41087 pci_vc_do_save_buffer fndecl 0 41087 NULL
160085 +enable_so_wdt87xx_get_feature_fndecl_41089 wdt87xx_get_feature fndecl 3 41089 NULL nohasharray
160086 +enable_so_iq_autocal_len_p54_common_41089 iq_autocal_len p54_common 0 41089 &enable_so_wdt87xx_get_feature_fndecl_41089
160087 +enable_so_pskb_put_fndecl_41096 pskb_put fndecl 3 41096 NULL nohasharray
160088 +enable_so_sigma_fw_load_data_fndecl_41096 sigma_fw_load_data fndecl 3 41096 &enable_so_pskb_put_fndecl_41096
160089 +enable_so_nr_gpio_sc16is7xx_devtype_41097 nr_gpio sc16is7xx_devtype 0 41097 NULL
160090 +enable_so_input_leds_get_count_fndecl_41102 input_leds_get_count fndecl 0 41102 NULL
160091 +enable_so_ieee80211_if_read_ave_beacon_fndecl_41103 ieee80211_if_read_ave_beacon fndecl 3 41103 NULL
160092 +enable_so_res_ver_val_pvr2_hdw_41107 res_ver_val pvr2_hdw 0 41107 NULL
160093 +enable_so_physical_start_stripe_41108 physical_start stripe 0 41108 NULL
160094 +enable_so_xfs_imap_lookup_fndecl_41113 xfs_imap_lookup fndecl 4-3 41113 NULL
160095 +enable_so_in_iovs_fuse_ioctl_out_41117 in_iovs fuse_ioctl_out 0 41117 NULL
160096 +enable_so_ubifs_wbuf_write_nolock_fndecl_41121 ubifs_wbuf_write_nolock fndecl 3 41121 NULL
160097 +enable_so_datalen_brcmf_event_msg_41123 datalen brcmf_event_msg 0 41123 NULL
160098 +enable_so_ip_options_get_from_user_fndecl_41133 ip_options_get_from_user fndecl 4 41133 NULL
160099 +enable_so_data_out_pipe_uas_dev_info_41134 data_out_pipe uas_dev_info 0 41134 NULL
160100 +enable_so_data_len_b43_dfs_file_41135 data_len b43_dfs_file 0 41135 NULL
160101 +enable_so_qcaspi_read_burst_fndecl_41137 qcaspi_read_burst fndecl 3 41137 NULL
160102 +enable_so_nilfs_sufile_get_blkoff_fndecl_41139 nilfs_sufile_get_blkoff fndecl 0-2 41139 NULL
160103 +enable_so_hidp_process_report_fndecl_41140 hidp_process_report fndecl 4 41140 NULL
160104 +enable_so_usb_reset_and_verify_device_fndecl_41142 usb_reset_and_verify_device fndecl 0 41142 NULL
160105 +enable_so_ieee80211_cs_headroom_fndecl_41144 ieee80211_cs_headroom fndecl 0 41144 NULL
160106 +enable_so_rx_drvinfo_size_rtl_stats_41161 rx_drvinfo_size rtl_stats 0 41161 NULL
160107 +enable_so___blk_recalc_rq_segments_fndecl_41164 __blk_recalc_rq_segments fndecl 0 41164 NULL
160108 +enable_so_l2tp_ip6_sendmsg_fndecl_41166 l2tp_ip6_sendmsg fndecl 3 41166 NULL
160109 +enable_so_get_blocks_target_backend_ops_41168 get_blocks target_backend_ops 0 41168 NULL
160110 +enable_so_suspend_dtim_interval_read_fndecl_41176 suspend_dtim_interval_read fndecl 3 41176 NULL
160111 +enable_so_size_brnf_frag_data_41177 size brnf_frag_data 0 41177 NULL
160112 +enable_so_start_flakey_c_41178 start flakey_c 0 41178 NULL nohasharray
160113 +enable_so_traceprobe_probes_write_fndecl_41178 traceprobe_probes_write fndecl 3 41178 &enable_so_start_flakey_c_41178
160114 +enable_so_lro_wqe_sz_mlx5e_params_41180 lro_wqe_sz mlx5e_params 0 41180 NULL
160115 +enable_so_gfn_guest_walker64_41182 gfn guest_walker64 0 41182 NULL
160116 +enable_so_index_vardecl_via82xx_c_41183 index vardecl_via82xx.c 0 41183 NULL
160117 +enable_so_binder_set_nice_fndecl_41184 binder_set_nice fndecl 1 41184 NULL
160118 +enable_so_ndlc_probe_fndecl_41195 ndlc_probe fndecl 4 41195 NULL
160119 +enable_so_nr_pages_page_collect_41197 nr_pages page_collect 0 41197 NULL
160120 +enable_so_sq905_command_fndecl_41201 sq905_command fndecl 0 41201 NULL
160121 +enable_so_ipv4_tun_to_nlattr_fndecl_41204 ipv4_tun_to_nlattr fndecl 4 41204 NULL
160122 +enable_so_nr_acpi_bits_vardecl_xen_acpi_processor_c_41210 nr_acpi_bits vardecl_xen-acpi-processor.c 0 41210 NULL
160123 +enable_so_qib_n_krcv_queues_vardecl_41222 qib_n_krcv_queues vardecl 0 41222 NULL
160124 +enable_so_p9_client_read_fndecl_41223 p9_client_read fndecl 0 41223 NULL
160125 +enable_so_prctl_set_mm_fndecl_41225 prctl_set_mm fndecl 2-3 41225 NULL
160126 +enable_so_enic_change_mtu_fndecl_41227 enic_change_mtu fndecl 2 41227 NULL nohasharray
160127 +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
160128 +enable_so_out_count_mdc800_data_41228 out_count mdc800_data 0 41228 NULL
160129 +enable_so_len_driver_data_41237 len driver_data 0 41237 NULL
160130 +enable_so_vmw_gb_shader_init_fndecl_41240 vmw_gb_shader_init fndecl 3 41240 NULL
160131 +enable_so_opera1_usb_i2c_msgxfer_fndecl_41242 opera1_usb_i2c_msgxfer fndecl 4 41242 NULL
160132 +enable_so_ses_send_diag_fndecl_41244 ses_send_diag fndecl 4 41244 NULL
160133 +enable_so_iwl_dbgfs_ucode_tracing_write_fndecl_41247 iwl_dbgfs_ucode_tracing_write fndecl 3 41247 NULL
160134 +enable_so___apei_exec_run_fndecl_41248 __apei_exec_run fndecl 0 41248 NULL
160135 +enable_so___spi_sync_fndecl_41250 __spi_sync fndecl 0 41250 NULL nohasharray
160136 +enable_so_init_size_rx_module_41250 init_size_rx module 0 41250 &enable_so___spi_sync_fndecl_41250
160137 +enable_so_croph_val_pvr2_hdw_41253 croph_val pvr2_hdw 0 41253 NULL
160138 +enable_so_get_res_add_align_fndecl_41257 get_res_add_align fndecl 0 41257 NULL
160139 +enable_so_qlen_sk_buff_head_41259 qlen sk_buff_head 0 41259 NULL nohasharray
160140 +enable_so_diva_os_alloc_message_buffer_fndecl_41259 diva_os_alloc_message_buffer fndecl 1 41259 &enable_so_qlen_sk_buff_head_41259
160141 +enable_so_do_erase_fndecl_41261 do_erase fndecl 2-4 41261 NULL
160142 +enable_so_lm8323_read_fndecl_41264 lm8323_read fndecl 4 41264 NULL
160143 +enable_so_blkdev_issue_zeroout_fndecl_41272 blkdev_issue_zeroout fndecl 3-2-0 41272 NULL
160144 +enable_so_rbd_obj_read_sync_fndecl_41273 rbd_obj_read_sync fndecl 3-4 41273 NULL
160145 +enable_so___btrfs_prealloc_file_range_fndecl_41278 __btrfs_prealloc_file_range fndecl 3 41278 NULL
160146 +enable_so_size_data_s_41281 size data_s 0 41281 NULL
160147 +enable_so_num_reg_defaults_raw_regmap_41282 num_reg_defaults_raw regmap 0 41282 NULL
160148 +enable_so_centre_horizontally_fndecl_41284 centre_horizontally fndecl 2 41284 NULL nohasharray
160149 +enable_so_vxfs_getblk_fndecl_41284 vxfs_getblk fndecl 2 41284 &enable_so_centre_horizontally_fndecl_41284
160150 +enable_so_dy_fb_fillrect_41289 dy fb_fillrect 0 41289 NULL nohasharray
160151 +enable_so_tcp_write_xmit_fndecl_41289 tcp_write_xmit fndecl 2 41289 &enable_so_dy_fb_fillrect_41289
160152 +enable_so_vb2_queue_init_fndecl_41292 vb2_queue_init fndecl 0 41292 NULL
160153 +enable_so_uni2char_nls_table_41293 uni2char nls_table 0 41293 NULL
160154 +enable_so_kfd_set_pasid_limit_fndecl_41300 kfd_set_pasid_limit fndecl 1 41300 NULL
160155 +enable_so_bop_check_delete_nilfs_bmap_operations_41302 bop_check_delete nilfs_bmap_operations 0 41302 NULL
160156 +enable_so_register_vlan_device_fndecl_41310 register_vlan_device fndecl 2 41310 NULL
160157 +enable_so_d40_size_2_dmalen_fndecl_41311 d40_size_2_dmalen fndecl 0-3-2-1 41311 NULL nohasharray
160158 +enable_so_img_SRAM_size_fw_hdr_41311 img_SRAM_size fw_hdr 0 41311 &enable_so_d40_size_2_dmalen_fndecl_41311
160159 +enable_so_cma_declare_contiguous_fndecl_41316 cma_declare_contiguous fndecl 4-2-1-3-5 41316 NULL nohasharray
160160 +enable_so_block_start_extent_map_41316 block_start extent_map 0 41316 &enable_so_cma_declare_contiguous_fndecl_41316
160161 +enable_so_pc_len_s_pcon_41324 pc_len s_pcon 0 41324 NULL
160162 +enable_so_max_fcoe_exchanges_cnic_dev_41335 max_fcoe_exchanges cnic_dev 0 41335 NULL
160163 +enable_so_last_alloc_physical_block_ext2_block_alloc_info_41336 last_alloc_physical_block ext2_block_alloc_info 0 41336 NULL
160164 +enable_so_fanotify_write_fndecl_41340 fanotify_write fndecl 3 41340 NULL
160165 +enable_so_regmap_read_debugfs_fndecl_41345 regmap_read_debugfs fndecl 5 41345 NULL
160166 +enable_so_key_len_wmi_vdev_install_key_arg_41347 key_len wmi_vdev_install_key_arg 0 41347 NULL
160167 +enable_so_transport_lba_64_fndecl_41348 transport_lba_64 fndecl 0 41348 NULL
160168 +enable_so_ocfs2_read_xattr_block_fndecl_41350 ocfs2_read_xattr_block fndecl 0-2 41350 NULL nohasharray
160169 +enable_so_pool_create_fndecl_41350 pool_create fndecl 3 41350 &enable_so_ocfs2_read_xattr_block_fndecl_41350 nohasharray
160170 +enable_so_size_snd_info_entry_41350 size snd_info_entry 0 41350 &enable_so_pool_create_fndecl_41350 nohasharray
160171 +enable_so_tlbflush_read_file_fndecl_41350 tlbflush_read_file fndecl 3 41350 &enable_so_size_snd_info_entry_41350
160172 +enable_so_efx_tsoh_get_buffer_fndecl_41355 efx_tsoh_get_buffer fndecl 3 41355 NULL
160173 +enable_so_usb_stor_probe1_fndecl_41357 usb_stor_probe1 fndecl 0 41357 NULL
160174 +enable_so_rx_rx_out_of_mpdu_nodes_read_fndecl_41359 rx_rx_out_of_mpdu_nodes_read fndecl 3 41359 NULL
160175 +enable_so__iwl_dbgfs_d0i3_refs_write_fndecl_41361 _iwl_dbgfs_d0i3_refs_write fndecl 3 41361 NULL
160176 +enable_so_num_eq_entries_hba_parameters_41369 num_eq_entries hba_parameters 0 41369 NULL
160177 +enable_so_wrsent_cyberjack_private_41371 wrsent cyberjack_private 0 41371 NULL
160178 +enable_so_do_device_access_fndecl_41373 do_device_access fndecl 0-2-3 41373 NULL
160179 +enable_so_max_frame_size_mgsl_struct_41374 max_frame_size mgsl_struct 0 41374 NULL
160180 +enable_so_mremap_to_fndecl_41376 mremap_to fndecl 4-3-1-2 41376 NULL nohasharray
160181 +enable_so_sectors_per_block_era_41376 sectors_per_block era 0 41376 &enable_so_mremap_to_fndecl_41376 nohasharray
160182 +enable_so_TupleDataMax_tuple_t_41376 TupleDataMax tuple_t 0 41376 &enable_so_sectors_per_block_era_41376
160183 +enable_so_wsize_nfs_server_41387 wsize nfs_server 0 41387 NULL nohasharray
160184 +enable_so_atomic_write_len_kernfs_ops_41387 atomic_write_len kernfs_ops 0 41387 &enable_so_wsize_nfs_server_41387
160185 +enable_so_l_tree_depth_ocfs2_extent_list_41398 l_tree_depth ocfs2_extent_list 0 41398 NULL
160186 +enable_so_fat32_root_cluster_fat_bios_param_block_41399 fat32_root_cluster fat_bios_param_block 0 41399 NULL
160187 +enable_so_mt76_mac_process_rate_fndecl_41401 mt76_mac_process_rate fndecl 2 41401 NULL
160188 +enable_so_nr_free_zone_pages_fndecl_41403 nr_free_zone_pages fndecl 0 41403 NULL
160189 +enable_so_i2400m_msg_to_dev_fndecl_41409 i2400m_msg_to_dev fndecl 3 41409 NULL
160190 +enable_so_num_channels_fndecl_41411 num_channels fndecl 0-1 41411 NULL
160191 +enable_so_virtio_cread8_fndecl_41431 virtio_cread8 fndecl 0 41431 NULL
160192 +enable_so_dapm_bias_read_file_fndecl_41432 dapm_bias_read_file fndecl 3 41432 NULL
160193 +enable_so_snd_pcm_oss_capture_position_fixup_fndecl_41434 snd_pcm_oss_capture_position_fixup fndecl 0 41434 NULL
160194 +enable_so_l1_size_vardecl_acpi_extlog_c_41440 l1_size vardecl_acpi_extlog.c 0 41440 NULL
160195 +enable_so_vram_remap_vardecl_vesafb_c_41441 vram_remap vardecl_vesafb.c 0 41441 NULL
160196 +enable_so_rt2x00debug_write_csr_fndecl_41442 rt2x00debug_write_csr fndecl 3 41442 NULL
160197 +enable_so_udf_NLStoCS0_fndecl_41451 udf_NLStoCS0 fndecl 0 41451 NULL
160198 +enable_so_rf_blkno_ocfs2_refcount_tree_41452 rf_blkno ocfs2_refcount_tree 0 41452 NULL
160199 +enable_so_dm_wmfw_adsp1_alg_hdr_41454 dm wmfw_adsp1_alg_hdr 0 41454 NULL
160200 +enable_so_sensor_write_reg_fndecl_41455 sensor_write_reg fndecl 0 41455 NULL
160201 +enable_so_squashfs_read_inode_lookup_table_fndecl_41456 squashfs_read_inode_lookup_table fndecl 4 41456 NULL nohasharray
160202 +enable_so_max_pd_ib_device_attr_41456 max_pd ib_device_attr 0 41456 &enable_so_squashfs_read_inode_lookup_table_fndecl_41456
160203 +enable_so_mem_lseek_fndecl_41457 mem_lseek fndecl 2 41457 NULL nohasharray
160204 +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
160205 +enable_so_tx_fifo_override_sh_msiof_spi_info_41461 tx_fifo_override sh_msiof_spi_info 0 41461 NULL
160206 +enable_so_bio_map_kern_fndecl_41468 bio_map_kern fndecl 3 41468 NULL
160207 +enable_so_pageshift_alauda_media_info_41469 pageshift alauda_media_info 0 41469 NULL nohasharray
160208 +enable_so_sd_qc_per_block_gfs2_sbd_41469 sd_qc_per_block gfs2_sbd 0 41469 &enable_so_pageshift_alauda_media_info_41469
160209 +enable_so_s_len_qib_qp_41471 s_len qib_qp 0 41471 NULL nohasharray
160210 +enable_so_major_nr_vardecl_umem_c_41471 major_nr vardecl_umem.c 0 41471 &enable_so_s_len_qib_qp_41471
160211 +enable_so_redirected_tty_write_fndecl_41474 redirected_tty_write fndecl 3 41474 NULL
160212 +enable_so_get_var_len_fndecl_41483 get_var_len fndecl 0 41483 NULL
160213 +enable_so_video_offset_sis_video_info_41491 video_offset sis_video_info 0 41491 NULL
160214 +enable_so_lpddr_info_query_fndecl_41492 lpddr_info_query fndecl 0 41492 NULL
160215 +enable_so_compat_core_sys_select_fndecl_41494 compat_core_sys_select fndecl 1 41494 NULL
160216 +enable_so_dir_entries_fat_floppy_defaults_41499 dir_entries fat_floppy_defaults 0 41499 NULL
160217 +enable_so_mpi_set_buffer_fndecl_41501 mpi_set_buffer fndecl 3 41501 NULL
160218 +enable_so_irda_param_insert_fndecl_41502 irda_param_insert fndecl 0 41502 NULL
160219 +enable_so_b_fifo_size_hfcSX_hw_41512 b_fifo_size hfcSX_hw 0 41512 NULL
160220 +enable_so_dccp_setsockopt_service_fndecl_41515 dccp_setsockopt_service fndecl 4 41515 NULL
160221 +enable_so_vpi_atm_vcc_41519 vpi atm_vcc 0 41519 NULL
160222 +enable_so_nfc_hci_execute_cmd_async_fndecl_41521 nfc_hci_execute_cmd_async fndecl 5 41521 NULL
160223 +enable_so_lv_niovecs_xfs_log_vec_41525 lv_niovecs xfs_log_vec 0 41525 NULL nohasharray
160224 +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
160225 +enable_so_unpack_array_fndecl_41525 unpack_array fndecl 0 41525 &enable_so_pcpu_unit_pages_vardecl_percpu_c_41525
160226 +enable_so_max_targets_orc_host_41530 max_targets orc_host 0 41530 NULL
160227 +enable_so_pci_vpd_find_tag_fndecl_41534 pci_vpd_find_tag fndecl 0-2 41534 NULL
160228 +enable_so_alloc_cpu_rmap_fndecl_41536 alloc_cpu_rmap fndecl 1 41536 NULL
160229 +enable_so_sv_xdrsize_svc_serv_41544 sv_xdrsize svc_serv 0 41544 NULL nohasharray
160230 +enable_so_iwl_dbgfs_netdetect_read_fndecl_41544 iwl_dbgfs_netdetect_read fndecl 3 41544 &enable_so_sv_xdrsize_svc_serv_41544
160231 +enable_so_velocity_change_mtu_fndecl_41548 velocity_change_mtu fndecl 2 41548 NULL
160232 +enable_so_nr_online_nodes_vardecl_41549 nr_online_nodes vardecl 0 41549 NULL
160233 +enable_so_ntargets_aoedev_41550 ntargets aoedev 0 41550 NULL
160234 +enable_so_set_extent_defrag_fndecl_41558 set_extent_defrag fndecl 3-2 41558 NULL
160235 +enable_so_max_nr_ports_virtio_console_config_41559 max_nr_ports virtio_console_config 0 41559 NULL
160236 +enable_so_fpa_set_fndecl_41560 fpa_set fndecl 3-4 41560 NULL
160237 +enable_so_dma_rx_requested_read_fndecl_41561 dma_rx_requested_read fndecl 3 41561 NULL
160238 +enable_so_stv0680_handle_error_fndecl_41563 stv0680_handle_error fndecl 0-2 41563 NULL
160239 +enable_so_sb_blocklog_xfs_sb_41568 sb_blocklog xfs_sb 0 41568 NULL
160240 +enable_so___alloc_bootmem_nopanic_fndecl_41574 __alloc_bootmem_nopanic fndecl 2-1-3 41574 NULL
160241 +enable_so___read_vmcore_fndecl_41577 __read_vmcore fndecl 2 41577 NULL
160242 +enable_so_mtd_get_device_size_fndecl_41579 mtd_get_device_size fndecl 0 41579 NULL
160243 +enable_so_FirstBurstLength_iscsi_sess_ops_41581 FirstBurstLength iscsi_sess_ops 0 41581 NULL nohasharray
160244 +enable_so_iio_device_add_channel_sysfs_fndecl_41581 iio_device_add_channel_sysfs fndecl 0 41581 &enable_so_FirstBurstLength_iscsi_sess_ops_41581
160245 +enable_so_rx_buffersize_b43legacy_dmaring_41583 rx_buffersize b43legacy_dmaring 0 41583 NULL
160246 +enable_so_fuse_write_end_fndecl_41587 fuse_write_end fndecl 5-3 41587 NULL
160247 +enable_so_xpc_kzalloc_cacheline_aligned_fndecl_41610 xpc_kzalloc_cacheline_aligned fndecl 1 41610 NULL
160248 +enable_so_vmalloc_to_pfn_fndecl_41614 vmalloc_to_pfn fndecl 0 41614 NULL
160249 +enable_so_ocfs2_write_begin_nolock_fndecl_41617 ocfs2_write_begin_nolock fndecl 3 41617 NULL nohasharray
160250 +enable_so_hba_queue_depth_MPT3SAS_ADAPTER_41617 hba_queue_depth MPT3SAS_ADAPTER 0 41617 &enable_so_ocfs2_write_begin_nolock_fndecl_41617
160251 +enable_so_jffs2_gc_fetch_inode_fndecl_41629 jffs2_gc_fetch_inode fndecl 2 41629 NULL
160252 +enable_so_drm_calloc_large_fndecl_41630 drm_calloc_large fndecl 1-2 41630 NULL
160253 +enable_so_read_buf_fndecl_41631 read_buf fndecl 3-0 41631 NULL
160254 +enable_so_dev_major_cuse_init_out_41635 dev_major cuse_init_out 0 41635 NULL
160255 +enable_so_dm_bm_prefetch_fndecl_41636 dm_bm_prefetch fndecl 2 41636 NULL
160256 +enable_so_tx_ring_size_jme_adapter_41640 tx_ring_size jme_adapter 0 41640 NULL
160257 +enable_so_rate_twl4030_priv_41642 rate twl4030_priv 0 41642 NULL
160258 +enable_so_fnode_hpfs_dirent_41643 fnode hpfs_dirent 0 41643 NULL
160259 +enable_so_clear_user_fndecl_41645 clear_user fndecl 2 41645 NULL
160260 +enable_so_rx_buffer_len_e1000_adapter_41647 rx_buffer_len e1000_adapter 0 41647 NULL
160261 +enable_so_usb_alloc_coherent_fndecl_41655 usb_alloc_coherent fndecl 2 41655 NULL
160262 +enable_so_plcp_il_rate_info_41660 plcp il_rate_info 0 41660 NULL
160263 +enable_so_data_length_bnx2i_reject_msg_41661 data_length bnx2i_reject_msg 0 41661 NULL
160264 +enable_so_dpcm_state_read_file_fndecl_41666 dpcm_state_read_file fndecl 3 41666 NULL
160265 +enable_so_frag_threshold_atmel_private_41669 frag_threshold atmel_private 0 41669 NULL
160266 +enable_so_selnl_msglen_fndecl_41672 selnl_msglen fndecl 0 41672 NULL
160267 +enable_so_qib_create_ctxtdata_fndecl_41674 qib_create_ctxtdata fndecl 2 41674 NULL
160268 +enable_so_vram_start_vmw_private_41679 vram_start vmw_private 0 41679 NULL
160269 +enable_so_encrypted_filename_size_ecryptfs_filename_41686 encrypted_filename_size ecryptfs_filename 0 41686 NULL nohasharray
160270 +enable_so_firstUnit_INFTLPartition_41686 firstUnit INFTLPartition 0 41686 &enable_so_encrypted_filename_size_ecryptfs_filename_41686
160271 +enable_so_mem_zatm_dev_41696 mem zatm_dev 0 41696 NULL
160272 +enable_so_nvme_trans_standard_inquiry_page_fndecl_41701 nvme_trans_standard_inquiry_page fndecl 4 41701 NULL
160273 +enable_so_length_usbtest_param_41702 length usbtest_param 0 41702 NULL
160274 +enable_so_zoran_v4l2_calc_bufsize_fndecl_41703 zoran_v4l2_calc_bufsize fndecl 0 41703 NULL
160275 +enable_so_bfs_move_blocks_fndecl_41706 bfs_move_blocks fndecl 2-4 41706 NULL
160276 +enable_so_tree_mod_log_eb_copy_fndecl_41708 tree_mod_log_eb_copy fndecl 6 41708 NULL
160277 +enable_so_ax25_recvmsg_fndecl_41714 ax25_recvmsg fndecl 3 41714 NULL
160278 +enable_so_l_curr_block_xlog_41718 l_curr_block xlog 0 41718 NULL
160279 +enable_so_strstart_deflate_state_41719 strstart deflate_state 0 41719 NULL
160280 +enable_so_hlen_ip_tunnel_41720 hlen ip_tunnel 0 41720 NULL
160281 +enable_so_width_tw68_dev_41726 width tw68_dev 0 41726 NULL
160282 +enable_so_xp_max_npartitions_vardecl_41728 xp_max_npartitions vardecl 0 41728 NULL
160283 +enable_so_sb_sectlog_xfs_sb_41740 sb_sectlog xfs_sb 0 41740 NULL
160284 +enable_so_v4l2_ctrl_handler_init_class_fndecl_41742 v4l2_ctrl_handler_init_class fndecl 2 41742 NULL
160285 +enable_so_cxgb3i_max_connect_vardecl_cxgb3i_c_41744 cxgb3i_max_connect vardecl_cxgb3i.c 0 41744 NULL
160286 +enable_so_val_xfs_sysctl_val_41747 val xfs_sysctl_val 0 41747 NULL
160287 +enable_so_iic_tpm_read_fndecl_41748 iic_tpm_read fndecl 3 41748 NULL
160288 +enable_so_intel_fb_align_height_fndecl_41750 intel_fb_align_height fndecl 0-2 41750 NULL
160289 +enable_so_bm_key_affs_bm_info_41751 bm_key affs_bm_info 0 41751 NULL
160290 +enable_so_encode_filename3_fndecl_41752 encode_filename3 fndecl 3 41752 NULL
160291 +enable_so_insert_dent_fndecl_41753 insert_dent fndecl 3-4-7 41753 NULL
160292 +enable_so_i_metasize_romfs_inode_info_41756 i_metasize romfs_inode_info 0 41756 NULL
160293 +enable_so_bnx2fc_process_l2_frame_compl_fndecl_41763 bnx2fc_process_l2_frame_compl fndecl 3 41763 NULL nohasharray
160294 +enable_so_size_port_buffer_41763 size port_buffer 0 41763 &enable_so_bnx2fc_process_l2_frame_compl_fndecl_41763
160295 +enable_so_len_cbuf_41764 len cbuf 0 41764 NULL nohasharray
160296 +enable_so_bbt_erase_shift_nand_chip_41764 bbt_erase_shift nand_chip 0 41764 &enable_so_len_cbuf_41764
160297 +enable_so___alloc_bootmem_node_high_fndecl_41767 __alloc_bootmem_node_high fndecl 3-2-4 41767 NULL
160298 +enable_so_batadv_socket_write_fndecl_41768 batadv_socket_write fndecl 3 41768 NULL
160299 +enable_so_ocfs2_truncate_cluster_pages_fndecl_41773 ocfs2_truncate_cluster_pages fndecl 2-3 41773 NULL
160300 +enable_so_pcibios_enable_device_fndecl_41776 pcibios_enable_device fndecl 0 41776 NULL
160301 +enable_so_ath9k_multi_regread_fndecl_41779 ath9k_multi_regread fndecl 4 41779 NULL
160302 +enable_so_dma_rx_size_stmmac_priv_41781 dma_rx_size stmmac_priv 0 41781 NULL nohasharray
160303 +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
160304 +enable_so_numtx_velocity_opt_41785 numtx velocity_opt 0 41785 NULL
160305 +enable_so_max_msg_length_mei_client_properties_41791 max_msg_length mei_client_properties 0 41791 NULL nohasharray
160306 +enable_so_make_idx_node_fndecl_41791 make_idx_node fndecl 6-5 41791 &enable_so_max_msg_length_mei_client_properties_41791
160307 +enable_so_usbtest_alloc_urb_fndecl_41800 usbtest_alloc_urb fndecl 3-5-2 41800 NULL
160308 +enable_so_rx_pkt_length_rxpd_41805 rx_pkt_length rxpd 0 41805 NULL
160309 +enable_so_alloc_ksz_desc_info_41806 alloc ksz_desc_info 0 41806 NULL nohasharray
160310 +enable_so_outlen_mlx5_cmd_debug_41806 outlen mlx5_cmd_debug 0 41806 &enable_so_alloc_ksz_desc_info_41806
160311 +enable_so_ath9k_dump_mci_btcoex_fndecl_41809 ath9k_dump_mci_btcoex fndecl 0 41809 NULL
160312 +enable_so_udf_get_pblock_fndecl_41813 udf_get_pblock fndecl 0-4-2 41813 NULL nohasharray
160313 +enable_so_T9_reportid_min_mxt_data_41813 T9_reportid_min mxt_data 0 41813 &enable_so_udf_get_pblock_fndecl_41813
160314 +enable_so_sisusb_num_columns_sisusb_usb_data_41814 sisusb_num_columns sisusb_usb_data 0 41814 NULL nohasharray
160315 +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
160316 +enable_so_nports_cxgb4_lld_info_41815 nports cxgb4_lld_info 0 41815 NULL
160317 +enable_so_n_ssids_wmi_start_scan_arg_41826 n_ssids wmi_start_scan_arg 0 41826 NULL
160318 +enable_so_wdt87xx_get_string_fndecl_41835 wdt87xx_get_string fndecl 4 41835 NULL
160319 +enable_so_root_btrfs_super_block_41846 root btrfs_super_block 0 41846 NULL
160320 +enable_so_al_tr_number_drbd_device_41847 al_tr_number drbd_device 0 41847 NULL
160321 +enable_so_max_tags_index_Tekram_nvram_41851 max_tags_index Tekram_nvram 0 41851 NULL
160322 +enable_so_free_bootmem_node_fndecl_41852 free_bootmem_node fndecl 3-2 41852 NULL nohasharray
160323 +enable_so_ar5523_cmd_write_fndecl_41852 ar5523_cmd_write fndecl 4 41852 &enable_so_free_bootmem_node_fndecl_41852 nohasharray
160324 +enable_so_nf_setsockopt_fndecl_41852 nf_setsockopt fndecl 0 41852 &enable_so_ar5523_cmd_write_fndecl_41852
160325 +enable_so_tx_headroom_nfc_dev_41854 tx_headroom nfc_dev 0 41854 NULL nohasharray
160326 +enable_so_compatsize_xt_target_41854 compatsize xt_target 0 41854 &enable_so_tx_headroom_nfc_dev_41854
160327 +enable_so_dm_add_exception_fndecl_41858 dm_add_exception fndecl 3-2 41858 NULL nohasharray
160328 +enable_so_ino_nilfs_fid_41858 ino nilfs_fid 0 41858 &enable_so_dm_add_exception_fndecl_41858
160329 +enable_so_ext_tree_mark_written_fndecl_41860 ext_tree_mark_written fndecl 2-3 41860 NULL nohasharray
160330 +enable_so_nla_reserve_nohdr_fndecl_41860 nla_reserve_nohdr fndecl 2 41860 &enable_so_ext_tree_mark_written_fndecl_41860
160331 +enable_so_num_tags_esp_41863 num_tags esp 0 41863 NULL
160332 +enable_so_ssb_bus_register_fndecl_41868 ssb_bus_register fndecl 3 41868 NULL
160333 +enable_so_snd_rme96_capture_getrate_fndecl_41874 snd_rme96_capture_getrate fndecl 0 41874 NULL
160334 +enable_so_md_size_sect_drbd_md_41886 md_size_sect drbd_md 0 41886 NULL
160335 +enable_so_rcvidx_fritz_bcs_41889 rcvidx fritz_bcs 0 41889 NULL
160336 +enable_so_qib_rcvhdrcnt_vardecl_qib_iba7322_c_41890 qib_rcvhdrcnt vardecl_qib_iba7322.c 0 41890 NULL
160337 +enable_so_RequestFrameSize__MSG_IOC_FACTS_REPLY_41895 RequestFrameSize _MSG_IOC_FACTS_REPLY 0 41895 NULL
160338 +enable_so_from_seq_file_41897 from seq_file 0 41897 NULL
160339 +enable_so_mem_unit_sysinfo_41901 mem_unit sysinfo 0 41901 NULL
160340 +enable_so_wm8900_set_fll_fndecl_41903 wm8900_set_fll fndecl 3-4 41903 NULL
160341 +enable_so_length_zoran_sync_41909 length zoran_sync 0 41909 NULL
160342 +enable_so_raw_decoder_line_size_vbi_info_41920 raw_decoder_line_size vbi_info 0 41920 NULL
160343 +enable_so_b_read_mon_reader_bin_41923 b_read mon_reader_bin 0 41923 NULL nohasharray
160344 +enable_so_print_endpoint_stat_fndecl_41923 print_endpoint_stat fndecl 0-4 41923 &enable_so_b_read_mon_reader_bin_41923
160345 +enable_so_wil_pmc_llseek_fndecl_41924 wil_pmc_llseek fndecl 2 41924 NULL nohasharray
160346 +enable_so_num_descriptors_wmi_p2p_noa_info_41924 num_descriptors wmi_p2p_noa_info 0 41924 &enable_so_wil_pmc_llseek_fndecl_41924
160347 +enable_so_rssiThreshold_ConfigRid_41926 rssiThreshold ConfigRid 0 41926 NULL
160348 +enable_so_whci_n_caps_fndecl_41932 whci_n_caps fndecl 0 41932 NULL
160349 +enable_so_ss_nblocks_nilfs_segment_summary_41935 ss_nblocks nilfs_segment_summary 0 41935 NULL
160350 +enable_so_rx_rx_done_read_fndecl_41938 rx_rx_done_read fndecl 3 41938 NULL
160351 +enable_so_n_sel_arg_struct_41940 n sel_arg_struct 0 41940 NULL
160352 +enable_so_rmmio_size_cirrus_device_41950 rmmio_size cirrus_device 0 41950 NULL
160353 +enable_so_kmem_zalloc_greedy_fndecl_41959 kmem_zalloc_greedy fndecl 3-2 41959 NULL
160354 +enable_so_ide_init_sg_cmd_fndecl_41962 ide_init_sg_cmd fndecl 2 41962 NULL
160355 +enable_so_relay_open_fndecl_41964 relay_open fndecl 3-4 41964 NULL nohasharray
160356 +enable_so_ccp_reverse_get_dm_area_fndecl_41964 ccp_reverse_get_dm_area fndecl 3 41964 &enable_so_relay_open_fndecl_41964 nohasharray
160357 +enable_so_connector_dcb_output_41964 connector dcb_output 0 41964 &enable_so_ccp_reverse_get_dm_area_fndecl_41964 nohasharray
160358 +enable_so_kmalloc_parameter_fndecl_41964 kmalloc_parameter fndecl 1 41964 &enable_so_connector_dcb_output_41964
160359 +enable_so_n_rbuf_srpt_send_ioctx_41965 n_rbuf srpt_send_ioctx 0 41965 NULL
160360 +enable_so_length_ccp_dm_workarea_41966 length ccp_dm_workarea 0 41966 NULL
160361 +enable_so_ctl_mapbase_timberdale_device_41969 ctl_mapbase timberdale_device 0 41969 NULL
160362 +enable_so_width_fb_copyarea_41973 width fb_copyarea 0 41973 NULL
160363 +enable_so_hsync_ast_vbios_enhtable_41977 hsync ast_vbios_enhtable 0 41977 NULL nohasharray
160364 +enable_so_max_req_queues_qla_hw_data_41977 max_req_queues qla_hw_data 0 41977 &enable_so_hsync_ast_vbios_enhtable_41977
160365 +enable_so_f3_id_amd64_family_type_41979 f3_id amd64_family_type 0 41979 NULL
160366 +enable_so___send_control_msg_fndecl_41986 __send_control_msg fndecl 2-0 41986 NULL
160367 +enable_so_va_end_vmap_area_41988 va_end vmap_area 0 41988 NULL
160368 +enable_so_snd_pcm_oss_read1_fndecl_41992 snd_pcm_oss_read1 fndecl 3 41992 NULL
160369 +enable_so_snd_opl4_mem_proc_read_fndecl_41997 snd_opl4_mem_proc_read fndecl 5 41997 NULL
160370 +enable_so_total_byte_count_els_sts_entry_24xx_41999 total_byte_count els_sts_entry_24xx 0 41999 NULL
160371 +enable_so_vb2_vmalloc_attach_dmabuf_fndecl_42001 vb2_vmalloc_attach_dmabuf fndecl 3 42001 NULL
160372 +enable_so_selinux_secctx_to_secid_fndecl_42003 selinux_secctx_to_secid fndecl 2 42003 NULL
160373 +enable_so_page_offset_ixgbevf_rx_buffer_42004 page_offset ixgbevf_rx_buffer 0 42004 NULL
160374 +enable_so_acpi_tb_install_fixed_table_fndecl_42006 acpi_tb_install_fixed_table fndecl 1 42006 NULL
160375 +enable_so_set_flicker_fndecl_42011 set_flicker fndecl 0 42011 NULL
160376 +enable_so_nvkm_therm_create__fndecl_42013 nvkm_therm_create_ fndecl 4 42013 NULL
160377 +enable_so_svc_rdma_xdr_decode_req_fndecl_42015 svc_rdma_xdr_decode_req fndecl 0 42015 NULL nohasharray
160378 +enable_so_pci_add_new_bus_fndecl_42015 pci_add_new_bus fndecl 3 42015 &enable_so_svc_rdma_xdr_decode_req_fndecl_42015
160379 +enable_so___ieee80211_start_rx_ba_session_fndecl_42023 __ieee80211_start_rx_ba_session fndecl 7 42023 NULL
160380 +enable_so_seq_ports_snd_emu10k1_synth_arg_42026 seq_ports snd_emu10k1_synth_arg 0 42026 NULL
160381 +enable_so_do_mem_probe_fndecl_42028 do_mem_probe fndecl 3-2 42028 NULL nohasharray
160382 +enable_so_copy_nodes_to_user_fndecl_42028 copy_nodes_to_user fndecl 2 42028 &enable_so_do_mem_probe_fndecl_42028
160383 +enable_so_mwifiex_11n_create_rx_reorder_tbl_fndecl_42029 mwifiex_11n_create_rx_reorder_tbl fndecl 4 42029 NULL
160384 +enable_so_spidev_compat_ioctl_fndecl_42033 spidev_compat_ioctl fndecl 2 42033 NULL
160385 +enable_so_ctrl_frame_len_brcmf_sdio_42037 ctrl_frame_len brcmf_sdio 0 42037 NULL
160386 +enable_so_reiserfs_new_inode_fndecl_42039 reiserfs_new_inode fndecl 5 42039 NULL
160387 +enable_so_rx_hr_cfv_info_42044 rx_hr cfv_info 0 42044 NULL
160388 +enable_so_num_tx_qp_i40e_hw_capabilities_42045 num_tx_qp i40e_hw_capabilities 0 42045 NULL nohasharray
160389 +enable_so_num_tid_range_42045 num tid_range 0 42045 &enable_so_num_tx_qp_i40e_hw_capabilities_42045
160390 +enable_so_PortSCSIID__MSG_PORT_FACTS_REPLY_42048 PortSCSIID _MSG_PORT_FACTS_REPLY 0 42048 NULL
160391 +enable_so_regmap_multi_reg_write_fndecl_42049 regmap_multi_reg_write fndecl 3 42049 NULL
160392 +enable_so_sel_write_load_fndecl_42053 sel_write_load fndecl 3 42053 NULL
160393 +enable_so_kvm_init_fndecl_42057 kvm_init fndecl 2-3 42057 NULL nohasharray
160394 +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
160395 +enable_so_fat_add_new_entries_fndecl_42062 fat_add_new_entries fndecl 0 42062 NULL
160396 +enable_so_blk_limits_io_min_fndecl_42065 blk_limits_io_min fndecl 2 42065 NULL nohasharray
160397 +enable_so_b_flags_ivtv_buffer_42065 b_flags ivtv_buffer 0 42065 &enable_so_blk_limits_io_min_fndecl_42065
160398 +enable_so_frag_size_ipv6_pinfo_42073 frag_size ipv6_pinfo 0 42073 NULL
160399 +enable_so_nci_hci_send_event_fndecl_42074 nci_hci_send_event fndecl 5 42074 NULL
160400 +enable_so_ieee80211_scan_results_fndecl_42078 ieee80211_scan_results fndecl 0 42078 NULL
160401 +enable_so_mlx4_ib_rereg_user_mr_fndecl_42079 mlx4_ib_rereg_user_mr fndecl 3-4 42079 NULL nohasharray
160402 +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
160403 +enable_so_i2c_bus_vardecl_i2c_kempld_c_42082 i2c_bus vardecl_i2c-kempld.c 0 42082 NULL
160404 +enable_so_raw_issuer_size_x509_certificate_42091 raw_issuer_size x509_certificate 0 42091 NULL
160405 +enable_so_read_page_owner_fndecl_42094 read_page_owner fndecl 3 42094 NULL
160406 +enable_so_outsize_cros_ec_command_42095 outsize cros_ec_command 0 42095 NULL
160407 +enable_so_do_syslog_fndecl_42100 do_syslog fndecl 3 42100 NULL
160408 +enable_so_gtt_size_radeon_mc_42102 gtt_size radeon_mc 0 42102 NULL nohasharray
160409 +enable_so_proc_pid_attr_write_fndecl_42102 proc_pid_attr_write fndecl 3 42102 &enable_so_gtt_size_radeon_mc_42102
160410 +enable_so_value_xen_hvm_param_42103 value xen_hvm_param 0 42103 NULL
160411 +enable_so_image_offset_sd_42111 image_offset sd 0 42111 NULL
160412 +enable_so_efs_bmap_fndecl_42112 efs_bmap fndecl 0-2 42112 NULL
160413 +enable_so_jbd2_journal_init_dev_fndecl_42115 jbd2_journal_init_dev fndecl 5-3 42115 NULL
160414 +enable_so_ceph_tcp_sendmsg_fndecl_42116 ceph_tcp_sendmsg fndecl 0-4-3 42116 NULL
160415 +enable_so_xhci_alloc_stream_info_fndecl_42125 xhci_alloc_stream_info fndecl 3 42125 NULL
160416 +enable_so_divas_write_fndecl_42126 divas_write fndecl 3 42126 NULL
160417 +enable_so_smb2_sync_write_fndecl_42139 smb2_sync_write fndecl 6 42139 NULL
160418 +enable_so_snd_compr_write_fndecl_42144 snd_compr_write fndecl 3 42144 NULL
160419 +enable_so_uvc_alloc_urb_buffers_fndecl_42145 uvc_alloc_urb_buffers fndecl 0-3-2 42145 NULL
160420 +enable_so_num_cliprects_drm_i915_gem_execbuffer2_42146 num_cliprects drm_i915_gem_execbuffer2 0 42146 NULL
160421 +enable_so_ath6kl_wmi_set_lpreamble_cmd_fndecl_42153 ath6kl_wmi_set_lpreamble_cmd fndecl 2 42153 NULL
160422 +enable_so_channels_audioformat_42156 channels audioformat 0 42156 NULL nohasharray
160423 +enable_so_cnic_support_bnx2x_42156 cnic_support bnx2x 0 42156 &enable_so_channels_audioformat_42156
160424 +enable_so_status_de4x5_desc_42161 status de4x5_desc 0 42161 NULL
160425 +enable_so_height_em28xx_v4l2_42166 height em28xx_v4l2 0 42166 NULL
160426 +enable_so_s_root_block_reiserfs_super_block_v1_42167 s_root_block reiserfs_super_block_v1 0 42167 NULL
160427 +enable_so_copy_from_iter_nocache_fndecl_42168 copy_from_iter_nocache fndecl 2 42168 NULL
160428 +enable_so_next_bucket_prio_set_42171 next_bucket prio_set 0 42171 NULL
160429 +enable_so_start_file_extent_cluster_42173 start file_extent_cluster 0 42173 NULL
160430 +enable_so_block_size_msb_data_42179 block_size msb_data 0 42179 NULL
160431 +enable_so_id_sh_mobile_ceu_companion_42182 id sh_mobile_ceu_companion 0 42182 NULL
160432 +enable_so_stv0367_writeregs_fndecl_42183 stv0367_writeregs fndecl 4 42183 NULL
160433 +enable_so_s2255_fillbuff_fndecl_42189 s2255_fillbuff fndecl 3 42189 NULL
160434 +enable_so___team_options_register_fndecl_42198 __team_options_register fndecl 3 42198 NULL
160435 +enable_so_mc_handle_present_pte_fndecl_42199 mc_handle_present_pte fndecl 2 42199 NULL nohasharray
160436 +enable_so_afs_send_simple_reply_fndecl_42199 afs_send_simple_reply fndecl 3 42199 &enable_so_mc_handle_present_pte_fndecl_42199
160437 +enable_so_udl_alloc_urb_list_fndecl_42203 udl_alloc_urb_list fndecl 3 42203 NULL
160438 +enable_so_rec_len_ext3_dir_entry_2_42207 rec_len ext3_dir_entry_2 0 42207 NULL
160439 +enable_so_construct_key_and_link_fndecl_42210 construct_key_and_link fndecl 3 42210 NULL
160440 +enable_so_skb_push_fndecl_42213 skb_push fndecl 2 42213 NULL
160441 +enable_so_scan_padding_bytes_fndecl_42218 scan_padding_bytes fndecl 0 42218 NULL
160442 +enable_so_set_bredr_fndecl_42228 set_bredr fndecl 4 42228 NULL nohasharray
160443 +enable_so_diva_xdi_write_fndecl_42228 diva_xdi_write fndecl 4 42228 &enable_so_set_bredr_fndecl_42228
160444 +enable_so_dwMaxVideoFrameBufferSize_uvc_frame_42230 dwMaxVideoFrameBufferSize uvc_frame 0 42230 NULL
160445 +enable_so_num_q_vectors_igb_adapter_42232 num_q_vectors igb_adapter 0 42232 NULL
160446 +enable_so_chunksize_mdp_superblock_1_42236 chunksize mdp_superblock_1 0 42236 NULL nohasharray
160447 +enable_so_max_data_size_irda_sock_42236 max_data_size irda_sock 0 42236 &enable_so_chunksize_mdp_superblock_1_42236
160448 +enable_so_scrollback_phys_max_vardecl_fbcon_c_42241 scrollback_phys_max vardecl_fbcon.c 0 42241 NULL
160449 +enable_so_buf_write_ptr_comedi_async_42247 buf_write_ptr comedi_async 0 42247 NULL
160450 +enable_so_nchunks_radeon_cs_parser_42251 nchunks radeon_cs_parser 0 42251 NULL
160451 +enable_so_iwl_dbgfs_bcast_filters_read_fndecl_42258 iwl_dbgfs_bcast_filters_read fndecl 3 42258 NULL
160452 +enable_so_read_kcore_fndecl_42259 read_kcore fndecl 3 42259 NULL
160453 +enable_so_snd_pcm_plug_write_transfer_fndecl_42268 snd_pcm_plug_write_transfer fndecl 3-0 42268 NULL
160454 +enable_so_sge_length_qib_sge_42274 sge_length qib_sge 0 42274 NULL
160455 +enable_so_write_file_spectral_period_fndecl_42275 write_file_spectral_period fndecl 3 42275 NULL
160456 +enable_so_if_sdio_read_scratch_fndecl_42279 if_sdio_read_scratch fndecl 0 42279 NULL
160457 +enable_so_cfg_sriov_nr_virtfn_lpfc_hba_42280 cfg_sriov_nr_virtfn lpfc_hba 0 42280 NULL nohasharray
160458 +enable_so_rx_pending_ethtool_ringparam_42280 rx_pending ethtool_ringparam 0 42280 &enable_so_cfg_sriov_nr_virtfn_lpfc_hba_42280
160459 +enable_so_append_to_buffer_fndecl_42285 append_to_buffer fndecl 3 42285 NULL
160460 +enable_so_reiserfs_xattr_set_handle_fndecl_42289 reiserfs_xattr_set_handle fndecl 5 42289 NULL
160461 +enable_so_efx_mcdi_rpc_async_fndecl_42298 efx_mcdi_rpc_async fndecl 4-5 42298 NULL
160462 +enable_so_generic_cont_expand_simple_fndecl_42301 generic_cont_expand_simple fndecl 2 42301 NULL nohasharray
160463 +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
160464 +enable_so_dcache_dir_lseek_fndecl_42308 dcache_dir_lseek fndecl 2 42308 NULL nohasharray
160465 +enable_so_iwch_reg_user_mr_fndecl_42308 iwch_reg_user_mr fndecl 2-3 42308 &enable_so_dcache_dir_lseek_fndecl_42308
160466 +enable_so_deh_offset_reiserfs_de_head_42314 deh_offset reiserfs_de_head 0 42314 NULL nohasharray
160467 +enable_so_rproc_alloc_fndecl_42314 rproc_alloc fndecl 5 42314 &enable_so_deh_offset_reiserfs_de_head_42314
160468 +enable_so_kvm_write_guest_page_fndecl_42320 kvm_write_guest_page fndecl 2-5 42320 NULL nohasharray
160469 +enable_so_pg_test_nfs_pageio_ops_42320 pg_test nfs_pageio_ops 0 42320 &enable_so_kvm_write_guest_page_fndecl_42320 nohasharray
160470 +enable_so_dbg_leb_write_fndecl_42320 dbg_leb_write fndecl 5-4 42320 &enable_so_pg_test_nfs_pageio_ops_42320
160471 +enable_so_gsi_base_mp_ioapic_gsi_42330 gsi_base mp_ioapic_gsi 0 42330 NULL
160472 +enable_so_mlx4_ib_alloc_cq_buf_fndecl_42345 mlx4_ib_alloc_cq_buf fndecl 3 42345 NULL
160473 +enable_so_fw_xcb_count_qla_hw_data_42354 fw_xcb_count qla_hw_data 0 42354 NULL
160474 +enable_so_nftl_readblock_fndecl_42358 nftl_readblock fndecl 2 42358 NULL
160475 +enable_so_minor_mei_device_42366 minor mei_device 0 42366 NULL
160476 +enable_so_inbufBitCount_bunzip_data_42367 inbufBitCount bunzip_data 0 42367 NULL
160477 +enable_so_symbol_build_supp_rates_fndecl_42369 symbol_build_supp_rates fndecl 0 42369 NULL
160478 +enable_so_acc_len_rcv_sli3_42370 acc_len rcv_sli3 0 42370 NULL
160479 +enable_so_devpts_pty_new_fndecl_42373 devpts_pty_new fndecl 3 42373 NULL
160480 +enable_so_hid_report_len_fndecl_42374 hid_report_len fndecl 0 42374 NULL
160481 +enable_so_ext4_ext_get_access_fndecl_42377 ext4_ext_get_access fndecl 0 42377 NULL nohasharray
160482 +enable_so_salt_size_dm_verity_42377 salt_size dm_verity 0 42377 &enable_so_ext4_ext_get_access_fndecl_42377
160483 +enable_so_mlx5_wq_ll_get_size_fndecl_42379 mlx5_wq_ll_get_size fndecl 0 42379 NULL
160484 +enable_so_placement_offset_bnx2x_agg_info_42380 placement_offset bnx2x_agg_info 0 42380 NULL
160485 +enable_so___spi_validate_fndecl_42385 __spi_validate fndecl 0 42385 NULL
160486 +enable_so_remote_payload_max_nfc_digital_dev_42391 remote_payload_max nfc_digital_dev 0 42391 NULL
160487 +enable_so_no_of_vpath_vxgedev_42396 no_of_vpath vxgedev 0 42396 NULL
160488 +enable_so_module_alloc_fndecl_42397 module_alloc fndecl 1 42397 NULL
160489 +enable_so_prof_len_vardecl_profile_c_42405 prof_len vardecl_profile.c 0 42405 NULL
160490 +enable_so_maximum_v4l2_ctrl_42407 maximum v4l2_ctrl 0 42407 NULL
160491 +enable_so_dma_rxsize_vardecl_stmmac_main_c_42409 dma_rxsize vardecl_stmmac_main.c 0 42409 NULL
160492 +enable_so_vbi_read_fndecl_42410 vbi_read fndecl 3 42410 NULL
160493 +enable_so_length_mei_msg_hdr_42413 length mei_msg_hdr 0 42413 NULL
160494 +enable_so_ext2_xattr_security_set_fndecl_42417 ext2_xattr_security_set fndecl 4 42417 NULL
160495 +enable_so_defrag_lookup_extent_fndecl_42423 defrag_lookup_extent fndecl 2 42423 NULL
160496 +enable_so_hidraw_ioctl_fndecl_42425 hidraw_ioctl fndecl 2 42425 NULL
160497 +enable_so_bin_search_fndecl_42434 bin_search fndecl 0 42434 NULL
160498 +enable_so_write_file_spectral_fft_period_fndecl_42435 write_file_spectral_fft_period fndecl 3 42435 NULL
160499 +enable_so_s_sys_blocksize_omfs_sb_info_42439 s_sys_blocksize omfs_sb_info 0 42439 NULL
160500 +enable_so_rx_ring_size_jme_adapter_42440 rx_ring_size jme_adapter 0 42440 NULL
160501 +enable_so_read_segment_descriptor_fndecl_42449 read_segment_descriptor fndecl 2 42449 NULL
160502 +enable_so_max_srqs_mthca_dev_lim_42450 max_srqs mthca_dev_lim 0 42450 NULL nohasharray
160503 +enable_so_buffer_chain_size_fndecl_42450 buffer_chain_size fndecl 0 42450 &enable_so_max_srqs_mthca_dev_lim_42450
160504 +enable_so_rx_size_uart_8250_dma_42452 rx_size uart_8250_dma 0 42452 NULL nohasharray
160505 +enable_so_read_b43legacy_debugfs_fops_42452 read b43legacy_debugfs_fops 0 42452 &enable_so_rx_size_uart_8250_dma_42452
160506 +enable_so_inquiry_cache_dump_fndecl_42455 inquiry_cache_dump fndecl 0 42455 NULL
160507 +enable_so_s_cssize_ufs_sb_private_info_42456 s_cssize ufs_sb_private_info 0 42456 NULL
160508 +enable_so_num_srqs_mlx4_caps_42462 num_srqs mlx4_caps 0 42462 NULL
160509 +enable_so_rxq_max_tg3_42464 rxq_max tg3 0 42464 NULL
160510 +enable_so_amdgpu_vm_block_size_vardecl_42475 amdgpu_vm_block_size vardecl 0 42475 NULL nohasharray
160511 +enable_so_ext4_get_journal_fndecl_42475 ext4_get_journal fndecl 2 42475 &enable_so_amdgpu_vm_block_size_vardecl_42475
160512 +enable_so_wm9081_set_fll_fndecl_42479 wm9081_set_fll fndecl 3-4 42479 NULL
160513 +enable_so_num_adc_nids_hda_gen_spec_42481 num_adc_nids hda_gen_spec 0 42481 NULL nohasharray
160514 +enable_so_max_allowed_qxl_monitors_config_42481 max_allowed qxl_monitors_config 0 42481 &enable_so_num_adc_nids_hda_gen_spec_42481
160515 +enable_so_snd_vxpocket_new_fndecl_42483 snd_vxpocket_new fndecl 2 42483 NULL
160516 +enable_so_block_shift_befs_sb_info_42485 block_shift befs_sb_info 0 42485 NULL
160517 +enable_so_tot_len_pkt_gl_42487 tot_len pkt_gl 0 42487 NULL
160518 +enable_so_hid_sensor_client_cnt_sensor_hub_data_42488 hid_sensor_client_cnt sensor_hub_data 0 42488 NULL
160519 +enable_so_keylength_gss_krb5_enctype_42493 keylength gss_krb5_enctype 0 42493 NULL
160520 +enable_so_hsi_alloc_msg_fndecl_42496 hsi_alloc_msg fndecl 1 42496 NULL
160521 +enable_so_bpf_check_classic_fndecl_42501 bpf_check_classic fndecl 2 42501 NULL
160522 +enable_so_DataTransferLength_DAC960_V1_UserCommand_42502 DataTransferLength DAC960_V1_UserCommand 0 42502 NULL
160523 +enable_so_ath6kl_sdio_read_write_sync_fndecl_42504 ath6kl_sdio_read_write_sync fndecl 4 42504 NULL
160524 +enable_so_fs_start_efs_sb_info_42506 fs_start efs_sb_info 0 42506 NULL
160525 +enable_so_dec_cluster_info_page_fndecl_42521 dec_cluster_info_page fndecl 3 42521 NULL
160526 +enable_so_xfs_rtmodify_summary_fndecl_42522 xfs_rtmodify_summary fndecl 4-3 42522 NULL
160527 +enable_so_cn_netlink_send_mult_fndecl_42523 cn_netlink_send_mult fndecl 2 42523 NULL
160528 +enable_so_maxframe_size_fc_rport_priv_42527 maxframe_size fc_rport_priv 0 42527 NULL
160529 +enable_so_error_error_bar_retry_read_fndecl_42530 error_error_bar_retry_read fndecl 3 42530 NULL
160530 +enable_so_size_rx_desc_42538 size rx_desc 0 42538 NULL
160531 +enable_so_max_payload_len_pn533_frame_ops_42544 max_payload_len pn533_frame_ops 0 42544 NULL nohasharray
160532 +enable_so_info_debugfs_read_fndecl_42544 info_debugfs_read fndecl 3 42544 &enable_so_max_payload_len_pn533_frame_ops_42544
160533 +enable_so_num_reg_channel_bounds_42546 num reg_channel_bounds 0 42546 NULL
160534 +enable_so_xfs_dir_cilookup_result_fndecl_42547 xfs_dir_cilookup_result fndecl 3 42547 NULL
160535 +enable_so_mr_page_size_srp_device_42550 mr_page_size srp_device 0 42550 NULL
160536 +enable_so_ocfs2_block_check_validate_bhs_fndecl_42557 ocfs2_block_check_validate_bhs fndecl 0 42557 NULL
160537 +enable_so_qla8044_write_optrom_data_fndecl_42561 qla8044_write_optrom_data fndecl 4 42561 NULL
160538 +enable_so_mtu_max_vardecl_42563 mtu_max vardecl 0 42563 NULL nohasharray
160539 +enable_so_ts_write_fndecl_42563 ts_write fndecl 3 42563 &enable_so_mtu_max_vardecl_42563
160540 +enable_so_s_block_base_sysv_sb_info_42564 s_block_base sysv_sb_info 0 42564 NULL nohasharray
160541 +enable_so_do_write_orph_node_fndecl_42564 do_write_orph_node fndecl 2 42564 &enable_so_s_block_base_sysv_sb_info_42564 nohasharray
160542 +enable_so_qib_map_phys_fmr_fndecl_42564 qib_map_phys_fmr fndecl 4 42564 &enable_so_do_write_orph_node_fndecl_42564
160543 +enable_so_usbtmc_write_fndecl_42567 usbtmc_write fndecl 3 42567 NULL
160544 +enable_so_mwifiex_send_addba_fndecl_42572 mwifiex_send_addba fndecl 2 42572 NULL
160545 +enable_so_ufs_read_cylinder_fndecl_42577 ufs_read_cylinder fndecl 2 42577 NULL
160546 +enable_so_max_target_id_mvumi_hba_42578 max_target_id mvumi_hba 0 42578 NULL
160547 +enable_so_irq_create_of_mapping_fndecl_42583 irq_create_of_mapping fndecl 0 42583 NULL
160548 +enable_so_tipc_send_packet_fndecl_42584 tipc_send_packet fndecl 3 42584 NULL
160549 +enable_so_sisusbcon_clear_fndecl_42586 sisusbcon_clear fndecl 5-3-4 42586 NULL
160550 +enable_so_map_region_fndecl_42587 map_region fndecl 1 42587 NULL
160551 +enable_so_bcm3510_readbytes_fndecl_42592 bcm3510_readbytes fndecl 4 42592 NULL
160552 +enable_so_name_len_jffs2_xattr_datum_42593 name_len jffs2_xattr_datum 0 42593 NULL
160553 +enable_so_offset_dmi_ipmi_data_42594 offset dmi_ipmi_data 0 42594 NULL nohasharray
160554 +enable_so_cdc_ncm_set_dgram_size_fndecl_42594 cdc_ncm_set_dgram_size fndecl 2 42594 &enable_so_offset_dmi_ipmi_data_42594
160555 +enable_so_bsize_nfs_parsed_mount_data_42598 bsize nfs_parsed_mount_data 0 42598 NULL
160556 +enable_so_wrap_bcma_device_42599 wrap bcma_device 0 42599 NULL nohasharray
160557 +enable_so_reg_create_fndecl_42599 reg_create fndecl 5 42599 &enable_so_wrap_bcma_device_42599
160558 +enable_so_maxSenseBytes_mpt_ioctl_command_42600 maxSenseBytes mpt_ioctl_command 0 42600 NULL
160559 +enable_so_ilo_write_fndecl_42601 ilo_write fndecl 3 42601 NULL nohasharray
160560 +enable_so_ndev_init_isr_fndecl_42601 ndev_init_isr fndecl 3 42601 &enable_so_ilo_write_fndecl_42601
160561 +enable_so_next_rs_il3945_rate_info_42604 next_rs il3945_rate_info 0 42604 NULL nohasharray
160562 +enable_so_nilfs_alloc_seg_bio_fndecl_42604 nilfs_alloc_seg_bio fndecl 2-3 42604 &enable_so_next_rs_il3945_rate_info_42604
160563 +enable_so_qlcnic_82xx_calculate_msix_vector_fndecl_42609 qlcnic_82xx_calculate_msix_vector fndecl 0 42609 NULL
160564 +enable_so_n_channels_wmi_start_scan_arg_42610 n_channels wmi_start_scan_arg 0 42610 NULL
160565 +enable_so_hashsize_Qdisc_class_hash_42616 hashsize Qdisc_class_hash 0 42616 NULL
160566 +enable_so_size_ck804xrom_window_42617 size ck804xrom_window 0 42617 NULL
160567 +enable_so_HFP_kyrofb_info_42618 HFP kyrofb_info 0 42618 NULL
160568 +enable_so_user_regset_copyin_fndecl_42619 user_regset_copyin fndecl 7 42619 NULL
160569 +enable_so_wlc_phy_loadsampletable_nphy_fndecl_42620 wlc_phy_loadsampletable_nphy fndecl 3 42620 NULL
160570 +enable_so_opt_len_genevehdr_42621 opt_len genevehdr 0 42621 NULL
160571 +enable_so_nfs42_proc_deallocate_fndecl_42622 nfs42_proc_deallocate fndecl 2-3 42622 NULL
160572 +enable_so_ir_lirc_transmit_ir_fndecl_42624 ir_lirc_transmit_ir fndecl 3 42624 NULL
160573 +enable_so_length_bplus_leaf_node_42626 length bplus_leaf_node 0 42626 NULL
160574 +enable_so_rx_hdr_overflow_read_fndecl_42628 rx_hdr_overflow_read fndecl 3 42628 NULL
160575 +enable_so_pidlist_allocate_fndecl_42631 pidlist_allocate fndecl 1 42631 NULL
160576 +enable_so_dm_set_device_limits_fndecl_42632 dm_set_device_limits fndecl 3 42632 NULL
160577 +enable_so_lbs_cmd_async_fndecl_42634 lbs_cmd_async fndecl 4 42634 NULL
160578 +enable_so_valid_ide_tape_obj_42635 valid ide_tape_obj 0 42635 NULL
160579 +enable_so_find_rsb_dir_fndecl_42636 find_rsb_dir fndecl 3 42636 NULL
160580 +enable_so_snd_emu10k1_create_fndecl_42637 snd_emu10k1_create fndecl 5 42637 NULL nohasharray
160581 +enable_so_n_algs_wmfw_adsp2_id_hdr_42637 n_algs wmfw_adsp2_id_hdr 0 42637 &enable_so_snd_emu10k1_create_fndecl_42637
160582 +enable_so_brcmf_sdio_download_nvram_fndecl_42648 brcmf_sdio_download_nvram fndecl 3 42648 NULL
160583 +enable_so_fuse_getxattr_fndecl_42649 fuse_getxattr fndecl 4 42649 NULL
160584 +enable_so___kfifo_dma_out_finish_r_fndecl_42656 __kfifo_dma_out_finish_r fndecl 2 42656 NULL
160585 +enable_so_jffs2_scan_dirty_space_fndecl_42666 jffs2_scan_dirty_space fndecl 3 42666 NULL
160586 +enable_so_vOver_plus_panel_info_42670 vOver_plus panel_info 0 42670 NULL
160587 +enable_so_keyctl_get_security_fndecl_42673 keyctl_get_security fndecl 3 42673 NULL
160588 +enable_so_max_probe_length_iwl_ucode_capabilities_42674 max_probe_length iwl_ucode_capabilities 0 42674 NULL
160589 +enable_so_mxm_shadow_rom_fetch_fndecl_42681 mxm_shadow_rom_fetch fndecl 4 42681 NULL
160590 +enable_so_num_rx_bds_bcm_sysport_priv_42683 num_rx_bds bcm_sysport_priv 0 42683 NULL
160591 +enable_so_ext4_trim_extent_fndecl_42684 ext4_trim_extent fndecl 0-4-2-3 42684 NULL nohasharray
160592 +enable_so_n_sections_pefile_context_42684 n_sections pefile_context 0 42684 &enable_so_ext4_trim_extent_fndecl_42684 nohasharray
160593 +enable_so_read_file_spectral_short_repeat_fndecl_42684 read_file_spectral_short_repeat fndecl 3 42684 &enable_so_n_sections_pefile_context_42684
160594 +enable_so_oom_adj_write_fndecl_42687 oom_adj_write fndecl 3 42687 NULL
160595 +enable_so_ccp_update_sg_workarea_fndecl_42688 ccp_update_sg_workarea fndecl 2 42688 NULL
160596 +enable_so_BufferLength_respQ_e_42691 BufferLength respQ_e 0 42691 NULL
160597 +enable_so_data_size_dm_ioctl_42701 data_size dm_ioctl 0 42701 NULL nohasharray
160598 +enable_so_vm_map_ram_fndecl_42701 vm_map_ram fndecl 2 42701 &enable_so_data_size_dm_ioctl_42701
160599 +enable_so_transport_lba_64_ext_fndecl_42705 transport_lba_64_ext fndecl 0 42705 NULL
160600 +enable_so_len_nfs4_layoutdriver_data_42714 len nfs4_layoutdriver_data 0 42714 NULL nohasharray
160601 +enable_so_reordering_tcp_sock_42714 reordering tcp_sock 0 42714 &enable_so_len_nfs4_layoutdriver_data_42714
160602 +enable_so_start_sect_hd_struct_42718 start_sect hd_struct 0 42718 NULL
160603 +enable_so_rcvtidcnt_qib_devdata_42719 rcvtidcnt qib_devdata 0 42719 NULL
160604 +enable_so_clsb_isar_hw_42720 clsb isar_hw 0 42720 NULL
160605 +enable_so_status_full_rx_done_desc_42726 status full_rx_done_desc 0 42726 NULL
160606 +enable_so_tda10071_wr_regs_fndecl_42727 tda10071_wr_regs fndecl 4 42727 NULL
160607 +enable_so_handle_abnormal_pfn_fndecl_42730 handle_abnormal_pfn fndecl 3 42730 NULL
160608 +enable_so_maxbcnt_aoedev_42731 maxbcnt aoedev 0 42731 NULL
160609 +enable_so_irq_domain_alloc_descs_fndecl_42732 irq_domain_alloc_descs fndecl 0 42732 NULL
160610 +enable_so_single_open_size_fndecl_42736 single_open_size fndecl 4 42736 NULL
160611 +enable_so_nilfs_skip_summary_info_fndecl_42739 nilfs_skip_summary_info fndecl 4-5 42739 NULL
160612 +enable_so_head_hid_debug_list_42742 head hid_debug_list 0 42742 NULL
160613 +enable_so_Ha_tvnorm_42743 Ha tvnorm 0 42743 NULL nohasharray
160614 +enable_so_tcp_adjust_pcount_fndecl_42743 tcp_adjust_pcount fndecl 3 42743 &enable_so_Ha_tvnorm_42743
160615 +enable_so_p54_parse_rssical_fndecl_42750 p54_parse_rssical fndecl 3 42750 NULL
160616 +enable_so_SyS_rt_sigpending_fndecl_42753 SyS_rt_sigpending fndecl 2 42753 NULL
160617 +enable_so_unmap_entire_bt_fndecl_42755 unmap_entire_bt fndecl 3 42755 NULL nohasharray
160618 +enable_so_bmc150_accel_fifo_transfer_fndecl_42755 bmc150_accel_fifo_transfer fndecl 3 42755 &enable_so_unmap_entire_bt_fndecl_42755
160619 +enable_so_tcf_csum_skb_nextlayer_fndecl_42762 tcf_csum_skb_nextlayer fndecl 3 42762 NULL
160620 +enable_so_elems_v4l2_ctrl_42763 elems v4l2_ctrl 0 42763 NULL
160621 +enable_so_maxdev_blogic_adapter_42764 maxdev blogic_adapter 0 42764 NULL
160622 +enable_so_dc_block_number_disk_child_42766 dc_block_number disk_child 0 42766 NULL
160623 +enable_so_cmd_idx_rtsx_ucr_42770 cmd_idx rtsx_ucr 0 42770 NULL nohasharray
160624 +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
160625 +enable_so_read_file_frameerrors_fndecl_42770 read_file_frameerrors fndecl 3 42770 &enable_so_ie_len_wmi_start_scan_arg_42770
160626 +enable_so_fw_len_mwifiex_fw_image_42772 fw_len mwifiex_fw_image 0 42772 NULL
160627 +enable_so_skb_size_pxa168_eth_private_42775 skb_size pxa168_eth_private 0 42775 NULL
160628 +enable_so_hsr_get_max_mtu_fndecl_42776 hsr_get_max_mtu fndecl 0 42776 NULL
160629 +enable_so_lov_tgt_size_lov_obd_42782 lov_tgt_size lov_obd 0 42782 NULL
160630 +enable_so_rx_data_length_hso_serial_42783 rx_data_length hso_serial 0 42783 NULL
160631 +enable_so_usbnet_change_mtu_fndecl_42784 usbnet_change_mtu fndecl 2 42784 NULL nohasharray
160632 +enable_so_ssid_len_ath6kl_vif_42784 ssid_len ath6kl_vif 0 42784 &enable_so_usbnet_change_mtu_fndecl_42784 nohasharray
160633 +enable_so_dvb_dmxdev_ts_callback_fndecl_42784 dvb_dmxdev_ts_callback fndecl 2-4 42784 &enable_so_ssid_len_ath6kl_vif_42784
160634 +enable_so_offset_fuse_page_desc_42785 offset fuse_page_desc 0 42785 NULL
160635 +enable_so_memblock_add_region_fndecl_42790 memblock_add_region fndecl 1-2 42790 NULL
160636 +enable_so_xdr_encode_word_fndecl_42802 xdr_encode_word fndecl 2 42802 NULL
160637 +enable_so_SyS_fsetxattr_fndecl_42804 SyS_fsetxattr fndecl 4 42804 NULL
160638 +enable_so_ext4_quota_write_fndecl_42809 ext4_quota_write fndecl 5-4 42809 NULL nohasharray
160639 +enable_so_len_il3945_rx_frame_hdr_42809 len il3945_rx_frame_hdr 0 42809 &enable_so_ext4_quota_write_fndecl_42809
160640 +enable_so_nl80211_send_rx_assoc_fndecl_42811 nl80211_send_rx_assoc fndecl 4 42811 NULL
160641 +enable_so_usb_hcd_unlink_urb_fndecl_42819 usb_hcd_unlink_urb fndecl 2 42819 NULL
160642 +enable_so_sl_realloc_bufs_fndecl_42821 sl_realloc_bufs fndecl 2 42821 NULL
160643 +enable_so_m_agino_log_xfs_mount_42823 m_agino_log xfs_mount 0 42823 NULL
160644 +enable_so_lbs_highrssi_read_fndecl_42826 lbs_highrssi_read fndecl 3 42826 NULL
160645 +enable_so_clear_update_marker_fndecl_42827 clear_update_marker fndecl 3 42827 NULL
160646 +enable_so_ezusb_program_bytes_fndecl_42828 ezusb_program_bytes fndecl 4 42828 NULL
160647 +enable_so_dev_addr_fsl_edma_slave_config_42835 dev_addr fsl_edma_slave_config 0 42835 NULL
160648 +enable_so_pcifront_bus_write_fndecl_42836 pcifront_bus_write fndecl 5 42836 NULL
160649 +enable_so_decompress_compressor_42840 decompress compressor 0 42840 NULL
160650 +enable_so_memory_block_size_bytes_fndecl_42846 memory_block_size_bytes fndecl 0 42846 NULL
160651 +enable_so_old_oblock_dm_cache_migration_42847 old_oblock dm_cache_migration 0 42847 NULL
160652 +enable_so_int_in_endpointAddr_usb_yurex_42850 int_in_endpointAddr usb_yurex 0 42850 NULL
160653 +enable_so_rdma_addr_size_fndecl_42855 rdma_addr_size fndecl 0 42855 NULL
160654 +enable_so_vxlan_remcsum_fndecl_42858 vxlan_remcsum fndecl 4-3 42858 NULL
160655 +enable_so_ext4_prepare_inline_data_fndecl_42863 ext4_prepare_inline_data fndecl 3 42863 NULL nohasharray
160656 +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
160657 +enable_so_SyS_set_mempolicy_fndecl_42867 SyS_set_mempolicy fndecl 3 42867 NULL
160658 +enable_so_mmio_start_vmw_private_42869 mmio_start vmw_private 0 42869 NULL
160659 +enable_so_register_memory_resource_fndecl_42873 register_memory_resource fndecl 2-1 42873 NULL
160660 +enable_so_dlfb_ops_write_fndecl_42885 dlfb_ops_write fndecl 3 42885 NULL
160661 +enable_so_number_of_tds_fndecl_42895 number_of_tds fndecl 0 42895 NULL
160662 +enable_so_init_bch_fndecl_42897 init_bch fndecl 1-2 42897 NULL
160663 +enable_so_ql2xmaxqdepth_vardecl_qla_os_c_42899 ql2xmaxqdepth vardecl_qla_os.c 0 42899 NULL
160664 +enable_so_memblock_find_in_range_node_fndecl_42905 memblock_find_in_range_node fndecl 0-2-1-3-4 42905 NULL
160665 +enable_so_name_length_spar_controlvm_parameters_header_42909 name_length spar_controlvm_parameters_header 0 42909 NULL
160666 +enable_so_vd_vblocknr_nilfs_vdesc_42910 vd_vblocknr nilfs_vdesc 0 42910 NULL
160667 +enable_so_rts51x_bulk_transport_fndecl_42911 rts51x_bulk_transport fndecl 6 42911 NULL
160668 +enable_so_length_drm_property_blob_42912 length drm_property_blob 0 42912 NULL
160669 +enable_so_do_command_extended_fndecl_42913 do_command_extended fndecl 0 42913 NULL
160670 +enable_so_clkin_adf4350_state_42914 clkin adf4350_state 0 42914 NULL
160671 +enable_so_wMaxInputLength_i2c_hid_desc_42932 wMaxInputLength i2c_hid_desc 0 42932 NULL
160672 +enable_so_bnx2x_vf_mcast_fndecl_42933 bnx2x_vf_mcast fndecl 4 42933 NULL
160673 +enable_so_max_mad_size_ib_port_immutable_42934 max_mad_size ib_port_immutable 0 42934 NULL
160674 +enable_so_nblocks_nvme_user_io_42935 nblocks nvme_user_io 0 42935 NULL
160675 +enable_so_mc_vram_size_radeon_mc_42937 mc_vram_size radeon_mc 0 42937 NULL
160676 +enable_so_spi_bpw_vardecl_ifx6x60_c_42939 spi_bpw vardecl_ifx6x60.c 0 42939 NULL
160677 +enable_so_length__SCADESC_42942 length _SCADESC 0 42942 NULL
160678 +enable_so_rate_n_flags_iwl_mvm_tid_data_42946 rate_n_flags iwl_mvm_tid_data 0 42946 NULL
160679 +enable_so_hippi_change_mtu_fndecl_42953 hippi_change_mtu fndecl 2 42953 NULL
160680 +enable_so_vb2_dc_get_userptr_fndecl_42957 vb2_dc_get_userptr fndecl 2-3 42957 NULL
160681 +enable_so_brcmf_usb_tx_ctlpkt_fndecl_42958 brcmf_usb_tx_ctlpkt fndecl 3 42958 NULL
160682 +enable_so_kernfs_iop_setxattr_fndecl_42959 kernfs_iop_setxattr fndecl 4 42959 NULL
160683 +enable_so_gpio_count_async_state_42965 gpio_count async_state 0 42965 NULL nohasharray
160684 +enable_so_udf_get_block_fndecl_42965 udf_get_block fndecl 2 42965 &enable_so_gpio_count_async_state_42965
160685 +enable_so___pskb_copy_fclone_fndecl_42969 __pskb_copy_fclone fndecl 2 42969 NULL
160686 +enable_so_shadow_rd32_fndecl_42974 shadow_rd32 fndecl 2 42974 NULL
160687 +enable_so_periods_max_snd_pcm_hardware_42979 periods_max snd_pcm_hardware 0 42979 NULL
160688 +enable_so_brcmf_sdiod_send_buf_fndecl_42982 brcmf_sdiod_send_buf fndecl 3 42982 NULL
160689 +enable_so_max_pfn_amdgpu_vm_manager_42989 max_pfn amdgpu_vm_manager 0 42989 NULL
160690 +enable_so_len_kvaser_msg_42994 len kvaser_msg 0 42994 NULL
160691 +enable_so_hw_token_fotg210_qh_hw_42995 hw_token fotg210_qh_hw 0 42995 NULL
160692 +enable_so_num_mappings_nd_region_desc_42998 num_mappings nd_region_desc 0 42998 NULL nohasharray
160693 +enable_so_ea_len_fndecl_42998 ea_len fndecl 0 42998 &enable_so_num_mappings_nd_region_desc_42998
160694 +enable_so_buf_size_ivtv_stream_43002 buf_size ivtv_stream 0 43002 NULL
160695 +enable_so_header_len_fndecl_43003 header_len fndecl 0 43003 NULL
160696 +enable_so_drm_mm_insert_helper_fndecl_43005 drm_mm_insert_helper fndecl 3 43005 NULL
160697 +enable_so_btrfs_check_shared_fndecl_43007 btrfs_check_shared fndecl 5 43007 NULL
160698 +enable_so_pkt_size_be_rx_compl_info_43008 pkt_size be_rx_compl_info 0 43008 NULL
160699 +enable_so_ide_inb_fndecl_43010 ide_inb fndecl 0 43010 NULL
160700 +enable_so_len_i2c_msg_43014 len i2c_msg 0 43014 NULL nohasharray
160701 +enable_so_obd_ioctl_popdata_fndecl_43014 obd_ioctl_popdata fndecl 3 43014 &enable_so_len_i2c_msg_43014
160702 +enable_so_ath6kl_wmi_reconnect_cmd_fndecl_43017 ath6kl_wmi_reconnect_cmd fndecl 2 43017 NULL nohasharray
160703 +enable_so_key_replays_read_fndecl_43017 key_replays_read fndecl 3 43017 &enable_so_ath6kl_wmi_reconnect_cmd_fndecl_43017 nohasharray
160704 +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
160705 +enable_so_PacketLength__MSG_LAN_RECEIVE_POST_REPLY_43028 PacketLength _MSG_LAN_RECEIVE_POST_REPLY 0 43028 NULL
160706 +enable_so_a_bss_exec_43030 a_bss exec 0 43030 NULL
160707 +enable_so_usHActive__ATOM_DTD_FORMAT_43031 usHActive _ATOM_DTD_FORMAT 0 43031 NULL nohasharray
160708 +enable_so_count_ixgbe_ring_43031 count ixgbe_ring 0 43031 &enable_so_usHActive__ATOM_DTD_FORMAT_43031
160709 +enable_so_ext3_orphan_get_fndecl_43033 ext3_orphan_get fndecl 2 43033 NULL nohasharray
160710 +enable_so_pagl_leftrec_xfs_perag_43033 pagl_leftrec xfs_perag 0 43033 &enable_so_ext3_orphan_get_fndecl_43033
160711 +enable_so_channels_max_snd_usb_substream_43034 channels_max snd_usb_substream 0 43034 NULL
160712 +enable_so_qpc_entry_sz_mthca_dev_lim_43040 qpc_entry_sz mthca_dev_lim 0 43040 NULL
160713 +enable_so_copy_page_to_iter_iovec_fndecl_43041 copy_page_to_iter_iovec fndecl 3 43041 NULL
160714 +enable_so_init_chip_wc_pat_fndecl_43043 init_chip_wc_pat fndecl 2 43043 NULL
160715 +enable_so_stmmac_change_mtu_fndecl_43052 stmmac_change_mtu fndecl 2 43052 NULL
160716 +enable_so_logical_block_size_queue_limits_43053 logical_block_size queue_limits 0 43053 NULL
160717 +enable_so_s_reserved_gdt_blocks_ext4_super_block_43054 s_reserved_gdt_blocks ext4_super_block 0 43054 NULL
160718 +enable_so_mwifiex_rdeeprom_write_fndecl_43057 mwifiex_rdeeprom_write fndecl 3 43057 NULL
160719 +enable_so_inode_number_squashfs_base_inode_43062 inode_number squashfs_base_inode 0 43062 NULL nohasharray
160720 +enable_so_acpi_dev_get_ioresource_fndecl_43062 acpi_dev_get_ioresource fndecl 3-2 43062 &enable_so_inode_number_squashfs_base_inode_43062
160721 +enable_so_len_ib_ucm_rep_43064 len ib_ucm_rep 0 43064 NULL
160722 +enable_so_len_srp_direct_buf_43066 len srp_direct_buf 0 43066 NULL
160723 +enable_so_quirk_simultaneous_discovery_write_fndecl_43076 quirk_simultaneous_discovery_write fndecl 3 43076 NULL
160724 +enable_so_output_buffer_size_vardecl_seq_midi_c_43084 output_buffer_size vardecl_seq_midi.c 0 43084 NULL
160725 +enable_so_bttv_prepare_buffer_fndecl_43088 bttv_prepare_buffer fndecl 6-5 43088 NULL
160726 +enable_so_SyS_sched_getaffinity_fndecl_43089 SyS_sched_getaffinity fndecl 2 43089 NULL
160727 +enable_so_i2c_wr_max_cx24116_config_43094 i2c_wr_max cx24116_config 0 43094 NULL
160728 +enable_so__create_message_fndecl_43096 _create_message fndecl 2 43096 NULL
160729 +enable_so_printf_size_mon_reader_text_43097 printf_size mon_reader_text 0 43097 NULL
160730 +enable_so_hpsa_change_queue_depth_fndecl_43098 hpsa_change_queue_depth fndecl 2 43098 NULL
160731 +enable_so_if_sdio_read_rx_unit_fndecl_43099 if_sdio_read_rx_unit fndecl 0 43099 NULL
160732 +enable_so_sector_badblocks_43102 sector badblocks 0 43102 NULL
160733 +enable_so_cyttsp_i2c_write_block_data_fndecl_43104 cyttsp_i2c_write_block_data fndecl 4 43104 NULL
160734 +enable_so_xlog_recover_add_to_trans_fndecl_43108 xlog_recover_add_to_trans fndecl 4 43108 NULL
160735 +enable_so_bio_get_nr_vecs_fndecl_43109 bio_get_nr_vecs fndecl 0 43109 NULL
160736 +enable_so___rounddown_pow_of_two_fndecl_43111 __rounddown_pow_of_two fndecl 0 43111 NULL
160737 +enable_so_ore_verify_layout_fndecl_43114 ore_verify_layout fndecl 1 43114 NULL nohasharray
160738 +enable_so_valuelen_hi_extended_attribute_43114 valuelen_hi extended_attribute 0 43114 &enable_so_ore_verify_layout_fndecl_43114
160739 +enable_so_range_max_regmap_range_43116 range_max regmap_range 0 43116 NULL
160740 +enable_so_rx_fcs_err_read_fndecl_43119 rx_fcs_err_read fndecl 3 43119 NULL
160741 +enable_so_meta_prod_netrx_pending_operations_43121 meta_prod netrx_pending_operations 0 43121 NULL nohasharray
160742 +enable_so_of_alias_get_id_fndecl_43121 of_alias_get_id fndecl 0 43121 &enable_so_meta_prod_netrx_pending_operations_43121
160743 +enable_so_output_pool_snd_seq_client_pool_43126 output_pool snd_seq_client_pool 0 43126 NULL
160744 +enable_so_fm10k_change_mtu_fndecl_43135 fm10k_change_mtu fndecl 2 43135 NULL
160745 +enable_so_pcf8563_read_block_data_fndecl_43139 pcf8563_read_block_data fndecl 3 43139 NULL
160746 +enable_so_Size_aac_fibhdr_43144 Size aac_fibhdr 0 43144 NULL
160747 +enable_so_btrfs_create_subvol_root_fndecl_43148 btrfs_create_subvol_root fndecl 4 43148 NULL
160748 +enable_so_xfs_rtmodify_range_fndecl_43150 xfs_rtmodify_range fndecl 3 43150 NULL
160749 +enable_so_bblog_offset_mdp_superblock_1_43154 bblog_offset mdp_superblock_1 0 43154 NULL
160750 +enable_so_kvm_vcpu_gfn_to_pfn_fndecl_43158 kvm_vcpu_gfn_to_pfn fndecl 2 43158 NULL
160751 +enable_so___f2fs_setxattr_fndecl_43162 __f2fs_setxattr fndecl 5 43162 NULL
160752 +enable_so_filename_size_ecryptfs_filename_43164 filename_size ecryptfs_filename 0 43164 NULL nohasharray
160753 +enable_so_doc_config_location_vardecl_diskonchip_c_43164 doc_config_location vardecl_diskonchip.c 0 43164 &enable_so_filename_size_ecryptfs_filename_43164
160754 +enable_so_hpi_read_word_fndecl_43165 hpi_read_word fndecl 0 43165 NULL
160755 +enable_so_xlog_bread_noalign_fndecl_43170 xlog_bread_noalign fndecl 2 43170 NULL
160756 +enable_so_byte_count_il_rx_mpdu_res_start_43171 byte_count il_rx_mpdu_res_start 0 43171 NULL
160757 +enable_so_packetizeRx_fndecl_43175 packetizeRx fndecl 3 43175 NULL
160758 +enable_so_getdqbuf_fndecl_43183 getdqbuf fndecl 1 43183 NULL
160759 +enable_so_unxlate_dev_mem_ptr_fndecl_43184 unxlate_dev_mem_ptr fndecl 1 43184 NULL nohasharray
160760 +enable_so_aoechr_write_fndecl_43184 aoechr_write fndecl 3 43184 &enable_so_unxlate_dev_mem_ptr_fndecl_43184
160761 +enable_so_length_ib_mac_iocb_rsp_43186 length ib_mac_iocb_rsp 0 43186 NULL
160762 +enable_so_block_end_dm_cell_key_43191 block_end dm_cell_key 0 43191 NULL
160763 +enable_so_if_spi_host_to_card_fndecl_43193 if_spi_host_to_card fndecl 4 43193 NULL
160764 +enable_so_nilfs_cpfile_block_get_snapshot_list_fndecl_43198 nilfs_cpfile_block_get_snapshot_list fndecl 2 43198 NULL
160765 +enable_so_tidno_ath_atx_tid_43202 tidno ath_atx_tid 0 43202 NULL nohasharray
160766 +enable_so_rx_data_eaten_rxrpc_call_43202 rx_data_eaten rxrpc_call 0 43202 &enable_so_tidno_ath_atx_tid_43202
160767 +enable_so_root_id___prelim_ref_43204 root_id __prelim_ref 0 43204 NULL
160768 +enable_so_dm_bufio_release_move_fndecl_43207 dm_bufio_release_move fndecl 2 43207 NULL
160769 +enable_so_device_id_ipmi_device_id_43213 device_id ipmi_device_id 0 43213 NULL
160770 +enable_so_nr_efi_runtime_map_vardecl_runtime_map_c_43216 nr_efi_runtime_map vardecl_runtime-map.c 0 43216 NULL
160771 +enable_so_ramdisk_size_setup_header_43217 ramdisk_size setup_header 0 43217 NULL nohasharray
160772 +enable_so_try_async_pf_fndecl_43217 try_async_pf fndecl 3 43217 &enable_so_ramdisk_size_setup_header_43217
160773 +enable_so_i2c_add_mux_adapter_fndecl_43222 i2c_add_mux_adapter fndecl 4 43222 NULL
160774 +enable_so_mic_len_ieee80211_cipher_scheme_43227 mic_len ieee80211_cipher_scheme 0 43227 NULL
160775 +enable_so_nvif_object_mthd_fndecl_43235 nvif_object_mthd fndecl 4 43235 NULL
160776 +enable_so_send_write_fndecl_43242 send_write fndecl 2-0 43242 NULL
160777 +enable_so_actual_size_rfd_43243 actual_size rfd 0 43243 NULL
160778 +enable_so_sb_rextents_xfs_sb_43244 sb_rextents xfs_sb 0 43244 NULL
160779 +enable_so_num_vc_iadev_priv_43250 num_vc iadev_priv 0 43250 NULL
160780 +enable_so_agp_create_user_memory_fndecl_43256 agp_create_user_memory fndecl 1 43256 NULL
160781 +enable_so_regspacing_si_sm_io_43277 regspacing si_sm_io 0 43277 NULL
160782 +enable_so_persistent_ram_new_fndecl_43278 persistent_ram_new fndecl 2-1 43278 NULL
160783 +enable_so_tx_modulus_cdc_ncm_ctx_43289 tx_modulus cdc_ncm_ctx 0 43289 NULL
160784 +enable_so_size_oid_t_43292 size oid_t 0 43292 NULL
160785 +enable_so_ip_vs_icmp_xmit_v6_fndecl_43294 ip_vs_icmp_xmit_v6 fndecl 4 43294 NULL
160786 +enable_so_transfer_dma_urb_43305 transfer_dma urb 0 43305 NULL
160787 +enable_so_total_nic_func_qlcnic_hardware_context_43307 total_nic_func qlcnic_hardware_context 0 43307 NULL
160788 +enable_so_rio_request_outb_mbox_fndecl_43309 rio_request_outb_mbox fndecl 3 43309 NULL
160789 +enable_so_add_to_list_fndecl_43311 add_to_list fndecl 5-4 43311 NULL
160790 +enable_so_header_len_gether_43313 header_len gether 0 43313 NULL
160791 +enable_so_smsc9420_rx_handoff_fndecl_43315 smsc9420_rx_handoff fndecl 3 43315 NULL
160792 +enable_so_group_count_ore_layout_43325 group_count ore_layout 0 43325 NULL
160793 +enable_so_qib_refresh_qsfp_cache_fndecl_43328 qib_refresh_qsfp_cache fndecl 0 43328 NULL
160794 +enable_so_lpddr_write_buffers_fndecl_43330 lpddr_write_buffers fndecl 3 43330 NULL
160795 +enable_so_max_packet_bytes_ua101_stream_43333 max_packet_bytes ua101_stream 0 43333 NULL
160796 +enable_so_b_num_l1oip_43336 b_num l1oip 0 43336 NULL
160797 +enable_so_file_size_hpfs_dirent_43338 file_size hpfs_dirent 0 43338 NULL
160798 +enable_so_vactive_videomode_43345 vactive videomode 0 43345 NULL
160799 +enable_so_wake_packet_bufsize_iwl_wowlan_status_data_43348 wake_packet_bufsize iwl_wowlan_status_data 0 43348 NULL nohasharray
160800 +enable_so_debugfs_read_fndecl_43348 debugfs_read fndecl 3 43348 &enable_so_wake_packet_bufsize_iwl_wowlan_status_data_43348
160801 +enable_so_test_iso_queue_fndecl_43349 test_iso_queue fndecl 5-3 43349 NULL nohasharray
160802 +enable_so___kmalloc_node_track_caller_fndecl_43349 __kmalloc_node_track_caller fndecl 1 43349 &enable_so_test_iso_queue_fndecl_43349
160803 +enable_so_pktsz_fifo_43351 pktsz fifo 0 43351 NULL nohasharray
160804 +enable_so_entry_size_xpc_channel_43351 entry_size xpc_channel 0 43351 &enable_so_pktsz_fifo_43351
160805 +enable_so_header_len_dst_entry_43355 header_len dst_entry 0 43355 NULL nohasharray
160806 +enable_so_get_module_load_offset_fndecl_43355 get_module_load_offset fndecl 0 43355 &enable_so_header_len_dst_entry_43355
160807 +enable_so_inftl_write_fndecl_43357 inftl_write fndecl 2 43357 NULL
160808 +enable_so_bulk_out_endpoint_edgeport_serial_43358 bulk_out_endpoint edgeport_serial 0 43358 NULL
160809 +enable_so_get_subdir_fndecl_43366 get_subdir fndecl 3 43366 NULL
160810 +enable_so_compat_SyS_rt_sigpending_fndecl_43367 compat_SyS_rt_sigpending fndecl 2 43367 NULL
160811 +enable_so_port_count_rocker_43373 port_count rocker 0 43373 NULL
160812 +enable_so_snd_usb_endpoint_next_packet_size_fndecl_43377 snd_usb_endpoint_next_packet_size fndecl 0 43377 NULL
160813 +enable_so_dtcs033_pkt_scan_fndecl_43381 dtcs033_pkt_scan fndecl 3 43381 NULL nohasharray
160814 +enable_so_lines_nvkm_gpio_impl_43381 lines nvkm_gpio_impl 0 43381 &enable_so_dtcs033_pkt_scan_fndecl_43381
160815 +enable_so_tci_Vmxnet3_RxCompDesc_43383 tci Vmxnet3_RxCompDesc 0 43383 NULL
160816 +enable_so_sca_detect_ram_fndecl_43387 sca_detect_ram fndecl 0 43387 NULL
160817 +enable_so_x509_note_signature_fndecl_43388 x509_note_signature fndecl 5 43388 NULL
160818 +enable_so_xfrm_user_policy_fndecl_43390 xfrm_user_policy fndecl 4 43390 NULL
160819 +enable_so_lpt_spc_bits_ubifs_info_43392 lpt_spc_bits ubifs_info 0 43392 NULL
160820 +enable_so_offset_isert_data_buf_43395 offset isert_data_buf 0 43395 NULL
160821 +enable_so_id_via_isa_bridge_43399 id via_isa_bridge 0 43399 NULL
160822 +enable_so_base_nr_i2c_mux_gpio_platform_data_43400 base_nr i2c_mux_gpio_platform_data 0 43400 NULL
160823 +enable_so_depth_saa7146_format_43402 depth saa7146_format 0 43402 NULL
160824 +enable_so_teql_master_mtu_fndecl_43403 teql_master_mtu fndecl 2 43403 NULL
160825 +enable_so_i2c_readbytes_fndecl_43409 i2c_readbytes fndecl 4 43409 NULL
160826 +enable_so_init_range_memory_mapping_fndecl_43414 init_range_memory_mapping fndecl 1-2 43414 NULL
160827 +enable_so_gss_wrap_kerberos_v1_fndecl_43417 gss_wrap_kerberos_v1 fndecl 2 43417 NULL nohasharray
160828 +enable_so_packet_alloc_skb_fndecl_43417 packet_alloc_skb fndecl 5-4-3 43417 &enable_so_gss_wrap_kerberos_v1_fndecl_43417
160829 +enable_so_pof_write_open_fndecl_43418 pof_write_open fndecl 0 43418 NULL
160830 +enable_so_tegra_spi_start_dma_based_transfer_fndecl_43421 tegra_spi_start_dma_based_transfer fndecl 0 43421 NULL
160831 +enable_so_prism2_send_mgmt_fndecl_43422 prism2_send_mgmt fndecl 4 43422 NULL
160832 +enable_so_status_fealnx_desc_43423 status fealnx_desc 0 43423 NULL
160833 +enable_so_ath6kl_wmi_set_apsd_bfrd_traf_fndecl_43427 ath6kl_wmi_set_apsd_bfrd_traf fndecl 2 43427 NULL
160834 +enable_so_clk_fd_round_rate_fndecl_43428 clk_fd_round_rate fndecl 2 43428 NULL
160835 +enable_so_lpfc_sli4_queue_alloc_fndecl_43429 lpfc_sli4_queue_alloc fndecl 3 43429 NULL
160836 +enable_so_offset_afs_call_43431 offset afs_call 0 43431 NULL
160837 +enable_so_nfs4_proc_set_acl_fndecl_43435 nfs4_proc_set_acl fndecl 3 43435 NULL
160838 +enable_so_XRES_kyrofb_info_43436 XRES kyrofb_info 0 43436 NULL
160839 +enable_so_memblock_alloc_nid_fndecl_43439 memblock_alloc_nid fndecl 2-1 43439 NULL nohasharray
160840 +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
160841 +enable_so_ems_pcmcia_add_card_fndecl_43440 ems_pcmcia_add_card fndecl 2 43440 NULL nohasharray
160842 +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
160843 +enable_so_per_txdl_space_vxge_hw_fifo_attr_43441 per_txdl_space vxge_hw_fifo_attr 0 43441 NULL nohasharray
160844 +enable_so___offline_pages_fndecl_43441 __offline_pages fndecl 1-2 43441 &enable_so_per_txdl_space_vxge_hw_fifo_attr_43441
160845 +enable_so_dut_mode_write_fndecl_43445 dut_mode_write fndecl 3 43445 NULL nohasharray
160846 +enable_so_len_imgchunk_43445 len imgchunk 0 43445 &enable_so_dut_mode_write_fndecl_43445
160847 +enable_so_last_tx_rate_ap_data_43446 last_tx_rate ap_data 0 43446 NULL nohasharray
160848 +enable_so_max_pkt_tipc_sock_43446 max_pkt tipc_sock 0 43446 &enable_so_last_tx_rate_ap_data_43446
160849 +enable_so_wReportDescLength_i2c_hid_desc_43447 wReportDescLength i2c_hid_desc 0 43447 NULL
160850 +enable_so_vfs_fsync_range_fndecl_43448 vfs_fsync_range fndecl 0 43448 NULL
160851 +enable_so_vary_usbtest_param_43450 vary usbtest_param 0 43450 NULL
160852 +enable_so_eeprom_len_adm8211_priv_43457 eeprom_len adm8211_priv 0 43457 NULL
160853 +enable_so_aper_base_radeon_mc_43460 aper_base radeon_mc 0 43460 NULL
160854 +enable_so_l_start_ocfs2_space_resv_43461 l_start ocfs2_space_resv 0 43461 NULL
160855 +enable_so_meta_dev_idx_drbd_md_43468 meta_dev_idx drbd_md 0 43468 NULL nohasharray
160856 +enable_so_pda_size_fw_info_43468 pda_size fw_info 0 43468 &enable_so_meta_dev_idx_drbd_md_43468 nohasharray
160857 +enable_so_printer_req_alloc_fndecl_43468 printer_req_alloc fndecl 2 43468 &enable_so_pda_size_fw_info_43468
160858 +enable_so_xfrm_count_pfkey_auth_supported_fndecl_43471 xfrm_count_pfkey_auth_supported fndecl 0 43471 NULL
160859 +enable_so_nfs_pgio_rpcsetup_fndecl_43472 nfs_pgio_rpcsetup fndecl 2-3 43472 NULL
160860 +enable_so_max_VF_buses_pci_sriov_43475 max_VF_buses pci_sriov 0 43475 NULL
160861 +enable_so_mmio_base_phys_mb862xxfb_par_43476 mmio_base_phys mb862xxfb_par 0 43476 NULL
160862 +enable_so_read_pci_config_byte_fndecl_43477 read_pci_config_byte fndecl 0 43477 NULL nohasharray
160863 +enable_so_cmd_drm_ioctl_desc_43477 cmd drm_ioctl_desc 0 43477 &enable_so_read_pci_config_byte_fndecl_43477
160864 +enable_so_total_size_vardecl_mtdram_c_43478 total_size vardecl_mtdram.c 0 43478 NULL nohasharray
160865 +enable_so_length_cpcs_trailer_43478 length cpcs_trailer 0 43478 &enable_so_total_size_vardecl_mtdram_c_43478
160866 +enable_so_sd_jbsize_gfs2_sbd_43480 sd_jbsize gfs2_sbd 0 43480 NULL
160867 +enable_so_sysv_iget_fndecl_43483 sysv_iget fndecl 2 43483 NULL
160868 +enable_so_atl1e_change_mtu_fndecl_43485 atl1e_change_mtu fndecl 2 43485 NULL
160869 +enable_so_secondary_bin_count_drm_mga_dma_bootstrap_43491 secondary_bin_count drm_mga_dma_bootstrap 0 43491 NULL
160870 +enable_so_bioset_integrity_create_fndecl_43495 bioset_integrity_create fndecl 2 43495 NULL
160871 +enable_so_size_TxFifo_43497 size TxFifo 0 43497 NULL
160872 +enable_so_netlink_recvmsg_fndecl_43499 netlink_recvmsg fndecl 3 43499 NULL
160873 +enable_so_Count_smb_com_write_rsp_43500 Count smb_com_write_rsp 0 43500 NULL
160874 +enable_so_gfs2_log_write_fndecl_43502 gfs2_log_write fndecl 4-3 43502 NULL nohasharray
160875 +enable_so_max_reqs_rpc_xprt_43502 max_reqs rpc_xprt 0 43502 &enable_so_gfs2_log_write_fndecl_43502
160876 +enable_so_limit_cmdline_vardecl_dma_contiguous_c_43504 limit_cmdline vardecl_dma-contiguous.c 0 43504 NULL nohasharray
160877 +enable_so_adxl34x_i2c_read_block_fndecl_43504 adxl34x_i2c_read_block fndecl 3 43504 &enable_so_limit_cmdline_vardecl_dma_contiguous_c_43504
160878 +enable_so_ext4_ind_map_blocks_fndecl_43505 ext4_ind_map_blocks fndecl 0 43505 NULL
160879 +enable_so_ioremap_wc_fndecl_43508 ioremap_wc fndecl 2-1 43508 NULL
160880 +enable_so_size_compat_ipt_replace_43509 size compat_ipt_replace 0 43509 NULL
160881 +enable_so_size_uvc_control_info_43512 size uvc_control_info 0 43512 NULL
160882 +enable_so_snd_es1968_new_memory_fndecl_43515 snd_es1968_new_memory fndecl 2 43515 NULL
160883 +enable_so_ieee80211_set_probe_resp_fndecl_43519 ieee80211_set_probe_resp fndecl 3 43519 NULL
160884 +enable_so_sb_rextslog_xfs_sb_43520 sb_rextslog xfs_sb 0 43520 NULL nohasharray
160885 +enable_so_ptp_read_fndecl_43520 ptp_read fndecl 4 43520 &enable_so_sb_rextslog_xfs_sb_43520
160886 +enable_so_fifo_pool_size_snd_seq_user_client_43523 fifo_pool_size snd_seq_user_client 0 43523 NULL
160887 +enable_so__iwl_dbgfs_rx_phyinfo_write_fndecl_43525 _iwl_dbgfs_rx_phyinfo_write fndecl 3 43525 NULL
160888 +enable_so_xfs_dir2_leaf_getdents_fndecl_43533 xfs_dir2_leaf_getdents fndecl 3 43533 NULL
160889 +enable_so_mei_amthif_read_start_fndecl_43534 mei_amthif_read_start fndecl 0 43534 NULL
160890 +enable_so_points_per_channel_pda_pa_curve_data_43548 points_per_channel pda_pa_curve_data 0 43548 NULL
160891 +enable_so_offset_qcafrm_handle_43553 offset qcafrm_handle 0 43553 NULL
160892 +enable_so_bg_inode_table_lo_ext4_group_desc_43555 bg_inode_table_lo ext4_group_desc 0 43555 NULL
160893 +enable_so_hdrlen_hip_hdr_43556 hdrlen hip_hdr 0 43556 NULL
160894 +enable_so_buffer_size_budget_43564 buffer_size budget 0 43564 NULL
160895 +enable_so_tx_buf_clear_sent_ks959_cb_43565 tx_buf_clear_sent ks959_cb 0 43565 NULL
160896 +enable_so_ib_create_send_mad_fndecl_43569 ib_create_send_mad fndecl 6-5 43569 NULL
160897 +enable_so_ccp_fill_queue_buf_fndecl_43580 ccp_fill_queue_buf fndecl 0 43580 NULL
160898 +enable_so_xfs_difree_fndecl_43581 xfs_difree fndecl 2 43581 NULL
160899 +enable_so___br_vlan_set_default_pvid_fndecl_43587 __br_vlan_set_default_pvid fndecl 2 43587 NULL
160900 +enable_so_size_ext4_io_end_43590 size ext4_io_end 0 43590 NULL
160901 +enable_so_ath10k_read_fw_dbglog_fndecl_43592 ath10k_read_fw_dbglog fndecl 3 43592 NULL
160902 +enable_so_recv_data_fndecl_43596 recv_data fndecl 3 43596 NULL
160903 +enable_so_rem_len_hci_rp_read_local_amp_assoc_43602 rem_len hci_rp_read_local_amp_assoc 0 43602 NULL nohasharray
160904 +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
160905 +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
160906 +enable_so_ipath_pioreserved_ipath_devdata_43603 ipath_pioreserved ipath_devdata 0 43603 NULL
160907 +enable_so_nfsd_vfs_read_fndecl_43608 nfsd_vfs_read fndecl 3-5 43608 NULL
160908 +enable_so_raid5_resize_fndecl_43609 raid5_resize fndecl 2 43609 NULL
160909 +enable_so_ssize_datafab_info_43610 ssize datafab_info 0 43610 NULL
160910 +enable_so_minor_usb_serial_port_43611 minor usb_serial_port 0 43611 NULL
160911 +enable_so_phys_ctlmem_fst_card_info_43612 phys_ctlmem fst_card_info 0 43612 NULL
160912 +enable_so_sg_limit_blogic_ext_setup_43615 sg_limit blogic_ext_setup 0 43615 NULL nohasharray
160913 +enable_so_qnx4_block_map_fndecl_43615 qnx4_block_map fndecl 0-2 43615 &enable_so_sg_limit_blogic_ext_setup_43615
160914 +enable_so_camera_fbmem_size_viafb_dev_43616 camera_fbmem_size viafb_dev 0 43616 NULL
160915 +enable_so_ceph_fill_file_size_fndecl_43619 ceph_fill_file_size fndecl 4-5 43619 NULL
160916 +enable_so_drm_format_plane_cpp_fndecl_43621 drm_format_plane_cpp fndecl 0 43621 NULL nohasharray
160917 +enable_so_chipshift_cfi_private_43621 chipshift cfi_private 0 43621 &enable_so_drm_format_plane_cpp_fndecl_43621
160918 +enable_so_btusb_recv_isoc_fndecl_43628 btusb_recv_isoc fndecl 3 43628 NULL
160919 +enable_so_nvif_device_new_fndecl_43629 nvif_device_new fndecl 5 43629 NULL
160920 +enable_so_drm_gtf2_k_fndecl_43638 drm_gtf2_k fndecl 0 43638 NULL nohasharray
160921 +enable_so_technisat_usb2_eeprom_lrc_read_fndecl_43638 technisat_usb2_eeprom_lrc_read fndecl 4 43638 &enable_so_drm_gtf2_k_fndecl_43638
160922 +enable_so_info_server_fndecl_43644 info_server fndecl 4 43644 NULL
160923 +enable_so_usbnet_read_cmd_nopm_fndecl_43663 usbnet_read_cmd_nopm fndecl 7 43663 NULL nohasharray
160924 +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
160925 +enable_so_bop_last_key_nilfs_bmap_operations_43669 bop_last_key nilfs_bmap_operations 0 43669 NULL
160926 +enable_so_gsi_kvm_irq_routing_entry_43676 gsi kvm_irq_routing_entry 0 43676 NULL
160927 +enable_so_idmouse_read_fndecl_43677 idmouse_read fndecl 3 43677 NULL
160928 +enable_so_header_size_perf_event_43679 header_size perf_event 0 43679 NULL
160929 +enable_so_width_mxr_crop_43682 width mxr_crop 0 43682 NULL
160930 +enable_so_data_offset_nfsd4_compound_state_43684 data_offset nfsd4_compound_state 0 43684 NULL
160931 +enable_so_ingr_sz_sge_43689 ingr_sz sge 0 43689 NULL
160932 +enable_so_nxt200x_readbytes_fndecl_43693 nxt200x_readbytes fndecl 4 43693 NULL
160933 +enable_so_ext3_get_inode_block_fndecl_43702 ext3_get_inode_block fndecl 2-0 43702 NULL
160934 +enable_so_num_tx_descs_octeon_nic_if_config_43704 num_tx_descs octeon_nic_if_config 0 43704 NULL
160935 +enable_so_rx_buf_len_bcmgenet_priv_43705 rx_buf_len bcmgenet_priv 0 43705 NULL
160936 +enable_so_gtk_icvlen_iwl_mvm_43710 gtk_icvlen iwl_mvm 0 43710 NULL nohasharray
160937 +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
160938 +enable_so_data_block_quadlets_amdtp_stream_43723 data_block_quadlets amdtp_stream 0 43723 NULL
160939 +enable_so_in_size_xz_buf_43724 in_size xz_buf 0 43724 NULL
160940 +enable_so_tpm_tis_init_fndecl_43728 tpm_tis_init fndecl 4-3 43728 NULL
160941 +enable_so_ReplyFrameSize_mpt3sas_facts_43736 ReplyFrameSize mpt3sas_facts 0 43736 NULL
160942 +enable_so_gfn_to_hva_many_fndecl_43742 gfn_to_hva_many fndecl 2 43742 NULL
160943 +enable_so_acpi_rs_strcpy_fndecl_43746 acpi_rs_strcpy fndecl 0 43746 NULL
160944 +enable_so_used_map_cnt_verifier_env_43747 used_map_cnt verifier_env 0 43747 NULL
160945 +enable_so_stat_end_vardecl_drv_c_43748 stat_end vardecl_drv.c 0 43748 NULL
160946 +enable_so_sas_host_smp_write_gpio_fndecl_43749 sas_host_smp_write_gpio fndecl 0 43749 NULL
160947 +enable_so_osd_req_encode_op_fndecl_43755 osd_req_encode_op fndecl 0 43755 NULL
160948 +enable_so_data1_sisusb_command_43756 data1 sisusb_command 0 43756 NULL nohasharray
160949 +enable_so_len_meta_value_43756 len meta_value 0 43756 &enable_so_data1_sisusb_command_43756 nohasharray
160950 +enable_so___copy_from_user_ll_nocache_fndecl_43756 __copy_from_user_ll_nocache fndecl 0 43756 &enable_so_len_meta_value_43756
160951 +enable_so_reada_find_extent_fndecl_43757 reada_find_extent fndecl 2 43757 NULL
160952 +enable_so_ipath_pbufsport_ipath_devdata_43760 ipath_pbufsport ipath_devdata 0 43760 NULL
160953 +enable_so_firstEUN_INFTLrecord_43763 firstEUN INFTLrecord 0 43763 NULL
160954 +enable_so_tipc_connect_fndecl_43766 tipc_connect fndecl 3 43766 NULL
160955 +enable_so_nvkm_i2c_port_create__fndecl_43770 nvkm_i2c_port_create_ fndecl 7 43770 NULL
160956 +enable_so_hwdep_read_fndecl_43779 hwdep_read fndecl 3 43779 NULL
160957 +enable_so_generic_file_fsync_fndecl_43780 generic_file_fsync fndecl 2-3 43780 NULL
160958 +enable_so_clipcount_cap_vivid_dev_43781 clipcount_cap vivid_dev 0 43781 NULL
160959 +enable_so_prepare_packet_fndecl_43783 prepare_packet fndecl 0 43783 NULL
160960 +enable_so_data_pad_ubi_volume_43787 data_pad ubi_volume 0 43787 NULL
160961 +enable_so_smsc47m1_device_add_fndecl_43796 smsc47m1_device_add fndecl 1 43796 NULL
160962 +enable_so_uhci_urb_dequeue_fndecl_43804 uhci_urb_dequeue fndecl 3 43804 NULL
160963 +enable_so_len_nft_set_ext_tmpl_43815 len nft_set_ext_tmpl 0 43815 NULL
160964 +enable_so_rdes0_rx_desc_43817 rdes0 rx_desc 0 43817 NULL
160965 +enable_so___vb2_perform_fileio_fndecl_43818 __vb2_perform_fileio fndecl 3 43818 NULL
160966 +enable_so__save_mc_fndecl_43819 _save_mc fndecl 0-3 43819 NULL
160967 +enable_so_rx_buf_size_c2_port_43822 rx_buf_size c2_port 0 43822 NULL nohasharray
160968 +enable_so_pipeline_defrag_to_csum_swi_read_fndecl_43822 pipeline_defrag_to_csum_swi_read fndecl 3 43822 &enable_so_rx_buf_size_c2_port_43822
160969 +enable_so_omap_dma_prep_slave_sg_fndecl_43825 omap_dma_prep_slave_sg fndecl 3 43825 NULL
160970 +enable_so_i915_gem_object_create_stolen_fndecl_43837 i915_gem_object_create_stolen fndecl 2 43837 NULL
160971 +enable_so_unlink1_fndecl_43840 unlink1 fndecl 3-2 43840 NULL
160972 +enable_so_ath6kl_wmi_enable_sched_scan_cmd_fndecl_43841 ath6kl_wmi_enable_sched_scan_cmd fndecl 2 43841 NULL
160973 +enable_so_initrd_start_vardecl_43848 initrd_start vardecl 0 43848 NULL nohasharray
160974 +enable_so_parport_ieee1284_ecp_write_data_fndecl_43848 parport_ieee1284_ecp_write_data fndecl 0 43848 &enable_so_initrd_start_vardecl_43848
160975 +enable_so_xen_set_nslabs_fndecl_43849 xen_set_nslabs fndecl 0-1 43849 NULL
160976 +enable_so_wlcore_scan_fndecl_43850 wlcore_scan fndecl 4 43850 NULL
160977 +enable_so_iwl_dbgfs_fw_rx_stats_read_fndecl_43853 iwl_dbgfs_fw_rx_stats_read fndecl 3 43853 NULL
160978 +enable_so_scsi_host_alloc_fndecl_43858 scsi_host_alloc fndecl 2 43858 NULL
160979 +enable_so_indat_endpoint_keyspan_device_details_43860 indat_endpoint keyspan_device_details 0 43860 NULL
160980 +enable_so_get_sset_count_ethtool_ops_43861 get_sset_count ethtool_ops 0 43861 NULL
160981 +enable_so_s_l2bsize_jfs_superblock_43870 s_l2bsize jfs_superblock 0 43870 NULL
160982 +enable_so_Xdsdt_acpi_table_fadt_43871 Xdsdt acpi_table_fadt 0 43871 NULL
160983 +enable_so_bulk_in_endpointAddr_hdpvr_device_43874 bulk_in_endpointAddr hdpvr_device 0 43874 NULL nohasharray
160984 +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
160985 +enable_so_iovec_count_sg_io_hdr_43875 iovec_count sg_io_hdr 0 43875 NULL
160986 +enable_so_ts_ctxnum_gru_thread_state_43878 ts_ctxnum gru_thread_state 0 43878 NULL
160987 +enable_so_m_logbsize_xfs_mount_43888 m_logbsize xfs_mount 0 43888 NULL
160988 +enable_so_zap_page_range_single_fndecl_43890 zap_page_range_single fndecl 3-2 43890 NULL
160989 +enable_so_len_libipw_info_element_43892 len libipw_info_element 0 43892 NULL
160990 +enable_so_ocfs2_decrease_refcount_fndecl_43893 ocfs2_decrease_refcount fndecl 4-3 43893 NULL
160991 +enable_so_skb_vlan_push_fndecl_43895 skb_vlan_push fndecl 3 43895 NULL nohasharray
160992 +enable_so_device_id_onenand_chip_43895 device_id onenand_chip 0 43895 &enable_so_skb_vlan_push_fndecl_43895
160993 +enable_so_xstats_len_gnet_dump_43898 xstats_len gnet_dump 0 43898 NULL
160994 +enable_so_il4965_rs_move_siso_to_other_fndecl_43901 il4965_rs_move_siso_to_other fndecl 5 43901 NULL
160995 +enable_so_pnp_add_dma_resource_fndecl_43903 pnp_add_dma_resource fndecl 2 43903 NULL
160996 +enable_so_lc_up_len_nfsd4_layoutcommit_43904 lc_up_len nfsd4_layoutcommit 0 43904 NULL
160997 +enable_so_sta_data_size_ieee80211_hw_43910 sta_data_size ieee80211_hw 0 43910 NULL
160998 +enable_so_xres_drm_cmdline_mode_43915 xres drm_cmdline_mode 0 43915 NULL
160999 +enable_so_vcount_snd_emu10k1_fx8010_ctl_43917 vcount snd_emu10k1_fx8010_ctl 0 43917 NULL
161000 +enable_so_in_int_pipe_usbtest_dev_43922 in_int_pipe usbtest_dev 0 43922 NULL
161001 +enable_so_phys_statctrl_base__synclinkmp_info_43923 phys_statctrl_base _synclinkmp_info 0 43923 NULL
161002 +enable_so_rd_length_nfsd4_read_43924 rd_length nfsd4_read 0 43924 NULL
161003 +enable_so_mbind_range_fndecl_43926 mbind_range fndecl 3-2 43926 NULL
161004 +enable_so_iwl_dbgfs_sensitivity_read_fndecl_43935 iwl_dbgfs_sensitivity_read fndecl 3 43935 NULL
161005 +enable_so_iwl_mvm_coex_dump_mbox_fndecl_43938 iwl_mvm_coex_dump_mbox fndecl 0-3 43938 NULL
161006 +enable_so_max_threads_vardecl_43940 max_threads vardecl 0 43940 NULL nohasharray
161007 +enable_so_queue_pages_pte_range_fndecl_43940 queue_pages_pte_range fndecl 2 43940 &enable_so_max_threads_vardecl_43940
161008 +enable_so_ubifs_change_one_lp_fndecl_43942 ubifs_change_one_lp fndecl 3 43942 NULL
161009 +enable_so_dce_pvc_count_frad_state_43946 dce_pvc_count frad_state 0 43946 NULL
161010 +enable_so_sddr09_readX_fndecl_43951 sddr09_readX fndecl 5-7 43951 NULL
161011 +enable_so_size_soundfont_sample_info_43957 size soundfont_sample_info 0 43957 NULL
161012 +enable_so_num_drc_cfgs_wm8904_pdata_43963 num_drc_cfgs wm8904_pdata 0 43963 NULL
161013 +enable_so_rx_ring_count_igb_adapter_43964 rx_ring_count igb_adapter 0 43964 NULL
161014 +enable_so_tpacket_fill_skb_fndecl_43967 tpacket_fill_skb fndecl 8 43967 NULL
161015 +enable_so_s_firstdatazone_isofs_sb_info_43968 s_firstdatazone isofs_sb_info 0 43968 NULL
161016 +enable_so_csum_start_virtio_net_hdr_43969 csum_start virtio_net_hdr 0 43969 NULL nohasharray
161017 +enable_so_hfsplus_file_fsync_fndecl_43969 hfsplus_file_fsync fndecl 2-3 43969 &enable_so_csum_start_virtio_net_hdr_43969
161018 +enable_so_nilfs_get_dentry_fndecl_43979 nilfs_get_dentry fndecl 3 43979 NULL
161019 +enable_so_s_first_cluster_group_ocfs2_super_block_43980 s_first_cluster_group ocfs2_super_block 0 43980 NULL nohasharray
161020 +enable_so_value_size_bpf_map_43980 value_size bpf_map 0 43980 &enable_so_s_first_cluster_group_ocfs2_super_block_43980
161021 +enable_so_security_policydb_len_fndecl_43981 security_policydb_len fndecl 0 43981 NULL
161022 +enable_so_cur_size_zr364xx_framei_43985 cur_size zr364xx_framei 0 43985 NULL
161023 +enable_so_free_memtype_fndecl_43986 free_memtype fndecl 1-2 43986 NULL
161024 +enable_so_smk_write_revoke_subj_fndecl_43990 smk_write_revoke_subj fndecl 3 43990 NULL
161025 +enable_so_SyS_syslog_fndecl_43993 SyS_syslog fndecl 3 43993 NULL
161026 +enable_so_rs_build_rates_table_from_fixed_fndecl_43994 rs_build_rates_table_from_fixed fndecl 4 43994 NULL
161027 +enable_so_nsize_jffs2_raw_dirent_43995 nsize jffs2_raw_dirent 0 43995 NULL nohasharray
161028 +enable_so_pvm_determine_end_fndecl_43995 pvm_determine_end fndecl 0-3 43995 &enable_so_nsize_jffs2_raw_dirent_43995 nohasharray
161029 +enable_so_ovl_fill_merge_fndecl_43995 ovl_fill_merge fndecl 3 43995 &enable_so_pvm_determine_end_fndecl_43995
161030 +enable_so_copy_templates_fndecl_43996 copy_templates fndecl 3 43996 NULL
161031 +enable_so_snd_pcm_lib_malloc_pages_fndecl_43997 snd_pcm_lib_malloc_pages fndecl 2 43997 NULL
161032 +enable_so___e820_add_region_fndecl_44001 __e820_add_region fndecl 3 44001 NULL
161033 +enable_so_vme_master_read_fndecl_44006 vme_master_read fndecl 0 44006 NULL
161034 +enable_so_nvkm_device_create__fndecl_44008 nvkm_device_create_ fndecl 7 44008 NULL nohasharray
161035 +enable_so_SyS_gethostname_fndecl_44008 SyS_gethostname fndecl 2 44008 &enable_so_nvkm_device_create__fndecl_44008
161036 +enable_so_max_io_sz_snic_fw_info_44009 max_io_sz snic_fw_info 0 44009 NULL
161037 +enable_so_ext2_direct_IO_fndecl_44012 ext2_direct_IO fndecl 3 44012 NULL
161038 +enable_so_level_pid_namespace_44021 level pid_namespace 0 44021 NULL
161039 +enable_so_rx_buffer_truesize_efx_nic_44027 rx_buffer_truesize efx_nic 0 44027 NULL
161040 +enable_so_SyS_kexec_file_load_fndecl_44032 SyS_kexec_file_load fndecl 3 44032 NULL
161041 +enable_so_fragmentation_threshold_read_fndecl_44037 fragmentation_threshold_read fndecl 3 44037 NULL
161042 +enable_so_convert_extent_bit_fndecl_44046 convert_extent_bit fndecl 3-2 44046 NULL
161043 +enable_so_btrfs_submit_direct_fndecl_44059 btrfs_submit_direct fndecl 4 44059 NULL nohasharray
161044 +enable_so_ahc_linux_map_seg_fndecl_44059 ahc_linux_map_seg fndecl 4-5 44059 &enable_so_btrfs_submit_direct_fndecl_44059
161045 +enable_so_prog_page_fndecl_44060 prog_page fndecl 2 44060 NULL
161046 +enable_so_num_trace_enums_module_44062 num_trace_enums module 0 44062 NULL
161047 +enable_so_blksize_xfs_da_geometry_44068 blksize xfs_da_geometry 0 44068 NULL
161048 +enable_so_xen_io_tlb_nslabs_vardecl_swiotlb_xen_c_44077 xen_io_tlb_nslabs vardecl_swiotlb-xen.c 0 44077 NULL
161049 +enable_so_maxports_board_t_44081 maxports board_t 0 44081 NULL
161050 +enable_so_read_file_regval_fndecl_44093 read_file_regval fndecl 3 44093 NULL
161051 +enable_so_netup_read_i2c_fndecl_44096 netup_read_i2c fndecl 5 44096 NULL
161052 +enable_so_ipoib_cm_create_srq_fndecl_44098 ipoib_cm_create_srq fndecl 2 44098 NULL
161053 +enable_so_xdr_decode_array2_fndecl_44099 xdr_decode_array2 fndecl 2-0 44099 NULL
161054 +enable_so_m_inode_cluster_size_xfs_mount_44101 m_inode_cluster_size xfs_mount 0 44101 NULL
161055 +enable_so_payload_sz_storvsc_cmd_request_44107 payload_sz storvsc_cmd_request 0 44107 NULL
161056 +enable_so_fats_fat_boot_sector_44112 fats fat_boot_sector 0 44112 NULL
161057 +enable_so_ext4_mb_get_buddy_page_lock_fndecl_44127 ext4_mb_get_buddy_page_lock fndecl 0 44127 NULL
161058 +enable_so_udp_sendmsg_fndecl_44135 udp_sendmsg fndecl 3 44135 NULL nohasharray
161059 +enable_so_mls_compute_context_len_fndecl_44135 mls_compute_context_len fndecl 0 44135 &enable_so_udp_sendmsg_fndecl_44135
161060 +enable_so_base_nforce2_smbus_44136 base nforce2_smbus 0 44136 NULL
161061 +enable_so_tps65912_i2c_read_fndecl_44137 tps65912_i2c_read fndecl 3 44137 NULL
161062 +enable_so_key_maxval_mcs_platform_data_44139 key_maxval mcs_platform_data 0 44139 NULL
161063 +enable_so_npins_pinctrl_gpio_range_44148 npins pinctrl_gpio_range 0 44148 NULL
161064 +enable_so_batadv_dat_snoop_incoming_arp_reply_fndecl_44154 batadv_dat_snoop_incoming_arp_reply fndecl 3 44154 NULL
161065 +enable_so_octeon_setup_droq_fndecl_44160 octeon_setup_droq fndecl 4-3 44160 NULL
161066 +enable_so_bfad_debugfs_write_regwr_fndecl_44162 bfad_debugfs_write_regwr fndecl 3 44162 NULL
161067 +enable_so_recvmsg_proto_ops_44163 recvmsg proto_ops 0 44163 NULL
161068 +enable_so_sizeimage_v4l2_plane_pix_format_44168 sizeimage v4l2_plane_pix_format 0 44168 NULL nohasharray
161069 +enable_so_y_len_ccp_ecc_point_44168 y_len ccp_ecc_point 0 44168 &enable_so_sizeimage_v4l2_plane_pix_format_44168
161070 +enable_so_size_drm_mode_create_dumb_44176 size drm_mode_create_dumb 0 44176 NULL
161071 +enable_so_tcfp_nkeys_tcf_pedit_44184 tcfp_nkeys tcf_pedit 0 44184 NULL
161072 +enable_so_qlcnic_change_mtu_fndecl_44186 qlcnic_change_mtu fndecl 2 44186 NULL
161073 +enable_so_nvkm_gpuobj_new_fndecl_44188 nvkm_gpuobj_new fndecl 4-3 44188 NULL
161074 +enable_so_btrfs_file_llseek_fndecl_44189 btrfs_file_llseek fndecl 2 44189 NULL
161075 +enable_so_btrfs_ioctl_clone_fndecl_44205 btrfs_ioctl_clone fndecl 5-3-4 44205 NULL
161076 +enable_so_wm8993_set_fll_fndecl_44206 wm8993_set_fll fndecl 4-5 44206 NULL
161077 +enable_so_evdev_compute_buffer_size_fndecl_44212 evdev_compute_buffer_size fndecl 0 44212 NULL
161078 +enable_so_s_bsize_jfs_superblock_44215 s_bsize jfs_superblock 0 44215 NULL
161079 +enable_so_ext2_inode_by_name_fndecl_44217 ext2_inode_by_name fndecl 0 44217 NULL nohasharray
161080 +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
161081 +enable_so_SYSC_lsetxattr_fndecl_44222 SYSC_lsetxattr fndecl 4 44222 NULL
161082 +enable_so_len_args_fndecl_44226 len_args fndecl 0 44226 NULL
161083 +enable_so_clear_refs_write_fndecl_44227 clear_refs_write fndecl 3 44227 NULL
161084 +enable_so_it_context_support_fw_ohci_44232 it_context_support fw_ohci 0 44232 NULL
161085 +enable_so_rx_filter_arp_filter_read_fndecl_44233 rx_filter_arp_filter_read fndecl 3 44233 NULL
161086 +enable_so_usbhsf_fifo_rcv_len_fndecl_44234 usbhsf_fifo_rcv_len fndecl 0 44234 NULL
161087 +enable_so_au0828_init_isoc_fndecl_44238 au0828_init_isoc fndecl 4-2-3 44238 NULL nohasharray
161088 +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
161089 +enable_so_iriap_connect_indication_fndecl_44238 iriap_connect_indication fndecl 5 44238 &enable_so_ns_first_data_block_the_nilfs_44238
161090 +enable_so_irda_sendmsg_fndecl_44239 irda_sendmsg fndecl 3 44239 NULL nohasharray
161091 +enable_so_frag_stride_mlx4_en_frag_info_44239 frag_stride mlx4_en_frag_info 0 44239 &enable_so_irda_sendmsg_fndecl_44239
161092 +enable_so_num_pages_vb2_dma_sg_buf_44241 num_pages vb2_dma_sg_buf 0 44241 NULL
161093 +enable_so_spk_xs_vardecl_44242 spk_xs vardecl 0 44242 NULL
161094 +enable_so_features_virtio_device_44247 features virtio_device 0 44247 NULL
161095 +enable_so_cxgb4_pktgl_to_skb_fndecl_44248 cxgb4_pktgl_to_skb fndecl 3-2 44248 NULL nohasharray
161096 +enable_so_ax25_addr_size_fndecl_44248 ax25_addr_size fndecl 0 44248 &enable_so_cxgb4_pktgl_to_skb_fndecl_44248
161097 +enable_so_num_reg_defaults_raw_regmap_config_44249 num_reg_defaults_raw regmap_config 0 44249 NULL
161098 +enable_so_lprocfs_write_frac_u64_helper_fndecl_44250 lprocfs_write_frac_u64_helper fndecl 2 44250 NULL
161099 +enable_so_nolb_xcopy_op_44252 nolb xcopy_op 0 44252 NULL
161100 +enable_so_s_cur_size_qib_qp_44254 s_cur_size qib_qp 0 44254 NULL nohasharray
161101 +enable_so_roundup_ring_size_fndecl_44254 roundup_ring_size fndecl 0 44254 &enable_so_s_cur_size_qib_qp_44254
161102 +enable_so_gfn_to_pfn_memslot_atomic_fndecl_44264 gfn_to_pfn_memslot_atomic fndecl 2 44264 NULL nohasharray
161103 +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
161104 +enable_so_SyS_kexec_load_fndecl_44265 SyS_kexec_load fndecl 2 44265 NULL
161105 +enable_so_length_ceph_pagelist_44267 length ceph_pagelist 0 44267 NULL
161106 +enable_so_skb_put_frags_fndecl_44270 skb_put_frags fndecl 3-2 44270 NULL nohasharray
161107 +enable_so_s_blocks_per_group_ext2_sb_info_44270 s_blocks_per_group ext2_sb_info 0 44270 &enable_so_skb_put_frags_fndecl_44270
161108 +enable_so_il4965_ucode_rx_stats_read_fndecl_44271 il4965_ucode_rx_stats_read fndecl 3 44271 NULL
161109 +enable_so_efi_get_runtime_map_size_fndecl_44276 efi_get_runtime_map_size fndecl 0 44276 NULL
161110 +enable_so_new_raid_disk_md_rdev_44282 new_raid_disk md_rdev 0 44282 NULL
161111 +enable_so_rsp_len_bfad_fcxp_44290 rsp_len bfad_fcxp 0 44290 NULL
161112 +enable_so_pbus_size_mem_fndecl_44293 pbus_size_mem fndecl 6 44293 NULL
161113 +enable_so_NumberOfPorts_mpt3sas_facts_44306 NumberOfPorts mpt3sas_facts 0 44306 NULL
161114 +enable_so_mlx5e_build_netdev_priv_fndecl_44314 mlx5e_build_netdev_priv fndecl 3 44314 NULL
161115 +enable_so_plen_iwch_ep_44317 plen iwch_ep 0 44317 NULL
161116 +enable_so_rq_num_entries_c4iw_qp_attributes_44321 rq_num_entries c4iw_qp_attributes 0 44321 NULL
161117 +enable_so_produce_size_qp_entry_44325 produce_size qp_entry 0 44325 NULL
161118 +enable_so_encode_op_hdr_fndecl_44327 encode_op_hdr fndecl 3 44327 NULL
161119 +enable_so_size_drm_radeon_gem_userptr_44334 size drm_radeon_gem_userptr 0 44334 NULL
161120 +enable_so_bytesused_cx18_buffer_44339 bytesused cx18_buffer 0 44339 NULL
161121 +enable_so_btusb_setup_qca_download_fw_fndecl_44343 btusb_setup_qca_download_fw fndecl 0 44343 NULL
161122 +enable_so_snd_pcm_lib_writev_transfer_fndecl_44344 snd_pcm_lib_writev_transfer fndecl 5 44344 NULL
161123 +enable_so_tail_circ_buf_44346 tail circ_buf 0 44346 NULL nohasharray
161124 +enable_so_count_v4l2_ext_controls_44346 count v4l2_ext_controls 0 44346 &enable_so_tail_circ_buf_44346
161125 +enable_so_vb2_dvb_register_bus_fndecl_44349 vb2_dvb_register_bus fndecl 0 44349 NULL
161126 +enable_so_btrfs_item_size_fndecl_44350 btrfs_item_size fndecl 0 44350 NULL
161127 +enable_so_query_xrc_srq_cmd_fndecl_44353 query_xrc_srq_cmd fndecl 0 44353 NULL
161128 +enable_so_brcmf_sdio_txpkt_prep_sg_fndecl_44354 brcmf_sdio_txpkt_prep_sg fndecl 4-0 44354 NULL
161129 +enable_so_irlan_connect_confirm_fndecl_44361 irlan_connect_confirm fndecl 5 44361 NULL
161130 +enable_so_jffs2_write_end_fndecl_44362 jffs2_write_end fndecl 3 44362 NULL
161131 +enable_so___logfs_iget_fndecl_44371 __logfs_iget fndecl 2 44371 NULL
161132 +enable_so_pwm_buf_sz_usbdux_private_44375 pwm_buf_sz usbdux_private 0 44375 NULL
161133 +enable_so_ocfs2_get_refcount_rec_fndecl_44377 ocfs2_get_refcount_rec fndecl 3-4 44377 NULL
161134 +enable_so_epp_read_data_parport_operations_44383 epp_read_data parport_operations 0 44383 NULL
161135 +enable_so_dvb_net_ioctl_fndecl_44388 dvb_net_ioctl fndecl 2 44388 NULL
161136 +enable_so_reiserfs_xattr_set_fndecl_44389 reiserfs_xattr_set fndecl 4 44389 NULL
161137 +enable_so_hidpp_prefix_name_fndecl_44393 hidpp_prefix_name fndecl 2 44393 NULL
161138 +enable_so_s_raid_stripe_width_ext4_super_block_44401 s_raid_stripe_width ext4_super_block 0 44401 NULL
161139 +enable_so_num_iscsi_tasks_cnic_local_44404 num_iscsi_tasks cnic_local 0 44404 NULL
161140 +enable_so_compat_SyS_select_fndecl_44405 compat_SyS_select fndecl 1 44405 NULL
161141 +enable_so_child_mtu_cached_xfrm_dst_44407 child_mtu_cached xfrm_dst 0 44407 NULL
161142 +enable_so_drbd_create_device_fndecl_44410 drbd_create_device fndecl 2 44410 NULL
161143 +enable_so_yres_virtual_fb_var_screeninfo_44414 yres_virtual fb_var_screeninfo 0 44414 NULL
161144 +enable_so_count_configfs_buffer_44416 count configfs_buffer 0 44416 NULL
161145 +enable_so_ept_gpte_to_gfn_lvl_fndecl_44420 ept_gpte_to_gfn_lvl fndecl 0-2-1 44420 NULL
161146 +enable_so_seq_open_private_fndecl_44422 seq_open_private fndecl 3 44422 NULL
161147 +enable_so___get_vm_area_fndecl_44428 __get_vm_area fndecl 1-3 44428 NULL nohasharray
161148 +enable_so_rq_ecount_lpfc_sli4_hba_44428 rq_ecount lpfc_sli4_hba 0 44428 &enable_so___get_vm_area_fndecl_44428
161149 +enable_so_ieee80211_if_read_rc_rateidx_mask_2ghz_fndecl_44433 ieee80211_if_read_rc_rateidx_mask_2ghz fndecl 3 44433 NULL
161150 +enable_so_fan_proc_write_fndecl_44434 fan_proc_write fndecl 3 44434 NULL
161151 +enable_so_fd_do_rw_fndecl_44435 fd_do_rw fndecl 5 44435 NULL
161152 +enable_so_nchunks_amdgpu_cs_parser_44436 nchunks amdgpu_cs_parser 0 44436 NULL
161153 +enable_so_nbd_ioctl_fndecl_44444 nbd_ioctl fndecl 4 44444 NULL
161154 +enable_so_get_pages_array_fndecl_44453 get_pages_array fndecl 1 44453 NULL
161155 +enable_so_configfs_write_file_fndecl_44454 configfs_write_file fndecl 3 44454 NULL
161156 +enable_so_hh_len_hh_cache_44455 hh_len hh_cache 0 44455 NULL
161157 +enable_so___get_inode_info_fndecl_44463 __get_inode_info fndecl 0 44463 NULL
161158 +enable_so_cx2341x_handler_init_fndecl_44466 cx2341x_handler_init fndecl 2 44466 NULL
161159 +enable_so_cap_height_usbtv_norm_params_44467 cap_height usbtv_norm_params 0 44467 NULL
161160 +enable_so_seq_count_iscsi_cmd_44476 seq_count iscsi_cmd 0 44476 NULL
161161 +enable_so_resize_stripes_fndecl_44481 resize_stripes fndecl 2 44481 NULL nohasharray
161162 +enable_so_skb_find_text_fndecl_44481 skb_find_text fndecl 2-0 44481 &enable_so_resize_stripes_fndecl_44481
161163 +enable_so_virtio_gpu_gem_create_fndecl_44491 virtio_gpu_gem_create fndecl 3 44491 NULL
161164 +enable_so_s_first_data_block_ext4_super_block_44495 s_first_data_block ext4_super_block 0 44495 NULL
161165 +enable_so_mmcies_max_wusbhc_44498 mmcies_max wusbhc 0 44498 NULL
161166 +enable_so_pci_cardbus_io_size_vardecl_44500 pci_cardbus_io_size vardecl 0 44500 NULL
161167 +enable_so_io_start_nfs_pgio_header_44501 io_start nfs_pgio_header 0 44501 NULL
161168 +enable_so_omfs_bread_fndecl_44502 omfs_bread fndecl 2 44502 NULL nohasharray
161169 +enable_so_skb_append_pagefrags_fndecl_44502 skb_append_pagefrags fndecl 3 44502 &enable_so_omfs_bread_fndecl_44502
161170 +enable_so_snd_pcm_oss_read3_fndecl_44504 snd_pcm_oss_read3 fndecl 0 44504 NULL
161171 +enable_so_btrfs_add_ordered_extent_fndecl_44505 btrfs_add_ordered_extent fndecl 4-2-5-3 44505 NULL
161172 +enable_so_len_de4x5_ioctl_44508 len de4x5_ioctl 0 44508 NULL
161173 +enable_so_ftdi_elan_edset_setup_fndecl_44513 ftdi_elan_edset_setup fndecl 0 44513 NULL nohasharray
161174 +enable_so_ubifs_add_snod_fndecl_44513 ubifs_add_snod fndecl 4 44513 &enable_so_ftdi_elan_edset_setup_fndecl_44513
161175 +enable_so_li_height_logfs_inode_44514 li_height logfs_inode 0 44514 NULL nohasharray
161176 +enable_so_lock_loop_fndecl_44514 lock_loop fndecl 1-0 44514 &enable_so_li_height_logfs_inode_44514
161177 +enable_so_sddr09_read20_fndecl_44519 sddr09_read20 fndecl 4-3-6 44519 NULL nohasharray
161178 +enable_so___do_tune_cpucache_fndecl_44519 __do_tune_cpucache fndecl 3-2-4 44519 &enable_so_sddr09_read20_fndecl_44519
161179 +enable_so_video_bpp_sis_video_info_44522 video_bpp sis_video_info 0 44522 NULL nohasharray
161180 +enable_so_length_mtd_oob_buf_44522 length mtd_oob_buf 0 44522 &enable_so_video_bpp_sis_video_info_44522
161181 +enable_so_rbytes_tree_balance_44523 rbytes tree_balance 0 44523 NULL
161182 +enable_so_set_le_key_k_type_fndecl_44525 set_le_key_k_type fndecl 3 44525 NULL
161183 +enable_so_xlog_recover_clear_agi_bucket_fndecl_44526 xlog_recover_clear_agi_bucket fndecl 2 44526 NULL
161184 +enable_so_filter_read_fndecl_44527 filter_read fndecl 3 44527 NULL
161185 +enable_so_yenta_search_one_res_fndecl_44533 yenta_search_one_res fndecl 3 44533 NULL
161186 +enable_so_insert_one_name_fndecl_44535 insert_one_name fndecl 7 44535 NULL nohasharray
161187 +enable_so_max_cqes_mthca_limits_44535 max_cqes mthca_limits 0 44535 &enable_so_insert_one_name_fndecl_44535
161188 +enable_so_consume_size_vmci_transport_44542 consume_size vmci_transport 0 44542 NULL
161189 +enable_so_smk_read_syslog_fndecl_44544 smk_read_syslog fndecl 3 44544 NULL
161190 +enable_so_add_debugfs_mem_fndecl_44546 add_debugfs_mem fndecl 4 44546 NULL nohasharray
161191 +enable_so_numps_powernow_k8_data_44546 numps powernow_k8_data 0 44546 &enable_so_add_debugfs_mem_fndecl_44546
161192 +enable_so_container_height_dmm_44549 container_height dmm 0 44549 NULL
161193 +enable_so_chanctx_data_size_ieee80211_hw_44557 chanctx_data_size ieee80211_hw 0 44557 NULL
161194 +enable_so_amdgpu_bo_create_restricted_fndecl_44566 amdgpu_bo_create_restricted fndecl 2 44566 NULL
161195 +enable_so_hpfs_fnode_dno_fndecl_44569 hpfs_fnode_dno fndecl 0-2 44569 NULL nohasharray
161196 +enable_so_wTotalLength_usb_config_descriptor_44569 wTotalLength usb_config_descriptor 0 44569 &enable_so_hpfs_fnode_dno_fndecl_44569
161197 +enable_so_parent_i_pos_hi_fat_fid_44570 parent_i_pos_hi fat_fid 0 44570 NULL
161198 +enable_so_tw_transfer_internal_fndecl_44581 tw_transfer_internal fndecl 4 44581 NULL nohasharray
161199 +enable_so_ion_handle_test_dma_fndecl_44581 ion_handle_test_dma fndecl 4-5 44581 &enable_so_tw_transfer_internal_fndecl_44581
161200 +enable_so_smsc47m1_find_fndecl_44589 smsc47m1_find fndecl 0 44589 NULL
161201 +enable_so_rd_data0_gfs2_rgrpd_44591 rd_data0 gfs2_rgrpd 0 44591 NULL
161202 +enable_so_maxcontacts_pm_44593 maxcontacts pm 0 44593 NULL
161203 +enable_so_allocate_partition_fndecl_44598 allocate_partition fndecl 4 44598 NULL
161204 +enable_so_len_poll_list_44603 len poll_list 0 44603 NULL
161205 +enable_so_of_io_request_and_map_fndecl_44605 of_io_request_and_map fndecl 2 44605 NULL
161206 +enable_so_bop_mark_nilfs_bmap_operations_44618 bop_mark nilfs_bmap_operations 0 44618 NULL
161207 +enable_so_il_dbgfs_sram_read_fndecl_44619 il_dbgfs_sram_read fndecl 3 44619 NULL
161208 +enable_so_vid_hdr_offset_ubi_attach_req_44622 vid_hdr_offset ubi_attach_req 0 44622 NULL nohasharray
161209 +enable_so_irq_cros_ec_device_44622 irq cros_ec_device 0 44622 &enable_so_vid_hdr_offset_ubi_attach_req_44622
161210 +enable_so_security_file_permission_fndecl_44629 security_file_permission fndecl 0 44629 NULL
161211 +enable_so_max_sectors_Scsi_Host_44630 max_sectors Scsi_Host 0 44630 NULL nohasharray
161212 +enable_so_sel_last_ino_vardecl_selinuxfs_c_44630 sel_last_ino vardecl_selinuxfs.c 0 44630 &enable_so_max_sectors_Scsi_Host_44630
161213 +enable_so_data_len_krb5_tagged_data_44634 data_len krb5_tagged_data 0 44634 NULL
161214 +enable_so_bd_block_size_block_device_44635 bd_block_size block_device 0 44635 NULL
161215 +enable_so_osst_write_error_recovery_fndecl_44636 osst_write_error_recovery fndecl 3 44636 NULL
161216 +enable_so_chunk_root_btrfs_super_block_44639 chunk_root btrfs_super_block 0 44639 NULL
161217 +enable_so_hfcpci_empty_bfifo_fndecl_44640 hfcpci_empty_bfifo fndecl 4 44640 NULL
161218 +enable_so_nb_dev_strip_zone_44645 nb_dev strip_zone 0 44645 NULL
161219 +enable_so_len_nlm_lock_44646 len nlm_lock 0 44646 NULL
161220 +enable_so_bank_mask_stub_chip_44647 bank_mask stub_chip 0 44647 NULL
161221 +enable_so_cp_payload_f2fs_super_block_44648 cp_payload f2fs_super_block 0 44648 NULL
161222 +enable_so_rel_sectors_mmc_ext_csd_44650 rel_sectors mmc_ext_csd 0 44650 NULL
161223 +enable_so_cm_cno_nilfs_cpmode_44654 cm_cno nilfs_cpmode 0 44654 NULL nohasharray
161224 +enable_so_iscsi_segment_init_linear_fndecl_44654 iscsi_segment_init_linear fndecl 3 44654 &enable_so_cm_cno_nilfs_cpmode_44654
161225 +enable_so_nr_sectors_blkif_request_discard_44655 nr_sectors blkif_request_discard 0 44655 NULL nohasharray
161226 +enable_so_bLength_usb_interface_descriptor_44655 bLength usb_interface_descriptor 0 44655 &enable_so_nr_sectors_blkif_request_discard_44655
161227 +enable_so_sparse_early_usemaps_alloc_pgdat_section_fndecl_44659 sparse_early_usemaps_alloc_pgdat_section fndecl 2 44659 NULL
161228 +enable_so_import_single_range_fndecl_44662 import_single_range fndecl 3 44662 NULL
161229 +enable_so_max_rqe_pdid_ocrdma_query_srq_rsp_44663 max_rqe_pdid ocrdma_query_srq_rsp 0 44663 NULL
161230 +enable_so_udf_sb_alloc_partition_maps_fndecl_44666 udf_sb_alloc_partition_maps fndecl 2 44666 NULL nohasharray
161231 +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
161232 +enable_so_fe_len_ext4_free_extent_44669 fe_len ext4_free_extent 0 44669 NULL
161233 +enable_so_lfb_width_screen_info_44670 lfb_width screen_info 0 44670 NULL
161234 +enable_so_overlay_cap_top_vivid_dev_44672 overlay_cap_top vivid_dev 0 44672 NULL
161235 +enable_so_mad_sendq_size_vardecl_mad_c_44673 mad_sendq_size vardecl_mad.c 0 44673 NULL nohasharray
161236 +enable_so_flash_write_fndecl_44673 flash_write fndecl 3 44673 &enable_so_mad_sendq_size_vardecl_mad_c_44673
161237 +enable_so_iwl_hwrate_to_plcp_idx_fndecl_44674 iwl_hwrate_to_plcp_idx fndecl 0-1 44674 NULL
161238 +enable_so_pipes_psb_ops_44679 pipes psb_ops 0 44679 NULL
161239 +enable_so_xfpregs_set_fndecl_44680 xfpregs_set fndecl 4 44680 NULL
161240 +enable_so_COM_len_camera_data_44681 COM_len camera_data 0 44681 NULL nohasharray
161241 +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
161242 +enable_so_length_ore_striping_info_44681 length ore_striping_info 0 44681 &enable_so_setup_swap_map_and_extents_fndecl_44681
161243 +enable_so_msg_size_ecryptfs_msg_ctx_44687 msg_size ecryptfs_msg_ctx 0 44687 NULL
161244 +enable_so_offset_drm_map_44692 offset drm_map 0 44692 NULL
161245 +enable_so_ipath_piobufbase_ipath_devdata_44698 ipath_piobufbase ipath_devdata 0 44698 NULL
161246 +enable_so_start_linear_c_44708 start linear_c 0 44708 NULL
161247 +enable_so_ts_packet_count_saa7164_port_44712 ts_packet_count saa7164_port 0 44712 NULL nohasharray
161248 +enable_so_au_rslack_rpc_auth_44712 au_rslack rpc_auth 0 44712 &enable_so_ts_packet_count_saa7164_port_44712
161249 +enable_so_altera_irscan_fndecl_44719 altera_irscan fndecl 2 44719 NULL
161250 +enable_so___nilfs_get_page_block_fndecl_44723 __nilfs_get_page_block fndecl 4 44723 NULL
161251 +enable_so_inlen_mimd_44727 inlen mimd 0 44727 NULL nohasharray
161252 +enable_so_kmalloc_order_fndecl_44727 kmalloc_order fndecl 1 44727 &enable_so_inlen_mimd_44727
161253 +enable_so_assoc_req_ies_len_station_info_44731 assoc_req_ies_len station_info 0 44731 NULL nohasharray
161254 +enable_so_buffer_size_st_buffer_44731 buffer_size st_buffer 0 44731 &enable_so_assoc_req_ies_len_station_info_44731
161255 +enable_so_ino_nilfs_recovery_block_44737 ino nilfs_recovery_block 0 44737 NULL
161256 +enable_so_name_len_name_cache_entry_44739 name_len name_cache_entry 0 44739 NULL
161257 +enable_so_ext4_journalled_write_end_fndecl_44742 ext4_journalled_write_end fndecl 5-3 44742 NULL
161258 +enable_so_erst_clearer_fndecl_44743 erst_clearer fndecl 2 44743 NULL
161259 +enable_so_max_phy_id_vardecl_x86_pkg_temp_thermal_c_44750 max_phy_id vardecl_x86_pkg_temp_thermal.c 0 44750 NULL
161260 +enable_so_dev_sectors_mddev_44756 dev_sectors mddev 0 44756 NULL
161261 +enable_so_brd_probe_fndecl_44758 brd_probe fndecl 1 44758 NULL
161262 +enable_so_set_ssp_fndecl_44760 set_ssp fndecl 4 44760 NULL
161263 +enable_so_p_memsz_elf64_phdr_44763 p_memsz elf64_phdr 0 44763 NULL
161264 +enable_so_mt9m111_reg_read_fndecl_44764 mt9m111_reg_read fndecl 0 44764 NULL
161265 +enable_so_sys_tee_fndecl_44769 sys_tee fndecl 3 44769 NULL
161266 +enable_so_count_snd_kcontrol_44773 count snd_kcontrol 0 44773 NULL
161267 +enable_so_dce_v8_0_afmt_update_ACR_fndecl_44781 dce_v8_0_afmt_update_ACR fndecl 2 44781 NULL
161268 +enable_so_nbp_vlan_add_fndecl_44783 nbp_vlan_add fndecl 2 44783 NULL
161269 +enable_so_vb2_vmalloc_alloc_fndecl_44785 vb2_vmalloc_alloc fndecl 2 44785 NULL
161270 +enable_so_truncate_size_ceph_mds_caps_44794 truncate_size ceph_mds_caps 0 44794 NULL
161271 +enable_so_sg_used_ccp_sg_workarea_44796 sg_used ccp_sg_workarea 0 44796 NULL
161272 +enable_so_n_caps_whci_card_44799 n_caps whci_card 0 44799 NULL nohasharray
161273 +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
161274 +enable_so_tclass_sq_psn_ocrdma_qp_params_44805 tclass_sq_psn ocrdma_qp_params 0 44805 NULL
161275 +enable_so_cow_file_range_fndecl_44808 cow_file_range fndecl 3-4 44808 NULL
161276 +enable_so_fd_locked_ioctl_fndecl_44809 fd_locked_ioctl fndecl 3 44809 NULL
161277 +enable_so_raw_getfrag_fndecl_44811 raw_getfrag fndecl 3-4 44811 NULL nohasharray
161278 +enable_so___remove_privs_fndecl_44811 __remove_privs fndecl 0 44811 &enable_so_raw_getfrag_fndecl_44811 nohasharray
161279 +enable_so_resp_ctrl_m_pg_fndecl_44811 resp_ctrl_m_pg fndecl 0 44811 &enable_so___remove_privs_fndecl_44811
161280 +enable_so_ndev_debugfs_read_fndecl_44812 ndev_debugfs_read fndecl 3 44812 NULL
161281 +enable_so_set_extent_delalloc_fndecl_44813 set_extent_delalloc fndecl 3-2 44813 NULL
161282 +enable_so_sb_uquotino_xfs_sb_44820 sb_uquotino xfs_sb 0 44820 NULL
161283 +enable_so_cluster_pages_for_defrag_fndecl_44823 cluster_pages_for_defrag fndecl 0 44823 NULL
161284 +enable_so_bytesize_nbd_device_44824 bytesize nbd_device 0 44824 NULL nohasharray
161285 +enable_so_count_atl1c_tpd_ring_44824 count atl1c_tpd_ring 0 44824 &enable_so_bytesize_nbd_device_44824
161286 +enable_so_squashfs_read_id_index_table_fndecl_44826 squashfs_read_id_index_table fndecl 4 44826 NULL
161287 +enable_so_vlan_tag_be_rx_compl_info_44830 vlan_tag be_rx_compl_info 0 44830 NULL nohasharray
161288 +enable_so_fix_read_error_fndecl_44830 fix_read_error fndecl 4-3 44830 &enable_so_vlan_tag_be_rx_compl_info_44830
161289 +enable_so_snprint_stack_trace_fndecl_44832 snprint_stack_trace fndecl 0 44832 NULL
161290 +enable_so_dequeue_event_fndecl_44835 dequeue_event fndecl 3 44835 NULL
161291 +enable_so_name_len_exofs_dir_entry_44838 name_len exofs_dir_entry 0 44838 NULL
161292 +enable_so_xt_compat_match_offset_fndecl_44840 xt_compat_match_offset fndecl 0 44840 NULL
161293 +enable_so_exofs_readpages_fndecl_44841 exofs_readpages fndecl 4 44841 NULL
161294 +enable_so_submit_bh_wbc_fndecl_44843 submit_bh_wbc fndecl 0 44843 NULL
161295 +enable_so_num_zones_quirk_entry_44844 num_zones quirk_entry 0 44844 NULL
161296 +enable_so_btrfs_shrink_device_fndecl_44845 btrfs_shrink_device fndecl 2 44845 NULL
161297 +enable_so_spi_sh_receive_fndecl_44846 spi_sh_receive fndecl 0 44846 NULL
161298 +enable_so_ext4_da_get_block_prep_fndecl_44848 ext4_da_get_block_prep fndecl 2 44848 NULL
161299 +enable_so_primary_size_drm_mga_dma_bootstrap_44851 primary_size drm_mga_dma_bootstrap 0 44851 NULL
161300 +enable_so_viafb_second_yres_vardecl_44862 viafb_second_yres vardecl 0 44862 NULL nohasharray
161301 +enable_so_offset_isofs_iget5_callback_data_44862 offset isofs_iget5_callback_data 0 44862 &enable_so_viafb_second_yres_vardecl_44862
161302 +enable_so_pmcraid_build_passthrough_ioadls_fndecl_44865 pmcraid_build_passthrough_ioadls fndecl 2 44865 NULL
161303 +enable_so_crypt_extent_fndecl_44866 crypt_extent fndecl 4 44866 NULL nohasharray
161304 +enable_so_h4_recv_fndecl_44866 h4_recv fndecl 3 44866 &enable_so_crypt_extent_fndecl_44866
161305 +enable_so_intel_setup_irq_remapping_fndecl_44868 intel_setup_irq_remapping fndecl 0 44868 NULL
161306 +enable_so_alloc_rc_map_44870 alloc rc_map 0 44870 NULL
161307 +enable_so_romfs_blk_read_fndecl_44875 romfs_blk_read fndecl 4-2 44875 NULL
161308 +enable_so_ppp_tx_cp_fndecl_44879 ppp_tx_cp fndecl 5 44879 NULL
161309 +enable_so_SyS_setxattr_fndecl_44880 SyS_setxattr fndecl 4 44880 NULL
161310 +enable_so_num_resources_platform_device_44886 num_resources platform_device 0 44886 NULL
161311 +enable_so___cookie_v4_check_fndecl_44887 __cookie_v4_check fndecl 0 44887 NULL nohasharray
161312 +enable_so_jffs2_do_unlink_fndecl_44887 jffs2_do_unlink fndecl 4 44887 &enable_so___cookie_v4_check_fndecl_44887
161313 +enable_so_code_length_lirc_driver_44888 code_length lirc_driver 0 44888 NULL
161314 +enable_so_deh_len_hops_ddpehdr_44891 deh_len_hops ddpehdr 0 44891 NULL nohasharray
161315 +enable_so_msg_len_rndis_data_hdr_44891 msg_len rndis_data_hdr 0 44891 &enable_so_deh_len_hops_ddpehdr_44891 nohasharray
161316 +enable_so_SYSC_select_fndecl_44891 SYSC_select fndecl 1 44891 &enable_so_msg_len_rndis_data_hdr_44891
161317 +enable_so_inst_evtlog_size_iwl_fw_44893 inst_evtlog_size iwl_fw 0 44893 NULL
161318 +enable_so_FormattedSize_NFTLMediaHeader_44896 FormattedSize NFTLMediaHeader 0 44896 NULL
161319 +enable_so_io_size_gpio_lpc_sch_info_44898 io_size_gpio lpc_sch_info 0 44898 NULL
161320 +enable_so_pcpu_alloc_bootmem_fndecl_44905 pcpu_alloc_bootmem fndecl 3-2 44905 NULL
161321 +enable_so_gotoxy_fndecl_44908 gotoxy fndecl 2-3 44908 NULL
161322 +enable_so_write_packet_fndecl_44910 write_packet fndecl 3 44910 NULL
161323 +enable_so_catas_size_mlx4_fw_44916 catas_size mlx4_fw 0 44916 NULL
161324 +enable_so_tpc_total_gf100_gr_priv_44923 tpc_total gf100_gr_priv 0 44923 NULL
161325 +enable_so_do_pselect_fndecl_44926 do_pselect fndecl 1 44926 NULL
161326 +enable_so_bvec_iter_advance_fndecl_44933 bvec_iter_advance fndecl 3 44933 NULL
161327 +enable_so_ipath_user_sdma_pin_pages_fndecl_44935 ipath_user_sdma_pin_pages fndecl 3 44935 NULL
161328 +enable_so_jffs2_security_setxattr_fndecl_44936 jffs2_security_setxattr fndecl 4 44936 NULL
161329 +enable_so_data_dev_block_bits_dm_verity_44943 data_dev_block_bits dm_verity 0 44943 NULL
161330 +enable_so_data_block_dm_thin_new_mapping_44944 data_block dm_thin_new_mapping 0 44944 NULL nohasharray
161331 +enable_so_acpiphp_max_busnr_fndecl_44944 acpiphp_max_busnr fndecl 0 44944 &enable_so_data_block_dm_thin_new_mapping_44944
161332 +enable_so_srp_sq_size_srpt_port_attrib_44947 srp_sq_size srpt_port_attrib 0 44947 NULL
161333 +enable_so_sd_diptrs_gfs2_sbd_44954 sd_diptrs gfs2_sbd 0 44954 NULL nohasharray
161334 +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
161335 +enable_so_coff_ddb_output_44962 coff ddb_output 0 44962 NULL
161336 +enable_so_qib_diag_write_fndecl_44966 qib_diag_write fndecl 3 44966 NULL
161337 +enable_so_fat12_ent_bread_fndecl_44968 fat12_ent_bread fndecl 4 44968 NULL
161338 +enable_so_i915_pages_create_for_stolen_fndecl_44970 i915_pages_create_for_stolen fndecl 3 44970 NULL
161339 +enable_so_x0_osd_cmd_s_44978 x0 osd_cmd_s 0 44978 NULL
161340 +enable_so_length_mtd_oob_buf64_44979 length mtd_oob_buf64 0 44979 NULL
161341 +enable_so_ip_recv_error_fndecl_44982 ip_recv_error fndecl 3 44982 NULL nohasharray
161342 +enable_so_num_free_virtqueue_44982 num_free virtqueue 0 44982 &enable_so_ip_recv_error_fndecl_44982
161343 +enable_so_generic_block_fiemap_fndecl_44985 generic_block_fiemap fndecl 4 44985 NULL
161344 +enable_so_snd_ak4114_external_rate_fndecl_44987 snd_ak4114_external_rate fndecl 0 44987 NULL
161345 +enable_so_num_carats_acpi_namestring_info_44990 num_carats acpi_namestring_info 0 44990 NULL
161346 +enable_so_transport_lba_32_fndecl_44994 transport_lba_32 fndecl 0 44994 NULL
161347 +enable_so_fts_libipw_device_44996 fts libipw_device 0 44996 NULL
161348 +enable_so_iscsi_max_outsnd_r2t_dev_db_entry_44997 iscsi_max_outsnd_r2t dev_db_entry 0 44997 NULL nohasharray
161349 +enable_so_SyS_getxattr_fndecl_44997 SyS_getxattr fndecl 4 44997 &enable_so_iscsi_max_outsnd_r2t_dev_db_entry_44997
161350 +enable_so_eeprom_size_il_cfg_44998 eeprom_size il_cfg 0 44998 NULL
161351 +enable_so_ocfs2_list_xattr_tree_rec_fndecl_45001 ocfs2_list_xattr_tree_rec fndecl 3 45001 NULL
161352 +enable_so_prism54_wpa_bss_ie_get_fndecl_45006 prism54_wpa_bss_ie_get fndecl 0 45006 NULL
161353 +enable_so_video_usercopy_fndecl_45012 video_usercopy fndecl 2 45012 NULL
161354 +enable_so_size_e820entry_45018 size e820entry 0 45018 NULL
161355 +enable_so_num_cqs_mthca_limits_45021 num_cqs mthca_limits 0 45021 NULL
161356 +enable_so_membase_vgastate_45022 membase vgastate 0 45022 NULL
161357 +enable_so_rd_size_hidp_session_45023 rd_size hidp_session 0 45023 NULL
161358 +enable_so_sock_kmalloc_fndecl_45038 sock_kmalloc fndecl 2 45038 NULL
161359 +enable_so_write_file_dfs_fndecl_45047 write_file_dfs fndecl 3 45047 NULL
161360 +enable_so_alloc_upcall_fndecl_45049 alloc_upcall fndecl 2 45049 NULL
161361 +enable_so_hs_extra_bytes_cfs_hash_45050 hs_extra_bytes cfs_hash 0 45050 NULL
161362 +enable_so_tx_ring_count_e1000_adapter_45060 tx_ring_count e1000_adapter 0 45060 NULL
161363 +enable_so_sd_sgentry_align_brcmfmac_sdio_platform_data_45061 sd_sgentry_align brcmfmac_sdio_platform_data 0 45061 NULL
161364 +enable_so_write_buffer_size_vardecl_legousbtower_c_45062 write_buffer_size vardecl_legousbtower.c 0 45062 NULL
161365 +enable_so_ib_ipath_max_sges_vardecl_45073 ib_ipath_max_sges vardecl 0 45073 NULL
161366 +enable_so_read_vbt_r10_fndecl_45076 read_vbt_r10 fndecl 1 45076 NULL
161367 +enable_so_sendpage_iscsi_sw_tcp_conn_45081 sendpage iscsi_sw_tcp_conn 0 45081 NULL
161368 +enable_so_unmap_mapping_range_vma_fndecl_45084 unmap_mapping_range_vma fndecl 2-3 45084 NULL
161369 +enable_so_regshift_uart_port_45089 regshift uart_port 0 45089 NULL
161370 +enable_so_ext3_xattr_set_fndecl_45090 ext3_xattr_set fndecl 5 45090 NULL
161371 +enable_so_revmap_size_irq_domain_45091 revmap_size irq_domain 0 45091 NULL
161372 +enable_so_ocfs2_lock_reflink_xattr_rec_allocators_fndecl_45097 ocfs2_lock_reflink_xattr_rec_allocators fndecl 3 45097 NULL
161373 +enable_so_bblog_size_mdp_superblock_1_45102 bblog_size mdp_superblock_1 0 45102 NULL
161374 +enable_so_nd_cmd_out_size_fndecl_45105 nd_cmd_out_size fndecl 0 45105 NULL nohasharray
161375 +enable_so_pitch_tmHWStreamParameters_45105 pitch tmHWStreamParameters 0 45105 &enable_so_nd_cmd_out_size_fndecl_45105 nohasharray
161376 +enable_so_head_timestamp_event_queue_45105 head timestamp_event_queue 0 45105 &enable_so_pitch_tmHWStreamParameters_45105
161377 +enable_so_skb_tx_rsvd_cxgbi_device_45109 skb_tx_rsvd cxgbi_device 0 45109 NULL
161378 +enable_so_init_data_container_fndecl_45110 init_data_container fndecl 1 45110 NULL nohasharray
161379 +enable_so_watchdog_devt_vardecl_watchdog_dev_c_45110 watchdog_devt vardecl_watchdog_dev.c 0 45110 &enable_so_init_data_container_fndecl_45110
161380 +enable_so_ea_size_s_fnode_45115 ea_size_s fnode 0 45115 NULL
161381 +enable_so_ov518_pkt_scan_fndecl_45121 ov518_pkt_scan fndecl 3 45121 NULL
161382 +enable_so_vblk_size_vmdb_45123 vblk_size vmdb 0 45123 NULL
161383 +enable_so_key_len_mwifiex_ds_encrypt_key_45127 key_len mwifiex_ds_encrypt_key 0 45127 NULL
161384 +enable_so_img_x_zoran_jpg_settings_45135 img_x zoran_jpg_settings 0 45135 NULL
161385 +enable_so_offset_mlx4_clock_params_45137 offset mlx4_clock_params 0 45137 NULL
161386 +enable_so_specified_table_size_vardecl_45152 specified_table_size vardecl 0 45152 NULL
161387 +enable_so_MaxLanBuckets__MSG_PORT_FACTS_REPLY_45155 MaxLanBuckets _MSG_PORT_FACTS_REPLY 0 45155 NULL
161388 +enable_so_ocfs2_set_refcount_tree_fndecl_45158 ocfs2_set_refcount_tree fndecl 3 45158 NULL
161389 +enable_so_pwc_get_fps_Nala_fndecl_45162 pwc_get_fps_Nala fndecl 0 45162 NULL
161390 +enable_so_cmd_sg_cnt_srp_target_port_45169 cmd_sg_cnt srp_target_port 0 45169 NULL
161391 +enable_so_desc_len_skb_frame_desc_45170 desc_len skb_frame_desc 0 45170 NULL nohasharray
161392 +enable_so_pkcs7_sig_note_issuer_fndecl_45170 pkcs7_sig_note_issuer fndecl 5 45170 &enable_so_desc_len_skb_frame_desc_45170
161393 +enable_so_hpfs_remove_dirent_fndecl_45171 hpfs_remove_dirent fndecl 2 45171 NULL nohasharray
161394 +enable_so_remove_nearest_fndecl_45171 remove_nearest fndecl 4 45171 &enable_so_hpfs_remove_dirent_fndecl_45171 nohasharray
161395 +enable_so_n_ao_urbs_usbdux_private_45171 n_ao_urbs usbdux_private 0 45171 &enable_so_remove_nearest_fndecl_45171
161396 +enable_so_opticon_write_fndecl_45172 opticon_write fndecl 4 45172 NULL
161397 +enable_so_sel_write_checkreqprot_fndecl_45173 sel_write_checkreqprot fndecl 3 45173 NULL
161398 +enable_so_leaf_cut_entries_fndecl_45176 leaf_cut_entries fndecl 4-0 45176 NULL
161399 +enable_so_acl_alloc_num_fndecl_45177 acl_alloc_num fndecl 2-1 45177 NULL
161400 +enable_so_nfsd_splice_read_fndecl_45181 nfsd_splice_read fndecl 3 45181 NULL nohasharray
161401 +enable_so_quirk_awe32_add_ports_fndecl_45181 quirk_awe32_add_ports fndecl 3 45181 &enable_so_nfsd_splice_read_fndecl_45181
161402 +enable_so_n_namesz_elf32_note_45186 n_namesz elf32_note 0 45186 NULL
161403 +enable_so_gfs2_bmap_alloc_fndecl_45189 gfs2_bmap_alloc fndecl 7 45189 NULL
161404 +enable_so_mtu_l2cap_conn_45195 mtu l2cap_conn 0 45195 NULL
161405 +enable_so_count_user_sgentry_45207 count user_sgentry 0 45207 NULL
161406 +enable_so_pwr_tx_with_ps_read_fndecl_45216 pwr_tx_with_ps_read fndecl 3 45216 NULL
161407 +enable_so_nvif_object_init_fndecl_45219 nvif_object_init fndecl 6 45219 NULL
161408 +enable_so_l2cap_sock_recvmsg_fndecl_45221 l2cap_sock_recvmsg fndecl 3 45221 NULL
161409 +enable_so_ep_out_usbtest_info_45222 ep_out usbtest_info 0 45222 NULL
161410 +enable_so_nwords_xdr_stream_45223 nwords xdr_stream 0 45223 NULL
161411 +enable_so_emulator_task_switch_fndecl_45228 emulator_task_switch fndecl 2-3 45228 NULL nohasharray
161412 +enable_so_hsu_dma_alloc_desc_fndecl_45228 hsu_dma_alloc_desc fndecl 1 45228 &enable_so_emulator_task_switch_fndecl_45228
161413 +enable_so_cmt_orphans_ubifs_info_45232 cmt_orphans ubifs_info 0 45232 NULL
161414 +enable_so_packet_buffer_put_fndecl_45234 packet_buffer_put fndecl 3 45234 NULL
161415 +enable_so_ensure_zone_is_initialized_fndecl_45235 ensure_zone_is_initialized fndecl 2 45235 NULL
161416 +enable_so_max_cqes_mlx4_caps_45237 max_cqes mlx4_caps 0 45237 NULL
161417 +enable_so_internal_dev_change_mtu_fndecl_45242 internal_dev_change_mtu fndecl 2 45242 NULL
161418 +enable_so_aggregate_new_rx_fndecl_45246 aggregate_new_rx fndecl 4 45246 NULL
161419 +enable_so_f_height_fimc_frame_45250 f_height fimc_frame 0 45250 NULL
161420 +enable_so_base_erst_erange_45255 base erst_erange 0 45255 NULL
161421 +enable_so_ext4_update_inline_data_fndecl_45259 ext4_update_inline_data fndecl 3 45259 NULL
161422 +enable_so_nameLen_nw_info_struct_45260 nameLen nw_info_struct 0 45260 NULL
161423 +enable_so_check_sectors_in_chain_fndecl_45261 check_sectors_in_chain fndecl 2 45261 NULL
161424 +enable_so_num_rx_ring_sh_eth_private_45262 num_rx_ring sh_eth_private 0 45262 NULL
161425 +enable_so_alloc_buf_fndecl_45267 alloc_buf fndecl 2-3 45267 NULL
161426 +enable_so_generic_writepages_fndecl_45268 generic_writepages fndecl 0 45268 NULL nohasharray
161427 +enable_so_vmw_dmabuf_init_fndecl_45268 vmw_dmabuf_init fndecl 3 45268 &enable_so_generic_writepages_fndecl_45268
161428 +enable_so_mq_msgsize_mq_attr_45276 mq_msgsize mq_attr 0 45276 NULL
161429 +enable_so_rss_size_max_i40e_pf_45282 rss_size_max i40e_pf 0 45282 NULL
161430 +enable_so_mgt_set_varlen_fndecl_45287 mgt_set_varlen fndecl 4 45287 NULL
161431 +enable_so_ath6kl_sdio_write_async_fndecl_45290 ath6kl_sdio_write_async fndecl 4 45290 NULL
161432 +enable_so_scrub_chunk_fndecl_45293 scrub_chunk fndecl 5 45293 NULL
161433 +enable_so_rcvhdrcnt_qib_devdata_45297 rcvhdrcnt qib_devdata 0 45297 NULL
161434 +enable_so_hugetlbfs_read_actor_fndecl_45304 hugetlbfs_read_actor fndecl 0-4-2 45304 NULL
161435 +enable_so_iio_debugfs_read_reg_fndecl_45311 iio_debugfs_read_reg fndecl 3 45311 NULL
161436 +enable_so_atl1_change_mtu_fndecl_45313 atl1_change_mtu fndecl 2 45313 NULL nohasharray
161437 +enable_so_rx_count_ethtool_channels_45313 rx_count ethtool_channels 0 45313 &enable_so_atl1_change_mtu_fndecl_45313 nohasharray
161438 +enable_so_rx_ring_count_xgbe_prv_data_45313 rx_ring_count xgbe_prv_data 0 45313 &enable_so_rx_count_ethtool_channels_45313
161439 +enable_so_tstats_write_fndecl_45315 tstats_write fndecl 3 45315 NULL
161440 +enable_so_tipc_buf_acquire_fndecl_45318 tipc_buf_acquire fndecl 1 45318 NULL
161441 +enable_so_rx_data_fndecl_45321 rx_data fndecl 4 45321 NULL
161442 +enable_so_len_qib_diag_xpkt_45322 len qib_diag_xpkt 0 45322 NULL
161443 +enable_so_tipc_recv_stream_fndecl_45323 tipc_recv_stream fndecl 3 45323 NULL
161444 +enable_so_back_xfs_dir3_icleaf_hdr_45324 back xfs_dir3_icleaf_hdr 0 45324 NULL
161445 +enable_so_tcf_csum_ipv4_igmp_fndecl_45325 tcf_csum_ipv4_igmp fndecl 3 45325 NULL
161446 +enable_so_excessive_retries_read_fndecl_45338 excessive_retries_read fndecl 3 45338 NULL
161447 +enable_so_peer_chan_len_wmi_tdls_peer_capab_arg_45339 peer_chan_len wmi_tdls_peer_capab_arg 0 45339 NULL
161448 +enable_so_vm_munmap_fndecl_45341 vm_munmap fndecl 1-2 45341 NULL
161449 +enable_so___snd_util_mem_alloc_fndecl_45349 __snd_util_mem_alloc fndecl 2 45349 NULL
161450 +enable_so_uar_size_mlx4_dev_cap_45351 uar_size mlx4_dev_cap 0 45351 NULL
161451 +enable_so_fps_timblogiw_tvnorm_45355 fps timblogiw_tvnorm 0 45355 NULL
161452 +enable_so_reserve_bad_mem_fndecl_45356 reserve_bad_mem fndecl 2-3 45356 NULL
161453 +enable_so_icq_size_elevator_type_45359 icq_size elevator_type 0 45359 NULL
161454 +enable_so_mad_recvq_size_vardecl_mad_c_45372 mad_recvq_size vardecl_mad.c 0 45372 NULL
161455 +enable_so_get_urb_status_from_qtd_fndecl_45378 get_urb_status_from_qtd fndecl 0 45378 NULL
161456 +enable_so_txq_entries_efx_nic_45383 txq_entries efx_nic 0 45383 NULL
161457 +enable_so_nchildren_retu_data_45387 nchildren retu_data 0 45387 NULL
161458 +enable_so_ebcnt_vardecl_speedtest_c_45398 ebcnt vardecl_speedtest.c 0 45398 NULL
161459 +enable_so_get_dpb_count_s5p_mfc_hw_ops_45399 get_dpb_count s5p_mfc_hw_ops 0 45399 NULL
161460 +enable_so_last_txrate_idx_il3945_rs_sta_45402 last_txrate_idx il3945_rs_sta 0 45402 NULL
161461 +enable_so_xpc_nasid_mask_nbytes_vardecl_xpc_partition_c_45405 xpc_nasid_mask_nbytes vardecl_xpc_partition.c 0 45405 NULL
161462 +enable_so_mtu_l2cap_le_conn_req_45411 mtu l2cap_le_conn_req 0 45411 NULL
161463 +enable_so_brcmf_init_nvram_parser_fndecl_45415 brcmf_init_nvram_parser fndecl 3 45415 NULL
161464 +enable_so_lastUnit_INFTLPartition_45416 lastUnit INFTLPartition 0 45416 NULL
161465 +enable_so_pos_c4iw_debugfs_data_45424 pos c4iw_debugfs_data 0 45424 NULL
161466 +enable_so_fats_msdos_sb_info_45426 fats msdos_sb_info 0 45426 NULL
161467 +enable_so___munlock_pagevec_fill_fndecl_45430 __munlock_pagevec_fill fndecl 0-4 45430 NULL
161468 +enable_so_compat_SyS_get_mempolicy_fndecl_45436 compat_SyS_get_mempolicy fndecl 3 45436 NULL
161469 +enable_so_rn_tnamelen_nfsd4_rename_45437 rn_tnamelen nfsd4_rename 0 45437 NULL
161470 +enable_so_radeon_ttm_tt_set_userptr_fndecl_45438 radeon_ttm_tt_set_userptr fndecl 2 45438 NULL
161471 +enable_so_nfsd_hashsize_fndecl_45441 nfsd_hashsize fndecl 0 45441 NULL
161472 +enable_so_qcaspi_netdev_change_mtu_fndecl_45450 qcaspi_netdev_change_mtu fndecl 2 45450 NULL
161473 +enable_so_start_bdi_bd_transfer_45454 start_bdi bd_transfer 0 45454 NULL
161474 +enable_so_wTotalLength_usb_bos_descriptor_45455 wTotalLength usb_bos_descriptor 0 45455 NULL
161475 +enable_so_nonpaging_map_fndecl_45460 nonpaging_map fndecl 4 45460 NULL
161476 +enable_so_cfrfml_create_fndecl_45463 cfrfml_create fndecl 3 45463 NULL
161477 +enable_so_ssize_jumpshot_info_45467 ssize jumpshot_info 0 45467 NULL
161478 +enable_so_index_nullb_45470 index nullb 0 45470 NULL
161479 +enable_so_sockaddr_len_audit_context_45471 sockaddr_len audit_context 0 45471 NULL
161480 +enable_so_gx_line_delta_fndecl_45476 gx_line_delta fndecl 0-2-1 45476 NULL
161481 +enable_so_i_pos_fat_slot_info_45481 i_pos fat_slot_info 0 45481 NULL
161482 +enable_so_hdisplay_drm_display_mode_45484 hdisplay drm_display_mode 0 45484 NULL
161483 +enable_so_memblock_virt_alloc_try_nid_nopanic_fndecl_45487 memblock_virt_alloc_try_nid_nopanic fndecl 2-1-3-4 45487 NULL
161484 +enable_so_ovl_cache_entry_add_rb_fndecl_45488 ovl_cache_entry_add_rb fndecl 3 45488 NULL
161485 +enable_so_convert_initialized_extent_fndecl_45492 convert_initialized_extent fndecl 0-6 45492 NULL
161486 +enable_so_isofs_bmap_fndecl_45497 isofs_bmap fndecl 0-2 45497 NULL
161487 +enable_so_bdeSize_ULP_BDL_45501 bdeSize ULP_BDL 0 45501 NULL
161488 +enable_so_nci_uart_default_recv_buf_fndecl_45502 nci_uart_default_recv_buf fndecl 4 45502 NULL
161489 +enable_so_mwifiex_set_gen_ie_fndecl_45504 mwifiex_set_gen_ie fndecl 3 45504 NULL
161490 +enable_so_acl_alloc_stack_init_fndecl_45509 acl_alloc_stack_init fndecl 1 45509 NULL
161491 +enable_so_free_dind_blocks_fndecl_45512 free_dind_blocks fndecl 3 45512 NULL
161492 +enable_so_ubifs_recover_leb_fndecl_45516 ubifs_recover_leb fndecl 3 45516 NULL
161493 +enable_so_stv6110_write_regs_fndecl_45517 stv6110_write_regs fndecl 4 45517 NULL nohasharray
161494 +enable_so_buffer_size_vardecl_cpia2_v4l_c_45517 buffer_size vardecl_cpia2_v4l.c 0 45517 &enable_so_stv6110_write_regs_fndecl_45517
161495 +enable_so_inode_change_ok_fndecl_45525 inode_change_ok fndecl 0 45525 NULL
161496 +enable_so_cifs_partialpagewrite_fndecl_45527 cifs_partialpagewrite fndecl 2-3 45527 NULL nohasharray
161497 +enable_so_callback_via_vardecl_platform_pci_c_45527 callback_via vardecl_platform-pci.c 0 45527 &enable_so_cifs_partialpagewrite_fndecl_45527
161498 +enable_so_ssb_hcd_create_pdev_fndecl_45528 ssb_hcd_create_pdev fndecl 4-3 45528 NULL
161499 +enable_so_sizeof_dev_private_peak_usb_adapter_45529 sizeof_dev_private peak_usb_adapter 0 45529 NULL
161500 +enable_so_hpfs_trim_fs_fndecl_45531 hpfs_trim_fs fndecl 2-3 45531 NULL
161501 +enable_so_wl1273_fm_fops_write_fndecl_45534 wl1273_fm_fops_write fndecl 3 45534 NULL
161502 +enable_so_rtsx_usb_bulk_transfer_sglist_fndecl_45538 rtsx_usb_bulk_transfer_sglist fndecl 5-2-4 45538 NULL
161503 +enable_so_rate_n_flags_iwl_rx_phy_info_45542 rate_n_flags iwl_rx_phy_info 0 45542 NULL
161504 +enable_so_size_nft_expr_ops_45543 size nft_expr_ops 0 45543 NULL nohasharray
161505 +enable_so_arch_setup_dma_ops_fndecl_45543 arch_setup_dma_ops fndecl 3 45543 &enable_so_size_nft_expr_ops_45543
161506 +enable_so_if_sdio_host_to_card_fndecl_45545 if_sdio_host_to_card fndecl 4 45545 NULL
161507 +enable_so_mp_agg_pkt_limit_sdio_mmc_card_45546 mp_agg_pkt_limit sdio_mmc_card 0 45546 NULL
161508 +enable_so_ieee80211_if_read_dot11MeshConfirmTimeout_fndecl_45549 ieee80211_if_read_dot11MeshConfirmTimeout fndecl 3 45549 NULL
161509 +enable_so_driver_max_VFs_pci_sriov_45552 driver_max_VFs pci_sriov 0 45552 NULL
161510 +enable_so_bpp_via_format_45554 bpp via_format 0 45554 NULL
161511 +enable_so_pci_quatech_setup_fndecl_45560 pci_quatech_setup fndecl 4 45560 NULL
161512 +enable_so_syncinterval_snd_usb_endpoint_45567 syncinterval snd_usb_endpoint 0 45567 NULL
161513 +enable_so_SyS_prctl_fndecl_45569 SyS_prctl fndecl 4 45569 NULL
161514 +enable_so_height_pwc_device_45570 height pwc_device 0 45570 NULL
161515 +enable_so_get_gate_page_fndecl_45571 get_gate_page fndecl 2 45571 NULL
161516 +enable_so_srp_create_fr_pool_fndecl_45572 srp_create_fr_pool fndecl 3 45572 NULL
161517 +enable_so_s_partition_func_udf_part_map_45579 s_partition_func udf_part_map 0 45579 NULL
161518 +enable_so_f2fs_sync_file_fndecl_45585 f2fs_sync_file fndecl 2-3 45585 NULL
161519 +enable_so_wpan_phy_new_fndecl_45593 wpan_phy_new fndecl 2 45593 NULL
161520 +enable_so_upd_received_ubi_volume_45595 upd_received ubi_volume 0 45595 NULL
161521 +enable_so_slave_init_fndecl_45597 slave_init fndecl 0 45597 NULL
161522 +enable_so_readpos_cx18_buffer_45604 readpos cx18_buffer 0 45604 NULL
161523 +enable_so_l_logBBsize_xlog_45614 l_logBBsize xlog 0 45614 NULL
161524 +enable_so_crtc_vblank_end_drm_display_mode_45620 crtc_vblank_end drm_display_mode 0 45620 NULL
161525 +enable_so_smk_read_ambient_fndecl_45623 smk_read_ambient fndecl 3 45623 NULL
161526 +enable_so_image_size_nvbios_npdeT_45624 image_size nvbios_npdeT 0 45624 NULL
161527 +enable_so_blocknr_disk_index_entry_45635 blocknr disk_index_entry 0 45635 NULL
161528 +enable_so_advmss_tcp_sock_45637 advmss tcp_sock 0 45637 NULL nohasharray
161529 +enable_so_btrfs_bio_alloc_fndecl_45637 btrfs_bio_alloc fndecl 2-3 45637 &enable_so_advmss_tcp_sock_45637 nohasharray
161530 +enable_so_ifalias_store_fndecl_45637 ifalias_store fndecl 4 45637 &enable_so_btrfs_bio_alloc_fndecl_45637
161531 +enable_so_tcfv_push_vid_tcf_vlan_45639 tcfv_push_vid tcf_vlan 0 45639 NULL
161532 +enable_so___verify_planes_array_fndecl_45650 __verify_planes_array fndecl 0 45650 NULL
161533 +enable_so_inftl_writeblock_fndecl_45653 inftl_writeblock fndecl 2 45653 NULL
161534 +enable_so_preproc_res_proc_context_45654 preproc res_proc_context 0 45654 NULL
161535 +enable_so_size_core_name_45656 size core_name 0 45656 NULL
161536 +enable_so_submit_bh_fndecl_45660 submit_bh fndecl 0 45660 NULL
161537 +enable_so_jfs_direct_IO_fndecl_45661 jfs_direct_IO fndecl 3 45661 NULL
161538 +enable_so_blockmask_alauda_media_info_45662 blockmask alauda_media_info 0 45662 NULL
161539 +enable_so_xfer_from_user_fndecl_45672 xfer_from_user fndecl 3 45672 NULL
161540 +enable_so_dmi_base_vardecl_dmi_scan_c_45673 dmi_base vardecl_dmi_scan.c 0 45673 NULL nohasharray
161541 +enable_so_videobuf_dqbuf_fndecl_45673 videobuf_dqbuf fndecl 0 45673 &enable_so_dmi_base_vardecl_dmi_scan_c_45673
161542 +enable_so__snd_pcm_hw_param_min_fndecl_45677 _snd_pcm_hw_param_min fndecl 3 45677 NULL
161543 +enable_so_ocfs2_get_sector_fndecl_45678 ocfs2_get_sector fndecl 4-3 45678 NULL
161544 +enable_so_ib_umem_odp_map_dma_pages_fndecl_45679 ib_umem_odp_map_dma_pages fndecl 0-2 45679 NULL nohasharray
161545 +enable_so_lhead_offs_ubifs_info_45679 lhead_offs ubifs_info 0 45679 &enable_so_ib_umem_odp_map_dma_pages_fndecl_45679
161546 +enable_so_hfsplus_getxattr_finder_info_fndecl_45680 hfsplus_getxattr_finder_info fndecl 0 45680 NULL
161547 +enable_so_src_y_yuv_frame_info_45681 src_y yuv_frame_info 0 45681 NULL
161548 +enable_so_sys_add_key_fndecl_45691 sys_add_key fndecl 4 45691 NULL nohasharray
161549 +enable_so_nvme_trans_copy_to_user_fndecl_45691 nvme_trans_copy_to_user fndecl 3-0 45691 &enable_so_sys_add_key_fndecl_45691
161550 +enable_so_endpt_ubifs_unclean_leb_45692 endpt ubifs_unclean_leb 0 45692 NULL
161551 +enable_so___netdev_adjacent_dev_insert_fndecl_45697 __netdev_adjacent_dev_insert fndecl 0 45697 NULL
161552 +enable_so_write_file_spectral_short_repeat_fndecl_45700 write_file_spectral_short_repeat fndecl 3 45700 NULL
161553 +enable_so_shift_badblocks_45703 shift badblocks 0 45703 NULL
161554 +enable_so_offset_ixgbe_ring_feature_45704 offset ixgbe_ring_feature 0 45704 NULL
161555 +enable_so_data_transfer_length_hpt_iop_request_get_config_45705 data_transfer_length hpt_iop_request_get_config 0 45705 NULL
161556 +enable_so_do_splice_direct_fndecl_45710 do_splice_direct fndecl 5-0 45710 NULL nohasharray
161557 +enable_so_fi_nblocks_nilfs_finfo_45710 fi_nblocks nilfs_finfo 0 45710 &enable_so_do_splice_direct_fndecl_45710 nohasharray
161558 +enable_so_rx_rx_wa_ba_not_expected_read_fndecl_45710 rx_rx_wa_ba_not_expected_read fndecl 3 45710 &enable_so_fi_nblocks_nilfs_finfo_45710
161559 +enable_so_st5481_setup_isocpipes_fndecl_45711 st5481_setup_isocpipes fndecl 6-4 45711 NULL
161560 +enable_so_rl_niovs_rpcrdma_req_45712 rl_niovs rpcrdma_req 0 45712 NULL
161561 +enable_so_width_cx23885_dev_45714 width cx23885_dev 0 45714 NULL
161562 +enable_so_ocfs2_xattr_set_fndecl_45720 ocfs2_xattr_set fndecl 5 45720 NULL
161563 +enable_so_num_cqs_mlx4_caps_45727 num_cqs mlx4_caps 0 45727 NULL
161564 +enable_so_debug_debug4_read_fndecl_45732 debug_debug4_read fndecl 3 45732 NULL nohasharray
161565 +enable_so_len_bnx2x_fw_file_section_45732 len bnx2x_fw_file_section 0 45732 &enable_so_debug_debug4_read_fndecl_45732
161566 +enable_so_sys_ptrace_fndecl_45738 sys_ptrace fndecl 3 45738 NULL
161567 +enable_so___add_inline_refs_fndecl_45744 __add_inline_refs fndecl 3 45744 NULL
161568 +enable_so_get_args_iw_priv_args_45748 get_args iw_priv_args 0 45748 NULL
161569 +enable_so_wil_write_file_recovery_fndecl_45753 wil_write_file_recovery fndecl 3 45753 NULL
161570 +enable_so_vslen_vardecl_matroxfb_base_c_45755 vslen vardecl_matroxfb_base.c 0 45755 NULL
161571 +enable_so_stb0899_read_reg_fndecl_45758 stb0899_read_reg fndecl 0 45758 NULL
161572 +enable_so_extra_postfix_len_ieee80211_crypto_ops_45763 extra_postfix_len ieee80211_crypto_ops 0 45763 NULL
161573 +enable_so_count_n_hdlc_buf_45767 count n_hdlc_buf 0 45767 NULL
161574 +enable_so_size_entry_mwt_fndecl_45771 size_entry_mwt fndecl 0 45771 NULL
161575 +enable_so_set_acoustic_fndecl_45772 set_acoustic fndecl 2 45772 NULL
161576 +enable_so_flows_cnt_fq_codel_sched_data_45775 flows_cnt fq_codel_sched_data 0 45775 NULL
161577 +enable_so_len_ch_mem_range_45781 len ch_mem_range 0 45781 NULL
161578 +enable_so_get_inode_info_fndecl_45784 get_inode_info fndecl 0 45784 NULL nohasharray
161579 +enable_so_ath6kl_wmi_set_htcap_cmd_fndecl_45784 ath6kl_wmi_set_htcap_cmd fndecl 2 45784 &enable_so_get_inode_info_fndecl_45784
161580 +enable_so_online_pages_fndecl_45786 online_pages fndecl 1-2 45786 NULL
161581 +enable_so_change_xattr_fndecl_45789 change_xattr fndecl 5 45789 NULL
161582 +enable_so_i2c_r_fndecl_45804 i2c_r fndecl 0 45804 NULL
161583 +enable_so_h_suballoc_loc_ocfs2_extent_block_45805 h_suballoc_loc ocfs2_extent_block 0 45805 NULL
161584 +enable_so_len_sync_pt_info_45809 len sync_pt_info 0 45809 NULL
161585 +enable_so_max_node_size_pnp_dev_node_info_45813 max_node_size pnp_dev_node_info 0 45813 NULL
161586 +enable_so_xfs_zero_remaining_bytes_fndecl_45820 xfs_zero_remaining_bytes fndecl 3-2 45820 NULL
161587 +enable_so_msg_init_fndecl_45825 msg_init fndecl 4 45825 NULL
161588 +enable_so_tx_cmd_ep_usb_card_rec_45833 tx_cmd_ep usb_card_rec 0 45833 NULL
161589 +enable_so_max_channels_evtchn_ops_45841 max_channels evtchn_ops 0 45841 NULL
161590 +enable_so_submit_extent_page_fndecl_45843 submit_extent_page fndecl 6-4-5 45843 NULL
161591 +enable_so_width_zr364xx_camera_45844 width zr364xx_camera 0 45844 NULL nohasharray
161592 +enable_so_mwifiex_cfg80211_assoc_fndecl_45844 mwifiex_cfg80211_assoc fndecl 2 45844 &enable_so_width_zr364xx_camera_45844
161593 +enable_so_bochs_gem_create_fndecl_45847 bochs_gem_create fndecl 2 45847 NULL nohasharray
161594 +enable_so_sys_mlock_fndecl_45847 sys_mlock fndecl 1-2 45847 &enable_so_bochs_gem_create_fndecl_45847
161595 +enable_so_xfs_rtallocate_extent_size_fndecl_45848 xfs_rtallocate_extent_size fndecl 4-8 45848 NULL
161596 +enable_so_num_fault_mutexes_vardecl_hugetlb_c_45857 num_fault_mutexes vardecl_hugetlb.c 0 45857 NULL
161597 +enable_so_num_wsm_udp_port_filter_hdr_45858 num wsm_udp_port_filter_hdr 0 45858 NULL
161598 +enable_so_data_used_cx18_mdl_ack_45859 data_used cx18_mdl_ack 0 45859 NULL
161599 +enable_so_net_header_len_inet_connection_sock_af_ops_45863 net_header_len inet_connection_sock_af_ops 0 45863 NULL
161600 +enable_so___a2mp_build_fndecl_45864 __a2mp_build fndecl 3 45864 NULL
161601 +enable_so_xfrm_nr_xfrm_policy_45865 xfrm_nr xfrm_policy 0 45865 NULL
161602 +enable_so_parity_ore_layout_45869 parity ore_layout 0 45869 NULL nohasharray
161603 +enable_so_hsc_msg_alloc_fndecl_45869 hsc_msg_alloc fndecl 1 45869 &enable_so_parity_ore_layout_45869
161604 +enable_so_fpfd_adf4350_state_45870 fpfd adf4350_state 0 45870 NULL
161605 +enable_so_aead_sendpage_fndecl_45873 aead_sendpage fndecl 4-3 45873 NULL
161606 +enable_so_mwifiex_alloc_sdio_mpa_buffers_fndecl_45874 mwifiex_alloc_sdio_mpa_buffers fndecl 2-3 45874 NULL
161607 +enable_so_pti_char_write_fndecl_45875 pti_char_write fndecl 3 45875 NULL
161608 +enable_so_ext4_es_remove_extent_fndecl_45877 ext4_es_remove_extent fndecl 3-2 45877 NULL
161609 +enable_so_quality_v4l2_jpegcompression_45881 quality v4l2_jpegcompression 0 45881 NULL
161610 +enable_so_max_buffer_sectors_vardecl_floppy_c_45884 max_buffer_sectors vardecl_floppy.c 0 45884 NULL
161611 +enable_so_index_cnt_btrfs_inode_45890 index_cnt btrfs_inode 0 45890 NULL
161612 +enable_so_do_shared_fault_fndecl_45891 do_shared_fault fndecl 3-5 45891 NULL
161613 +enable_so___absent_pages_in_range_fndecl_45892 __absent_pages_in_range fndecl 0-2-3 45892 NULL
161614 +enable_so_smbase_kvm_vcpu_arch_45895 smbase kvm_vcpu_arch 0 45895 NULL nohasharray
161615 +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
161616 +enable_so_ath6kl_lrssi_roam_read_fndecl_45901 ath6kl_lrssi_roam_read fndecl 3 45901 NULL
161617 +enable_so_generic_file_direct_write_fndecl_45904 generic_file_direct_write fndecl 3-0 45904 NULL nohasharray
161618 +enable_so_bLength_usb_descriptor_header_45904 bLength usb_descriptor_header 0 45904 &enable_so_generic_file_direct_write_fndecl_45904
161619 +enable_so_jhead_cnt_ubifs_info_45905 jhead_cnt ubifs_info 0 45905 NULL
161620 +enable_so_init_currently_empty_zone_fndecl_45907 init_currently_empty_zone fndecl 2 45907 NULL
161621 +enable_so_vce_v1_0_bo_size_fndecl_45909 vce_v1_0_bo_size fndecl 0 45909 NULL
161622 +enable_so_bg_itable_unused_hi_ext4_group_desc_45918 bg_itable_unused_hi ext4_group_desc 0 45918 NULL
161623 +enable_so_lpfc_idiag_queacc_write_fndecl_45920 lpfc_idiag_queacc_write fndecl 3 45920 NULL
161624 +enable_so_wl1271_tx_allocate_fndecl_45921 wl1271_tx_allocate fndecl 4 45921 NULL
161625 +enable_so_mru_asyncppp_45929 mru asyncppp 0 45929 NULL
161626 +enable_so_fan_count_applesmc_registers_45934 fan_count applesmc_registers 0 45934 NULL
161627 +enable_so_num_ports_pciserial_board_45938 num_ports pciserial_board 0 45938 NULL
161628 +enable_so_sdhci_pltfm_register_fndecl_45940 sdhci_pltfm_register fndecl 3 45940 NULL
161629 +enable_so_ath6kl_wmi_setpmkid_cmd_fndecl_45949 ath6kl_wmi_setpmkid_cmd fndecl 2 45949 NULL nohasharray
161630 +enable_so_smbus_base_vardecl_i2c_sis630_c_45949 smbus_base vardecl_i2c-sis630.c 0 45949 &enable_so_ath6kl_wmi_setpmkid_cmd_fndecl_45949 nohasharray
161631 +enable_so_num_vfs_be_pcie_res_desc_45949 num_vfs be_pcie_res_desc 0 45949 &enable_so_smbus_base_vardecl_i2c_sis630_c_45949
161632 +enable_so_fraglen_decryptor_desc_45950 fraglen decryptor_desc 0 45950 NULL nohasharray
161633 +enable_so_read_file_ackto_fndecl_45950 read_file_ackto fndecl 3 45950 &enable_so_fraglen_decryptor_desc_45950
161634 +enable_so_sigma_fw_load_samplerates_fndecl_45951 sigma_fw_load_samplerates fndecl 3-0 45951 NULL
161635 +enable_so_security_set_fndecl_45953 security_set fndecl 4 45953 NULL
161636 +enable_so_max_sge_ib_srq_attr_45956 max_sge ib_srq_attr 0 45956 NULL
161637 +enable_so_qnx6_find_entry_fndecl_45969 qnx6_find_entry fndecl 0 45969 NULL nohasharray
161638 +enable_so_len_ippp_buf_queue_45969 len ippp_buf_queue 0 45969 &enable_so_qnx6_find_entry_fndecl_45969
161639 +enable_so_ext_tree_split_fndecl_45973 ext_tree_split fndecl 3 45973 NULL
161640 +enable_so_dbdma_cmd_yellowfin_desc_45980 dbdma_cmd yellowfin_desc 0 45980 NULL nohasharray
161641 +enable_so_target_size_ebt_entry_target_45980 target_size ebt_entry_target 0 45980 &enable_so_dbdma_cmd_yellowfin_desc_45980
161642 +enable_so_i40e_calculate_l2fpm_size_fndecl_45987 i40e_calculate_l2fpm_size fndecl 0-1-2-3-4 45987 NULL
161643 +enable_so_up_fnode_45991 up fnode 0 45991 NULL
161644 +enable_so_alloc_chrdev_region_fndecl_45995 alloc_chrdev_region fndecl 0 45995 NULL
161645 +enable_so___probe_kernel_read_fndecl_45996 __probe_kernel_read fndecl 3 45996 NULL
161646 +enable_so_sctp_v4_err_fndecl_45997 sctp_v4_err fndecl 2 45997 NULL nohasharray
161647 +enable_so_num_total_dacs_snd_ice1712_45997 num_total_dacs snd_ice1712 0 45997 &enable_so_sctp_v4_err_fndecl_45997
161648 +enable_so_finish_request_fndecl_46010 finish_request fndecl 5 46010 NULL
161649 +enable_so_pcs_duplex_stmmac_extra_stats_46013 pcs_duplex stmmac_extra_stats 0 46013 NULL
161650 +enable_so_get_derived_key_fndecl_46015 get_derived_key fndecl 4 46015 NULL
161651 +enable_so_afs_proc_cells_write_fndecl_46016 afs_proc_cells_write fndecl 3 46016 NULL
161652 +enable_so_vmemmap_alloc_block_buf_fndecl_46037 vmemmap_alloc_block_buf fndecl 1 46037 NULL
161653 +enable_so_acl_mtu_hci_dev_46038 acl_mtu hci_dev 0 46038 NULL
161654 +enable_so_value_len_ext3_xattr_info_46044 value_len ext3_xattr_info 0 46044 NULL
161655 +enable_so_dma_size_qlcnic_host_rds_ring_46045 dma_size qlcnic_host_rds_ring 0 46045 NULL
161656 +enable_so_p9_client_prepare_req_fndecl_46048 p9_client_prepare_req fndecl 3 46048 NULL
161657 +enable_so___vmalloc_fndecl_46051 __vmalloc fndecl 1 46051 NULL
161658 +enable_so_pair_device_fndecl_46052 pair_device fndecl 4 46052 NULL nohasharray
161659 +enable_so_event_oom_late_read_fndecl_46052 event_oom_late_read fndecl 3 46052 &enable_so_pair_device_fndecl_46052 nohasharray
161660 +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
161661 +enable_so_sys_lsetxattr_fndecl_46058 sys_lsetxattr fndecl 4 46058 NULL
161662 +enable_so_sisfb_parm_mem_sis_video_info_46063 sisfb_parm_mem sis_video_info 0 46063 NULL nohasharray
161663 +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
161664 +enable_so_MaxBurstLength_iscsi_sess_ops_46064 MaxBurstLength iscsi_sess_ops 0 46064 NULL nohasharray
161665 +enable_so_s_start_bfs_super_block_46064 s_start bfs_super_block 0 46064 &enable_so_MaxBurstLength_iscsi_sess_ops_46064
161666 +enable_so_seg_count_drm_buf_entry_46065 seg_count drm_buf_entry 0 46065 NULL
161667 +enable_so_piobufs_qib_ctxtdata_46066 piobufs qib_ctxtdata 0 46066 NULL
161668 +enable_so_FirstPhysicalEUN_NFTLMediaHeader_46068 FirstPhysicalEUN NFTLMediaHeader 0 46068 NULL
161669 +enable_so_iwl_dbgfs_mac_params_read_fndecl_46081 iwl_dbgfs_mac_params_read fndecl 3 46081 NULL
161670 +enable_so___devcgroup_check_permission_fndecl_46082 __devcgroup_check_permission fndecl 0 46082 NULL
161671 +enable_so_wSamplesPerFrame_uac_format_type_ii_ext_descriptor_46084 wSamplesPerFrame uac_format_type_ii_ext_descriptor 0 46084 NULL
161672 +enable_so_alloc_dca_provider_fndecl_46085 alloc_dca_provider fndecl 2 46085 NULL
161673 +enable_so_dm_startblk_adfs_discmap_46088 dm_startblk adfs_discmap 0 46088 NULL
161674 +enable_so_nr_pages_splice_pipe_desc_46095 nr_pages splice_pipe_desc 0 46095 NULL
161675 +enable_so_v9fs_xattr_set_acl_fndecl_46096 v9fs_xattr_set_acl fndecl 4 46096 NULL
161676 +enable_so_len_sfi_table_header_46097 len sfi_table_header 0 46097 NULL nohasharray
161677 +enable_so_ubifs_setxattr_fndecl_46097 ubifs_setxattr fndecl 4 46097 &enable_so_len_sfi_table_header_46097 nohasharray
161678 +enable_so_hidraw_read_fndecl_46097 hidraw_read fndecl 3 46097 &enable_so_ubifs_setxattr_fndecl_46097
161679 +enable_so_jbd2_journal_write_metadata_buffer_fndecl_46103 jbd2_journal_write_metadata_buffer fndecl 4 46103 NULL nohasharray
161680 +enable_so_ym_wmfw_adsp2_alg_hdr_46103 ym wmfw_adsp2_alg_hdr 0 46103 &enable_so_jbd2_journal_write_metadata_buffer_fndecl_46103
161681 +enable_so_bs_vardecl_null_blk_c_46104 bs vardecl_null_blk.c 0 46104 NULL
161682 +enable_so_page_add_new_anon_rmap_fndecl_46112 page_add_new_anon_rmap fndecl 3 46112 NULL
161683 +enable_so_ioperm_get_fndecl_46118 ioperm_get fndecl 4-3 46118 NULL
161684 +enable_so_mic_calc_failure_read_fndecl_46119 mic_calc_failure_read fndecl 3 46119 NULL
161685 +enable_so_len_eeprom_private_46124 len eeprom_private 0 46124 NULL
161686 +enable_so_height_saa7134_dev_46126 height saa7134_dev 0 46126 NULL nohasharray
161687 +enable_so_tx_totallen_ncp_request_reply_46126 tx_totallen ncp_request_reply 0 46126 &enable_so_height_saa7134_dev_46126
161688 +enable_so_get_mctgt_type_fndecl_46128 get_mctgt_type fndecl 2 46128 NULL nohasharray
161689 +enable_so_len_cp_header_46128 len cp_header 0 46128 &enable_so_get_mctgt_type_fndecl_46128
161690 +enable_so_sriov_enable_fndecl_46138 sriov_enable fndecl 2 46138 NULL
161691 +enable_so_prism2_info_scanresults_fndecl_46146 prism2_info_scanresults fndecl 3 46146 NULL
161692 +enable_so_memblock_alloc_range_nid_fndecl_46147 memblock_alloc_range_nid fndecl 0-2-1-3-4 46147 NULL
161693 +enable_so_udf_put_filename_fndecl_46157 udf_put_filename fndecl 0 46157 NULL
161694 +enable_so_ieee80211_if_read_fwded_unicast_fndecl_46159 ieee80211_if_read_fwded_unicast fndecl 3 46159 NULL
161695 +enable_so_transfer_len_xhci_transfer_event_46161 transfer_len xhci_transfer_event 0 46161 NULL
161696 +enable_so_max_segs_mmc_test_area_46176 max_segs mmc_test_area 0 46176 NULL
161697 +enable_so_key_size_ecryptfs_private_key_46181 key_size ecryptfs_private_key 0 46181 NULL nohasharray
161698 +enable_so_long_retry_limit_read_fndecl_46181 long_retry_limit_read fndecl 3 46181 &enable_so_key_size_ecryptfs_private_key_46181
161699 +enable_so_mlock_fixup_fndecl_46182 mlock_fixup fndecl 4-3 46182 NULL
161700 +enable_so_size_aper_size_info_32_46193 size aper_size_info_32 0 46193 NULL nohasharray
161701 +enable_so_fuse_file_llseek_fndecl_46193 fuse_file_llseek fndecl 2 46193 &enable_so_size_aper_size_info_32_46193
161702 +enable_so_length_usb_iso_packet_descriptor_46197 length usb_iso_packet_descriptor 0 46197 NULL
161703 +enable_so_sctp_manip_pkt_fndecl_46198 sctp_manip_pkt fndecl 4 46198 NULL
161704 +enable_so_musb_readb_vardecl_46199 musb_readb vardecl 0 46199 NULL nohasharray
161705 +enable_so_snd_interval_refine_set_fndecl_46199 snd_interval_refine_set fndecl 2 46199 &enable_so_musb_readb_vardecl_46199
161706 +enable_so_efx_rx_packet_gro_fndecl_46201 efx_rx_packet_gro fndecl 3 46201 NULL
161707 +enable_so_count_raw_sock_46204 count raw_sock 0 46204 NULL
161708 +enable_so_hdrlen_ip_beet_phdr_46210 hdrlen ip_beet_phdr 0 46210 NULL nohasharray
161709 +enable_so_sync_request_md_personality_46210 sync_request md_personality 0 46210 &enable_so_hdrlen_ip_beet_phdr_46210
161710 +enable_so_assocresp_ies_len_cfg80211_beacon_data_46212 assocresp_ies_len cfg80211_beacon_data 0 46212 NULL
161711 +enable_so_modify_index_fndecl_46216 modify_index fndecl 3 46216 NULL
161712 +enable_so_unuse_pte_fndecl_46217 unuse_pte fndecl 3 46217 NULL
161713 +enable_so_cob_size_savagefb_par_46219 cob_size savagefb_par 0 46219 NULL
161714 +enable_so_ipw_write_fndecl_46220 ipw_write fndecl 3 46220 NULL
161715 +enable_so_name_len_ext3_dir_entry_2_46227 name_len ext3_dir_entry_2 0 46227 NULL
161716 +enable_so_bLength_usb_interface_assoc_descriptor_46229 bLength usb_interface_assoc_descriptor 0 46229 NULL
161717 +enable_so_venus_remove_fndecl_46230 venus_remove fndecl 4 46230 NULL
161718 +enable_so_mei_nfc_recv_fndecl_46235 mei_nfc_recv fndecl 0-3 46235 NULL
161719 +enable_so_rsn_ie_len_libipw_network_46238 rsn_ie_len libipw_network 0 46238 NULL nohasharray
161720 +enable_so_xlog_do_recover_fndecl_46238 xlog_do_recover fndecl 3 46238 &enable_so_rsn_ie_len_libipw_network_46238
161721 +enable_so_response_length_mlx4_uverbs_ex_query_device_resp_46245 response_length mlx4_uverbs_ex_query_device_resp 0 46245 NULL
161722 +enable_so_ieee80211_if_read_dot11MeshHWMPmaxPREQretries_fndecl_46246 ieee80211_if_read_dot11MeshHWMPmaxPREQretries fndecl 3 46246 NULL
161723 +enable_so_node_acl_size_target_core_fabric_ops_46247 node_acl_size target_core_fabric_ops 0 46247 NULL
161724 +enable_so_erst_clear_fndecl_46248 erst_clear fndecl 1 46248 NULL
161725 +enable_so_proc_pid_cmdline_read_fndecl_46249 proc_pid_cmdline_read fndecl 3 46249 NULL
161726 +enable_so_gspca_dev_probe2_fndecl_46250 gspca_dev_probe2 fndecl 4 46250 NULL
161727 +enable_so_extra_beacon_tailroom_ieee80211_hw_46256 extra_beacon_tailroom ieee80211_hw 0 46256 NULL
161728 +enable_so_size_xenvif_rx_meta_46270 size xenvif_rx_meta 0 46270 NULL
161729 +enable_so_qla27xx_fwdt_template_size_fndecl_46273 qla27xx_fwdt_template_size fndecl 0 46273 NULL
161730 +enable_so_onenand_read_oob_fndecl_46274 onenand_read_oob fndecl 2 46274 NULL
161731 +enable_so_smem_len_iwl_cfg_46276 smem_len iwl_cfg 0 46276 NULL
161732 +enable_so_desc_nr_md_rdev_46281 desc_nr md_rdev 0 46281 NULL
161733 +enable_so_xi_value_len_ocfs2_xattr_info_46285 xi_value_len ocfs2_xattr_info 0 46285 NULL
161734 +enable_so_dq_local_phys_blk_ocfs2_dquot_46292 dq_local_phys_blk ocfs2_dquot 0 46292 NULL
161735 +enable_so_len_nfs3_setaclargs_46293 len nfs3_setaclargs 0 46293 NULL
161736 +enable_so_tx_data_size_ircomm_tty_cb_46294 tx_data_size ircomm_tty_cb 0 46294 NULL
161737 +enable_so_omfs_allocate_block_fndecl_46295 omfs_allocate_block fndecl 2 46295 NULL
161738 +enable_so_status2_ar9003_rxs_46299 status2 ar9003_rxs 0 46299 NULL
161739 +enable_so_offset_nfsd3_readargs_46311 offset nfsd3_readargs 0 46311 NULL nohasharray
161740 +enable_so_ffs_prepare_buffer_fndecl_46311 ffs_prepare_buffer fndecl 2 46311 &enable_so_offset_nfsd3_readargs_46311
161741 +enable_so_num_vci_lanai_dev_46318 num_vci lanai_dev 0 46318 NULL
161742 +enable_so_biovec_create_pool_fndecl_46325 biovec_create_pool fndecl 1 46325 NULL nohasharray
161743 +enable_so_unit_qib_devdata_46325 unit qib_devdata 0 46325 &enable_so_biovec_create_pool_fndecl_46325
161744 +enable_so_i_size_inode_46327 i_size inode 0 46327 NULL
161745 +enable_so_pvr2_ioread_set_sync_key_fndecl_46329 pvr2_ioread_set_sync_key fndecl 3 46329 NULL
161746 +enable_so_shmem_zero_setup_fndecl_46334 shmem_zero_setup fndecl 0 46334 NULL nohasharray
161747 +enable_so_max_vnic_func_qlcnic_hardware_context_46334 max_vnic_func qlcnic_hardware_context 0 46334 &enable_so_shmem_zero_setup_fndecl_46334
161748 +enable_so_mwifiex_cfg80211_tdls_mgmt_fndecl_46335 mwifiex_cfg80211_tdls_mgmt fndecl 10 46335 NULL
161749 +enable_so_stv6110_read_regs_fndecl_46339 stv6110_read_regs fndecl 4 46339 NULL
161750 +enable_so_af9013_rd_regs_i2c_fndecl_46343 af9013_rd_regs_i2c fndecl 5 46343 NULL nohasharray
161751 +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
161752 +enable_so_recently_deleted_fndecl_46346 recently_deleted fndecl 3 46346 NULL
161753 +enable_so_zoran_v4l_set_format_fndecl_46347 zoran_v4l_set_format fndecl 2-3 46347 NULL
161754 +enable_so_fc_frame_alloc_fill_fndecl_46353 fc_frame_alloc_fill fndecl 2 46353 NULL
161755 +enable_so_wm_adsp_debugfs_bin_read_fndecl_46356 wm_adsp_debugfs_bin_read fndecl 3 46356 NULL
161756 +enable_so_dvb_ep_isoc_em28xx_46357 dvb_ep_isoc em28xx 0 46357 NULL
161757 +enable_so_debilen_av7110_46363 debilen av7110 0 46363 NULL
161758 +enable_so_ring_cons_per_user_data_46365 ring_cons per_user_data 0 46365 NULL
161759 +enable_so_max_write_size_ubifs_info_46369 max_write_size ubifs_info 0 46369 NULL nohasharray
161760 +enable_so_SyS_sched_setaffinity_fndecl_46369 SyS_sched_setaffinity fndecl 2 46369 &enable_so_max_write_size_ubifs_info_46369
161761 +enable_so_device_create_with_groups_fndecl_46371 device_create_with_groups fndecl 3 46371 NULL
161762 +enable_so_descriptor_loc_fndecl_46373 descriptor_loc fndecl 0-3-2 46373 NULL
161763 +enable_so_bnx2_change_mtu_fndecl_46374 bnx2_change_mtu fndecl 2 46374 NULL nohasharray
161764 +enable_so_fs_path_ensure_buf_fndecl_46374 fs_path_ensure_buf fndecl 2 46374 &enable_so_bnx2_change_mtu_fndecl_46374
161765 +enable_so_acpi_ds_build_internal_buffer_obj_fndecl_46379 acpi_ds_build_internal_buffer_obj fndecl 3 46379 NULL
161766 +enable_so_max_loop_vardecl_loop_c_46402 max_loop vardecl_loop.c 0 46402 NULL
161767 +enable_so_piosize4k_qib_devdata_46406 piosize4k qib_devdata 0 46406 NULL
161768 +enable_so_SavagePanelWidth_savagefb_par_46407 SavagePanelWidth savagefb_par 0 46407 NULL
161769 +enable_so_skb_maybe_pull_tail_fndecl_46422 skb_maybe_pull_tail fndecl 3 46422 NULL
161770 +enable_so_proberesp_ies_len_cfg80211_beacon_data_46424 proberesp_ies_len cfg80211_beacon_data 0 46424 NULL
161771 +enable_so_len_minstrel_debugfs_info_46425 len minstrel_debugfs_info 0 46425 NULL
161772 +enable_so_rds_pin_pages_fndecl_46432 rds_pin_pages fndecl 1-0 46432 NULL
161773 +enable_so_st21nfca_hci_dep_link_up_fndecl_46438 st21nfca_hci_dep_link_up fndecl 5 46438 NULL nohasharray
161774 +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
161775 +enable_so_vid_bridge_vlan_info_46442 vid bridge_vlan_info 0 46442 NULL nohasharray
161776 +enable_so_len_acm_wb_46442 len acm_wb 0 46442 &enable_so_vid_bridge_vlan_info_46442 nohasharray
161777 +enable_so_nframes_gspca_dev_46442 nframes gspca_dev 0 46442 &enable_so_len_acm_wb_46442
161778 +enable_so_btrfsic_process_superblock_dev_mirror_fndecl_46444 btrfsic_process_superblock_dev_mirror fndecl 4 46444 NULL nohasharray
161779 +enable_so_iblock_execute_unmap_fndecl_46444 iblock_execute_unmap fndecl 2-3 46444 &enable_so_btrfsic_process_superblock_dev_mirror_fndecl_46444
161780 +enable_so_C_SYSC_get_mempolicy_fndecl_46447 C_SYSC_get_mempolicy fndecl 3 46447 NULL
161781 +enable_so__iwl_dbgfs_bcast_filters_write_fndecl_46448 _iwl_dbgfs_bcast_filters_write fndecl 3 46448 NULL
161782 +enable_so_fb_base_phys_mb862xxfb_par_46449 fb_base_phys mb862xxfb_par 0 46449 NULL
161783 +enable_so_snd_seq_oss_writeq_new_fndecl_46455 snd_seq_oss_writeq_new fndecl 2 46455 NULL
161784 +enable_so_nfsd_nrpools_fndecl_46460 nfsd_nrpools fndecl 0 46460 NULL
161785 +enable_so_ib_copy_from_udata_fndecl_46461 ib_copy_from_udata fndecl 3 46461 NULL
161786 +enable_so_size_drm_local_map_46462 size drm_local_map 0 46462 NULL
161787 +enable_so_get_znode_fndecl_46463 get_znode fndecl 3 46463 NULL
161788 +enable_so_ssid_len_hfa384x_hostscan_result_46466 ssid_len hfa384x_hostscan_result 0 46466 NULL
161789 +enable_so_ext4_resize_fs_fndecl_46468 ext4_resize_fs fndecl 2 46468 NULL
161790 +enable_so_kmalloc_large_node_fndecl_46469 kmalloc_large_node fndecl 1 46469 NULL
161791 +enable_so_hpfs_add_de_fndecl_46472 hpfs_add_de fndecl 4 46472 NULL
161792 +enable_so_idr_alloc_fndecl_46474 idr_alloc fndecl 0 46474 NULL
161793 +enable_so_mpi_get_nbits_fndecl_46476 mpi_get_nbits fndecl 0 46476 NULL
161794 +enable_so_nla_put_nohdr_fndecl_46479 nla_put_nohdr fndecl 2 46479 NULL
161795 +enable_so_hr_num_pages_o2hb_region_46481 hr_num_pages o2hb_region 0 46481 NULL nohasharray
161796 +enable_so_ro_slot_rcom_slot_46481 ro_slot rcom_slot 0 46481 &enable_so_hr_num_pages_o2hb_region_46481
161797 +enable_so_usb_wwan_write_fndecl_46494 usb_wwan_write fndecl 4 46494 NULL
161798 +enable_so___copy_from_user_ll_nozero_fndecl_46496 __copy_from_user_ll_nozero fndecl 0 46496 NULL
161799 +enable_so_afs_fsync_fndecl_46498 afs_fsync fndecl 2-3 46498 NULL
161800 +enable_so_iram_size_sst_res_info_46499 iram_size sst_res_info 0 46499 NULL
161801 +enable_so_align_ieee80211_vendor_radiotap_46503 align ieee80211_vendor_radiotap 0 46503 NULL
161802 +enable_so_tx_rate_sta_info_46505 tx_rate sta_info 0 46505 NULL
161803 +enable_so_write_pbl_fndecl_46508 write_pbl fndecl 4 46508 NULL
161804 +enable_so_pagesz_cifs_readdata_46514 pagesz cifs_readdata 0 46514 NULL
161805 +enable_so_tunables_write_fndecl_46520 tunables_write fndecl 3 46520 NULL
161806 +enable_so_free_bootmem_with_active_regions_fndecl_46521 free_bootmem_with_active_regions fndecl 2 46521 NULL
161807 +enable_so_bio_split_fndecl_46527 bio_split fndecl 2 46527 NULL
161808 +enable_so_sddr09_request_sense_fndecl_46529 sddr09_request_sense fndecl 3 46529 NULL
161809 +enable_so_dr_suballoc_loc_ocfs2_dx_root_block_46531 dr_suballoc_loc ocfs2_dx_root_block 0 46531 NULL
161810 +enable_so_fcoe_ctlr_vn_send_fndecl_46532 fcoe_ctlr_vn_send fndecl 4 46532 NULL
161811 +enable_so_bNrChannels_uac_format_type_i_continuous_descriptor_46536 bNrChannels uac_format_type_i_continuous_descriptor 0 46536 NULL
161812 +enable_so_contrast_sd_gl860_46538 contrast sd_gl860 0 46538 NULL
161813 +enable_so_hsub_vsp1_format_info_46540 hsub vsp1_format_info 0 46540 NULL
161814 +enable_so_size_kstat_46541 size kstat 0 46541 NULL
161815 +enable_so_resp_write_same_fndecl_46544 resp_write_same fndecl 2 46544 NULL
161816 +enable_so_sc18is602_check_transfer_fndecl_46545 sc18is602_check_transfer fndecl 0 46545 NULL nohasharray
161817 +enable_so_keysize_sunxi_sid_data_46545 keysize sunxi_sid_data 0 46545 &enable_so_sc18is602_check_transfer_fndecl_46545
161818 +enable_so_memdup_user_fndecl_46549 memdup_user fndecl 2 46549 NULL
161819 +enable_so_seq_open_tab_fndecl_46562 seq_open_tab fndecl 2-3 46562 NULL
161820 +enable_so_erasesize_shift_mtd_info_46565 erasesize_shift mtd_info 0 46565 NULL nohasharray
161821 +enable_so_xt_compat_init_offsets_fndecl_46565 xt_compat_init_offsets fndecl 2 46565 &enable_so_erasesize_shift_mtd_info_46565
161822 +enable_so_max_msix_vectors_vardecl_mpt3sas_base_c_46566 max_msix_vectors vardecl_mpt3sas_base.c 0 46566 NULL
161823 +enable_so_ndivs_divs_data_46571 ndivs divs_data 0 46571 NULL
161824 +enable_so_SyS_setdomainname_fndecl_46573 SyS_setdomainname fndecl 2 46573 NULL
161825 +enable_so_mem_fwlog_free_mem_blks_read_fndecl_46579 mem_fwlog_free_mem_blks_read fndecl 3 46579 NULL
161826 +enable_so_sock_sendpage_fndecl_46581 sock_sendpage fndecl 4 46581 NULL
161827 +enable_so_f2fs_nfs_get_inode_fndecl_46582 f2fs_nfs_get_inode fndecl 2 46582 NULL
161828 +enable_so_qxl_num_crtc_vardecl_46583 qxl_num_crtc vardecl 0 46583 NULL
161829 +enable_so___f2fs_replace_block_fndecl_46588 __f2fs_replace_block fndecl 4 46588 NULL
161830 +enable_so_sg_build_sgat_fndecl_46592 sg_build_sgat fndecl 3-0 46592 NULL nohasharray
161831 +enable_so_jffs2_alloc_full_dirent_fndecl_46592 jffs2_alloc_full_dirent fndecl 1 46592 &enable_so_sg_build_sgat_fndecl_46592
161832 +enable_so_back_xfs_attr3_icleaf_hdr_46595 back xfs_attr3_icleaf_hdr 0 46595 NULL
161833 +enable_so_fuse_async_req_send_fndecl_46596 fuse_async_req_send fndecl 0-3 46596 NULL nohasharray
161834 +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
161835 +enable_so_cfpkt_extr_head_fndecl_46598 cfpkt_extr_head fndecl 3 46598 NULL
161836 +enable_so_len_ext4_str_46600 len ext4_str 0 46600 NULL
161837 +enable_so_cma_init_reserved_mem_fndecl_46602 cma_init_reserved_mem fndecl 3-2 46602 NULL
161838 +enable_so_attrib_nr_max_gf100_grctx_oclass_46611 attrib_nr_max gf100_grctx_oclass 0 46611 NULL
161839 +enable_so_init_state_fndecl_46614 init_state fndecl 2 46614 NULL
161840 +enable_so_pci_scan_bridge_fndecl_46615 pci_scan_bridge fndecl 3-0 46615 NULL nohasharray
161841 +enable_so_jmb38x_ms_count_slots_fndecl_46615 jmb38x_ms_count_slots fndecl 0 46615 &enable_so_pci_scan_bridge_fndecl_46615
161842 +enable_so_snd_usb_parse_datainterval_fndecl_46616 snd_usb_parse_datainterval fndecl 0 46616 NULL nohasharray
161843 +enable_so_emulator_set_smbase_fndecl_46616 emulator_set_smbase fndecl 2 46616 &enable_so_snd_usb_parse_datainterval_fndecl_46616
161844 +enable_so_fw_cdev_major_vardecl_46618 fw_cdev_major vardecl 0 46618 NULL
161845 +enable_so_usbvision_read_reg_fndecl_46623 usbvision_read_reg fndecl 0 46623 NULL nohasharray
161846 +enable_so_num_ppns_qp_guest_endpoint_46623 num_ppns qp_guest_endpoint 0 46623 &enable_so_usbvision_read_reg_fndecl_46623
161847 +enable_so_cl_maxproc_rpc_clnt_46627 cl_maxproc rpc_clnt 0 46627 NULL
161848 +enable_so_start_ipack_region_46628 start ipack_region 0 46628 NULL
161849 +enable_so_qlcnic_83xx_diag_free_res_fndecl_46632 qlcnic_83xx_diag_free_res fndecl 2 46632 NULL
161850 +enable_so_alloc_size_nf_ct_ext_type_46634 alloc_size nf_ct_ext_type 0 46634 NULL
161851 +enable_so_ccp_queue_buf_fndecl_46635 ccp_queue_buf fndecl 0 46635 NULL
161852 +enable_so_btrfs_get_token_16_fndecl_46639 btrfs_get_token_16 fndecl 0 46639 NULL
161853 +enable_so_data_offset_iscsi_tcp_task_46641 data_offset iscsi_tcp_task 0 46641 NULL
161854 +enable_so_rx_rx_tkip_replays_read_fndecl_46642 rx_rx_tkip_replays_read fndecl 3 46642 NULL
161855 +enable_so_qib_reg_phys_mr_fndecl_46649 qib_reg_phys_mr fndecl 3 46649 NULL
161856 +enable_so_mwifiex_set_wps_ie_fndecl_46650 mwifiex_set_wps_ie fndecl 3 46650 NULL
161857 +enable_so_transfer_buffer_length_usbip_header_cmd_submit_46658 transfer_buffer_length usbip_header_cmd_submit 0 46658 NULL
161858 +enable_so_btrfs_get_extent_fiemap_fndecl_46659 btrfs_get_extent_fiemap fndecl 5-4-3 46659 NULL
161859 +enable_so_bmap_fndecl_46663 bmap fndecl 0 46663 NULL
161860 +enable_so_physical_block_size_queue_limits_46666 physical_block_size queue_limits 0 46666 NULL
161861 +enable_so_mpx_notify_unmap_fndecl_46669 mpx_notify_unmap fndecl 3-4 46669 NULL
161862 +enable_so_xfs_difree_inode_chunk_fndecl_46677 xfs_difree_inode_chunk fndecl 2 46677 NULL
161863 +enable_so_got_bytes_cifs_readdata_46678 got_bytes cifs_readdata 0 46678 NULL
161864 +enable_so_c2_mq_rep_init_fndecl_46679 c2_mq_rep_init fndecl 4 46679 NULL
161865 +enable_so_max_wr_ib_srq_attr_46680 max_wr ib_srq_attr 0 46680 NULL
161866 +enable_so_selfballoon_uphysteresis_vardecl_xen_selfballoon_c_46686 selfballoon_uphysteresis vardecl_xen-selfballoon.c 0 46686 NULL
161867 +enable_so_usb_ftdi_elan_edset_input_fndecl_46689 usb_ftdi_elan_edset_input fndecl 0 46689 NULL
161868 +enable_so_display_crc_ctl_write_fndecl_46690 display_crc_ctl_write fndecl 3 46690 NULL
161869 +enable_so_printer_write_fndecl_46695 printer_write fndecl 3 46695 NULL
161870 +enable_so___pskb_pull_tail_fndecl_46700 __pskb_pull_tail fndecl 2 46700 NULL
161871 +enable_so_compat_sys_fcntl64_fndecl_46707 compat_sys_fcntl64 fndecl 3 46707 NULL
161872 +enable_so_cmsg_len_cmsghdr_46711 cmsg_len cmsghdr 0 46711 NULL
161873 +enable_so_extra_priv_size_ehci_driver_overrides_46713 extra_priv_size ehci_driver_overrides 0 46713 NULL
161874 +enable_so_irq_alloc_domain_generic_chips_fndecl_46715 irq_alloc_domain_generic_chips fndecl 3-2 46715 NULL
161875 +enable_so_length_page_collect_46716 length page_collect 0 46716 NULL
161876 +enable_so_peer_max_bio_size_drbd_device_46722 peer_max_bio_size drbd_device 0 46722 NULL
161877 +enable_so_first_ino_xfs_icluster_46725 first_ino xfs_icluster 0 46725 NULL
161878 +enable_so_virtio_gpu_cmd_resource_attach_backing_fndecl_46726 virtio_gpu_cmd_resource_attach_backing fndecl 4 46726 NULL
161879 +enable_so_wm8994_set_fll_fndecl_46745 wm8994_set_fll fndecl 4-5 46745 NULL nohasharray
161880 +enable_so_ext3_dir_llseek_fndecl_46745 ext3_dir_llseek fndecl 2 46745 &enable_so_wm8994_set_fll_fndecl_46745
161881 +enable_so_cvmx_bootmem_phy_named_block_find_fndecl_46752 cvmx_bootmem_phy_named_block_find fndecl 0 46752 NULL
161882 +enable_so_v9fs_xattr_security_get_fndecl_46758 v9fs_xattr_security_get fndecl 4 46758 NULL
161883 +enable_so_count_nfs_readdirargs_46759 count nfs_readdirargs 0 46759 NULL
161884 +enable_so___kfifo_from_user_r_fndecl_46762 __kfifo_from_user_r fndecl 3-5 46762 NULL nohasharray
161885 +enable_so_perf_aux_output_skip_fndecl_46762 perf_aux_output_skip fndecl 2 46762 &enable_so___kfifo_from_user_r_fndecl_46762
161886 +enable_so_wptr_amdgpu_ring_46763 wptr amdgpu_ring 0 46763 NULL
161887 +enable_so_height_tcm_46766 height tcm 0 46766 NULL
161888 +enable_so_s_bshift_ufs_sb_private_info_46773 s_bshift ufs_sb_private_info 0 46773 NULL nohasharray
161889 +enable_so_target_begin_dm_region_hash_46773 target_begin dm_region_hash 0 46773 &enable_so_s_bshift_ufs_sb_private_info_46773
161890 +enable_so_mc_groups_longs_vardecl_genetlink_c_46774 mc_groups_longs vardecl_genetlink.c 0 46774 NULL
161891 +enable_so_bytes_remaining_parser_context_46791 bytes_remaining parser_context 0 46791 NULL
161892 +enable_so_ubi_eba_atomic_leb_change_fndecl_46792 ubi_eba_atomic_leb_change fndecl 5 46792 NULL
161893 +enable_so_brcmf_usb_rx_ctlpkt_fndecl_46799 brcmf_usb_rx_ctlpkt fndecl 3 46799 NULL nohasharray
161894 +enable_so_drbd_alloc_peer_req_fndecl_46799 drbd_alloc_peer_req fndecl 4-3 46799 &enable_so_brcmf_usb_rx_ctlpkt_fndecl_46799
161895 +enable_so_be_cmd_set_sriov_config_fndecl_46800 be_cmd_set_sriov_config fndecl 3 46800 NULL
161896 +enable_so_ceph_msg_data_bio_advance_fndecl_46804 ceph_msg_data_bio_advance fndecl 2 46804 NULL
161897 +enable_so_mlx4_en_change_mtu_fndecl_46805 mlx4_en_change_mtu fndecl 2 46805 NULL
161898 +enable_so_mesh_rx_csa_frame_fndecl_46810 mesh_rx_csa_frame fndecl 3 46810 NULL
161899 +enable_so_dccp_setsockopt_fndecl_46812 dccp_setsockopt fndecl 5 46812 NULL
161900 +enable_so_buffer_size_snd_rawmidi_params_46813 buffer_size snd_rawmidi_params 0 46813 NULL
161901 +enable_so_nfulnl_set_mode_fndecl_46818 nfulnl_set_mode fndecl 3 46818 NULL
161902 +enable_so_frame_size_ipw2100_status_46819 frame_size ipw2100_status 0 46819 NULL
161903 +enable_so_major_hwif_s_46820 major hwif_s 0 46820 NULL
161904 +enable_so_numberoflines_tmHWStreamParameters_46824 numberoflines tmHWStreamParameters 0 46824 NULL
161905 +enable_so_residue_c67x00_td_46828 residue c67x00_td 0 46828 NULL
161906 +enable_so_extra_priv_size_xhci_driver_overrides_46837 extra_priv_size xhci_driver_overrides 0 46837 NULL
161907 +enable_so_num_prior_parent_snaps_ceph_snap_realm_46841 num_prior_parent_snaps ceph_snap_realm 0 46841 NULL nohasharray
161908 +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
161909 +enable_so_n_channels_wmi_scan_chan_list_arg_46842 n_channels wmi_scan_chan_list_arg 0 46842 NULL
161910 +enable_so_len_wl12xx_rx_filter_field_46843 len wl12xx_rx_filter_field 0 46843 NULL
161911 +enable_so_driver_names_read_fndecl_46844 driver_names_read fndecl 3 46844 NULL
161912 +enable_so_tveeprom_read_fndecl_46846 tveeprom_read fndecl 3 46846 NULL nohasharray
161913 +enable_so_vt596_smba_vardecl_i2c_viapro_c_46846 vt596_smba vardecl_i2c-viapro.c 0 46846 &enable_so_tveeprom_read_fndecl_46846
161914 +enable_so_flags_f2fs_encryption_context_46847 flags f2fs_encryption_context 0 46847 NULL
161915 +enable_so___bread_gfp_fndecl_46858 __bread_gfp fndecl 3-2 46858 NULL
161916 +enable_so_xwrite_fndecl_46865 xwrite fndecl 3 46865 NULL
161917 +enable_so_nb_ace_lite_cci_nb_ports_46870 nb_ace_lite cci_nb_ports 0 46870 NULL
161918 +enable_so_lookup_node_fndecl_46882 lookup_node fndecl 2 46882 NULL
161919 +enable_so_il_dbgfs_missed_beacon_read_fndecl_46887 il_dbgfs_missed_beacon_read fndecl 3 46887 NULL
161920 +enable_so_len_nfsd3_readlinkres_46888 len nfsd3_readlinkres 0 46888 NULL
161921 +enable_so_ksi_nthreads_max_ksock_sched_info_46891 ksi_nthreads_max ksock_sched_info 0 46891 NULL
161922 +enable_so_buffer_size_snd_urb_ctx_46897 buffer_size snd_urb_ctx 0 46897 NULL
161923 +enable_so_cb_break_head_afs_server_46900 cb_break_head afs_server 0 46900 NULL
161924 +enable_so_ql_process_mac_rx_gro_page_fndecl_46902 ql_process_mac_rx_gro_page fndecl 5-4 46902 NULL
161925 +enable_so_ipoib_recvq_size_vardecl_46904 ipoib_recvq_size vardecl 0 46904 NULL
161926 +enable_so_il_dbgfs_rxon_flags_read_fndecl_46909 il_dbgfs_rxon_flags_read fndecl 3 46909 NULL nohasharray
161927 +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
161928 +enable_so_ath10k_read_dfs_stats_fndecl_46910 ath10k_read_dfs_stats fndecl 3 46910 NULL
161929 +enable_so_size_vbt_r0_46913 size vbt_r0 0 46913 NULL
161930 +enable_so_num_sacks_tcp_options_received_46914 num_sacks tcp_options_received 0 46914 NULL nohasharray
161931 +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
161932 +enable_so_rd_size_hidp_connadd_req_46916 rd_size hidp_connadd_req 0 46916 NULL
161933 +enable_so_osd_req_read_kern_fndecl_46917 osd_req_read_kern fndecl 5 46917 NULL
161934 +enable_so_ext3_create_journal_fndecl_46919 ext3_create_journal fndecl 3 46919 NULL
161935 +enable_so_tot_len_ipv6_txoptions_46931 tot_len ipv6_txoptions 0 46931 NULL
161936 +enable_so_c_iusedoff_ufs_cg_private_info_46933 c_iusedoff ufs_cg_private_info 0 46933 NULL
161937 +enable_so___free_pages_bootmem_fndecl_46937 __free_pages_bootmem fndecl 3 46937 NULL nohasharray
161938 +enable_so_squashfs_max_decompressors_fndecl_46937 squashfs_max_decompressors fndecl 0 46937 &enable_so___free_pages_bootmem_fndecl_46937
161939 +enable_so_periodic_size_fusbh200_hcd_46943 periodic_size fusbh200_hcd 0 46943 NULL
161940 +enable_so_devblksize_squashfs_sb_info_46950 devblksize squashfs_sb_info 0 46950 NULL
161941 +enable_so_osd_req_list_dev_partitions_fndecl_46952 osd_req_list_dev_partitions fndecl 4 46952 NULL
161942 +enable_so_tx_ring_num_mlx4_en_priv_46953 tx_ring_num mlx4_en_priv 0 46953 NULL
161943 +enable_so_xlog_bread_offset_fndecl_46957 xlog_bread_offset fndecl 2-3 46957 NULL nohasharray
161944 +enable_so_steer_qpn_count_mlx4_ib_dev_46957 steer_qpn_count mlx4_ib_dev 0 46957 &enable_so_xlog_bread_offset_fndecl_46957
161945 +enable_so_s_desc_per_block_ext2_sb_info_46964 s_desc_per_block ext2_sb_info 0 46964 NULL nohasharray
161946 +enable_so_vmw_piter_start_fndecl_46964 vmw_piter_start fndecl 3 46964 &enable_so_s_desc_per_block_ext2_sb_info_46964 nohasharray
161947 +enable_so_cy_next_channel_vardecl_cyclades_c_46964 cy_next_channel vardecl_cyclades.c 0 46964 &enable_so_vmw_piter_start_fndecl_46964
161948 +enable_so_can_queue_Scsi_Host_46966 can_queue Scsi_Host 0 46966 NULL
161949 +enable_so_mthca_init_cq_fndecl_46968 mthca_init_cq fndecl 2 46968 NULL
161950 +enable_so_fsl_spi_cpu_bufs_fndecl_46969 fsl_spi_cpu_bufs fndecl 3-0 46969 NULL
161951 +enable_so_register_device_fndecl_46972 register_device fndecl 3-2 46972 NULL
161952 +enable_so_f71882fg_find_fndecl_46975 f71882fg_find fndecl 0 46975 NULL
161953 +enable_so_vcs_size_fndecl_46977 vcs_size fndecl 0 46977 NULL
161954 +enable_so_numbers_count_tomoyo_condition_46984 numbers_count tomoyo_condition 0 46984 NULL
161955 +enable_so_size_dwc3_trb_46986 size dwc3_trb 0 46986 NULL
161956 +enable_so_gru_alloc_gts_fndecl_46987 gru_alloc_gts fndecl 4-6-3-2 46987 NULL
161957 +enable_so_compat_writev_fndecl_46988 compat_writev fndecl 3 46988 NULL nohasharray
161958 +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
161959 +enable_so_msb_cache_write_fndecl_46992 msb_cache_write fndecl 6 46992 NULL
161960 +enable_so_lrg_buffer_len_ql3_adapter_46994 lrg_buffer_len ql3_adapter 0 46994 NULL nohasharray
161961 +enable_so_sys_sched_getaffinity_fndecl_46994 sys_sched_getaffinity fndecl 2 46994 &enable_so_lrg_buffer_len_ql3_adapter_46994
161962 +enable_so_buflen_cdrom_generic_command_47000 buflen cdrom_generic_command 0 47000 NULL
161963 +enable_so_do_ip6t_set_ctl_fndecl_47003 do_ip6t_set_ctl fndecl 4 47003 NULL
161964 +enable_so_pmcraid_change_queue_depth_fndecl_47007 pmcraid_change_queue_depth fndecl 2 47007 NULL
161965 +enable_so_y_offset_mxr_crop_47012 y_offset mxr_crop 0 47012 NULL
161966 +enable_so_va_start_vmap_area_47016 va_start vmap_area 0 47016 NULL
161967 +enable_so_bytesused_uvc_buffer_47017 bytesused uvc_buffer 0 47017 NULL
161968 +enable_so_length_acpi_buffer_47024 length acpi_buffer 0 47024 NULL
161969 +enable_so_ath6kl_listen_int_write_fndecl_47025 ath6kl_listen_int_write fndecl 3 47025 NULL
161970 +enable_so_length_ixgb_rx_desc_47027 length ixgb_rx_desc 0 47027 NULL
161971 +enable_so_usb_os_desc_prepare_interf_dir_fndecl_47032 usb_os_desc_prepare_interf_dir fndecl 2 47032 NULL
161972 +enable_so_desc_size_shdma_dev_47035 desc_size shdma_dev 0 47035 NULL
161973 +enable_so_rtl2832_regmap_read_fndecl_47037 rtl2832_regmap_read fndecl 3-5 47037 NULL
161974 +enable_so_minor_index_cardstate_47038 minor_index cardstate 0 47038 NULL
161975 +enable_so_ttm_bo_kmap_fndecl_47045 ttm_bo_kmap fndecl 3-2 47045 NULL
161976 +enable_so_icds_per_ctrl_hba_parameters_47047 icds_per_ctrl hba_parameters 0 47047 NULL
161977 +enable_so_amdgpu_drm_ioctl_fndecl_47050 amdgpu_drm_ioctl fndecl 2 47050 NULL
161978 +enable_so_ip_set_max_ip_set_net_47054 ip_set_max ip_set_net 0 47054 NULL
161979 +enable_so_nfs_idmap_request_key_fndecl_47055 nfs_idmap_request_key fndecl 2 47055 NULL
161980 +enable_so_width_tm6000_core_47057 width tm6000_core 0 47057 NULL nohasharray
161981 +enable_so_vbi_width_em28xx_v4l2_47057 vbi_width em28xx_v4l2 0 47057 &enable_so_width_tm6000_core_47057
161982 +enable_so_sect_ide_drive_s_47062 sect ide_drive_s 0 47062 NULL
161983 +enable_so_len_Vmxnet3_RxCompDesc_47066 len Vmxnet3_RxCompDesc 0 47066 NULL
161984 +enable_so_ext3_xattr_security_set_fndecl_47071 ext3_xattr_security_set fndecl 4 47071 NULL
161985 +enable_so___remove_zone_fndecl_47073 __remove_zone fndecl 2 47073 NULL
161986 +enable_so_ccp_reverse_set_dm_area_fndecl_47074 ccp_reverse_set_dm_area fndecl 4-3 47074 NULL
161987 +enable_so_buf_size_usbatm_channel_47081 buf_size usbatm_channel 0 47081 NULL
161988 +enable_so_epnum_isp116x_ep_47082 epnum isp116x_ep 0 47082 NULL
161989 +enable_so_yres_fb_videomode_47087 yres fb_videomode 0 47087 NULL nohasharray
161990 +enable_so_authorizer_buf_len_ceph_auth_handshake_47087 authorizer_buf_len ceph_auth_handshake 0 47087 &enable_so_yres_fb_videomode_47087 nohasharray
161991 +enable_so_ld_usb_read_fndecl_47087 ld_usb_read fndecl 3 47087 &enable_so_authorizer_buf_len_ceph_auth_handshake_47087
161992 +enable_so_ext2_get_inode_fndecl_47089 ext2_get_inode fndecl 2 47089 NULL
161993 +enable_so_pcpu_need_to_extend_fndecl_47094 pcpu_need_to_extend fndecl 0 47094 NULL
161994 +enable_so_begin_dm_target_47098 begin dm_target 0 47098 NULL
161995 +enable_so_spu_wait_for_u16_fndecl_47101 spu_wait_for_u16 fndecl 0 47101 NULL
161996 +enable_so_len_wmi_rx_action_event_47102 len wmi_rx_action_event 0 47102 NULL
161997 +enable_so_agp_size_drm_mga_dma_bootstrap_47108 agp_size drm_mga_dma_bootstrap 0 47108 NULL
161998 +enable_so_f_height_camif_frame_47111 f_height camif_frame 0 47111 NULL nohasharray
161999 +enable_so_acpi_gbl_interface_handler_vardecl_47111 acpi_gbl_interface_handler vardecl 0 47111 &enable_so_f_height_camif_frame_47111
162000 +enable_so_num_mthca_resource_47114 num mthca_resource 0 47114 NULL nohasharray
162001 +enable_so_num_outstanding_cmds_req_que_47114 num_outstanding_cmds req_que 0 47114 &enable_so_num_mthca_resource_47114
162002 +enable_so_tx_tx_start_fw_gen_read_fndecl_47115 tx_tx_start_fw_gen_read fndecl 3 47115 NULL
162003 +enable_so_iwl_dbgfs_rx_handlers_write_fndecl_47116 iwl_dbgfs_rx_handlers_write fndecl 3 47116 NULL
162004 +enable_so_nportcntrs_qib_chip_specific_47118 nportcntrs qib_chip_specific 0 47118 NULL
162005 +enable_so_usnic_uiom_reg_get_fndecl_47120 usnic_uiom_reg_get fndecl 2-3 47120 NULL
162006 +enable_so_j_len_reiserfs_journal_47121 j_len reiserfs_journal 0 47121 NULL
162007 +enable_so_filemap_fdatawrite_range_fndecl_47125 filemap_fdatawrite_range fndecl 2-3 47125 NULL
162008 +enable_so_efi_ioremap_fndecl_47129 efi_ioremap fndecl 2-1 47129 NULL
162009 +enable_so_acl_pgbase_nfs_getaclargs_47131 acl_pgbase nfs_getaclargs 0 47131 NULL
162010 +enable_so_target_xcopy_write_destination_fndecl_47134 target_xcopy_write_destination fndecl 5 47134 NULL
162011 +enable_so_data_len_nvme_passthru_cmd_47145 data_len nvme_passthru_cmd 0 47145 NULL
162012 +enable_so_do_otp_lock_fndecl_47148 do_otp_lock fndecl 3 47148 NULL
162013 +enable_so_mcs7830_set_reg_async_fndecl_47150 mcs7830_set_reg_async fndecl 3 47150 NULL
162014 +enable_so_ttm_dma_tt_init_fndecl_47159 ttm_dma_tt_init fndecl 3 47159 NULL nohasharray
162015 +enable_so_req_xfer_ide_atapi_pc_47159 req_xfer ide_atapi_pc 0 47159 &enable_so_ttm_dma_tt_init_fndecl_47159
162016 +enable_so_issue_discard_fndecl_47169 issue_discard fndecl 2-3 47169 NULL nohasharray
162017 +enable_so_e1000e_hwtstamp_get_fndecl_47169 e1000e_hwtstamp_get fndecl 0 47169 &enable_so_issue_discard_fndecl_47169
162018 +enable_so_max_blk_size_mmc_host_47174 max_blk_size mmc_host 0 47174 NULL
162019 +enable_so_value_drm_radeon_setparam_47185 value drm_radeon_setparam 0 47185 NULL
162020 +enable_so_msix_count_qla_hw_data_47192 msix_count qla_hw_data 0 47192 NULL
162021 +enable_so_max_sq_sg_mlx4_caps_47193 max_sq_sg mlx4_caps 0 47193 NULL
162022 +enable_so_block_count_msb_data_47194 block_count msb_data 0 47194 NULL
162023 +enable_so_max_inline_data_ib_qp_cap_47196 max_inline_data ib_qp_cap 0 47196 NULL
162024 +enable_so_vmalloc_node_fndecl_47199 vmalloc_node fndecl 1 47199 NULL
162025 +enable_so_bi_phys_segments_bio_47200 bi_phys_segments bio 0 47200 NULL
162026 +enable_so_max_outstanding_cmds_bnx2fc_hba_47210 max_outstanding_cmds bnx2fc_hba 0 47210 NULL
162027 +enable_so_wpos_p9_conn_47212 wpos p9_conn 0 47212 NULL
162028 +enable_so_ieee80211_if_write_tkip_mic_test_fndecl_47215 ieee80211_if_write_tkip_mic_test fndecl 3 47215 NULL
162029 +enable_so_authsize_crypto_aead_47219 authsize crypto_aead 0 47219 NULL
162030 +enable_so_mwifiex_form_mgmt_frame_fndecl_47220 mwifiex_form_mgmt_frame fndecl 3 47220 NULL
162031 +enable_so_acpi_map_fndecl_47222 acpi_map fndecl 2-1 47222 NULL
162032 +enable_so_get_byte_fndecl_47224 get_byte fndecl 0 47224 NULL
162033 +enable_so_csum_exist_in_range_fndecl_47225 csum_exist_in_range fndecl 2-3 47225 NULL
162034 +enable_so_at25_mem_write_fndecl_47235 at25_mem_write fndecl 4-3 47235 NULL
162035 +enable_so_decrease_reservation_fndecl_47244 decrease_reservation fndecl 1 47244 NULL
162036 +enable_so_fuse_reverse_inval_inode_fndecl_47245 fuse_reverse_inval_inode fndecl 4-3 47245 NULL
162037 +enable_so_translate_desc_fndecl_47247 translate_desc fndecl 3-2-0 47247 NULL
162038 +enable_so___do_config_autodelink_fndecl_47256 __do_config_autodelink fndecl 3 47256 NULL nohasharray
162039 +enable_so_seek_holedata_loop_fndecl_47256 seek_holedata_loop fndecl 0-2 47256 &enable_so___do_config_autodelink_fndecl_47256
162040 +enable_so_agp_allocate_memory_fndecl_47258 agp_allocate_memory fndecl 2 47258 NULL
162041 +enable_so_num_srqs_mthca_limits_47260 num_srqs mthca_limits 0 47260 NULL
162042 +enable_so_ring_size_dw_mci_47261 ring_size dw_mci 0 47261 NULL
162043 +enable_so_num_ifaces_batadv_priv_47263 num_ifaces batadv_priv 0 47263 NULL
162044 +enable_so_isku_sysfs_read_fndecl_47269 isku_sysfs_read fndecl 5 47269 NULL
162045 +enable_so_bts_buffer_setup_aux_fndecl_47274 bts_buffer_setup_aux fndecl 3 47274 NULL
162046 +enable_so_progress_btrfs_caching_control_47276 progress btrfs_caching_control 0 47276 NULL
162047 +enable_so_write_file_fndecl_47279 write_file fndecl 4 47279 NULL
162048 +enable_so_rom_size_qxl_device_47287 rom_size qxl_device 0 47287 NULL
162049 +enable_so_regmap_calc_reg_len_fndecl_47288 regmap_calc_reg_len fndecl 0 47288 NULL
162050 +enable_so___wa_xfer_submit_fndecl_47289 __wa_xfer_submit fndecl 0 47289 NULL nohasharray
162051 +enable_so_ipx_sendmsg_fndecl_47289 ipx_sendmsg fndecl 3 47289 &enable_so___wa_xfer_submit_fndecl_47289
162052 +enable_so_dev_number_mdp_superblock_1_47292 dev_number mdp_superblock_1 0 47292 NULL
162053 +enable_so_pppol2tp_recvmsg_fndecl_47301 pppol2tp_recvmsg fndecl 3 47301 NULL
162054 +enable_so_command_write_fndecl_47306 command_write fndecl 3 47306 NULL
162055 +enable_so_bigdirsize_adfs_bigdirheader_47315 bigdirsize adfs_bigdirheader 0 47315 NULL
162056 +enable_so_ufshcd_change_queue_depth_fndecl_47318 ufshcd_change_queue_depth fndecl 2 47318 NULL
162057 +enable_so_special_e1000_rx_desc_47320 special e1000_rx_desc 0 47320 NULL
162058 +enable_so_nr_pages_swap_extent_47325 nr_pages swap_extent 0 47325 NULL
162059 +enable_so_dma_buffer_size_vardecl_budget_core_c_47332 dma_buffer_size vardecl_budget-core.c 0 47332 NULL
162060 +enable_so_words_nf_conn_labels_47334 words nf_conn_labels 0 47334 NULL
162061 +enable_so_brcmf_chip_core_read32_fndecl_47346 brcmf_chip_core_read32 fndecl 0 47346 NULL
162062 +enable_so_nd_label_active_count_fndecl_47348 nd_label_active_count fndecl 0 47348 NULL
162063 +enable_so_gtt_base_align_amdgpu_mc_47351 gtt_base_align amdgpu_mc 0 47351 NULL nohasharray
162064 +enable_so_myri10ge_change_mtu_fndecl_47351 myri10ge_change_mtu fndecl 2 47351 &enable_so_gtt_base_align_amdgpu_mc_47351
162065 +enable_so_dmi_memdev_nr_vardecl_dmi_scan_c_47352 dmi_memdev_nr vardecl_dmi_scan.c 0 47352 NULL
162066 +enable_so_dump_midi_fndecl_47356 dump_midi fndecl 3 47356 NULL
162067 +enable_so_erasesize_mtd_info_47358 erasesize mtd_info 0 47358 NULL
162068 +enable_so_ath6kl_wmi_send_action_cmd_fndecl_47359 ath6kl_wmi_send_action_cmd fndecl 7-2 47359 NULL nohasharray
162069 +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
162070 +enable_so_ie_len_ieee80211_if_mesh_47360 ie_len ieee80211_if_mesh 0 47360 NULL
162071 +enable_so_SYSC_sched_getattr_fndecl_47361 SYSC_sched_getattr fndecl 3 47361 NULL
162072 +enable_so_nr_sects_hd_struct_47364 nr_sects hd_struct 0 47364 NULL
162073 +enable_so_rx_position_r3964_info_47365 rx_position r3964_info 0 47365 NULL
162074 +enable_so_il_dbgfs_status_read_fndecl_47367 il_dbgfs_status_read fndecl 3 47367 NULL
162075 +enable_so_batadv_iv_ogm_aggregate_fndecl_47372 batadv_iv_ogm_aggregate fndecl 3 47372 NULL
162076 +enable_so_max_fibre_devices_qla_hw_data_47375 max_fibre_devices qla_hw_data 0 47375 NULL
162077 +enable_so_nilfs_bmap_convert_error_fndecl_47376 nilfs_bmap_convert_error fndecl 0-3 47376 NULL
162078 +enable_so_vmw_ttm_tt_create_fndecl_47378 vmw_ttm_tt_create fndecl 2 47378 NULL
162079 +enable_so_data_in_pipe_uas_dev_info_47380 data_in_pipe uas_dev_info 0 47380 NULL
162080 +enable_so_max_tx_length_macb_47385 max_tx_length macb 0 47385 NULL nohasharray
162081 +enable_so_do_huge_pmd_anonymous_page_fndecl_47385 do_huge_pmd_anonymous_page fndecl 3 47385 &enable_so_max_tx_length_macb_47385
162082 +enable_so_memblocks_max_vxge_hw_mempool_47387 memblocks_max vxge_hw_mempool 0 47387 NULL
162083 +enable_so_access_vm_operations_struct_47395 access vm_operations_struct 0 47395 NULL
162084 +enable_so_sr_bg_stable_blkno_ocfs2_suballoc_result_47398 sr_bg_stable_blkno ocfs2_suballoc_result 0 47398 NULL
162085 +enable_so_efd_start_cluster_ext4_free_data_47399 efd_start_cluster ext4_free_data 0 47399 NULL
162086 +enable_so_ino_cifs_dirent_47402 ino cifs_dirent 0 47402 NULL nohasharray
162087 +enable_so_iscsi_offload_mesg_fndecl_47402 iscsi_offload_mesg fndecl 5 47402 &enable_so_ino_cifs_dirent_47402
162088 +enable_so_datalen_key_preparsed_payload_47406 datalen key_preparsed_payload 0 47406 NULL
162089 +enable_so_tp_len_tpacket_hdr_47410 tp_len tpacket_hdr 0 47410 NULL
162090 +enable_so_idetape_pad_zeros_fndecl_47413 idetape_pad_zeros fndecl 2 47413 NULL
162091 +enable_so_cdc_ncm_update_rxtx_max_fndecl_47421 cdc_ncm_update_rxtx_max fndecl 3-2 47421 NULL
162092 +enable_so_move_pfn_range_right_fndecl_47425 move_pfn_range_right fndecl 3-4 47425 NULL
162093 +enable_so_sinit_max_instreams_sctp_cookie_47433 sinit_max_instreams sctp_cookie 0 47433 NULL
162094 +enable_so_capabilities_read_fndecl_47434 capabilities_read fndecl 3 47434 NULL
162095 +enable_so_usnic_vnic_get_resources_fndecl_47437 usnic_vnic_get_resources fndecl 3 47437 NULL
162096 +enable_so_depth_bttv_format_47442 depth bttv_format 0 47442 NULL
162097 +enable_so_MaxChainDepth_mpt2sas_facts_47453 MaxChainDepth mpt2sas_facts 0 47453 NULL
162098 +enable_so_dw_spi_show_regs_fndecl_47461 dw_spi_show_regs fndecl 3 47461 NULL
162099 +enable_so_part_bits_mtd_blktrans_ops_47462 part_bits mtd_blktrans_ops 0 47462 NULL
162100 +enable_so_len_wmfw_region_47463 len wmfw_region 0 47463 NULL nohasharray
162101 +enable_so_snd_rme96_capture_copy_fndecl_47463 snd_rme96_capture_copy fndecl 5 47463 &enable_so_len_wmfw_region_47463
162102 +enable_so_batadv_bla_is_backbone_gw_fndecl_47467 batadv_bla_is_backbone_gw fndecl 3 47467 NULL
162103 +enable_so_memblock_alloc_try_nid_fndecl_47470 memblock_alloc_try_nid fndecl 2-1 47470 NULL
162104 +enable_so_compat_do_ipt_set_ctl_fndecl_47473 compat_do_ipt_set_ctl fndecl 4 47473 NULL nohasharray
162105 +enable_so_lpfc_idiag_baracc_read_fndecl_47473 lpfc_idiag_baracc_read fndecl 3 47473 &enable_so_compat_do_ipt_set_ctl_fndecl_47473
162106 +enable_so_maxDataSize__mpt_ioctl_header_47477 maxDataSize _mpt_ioctl_header 0 47477 NULL
162107 +enable_so_fifo_len_tx_fifo_config_47480 fifo_len tx_fifo_config 0 47480 NULL
162108 +enable_so_affs_write_end_ofs_fndecl_47486 affs_write_end_ofs fndecl 4-3 47486 NULL
162109 +enable_so_value_acpi_rsconvert_info_47488 value acpi_rsconvert_info 0 47488 NULL nohasharray
162110 +enable_so_report_length_f_hidg_47488 report_length f_hidg 0 47488 &enable_so_value_acpi_rsconvert_info_47488
162111 +enable_so_mac_offset_skb_gso_cb_47491 mac_offset skb_gso_cb 0 47491 NULL
162112 +enable_so_page_size_cas_47493 page_size cas 0 47493 NULL
162113 +enable_so_first_block_efs_sb_info_47499 first_block efs_sb_info 0 47499 NULL
162114 +enable_so_cifs_write_from_iter_fndecl_47501 cifs_write_from_iter fndecl 1-2 47501 NULL
162115 +enable_so_gr_ep_init_fndecl_47502 gr_ep_init fndecl 4 47502 NULL
162116 +enable_so_try_unmap_single_bt_fndecl_47503 try_unmap_single_bt fndecl 2-3 47503 NULL
162117 +enable_so_ipath_kpiobufs_vardecl_ipath_init_chip_c_47504 ipath_kpiobufs vardecl_ipath_init_chip.c 0 47504 NULL
162118 +enable_so_btrfs_cont_expand_fndecl_47505 btrfs_cont_expand fndecl 3-2 47505 NULL
162119 +enable_so_romfs_blk_strcmp_fndecl_47510 romfs_blk_strcmp fndecl 4-2 47510 NULL
162120 +enable_so_setcontrast_fndecl_47513 setcontrast fndecl 0 47513 NULL
162121 +enable_so_gfs2_dir_get_new_buffer_fndecl_47518 gfs2_dir_get_new_buffer fndecl 2 47518 NULL nohasharray
162122 +enable_so_num_connector_drm_mode_config_47518 num_connector drm_mode_config 0 47518 &enable_so_gfs2_dir_get_new_buffer_fndecl_47518
162123 +enable_so_xbf_count_xfs_bmap_free_47529 xbf_count xfs_bmap_free 0 47529 NULL
162124 +enable_so_pq_sources_dmatest_params_47534 pq_sources dmatest_params 0 47534 NULL
162125 +enable_so_llcp_sock_sendmsg_fndecl_47535 llcp_sock_sendmsg fndecl 3 47535 NULL
162126 +enable_so_skb_headers_offset_update_fndecl_47543 skb_headers_offset_update fndecl 2 47543 NULL
162127 +enable_so_show_sysfs_ops_47546 show sysfs_ops 0 47546 NULL
162128 +enable_so_relocs_num_drm_qxl_command_47550 relocs_num drm_qxl_command 0 47550 NULL
162129 +enable_so_add_replay_bud_fndecl_47552 add_replay_bud fndecl 3 47552 NULL
162130 +enable_so_max_concur_ios_snic_fw_info_47556 max_concur_ios snic_fw_info 0 47556 NULL
162131 +enable_so_cur_wm_latency_write_fndecl_47558 cur_wm_latency_write fndecl 3 47558 NULL
162132 +enable_so_max_xmit_dlength_iscsi_bus_flash_conn_47565 max_xmit_dlength iscsi_bus_flash_conn 0 47565 NULL nohasharray
162133 +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
162134 +enable_so_ubh_bread_uspi_fndecl_47568 ubh_bread_uspi fndecl 3 47568 NULL
162135 +enable_so_wep_decrypt_fail_read_fndecl_47572 wep_decrypt_fail_read fndecl 3 47572 NULL
162136 +enable_so_bnx2x_calc_num_queues_fndecl_47576 bnx2x_calc_num_queues fndecl 0 47576 NULL
162137 +enable_so_i_start_msdos_inode_info_47589 i_start msdos_inode_info 0 47589 NULL nohasharray
162138 +enable_so_traffic_class_ib_global_route_47589 traffic_class ib_global_route 0 47589 &enable_so_i_start_msdos_inode_info_47589
162139 +enable_so_acpi_check_region_fndecl_47594 acpi_check_region fndecl 2-1 47594 NULL
162140 +enable_so_dir_logfs_transaction_47599 dir logfs_transaction 0 47599 NULL
162141 +enable_so_ecryptfs_write_end_fndecl_47601 ecryptfs_write_end fndecl 5-3 47601 NULL
162142 +enable_so_rx_page_order_iwl_trans_pcie_47605 rx_page_order iwl_trans_pcie 0 47605 NULL
162143 +enable_so_ebt_buf_count_fndecl_47612 ebt_buf_count fndecl 2 47612 NULL
162144 +enable_so_control_1_vxge_hw_ring_rxd_1_47616 control_1 vxge_hw_ring_rxd_1 0 47616 NULL
162145 +enable_so_mincore_pte_range_fndecl_47625 mincore_pte_range fndecl 2 47625 NULL nohasharray
162146 +enable_so_len_ib_ucm_req_47625 len ib_ucm_req 0 47625 &enable_so_mincore_pte_range_fndecl_47625
162147 +enable_so_ubifs_load_znode_fndecl_47628 ubifs_load_znode fndecl 4 47628 NULL
162148 +enable_so_allocate_resource_fndecl_47629 allocate_resource fndecl 4-3-5-6 47629 NULL
162149 +enable_so___iio_add_event_config_attrs_fndecl_47635 __iio_add_event_config_attrs fndecl 0 47635 NULL
162150 +enable_so_nentries_ebt_table_info_47639 nentries ebt_table_info 0 47639 NULL
162151 +enable_so_buffer_alignment_fore200e_bus_47640 buffer_alignment fore200e_bus 0 47640 NULL
162152 +enable_so_num_phys_hw_profile_47641 num_phys hw_profile 0 47641 NULL
162153 +enable_so_nilfs_cpfile_get_offset_fndecl_47642 nilfs_cpfile_get_offset fndecl 0-2 47642 NULL nohasharray
162154 +enable_so_framebuffer_alloc_fndecl_47642 framebuffer_alloc fndecl 1 47642 &enable_so_nilfs_cpfile_get_offset_fndecl_47642
162155 +enable_so_pch_gbe_change_mtu_fndecl_47643 pch_gbe_change_mtu fndecl 2 47643 NULL
162156 +enable_so_radeon_compat_ioctl_fndecl_47645 radeon_compat_ioctl fndecl 2 47645 NULL
162157 +enable_so_ocfs2_move_extent_fndecl_47648 ocfs2_move_extent fndecl 5-3-2 47648 NULL nohasharray
162158 +enable_so_fetch_to_dev_buffer_fndecl_47648 fetch_to_dev_buffer fndecl 3 47648 &enable_so_ocfs2_move_extent_fndecl_47648
162159 +enable_so_rate_max_snd_soc_pcm_stream_47650 rate_max snd_soc_pcm_stream 0 47650 NULL
162160 +enable_so_max_sge_rqe_allocated_ocrdma_create_srq_rsp_47654 max_sge_rqe_allocated ocrdma_create_srq_rsp 0 47654 NULL
162161 +enable_so_height_console_font_47655 height console_font 0 47655 NULL
162162 +enable_so_length_fw_cdev_add_descriptor_47656 length fw_cdev_add_descriptor 0 47656 NULL
162163 +enable_so_pt_base_start_info_47658 pt_base start_info 0 47658 NULL nohasharray
162164 +enable_so_atomic_write_len_kernfs_open_file_47658 atomic_write_len kernfs_open_file 0 47658 &enable_so_pt_base_start_info_47658
162165 +enable_so___of_address_to_resource_fndecl_47662 __of_address_to_resource fndecl 3 47662 NULL
162166 +enable_so_wPropertyNameLength_usb_ext_prop_desc_47663 wPropertyNameLength usb_ext_prop_desc 0 47663 NULL
162167 +enable_so_dlm_rcom_names_fndecl_47668 dlm_rcom_names fndecl 4 47668 NULL nohasharray
162168 +enable_so_frame_seq_num_os_aux_s_47668 frame_seq_num os_aux_s 0 47668 &enable_so_dlm_rcom_names_fndecl_47668
162169 +enable_so_chans_zatm_dev_47669 chans zatm_dev 0 47669 NULL
162170 +enable_so_setup_window_fndecl_47673 setup_window fndecl 3-2-7-5-4 47673 NULL
162171 +enable_so_ksize_fndecl_47675 ksize fndecl 0 47675 NULL
162172 +enable_so_height_v4l2_pix_format_47682 height v4l2_pix_format 0 47682 NULL
162173 +enable_so_ath10k_debug_cal_data_read_fndecl_47685 ath10k_debug_cal_data_read fndecl 3 47685 NULL
162174 +enable_so_pci_iov_bus_range_fndecl_47686 pci_iov_bus_range fndecl 0 47686 NULL
162175 +enable_so_maxframesize_snd_usb_endpoint_47687 maxframesize snd_usb_endpoint 0 47687 NULL
162176 +enable_so_size_nvkm_instobj_47689 size nvkm_instobj 0 47689 NULL
162177 +enable_so_batadv_hardif_min_mtu_fndecl_47691 batadv_hardif_min_mtu fndecl 0 47691 NULL nohasharray
162178 +enable_so_cno_nilfs_super_data_47691 cno nilfs_super_data 0 47691 &enable_so_batadv_hardif_min_mtu_fndecl_47691
162179 +enable_so_virtblk_queue_depth_vardecl_virtio_blk_c_47692 virtblk_queue_depth vardecl_virtio_blk.c 0 47692 NULL
162180 +enable_so_paging64_gpte_to_gfn_lvl_fndecl_47694 paging64_gpte_to_gfn_lvl fndecl 0-2-1 47694 NULL
162181 +enable_so_afavlab_setup_fndecl_47698 afavlab_setup fndecl 4 47698 NULL
162182 +enable_so_gpu_mem_base_vml_par_47703 gpu_mem_base vml_par 0 47703 NULL
162183 +enable_so_xfs_iext_realloc_indirect_fndecl_47704 xfs_iext_realloc_indirect fndecl 2 47704 NULL nohasharray
162184 +enable_so_onenand_bbt_read_oob_fndecl_47704 onenand_bbt_read_oob fndecl 2 47704 &enable_so_xfs_iext_realloc_indirect_fndecl_47704
162185 +enable_so_ino_fuse_attr_47705 ino fuse_attr 0 47705 NULL nohasharray
162186 +enable_so_report_size_roccat_device_47705 report_size roccat_device 0 47705 &enable_so_ino_fuse_attr_47705
162187 +enable_so_ppp_sync_receive_fndecl_47706 ppp_sync_receive fndecl 4 47706 NULL
162188 +enable_so_nilfs_iget_for_gc_fndecl_47708 nilfs_iget_for_gc fndecl 2 47708 NULL
162189 +enable_so_i2c_hid_raw_request_fndecl_47709 i2c_hid_raw_request fndecl 4 47709 NULL nohasharray
162190 +enable_so_fast_rx_path_fndecl_47709 fast_rx_path fndecl 3 47709 &enable_so_i2c_hid_raw_request_fndecl_47709 nohasharray
162191 +enable_so_small_bytes_myri10ge_priv_47709 small_bytes myri10ge_priv 0 47709 &enable_so_fast_rx_path_fndecl_47709
162192 +enable_so_oxu_init_fndecl_47714 oxu_init fndecl 3-2 47714 NULL
162193 +enable_so_padding_rpcrdma_create_data_internal_47717 padding rpcrdma_create_data_internal 0 47717 NULL
162194 +enable_so_tegra_sflash_start_transfer_one_fndecl_47723 tegra_sflash_start_transfer_one fndecl 0 47723 NULL
162195 +enable_so_max_size_ttm_pool_opts_47726 max_size ttm_pool_opts 0 47726 NULL
162196 +enable_so_bdev_stack_limits_fndecl_47732 bdev_stack_limits fndecl 3 47732 NULL
162197 +enable_so_copy_nocow_pages_for_inode_fndecl_47736 copy_nocow_pages_for_inode fndecl 2 47736 NULL
162198 +enable_so_SMB2_write_fndecl_47741 SMB2_write fndecl 5 47741 NULL
162199 +enable_so_eccbytes_nand_ecclayout_47742 eccbytes nand_ecclayout 0 47742 NULL
162200 +enable_so_minbcnt_aoetgt_47744 minbcnt aoetgt 0 47744 NULL
162201 +enable_so_width_ssd1307fb_par_47753 width ssd1307fb_par 0 47753 NULL nohasharray
162202 +enable_so_buffer_size_snd_emu10k1_fx8010_pcm_47753 buffer_size snd_emu10k1_fx8010_pcm 0 47753 &enable_so_width_ssd1307fb_par_47753
162203 +enable_so_fixed_out_len_gether_47754 fixed_out_len gether 0 47754 NULL
162204 +enable_so_key_instantiate_and_link_fndecl_47756 key_instantiate_and_link fndecl 3 47756 NULL
162205 +enable_so_num_def_rx_descs_octeon_config_47759 num_def_rx_descs octeon_config 0 47759 NULL
162206 +enable_so_write_chunk_fndecl_47763 write_chunk fndecl 4 47763 NULL
162207 +enable_so_ticket_length_rxrpc_key_data_v1_47764 ticket_length rxrpc_key_data_v1 0 47764 NULL
162208 +enable_so_mq_ecount_lpfc_sli4_hba_47770 mq_ecount lpfc_sli4_hba 0 47770 NULL
162209 +enable_so_rx_count_ll_struct_47772 rx_count ll_struct 0 47772 NULL nohasharray
162210 +enable_so_minor_osd_uld_device_47772 minor osd_uld_device 0 47772 &enable_so_rx_count_ll_struct_47772
162211 +enable_so_fill_func_debug_buffer_47773 fill_func debug_buffer 0 47773 NULL
162212 +enable_so_snic_reset_stats_read_fndecl_47774 snic_reset_stats_read fndecl 3 47774 NULL
162213 +enable_so_dma1_shift_es1938_47776 dma1_shift es1938 0 47776 NULL
162214 +enable_so_v9fs_remote_set_acl_fndecl_47784 v9fs_remote_set_acl fndecl 4 47784 NULL nohasharray
162215 +enable_so_rx_ring_size_bnx2x_47784 rx_ring_size bnx2x 0 47784 &enable_so_v9fs_remote_set_acl_fndecl_47784 nohasharray
162216 +enable_so_fd_copyout_fndecl_47784 fd_copyout fndecl 3 47784 &enable_so_rx_ring_size_bnx2x_47784
162217 +enable_so_bg_blkno_ocfs2_group_desc_47785 bg_blkno ocfs2_group_desc 0 47785 NULL
162218 +enable_so_skb_prepare_seq_read_fndecl_47790 skb_prepare_seq_read fndecl 2 47790 NULL nohasharray
162219 +enable_so_max_cmds_mlx4_cmd_47790 max_cmds mlx4_cmd 0 47790 &enable_so_skb_prepare_seq_read_fndecl_47790
162220 +enable_so_do_otp_read_fndecl_47794 do_otp_read fndecl 2 47794 NULL
162221 +enable_so_num_vmdq_qps_i40e_pf_47795 num_vmdq_qps i40e_pf 0 47795 NULL
162222 +enable_so_mxt_bootloader_read_fndecl_47796 mxt_bootloader_read fndecl 3 47796 NULL nohasharray
162223 +enable_so_major_vardecl_sound_c_47796 major vardecl_sound.c 0 47796 &enable_so_mxt_bootloader_read_fndecl_47796
162224 +enable_so_get_key_haup_common_fndecl_47797 get_key_haup_common fndecl 5 47797 NULL nohasharray
162225 +enable_so___push_leaf_right_fndecl_47797 __push_leaf_right fndecl 8 47797 &enable_so_get_key_haup_common_fndecl_47797
162226 +enable_so_i_eblock_bfs_inode_47799 i_eblock bfs_inode 0 47799 NULL
162227 +enable_so_h_suballoc_bit_ocfs2_extent_block_47802 h_suballoc_bit ocfs2_extent_block 0 47802 NULL
162228 +enable_so_odd_byte_adjustment_sym_ccb_47803 odd_byte_adjustment sym_ccb 0 47803 NULL
162229 +enable_so_xfs_attrmulti_attr_set_fndecl_47809 xfs_attrmulti_attr_set fndecl 4 47809 NULL nohasharray
162230 +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
162231 +enable_so_size_ncp_ioctl_request_47816 size ncp_ioctl_request 0 47816 NULL
162232 +enable_so_fuse_copy_do_fndecl_47822 fuse_copy_do fndecl 0 47822 NULL
162233 +enable_so_rom_length_fw_cdev_get_info_47831 rom_length fw_cdev_get_info 0 47831 NULL
162234 +enable_so_rx_defrag_in_process_called_read_fndecl_47833 rx_defrag_in_process_called_read fndecl 3 47833 NULL
162235 +enable_so_f2fs_fallocate_fndecl_47842 f2fs_fallocate fndecl 3-4 47842 NULL nohasharray
162236 +enable_so_tcp_check_reno_reordering_fndecl_47842 tcp_check_reno_reordering fndecl 2 47842 &enable_so_f2fs_fallocate_fndecl_47842
162237 +enable_so_assoc_len_amp_ctrl_47844 assoc_len amp_ctrl 0 47844 NULL nohasharray
162238 +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
162239 +enable_so_rl_rgrps_gfs2_rgrp_list_47847 rl_rgrps gfs2_rgrp_list 0 47847 NULL
162240 +enable_so_ch_t_tlevel_jsm_channel_47848 ch_t_tlevel jsm_channel 0 47848 NULL
162241 +enable_so_journal_init_dev_fndecl_47851 journal_init_dev fndecl 5-3 47851 NULL
162242 +enable_so_s_mmp_block_ext4_super_block_47865 s_mmp_block ext4_super_block 0 47865 NULL
162243 +enable_so_nilfs_cpfile_find_checkpoint_block_fndecl_47868 nilfs_cpfile_find_checkpoint_block fndecl 2-3 47868 NULL
162244 +enable_so_length_ar9170_stream_47870 length ar9170_stream 0 47870 NULL
162245 +enable_so_smssdio_sendrequest_fndecl_47873 smssdio_sendrequest fndecl 3 47873 NULL
162246 +enable_so_len_nlm_cookie_47875 len nlm_cookie 0 47875 NULL nohasharray
162247 +enable_so_ivtv_convert_ivtv_vbi_fndecl_47875 ivtv_convert_ivtv_vbi fndecl 0 47875 &enable_so_len_nlm_cookie_47875
162248 +enable_so_smt_send_ecf_fndecl_47881 smt_send_ecf fndecl 6 47881 NULL
162249 +enable_so_gs_alloc_req_fndecl_47888 gs_alloc_req fndecl 2 47888 NULL
162250 +enable_so_end_bus_number_acpi_mcfg_allocation_47894 end_bus_number acpi_mcfg_allocation 0 47894 NULL
162251 +enable_so_sb_inoalignmt_xfs_sb_47899 sb_inoalignmt xfs_sb 0 47899 NULL
162252 +enable_so_set_offset_v2_k_offset_fndecl_47902 set_offset_v2_k_offset fndecl 2 47902 NULL
162253 +enable_so_msize_p9_client_47905 msize p9_client 0 47905 NULL
162254 +enable_so_write_pmsg_fndecl_47911 write_pmsg fndecl 3 47911 NULL
162255 +enable_so_spi_map_msg_fndecl_47912 spi_map_msg fndecl 0 47912 NULL
162256 +enable_so_nbytes_fsl_edma_hw_tcd_47913 nbytes fsl_edma_hw_tcd 0 47913 NULL
162257 +enable_so_compat_fillonedir_fndecl_47921 compat_fillonedir fndecl 3 47921 NULL
162258 +enable_so_mxl111sf_stream_config_isoc_fndecl_47924 mxl111sf_stream_config_isoc fndecl 2 47924 NULL
162259 +enable_so_phys_esb2rom_window_47933 phys esb2rom_window 0 47933 NULL nohasharray
162260 +enable_so_pipeline_cs_rx_packet_out_read_fndecl_47933 pipeline_cs_rx_packet_out_read fndecl 3 47933 &enable_so_phys_esb2rom_window_47933
162261 +enable_so_fddi_change_mtu_fndecl_47942 fddi_change_mtu fndecl 2 47942 NULL
162262 +enable_so_rxd_vlan_rxd_desc_47943 rxd_vlan rxd_desc 0 47943 NULL
162263 +enable_so_max_param_range_47945 max param_range 0 47945 NULL
162264 +enable_so_produce_q_size_vmci_qp_47948 produce_q_size vmci_qp 0 47948 NULL
162265 +enable_so_dlm_new_lockspace_fndecl_47954 dlm_new_lockspace fndecl 4 47954 NULL
162266 +enable_so_l2bsize_jfs_log_47956 l2bsize jfs_log 0 47956 NULL
162267 +enable_so_depth_pitch_drm_r128_private_47959 depth_pitch drm_r128_private 0 47959 NULL
162268 +enable_so___skb_flow_dissect_fndecl_47960 __skb_flow_dissect fndecl 6 47960 NULL nohasharray
162269 +enable_so_netpoll_send_udp_fndecl_47960 netpoll_send_udp fndecl 3 47960 &enable_so___skb_flow_dissect_fndecl_47960
162270 +enable_so_st5481_isoc_flatten_fndecl_47963 st5481_isoc_flatten fndecl 0 47963 NULL
162271 +enable_so_handle_rx_packet_fndecl_47970 handle_rx_packet fndecl 3 47970 NULL
162272 +enable_so_reg_size_sci_port_47971 reg_size sci_port 0 47971 NULL nohasharray
162273 +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
162274 +enable_so_length_xfs_bmalloca_47971 length xfs_bmalloca 0 47971 &enable_so_encap_hlen_ip_tunnel_encap_ops_47971
162275 +enable_so_le_ih_k_offset_fndecl_47992 le_ih_k_offset fndecl 0 47992 NULL
162276 +enable_so_remap_to_cache_dirty_fndecl_47996 remap_to_cache_dirty fndecl 4 47996 NULL
162277 +enable_so_blocks_num_c2port_ops_47999 blocks_num c2port_ops 0 47999 NULL
162278 +enable_so_width_console_font_op_48005 width console_font_op 0 48005 NULL
162279 +enable_so_setgain_fndecl_48010 setgain fndecl 0 48010 NULL nohasharray
162280 +enable_so_init_pci_cap_msi_perm_fndecl_48010 init_pci_cap_msi_perm fndecl 2 48010 &enable_so_setgain_fndecl_48010
162281 +enable_so_size_netlbl_unlhsh_tbl_48011 size netlbl_unlhsh_tbl 0 48011 NULL
162282 +enable_so_selinux_transaction_write_fndecl_48013 selinux_transaction_write fndecl 3 48013 NULL
162283 +enable_so_size_nfs_fh_48014 size nfs_fh 0 48014 NULL
162284 +enable_so_temp_end_applesmc_registers_48016 temp_end applesmc_registers 0 48016 NULL
162285 +enable_so_lpfc_idiag_baracc_write_fndecl_48021 lpfc_idiag_baracc_write fndecl 3 48021 NULL
162286 +enable_so_original_mtu_slave_48025 original_mtu slave 0 48025 NULL
162287 +enable_so_hmac_len_sctp_hmac_48030 hmac_len sctp_hmac 0 48030 NULL
162288 +enable_so_init_page_array_fndecl_48038 init_page_array fndecl 2-0 48038 NULL
162289 +enable_so_rm_namelen_nfsd4_remove_48040 rm_namelen nfsd4_remove 0 48040 NULL
162290 +enable_so_s_reserved_affs_sb_info_48043 s_reserved affs_sb_info 0 48043 NULL
162291 +enable_so_sb_size_md_rdev_48046 sb_size md_rdev 0 48046 NULL
162292 +enable_so_num_pages_ttm_buffer_object_48047 num_pages ttm_buffer_object 0 48047 NULL
162293 +enable_so_num_privcmd_mmapbatch_v2_48051 num privcmd_mmapbatch_v2 0 48051 NULL
162294 +enable_so_rds_buf_vardecl_radio_si470x_i2c_c_48053 rds_buf vardecl_radio-si470x-i2c.c 0 48053 NULL
162295 +enable_so_ioctl_datasize_ips_ha_48058 ioctl_datasize ips_ha 0 48058 NULL
162296 +enable_so_nr_channels_at_dma_platform_data_48060 nr_channels at_dma_platform_data 0 48060 NULL
162297 +enable_so_lso_max_fc_lport_48064 lso_max fc_lport 0 48064 NULL
162298 +enable_so_zonesize_alauda_media_info_48068 zonesize alauda_media_info 0 48068 NULL
162299 +enable_so_xfs_zero_eof_fndecl_48076 xfs_zero_eof fndecl 3-2 48076 NULL
162300 +enable_so_mt9t031_skip_fndecl_48078 mt9t031_skip fndecl 0-3-2 48078 NULL
162301 +enable_so_blocksize_sddr55_card_info_48082 blocksize sddr55_card_info 0 48082 NULL
162302 +enable_so_osst_max_dev_vardecl_osst_c_48086 osst_max_dev vardecl_osst.c 0 48086 NULL
162303 +enable_so_ipath_rcvegrcnt_ipath_devdata_48089 ipath_rcvegrcnt ipath_devdata 0 48089 NULL
162304 +enable_so_count_atl1c_rfd_ring_48095 count atl1c_rfd_ring 0 48095 NULL
162305 +enable_so_scsi_io_completion_fndecl_48097 scsi_io_completion fndecl 2 48097 NULL nohasharray
162306 +enable_so_seg_count_agp_region32_48097 seg_count agp_region32 0 48097 &enable_so_scsi_io_completion_fndecl_48097
162307 +enable_so_icq_align_elevator_type_48098 icq_align elevator_type 0 48098 NULL
162308 +enable_so_ep_out_mts_desc_48099 ep_out mts_desc 0 48099 NULL
162309 +enable_so___lbs_cmd_async_fndecl_48102 __lbs_cmd_async fndecl 4 48102 NULL
162310 +enable_so_nfc_llcp_send_i_frame_fndecl_48105 nfc_llcp_send_i_frame fndecl 3 48105 NULL nohasharray
162311 +enable_so___cvmx_bootmem_desc_get_fndecl_48105 __cvmx_bootmem_desc_get fndecl 0 48105 &enable_so_nfc_llcp_send_i_frame_fndecl_48105
162312 +enable_so_m25p80_write_reg_fndecl_48115 m25p80_write_reg fndecl 4 48115 NULL
162313 +enable_so_max_pkt_size_cx231xx_audio_48117 max_pkt_size cx231xx_audio 0 48117 NULL
162314 +enable_so_discard_granularity_queue_limits_48119 discard_granularity queue_limits 0 48119 NULL
162315 +enable_so_curr_dma_words_tegra_slink_data_48129 curr_dma_words tegra_slink_data 0 48129 NULL nohasharray
162316 +enable_so_gfs2_write_begin_fndecl_48129 gfs2_write_begin fndecl 4-3 48129 &enable_so_curr_dma_words_tegra_slink_data_48129
162317 +enable_so_vma_kernel_pagesize_fndecl_48131 vma_kernel_pagesize fndecl 0 48131 NULL
162318 +enable_so_tx_tx_retry_template_read_fndecl_48132 tx_tx_retry_template_read fndecl 3 48132 NULL
162319 +enable_so_mem_read_fndecl_48140 mem_read fndecl 3 48140 NULL
162320 +enable_so_sisusbcon_putcs_fndecl_48141 sisusbcon_putcs fndecl 3 48141 NULL nohasharray
162321 +enable_so_osdmap_set_max_osd_fndecl_48141 osdmap_set_max_osd fndecl 2 48141 &enable_so_sisusbcon_putcs_fndecl_48141
162322 +enable_so_max_gs_mlx5_core_srq_48153 max_gs mlx5_core_srq 0 48153 NULL
162323 +enable_so_isdnhdlc_encode_fndecl_48155 isdnhdlc_encode fndecl 0-6 48155 NULL
162324 +enable_so_usb_endpoint_data_queue_48158 usb_endpoint data_queue 0 48158 NULL nohasharray
162325 +enable_so_update_res_fndecl_48158 update_res fndecl 3-2 48158 &enable_so_usb_endpoint_data_queue_48158 nohasharray
162326 +enable_so_hpi_cobranet_hmi_write_fndecl_48158 hpi_cobranet_hmi_write fndecl 3 48158 &enable_so_update_res_fndecl_48158
162327 +enable_so_qs_in_channels_hdsp_48166 qs_in_channels hdsp 0 48166 NULL
162328 +enable_so_factor_ewma_48168 factor ewma 0 48168 NULL
162329 +enable_so_r3964_write_fndecl_48173 r3964_write fndecl 4 48173 NULL
162330 +enable_so_hub_control_hc_driver_48178 hub_control hc_driver 0 48178 NULL
162331 +enable_so_mwifiex_parse_cal_cfg_fndecl_48179 mwifiex_parse_cal_cfg fndecl 0 48179 NULL
162332 +enable_so_mr_read_fndecl_48180 mr_read fndecl 0 48180 NULL
162333 +enable_so_nvkm_fifo_create__fndecl_48184 nvkm_fifo_create_ fndecl 5-6 48184 NULL
162334 +enable_so_num_pages_vmw_sg_table_48192 num_pages vmw_sg_table 0 48192 NULL
162335 +enable_so_qcafrm_fsm_decode_fndecl_48193 qcafrm_fsm_decode fndecl 0-4 48193 NULL nohasharray
162336 +enable_so_data_transfer_length_pmcraid_ioarcb_48193 data_transfer_length pmcraid_ioarcb 0 48193 &enable_so_qcafrm_fsm_decode_fndecl_48193
162337 +enable_so_xres_virtual_fb_var_screeninfo_48196 xres_virtual fb_var_screeninfo 0 48196 NULL nohasharray
162338 +enable_so_sy_fb_copyarea_48196 sy fb_copyarea 0 48196 &enable_so_xres_virtual_fb_var_screeninfo_48196
162339 +enable_so_snd_rawmidi_transmit_ack_fndecl_48200 snd_rawmidi_transmit_ack fndecl 0-2 48200 NULL
162340 +enable_so_rxoffset_dma_info_48202 rxoffset dma_info 0 48202 NULL
162341 +enable_so_btusb_recv_bulk_intel_fndecl_48211 btusb_recv_bulk_intel fndecl 3 48211 NULL nohasharray
162342 +enable_so_proc_ns_readlink_fndecl_48211 proc_ns_readlink fndecl 3 48211 &enable_so_btusb_recv_bulk_intel_fndecl_48211
162343 +enable_so___lgwrite_fndecl_48214 __lgwrite fndecl 4 48214 NULL
162344 +enable_so_ramoops_console_size_vardecl_ram_c_48215 ramoops_console_size vardecl_ram.c 0 48215 NULL
162345 +enable_so_dwc3_ep0_start_trans_fndecl_48216 dwc3_ep0_start_trans fndecl 4 48216 NULL nohasharray
162346 +enable_so_srp_response_common_fndecl_48216 srp_response_common fndecl 4-2 48216 &enable_so_dwc3_ep0_start_trans_fndecl_48216 nohasharray
162347 +enable_so_ax88179_read_cmd_nopm_fndecl_48216 ax88179_read_cmd_nopm fndecl 5 48216 &enable_so_srp_response_common_fndecl_48216
162348 +enable_so_cur_inode_last_extent_send_ctx_48219 cur_inode_last_extent send_ctx 0 48219 NULL
162349 +enable_so_qib_rkey_ok_fndecl_48221 qib_rkey_ok fndecl 3-4 48221 NULL
162350 +enable_so_b_map_count_xfs_buf_48228 b_map_count xfs_buf 0 48228 NULL
162351 +enable_so_sys_nice_fndecl_48229 sys_nice fndecl 1 48229 NULL
162352 +enable_so_ieee80211_if_read_dot11MeshHWMPconfirmationInterval_fndecl_48233 ieee80211_if_read_dot11MeshHWMPconfirmationInterval fndecl 3 48233 NULL
162353 +enable_so_xdr_buf_read_netobj_fndecl_48238 xdr_buf_read_netobj fndecl 3 48238 NULL
162354 +enable_so_num_rx_rings_bnx2_48240 num_rx_rings bnx2 0 48240 NULL
162355 +enable_so_i2400m_rx_stats_read_fndecl_48249 i2400m_rx_stats_read fndecl 3 48249 NULL
162356 +enable_so_qib_make_grh_fndecl_48250 qib_make_grh fndecl 0 48250 NULL
162357 +enable_so_height_cx88_core_48255 height cx88_core 0 48255 NULL
162358 +enable_so_ext3_get_journal_fndecl_48262 ext3_get_journal fndecl 2 48262 NULL
162359 +enable_so_vrows_display_48275 vrows display 0 48275 NULL
162360 +enable_so_qdisc_tree_decrease_qlen_fndecl_48281 qdisc_tree_decrease_qlen fndecl 2 48281 NULL
162361 +enable_so_compat_sys_set_mempolicy_fndecl_48285 compat_sys_set_mempolicy fndecl 3 48285 NULL
162362 +enable_so_reg_shift_pciserial_board_48293 reg_shift pciserial_board 0 48293 NULL
162363 +enable_so_add_packet_fndecl_48295 add_packet fndecl 3 48295 NULL
162364 +enable_so_next_dtslot_48300 next dtslot 0 48300 NULL
162365 +enable_so_hackrf_convert_stream_fndecl_48309 hackrf_convert_stream fndecl 0-4 48309 NULL
162366 +enable_so_nep_buffer_size_wahc_48313 nep_buffer_size wahc 0 48313 NULL
162367 +enable_so_ci_flags_f2fs_crypt_info_48318 ci_flags f2fs_crypt_info 0 48318 NULL
162368 +enable_so_ngroups_group_info_48320 ngroups group_info 0 48320 NULL
162369 +enable_so_pin_down_extent_fndecl_48324 pin_down_extent fndecl 4-3 48324 NULL
162370 +enable_so_acpi_efi_48328 acpi efi 0 48328 NULL nohasharray
162371 +enable_so_btn_rec_size_cyttsp4_sysinfo_ofs_48328 btn_rec_size cyttsp4_sysinfo_ofs 0 48328 &enable_so_acpi_efi_48328
162372 +enable_so_vga_scan_lines_vardecl_vgacon_c_48330 vga_scan_lines vardecl_vgacon.c 0 48330 NULL
162373 +enable_so_region_table_entry_bits_switch_ctx_48332 region_table_entry_bits switch_ctx 0 48332 NULL
162374 +enable_so_tch_rec_size_cyttsp4_opcfg_48339 tch_rec_size cyttsp4_opcfg 0 48339 NULL
162375 +enable_so_ion_test_ioctl_fndecl_48340 ion_test_ioctl fndecl 2 48340 NULL
162376 +enable_so_ivtv_read_fndecl_48343 ivtv_read fndecl 3 48343 NULL
162377 +enable_so_spare_bytes_per_page_nand_jedec_params_48344 spare_bytes_per_page nand_jedec_params 0 48344 NULL
162378 +enable_so_bno_xfs_extent_busy_48346 bno xfs_extent_busy 0 48346 NULL
162379 +enable_so_generic_ptrace_peekdata_fndecl_48349 generic_ptrace_peekdata fndecl 2 48349 NULL
162380 +enable_so_hwahc_op_urb_dequeue_fndecl_48351 hwahc_op_urb_dequeue fndecl 3 48351 NULL
162381 +enable_so_flash_read_fndecl_48352 flash_read fndecl 3 48352 NULL
162382 +enable_so_kiblnd_create_tx_pool_fndecl_48357 kiblnd_create_tx_pool fndecl 2 48357 NULL
162383 +enable_so_qib_make_rc_ack_fndecl_48361 qib_make_rc_ack fndecl 4 48361 NULL
162384 +enable_so_ule_sndu_len_dvb_net_priv_48367 ule_sndu_len dvb_net_priv 0 48367 NULL
162385 +enable_so_xlog_write_setup_copy_fndecl_48368 xlog_write_setup_copy fndecl 0 48368 NULL
162386 +enable_so_gmch_chip_id_intel_gtt_driver_description_48370 gmch_chip_id intel_gtt_driver_description 0 48370 NULL
162387 +enable_so_bfad_debugfs_read_regrd_fndecl_48373 bfad_debugfs_read_regrd fndecl 3 48373 NULL
162388 +enable_so_width_dt3155_priv_48375 width dt3155_priv 0 48375 NULL
162389 +enable_so_copy_to_user_fndecl_48376 copy_to_user fndecl 3-0 48376 NULL
162390 +enable_so_driver_data_pci_device_id_48380 driver_data pci_device_id 0 48380 NULL
162391 +enable_so_punit_size_intel_pmc_ipc_dev_48383 punit_size intel_pmc_ipc_dev 0 48383 NULL
162392 +enable_so__snd_pcm_hw_param_set_fndecl_48394 _snd_pcm_hw_param_set fndecl 3 48394 NULL
162393 +enable_so_kvaser_usb_send_simple_msg_fndecl_48401 kvaser_usb_send_simple_msg fndecl 0 48401 NULL
162394 +enable_so_blk_queue_dma_pad_fndecl_48409 blk_queue_dma_pad fndecl 2 48409 NULL
162395 +enable_so_osd_depth_vardecl_ivtvfb_c_48413 osd_depth vardecl_ivtvfb.c 0 48413 NULL
162396 +enable_so_seq_buf_putmem_fndecl_48421 seq_buf_putmem fndecl 3 48421 NULL
162397 +enable_so_max_kioc_mraid_mmadp_48422 max_kioc mraid_mmadp 0 48422 NULL
162398 +enable_so_sys_fadvise64_64_fndecl_48424 sys_fadvise64_64 fndecl 2-3 48424 NULL nohasharray
162399 +enable_so_stex_copy_data_fndecl_48424 stex_copy_data fndecl 3 48424 &enable_so_sys_fadvise64_64_fndecl_48424
162400 +enable_so_read_file_blob_fndecl_48429 read_file_blob fndecl 3 48429 NULL
162401 +enable_so_bMaxBurst_usb_wireless_ep_comp_descriptor_48430 bMaxBurst usb_wireless_ep_comp_descriptor 0 48430 NULL
162402 +enable_so_mmio_phys_end_amd_iommu_48432 mmio_phys_end amd_iommu 0 48432 NULL
162403 +enable_so_tty_register_device_attr_fndecl_48438 tty_register_device_attr fndecl 2 48438 NULL
162404 +enable_so_natids_tid_info_48439 natids tid_info 0 48439 NULL
162405 +enable_so_bzImage64_load_fndecl_48447 bzImage64_load fndecl 7 48447 NULL
162406 +enable_so_compat_keyctl_instantiate_key_iov_fndecl_48452 compat_keyctl_instantiate_key_iov fndecl 3 48452 NULL nohasharray
162407 +enable_so_alloc_ftrace_hash_fndecl_48452 alloc_ftrace_hash fndecl 1 48452 &enable_so_compat_keyctl_instantiate_key_iov_fndecl_48452
162408 +enable_so_read_file_eeprom_fndecl_48455 read_file_eeprom fndecl 3 48455 NULL
162409 +enable_so_xen_align_and_add_e820_region_fndecl_48457 xen_align_and_add_e820_region fndecl 2-1 48457 NULL nohasharray
162410 +enable_so_dp_out_buf_len_digi_port_48457 dp_out_buf_len digi_port 0 48457 &enable_so_xen_align_and_add_e820_region_fndecl_48457
162411 +enable_so_copy_to_user_fromio_fndecl_48459 copy_to_user_fromio fndecl 3 48459 NULL
162412 +enable_so_len_rx_header_48462 len rx_header 0 48462 NULL
162413 +enable_so___nla_reserve_nohdr_fndecl_48468 __nla_reserve_nohdr fndecl 2 48468 NULL
162414 +enable_so_length_acpi_ipmi_buffer_48471 length acpi_ipmi_buffer 0 48471 NULL nohasharray
162415 +enable_so_enclosure_register_fndecl_48471 enclosure_register fndecl 3 48471 &enable_so_length_acpi_ipmi_buffer_48471
162416 +enable_so_gre_manip_pkt_fndecl_48475 gre_manip_pkt fndecl 4 48475 NULL
162417 +enable_so_parport_ieee1284_epp_read_data_fndecl_48478 parport_ieee1284_epp_read_data fndecl 0 48478 NULL
162418 +enable_so_nr_domains_rapl_package_48482 nr_domains rapl_package 0 48482 NULL
162419 +enable_so_xe_value_size_ocfs2_xattr_entry_48485 xe_value_size ocfs2_xattr_entry 0 48485 NULL
162420 +enable_so___roundup_pow_of_two_fndecl_48486 __roundup_pow_of_two fndecl 0 48486 NULL
162421 +enable_so___origin_write_fndecl_48487 __origin_write fndecl 2 48487 NULL nohasharray
162422 +enable_so_addidata_apci7800_setup_fndecl_48487 addidata_apci7800_setup fndecl 4 48487 &enable_so___origin_write_fndecl_48487
162423 +enable_so_sisusb_clear_vram_fndecl_48489 sisusb_clear_vram fndecl 2-3 48489 NULL
162424 +enable_so_l_len_ocfs2_space_resv_48490 l_len ocfs2_space_resv 0 48490 NULL
162425 +enable_so_ieee80211_if_read_flags_fndecl_48493 ieee80211_if_read_flags fndecl 3 48493 NULL
162426 +enable_so_ydepth_sh_veu_format_48498 ydepth sh_veu_format 0 48498 NULL nohasharray
162427 +enable_so_rss_key_write_fndecl_48498 rss_key_write fndecl 3 48498 &enable_so_ydepth_sh_veu_format_48498
162428 +enable_so_ping_v6_sendmsg_fndecl_48499 ping_v6_sendmsg fndecl 3 48499 NULL
162429 +enable_so_encode_filename_fndecl_48501 encode_filename fndecl 3 48501 NULL
162430 +enable_so_len_cfg80211_bss_ies_48503 len cfg80211_bss_ies 0 48503 NULL
162431 +enable_so_r_len_ipath_qp_48504 r_len ipath_qp 0 48504 NULL
162432 +enable_so_sys_pselect6_fndecl_48506 sys_pselect6 fndecl 1 48506 NULL
162433 +enable_so_channels_snd_soc_dai_48509 channels snd_soc_dai 0 48509 NULL
162434 +enable_so_rx_count_kim_data_s_48513 rx_count kim_data_s 0 48513 NULL nohasharray
162435 +enable_so_read_file_skb_rx_fndecl_48513 read_file_skb_rx fndecl 3 48513 &enable_so_rx_count_kim_data_s_48513
162436 +enable_so_get_lr_context_size_fndecl_48518 get_lr_context_size fndecl 0 48518 NULL
162437 +enable_so_octeon_read_device_mem32_fndecl_48520 octeon_read_device_mem32 fndecl 0 48520 NULL
162438 +enable_so_fcoe_get_paged_crc_eof_fndecl_48522 fcoe_get_paged_crc_eof fndecl 2 48522 NULL
162439 +enable_so_copy_in_user_fndecl_48525 copy_in_user fndecl 3 48525 NULL
162440 +enable_so_receive_buf_fndecl_48528 receive_buf fndecl 4 48528 NULL nohasharray
162441 +enable_so_max_sense_bytes_mpt3_ioctl_command_48528 max_sense_bytes mpt3_ioctl_command 0 48528 &enable_so_receive_buf_fndecl_48528
162442 +enable_so_dxfer_len_sg_io_hdr_48532 dxfer_len sg_io_hdr 0 48532 NULL
162443 +enable_so_nilfs_sufile_update_fndecl_48533 nilfs_sufile_update fndecl 2 48533 NULL
162444 +enable_so_ocfs2_write_cluster_fndecl_48536 ocfs2_write_cluster fndecl 2-8 48536 NULL
162445 +enable_so_discard_block_size_cache_48539 discard_block_size cache 0 48539 NULL
162446 +enable_so_fack_count_tcp_sacktag_state_48543 fack_count tcp_sacktag_state 0 48543 NULL
162447 +enable_so_aid_len_nfc_evt_transaction_48544 aid_len nfc_evt_transaction 0 48544 NULL
162448 +enable_so_cmm_read_fndecl_48547 cmm_read fndecl 3 48547 NULL
162449 +enable_so_dm_stats_create_fndecl_48550 dm_stats_create fndecl 4-2-3-6 48550 NULL
162450 +enable_so_inode_permission_fndecl_48552 inode_permission fndecl 0 48552 NULL nohasharray
162451 +enable_so_max_reply_bytes_mpt2_ioctl_command_48552 max_reply_bytes mpt2_ioctl_command 0 48552 &enable_so_inode_permission_fndecl_48552
162452 +enable_so_dccp_sync_mss_fndecl_48556 dccp_sync_mss fndecl 2 48556 NULL
162453 +enable_so_acpi_dev_get_resources_fndecl_48557 acpi_dev_get_resources fndecl 0 48557 NULL
162454 +enable_so___vlan_vid_add_fndecl_48559 __vlan_vid_add fndecl 3 48559 NULL
162455 +enable_so_internal_depth_MPT2SAS_ADAPTER_48564 internal_depth MPT2SAS_ADAPTER 0 48564 NULL
162456 +enable_so_intel_tile_height_fndecl_48566 intel_tile_height fndecl 0 48566 NULL
162457 +enable_so_init_tag_map_fndecl_48568 init_tag_map fndecl 3 48568 NULL
162458 +enable_so_start_spy_cam_fndecl_48570 start_spy_cam fndecl 0 48570 NULL
162459 +enable_so_len_wep_key_t_48574 len wep_key_t 0 48574 NULL nohasharray
162460 +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
162461 +enable_so_wil_read_file_ssid_fndecl_48574 wil_read_file_ssid fndecl 3 48574 &enable_so_il_dbgfs_force_reset_read_fndecl_48574
162462 +enable_so_iomem_reg_shift_old_serial_port_48579 iomem_reg_shift old_serial_port 0 48579 NULL
162463 +enable_so_vce_v2_0_bo_size_fndecl_48581 vce_v2_0_bo_size fndecl 0 48581 NULL
162464 +enable_so_tx_ring_size_bnx2x_48584 tx_ring_size bnx2x 0 48584 NULL
162465 +enable_so_backup_size_vmw_resource_48590 backup_size vmw_resource 0 48590 NULL
162466 +enable_so_il3945_hwrate_to_plcp_idx_fndecl_48592 il3945_hwrate_to_plcp_idx fndecl 0 48592 NULL
162467 +enable_so_driver_register_fndecl_48593 driver_register fndecl 0 48593 NULL
162468 +enable_so_len_isert_data_buf_48596 len isert_data_buf 0 48596 NULL
162469 +enable_so_wm_adsp_debugfs_wmfw_read_fndecl_48599 wm_adsp_debugfs_wmfw_read fndecl 3 48599 NULL
162470 +enable_so_args_count_of_phandle_args_48605 args_count of_phandle_args 0 48605 NULL
162471 +enable_so_datalen_atp_info_48607 datalen atp_info 0 48607 NULL
162472 +enable_so_count_e8390_pkt_hdr_48610 count e8390_pkt_hdr 0 48610 NULL
162473 +enable_so_mmc_test_prepare_mrq_fndecl_48612 mmc_test_prepare_mrq fndecl 7-6-4 48612 NULL
162474 +enable_so_read_file_spectral_fft_period_fndecl_48618 read_file_spectral_fft_period fndecl 3 48618 NULL
162475 +enable_so_num_streamids_arm_smmu_master_cfg_48625 num_streamids arm_smmu_master_cfg 0 48625 NULL
162476 +enable_so_xen_get_max_pages_fndecl_48626 xen_get_max_pages fndecl 0 48626 NULL
162477 +enable_so_crc_eof_offset_fcoe_percpu_s_48630 crc_eof_offset fcoe_percpu_s 0 48630 NULL
162478 +enable_so_bcma_of_get_irq_fndecl_48631 bcma_of_get_irq fndecl 0 48631 NULL
162479 +enable_so_ili210x_read_reg_fndecl_48632 ili210x_read_reg fndecl 4 48632 NULL nohasharray
162480 +enable_so_get_bridge_ifindices_fndecl_48632 get_bridge_ifindices fndecl 0 48632 &enable_so_ili210x_read_reg_fndecl_48632
162481 +enable_so_srcbusirq_mpc_intsrc_48636 srcbusirq mpc_intsrc 0 48636 NULL
162482 +enable_so_nsymbols_dsp_symbol_desc_48638 nsymbols dsp_symbol_desc 0 48638 NULL
162483 +enable_so_check_next_phase_fndecl_48641 check_next_phase fndecl 2 48641 NULL
162484 +enable_so_savemem_fndecl_48642 savemem fndecl 3 48642 NULL
162485 +enable_so_w_panel_info_48643 w panel_info 0 48643 NULL
162486 +enable_so_ipv6_flowlabel_opt_fndecl_48644 ipv6_flowlabel_opt fndecl 3 48644 NULL nohasharray
162487 +enable_so_slhc_init_fndecl_48644 slhc_init fndecl 1-2 48644 &enable_so_ipv6_flowlabel_opt_fndecl_48644
162488 +enable_so_origin_sectors_cache_48650 origin_sectors cache 0 48650 NULL
162489 +enable_so_libcfs_kvzalloc_cpt_fndecl_48651 libcfs_kvzalloc_cpt fndecl 3 48651 NULL
162490 +enable_so_pkt_len_eth_end_agg_rx_cqe_48658 pkt_len eth_end_agg_rx_cqe 0 48658 NULL nohasharray
162491 +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
162492 +enable_so_mmc_test_rnd_perf_fndecl_48660 mmc_test_rnd_perf fndecl 4 48660 NULL
162493 +enable_so_nn_rs_control_48667 nn rs_control 0 48667 NULL
162494 +enable_so_snd_seq_fifo_new_fndecl_48670 snd_seq_fifo_new fndecl 1 48670 NULL
162495 +enable_so_ep_out_if_usb_card_48678 ep_out if_usb_card 0 48678 NULL
162496 +enable_so_vscan_drm_display_mode_48680 vscan drm_display_mode 0 48680 NULL nohasharray
162497 +enable_so_ext4_bg_num_gdb_fndecl_48680 ext4_bg_num_gdb fndecl 0 48680 &enable_so_vscan_drm_display_mode_48680
162498 +enable_so_simple_transaction_set_fndecl_48684 simple_transaction_set fndecl 2 48684 NULL
162499 +enable_so_max_eqs_mlx4_dev_cap_48689 max_eqs mlx4_dev_cap 0 48689 NULL
162500 +enable_so_sb_dblocks_xfs_sb_48691 sb_dblocks xfs_sb 0 48691 NULL
162501 +enable_so_gf100_ram_create__fndecl_48692 gf100_ram_create_ fndecl 5 48692 NULL
162502 +enable_so_usCRTC_H_Disp__ATOM_MODE_TIMING_48694 usCRTC_H_Disp _ATOM_MODE_TIMING 0 48694 NULL nohasharray
162503 +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
162504 +enable_so_max_rds_rings_netxen_adapter_48699 max_rds_rings netxen_adapter 0 48699 NULL nohasharray
162505 +enable_so_make_cpu_key_fndecl_48699 make_cpu_key fndecl 3 48699 &enable_so_max_rds_rings_netxen_adapter_48699
162506 +enable_so_tx_load_fndecl_48707 tx_load fndecl 3 48707 NULL nohasharray
162507 +enable_so_cqe_ib_cq_init_attr_48707 cqe ib_cq_init_attr 0 48707 &enable_so_tx_load_fndecl_48707
162508 +enable_so_s_max_sge_ipath_qp_48710 s_max_sge ipath_qp 0 48710 NULL
162509 +enable_so_sect_count_hfsplus_sb_info_48715 sect_count hfsplus_sb_info 0 48715 NULL
162510 +enable_so_base_gfn_kvm_memory_slot_48716 base_gfn kvm_memory_slot 0 48716 NULL
162511 +enable_so_nci_send_cmd_fndecl_48717 nci_send_cmd fndecl 3 48717 NULL nohasharray
162512 +enable_so_num_cols_vardecl_arcfb_c_48717 num_cols vardecl_arcfb.c 0 48717 &enable_so_nci_send_cmd_fndecl_48717
162513 +enable_so_rx_max_cdc_ncm_ctx_48720 rx_max cdc_ncm_ctx 0 48720 NULL nohasharray
162514 +enable_so_mdata_ofs_cyttsp4_sysinfo_ofs_48720 mdata_ofs cyttsp4_sysinfo_ofs 0 48720 &enable_so_rx_max_cdc_ncm_ctx_48720
162515 +enable_so_ceph_tcp_recvmsg_fndecl_48722 ceph_tcp_recvmsg fndecl 0-3 48722 NULL
162516 +enable_so_garmin_write_bulk_fndecl_48732 garmin_write_bulk fndecl 3 48732 NULL
162517 +enable_so_can_dlc_can_frame_48738 can_dlc can_frame 0 48738 NULL
162518 +enable_so_bad_peb_count_ubi_device_48741 bad_peb_count ubi_device 0 48741 NULL nohasharray
162519 +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
162520 +enable_so_iommu_size_vardecl_amd_gart_64_c_48749 iommu_size vardecl_amd_gart_64.c 0 48749 NULL
162521 +enable_so_default_value_v4l2_ctrl_48751 default_value v4l2_ctrl 0 48751 NULL
162522 +enable_so_i40evf_allocate_virt_mem_d_fndecl_48753 i40evf_allocate_virt_mem_d fndecl 3 48753 NULL
162523 +enable_so_e_blkno_ocfs2_extent_rec_48756 e_blkno ocfs2_extent_rec 0 48756 NULL
162524 +enable_so_ide_rate_filter_fndecl_48764 ide_rate_filter fndecl 0 48764 NULL
162525 +enable_so_nfree_arena_info_48769 nfree arena_info 0 48769 NULL
162526 +enable_so_read_file_debug_fndecl_48771 read_file_debug fndecl 3 48771 NULL
162527 +enable_so_xmit_size_modem_info_48775 xmit_size modem_info 0 48775 NULL
162528 +enable_so_usable_leb_size_ubi_volume_info_48776 usable_leb_size ubi_volume_info 0 48776 NULL nohasharray
162529 +enable_so_profile_load_fndecl_48776 profile_load fndecl 3 48776 &enable_so_usable_leb_size_ubi_volume_info_48776
162530 +enable_so_cfg80211_mgmt_tx_status_fndecl_48777 cfg80211_mgmt_tx_status fndecl 4 48777 NULL
162531 +enable_so_acpi_ds_build_internal_package_obj_fndecl_48780 acpi_ds_build_internal_package_obj fndecl 3 48780 NULL
162532 +enable_so_height_drm_framebuffer_48781 height drm_framebuffer 0 48781 NULL
162533 +enable_so_value_len_jffs2_xattr_datum_48786 value_len jffs2_xattr_datum 0 48786 NULL nohasharray
162534 +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
162535 +enable_so_hva_to_pfn_fndecl_48786 hva_to_pfn fndecl 1 48786 &enable_so_mwifiex_host_to_card_mp_aggr_fndecl_48786
162536 +enable_so_head_len_cfg80211_beacon_data_48794 head_len cfg80211_beacon_data 0 48794 NULL
162537 +enable_so_unit_size_mspro_sys_info_48796 unit_size mspro_sys_info 0 48796 NULL
162538 +enable_so_len_spi_transfer_48802 len spi_transfer 0 48802 NULL
162539 +enable_so_ext3_max_size_fndecl_48803 ext3_max_size fndecl 0-1 48803 NULL
162540 +enable_so_twl6030_init_irq_fndecl_48804 twl6030_init_irq fndecl 0 48804 NULL
162541 +enable_so_iscsi_decode_text_input_fndecl_48807 iscsi_decode_text_input fndecl 4 48807 NULL
162542 +enable_so_dev_id_rbd_device_48813 dev_id rbd_device 0 48813 NULL
162543 +enable_so_len_pci_vpd_48814 len pci_vpd 0 48814 NULL
162544 +enable_so_r100_mm_rreg_fndecl_48823 r100_mm_rreg fndecl 0 48823 NULL
162545 +enable_so_sharpness_sd_gl860_48824 sharpness sd_gl860 0 48824 NULL
162546 +enable_so_endpoint_pvr2_stream_48828 endpoint pvr2_stream 0 48828 NULL
162547 +enable_so_xbofs_irda_skb_cb_48831 xbofs irda_skb_cb 0 48831 NULL nohasharray
162548 +enable_so_num_vring_48831 num vring 0 48831 &enable_so_xbofs_irda_skb_cb_48831
162549 +enable_so_mic_virtio_copy_from_user_fndecl_48832 mic_virtio_copy_from_user fndecl 3 48832 NULL
162550 +enable_so___generic_file_fsync_fndecl_48835 __generic_file_fsync fndecl 2-3 48835 NULL
162551 +enable_so_osst_init_aux_fndecl_48837 osst_init_aux fndecl 5-6-3 48837 NULL
162552 +enable_so_tx_tx_start_int_templates_read_fndecl_48839 tx_tx_start_int_templates_read fndecl 3 48839 NULL
162553 +enable_so_busnum_usb_bus_48843 busnum usb_bus 0 48843 NULL
162554 +enable_so_pcim_iomap_fndecl_48845 pcim_iomap fndecl 3 48845 NULL
162555 +enable_so_ieee80211_if_read_dot11MeshTTL_fndecl_48848 ieee80211_if_read_dot11MeshTTL fndecl 3 48848 NULL
162556 +enable_so_container_width_dmm_48858 container_width dmm 0 48858 NULL
162557 +enable_so_pagefault_single_data_segment_fndecl_48864 pagefault_single_data_segment fndecl 4 48864 NULL
162558 +enable_so_vmalloc_to_sg_fndecl_48865 vmalloc_to_sg fndecl 2 48865 NULL
162559 +enable_so_num_desc_i40e_vsi_48872 num_desc i40e_vsi 0 48872 NULL
162560 +enable_so_log_mtts_per_seg_vardecl_48880 log_mtts_per_seg vardecl 0 48880 NULL
162561 +enable_so_skb_ensure_writable_fndecl_48882 skb_ensure_writable fndecl 2 48882 NULL nohasharray
162562 +enable_so___copy_from_user_swizzled_fndecl_48882 __copy_from_user_swizzled fndecl 2-4 48882 &enable_so_skb_ensure_writable_fndecl_48882
162563 +enable_so_memblock_clear_hotplug_fndecl_48883 memblock_clear_hotplug fndecl 2-1 48883 NULL nohasharray
162564 +enable_so_diva_init_dma_map_fndecl_48883 diva_init_dma_map fndecl 3 48883 &enable_so_memblock_clear_hotplug_fndecl_48883
162565 +enable_so_cl_in_max_entry_size_mvumi_hs_page1_48890 cl_in_max_entry_size mvumi_hs_page1 0 48890 NULL
162566 +enable_so_radeon_ttm_gtt_read_fndecl_48900 radeon_ttm_gtt_read fndecl 3 48900 NULL
162567 +enable_so_nr_buffers_drm_nouveau_gem_pushbuf_48902 nr_buffers drm_nouveau_gem_pushbuf 0 48902 NULL
162568 +enable_so_nvkm_mxm_create__fndecl_48907 nvkm_mxm_create_ fndecl 4 48907 NULL
162569 +enable_so_offset_scatterlist_48908 offset scatterlist 0 48908 NULL nohasharray
162570 +enable_so_max_devices_support_mvumi_hs_page1_48908 max_devices_support mvumi_hs_page1 0 48908 &enable_so_offset_scatterlist_48908
162571 +enable_so_ucNumEntries__StateArray_48910 ucNumEntries _StateArray 0 48910 NULL
162572 +enable_so_iscsit_tpg_set_initiator_node_queue_depth_fndecl_48914 iscsit_tpg_set_initiator_node_queue_depth fndecl 3 48914 NULL
162573 +enable_so_s_groups_count_ext2_sb_info_48915 s_groups_count ext2_sb_info 0 48915 NULL
162574 +enable_so_tailsz_cifs_readdata_48919 tailsz cifs_readdata 0 48919 NULL
162575 +enable_so_minix_iget_fndecl_48927 minix_iget fndecl 2 48927 NULL
162576 +enable_so__scif_nodeqp_send_fndecl_48929 _scif_nodeqp_send fndecl 0 48929 NULL
162577 +enable_so_write_file_operations_48930 write file_operations 0 48930 NULL nohasharray
162578 +enable_so_rx_ring_count_ixgbevf_adapter_48930 rx_ring_count ixgbevf_adapter 0 48930 &enable_so_write_file_operations_48930
162579 +enable_so_iio_read_first_n_kfifo_fndecl_48933 iio_read_first_n_kfifo fndecl 2 48933 NULL
162580 +enable_so_min_inp_pixsize_fimc_variant_48943 min_inp_pixsize fimc_variant 0 48943 NULL nohasharray
162581 +enable_so_w1_reply_len_fndecl_48943 w1_reply_len fndecl 0 48943 &enable_so_min_inp_pixsize_fimc_variant_48943
162582 +enable_so_set_dma_reserve_fndecl_48948 set_dma_reserve fndecl 1 48948 NULL nohasharray
162583 +enable_so_start_mthca_resource_48948 start mthca_resource 0 48948 &enable_so_set_dma_reserve_fndecl_48948
162584 +enable_so_to_index_fndecl_48953 to_index fndecl 0 48953 NULL
162585 +enable_so_xt_alloc_table_info_fndecl_48956 xt_alloc_table_info fndecl 1 48956 NULL
162586 +enable_so_user_dlm_lock_fndecl_48959 user_dlm_lock fndecl 6 48959 NULL nohasharray
162587 +enable_so_wptr_radeon_ring_48959 wptr radeon_ring 0 48959 &enable_so_user_dlm_lock_fndecl_48959
162588 +enable_so_xfs_mru_cache_create_fndecl_48964 xfs_mru_cache_create fndecl 3 48964 NULL nohasharray
162589 +enable_so_num_requests_vardecl_48964 num_requests vardecl 0 48964 &enable_so_xfs_mru_cache_create_fndecl_48964
162590 +enable_so_SyS_io_setup_fndecl_48965 SyS_io_setup fndecl 1 48965 NULL
162591 +enable_so_block_size_sm_ftl_48967 block_size sm_ftl 0 48967 NULL
162592 +enable_so_key_algorithm_read_fndecl_48969 key_algorithm_read fndecl 3 48969 NULL
162593 +enable_so_rx_fndecl_48971 rx fndecl 4 48971 NULL
162594 +enable_so_twl_i2c_write_fndecl_48976 twl_i2c_write fndecl 0 48976 NULL nohasharray
162595 +enable_so_dma40_prep_dma_cyclic_fndecl_48976 dma40_prep_dma_cyclic fndecl 4-3 48976 &enable_so_twl_i2c_write_fndecl_48976
162596 +enable_so_mwifiex_hscfg_read_fndecl_48979 mwifiex_hscfg_read fndecl 3 48979 NULL
162597 +enable_so_pkt_overhead_pktgen_dev_48989 pkt_overhead pktgen_dev 0 48989 NULL
162598 +enable_so_sel_read_handle_unknown_fndecl_48990 sel_read_handle_unknown fndecl 3 48990 NULL
162599 +enable_so_iov_iter_npages_fndecl_49000 iov_iter_npages fndecl 0-2 49000 NULL nohasharray
162600 +enable_so_pid_task_struct_49000 pid task_struct 0 49000 &enable_so_iov_iter_npages_fndecl_49000
162601 +enable_so_rec_len_exofs_dir_entry_49002 rec_len exofs_dir_entry 0 49002 NULL
162602 +enable_so_c2_reg_user_mr_fndecl_49005 c2_reg_user_mr fndecl 2-3 49005 NULL nohasharray
162603 +enable_so_size_mlx4_en_tx_ring_49005 size mlx4_en_tx_ring 0 49005 &enable_so_c2_reg_user_mr_fndecl_49005
162604 +enable_so_ip_set_alloc_fndecl_49010 ip_set_alloc fndecl 1 49010 NULL nohasharray
162605 +enable_so_ioat3_dca_count_dca_slots_fndecl_49010 ioat3_dca_count_dca_slots fndecl 0 49010 &enable_so_ip_set_alloc_fndecl_49010
162606 +enable_so_bm_len_xfs_buf_map_49022 bm_len xfs_buf_map 0 49022 NULL
162607 +enable_so_rx_reset_counter_read_fndecl_49026 rx_reset_counter_read fndecl 3 49026 NULL
162608 +enable_so_usb_dmac_prep_slave_sg_fndecl_49027 usb_dmac_prep_slave_sg fndecl 3 49027 NULL
162609 +enable_so_size_vmw_otable_49032 size vmw_otable 0 49032 NULL
162610 +enable_so___ip6_append_data_fndecl_49037 __ip6_append_data fndecl 10-9 49037 NULL
162611 +enable_so_dev_id_rfcomm_dev_req_49039 dev_id rfcomm_dev_req 0 49039 NULL
162612 +enable_so_reg_r_fndecl_49040 reg_r fndecl 0 49040 NULL
162613 +enable_so_dwMaxVideoFrameSize_uvc_streaming_control_49044 dwMaxVideoFrameSize uvc_streaming_control 0 49044 NULL
162614 +enable_so_devno_skd_device_49051 devno skd_device 0 49051 NULL nohasharray
162615 +enable_so_devices_per_bus__MPT_ADAPTER_49051 devices_per_bus _MPT_ADAPTER 0 49051 &enable_so_devno_skd_device_49051
162616 +enable_so_cxacru_cm_fndecl_49052 cxacru_cm fndecl 4 49052 NULL
162617 +enable_so_iguanair_send_fndecl_49054 iguanair_send fndecl 2 49054 NULL
162618 +enable_so_route_key_size_nf_afinfo_49055 route_key_size nf_afinfo 0 49055 NULL
162619 +enable_so_ide_pio_bytes_fndecl_49063 ide_pio_bytes fndecl 4 49063 NULL
162620 +enable_so_cm_size_tp_params_49065 cm_size tp_params 0 49065 NULL
162621 +enable_so_transport_mtu_vardecl_ntb_transport_c_49067 transport_mtu vardecl_ntb_transport.c 0 49067 NULL
162622 +enable_so_do_writepage_fndecl_49068 do_writepage fndecl 2 49068 NULL
162623 +enable_so_irq_base_kvm_kpic_state_49073 irq_base kvm_kpic_state 0 49073 NULL
162624 +enable_so_ext3_quota_write_fndecl_49075 ext3_quota_write fndecl 4-5 49075 NULL
162625 +enable_so_iwl_dbgfs_ucode_rx_stats_read_fndecl_49076 iwl_dbgfs_ucode_rx_stats_read fndecl 3 49076 NULL
162626 +enable_so_ccid_hc_tx_obj_size_ccid_operations_49077 ccid_hc_tx_obj_size ccid_operations 0 49077 NULL
162627 +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
162628 +enable_so_tty_major_vardecl_hso_c_49084 tty_major vardecl_hso.c 0 49084 NULL
162629 +enable_so_dev_priv_size_drm_buf_49086 dev_priv_size drm_buf 0 49086 NULL
162630 +enable_so_optrom_region_size_qla_hw_data_49087 optrom_region_size qla_hw_data 0 49087 NULL
162631 +enable_so_ocfs2_find_leaf_fndecl_49090 ocfs2_find_leaf fndecl 0 49090 NULL nohasharray
162632 +enable_so_bi_vcnt_bio_49090 bi_vcnt bio 0 49090 &enable_so_ocfs2_find_leaf_fndecl_49090
162633 +enable_so_ocfs2_mv_xattr_bucket_cross_cluster_fndecl_49091 ocfs2_mv_xattr_bucket_cross_cluster fndecl 5-6 49091 NULL
162634 +enable_so_end_sector_dev_info_49096 end_sector dev_info 0 49096 NULL nohasharray
162635 +enable_so_misc_sbp_command_block_orb_49096 misc sbp_command_block_orb 0 49096 &enable_so_end_sector_dev_info_49096
162636 +enable_so_mt76_mac_process_tx_rate_fndecl_49097 mt76_mac_process_tx_rate fndecl 2 49097 NULL
162637 +enable_so_u132_hcd_interrupt_recv_fndecl_49098 u132_hcd_interrupt_recv fndecl 4 49098 NULL
162638 +enable_so_usb_stor_acquire_resources_fndecl_49100 usb_stor_acquire_resources fndecl 0 49100 NULL nohasharray
162639 +enable_so_cm4040_write_fndecl_49100 cm4040_write fndecl 3 49100 &enable_so_usb_stor_acquire_resources_fndecl_49100
162640 +enable_so_xdr_align_pages_fndecl_49102 xdr_align_pages fndecl 0-2 49102 NULL
162641 +enable_so_ri_super_root_nilfs_recovery_info_49105 ri_super_root nilfs_recovery_info 0 49105 NULL
162642 +enable_so_vmci_qpair_alloc_fndecl_49107 vmci_qpair_alloc fndecl 4-3 49107 NULL nohasharray
162643 +enable_so_qnx6_block_map_fndecl_49107 qnx6_block_map fndecl 0 49107 &enable_so_vmci_qpair_alloc_fndecl_49107
162644 +enable_so_ino_kernfs_node_49113 ino kernfs_node 0 49113 NULL
162645 +enable_so_alloc_rbio_fndecl_49128 alloc_rbio fndecl 3 49128 NULL
162646 +enable_so_m_ialloc_min_blks_xfs_mount_49129 m_ialloc_min_blks xfs_mount 0 49129 NULL
162647 +enable_so_mad_seg_size_ib_mad_recv_wc_49134 mad_seg_size ib_mad_recv_wc 0 49134 NULL
162648 +enable_so_neo_init_hw_fndecl_49135 neo_init_hw fndecl 0 49135 NULL
162649 +enable_so_snd_pcm_hw_param_min_fndecl_49139 snd_pcm_hw_param_min fndecl 4 49139 NULL
162650 +enable_so_batch_len_drm_i915_gem_execbuffer2_49145 batch_len drm_i915_gem_execbuffer2 0 49145 NULL
162651 +enable_so_fll_out_wm8900_priv_49147 fll_out wm8900_priv 0 49147 NULL
162652 +enable_so_max_dev_mdp_superblock_1_49148 max_dev mdp_superblock_1 0 49148 NULL
162653 +enable_so_il4965_rate_n_flags_from_tbl_fndecl_49149 il4965_rate_n_flags_from_tbl fndecl 0 49149 NULL
162654 +enable_so_ufx_reg_clear_and_set_bits_fndecl_49150 ufx_reg_clear_and_set_bits fndecl 0 49150 NULL
162655 +enable_so_ecryptfs_inode_newsize_ok_fndecl_49153 ecryptfs_inode_newsize_ok fndecl 2 49153 NULL
162656 +enable_so_tx_tr_cfv_info_49171 tx_tr cfv_info 0 49171 NULL
162657 +enable_so_ipr_alloc_ucode_buffer_fndecl_49172 ipr_alloc_ucode_buffer fndecl 1 49172 NULL
162658 +enable_so_nilfs_sufile_do_cancel_free_fndecl_49183 nilfs_sufile_do_cancel_free fndecl 2 49183 NULL nohasharray
162659 +enable_so_allocate_probes_fndecl_49183 allocate_probes fndecl 1 49183 &enable_so_nilfs_sufile_do_cancel_free_fndecl_49183
162660 +enable_so_s_last_ino_logfs_super_49185 s_last_ino logfs_super 0 49185 NULL
162661 +enable_so_discard_next_dnode_fndecl_49188 discard_next_dnode fndecl 2 49188 NULL
162662 +enable_so_len_fb_cmap_user_49195 len fb_cmap_user 0 49195 NULL
162663 +enable_so_fsl_edma_prep_dma_cyclic_fndecl_49197 fsl_edma_prep_dma_cyclic fndecl 4-2-3 49197 NULL nohasharray
162664 +enable_so_of_get_child_count_fndecl_49197 of_get_child_count fndecl 0 49197 &enable_so_fsl_edma_prep_dma_cyclic_fndecl_49197
162665 +enable_so_offset_page_chunk_49201 offset page_chunk 0 49201 NULL
162666 +enable_so_ocrdma_dbgfs_ops_read_fndecl_49211 ocrdma_dbgfs_ops_read fndecl 3 49211 NULL
162667 +enable_so_osst_read_fndecl_49214 osst_read fndecl 3 49214 NULL
162668 +enable_so_i_pos_low_fat_fid_49216 i_pos_low fat_fid 0 49216 NULL nohasharray
162669 +enable_so_nleft_ide_cmd_49216 nleft ide_cmd 0 49216 &enable_so_i_pos_low_fat_fid_49216 nohasharray
162670 +enable_so_usbnet_read_cmd_fndecl_49216 usbnet_read_cmd fndecl 7 49216 &enable_so_nleft_ide_cmd_49216
162671 +enable_so_rx_xfr_hint_trig_read_fndecl_49224 rx_xfr_hint_trig_read fndecl 3 49224 NULL
162672 +enable_so_offset_rq_map_data_49234 offset rq_map_data 0 49234 NULL
162673 +enable_so_rs_sta_dbgfs_scale_table_read_fndecl_49237 rs_sta_dbgfs_scale_table_read fndecl 3 49237 NULL
162674 +enable_so_ext_ramdisk_image_boot_params_49238 ext_ramdisk_image boot_params 0 49238 NULL
162675 +enable_so_mos7840_write_fndecl_49240 mos7840_write fndecl 4 49240 NULL
162676 +enable_so_persistent_ram_iomap_fndecl_49243 persistent_ram_iomap fndecl 2-1 49243 NULL
162677 +enable_so_ext2_fiemap_fndecl_49244 ext2_fiemap fndecl 4 49244 NULL
162678 +enable_so_dmpt_entry_sz_mlx4_dev_cap_49245 dmpt_entry_sz mlx4_dev_cap 0 49245 NULL
162679 +enable_so_xfs_map_buffer_fndecl_49246 xfs_map_buffer fndecl 4 49246 NULL
162680 +enable_so_mppe_compress_fndecl_49248 mppe_compress fndecl 4 49248 NULL
162681 +enable_so_nfs_file_llseek_fndecl_49249 nfs_file_llseek fndecl 2 49249 NULL
162682 +enable_so_rdmarc_shift_mlx4_qp_table_49259 rdmarc_shift mlx4_qp_table 0 49259 NULL
162683 +enable_so_di_size_qnx4_inode_entry_49263 di_size qnx4_inode_entry 0 49263 NULL
162684 +enable_so_rate_floppy_struct_49273 rate floppy_struct 0 49273 NULL
162685 +enable_so_dwDefaultFrameInterval_uvc_frame_49276 dwDefaultFrameInterval uvc_frame 0 49276 NULL
162686 +enable_so_name_len_audit_names_49277 name_len audit_names 0 49277 NULL
162687 +enable_so_ib_get_mad_data_offset_fndecl_49283 ib_get_mad_data_offset fndecl 0 49283 NULL
162688 +enable_so_idetape_blkdev_ioctl_fndecl_49292 idetape_blkdev_ioctl fndecl 0 49292 NULL
162689 +enable_so_alloc_dev_fndecl_49294 alloc_dev fndecl 1 49294 NULL nohasharray
162690 +enable_so_header_length_ipr_ucode_image_header_49294 header_length ipr_ucode_image_header 0 49294 &enable_so_alloc_dev_fndecl_49294
162691 +enable_so_frag_threshold_ipw2100_priv_49298 frag_threshold ipw2100_priv 0 49298 NULL
162692 +enable_so_bTransferSegment_wa_xfer_result_49303 bTransferSegment wa_xfer_result 0 49303 NULL
162693 +enable_so_SAL_nasids_size_xpc_rsvd_page_49304 SAL_nasids_size xpc_rsvd_page 0 49304 NULL
162694 +enable_so_splice_direct_to_actor_fndecl_49310 splice_direct_to_actor fndecl 0 49310 NULL
162695 +enable_so_membase_avmcard_49314 membase avmcard 0 49314 NULL
162696 +enable_so_get_chars_fndecl_49318 get_chars fndecl 3 49318 NULL
162697 +enable_so_filternum_dmxdev_49322 filternum dmxdev 0 49322 NULL nohasharray
162698 +enable_so_via_cputemp_device_add_fndecl_49322 via_cputemp_device_add fndecl 1 49322 &enable_so_filternum_dmxdev_49322
162699 +enable_so_fwnet_incoming_packet_fndecl_49327 fwnet_incoming_packet fndecl 3 49327 NULL
162700 +enable_so_ocfs2_release_clusters_fndecl_49328 ocfs2_release_clusters fndecl 4 49328 NULL
162701 +enable_so_length_iwl_wipan_noa_data_49332 length iwl_wipan_noa_data 0 49332 NULL
162702 +enable_so_cmnd_res_ep_vub300_mmc_host_49334 cmnd_res_ep vub300_mmc_host 0 49334 NULL
162703 +enable_so_event_rx_mem_empty_read_fndecl_49336 event_rx_mem_empty_read fndecl 3 49336 NULL
162704 +enable_so_get_data_block_fiemap_fndecl_49346 get_data_block_fiemap fndecl 2 49346 NULL nohasharray
162705 +enable_so_db_handle_buf_size_vmci_ctx_notify_recv_info_49346 db_handle_buf_size vmci_ctx_notify_recv_info 0 49346 &enable_so_get_data_block_fiemap_fndecl_49346
162706 +enable_so_mute_bttv_49358 mute bttv 0 49358 NULL
162707 +enable_so_num_msix_entries_qib_chip_specific_49373 num_msix_entries qib_chip_specific 0 49373 NULL
162708 +enable_so_fsbcount_xfs_da_geometry_49380 fsbcount xfs_da_geometry 0 49380 NULL
162709 +enable_so_short_mark_sd_49388 short_mark sd 0 49388 NULL
162710 +enable_so_pci_iov_resource_size_fndecl_49389 pci_iov_resource_size fndecl 0 49389 NULL
162711 +enable_so_exofs_nfs_get_inode_fndecl_49391 exofs_nfs_get_inode fndecl 2 49391 NULL
162712 +enable_so_ecryptfs_read_lower_fndecl_49392 ecryptfs_read_lower fndecl 3 49392 NULL
162713 +enable_so_current_font_height_sisusb_usb_data_49394 current_font_height sisusb_usb_data 0 49394 NULL nohasharray
162714 +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
162715 +enable_so_send_cmd_iwl_trans_ops_49394 send_cmd iwl_trans_ops 0 49394 &enable_so_usb_ftdi_elan_edset_empty_fndecl_49394
162716 +enable_so_tty_prepare_flip_string_fndecl_49408 tty_prepare_flip_string fndecl 3 49408 NULL
162717 +enable_so_ss_next_nilfs_segment_summary_49410 ss_next nilfs_segment_summary 0 49410 NULL nohasharray
162718 +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
162719 +enable_so_lstcon_group_list_fndecl_49413 lstcon_group_list fndecl 2 49413 NULL
162720 +enable_so_base_doorbell_index_nes_device_49415 base_doorbell_index nes_device 0 49415 NULL nohasharray
162721 +enable_so_size_efx_farch_filter_table_49415 size efx_farch_filter_table 0 49415 &enable_so_base_doorbell_index_nes_device_49415
162722 +enable_so_bio_chain_clone_range_fndecl_49420 bio_chain_clone_range fndecl 3 49420 NULL
162723 +enable_so_tipc_msg_build_fndecl_49424 tipc_msg_build fndecl 4-5 49424 NULL
162724 +enable_so_ds_out_channels_hdsp_49429 ds_out_channels hdsp 0 49429 NULL
162725 +enable_so_onenand_write_oob_fndecl_49431 onenand_write_oob fndecl 2 49431 NULL
162726 +enable_so_fwnet_pd_new_fndecl_49432 fwnet_pd_new fndecl 4 49432 NULL nohasharray
162727 +enable_so_set_run_fndecl_49432 set_run fndecl 2 49432 &enable_so_fwnet_pd_new_fndecl_49432 nohasharray
162728 +enable_so_bytenr_tree_block_49432 bytenr tree_block 0 49432 &enable_so_set_run_fndecl_49432 nohasharray
162729 +enable_so_error_error_frame_read_fndecl_49432 error_error_frame_read fndecl 3 49432 &enable_so_bytenr_tree_block_49432
162730 +enable_so_main_segments_f2fs_sm_info_49433 main_segments f2fs_sm_info 0 49433 NULL
162731 +enable_so_nr_ndevs_vardecl_af_netrom_c_49435 nr_ndevs vardecl_af_netrom.c 0 49435 NULL
162732 +enable_so_mthca_array_init_fndecl_49440 mthca_array_init fndecl 2 49440 NULL
162733 +enable_so_fw_device_op_read_fndecl_49445 fw_device_op_read fndecl 3 49445 NULL
162734 +enable_so_perf_output_copy_fndecl_49448 perf_output_copy fndecl 3 49448 NULL
162735 +enable_so_global_irq_acpi_madt_interrupt_override_49451 global_irq acpi_madt_interrupt_override 0 49451 NULL
162736 +enable_so_get_setup_data_total_num_fndecl_49455 get_setup_data_total_num fndecl 1 49455 NULL nohasharray
162737 +enable_so_dwc3_readl_fndecl_49455 dwc3_readl fndecl 0 49455 &enable_so_get_setup_data_total_num_fndecl_49455
162738 +enable_so_rtl2832_regmap_write_fndecl_49456 rtl2832_regmap_write fndecl 3 49456 NULL
162739 +enable_so_dma_push_rx_fndecl_49462 dma_push_rx fndecl 2 49462 NULL
162740 +enable_so_minix_inode_by_name_fndecl_49464 minix_inode_by_name fndecl 0 49464 NULL
162741 +enable_so_NumberOfPorts_mpt2sas_facts_49465 NumberOfPorts mpt2sas_facts 0 49465 NULL nohasharray
162742 +enable_so_ch_count_srp_target_port_49465 ch_count srp_target_port 0 49465 &enable_so_NumberOfPorts_mpt2sas_facts_49465
162743 +enable_so_usb_tx_block_fndecl_49466 usb_tx_block fndecl 3 49466 NULL
162744 +enable_so_broadsheetfb_write_fndecl_49467 broadsheetfb_write fndecl 3 49467 NULL
162745 +enable_so_len_r6040_descriptor_49471 len r6040_descriptor 0 49471 NULL
162746 +enable_so_s_cblkno_ufs_sb_private_info_49472 s_cblkno ufs_sb_private_info 0 49472 NULL
162747 +enable_so_xen_hvm_config_fndecl_49473 xen_hvm_config fndecl 2 49473 NULL
162748 +enable_so_ks8995_read_fndecl_49475 ks8995_read fndecl 4 49475 NULL
162749 +enable_so_nf_nat_icmpv6_reply_translation_fndecl_49476 nf_nat_icmpv6_reply_translation fndecl 5 49476 NULL nohasharray
162750 +enable_so_ivtvfb_write_fndecl_49476 ivtvfb_write fndecl 3 49476 &enable_so_nf_nat_icmpv6_reply_translation_fndecl_49476
162751 +enable_so_make_rx_response_fndecl_49477 make_rx_response fndecl 5-4-3 49477 NULL
162752 +enable_so_mc_mask_amdgpu_mc_49478 mc_mask amdgpu_mc 0 49478 NULL nohasharray
162753 +enable_so_rpc_max_payload_fndecl_49478 rpc_max_payload fndecl 0 49478 &enable_so_mc_mask_amdgpu_mc_49478
162754 +enable_so_max_queue_depth_vardecl_mpt2sas_base_c_49479 max_queue_depth vardecl_mpt2sas_base.c 0 49479 NULL
162755 +enable_so_ea_foreach_i_fndecl_49487 ea_foreach_i fndecl 0 49487 NULL
162756 +enable_so_i2c_readn_fndecl_49490 i2c_readn fndecl 4 49490 NULL
162757 +enable_so_xfs_file_llseek_fndecl_49492 xfs_file_llseek fndecl 2 49492 NULL
162758 +enable_so_din_xfer_len_sg_io_v4_49498 din_xfer_len sg_io_v4 0 49498 NULL
162759 +enable_so_smb_send_fndecl_49500 smb_send fndecl 3 49500 NULL
162760 +enable_so_usCRTC_H_Total__ATOM_MODE_TIMING_49501 usCRTC_H_Total _ATOM_MODE_TIMING 0 49501 NULL
162761 +enable_so_intel_framebuffer_create_for_mode_fndecl_49508 intel_framebuffer_create_for_mode fndecl 4 49508 NULL nohasharray
162762 +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
162763 +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
162764 +enable_so_add_tty_fndecl_49508 add_tty fndecl 1 49508 &enable_so___bnx2x_get_preset_regs_len_fndecl_49508
162765 +enable_so_tx_blk_size_rsi_91x_sdiodev_49511 tx_blk_size rsi_91x_sdiodev 0 49511 NULL
162766 +enable_so_usbvision_write_reg_irq_fndecl_49516 usbvision_write_reg_irq fndecl 4 49516 NULL
162767 +enable_so_buf_size_sge_fl_49517 buf_size sge_fl 0 49517 NULL
162768 +enable_so_Zmin_hfc_multi_49520 Zmin hfc_multi 0 49520 NULL
162769 +enable_so_log_mtts_per_seg_vardecl_mthca_main_c_49524 log_mtts_per_seg vardecl_mthca_main.c 0 49524 NULL
162770 +enable_so_num_eps_bdc_49525 num_eps bdc 0 49525 NULL nohasharray
162771 +enable_so_datablob_hmac_append_fndecl_49525 datablob_hmac_append fndecl 3 49525 &enable_so_num_eps_bdc_49525
162772 +enable_so_mtt_entry_sz_mlx4_caps_49531 mtt_entry_sz mlx4_caps 0 49531 NULL
162773 +enable_so_num_connector_drm_atomic_state_49542 num_connector drm_atomic_state 0 49542 NULL
162774 +enable_so_disk_offset_pnfs_block_dev_map_49546 disk_offset pnfs_block_dev_map 0 49546 NULL
162775 +enable_so_oobavail_nand_ecclayout_49548 oobavail nand_ecclayout 0 49548 NULL
162776 +enable_so_lpfc_debugfs_hbqinfo_data_fndecl_49551 lpfc_debugfs_hbqinfo_data fndecl 0 49551 NULL
162777 +enable_so_ioremap_wt_fndecl_49562 ioremap_wt fndecl 2-1 49562 NULL
162778 +enable_so_nrs_num_pols_ptlrpc_nrs_49564 nrs_num_pols ptlrpc_nrs 0 49564 NULL
162779 +enable_so_nilfs_mdt_delete_block_fndecl_49565 nilfs_mdt_delete_block fndecl 2 49565 NULL
162780 +enable_so_max_cm_mtu_ipoib_cm_dev_priv_49566 max_cm_mtu ipoib_cm_dev_priv 0 49566 NULL
162781 +enable_so_xfs_insert_file_space_fndecl_49569 xfs_insert_file_space fndecl 2-3 49569 NULL
162782 +enable_so_ncp_request2_fndecl_49589 ncp_request2 fndecl 4 49589 NULL
162783 +enable_so_ssid_length_beacon_format_49591 ssid_length beacon_format 0 49591 NULL
162784 +enable_so_xfs_rtbuf_get_fndecl_49592 xfs_rtbuf_get fndecl 3 49592 NULL
162785 +enable_so_width_vim2m_q_data_49600 width vim2m_q_data 0 49600 NULL
162786 +enable_so_iwch_alloc_fastreg_pbl_fndecl_49610 iwch_alloc_fastreg_pbl fndecl 2 49610 NULL
162787 +enable_so_pt_write_fndecl_49612 pt_write fndecl 3 49612 NULL
162788 +enable_so_hsync_start_drm_display_mode_49613 hsync_start drm_display_mode 0 49613 NULL nohasharray
162789 +enable_so_start_drm_mm_node_49613 start drm_mm_node 0 49613 &enable_so_hsync_start_drm_display_mode_49613
162790 +enable_so_ocfs2_sync_file_fndecl_49614 ocfs2_sync_file fndecl 2-3 49614 NULL
162791 +enable_so_spare_bytes_per_page_nand_onfi_params_49617 spare_bytes_per_page nand_onfi_params 0 49617 NULL
162792 +enable_so_lengthExtendedAttr_extendedFileEntry_49618 lengthExtendedAttr extendedFileEntry 0 49618 NULL
162793 +enable_so_write_cmd_usb_fndecl_49619 write_cmd_usb fndecl 3 49619 NULL
162794 +enable_so_ieee80211_tdls_add_setup_cfm_ies_fndecl_49620 ieee80211_tdls_add_setup_cfm_ies fndecl 6 49620 NULL
162795 +enable_so_size_ethtool_perm_addr_49621 size ethtool_perm_addr 0 49621 NULL
162796 +enable_so_reg_read_range_fndecl_49623 reg_read_range fndecl 4-0 49623 NULL nohasharray
162797 +enable_so_dwc2_max_desc_num_fndecl_49623 dwc2_max_desc_num fndecl 0 49623 &enable_so_reg_read_range_fndecl_49623
162798 +enable_so_end_async_cow_49625 end async_cow 0 49625 NULL nohasharray
162799 +enable_so_nn_nvme_id_ctrl_49625 nn nvme_id_ctrl 0 49625 &enable_so_end_async_cow_49625
162800 +enable_so_ath10k_write_simulate_fw_crash_fndecl_49628 ath10k_write_simulate_fw_crash fndecl 3 49628 NULL
162801 +enable_so_rx_rx_frame_checksum_read_fndecl_49631 rx_rx_frame_checksum_read fndecl 3 49631 NULL
162802 +enable_so_srsize_brcmf_chip_49639 srsize brcmf_chip 0 49639 NULL
162803 +enable_so_list_size_of_flash_49643 list_size of_flash 0 49643 NULL
162804 +enable_so_stride_mlx4_en_priv_49644 stride mlx4_en_priv 0 49644 NULL
162805 +enable_so_start_io_failure_record_49645 start io_failure_record 0 49645 NULL
162806 +enable_so_align_resource_constraint_49647 align resource_constraint 0 49647 NULL nohasharray
162807 +enable_so_iocbq_lookup_len_lpfc_sli_49647 iocbq_lookup_len lpfc_sli 0 49647 &enable_so_align_resource_constraint_49647
162808 +enable_so_il4965_rs_get_adjacent_rate_fndecl_49653 il4965_rs_get_adjacent_rate fndecl 0-2 49653 NULL nohasharray
162809 +enable_so_il4965_rs_get_tbl_info_from_mcs_fndecl_49653 il4965_rs_get_tbl_info_from_mcs fndecl 1 49653 &enable_so_il4965_rs_get_adjacent_rate_fndecl_49653
162810 +enable_so_mlx4_alloc_icm_pages_fndecl_49658 mlx4_alloc_icm_pages fndecl 2 49658 NULL
162811 +enable_so_dwMaxPayloadTransferSize_uvc_streaming_control_49668 dwMaxPayloadTransferSize uvc_streaming_control 0 49668 NULL
162812 +enable_so_bytes_ubi_leb_change_req_49669 bytes ubi_leb_change_req 0 49669 NULL
162813 +enable_so_size_unit_element_struct_49673 size unit_element_struct 0 49673 NULL
162814 +enable_so_intel_gtt_map_memory_fndecl_49677 intel_gtt_map_memory fndecl 2 49677 NULL
162815 +enable_so_port_priv_size_team_mode_49682 port_priv_size team_mode 0 49682 NULL
162816 +enable_so_clk_core_get_rate_nolock_fndecl_49685 clk_core_get_rate_nolock fndecl 0 49685 NULL
162817 +enable_so_subsampling_s5p_jpeg_fmt_49688 subsampling s5p_jpeg_fmt 0 49688 NULL nohasharray
162818 +enable_so___seq_open_private_fndecl_49688 __seq_open_private fndecl 3 49688 &enable_so_subsampling_s5p_jpeg_fmt_49688
162819 +enable_so_report_size_iowarrior_49692 report_size iowarrior 0 49692 NULL nohasharray
162820 +enable_so_set_extent_bit_fndecl_49692 set_extent_bit fndecl 3-2 49692 &enable_so_report_size_iowarrior_49692
162821 +enable_so_slider_num_ad714x_platform_data_49695 slider_num ad714x_platform_data 0 49695 NULL
162822 +enable_so_security_inode_listxattr_fndecl_49699 security_inode_listxattr fndecl 0 49699 NULL
162823 +enable_so_s_segshift_logfs_super_49707 s_segshift logfs_super 0 49707 NULL
162824 +enable_so_pg_write_fndecl_49709 pg_write fndecl 3 49709 NULL
162825 +enable_so_end_resource_49712 end resource 0 49712 NULL
162826 +enable_so_fuse_readpages_fndecl_49714 fuse_readpages fndecl 4 49714 NULL
162827 +enable_so_brd_init_one_fndecl_49718 brd_init_one fndecl 1 49718 NULL
162828 +enable_so_xfs_iext_remove_direct_fndecl_49723 xfs_iext_remove_direct fndecl 3 49723 NULL
162829 +enable_so_sof_len_sd_49729 sof_len sd 0 49729 NULL
162830 +enable_so_num_uars_mthca_limits_49735 num_uars mthca_limits 0 49735 NULL
162831 +enable_so_pyra_sysfs_read_fndecl_49736 pyra_sysfs_read fndecl 6 49736 NULL
162832 +enable_so_wqe_size_ib_uverbs_post_recv_49738 wqe_size ib_uverbs_post_recv 0 49738 NULL
162833 +enable_so_xfs_bmap_split_extent_fndecl_49740 xfs_bmap_split_extent fndecl 2 49740 NULL
162834 +enable_so_kernfs_fop_read_fndecl_49745 kernfs_fop_read fndecl 3 49745 NULL
162835 +enable_so_ts_packet_size_saa7164_port_49752 ts_packet_size saa7164_port 0 49752 NULL
162836 +enable_so_hpfs_add_dirent_fndecl_49754 hpfs_add_dirent fndecl 3 49754 NULL
162837 +enable_so_provider_in_words_ib_uverbs_ex_cmd_hdr_49757 provider_in_words ib_uverbs_ex_cmd_hdr 0 49757 NULL
162838 +enable_so_ngroups_netlink_sock_49758 ngroups netlink_sock 0 49758 NULL
162839 +enable_so_match_size_compat_ebt_entry_mwt_49763 match_size compat_ebt_entry_mwt 0 49763 NULL
162840 +enable_so_perf_read_fndecl_49769 perf_read fndecl 3 49769 NULL
162841 +enable_so_nl80211_send_roamed_fndecl_49770 nl80211_send_roamed fndecl 5-7 49770 NULL
162842 +enable_so_dwFrameInterval_uvc_streaming_control_49771 dwFrameInterval uvc_streaming_control 0 49771 NULL
162843 +enable_so_cifs_sign_smbv_fndecl_49776 cifs_sign_smbv fndecl 2 49776 NULL
162844 +enable_so_rtw_add_beacon_fndecl_49778 rtw_add_beacon fndecl 3-5 49778 NULL
162845 +enable_so_sprom_size_ssb_bus_49781 sprom_size ssb_bus 0 49781 NULL
162846 +enable_so_page2_len_ses_device_49783 page2_len ses_device 0 49783 NULL
162847 +enable_so_scale_factor_s5p_jpeg_ctx_49787 scale_factor s5p_jpeg_ctx 0 49787 NULL
162848 +enable_so_seeks_shrinker_49793 seeks shrinker 0 49793 NULL
162849 +enable_so_nilfs_mdt_init_fndecl_49794 nilfs_mdt_init fndecl 3 49794 NULL
162850 +enable_so_outlen_mimd_49796 outlen mimd 0 49796 NULL
162851 +enable_so_write_file_wow_fndecl_49799 write_file_wow fndecl 3 49799 NULL
162852 +enable_so_substream_alloc_pages_fndecl_49800 substream_alloc_pages fndecl 3 49800 NULL
162853 +enable_so_n_mmc_ies_whc_49802 n_mmc_ies whc 0 49802 NULL
162854 +enable_so_ocfs2_zero_partial_clusters_fndecl_49803 ocfs2_zero_partial_clusters fndecl 2-3 49803 NULL
162855 +enable_so_max_fib_size_aac_dev_49804 max_fib_size aac_dev 0 49804 NULL
162856 +enable_so_logfs_seek_hole_fndecl_49805 logfs_seek_hole fndecl 0-2 49805 NULL
162857 +enable_so_num_uar_mthca_profile_49807 num_uar mthca_profile 0 49807 NULL
162858 +enable_so___free_pages_boot_core_fndecl_49810 __free_pages_boot_core fndecl 3 49810 NULL
162859 +enable_so_fat_chain_add_fndecl_49812 fat_chain_add fndecl 2 49812 NULL
162860 +enable_so_fat_bits_msdos_sb_info_49817 fat_bits msdos_sb_info 0 49817 NULL
162861 +enable_so_reserved_fat_boot_sector_49818 reserved fat_boot_sector 0 49818 NULL
162862 +enable_so_nr_pages_flash_info_49822 nr_pages flash_info 0 49822 NULL
162863 +enable_so_elemsize_nft_set_ops_49830 elemsize nft_set_ops 0 49830 NULL
162864 +enable_so_response_length_ib_uverbs_ex_query_device_resp_49831 response_length ib_uverbs_ex_query_device_resp 0 49831 NULL
162865 +enable_so_wl12xx_cmd_build_probe_req_fndecl_49835 wl12xx_cmd_build_probe_req fndecl 10-8-6 49835 NULL
162866 +enable_so_read_file_queue_fndecl_49836 read_file_queue fndecl 3 49836 NULL
162867 +enable_so_fifosize_uart_port_49843 fifosize uart_port 0 49843 NULL
162868 +enable_so_read_endpoint_s2255_dev_49848 read_endpoint s2255_dev 0 49848 NULL
162869 +enable_so_scsi_send_eh_cmnd_fndecl_49849 scsi_send_eh_cmnd fndecl 5 49849 NULL
162870 +enable_so_bytes_per_word_tegra_spi_data_49851 bytes_per_word tegra_spi_data 0 49851 NULL
162871 +enable_so_plen_c4iw_ep_49856 plen c4iw_ep 0 49856 NULL nohasharray
162872 +enable_so_vol_cdev_write_fndecl_49856 vol_cdev_write fndecl 3 49856 &enable_so_plen_c4iw_ep_49856
162873 +enable_so_gfs2_ea_find_fndecl_49858 gfs2_ea_find fndecl 0 49858 NULL
162874 +enable_so_kempld_gpio_pincount_fndecl_49860 kempld_gpio_pincount fndecl 0 49860 NULL
162875 +enable_so___kfifo_init_fndecl_49861 __kfifo_init fndecl 4 49861 NULL
162876 +enable_so_si_get_csb_size_fndecl_49864 si_get_csb_size fndecl 0 49864 NULL
162877 +enable_so_bucket_bits_cache_set_49869 bucket_bits cache_set 0 49869 NULL
162878 +enable_so_record_inode_for_nocow_fndecl_49872 record_inode_for_nocow fndecl 2 49872 NULL
162879 +enable_so_waiters_read_fndecl_49877 waiters_read fndecl 3 49877 NULL
162880 +enable_so___i915_error_seek_fndecl_49882 __i915_error_seek fndecl 2 49882 NULL nohasharray
162881 +enable_so_isdn_add_channels_fndecl_49882 isdn_add_channels fndecl 3 49882 &enable_so___i915_error_seek_fndecl_49882
162882 +enable_so_path_listxattr_fndecl_49894 path_listxattr fndecl 3 49894 NULL nohasharray
162883 +enable_so_walk_iomem_res_fndecl_49894 walk_iomem_res fndecl 4-3 49894 &enable_so_path_listxattr_fndecl_49894
162884 +enable_so_sg_alloc_table_fndecl_49895 sg_alloc_table fndecl 0-2 49895 NULL nohasharray
162885 +enable_so_snd_vx_create_fndecl_49895 snd_vx_create fndecl 4 49895 &enable_so_sg_alloc_table_fndecl_49895
162886 +enable_so_offset_drm_i915_gem_pwrite_49896 offset drm_i915_gem_pwrite 0 49896 NULL nohasharray
162887 +enable_so_max_sds_rings_netxen_adapter_49896 max_sds_rings netxen_adapter 0 49896 &enable_so_offset_drm_i915_gem_pwrite_49896
162888 +enable_so_max_desc_sz_mthca_dev_lim_49905 max_desc_sz mthca_dev_lim 0 49905 NULL
162889 +enable_so_block_descriptor_length_scsi_mode_data_49918 block_descriptor_length scsi_mode_data 0 49918 NULL
162890 +enable_so_current_size_ipg_jumbo_49923 current_size ipg_jumbo 0 49923 NULL
162891 +enable_so_SyS_select_fndecl_49930 SyS_select fndecl 1 49930 NULL
162892 +enable_so_skd_max_queue_depth_vardecl_skd_main_c_49938 skd_max_queue_depth vardecl_skd_main.c 0 49938 NULL
162893 +enable_so_cx18_prepare_buffer_fndecl_49942 cx18_prepare_buffer fndecl 6-5 49942 NULL
162894 +enable_so_inode_number_squashfs_dir_entry_49943 inode_number squashfs_dir_entry 0 49943 NULL nohasharray
162895 +enable_so_repair_io_failure_fndecl_49943 repair_io_failure fndecl 6-3 49943 &enable_so_inode_number_squashfs_dir_entry_49943
162896 +enable_so_tomoyo_update_policy_fndecl_49945 tomoyo_update_policy fndecl 2 49945 NULL
162897 +enable_so_rcvcnt_elsa_hw_49949 rcvcnt elsa_hw 0 49949 NULL
162898 +enable_so_segsize_rem_dn_scp_49951 segsize_rem dn_scp 0 49951 NULL
162899 +enable_so_zlib_decompress_fndecl_49955 zlib_decompress fndecl 5 49955 NULL
162900 +enable_so_len_lmc_xilinx_control_49960 len lmc_xilinx_control 0 49960 NULL
162901 +enable_so_ceph_inode_set_size_fndecl_49962 ceph_inode_set_size fndecl 2 49962 NULL
162902 +enable_so___ethtool_get_sset_count_fndecl_49964 __ethtool_get_sset_count fndecl 0 49964 NULL
162903 +enable_so_pcm512x_find_pll_coeff_fndecl_49973 pcm512x_find_pll_coeff fndecl 2-3 49973 NULL
162904 +enable_so_afs_fs_store_data_fndecl_49975 afs_fs_store_data fndecl 5-6 49975 NULL
162905 +enable_so_mms114_write_reg_fndecl_49977 mms114_write_reg fndecl 3 49977 NULL
162906 +enable_so_dig_in_nid_hda_gen_spec_49979 dig_in_nid hda_gen_spec 0 49979 NULL
162907 +enable_so_subtract_range_fndecl_49980 subtract_range fndecl 3-4 49980 NULL nohasharray
162908 +enable_so_tty_write_room_fndecl_49980 tty_write_room fndecl 0 49980 &enable_so_subtract_range_fndecl_49980
162909 +enable_so_mbox_size_wl1271_49981 mbox_size wl1271 0 49981 NULL
162910 +enable_so___mms114_read_reg_fndecl_49983 __mms114_read_reg fndecl 3-0 49983 NULL
162911 +enable_so_eqc_entry_sz_mthca_dev_lim_49984 eqc_entry_sz mthca_dev_lim 0 49984 NULL
162912 +enable_so_pgbase_nfs3_readlinkargs_49993 pgbase nfs3_readlinkargs 0 49993 NULL
162913 +enable_so_buffer_target_count_pvr2_stream_49996 buffer_target_count pvr2_stream 0 49996 NULL
162914 +enable_so_leafblk_xfs_da_geometry_49997 leafblk xfs_da_geometry 0 49997 NULL
162915 +enable_so_ff_effects_max_uinput_device_49998 ff_effects_max uinput_device 0 49998 NULL
162916 +enable_so_make_checksum_fndecl_49999 make_checksum fndecl 3-5 49999 NULL nohasharray
162917 +enable_so_ixgbe_dbg_reg_ops_read_fndecl_49999 ixgbe_dbg_reg_ops_read fndecl 3 49999 &enable_so_make_checksum_fndecl_49999
162918 +enable_so_block_isofs_iget5_callback_data_50000 block isofs_iget5_callback_data 0 50000 NULL
162919 +enable_so_vbi_v_start_0_saa7134_tvnorm_50002 vbi_v_start_0 saa7134_tvnorm 0 50002 NULL
162920 +enable_so_tcm_qla2xxx_handle_cmd_fndecl_50016 tcm_qla2xxx_handle_cmd fndecl 4 50016 NULL
162921 +enable_so_ufs_inode_getfrag_fndecl_50019 ufs_inode_getfrag fndecl 2-4 50019 NULL
162922 +enable_so_bl_alloc_init_bio_fndecl_50026 bl_alloc_init_bio fndecl 3-1 50026 NULL nohasharray
162923 +enable_so_bi_size_bvec_iter_50026 bi_size bvec_iter 0 50026 &enable_so_bl_alloc_init_bio_fndecl_50026
162924 +enable_so_snd_oss_kernel_minor_fndecl_50028 snd_oss_kernel_minor fndecl 0 50028 NULL
162925 +enable_so_length_fotg210_qtd_50029 length fotg210_qtd 0 50029 NULL
162926 +enable_so_BlockMultiplierBits_INFTLMediaHeader_50032 BlockMultiplierBits INFTLMediaHeader 0 50032 NULL
162927 +enable_so_depth_zoran_format_50033 depth zoran_format 0 50033 NULL
162928 +enable_so_amdgpu_bo_create_fndecl_50037 amdgpu_bo_create fndecl 2 50037 NULL
162929 +enable_so_ima_write_policy_fndecl_50039 ima_write_policy fndecl 3 50039 NULL
162930 +enable_so_esp_alloc_tmp_fndecl_50045 esp_alloc_tmp fndecl 2-3 50045 NULL
162931 +enable_so_pwc_vidioc_fill_fmt_fndecl_50048 pwc_vidioc_fill_fmt fndecl 2-3 50048 NULL
162932 +enable_so_nvkm_clk_create__fndecl_50051 nvkm_clk_create_ fndecl 8 50051 NULL
162933 +enable_so_len_nft_userdata_50052 len nft_userdata 0 50052 NULL
162934 +enable_so_skge_rx_get_fndecl_50053 skge_rx_get fndecl 3 50053 NULL
162935 +enable_so_num_crtc_amdgpu_mode_info_50055 num_crtc amdgpu_mode_info 0 50055 NULL
162936 +enable_so_lba_to_map_index_fndecl_50071 lba_to_map_index fndecl 0-1 50071 NULL
162937 +enable_so_long_retry_limit_orinoco_private_50080 long_retry_limit orinoco_private 0 50080 NULL
162938 +enable_so_n_tags_ata_host_50082 n_tags ata_host 0 50082 NULL
162939 +enable_so_memblock_reserve_region_fndecl_50083 memblock_reserve_region fndecl 1-2 50083 NULL
162940 +enable_so_sem_nsems_sem_array_50085 sem_nsems sem_array 0 50085 NULL nohasharray
162941 +enable_so_sch56xx_find_fndecl_50085 sch56xx_find fndecl 0 50085 &enable_so_sem_nsems_sem_array_50085
162942 +enable_so_long_retry_atmel_private_50097 long_retry atmel_private 0 50097 NULL
162943 +enable_so_get_priv_descr_and_size_fndecl_50103 get_priv_descr_and_size fndecl 0 50103 NULL
162944 +enable_so_total_len_splice_desc_50112 total_len splice_desc 0 50112 NULL
162945 +enable_so_fst_rx_dma_complete_fndecl_50118 fst_rx_dma_complete fndecl 3 50118 NULL
162946 +enable_so_pipeline_rx_complete_stat_fifo_int_read_fndecl_50124 pipeline_rx_complete_stat_fifo_int_read fndecl 3 50124 NULL
162947 +enable_so_usb_set_interface_fndecl_50126 usb_set_interface fndecl 0 50126 NULL
162948 +enable_so___cfg80211_roamed_fndecl_50127 __cfg80211_roamed fndecl 4-6 50127 NULL
162949 +enable_so_max_burst_whc_qset_50130 max_burst whc_qset 0 50130 NULL
162950 +enable_so_i_files_ceph_inode_info_50132 i_files ceph_inode_info 0 50132 NULL
162951 +enable_so_tool_peer_db_read_fndecl_50135 tool_peer_db_read fndecl 3 50135 NULL
162952 +enable_so_num_entries_ip6t_replace_50138 num_entries ip6t_replace 0 50138 NULL
162953 +enable_so_pid_nr_ns_fndecl_50141 pid_nr_ns fndecl 0 50141 NULL
162954 +enable_so_usb_tx_block_fndecl_50144 usb_tx_block fndecl 3 50144 NULL
162955 +enable_so_vendpoint_pwc_device_50145 vendpoint pwc_device 0 50145 NULL
162956 +enable_so_htotal_drm_display_mode_50148 htotal drm_display_mode 0 50148 NULL
162957 +enable_so_nfc_hci_set_param_fndecl_50154 nfc_hci_set_param fndecl 5 50154 NULL nohasharray
162958 +enable_so_size_ubifs_data_node_50154 size ubifs_data_node 0 50154 &enable_so_nfc_hci_set_param_fndecl_50154
162959 +enable_so_idr_get_empty_slot_fndecl_50161 idr_get_empty_slot fndecl 0 50161 NULL
162960 +enable_so_ext4_mark_inode_dirty_fndecl_50162 ext4_mark_inode_dirty fndecl 0 50162 NULL
162961 +enable_so_length_ib_ip_iocb_rsp_50163 length ib_ip_iocb_rsp 0 50163 NULL nohasharray
162962 +enable_so_fops_read_fndecl_50163 fops_read fndecl 3 50163 &enable_so_length_ib_ip_iocb_rsp_50163
162963 +enable_so_videobuf_dma_init_user_locked_fndecl_50165 videobuf_dma_init_user_locked fndecl 4-3 50165 NULL
162964 +enable_so_next_burst_len_iscsi_cmd_50168 next_burst_len iscsi_cmd 0 50168 NULL
162965 +enable_so_pci_enable_resources_fndecl_50171 pci_enable_resources fndecl 0 50171 NULL nohasharray
162966 +enable_so_rd_buf_size_xilly_channel_50171 rd_buf_size xilly_channel 0 50171 &enable_so_pci_enable_resources_fndecl_50171
162967 +enable_so_mclk_rate_wm9081_priv_50176 mclk_rate wm9081_priv 0 50176 NULL
162968 +enable_so_hdr_len_atm_flow_data_50178 hdr_len atm_flow_data 0 50178 NULL
162969 +enable_so_ubi_more_update_data_fndecl_50182 ubi_more_update_data fndecl 4 50182 NULL
162970 +enable_so_nested_cr3_nested_state_50183 nested_cr3 nested_state 0 50183 NULL
162971 +enable_so_gfs2_create_inode_fndecl_50184 gfs2_create_inode fndecl 7 50184 NULL
162972 +enable_so_parts_nvkm_ram_50191 parts nvkm_ram 0 50191 NULL
162973 +enable_so_echo_client_kbrw_fndecl_50193 echo_client_kbrw fndecl 6 50193 NULL
162974 +enable_so___isofs_iget_fndecl_50194 __isofs_iget fndecl 3-2 50194 NULL
162975 +enable_so_ext3_xattr_check_names_fndecl_50197 ext3_xattr_check_names fndecl 0 50197 NULL
162976 +enable_so_gbufsize_vardecl_meye_c_50205 gbufsize vardecl_meye.c 0 50205 NULL
162977 +enable_so_s_zmap_blocks_minix_sb_info_50206 s_zmap_blocks minix_sb_info 0 50206 NULL
162978 +enable_so_ivtv_v4l2_write_fndecl_50217 ivtv_v4l2_write fndecl 3 50217 NULL
162979 +enable_so_sched_priority_sched_attr_50220 sched_priority sched_attr 0 50220 NULL nohasharray
162980 +enable_so_get_data_block_fndecl_50220 get_data_block fndecl 2 50220 &enable_so_sched_priority_sched_attr_50220
162981 +enable_so_length_dfw_binrec_50222 length dfw_binrec 0 50222 NULL
162982 +enable_so_pin_pci_dev_50231 pin pci_dev 0 50231 NULL
162983 +enable_so_qla4_82xx_pci_mem_read_direct_fndecl_50235 qla4_82xx_pci_mem_read_direct fndecl 2 50235 NULL
162984 +enable_so_efi_memmap_size_efi_info_50236 efi_memmap_size efi_info 0 50236 NULL
162985 +enable_so_vd_ino_nilfs_vdesc_50241 vd_ino nilfs_vdesc 0 50241 NULL nohasharray
162986 +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
162987 +enable_so_r128_compat_ioctl_fndecl_50241 r128_compat_ioctl fndecl 2 50241 &enable_so_pwr_cont_miss_bcns_spread_read_fndecl_50241
162988 +enable_so_i915_error_state_read_fndecl_50245 i915_error_state_read fndecl 3 50245 NULL
162989 +enable_so_fnic_trace_max_pages_vardecl_50246 fnic_trace_max_pages vardecl 0 50246 NULL
162990 +enable_so_h_tot_disp_crtc_50258 h_tot_disp crtc 0 50258 NULL
162991 +enable_so_len_mrp_attr_50262 len mrp_attr 0 50262 NULL nohasharray
162992 +enable_so_posix_acl_to_xattr_fndecl_50262 posix_acl_to_xattr fndecl 0 50262 &enable_so_len_mrp_attr_50262
162993 +enable_so_buf_struct_size_vb2_queue_50266 buf_struct_size vb2_queue 0 50266 NULL
162994 +enable_so_end_range_50270 end range 0 50270 NULL nohasharray
162995 +enable_so_bLength_usb_ss_ep_comp_descriptor_50270 bLength usb_ss_ep_comp_descriptor 0 50270 &enable_so_end_range_50270
162996 +enable_so_vframes_pwc_device_50272 vframes pwc_device 0 50272 NULL
162997 +enable_so_curr_resync_completed_mddev_50273 curr_resync_completed mddev 0 50273 NULL nohasharray
162998 +enable_so_rx_filter_protection_filter_read_fndecl_50273 rx_filter_protection_filter_read fndecl 3 50273 &enable_so_curr_resync_completed_mddev_50273
162999 +enable_so_count_defcmd_set_50274 count defcmd_set 0 50274 NULL
163000 +enable_so_phys_amd76xrom_window_50277 phys amd76xrom_window 0 50277 NULL
163001 +enable_so_ath6kl_wmi_set_appie_cmd_fndecl_50289 ath6kl_wmi_set_appie_cmd fndecl 5-2 50289 NULL
163002 +enable_so_mwifiex_append_rsn_ie_wpa_wpa2_fndecl_50296 mwifiex_append_rsn_ie_wpa_wpa2 fndecl 0 50296 NULL nohasharray
163003 +enable_so_wptr_old_amdgpu_ring_50296 wptr_old amdgpu_ring 0 50296 &enable_so_mwifiex_append_rsn_ie_wpa_wpa2_fndecl_50296
163004 +enable_so_insert_reserved_file_extent_fndecl_50316 insert_reserved_file_extent fndecl 6-3 50316 NULL
163005 +enable_so___cfg80211_connect_result_fndecl_50317 __cfg80211_connect_result fndecl 4-6 50317 NULL
163006 +enable_so__iwl_dbgfs_pm_params_write_fndecl_50318 _iwl_dbgfs_pm_params_write fndecl 3 50318 NULL
163007 +enable_so_rbytes_ceph_mds_reply_inode_50321 rbytes ceph_mds_reply_inode 0 50321 NULL
163008 +enable_so_VST_kyrofb_info_50324 VST kyrofb_info 0 50324 NULL
163009 +enable_so_level_guest_walker64_50325 level guest_walker64 0 50325 NULL
163010 +enable_so_ucNumEntries__ATOM_PPLIB_CAC_Leakage_Table_50326 ucNumEntries _ATOM_PPLIB_CAC_Leakage_Table 0 50326 NULL
163011 +enable_so___vmalloc_node_fndecl_50335 __vmalloc_node fndecl 1-2 50335 NULL nohasharray
163012 +enable_so_size_nand_ecc_ctrl_50335 size nand_ecc_ctrl 0 50335 &enable_so___vmalloc_node_fndecl_50335
163013 +enable_so___copy_from_user_nocache_fndecl_50340 __copy_from_user_nocache fndecl 0-3 50340 NULL
163014 +enable_so_ide_complete_rq_fndecl_50345 ide_complete_rq fndecl 3 50345 NULL
163015 +enable_so_nextindex_xtheader_50354 nextindex xtheader 0 50354 NULL
163016 +enable_so_next_minor_vardecl_md_c_50357 next_minor vardecl_md.c 0 50357 NULL
163017 +enable_so_headlen_authenc_esn_request_ctx_50360 headlen authenc_esn_request_ctx 0 50360 NULL
163018 +enable_so_wimax_msg_alloc_fndecl_50364 wimax_msg_alloc fndecl 4 50364 NULL
163019 +enable_so_regmap_name_read_file_fndecl_50368 regmap_name_read_file fndecl 3 50368 NULL
163020 +enable_so_ps_poll_ps_poll_utilization_read_fndecl_50372 ps_poll_ps_poll_utilization_read fndecl 3 50372 NULL
163021 +enable_so_fnic_trace_debugfs_read_fndecl_50375 fnic_trace_debugfs_read fndecl 3 50375 NULL
163022 +enable_so___send_to_port_fndecl_50377 __send_to_port fndecl 3 50377 NULL
163023 +enable_so_table_size_amdgpu_gart_50380 table_size amdgpu_gart 0 50380 NULL
163024 +enable_so_NumberOfReferrals_smb_com_transaction_get_dfs_refer_rsp_50387 NumberOfReferrals smb_com_transaction_get_dfs_refer_rsp 0 50387 NULL
163025 +enable_so_max_write_len_cftype_50399 max_write_len cftype 0 50399 NULL
163026 +enable_so_user_power_read_fndecl_50405 user_power_read fndecl 3 50405 NULL
163027 +enable_so_init_urbs_fndecl_50408 init_urbs fndecl 2-4-5 50408 NULL
163028 +enable_so_sgx_offset_psb_ops_50417 sgx_offset psb_ops 0 50417 NULL
163029 +enable_so_size_uvc_clock_50418 size uvc_clock 0 50418 NULL
163030 +enable_so_length_acpi_srat_mem_affinity_50419 length acpi_srat_mem_affinity 0 50419 NULL
163031 +enable_so___initramfs_size_vardecl_50420 __initramfs_size vardecl 0 50420 NULL nohasharray
163032 +enable_so_jffs2_scan_xattr_node_fndecl_50420 jffs2_scan_xattr_node fndecl 4 50420 &enable_so___initramfs_size_vardecl_50420
163033 +enable_so_sd_max_rg_data_gfs2_sbd_50430 sd_max_rg_data gfs2_sbd 0 50430 NULL
163034 +enable_so___vcc_connect_fndecl_50431 __vcc_connect fndecl 4-3 50431 NULL
163035 +enable_so_ext3_trim_all_free_fndecl_50434 ext3_trim_all_free fndecl 0-2 50434 NULL nohasharray
163036 +enable_so_nilfs_gccache_submit_read_data_fndecl_50434 nilfs_gccache_submit_read_data fndecl 3-4 50434 &enable_so_ext3_trim_all_free_fndecl_50434
163037 +enable_so_pkt_size_asender_cmd_50437 pkt_size asender_cmd 0 50437 NULL
163038 +enable_so_sbp_count_se_tpg_luns_fndecl_50444 sbp_count_se_tpg_luns fndecl 0 50444 NULL
163039 +enable_so_il_dbgfs_sram_write_fndecl_50445 il_dbgfs_sram_write fndecl 3 50445 NULL
163040 +enable_so_nfsd4_encode_fattr_to_buf_fndecl_50449 nfsd4_encode_fattr_to_buf fndecl 2 50449 NULL nohasharray
163041 +enable_so_nr_phys_segments_request_50449 nr_phys_segments request 0 50449 &enable_so_nfsd4_encode_fattr_to_buf_fndecl_50449
163042 +enable_so_nfsd_drc_mem_used_vardecl_50456 nfsd_drc_mem_used vardecl 0 50456 NULL
163043 +enable_so_extra_tx_headroom_ieee802154_hw_50457 extra_tx_headroom ieee802154_hw 0 50457 NULL
163044 +enable_so_iscsi_iolen_cxgb4_lld_info_50467 iscsi_iolen cxgb4_lld_info 0 50467 NULL
163045 +enable_so___ath6kl_wmi_send_mgmt_cmd_fndecl_50472 __ath6kl_wmi_send_mgmt_cmd fndecl 7-2 50472 NULL
163046 +enable_so_buf_size_dmatest_params_50477 buf_size dmatest_params 0 50477 NULL
163047 +enable_so_len_fuse_ioctl_iovec_50481 len fuse_ioctl_iovec 0 50481 NULL
163048 +enable_so_consume_va_vmci_qp_page_file_info_50487 consume_va vmci_qp_page_file_info 0 50487 NULL
163049 +enable_so_snd_sbmixer_add_ctl_fndecl_50491 snd_sbmixer_add_ctl fndecl 5 50491 NULL
163050 +enable_so_max_pages_nilfs_write_info_50494 max_pages nilfs_write_info 0 50494 NULL
163051 +enable_so_udf_new_block_fndecl_50500 udf_new_block fndecl 0 50500 NULL
163052 +enable_so_lpfc_idiag_extacc_write_fndecl_50501 lpfc_idiag_extacc_write fndecl 3 50501 NULL
163053 +enable_so_bio_clone_range_fndecl_50502 bio_clone_range fndecl 3-2 50502 NULL
163054 +enable_so_mwifiex_read_data_sync_fndecl_50504 mwifiex_read_data_sync fndecl 3 50504 NULL
163055 +enable_so_readahead_tree_block_fndecl_50505 readahead_tree_block fndecl 2 50505 NULL
163056 +enable_so_listxattr_inode_operations_50507 listxattr inode_operations 0 50507 NULL
163057 +enable_so_i2c_hid_output_report_fndecl_50508 i2c_hid_output_report fndecl 3 50508 NULL
163058 +enable_so_t4vf_pktgl_to_skb_fndecl_50510 t4vf_pktgl_to_skb fndecl 3 50510 NULL
163059 +enable_so_adfs_fplus_read_fndecl_50514 adfs_fplus_read fndecl 2 50514 NULL nohasharray
163060 +enable_so_usb_maxpacket_fndecl_50514 usb_maxpacket fndecl 0 50514 &enable_so_adfs_fplus_read_fndecl_50514
163061 +enable_so_len_nfs3_mkdirargs_50515 len nfs3_mkdirargs 0 50515 NULL
163062 +enable_so_nframes_cdrom_read_audio_50517 nframes cdrom_read_audio 0 50517 NULL
163063 +enable_so_OSDSetBlock_fndecl_50521 OSDSetBlock fndecl 2-4 50521 NULL
163064 +enable_so_ohci_urb_dequeue_fndecl_50529 ohci_urb_dequeue fndecl 3 50529 NULL
163065 +enable_so_rtmax_nfs_fsinfo_50537 rtmax nfs_fsinfo 0 50537 NULL nohasharray
163066 +enable_so_dccpd_seq_dccp_skb_cb_50537 dccpd_seq dccp_skb_cb 0 50537 &enable_so_rtmax_nfs_fsinfo_50537
163067 +enable_so_get_nodes_fndecl_50551 get_nodes fndecl 3 50551 NULL
163068 +enable_so_spi_rd8_fndecl_50555 spi_rd8 fndecl 0 50555 NULL
163069 +enable_so_frag_threshold_wiphy_50556 frag_threshold wiphy 0 50556 NULL
163070 +enable_so___blkdev_issue_zeroout_fndecl_50559 __blkdev_issue_zeroout fndecl 3-2-0 50559 NULL
163071 +enable_so_gen_pool_create_fndecl_50571 gen_pool_create fndecl 1 50571 NULL
163072 +enable_so_img_y_zoran_jpg_settings_50573 img_y zoran_jpg_settings 0 50573 NULL nohasharray
163073 +enable_so_W6692_empty_fifo_fndecl_50573 W6692_empty_fifo fndecl 2 50573 &enable_so_img_y_zoran_jpg_settings_50573 nohasharray
163074 +enable_so___vma_reservation_common_fndecl_50573 __vma_reservation_common fndecl 3 50573 &enable_so_W6692_empty_fifo_fndecl_50573
163075 +enable_so_hdr_len_ib_mad_send_buf_50577 hdr_len ib_mad_send_buf 0 50577 NULL nohasharray
163076 +enable_so__osd_req_alist_size_fndecl_50577 _osd_req_alist_size fndecl 0 50577 &enable_so_hdr_len_ib_mad_send_buf_50577
163077 +enable_so_length_fuse_page_desc_50581 length fuse_page_desc 0 50581 NULL
163078 +enable_so_do_write_kmem_fndecl_50584 do_write_kmem fndecl 1-3-0 50584 NULL
163079 +enable_so_do_huge_pmd_wp_page_fallback_fndecl_50585 do_huge_pmd_wp_page_fallback fndecl 7 50585 NULL
163080 +enable_so_off2_xad_50592 off2 xad 0 50592 NULL
163081 +enable_so_pwrite_dvb_ringbuffer_50594 pwrite dvb_ringbuffer 0 50594 NULL
163082 +enable_so_intel_gtt_total_entries_fndecl_50599 intel_gtt_total_entries fndecl 0 50599 NULL
163083 +enable_so___i915_gem_userptr_set_pages_fndecl_50600 __i915_gem_userptr_set_pages fndecl 3 50600 NULL
163084 +enable_so_count_slgt_desc_50607 count slgt_desc 0 50607 NULL
163085 +enable_so_pic_get_irq_fndecl_50614 pic_get_irq fndecl 0 50614 NULL
163086 +enable_so_ipoib_max_conn_qp_vardecl_50615 ipoib_max_conn_qp vardecl 0 50615 NULL
163087 +enable_so_len_fuse_notify_inval_inode_out_50619 len fuse_notify_inval_inode_out 0 50619 NULL nohasharray
163088 +enable_so_dle_count__isdn_audio_data_50619 dle_count _isdn_audio_data 0 50619 &enable_so_len_fuse_notify_inval_inode_out_50619
163089 +enable_so_cb_mirror_cnt_exofs_dt_data_map_50623 cb_mirror_cnt exofs_dt_data_map 0 50623 NULL nohasharray
163090 +enable_so_zr364xx_fillbuff_fndecl_50623 zr364xx_fillbuff fndecl 3 50623 &enable_so_cb_mirror_cnt_exofs_dt_data_map_50623
163091 +enable_so___kfifo_to_user_r_fndecl_50624 __kfifo_to_user_r fndecl 5-3 50624 NULL
163092 +enable_so_phys_port_cnt_ib_device_50625 phys_port_cnt ib_device 0 50625 NULL
163093 +enable_so_pglen_nfs3_readlinkargs_50630 pglen nfs3_readlinkargs 0 50630 NULL nohasharray
163094 +enable_so_data_len_pmcraid_hcam_hdr_50630 data_len pmcraid_hcam_hdr 0 50630 &enable_so_pglen_nfs3_readlinkargs_50630
163095 +enable_so_l2tp_ip6_recvmsg_fndecl_50633 l2tp_ip6_recvmsg fndecl 3 50633 NULL
163096 +enable_so_ea_foreach_fndecl_50638 ea_foreach fndecl 0 50638 NULL
163097 +enable_so_ircomm_tty_write_fndecl_50642 ircomm_tty_write fndecl 3 50642 NULL nohasharray
163098 +enable_so_tomoyo_truncate_fndecl_50642 tomoyo_truncate fndecl 0 50642 &enable_so_ircomm_tty_write_fndecl_50642
163099 +enable_so_num_regs_soc_bytes_50648 num_regs soc_bytes 0 50648 NULL
163100 +enable_so_usb_hcd_giveback_urb_fndecl_50649 usb_hcd_giveback_urb fndecl 3 50649 NULL
163101 +enable_so_xor_sources_dmatest_params_50653 xor_sources dmatest_params 0 50653 NULL
163102 +enable_so_recalc_rate_clk_ops_50655 recalc_rate clk_ops 0 50655 NULL
163103 +enable_so_io_size_tulip_chip_table_50656 io_size tulip_chip_table 0 50656 NULL nohasharray
163104 +enable_so_create_bounce_buffer_fndecl_50656 create_bounce_buffer fndecl 3 50656 &enable_so_io_size_tulip_chip_table_50656
163105 +enable_so_proc_coredump_filter_read_fndecl_50658 proc_coredump_filter_read fndecl 3 50658 NULL
163106 +enable_so_enc_pools_release_free_pages_fndecl_50669 enc_pools_release_free_pages fndecl 1 50669 NULL
163107 +enable_so_i915_gem_alloc_context_obj_fndecl_50671 i915_gem_alloc_context_obj fndecl 2 50671 NULL
163108 +enable_so_nclips_bttv_overlay_50673 nclips bttv_overlay 0 50673 NULL
163109 +enable_so_dig_in_ca0132_spec_50677 dig_in ca0132_spec 0 50677 NULL
163110 +enable_so___kernfs_create_file_fndecl_50679 __kernfs_create_file fndecl 4 50679 NULL nohasharray
163111 +enable_so_size_snd_util_memblk_50679 size snd_util_memblk 0 50679 &enable_so___kernfs_create_file_fndecl_50679
163112 +enable_so_count_dm_io_region_50683 count dm_io_region 0 50683 NULL
163113 +enable_so_sr_offset_nfs42_seek_res_50684 sr_offset nfs42_seek_res 0 50684 NULL nohasharray
163114 +enable_so_alloc_ring_fndecl_50684 alloc_ring fndecl 4-2 50684 &enable_so_sr_offset_nfs42_seek_res_50684
163115 +enable_so_generic_permission_fndecl_50685 generic_permission fndecl 0 50685 NULL
163116 +enable_so_hv_mem_hot_add_fndecl_50687 hv_mem_hot_add fndecl 1 50687 NULL nohasharray
163117 +enable_so_rxkad_secure_packet_encrypt_fndecl_50687 rxkad_secure_packet_encrypt fndecl 3 50687 &enable_so_hv_mem_hot_add_fndecl_50687
163118 +enable_so_dm_bm_read_try_lock_fndecl_50688 dm_bm_read_try_lock fndecl 2 50688 NULL
163119 +enable_so_ftrace_pid_write_fndecl_50701 ftrace_pid_write fndecl 3 50701 NULL
163120 +enable_so___find_rev_next_bit_fndecl_50712 __find_rev_next_bit fndecl 0-2-3 50712 NULL
163121 +enable_so_back_xfs_da3_icnode_hdr_50715 back xfs_da3_icnode_hdr 0 50715 NULL
163122 +enable_so_sc18is602_wait_ready_fndecl_50717 sc18is602_wait_ready fndecl 0 50717 NULL
163123 +enable_so_get_device_info_fndecl_50718 get_device_info fndecl 0 50718 NULL
163124 +enable_so_ibnl_put_msg_fndecl_50721 ibnl_put_msg fndecl 4 50721 NULL nohasharray
163125 +enable_so_num_lbufq_entries_ql3_adapter_50721 num_lbufq_entries ql3_adapter 0 50721 &enable_so_ibnl_put_msg_fndecl_50721
163126 +enable_so_mpdu_header_off_wcn36xx_pdu_50723 mpdu_header_off wcn36xx_pdu 0 50723 NULL
163127 +enable_so_i915_gem_alloc_object_fndecl_50728 i915_gem_alloc_object fndecl 2 50728 NULL
163128 +enable_so_srp_change_queue_depth_fndecl_50733 srp_change_queue_depth fndecl 2 50733 NULL nohasharray
163129 +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
163130 +enable_so_agg_wsize_vardecl_50735 agg_wsize vardecl 0 50735 NULL nohasharray
163131 +enable_so_max_mr_size_ib_device_attr_50735 max_mr_size ib_device_attr 0 50735 &enable_so_agg_wsize_vardecl_50735
163132 +enable_so_data_size_usbtouch_usb_50738 data_size usbtouch_usb 0 50738 NULL
163133 +enable_so_MaximumDataTransferSizeInBlocks_DAC960_V2_ControllerInfo_50742 MaximumDataTransferSizeInBlocks DAC960_V2_ControllerInfo 0 50742 NULL nohasharray
163134 +enable_so_rx_count_st_data_s_50742 rx_count st_data_s 0 50742 &enable_so_MaximumDataTransferSizeInBlocks_DAC960_V2_ControllerInfo_50742
163135 +enable_so_opt_flen_ipv6_txoptions_50747 opt_flen ipv6_txoptions 0 50747 NULL
163136 +enable_so_nicvf_change_mtu_fndecl_50748 nicvf_change_mtu fndecl 2 50748 NULL
163137 +enable_so_dm_create_fndecl_50754 dm_create fndecl 1 50754 NULL
163138 +enable_so_i_dataoffset_romfs_inode_info_50755 i_dataoffset romfs_inode_info 0 50755 NULL
163139 +enable_so_root_len_ubifs_mst_node_50757 root_len ubifs_mst_node 0 50757 NULL
163140 +enable_so_cluster_bits_msdos_sb_info_50763 cluster_bits msdos_sb_info 0 50763 NULL
163141 +enable_so_usb_hcd_map_urb_for_dma_fndecl_50765 usb_hcd_map_urb_for_dma fndecl 0 50765 NULL
163142 +enable_so_cifs_readpages_read_into_pages_fndecl_50770 cifs_readpages_read_into_pages fndecl 3 50770 NULL
163143 +enable_so_hpfs_get_sector_fndecl_50776 hpfs_get_sector fndecl 2 50776 NULL
163144 +enable_so_vmap_fndecl_50778 vmap fndecl 2 50778 NULL
163145 +enable_so_cmd_size_blk_mq_tag_set_50782 cmd_size blk_mq_tag_set 0 50782 NULL
163146 +enable_so_readdir_nfs_rpc_ops_50783 readdir nfs_rpc_ops 0 50783 NULL
163147 +enable_so_remove_pmkid_fndecl_50793 remove_pmkid fndecl 4 50793 NULL
163148 +enable_so_len_rfd_50801 len rfd 0 50801 NULL
163149 +enable_so_persistent_ram_buffer_map_fndecl_50803 persistent_ram_buffer_map fndecl 2-1 50803 NULL
163150 +enable_so_malloc_size__BIG_IOCTL_Command_struct_50805 malloc_size _BIG_IOCTL_Command_struct 0 50805 NULL
163151 +enable_so_cmdQueueSize_sis_video_info_50807 cmdQueueSize sis_video_info 0 50807 NULL nohasharray
163152 +enable_so_argslen_svc_deferred_req_50807 argslen svc_deferred_req 0 50807 &enable_so_cmdQueueSize_sis_video_info_50807
163153 +enable_so_hpfs_map_dnode_fndecl_50813 hpfs_map_dnode fndecl 2 50813 NULL nohasharray
163154 +enable_so_ocfs2_pages_per_cluster_fndecl_50813 ocfs2_pages_per_cluster fndecl 0 50813 &enable_so_hpfs_map_dnode_fndecl_50813
163155 +enable_so_clkrc_ov7670_info_50815 clkrc ov7670_info 0 50815 NULL
163156 +enable_so_sys_migrate_pages_fndecl_50818 sys_migrate_pages fndecl 2 50818 NULL
163157 +enable_so_cdce925_regmap_i2c_read_fndecl_50819 cdce925_regmap_i2c_read fndecl 5 50819 NULL
163158 +enable_so_rq_nvec_smb_rqst_50820 rq_nvec smb_rqst 0 50820 NULL
163159 +enable_so_get_priv_size_fndecl_50823 get_priv_size fndecl 0-1 50823 NULL
163160 +enable_so_xdr_read_pages_fndecl_50824 xdr_read_pages fndecl 2 50824 NULL nohasharray
163161 +enable_so_bcast_ring_order_vardecl_main_c_50824 bcast_ring_order vardecl_main.c 0 50824 &enable_so_xdr_read_pages_fndecl_50824
163162 +enable_so_t_tinc_data_rem_rds_tcp_connection_50828 t_tinc_data_rem rds_tcp_connection 0 50828 NULL
163163 +enable_so_bssid_info_count_ndis_80211_pmkid_50829 bssid_info_count ndis_80211_pmkid 0 50829 NULL
163164 +enable_so_filelayout_get_dserver_offset_fndecl_50833 filelayout_get_dserver_offset fndecl 0-2 50833 NULL
163165 +enable_so_security_inode_listsecurity_fndecl_50839 security_inode_listsecurity fndecl 0 50839 NULL
163166 +enable_so_m_rsumlevels_xfs_mount_50843 m_rsumlevels xfs_mount 0 50843 NULL
163167 +enable_so_exynos3250_jpeg_compressed_size_fndecl_50845 exynos3250_jpeg_compressed_size fndecl 0 50845 NULL
163168 +enable_so_decrypted_key_size_ecryptfs_session_key_50847 decrypted_key_size ecryptfs_session_key 0 50847 NULL
163169 +enable_so__brk_end_vardecl_50849 _brk_end vardecl 0 50849 NULL
163170 +enable_so_journal_read_transaction_fndecl_50853 journal_read_transaction fndecl 2 50853 NULL
163171 +enable_so_x2_drm_clip_rect_50854 x2 drm_clip_rect 0 50854 NULL
163172 +enable_so_force_bredr_smp_read_fndecl_50855 force_bredr_smp_read fndecl 3 50855 NULL
163173 +enable_so_dat_offset_brcmf_sdio_hdrinfo_50859 dat_offset brcmf_sdio_hdrinfo 0 50859 NULL
163174 +enable_so_alloc_disk_fndecl_50861 alloc_disk fndecl 1 50861 NULL
163175 +enable_so_alg_key_len_xfrm_algo_auth_50871 alg_key_len xfrm_algo_auth 0 50871 NULL
163176 +enable_so_mtu_adj_ipvl_dev_50874 mtu_adj ipvl_dev 0 50874 NULL
163177 +enable_so_qib_read_kreg64_fndecl_50881 qib_read_kreg64 fndecl 0 50881 NULL
163178 +enable_so___nvme_submit_sync_cmd_fndecl_50882 __nvme_submit_sync_cmd fndecl 5 50882 NULL
163179 +enable_so_get_ramdisk_image_fndecl_50888 get_ramdisk_image fndecl 0 50888 NULL
163180 +enable_so_pkt_add_fndecl_50890 pkt_add fndecl 3 50890 NULL nohasharray
163181 +enable_so_size_t4_sq_50890 size t4_sq 0 50890 &enable_so_pkt_add_fndecl_50890 nohasharray
163182 +enable_so_ie_len_ieee80211_if_ibss_50890 ie_len ieee80211_if_ibss 0 50890 &enable_so_size_t4_sq_50890
163183 +enable_so_get_result_si_sm_handlers_50904 get_result si_sm_handlers 0 50904 NULL
163184 +enable_so_netlbl_catmap_walkrng_fndecl_50910 netlbl_catmap_walkrng fndecl 2-0 50910 NULL
163185 +enable_so_exofs_read_kern_fndecl_50914 exofs_read_kern fndecl 6 50914 NULL nohasharray
163186 +enable_so_oom_score_adj_read_fndecl_50914 oom_score_adj_read fndecl 3 50914 &enable_so_exofs_read_kern_fndecl_50914
163187 +enable_so_vnet_hdr_sz_tun_struct_50916 vnet_hdr_sz tun_struct 0 50916 NULL
163188 +enable_so_first_minor_gendisk_50925 first_minor gendisk 0 50925 NULL nohasharray
163189 +enable_so_num_chunks_drm_radeon_cs_50925 num_chunks drm_radeon_cs 0 50925 &enable_so_first_minor_gendisk_50925
163190 +enable_so___spi_async_fndecl_50927 __spi_async fndecl 0 50927 NULL
163191 +enable_so_j_start_reiserfs_journal_50930 j_start reiserfs_journal 0 50930 NULL
163192 +enable_so_ssidLen_BSSListRid_50931 ssidLen BSSListRid 0 50931 NULL nohasharray
163193 +enable_so_ReplyFrameSize_mpt2sas_facts_50931 ReplyFrameSize mpt2sas_facts 0 50931 &enable_so_ssidLen_BSSListRid_50931
163194 +enable_so_efs_map_block_fndecl_50932 efs_map_block fndecl 0-2 50932 NULL
163195 +enable_so_read_file_modal_eeprom_fndecl_50934 read_file_modal_eeprom fndecl 3 50934 NULL
163196 +enable_so_sge_pktshift_cxgb4_lld_info_50935 sge_pktshift cxgb4_lld_info 0 50935 NULL
163197 +enable_so_dw210x_op_rw_fndecl_50936 dw210x_op_rw fndecl 6 50936 NULL
163198 +enable_so_gen_pool_add_virt_fndecl_50938 gen_pool_add_virt fndecl 4 50938 NULL
163199 +enable_so_wil_rx_init_fndecl_50939 wil_rx_init fndecl 2 50939 NULL
163200 +enable_so_ubi_start_update_fndecl_50948 ubi_start_update fndecl 3 50948 NULL
163201 +enable_so_sync_key_len_pvr2_ioread_50952 sync_key_len pvr2_ioread 0 50952 NULL
163202 +enable_so_iser_prepare_write_cmd_fndecl_50953 iser_prepare_write_cmd fndecl 2 50953 NULL
163203 +enable_so_reg_list_size_radeon_rlc_50955 reg_list_size radeon_rlc 0 50955 NULL nohasharray
163204 +enable_so___vb2_get_done_vb_fndecl_50955 __vb2_get_done_vb fndecl 0 50955 &enable_so_reg_list_size_radeon_rlc_50955
163205 +enable_so_alloc_agpphysmem_i8xx_fndecl_50960 alloc_agpphysmem_i8xx fndecl 1 50960 NULL
163206 +enable_so_nsegments_dsp_module_desc_50965 nsegments dsp_module_desc 0 50965 NULL
163207 +enable_so_gamma_sd_gl860_50970 gamma sd_gl860 0 50970 NULL
163208 +enable_so_irq_ssb_device_50977 irq ssb_device 0 50977 NULL nohasharray
163209 +enable_so_setkey_unaligned_fndecl_50977 setkey_unaligned fndecl 3 50977 &enable_so_irq_ssb_device_50977
163210 +enable_so_n_hdlc_tty_receive_fndecl_50980 n_hdlc_tty_receive fndecl 4 50980 NULL
163211 +enable_so_seq_start_offset_iscsi_cmd_50983 seq_start_offset iscsi_cmd 0 50983 NULL
163212 +enable_so_usif_ioctl_fndecl_50986 usif_ioctl fndecl 3 50986 NULL
163213 +enable_so_first_burst_len_iscsi_cmd_50987 first_burst_len iscsi_cmd 0 50987 NULL
163214 +enable_so_do_get_mempolicy_fndecl_50990 do_get_mempolicy fndecl 3 50990 NULL
163215 +enable_so_cb_break_tail_afs_server_51003 cb_break_tail afs_server 0 51003 NULL
163216 +enable_so_resize_size_resize_parms_51005 resize_size resize_parms 0 51005 NULL
163217 +enable_so_ufs_frag_map_fndecl_51007 ufs_frag_map fndecl 0 51007 NULL
163218 +enable_so_room_ceph_pagelist_51016 room ceph_pagelist 0 51016 NULL
163219 +enable_so_num_of_queues_il_cfg_51023 num_of_queues il_cfg 0 51023 NULL
163220 +enable_so_img_sram_size_fw_hdr_51027 img_sram_size fw_hdr 0 51027 NULL
163221 +enable_so_cpu_count_MPT2SAS_ADAPTER_51044 cpu_count MPT2SAS_ADAPTER 0 51044 NULL
163222 +enable_so_int_proc_write_fndecl_51045 int_proc_write fndecl 3 51045 NULL
163223 +enable_so_setattr_inode_operations_51054 setattr inode_operations 0 51054 NULL
163224 +enable_so_vfs_truncate_fndecl_51056 vfs_truncate fndecl 2 51056 NULL nohasharray
163225 +enable_so_cl_req_alloc_fndecl_51056 cl_req_alloc fndecl 4 51056 &enable_so_vfs_truncate_fndecl_51056
163226 +enable_so_romfs_dev_strnlen_fndecl_51058 romfs_dev_strnlen fndecl 2-3-0 51058 NULL nohasharray
163227 +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
163228 +enable_so_index_vardecl_atiixp_modem_c_51061 index vardecl_atiixp_modem.c 0 51061 NULL
163229 +enable_so_crtc_vtotal_drm_display_mode_51070 crtc_vtotal drm_display_mode 0 51070 NULL
163230 +enable_so_fbmem_len_viafb_dev_51071 fbmem_len viafb_dev 0 51071 NULL
163231 +enable_so_ieee80211_if_read_fwded_mcast_fndecl_51072 ieee80211_if_read_fwded_mcast fndecl 3 51072 NULL nohasharray
163232 +enable_so_datablob_format_fndecl_51072 datablob_format fndecl 2 51072 &enable_so_ieee80211_if_read_fwded_mcast_fndecl_51072
163233 +enable_so_size_p9_wstat_51083 size p9_wstat 0 51083 NULL
163234 +enable_so_td_end_whc_qset_51089 td_end whc_qset 0 51089 NULL nohasharray
163235 +enable_so_pp_write_fndecl_51089 pp_write fndecl 3 51089 &enable_so_td_end_whc_qset_51089
163236 +enable_so_order_mmc_test_pages_51098 order mmc_test_pages 0 51098 NULL
163237 +enable_so_namelen_hpfs_dirent_51099 namelen hpfs_dirent 0 51099 NULL
163238 +enable_so_ocfs2_file_llseek_fndecl_51102 ocfs2_file_llseek fndecl 2 51102 NULL
163239 +enable_so_copy_chunked_from_user_fndecl_51106 copy_chunked_from_user fndecl 3 51106 NULL
163240 +enable_so_memblock_virt_alloc_internal_fndecl_51107 memblock_virt_alloc_internal fndecl 2-1-3-4 51107 NULL nohasharray
163241 +enable_so_bu_blocks_ocfs2_xattr_bucket_51107 bu_blocks ocfs2_xattr_bucket 0 51107 &enable_so_memblock_virt_alloc_internal_fndecl_51107
163242 +enable_so_msb_read_page_fndecl_51110 msb_read_page fndecl 6 51110 NULL
163243 +enable_so_elog_size_vardecl_acpi_extlog_c_51112 elog_size vardecl_acpi_extlog.c 0 51112 NULL
163244 +enable_so_fbmem_free_viafb_par_51115 fbmem_free viafb_par 0 51115 NULL
163245 +enable_so_len_garp_attr_hdr_51119 len garp_attr_hdr 0 51119 NULL
163246 +enable_so_ls_num_slots_dlm_ls_51120 ls_num_slots dlm_ls 0 51120 NULL
163247 +enable_so_new_read_fndecl_51123 new_read fndecl 2 51123 NULL
163248 +enable_so_adau1373_set_pll_fndecl_51130 adau1373_set_pll fndecl 4-5 51130 NULL
163249 +enable_so_igb_pci_enable_sriov_fndecl_51131 igb_pci_enable_sriov fndecl 2 51131 NULL
163250 +enable_so_wqe_cnt_mlx4_ib_wq_51135 wqe_cnt mlx4_ib_wq 0 51135 NULL
163251 +enable_so_cachelsz_ath_common_51138 cachelsz ath_common 0 51138 NULL
163252 +enable_so_length_sky2_status_le_51139 length sky2_status_le 0 51139 NULL
163253 +enable_so_arg_start_mm_struct_51140 arg_start mm_struct 0 51140 NULL nohasharray
163254 +enable_so_fm_send_cmd_fndecl_51140 fm_send_cmd fndecl 5 51140 &enable_so_arg_start_mm_struct_51140 nohasharray
163255 +enable_so_pin_2_irq_fndecl_51140 pin_2_irq fndecl 3 51140 &enable_so_fm_send_cmd_fndecl_51140
163256 +enable_so_num_rx_bnad_51141 num_rx bnad 0 51141 NULL
163257 +enable_so_set_dev_class_fndecl_51150 set_dev_class fndecl 4 51150 NULL nohasharray
163258 +enable_so_dm_exception_table_init_fndecl_51150 dm_exception_table_init fndecl 2 51150 &enable_so_set_dev_class_fndecl_51150
163259 +enable_so_mss_net_lro_desc_51151 mss net_lro_desc 0 51151 NULL
163260 +enable_so_sdio_readb_fndecl_51153 sdio_readb fndecl 0 51153 NULL
163261 +enable_so_nfs_idmap_get_key_fndecl_51155 nfs_idmap_get_key fndecl 2 51155 NULL
163262 +enable_so_num_backlights_lm3533_platform_data_51165 num_backlights lm3533_platform_data 0 51165 NULL
163263 +enable_so_bytes_per_pixel_osd_info_51169 bytes_per_pixel osd_info 0 51169 NULL nohasharray
163264 +enable_so_kvm_read_guest_cached_fndecl_51169 kvm_read_guest_cached fndecl 4 51169 &enable_so_bytes_per_pixel_osd_info_51169
163265 +enable_so_raid10_takeover_raid0_fndecl_51171 raid10_takeover_raid0 fndecl 3-2 51171 NULL
163266 +enable_so_v4l_stk_read_fndecl_51179 v4l_stk_read fndecl 3 51179 NULL
163267 +enable_so_splice_write_null_fndecl_51181 splice_write_null fndecl 4 51181 NULL nohasharray
163268 +enable_so_do_surface_dirty_sou_fndecl_51181 do_surface_dirty_sou fndecl 7 51181 &enable_so_splice_write_null_fndecl_51181
163269 +enable_so_snd_rme32_capture_copy_fndecl_51190 snd_rme32_capture_copy fndecl 5 51190 NULL
163270 +enable_so_prism2_info_hostscanresults_fndecl_51194 prism2_info_hostscanresults fndecl 3 51194 NULL
163271 +enable_so_mlx5_ib_invalidate_range_fndecl_51195 mlx5_ib_invalidate_range fndecl 2 51195 NULL
163272 +enable_so_pfkey_sockaddr_size_fndecl_51198 pfkey_sockaddr_size fndecl 0 51198 NULL
163273 +enable_so_btrfs_extent_same_fndecl_51200 btrfs_extent_same fndecl 2-5-3 51200 NULL
163274 +enable_so_max_num_vringh_kiov_51202 max_num vringh_kiov 0 51202 NULL
163275 +enable_so_cirrus_ttm_tt_create_fndecl_51204 cirrus_ttm_tt_create fndecl 2 51204 NULL
163276 +enable_so_vcc_recvmsg_fndecl_51205 vcc_recvmsg fndecl 3 51205 NULL
163277 +enable_so_kvm_clear_guest_fndecl_51207 kvm_clear_guest fndecl 2-3 51207 NULL
163278 +enable_so_phys_vram_area_51217 phys vram_area 0 51217 NULL
163279 +enable_so_vsi_oltext_vxfs_sb_info_51222 vsi_oltext vxfs_sb_info 0 51222 NULL
163280 +enable_so_mem_cgroup_count_precharge_pte_range_fndecl_51229 mem_cgroup_count_precharge_pte_range fndecl 2 51229 NULL
163281 +enable_so_rt2x00debug_write_rf_fndecl_51232 rt2x00debug_write_rf fndecl 3 51232 NULL
163282 +enable_so_stb0899_read_regs_fndecl_51234 stb0899_read_regs fndecl 4 51234 NULL nohasharray
163283 +enable_so_pte_entry_mm_walk_51234 pte_entry mm_walk 0 51234 &enable_so_stb0899_read_regs_fndecl_51234
163284 +enable_so_proc_set_size_fndecl_51237 proc_set_size fndecl 2 51237 NULL
163285 +enable_so_get_ucode_user_fndecl_51241 get_ucode_user fndecl 3 51241 NULL
163286 +enable_so_unlinked_urb_51246 unlinked urb 0 51246 NULL
163287 +enable_so_max_desc_sz_mthca_limits_51248 max_desc_sz mthca_limits 0 51248 NULL
163288 +enable_so_max_gs_mlx4_ib_wq_51251 max_gs mlx4_ib_wq 0 51251 NULL nohasharray
163289 +enable_so_cdev_add_fndecl_51251 cdev_add fndecl 2-3 51251 &enable_so_max_gs_mlx4_ib_wq_51251
163290 +enable_so_nvkm_gpuobj_create__fndecl_51256 nvkm_gpuobj_create_ fndecl 7-6-9 51256 NULL
163291 +enable_so_imxdma_prep_dma_cyclic_fndecl_51257 imxdma_prep_dma_cyclic fndecl 4-3 51257 NULL
163292 +enable_so_create_srq_user_fndecl_51260 create_srq_user fndecl 5 51260 NULL
163293 +enable_so_maxdatafieldsize_vnic_fc_config_51275 maxdatafieldsize vnic_fc_config 0 51275 NULL
163294 +enable_so_ceph_decode_16_fndecl_51276 ceph_decode_16 fndecl 0 51276 NULL
163295 +enable_so_ext3_new_block_fndecl_51283 ext3_new_block fndecl 0-3 51283 NULL
163296 +enable_so_xfs_rtallocate_range_fndecl_51292 xfs_rtallocate_range fndecl 3-4 51292 NULL nohasharray
163297 +enable_so_osd_req_list_partition_collections_fndecl_51292 osd_req_list_partition_collections fndecl 5 51292 &enable_so_xfs_rtallocate_range_fndecl_51292
163298 +enable_so_first_burst_iscsi_bus_flash_session_51294 first_burst iscsi_bus_flash_session 0 51294 NULL
163299 +enable_so_size_autofs_dev_ioctl_51298 size autofs_dev_ioctl 0 51298 NULL
163300 +enable_so_iscsi_ping_comp_event_fndecl_51300 iscsi_ping_comp_event fndecl 5 51300 NULL nohasharray
163301 +enable_so_ramoops_read_kmsg_hdr_fndecl_51300 ramoops_read_kmsg_hdr fndecl 0 51300 &enable_so_iscsi_ping_comp_event_fndecl_51300
163302 +enable_so_vmci_qp_broker_set_page_store_fndecl_51303 vmci_qp_broker_set_page_store fndecl 2-3 51303 NULL
163303 +enable_so_y2_virtio_gpu_framebuffer_51309 y2 virtio_gpu_framebuffer 0 51309 NULL
163304 +enable_so_ieee80211_if_read_auto_open_plinks_fndecl_51311 ieee80211_if_read_auto_open_plinks fndecl 3 51311 NULL nohasharray
163305 +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
163306 +enable_so__ipw_read_reg32_fndecl_51318 _ipw_read_reg32 fndecl 0 51318 NULL
163307 +enable_so_drv_sds_rings_qlcnic_adapter_51319 drv_sds_rings qlcnic_adapter 0 51319 NULL
163308 +enable_so_nvkm_dmaobj_create__fndecl_51321 nvkm_dmaobj_create_ fndecl 6 51321 NULL
163309 +enable_so_size_bts_phys_51332 size bts_phys 0 51332 NULL
163310 +enable_so_sync_dma_snd_usb_endpoint_51333 sync_dma snd_usb_endpoint 0 51333 NULL
163311 +enable_so_counter_vardecl_inode_c_51334 counter vardecl_inode.c 0 51334 NULL
163312 +enable_so_skb_put_frags_fndecl_51337 skb_put_frags fndecl 2-3 51337 NULL
163313 +enable_so_s_first_meta_bg_ext4_super_block_51338 s_first_meta_bg ext4_super_block 0 51338 NULL
163314 +enable_so_zd_mac_rx_fndecl_51339 zd_mac_rx fndecl 3 51339 NULL nohasharray
163315 +enable_so_C_SYSC_pselect6_fndecl_51339 C_SYSC_pselect6 fndecl 1 51339 &enable_so_zd_mac_rx_fndecl_51339
163316 +enable_so_xfs_bmbt_to_bmdr_fndecl_51344 xfs_bmbt_to_bmdr fndecl 3 51344 NULL nohasharray
163317 +enable_so_xfs_bmdr_to_bmbt_fndecl_51344 xfs_bmdr_to_bmbt fndecl 5 51344 &enable_so_xfs_bmbt_to_bmdr_fndecl_51344
163318 +enable_so_dev_change_flags_fndecl_51349 dev_change_flags fndecl 0 51349 NULL
163319 +enable_so_omap1_spi100k_setup_transfer_fndecl_51353 omap1_spi100k_setup_transfer fndecl 0 51353 NULL
163320 +enable_so_ftdi_process_packet_fndecl_51354 ftdi_process_packet fndecl 4 51354 NULL nohasharray
163321 +enable_so_size_seq_file_51354 size seq_file 0 51354 &enable_so_ftdi_process_packet_fndecl_51354
163322 +enable_so_get_frame_size_fndecl_51358 get_frame_size fndecl 0 51358 NULL
163323 +enable_so_length_mpc_table_51364 length mpc_table 0 51364 NULL
163324 +enable_so_ida_simple_get_fndecl_51365 ida_simple_get fndecl 0 51365 NULL nohasharray
163325 +enable_so_la_size_sect_drbd_md_51365 la_size_sect drbd_md 0 51365 &enable_so_ida_simple_get_fndecl_51365
163326 +enable_so_isr_rx_headers_read_fndecl_51366 isr_rx_headers_read fndecl 3 51366 NULL
163327 +enable_so_uvc_try_frame_interval_fndecl_51372 uvc_try_frame_interval fndecl 0-2 51372 NULL nohasharray
163328 +enable_so_sb_logblocks_xfs_sb_51372 sb_logblocks xfs_sb 0 51372 &enable_so_uvc_try_frame_interval_fndecl_51372
163329 +enable_so_ucma_query_path_fndecl_51378 ucma_query_path fndecl 3 51378 NULL
163330 +enable_so_i915_ggtt_view_size_fndecl_51385 i915_ggtt_view_size fndecl 0 51385 NULL
163331 +enable_so_num_queues_virtio_scsi_51387 num_queues virtio_scsi 0 51387 NULL
163332 +enable_so_ath6kl_wmi_addkey_cmd_fndecl_51389 ath6kl_wmi_addkey_cmd fndecl 2 51389 NULL
163333 +enable_so_reshape_progress_r10conf_51390 reshape_progress r10conf 0 51390 NULL
163334 +enable_so_size_hbucket_51397 size hbucket 0 51397 NULL
163335 +enable_so_rss_size_i40e_pf_51407 rss_size i40e_pf 0 51407 NULL
163336 +enable_so_ext4_ext_next_allocated_block_fndecl_51410 ext4_ext_next_allocated_block fndecl 0 51410 NULL nohasharray
163337 +enable_so_kmemleak_alloc_recursive_fndecl_51410 kmemleak_alloc_recursive fndecl 2 51410 &enable_so_ext4_ext_next_allocated_block_fndecl_51410
163338 +enable_so_max_header_size_irnet_socket_51423 max_header_size irnet_socket 0 51423 NULL
163339 +enable_so_base_memblock_region_51424 base memblock_region 0 51424 NULL
163340 +enable_so_num_rx_queues_ixgbevf_adapter_51428 num_rx_queues ixgbevf_adapter 0 51428 NULL
163341 +enable_so_nethctrl_vf_resources_51438 nethctrl vf_resources 0 51438 NULL nohasharray
163342 +enable_so_size_omap3isp_ccdc_lsc_config_51438 size omap3isp_ccdc_lsc_config 0 51438 &enable_so_nethctrl_vf_resources_51438
163343 +enable_so_max_cmds_ipr_ioa_cfg_51439 max_cmds ipr_ioa_cfg 0 51439 NULL
163344 +enable_so_rtsThres_ConfigRid_51444 rtsThres ConfigRid 0 51444 NULL
163345 +enable_so_xfs_free_file_space_fndecl_51452 xfs_free_file_space fndecl 2-3 51452 NULL
163346 +enable_so_pcpu_fc_free_fndecl_51456 pcpu_fc_free fndecl 2 51456 NULL
163347 +enable_so_nr_segments_blkif_request_indirect_51457 nr_segments blkif_request_indirect 0 51457 NULL
163348 +enable_so_size_gf100_gr_priv_51459 size gf100_gr_priv 0 51459 NULL
163349 +enable_so_size_hashlimit_cfg1_51460 size hashlimit_cfg1 0 51460 NULL
163350 +enable_so_rx_urb_size_usbnet_51461 rx_urb_size usbnet 0 51461 NULL
163351 +enable_so_nTxLock_vardecl_jfs_txnmgr_c_51464 nTxLock vardecl_jfs_txnmgr.c 0 51464 NULL
163352 +enable_so_orig_offset_iscsi_seq_51477 orig_offset iscsi_seq 0 51477 NULL
163353 +enable_so_write_ec_fiforeg_fndecl_51478 write_ec_fiforeg fndecl 2 51478 NULL
163354 +enable_so_compat_sys_rt_sigpending_fndecl_51480 compat_sys_rt_sigpending fndecl 2 51480 NULL
163355 +enable_so_finish_urb_fndecl_51484 finish_urb fndecl 3 51484 NULL
163356 +enable_so_num_vectors_mic_irq_info_51485 num_vectors mic_irq_info 0 51485 NULL
163357 +enable_so_xlog_alloc_log_fndecl_51486 xlog_alloc_log fndecl 4-3 51486 NULL
163358 +enable_so_log_blocksize_f2fs_super_block_51487 log_blocksize f2fs_super_block 0 51487 NULL
163359 +enable_so_end_soundfont_sample_info_51497 end soundfont_sample_info 0 51497 NULL
163360 +enable_so_height_drm_radeon_tex_image_51500 height drm_radeon_tex_image 0 51500 NULL
163361 +enable_so_inftl_readblock_fndecl_51508 inftl_readblock fndecl 2 51508 NULL
163362 +enable_so_xfer_len_scb_platform_data_51509 xfer_len scb_platform_data 0 51509 NULL
163363 +enable_so_count_atl1_tpd_ring_51510 count atl1_tpd_ring 0 51510 NULL
163364 +enable_so_pkt_alloc_packet_data_fndecl_51515 pkt_alloc_packet_data fndecl 1 51515 NULL nohasharray
163365 +enable_so__rtw_malloc_fndecl_51515 _rtw_malloc fndecl 1 51515 &enable_so_pkt_alloc_packet_data_fndecl_51515
163366 +enable_so_size_fb_pixmap_51528 size fb_pixmap 0 51528 NULL
163367 +enable_so_mft_no__ntfs_inode_51541 mft_no _ntfs_inode 0 51541 NULL
163368 +enable_so_write_file_bool_fndecl_51542 write_file_bool fndecl 3 51542 NULL
163369 +enable_so_len_hfa384x_info_frame_51543 len hfa384x_info_frame 0 51543 NULL
163370 +enable_so_scan_bytes_iio_dev_51546 scan_bytes iio_dev 0 51546 NULL nohasharray
163371 +enable_so_fifo_alloc_fndecl_51546 fifo_alloc fndecl 1 51546 &enable_so_scan_bytes_iio_dev_51546
163372 +enable_so_segCnt_Vmxnet3_RxCompDescExt_51547 segCnt Vmxnet3_RxCompDescExt 0 51547 NULL
163373 +enable_so_buffer_size_snd_emu10k1_fx8010_pcm_rec_51548 buffer_size snd_emu10k1_fx8010_pcm_rec 0 51548 NULL
163374 +enable_so_rcv_buf_bytes_vardecl_usbatm_c_51558 rcv_buf_bytes vardecl_usbatm.c 0 51558 NULL
163375 +enable_so_residual_len_vscsiif_response_51559 residual_len vscsiif_response 0 51559 NULL
163376 +enable_so_vfs_readv_fndecl_51560 vfs_readv fndecl 3 51560 NULL
163377 +enable_so_tegra_slink_start_tx_dma_fndecl_51568 tegra_slink_start_tx_dma fndecl 2 51568 NULL
163378 +enable_so_size_mdp_superblock_1_51572 size mdp_superblock_1 0 51572 NULL
163379 +enable_so_netxen_nic_change_mtu_fndecl_51573 netxen_nic_change_mtu fndecl 2 51573 NULL nohasharray
163380 +enable_so_rds_rdma_extra_size_fndecl_51573 rds_rdma_extra_size fndecl 0 51573 &enable_so_netxen_nic_change_mtu_fndecl_51573
163381 +enable_so_aio_setup_vectored_rw_fndecl_51577 aio_setup_vectored_rw fndecl 3 51577 NULL
163382 +enable_so_ino_f2fs_dir_entry_51578 ino f2fs_dir_entry 0 51578 NULL nohasharray
163383 +enable_so_s_writeshift_logfs_super_51578 s_writeshift logfs_super 0 51578 &enable_so_ino_f2fs_dir_entry_51578
163384 +enable_so_lbasize_nd_namespace_blk_51579 lbasize nd_namespace_blk 0 51579 NULL
163385 +enable_so_i_blkno_ocfs2_dinode_51582 i_blkno ocfs2_dinode 0 51582 NULL nohasharray
163386 +enable_so_persistent_ram_old_size_fndecl_51582 persistent_ram_old_size fndecl 0 51582 &enable_so_i_blkno_ocfs2_dinode_51582
163387 +enable_so_octeon_download_firmware_fndecl_51583 octeon_download_firmware fndecl 3 51583 NULL
163388 +enable_so_aggr_recv_addba_req_evt_fndecl_51590 aggr_recv_addba_req_evt fndecl 4 51590 NULL
163389 +enable_so_ufs_commit_chunk_fndecl_51591 ufs_commit_chunk fndecl 3 51591 NULL
163390 +enable_so__stb0899_read_reg_fndecl_51594 _stb0899_read_reg fndecl 0 51594 NULL
163391 +enable_so_rx_buf_missing_hso_net_51595 rx_buf_missing hso_net 0 51595 NULL
163392 +enable_so_klsi_105_prepare_write_buffer_fndecl_51599 klsi_105_prepare_write_buffer fndecl 3 51599 NULL nohasharray
163393 +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
163394 +enable_so_ep_count_bytes_remain_fndecl_51599 ep_count_bytes_remain fndecl 0 51599 &enable_so_af9013_wr_regs_i2c_fndecl_51599 nohasharray
163395 +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
163396 +enable_so_receive_mergeable_fndecl_51601 receive_mergeable fndecl 5-4 51601 NULL
163397 +enable_so_vfp_get_fndecl_51605 vfp_get fndecl 3-4 51605 NULL
163398 +enable_so_data_transfer_length_vmscsi_request_51616 data_transfer_length vmscsi_request 0 51616 NULL nohasharray
163399 +enable_so_cur_vfio_pci_fill_info_51616 cur vfio_pci_fill_info 0 51616 &enable_so_data_transfer_length_vmscsi_request_51616
163400 +enable_so_alloc_ltalkdev_fndecl_51620 alloc_ltalkdev fndecl 1 51620 NULL
163401 +enable_so_ioc_plen1_obd_ioctl_data_51625 ioc_plen1 obd_ioctl_data 0 51625 NULL
163402 +enable_so_btuart_write_fndecl_51627 btuart_write fndecl 0 51627 NULL
163403 +enable_so_cifs_send_async_read_fndecl_51630 cifs_send_async_read fndecl 2 51630 NULL
163404 +enable_so_m25p80_read_fndecl_51631 m25p80_read fndecl 3 51631 NULL
163405 +enable_so_nodesize_btrfs_root_51633 nodesize btrfs_root 0 51633 NULL nohasharray
163406 +enable_so_wil_vring_init_bcast_fndecl_51633 wil_vring_init_bcast fndecl 3 51633 &enable_so_nodesize_btrfs_root_51633 nohasharray
163407 +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
163408 +enable_so_SyS_llistxattr_fndecl_51635 SyS_llistxattr fndecl 3 51635 NULL
163409 +enable_so_SsidLength_ndis_802_11_ssid_51638 SsidLength ndis_802_11_ssid 0 51638 NULL
163410 +enable_so_remap_cell_to_cache_dirty_fndecl_51640 remap_cell_to_cache_dirty fndecl 4 51640 NULL
163411 +enable_so__xfs_buf_alloc_fndecl_51641 _xfs_buf_alloc fndecl 3 51641 NULL
163412 +enable_so_nsm_create_handle_fndecl_51647 nsm_create_handle fndecl 4 51647 NULL
163413 +enable_so_ath10k_mem_value_read_fndecl_51648 ath10k_mem_value_read fndecl 3 51648 NULL
163414 +enable_so_kernfs_dir_fop_llseek_fndecl_51649 kernfs_dir_fop_llseek fndecl 2 51649 NULL
163415 +enable_so_max_txsz_cxgbi_ddp_info_51655 max_txsz cxgbi_ddp_info 0 51655 NULL nohasharray
163416 +enable_so_tx_ring_size_gfar_priv_tx_q_51655 tx_ring_size gfar_priv_tx_q 0 51655 &enable_so_max_txsz_cxgbi_ddp_info_51655
163417 +enable_so_o2hb_read_slots_fndecl_51658 o2hb_read_slots fndecl 2 51658 NULL
163418 +enable_so_inet_set_ifa_fndecl_51661 inet_set_ifa fndecl 0 51661 NULL
163419 +enable_so_snd_pcm_oss_write_fndecl_51663 snd_pcm_oss_write fndecl 3 51663 NULL
163420 +enable_so_xfs_buf_readahead_map_fndecl_51666 xfs_buf_readahead_map fndecl 3 51666 NULL
163421 +enable_so_phys_mdio_mux_mmioreg_state_51673 phys mdio_mux_mmioreg_state 0 51673 NULL nohasharray
163422 +enable_so_resource_list_create_entry_fndecl_51673 resource_list_create_entry fndecl 2 51673 &enable_so_phys_mdio_mux_mmioreg_state_51673
163423 +enable_so_tcf_csum_ipv4_udp_fndecl_51674 tcf_csum_ipv4_udp fndecl 3 51674 NULL nohasharray
163424 +enable_so_seq_create_client1_fndecl_51674 seq_create_client1 fndecl 2 51674 &enable_so_tcf_csum_ipv4_udp_fndecl_51674
163425 +enable_so_nr_dirtied_task_struct_51675 nr_dirtied task_struct 0 51675 NULL
163426 +enable_so_ep0_read_fndecl_51676 ep0_read fndecl 3 51676 NULL
163427 +enable_so_proc_self_readlink_fndecl_51677 proc_self_readlink fndecl 3 51677 NULL
163428 +enable_so_request_key_auth_new_fndecl_51679 request_key_auth_new fndecl 3 51679 NULL
163429 +enable_so_ls_num_nodes_dlm_ls_51681 ls_num_nodes dlm_ls 0 51681 NULL nohasharray
163430 +enable_so_vmw_kms_present_fndecl_51681 vmw_kms_present fndecl 9 51681 &enable_so_ls_num_nodes_dlm_ls_51681
163431 +enable_so_virtio_gpu_object_create_fndecl_51692 virtio_gpu_object_create fndecl 2 51692 NULL nohasharray
163432 +enable_so_extsize_xfs_growfs_rt_51692 extsize xfs_growfs_rt 0 51692 &enable_so_virtio_gpu_object_create_fndecl_51692
163433 +enable_so_rtl8169_change_mtu_fndecl_51693 rtl8169_change_mtu fndecl 2 51693 NULL
163434 +enable_so_ms_os_descs_ext_prop_data_len_ffs_data_51698 ms_os_descs_ext_prop_data_len ffs_data 0 51698 NULL
163435 +enable_so_gfx_v7_0_get_csb_size_fndecl_51701 gfx_v7_0_get_csb_size fndecl 0 51701 NULL
163436 +enable_so_bNumMMCIEs_usb_wa_descriptor_51706 bNumMMCIEs usb_wa_descriptor 0 51706 NULL
163437 +enable_so_num_req_context_skd_device_51707 num_req_context skd_device 0 51707 NULL
163438 +enable_so_nilfs_write_end_fndecl_51713 nilfs_write_end fndecl 5 51713 NULL
163439 +enable_so_mwifiex_cmd_append_11n_tlv_fndecl_51715 mwifiex_cmd_append_11n_tlv fndecl 0 51715 NULL nohasharray
163440 +enable_so_ubifs_scan_fndecl_51715 ubifs_scan fndecl 3 51715 &enable_so_mwifiex_cmd_append_11n_tlv_fndecl_51715
163441 +enable_so_tt_stat_ofs_cyttsp4_sysinfo_ofs_51717 tt_stat_ofs cyttsp4_sysinfo_ofs 0 51717 NULL
163442 +enable_so_iscsit_dump_data_payload_fndecl_51720 iscsit_dump_data_payload fndecl 2 51720 NULL
163443 +enable_so_do_wp_page_fndecl_51721 do_wp_page fndecl 3 51721 NULL nohasharray
163444 +enable_so_nlimbs_gcry_mpi_51721 nlimbs gcry_mpi 0 51721 &enable_so_do_wp_page_fndecl_51721
163445 +enable_so_rx_ring_num_mlx4_en_priv_51723 rx_ring_num mlx4_en_priv 0 51723 NULL
163446 +enable_so_MaxChainDepth__MSG_IOC_FACTS_REPLY_51731 MaxChainDepth _MSG_IOC_FACTS_REPLY 0 51731 NULL
163447 +enable_so_xfs_da3_node_create_fndecl_51737 xfs_da3_node_create fndecl 2 51737 NULL
163448 +enable_so_bnx2_change_ring_size_fndecl_51748 bnx2_change_ring_size fndecl 3-2 51748 NULL
163449 +enable_so_sie_num_c67x00_sie_51754 sie_num c67x00_sie 0 51754 NULL
163450 +enable_so_sd_size_stat_data_v1_51758 sd_size stat_data_v1 0 51758 NULL
163451 +enable_so_find_next_usable_block_fndecl_51759 find_next_usable_block fndecl 0 51759 NULL
163452 +enable_so_rxbuf_size_alx_priv_51766 rxbuf_size alx_priv 0 51766 NULL nohasharray
163453 +enable_so_z_compress_fndecl_51766 z_compress fndecl 4-5 51766 &enable_so_rxbuf_size_alx_priv_51766
163454 +enable_so_num_var_ranges_vardecl_51769 num_var_ranges vardecl 0 51769 NULL
163455 +enable_so_ls_slot_dlm_ls_51774 ls_slot dlm_ls 0 51774 NULL
163456 +enable_so_rbio_add_io_page_fndecl_51775 rbio_add_io_page fndecl 5-6 51775 NULL
163457 +enable_so_s_blocksize_reiserfs_super_block_v1_51777 s_blocksize reiserfs_super_block_v1 0 51777 NULL
163458 +enable_so_SSID_size_atmel_private_51778 SSID_size atmel_private 0 51778 NULL
163459 +enable_so_snd_rme32_capture_getrate_fndecl_51779 snd_rme32_capture_getrate fndecl 0 51779 NULL
163460 +enable_so_btusb_qca_send_vendor_req_fndecl_51785 btusb_qca_send_vendor_req fndecl 4 51785 NULL
163461 +enable_so_pci_bar2_map_lpfc_hba_51792 pci_bar2_map lpfc_hba 0 51792 NULL
163462 +enable_so_ns_nextnum_the_nilfs_51797 ns_nextnum the_nilfs 0 51797 NULL
163463 +enable_so_uar_page_size_mlx4_caps_51798 uar_page_size mlx4_caps 0 51798 NULL
163464 +enable_so_iwl_dbgfs_thermal_throttling_read_fndecl_51816 iwl_dbgfs_thermal_throttling_read fndecl 3 51816 NULL
163465 +enable_so_size_nvkm_mem_51818 size nvkm_mem 0 51818 NULL nohasharray
163466 +enable_so_si476x_core_i2c_xfer_fndecl_51818 si476x_core_i2c_xfer fndecl 4 51818 &enable_so_size_nvkm_mem_51818
163467 +enable_so_val_ulist_node_51819 val ulist_node 0 51819 NULL
163468 +enable_so_bcache_device_init_fndecl_51822 bcache_device_init fndecl 2-3 51822 NULL
163469 +enable_so_isac_empty_fifo_fndecl_51832 isac_empty_fifo fndecl 2 51832 NULL
163470 +enable_so_udf_readpages_fndecl_51834 udf_readpages fndecl 4 51834 NULL
163471 +enable_so_hde_ast_vbios_enhtable_51835 hde ast_vbios_enhtable 0 51835 NULL
163472 +enable_so_do_pci_enable_device_fndecl_51841 do_pci_enable_device fndecl 0 51841 NULL
163473 +enable_so_nfs4_xattr_get_nfs4_acl_fndecl_51843 nfs4_xattr_get_nfs4_acl fndecl 4 51843 NULL
163474 +enable_so_mmio_len_mb862xxfb_par_51844 mmio_len mb862xxfb_par 0 51844 NULL
163475 +enable_so_xfs_qm_dqiter_bufs_fndecl_51846 xfs_qm_dqiter_bufs fndecl 3 51846 NULL
163476 +enable_so_max_bdi_bd_list_51847 max_bdi bd_list 0 51847 NULL
163477 +enable_so_free_size_jffs2_eraseblock_51848 free_size jffs2_eraseblock 0 51848 NULL
163478 +enable_so_xprt_rdma_max_inline_read_vardecl_transport_c_51852 xprt_rdma_max_inline_read vardecl_transport.c 0 51852 NULL
163479 +enable_so_ipv6_renew_option_fndecl_51854 ipv6_renew_option fndecl 3 51854 NULL
163480 +enable_so_nr_dma_pages_drm_savage_private_51862 nr_dma_pages drm_savage_private 0 51862 NULL
163481 +enable_so_fmr_message_size_vardecl_51869 fmr_message_size vardecl 0 51869 NULL
163482 +enable_so_TupleDataLen_tuple_t_51870 TupleDataLen tuple_t 0 51870 NULL
163483 +enable_so_efs_get_block_fndecl_51871 efs_get_block fndecl 2 51871 NULL
163484 +enable_so_MaxFrameSize_s_smt_os_51875 MaxFrameSize s_smt_os 0 51875 NULL
163485 +enable_so_vbi_height_em28xx_v4l2_51876 vbi_height em28xx_v4l2 0 51876 NULL
163486 +enable_so_lright_ext4_allocation_request_51877 lright ext4_allocation_request 0 51877 NULL
163487 +enable_so_direct_entry_fndecl_51879 direct_entry fndecl 3 51879 NULL
163488 +enable_so_compat_udp_setsockopt_fndecl_51883 compat_udp_setsockopt fndecl 5 51883 NULL
163489 +enable_so_skb_headroom_port100_51893 skb_headroom port100 0 51893 NULL nohasharray
163490 +enable_so___vlan_add_flags_fndecl_51893 __vlan_add_flags fndecl 2 51893 &enable_so_skb_headroom_port100_51893
163491 +enable_so_sys_select_fndecl_51896 sys_select fndecl 1 51896 NULL
163492 +enable_so_len_sdla_mem_51902 len sdla_mem 0 51902 NULL
163493 +enable_so_datainterval_audioformat_51903 datainterval audioformat 0 51903 NULL
163494 +enable_so_rx_buf_sz_yellowfin_private_51912 rx_buf_sz yellowfin_private 0 51912 NULL
163495 +enable_so_len_nfs3_diropargs_51913 len nfs3_diropargs 0 51913 NULL
163496 +enable_so_pgbase_nfs4_readlink_51921 pgbase nfs4_readlink 0 51921 NULL
163497 +enable_so_aead_sendmsg_fndecl_51926 aead_sendmsg fndecl 3 51926 NULL
163498 +enable_so_interfaces_fndecl_51928 interfaces fndecl 2 51928 NULL
163499 +enable_so_start_discovery_fndecl_51929 start_discovery fndecl 4 51929 NULL
163500 +enable_so_traverse_fndecl_51938 traverse fndecl 2 51938 NULL
163501 +enable_so_len_probe_resp_51942 len probe_resp 0 51942 NULL nohasharray
163502 +enable_so_probe_parport_driver_51942 probe parport_driver 0 51942 &enable_so_len_probe_resp_51942
163503 +enable_so_vram_vardecl_gxfb_core_c_51945 vram vardecl_gxfb_core.c 0 51945 NULL nohasharray
163504 +enable_so_tidcnt_ipath_tid_info_51945 tidcnt ipath_tid_info 0 51945 &enable_so_vram_vardecl_gxfb_core_c_51945
163505 +enable_so_nci_core_conn_create_fndecl_51946 nci_core_conn_create fndecl 4 51946 NULL
163506 +enable_so_rsi_mgmt_pkt_to_core_fndecl_51950 rsi_mgmt_pkt_to_core fndecl 3 51950 NULL
163507 +enable_so_size_mdp_superblock_s_51954 size mdp_superblock_s 0 51954 NULL
163508 +enable_so_max_channels_efx_nic_51955 max_channels efx_nic 0 51955 NULL nohasharray
163509 +enable_so___remaining_sg_mapping_iter_51955 __remaining sg_mapping_iter 0 51955 &enable_so_max_channels_efx_nic_51955 nohasharray
163510 +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
163511 +enable_so_num_mpt_mlx4_profile_51955 num_mpt mlx4_profile 0 51955 &enable_so_start_drm_i915_error_state_buf_51955
163512 +enable_so___blk_queue_init_tags_fndecl_51956 __blk_queue_init_tags fndecl 2 51956 NULL
163513 +enable_so_pipe_src_w_intel_crtc_state_51963 pipe_src_w intel_crtc_state 0 51963 NULL nohasharray
163514 +enable_so_num_eqs_mthca_limits_51963 num_eqs mthca_limits 0 51963 &enable_so_pipe_src_w_intel_crtc_state_51963
163515 +enable_so_bufsize_usbhid_device_51964 bufsize usbhid_device 0 51964 NULL nohasharray
163516 +enable_so_max_data_size_mpt3_ioctl_header_51964 max_data_size mpt3_ioctl_header 0 51964 &enable_so_bufsize_usbhid_device_51964
163517 +enable_so_dbgfs_state_fndecl_51965 dbgfs_state fndecl 3 51965 NULL
163518 +enable_so_pad_bits_regmap_config_51968 pad_bits regmap_config 0 51968 NULL nohasharray
163519 +enable_so_ieee80211_if_read_dtim_count_fndecl_51968 ieee80211_if_read_dtim_count fndecl 3 51968 &enable_so_pad_bits_regmap_config_51968
163520 +enable_so_req_lim_delta_srp_cred_req_51971 req_lim_delta srp_cred_req 0 51971 NULL
163521 +enable_so_asix_write_cmd_async_fndecl_51975 asix_write_cmd_async fndecl 5 51975 NULL
163522 +enable_so_pmcraid_copy_sglist_fndecl_51980 pmcraid_copy_sglist fndecl 3 51980 NULL
163523 +enable_so_pcnet32_realloc_tx_ring_fndecl_51983 pcnet32_realloc_tx_ring fndecl 3 51983 NULL
163524 +enable_so_bus_num_sm501_platdata_gpio_i2c_51989 bus_num sm501_platdata_gpio_i2c 0 51989 NULL
163525 +enable_so_f2fs_inode_by_name_fndecl_51991 f2fs_inode_by_name fndecl 0 51991 NULL
163526 +enable_so_ocfs2_which_cluster_group_fndecl_51998 ocfs2_which_cluster_group fndecl 0-2 51998 NULL
163527 +enable_so_mlx5_query_port_ptys_fndecl_52003 mlx5_query_port_ptys fndecl 3 52003 NULL
163528 +enable_so_kvm_write_guest_fndecl_52005 kvm_write_guest fndecl 2-4 52005 NULL
163529 +enable_so_s_last_psn_qib_qp_52008 s_last_psn qib_qp 0 52008 NULL nohasharray
163530 +enable_so_videobuf_waiton_fndecl_52008 videobuf_waiton fndecl 0 52008 &enable_so_s_last_psn_qib_qp_52008
163531 +enable_so_immediate_data_length_iscsi_build_list_52017 immediate_data_length iscsi_build_list 0 52017 NULL nohasharray
163532 +enable_so_size_fuse_write_out_52017 size fuse_write_out 0 52017 &enable_so_immediate_data_length_iscsi_build_list_52017
163533 +enable_so_batadv_iv_ogm_aggregate_new_fndecl_52022 batadv_iv_ogm_aggregate_new fndecl 2 52022 NULL
163534 +enable_so_seq_commit_fndecl_52023 seq_commit fndecl 2 52023 NULL
163535 +enable_so_write_segment_descriptor_fndecl_52025 write_segment_descriptor fndecl 2 52025 NULL
163536 +enable_so_dev_set_mtu_fndecl_52028 dev_set_mtu fndecl 2 52028 NULL
163537 +enable_so_blk_end_bidi_request_fndecl_52033 blk_end_bidi_request fndecl 3-4 52033 NULL
163538 +enable_so_kvm_arch_setup_async_pf_fndecl_52034 kvm_arch_setup_async_pf fndecl 3 52034 NULL
163539 +enable_so_c_height_g2d_frame_52036 c_height g2d_frame 0 52036 NULL
163540 +enable_so_ttm_dma_page_alloc_init_fndecl_52037 ttm_dma_page_alloc_init fndecl 2 52037 NULL nohasharray
163541 +enable_so_oobavail_mtd_info_52037 oobavail mtd_info 0 52037 &enable_so_ttm_dma_page_alloc_init_fndecl_52037
163542 +enable_so_gfs2_setattr_size_fndecl_52038 gfs2_setattr_size fndecl 2 52038 NULL nohasharray
163543 +enable_so_mapbase_priv_52038 mapbase priv 0 52038 &enable_so_gfs2_setattr_size_fndecl_52038
163544 +enable_so_xdr_shrink_pagelen_fndecl_52043 xdr_shrink_pagelen fndecl 2 52043 NULL nohasharray
163545 +enable_so_sysctl_sync_sock_size_netns_ipvs_52043 sysctl_sync_sock_size netns_ipvs 0 52043 &enable_so_xdr_shrink_pagelen_fndecl_52043
163546 +enable_so_num_controls_op_x86_model_spec_52044 num_controls op_x86_model_spec 0 52044 NULL
163547 +enable_so_btrfs_next_old_leaf_fndecl_52050 btrfs_next_old_leaf fndecl 0 52050 NULL nohasharray
163548 +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
163549 +enable_so_cxgb_change_mtu_fndecl_52055 cxgb_change_mtu fndecl 2 52055 NULL
163550 +enable_so__iwl_dbgfs_scan_ant_rxchain_write_fndecl_52060 _iwl_dbgfs_scan_ant_rxchain_write fndecl 3 52060 NULL
163551 +enable_so_event_rx_mismatch_read_fndecl_52069 event_rx_mismatch_read fndecl 3 52069 NULL
163552 +enable_so_lpfc_bsg_copy_data_fndecl_52084 lpfc_bsg_copy_data fndecl 0-3 52084 NULL
163553 +enable_so_iscsi_create_iface_fndecl_52093 iscsi_create_iface fndecl 5 52093 NULL
163554 +enable_so_dev_names_read_fndecl_52094 dev_names_read fndecl 3 52094 NULL
163555 +enable_so_assoc_rem_len_amp_ctrl_52099 assoc_rem_len amp_ctrl 0 52099 NULL
163556 +enable_so_drv_tx_rings_qlcnic_adapter_52102 drv_tx_rings qlcnic_adapter 0 52102 NULL
163557 +enable_so_btindex_jfs_inode_info_52105 btindex jfs_inode_info 0 52105 NULL nohasharray
163558 +enable_so_ceph_handle_auth_reply_fndecl_52105 ceph_handle_auth_reply fndecl 0 52105 &enable_so_btindex_jfs_inode_info_52105
163559 +enable_so_attr_bytes_osdv1_attributes_list_element_52106 attr_bytes osdv1_attributes_list_element 0 52106 NULL
163560 +enable_so_acl_pgbase_nfs_setaclargs_52107 acl_pgbase nfs_setaclargs 0 52107 NULL
163561 +enable_so_logical_offset_btrfs_ioctl_same_args_52108 logical_offset btrfs_ioctl_same_args 0 52108 NULL
163562 +enable_so_mmc_test_nonblock_transfer_fndecl_52112 mmc_test_nonblock_transfer fndecl 6-5-3 52112 NULL nohasharray
163563 +enable_so_MaxDevices__MSG_PORT_FACTS_REPLY_52112 MaxDevices _MSG_PORT_FACTS_REPLY 0 52112 &enable_so_mmc_test_nonblock_transfer_fndecl_52112
163564 +enable_so_mlx4_ib_db_map_user_fndecl_52114 mlx4_ib_db_map_user fndecl 2 52114 NULL
163565 +enable_so_nvkm_fb_create__fndecl_52118 nvkm_fb_create_ fndecl 4 52118 NULL
163566 +enable_so_logfs_new_meta_inode_fndecl_52119 logfs_new_meta_inode fndecl 2 52119 NULL
163567 +enable_so_max3421_transfer_out_done_fndecl_52121 max3421_transfer_out_done fndecl 0 52121 NULL nohasharray
163568 +enable_so_length_wsm_update_ie_52121 length wsm_update_ie 0 52121 &enable_so_max3421_transfer_out_done_fndecl_52121
163569 +enable_so_db_page_mthca_create_srq_52122 db_page mthca_create_srq 0 52122 NULL
163570 +enable_so_mtu_cmtp_session_52125 mtu cmtp_session 0 52125 NULL
163571 +enable_so_prepare_header95_fndecl_52127 prepare_header95 fndecl 0 52127 NULL
163572 +enable_so_iscsi_sw_tcp_recv_fndecl_52131 iscsi_sw_tcp_recv fndecl 3 52131 NULL
163573 +enable_so_s_inode_size_ext2_sb_info_52134 s_inode_size ext2_sb_info 0 52134 NULL
163574 +enable_so_copy_ctl_value_to_user_fndecl_52136 copy_ctl_value_to_user fndecl 4 52136 NULL
163575 +enable_so_xprt_rdma_inline_write_padding_vardecl_transport_c_52144 xprt_rdma_inline_write_padding vardecl_transport.c 0 52144 NULL nohasharray
163576 +enable_so_isofs_export_iget_fndecl_52144 isofs_export_iget fndecl 3-2 52144 &enable_so_xprt_rdma_inline_write_padding_vardecl_transport_c_52144
163577 +enable_so_tcp_sendmsg_fndecl_52147 tcp_sendmsg fndecl 3 52147 NULL nohasharray
163578 +enable_so_tcp_update_reordering_fndecl_52147 tcp_update_reordering fndecl 2 52147 &enable_so_tcp_sendmsg_fndecl_52147
163579 +enable_so_snd_nm256_playback_copy_fndecl_52148 snd_nm256_playback_copy fndecl 5 52148 NULL
163580 +enable_so_set_le_ih_k_type_fndecl_52149 set_le_ih_k_type fndecl 2 52149 NULL
163581 +enable_so_il4965_rs_sta_dbgfs_scale_table_read_fndecl_52151 il4965_rs_sta_dbgfs_scale_table_read fndecl 3 52151 NULL
163582 +enable_so_pep_indicate_fndecl_52160 pep_indicate fndecl 5 52160 NULL
163583 +enable_so_update_extent_info_fndecl_52163 update_extent_info fndecl 2-3 52163 NULL
163584 +enable_so_indirect_sg_entries_vardecl_ib_srp_c_52165 indirect_sg_entries vardecl_ib_srp.c 0 52165 NULL
163585 +enable_so_mpx_mmap_fndecl_52167 mpx_mmap fndecl 0-1 52167 NULL nohasharray
163586 +enable_so_nvkm_object_create__fndecl_52167 nvkm_object_create_ fndecl 5 52167 &enable_so_mpx_mmap_fndecl_52167
163587 +enable_so_nf_ct_sack_adjust_fndecl_52168 nf_ct_sack_adjust fndecl 2 52168 NULL
163588 +enable_so_mtdchar_lseek_fndecl_52170 mtdchar_lseek fndecl 2 52170 NULL
163589 +enable_so_compat_sys_ptrace_fndecl_52176 compat_sys_ptrace fndecl 3 52176 NULL
163590 +enable_so_b_length_xfs_buf_52177 b_length xfs_buf 0 52177 NULL
163591 +enable_so_log_sq_size_mlx5e_params_52182 log_sq_size mlx5e_params 0 52182 NULL
163592 +enable_so_smb_send_kvec_fndecl_52185 smb_send_kvec fndecl 3 52185 NULL
163593 +enable_so_rd_allocate_sgl_table_fndecl_52188 rd_allocate_sgl_table fndecl 3 52188 NULL
163594 +enable_so_virtfn_add_bus_fndecl_52190 virtfn_add_bus fndecl 2 52190 NULL
163595 +enable_so_ext2_readpages_fndecl_52195 ext2_readpages fndecl 4 52195 NULL nohasharray
163596 +enable_so_regmap_calc_reg_len_fndecl_52195 regmap_calc_reg_len fndecl 0 52195 &enable_so_ext2_readpages_fndecl_52195
163597 +enable_so_qp_broker_alloc_fndecl_52197 qp_broker_alloc fndecl 5-6 52197 NULL nohasharray
163598 +enable_so_patch_regs_regmap_52197 patch_regs regmap 0 52197 &enable_so_qp_broker_alloc_fndecl_52197
163599 +enable_so_audit_init_entry_fndecl_52199 audit_init_entry fndecl 1 52199 NULL
163600 +enable_so_metapage_get_blocks_fndecl_52200 metapage_get_blocks fndecl 0-2 52200 NULL
163601 +enable_so_mmc_send_cxd_data_fndecl_52204 mmc_send_cxd_data fndecl 5 52204 NULL
163602 +enable_so_num_lro_rxd_netxen_adapter_52211 num_lro_rxd netxen_adapter 0 52211 NULL
163603 +enable_so_write_enabled_file_bool_fndecl_52213 write_enabled_file_bool fndecl 3 52213 NULL
163604 +enable_so_num_dtv_properties_52216 num dtv_properties 0 52216 NULL
163605 +enable_so_numlower_ovl_entry_52218 numlower ovl_entry 0 52218 NULL
163606 +enable_so_BlockSize_erase_unit_header_t_52231 BlockSize erase_unit_header_t 0 52231 NULL
163607 +enable_so_lpc_sch_get_io_fndecl_52232 lpc_sch_get_io fndecl 5 52232 NULL
163608 +enable_so_nfs3_proc_readlink_fndecl_52235 nfs3_proc_readlink fndecl 4-3 52235 NULL
163609 +enable_so_num_ports_mthca_limits_52246 num_ports mthca_limits 0 52246 NULL
163610 +enable_so_efs_iget_fndecl_52247 efs_iget fndecl 2 52247 NULL
163611 +enable_so_size_elf_note_info_52250 size elf_note_info 0 52250 NULL
163612 +enable_so_snd_hda_get_conn_list_fndecl_52255 snd_hda_get_conn_list fndecl 0 52255 NULL
163613 +enable_so_bufsize_brcmf_console_52266 bufsize brcmf_console 0 52266 NULL
163614 +enable_so_value_len_xattr_52269 value_len xattr 0 52269 NULL nohasharray
163615 +enable_so_pd_idx_stripe_head_52269 pd_idx stripe_head 0 52269 &enable_so_value_len_xattr_52269
163616 +enable_so_hdsp_set_rate_fndecl_52271 hdsp_set_rate fndecl 2 52271 NULL nohasharray
163617 +enable_so_hfsplus_ext_find_block_fndecl_52271 hfsplus_ext_find_block fndecl 0 52271 &enable_so_hdsp_set_rate_fndecl_52271 nohasharray
163618 +enable_so_req_depth_pvscsi_adapter_52271 req_depth pvscsi_adapter 0 52271 &enable_so_hfsplus_ext_find_block_fndecl_52271
163619 +enable_so_set_multcount_fndecl_52272 set_multcount fndecl 2 52272 NULL
163620 +enable_so_hlen_raw_frag_vec_52276 hlen raw_frag_vec 0 52276 NULL
163621 +enable_so_num_alt_cx231xx_audio_52283 num_alt cx231xx_audio 0 52283 NULL
163622 +enable_so_length_sigma_fw_chunk_52285 length sigma_fw_chunk 0 52285 NULL
163623 +enable_so_hpfs_alloc_dnode_fndecl_52288 hpfs_alloc_dnode fndecl 2 52288 NULL
163624 +enable_so_read_pointer_osst_buffer_52292 read_pointer osst_buffer 0 52292 NULL
163625 +enable_so_reserve_low_vardecl_setup_c_52293 reserve_low vardecl_setup.c 0 52293 NULL
163626 +enable_so_rts51x_get_max_lun_fndecl_52294 rts51x_get_max_lun fndecl 0 52294 NULL
163627 +enable_so_npage_vwork_52298 npage vwork 0 52298 NULL
163628 +enable_so_slot_legacy_probe_52300 slot legacy_probe 0 52300 NULL
163629 +enable_so_setup_items_for_insert_fndecl_52301 setup_items_for_insert fndecl 7 52301 NULL
163630 +enable_so_origin_size_thin_c_52302 origin_size thin_c 0 52302 NULL
163631 +enable_so_longest_match_fndecl_52304 longest_match fndecl 0 52304 NULL
163632 +enable_so_alloc_page_ext_fndecl_52310 alloc_page_ext fndecl 1 52310 NULL
163633 +enable_so_h_stop_saa7134_tvnorm_52311 h_stop saa7134_tvnorm 0 52311 NULL
163634 +enable_so_rss_table_entry_width_i40e_hw_capabilities_52312 rss_table_entry_width i40e_hw_capabilities 0 52312 NULL
163635 +enable_so_ep_out_kingsun_cb_52317 ep_out kingsun_cb 0 52317 NULL
163636 +enable_so_pglen_nfs4_readlink_52318 pglen nfs4_readlink 0 52318 NULL
163637 +enable_so_cmd_len_c2h_evt_hdr_52322 cmd_len c2h_evt_hdr 0 52322 NULL
163638 +enable_so_rx_filter_dup_filter_read_fndecl_52325 rx_filter_dup_filter_read fndecl 3 52325 NULL
163639 +enable_so_iwl_dbgfs_d3_sram_read_fndecl_52326 iwl_dbgfs_d3_sram_read fndecl 3 52326 NULL
163640 +enable_so_cxgbi_conn_init_pdu_fndecl_52327 cxgbi_conn_init_pdu fndecl 3 52327 NULL
163641 +enable_so_inline_rsize_rpcrdma_create_data_internal_52331 inline_rsize rpcrdma_create_data_internal 0 52331 NULL
163642 +enable_so_regmap_access_read_file_fndecl_52340 regmap_access_read_file fndecl 3 52340 NULL nohasharray
163643 +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
163644 +enable_so___do_replace_fndecl_52344 __do_replace fndecl 5 52344 NULL
163645 +enable_so_xpc_connect_fndecl_52346 xpc_connect fndecl 5 52346 NULL
163646 +enable_so_mac_header_sk_buff_52356 mac_header sk_buff 0 52356 NULL
163647 +enable_so__iwl_dbgfs_fw_restart_write_fndecl_52357 _iwl_dbgfs_fw_restart_write fndecl 3 52357 NULL
163648 +enable_so_pipe_src_h_intel_crtc_state_52358 pipe_src_h intel_crtc_state 0 52358 NULL nohasharray
163649 +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
163650 +enable_so_rtl_read_byte_fndecl_52358 rtl_read_byte fndecl 0 52358 &enable_so_blk_queue_max_hw_sectors_fndecl_52358
163651 +enable_so_nested_svm_map_fndecl_52359 nested_svm_map fndecl 2 52359 NULL
163652 +enable_so_nr_upid_52360 nr upid 0 52360 NULL
163653 +enable_so_lro_add_common_fndecl_52363 lro_add_common fndecl 4 52363 NULL
163654 +enable_so_r_cpos_ocfs2_refcount_rec_52365 r_cpos ocfs2_refcount_rec 0 52365 NULL nohasharray
163655 +enable_so_create_cq_user_fndecl_52365 create_cq_user fndecl 5 52365 &enable_so_r_cpos_ocfs2_refcount_rec_52365
163656 +enable_so_se_callback_netid_len_nfsd4_setclientid_52366 se_callback_netid_len nfsd4_setclientid 0 52366 NULL
163657 +enable_so_req_depth__MPT_ADAPTER_52375 req_depth _MPT_ADAPTER 0 52375 NULL nohasharray
163658 +enable_so_num_phys_mptsas_portinfo_52375 num_phys mptsas_portinfo 0 52375 &enable_so_req_depth__MPT_ADAPTER_52375
163659 +enable_so_rh_string_fndecl_52376 rh_string fndecl 0-4 52376 NULL nohasharray
163660 +enable_so_nrealreaders_vardecl_rcutorture_c_52376 nrealreaders vardecl_rcutorture.c 0 52376 &enable_so_rh_string_fndecl_52376
163661 +enable_so_bMaxBurst_usb_ss_ep_comp_descriptor_52382 bMaxBurst usb_ss_ep_comp_descriptor 0 52382 NULL
163662 +enable_so_ath6kl_wmi_set_ie_cmd_fndecl_52383 ath6kl_wmi_set_ie_cmd fndecl 6-2 52383 NULL nohasharray
163663 +enable_so_sg_pgoffset_sg_page_iter_52383 sg_pgoffset sg_page_iter 0 52383 &enable_so_ath6kl_wmi_set_ie_cmd_fndecl_52383
163664 +enable_so_raw_bufsize_edt_ft5x06_ts_data_52390 raw_bufsize edt_ft5x06_ts_data 0 52390 NULL
163665 +enable_so_ieee80211_if_read_power_mode_fndecl_52394 ieee80211_if_read_power_mode fndecl 3 52394 NULL
163666 +enable_so_jffs2_write_dirent_fndecl_52396 jffs2_write_dirent fndecl 5 52396 NULL
163667 +enable_so_u132_hcd_initial_input_recv_fndecl_52397 u132_hcd_initial_input_recv fndecl 4 52397 NULL
163668 +enable_so_length_TAG_TW_SG_Entry_52403 length TAG_TW_SG_Entry 0 52403 NULL
163669 +enable_so_eapol_len_wmi_eapol_rx_event_52408 eapol_len wmi_eapol_rx_event 0 52408 NULL
163670 +enable_so_command_fndecl_52411 command fndecl 0 52411 NULL
163671 +enable_so_wm8904_set_fll_fndecl_52413 wm8904_set_fll fndecl 4-5 52413 NULL
163672 +enable_so_agp_return_size_fndecl_52417 agp_return_size fndecl 0 52417 NULL nohasharray
163673 +enable_so_scsi_mode_select_fndecl_52417 scsi_mode_select fndecl 6 52417 &enable_so_agp_return_size_fndecl_52417
163674 +enable_so_sddr09_read_control_fndecl_52418 sddr09_read_control fndecl 3-5 52418 NULL
163675 +enable_so_group_ocfs2_new_group_input_52421 group ocfs2_new_group_input 0 52421 NULL
163676 +enable_so_rate_n_flags_il_ht_agg_52426 rate_n_flags il_ht_agg 0 52426 NULL
163677 +enable_so_move_vma_fndecl_52430 move_vma fndecl 4-5-2-3 52430 NULL
163678 +enable_so_zap_pte_range_fndecl_52434 zap_pte_range fndecl 4-0 52434 NULL
163679 +enable_so_nvkm_instobj_create__fndecl_52440 nvkm_instobj_create_ fndecl 4 52440 NULL
163680 +enable_so_min_scaled_width_bttv_crop_52442 min_scaled_width bttv_crop 0 52442 NULL
163681 +enable_so_max_tag_sym_driver_setup_52443 max_tag sym_driver_setup 0 52443 NULL
163682 +enable_so_dvb_max_pkt_size_isoc_em28xx_52444 dvb_max_pkt_size_isoc em28xx 0 52444 NULL nohasharray
163683 +enable_so_map_nth_dirent_fndecl_52444 map_nth_dirent fndecl 2 52444 &enable_so_dvb_max_pkt_size_isoc_em28xx_52444
163684 +enable_so_bulk_out_size_usb_serial_port_52448 bulk_out_size usb_serial_port 0 52448 NULL
163685 +enable_so_wl1251_spi_write_fndecl_52450 wl1251_spi_write fndecl 4 52450 NULL nohasharray
163686 +enable_so_corr_peb_count_ubi_device_52450 corr_peb_count ubi_device 0 52450 &enable_so_wl1251_spi_write_fndecl_52450
163687 +enable_so_can_queue_scsi_host_template_52454 can_queue scsi_host_template 0 52454 NULL
163688 +enable_so_end_bus_pci_mmcfg_region_52468 end_bus pci_mmcfg_region 0 52468 NULL
163689 +enable_so_nvi_vf_resources_52470 nvi vf_resources 0 52470 NULL
163690 +enable_so_sz_field_t_52472 sz field_t 0 52472 NULL
163691 +enable_so_security_inode_getsecurity_fndecl_52473 security_inode_getsecurity fndecl 0 52473 NULL
163692 +enable_so_metadata_snap_era_metadata_52475 metadata_snap era_metadata 0 52475 NULL
163693 +enable_so_ib_ucm_alloc_data_fndecl_52486 ib_ucm_alloc_data fndecl 3 52486 NULL
163694 +enable_so_eqpc_entry_sz_mthca_dev_lim_52498 eqpc_entry_sz mthca_dev_lim 0 52498 NULL
163695 +enable_so_s_clustersize_bits_ocfs2_super_52499 s_clustersize_bits ocfs2_super 0 52499 NULL
163696 +enable_so_tx_tx_data_programmed_read_fndecl_52500 tx_tx_data_programmed_read fndecl 3 52500 NULL
163697 +enable_so_ipath_portcnt_ipath_devdata_52503 ipath_portcnt ipath_devdata 0 52503 NULL nohasharray
163698 +enable_so_ControllerNumber_DAC960_Controller_52503 ControllerNumber DAC960_Controller 0 52503 &enable_so_ipath_portcnt_ipath_devdata_52503
163699 +enable_so_used_ubifs_wbuf_52504 used ubifs_wbuf 0 52504 NULL
163700 +enable_so_xfs_vm_kill_delalloc_range_fndecl_52505 xfs_vm_kill_delalloc_range fndecl 2 52505 NULL
163701 +enable_so_svc_setsockopt_fndecl_52511 svc_setsockopt fndecl 5 52511 NULL
163702 +enable_so_il4965_rs_get_lower_rate_fndecl_52514 il4965_rs_get_lower_rate fndecl 3 52514 NULL
163703 +enable_so_num_sprole_pws_gr_arg_52515 num_sprole_pws gr_arg 0 52515 NULL
163704 +enable_so_size_virtio_gpu_vbuffer_52521 size virtio_gpu_vbuffer 0 52521 NULL
163705 +enable_so_copy_batch_fndecl_52524 copy_batch fndecl 3-4 52524 NULL
163706 +enable_so_refcount_loc_ocfs2_move_extents_context_52526 refcount_loc ocfs2_move_extents_context 0 52526 NULL
163707 +enable_so_vm_cmdline_id_vardecl_virtio_mmio_c_52527 vm_cmdline_id vardecl_virtio_mmio.c 0 52527 NULL
163708 +enable_so_tas5086_register_size_fndecl_52528 tas5086_register_size fndecl 0 52528 NULL
163709 +enable_so_fps_solo_dev_52530 fps solo_dev 0 52530 NULL
163710 +enable_so_selinux_inode_notifysecctx_fndecl_52531 selinux_inode_notifysecctx fndecl 3 52531 NULL
163711 +enable_so_iov_offset_iov_iter_52535 iov_offset iov_iter 0 52535 NULL
163712 +enable_so_rx_buf_sz_hamachi_private_52536 rx_buf_sz hamachi_private 0 52536 NULL
163713 +enable_so_queue_pair_size_vmci_transport_52540 queue_pair_size vmci_transport 0 52540 NULL
163714 +enable_so_packet_sendmsg_spkt_fndecl_52542 packet_sendmsg_spkt fndecl 3 52542 NULL
163715 +enable_so_rdb_shift_mthca_qp_table_52547 rdb_shift mthca_qp_table 0 52547 NULL
163716 +enable_so_dccp_insert_option_fndecl_52554 dccp_insert_option fndecl 4 52554 NULL
163717 +enable_so_ovfx2_i2c_r_fndecl_52555 ovfx2_i2c_r fndecl 0 52555 NULL
163718 +enable_so_write_leb_fndecl_52558 write_leb fndecl 5 52558 NULL
163719 +enable_so_num_mtt_mlx4_profile_52565 num_mtt mlx4_profile 0 52565 NULL
163720 +enable_so_data_size_binder_transaction_data_52567 data_size binder_transaction_data 0 52567 NULL
163721 +enable_so_height_intel_rotation_info_52570 height intel_rotation_info 0 52570 NULL nohasharray
163722 +enable_so_nents_isert_data_buf_52570 nents isert_data_buf 0 52570 &enable_so_height_intel_rotation_info_52570
163723 +enable_so_end_logsuper_52574 end logsuper 0 52574 NULL
163724 +enable_so_amdgpu_ttm_tt_set_userptr_fndecl_52575 amdgpu_ttm_tt_set_userptr fndecl 2 52575 NULL
163725 +enable_so_device_create_groups_vargs_fndecl_52576 device_create_groups_vargs fndecl 3 52576 NULL nohasharray
163726 +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
163727 +enable_so___mincore_unmapped_range_fndecl_52595 __mincore_unmapped_range fndecl 1 52595 NULL
163728 +enable_so_xfs_shift_file_space_fndecl_52596 xfs_shift_file_space fndecl 2-3 52596 NULL
163729 +enable_so_cached_dev_init_fndecl_52600 cached_dev_init fndecl 2 52600 NULL
163730 +enable_so_ext4_da_write_end_fndecl_52605 ext4_da_write_end fndecl 5-3 52605 NULL
163731 +enable_so_length_usbdevfs_iso_packet_desc_52610 length usbdevfs_iso_packet_desc 0 52610 NULL
163732 +enable_so_ondemand_readahead_fndecl_52612 ondemand_readahead fndecl 5 52612 NULL
163733 +enable_so_datalen_tcf_ematch_52613 datalen tcf_ematch 0 52613 NULL
163734 +enable_so_wl1251_spi_read_fndecl_52615 wl1251_spi_read fndecl 4 52615 NULL
163735 +enable_so___logfs_write_je_fndecl_52617 __logfs_write_je fndecl 4 52617 NULL nohasharray
163736 +enable_so_max_sge_ib_device_attr_52617 max_sge ib_device_attr 0 52617 &enable_so___logfs_write_je_fndecl_52617
163737 +enable_so__set_error_resid_fndecl_52623 _set_error_resid fndecl 3 52623 NULL
163738 +enable_so_drbd_new_dev_size_fndecl_52629 drbd_new_dev_size fndecl 0-3 52629 NULL
163739 +enable_so_auok190xfb_write_fndecl_52634 auok190xfb_write fndecl 3 52634 NULL
163740 +enable_so_setxattr_fndecl_52637 setxattr fndecl 4 52637 NULL nohasharray
163741 +enable_so_burst_len_qcaspi_52637 burst_len qcaspi 0 52637 &enable_so_setxattr_fndecl_52637
163742 +enable_so___do_fault_fndecl_52642 __do_fault fndecl 3 52642 NULL
163743 +enable_so_page_count_drm_device_dma_52645 page_count drm_device_dma 0 52645 NULL
163744 +enable_so_num_txq_per_tx_bnad_52646 num_txq_per_tx bnad 0 52646 NULL
163745 +enable_so_bop_insert_nilfs_bmap_operations_52653 bop_insert nilfs_bmap_operations 0 52653 NULL
163746 +enable_so_qp_broker_create_fndecl_52654 qp_broker_create fndecl 5-6 52654 NULL
163747 +enable_so_extra_bytes_sym_ccb_52656 extra_bytes sym_ccb 0 52656 NULL
163748 +enable_so_block_size_ms_boot_attr_info_52659 block_size ms_boot_attr_info 0 52659 NULL
163749 +enable_so_ieee80211_chsw_switch_vifs_fndecl_52661 ieee80211_chsw_switch_vifs fndecl 2 52661 NULL
163750 +enable_so_ec_i2c_xfer_fndecl_52662 ec_i2c_xfer fndecl 3 52662 NULL
163751 +enable_so_size_drm_exynos_g2d_userptr_52663 size drm_exynos_g2d_userptr 0 52663 NULL
163752 +enable_so_snd_hdac_get_sub_nodes_fndecl_52668 snd_hdac_get_sub_nodes fndecl 0 52668 NULL
163753 +enable_so_vt_ast_vbios_enhtable_52669 vt ast_vbios_enhtable 0 52669 NULL nohasharray
163754 +enable_so_command_file_read_fndecl_52669 command_file_read fndecl 3 52669 &enable_so_vt_ast_vbios_enhtable_52669
163755 +enable_so_retry_long_wiphy_52670 retry_long wiphy 0 52670 NULL
163756 +enable_so_vmap_batch_fndecl_52675 vmap_batch fndecl 2-3 52675 NULL
163757 +enable_so_parse_command_fndecl_52676 parse_command fndecl 2 52676 NULL
163758 +enable_so_pcm512x_sck_max_fndecl_52677 pcm512x_sck_max fndecl 0 52677 NULL nohasharray
163759 +enable_so_SYSC_setxattr_fndecl_52677 SYSC_setxattr fndecl 4 52677 &enable_so_pcm512x_sck_max_fndecl_52677
163760 +enable_so_drm_mode_create_rotation_property_fndecl_52681 drm_mode_create_rotation_property fndecl 2 52681 NULL
163761 +enable_so_length_oz_elt_52682 length oz_elt 0 52682 NULL
163762 +enable_so_num_snd_urbs_vardecl_usbatm_c_52685 num_snd_urbs vardecl_usbatm.c 0 52685 NULL
163763 +enable_so_btrfs_double_extent_unlock_fndecl_52687 btrfs_double_extent_unlock fndecl 2-4-5 52687 NULL
163764 +enable_so_fpHeight_nvidia_par_52691 fpHeight nvidia_par 0 52691 NULL nohasharray
163765 +enable_so_urb_done_max3421_hcd_52691 urb_done max3421_hcd 0 52691 &enable_so_fpHeight_nvidia_par_52691
163766 +enable_so_max_data_link_payload_nfc_hci_dev_52699 max_data_link_payload nfc_hci_dev 0 52699 NULL
163767 +enable_so__iwl_dbgfs_bcast_filters_macs_write_fndecl_52702 _iwl_dbgfs_bcast_filters_macs_write fndecl 3 52702 NULL
163768 +enable_so_count_vfio_pci_hot_reset_52708 count vfio_pci_hot_reset 0 52708 NULL
163769 +enable_so_gen_ie_buf_len_mwifiex_private_52710 gen_ie_buf_len mwifiex_private 0 52710 NULL
163770 +enable_so_s_je_fill_logfs_super_52713 s_je_fill logfs_super 0 52713 NULL
163771 +enable_so_videomemorysize_vardecl_vfb_c_52716 videomemorysize vardecl_vfb.c 0 52716 NULL nohasharray
163772 +enable_so_wptr_old_radeon_ring_52716 wptr_old radeon_ring 0 52716 &enable_so_videomemorysize_vardecl_vfb_c_52716
163773 +enable_so_pipeline_cs_rx_packet_in_read_fndecl_52722 pipeline_cs_rx_packet_in_read fndecl 3 52722 NULL
163774 +enable_so_einj_error_inject_fndecl_52724 einj_error_inject fndecl 4-3 52724 NULL
163775 +enable_so_cifs_min_small_vardecl_52732 cifs_min_small vardecl 0 52732 NULL
163776 +enable_so_vmw_framebuffer_dmabuf_dirty_fndecl_52750 vmw_framebuffer_dmabuf_dirty fndecl 6 52750 NULL
163777 +enable_so_dd_fcrport_size_fc_function_template_52753 dd_fcrport_size fc_function_template 0 52753 NULL
163778 +enable_so_SyS_mbind_fndecl_52757 SyS_mbind fndecl 5 52757 NULL
163779 +enable_so_num_btns_cyttsp4_sysinfo_ofs_52758 num_btns cyttsp4_sysinfo_ofs 0 52758 NULL
163780 +enable_so_usbhs_pkt_push_fndecl_52759 usbhs_pkt_push fndecl 5 52759 NULL nohasharray
163781 +enable_so_dr_blkno_ocfs2_dx_root_block_52759 dr_blkno ocfs2_dx_root_block 0 52759 &enable_so_usbhs_pkt_push_fndecl_52759
163782 +enable_so_playback_frlog_rme96_52763 playback_frlog rme96 0 52763 NULL
163783 +enable_so_height_drm_radeon_texture_52764 height drm_radeon_texture 0 52764 NULL
163784 +enable_so_wIDIbytesPerSector_ms_bootblock_idi_52770 wIDIbytesPerSector ms_bootblock_idi 0 52770 NULL
163785 +enable_so_size_drm_i915_gem_create_52771 size drm_i915_gem_create 0 52771 NULL
163786 +enable_so_maxBuf_TCP_Server_Info_52774 maxBuf TCP_Server_Info 0 52774 NULL nohasharray
163787 +enable_so_regmap_map_read_file_fndecl_52774 regmap_map_read_file fndecl 3 52774 &enable_so_maxBuf_TCP_Server_Info_52774
163788 +enable_so_leaf_paste_entries_fndecl_52780 leaf_paste_entries fndecl 4-7 52780 NULL
163789 +enable_so_SYSC_get_mempolicy_fndecl_52787 SYSC_get_mempolicy fndecl 3 52787 NULL
163790 +enable_so_setup_transfer_spi_bitbang_52790 setup_transfer spi_bitbang 0 52790 NULL
163791 +enable_so_qxl_allocate_chunk_fndecl_52791 qxl_allocate_chunk fndecl 4 52791 NULL nohasharray
163792 +enable_so_tcp_mss_split_point_fndecl_52791 tcp_mss_split_point fndecl 0 52791 &enable_so_qxl_allocate_chunk_fndecl_52791
163793 +enable_so_batadv_get_vid_fndecl_52792 batadv_get_vid fndecl 2 52792 NULL nohasharray
163794 +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
163795 +enable_so___wa_seg_calculate_isoc_frame_count_fndecl_52795 __wa_seg_calculate_isoc_frame_count fndecl 0 52795 NULL
163796 +enable_so_buffer_size_vardecl_ethoc_c_52796 buffer_size vardecl_ethoc.c 0 52796 NULL
163797 +enable_so_payload_len_bfa_bsg_data_52800 payload_len bfa_bsg_data 0 52800 NULL
163798 +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
163799 +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
163800 +enable_so_ule_sndu_type_dvb_net_priv_52811 ule_sndu_type dvb_net_priv 0 52811 NULL
163801 +enable_so_mmc_test_map_sg_fndecl_52812 mmc_test_map_sg fndecl 6-5-8-2 52812 NULL
163802 +enable_so_prev_rs_il3945_rate_info_52819 prev_rs il3945_rate_info 0 52819 NULL
163803 +enable_so_ata_scsi_change_queue_depth_fndecl_52821 ata_scsi_change_queue_depth fndecl 2 52821 NULL
163804 +enable_so_retry_short_wiphy_52822 retry_short wiphy 0 52822 NULL nohasharray
163805 +enable_so_brcmf_sdiod_recv_chain_fndecl_52822 brcmf_sdiod_recv_chain fndecl 3 52822 &enable_so_retry_short_wiphy_52822
163806 +enable_so_wiphy_new_nm_fndecl_52833 wiphy_new_nm fndecl 2 52833 NULL
163807 +enable_so_xdr_encode_array2_fndecl_52834 xdr_encode_array2 fndecl 0-2 52834 NULL
163808 +enable_so_ocfs2_control_cfu_fndecl_52837 ocfs2_control_cfu fndecl 2 52837 NULL
163809 +enable_so_ocfs2_duplicate_clusters_by_jbd_fndecl_52838 ocfs2_duplicate_clusters_by_jbd fndecl 4-5 52838 NULL nohasharray
163810 +enable_so_xfs_read_agf_fndecl_52838 xfs_read_agf fndecl 3 52838 &enable_so_ocfs2_duplicate_clusters_by_jbd_fndecl_52838
163811 +enable_so_ipath_cdev_init_fndecl_52843 ipath_cdev_init fndecl 1 52843 NULL
163812 +enable_so_ext2_fsync_fndecl_52850 ext2_fsync fndecl 2-3 52850 NULL
163813 +enable_so_s_hdrwords_ipath_qp_52860 s_hdrwords ipath_qp 0 52860 NULL
163814 +enable_so_netxen_validate_ringparam_fndecl_52863 netxen_validate_ringparam fndecl 0 52863 NULL
163815 +enable_so_wqe_shift_mlx5_ib_wq_52867 wqe_shift mlx5_ib_wq 0 52867 NULL nohasharray
163816 +enable_so_mlx4_load_one_fndecl_52867 mlx4_load_one fndecl 3 52867 &enable_so_wqe_shift_mlx5_ib_wq_52867
163817 +enable_so_video_ram_radeonfb_info_52868 video_ram radeonfb_info 0 52868 NULL
163818 +enable_so_ddata_ofsh_cyttsp4_sysinfo_data_52870 ddata_ofsh cyttsp4_sysinfo_data 0 52870 NULL
163819 +enable_so_scsi_debug_sector_size_vardecl_scsi_debug_c_52879 scsi_debug_sector_size vardecl_scsi_debug.c 0 52879 NULL
163820 +enable_so_offset_pipe_buffer_52880 offset pipe_buffer 0 52880 NULL
163821 +enable_so_address_length_acpi_resource_memory24_52885 address_length acpi_resource_memory24 0 52885 NULL nohasharray
163822 +enable_so_dccp_setsockopt_cscov_fndecl_52885 dccp_setsockopt_cscov fndecl 2-0 52885 &enable_so_address_length_acpi_resource_memory24_52885
163823 +enable_so_nvram_len_nvram_parser_52887 nvram_len nvram_parser 0 52887 NULL
163824 +enable_so_buffer_size_vardecl_ir_usb_c_52893 buffer_size vardecl_ir-usb.c 0 52893 NULL
163825 +enable_so_ino_jffs2_full_dirent_52898 ino jffs2_full_dirent 0 52898 NULL nohasharray
163826 +enable_so_max_pde_used_amdgpu_vm_52898 max_pde_used amdgpu_vm 0 52898 &enable_so_ino_jffs2_full_dirent_52898
163827 +enable_so_ocrdma_alloc_frmr_page_list_fndecl_52900 ocrdma_alloc_frmr_page_list fndecl 2 52900 NULL
163828 +enable_so_data_len_hermes_rx_descriptor_52909 data_len hermes_rx_descriptor 0 52909 NULL
163829 +enable_so_rx_decrypt_key_not_found_read_fndecl_52911 rx_decrypt_key_not_found_read fndecl 3 52911 NULL
163830 +enable_so_buf_width_s5p_mfc_ctx_52912 buf_width s5p_mfc_ctx 0 52912 NULL
163831 +enable_so_il4965_rs_sta_dbgfs_rate_scale_data_read_fndecl_52915 il4965_rs_sta_dbgfs_rate_scale_data_read fndecl 3 52915 NULL
163832 +enable_so_dir_seek_data_fndecl_52916 dir_seek_data fndecl 2-0 52916 NULL nohasharray
163833 +enable_so_of_alias_add_fndecl_52916 of_alias_add fndecl 3 52916 &enable_so_dir_seek_data_fndecl_52916 nohasharray
163834 +enable_so_cqc_entry_sz_mlx4_dev_cap_52916 cqc_entry_sz mlx4_dev_cap 0 52916 &enable_so_of_alias_add_fndecl_52916
163835 +enable_so_num_tx_queues_e1000_adapter_52922 num_tx_queues e1000_adapter 0 52922 NULL
163836 +enable_so_smk_read_logging_fndecl_52927 smk_read_logging fndecl 3 52927 NULL
163837 +enable_so_swd_swregs_state_52928 swd swregs_state 0 52928 NULL
163838 +enable_so_count_i40e_ring_52936 count i40e_ring 0 52936 NULL nohasharray
163839 +enable_so_max_write_shift_ubifs_info_52936 max_write_shift ubifs_info 0 52936 &enable_so_count_i40e_ring_52936 nohasharray
163840 +enable_so_o2hb_debug_read_fndecl_52936 o2hb_debug_read fndecl 3 52936 &enable_so_max_write_shift_ubifs_info_52936
163841 +enable_so_si2165_write_fndecl_52941 si2165_write fndecl 4 52941 NULL
163842 +enable_so_rules_count_canid_match_52943 rules_count canid_match 0 52943 NULL nohasharray
163843 +enable_so_num_rx_ethoc_52943 num_rx ethoc 0 52943 &enable_so_rules_count_canid_match_52943
163844 +enable_so_pipe_urb_52947 pipe urb 0 52947 NULL
163845 +enable_so_minor_drbd_genlmsghdr_52949 minor drbd_genlmsghdr 0 52949 NULL
163846 +enable_so_position_jfs_dirent_52952 position jfs_dirent 0 52952 NULL
163847 +enable_so_trigger_level_eg20t_port_52953 trigger_level eg20t_port 0 52953 NULL
163848 +enable_so_i2c_read_demod_bytes_fndecl_52958 i2c_read_demod_bytes fndecl 4 52958 NULL
163849 +enable_so_bnx2fc_get_paged_crc_eof_fndecl_52960 bnx2fc_get_paged_crc_eof fndecl 2 52960 NULL
163850 +enable_so_fw_size_pvr2_hdw_52961 fw_size pvr2_hdw 0 52961 NULL
163851 +enable_so_rsp_size_srpt_rdma_ch_52963 rsp_size srpt_rdma_ch 0 52963 NULL
163852 +enable_so_musb_h_ep0_continue_fndecl_52966 musb_h_ep0_continue fndecl 2 52966 NULL
163853 +enable_so_sys_setxattr_fndecl_52971 sys_setxattr fndecl 4 52971 NULL
163854 +enable_so_dma_start_lo_rx_buf_desc_52972 dma_start_lo rx_buf_desc 0 52972 NULL
163855 +enable_so_dataOutSize_mpt_ioctl_command_52974 dataOutSize mpt_ioctl_command 0 52974 NULL
163856 +enable_so_dvb_net_sec_fndecl_52975 dvb_net_sec fndecl 3 52975 NULL nohasharray
163857 +enable_so_xdr_truncate_encode_fndecl_52975 xdr_truncate_encode fndecl 2 52975 &enable_so_dvb_net_sec_fndecl_52975
163858 +enable_so_scatter_n_efx_rx_queue_52988 scatter_n efx_rx_queue 0 52988 NULL
163859 +enable_so_xfs_dir2_block_to_sf_fndecl_52991 xfs_dir2_block_to_sf fndecl 3 52991 NULL
163860 +enable_so_max_rx_agg_size_iwl_cfg_52997 max_rx_agg_size iwl_cfg 0 52997 NULL
163861 +enable_so_hidp_output_report_fndecl_53002 hidp_output_report fndecl 3 53002 NULL
163862 +enable_so_actual_length_urb_53003 actual_length urb 0 53003 NULL
163863 +enable_so___shadow_block_fndecl_53011 __shadow_block fndecl 2 53011 NULL nohasharray
163864 +enable_so_max_mlx4_srq_53011 max mlx4_srq 0 53011 &enable_so___shadow_block_fndecl_53011
163865 +enable_so_gfs2_direct_IO_fndecl_53014 gfs2_direct_IO fndecl 3 53014 NULL
163866 +enable_so_BC_Read_Reg_IsdnCardState_53020 BC_Read_Reg IsdnCardState 0 53020 NULL
163867 +enable_so_bytesused_ivtv_buffer_53021 bytesused ivtv_buffer 0 53021 NULL
163868 +enable_so_tty_insert_flip_string_fixed_flag_fndecl_53031 tty_insert_flip_string_fixed_flag fndecl 4-0 53031 NULL
163869 +enable_so___vlan_del_fndecl_53037 __vlan_del fndecl 2 53037 NULL
163870 +enable_so_xfs_filestream_pick_ag_fndecl_53040 xfs_filestream_pick_ag fndecl 2 53040 NULL nohasharray
163871 +enable_so_nports0_adapter_info_53040 nports0 adapter_info 0 53040 &enable_so_xfs_filestream_pick_ag_fndecl_53040
163872 +enable_so_xmit_fifo_size_serial_struct_53048 xmit_fifo_size serial_struct 0 53048 NULL
163873 +enable_so_fcoe_alloc_paged_crc_eof_fndecl_53049 fcoe_alloc_paged_crc_eof fndecl 2 53049 NULL nohasharray
163874 +enable_so_sys_getxattr_fndecl_53049 sys_getxattr fndecl 4 53049 &enable_so_fcoe_alloc_paged_crc_eof_fndecl_53049
163875 +enable_so_rqsize_hwif_s_53050 rqsize hwif_s 0 53050 NULL
163876 +enable_so_rx_pad_len_hif_device_usb_53051 rx_pad_len hif_device_usb 0 53051 NULL
163877 +enable_so_dm_bm_write_lock_zero_fndecl_53053 dm_bm_write_lock_zero fndecl 2 53053 NULL nohasharray
163878 +enable_so_acpi_os_allocate_zeroed_fndecl_53053 acpi_os_allocate_zeroed fndecl 1 53053 &enable_so_dm_bm_write_lock_zero_fndecl_53053
163879 +enable_so_cols_cros_ec_keyb_53054 cols cros_ec_keyb 0 53054 NULL
163880 +enable_so_m_len_ext4_map_blocks_53056 m_len ext4_map_blocks 0 53056 NULL
163881 +enable_so_s_inode_size_nilfs_super_block_53064 s_inode_size nilfs_super_block 0 53064 NULL
163882 +enable_so_ext4_write_end_fndecl_53067 ext4_write_end fndecl 5-3 53067 NULL
163883 +enable_so_get_pdev_same_bus_fndecl_53069 get_pdev_same_bus fndecl 2 53069 NULL
163884 +enable_so_kvm_vcpu_write_guest_page_fndecl_53070 kvm_vcpu_write_guest_page fndecl 2-5 53070 NULL
163885 +enable_so_rcvegrcnt_qib_chip_specific_53071 rcvegrcnt qib_chip_specific 0 53071 NULL
163886 +enable_so_omap_hwmod_mux_init_fndecl_53072 omap_hwmod_mux_init fndecl 2 53072 NULL
163887 +enable_so_fru_alloc_fndecl_53073 fru_alloc fndecl 1 53073 NULL
163888 +enable_so_get_rx_frame_len_sxgbe_desc_ops_53074 get_rx_frame_len sxgbe_desc_ops 0 53074 NULL
163889 +enable_so_wMTU_usb_cdc_mbim_extended_desc_53075 wMTU usb_cdc_mbim_extended_desc 0 53075 NULL nohasharray
163890 +enable_so_tty_audit_log_fndecl_53075 tty_audit_log fndecl 5 53075 &enable_so_wMTU_usb_cdc_mbim_extended_desc_53075
163891 +enable_so_vmw_shader_alloc_fndecl_53077 vmw_shader_alloc fndecl 3 53077 NULL
163892 +enable_so_tcp_established_options_fndecl_53081 tcp_established_options fndecl 0 53081 NULL nohasharray
163893 +enable_so_map_swap_entry_fndecl_53081 map_swap_entry fndecl 0 53081 &enable_so_tcp_established_options_fndecl_53081 nohasharray
163894 +enable_so_request_len_sg_io_v4_53081 request_len sg_io_v4 0 53081 &enable_so_map_swap_entry_fndecl_53081 nohasharray
163895 +enable_so_ravb_hwtstamp_get_fndecl_53081 ravb_hwtstamp_get fndecl 0 53081 &enable_so_request_len_sg_io_v4_53081
163896 +enable_so___hci_cmd_sync_ev_fndecl_53090 __hci_cmd_sync_ev fndecl 3 53090 NULL nohasharray
163897 +enable_so_kmem_realloc_fndecl_53090 kmem_realloc fndecl 2 53090 &enable_so___hci_cmd_sync_ev_fndecl_53090
163898 +enable_so_ext4_itable_unused_set_fndecl_53091 ext4_itable_unused_set fndecl 3 53091 NULL
163899 +enable_so_ntfs_dir_fsync_fndecl_53093 ntfs_dir_fsync fndecl 2-3 53093 NULL
163900 +enable_so_size_fuse_attr_53098 size fuse_attr 0 53098 NULL
163901 +enable_so_s_blocksize_minix3_super_block_53099 s_blocksize minix3_super_block 0 53099 NULL
163902 +enable_so_brcmf_fw_nvram_strip_fndecl_53102 brcmf_fw_nvram_strip fndecl 2 53102 NULL
163903 +enable_so_prepare_header80_fndecl_53108 prepare_header80 fndecl 0 53108 NULL
163904 +enable_so_count_vbi_info_53110 count vbi_info 0 53110 NULL
163905 +enable_so_fb_max_width_vmw_private_53114 fb_max_width vmw_private 0 53114 NULL
163906 +enable_so_reserve_region_with_split_fndecl_53115 reserve_region_with_split fndecl 3-2 53115 NULL
163907 +enable_so_logi_dj_recv_forward_hidpp_fndecl_53117 logi_dj_recv_forward_hidpp fndecl 3 53117 NULL
163908 +enable_so_xz_dec_test_write_fndecl_53124 xz_dec_test_write fndecl 3 53124 NULL
163909 +enable_so_real_vram_size_radeon_mc_53132 real_vram_size radeon_mc 0 53132 NULL
163910 +enable_so_fault_inject_read_fndecl_53133 fault_inject_read fndecl 3 53133 NULL
163911 +enable_so_data_dma_td_53137 data_dma td 0 53137 NULL
163912 +enable_so_log_rq_size_mlx5e_params_53140 log_rq_size mlx5e_params 0 53140 NULL
163913 +enable_so_mmc_spi_readbytes_fndecl_53146 mmc_spi_readbytes fndecl 2 53146 NULL
163914 +enable_so_zlib_tr_stored_block_fndecl_53147 zlib_tr_stored_block fndecl 3 53147 NULL
163915 +enable_so_bdev_writeseg_fndecl_53148 bdev_writeseg fndecl 2-3 53148 NULL nohasharray
163916 +enable_so_vmalloc_32_user_fndecl_53148 vmalloc_32_user fndecl 1 53148 &enable_so_bdev_writeseg_fndecl_53148
163917 +enable_so_private_data_len_ib_cm_sidr_req_param_53150 private_data_len ib_cm_sidr_req_param 0 53150 NULL
163918 +enable_so_xoffset_fb_var_screeninfo_53153 xoffset fb_var_screeninfo 0 53153 NULL
163919 +enable_so_fat_cont_expand_fndecl_53155 fat_cont_expand fndecl 2 53155 NULL
163920 +enable_so_sb_blocksize_xfs_sb_53160 sb_blocksize xfs_sb 0 53160 NULL
163921 +enable_so_lpfc_debugfs_max_disc_trc_vardecl_lpfc_debugfs_c_53169 lpfc_debugfs_max_disc_trc vardecl_lpfc_debugfs.c 0 53169 NULL
163922 +enable_so_uhci_debug_lseek_fndecl_53171 uhci_debug_lseek fndecl 2 53171 NULL
163923 +enable_so_tegra_spi_start_tx_dma_fndecl_53177 tegra_spi_start_tx_dma fndecl 0-2 53177 NULL
163924 +enable_so_offset_page_frag_53180 offset page_frag 0 53180 NULL
163925 +enable_so_tpm_devt_vardecl_53182 tpm_devt vardecl 0 53182 NULL
163926 +enable_so_xhci_alloc_streams_fndecl_53185 xhci_alloc_streams fndecl 5 53185 NULL
163927 +enable_so_rate_min_snd_soc_pcm_stream_53186 rate_min snd_soc_pcm_stream 0 53186 NULL
163928 +enable_so_len_nxtfrm_brcmf_sdio_hdrinfo_53193 len_nxtfrm brcmf_sdio_hdrinfo 0 53193 NULL
163929 +enable_so_mpage_process_page_bufs_fndecl_53197 mpage_process_page_bufs fndecl 4 53197 NULL
163930 +enable_so_tcp_synack_options_fndecl_53200 tcp_synack_options fndecl 0 53200 NULL
163931 +enable_so_minor_start_tty_driver_53214 minor_start tty_driver 0 53214 NULL
163932 +enable_so_write_iter_file_operations_53218 write_iter file_operations 0 53218 NULL
163933 +enable_so_SYSC_mbind_fndecl_53221 SYSC_mbind fndecl 5 53221 NULL
163934 +enable_so_udf_block_map_fndecl_53224 udf_block_map fndecl 0 53224 NULL nohasharray
163935 +enable_so_aio_run_iocb_fndecl_53224 aio_run_iocb fndecl 4 53224 &enable_so_udf_block_map_fndecl_53224
163936 +enable_so_meta_slots_used_xenvif_rx_cb_53230 meta_slots_used xenvif_rx_cb 0 53230 NULL
163937 +enable_so_bnx2x_sriov_configure_fndecl_53235 bnx2x_sriov_configure fndecl 2 53235 NULL nohasharray
163938 +enable_so_debugfs_reg_len_regmap_53235 debugfs_reg_len regmap 0 53235 &enable_so_bnx2x_sriov_configure_fndecl_53235
163939 +enable_so_mlx4_get_mgm_entry_size_fndecl_53236 mlx4_get_mgm_entry_size fndecl 0 53236 NULL
163940 +enable_so_svcxdr_init_encode_from_buffer_fndecl_53239 svcxdr_init_encode_from_buffer fndecl 4 53239 NULL nohasharray
163941 +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
163942 +enable_so_kvm_read_guest_page_mmu_fndecl_53240 kvm_read_guest_page_mmu fndecl 6 53240 NULL
163943 +enable_so_pnw_serial_setup_fndecl_53243 pnw_serial_setup fndecl 4 53243 NULL
163944 +enable_so_sys_sync_file_range2_fndecl_53247 sys_sync_file_range2 fndecl 3-4 53247 NULL
163945 +enable_so_vga_arb_write_fndecl_53251 vga_arb_write fndecl 3 53251 NULL
163946 +enable_so_xpc_nasid_mask_nlongs_vardecl_53252 xpc_nasid_mask_nlongs vardecl 0 53252 NULL
163947 +enable_so_simple_xattr_alloc_fndecl_53253 simple_xattr_alloc fndecl 2 53253 NULL
163948 +enable_so_rawv6_geticmpfilter_fndecl_53256 rawv6_geticmpfilter fndecl 0 53256 NULL
163949 +enable_so_readpos_ivtv_buffer_53258 readpos ivtv_buffer 0 53258 NULL
163950 +enable_so_qxl_bo_create_fndecl_53261 qxl_bo_create fndecl 2 53261 NULL nohasharray
163951 +enable_so_num_cq_mlx4_profile_53261 num_cq mlx4_profile 0 53261 &enable_so_qxl_bo_create_fndecl_53261
163952 +enable_so_rx_enable_fndecl_53262 rx_enable fndecl 2 53262 NULL
163953 +enable_so_add_new_ctl_fndecl_53263 add_new_ctl fndecl 8 53263 NULL
163954 +enable_so_asl_urb_dequeue_fndecl_53268 asl_urb_dequeue fndecl 3 53268 NULL
163955 +enable_so_update_dind_extent_range_fndecl_53271 update_dind_extent_range fndecl 3 53271 NULL
163956 +enable_so_rx_pkt_n_frags_efx_channel_53276 rx_pkt_n_frags efx_channel 0 53276 NULL
163957 +enable_so_vb2_dc_attach_dmabuf_fndecl_53278 vb2_dc_attach_dmabuf fndecl 3 53278 NULL nohasharray
163958 +enable_so_nr_cmds_ctlr_info_53278 nr_cmds ctlr_info 0 53278 &enable_so_vb2_dc_attach_dmabuf_fndecl_53278
163959 +enable_so_enc_dst_buf_size_s5p_mfc_ctx_53279 enc_dst_buf_size s5p_mfc_ctx 0 53279 NULL
163960 +enable_so_ext3_readpages_fndecl_53283 ext3_readpages fndecl 4 53283 NULL
163961 +enable_so_maxreqs_nfsd4_channel_attrs_53285 maxreqs nfsd4_channel_attrs 0 53285 NULL
163962 +enable_so_alloc_vm_area_fndecl_53286 alloc_vm_area fndecl 1 53286 NULL
163963 +enable_so_b1_alloc_card_fndecl_53288 b1_alloc_card fndecl 1 53288 NULL
163964 +enable_so_alignment_acpi_resource_memory32_53289 alignment acpi_resource_memory32 0 53289 NULL
163965 +enable_so_compat_ptrace_request_fndecl_53296 compat_ptrace_request fndecl 3 53296 NULL
163966 +enable_so_vmalloc_exec_fndecl_53303 vmalloc_exec fndecl 1 53303 NULL
163967 +enable_so_fuse_ioctl_common_fndecl_53305 fuse_ioctl_common fndecl 2 53305 NULL
163968 +enable_so_dma_size_cx23885_audio_dev_53307 dma_size cx23885_audio_dev 0 53307 NULL nohasharray
163969 +enable_so_gtt_start_radeon_mc_53307 gtt_start radeon_mc 0 53307 &enable_so_dma_size_cx23885_audio_dev_53307
163970 +enable_so_isoc_in_usbatm_driver_53310 isoc_in usbatm_driver 0 53310 NULL nohasharray
163971 +enable_so___gfs2_free_blocks_fndecl_53310 __gfs2_free_blocks fndecl 2 53310 &enable_so_isoc_in_usbatm_driver_53310
163972 +enable_so___sync_dirty_buffer_fndecl_53315 __sync_dirty_buffer fndecl 0 53315 NULL
163973 +enable_so_transport_get_sectors_10_fndecl_53319 transport_get_sectors_10 fndecl 0 53319 NULL
163974 +enable_so_nfsd4_block_get_device_info_simple_fndecl_53320 nfsd4_block_get_device_info_simple fndecl 0 53320 NULL
163975 +enable_so_sys_send_fndecl_53330 sys_send fndecl 3 53330 NULL
163976 +enable_so_s_inode_readahead_blks_ext4_sb_info_53337 s_inode_readahead_blks ext4_sb_info 0 53337 NULL
163977 +enable_so_snd_korg1212_copy_from_fndecl_53338 snd_korg1212_copy_from fndecl 6 53338 NULL
163978 +enable_so_last_tx_rate_mwifiex_station_stats_53339 last_tx_rate mwifiex_station_stats 0 53339 NULL
163979 +enable_so_v9fs_xattr_set_fndecl_53342 v9fs_xattr_set fndecl 4 53342 NULL
163980 +enable_so_SYSC_sched_getaffinity_fndecl_53347 SYSC_sched_getaffinity fndecl 2 53347 NULL
163981 +enable_so_ioc_len_libcfs_ioctl_hdr_53352 ioc_len libcfs_ioctl_hdr 0 53352 NULL
163982 +enable_so_ali1563_smba_vardecl_i2c_ali1563_c_53362 ali1563_smba vardecl_i2c-ali1563.c 0 53362 NULL
163983 +enable_so___xdr_inline_decode_fndecl_53363 __xdr_inline_decode fndecl 2 53363 NULL
163984 +enable_so_ramoops_init_przs_fndecl_53364 ramoops_init_przs fndecl 4 53364 NULL
163985 +enable_so_rsize_hid_device_53365 rsize hid_device 0 53365 NULL
163986 +enable_so_xattr_len_ceph_mds_reply_info_in_53369 xattr_len ceph_mds_reply_info_in 0 53369 NULL
163987 +enable_so_CIFSMaxBufSize_vardecl_53372 CIFSMaxBufSize vardecl 0 53372 NULL
163988 +enable_so_xdr_inline_pages_fndecl_53377 xdr_inline_pages fndecl 5-4-2 53377 NULL nohasharray
163989 +enable_so_SYSC_getxattr_fndecl_53377 SYSC_getxattr fndecl 4 53377 &enable_so_xdr_inline_pages_fndecl_53377
163990 +enable_so_viafb_iga1_odev_proc_write_fndecl_53378 viafb_iga1_odev_proc_write fndecl 3 53378 NULL
163991 +enable_so_dummy_urb_dequeue_fndecl_53380 dummy_urb_dequeue fndecl 3 53380 NULL
163992 +enable_so_vmsplice_to_user_fndecl_53382 vmsplice_to_user fndecl 3 53382 NULL nohasharray
163993 +enable_so_rproc_recovery_read_fndecl_53382 rproc_recovery_read fndecl 3 53382 &enable_so_vmsplice_to_user_fndecl_53382
163994 +enable_so_scrub_stripe_fndecl_53387 scrub_stripe fndecl 5 53387 NULL
163995 +enable_so_isd200_action_fndecl_53390 isd200_action fndecl 4 53390 NULL
163996 +enable_so_command_setformat_fndecl_53392 command_setformat fndecl 0 53392 NULL
163997 +enable_so_nfqnl_mangle_fndecl_53393 nfqnl_mangle fndecl 2-4 53393 NULL
163998 +enable_so_wil_agg_size_fndecl_53398 wil_agg_size fndecl 0-2 53398 NULL
163999 +enable_so_irda_recvmsg_stream_fndecl_53403 irda_recvmsg_stream fndecl 3 53403 NULL
164000 +enable_so_num_entries_s2io_nic_53404 num_entries s2io_nic 0 53404 NULL
164001 +enable_so_len_nft_cmp_fast_expr_53407 len nft_cmp_fast_expr 0 53407 NULL
164002 +enable_so_cfs_hash_buckets_realloc_fndecl_53415 cfs_hash_buckets_realloc fndecl 4 53415 NULL
164003 +enable_so_vlan_dev_set_egress_priority_fndecl_53418 vlan_dev_set_egress_priority fndecl 3 53418 NULL nohasharray
164004 +enable_so_rxHeader3_edgeport_serial_53418 rxHeader3 edgeport_serial 0 53418 &enable_so_vlan_dev_set_egress_priority_fndecl_53418
164005 +enable_so_codec_reg_read_file_fndecl_53419 codec_reg_read_file fndecl 3 53419 NULL
164006 +enable_so_expand_stack_fndecl_53426 expand_stack fndecl 2 53426 NULL
164007 +enable_so_compat_sys_mbind_fndecl_53427 compat_sys_mbind fndecl 2-1-5 53427 NULL nohasharray
164008 +enable_so_dn_mk_ack_header_fndecl_53427 dn_mk_ack_header fndecl 4 53427 &enable_so_compat_sys_mbind_fndecl_53427 nohasharray
164009 +enable_so_mq_maxmsg_mq_attr_53427 mq_maxmsg mq_attr 0 53427 &enable_so_dn_mk_ack_header_fndecl_53427
164010 +enable_so_len_type_frame_head_53438 len type_frame_head 0 53438 NULL nohasharray
164011 +enable_so_chipsize_nand_chip_53438 chipsize nand_chip 0 53438 &enable_so_len_type_frame_head_53438
164012 +enable_so_cfg80211_rx_mlme_mgmt_fndecl_53441 cfg80211_rx_mlme_mgmt fndecl 3 53441 NULL
164013 +enable_so_ad7879_spi_xfer_fndecl_53444 ad7879_spi_xfer fndecl 3 53444 NULL
164014 +enable_so_first_offset_pciserial_board_53452 first_offset pciserial_board 0 53452 NULL
164015 +enable_so_c_blkno_ocfs2_chain_rec_53466 c_blkno ocfs2_chain_rec 0 53466 NULL
164016 +enable_so_lpfc_debugfs_dif_err_read_fndecl_53468 lpfc_debugfs_dif_err_read fndecl 3 53468 NULL
164017 +enable_so_jbd2_journal_init_revoke_table_fndecl_53475 jbd2_journal_init_revoke_table fndecl 1 53475 NULL
164018 +enable_so_isku_sysfs_read_key_mask_fndecl_53476 isku_sysfs_read_key_mask fndecl 6 53476 NULL
164019 +enable_so_new_chunk_sectors_mddev_53479 new_chunk_sectors mddev 0 53479 NULL
164020 +enable_so_ext2_nfs_get_inode_fndecl_53480 ext2_nfs_get_inode fndecl 2 53480 NULL
164021 +enable_so_map_sector_fndecl_53483 map_sector fndecl 0 53483 NULL
164022 +enable_so_nfs4_proc_readlink_fndecl_53484 nfs4_proc_readlink fndecl 4-3 53484 NULL nohasharray
164023 +enable_so_ath6kl_regwrite_write_fndecl_53484 ath6kl_regwrite_write fndecl 3 53484 &enable_so_nfs4_proc_readlink_fndecl_53484
164024 +enable_so_ramoops_ecc_vardecl_ram_c_53486 ramoops_ecc vardecl_ram.c 0 53486 NULL
164025 +enable_so_size_mthca_catas_err_53487 size mthca_catas_err 0 53487 NULL
164026 +enable_so_oper_log_mgm_entry_size_mlx4_dev_53488 oper_log_mgm_entry_size mlx4_dev 0 53488 NULL
164027 +enable_so_usCRTC_V_SyncWidth__ATOM_MODE_TIMING_53489 usCRTC_V_SyncWidth _ATOM_MODE_TIMING 0 53489 NULL nohasharray
164028 +enable_so_len_rx_pool_53489 len rx_pool 0 53489 &enable_so_usCRTC_V_SyncWidth__ATOM_MODE_TIMING_53489
164029 +enable_so_len_nft_cmp_expr_53491 len nft_cmp_expr 0 53491 NULL
164030 +enable_so_isdn_getnum_fndecl_53492 isdn_getnum fndecl 0 53492 NULL
164031 +enable_so_get_allocated_memblock_memory_regions_info_fndecl_53495 get_allocated_memblock_memory_regions_info fndecl 0 53495 NULL nohasharray
164032 +enable_so_subctxt_cnt_qib_ctxtdata_53495 subctxt_cnt qib_ctxtdata 0 53495 &enable_so_get_allocated_memblock_memory_regions_info_fndecl_53495
164033 +enable_so___compat_sys_pwritev64_fndecl_53499 __compat_sys_pwritev64 fndecl 3 53499 NULL
164034 +enable_so_lc_create_fndecl_53503 lc_create fndecl 4 53503 NULL
164035 +enable_so_data_out_size_mpt2_ioctl_command_53510 data_out_size mpt2_ioctl_command 0 53510 NULL nohasharray
164036 +enable_so_mthca_buf_alloc_fndecl_53510 mthca_buf_alloc fndecl 2 53510 &enable_so_data_out_size_mpt2_ioctl_command_53510
164037 +enable_so_mmc_io_rw_extended_fndecl_53515 mmc_io_rw_extended fndecl 8-7 53515 NULL
164038 +enable_so_dme1737_isa_device_add_fndecl_53516 dme1737_isa_device_add fndecl 1 53516 NULL
164039 +enable_so_max_dev_vardecl_osst_c_53523 max_dev vardecl_osst.c 0 53523 NULL
164040 +enable_so_ipw2100_set_short_retry_fndecl_53529 ipw2100_set_short_retry fndecl 2 53529 NULL
164041 +enable_so_fsinfo_sector_msdos_sb_info_53531 fsinfo_sector msdos_sb_info 0 53531 NULL nohasharray
164042 +enable_so_m_max_mds_ceph_mdsmap_53531 m_max_mds ceph_mdsmap 0 53531 &enable_so_fsinfo_sector_msdos_sb_info_53531
164043 +enable_so_tx_tx_cmplt_read_fndecl_53533 tx_tx_cmplt_read fndecl 3 53533 NULL
164044 +enable_so_unix_seqpacket_sendmsg_fndecl_53534 unix_seqpacket_sendmsg fndecl 3 53534 NULL
164045 +enable_so_e820_add_region_fndecl_53540 e820_add_region fndecl 2 53540 NULL nohasharray
164046 +enable_so_tcp_mark_head_lost_fndecl_53540 tcp_mark_head_lost fndecl 2 53540 &enable_so_e820_add_region_fndecl_53540
164047 +enable_so_crtc_w_drm_plane_state_53541 crtc_w drm_plane_state 0 53541 NULL
164048 +enable_so_smi_num_vardecl_ipmi_si_intf_c_53542 smi_num vardecl_ipmi_si_intf.c 0 53542 NULL
164049 +enable_so_uwb_rc_cmd_done_fndecl_53543 uwb_rc_cmd_done fndecl 4 53543 NULL
164050 +enable_so_start_extent_state_53546 start extent_state 0 53546 NULL
164051 +enable_so_plcp_iwl_rate_info_53549 plcp iwl_rate_info 0 53549 NULL nohasharray
164052 +enable_so_block_size_partition_53549 block_size partition 0 53549 &enable_so_plcp_iwl_rate_info_53549
164053 +enable_so_height_rcar_vin_cam_53550 height rcar_vin_cam 0 53550 NULL
164054 +enable_so_num_req_vfs_i40e_pf_53554 num_req_vfs i40e_pf 0 53554 NULL
164055 +enable_so_vnode_afs_fid_53569 vnode afs_fid 0 53569 NULL
164056 +enable_so_balance_node_right_fndecl_53571 balance_node_right fndecl 0 53571 NULL
164057 +enable_so_sctp_tsnmap_mark_fndecl_53578 sctp_tsnmap_mark fndecl 2 53578 NULL
164058 +enable_so_rx_defrag_init_called_read_fndecl_53580 rx_defrag_init_called_read fndecl 3 53580 NULL
164059 +enable_so_log_mpt_sz_mlx4_init_hca_param_53586 log_mpt_sz mlx4_init_hca_param 0 53586 NULL
164060 +enable_so_tokens_size_cfg80211_wowlan_tcp_53588 tokens_size cfg80211_wowlan_tcp 0 53588 NULL nohasharray
164061 +enable_so_num_ports_mlx4_caps_53588 num_ports mlx4_caps 0 53588 &enable_so_tokens_size_cfg80211_wowlan_tcp_53588
164062 +enable_so_mlx5_get_gid_table_len_fndecl_53590 mlx5_get_gid_table_len fndecl 0-1 53590 NULL
164063 +enable_so_nr_labels_pktgen_dev_53591 nr_labels pktgen_dev 0 53591 NULL
164064 +enable_so_ocfs2_orphan_filldir_fndecl_53593 ocfs2_orphan_filldir fndecl 5 53593 NULL
164065 +enable_so_kernel_setsockopt_fndecl_53594 kernel_setsockopt fndecl 5 53594 NULL
164066 +enable_so_cow_file_range_async_fndecl_53595 cow_file_range_async fndecl 3-4 53595 NULL
164067 +enable_so_nilfs_load_super_block_fndecl_53596 nilfs_load_super_block fndecl 3 53596 NULL
164068 +enable_so_ramoops_pmsg_size_vardecl_ram_c_53601 ramoops_pmsg_size vardecl_ram.c 0 53601 NULL
164069 +enable_so_xfs_add_to_ioend_fndecl_53604 xfs_add_to_ioend fndecl 3 53604 NULL
164070 +enable_so_hwptr_done_snd_usb_substream_53606 hwptr_done snd_usb_substream 0 53606 NULL
164071 +enable_so_pcfg_ofsl_cyttsp4_sysinfo_data_53607 pcfg_ofsl cyttsp4_sysinfo_data 0 53607 NULL
164072 +enable_so_md_dump_size_netxen_minidump_53611 md_dump_size netxen_minidump 0 53611 NULL
164073 +enable_so_put_cmsg_compat_fndecl_53618 put_cmsg_compat fndecl 4 53618 NULL nohasharray
164074 +enable_so_len_rproc_vring_53618 len rproc_vring 0 53618 &enable_so_put_cmsg_compat_fndecl_53618
164075 +enable_so_header_len_tso_state_53620 header_len tso_state 0 53620 NULL
164076 +enable_so_qcaspi_write_legacy_fndecl_53623 qcaspi_write_legacy fndecl 3 53623 NULL
164077 +enable_so_pc_npartners_ptlrpcd_ctl_53625 pc_npartners ptlrpcd_ctl 0 53625 NULL
164078 +enable_so_num_channels_mlx5e_params_53632 num_channels mlx5e_params 0 53632 NULL
164079 +enable_so_selfballoon_downhysteresis_vardecl_xen_selfballoon_c_53636 selfballoon_downhysteresis vardecl_xen-selfballoon.c 0 53636 NULL
164080 +enable_so_remote_nentries_xpc_openclose_args_53643 remote_nentries xpc_openclose_args 0 53643 NULL
164081 +enable_so_locks_mandatory_area_fndecl_53644 locks_mandatory_area fndecl 0 53644 NULL nohasharray
164082 +enable_so_ticket2_len_rxk5_key_53644 ticket2_len rxk5_key 0 53644 &enable_so_locks_mandatory_area_fndecl_53644
164083 +enable_so_write_file_antenna_fndecl_53645 write_file_antenna fndecl 3 53645 NULL nohasharray
164084 +enable_so_kuc_alloc_fndecl_53645 kuc_alloc fndecl 1 53645 &enable_so_write_file_antenna_fndecl_53645
164085 +enable_so_ioc_plen2_obd_ioctl_data_53648 ioc_plen2 obd_ioctl_data 0 53648 NULL
164086 +enable_so_extra_tx_headroom_rt2x00_dev_53650 extra_tx_headroom rt2x00_dev 0 53650 NULL
164087 +enable_so_ceph_buffer_new_fndecl_53653 ceph_buffer_new fndecl 1 53653 NULL nohasharray
164088 +enable_so_generic_ocp_read_fndecl_53653 generic_ocp_read fndecl 3 53653 &enable_so_ceph_buffer_new_fndecl_53653
164089 +enable_so_acl_alloc_fndecl_53656 acl_alloc fndecl 1 53656 NULL
164090 +enable_so_page_add_anon_rmap_fndecl_53660 page_add_anon_rmap fndecl 3 53660 NULL
164091 +enable_so_hr_data_len_hsm_request_53666 hr_data_len hsm_request 0 53666 NULL
164092 +enable_so_num_sge_ib_uverbs_send_wr_53667 num_sge ib_uverbs_send_wr 0 53667 NULL nohasharray
164093 +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
164094 +enable_so_cpu_addr_of_pci_range_53670 cpu_addr of_pci_range 0 53670 NULL
164095 +enable_so_kvec_array_init_fndecl_53672 kvec_array_init fndecl 4-0-3 53672 NULL
164096 +enable_so___videobuf_alloc_fndecl_53676 __videobuf_alloc fndecl 1 53676 NULL
164097 +enable_so_ubi_eba_write_leb_fndecl_53678 ubi_eba_write_leb fndecl 6-5 53678 NULL nohasharray
164098 +enable_so_sesskey_len_cifs_spnego_msg_53678 sesskey_len cifs_spnego_msg 0 53678 &enable_so_ubi_eba_write_leb_fndecl_53678
164099 +enable_so_list_lru_count_one_fndecl_53682 list_lru_count_one fndecl 0 53682 NULL
164100 +enable_so_offset_ipath_mregion_53683 offset ipath_mregion 0 53683 NULL
164101 +enable_so_console_store_fndecl_53684 console_store fndecl 4 53684 NULL
164102 +enable_so_length_acpi_memory_info_53691 length acpi_memory_info 0 53691 NULL nohasharray
164103 +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
164104 +enable_so_i_depth_gfs2_inode_53692 i_depth gfs2_inode 0 53692 NULL
164105 +enable_so_ql_is_full_dup_fndecl_53694 ql_is_full_dup fndecl 0 53694 NULL
164106 +enable_so_length_iscsi_pdu_53695 length iscsi_pdu 0 53695 NULL
164107 +enable_so_vgt_balloon_space_fndecl_53697 vgt_balloon_space fndecl 3-4 53697 NULL
164108 +enable_so_gpio_power_read_fndecl_53704 gpio_power_read fndecl 3 53704 NULL nohasharray
164109 +enable_so_check_revision_fndecl_53704 check_revision fndecl 0 53704 &enable_so_gpio_power_read_fndecl_53704
164110 +enable_so_qlge_change_mtu_fndecl_53706 qlge_change_mtu fndecl 2 53706 NULL
164111 +enable_so_pos_hdpvr_buffer_53708 pos hdpvr_buffer 0 53708 NULL
164112 +enable_so_create_header_ops_53712 create header_ops 0 53712 NULL
164113 +enable_so_xdr_inline_decode_fndecl_53721 xdr_inline_decode fndecl 2 53721 NULL
164114 +enable_so_sys_init_module_fndecl_53724 sys_init_module fndecl 2 53724 NULL nohasharray
164115 +enable_so_onenand_write_ops_nolock_fndecl_53724 onenand_write_ops_nolock fndecl 2 53724 &enable_so_sys_init_module_fndecl_53724
164116 +enable_so_mtip_hw_read_device_status_fndecl_53729 mtip_hw_read_device_status fndecl 3 53729 NULL
164117 +enable_so_ino_xfs_fid64_53730 ino xfs_fid64 0 53730 NULL
164118 +enable_so_snd_pcm_plug_read_transfer_fndecl_53731 snd_pcm_plug_read_transfer fndecl 3-0 53731 NULL
164119 +enable_so_dnode_scif_peer_dev_53733 dnode scif_peer_dev 0 53733 NULL nohasharray
164120 +enable_so_adp5588_build_gpiomap_fndecl_53733 adp5588_build_gpiomap fndecl 0 53733 &enable_so_dnode_scif_peer_dev_53733
164121 +enable_so_max_data_size_vardecl_hsi_char_c_53736 max_data_size vardecl_hsi_char.c 0 53736 NULL
164122 +enable_so_map_capability_fndecl_53738 map_capability fndecl 5 53738 NULL
164123 +enable_so_chunk_size_stripe_c_53745 chunk_size stripe_c 0 53745 NULL
164124 +enable_so_write_emulate_fndecl_53746 write_emulate fndecl 2-4 53746 NULL
164125 +enable_so_get_crop_info_h_s5p_mfc_hw_ops_53747 get_crop_info_h s5p_mfc_hw_ops 0 53747 NULL
164126 +enable_so_count_user_sgmap_53748 count user_sgmap 0 53748 NULL
164127 +enable_so_ext3_new_blocks_fndecl_53754 ext3_new_blocks fndecl 0-3 53754 NULL
164128 +enable_so_ieee80211_if_write_tsf_fndecl_53758 ieee80211_if_write_tsf fndecl 3 53758 NULL nohasharray
164129 +enable_so_SenderSize_aac_fibhdr_53758 SenderSize aac_fibhdr 0 53758 &enable_so_ieee80211_if_write_tsf_fndecl_53758
164130 +enable_so_dies_onenand_chip_53762 dies onenand_chip 0 53762 NULL
164131 +enable_so_padding_iscsi_cmd_53768 padding iscsi_cmd 0 53768 NULL
164132 +enable_so_end_nilfs_write_info_53770 end nilfs_write_info 0 53770 NULL
164133 +enable_so_vxge_config_vpaths_fndecl_53775 vxge_config_vpaths fndecl 0 53775 NULL nohasharray
164134 +enable_so_get_slot_from_bitmask_fndecl_53775 get_slot_from_bitmask fndecl 0-1 53775 &enable_so_vxge_config_vpaths_fndecl_53775
164135 +enable_so_do_sendfile_fndecl_53777 do_sendfile fndecl 5-4 53777 NULL
164136 +enable_so_index_nsc_ircc_cb_53782 index nsc_ircc_cb 0 53782 NULL
164137 +enable_so_src_maxburst_dma_slave_config_53783 src_maxburst dma_slave_config 0 53783 NULL
164138 +enable_so_ibh_mr_shift_kib_hca_dev_53785 ibh_mr_shift kib_hca_dev 0 53785 NULL
164139 +enable_so_locations_count_nfsd4_fs_locations_53786 locations_count nfsd4_fs_locations 0 53786 NULL
164140 +enable_so_resp_iec_m_pg_fndecl_53792 resp_iec_m_pg fndecl 0 53792 NULL
164141 +enable_so_Control_2_RxD_t_53794 Control_2 RxD_t 0 53794 NULL nohasharray
164142 +enable_so_qlcnic_process_rcv_fndecl_53794 qlcnic_process_rcv fndecl 4 53794 &enable_so_Control_2_RxD_t_53794
164143 +enable_so_epnum_isp1362_ep_53803 epnum isp1362_ep 0 53803 NULL nohasharray
164144 +enable_so_osd_req_list_collection_objects_fndecl_53803 osd_req_list_collection_objects fndecl 5 53803 &enable_so_epnum_isp1362_ep_53803 nohasharray
164145 +enable_so_mgmt_send_event_fndecl_53803 mgmt_send_event fndecl 5 53803 &enable_so_osd_req_list_collection_objects_fndecl_53803
164146 +enable_so_iscsi_host_alloc_fndecl_53804 iscsi_host_alloc fndecl 2 53804 NULL
164147 +enable_so_ring_size_netvsc_device_info_53811 ring_size netvsc_device_info 0 53811 NULL
164148 +enable_so_msix_count_xhci_hcd_53816 msix_count xhci_hcd 0 53816 NULL
164149 +enable_so_jffs2_flash_write_fndecl_53819 jffs2_flash_write fndecl 3-2 53819 NULL nohasharray
164150 +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
164151 +enable_so_tty_copy_to_user_fndecl_53819 tty_copy_to_user fndecl 4 53819 &enable_so_lpfc_idiag_extacc_alloc_get_fndecl_53819
164152 +enable_so_doorbell_start_nes_device_53820 doorbell_start nes_device 0 53820 NULL nohasharray
164153 +enable_so_logical_minimum_hid_field_53820 logical_minimum hid_field 0 53820 &enable_so_doorbell_start_nes_device_53820
164154 +enable_so_choose_rate_fndecl_53821 choose_rate fndecl 3 53821 NULL nohasharray
164155 +enable_so_tx_data_ep_usb_card_rec_53821 tx_data_ep usb_card_rec 0 53821 &enable_so_choose_rate_fndecl_53821
164156 +enable_so_smem_len_fb_fix_screeninfo_53824 smem_len fb_fix_screeninfo 0 53824 NULL
164157 +enable_so_cam_get_response16_fndecl_53836 cam_get_response16 fndecl 0 53836 NULL
164158 +enable_so_gsmtty_write_fndecl_53837 gsmtty_write fndecl 3 53837 NULL
164159 +enable_so_num_sensors_ibmpex_bmc_data_53838 num_sensors ibmpex_bmc_data 0 53838 NULL
164160 +enable_so_resp_ie_length_ndis_80211_assoc_info_53840 resp_ie_length ndis_80211_assoc_info 0 53840 NULL
164161 +enable_so_xillybus_read_fndecl_53845 xillybus_read fndecl 3 53845 NULL
164162 +enable_so_ext4_mb_discard_group_preallocations_fndecl_53854 ext4_mb_discard_group_preallocations fndecl 2 53854 NULL
164163 +enable_so_saa7134_i2c_eeprom_fndecl_53866 saa7134_i2c_eeprom fndecl 3 53866 NULL
164164 +enable_so_data_len_msgbuf_rx_complete_53868 data_len msgbuf_rx_complete 0 53868 NULL
164165 +enable_so_discard_alignment_hd_struct_53874 discard_alignment hd_struct 0 53874 NULL
164166 +enable_so_br_fill_ifvlaninfo_range_fndecl_53875 br_fill_ifvlaninfo_range fndecl 2-3 53875 NULL
164167 +enable_so_buffer_blocks_st_buffer_53878 buffer_blocks st_buffer 0 53878 NULL
164168 +enable_so_lnum_bits_ubifs_info_53884 lnum_bits ubifs_info 0 53884 NULL
164169 +enable_so_nilfs_sufile_set_segment_usage_fndecl_53885 nilfs_sufile_set_segment_usage fndecl 2 53885 NULL
164170 +enable_so_cx25821_alsa_dma_init_fndecl_53886 cx25821_alsa_dma_init fndecl 2 53886 NULL nohasharray
164171 +enable_so_path_getxattr_fndecl_53886 path_getxattr fndecl 4 53886 &enable_so_cx25821_alsa_dma_init_fndecl_53886
164172 +enable_so_drbd_setbufsize_fndecl_53887 drbd_setbufsize fndecl 2 53887 NULL
164173 +enable_so_amdgpu_vce_sw_init_fndecl_53888 amdgpu_vce_sw_init fndecl 2 53888 NULL
164174 +enable_so_total_read_TCP_Server_Info_53900 total_read TCP_Server_Info 0 53900 NULL
164175 +enable_so_alignf_resource_constraint_53903 alignf resource_constraint 0 53903 NULL nohasharray
164176 +enable_so_e1000_consume_page_fndecl_53903 e1000_consume_page fndecl 3 53903 &enable_so_alignf_resource_constraint_53903
164177 +enable_so_amdtp_stream_set_parameters_fndecl_53905 amdtp_stream_set_parameters fndecl 4-3 53905 NULL
164178 +enable_so_image_len_brcmf_usbdev_info_53909 image_len brcmf_usbdev_info 0 53909 NULL
164179 +enable_so_vop_len_solo_enc_dev_53910 vop_len solo_enc_dev 0 53910 NULL
164180 +enable_so_snd_rawmidi_kernel_read1_fndecl_53911 snd_rawmidi_kernel_read1 fndecl 4-0 53911 NULL nohasharray
164181 +enable_so_oobavail_jffs2_sb_info_53911 oobavail jffs2_sb_info 0 53911 &enable_so_snd_rawmidi_kernel_read1_fndecl_53911
164182 +enable_so_cxgbi_device_register_fndecl_53913 cxgbi_device_register fndecl 2-1 53913 NULL
164183 +enable_so_ad_bytes_x86_instruction_info_53919 ad_bytes x86_instruction_info 0 53919 NULL
164184 +enable_so_usb_stor_sg_tablesize_fndecl_53929 usb_stor_sg_tablesize fndecl 0 53929 NULL
164185 +enable_so_of_iomap_fndecl_53930 of_iomap fndecl 2 53930 NULL
164186 +enable_so_i40e_init_lan_hmc_fndecl_53935 i40e_init_lan_hmc fndecl 2-3-4-5 53935 NULL
164187 +enable_so_depth_tm6000_fmt_53938 depth tm6000_fmt 0 53938 NULL
164188 +enable_so_ip4ip6_err_fndecl_53943 ip4ip6_err fndecl 5 53943 NULL nohasharray
164189 +enable_so__find_first_zero_bit_be_fndecl_53943 _find_first_zero_bit_be fndecl 0 53943 &enable_so_ip4ip6_err_fndecl_53943
164190 +enable_so_llc_mac_header_len_fndecl_53947 llc_mac_header_len fndecl 0 53947 NULL
164191 +enable_so_buffer_end_nm256_53949 buffer_end nm256 0 53949 NULL
164192 +enable_so_swiotlb_nr_tbl_fndecl_53950 swiotlb_nr_tbl fndecl 0 53950 NULL
164193 +enable_so_p_size_drbd_device_53954 p_size drbd_device 0 53954 NULL
164194 +enable_so_hiddev_ioctl_fndecl_53955 hiddev_ioctl fndecl 2 53955 NULL
164195 +enable_so_tcf_csum_ipv6_tcp_fndecl_53957 tcf_csum_ipv6_tcp fndecl 3 53957 NULL
164196 +enable_so_vmw_sou_backing_alloc_fndecl_53962 vmw_sou_backing_alloc fndecl 3 53962 NULL nohasharray
164197 +enable_so_c_srate_f_uac2_opts_53962 c_srate f_uac2_opts 0 53962 &enable_so_vmw_sou_backing_alloc_fndecl_53962
164198 +enable_so_proc_fault_inject_read_fndecl_53969 proc_fault_inject_read fndecl 3 53969 NULL
164199 +enable_so_rx_buf_sz_cp_private_53982 rx_buf_sz cp_private 0 53982 NULL
164200 +enable_so_assoc_resp_len_wmi_connect_event_53983 assoc_resp_len wmi_connect_event 0 53983 NULL
164201 +enable_so_nfs_proc_mknod_fndecl_53987 nfs_proc_mknod fndecl 4 53987 NULL
164202 +enable_so_cfpkt_add_head_fndecl_53990 cfpkt_add_head fndecl 3 53990 NULL
164203 +enable_so_cm_write_fndecl_53993 cm_write fndecl 3 53993 NULL
164204 +enable_so_btrfs_init_new_buffer_fndecl_53996 btrfs_init_new_buffer fndecl 3 53996 NULL
164205 +enable_so_size_drbd_interval_54002 size drbd_interval 0 54002 NULL nohasharray
164206 +enable_so_int_hardware_entry_fndecl_54002 int_hardware_entry fndecl 3 54002 &enable_so_size_drbd_interval_54002
164207 +enable_so_ax88179_change_mtu_fndecl_54007 ax88179_change_mtu fndecl 2 54007 NULL
164208 +enable_so_nonstatic_find_io_fndecl_54015 nonstatic_find_io fndecl 4 54015 NULL
164209 +enable_so_submit_stripe_bio_fndecl_54016 submit_stripe_bio fndecl 4 54016 NULL
164210 +enable_so_rsi_setblocklength_fndecl_54024 rsi_setblocklength fndecl 2 54024 NULL
164211 +enable_so_dlen_hci_vendor_hdr_54025 dlen hci_vendor_hdr 0 54025 NULL
164212 +enable_so_xz_dec_lzma2_create_fndecl_54034 xz_dec_lzma2_create fndecl 2 54034 NULL
164213 +enable_so_sum_size_jffs2_summary_54035 sum_size jffs2_summary 0 54035 NULL
164214 +enable_so_s_nextid_exofs_sb_info_54042 s_nextid exofs_sb_info 0 54042 NULL
164215 +enable_so_sierra_write_fndecl_54049 sierra_write fndecl 4 54049 NULL
164216 +enable_so_sci_probe_single_fndecl_54053 sci_probe_single fndecl 2 54053 NULL
164217 +enable_so__iwl_dbgfs_uapsd_misbehaving_write_fndecl_54054 _iwl_dbgfs_uapsd_misbehaving_write fndecl 3 54054 NULL
164218 +enable_so_storvsc_ringbuffer_size_vardecl_storvsc_drv_c_54060 storvsc_ringbuffer_size vardecl_storvsc_drv.c 0 54060 NULL
164219 +enable_so_msb_update_block_fndecl_54063 msb_update_block fndecl 4 54063 NULL
164220 +enable_so_tunables_read_fndecl_54066 tunables_read fndecl 3 54066 NULL
164221 +enable_so_process_ptload_program_headers_elf32_fndecl_54067 process_ptload_program_headers_elf32 fndecl 3-2 54067 NULL
164222 +enable_so_width_fb_image_54071 width fb_image 0 54071 NULL
164223 +enable_so_i_next_section_offset_iso_inode_info_54074 i_next_section_offset iso_inode_info 0 54074 NULL nohasharray
164224 +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
164225 +enable_so_xennet_change_mtu_fndecl_54076 xennet_change_mtu fndecl 2 54076 NULL nohasharray
164226 +enable_so_afs_alloc_flat_call_fndecl_54076 afs_alloc_flat_call fndecl 2-3 54076 &enable_so_xennet_change_mtu_fndecl_54076
164227 +enable_so_bytes_cifs_writedata_54089 bytes cifs_writedata 0 54089 NULL
164228 +enable_so_get_mtu_xfrm_type_54090 get_mtu xfrm_type 0 54090 NULL
164229 +enable_so_align_pnp_port_54093 align pnp_port 0 54093 NULL nohasharray
164230 +enable_so_sctp_tsnmap_init_fndecl_54093 sctp_tsnmap_init fndecl 3-2 54093 &enable_so_align_pnp_port_54093
164231 +enable_so_SyS_sethostname_fndecl_54098 SyS_sethostname fndecl 2 54098 NULL
164232 +enable_so_fat_ent_write_fndecl_54100 fat_ent_write fndecl 0 54100 NULL
164233 +enable_so_bytes_read_usbvision_frame_54101 bytes_read usbvision_frame 0 54101 NULL
164234 +enable_so_br_min_mtu_fndecl_54113 br_min_mtu fndecl 0 54113 NULL
164235 +enable_so_xfs_rtmodify_summary_int_fndecl_54118 xfs_rtmodify_summary_int fndecl 4-3 54118 NULL nohasharray
164236 +enable_so_rio_request_inb_mbox_fndecl_54118 rio_request_inb_mbox fndecl 3 54118 &enable_so_xfs_rtmodify_summary_int_fndecl_54118
164237 +enable_so_vringh_iov_push_kern_fndecl_54119 vringh_iov_push_kern fndecl 3 54119 NULL
164238 +enable_so_s5p_jpeg_to_user_subsampling_fndecl_54125 s5p_jpeg_to_user_subsampling fndecl 0 54125 NULL
164239 +enable_so_alloc_etherdev_mqs_fndecl_54129 alloc_etherdev_mqs fndecl 2-1-3 54129 NULL
164240 +enable_so_skb_trim_fndecl_54132 skb_trim fndecl 2 54132 NULL
164241 +enable_so_io_offset_xfs_ioend_54137 io_offset xfs_ioend 0 54137 NULL nohasharray
164242 +enable_so_bdx_fifo_init_fndecl_54137 bdx_fifo_init fndecl 3 54137 &enable_so_io_offset_xfs_ioend_54137
164243 +enable_so_tcf_csum_ipv6_udp_fndecl_54138 tcf_csum_ipv6_udp fndecl 3 54138 NULL
164244 +enable_so_change_protection_range_fndecl_54141 change_protection_range fndecl 3-2 54141 NULL
164245 +enable_so_netvsc_change_mtu_fndecl_54142 netvsc_change_mtu fndecl 2 54142 NULL nohasharray
164246 +enable_so_nr_uart_sc16is7xx_devtype_54142 nr_uart sc16is7xx_devtype 0 54142 &enable_so_netvsc_change_mtu_fndecl_54142
164247 +enable_so_brcmf_usb_dl_writeimage_fndecl_54144 brcmf_usb_dl_writeimage fndecl 3 54144 NULL
164248 +enable_so_hs_cur_bits_cfs_hash_54147 hs_cur_bits cfs_hash 0 54147 NULL
164249 +enable_so_last_rx_rate_vht_nss_sta_info_54155 last_rx_rate_vht_nss sta_info 0 54155 NULL
164250 +enable_so_sp2_write_i2c_fndecl_54157 sp2_write_i2c fndecl 4 54157 NULL nohasharray
164251 +enable_so___hwahc_op_set_ptk_fndecl_54157 __hwahc_op_set_ptk fndecl 5 54157 &enable_so_sp2_write_i2c_fndecl_54157
164252 +enable_so_num_qp_mthca_profile_54160 num_qp mthca_profile 0 54160 NULL
164253 +enable_so_b43_nphy_load_samples_fndecl_54162 b43_nphy_load_samples fndecl 3 54162 NULL
164254 +enable_so_lock_and_cleanup_extent_if_need_fndecl_54163 lock_and_cleanup_extent_if_need fndecl 3-4 54163 NULL
164255 +enable_so_buf_len_lpfc_sli_config_mse_54165 buf_len lpfc_sli_config_mse 0 54165 NULL
164256 +enable_so_cmd_loop_fndecl_54168 cmd_loop fndecl 0 54168 NULL
164257 +enable_so_ip6_append_data_fndecl_54169 ip6_append_data fndecl 5-4 54169 NULL nohasharray
164258 +enable_so_tx_tx_checksum_result_read_fndecl_54169 tx_tx_checksum_result_read fndecl 3 54169 &enable_so_ip6_append_data_fndecl_54169 nohasharray
164259 +enable_so_writebuf_size_tomoyo_io_buffer_54169 writebuf_size tomoyo_io_buffer 0 54169 &enable_so_tx_tx_checksum_result_read_fndecl_54169
164260 +enable_so_handle_one_ule_extension_fndecl_54174 handle_one_ule_extension fndecl 0 54174 NULL
164261 +enable_so_len_xfs_alloc_arg_54187 len xfs_alloc_arg 0 54187 NULL
164262 +enable_so_cpu_type_read_fndecl_54191 cpu_type_read fndecl 3 54191 NULL
164263 +enable_so_nfs_llseek_dir_fndecl_54192 nfs_llseek_dir fndecl 2 54192 NULL nohasharray
164264 +enable_so__iwl_dbgfs_fw_nmi_write_fndecl_54192 _iwl_dbgfs_fw_nmi_write fndecl 3 54192 &enable_so_nfs_llseek_dir_fndecl_54192
164265 +enable_so_tp_ep_bcm5974_config_54193 tp_ep bcm5974_config 0 54193 NULL
164266 +enable_so_current_speed_ide_drive_s_54197 current_speed ide_drive_s 0 54197 NULL
164267 +enable_so_ipw2100_set_essid_fndecl_54200 ipw2100_set_essid fndecl 3 54200 NULL
164268 +enable_so_ieee80211_if_read_fwded_frames_fndecl_54203 ieee80211_if_read_fwded_frames fndecl 3 54203 NULL
164269 +enable_so_contexts_nouveau_fence_priv_54204 contexts nouveau_fence_priv 0 54204 NULL nohasharray
164270 +enable_so_p_filesz_elf32_phdr_54204 p_filesz elf32_phdr 0 54204 &enable_so_contexts_nouveau_fence_priv_54204 nohasharray
164271 +enable_so_ath6kl_interface_add_fndecl_54204 ath6kl_interface_add fndecl 5 54204 &enable_so_p_filesz_elf32_phdr_54204
164272 +enable_so_min_priority_binder_node_54207 min_priority binder_node 0 54207 NULL nohasharray
164273 +enable_so_nframes_bcm_msg_head_54207 nframes bcm_msg_head 0 54207 &enable_so_min_priority_binder_node_54207
164274 +enable_so_mxt_bootloader_write_fndecl_54210 mxt_bootloader_write fndecl 3 54210 NULL nohasharray
164275 +enable_so___lock_page_killable_fndecl_54210 __lock_page_killable fndecl 0 54210 &enable_so_mxt_bootloader_write_fndecl_54210
164276 +enable_so_ep93xx_spi_enable_fndecl_54214 ep93xx_spi_enable fndecl 0 54214 NULL nohasharray
164277 +enable_so_page_offset_ixgbe_rx_buffer_54214 page_offset ixgbe_rx_buffer 0 54214 &enable_so_ep93xx_spi_enable_fndecl_54214
164278 +enable_so_append_frame_to_pkt_fndecl_54220 append_frame_to_pkt fndecl 2 54220 NULL nohasharray
164279 +enable_so_tx_ring_size_ql_adapter_54220 tx_ring_size ql_adapter 0 54220 &enable_so_append_frame_to_pkt_fndecl_54220
164280 +enable_so_lib80211_tkip_encrypt_fndecl_54222 lib80211_tkip_encrypt fndecl 2 54222 NULL
164281 +enable_so_btrfs_get_token_64_fndecl_54223 btrfs_get_token_64 fndecl 0 54223 NULL nohasharray
164282 +enable_so_numeraseregions_mtd_info_54223 numeraseregions mtd_info 0 54223 &enable_so_btrfs_get_token_64_fndecl_54223
164283 +enable_so_num_boxes_intel_uncore_type_54227 num_boxes intel_uncore_type 0 54227 NULL
164284 +enable_so_vbi_hlen_saa7134_dev_54228 vbi_hlen saa7134_dev 0 54228 NULL
164285 +enable_so___kfifo_to_user_fndecl_54232 __kfifo_to_user fndecl 3 54232 NULL
164286 +enable_so_skb_copy_and_csum_datagram_msg_fndecl_54237 skb_copy_and_csum_datagram_msg fndecl 2 54237 NULL
164287 +enable_so_tcp_queue_rcv_fndecl_54242 tcp_queue_rcv fndecl 3 54242 NULL
164288 +enable_so_upper_margin_fb_var_screeninfo_54245 upper_margin fb_var_screeninfo 0 54245 NULL nohasharray
164289 +enable_so_pcnet32_realloc_rx_ring_fndecl_54245 pcnet32_realloc_rx_ring fndecl 3 54245 &enable_so_upper_margin_fb_var_screeninfo_54245
164290 +enable_so_la_last_gd_ocfs2_super_54246 la_last_gd ocfs2_super 0 54246 NULL
164291 +enable_so_num_counters_compat_ipt_replace_54249 num_counters compat_ipt_replace 0 54249 NULL
164292 +enable_so_ttm_object_device_init_fndecl_54252 ttm_object_device_init fndecl 2 54252 NULL
164293 +enable_so_fl_size_qset_params_54254 fl_size qset_params 0 54254 NULL
164294 +enable_so___erst_read_fndecl_54256 __erst_read fndecl 0-1 54256 NULL
164295 +enable_so_ssb_bus_scan_fndecl_54257 ssb_bus_scan fndecl 2 54257 NULL
164296 +enable_so_qnx6_iget_fndecl_54262 qnx6_iget fndecl 2 54262 NULL
164297 +enable_so_txrx_bufs_spi_bitbang_54265 txrx_bufs spi_bitbang 0 54265 NULL
164298 +enable_so_put_cmsg_fndecl_54270 put_cmsg fndecl 4 54270 NULL
164299 +enable_so_msdu_len_htt_rx_in_ord_msdu_desc_54278 msdu_len htt_rx_in_ord_msdu_desc 0 54278 NULL
164300 +enable_so_get_descriptor_ptr_fndecl_54282 get_descriptor_ptr fndecl 2 54282 NULL
164301 +enable_so_key_size_crypt_config_54287 key_size crypt_config 0 54287 NULL
164302 +enable_so_fat_file_fsync_fndecl_54291 fat_file_fsync fndecl 2-3 54291 NULL
164303 +enable_so_thoff_flow_dissector_key_control_54299 thoff flow_dissector_key_control 0 54299 NULL
164304 +enable_so_ntfs_attr_extend_initialized_fndecl_54303 ntfs_attr_extend_initialized fndecl 2 54303 NULL nohasharray
164305 +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
164306 +enable_so_pvr2_issue_simple_cmd_fndecl_54313 pvr2_issue_simple_cmd fndecl 2 54313 NULL
164307 +enable_so_capi_write_fndecl_54323 capi_write fndecl 3 54323 NULL nohasharray
164308 +enable_so_tx_tx_done_template_read_fndecl_54323 tx_tx_done_template_read fndecl 3 54323 &enable_so_capi_write_fndecl_54323
164309 +enable_so_ide_settings_proc_write_fndecl_54325 ide_settings_proc_write fndecl 3 54325 NULL
164310 +enable_so_nla_alloc_flow_actions_fndecl_54328 nla_alloc_flow_actions fndecl 1 54328 NULL
164311 +enable_so_length_acpi_table_header_54332 length acpi_table_header 0 54332 NULL
164312 +enable_so_vringh_iov_push_user_fndecl_54340 vringh_iov_push_user fndecl 3 54340 NULL nohasharray
164313 +enable_so_iscsi_conn_setup_fndecl_54340 iscsi_conn_setup fndecl 2 54340 &enable_so_vringh_iov_push_user_fndecl_54340
164314 +enable_so_max_rcvbuf_size_tipc_server_54342 max_rcvbuf_size tipc_server 0 54342 NULL
164315 +enable_so_ieee80211_if_read_bssid_fndecl_54346 ieee80211_if_read_bssid fndecl 3 54346 NULL
164316 +enable_so_max_raw_minors_vardecl_raw_c_54348 max_raw_minors vardecl_raw.c 0 54348 NULL
164317 +enable_so_wm8997_set_fll_fndecl_54349 wm8997_set_fll fndecl 5 54349 NULL
164318 +enable_so_k_objectid_in_core_key_54352 k_objectid in_core_key 0 54352 NULL nohasharray
164319 +enable_so_p_offset_elf32_phdr_54352 p_offset elf32_phdr 0 54352 &enable_so_k_objectid_in_core_key_54352
164320 +enable_so_hfsplus_block_allocate_fndecl_54353 hfsplus_block_allocate fndecl 0-3-2 54353 NULL
164321 +enable_so_s_fpbmask_ufs_sb_private_info_54354 s_fpbmask ufs_sb_private_info 0 54354 NULL
164322 +enable_so_encode_netobj_fndecl_54356 encode_netobj fndecl 3 54356 NULL
164323 +enable_so_radeon_vram_limit_vardecl_54357 radeon_vram_limit vardecl 0 54357 NULL
164324 +enable_so_tpm_tis_i2c_send_fndecl_54358 tpm_tis_i2c_send fndecl 3 54358 NULL
164325 +enable_so_pkt_size_rx_pkt_status_54360 pkt_size rx_pkt_status 0 54360 NULL
164326 +enable_so_gntdev_alloc_map_fndecl_54362 gntdev_alloc_map fndecl 2 54362 NULL
164327 +enable_so_ceph_get_caps_fndecl_54363 ceph_get_caps fndecl 0 54363 NULL
164328 +enable_so_size_ramoops_context_54365 size ramoops_context 0 54365 NULL
164329 +enable_so_usb_cdc_wdm_register_fndecl_54371 usb_cdc_wdm_register fndecl 3 54371 NULL nohasharray
164330 +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
164331 +enable_so_num_cpu_pages_radeon_gart_54371 num_cpu_pages radeon_gart 0 54371 &enable_so_mlx4_ib_get_cq_umem_fndecl_54371
164332 +enable_so_scif_setup_qp_connect_fndecl_54372 scif_setup_qp_connect fndecl 3 54372 NULL
164333 +enable_so_saved_priority_binder_transaction_54377 saved_priority binder_transaction 0 54377 NULL
164334 +enable_so_iwl_nvm_read_chunk_fndecl_54381 iwl_nvm_read_chunk fndecl 0 54381 NULL
164335 +enable_so_bt878_adr_bt878_54384 bt878_adr bt878 0 54384 NULL
164336 +enable_so_mt7601u_rx_next_seg_len_fndecl_54390 mt7601u_rx_next_seg_len fndecl 0 54390 NULL
164337 +enable_so_nbufs_mlx4_buf_54391 nbufs mlx4_buf 0 54391 NULL
164338 +enable_so_ring_size_netvsc_device_54397 ring_size netvsc_device 0 54397 NULL
164339 +enable_so_memsize_viafb_par_54399 memsize viafb_par 0 54399 NULL nohasharray
164340 +enable_so_SyS_init_module_fndecl_54399 SyS_init_module fndecl 2 54399 &enable_so_memsize_viafb_par_54399
164341 +enable_so_striped_read_fndecl_54401 striped_read fndecl 0-2 54401 NULL nohasharray
164342 +enable_so_leaf_shift_left_fndecl_54401 leaf_shift_left fndecl 3 54401 &enable_so_striped_read_fndecl_54401 nohasharray
164343 +enable_so_security_key_getsecurity_fndecl_54401 security_key_getsecurity fndecl 0 54401 &enable_so_leaf_shift_left_fndecl_54401
164344 +enable_so__osd_req_alist_elem_size_fndecl_54403 _osd_req_alist_elem_size fndecl 0-2 54403 NULL
164345 +enable_so_gr_ep0_respond_fndecl_54405 gr_ep0_respond fndecl 3 54405 NULL
164346 +enable_so_len_a2mp_cmd_54407 len a2mp_cmd 0 54407 NULL
164347 +enable_so_xfs_ialloc_ag_select_fndecl_54409 xfs_ialloc_ag_select fndecl 2-0 54409 NULL nohasharray
164348 +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
164349 +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
164350 +enable_so_mthca_alloc_icm_coherent_fndecl_54412 mthca_alloc_icm_coherent fndecl 3 54412 NULL
164351 +enable_so_qat_hal_get_ins_num_fndecl_54416 qat_hal_get_ins_num fndecl 0 54416 NULL nohasharray
164352 +enable_so_compat_SyS_pselect6_fndecl_54416 compat_SyS_pselect6 fndecl 1 54416 &enable_so_qat_hal_get_ins_num_fndecl_54416
164353 +enable_so_user_height_soc_camera_device_54417 user_height soc_camera_device 0 54417 NULL nohasharray
164354 +enable_so_nrof_flowrings_brcmf_bus_msgbuf_54417 nrof_flowrings brcmf_bus_msgbuf 0 54417 &enable_so_user_height_soc_camera_device_54417
164355 +enable_so_qlcnic_process_lro_fndecl_54418 qlcnic_process_lro fndecl 4-3 54418 NULL nohasharray
164356 +enable_so_subsampling_s5p_jpeg_ctx_54418 subsampling s5p_jpeg_ctx 0 54418 &enable_so_qlcnic_process_lro_fndecl_54418
164357 +enable_so_oxygen_pci_probe_fndecl_54423 oxygen_pci_probe fndecl 2 54423 NULL
164358 +enable_so_follow_page_mask_fndecl_54427 follow_page_mask fndecl 2 54427 NULL
164359 +enable_so_qnx6_get_devblock_fndecl_54428 qnx6_get_devblock fndecl 0 54428 NULL
164360 +enable_so_startbit_netlbl_lsm_catmap_54432 startbit netlbl_lsm_catmap 0 54432 NULL
164361 +enable_so_set_fd_set_fndecl_54434 set_fd_set fndecl 1 54434 NULL
164362 +enable_so_ieee80211_add_tx_radiotap_header_fndecl_54443 ieee80211_add_tx_radiotap_header fndecl 5 54443 NULL
164363 +enable_so_jbd2_journal_get_write_access_fndecl_54444 jbd2_journal_get_write_access fndecl 0 54444 NULL
164364 +enable_so_gfn_to_page_many_atomic_fndecl_54449 gfn_to_page_many_atomic fndecl 2 54449 NULL
164365 +enable_so_kimage_file_prepare_segments_fndecl_54451 kimage_file_prepare_segments fndecl 5 54451 NULL
164366 +enable_so_upd_ltab_fndecl_54459 upd_ltab fndecl 3 54459 NULL
164367 +enable_so_a_count_posix_acl_54461 a_count posix_acl 0 54461 NULL nohasharray
164368 +enable_so_vringh_init_kern_fndecl_54461 vringh_init_kern fndecl 3 54461 &enable_so_a_count_posix_acl_54461
164369 +enable_so_ide_mm_inb_fndecl_54462 ide_mm_inb fndecl 0 54462 NULL
164370 +enable_so_isr_rx_rdys_read_fndecl_54464 isr_rx_rdys_read fndecl 3 54464 NULL nohasharray
164371 +enable_so_nvkm_notify_init_fndecl_54464 nvkm_notify_init fndecl 7 54464 &enable_so_isr_rx_rdys_read_fndecl_54464
164372 +enable_so_shadow_rd16_fndecl_54468 shadow_rd16 fndecl 2 54468 NULL
164373 +enable_so_ocfs2_divide_xattr_cluster_fndecl_54477 ocfs2_divide_xattr_cluster fndecl 3-4 54477 NULL
164374 +enable_so_initial_height_vmw_private_54479 initial_height vmw_private 0 54479 NULL
164375 +enable_so_spi_write_buf_fndecl_54490 spi_write_buf fndecl 2 54490 NULL
164376 +enable_so_n_chan_comedi_subdevice_54496 n_chan comedi_subdevice 0 54496 NULL
164377 +enable_so_dev_start_strip_zone_54501 dev_start strip_zone 0 54501 NULL
164378 +enable_so_max_fds_fdtable_54502 max_fds fdtable 0 54502 NULL
164379 +enable_so_mwifiex_set_gen_ie_helper_fndecl_54506 mwifiex_set_gen_ie_helper fndecl 3 54506 NULL
164380 +enable_so_sys_setsockopt_fndecl_54507 sys_setsockopt fndecl 5 54507 NULL
164381 +enable_so_m_agfrotor_xfs_mount_54510 m_agfrotor xfs_mount 0 54510 NULL nohasharray
164382 +enable_so_get_rxfh_indir_size_ethtool_ops_54510 get_rxfh_indir_size ethtool_ops 0 54510 &enable_so_m_agfrotor_xfs_mount_54510
164383 +enable_so_depth_camif_fmt_54512 depth camif_fmt 0 54512 NULL
164384 +enable_so___btrfs_buffered_write_fndecl_54524 __btrfs_buffered_write fndecl 3 54524 NULL
164385 +enable_so_ocfs2_read_dir_block_direct_fndecl_54528 ocfs2_read_dir_block_direct fndecl 2 54528 NULL
164386 +enable_so_bio_segments_fndecl_54531 bio_segments fndecl 0 54531 NULL
164387 +enable_so_b43_debugfs_write_fndecl_54533 b43_debugfs_write fndecl 3 54533 NULL
164388 +enable_so_num_ccells_cnic_local_54538 num_ccells cnic_local 0 54538 NULL
164389 +enable_so_v_sync_strt_wid_crtc_54541 v_sync_strt_wid crtc 0 54541 NULL nohasharray
164390 +enable_so_bandlength_Kiara_table_entry_54541 bandlength Kiara_table_entry 0 54541 &enable_so_v_sync_strt_wid_crtc_54541
164391 +enable_so_s_dev_table_count_exofs_fscb_54542 s_dev_table_count exofs_fscb 0 54542 NULL
164392 +enable_so_bpp_vardecl_tridentfb_c_54547 bpp vardecl_tridentfb.c 0 54547 NULL
164393 +enable_so_pages_snd_sg_buf_54557 pages snd_sg_buf 0 54557 NULL
164394 +enable_so_ieee80211_if_read_txpower_fndecl_54564 ieee80211_if_read_txpower fndecl 3 54564 NULL
164395 +enable_so_num_cache_leaves_vardecl_54568 num_cache_leaves vardecl 0 54568 NULL
164396 +enable_so_ath6kl_wmi_probe_report_req_cmd_fndecl_54576 ath6kl_wmi_probe_report_req_cmd fndecl 2 54576 NULL
164397 +enable_so_qnx6_check_first_superblock_fndecl_54577 qnx6_check_first_superblock fndecl 2 54577 NULL
164398 +enable_so_priority_sk_buff_54581 priority sk_buff 0 54581 NULL
164399 +enable_so_acpi_system_write_wakeup_device_fndecl_54582 acpi_system_write_wakeup_device fndecl 3 54582 NULL
164400 +enable_so_size_acpi_gpio_mapping_54583 size acpi_gpio_mapping 0 54583 NULL
164401 +enable_so_usb_serial_generic_prepare_write_buffer_fndecl_54586 usb_serial_generic_prepare_write_buffer fndecl 3 54586 NULL
164402 +enable_so_erase_size_mmc_card_54587 erase_size mmc_card 0 54587 NULL
164403 +enable_so_pci_netmos_9900_setup_fndecl_54589 pci_netmos_9900_setup fndecl 4 54589 NULL
164404 +enable_so_near_copies_geom_54591 near_copies geom 0 54591 NULL nohasharray
164405 +enable_so_width_cx231xx_54591 width cx231xx 0 54591 &enable_so_near_copies_geom_54591
164406 +enable_so_viafb_i2c_readbytes_fndecl_54593 viafb_i2c_readbytes fndecl 5 54593 NULL
164407 +enable_so_mipi_dsi_dcs_write_fndecl_54605 mipi_dsi_dcs_write fndecl 4 54605 NULL
164408 +enable_so_fat32_length_fat_bios_param_block_54606 fat32_length fat_bios_param_block 0 54606 NULL
164409 +enable_so_nfs4_get_acl_uncached_fndecl_54608 nfs4_get_acl_uncached fndecl 3 54608 NULL
164410 +enable_so_adfs_f_read_fndecl_54612 adfs_f_read fndecl 2 54612 NULL
164411 +enable_so_msg_print_text_fndecl_54618 msg_print_text fndecl 0 54618 NULL
164412 +enable_so_rx_rate_uap_rxpd_54620 rx_rate uap_rxpd 0 54620 NULL
164413 +enable_so_ieee80211_if_write_fndecl_54621 ieee80211_if_write fndecl 3 54621 NULL
164414 +enable_so_pages_in_unit___stripe_pages_2d_54623 pages_in_unit __stripe_pages_2d 0 54623 NULL
164415 +enable_so_fb_aper_offset_drm_radeon_private_54625 fb_aper_offset drm_radeon_private 0 54625 NULL
164416 +enable_so_ext4_new_meta_blocks_fndecl_54631 ext4_new_meta_blocks fndecl 0 54631 NULL
164417 +enable_so_len_ncp_privatedata_ioctl_54632 len ncp_privatedata_ioctl 0 54632 NULL
164418 +enable_so_vt1211_device_add_fndecl_54634 vt1211_device_add fndecl 1 54634 NULL
164419 +enable_so_bits_per_sample_soc_mbus_pixelfmt_54636 bits_per_sample soc_mbus_pixelfmt 0 54636 NULL nohasharray
164420 +enable_so_text_len_printk_log_54636 text_len printk_log 0 54636 &enable_so_bits_per_sample_soc_mbus_pixelfmt_54636
164421 +enable_so_n_tx_channels_efx_nic_54638 n_tx_channels efx_nic 0 54638 NULL nohasharray
164422 +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
164423 +enable_so_extra_mpdu_prefix_len_lib80211_crypto_ops_54644 extra_mpdu_prefix_len lib80211_crypto_ops 0 54644 NULL nohasharray
164424 +enable_so_nchannels_cosa_data_54644 nchannels cosa_data 0 54644 &enable_so_extra_mpdu_prefix_len_lib80211_crypto_ops_54644
164425 +enable_so_MaxChainDepth_mpt3sas_facts_54646 MaxChainDepth mpt3sas_facts 0 54646 NULL
164426 +enable_so_write_msg_fndecl_54647 write_msg fndecl 3 54647 NULL nohasharray
164427 +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
164428 +enable_so___inode_permission_fndecl_54654 __inode_permission fndecl 0 54654 NULL
164429 +enable_so_tx_flags_fe_priv_54658 tx_flags fe_priv 0 54658 NULL
164430 +enable_so_truncate_pagecache_fndecl_54660 truncate_pagecache fndecl 2 54660 NULL nohasharray
164431 +enable_so_reshape_position_mddev_54660 reshape_position mddev 0 54660 &enable_so_truncate_pagecache_fndecl_54660
164432 +enable_so_s_session_udf_sb_info_54662 s_session udf_sb_info 0 54662 NULL
164433 +enable_so_ssid_len_hostap_bss_info_54670 ssid_len hostap_bss_info 0 54670 NULL
164434 +enable_so_compat_SyS_kexec_load_fndecl_54672 compat_SyS_kexec_load fndecl 2 54672 NULL
164435 +enable_so_id_pps_device_54684 id pps_device 0 54684 NULL
164436 +enable_so_i2c_transfer_fndecl_54685 i2c_transfer fndecl 0 54685 NULL
164437 +enable_so_fwbulkwritelen_tda10048_config_54693 fwbulkwritelen tda10048_config 0 54693 NULL
164438 +enable_so_num_queue_pairs_i40e_vsi_54696 num_queue_pairs i40e_vsi 0 54696 NULL nohasharray
164439 +enable_so_mlx4_en_create_cq_fndecl_54696 mlx4_en_create_cq fndecl 3 54696 &enable_so_num_queue_pairs_i40e_vsi_54696
164440 +enable_so_rx_rx_hdr_overflow_read_fndecl_54697 rx_rx_hdr_overflow_read fndecl 3 54697 NULL
164441 +enable_so_max_pages_per_frmr_ocrdma_dev_attr_54699 max_pages_per_frmr ocrdma_dev_attr 0 54699 NULL
164442 +enable_so_lookahead_deflate_state_54700 lookahead deflate_state 0 54700 NULL
164443 +enable_so_bo_number_drm_amdgpu_bo_list_in_54706 bo_number drm_amdgpu_bo_list_in 0 54706 NULL
164444 +enable_so_nvkm_pm_create__fndecl_54707 nvkm_pm_create_ fndecl 4 54707 NULL
164445 +enable_so_read_endpoint_zr364xx_camera_54710 read_endpoint zr364xx_camera 0 54710 NULL
164446 +enable_so_process_rcvd_status_fndecl_54722 process_rcvd_status fndecl 3 54722 NULL
164447 +enable_so_coda_psdev_read_fndecl_54726 coda_psdev_read fndecl 3 54726 NULL
164448 +enable_so_proc_setgroups_write_fndecl_54732 proc_setgroups_write fndecl 3 54732 NULL
164449 +enable_so_queue_size_eata_info_54734 queue_size eata_info 0 54734 NULL nohasharray
164450 +enable_so_hwdep_read_locked_fndecl_54734 hwdep_read_locked fndecl 3 54734 &enable_so_queue_size_eata_info_54734
164451 +enable_so_brcmf_fws_hdrpull_fndecl_54736 brcmf_fws_hdrpull fndecl 3 54736 NULL
164452 +enable_so_wBytesPerInterval_usb_ss_ep_comp_descriptor_54739 wBytesPerInterval usb_ss_ep_comp_descriptor 0 54739 NULL
164453 +enable_so_sisusb_copy_memory_fndecl_54747 sisusb_copy_memory fndecl 4 54747 NULL
164454 +enable_so_end_writequeue_entry_54752 end writequeue_entry 0 54752 NULL
164455 +enable_so_lpfc_hba_queue_depth_init_fndecl_54754 lpfc_hba_queue_depth_init fndecl 2 54754 NULL
164456 +enable_so_size__drm_via_cmdbuffer_54755 size _drm_via_cmdbuffer 0 54755 NULL
164457 +enable_so_spi_xcomm_setup_transfer_fndecl_54757 spi_xcomm_setup_transfer fndecl 0 54757 NULL
164458 +enable_so_pwr_connection_out_of_sync_read_fndecl_54758 pwr_connection_out_of_sync_read fndecl 3 54758 NULL
164459 +enable_so_hsc_major_vardecl_hsi_char_c_54769 hsc_major vardecl_hsi_char.c 0 54769 NULL
164460 +enable_so_x_len_ccp_ecc_point_54774 x_len ccp_ecc_point 0 54774 NULL
164461 +enable_so_start_fstrim_range_54775 start fstrim_range 0 54775 NULL
164462 +enable_so_append_cnt_ixgbe_cb_54776 append_cnt ixgbe_cb 0 54776 NULL
164463 +enable_so_ext_channel_count_hda_gen_spec_54778 ext_channel_count hda_gen_spec 0 54778 NULL
164464 +enable_so_xfs_rtallocate_extent_fndecl_54783 xfs_rtallocate_extent fndecl 2-8-4 54783 NULL
164465 +enable_so_stv090x_read_reg_fndecl_54785 stv090x_read_reg fndecl 0 54785 NULL
164466 +enable_so_rcvegrbuf_chunks_qib_ctxtdata_54789 rcvegrbuf_chunks qib_ctxtdata 0 54789 NULL
164467 +enable_so_size_dvb_ringbuffer_54794 size dvb_ringbuffer 0 54794 NULL
164468 +enable_so_num_sg_agp_memory_54800 num_sg agp_memory 0 54800 NULL
164469 +enable_so_spk_msg_set_fndecl_54801 spk_msg_set fndecl 3 54801 NULL
164470 +enable_so_num_snd_bebob_meter_spec_54805 num snd_bebob_meter_spec 0 54805 NULL
164471 +enable_so_unlock_extent_cached_fndecl_54806 unlock_extent_cached fndecl 2-3 54806 NULL nohasharray
164472 +enable_so_buf_size__BIG_IOCTL_Command_struct_54806 buf_size _BIG_IOCTL_Command_struct 0 54806 &enable_so_unlock_extent_cached_fndecl_54806
164473 +enable_so_dma_reserve_vardecl_page_alloc_c_54807 dma_reserve vardecl_page_alloc.c 0 54807 NULL
164474 +enable_so_nr_cached_objects_super_operations_54808 nr_cached_objects super_operations 0 54808 NULL
164475 +enable_so_fsx_extsize_fsxattr_54812 fsx_extsize fsxattr 0 54812 NULL
164476 +enable_so_pci_request_regions_fndecl_54816 pci_request_regions fndecl 0 54816 NULL
164477 +enable_so_ep_out_ksdazzle_cb_54817 ep_out ksdazzle_cb 0 54817 NULL
164478 +enable_so_nv50_vm_create_fndecl_54824 nv50_vm_create fndecl 3-2-4 54824 NULL
164479 +enable_so_target_count_dm_ioctl_54826 target_count dm_ioctl 0 54826 NULL
164480 +enable_so_last_adv_data_len_discovery_state_54833 last_adv_data_len discovery_state 0 54833 NULL
164481 +enable_so_kernel_readv_fndecl_54834 kernel_readv fndecl 3 54834 NULL
164482 +enable_so_ixgbe_pci_sriov_configure_fndecl_54843 ixgbe_pci_sriov_configure fndecl 2 54843 NULL
164483 +enable_so_reiserfs_readpages_fndecl_54846 reiserfs_readpages fndecl 4 54846 NULL
164484 +enable_so_blkdev_direct_IO_fndecl_54850 blkdev_direct_IO fndecl 3 54850 NULL
164485 +enable_so_request_lock_fndecl_54853 request_lock fndecl 4 54853 NULL
164486 +enable_so_addr_len_net_device_54857 addr_len net_device 0 54857 NULL
164487 +enable_so_sr_blkno_ocfs2_suballoc_result_54860 sr_blkno ocfs2_suballoc_result 0 54860 NULL
164488 +enable_so_vb2_vmalloc_get_userptr_fndecl_54862 vb2_vmalloc_get_userptr fndecl 2-3 54862 NULL
164489 +enable_so_mru_ippp_struct_54863 mru ippp_struct 0 54863 NULL nohasharray
164490 +enable_so_shmem_file_llseek_fndecl_54863 shmem_file_llseek fndecl 2 54863 &enable_so_mru_ippp_struct_54863
164491 +enable_so_spi_register_board_info_fndecl_54864 spi_register_board_info fndecl 2 54864 NULL
164492 +enable_so_usb_dmac_desc_get_fndecl_54869 usb_dmac_desc_get fndecl 2 54869 NULL
164493 +enable_so_leaf_copy_boundary_item_fndecl_54870 leaf_copy_boundary_item fndecl 4 54870 NULL
164494 +enable_so_bufsize_nm256_stream_54875 bufsize nm256_stream 0 54875 NULL
164495 +enable_so_md_super_write_fndecl_54884 md_super_write fndecl 4-3 54884 NULL
164496 +enable_so_compress_sliced_buf_fndecl_54891 compress_sliced_buf fndecl 0 54891 NULL
164497 +enable_so___breadahead_fndecl_54896 __breadahead fndecl 3-2 54896 NULL
164498 +enable_so_num_uars_mlx5_uuar_info_54898 num_uars mlx5_uuar_info 0 54898 NULL
164499 +enable_so_dm_table_create_fndecl_54900 dm_table_create fndecl 3 54900 NULL
164500 +enable_so_buffer_size_qcaspi_54902 buffer_size qcaspi 0 54902 NULL nohasharray
164501 +enable_so_sr_read_tochdr_fndecl_54902 sr_read_tochdr fndecl 0 54902 &enable_so_buffer_size_qcaspi_54902
164502 +enable_so_rds_page_copy_user_fndecl_54904 rds_page_copy_user fndecl 4 54904 NULL
164503 +enable_so_ext4_es_cache_extent_fndecl_54906 ext4_es_cache_extent fndecl 2-3 54906 NULL
164504 +enable_so_numa_distance_cnt_vardecl_numa_c_54911 numa_distance_cnt vardecl_numa.c 0 54911 NULL
164505 +enable_so_iscsit_build_pdu_and_seq_lists_fndecl_54916 iscsit_build_pdu_and_seq_lists fndecl 2 54916 NULL
164506 +enable_so_sd_start_ov361x_fndecl_54922 sd_start_ov361x fndecl 0 54922 NULL
164507 +enable_so_line_length_fb_fix_screeninfo_54923 line_length fb_fix_screeninfo 0 54923 NULL nohasharray
164508 +enable_so_ipr_copy_ucode_buffer_fndecl_54923 ipr_copy_ucode_buffer fndecl 3 54923 &enable_so_line_length_fb_fix_screeninfo_54923
164509 +enable_so_sector_dm_io_region_54924 sector dm_io_region 0 54924 NULL
164510 +enable_so_cc2520_write_txfifo_fndecl_54930 cc2520_write_txfifo fndecl 3 54930 NULL
164511 +enable_so_xfs_end_io_direct_write_fndecl_54936 xfs_end_io_direct_write fndecl 2-3 54936 NULL
164512 +enable_so_blk_queue_logical_block_size_fndecl_54946 blk_queue_logical_block_size fndecl 2 54946 NULL nohasharray
164513 +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
164514 +enable_so_per_rxd_space_vxge_hw_ring_attr_54953 per_rxd_space vxge_hw_ring_attr 0 54953 NULL
164515 +enable_so_log_blocks_per_seg_f2fs_super_block_54960 log_blocks_per_seg f2fs_super_block 0 54960 NULL
164516 +enable_so_pci_enable_sriov_fndecl_54962 pci_enable_sriov fndecl 2 54962 NULL
164517 +enable_so_offset_usb_iso_packet_descriptor_54977 offset usb_iso_packet_descriptor 0 54977 NULL
164518 +enable_so_v4l2_src_w_yuv_playback_info_54979 v4l2_src_w yuv_playback_info 0 54979 NULL
164519 +enable_so_len_cn_msg_54981 len cn_msg 0 54981 NULL
164520 +enable_so_size_qib_rq_54983 size qib_rq 0 54983 NULL
164521 +enable_so_ocfs2_direct_IO_write_fndecl_54985 ocfs2_direct_IO_write fndecl 3 54985 NULL
164522 +enable_so_rs_switch_to_siso_fndecl_54987 rs_switch_to_siso fndecl 6 54987 NULL
164523 +enable_so_alloc_netdev_mqs_fndecl_54989 alloc_netdev_mqs fndecl 5-1-6 54989 NULL
164524 +enable_so_rx_frame_size_pn533_frame_ops_54990 rx_frame_size pn533_frame_ops 0 54990 NULL
164525 +enable_so_ns_last_cno_the_nilfs_54997 ns_last_cno the_nilfs 0 54997 NULL
164526 +enable_so_rx_bufsize_bc_state_54999 rx_bufsize bc_state 0 54999 NULL nohasharray
164527 +enable_so_send_wqe_overhead_fndecl_54999 send_wqe_overhead fndecl 0 54999 &enable_so_rx_bufsize_bc_state_54999
164528 +enable_so_udf_alloc_i_data_fndecl_55001 udf_alloc_i_data fndecl 2 55001 NULL
164529 +enable_so_of_irq_to_resource_fndecl_55008 of_irq_to_resource fndecl 2 55008 NULL
164530 +enable_so_pvr2_hdw_cpufw_get_fndecl_55011 pvr2_hdw_cpufw_get fndecl 0-2-4 55011 NULL
164531 +enable_so_reply_payload_rcv_len_iscsi_bsg_reply_55012 reply_payload_rcv_len iscsi_bsg_reply 0 55012 NULL
164532 +enable_so_of_pci_get_host_bridge_resources_fndecl_55015 of_pci_get_host_bridge_resources fndecl 3-2 55015 NULL
164533 +enable_so_max_strips_per_io_megasas_ctrl_info_55020 max_strips_per_io megasas_ctrl_info 0 55020 NULL
164534 +enable_so_cz_smu_populate_single_scratch_entry_fndecl_55022 cz_smu_populate_single_scratch_entry fndecl 3 55022 NULL
164535 +enable_so_command_setcompressionparams_fndecl_55026 command_setcompressionparams fndecl 0 55026 NULL
164536 +enable_so_get_memsize_fndecl_55032 get_memsize fndecl 0 55032 NULL
164537 +enable_so_ov518_i2c_r_fndecl_55039 ov518_i2c_r fndecl 0 55039 NULL
164538 +enable_so_length_i2400m_tlv_hdr_55043 length i2400m_tlv_hdr 0 55043 NULL
164539 +enable_so_ieee80211_rx_mgmt_deauth_fndecl_55044 ieee80211_rx_mgmt_deauth fndecl 3 55044 NULL nohasharray
164540 +enable_so_hpi_alloc_control_cache_fndecl_55044 hpi_alloc_control_cache fndecl 1 55044 &enable_so_ieee80211_rx_mgmt_deauth_fndecl_55044
164541 +enable_so_vram_end_amdgpu_mc_55051 vram_end amdgpu_mc 0 55051 NULL
164542 +enable_so_h_panel_info_55057 h panel_info 0 55057 NULL nohasharray
164543 +enable_so_osd_xres_vardecl_ivtvfb_c_55057 osd_xres vardecl_ivtvfb.c 0 55057 &enable_so_h_panel_info_55057
164544 +enable_so_olo_num_comps_pnfs_osd_layout_55062 olo_num_comps pnfs_osd_layout 0 55062 NULL nohasharray
164545 +enable_so___mic_dma_alloc_fndecl_55062 __mic_dma_alloc fndecl 2 55062 &enable_so_olo_num_comps_pnfs_osd_layout_55062
164546 +enable_so_mlx4_alloc_hwq_res_fndecl_55064 mlx4_alloc_hwq_res fndecl 3 55064 NULL
164547 +enable_so_restart_sge_fndecl_55067 restart_sge fndecl 0-4-3 55067 NULL
164548 +enable_so_sddr55_get_capacity_fndecl_55072 sddr55_get_capacity fndecl 0 55072 NULL
164549 +enable_so_p9_virtio_zc_request_fndecl_55074 p9_virtio_zc_request fndecl 6-5-7 55074 NULL
164550 +enable_so_dev_dm_ioctl_55075 dev dm_ioctl 0 55075 NULL
164551 +enable_so_ext4_iget_normal_fndecl_55086 ext4_iget_normal fndecl 2 55086 NULL nohasharray
164552 +enable_so_frame_len_b43legacy_rxhdr_fw3_55086 frame_len b43legacy_rxhdr_fw3 0 55086 &enable_so_ext4_iget_normal_fndecl_55086
164553 +enable_so_vlan_rx_desc_55097 vlan rx_desc 0 55097 NULL
164554 +enable_so_usrtags_sym_tcb_55101 usrtags sym_tcb 0 55101 NULL
164555 +enable_so_read_kmem_fndecl_55103 read_kmem fndecl 3 55103 NULL
164556 +enable_so_fat_mirror_bhs_fndecl_55104 fat_mirror_bhs fndecl 0 55104 NULL nohasharray
164557 +enable_so_nftids_tid_info_55104 nftids tid_info 0 55104 &enable_so_fat_mirror_bhs_fndecl_55104
164558 +enable_so_fat_dir_entries_fat_bios_param_block_55106 fat_dir_entries fat_bios_param_block 0 55106 NULL nohasharray
164559 +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
164560 +enable_so_pnfs_num_cont_bytes_fndecl_55107 pnfs_num_cont_bytes fndecl 0-2 55107 NULL nohasharray
164561 +enable_so_SyS_getxattr_fndecl_55107 SyS_getxattr fndecl 4 55107 &enable_so_pnfs_num_cont_bytes_fndecl_55107
164562 +enable_so_min_channel_count_hda_gen_spec_55108 min_channel_count hda_gen_spec 0 55108 NULL
164563 +enable_so_scatterwalk_ffwd_fndecl_55110 scatterwalk_ffwd fndecl 3 55110 NULL
164564 +enable_so_y_zoran_overlay_settings_55113 y zoran_overlay_settings 0 55113 NULL
164565 +enable_so_unpack_to_rootfs_fndecl_55124 unpack_to_rootfs fndecl 2 55124 NULL
164566 +enable_so_length_dw_radeon_cs_chunk_55128 length_dw radeon_cs_chunk 0 55128 NULL
164567 +enable_so_btrfs_search_old_slot_fndecl_55133 btrfs_search_old_slot fndecl 0 55133 NULL
164568 +enable_so_ea_data_len_gfs2_ea_header_55134 ea_data_len gfs2_ea_header 0 55134 NULL
164569 +enable_so_namelen_dlm_lock_params_55146 namelen dlm_lock_params 0 55146 NULL
164570 +enable_so_gigaset_isowbuf_getbytes_fndecl_55147 gigaset_isowbuf_getbytes fndecl 0-2 55147 NULL
164571 +enable_so_befs_find_brun_dblindirect_fndecl_55152 befs_find_brun_dblindirect fndecl 3 55152 NULL
164572 +enable_so_offset_req_ies_ndis_80211_assoc_info_55155 offset_req_ies ndis_80211_assoc_info 0 55155 NULL
164573 +enable_so_iwl_dbgfs_drv_rx_stats_read_fndecl_55157 iwl_dbgfs_drv_rx_stats_read fndecl 3 55157 NULL
164574 +enable_so_sb_start_md_rdev_55161 sb_start md_rdev 0 55161 NULL
164575 +enable_so_ext3_list_backups_fndecl_55164 ext3_list_backups fndecl 0 55164 NULL nohasharray
164576 +enable_so_buffer_to_user_fndecl_55164 buffer_to_user fndecl 3 55164 &enable_so_ext3_list_backups_fndecl_55164
164577 +enable_so_len_replay_entry_55168 len replay_entry 0 55168 NULL
164578 +enable_so_pid_filter_count_dvb_usb_adapter_fe_properties_55180 pid_filter_count dvb_usb_adapter_fe_properties 0 55180 NULL
164579 +enable_so_hpfs_load_code_page_fndecl_55184 hpfs_load_code_page fndecl 2 55184 NULL
164580 +enable_so_virtqueue_get_vring_size_fndecl_55188 virtqueue_get_vring_size fndecl 0 55188 NULL
164581 +enable_so_result_dio_55189 result dio 0 55189 NULL
164582 +enable_so_efx_mcdi_rpc_async_quiet_fndecl_55191 efx_mcdi_rpc_async_quiet fndecl 4-5 55191 NULL
164583 +enable_so_vmxnet3_change_mtu_fndecl_55195 vmxnet3_change_mtu fndecl 2 55195 NULL
164584 +enable_so_seg_count_agp_region_55196 seg_count agp_region 0 55196 NULL
164585 +enable_so_drm_gtf2_2c_fndecl_55202 drm_gtf2_2c fndecl 0 55202 NULL
164586 +enable_so_num_eqs_mlx4_caps_55225 num_eqs mlx4_caps 0 55225 NULL
164587 +enable_so_adv_instance_cnt_hci_dev_55228 adv_instance_cnt hci_dev 0 55228 NULL
164588 +enable_so_iwl_read_prph_fndecl_55229 iwl_read_prph fndecl 0 55229 NULL
164589 +enable_so_btrfs_prealloc_file_range_trans_fndecl_55231 btrfs_prealloc_file_range_trans fndecl 4 55231 NULL
164590 +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
164591 +enable_so_pstore_mkfile_fndecl_55235 pstore_mkfile fndecl 7 55235 NULL
164592 +enable_so_sb_logsunit_xfs_sb_55236 sb_logsunit xfs_sb 0 55236 NULL
164593 +enable_so_ibnl_put_attr_fndecl_55238 ibnl_put_attr fndecl 3 55238 NULL
164594 +enable_so_ieee80211_if_write_smps_fndecl_55245 ieee80211_if_write_smps fndecl 3 55245 NULL
164595 +enable_so_mwifiex_set_encode_fndecl_55247 mwifiex_set_encode fndecl 4 55247 NULL
164596 +enable_so_async_setkey_fndecl_55250 async_setkey fndecl 3 55250 NULL
164597 +enable_so_req_ring_size_srp_target_port_55251 req_ring_size srp_target_port 0 55251 NULL
164598 +enable_so_d_reclen_venus_dirent_55253 d_reclen venus_dirent 0 55253 NULL
164599 +enable_so_size_pci_cap_saved_data_55258 size pci_cap_saved_data 0 55258 NULL
164600 +enable_so___filemap_fdatawrite_range_fndecl_55259 __filemap_fdatawrite_range fndecl 0-2-3 55259 NULL
164601 +enable_so_iwl_dbgfs_bt_traffic_read_fndecl_55261 iwl_dbgfs_bt_traffic_read fndecl 3 55261 NULL
164602 +enable_so_bpf_convert_filter_fndecl_55264 bpf_convert_filter fndecl 2 55264 NULL
164603 +enable_so_port_rcvhdrq_size_ipath_portdata_55268 port_rcvhdrq_size ipath_portdata 0 55268 NULL
164604 +enable_so_mbox_count_blogic_adapter_55274 mbox_count blogic_adapter 0 55274 NULL
164605 +enable_so_bSubframeSize_uac_format_type_i_discrete_descriptor_55277 bSubframeSize uac_format_type_i_discrete_descriptor 0 55277 NULL nohasharray
164606 +enable_so_sgoffset_cxgbi_task_data_55277 sgoffset cxgbi_task_data 0 55277 &enable_so_bSubframeSize_uac_format_type_i_discrete_descriptor_55277
164607 +enable_so_apic_phys_vardecl_apic_c_55279 apic_phys vardecl_apic.c 0 55279 NULL nohasharray
164608 +enable_so_ext2_acl_from_disk_fndecl_55279 ext2_acl_from_disk fndecl 2 55279 &enable_so_apic_phys_vardecl_apic_c_55279 nohasharray
164609 +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
164610 +enable_so_ld_default_stripe_count_lov_desc_55281 ld_default_stripe_count lov_desc 0 55281 NULL
164611 +enable_so_vb2_dqbuf_fndecl_55284 vb2_dqbuf fndecl 0 55284 NULL
164612 +enable_so_hdrlen_ipv6_rt_hdr_55289 hdrlen ipv6_rt_hdr 0 55289 NULL nohasharray
164613 +enable_so_readlen_proc_data_55289 readlen proc_data 0 55289 &enable_so_hdrlen_ipv6_rt_hdr_55289
164614 +enable_so_c_can_read_msg_object_fndecl_55291 c_can_read_msg_object fndecl 3 55291 NULL
164615 +enable_so_sq905c_command_fndecl_55293 sq905c_command fndecl 0 55293 NULL
164616 +enable_so_regmap_irq_chip_get_base_fndecl_55298 regmap_irq_chip_get_base fndecl 0 55298 NULL
164617 +enable_so_upd_bytes_ubi_volume_55301 upd_bytes ubi_volume 0 55301 NULL
164618 +enable_so_memcg_update_all_caches_fndecl_55303 memcg_update_all_caches fndecl 1 55303 NULL
164619 +enable_so_mxl111sf_stream_config_bulk_fndecl_55308 mxl111sf_stream_config_bulk fndecl 2 55308 NULL
164620 +enable_so_xfs_dialloc_fndecl_55309 xfs_dialloc fndecl 2 55309 NULL
164621 +enable_so_xfs_log_mount_fndecl_55312 xfs_log_mount fndecl 4-3 55312 NULL
164622 +enable_so_dataflash_read_fndecl_55313 dataflash_read fndecl 3 55313 NULL nohasharray
164623 +enable_so_bm_page_io_async_fndecl_55313 bm_page_io_async fndecl 2 55313 &enable_so_dataflash_read_fndecl_55313
164624 +enable_so_mon_buff_area_shrink_fndecl_55317 mon_buff_area_shrink fndecl 2 55317 NULL
164625 +enable_so_ab8500_subscribe_write_fndecl_55323 ab8500_subscribe_write fndecl 3 55323 NULL
164626 +enable_so_pcibios_iov_resource_alignment_fndecl_55327 pcibios_iov_resource_alignment fndecl 0 55327 NULL
164627 +enable_so_proc_scsi_host_write_fndecl_55336 proc_scsi_host_write fndecl 3 55336 NULL
164628 +enable_so_pipeline_pipeline_fifo_full_read_fndecl_55356 pipeline_pipeline_fifo_full_read fndecl 3 55356 NULL nohasharray
164629 +enable_so_alc_alloc_spec_fndecl_55356 alc_alloc_spec fndecl 2 55356 &enable_so_pipeline_pipeline_fifo_full_read_fndecl_55356
164630 +enable_so_islpci_mgt_transmit_fndecl_55366 islpci_mgt_transmit fndecl 5 55366 NULL
164631 +enable_so_cdc_mbim_process_dgram_fndecl_55371 cdc_mbim_process_dgram fndecl 4-3 55371 NULL nohasharray
164632 +enable_so_sctp_addto_param_fndecl_55371 sctp_addto_param fndecl 2 55371 &enable_so_cdc_mbim_process_dgram_fndecl_55371
164633 +enable_so_ixgbe_dbg_netdev_ops_write_fndecl_55374 ixgbe_dbg_netdev_ops_write fndecl 3 55374 NULL
164634 +enable_so_connect_frontend_dmx_demux_55378 connect_frontend dmx_demux 0 55378 NULL
164635 +enable_so_DataLength_smb2_write_rsp_55389 DataLength smb2_write_rsp 0 55389 NULL
164636 +enable_so_st_sensors_spi_read_multiple_byte_fndecl_55393 st_sensors_spi_read_multiple_byte fndecl 4 55393 NULL
164637 +enable_so_dxfer_len_skd_sg_io_55394 dxfer_len skd_sg_io 0 55394 NULL
164638 +enable_so_nprim_symtab_55398 nprim symtab 0 55398 NULL
164639 +enable_so_skb_to_sgvec_fndecl_55400 skb_to_sgvec fndecl 0-4-3 55400 NULL
164640 +enable_so_periodic_size_oxu_hcd_55401 periodic_size oxu_hcd 0 55401 NULL
164641 +enable_so_data_len_nf_conntrack_helper_55405 data_len nf_conntrack_helper 0 55405 NULL
164642 +enable_so_shmem_pread_fast_fndecl_55408 shmem_pread_fast fndecl 3 55408 NULL
164643 +enable_so_min_param_range_55419 min param_range 0 55419 NULL
164644 +enable_so_memblock_trim_memory_fndecl_55423 memblock_trim_memory fndecl 1 55423 NULL
164645 +enable_so_snd_pcm_format_width_fndecl_55426 snd_pcm_format_width fndecl 0 55426 NULL
164646 +enable_so_hidp_set_raw_report_fndecl_55427 hidp_set_raw_report fndecl 4 55427 NULL
164647 +enable_so_rate_via_rate_lock_55434 rate via_rate_lock 0 55434 NULL
164648 +enable_so_rbd_osd_req_create_fndecl_55437 rbd_osd_req_create fndecl 3 55437 NULL
164649 +enable_so_wake_packet_length_iwl_wowlan_status_data_55438 wake_packet_length iwl_wowlan_status_data 0 55438 NULL
164650 +enable_so_nilfs_read_log_header_fndecl_55445 nilfs_read_log_header fndecl 2 55445 NULL nohasharray
164651 +enable_so_scan_read32_fndecl_55445 scan_read32 fndecl 0 55445 &enable_so_nilfs_read_log_header_fndecl_55445
164652 +enable_so_nilfs_direct_IO_fndecl_55447 nilfs_direct_IO fndecl 3 55447 NULL nohasharray
164653 +enable_so_dma_length_scatterlist_55447 dma_length scatterlist 0 55447 &enable_so_nilfs_direct_IO_fndecl_55447 nohasharray
164654 +enable_so_klen_nft_set_55447 klen nft_set 0 55447 &enable_so_dma_length_scatterlist_55447
164655 +enable_so_set_sample_rate_fndecl_55451 set_sample_rate fndecl 2 55451 NULL
164656 +enable_so_acpi_register_gsi_fndecl_55453 acpi_register_gsi fndecl 0 55453 NULL
164657 +enable_so_len_wm_coeff_parsed_coeff_55454 len wm_coeff_parsed_coeff 0 55454 NULL
164658 +enable_so_bcma_bus_next_num_vardecl_main_c_55461 bcma_bus_next_num vardecl_main.c 0 55461 NULL
164659 +enable_so_rx_ring2_size_vmxnet3_adapter_55465 rx_ring2_size vmxnet3_adapter 0 55465 NULL
164660 +enable_so_dma_buf_size_tegra_spi_data_55467 dma_buf_size tegra_spi_data 0 55467 NULL
164661 +enable_so_start_genius_cam_fndecl_55469 start_genius_cam fndecl 0 55469 NULL nohasharray
164662 +enable_so_macvtap_major_vardecl_macvtap_c_55469 macvtap_major vardecl_macvtap.c 0 55469 &enable_so_start_genius_cam_fndecl_55469
164663 +enable_so_status_queue_entry_55470 status queue_entry 0 55470 NULL
164664 +enable_so_xfs_bmapi_write_fndecl_55475 xfs_bmapi_write fndecl 4-3 55475 NULL
164665 +enable_so_ext4_da_write_begin_fndecl_55476 ext4_da_write_begin fndecl 4-3 55476 NULL
164666 +enable_so_vrefresh_drm_display_mode_55481 vrefresh drm_display_mode 0 55481 NULL nohasharray
164667 +enable_so___send_command_fndecl_55481 __send_command fndecl 5-7 55481 &enable_so_vrefresh_drm_display_mode_55481
164668 +enable_so_ocfs2_read_dx_leaf_fndecl_55488 ocfs2_read_dx_leaf fndecl 2 55488 NULL nohasharray
164669 +enable_so_data_offset_rndis_data_hdr_55488 data_offset rndis_data_hdr 0 55488 &enable_so_ocfs2_read_dx_leaf_fndecl_55488
164670 +enable_so_nft_set_ext_add_length_fndecl_55489 nft_set_ext_add_length fndecl 3 55489 NULL
164671 +enable_so_nvkm_volt_create__fndecl_55491 nvkm_volt_create_ fndecl 4 55491 NULL
164672 +enable_so_rx_jumbo_thresh_bnx2_55494 rx_jumbo_thresh bnx2 0 55494 NULL nohasharray
164673 +enable_so_r_offset_rds_page_remainder_55494 r_offset rds_page_remainder 0 55494 &enable_so_rx_jumbo_thresh_bnx2_55494 nohasharray
164674 +enable_so_data_length_iscsi_data_count_55494 data_length iscsi_data_count 0 55494 &enable_so_r_offset_rds_page_remainder_55494
164675 +enable_so_bl_pipe_downcall_fndecl_55499 bl_pipe_downcall fndecl 3 55499 NULL
164676 +enable_so_setup_nodes_for_search_fndecl_55515 setup_nodes_for_search fndecl 0 55515 NULL
164677 +enable_so_iram_offset_sst_res_info_55518 iram_offset sst_res_info 0 55518 NULL
164678 +enable_so_reg_bits_regmap_config_55521 reg_bits regmap_config 0 55521 NULL
164679 +enable_so_NumBlockTypes_cfi_intelext_regioninfo_55526 NumBlockTypes cfi_intelext_regioninfo 0 55526 NULL
164680 +enable_so_bofs_count_irlap_cb_55531 bofs_count irlap_cb 0 55531 NULL nohasharray
164681 +enable_so_iscsi_login_rx_data_fndecl_55531 iscsi_login_rx_data fndecl 3 55531 &enable_so_bofs_count_irlap_cb_55531
164682 +enable_so_blkdev_max_hw_sectors_vardecl_dev_c_55533 blkdev_max_hw_sectors vardecl_dev.c 0 55533 NULL
164683 +enable_so_crtcs_psb_ops_55540 crtcs psb_ops 0 55540 NULL
164684 +enable_so_rf_blkno_ocfs2_refcount_block_55545 rf_blkno ocfs2_refcount_block 0 55545 NULL
164685 +enable_so_isoc_enable_fndecl_55546 isoc_enable fndecl 0 55546 NULL
164686 +enable_so_tmp_afs_call_55554 tmp afs_call 0 55554 NULL
164687 +enable_so_usVSyncOffset__ATOM_DTD_FORMAT_55558 usVSyncOffset _ATOM_DTD_FORMAT 0 55558 NULL
164688 +enable_so_read_reg_fndecl_55560 read_reg fndecl 0 55560 NULL nohasharray
164689 +enable_so_filter_write_fndecl_55560 filter_write fndecl 3 55560 &enable_so_read_reg_fndecl_55560
164690 +enable_so_iv_len_ieee80211_key_conf_55561 iv_len ieee80211_key_conf 0 55561 NULL
164691 +enable_so_io_tlb_overflow_vardecl_swiotlb_c_55570 io_tlb_overflow vardecl_swiotlb.c 0 55570 NULL
164692 +enable_so_nv36_fb_tile_comp_fndecl_55572 nv36_fb_tile_comp fndecl 3 55572 NULL
164693 +enable_so_if_sdio_read_rx_len_fndecl_55579 if_sdio_read_rx_len fndecl 0 55579 NULL
164694 +enable_so_index_vardecl_pcsp_c_55582 index vardecl_pcsp.c 0 55582 NULL
164695 +enable_so_coh_page_bufsize_cl_object_header_55585 coh_page_bufsize cl_object_header 0 55585 NULL
164696 +enable_so_i915_setup_compression_fndecl_55588 i915_setup_compression fndecl 2 55588 NULL nohasharray
164697 +enable_so_exofs_file_fsync_fndecl_55588 exofs_file_fsync fndecl 2-3 55588 &enable_so_i915_setup_compression_fndecl_55588
164698 +enable_so_oz_cdev_write_fndecl_55599 oz_cdev_write fndecl 3 55599 NULL
164699 +enable_so_ext4_punch_hole_fndecl_55604 ext4_punch_hole fndecl 2-3 55604 NULL
164700 +enable_so_overlay_out_top_vivid_dev_55610 overlay_out_top vivid_dev 0 55610 NULL nohasharray
164701 +enable_so_amdgpu_vm_bo_map_fndecl_55610 amdgpu_vm_bo_map fndecl 5-3 55610 &enable_so_overlay_out_top_vivid_dev_55610
164702 +enable_so_udplite_manip_pkt_fndecl_55611 udplite_manip_pkt fndecl 4 55611 NULL
164703 +enable_so_length_ipw_rx_frame_55612 length ipw_rx_frame 0 55612 NULL
164704 +enable_so_alg_trunc_len_xfrm_algo_auth_55613 alg_trunc_len xfrm_algo_auth 0 55613 NULL
164705 +enable_so_f2fs_update_extent_tree_fndecl_55614 f2fs_update_extent_tree fndecl 2-3 55614 NULL
164706 +enable_so_initial_width_vmw_private_55615 initial_width vmw_private 0 55615 NULL nohasharray
164707 +enable_so_ybpp_camif_fmt_55615 ybpp camif_fmt 0 55615 &enable_so_initial_width_vmw_private_55615
164708 +enable_so_vmci_transport_dgram_dequeue_fndecl_55628 vmci_transport_dgram_dequeue fndecl 3 55628 NULL
164709 +enable_so_bin_string_fndecl_55631 bin_string fndecl 5-3 55631 NULL
164710 +enable_so_max_pkt_size_cx231xx_isoc_ctl_55637 max_pkt_size cx231xx_isoc_ctl 0 55637 NULL
164711 +enable_so_extra_tx_headroom_ieee80211_hw_55638 extra_tx_headroom ieee80211_hw 0 55638 NULL
164712 +enable_so_rcvidx_isar_hw_55643 rcvidx isar_hw 0 55643 NULL
164713 +enable_so_sr_read_sector_fndecl_55647 sr_read_sector fndecl 3 55647 NULL
164714 +enable_so_sg_nents_fndecl_55654 sg_nents fndecl 0 55654 NULL
164715 +enable_so_get_user_pages_fndecl_55655 get_user_pages fndecl 0-3 55655 NULL
164716 +enable_so_tda10071_rd_regs_fndecl_55659 tda10071_rd_regs fndecl 4 55659 NULL nohasharray
164717 +enable_so_ath6kl_roam_mode_write_fndecl_55659 ath6kl_roam_mode_write fndecl 3 55659 &enable_so_tda10071_rd_regs_fndecl_55659
164718 +enable_so_queue_logical_block_size_fndecl_55661 queue_logical_block_size fndecl 0 55661 NULL
164719 +enable_so_ath6kl_sdio_io_fndecl_55662 ath6kl_sdio_io fndecl 5 55662 NULL
164720 +enable_so_pagl_rightrec_xfs_perag_55670 pagl_rightrec xfs_perag 0 55670 NULL
164721 +enable_so_smsc47m1_handle_resources_fndecl_55676 smsc47m1_handle_resources fndecl 1 55676 NULL
164722 +enable_so_al_stripes_drbd_md_55679 al_stripes drbd_md 0 55679 NULL
164723 +enable_so_lpfc_idiag_ctlacc_read_fndecl_55684 lpfc_idiag_ctlacc_read fndecl 3 55684 NULL
164724 +enable_so_s_journal_inum_ext3_super_block_55685 s_journal_inum ext3_super_block 0 55685 NULL nohasharray
164725 +enable_so_sel_read_avc_cache_threshold_fndecl_55685 sel_read_avc_cache_threshold fndecl 3 55685 &enable_so_s_journal_inum_ext3_super_block_55685
164726 +enable_so_rs_sta_dbgfs_drv_tx_stats_read_fndecl_55689 rs_sta_dbgfs_drv_tx_stats_read fndecl 3 55689 NULL
164727 +enable_so_stv06xx_write_bridge_fndecl_55690 stv06xx_write_bridge fndecl 0 55690 NULL
164728 +enable_so_read_file_tgt_rx_stats_fndecl_55691 read_file_tgt_rx_stats fndecl 3 55691 NULL
164729 +enable_so_omfs_iget_fndecl_55693 omfs_iget fndecl 2 55693 NULL
164730 +enable_so_rate_n_flags_iwl_rx_phy_res_55709 rate_n_flags iwl_rx_phy_res 0 55709 NULL nohasharray
164731 +enable_so_unique_pos_vardecl_jfs_dtree_c_55709 unique_pos vardecl_jfs_dtree.c 0 55709 &enable_so_rate_n_flags_iwl_rx_phy_res_55709
164732 +enable_so_inline_wsize_rpcrdma_create_data_internal_55719 inline_wsize rpcrdma_create_data_internal 0 55719 NULL
164733 +enable_so_fbcon_resize_fndecl_55724 fbcon_resize fndecl 3-2 55724 NULL
164734 +enable_so_kvm_vcpu_gfn_to_page_fndecl_55725 kvm_vcpu_gfn_to_page fndecl 2 55725 NULL
164735 +enable_so_dst_command_fndecl_55728 dst_command fndecl 3 55728 NULL
164736 +enable_so_vsi_iext_vxfs_sb_info_55734 vsi_iext vxfs_sb_info 0 55734 NULL nohasharray
164737 +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
164738 +enable_so_btrfs_delalloc_reserve_metadata_fndecl_55736 btrfs_delalloc_reserve_metadata fndecl 0 55736 NULL
164739 +enable_so_cnt_mon_text_ptr_55741 cnt mon_text_ptr 0 55741 NULL
164740 +enable_so_max_eq_mlx4_func_55747 max_eq mlx4_func 0 55747 NULL
164741 +enable_so_nilfs_mdt_set_entry_size_fndecl_55751 nilfs_mdt_set_entry_size fndecl 2-3 55751 NULL nohasharray
164742 +enable_so_pad_len_ubifs_pad_node_55751 pad_len ubifs_pad_node 0 55751 &enable_so_nilfs_mdt_set_entry_size_fndecl_55751
164743 +enable_so_nilfs_cpfile_read_fndecl_55758 nilfs_cpfile_read fndecl 2 55758 NULL
164744 +enable_so_vga_switcheroo_debugfs_write_fndecl_55763 vga_switcheroo_debugfs_write fndecl 3 55763 NULL
164745 +enable_so_offset_xfs_bmalloca_55767 offset xfs_bmalloca 0 55767 NULL
164746 +enable_so_s_next_psn_qib_qp_55768 s_next_psn qib_qp 0 55768 NULL
164747 +enable_so_flag_lpfc_dmabufext_55771 flag lpfc_dmabufext 0 55771 NULL
164748 +enable_so_dump_emit_fndecl_55772 dump_emit fndecl 3 55772 NULL nohasharray
164749 +enable_so_cmd_read_size_wiimote_state_55772 cmd_read_size wiimote_state 0 55772 &enable_so_dump_emit_fndecl_55772
164750 +enable_so_ppp_write_fndecl_55777 ppp_write fndecl 3 55777 NULL
164751 +enable_so_width_cx25821_channel_55782 width cx25821_channel 0 55782 NULL
164752 +enable_so_MaxLiteCmds_vardecl_ips_c_55793 MaxLiteCmds vardecl_ips.c 0 55793 NULL
164753 +enable_so_lbs_lowrssi_write_fndecl_55802 lbs_lowrssi_write fndecl 3 55802 NULL
164754 +enable_so_media_dev_t_vardecl_media_devnode_c_55805 media_dev_t vardecl_media-devnode.c 0 55805 NULL
164755 +enable_so_velocity_rx_copy_fndecl_55812 velocity_rx_copy fndecl 2 55812 NULL
164756 +enable_so_init_send_hfcd_fndecl_55817 init_send_hfcd fndecl 1 55817 NULL
164757 +enable_so_result_status_yellowfin_desc_55822 result_status yellowfin_desc 0 55822 NULL
164758 +enable_so_sd_blksz_fw_dl_btmrvl_sdio_card_55832 sd_blksz_fw_dl btmrvl_sdio_card 0 55832 NULL
164759 +enable_so_dvb_ringbuffer_init_fndecl_55834 dvb_ringbuffer_init fndecl 3 55834 NULL
164760 +enable_so_or51132_readbuf_fndecl_55836 or51132_readbuf fndecl 3 55836 NULL
164761 +enable_so_rd_host_buf_pos_xilly_channel_55837 rd_host_buf_pos xilly_channel 0 55837 NULL
164762 +enable_so___jffs2_ref_totlen_fndecl_55842 __jffs2_ref_totlen fndecl 0 55842 NULL
164763 +enable_so_dr_free_blk_ocfs2_dx_root_block_55848 dr_free_blk ocfs2_dx_root_block 0 55848 NULL
164764 +enable_so_s_segment_usage_size_nilfs_super_block_55851 s_segment_usage_size nilfs_super_block 0 55851 NULL
164765 +enable_so___cfg80211_disconnected_fndecl_55853 __cfg80211_disconnected fndecl 3 55853 NULL
164766 +enable_so_ceph_msgpool_init_fndecl_55860 ceph_msgpool_init fndecl 3-4 55860 NULL nohasharray
164767 +enable_so_cw1200_queue_init_fndecl_55860 cw1200_queue_init fndecl 4 55860 &enable_so_ceph_msgpool_init_fndecl_55860
164768 +enable_so_do_raw_getsockopt_fndecl_55863 do_raw_getsockopt fndecl 0 55863 NULL
164769 +enable_so_cramino_fndecl_55864 cramino fndecl 0-2 55864 NULL
164770 +enable_so_nports_cyclades_card_55865 nports cyclades_card 0 55865 NULL nohasharray
164771 +enable_so_bio_integrity_bytes_fndecl_55865 bio_integrity_bytes fndecl 0-2 55865 &enable_so_nports_cyclades_card_55865
164772 +enable_so___find_pending_exception_fndecl_55867 __find_pending_exception fndecl 3 55867 NULL
164773 +enable_so___nonstatic_find_io_region_fndecl_55871 __nonstatic_find_io_region fndecl 2-3 55871 NULL
164774 +enable_so_brcms_c_compute_rspec_fndecl_55873 brcms_c_compute_rspec fndecl 0 55873 NULL
164775 +enable_so_cnic_alloc_dma_fndecl_55874 cnic_alloc_dma fndecl 3 55874 NULL
164776 +enable_so_usVSyncWidth__ATOM_DTD_FORMAT_55875 usVSyncWidth _ATOM_DTD_FORMAT 0 55875 NULL
164777 +enable_so_frame_size_usb_stream_config_55876 frame_size usb_stream_config 0 55876 NULL
164778 +enable_so_gtt_phys_start_psb_gtt_55877 gtt_phys_start psb_gtt 0 55877 NULL
164779 +enable_so_cp_table_size_amdgpu_rlc_55879 cp_table_size amdgpu_rlc 0 55879 NULL
164780 +enable_so_tomoyo_dump_page_fndecl_55882 tomoyo_dump_page fndecl 2 55882 NULL
164781 +enable_so_tlclk_major_vardecl_tlclk_c_55901 tlclk_major vardecl_tlclk.c 0 55901 NULL
164782 +enable_so_fragment_size_snd_compressed_buffer_55903 fragment_size snd_compressed_buffer 0 55903 NULL
164783 +enable_so_major_char_device_struct_55907 major char_device_struct 0 55907 NULL
164784 +enable_so_ad7280_chain_setup_fndecl_55912 ad7280_chain_setup fndecl 0 55912 NULL
164785 +enable_so_isr_fiqs_read_fndecl_55916 isr_fiqs_read fndecl 3 55916 NULL
164786 +enable_so_nf_nat_mangle_udp_packet_fndecl_55926 nf_nat_mangle_udp_packet fndecl 6-8 55926 NULL
164787 +enable_so_change_prot_numa_fndecl_55935 change_prot_numa fndecl 3-2 55935 NULL
164788 +enable_so_pktlen_pkt_attrib_55936 pktlen pkt_attrib 0 55936 NULL
164789 +enable_so_autofs4_write_fndecl_55944 autofs4_write fndecl 4 55944 NULL
164790 +enable_so_image_size_nvbios_pcirT_55946 image_size nvbios_pcirT 0 55946 NULL
164791 +enable_so_osst_seek_logical_blk_fndecl_55950 osst_seek_logical_blk fndecl 3 55950 NULL
164792 +enable_so_pktid_mt76_tx_status_55953 pktid mt76_tx_status 0 55953 NULL
164793 +enable_so_batadv_tvlv_realloc_packet_buff_fndecl_55955 batadv_tvlv_realloc_packet_buff fndecl 4-3 55955 NULL
164794 +enable_so___generic_file_write_iter_fndecl_55960 __generic_file_write_iter fndecl 0 55960 NULL
164795 +enable_so_hptiop_adjust_disk_queue_depth_fndecl_55961 hptiop_adjust_disk_queue_depth fndecl 2 55961 NULL
164796 +enable_so_pkey_table_len_mthca_limits_55962 pkey_table_len mthca_limits 0 55962 NULL
164797 +enable_so_transfer_buffer_length_urb_55970 transfer_buffer_length urb 0 55970 NULL nohasharray
164798 +enable_so_data2_sisusb_command_55970 data2 sisusb_command 0 55970 &enable_so_transfer_buffer_length_urb_55970
164799 +enable_so_reg_w_ixbuf_fndecl_55971 reg_w_ixbuf fndecl 4 55971 NULL
164800 +enable_so_subbuf_size_rchan_55979 subbuf_size rchan 0 55979 NULL nohasharray
164801 +enable_so_scsi_sense_length_se_cmd_55979 scsi_sense_length se_cmd 0 55979 &enable_so_subbuf_size_rchan_55979
164802 +enable_so_iwl_mvm_pass_packet_to_mac80211_fndecl_55980 iwl_mvm_pass_packet_to_mac80211 fndecl 6-4 55980 NULL
164803 +enable_so_ieee80211_if_read_num_sta_ps_fndecl_55985 ieee80211_if_read_num_sta_ps fndecl 3 55985 NULL
164804 +enable_so_platform_list_read_file_fndecl_55997 platform_list_read_file fndecl 3 55997 NULL
164805 +enable_so_mon_bin_get_data_fndecl_55998 mon_bin_get_data fndecl 0-4 55998 NULL
164806 +enable_so_max_degraded_r5conf_56004 max_degraded r5conf 0 56004 NULL
164807 +enable_so_len_pipe_buffer_56007 len pipe_buffer 0 56007 NULL
164808 +enable_so_qib_cdev_init_fndecl_56009 qib_cdev_init fndecl 1 56009 NULL
164809 +enable_so_ath10k_read_ani_enable_fndecl_56020 ath10k_read_ani_enable fndecl 3 56020 NULL
164810 +enable_so_i2400m_change_mtu_fndecl_56021 i2400m_change_mtu fndecl 2 56021 NULL
164811 +enable_so_num_pins_lola_pin_array_56022 num_pins lola_pin_array 0 56022 NULL
164812 +enable_so___ocfs2_change_file_space_fndecl_56023 __ocfs2_change_file_space fndecl 3 56023 NULL
164813 +enable_so_vm_memory_committed_fndecl_56024 vm_memory_committed fndecl 0 56024 NULL
164814 +enable_so_vlan_id_ib_mac_iocb_rsp_56025 vlan_id ib_mac_iocb_rsp 0 56025 NULL nohasharray
164815 +enable_so_bootmode_store_fndecl_56025 bootmode_store fndecl 4 56025 &enable_so_vlan_id_ib_mac_iocb_rsp_56025
164816 +enable_so_ov519_pkt_scan_fndecl_56026 ov519_pkt_scan fndecl 3 56026 NULL
164817 +enable_so___iio_device_attr_init_fndecl_56028 __iio_device_attr_init fndecl 0 56028 NULL
164818 +enable_so_can_nocow_extent_fndecl_56034 can_nocow_extent fndecl 2 56034 NULL
164819 +enable_so_SYSC_keyctl_fndecl_56035 SYSC_keyctl fndecl 4 56035 NULL
164820 +enable_so_vbi_pixel_to_capture_vardecl_saa7146_vbi_c_56037 vbi_pixel_to_capture vardecl_saa7146_vbi.c 0 56037 NULL nohasharray
164821 +enable_so_sg_update_list_fndecl_56037 sg_update_list fndecl 2 56037 &enable_so_vbi_pixel_to_capture_vardecl_saa7146_vbi_c_56037
164822 +enable_so_totalram_pages_vardecl_56043 totalram_pages vardecl 0 56043 NULL
164823 +enable_so_hpi_instream_read_buf_fndecl_56045 hpi_instream_read_buf fndecl 3 56045 NULL
164824 +enable_so_punit_base_intel_pmc_ipc_dev_56048 punit_base intel_pmc_ipc_dev 0 56048 NULL
164825 +enable_so_status_whc_qtd_56049 status whc_qtd 0 56049 NULL
164826 +enable_so_usb_wwan_setup_urb_fndecl_56054 usb_wwan_setup_urb fndecl 6-3-2 56054 NULL
164827 +enable_so_mod_xfs_alloc_arg_56058 mod xfs_alloc_arg 0 56058 NULL nohasharray
164828 +enable_so_bundle_size_gf100_grctx_oclass_56058 bundle_size gf100_grctx_oclass 0 56058 &enable_so_mod_xfs_alloc_arg_56058
164829 +enable_so_drm_mm_insert_helper_range_fndecl_56060 drm_mm_insert_helper_range fndecl 3 56060 NULL
164830 +enable_so_chainsize_ctlr_info_56067 chainsize ctlr_info 0 56067 NULL
164831 +enable_so_iov_iter_single_seg_count_fndecl_56069 iov_iter_single_seg_count fndecl 0 56069 NULL
164832 +enable_so_frag_ceph_mds_reply_dirfrag_56070 frag ceph_mds_reply_dirfrag 0 56070 NULL
164833 +enable_so_full_page_bnx2x_agg_info_56071 full_page bnx2x_agg_info 0 56071 NULL
164834 +enable_so_batch_start_offset_drm_i915_gem_execbuffer2_56077 batch_start_offset drm_i915_gem_execbuffer2 0 56077 NULL nohasharray
164835 +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
164836 +enable_so_num_chunks_drm_amdgpu_cs_in_56088 num_chunks drm_amdgpu_cs_in 0 56088 NULL
164837 +enable_so_xprt_udp_slot_table_entries_vardecl_xprtsock_c_56096 xprt_udp_slot_table_entries vardecl_xprtsock.c 0 56096 NULL nohasharray
164838 +enable_so_size_perf_event_header_56096 size perf_event_header 0 56096 &enable_so_xprt_udp_slot_table_entries_vardecl_xprtsock_c_56096
164839 +enable_so_datalength_fwheader_56097 datalength fwheader 0 56097 NULL
164840 +enable_so_snic_change_queue_depth_fndecl_56099 snic_change_queue_depth fndecl 2 56099 NULL
164841 +enable_so_proc_thread_self_readlink_fndecl_56102 proc_thread_self_readlink fndecl 3 56102 NULL
164842 +enable_so_l_sectBBsize_xlog_56103 l_sectBBsize xlog 0 56103 NULL
164843 +enable_so_max_frame_size__synclinkmp_info_56104 max_frame_size _synclinkmp_info 0 56104 NULL nohasharray
164844 +enable_so_sync_page_io_fndecl_56104 sync_page_io fndecl 3-2 56104 &enable_so_max_frame_size__synclinkmp_info_56104
164845 +enable_so_play_audio_cb_fndecl_56108 play_audio_cb fndecl 2 56108 NULL nohasharray
164846 +enable_so_maximum_input_absinfo_56108 maximum input_absinfo 0 56108 &enable_so_play_audio_cb_fndecl_56108
164847 +enable_so_p54_alloc_skb_fndecl_56109 p54_alloc_skb fndecl 3 56109 NULL
164848 +enable_so_zlib_inflate_blob_fndecl_56117 zlib_inflate_blob fndecl 2-4 56117 NULL nohasharray
164849 +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
164850 +enable_so_ssl_prev_nilfs_snapshot_list_56120 ssl_prev nilfs_snapshot_list 0 56120 NULL
164851 +enable_so_q0_depth_bna_rx_config_56122 q0_depth bna_rx_config 0 56122 NULL
164852 +enable_so_ath5k_setup_channels_fndecl_56123 ath5k_setup_channels fndecl 0 56123 NULL nohasharray
164853 +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
164854 +enable_so_usbvision_v4l2_read_fndecl_56129 usbvision_v4l2_read fndecl 3 56129 NULL
164855 +enable_so_size_direct_56131 size direct 0 56131 NULL nohasharray
164856 +enable_so_av7110_vbi_write_fndecl_56131 av7110_vbi_write fndecl 3 56131 &enable_so_size_direct_56131
164857 +enable_so_xenvif_gop_frag_copy_fndecl_56135 xenvif_gop_frag_copy fndecl 5-6 56135 NULL
164858 +enable_so_sl_max_ip_sf_socklist_56140 sl_max ip_sf_socklist 0 56140 NULL
164859 +enable_so__iwl_dbgfs_low_latency_write_fndecl_56153 _iwl_dbgfs_low_latency_write fndecl 3 56153 NULL
164860 +enable_so_reiserfs_resize_fndecl_56154 reiserfs_resize fndecl 2 56154 NULL
164861 +enable_so_i2c_hid_get_raw_report_fndecl_56155 i2c_hid_get_raw_report fndecl 4 56155 NULL
164862 +enable_so_ipx_pktsize_ipxhdr_56157 ipx_pktsize ipxhdr 0 56157 NULL
164863 +enable_so_nd_num_o2nm_node_56160 nd_num o2nm_node 0 56160 NULL
164864 +enable_so_block_len_extent_map_56171 block_len extent_map 0 56171 NULL nohasharray
164865 +enable_so_nl80211_send_disassoc_fndecl_56171 nl80211_send_disassoc fndecl 4 56171 &enable_so_block_len_extent_map_56171
164866 +enable_so_ivtv_read_pos_fndecl_56179 ivtv_read_pos fndecl 3 56179 NULL nohasharray
164867 +enable_so_iwl_calib_set_fndecl_56179 iwl_calib_set fndecl 3 56179 &enable_so_ivtv_read_pos_fndecl_56179
164868 +enable_so_csum_offset_virtio_net_hdr_56180 csum_offset virtio_net_hdr 0 56180 NULL
164869 +enable_so_sccb_reg_read_fndecl_56181 sccb_reg_read fndecl 0 56181 NULL nohasharray
164870 +enable_so_ivsize_vardecl_encrypted_c_56181 ivsize vardecl_encrypted.c 0 56181 &enable_so_sccb_reg_read_fndecl_56181
164871 +enable_so_sctp_make_heartbeat_ack_fndecl_56184 sctp_make_heartbeat_ack fndecl 4 56184 NULL
164872 +enable_so_rx_ring_size_bnx2_56185 rx_ring_size bnx2 0 56185 NULL
164873 +enable_so_size_netlbl_domhsh_tbl_56186 size netlbl_domhsh_tbl 0 56186 NULL
164874 +enable_so_wl1271_tx_fill_hdr_fndecl_56191 wl1271_tx_fill_hdr fndecl 4 56191 NULL
164875 +enable_so_qgroupid_btrfs_qgroup_56202 qgroupid btrfs_qgroup 0 56202 NULL nohasharray
164876 +enable_so_rx_data_fndecl_56202 rx_data fndecl 4-3 56202 &enable_so_qgroupid_btrfs_qgroup_56202
164877 +enable_so_dma_rx_size_sxgbe_priv_data_56205 dma_rx_size sxgbe_priv_data 0 56205 NULL
164878 +enable_so_dlen_pg_56210 dlen pg 0 56210 NULL
164879 +enable_so_jffs2_fill_wbuf_fndecl_56212 jffs2_fill_wbuf fndecl 3 56212 NULL
164880 +enable_so_width_v4l2_mbus_framefmt_56214 width v4l2_mbus_framefmt 0 56214 NULL
164881 +enable_so_sample_stack_user_perf_event_attr_56220 sample_stack_user perf_event_attr 0 56220 NULL
164882 +enable_so_offset_cifs_writedata_56222 offset cifs_writedata 0 56222 NULL nohasharray
164883 +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
164884 +enable_so_depth_s2255_fmt_56229 depth s2255_fmt 0 56229 NULL
164885 +enable_so_ocfs2_mv_xattr_buckets_fndecl_56231 ocfs2_mv_xattr_buckets fndecl 6-3-5-4 56231 NULL
164886 +enable_so_security_inode_permission_fndecl_56235 security_inode_permission fndecl 0 56235 NULL
164887 +enable_so_wm8350_register_led_fndecl_56237 wm8350_register_led fndecl 2-4-3 56237 NULL
164888 +enable_so_max_recv_dlength_iscsi_bus_flash_conn_56238 max_recv_dlength iscsi_bus_flash_conn 0 56238 NULL
164889 +enable_so_af9013_wr_regs_fndecl_56239 af9013_wr_regs fndecl 4 56239 NULL
164890 +enable_so_wBlockNumber_ms_bootblock_sysinf_56240 wBlockNumber ms_bootblock_sysinf 0 56240 NULL
164891 +enable_so_qlcnic_set_tx_ring_count_fndecl_56242 qlcnic_set_tx_ring_count fndecl 2 56242 NULL
164892 +enable_so_cfpkt_peek_head_fndecl_56245 cfpkt_peek_head fndecl 3 56245 NULL nohasharray
164893 +enable_so_dt_gpio_count_fndecl_56245 dt_gpio_count fndecl 0 56245 &enable_so_cfpkt_peek_head_fndecl_56245
164894 +enable_so_qtd_fill_fndecl_56249 qtd_fill fndecl 5-6-3-0-4 56249 NULL
164895 +enable_so_mwifiex_regrdwr_read_fndecl_56251 mwifiex_regrdwr_read fndecl 3 56251 NULL
164896 +enable_so_size_uvc_xu_control_query_56263 size uvc_xu_control_query 0 56263 NULL
164897 +enable_so_ib_ipath_max_srq_sges_vardecl_56266 ib_ipath_max_srq_sges vardecl 0 56266 NULL
164898 +enable_so_dmreq_start_crypt_config_56268 dmreq_start crypt_config 0 56268 NULL
164899 +enable_so_qp_alloc_res_fndecl_56275 qp_alloc_res fndecl 5 56275 NULL
164900 +enable_so_vyres_crtc_56276 vyres crtc 0 56276 NULL
164901 +enable_so_s_raid_stride_ext4_super_block_56277 s_raid_stride ext4_super_block 0 56277 NULL
164902 +enable_so_fi_ino_ocfs2_find_inode_args_56279 fi_ino ocfs2_find_inode_args 0 56279 NULL nohasharray
164903 +enable_so_pci_mmconfig_add_fndecl_56279 pci_mmconfig_add fndecl 2-3-4 56279 &enable_so_fi_ino_ocfs2_find_inode_args_56279
164904 +enable_so_dram_base_intel_sst_drv_56282 dram_base intel_sst_drv 0 56282 NULL
164905 +enable_so_x_max_wacom_features_56285 x_max wacom_features 0 56285 NULL
164906 +enable_so_header_length_txentry_desc_56288 header_length txentry_desc 0 56288 NULL
164907 +enable_so_nr_rates_audioformat_56293 nr_rates audioformat 0 56293 NULL
164908 +enable_so_ttymajor_vardecl_synclink_gt_c_56300 ttymajor vardecl_synclink_gt.c 0 56300 NULL
164909 +enable_so_pd_handles_sz_MPT2SAS_ADAPTER_56310 pd_handles_sz MPT2SAS_ADAPTER 0 56310 NULL
164910 +enable_so_ext4_fallocate_fndecl_56314 ext4_fallocate fndecl 3-4 56314 NULL
164911 +enable_so_essid_len_ipw_priv_56318 essid_len ipw_priv 0 56318 NULL
164912 +enable_so_gf100_ram_get_fndecl_56322 gf100_ram_get fndecl 2-3 56322 NULL
164913 +enable_so_SYSC_lgetxattr_fndecl_56330 SYSC_lgetxattr fndecl 4 56330 NULL
164914 +enable_so_ebt_compat_match_offset_fndecl_56334 ebt_compat_match_offset fndecl 0-2 56334 NULL
164915 +enable_so_pipeline_dec_packet_in_fifo_full_read_fndecl_56335 pipeline_dec_packet_in_fifo_full_read fndecl 3 56335 NULL
164916 +enable_so_ath6kl_wmi_ap_set_apsd_fndecl_56339 ath6kl_wmi_ap_set_apsd fndecl 2 56339 NULL
164917 +enable_so_drm_atomic_helper_plane_set_property_fndecl_56340 drm_atomic_helper_plane_set_property fndecl 3 56340 NULL
164918 +enable_so_blocked_fl_read_fndecl_56341 blocked_fl_read fndecl 3 56341 NULL
164919 +enable_so_tx_ring_size_bnx2_56345 tx_ring_size bnx2 0 56345 NULL
164920 +enable_so_blksize_vardecl_encrypted_c_56348 blksize vardecl_encrypted.c 0 56348 NULL nohasharray
164921 +enable_so_vmw_user_shader_alloc_fndecl_56348 vmw_user_shader_alloc fndecl 3 56348 &enable_so_blksize_vardecl_encrypted_c_56348
164922 +enable_so_gfs2_write_end_fndecl_56354 gfs2_write_end fndecl 5 56354 NULL
164923 +enable_so_dccp_ackvec_add_new_fndecl_56359 dccp_ackvec_add_new fndecl 2-3 56359 NULL
164924 +enable_so_acl_permission_check_fndecl_56360 acl_permission_check fndecl 0 56360 NULL
164925 +enable_so_i_ino_xfs_inode_56363 i_ino xfs_inode 0 56363 NULL
164926 +enable_so_interrupt_out_endpointAddress_usb_serial_port_56364 interrupt_out_endpointAddress usb_serial_port 0 56364 NULL
164927 +enable_so_ide_set_pio_mode_fndecl_56371 ide_set_pio_mode fndecl 2 56371 NULL
164928 +enable_so_stats_dot11RTSSuccessCount_read_fndecl_56378 stats_dot11RTSSuccessCount_read fndecl 3 56378 NULL
164929 +enable_so_len_asd_ha_addrspace_56381 len asd_ha_addrspace 0 56381 NULL
164930 +enable_so_sel_read_checkreqprot_fndecl_56383 sel_read_checkreqprot fndecl 3 56383 NULL
164931 +enable_so_nd_cmd_in_size_fndecl_56386 nd_cmd_in_size fndecl 0 56386 NULL
164932 +enable_so_stride_geom_56394 stride geom 0 56394 NULL
164933 +enable_so_ieee80211_fragment_fndecl_56395 ieee80211_fragment fndecl 4-3 56395 NULL
164934 +enable_so_lost_out_tcp_sock_56397 lost_out tcp_sock 0 56397 NULL
164935 +enable_so_buf_count_drm_device_dma_56399 buf_count drm_device_dma 0 56399 NULL
164936 +enable_so_ccw_clear_fndecl_56408 ccw_clear fndecl 3-5-6-4 56408 NULL
164937 +enable_so_f2fs_llseek_fndecl_56409 f2fs_llseek fndecl 2 56409 NULL
164938 +enable_so_ieee80211_auth_challenge_fndecl_56418 ieee80211_auth_challenge fndecl 3 56418 NULL
164939 +enable_so_notify_change_fndecl_56420 notify_change fndecl 0 56420 NULL
164940 +enable_so_max_recv_wr_ib_qp_cap_56426 max_recv_wr ib_qp_cap 0 56426 NULL
164941 +enable_so_max_eps_mv_u3d_56428 max_eps mv_u3d 0 56428 NULL
164942 +enable_so_llc_ui_sendmsg_fndecl_56432 llc_ui_sendmsg fndecl 3 56432 NULL nohasharray
164943 +enable_so_stat_len_sge_56432 stat_len sge 0 56432 &enable_so_llc_ui_sendmsg_fndecl_56432
164944 +enable_so_ath6kl_wmi_cancel_remain_on_chnl_cmd_fndecl_56434 ath6kl_wmi_cancel_remain_on_chnl_cmd fndecl 2 56434 NULL nohasharray
164945 +enable_so_write_node_fndecl_56434 write_node fndecl 4 56434 &enable_so_ath6kl_wmi_cancel_remain_on_chnl_cmd_fndecl_56434
164946 +enable_so_hsync_end_drm_display_mode_56439 hsync_end drm_display_mode 0 56439 NULL nohasharray
164947 +enable_so_bdbars_count_intel8x0_56439 bdbars_count intel8x0 0 56439 &enable_so_hsync_end_drm_display_mode_56439 nohasharray
164948 +enable_so_idx_lebs_ubifs_lp_stats_56439 idx_lebs ubifs_lp_stats 0 56439 &enable_so_bdbars_count_intel8x0_56439
164949 +enable_so_sas_change_queue_depth_fndecl_56440 sas_change_queue_depth fndecl 2 56440 NULL
164950 +enable_so_vlan_tag_lro_56441 vlan_tag lro 0 56441 NULL nohasharray
164951 +enable_so_fb_sys_write_fndecl_56441 fb_sys_write fndecl 0-3 56441 &enable_so_vlan_tag_lro_56441
164952 +enable_so_gtk_ivlen_iwl_mvm_56442 gtk_ivlen iwl_mvm 0 56442 NULL nohasharray
164953 +enable_so_num_rx_queues_igb_adapter_56442 num_rx_queues igb_adapter 0 56442 &enable_so_gtk_ivlen_iwl_mvm_56442
164954 +enable_so_DataTransferLength_bulk_cb_wrap_56447 DataTransferLength bulk_cb_wrap 0 56447 NULL
164955 +enable_so___ocfs2_increase_refcount_fndecl_56450 __ocfs2_increase_refcount fndecl 5-4 56450 NULL
164956 +enable_so_debug_debug6_read_fndecl_56451 debug_debug6_read fndecl 3 56451 NULL
164957 +enable_so_size_tcp_fastopen_request_56457 size tcp_fastopen_request 0 56457 NULL nohasharray
164958 +enable_so_block_dm_thin_lookup_result_56457 block dm_thin_lookup_result 0 56457 &enable_so_size_tcp_fastopen_request_56457
164959 +enable_so_winfo_size_data_queue_56462 winfo_size data_queue 0 56462 NULL nohasharray
164960 +enable_so_scnt_aoe_cfghdr_56462 scnt aoe_cfghdr 0 56462 &enable_so_winfo_size_data_queue_56462
164961 +enable_so_tpg_init_fndecl_56464 tpg_init fndecl 2-3 56464 NULL
164962 +enable_so_packet_sendmsg_fndecl_56465 packet_sendmsg fndecl 3 56465 NULL nohasharray
164963 +enable_so_ia_size_iattr_56465 ia_size iattr 0 56465 &enable_so_packet_sendmsg_fndecl_56465
164964 +enable_so__pci_add_cap_save_buffer_fndecl_56466 _pci_add_cap_save_buffer fndecl 4 56466 NULL
164965 +enable_so_SyS_poll_fndecl_56467 SyS_poll fndecl 2 56467 NULL
164966 +enable_so_banks_mca_config_56472 banks mca_config 0 56472 NULL
164967 +enable_so___erst_clear_from_storage_fndecl_56476 __erst_clear_from_storage fndecl 1 56476 NULL
164968 +enable_so_func_suspend_usb_function_56478 func_suspend usb_function 0 56478 NULL
164969 +enable_so_dataflash_read_fact_otp_fndecl_56487 dataflash_read_fact_otp fndecl 3-2 56487 NULL
164970 +enable_so_xen_allocate_irqs_dynamic_fndecl_56489 xen_allocate_irqs_dynamic fndecl 0 56489 NULL nohasharray
164971 +enable_so_pp_read_fndecl_56489 pp_read fndecl 3 56489 &enable_so_xen_allocate_irqs_dynamic_fndecl_56489
164972 +enable_so_ext4_split_convert_extents_fndecl_56493 ext4_split_convert_extents fndecl 0 56493 NULL
164973 +enable_so_active_ahd_linux_device_56494 active ahd_linux_device 0 56494 NULL
164974 +enable_so_nci_hci_send_cmd_fndecl_56495 nci_hci_send_cmd fndecl 5 56495 NULL
164975 +enable_so_free_bit_ocfs2_cached_block_free_56500 free_bit ocfs2_cached_block_free 0 56500 NULL
164976 +enable_so_choose_mtu_fndecl_56503 choose_mtu fndecl 0 56503 NULL nohasharray
164977 +enable_so_len_audit_proctitle_56503 len audit_proctitle 0 56503 &enable_so_choose_mtu_fndecl_56503
164978 +enable_so_process_ptload_program_headers_elf64_fndecl_56505 process_ptload_program_headers_elf64 fndecl 3-2 56505 NULL
164979 +enable_so_nvkm_fuse_create__fndecl_56507 nvkm_fuse_create_ fndecl 4 56507 NULL
164980 +enable_so_batadv_socket_receive_packet_fndecl_56509 batadv_socket_receive_packet fndecl 2 56509 NULL
164981 +enable_so_stream_size_yuv_playback_info_56511 stream_size yuv_playback_info 0 56511 NULL
164982 +enable_so_ntb_netdev_rx_handler_fndecl_56518 ntb_netdev_rx_handler fndecl 4 56518 NULL
164983 +enable_so_long_retry_limit_ipw2100_priv_56521 long_retry_limit ipw2100_priv 0 56521 NULL
164984 +enable_so___vb2_wait_for_done_vb_fndecl_56525 __vb2_wait_for_done_vb fndecl 0 56525 NULL
164985 +enable_so_xbfi_startblock_xfs_bmap_free_item_56529 xbfi_startblock xfs_bmap_free_item 0 56529 NULL
164986 +enable_so_vp_modern_find_vqs_fndecl_56530 vp_modern_find_vqs fndecl 2 56530 NULL nohasharray
164987 +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
164988 +enable_so_core_size_rw_module_56544 core_size_rw module 0 56544 NULL nohasharray
164989 +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
164990 +enable_so_max_ethqsets_sge_56552 max_ethqsets sge 0 56552 NULL
164991 +enable_so_cachefiles_cook_key_fndecl_56553 cachefiles_cook_key fndecl 2 56553 NULL
164992 +enable_so_sf_size_adapter_params_56574 sf_size adapter_params 0 56574 NULL
164993 +enable_so_sctp_tsnmap_grow_fndecl_56579 sctp_tsnmap_grow fndecl 2 56579 NULL
164994 +enable_so_nbp_vlan_delete_fndecl_56582 nbp_vlan_delete fndecl 2 56582 NULL
164995 +enable_so_buf_bytes_mmc_blk_ioc_data_56589 buf_bytes mmc_blk_ioc_data 0 56589 NULL
164996 +enable_so_offset_cramfs_inode_56601 offset cramfs_inode 0 56601 NULL
164997 +enable_so_qt2_write_fndecl_56603 qt2_write fndecl 4 56603 NULL
164998 +enable_so_cb_irq_yenta_socket_56604 cb_irq yenta_socket 0 56604 NULL
164999 +enable_so_security_size_rxrpc_connection_56613 security_size rxrpc_connection 0 56613 NULL
165000 +enable_so_pci_map_size_iadev_priv_56617 pci_map_size iadev_priv 0 56617 NULL
165001 +enable_so_ieee80211_tdls_mgmt_fndecl_56618 ieee80211_tdls_mgmt fndecl 10 56618 NULL
165002 +enable_so_afs_dir_iterate_block_fndecl_56630 afs_dir_iterate_block fndecl 3 56630 NULL nohasharray
165003 +enable_so_rproc_name_read_fndecl_56630 rproc_name_read fndecl 3 56630 &enable_so_afs_dir_iterate_block_fndecl_56630
165004 +enable_so_x509_note_issuer_fndecl_56631 x509_note_issuer fndecl 5 56631 NULL
165005 +enable_so_max_blk_count_mmc_host_56634 max_blk_count mmc_host 0 56634 NULL nohasharray
165006 +enable_so_get_register_page_interruptible_fndecl_56634 get_register_page_interruptible fndecl 5 56634 &enable_so_max_blk_count_mmc_host_56634 nohasharray
165007 +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
165008 +enable_so_devt_device_56638 devt device 0 56638 NULL
165009 +enable_so_last_sect_blkif_request_segment_56644 last_sect blkif_request_segment 0 56644 NULL
165010 +enable_so_count_v4l2_requestbuffers_56650 count v4l2_requestbuffers 0 56650 NULL
165011 +enable_so_bytenr_btrfs_root_item_56657 bytenr btrfs_root_item 0 56657 NULL
165012 +enable_so___ksize_fndecl_56662 __ksize fndecl 0 56662 NULL
165013 +enable_so___memblock_find_range_top_down_fndecl_56669 __memblock_find_range_top_down fndecl 0-4-3-1-2 56669 NULL nohasharray
165014 +enable_so_csio_scsi_iqlen_vardecl_56669 csio_scsi_iqlen vardecl 0 56669 &enable_so___memblock_find_range_top_down_fndecl_56669
165015 +enable_so_cifs_writedata_alloc_fndecl_56675 cifs_writedata_alloc fndecl 1 56675 NULL nohasharray
165016 +enable_so_ath6kl_usb_submit_ctrl_in_fndecl_56675 ath6kl_usb_submit_ctrl_in fndecl 6 56675 &enable_so_cifs_writedata_alloc_fndecl_56675
165017 +enable_so_len_fw_desc_56676 len fw_desc 0 56676 NULL
165018 +enable_so_vp702x_usb_inout_cmd_fndecl_56679 vp702x_usb_inout_cmd fndecl 4-6 56679 NULL
165019 +enable_so_pbl_top_rdma_info_56683 pbl_top rdma_info 0 56683 NULL
165020 +enable_so_max_channels_hda_multi_out_56686 max_channels hda_multi_out 0 56686 NULL nohasharray
165021 +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
165022 +enable_so_ath6kl_usb_post_recv_transfers_fndecl_56687 ath6kl_usb_post_recv_transfers fndecl 2 56687 NULL nohasharray
165023 +enable_so_npages_in_use_dma_pool_56687 npages_in_use dma_pool 0 56687 &enable_so_ath6kl_usb_post_recv_transfers_fndecl_56687
165024 +enable_so_new_tape_buffer_fndecl_56689 new_tape_buffer fndecl 2 56689 NULL
165025 +enable_so_ks8851_rdreg_fndecl_56695 ks8851_rdreg fndecl 4 56695 NULL
165026 +enable_so_remove_migration_pte_fndecl_56701 remove_migration_pte fndecl 3 56701 NULL nohasharray
165027 +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 nohasharray
165028 +enable_so___qcom_scm_hdcp_req_fndecl_56701 __qcom_scm_hdcp_req fndecl 2 56701 &enable_so_ath6kl_wmi_set_rssi_filter_cmd_fndecl_56701
165029 +enable_so_usb_err_gspca_dev_56706 usb_err gspca_dev 0 56706 NULL nohasharray
165030 +enable_so_il_dbgfs_tx_stats_read_fndecl_56706 il_dbgfs_tx_stats_read fndecl 3 56706 &enable_so_usb_err_gspca_dev_56706
165031 +enable_so_zlib_inflate_workspacesize_fndecl_56716 zlib_inflate_workspacesize fndecl 0 56716 NULL
165032 +enable_so_qgroupid_btrfs_ioctl_qgroup_create_args_56717 qgroupid btrfs_ioctl_qgroup_create_args 0 56717 NULL
165033 +enable_so_munlock_vma_pages_range_fndecl_56718 munlock_vma_pages_range fndecl 2 56718 NULL
165034 +enable_so_ext4_get_group_number_fndecl_56720 ext4_get_group_number fndecl 0 56720 NULL nohasharray
165035 +enable_so_rcvegrbuf_size_qib_ctxtdata_56720 rcvegrbuf_size qib_ctxtdata 0 56720 &enable_so_ext4_get_group_number_fndecl_56720
165036 +enable_so_opcnt_nfsd4_compoundargs_56722 opcnt nfsd4_compoundargs 0 56722 NULL
165037 +enable_so_offset_cw1200_txpriv_56729 offset cw1200_txpriv 0 56729 NULL
165038 +enable_so_tx_ring_size_mvpp2_port_56735 tx_ring_size mvpp2_port 0 56735 NULL
165039 +enable_so_search_empty_fndecl_56737 search_empty fndecl 2 56737 NULL
165040 +enable_so_val_len_ceph_inode_xattr_56742 val_len ceph_inode_xattr 0 56742 NULL
165041 +enable_so_sb_logsectlog_xfs_sb_56750 sb_logsectlog xfs_sb 0 56750 NULL
165042 +enable_so_page_offset_skb_frag_struct_56751 page_offset skb_frag_struct 0 56751 NULL
165043 +enable_so_read_pipe_ezusb_priv_56753 read_pipe ezusb_priv 0 56753 NULL nohasharray
165044 +enable_so_xprt_complete_bc_request_fndecl_56753 xprt_complete_bc_request fndecl 2 56753 &enable_so_read_pipe_ezusb_priv_56753
165045 +enable_so_length_scatterlist_56760 length scatterlist 0 56760 NULL nohasharray
165046 +enable_so_cfg_fof_lpfc_hba_56760 cfg_fof lpfc_hba 0 56760 &enable_so_length_scatterlist_56760
165047 +enable_so_npkt_cam_56768 npkt cam 0 56768 NULL
165048 +enable_so_arch_ptrace_fndecl_56774 arch_ptrace fndecl 3 56774 NULL
165049 +enable_so_max_rpi_lpfc_max_cfg_param_56782 max_rpi lpfc_max_cfg_param 0 56782 NULL
165050 +enable_so_tx_rate_mwifiex_private_56784 tx_rate mwifiex_private 0 56784 NULL
165051 +enable_so_mem_size_mxt_data_56785 mem_size mxt_data 0 56785 NULL
165052 +enable_so_vc_saved_y_vc_data_56792 vc_saved_y vc_data 0 56792 NULL nohasharray
165053 +enable_so_ext4_group_overhead_blocks_fndecl_56792 ext4_group_overhead_blocks fndecl 0 56792 &enable_so_vc_saved_y_vc_data_56792
165054 +enable_so_nvkm_pmu_create__fndecl_56806 nvkm_pmu_create_ fndecl 4 56806 NULL
165055 +enable_so_context_id_bnx2fc_rport_56807 context_id bnx2fc_rport 0 56807 NULL nohasharray
165056 +enable_so_state_count_acpi_processor_performance_56807 state_count acpi_processor_performance 0 56807 &enable_so_context_id_bnx2fc_rport_56807
165057 +enable_so_write_file_bt_ant_diversity_fndecl_56808 write_file_bt_ant_diversity fndecl 3 56808 NULL
165058 +enable_so_num_pages_vmci_queue_kern_if_56812 num_pages vmci_queue_kern_if 0 56812 NULL
165059 +enable_so_hugetlbfs_pagecache_page_fndecl_56822 hugetlbfs_pagecache_page fndecl 3 56822 NULL
165060 +enable_so_page_base_xdr_buf_56823 page_base xdr_buf 0 56823 NULL
165061 +enable_so_rs_get_best_rate_fndecl_56825 rs_get_best_rate fndecl 5-0 56825 NULL
165062 +enable_so_netdev_change_mtu_fndecl_56827 netdev_change_mtu fndecl 2 56827 NULL
165063 +enable_so_ext3_alloc_blocks_fndecl_56828 ext3_alloc_blocks fndecl 3 56828 NULL nohasharray
165064 +enable_so_SyS_syslog_fndecl_56828 SyS_syslog fndecl 3 56828 &enable_so_ext3_alloc_blocks_fndecl_56828
165065 +enable_so_io_size_smi_info_56832 io_size smi_info 0 56832 NULL
165066 +enable_so_truesize_sk_buff_56834 truesize sk_buff 0 56834 NULL
165067 +enable_so_sc_max_requests_svcxprt_rdma_56840 sc_max_requests svcxprt_rdma 0 56840 NULL
165068 +enable_so_tail_TxFifo_56844 tail TxFifo 0 56844 NULL
165069 +enable_so_capacity_alauda_media_info_56845 capacity alauda_media_info 0 56845 NULL
165070 +enable_so_tomoyo_read_self_fndecl_56848 tomoyo_read_self fndecl 3 56848 NULL
165071 +enable_so_blocks_mmc_test_area_56853 blocks mmc_test_area 0 56853 NULL
165072 +enable_so_transfer_one_spi_master_56858 transfer_one spi_master 0 56858 NULL
165073 +enable_so_dup_array_fndecl_56860 dup_array fndecl 3 56860 NULL
165074 +enable_so_max_cq_sz_mlx4_dev_cap_56868 max_cq_sz mlx4_dev_cap 0 56868 NULL nohasharray
165075 +enable_so_count_subheaders_fndecl_56868 count_subheaders fndecl 0 56868 &enable_so_max_cq_sz_mlx4_dev_cap_56868
165076 +enable_so_status_pipe_uas_dev_info_56869 status_pipe uas_dev_info 0 56869 NULL
165077 +enable_so_combined_count_ethtool_channels_56871 combined_count ethtool_channels 0 56871 NULL
165078 +enable_so_freecom_writedata_fndecl_56872 freecom_writedata fndecl 4 56872 NULL
165079 +enable_so_read_aperture_fndecl_56876 read_aperture fndecl 0 56876 NULL
165080 +enable_so_fat_rebuild_parent_fndecl_56877 fat_rebuild_parent fndecl 2 56877 NULL nohasharray
165081 +enable_so_ath6kl_wmi_set_pvb_cmd_fndecl_56877 ath6kl_wmi_set_pvb_cmd fndecl 2 56877 &enable_so_fat_rebuild_parent_fndecl_56877
165082 +enable_so_xfs_itruncate_extents_fndecl_56879 xfs_itruncate_extents fndecl 4 56879 NULL nohasharray
165083 +enable_so_scsi_execute_fndecl_56879 scsi_execute fndecl 5 56879 &enable_so_xfs_itruncate_extents_fndecl_56879
165084 +enable_so___btrfs_set_prop_fndecl_56883 __btrfs_set_prop fndecl 5 56883 NULL
165085 +enable_so_dx_dirent_blk_ocfs2_dx_entry_56884 dx_dirent_blk ocfs2_dx_entry 0 56884 NULL
165086 +enable_so_cmtp_send_frame_fndecl_56890 cmtp_send_frame fndecl 3 56890 NULL
165087 +enable_so_zr364xx_got_frame_fndecl_56891 zr364xx_got_frame fndecl 2 56891 NULL
165088 +enable_so_byte_count_drm_device_dma_56892 byte_count drm_device_dma 0 56892 NULL nohasharray
165089 +enable_so_prev_adaption_gsm_dlci_56892 prev_adaption gsm_dlci 0 56892 &enable_so_byte_count_drm_device_dma_56892
165090 +enable_so_width_font_desc_56899 width font_desc 0 56899 NULL
165091 +enable_so___process_new_xattr_fndecl_56906 __process_new_xattr fndecl 6-4 56906 NULL nohasharray
165092 +enable_so_length_fw_cdev_send_response_56906 length fw_cdev_send_response 0 56906 &enable_so___process_new_xattr_fndecl_56906
165093 +enable_so_max_port_number_tb_regs_switch_header_56907 max_port_number tb_regs_switch_header 0 56907 NULL
165094 +enable_so_diff_objects_assoc_array_ops_56914 diff_objects assoc_array_ops 0 56914 NULL
165095 +enable_so_cifs_fsync_fndecl_56917 cifs_fsync fndecl 2-3 56917 NULL
165096 +enable_so_comedi_buf_write_n_allocated_fndecl_56919 comedi_buf_write_n_allocated fndecl 0 56919 NULL
165097 +enable_so_ip6_find_1stfragopt_fndecl_56923 ip6_find_1stfragopt fndecl 0 56923 NULL nohasharray
165098 +enable_so_xt_compat_target_offset_fndecl_56923 xt_compat_target_offset fndecl 0 56923 &enable_so_ip6_find_1stfragopt_fndecl_56923
165099 +enable_so_il_dbgfs_qos_read_fndecl_56924 il_dbgfs_qos_read fndecl 3 56924 NULL nohasharray
165100 +enable_so_usb_gstrings_attach_fndecl_56924 usb_gstrings_attach fndecl 3 56924 &enable_so_il_dbgfs_qos_read_fndecl_56924
165101 +enable_so_vram_vardecl_nvidia_c_56925 vram vardecl_nvidia.c 0 56925 NULL
165102 +enable_so_beiscsi_process_async_pdu_fndecl_56929 beiscsi_process_async_pdu fndecl 6 56929 NULL
165103 +enable_so_data_len_ib_mac_iocb_rsp_56930 data_len ib_mac_iocb_rsp 0 56930 NULL
165104 +enable_so_align_buffer_sz_sdhci_host_56931 align_buffer_sz sdhci_host 0 56931 NULL
165105 +enable_so_csize_jffs2_tmp_dnode_info_56933 csize jffs2_tmp_dnode_info 0 56933 NULL
165106 +enable_so_max_tar_initio_host_56934 max_tar initio_host 0 56934 NULL
165107 +enable_so_hotadd_new_pgdat_fndecl_56936 hotadd_new_pgdat fndecl 2 56936 NULL
165108 +enable_so_vmw_gmr_bind_fndecl_56940 vmw_gmr_bind fndecl 3 56940 NULL
165109 +enable_so_drm_property_replace_global_blob_fndecl_56945 drm_property_replace_global_blob fndecl 3 56945 NULL
165110 +enable_so_len_rx_hdr_56949 len rx_hdr 0 56949 NULL
165111 +enable_so_target_submit_cmd_fndecl_56950 target_submit_cmd fndecl 6 56950 NULL
165112 +enable_so_memblock_set_node_fndecl_56955 memblock_set_node fndecl 2-1 56955 NULL
165113 +enable_so_DevSizeShift_qinfo_chip_56957 DevSizeShift qinfo_chip 0 56957 NULL
165114 +enable_so_i_lastalloc_affs_inode_info_56961 i_lastalloc affs_inode_info 0 56961 NULL
165115 +enable_so_cur_pkt_size_pktgen_dev_56962 cur_pkt_size pktgen_dev 0 56962 NULL
165116 +enable_so_n_mem_slots_qxl_device_56964 n_mem_slots qxl_device 0 56964 NULL
165117 +enable_so_maxresp_cached_nfsd4_channel_attrs_56966 maxresp_cached nfsd4_channel_attrs 0 56966 NULL
165118 +enable_so_spanned_pages_zone_56972 spanned_pages zone 0 56972 NULL
165119 +enable_so_ceph_write_end_fndecl_56973 ceph_write_end fndecl 5-3 56973 NULL
165120 +enable_so_irq_blk_threshold_read_fndecl_56977 irq_blk_threshold_read fndecl 3 56977 NULL
165121 +enable_so_arp_hdr_len_fndecl_56980 arp_hdr_len fndecl 0 56980 NULL
165122 +enable_so_find_next_chunk_fndecl_56983 find_next_chunk fndecl 0 56983 NULL
165123 +enable_so_ath6kl_wmi_startscan_cmd_fndecl_56985 ath6kl_wmi_startscan_cmd fndecl 8-2 56985 NULL
165124 +enable_so_i2c_hid_alloc_buffers_fndecl_56986 i2c_hid_alloc_buffers fndecl 2 56986 NULL
165125 +enable_so_max_packet_whc_qset_56991 max_packet whc_qset 0 56991 NULL nohasharray
165126 +enable_so_btrfs_dio_bio_alloc_fndecl_56991 btrfs_dio_bio_alloc fndecl 2 56991 &enable_so_max_packet_whc_qset_56991
165127 +enable_so_pvr2_stream_buffer_count_fndecl_56996 pvr2_stream_buffer_count fndecl 2 56996 NULL
165128 +enable_so_write_file_spectral_count_fndecl_57000 write_file_spectral_count fndecl 3 57000 NULL
165129 +enable_so_file_remove_privs_fndecl_57001 file_remove_privs fndecl 0 57001 NULL nohasharray
165130 +enable_so_num_tx_rings_bnx2_57001 num_tx_rings bnx2 0 57001 &enable_so_file_remove_privs_fndecl_57001
165131 +enable_so_edid_size_dlfb_data_57003 edid_size dlfb_data 0 57003 NULL nohasharray
165132 +enable_so_sunxi_nand_hw_common_ecc_ctrl_init_fndecl_57003 sunxi_nand_hw_common_ecc_ctrl_init fndecl 0 57003 &enable_so_edid_size_dlfb_data_57003
165133 +enable_so_nv50_disp_dmac_create__fndecl_57011 nv50_disp_dmac_create_ fndecl 6 57011 NULL
165134 +enable_so_ext4_clear_blocks_fndecl_57012 ext4_clear_blocks fndecl 4-5 57012 NULL
165135 +enable_so_i2c_hack_wm8775_fndecl_57014 i2c_hack_wm8775 fndecl 4-6 57014 NULL
165136 +enable_so_expand_corename_fndecl_57021 expand_corename fndecl 2 57021 NULL
165137 +enable_so_buffer_bytes_max_snd_pcm_substream_57022 buffer_bytes_max snd_pcm_substream 0 57022 NULL
165138 +enable_so_sys_keyctl_fndecl_57023 sys_keyctl fndecl 4 57023 NULL nohasharray
165139 +enable_so_xs_send_kvec_fndecl_57023 xs_send_kvec fndecl 5-3 57023 &enable_so_sys_keyctl_fndecl_57023
165140 +enable_so_nfs_idmap_instantiate_fndecl_57026 nfs_idmap_instantiate fndecl 4 57026 NULL
165141 +enable_so_usb_packet_maxlen_usb_fifo_57029 usb_packet_maxlen usb_fifo 0 57029 NULL
165142 +enable_so_xfrm_count_pfkey_enc_supported_fndecl_57031 xfrm_count_pfkey_enc_supported fndecl 0 57031 NULL nohasharray
165143 +enable_so_stacksize_xt_table_info_57031 stacksize xt_table_info 0 57031 &enable_so_xfrm_count_pfkey_enc_supported_fndecl_57031
165144 +enable_so_do_munmap_fndecl_57035 do_munmap fndecl 2-3 57035 NULL
165145 +enable_so_size_mb_flash_desc_57036 size_mb flash_desc 0 57036 NULL
165146 +enable_so_read_file_node_recv_fndecl_57042 read_file_node_recv fndecl 3 57042 NULL
165147 +enable_so_ib_qib_max_cqes_vardecl_57049 ib_qib_max_cqes vardecl 0 57049 NULL
165148 +enable_so_i_subdirs_ceph_inode_info_57052 i_subdirs ceph_inode_info 0 57052 NULL
165149 +enable_so_index_scsi_disk_57053 index scsi_disk 0 57053 NULL
165150 +enable_so_nsindex_size_nvdimm_drvdata_57060 nsindex_size nvdimm_drvdata 0 57060 NULL
165151 +enable_so___btrfs_free_reserved_extent_fndecl_57061 __btrfs_free_reserved_extent fndecl 3-2 57061 NULL nohasharray
165152 +enable_so_size_garmin_packet_57061 size garmin_packet 0 57061 &enable_so___btrfs_free_reserved_extent_fndecl_57061
165153 +enable_so_log_blocks_per_seg_f2fs_sb_info_57063 log_blocks_per_seg f2fs_sb_info 0 57063 NULL
165154 +enable_so_ezusb_write_ltv_fndecl_57071 ezusb_write_ltv fndecl 4 57071 NULL
165155 +enable_so_vifs_state_read_fndecl_57073 vifs_state_read fndecl 3 57073 NULL
165156 +enable_so_set_one_prio_fndecl_57075 set_one_prio fndecl 2 57075 NULL
165157 +enable_so_mem_map_size_efx_nic_type_57089 mem_map_size efx_nic_type 0 57089 NULL
165158 +enable_so_num_uars_mlx4_caps_57093 num_uars mlx4_caps 0 57093 NULL
165159 +enable_so_ib_ipath_max_pds_vardecl_ipath_verbs_c_57102 ib_ipath_max_pds vardecl_ipath_verbs.c 0 57102 NULL
165160 +enable_so_part_shift_vardecl_loop_c_57103 part_shift vardecl_loop.c 0 57103 NULL nohasharray
165161 +enable_so_mcs7830_get_reg_fndecl_57103 mcs7830_get_reg fndecl 3 57103 &enable_so_part_shift_vardecl_loop_c_57103
165162 +enable_so_sync_pt_create_fndecl_57105 sync_pt_create fndecl 2 57105 NULL
165163 +enable_so_total_sections_f2fs_sb_info_57118 total_sections f2fs_sb_info 0 57118 NULL
165164 +enable_so_size_nvif_notify_57130 size nvif_notify 0 57130 NULL
165165 +enable_so_gsm_mux_rx_netchar_fndecl_57131 gsm_mux_rx_netchar fndecl 3 57131 NULL
165166 +enable_so_ath10k_htt_rx_crypto_tail_len_fndecl_57132 ath10k_htt_rx_crypto_tail_len fndecl 0 57132 NULL nohasharray
165167 +enable_so_joydev_ioctl_fndecl_57132 joydev_ioctl fndecl 2 57132 &enable_so_ath10k_htt_rx_crypto_tail_len_fndecl_57132
165168 +enable_so_msg_controllen_msghdr_57136 msg_controllen msghdr 0 57136 NULL
165169 +enable_so_max_write_same_sectors_queue_limits_57138 max_write_same_sectors queue_limits 0 57138 NULL
165170 +enable_so_ha_end_pfn_hv_hotadd_state_57139 ha_end_pfn hv_hotadd_state 0 57139 NULL
165171 +enable_so_pci_set_dma_max_seg_size_fndecl_57140 pci_set_dma_max_seg_size fndecl 2 57140 NULL
165172 +enable_so_isku_sysfs_read_keys_easyzone_fndecl_57141 isku_sysfs_read_keys_easyzone fndecl 6 57141 NULL
165173 +enable_so_pack_sg_list_p_fndecl_57142 pack_sg_list_p fndecl 7-6 57142 NULL
165174 +enable_so_sb_agblklog_xfs_sb_57145 sb_agblklog xfs_sb 0 57145 NULL
165175 +enable_so_vlan_dev_vlan_id_fndecl_57152 vlan_dev_vlan_id fndecl 0 57152 NULL nohasharray
165176 +enable_so_ant_type_il_scale_tbl_info_57152 ant_type il_scale_tbl_info 0 57152 &enable_so_vlan_dev_vlan_id_fndecl_57152
165177 +enable_so_ofs_in_node_dnode_of_data_57156 ofs_in_node dnode_of_data 0 57156 NULL
165178 +enable_so_bytes_written_flags_cq_enet_rq_desc_57164 bytes_written_flags cq_enet_rq_desc 0 57164 NULL
165179 +enable_so_spi_wr_buf_fndecl_57169 spi_wr_buf fndecl 4 57169 NULL
165180 +enable_so_alloc_len_xps_map_57174 alloc_len xps_map 0 57174 NULL
165181 +enable_so_pd_points_ath5k_pdgain_info_57180 pd_points ath5k_pdgain_info 0 57180 NULL
165182 +enable_so_dpcm_playback_snd_soc_dai_link_57182 dpcm_playback snd_soc_dai_link 0 57182 NULL
165183 +enable_so_create_xattr_datum_fndecl_57183 create_xattr_datum fndecl 5 57183 NULL nohasharray
165184 +enable_so_irq_pkt_threshold_read_fndecl_57183 irq_pkt_threshold_read fndecl 3 57183 &enable_so_create_xattr_datum_fndecl_57183
165185 +enable_so_num_vfs_mlx4_dev_persistent_57187 num_vfs mlx4_dev_persistent 0 57187 NULL
165186 +enable_so_z1_zt_57189 z1 zt 0 57189 NULL
165187 +enable_so_cfs_trace_copyin_string_fndecl_57191 cfs_trace_copyin_string fndecl 4 57191 NULL
165188 +enable_so_OutputCount_smb2_ioctl_rsp_57198 OutputCount smb2_ioctl_rsp 0 57198 NULL
165189 +enable_so_ieee80211_if_read_dropped_frames_no_route_fndecl_57204 ieee80211_if_read_dropped_frames_no_route fndecl 3 57204 NULL
165190 +enable_so_sector_dm_crypt_io_57208 sector dm_crypt_io 0 57208 NULL
165191 +enable_so_frag_max_size_inet6_skb_parm_57210 frag_max_size inet6_skb_parm 0 57210 NULL
165192 +enable_so_osd_req_op_xattr_init_fndecl_57211 osd_req_op_xattr_init fndecl 6 57211 NULL
165193 +enable_so_mon_buff_area_free_fndecl_57212 mon_buff_area_free fndecl 2 57212 NULL
165194 +enable_so_le_min_key_size_read_fndecl_57214 le_min_key_size_read fndecl 3 57214 NULL
165195 +enable_so_overflow_maj_vardecl_uverbs_main_c_57216 overflow_maj vardecl_uverbs_main.c 0 57216 NULL
165196 +enable_so_mss_Vmxnet3_RxCompDescExt_57228 mss Vmxnet3_RxCompDescExt 0 57228 NULL
165197 +enable_so_RxDescriptors_vardecl_pch_gbe_param_c_57229 RxDescriptors vardecl_pch_gbe_param.c 0 57229 NULL
165198 +enable_so_len_setup_data_57234 len setup_data 0 57234 NULL nohasharray
165199 +enable_so_ufs_getfrag_block_fndecl_57234 ufs_getfrag_block fndecl 2 57234 &enable_so_len_setup_data_57234
165200 +enable_so_ext4_meta_bg_first_block_no_fndecl_57235 ext4_meta_bg_first_block_no fndecl 0-2 57235 NULL
165201 +enable_so_header_asix_rx_fixup_info_57237 header asix_rx_fixup_info 0 57237 NULL nohasharray
165202 +enable_so_li_namelen_nfsd4_link_57237 li_namelen nfsd4_link 0 57237 &enable_so_header_asix_rx_fixup_info_57237
165203 +enable_so_offset_ion_test_rw_data_57241 offset ion_test_rw_data 0 57241 NULL
165204 +enable_so_sys_dup3_fndecl_57246 sys_dup3 fndecl 2 57246 NULL
165205 +enable_so_maxlen_xfs_alloc_arg_57260 maxlen xfs_alloc_arg 0 57260 NULL
165206 +enable_so_si2165_read_fndecl_57262 si2165_read fndecl 4 57262 NULL
165207 +enable_so_sc18is602_setup_transfer_fndecl_57266 sc18is602_setup_transfer fndecl 0 57266 NULL
165208 +enable_so_fuse_dev_do_write_fndecl_57267 fuse_dev_do_write fndecl 3 57267 NULL
165209 +enable_so_mps_l2cap_le_conn_rsp_57280 mps l2cap_le_conn_rsp 0 57280 NULL
165210 +enable_so_entry_nr_kvm_assigned_msix_nr_57282 entry_nr kvm_assigned_msix_nr 0 57282 NULL
165211 +enable_so_packet_sz_musb_ep_57296 packet_sz musb_ep 0 57296 NULL nohasharray
165212 +enable_so_ovs_vport_alloc_fndecl_57296 ovs_vport_alloc fndecl 1 57296 &enable_so_packet_sz_musb_ep_57296
165213 +enable_so_create_entry_fndecl_57300 create_entry fndecl 2 57300 NULL
165214 +enable_so_tcp_off_tso_state_57305 tcp_off tso_state 0 57305 NULL
165215 +enable_so_qtd_copy_status_fndecl_57306 qtd_copy_status fndecl 0-4-3 57306 NULL
165216 +enable_so_ptk_ivlen_iwl_mvm_57307 ptk_ivlen iwl_mvm 0 57307 NULL
165217 +enable_so_usCRTC_V_SyncStart__ATOM_MODE_TIMING_57308 usCRTC_V_SyncStart _ATOM_MODE_TIMING 0 57308 NULL nohasharray
165218 +enable_so_elf_map_fndecl_57308 elf_map fndecl 6 57308 &enable_so_usCRTC_V_SyncStart__ATOM_MODE_TIMING_57308 nohasharray
165219 +enable_so_ip_setsockopt_fndecl_57308 ip_setsockopt fndecl 5-0 57308 &enable_so_elf_map_fndecl_57308
165220 +enable_so_nes_alloc_fast_reg_page_list_fndecl_57312 nes_alloc_fast_reg_page_list fndecl 2 57312 NULL
165221 +enable_so_orinoco_hw_get_essid_fndecl_57314 orinoco_hw_get_essid fndecl 0 57314 NULL
165222 +enable_so_aggr_size_rx_size_read_fndecl_57317 aggr_size_rx_size_read fndecl 3 57317 NULL
165223 +enable_so_interrupt_in_endpoint_size_ld_usb_57321 interrupt_in_endpoint_size ld_usb 0 57321 NULL
165224 +enable_so_acpi_gsi_to_irq_fndecl_57326 acpi_gsi_to_irq fndecl 1 57326 NULL
165225 +enable_so_fb_read_fndecl_57329 fb_read fndecl 3 57329 NULL
165226 +enable_so_musb_test_mode_write_fndecl_57341 musb_test_mode_write fndecl 3 57341 NULL
165227 +enable_so_ext4_expand_extra_isize_ea_fndecl_57344 ext4_expand_extra_isize_ea fndecl 2 57344 NULL
165228 +enable_so_root_hpfs_super_block_57345 root hpfs_super_block 0 57345 NULL
165229 +enable_so_ath10k_read_htt_max_amsdu_ampdu_fndecl_57346 ath10k_read_htt_max_amsdu_ampdu fndecl 3 57346 NULL
165230 +enable_so_align_nf_ct_ext_type_57348 align nf_ct_ext_type 0 57348 NULL
165231 +enable_so_ixgbe_pci_sriov_enable_fndecl_57353 ixgbe_pci_sriov_enable fndecl 2 57353 NULL
165232 +enable_so_lbs_debugfs_write_fndecl_57358 lbs_debugfs_write fndecl 3 57358 NULL
165233 +enable_so_usFirmwareUseInKb__ATOM_FIRMWARE_VRAM_RESERVE_INFO_57360 usFirmwareUseInKb _ATOM_FIRMWARE_VRAM_RESERVE_INFO 0 57360 NULL
165234 +enable_so_next_burst_len_iscsi_seq_57361 next_burst_len iscsi_seq 0 57361 NULL
165235 +enable_so_nfs_create_request_fndecl_57363 nfs_create_request fndecl 5-4 57363 NULL
165236 +enable_so_au_sd_ssr_57367 au sd_ssr 0 57367 NULL
165237 +enable_so_dqi_giblk_ocfs2_mem_dqinfo_57374 dqi_giblk ocfs2_mem_dqinfo 0 57374 NULL
165238 +enable_so_rcount_slip_57376 rcount slip 0 57376 NULL
165239 +enable_so_kfd_pasid_alloc_fndecl_57381 kfd_pasid_alloc fndecl 0 57381 NULL
165240 +enable_so_ext3_direct_IO_fndecl_57388 ext3_direct_IO fndecl 3 57388 NULL
165241 +enable_so_div64_u64_rem_fndecl_57393 div64_u64_rem fndecl 0 57393 NULL
165242 +enable_so_uhid_event_from_user_fndecl_57394 uhid_event_from_user fndecl 2 57394 NULL
165243 +enable_so_ocfs2_reflink_xattr_bucket_fndecl_57395 ocfs2_reflink_xattr_bucket fndecl 2-6-3 57395 NULL
165244 +enable_so_radeon_audio_acr_fndecl_57396 radeon_audio_acr fndecl 1 57396 NULL nohasharray
165245 +enable_so_pwr_tx_without_ps_read_fndecl_57396 pwr_tx_without_ps_read fndecl 3 57396 &enable_so_radeon_audio_acr_fndecl_57396
165246 +enable_so_kfd_ioctl_fndecl_57397 kfd_ioctl fndecl 2 57397 NULL
165247 +enable_so_nr_cpu_ids_vardecl_57399 nr_cpu_ids vardecl 0 57399 NULL
165248 +enable_so_nfs4_alloc_pages_fndecl_57401 nfs4_alloc_pages fndecl 1 57401 NULL
165249 +enable_so_skb_pull_fndecl_57408 skb_pull fndecl 2 57408 NULL nohasharray
165250 +enable_so_cryptlen_chachapoly_req_ctx_57408 cryptlen chachapoly_req_ctx 0 57408 &enable_so_skb_pull_fndecl_57408
165251 +enable_so_copy_page_from_iter_iovec_fndecl_57409 copy_page_from_iter_iovec fndecl 3 57409 NULL
165252 +enable_so__iwl_dbgfs_bt_tx_prio_write_fndecl_57418 _iwl_dbgfs_bt_tx_prio_write fndecl 3 57418 NULL
165253 +enable_so_numbered_hid_report_enum_57419 numbered hid_report_enum 0 57419 NULL
165254 +enable_so_blkdev_get_block_fndecl_57432 blkdev_get_block fndecl 2 57432 NULL
165255 +enable_so_key_size_ecryptfs_crypt_stat_57436 key_size ecryptfs_crypt_stat 0 57436 NULL
165256 +enable_so_pci_hp_diva_setup_fndecl_57437 pci_hp_diva_setup fndecl 4 57437 NULL
165257 +enable_so_send_control_msg_fndecl_57441 send_control_msg fndecl 6 57441 NULL
165258 +enable_so_convert_tail_for_hole_fndecl_57444 convert_tail_for_hole fndecl 3 57444 NULL
165259 +enable_so_segsize_loc_dn_scp_57445 segsize_loc dn_scp 0 57445 NULL
165260 +enable_so_dln2_i2c_read_fndecl_57452 dln2_i2c_read fndecl 0-4 57452 NULL
165261 +enable_so_page_offset_igb_rx_buffer_57453 page_offset igb_rx_buffer 0 57453 NULL
165262 +enable_so_diva_os_copy_to_user_fndecl_57455 diva_os_copy_to_user fndecl 4 57455 NULL
165263 +enable_so_rs_get_tbl_info_from_mcs_fndecl_57461 rs_get_tbl_info_from_mcs fndecl 1 57461 NULL
165264 +enable_so_cp_table_size_radeon_rlc_57462 cp_table_size radeon_rlc 0 57462 NULL
165265 +enable_so_ib_ipath_lkey_table_size_vardecl_57463 ib_ipath_lkey_table_size vardecl 0 57463 NULL
165266 +enable_so_r8712_usbctrl_vendorreq_fndecl_57466 r8712_usbctrl_vendorreq fndecl 6 57466 NULL
165267 +enable_so_ext3_splice_branch_fndecl_57472 ext3_splice_branch fndecl 6 57472 NULL
165268 +enable_so_drbd_bm_capacity_fndecl_57473 drbd_bm_capacity fndecl 0 57473 NULL
165269 +enable_so_leaf_copy_dir_entries_fndecl_57477 leaf_copy_dir_entries fndecl 6 57477 NULL
165270 +enable_so_nutrs_ufs_hba_57478 nutrs ufs_hba 0 57478 NULL
165271 +enable_so_data_len_ib_mad_send_buf_57480 data_len ib_mad_send_buf 0 57480 NULL
165272 +enable_so_item_udata_fndecl_57481 item_udata fndecl 0 57481 NULL nohasharray
165273 +enable_so_gfs2_log_get_bio_fndecl_57481 gfs2_log_get_bio fndecl 2 57481 &enable_so_item_udata_fndecl_57481
165274 +enable_so_brcmf_sdio_glom_len_fndecl_57483 brcmf_sdio_glom_len fndecl 0 57483 NULL
165275 +enable_so_mps_l2cap_le_conn_req_57484 mps l2cap_le_conn_req 0 57484 NULL
165276 +enable_so_iwlagn_hwrate_to_mac80211_idx_fndecl_57485 iwlagn_hwrate_to_mac80211_idx fndecl 0-1 57485 NULL
165277 +enable_so_phantom_get_free_fndecl_57489 phantom_get_free fndecl 0 57489 NULL
165278 +enable_so_consume_q_size_vmci_qp_57492 consume_q_size vmci_qp 0 57492 NULL
165279 +enable_so_max_srq_rqe_sge_ocrdma_mbx_query_config_57494 max_srq_rqe_sge ocrdma_mbx_query_config 0 57494 NULL
165280 +enable_so_r8a66597_urb_done_fndecl_57497 r8a66597_urb_done fndecl 3 57497 NULL
165281 +enable_so_ath10k_fw_stats_read_fndecl_57506 ath10k_fw_stats_read fndecl 3 57506 NULL
165282 +enable_so_usnic_uiom_get_pages_fndecl_57510 usnic_uiom_get_pages fndecl 1-2 57510 NULL nohasharray
165283 +enable_so_command_resume_fndecl_57510 command_resume fndecl 0 57510 &enable_so_usnic_uiom_get_pages_fndecl_57510
165284 +enable_so_raid10_size_fndecl_57512 raid10_size fndecl 0-3-2 57512 NULL
165285 +enable_so_s_log_block_size_ext4_super_block_57520 s_log_block_size ext4_super_block 0 57520 NULL
165286 +enable_so_igb_rd32_fndecl_57524 igb_rd32 fndecl 0 57524 NULL
165287 +enable_so_nvbios_extend_fndecl_57525 nvbios_extend fndecl 2 57525 NULL
165288 +enable_so_temp_begin_applesmc_registers_57532 temp_begin applesmc_registers 0 57532 NULL
165289 +enable_so_f2fs_direct_IO_fndecl_57535 f2fs_direct_IO fndecl 3 57535 NULL nohasharray
165290 +enable_so_height_tw68_dev_57535 height tw68_dev 0 57535 &enable_so_f2fs_direct_IO_fndecl_57535
165291 +enable_so_diFindFree_fndecl_57537 diFindFree fndecl 0-2 57537 NULL
165292 +enable_so_trimmed_cp_control_57542 trimmed cp_control 0 57542 NULL
165293 +enable_so_i_file_sec_hpfs_inode_info_57545 i_file_sec hpfs_inode_info 0 57545 NULL nohasharray
165294 +enable_so_y_max_wacom_features_57545 y_max wacom_features 0 57545 &enable_so_i_file_sec_hpfs_inode_info_57545
165295 +enable_so_ext4_ind_direct_IO_fndecl_57548 ext4_ind_direct_IO fndecl 3 57548 NULL nohasharray
165296 +enable_so_is_zd1211b_zd_usb_57548 is_zd1211b zd_usb 0 57548 &enable_so_ext4_ind_direct_IO_fndecl_57548
165297 +enable_so_nvif_notify_init_fndecl_57553 nvif_notify_init fndecl 8-7 57553 NULL
165298 +enable_so_last_to_afs_call_57563 last_to afs_call 0 57563 NULL
165299 +enable_so_ocfs2_increase_refcount_fndecl_57564 ocfs2_increase_refcount fndecl 5-4 57564 NULL
165300 +enable_so_resp_len_ql4_task_data_57567 resp_len ql4_task_data 0 57567 NULL
165301 +enable_so_offset_mtd_part_57572 offset mtd_part 0 57572 NULL
165302 +enable_so_i40e_receive_skb_fndecl_57575 i40e_receive_skb fndecl 3 57575 NULL nohasharray
165303 +enable_so_pvr2_ctrl_get_max_fndecl_57575 pvr2_ctrl_get_max fndecl 0 57575 &enable_so_i40e_receive_skb_fndecl_57575
165304 +enable_so_blkstol2_fndecl_57577 blkstol2 fndecl 0 57577 NULL
165305 +enable_so_opt_optl_optdata_dn_57580 opt_optl optdata_dn 0 57580 NULL
165306 +enable_so_shared_max_reservation_object_list_57587 shared_max reservation_object_list 0 57587 NULL
165307 +enable_so_data_dot_offset_xfs_dir_ops_57591 data_dot_offset xfs_dir_ops 0 57591 NULL nohasharray
165308 +enable_so_unmap_blk_desc_data_len_scsi_unmap_parm_list_57591 unmap_blk_desc_data_len scsi_unmap_parm_list 0 57591 &enable_so_data_dot_offset_xfs_dir_ops_57591
165309 +enable_so_usCRTC_V_Disp__ATOM_MODE_TIMING_57594 usCRTC_V_Disp _ATOM_MODE_TIMING 0 57594 NULL
165310 +enable_so_parent_ino_nilfs_fid_57597 parent_ino nilfs_fid 0 57597 NULL
165311 +enable_so_update_regset_xstate_info_fndecl_57602 update_regset_xstate_info fndecl 1 57602 NULL nohasharray
165312 +enable_so_dn_fib_count_nhs_fndecl_57602 dn_fib_count_nhs fndecl 0 57602 &enable_so_update_regset_xstate_info_fndecl_57602
165313 +enable_so_sc_pwd_len_wl18xx_event_mailbox_57604 sc_pwd_len wl18xx_event_mailbox 0 57604 NULL nohasharray
165314 +enable_so_buffer_bytes_osst_buffer_57604 buffer_bytes osst_buffer 0 57604 &enable_so_sc_pwd_len_wl18xx_event_mailbox_57604
165315 +enable_so___tcp_push_pending_frames_fndecl_57607 __tcp_push_pending_frames fndecl 2 57607 NULL nohasharray
165316 +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
165317 +enable_so__add_to_r4w_fndecl_57611 _add_to_r4w fndecl 4 57611 NULL
165318 +enable_so_isr_dma1_done_read_fndecl_57612 isr_dma1_done_read fndecl 3 57612 NULL
165319 +enable_so_wWidth_uvc_frame_57615 wWidth uvc_frame 0 57615 NULL
165320 +enable_so_vmw_framebuffer_surface_dirty_fndecl_57623 vmw_framebuffer_surface_dirty fndecl 6 57623 NULL
165321 +enable_so_f2fs_collapse_range_fndecl_57627 f2fs_collapse_range fndecl 2 57627 NULL
165322 +enable_so_memblock_enforce_memory_limit_fndecl_57628 memblock_enforce_memory_limit fndecl 1 57628 NULL
165323 +enable_so_ieee80211_mesh_rx_probe_req_fndecl_57630 ieee80211_mesh_rx_probe_req fndecl 3 57630 NULL nohasharray
165324 +enable_so_set_discoverable_fndecl_57630 set_discoverable fndecl 4 57630 &enable_so_ieee80211_mesh_rx_probe_req_fndecl_57630
165325 +enable_so_ieee80211_ie_split_ric_fndecl_57640 ieee80211_ie_split_ric fndecl 0-7 57640 NULL nohasharray
165326 +enable_so_init_ipath_fndecl_57640 init_ipath fndecl 1 57640 &enable_so_ieee80211_ie_split_ric_fndecl_57640
165327 +enable_so_alloc_cc770dev_fndecl_57641 alloc_cc770dev fndecl 1 57641 NULL
165328 +enable_so_node_ino_f2fs_super_block_57645 node_ino f2fs_super_block 0 57645 NULL
165329 +enable_so_num_stripes_btrfs_bio_57647 num_stripes btrfs_bio 0 57647 NULL
165330 +enable_so_ctl_out_pipe_brcmf_usbdev_info_57648 ctl_out_pipe brcmf_usbdev_info 0 57648 NULL nohasharray
165331 +enable_so_c4iw_id_table_alloc_fndecl_57648 c4iw_id_table_alloc fndecl 3 57648 &enable_so_ctl_out_pipe_brcmf_usbdev_info_57648
165332 +enable_so_ttymajor_vardecl_moxa_c_57652 ttymajor vardecl_moxa.c 0 57652 NULL
165333 +enable_so_ql2xmaxqueues_vardecl_57653 ql2xmaxqueues vardecl 0 57653 NULL
165334 +enable_so_reserved_nvkm_instmem_57654 reserved nvkm_instmem 0 57654 NULL
165335 +enable_so_bnx2x_gunzip_fndecl_57655 bnx2x_gunzip fndecl 3 57655 NULL
165336 +enable_so_fuse_request_init_fndecl_57656 fuse_request_init fndecl 4 57656 NULL
165337 +enable_so_rbd_obj_method_sync_fndecl_57657 rbd_obj_method_sync fndecl 8-6 57657 NULL
165338 +enable_so_curheight_usb_usbvision_57669 curheight usb_usbvision 0 57669 NULL
165339 +enable_so_len_pn533_poll_modulations_57671 len pn533_poll_modulations 0 57671 NULL
165340 +enable_so_xfs_dir3_data_readahead_fndecl_57683 xfs_dir3_data_readahead fndecl 2 57683 NULL
165341 +enable_so_data_dma_kbtab_57688 data_dma kbtab 0 57688 NULL
165342 +enable_so_cfg80211_process_deauth_fndecl_57691 cfg80211_process_deauth fndecl 3 57691 NULL
165343 +enable_so_conflen_gss_krb5_enctype_57693 conflen gss_krb5_enctype 0 57693 NULL nohasharray
165344 +enable_so_phys_base_ptr_vbe_mode_ib_57693 phys_base_ptr vbe_mode_ib 0 57693 &enable_so_conflen_gss_krb5_enctype_57693
165345 +enable_so_nfsctl_transaction_read_fndecl_57705 nfsctl_transaction_read fndecl 3 57705 NULL
165346 +enable_so_residual_datacnt_initiator_status_57708 residual_datacnt initiator_status 0 57708 NULL
165347 +enable_so_uv_blade_nr_possible_cpus_fndecl_57713 uv_blade_nr_possible_cpus fndecl 0 57713 NULL
165348 +enable_so_de_size_fndecl_57715 de_size fndecl 0-1 57715 NULL
165349 +enable_so_ttm_bo_create_fndecl_57717 ttm_bo_create fndecl 2 57717 NULL
165350 +enable_so_nilfs_readpages_fndecl_57718 nilfs_readpages fndecl 4 57718 NULL
165351 +enable_so_nports_adap_ports_57721 nports adap_ports 0 57721 NULL
165352 +enable_so_read_file_recv_fndecl_57723 read_file_recv fndecl 3 57723 NULL
165353 +enable_so_partition_sched_domains_fndecl_57727 partition_sched_domains fndecl 1 57727 NULL
165354 +enable_so_hi6220_register_clkdiv_fndecl_57729 hi6220_register_clkdiv fndecl 7 57729 NULL
165355 +enable_so_byte_read_data_parport_operations_57730 byte_read_data parport_operations 0 57730 NULL
165356 +enable_so_max_devs_vardecl_aic94xx_hwi_c_57731 max_devs vardecl_aic94xx_hwi.c 0 57731 NULL
165357 +enable_so_opts1_cp_desc_57736 opts1 cp_desc 0 57736 NULL nohasharray
165358 +enable_so_compat_sys_io_getevents_fndecl_57736 compat_sys_io_getevents fndecl 3 57736 &enable_so_opts1_cp_desc_57736
165359 +enable_so_buffer_width_budget_57739 buffer_width budget 0 57739 NULL
165360 +enable_so_disk_recovery_offset_dm_raid_superblock_57740 disk_recovery_offset dm_raid_superblock 0 57740 NULL
165361 +enable_so_prepare_message_spi_master_57743 prepare_message spi_master 0 57743 NULL nohasharray
165362 +enable_so_used_ebs_ubi_ainf_volume_57743 used_ebs ubi_ainf_volume 0 57743 &enable_so_prepare_message_spi_master_57743
165363 +enable_so_batadv_socket_read_fndecl_57746 batadv_socket_read fndecl 3 57746 NULL
165364 +enable_so_usb_hcd_submit_urb_fndecl_57747 usb_hcd_submit_urb fndecl 0 57747 NULL
165365 +enable_so_acpi_ex_convert_to_ascii_fndecl_57750 acpi_ex_convert_to_ascii fndecl 0 57750 NULL
165366 +enable_so___videobuf_free_fndecl_57751 __videobuf_free fndecl 0 57751 NULL
165367 +enable_so_mdts_nvme_id_ctrl_57754 mdts nvme_id_ctrl 0 57754 NULL nohasharray
165368 +enable_so_res_hor_val_pvr2_hdw_57754 res_hor_val pvr2_hdw 0 57754 &enable_so_mdts_nvme_id_ctrl_57754
165369 +enable_so_remove_memory_fndecl_57755 remove_memory fndecl 3-2 57755 NULL
165370 +enable_so_cache_write_pipefs_fndecl_57757 cache_write_pipefs fndecl 3 57757 NULL
165371 +enable_so_timblogiw_read_fndecl_57762 timblogiw_read fndecl 3 57762 NULL
165372 +enable_so_kernel_sendmsg_fndecl_57763 kernel_sendmsg fndecl 0-5-4 57763 NULL
165373 +enable_so_numEntries__ATOM_PPLIB_ACPClk_Voltage_Limit_Table_57767 numEntries _ATOM_PPLIB_ACPClk_Voltage_Limit_Table 0 57767 NULL
165374 +enable_so_MaxDevHandle_mpt2sas_facts_57768 MaxDevHandle mpt2sas_facts 0 57768 NULL
165375 +enable_so_mdp_major_vardecl_57774 mdp_major vardecl 0 57774 NULL nohasharray
165376 +enable_so_minor_media_devnode_57774 minor media_devnode 0 57774 &enable_so_mdp_major_vardecl_57774
165377 +enable_so_read_data_parport_operations_57776 read_data parport_operations 0 57776 NULL
165378 +enable_so_send_set_info_fndecl_57779 send_set_info fndecl 7 57779 NULL
165379 +enable_so_end_numa_memblk_57780 end numa_memblk 0 57780 NULL nohasharray
165380 +enable_so_height_fb_copyarea_57780 height fb_copyarea 0 57780 &enable_so_end_numa_memblk_57780
165381 +enable_so_fp_array_size_bnx2x_57781 fp_array_size bnx2x 0 57781 NULL
165382 +enable_so_lpfc_idiag_extacc_read_fndecl_57790 lpfc_idiag_extacc_read fndecl 3 57790 NULL
165383 +enable_so_mp_rx_agg_buf_size_sdio_mmc_card_57794 mp_rx_agg_buf_size sdio_mmc_card 0 57794 NULL
165384 +enable_so_pos_lzma_header_57804 pos lzma_header 0 57804 NULL nohasharray
165385 +enable_so_spk_xe_vardecl_57804 spk_xe vardecl 0 57804 &enable_so_pos_lzma_header_57804
165386 +enable_so_blocks_mmc_data_57821 blocks mmc_data 0 57821 NULL
165387 +enable_so_force_size_vardecl_pcmciamtd_c_57827 force_size vardecl_pcmciamtd.c 0 57827 NULL
165388 +enable_so_ioc_count_obd_ioctl_data_57830 ioc_count obd_ioctl_data 0 57830 NULL
165389 +enable_so_vxfs_bmap_ext4_fndecl_57831 vxfs_bmap_ext4 fndecl 0-2 57831 NULL nohasharray
165390 +enable_so_iscsi_complete_pdu_fndecl_57831 iscsi_complete_pdu fndecl 4 57831 &enable_so_vxfs_bmap_ext4_fndecl_57831
165391 +enable_so_tx_frag_init_called_read_fndecl_57834 tx_frag_init_called_read fndecl 3 57834 NULL
165392 +enable_so___pn533_send_frame_async_fndecl_57850 __pn533_send_frame_async fndecl 4 57850 NULL nohasharray
165393 +enable_so_i_pos_hi_fat_fid_57850 i_pos_hi fat_fid 0 57850 &enable_so___pn533_send_frame_async_fndecl_57850
165394 +enable_so_vd_dsr_au_count_gru_vma_data_57855 vd_dsr_au_count gru_vma_data 0 57855 NULL
165395 +enable_so_nilfs_resize_fs_fndecl_57861 nilfs_resize_fs fndecl 2 57861 NULL
165396 +enable_so_len_splice_desc_57862 len splice_desc 0 57862 NULL
165397 +enable_so__usbctrl_vendorreq_async_write_fndecl_57866 _usbctrl_vendorreq_async_write fndecl 6 57866 NULL
165398 +enable_so_lpfc_sli4_get_els_iocb_cnt_fndecl_57869 lpfc_sli4_get_els_iocb_cnt fndecl 0 57869 NULL
165399 +enable_so_fsl_spi_setup_transfer_fndecl_57873 fsl_spi_setup_transfer fndecl 0 57873 NULL nohasharray
165400 +enable_so_mac_drv_rx_init_fndecl_57873 mac_drv_rx_init fndecl 2 57873 &enable_so_fsl_spi_setup_transfer_fndecl_57873 nohasharray
165401 +enable_so_joydev_handle_JSIOCSAXMAP_fndecl_57873 joydev_handle_JSIOCSAXMAP fndecl 3 57873 &enable_so_mac_drv_rx_init_fndecl_57873
165402 +enable_so_len_wmfw_coeff_item_57875 len wmfw_coeff_item 0 57875 NULL nohasharray
165403 +enable_so_length_ib_umad_packet_57875 length ib_umad_packet 0 57875 &enable_so_len_wmfw_coeff_item_57875 nohasharray
165404 +enable_so_init_pci_serial_quirk_57875 init pci_serial_quirk 0 57875 &enable_so_length_ib_umad_packet_57875
165405 +enable_so_v4l2_src_h_yuv_playback_info_57877 v4l2_src_h yuv_playback_info 0 57877 NULL
165406 +enable_so_xdi_copy_to_user_fndecl_57879 xdi_copy_to_user fndecl 4 57879 NULL
165407 +enable_so_max_devices_hpt_iop_request_get_config_57889 max_devices hpt_iop_request_get_config 0 57889 NULL
165408 +enable_so_wpa_local_info_57892 wpa local_info 0 57892 NULL
165409 +enable_so_psn_qib_swqe_57901 psn qib_swqe 0 57901 NULL
165410 +enable_so_fat_sectors_fat_bios_param_block_57917 fat_sectors fat_bios_param_block 0 57917 NULL
165411 +enable_so_vma_merge_fndecl_57925 vma_merge fndecl 4-3 57925 NULL
165412 +enable_so_MaxXmitDataSegmentLength_iscsi_conn_ops_57926 MaxXmitDataSegmentLength iscsi_conn_ops 0 57926 NULL
165413 +enable_so_radeon_audio_update_acr_fndecl_57929 radeon_audio_update_acr fndecl 2 57929 NULL
165414 +enable_so__alloc_set_attr_list_fndecl_57932 _alloc_set_attr_list fndecl 4 57932 NULL
165415 +enable_so_memblock_set_current_limit_fndecl_57935 memblock_set_current_limit fndecl 1 57935 NULL
165416 +enable_so_event_heart_beat_read_fndecl_57938 event_heart_beat_read fndecl 3 57938 NULL
165417 +enable_so_nand_ecc_test_run_fndecl_57941 nand_ecc_test_run fndecl 1 57941 NULL
165418 +enable_so_ilf_size_xfs_inode_log_format_57942 ilf_size xfs_inode_log_format 0 57942 NULL
165419 +enable_so_vmci_handle_arr_create_fndecl_57944 vmci_handle_arr_create fndecl 1 57944 NULL
165420 +enable_so_eeprom_size_rt2x00_ops_57953 eeprom_size rt2x00_ops 0 57953 NULL
165421 +enable_so_logical_block_count_msb_data_57955 logical_block_count msb_data 0 57955 NULL
165422 +enable_so_i2c_read_fndecl_57956 i2c_read fndecl 0 57956 NULL
165423 +enable_so_ticket_len_rxkad_response_57960 ticket_len rxkad_response 0 57960 NULL
165424 +enable_so_filemap_check_errors_fndecl_57965 filemap_check_errors fndecl 0 57965 NULL
165425 +enable_so_mei_cl_alloc_cb_fndecl_57971 mei_cl_alloc_cb fndecl 2 57971 NULL
165426 +enable_so_sel_write_enforce_fndecl_57973 sel_write_enforce fndecl 3 57973 NULL
165427 +enable_so_rds_rm_size_fndecl_57975 rds_rm_size fndecl 0-2 57975 NULL
165428 +enable_so_hpfs_map_anode_fndecl_57993 hpfs_map_anode fndecl 2 57993 NULL
165429 +enable_so_faultin_page_fndecl_57994 faultin_page fndecl 3 57994 NULL
165430 +enable_so_perf_sample_ustack_size_fndecl_57995 perf_sample_ustack_size fndecl 0-2-1 57995 NULL
165431 +enable_so_max_idx_node_sz_ubifs_info_57997 max_idx_node_sz ubifs_info 0 57997 NULL
165432 +enable_so_iopm_base_pa_vmcb_control_area_57998 iopm_base_pa vmcb_control_area 0 57998 NULL
165433 +enable_so_SSIDlen_StatusRid_58002 SSIDlen StatusRid 0 58002 NULL nohasharray
165434 +enable_so_di_size_dinode_58002 di_size dinode 0 58002 &enable_so_SSIDlen_StatusRid_58002
165435 +enable_so_set_alt_usb_function_58003 set_alt usb_function 0 58003 NULL
165436 +enable_so_max_master_fs_adau1977_58013 max_master_fs adau1977 0 58013 NULL nohasharray
165437 +enable_so_ipath_reg_user_mr_fndecl_58013 ipath_reg_user_mr fndecl 2-3-4 58013 &enable_so_max_master_fs_adau1977_58013
165438 +enable_so_pvscsi_change_queue_depth_fndecl_58014 pvscsi_change_queue_depth fndecl 2 58014 NULL
165439 +enable_so_atl2_change_mtu_fndecl_58020 atl2_change_mtu fndecl 2 58020 NULL nohasharray
165440 +enable_so_wdata_prepare_pages_fndecl_58020 wdata_prepare_pages fndecl 0 58020 &enable_so_atl2_change_mtu_fndecl_58020
165441 +enable_so_xdr_buf_subsegment_fndecl_58027 xdr_buf_subsegment fndecl 4-3 58027 NULL
165442 +enable_so_xfs_extent_busy_reuse_fndecl_58034 xfs_extent_busy_reuse fndecl 3-4 58034 NULL
165443 +enable_so_rindex_sc18is602_58043 rindex sc18is602 0 58043 NULL nohasharray
165444 +enable_so_rtw_check_beacon_data23a_fndecl_58043 rtw_check_beacon_data23a fndecl 3 58043 &enable_so_rindex_sc18is602_58043
165445 +enable_so_len_mic_vring_58048 len mic_vring 0 58048 NULL nohasharray
165446 +enable_so_num_sqsets_csio_hw_58048 num_sqsets csio_hw 0 58048 &enable_so_len_mic_vring_58048
165447 +enable_so_acpi_gbl_integer_byte_width_vardecl_58054 acpi_gbl_integer_byte_width vardecl 0 58054 NULL
165448 +enable_so_buffer_size_octeon_droq_58063 buffer_size octeon_droq 0 58063 NULL nohasharray
165449 +enable_so_offset_m48t59_plat_data_58063 offset m48t59_plat_data 0 58063 &enable_so_buffer_size_octeon_droq_58063 nohasharray
165450 +enable_so_wpa_ie_len_hostap_bss_info_58063 wpa_ie_len hostap_bss_info 0 58063 &enable_so_offset_m48t59_plat_data_58063
165451 +enable_so_deflate_decompress_fndecl_58064 deflate_decompress fndecl 3 58064 NULL
165452 +enable_so_ath10k_htt_rx_nwifi_hdrlen_fndecl_58065 ath10k_htt_rx_nwifi_hdrlen fndecl 0 58065 NULL
165453 +enable_so_n_dma_bufs_vardecl_mcam_core_c_58067 n_dma_bufs vardecl_mcam-core.c 0 58067 NULL
165454 +enable_so_scsi_register_fndecl_58069 scsi_register fndecl 2 58069 NULL
165455 +enable_so_max_fast_reg_page_list_len_ib_device_attr_58072 max_fast_reg_page_list_len ib_device_attr 0 58072 NULL
165456 +enable_so_compat_do_readv_writev_fndecl_58077 compat_do_readv_writev fndecl 4 58077 NULL
165457 +enable_so_read_file_fndecl_58082 read_file fndecl 4 58082 NULL
165458 +enable_so_qib_user_sdma_pin_pages_fndecl_58083 qib_user_sdma_pin_pages fndecl 5-4 58083 NULL nohasharray
165459 +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
165460 +enable_so_pt_read_fndecl_58083 pt_read fndecl 3 58083 &enable_so_netxen_setup_msi_interrupts_fndecl_58083
165461 +enable_so_buffer_count_drm_i915_gem_execbuffer2_58084 buffer_count drm_i915_gem_execbuffer2 0 58084 NULL
165462 +enable_so_nentries_xpc_registration_58085 nentries xpc_registration 0 58085 NULL
165463 +enable_so_next_bofs_irlap_cb_58088 next_bofs irlap_cb 0 58088 NULL
165464 +enable_so_chipsize_onenand_chip_58089 chipsize onenand_chip 0 58089 NULL
165465 +enable_so_p9_client_zc_rpc_fndecl_58092 p9_client_zc_rpc fndecl 7 58092 NULL nohasharray
165466 +enable_so_atyfb_setup_generic_fndecl_58092 atyfb_setup_generic fndecl 3 58092 &enable_so_p9_client_zc_rpc_fndecl_58092
165467 +enable_so_done_scsi_driver_58095 done scsi_driver 0 58095 NULL
165468 +enable_so_ll_max_cached_mb_seq_write_fndecl_58097 ll_max_cached_mb_seq_write fndecl 3 58097 NULL
165469 +enable_so_button_num_ad714x_platform_data_58098 button_num ad714x_platform_data 0 58098 NULL
165470 +enable_so_walk_pmd_range_fndecl_58100 walk_pmd_range fndecl 0 58100 NULL
165471 +enable_so_head_p9_rdir_58110 head p9_rdir 0 58110 NULL
165472 +enable_so_usb_stor_ctrl_transfer_fndecl_58117 usb_stor_ctrl_transfer fndecl 8-2 58117 NULL
165473 +enable_so_ore_get_rw_state_fndecl_58120 ore_get_rw_state fndecl 4-5 58120 NULL
165474 +enable_so_next_rs_il_rate_info_58123 next_rs il_rate_info 0 58123 NULL
165475 +enable_so_sys_setgroups_fndecl_58127 sys_setgroups fndecl 1 58127 NULL nohasharray
165476 +enable_so_sm501_create_subdev_fndecl_58127 sm501_create_subdev fndecl 4-3 58127 &enable_so_sys_setgroups_fndecl_58127 nohasharray
165477 +enable_so_mlx4_en_hwtstamp_set_fndecl_58127 mlx4_en_hwtstamp_set fndecl 0 58127 &enable_so_sm501_create_subdev_fndecl_58127
165478 +enable_so_bufsize_vardecl_subpagetest_c_58128 bufsize vardecl_subpagetest.c 0 58128 NULL
165479 +enable_so_l_pn_lbuf_58130 l_pn lbuf 0 58130 NULL nohasharray
165480 +enable_so_do_ip_vs_set_ctl_fndecl_58130 do_ip_vs_set_ctl fndecl 4 58130 &enable_so_l_pn_lbuf_58130
165481 +enable_so_n_bitrates_ieee80211_supported_band_58136 n_bitrates ieee80211_supported_band 0 58136 NULL nohasharray
165482 +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
165483 +enable_so_mtd_read_fndecl_58140 mtd_read fndecl 0 58140 NULL
165484 +enable_so_pci_alloc_child_bus_fndecl_58142 pci_alloc_child_bus fndecl 3 58142 NULL
165485 +enable_so_packet_recvmsg_fndecl_58143 packet_recvmsg fndecl 3 58143 NULL
165486 +enable_so_hr_block_bytes_o2hb_region_58145 hr_block_bytes o2hb_region 0 58145 NULL
165487 +enable_so_security_inode_setattr_fndecl_58146 security_inode_setattr fndecl 0 58146 NULL nohasharray
165488 +enable_so_nroutes_mc5_params_58146 nroutes mc5_params 0 58146 &enable_so_security_inode_setattr_fndecl_58146
165489 +enable_so_sci_init_single_fndecl_58149 sci_init_single fndecl 3 58149 NULL
165490 +enable_so_i_clusters_ocfs2_dinode_58151 i_clusters ocfs2_dinode 0 58151 NULL
165491 +enable_so_altera_drscan_fndecl_58153 altera_drscan fndecl 2 58153 NULL
165492 +enable_so_rx_status_rx_desc_58154 rx_status rx_desc 0 58154 NULL
165493 +enable_so_f2fs_mpage_readpages_fndecl_58161 f2fs_mpage_readpages fndecl 4 58161 NULL nohasharray
165494 +enable_so_size_drm_i915_gem_pwrite_58161 size drm_i915_gem_pwrite 0 58161 &enable_so_f2fs_mpage_readpages_fndecl_58161
165495 +enable_so_l2cap_build_cmd_fndecl_58167 l2cap_build_cmd fndecl 4 58167 NULL
165496 +enable_so_init_size_rw_module_58168 init_size_rw module 0 58168 NULL
165497 +enable_so_head_len_beacon_data_58173 head_len beacon_data 0 58173 NULL
165498 +enable_so_num_clips_drm_vmw_present_readback_arg_58182 num_clips drm_vmw_present_readback_arg 0 58182 NULL
165499 +enable_so_total_num_uuars_mlx5_ib_alloc_ucontext_req_v2_58191 total_num_uuars mlx5_ib_alloc_ucontext_req_v2 0 58191 NULL
165500 +enable_so_virtfn_remove_fndecl_58193 virtfn_remove fndecl 2 58193 NULL
165501 +enable_so_npages_ttm_page_pool_58200 npages ttm_page_pool 0 58200 NULL
165502 +enable_so_lpfc_idiag_drbacc_write_fndecl_58203 lpfc_idiag_drbacc_write fndecl 3 58203 NULL
165503 +enable_so_SyS_lgetxattr_fndecl_58204 SyS_lgetxattr fndecl 4 58204 NULL
165504 +enable_so_maxOutstanding_AdapterControlBlock_58208 maxOutstanding AdapterControlBlock 0 58208 NULL
165505 +enable_so_rx_pipe_at76_priv_58217 rx_pipe at76_priv 0 58217 NULL
165506 +enable_so_size_skb_frag_struct_58222 size skb_frag_struct 0 58222 NULL
165507 +enable_so_xfs_attr_set_fndecl_58225 xfs_attr_set fndecl 4 58225 NULL
165508 +enable_so_ubifs_jnl_write_data_fndecl_58229 ubifs_jnl_write_data fndecl 5 58229 NULL
165509 +enable_so_ath6kl_regwrite_read_fndecl_58232 ath6kl_regwrite_read fndecl 3 58232 NULL
165510 +enable_so_ath6kl_usb_bmi_read_fndecl_58234 ath6kl_usb_bmi_read fndecl 3 58234 NULL
165511 +enable_so_len_on_bd_bnx2x_agg_info_58236 len_on_bd bnx2x_agg_info 0 58236 NULL
165512 +enable_so_i915_displayport_test_active_write_fndecl_58241 i915_displayport_test_active_write fndecl 3 58241 NULL
165513 +enable_so_num_rx_queues_fm10k_intfc_58243 num_rx_queues fm10k_intfc 0 58243 NULL
165514 +enable_so_font_backup_height_sisusb_usb_data_58247 font_backup_height sisusb_usb_data 0 58247 NULL
165515 +enable_so_ies_len_cfg80211_ft_event_params_58259 ies_len cfg80211_ft_event_params 0 58259 NULL
165516 +enable_so_gpiod_count_fndecl_58262 gpiod_count fndecl 0 58262 NULL
165517 +enable_so_l2cap_segment_sdu_fndecl_58263 l2cap_segment_sdu fndecl 4 58263 NULL
165518 +enable_so_file_size_fnode_58268 file_size fnode 0 58268 NULL
165519 +enable_so_em28xx_set_video_format_fndecl_58273 em28xx_set_video_format fndecl 3-4 58273 NULL
165520 +enable_so_tcp_push_one_fndecl_58275 tcp_push_one fndecl 2 58275 NULL nohasharray
165521 +enable_so_pages_in_block_msb_data_58275 pages_in_block msb_data 0 58275 &enable_so_tcp_push_one_fndecl_58275
165522 +enable_so_iso_size_usbtv_58278 iso_size usbtv 0 58278 NULL
165523 +enable_so_lib80211_michael_mic_add_fndecl_58285 lib80211_michael_mic_add fndecl 2 58285 NULL
165524 +enable_so_tx_desc_count_i40evf_adapter_58286 tx_desc_count i40evf_adapter 0 58286 NULL
165525 +enable_so_v9fs_fid_xattr_set_fndecl_58288 v9fs_fid_xattr_set fndecl 4 58288 NULL nohasharray
165526 +enable_so_unique_len_drm_unique_58288 unique_len drm_unique 0 58288 &enable_so_v9fs_fid_xattr_set_fndecl_58288
165527 +enable_so_il3945_sta_dbgfs_stats_table_read_fndecl_58289 il3945_sta_dbgfs_stats_table_read fndecl 3 58289 NULL
165528 +enable_so_adfs_map_lookup_fndecl_58299 adfs_map_lookup fndecl 0-3 58299 NULL
165529 +enable_so_y2_drm_clip_rect_58302 y2 drm_clip_rect 0 58302 NULL
165530 +enable_so_buffer_size_snd_pcm_runtime_58304 buffer_size snd_pcm_runtime 0 58304 NULL
165531 +enable_so_CountHigh_smb_com_write_rsp_58306 CountHigh smb_com_write_rsp 0 58306 NULL
165532 +enable_so_adau1977_set_tdm_slot_fndecl_58318 adau1977_set_tdm_slot fndecl 4-5 58318 NULL
165533 +enable_so_vc_do_resize_fndecl_58329 vc_do_resize fndecl 3-4 58329 NULL nohasharray
165534 +enable_so_num_tx_ethoc_58329 num_tx ethoc 0 58329 &enable_so_vc_do_resize_fndecl_58329
165535 +enable_so_sys_setgroups16_fndecl_58337 sys_setgroups16 fndecl 1 58337 NULL
165536 +enable_so_nlmon_change_mtu_fndecl_58340 nlmon_change_mtu fndecl 2 58340 NULL nohasharray
165537 +enable_so_start_crypt_config_58340 start crypt_config 0 58340 &enable_so_nlmon_change_mtu_fndecl_58340
165538 +enable_so_s2io_change_mtu_fndecl_58344 s2io_change_mtu fndecl 2 58344 NULL
165539 +enable_so_ext2_alloc_branch_fndecl_58346 ext2_alloc_branch fndecl 4 58346 NULL
165540 +enable_so_actions_len_sw_flow_actions_58353 actions_len sw_flow_actions 0 58353 NULL
165541 +enable_so_viafb_dvp1_proc_write_fndecl_58355 viafb_dvp1_proc_write fndecl 3 58355 NULL
165542 +enable_so_xgmac_change_mtu_fndecl_58357 xgmac_change_mtu fndecl 2 58357 NULL nohasharray
165543 +enable_so_mms114_read_reg_fndecl_58357 mms114_read_reg fndecl 0 58357 &enable_so_xgmac_change_mtu_fndecl_58357
165544 +enable_so___ffs_ep0_read_events_fndecl_58359 __ffs_ep0_read_events fndecl 3 58359 NULL
165545 +enable_so_length_qib_swqe_58364 length qib_swqe 0 58364 NULL
165546 +enable_so_add_regulator_fndecl_58367 add_regulator fndecl 1 58367 NULL
165547 +enable_so_tun_recvmsg_fndecl_58372 tun_recvmsg fndecl 3 58372 NULL
165548 +enable_so_ingr_start_sge_58376 ingr_start sge 0 58376 NULL
165549 +enable_so_dma_contiguous_reserve_fndecl_58386 dma_contiguous_reserve fndecl 1 58386 NULL
165550 +enable_so_max_resource_constraint_58388 max resource_constraint 0 58388 NULL
165551 +enable_so_kvm_arch_create_memslot_fndecl_58391 kvm_arch_create_memslot fndecl 3 58391 NULL
165552 +enable_so_minstrel_get_sample_rate_fndecl_58393 minstrel_get_sample_rate fndecl 0 58393 NULL
165553 +enable_so_window_vardecl_tcp_cdg_c_58396 window vardecl_tcp_cdg.c 0 58396 NULL
165554 +enable_so_hci_prepare_cmd_fndecl_58399 hci_prepare_cmd fndecl 3 58399 NULL
165555 +enable_so_sta_vht_capa_read_fndecl_58402 sta_vht_capa_read fndecl 3 58402 NULL
165556 +enable_so_lbs_wrrf_write_fndecl_58409 lbs_wrrf_write fndecl 3 58409 NULL
165557 +enable_so_remove_raw_fndecl_58413 remove_raw fndecl 4 58413 NULL
165558 +enable_so_vzalloc_fndecl_58414 vzalloc fndecl 1 58414 NULL nohasharray
165559 +enable_so_offset_snd_util_memblk_58414 offset snd_util_memblk 0 58414 &enable_so_vzalloc_fndecl_58414 nohasharray
165560 +enable_so_bufsize_vardecl_tcp_probe_c_58414 bufsize vardecl_tcp_probe.c 0 58414 &enable_so_offset_snd_util_memblk_58414
165561 +enable_so_skip_to_level_assoc_array_shortcut_58418 skip_to_level assoc_array_shortcut 0 58418 NULL
165562 +enable_so_channels__isdn_driver_58419 channels _isdn_driver 0 58419 NULL
165563 +enable_so_gfn_to_pfn_prot_fndecl_58421 gfn_to_pfn_prot fndecl 2 58421 NULL
165564 +enable_so_align4k_qib_devdata_58424 align4k qib_devdata 0 58424 NULL
165565 +enable_so_walk_pte_range_fndecl_58425 walk_pte_range fndecl 0 58425 NULL
165566 +enable_so_lbs_wrmac_write_fndecl_58427 lbs_wrmac_write fndecl 3 58427 NULL
165567 +enable_so_sys32_ftruncate64_fndecl_58429 sys32_ftruncate64 fndecl 2-3 58429 NULL
165568 +enable_so_s_len_ipath_qp_58431 s_len ipath_qp 0 58431 NULL
165569 +enable_so_SiS_GetReg_fndecl_58436 SiS_GetReg fndecl 0 58436 NULL
165570 +enable_so_deflate_compress_fndecl_58438 deflate_compress fndecl 3 58438 NULL nohasharray
165571 +enable_so_exynos3250_jpeg_get_subsampling_mode_fndecl_58438 exynos3250_jpeg_get_subsampling_mode fndecl 0 58438 &enable_so_deflate_compress_fndecl_58438 nohasharray
165572 +enable_so_rd_in_oz_serial_ctx_58438 rd_in oz_serial_ctx 0 58438 &enable_so_exynos3250_jpeg_get_subsampling_mode_fndecl_58438
165573 +enable_so_environ_read_fndecl_58440 environ_read fndecl 3 58440 NULL nohasharray
165574 +enable_so_ib_uverbs_create_cq_fndecl_58440 ib_uverbs_create_cq fndecl 3 58440 &enable_so_environ_read_fndecl_58440
165575 +enable_so_nr_pages_fuse_fill_data_58443 nr_pages fuse_fill_data 0 58443 NULL
165576 +enable_so_num_vhost_virtqueue_58446 num vhost_virtqueue 0 58446 NULL nohasharray
165577 +enable_so_len_ethtool_test_58446 len ethtool_test 0 58446 &enable_so_num_vhost_virtqueue_58446
165578 +enable_so_val_bytes_snd_soc_component_58447 val_bytes snd_soc_component 0 58447 NULL nohasharray
165579 +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
165580 +enable_so_f_adc_msi2500_dev_58451 f_adc msi2500_dev 0 58451 NULL
165581 +enable_so_fwlen_mpt_fw_xfer32_58453 fwlen mpt_fw_xfer32 0 58453 NULL
165582 +enable_so_di_anextents_xfs_icdinode_58455 di_anextents xfs_icdinode 0 58455 NULL
165583 +enable_so_caif_seqpkt_sendmsg_fndecl_58458 caif_seqpkt_sendmsg fndecl 3 58458 NULL
165584 +enable_so_NumProtectionFields_cfi_pri_intelext_58461 NumProtectionFields cfi_pri_intelext 0 58461 NULL
165585 +enable_so_btrfs_clone_fndecl_58462 btrfs_clone fndecl 5-3-6 58462 NULL
165586 +enable_so_ebcnt_vardecl_torturetest_c_58475 ebcnt vardecl_torturetest.c 0 58475 NULL
165587 +enable_so_newpart_fndecl_58478 newpart fndecl 6-4 58478 NULL
165588 +enable_so_nbchan_capidrv_contr_58481 nbchan capidrv_contr 0 58481 NULL
165589 +enable_so_highest_ino_jffs2_sb_info_58485 highest_ino jffs2_sb_info 0 58485 NULL
165590 +enable_so_C_SYSC_set_mempolicy_fndecl_58489 C_SYSC_set_mempolicy fndecl 3 58489 NULL
165591 +enable_so_try_lock_extent_fndecl_58490 try_lock_extent fndecl 3-2 58490 NULL nohasharray
165592 +enable_so_r2tq_size_cnic_local_58490 r2tq_size cnic_local 0 58490 &enable_so_try_lock_extent_fndecl_58490
165593 +enable_so_set_console_size_fndecl_58495 set_console_size fndecl 3-2 58495 NULL
165594 +enable_so_unlink_simple_fndecl_58497 unlink_simple fndecl 3-2 58497 NULL nohasharray
165595 +enable_so_unit_minor_sound_unit_58497 unit_minor sound_unit 0 58497 &enable_so_unlink_simple_fndecl_58497
165596 +enable_so_alloc_arraycache_fndecl_58498 alloc_arraycache fndecl 2 58498 NULL
165597 +enable_so_pstore_decompress_fndecl_58501 pstore_decompress fndecl 0-3-4 58501 NULL
165598 +enable_so_max_segment_size_device_dma_parameters_58507 max_segment_size device_dma_parameters 0 58507 NULL nohasharray
165599 +enable_so_ufs_inode_getblock_fndecl_58507 ufs_inode_getblock fndecl 4-3 58507 &enable_so_max_segment_size_device_dma_parameters_58507
165600 +enable_so_ec_i2c_count_response_fndecl_58509 ec_i2c_count_response fndecl 0 58509 NULL
165601 +enable_so_mcp23s17_read_regs_fndecl_58512 mcp23s17_read_regs fndecl 4 58512 NULL nohasharray
165602 +enable_so_phys_in_snd_efw_58512 phys_in snd_efw 0 58512 &enable_so_mcp23s17_read_regs_fndecl_58512
165603 +enable_so_pixel_stride_ivtv_osd_coords_58513 pixel_stride ivtv_osd_coords 0 58513 NULL
165604 +enable_so_pmsg_size_ramoops_platform_data_58514 pmsg_size ramoops_platform_data 0 58514 NULL
165605 +enable_so___frontswap_curr_pages_fndecl_58517 __frontswap_curr_pages fndecl 0 58517 NULL nohasharray
165606 +enable_so_core_sys_select_fndecl_58517 core_sys_select fndecl 1 58517 &enable_so___frontswap_curr_pages_fndecl_58517
165607 +enable_so_read_block_for_search_fndecl_58525 read_block_for_search fndecl 0 58525 NULL
165608 +enable_so_rx_frag_size_bnx2x_fastpath_58531 rx_frag_size bnx2x_fastpath 0 58531 NULL
165609 +enable_so_cfpkt_split_fndecl_58534 cfpkt_split fndecl 2 58534 NULL
165610 +enable_so_drbg_statelen_fndecl_58540 drbg_statelen fndecl 0 58540 NULL
165611 +enable_so_populate_vma_page_range_fndecl_58544 populate_vma_page_range fndecl 2-0 58544 NULL
165612 +enable_so_volinit_CHIPDESC_58545 volinit CHIPDESC 0 58545 NULL
165613 +enable_so_ddata_ofsl_cyttsp4_sysinfo_data_58549 ddata_ofsl cyttsp4_sysinfo_data 0 58549 NULL
165614 +enable_so_usb_hcd_alloc_bandwidth_fndecl_58550 usb_hcd_alloc_bandwidth fndecl 0 58550 NULL
165615 +enable_so_size_vram_area_58552 size vram_area 0 58552 NULL
165616 +enable_so_xfs_inobt_insert_fndecl_58558 xfs_inobt_insert fndecl 4 58558 NULL nohasharray
165617 +enable_so_process_vm_rw_fndecl_58558 process_vm_rw fndecl 3-5 58558 &enable_so_xfs_inobt_insert_fndecl_58558
165618 +enable_so_read_ldt_fndecl_58561 read_ldt fndecl 2 58561 NULL
165619 +enable_so_pci_iomap_fndecl_58564 pci_iomap fndecl 3 58564 NULL
165620 +enable_so_qib_copy_from_sge_fndecl_58565 qib_copy_from_sge fndecl 3 58565 NULL
165621 +enable_so_isku_sysfs_read_last_set_fndecl_58567 isku_sysfs_read_last_set fndecl 6 58567 NULL
165622 +enable_so_llc_shdlc_init_fndecl_58573 llc_shdlc_init fndecl 4 58573 NULL nohasharray
165623 +enable_so_index_vardecl_intel8x0m_c_58573 index vardecl_intel8x0m.c 0 58573 &enable_so_llc_shdlc_init_fndecl_58573
165624 +enable_so_acpi_gpio_package_count_fndecl_58585 acpi_gpio_package_count fndecl 0 58585 NULL
165625 +enable_so_sysctl_tcp_reordering_vardecl_58592 sysctl_tcp_reordering vardecl 0 58592 NULL
165626 +enable_so_ext4_kvzalloc_fndecl_58598 ext4_kvzalloc fndecl 1 58598 NULL
165627 +enable_so_aoe_maxsectors_vardecl_aoeblk_c_58600 aoe_maxsectors vardecl_aoeblk.c 0 58600 NULL
165628 +enable_so_sctp_ssnmap_new_fndecl_58603 sctp_ssnmap_new fndecl 1-2 58603 NULL
165629 +enable_so_cache_read_pipefs_fndecl_58604 cache_read_pipefs fndecl 3 58604 NULL
165630 +enable_so_rd_count_ring_descr_hw_58616 rd_count ring_descr_hw 0 58616 NULL
165631 +enable_so_mousedev_read_fndecl_58624 mousedev_read fndecl 3 58624 NULL
165632 +enable_so___erst_write_to_storage_fndecl_58627 __erst_write_to_storage fndecl 1 58627 NULL
165633 +enable_so_epp_pages_short_ptlrpc_enc_page_pool_58628 epp_pages_short ptlrpc_enc_page_pool 0 58628 NULL
165634 +enable_so_dccps_gss_dccp_sock_58634 dccps_gss dccp_sock 0 58634 NULL
165635 +enable_so_layout_mdu_array_info_s_58636 layout mdu_array_info_s 0 58636 NULL nohasharray
165636 +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
165637 +enable_so_pgbase_nfs4_readdir_arg_58643 pgbase nfs4_readdir_arg 0 58643 NULL nohasharray
165638 +enable_so_offset_qib_mregion_58643 offset qib_mregion 0 58643 &enable_so_pgbase_nfs4_readdir_arg_58643
165639 +enable_so_report_id_hid_global_58647 report_id hid_global 0 58647 NULL
165640 +enable_so_page10_len_ses_device_58648 page10_len ses_device 0 58648 NULL
165641 +enable_so_ap_update_sta_tx_rate_fndecl_58655 ap_update_sta_tx_rate fndecl 0 58655 NULL
165642 +enable_so_mwifiex_alloc_dma_align_buf_fndecl_58656 mwifiex_alloc_dma_align_buf fndecl 1 58656 NULL nohasharray
165643 +enable_so_highest_bit_swap_info_struct_58656 highest_bit swap_info_struct 0 58656 &enable_so_mwifiex_alloc_dma_align_buf_fndecl_58656
165644 +enable_so_mxms_headerlen_fndecl_58666 mxms_headerlen fndecl 0 58666 NULL
165645 +enable_so_rs_sta_dbgfs_rate_scale_data_read_fndecl_58670 rs_sta_dbgfs_rate_scale_data_read fndecl 3 58670 NULL
165646 +enable_so_max_key_len_hfs_btree_58671 max_key_len hfs_btree 0 58671 NULL
165647 +enable_so_sb_inopblog_xfs_sb_58672 sb_inopblog xfs_sb 0 58672 NULL
165648 +enable_so_s_dirblksize_ufs_sb_private_info_58675 s_dirblksize ufs_sb_private_info 0 58675 NULL
165649 +enable_so_ses_recv_diag_fndecl_58676 ses_recv_diag fndecl 4 58676 NULL nohasharray
165650 +enable_so_acpi_ut_initialize_buffer_fndecl_58676 acpi_ut_initialize_buffer fndecl 2 58676 &enable_so_ses_recv_diag_fndecl_58676
165651 +enable_so_s_partition_size_affs_sb_info_58677 s_partition_size affs_sb_info 0 58677 NULL
165652 +enable_so_ramoops_ftrace_size_vardecl_ram_c_58686 ramoops_ftrace_size vardecl_ram.c 0 58686 NULL
165653 +enable_so_max_response_len_sg_io_v4_58687 max_response_len sg_io_v4 0 58687 NULL
165654 +enable_so_subdirs_ceph_mds_reply_inode_58689 subdirs ceph_mds_reply_inode 0 58689 NULL
165655 +enable_so_ioremap_cache_fndecl_58694 ioremap_cache fndecl 2-1 58694 NULL
165656 +enable_so_rx_dma_len_efx_nic_58695 rx_dma_len efx_nic 0 58695 NULL
165657 +enable_so_root_ino_f2fs_super_block_58700 root_ino f2fs_super_block 0 58700 NULL
165658 +enable_so_fw_emem_len_rt_firmware_58718 fw_emem_len rt_firmware 0 58718 NULL nohasharray
165659 +enable_so_btrfs_del_inode_ref_fndecl_58718 btrfs_del_inode_ref fndecl 4 58718 &enable_so_fw_emem_len_rt_firmware_58718 nohasharray
165660 +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
165661 +enable_so_valid_chaoskey_58736 valid chaoskey 0 58736 NULL
165662 +enable_so_Residue_bulk_cs_wrap_58746 Residue bulk_cs_wrap 0 58746 NULL
165663 +enable_so_nobh_write_end_fndecl_58749 nobh_write_end fndecl 5 58749 NULL
165664 +enable_so_skb_copy_datagram_from_iter_fndecl_58758 skb_copy_datagram_from_iter fndecl 4-2 58758 NULL nohasharray
165665 +enable_so_portcntrs_1_read_fndecl_58758 portcntrs_1_read fndecl 3 58758 &enable_so_skb_copy_datagram_from_iter_fndecl_58758
165666 +enable_so_ocfs2_xattr_free_block_fndecl_58767 ocfs2_xattr_free_block fndecl 2 58767 NULL
165667 +enable_so_port_fops_splice_write_fndecl_58771 port_fops_splice_write fndecl 4 58771 NULL
165668 +enable_so_snd_ctl_enum_info_fndecl_58778 snd_ctl_enum_info fndecl 2 58778 NULL
165669 +enable_so_bi_bvec_done_bvec_iter_58781 bi_bvec_done bvec_iter 0 58781 NULL nohasharray
165670 +enable_so_ucNumEntries__ATOM_PPLIB_PhaseSheddingLimits_Table_58781 ucNumEntries _ATOM_PPLIB_PhaseSheddingLimits_Table 0 58781 &enable_so_bi_bvec_done_bvec_iter_58781
165671 +enable_so_get_formats_soc_camera_host_ops_58784 get_formats soc_camera_host_ops 0 58784 NULL
165672 +enable_so_meta_ino_f2fs_super_block_58785 meta_ino f2fs_super_block 0 58785 NULL nohasharray
165673 +enable_so_off1_xad_58785 off1 xad 0 58785 &enable_so_meta_ino_f2fs_super_block_58785
165674 +enable_so_gfs2_readpages_fndecl_58790 gfs2_readpages fndecl 4 58790 NULL
165675 +enable_so_at24_macc_read_fndecl_58791 at24_macc_read fndecl 4 58791 NULL
165676 +enable_so_vsnprintf_fndecl_58792 vsnprintf fndecl 0 58792 NULL
165677 +enable_so_mppe_decompress_fndecl_58795 mppe_decompress fndecl 3 58795 NULL
165678 +enable_so_blkbits_dio_submit_58797 blkbits dio_submit 0 58797 NULL
165679 +enable_so_wNumRPipes_usb_wa_descriptor_58804 wNumRPipes usb_wa_descriptor 0 58804 NULL
165680 +enable_so_snd_pcm_hw_constraint_minmax_fndecl_58816 snd_pcm_hw_constraint_minmax fndecl 4-3 58816 NULL
165681 +enable_so_data_size_iser_page_vec_58817 data_size iser_page_vec 0 58817 NULL
165682 +enable_so_slen_snap_58819 slen snap 0 58819 NULL
165683 +enable_so_num_counters_op_x86_model_spec_58827 num_counters op_x86_model_spec 0 58827 NULL
165684 +enable_so_set_db_page_mthca_create_cq_58830 set_db_page mthca_create_cq 0 58830 NULL
165685 +enable_so_f2fs_replace_block_fndecl_58838 f2fs_replace_block fndecl 4 58838 NULL
165686 +enable_so_s_psn_ipath_qp_58839 s_psn ipath_qp 0 58839 NULL nohasharray
165687 +enable_so_tx_internal_desc_overflow_read_fndecl_58839 tx_internal_desc_overflow_read fndecl 3 58839 &enable_so_s_psn_ipath_qp_58839
165688 +enable_so_virtqueue_add_fndecl_58841 virtqueue_add fndecl 3 58841 NULL
165689 +enable_so_size_ipath_rq_58849 size ipath_rq 0 58849 NULL
165690 +enable_so_nr_scratch_dwc3_58852 nr_scratch dwc3 0 58852 NULL
165691 +enable_so_ms_lib_read_extrablock_fndecl_58857 ms_lib_read_extrablock fndecl 4 58857 NULL
165692 +enable_so_exofs_iget_fndecl_58862 exofs_iget fndecl 2 58862 NULL
165693 +enable_so_ieee80211_if_read_dot11MeshHoldingTimeout_fndecl_58863 ieee80211_if_read_dot11MeshHoldingTimeout fndecl 3 58863 NULL
165694 +enable_so_channel_num_sudmac_pdata_58865 channel_num sudmac_pdata 0 58865 NULL
165695 +enable_so_uvc_ctrl_add_info_fndecl_58870 uvc_ctrl_add_info fndecl 0 58870 NULL
165696 +enable_so_hfp_ast_vbios_enhtable_58872 hfp ast_vbios_enhtable 0 58872 NULL
165697 +enable_so_gbuffers_vardecl_bttv_driver_c_58873 gbuffers vardecl_bttv-driver.c 0 58873 NULL
165698 +enable_so_xm_wmfw_adsp2_alg_hdr_58884 xm wmfw_adsp2_alg_hdr 0 58884 NULL
165699 +enable_so_rx_buf_sz_fe_priv_58888 rx_buf_sz fe_priv 0 58888 NULL
165700 +enable_so_max_xfer_nd_cmd_get_config_size_58894 max_xfer nd_cmd_get_config_size 0 58894 NULL
165701 +enable_so_usb_stor_bulk_transfer_sg_fndecl_58896 usb_stor_bulk_transfer_sg fndecl 4-2-5 58896 NULL
165702 +enable_so_size__iohandle_58897 size _iohandle 0 58897 NULL
165703 +enable_so_v9fs_file_fsync_fndecl_58898 v9fs_file_fsync fndecl 2-3 58898 NULL
165704 +enable_so_vhci_read_fndecl_58901 vhci_read fndecl 3 58901 NULL
165705 +enable_so_mwifiex_write_data_sync_fndecl_58903 mwifiex_write_data_sync fndecl 3 58903 NULL nohasharray
165706 +enable_so_xfs_nfs_get_inode_fndecl_58903 xfs_nfs_get_inode fndecl 2 58903 &enable_so_mwifiex_write_data_sync_fndecl_58903
165707 +enable_so_rpos_p9_conn_58910 rpos p9_conn 0 58910 NULL
165708 +enable_so_cmodio_setup_subdevice_fndecl_58913 cmodio_setup_subdevice fndecl 4 58913 NULL
165709 +enable_so_comedi_write_fndecl_58917 comedi_write fndecl 3 58917 NULL
165710 +enable_so_size_nv40_gr_priv_58921 size nv40_gr_priv 0 58921 NULL
165711 +enable_so_befs_bread_fndecl_58922 befs_bread fndecl 2 58922 NULL
165712 +enable_so_parent_block_isofs_fid_58926 parent_block isofs_fid 0 58926 NULL
165713 +enable_so_fore200e_pca_dma_chunk_alloc_fndecl_58927 fore200e_pca_dma_chunk_alloc fndecl 4-3 58927 NULL
165714 +enable_so_osd_req_read_sg_fndecl_58930 osd_req_read_sg fndecl 5 58930 NULL
165715 +enable_so_send_reply_chunks_fndecl_58933 send_reply_chunks fndecl 0 58933 NULL
165716 +enable_so_leaf_item_bottle_fndecl_58937 leaf_item_bottle fndecl 5 58937 NULL
165717 +enable_so_cfs_percpt_alloc_fndecl_58941 cfs_percpt_alloc fndecl 2 58941 NULL
165718 +enable_so_lpe_base_sst_pdata_58946 lpe_base sst_pdata 0 58946 NULL
165719 +enable_so_num_req_rx_rings_bnx2_58949 num_req_rx_rings bnx2 0 58949 NULL
165720 +enable_so_size_drm_nouveau_gem_info_58954 size drm_nouveau_gem_info 0 58954 NULL
165721 +enable_so__ext4_get_block_fndecl_58959 _ext4_get_block fndecl 2 58959 NULL
165722 +enable_so_query_len_tomoyo_query_58960 query_len tomoyo_query 0 58960 NULL
165723 +enable_so_get_dec_u16_fndecl_58972 get_dec_u16 fndecl 0 58972 NULL
165724 +enable_so_integrity_alg_len_net_conf_58973 integrity_alg_len net_conf 0 58973 NULL
165725 +enable_so_adjust_managed_page_count_fndecl_58974 adjust_managed_page_count fndecl 2 58974 NULL
165726 +enable_so_pglen_nfs4_layoutdriver_data_58977 pglen nfs4_layoutdriver_data 0 58977 NULL
165727 +enable_so_nent_mthca_eq_58979 nent mthca_eq 0 58979 NULL
165728 +enable_so_len_extent_buffer_58980 len extent_buffer 0 58980 NULL nohasharray
165729 +enable_so_ptk_icvlen_iwl_mvm_58980 ptk_icvlen iwl_mvm 0 58980 &enable_so_len_extent_buffer_58980
165730 +enable_so_sg_miter_skip_fndecl_58982 sg_miter_skip fndecl 2 58982 NULL
165731 +enable_so_len_cont_58983 len cont 0 58983 NULL
165732 +enable_so_megasas_mgmt_ioctl_fw_fndecl_58984 megasas_mgmt_ioctl_fw fndecl 0 58984 NULL
165733 +enable_so_ib_umad_write_fndecl_58986 ib_umad_write fndecl 3 58986 NULL
165734 +enable_so___tda18271_write_regs_fndecl_58989 __tda18271_write_regs fndecl 3 58989 NULL nohasharray
165735 +enable_so_index_ldtentry_58989 index ldtentry 0 58989 &enable_so___tda18271_write_regs_fndecl_58989
165736 +enable_so_nfs4_proc_get_acl_fndecl_58998 nfs4_proc_get_acl fndecl 3 58998 NULL
165737 +enable_so_trace_max_pages_vardecl_59000 trace_max_pages vardecl 0 59000 NULL
165738 +enable_so_private_value_snd_kcontrol_59001 private_value snd_kcontrol 0 59001 NULL
165739 +enable_so_iwl_dbgfs_ucode_tracing_read_fndecl_59004 iwl_dbgfs_ucode_tracing_read fndecl 3 59004 NULL
165740 +enable_so_wa_urb_dequeue_fndecl_59008 wa_urb_dequeue fndecl 3 59008 NULL
165741 +enable_so_numextents_efs_inode_info_59009 numextents efs_inode_info 0 59009 NULL
165742 +enable_so_amdgpu_vram_location_fndecl_59010 amdgpu_vram_location fndecl 3 59010 NULL
165743 +enable_so___kvm_read_guest_atomic_fndecl_59011 __kvm_read_guest_atomic fndecl 2-5 59011 NULL
165744 +enable_so_dccpsl_nr_dccp_service_list_59022 dccpsl_nr dccp_service_list 0 59022 NULL
165745 +enable_so_lustre_cfg_len_fndecl_59025 lustre_cfg_len fndecl 0 59025 NULL
165746 +enable_so_frag_max_size_inet_skb_parm_59029 frag_max_size inet_skb_parm 0 59029 NULL
165747 +enable_so_frags_len_lro_59030 frags_len lro 0 59030 NULL
165748 +enable_so_nclips_saa7146_overlay_59032 nclips saa7146_overlay 0 59032 NULL
165749 +enable_so_in_epnum_usb_gadget_59033 in_epnum usb_gadget 0 59033 NULL
165750 +enable_so_max_inbound_frames__i2o_status_block_59034 max_inbound_frames _i2o_status_block 0 59034 NULL
165751 +enable_so_head_inbuf_t_59044 head inbuf_t 0 59044 NULL
165752 +enable_so_len_nand_bbt_descr_59045 len nand_bbt_descr 0 59045 NULL
165753 +enable_so_ref_node_alsz_ubifs_info_59046 ref_node_alsz ubifs_info 0 59046 NULL
165754 +enable_so_data0_myri10ge_cmd_59049 data0 myri10ge_cmd 0 59049 NULL
165755 +enable_so_max_block_docg3_59051 max_block docg3 0 59051 NULL nohasharray
165756 +enable_so_aligned_pep_sock_59051 aligned pep_sock 0 59051 &enable_so_max_block_docg3_59051
165757 +enable_so_posix_acl_alloc_fndecl_59052 posix_acl_alloc fndecl 1 59052 NULL nohasharray
165758 +enable_so_nr_strip_zones_r0conf_59052 nr_strip_zones r0conf 0 59052 &enable_so_posix_acl_alloc_fndecl_59052
165759 +enable_so_s_block_count_reiserfs_super_block_v1_59058 s_block_count reiserfs_super_block_v1 0 59058 NULL
165760 +enable_so_mpeglinesize_vardecl_cx231xx_417_c_59059 mpeglinesize vardecl_cx231xx-417.c 0 59059 NULL
165761 +enable_so_sys32_pread_fndecl_59062 sys32_pread fndecl 3 59062 NULL
165762 +enable_so_piobufbase_qib_devdata_59067 piobufbase qib_devdata 0 59067 NULL
165763 +enable_so_bmv_offset_getbmapx_59079 bmv_offset getbmapx 0 59079 NULL
165764 +enable_so_buffer_mousedev_client_59098 buffer mousedev_client 0 59098 NULL
165765 +enable_so_rcvidx_hscx_hw_59100 rcvidx hscx_hw 0 59100 NULL
165766 +enable_so_ctrl_dma_ims_pcu_59106 ctrl_dma ims_pcu 0 59106 NULL
165767 +enable_so_out_wm8994_fll_config_59112 out wm8994_fll_config 0 59112 NULL
165768 +enable_so_a8293_wr_fndecl_59113 a8293_wr fndecl 3 59113 NULL
165769 +enable_so_remap_and_issue_shared_cell_fndecl_59114 remap_and_issue_shared_cell fndecl 3 59114 NULL
165770 +enable_so_wm_latency_write_fndecl_59118 wm_latency_write fndecl 3 59118 NULL
165771 +enable_so_sec_per_clus_fat_floppy_defaults_59119 sec_per_clus fat_floppy_defaults 0 59119 NULL
165772 +enable_so_omapdss_count_strings_fndecl_59120 omapdss_count_strings fndecl 0 59120 NULL
165773 +enable_so_mmc_alloc_host_fndecl_59122 mmc_alloc_host fndecl 1 59122 NULL
165774 +enable_so_width_em28xx_v4l2_59127 width em28xx_v4l2 0 59127 NULL nohasharray
165775 +enable_so_xfs_read_agi_fndecl_59127 xfs_read_agi fndecl 3 59127 &enable_so_width_em28xx_v4l2_59127
165776 +enable_so_bitrate_ieee80211_rate_59130 bitrate ieee80211_rate 0 59130 NULL
165777 +enable_so_do_sys_ftruncate_fndecl_59136 do_sys_ftruncate fndecl 2 59136 NULL
165778 +enable_so_tx_count__synclinkmp_info_59147 tx_count _synclinkmp_info 0 59147 NULL
165779 +enable_so_rx_data_ep_usb_card_rec_59150 rx_data_ep usb_card_rec 0 59150 NULL
165780 +enable_so_get_desc_rtl_hal_ops_59151 get_desc rtl_hal_ops 0 59151 NULL
165781 +enable_so_free_low_memory_core_early_fndecl_59160 free_low_memory_core_early fndecl 0 59160 NULL
165782 +enable_so_log_buf_len_vardecl_printk_c_59170 log_buf_len vardecl_printk.c 0 59170 NULL
165783 +enable_so_address_length_acpi_resource_io_59176 address_length acpi_resource_io 0 59176 NULL
165784 +enable_so_read_mii_bus_59181 read mii_bus 0 59181 NULL
165785 +enable_so_av_buf_ackno_dccp_ackvec_59183 av_buf_ackno dccp_ackvec 0 59183 NULL
165786 +enable_so_comps_used_iser_device_59187 comps_used iser_device 0 59187 NULL
165787 +enable_so_img_height_zoran_jpg_settings_59188 img_height zoran_jpg_settings 0 59188 NULL
165788 +enable_so_isl12022_read_regs_fndecl_59190 isl12022_read_regs fndecl 4 59190 NULL
165789 +enable_so_vtag_rx_pkt_status_59191 vtag rx_pkt_status 0 59191 NULL
165790 +enable_so_cdc_ncm_check_rx_max_fndecl_59192 cdc_ncm_check_rx_max fndecl 0-2 59192 NULL
165791 +enable_so_gr_learn_resource_fndecl_59200 gr_learn_resource fndecl 3 59200 NULL
165792 +enable_so_ms_os_descs_ext_prop_name_len_ffs_data_59205 ms_os_descs_ext_prop_name_len ffs_data 0 59205 NULL
165793 +enable_so_s_bmap_bits_affs_sb_info_59206 s_bmap_bits affs_sb_info 0 59206 NULL
165794 +enable_so_fat_sector_size_fat_bios_param_block_59207 fat_sector_size fat_bios_param_block 0 59207 NULL nohasharray
165795 +enable_so_nblocks_nilfs_segsum_info_59207 nblocks nilfs_segsum_info 0 59207 &enable_so_fat_sector_size_fat_bios_param_block_59207
165796 +enable_so_max_data_size_mpt2_ioctl_header_59209 max_data_size mpt2_ioctl_header 0 59209 NULL
165797 +enable_so_jade_empty_fifo_fndecl_59210 jade_empty_fifo fndecl 2 59210 NULL
165798 +enable_so_usCRTC_H_SyncWidth__ATOM_MODE_TIMING_59211 usCRTC_H_SyncWidth _ATOM_MODE_TIMING 0 59211 NULL nohasharray
165799 +enable_so_wbits_inflate_state_59211 wbits inflate_state 0 59211 &enable_so_usCRTC_H_SyncWidth__ATOM_MODE_TIMING_59211
165800 +enable_so_xfs_bmapi_trim_map_fndecl_59212 xfs_bmapi_trim_map fndecl 6 59212 NULL nohasharray
165801 +enable_so_mpdu_len_wcn36xx_pdu_59212 mpdu_len wcn36xx_pdu 0 59212 &enable_so_xfs_bmapi_trim_map_fndecl_59212
165802 +enable_so_cqe_size_mlx5_ib_create_cq_59213 cqe_size mlx5_ib_create_cq 0 59213 NULL
165803 +enable_so_lock_extent_direct_fndecl_59219 lock_extent_direct fndecl 3-2 59219 NULL
165804 +enable_so_fbmem_used_viafb_par_59221 fbmem_used viafb_par 0 59221 NULL nohasharray
165805 +enable_so_rtl8723b_parse_firmware_fndecl_59221 rtl8723b_parse_firmware fndecl 0 59221 &enable_so_fbmem_used_viafb_par_59221
165806 +enable_so_gprs_set_mtu_fndecl_59222 gprs_set_mtu fndecl 2 59222 NULL
165807 +enable_so_up_anode_59225 up anode 0 59225 NULL
165808 +enable_so_walk_page_test_fndecl_59232 walk_page_test fndecl 0 59232 NULL
165809 +enable_so_sierra_net_skb_clone_fndecl_59236 sierra_net_skb_clone fndecl 3 59236 NULL
165810 +enable_so_nfs_direct_IO_fndecl_59238 nfs_direct_IO fndecl 3 59238 NULL nohasharray
165811 +enable_so_bits_to_user_fndecl_59238 bits_to_user fndecl 2-3-0 59238 &enable_so_nfs_direct_IO_fndecl_59238
165812 +enable_so_nr_segs_iov_iter_59239 nr_segs iov_iter 0 59239 NULL
165813 +enable_so_num_mbc_cfgs_wm8994_pdata_59240 num_mbc_cfgs wm8994_pdata 0 59240 NULL
165814 +enable_so_carl9170_debugfs_read_fndecl_59241 carl9170_debugfs_read fndecl 3 59241 NULL
165815 +enable_so_nlp_maxframe_lpfc_nodelist_59242 nlp_maxframe lpfc_nodelist 0 59242 NULL
165816 +enable_so_save_microcode_fndecl_59254 save_microcode fndecl 3 59254 NULL
165817 +enable_so_rcvidx_hdlc_hw_59264 rcvidx hdlc_hw 0 59264 NULL nohasharray
165818 +enable_so_nilfs_sufile_get_offset_fndecl_59264 nilfs_sufile_get_offset fndecl 0-2 59264 &enable_so_rcvidx_hdlc_hw_59264
165819 +enable_so_indir_size_ethtool_rxfh_59267 indir_size ethtool_rxfh 0 59267 NULL
165820 +enable_so_data_length_bnx2i_cmd_response_59279 data_length bnx2i_cmd_response 0 59279 NULL
165821 +enable_so_ir_prepare_write_buffer_fndecl_59280 ir_prepare_write_buffer fndecl 3 59280 NULL
165822 +enable_so_nentries_afs_dir_pagehdr_59283 nentries afs_dir_pagehdr 0 59283 NULL
165823 +enable_so_used_snd_array_59285 used snd_array 0 59285 NULL nohasharray
165824 +enable_so_mvumi_alloc_mem_resource_fndecl_59285 mvumi_alloc_mem_resource fndecl 3 59285 &enable_so_used_snd_array_59285
165825 +enable_so_written_coredump_params_59286 written coredump_params 0 59286 NULL
165826 +enable_so_hpfs_write_end_fndecl_59287 hpfs_write_end fndecl 5 59287 NULL
165827 +enable_so_ext3_find_near_fndecl_59291 ext3_find_near fndecl 0 59291 NULL
165828 +enable_so_nr_regs_omap_prcm_irq_setup_59292 nr_regs omap_prcm_irq_setup 0 59292 NULL
165829 +enable_so_alloc_sched_domains_fndecl_59295 alloc_sched_domains fndecl 1 59295 NULL
165830 +enable_so_posix_acl_fix_xattr_from_user_fndecl_59298 posix_acl_fix_xattr_from_user fndecl 2 59298 NULL
165831 +enable_so_sb_rootino_xfs_sb_59299 sb_rootino xfs_sb 0 59299 NULL nohasharray
165832 +enable_so_range_oid_t_59299 range oid_t 0 59299 &enable_so_sb_rootino_xfs_sb_59299
165833 +enable_so_jffs2_write_dnode_fndecl_59301 jffs2_write_dnode fndecl 5 59301 NULL
165834 +enable_so_next_segno_curseg_info_59302 next_segno curseg_info 0 59302 NULL
165835 +enable_so_stretch_width_usb_usbvision_59304 stretch_width usb_usbvision 0 59304 NULL
165836 +enable_so_RequestCredit_mpt2sas_facts_59309 RequestCredit mpt2sas_facts 0 59309 NULL
165837 +enable_so_W6692_empty_Bfifo_fndecl_59311 W6692_empty_Bfifo fndecl 2 59311 NULL
165838 +enable_so_frame_bytes_ua101_stream_59312 frame_bytes ua101_stream 0 59312 NULL
165839 +enable_so_befs_fblock2brun_fndecl_59313 befs_fblock2brun fndecl 3 59313 NULL
165840 +enable_so_qib_copy_sge_fndecl_59314 qib_copy_sge fndecl 3 59314 NULL
165841 +enable_so_error_error_numll_frame_cts_start_read_fndecl_59318 error_error_numll_frame_cts_start_read fndecl 3 59318 NULL
165842 +enable_so_pcpu_nr_units_vardecl_percpu_c_59323 pcpu_nr_units vardecl_percpu.c 0 59323 NULL
165843 +enable_so_nv_getlen_fndecl_59327 nv_getlen fndecl 0 59327 NULL
165844 +enable_so_i2c_inb_fndecl_59328 i2c_inb fndecl 0 59328 NULL
165845 +enable_so_read_file_spectral_bins_fndecl_59334 read_file_spectral_bins fndecl 3 59334 NULL
165846 +enable_so_pinconf_dbg_config_write_fndecl_59336 pinconf_dbg_config_write fndecl 3 59336 NULL
165847 +enable_so_stmmac_set_bfsize_fndecl_59337 stmmac_set_bfsize fndecl 0 59337 NULL
165848 +enable_so_raw_sendmsg_fndecl_59341 raw_sendmsg fndecl 3 59341 NULL
165849 +enable_so_affs_iget_fndecl_59342 affs_iget fndecl 2 59342 NULL
165850 +enable_so_mbox_size_sst_res_info_59343 mbox_size sst_res_info 0 59343 NULL
165851 +enable_so_ttymajor_vardecl_synclinkmp_c_59344 ttymajor vardecl_synclinkmp.c 0 59344 NULL
165852 +enable_so_lov_packmd_fndecl_59345 lov_packmd fndecl 0 59345 NULL
165853 +enable_so_offset_first_afs_writeback_59348 offset_first afs_writeback 0 59348 NULL
165854 +enable_so_rtl_cmd_width_vardecl_ibm_rtl_c_59349 rtl_cmd_width vardecl_ibm_rtl.c 0 59349 NULL
165855 +enable_so_size_s5p_jpeg_q_data_59350 size s5p_jpeg_q_data 0 59350 NULL
165856 +enable_so_vc_cols_vc_data_59351 vc_cols vc_data 0 59351 NULL
165857 +enable_so_mw_count_ntb_dev_ops_59352 mw_count ntb_dev_ops 0 59352 NULL
165858 +enable_so_vsync_end_drm_display_mode_59355 vsync_end drm_display_mode 0 59355 NULL
165859 +enable_so_hpfs_alloc_fnode_fndecl_59356 hpfs_alloc_fnode fndecl 2 59356 NULL nohasharray
165860 +enable_so_tree_mod_log_insert_move_fndecl_59356 tree_mod_log_insert_move fndecl 5 59356 &enable_so_hpfs_alloc_fnode_fndecl_59356
165861 +enable_so_base_tsn_sctp_tsnmap_59358 base_tsn sctp_tsnmap 0 59358 NULL
165862 +enable_so_ie_len_cfg80211_assoc_request_59359 ie_len cfg80211_assoc_request 0 59359 NULL
165863 +enable_so_sys_mmap_fndecl_59360 sys_mmap fndecl 2 59360 NULL
165864 +enable_so_ixgbe_change_mtu_fndecl_59370 ixgbe_change_mtu fndecl 2 59370 NULL nohasharray
165865 +enable_so_buf_len_i40e_arq_event_info_59370 buf_len i40e_arq_event_info 0 59370 &enable_so_ixgbe_change_mtu_fndecl_59370
165866 +enable_so_default_drvbuffer_scsi_tape_59374 default_drvbuffer scsi_tape 0 59374 NULL
165867 +enable_so_max_size_drm_vmw_get_3d_cap_arg_59378 max_size drm_vmw_get_3d_cap_arg 0 59378 NULL
165868 +enable_so_frag_point_sctp_association_59379 frag_point sctp_association 0 59379 NULL
165869 +enable_so_num_fcxp_reqs_bfa_iocfc_fwcfg_s_59383 num_fcxp_reqs bfa_iocfc_fwcfg_s 0 59383 NULL
165870 +enable_so_free_list_size_eni_dev_59386 free_list_size eni_dev 0 59386 NULL
165871 +enable_so_line_outs_auto_pin_cfg_59389 line_outs auto_pin_cfg 0 59389 NULL
165872 +enable_so_iwl_dbgfs_chain_noise_read_fndecl_59392 iwl_dbgfs_chain_noise_read fndecl 3 59392 NULL
165873 +enable_so_batadv_iv_ogm_queue_add_fndecl_59398 batadv_iv_ogm_queue_add fndecl 3 59398 NULL nohasharray
165874 +enable_so_size_freelQ_59398 size freelQ 0 59398 &enable_so_batadv_iv_ogm_queue_add_fndecl_59398
165875 +enable_so_fm_size_ubi_device_59399 fm_size ubi_device 0 59399 NULL nohasharray
165876 +enable_so_vb2_dc_get_user_pages_fndecl_59399 vb2_dc_get_user_pages fndecl 1 59399 &enable_so_fm_size_ubi_device_59399
165877 +enable_so_smk_write_direct_fndecl_59400 smk_write_direct fndecl 3 59400 NULL
165878 +enable_so_drm_legacy_addmap_fndecl_59402 drm_legacy_addmap fndecl 3-2 59402 NULL
165879 +enable_so_alloc_mad_private_fndecl_59408 alloc_mad_private fndecl 1 59408 NULL
165880 +enable_so_elem_size_bpf_htab_59409 elem_size bpf_htab 0 59409 NULL
165881 +enable_so_secure_dccpv6_sequence_number_fndecl_59410 secure_dccpv6_sequence_number fndecl 0 59410 NULL
165882 +enable_so_optlen_xfrm_mode_skb_cb_59411 optlen xfrm_mode_skb_cb 0 59411 NULL
165883 +enable_so_fotg210_urb_dequeue_fndecl_59414 fotg210_urb_dequeue fndecl 3 59414 NULL nohasharray
165884 +enable_so_num_vfs_ixgbe_adapter_59414 num_vfs ixgbe_adapter 0 59414 &enable_so_fotg210_urb_dequeue_fndecl_59414
165885 +enable_so_desc_elems_timb_dma_chan_59416 desc_elems timb_dma_chan 0 59416 NULL
165886 +enable_so_vma_adjust_fndecl_59429 vma_adjust fndecl 3-4-2 59429 NULL nohasharray
165887 +enable_so_ext2_xattr_user_set_fndecl_59429 ext2_xattr_user_set fndecl 4 59429 &enable_so_vma_adjust_fndecl_59429
165888 +enable_so_mmap_ureg_fndecl_59431 mmap_ureg fndecl 3 59431 NULL
165889 +enable_so_s_checkpoint_size_nilfs_super_block_59433 s_checkpoint_size nilfs_super_block 0 59433 NULL
165890 +enable_so_nilfs_cpfile_block_get_checkpoint_fndecl_59441 nilfs_cpfile_block_get_checkpoint fndecl 2 59441 NULL
165891 +enable_so_blocks_count_ext3_new_group_data_59443 blocks_count ext3_new_group_data 0 59443 NULL
165892 +enable_so_max_sectors_vardecl_megaraid_sas_base_c_59444 max_sectors vardecl_megaraid_sas_base.c 0 59444 NULL
165893 +enable_so_z2_zt_59452 z2 zt 0 59452 NULL
165894 +enable_so_rng_get_data_fndecl_59453 rng_get_data fndecl 0 59453 NULL
165895 +enable_so_ubi_dump_flash_fndecl_59454 ubi_dump_flash fndecl 4 59454 NULL
165896 +enable_so_platform_gpio_count_fndecl_59459 platform_gpio_count fndecl 0 59459 NULL
165897 +enable_so_vmbus_sendpacket_pagebuffer_fndecl_59463 vmbus_sendpacket_pagebuffer fndecl 3-5 59463 NULL
165898 +enable_so_ath6kl_wmi_mcast_filter_cmd_fndecl_59465 ath6kl_wmi_mcast_filter_cmd fndecl 2 59465 NULL
165899 +enable_so_ttm_page_pool_get_pages_fndecl_59468 ttm_page_pool_get_pages fndecl 5-0 59468 NULL
165900 +enable_so__pmcraid_io_done_fndecl_59469 _pmcraid_io_done fndecl 2 59469 NULL
165901 +enable_so_common_ie_len_ieee80211_scan_ies_59478 common_ie_len ieee80211_scan_ies 0 59478 NULL
165902 +enable_so_phys_acpi_ioremap_59485 phys acpi_ioremap 0 59485 NULL
165903 +enable_so_i2c_hid_output_raw_report_fndecl_59486 i2c_hid_output_raw_report fndecl 3 59486 NULL
165904 +enable_so_length_acpi_pnp_device_id_59493 length acpi_pnp_device_id 0 59493 NULL
165905 +enable_so_vma_to_resize_fndecl_59495 vma_to_resize fndecl 2-3 59495 NULL
165906 +enable_so_rx_ringsz_alx_priv_59496 rx_ringsz alx_priv 0 59496 NULL
165907 +enable_so_src_addr_width_dma_slave_config_59497 src_addr_width dma_slave_config 0 59497 NULL nohasharray
165908 +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
165909 +enable_so_pci_frontend_enable_msix_fndecl_59501 pci_frontend_enable_msix fndecl 3 59501 NULL
165910 +enable_so_lastbuf_for_pio_qib_chip_specific_59509 lastbuf_for_pio qib_chip_specific 0 59509 NULL
165911 +enable_so_wdata_alloc_and_fillpages_fndecl_59510 wdata_alloc_and_fillpages fndecl 1 59510 NULL
165912 +enable_so_rmtblkno2_xfs_da_args_59516 rmtblkno2 xfs_da_args 0 59516 NULL nohasharray
165913 +enable_so_cp210x_set_config_fndecl_59516 cp210x_set_config fndecl 4 59516 &enable_so_rmtblkno2_xfs_da_args_59516
165914 +enable_so_nilfs_commit_chunk_fndecl_59518 nilfs_commit_chunk fndecl 3-4 59518 NULL
165915 +enable_so_qlcnic_get_vnic_func_count_fndecl_59521 qlcnic_get_vnic_func_count fndecl 0 59521 NULL
165916 +enable_so_queue_length_vardecl_ua101_c_59524 queue_length vardecl_ua101.c 0 59524 NULL
165917 +enable_so_limit_data_queue_59525 limit data_queue 0 59525 NULL
165918 +enable_so_ocfs2_adjust_xattr_cross_cluster_fndecl_59528 ocfs2_adjust_xattr_cross_cluster fndecl 5-6 59528 NULL
165919 +enable_so_handle_ule_extensions_fndecl_59533 handle_ule_extensions fndecl 0 59533 NULL
165920 +enable_so_snd_pcm_oss_format_from_fndecl_59553 snd_pcm_oss_format_from fndecl 0 59553 NULL nohasharray
165921 +enable_so_kmsg_read_fndecl_59553 kmsg_read fndecl 3 59553 &enable_so_snd_pcm_oss_format_from_fndecl_59553 nohasharray
165922 +enable_so_nouveau_drm_ioctl_fndecl_59553 nouveau_drm_ioctl fndecl 2 59553 &enable_so_kmsg_read_fndecl_59553
165923 +enable_so_pci_get_subsys_fndecl_59555 pci_get_subsys fndecl 2 59555 NULL nohasharray
165924 +enable_so_mthca_alloc_cq_buf_fndecl_59555 mthca_alloc_cq_buf fndecl 3 59555 &enable_so_pci_get_subsys_fndecl_59555
165925 +enable_so_num_stripes_btrfs_chunk_59557 num_stripes btrfs_chunk 0 59557 NULL
165926 +enable_so_nlm_end_grace_write_fndecl_59558 nlm_end_grace_write fndecl 3 59558 NULL
165927 +enable_so_rest_blocks_nilfs_write_info_59560 rest_blocks nilfs_write_info 0 59560 NULL
165928 +enable_so_chunk_size_disk_header_59563 chunk_size disk_header 0 59563 NULL
165929 +enable_so_bdx_rxdb_create_fndecl_59566 bdx_rxdb_create fndecl 1 59566 NULL
165930 +enable_so_fill_in_write_vector_fndecl_59569 fill_in_write_vector fndecl 0 59569 NULL nohasharray
165931 +enable_so_vringh_complete_multi_user_fndecl_59569 vringh_complete_multi_user fndecl 3 59569 &enable_so_fill_in_write_vector_fndecl_59569
165932 +enable_so_unmap_mapping_range_fndecl_59573 unmap_mapping_range fndecl 2-3 59573 NULL
165933 +enable_so_pin_code_reply_fndecl_59581 pin_code_reply fndecl 4 59581 NULL
165934 +enable_so_key_count_applesmc_registers_59587 key_count applesmc_registers 0 59587 NULL
165935 +enable_so_length_sctp_paramhdr_59588 length sctp_paramhdr 0 59588 NULL
165936 +enable_so_reserved_tags_blk_mq_tag_set_59594 reserved_tags blk_mq_tag_set 0 59594 NULL
165937 +enable_so_bMaxPacketSize0_usb_device_descriptor_59595 bMaxPacketSize0 usb_device_descriptor 0 59595 NULL
165938 +enable_so_size_amd76xrom_window_59596 size amd76xrom_window 0 59596 NULL nohasharray
165939 +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
165940 +enable_so_min_coredump_linux_binfmt_59604 min_coredump linux_binfmt 0 59604 NULL
165941 +enable_so_height_mxr_crop_59619 height mxr_crop 0 59619 NULL
165942 +enable_so_serverworks_create_gatt_pages_fndecl_59621 serverworks_create_gatt_pages fndecl 1 59621 NULL
165943 +enable_so_br_vlan_delete_fndecl_59631 br_vlan_delete fndecl 2 59631 NULL
165944 +enable_so_unmap_single_vma_fndecl_59634 unmap_single_vma fndecl 4-3 59634 NULL
165945 +enable_so_gpio_count_tle62x0_pdata_59637 gpio_count tle62x0_pdata 0 59637 NULL
165946 +enable_so_q_fileoffset_xfs_dquot_59638 q_fileoffset xfs_dquot 0 59638 NULL
165947 +enable_so_trf7970a_transmit_fndecl_59648 trf7970a_transmit fndecl 5-3 59648 NULL
165948 +enable_so_SSID_len_brcmf_pno_net_info_le_59653 SSID_len brcmf_pno_net_info_le 0 59653 NULL
165949 +enable_so_xfs_trim_extents_fndecl_59654 xfs_trim_extents fndecl 2 59654 NULL
165950 +enable_so_num_subchannels_nvsp_5_subchannel_complete_59660 num_subchannels nvsp_5_subchannel_complete 0 59660 NULL nohasharray
165951 +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
165952 +enable_so_fat_free_clusters_fndecl_59665 fat_free_clusters fndecl 2 59665 NULL
165953 +enable_so_mgmt_remote_name_fndecl_59667 mgmt_remote_name fndecl 7 59667 NULL nohasharray
165954 +enable_so_amdgpu_kms_compat_ioctl_fndecl_59667 amdgpu_kms_compat_ioctl fndecl 2 59667 &enable_so_mgmt_remote_name_fndecl_59667
165955 +enable_so_ipmi_pci_probe_regspacing_fndecl_59668 ipmi_pci_probe_regspacing fndecl 0 59668 NULL nohasharray
165956 +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
165957 +enable_so_ms_read_bytes_fndecl_59672 ms_read_bytes fndecl 4 59672 NULL
165958 +enable_so_old_block_size_swap_info_struct_59674 old_block_size swap_info_struct 0 59674 NULL
165959 +enable_so_s_cur_size_ipath_qp_59678 s_cur_size ipath_qp 0 59678 NULL
165960 +enable_so_xprt_hlen_svc_deferred_req_59683 xprt_hlen svc_deferred_req 0 59683 NULL
165961 +enable_so_rtw_buf_update_fndecl_59689 rtw_buf_update fndecl 4 59689 NULL
165962 +enable_so_capacity_sddr55_card_info_59695 capacity sddr55_card_info 0 59695 NULL
165963 +enable_so_mlx4_ib_alloc_fast_reg_page_list_fndecl_59700 mlx4_ib_alloc_fast_reg_page_list fndecl 2 59700 NULL
165964 +enable_so_flt_region_bootload_ql82xx_hw_data_59701 flt_region_bootload ql82xx_hw_data 0 59701 NULL
165965 +enable_so_atalk_sendmsg_fndecl_59718 atalk_sendmsg fndecl 3 59718 NULL nohasharray
165966 +enable_so_aux_entry_sz_mlx4_dev_cap_59718 aux_entry_sz mlx4_dev_cap 0 59718 &enable_so_atalk_sendmsg_fndecl_59718
165967 +enable_so_dock_station_count_vardecl_dock_c_59728 dock_station_count vardecl_dock.c 0 59728 NULL
165968 +enable_so___walk_page_range_fndecl_59729 __walk_page_range fndecl 0 59729 NULL
165969 +enable_so_nilfs_btnode_create_block_fndecl_59734 nilfs_btnode_create_block fndecl 2 59734 NULL
165970 +enable_so_val_i2400m_pld_59735 val i2400m_pld 0 59735 NULL
165971 +enable_so_ddp_clear_map_fndecl_59739 ddp_clear_map fndecl 4 59739 NULL
165972 +enable_so_offset_bts_phys_59741 offset bts_phys 0 59741 NULL
165973 +enable_so_l_iclog_hsize_xlog_59743 l_iclog_hsize xlog 0 59743 NULL nohasharray
165974 +enable_so___netlink_change_ngroups_fndecl_59743 __netlink_change_ngroups fndecl 2 59743 &enable_so_l_iclog_hsize_xlog_59743
165975 +enable_so_ocfs2_read_dx_leaves_fndecl_59744 ocfs2_read_dx_leaves fndecl 2 59744 NULL nohasharray
165976 +enable_so_fq_resize_fndecl_59744 fq_resize fndecl 2 59744 &enable_so_ocfs2_read_dx_leaves_fndecl_59744
165977 +enable_so_nx_fw_cmd_set_phy_fndecl_59745 nx_fw_cmd_set_phy fndecl 3 59745 NULL
165978 +enable_so_mt_count_mtop_59746 mt_count mtop 0 59746 NULL
165979 +enable_so_xlog_write_calc_vec_length_fndecl_59749 xlog_write_calc_vec_length fndecl 0 59749 NULL
165980 +enable_so_request_size_afs_call_59750 request_size afs_call 0 59750 NULL nohasharray
165981 +enable_so_add_conn_list_fndecl_59750 add_conn_list fndecl 3 59750 &enable_so_request_size_afs_call_59750
165982 +enable_so_mtu_dst_ops_59765 mtu dst_ops 0 59765 NULL
165983 +enable_so_au_cslack_rpc_auth_59766 au_cslack rpc_auth 0 59766 NULL
165984 +enable_so_vxge_os_dma_malloc_fndecl_59771 vxge_os_dma_malloc fndecl 2 59771 NULL
165985 +enable_so_tipc_msg_create_fndecl_59776 tipc_msg_create fndecl 4-3 59776 NULL
165986 +enable_so_osd_full_w_yuv_playback_info_59778 osd_full_w yuv_playback_info 0 59778 NULL
165987 +enable_so_reiserfs_new_symlink_fndecl_59783 reiserfs_new_symlink fndecl 6 59783 NULL nohasharray
165988 +enable_so_max_segments_queue_limits_59783 max_segments queue_limits 0 59783 &enable_so_reiserfs_new_symlink_fndecl_59783
165989 +enable_so_mlx4_buf_alloc_fndecl_59788 mlx4_buf_alloc fndecl 2 59788 NULL
165990 +enable_so_sdio_set_block_size_fndecl_59792 sdio_set_block_size fndecl 2 59792 NULL nohasharray
165991 +enable_so_dma_npages_rds_iw_scatterlist_59792 dma_npages rds_iw_scatterlist 0 59792 &enable_so_sdio_set_block_size_fndecl_59792
165992 +enable_so_bandlength_Timon_table_entry_59793 bandlength Timon_table_entry 0 59793 NULL nohasharray
165993 +enable_so_num_leds_lm3533_platform_data_59793 num_leds lm3533_platform_data 0 59793 &enable_so_bandlength_Timon_table_entry_59793
165994 +enable_so_tm6000_i2c_recv_regs_fndecl_59796 tm6000_i2c_recv_regs fndecl 5 59796 NULL
165995 +enable_so_length_lv_59797 length lv 0 59797 NULL
165996 +enable_so_i2400m_op_msg_from_user_fndecl_59798 i2400m_op_msg_from_user fndecl 4 59798 NULL
165997 +enable_so_NumPhys__CONFIG_PAGE_SAS_IO_UNIT_0_59799 NumPhys _CONFIG_PAGE_SAS_IO_UNIT_0 0 59799 NULL
165998 +enable_so_rcount_sixpack_59806 rcount sixpack 0 59806 NULL
165999 +enable_so_vcan_change_mtu_fndecl_59807 vcan_change_mtu fndecl 2 59807 NULL
166000 +enable_so_to_last_afs_writeback_59812 to_last afs_writeback 0 59812 NULL
166001 +enable_so_drbd_setup_queue_param_fndecl_59813 drbd_setup_queue_param fndecl 3 59813 NULL nohasharray
166002 +enable_so_setup_sgtable_fndecl_59813 setup_sgtable fndecl 4 59813 &enable_so_drbd_setup_queue_param_fndecl_59813
166003 +enable_so_frsz_gspca_dev_59816 frsz gspca_dev 0 59816 NULL
166004 +enable_so_nf_nat_ftp_fndecl_59818 nf_nat_ftp fndecl 6 59818 NULL
166005 +enable_so_num_entries_arpt_replace_59819 num_entries arpt_replace 0 59819 NULL
166006 +enable_so_numpstates_pst_s_59820 numpstates pst_s 0 59820 NULL
166007 +enable_so_xen_setup_msi_irqs_fndecl_59830 xen_setup_msi_irqs fndecl 2 59830 NULL
166008 +enable_so_length_inflate_state_59831 length inflate_state 0 59831 NULL
166009 +enable_so_dig_outs_auto_pin_cfg_59832 dig_outs auto_pin_cfg 0 59832 NULL
166010 +enable_so_mpi_read_raw_data_fndecl_59835 mpi_read_raw_data fndecl 2 59835 NULL
166011 +enable_so_plen_hci_command_hdr_59837 plen hci_command_hdr 0 59837 NULL
166012 +enable_so_dvb_net_init_fndecl_59840 dvb_net_init fndecl 0 59840 NULL
166013 +enable_so_max_len_xc2028_ctrl_59842 max_len xc2028_ctrl 0 59842 NULL
166014 +enable_so_tcp_sendmsg_fastopen_fndecl_59843 tcp_sendmsg_fastopen fndecl 4 59843 NULL
166015 +enable_so_f2fs_fill_dentries_fndecl_59844 f2fs_fill_dentries fndecl 3 59844 NULL
166016 +enable_so_status_mei_cl_cb_59845 status mei_cl_cb 0 59845 NULL
166017 +enable_so_acpi_rs_decode_bitmask_fndecl_59851 acpi_rs_decode_bitmask fndecl 0 59851 NULL
166018 +enable_so_dce_v11_0_afmt_update_ACR_fndecl_59852 dce_v11_0_afmt_update_ACR fndecl 2 59852 NULL nohasharray
166019 +enable_so_pep_alloc_skb_fndecl_59852 pep_alloc_skb fndecl 3 59852 &enable_so_dce_v11_0_afmt_update_ACR_fndecl_59852
166020 +enable_so_count_audit_chunk_59856 count audit_chunk 0 59856 NULL
166021 +enable_so_im_blkno_xfs_imap_59866 im_blkno xfs_imap 0 59866 NULL nohasharray
166022 +enable_so_length_pm8001_ioctl_payload_59866 length pm8001_ioctl_payload 0 59866 &enable_so_im_blkno_xfs_imap_59866
166023 +enable_so_arch_remove_memory_fndecl_59869 arch_remove_memory fndecl 2-1 59869 NULL
166024 +enable_so___process_changed_deleted_xattr_fndecl_59870 __process_changed_deleted_xattr fndecl 4 59870 NULL
166025 +enable_so_max_loop_vardecl_lloop_c_59872 max_loop vardecl_lloop.c 0 59872 NULL
166026 +enable_so_qlcnic_83xx_sysfs_flash_bulk_write_fndecl_59875 qlcnic_83xx_sysfs_flash_bulk_write fndecl 4 59875 NULL
166027 +enable_so_src_offset_btrfs_ioctl_clone_range_args_59876 src_offset btrfs_ioctl_clone_range_args 0 59876 NULL
166028 +enable_so_ide_scan_pio_blacklist_fndecl_59877 ide_scan_pio_blacklist fndecl 0 59877 NULL
166029 +enable_so_dx_fb_fillrect_59878 dx fb_fillrect 0 59878 NULL
166030 +enable_so___hwahc_dev_set_key_fndecl_59883 __hwahc_dev_set_key fndecl 5 59883 NULL
166031 +enable_so_vfs_allocated_count_igb_adapter_59900 vfs_allocated_count igb_adapter 0 59900 NULL
166032 +enable_so_mos7720_write_fndecl_59901 mos7720_write fndecl 4 59901 NULL nohasharray
166033 +enable_so_rxbuffersize_rtl_pci_59901 rxbuffersize rtl_pci 0 59901 &enable_so_mos7720_write_fndecl_59901
166034 +enable_so_num_gpio_wm831x_59907 num_gpio wm831x 0 59907 NULL
166035 +enable_so_wheel_num_ad714x_platform_data_59912 wheel_num ad714x_platform_data 0 59912 NULL
166036 +enable_so_qp_memcpy_from_queue_iov_fndecl_59913 qp_memcpy_from_queue_iov fndecl 5-4 59913 NULL
166037 +enable_so_rvmalloc_fndecl_59914 rvmalloc fndecl 1 59914 NULL
166038 +enable_so_video_endp_usb_usbvision_59918 video_endp usb_usbvision 0 59918 NULL
166039 +enable_so_nr_virtfn_bnx2x_sriov_59919 nr_virtfn bnx2x_sriov 0 59919 NULL nohasharray
166040 +enable_so_lov_iocontrol_fndecl_59919 lov_iocontrol fndecl 3 59919 &enable_so_nr_virtfn_bnx2x_sriov_59919
166041 +enable_so_wOverTheAirPacketSize_usb_wireless_ep_comp_descriptor_59926 wOverTheAirPacketSize usb_wireless_ep_comp_descriptor 0 59926 NULL
166042 +enable_so_n_user_regset_59935 n user_regset 0 59935 NULL
166043 +enable_so_blk_queue_max_write_same_sectors_fndecl_59954 blk_queue_max_write_same_sectors fndecl 2 59954 NULL
166044 +enable_so_bpl_cx25821_buffer_59964 bpl cx25821_buffer 0 59964 NULL nohasharray
166045 +enable_so_ixgbe_dbg_reg_ops_write_fndecl_59964 ixgbe_dbg_reg_ops_write fndecl 3 59964 &enable_so_bpl_cx25821_buffer_59964
166046 +enable_so_pull_to_netfront_cb_59965 pull_to netfront_cb 0 59965 NULL
166047 +enable_so_acpi_os_create_cache_fndecl_59968 acpi_os_create_cache fndecl 2 59968 NULL
166048 +enable_so_mwifiex_set_wapi_ie_fndecl_59972 mwifiex_set_wapi_ie fndecl 3 59972 NULL
166049 +enable_so_calc_line_length_fndecl_59973 calc_line_length fndecl 0-3-2 59973 NULL
166050 +enable_so_fuse_file_fallocate_fndecl_59983 fuse_file_fallocate fndecl 3-4 59983 NULL nohasharray
166051 +enable_so_scrub_pages_fndecl_59983 scrub_pages fndecl 3-2-11-4 59983 &enable_so_fuse_file_fallocate_fndecl_59983
166052 +enable_so_wlcore_alloc_hw_fndecl_59990 wlcore_alloc_hw fndecl 1-3 59990 NULL
166053 +enable_so_affs_write_begin_ofs_fndecl_59991 affs_write_begin_ofs fndecl 3 59991 NULL
166054 +enable_so_real_stripes_btrfs_raid_bio_59993 real_stripes btrfs_raid_bio 0 59993 NULL
166055 +enable_so_count_drm_buf_desc_59998 count drm_buf_desc 0 59998 NULL
166056 +enable_so_fb_write_fndecl_59999 fb_write fndecl 3 59999 NULL
166057 +enable_so_size_fuse_arg_60001 size fuse_arg 0 60001 NULL
166058 +enable_so_nvkm_falcon_create__fndecl_60005 nvkm_falcon_create_ fndecl 8 60005 NULL
166059 +enable_so_SYSC_poll_fndecl_60006 SYSC_poll fndecl 2 60006 NULL
166060 +enable_so___find_resource_fndecl_60011 __find_resource fndecl 4 60011 NULL
166061 +enable_so_len_ubifs_ch_60014 len ubifs_ch 0 60014 NULL
166062 +enable_so_skb_priority_pktgen_dev_60015 skb_priority pktgen_dev 0 60015 NULL
166063 +enable_so_portnum_usb_device_60022 portnum usb_device 0 60022 NULL nohasharray
166064 +enable_so___sctp_setsockopt_connectx_fndecl_60022 __sctp_setsockopt_connectx fndecl 3 60022 &enable_so_portnum_usb_device_60022
166065 +enable_so_page_shift_nouveau_bo_60023 page_shift nouveau_bo 0 60023 NULL
166066 +enable_so_ntfs_truncate_fndecl_60026 ntfs_truncate fndecl 0 60026 NULL nohasharray
166067 +enable_so_qla4xxx_post_aen_work_fndecl_60026 qla4xxx_post_aen_work fndecl 3 60026 &enable_so_ntfs_truncate_fndecl_60026
166068 +enable_so_alloc_in_bmp_fndecl_60028 alloc_in_bmp fndecl 0-4-3-2 60028 NULL
166069 +enable_so_calculate_alignment_fndecl_60029 calculate_alignment fndecl 0-2 60029 NULL nohasharray
166070 +enable_so_coda_fsync_fndecl_60029 coda_fsync fndecl 2-3 60029 &enable_so_calculate_alignment_fndecl_60029
166071 +enable_so_write_tx_buf_fndecl_60032 write_tx_buf fndecl 4 60032 NULL
166072 +enable_so_print_bad_pte_fndecl_60036 print_bad_pte fndecl 2 60036 NULL
166073 +enable_so_hdrlen_ip_auth_hdr_60037 hdrlen ip_auth_hdr 0 60037 NULL
166074 +enable_so_sel_write_bool_fndecl_60039 sel_write_bool fndecl 3 60039 NULL
166075 +enable_so_MaxMSIxVectors_mpt3sas_facts_60045 MaxMSIxVectors mpt3sas_facts 0 60045 NULL
166076 +enable_so_blk_rq_map_kern_fndecl_60047 blk_rq_map_kern fndecl 4 60047 NULL
166077 +enable_so_mgmt_pending_add_fndecl_60051 mgmt_pending_add fndecl 5 60051 NULL
166078 +enable_so_drm_atomic_helper_update_plane_fndecl_60059 drm_atomic_helper_update_plane fndecl 6-7 60059 NULL
166079 +enable_so_user_set_fndecl_60060 user_set fndecl 4 60060 NULL
166080 +enable_so_cx231xx_init_bulk_fndecl_60067 cx231xx_init_bulk fndecl 4-2-3 60067 NULL
166081 +enable_so_level_ubifs_znode_60069 level ubifs_znode 0 60069 NULL
166082 +enable_so_lpfc_hba_queue_depth_vardecl_lpfc_attr_c_60071 lpfc_hba_queue_depth vardecl_lpfc_attr.c 0 60071 NULL
166083 +enable_so_hpi_outstream_host_buffer_allocate_fndecl_60074 hpi_outstream_host_buffer_allocate fndecl 2 60074 NULL
166084 +enable_so_debugfs_create_u32_array_fndecl_60082 debugfs_create_u32_array fndecl 5 60082 NULL
166085 +enable_so_dram_offset_sst_res_info_60089 dram_offset sst_res_info 0 60089 NULL
166086 +enable_so_f2fs_issue_discard_fndecl_60090 f2fs_issue_discard fndecl 2-3 60090 NULL
166087 +enable_so_persistent_gnts_c_blkfront_info_60091 persistent_gnts_c blkfront_info 0 60091 NULL
166088 +enable_so_udpv6_sendmsg_fndecl_60103 udpv6_sendmsg fndecl 3 60103 NULL
166089 +enable_so_sample_rate_min_lola_60104 sample_rate_min lola 0 60104 NULL nohasharray
166090 +enable_so_event_trigger_regex_write_fndecl_60104 event_trigger_regex_write fndecl 3 60104 &enable_so_sample_rate_min_lola_60104
166091 +enable_so_vxfs_iget_fndecl_60105 vxfs_iget fndecl 2 60105 NULL
166092 +enable_so_ufs_new_fragments_fndecl_60109 ufs_new_fragments fndecl 4-5-3-0 60109 NULL
166093 +enable_so_tegra_slink_start_rx_dma_fndecl_60111 tegra_slink_start_rx_dma fndecl 2 60111 NULL
166094 +enable_so_raid10_find_virt_fndecl_60115 raid10_find_virt fndecl 0-3-2 60115 NULL nohasharray
166095 +enable_so_num_tx_bnad_60115 num_tx bnad 0 60115 &enable_so_raid10_find_virt_fndecl_60115
166096 +enable_so_display_height_vivid_dev_60116 display_height vivid_dev 0 60116 NULL
166097 +enable_so_ht_ast_vbios_enhtable_60121 ht ast_vbios_enhtable 0 60121 NULL
166098 +enable_so_vga_vram_end_vardecl_vgacon_c_60130 vga_vram_end vardecl_vgacon.c 0 60130 NULL nohasharray
166099 +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
166100 +enable_so_fb_base_drm_mode_config_60135 fb_base drm_mode_config 0 60135 NULL
166101 +enable_so_external_rate_fndecl_60138 external_rate fndecl 0 60138 NULL
166102 +enable_so_pci_xr17c154_setup_fndecl_60140 pci_xr17c154_setup fndecl 4 60140 NULL
166103 +enable_so_data_len_ib_ucm_event_60142 data_len ib_ucm_event 0 60142 NULL
166104 +enable_so_scalar_len_ccp_ecc_point_math_60144 scalar_len ccp_ecc_point_math 0 60144 NULL
166105 +enable_so_vfp_set_fndecl_60145 vfp_set fndecl 3-4 60145 NULL
166106 +enable_so_index_drm_minor_60149 index drm_minor 0 60149 NULL
166107 +enable_so_pipeline_dec_packet_in_read_fndecl_60151 pipeline_dec_packet_in_read fndecl 3 60151 NULL
166108 +enable_so_skb_checksum_setup_ip_fndecl_60154 skb_checksum_setup_ip fndecl 3 60154 NULL
166109 +enable_so_pvid_net_port_vlans_60155 pvid net_port_vlans 0 60155 NULL
166110 +enable_so_dt_mem_next_cell_fndecl_60162 dt_mem_next_cell fndecl 0 60162 NULL
166111 +enable_so_drm_fb_helper_initial_config_fndecl_60163 drm_fb_helper_initial_config fndecl 2 60163 NULL nohasharray
166112 +enable_so_smem_start_fb_fix_screeninfo_60163 smem_start fb_fix_screeninfo 0 60163 &enable_so_drm_fb_helper_initial_config_fndecl_60163
166113 +enable_so_stream_start_fndecl_60166 stream_start fndecl 0 60166 NULL
166114 +enable_so_wm8962_set_fll_fndecl_60167 wm8962_set_fll fndecl 4-5 60167 NULL
166115 +enable_so_vscnprintf_fndecl_60170 vscnprintf fndecl 0 60170 NULL
166116 +enable_so___kfifo_out_r_fndecl_60172 __kfifo_out_r fndecl 4 60172 NULL
166117 +enable_so_acpi_parse_entries_fndecl_60174 acpi_parse_entries fndecl 0 60174 NULL
166118 +enable_so_dccp_ackvec_buflen_fndecl_60177 dccp_ackvec_buflen fndecl 0 60177 NULL nohasharray
166119 +enable_so_ec_device_read_fndecl_60177 ec_device_read fndecl 3 60177 &enable_so_dccp_ackvec_buflen_fndecl_60177
166120 +enable_so_snd_compr_write_data_fndecl_60179 snd_compr_write_data fndecl 3 60179 NULL
166121 +enable_so_cc2520_write_ram_fndecl_60183 cc2520_write_ram fndecl 3 60183 NULL
166122 +enable_so_priority_binder_transaction_60184 priority binder_transaction 0 60184 NULL
166123 +enable_so_unlink1_fndecl_60188 unlink1 fndecl 3 60188 NULL
166124 +enable_so_il3945_stats_flag_fndecl_60189 il3945_stats_flag fndecl 0 60189 NULL
166125 +enable_so_pci_enable_device_fndecl_60193 pci_enable_device fndecl 0 60193 NULL
166126 +enable_so_vsub_vsp1_format_info_60198 vsub vsp1_format_info 0 60198 NULL
166127 +enable_so_esrt_efi_60200 esrt efi 0 60200 NULL
166128 +enable_so_vfs_getxattr_alloc_fndecl_60202 vfs_getxattr_alloc fndecl 0 60202 NULL
166129 +enable_so_av7110_ipack_init_fndecl_60204 av7110_ipack_init fndecl 2 60204 NULL
166130 +enable_so_bio_advance_iter_fndecl_60205 bio_advance_iter fndecl 3 60205 NULL
166131 +enable_so_src_frames_snd_pcm_plugin_60210 src_frames snd_pcm_plugin 0 60210 NULL nohasharray
166132 +enable_so_iuu_read_buf_fndecl_60210 iuu_read_buf fndecl 2 60210 &enable_so_src_frames_snd_pcm_plugin_60210
166133 +enable_so_request_key_async_with_auxdata_fndecl_60211 request_key_async_with_auxdata fndecl 4 60211 NULL
166134 +enable_so_lpfc_fcp_io_channel_vardecl_lpfc_attr_c_60216 lpfc_fcp_io_channel vardecl_lpfc_attr.c 0 60216 NULL
166135 +enable_so_iget_locked_fndecl_60218 iget_locked fndecl 2 60218 NULL nohasharray
166136 +enable_so_rmmio_base_radeon_device_60218 rmmio_base radeon_device 0 60218 &enable_so_iget_locked_fndecl_60218
166137 +enable_so_btusb_recv_bulk_fndecl_60219 btusb_recv_bulk fndecl 3 60219 NULL
166138 +enable_so_MaximumParallelCommands_DAC960_V2_ControllerInfo_60222 MaximumParallelCommands DAC960_V2_ControllerInfo 0 60222 NULL
166139 +enable_so_l2cap_parse_conf_rsp_fndecl_60232 l2cap_parse_conf_rsp fndecl 0 60232 NULL
166140 +enable_so_l2cap_create_le_flowctl_pdu_fndecl_60233 l2cap_create_le_flowctl_pdu fndecl 3 60233 NULL
166141 +enable_so_dlfb_alloc_urb_list_fndecl_60234 dlfb_alloc_urb_list fndecl 3 60234 NULL
166142 +enable_so_bttv_crop_adjust_fndecl_60236 bttv_crop_adjust fndecl 4-3 60236 NULL nohasharray
166143 +enable_so_irnet_connect_indication_fndecl_60236 irnet_connect_indication fndecl 5 60236 &enable_so_bttv_crop_adjust_fndecl_60236
166144 +enable_so_mwifiex_usb_host_to_card_fndecl_60239 mwifiex_usb_host_to_card fndecl 2 60239 NULL
166145 +enable_so_frag_len_pau_fpdu_frag_60242 frag_len pau_fpdu_frag 0 60242 NULL
166146 +enable_so_max_pages_per_fmr_ib_fmr_pool_param_60248 max_pages_per_fmr ib_fmr_pool_param 0 60248 NULL
166147 +enable_so_svm_queue_exception_fndecl_60249 svm_queue_exception fndecl 4-2 60249 NULL nohasharray
166148 +enable_so_length_squashfs_page_actor_60249 length squashfs_page_actor 0 60249 &enable_so_svm_queue_exception_fndecl_60249
166149 +enable_so_ah_rf_banks_size_ath5k_hw_60250 ah_rf_banks_size ath5k_hw 0 60250 NULL
166150 +enable_so_dirty_bytes_extent_io_tree_60254 dirty_bytes extent_io_tree 0 60254 NULL
166151 +enable_so_sector_size_jffs2_sb_info_60255 sector_size jffs2_sb_info 0 60255 NULL
166152 +enable_so_xenvif_change_mtu_fndecl_60258 xenvif_change_mtu fndecl 2 60258 NULL
166153 +enable_so_len_mwifiex_assoc_event_60259 len mwifiex_assoc_event 0 60259 NULL
166154 +enable_so_size_of_priv_dvb_usb_adapter_properties_60261 size_of_priv dvb_usb_adapter_properties 0 60261 NULL
166155 +enable_so_data_len_sym_ccb_60262 data_len sym_ccb 0 60262 NULL
166156 +enable_so_erst_dbg_write_fndecl_60264 erst_dbg_write fndecl 3 60264 NULL
166157 +enable_so_rotate_left_fndecl_60276 rotate_left fndecl 3-1 60276 NULL
166158 +enable_so_empty_dir_llseek_fndecl_60280 empty_dir_llseek fndecl 2 60280 NULL
166159 +enable_so_alloc_data_packet_fndecl_60281 alloc_data_packet fndecl 1 60281 NULL
166160 +enable_so_f2fs_update_dentry_fndecl_60285 f2fs_update_dentry fndecl 1 60285 NULL
166161 +enable_so_length_ore_per_dev_state_60287 length ore_per_dev_state 0 60287 NULL
166162 +enable_so___ata_change_queue_depth_fndecl_60290 __ata_change_queue_depth fndecl 3 60290 NULL
166163 +enable_so_read_file_tx99_fndecl_60294 read_file_tx99 fndecl 3 60294 NULL
166164 +enable_so_recv_actor_unix_stream_read_state_60306 recv_actor unix_stream_read_state 0 60306 NULL nohasharray
166165 +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
166166 +enable_so_area_whcrc_60320 area whcrc 0 60320 NULL
166167 +enable_so_check_ref_fndecl_60321 check_ref fndecl 3 60321 NULL nohasharray
166168 +enable_so_pnp_add_irq_resource_fndecl_60321 pnp_add_irq_resource fndecl 2 60321 &enable_so_check_ref_fndecl_60321
166169 +enable_so_kvm_vcpu_write_guest_fndecl_60323 kvm_vcpu_write_guest fndecl 2-4 60323 NULL
166170 +enable_so_pg_count_nfs_pgio_mirror_60324 pg_count nfs_pgio_mirror 0 60324 NULL
166171 +enable_so_transfer_fndecl_60326 transfer fndecl 4-0 60326 NULL
166172 +enable_so_eor_jfs_log_60327 eor jfs_log 0 60327 NULL
166173 +enable_so_rq_addrlen_svc_rqst_60328 rq_addrlen svc_rqst 0 60328 NULL
166174 +enable_so_upper_vardecl_matroxfb_base_c_60329 upper vardecl_matroxfb_base.c 0 60329 NULL
166175 +enable_so_int_hw_irq_en_fndecl_60331 int_hw_irq_en fndecl 3 60331 NULL
166176 +enable_so_bd_add_to_bdi_fndecl_60336 bd_add_to_bdi fndecl 0-2 60336 NULL
166177 +enable_so_buf_size__IOCTL_Command_struct_60338 buf_size _IOCTL_Command_struct 0 60338 NULL
166178 +enable_so_offset_nvkm_mem_60339 offset nvkm_mem 0 60339 NULL
166179 +enable_so_qib_rc_rcv_resp_fndecl_60341 qib_rc_rcv_resp fndecl 9-7 60341 NULL
166180 +enable_so_h_dloarea_60342 h dloarea 0 60342 NULL
166181 +enable_so_pagesize_alauda_media_info_60348 pagesize alauda_media_info 0 60348 NULL
166182 +enable_so_hest_ghes_dev_register_fndecl_60349 hest_ghes_dev_register fndecl 1 60349 NULL
166183 +enable_so_setup_geo_fndecl_60351 setup_geo fndecl 0 60351 NULL nohasharray
166184 +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
166185 +enable_so_softback_lines_vardecl_fbcon_c_60357 softback_lines vardecl_fbcon.c 0 60357 NULL
166186 +enable_so_length_dfw_pllrec_60358 length dfw_pllrec 0 60358 NULL
166187 +enable_so_num_counters_vardecl_sysfs_c_60371 num_counters vardecl_sysfs.c 0 60371 NULL
166188 +enable_so_idd_bar0_ioc4_driver_data_60385 idd_bar0 ioc4_driver_data 0 60385 NULL
166189 +enable_so_s_inodes_per_group_ext4_super_block_60387 s_inodes_per_group ext4_super_block 0 60387 NULL
166190 +enable_so_ipw_get_max_rate_fndecl_60389 ipw_get_max_rate fndecl 0 60389 NULL nohasharray
166191 +enable_so_acpi_dev_get_memresource_fndecl_60389 acpi_dev_get_memresource fndecl 3-2 60389 &enable_so_ipw_get_max_rate_fndecl_60389
166192 +enable_so_count_tx_ring_60390 count tx_ring 0 60390 NULL
166193 +enable_so_shmem_pwrite_fast_fndecl_60393 shmem_pwrite_fast fndecl 3 60393 NULL
166194 +enable_so_block_in_file_dio_submit_60403 block_in_file dio_submit 0 60403 NULL
166195 +enable_so_btrfs_insert_empty_items_fndecl_60405 btrfs_insert_empty_items fndecl 6 60405 NULL
166196 +enable_so_max_vfs_vardecl_ixgbe_main_c_60408 max_vfs vardecl_ixgbe_main.c 0 60408 NULL
166197 +enable_so_xfs_iroot_realloc_fndecl_60409 xfs_iroot_realloc fndecl 2 60409 NULL
166198 +enable_so_xfs_bulkstat_one_int_fndecl_60410 xfs_bulkstat_one_int fndecl 2 60410 NULL
166199 +enable_so_da_num_tokens_vardecl_dell_laptop_c_60413 da_num_tokens vardecl_dell-laptop.c 0 60413 NULL
166200 +enable_so_hw_token_fusbh200_qtd_60416 hw_token fusbh200_qtd 0 60416 NULL
166201 +enable_so_sched_nice_sched_attr_60426 sched_nice sched_attr 0 60426 NULL
166202 +enable_so___ocfs2_mknod_locked_fndecl_60427 __ocfs2_mknod_locked fndecl 8-9-10 60427 NULL
166203 +enable_so_alloc_xenballooned_pages_fndecl_60439 alloc_xenballooned_pages fndecl 1 60439 NULL
166204 +enable_so___i2c_hid_command_fndecl_60442 __i2c_hid_command fndecl 6-8 60442 NULL
166205 +enable_so_minimum_cx88_ctrl_60444 minimum cx88_ctrl 0 60444 NULL
166206 +enable_so_digestsize_hash_alg_common_60446 digestsize hash_alg_common 0 60446 NULL nohasharray
166207 +enable_so_quirk_strict_duplicate_filter_write_fndecl_60446 quirk_strict_duplicate_filter_write fndecl 3 60446 &enable_so_digestsize_hash_alg_common_60446
166208 +enable_so_count_hscx_hw_60448 count hscx_hw 0 60448 NULL
166209 +enable_so_lib80211_tkip_decrypt_fndecl_60450 lib80211_tkip_decrypt fndecl 2 60450 NULL
166210 +enable_so_maxsgentries_ctlr_info_60455 maxsgentries ctlr_info 0 60455 NULL
166211 +enable_so_sd_quota_slots_gfs2_sbd_60466 sd_quota_slots gfs2_sbd 0 60466 NULL
166212 +enable_so_write_fndecl_60467 write fndecl 3 60467 NULL
166213 +enable_so_drm_vma_offset_add_fndecl_60483 drm_vma_offset_add fndecl 3 60483 NULL nohasharray
166214 +enable_so_osd_left_vardecl_ivtvfb_c_60483 osd_left vardecl_ivtvfb.c 0 60483 &enable_so_drm_vma_offset_add_fndecl_60483
166215 +enable_so_lane2_associate_req_fndecl_60485 lane2_associate_req fndecl 4 60485 NULL
166216 +enable_so_v_nmembs_nilfs_argv_60498 v_nmembs nilfs_argv 0 60498 NULL
166217 +enable_so_cap_intel_iommu_60508 cap intel_iommu 0 60508 NULL
166218 +enable_so_tiadc_channel_init_fndecl_60514 tiadc_channel_init fndecl 2 60514 NULL
166219 +enable_so_gfs2_xattr_set_fndecl_60515 gfs2_xattr_set fndecl 4 60515 NULL
166220 +enable_so_rpcrdma_convert_iovs_fndecl_60516 rpcrdma_convert_iovs fndecl 0 60516 NULL
166221 +enable_so_n_host_mvs_chip_info_60517 n_host mvs_chip_info 0 60517 NULL nohasharray
166222 +enable_so_ll_iocontrol_register_fndecl_60517 ll_iocontrol_register fndecl 2 60517 &enable_so_n_host_mvs_chip_info_60517
166223 +enable_so_tty_buffer_alloc_fndecl_60526 tty_buffer_alloc fndecl 2 60526 NULL
166224 +enable_so_b44_change_mtu_fndecl_60528 b44_change_mtu fndecl 2 60528 NULL
166225 +enable_so_hso_serial_write_fndecl_60530 hso_serial_write fndecl 3 60530 NULL nohasharray
166226 +enable_so_ima_store_measurement_fndecl_60530 ima_store_measurement fndecl 5 60530 &enable_so_hso_serial_write_fndecl_60530
166227 +enable_so_sock_recv_errqueue_fndecl_60535 sock_recv_errqueue fndecl 3 60535 NULL
166228 +enable_so_qib_sdma_verbs_send_fndecl_60539 qib_sdma_verbs_send fndecl 3 60539 NULL
166229 +enable_so_btusb_intel_secure_send_fndecl_60542 btusb_intel_secure_send fndecl 3 60542 NULL
166230 +enable_so_mic_card_map_fndecl_60546 mic_card_map fndecl 3-2 60546 NULL nohasharray
166231 +enable_so_device_size_scsi_transport_template_60546 device_size scsi_transport_template 0 60546 &enable_so_mic_card_map_fndecl_60546
166232 +enable_so_ipath_cfgports_ipath_devdata_60549 ipath_cfgports ipath_devdata 0 60549 NULL
166233 +enable_so_dma_tx_bytes_lpuart_port_60550 dma_tx_bytes lpuart_port 0 60550 NULL
166234 +enable_so_udp_manip_pkt_fndecl_60552 udp_manip_pkt fndecl 4 60552 NULL
166235 +enable_so_PSize_RxDesc_60553 PSize RxDesc 0 60553 NULL
166236 +enable_so_max_response_cros_ec_device_60558 max_response cros_ec_device 0 60558 NULL
166237 +enable_so_chr_major_ports_device_60572 chr_major ports_device 0 60572 NULL
166238 +enable_so_slot_dlm_member_60581 slot dlm_member 0 60581 NULL
166239 +enable_so_nibble_read_data_parport_operations_60589 nibble_read_data parport_operations 0 60589 NULL
166240 +enable_so_xfs_dir2_free_try_read_fndecl_60591 xfs_dir2_free_try_read fndecl 3 60591 NULL nohasharray
166241 +enable_so_vfcount_arch_specific_params_60591 vfcount arch_specific_params 0 60591 &enable_so_xfs_dir2_free_try_read_fndecl_60591
166242 +enable_so_in_size_ide_task_request_s_60603 in_size ide_task_request_s 0 60603 NULL
166243 +enable_so___split_vma_fndecl_60609 __split_vma fndecl 3 60609 NULL
166244 +enable_so_fuse_ref_page_fndecl_60613 fuse_ref_page fndecl 4-3 60613 NULL nohasharray
166245 +enable_so_first_page_mpage_da_data_60613 first_page mpage_da_data 0 60613 &enable_so_fuse_ref_page_fndecl_60613
166246 +enable_so_sys_lgetxattr_fndecl_60616 sys_lgetxattr fndecl 4 60616 NULL
166247 +enable_so_qpc_entry_sz_mlx4_dev_cap_60618 qpc_entry_sz mlx4_dev_cap 0 60618 NULL
166248 +enable_so_dqi_usable_bs_qtree_mem_dqinfo_60619 dqi_usable_bs qtree_mem_dqinfo 0 60619 NULL
166249 +enable_so_copy_macs_fndecl_60621 copy_macs fndecl 4 60621 NULL
166250 +enable_so_copy_nocow_pages_fndecl_60628 copy_nocow_pages fndecl 3-5 60628 NULL nohasharray
166251 +enable_so_i40e_alloc_vfs_fndecl_60628 i40e_alloc_vfs fndecl 2 60628 &enable_so_copy_nocow_pages_fndecl_60628 nohasharray
166252 +enable_so_htable_bits_htable_60628 htable_bits htable 0 60628 &enable_so_i40e_alloc_vfs_fndecl_60628
166253 +enable_so_gso_size_skb_shared_info_60636 gso_size skb_shared_info 0 60636 NULL nohasharray
166254 +enable_so_num_tx_desc_iadev_priv_60636 num_tx_desc iadev_priv 0 60636 &enable_so_gso_size_skb_shared_info_60636
166255 +enable_so_btrfs_new_extent_direct_fndecl_60642 btrfs_new_extent_direct fndecl 2 60642 NULL
166256 +enable_so_stats_dot11ACKFailureCount_read_fndecl_60645 stats_dot11ACKFailureCount_read fndecl 3 60645 NULL
166257 +enable_so_num_mpts_mthca_limits_60648 num_mpts mthca_limits 0 60648 NULL
166258 +enable_so_venus_rmdir_fndecl_60655 venus_rmdir fndecl 4 60655 NULL
166259 +enable_so_neo_map_video_fndecl_60656 neo_map_video fndecl 3 60656 NULL
166260 +enable_so_i_extra_isize_ext4_inode_info_60659 i_extra_isize ext4_inode_info 0 60659 NULL nohasharray
166261 +enable_so___ax88179_read_cmd_fndecl_60659 __ax88179_read_cmd fndecl 5 60659 &enable_so_i_extra_isize_ext4_inode_info_60659
166262 +enable_so_eld_size_hdmi_eld_60661 eld_size hdmi_eld 0 60661 NULL
166263 +enable_so_length_ipath_swqe_60662 length ipath_swqe 0 60662 NULL
166264 +enable_so_secondary_head_adu_device_60665 secondary_head adu_device 0 60665 NULL
166265 +enable_so_cxd2820r_rd_regs_i2c_fndecl_60668 cxd2820r_rd_regs_i2c fndecl 5 60668 NULL
166266 +enable_so_cx18_copy_mdl_to_user_fndecl_60670 cx18_copy_mdl_to_user fndecl 4 60670 NULL
166267 +enable_so_set_extent_bits_fndecl_60673 set_extent_bits fndecl 3-2 60673 NULL
166268 +enable_so_pos_saa7164_user_buffer_60678 pos saa7164_user_buffer 0 60678 NULL
166269 +enable_so_bytenr_btrfs_qgroup_extent_record_60692 bytenr btrfs_qgroup_extent_record 0 60692 NULL
166270 +enable_so_vnic_dev_mtu_fndecl_60693 vnic_dev_mtu fndecl 0 60693 NULL nohasharray
166271 +enable_so_MaxBufSize_lanman_neg_rsp_60693 MaxBufSize lanman_neg_rsp 0 60693 &enable_so_vnic_dev_mtu_fndecl_60693
166272 +enable_so_mon_bin_collate_isodesc_fndecl_60695 mon_bin_collate_isodesc fndecl 0 60695 NULL nohasharray
166273 +enable_so_sel_write_user_fndecl_60695 sel_write_user fndecl 3 60695 &enable_so_mon_bin_collate_isodesc_fndecl_60695
166274 +enable_so_ubifs_fsync_fndecl_60696 ubifs_fsync fndecl 2-3 60696 NULL
166275 +enable_so_max_size_vx_ibl_info_60702 max_size vx_ibl_info 0 60702 NULL nohasharray
166276 +enable_so_snd_mixart_BA0_read_fndecl_60702 snd_mixart_BA0_read fndecl 5 60702 &enable_so_max_size_vx_ibl_info_60702
166277 +enable_so_count_vma_pages_range_fndecl_60705 count_vma_pages_range fndecl 0-2-3 60705 NULL
166278 +enable_so_snd_card_new_fndecl_60707 snd_card_new fndecl 2-5 60707 NULL
166279 +enable_so_kvm_mmu_page_get_gfn_fndecl_60709 kvm_mmu_page_get_gfn fndecl 0-2 60709 NULL
166280 +enable_so_psn_ipath_swqe_60711 psn ipath_swqe 0 60711 NULL
166281 +enable_so_usbdev_read_fndecl_60713 usbdev_read fndecl 3 60713 NULL
166282 +enable_so_pwr_missing_bcns_cnt_read_fndecl_60714 pwr_missing_bcns_cnt_read fndecl 3 60714 NULL
166283 +enable_so_sock_sendmsg_fndecl_60718 sock_sendmsg fndecl 0 60718 NULL nohasharray
166284 +enable_so_v9fs_xattr_user_set_fndecl_60718 v9fs_xattr_user_set fndecl 4 60718 &enable_so_sock_sendmsg_fndecl_60718
166285 +enable_so_HighPriorityCredit_mpt3sas_facts_60721 HighPriorityCredit mpt3sas_facts 0 60721 NULL
166286 +enable_so_reserved_pebs_ubi_volume_60725 reserved_pebs ubi_volume 0 60725 NULL
166287 +enable_so_c2_pseudo_change_mtu_fndecl_60734 c2_pseudo_change_mtu fndecl 2 60734 NULL
166288 +enable_so_count_ptd_60735 count ptd 0 60735 NULL nohasharray
166289 +enable_so_splice_from_pipe_fndecl_60735 splice_from_pipe fndecl 4 60735 &enable_so_count_ptd_60735
166290 +enable_so_hwarc_filter_cmd_set_drp_ie_WUSB_0100_fndecl_60739 hwarc_filter_cmd_set_drp_ie_WUSB_0100 fndecl 0 60739 NULL
166291 +enable_so_command_setapcor_fndecl_60740 command_setapcor fndecl 0 60740 NULL
166292 +enable_so_ns_inode_size_the_nilfs_60742 ns_inode_size the_nilfs 0 60742 NULL nohasharray
166293 +enable_so_send_to_tty_fndecl_60742 send_to_tty fndecl 3 60742 &enable_so_ns_inode_size_the_nilfs_60742
166294 +enable_so_cfs_trace_daemon_command_usrstr_fndecl_60744 cfs_trace_daemon_command_usrstr fndecl 2 60744 NULL
166295 +enable_so_io_size_wdt_lpc_sch_info_60747 io_size_wdt lpc_sch_info 0 60747 NULL
166296 +enable_so_max_cluster_msdos_sb_info_60753 max_cluster msdos_sb_info 0 60753 NULL
166297 +enable_so_index_vardecl_intel8x0_c_60756 index vardecl_intel8x0.c 0 60756 NULL nohasharray
166298 +enable_so_index_hpi_adapter_obj_60756 index hpi_adapter_obj 0 60756 &enable_so_index_vardecl_intel8x0_c_60756
166299 +enable_so_chipshift_nand_flash_dev_60758 chipshift nand_flash_dev 0 60758 NULL
166300 +enable_so_jpg_bufsize_vardecl_60761 jpg_bufsize vardecl 0 60761 NULL
166301 +enable_so_base_ttm_bus_placement_60769 base ttm_bus_placement 0 60769 NULL
166302 +enable_so_i_block_group_ext2_inode_info_60771 i_block_group ext2_inode_info 0 60771 NULL
166303 +enable_so_a_channels_libipw_geo_60784 a_channels libipw_geo 0 60784 NULL
166304 +enable_so_length_blkpg_partition_60788 length blkpg_partition 0 60788 NULL
166305 +enable_so_x2_virtio_gpu_framebuffer_60789 x2 virtio_gpu_framebuffer 0 60789 NULL
166306 +enable_so_ocfs2_remove_inode_range_fndecl_60791 ocfs2_remove_inode_range fndecl 3-4 60791 NULL nohasharray
166307 +enable_so_device_write_fndecl_60791 device_write fndecl 3 60791 &enable_so_ocfs2_remove_inode_range_fndecl_60791
166308 +enable_so_full_width_mxr_crop_60792 full_width mxr_crop 0 60792 NULL
166309 +enable_so_xennet_create_queues_fndecl_60793 xennet_create_queues fndecl 2 60793 NULL
166310 +enable_so_tomoyo_write_self_fndecl_60794 tomoyo_write_self fndecl 3 60794 NULL
166311 +enable_so_count_hdlc_hw_60796 count hdlc_hw 0 60796 NULL
166312 +enable_so_sta_agg_status_write_fndecl_60799 sta_agg_status_write fndecl 3 60799 NULL
166313 +enable_so_iso_alloc_urb_fndecl_60805 iso_alloc_urb fndecl 4-5-2 60805 NULL
166314 +enable_so_mpt_lan_change_mtu_fndecl_60806 mpt_lan_change_mtu fndecl 2 60806 NULL nohasharray
166315 +enable_so_start_rate_il3945_rs_sta_60806 start_rate il3945_rs_sta 0 60806 &enable_so_mpt_lan_change_mtu_fndecl_60806
166316 +enable_so_perdev_minors_vardecl_block_c_60809 perdev_minors vardecl_block.c 0 60809 NULL
166317 +enable_so_sctp_pack_cookie_fndecl_60821 sctp_pack_cookie fndecl 6 60821 NULL
166318 +enable_so_new_log_buf_len_vardecl_printk_c_60824 new_log_buf_len vardecl_printk.c 0 60824 NULL
166319 +enable_so___radix_tree_preload_fndecl_60830 __radix_tree_preload fndecl 0 60830 NULL
166320 +enable_so_beacon_ies_len_cfg80211_beacon_data_60831 beacon_ies_len cfg80211_beacon_data 0 60831 NULL
166321 +enable_so_ieee80211_if_read_peer_fndecl_60834 ieee80211_if_read_peer fndecl 3 60834 NULL
166322 +enable_so_register_sound_dsp_fndecl_60835 register_sound_dsp fndecl 2 60835 NULL
166323 +enable_so_bInterval_usb_endpoint_descriptor_60843 bInterval usb_endpoint_descriptor 0 60843 NULL nohasharray
166324 +enable_so_limit_fm10k_ring_feature_60843 limit fm10k_ring_feature 0 60843 &enable_so_bInterval_usb_endpoint_descriptor_60843
166325 +enable_so_prism2_pda_proc_read_fndecl_60845 prism2_pda_proc_read fndecl 3 60845 NULL
166326 +enable_so_wlen_si2168_cmd_60850 wlen si2168_cmd 0 60850 NULL
166327 +enable_so_spi_alloc_master_fndecl_60852 spi_alloc_master fndecl 2 60852 NULL
166328 +enable_so_channels_max_snd_pcm_hardware_60854 channels_max snd_pcm_hardware 0 60854 NULL
166329 +enable_so_port_piobufs_ipath_portdata_60864 port_piobufs ipath_portdata 0 60864 NULL
166330 +enable_so_dev_priv_size_drm_driver_60870 dev_priv_size drm_driver 0 60870 NULL
166331 +enable_so_sectors_per_block_cache_60872 sectors_per_block cache 0 60872 NULL
166332 +enable_so_input_mt_init_slots_fndecl_60876 input_mt_init_slots fndecl 2 60876 NULL
166333 +enable_so_reiserfs_bmap_fndecl_60877 reiserfs_bmap fndecl 2 60877 NULL
166334 +enable_so_map_size_tpm_inf_dev_60880 map_size tpm_inf_dev 0 60880 NULL
166335 +enable_so_osd_y_offset_yuv_playback_info_60883 osd_y_offset yuv_playback_info 0 60883 NULL
166336 +enable_so_xenvif_add_frag_responses_fndecl_60886 xenvif_add_frag_responses fndecl 2 60886 NULL
166337 +enable_so_msg_size_c2_mq_60887 msg_size c2_mq 0 60887 NULL nohasharray
166338 +enable_so_last_data_size_ubi_ainf_volume_60887 last_data_size ubi_ainf_volume 0 60887 &enable_so_msg_size_c2_mq_60887
166339 +enable_so_snd_pcm_oss_sync1_fndecl_60897 snd_pcm_oss_sync1 fndecl 2 60897 NULL nohasharray
166340 +enable_so_orig_start_extent_map_60897 orig_start extent_map 0 60897 &enable_so_snd_pcm_oss_sync1_fndecl_60897 nohasharray
166341 +enable_so_sn9c2028_short_command_fndecl_60897 sn9c2028_short_command fndecl 0 60897 &enable_so_orig_start_extent_map_60897
166342 +enable_so_plcp_siso_il_rate_info_60899 plcp_siso il_rate_info 0 60899 NULL nohasharray
166343 +enable_so_btmrvl_send_sync_cmd_fndecl_60899 btmrvl_send_sync_cmd fndecl 4 60899 &enable_so_plcp_siso_il_rate_info_60899
166344 +enable_so_fusbh200_urb_dequeue_fndecl_60900 fusbh200_urb_dequeue fndecl 3 60900 NULL
166345 +enable_so_bNrChannels_uac_input_terminal_descriptor_60901 bNrChannels uac_input_terminal_descriptor 0 60901 NULL
166346 +enable_so_xdr_shrink_bufhead_fndecl_60908 xdr_shrink_bufhead fndecl 2 60908 NULL
166347 +enable_so_gfs2_fiemap_fndecl_60913 gfs2_fiemap fndecl 4 60913 NULL
166348 +enable_so_ctrl_set_cropw_fndecl_60918 ctrl_set_cropw fndecl 3 60918 NULL
166349 +enable_so_blf_blkno_xfs_buf_log_format_60925 blf_blkno xfs_buf_log_format 0 60925 NULL
166350 +enable_so_tool_peer_mask_write_fndecl_60928 tool_peer_mask_write fndecl 3 60928 NULL
166351 +enable_so_read_ltv_hermes_ops_60939 read_ltv hermes_ops 0 60939 NULL nohasharray
166352 +enable_so_insert_state_fndecl_60939 insert_state fndecl 4-3 60939 &enable_so_read_ltv_hermes_ops_60939
166353 +enable_so_x509_process_extension_fndecl_60941 x509_process_extension fndecl 5 60941 NULL
166354 +enable_so_msix_vector_count_MPT3SAS_ADAPTER_60944 msix_vector_count MPT3SAS_ADAPTER 0 60944 NULL
166355 +enable_so_low_ino_proc_dir_entry_60945 low_ino proc_dir_entry 0 60945 NULL
166356 +enable_so_ipv6_recv_rxpmtu_fndecl_60949 ipv6_recv_rxpmtu fndecl 3 60949 NULL
166357 +enable_so_efi_memmap_hi_efi_info_60951 efi_memmap_hi efi_info 0 60951 NULL
166358 +enable_so_audit_make_reply_fndecl_60952 audit_make_reply fndecl 7 60952 NULL
166359 +enable_so_ocfs2_dx_dir_new_cluster_fndecl_60953 ocfs2_dx_dir_new_cluster fndecl 3 60953 NULL
166360 +enable_so_s_partition_root_udf_part_map_60954 s_partition_root udf_part_map 0 60954 NULL
166361 +enable_so_ath10k_reg_value_read_fndecl_60958 ath10k_reg_value_read fndecl 3 60958 NULL
166362 +enable_so_get_rdac_req_fndecl_60969 get_rdac_req fndecl 3 60969 NULL
166363 +enable_so_tx_remainder_cdc_ncm_ctx_60973 tx_remainder cdc_ncm_ctx 0 60973 NULL
166364 +enable_so_xfs_extent_busy_update_extent_fndecl_60975 xfs_extent_busy_update_extent fndecl 5-4 60975 NULL
166365 +enable_so_hcs_params1_xhci_hcd_60979 hcs_params1 xhci_hcd 0 60979 NULL
166366 +enable_so_isdn_write_fndecl_60980 isdn_write fndecl 3 60980 NULL
166367 +enable_so_first_block_migrate_struct_60989 first_block migrate_struct 0 60989 NULL nohasharray
166368 +enable_so_weight_dlm_member_60989 weight dlm_member 0 60989 &enable_so_first_block_migrate_struct_60989
166369 +enable_so_rtl8152_change_mtu_fndecl_60996 rtl8152_change_mtu fndecl 2 60996 NULL
166370 +enable_so_endp_out_zd1201_61001 endp_out zd1201 0 61001 NULL
166371 +enable_so_dbgfs_frame_fndecl_61006 dbgfs_frame fndecl 3 61006 NULL
166372 +enable_so_ocfs2_xattr_block_find_fndecl_61008 ocfs2_xattr_block_find fndecl 0 61008 NULL
166373 +enable_so___svc_create_fndecl_61020 __svc_create fndecl 2-3 61020 NULL nohasharray
166374 +enable_so_cfs_cpt_weight_fndecl_61020 cfs_cpt_weight fndecl 0 61020 &enable_so___svc_create_fndecl_61020
166375 +enable_so_size_page_frag_61029 size page_frag 0 61029 NULL
166376 +enable_so_setup_possible_cpus_vardecl_smpboot_c_61040 setup_possible_cpus vardecl_smpboot.c 0 61040 NULL nohasharray
166377 +enable_so_ath6kl_wmi_listeninterval_cmd_fndecl_61040 ath6kl_wmi_listeninterval_cmd fndecl 2 61040 &enable_so_setup_possible_cpus_vardecl_smpboot_c_61040
166378 +enable_so_nports1_adapter_info_61044 nports1 adapter_info 0 61044 NULL
166379 +enable_so_nf_nat_ftp_fmt_cmd_fndecl_61045 nf_nat_ftp_fmt_cmd fndecl 0 61045 NULL
166380 +enable_so__dln2_transfer_fndecl_61049 _dln2_transfer fndecl 0 61049 NULL
166381 +enable_so_alloc_mr_fndecl_61052 alloc_mr fndecl 1 61052 NULL
166382 +enable_so_len_tcp_fastopen_cookie_61053 len tcp_fastopen_cookie 0 61053 NULL
166383 +enable_so_copy_to_fndecl_61058 copy_to fndecl 3 61058 NULL
166384 +enable_so_xfs_bmbt_set_allf_fndecl_61064 xfs_bmbt_set_allf fndecl 4-3-2 61064 NULL
166385 +enable_so_get_rx_packet_len_wlcore_ops_61070 get_rx_packet_len wlcore_ops 0 61070 NULL
166386 +enable_so_untag_qdepth_blogic_adapter_61071 untag_qdepth blogic_adapter 0 61071 NULL
166387 +enable_so_reply_len_fc_bsg_job_61088 reply_len fc_bsg_job 0 61088 NULL
166388 +enable_so_left_v4l2_rect_61093 left v4l2_rect 0 61093 NULL
166389 +enable_so_rtl2832_regmap_gather_write_fndecl_61096 rtl2832_regmap_gather_write fndecl 5 61096 NULL
166390 +enable_so_snd_hdac_exec_verb_fndecl_61100 snd_hdac_exec_verb fndecl 0 61100 NULL
166391 +enable_so_current_write_offset_scif_rb_61107 current_write_offset scif_rb 0 61107 NULL nohasharray
166392 +enable_so_ioat2_dca_count_dca_slots_fndecl_61107 ioat2_dca_count_dca_slots fndecl 0 61107 &enable_so_current_write_offset_scif_rb_61107
166393 +enable_so_bv_offset_bio_vec_61109 bv_offset bio_vec 0 61109 NULL
166394 +enable_so_f2fs_fname_crypto_alloc_buffer_fndecl_61116 f2fs_fname_crypto_alloc_buffer fndecl 2 61116 NULL
166395 +enable_so_tcp_adjust_fackets_out_fndecl_61118 tcp_adjust_fackets_out fndecl 3 61118 NULL
166396 +enable_so_nilfs_bmap_do_delete_fndecl_61120 nilfs_bmap_do_delete fndecl 0 61120 NULL
166397 +enable_so_blocknr_nilfs_write_info_61124 blocknr nilfs_write_info 0 61124 NULL
166398 +enable_so_rx_hdr_len_i40e_ring_61127 rx_hdr_len i40e_ring 0 61127 NULL
166399 +enable_so_insert_node_fndecl_61132 insert_node fndecl 3-4 61132 NULL
166400 +enable_so_atr_len_retry_cm4000_dev_61135 atr_len_retry cm4000_dev 0 61135 NULL
166401 +enable_so_ore_calc_stripe_info_fndecl_61140 ore_calc_stripe_info fndecl 3 61140 NULL
166402 +enable_so_display_byte_stride_osd_info_61141 display_byte_stride osd_info 0 61141 NULL
166403 +enable_so___access_remote_vm_fndecl_61148 __access_remote_vm fndecl 5-0-3 61148 NULL
166404 +enable_so_get_free_entries_fndecl_61149 get_free_entries fndecl 1 61149 NULL nohasharray
166405 +enable_so_fnic_reset_stats_read_fndecl_61149 fnic_reset_stats_read fndecl 3 61149 &enable_so_get_free_entries_fndecl_61149
166406 +enable_so_sierra_setup_urb_fndecl_61150 sierra_setup_urb fndecl 5-3-2 61150 NULL
166407 +enable_so_slhc_toss_fndecl_61153 slhc_toss fndecl 0 61153 NULL
166408 +enable_so_ctl_mt7601u_rxwi_61155 ctl mt7601u_rxwi 0 61155 NULL
166409 +enable_so___vmalloc_node_range_fndecl_61157 __vmalloc_node_range fndecl 1-3-2 61157 NULL nohasharray
166410 +enable_so_max_rsp_queues_qla_hw_data_61157 max_rsp_queues qla_hw_data 0 61157 &enable_so___vmalloc_node_range_fndecl_61157
166411 +enable_so_addr_kcore_list_61158 addr kcore_list 0 61158 NULL
166412 +enable_so_ceph_locks_to_pagelist_fndecl_61162 ceph_locks_to_pagelist fndecl 3-4 61162 NULL
166413 +enable_so_sel_commit_bools_write_fndecl_61166 sel_commit_bools_write fndecl 3 61166 NULL
166414 +enable_so_ftdi_elan_edset_empty_fndecl_61170 ftdi_elan_edset_empty fndecl 0 61170 NULL nohasharray
166415 +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
166416 +enable_so_host1x_job_alloc_fndecl_61171 host1x_job_alloc fndecl 4-3-2 61171 NULL
166417 +enable_so_in_length_nd_cmd_vendor_hdr_61172 in_length nd_cmd_vendor_hdr 0 61172 NULL
166418 +enable_so_phys_memory_base__synclinkmp_info_61174 phys_memory_base _synclinkmp_info 0 61174 NULL
166419 +enable_so_pvr2_buffer_set_buffer_fndecl_61176 pvr2_buffer_set_buffer fndecl 3 61176 NULL
166420 +enable_so_register_sound_mixer_fndecl_61179 register_sound_mixer fndecl 2 61179 NULL
166421 +enable_so___ocfs2_move_extent_fndecl_61183 __ocfs2_move_extent fndecl 4-5-6-3 61183 NULL nohasharray
166422 +enable_so_dma_tx_errors_read_fndecl_61183 dma_tx_errors_read fndecl 3 61183 &enable_so___ocfs2_move_extent_fndecl_61183
166423 +enable_so_fbcon_softback_size_vardecl_fbcon_c_61184 fbcon_softback_size vardecl_fbcon.c 0 61184 NULL
166424 +enable_so_channels_vendor_data_61194 channels vendor_data 0 61194 NULL
166425 +enable_so_pos_dir_context_61195 pos dir_context 0 61195 NULL nohasharray
166426 +enable_so_rdma_set_ib_paths_fndecl_61195 rdma_set_ib_paths fndecl 3 61195 &enable_so_pos_dir_context_61195
166427 +enable_so_port_id_ssp_device_61196 port_id ssp_device 0 61196 NULL nohasharray
166428 +enable_so_spk_ys_vardecl_61196 spk_ys vardecl 0 61196 &enable_so_port_id_ssp_device_61196
166429 +enable_so_add_qgroup_rb_fndecl_61197 add_qgroup_rb fndecl 2 61197 NULL
166430 +enable_so_num_qps_mthca_limits_61203 num_qps mthca_limits 0 61203 NULL
166431 +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
166432 +enable_so_ts_nr_packets_vardecl_saa7134_ts_c_61205 ts_nr_packets vardecl_saa7134-ts.c 0 61205 NULL
166433 +enable_so_audit_log_n_hex_fndecl_61218 audit_log_n_hex fndecl 3 61218 NULL
166434 +enable_so_rx_buffersize_b43_dmaring_61223 rx_buffersize b43_dmaring 0 61223 NULL nohasharray
166435 +enable_so_rmtblkcnt_xfs_da_args_61223 rmtblkcnt xfs_da_args 0 61223 &enable_so_rx_buffersize_b43_dmaring_61223 nohasharray
166436 +enable_so_register_chrdev_region_fndecl_61223 register_chrdev_region fndecl 2-1 61223 &enable_so_rmtblkcnt_xfs_da_args_61223
166437 +enable_so_rx_tail_len_pn533_frame_ops_61226 rx_tail_len pn533_frame_ops 0 61226 NULL
166438 +enable_so_acpi_ev_execute_reg_method_fndecl_61227 acpi_ev_execute_reg_method fndecl 2 61227 NULL
166439 +enable_so_resource_clip_fndecl_61231 resource_clip fndecl 2-3 61231 NULL
166440 +enable_so_size_ceph_mds_reply_inode_61235 size ceph_mds_reply_inode 0 61235 NULL
166441 +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
166442 +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
166443 +enable_so_tipc_add_tlv_fndecl_61239 tipc_add_tlv fndecl 4 61239 NULL
166444 +enable_so_len_ipath_verbs_txreq_61242 len ipath_verbs_txreq 0 61242 NULL nohasharray
166445 +enable_so_hidraw_get_report_fndecl_61242 hidraw_get_report fndecl 3 61242 &enable_so_len_ipath_verbs_txreq_61242
166446 +enable_so_rcar_dmac_prep_dma_cyclic_fndecl_61249 rcar_dmac_prep_dma_cyclic fndecl 4-3 61249 NULL
166447 +enable_so_ext4_reserve_inode_write_fndecl_61253 ext4_reserve_inode_write fndecl 0 61253 NULL nohasharray
166448 +enable_so_CombinedStatusBufferLength_DAC960_Controller_61253 CombinedStatusBufferLength DAC960_Controller 0 61253 &enable_so_ext4_reserve_inode_write_fndecl_61253
166449 +enable_so_b_blocknr_buffer_head_61260 b_blocknr buffer_head 0 61260 NULL
166450 +enable_so_key_create_or_update_fndecl_61266 key_create_or_update fndecl 5 61266 NULL nohasharray
166451 +enable_so____copy_from_user_fndecl_61266 ___copy_from_user fndecl 0 61266 &enable_so_key_create_or_update_fndecl_61266
166452 +enable_so_split_boundary_dm_origin_61269 split_boundary dm_origin 0 61269 NULL
166453 +enable_so_len_ubifs_zbranch_61279 len ubifs_zbranch 0 61279 NULL
166454 +enable_so_h_minimode_61280 h minimode 0 61280 NULL
166455 +enable_so_i_file_acl_ext4_inode_info_61282 i_file_acl ext4_inode_info 0 61282 NULL
166456 +enable_so_smk_write_ambient_fndecl_61288 smk_write_ambient fndecl 3 61288 NULL
166457 +enable_so_dataSgeOffset_mpt_ioctl_command_61289 dataSgeOffset mpt_ioctl_command 0 61289 NULL
166458 +enable_so_jpg_nbufs_vardecl_61299 jpg_nbufs vardecl 0 61299 NULL nohasharray
166459 +enable_so_it87_device_add_fndecl_61299 it87_device_add fndecl 1 61299 &enable_so_jpg_nbufs_vardecl_61299
166460 +enable_so_compat_mpctl_ioctl_fndecl_61300 compat_mpctl_ioctl fndecl 2 61300 NULL
166461 +enable_so_efs_nfs_get_inode_fndecl_61302 efs_nfs_get_inode fndecl 2 61302 NULL
166462 +enable_so_fat_length_fat_floppy_defaults_61308 fat_length fat_floppy_defaults 0 61308 NULL
166463 +enable_so_ufx_i2c_configure_fndecl_61311 ufx_i2c_configure fndecl 0 61311 NULL
166464 +enable_so_wlcore_smart_config_decode_event_fndecl_61313 wlcore_smart_config_decode_event fndecl 2-4 61313 NULL nohasharray
166465 +enable_so_snic_max_qdepth_vardecl_61313 snic_max_qdepth vardecl 0 61313 &enable_so_wlcore_smart_config_decode_event_fndecl_61313
166466 +enable_so_dvb_ca_en50221_init_fndecl_61317 dvb_ca_en50221_init fndecl 4 61317 NULL
166467 +enable_so_s3c_hsotg_rx_data_fndecl_61321 s3c_hsotg_rx_data fndecl 3 61321 NULL
166468 +enable_so_ufs_iget_fndecl_61332 ufs_iget fndecl 2 61332 NULL
166469 +enable_so_rtl2830_regmap_write_fndecl_61335 rtl2830_regmap_write fndecl 3 61335 NULL
166470 +enable_so_wbuf_len_jffs2_sb_info_61340 wbuf_len jffs2_sb_info 0 61340 NULL
166471 +enable_so_iscsit_put_login_tx_fndecl_61345 iscsit_put_login_tx fndecl 3 61345 NULL
166472 +enable_so_rw_copy_check_uvector_fndecl_61351 rw_copy_check_uvector fndecl 0-3 61351 NULL nohasharray
166473 +enable_so_v4l2_ctrl_new_std_fndecl_61351 v4l2_ctrl_new_std fndecl 5-4-7 61351 &enable_so_rw_copy_check_uvector_fndecl_61351
166474 +enable_so_size_sge_fl_61353 size sge_fl 0 61353 NULL
166475 +enable_so_conn_num_hci_conn_list_req_61354 conn_num hci_conn_list_req 0 61354 NULL
166476 +enable_so_hfs_get_block_fndecl_61360 hfs_get_block fndecl 2 61360 NULL
166477 +enable_so_snd_cs46xx_io_read_fndecl_61365 snd_cs46xx_io_read fndecl 5 61365 NULL
166478 +enable_so_handle_response_icmp_fndecl_61366 handle_response_icmp fndecl 7 61366 NULL
166479 +enable_so_tx_headroom_libipw_device_61370 tx_headroom libipw_device 0 61370 NULL
166480 +enable_so_sync_dirty_buffer_fndecl_61371 sync_dirty_buffer fndecl 0 61371 NULL
166481 +enable_so_data_dma_usb_onetouch_61372 data_dma usb_onetouch 0 61372 NULL
166482 +enable_so_devs_max_btrfs_raid_attr_61376 devs_max btrfs_raid_attr 0 61376 NULL
166483 +enable_so_bfa_cb_ioim_done_fndecl_61381 bfa_cb_ioim_done fndecl 7 61381 NULL
166484 +enable_so_ip6gre_tunnel_change_mtu_fndecl_61385 ip6gre_tunnel_change_mtu fndecl 2 61385 NULL
166485 +enable_so_sections_per_block_vardecl_memory_c_61386 sections_per_block vardecl_memory.c 0 61386 NULL nohasharray
166486 +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
166487 +enable_so_xfs_dir3_data_read_fndecl_61387 xfs_dir3_data_read fndecl 3 61387 NULL
166488 +enable_so_npages_nfs_page_array_61390 npages nfs_page_array 0 61390 NULL nohasharray
166489 +enable_so_num_msix_vectors_i40evf_adapter_61390 num_msix_vectors i40evf_adapter 0 61390 &enable_so_npages_nfs_page_array_61390
166490 +enable_so_byte_len_at24_platform_data_61393 byte_len at24_platform_data 0 61393 NULL
166491 +enable_so___pci_register_driver_fndecl_61400 __pci_register_driver fndecl 0 61400 NULL
166492 +enable_so_tkip_countermeasures_local_info_61401 tkip_countermeasures local_info 0 61401 NULL
166493 +enable_so_alloc_ts_config_fndecl_61404 alloc_ts_config fndecl 1 61404 NULL
166494 +enable_so_buf_sz_vardecl_stmmac_main_c_61408 buf_sz vardecl_stmmac_main.c 0 61408 NULL
166495 +enable_so_rx_ring_size_rx_queue_61409 rx_ring_size rx_queue 0 61409 NULL
166496 +enable_so_pcpu_alloc_alloc_info_fndecl_61414 pcpu_alloc_alloc_info fndecl 1-2 61414 NULL nohasharray
166497 +enable_so_keylen_tcp_md5sig_key_61414 keylen tcp_md5sig_key 0 61414 &enable_so_pcpu_alloc_alloc_info_fndecl_61414
166498 +enable_so_size_aper_size_info_lvl2_61417 size aper_size_info_lvl2 0 61417 NULL nohasharray
166499 +enable_so_get_pas_size_fndecl_61417 get_pas_size fndecl 0 61417 &enable_so_size_aper_size_info_lvl2_61417
166500 +enable_so_nservers_mc5_params_61428 nservers mc5_params 0 61428 NULL nohasharray
166501 +enable_so_tst_size_idt77252_dev_61428 tst_size idt77252_dev 0 61428 &enable_so_nservers_mc5_params_61428
166502 +enable_so_quirk_simultaneous_discovery_read_fndecl_61433 quirk_simultaneous_discovery_read fndecl 3 61433 NULL
166503 +enable_so_raw_setsockopt_fndecl_61435 raw_setsockopt fndecl 5 61435 NULL nohasharray
166504 +enable_so_length_drm_mode_create_blob_61435 length drm_mode_create_blob 0 61435 &enable_so_raw_setsockopt_fndecl_61435 nohasharray
166505 +enable_so_rows_omap4_keypad_61435 rows omap4_keypad 0 61435 &enable_so_length_drm_mode_create_blob_61435
166506 +enable_so_nd_opt_len_nd_opt_hdr_61437 nd_opt_len nd_opt_hdr 0 61437 NULL
166507 +enable_so_lbs_rdbbp_read_fndecl_61438 lbs_rdbbp_read fndecl 3 61438 NULL
166508 +enable_so_group_size_efs_sb_info_61441 group_size efs_sb_info 0 61441 NULL
166509 +enable_so_bulk_out_size_usb_serial_driver_61450 bulk_out_size usb_serial_driver 0 61450 NULL
166510 +enable_so_total_size_iscsi_segment_61454 total_size iscsi_segment 0 61454 NULL
166511 +enable_so_ocfs2_zero_range_for_truncate_fndecl_61461 ocfs2_zero_range_for_truncate fndecl 3-4 61461 NULL nohasharray
166512 +enable_so_next_interface_id_usb_configuration_61461 next_interface_id usb_configuration 0 61461 &enable_so_ocfs2_zero_range_for_truncate_fndecl_61461
166513 +enable_so_ath6kl_keepalive_read_fndecl_61468 ath6kl_keepalive_read fndecl 3 61468 NULL
166514 +enable_so_irlan_client_ctrl_connect_confirm_fndecl_61475 irlan_client_ctrl_connect_confirm fndecl 5 61475 NULL
166515 +enable_so_ubi_eba_write_leb_st_fndecl_61476 ubi_eba_write_leb_st fndecl 5 61476 NULL
166516 +enable_so_buf_kern_offset_ebt_entries_buf_state_61478 buf_kern_offset ebt_entries_buf_state 0 61478 NULL
166517 +enable_so_dreq_iss_dccp_request_sock_61480 dreq_iss dccp_request_sock 0 61480 NULL
166518 +enable_so_radix_tree_maybe_preload_fndecl_61481 radix_tree_maybe_preload fndecl 0 61481 NULL
166519 +enable_so_new_chunk_mdp_superblock_s_61482 new_chunk mdp_superblock_s 0 61482 NULL
166520 +enable_so_nmatches_tcf_ematch_tree_hdr_61486 nmatches tcf_ematch_tree_hdr 0 61486 NULL
166521 +enable_so_nlen_ubifs_dent_node_61488 nlen ubifs_dent_node 0 61488 NULL
166522 +enable_so_adau17x1_set_dai_pll_fndecl_61491 adau17x1_set_dai_pll fndecl 4-5 61491 NULL nohasharray
166523 +enable_so_generic_file_read_iter_fndecl_61491 generic_file_read_iter fndecl 0 61491 &enable_so_adau17x1_set_dai_pll_fndecl_61491 nohasharray
166524 +enable_so_dispatch_proc_write_fndecl_61491 dispatch_proc_write fndecl 3 61491 &enable_so_generic_file_read_iter_fndecl_61491
166525 +enable_so_rs_init_fndecl_61492 rs_init fndecl 6-1 61492 NULL
166526 +enable_so_f_adc_hackrf_dev_61493 f_adc hackrf_dev 0 61493 NULL
166527 +enable_so_ccp_init_data_fndecl_61495 ccp_init_data fndecl 5-4 61495 NULL nohasharray
166528 +enable_so_writing_st_buffer_61495 writing st_buffer 0 61495 &enable_so_ccp_init_data_fndecl_61495
166529 +enable_so_vb_size_drm_savage_cmdbuf_61501 vb_size drm_savage_cmdbuf 0 61501 NULL
166530 +enable_so_mgag200_gem_create_fndecl_61507 mgag200_gem_create fndecl 2 61507 NULL nohasharray
166531 +enable_so_width_pwc_device_61507 width pwc_device 0 61507 &enable_so_mgag200_gem_create_fndecl_61507
166532 +enable_so_count_sgentry_61508 count sgentry 0 61508 NULL
166533 +enable_so_depth_cx8800_fmt_61510 depth cx8800_fmt 0 61510 NULL
166534 +enable_so_maxcontacts_wtp_data_61511 maxcontacts wtp_data 0 61511 NULL
166535 +enable_so_wpa_enabled_libipw_device_61513 wpa_enabled libipw_device 0 61513 NULL nohasharray
166536 +enable_so_total_sect_fat_boot_sector_61513 total_sect fat_boot_sector 0 61513 &enable_so_wpa_enabled_libipw_device_61513
166537 +enable_so_nfs_fscache_get_super_cookie_fndecl_61520 nfs_fscache_get_super_cookie fndecl 3 61520 NULL
166538 +enable_so_sys_write_fndecl_61526 sys_write fndecl 3-0 61526 NULL
166539 +enable_so_irq_base_regmap_irq_chip_data_61532 irq_base regmap_irq_chip_data 0 61532 NULL
166540 +enable_so_strlcpy_fndecl_61539 strlcpy fndecl 0 61539 NULL
166541 +enable_so_drm_buffer_alloc_fndecl_61542 drm_buffer_alloc fndecl 2 61542 NULL
166542 +enable_so_osst_do_scsi_fndecl_61545 osst_do_scsi fndecl 4 61545 NULL
166543 +enable_so_iterate_dir_item_fndecl_61553 iterate_dir_item fndecl 0 61553 NULL
166544 +enable_so_rts_threshold_read_fndecl_61555 rts_threshold_read fndecl 3 61555 NULL
166545 +enable_so_datalen_iscsi_tcp_recv_61556 datalen iscsi_tcp_recv 0 61556 NULL
166546 +enable_so_xdr_init_decode_pages_fndecl_61557 xdr_init_decode_pages fndecl 4 61557 NULL
166547 +enable_so_aoedev_flush_fndecl_61565 aoedev_flush fndecl 2 61565 NULL
166548 +enable_so_ei_block_ext4_extent_idx_61567 ei_block ext4_extent_idx 0 61567 NULL nohasharray
166549 +enable_so_mtip_hw_read_flags_fndecl_61567 mtip_hw_read_flags fndecl 3 61567 &enable_so_ei_block_ext4_extent_idx_61567
166550 +enable_so_pos_in_item_tree_balance_61583 pos_in_item tree_balance 0 61583 NULL
166551 +enable_so_ieee80211_if_read_rc_rateidx_mcs_mask_5ghz_fndecl_61588 ieee80211_if_read_rc_rateidx_mcs_mask_5ghz fndecl 3 61588 NULL
166552 +enable_so_usb_internal_control_msg_fndecl_61589 usb_internal_control_msg fndecl 5-2 61589 NULL
166553 +enable_so_blkdev_issue_write_same_fndecl_61596 blkdev_issue_write_same fndecl 3-2 61596 NULL
166554 +enable_so_hdisplay_moderec_61597 hdisplay moderec 0 61597 NULL
166555 +enable_so___hci_cmd_sync_fndecl_61598 __hci_cmd_sync fndecl 3 61598 NULL
166556 +enable_so_ext4_max_size_fndecl_61600 ext4_max_size fndecl 0-1 61600 NULL
166557 +enable_so_head_align_brcmf_sdio_61610 head_align brcmf_sdio 0 61610 NULL nohasharray
166558 +enable_so_filternum_dvb_demux_61610 filternum dvb_demux 0 61610 &enable_so_head_align_brcmf_sdio_61610
166559 +enable_so_mic_virtio_copy_to_user_fndecl_61611 mic_virtio_copy_to_user fndecl 3-4 61611 NULL nohasharray
166560 +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
166561 +enable_so_btrfs_chunk_item_size_fndecl_61613 btrfs_chunk_item_size fndecl 0-1 61613 NULL
166562 +enable_so_write_file_debug_fndecl_61615 write_file_debug fndecl 3 61615 NULL
166563 +enable_so_eth_change_mtu_fndecl_61617 eth_change_mtu fndecl 2 61617 NULL
166564 +enable_so_af_alg_make_sg_fndecl_61624 af_alg_make_sg fndecl 0-3 61624 NULL
166565 +enable_so_efx_tx_max_skb_descs_fndecl_61628 efx_tx_max_skb_descs fndecl 0 61628 NULL
166566 +enable_so_ext4_xattr_shift_entries_fndecl_61629 ext4_xattr_shift_entries fndecl 2 61629 NULL
166567 +enable_so____alloc_bootmem_node_nopanic_fndecl_61630 ___alloc_bootmem_node_nopanic fndecl 3-2-4-5 61630 NULL
166568 +enable_so_nr_slots_b43_dmaring_61631 nr_slots b43_dmaring 0 61631 NULL
166569 +enable_so_bio_advance_fndecl_61635 bio_advance fndecl 2 61635 NULL
166570 +enable_so_btrfsic_process_written_block_fndecl_61638 btrfsic_process_written_block fndecl 2 61638 NULL
166571 +enable_so_ieee80211_if_read_dropped_frames_ttl_fndecl_61639 ieee80211_if_read_dropped_frames_ttl fndecl 3 61639 NULL
166572 +enable_so_iwl_dbgfs_sram_read_fndecl_61642 iwl_dbgfs_sram_read fndecl 3 61642 NULL nohasharray
166573 +enable_so_security_getprocattr_fndecl_61642 security_getprocattr fndecl 0 61642 &enable_so_iwl_dbgfs_sram_read_fndecl_61642
166574 +enable_so_spidev_write_fndecl_61645 spidev_write fndecl 3 61645 NULL
166575 +enable_so_vc_bottom_vc_data_61647 vc_bottom vc_data 0 61647 NULL nohasharray
166576 +enable_so_sci_req_tx_bytes_fndecl_61647 sci_req_tx_bytes fndecl 0 61647 &enable_so_vc_bottom_vc_data_61647 nohasharray
166577 +enable_so_index_count_applesmc_registers_61647 index_count applesmc_registers 0 61647 &enable_so_sci_req_tx_bytes_fndecl_61647
166578 +enable_so_height_cx23885_dev_61651 height cx23885_dev 0 61651 NULL
166579 +enable_so_security_socket_sendmsg_fndecl_61654 security_socket_sendmsg fndecl 0 61654 NULL
166580 +enable_so_anode_lookup_fndecl_61656 anode_lookup fndecl 0-3-2 61656 NULL
166581 +enable_so_sdio_align_size_fndecl_61658 sdio_align_size fndecl 0-2 61658 NULL
166582 +enable_so_min_io_size_ubi_device_info_61673 min_io_size ubi_device_info 0 61673 NULL
166583 +enable_so_sys_msgsnd_fndecl_61674 sys_msgsnd fndecl 3 61674 NULL nohasharray
166584 +enable_so_comm_write_fndecl_61674 comm_write fndecl 3 61674 &enable_so_sys_msgsnd_fndecl_61674
166585 +enable_so_len_l2cap_cmd_hdr_61676 len l2cap_cmd_hdr 0 61676 NULL
166586 +enable_so_sd_fsb2bb_shift_gfs2_sbd_61677 sd_fsb2bb_shift gfs2_sbd 0 61677 NULL
166587 +enable_so_page_size_ms_boot_attr_info_61681 page_size ms_boot_attr_info 0 61681 NULL
166588 +enable_so_sv_max_mesg_svc_serv_61683 sv_max_mesg svc_serv 0 61683 NULL
166589 +enable_so_SyS_io_getevents_fndecl_61684 SyS_io_getevents fndecl 3 61684 NULL
166590 +enable_so_ip_clusters_ocfs2_inode_info_61689 ip_clusters ocfs2_inode_info 0 61689 NULL
166591 +enable_so_ipath_rkey_ok_fndecl_61691 ipath_rkey_ok fndecl 3-4 61691 NULL nohasharray
166592 +enable_so_cma_set_req_event_data_fndecl_61691 cma_set_req_event_data fndecl 4 61691 &enable_so_ipath_rkey_ok_fndecl_61691
166593 +enable_so_ieee80211_rx_mgmt_assoc_resp_fndecl_61694 ieee80211_rx_mgmt_assoc_resp fndecl 3 61694 NULL
166594 +enable_so_segnum_nilfs_segment_entry_61704 segnum nilfs_segment_entry 0 61704 NULL
166595 +enable_so_find_key_fndecl_61711 find_key fndecl 2 61711 NULL
166596 +enable_so_paclen_ax25_cb_61712 paclen ax25_cb 0 61712 NULL
166597 +enable_so_xtypecpy_gru_control_block_extended_61714 xtypecpy gru_control_block_extended 0 61714 NULL
166598 +enable_so_BytesPerSector_ms_lib_ctrl_61717 BytesPerSector ms_lib_ctrl 0 61717 NULL
166599 +enable_so_do_lfb_size_fndecl_61720 do_lfb_size fndecl 0 61720 NULL
166600 +enable_so_dm_bufio_new_fndecl_61727 dm_bufio_new fndecl 2 61727 NULL
166601 +enable_so_btrfs_prev_leaf_fndecl_61728 btrfs_prev_leaf fndecl 0 61728 NULL
166602 +enable_so_exit_info_2_vmcb_control_area_61734 exit_info_2 vmcb_control_area 0 61734 NULL
166603 +enable_so_n_patterns_cfg80211_wowlan_61737 n_patterns cfg80211_wowlan 0 61737 NULL
166604 +enable_so_pci_msix_vec_count_fndecl_61742 pci_msix_vec_count fndecl 0 61742 NULL
166605 +enable_so_count_nfs_pgio_args_61745 count nfs_pgio_args 0 61745 NULL nohasharray
166606 +enable_so_wmi_call_fndecl_61745 wmi_call fndecl 4 61745 &enable_so_count_nfs_pgio_args_61745
166607 +enable_so_drbd_recv_short_fndecl_61748 drbd_recv_short fndecl 3-0 61748 NULL nohasharray
166608 +enable_so_smt_add_frame_len_fndecl_61748 smt_add_frame_len fndecl 2 61748 &enable_so_drbd_recv_short_fndecl_61748
166609 +enable_so_mon_buff_area_alloc_fndecl_61752 mon_buff_area_alloc fndecl 2 61752 NULL
166610 +enable_so_SYSC_add_key_fndecl_61756 SYSC_add_key fndecl 4 61756 NULL
166611 +enable_so_sl_count_ip_sf_socklist_61758 sl_count ip_sf_socklist 0 61758 NULL
166612 +enable_so_rsp_residual_count_sts_entry_24xx_61762 rsp_residual_count sts_entry_24xx 0 61762 NULL
166613 +enable_so_len_s_skfp_ioctl_61764 len s_skfp_ioctl 0 61764 NULL
166614 +enable_so_height_zr364xx_camera_61781 height zr364xx_camera 0 61781 NULL nohasharray
166615 +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
166616 +enable_so_pclk_max_ov6650_61784 pclk_max ov6650 0 61784 NULL
166617 +enable_so_xdr_enter_page_fndecl_61791 xdr_enter_page fndecl 2 61791 NULL
166618 +enable_so_num_gpios_htcpld_chip_platform_data_61792 num_gpios htcpld_chip_platform_data 0 61792 NULL
166619 +enable_so_address_length_pcc_memory_resource_61793 address_length pcc_memory_resource 0 61793 NULL
166620 +enable_so_num_arfs_vnic_enet_config_61794 num_arfs vnic_enet_config 0 61794 NULL
166621 +enable_so_size_snd_cs46xx_region_61796 size snd_cs46xx_region 0 61796 NULL
166622 +enable_so_vxfs_bmap_typed_fndecl_61801 vxfs_bmap_typed fndecl 0-2 61801 NULL
166623 +enable_so_imm_count_iscsi_task_61804 imm_count iscsi_task 0 61804 NULL
166624 +enable_so_end_map_range_61813 end map_range 0 61813 NULL nohasharray
166625 +enable_so_fat_alloc_clusters_fndecl_61813 fat_alloc_clusters fndecl 0 61813 &enable_so_end_map_range_61813
166626 +enable_so_len_nfs_createargs_61814 len nfs_createargs 0 61814 NULL
166627 +enable_so_m_rsumsize_xfs_mount_61815 m_rsumsize xfs_mount 0 61815 NULL
166628 +enable_so_ttm_get_pages_fndecl_61821 ttm_get_pages fndecl 2 61821 NULL
166629 +enable_so_bnx2x_init_wr_zp_fndecl_61822 bnx2x_init_wr_zp fndecl 3 61822 NULL
166630 +enable_so_tracing_resize_saved_cmdlines_fndecl_61823 tracing_resize_saved_cmdlines fndecl 1 61823 NULL
166631 +enable_so_SYSC_set_mempolicy_fndecl_61827 SYSC_set_mempolicy fndecl 3 61827 NULL
166632 +enable_so_xfs_bulkstat_one_fndecl_61834 xfs_bulkstat_one fndecl 2 61834 NULL nohasharray
166633 +enable_so_txq_req_tg3_61834 txq_req tg3 0 61834 &enable_so_xfs_bulkstat_one_fndecl_61834
166634 +enable_so_num_virt_counters_op_x86_model_spec_61835 num_virt_counters op_x86_model_spec 0 61835 NULL
166635 +enable_so_size_rocker_dma_ring_info_61839 size rocker_dma_ring_info 0 61839 NULL
166636 +enable_so_start_segno_free_segmap_info_61843 start_segno free_segmap_info 0 61843 NULL
166637 +enable_so_ocfs2_xattr_bucket_find_fndecl_61853 ocfs2_xattr_bucket_find fndecl 0-5 61853 NULL
166638 +enable_so_dma_len_rx_fst_card_info_61862 dma_len_rx fst_card_info 0 61862 NULL
166639 +enable_so_num_mpts_mlx4_caps_61866 num_mpts mlx4_caps 0 61866 NULL
166640 +enable_so_f_read_portcntrs_qib_devdata_61868 f_read_portcntrs qib_devdata 0 61868 NULL
166641 +enable_so___section_nr_fndecl_61869 __section_nr fndecl 0 61869 NULL
166642 +enable_so_nfs4_file_fsync_fndecl_61872 nfs4_file_fsync fndecl 2-3 61872 NULL
166643 +enable_so_handle_eviocgbit_fndecl_61874 handle_eviocgbit fndecl 3 61874 NULL
166644 +enable_so_wm5100_set_fll_fndecl_61876 wm5100_set_fll fndecl 4-5 61876 NULL nohasharray
166645 +enable_so_wil_vring_init_tx_fndecl_61876 wil_vring_init_tx fndecl 3 61876 &enable_so_wm5100_set_fll_fndecl_61876
166646 +enable_so_bq_textcnt_max98095_priv_61877 bq_textcnt max98095_priv 0 61877 NULL
166647 +enable_so_mptscsih_change_queue_depth_fndecl_61879 mptscsih_change_queue_depth fndecl 2 61879 NULL
166648 +enable_so_virtinput_cfg_select_fndecl_61880 virtinput_cfg_select fndecl 0 61880 NULL
166649 +enable_so_ehci_urb_done_fndecl_61889 ehci_urb_done fndecl 3 61889 NULL
166650 +enable_so_vp_find_vqs_fndecl_61892 vp_find_vqs fndecl 2 61892 NULL
166651 +enable_so_find_group_orlov_fndecl_61896 find_group_orlov fndecl 0 61896 NULL
166652 +enable_so_b43_plcp_get_bitrate_idx_ofdm_fndecl_61900 b43_plcp_get_bitrate_idx_ofdm fndecl 0 61900 NULL
166653 +enable_so_srp_alloc_iu_fndecl_61904 srp_alloc_iu fndecl 2 61904 NULL nohasharray
166654 +enable_so_MaxRecvDataSegmentLength_iscsi_conn_ops_61904 MaxRecvDataSegmentLength iscsi_conn_ops 0 61904 &enable_so_srp_alloc_iu_fndecl_61904
166655 +enable_so_maxframe_size_fc_rport_61909 maxframe_size fc_rport 0 61909 NULL
166656 +enable_so_rxsize_channel_data_61912 rxsize channel_data 0 61912 NULL
166657 +enable_so_scsi_track_queue_full_fndecl_61916 scsi_track_queue_full fndecl 2 61916 NULL
166658 +enable_so_cxd2820r_wr_regs_i2c_fndecl_61922 cxd2820r_wr_regs_i2c fndecl 5 61922 NULL
166659 +enable_so_pino_nlink_jffs2_inode_cache_61933 pino_nlink jffs2_inode_cache 0 61933 NULL
166660 +enable_so_net2272_ep_read_fndecl_61935 net2272_ep_read fndecl 0 61935 NULL
166661 +enable_so_alloc_size_ttm_pool_opts_61945 alloc_size ttm_pool_opts 0 61945 NULL
166662 +enable_so_rx_std_ring_mask_tg3_61948 rx_std_ring_mask tg3 0 61948 NULL
166663 +enable_so_pfid_bnx2x_61952 pfid bnx2x 0 61952 NULL
166664 +enable_so_next_ldtentry_61954 next ldtentry 0 61954 NULL
166665 +enable_so_ntrips___thermal_zone_61955 ntrips __thermal_zone 0 61955 NULL
166666 +enable_so_indirect_size_srp_target_port_61962 indirect_size srp_target_port 0 61962 NULL
166667 +enable_so_s_maxbytes_super_block_61963 s_maxbytes super_block 0 61963 NULL
166668 +enable_so_periods_min_snd_pcm_hardware_61965 periods_min snd_pcm_hardware 0 61965 NULL
166669 +enable_so_radeon_audio_calc_cts_fndecl_61966 radeon_audio_calc_cts fndecl 1-4 61966 NULL
166670 +enable_so_nfs_set_pgio_error_fndecl_61975 nfs_set_pgio_error fndecl 3 61975 NULL
166671 +enable_so_physical_for_dev_replace_scrub_page_61977 physical_for_dev_replace scrub_page 0 61977 NULL
166672 +enable_so_qla4xxx_alloc_work_fndecl_61982 qla4xxx_alloc_work fndecl 2 61982 NULL
166673 +enable_so_x25_pacsize_to_bytes_fndecl_61983 x25_pacsize_to_bytes fndecl 0 61983 NULL
166674 +enable_so_qib_verbs_send_dma_fndecl_61985 qib_verbs_send_dma fndecl 7-5-6-3 61985 NULL
166675 +enable_so_opts1_de_desc_61986 opts1 de_desc 0 61986 NULL nohasharray
166676 +enable_so_sub_stripes_map_lookup_61986 sub_stripes map_lookup 0 61986 &enable_so_opts1_de_desc_61986
166677 +enable_so_copydesc_user_fndecl_61988 copydesc_user fndecl 3 61988 NULL
166678 +enable_so_vblank_panel_info_61990 vblank panel_info 0 61990 NULL
166679 +enable_so_num_srq_mlx4_profile_61993 num_srq mlx4_profile 0 61993 NULL
166680 +enable_so_iscsi_login_tx_data_fndecl_61998 iscsi_login_tx_data fndecl 4 61998 NULL
166681 +enable_so_sisusb_write_fndecl_62001 sisusb_write fndecl 3 62001 NULL
166682 +enable_so_sc_reader_svcxprt_rdma_62004 sc_reader svcxprt_rdma 0 62004 NULL
166683 +enable_so___add_discard_entry_fndecl_62006 __add_discard_entry fndecl 4-5 62006 NULL
166684 +enable_so_s3c_hsotg_set_ep_maxpacket_fndecl_62008 s3c_hsotg_set_ep_maxpacket fndecl 3 62008 NULL
166685 +enable_so_ext4_ext_convert_to_initialized_fndecl_62009 ext4_ext_convert_to_initialized fndecl 0 62009 NULL
166686 +enable_so_length_snd_efw_transaction_62012 length snd_efw_transaction 0 62012 NULL
166687 +enable_so_memblock_setclr_flag_fndecl_62013 memblock_setclr_flag fndecl 2-1 62013 NULL
166688 +enable_so_size_mtd_blktrans_dev_62024 size mtd_blktrans_dev 0 62024 NULL
166689 +enable_so_nf_bridge_encap_header_len_fndecl_62025 nf_bridge_encap_header_len fndecl 0 62025 NULL
166690 +enable_so_filter_count_rx_used_efx_nic_type_62026 filter_count_rx_used efx_nic_type 0 62026 NULL
166691 +enable_so_encode_diropargs_fndecl_62031 encode_diropargs fndecl 4 62031 NULL
166692 +enable_so_num_qps_mlx4_caps_62033 num_qps mlx4_caps 0 62033 NULL
166693 +enable_so_n_rx_channels_efx_nic_62034 n_rx_channels efx_nic 0 62034 NULL
166694 +enable_so_dev_sectors_r10conf_62035 dev_sectors r10conf 0 62035 NULL
166695 +enable_so_set_advertising_fndecl_62037 set_advertising fndecl 4 62037 NULL
166696 +enable_so_tfcpad_xfrm_state_62038 tfcpad xfrm_state 0 62038 NULL
166697 +enable_so_init_rs_fndecl_62042 init_rs fndecl 5-1 62042 NULL nohasharray
166698 +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
166699 +enable_so_online_queues_nvme_dev_62043 online_queues nvme_dev 0 62043 NULL
166700 +enable_so_flag_count_sg_simple_element_62044 flag_count sg_simple_element 0 62044 NULL
166701 +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
166702 +enable_so_entries_size_ebt_replace_62051 entries_size ebt_replace 0 62051 NULL
166703 +enable_so_regmap_spi_read_fndecl_62058 regmap_spi_read fndecl 3-5 62058 NULL
166704 +enable_so_ex_offset_extent_s_62059 ex_offset extent_s 0 62059 NULL
166705 +enable_so_num_attr_vgastate_62064 num_attr vgastate 0 62064 NULL
166706 +enable_so_do_tty_write_fndecl_62067 do_tty_write fndecl 5 62067 NULL
166707 +enable_so_cb_stripe_unit_exofs_dt_data_map_62068 cb_stripe_unit exofs_dt_data_map 0 62068 NULL
166708 +enable_so__scsih_change_queue_depth_fndecl_62069 _scsih_change_queue_depth fndecl 2 62069 NULL
166709 +enable_so_ip_vs_send_async_fndecl_62075 ip_vs_send_async fndecl 3 62075 NULL
166710 +enable_so_wBlockSize_ms_bootblock_sysinf_62081 wBlockSize ms_bootblock_sysinf 0 62081 NULL
166711 +enable_so_ieee80211_build_probe_req_fndecl_62084 ieee80211_build_probe_req fndecl 9-7 62084 NULL
166712 +enable_so_rtsx_usb_seq_write_register_fndecl_62088 rtsx_usb_seq_write_register fndecl 3 62088 NULL
166713 +enable_so_cur_rx_pos_tegra_spi_data_62091 cur_rx_pos tegra_spi_data 0 62091 NULL
166714 +enable_so_max_xid_bnx2fc_hba_62096 max_xid bnx2fc_hba 0 62096 NULL
166715 +enable_so_bcm_recvmsg_fndecl_62099 bcm_recvmsg fndecl 3 62099 NULL nohasharray
166716 +enable_so_word3_atl1c_recv_ret_status_62099 word3 atl1c_recv_ret_status 0 62099 &enable_so_bcm_recvmsg_fndecl_62099
166717 +enable_so_task_ctx_size_pmu_62102 task_ctx_size pmu 0 62102 NULL
166718 +enable_so_ts_rate___wmi_event_txstatus_62105 ts_rate __wmi_event_txstatus 0 62105 NULL
166719 +enable_so_yoffset_fb_var_screeninfo_62110 yoffset fb_var_screeninfo 0 62110 NULL nohasharray
166720 +enable_so_bulk_out_ep_bfusb_data_62110 bulk_out_ep bfusb_data 0 62110 &enable_so_yoffset_fb_var_screeninfo_62110
166721 +enable_so_tx_queue_status_read_fndecl_62113 tx_queue_status_read fndecl 3 62113 NULL
166722 +enable_so_bo_offset_vmw_surface_offset_62116 bo_offset vmw_surface_offset 0 62116 NULL
166723 +enable_so_sched_read_attr_fndecl_62123 sched_read_attr fndecl 3 62123 NULL
166724 +enable_so_vcs_lseek_fndecl_62125 vcs_lseek fndecl 2 62125 NULL
166725 +enable_so___process_deleted_xattr_fndecl_62133 __process_deleted_xattr fndecl 4 62133 NULL
166726 +enable_so_next_setup_data_62142 next setup_data 0 62142 NULL
166727 +enable_so_drbd_recv_all_warn_fndecl_62144 drbd_recv_all_warn fndecl 3 62144 NULL
166728 +enable_so_cciss_tape_cmds_vardecl_cciss_c_62147 cciss_tape_cmds vardecl_cciss.c 0 62147 NULL
166729 +enable_so_tcp_trim_head_fndecl_62157 tcp_trim_head fndecl 3 62157 NULL
166730 +enable_so_ptrace_writedata_fndecl_62158 ptrace_writedata fndecl 4-3 62158 NULL
166731 +enable_so_map_index_to_lba_fndecl_62162 map_index_to_lba fndecl 0-1 62162 NULL
166732 +enable_so_user_frag_sctp_association_62167 user_frag sctp_association 0 62167 NULL nohasharray
166733 +enable_so_idt_vectoring_info_vcpu_vmx_62167 idt_vectoring_info vcpu_vmx 0 62167 &enable_so_user_frag_sctp_association_62167 nohasharray
166734 +enable_so_alloc_huge_page_fndecl_62167 alloc_huge_page fndecl 2 62167 &enable_so_idt_vectoring_info_vcpu_vmx_62167
166735 +enable_so_len_scrub_copy_nocow_ctx_62170 len scrub_copy_nocow_ctx 0 62170 NULL
166736 +enable_so_igb_change_mtu_fndecl_62189 igb_change_mtu fndecl 2 62189 NULL
166737 +enable_so_agent_send_response_fndecl_62193 agent_send_response fndecl 7 62193 NULL nohasharray
166738 +enable_so_eps_count_ffs_data_62193 eps_count ffs_data 0 62193 &enable_so_agent_send_response_fndecl_62193
166739 +enable_so_rose_sendmsg_fndecl_62194 rose_sendmsg fndecl 3 62194 NULL nohasharray
166740 +enable_so_dm_kvzalloc_fndecl_62194 dm_kvzalloc fndecl 1 62194 &enable_so_rose_sendmsg_fndecl_62194
166741 +enable_so_max_pkt_size_em28xx_62196 max_pkt_size em28xx 0 62196 NULL
166742 +enable_so_maxframe_caifsock_62201 maxframe caifsock 0 62201 NULL nohasharray
166743 +enable_so_wm_adsp_create_control_fndecl_62201 wm_adsp_create_control fndecl 4 62201 &enable_so_maxframe_caifsock_62201
166744 +enable_so_param_count_acpi_evaluate_info_62202 param_count acpi_evaluate_info 0 62202 NULL
166745 +enable_so_inum_size_entry_62204 inum size_entry 0 62204 NULL
166746 +enable_so_locked_rate_snd_sb_62221 locked_rate snd_sb 0 62221 NULL
166747 +enable_so_datainterval_snd_usb_endpoint_62227 datainterval snd_usb_endpoint 0 62227 NULL
166748 +enable_so_sense_len_request_62229 sense_len request 0 62229 NULL
166749 +enable_so_shmem_getpage_gfp_fndecl_62239 shmem_getpage_gfp fndecl 2 62239 NULL
166750 +enable_so_snd_pcm_alloc_vmalloc_buffer_fndecl_62240 snd_pcm_alloc_vmalloc_buffer fndecl 2 62240 NULL
166751 +enable_so_btrfs_set_extent_delalloc_fndecl_62264 btrfs_set_extent_delalloc fndecl 3-2 62264 NULL
166752 +enable_so_num_rxqs_octeon_nic_if_config_62266 num_rxqs octeon_nic_if_config 0 62266 NULL
166753 +enable_so_usable_leb_size_ubi_volume_62272 usable_leb_size ubi_volume 0 62272 NULL
166754 +enable_so_cfpkt_add_body_fndecl_62277 cfpkt_add_body fndecl 3 62277 NULL
166755 +enable_so_email_size_x509_parse_context_62283 email_size x509_parse_context 0 62283 NULL
166756 +enable_so_gx1_line_delta_fndecl_62286 gx1_line_delta fndecl 0 62286 NULL
166757 +enable_so___kvm_read_guest_page_fndecl_62291 __kvm_read_guest_page fndecl 2-5 62291 NULL
166758 +enable_so_num_arq_entries_i40e_adminq_info_62293 num_arq_entries i40e_adminq_info 0 62293 NULL
166759 +enable_so_max_io_mvumi_hba_62301 max_io mvumi_hba 0 62301 NULL
166760 +enable_so_ceph_llseek_fndecl_62305 ceph_llseek fndecl 2 62305 NULL
166761 +enable_so_sb_rbmblocks_xfs_sb_62307 sb_rbmblocks xfs_sb 0 62307 NULL
166762 +enable_so_rtl2832_sdr_convert_stream_fndecl_62308 rtl2832_sdr_convert_stream fndecl 0-4 62308 NULL
166763 +enable_so_ircomm_tty_connect_confirm_fndecl_62310 ircomm_tty_connect_confirm fndecl 4-5 62310 NULL nohasharray
166764 +enable_so_iov_data_count_iscsi_cmd_62310 iov_data_count iscsi_cmd 0 62310 &enable_so_ircomm_tty_connect_confirm_fndecl_62310
166765 +enable_so_map_extent_mft_record_fndecl_62312 map_extent_mft_record fndecl 2 62312 NULL nohasharray
166766 +enable_so_alloc_ctrl_packet_fndecl_62312 alloc_ctrl_packet fndecl 1 62312 &enable_so_map_extent_mft_record_fndecl_62312
166767 +enable_so_ss_channels_snd_rme9652_62315 ss_channels snd_rme9652 0 62315 NULL
166768 +enable_so_erst_writer_fndecl_62318 erst_writer fndecl 7 62318 NULL
166769 +enable_so_ext2_new_block_fndecl_62326 ext2_new_block fndecl 0-2 62326 NULL
166770 +enable_so_qib_get_user_pages_fndecl_62338 qib_get_user_pages fndecl 1 62338 NULL nohasharray
166771 +enable_so_hdrlen_adm8211_tx_ring_info_62338 hdrlen adm8211_tx_ring_info 0 62338 &enable_so_qib_get_user_pages_fndecl_62338 nohasharray
166772 +enable_so_bbtskipbytes_denali_nand_info_62338 bbtskipbytes denali_nand_info 0 62338 &enable_so_hdrlen_adm8211_tx_ring_info_62338
166773 +enable_so_pagf_flcount_xfs_perag_62340 pagf_flcount xfs_perag 0 62340 NULL
166774 +enable_so_reiserfs_update_sd_size_fndecl_62345 reiserfs_update_sd_size fndecl 3 62345 NULL nohasharray
166775 +enable_so_lov_emerg_alloc_fndecl_62345 lov_emerg_alloc fndecl 1 62345 &enable_so_reiserfs_update_sd_size_fndecl_62345
166776 +enable_so_write_file_spectral_bins_fndecl_62347 write_file_spectral_bins fndecl 3 62347 NULL
166777 +enable_so_pcl_status_pcl_62348 pcl_status pcl 0 62348 NULL
166778 +enable_so_C_SYSC_select_fndecl_62350 C_SYSC_select fndecl 1 62350 NULL
166779 +enable_so_mpi_resize_fndecl_62353 mpi_resize fndecl 2 62353 NULL
166780 +enable_so_raid56_parity_write_fndecl_62355 raid56_parity_write fndecl 4 62355 NULL
166781 +enable_so_ib_uverbs_modify_qp_fndecl_62360 ib_uverbs_modify_qp fndecl 3 62360 NULL nohasharray
166782 +enable_so_reglen_bfad_s_62360 reglen bfad_s 0 62360 &enable_so_ib_uverbs_modify_qp_fndecl_62360
166783 +enable_so_fm10k_iov_alloc_data_fndecl_62361 fm10k_iov_alloc_data fndecl 2 62361 NULL
166784 +enable_so_rawv6_sendmsg_fndecl_62363 rawv6_sendmsg fndecl 3 62363 NULL
166785 +enable_so_ts_read_fndecl_62364 ts_read fndecl 3 62364 NULL
166786 +enable_so_drxbsp_i2c_write_read_fndecl_62366 drxbsp_i2c_write_read fndecl 5-2 62366 NULL
166787 +enable_so_punit_base2_intel_pmc_ipc_dev_62373 punit_base2 intel_pmc_ipc_dev 0 62373 NULL
166788 +enable_so_num_subauth_cifs_sid_62374 num_subauth cifs_sid 0 62374 NULL
166789 +enable_so_num_entries_compat_arpt_replace_62377 num_entries compat_arpt_replace 0 62377 NULL nohasharray
166790 +enable_so_fib_count_nexthops_fndecl_62377 fib_count_nexthops fndecl 0 62377 &enable_so_num_entries_compat_arpt_replace_62377
166791 +enable_so_clusterip_proc_write_fndecl_62378 clusterip_proc_write fndecl 3 62378 NULL
166792 +enable_so_new_chunk_mdp_superblock_1_62380 new_chunk mdp_superblock_1 0 62380 NULL
166793 +enable_so_efx_wanted_parallelism_fndecl_62383 efx_wanted_parallelism fndecl 0 62383 NULL nohasharray
166794 +enable_so_max_cnt_ocrdma_qp_hwq_info_62383 max_cnt ocrdma_qp_hwq_info 0 62383 &enable_so_efx_wanted_parallelism_fndecl_62383
166795 +enable_so_ivsize_aead_alg_62386 ivsize aead_alg 0 62386 NULL
166796 +enable_so_m_blkbb_log_xfs_mount_62391 m_blkbb_log xfs_mount 0 62391 NULL
166797 +enable_so___generic_block_fiemap_fndecl_62394 __generic_block_fiemap fndecl 4 62394 NULL nohasharray
166798 +enable_so_xfer_to_user_fndecl_62394 xfer_to_user fndecl 3 62394 &enable_so___generic_block_fiemap_fndecl_62394
166799 +enable_so_hwCBP_td_62396 hwCBP td 0 62396 NULL
166800 +enable_so_bch_bio_max_sectors_fndecl_62400 bch_bio_max_sectors fndecl 0 62400 NULL
166801 +enable_so_len_scifioctl_node_ids_62402 len scifioctl_node_ids 0 62402 NULL
166802 +enable_so_pty_write_fndecl_62406 pty_write fndecl 3 62406 NULL nohasharray
166803 +enable_so_tnode_new_fndecl_62406 tnode_new fndecl 3 62406 &enable_so_pty_write_fndecl_62406
166804 +enable_so_segment_acpi_pci_root_62407 segment acpi_pci_root 0 62407 NULL
166805 +enable_so_rtsx_usb_get_rsp_fndecl_62408 rtsx_usb_get_rsp fndecl 2 62408 NULL nohasharray
166806 +enable_so_fill_holes_fndecl_62408 fill_holes fndecl 4-5 62408 &enable_so_rtsx_usb_get_rsp_fndecl_62408 nohasharray
166807 +enable_so_do_huge_pmd_wp_page_fndecl_62408 do_huge_pmd_wp_page fndecl 3 62408 &enable_so_fill_holes_fndecl_62408
166808 +enable_so_gfs2_log_bmap_fndecl_62411 gfs2_log_bmap fndecl 0 62411 NULL
166809 +enable_so_unmap_page_range_fndecl_62415 unmap_page_range fndecl 4-3 62415 NULL
166810 +enable_so_adap_id_pca954x_platform_mode_62418 adap_id pca954x_platform_mode 0 62418 NULL
166811 +enable_so_key_tx_rx_count_read_fndecl_62421 key_tx_rx_count_read fndecl 3 62421 NULL
166812 +enable_so_data_offset_v4l2_plane_62423 data_offset v4l2_plane 0 62423 NULL
166813 +enable_so_WIL_GET_BITS_fndecl_62424 WIL_GET_BITS fndecl 0-3-2-1 62424 NULL
166814 +enable_so_set_brk_fndecl_62430 set_brk fndecl 2 62430 NULL nohasharray
166815 +enable_so_io_size_xfs_ioend_62430 io_size xfs_ioend 0 62430 &enable_so_set_brk_fndecl_62430
166816 +enable_so_sctp_setsockopt_fndecl_62439 sctp_setsockopt fndecl 5 62439 NULL
166817 +enable_so_sum_link_node_ref_fndecl_62443 sum_link_node_ref fndecl 3-4 62443 NULL
166818 +enable_so_rx_dropped_read_fndecl_62444 rx_dropped_read fndecl 3 62444 NULL nohasharray
166819 +enable_so_openings_ahc_linux_device_62444 openings ahc_linux_device 0 62444 &enable_so_rx_dropped_read_fndecl_62444
166820 +enable_so___videobuf_copy_stream_fndecl_62450 __videobuf_copy_stream fndecl 0-4 62450 NULL
166821 +enable_so_k3_dma_prep_slave_sg_fndecl_62456 k3_dma_prep_slave_sg fndecl 3 62456 NULL
166822 +enable_so_btrfs_new_inode_fndecl_62463 btrfs_new_inode fndecl 7 62463 NULL
166823 +enable_so_lower_offset_skb_seq_state_62465 lower_offset skb_seq_state 0 62465 NULL
166824 +enable_so_ipx_recvmsg_fndecl_62469 ipx_recvmsg fndecl 3 62469 NULL
166825 +enable_so_ram_alignment_fndecl_62470 ram_alignment fndecl 0 62470 NULL
166826 +enable_so_payload_bytes_controlvm_message_header_62474 payload_bytes controlvm_message_header 0 62474 NULL
166827 +enable_so_page_size_mspro_block_data_62479 page_size mspro_block_data 0 62479 NULL
166828 +enable_so_fw_stats_bus_myri10ge_slice_state_62482 fw_stats_bus myri10ge_slice_state 0 62482 NULL
166829 +enable_so_ide_end_rq_fndecl_62486 ide_end_rq fndecl 4 62486 NULL nohasharray
166830 +enable_so_rx_ring_tail_sc92031_priv_62486 rx_ring_tail sc92031_priv 0 62486 &enable_so_ide_end_rq_fndecl_62486
166831 +enable_so_mlx5_ib_reg_user_mr_fndecl_62488 mlx5_ib_reg_user_mr fndecl 4-2-3 62488 NULL
166832 +enable_so_symsize_persistent_ram_ecc_info_62489 symsize persistent_ram_ecc_info 0 62489 NULL
166833 +enable_so_residual_len_sts_entry_fx00_62491 residual_len sts_entry_fx00 0 62491 NULL nohasharray
166834 +enable_so_dlen_ippp_ccp_reset_state_62491 dlen ippp_ccp_reset_state 0 62491 &enable_so_residual_len_sts_entry_fx00_62491
166835 +enable_so_filemap_write_and_wait_range_fndecl_62492 filemap_write_and_wait_range fndecl 0-2-3 62492 NULL nohasharray
166836 +enable_so_svc_sock_setbufsize_fndecl_62492 svc_sock_setbufsize fndecl 2 62492 &enable_so_filemap_write_and_wait_range_fndecl_62492
166837 +enable_so_evtchn_write_fndecl_62493 evtchn_write fndecl 3 62493 NULL
166838 +enable_so_try_charge_fndecl_62496 try_charge fndecl 0 62496 NULL
166839 +enable_so_vmci_transport_set_buffer_size_fndecl_62498 vmci_transport_set_buffer_size fndecl 2 62498 NULL
166840 +enable_so_max_enic_rfs_flw_tbl_62505 max enic_rfs_flw_tbl 0 62505 NULL
166841 +enable_so_rq_tailsz_smb_rqst_62506 rq_tailsz smb_rqst 0 62506 NULL
166842 +enable_so_jade_ale_bkm_hw_62507 jade_ale bkm_hw 0 62507 NULL
166843 +enable_so_sgs_per_request_skd_device_62508 sgs_per_request skd_device 0 62508 NULL
166844 +enable_so_mpage_alloc_fndecl_62512 mpage_alloc fndecl 2-3 62512 NULL
166845 +enable_so_rx_buf_sz_iadev_priv_62524 rx_buf_sz iadev_priv 0 62524 NULL
166846 +enable_so_kvm_host_page_size_fndecl_62535 kvm_host_page_size fndecl 0-2 62535 NULL
166847 +enable_so_len_ErrMsg_62547 len ErrMsg 0 62547 NULL
166848 +enable_so___ext4_get_inode_loc_fndecl_62551 __ext4_get_inode_loc fndecl 0 62551 NULL
166849 +enable_so_arm_iommu_alloc_attrs_fndecl_62553 arm_iommu_alloc_attrs fndecl 2 62553 NULL
166850 +enable_so_num_cq_entries_hba_parameters_62556 num_cq_entries hba_parameters 0 62556 NULL
166851 +enable_so_rsi_sdio_host_intf_read_pkt_fndecl_62557 rsi_sdio_host_intf_read_pkt fndecl 3 62557 NULL
166852 +enable_so_lx_framebuffer_size_fndecl_62562 lx_framebuffer_size fndecl 0 62562 NULL
166853 +enable_so_wDatagramLength_usb_cdc_ncm_dpe16_62564 wDatagramLength usb_cdc_ncm_dpe16 0 62564 NULL
166854 +enable_so_outbuf_dma_ati_remote_62567 outbuf_dma ati_remote 0 62567 NULL
166855 +enable_so_svc_pool_map_get_fndecl_62569 svc_pool_map_get fndecl 0 62569 NULL
166856 +enable_so_numscales_vardecl_longhaul_c_62570 numscales vardecl_longhaul.c 0 62570 NULL
166857 +enable_so_get_active_stripe_fndecl_62581 get_active_stripe fndecl 2 62581 NULL
166858 +enable_so_btrfs_check_data_free_space_fndecl_62583 btrfs_check_data_free_space fndecl 0 62583 NULL
166859 +enable_so_xenfb_write_fndecl_62599 xenfb_write fndecl 3 62599 NULL
166860 +enable_so_mon_bin_dev0_vardecl_mon_bin_c_62600 mon_bin_dev0 vardecl_mon_bin.c 0 62600 NULL
166861 +enable_so___alloc_bootmem_low_fndecl_62604 __alloc_bootmem_low fndecl 2-1-3 62604 NULL nohasharray
166862 +enable_so_max_header_size_irlan_cb_62604 max_header_size irlan_cb 0 62604 &enable_so___alloc_bootmem_low_fndecl_62604
166863 +enable_so_ext4_xattr_check_names_fndecl_62605 ext4_xattr_check_names fndecl 0 62605 NULL
166864 +enable_so_get_user_pages_unlocked_fndecl_62612 get_user_pages_unlocked fndecl 0-3 62612 NULL
166865 +enable_so_pci_sriov_set_totalvfs_fndecl_62615 pci_sriov_set_totalvfs fndecl 2 62615 NULL
166866 +enable_so_cell_locker_fndecl_62618 cell_locker fndecl 2 62618 NULL
166867 +enable_so_hor_offs_align_fimc_variant_62619 hor_offs_align fimc_variant 0 62619 NULL
166868 +enable_so_usb_string_fndecl_62624 usb_string fndecl 0 62624 NULL
166869 +enable_so_l2linesize_linelock_62626 l2linesize linelock 0 62626 NULL
166870 +enable_so_min_pkt_size_pktgen_dev_62629 min_pkt_size pktgen_dev 0 62629 NULL
166871 +enable_so_get_vm_area_size_fndecl_62631 get_vm_area_size fndecl 0 62631 NULL
166872 +enable_so_virtio_gpu_ttm_tt_create_fndecl_62636 virtio_gpu_ttm_tt_create fndecl 2 62636 NULL nohasharray
166873 +enable_so_wil_change_mtu_fndecl_62636 wil_change_mtu fndecl 2 62636 &enable_so_virtio_gpu_ttm_tt_create_fndecl_62636
166874 +enable_so_fs_path_prepare_for_add_fndecl_62638 fs_path_prepare_for_add fndecl 0-2 62638 NULL nohasharray
166875 +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
166876 +enable_so_fts_rtllib_device_62643 fts rtllib_device 0 62643 NULL
166877 +enable_so_cfg_sg_seg_cnt_lpfc_hba_62646 cfg_sg_seg_cnt lpfc_hba 0 62646 NULL nohasharray
166878 +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
166879 +enable_so_usb_alloc_urb_fndecl_62655 usb_alloc_urb fndecl 1 62655 NULL
166880 +enable_so_curr_len_max3421_hcd_62658 curr_len max3421_hcd 0 62658 NULL
166881 +enable_so_count_pch_gbe_rx_ring_62662 count pch_gbe_rx_ring 0 62662 NULL
166882 +enable_so_irq_max_tg3_62664 irq_max tg3 0 62664 NULL
166883 +enable_so_calculate_discard_block_size_fndecl_62667 calculate_discard_block_size fndecl 0-1 62667 NULL nohasharray
166884 +enable_so_alloc_new_reservation_fndecl_62667 alloc_new_reservation fndecl 0 62667 &enable_so_calculate_discard_block_size_fndecl_62667 nohasharray
166885 +enable_so_base_i40e_hmc_obj_info_62667 base i40e_hmc_obj_info 0 62667 &enable_so_alloc_new_reservation_fndecl_62667
166886 +enable_so_qxl_gem_object_create_fndecl_62668 qxl_gem_object_create fndecl 2 62668 NULL
166887 +enable_so_max_outstanding_tx_leaf_msg_softinfo_62669 max_outstanding_tx leaf_msg_softinfo 0 62669 NULL nohasharray
166888 +enable_so_bss_priv_size_wiphy_62669 bss_priv_size wiphy 0 62669 &enable_so_max_outstanding_tx_leaf_msg_softinfo_62669
166889 +enable_so_pci_cfg_space_size_ext_fndecl_62679 pci_cfg_space_size_ext fndecl 0 62679 NULL
166890 +enable_so_encode_rpcb_string_fndecl_62680 encode_rpcb_string fndecl 3 62680 NULL
166891 +enable_so_nvme_trans_device_id_page_fndecl_62681 nvme_trans_device_id_page fndecl 4 62681 NULL
166892 +enable_so_bpp_sh_vou_fmt_62683 bpp sh_vou_fmt 0 62683 NULL
166893 +enable_so_num_vsis_i40e_hw_capabilities_62685 num_vsis i40e_hw_capabilities 0 62685 NULL
166894 +enable_so_start_ttm_mem_reg_62688 start ttm_mem_reg 0 62688 NULL
166895 +enable_so_width_tcm_62703 width tcm 0 62703 NULL
166896 +enable_so_vmemdup_fndecl_62706 vmemdup fndecl 2 62706 NULL
166897 +enable_so_curwidth_usb_usbvision_62710 curwidth usb_usbvision 0 62710 NULL
166898 +enable_so_tx_tx_data_prepared_read_fndecl_62714 tx_tx_data_prepared_read fndecl 3 62714 NULL
166899 +enable_so_mtu_ring_info_62721 mtu ring_info 0 62721 NULL
166900 +enable_so_isr_rx_mem_overflow_read_fndecl_62722 isr_rx_mem_overflow_read fndecl 3 62722 NULL
166901 +enable_so_nvkm_parent_create__fndecl_62723 nvkm_parent_create_ fndecl 7 62723 NULL
166902 +enable_so_jffs2_write_begin_fndecl_62728 jffs2_write_begin fndecl 3 62728 NULL nohasharray
166903 +enable_so_limit_tc_sfq_qopt_62728 limit tc_sfq_qopt 0 62728 &enable_so_jffs2_write_begin_fndecl_62728 nohasharray
166904 +enable_so_wep_default_key_count_read_fndecl_62728 wep_default_key_count_read fndecl 3 62728 &enable_so_limit_tc_sfq_qopt_62728
166905 +enable_so_total_len_android_wifi_priv_cmd_62735 total_len android_wifi_priv_cmd 0 62735 NULL
166906 +enable_so_smi_read_eeprom_fndecl_62737 smi_read_eeprom fndecl 4 62737 NULL
166907 +enable_so_match_size_ebt_entry_match_62738 match_size ebt_entry_match 0 62738 NULL nohasharray
166908 +enable_so_hpi_init_message_responseV1_fndecl_62738 hpi_init_message_responseV1 fndecl 4-2 62738 &enable_so_match_size_ebt_entry_match_62738
166909 +enable_so_xfs_da_read_buf_fndecl_62739 xfs_da_read_buf fndecl 3 62739 NULL
166910 +enable_so_twa_load_sgl_fndecl_62743 twa_load_sgl fndecl 5 62743 NULL
166911 +enable_so_fs_wm9081_priv_62744 fs wm9081_priv 0 62744 NULL
166912 +enable_so_clear_extent_dirty_fndecl_62746 clear_extent_dirty fndecl 2-3 62746 NULL
166913 +enable_so_mi_first_entry_offset_nilfs_mdt_info_62749 mi_first_entry_offset nilfs_mdt_info 0 62749 NULL
166914 +enable_so_num_counters_vardecl_op_model_amd_c_62750 num_counters vardecl_op_model_amd.c 0 62750 NULL
166915 +enable_so___bioset_create_fndecl_62752 __bioset_create fndecl 2-1 62752 NULL
166916 +enable_so_min_align_pci_dev_resource_62768 min_align pci_dev_resource 0 62768 NULL
166917 +enable_so_e_value_size_ext4_xattr_entry_62783 e_value_size ext4_xattr_entry 0 62783 NULL
166918 +enable_so_tomoyo_read_fndecl_62786 tomoyo_read fndecl 3 62786 NULL
166919 +enable_so_mt2131_writeregs_fndecl_62788 mt2131_writeregs fndecl 3 62788 NULL
166920 +enable_so_dump_skip_fndecl_62793 dump_skip fndecl 2 62793 NULL
166921 +enable_so_buffer_size_tx_holding_buffer_62794 buffer_size tx_holding_buffer 0 62794 NULL
166922 +enable_so_kvm_pic_read_irq_fndecl_62795 kvm_pic_read_irq fndecl 0 62795 NULL
166923 +enable_so_len_cx24120_cmd_62796 len cx24120_cmd 0 62796 NULL
166924 +enable_so_cur_tx_netdev_private_62799 cur_tx netdev_private 0 62799 NULL
166925 +enable_so_v9fs_qid2ino_fndecl_62801 v9fs_qid2ino fndecl 0 62801 NULL
166926 +enable_so_xattr_len_ima_event_data_62811 xattr_len ima_event_data 0 62811 NULL
166927 +enable_so_head_aio_ring_62812 head aio_ring 0 62812 NULL
166928 +enable_so_capture_frlog_rme32_62817 capture_frlog rme32 0 62817 NULL
166929 +enable_so_coex_rx_win_size_mwifiex_adapter_62818 coex_rx_win_size mwifiex_adapter 0 62818 NULL
166930 +enable_so_wq_len_tx_ring_62826 wq_len tx_ring 0 62826 NULL
166931 +enable_so_gfs2_journaled_truncate_fndecl_62839 gfs2_journaled_truncate fndecl 3-2 62839 NULL
166932 +enable_so_ix2505v_write_fndecl_62840 ix2505v_write fndecl 3 62840 NULL
166933 +enable_so_calculate_node_totalpages_fndecl_62845 calculate_node_totalpages fndecl 2-3 62845 NULL
166934 +enable_so_fuse_read_fill_fndecl_62851 fuse_read_fill fndecl 4 62851 NULL
166935 +enable_so_cfs_cpt_table_alloc_fndecl_62852 cfs_cpt_table_alloc fndecl 1 62852 NULL
166936 +enable_so_func_num_vardecl_g_ffs_c_62856 func_num vardecl_g_ffs.c 0 62856 NULL
166937 +enable_so_max_register_regmap_62857 max_register regmap 0 62857 NULL
166938 +enable_so_nr_vecs_nilfs_write_info_62858 nr_vecs nilfs_write_info 0 62858 NULL
166939 +enable_so_spi_xcomm_txrx_bufs_fndecl_62860 spi_xcomm_txrx_bufs fndecl 0 62860 NULL
166940 +enable_so_il_dbgfs_power_save_status_read_fndecl_62862 il_dbgfs_power_save_status_read fndecl 3 62862 NULL
166941 +enable_so_height_tm6000_core_62864 height tm6000_core 0 62864 NULL
166942 +enable_so_c67x00_td_to_error_fndecl_62867 c67x00_td_to_error fndecl 0 62867 NULL
166943 +enable_so_ext2_max_size_fndecl_62871 ext2_max_size fndecl 0-1 62871 NULL
166944 +enable_so_i2c_hid_get_report_fndecl_62874 i2c_hid_get_report fndecl 5 62874 NULL nohasharray
166945 +enable_so_read_file_dfs_fndecl_62874 read_file_dfs fndecl 3 62874 &enable_so_i2c_hid_get_report_fndecl_62874
166946 +enable_so_qp_count_ntb_transport_ctx_62876 qp_count ntb_transport_ctx 0 62876 NULL
166947 +enable_so_xfs_dir3_leaf_read_fndecl_62878 xfs_dir3_leaf_read fndecl 3 62878 NULL
166948 +enable_so_ath6kl_set_assoc_req_ies_fndecl_62882 ath6kl_set_assoc_req_ies fndecl 3 62882 NULL
166949 +enable_so_create_kmalloc_cache_fndecl_62883 create_kmalloc_cache fndecl 2 62883 NULL
166950 +enable_so_valueblk_xfs_attr_inactive_list_62884 valueblk xfs_attr_inactive_list 0 62884 NULL
166951 +enable_so_phys_start_nvs_page_62885 phys_start nvs_page 0 62885 NULL nohasharray
166952 +enable_so_data_sge_offset_mpt2_ioctl_command_62885 data_sge_offset mpt2_ioctl_command 0 62885 &enable_so_phys_start_nvs_page_62885
166953 +enable_so_tty_audit_add_data_fndecl_62886 tty_audit_add_data fndecl 3 62886 NULL
166954 +enable_so_send_cmd_fndecl_62899 send_cmd fndecl 0 62899 NULL
166955 +enable_so_arg2__cdrp_cmd_62906 arg2 _cdrp_cmd 0 62906 NULL
166956 +enable_so_length_uvc_buffer_62907 length uvc_buffer 0 62907 NULL
166957 +enable_so_buflen_xdr_buf_62914 buflen xdr_buf 0 62914 NULL nohasharray
166958 +enable_so_n_subdevices_comedi_device_62914 n_subdevices comedi_device 0 62914 &enable_so_buflen_xdr_buf_62914
166959 +enable_so_elf_core_extra_phdrs_fndecl_62917 elf_core_extra_phdrs fndecl 0 62917 NULL
166960 +enable_so_out_size_ide_task_request_s_62924 out_size ide_task_request_s 0 62924 NULL
166961 +enable_so_uar_size_mthca_dev_lim_62925 uar_size mthca_dev_lim 0 62925 NULL
166962 +enable_so_uio_write_fndecl_62929 uio_write fndecl 3 62929 NULL
166963 +enable_so_teiup_create_fndecl_62930 teiup_create fndecl 3 62930 NULL nohasharray
166964 +enable_so_queue_size_srp_target_port_62930 queue_size srp_target_port 0 62930 &enable_so_teiup_create_fndecl_62930
166965 +enable_so_ext4_xattr_ibody_get_fndecl_62931 ext4_xattr_ibody_get fndecl 0 62931 NULL
166966 +enable_so_bfad_send_fcpt_cb_fndecl_62936 bfad_send_fcpt_cb fndecl 5 62936 NULL
166967 +enable_so_f2fs_acl_from_disk_fndecl_62937 f2fs_acl_from_disk fndecl 2 62937 NULL
166968 +enable_so_iso_callback_fndecl_62939 iso_callback fndecl 3 62939 NULL
166969 +enable_so_ovl_split_lowerdirs_fndecl_62941 ovl_split_lowerdirs fndecl 0 62941 NULL
166970 +enable_so_mtu_atmlec_config_msg_62946 mtu atmlec_config_msg 0 62946 NULL
166971 +enable_so_ax88178_change_mtu_fndecl_62947 ax88178_change_mtu fndecl 2 62947 NULL
166972 +enable_so_fixup_leb_fndecl_62955 fixup_leb fndecl 3 62955 NULL
166973 +enable_so_batadv_tt_tvlv_unicast_handler_v1_fndecl_62964 batadv_tt_tvlv_unicast_handler_v1 fndecl 5 62964 NULL
166974 +enable_so_adfs_get_block_fndecl_62966 adfs_get_block fndecl 2 62966 NULL nohasharray
166975 +enable_so_acpi_ut_create_integer_object_fndecl_62966 acpi_ut_create_integer_object fndecl 1 62966 &enable_so_adfs_get_block_fndecl_62966
166976 +enable_so_i_sblock_bfs_inode_62968 i_sblock bfs_inode 0 62968 NULL
166977 +enable_so_io_tlb_nslabs_vardecl_swiotlb_c_62972 io_tlb_nslabs vardecl_swiotlb.c 0 62972 NULL
166978 +enable_so_vmemmap_alloc_block_fndecl_62974 vmemmap_alloc_block fndecl 1 62974 NULL
166979 +enable_so_max_requests_hpt_iop_request_get_config_62975 max_requests hpt_iop_request_get_config 0 62975 NULL
166980 +enable_so_move_to_top_fndecl_62981 move_to_top fndecl 2-3 62981 NULL
166981 +enable_so_memblock_insert_region_fndecl_62987 memblock_insert_region fndecl 3-4 62987 NULL
166982 +enable_so_btrfs_copy_from_user_fndecl_62989 btrfs_copy_from_user fndecl 1-0-3 62989 NULL
166983 +enable_so_integrity_kernel_read_fndecl_62991 integrity_kernel_read fndecl 4 62991 NULL
166984 +enable_so_layout_mddev_62992 layout mddev 0 62992 NULL
166985 +enable_so_alloc_name_seq_62994 alloc name_seq 0 62994 NULL
166986 +enable_so_ocfs2_xattr_get_value_outside_fndecl_63000 ocfs2_xattr_get_value_outside fndecl 0 63000 NULL
166987 +enable_so_pagesize_flash_info_63006 pagesize flash_info 0 63006 NULL
166988 +enable_so_cache_size_raw_regmap_63010 cache_size_raw regmap 0 63010 NULL
166989 +enable_so_get_rsb_struct_fndecl_63014 get_rsb_struct fndecl 3 63014 NULL
166990 +enable_so_vb2_dc_alloc_fndecl_63021 vb2_dc_alloc fndecl 2 63021 NULL
166991 +enable_so_packets_per_second_ua101_63022 packets_per_second ua101 0 63022 NULL
166992 +enable_so_mmio_size_controller_63024 mmio_size controller 0 63024 NULL
166993 +enable_so_hci_send_cmd_fndecl_63025 hci_send_cmd fndecl 3 63025 NULL
166994 +enable_so_gpr_get_fndecl_63026 gpr_get fndecl 3-4 63026 NULL
166995 +enable_so_gspca_coarse_grained_expo_autogain_fndecl_63033 gspca_coarse_grained_expo_autogain fndecl 4-2-3 63033 NULL
166996 +enable_so_rsi_sdio_host_intf_write_pkt_fndecl_63034 rsi_sdio_host_intf_write_pkt fndecl 3 63034 NULL
166997 +enable_so_size_align_rxrpc_connection_63035 size_align rxrpc_connection 0 63035 NULL
166998 +enable_so_display_width_vivid_dev_63040 display_width vivid_dev 0 63040 NULL
166999 +enable_so_reset_psn_fndecl_63045 reset_psn fndecl 2 63045 NULL
167000 +enable_so_ttymajor_vardecl_synclink_cs_c_63046 ttymajor vardecl_synclink_cs.c 0 63046 NULL
167001 +enable_so_sizeimage_deinterlace_q_data_63050 sizeimage deinterlace_q_data 0 63050 NULL
167002 +enable_so_atl1c_change_mtu_fndecl_63051 atl1c_change_mtu fndecl 2 63051 NULL
167003 +enable_so_p54_download_eeprom_fndecl_63057 p54_download_eeprom fndecl 4 63057 NULL
167004 +enable_so_nr_perf_branch_stack_63058 nr perf_branch_stack 0 63058 NULL nohasharray
167005 +enable_so_q0_num_vecs_bna_rx_config_63058 q0_num_vecs bna_rx_config 0 63058 &enable_so_nr_perf_branch_stack_63058
167006 +enable_so_pcibios_scan_root_fndecl_63059 pcibios_scan_root fndecl 1 63059 NULL
167007 +enable_so_read_flush_fndecl_63064 read_flush fndecl 3 63064 NULL
167008 +enable_so_if_bytes_xfs_ifork_63066 if_bytes xfs_ifork 0 63066 NULL
167009 +enable_so_pic_ioport_write_fndecl_63069 pic_ioport_write fndecl 3 63069 NULL nohasharray
167010 +enable_so_writesize_onenand_chip_63069 writesize onenand_chip 0 63069 &enable_so_pic_ioport_write_fndecl_63069
167011 +enable_so_dm_ring_size_vardecl_hv_balloon_c_63071 dm_ring_size vardecl_hv_balloon.c 0 63071 NULL
167012 +enable_so_prev_algo_r5conf_63075 prev_algo r5conf 0 63075 NULL
167013 +enable_so_start_bus_pci_mmcfg_region_63086 start_bus pci_mmcfg_region 0 63086 NULL
167014 +enable_so_width_saa7134_dev_63087 width saa7134_dev 0 63087 NULL nohasharray
167015 +enable_so_s_anchor_udf_sb_info_63087 s_anchor udf_sb_info 0 63087 &enable_so_width_saa7134_dev_63087 nohasharray
167016 +enable_so_init_labels_fndecl_63087 init_labels fndecl 2 63087 &enable_so_s_anchor_udf_sb_info_63087
167017 +enable_so_nfc_hci_execute_cmd_fndecl_63097 nfc_hci_execute_cmd fndecl 5 63097 NULL
167018 +enable_so_rd_page_count_rd_dev_63098 rd_page_count rd_dev 0 63098 NULL
167019 +enable_so_get_registry_size_bnx2x_mcast_obj_63102 get_registry_size bnx2x_mcast_obj 0 63102 NULL
167020 +enable_so_size_devlog_params_63104 size devlog_params 0 63104 NULL
167021 +enable_so_drxdap_fasi_read_block_fndecl_63113 drxdap_fasi_read_block fndecl 3 63113 NULL
167022 +enable_so_ticket_len_rxkad_key_63114 ticket_len rxkad_key 0 63114 NULL
167023 +enable_so_reiserfs_get_dentry_fndecl_63118 reiserfs_get_dentry fndecl 2 63118 NULL nohasharray
167024 +enable_so_max_recv_sge_ib_qp_cap_63118 max_recv_sge ib_qp_cap 0 63118 &enable_so_reiserfs_get_dentry_fndecl_63118
167025 +enable_so_max_cqe_ib_device_attr_63121 max_cqe ib_device_attr 0 63121 NULL
167026 +enable_so_txf_size_bdx_priv_63122 txf_size bdx_priv 0 63122 NULL
167027 +enable_so_uvc_video_decode_data_fndecl_63124 uvc_video_decode_data fndecl 4 63124 NULL
167028 +enable_so_elements_array_data_63130 elements array_data 0 63130 NULL
167029 +enable_so_in_width_sh_vou_geometry_63131 in_width sh_vou_geometry 0 63131 NULL
167030 +enable_so_prism2_sta_send_mgmt_fndecl_63135 prism2_sta_send_mgmt fndecl 5 63135 NULL
167031 +enable_so_peer_cookie_len_l2tp_session_63142 peer_cookie_len l2tp_session 0 63142 NULL
167032 +enable_so_vback_porch_videomode_63152 vback_porch videomode 0 63152 NULL
167033 +enable_so_obj_order_rbd_image_header_63156 obj_order rbd_image_header 0 63156 NULL
167034 +enable_so_reiserfs_get_blocks_direct_io_fndecl_63157 reiserfs_get_blocks_direct_io fndecl 2 63157 NULL
167035 +enable_so_dst_val_x86_instruction_info_63158 dst_val x86_instruction_info 0 63158 NULL nohasharray
167036 +enable_so_length_req_que_63158 length req_que 0 63158 &enable_so_dst_val_x86_instruction_info_63158
167037 +enable_so_inode_nilfs_dir_entry_63159 inode nilfs_dir_entry 0 63159 NULL
167038 +enable_so_dst_y_yuv_frame_info_63162 dst_y yuv_frame_info 0 63162 NULL
167039 +enable_so_get_pattern_len_ts_ops_63165 get_pattern_len ts_ops 0 63165 NULL
167040 +enable_so_nports_ahci_host_priv_63166 nports ahci_host_priv 0 63166 NULL
167041 +enable_so_stats_dot11RTSFailureCount_read_fndecl_63167 stats_dot11RTSFailureCount_read fndecl 3 63167 NULL
167042 +enable_so_word_4_rsq_entry_63169 word_4 rsq_entry 0 63169 NULL
167043 +enable_so_nla_reserve_fndecl_63171 nla_reserve fndecl 3 63171 NULL
167044 +enable_so_vma_hugecache_offset_fndecl_63172 vma_hugecache_offset fndecl 0-3 63172 NULL
167045 +enable_so___clkdev_alloc_fndecl_63173 __clkdev_alloc fndecl 1 63173 NULL
167046 +enable_so_ulist_add_fndecl_63177 ulist_add fndecl 2-0 63177 NULL
167047 +enable_so_send_repeat_remove_fndecl_63179 send_repeat_remove fndecl 3 63179 NULL nohasharray
167048 +enable_so_kvm_read_guest_virt_fndecl_63179 kvm_read_guest_virt fndecl 4-2 63179 &enable_so_send_repeat_remove_fndecl_63179 nohasharray
167049 +enable_so_scsi_command_size_fndecl_63179 scsi_command_size fndecl 0 63179 &enable_so_kvm_read_guest_virt_fndecl_63179
167050 +enable_so_nr_to_scan_shrink_control_63181 nr_to_scan shrink_control 0 63181 NULL
167051 +enable_so_srpt_srq_size_vardecl_ib_srpt_c_63183 srpt_srq_size vardecl_ib_srpt.c 0 63183 NULL
167052 +enable_so_cache_request_fndecl_63187 cache_request fndecl 0 63187 NULL
167053 +enable_so_csums_alg_len_net_conf_63190 csums_alg_len net_conf 0 63190 NULL nohasharray
167054 +enable_so___sg_page_iter_start_fndecl_63190 __sg_page_iter_start fndecl 4 63190 &enable_so_csums_alg_len_net_conf_63190
167055 +enable_so_squashfs_xz_uncompress_fndecl_63193 squashfs_xz_uncompress fndecl 6-5 63193 NULL
167056 +enable_so_val_v4l2_ctrl_63196 val v4l2_ctrl 0 63196 NULL
167057 +enable_so___get_required_blob_size_fndecl_63199 __get_required_blob_size fndecl 0-3-2 63199 NULL
167058 +enable_so_mwl8k_add_dma_header_fndecl_63203 mwl8k_add_dma_header fndecl 3 63203 NULL
167059 +enable_so_selfballoon_reserved_mb_vardecl_xen_selfballoon_c_63209 selfballoon_reserved_mb vardecl_xen-selfballoon.c 0 63209 NULL nohasharray
167060 +enable_so_lcd_lower_margin_atyfb_par_63209 lcd_lower_margin atyfb_par 0 63209 &enable_so_selfballoon_reserved_mb_vardecl_xen_selfballoon_c_63209
167061 +enable_so_sizeimage_emmaprp_q_data_63224 sizeimage emmaprp_q_data 0 63224 NULL nohasharray
167062 +enable_so_write_flush_procfs_fndecl_63224 write_flush_procfs fndecl 3 63224 &enable_so_sizeimage_emmaprp_q_data_63224
167063 +enable_so_ufs_alloccg_block_fndecl_63239 ufs_alloccg_block fndecl 0-3 63239 NULL nohasharray
167064 +enable_so_tx_frag_failed_read_fndecl_63239 tx_frag_failed_read fndecl 3 63239 &enable_so_ufs_alloccg_block_fndecl_63239
167065 +enable_so_mod_len_start_info_63244 mod_len start_info 0 63244 NULL
167066 +enable_so_ipw2100_set_tx_power_fndecl_63246 ipw2100_set_tx_power fndecl 2 63246 NULL
167067 +enable_so_acpi_ut_get_resource_length_fndecl_63256 acpi_ut_get_resource_length fndecl 0 63256 NULL
167068 +enable_so_ep_image_mts_desc_63258 ep_image mts_desc 0 63258 NULL
167069 +enable_so_cachefiles_daemon_write_fndecl_63260 cachefiles_daemon_write fndecl 3 63260 NULL
167070 +enable_so_pdu_write_u_fndecl_63261 pdu_write_u fndecl 3 63261 NULL nohasharray
167071 +enable_so_read_events_fndecl_63261 read_events fndecl 3 63261 &enable_so_pdu_write_u_fndecl_63261
167072 +enable_so_dvb_ca_en50221_io_write_fndecl_63262 dvb_ca_en50221_io_write fndecl 3 63262 NULL
167073 +enable_so_sch56xx_device_add_fndecl_63264 sch56xx_device_add fndecl 1 63264 NULL
167074 +enable_so_height_videobuf_buffer_63266 height videobuf_buffer 0 63266 NULL
167075 +enable_so__fc_frame_alloc_fndecl_63267 _fc_frame_alloc fndecl 1 63267 NULL
167076 +enable_so_rpc_malloc_fndecl_63270 rpc_malloc fndecl 2 63270 NULL
167077 +enable_so_sb_rsumino_xfs_sb_63283 sb_rsumino xfs_sb 0 63283 NULL nohasharray
167078 +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
167079 +enable_so_num_counters_ebt_replace_63286 num_counters ebt_replace 0 63286 NULL
167080 +enable_so_xprt_rdma_slot_table_entries_vardecl_transport_c_63290 xprt_rdma_slot_table_entries vardecl_transport.c 0 63290 NULL
167081 +enable_so_video_buffer_size_osd_info_63299 video_buffer_size osd_info 0 63299 NULL
167082 +enable_so_lpfc_idiag_drbacc_read_reg_fndecl_63301 lpfc_idiag_drbacc_read_reg fndecl 0-3 63301 NULL
167083 +enable_so_num_req_tx_rings_bnx2_63306 num_req_tx_rings bnx2 0 63306 NULL
167084 +enable_so_xfs_map_blocks_fndecl_63308 xfs_map_blocks fndecl 2 63308 NULL
167085 +enable_so_valuelen_jfs_ea_63309 valuelen jfs_ea 0 63309 NULL nohasharray
167086 +enable_so_proc_read_fndecl_63309 proc_read fndecl 3 63309 &enable_so_valuelen_jfs_ea_63309
167087 +enable_so_con_out_kvec_add_fndecl_63316 con_out_kvec_add fndecl 2 63316 NULL
167088 +enable_so_doorbell_start_offset_kgd2kfd_shared_resources_63332 doorbell_start_offset kgd2kfd_shared_resources 0 63332 NULL
167089 +enable_so_bulk_out_endpointAddress_usb_serial_port_63340 bulk_out_endpointAddress usb_serial_port 0 63340 NULL
167090 +enable_so_gf100_vm_create_fndecl_63342 gf100_vm_create fndecl 3-2-4 63342 NULL
167091 +enable_so_clipcount_out_vivid_dev_63343 clipcount_out vivid_dev 0 63343 NULL
167092 +enable_so_len_n_flags_iwl_rx_packet_63345 len_n_flags iwl_rx_packet 0 63345 NULL
167093 +enable_so_alloc_thread_groups_fndecl_63354 alloc_thread_groups fndecl 2 63354 NULL
167094 +enable_so_x_zoran_overlay_settings_63359 x zoran_overlay_settings 0 63359 NULL
167095 +enable_so_lbq_buf_size_rx_ring_63363 lbq_buf_size rx_ring 0 63363 NULL
167096 +enable_so_phys_mem_fst_card_info_63365 phys_mem fst_card_info 0 63365 NULL
167097 +enable_so_start_ms350_cam_fndecl_63372 start_ms350_cam fndecl 0 63372 NULL
167098 +enable_so_kmalloc_large_node_hook_fndecl_63376 kmalloc_large_node_hook fndecl 2 63376 NULL
167099 +enable_so_alloc_irq_domain_ops_63379 alloc irq_domain_ops 0 63379 NULL
167100 +enable_so_max_lun_rts51x_chip_63381 max_lun rts51x_chip 0 63381 NULL
167101 +enable_so_data_len_ubifs_inode_63396 data_len ubifs_inode 0 63396 NULL
167102 +enable_so_buflen_audit_rule_data_63397 buflen audit_rule_data 0 63397 NULL nohasharray
167103 +enable_so_hidp_send_ctrl_message_fndecl_63397 hidp_send_ctrl_message fndecl 4 63397 &enable_so_buflen_audit_rule_data_63397
167104 +enable_so_max_cqes_per_cq_iwch_rnic_attributes_63399 max_cqes_per_cq iwch_rnic_attributes 0 63399 NULL
167105 +enable_so_rate_n_flags_iwlagn_tx_resp_63401 rate_n_flags iwlagn_tx_resp 0 63401 NULL
167106 +enable_so_e820_end_pfn_fndecl_63402 e820_end_pfn fndecl 0-1 63402 NULL nohasharray
167107 +enable_so_bnx2_find_max_ring_fndecl_63402 bnx2_find_max_ring fndecl 0-2 63402 &enable_so_e820_end_pfn_fndecl_63402
167108 +enable_so_ext3_xattr_trusted_set_fndecl_63404 ext3_xattr_trusted_set fndecl 4 63404 NULL nohasharray
167109 +enable_so_nvkm_connector_create__fndecl_63404 nvkm_connector_create_ fndecl 6 63404 &enable_so_ext3_xattr_trusted_set_fndecl_63404
167110 +enable_so_flt_chap_size_ql82xx_hw_data_63406 flt_chap_size ql82xx_hw_data 0 63406 NULL
167111 +enable_so__drbd_no_send_page_fndecl_63409 _drbd_no_send_page fndecl 4 63409 NULL
167112 +enable_so_lib80211_wep_decrypt_fndecl_63419 lib80211_wep_decrypt fndecl 2 63419 NULL
167113 +enable_so_write_midi_fndecl_63421 write_midi fndecl 0-3 63421 NULL
167114 +enable_so_xfs_buf_set_empty_fndecl_63425 xfs_buf_set_empty fndecl 2 63425 NULL
167115 +enable_so_i2400m_tx_fndecl_63427 i2400m_tx fndecl 3-4 63427 NULL
167116 +enable_so_brcmf_sdio_download_firmware_fndecl_63429 brcmf_sdio_download_firmware fndecl 4 63429 NULL nohasharray
167117 +enable_so___alloc_alien_cache_fndecl_63429 __alloc_alien_cache fndecl 2 63429 &enable_so_brcmf_sdio_download_firmware_fndecl_63429
167118 +enable_so_tas571x_register_size_fndecl_63430 tas571x_register_size fndecl 0 63430 NULL nohasharray
167119 +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
167120 +enable_so_ocfs2_replace_clusters_fndecl_63430 ocfs2_replace_clusters fndecl 5-3 63430 &enable_so_ad_sd_read_reg_raw_fndecl_63430
167121 +enable_so_snd_rme32_playback_copy_fndecl_63431 snd_rme32_playback_copy fndecl 5 63431 NULL
167122 +enable_so_mem_len_bfa_mem_kva_s_63432 mem_len bfa_mem_kva_s 0 63432 NULL
167123 +enable_so_resp_sas_sf_m_pg_fndecl_63437 resp_sas_sf_m_pg fndecl 0 63437 NULL
167124 +enable_so_check_bandwidth_hc_driver_63438 check_bandwidth hc_driver 0 63438 NULL
167125 +enable_so_m_max_file_size_ceph_mdsmap_63449 m_max_file_size ceph_mdsmap 0 63449 NULL
167126 +enable_so_max_send_wr_ib_qp_cap_63450 max_send_wr ib_qp_cap 0 63450 NULL
167127 +enable_so_cmd_status_netdev_desc_63452 cmd_status netdev_desc 0 63452 NULL
167128 +enable_so_fuse_send_read_fndecl_63454 fuse_send_read fndecl 4 63454 NULL
167129 +enable_so_sysv_raw_inode_fndecl_63458 sysv_raw_inode fndecl 2 63458 NULL
167130 +enable_so_c_width_g2d_frame_63459 c_width g2d_frame 0 63459 NULL
167131 +enable_so_btrfs_drop_extent_cache_fndecl_63461 btrfs_drop_extent_cache fndecl 3-2 63461 NULL
167132 +enable_so_skb_read_pdu_bhs_fndecl_63463 skb_read_pdu_bhs fndecl 0 63463 NULL
167133 +enable_so_biter_fsl_edma_hw_tcd_63464 biter fsl_edma_hw_tcd 0 63464 NULL
167134 +enable_so_count_ceph_inode_xattrs_info_63465 count ceph_inode_xattrs_info 0 63465 NULL
167135 +enable_so_rcvhdrq_size_qib_ctxtdata_63468 rcvhdrq_size qib_ctxtdata 0 63468 NULL
167136 +enable_so_srq_lmt_max_sge_ocrdma_query_srq_rsp_63477 srq_lmt_max_sge ocrdma_query_srq_rsp 0 63477 NULL
167137 +enable_so___bm_find_next_fndecl_63479 __bm_find_next fndecl 0-2 63479 NULL
167138 +enable_so_mlx5_ib_read_user_wqe_fndecl_63480 mlx5_ib_read_user_wqe fndecl 3-5 63480 NULL nohasharray
167139 +enable_so_sctp_setsockopt_active_key_fndecl_63480 sctp_setsockopt_active_key fndecl 3 63480 &enable_so_mlx5_ib_read_user_wqe_fndecl_63480
167140 +enable_so_gigaset_initcs_fndecl_63482 gigaset_initcs fndecl 2 63482 NULL nohasharray
167141 +enable_so_length_dw_amdgpu_cs_chunk_63482 length_dw amdgpu_cs_chunk 0 63482 &enable_so_gigaset_initcs_fndecl_63482
167142 +enable_so_width_v4l2_pix_format_63491 width v4l2_pix_format 0 63491 NULL
167143 +enable_so_sb_spino_align_xfs_sb_63492 sb_spino_align xfs_sb 0 63492 NULL
167144 +enable_so_find_last_bit_fndecl_63495 find_last_bit fndecl 0-2 63495 NULL
167145 +enable_so___pcpu_size_to_slot_fndecl_63500 __pcpu_size_to_slot fndecl 0 63500 NULL
167146 +enable_so_read_data_offset_smb_version_operations_63502 read_data_offset smb_version_operations 0 63502 NULL
167147 +enable_so_ufs_nfs_get_inode_fndecl_63508 ufs_nfs_get_inode fndecl 2 63508 NULL
167148 +enable_so_xfs_rtfree_range_fndecl_63511 xfs_rtfree_range fndecl 3-4 63511 NULL
167149 +enable_so_bNrChannels_uac_format_type_i_discrete_descriptor_63512 bNrChannels uac_format_type_i_discrete_descriptor 0 63512 NULL
167150 +enable_so_num_usb2_ports_xhci_hcd_63514 num_usb2_ports xhci_hcd 0 63514 NULL
167151 +enable_so_rx_defrag_need_decrypt_read_fndecl_63518 rx_defrag_need_decrypt_read fndecl 3 63518 NULL
167152 +enable_so_wIELength_uwb_rc_cmd_set_drp_ie_63528 wIELength uwb_rc_cmd_set_drp_ie 0 63528 NULL
167153 +enable_so_wq_sig_mlx5_ib_qp_63533 wq_sig mlx5_ib_qp 0 63533 NULL nohasharray
167154 +enable_so_sel_read_perm_fndecl_63533 sel_read_perm fndecl 3 63533 &enable_so_wq_sig_mlx5_ib_qp_63533
167155 +enable_so_maxvram_video_board_63535 maxvram video_board 0 63535 NULL
167156 +enable_so_num_wsm_ether_type_filter_hdr_63536 num wsm_ether_type_filter_hdr 0 63536 NULL
167157 +enable_so_num_clips_drm_mode_fb_dirty_cmd_63540 num_clips drm_mode_fb_dirty_cmd 0 63540 NULL
167158 +enable_so___tty_buffer_request_room_fndecl_63543 __tty_buffer_request_room fndecl 0-2 63543 NULL
167159 +enable_so_hi_priority_depth_MPT2SAS_ADAPTER_63544 hi_priority_depth MPT2SAS_ADAPTER 0 63544 NULL
167160 +enable_so_snd_pcm_hw_param_value_max_fndecl_63547 snd_pcm_hw_param_value_max fndecl 0 63547 NULL
167161 +enable_so_tlv_data_size_user_element_63549 tlv_data_size user_element 0 63549 NULL
167162 +enable_so_word_size_ixgbe_eeprom_info_63556 word_size ixgbe_eeprom_info 0 63556 NULL
167163 +enable_so_multi_rmw_idx_wmi_63557 multi_rmw_idx wmi 0 63557 NULL
167164 +enable_so_tcp_sync_mss_fndecl_63561 tcp_sync_mss fndecl 0-2 63561 NULL
167165 +enable_so_gfn_to_hva_fndecl_63570 gfn_to_hva fndecl 2 63570 NULL
167166 +enable_so_ulong_read_file_fndecl_63571 ulong_read_file fndecl 3 63571 NULL nohasharray
167167 +enable_so_sctp_setsockopt_del_key_fndecl_63571 sctp_setsockopt_del_key fndecl 3 63571 &enable_so_ulong_read_file_fndecl_63571
167168 +enable_so_unmap_granularity_scsi_disk_63574 unmap_granularity scsi_disk 0 63574 NULL
167169 +enable_so_xfs_vm_readpages_fndecl_63575 xfs_vm_readpages fndecl 4 63575 NULL
167170 +enable_so_num_ethernet_queues_bnx2x_63578 num_ethernet_queues bnx2x 0 63578 NULL
167171 +enable_so_xfs_vm_write_failed_fndecl_63582 xfs_vm_write_failed fndecl 3 63582 NULL
167172 +enable_so_ide_raw_taskfile_fndecl_63584 ide_raw_taskfile fndecl 4 63584 NULL
167173 +enable_so_cit_get_packet_size_fndecl_63585 cit_get_packet_size fndecl 0 63585 NULL
167174 +enable_so_width_console_font_63590 width console_font 0 63590 NULL
167175 +enable_so_fbmem_viafb_par_63594 fbmem viafb_par 0 63594 NULL nohasharray
167176 +enable_so_ri_cno_nilfs_recovery_info_63594 ri_cno nilfs_recovery_info 0 63594 &enable_so_fbmem_viafb_par_63594
167177 +enable_so_srp_map_data_fndecl_63596 srp_map_data fndecl 0 63596 NULL
167178 +enable_so_size_dmaengine_unmap_pool_63599 size dmaengine_unmap_pool 0 63599 NULL nohasharray
167179 +enable_so_dbFree_fndecl_63599 dbFree fndecl 2-3 63599 &enable_so_size_dmaengine_unmap_pool_63599
167180 +enable_so_snd_pcm_plug_alloc_fndecl_63600 snd_pcm_plug_alloc fndecl 2 63600 NULL
167181 +enable_so_offset_pci_sriov_63604 offset pci_sriov 0 63604 NULL
167182 +enable_so_zone_start_pfn_zone_63616 zone_start_pfn zone 0 63616 NULL
167183 +enable_so_il_dbgfs_disable_ht40_read_fndecl_63617 il_dbgfs_disable_ht40_read fndecl 3 63617 NULL
167184 +enable_so_rx_mtu_p54_common_63619 rx_mtu p54_common 0 63619 NULL
167185 +enable_so_w_nr_rds_iw_work_ring_63620 w_nr rds_iw_work_ring 0 63620 NULL
167186 +enable_so_buf_len_mwifiex_sdio_mpa_rx_63636 buf_len mwifiex_sdio_mpa_rx 0 63636 NULL nohasharray
167187 +enable_so_find_run_fndecl_63636 find_run fndecl 0 63636 &enable_so_buf_len_mwifiex_sdio_mpa_rx_63636
167188 +enable_so_be_v_offset_pnfs_block_extent_63637 be_v_offset pnfs_block_extent 0 63637 NULL nohasharray
167189 +enable_so_rx_ring_size_gfar_priv_rx_q_63637 rx_ring_size gfar_priv_rx_q 0 63637 &enable_so_be_v_offset_pnfs_block_extent_63637
167190 +enable_so_o_height_fimc_frame_63639 o_height fimc_frame 0 63639 NULL
167191 +enable_so_port_piocnt_ipath_portdata_63650 port_piocnt ipath_portdata 0 63650 NULL
167192 +enable_so_prev_rs_iwl_rate_info_63653 prev_rs iwl_rate_info 0 63653 NULL
167193 +enable_so_id_nvdimm_63666 id nvdimm 0 63666 NULL
167194 +enable_so_msnd_fifo_read_fndecl_63669 msnd_fifo_read fndecl 0 63669 NULL
167195 +enable_so_r_len_qib_qp_63672 r_len qib_qp 0 63672 NULL
167196 +enable_so_nr_map_e820map_63674 nr_map e820map 0 63674 NULL
167197 +enable_so_nfs_writepage_setup_fndecl_63682 nfs_writepage_setup fndecl 3-4 63682 NULL
167198 +enable_so_height_ssd1307fb_par_63688 height ssd1307fb_par 0 63688 NULL
167199 +enable_so_pci_get_device_func_fndecl_63689 pci_get_device_func fndecl 2 63689 NULL
167200 +enable_so_obj_size_proto_63697 obj_size proto 0 63697 NULL nohasharray
167201 +enable_so___iio_add_chan_devattr_fndecl_63697 __iio_add_chan_devattr fndecl 0 63697 &enable_so_obj_size_proto_63697
167202 +enable_so_gsm_data_alloc_fndecl_63702 gsm_data_alloc fndecl 3 63702 NULL
167203 +enable_so_key_conf_keyidx_read_fndecl_63704 key_conf_keyidx_read fndecl 3 63704 NULL
167204 +enable_so_spr_wm_latency_write_fndecl_63706 spr_wm_latency_write fndecl 3 63706 NULL
167205 +enable_so_real_trim_memory_fndecl_63709 real_trim_memory fndecl 1-2 63709 NULL
167206 +enable_so_owner_snd_ctl_elem_info_63711 owner snd_ctl_elem_info 0 63711 NULL
167207 +enable_so_index_dtsplit_63712 index dtsplit 0 63712 NULL nohasharray
167208 +enable_so_xfs_alloc_compute_aligned_fndecl_63712 xfs_alloc_compute_aligned fndecl 3-2 63712 &enable_so_index_dtsplit_63712
167209 +enable_so_kernel_recvmsg_fndecl_63713 kernel_recvmsg fndecl 0-5-4 63713 NULL
167210 +enable_so_omfs_readpages_fndecl_63721 omfs_readpages fndecl 4 63721 NULL
167211 +enable_so_osd_vis_h_yuv_playback_info_63734 osd_vis_h yuv_playback_info 0 63734 NULL
167212 +enable_so_pci_hotplug_mem_size_vardecl_63735 pci_hotplug_mem_size vardecl 0 63735 NULL
167213 +enable_so_get_mergeable_buf_len_fndecl_63736 get_mergeable_buf_len fndecl 0 63736 NULL
167214 +enable_so___simple_xattr_set_fndecl_63737 __simple_xattr_set fndecl 4 63737 NULL
167215 +enable_so___register_chrdev_region_fndecl_63741 __register_chrdev_region fndecl 1 63741 NULL
167216 +enable_so_size_vb2_dc_buf_63751 size vb2_dc_buf 0 63751 NULL
167217 +enable_so_target_size_scsi_transport_template_63753 target_size scsi_transport_template 0 63753 NULL
167218 +enable_so_spidev_sync_read_fndecl_63757 spidev_sync_read fndecl 0 63757 NULL
167219 +enable_so_mp_irqdomain_get_attr_fndecl_63759 mp_irqdomain_get_attr fndecl 1 63759 NULL nohasharray
167220 +enable_so_pool_allocate_fndecl_63759 pool_allocate fndecl 3 63759 &enable_so_mp_irqdomain_get_attr_fndecl_63759
167221 +enable_so_ath6kl_wmi_remain_on_chnl_cmd_fndecl_63760 ath6kl_wmi_remain_on_chnl_cmd fndecl 2 63760 NULL nohasharray
167222 +enable_so_msix_count_skd_device_63760 msix_count skd_device 0 63760 &enable_so_ath6kl_wmi_remain_on_chnl_cmd_fndecl_63760
167223 +enable_so_xfs_qm_dqalloc_fndecl_63762 xfs_qm_dqalloc fndecl 5 63762 NULL nohasharray
167224 +enable_so_index_isi_board_63762 index isi_board 0 63762 &enable_so_xfs_qm_dqalloc_fndecl_63762
167225 +enable_so_dss_feat_get_num_ovls_fndecl_63770 dss_feat_get_num_ovls fndecl 0 63770 NULL
167226 +enable_so_insn_size_kprobe_insn_cache_63777 insn_size kprobe_insn_cache 0 63777 NULL
167227 +enable_so___hwahc_op_set_gtk_fndecl_63781 __hwahc_op_set_gtk fndecl 4 63781 NULL
167228 +enable_so_items_priv_size_vxge_hw_mempool_63785 items_priv_size vxge_hw_mempool 0 63785 NULL
167229 +enable_so_alloc_trace_kprobe_fndecl_63786 alloc_trace_kprobe fndecl 6 63786 NULL
167230 +enable_so_num_slices_myri10ge_priv_63789 num_slices myri10ge_priv 0 63789 NULL
167231 +enable_so_order_pmcraid_sglist_63792 order pmcraid_sglist 0 63792 NULL nohasharray
167232 +enable_so_orinoco_mic_fndecl_63792 orinoco_mic fndecl 7 63792 &enable_so_order_pmcraid_sglist_63792 nohasharray
167233 +enable_so__scif_recv_fndecl_63792 _scif_recv fndecl 0-3 63792 &enable_so_orinoco_mic_fndecl_63792
167234 +enable_so_modem_write_cmd_fndecl_63794 modem_write_cmd fndecl 3 63794 NULL nohasharray
167235 +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
167236 +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
167237 +enable_so_ioaccel_maxsg_ctlr_info_63798 ioaccel_maxsg ctlr_info 0 63798 NULL
167238 +enable_so_read_prph_iwl_trans_ops_63799 read_prph iwl_trans_ops 0 63799 NULL
167239 +enable_so_nouveau_ttm_tt_create_fndecl_63801 nouveau_ttm_tt_create fndecl 2 63801 NULL nohasharray
167240 +enable_so_nbds_max_vardecl_nbd_c_63801 nbds_max vardecl_nbd.c 0 63801 &enable_so_nouveau_ttm_tt_create_fndecl_63801
167241 +enable_so_acpi_ut_create_buffer_object_fndecl_63805 acpi_ut_create_buffer_object fndecl 1 63805 NULL
167242 +enable_so_ncp_add_mem_fndecl_63822 ncp_add_mem fndecl 3 63822 NULL nohasharray
167243 +enable_so_named_prepare_buf_fndecl_63822 named_prepare_buf fndecl 3 63822 &enable_so_ncp_add_mem_fndecl_63822
167244 +enable_so_len_extent_map_63823 len extent_map 0 63823 NULL
167245 +enable_so_ps_poll_upsd_max_ap_turn_read_fndecl_63825 ps_poll_upsd_max_ap_turn_read fndecl 3 63825 NULL
167246 +enable_so_jffs2_do_link_fndecl_63827 jffs2_do_link fndecl 6 63827 NULL
167247 +enable_so_compat_sys_sendfile_fndecl_63828 compat_sys_sendfile fndecl 4 63828 NULL
167248 +enable_so_alt_mem_k_boot_params_63829 alt_mem_k boot_params 0 63829 NULL
167249 +enable_so_rpipe_aim_fndecl_63832 rpipe_aim fndecl 0 63832 NULL
167250 +enable_so_p_end_nilfs_period_63833 p_end nilfs_period 0 63833 NULL
167251 +enable_so_iwl_mvm_scan_size_fndecl_63834 iwl_mvm_scan_size fndecl 0 63834 NULL
167252 +enable_so_flags_flat_binder_object_63836 flags flat_binder_object 0 63836 NULL
167253 +enable_so_rx_ring_order_vardecl_main_c_63838 rx_ring_order vardecl_main.c 0 63838 NULL
167254 +enable_so_ipath_make_grh_fndecl_63846 ipath_make_grh fndecl 0 63846 NULL
167255 +enable_so_ext4_sync_file_fndecl_63847 ext4_sync_file fndecl 2-3 63847 NULL
167256 +enable_so_yskip_mt9t031_63853 yskip mt9t031 0 63853 NULL
167257 +enable_so_rx_data_size_sky2_port_63855 rx_data_size sky2_port 0 63855 NULL nohasharray
167258 +enable_so_submit_inquiry_fndecl_63855 submit_inquiry fndecl 3 63855 &enable_so_rx_data_size_sky2_port_63855
167259 +enable_so_addrlen_at25_data_63857 addrlen at25_data 0 63857 NULL
167260 +enable_so_da_height_logfs_je_anchor_63858 da_height logfs_je_anchor 0 63858 NULL
167261 +enable_so_out_phase_peeked_usb_stream_kernel_63871 out_phase_peeked usb_stream_kernel 0 63871 NULL
167262 +enable_so_ssid_len_ieee80211_if_ibss_63872 ssid_len ieee80211_if_ibss 0 63872 NULL nohasharray
167263 +enable_so_Read_hfc16_stable_fndecl_63872 Read_hfc16_stable fndecl 0 63872 &enable_so_ssid_len_ieee80211_if_ibss_63872
167264 +enable_so_xlvbd_alloc_gendisk_fndecl_63874 xlvbd_alloc_gendisk fndecl 4-5 63874 NULL
167265 +enable_so_rate_mwl8k_rxd_ap_63875 rate mwl8k_rxd_ap 0 63875 NULL
167266 +enable_so___btrfs_unlink_inode_fndecl_63889 __btrfs_unlink_inode fndecl 6 63889 NULL
167267 +enable_so_dw_dma_cyclic_prep_fndecl_63890 dw_dma_cyclic_prep fndecl 4-3 63890 NULL
167268 +enable_so_lmWriteRecord_fndecl_63896 lmWriteRecord fndecl 0 63896 NULL
167269 +enable_so_ext4_do_update_inode_fndecl_63900 ext4_do_update_inode fndecl 0 63900 NULL
167270 +enable_so_tx_cnt_fritz_bcs_63901 tx_cnt fritz_bcs 0 63901 NULL
167271 +enable_so_mmc_align_data_size_fndecl_63906 mmc_align_data_size fndecl 0-2 63906 NULL nohasharray
167272 +enable_so_fraglen_encryptor_desc_63906 fraglen encryptor_desc 0 63906 &enable_so_mmc_align_data_size_fndecl_63906
167273 +enable_so_blk_ioctl_zeroout_fndecl_63907 blk_ioctl_zeroout fndecl 3-2 63907 NULL
167274 +enable_so_dbg_fixed_rate_iwl_lq_sta_63909 dbg_fixed_rate iwl_lq_sta 0 63909 NULL
167275 +enable_so_len_sock_fprog_kern_63914 len sock_fprog_kern 0 63914 NULL
167276 +enable_so_fw_stats_len_wl1271_stats_63915 fw_stats_len wl1271_stats 0 63915 NULL nohasharray
167277 +enable_so_read_file_base_eeprom_fndecl_63915 read_file_base_eeprom fndecl 3 63915 &enable_so_fw_stats_len_wl1271_stats_63915
167278 +enable_so_iwl_mvm_send_cmd_fndecl_63918 iwl_mvm_send_cmd fndecl 0 63918 NULL
167279 +enable_so_new_data_offset_md_rdev_63919 new_data_offset md_rdev 0 63919 NULL nohasharray
167280 +enable_so_align_nft_set_ext_type_63919 align nft_set_ext_type 0 63919 &enable_so_new_data_offset_md_rdev_63919
167281 +enable_so_nilfs_ifile_read_fndecl_63921 nilfs_ifile_read fndecl 3 63921 NULL
167282 +enable_so_start_btrfs_ioctl_defrag_range_args_63924 start btrfs_ioctl_defrag_range_args 0 63924 NULL
167283 +enable_so_efx_change_mtu_fndecl_63926 efx_change_mtu fndecl 2 63926 NULL
167284 +enable_so_cqm_max_rmid_vardecl_perf_event_intel_cqm_c_63930 cqm_max_rmid vardecl_perf_event_intel_cqm.c 0 63930 NULL
167285 +enable_so_dentry_needs_remove_privs_fndecl_63934 dentry_needs_remove_privs fndecl 0 63934 NULL
167286 +enable_so_ro_maxpages_rpcrdma_memreg_ops_63937 ro_maxpages rpcrdma_memreg_ops 0 63937 NULL nohasharray
167287 +enable_so_filemark_cnt_osst_tape_63937 filemark_cnt osst_tape 0 63937 &enable_so_ro_maxpages_rpcrdma_memreg_ops_63937
167288 +enable_so_Xfacs_acpi_table_fadt_63943 Xfacs acpi_table_fadt 0 63943 NULL
167289 +enable_so_replen_compound_hdr_63944 replen compound_hdr 0 63944 NULL
167290 +enable_so_get_znodes_to_commit_fndecl_63946 get_znodes_to_commit fndecl 0 63946 NULL nohasharray
167291 +enable_so_hdr_dwords_qib_verbs_txreq_63946 hdr_dwords qib_verbs_txreq 0 63946 &enable_so_get_znodes_to_commit_fndecl_63946
167292 +enable_so_map_szl_cyttsp4_sysinfo_data_63948 map_szl cyttsp4_sysinfo_data 0 63948 NULL
167293 +enable_so_pcfg_ofs_cyttsp4_sysinfo_ofs_63956 pcfg_ofs cyttsp4_sysinfo_ofs 0 63956 NULL
167294 +enable_so_oprofilefs_str_to_user_fndecl_63957 oprofilefs_str_to_user fndecl 3 63957 NULL
167295 +enable_so_pvr2_send_request_fndecl_63959 pvr2_send_request fndecl 3-5 63959 NULL
167296 +enable_so_rb_max_requests_rpcrdma_buffer_63960 rb_max_requests rpcrdma_buffer 0 63960 NULL
167297 +enable_so_write_file_beacon_fndecl_63962 write_file_beacon fndecl 3 63962 NULL
167298 +enable_so_psb_gtt_alloc_range_fndecl_63966 psb_gtt_alloc_range fndecl 2-5 63966 NULL
167299 +enable_so_len_wm_coeff_ctl_63967 len wm_coeff_ctl 0 63967 NULL
167300 +enable_so_pla_ocp_read_fndecl_63976 pla_ocp_read fndecl 3 63976 NULL
167301 +enable_so_bt_ep_bcm5974_config_63978 bt_ep bcm5974_config 0 63978 NULL
167302 +enable_so_pos_pagemapread_63988 pos pagemapread 0 63988 NULL
167303 +enable_so_befs_iget_fndecl_63989 befs_iget fndecl 2 63989 NULL
167304 +enable_so_max_lba_sm_ftl_63992 max_lba sm_ftl 0 63992 NULL
167305 +enable_so_ihandlen_compat_xfs_fsop_handlereq_63994 ihandlen compat_xfs_fsop_handlereq 0 63994 NULL
167306 +enable_so_subctxt_qib_filedata_63995 subctxt qib_filedata 0 63995 NULL
167307 +enable_so_vram_start_amdgpu_mc_63998 vram_start amdgpu_mc 0 63998 NULL
167308 +enable_so_iscsi_conn_send_pdu_fndecl_64002 iscsi_conn_send_pdu fndecl 4 64002 NULL
167309 +enable_so_pvr2_send_request_ex_fndecl_64004 pvr2_send_request_ex fndecl 5-7 64004 NULL
167310 +enable_so_ndescs_clk_corediv_soc_desc_64005 ndescs clk_corediv_soc_desc 0 64005 NULL
167311 +enable_so_field_count_audit_krule_64007 field_count audit_krule 0 64007 NULL
167312 +enable_so_rx_ring_size_fe_priv_64012 rx_ring_size fe_priv 0 64012 NULL
167313 +enable_so_wBlocks_usb_rpipe_descriptor_64014 wBlocks usb_rpipe_descriptor 0 64014 NULL nohasharray
167314 +enable_so_isku_sysfs_read_info_fndecl_64014 isku_sysfs_read_info fndecl 6 64014 &enable_so_wBlocks_usb_rpipe_descriptor_64014
167315 +enable_so_ext4_orphan_get_fndecl_64015 ext4_orphan_get fndecl 2 64015 NULL nohasharray
167316 +enable_so_snd_midi_event_decode_fndecl_64015 snd_midi_event_decode fndecl 0 64015 &enable_so_ext4_orphan_get_fndecl_64015
167317 +enable_so_space_snd_ctl_elem_list_64016 space snd_ctl_elem_list 0 64016 NULL
167318 +enable_so_n_sectors_flash_info_64017 n_sectors flash_info 0 64017 NULL
167319 +enable_so_dma_drain_size_request_queue_64023 dma_drain_size request_queue 0 64023 NULL
167320 +enable_so_extAlloc_fndecl_64026 extAlloc fndecl 3 64026 NULL
167321 +enable_so_fw_device_op_compat_ioctl_fndecl_64039 fw_device_op_compat_ioctl fndecl 2 64039 NULL
167322 +enable_so_kxtj9_i2c_read_fndecl_64041 kxtj9_i2c_read fndecl 4 64041 NULL
167323 +enable_so_ieee80211_request_ibss_scan_fndecl_64043 ieee80211_request_ibss_scan fndecl 3 64043 NULL
167324 +enable_so_xdr_partial_copy_from_skb_fndecl_64046 xdr_partial_copy_from_skb fndecl 0 64046 NULL nohasharray
167325 +enable_so_drm_ioctl_fndecl_64046 drm_ioctl fndecl 2 64046 &enable_so_xdr_partial_copy_from_skb_fndecl_64046
167326 +enable_so_devs_increment_btrfs_raid_attr_64050 devs_increment btrfs_raid_attr 0 64050 NULL
167327 +enable_so_koneplus_sysfs_read_fndecl_64059 koneplus_sysfs_read fndecl 6 64059 NULL
167328 +enable_so_claim_region_fndecl_64076 claim_region fndecl 3-2 64076 NULL
167329 +enable_so_link_duplex_pch_gbe_mac_info_64077 link_duplex pch_gbe_mac_info 0 64077 NULL
167330 +enable_so_dma_size_cx88_audio_dev_64082 dma_size cx88_audio_dev 0 64082 NULL
167331 +enable_so_xfs_iomap_eof_prealloc_initial_size_fndecl_64085 xfs_iomap_eof_prealloc_initial_size fndecl 3 64085 NULL
167332 +enable_so_iwl_dbgfs_ucode_bt_stats_read_fndecl_64087 iwl_dbgfs_ucode_bt_stats_read fndecl 3 64087 NULL
167333 +enable_so_si476x_radio_read_rsq_blob_fndecl_64088 si476x_radio_read_rsq_blob fndecl 3 64088 NULL
167334 +enable_so_size_mxr_block_64090 size mxr_block 0 64090 NULL
167335 +enable_so_set_arg_fndecl_64091 set_arg fndecl 3 64091 NULL
167336 +enable_so_s_end_bfs_super_block_64092 s_end bfs_super_block 0 64092 NULL
167337 +enable_so_act_len_htc_packet_64101 act_len htc_packet 0 64101 NULL
167338 +enable_so_cxgbi_hbas_add_fndecl_64102 cxgbi_hbas_add fndecl 3 64102 NULL
167339 +enable_so_rx_mini_pending_ethtool_ringparam_64104 rx_mini_pending ethtool_ringparam 0 64104 NULL
167340 +enable_so_ubiblock_major_vardecl_block_c_64105 ubiblock_major vardecl_block.c 0 64105 NULL
167341 +enable_so_j_first_unflushed_offset_reiserfs_journal_header_64107 j_first_unflushed_offset reiserfs_journal_header 0 64107 NULL
167342 +enable_so_nvme_trans_unit_serial_page_fndecl_64108 nvme_trans_unit_serial_page fndecl 4 64108 NULL
167343 +enable_so_lmac_count_bgx_64109 lmac_count bgx 0 64109 NULL
167344 +enable_so_btmrvl_fwdump_write_fndecl_64113 btmrvl_fwdump_write fndecl 3 64113 NULL
167345 +enable_so_fc_copy_buffer_to_sglist_fndecl_64115 fc_copy_buffer_to_sglist fndecl 0-2 64115 NULL
167346 +enable_so_amdgpu_bo_set_metadata_fndecl_64120 amdgpu_bo_set_metadata fndecl 3 64120 NULL
167347 +enable_so_compat_write_data_parport_operations_64123 compat_write_data parport_operations 0 64123 NULL
167348 +enable_so_tx_shift_at91_devtype_data_64126 tx_shift at91_devtype_data 0 64126 NULL
167349 +enable_so_gigaset_fill_inbuf_fndecl_64130 gigaset_fill_inbuf fndecl 3 64130 NULL
167350 +enable_so_gru_alloc_locked_gts_fndecl_64132 gru_alloc_locked_gts fndecl 1 64132 NULL nohasharray
167351 +enable_so_test_walk_mm_walk_64132 test_walk mm_walk 0 64132 &enable_so_gru_alloc_locked_gts_fndecl_64132
167352 +enable_so_alx_change_mtu_fndecl_64137 alx_change_mtu fndecl 2 64137 NULL
167353 +enable_so_ieee80211_tdls_mgmt_teardown_fndecl_64138 ieee80211_tdls_mgmt_teardown fndecl 10 64138 NULL
167354 +enable_so_hd_end_request_fndecl_64139 hd_end_request fndecl 2 64139 NULL
167355 +enable_so_pskb_expand_head_fndecl_64146 pskb_expand_head fndecl 2 64146 NULL
167356 +enable_so_free_bootmem_fndecl_64150 free_bootmem fndecl 2-1 64150 NULL
167357 +enable_so_xpc_kmalloc_cacheline_aligned_fndecl_64156 xpc_kmalloc_cacheline_aligned fndecl 1 64156 NULL
167358 +enable_so_btrfs_readpage_end_io_hook_fndecl_64160 btrfs_readpage_end_io_hook fndecl 4-5 64160 NULL
167359 +enable_so_drbd_header_size_fndecl_64163 drbd_header_size fndecl 0 64163 NULL
167360 +enable_so_max_gs_mthca_wq_64165 max_gs mthca_wq 0 64165 NULL
167361 +enable_so__rtl_rc_rate_set_series_fndecl_64170 _rtl_rc_rate_set_series fndecl 6 64170 NULL nohasharray
167362 +enable_so_ext4_get_stripe_size_fndecl_64170 ext4_get_stripe_size fndecl 0 64170 &enable_so__rtl_rc_rate_set_series_fndecl_64170
167363 +enable_so_sctp_getsockopt_maxburst_fndecl_64174 sctp_getsockopt_maxburst fndecl 2-0 64174 NULL
167364 +enable_so_xfs_trans_log_efd_extent_fndecl_64176 xfs_trans_log_efd_extent fndecl 3-4 64176 NULL
167365 +enable_so_max_fcoe_conn_cnic_dev_64181 max_fcoe_conn cnic_dev 0 64181 NULL
167366 +enable_so_nfcid1_len_nfc_target_64182 nfcid1_len nfc_target 0 64182 NULL
167367 +enable_so_phys_pcm_format_data_64188 phys pcm_format_data 0 64188 NULL
167368 +enable_so_out___kfifo_64192 out __kfifo 0 64192 NULL nohasharray
167369 +enable_so_bio_size_ok_fndecl_64192 bio_size_ok fndecl 3 64192 &enable_so_out___kfifo_64192
167370 +enable_so_sys_sethostname_fndecl_64193 sys_sethostname fndecl 2 64193 NULL
167371 +enable_so_bulk_out_endpointAddr_usb_ftdi_64197 bulk_out_endpointAddr usb_ftdi 0 64197 NULL
167372 +enable_so_contact_threshold_mms114_platform_data_64198 contact_threshold mms114_platform_data 0 64198 NULL
167373 +enable_so_pcibios_scan_specific_bus_fndecl_64203 pcibios_scan_specific_bus fndecl 1 64203 NULL
167374 +enable_so_ath6kl_wmi_pmparams_cmd_fndecl_64204 ath6kl_wmi_pmparams_cmd fndecl 2 64204 NULL
167375 +enable_so_st_set_options_fndecl_64214 st_set_options fndecl 2 64214 NULL
167376 +enable_so_mlx5e_change_mtu_fndecl_64217 mlx5e_change_mtu fndecl 2 64217 NULL
167377 +enable_so_outbuf_dma_usbhid_device_64218 outbuf_dma usbhid_device 0 64218 NULL
167378 +enable_so_recover_orphan_inode_fndecl_64220 recover_orphan_inode fndecl 2 64220 NULL
167379 +enable_so_balance_dirty_pages_fndecl_64228 balance_dirty_pages fndecl 3 64228 NULL
167380 +enable_so_format_chain_fndecl_64242 format_chain fndecl 2 64242 NULL
167381 +enable_so_bNbrPorts_usb_hub_descriptor_64245 bNbrPorts usb_hub_descriptor 0 64245 NULL
167382 +enable_so_compat_udpv6_setsockopt_fndecl_64246 compat_udpv6_setsockopt fndecl 5 64246 NULL
167383 +enable_so_payload_sz_status_msg_64247 payload_sz status_msg 0 64247 NULL
167384 +enable_so_adf4350_tune_r_cnt_fndecl_64249 adf4350_tune_r_cnt fndecl 2-0 64249 NULL
167385 +enable_so_nfs_idmap_get_desc_fndecl_64253 nfs_idmap_get_desc fndecl 2-4 64253 NULL nohasharray
167386 +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
167387 +enable_so_ccid_hc_rx_obj_size_ccid_operations_64257 ccid_hc_rx_obj_size ccid_operations 0 64257 NULL
167388 +enable_so_num_entries_wmi_target_roam_tbl_64263 num_entries wmi_target_roam_tbl 0 64263 NULL
167389 +enable_so_getxattr_cb_ceph_vxattr_64271 getxattr_cb ceph_vxattr 0 64271 NULL nohasharray
167390 +enable_so_dio_bio_complete_fndecl_64271 dio_bio_complete fndecl 0 64271 &enable_so_getxattr_cb_ceph_vxattr_64271
167391 +enable_so_dm_tm_read_lock_fndecl_64272 dm_tm_read_lock fndecl 2 64272 NULL
167392 +enable_so_denominator_v4l2_fract_64280 denominator v4l2_fract 0 64280 NULL
167393 +enable_so_t_prot_nents_se_cmd_64282 t_prot_nents se_cmd 0 64282 NULL
167394 +enable_so_SyS_mincore_fndecl_64284 SyS_mincore fndecl 2-1 64284 NULL
167395 +enable_so__dump_buf_data_order_vardecl_64288 _dump_buf_data_order vardecl 0 64288 NULL
167396 +enable_so_dev_minor_cuse_init_out_64292 dev_minor cuse_init_out 0 64292 NULL
167397 +enable_so_ath6kl_wmi_proc_events_vif_fndecl_64294 ath6kl_wmi_proc_events_vif fndecl 5 64294 NULL
167398 +enable_so_num_bds_table_bd_list_64306 num_bds_table bd_list 0 64306 NULL
167399 +enable_so_vfp_ast_vbios_enhtable_64307 vfp ast_vbios_enhtable 0 64307 NULL nohasharray
167400 +enable_so_sq_size_vardecl_64307 sq_size vardecl 0 64307 &enable_so_vfp_ast_vbios_enhtable_64307
167401 +enable_so_rd_out_oz_serial_ctx_64309 rd_out oz_serial_ctx 0 64309 NULL
167402 +enable_so_sys_vmsplice_fndecl_64310 sys_vmsplice fndecl 3 64310 NULL nohasharray
167403 +enable_so_snd_emux_create_port_fndecl_64310 snd_emux_create_port fndecl 3 64310 &enable_so_sys_vmsplice_fndecl_64310
167404 +enable_so_cw_putcs_fndecl_64311 cw_putcs fndecl 4-5-6 64311 NULL
167405 +enable_so___wa_xfer_setup_fndecl_64316 __wa_xfer_setup fndecl 0 64316 NULL
167406 +enable_so_smk_read_unconfined_fndecl_64317 smk_read_unconfined fndecl 3 64317 NULL
167407 +enable_so_hs_descs_count_ffs_data_64332 hs_descs_count ffs_data 0 64332 NULL
167408 +enable_so_cciss_add_disk_fndecl_64338 cciss_add_disk fndecl 3 64338 NULL
167409 +enable_so_tx_padding_usbatm_driver_64341 tx_padding usbatm_driver 0 64341 NULL
167410 +enable_so_vif_data_size_ieee80211_hw_64342 vif_data_size ieee80211_hw 0 64342 NULL
167411 +enable_so_part_start_hfsplus_sb_info_64347 part_start hfsplus_sb_info 0 64347 NULL
167412 +enable_so_bytesperline_au0828_dev_64350 bytesperline au0828_dev 0 64350 NULL
167413 +enable_so_opcount_compat_xfs_fsop_attrmulti_handlereq_64355 opcount compat_xfs_fsop_attrmulti_handlereq 0 64355 NULL
167414 +enable_so_logfs_truncate_fndecl_64356 logfs_truncate fndecl 2 64356 NULL
167415 +enable_so_cur_tx_pos_tegra_spi_data_64362 cur_tx_pos tegra_spi_data 0 64362 NULL
167416 +enable_so_isofs_get_blocks_fndecl_64368 isofs_get_blocks fndecl 2 64368 NULL nohasharray
167417 +enable_so_hpi_instream_host_buffer_allocate_fndecl_64368 hpi_instream_host_buffer_allocate fndecl 2 64368 &enable_so_isofs_get_blocks_fndecl_64368
167418 +enable_so_oom_score_adj_write_fndecl_64369 oom_score_adj_write fndecl 3 64369 NULL
167419 +enable_so_map_state_fndecl_64377 map_state fndecl 1 64377 NULL
167420 +enable_so_hdr_len_ib_mac_iocb_rsp_64379 hdr_len ib_mac_iocb_rsp 0 64379 NULL nohasharray
167421 +enable_so_hpi_init_responseV1_fndecl_64379 hpi_init_responseV1 fndecl 2 64379 &enable_so_hdr_len_ib_mac_iocb_rsp_64379
167422 +enable_so_num_rxd_qlcnic_adapter_64380 num_rxd qlcnic_adapter 0 64380 NULL
167423 +enable_so_endio_readpage_release_extent_fndecl_64387 endio_readpage_release_extent fndecl 3-2 64387 NULL
167424 +enable_so_s_max_sge_qib_qp_64390 s_max_sge qib_qp 0 64390 NULL
167425 +enable_so_mem_kexec_segment_64393 mem kexec_segment 0 64393 NULL
167426 +enable_so_MemoryWindowSize_DAC960_privdata_64399 MemoryWindowSize DAC960_privdata 0 64399 NULL
167427 +enable_so_oobretlen_mtd_oob_ops_64400 oobretlen mtd_oob_ops 0 64400 NULL
167428 +enable_so_sys_move_pages_fndecl_64401 sys_move_pages fndecl 2 64401 NULL
167429 +enable_so_init_data_si_sm_handlers_64406 init_data si_sm_handlers 0 64406 NULL
167430 +enable_so___get_user_pages_unlocked_fndecl_64409 __get_user_pages_unlocked fndecl 3 64409 NULL
167431 +enable_so_cdc_ncm_max_dgram_size_fndecl_64415 cdc_ncm_max_dgram_size fndecl 0 64415 NULL
167432 +enable_so_l2tp_xmit_skb_fndecl_64419 l2tp_xmit_skb fndecl 3 64419 NULL
167433 +enable_so_head_len_icmp_bxm_64424 head_len icmp_bxm 0 64424 NULL
167434 +enable_so_nfs4_new_slot_fndecl_64436 nfs4_new_slot fndecl 2 64436 NULL
167435 +enable_so_index_v4l2_frmivalenum_64442 index v4l2_frmivalenum 0 64442 NULL
167436 +enable_so_bLength_uvc_control_endpoint_descriptor_64456 bLength uvc_control_endpoint_descriptor 0 64456 NULL
167437 +enable_so_jpg_size_s2255_vc_64457 jpg_size s2255_vc 0 64457 NULL
167438 +enable_so_num_ch_st_sensor_settings_64459 num_ch st_sensor_settings 0 64459 NULL nohasharray
167439 +enable_so_i_file_acl_ext3_inode_info_64459 i_file_acl ext3_inode_info 0 64459 &enable_so_num_ch_st_sensor_settings_64459
167440 +enable_so___ocfs2_decrease_refcount_fndecl_64462 __ocfs2_decrease_refcount fndecl 5-4 64462 NULL
167441 +enable_so_new_node_page_fndecl_64464 new_node_page fndecl 2 64464 NULL
167442 +enable_so_send_write_chunks_fndecl_64466 send_write_chunks fndecl 0 64466 NULL
167443 +enable_so_btrfs_grow_device_fndecl_64468 btrfs_grow_device fndecl 3 64468 NULL
167444 +enable_so_acpi_dev_get_irqresource_fndecl_64469 acpi_dev_get_irqresource fndecl 2 64469 NULL
167445 +enable_so_request_key_and_link_fndecl_64470 request_key_and_link fndecl 4 64470 NULL
167446 +enable_so_nilfs_btnode_submit_block_fndecl_64473 nilfs_btnode_submit_block fndecl 3-2 64473 NULL
167447 +enable_so_vb2_read_fndecl_64476 vb2_read fndecl 3 64476 NULL
167448 +enable_so_nr_dirtied_pause_task_struct_64480 nr_dirtied_pause task_struct 0 64480 NULL nohasharray
167449 +enable_so_pid_vnr_fndecl_64480 pid_vnr fndecl 0 64480 &enable_so_nr_dirtied_pause_task_struct_64480
167450 +enable_so_set_aoe_iflist_fndecl_64482 set_aoe_iflist fndecl 2 64482 NULL
167451 +enable_so_transport_header_sk_buff_64483 transport_header sk_buff 0 64483 NULL
167452 +enable_so_SendReceive2_fndecl_64485 SendReceive2 fndecl 4 64485 NULL
167453 +enable_so_ax25_setsockopt_fndecl_64487 ax25_setsockopt fndecl 5 64487 NULL
167454 +enable_so_vhost_hlen_vhost_net_virtqueue_64488 vhost_hlen vhost_net_virtqueue 0 64488 NULL
167455 +enable_so_size_exynos_drm_gem_buf_64490 size exynos_drm_gem_buf 0 64490 NULL
167456 +enable_so_val_reginit_item_64493 val reginit_item 0 64493 NULL
167457 +enable_so___FIXADDR_TOP_vardecl_64494 __FIXADDR_TOP vardecl 0 64494 NULL
167458 +enable_so_ddr_end_intel_sst_drv_64496 ddr_end intel_sst_drv 0 64496 NULL
167459 +enable_so_read_status_fndecl_64497 read_status fndecl 0 64497 NULL
167460 +enable_so_ext_ramdisk_size_boot_params_64498 ext_ramdisk_size boot_params 0 64498 NULL
167461 +enable_so_iwl_mvm_coex_dump_mbox_old_fndecl_64500 iwl_mvm_coex_dump_mbox_old fndecl 0-3 64500 NULL
167462 +enable_so_num_def_tx_descs_octeon_config_64501 num_def_tx_descs octeon_config 0 64501 NULL
167463 +enable_so_ds3000_writeFW_fndecl_64503 ds3000_writeFW fndecl 0 64503 NULL
167464 +enable_so_dvb_demux_ioctl_fndecl_64510 dvb_demux_ioctl fndecl 2 64510 NULL
167465 +enable_so_fc_plogi_get_maxframe_fndecl_64511 fc_plogi_get_maxframe fndecl 0 64511 NULL
167466 +enable_so_insize_cros_ec_command_64521 insize cros_ec_command 0 64521 NULL
167467 +enable_so_hdr_len_st_proto_s_64523 hdr_len st_proto_s 0 64523 NULL
167468 +enable_so_tun_alloc_skb_fndecl_64531 tun_alloc_skb fndecl 4-3-2 64531 NULL
167469 +enable_so_txq_cnt_tg3_64539 txq_cnt tg3 0 64539 NULL
167470 +enable_so_cfg80211_process_disassoc_fndecl_64540 cfg80211_process_disassoc fndecl 3 64540 NULL
167471 +enable_so_fw_dump_tmplt_size_scsi_qla_host_64541 fw_dump_tmplt_size scsi_qla_host 0 64541 NULL
167472 +enable_so_phys_size_ntb_transport_mw_64544 phys_size ntb_transport_mw 0 64544 NULL
167473 +enable_so_ath10k_p2p_noa_ie_len_compute_fndecl_64548 ath10k_p2p_noa_ie_len_compute fndecl 0 64548 NULL
167474 +enable_so_minix_V1_raw_inode_fndecl_64554 minix_V1_raw_inode fndecl 2 64554 NULL
167475 +enable_so_num_channels_sh_tmu_device_64556 num_channels sh_tmu_device 0 64556 NULL
167476 +enable_so_xfs_zero_last_block_fndecl_64560 xfs_zero_last_block fndecl 3 64560 NULL nohasharray
167477 +enable_so_valid_tty_audit_buf_64560 valid tty_audit_buf 0 64560 &enable_so_xfs_zero_last_block_fndecl_64560
167478 +enable_so_stv090x_write_regs_fndecl_64562 stv090x_write_regs fndecl 4 64562 NULL
167479 +enable_so_hiddev_compat_ioctl_fndecl_64564 hiddev_compat_ioctl fndecl 2 64564 NULL
167480 +enable_so_blockshift_nand_flash_dev_64570 blockshift nand_flash_dev 0 64570 NULL
167481 +enable_so_offset_seg_buf_64571 offset seg_buf 0 64571 NULL
167482 +enable_so___fprog_create_fndecl_64572 __fprog_create fndecl 2 64572 NULL
167483 +enable_so_rq_enc_pages_num_rpc_rqst_64573 rq_enc_pages_num rpc_rqst 0 64573 NULL
167484 +enable_so_mirrors_p1_ore_layout_64575 mirrors_p1 ore_layout 0 64575 NULL nohasharray
167485 +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
167486 +enable_so_erst_read_fndecl_64575 erst_read fndecl 0-1 64575 &enable_so_cdc_ncm_align_tail_fndecl_64575
167487 +enable_so_hfsplus_iget_fndecl_64576 hfsplus_iget fndecl 2 64576 NULL
167488 +enable_so_len_fuse_copy_state_64585 len fuse_copy_state 0 64585 NULL nohasharray
167489 +enable_so_long_len_fat_ioctl_filldir_callback_64585 long_len fat_ioctl_filldir_callback 0 64585 &enable_so_len_fuse_copy_state_64585
167490 +enable_so_blocks_per_seg_f2fs_sb_info_64587 blocks_per_seg f2fs_sb_info 0 64587 NULL
167491 +enable_so_udl_gem_create_fndecl_64590 udl_gem_create fndecl 3 64590 NULL
167492 +enable_so_alloc_context_fndecl_64592 alloc_context fndecl 1 64592 NULL
167493 +enable_so_isp1362_urb_dequeue_fndecl_64595 isp1362_urb_dequeue fndecl 3 64595 NULL
167494 +enable_so_of_count_phandle_with_args_fndecl_64600 of_count_phandle_with_args fndecl 0 64600 NULL nohasharray
167495 +enable_so_nr_tlb_entries_omap_iommu_64600 nr_tlb_entries omap_iommu 0 64600 &enable_so_of_count_phandle_with_args_fndecl_64600
167496 +enable_so_logical_offset_btrfs_ioctl_same_extent_info_64608 logical_offset btrfs_ioctl_same_extent_info 0 64608 NULL
167497 +enable_so_gpr_set_fndecl_64611 gpr_set fndecl 3-4 64611 NULL
167498 +enable_so_s_gdb_count_ext4_sb_info_64617 s_gdb_count ext4_sb_info 0 64617 NULL
167499 +enable_so_o2hb_setup_one_bio_fndecl_64622 o2hb_setup_one_bio fndecl 4 64622 NULL
167500 +enable_so_xfs_iext_remove_indirect_fndecl_64624 xfs_iext_remove_indirect fndecl 3 64624 NULL
167501 +enable_so_s_inodes_per_group_ext3_sb_info_64627 s_inodes_per_group ext3_sb_info 0 64627 NULL
167502 +enable_so_objio_alloc_io_state_fndecl_64631 objio_alloc_io_state fndecl 6-7 64631 NULL
167503 +enable_so_bsg_job_done_fndecl_64640 bsg_job_done fndecl 3 64640 NULL
167504 +enable_so_netlink_alloc_large_skb_fndecl_64652 netlink_alloc_large_skb fndecl 1 64652 NULL
167505 +enable_so_kmp_init_fndecl_64654 kmp_init fndecl 2 64654 NULL
167506 +enable_so_num_allowed_vlans_qlcnic_sriov_64661 num_allowed_vlans qlcnic_sriov 0 64661 NULL
167507 +enable_so_cnic_init_id_tbl_fndecl_64665 cnic_init_id_tbl fndecl 3-2 64665 NULL
167508 +enable_so_usnic_ib_reg_mr_fndecl_64668 usnic_ib_reg_mr fndecl 2-3 64668 NULL nohasharray
167509 +enable_so_jbd2_alloc_fndecl_64668 jbd2_alloc fndecl 1 64668 &enable_so_usnic_ib_reg_mr_fndecl_64668
167510 +enable_so_maximum_num_containers_aac_dev_64672 maximum_num_containers aac_dev 0 64672 NULL
167511 +enable_so_isr_commands_read_fndecl_64677 isr_commands_read fndecl 3 64677 NULL nohasharray
167512 +enable_so_cciss_update_drive_info_fndecl_64677 cciss_update_drive_info fndecl 2 64677 &enable_so_isr_commands_read_fndecl_64677
167513 +enable_so_mapbase_uart_port_64681 mapbase uart_port 0 64681 NULL
167514 +enable_so_sys_flistxattr_fndecl_64684 sys_flistxattr fndecl 3 64684 NULL
167515 +enable_so_num_fields_ima_template_desc_64688 num_fields ima_template_desc 0 64688 NULL
167516 +enable_so_tkip_cm_active_orinoco_private_64689 tkip_cm_active orinoco_private 0 64689 NULL
167517 +enable_so_srp_sg_tablesize_vardecl_ib_srp_c_64692 srp_sg_tablesize vardecl_ib_srp.c 0 64692 NULL
167518 +enable_so_size_cramfs_inode_64704 size cramfs_inode 0 64704 NULL
167519 +enable_so_lbs_rdrf_read_fndecl_64708 lbs_rdrf_read fndecl 3 64708 NULL
167520 +enable_so_alloc_bytenr_btrfs_root_64709 alloc_bytenr btrfs_root 0 64709 NULL
167521 +enable_so_isdn_ppp_fill_rq_fndecl_64711 isdn_ppp_fill_rq fndecl 2 64711 NULL
167522 +enable_so_base_cmdline_vardecl_dma_contiguous_c_64713 base_cmdline vardecl_dma-contiguous.c 0 64713 NULL
167523 +enable_so_rcount_x25_asy_64715 rcount x25_asy 0 64715 NULL
167524 +enable_so_width_drm_framebuffer_64716 width drm_framebuffer 0 64716 NULL
167525 +enable_so_spc_modesense_long_blockdesc_fndecl_64717 spc_modesense_long_blockdesc fndecl 0 64717 NULL
167526 +enable_so_vs_bsize_vxfs_sb_64718 vs_bsize vxfs_sb 0 64718 NULL
167527 +enable_so_mt7601u_dma_fw_fndecl_64719 mt7601u_dma_fw fndecl 4 64719 NULL
167528 +enable_so_rx_defrag_decrypt_failed_read_fndecl_64720 rx_defrag_decrypt_failed_read fndecl 3 64720 NULL
167529 +enable_so_size_host_cmd_ds_command_64722 size host_cmd_ds_command 0 64722 NULL
167530 +enable_so_max_touch_num_goodix_ts_data_64725 max_touch_num goodix_ts_data 0 64725 NULL
167531 +enable_so_xfs_iext_add_fndecl_64733 xfs_iext_add fndecl 3 64733 NULL
167532 +enable_so_last_mgmt_tx_frame_len_wmi_64739 last_mgmt_tx_frame_len wmi 0 64739 NULL
167533 +enable_so_se_io_cb_fndecl_64742 se_io_cb fndecl 3 64742 NULL
167534 +enable_so_ulite_assign_fndecl_64744 ulite_assign fndecl 3-2 64744 NULL
167535 +enable_so_net_frag_header_len_inet_connection_sock_af_ops_64745 net_frag_header_len inet_connection_sock_af_ops 0 64745 NULL
167536 +enable_so_layout_leb_in_gaps_fndecl_64749 layout_leb_in_gaps fndecl 0 64749 NULL
167537 +enable_so_pcpu_build_alloc_info_fndecl_64752 pcpu_build_alloc_info fndecl 3-2-1 64752 NULL
167538 +enable_so_create_pid_cachep_fndecl_64753 create_pid_cachep fndecl 1 64753 NULL
167539 +enable_so_ocfs2_fill_initial_dirents_fndecl_64755 ocfs2_fill_initial_dirents fndecl 4 64755 NULL nohasharray
167540 +enable_so_iio_device_alloc_fndecl_64755 iio_device_alloc fndecl 1 64755 &enable_so_ocfs2_fill_initial_dirents_fndecl_64755
167541 +enable_so_datasz_memelfnote_64760 datasz memelfnote 0 64760 NULL
167542 +enable_so_raid_disk_mdp_device_descriptor_s_64762 raid_disk mdp_device_descriptor_s 0 64762 NULL
167543 +enable_so_ima_appraise_measurement_fndecl_64769 ima_appraise_measurement fndecl 6 64769 NULL
167544 +enable_so_jfs_get_block_fndecl_64772 jfs_get_block fndecl 2 64772 NULL
167545 +enable_so_at24_eeprom_write_fndecl_64775 at24_eeprom_write fndecl 3-0-4 64775 NULL nohasharray
167546 +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
167547 +enable_so_ib_qib_max_srq_sges_vardecl_64786 ib_qib_max_srq_sges vardecl 0 64786 NULL
167548 +enable_so_tun_hlen_ip_tunnel_64791 tun_hlen ip_tunnel 0 64791 NULL
167549 +enable_so_fw_size_sst_pdata_64793 fw_size sst_pdata 0 64793 NULL
167550 +enable_so_c2_mq_req_init_fndecl_64795 c2_mq_req_init fndecl 4 64795 NULL
167551 +enable_so_mac80211_format_buffer_fndecl_64801 mac80211_format_buffer fndecl 2 64801 NULL
167552 +enable_so__update_journal_header_block_fndecl_64803 _update_journal_header_block fndecl 2 64803 NULL nohasharray
167553 +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
167554 +enable_so_pmsg_size_ramoops_context_64804 pmsg_size ramoops_context 0 64804 NULL
167555 +enable_so_tx_headroom_nci_dev_64805 tx_headroom nci_dev 0 64805 NULL
167556 +enable_so_alloc_align_snd_array_64806 alloc_align snd_array 0 64806 NULL
167557 +enable_so_fpa_get_fndecl_64809 fpa_get fndecl 3-4 64809 NULL
167558 +enable_so_il_dbgfs_fh_reg_read_fndecl_64818 il_dbgfs_fh_reg_read fndecl 3 64818 NULL
167559 +enable_so_iwl_dbgfs_scan_ant_rxchain_read_fndecl_64820 iwl_dbgfs_scan_ant_rxchain_read fndecl 3 64820 NULL
167560 +enable_so_reg_list_size_amdgpu_rlc_64826 reg_list_size amdgpu_rlc 0 64826 NULL
167561 +enable_so_atr_csum_cm4000_dev_64828 atr_csum cm4000_dev 0 64828 NULL
167562 +enable_so_ocfs2_xattr_index_block_find_fndecl_64835 ocfs2_xattr_index_block_find fndecl 0 64835 NULL
167563 +enable_so_lprocfs_write_frac_helper_fndecl_64841 lprocfs_write_frac_helper fndecl 2 64841 NULL
167564 +enable_so_edma_prep_dma_cyclic_fndecl_64842 edma_prep_dma_cyclic fndecl 4-3 64842 NULL
167565 +enable_so_iov_iter_truncate_fndecl_64844 iov_iter_truncate fndecl 2 64844 NULL
167566 +enable_so_smsc75xx_change_mtu_fndecl_64845 smsc75xx_change_mtu fndecl 2 64845 NULL nohasharray
167567 +enable_so_ngpio_gpio_chip_64845 ngpio gpio_chip 0 64845 &enable_so_smsc75xx_change_mtu_fndecl_64845
167568 +enable_so__send_fndecl_64846 _send fndecl 3 64846 NULL nohasharray
167569 +enable_so_ath6kl_wmi_sta_bmiss_enhance_cmd_fndecl_64846 ath6kl_wmi_sta_bmiss_enhance_cmd fndecl 2 64846 &enable_so__send_fndecl_64846
167570 +enable_so__req_append_segment_fndecl_64852 _req_append_segment fndecl 2 64852 NULL nohasharray
167571 +enable_so_tool_dbfn_write_fndecl_64852 tool_dbfn_write fndecl 3 64852 &enable_so__req_append_segment_fndecl_64852
167572 +enable_so_log_max_len_client_hdr_64853 log_max_len client_hdr 0 64853 NULL nohasharray
167573 +enable_so_E_info_CARD_PROPERTIES_64853 E_info CARD_PROPERTIES 0 64853 &enable_so_log_max_len_client_hdr_64853
167574 +enable_so_bud_wbuf_callback_fndecl_64863 bud_wbuf_callback fndecl 3 64863 NULL
167575 +enable_so_rh_inc_fndecl_64864 rh_inc fndecl 2 64864 NULL
167576 +enable_so_raw_recvmsg_fndecl_64866 raw_recvmsg fndecl 3 64866 NULL nohasharray
167577 +enable_so_len_discard_entry_64866 len discard_entry 0 64866 &enable_so_raw_recvmsg_fndecl_64866
167578 +enable_so_p_linux_binprm_64868 p linux_binprm 0 64868 NULL
167579 +enable_so_sc_only_mode_read_fndecl_64871 sc_only_mode_read fndecl 3 64871 NULL
167580 +enable_so_rq_count_enic_64875 rq_count enic 0 64875 NULL
167581 +enable_so_tx_ring_size_fe_priv_64876 tx_ring_size fe_priv 0 64876 NULL
167582 +enable_so_tx_max_frame_ntb_transport_qp_64878 tx_max_frame ntb_transport_qp 0 64878 NULL
167583 +enable_so_logfs_read_meta_inode_fndecl_64880 logfs_read_meta_inode fndecl 2 64880 NULL
167584 +enable_so_align_nvkm_gpuobj_class_64885 align nvkm_gpuobj_class 0 64885 NULL nohasharray
167585 +enable_so_vfs_listxattr_fndecl_64885 vfs_listxattr fndecl 0 64885 &enable_so_align_nvkm_gpuobj_class_64885
167586 +enable_so_snd_pcm_hw_param_max_fndecl_64887 snd_pcm_hw_param_max fndecl 4 64887 NULL nohasharray
167587 +enable_so_qs_in_channels_hdspm_64887 qs_in_channels hdspm 0 64887 &enable_so_snd_pcm_hw_param_max_fndecl_64887 nohasharray
167588 +enable_so_xbfi_blockcount_xfs_bmap_free_item_64887 xbfi_blockcount xfs_bmap_free_item 0 64887 &enable_so_qs_in_channels_hdspm_64887
167589 +enable_so_ks8995_write_fndecl_64889 ks8995_write fndecl 4 64889 NULL nohasharray
167590 +enable_so_count_ioctl_gntalloc_alloc_gref_64889 count ioctl_gntalloc_alloc_gref 0 64889 &enable_so_ks8995_write_fndecl_64889
167591 +enable_so_reserve_sfa_size_fndecl_64893 reserve_sfa_size fndecl 2 64893 NULL
167592 +enable_so_mpeglinesize_vardecl_cx23885_417_c_64898 mpeglinesize vardecl_cx23885-417.c 0 64898 NULL nohasharray
167593 +enable_so_provide_user_output_fndecl_64898 provide_user_output fndecl 3 64898 &enable_so_mpeglinesize_vardecl_cx23885_417_c_64898
167594 +enable_so_f_audio_buffer_alloc_fndecl_64901 f_audio_buffer_alloc fndecl 1 64901 NULL
167595 +enable_so_unuse_pte_range_fndecl_64903 unuse_pte_range fndecl 3 64903 NULL
167596 +enable_so_maxctl_brcmf_bus_64907 maxctl brcmf_bus 0 64907 NULL nohasharray
167597 +enable_so_ath10k_read_wmi_services_fndecl_64907 ath10k_read_wmi_services fndecl 3 64907 &enable_so_maxctl_brcmf_bus_64907
167598 +enable_so_data_size_event_reader_64909 data_size event_reader 0 64909 NULL
167599 +enable_so_nmsgs_i2c_rdwr_ioctl_data_64911 nmsgs i2c_rdwr_ioctl_data 0 64911 NULL
167600 +enable_so_next_block_for_io_dio_submit_64914 next_block_for_io dio_submit 0 64914 NULL
167601 +enable_so_rd_size_uhid_create_req_64916 rd_size uhid_create_req 0 64916 NULL
167602 +enable_so_dma_attach_fndecl_64917 dma_attach fndecl 8-7-10-5-6 64917 NULL
167603 +enable_so_roccat_read_fndecl_64918 roccat_read fndecl 3 64918 NULL
167604 +enable_so_nl80211_send_mlme_event_fndecl_64920 nl80211_send_mlme_event fndecl 4 64920 NULL
167605 +enable_so_nvkm_subdev_create__fndecl_64924 nvkm_subdev_create_ fndecl 7 64924 NULL
167606 +enable_so_ath10k_wmi_tlv_op_gen_bcn_tmpl_fndecl_64938 ath10k_wmi_tlv_op_gen_bcn_tmpl fndecl 8 64938 NULL nohasharray
167607 +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
167608 +enable_so_pci_iov_virtfn_bus_fndecl_64949 pci_iov_virtfn_bus fndecl 0-2 64949 NULL
167609 +enable_so_ieee80211_tdls_add_ies_fndecl_64954 ieee80211_tdls_add_ies fndecl 8 64954 NULL
167610 +enable_so_status_spi_message_64956 status spi_message 0 64956 NULL
167611 +enable_so_BlockCount_DAC960_Command_64957 BlockCount DAC960_Command 0 64957 NULL
167612 +enable_so_dvb_ca_write_fndecl_64960 dvb_ca_write fndecl 3 64960 NULL
167613 +enable_so_count_acpi_processor_power_64969 count acpi_processor_power 0 64969 NULL
167614 +enable_so_len_ctrl_queue_64975 len ctrl_queue 0 64975 NULL
167615 +enable_so_io_init_fndecl_64981 io_init fndecl 2 64981 NULL
167616 +enable_so_rp2_alloc_ports_fndecl_64987 rp2_alloc_ports fndecl 0-1 64987 NULL nohasharray
167617 +enable_so_hq_size_cnic_local_64987 hq_size cnic_local 0 64987 &enable_so_rp2_alloc_ports_fndecl_64987
167618 +enable_so_tx_frag_mpdu_alloc_failed_read_fndecl_64988 tx_frag_mpdu_alloc_failed_read fndecl 3 64988 NULL
167619 +enable_so_maxTxCredits_edgeport_port_64991 maxTxCredits edgeport_port 0 64991 NULL
167620 +enable_so_UpdateRegs_fndecl_64995 UpdateRegs fndecl 2-3 64995 NULL nohasharray
167621 +enable_so_vt8231_device_add_fndecl_64995 vt8231_device_add fndecl 1 64995 &enable_so_UpdateRegs_fndecl_64995
167622 +enable_so_access_length_acpi_connection_info_65000 access_length acpi_connection_info 0 65000 NULL
167623 +enable_so_mask_cbuf_65001 mask cbuf 0 65001 NULL
167624 +enable_so_cc2520_read_rxfifo_fndecl_65006 cc2520_read_rxfifo fndecl 3 65006 NULL
167625 +enable_so_netif_get_num_default_rss_queues_fndecl_65008 netif_get_num_default_rss_queues fndecl 0 65008 NULL
167626 +enable_so_actual_size_saa7164_user_buffer_65010 actual_size saa7164_user_buffer 0 65010 NULL
167627 +enable_so_compat_sys_process_vm_writev_fndecl_65017 compat_sys_process_vm_writev fndecl 5-3 65017 NULL
167628 +enable_so_cmd_len_sg_io_hdr_65018 cmd_len sg_io_hdr 0 65018 NULL
167629 +enable_so_print_page_owner_fndecl_65020 print_page_owner fndecl 2 65020 NULL
167630 +enable_so_dfs_file_write_fndecl_65023 dfs_file_write fndecl 3 65023 NULL
167631 +enable_so_intr_size_usb_pcwd_private_65024 intr_size usb_pcwd_private 0 65024 NULL
167632 +enable_so_au8522_rc_read_fndecl_65026 au8522_rc_read fndecl 5 65026 NULL
167633 +enable_so_ocfs2_block_group_fill_fndecl_65027 ocfs2_block_group_fill fndecl 4 65027 NULL
167634 +enable_so_prev_length_deflate_state_65029 prev_length deflate_state 0 65029 NULL
167635 +enable_so_arch_add_memory_fndecl_65052 arch_add_memory fndecl 3-2 65052 NULL
167636 +enable_so_brcmf_cfg80211_vndr_cmds_dcmd_handler_fndecl_65059 brcmf_cfg80211_vndr_cmds_dcmd_handler fndecl 4 65059 NULL
167637 +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
167638 +enable_so_bus_add_driver_fndecl_65060 bus_add_driver fndecl 0 65060 &enable_so_iscsi_max_rcv_data_seg_len_dev_db_entry_65060
167639 +enable_so_flag_node_footer_65063 flag node_footer 0 65063 NULL
167640 +enable_so_ResidualCnt__ErrorInfo_struct_65074 ResidualCnt _ErrorInfo_struct 0 65074 NULL
167641 +enable_so_mmc_test_transfer_fndecl_65076 mmc_test_transfer fndecl 6-5-3 65076 NULL
167642 +enable_so_xfs_growfs_rt_alloc_fndecl_65079 xfs_growfs_rt_alloc fndecl 2-3 65079 NULL
167643 +enable_so_SyS_bpf_fndecl_65081 SyS_bpf fndecl 3 65081 NULL
167644 +enable_so_frame_size_pwc_device_65084 frame_size pwc_device 0 65084 NULL
167645 +enable_so_fcoe_len_fcoe_rport_65085 fcoe_len fcoe_rport 0 65085 NULL
167646 +enable_so_width_cx88_core_65086 width cx88_core 0 65086 NULL nohasharray
167647 +enable_so_capi_ttyminors_vardecl_capi_c_65086 capi_ttyminors vardecl_capi.c 0 65086 &enable_so_width_cx88_core_65086
167648 +enable_so_num_tx_bds_bcmgenet_priv_65087 num_tx_bds bcmgenet_priv 0 65087 NULL
167649 +enable_so_size_ion_test_rw_data_65088 size ion_test_rw_data 0 65088 NULL
167650 +enable_so_queue_depth_se_node_acl_65089 queue_depth se_node_acl 0 65089 NULL
167651 +enable_so_max_write_send_sge_ocrdma_mbx_query_config_65090 max_write_send_sge ocrdma_mbx_query_config 0 65090 NULL
167652 +enable_so_sco_send_frame_fndecl_65092 sco_send_frame fndecl 3 65092 NULL
167653 +enable_so_fat_write_end_fndecl_65095 fat_write_end fndecl 5 65095 NULL nohasharray
167654 +enable_so_rtw_android_get_macaddr_fndecl_65095 rtw_android_get_macaddr fndecl 0 65095 &enable_so_fat_write_end_fndecl_65095
167655 +enable_so_cfg_num_qs_be_adapter_65098 cfg_num_qs be_adapter 0 65098 NULL
167656 +enable_so_ecryptfs_write_begin_fndecl_65099 ecryptfs_write_begin fndecl 3 65099 NULL
167657 +enable_so_ieee802154_hdr_push_fndecl_65100 ieee802154_hdr_push fndecl 0 65100 NULL nohasharray
167658 +enable_so_max_xri_lpfc_max_cfg_param_65100 max_xri lpfc_max_cfg_param 0 65100 &enable_so_ieee802154_hdr_push_fndecl_65100
167659 +enable_so_sndsize_sock_xprt_65105 sndsize sock_xprt 0 65105 NULL nohasharray
167660 +enable_so_iwl_dbgfs_bt_notif_read_fndecl_65105 iwl_dbgfs_bt_notif_read fndecl 3 65105 &enable_so_sndsize_sock_xprt_65105
167661 +enable_so_x25_recvmsg_fndecl_65106 x25_recvmsg fndecl 3 65106 NULL nohasharray
167662 +enable_so_ocfs2_dx_dir_rebalance_fndecl_65106 ocfs2_dx_dir_rebalance fndecl 7-0 65106 &enable_so_x25_recvmsg_fndecl_65106
167663 +enable_so_ntb_mw_count_fndecl_65108 ntb_mw_count fndecl 0 65108 NULL
167664 +enable_so_nilfs_cpfile_is_snapshot_fndecl_65110 nilfs_cpfile_is_snapshot fndecl 2 65110 NULL
167665 +enable_so_mmc_test_seq_read_perf_fndecl_65111 mmc_test_seq_read_perf fndecl 2 65111 NULL
167666 +enable_so_hsi_alloc_controller_fndecl_65113 hsi_alloc_controller fndecl 1 65113 NULL nohasharray
167667 +enable_so_mega_n_to_m_fndecl_65113 mega_n_to_m fndecl 0 65113 &enable_so_hsi_alloc_controller_fndecl_65113
167668 +enable_so_fat_alloc_new_dir_fndecl_65115 fat_alloc_new_dir fndecl 0 65115 NULL
167669 +enable_so_amdgpu_bo_list_set_fndecl_65117 amdgpu_bo_list_set fndecl 5 65117 NULL
167670 +enable_so_wpa_ie_len_libipw_device_65120 wpa_ie_len libipw_device 0 65120 NULL
167671 +enable_so_scrub_extent_for_parity_fndecl_65123 scrub_extent_for_parity fndecl 3-2-4 65123 NULL
167672 +enable_so_exynos_drm_init_buf_fndecl_65130 exynos_drm_init_buf fndecl 2 65130 NULL
167673 +enable_so_keyctl_instantiate_key_fndecl_65132 keyctl_instantiate_key fndecl 3 65132 NULL
167674 +enable_so_qib_rcvhdrentsize_vardecl_qib_iba7322_c_65133 qib_rcvhdrentsize vardecl_qib_iba7322.c 0 65133 NULL
167675 +enable_so_do_ip_setsockopt_fndecl_65135 do_ip_setsockopt fndecl 5 65135 NULL
167676 +enable_so_kimage_file_alloc_init_fndecl_65136 kimage_file_alloc_init fndecl 5 65136 NULL
167677 +enable_so_num_pipe_drm_psb_private_65138 num_pipe drm_psb_private 0 65138 NULL
167678 +enable_so_ixgbe_dbg_netdev_ops_read_fndecl_65148 ixgbe_dbg_netdev_ops_read fndecl 3 65148 NULL
167679 +enable_so_depth_sh_veu_format_65150 depth sh_veu_format 0 65150 NULL
167680 +enable_so___recover_dot_dentries_fndecl_65151 __recover_dot_dentries fndecl 2 65151 NULL
167681 +enable_so_piocnt_qib_ctxtdata_65161 piocnt qib_ctxtdata 0 65161 NULL nohasharray
167682 +enable_so_nexthdrlen_lowpan_nhc_65161 nexthdrlen lowpan_nhc 0 65161 &enable_so_piocnt_qib_ctxtdata_65161 nohasharray
167683 +enable_so_dma_txsize_vardecl_stmmac_main_c_65161 dma_txsize vardecl_stmmac_main.c 0 65161 &enable_so_nexthdrlen_lowpan_nhc_65161
167684 +enable_so_mwifiex_cmd_append_vsie_tlv_fndecl_65164 mwifiex_cmd_append_vsie_tlv fndecl 0 65164 NULL
167685 +enable_so_ccp_get_dm_area_fndecl_65170 ccp_get_dm_area fndecl 4 65170 NULL
167686 +enable_so___ext4_block_zero_page_range_fndecl_65173 __ext4_block_zero_page_range fndecl 3 65173 NULL
167687 +enable_so_crb_read_netxen_adapter_65178 crb_read netxen_adapter 0 65178 NULL
167688 +enable_so_xfs_rtget_summary_fndecl_65179 xfs_rtget_summary fndecl 4-3 65179 NULL
167689 +enable_so_usb_gadget_get_string_fndecl_65180 usb_gadget_get_string fndecl 0 65180 NULL
167690 +enable_so_fat_total_sect_fat_bios_param_block_65184 fat_total_sect fat_bios_param_block 0 65184 NULL
167691 +enable_so_svc_tcp_restore_pages_fndecl_65189 svc_tcp_restore_pages fndecl 0 65189 NULL
167692 +enable_so_free_blk_ocfs2_cached_block_free_65195 free_blk ocfs2_cached_block_free 0 65195 NULL
167693 +enable_so_privacy_invoked_libipw_device_65199 privacy_invoked libipw_device 0 65199 NULL nohasharray
167694 +enable_so_get_fdb_entries_fndecl_65199 get_fdb_entries fndecl 3 65199 &enable_so_privacy_invoked_libipw_device_65199
167695 +enable_so_xfs_bmap_shift_extents_fndecl_65200 xfs_bmap_shift_extents fndecl 4 65200 NULL
167696 +enable_so_NumIdentPartitions_cfi_intelext_regioninfo_65201 NumIdentPartitions cfi_intelext_regioninfo 0 65201 NULL
167697 +enable_so_SyS_sched_getattr_fndecl_65202 SyS_sched_getattr fndecl 3 65202 NULL
167698 +enable_so_ackr_win_top_rxrpc_call_65205 ackr_win_top rxrpc_call 0 65205 NULL
167699 +enable_so_height_dt3155_priv_65206 height dt3155_priv 0 65206 NULL nohasharray
167700 +enable_so_fat_shortname2uni_fndecl_65206 fat_shortname2uni fndecl 0 65206 &enable_so_height_dt3155_priv_65206
167701 +enable_so_aper_size_radeon_mc_65212 aper_size radeon_mc 0 65212 NULL
167702 +enable_so_get_regs_len_ethtool_ops_65213 get_regs_len ethtool_ops 0 65213 NULL
167703 +enable_so_ib_uverbs_create_srq_fndecl_65216 ib_uverbs_create_srq fndecl 3 65216 NULL
167704 +enable_so_i40evf_change_mtu_fndecl_65220 i40evf_change_mtu fndecl 2 65220 NULL
167705 +enable_so_maxresp_sz_nfsd4_channel_attrs_65221 maxresp_sz nfsd4_channel_attrs 0 65221 NULL
167706 +enable_so_read_gssp_fndecl_65224 read_gssp fndecl 3 65224 NULL
167707 +enable_so_sci_rxfill_fndecl_65226 sci_rxfill fndecl 0 65226 NULL
167708 +enable_so_ocfs2_xattr_bucket_get_name_value_fndecl_65230 ocfs2_xattr_bucket_get_name_value fndecl 0 65230 NULL
167709 +enable_so_iscsi_iser_recv_fndecl_65231 iscsi_iser_recv fndecl 4 65231 NULL
167710 +enable_so_fb_max_height_vmw_private_65243 fb_max_height vmw_private 0 65243 NULL
167711 +enable_so_ext4_da_write_inline_data_begin_fndecl_65244 ext4_da_write_inline_data_begin fndecl 4-3 65244 NULL nohasharray
167712 +enable_so_word3_alx_rrd_65244 word3 alx_rrd 0 65244 &enable_so_ext4_da_write_inline_data_begin_fndecl_65244
167713 +enable_so_range_end_writeback_control_65245 range_end writeback_control 0 65245 NULL
167714 +enable_so_bytes_dump_iterator_65249 bytes dump_iterator 0 65249 NULL
167715 +enable_so_cx24116_writeregN_fndecl_65252 cx24116_writeregN fndecl 4 65252 NULL
167716 +enable_so_ctx_blk_size_cnic_eth_dev_65262 ctx_blk_size cnic_eth_dev 0 65262 NULL
167717 +enable_so_tool_peer_spad_read_fndecl_65263 tool_peer_spad_read fndecl 3 65263 NULL
167718 +enable_so_get_dir_index_using_offset_fndecl_65267 get_dir_index_using_offset fndecl 0-7 65267 NULL
167719 +enable_so_ubi_self_check_all_ff_fndecl_65268 ubi_self_check_all_ff fndecl 4 65268 NULL
167720 +enable_so_portnames_read_fndecl_65269 portnames_read fndecl 3 65269 NULL
167721 +enable_so_m_ialloc_blks_xfs_mount_65284 m_ialloc_blks xfs_mount 0 65284 NULL
167722 +enable_so_size_t4_rq_65285 size t4_rq 0 65285 NULL
167723 +enable_so_update_stat_data_fndecl_65289 update_stat_data fndecl 3 65289 NULL
167724 +enable_so_hpfs_translate_name_fndecl_65290 hpfs_translate_name fndecl 3 65290 NULL
167725 +enable_so_wear_eb_count_vardecl_nandsim_c_65291 wear_eb_count vardecl_nandsim.c 0 65291 NULL
167726 +enable_so_usb_stor_probe2_fndecl_65298 usb_stor_probe2 fndecl 0 65298 NULL nohasharray
167727 +enable_so_rt2x00debug_write_rfcsr_fndecl_65298 rt2x00debug_write_rfcsr fndecl 3 65298 &enable_so_usb_stor_probe2_fndecl_65298
167728 +enable_so_txfifo_size_lpuart_port_65300 txfifo_size lpuart_port 0 65300 NULL nohasharray
167729 +enable_so_ntfs_bmap_fndecl_65300 ntfs_bmap fndecl 2 65300 &enable_so_txfifo_size_lpuart_port_65300
167730 +enable_so_memory_lseek_fndecl_65306 memory_lseek fndecl 2 65306 NULL
167731 +enable_so_in_param_mlx4_vhcr_65311 in_param mlx4_vhcr 0 65311 NULL
167732 +enable_so_mt312_read_fndecl_65312 mt312_read fndecl 4 65312 NULL
167733 +enable_so_max_pfn_vardecl_65317 max_pfn vardecl 0 65317 NULL
167734 +enable_so_ExtPageLength__MPI2_CONFIG_REPLY_65319 ExtPageLength _MPI2_CONFIG_REPLY 0 65319 NULL
167735 +enable_so_info_arc_emac_bd_65321 info arc_emac_bd 0 65321 NULL
167736 +enable_so_dm_get_reserved_rq_based_ios_fndecl_65322 dm_get_reserved_rq_based_ios fndecl 0 65322 NULL
167737 +enable_so_brcmf_flowring_attach_fndecl_65325 brcmf_flowring_attach fndecl 2 65325 NULL
167738 +enable_so_align_size_hwbus_ops_65327 align_size hwbus_ops 0 65327 NULL
167739 +enable_so_ath10k_wmi_start_scan_tlvs_len_fndecl_65331 ath10k_wmi_start_scan_tlvs_len fndecl 0 65331 NULL
167740 +enable_so_alloc_in_dirband_fndecl_65332 alloc_in_dirband fndecl 2 65332 NULL
167741 +enable_so_panel_count_vbt_r10_65334 panel_count vbt_r10 0 65334 NULL
167742 +enable_so_ldisc_receive_fndecl_65343 ldisc_receive fndecl 4 65343 NULL
167743 +enable_so_ath6kl_endpoint_stats_read_fndecl_65345 ath6kl_endpoint_stats_read fndecl 3 65345 NULL
167744 +enable_so_gss_krb5_cts_crypt_fndecl_65346 gss_krb5_cts_crypt fndecl 3 65346 NULL nohasharray
167745 +enable_so_tx_tx_frame_checksum_read_fndecl_65346 tx_tx_frame_checksum_read fndecl 3 65346 &enable_so_gss_krb5_cts_crypt_fndecl_65346
167746 +enable_so_si476x_radio_fops_read_fndecl_65348 si476x_radio_fops_read fndecl 3 65348 NULL nohasharray
167747 +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
167748 +enable_so_len_rpc_pipe_msg_65361 len rpc_pipe_msg 0 65361 NULL
167749 +enable_so_imm_size_fndecl_65365 imm_size fndecl 0 65365 NULL
167750 +enable_so_dma_out_iguanair_65368 dma_out iguanair 0 65368 NULL nohasharray
167751 +enable_so_add_excluded_extent_fndecl_65368 add_excluded_extent fndecl 3-2 65368 &enable_so_dma_out_iguanair_65368
167752 +enable_so_fbucket_size_qlcnic_filter_hash_65369 fbucket_size qlcnic_filter_hash 0 65369 NULL
167753 +enable_so_drbd_send_command_fndecl_65377 drbd_send_command fndecl 4-6 65377 NULL
167754 +enable_so_nfsd_readv_fndecl_65378 nfsd_readv fndecl 4 65378 NULL
167755 +enable_so_batadv_tvlv_container_ogm_append_fndecl_65383 batadv_tvlv_container_ogm_append fndecl 4 65383 NULL
167756 +enable_so_may_expand_vm_fndecl_65389 may_expand_vm fndecl 2 65389 NULL
167757 +enable_so_max_rx_aggregation_subframes_ieee80211_hw_65391 max_rx_aggregation_subframes ieee80211_hw 0 65391 NULL
167758 +enable_so_ipath_piosize2k_ipath_devdata_65394 ipath_piosize2k ipath_devdata 0 65394 NULL
167759 +enable_so_rcvegrbufsize_qib_devdata_65397 rcvegrbufsize qib_devdata 0 65397 NULL
167760 +enable_so_digital_in_send_atr_req_fndecl_65398 digital_in_send_atr_req fndecl 5 65398 NULL
167761 +enable_so_num_rx_queues_ixgbe_adapter_65402 num_rx_queues ixgbe_adapter 0 65402 NULL
167762 +enable_so_wl12xx_sdio_raw_write_fndecl_65406 wl12xx_sdio_raw_write fndecl 4 65406 NULL nohasharray
167763 +enable_so_rng_dev_read_fndecl_65406 rng_dev_read fndecl 3 65406 &enable_so_wl12xx_sdio_raw_write_fndecl_65406
167764 +enable_so___napi_alloc_skb_fndecl_65409 __napi_alloc_skb fndecl 2 65409 NULL
167765 +enable_so_macb_init_rx_buffer_size_fndecl_65410 macb_init_rx_buffer_size fndecl 2 65410 NULL
167766 +enable_so_lstcon_batch_list_fndecl_65416 lstcon_batch_list fndecl 2 65416 NULL
167767 +enable_so_fat_zeroed_cluster_fndecl_65422 fat_zeroed_cluster fndecl 3-2-0 65422 NULL
167768 +enable_so_fq_trees_log_fq_sched_data_65425 fq_trees_log fq_sched_data 0 65425 NULL nohasharray
167769 +enable_so_free_bud_entry_65425 free bud_entry 0 65425 &enable_so_fq_trees_log_fq_sched_data_65425
167770 +enable_so_block_size_card_cfg_data_65426 block_size card_cfg_data 0 65426 NULL
167771 +enable_so_period_bytes_snd_usb_substream_65430 period_bytes snd_usb_substream 0 65430 NULL
167772 +enable_so_tcp_hdrlen_fndecl_65433 tcp_hdrlen fndecl 0 65433 NULL
167773 +enable_so_data_in_size_mpt3_ioctl_command_65434 data_in_size mpt3_ioctl_command 0 65434 NULL
167774 +enable_so_a2mp_send_fndecl_65436 a2mp_send fndecl 4 65436 NULL
167775 +enable_so_lbs_bcnmiss_write_fndecl_65438 lbs_bcnmiss_write fndecl 3 65438 NULL
167776 +enable_so_rx_rx_pre_complt_read_fndecl_65446 rx_rx_pre_complt_read fndecl 3 65446 NULL
167777 +enable_so_squashfs_cache_init_fndecl_65451 squashfs_cache_init fndecl 3-2 65451 NULL
167778 +enable_so_xfs_dir3_data_block_free_fndecl_65456 xfs_dir3_data_block_free fndecl 4 65456 NULL
167779 +enable_so_wNtbOutMaxDatagrams_usb_cdc_ncm_ntb_parameters_65459 wNtbOutMaxDatagrams usb_cdc_ncm_ntb_parameters 0 65459 NULL
167780 +enable_so_cfg80211_calculate_bitrate_60g_fndecl_65469 cfg80211_calculate_bitrate_60g fndecl 0 65469 NULL
167781 +enable_so_lfb_base_screen_info_65479 lfb_base screen_info 0 65479 NULL
167782 +enable_so_pci_hotplug_io_size_vardecl_65480 pci_hotplug_io_size vardecl 0 65480 NULL
167783 +enable_so_isoc_size_wa_seg_65482 isoc_size wa_seg 0 65482 NULL
167784 +enable_so_aac_src_ioremap_fndecl_65483 aac_src_ioremap fndecl 2 65483 NULL
167785 +enable_so_logical_tree_mod_root_65499 logical tree_mod_root 0 65499 NULL
167786 +enable_so_xfs_dir2_shrink_inode_fndecl_65502 xfs_dir2_shrink_inode fndecl 2 65502 NULL
167787 +enable_so_bdx_tx_db_init_fndecl_65508 bdx_tx_db_init fndecl 2 65508 NULL
167788 +enable_so_remove_device_fndecl_65513 remove_device fndecl 4 65513 NULL nohasharray
167789 +enable_so_sys_pwritev_fndecl_65513 sys_pwritev fndecl 3 65513 &enable_so_remove_device_fndecl_65513
167790 +enable_so__recv_fndecl_65526 _recv fndecl 0-3 65526 NULL nohasharray
167791 +enable_so_cts_cbc_encrypt_fndecl_65526 cts_cbc_encrypt fndecl 5 65526 &enable_so__recv_fndecl_65526
167792 +enable_so_write_page_nocow_fndecl_65527 write_page_nocow fndecl 2 65527 NULL
167793 +enable_so_size_mei_msg_data_65529 size mei_msg_data 0 65529 NULL
167794 +enable_so_ib_uverbs_get_context_fndecl_65534 ib_uverbs_get_context fndecl 3 65534 NULL nohasharray
167795 +enable_so_connector_write_fndecl_65534 connector_write fndecl 3 65534 &enable_so_ib_uverbs_get_context_fndecl_65534
167796 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data b/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data
167797 new file mode 100644
167798 index 0000000..17bc0d8
167799 --- /dev/null
167800 +++ b/tools/gcc/size_overflow_plugin/size_overflow_hash_aux.data
167801 @@ -0,0 +1,92 @@
167802 +enable_so_spa_set_aux_vdevs_fndecl_746 spa_set_aux_vdevs fndecl 3 746 NULL
167803 +enable_so_zfs_lookup_fndecl_2144 zfs_lookup fndecl 0 2144 NULL
167804 +enable_so_mappedread_fndecl_2627 mappedread fndecl 2 2627 NULL
167805 +enable_so_vdev_disk_dio_alloc_fndecl_2957 vdev_disk_dio_alloc fndecl 1 2957 NULL
167806 +enable_so_nv_alloc_pushpage_spl_fndecl_4286 nv_alloc_pushpage_spl fndecl 2 4286 NULL
167807 +enable_so_zpl_xattr_get_fndecl_4574 zpl_xattr_get fndecl 0 4574 NULL
167808 +enable_so_sa_replace_all_by_template_fndecl_5699 sa_replace_all_by_template fndecl 3 5699 NULL
167809 +enable_so_dmu_write_fndecl_6048 dmu_write fndecl 4-3 6048 NULL
167810 +enable_so_dmu_buf_hold_array_fndecl_6095 dmu_buf_hold_array fndecl 4-3 6095 NULL
167811 +enable_so_update_pages_fndecl_6225 update_pages fndecl 2-3 6225 NULL
167812 +enable_so_bio_nr_pages_fndecl_7117 bio_nr_pages fndecl 0-2 7117 NULL
167813 +enable_so_dmu_buf_hold_array_by_bonus_fndecl_8562 dmu_buf_hold_array_by_bonus fndecl 3-2 8562 NULL
167814 +enable_so_zpios_dmu_write_fndecl_8858 zpios_dmu_write fndecl 4-5 8858 NULL
167815 +enable_so_ddi_copyout_fndecl_9401 ddi_copyout fndecl 3 9401 NULL
167816 +enable_so_avl_numnodes_fndecl_12384 avl_numnodes fndecl 0 12384 NULL
167817 +enable_so_dmu_write_uio_dnode_fndecl_12473 dmu_write_uio_dnode fndecl 3 12473 NULL
167818 +enable_so_dmu_xuio_init_fndecl_12866 dmu_xuio_init fndecl 2 12866 NULL
167819 +enable_so_zpl_read_common_fndecl_14389 zpl_read_common fndecl 0 14389 NULL
167820 +enable_so_dmu_snapshot_realname_fndecl_14632 dmu_snapshot_realname fndecl 4 14632 NULL
167821 +enable_so_kmem_alloc_debug_fndecl_14852 kmem_alloc_debug fndecl 1 14852 NULL
167822 +enable_so_kmalloc_node_nofail_fndecl_15151 kmalloc_node_nofail fndecl 1 15151 NULL
167823 +enable_so_dmu_write_uio_fndecl_16351 dmu_write_uio fndecl 4 16351 NULL
167824 +enable_so_zfs_log_write_fndecl_16524 zfs_log_write fndecl 6-5 16524 NULL
167825 +enable_so_sa_build_layouts_fndecl_16910 sa_build_layouts fndecl 3 16910 NULL
167826 +enable_so_dsl_dir_namelen_fndecl_17053 dsl_dir_namelen fndecl 0 17053 NULL
167827 +enable_so_kcopy_copy_to_user_fndecl_17336 kcopy_copy_to_user fndecl 5 17336 NULL
167828 +enable_so_sa_add_layout_entry_fndecl_17507 sa_add_layout_entry fndecl 3 17507 NULL
167829 +enable_so_sa_attr_table_setup_fndecl_18029 sa_attr_table_setup fndecl 3 18029 NULL
167830 +enable_so_uiocopy_fndecl_18680 uiocopy fndecl 2 18680 NULL
167831 +enable_so_dmu_buf_hold_array_by_dnode_fndecl_19125 dmu_buf_hold_array_by_dnode fndecl 2-3 19125 NULL
167832 +enable_so_zpl_acl_from_xattr_fndecl_21141 zpl_acl_from_xattr fndecl 2 21141 NULL
167833 +enable_so_dsl_pool_tx_assign_init_fndecl_22518 dsl_pool_tx_assign_init fndecl 2 22518 NULL
167834 +enable_so_nvlist_lookup_byte_array_fndecl_22527 nvlist_lookup_byte_array fndecl 0 22527 NULL
167835 +enable_so_sa_replace_all_by_template_locked_fndecl_22533 sa_replace_all_by_template_locked fndecl 3 22533 NULL
167836 +enable_so_tsd_hash_table_init_fndecl_22559 tsd_hash_table_init fndecl 1 22559 NULL
167837 +enable_so_spa_vdev_remove_aux_fndecl_23966 spa_vdev_remove_aux fndecl 4 23966 NULL
167838 +enable_so_zpl_xattr_acl_set_access_fndecl_24129 zpl_xattr_acl_set_access fndecl 4 24129 NULL
167839 +enable_so_dmu_assign_arcbuf_fndecl_24622 dmu_assign_arcbuf fndecl 2 24622 NULL
167840 +enable_so_zap_lookup_norm_fndecl_25166 zap_lookup_norm fndecl 9 25166 NULL
167841 +enable_so_dmu_prealloc_fndecl_25456 dmu_prealloc fndecl 4-3 25456 NULL
167842 +enable_so_kmalloc_nofail_fndecl_26347 kmalloc_nofail fndecl 1 26347 NULL
167843 +enable_so_zfsctl_snapshot_zpath_fndecl_27578 zfsctl_snapshot_zpath fndecl 2 27578 NULL
167844 +enable_so_zpios_dmu_read_fndecl_30015 zpios_dmu_read fndecl 4-5 30015 NULL
167845 +enable_so_splat_write_fndecl_30943 splat_write fndecl 3 30943 NULL
167846 +enable_so_zpl_xattr_get_sa_fndecl_31183 zpl_xattr_get_sa fndecl 0 31183 NULL
167847 +enable_so_dmu_read_uio_fndecl_31467 dmu_read_uio fndecl 4 31467 NULL
167848 +enable_so_zfs_replay_fuids_fndecl_31479 zfs_replay_fuids fndecl 4 31479 NULL
167849 +enable_so_spa_history_log_to_phys_fndecl_31632 spa_history_log_to_phys fndecl 0-1 31632 NULL
167850 +enable_so___zpl_xattr_get_fndecl_32601 __zpl_xattr_get fndecl 0 32601 NULL
167851 +enable_so_proc_copyout_string_fndecl_34049 proc_copyout_string fndecl 2 34049 NULL
167852 +enable_so_nv_alloc_sleep_spl_fndecl_34544 nv_alloc_sleep_spl fndecl 2 34544 NULL
167853 +enable_so_nv_alloc_nosleep_spl_fndecl_34761 nv_alloc_nosleep_spl fndecl 2 34761 NULL
167854 +enable_so_zap_leaf_array_match_fndecl_36922 zap_leaf_array_match fndecl 4 36922 NULL
167855 +enable_so_copyinstr_fndecl_36980 copyinstr fndecl 3 36980 NULL
167856 +enable_so_zpl_xattr_acl_set_default_fndecl_37864 zpl_xattr_acl_set_default fndecl 4 37864 NULL
167857 +enable_so_splat_read_fndecl_38116 splat_read fndecl 3 38116 NULL
167858 +enable_so_sa_setup_fndecl_38756 sa_setup fndecl 4 38756 NULL
167859 +enable_so_vdev_disk_physio_fndecl_39898 vdev_disk_physio fndecl 3 39898 NULL
167860 +enable_so_arc_buf_size_fndecl_39982 arc_buf_size fndecl 0 39982 NULL
167861 +enable_so_kzalloc_nofail_fndecl_40719 kzalloc_nofail fndecl 1 40719 NULL
167862 +enable_so_fuidstr_to_sid_fndecl_40777 fuidstr_to_sid fndecl 4 40777 NULL
167863 +enable_so_vdev_raidz_matrix_reconstruct_fndecl_40852 vdev_raidz_matrix_reconstruct fndecl 2-3 40852 NULL
167864 +enable_so_sa_find_layout_fndecl_40892 sa_find_layout fndecl 4 40892 NULL
167865 +enable_so_zpl_xattr_get_dir_fndecl_41918 zpl_xattr_get_dir fndecl 0 41918 NULL
167866 +enable_so_zfs_sa_get_xattr_fndecl_42600 zfs_sa_get_xattr fndecl 0 42600 NULL
167867 +enable_so_zpl_xattr_acl_set_fndecl_42808 zpl_xattr_acl_set fndecl 4 42808 NULL
167868 +enable_so_xdr_dec_array_fndecl_43091 xdr_dec_array fndecl 5 43091 NULL
167869 +enable_so_dsl_dataset_namelen_fndecl_43136 dsl_dataset_namelen fndecl 0 43136 NULL
167870 +enable_so_kcopy_write_fndecl_43683 kcopy_write fndecl 3 43683 NULL
167871 +enable_so_uiomove_fndecl_44355 uiomove fndecl 2 44355 NULL
167872 +enable_so_dmu_read_fndecl_44418 dmu_read fndecl 4-3 44418 NULL
167873 +enable_so_ddi_copyin_fndecl_44846 ddi_copyin fndecl 3 44846 NULL
167874 +enable_so_kcopy_do_get_fndecl_45061 kcopy_do_get fndecl 5 45061 NULL
167875 +enable_so_copyin_fndecl_45945 copyin fndecl 3 45945 NULL
167876 +enable_so_zil_itx_create_fndecl_46555 zil_itx_create fndecl 2 46555 NULL
167877 +enable_so_dmu_write_uio_dbuf_fndecl_48064 dmu_write_uio_dbuf fndecl 3 48064 NULL
167878 +enable_so_blk_rq_pos_fndecl_48233 blk_rq_pos fndecl 0 48233 NULL
167879 +enable_so_spa_history_write_fndecl_49650 spa_history_write fndecl 3 49650 NULL
167880 +enable_so_kcopy_copy_pages_to_user_fndecl_49823 kcopy_copy_pages_to_user fndecl 3-4 49823 NULL
167881 +enable_so_zfs_log_write_fndecl_50162 zfs_log_write fndecl 6-5 50162 NULL
167882 +enable_so_i_fm_alloc_fndecl_51038 i_fm_alloc fndecl 2 51038 NULL
167883 +enable_so_copyout_fndecl_51409 copyout fndecl 3 51409 NULL
167884 +enable_so_zvol_log_write_fndecl_54898 zvol_log_write fndecl 4-3 54898 NULL
167885 +enable_so_zfs_acl_node_alloc_fndecl_55641 zfs_acl_node_alloc fndecl 1 55641 NULL
167886 +enable_so_get_nvlist_fndecl_56685 get_nvlist fndecl 2 56685 NULL
167887 +enable_so_zprop_get_numprops_fndecl_56820 zprop_get_numprops fndecl 0 56820 NULL
167888 +enable_so_splat_taskq_test4_common_fndecl_59829 splat_taskq_test4_common fndecl 5 59829 NULL
167889 +enable_so_zfs_replay_domain_cnt_fndecl_61399 zfs_replay_domain_cnt fndecl 0 61399 NULL
167890 +enable_so_zpios_write_fndecl_61823 zpios_write fndecl 3 61823 NULL
167891 +enable_so_proc_copyin_string_fndecl_62019 proc_copyin_string fndecl 4 62019 NULL
167892 +enable_so_random_get_pseudo_bytes_fndecl_64611 random_get_pseudo_bytes fndecl 2 64611 NULL
167893 +enable_so_zpios_read_fndecl_64734 zpios_read fndecl 3 64734 NULL
167894 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_ipa.c b/tools/gcc/size_overflow_plugin/size_overflow_ipa.c
167895 new file mode 100644
167896 index 0000000..c8ebf92
167897 --- /dev/null
167898 +++ b/tools/gcc/size_overflow_plugin/size_overflow_ipa.c
167899 @@ -0,0 +1,1226 @@
167900 +/*
167901 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
167902 + * Licensed under the GPL v2, or (at your option) v3
167903 + *
167904 + * Homepage:
167905 + * https://github.com/ephox-gcc-plugins/size_overflow
167906 + *
167907 + * Documentation:
167908 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
167909 + *
167910 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
167911 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
167912 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
167913 + *
167914 + * Usage:
167915 + * $ make
167916 + * $ make run
167917 + */
167918 +
167919 +#include "size_overflow.h"
167920 +#include <libgen.h>
167921 +
167922 +static void walk_use_def_next_functions(struct walk_use_def_data *use_def_data, tree lhs);
167923 +
167924 +next_interesting_function_t global_next_interesting_function[GLOBAL_NIFN_LEN];
167925 +static bool global_changed;
167926 +#define PRINT_DATA_FLOW true
167927 +#define NO_PRINT_DATA_FLOW false
167928 +
167929 +static struct cgraph_node_hook_list *function_insertion_hook_holder;
167930 +static struct cgraph_2node_hook_list *node_duplication_hook_holder;
167931 +
167932 +struct cgraph_node *get_cnode(const_tree fndecl)
167933 +{
167934 + gcc_assert(TREE_CODE(fndecl) == FUNCTION_DECL);
167935 +#if BUILDING_GCC_VERSION <= 4005
167936 + return cgraph_get_node((tree)fndecl);
167937 +#else
167938 + return cgraph_get_node(fndecl);
167939 +#endif
167940 +}
167941 +
167942 +static bool compare_next_interesting_functions(next_interesting_function_t cur_node, const char *decl_name, const char *context, unsigned int num)
167943 +{
167944 + // Ignore num without a value
167945 + if (num != NONE_ARGNUM && cur_node->num != num)
167946 + return false;
167947 + if (strcmp(cur_node->context, context))
167948 + return false;
167949 + return !strcmp(cur_node->decl_name, decl_name);
167950 +}
167951 +
167952 +// Return the context of vardecl. If it is in a file scope then the context is vardecl_filebasename
167953 +static const char* get_vardecl_context(const_tree decl)
167954 +{
167955 + expanded_location xloc;
167956 + char *buf, *path;
167957 + const char *bname;
167958 + int len;
167959 +
167960 + xloc = expand_location(DECL_SOURCE_LOCATION(decl));
167961 + gcc_assert(xloc.file);
167962 + path = xstrdup(xloc.file);
167963 + bname = basename(path);
167964 +
167965 + len = asprintf(&buf, "vardecl_%s", bname);
167966 + gcc_assert(len > 0);
167967 + return buf;
167968 +}
167969 +
167970 +// Return the type name for a function pointer (or "fielddecl" if the type has no name), otherwise either "vardecl" or "fndecl"
167971 +const char* get_decl_context(const_tree decl)
167972 +{
167973 + switch (TREE_CODE(decl)) {
167974 + case FUNCTION_DECL:
167975 + return "fndecl";
167976 + // TODO: Ignore anonymous types for now
167977 + case FIELD_DECL:
167978 + return get_type_name_from_field(decl);
167979 + case VAR_DECL:
167980 + if (TREE_PUBLIC(decl) || DECL_EXTERNAL(decl))
167981 + return "vardecl";
167982 + if (TREE_STATIC(decl) && !TREE_PUBLIC(decl))
167983 + return get_vardecl_context(decl);
167984 + // ignore local variable
167985 + if (!TREE_STATIC(decl) && !DECL_EXTERNAL(decl))
167986 + return NULL;
167987 + default:
167988 + debug_tree((tree)decl);
167989 + gcc_unreachable();
167990 + }
167991 +}
167992 +
167993 +// Find the function with the specified argument in the list
167994 +next_interesting_function_t get_global_next_interesting_function_entry(struct fn_raw_data *raw_data)
167995 +{
167996 + next_interesting_function_t cur_node, head;
167997 +
167998 + head = global_next_interesting_function[raw_data->hash];
167999 + for (cur_node = head; cur_node; cur_node = cur_node->next) {
168000 + if (raw_data->marked != ASM_STMT_SO_MARK && cur_node->marked == ASM_STMT_SO_MARK)
168001 + continue;
168002 + if (compare_next_interesting_functions(cur_node, raw_data->decl_str, raw_data->context, raw_data->num))
168003 + return cur_node;
168004 + }
168005 + return NULL;
168006 +}
168007 +
168008 +next_interesting_function_t get_global_next_interesting_function_entry_with_hash(struct fn_raw_data *raw_data)
168009 +{
168010 + raw_data->hash = get_decl_hash(raw_data->decl, raw_data->decl_str);
168011 + if (raw_data->hash == NO_HASH)
168012 + return NULL;
168013 +
168014 + raw_data->context = get_decl_context(raw_data->decl);
168015 + if (!raw_data->context)
168016 + return NULL;
168017 + return get_global_next_interesting_function_entry(raw_data);
168018 +}
168019 +
168020 +next_interesting_function_t create_new_next_interesting_entry(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node)
168021 +{
168022 + next_interesting_function_t new_node;
168023 +
168024 + new_node = (next_interesting_function_t)xmalloc(sizeof(*new_node));
168025 + new_node->decl_name = xstrdup(raw_data->decl_str);
168026 +
168027 + gcc_assert(raw_data->context);
168028 + new_node->context = xstrdup(raw_data->context);
168029 + new_node->hash = raw_data->hash;
168030 + new_node->num = raw_data->num;
168031 + new_node->next = NULL;
168032 + new_node->children = NULL;
168033 + new_node->marked = raw_data->marked;
168034 + new_node->orig_next_node = orig_next_node;
168035 + return new_node;
168036 +}
168037 +
168038 +// Ignore these functions to not explode coverage (+strncmp+fndecl+3+35130+)
168039 +static bool temporary_skip_these_functions(struct fn_raw_data *raw_data)
168040 +{
168041 + if (raw_data->hash == 35130 && !strcmp(raw_data->decl_str, "strncmp"))
168042 + return true;
168043 + if (raw_data->hash == 46193 && !strcmp(raw_data->decl_str, "strnlen"))
168044 + return true;
168045 + if (raw_data->hash == 43267 && !strcmp(raw_data->decl_str, "strncpy"))
168046 + return true;
168047 + if (raw_data->hash == 10300 && !strcmp(raw_data->decl_str, "strncpy_from_user"))
168048 + return true;
168049 + if (raw_data->hash == 26117 && !strcmp(raw_data->decl_str, "memchr"))
168050 + return true;
168051 + if (raw_data->hash == 16203 && !strcmp(raw_data->decl_str, "memchr_inv"))
168052 + return true;
168053 + if (raw_data->hash == 24269 && !strcmp(raw_data->decl_str, "memcmp"))
168054 + return true;
168055 + if (raw_data->hash == 60390 && !strcmp(raw_data->decl_str, "memcpy"))
168056 + return true;
168057 + if (raw_data->hash == 25040 && !strcmp(raw_data->decl_str, "memmove"))
168058 + return true;
168059 + if (raw_data->hash == 29763 && !strcmp(raw_data->decl_str, "memset"))
168060 + return true;
168061 + return false;
168062 +}
168063 +
168064 +// Create the main data structure
168065 +next_interesting_function_t create_new_next_interesting_decl(struct fn_raw_data *raw_data, next_interesting_function_t orig_next_node)
168066 +{
168067 + enum tree_code decl_code = TREE_CODE(raw_data->decl);
168068 +
168069 + gcc_assert(decl_code == FIELD_DECL || decl_code == FUNCTION_DECL || decl_code == VAR_DECL);
168070 +
168071 + if (is_vararg(raw_data->decl, raw_data->num))
168072 + return NULL;
168073 +
168074 + raw_data->hash = get_decl_hash(raw_data->decl, raw_data->decl_str);
168075 + if (raw_data->hash == NO_HASH)
168076 + return NULL;
168077 + if (get_size_overflow_hash_entry_tree(raw_data->decl, raw_data->num, DISABLE_SIZE_OVERFLOW))
168078 + return NULL;
168079 + if (temporary_skip_these_functions(raw_data))
168080 + return NULL;
168081 +
168082 + gcc_assert(raw_data->num <= MAX_PARAM);
168083 + // Clones must have an orig_next_node
168084 + gcc_assert(!made_by_compiler(raw_data->decl) || orig_next_node);
168085 +
168086 + raw_data->context = get_decl_context(raw_data->decl);
168087 + if (!raw_data->context)
168088 + return NULL;
168089 + return create_new_next_interesting_entry(raw_data, orig_next_node);
168090 +}
168091 +
168092 +void add_to_global_next_interesting_function(next_interesting_function_t new_entry)
168093 +{
168094 + next_interesting_function_t cur_global_head, cur_global, cur_global_end = NULL;
168095 +
168096 + // new_entry is appended to the end of a list
168097 + new_entry->next = NULL;
168098 +
168099 + cur_global_head = global_next_interesting_function[new_entry->hash];
168100 + if (!cur_global_head) {
168101 + global_next_interesting_function[new_entry->hash] = new_entry;
168102 + return;
168103 + }
168104 +
168105 +
168106 + for (cur_global = cur_global_head; cur_global; cur_global = cur_global->next) {
168107 + if (!cur_global->next)
168108 + cur_global_end = cur_global;
168109 +
168110 + if (compare_next_interesting_functions(cur_global, new_entry->decl_name, new_entry->context, new_entry->num))
168111 + return;
168112 + }
168113 +
168114 + gcc_assert(cur_global_end);
168115 + cur_global_end->next = new_entry;
168116 +}
168117 +
168118 +/* If the interesting function is a clone then find or create its original next_interesting_function_t node
168119 + * and add it to global_next_interesting_function
168120 + */
168121 +static next_interesting_function_t create_orig_next_node_for_a_clone(struct fn_raw_data *clone_raw_data)
168122 +{
168123 + struct fn_raw_data orig_raw_data;
168124 + next_interesting_function_t orig_next_node;
168125 + enum tree_code decl_code;
168126 +
168127 + orig_raw_data.decl = get_orig_fndecl(clone_raw_data->decl);
168128 +
168129 + if (DECL_BUILT_IN(orig_raw_data.decl) || DECL_BUILT_IN_CLASS(orig_raw_data.decl) == BUILT_IN_NORMAL)
168130 + return NULL;
168131 +
168132 + decl_code = TREE_CODE(orig_raw_data.decl);
168133 + if (decl_code == FIELD_DECL || decl_code == VAR_DECL)
168134 + orig_raw_data.num = clone_raw_data->num;
168135 + else
168136 + orig_raw_data.num = get_correct_argnum(clone_raw_data->decl, orig_raw_data.decl, clone_raw_data->num);
168137 +
168138 + // Skip over ISRA.162 parm decls
168139 + if (orig_raw_data.num == CANNOT_FIND_ARG)
168140 + return NULL;
168141 +
168142 + orig_raw_data.decl_str = get_orig_decl_name(orig_raw_data.decl);
168143 + orig_raw_data.marked = NO_SO_MARK;
168144 + orig_next_node = get_global_next_interesting_function_entry_with_hash(&orig_raw_data);
168145 + if (orig_next_node)
168146 + return orig_next_node;
168147 +
168148 + orig_raw_data.marked = clone_raw_data->marked;
168149 + orig_next_node = create_new_next_interesting_decl(&orig_raw_data, NULL);
168150 + if (!orig_next_node)
168151 + return NULL;
168152 +
168153 + add_to_global_next_interesting_function(orig_next_node);
168154 + return orig_next_node;
168155 +}
168156 +
168157 +// Find or create the next_interesting_function_t node for decl and num
168158 +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)
168159 +{
168160 + next_interesting_function_t cur_next_cnode;
168161 +
168162 + if (DECL_NAME(raw_data->decl) == NULL_TREE)
168163 + return NULL;
168164 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
168165 +
168166 + cur_next_cnode = get_global_next_interesting_function_entry_with_hash(raw_data);
168167 + if (cur_next_cnode)
168168 + goto out;
168169 +
168170 + if (!orig_next_node && made_by_compiler(raw_data->decl)) {
168171 + orig_next_node = create_orig_next_node_for_a_clone(raw_data);
168172 + if (!orig_next_node)
168173 + return NULL;
168174 + }
168175 +
168176 + cur_next_cnode = create_new_next_interesting_decl(raw_data, orig_next_node);
168177 + if (!cur_next_cnode)
168178 + return NULL;
168179 +
168180 + add_to_global_next_interesting_function(cur_next_cnode);
168181 +out:
168182 + if (cur_next_cnode->marked != raw_data->marked && cur_next_cnode->marked != NO_SO_MARK)
168183 + return cur_next_cnode;
168184 +
168185 + if (raw_data->marked != NO_SO_MARK && cur_next_cnode->marked == NO_SO_MARK)
168186 + cur_next_cnode->marked = raw_data->marked;
168187 +
168188 + return cur_next_cnode;
168189 +}
168190 +
168191 +static bool has_next_interesting_function_chain_node(next_interesting_function_t next_cnodes_head, struct fn_raw_data *raw_data)
168192 +{
168193 + next_interesting_function_t cur_node;
168194 +
168195 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
168196 + raw_data->context = get_decl_context(raw_data->decl);
168197 + // Ignore function if there is no context
168198 + if (!raw_data->context)
168199 + return true;
168200 +
168201 + for (cur_node = next_cnodes_head; cur_node; cur_node = cur_node->next) {
168202 + if (compare_next_interesting_functions(cur_node, raw_data->decl_str, raw_data->context, raw_data->num))
168203 + return true;
168204 + }
168205 + return false;
168206 +}
168207 +
168208 +static void handle_function(struct walk_use_def_data *use_def_data, tree fndecl, const_tree arg)
168209 +{
168210 + struct fn_raw_data raw_data;
168211 + next_interesting_function_t orig_next_node, new_node;
168212 +
168213 + gcc_assert(fndecl != NULL_TREE);
168214 +
168215 + // ignore builtins to not explode coverage (e.g., memcpy)
168216 + if (DECL_BUILT_IN(fndecl) || DECL_BUILT_IN_CLASS(fndecl) == BUILT_IN_NORMAL)
168217 + return;
168218 +
168219 + if (get_intentional_attr_type(fndecl) == MARK_TURN_OFF)
168220 + return;
168221 +
168222 + raw_data.decl = fndecl;
168223 + raw_data.decl_str = DECL_NAME_POINTER(fndecl);
168224 + raw_data.marked = NO_SO_MARK;
168225 +
168226 + // convert arg into its position
168227 + if (arg == NULL_TREE)
168228 + raw_data.num = 0;
168229 + else
168230 + raw_data.num = find_arg_number_tree(arg, raw_data.decl);
168231 + if (raw_data.num == CANNOT_FIND_ARG)
168232 + return;
168233 +
168234 + if (has_next_interesting_function_chain_node(use_def_data->next_cnodes_head, &raw_data))
168235 + return;
168236 +
168237 + if (made_by_compiler(raw_data.decl)) {
168238 + orig_next_node = create_orig_next_node_for_a_clone(&raw_data);
168239 + if (!orig_next_node)
168240 + return;
168241 + } else
168242 + orig_next_node = NULL;
168243 +
168244 + new_node = create_new_next_interesting_decl(&raw_data, orig_next_node);
168245 + if (!new_node)
168246 + return;
168247 + new_node->next = use_def_data->next_cnodes_head;
168248 + use_def_data->next_cnodes_head = new_node;
168249 +}
168250 +
168251 +static void walk_use_def_next_functions_phi(struct walk_use_def_data *use_def_data, const_tree result)
168252 +{
168253 + gphi *phi = as_a_gphi(get_def_stmt(result));
168254 + unsigned int i, n = gimple_phi_num_args(phi);
168255 +
168256 + pointer_set_insert(use_def_data->visited, phi);
168257 + for (i = 0; i < n; i++) {
168258 + tree arg = gimple_phi_arg_def(phi, i);
168259 +
168260 + walk_use_def_next_functions(use_def_data, arg);
168261 + }
168262 +}
168263 +
168264 +static void walk_use_def_next_functions_binary(struct walk_use_def_data *use_def_data, const_tree lhs)
168265 +{
168266 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
168267 + tree rhs1, rhs2;
168268 +
168269 + rhs1 = gimple_assign_rhs1(def_stmt);
168270 + rhs2 = gimple_assign_rhs2(def_stmt);
168271 +
168272 + walk_use_def_next_functions(use_def_data, rhs1);
168273 + walk_use_def_next_functions(use_def_data, rhs2);
168274 +}
168275 +
168276 +static void walk_use_def_next_functions_unary(struct walk_use_def_data *use_def_data, const gassign *stmt)
168277 +{
168278 + tree rhs1 = gimple_assign_rhs1(stmt);
168279 +
168280 + walk_use_def_next_functions(use_def_data, rhs1);
168281 +}
168282 +
168283 +void __attribute__((weak)) handle_function_ptr_ret(struct walk_use_def_data *use_def_data __unused, const_tree fn_ptr __unused)
168284 +{
168285 +}
168286 +
168287 +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)
168288 +{
168289 + next_interesting_function_t new_node;
168290 +
168291 + if (raw_data->decl == NULL_TREE)
168292 + return;
168293 +
168294 + if (DECL_NAME(raw_data->decl) == NULL_TREE)
168295 + return;
168296 +
168297 + raw_data->decl_str = DECL_NAME_POINTER(raw_data->decl);
168298 + raw_data->num = 0;
168299 + raw_data->marked = NO_SO_MARK;
168300 +
168301 + new_node = create_new_next_interesting_decl(raw_data, NULL);
168302 + if (!new_node)
168303 + return;
168304 + new_node->next = use_def_data->next_cnodes_head;
168305 + use_def_data->next_cnodes_head = new_node;
168306 +}
168307 +
168308 +static void handle_struct_fields(struct walk_use_def_data *use_def_data, const_tree node)
168309 +{
168310 + struct fn_raw_data raw_data;
168311 +
168312 + switch (TREE_CODE(node)) {
168313 + case ARRAY_REF:
168314 +#if BUILDING_GCC_VERSION >= 4006
168315 + case MEM_REF:
168316 +#endif
168317 + case INDIRECT_REF:
168318 + case COMPONENT_REF:
168319 + raw_data.decl = get_ref_field(node);
168320 + break;
168321 + // TODO
168322 + case BIT_FIELD_REF:
168323 + case VIEW_CONVERT_EXPR:
168324 + case REALPART_EXPR:
168325 + case IMAGPART_EXPR:
168326 + return;
168327 + default:
168328 + debug_tree((tree)node);
168329 + gcc_unreachable();
168330 + }
168331 +
168332 + if (get_intentional_attr_type(raw_data.decl) == MARK_TURN_OFF)
168333 + return;
168334 +
168335 + create_and_append_new_next_interesting_field_var_decl(use_def_data, &raw_data);
168336 +}
168337 +
168338 +static void handle_vardecl(struct walk_use_def_data *use_def_data, tree node)
168339 +{
168340 + struct fn_raw_data raw_data;
168341 +
168342 + raw_data.decl = node;
168343 + create_and_append_new_next_interesting_field_var_decl(use_def_data, &raw_data);
168344 +}
168345 +
168346 +/* Find all functions that influence lhs
168347 + *
168348 + * Encountered functions are added to the children vector (next_interesting_function_t).
168349 + */
168350 +static void walk_use_def_next_functions(struct walk_use_def_data *use_def_data, tree lhs)
168351 +{
168352 + enum tree_code code;
168353 + const_gimple def_stmt;
168354 +
168355 + if (skip_types(lhs))
168356 + return;
168357 +
168358 + if (VAR_P(lhs)) {
168359 + handle_vardecl(use_def_data, lhs);
168360 + return;
168361 + }
168362 +
168363 + code = TREE_CODE(lhs);
168364 + if (code == PARM_DECL) {
168365 + handle_function(use_def_data, current_function_decl, lhs);
168366 + return;
168367 + }
168368 +
168369 + if (TREE_CODE_CLASS(code) == tcc_reference) {
168370 + handle_struct_fields(use_def_data, lhs);
168371 + return;
168372 + }
168373 +
168374 + if (code != SSA_NAME)
168375 + return;
168376 +
168377 + def_stmt = get_def_stmt(lhs);
168378 + if (!def_stmt)
168379 + return;
168380 +
168381 + if (pointer_set_insert(use_def_data->visited, def_stmt))
168382 + return;
168383 +
168384 + switch (gimple_code(def_stmt)) {
168385 + case GIMPLE_NOP:
168386 + walk_use_def_next_functions(use_def_data, SSA_NAME_VAR(lhs));
168387 + return;
168388 + case GIMPLE_ASM:
168389 + if (!is_size_overflow_asm(def_stmt))
168390 + return;
168391 + walk_use_def_next_functions(use_def_data, get_size_overflow_asm_input(as_a_const_gasm(def_stmt)));
168392 + return;
168393 + case GIMPLE_CALL: {
168394 + tree fndecl = gimple_call_fndecl(def_stmt);
168395 +
168396 + if (fndecl != NULL_TREE) {
168397 + handle_function(use_def_data, fndecl, NULL_TREE);
168398 + return;
168399 + }
168400 + fndecl = gimple_call_fn(def_stmt);
168401 + handle_function_ptr_ret(use_def_data, fndecl);
168402 + return;
168403 + }
168404 + case GIMPLE_PHI:
168405 + walk_use_def_next_functions_phi(use_def_data, lhs);
168406 + return;
168407 + case GIMPLE_ASSIGN:
168408 + switch (gimple_num_ops(def_stmt)) {
168409 + case 2:
168410 + walk_use_def_next_functions_unary(use_def_data, as_a_const_gassign(def_stmt));
168411 + return;
168412 + case 3:
168413 + walk_use_def_next_functions_binary(use_def_data, lhs);
168414 + return;
168415 + }
168416 + default:
168417 + debug_gimple_stmt((gimple)def_stmt);
168418 + error("%s: unknown gimple code", __func__);
168419 + gcc_unreachable();
168420 + }
168421 +}
168422 +
168423 +// Start the search for next_interesting_function_t children based on the (next_interesting_function_t) parent node
168424 +static next_interesting_function_t search_next_functions(tree node, next_interesting_function_t parent)
168425 +{
168426 + struct walk_use_def_data use_def_data;
168427 +
168428 + use_def_data.parent = parent;
168429 + use_def_data.next_cnodes_head = NULL;
168430 + use_def_data.visited = pointer_set_create();
168431 +
168432 + walk_use_def_next_functions(&use_def_data, node);
168433 +
168434 + pointer_set_destroy(use_def_data.visited);
168435 + return use_def_data.next_cnodes_head;
168436 +}
168437 +
168438 +// True if child already exists in the next_interesting_function_t children vector
168439 +bool has_next_interesting_function_vec(next_interesting_function_t target, next_interesting_function_t next_node)
168440 +{
168441 + unsigned int i;
168442 + next_interesting_function_t cur;
168443 +
168444 + gcc_assert(next_node);
168445 + // handle recursion
168446 + if (!strcmp(target->decl_name, next_node->decl_name) && target->num == next_node->num)
168447 + return true;
168448 +
168449 +#if BUILDING_GCC_VERSION <= 4007
168450 + if (VEC_empty(next_interesting_function_t, target->children))
168451 + return false;
168452 + FOR_EACH_VEC_ELT(next_interesting_function_t, target->children, i, cur) {
168453 +#else
168454 + FOR_EACH_VEC_SAFE_ELT(target->children, i, cur) {
168455 +#endif
168456 + if (compare_next_interesting_functions(cur, next_node->decl_name, next_node->context, next_node->num))
168457 + return true;
168458 + }
168459 + return false;
168460 +}
168461 +
168462 +void push_child(next_interesting_function_t parent, next_interesting_function_t child)
168463 +{
168464 + if (!has_next_interesting_function_vec(parent, child)) {
168465 +#if BUILDING_GCC_VERSION <= 4007
168466 + VEC_safe_push(next_interesting_function_t, heap, parent->children, child);
168467 +#else
168468 + vec_safe_push(parent->children, child);
168469 +#endif
168470 + }
168471 +}
168472 +
168473 +void __attribute__((weak)) check_local_variables(next_interesting_function_t next_node __unused) {}
168474 +
168475 +// Add children to parent and global_next_interesting_function
168476 +static void collect_data_for_execute(next_interesting_function_t parent, next_interesting_function_t children)
168477 +{
168478 + next_interesting_function_t cur = children;
168479 +
168480 + gcc_assert(parent);
168481 +
168482 + while (cur) {
168483 + struct fn_raw_data child_raw_data;
168484 + next_interesting_function_t next, child;
168485 +
168486 + next = cur->next;
168487 +
168488 + child_raw_data.decl_str = cur->decl_name;
168489 + child_raw_data.context = cur->context;
168490 + child_raw_data.hash = cur->hash;
168491 + child_raw_data.num = cur->num;
168492 + child_raw_data.marked = NO_SO_MARK;
168493 + child = get_global_next_interesting_function_entry(&child_raw_data);
168494 + if (!child) {
168495 + add_to_global_next_interesting_function(cur);
168496 + child = cur;
168497 + }
168498 +
168499 + check_local_variables(child);
168500 +
168501 + push_child(parent, child);
168502 +
168503 + cur = next;
168504 + }
168505 +
168506 + check_local_variables(parent);
168507 +}
168508 +
168509 +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)
168510 +{
168511 + return NULL;
168512 +}
168513 +
168514 +static next_interesting_function_t create_parent_next_cnode(const_gimple stmt, unsigned int num)
168515 +{
168516 + struct fn_raw_data raw_data;
168517 +
168518 + raw_data.num = num;
168519 + raw_data.marked = NO_SO_MARK;
168520 +
168521 + switch (gimple_code(stmt)) {
168522 + case GIMPLE_ASM:
168523 + raw_data.decl = current_function_decl;
168524 + raw_data.marked = ASM_STMT_SO_MARK;
168525 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
168526 + case GIMPLE_CALL:
168527 + raw_data.decl = gimple_call_fndecl(stmt);
168528 + if (raw_data.decl != NULL_TREE)
168529 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
168530 + raw_data.decl = gimple_call_fn(stmt);
168531 + return get_and_create_next_node_from_global_next_nodes_fnptr(raw_data.decl, &raw_data);
168532 + case GIMPLE_RETURN:
168533 + raw_data.decl = current_function_decl;
168534 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
168535 + case GIMPLE_ASSIGN: {
168536 + tree lhs = gimple_assign_lhs(stmt);
168537 +
168538 + if (VAR_P(lhs))
168539 + raw_data.decl = lhs;
168540 + else
168541 + raw_data.decl = get_ref_field(lhs);
168542 + if (raw_data.decl == NULL_TREE)
168543 + return NULL;
168544 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
168545 + }
168546 + default:
168547 + debug_gimple_stmt((gimple)stmt);
168548 + gcc_unreachable();
168549 + }
168550 +}
168551 +
168552 +// Handle potential next_interesting_function_t parent if its argument has an integer type
168553 +static void collect_all_possible_size_overflow_fns(const_gimple stmt, tree start_var, unsigned int num)
168554 +{
168555 + next_interesting_function_t children_next_cnode, parent_next_cnode;
168556 +
168557 + // skip void return values
168558 + if (start_var == NULL_TREE)
168559 + return;
168560 +
168561 + if (skip_types(start_var))
168562 + return;
168563 +
168564 + // handle intentional MARK_TURN_OFF
168565 + if (check_intentional_size_overflow_asm_and_attribute(start_var) == MARK_TURN_OFF)
168566 + return;
168567 +
168568 + parent_next_cnode = create_parent_next_cnode(stmt, num);
168569 + if (!parent_next_cnode)
168570 + return;
168571 +
168572 + children_next_cnode = search_next_functions(start_var, parent_next_cnode);
168573 + collect_data_for_execute(parent_next_cnode, children_next_cnode);
168574 +}
168575 +
168576 +static void collect_all_possible_size_overflow_fields_and_vars(const gassign *assign)
168577 +{
168578 + tree start_var, decl, lhs = gimple_assign_lhs(assign);
168579 +
168580 + if (VAR_P(lhs))
168581 + decl = lhs;
168582 + else
168583 + decl = get_ref_field(lhs);
168584 + if (decl == NULL_TREE)
168585 + return;
168586 +
168587 + if (get_intentional_attr_type(decl) == MARK_TURN_OFF)
168588 + return;
168589 +
168590 + start_var = gimple_assign_rhs1(assign);
168591 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
168592 +
168593 + start_var = gimple_assign_rhs2(assign);
168594 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
168595 +
168596 +#if BUILDING_GCC_VERSION >= 4006
168597 + start_var = gimple_assign_rhs3(assign);
168598 + collect_all_possible_size_overflow_fns(assign, start_var, 0);
168599 +#endif
168600 +}
168601 +
168602 +// Find potential next_interesting_function_t parents
168603 +static void handle_cgraph_node(struct cgraph_node *node)
168604 +{
168605 + basic_block bb;
168606 + tree cur_fndecl = NODE_DECL(node);
168607 +
168608 + set_current_function_decl(cur_fndecl);
168609 +
168610 + FOR_ALL_BB_FN(bb, cfun) {
168611 + gimple_stmt_iterator gsi;
168612 +
168613 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
168614 + tree start_var;
168615 + gimple stmt = gsi_stmt(gsi);
168616 +
168617 + switch (gimple_code(stmt)) {
168618 + case GIMPLE_RETURN: {
168619 + const greturn *return_stmt = as_a_const_greturn(stmt);
168620 +
168621 + start_var = gimple_return_retval(return_stmt);
168622 + collect_all_possible_size_overflow_fns(return_stmt, start_var, 0);
168623 + break;
168624 + }
168625 + case GIMPLE_ASM: {
168626 + const gasm *asm_stmt = as_a_const_gasm(stmt);
168627 +
168628 + if (!is_size_overflow_insert_check_asm(asm_stmt))
168629 + break;
168630 + start_var = get_size_overflow_asm_input(asm_stmt);
168631 + collect_all_possible_size_overflow_fns(asm_stmt, start_var, 0);
168632 + break;
168633 + }
168634 + case GIMPLE_CALL: {
168635 + unsigned int i, len;
168636 + const gcall *call = as_a_const_gcall(stmt);
168637 + tree fndecl = gimple_call_fndecl(call);
168638 +
168639 + if (fndecl != NULL_TREE && (DECL_BUILT_IN(fndecl) || DECL_BUILT_IN_CLASS(fndecl) == BUILT_IN_NORMAL))
168640 + break;
168641 +
168642 + len = gimple_call_num_args(call);
168643 + for (i = 0; i < len; i++) {
168644 + start_var = gimple_call_arg(call, i);
168645 + collect_all_possible_size_overflow_fns(call, start_var, i + 1);
168646 + }
168647 + break;
168648 + }
168649 + case GIMPLE_ASSIGN:
168650 + collect_all_possible_size_overflow_fields_and_vars(as_a_const_gassign(stmt));
168651 + break;
168652 + default:
168653 + break;
168654 + }
168655 + }
168656 + }
168657 +
168658 + unset_current_function_decl();
168659 +}
168660 +
168661 +/* Collect all potentially interesting function parameters and return values of integer types
168662 + * and store their data flow dependencies
168663 + */
168664 +static void size_overflow_generate_summary(void)
168665 +{
168666 + struct cgraph_node *node;
168667 +
168668 + size_overflow_register_hooks();
168669 +
168670 + FOR_EACH_FUNCTION(node) {
168671 + if (is_valid_cgraph_node(node))
168672 + handle_cgraph_node(node);
168673 + }
168674 +}
168675 +
168676 +static void size_overflow_function_insertion_hook(struct cgraph_node *node __unused, void *data __unused)
168677 +{
168678 + debug_cgraph_node(node);
168679 + gcc_unreachable();
168680 +}
168681 +
168682 +/* Handle dst if src is in the global_next_interesting_function list.
168683 + * If src is a clone then dst inherits the orig_next_node of src otherwise
168684 + * src will become the orig_next_node of dst.
168685 + */
168686 +static void size_overflow_node_duplication_hook(struct cgraph_node *src, struct cgraph_node *dst, void *data __unused)
168687 +{
168688 + next_interesting_function_t head, cur;
168689 + struct fn_raw_data src_raw_data;
168690 +
168691 + src_raw_data.decl = NODE_DECL(src);
168692 + src_raw_data.decl_str = DECL_NAME_POINTER(src_raw_data.decl);
168693 + src_raw_data.context = get_decl_context(src_raw_data.decl);
168694 + if (!src_raw_data.context)
168695 + return;
168696 +
168697 + src_raw_data.num = NONE_ARGNUM;
168698 + src_raw_data.marked = NO_SO_MARK;
168699 +
168700 + head = get_global_next_interesting_function_entry_with_hash(&src_raw_data);
168701 + if (!head)
168702 + return;
168703 +
168704 + for (cur = head; cur; cur = cur->next) {
168705 + struct fn_raw_data dst_raw_data;
168706 + next_interesting_function_t orig_next_node, next_node;
168707 +
168708 + if (!compare_next_interesting_functions(cur, src_raw_data.decl_str, src_raw_data.context, src_raw_data.num))
168709 + continue;
168710 +
168711 + dst_raw_data.decl = NODE_DECL(dst);
168712 + dst_raw_data.decl_str = cgraph_node_name(dst);
168713 + dst_raw_data.marked = cur->marked;
168714 +
168715 + if (!made_by_compiler(dst_raw_data.decl))
168716 + break;
168717 +
168718 + // For clones use the original node instead
168719 + if (cur->orig_next_node)
168720 + orig_next_node = cur->orig_next_node;
168721 + else
168722 + orig_next_node = cur;
168723 +
168724 + dst_raw_data.num = get_correct_argnum_fndecl(src_raw_data.decl, dst_raw_data.decl, cur->num);
168725 + if (dst_raw_data.num == CANNOT_FIND_ARG)
168726 + continue;
168727 +
168728 + next_node = create_new_next_interesting_decl(&dst_raw_data, orig_next_node);
168729 + if (next_node)
168730 + add_to_global_next_interesting_function(next_node);
168731 + }
168732 +}
168733 +
168734 +void size_overflow_register_hooks(void)
168735 +{
168736 + static bool init_p = false;
168737 +
168738 + if (init_p)
168739 + return;
168740 + init_p = true;
168741 +
168742 + function_insertion_hook_holder = cgraph_add_function_insertion_hook(&size_overflow_function_insertion_hook, NULL);
168743 + node_duplication_hook_holder = cgraph_add_node_duplication_hook(&size_overflow_node_duplication_hook, NULL);
168744 +}
168745 +
168746 +static void set_yes_so_mark(next_interesting_function_t next_node)
168747 +{
168748 + if (next_node->marked == NO_SO_MARK) {
168749 + next_node->marked = YES_SO_MARK;
168750 + global_changed = true;
168751 + }
168752 + // Mark the orig decl as well if it's a clone
168753 + if (next_node->orig_next_node && next_node->orig_next_node->marked == NO_SO_MARK) {
168754 + next_node->orig_next_node->marked = YES_SO_MARK;
168755 + global_changed = true;
168756 + }
168757 +}
168758 +
168759 +// Determine whether node or orig node is part of a tracked data flow
168760 +static bool marked_fn(next_interesting_function_t next_node)
168761 +{
168762 + bool is_marked_fn, is_marked_orig = false;
168763 +
168764 + is_marked_fn = next_node->marked != NO_SO_MARK;
168765 +
168766 + if (next_node->orig_next_node)
168767 + is_marked_orig = next_node->orig_next_node->marked != NO_SO_MARK;
168768 +
168769 + return is_marked_fn || is_marked_orig;
168770 +}
168771 +
168772 +// Determine whether node or orig node is in the hash table already
168773 +static bool already_in_the_hashtable(next_interesting_function_t next_node)
168774 +{
168775 + if (next_node->orig_next_node)
168776 + next_node = next_node->orig_next_node;
168777 + return get_size_overflow_hash_entry(next_node->hash, next_node->decl_name, next_node->context, next_node->num) != NULL;
168778 +}
168779 +
168780 +// Propagate the size_overflow marks up the use-def chains
168781 +static bool has_marked_child(next_interesting_function_t next_node)
168782 +{
168783 + bool ret = false;
168784 + unsigned int i;
168785 + next_interesting_function_t child;
168786 +
168787 +#if BUILDING_GCC_VERSION <= 4007
168788 + if (VEC_empty(next_interesting_function_t, next_node->children))
168789 + return false;
168790 + FOR_EACH_VEC_ELT(next_interesting_function_t, next_node->children, i, child) {
168791 +#else
168792 + FOR_EACH_VEC_SAFE_ELT(next_node->children, i, child) {
168793 +#endif
168794 + if (marked_fn(child) || already_in_the_hashtable(child))
168795 + ret = true;
168796 + }
168797 +
168798 + return ret;
168799 +}
168800 +
168801 +/* Set YES_SO_MARK on the function, its orig node and children if:
168802 + * * the function or its orig node or one of its children is in the hash table already
168803 + * * the function's orig node is marked with YES_SO_MARK or ASM_STMT_SO_MARK
168804 + * * one of the children is marked with YES_SO_MARK or ASM_STMT_SO_MARK
168805 + */
168806 +static bool set_fn_so_mark(next_interesting_function_t next_node)
168807 +{
168808 + bool so_fn, so_hashtable, so_child;
168809 +
168810 + so_hashtable = already_in_the_hashtable(next_node);
168811 + so_fn = marked_fn(next_node);
168812 + so_child = has_marked_child(next_node);
168813 +
168814 + if (!so_fn && !so_hashtable && !so_child)
168815 + return false;
168816 + set_yes_so_mark(next_node);
168817 + return true;
168818 +}
168819 +
168820 +// Determine if any of the function pointer targets have data flow between the return value and one of the arguments
168821 +static next_interesting_function_t get_same_not_ret_child(next_interesting_function_t parent)
168822 +{
168823 + unsigned int i;
168824 + next_interesting_function_t child;
168825 +
168826 +#if BUILDING_GCC_VERSION <= 4007
168827 + if (VEC_empty(next_interesting_function_t, parent->children))
168828 + return NULL;
168829 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
168830 +#else
168831 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
168832 +#endif
168833 + if (child->num == 0)
168834 + continue;
168835 + if (strcmp(parent->decl_name, child->decl_name))
168836 + continue;
168837 + if (!strcmp(child->context, "fndecl"))
168838 + return child;
168839 + }
168840 + return NULL;
168841 +}
168842 +
168843 +/* Trace a return value of function pointer type back to an argument via a concrete function
168844 + fnptr 0 && fn 0 && (fn 0 -> fn 2) => fnptr 2 */
168845 +static void search_missing_fptr_arg(next_interesting_function_t parent)
168846 +{
168847 + next_interesting_function_t child;
168848 + unsigned int i;
168849 +#if BUILDING_GCC_VERSION <= 4007
168850 + VEC(next_interesting_function_t, heap) *new_children = NULL;
168851 +#else
168852 + vec<next_interesting_function_t, va_heap, vl_embed> *new_children = NULL;
168853 +#endif
168854 +
168855 + if (parent->num != 0)
168856 + return;
168857 + if (!strcmp(parent->context, "fndecl"))
168858 + return;
168859 + if (!strncmp(parent->context, "vardecl", sizeof("vardecl") - 1))
168860 + return;
168861 +
168862 + // fnptr 0 && fn 0
168863 +#if BUILDING_GCC_VERSION <= 4007
168864 + if (VEC_empty(next_interesting_function_t, parent->children))
168865 + return;
168866 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
168867 +#else
168868 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
168869 +#endif
168870 + next_interesting_function_t cur_next_node, tracked_fn;
168871 +
168872 + if (child->num != 0)
168873 + continue;
168874 + // (fn 0 -> fn 2)
168875 + tracked_fn = get_same_not_ret_child(child);
168876 + if (!tracked_fn)
168877 + continue;
168878 +
168879 + // fn 2 => fnptr 2
168880 + for (cur_next_node = global_next_interesting_function[parent->hash]; cur_next_node; cur_next_node = cur_next_node->next) {
168881 + if (cur_next_node->num != tracked_fn->num)
168882 + continue;
168883 +
168884 + if (strcmp(parent->decl_name, cur_next_node->decl_name))
168885 + continue;
168886 +
168887 + if (!has_next_interesting_function_vec(parent, cur_next_node)) {
168888 +#if BUILDING_GCC_VERSION <= 4007
168889 + VEC_safe_push(next_interesting_function_t, heap, new_children, cur_next_node);
168890 +#else
168891 + vec_safe_push(new_children, cur_next_node);
168892 +#endif
168893 + }
168894 + }
168895 + }
168896 +
168897 +#if BUILDING_GCC_VERSION == 4005
168898 + if (VEC_empty(next_interesting_function_t, new_children))
168899 + return;
168900 + FOR_EACH_VEC_ELT(next_interesting_function_t, new_children, i, child)
168901 + VEC_safe_push(next_interesting_function_t, heap, parent->children, child);
168902 +#elif BUILDING_GCC_VERSION <= 4007
168903 + VEC_safe_splice(next_interesting_function_t, heap, parent->children, new_children);
168904 +#else
168905 + vec_safe_splice(parent->children, new_children);
168906 +#endif
168907 +}
168908 +
168909 +static void walk_so_marked_fns(next_interesting_function_set *visited, next_interesting_function_t parent, bool debug)
168910 +{
168911 + unsigned int i;
168912 + next_interesting_function_t child;
168913 +
168914 + gcc_assert(parent);
168915 + if (!set_fn_so_mark(parent))
168916 + return;
168917 +
168918 +#if BUILDING_GCC_VERSION <= 4007
168919 + if (VEC_empty(next_interesting_function_t, parent->children))
168920 + return;
168921 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
168922 +#else
168923 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
168924 +#endif
168925 + set_yes_so_mark(child);
168926 +
168927 + if (in_lto_p && debug == PRINT_DATA_FLOW) {
168928 + fprintf(stderr, " PARENT: decl: %s-%u context: %s %p\n", parent->decl_name, parent->num, parent->context, parent);
168929 + fprintf(stderr, " \tCHILD: decl: %s-%u context: %s %p\n", child->decl_name, child->num, child->context, child);
168930 + }
168931 +
168932 + if (!pointer_set_insert(visited, child))
168933 + walk_so_marked_fns(visited, child, debug);
168934 + }
168935 +}
168936 +
168937 +// Do a depth-first recursive dump of the next_interesting_function_t children vector
168938 +static void print_missing_functions(next_interesting_function_set *visited, next_interesting_function_t parent)
168939 +{
168940 + unsigned int i;
168941 + next_interesting_function_t child;
168942 +
168943 + gcc_assert(parent);
168944 + gcc_assert(parent->marked != NO_SO_MARK);
168945 + print_missing_function(parent);
168946 +
168947 +#if BUILDING_GCC_VERSION <= 4007
168948 + if (VEC_empty(next_interesting_function_t, parent->children))
168949 + return;
168950 + FOR_EACH_VEC_ELT(next_interesting_function_t, parent->children, i, child) {
168951 +#else
168952 + FOR_EACH_VEC_SAFE_ELT(parent->children, i, child) {
168953 +#endif
168954 + gcc_assert(child->marked != NO_SO_MARK);
168955 + if (!pointer_set_insert(visited, child))
168956 + print_missing_functions(visited, child);
168957 + }
168958 +}
168959 +
168960 +// Set YES_SO_MARK on functions that will be emitted into the hash table
168961 +static void search_so_marked_fns(bool debug)
168962 +{
168963 +
168964 + unsigned int i;
168965 + next_interesting_function_set *visited;
168966 + next_interesting_function_t cur_global;
168967 +
168968 + visited = next_interesting_function_pointer_set_create();
168969 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
168970 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
168971 + if (cur_global->marked == NO_SO_MARK || pointer_set_insert(visited, cur_global))
168972 + continue;
168973 +
168974 + if (in_lto_p && debug == PRINT_DATA_FLOW)
168975 + fprintf(stderr, "Data flow: decl: %s-%u context: %s %p\n", cur_global->decl_name, cur_global->num, cur_global->context, cur_global);
168976 +
168977 + walk_so_marked_fns(visited, cur_global, debug);
168978 +
168979 + if (in_lto_p && debug == PRINT_DATA_FLOW)
168980 + fprintf(stderr, "\n");
168981 + }
168982 + }
168983 + pointer_set_destroy(visited);
168984 +}
168985 +
168986 +// Print functions missing from the hash table
168987 +static void print_so_marked_fns(void)
168988 +{
168989 + unsigned int i;
168990 + next_interesting_function_set *visited;
168991 + next_interesting_function_t cur_global;
168992 +
168993 + visited = next_interesting_function_pointer_set_create();
168994 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
168995 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
168996 + if (cur_global->marked != NO_SO_MARK && !pointer_set_insert(visited, cur_global))
168997 + print_missing_functions(visited, cur_global);
168998 + }
168999 + }
169000 + pointer_set_destroy(visited);
169001 +}
169002 +
169003 +void __attribute__((weak)) check_global_variables(next_interesting_function_t cur_global __unused) {}
169004 +
169005 +// Print all missing interesting functions
169006 +static unsigned int size_overflow_execute(void)
169007 +{
169008 + unsigned int i;
169009 + next_interesting_function_t cur_global;
169010 +
169011 + if (flag_lto && !in_lto_p)
169012 + return 0;
169013 +
169014 + // Collect vardecls and funtions reachable by function pointers
169015 + for (i = 0; i < GLOBAL_NIFN_LEN; i++) {
169016 + for (cur_global = global_next_interesting_function[i]; cur_global; cur_global = cur_global->next) {
169017 + check_global_variables(cur_global);
169018 + search_missing_fptr_arg(cur_global);
169019 + }
169020 + }
169021 +
169022 + search_so_marked_fns(PRINT_DATA_FLOW);
169023 + while (global_changed) {
169024 + global_changed = false;
169025 + search_so_marked_fns(NO_PRINT_DATA_FLOW);
169026 + }
169027 +
169028 + print_so_marked_fns();
169029 +
169030 + if (in_lto_p) {
169031 + fprintf(stderr, "%s: SIZE_OVERFLOW EXECUTE\n", __func__);
169032 + print_global_next_interesting_functions();
169033 + }
169034 +
169035 + return 0;
169036 +}
169037 +
169038 +// Omit the IPA/LTO callbacks until https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61311 gets fixed (license concerns)
169039 +#if BUILDING_GCC_VERSION >= 4008
169040 +void __attribute__((weak)) size_overflow_write_summary_lto(void) {}
169041 +#elif BUILDING_GCC_VERSION >= 4006
169042 +void __attribute__((weak)) size_overflow_write_summary_lto(cgraph_node_set set __unused, varpool_node_set vset __unused) {}
169043 +#else
169044 +void __attribute__((weak)) size_overflow_write_summary_lto(cgraph_node_set set __unused) {}
169045 +#endif
169046 +
169047 +void __attribute__((weak)) size_overflow_read_summary_lto(void) {}
169048 +
169049 +#if BUILDING_GCC_VERSION >= 4009
169050 +static const struct pass_data size_overflow_functions_pass_data = {
169051 +#else
169052 +static struct ipa_opt_pass_d size_overflow_functions_pass = {
169053 + .pass = {
169054 +#endif
169055 + .type = IPA_PASS,
169056 + .name = "size_overflow_functions",
169057 +#if BUILDING_GCC_VERSION >= 4008
169058 + .optinfo_flags = OPTGROUP_NONE,
169059 +#endif
169060 +#if BUILDING_GCC_VERSION >= 5000
169061 +#elif BUILDING_GCC_VERSION >= 4009
169062 + .has_gate = false,
169063 + .has_execute = true,
169064 +#else
169065 + .gate = NULL,
169066 + .execute = size_overflow_execute,
169067 + .sub = NULL,
169068 + .next = NULL,
169069 + .static_pass_number = 0,
169070 +#endif
169071 + .tv_id = TV_NONE,
169072 + .properties_required = 0,
169073 + .properties_provided = 0,
169074 + .properties_destroyed = 0,
169075 + .todo_flags_start = 0,
169076 + .todo_flags_finish = 0,
169077 +#if BUILDING_GCC_VERSION < 4009
169078 + },
169079 + .generate_summary = size_overflow_generate_summary,
169080 + .write_summary = size_overflow_write_summary_lto,
169081 + .read_summary = size_overflow_read_summary_lto,
169082 +#if BUILDING_GCC_VERSION >= 4006
169083 + .write_optimization_summary = size_overflow_write_summary_lto,
169084 + .read_optimization_summary = size_overflow_read_summary_lto,
169085 +#endif
169086 + .stmt_fixup = NULL,
169087 + .function_transform_todo_flags_start = 0,
169088 + .function_transform = size_overflow_transform,
169089 + .variable_transform = NULL,
169090 +#endif
169091 +};
169092 +
169093 +#if BUILDING_GCC_VERSION >= 4009
169094 +namespace {
169095 +class size_overflow_functions_pass : public ipa_opt_pass_d {
169096 +public:
169097 + size_overflow_functions_pass() : ipa_opt_pass_d(size_overflow_functions_pass_data,
169098 + g,
169099 + size_overflow_generate_summary,
169100 + size_overflow_write_summary_lto,
169101 + size_overflow_read_summary_lto,
169102 + size_overflow_write_summary_lto,
169103 + size_overflow_read_summary_lto,
169104 + NULL,
169105 + 0,
169106 + size_overflow_transform,
169107 + NULL) {}
169108 +#if BUILDING_GCC_VERSION >= 5000
169109 + virtual unsigned int execute(function *) { return size_overflow_execute(); }
169110 +#else
169111 + unsigned int execute() { return size_overflow_execute(); }
169112 +#endif
169113 +};
169114 +}
169115 +
169116 +opt_pass *make_size_overflow_functions_pass(void)
169117 +{
169118 + return new size_overflow_functions_pass();
169119 +}
169120 +#else
169121 +struct opt_pass *make_size_overflow_functions_pass(void)
169122 +{
169123 + return &size_overflow_functions_pass.pass;
169124 +}
169125 +#endif
169126 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_misc.c b/tools/gcc/size_overflow_plugin/size_overflow_misc.c
169127 new file mode 100644
169128 index 0000000..6075e8f
169129 --- /dev/null
169130 +++ b/tools/gcc/size_overflow_plugin/size_overflow_misc.c
169131 @@ -0,0 +1,505 @@
169132 +/*
169133 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
169134 + * Licensed under the GPL v2, or (at your option) v3
169135 + *
169136 + * Homepage:
169137 + * https://github.com/ephox-gcc-plugins/size_overflow
169138 + *
169139 + * Documentation:
169140 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
169141 + *
169142 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
169143 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
169144 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
169145 + *
169146 + * Usage:
169147 + * $ make
169148 + * $ make run
169149 + */
169150 +
169151 +#include "size_overflow.h"
169152 +
169153 +bool is_vararg(const_tree fn, unsigned int num)
169154 +{
169155 + tree arg_list;
169156 +
169157 + if (num == 0)
169158 + return false;
169159 + if (fn == NULL_TREE)
169160 + return false;
169161 + if (TREE_CODE(fn) != FUNCTION_DECL)
169162 + return false;
169163 +
169164 + arg_list = TYPE_ARG_TYPES(TREE_TYPE(fn));
169165 + if (arg_list == NULL_TREE)
169166 + return false;
169167 +
169168 + if (tree_last(arg_list) == void_list_node)
169169 + return false;
169170 +
169171 + return num >= (unsigned int)list_length(arg_list);
169172 +}
169173 +
169174 +// Extract the field decl from memory references
169175 +tree get_ref_field(const_tree ref)
169176 +{
169177 + tree field;
169178 +
169179 + // TODO: handle nested memory references
169180 + switch (TREE_CODE(ref)) {
169181 + case ARRAY_REF:
169182 + return NULL_TREE;
169183 +#if BUILDING_GCC_VERSION >= 4006
169184 + case MEM_REF:
169185 +#endif
169186 + case INDIRECT_REF:
169187 + field = TREE_OPERAND(ref, 0);
169188 + break;
169189 + case COMPONENT_REF:
169190 + field = TREE_OPERAND(ref, 1);
169191 + break;
169192 + default:
169193 + return NULL_TREE;
169194 + }
169195 +
169196 + // TODO
169197 + if (TREE_CODE(field) == SSA_NAME)
169198 + return NULL_TREE;
169199 + // TODO
169200 + if (TREE_CODE(field) != FIELD_DECL)
169201 + return NULL_TREE;
169202 + // TODO
169203 + if (TREE_CODE(field) == ADDR_EXPR)
169204 + return NULL_TREE;
169205 +
169206 + return field;
169207 +}
169208 +
169209 +const char *get_type_name_from_field(const_tree field_decl)
169210 +{
169211 + const_tree context, type_name;
169212 +
169213 + if (TREE_CODE(field_decl) != FIELD_DECL)
169214 + return NULL;
169215 +
169216 + context = DECL_CONTEXT(field_decl);
169217 + // TODO
169218 + if (TREE_CODE(context) != RECORD_TYPE)
169219 + return NULL;
169220 + gcc_assert(TREE_CODE(context) == RECORD_TYPE);
169221 + type_name = TYPE_NAME(TYPE_MAIN_VARIANT(context));
169222 + if (type_name == NULL_TREE)
169223 + return NULL;
169224 +
169225 + if (TREE_CODE(type_name) == IDENTIFIER_NODE)
169226 + return IDENTIFIER_POINTER(type_name);
169227 + else if (TREE_CODE(type_name) == TYPE_DECL)
169228 + return DECL_NAME_POINTER(type_name);
169229 +
169230 + debug_tree((tree)field_decl);
169231 + debug_tree((tree)type_name);
169232 + gcc_unreachable();
169233 +}
169234 +
169235 +// Was the function created by the compiler itself?
169236 +bool made_by_compiler(const_tree decl)
169237 +{
169238 + enum tree_code decl_code;
169239 + struct cgraph_node *node;
169240 +
169241 + if (FUNCTION_PTR_P(decl))
169242 + return false;
169243 + decl_code = TREE_CODE(decl);
169244 + if (decl_code == VAR_DECL || decl_code == FIELD_DECL)
169245 + return false;
169246 +
169247 + gcc_assert(decl_code == FUNCTION_DECL);
169248 + if (DECL_ABSTRACT_ORIGIN(decl) != NULL_TREE)
169249 + return true;
169250 + if (DECL_ARTIFICIAL(decl))
169251 + return true;
169252 +
169253 + node = get_cnode(decl);
169254 + if (!node)
169255 + return false;
169256 + return node->clone_of != NULL;
169257 +}
169258 +
169259 +bool skip_types(const_tree var)
169260 +{
169261 + const_tree type;
169262 +
169263 + type = TREE_TYPE(var);
169264 + if (type == NULL_TREE)
169265 + return true;
169266 +
169267 + switch (TREE_CODE(type)) {
169268 + case INTEGER_TYPE:
169269 + case ENUMERAL_TYPE:
169270 + return false;
169271 + default:
169272 + return true;
169273 + }
169274 +}
169275 +
169276 +gimple get_fnptr_def_stmt(const_tree fn_ptr)
169277 +{
169278 + gimple def_stmt;
169279 +
169280 + gcc_assert(fn_ptr != NULL_TREE);
169281 + gcc_assert(FUNCTION_PTR_P(fn_ptr));
169282 +
169283 + if (is_gimple_constant(fn_ptr))
169284 + return NULL;
169285 +
169286 + def_stmt = get_def_stmt(fn_ptr);
169287 + gcc_assert(def_stmt);
169288 + return def_stmt;
169289 +}
169290 +
169291 +gimple get_def_stmt(const_tree node)
169292 +{
169293 + gcc_assert(node != NULL_TREE);
169294 +
169295 + if (TREE_CODE(node) != SSA_NAME)
169296 + return NULL;
169297 + return SSA_NAME_DEF_STMT(node);
169298 +}
169299 +
169300 +tree create_new_var(tree type)
169301 +{
169302 + tree new_var = create_tmp_var(type, "cicus");
169303 +
169304 + add_referenced_var(new_var);
169305 + return new_var;
169306 +}
169307 +
169308 +static bool skip_cast(tree dst_type, const_tree rhs, bool force)
169309 +{
169310 + const_gimple def_stmt = get_def_stmt(rhs);
169311 +
169312 + if (force)
169313 + return false;
169314 +
169315 + if (is_gimple_constant(rhs))
169316 + return false;
169317 +
169318 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
169319 + return false;
169320 +
169321 + if (!types_compatible_p(dst_type, TREE_TYPE(rhs)))
169322 + return false;
169323 +
169324 + // DI type can be on 32 bit (from create_assign) but overflow type stays DI
169325 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode))
169326 + return false;
169327 +
169328 + return true;
169329 +}
169330 +
169331 +tree cast_a_tree(tree type, tree var)
169332 +{
169333 + gcc_assert(type != NULL_TREE);
169334 + gcc_assert(var != NULL_TREE);
169335 + gcc_assert(fold_convertible_p(type, var));
169336 +
169337 + return fold_convert(type, var);
169338 +}
169339 +
169340 +gimple build_cast_stmt(struct visited *visited, tree dst_type, tree rhs, tree lhs, gimple_stmt_iterator *gsi, bool before, bool force)
169341 +{
169342 + gassign *assign;
169343 + gimple def_stmt;
169344 +
169345 + gcc_assert(dst_type != NULL_TREE && rhs != NULL_TREE);
169346 + gcc_assert(!is_gimple_constant(rhs));
169347 + if (gsi_end_p(*gsi) && before == AFTER_STMT)
169348 + gcc_unreachable();
169349 +
169350 + def_stmt = get_def_stmt(rhs);
169351 + if (def_stmt && gimple_code(def_stmt) != GIMPLE_NOP && skip_cast(dst_type, rhs, force) && pointer_set_contains(visited->my_stmts, def_stmt))
169352 + return def_stmt;
169353 +
169354 + if (lhs == CREATE_NEW_VAR)
169355 + lhs = create_new_var(dst_type);
169356 +
169357 + assign = gimple_build_assign(lhs, cast_a_tree(dst_type, rhs));
169358 +
169359 + if (!gsi_end_p(*gsi)) {
169360 + location_t loc = gimple_location(gsi_stmt(*gsi));
169361 + gimple_set_location(assign, loc);
169362 + }
169363 +
169364 + gimple_assign_set_lhs(assign, make_ssa_name(lhs, assign));
169365 +
169366 + if (before)
169367 + gsi_insert_before(gsi, assign, GSI_NEW_STMT);
169368 + else
169369 + gsi_insert_after(gsi, assign, GSI_NEW_STMT);
169370 + update_stmt(assign);
169371 + return assign;
169372 +}
169373 +
169374 +bool is_size_overflow_type(const_tree var)
169375 +{
169376 + const char *name;
169377 + const_tree type_name, type;
169378 +
169379 + if (var == NULL_TREE)
169380 + return false;
169381 +
169382 + type = TREE_TYPE(var);
169383 + type_name = TYPE_NAME(type);
169384 + if (type_name == NULL_TREE)
169385 + return false;
169386 +
169387 + if (DECL_P(type_name))
169388 + name = DECL_NAME_POINTER(type_name);
169389 + else
169390 + name = IDENTIFIER_POINTER(type_name);
169391 +
169392 + if (!strncmp(name, "size_overflow_type", 18))
169393 + return true;
169394 + return false;
169395 +}
169396 +
169397 +// Determine if a cloned function has all the original arguments
169398 +static bool unchanged_arglist(struct cgraph_node *new_node, struct cgraph_node *old_node)
169399 +{
169400 + const_tree new_decl_list, old_decl_list;
169401 +
169402 + if (new_node->clone_of && new_node->clone.tree_map)
169403 + return !new_node->clone.args_to_skip;
169404 +
169405 + new_decl_list = DECL_ARGUMENTS(NODE_DECL(new_node));
169406 + old_decl_list = DECL_ARGUMENTS(NODE_DECL(old_node));
169407 + if (new_decl_list != NULL_TREE && old_decl_list != NULL_TREE)
169408 + gcc_assert(list_length(new_decl_list) == list_length(old_decl_list));
169409 +
169410 + return true;
169411 +}
169412 +
169413 +unsigned int get_correct_argnum_fndecl(const_tree fndecl, const_tree correct_argnum_of_fndecl, unsigned int num)
169414 +{
169415 + unsigned int new_num;
169416 + const_tree fndecl_arg;
169417 + tree fndecl_arglist = DECL_ARGUMENTS(fndecl);
169418 + const_tree arg, target_fndecl_arglist;
169419 +
169420 + if (num == 0)
169421 + return num;
169422 +
169423 + if (fndecl == correct_argnum_of_fndecl && !DECL_ARTIFICIAL(fndecl))
169424 + return num;
169425 + else if (fndecl == correct_argnum_of_fndecl && DECL_ARTIFICIAL(fndecl))
169426 + return CANNOT_FIND_ARG;
169427 +
169428 + target_fndecl_arglist = DECL_ARGUMENTS(correct_argnum_of_fndecl);
169429 + if (fndecl_arglist == NULL_TREE || target_fndecl_arglist == NULL_TREE)
169430 + return CANNOT_FIND_ARG;
169431 +
169432 + fndecl_arg = chain_index(num - 1, fndecl_arglist);
169433 + if (fndecl_arg == NULL_TREE)
169434 + return CANNOT_FIND_ARG;
169435 +
169436 + for (arg = target_fndecl_arglist, new_num = 1; arg; arg = TREE_CHAIN(arg), new_num++) {
169437 + if (arg == fndecl_arg || !strcmp(DECL_NAME_POINTER(arg), DECL_NAME_POINTER(fndecl_arg)))
169438 + return new_num;
169439 + }
169440 +
169441 + return CANNOT_FIND_ARG;
169442 +}
169443 +
169444 +// Find the specified argument in the originally cloned function
169445 +static unsigned int clone_argnum_on_orig(struct cgraph_node *new_node, struct cgraph_node *old_node, unsigned int clone_argnum)
169446 +{
169447 + bitmap args_to_skip;
169448 + unsigned int i, new_argnum = clone_argnum;
169449 +
169450 + if (unchanged_arglist(new_node, old_node))
169451 + return clone_argnum;
169452 +
169453 + gcc_assert(new_node->clone_of && new_node->clone.tree_map);
169454 + args_to_skip = new_node->clone.args_to_skip;
169455 + for (i = 0; i < clone_argnum; i++) {
169456 + if (bitmap_bit_p(args_to_skip, i))
169457 + new_argnum++;
169458 + }
169459 + return new_argnum;
169460 +}
169461 +
169462 +// Find the specified argument in the clone
169463 +static unsigned int orig_argnum_on_clone(struct cgraph_node *new_node, struct cgraph_node *old_node, unsigned int orig_argnum)
169464 +{
169465 + bitmap args_to_skip;
169466 + unsigned int i, new_argnum = orig_argnum;
169467 +
169468 + if (unchanged_arglist(new_node, old_node))
169469 + return orig_argnum;
169470 +
169471 + gcc_assert(new_node->clone_of && new_node->clone.tree_map);
169472 + args_to_skip = new_node->clone.args_to_skip;
169473 + if (bitmap_bit_p(args_to_skip, orig_argnum - 1))
169474 + // XXX torolni kellene a nodeot
169475 + return CANNOT_FIND_ARG;
169476 +
169477 + for (i = 0; i < orig_argnum; i++) {
169478 + if (bitmap_bit_p(args_to_skip, i))
169479 + new_argnum--;
169480 + }
169481 + return new_argnum;
169482 +}
169483 +
169484 +// Associate the argument between a clone and a cloned function
169485 +static unsigned int get_correct_argnum_cnode(struct cgraph_node *node, struct cgraph_node *correct_argnum_of_node, unsigned int argnum)
169486 +{
169487 + bool node_clone, correct_argnum_of_node_clone;
169488 + const_tree correct_argnum_of_node_decl, node_decl;
169489 +
169490 + if (node == correct_argnum_of_node)
169491 + return argnum;
169492 + if (argnum == 0)
169493 + return argnum;
169494 +
169495 + correct_argnum_of_node_decl = NODE_DECL(correct_argnum_of_node);
169496 + gcc_assert(correct_argnum_of_node_decl != NULL_TREE);
169497 + gcc_assert(correct_argnum_of_node && !DECL_ARTIFICIAL(correct_argnum_of_node_decl));
169498 +
169499 + if (node) {
169500 + node_decl = NODE_DECL(node);
169501 + gcc_assert(!DECL_ARTIFICIAL(node_decl));
169502 + node_clone = made_by_compiler(node_decl);
169503 + } else {
169504 + node_decl = NULL_TREE;
169505 + node_clone = false;
169506 + }
169507 +
169508 + if (correct_argnum_of_node_decl == node_decl)
169509 + return argnum;
169510 +
169511 + correct_argnum_of_node_clone = made_by_compiler(correct_argnum_of_node_decl);
169512 + // the original decl is lost if both nodes are clones
169513 + if (node_clone && correct_argnum_of_node_clone) {
169514 + gcc_assert(unchanged_arglist(node, correct_argnum_of_node));
169515 + return argnum;
169516 + }
169517 +
169518 + if (node_clone && !correct_argnum_of_node_clone)
169519 + return clone_argnum_on_orig(correct_argnum_of_node, node, argnum);
169520 + else if (!node_clone && correct_argnum_of_node_clone)
169521 + return orig_argnum_on_clone(correct_argnum_of_node, node, argnum);
169522 +
169523 + if (node)
169524 + debug_tree((tree)NODE_DECL(node));
169525 + debug_tree((tree)correct_argnum_of_node_decl);
169526 + gcc_unreachable();
169527 +}
169528 +
169529 +unsigned int get_correct_argnum(const_tree decl, const_tree correct_argnum_of_decl, unsigned int argnum)
169530 +{
169531 + struct cgraph_node *node, *correct_argnum_of_node;
169532 +
169533 + gcc_assert(decl != NULL_TREE);
169534 + gcc_assert(correct_argnum_of_decl != NULL_TREE);
169535 +
169536 + correct_argnum_of_node = get_cnode(correct_argnum_of_decl);
169537 + if (!correct_argnum_of_node || DECL_ARTIFICIAL(decl) || DECL_ARTIFICIAL(correct_argnum_of_decl))
169538 + return get_correct_argnum_fndecl(decl, correct_argnum_of_decl, argnum);
169539 +
169540 + node = get_cnode(decl);
169541 + return get_correct_argnum_cnode(node, correct_argnum_of_node, argnum);
169542 +}
169543 +
169544 +// Find the original cloned function
169545 +tree get_orig_fndecl(const_tree clone_fndecl)
169546 +{
169547 + struct cgraph_node *node;
169548 +
169549 + gcc_assert(TREE_CODE(clone_fndecl) == FUNCTION_DECL);
169550 +
169551 + if (DECL_ABSTRACT_ORIGIN(clone_fndecl))
169552 + return (tree)DECL_ORIGIN(clone_fndecl);
169553 + node = get_cnode(clone_fndecl);
169554 + if (!node)
169555 + return (tree)clone_fndecl;
169556 +
169557 + while (node->clone_of)
169558 + node = node->clone_of;
169559 + if (!made_by_compiler(NODE_DECL(node)))
169560 + return NODE_DECL(node);
169561 + // Return the cloned decl because it is needed for the transform callback
169562 + return (tree)clone_fndecl;
169563 +}
169564 +
169565 +static tree get_interesting_fndecl_from_stmt(const gcall *stmt)
169566 +{
169567 + if (gimple_call_num_args(stmt) == 0)
169568 + return NULL_TREE;
169569 + return gimple_call_fndecl(stmt);
169570 +}
169571 +
169572 +tree get_interesting_orig_fndecl_from_stmt(const gcall *stmt)
169573 +{
169574 + tree fndecl;
169575 +
169576 + fndecl = get_interesting_fndecl_from_stmt(stmt);
169577 + if (fndecl == NULL_TREE)
169578 + return NULL_TREE;
169579 + return get_orig_fndecl(fndecl);
169580 +}
169581 +
169582 +void set_dominance_info(void)
169583 +{
169584 + calculate_dominance_info(CDI_DOMINATORS);
169585 + calculate_dominance_info(CDI_POST_DOMINATORS);
169586 +}
169587 +
169588 +void unset_dominance_info(void)
169589 +{
169590 + free_dominance_info(CDI_DOMINATORS);
169591 + free_dominance_info(CDI_POST_DOMINATORS);
169592 +}
169593 +
169594 +void set_current_function_decl(tree fndecl)
169595 +{
169596 + gcc_assert(fndecl != NULL_TREE);
169597 +
169598 + push_cfun(DECL_STRUCT_FUNCTION(fndecl));
169599 +#if BUILDING_GCC_VERSION <= 4007
169600 + current_function_decl = fndecl;
169601 +#endif
169602 + set_dominance_info();
169603 +}
169604 +
169605 +void unset_current_function_decl(void)
169606 +{
169607 + unset_dominance_info();
169608 +#if BUILDING_GCC_VERSION <= 4007
169609 + current_function_decl = NULL_TREE;
169610 +#endif
169611 + pop_cfun();
169612 +}
169613 +
169614 +bool is_valid_cgraph_node(struct cgraph_node *node)
169615 +{
169616 + if (cgraph_function_body_availability(node) == AVAIL_NOT_AVAILABLE)
169617 + return false;
169618 + if (node->thunk.thunk_p || node->alias)
169619 + return false;
169620 + return true;
169621 +}
169622 +
169623 +tree get_lhs(const_gimple stmt)
169624 +{
169625 + switch (gimple_code(stmt)) {
169626 + case GIMPLE_ASSIGN:
169627 + case GIMPLE_CALL:
169628 + return gimple_get_lhs(stmt);
169629 + case GIMPLE_PHI:
169630 + return gimple_phi_result(stmt);
169631 + default:
169632 + debug_gimple_stmt((gimple)stmt);
169633 + gcc_unreachable();
169634 + }
169635 +}
169636 +
169637 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_plugin.c b/tools/gcc/size_overflow_plugin/size_overflow_plugin.c
169638 new file mode 100644
169639 index 0000000..a82cc026
169640 --- /dev/null
169641 +++ b/tools/gcc/size_overflow_plugin/size_overflow_plugin.c
169642 @@ -0,0 +1,318 @@
169643 +/*
169644 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
169645 + * Licensed under the GPL v2, or (at your option) v3
169646 + *
169647 + * Homepage:
169648 + * https://github.com/ephox-gcc-plugins/size_overflow
169649 + *
169650 + * Documentation:
169651 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
169652 + *
169653 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
169654 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
169655 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
169656 + *
169657 + * Usage:
169658 + * $ make
169659 + * $ make run
169660 + */
169661 +
169662 +#include "size_overflow.h"
169663 +
169664 +int plugin_is_GPL_compatible;
169665 +
169666 +tree report_size_overflow_decl;
169667 +
169668 +tree size_overflow_type_HI;
169669 +tree size_overflow_type_SI;
169670 +tree size_overflow_type_DI;
169671 +tree size_overflow_type_TI;
169672 +
169673 +static struct plugin_info size_overflow_plugin_info = {
169674 + .version = "20151029",
169675 + .help = "no-size-overflow\tturn off size overflow checking\n",
169676 +};
169677 +
169678 +static tree handle_size_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
169679 +{
169680 + unsigned int arg_count;
169681 + enum tree_code code = TREE_CODE(*node);
169682 +
169683 + switch (code) {
169684 + case FUNCTION_DECL:
169685 + arg_count = type_num_arguments(TREE_TYPE(*node));
169686 + break;
169687 + case FUNCTION_TYPE:
169688 + case METHOD_TYPE:
169689 + arg_count = type_num_arguments(*node);
169690 + break;
169691 + default:
169692 + *no_add_attrs = true;
169693 + debug_tree(*node);
169694 + error("%s: %qE attribute only applies to functions", __func__, name);
169695 + return NULL_TREE;
169696 + }
169697 +
169698 + for (; args; args = TREE_CHAIN(args)) {
169699 + int cur_val;
169700 + tree position = TREE_VALUE(args);
169701 +
169702 + if (TREE_CODE(position) != INTEGER_CST) {
169703 + error("%s: parameter isn't an integer", __func__);
169704 + debug_tree(args);
169705 + *no_add_attrs = true;
169706 + return NULL_TREE;
169707 + }
169708 +
169709 + cur_val = tree_to_shwi(position);
169710 + if (cur_val < 0 || arg_count < (unsigned int)cur_val) {
169711 + error("%s: parameter %d is outside range.", __func__, cur_val);
169712 + *no_add_attrs = true;
169713 + return NULL_TREE;
169714 + }
169715 + }
169716 + return NULL_TREE;
169717 +}
169718 +
169719 +static tree handle_intentional_overflow_attribute(tree *node, tree __unused name, tree args, int __unused flags, bool *no_add_attrs)
169720 +{
169721 + unsigned int arg_count;
169722 + HOST_WIDE_INT s_first_arg;
169723 + enum tree_code code = TREE_CODE(*node);
169724 +
169725 + switch (code) {
169726 + case FUNCTION_DECL:
169727 + arg_count = type_num_arguments(TREE_TYPE(*node));
169728 + break;
169729 + case FUNCTION_TYPE:
169730 + case METHOD_TYPE:
169731 + arg_count = type_num_arguments(*node);
169732 + break;
169733 + case VAR_DECL:
169734 + case FIELD_DECL:
169735 + return NULL_TREE;
169736 + default:
169737 + *no_add_attrs = true;
169738 + debug_tree(*node);
169739 + error("%qE attribute only applies to functions, fields or vars", name);
169740 + return NULL_TREE;
169741 + }
169742 +
169743 + s_first_arg = tree_to_shwi(TREE_VALUE(args));
169744 + if (s_first_arg == -1)
169745 + return NULL_TREE;
169746 + if (s_first_arg < -1)
169747 + error("%s: parameter %d is outside range.", __func__, (int)s_first_arg);
169748 +
169749 + for (; args; args = TREE_CHAIN(args)) {
169750 + unsigned int cur_val;
169751 +
169752 + if (TREE_CODE(TREE_VALUE(args)) != INTEGER_CST) {
169753 + error("%s: parameter isn't an integer", __func__);
169754 + debug_tree(args);
169755 + *no_add_attrs = true;
169756 + return NULL_TREE;
169757 + }
169758 +
169759 + cur_val = (unsigned int)tree_to_uhwi(TREE_VALUE(args));
169760 + if (cur_val > arg_count ) {
169761 + error("%s: parameter %u is outside range. (arg_count: %u)", __func__, cur_val, arg_count);
169762 + *no_add_attrs = true;
169763 + return NULL_TREE;
169764 + }
169765 + }
169766 + return NULL_TREE;
169767 +}
169768 +
169769 +static struct attribute_spec size_overflow_attr = {
169770 + .name = "size_overflow",
169771 + .min_length = 1,
169772 + .max_length = -1,
169773 + .decl_required = true,
169774 + .type_required = false,
169775 + .function_type_required = false,
169776 + .handler = handle_size_overflow_attribute,
169777 +#if BUILDING_GCC_VERSION >= 4007
169778 + .affects_type_identity = false
169779 +#endif
169780 +};
169781 +
169782 +static struct attribute_spec intentional_overflow_attr = {
169783 + .name = "intentional_overflow",
169784 + .min_length = 1,
169785 + .max_length = -1,
169786 + .decl_required = true,
169787 + .type_required = false,
169788 + .function_type_required = false,
169789 + .handler = handle_intentional_overflow_attribute,
169790 +#if BUILDING_GCC_VERSION >= 4007
169791 + .affects_type_identity = false
169792 +#endif
169793 +};
169794 +
169795 +static void register_attributes(void __unused *event_data, void __unused *data)
169796 +{
169797 + register_attribute(&size_overflow_attr);
169798 + register_attribute(&intentional_overflow_attr);
169799 +}
169800 +
169801 +static tree create_typedef(tree type, const char* ident)
169802 +{
169803 + tree new_type, decl;
169804 +
169805 + new_type = build_variant_type_copy(type);
169806 + decl = build_decl(BUILTINS_LOCATION, TYPE_DECL, get_identifier(ident), new_type);
169807 + DECL_ORIGINAL_TYPE(decl) = type;
169808 + TYPE_NAME(new_type) = decl;
169809 + return new_type;
169810 +}
169811 +
169812 +// Create the noreturn report_size_overflow() function decl.
169813 +static void size_overflow_start_unit(void __unused *gcc_data, void __unused *user_data)
169814 +{
169815 + tree const_char_ptr_type_node;
169816 + tree fntype;
169817 +
169818 + const_char_ptr_type_node = build_pointer_type(build_type_variant(char_type_node, 1, 0));
169819 +
169820 + size_overflow_type_HI = create_typedef(intHI_type_node, "size_overflow_type_HI");
169821 + size_overflow_type_SI = create_typedef(intSI_type_node, "size_overflow_type_SI");
169822 + size_overflow_type_DI = create_typedef(intDI_type_node, "size_overflow_type_DI");
169823 + size_overflow_type_TI = create_typedef(intTI_type_node, "size_overflow_type_TI");
169824 +
169825 + // void report_size_overflow(const char *loc_file, unsigned int loc_line, const char *current_func, const char *ssa_var)
169826 + fntype = build_function_type_list(void_type_node,
169827 + const_char_ptr_type_node,
169828 + unsigned_type_node,
169829 + const_char_ptr_type_node,
169830 + const_char_ptr_type_node,
169831 + NULL_TREE);
169832 + report_size_overflow_decl = build_fn_decl("report_size_overflow", fntype);
169833 +
169834 + DECL_ASSEMBLER_NAME(report_size_overflow_decl);
169835 + TREE_PUBLIC(report_size_overflow_decl) = 1;
169836 + DECL_EXTERNAL(report_size_overflow_decl) = 1;
169837 + DECL_ARTIFICIAL(report_size_overflow_decl) = 1;
169838 +// TREE_THIS_VOLATILE(report_size_overflow_decl) = 1;
169839 +// !!!
169840 + DECL_PRESERVE_P(report_size_overflow_decl) = 1;
169841 + DECL_UNINLINABLE(report_size_overflow_decl) = 1;
169842 + TREE_USED(report_size_overflow_decl) = 1;
169843 + TREE_NOTHROW(report_size_overflow_decl) = 1;
169844 +}
169845 +
169846 +#if BUILDING_GCC_VERSION >= 4009
169847 +static bool gate_disable_ubsan_si_overflow(void)
169848 +{
169849 + flag_sanitize &= ~SANITIZE_SI_OVERFLOW;
169850 + return true;
169851 +}
169852 +
169853 +static const struct pass_data disable_ubsan_si_overflow_pass_data = {
169854 + .type = GIMPLE_PASS,
169855 + .name = "disable_ubsan_si_overflow",
169856 + .optinfo_flags = OPTGROUP_NONE,
169857 +#if BUILDING_GCC_VERSION >= 5000
169858 +#else
169859 + .has_gate = true,
169860 + .has_execute = false,
169861 +#endif
169862 + .tv_id = TV_NONE,
169863 + .properties_required = 0,
169864 + .properties_provided = 0,
169865 + .properties_destroyed = 0,
169866 + .todo_flags_start = 0,
169867 + .todo_flags_finish = 0
169868 +};
169869 +
169870 +namespace {
169871 +class disable_ubsan_si_overflow_pass : public gimple_opt_pass {
169872 +public:
169873 + disable_ubsan_si_overflow_pass() : gimple_opt_pass(disable_ubsan_si_overflow_pass_data, g) {}
169874 +#if BUILDING_GCC_VERSION >= 5000
169875 + virtual bool gate(function *) { return gate_disable_ubsan_si_overflow(); }
169876 +#else
169877 + bool gate() { return gate_disable_ubsan_si_overflow(); }
169878 +#endif
169879 +};
169880 +}
169881 +
169882 +opt_pass *make_disable_ubsan_si_overflow_pass(void)
169883 +{
169884 + return new disable_ubsan_si_overflow_pass();
169885 +}
169886 +#endif
169887 +
169888 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
169889 +{
169890 + int i;
169891 + const char * const plugin_name = plugin_info->base_name;
169892 + const int argc = plugin_info->argc;
169893 + const struct plugin_argument * const argv = plugin_info->argv;
169894 + bool enable = true;
169895 + struct register_pass_info insert_size_overflow_asm_pass_info;
169896 + struct register_pass_info size_overflow_functions_pass_info;
169897 +#if BUILDING_GCC_VERSION >= 4009
169898 + struct register_pass_info disable_ubsan_si_overflow_pass_info;
169899 +#endif
169900 +
169901 + static const struct ggc_root_tab gt_ggc_r_gt_size_overflow[] = {
169902 + {
169903 + .base = &report_size_overflow_decl,
169904 + .nelt = 1,
169905 + .stride = sizeof(report_size_overflow_decl),
169906 + .cb = &gt_ggc_mx_tree_node,
169907 + .pchw = &gt_pch_nx_tree_node
169908 + },
169909 + LAST_GGC_ROOT_TAB
169910 + };
169911 +
169912 + insert_size_overflow_asm_pass_info.pass = make_insert_size_overflow_asm_pass();
169913 + insert_size_overflow_asm_pass_info.reference_pass_name = "ssa";
169914 + insert_size_overflow_asm_pass_info.ref_pass_instance_number = 1;
169915 + insert_size_overflow_asm_pass_info.pos_op = PASS_POS_INSERT_AFTER;
169916 +
169917 + size_overflow_functions_pass_info.pass = make_size_overflow_functions_pass();
169918 + size_overflow_functions_pass_info.reference_pass_name = "inline";
169919 + size_overflow_functions_pass_info.ref_pass_instance_number = 1;
169920 + size_overflow_functions_pass_info.pos_op = PASS_POS_INSERT_AFTER;
169921 +
169922 + if (!plugin_default_version_check(version, &gcc_version)) {
169923 + error(G_("incompatible gcc/plugin versions"));
169924 + return 1;
169925 + }
169926 +
169927 + for (i = 0; i < argc; ++i) {
169928 + if (!strcmp(argv[i].key, "no-size-overflow")) {
169929 + enable = false;
169930 + continue;
169931 + }
169932 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
169933 + }
169934 +
169935 + register_callback(plugin_name, PLUGIN_INFO, NULL, &size_overflow_plugin_info);
169936 + if (enable) {
169937 +#if BUILDING_GCC_VERSION >= 4009
169938 + if (flag_sanitize & SANITIZE_SI_OVERFLOW) {
169939 + error(G_("ubsan SANITIZE_SI_OVERFLOW option is unsupported"));
169940 + return 1;
169941 + }
169942 +#endif
169943 + register_callback(plugin_name, PLUGIN_START_UNIT, &size_overflow_start_unit, NULL);
169944 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_size_overflow);
169945 +#if BUILDING_GCC_VERSION >= 4009
169946 + flag_sanitize |= SANITIZE_SI_OVERFLOW;
169947 + disable_ubsan_si_overflow_pass_info.pass = make_disable_ubsan_si_overflow_pass();
169948 + disable_ubsan_si_overflow_pass_info.reference_pass_name = "ubsan";
169949 + disable_ubsan_si_overflow_pass_info.ref_pass_instance_number = 1;
169950 + disable_ubsan_si_overflow_pass_info.pos_op = PASS_POS_REPLACE;
169951 +
169952 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &disable_ubsan_si_overflow_pass_info);
169953 +#endif
169954 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &insert_size_overflow_asm_pass_info);
169955 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &size_overflow_functions_pass_info);
169956 + }
169957 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
169958 +
169959 + return 0;
169960 +}
169961 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c b/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c
169962 new file mode 100644
169963 index 0000000..317cd6c
169964 --- /dev/null
169965 +++ b/tools/gcc/size_overflow_plugin/size_overflow_plugin_hash.c
169966 @@ -0,0 +1,352 @@
169967 +/*
169968 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
169969 + * Licensed under the GPL v2, or (at your option) v3
169970 + *
169971 + * Homepage:
169972 + * https://github.com/ephox-gcc-plugins/size_overflow
169973 + *
169974 + * Documentation:
169975 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
169976 + *
169977 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
169978 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
169979 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
169980 + *
169981 + * Usage:
169982 + * $ make
169983 + * $ make run
169984 + */
169985 +
169986 +#include "size_overflow.h"
169987 +
169988 +#include "size_overflow_hash.h"
169989 +#include "disable_size_overflow_hash.h"
169990 +#include "size_overflow_hash_aux.h"
169991 +
169992 +static const_tree get_function_type(const_tree decl)
169993 +{
169994 + if (FUNCTION_PTR_P(decl))
169995 + return TREE_TYPE(TREE_TYPE(decl));
169996 + gcc_assert(TREE_CODE(decl) == FUNCTION_DECL);
169997 + return TREE_TYPE(decl);
169998 +}
169999 +
170000 +static unsigned char get_tree_code(const_tree type)
170001 +{
170002 + switch (TREE_CODE(type)) {
170003 + case ARRAY_TYPE:
170004 + return 0;
170005 + case BOOLEAN_TYPE:
170006 + return 1;
170007 + case ENUMERAL_TYPE:
170008 + return 2;
170009 + case FUNCTION_TYPE:
170010 + return 3;
170011 + case INTEGER_TYPE:
170012 + return 4;
170013 + case POINTER_TYPE:
170014 + return 5;
170015 + case RECORD_TYPE:
170016 + return 6;
170017 + case UNION_TYPE:
170018 + return 7;
170019 + case VOID_TYPE:
170020 + return 8;
170021 + case REAL_TYPE:
170022 + return 9;
170023 + case VECTOR_TYPE:
170024 + return 10;
170025 + case REFERENCE_TYPE:
170026 + return 11;
170027 + case OFFSET_TYPE:
170028 + return 12;
170029 + case COMPLEX_TYPE:
170030 + return 13;
170031 + default:
170032 + debug_tree((tree)type);
170033 + gcc_unreachable();
170034 + }
170035 +}
170036 +
170037 +// http://www.team5150.com/~andrew/noncryptohashzoo2~/CrapWow.html
170038 +static unsigned int CrapWow(const char *key, unsigned int len, unsigned int seed)
170039 +{
170040 +#define cwfold( a, b, lo, hi ) { p = (unsigned int)(a) * (unsigned long long)(b); lo ^= (unsigned int)p; hi ^= (unsigned int)(p >> 32); }
170041 +#define cwmixa( in ) { cwfold( in, m, k, h ); }
170042 +#define cwmixb( in ) { cwfold( in, n, h, k ); }
170043 +
170044 + unsigned int m = 0x57559429;
170045 + unsigned int n = 0x5052acdb;
170046 + const unsigned int *key4 = (const unsigned int *)key;
170047 + unsigned int h = len;
170048 + unsigned int k = len + seed + n;
170049 + unsigned long long p;
170050 +
170051 + while (len >= 8) {
170052 + cwmixb(key4[0]) cwmixa(key4[1]) key4 += 2;
170053 + len -= 8;
170054 + }
170055 + if (len >= 4) {
170056 + cwmixb(key4[0]) key4 += 1;
170057 + len -= 4;
170058 + }
170059 + if (len)
170060 + cwmixa(key4[0] & ((1 << (len * 8)) - 1 ));
170061 + cwmixb(h ^ (k + n));
170062 + return k ^ h;
170063 +
170064 +#undef cwfold
170065 +#undef cwmixa
170066 +#undef cwmixb
170067 +}
170068 +
170069 +static void set_hash(struct decl_hash *decl_hash_data)
170070 +{
170071 + unsigned int fn, type, codes, seed = 0;
170072 +
170073 + fn = CrapWow(decl_hash_data->fn_name, strlen(decl_hash_data->fn_name), seed) & 0xffff;
170074 + codes = CrapWow((const char*)decl_hash_data->tree_codes, decl_hash_data->tree_codes_len, seed) & 0xffff;
170075 + type = CrapWow(decl_hash_data->context, strlen(decl_hash_data->context), 0) & 0xffff;
170076 + decl_hash_data->hash = type ^ fn ^ codes;
170077 +}
170078 +
170079 +static void set_decl_type_codes(const_tree type, struct decl_hash *decl_hash_data)
170080 +{
170081 + gcc_assert(type != NULL_TREE);
170082 + gcc_assert(TREE_CODE_CLASS(TREE_CODE(type)) == tcc_type);
170083 +
170084 + while (type && decl_hash_data->tree_codes_len < CODES_LIMIT) {
170085 + decl_hash_data->tree_codes[decl_hash_data->tree_codes_len] = get_tree_code(type);
170086 + decl_hash_data->tree_codes_len++;
170087 + type = TREE_TYPE(type);
170088 + }
170089 +}
170090 +
170091 +static void set_result_codes(const_tree node, struct decl_hash *decl_hash_data)
170092 +{
170093 + const_tree result;
170094 +
170095 + gcc_assert(node != NULL_TREE);
170096 +
170097 + if (DECL_P(node)) {
170098 + result = DECL_RESULT(node);
170099 + if (result != NULL_TREE)
170100 + return set_decl_type_codes(TREE_TYPE(result), decl_hash_data);
170101 + return set_result_codes(TREE_TYPE(node), decl_hash_data);
170102 + }
170103 +
170104 + gcc_assert(TYPE_P(node));
170105 +
170106 + if (TREE_CODE(node) == FUNCTION_TYPE)
170107 + return set_result_codes(TREE_TYPE(node), decl_hash_data);
170108 +
170109 + return set_decl_type_codes(node, decl_hash_data);
170110 +}
170111 +
170112 +static void set_decl_codes(struct decl_hash *decl_hash_data)
170113 +{
170114 + const_tree arg, type;
170115 + enum tree_code code;
170116 +
170117 + if (TREE_CODE(decl_hash_data->decl) == VAR_DECL || TREE_CODE(decl_hash_data->decl) == FIELD_DECL) {
170118 + set_decl_type_codes(TREE_TYPE(decl_hash_data->decl), decl_hash_data);
170119 + return;
170120 + }
170121 +
170122 + type = get_function_type(decl_hash_data->decl);
170123 + code = TREE_CODE(type);
170124 + gcc_assert(code == FUNCTION_TYPE || code == METHOD_TYPE);
170125 +
170126 + if (FUNCTION_PTR_P(decl_hash_data->decl))
170127 + set_result_codes(type, decl_hash_data);
170128 + else
170129 + set_result_codes(decl_hash_data->decl, decl_hash_data);
170130 +
170131 + for (arg = TYPE_ARG_TYPES(type); arg != NULL_TREE && decl_hash_data->tree_codes_len < CODES_LIMIT; arg = TREE_CHAIN(arg))
170132 + set_decl_type_codes(TREE_VALUE(arg), decl_hash_data);
170133 +}
170134 +
170135 +static const struct size_overflow_hash *get_proper_hash_chain(const struct size_overflow_hash *entry, const char *func_name, const char *context)
170136 +{
170137 + for (; entry; entry = entry->next) {
170138 + if (strcmp(entry->name, func_name))
170139 + continue;
170140 + if (!strcmp(entry->context, context))
170141 + return entry;
170142 + }
170143 + return NULL;
170144 +}
170145 +
170146 +unsigned int get_decl_hash(const_tree decl, const char *decl_name)
170147 +{
170148 + struct decl_hash decl_hash_data;
170149 + enum tree_code code = TREE_CODE(decl);
170150 +
170151 + gcc_assert(code == FIELD_DECL || code == FUNCTION_DECL || code == VAR_DECL);
170152 +
170153 + // skip builtins __builtin_constant_p
170154 + if (code == FUNCTION_DECL && (DECL_BUILT_IN(decl) || DECL_BUILT_IN_CLASS(decl) == BUILT_IN_NORMAL))
170155 + return NO_HASH;
170156 +
170157 + decl_hash_data.fn_name = decl_name;
170158 + decl_hash_data.decl = decl;
170159 + decl_hash_data.context = get_decl_context(decl);
170160 + if (!decl_hash_data.context)
170161 + return NO_HASH;
170162 + decl_hash_data.tree_codes_len = 0;
170163 +
170164 + set_decl_codes(&decl_hash_data);
170165 + gcc_assert(decl_hash_data.tree_codes_len != 0);
170166 + set_hash(&decl_hash_data);
170167 + return decl_hash_data.hash;
170168 +}
170169 +
170170 +const char *get_orig_decl_name(const_tree decl)
170171 +{
170172 + const char *name;
170173 + unsigned int len;
170174 + const void *end;
170175 + const_tree orig_decl;
170176 +
170177 + if (TREE_CODE(decl) == FUNCTION_DECL)
170178 + orig_decl = DECL_ORIGIN(decl);
170179 + else
170180 + orig_decl = decl;
170181 +
170182 + len = DECL_NAME_LENGTH(orig_decl);
170183 + name = DECL_NAME_POINTER(orig_decl);
170184 +
170185 + /* Sometimes gcc loses the original cgraph node leaving only clones behind.
170186 + * In such cases we will extract the name from the clone and use it in the hash table
170187 + * without checking the parameter number on the original (unavailable) decl.
170188 + */
170189 +
170190 + if (made_by_compiler(orig_decl)) {
170191 + end = memchr(name, '.', len);
170192 + if (!end)
170193 + return xstrndup(name, len);
170194 + len = (long)end - (long)name;
170195 + gcc_assert(len > 0);
170196 + }
170197 +
170198 + return xstrndup(name, len);
170199 +}
170200 +
170201 +const struct size_overflow_hash *get_disable_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum)
170202 +{
170203 + const struct size_overflow_hash *entry, *entry_node;
170204 +
170205 + entry = disable_size_overflow_hash[hash];
170206 + entry_node = get_proper_hash_chain(entry, decl_name, context);
170207 + if (entry_node && entry_node->param & (1U << argnum))
170208 + return entry_node;
170209 + return NULL;
170210 +}
170211 +
170212 +const struct size_overflow_hash *get_size_overflow_hash_entry(unsigned int hash, const char *decl_name, const char *context, unsigned int argnum)
170213 +{
170214 + const struct size_overflow_hash *entry, *entry_node;
170215 +
170216 + entry = size_overflow_hash[hash];
170217 + entry_node = get_proper_hash_chain(entry, decl_name, context);
170218 + if (entry_node && entry_node->param & (1U << argnum))
170219 + return entry_node;
170220 +
170221 + entry = size_overflow_hash_aux[hash];
170222 + entry_node = get_proper_hash_chain(entry, decl_name, context);
170223 + if (entry_node && entry_node->param & (1U << argnum))
170224 + return entry_node;
170225 + return NULL;
170226 +}
170227 +
170228 +const struct size_overflow_hash *get_size_overflow_hash_entry_tree(const_tree fndecl, unsigned int argnum, bool hash_table)
170229 +{
170230 + const_tree orig_decl;
170231 + unsigned int orig_argnum, hash;
170232 + const char *decl_name, *context;
170233 +
170234 + if (made_by_compiler(fndecl)) {
170235 + orig_decl = get_orig_fndecl(fndecl);
170236 + orig_argnum = get_correct_argnum(fndecl, orig_decl, argnum);
170237 + } else {
170238 + orig_decl = fndecl;
170239 + orig_argnum = argnum;
170240 + }
170241 +
170242 + if (orig_argnum == CANNOT_FIND_ARG)
170243 + return NULL;
170244 +
170245 + decl_name = get_orig_decl_name(orig_decl);
170246 + hash = get_decl_hash(orig_decl, decl_name);
170247 + if (hash == NO_HASH)
170248 + return NULL;
170249 +
170250 + context = get_decl_context(orig_decl);
170251 + if (!context)
170252 + return NULL;
170253 +
170254 + if (hash_table == SIZE_OVERFLOW)
170255 + return get_size_overflow_hash_entry(hash, decl_name, context, orig_argnum);
170256 + return get_disable_size_overflow_hash_entry(hash, decl_name, context, orig_argnum);
170257 +}
170258 +
170259 +unsigned int find_arg_number_tree(const_tree arg, const_tree func)
170260 +{
170261 + tree var;
170262 + unsigned int argnum = 1;
170263 +
170264 + if (DECL_ARGUMENTS(func) == NULL_TREE)
170265 + return CANNOT_FIND_ARG;
170266 +
170267 + if (TREE_CODE(arg) == SSA_NAME)
170268 + arg = SSA_NAME_VAR(arg);
170269 +
170270 + for (var = DECL_ARGUMENTS(func); var; var = TREE_CHAIN(var), argnum++) {
170271 + if (!operand_equal_p(arg, var, 0) && strcmp(DECL_NAME_POINTER(var), DECL_NAME_POINTER(arg)))
170272 + continue;
170273 + if (!skip_types(var))
170274 + return argnum;
170275 + }
170276 +
170277 + return CANNOT_FIND_ARG;
170278 +}
170279 +
170280 +const_tree get_attribute(const char* attr_name, const_tree decl)
170281 +{
170282 + const_tree attr = lookup_attribute(attr_name, DECL_ATTRIBUTES(decl));
170283 + if (attr && TREE_VALUE(attr))
170284 + return attr;
170285 + return NULL_TREE;
170286 +}
170287 +
170288 +/* Check if the function has a size_overflow attribute or it is in the size_overflow hash table.
170289 + * If the function is missing everywhere then print the missing message into stderr.
170290 + */
170291 +void print_missing_function(next_interesting_function_t node)
170292 +{
170293 + unsigned int argnum, hash;
170294 + const struct size_overflow_hash *entry;
170295 + const char *decl_name;
170296 +
170297 + if (node->marked == ASM_STMT_SO_MARK)
170298 + return;
170299 +
170300 + if (node->orig_next_node) {
170301 + hash = node->orig_next_node->hash;
170302 + decl_name = node->orig_next_node->decl_name;
170303 + argnum = node->orig_next_node->num;
170304 + gcc_assert(!strcmp(node->context, node->orig_next_node->context));
170305 + } else {
170306 + hash = node->hash;
170307 + decl_name = node->decl_name;
170308 + argnum = node->num;
170309 + }
170310 +
170311 + entry = get_size_overflow_hash_entry(hash, decl_name, node->context, argnum);
170312 + if (entry)
170313 + return;
170314 +
170315 + // inform() would be too slow
170316 + 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);
170317 +}
170318 +
170319 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_transform.c b/tools/gcc/size_overflow_plugin/size_overflow_transform.c
170320 new file mode 100644
170321 index 0000000..78e16db
170322 --- /dev/null
170323 +++ b/tools/gcc/size_overflow_plugin/size_overflow_transform.c
170324 @@ -0,0 +1,746 @@
170325 +/*
170326 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
170327 + * Licensed under the GPL v2, or (at your option) v3
170328 + *
170329 + * Homepage:
170330 + * https://github.com/ephox-gcc-plugins/size_overflow
170331 + *
170332 + * Documentation:
170333 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
170334 + *
170335 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
170336 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
170337 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
170338 + *
170339 + * Usage:
170340 + * $ make
170341 + * $ make run
170342 + */
170343 +
170344 +#include "size_overflow.h"
170345 +
170346 +static tree cast_to_orig_type(struct visited *visited, gimple stmt, const_tree orig_node, tree new_node)
170347 +{
170348 + gimple def_stmt;
170349 + const_gimple assign;
170350 + tree result, orig_type = TREE_TYPE(orig_node);
170351 + gimple_stmt_iterator gsi;
170352 +
170353 + if (gimple_code(stmt) != GIMPLE_PHI) {
170354 + gsi = gsi_for_stmt(stmt);
170355 + assign = build_cast_stmt(visited, orig_type, new_node, CREATE_NEW_VAR, &gsi, BEFORE_STMT, false);
170356 + return get_lhs(assign);
170357 + }
170358 +
170359 + def_stmt = get_def_stmt(new_node);
170360 + if (gimple_code(def_stmt) == GIMPLE_PHI)
170361 + gsi = gsi_after_labels(gimple_bb(def_stmt));
170362 + else
170363 + gsi = gsi_for_stmt(def_stmt);
170364 +
170365 + result = gimple_phi_result(stmt);
170366 + assign = build_cast_stmt(visited, orig_type, new_node, SSA_NAME_VAR(result), &gsi, AFTER_STMT, false);
170367 + return get_lhs(assign);
170368 +}
170369 +
170370 +static void change_size_overflow_asm_input(gasm *stmt, tree new_input)
170371 +{
170372 + tree list;
170373 +
170374 + gcc_assert(is_size_overflow_insert_check_asm(stmt));
170375 +
170376 + list = build_tree_list(NULL_TREE, build_string(3, "rm"));
170377 + list = chainon(NULL_TREE, build_tree_list(list, new_input));
170378 + gimple_asm_set_input_op(stmt, 0, list);
170379 +}
170380 +
170381 +static void change_field_write_rhs(gassign *assign, const_tree orig_rhs, tree new_rhs)
170382 +{
170383 + const_tree rhs1, rhs2, rhs3 = NULL_TREE;
170384 +
170385 + rhs1 = gimple_assign_rhs1(assign);
170386 + if (rhs1 == orig_rhs) {
170387 + gimple_assign_set_rhs1(assign, new_rhs);
170388 + return;
170389 + }
170390 +
170391 + rhs2 = gimple_assign_rhs2(assign);
170392 + if (rhs2 == orig_rhs) {
170393 + gimple_assign_set_rhs2(assign, new_rhs);
170394 + return;
170395 + }
170396 +
170397 +#if BUILDING_GCC_VERSION >= 4006
170398 + rhs3 = gimple_assign_rhs3(assign);
170399 + if (rhs3 == orig_rhs) {
170400 + gimple_assign_set_rhs3(assign, new_rhs);
170401 + return;
170402 + }
170403 +#endif
170404 +
170405 + debug_gimple_stmt(assign);
170406 + fprintf(stderr, "orig_rhs:\n");
170407 + debug_tree((tree)orig_rhs);
170408 + fprintf(stderr, "rhs1:\n");
170409 + debug_tree((tree)rhs1);
170410 + fprintf(stderr, "rhs2:\n");
170411 + debug_tree((tree)rhs2);
170412 + fprintf(stderr, "rhs3:\n");
170413 + debug_tree((tree)rhs3);
170414 + gcc_unreachable();
170415 +}
170416 +
170417 +static void change_phi_arg(gphi *phi, tree new_node, unsigned int num)
170418 +{
170419 + unsigned int i;
170420 + location_t loc = gimple_location(phi);
170421 +
170422 + for (i = 0; i < gimple_phi_num_args(phi); i++) {
170423 + if (i == num)
170424 + add_phi_arg(phi, new_node, gimple_phi_arg_edge(phi, i), loc);
170425 + }
170426 +}
170427 +
170428 +static void change_orig_node(struct visited *visited, gimple stmt, const_tree orig_node, tree new_node, unsigned int num)
170429 +{
170430 + tree cast_lhs = cast_to_orig_type(visited, stmt, orig_node, new_node);
170431 +
170432 + switch (gimple_code(stmt)) {
170433 + case GIMPLE_RETURN:
170434 + gimple_return_set_retval(as_a_greturn(stmt), cast_lhs);
170435 + break;
170436 + case GIMPLE_CALL:
170437 + gimple_call_set_arg(as_a_gcall(stmt), num - 1, cast_lhs);
170438 + break;
170439 + case GIMPLE_ASM:
170440 + change_size_overflow_asm_input(as_a_gasm(stmt), cast_lhs);
170441 + break;
170442 + case GIMPLE_ASSIGN:
170443 + change_field_write_rhs(as_a_gassign(stmt), orig_node, cast_lhs);
170444 + break;
170445 + case GIMPLE_PHI:
170446 + change_phi_arg(as_a_gphi(stmt), cast_lhs, num);
170447 + break;
170448 + default:
170449 + debug_gimple_stmt(stmt);
170450 + gcc_unreachable();
170451 + }
170452 +
170453 + update_stmt(stmt);
170454 +}
170455 +
170456 +// e.g., 3.8.2, 64, arch/x86/ia32/ia32_signal.c copy_siginfo_from_user32(): compat_ptr() u32 max
170457 +static bool skip_asm_cast(const_tree arg)
170458 +{
170459 + gimple def_stmt = get_def_stmt(arg);
170460 +
170461 + if (!def_stmt || !gimple_assign_cast_p(def_stmt))
170462 + return false;
170463 +
170464 + def_stmt = get_def_stmt(gimple_assign_rhs1(def_stmt));
170465 + if (is_size_overflow_asm(def_stmt))
170466 + return false;
170467 + return def_stmt && gimple_code(def_stmt) == GIMPLE_ASM;
170468 +}
170469 +
170470 +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)
170471 +{
170472 + interesting_stmts_t new_node;
170473 +
170474 + new_node = (interesting_stmts_t )xmalloc(sizeof(*new_node));
170475 + new_node->first_stmt = first_stmt;
170476 + new_node->num = num;
170477 + new_node->orig_node = orig_node;
170478 + new_node->next = head;
170479 + new_node->next_node = next_node;
170480 + return new_node;
170481 +}
170482 +
170483 +static void free_interesting_stmts(interesting_stmts_t head)
170484 +{
170485 + while (head) {
170486 + interesting_stmts_t cur = head->next;
170487 + free(head);
170488 + head = cur;
170489 + }
170490 +}
170491 +
170492 +/* This function calls the main recursion function (expand) that duplicates the stmts. Before that it checks the intentional_overflow attribute,
170493 + * it decides whether the duplication is necessary or not. After expand() it changes the orig node to the duplicated node
170494 + * in the original stmt (first stmt) and it inserts the overflow check for the arg of the callee or for the return value.
170495 + */
170496 +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)
170497 +{
170498 + enum tree_code orig_code;
170499 +
170500 + gcc_assert(orig_node != NULL_TREE);
170501 +
170502 + if (is_gimple_constant(orig_node))
170503 + return head;
170504 +
170505 + orig_code = TREE_CODE(orig_node);
170506 + gcc_assert(orig_code != FIELD_DECL && orig_code != FUNCTION_DECL);
170507 +
170508 + if (skip_types(orig_node))
170509 + return head;
170510 + // !!! temporarily ignore bitfield types
170511 + if (DECL_BIT_FIELD_TYPE(orig_node))
170512 + return head;
170513 +
170514 + // find a defining marked caller argument or struct field for arg
170515 + if (check_intentional_size_overflow_asm_and_attribute(orig_node) != MARK_NO)
170516 + return head;
170517 +
170518 + if (skip_asm_cast(orig_node))
170519 + return head;
170520 +
170521 + return create_interesting_stmts(head, next_node, orig_node, first_stmt, num);
170522 +}
170523 +
170524 +static bool is_signed_error_code_const(const_tree node)
170525 +{
170526 + HOST_WIDE_INT constant = tree_to_shwi(node);
170527 +
170528 + return constant >= -4095 && constant <= -1;
170529 +}
170530 +
170531 +static bool is_unsigned_error_code_const(const_tree node)
170532 +{
170533 + unsigned HOST_WIDE_INT constant = tree_to_uhwi(node);
170534 +
170535 + // ulong -4095
170536 + if (constant >= 0xfffffffffffff001)
170537 + return true;
170538 + // uint -4095
170539 + return constant >= 0xfffff001;
170540 +}
170541 +
170542 +static bool is_error_code_const(const_tree node)
170543 +{
170544 + enum machine_mode mode;
170545 +
170546 + if (!is_gimple_constant(node))
170547 + return false;
170548 + mode = TYPE_MODE(TREE_TYPE(node));
170549 + if (mode != SImode && mode != DImode)
170550 + return false;
170551 +
170552 + if (!TYPE_UNSIGNED(TREE_TYPE(node)) && is_signed_error_code_const(node))
170553 + return true;
170554 + return TYPE_UNSIGNED(TREE_TYPE(node)) && is_unsigned_error_code_const(node);
170555 +}
170556 +
170557 +static bool has_error_code(gphi *phi)
170558 +{
170559 + unsigned int i, len = gimple_phi_num_args(phi);
170560 +
170561 + for (i = 0; i < len; i++) {
170562 + const_tree arg = gimple_phi_arg_def(phi, i);
170563 +
170564 + if (is_error_code_const(arg))
170565 + return true;
170566 + }
170567 +
170568 + return false;
170569 +}
170570 +
170571 +static interesting_stmts_t search_interesting_rets(interesting_stmts_t head, next_interesting_function_t next_node_ret, greturn *ret)
170572 +{
170573 + tree first_node;
170574 +
170575 + if (!next_node_ret || next_node_ret->marked == ASM_STMT_SO_MARK)
170576 + return head;
170577 +
170578 + first_node = gimple_return_retval(ret);
170579 + if (first_node == NULL_TREE)
170580 + return head;
170581 +
170582 + return search_interesting_stmt(head, next_node_ret, ret, first_node, 0);
170583 +}
170584 +
170585 +static void handle_binary_assign(struct visited *visited, interesting_stmts_t expand_from, gassign *assign, tree rhs)
170586 +{
170587 + tree new_node;
170588 + gimple def_orig_node;
170589 +
170590 + new_node = expand(visited, expand_from, rhs);
170591 + if (new_node == NULL_TREE)
170592 + return;
170593 +
170594 + def_orig_node = get_def_stmt(rhs);
170595 + change_orig_node(visited, assign, rhs, new_node, 0);
170596 +
170597 + if (pointer_set_contains(visited->no_cast_check, def_orig_node))
170598 + return;
170599 + check_size_overflow(expand_from, assign, TREE_TYPE(new_node), new_node, rhs, BEFORE_STMT);
170600 +}
170601 +
170602 +static bool search_error_codes(struct visited *visited, gimple_set *visited_error_codes, interesting_stmts_t expand_from, tree lhs, bool error_code)
170603 +{
170604 + gimple def_stmt;
170605 +
170606 + def_stmt = get_def_stmt(lhs);
170607 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
170608 + return error_code;
170609 +
170610 + if (pointer_set_insert(visited_error_codes, def_stmt))
170611 + return error_code;
170612 +
170613 + if (is_gimple_constant(lhs))
170614 + return error_code;
170615 + if (skip_types(lhs))
170616 + return is_error_code_const(lhs);
170617 +
170618 + switch (gimple_code(def_stmt)) {
170619 + case GIMPLE_CALL:
170620 + case GIMPLE_ASM:
170621 + return error_code;
170622 + case GIMPLE_ASSIGN: {
170623 + tree rhs1, rhs2;
170624 + gassign *assign = as_a_gassign(def_stmt);
170625 +
170626 + switch (gimple_num_ops(assign)) {
170627 + case 2:
170628 + return search_error_codes(visited, visited_error_codes, expand_from, gimple_assign_rhs1(def_stmt), error_code);
170629 + case 3:
170630 + if (!error_code)
170631 + return error_code;
170632 +
170633 + /* Run stmt duplication from the binary assignment ops (rhs1 and rhs2)
170634 + * so that size_overflow checking skips the lhs of the last binary assignment
170635 + * before the error code PHI.
170636 + */
170637 + rhs1 = gimple_assign_rhs1(assign);
170638 + handle_binary_assign(visited, expand_from, assign, rhs1);
170639 + rhs2 = gimple_assign_rhs2(assign);
170640 + handle_binary_assign(visited, expand_from, assign, rhs2);
170641 + return error_code;
170642 + }
170643 + gcc_unreachable();
170644 + }
170645 + case GIMPLE_PHI: {
170646 + unsigned int i;
170647 +
170648 + error_code = has_error_code(as_a_gphi(def_stmt));
170649 + for (i = 0; i < gimple_phi_num_args(def_stmt); i++) {
170650 + error_code = search_error_codes(visited, visited_error_codes, expand_from, gimple_phi_arg_def(def_stmt, i), error_code);
170651 + }
170652 + return error_code;
170653 + }
170654 + default:
170655 + debug_gimple_stmt(def_stmt);
170656 + error("%s: unknown gimple code", __func__);
170657 + gcc_unreachable();
170658 + }
170659 +}
170660 +
170661 +static bool handle_error_codes(struct visited *visited, interesting_stmts_t expand_from)
170662 +{
170663 + bool error_code;
170664 + gimple_set *visited_error_codes;
170665 +
170666 + // expand the data flow from a return stmt
170667 + if (expand_from->next_node->num != 0 || strcmp(expand_from->next_node->context, "fndecl"))
170668 + return false;
170669 +
170670 + visited_error_codes = pointer_set_create();
170671 + error_code = search_error_codes(visited, visited_error_codes, expand_from, expand_from->orig_node, false);
170672 + pointer_set_destroy(visited_error_codes);
170673 +
170674 + return error_code;
170675 +}
170676 +
170677 +static void handle_interesting_stmt(struct visited *visited, interesting_stmts_t head)
170678 +{
170679 + interesting_stmts_t cur;
170680 +
170681 + for (cur = head; cur; cur = cur->next) {
170682 + tree new_node;
170683 + gimple orig_def_stmt;
170684 +
170685 + if (handle_error_codes(visited, cur))
170686 + continue;
170687 +
170688 + new_node = expand(visited, cur, cur->orig_node);
170689 + if (new_node == NULL_TREE)
170690 + continue;
170691 +
170692 + orig_def_stmt = get_def_stmt(cur->orig_node);
170693 +
170694 + change_orig_node(visited, cur->first_stmt, cur->orig_node, new_node, cur->num);
170695 +
170696 + if (pointer_set_contains(visited->no_cast_check, orig_def_stmt))
170697 + continue;
170698 + check_size_overflow(cur, cur->first_stmt, TREE_TYPE(new_node), new_node, cur->orig_node, BEFORE_STMT);
170699 + }
170700 +}
170701 +
170702 +static next_interesting_function_t get_interesting_function_next_node(tree decl, unsigned int num)
170703 +{
170704 + next_interesting_function_t next_node;
170705 + const struct size_overflow_hash *so_hash;
170706 + struct fn_raw_data raw_data;
170707 +
170708 + raw_data.decl = decl;
170709 + raw_data.decl_str = DECL_NAME_POINTER(decl);
170710 + raw_data.num = num;
170711 + raw_data.marked = YES_SO_MARK;
170712 +
170713 + next_node = get_global_next_interesting_function_entry_with_hash(&raw_data);
170714 + if (next_node && next_node->marked != NO_SO_MARK)
170715 + return next_node;
170716 +
170717 + so_hash = get_size_overflow_hash_entry_tree(raw_data.decl, raw_data.num, SIZE_OVERFLOW);
170718 + if (so_hash)
170719 + return get_and_create_next_node_from_global_next_nodes(&raw_data, NULL);
170720 + return NULL;
170721 +}
170722 +
170723 +tree handle_fnptr_assign(const_gimple stmt)
170724 +{
170725 + tree field, rhs, op0;
170726 + const_tree op0_type;
170727 + enum tree_code rhs_code;
170728 +
170729 + // TODO skip binary assignments for now (fs/sync.c _591 = __bpf_call_base + _590;)
170730 + if (gimple_num_ops(stmt) != 2)
170731 + return NULL_TREE;
170732 +
170733 + gcc_assert(gimple_num_ops(stmt) == 2);
170734 + // TODO skip asm_stmt for now
170735 + if (gimple_code(stmt) == GIMPLE_ASM)
170736 + return NULL_TREE;
170737 + rhs = gimple_assign_rhs1(stmt);
170738 + if (is_gimple_constant(rhs))
170739 + return NULL_TREE;
170740 +
170741 + rhs_code = TREE_CODE(rhs);
170742 + if (rhs_code == VAR_DECL)
170743 + return rhs;
170744 +
170745 + switch (rhs_code) {
170746 + case ADDR_EXPR:
170747 + op0 = TREE_OPERAND(rhs, 0);
170748 + gcc_assert(TREE_CODE(op0) == FUNCTION_DECL);
170749 + return op0;
170750 + case COMPONENT_REF:
170751 + break;
170752 + // TODO skip array_ref for now
170753 + case ARRAY_REF:
170754 + return NULL_TREE;
170755 + // TODO skip ssa_name because it can lead to parm_decl
170756 + case SSA_NAME:
170757 + return NULL_TREE;
170758 + // TODO skip mem_ref and indirect_ref for now
170759 +#if BUILDING_GCC_VERSION >= 4006
170760 + case MEM_REF:
170761 +#endif
170762 + case INDIRECT_REF:
170763 + return NULL_TREE;
170764 + default:
170765 + debug_tree(rhs);
170766 + debug_gimple_stmt((gimple)stmt);
170767 + gcc_unreachable();
170768 + }
170769 +
170770 + op0 = TREE_OPERAND(rhs, 0);
170771 + switch (TREE_CODE(op0)) {
170772 + // TODO skip array_ref and parm_decl for now
170773 + case ARRAY_REF:
170774 + case PARM_DECL:
170775 + return NULL_TREE;
170776 + case COMPONENT_REF:
170777 +#if BUILDING_GCC_VERSION >= 4006
170778 + case MEM_REF:
170779 +#endif
170780 + case INDIRECT_REF:
170781 + case VAR_DECL:
170782 + break;
170783 + default:
170784 + debug_tree(op0);
170785 + gcc_unreachable();
170786 + }
170787 +
170788 + op0_type = TREE_TYPE(op0);
170789 + // TODO skip unions for now
170790 + if (TREE_CODE(op0_type) == UNION_TYPE)
170791 + return NULL_TREE;
170792 + gcc_assert(TREE_CODE(op0_type) == RECORD_TYPE);
170793 +
170794 + field = TREE_OPERAND(rhs, 1);
170795 + gcc_assert(TREE_CODE(field) == FIELD_DECL);
170796 + return field;
170797 +}
170798 +
170799 +static tree get_fn_or_fnptr_decl(const gcall *call_stmt)
170800 +{
170801 + const_tree fnptr;
170802 + const_gimple def_stmt;
170803 + tree decl = gimple_call_fndecl(call_stmt);
170804 +
170805 + if (decl != NULL_TREE)
170806 + return decl;
170807 +
170808 + fnptr = gimple_call_fn(call_stmt);
170809 + // !!! assertot kell irni 0-ra, mert csak az lehet ott
170810 + if (is_gimple_constant(fnptr))
170811 + return NULL_TREE;
170812 + def_stmt = get_fnptr_def_stmt(fnptr);
170813 + return handle_fnptr_assign(def_stmt);
170814 +}
170815 +
170816 +// Start stmt duplication on marked function parameters
170817 +static interesting_stmts_t search_interesting_calls(interesting_stmts_t head, gcall *call_stmt)
170818 +{
170819 + tree decl;
170820 + unsigned int i, len;
170821 +
170822 + len = gimple_call_num_args(call_stmt);
170823 + if (len == 0)
170824 + return head;
170825 +
170826 + decl = get_fn_or_fnptr_decl(call_stmt);
170827 + if (decl == NULL_TREE)
170828 + return head;
170829 +
170830 + for (i = 0; i < len; i++) {
170831 + tree arg;
170832 + next_interesting_function_t next_node;
170833 +
170834 + arg = gimple_call_arg(call_stmt, i);
170835 + if (is_gimple_constant(arg))
170836 + continue;
170837 + if (skip_types(arg))
170838 + continue;
170839 + next_node = get_interesting_function_next_node(decl, i + 1);
170840 + if (next_node)
170841 + head = search_interesting_stmt(head, next_node, call_stmt, arg, i + 1);
170842 + }
170843 +
170844 + return head;
170845 +}
170846 +
170847 +// Find assignements to structure fields and vardecls
170848 +static interesting_stmts_t search_interesting_structs_vardecls(interesting_stmts_t head, gassign *assign)
170849 +{
170850 + enum intentional_mark mark;
170851 + next_interesting_function_t next_node;
170852 + tree rhs1, rhs2, lhs, decl;
170853 +#if BUILDING_GCC_VERSION >= 4006
170854 + tree rhs3;
170855 +#endif
170856 +
170857 + lhs = gimple_assign_lhs(assign);
170858 +
170859 + if (VAR_P(lhs))
170860 + decl = lhs;
170861 + else
170862 + decl = get_ref_field(lhs);
170863 + if (decl == NULL_TREE)
170864 + return head;
170865 + if (DECL_NAME(decl) == NULL_TREE)
170866 + return head;
170867 +
170868 + // !!! temporarily ignore bitfield types
170869 + if (DECL_BIT_FIELD_TYPE(decl))
170870 + return head;
170871 +
170872 + next_node = get_interesting_function_next_node(decl, 0);
170873 + if (!next_node)
170874 + return head;
170875 +
170876 + mark = get_intentional_attr_type(decl);
170877 + if (mark != MARK_NO)
170878 + return head;
170879 +
170880 + rhs1 = gimple_assign_rhs1(assign);
170881 + head = search_interesting_stmt(head, next_node, assign, rhs1, 0);
170882 +
170883 + rhs2 = gimple_assign_rhs2(assign);
170884 + if (rhs2)
170885 + head = search_interesting_stmt(head, next_node, assign, rhs2, 0);
170886 +
170887 +#if BUILDING_GCC_VERSION >= 4006
170888 + rhs3 = gimple_assign_rhs3(assign);
170889 + if (rhs3)
170890 + head = search_interesting_stmt(head, next_node, assign, rhs3, 0);
170891 +#endif
170892 + return head;
170893 +}
170894 +
170895 +static next_interesting_function_t create_so_asm_next_interesting_function_node(const gasm *stmt)
170896 +{
170897 + next_interesting_function_t next_node;
170898 + struct fn_raw_data raw_data;
170899 +
170900 + raw_data.decl = NULL_TREE;
170901 + raw_data.decl_str = gimple_asm_string(stmt);
170902 + raw_data.context = "attr";
170903 + raw_data.hash = 0;
170904 + raw_data.num = 0;
170905 + raw_data.marked = ASM_STMT_SO_MARK;
170906 +
170907 + next_node = get_global_next_interesting_function_entry(&raw_data);
170908 + if (next_node)
170909 + return next_node;
170910 + next_node = create_new_next_interesting_entry(&raw_data, NULL);
170911 + gcc_assert(next_node);
170912 +
170913 + add_to_global_next_interesting_function(next_node);
170914 + return next_node;
170915 +}
170916 +
170917 +// Collect interesting stmts for duplication
170918 +static void search_interesting_stmts(struct visited *visited)
170919 +{
170920 + basic_block bb;
170921 + next_interesting_function_t next_node_ret;
170922 + interesting_stmts_t head = NULL;
170923 +
170924 + next_node_ret = get_interesting_function_next_node(current_function_decl, 0);
170925 +
170926 + FOR_ALL_BB_FN(bb, cfun) {
170927 + gimple_stmt_iterator gsi;
170928 +
170929 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
170930 + gimple stmt = gsi_stmt(gsi);
170931 +
170932 + switch (gimple_code(stmt)) {
170933 + case GIMPLE_ASM: {
170934 + tree first_node;
170935 + next_interesting_function_t next_node;
170936 + const gasm *asm_stmt = as_a_gasm(stmt);
170937 +
170938 + if (!is_size_overflow_insert_check_asm(asm_stmt))
170939 + continue;
170940 + next_node = create_so_asm_next_interesting_function_node(asm_stmt);
170941 + first_node = get_size_overflow_asm_input(asm_stmt);
170942 + head = search_interesting_stmt(head, next_node, stmt, first_node, 0);
170943 + break;
170944 + }
170945 + case GIMPLE_RETURN:
170946 + head = search_interesting_rets(head, next_node_ret, as_a_greturn(stmt));
170947 + break;
170948 + case GIMPLE_CALL:
170949 + head = search_interesting_calls(head, as_a_gcall(stmt));
170950 + break;
170951 + case GIMPLE_ASSIGN:
170952 + /* !!! TODO LTO modeban nincs duplikalas a globalis valtozora, mert a tree mergek
170953 + * utan mar nem lehet megkulonboztetni attol a globalis valtozotol, aminek a scopeja csak a file
170954 + * igy a context nem vardecl lesz, hanem vardecl_filenev. De execute-ban kiirja, ha hianyzik a hash tablabol
170955 + * IPA-ban van duplikalas.
170956 + */
170957 + head = search_interesting_structs_vardecls(head, as_a_gassign(stmt));
170958 + break;
170959 + default:
170960 + break;
170961 + }
170962 + }
170963 + }
170964 +
170965 + handle_interesting_stmt(visited, head);
170966 + free_interesting_stmts(head);
170967 +}
170968 +
170969 +static struct visited *create_visited(void)
170970 +{
170971 + struct visited *new_node;
170972 +
170973 + new_node = (struct visited *)xmalloc(sizeof(*new_node));
170974 + new_node->stmts = pointer_set_create();
170975 + new_node->my_stmts = pointer_set_create();
170976 + new_node->skip_expr_casts = pointer_set_create();
170977 + new_node->no_cast_check = pointer_set_create();
170978 + return new_node;
170979 +}
170980 +
170981 +static void free_visited(struct visited *visited)
170982 +{
170983 + pointer_set_destroy(visited->stmts);
170984 + pointer_set_destroy(visited->my_stmts);
170985 + pointer_set_destroy(visited->skip_expr_casts);
170986 + pointer_set_destroy(visited->no_cast_check);
170987 +
170988 + free(visited);
170989 +}
170990 +
170991 +// Remove the size_overflow asm stmt and create an assignment from the input and output of the asm
170992 +static void replace_size_overflow_asm_with_assign(gasm *asm_stmt, tree lhs, tree rhs)
170993 +{
170994 + gassign *assign;
170995 + gimple_stmt_iterator gsi;
170996 +
170997 + // already removed
170998 + if (gimple_bb(asm_stmt) == NULL)
170999 + return;
171000 + gsi = gsi_for_stmt(asm_stmt);
171001 +
171002 + assign = gimple_build_assign(lhs, rhs);
171003 + gsi_insert_before(&gsi, assign, GSI_SAME_STMT);
171004 + SSA_NAME_DEF_STMT(lhs) = assign;
171005 +
171006 + gsi_remove(&gsi, true);
171007 +}
171008 +
171009 +// Replace our asm stmts with assignments (they are no longer needed and may interfere with later optimizations)
171010 +static void remove_size_overflow_asm(gimple stmt)
171011 +{
171012 + gimple_stmt_iterator gsi;
171013 + tree input, output;
171014 +
171015 + if (!is_size_overflow_asm(stmt))
171016 + return;
171017 +
171018 + if (gimple_asm_noutputs(as_a_gasm(stmt)) == 0) {
171019 + gsi = gsi_for_stmt(stmt);
171020 +
171021 + ipa_remove_stmt_references(cgraph_get_node(current_function_decl), stmt);
171022 + gsi_remove(&gsi, true);
171023 + return;
171024 + }
171025 +
171026 + input = gimple_asm_input_op(as_a_gasm(stmt), 0);
171027 + output = gimple_asm_output_op(as_a_gasm(stmt), 0);
171028 + replace_size_overflow_asm_with_assign(as_a_gasm(stmt), TREE_VALUE(output), TREE_VALUE(input));
171029 +}
171030 +
171031 +static void remove_all_size_overflow_asm(void)
171032 +{
171033 + basic_block bb;
171034 +
171035 + FOR_ALL_BB_FN(bb, cfun) {
171036 + gimple_stmt_iterator si;
171037 +
171038 + for (si = gsi_start_bb(bb); !gsi_end_p(si); gsi_next(&si))
171039 + remove_size_overflow_asm(gsi_stmt(si));
171040 + }
171041 +}
171042 +
171043 +unsigned int size_overflow_transform(struct cgraph_node *node __unused)
171044 +{
171045 + struct visited *visited;
171046 +
171047 +#if BUILDING_GCC_VERSION >= 4008
171048 + if (dump_file) {
171049 + fprintf(dump_file, "BEFORE TRANSFORM -------------------------\n");
171050 + size_overflow_dump_function(dump_file, node);
171051 + }
171052 +#endif
171053 + visited = create_visited();
171054 + set_dominance_info();
171055 +
171056 + search_interesting_stmts(visited);
171057 +
171058 + remove_all_size_overflow_asm();
171059 +
171060 + unset_dominance_info();
171061 + free_visited(visited);
171062 +
171063 +#if BUILDING_GCC_VERSION >= 4008
171064 + if (dump_file) {
171065 + fprintf(dump_file, "AFTER TRANSFORM -------------------------\n");
171066 + size_overflow_dump_function(dump_file, node);
171067 + }
171068 +#endif
171069 + return TODO_dump_func | TODO_verify_stmts | TODO_remove_unused_locals | TODO_update_ssa_no_phi | TODO_ggc_collect | TODO_verify_flow;
171070 +}
171071 diff --git a/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c b/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c
171072 new file mode 100644
171073 index 0000000..460c047
171074 --- /dev/null
171075 +++ b/tools/gcc/size_overflow_plugin/size_overflow_transform_core.c
171076 @@ -0,0 +1,1008 @@
171077 +/*
171078 + * Copyright 2011-2015 by Emese Revfy <re.emese@gmail.com>
171079 + * Licensed under the GPL v2, or (at your option) v3
171080 + *
171081 + * Homepage:
171082 + * https://github.com/ephox-gcc-plugins/size_overflow
171083 + *
171084 + * Documentation:
171085 + * http://forums.grsecurity.net/viewtopic.php?f=7&t=3043
171086 + *
171087 + * This plugin recomputes expressions of function arguments marked by a size_overflow attribute
171088 + * with double integer precision (DImode/TImode for 32/64 bit integer types).
171089 + * The recomputed argument is checked against TYPE_MAX and an event is logged on overflow and the triggering process is killed.
171090 + *
171091 + * Usage:
171092 + * $ make
171093 + * $ make run
171094 + */
171095 +
171096 +#include "size_overflow.h"
171097 +
171098 +#define MIN_CHECK true
171099 +#define MAX_CHECK false
171100 +
171101 +unsigned int call_count = 0;
171102 +
171103 +tree get_size_overflow_type(struct visited *visited, const_gimple stmt, const_tree node)
171104 +{
171105 + const_tree type;
171106 + tree new_type;
171107 +
171108 + gcc_assert(node != NULL_TREE);
171109 +
171110 + type = TREE_TYPE(node);
171111 +
171112 + if (pointer_set_contains(visited->my_stmts, stmt))
171113 + return TREE_TYPE(node);
171114 +
171115 + switch (TYPE_MODE(type)) {
171116 + case QImode:
171117 + case HImode:
171118 + new_type = size_overflow_type_SI;
171119 + break;
171120 + case SImode:
171121 + new_type = size_overflow_type_DI;
171122 + break;
171123 + case DImode:
171124 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode))
171125 + new_type = TYPE_UNSIGNED(type) ? unsigned_intDI_type_node : intDI_type_node;
171126 + else
171127 + new_type = size_overflow_type_TI;
171128 + break;
171129 + case TImode:
171130 + gcc_assert(!TYPE_UNSIGNED(type));
171131 + new_type = size_overflow_type_TI;
171132 + break;
171133 + default:
171134 + debug_tree((tree)node);
171135 + error("%s: unsupported gcc configuration (%qE).", __func__, current_function_decl);
171136 + gcc_unreachable();
171137 + }
171138 +
171139 + if (TYPE_QUALS(type) != 0)
171140 + return build_qualified_type(new_type, TYPE_QUALS(type));
171141 + return new_type;
171142 +}
171143 +
171144 +tree cast_to_new_size_overflow_type(struct visited *visited, gimple stmt, tree rhs, tree size_overflow_type, bool before)
171145 +{
171146 + gimple_stmt_iterator gsi;
171147 + gimple new_stmt;
171148 +
171149 + if (rhs == NULL_TREE)
171150 + return NULL_TREE;
171151 +
171152 + gsi = gsi_for_stmt(stmt);
171153 + new_stmt = build_cast_stmt(visited, size_overflow_type, rhs, CREATE_NEW_VAR, &gsi, before, false);
171154 + if (gimple_assign_cast_p(new_stmt))
171155 + gimple_assign_set_rhs_code(new_stmt, CONVERT_EXPR);
171156 + pointer_set_insert(visited->my_stmts, new_stmt);
171157 +
171158 + return get_lhs(new_stmt);
171159 +}
171160 +
171161 +tree create_assign(struct visited *visited, gimple oldstmt, tree rhs1, bool before)
171162 +{
171163 + tree lhs, dst_type;
171164 + gimple_stmt_iterator gsi;
171165 +
171166 + if (rhs1 == NULL_TREE) {
171167 + debug_gimple_stmt(oldstmt);
171168 + error("%s: rhs1 is NULL_TREE", __func__);
171169 + gcc_unreachable();
171170 + }
171171 +
171172 + switch (gimple_code(oldstmt)) {
171173 + case GIMPLE_ASM:
171174 + lhs = rhs1;
171175 + break;
171176 + case GIMPLE_CALL:
171177 + case GIMPLE_ASSIGN:
171178 + lhs = gimple_get_lhs(oldstmt);
171179 + break;
171180 + default:
171181 + debug_gimple_stmt(oldstmt);
171182 + gcc_unreachable();
171183 + }
171184 +
171185 + gsi = gsi_for_stmt(oldstmt);
171186 + pointer_set_insert(visited->stmts, oldstmt);
171187 + if (lookup_stmt_eh_lp(oldstmt) != 0) {
171188 + basic_block next_bb, cur_bb;
171189 + const_edge e;
171190 +
171191 + gcc_assert(before == false);
171192 + gcc_assert(stmt_can_throw_internal(oldstmt));
171193 + gcc_assert(gimple_code(oldstmt) == GIMPLE_CALL);
171194 + gcc_assert(!gsi_end_p(gsi));
171195 +
171196 + cur_bb = gimple_bb(oldstmt);
171197 + next_bb = cur_bb->next_bb;
171198 + e = find_edge(cur_bb, next_bb);
171199 + gcc_assert(e != NULL);
171200 + gcc_assert(e->flags & EDGE_FALLTHRU);
171201 +
171202 + gsi = gsi_after_labels(next_bb);
171203 + gcc_assert(!gsi_end_p(gsi));
171204 +
171205 + before = true;
171206 + oldstmt = gsi_stmt(gsi);
171207 + }
171208 +
171209 + if (is_gimple_constant(rhs1) && TREE_CODE_CLASS(gimple_assign_rhs_code(oldstmt)) == tcc_comparison)
171210 + dst_type = get_size_overflow_type(visited, oldstmt, rhs1);
171211 + else
171212 + dst_type = get_size_overflow_type(visited, oldstmt, lhs);
171213 +
171214 + if (is_gimple_constant(rhs1))
171215 + return cast_a_tree(dst_type, rhs1);
171216 + return cast_to_new_size_overflow_type(visited, oldstmt, rhs1, dst_type, before);
171217 +}
171218 +
171219 +tree dup_assign(struct visited *visited, gassign *oldstmt, const_tree node, tree rhs1, tree rhs2, tree __unused rhs3)
171220 +{
171221 + gassign *stmt;
171222 + gimple_stmt_iterator gsi;
171223 + tree size_overflow_type, new_var, lhs = gimple_assign_lhs(oldstmt);
171224 +
171225 + if (pointer_set_contains(visited->my_stmts, oldstmt))
171226 + return lhs;
171227 +
171228 + if (gimple_num_ops(oldstmt) != 4 && rhs1 == NULL_TREE) {
171229 + rhs1 = gimple_assign_rhs1(oldstmt);
171230 + rhs1 = create_assign(visited, oldstmt, rhs1, BEFORE_STMT);
171231 + }
171232 + if (gimple_num_ops(oldstmt) == 3 && rhs2 == NULL_TREE) {
171233 + rhs2 = gimple_assign_rhs2(oldstmt);
171234 + rhs2 = create_assign(visited, oldstmt, rhs2, BEFORE_STMT);
171235 + }
171236 +
171237 + stmt = as_a_gassign(gimple_copy(oldstmt));
171238 + gimple_set_location(stmt, gimple_location(oldstmt));
171239 + pointer_set_insert(visited->my_stmts, stmt);
171240 +
171241 + if (gimple_assign_rhs_code(oldstmt) == WIDEN_MULT_EXPR)
171242 + gimple_assign_set_rhs_code(stmt, MULT_EXPR);
171243 +
171244 + size_overflow_type = get_size_overflow_type(visited, oldstmt, node);
171245 +
171246 + new_var = create_new_var(size_overflow_type);
171247 + new_var = make_ssa_name(new_var, stmt);
171248 + gimple_assign_set_lhs(stmt, new_var);
171249 +
171250 + if (rhs1 != NULL_TREE)
171251 + gimple_assign_set_rhs1(stmt, rhs1);
171252 +
171253 + if (rhs2 != NULL_TREE)
171254 + gimple_assign_set_rhs2(stmt, rhs2);
171255 +#if BUILDING_GCC_VERSION >= 4006
171256 + if (rhs3 != NULL_TREE)
171257 + gimple_assign_set_rhs3(stmt, rhs3);
171258 +#endif
171259 + gimple_set_vuse(stmt, gimple_vuse(oldstmt));
171260 + gimple_set_vdef(stmt, gimple_vdef(oldstmt));
171261 +
171262 + gsi = gsi_for_stmt(oldstmt);
171263 + gsi_insert_after(&gsi, stmt, GSI_SAME_STMT);
171264 + update_stmt(stmt);
171265 + pointer_set_insert(visited->stmts, oldstmt);
171266 + return gimple_assign_lhs(stmt);
171267 +}
171268 +
171269 +static tree cast_parm_decl(struct visited *visited, tree phi_ssa_name, tree arg, tree size_overflow_type, basic_block bb)
171270 +{
171271 + const_gimple assign;
171272 + gimple_stmt_iterator gsi;
171273 + basic_block first_bb;
171274 +
171275 + gcc_assert(SSA_NAME_IS_DEFAULT_DEF(arg));
171276 +
171277 + if (bb->index == 0) {
171278 + first_bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
171279 + gcc_assert(dom_info_available_p(CDI_DOMINATORS));
171280 + set_immediate_dominator(CDI_DOMINATORS, first_bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
171281 + bb = first_bb;
171282 + }
171283 +
171284 + gsi = gsi_after_labels(bb);
171285 + assign = build_cast_stmt(visited, size_overflow_type, arg, phi_ssa_name, &gsi, BEFORE_STMT, false);
171286 + pointer_set_insert(visited->my_stmts, assign);
171287 + return get_lhs(assign);
171288 +}
171289 +
171290 +static tree use_phi_ssa_name(struct visited *visited, tree ssa_name_var, tree new_arg)
171291 +{
171292 + gimple_stmt_iterator gsi;
171293 + const_gimple assign;
171294 + gimple def_stmt = get_def_stmt(new_arg);
171295 +
171296 + if (gimple_code(def_stmt) == GIMPLE_PHI) {
171297 + gsi = gsi_after_labels(gimple_bb(def_stmt));
171298 + assign = build_cast_stmt(visited, TREE_TYPE(new_arg), new_arg, ssa_name_var, &gsi, BEFORE_STMT, true);
171299 + } else {
171300 + gsi = gsi_for_stmt(def_stmt);
171301 + assign = build_cast_stmt(visited, TREE_TYPE(new_arg), new_arg, ssa_name_var, &gsi, AFTER_STMT, true);
171302 + }
171303 +
171304 + pointer_set_insert(visited->my_stmts, assign);
171305 + return get_lhs(assign);
171306 +}
171307 +
171308 +static tree cast_visited_phi_arg(struct visited *visited, tree ssa_name_var, tree arg, tree size_overflow_type)
171309 +{
171310 + basic_block bb;
171311 + gimple_stmt_iterator gsi;
171312 + const_gimple def_stmt;
171313 + const_gimple assign;
171314 +
171315 + def_stmt = get_def_stmt(arg);
171316 + bb = gimple_bb(def_stmt);
171317 + gcc_assert(bb->index != 0);
171318 + gsi = gsi_after_labels(bb);
171319 +
171320 + assign = build_cast_stmt(visited, size_overflow_type, arg, ssa_name_var, &gsi, BEFORE_STMT, false);
171321 + pointer_set_insert(visited->my_stmts, assign);
171322 + return get_lhs(assign);
171323 +}
171324 +
171325 +static tree create_new_phi_arg(struct visited *visited, tree ssa_name_var, tree new_arg, gphi *oldstmt, unsigned int i)
171326 +{
171327 + tree size_overflow_type;
171328 + tree arg;
171329 + const_gimple def_stmt;
171330 +
171331 + if (new_arg != NULL_TREE && is_gimple_constant(new_arg))
171332 + return new_arg;
171333 +
171334 + arg = gimple_phi_arg_def(oldstmt, i);
171335 + def_stmt = get_def_stmt(arg);
171336 + gcc_assert(def_stmt != NULL);
171337 + size_overflow_type = get_size_overflow_type(visited, oldstmt, arg);
171338 +
171339 + switch (gimple_code(def_stmt)) {
171340 + case GIMPLE_PHI:
171341 + return cast_visited_phi_arg(visited, ssa_name_var, arg, size_overflow_type);
171342 + case GIMPLE_NOP: {
171343 + basic_block bb;
171344 +
171345 + bb = gimple_phi_arg_edge(oldstmt, i)->src;
171346 + return cast_parm_decl(visited, ssa_name_var, arg, size_overflow_type, bb);
171347 + }
171348 + case GIMPLE_ASM: {
171349 + gimple_stmt_iterator gsi;
171350 + const_gimple assign;
171351 + gimple stmt = get_def_stmt(arg);
171352 +
171353 + gsi = gsi_for_stmt(stmt);
171354 + assign = build_cast_stmt(visited, size_overflow_type, arg, ssa_name_var, &gsi, AFTER_STMT, false);
171355 + pointer_set_insert(visited->my_stmts, assign);
171356 + return get_lhs(assign);
171357 + }
171358 + default:
171359 + gcc_assert(new_arg != NULL_TREE);
171360 + gcc_assert(types_compatible_p(TREE_TYPE(new_arg), size_overflow_type));
171361 + return use_phi_ssa_name(visited, ssa_name_var, new_arg);
171362 + }
171363 +}
171364 +
171365 +static gphi *overflow_create_phi_node(struct visited *visited, gphi *oldstmt, tree result)
171366 +{
171367 + basic_block bb;
171368 + gphi *phi;
171369 + gimple_seq seq;
171370 + gimple_stmt_iterator gsi = gsi_for_stmt(oldstmt);
171371 +
171372 + bb = gsi_bb(gsi);
171373 +
171374 + if (result == NULL_TREE) {
171375 + tree old_result = gimple_phi_result(oldstmt);
171376 + tree size_overflow_type = get_size_overflow_type(visited, oldstmt, old_result);
171377 +
171378 + result = create_new_var(size_overflow_type);
171379 + }
171380 +
171381 + phi = as_a_gphi(create_phi_node(result, bb));
171382 + gimple_phi_set_result(phi, make_ssa_name(result, phi));
171383 + seq = phi_nodes(bb);
171384 + gsi = gsi_last(seq);
171385 + gsi_remove(&gsi, false);
171386 +
171387 + gsi = gsi_for_stmt(oldstmt);
171388 + gsi_insert_after(&gsi, phi, GSI_NEW_STMT);
171389 + gimple_set_bb(phi, bb);
171390 + return phi;
171391 +}
171392 +
171393 +#if BUILDING_GCC_VERSION <= 4007
171394 +static tree create_new_phi_node(struct visited *visited, VEC(tree, heap) **args, tree ssa_name_var, gimple oldstmt)
171395 +#else
171396 +static tree create_new_phi_node(struct visited *visited, vec<tree, va_heap, vl_embed> *&args, tree ssa_name_var, gphi *oldstmt)
171397 +#endif
171398 +{
171399 + gphi *new_phi;
171400 + unsigned int i;
171401 + tree arg, result;
171402 + location_t loc = gimple_location(oldstmt);
171403 +
171404 +#if BUILDING_GCC_VERSION <= 4007
171405 + gcc_assert(!VEC_empty(tree, *args));
171406 +#else
171407 + gcc_assert(!args->is_empty());
171408 +#endif
171409 +
171410 + new_phi = overflow_create_phi_node(visited, oldstmt, ssa_name_var);
171411 + result = gimple_phi_result(new_phi);
171412 + ssa_name_var = SSA_NAME_VAR(result);
171413 +
171414 +#if BUILDING_GCC_VERSION <= 4007
171415 + FOR_EACH_VEC_ELT(tree, *args, i, arg) {
171416 +#else
171417 + FOR_EACH_VEC_SAFE_ELT(args, i, arg) {
171418 +#endif
171419 + arg = create_new_phi_arg(visited, ssa_name_var, arg, oldstmt, i);
171420 + add_phi_arg(new_phi, arg, gimple_phi_arg_edge(oldstmt, i), loc);
171421 + }
171422 +
171423 +#if BUILDING_GCC_VERSION <= 4007
171424 + VEC_free(tree, heap, *args);
171425 +#else
171426 + vec_free(args);
171427 +#endif
171428 + update_stmt(new_phi);
171429 + pointer_set_insert(visited->my_stmts, new_phi);
171430 + return result;
171431 +}
171432 +
171433 +static tree handle_phi(struct visited *visited, interesting_stmts_t expand_from, tree orig_result)
171434 +{
171435 +#if BUILDING_GCC_VERSION <= 4007
171436 + VEC(tree, heap) *args = NULL;
171437 +#else
171438 + vec<tree, va_heap, vl_embed> *args = NULL;
171439 +#endif
171440 + unsigned int i, len;
171441 + tree ssa_name_var = NULL_TREE;
171442 + gphi *oldstmt = as_a_gphi(get_def_stmt(orig_result));
171443 +
171444 + len = gimple_phi_num_args(oldstmt);
171445 + pointer_set_insert(visited->stmts, oldstmt);
171446 + for (i = 0; i < len; i++) {
171447 + tree arg, new_arg;
171448 +
171449 + arg = gimple_phi_arg_def(oldstmt, i);
171450 + new_arg = expand(visited, expand_from, arg);
171451 +
171452 + if (ssa_name_var == NULL_TREE && new_arg != NULL_TREE)
171453 + ssa_name_var = SSA_NAME_VAR(new_arg);
171454 +
171455 + if (is_gimple_constant(arg)) {
171456 + tree size_overflow_type = get_size_overflow_type(visited, oldstmt, arg);
171457 +
171458 + new_arg = cast_a_tree(size_overflow_type, arg);
171459 + }
171460 +
171461 +#if BUILDING_GCC_VERSION <= 4007
171462 + VEC_safe_push(tree, heap, args, new_arg);
171463 +#else
171464 + vec_safe_push(args, new_arg);
171465 +#endif
171466 + }
171467 +
171468 +#if BUILDING_GCC_VERSION <= 4007
171469 + return create_new_phi_node(visited, &args, ssa_name_var, oldstmt);
171470 +#else
171471 + return create_new_phi_node(visited, args, ssa_name_var, oldstmt);
171472 +#endif
171473 +}
171474 +
171475 +static tree create_cast_assign(struct visited *visited, gassign *stmt)
171476 +{
171477 + tree rhs1 = gimple_assign_rhs1(stmt);
171478 + tree lhs = gimple_assign_lhs(stmt);
171479 + const_tree rhs1_type = TREE_TYPE(rhs1);
171480 + const_tree lhs_type = TREE_TYPE(lhs);
171481 +
171482 + if (TYPE_UNSIGNED(rhs1_type) == TYPE_UNSIGNED(lhs_type))
171483 + return create_assign(visited, stmt, lhs, AFTER_STMT);
171484 +
171485 + return create_assign(visited, stmt, rhs1, AFTER_STMT);
171486 +}
171487 +
171488 +static bool skip_lhs_cast_check(const gassign *stmt)
171489 +{
171490 + const_tree rhs = gimple_assign_rhs1(stmt);
171491 + const_gimple def_stmt = get_def_stmt(rhs);
171492 +
171493 + // 3.8.2 kernel/futex_compat.c compat_exit_robust_list(): get_user() 64 ulong -> int (compat_long_t), int max
171494 + if (gimple_code(def_stmt) == GIMPLE_ASM)
171495 + return true;
171496 +
171497 + if (is_const_plus_unsigned_signed_truncation(rhs))
171498 + return true;
171499 +
171500 + return false;
171501 +}
171502 +
171503 +static tree create_string_param(tree string)
171504 +{
171505 + tree i_type, a_type;
171506 + const int length = TREE_STRING_LENGTH(string);
171507 +
171508 + gcc_assert(length > 0);
171509 +
171510 + i_type = build_index_type(build_int_cst(NULL_TREE, length - 1));
171511 + a_type = build_array_type(char_type_node, i_type);
171512 +
171513 + TREE_TYPE(string) = a_type;
171514 + TREE_CONSTANT(string) = 1;
171515 + TREE_READONLY(string) = 1;
171516 +
171517 + return build1(ADDR_EXPR, ptr_type_node, string);
171518 +}
171519 +
171520 +static void insert_cond(basic_block cond_bb, tree arg, enum tree_code cond_code, tree type_value)
171521 +{
171522 + gcond *cond_stmt;
171523 + gimple_stmt_iterator gsi = gsi_last_bb(cond_bb);
171524 +
171525 + cond_stmt = gimple_build_cond(cond_code, arg, type_value, NULL_TREE, NULL_TREE);
171526 + gsi_insert_after(&gsi, cond_stmt, GSI_CONTINUE_LINKING);
171527 + update_stmt(cond_stmt);
171528 +}
171529 +
171530 +static void insert_cond_result(interesting_stmts_t expand_from, basic_block bb_true, const_gimple stmt, const_tree arg, bool min)
171531 +{
171532 + gcall *func_stmt;
171533 + const_gimple def_stmt;
171534 + const_tree loc_line;
171535 + tree loc_file, ssa_name, current_func;
171536 + expanded_location xloc;
171537 + char *ssa_name_buf;
171538 + int len;
171539 + struct cgraph_edge *edge;
171540 + struct cgraph_node *report_node;
171541 + int frequency;
171542 + gimple_stmt_iterator gsi = gsi_start_bb(bb_true);
171543 +
171544 + def_stmt = get_def_stmt(arg);
171545 + if (gimple_has_location(def_stmt))
171546 + xloc = expand_location(gimple_location(def_stmt));
171547 + else if (gimple_has_location(stmt))
171548 + xloc = expand_location(gimple_location(stmt));
171549 + else
171550 + xloc = expand_location(DECL_SOURCE_LOCATION(current_function_decl));
171551 +
171552 + loc_line = build_int_cstu(unsigned_type_node, xloc.line);
171553 +
171554 + loc_file = build_string(strlen(xloc.file) + 1, xloc.file);
171555 + loc_file = create_string_param(loc_file);
171556 +
171557 + current_func = build_string(DECL_NAME_LENGTH(current_function_decl) + 1, DECL_NAME_POINTER(current_function_decl));
171558 + current_func = create_string_param(current_func);
171559 +
171560 + gcc_assert(DECL_NAME(SSA_NAME_VAR(arg)) != NULL);
171561 + call_count++;
171562 + 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);
171563 + gcc_assert(len > 0);
171564 + ssa_name = build_string(len + 1, ssa_name_buf);
171565 + free(ssa_name_buf);
171566 + ssa_name = create_string_param(ssa_name);
171567 +
171568 + // void report_size_overflow(const char *file, unsigned int line, const char *func, const char *ssa_name)
171569 + func_stmt = as_a_gcall(gimple_build_call(report_size_overflow_decl, 4, loc_file, loc_line, current_func, ssa_name));
171570 + gsi_insert_after(&gsi, func_stmt, GSI_CONTINUE_LINKING);
171571 +
171572 + report_node = cgraph_get_create_node(report_size_overflow_decl);
171573 + gcc_assert(report_node);
171574 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb_true);
171575 +
171576 + edge = cgraph_create_edge(get_cnode(current_function_decl), report_node, func_stmt, bb_true->count, frequency, bb_true->loop_depth);
171577 + gcc_assert(edge != NULL);
171578 +}
171579 +
171580 +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)
171581 +{
171582 + basic_block cond_bb, join_bb, bb_true;
171583 + edge e;
171584 + gimple_stmt_iterator gsi = gsi_for_stmt(stmt);
171585 +
171586 + cond_bb = gimple_bb(stmt);
171587 + if (before)
171588 + gsi_prev(&gsi);
171589 + if (gsi_end_p(gsi))
171590 + e = split_block_after_labels(cond_bb);
171591 + else
171592 + e = split_block(cond_bb, gsi_stmt(gsi));
171593 + cond_bb = e->src;
171594 + join_bb = e->dest;
171595 + e->flags = EDGE_FALSE_VALUE;
171596 + e->probability = REG_BR_PROB_BASE;
171597 +
171598 + bb_true = create_empty_bb(cond_bb);
171599 + make_edge(cond_bb, bb_true, EDGE_TRUE_VALUE);
171600 + make_edge(cond_bb, join_bb, EDGE_FALSE_VALUE);
171601 + make_edge(bb_true, join_bb, EDGE_FALLTHRU);
171602 +
171603 + gcc_assert(dom_info_available_p(CDI_DOMINATORS));
171604 + set_immediate_dominator(CDI_DOMINATORS, bb_true, cond_bb);
171605 + set_immediate_dominator(CDI_DOMINATORS, join_bb, cond_bb);
171606 +
171607 + if (current_loops != NULL) {
171608 + gcc_assert(cond_bb->loop_father == join_bb->loop_father);
171609 + add_bb_to_loop(bb_true, cond_bb->loop_father);
171610 + }
171611 +
171612 + insert_cond(cond_bb, arg, cond_code, type_value);
171613 + insert_cond_result(expand_from, bb_true, stmt, arg, min);
171614 +
171615 +// print_the_code_insertions(stmt);
171616 +}
171617 +
171618 +void check_size_overflow(interesting_stmts_t expand_from, gimple stmt, tree size_overflow_type, tree cast_rhs, tree rhs, bool before)
171619 +{
171620 + const_tree rhs_type = TREE_TYPE(rhs);
171621 + tree cast_rhs_type, type_max_type, type_min_type, type_max, type_min;
171622 +
171623 + gcc_assert(rhs_type != NULL_TREE);
171624 + if (TREE_CODE(rhs_type) == POINTER_TYPE)
171625 + return;
171626 +
171627 + gcc_assert(TREE_CODE(rhs_type) == INTEGER_TYPE || TREE_CODE(rhs_type) == ENUMERAL_TYPE);
171628 +
171629 + if (is_const_plus_unsigned_signed_truncation(rhs))
171630 + return;
171631 +
171632 + type_max = cast_a_tree(size_overflow_type, TYPE_MAX_VALUE(rhs_type));
171633 + // typemax (-1) < typemin (0)
171634 + if (TREE_OVERFLOW(type_max))
171635 + return;
171636 +
171637 + type_min = cast_a_tree(size_overflow_type, TYPE_MIN_VALUE(rhs_type));
171638 +
171639 + cast_rhs_type = TREE_TYPE(cast_rhs);
171640 + type_max_type = TREE_TYPE(type_max);
171641 + gcc_assert(types_compatible_p(cast_rhs_type, type_max_type));
171642 +
171643 + insert_check_size_overflow(expand_from, stmt, GT_EXPR, cast_rhs, type_max, before, MAX_CHECK);
171644 +
171645 + // special case: get_size_overflow_type(), 32, u64->s
171646 + if (LONG_TYPE_SIZE == GET_MODE_BITSIZE(SImode) && TYPE_UNSIGNED(size_overflow_type) && !TYPE_UNSIGNED(rhs_type))
171647 + return;
171648 +
171649 + type_min_type = TREE_TYPE(type_min);
171650 + gcc_assert(types_compatible_p(type_max_type, type_min_type));
171651 + insert_check_size_overflow(expand_from, stmt, LT_EXPR, cast_rhs, type_min, before, MIN_CHECK);
171652 +}
171653 +
171654 +static tree get_my_stmt_lhs(struct visited *visited, gimple stmt)
171655 +{
171656 + gimple_stmt_iterator gsi;
171657 + gimple next_stmt = NULL;
171658 +
171659 + gsi = gsi_for_stmt(stmt);
171660 +
171661 + do {
171662 + gsi_next(&gsi);
171663 + next_stmt = gsi_stmt(gsi);
171664 +
171665 + if (gimple_code(stmt) == GIMPLE_PHI && !pointer_set_contains(visited->my_stmts, next_stmt))
171666 + return NULL_TREE;
171667 +
171668 + if (pointer_set_contains(visited->my_stmts, next_stmt) && !pointer_set_contains(visited->skip_expr_casts, next_stmt))
171669 + break;
171670 +
171671 + gcc_assert(pointer_set_contains(visited->my_stmts, next_stmt));
171672 + } while (!gsi_end_p(gsi));
171673 +
171674 + gcc_assert(next_stmt);
171675 + return get_lhs(next_stmt);
171676 +}
171677 +
171678 +/* When the result of the negation is cast to a signed type then move
171679 + * the size_overflow cast check before negation.
171680 + * ssa:
171681 + * unsigned _588
171682 + * _588 = _587 >> 12;
171683 + * _589 = -_588;
171684 + * _590 = (long int) _589;
171685 + */
171686 +static bool handle_unsigned_neg_or_bit_not(struct visited *visited, interesting_stmts_t expand_from, const gassign *stmt)
171687 +{
171688 + gimple def_neg_stmt, neg_stmt;
171689 + tree lhs, new_neg_rhs;
171690 + const_tree rhs, neg_rhs;
171691 + enum tree_code rhs_code;
171692 +
171693 + rhs = gimple_assign_rhs1(stmt);
171694 + lhs = gimple_assign_lhs(stmt);
171695 + if (TYPE_UNSIGNED(TREE_TYPE(lhs)) || !TYPE_UNSIGNED(TREE_TYPE(rhs)))
171696 + return false;
171697 +
171698 + neg_stmt = get_def_stmt(rhs);
171699 + if (!neg_stmt || !is_gimple_assign(neg_stmt))
171700 + return false;
171701 +
171702 + rhs_code = gimple_assign_rhs_code(neg_stmt);
171703 + if (rhs_code != BIT_NOT_EXPR && rhs_code != NEGATE_EXPR)
171704 + return false;
171705 +
171706 + neg_rhs = gimple_assign_rhs1(neg_stmt);
171707 + def_neg_stmt = get_def_stmt(neg_rhs);
171708 + if (!def_neg_stmt)
171709 + return false;
171710 +
171711 + new_neg_rhs = get_my_stmt_lhs(visited, def_neg_stmt);
171712 + check_size_overflow(expand_from, neg_stmt, TREE_TYPE(new_neg_rhs), new_neg_rhs, lhs, BEFORE_STMT);
171713 + pointer_set_insert(visited->no_cast_check, stmt);
171714 + return true;
171715 +}
171716 +
171717 +static tree create_cast_overflow_check(struct visited *visited, interesting_stmts_t expand_from, tree new_rhs1, gassign *stmt)
171718 +{
171719 + bool cast_lhs, cast_rhs;
171720 + tree lhs = gimple_assign_lhs(stmt);
171721 + tree rhs = gimple_assign_rhs1(stmt);
171722 + const_tree lhs_type = TREE_TYPE(lhs);
171723 + const_tree rhs_type = TREE_TYPE(rhs);
171724 + enum machine_mode lhs_mode = TYPE_MODE(lhs_type);
171725 + enum machine_mode rhs_mode = TYPE_MODE(rhs_type);
171726 + unsigned int lhs_size = GET_MODE_BITSIZE(lhs_mode);
171727 + unsigned int rhs_size = GET_MODE_BITSIZE(rhs_mode);
171728 +
171729 + static bool check_lhs[3][4] = {
171730 + // ss su us uu
171731 + { false, true, true, false }, // lhs > rhs
171732 + { false, false, false, false }, // lhs = rhs
171733 + { true, true, true, true }, // lhs < rhs
171734 + };
171735 +
171736 + static bool check_rhs[3][4] = {
171737 + // ss su us uu
171738 + { true, false, true, true }, // lhs > rhs
171739 + { true, false, true, true }, // lhs = rhs
171740 + { true, false, true, true }, // lhs < rhs
171741 + };
171742 +
171743 + if (handle_unsigned_neg_or_bit_not(visited, expand_from, stmt))
171744 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
171745 +
171746 + // skip lhs check on HI -> QI cast
171747 + if (rhs_mode == HImode && lhs_mode == QImode) {
171748 + pointer_set_insert(visited->no_cast_check, stmt);
171749 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
171750 + }
171751 +
171752 + // skip lhs check on signed SI -> HI cast or signed SI -> QI cast
171753 + if (rhs_mode == SImode && !TYPE_UNSIGNED(rhs_type) && (lhs_mode == HImode || lhs_mode == QImode))
171754 + return create_assign(visited, stmt, lhs, AFTER_STMT);
171755 +
171756 + if (lhs_size > rhs_size) {
171757 + cast_lhs = check_lhs[0][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
171758 + cast_rhs = check_rhs[0][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
171759 + } else if (lhs_size == rhs_size) {
171760 + cast_lhs = check_lhs[1][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
171761 + cast_rhs = check_rhs[1][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
171762 + } else {
171763 + cast_lhs = check_lhs[2][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
171764 + cast_rhs = check_rhs[2][TYPE_UNSIGNED(rhs_type) + 2 * TYPE_UNSIGNED(lhs_type)];
171765 + }
171766 +
171767 + if (!cast_lhs && !cast_rhs)
171768 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
171769 +
171770 + if (cast_lhs && !skip_lhs_cast_check(stmt))
171771 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, lhs, BEFORE_STMT);
171772 +
171773 + if (cast_rhs)
171774 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, rhs, BEFORE_STMT);
171775 +
171776 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
171777 +}
171778 +
171779 +static tree handle_unary_rhs(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt)
171780 +{
171781 + enum tree_code rhs_code;
171782 + tree rhs1, new_rhs1, lhs = gimple_assign_lhs(stmt);
171783 +
171784 + if (pointer_set_contains(visited->my_stmts, stmt))
171785 + return lhs;
171786 +
171787 + rhs1 = gimple_assign_rhs1(stmt);
171788 + if (TREE_CODE(TREE_TYPE(rhs1)) == POINTER_TYPE)
171789 + return create_assign(visited, stmt, lhs, AFTER_STMT);
171790 +
171791 + new_rhs1 = expand(visited, expand_from, rhs1);
171792 +
171793 + if (new_rhs1 == NULL_TREE)
171794 + return create_cast_assign(visited, stmt);
171795 +
171796 + if (pointer_set_contains(visited->no_cast_check, stmt))
171797 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
171798 +
171799 + rhs_code = gimple_assign_rhs_code(stmt);
171800 + if (rhs_code == BIT_NOT_EXPR || rhs_code == NEGATE_EXPR) {
171801 + tree size_overflow_type = get_size_overflow_type(visited, stmt, rhs1);
171802 +
171803 + new_rhs1 = cast_to_new_size_overflow_type(visited, stmt, new_rhs1, size_overflow_type, BEFORE_STMT);
171804 + check_size_overflow(expand_from, stmt, size_overflow_type, new_rhs1, rhs1, BEFORE_STMT);
171805 + return create_assign(visited, stmt, lhs, AFTER_STMT);
171806 + }
171807 +
171808 + if (!gimple_assign_cast_p(stmt))
171809 + return dup_assign(visited, stmt, lhs, new_rhs1, NULL_TREE, NULL_TREE);
171810 +
171811 + return create_cast_overflow_check(visited, expand_from, new_rhs1, stmt);
171812 +}
171813 +
171814 +static tree handle_unary_ops(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt)
171815 +{
171816 + tree rhs1, lhs = gimple_assign_lhs(stmt);
171817 + gimple def_stmt = get_def_stmt(lhs);
171818 +
171819 + gcc_assert(gimple_code(def_stmt) != GIMPLE_NOP);
171820 + rhs1 = gimple_assign_rhs1(def_stmt);
171821 +
171822 + if (is_gimple_constant(rhs1))
171823 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
171824 +
171825 + switch (TREE_CODE(rhs1)) {
171826 + case SSA_NAME: {
171827 + tree ret = handle_unary_rhs(visited, expand_from, as_a_gassign(def_stmt));
171828 +
171829 + if (gimple_assign_cast_p(stmt))
171830 + unsigned_signed_cast_intentional_overflow(visited, stmt);
171831 + return ret;
171832 + }
171833 + case ARRAY_REF:
171834 + case BIT_FIELD_REF:
171835 + case ADDR_EXPR:
171836 + case COMPONENT_REF:
171837 + case INDIRECT_REF:
171838 +#if BUILDING_GCC_VERSION >= 4006
171839 + case MEM_REF:
171840 +#endif
171841 + case TARGET_MEM_REF:
171842 + case VIEW_CONVERT_EXPR:
171843 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
171844 + case PARM_DECL:
171845 + case VAR_DECL:
171846 + return create_assign(visited, stmt, lhs, AFTER_STMT);
171847 +
171848 + default:
171849 + debug_gimple_stmt(def_stmt);
171850 + debug_tree(rhs1);
171851 + gcc_unreachable();
171852 + }
171853 +}
171854 +
171855 +static void __unused print_the_code_insertions(const_gimple stmt)
171856 +{
171857 + location_t loc = gimple_location(stmt);
171858 +
171859 + inform(loc, "Integer size_overflow check applied here.");
171860 +}
171861 +
171862 +static bool is_from_cast(const_tree node)
171863 +{
171864 + gimple def_stmt = get_def_stmt(node);
171865 +
171866 + if (!def_stmt)
171867 + return false;
171868 +
171869 + if (gimple_assign_cast_p(def_stmt))
171870 + return true;
171871 +
171872 + return false;
171873 +}
171874 +
171875 +// Skip duplication when there is a minus expr and the type of rhs1 or rhs2 is a pointer_type.
171876 +static bool is_ptr_diff(gassign *stmt)
171877 +{
171878 + const_tree rhs1, rhs2, ptr1_rhs, ptr2_rhs;
171879 +
171880 + if (gimple_assign_rhs_code(stmt) != MINUS_EXPR)
171881 + return false;
171882 +
171883 + rhs1 = gimple_assign_rhs1(stmt);
171884 + if (!is_from_cast(rhs1))
171885 + return false;
171886 +
171887 + rhs2 = gimple_assign_rhs2(stmt);
171888 + if (!is_from_cast(rhs2))
171889 + return false;
171890 +
171891 + ptr1_rhs = gimple_assign_rhs1(get_def_stmt(rhs1));
171892 + ptr2_rhs = gimple_assign_rhs1(get_def_stmt(rhs2));
171893 +
171894 + if (TREE_CODE(TREE_TYPE(ptr1_rhs)) != POINTER_TYPE && TREE_CODE(TREE_TYPE(ptr2_rhs)) != POINTER_TYPE)
171895 + return false;
171896 +
171897 + return true;
171898 +}
171899 +
171900 +static tree handle_comparison_code_class(struct visited *visited, interesting_stmts_t expand_from, gassign *stmt, tree new_rhs1, tree new_rhs2)
171901 +{
171902 + tree rhs1, rhs2, lhs;
171903 +
171904 + rhs1 = gimple_assign_rhs1(stmt);
171905 + if (!is_gimple_constant(rhs1) && new_rhs1 != NULL_TREE)
171906 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs1), new_rhs1, rhs1, BEFORE_STMT);
171907 +
171908 + lhs = gimple_assign_lhs(stmt);
171909 + if (new_rhs2 == NULL_TREE)
171910 + return create_assign(visited, stmt, lhs, AFTER_STMT);
171911 +
171912 + rhs2 = gimple_assign_rhs2(stmt);
171913 + if (!is_gimple_constant(rhs2))
171914 + check_size_overflow(expand_from, stmt, TREE_TYPE(new_rhs2), new_rhs2, rhs2, BEFORE_STMT);
171915 + return create_assign(visited, stmt, lhs, AFTER_STMT);
171916 +}
171917 +
171918 +static tree handle_binary_ops(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
171919 +{
171920 + enum intentional_overflow_type res;
171921 + tree rhs1, rhs2, new_lhs;
171922 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
171923 + tree new_rhs1 = NULL_TREE;
171924 + tree new_rhs2 = NULL_TREE;
171925 +
171926 + if (is_ptr_diff(def_stmt))
171927 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
171928 +
171929 + rhs1 = gimple_assign_rhs1(def_stmt);
171930 + rhs2 = gimple_assign_rhs2(def_stmt);
171931 +
171932 + /* no DImode/TImode division in the 32/64 bit kernel */
171933 + switch (gimple_assign_rhs_code(def_stmt)) {
171934 + case RDIV_EXPR:
171935 + case TRUNC_DIV_EXPR:
171936 + case CEIL_DIV_EXPR:
171937 + case FLOOR_DIV_EXPR:
171938 + case ROUND_DIV_EXPR:
171939 + case TRUNC_MOD_EXPR:
171940 + case CEIL_MOD_EXPR:
171941 + case FLOOR_MOD_EXPR:
171942 + case ROUND_MOD_EXPR:
171943 + case EXACT_DIV_EXPR:
171944 + case POINTER_PLUS_EXPR:
171945 + case BIT_AND_EXPR:
171946 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
171947 + default:
171948 + break;
171949 + }
171950 +
171951 + new_lhs = handle_integer_truncation(visited, expand_from, lhs);
171952 + if (new_lhs != NULL_TREE)
171953 + return new_lhs;
171954 +
171955 + if (TREE_CODE(rhs1) == SSA_NAME)
171956 + new_rhs1 = expand(visited, expand_from, rhs1);
171957 + if (TREE_CODE(rhs2) == SSA_NAME)
171958 + new_rhs2 = expand(visited, expand_from, rhs2);
171959 +
171960 + res = add_mul_intentional_overflow(def_stmt);
171961 + if (res != NO_INTENTIONAL_OVERFLOW) {
171962 + new_lhs = dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
171963 + insert_cast_expr(visited, as_a_gassign(get_def_stmt(new_lhs)), res);
171964 + return new_lhs;
171965 + }
171966 +
171967 + if (skip_expr_on_double_type(def_stmt)) {
171968 + new_lhs = dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
171969 + insert_cast_expr(visited, as_a_gassign(get_def_stmt(new_lhs)), NO_INTENTIONAL_OVERFLOW);
171970 + return new_lhs;
171971 + }
171972 +
171973 + if (is_a_neg_overflow(def_stmt, rhs2))
171974 + return handle_intentional_overflow(visited, expand_from, true, def_stmt, new_rhs1, NULL_TREE);
171975 + if (is_a_neg_overflow(def_stmt, rhs1))
171976 + return handle_intentional_overflow(visited, expand_from, true, def_stmt, new_rhs2, new_rhs2);
171977 +
171978 +
171979 + if (is_a_constant_overflow(def_stmt, rhs2))
171980 + return handle_intentional_overflow(visited, expand_from, !is_a_cast_and_const_overflow(rhs1), def_stmt, new_rhs1, NULL_TREE);
171981 + if (is_a_constant_overflow(def_stmt, rhs1))
171982 + return handle_intentional_overflow(visited, expand_from, !is_a_cast_and_const_overflow(rhs2), def_stmt, new_rhs2, new_rhs2);
171983 +
171984 + // the const is between 0 and (signed) MAX
171985 + if (is_gimple_constant(rhs1))
171986 + new_rhs1 = create_assign(visited, def_stmt, rhs1, BEFORE_STMT);
171987 + if (is_gimple_constant(rhs2))
171988 + new_rhs2 = create_assign(visited, def_stmt, rhs2, BEFORE_STMT);
171989 +
171990 + if (TREE_CODE_CLASS(gimple_assign_rhs_code(def_stmt)) == tcc_comparison)
171991 + return handle_comparison_code_class(visited, expand_from, def_stmt, new_rhs1, new_rhs2);
171992 +
171993 + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, NULL_TREE);
171994 +}
171995 +
171996 +#if BUILDING_GCC_VERSION >= 4006
171997 +static tree get_new_rhs(struct visited *visited, interesting_stmts_t expand_from, tree size_overflow_type, tree rhs)
171998 +{
171999 + if (is_gimple_constant(rhs))
172000 + return cast_a_tree(size_overflow_type, rhs);
172001 + if (TREE_CODE(rhs) != SSA_NAME)
172002 + return NULL_TREE;
172003 + return expand(visited, expand_from, rhs);
172004 +}
172005 +
172006 +static tree handle_ternary_ops(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
172007 +{
172008 + tree rhs1, rhs2, rhs3, new_rhs1, new_rhs2, new_rhs3, size_overflow_type;
172009 + gassign *def_stmt = as_a_gassign(get_def_stmt(lhs));
172010 +
172011 + size_overflow_type = get_size_overflow_type(visited, def_stmt, lhs);
172012 +
172013 + rhs1 = gimple_assign_rhs1(def_stmt);
172014 + rhs2 = gimple_assign_rhs2(def_stmt);
172015 + rhs3 = gimple_assign_rhs3(def_stmt);
172016 + new_rhs1 = get_new_rhs(visited, expand_from, size_overflow_type, rhs1);
172017 + new_rhs2 = get_new_rhs(visited, expand_from, size_overflow_type, rhs2);
172018 + new_rhs3 = get_new_rhs(visited, expand_from, size_overflow_type, rhs3);
172019 +
172020 + return dup_assign(visited, def_stmt, lhs, new_rhs1, new_rhs2, new_rhs3);
172021 +}
172022 +#endif
172023 +
172024 +static tree expand_visited(struct visited *visited, gimple def_stmt)
172025 +{
172026 + gimple_stmt_iterator gsi;
172027 + enum gimple_code code = gimple_code(def_stmt);
172028 +
172029 + if (code == GIMPLE_ASM)
172030 + return NULL_TREE;
172031 +
172032 + gsi = gsi_for_stmt(def_stmt);
172033 + gsi_next(&gsi);
172034 +
172035 + if (gimple_code(def_stmt) == GIMPLE_PHI && gsi_end_p(gsi))
172036 + return NULL_TREE;
172037 + return get_my_stmt_lhs(visited, def_stmt);
172038 +}
172039 +
172040 +tree expand(struct visited *visited, interesting_stmts_t expand_from, tree lhs)
172041 +{
172042 + gimple def_stmt;
172043 +
172044 + def_stmt = get_def_stmt(lhs);
172045 +
172046 + if (!def_stmt || gimple_code(def_stmt) == GIMPLE_NOP)
172047 + return NULL_TREE;
172048 +
172049 + if (pointer_set_contains(visited->my_stmts, def_stmt))
172050 + return lhs;
172051 +
172052 + if (pointer_set_contains(visited->stmts, def_stmt))
172053 + return expand_visited(visited, def_stmt);
172054 +
172055 + if (is_gimple_constant(lhs))
172056 + return NULL_TREE;
172057 + if (skip_types(lhs))
172058 + return NULL_TREE;
172059 +
172060 + switch (gimple_code(def_stmt)) {
172061 + case GIMPLE_PHI:
172062 + return handle_phi(visited, expand_from, lhs);
172063 + case GIMPLE_CALL:
172064 + case GIMPLE_ASM:
172065 + if (is_size_overflow_asm(def_stmt))
172066 + return expand(visited, expand_from, get_size_overflow_asm_input(as_a_gasm(def_stmt)));
172067 + return create_assign(visited, def_stmt, lhs, AFTER_STMT);
172068 + case GIMPLE_ASSIGN:
172069 + switch (gimple_num_ops(def_stmt)) {
172070 + case 2:
172071 + return handle_unary_ops(visited, expand_from, as_a_gassign(def_stmt));
172072 + case 3:
172073 + return handle_binary_ops(visited, expand_from, lhs);
172074 +#if BUILDING_GCC_VERSION >= 4006
172075 + case 4:
172076 + return handle_ternary_ops(visited, expand_from, lhs);
172077 +#endif
172078 + }
172079 + default:
172080 + debug_gimple_stmt(def_stmt);
172081 + error("%s: unknown gimple code", __func__);
172082 + gcc_unreachable();
172083 + }
172084 +}
172085 diff --git a/tools/gcc/stackleak_plugin.c b/tools/gcc/stackleak_plugin.c
172086 new file mode 100644
172087 index 0000000..155e2c5
172088 --- /dev/null
172089 +++ b/tools/gcc/stackleak_plugin.c
172090 @@ -0,0 +1,436 @@
172091 +/*
172092 + * Copyright 2011-2015 by the PaX Team <pageexec@freemail.hu>
172093 + * Licensed under the GPL v2
172094 + *
172095 + * Note: the choice of the license means that the compilation process is
172096 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
172097 + * but for the kernel it doesn't matter since it doesn't link against
172098 + * any of the gcc libraries
172099 + *
172100 + * gcc plugin to help implement various PaX features
172101 + *
172102 + * - track lowest stack pointer
172103 + *
172104 + * TODO:
172105 + * - initialize all local variables
172106 + *
172107 + * BUGS:
172108 + * - none known
172109 + */
172110 +
172111 +#include "gcc-common.h"
172112 +
172113 +int plugin_is_GPL_compatible;
172114 +
172115 +static int track_frame_size = -1;
172116 +static const char track_function[] = "pax_track_stack";
172117 +static const char check_function[] = "pax_check_alloca";
172118 +static GTY(()) tree track_function_decl;
172119 +static GTY(()) tree check_function_decl;
172120 +static bool init_locals;
172121 +
172122 +static struct plugin_info stackleak_plugin_info = {
172123 + .version = "201504282245",
172124 + .help = "track-lowest-sp=nn\ttrack sp in functions whose frame size is at least nn bytes\n"
172125 +// "initialize-locals\t\tforcibly initialize all stack frames\n"
172126 +};
172127 +
172128 +static void stackleak_check_alloca(gimple_stmt_iterator *gsi)
172129 +{
172130 + gimple stmt;
172131 + gcall *check_alloca;
172132 + tree alloca_size;
172133 + cgraph_node_ptr node;
172134 + int frequency;
172135 + basic_block bb;
172136 +
172137 + // insert call to void pax_check_alloca(unsigned long size)
172138 + alloca_size = gimple_call_arg(gsi_stmt(*gsi), 0);
172139 + stmt = gimple_build_call(check_function_decl, 1, alloca_size);
172140 + check_alloca = as_a_gcall(stmt);
172141 + gsi_insert_before(gsi, check_alloca, GSI_SAME_STMT);
172142 +
172143 + // update the cgraph
172144 + bb = gimple_bb(check_alloca);
172145 + node = cgraph_get_create_node(check_function_decl);
172146 + gcc_assert(node);
172147 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb);
172148 + cgraph_create_edge(cgraph_get_node(current_function_decl), node, check_alloca, bb->count, frequency, bb->loop_depth);
172149 +}
172150 +
172151 +static void stackleak_add_instrumentation(gimple_stmt_iterator *gsi)
172152 +{
172153 + gimple stmt;
172154 + gcall *track_stack;
172155 + cgraph_node_ptr node;
172156 + int frequency;
172157 + basic_block bb;
172158 +
172159 + // insert call to void pax_track_stack(void)
172160 + stmt = gimple_build_call(track_function_decl, 0);
172161 + track_stack = as_a_gcall(stmt);
172162 + gsi_insert_after(gsi, track_stack, GSI_CONTINUE_LINKING);
172163 +
172164 + // update the cgraph
172165 + bb = gimple_bb(track_stack);
172166 + node = cgraph_get_create_node(track_function_decl);
172167 + gcc_assert(node);
172168 + frequency = compute_call_stmt_bb_frequency(current_function_decl, bb);
172169 + cgraph_create_edge(cgraph_get_node(current_function_decl), node, track_stack, bb->count, frequency, bb->loop_depth);
172170 +}
172171 +
172172 +static bool is_alloca(gimple stmt)
172173 +{
172174 + if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA))
172175 + return true;
172176 +
172177 +#if BUILDING_GCC_VERSION >= 4007
172178 + if (gimple_call_builtin_p(stmt, BUILT_IN_ALLOCA_WITH_ALIGN))
172179 + return true;
172180 +#endif
172181 +
172182 + return false;
172183 +}
172184 +
172185 +static unsigned int execute_stackleak_tree_instrument(void)
172186 +{
172187 + basic_block bb, entry_bb;
172188 + bool prologue_instrumented = false, is_leaf = true;
172189 +
172190 + entry_bb = ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb;
172191 +
172192 + // 1. loop through BBs and GIMPLE statements
172193 + FOR_EACH_BB_FN(bb, cfun) {
172194 + gimple_stmt_iterator gsi;
172195 +
172196 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
172197 + gimple stmt;
172198 +
172199 + stmt = gsi_stmt(gsi);
172200 +
172201 + if (is_gimple_call(stmt))
172202 + is_leaf = false;
172203 +
172204 + // gimple match: align 8 built-in BUILT_IN_NORMAL:BUILT_IN_ALLOCA attributes <tree_list 0xb7576450>
172205 + if (!is_alloca(stmt))
172206 + continue;
172207 +
172208 + // 2. insert stack overflow check before each __builtin_alloca call
172209 + stackleak_check_alloca(&gsi);
172210 +
172211 + // 3. insert track call after each __builtin_alloca call
172212 + stackleak_add_instrumentation(&gsi);
172213 + if (bb == entry_bb)
172214 + prologue_instrumented = true;
172215 + }
172216 + }
172217 +
172218 + // special cases for some bad linux code: taking the address of static inline functions will materialize them
172219 + // but we mustn't instrument some of them as the resulting stack alignment required by the function call ABI
172220 + // will break other assumptions regarding the expected (but not otherwise enforced) register clobbering ABI.
172221 + // case in point: native_save_fl on amd64 when optimized for size clobbers rdx if it were instrumented here.
172222 + if (is_leaf && !TREE_PUBLIC(current_function_decl) && DECL_DECLARED_INLINE_P(current_function_decl))
172223 + return 0;
172224 + if (is_leaf && !strncmp(IDENTIFIER_POINTER(DECL_NAME(current_function_decl)), "_paravirt_", 10))
172225 + return 0;
172226 +
172227 + // 4. insert track call at the beginning
172228 + if (!prologue_instrumented) {
172229 + gimple_stmt_iterator gsi;
172230 +
172231 + bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
172232 + if (dom_info_available_p(CDI_DOMINATORS))
172233 + set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
172234 + gsi = gsi_start_bb(bb);
172235 + stackleak_add_instrumentation(&gsi);
172236 + }
172237 +
172238 + return 0;
172239 +}
172240 +
172241 +static unsigned int execute_stackleak_final(void)
172242 +{
172243 + rtx_insn *insn, *next;
172244 +
172245 + if (cfun->calls_alloca)
172246 + return 0;
172247 +
172248 + // keep calls only if function frame is big enough
172249 + if (get_frame_size() >= track_frame_size)
172250 + return 0;
172251 +
172252 + // 1. find pax_track_stack calls
172253 + for (insn = get_insns(); insn; insn = next) {
172254 + // 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))
172255 + rtx body;
172256 +
172257 + next = NEXT_INSN(insn);
172258 + if (!CALL_P(insn))
172259 + continue;
172260 + body = PATTERN(insn);
172261 + if (GET_CODE(body) != CALL)
172262 + continue;
172263 + body = XEXP(body, 0);
172264 + if (GET_CODE(body) != MEM)
172265 + continue;
172266 + body = XEXP(body, 0);
172267 + if (GET_CODE(body) != SYMBOL_REF)
172268 + continue;
172269 +// if (strcmp(XSTR(body, 0), track_function))
172270 + if (SYMBOL_REF_DECL(body) != track_function_decl)
172271 + continue;
172272 +// warning(0, "track_frame_size: %d %ld %d", cfun->calls_alloca, get_frame_size(), track_frame_size);
172273 + // 2. delete call
172274 + delete_insn_and_edges(insn);
172275 +#if BUILDING_GCC_VERSION >= 4007
172276 + if (GET_CODE(next) == NOTE && NOTE_KIND(next) == NOTE_INSN_CALL_ARG_LOCATION) {
172277 + insn = next;
172278 + next = NEXT_INSN(insn);
172279 + delete_insn_and_edges(insn);
172280 + }
172281 +#endif
172282 + }
172283 +
172284 +// print_simple_rtl(stderr, get_insns());
172285 +// print_rtl(stderr, get_insns());
172286 +// warning(0, "track_frame_size: %d %ld %d", cfun->calls_alloca, get_frame_size(), track_frame_size);
172287 +
172288 + return 0;
172289 +}
172290 +
172291 +static bool gate_stackleak_track_stack(void)
172292 +{
172293 + tree section;
172294 +
172295 + if (ix86_cmodel != CM_KERNEL)
172296 + return false;
172297 +
172298 + section = lookup_attribute("section", DECL_ATTRIBUTES(current_function_decl));
172299 + if (section && TREE_VALUE(section)) {
172300 + section = TREE_VALUE(TREE_VALUE(section));
172301 +
172302 + if (!strncmp(TREE_STRING_POINTER(section), ".init.text", 10))
172303 + return false;
172304 + if (!strncmp(TREE_STRING_POINTER(section), ".devinit.text", 13))
172305 + return false;
172306 + if (!strncmp(TREE_STRING_POINTER(section), ".cpuinit.text", 13))
172307 + return false;
172308 + if (!strncmp(TREE_STRING_POINTER(section), ".meminit.text", 13))
172309 + return false;
172310 + }
172311 +
172312 + return track_frame_size >= 0;
172313 +}
172314 +
172315 +static void stackleak_start_unit(void *gcc_data, void *user_data)
172316 +{
172317 + tree fntype;
172318 +
172319 + // void pax_track_stack(void)
172320 + fntype = build_function_type_list(void_type_node, NULL_TREE);
172321 + track_function_decl = build_fn_decl(track_function, fntype);
172322 + DECL_ASSEMBLER_NAME(track_function_decl); // for LTO
172323 + TREE_PUBLIC(track_function_decl) = 1;
172324 + TREE_USED(track_function_decl) = 1;
172325 + DECL_EXTERNAL(track_function_decl) = 1;
172326 + DECL_ARTIFICIAL(track_function_decl) = 1;
172327 + DECL_PRESERVE_P(track_function_decl) = 1;
172328 +
172329 + // void pax_check_alloca(unsigned long)
172330 + fntype = build_function_type_list(void_type_node, long_unsigned_type_node, NULL_TREE);
172331 + check_function_decl = build_fn_decl(check_function, fntype);
172332 + DECL_ASSEMBLER_NAME(check_function_decl); // for LTO
172333 + TREE_PUBLIC(check_function_decl) = 1;
172334 + TREE_USED(check_function_decl) = 1;
172335 + DECL_EXTERNAL(check_function_decl) = 1;
172336 + DECL_ARTIFICIAL(check_function_decl) = 1;
172337 + DECL_PRESERVE_P(check_function_decl) = 1;
172338 +}
172339 +
172340 +#if BUILDING_GCC_VERSION >= 4009
172341 +namespace {
172342 +static const struct pass_data stackleak_tree_instrument_pass_data = {
172343 +#else
172344 +static struct gimple_opt_pass stackleak_tree_instrument_pass = {
172345 + .pass = {
172346 +#endif
172347 + .type = GIMPLE_PASS,
172348 + .name = "stackleak_tree_instrument",
172349 +#if BUILDING_GCC_VERSION >= 4008
172350 + .optinfo_flags = OPTGROUP_NONE,
172351 +#endif
172352 +#if BUILDING_GCC_VERSION >= 5000
172353 +#elif BUILDING_GCC_VERSION == 4009
172354 + .has_gate = true,
172355 + .has_execute = true,
172356 +#else
172357 + .gate = gate_stackleak_track_stack,
172358 + .execute = execute_stackleak_tree_instrument,
172359 + .sub = NULL,
172360 + .next = NULL,
172361 + .static_pass_number = 0,
172362 +#endif
172363 + .tv_id = TV_NONE,
172364 + .properties_required = PROP_gimple_leh | PROP_cfg,
172365 + .properties_provided = 0,
172366 + .properties_destroyed = 0,
172367 + .todo_flags_start = 0, //TODO_verify_ssa | TODO_verify_flow | TODO_verify_stmts,
172368 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_update_ssa | TODO_rebuild_cgraph_edges
172369 +#if BUILDING_GCC_VERSION < 4009
172370 + }
172371 +#endif
172372 +};
172373 +
172374 +#if BUILDING_GCC_VERSION >= 4009
172375 +static const struct pass_data stackleak_final_rtl_opt_pass_data = {
172376 +#else
172377 +static struct rtl_opt_pass stackleak_final_rtl_opt_pass = {
172378 + .pass = {
172379 +#endif
172380 + .type = RTL_PASS,
172381 + .name = "stackleak_final",
172382 +#if BUILDING_GCC_VERSION >= 4008
172383 + .optinfo_flags = OPTGROUP_NONE,
172384 +#endif
172385 +#if BUILDING_GCC_VERSION >= 5000
172386 +#elif BUILDING_GCC_VERSION == 4009
172387 + .has_gate = true,
172388 + .has_execute = true,
172389 +#else
172390 + .gate = gate_stackleak_track_stack,
172391 + .execute = execute_stackleak_final,
172392 + .sub = NULL,
172393 + .next = NULL,
172394 + .static_pass_number = 0,
172395 +#endif
172396 + .tv_id = TV_NONE,
172397 + .properties_required = 0,
172398 + .properties_provided = 0,
172399 + .properties_destroyed = 0,
172400 + .todo_flags_start = 0,
172401 + .todo_flags_finish = TODO_dump_func
172402 +#if BUILDING_GCC_VERSION < 4009
172403 + }
172404 +#endif
172405 +};
172406 +
172407 +#if BUILDING_GCC_VERSION >= 4009
172408 +class stackleak_tree_instrument_pass : public gimple_opt_pass {
172409 +public:
172410 + stackleak_tree_instrument_pass() : gimple_opt_pass(stackleak_tree_instrument_pass_data, g) {}
172411 +#if BUILDING_GCC_VERSION >= 5000
172412 + virtual bool gate(function *) { return gate_stackleak_track_stack(); }
172413 + virtual unsigned int execute(function *) { return execute_stackleak_tree_instrument(); }
172414 +#else
172415 + bool gate() { return gate_stackleak_track_stack(); }
172416 + unsigned int execute() { return execute_stackleak_tree_instrument(); }
172417 +#endif
172418 +};
172419 +
172420 +class stackleak_final_rtl_opt_pass : public rtl_opt_pass {
172421 +public:
172422 + stackleak_final_rtl_opt_pass() : rtl_opt_pass(stackleak_final_rtl_opt_pass_data, g) {}
172423 +#if BUILDING_GCC_VERSION >= 5000
172424 + virtual bool gate(function *) { return gate_stackleak_track_stack(); }
172425 + virtual unsigned int execute(function *) { return execute_stackleak_final(); }
172426 +#else
172427 + bool gate() { return gate_stackleak_track_stack(); }
172428 + unsigned int execute() { return execute_stackleak_final(); }
172429 +#endif
172430 +};
172431 +}
172432 +
172433 +static opt_pass *make_stackleak_tree_instrument_pass(void)
172434 +{
172435 + return new stackleak_tree_instrument_pass();
172436 +}
172437 +
172438 +static opt_pass *make_stackleak_final_rtl_opt_pass(void)
172439 +{
172440 + return new stackleak_final_rtl_opt_pass();
172441 +}
172442 +#else
172443 +static struct opt_pass *make_stackleak_tree_instrument_pass(void)
172444 +{
172445 + return &stackleak_tree_instrument_pass.pass;
172446 +}
172447 +
172448 +static struct opt_pass *make_stackleak_final_rtl_opt_pass(void)
172449 +{
172450 + return &stackleak_final_rtl_opt_pass.pass;
172451 +}
172452 +#endif
172453 +
172454 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
172455 +{
172456 + const char * const plugin_name = plugin_info->base_name;
172457 + const int argc = plugin_info->argc;
172458 + const struct plugin_argument * const argv = plugin_info->argv;
172459 + int i;
172460 + struct register_pass_info stackleak_tree_instrument_pass_info;
172461 + struct register_pass_info stackleak_final_pass_info;
172462 + static const struct ggc_root_tab gt_ggc_r_gt_stackleak[] = {
172463 + {
172464 + .base = &track_function_decl,
172465 + .nelt = 1,
172466 + .stride = sizeof(track_function_decl),
172467 + .cb = &gt_ggc_mx_tree_node,
172468 + .pchw = &gt_pch_nx_tree_node
172469 + },
172470 + {
172471 + .base = &check_function_decl,
172472 + .nelt = 1,
172473 + .stride = sizeof(check_function_decl),
172474 + .cb = &gt_ggc_mx_tree_node,
172475 + .pchw = &gt_pch_nx_tree_node
172476 + },
172477 + LAST_GGC_ROOT_TAB
172478 + };
172479 +
172480 + stackleak_tree_instrument_pass_info.pass = make_stackleak_tree_instrument_pass();
172481 +// stackleak_tree_instrument_pass_info.reference_pass_name = "tree_profile";
172482 + stackleak_tree_instrument_pass_info.reference_pass_name = "optimized";
172483 + stackleak_tree_instrument_pass_info.ref_pass_instance_number = 1;
172484 + stackleak_tree_instrument_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
172485 +
172486 + stackleak_final_pass_info.pass = make_stackleak_final_rtl_opt_pass();
172487 + stackleak_final_pass_info.reference_pass_name = "final";
172488 + stackleak_final_pass_info.ref_pass_instance_number = 1;
172489 + stackleak_final_pass_info.pos_op = PASS_POS_INSERT_BEFORE;
172490 +
172491 + if (!plugin_default_version_check(version, &gcc_version)) {
172492 + error(G_("incompatible gcc/plugin versions"));
172493 + return 1;
172494 + }
172495 +
172496 + register_callback(plugin_name, PLUGIN_INFO, NULL, &stackleak_plugin_info);
172497 +
172498 + for (i = 0; i < argc; ++i) {
172499 + if (!strcmp(argv[i].key, "track-lowest-sp")) {
172500 + if (!argv[i].value) {
172501 + error(G_("no value supplied for option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
172502 + continue;
172503 + }
172504 + track_frame_size = atoi(argv[i].value);
172505 + if (argv[i].value[0] < '0' || argv[i].value[0] > '9' || track_frame_size < 0)
172506 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
172507 + continue;
172508 + }
172509 + if (!strcmp(argv[i].key, "initialize-locals")) {
172510 + if (argv[i].value) {
172511 + error(G_("invalid option argument '-fplugin-arg-%s-%s=%s'"), plugin_name, argv[i].key, argv[i].value);
172512 + continue;
172513 + }
172514 + init_locals = true;
172515 + continue;
172516 + }
172517 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
172518 + }
172519 +
172520 + register_callback(plugin_name, PLUGIN_START_UNIT, &stackleak_start_unit, NULL);
172521 + register_callback(plugin_name, PLUGIN_REGISTER_GGC_ROOTS, NULL, (void *)&gt_ggc_r_gt_stackleak);
172522 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &stackleak_tree_instrument_pass_info);
172523 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &stackleak_final_pass_info);
172524 +
172525 + return 0;
172526 +}
172527 diff --git a/tools/gcc/structleak_plugin.c b/tools/gcc/structleak_plugin.c
172528 new file mode 100644
172529 index 0000000..e9dbd4b
172530 --- /dev/null
172531 +++ b/tools/gcc/structleak_plugin.c
172532 @@ -0,0 +1,287 @@
172533 +/*
172534 + * Copyright 2013-2015 by PaX Team <pageexec@freemail.hu>
172535 + * Licensed under the GPL v2
172536 + *
172537 + * Note: the choice of the license means that the compilation process is
172538 + * NOT 'eligible' as defined by gcc's library exception to the GPL v3,
172539 + * but for the kernel it doesn't matter since it doesn't link against
172540 + * any of the gcc libraries
172541 + *
172542 + * gcc plugin to forcibly initialize certain local variables that could
172543 + * otherwise leak kernel stack to userland if they aren't properly initialized
172544 + * by later code
172545 + *
172546 + * Homepage: http://pax.grsecurity.net/
172547 + *
172548 + * Usage:
172549 + * $ # for 4.5/4.6/C based 4.7
172550 + * $ 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
172551 + * $ # for C++ based 4.7/4.8+
172552 + * $ 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
172553 + * $ gcc -fplugin=./structleak_plugin.so test.c -O2
172554 + *
172555 + * TODO: eliminate redundant initializers
172556 + * increase type coverage
172557 + */
172558 +
172559 +#include "gcc-common.h"
172560 +
172561 +// unused C type flag in all versions 4.5-5.0
172562 +#define TYPE_USERSPACE(TYPE) TYPE_LANG_FLAG_5(TYPE)
172563 +
172564 +int plugin_is_GPL_compatible;
172565 +
172566 +static struct plugin_info structleak_plugin_info = {
172567 + .version = "201401260140",
172568 + .help = "disable\tdo not activate plugin\n",
172569 +};
172570 +
172571 +static tree handle_user_attribute(tree *node, tree name, tree args, int flags, bool *no_add_attrs)
172572 +{
172573 + *no_add_attrs = true;
172574 +
172575 + // check for types? for now accept everything linux has to offer
172576 + if (TREE_CODE(*node) != FIELD_DECL)
172577 + return NULL_TREE;
172578 +
172579 + *no_add_attrs = false;
172580 + return NULL_TREE;
172581 +}
172582 +
172583 +static struct attribute_spec user_attr = {
172584 + .name = "user",
172585 + .min_length = 0,
172586 + .max_length = 0,
172587 + .decl_required = false,
172588 + .type_required = false,
172589 + .function_type_required = false,
172590 + .handler = handle_user_attribute,
172591 +#if BUILDING_GCC_VERSION >= 4007
172592 + .affects_type_identity = true
172593 +#endif
172594 +};
172595 +
172596 +static void register_attributes(void *event_data, void *data)
172597 +{
172598 + register_attribute(&user_attr);
172599 +// register_attribute(&force_attr);
172600 +}
172601 +
172602 +static tree get_field_type(tree field)
172603 +{
172604 + return strip_array_types(TREE_TYPE(field));
172605 +}
172606 +
172607 +static bool is_userspace_type(tree type)
172608 +{
172609 + tree field;
172610 +
172611 + for (field = TYPE_FIELDS(type); field; field = TREE_CHAIN(field)) {
172612 + tree fieldtype = get_field_type(field);
172613 + enum tree_code code = TREE_CODE(fieldtype);
172614 +
172615 + if (code == RECORD_TYPE || code == UNION_TYPE)
172616 + if (is_userspace_type(fieldtype))
172617 + return true;
172618 +
172619 + if (lookup_attribute("user", DECL_ATTRIBUTES(field)))
172620 + return true;
172621 + }
172622 + return false;
172623 +}
172624 +
172625 +static void finish_type(void *event_data, void *data)
172626 +{
172627 + tree type = (tree)event_data;
172628 +
172629 + if (type == NULL_TREE || type == error_mark_node)
172630 + return;
172631 +
172632 +#if BUILDING_GCC_VERSION >= 5000
172633 + if (TREE_CODE(type) == ENUMERAL_TYPE)
172634 + return;
172635 +#endif
172636 +
172637 + if (TYPE_USERSPACE(type))
172638 + return;
172639 +
172640 + if (is_userspace_type(type))
172641 + TYPE_USERSPACE(type) = 1;
172642 +}
172643 +
172644 +static void initialize(tree var)
172645 +{
172646 + basic_block bb;
172647 + gimple_stmt_iterator gsi;
172648 + tree initializer;
172649 + gimple init_stmt;
172650 +
172651 + // this is the original entry bb before the forced split
172652 + // TODO: check further BBs in case more splits occured before us
172653 + bb = ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb->next_bb;
172654 +
172655 + // first check if the variable is already initialized, warn otherwise
172656 + for (gsi = gsi_start_bb(bb); !gsi_end_p(gsi); gsi_next(&gsi)) {
172657 + gimple stmt = gsi_stmt(gsi);
172658 + tree rhs1;
172659 +
172660 + // we're looking for an assignment of a single rhs...
172661 + if (!gimple_assign_single_p(stmt))
172662 + continue;
172663 + rhs1 = gimple_assign_rhs1(stmt);
172664 +#if BUILDING_GCC_VERSION >= 4007
172665 + // ... of a non-clobbering expression...
172666 + if (TREE_CLOBBER_P(rhs1))
172667 + continue;
172668 +#endif
172669 + // ... to our variable...
172670 + if (gimple_get_lhs(stmt) != var)
172671 + continue;
172672 + // if it's an initializer then we're good
172673 + if (TREE_CODE(rhs1) == CONSTRUCTOR)
172674 + return;
172675 + }
172676 +
172677 + // these aren't the 0days you're looking for
172678 +// inform(DECL_SOURCE_LOCATION(var), "userspace variable will be forcibly initialized");
172679 +
172680 + // build the initializer expression
172681 + initializer = build_constructor(TREE_TYPE(var), NULL);
172682 +
172683 + // build the initializer stmt
172684 + init_stmt = gimple_build_assign(var, initializer);
172685 + gsi = gsi_start_bb(ENTRY_BLOCK_PTR_FOR_FN(cfun)->next_bb);
172686 + gsi_insert_before(&gsi, init_stmt, GSI_NEW_STMT);
172687 + update_stmt(init_stmt);
172688 +}
172689 +
172690 +static unsigned int handle_function(void)
172691 +{
172692 + basic_block bb;
172693 + unsigned int ret = 0;
172694 + tree var;
172695 + unsigned int i;
172696 +
172697 + // split the first bb where we can put the forced initializers
172698 + bb = split_block_after_labels(ENTRY_BLOCK_PTR_FOR_FN(cfun))->dest;
172699 + if (dom_info_available_p(CDI_DOMINATORS))
172700 + set_immediate_dominator(CDI_DOMINATORS, bb, ENTRY_BLOCK_PTR_FOR_FN(cfun));
172701 +
172702 + // enumarate all local variables and forcibly initialize our targets
172703 + FOR_EACH_LOCAL_DECL(cfun, i, var) {
172704 + tree type = TREE_TYPE(var);
172705 +
172706 + gcc_assert(DECL_P(var));
172707 + if (!auto_var_in_fn_p(var, current_function_decl))
172708 + continue;
172709 +
172710 + // only care about structure types
172711 + if (TREE_CODE(type) != RECORD_TYPE && TREE_CODE(type) != UNION_TYPE)
172712 + continue;
172713 +
172714 + // if the type is of interest, examine the variable
172715 + if (TYPE_USERSPACE(type))
172716 + initialize(var);
172717 + }
172718 +
172719 + return ret;
172720 +}
172721 +
172722 +#if BUILDING_GCC_VERSION >= 4009
172723 +namespace {
172724 +static const struct pass_data structleak_pass_data = {
172725 +#else
172726 +static struct gimple_opt_pass structleak_pass = {
172727 + .pass = {
172728 +#endif
172729 + .type = GIMPLE_PASS,
172730 + .name = "structleak",
172731 +#if BUILDING_GCC_VERSION >= 4008
172732 + .optinfo_flags = OPTGROUP_NONE,
172733 +#endif
172734 +#if BUILDING_GCC_VERSION >= 5000
172735 +#elif BUILDING_GCC_VERSION == 4009
172736 + .has_gate = false,
172737 + .has_execute = true,
172738 +#else
172739 + .gate = NULL,
172740 + .execute = handle_function,
172741 + .sub = NULL,
172742 + .next = NULL,
172743 + .static_pass_number = 0,
172744 +#endif
172745 + .tv_id = TV_NONE,
172746 + .properties_required = PROP_cfg,
172747 + .properties_provided = 0,
172748 + .properties_destroyed = 0,
172749 + .todo_flags_start = 0,
172750 + .todo_flags_finish = TODO_verify_ssa | TODO_verify_stmts | TODO_dump_func | TODO_remove_unused_locals | TODO_update_ssa | TODO_ggc_collect | TODO_verify_flow
172751 +#if BUILDING_GCC_VERSION < 4009
172752 + }
172753 +#endif
172754 +};
172755 +
172756 +#if BUILDING_GCC_VERSION >= 4009
172757 +class structleak_pass : public gimple_opt_pass {
172758 +public:
172759 + structleak_pass() : gimple_opt_pass(structleak_pass_data, g) {}
172760 +#if BUILDING_GCC_VERSION >= 5000
172761 + virtual unsigned int execute(function *) { return handle_function(); }
172762 +#else
172763 + unsigned int execute() { return handle_function(); }
172764 +#endif
172765 +};
172766 +}
172767 +
172768 +static opt_pass *make_structleak_pass(void)
172769 +{
172770 + return new structleak_pass();
172771 +}
172772 +#else
172773 +static struct opt_pass *make_structleak_pass(void)
172774 +{
172775 + return &structleak_pass.pass;
172776 +}
172777 +#endif
172778 +
172779 +int plugin_init(struct plugin_name_args *plugin_info, struct plugin_gcc_version *version)
172780 +{
172781 + int i;
172782 + const char * const plugin_name = plugin_info->base_name;
172783 + const int argc = plugin_info->argc;
172784 + const struct plugin_argument * const argv = plugin_info->argv;
172785 + bool enable = true;
172786 + struct register_pass_info structleak_pass_info;
172787 +
172788 + structleak_pass_info.pass = make_structleak_pass();
172789 + structleak_pass_info.reference_pass_name = "ssa";
172790 + structleak_pass_info.ref_pass_instance_number = 1;
172791 + structleak_pass_info.pos_op = PASS_POS_INSERT_AFTER;
172792 +
172793 + if (!plugin_default_version_check(version, &gcc_version)) {
172794 + error(G_("incompatible gcc/plugin versions"));
172795 + return 1;
172796 + }
172797 +
172798 + if (strncmp(lang_hooks.name, "GNU C", 5) && !strncmp(lang_hooks.name, "GNU C+", 6)) {
172799 + inform(UNKNOWN_LOCATION, G_("%s supports C only"), plugin_name);
172800 + enable = false;
172801 + }
172802 +
172803 + for (i = 0; i < argc; ++i) {
172804 + if (!strcmp(argv[i].key, "disable")) {
172805 + enable = false;
172806 + continue;
172807 + }
172808 + error(G_("unkown option '-fplugin-arg-%s-%s'"), plugin_name, argv[i].key);
172809 + }
172810 +
172811 + register_callback(plugin_name, PLUGIN_INFO, NULL, &structleak_plugin_info);
172812 + if (enable) {
172813 + register_callback(plugin_name, PLUGIN_PASS_MANAGER_SETUP, NULL, &structleak_pass_info);
172814 + register_callback(plugin_name, PLUGIN_FINISH_TYPE, finish_type, NULL);
172815 + }
172816 + register_callback(plugin_name, PLUGIN_ATTRIBUTES, register_attributes, NULL);
172817 +
172818 + return 0;
172819 +}
172820 diff --git a/tools/include/linux/compiler.h b/tools/include/linux/compiler.h
172821 index 9098083..18f0454 100644
172822 --- a/tools/include/linux/compiler.h
172823 +++ b/tools/include/linux/compiler.h
172824 @@ -39,6 +39,14 @@
172825 # define unlikely(x) __builtin_expect(!!(x), 0)
172826 #endif
172827
172828 +#ifndef __size_overflow
172829 +# define __size_overflow(...)
172830 +#endif
172831 +
172832 +#ifndef __intentional_overflow
172833 +# define __intentional_overflow(...)
172834 +#endif
172835 +
172836 #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))
172837
172838 #include <linux/types.h>
172839 diff --git a/tools/lib/api/Makefile b/tools/lib/api/Makefile
172840 index fe1b02c..a5eae4a 100644
172841 --- a/tools/lib/api/Makefile
172842 +++ b/tools/lib/api/Makefile
172843 @@ -16,7 +16,7 @@ MAKEFLAGS += --no-print-directory
172844 LIBFILE = $(OUTPUT)libapi.a
172845
172846 CFLAGS := $(EXTRA_WARNINGS) $(EXTRA_CFLAGS)
172847 -CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -fPIC
172848 +CFLAGS += -ggdb3 -Wall -Wextra -std=gnu99 -Werror -O6 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 $(EXTRA_WARNINGS) $(EXTRA_CFLAGS) -fPIC
172849 CFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
172850
172851 RM = rm -f
172852 diff --git a/tools/perf/util/include/asm/alternative-asm.h b/tools/perf/util/include/asm/alternative-asm.h
172853 index 3a3a0f1..6cf679d 100644
172854 --- a/tools/perf/util/include/asm/alternative-asm.h
172855 +++ b/tools/perf/util/include/asm/alternative-asm.h
172856 @@ -6,4 +6,7 @@
172857 #define altinstruction_entry #
172858 #define ALTERNATIVE_2 #
172859
172860 + .macro pax_force_retaddr rip=0, reload=0
172861 + .endm
172862 +
172863 #endif
172864 diff --git a/tools/virtio/linux/uaccess.h b/tools/virtio/linux/uaccess.h
172865 index 0a578fe..b81f62d 100644
172866 --- a/tools/virtio/linux/uaccess.h
172867 +++ b/tools/virtio/linux/uaccess.h
172868 @@ -13,7 +13,7 @@ static inline void __chk_user_ptr(const volatile void *p, size_t size)
172869 ({ \
172870 typeof(ptr) __pu_ptr = (ptr); \
172871 __chk_user_ptr(__pu_ptr, sizeof(*__pu_ptr)); \
172872 - ACCESS_ONCE(*(__pu_ptr)) = x; \
172873 + ACCESS_ONCE_RW(*(__pu_ptr)) = x; \
172874 0; \
172875 })
172876
172877 diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
172878 index 5a2a78a..4f322d3 100644
172879 --- a/virt/kvm/kvm_main.c
172880 +++ b/virt/kvm/kvm_main.c
172881 @@ -81,12 +81,17 @@ LIST_HEAD(vm_list);
172882
172883 static cpumask_var_t cpus_hardware_enabled;
172884 static int kvm_usage_count;
172885 -static atomic_t hardware_enable_failed;
172886 +static atomic_unchecked_t hardware_enable_failed;
172887
172888 struct kmem_cache *kvm_vcpu_cache;
172889 EXPORT_SYMBOL_GPL(kvm_vcpu_cache);
172890
172891 -static __read_mostly struct preempt_ops kvm_preempt_ops;
172892 +static void kvm_sched_in(struct preempt_notifier *pn, int cpu);
172893 +static void kvm_sched_out(struct preempt_notifier *pn, struct task_struct *next);
172894 +static struct preempt_ops kvm_preempt_ops = {
172895 + .sched_in = kvm_sched_in,
172896 + .sched_out = kvm_sched_out,
172897 +};
172898
172899 struct dentry *kvm_debugfs_dir;
172900 EXPORT_SYMBOL_GPL(kvm_debugfs_dir);
172901 @@ -798,7 +803,7 @@ int __kvm_set_memory_region(struct kvm *kvm,
172902 /* We can read the guest memory with __xxx_user() later on. */
172903 if ((id < KVM_USER_MEM_SLOTS) &&
172904 ((mem->userspace_addr & (PAGE_SIZE - 1)) ||
172905 - !access_ok(VERIFY_WRITE,
172906 + !access_ok_noprefault(VERIFY_WRITE,
172907 (void __user *)(unsigned long)mem->userspace_addr,
172908 mem->memory_size)))
172909 goto out;
172910 @@ -1853,9 +1858,17 @@ EXPORT_SYMBOL_GPL(kvm_read_guest_cached);
172911
172912 int kvm_clear_guest_page(struct kvm *kvm, gfn_t gfn, int offset, int len)
172913 {
172914 - const void *zero_page = (const void *) __va(page_to_phys(ZERO_PAGE(0)));
172915 + int r;
172916 + unsigned long addr;
172917
172918 - return kvm_write_guest_page(kvm, gfn, zero_page, offset, len);
172919 + addr = gfn_to_hva(kvm, gfn);
172920 + if (kvm_is_error_hva(addr))
172921 + return -EFAULT;
172922 + r = __clear_user((void __user *)addr + offset, len);
172923 + if (r)
172924 + return -EFAULT;
172925 + mark_page_dirty(kvm, gfn);
172926 + return 0;
172927 }
172928 EXPORT_SYMBOL_GPL(kvm_clear_guest_page);
172929
172930 @@ -2140,7 +2153,7 @@ static int kvm_vcpu_release(struct inode *inode, struct file *filp)
172931 return 0;
172932 }
172933
172934 -static struct file_operations kvm_vcpu_fops = {
172935 +static file_operations_no_const kvm_vcpu_fops __read_only = {
172936 .release = kvm_vcpu_release,
172937 .unlocked_ioctl = kvm_vcpu_ioctl,
172938 #ifdef CONFIG_KVM_COMPAT
172939 @@ -2864,7 +2877,7 @@ out:
172940 }
172941 #endif
172942
172943 -static struct file_operations kvm_vm_fops = {
172944 +static file_operations_no_const kvm_vm_fops __read_only = {
172945 .release = kvm_vm_release,
172946 .unlocked_ioctl = kvm_vm_ioctl,
172947 #ifdef CONFIG_KVM_COMPAT
172948 @@ -2935,7 +2948,7 @@ out:
172949 return r;
172950 }
172951
172952 -static struct file_operations kvm_chardev_ops = {
172953 +static file_operations_no_const kvm_chardev_ops __read_only = {
172954 .unlocked_ioctl = kvm_dev_ioctl,
172955 .compat_ioctl = kvm_dev_ioctl,
172956 .llseek = noop_llseek,
172957 @@ -2961,7 +2974,7 @@ static void hardware_enable_nolock(void *junk)
172958
172959 if (r) {
172960 cpumask_clear_cpu(cpu, cpus_hardware_enabled);
172961 - atomic_inc(&hardware_enable_failed);
172962 + atomic_inc_unchecked(&hardware_enable_failed);
172963 pr_info("kvm: enabling virtualization on CPU%d failed\n", cpu);
172964 }
172965 }
172966 @@ -3016,10 +3029,10 @@ static int hardware_enable_all(void)
172967
172968 kvm_usage_count++;
172969 if (kvm_usage_count == 1) {
172970 - atomic_set(&hardware_enable_failed, 0);
172971 + atomic_set_unchecked(&hardware_enable_failed, 0);
172972 on_each_cpu(hardware_enable_nolock, NULL, 1);
172973
172974 - if (atomic_read(&hardware_enable_failed)) {
172975 + if (atomic_read_unchecked(&hardware_enable_failed)) {
172976 hardware_disable_all_nolock();
172977 r = -EBUSY;
172978 }
172979 @@ -3436,7 +3449,7 @@ static void kvm_sched_out(struct preempt_notifier *pn,
172980 kvm_arch_vcpu_put(vcpu);
172981 }
172982
172983 -int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
172984 +int kvm_init(const void *opaque, unsigned vcpu_size, unsigned vcpu_align,
172985 struct module *module)
172986 {
172987 int r;
172988 @@ -3483,7 +3496,7 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
172989 if (!vcpu_align)
172990 vcpu_align = __alignof__(struct kvm_vcpu);
172991 kvm_vcpu_cache = kmem_cache_create("kvm_vcpu", vcpu_size, vcpu_align,
172992 - 0, NULL);
172993 + SLAB_USERCOPY, NULL);
172994 if (!kvm_vcpu_cache) {
172995 r = -ENOMEM;
172996 goto out_free_3;
172997 @@ -3493,9 +3506,11 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
172998 if (r)
172999 goto out_free;
173000
173001 + pax_open_kernel();
173002 kvm_chardev_ops.owner = module;
173003 kvm_vm_fops.owner = module;
173004 kvm_vcpu_fops.owner = module;
173005 + pax_close_kernel();
173006
173007 r = misc_register(&kvm_dev);
173008 if (r) {
173009 @@ -3505,9 +3520,6 @@ int kvm_init(void *opaque, unsigned vcpu_size, unsigned vcpu_align,
173010
173011 register_syscore_ops(&kvm_syscore_ops);
173012
173013 - kvm_preempt_ops.sched_in = kvm_sched_in;
173014 - kvm_preempt_ops.sched_out = kvm_sched_out;
173015 -
173016 r = kvm_init_debug();
173017 if (r) {
173018 pr_err("kvm: create debugfs files failed\n");